[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fGCo9l1hMtNdUiA6QzdUX5X3kLqaWcC5t2kdz4LrvCvc":3,"versions":2960,"module-api-shield":2965},[4,1120,1948,2767],{"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,426,907,999,1036,1078],{"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,356,379],{"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],{"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},"Use Hooks & Extend Types","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F4.recipes-advanced",{"title":345,"path":346,"stem":347,"titleTemplate":6},"Test Your Module","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F5.testing",{"title":349,"path":350,"stem":351,"titleTemplate":6},"Follow Best Practices","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F6.best-practices",{"title":353,"path":354,"stem":355,"titleTemplate":6},"Publish & Share Your Module","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F7.ecosystem",{"title":357,"titleTemplate":358,"icon":359,"path":360,"stem":361,"children":362,"page":108},"Recipes","%s · Recipes","i-lucide-cooking-pot","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes","docs\u002F3.x\u002F3.guide\u002F5.recipes",[363,367,371,375],{"title":364,"path":365,"stem":366,"titleTemplate":6},"Custom Routing","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":368,"path":369,"stem":370,"titleTemplate":6},"Vite Plugins","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":372,"path":373,"stem":374,"titleTemplate":6},"Custom useFetch","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":376,"path":377,"stem":378,"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":380,"titleTemplate":381,"icon":382,"path":383,"stem":384,"children":385,"page":108},"Going Further","%s · Nuxt Advanced","i-lucide-star","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further","docs\u002F3.x\u002F3.guide\u002F6.going-further",[386,390,394,398,402,406,410,414,418,422],{"title":387,"path":388,"stem":389,"titleTemplate":6},"Custom Events","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":391,"path":392,"stem":393,"titleTemplate":6},"Experimental Features","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":395,"path":396,"stem":397,"titleTemplate":6},"Features","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":399,"path":400,"stem":401,"titleTemplate":6},"Runtime Config","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":403,"path":404,"stem":405,"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":407,"path":408,"stem":409,"titleTemplate":6},"Lifecycle Hooks","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":411,"path":412,"stem":413,"titleTemplate":6},"Nuxt Kit","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":415,"path":416,"stem":417,"titleTemplate":6},"NuxtApp","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":419,"path":420,"stem":421,"titleTemplate":6},"Authoring Nuxt Layers","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":423,"path":424,"stem":425,"titleTemplate":6},"Debugging","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fdebugging","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F9.debugging",{"title":427,"titleTemplate":428,"icon":429,"path":430,"stem":431,"children":432,"page":108},"API","%s · Nuxt API","i-lucide-code-xml","\u002Fdocs\u002F3.x\u002Fapi","docs\u002F3.x\u002F4.api",[433,499,622,745,816,889,902],{"title":434,"titleTemplate":435,"icon":324,"path":436,"stem":437,"children":438,"page":108},"Components","%s · Nuxt Components","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents","docs\u002F3.x\u002F4.api\u002F1.components",[439,443,447,451,455,459,463,467,471,475,479,483,487,491,495],{"title":440,"path":441,"stem":442,"titleTemplate":6},"\u003CClientOnly>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F3.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":444,"path":445,"stem":446,"titleTemplate":6},"\u003CDevOnly>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F3.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":448,"path":449,"stem":450,"titleTemplate":6},"\u003CNuxtClientFallback>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F3.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":452,"path":453,"stem":454,"titleTemplate":6},"\u003CNuxtPicture>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F3.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":456,"path":457,"stem":458,"titleTemplate":6},"\u003CTeleport>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F3.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":460,"path":461,"stem":462,"titleTemplate":6},"\u003CNuxtRouteAnnouncer>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F3.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":464,"path":465,"stem":466,"titleTemplate":6},"\u003CNuxtTime>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F3.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":468,"path":469,"stem":470,"titleTemplate":6},"\u003CNuxtPage>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F3.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":472,"path":473,"stem":474,"titleTemplate":6},"\u003CNuxtLayout>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F3.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":476,"path":477,"stem":478,"titleTemplate":6},"\u003CNuxtLink>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F3.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":480,"path":481,"stem":482,"titleTemplate":6},"\u003CNuxtLoadingIndicator>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F3.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":484,"path":485,"stem":486,"titleTemplate":6},"\u003CNuxtErrorBoundary>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F3.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":488,"path":489,"stem":490,"titleTemplate":6},"\u003CNuxtWelcome>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F3.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":492,"path":493,"stem":494,"titleTemplate":6},"\u003CNuxtIsland>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F3.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":496,"path":497,"stem":498,"titleTemplate":6},"\u003CNuxtImg>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-img","docs\u002F3.x\u002F4.api\u002F1.components\u002F9.nuxt-img",{"title":500,"titleTemplate":501,"icon":502,"path":503,"stem":504,"children":505,"page":108},"Composables","%s · Nuxt Composables","i-lucide-arrow-left-right","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables","docs\u002F3.x\u002F4.api\u002F2.composables",[506,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],{"title":507,"path":508,"stem":509,"titleTemplate":6},"onPrehydrate","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":511,"path":512,"stem":513,"titleTemplate":6},"useAppConfig","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":515,"path":516,"stem":517,"titleTemplate":6},"useAsyncData","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":519,"path":520,"stem":521,"titleTemplate":6},"useCookie","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":523,"path":524,"stem":525,"titleTemplate":6},"useError","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":527,"path":528,"stem":529,"titleTemplate":6},"useFetch","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":531,"path":532,"stem":533,"titleTemplate":6},"useHead","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":535,"path":536,"stem":537,"titleTemplate":6},"useHeadSafe","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":539,"path":540,"stem":541,"titleTemplate":6},"useHydration","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":543,"path":544,"stem":545,"titleTemplate":6},"useLazyAsyncData","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-lazy-async-data",{"title":547,"path":548,"stem":549,"titleTemplate":6},"useLazyFetch","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":551,"path":552,"stem":553,"titleTemplate":6},"useLoadingIndicator","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":555,"path":556,"stem":557,"titleTemplate":6},"useNuxtApp","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":559,"path":560,"stem":561,"titleTemplate":6},"useNuxtData","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":563,"path":564,"stem":565,"titleTemplate":6},"usePreviewMode","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":567,"path":568,"stem":569,"titleTemplate":6},"useRequestEvent","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":571,"path":572,"stem":573,"titleTemplate":6},"useRequestFetch","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":575,"path":576,"stem":577,"titleTemplate":6},"useRequestHeader","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":579,"path":580,"stem":581,"titleTemplate":6},"useRequestHeaders","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":583,"path":584,"stem":585,"titleTemplate":6},"useRequestURL","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":587,"path":588,"stem":589,"titleTemplate":6},"useResponseHeader","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":591,"path":592,"stem":593,"titleTemplate":6},"useRoute","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":595,"path":596,"stem":597,"titleTemplate":6},"useRouteAnnouncer","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":599,"path":600,"stem":601,"titleTemplate":6},"useRouter","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":603,"path":604,"stem":605,"titleTemplate":6},"useRuntimeConfig","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":607,"path":608,"stem":609,"titleTemplate":6},"useRuntimeHook","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":611,"path":612,"stem":613,"titleTemplate":6},"useSeoMeta","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":615,"path":616,"stem":617,"titleTemplate":6},"useServerSeoMeta","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-server-seo-meta",{"title":619,"path":620,"stem":621,"titleTemplate":6},"useState","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-state","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-state",{"title":623,"titleTemplate":624,"icon":625,"path":626,"stem":627,"children":628,"page":108},"Utils","%s · Nuxt Utils","i-lucide-square-function","\u002Fdocs\u002F3.x\u002Fapi\u002Futils","docs\u002F3.x\u002F4.api\u002F3.utils",[629,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],{"title":630,"path":631,"stem":632,"titleTemplate":6},"$fetch","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F3.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":634,"path":635,"stem":636,"titleTemplate":6},"abortNavigation","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":638,"path":639,"stem":640,"titleTemplate":6},"addRouteMiddleware","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":642,"path":643,"stem":644,"titleTemplate":6},"callOnce","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":646,"path":647,"stem":648,"titleTemplate":6},"clearError","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":650,"path":651,"stem":652,"titleTemplate":6},"clearNuxtData","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":654,"path":655,"stem":656,"titleTemplate":6},"clearNuxtState","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":658,"path":659,"stem":660,"titleTemplate":6},"createError","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":662,"path":663,"stem":664,"titleTemplate":6},"defineLazyHydrationComponent","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-lazy-hydration-component",{"title":666,"path":667,"stem":668,"titleTemplate":6},"defineNuxtComponent","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":670,"path":671,"stem":672,"titleTemplate":6},"defineNuxtPlugin","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":674,"path":675,"stem":676,"titleTemplate":6},"defineNuxtRouteMiddleware","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-route-middleware",{"title":678,"path":679,"stem":680,"titleTemplate":6},"definePageMeta","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":682,"path":683,"stem":684,"titleTemplate":6},"defineRouteRules","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":686,"path":687,"stem":688,"titleTemplate":6},"navigateTo","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":690,"path":691,"stem":692,"titleTemplate":6},"onBeforeRouteLeave","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-before-route-leave","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fon-before-route-leave",{"title":694,"path":695,"stem":696,"titleTemplate":6},"onBeforeRouteUpdate","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-before-route-update","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fon-before-route-update",{"title":698,"path":699,"stem":700,"titleTemplate":6},"onNuxtReady","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":702,"path":703,"stem":704,"titleTemplate":6},"prefetchComponents","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":706,"path":707,"stem":708,"titleTemplate":6},"preloadComponents","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":710,"path":711,"stem":712,"titleTemplate":6},"preloadRouteComponents","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":714,"path":715,"stem":716,"titleTemplate":6},"prerenderRoutes","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":718,"path":719,"stem":720,"titleTemplate":6},"refreshCookie","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F3.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":722,"path":723,"stem":724,"titleTemplate":6},"refreshNuxtData","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F3.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":726,"path":727,"stem":728,"titleTemplate":6},"reloadNuxtApp","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F3.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":730,"path":731,"stem":732,"titleTemplate":6},"setPageLayout","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":734,"path":735,"stem":736,"titleTemplate":6},"setResponseStatus","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":738,"path":739,"stem":740,"titleTemplate":6},"showError","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":742,"path":743,"stem":744,"titleTemplate":6},"updateAppConfig","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fupdate-app-config","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fupdate-app-config",{"title":746,"titleTemplate":747,"icon":748,"path":749,"stem":750,"children":751,"page":108},"Commands","%s · Nuxt Commands","i-lucide-square-terminal","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands","docs\u002F3.x\u002F4.api\u002F4.commands",[752,756,760,764,768,772,776,780,784,788,792,796,800,804,808,812],{"title":753,"path":754,"stem":755,"titleTemplate":6},"nuxt add","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fadd",{"title":757,"path":758,"stem":759,"titleTemplate":6},"nuxt analyze","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":761,"path":762,"stem":763,"titleTemplate":6},"nuxt build","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":765,"path":766,"stem":767,"titleTemplate":6},"nuxt build-module","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":769,"path":770,"stem":771,"titleTemplate":6},"nuxt cleanup","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":773,"path":774,"stem":775,"titleTemplate":6},"nuxt dev","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fdev",{"title":777,"path":778,"stem":779,"titleTemplate":6},"nuxt devtools","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":781,"path":782,"stem":783,"titleTemplate":6},"nuxt generate","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":785,"path":786,"stem":787,"titleTemplate":6},"nuxt info","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F3.x\u002F4.api\u002F4.commands\u002Finfo",{"title":789,"path":790,"stem":791,"titleTemplate":6},"create nuxt","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F3.x\u002F4.api\u002F4.commands\u002Finit",{"title":793,"path":794,"stem":795,"titleTemplate":6},"nuxt module","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":797,"path":798,"stem":799,"titleTemplate":6},"nuxt prepare","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":801,"path":802,"stem":803,"titleTemplate":6},"nuxt preview","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":805,"path":806,"stem":807,"titleTemplate":6},"nuxt test","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F3.x\u002F4.api\u002F4.commands\u002Ftest",{"title":809,"path":810,"stem":811,"titleTemplate":6},"nuxt typecheck","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F3.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":813,"path":814,"stem":815,"titleTemplate":6},"nuxt upgrade","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":411,"titleTemplate":817,"icon":818,"path":819,"stem":820,"children":821,"page":108},"%s · Nuxt Kit","i-lucide-package","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit","docs\u002F3.x\u002F4.api\u002F5.kit",[822,825,828,832,836,840,844,848,852,855,859,863,866,869,873,877,881,885],{"title":276,"path":823,"stem":824,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F3.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":399,"path":826,"stem":827,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F3.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":829,"path":830,"stem":831,"titleTemplate":6},"Templates","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F3.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":833,"path":834,"stem":835,"titleTemplate":6},"Nitro","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F3.x\u002F4.api\u002F5.kit\u002F11.nitro",{"title":837,"path":838,"stem":839,"titleTemplate":6},"Resolving","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F3.x\u002F4.api\u002F5.kit\u002F12.resolving",{"title":841,"path":842,"stem":843,"titleTemplate":6},"Logging","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F3.x\u002F4.api\u002F5.kit\u002F13.logging",{"title":845,"path":846,"stem":847,"titleTemplate":6},"Builder","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F3.x\u002F4.api\u002F5.kit\u002F14.builder",{"title":849,"path":850,"stem":851,"titleTemplate":6},"Examples","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F3.x\u002F4.api\u002F5.kit\u002F15.examples",{"title":84,"path":853,"stem":854,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F3.x\u002F4.api\u002F5.kit\u002F16.layers",{"title":856,"path":857,"stem":858,"titleTemplate":6},"Programmatic Usage","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F3.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":860,"path":861,"stem":862,"titleTemplate":6},"Compatibility","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F3.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":864,"stem":865,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F3.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":434,"path":867,"stem":868,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F3.x\u002F4.api\u002F5.kit\u002F5.components",{"title":870,"path":871,"stem":872,"titleTemplate":6},"Context","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F3.x\u002F4.api\u002F5.kit\u002F6.context",{"title":874,"path":875,"stem":876,"titleTemplate":6},"Pages","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F3.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":878,"path":879,"stem":880,"titleTemplate":6},"Layout","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F3.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":882,"path":883,"stem":884,"titleTemplate":6},"Head","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F3.x\u002F4.api\u002F5.kit\u002F9.head",{"title":886,"path":887,"stem":888,"titleTemplate":6},"Plugins","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F3.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":890,"titleTemplate":6,"icon":891,"path":892,"stem":893,"children":894,"page":108},"Advanced","i-lucide-brain","\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced","docs\u002F3.x\u002F4.api\u002F6.advanced",[895,898],{"title":407,"path":896,"stem":897,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F3.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":899,"path":900,"stem":901,"titleTemplate":6},"Import meta","\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F3.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":903,"path":904,"stem":905,"titleTemplate":906,"icon":32},"Nuxt Configuration","\u002Fdocs\u002F3.x\u002Fapi\u002Fnuxt-config","docs\u002F3.x\u002F4.api\u002F6.nuxt-config","%s",{"title":849,"titleTemplate":908,"icon":909,"path":910,"stem":911,"children":912,"page":108},"%s · Nuxt Examples","i-lucide-app-window-mac","\u002Fdocs\u002F3.x\u002Fexamples","docs\u002F3.x\u002F4.examples",[913,917,939,954,990],{"title":914,"path":915,"stem":916,"titleTemplate":6},"Hello World","\u002Fdocs\u002F3.x\u002Fexamples\u002Fhello-world","docs\u002F3.x\u002F4.examples\u002F0.hello-world",{"title":395,"path":918,"stem":919,"children":920,"page":108},"\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures","docs\u002F3.x\u002F4.examples\u002F1.features",[921,925,928,931,935],{"title":922,"path":923,"stem":924,"titleTemplate":6},"Auto Imports","\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F3.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":926,"stem":927,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F3.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":929,"stem":930,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F3.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":932,"path":933,"stem":934,"titleTemplate":6},"Meta Tags","\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F3.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":936,"path":937,"stem":938,"titleTemplate":6},"Layouts","\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F3.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":940,"stem":941,"children":942,"page":108},"\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting","docs\u002F3.x\u002F4.examples\u002F2.routing",[943,947,950],{"title":944,"path":945,"stem":946,"titleTemplate":6},"Middleware","\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F3.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":874,"path":948,"stem":949,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F3.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":951,"path":952,"stem":953,"titleTemplate":6},"Universal Router","\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F3.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":890,"path":955,"stem":956,"children":957,"page":108},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced","docs\u002F3.x\u002F4.examples\u002F4.advanced",[958,961,964,968,972,976,980,983,986],{"title":84,"path":959,"stem":960,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":962,"stem":963,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":965,"path":966,"stem":967,"titleTemplate":6},"JSX \u002F TSX","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":969,"path":970,"stem":971,"titleTemplate":6},"Locale","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":973,"path":974,"stem":975,"titleTemplate":6},"Module Extend Pages","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":977,"path":978,"stem":979,"titleTemplate":6},"Teleport","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":981,"stem":982,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":519,"path":984,"stem":985,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":987,"path":988,"stem":989,"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":991,"path":992,"stem":993,"children":994,"page":108},"Experimental","\u002Fdocs\u002F3.x\u002Fexamples\u002Fexperimental","docs\u002F3.x\u002F4.examples\u002F7.experimental",[995],{"title":996,"path":997,"stem":998,"titleTemplate":6},"WASM","\u002Fdocs\u002F3.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F3.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1000,"titleTemplate":1001,"icon":1002,"path":1003,"stem":1004,"children":1005,"page":108},"Community","%s · Nuxt Community","i-lucide-messages-square","\u002Fdocs\u002F3.x\u002Fcommunity","docs\u002F3.x\u002F5.community",[1006,1011,1016,1021,1026,1031],{"title":1007,"path":1008,"stem":1009,"titleTemplate":6,"icon":1010},"Getting Help","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fgetting-help","docs\u002F3.x\u002F5.community\u002F2.getting-help","i-lucide-life-buoy",{"title":1012,"path":1013,"stem":1014,"titleTemplate":6,"icon":1015},"Reporting Bugs","\u002Fdocs\u002F3.x\u002Fcommunity\u002Freporting-bugs","docs\u002F3.x\u002F5.community\u002F3.reporting-bugs","i-lucide-bug",{"title":1017,"path":1018,"stem":1019,"titleTemplate":6,"icon":1020},"Contribution","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fcontribution","docs\u002F3.x\u002F5.community\u002F4.contribution","i-lucide-git-pull-request",{"title":1022,"path":1023,"stem":1024,"titleTemplate":6,"icon":1025},"Framework","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fframework-contribution","docs\u002F3.x\u002F5.community\u002F5.framework-contribution","i-lucide-github",{"title":1027,"path":1028,"stem":1029,"titleTemplate":6,"icon":1030},"Roadmap","\u002Fdocs\u002F3.x\u002Fcommunity\u002Froadmap","docs\u002F3.x\u002F5.community\u002F6.roadmap","i-lucide-map",{"title":1032,"path":1033,"stem":1034,"titleTemplate":6,"icon":1035},"Releases","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fchangelog","docs\u002F3.x\u002F5.community\u002F7.changelog","i-lucide-bell-dot",{"title":1037,"titleTemplate":1038,"icon":1039,"path":1040,"stem":1041,"children":1042,"page":108},"Migrate to Nuxt Bridge","Migrate to Nuxt Bridge: %s","i-lucide-ship","\u002Fdocs\u002F3.x\u002Fbridge","docs\u002F3.x\u002F6.bridge",[1043,1047,1050,1053,1057,1061,1065,1068,1071,1074],{"title":1044,"path":1045,"stem":1046,"titleTemplate":6},"Overview","\u002Fdocs\u002F3.x\u002Fbridge\u002Foverview","docs\u002F3.x\u002F6.bridge\u002F1.overview",{"title":29,"path":1048,"stem":1049,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fconfiguration","docs\u002F3.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":1051,"stem":1052,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Ftypescript","docs\u002F3.x\u002F6.bridge\u002F2.typescript",{"title":1054,"path":1055,"stem":1056,"titleTemplate":6},"Legacy Composition API","\u002Fdocs\u002F3.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F3.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1058,"path":1059,"stem":1060,"titleTemplate":6},"Plugins and Middleware","\u002Fdocs\u002F3.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F3.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1062,"path":1063,"stem":1064,"titleTemplate":6},"New Composition API","\u002Fdocs\u002F3.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F3.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":932,"path":1066,"stem":1067,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fmeta","docs\u002F3.x\u002F6.bridge\u002F6.meta",{"title":399,"path":1069,"stem":1070,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fruntime-config","docs\u002F3.x\u002F6.bridge\u002F7.runtime-config",{"title":833,"path":1072,"stem":1073,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fnitro","docs\u002F3.x\u002F6.bridge\u002F8.nitro",{"title":1075,"path":1076,"stem":1077,"titleTemplate":6},"Vite","\u002Fdocs\u002F3.x\u002Fbridge\u002Fvite","docs\u002F3.x\u002F6.bridge\u002F9.vite",{"title":1079,"titleTemplate":1080,"icon":107,"path":1081,"stem":1082,"children":1083,"page":108},"Migrate to Nuxt 3","Migrate to Nuxt 3: %s","\u002Fdocs\u002F3.x\u002Fmigration","docs\u002F3.x\u002F7.migration",[1084,1087,1091,1094,1097,1100,1103,1106,1109,1113,1117],{"title":1044,"path":1085,"stem":1086,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Foverview","docs\u002F3.x\u002F7.migration\u002F1.overview",{"title":1088,"path":1089,"stem":1090,"titleTemplate":6},"Build Tooling","\u002Fdocs\u002F3.x\u002Fmigration\u002Fbundling","docs\u002F3.x\u002F7.migration\u002F10.bundling",{"title":79,"path":1092,"stem":1093,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fserver","docs\u002F3.x\u002F7.migration\u002F11.server",{"title":29,"path":1095,"stem":1096,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fconfiguration","docs\u002F3.x\u002F7.migration\u002F2.configuration",{"title":276,"path":1098,"stem":1099,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fmodule-authors","docs\u002F3.x\u002F7.migration\u002F20.module-authors",{"title":922,"path":1101,"stem":1102,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fauto-imports","docs\u002F3.x\u002F7.migration\u002F3.auto-imports",{"title":932,"path":1104,"stem":1105,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fmeta","docs\u002F3.x\u002F7.migration\u002F4.meta",{"title":1058,"path":1107,"stem":1108,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F3.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1110,"path":1111,"stem":1112,"titleTemplate":6},"Pages and Layouts","\u002Fdocs\u002F3.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F3.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1114,"path":1115,"stem":1116,"titleTemplate":6},"Component Options","\u002Fdocs\u002F3.x\u002Fmigration\u002Fcomponent-options","docs\u002F3.x\u002F7.migration\u002F7.component-options",{"title":399,"path":1118,"stem":1119,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fruntime-config","docs\u002F3.x\u002F7.migration\u002F8.runtime-config",{"title":5,"titleTemplate":6,"icon":7,"path":1121,"stem":1122,"children":1123,"page":108},"\u002Fdocs\u002F4.x","docs\u002F4.x",[1124,1182,1276,1404,1778,1855,1877,1911],{"title":12,"titleTemplate":13,"icon":14,"path":1125,"stem":1126,"children":1127,"page":108},"\u002Fdocs\u002F4.x\u002Fgetting-started","docs\u002F4.x\u002F1.getting-started",[1128,1131,1134,1137,1140,1143,1146,1149,1152,1155,1158,1161,1164,1167,1170,1173,1176,1179],{"title":19,"path":1129,"stem":1130,"titleTemplate":6,"icon":22},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fintroduction","docs\u002F4.x\u002F1.getting-started\u002F01.introduction",{"title":24,"path":1132,"stem":1133,"titleTemplate":6,"icon":27},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Finstallation","docs\u002F4.x\u002F1.getting-started\u002F02.installation",{"title":29,"path":1135,"stem":1136,"titleTemplate":6,"icon":32},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fconfiguration","docs\u002F4.x\u002F1.getting-started\u002F03.configuration",{"title":34,"path":1138,"stem":1139,"titleTemplate":6,"icon":37},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fviews","docs\u002F4.x\u002F1.getting-started\u002F04.views",{"title":39,"path":1141,"stem":1142,"titleTemplate":6,"icon":42},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fassets","docs\u002F4.x\u002F1.getting-started\u002F05.assets",{"title":44,"path":1144,"stem":1145,"titleTemplate":6,"icon":47},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fstyling","docs\u002F4.x\u002F1.getting-started\u002F06.styling",{"title":49,"path":1147,"stem":1148,"titleTemplate":6,"icon":52},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Frouting","docs\u002F4.x\u002F1.getting-started\u002F07.routing",{"title":54,"path":1150,"stem":1151,"titleTemplate":6,"icon":57},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fseo-meta","docs\u002F4.x\u002F1.getting-started\u002F08.seo-meta",{"title":59,"path":1153,"stem":1154,"titleTemplate":6,"icon":62},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ftransitions","docs\u002F4.x\u002F1.getting-started\u002F09.transitions",{"title":64,"path":1156,"stem":1157,"titleTemplate":6,"icon":67},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fdata-fetching","docs\u002F4.x\u002F1.getting-started\u002F10.data-fetching",{"title":69,"path":1159,"stem":1160,"titleTemplate":6,"icon":72},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fstate-management","docs\u002F4.x\u002F1.getting-started\u002F11.state-management",{"title":74,"path":1162,"stem":1163,"titleTemplate":6,"icon":77},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ferror-handling","docs\u002F4.x\u002F1.getting-started\u002F12.error-handling",{"title":79,"path":1165,"stem":1166,"titleTemplate":6,"icon":82},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fserver","docs\u002F4.x\u002F1.getting-started\u002F13.server",{"title":84,"path":1168,"stem":1169,"titleTemplate":6,"icon":87},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Flayers","docs\u002F4.x\u002F1.getting-started\u002F14.layers",{"title":89,"path":1171,"stem":1172,"titleTemplate":6,"icon":92},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fprerendering","docs\u002F4.x\u002F1.getting-started\u002F15.prerendering",{"title":94,"path":1174,"stem":1175,"titleTemplate":6,"icon":97},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fdeployment","docs\u002F4.x\u002F1.getting-started\u002F16.deployment",{"title":99,"path":1177,"stem":1178,"titleTemplate":6,"icon":102},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ftesting","docs\u002F4.x\u002F1.getting-started\u002F17.testing",{"title":104,"path":1180,"stem":1181,"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":1183,"stem":1184,"children":1185,"page":108},"\u002Fdocs\u002F4.x\u002Fdirectory-structure","docs\u002F4.x\u002F2.directory-structure",[1186,1189,1192,1234,1237,1240,1243,1246,1249,1252,1255,1258,1261,1264,1267,1270,1273],{"title":117,"path":1187,"stem":1188,"titleTemplate":6,"icon":120},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxt","docs\u002F4.x\u002F2.directory-structure\u002F0.nuxt",{"title":122,"path":1190,"stem":1191,"titleTemplate":6,"icon":125},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Foutput","docs\u002F4.x\u002F2.directory-structure\u002F0.output",{"title":1193,"titleTemplate":111,"head":1194,"defaultOpen":1196,"icon":1197,"path":1198,"stem":1199,"children":1200,"page":108},"app",{"title":1195},"app\u002F",true,"i-vscode-icons-folder-type-app","\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp","docs\u002F4.x\u002F2.directory-structure\u002F1.app",[1201,1204,1207,1210,1213,1216,1219,1222,1225,1228,1231],{"title":127,"path":1202,"stem":1203,"titleTemplate":6,"icon":130},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fassets","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.assets",{"title":132,"path":1205,"stem":1206,"titleTemplate":6,"icon":135},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fcomponents","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.components",{"title":137,"path":1208,"stem":1209,"titleTemplate":6,"icon":140},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fcomposables","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.composables",{"title":152,"path":1211,"stem":1212,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Flayouts","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.layouts",{"title":157,"path":1214,"stem":1215,"titleTemplate":6,"icon":160},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fmiddleware","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.middleware",{"title":171,"path":1217,"stem":1218,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fpages","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.pages",{"title":175,"path":1220,"stem":1221,"titleTemplate":6,"icon":178},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fplugins","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.plugins",{"title":195,"path":1223,"stem":1224,"titleTemplate":6,"icon":198},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Futils","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.utils",{"title":219,"path":1226,"stem":1227,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fapp","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F3.app",{"title":224,"path":1229,"stem":1230,"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":1232,"stem":1233,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Ferror","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F3.error",{"title":142,"path":1235,"stem":1236,"titleTemplate":6,"icon":145},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fcontent","docs\u002F4.x\u002F2.directory-structure\u002F1.content",{"title":147,"path":1238,"stem":1239,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Flayers","docs\u002F4.x\u002F2.directory-structure\u002F1.layers",{"title":162,"path":1241,"stem":1242,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fmodules","docs\u002F4.x\u002F2.directory-structure\u002F1.modules",{"title":166,"path":1244,"stem":1245,"titleTemplate":6,"icon":169},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnode_modules","docs\u002F4.x\u002F2.directory-structure\u002F1.node_modules",{"title":180,"path":1247,"stem":1248,"titleTemplate":6,"icon":183},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fpublic","docs\u002F4.x\u002F2.directory-structure\u002F1.public",{"title":185,"path":1250,"stem":1251,"titleTemplate":6,"icon":188},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fserver","docs\u002F4.x\u002F2.directory-structure\u002F1.server",{"title":190,"path":1253,"stem":1254,"titleTemplate":6,"icon":193},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fshared","docs\u002F4.x\u002F2.directory-structure\u002F1.shared",{"title":200,"path":1256,"stem":1257,"titleTemplate":6,"icon":203},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fenv","docs\u002F4.x\u002F2.directory-structure\u002F2.env",{"title":205,"path":1259,"stem":1260,"titleTemplate":6,"icon":208},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fgitignore","docs\u002F4.x\u002F2.directory-structure\u002F2.gitignore",{"title":210,"path":1262,"stem":1263,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxtignore","docs\u002F4.x\u002F2.directory-structure\u002F2.nuxtignore",{"title":215,"path":1265,"stem":1266,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxtrc","docs\u002F4.x\u002F2.directory-structure\u002F2.nuxtrc",{"title":233,"path":1268,"stem":1269,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxt-config","docs\u002F4.x\u002F2.directory-structure\u002F3.nuxt-config",{"title":237,"path":1271,"stem":1272,"titleTemplate":6,"icon":240},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fpackage","docs\u002F4.x\u002F2.directory-structure\u002F3.package",{"title":242,"path":1274,"stem":1275,"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":1277,"stem":1278,"children":1279,"page":108},"\u002Fdocs\u002F4.x\u002Fguide","docs\u002F4.x\u002F3.guide",[1280,1305,1319,1329,1354,1370],{"title":253,"titleTemplate":254,"icon":255,"path":1281,"stem":1282,"children":1283,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts","docs\u002F4.x\u002F3.guide\u002F1.concepts",[1284,1287,1290,1293,1296,1299,1302],{"title":260,"path":1285,"stem":1286,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Frendering","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F1.rendering",{"title":264,"path":1288,"stem":1289,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":268,"path":1291,"stem":1292,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fauto-imports","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F3.auto-imports",{"title":272,"path":1294,"stem":1295,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fserver-engine","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F4.server-engine",{"title":276,"path":1297,"stem":1298,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fmodules","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F5.modules",{"title":280,"path":1300,"stem":1301,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":1303,"stem":1304,"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":1306,"stem":1307,"children":1308,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices","docs\u002F4.x\u002F3.guide\u002F2.best-practices",[1309,1313,1316],{"title":1310,"path":1311,"stem":1312,"titleTemplate":6},"Nuxt and Hydration","\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":1314,"stem":1315,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":1317,"stem":1318,"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":1320,"stem":1321,"children":1322,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai","docs\u002F4.x\u002F3.guide\u002F3.ai",[1323,1326],{"title":314,"path":1324,"stem":1325,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F4.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":1327,"stem":1328,"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":1330,"stem":1331,"children":1332,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules","docs\u002F4.x\u002F3.guide\u002F4.modules",[1333,1336,1339,1342,1345,1348,1351],{"title":329,"path":1334,"stem":1335,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":1337,"stem":1338,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":1340,"stem":1341,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":1343,"stem":1344,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F4.recipes-advanced",{"title":345,"path":1346,"stem":1347,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F5.testing",{"title":349,"path":1349,"stem":1350,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F6.best-practices",{"title":353,"path":1352,"stem":1353,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F7.ecosystem",{"title":357,"titleTemplate":358,"icon":359,"path":1355,"stem":1356,"children":1357,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes","docs\u002F4.x\u002F3.guide\u002F5.recipes",[1358,1361,1364,1367],{"title":364,"path":1359,"stem":1360,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":368,"path":1362,"stem":1363,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":372,"path":1365,"stem":1366,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":376,"path":1368,"stem":1369,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":380,"titleTemplate":381,"icon":382,"path":1371,"stem":1372,"children":1373,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further","docs\u002F4.x\u002F3.guide\u002F6.going-further",[1374,1377,1380,1383,1386,1389,1392,1395,1398,1401],{"title":387,"path":1375,"stem":1376,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":391,"path":1378,"stem":1379,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":395,"path":1381,"stem":1382,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":399,"path":1384,"stem":1385,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":403,"path":1387,"stem":1388,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F11.nightly-release-channel",{"title":407,"path":1390,"stem":1391,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":411,"path":1393,"stem":1394,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":415,"path":1396,"stem":1397,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":419,"path":1399,"stem":1400,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":423,"path":1402,"stem":1403,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fdebugging","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F9.debugging",{"title":427,"titleTemplate":428,"icon":429,"path":1405,"stem":1406,"children":1407,"page":108},"\u002Fdocs\u002F4.x\u002Fapi","docs\u002F4.x\u002F4.api",[1408,1461,1564,1655,1707,1765,1775],{"title":434,"titleTemplate":435,"icon":324,"path":1409,"stem":1410,"children":1411,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents","docs\u002F4.x\u002F4.api\u002F1.components",[1412,1415,1418,1421,1424,1427,1430,1433,1437,1440,1443,1446,1449,1452,1455,1458],{"title":440,"path":1413,"stem":1414,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":444,"path":1416,"stem":1417,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":448,"path":1419,"stem":1420,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":452,"path":1422,"stem":1423,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F4.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":456,"path":1425,"stem":1426,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F4.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":460,"path":1428,"stem":1429,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F4.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":464,"path":1431,"stem":1432,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F4.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":1434,"path":1435,"stem":1436,"titleTemplate":6},"\u003CNuxtAnnouncer>","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-announcer","docs\u002F4.x\u002F4.api\u002F1.components\u002F14.nuxt-announcer",{"title":468,"path":1438,"stem":1439,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F4.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":472,"path":1441,"stem":1442,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F4.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":476,"path":1444,"stem":1445,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F4.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":480,"path":1447,"stem":1448,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F4.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":484,"path":1450,"stem":1451,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F4.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":488,"path":1453,"stem":1454,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F4.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":492,"path":1456,"stem":1457,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F4.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":496,"path":1459,"stem":1460,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-img","docs\u002F4.x\u002F4.api\u002F1.components\u002F9.nuxt-img",{"title":500,"titleTemplate":501,"icon":502,"path":1462,"stem":1463,"children":1464,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables","docs\u002F4.x\u002F4.api\u002F2.composables",[1465,1469,1473,1476,1480,1483,1486,1489,1492,1495,1498,1501,1504,1507,1510,1513,1516,1519,1522,1525,1528,1531,1534,1537,1540,1543,1546,1549,1552,1555,1558,1561],{"title":1466,"path":1467,"stem":1468,"titleTemplate":6},"createUseAsyncData","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fcreate-use-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fcreate-use-async-data",{"title":1470,"path":1471,"stem":1472,"titleTemplate":6},"createUseFetch","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fcreate-use-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fcreate-use-fetch",{"title":507,"path":1474,"stem":1475,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":1477,"path":1478,"stem":1479,"titleTemplate":6},"useAnnouncer","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-announcer","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-announcer",{"title":511,"path":1481,"stem":1482,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":515,"path":1484,"stem":1485,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":519,"path":1487,"stem":1488,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":523,"path":1490,"stem":1491,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":527,"path":1493,"stem":1494,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":531,"path":1496,"stem":1497,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":535,"path":1499,"stem":1500,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":539,"path":1502,"stem":1503,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":543,"path":1505,"stem":1506,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-lazy-async-data",{"title":547,"path":1508,"stem":1509,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":551,"path":1511,"stem":1512,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":555,"path":1514,"stem":1515,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":559,"path":1517,"stem":1518,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":563,"path":1520,"stem":1521,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":567,"path":1523,"stem":1524,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":571,"path":1526,"stem":1527,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":575,"path":1529,"stem":1530,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":579,"path":1532,"stem":1533,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":583,"path":1535,"stem":1536,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":587,"path":1538,"stem":1539,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":591,"path":1541,"stem":1542,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":595,"path":1544,"stem":1545,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":599,"path":1547,"stem":1548,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":603,"path":1550,"stem":1551,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":607,"path":1553,"stem":1554,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":611,"path":1556,"stem":1557,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":615,"path":1559,"stem":1560,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-server-seo-meta",{"title":619,"path":1562,"stem":1563,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-state","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-state",{"title":623,"titleTemplate":624,"icon":625,"path":1565,"stem":1566,"children":1567,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils","docs\u002F4.x\u002F4.api\u002F3.utils",[1568,1571,1574,1577,1580,1583,1586,1589,1592,1595,1598,1601,1604,1607,1610,1613,1616,1619,1622,1625,1628,1631,1634,1637,1640,1643,1646,1649,1652],{"title":630,"path":1569,"stem":1570,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F4.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":634,"path":1572,"stem":1573,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":638,"path":1575,"stem":1576,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":642,"path":1578,"stem":1579,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":646,"path":1581,"stem":1582,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":650,"path":1584,"stem":1585,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":654,"path":1587,"stem":1588,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":658,"path":1590,"stem":1591,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":662,"path":1593,"stem":1594,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-lazy-hydration-component",{"title":666,"path":1596,"stem":1597,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":670,"path":1599,"stem":1600,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":674,"path":1602,"stem":1603,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-route-middleware",{"title":678,"path":1605,"stem":1606,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":682,"path":1608,"stem":1609,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":686,"path":1611,"stem":1612,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":690,"path":1614,"stem":1615,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-before-route-leave","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fon-before-route-leave",{"title":694,"path":1617,"stem":1618,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-before-route-update","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fon-before-route-update",{"title":698,"path":1620,"stem":1621,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":702,"path":1623,"stem":1624,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":706,"path":1626,"stem":1627,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":710,"path":1629,"stem":1630,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":714,"path":1632,"stem":1633,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":718,"path":1635,"stem":1636,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F4.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":722,"path":1638,"stem":1639,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F4.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":726,"path":1641,"stem":1642,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F4.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":730,"path":1644,"stem":1645,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":734,"path":1647,"stem":1648,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":738,"path":1650,"stem":1651,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":742,"path":1653,"stem":1654,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fupdate-app-config","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fupdate-app-config",{"title":746,"titleTemplate":747,"icon":748,"path":1656,"stem":1657,"children":1658,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands","docs\u002F4.x\u002F4.api\u002F4.commands",[1659,1662,1665,1668,1671,1674,1677,1680,1683,1686,1689,1692,1695,1698,1701,1704],{"title":753,"path":1660,"stem":1661,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fadd",{"title":757,"path":1663,"stem":1664,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":761,"path":1666,"stem":1667,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":765,"path":1669,"stem":1670,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":769,"path":1672,"stem":1673,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":773,"path":1675,"stem":1676,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fdev",{"title":777,"path":1678,"stem":1679,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":781,"path":1681,"stem":1682,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":785,"path":1684,"stem":1685,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F4.x\u002F4.api\u002F4.commands\u002Finfo",{"title":789,"path":1687,"stem":1688,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F4.x\u002F4.api\u002F4.commands\u002Finit",{"title":793,"path":1690,"stem":1691,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":797,"path":1693,"stem":1694,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":801,"path":1696,"stem":1697,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":805,"path":1699,"stem":1700,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F4.x\u002F4.api\u002F4.commands\u002Ftest",{"title":809,"path":1702,"stem":1703,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F4.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":813,"path":1705,"stem":1706,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":411,"titleTemplate":817,"icon":818,"path":1708,"stem":1709,"children":1710,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit","docs\u002F4.x\u002F4.api\u002F5.kit",[1711,1714,1717,1720,1723,1726,1729,1732,1735,1738,1741,1744,1747,1750,1753,1756,1759,1762],{"title":276,"path":1712,"stem":1713,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F4.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":399,"path":1715,"stem":1716,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F4.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":829,"path":1718,"stem":1719,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F4.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":833,"path":1721,"stem":1722,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F4.x\u002F4.api\u002F5.kit\u002F11.nitro",{"title":837,"path":1724,"stem":1725,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F4.x\u002F4.api\u002F5.kit\u002F12.resolving",{"title":841,"path":1727,"stem":1728,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F4.x\u002F4.api\u002F5.kit\u002F13.logging",{"title":845,"path":1730,"stem":1731,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F4.x\u002F4.api\u002F5.kit\u002F14.builder",{"title":849,"path":1733,"stem":1734,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F4.x\u002F4.api\u002F5.kit\u002F15.examples",{"title":84,"path":1736,"stem":1737,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F4.x\u002F4.api\u002F5.kit\u002F16.layers",{"title":856,"path":1739,"stem":1740,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F4.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":860,"path":1742,"stem":1743,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F4.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":1745,"stem":1746,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F4.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":434,"path":1748,"stem":1749,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F4.x\u002F4.api\u002F5.kit\u002F5.components",{"title":870,"path":1751,"stem":1752,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F4.x\u002F4.api\u002F5.kit\u002F6.context",{"title":874,"path":1754,"stem":1755,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F4.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":878,"path":1757,"stem":1758,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F4.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":882,"path":1760,"stem":1761,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F4.x\u002F4.api\u002F5.kit\u002F9.head",{"title":886,"path":1763,"stem":1764,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F4.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":890,"titleTemplate":6,"icon":891,"path":1766,"stem":1767,"children":1768,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced","docs\u002F4.x\u002F4.api\u002F6.advanced",[1769,1772],{"title":407,"path":1770,"stem":1771,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F4.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":899,"path":1773,"stem":1774,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F4.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":903,"path":1776,"stem":1777,"titleTemplate":906,"icon":32},"\u002Fdocs\u002F4.x\u002Fapi\u002Fnuxt-config","docs\u002F4.x\u002F4.api\u002F6.nuxt-config",{"title":849,"titleTemplate":908,"icon":909,"path":1779,"stem":1780,"children":1781,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples","docs\u002F4.x\u002F4.examples",[1782,1785,1804,1817,1848],{"title":914,"path":1783,"stem":1784,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fhello-world","docs\u002F4.x\u002F4.examples\u002F0.hello-world",{"title":395,"path":1786,"stem":1787,"children":1788,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures","docs\u002F4.x\u002F4.examples\u002F1.features",[1789,1792,1795,1798,1801],{"title":922,"path":1790,"stem":1791,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F4.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":1793,"stem":1794,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F4.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":1796,"stem":1797,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F4.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":932,"path":1799,"stem":1800,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F4.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":936,"path":1802,"stem":1803,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F4.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":1805,"stem":1806,"children":1807,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting","docs\u002F4.x\u002F4.examples\u002F2.routing",[1808,1811,1814],{"title":944,"path":1809,"stem":1810,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":874,"path":1812,"stem":1813,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":951,"path":1815,"stem":1816,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":890,"path":1818,"stem":1819,"children":1820,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced","docs\u002F4.x\u002F4.examples\u002F4.advanced",[1821,1824,1827,1830,1833,1836,1839,1842,1845],{"title":84,"path":1822,"stem":1823,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":1825,"stem":1826,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":965,"path":1828,"stem":1829,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":969,"path":1831,"stem":1832,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":973,"path":1834,"stem":1835,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":977,"path":1837,"stem":1838,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":1840,"stem":1841,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":519,"path":1843,"stem":1844,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":987,"path":1846,"stem":1847,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fuse-custom-fetch-composable","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fuse-custom-fetch-composable",{"title":991,"path":1849,"stem":1850,"children":1851,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fexperimental","docs\u002F4.x\u002F4.examples\u002F7.experimental",[1852],{"title":996,"path":1853,"stem":1854,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F4.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1000,"titleTemplate":1001,"icon":1002,"path":1856,"stem":1857,"children":1858,"page":108},"\u002Fdocs\u002F4.x\u002Fcommunity","docs\u002F4.x\u002F5.community",[1859,1862,1865,1868,1871,1874],{"title":1007,"path":1860,"stem":1861,"titleTemplate":6,"icon":1010},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fgetting-help","docs\u002F4.x\u002F5.community\u002F2.getting-help",{"title":1012,"path":1863,"stem":1864,"titleTemplate":6,"icon":1015},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Freporting-bugs","docs\u002F4.x\u002F5.community\u002F3.reporting-bugs",{"title":1017,"path":1866,"stem":1867,"titleTemplate":6,"icon":1020},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fcontribution","docs\u002F4.x\u002F5.community\u002F4.contribution",{"title":1022,"path":1869,"stem":1870,"titleTemplate":6,"icon":1025},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fframework-contribution","docs\u002F4.x\u002F5.community\u002F5.framework-contribution",{"title":1027,"path":1872,"stem":1873,"titleTemplate":6,"icon":1030},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Froadmap","docs\u002F4.x\u002F5.community\u002F6.roadmap",{"title":1032,"path":1875,"stem":1876,"titleTemplate":6,"icon":1035},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fchangelog","docs\u002F4.x\u002F5.community\u002F7.changelog",{"title":1037,"titleTemplate":1038,"icon":1039,"path":1878,"stem":1879,"children":1880,"page":108},"\u002Fdocs\u002F4.x\u002Fbridge","docs\u002F4.x\u002F6.bridge",[1881,1884,1887,1890,1893,1896,1899,1902,1905,1908],{"title":1044,"path":1882,"stem":1883,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Foverview","docs\u002F4.x\u002F6.bridge\u002F1.overview",{"title":29,"path":1885,"stem":1886,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fconfiguration","docs\u002F4.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":1888,"stem":1889,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Ftypescript","docs\u002F4.x\u002F6.bridge\u002F2.typescript",{"title":1054,"path":1891,"stem":1892,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F4.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1058,"path":1894,"stem":1895,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F4.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1062,"path":1897,"stem":1898,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F4.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":932,"path":1900,"stem":1901,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fmeta","docs\u002F4.x\u002F6.bridge\u002F6.meta",{"title":399,"path":1903,"stem":1904,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fruntime-config","docs\u002F4.x\u002F6.bridge\u002F7.runtime-config",{"title":833,"path":1906,"stem":1907,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fnitro","docs\u002F4.x\u002F6.bridge\u002F8.nitro",{"title":1075,"path":1909,"stem":1910,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fvite","docs\u002F4.x\u002F6.bridge\u002F9.vite",{"title":1079,"titleTemplate":1080,"icon":107,"path":1912,"stem":1913,"children":1914,"page":108},"\u002Fdocs\u002F4.x\u002Fmigration","docs\u002F4.x\u002F7.migration",[1915,1918,1921,1924,1927,1930,1933,1936,1939,1942,1945],{"title":1044,"path":1916,"stem":1917,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Foverview","docs\u002F4.x\u002F7.migration\u002F1.overview",{"title":1088,"path":1919,"stem":1920,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fbundling","docs\u002F4.x\u002F7.migration\u002F10.bundling",{"title":79,"path":1922,"stem":1923,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fserver","docs\u002F4.x\u002F7.migration\u002F11.server",{"title":29,"path":1925,"stem":1926,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fconfiguration","docs\u002F4.x\u002F7.migration\u002F2.configuration",{"title":276,"path":1928,"stem":1929,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fmodule-authors","docs\u002F4.x\u002F7.migration\u002F20.module-authors",{"title":922,"path":1931,"stem":1932,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fauto-imports","docs\u002F4.x\u002F7.migration\u002F3.auto-imports",{"title":932,"path":1934,"stem":1935,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fmeta","docs\u002F4.x\u002F7.migration\u002F4.meta",{"title":1058,"path":1937,"stem":1938,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F4.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1110,"path":1940,"stem":1941,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F4.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1114,"path":1943,"stem":1944,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fcomponent-options","docs\u002F4.x\u002F7.migration\u002F7.component-options",{"title":399,"path":1946,"stem":1947,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fruntime-config","docs\u002F4.x\u002F7.migration\u002F8.runtime-config",{"title":5,"titleTemplate":6,"icon":7,"path":1949,"stem":1950,"children":1951,"page":108},"\u002Fdocs\u002F5.x","docs\u002F5.x",[1952,2010,2100,2227,2597,2674,2696,2730],{"title":12,"titleTemplate":13,"icon":14,"path":1953,"stem":1954,"children":1955,"page":108},"\u002Fdocs\u002F5.x\u002Fgetting-started","docs\u002F5.x\u002F1.getting-started",[1956,1959,1962,1965,1968,1971,1974,1977,1980,1983,1986,1989,1992,1995,1998,2001,2004,2007],{"title":19,"path":1957,"stem":1958,"titleTemplate":6,"icon":22},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fintroduction","docs\u002F5.x\u002F1.getting-started\u002F01.introduction",{"title":24,"path":1960,"stem":1961,"titleTemplate":6,"icon":27},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Finstallation","docs\u002F5.x\u002F1.getting-started\u002F02.installation",{"title":29,"path":1963,"stem":1964,"titleTemplate":6,"icon":32},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fconfiguration","docs\u002F5.x\u002F1.getting-started\u002F03.configuration",{"title":34,"path":1966,"stem":1967,"titleTemplate":6,"icon":37},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fviews","docs\u002F5.x\u002F1.getting-started\u002F04.views",{"title":39,"path":1969,"stem":1970,"titleTemplate":6,"icon":42},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fassets","docs\u002F5.x\u002F1.getting-started\u002F05.assets",{"title":44,"path":1972,"stem":1973,"titleTemplate":6,"icon":47},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fstyling","docs\u002F5.x\u002F1.getting-started\u002F06.styling",{"title":49,"path":1975,"stem":1976,"titleTemplate":6,"icon":52},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Frouting","docs\u002F5.x\u002F1.getting-started\u002F07.routing",{"title":54,"path":1978,"stem":1979,"titleTemplate":6,"icon":57},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fseo-meta","docs\u002F5.x\u002F1.getting-started\u002F08.seo-meta",{"title":59,"path":1981,"stem":1982,"titleTemplate":6,"icon":62},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ftransitions","docs\u002F5.x\u002F1.getting-started\u002F09.transitions",{"title":64,"path":1984,"stem":1985,"titleTemplate":6,"icon":67},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fdata-fetching","docs\u002F5.x\u002F1.getting-started\u002F10.data-fetching",{"title":69,"path":1987,"stem":1988,"titleTemplate":6,"icon":72},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fstate-management","docs\u002F5.x\u002F1.getting-started\u002F11.state-management",{"title":74,"path":1990,"stem":1991,"titleTemplate":6,"icon":77},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ferror-handling","docs\u002F5.x\u002F1.getting-started\u002F12.error-handling",{"title":79,"path":1993,"stem":1994,"titleTemplate":6,"icon":82},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fserver","docs\u002F5.x\u002F1.getting-started\u002F13.server",{"title":84,"path":1996,"stem":1997,"titleTemplate":6,"icon":87},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Flayers","docs\u002F5.x\u002F1.getting-started\u002F14.layers",{"title":89,"path":1999,"stem":2000,"titleTemplate":6,"icon":92},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fprerendering","docs\u002F5.x\u002F1.getting-started\u002F15.prerendering",{"title":94,"path":2002,"stem":2003,"titleTemplate":6,"icon":97},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fdeployment","docs\u002F5.x\u002F1.getting-started\u002F16.deployment",{"title":99,"path":2005,"stem":2006,"titleTemplate":6,"icon":102},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ftesting","docs\u002F5.x\u002F1.getting-started\u002F17.testing",{"title":104,"path":2008,"stem":2009,"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":2011,"stem":2012,"children":2013,"page":108},"\u002Fdocs\u002F5.x\u002Fdirectory-structure","docs\u002F5.x\u002F2.directory-structure",[2014,2017,2020,2058,2061,2064,2067,2070,2073,2076,2079,2082,2085,2088,2091,2094,2097],{"title":117,"path":2015,"stem":2016,"titleTemplate":6,"icon":120},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxt","docs\u002F5.x\u002F2.directory-structure\u002F0.nuxt",{"title":122,"path":2018,"stem":2019,"titleTemplate":6,"icon":125},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Foutput","docs\u002F5.x\u002F2.directory-structure\u002F0.output",{"title":1193,"titleTemplate":111,"head":2021,"defaultOpen":1196,"icon":1197,"path":2022,"stem":2023,"children":2024,"page":108},{"title":1195},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp","docs\u002F5.x\u002F2.directory-structure\u002F1.app",[2025,2028,2031,2034,2037,2040,2043,2046,2049,2052,2055],{"title":127,"path":2026,"stem":2027,"titleTemplate":6,"icon":130},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fassets","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.assets",{"title":132,"path":2029,"stem":2030,"titleTemplate":6,"icon":135},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fcomponents","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.components",{"title":137,"path":2032,"stem":2033,"titleTemplate":6,"icon":140},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fcomposables","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.composables",{"title":152,"path":2035,"stem":2036,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Flayouts","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.layouts",{"title":157,"path":2038,"stem":2039,"titleTemplate":6,"icon":160},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fmiddleware","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.middleware",{"title":171,"path":2041,"stem":2042,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fpages","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.pages",{"title":175,"path":2044,"stem":2045,"titleTemplate":6,"icon":178},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fplugins","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.plugins",{"title":195,"path":2047,"stem":2048,"titleTemplate":6,"icon":198},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Futils","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.utils",{"title":219,"path":2050,"stem":2051,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fapp","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F3.app",{"title":224,"path":2053,"stem":2054,"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":2056,"stem":2057,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Ferror","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F3.error",{"title":142,"path":2059,"stem":2060,"titleTemplate":6,"icon":145},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fcontent","docs\u002F5.x\u002F2.directory-structure\u002F1.content",{"title":147,"path":2062,"stem":2063,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Flayers","docs\u002F5.x\u002F2.directory-structure\u002F1.layers",{"title":162,"path":2065,"stem":2066,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fmodules","docs\u002F5.x\u002F2.directory-structure\u002F1.modules",{"title":166,"path":2068,"stem":2069,"titleTemplate":6,"icon":169},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnode_modules","docs\u002F5.x\u002F2.directory-structure\u002F1.node_modules",{"title":180,"path":2071,"stem":2072,"titleTemplate":6,"icon":183},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fpublic","docs\u002F5.x\u002F2.directory-structure\u002F1.public",{"title":185,"path":2074,"stem":2075,"titleTemplate":6,"icon":188},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fserver","docs\u002F5.x\u002F2.directory-structure\u002F1.server",{"title":190,"path":2077,"stem":2078,"titleTemplate":6,"icon":193},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fshared","docs\u002F5.x\u002F2.directory-structure\u002F1.shared",{"title":200,"path":2080,"stem":2081,"titleTemplate":6,"icon":203},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fenv","docs\u002F5.x\u002F2.directory-structure\u002F2.env",{"title":205,"path":2083,"stem":2084,"titleTemplate":6,"icon":208},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fgitignore","docs\u002F5.x\u002F2.directory-structure\u002F2.gitignore",{"title":210,"path":2086,"stem":2087,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxtignore","docs\u002F5.x\u002F2.directory-structure\u002F2.nuxtignore",{"title":215,"path":2089,"stem":2090,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxtrc","docs\u002F5.x\u002F2.directory-structure\u002F2.nuxtrc",{"title":233,"path":2092,"stem":2093,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxt-config","docs\u002F5.x\u002F2.directory-structure\u002F3.nuxt-config",{"title":237,"path":2095,"stem":2096,"titleTemplate":6,"icon":240},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fpackage","docs\u002F5.x\u002F2.directory-structure\u002F3.package",{"title":242,"path":2098,"stem":2099,"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":2101,"stem":2102,"children":2103,"page":108},"\u002Fdocs\u002F5.x\u002Fguide","docs\u002F5.x\u002F3.guide",[2104,2129,2142,2152,2177,2193],{"title":253,"titleTemplate":254,"icon":255,"path":2105,"stem":2106,"children":2107,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts","docs\u002F5.x\u002F3.guide\u002F1.concepts",[2108,2111,2114,2117,2120,2123,2126],{"title":260,"path":2109,"stem":2110,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Frendering","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F1.rendering",{"title":264,"path":2112,"stem":2113,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":268,"path":2115,"stem":2116,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fauto-imports","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F3.auto-imports",{"title":272,"path":2118,"stem":2119,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fserver-engine","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F4.server-engine",{"title":276,"path":2121,"stem":2122,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fmodules","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F5.modules",{"title":280,"path":2124,"stem":2125,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":2127,"stem":2128,"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":2130,"stem":2131,"children":2132,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices","docs\u002F5.x\u002F3.guide\u002F2.best-practices",[2133,2136,2139],{"title":1310,"path":2134,"stem":2135,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":2137,"stem":2138,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":2140,"stem":2141,"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":2143,"stem":2144,"children":2145,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai","docs\u002F5.x\u002F3.guide\u002F3.ai",[2146,2149],{"title":314,"path":2147,"stem":2148,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F5.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":2150,"stem":2151,"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":2153,"stem":2154,"children":2155,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules","docs\u002F5.x\u002F3.guide\u002F4.modules",[2156,2159,2162,2165,2168,2171,2174],{"title":329,"path":2157,"stem":2158,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":2160,"stem":2161,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":2163,"stem":2164,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":2166,"stem":2167,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F4.recipes-advanced",{"title":345,"path":2169,"stem":2170,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F5.testing",{"title":349,"path":2172,"stem":2173,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F6.best-practices",{"title":353,"path":2175,"stem":2176,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F7.ecosystem",{"title":357,"titleTemplate":358,"icon":359,"path":2178,"stem":2179,"children":2180,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes","docs\u002F5.x\u002F3.guide\u002F5.recipes",[2181,2184,2187,2190],{"title":364,"path":2182,"stem":2183,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":368,"path":2185,"stem":2186,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":372,"path":2188,"stem":2189,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":376,"path":2191,"stem":2192,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":380,"titleTemplate":381,"icon":382,"path":2194,"stem":2195,"children":2196,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further","docs\u002F5.x\u002F3.guide\u002F6.going-further",[2197,2200,2203,2206,2209,2212,2215,2218,2221,2224],{"title":387,"path":2198,"stem":2199,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":391,"path":2201,"stem":2202,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":395,"path":2204,"stem":2205,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":399,"path":2207,"stem":2208,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":403,"path":2210,"stem":2211,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F11.nightly-release-channel",{"title":407,"path":2213,"stem":2214,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":411,"path":2216,"stem":2217,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":415,"path":2219,"stem":2220,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":419,"path":2222,"stem":2223,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":423,"path":2225,"stem":2226,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fdebugging","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F9.debugging",{"title":427,"titleTemplate":428,"icon":429,"path":2228,"stem":2229,"children":2230,"page":108},"\u002Fdocs\u002F5.x\u002Fapi","docs\u002F5.x\u002F4.api",[2231,2283,2383,2474,2526,2584,2594],{"title":434,"titleTemplate":435,"icon":324,"path":2232,"stem":2233,"children":2234,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents","docs\u002F5.x\u002F4.api\u002F1.components",[2235,2238,2241,2244,2247,2250,2253,2256,2259,2262,2265,2268,2271,2274,2277,2280],{"title":440,"path":2236,"stem":2237,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":444,"path":2239,"stem":2240,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":448,"path":2242,"stem":2243,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":452,"path":2245,"stem":2246,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F5.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":456,"path":2248,"stem":2249,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F5.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":460,"path":2251,"stem":2252,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F5.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":464,"path":2254,"stem":2255,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F5.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":1434,"path":2257,"stem":2258,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-announcer","docs\u002F5.x\u002F4.api\u002F1.components\u002F14.nuxt-announcer",{"title":468,"path":2260,"stem":2261,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F5.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":472,"path":2263,"stem":2264,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F5.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":476,"path":2266,"stem":2267,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F5.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":480,"path":2269,"stem":2270,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F5.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":484,"path":2272,"stem":2273,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F5.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":488,"path":2275,"stem":2276,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F5.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":492,"path":2278,"stem":2279,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F5.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":496,"path":2281,"stem":2282,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-img","docs\u002F5.x\u002F4.api\u002F1.components\u002F9.nuxt-img",{"title":500,"titleTemplate":501,"icon":502,"path":2284,"stem":2285,"children":2286,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables","docs\u002F5.x\u002F4.api\u002F2.composables",[2287,2290,2293,2296,2299,2302,2305,2308,2311,2314,2317,2320,2323,2326,2329,2332,2335,2338,2341,2344,2347,2350,2353,2356,2359,2362,2365,2368,2371,2374,2377,2380],{"title":1466,"path":2288,"stem":2289,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fcreate-use-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fcreate-use-async-data",{"title":1470,"path":2291,"stem":2292,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fcreate-use-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fcreate-use-fetch",{"title":507,"path":2294,"stem":2295,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":1477,"path":2297,"stem":2298,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-announcer","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-announcer",{"title":511,"path":2300,"stem":2301,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":515,"path":2303,"stem":2304,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":519,"path":2306,"stem":2307,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":523,"path":2309,"stem":2310,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":527,"path":2312,"stem":2313,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":531,"path":2315,"stem":2316,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":535,"path":2318,"stem":2319,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":539,"path":2321,"stem":2322,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":543,"path":2324,"stem":2325,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-lazy-async-data",{"title":547,"path":2327,"stem":2328,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":551,"path":2330,"stem":2331,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":555,"path":2333,"stem":2334,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":559,"path":2336,"stem":2337,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":563,"path":2339,"stem":2340,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":567,"path":2342,"stem":2343,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":571,"path":2345,"stem":2346,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":575,"path":2348,"stem":2349,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":579,"path":2351,"stem":2352,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":583,"path":2354,"stem":2355,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":587,"path":2357,"stem":2358,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":591,"path":2360,"stem":2361,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":595,"path":2363,"stem":2364,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":599,"path":2366,"stem":2367,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":603,"path":2369,"stem":2370,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":607,"path":2372,"stem":2373,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":611,"path":2375,"stem":2376,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":615,"path":2378,"stem":2379,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-server-seo-meta",{"title":619,"path":2381,"stem":2382,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-state","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-state",{"title":623,"titleTemplate":624,"icon":625,"path":2384,"stem":2385,"children":2386,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils","docs\u002F5.x\u002F4.api\u002F3.utils",[2387,2390,2393,2396,2399,2402,2405,2408,2411,2414,2417,2420,2423,2426,2429,2432,2435,2438,2441,2444,2447,2450,2453,2456,2459,2462,2465,2468,2471],{"title":630,"path":2388,"stem":2389,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F5.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":634,"path":2391,"stem":2392,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":638,"path":2394,"stem":2395,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":642,"path":2397,"stem":2398,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":646,"path":2400,"stem":2401,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":650,"path":2403,"stem":2404,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":654,"path":2406,"stem":2407,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":658,"path":2409,"stem":2410,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":662,"path":2412,"stem":2413,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-lazy-hydration-component",{"title":666,"path":2415,"stem":2416,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":670,"path":2418,"stem":2419,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":674,"path":2421,"stem":2422,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-route-middleware",{"title":678,"path":2424,"stem":2425,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":682,"path":2427,"stem":2428,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":686,"path":2430,"stem":2431,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":690,"path":2433,"stem":2434,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-before-route-leave","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fon-before-route-leave",{"title":694,"path":2436,"stem":2437,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-before-route-update","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fon-before-route-update",{"title":698,"path":2439,"stem":2440,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":702,"path":2442,"stem":2443,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":706,"path":2445,"stem":2446,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":710,"path":2448,"stem":2449,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":714,"path":2451,"stem":2452,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":718,"path":2454,"stem":2455,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F5.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":722,"path":2457,"stem":2458,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F5.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":726,"path":2460,"stem":2461,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F5.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":730,"path":2463,"stem":2464,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":734,"path":2466,"stem":2467,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":738,"path":2469,"stem":2470,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":742,"path":2472,"stem":2473,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fupdate-app-config","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fupdate-app-config",{"title":746,"titleTemplate":747,"icon":748,"path":2475,"stem":2476,"children":2477,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands","docs\u002F5.x\u002F4.api\u002F4.commands",[2478,2481,2484,2487,2490,2493,2496,2499,2502,2505,2508,2511,2514,2517,2520,2523],{"title":753,"path":2479,"stem":2480,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fadd",{"title":757,"path":2482,"stem":2483,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":761,"path":2485,"stem":2486,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":765,"path":2488,"stem":2489,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":769,"path":2491,"stem":2492,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":773,"path":2494,"stem":2495,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fdev",{"title":777,"path":2497,"stem":2498,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":781,"path":2500,"stem":2501,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":785,"path":2503,"stem":2504,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F5.x\u002F4.api\u002F4.commands\u002Finfo",{"title":789,"path":2506,"stem":2507,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F5.x\u002F4.api\u002F4.commands\u002Finit",{"title":793,"path":2509,"stem":2510,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":797,"path":2512,"stem":2513,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":801,"path":2515,"stem":2516,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":805,"path":2518,"stem":2519,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F5.x\u002F4.api\u002F4.commands\u002Ftest",{"title":809,"path":2521,"stem":2522,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F5.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":813,"path":2524,"stem":2525,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":411,"titleTemplate":817,"icon":818,"path":2527,"stem":2528,"children":2529,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit","docs\u002F5.x\u002F4.api\u002F5.kit",[2530,2533,2536,2539,2542,2545,2548,2551,2554,2557,2560,2563,2566,2569,2572,2575,2578,2581],{"title":276,"path":2531,"stem":2532,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F5.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":399,"path":2534,"stem":2535,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F5.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":829,"path":2537,"stem":2538,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F5.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":833,"path":2540,"stem":2541,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F5.x\u002F4.api\u002F5.kit\u002F11.nitro",{"title":837,"path":2543,"stem":2544,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F5.x\u002F4.api\u002F5.kit\u002F12.resolving",{"title":841,"path":2546,"stem":2547,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F5.x\u002F4.api\u002F5.kit\u002F13.logging",{"title":845,"path":2549,"stem":2550,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F5.x\u002F4.api\u002F5.kit\u002F14.builder",{"title":849,"path":2552,"stem":2553,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F5.x\u002F4.api\u002F5.kit\u002F15.examples",{"title":84,"path":2555,"stem":2556,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F5.x\u002F4.api\u002F5.kit\u002F16.layers",{"title":856,"path":2558,"stem":2559,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F5.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":860,"path":2561,"stem":2562,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F5.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":2564,"stem":2565,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F5.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":434,"path":2567,"stem":2568,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F5.x\u002F4.api\u002F5.kit\u002F5.components",{"title":870,"path":2570,"stem":2571,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F5.x\u002F4.api\u002F5.kit\u002F6.context",{"title":874,"path":2573,"stem":2574,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F5.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":878,"path":2576,"stem":2577,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F5.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":882,"path":2579,"stem":2580,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F5.x\u002F4.api\u002F5.kit\u002F9.head",{"title":886,"path":2582,"stem":2583,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F5.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":890,"titleTemplate":6,"icon":891,"path":2585,"stem":2586,"children":2587,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced","docs\u002F5.x\u002F4.api\u002F6.advanced",[2588,2591],{"title":407,"path":2589,"stem":2590,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F5.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":899,"path":2592,"stem":2593,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F5.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":903,"path":2595,"stem":2596,"titleTemplate":906,"icon":32},"\u002Fdocs\u002F5.x\u002Fapi\u002Fnuxt-config","docs\u002F5.x\u002F4.api\u002F6.nuxt-config",{"title":849,"titleTemplate":908,"icon":909,"path":2598,"stem":2599,"children":2600,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples","docs\u002F5.x\u002F4.examples",[2601,2604,2623,2636,2667],{"title":914,"path":2602,"stem":2603,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fhello-world","docs\u002F5.x\u002F4.examples\u002F0.hello-world",{"title":395,"path":2605,"stem":2606,"children":2607,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures","docs\u002F5.x\u002F4.examples\u002F1.features",[2608,2611,2614,2617,2620],{"title":922,"path":2609,"stem":2610,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F5.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":2612,"stem":2613,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F5.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":2615,"stem":2616,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F5.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":932,"path":2618,"stem":2619,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F5.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":936,"path":2621,"stem":2622,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F5.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":2624,"stem":2625,"children":2626,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting","docs\u002F5.x\u002F4.examples\u002F2.routing",[2627,2630,2633],{"title":944,"path":2628,"stem":2629,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":874,"path":2631,"stem":2632,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":951,"path":2634,"stem":2635,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":890,"path":2637,"stem":2638,"children":2639,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced","docs\u002F5.x\u002F4.examples\u002F4.advanced",[2640,2643,2646,2649,2652,2655,2658,2661,2664],{"title":84,"path":2641,"stem":2642,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":2644,"stem":2645,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":965,"path":2647,"stem":2648,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":969,"path":2650,"stem":2651,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":973,"path":2653,"stem":2654,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":977,"path":2656,"stem":2657,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":2659,"stem":2660,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":519,"path":2662,"stem":2663,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":987,"path":2665,"stem":2666,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fuse-custom-fetch-composable","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fuse-custom-fetch-composable",{"title":991,"path":2668,"stem":2669,"children":2670,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fexperimental","docs\u002F5.x\u002F4.examples\u002F7.experimental",[2671],{"title":996,"path":2672,"stem":2673,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F5.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1000,"titleTemplate":1001,"icon":1002,"path":2675,"stem":2676,"children":2677,"page":108},"\u002Fdocs\u002F5.x\u002Fcommunity","docs\u002F5.x\u002F5.community",[2678,2681,2684,2687,2690,2693],{"title":1007,"path":2679,"stem":2680,"titleTemplate":6,"icon":1010},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fgetting-help","docs\u002F5.x\u002F5.community\u002F2.getting-help",{"title":1012,"path":2682,"stem":2683,"titleTemplate":6,"icon":1015},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Freporting-bugs","docs\u002F5.x\u002F5.community\u002F3.reporting-bugs",{"title":1017,"path":2685,"stem":2686,"titleTemplate":6,"icon":1020},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fcontribution","docs\u002F5.x\u002F5.community\u002F4.contribution",{"title":1022,"path":2688,"stem":2689,"titleTemplate":6,"icon":1025},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fframework-contribution","docs\u002F5.x\u002F5.community\u002F5.framework-contribution",{"title":1027,"path":2691,"stem":2692,"titleTemplate":6,"icon":1030},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Froadmap","docs\u002F5.x\u002F5.community\u002F6.roadmap",{"title":1032,"path":2694,"stem":2695,"titleTemplate":6,"icon":1035},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fchangelog","docs\u002F5.x\u002F5.community\u002F7.changelog",{"title":1037,"titleTemplate":1038,"icon":1039,"path":2697,"stem":2698,"children":2699,"page":108},"\u002Fdocs\u002F5.x\u002Fbridge","docs\u002F5.x\u002F6.bridge",[2700,2703,2706,2709,2712,2715,2718,2721,2724,2727],{"title":1044,"path":2701,"stem":2702,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Foverview","docs\u002F5.x\u002F6.bridge\u002F1.overview",{"title":29,"path":2704,"stem":2705,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fconfiguration","docs\u002F5.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":2707,"stem":2708,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Ftypescript","docs\u002F5.x\u002F6.bridge\u002F2.typescript",{"title":1054,"path":2710,"stem":2711,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F5.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1058,"path":2713,"stem":2714,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F5.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1062,"path":2716,"stem":2717,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F5.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":932,"path":2719,"stem":2720,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fmeta","docs\u002F5.x\u002F6.bridge\u002F6.meta",{"title":399,"path":2722,"stem":2723,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fruntime-config","docs\u002F5.x\u002F6.bridge\u002F7.runtime-config",{"title":833,"path":2725,"stem":2726,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fnitro","docs\u002F5.x\u002F6.bridge\u002F8.nitro",{"title":1075,"path":2728,"stem":2729,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fvite","docs\u002F5.x\u002F6.bridge\u002F9.vite",{"title":1079,"titleTemplate":1080,"icon":107,"path":2731,"stem":2732,"children":2733,"page":108},"\u002Fdocs\u002F5.x\u002Fmigration","docs\u002F5.x\u002F7.migration",[2734,2737,2740,2743,2746,2749,2752,2755,2758,2761,2764],{"title":1044,"path":2735,"stem":2736,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Foverview","docs\u002F5.x\u002F7.migration\u002F1.overview",{"title":1088,"path":2738,"stem":2739,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fbundling","docs\u002F5.x\u002F7.migration\u002F10.bundling",{"title":79,"path":2741,"stem":2742,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fserver","docs\u002F5.x\u002F7.migration\u002F11.server",{"title":29,"path":2744,"stem":2745,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fconfiguration","docs\u002F5.x\u002F7.migration\u002F2.configuration",{"title":276,"path":2747,"stem":2748,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fmodule-authors","docs\u002F5.x\u002F7.migration\u002F20.module-authors",{"title":922,"path":2750,"stem":2751,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fauto-imports","docs\u002F5.x\u002F7.migration\u002F3.auto-imports",{"title":932,"path":2753,"stem":2754,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fmeta","docs\u002F5.x\u002F7.migration\u002F4.meta",{"title":1058,"path":2756,"stem":2757,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F5.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1110,"path":2759,"stem":2760,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F5.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1114,"path":2762,"stem":2763,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fcomponent-options","docs\u002F5.x\u002F7.migration\u002F7.component-options",{"title":399,"path":2765,"stem":2766,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fruntime-config","docs\u002F5.x\u002F7.migration\u002F8.runtime-config",{"title":2768,"path":2769,"stem":2770,"children":2771,"page":108},"Blog","\u002Fblog","blog",[2772,2776,2780,2784,2788,2792,2796,2800,2804,2808,2812,2816,2820,2824,2828,2832,2836,2840,2844,2848,2852,2856,2860,2864,2868,2872,2876,2880,2884,2888,2892,2896,2900,2904,2908,2912,2916,2920,2924,2928,2932,2936,2940,2944,2948,2952,2956],{"title":2773,"path":2774,"stem":2775},"Announcing 3.0","\u002Fblog\u002Fv3","blog\u002F1.v3",{"title":2777,"path":2778,"stem":2779},"Nuxt 3.3","\u002Fblog\u002Fv3-3","blog\u002F10.v3-3",{"title":2781,"path":2782,"stem":2783},"Nuxt 3.4","\u002Fblog\u002Fv3-4","blog\u002F11.v3-4",{"title":2785,"path":2786,"stem":2787},"Nuxt 3.5","\u002Fblog\u002Fv3-5","blog\u002F12.v3-5",{"title":2789,"path":2790,"stem":2791},"Nuxt 3.6","\u002Fblog\u002Fv3-6","blog\u002F13.v3-6",{"title":2793,"path":2794,"stem":2795},"Nuxt on the Edge","\u002Fblog\u002Fnuxt-on-the-edge","blog\u002F14.nuxt-on-the-edge",{"title":2797,"path":2798,"stem":2799},"Nuxt 3.7","\u002Fblog\u002Fv3-7","blog\u002F15.v3-7",{"title":2801,"path":2802,"stem":2803},"A New Website","\u002Fblog\u002Fnew-website","blog\u002F16.new-website",{"title":2805,"path":2806,"stem":2807},"Nuxt 3.8","\u002Fblog\u002Fv3-8","blog\u002F17.v3-8",{"title":2809,"path":2810,"stem":2811},"Nuxt DevTools v1.0","\u002Fblog\u002Fnuxt-devtools-v1-0","blog\u002F18.nuxt-devtools-v1-0",{"title":2813,"path":2814,"stem":2815},"Nuxt 3.9","\u002Fblog\u002Fv3-9","blog\u002F19.v3-9",{"title":2817,"path":2818,"stem":2819},"Nuxt: A vision for 2023","\u002Fblog\u002Fvision-2023","blog\u002F2.vision-2023",{"title":2821,"path":2822,"stem":2823},"Nuxt 3.10","\u002Fblog\u002Fv3-10","blog\u002F20.v3-10",{"title":2825,"path":2826,"stem":2827},"The Evolution of Shiki v1.0","\u002Fblog\u002Fshiki-v1","blog\u002F21.shiki-v1",{"title":2829,"path":2830,"stem":2831},"Nuxt 3.11","\u002Fblog\u002Fv3-11","blog\u002F22.v3-11",{"title":2833,"path":2834,"stem":2835},"Nuxt: Looking forward","\u002Fblog\u002Flooking-forward-2024","blog\u002F23.looking-forward-2024",{"title":2837,"path":2838,"stem":2839},"Refreshed Nuxt ESLint Integrations","\u002Fblog\u002Feslint-module","blog\u002F24.eslint-module",{"title":2841,"path":2842,"stem":2843},"Nuxt 3.12","\u002Fblog\u002Fv3-12","blog\u002F25.v3-12",{"title":2845,"path":2846,"stem":2847},"Introducing Nuxt Scripts","\u002Fblog\u002Fnuxt-scripts","blog\u002F26.nuxt-scripts",{"title":2849,"path":2850,"stem":2851},"Nuxt 3.13","\u002Fblog\u002Fv3-13","blog\u002F27.v3-13",{"title":2853,"path":2854,"stem":2855},"Nuxt 3.14","\u002Fblog\u002Fv3-14","blog\u002F27.v3-14",{"title":2857,"path":2858,"stem":2859},"Introducing Nuxt Icon v1","\u002Fblog\u002Fnuxt-icon-v1-0","blog\u002F29.nuxt-icon-v1-0",{"title":2861,"path":2862,"stem":2863},"Introducing Nuxt DevTools","\u002Fblog\u002Fintroducing-nuxt-devtools","blog\u002F3.introducing-nuxt-devtools",{"title":2865,"path":2866,"stem":2867},"Announcing Nuxt 3 Release Candidate","\u002Fblog\u002Fnuxt3-rc","blog\u002F3.nuxt3-rc",{"title":2869,"path":2870,"stem":2871},"Nuxt 3.15","\u002Fblog\u002Fv3-15","blog\u002F30.v3-15",{"title":2873,"path":2874,"stem":2875},"Nuxt 3.16","\u002Fblog\u002Fv3-16","blog\u002F31.v3-16",{"title":2877,"path":2878,"stem":2879},"Nuxt UI v3","\u002Fblog\u002Fnuxt-ui-v3","blog\u002F32.nuxt-ui-v3",{"title":2881,"path":2882,"stem":2883},"Nuxt 3.17","\u002Fblog\u002Fv3-17","blog\u002F33.v3-17",{"title":2885,"path":2886,"stem":2887},"Roadmap to v4","\u002Fblog\u002Froadmap-v4","blog\u002F34.roadmap-v4",{"title":2889,"path":2890,"stem":2891},"Building a Privacy-First Feedback Widget","\u002Fblog\u002Fbuilding-a-feedback-widget","blog\u002F35.building-a-feedback-widget",{"title":2893,"path":2894,"stem":2895},"Announcing Nuxt 4.0","\u002Fblog\u002Fv4","blog\u002F36.v4",{"title":2897,"path":2898,"stem":2899},"Nuxt 3.18","\u002Fblog\u002Fv3-18","blog\u002F37.v3-18",{"title":2901,"path":2902,"stem":2903},"Nuxt 4.1","\u002Fblog\u002Fv4-1","blog\u002F38.v4-1",{"title":2905,"path":2906,"stem":2907},"Nuxt UI v4","\u002Fblog\u002Fnuxt-ui-v4","blog\u002F39.nuxt-ui-v4",{"title":2909,"path":2910,"stem":2911},"Nuxt 2 End-of-Life (EOL)","\u002Fblog\u002Fnuxt2-eol","blog\u002F4.nuxt2-eol",{"title":2913,"path":2914,"stem":2915},"Introducing Nuxt 3 Beta","\u002Fblog\u002Fnuxt3-beta","blog\u002F4.nuxt3-beta",{"title":2917,"path":2918,"stem":2919},"Building an MCP Server for Nuxt","\u002Fblog\u002Fbuilding-nuxt-mcp","blog\u002F40.building-nuxt-mcp",{"title":2921,"path":2922,"stem":2923},"Nuxt 4.2","\u002Fblog\u002Fv4-2","blog\u002F40.v4-2",{"title":2925,"path":2926,"stem":2927},"Nuxt Image v2","\u002Fblog\u002Fnuxt-image-v2","blog\u002F41.nuxt-image-v2",{"title":2929,"path":2930,"stem":2931},"Nuxt 4.3","\u002Fblog\u002Fv4-3","blog\u002F42.v4-3",{"title":2933,"path":2934,"stem":2935},"Nuxt 4.4","\u002Fblog\u002Fv4-4","blog\u002F43.v4-4",{"title":2937,"path":2938,"stem":2939},"Introducing the Nuxt Agent","\u002Fblog\u002Fintroducing-nuxt-agent","blog\u002F44.introducing-nuxt-agent",{"title":2941,"path":2942,"stem":2943},"Going Full Static","\u002Fblog\u002Fgoing-full-static","blog\u002F5.going-full-static",{"title":2945,"path":2946,"stem":2947},"Introducing Smart Prefetching","\u002Fblog\u002Fintroducing-smart-prefetching","blog\u002F6.introducing-smart-prefetching",{"title":2949,"path":2950,"stem":2951},"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":2953,"path":2954,"stem":2955},"Nuxt 2 Static Improvements","\u002Fblog\u002Fnuxt-static-improvements","blog\u002F8.nuxt-static-improvements",{"title":2957,"path":2958,"stem":2959},"Nuxt 2: From Terminal to Browser","\u002Fblog\u002Fnuxtjs-from-terminal-to-browser","blog\u002F9.nuxtjs-from-terminal-to-browser",{"v5":2961,"v4":2962,"v3":2963,"v2":2964},"5 (nightly)","4.4.4","3.21.4","2.18.1",{"name":2966,"description":2967,"repo":2968,"npm":2969,"icon":2970,"github":2971,"website":2971,"learn_more":2972,"category":2973,"type":2974,"maintainers":2975,"compatibility":2981,"generatedAt":2984,"contributors":2985,"stats":3013,"readme":3021},"api-shield","Nuxt API Shield - Rate Limiting","rrd108\u002Fnuxt-api-shield","nuxt-api-shield","api-shield.png","https:\u002F\u002Fgithub.com\u002Frrd108\u002Fnuxt-api-shield","","Security","3rd-party",[2976],{"name":2977,"github":2978,"twitter":2979,"bluesky":2980},"rrd","rrd108","radharadhya","rrd108.bsky.social",{"nuxt":2982,"requires":2983},">=3.0.0",{},"2026-05-09T05:48:37.410Z",[2986,2989,2993,2997,3001,3004,3007,3010],{"id":2987,"username":2978,"contributions":2988},3147489,260,{"id":2990,"username":2991,"contributions":2992},31929574,"ravesandstorm",5,{"id":2994,"username":2995,"contributions":2996},28706372,"danielroe",2,{"id":2998,"username":2999,"contributions":3000},20068593,"kschnekenburger",1,{"id":3002,"username":3003,"contributions":3000},32599710,"simonmaass",{"id":3005,"username":3006,"contributions":3000},125942725,"nd2024",{"id":3008,"username":3009,"contributions":3000},10197526,"chachew",{"id":3011,"username":3012,"contributions":3000},55457896,"LeeKrane",{"version":3014,"downloads":3015,"stars":3016,"watchers":3000,"forks":3017,"defaultBranch":3018,"publishedAt":3019,"createdAt":3020},"0.10.2",3572,52,9,"main",1774886807236,1711731542236,{"data":3022,"body":3024,"toc":9052},{"title":3023,"description":2972},"Nuxt API Shield",{"type":3025,"children":3026},"root",[3027,3034,3079,3084,3110,3116,3314,3320,3334,3444,3469,3474,3835,3853,4243,4257,4286,4391,4410,4422,4586,4591,4800,4811,4877,5096,5101,5107,5126,5133,5146,5159,5829,5853,5859,5888,5899,7128,7168,7195,7201,7206,7218,7229,7336,7344,7758,7769,7774,7825,7831,7848,7877,7881,7887,7899,8377,8383,8396,8402,8493,8499,8528,8534,8572,8578,8584,8594,8690,8696,8787,8800,8811,8831,8837,9046],{"type":3028,"tag":3029,"props":3030,"children":3031},"element","h1",{"id":2969},[3032],{"type":3033,"value":3023},"text",{"type":3028,"tag":3035,"props":3036,"children":3037},"p",{},[3038,3051,3060,3069],{"type":3028,"tag":3039,"props":3040,"children":3044},"a",{"href":3041,"rel":3042},"https:\u002F\u002Fnpmjs.com\u002Fpackage\u002Fnuxt-api-shield",[3043],"nofollow",[3045],{"type":3028,"tag":3046,"props":3047,"children":3050},"img",{"alt":3048,"src":3049},"npm version","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fnuxt-api-shield\u002Flatest.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":3028,"tag":3039,"props":3052,"children":3054},{"href":3041,"rel":3053},[3043],[3055],{"type":3028,"tag":3046,"props":3056,"children":3059},{"alt":3057,"src":3058},"npm downloads","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Fnuxt-api-shield.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":3028,"tag":3039,"props":3061,"children":3063},{"href":3041,"rel":3062},[3043],[3064],{"type":3028,"tag":3046,"props":3065,"children":3068},{"alt":3066,"src":3067},"License","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fl\u002Fnuxt-api-shield.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":3028,"tag":3039,"props":3070,"children":3073},{"href":3071,"rel":3072},"https:\u002F\u002Fnuxt.com",[3043],[3074],{"type":3028,"tag":3046,"props":3075,"children":3078},{"alt":3076,"src":3077},"Nuxt","https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNuxt-020420?logo=nuxt.js",[],{"type":3028,"tag":3035,"props":3080,"children":3081},{},[3082],{"type":3033,"value":3083},"This Nuxt module implements a rate limiting middleware to protect your API endpoints from excessive requests.",{"type":3028,"tag":3085,"props":3086,"children":3087},"ul",{},[3088],{"type":3028,"tag":3089,"props":3090,"children":3091},"li",{},[3092,3098],{"type":3028,"tag":3039,"props":3093,"children":3095},{"href":3094},"\u002FCHANGELOG.md",[3096],{"type":3033,"value":3097},"✨  Release Notes",{"type":3028,"tag":3085,"props":3099,"children":3100},{},[3101],{"type":3028,"tag":3089,"props":3102,"children":3103},{},[3104],{"type":3028,"tag":3039,"props":3105,"children":3107},{"href":2971,"rel":3106},[3043],[3108],{"type":3033,"value":3109},"📖  Documentation",{"type":3028,"tag":3111,"props":3112,"children":3114},"h2",{"id":3113},"features",[3115],{"type":3033,"value":395},{"type":3028,"tag":3085,"props":3117,"children":3118},{},[3119,3141,3198,3219,3240,3261,3293],{"type":3028,"tag":3089,"props":3120,"children":3121},{},[3122,3128],{"type":3028,"tag":3123,"props":3124,"children":3125},"strong",{},[3126],{"type":3033,"value":3127},"IP-Based Rate limiting and Brute Force Protection",{"type":3028,"tag":3085,"props":3129,"children":3130},{},[3131,3136],{"type":3028,"tag":3089,"props":3132,"children":3133},{},[3134],{"type":3033,"value":3135},"Tracks and enforces rate limits for individual IP addresses.",{"type":3028,"tag":3089,"props":3137,"children":3138},{},[3139],{"type":3033,"value":3140},"Prevents malicious actors or excessive requests from a single source from overwhelming your API.",{"type":3028,"tag":3089,"props":3142,"children":3143},{},[3144,3149],{"type":3028,"tag":3123,"props":3145,"children":3146},{},[3147],{"type":3033,"value":3148},"Customizable Rate Limits",{"type":3028,"tag":3085,"props":3150,"children":3151},{},[3152,3157,3169,3174,3179,3193],{"type":3028,"tag":3089,"props":3153,"children":3154},{},[3155],{"type":3033,"value":3156},"Configure maximum request count, duration within which the limit applies, and a ban period for exceeding the limit.",{"type":3028,"tag":3089,"props":3158,"children":3159},{},[3160,3162,3167],{"type":3033,"value":3161},"If the request limit is exceeded, the user is banned for the configured ban period. During the ban period, ",{"type":3028,"tag":3123,"props":3163,"children":3164},{},[3165],{"type":3033,"value":3166},"all requests are blocked with a 429 error",{"type":3033,"value":3168},", regardless of the rate limit window.",{"type":3028,"tag":3089,"props":3170,"children":3171},{},[3172],{"type":3033,"value":3173},"Add a delay to responses when a user is banned to discourage further abuse (optional).",{"type":3028,"tag":3089,"props":3175,"children":3176},{},[3177],{"type":3033,"value":3178},"Customize the error message for banned users.",{"type":3028,"tag":3089,"props":3180,"children":3181},{},[3182,3184,3191],{"type":3033,"value":3183},"Optionally include the ",{"type":3028,"tag":3185,"props":3186,"children":3188},"code",{"className":3187},[],[3189],{"type":3033,"value":3190},"Retry-After",{"type":3033,"value":3192}," header in responses when a user is banned.",{"type":3028,"tag":3089,"props":3194,"children":3195},{},[3196],{"type":3033,"value":3197},"Tailor the rate-limiting behavior to align with your API's specific needs and usage patterns.",{"type":3028,"tag":3089,"props":3199,"children":3200},{},[3201,3206],{"type":3028,"tag":3123,"props":3202,"children":3203},{},[3204],{"type":3033,"value":3205},"Event-Driven Handling",{"type":3028,"tag":3085,"props":3207,"children":3208},{},[3209,3214],{"type":3028,"tag":3089,"props":3210,"children":3211},{},[3212],{"type":3033,"value":3213},"Intercepts incoming API requests efficiently using Nuxt's event system.",{"type":3028,"tag":3089,"props":3215,"children":3216},{},[3217],{"type":3033,"value":3218},"Ensures seamless integration with your Nuxt application's request lifecycle.",{"type":3028,"tag":3089,"props":3220,"children":3221},{},[3222,3227],{"type":3028,"tag":3123,"props":3223,"children":3224},{},[3225],{"type":3033,"value":3226},"Flexible Storage",{"type":3028,"tag":3085,"props":3228,"children":3229},{},[3230,3235],{"type":3028,"tag":3089,"props":3231,"children":3232},{},[3233],{"type":3033,"value":3234},"Utilizes Nuxt's unstorage abstraction for versatile storage options.",{"type":3028,"tag":3089,"props":3236,"children":3237},{},[3238],{"type":3033,"value":3239},"Store rate-limiting data in various storage providers (filesystem, memory, databases, etc.) based on your project's requirements.",{"type":3028,"tag":3089,"props":3241,"children":3242},{},[3243,3248],{"type":3028,"tag":3123,"props":3244,"children":3245},{},[3246],{"type":3033,"value":3247},"Configurable with Runtime Config",{"type":3028,"tag":3085,"props":3249,"children":3250},{},[3251,3256],{"type":3028,"tag":3089,"props":3252,"children":3253},{},[3254],{"type":3033,"value":3255},"Easily adjust rate-limiting parameters without code changes.",{"type":3028,"tag":3089,"props":3257,"children":3258},{},[3259],{"type":3033,"value":3260},"Adapt to dynamic needs and maintain control over rate-limiting behavior through Nuxt's runtime configuration.",{"type":3028,"tag":3089,"props":3262,"children":3263},{},[3264,3269],{"type":3028,"tag":3123,"props":3265,"children":3266},{},[3267],{"type":3033,"value":3268},"Bundled cleanup tasks",{"type":3028,"tag":3085,"props":3270,"children":3271},{},[3272],{"type":3028,"tag":3089,"props":3273,"children":3274},{},[3275,3277,3283,3285,3291],{"type":3033,"value":3276},"Registers Nitro tasks ",{"type":3028,"tag":3185,"props":3278,"children":3280},{"className":3279},[],[3281],{"type":3033,"value":3282},"shield:cleanBans",{"type":3033,"value":3284}," and ",{"type":3028,"tag":3185,"props":3286,"children":3288},{"className":3287},[],[3289],{"type":3033,"value":3290},"shield:cleanIpData",{"type":3033,"value":3292}," so you can schedule maintenance without adding task files (see setup step 4).",{"type":3028,"tag":3089,"props":3294,"children":3295},{},[3296,3301],{"type":3028,"tag":3123,"props":3297,"children":3298},{},[3299],{"type":3033,"value":3300},"Clear Error Handling",{"type":3028,"tag":3085,"props":3302,"children":3303},{},[3304,3309],{"type":3028,"tag":3089,"props":3305,"children":3306},{},[3307],{"type":3033,"value":3308},"Returns a standardized 429 \"Too Many Requests\" error response when rate limits are exceeded or when a user is banned.",{"type":3028,"tag":3089,"props":3310,"children":3311},{},[3312],{"type":3033,"value":3313},"Facilitates proper error handling in client-side applications for a smooth user experience.",{"type":3028,"tag":3111,"props":3315,"children":3317},{"id":3316},"quick-setup",[3318],{"type":3033,"value":3319},"Quick Setup",{"type":3028,"tag":3321,"props":3322,"children":3324},"h3",{"id":3323},"_1-add-nuxt-api-shield-dependency-to-your-project",[3325,3327,3332],{"type":3033,"value":3326},"1. Add ",{"type":3028,"tag":3185,"props":3328,"children":3330},{"className":3329},[],[3331],{"type":3033,"value":2969},{"type":3033,"value":3333}," dependency to your project",{"type":3028,"tag":3335,"props":3336,"children":3340},"pre",{"className":3337,"code":3338,"language":3339,"meta":2972,"style":2972},"language-bash shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","# Using pnpm\npnpm add nuxt-api-shield\n\n# Using yarn\nyarn add nuxt-api-shield\n\n# Using npm\nnpm install nuxt-api-shield\n","bash",[3341],{"type":3028,"tag":3185,"props":3342,"children":3343},{"__ignoreMap":2972},[3344,3355,3375,3384,3393,3409,3417,3426],{"type":3028,"tag":3345,"props":3346,"children":3348},"span",{"class":3347,"line":3000},"line",[3349],{"type":3028,"tag":3345,"props":3350,"children":3352},{"style":3351},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[3353],{"type":3033,"value":3354},"# Using pnpm\n",{"type":3028,"tag":3345,"props":3356,"children":3357},{"class":3347,"line":2996},[3358,3364,3370],{"type":3028,"tag":3345,"props":3359,"children":3361},{"style":3360},"--shiki-light:#E2931D;--shiki-default:#E2931D;--shiki-dark:#FFCB6B",[3362],{"type":3033,"value":3363},"pnpm",{"type":3028,"tag":3345,"props":3365,"children":3367},{"style":3366},"--shiki-light:#91B859;--shiki-default:#91B859;--shiki-dark:#C3E88D",[3368],{"type":3033,"value":3369}," add",{"type":3028,"tag":3345,"props":3371,"children":3372},{"style":3366},[3373],{"type":3033,"value":3374}," nuxt-api-shield\n",{"type":3028,"tag":3345,"props":3376,"children":3378},{"class":3347,"line":3377},3,[3379],{"type":3028,"tag":3345,"props":3380,"children":3381},{"emptyLinePlaceholder":1196},[3382],{"type":3033,"value":3383},"\n",{"type":3028,"tag":3345,"props":3385,"children":3387},{"class":3347,"line":3386},4,[3388],{"type":3028,"tag":3345,"props":3389,"children":3390},{"style":3351},[3391],{"type":3033,"value":3392},"# Using yarn\n",{"type":3028,"tag":3345,"props":3394,"children":3395},{"class":3347,"line":2992},[3396,3401,3405],{"type":3028,"tag":3345,"props":3397,"children":3398},{"style":3360},[3399],{"type":3033,"value":3400},"yarn",{"type":3028,"tag":3345,"props":3402,"children":3403},{"style":3366},[3404],{"type":3033,"value":3369},{"type":3028,"tag":3345,"props":3406,"children":3407},{"style":3366},[3408],{"type":3033,"value":3374},{"type":3028,"tag":3345,"props":3410,"children":3412},{"class":3347,"line":3411},6,[3413],{"type":3028,"tag":3345,"props":3414,"children":3415},{"emptyLinePlaceholder":1196},[3416],{"type":3033,"value":3383},{"type":3028,"tag":3345,"props":3418,"children":3420},{"class":3347,"line":3419},7,[3421],{"type":3028,"tag":3345,"props":3422,"children":3423},{"style":3351},[3424],{"type":3033,"value":3425},"# Using npm\n",{"type":3028,"tag":3345,"props":3427,"children":3429},{"class":3347,"line":3428},8,[3430,3435,3440],{"type":3028,"tag":3345,"props":3431,"children":3432},{"style":3360},[3433],{"type":3033,"value":3434},"npm",{"type":3028,"tag":3345,"props":3436,"children":3437},{"style":3366},[3438],{"type":3033,"value":3439}," install",{"type":3028,"tag":3345,"props":3441,"children":3442},{"style":3366},[3443],{"type":3033,"value":3374},{"type":3028,"tag":3321,"props":3445,"children":3447},{"id":3446},"_2-add-nuxt-api-shield-to-the-modules-section-of-nuxtconfigts",[3448,3450,3455,3457,3462,3464],{"type":3033,"value":3449},"2. Add ",{"type":3028,"tag":3185,"props":3451,"children":3453},{"className":3452},[],[3454],{"type":3033,"value":2969},{"type":3033,"value":3456}," to the ",{"type":3028,"tag":3185,"props":3458,"children":3460},{"className":3459},[],[3461],{"type":3033,"value":162},{"type":3033,"value":3463}," section of ",{"type":3028,"tag":3185,"props":3465,"children":3467},{"className":3466},[],[3468],{"type":3033,"value":233},{"type":3028,"tag":3035,"props":3470,"children":3471},{},[3472],{"type":3033,"value":3473},"You should add only the values you want to use differently from the default values.",{"type":3028,"tag":3335,"props":3475,"children":3479},{"className":3476,"code":3477,"language":3478,"meta":2972,"style":2972},"language-js shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","export default defineNuxtConfig({\n  modules: [\"nuxt-api-shield\"],\n  nuxtApiShield: {\n    \u002F*limit: {\n      max: 12,        \u002F\u002F maximum requests per duration time, default is 12\u002Fduration\n      duration: 108,   \u002F\u002F duration time in seconds, default is 108 seconds\n      ban: 3600,      \u002F\u002F ban time in seconds, default is 3600 seconds = 1 hour\n      \u002F\u002F If the request limit is exceeded, the user is banned for this period. During the ban, all requests are blocked with 429.\n    },\n    delayOnBan: true  \u002F\u002F delay every response with +1sec when the user is banned, default is true\n    errorMessage: \"Too Many Requests\",  \u002F\u002F error message when the user is banned, default is \"Too Many Requests\"\n    retryAfterHeader: false, \u002F\u002F when the user is banned add the Retry-After header to the response, default is false\n    log: {\n      path: \"logs\", \u002F\u002F path to the log file, every day a new log file will be created, use \"\" to disable logging\n      attempts: 100,    \u002F\u002F if an IP reach 100 requests, all the requests will be logged, can be used for further analysis or blocking for example with fail2ban, use 0 to disable logging\n    },\n    routes: [], \u002F\u002F specify routes to apply rate limiting to, default is an empty array meaning all routes are protected.\n    \u002F\u002F Example:\n    \u002F\u002F routes: [\"\u002Fapi\u002Fv2\u002F\", \"\u002Fapi\u002Fv3\u002F\"], \u002F\u002F \u002Fapi\u002Fv1 will not be protected, \u002Fapi\u002Fv2\u002F and \u002Fapi\u002Fv3\u002F will be protected *\u002F\n    ipTTL: 604800, \u002F\u002F Optional: Time-to-live in seconds for IP tracking entries (default: 7 days). Set to 0 or negative to disable this specific cleanup.\n    security: {\n      \u002F\u002F Optional: Security-related configurations\n      trustXForwardedFor: true, \u002F\u002F Default: true. Whether to trust X-Forwarded-For headers. See warning below.\n    },\n  },\n});\n","js",[3480],{"type":3028,"tag":3185,"props":3481,"children":3482},{"__ignoreMap":2972},[3483,3515,3557,3574,3582,3590,3598,3606,3614,3622,3631,3640,3649,3658,3667,3676,3684,3693,3702,3716,3745,3762,3771,3799,3807,3816],{"type":3028,"tag":3345,"props":3484,"children":3485},{"class":3347,"line":3000},[3486,3492,3497,3503,3509],{"type":3028,"tag":3345,"props":3487,"children":3489},{"style":3488},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#39ADB5;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[3490],{"type":3033,"value":3491},"export",{"type":3028,"tag":3345,"props":3493,"children":3494},{"style":3488},[3495],{"type":3033,"value":3496}," default",{"type":3028,"tag":3345,"props":3498,"children":3500},{"style":3499},"--shiki-light:#6182B8;--shiki-default:#6182B8;--shiki-dark:#82AAFF",[3501],{"type":3033,"value":3502}," defineNuxtConfig",{"type":3028,"tag":3345,"props":3504,"children":3506},{"style":3505},"--shiki-light:#90A4AE;--shiki-default:#90A4AE;--shiki-dark:#BABED8",[3507],{"type":3033,"value":3508},"(",{"type":3028,"tag":3345,"props":3510,"children":3512},{"style":3511},"--shiki-light:#39ADB5;--shiki-default:#39ADB5;--shiki-dark:#89DDFF",[3513],{"type":3033,"value":3514},"{\n",{"type":3028,"tag":3345,"props":3516,"children":3517},{"class":3347,"line":2996},[3518,3524,3529,3534,3539,3543,3547,3552],{"type":3028,"tag":3345,"props":3519,"children":3521},{"style":3520},"--shiki-light:#E53935;--shiki-default:#E53935;--shiki-dark:#F07178",[3522],{"type":3033,"value":3523},"  modules",{"type":3028,"tag":3345,"props":3525,"children":3526},{"style":3511},[3527],{"type":3033,"value":3528},":",{"type":3028,"tag":3345,"props":3530,"children":3531},{"style":3505},[3532],{"type":3033,"value":3533}," [",{"type":3028,"tag":3345,"props":3535,"children":3536},{"style":3511},[3537],{"type":3033,"value":3538},"\"",{"type":3028,"tag":3345,"props":3540,"children":3541},{"style":3366},[3542],{"type":3033,"value":2969},{"type":3028,"tag":3345,"props":3544,"children":3545},{"style":3511},[3546],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":3548,"children":3549},{"style":3505},[3550],{"type":3033,"value":3551},"]",{"type":3028,"tag":3345,"props":3553,"children":3554},{"style":3511},[3555],{"type":3033,"value":3556},",\n",{"type":3028,"tag":3345,"props":3558,"children":3559},{"class":3347,"line":3377},[3560,3565,3569],{"type":3028,"tag":3345,"props":3561,"children":3562},{"style":3520},[3563],{"type":3033,"value":3564},"  nuxtApiShield",{"type":3028,"tag":3345,"props":3566,"children":3567},{"style":3511},[3568],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":3570,"children":3571},{"style":3511},[3572],{"type":3033,"value":3573}," {\n",{"type":3028,"tag":3345,"props":3575,"children":3576},{"class":3347,"line":3386},[3577],{"type":3028,"tag":3345,"props":3578,"children":3579},{"style":3351},[3580],{"type":3033,"value":3581},"    \u002F*limit: {\n",{"type":3028,"tag":3345,"props":3583,"children":3584},{"class":3347,"line":2992},[3585],{"type":3028,"tag":3345,"props":3586,"children":3587},{"style":3351},[3588],{"type":3033,"value":3589},"      max: 12,        \u002F\u002F maximum requests per duration time, default is 12\u002Fduration\n",{"type":3028,"tag":3345,"props":3591,"children":3592},{"class":3347,"line":3411},[3593],{"type":3028,"tag":3345,"props":3594,"children":3595},{"style":3351},[3596],{"type":3033,"value":3597},"      duration: 108,   \u002F\u002F duration time in seconds, default is 108 seconds\n",{"type":3028,"tag":3345,"props":3599,"children":3600},{"class":3347,"line":3419},[3601],{"type":3028,"tag":3345,"props":3602,"children":3603},{"style":3351},[3604],{"type":3033,"value":3605},"      ban: 3600,      \u002F\u002F ban time in seconds, default is 3600 seconds = 1 hour\n",{"type":3028,"tag":3345,"props":3607,"children":3608},{"class":3347,"line":3428},[3609],{"type":3028,"tag":3345,"props":3610,"children":3611},{"style":3351},[3612],{"type":3033,"value":3613},"      \u002F\u002F If the request limit is exceeded, the user is banned for this period. During the ban, all requests are blocked with 429.\n",{"type":3028,"tag":3345,"props":3615,"children":3616},{"class":3347,"line":3017},[3617],{"type":3028,"tag":3345,"props":3618,"children":3619},{"style":3351},[3620],{"type":3033,"value":3621},"    },\n",{"type":3028,"tag":3345,"props":3623,"children":3625},{"class":3347,"line":3624},10,[3626],{"type":3028,"tag":3345,"props":3627,"children":3628},{"style":3351},[3629],{"type":3033,"value":3630},"    delayOnBan: true  \u002F\u002F delay every response with +1sec when the user is banned, default is true\n",{"type":3028,"tag":3345,"props":3632,"children":3634},{"class":3347,"line":3633},11,[3635],{"type":3028,"tag":3345,"props":3636,"children":3637},{"style":3351},[3638],{"type":3033,"value":3639},"    errorMessage: \"Too Many Requests\",  \u002F\u002F error message when the user is banned, default is \"Too Many Requests\"\n",{"type":3028,"tag":3345,"props":3641,"children":3643},{"class":3347,"line":3642},12,[3644],{"type":3028,"tag":3345,"props":3645,"children":3646},{"style":3351},[3647],{"type":3033,"value":3648},"    retryAfterHeader: false, \u002F\u002F when the user is banned add the Retry-After header to the response, default is false\n",{"type":3028,"tag":3345,"props":3650,"children":3652},{"class":3347,"line":3651},13,[3653],{"type":3028,"tag":3345,"props":3654,"children":3655},{"style":3351},[3656],{"type":3033,"value":3657},"    log: {\n",{"type":3028,"tag":3345,"props":3659,"children":3661},{"class":3347,"line":3660},14,[3662],{"type":3028,"tag":3345,"props":3663,"children":3664},{"style":3351},[3665],{"type":3033,"value":3666},"      path: \"logs\", \u002F\u002F path to the log file, every day a new log file will be created, use \"\" to disable logging\n",{"type":3028,"tag":3345,"props":3668,"children":3670},{"class":3347,"line":3669},15,[3671],{"type":3028,"tag":3345,"props":3672,"children":3673},{"style":3351},[3674],{"type":3033,"value":3675},"      attempts: 100,    \u002F\u002F if an IP reach 100 requests, all the requests will be logged, can be used for further analysis or blocking for example with fail2ban, use 0 to disable logging\n",{"type":3028,"tag":3345,"props":3677,"children":3679},{"class":3347,"line":3678},16,[3680],{"type":3028,"tag":3345,"props":3681,"children":3682},{"style":3351},[3683],{"type":3033,"value":3621},{"type":3028,"tag":3345,"props":3685,"children":3687},{"class":3347,"line":3686},17,[3688],{"type":3028,"tag":3345,"props":3689,"children":3690},{"style":3351},[3691],{"type":3033,"value":3692},"    routes: [], \u002F\u002F specify routes to apply rate limiting to, default is an empty array meaning all routes are protected.\n",{"type":3028,"tag":3345,"props":3694,"children":3696},{"class":3347,"line":3695},18,[3697],{"type":3028,"tag":3345,"props":3698,"children":3699},{"style":3351},[3700],{"type":3033,"value":3701},"    \u002F\u002F Example:\n",{"type":3028,"tag":3345,"props":3703,"children":3705},{"class":3347,"line":3704},19,[3706,3711],{"type":3028,"tag":3345,"props":3707,"children":3708},{"style":3351},[3709],{"type":3033,"value":3710},"    \u002F\u002F routes: [\"\u002Fapi\u002Fv2\u002F\", \"\u002Fapi\u002Fv3\u002F\"],",{"type":3028,"tag":3345,"props":3712,"children":3713},{"style":3351},[3714],{"type":3033,"value":3715}," \u002F\u002F \u002Fapi\u002Fv1 will not be protected, \u002Fapi\u002Fv2\u002F and \u002Fapi\u002Fv3\u002F will be protected *\u002F\n",{"type":3028,"tag":3345,"props":3717,"children":3719},{"class":3347,"line":3718},20,[3720,3725,3729,3735,3740],{"type":3028,"tag":3345,"props":3721,"children":3722},{"style":3520},[3723],{"type":3033,"value":3724},"    ipTTL",{"type":3028,"tag":3345,"props":3726,"children":3727},{"style":3511},[3728],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":3730,"children":3732},{"style":3731},"--shiki-light:#F76D47;--shiki-default:#F76D47;--shiki-dark:#F78C6C",[3733],{"type":3033,"value":3734}," 604800",{"type":3028,"tag":3345,"props":3736,"children":3737},{"style":3511},[3738],{"type":3033,"value":3739},",",{"type":3028,"tag":3345,"props":3741,"children":3742},{"style":3351},[3743],{"type":3033,"value":3744}," \u002F\u002F Optional: Time-to-live in seconds for IP tracking entries (default: 7 days). Set to 0 or negative to disable this specific cleanup.\n",{"type":3028,"tag":3345,"props":3746,"children":3748},{"class":3347,"line":3747},21,[3749,3754,3758],{"type":3028,"tag":3345,"props":3750,"children":3751},{"style":3520},[3752],{"type":3033,"value":3753},"    security",{"type":3028,"tag":3345,"props":3755,"children":3756},{"style":3511},[3757],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":3759,"children":3760},{"style":3511},[3761],{"type":3033,"value":3573},{"type":3028,"tag":3345,"props":3763,"children":3765},{"class":3347,"line":3764},22,[3766],{"type":3028,"tag":3345,"props":3767,"children":3768},{"style":3351},[3769],{"type":3033,"value":3770},"      \u002F\u002F Optional: Security-related configurations\n",{"type":3028,"tag":3345,"props":3772,"children":3774},{"class":3347,"line":3773},23,[3775,3780,3784,3790,3794],{"type":3028,"tag":3345,"props":3776,"children":3777},{"style":3520},[3778],{"type":3033,"value":3779},"      trustXForwardedFor",{"type":3028,"tag":3345,"props":3781,"children":3782},{"style":3511},[3783],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":3785,"children":3787},{"style":3786},"--shiki-light:#FF5370;--shiki-default:#FF5370;--shiki-dark:#FF9CAC",[3788],{"type":3033,"value":3789}," true",{"type":3028,"tag":3345,"props":3791,"children":3792},{"style":3511},[3793],{"type":3033,"value":3739},{"type":3028,"tag":3345,"props":3795,"children":3796},{"style":3351},[3797],{"type":3033,"value":3798}," \u002F\u002F Default: true. Whether to trust X-Forwarded-For headers. See warning below.\n",{"type":3028,"tag":3345,"props":3800,"children":3802},{"class":3347,"line":3801},24,[3803],{"type":3028,"tag":3345,"props":3804,"children":3805},{"style":3511},[3806],{"type":3033,"value":3621},{"type":3028,"tag":3345,"props":3808,"children":3810},{"class":3347,"line":3809},25,[3811],{"type":3028,"tag":3345,"props":3812,"children":3813},{"style":3511},[3814],{"type":3033,"value":3815},"  },\n",{"type":3028,"tag":3345,"props":3817,"children":3819},{"class":3347,"line":3818},26,[3820,3825,3830],{"type":3028,"tag":3345,"props":3821,"children":3822},{"style":3511},[3823],{"type":3033,"value":3824},"}",{"type":3028,"tag":3345,"props":3826,"children":3827},{"style":3505},[3828],{"type":3033,"value":3829},")",{"type":3028,"tag":3345,"props":3831,"children":3832},{"style":3511},[3833],{"type":3033,"value":3834},";\n",{"type":3028,"tag":3035,"props":3836,"children":3837},{},[3838,3843,3845,3851],{"type":3028,"tag":3123,"props":3839,"children":3840},{},[3841],{"type":3033,"value":3842},"Default Configuration Values:",{"type":3033,"value":3844},"\n(These are applied by the module if not specified in your ",{"type":3028,"tag":3185,"props":3846,"children":3848},{"className":3847},[],[3849],{"type":3033,"value":3850},"nuxtApiShield",{"type":3033,"value":3852}," config)",{"type":3028,"tag":3335,"props":3854,"children":3856},{"className":3476,"code":3855,"language":3478,"meta":2972,"style":2972},"{\n  limit: {\n    max: 12,\n    duration: 108, \u002F\u002F seconds\n    ban: 3600,     \u002F\u002F seconds\n  },\n  delayOnBan: true,\n  errorMessage: \"Too Many Requests\",\n  retryAfterHeader: false,\n  log: {\n    path: \"logs\", \u002F\u002F Logging is disabled if path is empty\n    attempts: 100, \u002F\u002F Logging per IP is disabled if attempts is 0\n  },\n  routes: [],\n  ipTTL: 7 * 24 * 60 * 60, \u002F\u002F 7 days in seconds\n  security: {\n    trustXForwardedFor: true,\n  }\n}\n",[3857],{"type":3028,"tag":3185,"props":3858,"children":3859},{"__ignoreMap":2972},[3860,3867,3883,3904,3930,3956,3963,3983,4013,4034,4050,4084,4110,4117,4138,4191,4207,4227,4235],{"type":3028,"tag":3345,"props":3861,"children":3862},{"class":3347,"line":3000},[3863],{"type":3028,"tag":3345,"props":3864,"children":3865},{"style":3511},[3866],{"type":3033,"value":3514},{"type":3028,"tag":3345,"props":3868,"children":3869},{"class":3347,"line":2996},[3870,3875,3879],{"type":3028,"tag":3345,"props":3871,"children":3872},{"style":3360},[3873],{"type":3033,"value":3874},"  limit",{"type":3028,"tag":3345,"props":3876,"children":3877},{"style":3511},[3878],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":3880,"children":3881},{"style":3511},[3882],{"type":3033,"value":3573},{"type":3028,"tag":3345,"props":3884,"children":3885},{"class":3347,"line":3377},[3886,3891,3895,3900],{"type":3028,"tag":3345,"props":3887,"children":3888},{"style":3360},[3889],{"type":3033,"value":3890},"    max",{"type":3028,"tag":3345,"props":3892,"children":3893},{"style":3511},[3894],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":3896,"children":3897},{"style":3731},[3898],{"type":3033,"value":3899}," 12",{"type":3028,"tag":3345,"props":3901,"children":3902},{"style":3511},[3903],{"type":3033,"value":3556},{"type":3028,"tag":3345,"props":3905,"children":3906},{"class":3347,"line":3386},[3907,3912,3916,3921,3925],{"type":3028,"tag":3345,"props":3908,"children":3909},{"style":3360},[3910],{"type":3033,"value":3911},"    duration",{"type":3028,"tag":3345,"props":3913,"children":3914},{"style":3511},[3915],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":3917,"children":3918},{"style":3731},[3919],{"type":3033,"value":3920}," 108",{"type":3028,"tag":3345,"props":3922,"children":3923},{"style":3511},[3924],{"type":3033,"value":3739},{"type":3028,"tag":3345,"props":3926,"children":3927},{"style":3351},[3928],{"type":3033,"value":3929}," \u002F\u002F seconds\n",{"type":3028,"tag":3345,"props":3931,"children":3932},{"class":3347,"line":2992},[3933,3938,3942,3947,3951],{"type":3028,"tag":3345,"props":3934,"children":3935},{"style":3360},[3936],{"type":3033,"value":3937},"    ban",{"type":3028,"tag":3345,"props":3939,"children":3940},{"style":3511},[3941],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":3943,"children":3944},{"style":3731},[3945],{"type":3033,"value":3946}," 3600",{"type":3028,"tag":3345,"props":3948,"children":3949},{"style":3511},[3950],{"type":3033,"value":3739},{"type":3028,"tag":3345,"props":3952,"children":3953},{"style":3351},[3954],{"type":3033,"value":3955},"     \u002F\u002F seconds\n",{"type":3028,"tag":3345,"props":3957,"children":3958},{"class":3347,"line":3411},[3959],{"type":3028,"tag":3345,"props":3960,"children":3961},{"style":3511},[3962],{"type":3033,"value":3815},{"type":3028,"tag":3345,"props":3964,"children":3965},{"class":3347,"line":3419},[3966,3971,3975,3979],{"type":3028,"tag":3345,"props":3967,"children":3968},{"style":3360},[3969],{"type":3033,"value":3970},"  delayOnBan",{"type":3028,"tag":3345,"props":3972,"children":3973},{"style":3511},[3974],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":3976,"children":3977},{"style":3786},[3978],{"type":3033,"value":3789},{"type":3028,"tag":3345,"props":3980,"children":3981},{"style":3511},[3982],{"type":3033,"value":3556},{"type":3028,"tag":3345,"props":3984,"children":3985},{"class":3347,"line":3428},[3986,3991,3995,4000,4005,4009],{"type":3028,"tag":3345,"props":3987,"children":3988},{"style":3360},[3989],{"type":3033,"value":3990},"  errorMessage",{"type":3028,"tag":3345,"props":3992,"children":3993},{"style":3511},[3994],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":3996,"children":3997},{"style":3511},[3998],{"type":3033,"value":3999}," \"",{"type":3028,"tag":3345,"props":4001,"children":4002},{"style":3366},[4003],{"type":3033,"value":4004},"Too Many Requests",{"type":3028,"tag":3345,"props":4006,"children":4007},{"style":3511},[4008],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":4010,"children":4011},{"style":3511},[4012],{"type":3033,"value":3556},{"type":3028,"tag":3345,"props":4014,"children":4015},{"class":3347,"line":3017},[4016,4021,4025,4030],{"type":3028,"tag":3345,"props":4017,"children":4018},{"style":3360},[4019],{"type":3033,"value":4020},"  retryAfterHeader",{"type":3028,"tag":3345,"props":4022,"children":4023},{"style":3511},[4024],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":4026,"children":4027},{"style":3786},[4028],{"type":3033,"value":4029}," false",{"type":3028,"tag":3345,"props":4031,"children":4032},{"style":3511},[4033],{"type":3033,"value":3556},{"type":3028,"tag":3345,"props":4035,"children":4036},{"class":3347,"line":3624},[4037,4042,4046],{"type":3028,"tag":3345,"props":4038,"children":4039},{"style":3360},[4040],{"type":3033,"value":4041},"  log",{"type":3028,"tag":3345,"props":4043,"children":4044},{"style":3511},[4045],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":4047,"children":4048},{"style":3511},[4049],{"type":3033,"value":3573},{"type":3028,"tag":3345,"props":4051,"children":4052},{"class":3347,"line":3633},[4053,4058,4062,4066,4071,4075,4079],{"type":3028,"tag":3345,"props":4054,"children":4055},{"style":3360},[4056],{"type":3033,"value":4057},"    path",{"type":3028,"tag":3345,"props":4059,"children":4060},{"style":3511},[4061],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":4063,"children":4064},{"style":3511},[4065],{"type":3033,"value":3999},{"type":3028,"tag":3345,"props":4067,"children":4068},{"style":3366},[4069],{"type":3033,"value":4070},"logs",{"type":3028,"tag":3345,"props":4072,"children":4073},{"style":3511},[4074],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":4076,"children":4077},{"style":3511},[4078],{"type":3033,"value":3739},{"type":3028,"tag":3345,"props":4080,"children":4081},{"style":3351},[4082],{"type":3033,"value":4083}," \u002F\u002F Logging is disabled if path is empty\n",{"type":3028,"tag":3345,"props":4085,"children":4086},{"class":3347,"line":3642},[4087,4092,4096,4101,4105],{"type":3028,"tag":3345,"props":4088,"children":4089},{"style":3360},[4090],{"type":3033,"value":4091},"    attempts",{"type":3028,"tag":3345,"props":4093,"children":4094},{"style":3511},[4095],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":4097,"children":4098},{"style":3731},[4099],{"type":3033,"value":4100}," 100",{"type":3028,"tag":3345,"props":4102,"children":4103},{"style":3511},[4104],{"type":3033,"value":3739},{"type":3028,"tag":3345,"props":4106,"children":4107},{"style":3351},[4108],{"type":3033,"value":4109}," \u002F\u002F Logging per IP is disabled if attempts is 0\n",{"type":3028,"tag":3345,"props":4111,"children":4112},{"class":3347,"line":3651},[4113],{"type":3028,"tag":3345,"props":4114,"children":4115},{"style":3511},[4116],{"type":3033,"value":3815},{"type":3028,"tag":3345,"props":4118,"children":4119},{"class":3347,"line":3660},[4120,4125,4129,4134],{"type":3028,"tag":3345,"props":4121,"children":4122},{"style":3360},[4123],{"type":3033,"value":4124},"  routes",{"type":3028,"tag":3345,"props":4126,"children":4127},{"style":3511},[4128],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":4130,"children":4131},{"style":3520},[4132],{"type":3033,"value":4133}," []",{"type":3028,"tag":3345,"props":4135,"children":4136},{"style":3511},[4137],{"type":3033,"value":3556},{"type":3028,"tag":3345,"props":4139,"children":4140},{"class":3347,"line":3669},[4141,4146,4150,4155,4160,4165,4169,4174,4178,4182,4186],{"type":3028,"tag":3345,"props":4142,"children":4143},{"style":3360},[4144],{"type":3033,"value":4145},"  ipTTL",{"type":3028,"tag":3345,"props":4147,"children":4148},{"style":3511},[4149],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":4151,"children":4152},{"style":3731},[4153],{"type":3033,"value":4154}," 7",{"type":3028,"tag":3345,"props":4156,"children":4157},{"style":3511},[4158],{"type":3033,"value":4159}," *",{"type":3028,"tag":3345,"props":4161,"children":4162},{"style":3731},[4163],{"type":3033,"value":4164}," 24",{"type":3028,"tag":3345,"props":4166,"children":4167},{"style":3511},[4168],{"type":3033,"value":4159},{"type":3028,"tag":3345,"props":4170,"children":4171},{"style":3731},[4172],{"type":3033,"value":4173}," 60",{"type":3028,"tag":3345,"props":4175,"children":4176},{"style":3511},[4177],{"type":3033,"value":4159},{"type":3028,"tag":3345,"props":4179,"children":4180},{"style":3731},[4181],{"type":3033,"value":4173},{"type":3028,"tag":3345,"props":4183,"children":4184},{"style":3511},[4185],{"type":3033,"value":3739},{"type":3028,"tag":3345,"props":4187,"children":4188},{"style":3351},[4189],{"type":3033,"value":4190}," \u002F\u002F 7 days in seconds\n",{"type":3028,"tag":3345,"props":4192,"children":4193},{"class":3347,"line":3678},[4194,4199,4203],{"type":3028,"tag":3345,"props":4195,"children":4196},{"style":3360},[4197],{"type":3033,"value":4198},"  security",{"type":3028,"tag":3345,"props":4200,"children":4201},{"style":3511},[4202],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":4204,"children":4205},{"style":3511},[4206],{"type":3033,"value":3573},{"type":3028,"tag":3345,"props":4208,"children":4209},{"class":3347,"line":3686},[4210,4215,4219,4223],{"type":3028,"tag":3345,"props":4211,"children":4212},{"style":3360},[4213],{"type":3033,"value":4214},"    trustXForwardedFor",{"type":3028,"tag":3345,"props":4216,"children":4217},{"style":3511},[4218],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":4220,"children":4221},{"style":3786},[4222],{"type":3033,"value":3789},{"type":3028,"tag":3345,"props":4224,"children":4225},{"style":3511},[4226],{"type":3033,"value":3556},{"type":3028,"tag":3345,"props":4228,"children":4229},{"class":3347,"line":3695},[4230],{"type":3028,"tag":3345,"props":4231,"children":4232},{"style":3511},[4233],{"type":3033,"value":4234},"  }\n",{"type":3028,"tag":3345,"props":4236,"children":4237},{"class":3347,"line":3704},[4238],{"type":3028,"tag":3345,"props":4239,"children":4240},{"style":3511},[4241],{"type":3033,"value":4242},"}\n",{"type":3028,"tag":3035,"props":4244,"children":4245},{},[4246],{"type":3028,"tag":3123,"props":4247,"children":4248},{},[4249,4251],{"type":3033,"value":4250},"Security Warning: ",{"type":3028,"tag":3185,"props":4252,"children":4254},{"className":4253},[],[4255],{"type":3033,"value":4256},"trustXForwardedFor",{"type":3028,"tag":3035,"props":4258,"children":4259},{},[4260,4262,4268,4270,4276,4278,4284],{"type":3033,"value":4261},"The ",{"type":3028,"tag":3185,"props":4263,"children":4265},{"className":4264},[],[4266],{"type":3033,"value":4267},"security.trustXForwardedFor",{"type":3033,"value":4269}," option (default is ",{"type":3028,"tag":3185,"props":4271,"children":4273},{"className":4272},[],[4274],{"type":3033,"value":4275},"true",{"type":3033,"value":4277},", set by the module) determines if the module uses the ",{"type":3028,"tag":3185,"props":4279,"children":4281},{"className":4280},[],[4282],{"type":3033,"value":4283},"X-Forwarded-For",{"type":3033,"value":4285}," HTTP header to identify the client's IP address.",{"type":3028,"tag":3085,"props":4287,"children":4288},{},[4289,4308,4346,4366],{"type":3028,"tag":3089,"props":4290,"children":4291},{},[4292,4294,4299,4301,4306],{"type":3033,"value":4293},"If set to ",{"type":3028,"tag":3185,"props":4295,"children":4297},{"className":4296},[],[4298],{"type":3033,"value":4275},{"type":3033,"value":4300},": The module will use the IP address provided in the ",{"type":3028,"tag":3185,"props":4302,"children":4304},{"className":4303},[],[4305],{"type":3033,"value":4283},{"type":3033,"value":4307}," header. This is common when your Nuxt application is behind a trusted reverse proxy, load balancer, or CDN (like Nginx, Cloudflare, AWS ELB\u002FALB) that correctly sets this header with the real client IP.",{"type":3028,"tag":3089,"props":4309,"children":4310},{},[4311,4316,4318,4323,4325,4330,4332,4337,4339,4344],{"type":3028,"tag":3123,"props":4312,"children":4313},{},[4314],{"type":3033,"value":4315},"WARNING:",{"type":3033,"value":4317}," If ",{"type":3028,"tag":3185,"props":4319,"children":4321},{"className":4320},[],[4322],{"type":3033,"value":4256},{"type":3033,"value":4324}," is ",{"type":3028,"tag":3185,"props":4326,"children":4328},{"className":4327},[],[4329],{"type":3033,"value":4275},{"type":3033,"value":4331}," and your application is directly internet-facing OR your proxy is not configured to strip incoming ",{"type":3028,"tag":3185,"props":4333,"children":4335},{"className":4334},[],[4336],{"type":3033,"value":4283},{"type":3033,"value":4338}," headers from clients, malicious users can spoof their IP address by sending a fake ",{"type":3028,"tag":3185,"props":4340,"children":4342},{"className":4341},[],[4343],{"type":3033,"value":4283},{"type":3033,"value":4345}," header. This would allow them to bypass rate limits or cause other users to be incorrectly rate-limited.",{"type":3028,"tag":3089,"props":4347,"children":4348},{},[4349,4350,4356,4358,4364],{"type":3033,"value":4293},{"type":3028,"tag":3185,"props":4351,"children":4353},{"className":4352},[],[4354],{"type":3033,"value":4355},"false",{"type":3033,"value":4357},": The module will use the direct IP address of the incoming connection (i.e., ",{"type":3028,"tag":3185,"props":4359,"children":4361},{"className":4360},[],[4362],{"type":3033,"value":4363},"event.node.req.socket.remoteAddress",{"type":3033,"value":4365},"). Use this setting if your application is directly internet-facing or if you are unsure about your proxy's configuration.",{"type":3028,"tag":3089,"props":4367,"children":4368},{},[4369,4374,4376,4382,4384,4389],{"type":3028,"tag":3123,"props":4370,"children":4371},{},[4372],{"type":3033,"value":4373},"Recommendation:",{"type":3033,"value":4375}," Only enable ",{"type":3028,"tag":3185,"props":4377,"children":4379},{"className":4378},[],[4380],{"type":3033,"value":4381},"trustXForwardedFor: true",{"type":3033,"value":4383}," if you are certain your reverse proxy is correctly configured to set this header and strip any client-sent versions of it. Otherwise, set it to ",{"type":3028,"tag":3185,"props":4385,"children":4387},{"className":4386},[],[4388],{"type":3033,"value":4355},{"type":3033,"value":4390},".",{"type":3028,"tag":3321,"props":4392,"children":4394},{"id":4393},"_3-add-nitrostorage-to-nuxtconfigts",[4395,4397,4403,4405],{"type":3033,"value":4396},"3. Add ",{"type":3028,"tag":3185,"props":4398,"children":4400},{"className":4399},[],[4401],{"type":3033,"value":4402},"nitro\u002Fstorage",{"type":3033,"value":4404}," to ",{"type":3028,"tag":3185,"props":4406,"children":4408},{"className":4407},[],[4409],{"type":3033,"value":233},{"type":3028,"tag":3035,"props":4411,"children":4412},{},[4413,4415,4420],{"type":3033,"value":4414},"You can use any storage you want, but you have to use ",{"type":3028,"tag":3123,"props":4416,"children":4417},{},[4418],{"type":3033,"value":4419},"shield",{"type":3033,"value":4421}," as the name of the storage.",{"type":3028,"tag":3335,"props":4423,"children":4427},{"className":4424,"code":4425,"language":4426,"meta":2972,"style":2972},"language-json shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","{\n  \"nitro\": {\n    \"storage\": {\n      \"shield\": {\n        \u002F\u002F storage name, you **must** use \"shield\" as the name\n        \"driver\": \"memory\"\n      }\n    }\n  }\n}\n","json",[4428],{"type":3028,"tag":3185,"props":4429,"children":4430},{"__ignoreMap":2972},[4431,4438,4464,4489,4513,4521,4556,4564,4572,4579],{"type":3028,"tag":3345,"props":4432,"children":4433},{"class":3347,"line":3000},[4434],{"type":3028,"tag":3345,"props":4435,"children":4436},{"style":3511},[4437],{"type":3033,"value":3514},{"type":3028,"tag":3345,"props":4439,"children":4440},{"class":3347,"line":2996},[4441,4446,4452,4456,4460],{"type":3028,"tag":3345,"props":4442,"children":4443},{"style":3511},[4444],{"type":3033,"value":4445},"  \"",{"type":3028,"tag":3345,"props":4447,"children":4449},{"style":4448},"--shiki-light:#9C3EDA;--shiki-default:#9C3EDA;--shiki-dark:#C792EA",[4450],{"type":3033,"value":4451},"nitro",{"type":3028,"tag":3345,"props":4453,"children":4454},{"style":3511},[4455],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":4457,"children":4458},{"style":3511},[4459],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":4461,"children":4462},{"style":3511},[4463],{"type":3033,"value":3573},{"type":3028,"tag":3345,"props":4465,"children":4466},{"class":3347,"line":3377},[4467,4472,4477,4481,4485],{"type":3028,"tag":3345,"props":4468,"children":4469},{"style":3511},[4470],{"type":3033,"value":4471},"    \"",{"type":3028,"tag":3345,"props":4473,"children":4474},{"style":3360},[4475],{"type":3033,"value":4476},"storage",{"type":3028,"tag":3345,"props":4478,"children":4479},{"style":3511},[4480],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":4482,"children":4483},{"style":3511},[4484],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":4486,"children":4487},{"style":3511},[4488],{"type":3033,"value":3573},{"type":3028,"tag":3345,"props":4490,"children":4491},{"class":3347,"line":3386},[4492,4497,4501,4505,4509],{"type":3028,"tag":3345,"props":4493,"children":4494},{"style":3511},[4495],{"type":3033,"value":4496},"      \"",{"type":3028,"tag":3345,"props":4498,"children":4499},{"style":3731},[4500],{"type":3033,"value":4419},{"type":3028,"tag":3345,"props":4502,"children":4503},{"style":3511},[4504],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":4506,"children":4507},{"style":3511},[4508],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":4510,"children":4511},{"style":3511},[4512],{"type":3033,"value":3573},{"type":3028,"tag":3345,"props":4514,"children":4515},{"class":3347,"line":2992},[4516],{"type":3028,"tag":3345,"props":4517,"children":4518},{"style":3351},[4519],{"type":3033,"value":4520},"        \u002F\u002F storage name, you **must** use \"shield\" as the name\n",{"type":3028,"tag":3345,"props":4522,"children":4523},{"class":3347,"line":3411},[4524,4529,4534,4538,4542,4546,4551],{"type":3028,"tag":3345,"props":4525,"children":4526},{"style":3511},[4527],{"type":3033,"value":4528},"        \"",{"type":3028,"tag":3345,"props":4530,"children":4531},{"style":3520},[4532],{"type":3033,"value":4533},"driver",{"type":3028,"tag":3345,"props":4535,"children":4536},{"style":3511},[4537],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":4539,"children":4540},{"style":3511},[4541],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":4543,"children":4544},{"style":3511},[4545],{"type":3033,"value":3999},{"type":3028,"tag":3345,"props":4547,"children":4548},{"style":3366},[4549],{"type":3033,"value":4550},"memory",{"type":3028,"tag":3345,"props":4552,"children":4553},{"style":3511},[4554],{"type":3033,"value":4555},"\"\n",{"type":3028,"tag":3345,"props":4557,"children":4558},{"class":3347,"line":3419},[4559],{"type":3028,"tag":3345,"props":4560,"children":4561},{"style":3511},[4562],{"type":3033,"value":4563},"      }\n",{"type":3028,"tag":3345,"props":4565,"children":4566},{"class":3347,"line":3428},[4567],{"type":3028,"tag":3345,"props":4568,"children":4569},{"style":3511},[4570],{"type":3033,"value":4571},"    }\n",{"type":3028,"tag":3345,"props":4573,"children":4574},{"class":3347,"line":3017},[4575],{"type":3028,"tag":3345,"props":4576,"children":4577},{"style":3511},[4578],{"type":3033,"value":4234},{"type":3028,"tag":3345,"props":4580,"children":4581},{"class":3347,"line":3624},[4582],{"type":3028,"tag":3345,"props":4583,"children":4584},{"style":3511},[4585],{"type":3033,"value":4242},{"type":3028,"tag":3035,"props":4587,"children":4588},{},[4589],{"type":3033,"value":4590},"If you use for example redis, you can use the following configuration, define the host and port.",{"type":3028,"tag":3335,"props":4592,"children":4594},{"className":4424,"code":4593,"language":4426,"meta":2972,"style":2972},"{\n  \"nitro\": {\n    \"storage\": {\n      \"shield\": {\n        \"driver\": \"redis\",\n        \"host\": \"localhost\",\n        \"port\": 6379\n      }\n    }\n  }\n}\n",[4595],{"type":3028,"tag":3185,"props":4596,"children":4597},{"__ignoreMap":2972},[4598,4605,4628,4651,4674,4710,4747,4772,4779,4786,4793],{"type":3028,"tag":3345,"props":4599,"children":4600},{"class":3347,"line":3000},[4601],{"type":3028,"tag":3345,"props":4602,"children":4603},{"style":3511},[4604],{"type":3033,"value":3514},{"type":3028,"tag":3345,"props":4606,"children":4607},{"class":3347,"line":2996},[4608,4612,4616,4620,4624],{"type":3028,"tag":3345,"props":4609,"children":4610},{"style":3511},[4611],{"type":3033,"value":4445},{"type":3028,"tag":3345,"props":4613,"children":4614},{"style":4448},[4615],{"type":3033,"value":4451},{"type":3028,"tag":3345,"props":4617,"children":4618},{"style":3511},[4619],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":4621,"children":4622},{"style":3511},[4623],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":4625,"children":4626},{"style":3511},[4627],{"type":3033,"value":3573},{"type":3028,"tag":3345,"props":4629,"children":4630},{"class":3347,"line":3377},[4631,4635,4639,4643,4647],{"type":3028,"tag":3345,"props":4632,"children":4633},{"style":3511},[4634],{"type":3033,"value":4471},{"type":3028,"tag":3345,"props":4636,"children":4637},{"style":3360},[4638],{"type":3033,"value":4476},{"type":3028,"tag":3345,"props":4640,"children":4641},{"style":3511},[4642],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":4644,"children":4645},{"style":3511},[4646],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":4648,"children":4649},{"style":3511},[4650],{"type":3033,"value":3573},{"type":3028,"tag":3345,"props":4652,"children":4653},{"class":3347,"line":3386},[4654,4658,4662,4666,4670],{"type":3028,"tag":3345,"props":4655,"children":4656},{"style":3511},[4657],{"type":3033,"value":4496},{"type":3028,"tag":3345,"props":4659,"children":4660},{"style":3731},[4661],{"type":3033,"value":4419},{"type":3028,"tag":3345,"props":4663,"children":4664},{"style":3511},[4665],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":4667,"children":4668},{"style":3511},[4669],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":4671,"children":4672},{"style":3511},[4673],{"type":3033,"value":3573},{"type":3028,"tag":3345,"props":4675,"children":4676},{"class":3347,"line":2992},[4677,4681,4685,4689,4693,4697,4702,4706],{"type":3028,"tag":3345,"props":4678,"children":4679},{"style":3511},[4680],{"type":3033,"value":4528},{"type":3028,"tag":3345,"props":4682,"children":4683},{"style":3520},[4684],{"type":3033,"value":4533},{"type":3028,"tag":3345,"props":4686,"children":4687},{"style":3511},[4688],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":4690,"children":4691},{"style":3511},[4692],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":4694,"children":4695},{"style":3511},[4696],{"type":3033,"value":3999},{"type":3028,"tag":3345,"props":4698,"children":4699},{"style":3366},[4700],{"type":3033,"value":4701},"redis",{"type":3028,"tag":3345,"props":4703,"children":4704},{"style":3511},[4705],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":4707,"children":4708},{"style":3511},[4709],{"type":3033,"value":3556},{"type":3028,"tag":3345,"props":4711,"children":4712},{"class":3347,"line":3411},[4713,4717,4722,4726,4730,4734,4739,4743],{"type":3028,"tag":3345,"props":4714,"children":4715},{"style":3511},[4716],{"type":3033,"value":4528},{"type":3028,"tag":3345,"props":4718,"children":4719},{"style":3520},[4720],{"type":3033,"value":4721},"host",{"type":3028,"tag":3345,"props":4723,"children":4724},{"style":3511},[4725],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":4727,"children":4728},{"style":3511},[4729],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":4731,"children":4732},{"style":3511},[4733],{"type":3033,"value":3999},{"type":3028,"tag":3345,"props":4735,"children":4736},{"style":3366},[4737],{"type":3033,"value":4738},"localhost",{"type":3028,"tag":3345,"props":4740,"children":4741},{"style":3511},[4742],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":4744,"children":4745},{"style":3511},[4746],{"type":3033,"value":3556},{"type":3028,"tag":3345,"props":4748,"children":4749},{"class":3347,"line":3419},[4750,4754,4759,4763,4767],{"type":3028,"tag":3345,"props":4751,"children":4752},{"style":3511},[4753],{"type":3033,"value":4528},{"type":3028,"tag":3345,"props":4755,"children":4756},{"style":3520},[4757],{"type":3033,"value":4758},"port",{"type":3028,"tag":3345,"props":4760,"children":4761},{"style":3511},[4762],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":4764,"children":4765},{"style":3511},[4766],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":4768,"children":4769},{"style":3731},[4770],{"type":3033,"value":4771}," 6379\n",{"type":3028,"tag":3345,"props":4773,"children":4774},{"class":3347,"line":3428},[4775],{"type":3028,"tag":3345,"props":4776,"children":4777},{"style":3511},[4778],{"type":3033,"value":4563},{"type":3028,"tag":3345,"props":4780,"children":4781},{"class":3347,"line":3017},[4782],{"type":3028,"tag":3345,"props":4783,"children":4784},{"style":3511},[4785],{"type":3033,"value":4571},{"type":3028,"tag":3345,"props":4787,"children":4788},{"class":3347,"line":3624},[4789],{"type":3028,"tag":3345,"props":4790,"children":4791},{"style":3511},[4792],{"type":3033,"value":4234},{"type":3028,"tag":3345,"props":4794,"children":4795},{"class":3347,"line":3633},[4796],{"type":3028,"tag":3345,"props":4797,"children":4798},{"style":3511},[4799],{"type":3033,"value":4242},{"type":3028,"tag":3321,"props":4801,"children":4803},{"id":4802},"_4-schedule-bundled-cleanup-tasks-in-nuxtconfigts",[4804,4806],{"type":3033,"value":4805},"4. Schedule bundled cleanup tasks in ",{"type":3028,"tag":3185,"props":4807,"children":4809},{"className":4808},[],[4810],{"type":3033,"value":233},{"type":3028,"tag":3035,"props":4812,"children":4813},{},[4814,4816,4821,4823,4829,4831,4836,4838,4844,4846,4852,4854,4860,4862,4867,4869,4875],{"type":3033,"value":4815},"The module registers two Nitro tasks for you: ",{"type":3028,"tag":3185,"props":4817,"children":4819},{"className":4818},[],[4820],{"type":3033,"value":3282},{"type":3033,"value":4822}," (removes expired ",{"type":3028,"tag":3185,"props":4824,"children":4826},{"className":4825},[],[4827],{"type":3033,"value":4828},"ban:*",{"type":3033,"value":4830}," keys) and ",{"type":3028,"tag":3185,"props":4832,"children":4834},{"className":4833},[],[4835],{"type":3033,"value":3290},{"type":3033,"value":4837}," (removes stale ",{"type":3028,"tag":3185,"props":4839,"children":4841},{"className":4840},[],[4842],{"type":3033,"value":4843},"ip:*",{"type":3033,"value":4845}," keys using ",{"type":3028,"tag":3185,"props":4847,"children":4849},{"className":4848},[],[4850],{"type":3033,"value":4851},"ipTTL",{"type":3033,"value":4853},"). Turn on Nitro tasks and add ",{"type":3028,"tag":3185,"props":4855,"children":4857},{"className":4856},[],[4858],{"type":3033,"value":4859},"scheduledTasks",{"type":3033,"value":4861}," so they run on a cadence you choose. You do ",{"type":3028,"tag":3123,"props":4863,"children":4864},{},[4865],{"type":3033,"value":4866},"not",{"type":3033,"value":4868}," need files under ",{"type":3028,"tag":3185,"props":4870,"children":4872},{"className":4871},[],[4873],{"type":3033,"value":4874},"server\u002Ftasks\u002F",{"type":3033,"value":4876}," for this default setup.",{"type":3028,"tag":3335,"props":4878,"children":4880},{"className":4424,"code":4879,"language":4426,"meta":2972,"style":2972},"{\n  \"nitro\": {\n    \"experimental\": {\n      \"tasks\": true\n    },\n    \"scheduledTasks\": {\n      \"*\u002F15 * * * *\": [\"shield:cleanBans\"],\n      \"0 0 * * *\": [\"shield:cleanIpData\"]\n    }\n  }\n}\n",[4881],{"type":3028,"tag":3185,"props":4882,"children":4883},{"__ignoreMap":2972},[4884,4891,4914,4938,4963,4970,4993,5034,5075,5082,5089],{"type":3028,"tag":3345,"props":4885,"children":4886},{"class":3347,"line":3000},[4887],{"type":3028,"tag":3345,"props":4888,"children":4889},{"style":3511},[4890],{"type":3033,"value":3514},{"type":3028,"tag":3345,"props":4892,"children":4893},{"class":3347,"line":2996},[4894,4898,4902,4906,4910],{"type":3028,"tag":3345,"props":4895,"children":4896},{"style":3511},[4897],{"type":3033,"value":4445},{"type":3028,"tag":3345,"props":4899,"children":4900},{"style":4448},[4901],{"type":3033,"value":4451},{"type":3028,"tag":3345,"props":4903,"children":4904},{"style":3511},[4905],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":4907,"children":4908},{"style":3511},[4909],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":4911,"children":4912},{"style":3511},[4913],{"type":3033,"value":3573},{"type":3028,"tag":3345,"props":4915,"children":4916},{"class":3347,"line":3377},[4917,4921,4926,4930,4934],{"type":3028,"tag":3345,"props":4918,"children":4919},{"style":3511},[4920],{"type":3033,"value":4471},{"type":3028,"tag":3345,"props":4922,"children":4923},{"style":3360},[4924],{"type":3033,"value":4925},"experimental",{"type":3028,"tag":3345,"props":4927,"children":4928},{"style":3511},[4929],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":4931,"children":4932},{"style":3511},[4933],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":4935,"children":4936},{"style":3511},[4937],{"type":3033,"value":3573},{"type":3028,"tag":3345,"props":4939,"children":4940},{"class":3347,"line":3386},[4941,4945,4950,4954,4958],{"type":3028,"tag":3345,"props":4942,"children":4943},{"style":3511},[4944],{"type":3033,"value":4496},{"type":3028,"tag":3345,"props":4946,"children":4947},{"style":3731},[4948],{"type":3033,"value":4949},"tasks",{"type":3028,"tag":3345,"props":4951,"children":4952},{"style":3511},[4953],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":4955,"children":4956},{"style":3511},[4957],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":4959,"children":4960},{"style":3511},[4961],{"type":3033,"value":4962}," true\n",{"type":3028,"tag":3345,"props":4964,"children":4965},{"class":3347,"line":2992},[4966],{"type":3028,"tag":3345,"props":4967,"children":4968},{"style":3511},[4969],{"type":3033,"value":3621},{"type":3028,"tag":3345,"props":4971,"children":4972},{"class":3347,"line":3411},[4973,4977,4981,4985,4989],{"type":3028,"tag":3345,"props":4974,"children":4975},{"style":3511},[4976],{"type":3033,"value":4471},{"type":3028,"tag":3345,"props":4978,"children":4979},{"style":3360},[4980],{"type":3033,"value":4859},{"type":3028,"tag":3345,"props":4982,"children":4983},{"style":3511},[4984],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":4986,"children":4987},{"style":3511},[4988],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":4990,"children":4991},{"style":3511},[4992],{"type":3033,"value":3573},{"type":3028,"tag":3345,"props":4994,"children":4995},{"class":3347,"line":3419},[4996,5000,5005,5009,5013,5017,5021,5025,5029],{"type":3028,"tag":3345,"props":4997,"children":4998},{"style":3511},[4999],{"type":3033,"value":4496},{"type":3028,"tag":3345,"props":5001,"children":5002},{"style":3731},[5003],{"type":3033,"value":5004},"*\u002F15 * * * *",{"type":3028,"tag":3345,"props":5006,"children":5007},{"style":3511},[5008],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":5010,"children":5011},{"style":3511},[5012],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":5014,"children":5015},{"style":3511},[5016],{"type":3033,"value":3533},{"type":3028,"tag":3345,"props":5018,"children":5019},{"style":3511},[5020],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":5022,"children":5023},{"style":3366},[5024],{"type":3033,"value":3282},{"type":3028,"tag":3345,"props":5026,"children":5027},{"style":3511},[5028],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":5030,"children":5031},{"style":3511},[5032],{"type":3033,"value":5033},"],\n",{"type":3028,"tag":3345,"props":5035,"children":5036},{"class":3347,"line":3428},[5037,5041,5046,5050,5054,5058,5062,5066,5070],{"type":3028,"tag":3345,"props":5038,"children":5039},{"style":3511},[5040],{"type":3033,"value":4496},{"type":3028,"tag":3345,"props":5042,"children":5043},{"style":3731},[5044],{"type":3033,"value":5045},"0 0 * * *",{"type":3028,"tag":3345,"props":5047,"children":5048},{"style":3511},[5049],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":5051,"children":5052},{"style":3511},[5053],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":5055,"children":5056},{"style":3511},[5057],{"type":3033,"value":3533},{"type":3028,"tag":3345,"props":5059,"children":5060},{"style":3511},[5061],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":5063,"children":5064},{"style":3366},[5065],{"type":3033,"value":3290},{"type":3028,"tag":3345,"props":5067,"children":5068},{"style":3511},[5069],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":5071,"children":5072},{"style":3511},[5073],{"type":3033,"value":5074},"]\n",{"type":3028,"tag":3345,"props":5076,"children":5077},{"class":3347,"line":3017},[5078],{"type":3028,"tag":3345,"props":5079,"children":5080},{"style":3511},[5081],{"type":3033,"value":4571},{"type":3028,"tag":3345,"props":5083,"children":5084},{"class":3347,"line":3624},[5085],{"type":3028,"tag":3345,"props":5086,"children":5087},{"style":3511},[5088],{"type":3033,"value":4234},{"type":3028,"tag":3345,"props":5090,"children":5091},{"class":3347,"line":3633},[5092],{"type":3028,"tag":3345,"props":5093,"children":5094},{"style":3511},[5095],{"type":3033,"value":4242},{"type":3028,"tag":3035,"props":5097,"children":5098},{},[5099],{"type":3033,"value":5100},"Cron expressions are examples only: for instance, clean expired bans every 15 minutes and IP tracking data daily at midnight.",{"type":3028,"tag":3321,"props":5102,"children":5104},{"id":5103},"_5-optional-custom-cleanup-task-implementations",[5105],{"type":3033,"value":5106},"5. Optional: custom cleanup task implementations",{"type":3028,"tag":3035,"props":5108,"children":5109},{},[5110,5112,5117,5119,5124],{"type":3033,"value":5111},"Skip this unless you need behavior different from the bundled handlers (for example extra logging, metrics, or storage layout). The snippets below mirror what the module already ships; they are useful as a reference or if you define ",{"type":3028,"tag":3123,"props":5113,"children":5114},{},[5115],{"type":3033,"value":5116},"another",{"type":3033,"value":5118}," task name and point ",{"type":3028,"tag":3185,"props":5120,"children":5122},{"className":5121},[],[5123],{"type":3033,"value":4859},{"type":3033,"value":5125}," at that name instead.",{"type":3028,"tag":5127,"props":5128,"children":5130},"h4",{"id":5129},"a-task-for-cleaning-expired-bans",[5131],{"type":3033,"value":5132},"a) Task for cleaning expired bans",{"type":3028,"tag":3035,"props":5134,"children":5135},{},[5136,5138,5144],{"type":3033,"value":5137},"Removes ban entries (",{"type":3028,"tag":3185,"props":5139,"children":5141},{"className":5140},[],[5142],{"type":3033,"value":5143},"ban:xxx.xxx.xxx.xxx",{"type":3033,"value":5145},") after the ban timestamp has passed.",{"type":3028,"tag":3035,"props":5147,"children":5148},{},[5149,5151,5157],{"type":3033,"value":5150},"Example ",{"type":3028,"tag":3185,"props":5152,"children":5154},{"className":5153},[],[5155],{"type":3033,"value":5156},"server\u002Ftasks\u002Fshield\u002FcleanBans.ts",{"type":3033,"value":5158}," (task name must match what you schedule):",{"type":3028,"tag":3335,"props":5160,"children":5164},{"className":5161,"code":5162,"language":5163,"meta":2972,"style":2972},"language-ts shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","import { isActualBanTimestampExpired } from \"#imports\"; \u002F\u002F Auto-imported utility from nuxt-api-shield\n\nexport default defineTask({\n  meta: {\n    name: \"shield:cleanBans\", \u002F\u002F Match the name in scheduledTasks\n    description: \"Clean expired bans from nuxt-api-shield storage.\",\n  },\n  async run() {\n    const shieldStorage = useStorage(\"shield\"); \u002F\u002F Use your configured storage name\n\n    \u002F\u002F Only fetch keys that start with the 'ban:' prefix\n    const banKeys = await shieldStorage.getKeys(\"ban:\");\n\n    let cleanedCount = 0;\n    for (const key of banKeys) {\n      const bannedUntilRaw = await shieldStorage.getItem(key);\n      if (isActualBanTimestampExpired(bannedUntilRaw)) {\n        await shieldStorage.removeItem(key);\n        cleanedCount++;\n      }\n    }\n    console.log(`[nuxt-api-shield] Cleaned ${cleanedCount} expired ban(s).`);\n    return { result: { cleanedCount } };\n  },\n});\n","ts",[5165],{"type":3028,"tag":3185,"props":5166,"children":5167},{"__ignoreMap":2972},[5168,5219,5226,5250,5266,5299,5328,5335,5357,5409,5416,5424,5483,5490,5516,5557,5608,5643,5680,5693,5700,5707,5769,5807,5814],{"type":3028,"tag":3345,"props":5169,"children":5170},{"class":3347,"line":3000},[5171,5176,5181,5186,5191,5196,5200,5205,5209,5214],{"type":3028,"tag":3345,"props":5172,"children":5173},{"style":3488},[5174],{"type":3033,"value":5175},"import",{"type":3028,"tag":3345,"props":5177,"children":5178},{"style":3511},[5179],{"type":3033,"value":5180}," {",{"type":3028,"tag":3345,"props":5182,"children":5183},{"style":3505},[5184],{"type":3033,"value":5185}," isActualBanTimestampExpired",{"type":3028,"tag":3345,"props":5187,"children":5188},{"style":3511},[5189],{"type":3033,"value":5190}," }",{"type":3028,"tag":3345,"props":5192,"children":5193},{"style":3488},[5194],{"type":3033,"value":5195}," from",{"type":3028,"tag":3345,"props":5197,"children":5198},{"style":3511},[5199],{"type":3033,"value":3999},{"type":3028,"tag":3345,"props":5201,"children":5202},{"style":3366},[5203],{"type":3033,"value":5204},"#imports",{"type":3028,"tag":3345,"props":5206,"children":5207},{"style":3511},[5208],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":5210,"children":5211},{"style":3511},[5212],{"type":3033,"value":5213},";",{"type":3028,"tag":3345,"props":5215,"children":5216},{"style":3351},[5217],{"type":3033,"value":5218}," \u002F\u002F Auto-imported utility from nuxt-api-shield\n",{"type":3028,"tag":3345,"props":5220,"children":5221},{"class":3347,"line":2996},[5222],{"type":3028,"tag":3345,"props":5223,"children":5224},{"emptyLinePlaceholder":1196},[5225],{"type":3033,"value":3383},{"type":3028,"tag":3345,"props":5227,"children":5228},{"class":3347,"line":3377},[5229,5233,5237,5242,5246],{"type":3028,"tag":3345,"props":5230,"children":5231},{"style":3488},[5232],{"type":3033,"value":3491},{"type":3028,"tag":3345,"props":5234,"children":5235},{"style":3488},[5236],{"type":3033,"value":3496},{"type":3028,"tag":3345,"props":5238,"children":5239},{"style":3499},[5240],{"type":3033,"value":5241}," defineTask",{"type":3028,"tag":3345,"props":5243,"children":5244},{"style":3505},[5245],{"type":3033,"value":3508},{"type":3028,"tag":3345,"props":5247,"children":5248},{"style":3511},[5249],{"type":3033,"value":3514},{"type":3028,"tag":3345,"props":5251,"children":5252},{"class":3347,"line":3386},[5253,5258,5262],{"type":3028,"tag":3345,"props":5254,"children":5255},{"style":3520},[5256],{"type":3033,"value":5257},"  meta",{"type":3028,"tag":3345,"props":5259,"children":5260},{"style":3511},[5261],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":5263,"children":5264},{"style":3511},[5265],{"type":3033,"value":3573},{"type":3028,"tag":3345,"props":5267,"children":5268},{"class":3347,"line":2992},[5269,5274,5278,5282,5286,5290,5294],{"type":3028,"tag":3345,"props":5270,"children":5271},{"style":3520},[5272],{"type":3033,"value":5273},"    name",{"type":3028,"tag":3345,"props":5275,"children":5276},{"style":3511},[5277],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":5279,"children":5280},{"style":3511},[5281],{"type":3033,"value":3999},{"type":3028,"tag":3345,"props":5283,"children":5284},{"style":3366},[5285],{"type":3033,"value":3282},{"type":3028,"tag":3345,"props":5287,"children":5288},{"style":3511},[5289],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":5291,"children":5292},{"style":3511},[5293],{"type":3033,"value":3739},{"type":3028,"tag":3345,"props":5295,"children":5296},{"style":3351},[5297],{"type":3033,"value":5298}," \u002F\u002F Match the name in scheduledTasks\n",{"type":3028,"tag":3345,"props":5300,"children":5301},{"class":3347,"line":3411},[5302,5307,5311,5315,5320,5324],{"type":3028,"tag":3345,"props":5303,"children":5304},{"style":3520},[5305],{"type":3033,"value":5306},"    description",{"type":3028,"tag":3345,"props":5308,"children":5309},{"style":3511},[5310],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":5312,"children":5313},{"style":3511},[5314],{"type":3033,"value":3999},{"type":3028,"tag":3345,"props":5316,"children":5317},{"style":3366},[5318],{"type":3033,"value":5319},"Clean expired bans from nuxt-api-shield storage.",{"type":3028,"tag":3345,"props":5321,"children":5322},{"style":3511},[5323],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":5325,"children":5326},{"style":3511},[5327],{"type":3033,"value":3556},{"type":3028,"tag":3345,"props":5329,"children":5330},{"class":3347,"line":3419},[5331],{"type":3028,"tag":3345,"props":5332,"children":5333},{"style":3511},[5334],{"type":3033,"value":3815},{"type":3028,"tag":3345,"props":5336,"children":5337},{"class":3347,"line":3428},[5338,5343,5348,5353],{"type":3028,"tag":3345,"props":5339,"children":5340},{"style":4448},[5341],{"type":3033,"value":5342},"  async",{"type":3028,"tag":3345,"props":5344,"children":5345},{"style":3520},[5346],{"type":3033,"value":5347}," run",{"type":3028,"tag":3345,"props":5349,"children":5350},{"style":3511},[5351],{"type":3033,"value":5352},"()",{"type":3028,"tag":3345,"props":5354,"children":5355},{"style":3511},[5356],{"type":3033,"value":3573},{"type":3028,"tag":3345,"props":5358,"children":5359},{"class":3347,"line":3017},[5360,5365,5370,5375,5380,5384,5388,5392,5396,5400,5404],{"type":3028,"tag":3345,"props":5361,"children":5362},{"style":4448},[5363],{"type":3033,"value":5364},"    const",{"type":3028,"tag":3345,"props":5366,"children":5367},{"style":3505},[5368],{"type":3033,"value":5369}," shieldStorage",{"type":3028,"tag":3345,"props":5371,"children":5372},{"style":3511},[5373],{"type":3033,"value":5374}," =",{"type":3028,"tag":3345,"props":5376,"children":5377},{"style":3499},[5378],{"type":3033,"value":5379}," useStorage",{"type":3028,"tag":3345,"props":5381,"children":5382},{"style":3520},[5383],{"type":3033,"value":3508},{"type":3028,"tag":3345,"props":5385,"children":5386},{"style":3511},[5387],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":5389,"children":5390},{"style":3366},[5391],{"type":3033,"value":4419},{"type":3028,"tag":3345,"props":5393,"children":5394},{"style":3511},[5395],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":5397,"children":5398},{"style":3520},[5399],{"type":3033,"value":3829},{"type":3028,"tag":3345,"props":5401,"children":5402},{"style":3511},[5403],{"type":3033,"value":5213},{"type":3028,"tag":3345,"props":5405,"children":5406},{"style":3351},[5407],{"type":3033,"value":5408}," \u002F\u002F Use your configured storage name\n",{"type":3028,"tag":3345,"props":5410,"children":5411},{"class":3347,"line":3624},[5412],{"type":3028,"tag":3345,"props":5413,"children":5414},{"emptyLinePlaceholder":1196},[5415],{"type":3033,"value":3383},{"type":3028,"tag":3345,"props":5417,"children":5418},{"class":3347,"line":3633},[5419],{"type":3028,"tag":3345,"props":5420,"children":5421},{"style":3351},[5422],{"type":3033,"value":5423},"    \u002F\u002F Only fetch keys that start with the 'ban:' prefix\n",{"type":3028,"tag":3345,"props":5425,"children":5426},{"class":3347,"line":3642},[5427,5431,5436,5440,5445,5449,5453,5458,5462,5466,5471,5475,5479],{"type":3028,"tag":3345,"props":5428,"children":5429},{"style":4448},[5430],{"type":3033,"value":5364},{"type":3028,"tag":3345,"props":5432,"children":5433},{"style":3505},[5434],{"type":3033,"value":5435}," banKeys",{"type":3028,"tag":3345,"props":5437,"children":5438},{"style":3511},[5439],{"type":3033,"value":5374},{"type":3028,"tag":3345,"props":5441,"children":5442},{"style":3488},[5443],{"type":3033,"value":5444}," await",{"type":3028,"tag":3345,"props":5446,"children":5447},{"style":3505},[5448],{"type":3033,"value":5369},{"type":3028,"tag":3345,"props":5450,"children":5451},{"style":3511},[5452],{"type":3033,"value":4390},{"type":3028,"tag":3345,"props":5454,"children":5455},{"style":3499},[5456],{"type":3033,"value":5457},"getKeys",{"type":3028,"tag":3345,"props":5459,"children":5460},{"style":3520},[5461],{"type":3033,"value":3508},{"type":3028,"tag":3345,"props":5463,"children":5464},{"style":3511},[5465],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":5467,"children":5468},{"style":3366},[5469],{"type":3033,"value":5470},"ban:",{"type":3028,"tag":3345,"props":5472,"children":5473},{"style":3511},[5474],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":5476,"children":5477},{"style":3520},[5478],{"type":3033,"value":3829},{"type":3028,"tag":3345,"props":5480,"children":5481},{"style":3511},[5482],{"type":3033,"value":3834},{"type":3028,"tag":3345,"props":5484,"children":5485},{"class":3347,"line":3651},[5486],{"type":3028,"tag":3345,"props":5487,"children":5488},{"emptyLinePlaceholder":1196},[5489],{"type":3033,"value":3383},{"type":3028,"tag":3345,"props":5491,"children":5492},{"class":3347,"line":3660},[5493,5498,5503,5507,5512],{"type":3028,"tag":3345,"props":5494,"children":5495},{"style":4448},[5496],{"type":3033,"value":5497},"    let",{"type":3028,"tag":3345,"props":5499,"children":5500},{"style":3505},[5501],{"type":3033,"value":5502}," cleanedCount",{"type":3028,"tag":3345,"props":5504,"children":5505},{"style":3511},[5506],{"type":3033,"value":5374},{"type":3028,"tag":3345,"props":5508,"children":5509},{"style":3731},[5510],{"type":3033,"value":5511}," 0",{"type":3028,"tag":3345,"props":5513,"children":5514},{"style":3511},[5515],{"type":3033,"value":3834},{"type":3028,"tag":3345,"props":5517,"children":5518},{"class":3347,"line":3669},[5519,5524,5529,5534,5539,5544,5548,5553],{"type":3028,"tag":3345,"props":5520,"children":5521},{"style":3488},[5522],{"type":3033,"value":5523},"    for",{"type":3028,"tag":3345,"props":5525,"children":5526},{"style":3520},[5527],{"type":3033,"value":5528}," (",{"type":3028,"tag":3345,"props":5530,"children":5531},{"style":4448},[5532],{"type":3033,"value":5533},"const",{"type":3028,"tag":3345,"props":5535,"children":5536},{"style":3505},[5537],{"type":3033,"value":5538}," key",{"type":3028,"tag":3345,"props":5540,"children":5541},{"style":3511},[5542],{"type":3033,"value":5543}," of",{"type":3028,"tag":3345,"props":5545,"children":5546},{"style":3505},[5547],{"type":3033,"value":5435},{"type":3028,"tag":3345,"props":5549,"children":5550},{"style":3520},[5551],{"type":3033,"value":5552},") ",{"type":3028,"tag":3345,"props":5554,"children":5555},{"style":3511},[5556],{"type":3033,"value":3514},{"type":3028,"tag":3345,"props":5558,"children":5559},{"class":3347,"line":3678},[5560,5565,5570,5574,5578,5582,5586,5591,5595,5600,5604],{"type":3028,"tag":3345,"props":5561,"children":5562},{"style":4448},[5563],{"type":3033,"value":5564},"      const",{"type":3028,"tag":3345,"props":5566,"children":5567},{"style":3505},[5568],{"type":3033,"value":5569}," bannedUntilRaw",{"type":3028,"tag":3345,"props":5571,"children":5572},{"style":3511},[5573],{"type":3033,"value":5374},{"type":3028,"tag":3345,"props":5575,"children":5576},{"style":3488},[5577],{"type":3033,"value":5444},{"type":3028,"tag":3345,"props":5579,"children":5580},{"style":3505},[5581],{"type":3033,"value":5369},{"type":3028,"tag":3345,"props":5583,"children":5584},{"style":3511},[5585],{"type":3033,"value":4390},{"type":3028,"tag":3345,"props":5587,"children":5588},{"style":3499},[5589],{"type":3033,"value":5590},"getItem",{"type":3028,"tag":3345,"props":5592,"children":5593},{"style":3520},[5594],{"type":3033,"value":3508},{"type":3028,"tag":3345,"props":5596,"children":5597},{"style":3505},[5598],{"type":3033,"value":5599},"key",{"type":3028,"tag":3345,"props":5601,"children":5602},{"style":3520},[5603],{"type":3033,"value":3829},{"type":3028,"tag":3345,"props":5605,"children":5606},{"style":3511},[5607],{"type":3033,"value":3834},{"type":3028,"tag":3345,"props":5609,"children":5610},{"class":3347,"line":3686},[5611,5616,5620,5625,5629,5634,5639],{"type":3028,"tag":3345,"props":5612,"children":5613},{"style":3488},[5614],{"type":3033,"value":5615},"      if",{"type":3028,"tag":3345,"props":5617,"children":5618},{"style":3520},[5619],{"type":3033,"value":5528},{"type":3028,"tag":3345,"props":5621,"children":5622},{"style":3499},[5623],{"type":3033,"value":5624},"isActualBanTimestampExpired",{"type":3028,"tag":3345,"props":5626,"children":5627},{"style":3520},[5628],{"type":3033,"value":3508},{"type":3028,"tag":3345,"props":5630,"children":5631},{"style":3505},[5632],{"type":3033,"value":5633},"bannedUntilRaw",{"type":3028,"tag":3345,"props":5635,"children":5636},{"style":3520},[5637],{"type":3033,"value":5638},")) ",{"type":3028,"tag":3345,"props":5640,"children":5641},{"style":3511},[5642],{"type":3033,"value":3514},{"type":3028,"tag":3345,"props":5644,"children":5645},{"class":3347,"line":3695},[5646,5651,5655,5659,5664,5668,5672,5676],{"type":3028,"tag":3345,"props":5647,"children":5648},{"style":3488},[5649],{"type":3033,"value":5650},"        await",{"type":3028,"tag":3345,"props":5652,"children":5653},{"style":3505},[5654],{"type":3033,"value":5369},{"type":3028,"tag":3345,"props":5656,"children":5657},{"style":3511},[5658],{"type":3033,"value":4390},{"type":3028,"tag":3345,"props":5660,"children":5661},{"style":3499},[5662],{"type":3033,"value":5663},"removeItem",{"type":3028,"tag":3345,"props":5665,"children":5666},{"style":3520},[5667],{"type":3033,"value":3508},{"type":3028,"tag":3345,"props":5669,"children":5670},{"style":3505},[5671],{"type":3033,"value":5599},{"type":3028,"tag":3345,"props":5673,"children":5674},{"style":3520},[5675],{"type":3033,"value":3829},{"type":3028,"tag":3345,"props":5677,"children":5678},{"style":3511},[5679],{"type":3033,"value":3834},{"type":3028,"tag":3345,"props":5681,"children":5682},{"class":3347,"line":3704},[5683,5688],{"type":3028,"tag":3345,"props":5684,"children":5685},{"style":3505},[5686],{"type":3033,"value":5687},"        cleanedCount",{"type":3028,"tag":3345,"props":5689,"children":5690},{"style":3511},[5691],{"type":3033,"value":5692},"++;\n",{"type":3028,"tag":3345,"props":5694,"children":5695},{"class":3347,"line":3718},[5696],{"type":3028,"tag":3345,"props":5697,"children":5698},{"style":3511},[5699],{"type":3033,"value":4563},{"type":3028,"tag":3345,"props":5701,"children":5702},{"class":3347,"line":3747},[5703],{"type":3028,"tag":3345,"props":5704,"children":5705},{"style":3511},[5706],{"type":3033,"value":4571},{"type":3028,"tag":3345,"props":5708,"children":5709},{"class":3347,"line":3764},[5710,5715,5719,5724,5728,5733,5738,5743,5748,5752,5757,5761,5765],{"type":3028,"tag":3345,"props":5711,"children":5712},{"style":3505},[5713],{"type":3033,"value":5714},"    console",{"type":3028,"tag":3345,"props":5716,"children":5717},{"style":3511},[5718],{"type":3033,"value":4390},{"type":3028,"tag":3345,"props":5720,"children":5721},{"style":3499},[5722],{"type":3033,"value":5723},"log",{"type":3028,"tag":3345,"props":5725,"children":5726},{"style":3520},[5727],{"type":3033,"value":3508},{"type":3028,"tag":3345,"props":5729,"children":5730},{"style":3511},[5731],{"type":3033,"value":5732},"`",{"type":3028,"tag":3345,"props":5734,"children":5735},{"style":3366},[5736],{"type":3033,"value":5737},"[nuxt-api-shield] Cleaned ",{"type":3028,"tag":3345,"props":5739,"children":5740},{"style":3511},[5741],{"type":3033,"value":5742},"${",{"type":3028,"tag":3345,"props":5744,"children":5745},{"style":3505},[5746],{"type":3033,"value":5747},"cleanedCount",{"type":3028,"tag":3345,"props":5749,"children":5750},{"style":3511},[5751],{"type":3033,"value":3824},{"type":3028,"tag":3345,"props":5753,"children":5754},{"style":3366},[5755],{"type":3033,"value":5756}," expired ban(s).",{"type":3028,"tag":3345,"props":5758,"children":5759},{"style":3511},[5760],{"type":3033,"value":5732},{"type":3028,"tag":3345,"props":5762,"children":5763},{"style":3520},[5764],{"type":3033,"value":3829},{"type":3028,"tag":3345,"props":5766,"children":5767},{"style":3511},[5768],{"type":3033,"value":3834},{"type":3028,"tag":3345,"props":5770,"children":5771},{"class":3347,"line":3773},[5772,5777,5781,5786,5790,5794,5798,5802],{"type":3028,"tag":3345,"props":5773,"children":5774},{"style":3488},[5775],{"type":3033,"value":5776},"    return",{"type":3028,"tag":3345,"props":5778,"children":5779},{"style":3511},[5780],{"type":3033,"value":5180},{"type":3028,"tag":3345,"props":5782,"children":5783},{"style":3520},[5784],{"type":3033,"value":5785}," result",{"type":3028,"tag":3345,"props":5787,"children":5788},{"style":3511},[5789],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":5791,"children":5792},{"style":3511},[5793],{"type":3033,"value":5180},{"type":3028,"tag":3345,"props":5795,"children":5796},{"style":3505},[5797],{"type":3033,"value":5502},{"type":3028,"tag":3345,"props":5799,"children":5800},{"style":3511},[5801],{"type":3033,"value":5190},{"type":3028,"tag":3345,"props":5803,"children":5804},{"style":3511},[5805],{"type":3033,"value":5806}," };\n",{"type":3028,"tag":3345,"props":5808,"children":5809},{"class":3347,"line":3801},[5810],{"type":3028,"tag":3345,"props":5811,"children":5812},{"style":3511},[5813],{"type":3033,"value":3815},{"type":3028,"tag":3345,"props":5815,"children":5816},{"class":3347,"line":3809},[5817,5821,5825],{"type":3028,"tag":3345,"props":5818,"children":5819},{"style":3511},[5820],{"type":3033,"value":3824},{"type":3028,"tag":3345,"props":5822,"children":5823},{"style":3505},[5824],{"type":3033,"value":3829},{"type":3028,"tag":3345,"props":5826,"children":5827},{"style":3511},[5828],{"type":3033,"value":3834},{"type":3028,"tag":3035,"props":5830,"children":5831},{},[5832,5833,5838,5840,5845,5847,5852],{"type":3033,"value":4261},{"type":3028,"tag":3185,"props":5834,"children":5836},{"className":5835},[],[5837],{"type":3033,"value":5624},{"type":3033,"value":5839}," utility is provided by ",{"type":3028,"tag":3185,"props":5841,"children":5843},{"className":5842},[],[5844],{"type":3033,"value":2969},{"type":3033,"value":5846}," and should be available via ",{"type":3028,"tag":3185,"props":5848,"children":5850},{"className":5849},[],[5851],{"type":3033,"value":5204},{"type":3033,"value":4390},{"type":3028,"tag":5127,"props":5854,"children":5856},{"id":5855},"b-task-for-cleaning-old-ip-tracking-data",[5857],{"type":3033,"value":5858},"b) Task for cleaning old IP tracking data",{"type":3028,"tag":3035,"props":5860,"children":5861},{},[5862,5864,5870,5872,5878,5880,5886],{"type":3033,"value":5863},"Cleans IP tracking entries (",{"type":3028,"tag":3185,"props":5865,"children":5867},{"className":5866},[],[5868],{"type":3033,"value":5869},"ip:xxx.xxx.xxx.xxx",{"type":3033,"value":5871},") whose ",{"type":3028,"tag":3185,"props":5873,"children":5875},{"className":5874},[],[5876],{"type":3033,"value":5877},"time",{"type":3033,"value":5879}," is older than ",{"type":3028,"tag":3185,"props":5881,"children":5883},{"className":5882},[],[5884],{"type":3033,"value":5885},"nuxtApiShield.ipTTL",{"type":3033,"value":5887}," (default 7 days), and drops malformed entries. That keeps storage from growing with one-off IPs that were never banned.",{"type":3028,"tag":3035,"props":5889,"children":5890},{},[5891,5892,5898],{"type":3033,"value":5150},{"type":3028,"tag":3185,"props":5893,"children":5895},{"className":5894},[],[5896],{"type":3033,"value":5897},"server\u002Ftasks\u002Fshield\u002FcleanIpData.ts",{"type":3033,"value":3528},{"type":3028,"tag":3335,"props":5900,"children":5902},{"className":5161,"code":5901,"language":5163,"meta":2972,"style":2972},"import type { RateLimit } from \"nuxt-api-shield\";\nimport { useRuntimeConfig } from \"#imports\";\n\nexport default defineTask({\n  meta: {\n    name: \"shield:cleanIpData\", \u002F\u002F Match the name in scheduledTasks\n    description: \"Clean old IP tracking data from nuxt-api-shield storage.\",\n  },\n  async run() {\n    const shieldStorage = useStorage(\"shield\");\n    const config = useRuntimeConfig().public.nuxtApiShield;\n\n    \u002F\u002F ipTTL is expected to be in seconds from config (module applies default if not set by user)\n    const ipTTLseconds = config.ipTTL;\n\n    if (!ipTTLseconds || ipTTLseconds \u003C= 0) {\n      console.log(\n        \"[nuxt-api-shield] IP data cleanup (ipTTL) is disabled or invalid.\"\n      );\n      return { result: { cleanedCount: 0 }, status: \"disabled_or_invalid_ttl\" };\n    }\n    const ipTTLms = ipTTLseconds * 1000;\n\n    const ipKeys = await shieldStorage.getKeys(\"ip:\");\n    const currentTime = Date.now();\n    let cleanedCount = 0;\n\n    for (const key of ipKeys) {\n      const entry = (await shieldStorage.getItem(key)) as RateLimit | null;\n\n      \u002F\u002F Check if entry exists and has a numeric 'time' property\n      if (entry && typeof entry.time === \"number\") {\n        if (currentTime - entry.time > ipTTLms) {\n          await shieldStorage.removeItem(key);\n          cleanedCount++;\n        }\n      } else {\n        \u002F\u002F Clean up entries that are null, not an object, or missing a numeric 'time'\n        await shieldStorage.removeItem(key);\n        cleanedCount++;\n      }\n    }\n\n    console.log(\n      `[nuxt-api-shield] Cleaned ${cleanedCount} old\u002Fmalformed IP data entries.`\n    );\n    return { result: { cleanedCount } };\n  },\n});\n",[5903],{"type":3028,"tag":3185,"props":5904,"children":5905},{"__ignoreMap":2972},[5906,5951,5991,5998,6021,6036,6067,6095,6102,6121,6164,6208,6215,6223,6255,6262,6310,6331,6347,6359,6426,6433,6466,6473,6530,6568,6591,6599,6635,6708,6716,6725,6790,6842,6879,6892,6901,6919,6928,6964,6976,6984,6992,7000,7020,7055,7068,7104,7112],{"type":3028,"tag":3345,"props":5907,"children":5908},{"class":3347,"line":3000},[5909,5913,5918,5922,5927,5931,5935,5939,5943,5947],{"type":3028,"tag":3345,"props":5910,"children":5911},{"style":3488},[5912],{"type":3033,"value":5175},{"type":3028,"tag":3345,"props":5914,"children":5915},{"style":3488},[5916],{"type":3033,"value":5917}," type",{"type":3028,"tag":3345,"props":5919,"children":5920},{"style":3511},[5921],{"type":3033,"value":5180},{"type":3028,"tag":3345,"props":5923,"children":5924},{"style":3505},[5925],{"type":3033,"value":5926}," RateLimit",{"type":3028,"tag":3345,"props":5928,"children":5929},{"style":3511},[5930],{"type":3033,"value":5190},{"type":3028,"tag":3345,"props":5932,"children":5933},{"style":3488},[5934],{"type":3033,"value":5195},{"type":3028,"tag":3345,"props":5936,"children":5937},{"style":3511},[5938],{"type":3033,"value":3999},{"type":3028,"tag":3345,"props":5940,"children":5941},{"style":3366},[5942],{"type":3033,"value":2969},{"type":3028,"tag":3345,"props":5944,"children":5945},{"style":3511},[5946],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":5948,"children":5949},{"style":3511},[5950],{"type":3033,"value":3834},{"type":3028,"tag":3345,"props":5952,"children":5953},{"class":3347,"line":2996},[5954,5958,5962,5967,5971,5975,5979,5983,5987],{"type":3028,"tag":3345,"props":5955,"children":5956},{"style":3488},[5957],{"type":3033,"value":5175},{"type":3028,"tag":3345,"props":5959,"children":5960},{"style":3511},[5961],{"type":3033,"value":5180},{"type":3028,"tag":3345,"props":5963,"children":5964},{"style":3505},[5965],{"type":3033,"value":5966}," useRuntimeConfig",{"type":3028,"tag":3345,"props":5968,"children":5969},{"style":3511},[5970],{"type":3033,"value":5190},{"type":3028,"tag":3345,"props":5972,"children":5973},{"style":3488},[5974],{"type":3033,"value":5195},{"type":3028,"tag":3345,"props":5976,"children":5977},{"style":3511},[5978],{"type":3033,"value":3999},{"type":3028,"tag":3345,"props":5980,"children":5981},{"style":3366},[5982],{"type":3033,"value":5204},{"type":3028,"tag":3345,"props":5984,"children":5985},{"style":3511},[5986],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":5988,"children":5989},{"style":3511},[5990],{"type":3033,"value":3834},{"type":3028,"tag":3345,"props":5992,"children":5993},{"class":3347,"line":3377},[5994],{"type":3028,"tag":3345,"props":5995,"children":5996},{"emptyLinePlaceholder":1196},[5997],{"type":3033,"value":3383},{"type":3028,"tag":3345,"props":5999,"children":6000},{"class":3347,"line":3386},[6001,6005,6009,6013,6017],{"type":3028,"tag":3345,"props":6002,"children":6003},{"style":3488},[6004],{"type":3033,"value":3491},{"type":3028,"tag":3345,"props":6006,"children":6007},{"style":3488},[6008],{"type":3033,"value":3496},{"type":3028,"tag":3345,"props":6010,"children":6011},{"style":3499},[6012],{"type":3033,"value":5241},{"type":3028,"tag":3345,"props":6014,"children":6015},{"style":3505},[6016],{"type":3033,"value":3508},{"type":3028,"tag":3345,"props":6018,"children":6019},{"style":3511},[6020],{"type":3033,"value":3514},{"type":3028,"tag":3345,"props":6022,"children":6023},{"class":3347,"line":2992},[6024,6028,6032],{"type":3028,"tag":3345,"props":6025,"children":6026},{"style":3520},[6027],{"type":3033,"value":5257},{"type":3028,"tag":3345,"props":6029,"children":6030},{"style":3511},[6031],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":6033,"children":6034},{"style":3511},[6035],{"type":3033,"value":3573},{"type":3028,"tag":3345,"props":6037,"children":6038},{"class":3347,"line":3411},[6039,6043,6047,6051,6055,6059,6063],{"type":3028,"tag":3345,"props":6040,"children":6041},{"style":3520},[6042],{"type":3033,"value":5273},{"type":3028,"tag":3345,"props":6044,"children":6045},{"style":3511},[6046],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":6048,"children":6049},{"style":3511},[6050],{"type":3033,"value":3999},{"type":3028,"tag":3345,"props":6052,"children":6053},{"style":3366},[6054],{"type":3033,"value":3290},{"type":3028,"tag":3345,"props":6056,"children":6057},{"style":3511},[6058],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":6060,"children":6061},{"style":3511},[6062],{"type":3033,"value":3739},{"type":3028,"tag":3345,"props":6064,"children":6065},{"style":3351},[6066],{"type":3033,"value":5298},{"type":3028,"tag":3345,"props":6068,"children":6069},{"class":3347,"line":3419},[6070,6074,6078,6082,6087,6091],{"type":3028,"tag":3345,"props":6071,"children":6072},{"style":3520},[6073],{"type":3033,"value":5306},{"type":3028,"tag":3345,"props":6075,"children":6076},{"style":3511},[6077],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":6079,"children":6080},{"style":3511},[6081],{"type":3033,"value":3999},{"type":3028,"tag":3345,"props":6083,"children":6084},{"style":3366},[6085],{"type":3033,"value":6086},"Clean old IP tracking data from nuxt-api-shield storage.",{"type":3028,"tag":3345,"props":6088,"children":6089},{"style":3511},[6090],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":6092,"children":6093},{"style":3511},[6094],{"type":3033,"value":3556},{"type":3028,"tag":3345,"props":6096,"children":6097},{"class":3347,"line":3428},[6098],{"type":3028,"tag":3345,"props":6099,"children":6100},{"style":3511},[6101],{"type":3033,"value":3815},{"type":3028,"tag":3345,"props":6103,"children":6104},{"class":3347,"line":3017},[6105,6109,6113,6117],{"type":3028,"tag":3345,"props":6106,"children":6107},{"style":4448},[6108],{"type":3033,"value":5342},{"type":3028,"tag":3345,"props":6110,"children":6111},{"style":3520},[6112],{"type":3033,"value":5347},{"type":3028,"tag":3345,"props":6114,"children":6115},{"style":3511},[6116],{"type":3033,"value":5352},{"type":3028,"tag":3345,"props":6118,"children":6119},{"style":3511},[6120],{"type":3033,"value":3573},{"type":3028,"tag":3345,"props":6122,"children":6123},{"class":3347,"line":3624},[6124,6128,6132,6136,6140,6144,6148,6152,6156,6160],{"type":3028,"tag":3345,"props":6125,"children":6126},{"style":4448},[6127],{"type":3033,"value":5364},{"type":3028,"tag":3345,"props":6129,"children":6130},{"style":3505},[6131],{"type":3033,"value":5369},{"type":3028,"tag":3345,"props":6133,"children":6134},{"style":3511},[6135],{"type":3033,"value":5374},{"type":3028,"tag":3345,"props":6137,"children":6138},{"style":3499},[6139],{"type":3033,"value":5379},{"type":3028,"tag":3345,"props":6141,"children":6142},{"style":3520},[6143],{"type":3033,"value":3508},{"type":3028,"tag":3345,"props":6145,"children":6146},{"style":3511},[6147],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":6149,"children":6150},{"style":3366},[6151],{"type":3033,"value":4419},{"type":3028,"tag":3345,"props":6153,"children":6154},{"style":3511},[6155],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":6157,"children":6158},{"style":3520},[6159],{"type":3033,"value":3829},{"type":3028,"tag":3345,"props":6161,"children":6162},{"style":3511},[6163],{"type":3033,"value":3834},{"type":3028,"tag":3345,"props":6165,"children":6166},{"class":3347,"line":3633},[6167,6171,6176,6180,6184,6188,6192,6196,6200,6204],{"type":3028,"tag":3345,"props":6168,"children":6169},{"style":4448},[6170],{"type":3033,"value":5364},{"type":3028,"tag":3345,"props":6172,"children":6173},{"style":3505},[6174],{"type":3033,"value":6175}," config",{"type":3028,"tag":3345,"props":6177,"children":6178},{"style":3511},[6179],{"type":3033,"value":5374},{"type":3028,"tag":3345,"props":6181,"children":6182},{"style":3499},[6183],{"type":3033,"value":5966},{"type":3028,"tag":3345,"props":6185,"children":6186},{"style":3520},[6187],{"type":3033,"value":5352},{"type":3028,"tag":3345,"props":6189,"children":6190},{"style":3511},[6191],{"type":3033,"value":4390},{"type":3028,"tag":3345,"props":6193,"children":6194},{"style":3505},[6195],{"type":3033,"value":180},{"type":3028,"tag":3345,"props":6197,"children":6198},{"style":3511},[6199],{"type":3033,"value":4390},{"type":3028,"tag":3345,"props":6201,"children":6202},{"style":3505},[6203],{"type":3033,"value":3850},{"type":3028,"tag":3345,"props":6205,"children":6206},{"style":3511},[6207],{"type":3033,"value":3834},{"type":3028,"tag":3345,"props":6209,"children":6210},{"class":3347,"line":3642},[6211],{"type":3028,"tag":3345,"props":6212,"children":6213},{"emptyLinePlaceholder":1196},[6214],{"type":3033,"value":3383},{"type":3028,"tag":3345,"props":6216,"children":6217},{"class":3347,"line":3651},[6218],{"type":3028,"tag":3345,"props":6219,"children":6220},{"style":3351},[6221],{"type":3033,"value":6222},"    \u002F\u002F ipTTL is expected to be in seconds from config (module applies default if not set by user)\n",{"type":3028,"tag":3345,"props":6224,"children":6225},{"class":3347,"line":3660},[6226,6230,6235,6239,6243,6247,6251],{"type":3028,"tag":3345,"props":6227,"children":6228},{"style":4448},[6229],{"type":3033,"value":5364},{"type":3028,"tag":3345,"props":6231,"children":6232},{"style":3505},[6233],{"type":3033,"value":6234}," ipTTLseconds",{"type":3028,"tag":3345,"props":6236,"children":6237},{"style":3511},[6238],{"type":3033,"value":5374},{"type":3028,"tag":3345,"props":6240,"children":6241},{"style":3505},[6242],{"type":3033,"value":6175},{"type":3028,"tag":3345,"props":6244,"children":6245},{"style":3511},[6246],{"type":3033,"value":4390},{"type":3028,"tag":3345,"props":6248,"children":6249},{"style":3505},[6250],{"type":3033,"value":4851},{"type":3028,"tag":3345,"props":6252,"children":6253},{"style":3511},[6254],{"type":3033,"value":3834},{"type":3028,"tag":3345,"props":6256,"children":6257},{"class":3347,"line":3669},[6258],{"type":3028,"tag":3345,"props":6259,"children":6260},{"emptyLinePlaceholder":1196},[6261],{"type":3033,"value":3383},{"type":3028,"tag":3345,"props":6263,"children":6264},{"class":3347,"line":3678},[6265,6270,6274,6279,6284,6289,6293,6298,6302,6306],{"type":3028,"tag":3345,"props":6266,"children":6267},{"style":3488},[6268],{"type":3033,"value":6269},"    if",{"type":3028,"tag":3345,"props":6271,"children":6272},{"style":3520},[6273],{"type":3033,"value":5528},{"type":3028,"tag":3345,"props":6275,"children":6276},{"style":3511},[6277],{"type":3033,"value":6278},"!",{"type":3028,"tag":3345,"props":6280,"children":6281},{"style":3505},[6282],{"type":3033,"value":6283},"ipTTLseconds",{"type":3028,"tag":3345,"props":6285,"children":6286},{"style":3511},[6287],{"type":3033,"value":6288}," ||",{"type":3028,"tag":3345,"props":6290,"children":6291},{"style":3505},[6292],{"type":3033,"value":6234},{"type":3028,"tag":3345,"props":6294,"children":6295},{"style":3511},[6296],{"type":3033,"value":6297}," \u003C=",{"type":3028,"tag":3345,"props":6299,"children":6300},{"style":3731},[6301],{"type":3033,"value":5511},{"type":3028,"tag":3345,"props":6303,"children":6304},{"style":3520},[6305],{"type":3033,"value":5552},{"type":3028,"tag":3345,"props":6307,"children":6308},{"style":3511},[6309],{"type":3033,"value":3514},{"type":3028,"tag":3345,"props":6311,"children":6312},{"class":3347,"line":3686},[6313,6318,6322,6326],{"type":3028,"tag":3345,"props":6314,"children":6315},{"style":3505},[6316],{"type":3033,"value":6317},"      console",{"type":3028,"tag":3345,"props":6319,"children":6320},{"style":3511},[6321],{"type":3033,"value":4390},{"type":3028,"tag":3345,"props":6323,"children":6324},{"style":3499},[6325],{"type":3033,"value":5723},{"type":3028,"tag":3345,"props":6327,"children":6328},{"style":3520},[6329],{"type":3033,"value":6330},"(\n",{"type":3028,"tag":3345,"props":6332,"children":6333},{"class":3347,"line":3695},[6334,6338,6343],{"type":3028,"tag":3345,"props":6335,"children":6336},{"style":3511},[6337],{"type":3033,"value":4528},{"type":3028,"tag":3345,"props":6339,"children":6340},{"style":3366},[6341],{"type":3033,"value":6342},"[nuxt-api-shield] IP data cleanup (ipTTL) is disabled or invalid.",{"type":3028,"tag":3345,"props":6344,"children":6345},{"style":3511},[6346],{"type":3033,"value":4555},{"type":3028,"tag":3345,"props":6348,"children":6349},{"class":3347,"line":3704},[6350,6355],{"type":3028,"tag":3345,"props":6351,"children":6352},{"style":3520},[6353],{"type":3033,"value":6354},"      )",{"type":3028,"tag":3345,"props":6356,"children":6357},{"style":3511},[6358],{"type":3033,"value":3834},{"type":3028,"tag":3345,"props":6360,"children":6361},{"class":3347,"line":3718},[6362,6367,6371,6375,6379,6383,6387,6391,6395,6400,6405,6409,6413,6418,6422],{"type":3028,"tag":3345,"props":6363,"children":6364},{"style":3488},[6365],{"type":3033,"value":6366},"      return",{"type":3028,"tag":3345,"props":6368,"children":6369},{"style":3511},[6370],{"type":3033,"value":5180},{"type":3028,"tag":3345,"props":6372,"children":6373},{"style":3520},[6374],{"type":3033,"value":5785},{"type":3028,"tag":3345,"props":6376,"children":6377},{"style":3511},[6378],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":6380,"children":6381},{"style":3511},[6382],{"type":3033,"value":5180},{"type":3028,"tag":3345,"props":6384,"children":6385},{"style":3520},[6386],{"type":3033,"value":5502},{"type":3028,"tag":3345,"props":6388,"children":6389},{"style":3511},[6390],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":6392,"children":6393},{"style":3731},[6394],{"type":3033,"value":5511},{"type":3028,"tag":3345,"props":6396,"children":6397},{"style":3511},[6398],{"type":3033,"value":6399}," },",{"type":3028,"tag":3345,"props":6401,"children":6402},{"style":3520},[6403],{"type":3033,"value":6404}," status",{"type":3028,"tag":3345,"props":6406,"children":6407},{"style":3511},[6408],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":6410,"children":6411},{"style":3511},[6412],{"type":3033,"value":3999},{"type":3028,"tag":3345,"props":6414,"children":6415},{"style":3366},[6416],{"type":3033,"value":6417},"disabled_or_invalid_ttl",{"type":3028,"tag":3345,"props":6419,"children":6420},{"style":3511},[6421],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":6423,"children":6424},{"style":3511},[6425],{"type":3033,"value":5806},{"type":3028,"tag":3345,"props":6427,"children":6428},{"class":3347,"line":3747},[6429],{"type":3028,"tag":3345,"props":6430,"children":6431},{"style":3511},[6432],{"type":3033,"value":4571},{"type":3028,"tag":3345,"props":6434,"children":6435},{"class":3347,"line":3764},[6436,6440,6445,6449,6453,6457,6462],{"type":3028,"tag":3345,"props":6437,"children":6438},{"style":4448},[6439],{"type":3033,"value":5364},{"type":3028,"tag":3345,"props":6441,"children":6442},{"style":3505},[6443],{"type":3033,"value":6444}," ipTTLms",{"type":3028,"tag":3345,"props":6446,"children":6447},{"style":3511},[6448],{"type":3033,"value":5374},{"type":3028,"tag":3345,"props":6450,"children":6451},{"style":3505},[6452],{"type":3033,"value":6234},{"type":3028,"tag":3345,"props":6454,"children":6455},{"style":3511},[6456],{"type":3033,"value":4159},{"type":3028,"tag":3345,"props":6458,"children":6459},{"style":3731},[6460],{"type":3033,"value":6461}," 1000",{"type":3028,"tag":3345,"props":6463,"children":6464},{"style":3511},[6465],{"type":3033,"value":3834},{"type":3028,"tag":3345,"props":6467,"children":6468},{"class":3347,"line":3773},[6469],{"type":3028,"tag":3345,"props":6470,"children":6471},{"emptyLinePlaceholder":1196},[6472],{"type":3033,"value":3383},{"type":3028,"tag":3345,"props":6474,"children":6475},{"class":3347,"line":3801},[6476,6480,6485,6489,6493,6497,6501,6505,6509,6513,6518,6522,6526],{"type":3028,"tag":3345,"props":6477,"children":6478},{"style":4448},[6479],{"type":3033,"value":5364},{"type":3028,"tag":3345,"props":6481,"children":6482},{"style":3505},[6483],{"type":3033,"value":6484}," ipKeys",{"type":3028,"tag":3345,"props":6486,"children":6487},{"style":3511},[6488],{"type":3033,"value":5374},{"type":3028,"tag":3345,"props":6490,"children":6491},{"style":3488},[6492],{"type":3033,"value":5444},{"type":3028,"tag":3345,"props":6494,"children":6495},{"style":3505},[6496],{"type":3033,"value":5369},{"type":3028,"tag":3345,"props":6498,"children":6499},{"style":3511},[6500],{"type":3033,"value":4390},{"type":3028,"tag":3345,"props":6502,"children":6503},{"style":3499},[6504],{"type":3033,"value":5457},{"type":3028,"tag":3345,"props":6506,"children":6507},{"style":3520},[6508],{"type":3033,"value":3508},{"type":3028,"tag":3345,"props":6510,"children":6511},{"style":3511},[6512],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":6514,"children":6515},{"style":3366},[6516],{"type":3033,"value":6517},"ip:",{"type":3028,"tag":3345,"props":6519,"children":6520},{"style":3511},[6521],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":6523,"children":6524},{"style":3520},[6525],{"type":3033,"value":3829},{"type":3028,"tag":3345,"props":6527,"children":6528},{"style":3511},[6529],{"type":3033,"value":3834},{"type":3028,"tag":3345,"props":6531,"children":6532},{"class":3347,"line":3809},[6533,6537,6542,6546,6551,6555,6560,6564],{"type":3028,"tag":3345,"props":6534,"children":6535},{"style":4448},[6536],{"type":3033,"value":5364},{"type":3028,"tag":3345,"props":6538,"children":6539},{"style":3505},[6540],{"type":3033,"value":6541}," currentTime",{"type":3028,"tag":3345,"props":6543,"children":6544},{"style":3511},[6545],{"type":3033,"value":5374},{"type":3028,"tag":3345,"props":6547,"children":6548},{"style":3505},[6549],{"type":3033,"value":6550}," Date",{"type":3028,"tag":3345,"props":6552,"children":6553},{"style":3511},[6554],{"type":3033,"value":4390},{"type":3028,"tag":3345,"props":6556,"children":6557},{"style":3499},[6558],{"type":3033,"value":6559},"now",{"type":3028,"tag":3345,"props":6561,"children":6562},{"style":3520},[6563],{"type":3033,"value":5352},{"type":3028,"tag":3345,"props":6565,"children":6566},{"style":3511},[6567],{"type":3033,"value":3834},{"type":3028,"tag":3345,"props":6569,"children":6570},{"class":3347,"line":3818},[6571,6575,6579,6583,6587],{"type":3028,"tag":3345,"props":6572,"children":6573},{"style":4448},[6574],{"type":3033,"value":5497},{"type":3028,"tag":3345,"props":6576,"children":6577},{"style":3505},[6578],{"type":3033,"value":5502},{"type":3028,"tag":3345,"props":6580,"children":6581},{"style":3511},[6582],{"type":3033,"value":5374},{"type":3028,"tag":3345,"props":6584,"children":6585},{"style":3731},[6586],{"type":3033,"value":5511},{"type":3028,"tag":3345,"props":6588,"children":6589},{"style":3511},[6590],{"type":3033,"value":3834},{"type":3028,"tag":3345,"props":6592,"children":6594},{"class":3347,"line":6593},27,[6595],{"type":3028,"tag":3345,"props":6596,"children":6597},{"emptyLinePlaceholder":1196},[6598],{"type":3033,"value":3383},{"type":3028,"tag":3345,"props":6600,"children":6602},{"class":3347,"line":6601},28,[6603,6607,6611,6615,6619,6623,6627,6631],{"type":3028,"tag":3345,"props":6604,"children":6605},{"style":3488},[6606],{"type":3033,"value":5523},{"type":3028,"tag":3345,"props":6608,"children":6609},{"style":3520},[6610],{"type":3033,"value":5528},{"type":3028,"tag":3345,"props":6612,"children":6613},{"style":4448},[6614],{"type":3033,"value":5533},{"type":3028,"tag":3345,"props":6616,"children":6617},{"style":3505},[6618],{"type":3033,"value":5538},{"type":3028,"tag":3345,"props":6620,"children":6621},{"style":3511},[6622],{"type":3033,"value":5543},{"type":3028,"tag":3345,"props":6624,"children":6625},{"style":3505},[6626],{"type":3033,"value":6484},{"type":3028,"tag":3345,"props":6628,"children":6629},{"style":3520},[6630],{"type":3033,"value":5552},{"type":3028,"tag":3345,"props":6632,"children":6633},{"style":3511},[6634],{"type":3033,"value":3514},{"type":3028,"tag":3345,"props":6636,"children":6638},{"class":3347,"line":6637},29,[6639,6643,6648,6652,6656,6661,6665,6669,6673,6677,6681,6685,6690,6694,6699,6704],{"type":3028,"tag":3345,"props":6640,"children":6641},{"style":4448},[6642],{"type":3033,"value":5564},{"type":3028,"tag":3345,"props":6644,"children":6645},{"style":3505},[6646],{"type":3033,"value":6647}," entry",{"type":3028,"tag":3345,"props":6649,"children":6650},{"style":3511},[6651],{"type":3033,"value":5374},{"type":3028,"tag":3345,"props":6653,"children":6654},{"style":3520},[6655],{"type":3033,"value":5528},{"type":3028,"tag":3345,"props":6657,"children":6658},{"style":3488},[6659],{"type":3033,"value":6660},"await",{"type":3028,"tag":3345,"props":6662,"children":6663},{"style":3505},[6664],{"type":3033,"value":5369},{"type":3028,"tag":3345,"props":6666,"children":6667},{"style":3511},[6668],{"type":3033,"value":4390},{"type":3028,"tag":3345,"props":6670,"children":6671},{"style":3499},[6672],{"type":3033,"value":5590},{"type":3028,"tag":3345,"props":6674,"children":6675},{"style":3520},[6676],{"type":3033,"value":3508},{"type":3028,"tag":3345,"props":6678,"children":6679},{"style":3505},[6680],{"type":3033,"value":5599},{"type":3028,"tag":3345,"props":6682,"children":6683},{"style":3520},[6684],{"type":3033,"value":5638},{"type":3028,"tag":3345,"props":6686,"children":6687},{"style":3488},[6688],{"type":3033,"value":6689},"as",{"type":3028,"tag":3345,"props":6691,"children":6692},{"style":3360},[6693],{"type":3033,"value":5926},{"type":3028,"tag":3345,"props":6695,"children":6696},{"style":3511},[6697],{"type":3033,"value":6698}," |",{"type":3028,"tag":3345,"props":6700,"children":6701},{"style":3360},[6702],{"type":3033,"value":6703}," null",{"type":3028,"tag":3345,"props":6705,"children":6706},{"style":3511},[6707],{"type":3033,"value":3834},{"type":3028,"tag":3345,"props":6709,"children":6711},{"class":3347,"line":6710},30,[6712],{"type":3028,"tag":3345,"props":6713,"children":6714},{"emptyLinePlaceholder":1196},[6715],{"type":3033,"value":3383},{"type":3028,"tag":3345,"props":6717,"children":6719},{"class":3347,"line":6718},31,[6720],{"type":3028,"tag":3345,"props":6721,"children":6722},{"style":3351},[6723],{"type":3033,"value":6724},"      \u002F\u002F Check if entry exists and has a numeric 'time' property\n",{"type":3028,"tag":3345,"props":6726,"children":6728},{"class":3347,"line":6727},32,[6729,6733,6737,6742,6747,6752,6756,6760,6764,6769,6773,6778,6782,6786],{"type":3028,"tag":3345,"props":6730,"children":6731},{"style":3488},[6732],{"type":3033,"value":5615},{"type":3028,"tag":3345,"props":6734,"children":6735},{"style":3520},[6736],{"type":3033,"value":5528},{"type":3028,"tag":3345,"props":6738,"children":6739},{"style":3505},[6740],{"type":3033,"value":6741},"entry",{"type":3028,"tag":3345,"props":6743,"children":6744},{"style":3511},[6745],{"type":3033,"value":6746}," &&",{"type":3028,"tag":3345,"props":6748,"children":6749},{"style":3511},[6750],{"type":3033,"value":6751}," typeof",{"type":3028,"tag":3345,"props":6753,"children":6754},{"style":3505},[6755],{"type":3033,"value":6647},{"type":3028,"tag":3345,"props":6757,"children":6758},{"style":3511},[6759],{"type":3033,"value":4390},{"type":3028,"tag":3345,"props":6761,"children":6762},{"style":3505},[6763],{"type":3033,"value":5877},{"type":3028,"tag":3345,"props":6765,"children":6766},{"style":3511},[6767],{"type":3033,"value":6768}," ===",{"type":3028,"tag":3345,"props":6770,"children":6771},{"style":3511},[6772],{"type":3033,"value":3999},{"type":3028,"tag":3345,"props":6774,"children":6775},{"style":3366},[6776],{"type":3033,"value":6777},"number",{"type":3028,"tag":3345,"props":6779,"children":6780},{"style":3511},[6781],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":6783,"children":6784},{"style":3520},[6785],{"type":3033,"value":5552},{"type":3028,"tag":3345,"props":6787,"children":6788},{"style":3511},[6789],{"type":3033,"value":3514},{"type":3028,"tag":3345,"props":6791,"children":6793},{"class":3347,"line":6792},33,[6794,6799,6803,6808,6813,6817,6821,6825,6830,6834,6838],{"type":3028,"tag":3345,"props":6795,"children":6796},{"style":3488},[6797],{"type":3033,"value":6798},"        if",{"type":3028,"tag":3345,"props":6800,"children":6801},{"style":3520},[6802],{"type":3033,"value":5528},{"type":3028,"tag":3345,"props":6804,"children":6805},{"style":3505},[6806],{"type":3033,"value":6807},"currentTime",{"type":3028,"tag":3345,"props":6809,"children":6810},{"style":3511},[6811],{"type":3033,"value":6812}," -",{"type":3028,"tag":3345,"props":6814,"children":6815},{"style":3505},[6816],{"type":3033,"value":6647},{"type":3028,"tag":3345,"props":6818,"children":6819},{"style":3511},[6820],{"type":3033,"value":4390},{"type":3028,"tag":3345,"props":6822,"children":6823},{"style":3505},[6824],{"type":3033,"value":5877},{"type":3028,"tag":3345,"props":6826,"children":6827},{"style":3511},[6828],{"type":3033,"value":6829}," >",{"type":3028,"tag":3345,"props":6831,"children":6832},{"style":3505},[6833],{"type":3033,"value":6444},{"type":3028,"tag":3345,"props":6835,"children":6836},{"style":3520},[6837],{"type":3033,"value":5552},{"type":3028,"tag":3345,"props":6839,"children":6840},{"style":3511},[6841],{"type":3033,"value":3514},{"type":3028,"tag":3345,"props":6843,"children":6845},{"class":3347,"line":6844},34,[6846,6851,6855,6859,6863,6867,6871,6875],{"type":3028,"tag":3345,"props":6847,"children":6848},{"style":3488},[6849],{"type":3033,"value":6850},"          await",{"type":3028,"tag":3345,"props":6852,"children":6853},{"style":3505},[6854],{"type":3033,"value":5369},{"type":3028,"tag":3345,"props":6856,"children":6857},{"style":3511},[6858],{"type":3033,"value":4390},{"type":3028,"tag":3345,"props":6860,"children":6861},{"style":3499},[6862],{"type":3033,"value":5663},{"type":3028,"tag":3345,"props":6864,"children":6865},{"style":3520},[6866],{"type":3033,"value":3508},{"type":3028,"tag":3345,"props":6868,"children":6869},{"style":3505},[6870],{"type":3033,"value":5599},{"type":3028,"tag":3345,"props":6872,"children":6873},{"style":3520},[6874],{"type":3033,"value":3829},{"type":3028,"tag":3345,"props":6876,"children":6877},{"style":3511},[6878],{"type":3033,"value":3834},{"type":3028,"tag":3345,"props":6880,"children":6882},{"class":3347,"line":6881},35,[6883,6888],{"type":3028,"tag":3345,"props":6884,"children":6885},{"style":3505},[6886],{"type":3033,"value":6887},"          cleanedCount",{"type":3028,"tag":3345,"props":6889,"children":6890},{"style":3511},[6891],{"type":3033,"value":5692},{"type":3028,"tag":3345,"props":6893,"children":6895},{"class":3347,"line":6894},36,[6896],{"type":3028,"tag":3345,"props":6897,"children":6898},{"style":3511},[6899],{"type":3033,"value":6900},"        }\n",{"type":3028,"tag":3345,"props":6902,"children":6904},{"class":3347,"line":6903},37,[6905,6910,6915],{"type":3028,"tag":3345,"props":6906,"children":6907},{"style":3511},[6908],{"type":3033,"value":6909},"      }",{"type":3028,"tag":3345,"props":6911,"children":6912},{"style":3488},[6913],{"type":3033,"value":6914}," else",{"type":3028,"tag":3345,"props":6916,"children":6917},{"style":3511},[6918],{"type":3033,"value":3573},{"type":3028,"tag":3345,"props":6920,"children":6922},{"class":3347,"line":6921},38,[6923],{"type":3028,"tag":3345,"props":6924,"children":6925},{"style":3351},[6926],{"type":3033,"value":6927},"        \u002F\u002F Clean up entries that are null, not an object, or missing a numeric 'time'\n",{"type":3028,"tag":3345,"props":6929,"children":6931},{"class":3347,"line":6930},39,[6932,6936,6940,6944,6948,6952,6956,6960],{"type":3028,"tag":3345,"props":6933,"children":6934},{"style":3488},[6935],{"type":3033,"value":5650},{"type":3028,"tag":3345,"props":6937,"children":6938},{"style":3505},[6939],{"type":3033,"value":5369},{"type":3028,"tag":3345,"props":6941,"children":6942},{"style":3511},[6943],{"type":3033,"value":4390},{"type":3028,"tag":3345,"props":6945,"children":6946},{"style":3499},[6947],{"type":3033,"value":5663},{"type":3028,"tag":3345,"props":6949,"children":6950},{"style":3520},[6951],{"type":3033,"value":3508},{"type":3028,"tag":3345,"props":6953,"children":6954},{"style":3505},[6955],{"type":3033,"value":5599},{"type":3028,"tag":3345,"props":6957,"children":6958},{"style":3520},[6959],{"type":3033,"value":3829},{"type":3028,"tag":3345,"props":6961,"children":6962},{"style":3511},[6963],{"type":3033,"value":3834},{"type":3028,"tag":3345,"props":6965,"children":6967},{"class":3347,"line":6966},40,[6968,6972],{"type":3028,"tag":3345,"props":6969,"children":6970},{"style":3505},[6971],{"type":3033,"value":5687},{"type":3028,"tag":3345,"props":6973,"children":6974},{"style":3511},[6975],{"type":3033,"value":5692},{"type":3028,"tag":3345,"props":6977,"children":6979},{"class":3347,"line":6978},41,[6980],{"type":3028,"tag":3345,"props":6981,"children":6982},{"style":3511},[6983],{"type":3033,"value":4563},{"type":3028,"tag":3345,"props":6985,"children":6987},{"class":3347,"line":6986},42,[6988],{"type":3028,"tag":3345,"props":6989,"children":6990},{"style":3511},[6991],{"type":3033,"value":4571},{"type":3028,"tag":3345,"props":6993,"children":6995},{"class":3347,"line":6994},43,[6996],{"type":3028,"tag":3345,"props":6997,"children":6998},{"emptyLinePlaceholder":1196},[6999],{"type":3033,"value":3383},{"type":3028,"tag":3345,"props":7001,"children":7003},{"class":3347,"line":7002},44,[7004,7008,7012,7016],{"type":3028,"tag":3345,"props":7005,"children":7006},{"style":3505},[7007],{"type":3033,"value":5714},{"type":3028,"tag":3345,"props":7009,"children":7010},{"style":3511},[7011],{"type":3033,"value":4390},{"type":3028,"tag":3345,"props":7013,"children":7014},{"style":3499},[7015],{"type":3033,"value":5723},{"type":3028,"tag":3345,"props":7017,"children":7018},{"style":3520},[7019],{"type":3033,"value":6330},{"type":3028,"tag":3345,"props":7021,"children":7023},{"class":3347,"line":7022},45,[7024,7029,7033,7037,7041,7045,7050],{"type":3028,"tag":3345,"props":7025,"children":7026},{"style":3511},[7027],{"type":3033,"value":7028},"      `",{"type":3028,"tag":3345,"props":7030,"children":7031},{"style":3366},[7032],{"type":3033,"value":5737},{"type":3028,"tag":3345,"props":7034,"children":7035},{"style":3511},[7036],{"type":3033,"value":5742},{"type":3028,"tag":3345,"props":7038,"children":7039},{"style":3505},[7040],{"type":3033,"value":5747},{"type":3028,"tag":3345,"props":7042,"children":7043},{"style":3511},[7044],{"type":3033,"value":3824},{"type":3028,"tag":3345,"props":7046,"children":7047},{"style":3366},[7048],{"type":3033,"value":7049}," old\u002Fmalformed IP data entries.",{"type":3028,"tag":3345,"props":7051,"children":7052},{"style":3511},[7053],{"type":3033,"value":7054},"`\n",{"type":3028,"tag":3345,"props":7056,"children":7058},{"class":3347,"line":7057},46,[7059,7064],{"type":3028,"tag":3345,"props":7060,"children":7061},{"style":3520},[7062],{"type":3033,"value":7063},"    )",{"type":3028,"tag":3345,"props":7065,"children":7066},{"style":3511},[7067],{"type":3033,"value":3834},{"type":3028,"tag":3345,"props":7069,"children":7071},{"class":3347,"line":7070},47,[7072,7076,7080,7084,7088,7092,7096,7100],{"type":3028,"tag":3345,"props":7073,"children":7074},{"style":3488},[7075],{"type":3033,"value":5776},{"type":3028,"tag":3345,"props":7077,"children":7078},{"style":3511},[7079],{"type":3033,"value":5180},{"type":3028,"tag":3345,"props":7081,"children":7082},{"style":3520},[7083],{"type":3033,"value":5785},{"type":3028,"tag":3345,"props":7085,"children":7086},{"style":3511},[7087],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":7089,"children":7090},{"style":3511},[7091],{"type":3033,"value":5180},{"type":3028,"tag":3345,"props":7093,"children":7094},{"style":3505},[7095],{"type":3033,"value":5502},{"type":3028,"tag":3345,"props":7097,"children":7098},{"style":3511},[7099],{"type":3033,"value":5190},{"type":3028,"tag":3345,"props":7101,"children":7102},{"style":3511},[7103],{"type":3033,"value":5806},{"type":3028,"tag":3345,"props":7105,"children":7107},{"class":3347,"line":7106},48,[7108],{"type":3028,"tag":3345,"props":7109,"children":7110},{"style":3511},[7111],{"type":3033,"value":3815},{"type":3028,"tag":3345,"props":7113,"children":7115},{"class":3347,"line":7114},49,[7116,7120,7124],{"type":3028,"tag":3345,"props":7117,"children":7118},{"style":3511},[7119],{"type":3033,"value":3824},{"type":3028,"tag":3345,"props":7121,"children":7122},{"style":3505},[7123],{"type":3033,"value":3829},{"type":3028,"tag":3345,"props":7125,"children":7126},{"style":3511},[7127],{"type":3033,"value":3834},{"type":3028,"tag":3035,"props":7129,"children":7130},{},[7131,7133,7138,7140,7145,7147,7152,7153,7159,7161,7166],{"type":3033,"value":7132},"Configure ",{"type":3028,"tag":3185,"props":7134,"children":7136},{"className":7135},[],[7137],{"type":3033,"value":4851},{"type":3033,"value":7139}," under ",{"type":3028,"tag":3185,"props":7141,"children":7143},{"className":7142},[],[7144],{"type":3033,"value":3850},{"type":3033,"value":7146}," if you want a TTL other than the default. Setting ",{"type":3028,"tag":3185,"props":7148,"children":7150},{"className":7149},[],[7151],{"type":3033,"value":4851},{"type":3033,"value":4404},{"type":3028,"tag":3185,"props":7154,"children":7156},{"className":7155},[],[7157],{"type":3033,"value":7158},"0",{"type":3033,"value":7160}," (or any non-positive value) makes the bundled ",{"type":3028,"tag":3185,"props":7162,"children":7164},{"className":7163},[],[7165],{"type":3033,"value":3290},{"type":3033,"value":7167}," task skip IP cleanup (it logs and exits).",{"type":3028,"tag":3035,"props":7169,"children":7170},{},[7171,7173,7179,7181,7186,7188,7193],{"type":3033,"value":7172},"If you add your own task file with the same ",{"type":3028,"tag":3185,"props":7174,"children":7176},{"className":7175},[],[7177],{"type":3033,"value":7178},"meta.name",{"type":3033,"value":7180}," as a bundled task (",{"type":3028,"tag":3185,"props":7182,"children":7184},{"className":7183},[],[7185],{"type":3033,"value":3282},{"type":3033,"value":7187}," or ",{"type":3028,"tag":3185,"props":7189,"children":7191},{"className":7190},[],[7192],{"type":3033,"value":3290},{"type":3033,"value":7194},"), Nitro may prefer your project file over the module—avoid duplicate names unless you intend to override.",{"type":3028,"tag":3111,"props":7196,"children":7198},{"id":7197},"typescript-types",[7199],{"type":3033,"value":7200},"TypeScript Types",{"type":3028,"tag":3035,"props":7202,"children":7203},{},[7204],{"type":3033,"value":7205},"The module exports TypeScript types that you can use in your application:",{"type":3028,"tag":3321,"props":7207,"children":7209},{"id":7208},"ratelimit-type",[7210,7216],{"type":3028,"tag":3185,"props":7211,"children":7213},{"className":7212},[],[7214],{"type":3033,"value":7215},"RateLimit",{"type":3033,"value":7217}," Type",{"type":3028,"tag":3035,"props":7219,"children":7220},{},[7221,7222,7227],{"type":3033,"value":4261},{"type":3028,"tag":3185,"props":7223,"children":7225},{"className":7224},[],[7226],{"type":3033,"value":7215},{"type":3033,"value":7228}," type represents the structure of rate limit data stored for each IP address:",{"type":3028,"tag":3335,"props":7230,"children":7232},{"className":5161,"code":7231,"language":5163,"meta":2972,"style":2972},"import type { RateLimit } from \"nuxt-api-shield\";\n\n\u002F\u002F RateLimit structure:\n\u002F\u002F {\n\u002F\u002F   count: number  \u002F\u002F Number of requests made\n\u002F\u002F   time: number   \u002F\u002F Timestamp of the last request\n\u002F\u002F }\n",[7233],{"type":3028,"tag":3185,"props":7234,"children":7235},{"__ignoreMap":2972},[7236,7279,7286,7294,7302,7315,7328],{"type":3028,"tag":3345,"props":7237,"children":7238},{"class":3347,"line":3000},[7239,7243,7247,7251,7255,7259,7263,7267,7271,7275],{"type":3028,"tag":3345,"props":7240,"children":7241},{"style":3488},[7242],{"type":3033,"value":5175},{"type":3028,"tag":3345,"props":7244,"children":7245},{"style":3488},[7246],{"type":3033,"value":5917},{"type":3028,"tag":3345,"props":7248,"children":7249},{"style":3511},[7250],{"type":3033,"value":5180},{"type":3028,"tag":3345,"props":7252,"children":7253},{"style":3505},[7254],{"type":3033,"value":5926},{"type":3028,"tag":3345,"props":7256,"children":7257},{"style":3511},[7258],{"type":3033,"value":5190},{"type":3028,"tag":3345,"props":7260,"children":7261},{"style":3488},[7262],{"type":3033,"value":5195},{"type":3028,"tag":3345,"props":7264,"children":7265},{"style":3511},[7266],{"type":3033,"value":3999},{"type":3028,"tag":3345,"props":7268,"children":7269},{"style":3366},[7270],{"type":3033,"value":2969},{"type":3028,"tag":3345,"props":7272,"children":7273},{"style":3511},[7274],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":7276,"children":7277},{"style":3511},[7278],{"type":3033,"value":3834},{"type":3028,"tag":3345,"props":7280,"children":7281},{"class":3347,"line":2996},[7282],{"type":3028,"tag":3345,"props":7283,"children":7284},{"emptyLinePlaceholder":1196},[7285],{"type":3033,"value":3383},{"type":3028,"tag":3345,"props":7287,"children":7288},{"class":3347,"line":3377},[7289],{"type":3028,"tag":3345,"props":7290,"children":7291},{"style":3351},[7292],{"type":3033,"value":7293},"\u002F\u002F RateLimit structure:\n",{"type":3028,"tag":3345,"props":7295,"children":7296},{"class":3347,"line":3386},[7297],{"type":3028,"tag":3345,"props":7298,"children":7299},{"style":3351},[7300],{"type":3033,"value":7301},"\u002F\u002F {\n",{"type":3028,"tag":3345,"props":7303,"children":7304},{"class":3347,"line":2992},[7305,7310],{"type":3028,"tag":3345,"props":7306,"children":7307},{"style":3351},[7308],{"type":3033,"value":7309},"\u002F\u002F   count: number",{"type":3028,"tag":3345,"props":7311,"children":7312},{"style":3351},[7313],{"type":3033,"value":7314},"  \u002F\u002F Number of requests made\n",{"type":3028,"tag":3345,"props":7316,"children":7317},{"class":3347,"line":3411},[7318,7323],{"type":3028,"tag":3345,"props":7319,"children":7320},{"style":3351},[7321],{"type":3033,"value":7322},"\u002F\u002F   time: number",{"type":3028,"tag":3345,"props":7324,"children":7325},{"style":3351},[7326],{"type":3033,"value":7327},"   \u002F\u002F Timestamp of the last request\n",{"type":3028,"tag":3345,"props":7329,"children":7330},{"class":3347,"line":3419},[7331],{"type":3028,"tag":3345,"props":7332,"children":7333},{"style":3351},[7334],{"type":3033,"value":7335},"\u002F\u002F }\n",{"type":3028,"tag":3035,"props":7337,"children":7338},{},[7339],{"type":3028,"tag":3123,"props":7340,"children":7341},{},[7342],{"type":3033,"value":7343},"Usage Example:",{"type":3028,"tag":3335,"props":7345,"children":7347},{"className":5161,"code":7346,"language":5163,"meta":2972,"style":2972},"import type { RateLimit } from \"nuxt-api-shield\";\nimport { useStorage } from \"#imports\";\n\nconst shieldStorage = useStorage(\"shield\");\nconst ipKey = \"ip:192.168.1.1\";\nconst entry = (await shieldStorage.getItem(ipKey)) as RateLimit | null;\n\nif (entry) {\n  console.log(`IP has made ${entry.count} requests`);\n  console.log(`Last request at: ${new Date(entry.time).toISOString()}`);\n}\n",[7348],{"type":3028,"tag":3185,"props":7349,"children":7350},{"__ignoreMap":2972},[7351,7394,7433,7440,7485,7518,7579,7586,7603,7670,7751],{"type":3028,"tag":3345,"props":7352,"children":7353},{"class":3347,"line":3000},[7354,7358,7362,7366,7370,7374,7378,7382,7386,7390],{"type":3028,"tag":3345,"props":7355,"children":7356},{"style":3488},[7357],{"type":3033,"value":5175},{"type":3028,"tag":3345,"props":7359,"children":7360},{"style":3488},[7361],{"type":3033,"value":5917},{"type":3028,"tag":3345,"props":7363,"children":7364},{"style":3511},[7365],{"type":3033,"value":5180},{"type":3028,"tag":3345,"props":7367,"children":7368},{"style":3505},[7369],{"type":3033,"value":5926},{"type":3028,"tag":3345,"props":7371,"children":7372},{"style":3511},[7373],{"type":3033,"value":5190},{"type":3028,"tag":3345,"props":7375,"children":7376},{"style":3488},[7377],{"type":3033,"value":5195},{"type":3028,"tag":3345,"props":7379,"children":7380},{"style":3511},[7381],{"type":3033,"value":3999},{"type":3028,"tag":3345,"props":7383,"children":7384},{"style":3366},[7385],{"type":3033,"value":2969},{"type":3028,"tag":3345,"props":7387,"children":7388},{"style":3511},[7389],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":7391,"children":7392},{"style":3511},[7393],{"type":3033,"value":3834},{"type":3028,"tag":3345,"props":7395,"children":7396},{"class":3347,"line":2996},[7397,7401,7405,7409,7413,7417,7421,7425,7429],{"type":3028,"tag":3345,"props":7398,"children":7399},{"style":3488},[7400],{"type":3033,"value":5175},{"type":3028,"tag":3345,"props":7402,"children":7403},{"style":3511},[7404],{"type":3033,"value":5180},{"type":3028,"tag":3345,"props":7406,"children":7407},{"style":3505},[7408],{"type":3033,"value":5379},{"type":3028,"tag":3345,"props":7410,"children":7411},{"style":3511},[7412],{"type":3033,"value":5190},{"type":3028,"tag":3345,"props":7414,"children":7415},{"style":3488},[7416],{"type":3033,"value":5195},{"type":3028,"tag":3345,"props":7418,"children":7419},{"style":3511},[7420],{"type":3033,"value":3999},{"type":3028,"tag":3345,"props":7422,"children":7423},{"style":3366},[7424],{"type":3033,"value":5204},{"type":3028,"tag":3345,"props":7426,"children":7427},{"style":3511},[7428],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":7430,"children":7431},{"style":3511},[7432],{"type":3033,"value":3834},{"type":3028,"tag":3345,"props":7434,"children":7435},{"class":3347,"line":3377},[7436],{"type":3028,"tag":3345,"props":7437,"children":7438},{"emptyLinePlaceholder":1196},[7439],{"type":3033,"value":3383},{"type":3028,"tag":3345,"props":7441,"children":7442},{"class":3347,"line":3386},[7443,7447,7452,7457,7461,7465,7469,7473,7477,7481],{"type":3028,"tag":3345,"props":7444,"children":7445},{"style":4448},[7446],{"type":3033,"value":5533},{"type":3028,"tag":3345,"props":7448,"children":7449},{"style":3505},[7450],{"type":3033,"value":7451}," shieldStorage ",{"type":3028,"tag":3345,"props":7453,"children":7454},{"style":3511},[7455],{"type":3033,"value":7456},"=",{"type":3028,"tag":3345,"props":7458,"children":7459},{"style":3499},[7460],{"type":3033,"value":5379},{"type":3028,"tag":3345,"props":7462,"children":7463},{"style":3505},[7464],{"type":3033,"value":3508},{"type":3028,"tag":3345,"props":7466,"children":7467},{"style":3511},[7468],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":7470,"children":7471},{"style":3366},[7472],{"type":3033,"value":4419},{"type":3028,"tag":3345,"props":7474,"children":7475},{"style":3511},[7476],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":7478,"children":7479},{"style":3505},[7480],{"type":3033,"value":3829},{"type":3028,"tag":3345,"props":7482,"children":7483},{"style":3511},[7484],{"type":3033,"value":3834},{"type":3028,"tag":3345,"props":7486,"children":7487},{"class":3347,"line":2992},[7488,7492,7497,7501,7505,7510,7514],{"type":3028,"tag":3345,"props":7489,"children":7490},{"style":4448},[7491],{"type":3033,"value":5533},{"type":3028,"tag":3345,"props":7493,"children":7494},{"style":3505},[7495],{"type":3033,"value":7496}," ipKey ",{"type":3028,"tag":3345,"props":7498,"children":7499},{"style":3511},[7500],{"type":3033,"value":7456},{"type":3028,"tag":3345,"props":7502,"children":7503},{"style":3511},[7504],{"type":3033,"value":3999},{"type":3028,"tag":3345,"props":7506,"children":7507},{"style":3366},[7508],{"type":3033,"value":7509},"ip:192.168.1.1",{"type":3028,"tag":3345,"props":7511,"children":7512},{"style":3511},[7513],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":7515,"children":7516},{"style":3511},[7517],{"type":3033,"value":3834},{"type":3028,"tag":3345,"props":7519,"children":7520},{"class":3347,"line":3411},[7521,7525,7530,7534,7538,7542,7546,7550,7554,7559,7563,7567,7571,7575],{"type":3028,"tag":3345,"props":7522,"children":7523},{"style":4448},[7524],{"type":3033,"value":5533},{"type":3028,"tag":3345,"props":7526,"children":7527},{"style":3505},[7528],{"type":3033,"value":7529}," entry ",{"type":3028,"tag":3345,"props":7531,"children":7532},{"style":3511},[7533],{"type":3033,"value":7456},{"type":3028,"tag":3345,"props":7535,"children":7536},{"style":3505},[7537],{"type":3033,"value":5528},{"type":3028,"tag":3345,"props":7539,"children":7540},{"style":3488},[7541],{"type":3033,"value":6660},{"type":3028,"tag":3345,"props":7543,"children":7544},{"style":3505},[7545],{"type":3033,"value":5369},{"type":3028,"tag":3345,"props":7547,"children":7548},{"style":3511},[7549],{"type":3033,"value":4390},{"type":3028,"tag":3345,"props":7551,"children":7552},{"style":3499},[7553],{"type":3033,"value":5590},{"type":3028,"tag":3345,"props":7555,"children":7556},{"style":3505},[7557],{"type":3033,"value":7558},"(ipKey)) ",{"type":3028,"tag":3345,"props":7560,"children":7561},{"style":3488},[7562],{"type":3033,"value":6689},{"type":3028,"tag":3345,"props":7564,"children":7565},{"style":3360},[7566],{"type":3033,"value":5926},{"type":3028,"tag":3345,"props":7568,"children":7569},{"style":3511},[7570],{"type":3033,"value":6698},{"type":3028,"tag":3345,"props":7572,"children":7573},{"style":3360},[7574],{"type":3033,"value":6703},{"type":3028,"tag":3345,"props":7576,"children":7577},{"style":3511},[7578],{"type":3033,"value":3834},{"type":3028,"tag":3345,"props":7580,"children":7581},{"class":3347,"line":3419},[7582],{"type":3028,"tag":3345,"props":7583,"children":7584},{"emptyLinePlaceholder":1196},[7585],{"type":3033,"value":3383},{"type":3028,"tag":3345,"props":7587,"children":7588},{"class":3347,"line":3428},[7589,7594,7599],{"type":3028,"tag":3345,"props":7590,"children":7591},{"style":3488},[7592],{"type":3033,"value":7593},"if",{"type":3028,"tag":3345,"props":7595,"children":7596},{"style":3505},[7597],{"type":3033,"value":7598}," (entry) ",{"type":3028,"tag":3345,"props":7600,"children":7601},{"style":3511},[7602],{"type":3033,"value":3514},{"type":3028,"tag":3345,"props":7604,"children":7605},{"class":3347,"line":3017},[7606,7611,7615,7619,7623,7627,7632,7636,7640,7644,7649,7653,7658,7662,7666],{"type":3028,"tag":3345,"props":7607,"children":7608},{"style":3505},[7609],{"type":3033,"value":7610},"  console",{"type":3028,"tag":3345,"props":7612,"children":7613},{"style":3511},[7614],{"type":3033,"value":4390},{"type":3028,"tag":3345,"props":7616,"children":7617},{"style":3499},[7618],{"type":3033,"value":5723},{"type":3028,"tag":3345,"props":7620,"children":7621},{"style":3520},[7622],{"type":3033,"value":3508},{"type":3028,"tag":3345,"props":7624,"children":7625},{"style":3511},[7626],{"type":3033,"value":5732},{"type":3028,"tag":3345,"props":7628,"children":7629},{"style":3366},[7630],{"type":3033,"value":7631},"IP has made ",{"type":3028,"tag":3345,"props":7633,"children":7634},{"style":3511},[7635],{"type":3033,"value":5742},{"type":3028,"tag":3345,"props":7637,"children":7638},{"style":3505},[7639],{"type":3033,"value":6741},{"type":3028,"tag":3345,"props":7641,"children":7642},{"style":3511},[7643],{"type":3033,"value":4390},{"type":3028,"tag":3345,"props":7645,"children":7646},{"style":3505},[7647],{"type":3033,"value":7648},"count",{"type":3028,"tag":3345,"props":7650,"children":7651},{"style":3511},[7652],{"type":3033,"value":3824},{"type":3028,"tag":3345,"props":7654,"children":7655},{"style":3366},[7656],{"type":3033,"value":7657}," requests",{"type":3028,"tag":3345,"props":7659,"children":7660},{"style":3511},[7661],{"type":3033,"value":5732},{"type":3028,"tag":3345,"props":7663,"children":7664},{"style":3520},[7665],{"type":3033,"value":3829},{"type":3028,"tag":3345,"props":7667,"children":7668},{"style":3511},[7669],{"type":3033,"value":3834},{"type":3028,"tag":3345,"props":7671,"children":7672},{"class":3347,"line":3624},[7673,7677,7681,7685,7689,7693,7698,7702,7707,7711,7716,7720,7725,7729,7734,7738,7743,7747],{"type":3028,"tag":3345,"props":7674,"children":7675},{"style":3505},[7676],{"type":3033,"value":7610},{"type":3028,"tag":3345,"props":7678,"children":7679},{"style":3511},[7680],{"type":3033,"value":4390},{"type":3028,"tag":3345,"props":7682,"children":7683},{"style":3499},[7684],{"type":3033,"value":5723},{"type":3028,"tag":3345,"props":7686,"children":7687},{"style":3520},[7688],{"type":3033,"value":3508},{"type":3028,"tag":3345,"props":7690,"children":7691},{"style":3511},[7692],{"type":3033,"value":5732},{"type":3028,"tag":3345,"props":7694,"children":7695},{"style":3366},[7696],{"type":3033,"value":7697},"Last request at: ",{"type":3028,"tag":3345,"props":7699,"children":7700},{"style":3511},[7701],{"type":3033,"value":5742},{"type":3028,"tag":3345,"props":7703,"children":7704},{"style":3511},[7705],{"type":3033,"value":7706},"new",{"type":3028,"tag":3345,"props":7708,"children":7709},{"style":3499},[7710],{"type":3033,"value":6550},{"type":3028,"tag":3345,"props":7712,"children":7713},{"style":3505},[7714],{"type":3033,"value":7715},"(entry",{"type":3028,"tag":3345,"props":7717,"children":7718},{"style":3511},[7719],{"type":3033,"value":4390},{"type":3028,"tag":3345,"props":7721,"children":7722},{"style":3505},[7723],{"type":3033,"value":7724},"time)",{"type":3028,"tag":3345,"props":7726,"children":7727},{"style":3511},[7728],{"type":3033,"value":4390},{"type":3028,"tag":3345,"props":7730,"children":7731},{"style":3499},[7732],{"type":3033,"value":7733},"toISOString",{"type":3028,"tag":3345,"props":7735,"children":7736},{"style":3505},[7737],{"type":3033,"value":5352},{"type":3028,"tag":3345,"props":7739,"children":7740},{"style":3511},[7741],{"type":3033,"value":7742},"}`",{"type":3028,"tag":3345,"props":7744,"children":7745},{"style":3520},[7746],{"type":3033,"value":3829},{"type":3028,"tag":3345,"props":7748,"children":7749},{"style":3511},[7750],{"type":3033,"value":3834},{"type":3028,"tag":3345,"props":7752,"children":7753},{"class":3347,"line":3633},[7754],{"type":3028,"tag":3345,"props":7755,"children":7756},{"style":3511},[7757],{"type":3033,"value":4242},{"type":3028,"tag":3321,"props":7759,"children":7761},{"id":7760},"moduleoptions-type",[7762,7768],{"type":3028,"tag":3185,"props":7763,"children":7765},{"className":7764},[],[7766],{"type":3033,"value":7767},"ModuleOptions",{"type":3033,"value":7217},{"type":3028,"tag":3035,"props":7770,"children":7771},{},[7772],{"type":3033,"value":7773},"You can also import the module configuration type:",{"type":3028,"tag":3335,"props":7775,"children":7777},{"className":5161,"code":7776,"language":5163,"meta":2972,"style":2972},"import type { ModuleOptions } from \"nuxt-api-shield\";\n",[7778],{"type":3028,"tag":3185,"props":7779,"children":7780},{"__ignoreMap":2972},[7781],{"type":3028,"tag":3345,"props":7782,"children":7783},{"class":3347,"line":3000},[7784,7788,7792,7796,7801,7805,7809,7813,7817,7821],{"type":3028,"tag":3345,"props":7785,"children":7786},{"style":3488},[7787],{"type":3033,"value":5175},{"type":3028,"tag":3345,"props":7789,"children":7790},{"style":3488},[7791],{"type":3033,"value":5917},{"type":3028,"tag":3345,"props":7793,"children":7794},{"style":3511},[7795],{"type":3033,"value":5180},{"type":3028,"tag":3345,"props":7797,"children":7798},{"style":3505},[7799],{"type":3033,"value":7800}," ModuleOptions",{"type":3028,"tag":3345,"props":7802,"children":7803},{"style":3511},[7804],{"type":3033,"value":5190},{"type":3028,"tag":3345,"props":7806,"children":7807},{"style":3488},[7808],{"type":3033,"value":5195},{"type":3028,"tag":3345,"props":7810,"children":7811},{"style":3511},[7812],{"type":3033,"value":3999},{"type":3028,"tag":3345,"props":7814,"children":7815},{"style":3366},[7816],{"type":3033,"value":2969},{"type":3028,"tag":3345,"props":7818,"children":7819},{"style":3511},[7820],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":7822,"children":7823},{"style":3511},[7824],{"type":3033,"value":3834},{"type":3028,"tag":3111,"props":7826,"children":7828},{"id":7827},"per-route-rate-limiting",[7829],{"type":3033,"value":7830},"Per-Route Rate Limiting",{"type":3028,"tag":3035,"props":7832,"children":7833},{},[7834,7839,7841,7846],{"type":3028,"tag":3185,"props":7835,"children":7837},{"className":7836},[],[7838],{"type":3033,"value":2969},{"type":3033,"value":7840}," supports ",{"type":3028,"tag":3123,"props":7842,"children":7843},{},[7844],{"type":3033,"value":7845},"per-route rate limiting",{"type":3033,"value":7847},", allowing you to define custom limits for specific API endpoints while keeping a global default configuration for all other routes.",{"type":3028,"tag":3035,"props":7849,"children":7850},{},[7851,7853,7859,7861,7867,7869,7875],{"type":3033,"value":7852},"This is useful when certain endpoints (such as ",{"type":3028,"tag":3185,"props":7854,"children":7856},{"className":7855},[],[7857],{"type":3033,"value":7858},"\u002Fapi\u002Flogin",{"type":3033,"value":7860},", ",{"type":3028,"tag":3185,"props":7862,"children":7864},{"className":7863},[],[7865],{"type":3033,"value":7866},"\u002Fapi\u002Fauth",{"type":3033,"value":7868},", or ",{"type":3028,"tag":3185,"props":7870,"children":7872},{"className":7871},[],[7873],{"type":3033,"value":7874},"\u002Fapi\u002Fpayment",{"type":3033,"value":7876},") require stricter protection.",{"type":3028,"tag":7878,"props":7879,"children":7880},"hr",{},[],{"type":3028,"tag":3321,"props":7882,"children":7884},{"id":7883},"configuration-example",[7885],{"type":3033,"value":7886},"Configuration Example",{"type":3028,"tag":3035,"props":7888,"children":7889},{},[7890,7891,7897],{"type":3033,"value":4261},{"type":3028,"tag":3185,"props":7892,"children":7894},{"className":7893},[],[7895],{"type":3033,"value":7896},"routes",{"type":3033,"value":7898}," option accepts a mixed array of strings (exact matches) and objects (custom limits or patterns).",{"type":3028,"tag":3335,"props":7900,"children":7902},{"className":5161,"code":7901,"language":5163,"meta":2972,"style":2972},"export default defineNuxtConfig({\n  modules: [\"nuxt-api-shield\"],\n\n  nuxtApiShield: {\n    limit: {\n      max: 12,\n      duration: 108,\n      ban: 3600,\n    },\n\n    routes: [\n      \u002F\u002F 1. String: uses the global default limit (exact match)\n      \"\u002Fapi\u002Fexample\",\n\n      \u002F\u002F 2. Object: custom rate limit for a specific route (exact match)\n      {\n        path: \"\u002Fapi\u002Fexample-per-route\",\n        max: 5,\n        duration: 10,\n        \u002F\u002F ⚠️ \"ban\" always uses the global value\n      },\n\n      \u002F\u002F 3. Object: Wildcard pattern\n      {\n        path: \"\u002Fapi\u002Fusers\u002F*\u002Fprofile\",\n        pattern: true,\n        max: 10,\n        duration: 60\n      }\n    ],\n  },\n});\n",[7903],{"type":3028,"tag":3185,"props":7904,"children":7905},{"__ignoreMap":2972},[7906,7929,7964,7971,7986,8002,8022,8042,8062,8069,8076,8093,8101,8121,8128,8136,8144,8173,8194,8215,8223,8231,8238,8246,8253,8281,8301,8320,8336,8343,8355,8362],{"type":3028,"tag":3345,"props":7907,"children":7908},{"class":3347,"line":3000},[7909,7913,7917,7921,7925],{"type":3028,"tag":3345,"props":7910,"children":7911},{"style":3488},[7912],{"type":3033,"value":3491},{"type":3028,"tag":3345,"props":7914,"children":7915},{"style":3488},[7916],{"type":3033,"value":3496},{"type":3028,"tag":3345,"props":7918,"children":7919},{"style":3499},[7920],{"type":3033,"value":3502},{"type":3028,"tag":3345,"props":7922,"children":7923},{"style":3505},[7924],{"type":3033,"value":3508},{"type":3028,"tag":3345,"props":7926,"children":7927},{"style":3511},[7928],{"type":3033,"value":3514},{"type":3028,"tag":3345,"props":7930,"children":7931},{"class":3347,"line":2996},[7932,7936,7940,7944,7948,7952,7956,7960],{"type":3028,"tag":3345,"props":7933,"children":7934},{"style":3520},[7935],{"type":3033,"value":3523},{"type":3028,"tag":3345,"props":7937,"children":7938},{"style":3511},[7939],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":7941,"children":7942},{"style":3505},[7943],{"type":3033,"value":3533},{"type":3028,"tag":3345,"props":7945,"children":7946},{"style":3511},[7947],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":7949,"children":7950},{"style":3366},[7951],{"type":3033,"value":2969},{"type":3028,"tag":3345,"props":7953,"children":7954},{"style":3511},[7955],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":7957,"children":7958},{"style":3505},[7959],{"type":3033,"value":3551},{"type":3028,"tag":3345,"props":7961,"children":7962},{"style":3511},[7963],{"type":3033,"value":3556},{"type":3028,"tag":3345,"props":7965,"children":7966},{"class":3347,"line":3377},[7967],{"type":3028,"tag":3345,"props":7968,"children":7969},{"emptyLinePlaceholder":1196},[7970],{"type":3033,"value":3383},{"type":3028,"tag":3345,"props":7972,"children":7973},{"class":3347,"line":3386},[7974,7978,7982],{"type":3028,"tag":3345,"props":7975,"children":7976},{"style":3520},[7977],{"type":3033,"value":3564},{"type":3028,"tag":3345,"props":7979,"children":7980},{"style":3511},[7981],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":7983,"children":7984},{"style":3511},[7985],{"type":3033,"value":3573},{"type":3028,"tag":3345,"props":7987,"children":7988},{"class":3347,"line":2992},[7989,7994,7998],{"type":3028,"tag":3345,"props":7990,"children":7991},{"style":3520},[7992],{"type":3033,"value":7993},"    limit",{"type":3028,"tag":3345,"props":7995,"children":7996},{"style":3511},[7997],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":7999,"children":8000},{"style":3511},[8001],{"type":3033,"value":3573},{"type":3028,"tag":3345,"props":8003,"children":8004},{"class":3347,"line":3411},[8005,8010,8014,8018],{"type":3028,"tag":3345,"props":8006,"children":8007},{"style":3520},[8008],{"type":3033,"value":8009},"      max",{"type":3028,"tag":3345,"props":8011,"children":8012},{"style":3511},[8013],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":8015,"children":8016},{"style":3731},[8017],{"type":3033,"value":3899},{"type":3028,"tag":3345,"props":8019,"children":8020},{"style":3511},[8021],{"type":3033,"value":3556},{"type":3028,"tag":3345,"props":8023,"children":8024},{"class":3347,"line":3419},[8025,8030,8034,8038],{"type":3028,"tag":3345,"props":8026,"children":8027},{"style":3520},[8028],{"type":3033,"value":8029},"      duration",{"type":3028,"tag":3345,"props":8031,"children":8032},{"style":3511},[8033],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":8035,"children":8036},{"style":3731},[8037],{"type":3033,"value":3920},{"type":3028,"tag":3345,"props":8039,"children":8040},{"style":3511},[8041],{"type":3033,"value":3556},{"type":3028,"tag":3345,"props":8043,"children":8044},{"class":3347,"line":3428},[8045,8050,8054,8058],{"type":3028,"tag":3345,"props":8046,"children":8047},{"style":3520},[8048],{"type":3033,"value":8049},"      ban",{"type":3028,"tag":3345,"props":8051,"children":8052},{"style":3511},[8053],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":8055,"children":8056},{"style":3731},[8057],{"type":3033,"value":3946},{"type":3028,"tag":3345,"props":8059,"children":8060},{"style":3511},[8061],{"type":3033,"value":3556},{"type":3028,"tag":3345,"props":8063,"children":8064},{"class":3347,"line":3017},[8065],{"type":3028,"tag":3345,"props":8066,"children":8067},{"style":3511},[8068],{"type":3033,"value":3621},{"type":3028,"tag":3345,"props":8070,"children":8071},{"class":3347,"line":3624},[8072],{"type":3028,"tag":3345,"props":8073,"children":8074},{"emptyLinePlaceholder":1196},[8075],{"type":3033,"value":3383},{"type":3028,"tag":3345,"props":8077,"children":8078},{"class":3347,"line":3633},[8079,8084,8088],{"type":3028,"tag":3345,"props":8080,"children":8081},{"style":3520},[8082],{"type":3033,"value":8083},"    routes",{"type":3028,"tag":3345,"props":8085,"children":8086},{"style":3511},[8087],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":8089,"children":8090},{"style":3505},[8091],{"type":3033,"value":8092}," [\n",{"type":3028,"tag":3345,"props":8094,"children":8095},{"class":3347,"line":3642},[8096],{"type":3028,"tag":3345,"props":8097,"children":8098},{"style":3351},[8099],{"type":3033,"value":8100},"      \u002F\u002F 1. String: uses the global default limit (exact match)\n",{"type":3028,"tag":3345,"props":8102,"children":8103},{"class":3347,"line":3651},[8104,8108,8113,8117],{"type":3028,"tag":3345,"props":8105,"children":8106},{"style":3511},[8107],{"type":3033,"value":4496},{"type":3028,"tag":3345,"props":8109,"children":8110},{"style":3366},[8111],{"type":3033,"value":8112},"\u002Fapi\u002Fexample",{"type":3028,"tag":3345,"props":8114,"children":8115},{"style":3511},[8116],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":8118,"children":8119},{"style":3511},[8120],{"type":3033,"value":3556},{"type":3028,"tag":3345,"props":8122,"children":8123},{"class":3347,"line":3660},[8124],{"type":3028,"tag":3345,"props":8125,"children":8126},{"emptyLinePlaceholder":1196},[8127],{"type":3033,"value":3383},{"type":3028,"tag":3345,"props":8129,"children":8130},{"class":3347,"line":3669},[8131],{"type":3028,"tag":3345,"props":8132,"children":8133},{"style":3351},[8134],{"type":3033,"value":8135},"      \u002F\u002F 2. Object: custom rate limit for a specific route (exact match)\n",{"type":3028,"tag":3345,"props":8137,"children":8138},{"class":3347,"line":3678},[8139],{"type":3028,"tag":3345,"props":8140,"children":8141},{"style":3511},[8142],{"type":3033,"value":8143},"      {\n",{"type":3028,"tag":3345,"props":8145,"children":8146},{"class":3347,"line":3686},[8147,8152,8156,8160,8165,8169],{"type":3028,"tag":3345,"props":8148,"children":8149},{"style":3520},[8150],{"type":3033,"value":8151},"        path",{"type":3028,"tag":3345,"props":8153,"children":8154},{"style":3511},[8155],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":8157,"children":8158},{"style":3511},[8159],{"type":3033,"value":3999},{"type":3028,"tag":3345,"props":8161,"children":8162},{"style":3366},[8163],{"type":3033,"value":8164},"\u002Fapi\u002Fexample-per-route",{"type":3028,"tag":3345,"props":8166,"children":8167},{"style":3511},[8168],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":8170,"children":8171},{"style":3511},[8172],{"type":3033,"value":3556},{"type":3028,"tag":3345,"props":8174,"children":8175},{"class":3347,"line":3695},[8176,8181,8185,8190],{"type":3028,"tag":3345,"props":8177,"children":8178},{"style":3520},[8179],{"type":3033,"value":8180},"        max",{"type":3028,"tag":3345,"props":8182,"children":8183},{"style":3511},[8184],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":8186,"children":8187},{"style":3731},[8188],{"type":3033,"value":8189}," 5",{"type":3028,"tag":3345,"props":8191,"children":8192},{"style":3511},[8193],{"type":3033,"value":3556},{"type":3028,"tag":3345,"props":8195,"children":8196},{"class":3347,"line":3704},[8197,8202,8206,8211],{"type":3028,"tag":3345,"props":8198,"children":8199},{"style":3520},[8200],{"type":3033,"value":8201},"        duration",{"type":3028,"tag":3345,"props":8203,"children":8204},{"style":3511},[8205],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":8207,"children":8208},{"style":3731},[8209],{"type":3033,"value":8210}," 10",{"type":3028,"tag":3345,"props":8212,"children":8213},{"style":3511},[8214],{"type":3033,"value":3556},{"type":3028,"tag":3345,"props":8216,"children":8217},{"class":3347,"line":3718},[8218],{"type":3028,"tag":3345,"props":8219,"children":8220},{"style":3351},[8221],{"type":3033,"value":8222},"        \u002F\u002F ⚠️ \"ban\" always uses the global value\n",{"type":3028,"tag":3345,"props":8224,"children":8225},{"class":3347,"line":3747},[8226],{"type":3028,"tag":3345,"props":8227,"children":8228},{"style":3511},[8229],{"type":3033,"value":8230},"      },\n",{"type":3028,"tag":3345,"props":8232,"children":8233},{"class":3347,"line":3764},[8234],{"type":3028,"tag":3345,"props":8235,"children":8236},{"emptyLinePlaceholder":1196},[8237],{"type":3033,"value":3383},{"type":3028,"tag":3345,"props":8239,"children":8240},{"class":3347,"line":3773},[8241],{"type":3028,"tag":3345,"props":8242,"children":8243},{"style":3351},[8244],{"type":3033,"value":8245},"      \u002F\u002F 3. Object: Wildcard pattern\n",{"type":3028,"tag":3345,"props":8247,"children":8248},{"class":3347,"line":3801},[8249],{"type":3028,"tag":3345,"props":8250,"children":8251},{"style":3511},[8252],{"type":3033,"value":8143},{"type":3028,"tag":3345,"props":8254,"children":8255},{"class":3347,"line":3809},[8256,8260,8264,8268,8273,8277],{"type":3028,"tag":3345,"props":8257,"children":8258},{"style":3520},[8259],{"type":3033,"value":8151},{"type":3028,"tag":3345,"props":8261,"children":8262},{"style":3511},[8263],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":8265,"children":8266},{"style":3511},[8267],{"type":3033,"value":3999},{"type":3028,"tag":3345,"props":8269,"children":8270},{"style":3366},[8271],{"type":3033,"value":8272},"\u002Fapi\u002Fusers\u002F*\u002Fprofile",{"type":3028,"tag":3345,"props":8274,"children":8275},{"style":3511},[8276],{"type":3033,"value":3538},{"type":3028,"tag":3345,"props":8278,"children":8279},{"style":3511},[8280],{"type":3033,"value":3556},{"type":3028,"tag":3345,"props":8282,"children":8283},{"class":3347,"line":3818},[8284,8289,8293,8297],{"type":3028,"tag":3345,"props":8285,"children":8286},{"style":3520},[8287],{"type":3033,"value":8288},"        pattern",{"type":3028,"tag":3345,"props":8290,"children":8291},{"style":3511},[8292],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":8294,"children":8295},{"style":3786},[8296],{"type":3033,"value":3789},{"type":3028,"tag":3345,"props":8298,"children":8299},{"style":3511},[8300],{"type":3033,"value":3556},{"type":3028,"tag":3345,"props":8302,"children":8303},{"class":3347,"line":6593},[8304,8308,8312,8316],{"type":3028,"tag":3345,"props":8305,"children":8306},{"style":3520},[8307],{"type":3033,"value":8180},{"type":3028,"tag":3345,"props":8309,"children":8310},{"style":3511},[8311],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":8313,"children":8314},{"style":3731},[8315],{"type":3033,"value":8210},{"type":3028,"tag":3345,"props":8317,"children":8318},{"style":3511},[8319],{"type":3033,"value":3556},{"type":3028,"tag":3345,"props":8321,"children":8322},{"class":3347,"line":6601},[8323,8327,8331],{"type":3028,"tag":3345,"props":8324,"children":8325},{"style":3520},[8326],{"type":3033,"value":8201},{"type":3028,"tag":3345,"props":8328,"children":8329},{"style":3511},[8330],{"type":3033,"value":3528},{"type":3028,"tag":3345,"props":8332,"children":8333},{"style":3731},[8334],{"type":3033,"value":8335}," 60\n",{"type":3028,"tag":3345,"props":8337,"children":8338},{"class":3347,"line":6637},[8339],{"type":3028,"tag":3345,"props":8340,"children":8341},{"style":3511},[8342],{"type":3033,"value":4563},{"type":3028,"tag":3345,"props":8344,"children":8345},{"class":3347,"line":6710},[8346,8351],{"type":3028,"tag":3345,"props":8347,"children":8348},{"style":3505},[8349],{"type":3033,"value":8350},"    ]",{"type":3028,"tag":3345,"props":8352,"children":8353},{"style":3511},[8354],{"type":3033,"value":3556},{"type":3028,"tag":3345,"props":8356,"children":8357},{"class":3347,"line":6718},[8358],{"type":3028,"tag":3345,"props":8359,"children":8360},{"style":3511},[8361],{"type":3033,"value":3815},{"type":3028,"tag":3345,"props":8363,"children":8364},{"class":3347,"line":6727},[8365,8369,8373],{"type":3028,"tag":3345,"props":8366,"children":8367},{"style":3511},[8368],{"type":3033,"value":3824},{"type":3028,"tag":3345,"props":8370,"children":8371},{"style":3505},[8372],{"type":3033,"value":3829},{"type":3028,"tag":3345,"props":8374,"children":8375},{"style":3511},[8376],{"type":3033,"value":3834},{"type":3028,"tag":3321,"props":8378,"children":8380},{"id":8379},"wildcard-route-support",[8381],{"type":3033,"value":8382},"Wildcard Route Support",{"type":3028,"tag":3035,"props":8384,"children":8385},{},[8386,8388,8394],{"type":3033,"value":8387},"Wildcard patterns allow you to apply the same limits to groups of related API endpoints. Enable them by setting ",{"type":3028,"tag":3185,"props":8389,"children":8391},{"className":8390},[],[8392],{"type":3033,"value":8393},"pattern: true",{"type":3033,"value":8395}," in your route configuration.",{"type":3028,"tag":5127,"props":8397,"children":8399},{"id":8398},"wildcard-pattern-syntax",[8400],{"type":3033,"value":8401},"Wildcard Pattern Syntax",{"type":3028,"tag":3085,"props":8403,"children":8404},{},[8405,8449],{"type":3028,"tag":3089,"props":8406,"children":8407},{},[8408,8420,8422],{"type":3028,"tag":3123,"props":8409,"children":8410},{},[8411,8413,8419],{"type":3033,"value":8412},"Single-Segment Wildcard (",{"type":3028,"tag":3185,"props":8414,"children":8416},{"className":8415},[],[8417],{"type":3033,"value":8418},"*",{"type":3033,"value":3829},{"type":3033,"value":8421},": Matches exactly one path segment.\n",{"type":3028,"tag":3085,"props":8423,"children":8424},{},[8425],{"type":3028,"tag":3089,"props":8426,"children":8427},{},[8428,8433,8435,8441,8442,8448],{"type":3028,"tag":3185,"props":8429,"children":8431},{"className":8430},[],[8432],{"type":3033,"value":8272},{"type":3033,"value":8434}," matches ",{"type":3028,"tag":3185,"props":8436,"children":8438},{"className":8437},[],[8439],{"type":3033,"value":8440},"\u002Fapi\u002Fusers\u002F123\u002Fprofile",{"type":3033,"value":7187},{"type":3028,"tag":3185,"props":8443,"children":8445},{"className":8444},[],[8446],{"type":3033,"value":8447},"\u002Fapi\u002Fusers\u002Fadmin\u002Fprofile",{"type":3033,"value":4390},{"type":3028,"tag":3089,"props":8450,"children":8451},{},[8452,8464,8466],{"type":3028,"tag":3123,"props":8453,"children":8454},{},[8455,8457,8463],{"type":3033,"value":8456},"Multi-Segment Wildcard (",{"type":3028,"tag":3185,"props":8458,"children":8460},{"className":8459},[],[8461],{"type":3033,"value":8462},"**",{"type":3033,"value":3829},{"type":3033,"value":8465},": Matches zero or more path segments.\n",{"type":3028,"tag":3085,"props":8467,"children":8468},{},[8469],{"type":3028,"tag":3089,"props":8470,"children":8471},{},[8472,8478,8479,8485,8486,8492],{"type":3028,"tag":3185,"props":8473,"children":8475},{"className":8474},[],[8476],{"type":3033,"value":8477},"\u002Fapi\u002Freports\u002F**\u002Fsummary",{"type":3033,"value":8434},{"type":3028,"tag":3185,"props":8480,"children":8482},{"className":8481},[],[8483],{"type":3033,"value":8484},"\u002Fapi\u002Freports\u002Fmonthly\u002F2023\u002Fsummary",{"type":3033,"value":7187},{"type":3028,"tag":3185,"props":8487,"children":8489},{"className":8488},[],[8490],{"type":3033,"value":8491},"\u002Fapi\u002Freports\u002Fsummary",{"type":3033,"value":4390},{"type":3028,"tag":5127,"props":8494,"children":8496},{"id":8495},"pattern-precedence",[8497],{"type":3033,"value":8498},"Pattern Precedence",{"type":3028,"tag":8500,"props":8501,"children":8502},"ol",{},[8503,8513,8523],{"type":3028,"tag":3089,"props":8504,"children":8505},{},[8506,8511],{"type":3028,"tag":3123,"props":8507,"children":8508},{},[8509],{"type":3033,"value":8510},"Exact matches",{"type":3033,"value":8512}," always take precedence over wildcard patterns.",{"type":3028,"tag":3089,"props":8514,"children":8515},{},[8516,8521],{"type":3028,"tag":3123,"props":8517,"children":8518},{},[8519],{"type":3033,"value":8520},"More specific wildcards",{"type":3033,"value":8522}," take precedence over less specific ones.",{"type":3028,"tag":3089,"props":8524,"children":8525},{},[8526],{"type":3033,"value":8527},"When multiple wildcard patterns match, the most specific one is used.",{"type":3028,"tag":5127,"props":8529,"children":8531},{"id":8530},"important-notes",[8532],{"type":3033,"value":8533},"Important Notes",{"type":3028,"tag":3085,"props":8535,"children":8536},{},[8537,8547],{"type":3028,"tag":3089,"props":8538,"children":8539},{},[8540,8545],{"type":3028,"tag":3123,"props":8541,"children":8542},{},[8543],{"type":3033,"value":8544},"Shared Rate Limits:",{"type":3033,"value":8546}," All requests that match the same wildcard pattern share the same rate limit counter.",{"type":3028,"tag":3089,"props":8548,"children":8549},{},[8550,8555,8557,8563,8564,8570],{"type":3028,"tag":3123,"props":8551,"children":8552},{},[8553],{"type":3033,"value":8554},"Security:",{"type":3033,"value":8556}," Broad or dangerous patterns like ",{"type":3028,"tag":3185,"props":8558,"children":8560},{"className":8559},[],[8561],{"type":3033,"value":8562},"\u002F**",{"type":3033,"value":7187},{"type":3028,"tag":3185,"props":8565,"children":8567},{"className":8566},[],[8568],{"type":3033,"value":8569},"\u002F*",{"type":3033,"value":8571}," are automatically rejected to prevent accidental global blocking.",{"type":3028,"tag":3111,"props":8573,"children":8575},{"id":8574},"important-considerations",[8576],{"type":3033,"value":8577},"Important Considerations",{"type":3028,"tag":3321,"props":8579,"children":8581},{"id":8580},"data-privacy-ip-address-storage",[8582],{"type":3033,"value":8583},"Data Privacy (IP Address Storage)",{"type":3028,"tag":3035,"props":8585,"children":8586},{},[8587,8592],{"type":3028,"tag":3185,"props":8588,"children":8590},{"className":8589},[],[8591],{"type":3033,"value":2969},{"type":3033,"value":8593}," functions by tracking IP addresses to monitor request rates and apply bans. This means IP addresses, which can be considered Personally Identifiable Information (PII) under regulations like GDPR, are stored by the module.",{"type":3028,"tag":3085,"props":8595,"children":8596},{},[8597,8638,8648],{"type":3028,"tag":3089,"props":8598,"children":8599},{},[8600,8605],{"type":3028,"tag":3123,"props":8601,"children":8602},{},[8603],{"type":3033,"value":8604},"Data Stored:",{"type":3028,"tag":3085,"props":8606,"children":8607},{},[8608,8627],{"type":3028,"tag":3089,"props":8609,"children":8610},{},[8611,8617,8619,8625],{"type":3028,"tag":3185,"props":8612,"children":8614},{"className":8613},[],[8615],{"type":3033,"value":8616},"ip:\u003CIP_ADDRESS>",{"type":3033,"value":8618},": Stores ",{"type":3028,"tag":3185,"props":8620,"children":8622},{"className":8621},[],[8623],{"type":3033,"value":8624},"{ count: number, time: number }",{"type":3033,"value":8626}," for tracking request rates.",{"type":3028,"tag":3089,"props":8628,"children":8629},{},[8630,8636],{"type":3028,"tag":3185,"props":8631,"children":8633},{"className":8632},[],[8634],{"type":3033,"value":8635},"ban:\u003CIP_ADDRESS>",{"type":3033,"value":8637},": Stores a timestamp indicating when a ban on an IP address expires.",{"type":3028,"tag":3089,"props":8639,"children":8640},{},[8641,8646],{"type":3028,"tag":3123,"props":8642,"children":8643},{},[8644],{"type":3033,"value":8645},"Compliance:",{"type":3033,"value":8647}," Ensure your usage complies with any applicable data privacy regulations. This may involve updating your privacy policy to inform users about this data processing.",{"type":3028,"tag":3089,"props":8649,"children":8650},{},[8651,8656],{"type":3028,"tag":3123,"props":8652,"children":8653},{},[8654],{"type":3033,"value":8655},"Data Retention:",{"type":3028,"tag":3085,"props":8657,"children":8658},{},[8659,8671],{"type":3028,"tag":3089,"props":8660,"children":8661},{},[8662,8664,8669],{"type":3033,"value":8663},"Ban entries are cleaned up by the ",{"type":3028,"tag":3185,"props":8665,"children":8667},{"className":8666},[],[8668],{"type":3033,"value":3282},{"type":3033,"value":8670}," task after expiry.",{"type":3028,"tag":3089,"props":8672,"children":8673},{},[8674,8676,8681,8683,8688],{"type":3033,"value":8675},"IP tracking entries are cleaned up by the ",{"type":3028,"tag":3185,"props":8677,"children":8679},{"className":8678},[],[8680],{"type":3033,"value":3290},{"type":3033,"value":8682}," task based on the ",{"type":3028,"tag":3185,"props":8684,"children":8686},{"className":8685},[],[8687],{"type":3033,"value":4851},{"type":3033,"value":8689}," setting.",{"type":3028,"tag":3321,"props":8691,"children":8693},{"id":8692},"storage-security",[8694],{"type":3033,"value":8695},"Storage Security",{"type":3028,"tag":3085,"props":8697,"children":8698},{},[8699,8777],{"type":3028,"tag":3089,"props":8700,"children":8701},{},[8702,8715,8717,8723,8725,8730,8731,8737,8739,8744,8746,8752,8754],{"type":3028,"tag":3123,"props":8703,"children":8704},{},[8705,8707,8713],{"type":3033,"value":8706},"Filesystem Driver (",{"type":3028,"tag":3185,"props":8708,"children":8710},{"className":8709},[],[8711],{"type":3033,"value":8712},"driver: 'fs'",{"type":3033,"value":8714},"):",{"type":3033,"value":8716}," If you use the filesystem driver for ",{"type":3028,"tag":3185,"props":8718,"children":8720},{"className":8719},[],[8721],{"type":3033,"value":8722},"unstorage",{"type":3033,"value":8724}," (e.g., ",{"type":3028,"tag":3185,"props":8726,"children":8728},{"className":8727},[],[8729],{"type":3033,"value":8712},{"type":3033,"value":7860},{"type":3028,"tag":3185,"props":8732,"children":8734},{"className":8733},[],[8735],{"type":3033,"value":8736},"base: '.shield'",{"type":3033,"value":8738},"), ensure that the storage directory (and the ",{"type":3028,"tag":3185,"props":8740,"children":8742},{"className":8741},[],[8743],{"type":3033,"value":4070},{"type":3033,"value":8745}," directory if logging is enabled via ",{"type":3028,"tag":3185,"props":8747,"children":8749},{"className":8748},[],[8750],{"type":3033,"value":8751},"log.path",{"type":3033,"value":8753},") is:\n",{"type":3028,"tag":3085,"props":8755,"children":8756},{},[8757,8767],{"type":3028,"tag":3089,"props":8758,"children":8759},{},[8760,8765],{"type":3028,"tag":3123,"props":8761,"children":8762},{},[8763],{"type":3033,"value":8764},"Not web-accessible:",{"type":3033,"value":8766}," Your web server should not be configured to serve files from these directories.",{"type":3028,"tag":3089,"props":8768,"children":8769},{},[8770,8775],{"type":3028,"tag":3123,"props":8771,"children":8772},{},[8773],{"type":3033,"value":8774},"Properly permissioned:",{"type":3033,"value":8776}," The directories should have appropriate server-side file permissions to prevent unauthorized reading or writing.",{"type":3028,"tag":3089,"props":8778,"children":8779},{},[8780,8785],{"type":3028,"tag":3123,"props":8781,"children":8782},{},[8783],{"type":3033,"value":8784},"Other Drivers (Redis, etc.):",{"type":3033,"value":8786}," If using database drivers like Redis, ensure your database server itself is secured (e.g., authentication, network access controls).",{"type":3028,"tag":3321,"props":8788,"children":8790},{"id":8789},"error-message-errormessage",[8791,8793,8799],{"type":3033,"value":8792},"Error Message (",{"type":3028,"tag":3185,"props":8794,"children":8796},{"className":8795},[],[8797],{"type":3033,"value":8798},"errorMessage",{"type":3033,"value":3829},{"type":3028,"tag":3035,"props":8801,"children":8802},{},[8803,8804,8809],{"type":3033,"value":4261},{"type":3028,"tag":3185,"props":8805,"children":8807},{"className":8806},[],[8808],{"type":3033,"value":8798},{"type":3033,"value":8810}," option in the module configuration is returned in the body of a 429 response.",{"type":3028,"tag":3085,"props":8812,"children":8813},{},[8814,8819],{"type":3028,"tag":3089,"props":8815,"children":8816},{},[8817],{"type":3033,"value":8818},"It's recommended to use a plain text message.",{"type":3028,"tag":3089,"props":8820,"children":8821},{},[8822,8824,8829],{"type":3033,"value":8823},"If you choose to use HTML in your ",{"type":3028,"tag":3185,"props":8825,"children":8827},{"className":8826},[],[8828],{"type":3033,"value":8798},{"type":3033,"value":8830},", ensure your client-side application correctly sanitizes it or renders it in a way that prevents XSS vulnerabilities. The module itself does not sanitize this user-configured message.",{"type":3028,"tag":3111,"props":8832,"children":8834},{"id":8833},"development",[8835],{"type":3033,"value":8836},"Development",{"type":3028,"tag":3335,"props":8838,"children":8840},{"className":3337,"code":8839,"language":3339,"meta":2972,"style":2972},"# Install dependencies\nyarn\n\n# Generate type stubs\nyarn dev:prepare\n\n# Develop with the playground\nyarn dev\n\n# Build the playground\nyarn dev:build\n\n# Run ESLint\nyarn lint\n\n# Run Vitest\nyarn test\nyarn test:watch\n\n# Release new version\nyarn release:patch\nyarn release:minor\n",[8841],{"type":3028,"tag":3185,"props":8842,"children":8843},{"__ignoreMap":2972},[8844,8852,8860,8867,8875,8887,8894,8902,8914,8921,8929,8941,8948,8956,8968,8975,8983,8995,9007,9014,9022,9034],{"type":3028,"tag":3345,"props":8845,"children":8846},{"class":3347,"line":3000},[8847],{"type":3028,"tag":3345,"props":8848,"children":8849},{"style":3351},[8850],{"type":3033,"value":8851},"# Install dependencies\n",{"type":3028,"tag":3345,"props":8853,"children":8854},{"class":3347,"line":2996},[8855],{"type":3028,"tag":3345,"props":8856,"children":8857},{"style":3360},[8858],{"type":3033,"value":8859},"yarn\n",{"type":3028,"tag":3345,"props":8861,"children":8862},{"class":3347,"line":3377},[8863],{"type":3028,"tag":3345,"props":8864,"children":8865},{"emptyLinePlaceholder":1196},[8866],{"type":3033,"value":3383},{"type":3028,"tag":3345,"props":8868,"children":8869},{"class":3347,"line":3386},[8870],{"type":3028,"tag":3345,"props":8871,"children":8872},{"style":3351},[8873],{"type":3033,"value":8874},"# Generate type stubs\n",{"type":3028,"tag":3345,"props":8876,"children":8877},{"class":3347,"line":2992},[8878,8882],{"type":3028,"tag":3345,"props":8879,"children":8880},{"style":3360},[8881],{"type":3033,"value":3400},{"type":3028,"tag":3345,"props":8883,"children":8884},{"style":3366},[8885],{"type":3033,"value":8886}," dev:prepare\n",{"type":3028,"tag":3345,"props":8888,"children":8889},{"class":3347,"line":3411},[8890],{"type":3028,"tag":3345,"props":8891,"children":8892},{"emptyLinePlaceholder":1196},[8893],{"type":3033,"value":3383},{"type":3028,"tag":3345,"props":8895,"children":8896},{"class":3347,"line":3419},[8897],{"type":3028,"tag":3345,"props":8898,"children":8899},{"style":3351},[8900],{"type":3033,"value":8901},"# Develop with the playground\n",{"type":3028,"tag":3345,"props":8903,"children":8904},{"class":3347,"line":3428},[8905,8909],{"type":3028,"tag":3345,"props":8906,"children":8907},{"style":3360},[8908],{"type":3033,"value":3400},{"type":3028,"tag":3345,"props":8910,"children":8911},{"style":3366},[8912],{"type":3033,"value":8913}," dev\n",{"type":3028,"tag":3345,"props":8915,"children":8916},{"class":3347,"line":3017},[8917],{"type":3028,"tag":3345,"props":8918,"children":8919},{"emptyLinePlaceholder":1196},[8920],{"type":3033,"value":3383},{"type":3028,"tag":3345,"props":8922,"children":8923},{"class":3347,"line":3624},[8924],{"type":3028,"tag":3345,"props":8925,"children":8926},{"style":3351},[8927],{"type":3033,"value":8928},"# Build the playground\n",{"type":3028,"tag":3345,"props":8930,"children":8931},{"class":3347,"line":3633},[8932,8936],{"type":3028,"tag":3345,"props":8933,"children":8934},{"style":3360},[8935],{"type":3033,"value":3400},{"type":3028,"tag":3345,"props":8937,"children":8938},{"style":3366},[8939],{"type":3033,"value":8940}," dev:build\n",{"type":3028,"tag":3345,"props":8942,"children":8943},{"class":3347,"line":3642},[8944],{"type":3028,"tag":3345,"props":8945,"children":8946},{"emptyLinePlaceholder":1196},[8947],{"type":3033,"value":3383},{"type":3028,"tag":3345,"props":8949,"children":8950},{"class":3347,"line":3651},[8951],{"type":3028,"tag":3345,"props":8952,"children":8953},{"style":3351},[8954],{"type":3033,"value":8955},"# Run ESLint\n",{"type":3028,"tag":3345,"props":8957,"children":8958},{"class":3347,"line":3660},[8959,8963],{"type":3028,"tag":3345,"props":8960,"children":8961},{"style":3360},[8962],{"type":3033,"value":3400},{"type":3028,"tag":3345,"props":8964,"children":8965},{"style":3366},[8966],{"type":3033,"value":8967}," lint\n",{"type":3028,"tag":3345,"props":8969,"children":8970},{"class":3347,"line":3669},[8971],{"type":3028,"tag":3345,"props":8972,"children":8973},{"emptyLinePlaceholder":1196},[8974],{"type":3033,"value":3383},{"type":3028,"tag":3345,"props":8976,"children":8977},{"class":3347,"line":3678},[8978],{"type":3028,"tag":3345,"props":8979,"children":8980},{"style":3351},[8981],{"type":3033,"value":8982},"# Run Vitest\n",{"type":3028,"tag":3345,"props":8984,"children":8985},{"class":3347,"line":3686},[8986,8990],{"type":3028,"tag":3345,"props":8987,"children":8988},{"style":3360},[8989],{"type":3033,"value":3400},{"type":3028,"tag":3345,"props":8991,"children":8992},{"style":3366},[8993],{"type":3033,"value":8994}," test\n",{"type":3028,"tag":3345,"props":8996,"children":8997},{"class":3347,"line":3695},[8998,9002],{"type":3028,"tag":3345,"props":8999,"children":9000},{"style":3360},[9001],{"type":3033,"value":3400},{"type":3028,"tag":3345,"props":9003,"children":9004},{"style":3366},[9005],{"type":3033,"value":9006}," test:watch\n",{"type":3028,"tag":3345,"props":9008,"children":9009},{"class":3347,"line":3704},[9010],{"type":3028,"tag":3345,"props":9011,"children":9012},{"emptyLinePlaceholder":1196},[9013],{"type":3033,"value":3383},{"type":3028,"tag":3345,"props":9015,"children":9016},{"class":3347,"line":3718},[9017],{"type":3028,"tag":3345,"props":9018,"children":9019},{"style":3351},[9020],{"type":3033,"value":9021},"# Release new version\n",{"type":3028,"tag":3345,"props":9023,"children":9024},{"class":3347,"line":3747},[9025,9029],{"type":3028,"tag":3345,"props":9026,"children":9027},{"style":3360},[9028],{"type":3033,"value":3400},{"type":3028,"tag":3345,"props":9030,"children":9031},{"style":3366},[9032],{"type":3033,"value":9033}," release:patch\n",{"type":3028,"tag":3345,"props":9035,"children":9036},{"class":3347,"line":3764},[9037,9041],{"type":3028,"tag":3345,"props":9038,"children":9039},{"style":3360},[9040],{"type":3033,"value":3400},{"type":3028,"tag":3345,"props":9042,"children":9043},{"style":3366},[9044],{"type":3033,"value":9045}," release:minor\n",{"type":3028,"tag":9047,"props":9048,"children":9049},"style",{},[9050],{"type":3033,"value":9051},"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":2972,"searchDepth":2996,"depth":2996,"links":9053},[9054,9055,9066,9072,9076,9082],{"id":3113,"depth":2996,"text":395},{"id":3316,"depth":2996,"text":3319,"children":9056},[9057,9059,9061,9063,9065],{"id":3323,"depth":3377,"text":9058},"1. Add nuxt-api-shield dependency to your project",{"id":3446,"depth":3377,"text":9060},"2. Add nuxt-api-shield to the modules section of nuxt.config.ts",{"id":4393,"depth":3377,"text":9062},"3. Add nitro\u002Fstorage to nuxt.config.ts",{"id":4802,"depth":3377,"text":9064},"4. Schedule bundled cleanup tasks in nuxt.config.ts",{"id":5103,"depth":3377,"text":5106},{"id":7197,"depth":2996,"text":7200,"children":9067},[9068,9070],{"id":7208,"depth":3377,"text":9069},"RateLimit Type",{"id":7760,"depth":3377,"text":9071},"ModuleOptions Type",{"id":7827,"depth":2996,"text":7830,"children":9073},[9074,9075],{"id":7883,"depth":3377,"text":7886},{"id":8379,"depth":3377,"text":8382},{"id":8574,"depth":2996,"text":8577,"children":9077},[9078,9079,9080],{"id":8580,"depth":3377,"text":8583},{"id":8692,"depth":3377,"text":8695},{"id":8789,"depth":3377,"text":9081},"Error Message (errorMessage)",{"id":8833,"depth":2996,"text":8836}]