[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f30r277ag21rfj":3,"module-edgedb":2411,"versions":9574},[4,1159,1643,2205],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":106},"Docs","i-lucide-book-marked","\u002Fdocs\u002F5.x","1.getting-started\u002F01.introduction",[10,107,258,493,1017,1054,1105],{"title":11,"titleTemplate":12,"icon":13,"path":14,"stem":8,"children":15,"page":106},"Get Started","%s · Get Started with Nuxt","i-lucide-rocket","\u002Fdocs\u002F5.x\u002Fgetting-started",[16,21,26,31,36,41,46,51,56,61,66,71,76,81,86,91,96,101],{"title":17,"description":18,"path":19,"stem":8,"icon":20},"Introduction","Nuxt's goal is to make web development intuitive and performant with a great Developer Experience in mind.","\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fintroduction","i-lucide-info",{"title":22,"description":23,"path":24,"stem":25},"Installation","Get started with Nuxt quickly with our online starters or start locally with your terminal.","\u002Fdocs\u002F5.x\u002Fgetting-started\u002Finstallation","1.getting-started\u002F02.installation",{"title":27,"description":28,"path":29,"stem":30},"Configuration","Nuxt is configured with sensible defaults to make you productive.","\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F03.configuration",{"title":32,"description":33,"path":34,"stem":35},"Views","Nuxt provides several component layers to implement the user interface of your application.","\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fviews","1.getting-started\u002F04.views",{"title":37,"description":38,"path":39,"stem":40},"Assets","Nuxt offers two options for your assets.","\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fassets","1.getting-started\u002F05.assets",{"title":42,"description":43,"path":44,"stem":45},"Styling","Learn how to style your Nuxt application.","\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fstyling","1.getting-started\u002F06.styling",{"title":47,"description":48,"path":49,"stem":50},"Routing","Nuxt file-system routing creates a route for every file in the pages\u002F directory.","\u002Fdocs\u002F5.x\u002Fgetting-started\u002Frouting","1.getting-started\u002F07.routing",{"title":52,"description":53,"path":54,"stem":55},"SEO and Meta","Improve your Nuxt app's SEO with powerful head config, composables and components.","\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fseo-meta","1.getting-started\u002F08.seo-meta",{"title":57,"description":58,"path":59,"stem":60},"Transitions","Apply transitions between pages and layouts with Vue or native browser View Transitions.","\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ftransitions","1.getting-started\u002F09.transitions",{"title":62,"description":63,"path":64,"stem":65},"Data Fetching","Nuxt provides composables to handle data fetching within your application.","\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fdata-fetching","1.getting-started\u002F10.data-fetching",{"title":67,"description":68,"path":69,"stem":70},"State Management","Nuxt provides powerful state management libraries and the useState composable to create a reactive and SSR-friendly shared state.","\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fstate-management","1.getting-started\u002F11.state-management",{"title":72,"description":73,"path":74,"stem":75},"Error Handling","Learn how to catch and handle errors in Nuxt.","\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ferror-handling","1.getting-started\u002F12.error-handling",{"title":77,"description":78,"path":79,"stem":80},"Server","Build full-stack applications with Nuxt's server framework. You can fetch data from your database or another server, create APIs, or even generate static server-side content like a sitemap or a RSS feed - all from a single codebase.","\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fserver","1.getting-started\u002F13.server",{"title":82,"description":83,"path":84,"stem":85},"Layers","Nuxt provides a powerful system that allows you to extend the default files, configs, and much more.","\u002Fdocs\u002F5.x\u002Fgetting-started\u002Flayers","1.getting-started\u002F14.layers",{"title":87,"description":88,"path":89,"stem":90},"Prerendering","Nuxt allows pages to be statically rendered at build time to improve certain performance or SEO metrics","\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fprerendering","1.getting-started\u002F15.prerendering",{"title":92,"description":93,"path":94,"stem":95},"Deployment","Learn how to deploy your Nuxt application to any hosting provider.","\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fdeployment","1.getting-started\u002F16.deployment",{"title":97,"description":98,"path":99,"stem":100},"Testing","How to test your Nuxt application.","\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ftesting","1.getting-started\u002F17.testing",{"title":102,"description":103,"path":104,"stem":105},"Upgrade Guide","Learn how to upgrade to the latest Nuxt version.","\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fupgrade","1.getting-started\u002F18.upgrade",false,{"title":108,"titleTemplate":109,"icon":110,"path":111,"stem":112,"children":113,"page":106},"Directory Structure","%s · Nuxt Directory Structure","i-vscode-icons-default-folder","\u002Fdocs\u002F5.x\u002Fdirectory-structure","2.directory-structure\u002F0.nuxt",[114,118,123,183,188,193,198,203,208,213,218,223,228,233,238,243,248,253],{"title":115,"description":116,"path":117,"stem":112},".nuxt","Nuxt uses the .nuxt\u002F directory in development to generate your Vue application.","\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxt",{"title":119,"description":120,"path":121,"stem":122},".output","Nuxt creates the .output\u002F directory when building your application for production.","\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Foutput","2.directory-structure\u002F0.output",{"title":124,"titleTemplate":109,"icon":125,"path":126,"stem":127,"children":128,"page":106},"app","i-vscode-icons-folder-type-app","\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp","2.directory-structure\u002F1.app\u002F1.assets",[129,133,138,143,148,153,158,163,168,173,178],{"title":130,"description":131,"path":132,"stem":127},"assets","The assets\u002F directory is used to add all the website's assets that the build tool will process.","\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fassets",{"title":134,"description":135,"path":136,"stem":137},"components","The components\u002F directory is where you put all your Vue components.","\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fcomponents","2.directory-structure\u002F1.app\u002F1.components",{"title":139,"description":140,"path":141,"stem":142},"composables","Use the composables\u002F directory to auto-import your Vue composables into your application.","\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fcomposables","2.directory-structure\u002F1.app\u002F1.composables",{"title":144,"description":145,"path":146,"stem":147},"layouts","Nuxt provides a layouts framework to extract common UI patterns into reusable layouts.","\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Flayouts","2.directory-structure\u002F1.app\u002F1.layouts",{"title":149,"description":150,"path":151,"stem":152},"middleware","Nuxt provides middleware to run code before navigating to a particular route.","\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fmiddleware","2.directory-structure\u002F1.app\u002F1.middleware",{"title":154,"description":155,"path":156,"stem":157},"pages","Nuxt provides file-based routing to create routes within your web application.","\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fpages","2.directory-structure\u002F1.app\u002F1.pages",{"title":159,"description":160,"path":161,"stem":162},"plugins","Nuxt has a plugins system to use Vue plugins and more at the creation of your Vue application.","\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fplugins","2.directory-structure\u002F1.app\u002F1.plugins",{"title":164,"description":165,"path":166,"stem":167},"utils","Use the utils\u002F directory to auto-import your utility functions throughout your application.","\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Futils","2.directory-structure\u002F1.app\u002F1.utils",{"title":169,"description":170,"path":171,"stem":172},"app.vue","The app.vue file is the main component of your Nuxt application.","\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fapp","2.directory-structure\u002F1.app\u002F3.app",{"title":174,"description":175,"path":176,"stem":177},"app.config.ts","Expose reactive configuration within your application with the App Config file.","\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fapp-config","2.directory-structure\u002F1.app\u002F3.app-config",{"title":179,"description":180,"path":181,"stem":182},"error.vue","The error.vue file is the error page in your Nuxt application.","\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Ferror","2.directory-structure\u002F1.app\u002F3.error",{"title":184,"description":185,"path":186,"stem":187},"content","Use the content\u002F directory to create a file-based CMS for your application.","\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fcontent","2.directory-structure\u002F1.content",{"title":189,"description":190,"path":191,"stem":192},"layers","Use the layers\u002F directory to organize and auto-register local layers within your application.","\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Flayers","2.directory-structure\u002F1.layers",{"title":194,"description":195,"path":196,"stem":197},"modules","Use the modules\u002F directory to automatically register local modules within your application.","\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fmodules","2.directory-structure\u002F1.modules",{"title":199,"description":200,"path":201,"stem":202},"node_modules","The package manager stores the dependencies of your project in the node_modules\u002F directory.","\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnode_modules","2.directory-structure\u002F1.node_modules",{"title":204,"description":205,"path":206,"stem":207},"public","The public\u002F directory is used to serve your website's static assets.","\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fpublic","2.directory-structure\u002F1.public",{"title":209,"description":210,"path":211,"stem":212},"server","The server\u002F directory is used to register API and server handlers to your application.","\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fserver","2.directory-structure\u002F1.server",{"title":214,"description":215,"path":216,"stem":217},"shared","Use the shared\u002F directory to share functionality between the Vue app and the Nitro server.","\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fshared","2.directory-structure\u002F1.shared",{"title":219,"description":220,"path":221,"stem":222},"test","Use the test\u002F directory to organize unit, Nuxt, and end-to-end tests for your application.","\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Ftest","2.directory-structure\u002F1.test",{"title":224,"description":225,"path":226,"stem":227},".env","A .env file specifies your build\u002Fdev-time environment variables.","\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fenv","2.directory-structure\u002F2.env",{"title":229,"description":230,"path":231,"stem":232},".gitignore","A .gitignore file specifies intentionally untracked files that git should ignore.","\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fgitignore","2.directory-structure\u002F2.gitignore",{"title":234,"description":235,"path":236,"stem":237},".nuxtignore","The .nuxtignore file lets Nuxt ignore files in your project’s root directory during the build phase.","\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxtignore","2.directory-structure\u002F2.nuxtignore",{"title":239,"description":240,"path":241,"stem":242},".nuxtrc","The .nuxtrc file allows you to define nuxt configurations in a flat syntax.","\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxtrc","2.directory-structure\u002F2.nuxtrc",{"title":244,"description":245,"path":246,"stem":247},"nuxt.config.ts","Nuxt can be easily configured with a single nuxt.config file.","\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxt-config","2.directory-structure\u002F3.nuxt-config",{"title":249,"description":250,"path":251,"stem":252},"package.json","The package.json file contains all the dependencies and scripts for your application.","\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fpackage","2.directory-structure\u002F3.package",{"title":254,"description":255,"path":256,"stem":257},"tsconfig.json","Learn how Nuxt manages TypeScript configuration across different parts of your project.","\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Ftsconfig","2.directory-structure\u002F3.tsconfig",{"title":259,"icon":260,"path":261,"stem":262,"children":263,"page":106},"Guide","i-lucide-book-open","\u002Fdocs\u002F5.x\u002Fguide","3.guide\u002F1.concepts\u002F1.rendering",[264,309,340,356,402,433],{"title":265,"titleTemplate":266,"icon":267,"path":268,"stem":262,"children":269,"page":106},"Key Concepts","%s · Nuxt Concepts","i-lucide-medal","\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts",[270,274,279,284,289,294,299,304],{"title":271,"description":272,"path":273,"stem":262},"Rendering Modes","Learn about the different rendering modes available in Nuxt.","\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Frendering",{"title":275,"description":276,"path":277,"stem":278},"Nuxt Lifecycle","Understanding the lifecycle of Nuxt applications can help you gain deeper insights into how the framework operates, especially for both server-side and client-side rendering.","\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":280,"description":281,"path":282,"stem":283},"Auto-imports","Nuxt auto-imports components, composables, helper functions and Vue APIs.","\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fauto-imports","3.guide\u002F1.concepts\u002F3.auto-imports",{"title":285,"description":286,"path":287,"stem":288},"Server Engine","Nuxt is powered by a new server engine: Nitro.","\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fserver-engine","3.guide\u002F1.concepts\u002F4.server-engine",{"title":290,"description":291,"path":292,"stem":293},"Modules","Nuxt provides a module system to extend the framework core and simplify integrations.","\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fmodules","3.guide\u002F1.concepts\u002F5.modules",{"title":295,"description":296,"path":297,"stem":298},"Server Components","Render individual components on the server only, keeping their JavaScript out of your client bundle.","\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fserver-components","3.guide\u002F1.concepts\u002F6.server-components",{"title":300,"description":301,"path":302,"stem":303},"TypeScript","Nuxt is fully typed and provides helpful shortcuts to ensure you have access to accurate type information when you are coding.","\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Ftypescript","3.guide\u002F1.concepts\u002F8.typescript",{"title":305,"description":306,"path":307,"stem":308},"Code Style","Nuxt supports ESLint out of the box","\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fcode-style","3.guide\u002F1.concepts\u002F9.code-style",{"title":310,"titleTemplate":311,"icon":312,"path":313,"stem":314,"children":315,"page":106},"Best Practices","%s · Best Practices","i-lucide-square-check","\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices","3.guide\u002F2.best-practices\u002Faccessibility",[316,320,325,330,335],{"title":317,"description":318,"path":319,"stem":314},"Nuxt accessibility","Best practices for accessibility in Nuxt apps.","\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Faccessibility",{"title":321,"description":322,"path":323,"stem":324},"Dev Containers","Set up or open a Nuxt project in a dev container for a consistent development environment.","\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fdevcontainers","3.guide\u002F2.best-practices\u002Fdevcontainers",{"title":326,"description":327,"path":328,"stem":329},"Nuxt and Hydration","Why fixing hydration issues is important","\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fhydration","3.guide\u002F2.best-practices\u002Fhydration",{"title":331,"description":332,"path":333,"stem":334},"Nuxt performance","Best practices for improving performance of Nuxt apps.","\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fperformance","3.guide\u002F2.best-practices\u002Fperformance",{"title":336,"description":337,"path":338,"stem":339},"Nuxt Plugins","Best practices when using Nuxt plugins.","\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fplugins","3.guide\u002F2.best-practices\u002Fplugins",{"title":341,"titleTemplate":342,"icon":343,"path":344,"stem":345,"children":346,"page":106},"Working with AI","Working with AI: %s","i-lucide-bot","\u002Fdocs\u002F5.x\u002Fguide\u002Fai","3.guide\u002F3.ai\u002F1.mcp",[347,351],{"title":348,"description":349,"path":350,"stem":345},"Nuxt MCP Server","Use Nuxt documentation in your AI assistants with Model Context Protocol support.","\u002Fdocs\u002F5.x\u002Fguide\u002Fai\u002Fmcp",{"title":352,"description":353,"path":354,"stem":355},"Nuxt LLMs.txt","How to get AI tools like Cursor, Windsurf, GitHub Copilot, ChatGPT, and Claude to understand Nuxt concepts, APIs, and best practices.","\u002Fdocs\u002F5.x\u002Fguide\u002Fai\u002Fllms-txt","3.guide\u002F3.ai\u002F2.llms-txt",{"title":357,"titleTemplate":358,"icon":359,"path":360,"stem":361,"children":362,"page":106},"Module Author Guide","%s · Nuxt Modules Author Guide","i-lucide-box","\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules","3.guide\u002F4.modules\u002F1.getting-started",[363,367,372,377,382,387,392,397],{"title":364,"description":365,"path":366,"stem":361},"Create Your First Module","Learn how to create your first Nuxt module using the official starter template.","\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fgetting-started",{"title":368,"description":369,"path":370,"stem":371},"Understand Module Structure","Learn how Nuxt modules are structured and how to define them.","\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","3.guide\u002F4.modules\u002F2.module-anatomy",{"title":373,"description":374,"path":375,"stem":376},"Add Plugins, Components & More","Learn how to inject plugins, components, composables and server routes from your module.","\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Frecipes-basics","3.guide\u002F4.modules\u002F3.recipes-basics",{"title":378,"description":379,"path":380,"stem":381},"Module Dependencies","Declare dependencies on other modules with version constraints and configuration merging.","\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fmodule-dependencies","3.guide\u002F4.modules\u002F4.module-dependencies",{"title":383,"description":384,"path":385,"stem":386},"Use Hooks & Extend Types","Master lifecycle hooks, virtual files and TypeScript declarations in your modules.","\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","3.guide\u002F4.modules\u002F5.recipes-advanced",{"title":388,"description":389,"path":390,"stem":391},"Test Your Module","Learn how to test your Nuxt module with unit, integration and E2E tests.","\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Ftesting","3.guide\u002F4.modules\u002F6.testing",{"title":393,"description":394,"path":395,"stem":396},"Follow Best Practices","Build performant and maintainable Nuxt modules with these guidelines.","\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fbest-practices","3.guide\u002F4.modules\u002F7.best-practices",{"title":398,"description":399,"path":400,"stem":401},"Publish & Share Your Module","Join the Nuxt module ecosystem and publish your module to npm.","\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fecosystem","3.guide\u002F4.modules\u002F8.ecosystem",{"title":403,"titleTemplate":404,"icon":405,"path":406,"stem":407,"children":408,"page":106},"Recipes","%s · Recipes","i-lucide-cooking-pot","\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes","3.guide\u002F5.recipes\u002F1.custom-routing",[409,413,418,423,428],{"title":410,"description":411,"path":412,"stem":407},"Custom Routing","In Nuxt, your routing is defined by the structure of your files inside the pages directory. However, since it uses vue-router under the hood, Nuxt offers you several ways to add custom routes in your project.","\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fcustom-routing",{"title":414,"description":415,"path":416,"stem":417},"Using Vite Plugins in Nuxt","Learn how to integrate Vite plugins into your Nuxt project.","\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fvite-plugin","3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":419,"description":420,"path":421,"stem":422},"Custom useFetch in Nuxt","How to create a custom fetcher for calling your external API in Nuxt.","\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":424,"description":425,"path":426,"stem":427},"Sessions and Authentication","Authentication is an extremely common requirement in web apps. This recipe will show you how to implement basic user registration and authentication in your Nuxt app.","\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":429,"description":430,"path":431,"stem":432},"Mostly-Static Sites","Ship near-zero JavaScript for content and marketing sites while keeping islands of interactivity.","\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fmostly-static-sites","3.guide\u002F5.recipes\u002F5.mostly-static-sites",{"title":434,"titleTemplate":435,"icon":436,"path":437,"stem":438,"children":439,"page":106},"Going Further","%s · Nuxt Advanced","i-lucide-star","\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further","3.guide\u002F6.going-further\u002F1.events",[440,444,449,454,459,464,469,473,478,483,488],{"title":441,"description":442,"path":443,"stem":438},"Creating Custom Events","Nuxt provides a powerful event system powered by hookable.","\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fevents",{"title":445,"description":446,"path":447,"stem":448},"Experimental Features","Enable Nuxt experimental features to unlock new possibilities.","\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","3.guide\u002F6.going-further\u002F1.experimental-features",{"title":450,"description":451,"path":452,"stem":453},"Features","Enable or disable optional Nuxt features to unlock new possibilities.","\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Ffeatures","3.guide\u002F6.going-further\u002F1.features",{"title":455,"description":456,"path":457,"stem":458},"Lifecycle Hooks","Nuxt provides a powerful hooking system to expand almost every aspect using hooks.","\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fhooks","3.guide\u002F6.going-further\u002F2.hooks",{"title":460,"description":461,"path":462,"stem":463},"Nuxt Kit","@nuxt\u002Fkit provides features for module authors.","\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fkit","3.guide\u002F6.going-further\u002F4.kit",{"title":465,"description":466,"path":467,"stem":468},"NuxtApp","In Nuxt, you can access runtime app context within composables, components and plugins.","\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":470,"description":83,"path":471,"stem":472},"Authoring Nuxt Layers","\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Flayers","3.guide\u002F6.going-further\u002F7.layers",{"title":474,"description":475,"path":476,"stem":477},"Creating a Builder","Learn how Nuxt builders work and how to author your own.","\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fbuilders","3.guide\u002F6.going-further\u002F8.builders",{"title":479,"description":480,"path":481,"stem":482},"Debugging","In Nuxt, you can get started with debugging your application directly in the browser as well as in your IDE.","\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fdebugging","3.guide\u002F6.going-further\u002F9.debugging",{"title":484,"description":485,"path":486,"stem":487},"Runtime Config","Nuxt provides a runtime config API to expose configuration and secrets within your application.","\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","3.guide\u002F6.going-further\u002F10.runtime-config",{"title":489,"description":490,"path":491,"stem":492},"Nightly Release Channel","The nightly release channel allows using Nuxt built directly from the latest commits to the repository.","\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel","3.guide\u002F6.going-further\u002F11.nightly-release-channel",{"title":494,"titleTemplate":495,"icon":496,"path":497,"stem":498,"children":499,"page":106},"API","%s · Nuxt API","i-lucide-code-xml","\u002Fdocs\u002F5.x\u002Fapi","4.api\u002F1.components\u002F1.client-only",[500,584,755,905,999,1012],{"title":501,"titleTemplate":502,"icon":359,"path":503,"stem":498,"children":504,"page":106},"Components","%s · Nuxt Components","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents",[505,509,514,519,524,529,534,539,544,549,554,559,564,569,574,579],{"title":506,"description":507,"path":508,"stem":498},"\u003CClientOnly>","Render components only in client-side with the \u003CClientOnly> component.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fclient-only",{"title":510,"description":511,"path":512,"stem":513},"\u003CDevOnly>","Render components only during development with the \u003CDevOnly> component.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fdev-only","4.api\u002F1.components\u002F1.dev-only",{"title":515,"description":516,"path":517,"stem":518},"\u003CNuxtClientFallback>","Nuxt provides the \u003CNuxtClientFallback> component to render its content on the client if any of its children trigger an error in SSR","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":520,"description":521,"path":522,"stem":523},"\u003CNuxtPage>","The \u003CNuxtPage> component is required to display pages located in the pages\u002F directory.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","4.api\u002F1.components\u002F2.nuxt-page",{"title":525,"description":526,"path":527,"stem":528},"\u003CNuxtLayout>","Nuxt provides the \u003CNuxtLayout> component to show layouts on pages and error pages.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","4.api\u002F1.components\u002F3.nuxt-layout",{"title":530,"description":531,"path":532,"stem":533},"\u003CNuxtLink>","Nuxt provides \u003CNuxtLink> component to handle any kind of links within your application.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","4.api\u002F1.components\u002F4.nuxt-link",{"title":535,"description":536,"path":537,"stem":538},"\u003CNuxtLoadingIndicator>","Display a progress bar between page navigations.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":540,"description":541,"path":542,"stem":543},"\u003CNuxtErrorBoundary>","The \u003CNuxtErrorBoundary> component handles client-side errors happening in its default slot.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":545,"description":546,"path":547,"stem":548},"\u003CNuxtWelcome>","The \u003CNuxtWelcome> component greets users in new projects made from the starter template.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","4.api\u002F1.components\u002F7.nuxt-welcome",{"title":550,"description":551,"path":552,"stem":553},"\u003CNuxtIsland>","Nuxt provides the \u003CNuxtIsland> component to render a non-interactive component without any client JS.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","4.api\u002F1.components\u002F8.nuxt-island",{"title":555,"description":556,"path":557,"stem":558},"\u003CNuxtImg>","Nuxt provides a \u003CNuxtImg> component to handle automatic image optimization.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-img","4.api\u002F1.components\u002F9.nuxt-img",{"title":560,"description":561,"path":562,"stem":563},"\u003CNuxtPicture>","Nuxt provides a \u003CNuxtPicture> component to handle automatic image optimization.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","4.api\u002F1.components\u002F10.nuxt-picture",{"title":565,"description":566,"path":567,"stem":568},"\u003CTeleport>","The \u003CTeleport> component teleports a component to a different location in the DOM.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fteleports","4.api\u002F1.components\u002F11.teleports",{"title":570,"description":571,"path":572,"stem":573},"\u003CNuxtRouteAnnouncer>","The \u003CNuxtRouteAnnouncer> component adds a hidden element with the page title to announce route changes to assistive technologies.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":575,"description":576,"path":577,"stem":578},"\u003CNuxtTime>","The \u003CNuxtTime> component displays time in a locale-friendly format with server-client consistency.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","4.api\u002F1.components\u002F13.nuxt-time",{"title":580,"description":581,"path":582,"stem":583},"\u003CNuxtAnnouncer>","The \u003CNuxtAnnouncer> component adds a hidden element to announce dynamic content changes to assistive technologies.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-announcer","4.api\u002F1.components\u002F14.nuxt-announcer",{"title":585,"titleTemplate":586,"icon":587,"path":588,"stem":589,"children":590,"page":106},"Composables","%s · Nuxt Composables","i-lucide-arrow-left-right","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables","4.api\u002F2.composables\u002Fcreate-use-async-data",[591,595,600,605,610,615,620,625,630,635,640,645,650,655,660,665,670,675,680,685,690,695,700,705,710,715,720,725,730,735,740,745,750],{"title":592,"description":593,"path":594,"stem":589},"createUseAsyncData","A factory function to create a custom useAsyncData composable with pre-defined default options.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fcreate-use-async-data",{"title":596,"description":597,"path":598,"stem":599},"createUseFetch","A factory function to create a custom useFetch composable with pre-defined default options.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fcreate-use-fetch","4.api\u002F2.composables\u002Fcreate-use-fetch",{"title":601,"description":602,"path":603,"stem":604},"onPrehydrate","Use onPrehydrate to run a callback on the client immediately before Nuxt hydrates the page.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","4.api\u002F2.composables\u002Fon-prehydrate",{"title":606,"description":607,"path":608,"stem":609},"useAnnouncer","A composable for announcing messages to screen readers.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-announcer","4.api\u002F2.composables\u002Fuse-announcer",{"title":611,"description":612,"path":613,"stem":614},"useAppConfig","Access the reactive app config defined in the project.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","4.api\u002F2.composables\u002Fuse-app-config",{"title":616,"description":617,"path":618,"stem":619},"useAsyncData","useAsyncData provides access to data that resolves asynchronously in an SSR-friendly composable.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","4.api\u002F2.composables\u002Fuse-async-data",{"title":621,"description":622,"path":623,"stem":624},"useCookie","useCookie is an SSR-friendly composable to read and write cookies.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","4.api\u002F2.composables\u002Fuse-cookie",{"title":626,"description":627,"path":628,"stem":629},"useError","useError composable returns the global Nuxt error that is being handled.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-error","4.api\u002F2.composables\u002Fuse-error",{"title":631,"description":632,"path":633,"stem":634},"useFetch","Fetch data from an API endpoint with an SSR-friendly composable.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","4.api\u002F2.composables\u002Fuse-fetch",{"title":636,"description":637,"path":638,"stem":639},"useHead","useHead customizes the head properties of individual pages of your Nuxt app.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-head","4.api\u002F2.composables\u002Fuse-head",{"title":641,"description":642,"path":643,"stem":644},"useHeadSafe","The recommended way to provide head data with user input.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","4.api\u002F2.composables\u002Fuse-head-safe",{"title":646,"description":647,"path":648,"stem":649},"useHydration","Allows full control of the hydration cycle to set and receive data from the server.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","4.api\u002F2.composables\u002Fuse-hydration",{"title":651,"description":652,"path":653,"stem":654},"useLayout","useLayout returns the layout resolved for the current route.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-layout","4.api\u002F2.composables\u002Fuse-layout",{"title":656,"description":657,"path":658,"stem":659},"useLazyAsyncData","This wrapper around useAsyncData triggers navigation immediately.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data","4.api\u002F2.composables\u002Fuse-lazy-async-data",{"title":661,"description":662,"path":663,"stem":664},"useLazyFetch","This wrapper around useFetch triggers navigation immediately.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":666,"description":667,"path":668,"stem":669},"useLoadingIndicator","This composable gives you access to the loading state of the app page.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":671,"description":672,"path":673,"stem":674},"useNuxtApp","Access the shared runtime context of the Nuxt Application.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":676,"description":677,"path":678,"stem":679},"useNuxtData","Access the current cached value of data fetching composables.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":681,"description":682,"path":683,"stem":684},"usePreviewMode","Use usePreviewMode to check and control preview mode in Nuxt","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","4.api\u002F2.composables\u002Fuse-preview-mode",{"title":686,"description":687,"path":688,"stem":689},"useRequestEvent","Access the incoming request event with the useRequestEvent composable.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","4.api\u002F2.composables\u002Fuse-request-event",{"title":691,"description":692,"path":693,"stem":694},"useRequestFetch","Forward the request context and headers for server-side fetch requests with the useRequestFetch composable.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","4.api\u002F2.composables\u002Fuse-request-fetch",{"title":696,"description":697,"path":698,"stem":699},"useRequestHeader","Use useRequestHeader to access a certain incoming request header.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","4.api\u002F2.composables\u002Fuse-request-header",{"title":701,"description":702,"path":703,"stem":704},"useRequestHeaders","Use useRequestHeaders to access the incoming request headers.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","4.api\u002F2.composables\u002Fuse-request-headers",{"title":706,"description":707,"path":708,"stem":709},"useRequestURL","Access the incoming request URL with the useRequestURL composable.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","4.api\u002F2.composables\u002Fuse-request-url",{"title":711,"description":712,"path":713,"stem":714},"useResponseHeader","Use useResponseHeader to set a server response header.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","4.api\u002F2.composables\u002Fuse-response-header",{"title":716,"description":717,"path":718,"stem":719},"useRoute","The useRoute composable returns the current route.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-route","4.api\u002F2.composables\u002Fuse-route",{"title":721,"description":722,"path":723,"stem":724},"useRouteAnnouncer","This composable observes the page title changes and updates the announcer message accordingly.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","4.api\u002F2.composables\u002Fuse-route-announcer",{"title":726,"description":727,"path":728,"stem":729},"useRouter","The useRouter composable returns the router instance.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-router","4.api\u002F2.composables\u002Fuse-router",{"title":731,"description":732,"path":733,"stem":734},"useRuntimeConfig","Access runtime config variables with the useRuntimeConfig composable.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","4.api\u002F2.composables\u002Fuse-runtime-config",{"title":736,"description":737,"path":738,"stem":739},"useRuntimeHook","Registers a runtime hook in a Nuxt application and ensures it is properly disposed of when the scope is destroyed.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":741,"description":742,"path":743,"stem":744},"useSeoMeta","The useSeoMeta composable lets you define your site's SEO meta tags as a flat object with full TypeScript support.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","4.api\u002F2.composables\u002Fuse-seo-meta",{"title":746,"description":747,"path":748,"stem":749},"useServerSeoMeta","The useServerSeoMeta composable lets you define your site's SEO meta tags as a flat object with full TypeScript support.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta","4.api\u002F2.composables\u002Fuse-server-seo-meta",{"title":751,"description":752,"path":753,"stem":754},"useState","The useState composable creates a reactive and SSR-friendly shared state.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-state","4.api\u002F2.composables\u002Fuse-state",{"title":756,"titleTemplate":757,"path":758,"stem":759,"children":760,"page":106},"Utils","%s · Nuxt Utils","\u002Fdocs\u002F5.x\u002Fapi\u002Futils","4.api\u002F3.utils\u002F$fetch",[761,765,770,775,780,785,790,795,800,805,810,815,820,825,830,835,840,845,850,855,860,865,870,875,880,885,890,895,900],{"title":762,"description":763,"path":764,"stem":759},"$fetch","Nuxt uses ofetch to expose globally the $fetch helper for making HTTP requests.","\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdollarfetch",{"title":766,"description":767,"path":768,"stem":769},"abortNavigation","abortNavigation is a helper function that prevents navigation from taking place and throws an error if one is set as a parameter.","\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fabort-navigation","4.api\u002F3.utils\u002Fabort-navigation",{"title":771,"description":772,"path":773,"stem":774},"addRouteMiddleware","addRouteMiddleware() is a helper function to dynamically add middleware in your application.","\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fadd-route-middleware","4.api\u002F3.utils\u002Fadd-route-middleware",{"title":776,"description":777,"path":778,"stem":779},"callOnce","Run a given function or block of code once during SSR or CSR.","\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fcall-once","4.api\u002F3.utils\u002Fcall-once",{"title":781,"description":782,"path":783,"stem":784},"clearError","The clearError composable clears all handled errors.","\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-error","4.api\u002F3.utils\u002Fclear-error",{"title":786,"description":787,"path":788,"stem":789},"clearNuxtData","Delete cached data, error status and pending promises of useAsyncData and useFetch.","\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":791,"description":792,"path":793,"stem":794},"clearNuxtState","Delete the cached state of useState.","\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":796,"description":797,"path":798,"stem":799},"createError","Create an error object with additional metadata.","\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fcreate-error","4.api\u002F3.utils\u002Fcreate-error",{"title":801,"description":802,"path":803,"stem":804},"defineLazyHydrationComponent","Define a lazy hydration component with a specific strategy.","\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component","4.api\u002F3.utils\u002Fdefine-lazy-hydration-component",{"title":806,"description":807,"path":808,"stem":809},"defineNuxtComponent","defineNuxtComponent() is a helper function for defining type safe components with Options API.","\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":811,"description":812,"path":813,"stem":814},"defineNuxtPlugin","defineNuxtPlugin() is a helper function for creating Nuxt plugins.","\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":816,"description":817,"path":818,"stem":819},"defineNuxtRouteMiddleware","Create named route middleware using defineNuxtRouteMiddleware helper function.","\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware","4.api\u002F3.utils\u002Fdefine-nuxt-route-middleware",{"title":821,"description":822,"path":823,"stem":824},"definePageMeta","Define metadata for your page components.","\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-page-meta","4.api\u002F3.utils\u002Fdefine-page-meta",{"title":826,"description":827,"path":828,"stem":829},"defineRouteRules","Define route rules for hybrid rendering at the page level.","\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-route-rules","4.api\u002F3.utils\u002Fdefine-route-rules",{"title":831,"description":832,"path":833,"stem":834},"navigateTo","navigateTo is a helper function that programmatically navigates users.","\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fnavigate-to","4.api\u002F3.utils\u002Fnavigate-to",{"title":836,"description":837,"path":838,"stem":839},"onBeforeRouteLeave","The onBeforeRouteLeave composable allows registering a route guard within a component.","\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-before-route-leave","4.api\u002F3.utils\u002Fon-before-route-leave",{"title":841,"description":842,"path":843,"stem":844},"onBeforeRouteUpdate","The onBeforeRouteUpdate composable allows registering a route guard within a component.","\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-before-route-update","4.api\u002F3.utils\u002Fon-before-route-update",{"title":846,"description":847,"path":848,"stem":849},"onNuxtReady","The onNuxtReady composable allows running a callback after your app has finished initializing.","\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":851,"description":852,"path":853,"stem":854},"prefetchComponents","Nuxt provides utilities to give you control over prefetching components.","\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fprefetch-components","4.api\u002F3.utils\u002Fprefetch-components",{"title":856,"description":857,"path":858,"stem":859},"preloadComponents","Nuxt provides utilities to give you control over preloading components.","\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fpreload-components","4.api\u002F3.utils\u002Fpreload-components",{"title":861,"description":862,"path":863,"stem":864},"preloadRouteComponents","preloadRouteComponents allows you to manually preload individual pages in your Nuxt app.","\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fpreload-route-components","4.api\u002F3.utils\u002Fpreload-route-components",{"title":866,"description":867,"path":868,"stem":869},"prerenderRoutes","prerenderRoutes hints to Nitro to prerender an additional route.","\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fprerender-routes","4.api\u002F3.utils\u002Fprerender-routes",{"title":871,"description":872,"path":873,"stem":874},"refreshCookie","Refresh useCookie values manually when a cookie has changed","\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Frefresh-cookie","4.api\u002F3.utils\u002Frefresh-cookie",{"title":876,"description":877,"path":878,"stem":879},"refreshNuxtData","Refresh all or specific asyncData instances in Nuxt","\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":881,"description":882,"path":883,"stem":884},"reloadNuxtApp","reloadNuxtApp will perform a hard reload of the page.","\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Freload-nuxt-app","4.api\u002F3.utils\u002Freload-nuxt-app",{"title":886,"description":887,"path":888,"stem":889},"setPageLayout","setPageLayout allows you to dynamically change the layout of a page.","\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fset-page-layout","4.api\u002F3.utils\u002Fset-page-layout",{"title":891,"description":892,"path":893,"stem":894},"setResponseStatus","setResponseStatus sets the status (and optionally the statusText) of the response.","\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fset-response-status","4.api\u002F3.utils\u002Fset-response-status",{"title":896,"description":897,"path":898,"stem":899},"showError","Nuxt provides a quick and simple way to show a full screen error page if needed.","\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fshow-error","4.api\u002F3.utils\u002Fshow-error",{"title":901,"description":902,"path":903,"stem":904},"updateAppConfig","Update the App Config at runtime.","\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fupdate-app-config","4.api\u002F3.utils\u002Fupdate-app-config",{"title":460,"titleTemplate":906,"path":907,"stem":908,"children":909,"page":106},"%s · Nuxt Kit","\u002Fdocs\u002F5.x\u002Fapi\u002Fkit","4.api\u002F5.kit\u002F1.modules",[910,913,918,923,927,931,936,941,946,951,956,960,965,970,975,980,985,990,995],{"title":290,"description":911,"path":912,"stem":908},"Nuxt Kit provides a set of utilities to help you create and use modules. You can use these utilities to create your own modules or to reuse existing modules.","\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fmodules",{"title":914,"description":915,"path":916,"stem":917},"Programmatic Usage","Nuxt Kit provides a set of utilities to help you work with Nuxt programmatically. These functions allow you to load Nuxt, build Nuxt, and load Nuxt configuration.","\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fprogrammatic","4.api\u002F5.kit\u002F2.programmatic",{"title":919,"description":920,"path":921,"stem":922},"Compatibility","Nuxt Kit provides a set of utilities to help you check the compatibility of your modules with different Nuxt versions.","\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcompatibility","4.api\u002F5.kit\u002F3.compatibility",{"title":280,"description":924,"path":925,"stem":926},"Nuxt Kit provides a set of utilities to help you work with auto-imports. These functions allow you to register your own utils, composables and Vue APIs.","\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fautoimports","4.api\u002F5.kit\u002F4.autoimports",{"title":501,"description":928,"path":929,"stem":930},"Nuxt Kit provides a set of utilities to help you work with components. You can register components globally or locally, and also add directories to be scanned for components.","\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcomponents","4.api\u002F5.kit\u002F5.components",{"title":932,"description":933,"path":934,"stem":935},"Context","Nuxt Kit provides a set of utilities to help you work with context.","\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcontext","4.api\u002F5.kit\u002F6.context",{"title":937,"description":938,"path":939,"stem":940},"Pages","Nuxt Kit provides a set of utilities to help you create and use pages. You can use these utilities to manipulate the pages configuration or to define route rules.","\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fpages","4.api\u002F5.kit\u002F7.pages",{"title":942,"description":943,"path":944,"stem":945},"Layout","Nuxt Kit provides a set of utilities to help you work with layouts.","\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flayout","4.api\u002F5.kit\u002F8.layout",{"title":947,"description":948,"path":949,"stem":950},"Head","Nuxt Kit provides utilities to help you manage head configuration in modules.","\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fhead","4.api\u002F5.kit\u002F9.head",{"title":952,"description":953,"path":954,"stem":955},"Plugins","Nuxt Kit provides a set of utilities to help you create and use plugins. You can add plugins or plugin templates to your module using these functions.","\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fplugins","4.api\u002F5.kit\u002F9.plugins",{"title":484,"description":957,"path":958,"stem":959},"Nuxt Kit provides a set of utilities to help you access and modify Nuxt runtime configuration.","\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fruntime-config","4.api\u002F5.kit\u002F10.runtime-config",{"title":961,"description":962,"path":963,"stem":964},"Templates","Nuxt Kit provides a set of utilities to help you work with templates. These functions allow you to generate extra files during development and build time.","\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Ftemplates","4.api\u002F5.kit\u002F10.templates",{"title":966,"description":967,"path":968,"stem":969},"App Config","Nuxt Kit provides a set of utilities to help you access and modify Nuxt app configuration.","\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fapp-config","4.api\u002F5.kit\u002F11.app-config",{"title":971,"description":972,"path":973,"stem":974},"Nitro","Nuxt Kit provides a set of utilities to help you work with Nitro. These functions allow you to add server handlers, plugins, and prerender routes.","\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fnitro","4.api\u002F5.kit\u002F12.nitro",{"title":976,"description":977,"path":978,"stem":979},"Resolving","Nuxt Kit provides utilities to resolve paths from the Nuxt root directory or a custom base.","\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fresolving","4.api\u002F5.kit\u002F13.resolving",{"title":981,"description":982,"path":983,"stem":984},"Logging","Nuxt Kit provides a set of utilities to help you work with logging. These functions allow you to log messages with extra features.","\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flogging","4.api\u002F5.kit\u002F14.logging",{"title":986,"description":987,"path":988,"stem":989},"Builder","Nuxt Kit provides a set of utilities to help you work with the builder. These functions allow you to extend the Vite and webpack configurations.","\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fbuilder","4.api\u002F5.kit\u002F15.builder",{"title":991,"description":992,"path":993,"stem":994},"Examples","Examples of Nuxt Kit utilities in use.","\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fexamples","4.api\u002F5.kit\u002F16.examples",{"title":82,"description":996,"path":997,"stem":998},"Nuxt Kit provides utilities to help you work with layers and their directory structures.","\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flayers","4.api\u002F5.kit\u002F17.layers",{"icon":1000,"title":1001,"path":1002,"stem":1003,"children":1004,"page":106},"i-lucide-brain","Advanced","\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced","4.api\u002F6.advanced\u002F1.hooks",[1005,1007],{"title":455,"description":456,"path":1006,"stem":1003},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced\u002Fhooks",{"title":1008,"description":1009,"path":1010,"stem":1011},"Import meta","Understand where your code is running using `import.meta`.","\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced\u002Fimport-meta","4.api\u002F6.advanced\u002F2.import-meta",{"title":1013,"description":1014,"path":1015,"stem":1016},"Nuxt Configuration","Discover all the options you can use in your nuxt.config.ts file.","\u002Fdocs\u002F5.x\u002Fapi\u002Fnuxt-config","4.api\u002F6.nuxt-config",{"title":1018,"titleTemplate":1019,"icon":1020,"path":1021,"stem":1022,"children":1023,"page":106},"Community","%s · Nuxt Community","i-lucide-messages-square","\u002Fdocs\u002F5.x\u002Fcommunity","5.community\u002F2.getting-help",[1024,1029,1034,1039,1044,1049],{"title":1025,"description":1026,"path":1027,"stem":1022,"icon":1028},"Getting Help","We're a friendly community of developers and we'd love to help.","\u002Fdocs\u002F5.x\u002Fcommunity\u002Fgetting-help","i-lucide-life-buoy",{"title":1030,"description":1031,"path":1032,"stem":1033},"Reporting Bugs","One of the most valuable roles in open source is taking the time to report bugs helpfully.","\u002Fdocs\u002F5.x\u002Fcommunity\u002Freporting-bugs","5.community\u002F3.reporting-bugs",{"title":1035,"description":1036,"path":1037,"stem":1038},"Contribution","Nuxt is a community project - and so we love contributions of all kinds! ❤️","\u002Fdocs\u002F5.x\u002Fcommunity\u002Fcontribution","5.community\u002F4.contribution",{"title":1040,"description":1041,"path":1042,"stem":1043},"Framework","Some specific points about contributions to the framework repository.","\u002Fdocs\u002F5.x\u002Fcommunity\u002Fframework-contribution","5.community\u002F5.framework-contribution",{"title":1045,"description":1046,"path":1047,"stem":1048},"Roadmap","Nuxt is constantly evolving, with new features and modules being added all the time.","\u002Fdocs\u002F5.x\u002Fcommunity\u002Froadmap","5.community\u002F6.roadmap",{"title":1050,"description":1051,"path":1052,"stem":1053},"Releases","Discover the latest releases of Nuxt & Nuxt official modules.","\u002Fdocs\u002F5.x\u002Fcommunity\u002Fchangelog","5.community\u002F7.changelog",{"title":1055,"titleTemplate":1056,"icon":1057,"path":1058,"stem":1059,"children":1060,"page":106},"Migrate to Nuxt Bridge","Migrate to Nuxt Bridge: %s","i-lucide-ship","\u002Fdocs\u002F5.x\u002Fbridge","6.bridge\u002F1.overview",[1061,1065,1069,1074,1079,1084,1089,1092,1096,1101],{"title":1062,"description":1063,"path":1064,"stem":1059},"Overview","Reduce the differences with Nuxt 3 and reduce the burden of migration to Nuxt 3.","\u002Fdocs\u002F5.x\u002Fbridge\u002Foverview",{"title":300,"description":1066,"path":1067,"stem":1068},"Learn how to use TypeScript with Nuxt Bridge.","\u002Fdocs\u002F5.x\u002Fbridge\u002Ftypescript","6.bridge\u002F2.typescript",{"title":1070,"description":1071,"path":1072,"stem":1073},"Legacy Composition API","Learn how to migrate to Composition API with Nuxt Bridge.","\u002Fdocs\u002F5.x\u002Fbridge\u002Fbridge-composition-api","6.bridge\u002F3.bridge-composition-api",{"title":1075,"description":1076,"path":1077,"stem":1078},"Plugins and Middleware","Learn how to migrate from Nuxt 2 to Nuxt Bridge new plugins and middleware.","\u002Fdocs\u002F5.x\u002Fbridge\u002Fplugins-and-middleware","6.bridge\u002F4.plugins-and-middleware",{"title":1080,"description":1081,"path":1082,"stem":1083},"New Composition API","Nuxt Bridge implements composables compatible with Nuxt 3.","\u002Fdocs\u002F5.x\u002Fbridge\u002Fnuxt3-compatible-api","6.bridge\u002F5.nuxt3-compatible-api",{"title":1085,"description":1086,"path":1087,"stem":1088},"Meta Tags","Learn how to migrate from Nuxt 2 to Nuxt Bridge new meta tags.","\u002Fdocs\u002F5.x\u002Fbridge\u002Fmeta","6.bridge\u002F6.meta",{"title":484,"description":485,"path":1090,"stem":1091},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fruntime-config","6.bridge\u002F7.runtime-config",{"title":971,"description":1093,"path":1094,"stem":1095},"Activate Nitro to your Nuxt 2 application with Nuxt Bridge.","\u002Fdocs\u002F5.x\u002Fbridge\u002Fnitro","6.bridge\u002F8.nitro",{"title":1097,"description":1098,"path":1099,"stem":1100},"Vite","Activate Vite to your Nuxt 2 application with Nuxt Bridge.","\u002Fdocs\u002F5.x\u002Fbridge\u002Fvite","6.bridge\u002F9.vite",{"title":27,"description":1102,"path":1103,"stem":1104},"Learn how to configure Nuxt Bridge to your own needs.","\u002Fdocs\u002F5.x\u002Fbridge\u002Fconfiguration","6.bridge\u002F10.configuration",{"title":1106,"titleTemplate":1107,"icon":1108,"path":1109,"stem":1110,"children":1111,"page":106},"Migrate to Nuxt 3","Migrate to Nuxt 3: %s","i-lucide-circle-arrow-up","\u002Fdocs\u002F5.x\u002Fmigration","7.migration\u002F1.overview",[1112,1115,1119,1124,1128,1132,1137,1142,1146,1151,1155],{"title":1062,"description":1113,"path":1114,"stem":1110},"Nuxt 3 is a complete rewrite of Nuxt 2, and also based on a new set of underlying technologies.","\u002Fdocs\u002F5.x\u002Fmigration\u002Foverview",{"title":27,"description":1116,"path":1117,"stem":1118},"Learn how to migrate from Nuxt 2 to Nuxt 3 new configuration.","\u002Fdocs\u002F5.x\u002Fmigration\u002Fconfiguration","7.migration\u002F2.configuration",{"title":1120,"description":1121,"path":1122,"stem":1123},"Auto Imports","Nuxt 3 adopts a minimal friction approach, meaning wherever possible components and composables are auto-imported.","\u002Fdocs\u002F5.x\u002Fmigration\u002Fauto-imports","7.migration\u002F3.auto-imports",{"title":1085,"description":1125,"path":1126,"stem":1127},"Manage your meta tags, from Nuxt 2 to Nuxt 3.","\u002Fdocs\u002F5.x\u002Fmigration\u002Fmeta","7.migration\u002F4.meta",{"title":1075,"description":1129,"path":1130,"stem":1131},"Learn how to migrate from Nuxt 2 to Nuxt 3 plugins and middleware.","\u002Fdocs\u002F5.x\u002Fmigration\u002Fplugins-and-middleware","7.migration\u002F5.plugins-and-middleware",{"title":1133,"description":1134,"path":1135,"stem":1136},"Pages and Layouts","Learn how to migrate from Nuxt 2 to Nuxt 3 pages and layouts.","\u002Fdocs\u002F5.x\u002Fmigration\u002Fpages-and-layouts","7.migration\u002F6.pages-and-layouts",{"title":1138,"description":1139,"path":1140,"stem":1141},"Component Options","Learn how to migrate from Nuxt 2 components options to Nuxt 3 composables.","\u002Fdocs\u002F5.x\u002Fmigration\u002Fcomponent-options","7.migration\u002F7.component-options",{"title":484,"description":1143,"path":1144,"stem":1145},"Learn how to migrate from Nuxt 2 to Nuxt 3 runtime config.","\u002Fdocs\u002F5.x\u002Fmigration\u002Fruntime-config","7.migration\u002F8.runtime-config",{"title":1147,"description":1148,"path":1149,"stem":1150},"Build Tooling","Learn how to migrate from Nuxt 2 to Nuxt 3 build tooling.","\u002Fdocs\u002F5.x\u002Fmigration\u002Fbundling","7.migration\u002F10.bundling",{"title":77,"description":1152,"path":1153,"stem":1154},"Learn how to migrate from Nuxt 2 to Nuxt 3 server.","\u002Fdocs\u002F5.x\u002Fmigration\u002Fserver","7.migration\u002F11.server",{"title":290,"description":1156,"path":1157,"stem":1158},"Learn how to migrate from Nuxt 2 to Nuxt 3 modules.","\u002Fdocs\u002F5.x\u002Fmigration\u002Fmodule-authors","7.migration\u002F20.module-authors",{"title":5,"icon":6,"path":1160,"stem":8,"children":1161,"page":106},"\u002Fdocs\u002F4.x",[1162,1201,1263,1362,1580,1595,1618],{"title":11,"titleTemplate":12,"icon":13,"path":1163,"stem":8,"children":1164,"page":106},"\u002Fdocs\u002F4.x\u002Fgetting-started",[1165,1167,1169,1171,1173,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1199],{"title":17,"description":18,"path":1166,"stem":8,"icon":20},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fintroduction",{"title":22,"description":23,"path":1168,"stem":25},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Finstallation",{"title":27,"description":28,"path":1170,"stem":30},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fconfiguration",{"title":32,"description":33,"path":1172,"stem":35},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fviews",{"title":37,"description":38,"path":1174,"stem":40},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fassets",{"title":42,"description":43,"path":1176,"stem":45},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fstyling",{"title":47,"description":48,"path":1178,"stem":50},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Frouting",{"title":52,"description":53,"path":1180,"stem":55},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fseo-meta",{"title":57,"description":58,"path":1182,"stem":60},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ftransitions",{"title":62,"description":63,"path":1184,"stem":65},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fdata-fetching",{"title":67,"description":68,"path":1186,"stem":70},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fstate-management",{"title":72,"description":73,"path":1188,"stem":75},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ferror-handling",{"title":77,"description":78,"path":1190,"stem":80},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fserver",{"title":82,"description":83,"path":1192,"stem":85},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Flayers",{"title":87,"description":88,"path":1194,"stem":90},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fprerendering",{"title":92,"description":93,"path":1196,"stem":95},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fdeployment",{"title":97,"description":98,"path":1198,"stem":100},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ftesting",{"title":102,"description":103,"path":1200,"stem":105},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fupgrade",{"title":108,"titleTemplate":109,"icon":110,"path":1202,"stem":112,"children":1203,"page":106},"\u002Fdocs\u002F4.x\u002Fdirectory-structure",[1204,1206,1208,1233,1235,1237,1239,1241,1243,1245,1247,1249,1251,1253,1255,1257,1259,1261],{"title":115,"description":116,"path":1205,"stem":112},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxt",{"title":119,"description":120,"path":1207,"stem":122},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Foutput",{"title":124,"titleTemplate":109,"icon":125,"path":1209,"stem":127,"children":1210,"page":106},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp",[1211,1213,1215,1217,1219,1221,1223,1225,1227,1229,1231],{"title":130,"description":131,"path":1212,"stem":127},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fassets",{"title":134,"description":135,"path":1214,"stem":137},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fcomponents",{"title":139,"description":140,"path":1216,"stem":142},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fcomposables",{"title":144,"description":145,"path":1218,"stem":147},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Flayouts",{"title":149,"description":150,"path":1220,"stem":152},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fmiddleware",{"title":154,"description":155,"path":1222,"stem":157},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fpages",{"title":159,"description":160,"path":1224,"stem":162},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fplugins",{"title":164,"description":165,"path":1226,"stem":167},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Futils",{"title":169,"description":170,"path":1228,"stem":172},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fapp",{"title":174,"description":175,"path":1230,"stem":177},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fapp-config",{"title":179,"description":180,"path":1232,"stem":182},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Ferror",{"title":184,"description":185,"path":1234,"stem":187},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fcontent",{"title":189,"description":190,"path":1236,"stem":192},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Flayers",{"title":194,"description":195,"path":1238,"stem":197},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fmodules",{"title":199,"description":200,"path":1240,"stem":202},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnode_modules",{"title":204,"description":205,"path":1242,"stem":207},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fpublic",{"title":209,"description":210,"path":1244,"stem":212},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fserver",{"title":214,"description":215,"path":1246,"stem":217},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fshared",{"title":219,"description":220,"path":1248,"stem":222},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Ftest",{"title":224,"description":225,"path":1250,"stem":227},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fenv",{"title":229,"description":230,"path":1252,"stem":232},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fgitignore",{"title":234,"description":235,"path":1254,"stem":237},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxtignore",{"title":239,"description":240,"path":1256,"stem":242},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxtrc",{"title":244,"description":245,"path":1258,"stem":247},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxt-config",{"title":249,"description":250,"path":1260,"stem":252},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fpackage",{"title":254,"description":255,"path":1262,"stem":257},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Ftsconfig",{"title":259,"icon":260,"path":1264,"stem":262,"children":1265,"page":106},"\u002Fdocs\u002F4.x\u002Fguide",[1266,1285,1298,1305,1324,1337],{"title":265,"titleTemplate":266,"icon":267,"path":1267,"stem":262,"children":1268,"page":106},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts",[1269,1271,1273,1275,1277,1279,1281,1283],{"title":271,"description":272,"path":1270,"stem":262},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Frendering",{"title":275,"description":276,"path":1272,"stem":278},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle",{"title":280,"description":281,"path":1274,"stem":283},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fauto-imports",{"title":285,"description":286,"path":1276,"stem":288},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fserver-engine",{"title":290,"description":291,"path":1278,"stem":293},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fmodules",{"title":295,"description":296,"path":1280,"stem":298},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fserver-components",{"title":300,"description":301,"path":1282,"stem":303},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Ftypescript",{"title":305,"description":306,"path":1284,"stem":308},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fcode-style",{"title":310,"titleTemplate":311,"icon":312,"path":1286,"stem":314,"children":1287,"page":106},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices",[1288,1290,1292,1294,1296],{"title":317,"description":318,"path":1289,"stem":314},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Faccessibility",{"title":321,"description":322,"path":1291,"stem":324},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fdevcontainers",{"title":326,"description":327,"path":1293,"stem":329},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fhydration",{"title":331,"description":332,"path":1295,"stem":334},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fperformance",{"title":336,"description":337,"path":1297,"stem":339},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fplugins",{"title":341,"titleTemplate":342,"icon":343,"path":1299,"stem":345,"children":1300,"page":106},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai",[1301,1303],{"title":348,"description":349,"path":1302,"stem":345},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai\u002Fmcp",{"title":352,"description":353,"path":1304,"stem":355},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai\u002Fllms-txt",{"title":357,"titleTemplate":358,"icon":359,"path":1306,"stem":361,"children":1307,"page":106},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules",[1308,1310,1312,1314,1316,1318,1320,1322],{"title":364,"description":365,"path":1309,"stem":361},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fgetting-started",{"title":368,"description":369,"path":1311,"stem":371},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy",{"title":373,"description":374,"path":1313,"stem":376},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Frecipes-basics",{"title":378,"description":379,"path":1315,"stem":381},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fmodule-dependencies",{"title":383,"description":384,"path":1317,"stem":386},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Frecipes-advanced",{"title":388,"description":389,"path":1319,"stem":391},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Ftesting",{"title":393,"description":394,"path":1321,"stem":396},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fbest-practices",{"title":398,"description":399,"path":1323,"stem":401},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fecosystem",{"title":403,"titleTemplate":404,"icon":405,"path":1325,"stem":407,"children":1326,"page":106},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes",[1327,1329,1331,1333,1335],{"title":410,"description":411,"path":1328,"stem":407},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fcustom-routing",{"title":414,"description":415,"path":1330,"stem":417},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fvite-plugin",{"title":419,"description":420,"path":1332,"stem":422},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch",{"title":424,"description":425,"path":1334,"stem":427},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication",{"title":429,"description":430,"path":1336,"stem":432},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fmostly-static-sites",{"title":434,"titleTemplate":435,"icon":436,"path":1338,"stem":438,"children":1339,"page":106},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further",[1340,1342,1344,1346,1348,1350,1352,1354,1356,1358,1360],{"title":441,"description":442,"path":1341,"stem":438},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fevents",{"title":445,"description":446,"path":1343,"stem":448},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features",{"title":450,"description":451,"path":1345,"stem":453},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Ffeatures",{"title":455,"description":456,"path":1347,"stem":458},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fhooks",{"title":460,"description":461,"path":1349,"stem":463},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fkit",{"title":465,"description":466,"path":1351,"stem":468},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app",{"title":470,"description":83,"path":1353,"stem":472},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Flayers",{"title":474,"description":475,"path":1355,"stem":477},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fbuilders",{"title":479,"description":480,"path":1357,"stem":482},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fdebugging",{"title":484,"description":485,"path":1359,"stem":487},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fruntime-config",{"title":489,"description":490,"path":1361,"stem":492},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel",{"title":494,"titleTemplate":495,"icon":496,"path":1363,"stem":498,"children":1364,"page":106},"\u002Fdocs\u002F4.x\u002Fapi",[1365,1400,1469,1530,1571,1578],{"title":501,"titleTemplate":502,"icon":359,"path":1366,"stem":498,"children":1367,"page":106},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents",[1368,1370,1372,1374,1376,1378,1380,1382,1384,1386,1388,1390,1392,1394,1396,1398],{"title":506,"description":507,"path":1369,"stem":498},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fclient-only",{"title":510,"description":511,"path":1371,"stem":513},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fdev-only",{"title":515,"description":516,"path":1373,"stem":518},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback",{"title":520,"description":521,"path":1375,"stem":523},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-page",{"title":525,"description":526,"path":1377,"stem":528},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout",{"title":530,"description":531,"path":1379,"stem":533},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-link",{"title":535,"description":536,"path":1381,"stem":538},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator",{"title":540,"description":541,"path":1383,"stem":543},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary",{"title":545,"description":546,"path":1385,"stem":548},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome",{"title":550,"description":551,"path":1387,"stem":553},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-island",{"title":555,"description":556,"path":1389,"stem":558},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-img",{"title":560,"description":561,"path":1391,"stem":563},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture",{"title":565,"description":566,"path":1393,"stem":568},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fteleports",{"title":570,"description":571,"path":1395,"stem":573},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer",{"title":575,"description":576,"path":1397,"stem":578},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-time",{"title":580,"description":581,"path":1399,"stem":583},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-announcer",{"title":585,"titleTemplate":586,"icon":587,"path":1401,"stem":589,"children":1402,"page":106},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables",[1403,1405,1407,1409,1411,1413,1415,1417,1419,1421,1423,1425,1427,1429,1431,1433,1435,1437,1439,1441,1443,1445,1447,1449,1451,1453,1455,1457,1459,1461,1463,1465,1467],{"title":592,"description":593,"path":1404,"stem":589},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fcreate-use-async-data",{"title":596,"description":597,"path":1406,"stem":599},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fcreate-use-fetch",{"title":601,"description":602,"path":1408,"stem":604},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate",{"title":606,"description":607,"path":1410,"stem":609},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-announcer",{"title":611,"description":612,"path":1412,"stem":614},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-app-config",{"title":616,"description":617,"path":1414,"stem":619},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-async-data",{"title":621,"description":622,"path":1416,"stem":624},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-cookie",{"title":626,"description":627,"path":1418,"stem":629},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-error",{"title":631,"description":632,"path":1420,"stem":634},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-fetch",{"title":636,"description":637,"path":1422,"stem":639},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-head",{"title":641,"description":642,"path":1424,"stem":644},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe",{"title":646,"description":647,"path":1426,"stem":649},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-hydration",{"title":651,"description":652,"path":1428,"stem":654},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-layout",{"title":656,"description":657,"path":1430,"stem":659},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data",{"title":661,"description":662,"path":1432,"stem":664},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch",{"title":666,"description":667,"path":1434,"stem":669},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator",{"title":671,"description":672,"path":1436,"stem":674},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app",{"title":676,"description":677,"path":1438,"stem":679},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data",{"title":681,"description":682,"path":1440,"stem":684},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode",{"title":686,"description":687,"path":1442,"stem":689},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-event",{"title":691,"description":692,"path":1444,"stem":694},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch",{"title":696,"description":697,"path":1446,"stem":699},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-header",{"title":701,"description":702,"path":1448,"stem":704},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers",{"title":706,"description":707,"path":1450,"stem":709},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-url",{"title":711,"description":712,"path":1452,"stem":714},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-response-header",{"title":716,"description":717,"path":1454,"stem":719},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-route",{"title":721,"description":722,"path":1456,"stem":724},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer",{"title":726,"description":727,"path":1458,"stem":729},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-router",{"title":731,"description":732,"path":1460,"stem":734},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config",{"title":736,"description":737,"path":1462,"stem":739},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook",{"title":741,"description":742,"path":1464,"stem":744},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta",{"title":746,"description":747,"path":1466,"stem":749},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta",{"title":751,"description":752,"path":1468,"stem":754},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-state",{"title":756,"titleTemplate":757,"path":1470,"stem":759,"children":1471,"page":106},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils",[1472,1474,1476,1478,1480,1482,1484,1486,1488,1490,1492,1494,1496,1498,1500,1502,1504,1506,1508,1510,1512,1514,1516,1518,1520,1522,1524,1526,1528],{"title":762,"description":763,"path":1473,"stem":759},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdollarfetch",{"title":766,"description":767,"path":1475,"stem":769},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fabort-navigation",{"title":771,"description":772,"path":1477,"stem":774},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fadd-route-middleware",{"title":776,"description":777,"path":1479,"stem":779},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fcall-once",{"title":781,"description":782,"path":1481,"stem":784},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-error",{"title":786,"description":787,"path":1483,"stem":789},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-nuxt-data",{"title":791,"description":792,"path":1485,"stem":794},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-nuxt-state",{"title":796,"description":797,"path":1487,"stem":799},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fcreate-error",{"title":801,"description":802,"path":1489,"stem":804},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component",{"title":806,"description":807,"path":1491,"stem":809},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component",{"title":811,"description":812,"path":1493,"stem":814},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin",{"title":816,"description":817,"path":1495,"stem":819},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware",{"title":821,"description":822,"path":1497,"stem":824},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-page-meta",{"title":826,"description":827,"path":1499,"stem":829},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-route-rules",{"title":831,"description":832,"path":1501,"stem":834},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fnavigate-to",{"title":836,"description":837,"path":1503,"stem":839},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-before-route-leave",{"title":841,"description":842,"path":1505,"stem":844},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-before-route-update",{"title":846,"description":847,"path":1507,"stem":849},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-nuxt-ready",{"title":851,"description":852,"path":1509,"stem":854},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fprefetch-components",{"title":856,"description":857,"path":1511,"stem":859},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fpreload-components",{"title":861,"description":862,"path":1513,"stem":864},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fpreload-route-components",{"title":866,"description":867,"path":1515,"stem":869},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fprerender-routes",{"title":871,"description":872,"path":1517,"stem":874},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Frefresh-cookie",{"title":876,"description":877,"path":1519,"stem":879},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data",{"title":881,"description":882,"path":1521,"stem":884},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Freload-nuxt-app",{"title":886,"description":887,"path":1523,"stem":889},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fset-page-layout",{"title":891,"description":892,"path":1525,"stem":894},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fset-response-status",{"title":896,"description":897,"path":1527,"stem":899},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fshow-error",{"title":901,"description":902,"path":1529,"stem":904},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fupdate-app-config",{"title":460,"titleTemplate":906,"path":1531,"stem":908,"children":1532,"page":106},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit",[1533,1535,1537,1539,1541,1543,1545,1547,1549,1551,1553,1555,1557,1559,1561,1563,1565,1567,1569],{"title":290,"description":911,"path":1534,"stem":908},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fmodules",{"title":914,"description":915,"path":1536,"stem":917},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fprogrammatic",{"title":919,"description":920,"path":1538,"stem":922},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcompatibility",{"title":280,"description":924,"path":1540,"stem":926},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fautoimports",{"title":501,"description":928,"path":1542,"stem":930},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcomponents",{"title":932,"description":933,"path":1544,"stem":935},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcontext",{"title":937,"description":938,"path":1546,"stem":940},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fpages",{"title":942,"description":943,"path":1548,"stem":945},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flayout",{"title":947,"description":948,"path":1550,"stem":950},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fhead",{"title":952,"description":953,"path":1552,"stem":955},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fplugins",{"title":484,"description":957,"path":1554,"stem":959},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fruntime-config",{"title":961,"description":962,"path":1556,"stem":964},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Ftemplates",{"title":966,"description":967,"path":1558,"stem":969},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fapp-config",{"title":971,"description":972,"path":1560,"stem":974},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fnitro",{"title":976,"description":977,"path":1562,"stem":979},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fresolving",{"title":981,"description":982,"path":1564,"stem":984},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flogging",{"title":986,"description":987,"path":1566,"stem":989},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fbuilder",{"title":991,"description":992,"path":1568,"stem":994},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fexamples",{"title":82,"description":996,"path":1570,"stem":998},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flayers",{"icon":1000,"title":1001,"path":1572,"stem":1003,"children":1573,"page":106},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced",[1574,1576],{"title":455,"description":456,"path":1575,"stem":1003},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced\u002Fhooks",{"title":1008,"description":1009,"path":1577,"stem":1011},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced\u002Fimport-meta",{"title":1013,"description":1014,"path":1579,"stem":1016},"\u002Fdocs\u002F4.x\u002Fapi\u002Fnuxt-config",{"title":1018,"titleTemplate":1019,"icon":1020,"path":1581,"stem":1022,"children":1582,"page":106},"\u002Fdocs\u002F4.x\u002Fcommunity",[1583,1585,1587,1589,1591,1593],{"title":1025,"description":1026,"path":1584,"stem":1022,"icon":1028},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fgetting-help",{"title":1030,"description":1031,"path":1586,"stem":1033},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Freporting-bugs",{"title":1035,"description":1036,"path":1588,"stem":1038},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fcontribution",{"title":1040,"description":1041,"path":1590,"stem":1043},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fframework-contribution",{"title":1045,"description":1046,"path":1592,"stem":1048},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Froadmap",{"title":1050,"description":1051,"path":1594,"stem":1053},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fchangelog",{"title":1055,"titleTemplate":1056,"icon":1057,"path":1596,"stem":1059,"children":1597,"page":106},"\u002Fdocs\u002F4.x\u002Fbridge",[1598,1600,1602,1604,1606,1608,1610,1612,1614,1616],{"title":1062,"description":1063,"path":1599,"stem":1059},"\u002Fdocs\u002F4.x\u002Fbridge\u002Foverview",{"title":300,"description":1066,"path":1601,"stem":1068},"\u002Fdocs\u002F4.x\u002Fbridge\u002Ftypescript",{"title":1070,"description":1071,"path":1603,"stem":1073},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fbridge-composition-api",{"title":1075,"description":1076,"path":1605,"stem":1078},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fplugins-and-middleware",{"title":1080,"description":1081,"path":1607,"stem":1083},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fnuxt3-compatible-api",{"title":1085,"description":1086,"path":1609,"stem":1088},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fmeta",{"title":484,"description":485,"path":1611,"stem":1091},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fruntime-config",{"title":971,"description":1093,"path":1613,"stem":1095},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fnitro",{"title":1097,"description":1098,"path":1615,"stem":1100},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fvite",{"title":27,"description":1102,"path":1617,"stem":1104},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fconfiguration",{"title":1106,"titleTemplate":1107,"icon":1108,"path":1619,"stem":1110,"children":1620,"page":106},"\u002Fdocs\u002F4.x\u002Fmigration",[1621,1623,1625,1627,1629,1631,1633,1635,1637,1639,1641],{"title":1062,"description":1113,"path":1622,"stem":1110},"\u002Fdocs\u002F4.x\u002Fmigration\u002Foverview",{"title":27,"description":1116,"path":1624,"stem":1118},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fconfiguration",{"title":1120,"description":1121,"path":1626,"stem":1123},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fauto-imports",{"title":1085,"description":1125,"path":1628,"stem":1127},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fmeta",{"title":1075,"description":1129,"path":1630,"stem":1131},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fplugins-and-middleware",{"title":1133,"description":1134,"path":1632,"stem":1136},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fpages-and-layouts",{"title":1138,"description":1139,"path":1634,"stem":1141},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fcomponent-options",{"title":484,"description":1143,"path":1636,"stem":1145},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fruntime-config",{"title":1147,"description":1148,"path":1638,"stem":1150},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fbundling",{"title":77,"description":1152,"path":1640,"stem":1154},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fserver",{"title":290,"description":1156,"path":1642,"stem":1158},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fmodule-authors",{"title":5,"icon":6,"path":1644,"stem":8,"children":1645,"page":106},"\u002Fdocs\u002F3.x",[1646,1685,1753,1843,2142,2157,2180],{"title":11,"titleTemplate":12,"icon":13,"path":1647,"stem":8,"children":1648,"page":106},"\u002Fdocs\u002F3.x\u002Fgetting-started",[1649,1651,1653,1655,1657,1659,1661,1663,1665,1667,1669,1671,1673,1675,1677,1679,1681,1683],{"title":17,"description":18,"path":1650,"stem":8,"icon":20},"\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fintroduction",{"title":22,"description":23,"path":1652,"stem":25},"\u002Fdocs\u002F3.x\u002Fgetting-started\u002Finstallation",{"title":27,"description":28,"path":1654,"stem":30},"\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fconfiguration",{"title":32,"description":33,"path":1656,"stem":35},"\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fviews",{"title":37,"description":38,"path":1658,"stem":40},"\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fassets",{"title":42,"description":43,"path":1660,"stem":45},"\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fstyling",{"title":47,"description":48,"path":1662,"stem":50},"\u002Fdocs\u002F3.x\u002Fgetting-started\u002Frouting",{"title":52,"description":53,"path":1664,"stem":55},"\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fseo-meta",{"title":57,"description":58,"path":1666,"stem":60},"\u002Fdocs\u002F3.x\u002Fgetting-started\u002Ftransitions",{"title":62,"description":63,"path":1668,"stem":65},"\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fdata-fetching",{"title":67,"description":68,"path":1670,"stem":70},"\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fstate-management",{"title":72,"description":73,"path":1672,"stem":75},"\u002Fdocs\u002F3.x\u002Fgetting-started\u002Ferror-handling",{"title":77,"description":78,"path":1674,"stem":80},"\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fserver",{"title":82,"description":83,"path":1676,"stem":85},"\u002Fdocs\u002F3.x\u002Fgetting-started\u002Flayers",{"title":87,"description":88,"path":1678,"stem":90},"\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fprerendering",{"title":92,"description":93,"path":1680,"stem":95},"\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fdeployment",{"title":97,"description":98,"path":1682,"stem":100},"\u002Fdocs\u002F3.x\u002Fgetting-started\u002Ftesting",{"title":102,"description":103,"path":1684,"stem":105},"\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fupgrade",{"title":108,"titleTemplate":109,"icon":110,"path":1686,"stem":112,"children":1687,"page":106},"\u002Fdocs\u002F3.x\u002Fdirectory-structure",[1688,1690,1692,1695,1698,1701,1703,1705,1708,1711,1713,1715,1718,1721,1723,1725,1727,1730,1732,1734,1736,1738,1741,1744,1747,1749,1751],{"title":115,"description":116,"path":1689,"stem":112},"\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxt",{"title":119,"description":120,"path":1691,"stem":122},"\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Foutput",{"title":130,"description":131,"path":1693,"stem":1694},"\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fassets","2.directory-structure\u002F1.assets",{"title":134,"description":135,"path":1696,"stem":1697},"\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fcomponents","2.directory-structure\u002F1.components",{"title":139,"description":140,"path":1699,"stem":1700},"\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fcomposables","2.directory-structure\u002F1.composables",{"title":184,"description":185,"path":1702,"stem":187},"\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fcontent",{"title":189,"description":190,"path":1704,"stem":192},"\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Flayers",{"title":144,"description":145,"path":1706,"stem":1707},"\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Flayouts","2.directory-structure\u002F1.layouts",{"title":149,"description":150,"path":1709,"stem":1710},"\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fmiddleware","2.directory-structure\u002F1.middleware",{"title":194,"description":195,"path":1712,"stem":197},"\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fmodules",{"title":199,"description":200,"path":1714,"stem":202},"\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnode_modules",{"title":154,"description":155,"path":1716,"stem":1717},"\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fpages","2.directory-structure\u002F1.pages",{"title":159,"description":160,"path":1719,"stem":1720},"\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fplugins","2.directory-structure\u002F1.plugins",{"title":204,"description":205,"path":1722,"stem":207},"\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fpublic",{"title":209,"description":210,"path":1724,"stem":212},"\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fserver",{"title":214,"description":215,"path":1726,"stem":217},"\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fshared",{"title":164,"description":165,"path":1728,"stem":1729},"\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Futils","2.directory-structure\u002F1.utils",{"title":224,"description":225,"path":1731,"stem":227},"\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fenv",{"title":229,"description":230,"path":1733,"stem":232},"\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fgitignore",{"title":234,"description":235,"path":1735,"stem":237},"\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxtignore",{"title":239,"description":240,"path":1737,"stem":242},"\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxtrc",{"title":169,"description":170,"path":1739,"stem":1740},"\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fapp","2.directory-structure\u002F3.app",{"title":174,"description":175,"path":1742,"stem":1743},"\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fapp-config","2.directory-structure\u002F3.app-config",{"title":179,"description":180,"path":1745,"stem":1746},"\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Ferror","2.directory-structure\u002F3.error",{"title":244,"description":245,"path":1748,"stem":247},"\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxt-config",{"title":249,"description":250,"path":1750,"stem":252},"\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fpackage",{"title":254,"description":255,"path":1752,"stem":257},"\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Ftsconfig",{"title":259,"icon":260,"path":1754,"stem":262,"children":1755,"page":106},"\u002Fdocs\u002F3.x\u002Fguide",[1756,1773,1783,1790,1809,1820],{"title":265,"titleTemplate":266,"icon":267,"path":1757,"stem":262,"children":1758,"page":106},"\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts",[1759,1761,1763,1765,1767,1769,1771],{"title":271,"description":272,"path":1760,"stem":262},"\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Frendering",{"title":275,"description":276,"path":1762,"stem":278},"\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle",{"title":280,"description":281,"path":1764,"stem":283},"\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fauto-imports",{"title":285,"description":286,"path":1766,"stem":288},"\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fserver-engine",{"title":290,"description":291,"path":1768,"stem":293},"\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fmodules",{"title":300,"description":301,"path":1770,"stem":303},"\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Ftypescript",{"title":305,"description":306,"path":1772,"stem":308},"\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fcode-style",{"title":310,"titleTemplate":311,"icon":312,"path":1774,"stem":329,"children":1775,"page":106},"\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices",[1776,1779,1781],{"title":1777,"description":327,"path":1778,"stem":329},"Nuxt and hydration","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices\u002Fhydration",{"title":331,"description":332,"path":1780,"stem":334},"\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices\u002Fperformance",{"title":336,"description":337,"path":1782,"stem":339},"\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices\u002Fplugins",{"title":341,"titleTemplate":342,"icon":343,"path":1784,"stem":345,"children":1785,"page":106},"\u002Fdocs\u002F3.x\u002Fguide\u002Fai",[1786,1788],{"title":348,"description":349,"path":1787,"stem":345},"\u002Fdocs\u002F3.x\u002Fguide\u002Fai\u002Fmcp",{"title":352,"description":353,"path":1789,"stem":355},"\u002Fdocs\u002F3.x\u002Fguide\u002Fai\u002Fllms-txt",{"title":357,"titleTemplate":358,"icon":359,"path":1791,"stem":361,"children":1792,"page":106},"\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules",[1793,1795,1797,1799,1801,1803,1805,1807],{"title":364,"description":365,"path":1794,"stem":361},"\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fgetting-started",{"title":368,"description":369,"path":1796,"stem":371},"\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy",{"title":373,"description":374,"path":1798,"stem":376},"\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Frecipes-basics",{"title":378,"description":379,"path":1800,"stem":381},"\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fmodule-dependencies",{"title":383,"description":384,"path":1802,"stem":386},"\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Frecipes-advanced",{"title":388,"description":389,"path":1804,"stem":391},"\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Ftesting",{"title":393,"description":394,"path":1806,"stem":396},"\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fbest-practices",{"title":398,"description":399,"path":1808,"stem":401},"\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fecosystem",{"title":403,"titleTemplate":404,"icon":405,"path":1810,"stem":407,"children":1811,"page":106},"\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes",[1812,1814,1816,1818],{"title":410,"description":411,"path":1813,"stem":407},"\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fcustom-routing",{"title":414,"description":415,"path":1815,"stem":417},"\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fvite-plugin",{"title":419,"description":420,"path":1817,"stem":422},"\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch",{"title":424,"description":425,"path":1819,"stem":427},"\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication",{"title":434,"titleTemplate":435,"icon":436,"path":1821,"stem":438,"children":1822,"page":106},"\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further",[1823,1825,1827,1829,1831,1833,1835,1837,1839,1841],{"title":441,"description":442,"path":1824,"stem":438},"\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fevents",{"title":445,"description":446,"path":1826,"stem":448},"\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features",{"title":450,"description":451,"path":1828,"stem":453},"\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Ffeatures",{"title":455,"description":456,"path":1830,"stem":458},"\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fhooks",{"title":460,"description":461,"path":1832,"stem":463},"\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fkit",{"title":465,"description":466,"path":1834,"stem":468},"\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app",{"title":470,"description":83,"path":1836,"stem":472},"\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Flayers",{"title":479,"description":480,"path":1838,"stem":482},"\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fdebugging",{"title":484,"description":485,"path":1840,"stem":487},"\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fruntime-config",{"title":489,"description":490,"path":1842,"stem":492},"\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel",{"title":494,"titleTemplate":495,"icon":496,"path":1844,"stem":498,"children":1845,"page":106},"\u002Fdocs\u002F3.x\u002Fapi",[1846,1879,1940,2001,2087,2133,2140],{"title":501,"titleTemplate":502,"icon":359,"path":1847,"stem":498,"children":1848,"page":106},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents",[1849,1851,1853,1855,1857,1859,1861,1863,1865,1867,1869,1871,1873,1875,1877],{"title":506,"description":507,"path":1850,"stem":498},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fclient-only",{"title":510,"description":511,"path":1852,"stem":513},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fdev-only",{"title":515,"description":516,"path":1854,"stem":518},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback",{"title":520,"description":521,"path":1856,"stem":523},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-page",{"title":525,"description":526,"path":1858,"stem":528},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout",{"title":530,"description":531,"path":1860,"stem":533},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-link",{"title":535,"description":536,"path":1862,"stem":538},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator",{"title":540,"description":541,"path":1864,"stem":543},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary",{"title":545,"description":546,"path":1866,"stem":548},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome",{"title":550,"description":551,"path":1868,"stem":553},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-island",{"title":555,"description":556,"path":1870,"stem":558},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-img",{"title":560,"description":561,"path":1872,"stem":563},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture",{"title":565,"description":566,"path":1874,"stem":568},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fteleports",{"title":570,"description":571,"path":1876,"stem":573},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer",{"title":575,"description":576,"path":1878,"stem":578},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-time",{"title":585,"titleTemplate":586,"icon":587,"path":1880,"stem":604,"children":1881,"page":106},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables",[1882,1884,1886,1888,1890,1892,1894,1896,1898,1900,1902,1904,1906,1908,1910,1912,1914,1916,1918,1920,1922,1924,1926,1928,1930,1932,1934,1936,1938],{"title":601,"description":602,"path":1883,"stem":604},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate",{"title":611,"description":612,"path":1885,"stem":614},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-app-config",{"title":616,"description":617,"path":1887,"stem":619},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-async-data",{"title":621,"description":622,"path":1889,"stem":624},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-cookie",{"title":626,"description":627,"path":1891,"stem":629},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-error",{"title":631,"description":632,"path":1893,"stem":634},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-fetch",{"title":636,"description":637,"path":1895,"stem":639},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-head",{"title":641,"description":642,"path":1897,"stem":644},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe",{"title":646,"description":647,"path":1899,"stem":649},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-hydration",{"title":656,"description":657,"path":1901,"stem":659},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data",{"title":661,"description":662,"path":1903,"stem":664},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch",{"title":666,"description":667,"path":1905,"stem":669},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator",{"title":671,"description":672,"path":1907,"stem":674},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app",{"title":676,"description":677,"path":1909,"stem":679},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data",{"title":681,"description":682,"path":1911,"stem":684},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode",{"title":686,"description":687,"path":1913,"stem":689},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-event",{"title":691,"description":692,"path":1915,"stem":694},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch",{"title":696,"description":697,"path":1917,"stem":699},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-header",{"title":701,"description":702,"path":1919,"stem":704},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers",{"title":706,"description":707,"path":1921,"stem":709},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-url",{"title":711,"description":712,"path":1923,"stem":714},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-response-header",{"title":716,"description":717,"path":1925,"stem":719},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-route",{"title":721,"description":722,"path":1927,"stem":724},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer",{"title":726,"description":727,"path":1929,"stem":729},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-router",{"title":731,"description":732,"path":1931,"stem":734},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config",{"title":736,"description":737,"path":1933,"stem":739},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook",{"title":741,"description":742,"path":1935,"stem":744},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta",{"title":746,"description":747,"path":1937,"stem":749},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta",{"title":751,"description":752,"path":1939,"stem":754},"\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-state",{"title":756,"titleTemplate":757,"path":1941,"stem":759,"children":1942,"page":106},"\u002Fdocs\u002F3.x\u002Fapi\u002Futils",[1943,1945,1947,1949,1951,1953,1955,1957,1959,1961,1963,1965,1967,1969,1971,1973,1975,1977,1979,1981,1983,1985,1987,1989,1991,1993,1995,1997,1999],{"title":762,"description":763,"path":1944,"stem":759},"\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdollarfetch",{"title":766,"description":767,"path":1946,"stem":769},"\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fabort-navigation",{"title":771,"description":772,"path":1948,"stem":774},"\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fadd-route-middleware",{"title":776,"description":777,"path":1950,"stem":779},"\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fcall-once",{"title":781,"description":782,"path":1952,"stem":784},"\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-error",{"title":786,"description":787,"path":1954,"stem":789},"\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-nuxt-data",{"title":791,"description":792,"path":1956,"stem":794},"\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-nuxt-state",{"title":796,"description":797,"path":1958,"stem":799},"\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fcreate-error",{"title":801,"description":802,"path":1960,"stem":804},"\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component",{"title":806,"description":807,"path":1962,"stem":809},"\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component",{"title":811,"description":812,"path":1964,"stem":814},"\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin",{"title":816,"description":817,"path":1966,"stem":819},"\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware",{"title":821,"description":822,"path":1968,"stem":824},"\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-page-meta",{"title":826,"description":827,"path":1970,"stem":829},"\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-route-rules",{"title":831,"description":832,"path":1972,"stem":834},"\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fnavigate-to",{"title":836,"description":837,"path":1974,"stem":839},"\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-before-route-leave",{"title":841,"description":842,"path":1976,"stem":844},"\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-before-route-update",{"title":846,"description":847,"path":1978,"stem":849},"\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-nuxt-ready",{"title":851,"description":852,"path":1980,"stem":854},"\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fprefetch-components",{"title":856,"description":857,"path":1982,"stem":859},"\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fpreload-components",{"title":861,"description":862,"path":1984,"stem":864},"\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fpreload-route-components",{"title":866,"description":867,"path":1986,"stem":869},"\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fprerender-routes",{"title":871,"description":872,"path":1988,"stem":874},"\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Frefresh-cookie",{"title":876,"description":877,"path":1990,"stem":879},"\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data",{"title":881,"description":882,"path":1992,"stem":884},"\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Freload-nuxt-app",{"title":886,"description":887,"path":1994,"stem":889},"\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fset-page-layout",{"title":891,"description":892,"path":1996,"stem":894},"\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fset-response-status",{"title":896,"description":897,"path":1998,"stem":899},"\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fshow-error",{"title":901,"description":902,"path":2000,"stem":904},"\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fupdate-app-config",{"title":2002,"titleTemplate":2003,"icon":2004,"path":2005,"stem":2006,"children":2007,"page":106},"Commands","%s · Nuxt Commands","i-lucide-square-terminal","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands","4.api\u002F4.commands\u002Fadd",[2008,2012,2017,2022,2027,2032,2037,2042,2047,2052,2057,2062,2067,2072,2077,2082],{"title":2009,"description":2010,"path":2011,"stem":2006},"nuxt add","Scaffold an entity into your Nuxt application.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fadd",{"title":2013,"description":2014,"path":2015,"stem":2016},"nuxt analyze","Analyze the production bundle or your Nuxt application.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fanalyze","4.api\u002F4.commands\u002Fanalyze",{"title":2018,"description":2019,"path":2020,"stem":2021},"nuxt build","Build your Nuxt application.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fbuild","4.api\u002F4.commands\u002Fbuild",{"title":2023,"description":2024,"path":2025,"stem":2026},"nuxt build-module","Nuxt command to build your Nuxt module before publishing.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fbuild-module","4.api\u002F4.commands\u002Fbuild-module",{"title":2028,"description":2029,"path":2030,"stem":2031},"nuxt cleanup","Remove common generated Nuxt files and caches.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fcleanup","4.api\u002F4.commands\u002Fcleanup",{"title":2033,"description":2034,"path":2035,"stem":2036},"nuxt dev","The dev command starts a development server with hot module replacement at http:\u002F\u002Flocalhost:3000","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fdev","4.api\u002F4.commands\u002Fdev",{"title":2038,"description":2039,"path":2040,"stem":2041},"nuxt devtools","The devtools command allows you to enable or disable Nuxt DevTools on a per-project basis.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fdevtools","4.api\u002F4.commands\u002Fdevtools",{"title":2043,"description":2044,"path":2045,"stem":2046},"nuxt generate","Pre-renders every route of the application and stores the result in plain HTML files.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fgenerate","4.api\u002F4.commands\u002Fgenerate",{"title":2048,"description":2049,"path":2050,"stem":2051},"nuxt info","The info command logs information about the current or specified Nuxt project.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Finfo","4.api\u002F4.commands\u002Finfo",{"title":2053,"description":2054,"path":2055,"stem":2056},"create nuxt","The init command initializes a fresh Nuxt project.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Finit","4.api\u002F4.commands\u002Finit",{"title":2058,"description":2059,"path":2060,"stem":2061},"nuxt module","Search and add modules to your Nuxt application with the command line.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fmodule","4.api\u002F4.commands\u002Fmodule",{"title":2063,"description":2064,"path":2065,"stem":2066},"nuxt prepare","The prepare command creates a .nuxt directory in your application and generates types.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fprepare","4.api\u002F4.commands\u002Fprepare",{"title":2068,"description":2069,"path":2070,"stem":2071},"nuxt preview","The preview command starts a server to preview your application after the build command.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fpreview","4.api\u002F4.commands\u002Fpreview",{"title":2073,"description":2074,"path":2075,"stem":2076},"nuxt test","The test command runs tests using @nuxt\u002Ftest-utils.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Ftest","4.api\u002F4.commands\u002Ftest",{"title":2078,"description":2079,"path":2080,"stem":2081},"nuxt typecheck","The typecheck command runs vue-tsc to check types throughout your app.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Ftypecheck","4.api\u002F4.commands\u002Ftypecheck",{"title":2083,"description":2084,"path":2085,"stem":2086},"nuxt upgrade","The upgrade command upgrades Nuxt to the latest version.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fupgrade","4.api\u002F4.commands\u002Fupgrade",{"title":460,"titleTemplate":906,"path":2088,"stem":908,"children":2089,"page":106},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit",[2090,2092,2094,2096,2098,2100,2102,2104,2106,2108,2110,2112,2114,2117,2121,2124,2127,2130],{"title":290,"description":911,"path":2091,"stem":908},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fmodules",{"title":914,"description":915,"path":2093,"stem":917},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fprogrammatic",{"title":919,"description":920,"path":2095,"stem":922},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcompatibility",{"title":280,"description":924,"path":2097,"stem":926},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fautoimports",{"title":501,"description":928,"path":2099,"stem":930},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcomponents",{"title":932,"description":933,"path":2101,"stem":935},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcontext",{"title":937,"description":938,"path":2103,"stem":940},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fpages",{"title":942,"description":943,"path":2105,"stem":945},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flayout",{"title":947,"description":948,"path":2107,"stem":950},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fhead",{"title":952,"description":953,"path":2109,"stem":955},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fplugins",{"title":484,"description":957,"path":2111,"stem":959},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fruntime-config",{"title":961,"description":962,"path":2113,"stem":964},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Ftemplates",{"title":971,"description":972,"path":2115,"stem":2116},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fnitro","4.api\u002F5.kit\u002F11.nitro",{"title":976,"description":2118,"path":2119,"stem":2120},"Nuxt Kit provides a set of utilities to help you resolve paths. These functions allow you to resolve paths relative to the current module, with unknown name or extension.","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fresolving","4.api\u002F5.kit\u002F12.resolving",{"title":981,"description":982,"path":2122,"stem":2123},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flogging","4.api\u002F5.kit\u002F13.logging",{"title":986,"description":987,"path":2125,"stem":2126},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fbuilder","4.api\u002F5.kit\u002F14.builder",{"title":991,"description":992,"path":2128,"stem":2129},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fexamples","4.api\u002F5.kit\u002F15.examples",{"title":82,"description":996,"path":2131,"stem":2132},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flayers","4.api\u002F5.kit\u002F16.layers",{"icon":1000,"title":1001,"path":2134,"stem":1003,"children":2135,"page":106},"\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced",[2136,2138],{"title":455,"description":456,"path":2137,"stem":1003},"\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced\u002Fhooks",{"title":1008,"description":1009,"path":2139,"stem":1011},"\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced\u002Fimport-meta",{"title":1013,"description":1014,"path":2141,"stem":1016},"\u002Fdocs\u002F3.x\u002Fapi\u002Fnuxt-config",{"title":1018,"titleTemplate":1019,"icon":1020,"path":2143,"stem":1022,"children":2144,"page":106},"\u002Fdocs\u002F3.x\u002Fcommunity",[2145,2147,2149,2151,2153,2155],{"title":1025,"description":1026,"path":2146,"stem":1022,"icon":1028},"\u002Fdocs\u002F3.x\u002Fcommunity\u002Fgetting-help",{"title":1030,"description":1031,"path":2148,"stem":1033},"\u002Fdocs\u002F3.x\u002Fcommunity\u002Freporting-bugs",{"title":1035,"description":1036,"path":2150,"stem":1038},"\u002Fdocs\u002F3.x\u002Fcommunity\u002Fcontribution",{"title":1040,"description":1041,"path":2152,"stem":1043},"\u002Fdocs\u002F3.x\u002Fcommunity\u002Fframework-contribution",{"title":1045,"description":1046,"path":2154,"stem":1048},"\u002Fdocs\u002F3.x\u002Fcommunity\u002Froadmap",{"title":1050,"description":1051,"path":2156,"stem":1053},"\u002Fdocs\u002F3.x\u002Fcommunity\u002Fchangelog",{"title":1055,"titleTemplate":1056,"icon":1057,"path":2158,"stem":1059,"children":2159,"page":106},"\u002Fdocs\u002F3.x\u002Fbridge",[2160,2162,2164,2166,2168,2170,2172,2174,2176,2178],{"title":1062,"description":1063,"path":2161,"stem":1059},"\u002Fdocs\u002F3.x\u002Fbridge\u002Foverview",{"title":300,"description":1066,"path":2163,"stem":1068},"\u002Fdocs\u002F3.x\u002Fbridge\u002Ftypescript",{"title":1070,"description":1071,"path":2165,"stem":1073},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fbridge-composition-api",{"title":1075,"description":1076,"path":2167,"stem":1078},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fplugins-and-middleware",{"title":1080,"description":1081,"path":2169,"stem":1083},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fnuxt3-compatible-api",{"title":1085,"description":1086,"path":2171,"stem":1088},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fmeta",{"title":484,"description":485,"path":2173,"stem":1091},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fruntime-config",{"title":971,"description":1093,"path":2175,"stem":1095},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fnitro",{"title":1097,"description":1098,"path":2177,"stem":1100},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fvite",{"title":27,"description":1102,"path":2179,"stem":1104},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fconfiguration",{"title":1106,"titleTemplate":1107,"icon":1108,"path":2181,"stem":1110,"children":2182,"page":106},"\u002Fdocs\u002F3.x\u002Fmigration",[2183,2185,2187,2189,2191,2193,2195,2197,2199,2201,2203],{"title":1062,"description":1113,"path":2184,"stem":1110},"\u002Fdocs\u002F3.x\u002Fmigration\u002Foverview",{"title":27,"description":1116,"path":2186,"stem":1118},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fconfiguration",{"title":1120,"description":1121,"path":2188,"stem":1123},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fauto-imports",{"title":1085,"description":1125,"path":2190,"stem":1127},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fmeta",{"title":1075,"description":1129,"path":2192,"stem":1131},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fplugins-and-middleware",{"title":1133,"description":1134,"path":2194,"stem":1136},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fpages-and-layouts",{"title":1138,"description":1139,"path":2196,"stem":1141},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fcomponent-options",{"title":484,"description":1143,"path":2198,"stem":1145},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fruntime-config",{"title":1147,"description":1148,"path":2200,"stem":1150},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fbundling",{"title":77,"description":1152,"path":2202,"stem":1154},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fserver",{"title":290,"description":1156,"path":2204,"stem":1158},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fmodule-authors",{"title":2206,"icon":2207,"path":2208,"stem":2209,"children":2210,"page":106},"Blog","i-lucide-newspaper","\u002Fblog","blog",[2211,2215,2219,2223,2227,2231,2235,2239,2243,2247,2251,2255,2259,2263,2267,2271,2275,2279,2283,2287,2291,2295,2299,2303,2307,2311,2315,2319,2323,2327,2331,2335,2339,2343,2347,2351,2355,2359,2363,2367,2371,2375,2379,2383,2387,2391,2395,2399,2403,2407],{"title":2212,"path":2213,"stem":2214},"Announcing 3.0","\u002Fblog\u002Fv3","blog\u002F1.v3",{"title":2216,"path":2217,"stem":2218},"Nuxt 3.3","\u002Fblog\u002Fv3-3","blog\u002F10.v3-3",{"title":2220,"path":2221,"stem":2222},"Nuxt 3.4","\u002Fblog\u002Fv3-4","blog\u002F11.v3-4",{"title":2224,"path":2225,"stem":2226},"Nuxt 3.5","\u002Fblog\u002Fv3-5","blog\u002F12.v3-5",{"title":2228,"path":2229,"stem":2230},"Nuxt 3.6","\u002Fblog\u002Fv3-6","blog\u002F13.v3-6",{"title":2232,"path":2233,"stem":2234},"Nuxt on the Edge","\u002Fblog\u002Fnuxt-on-the-edge","blog\u002F14.nuxt-on-the-edge",{"title":2236,"path":2237,"stem":2238},"Nuxt 3.7","\u002Fblog\u002Fv3-7","blog\u002F15.v3-7",{"title":2240,"path":2241,"stem":2242},"A New Website","\u002Fblog\u002Fnew-website","blog\u002F16.new-website",{"title":2244,"path":2245,"stem":2246},"Nuxt 3.8","\u002Fblog\u002Fv3-8","blog\u002F17.v3-8",{"title":2248,"path":2249,"stem":2250},"Nuxt DevTools v1.0","\u002Fblog\u002Fnuxt-devtools-v1-0","blog\u002F18.nuxt-devtools-v1-0",{"title":2252,"path":2253,"stem":2254},"Nuxt 3.9","\u002Fblog\u002Fv3-9","blog\u002F19.v3-9",{"title":2256,"path":2257,"stem":2258},"Nuxt: A vision for 2023","\u002Fblog\u002Fvision-2023","blog\u002F2.vision-2023",{"title":2260,"path":2261,"stem":2262},"Nuxt 3.10","\u002Fblog\u002Fv3-10","blog\u002F20.v3-10",{"title":2264,"path":2265,"stem":2266},"The Evolution of Shiki v1.0","\u002Fblog\u002Fshiki-v1","blog\u002F21.shiki-v1",{"title":2268,"path":2269,"stem":2270},"Nuxt 3.11","\u002Fblog\u002Fv3-11","blog\u002F22.v3-11",{"title":2272,"path":2273,"stem":2274},"Nuxt: Looking forward","\u002Fblog\u002Flooking-forward-2024","blog\u002F23.looking-forward-2024",{"title":2276,"path":2277,"stem":2278},"Refreshed Nuxt ESLint Integrations","\u002Fblog\u002Feslint-module","blog\u002F24.eslint-module",{"title":2280,"path":2281,"stem":2282},"Nuxt 3.12","\u002Fblog\u002Fv3-12","blog\u002F25.v3-12",{"title":2284,"path":2285,"stem":2286},"Introducing Nuxt Scripts","\u002Fblog\u002Fnuxt-scripts","blog\u002F26.nuxt-scripts",{"title":2288,"path":2289,"stem":2290},"Nuxt 3.13","\u002Fblog\u002Fv3-13","blog\u002F27.v3-13",{"title":2292,"path":2293,"stem":2294},"Nuxt 3.14","\u002Fblog\u002Fv3-14","blog\u002F27.v3-14",{"title":2296,"path":2297,"stem":2298},"Introducing Nuxt Icon v1","\u002Fblog\u002Fnuxt-icon-v1-0","blog\u002F29.nuxt-icon-v1-0",{"title":2300,"path":2301,"stem":2302},"Introducing Nuxt DevTools","\u002Fblog\u002Fintroducing-nuxt-devtools","blog\u002F3.introducing-nuxt-devtools",{"title":2304,"path":2305,"stem":2306},"Announcing Nuxt 3 Release Candidate","\u002Fblog\u002Fnuxt3-rc","blog\u002F3.nuxt3-rc",{"title":2308,"path":2309,"stem":2310},"Nuxt 3.15","\u002Fblog\u002Fv3-15","blog\u002F30.v3-15",{"title":2312,"path":2313,"stem":2314},"Nuxt 3.16","\u002Fblog\u002Fv3-16","blog\u002F31.v3-16",{"title":2316,"path":2317,"stem":2318},"Nuxt UI v3","\u002Fblog\u002Fnuxt-ui-v3","blog\u002F32.nuxt-ui-v3",{"title":2320,"path":2321,"stem":2322},"Nuxt 3.17","\u002Fblog\u002Fv3-17","blog\u002F33.v3-17",{"title":2324,"path":2325,"stem":2326},"Roadmap to v4","\u002Fblog\u002Froadmap-v4","blog\u002F34.roadmap-v4",{"title":2328,"path":2329,"stem":2330},"Building a Privacy-First Feedback Widget","\u002Fblog\u002Fbuilding-a-feedback-widget","blog\u002F35.building-a-feedback-widget",{"title":2332,"path":2333,"stem":2334},"Announcing Nuxt 4.0","\u002Fblog\u002Fv4","blog\u002F36.v4",{"title":2336,"path":2337,"stem":2338},"Nuxt 3.18","\u002Fblog\u002Fv3-18","blog\u002F37.v3-18",{"title":2340,"path":2341,"stem":2342},"Nuxt 4.1","\u002Fblog\u002Fv4-1","blog\u002F38.v4-1",{"title":2344,"path":2345,"stem":2346},"Nuxt UI v4","\u002Fblog\u002Fnuxt-ui-v4","blog\u002F39.nuxt-ui-v4",{"title":2348,"path":2349,"stem":2350},"Nuxt 2 End-of-Life (EOL)","\u002Fblog\u002Fnuxt2-eol","blog\u002F4.nuxt2-eol",{"title":2352,"path":2353,"stem":2354},"Introducing Nuxt 3 Beta","\u002Fblog\u002Fnuxt3-beta","blog\u002F4.nuxt3-beta",{"title":2356,"path":2357,"stem":2358},"Building an MCP Server for Nuxt","\u002Fblog\u002Fbuilding-nuxt-mcp","blog\u002F40.building-nuxt-mcp",{"title":2360,"path":2361,"stem":2362},"Nuxt 4.2","\u002Fblog\u002Fv4-2","blog\u002F40.v4-2",{"title":2364,"path":2365,"stem":2366},"Nuxt Image v2","\u002Fblog\u002Fnuxt-image-v2","blog\u002F41.nuxt-image-v2",{"title":2368,"path":2369,"stem":2370},"Nuxt 4.3","\u002Fblog\u002Fv4-3","blog\u002F42.v4-3",{"title":2372,"path":2373,"stem":2374},"Nuxt 4.4","\u002Fblog\u002Fv4-4","blog\u002F43.v4-4",{"title":2376,"path":2377,"stem":2378},"Introducing the Nuxt Agent","\u002Fblog\u002Fintroducing-nuxt-agent","blog\u002F44.introducing-nuxt-agent",{"title":2380,"path":2381,"stem":2382},"Meet Nuxi","\u002Fblog\u002Fmeet-nuxi","blog\u002F45.meet-nuxi",{"title":2384,"path":2385,"stem":2386},"Nuxt 4.5","\u002Fblog\u002Fv4-5","blog\u002F46.v4-5",{"title":2388,"path":2389,"stem":2390},"Nuxt Security Patch Releases","\u002Fblog\u002Fv4-5-security","blog\u002F47.v4-5-security",{"title":2392,"path":2393,"stem":2394},"Going Full Static","\u002Fblog\u002Fgoing-full-static","blog\u002F5.going-full-static",{"title":2396,"path":2397,"stem":2398},"Introducing Smart Prefetching","\u002Fblog\u002Fintroducing-smart-prefetching","blog\u002F6.introducing-smart-prefetching",{"title":2400,"path":2401,"stem":2402},"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":2404,"path":2405,"stem":2406},"Nuxt 2 Static Improvements","\u002Fblog\u002Fnuxt-static-improvements","blog\u002F8.nuxt-static-improvements",{"title":2408,"path":2409,"stem":2410},"Nuxt 2: From Terminal to Browser","\u002Fblog\u002Fnuxtjs-from-terminal-to-browser","blog\u002F9.nuxtjs-from-terminal-to-browser",{"name":2412,"description":2413,"repo":2414,"npm":2415,"icon":2416,"github":2417,"website":2417,"learn_more":2417,"category":2418,"type":2419,"maintainers":2420,"compatibility":2426,"generatedAt":2429,"contributors":2430,"stats":2449,"readme":2457},"edgedb","Integrate Nuxt 3 with EdgeDB effortlessly, adding a robust database layer to your app with minimal configuration.","Tahul\u002Fnuxt-edgedb","nuxt-edgedb-module","edgedb.svg","https:\u002F\u002Fgithub.com\u002FTahul\u002Fnuxt-edgedb","Database","3rd-party",[2421],{"name":2422,"github":2423,"twitter":2424,"bluesky":2425},"Yaël Guilloux","Tahul","yaeeelglx","yael.dev",{"nuxt":2427,"requires":2428},">=3.8.0",{},"2026-08-30T21:31:02.548Z",[2431,2434,2438,2442,2446],{"id":2432,"username":2423,"contributions":2433},1385263,150,{"id":2435,"username":2436,"contributions":2437},28706372,"danielroe",9,{"id":2439,"username":2440,"contributions":2441},11867,"juni0r",2,{"id":2443,"username":2444,"contributions":2445},1658644,"LeCoupa",1,{"id":2447,"username":2448,"contributions":2445},37634135,"Sikarii",{"version":2450,"downloads":2451,"stars":2452,"watchers":2452,"forks":2453,"defaultBranch":2454,"publishedAt":2455,"createdAt":2456},"0.0.52",322,73,5,"main",1718966110769,1699677181203,{"data":2458,"body":2460,"toc":9537},{"title":2459,"description":2459},"",{"type":2461,"children":2462},"root",[2463,2473,2481,2524,2546,2552,2710,2716,2733,2775,2801,2901,2917,2936,2941,2953,2959,2964,2969,3092,3098,3110,3574,3580,3593,3600,3617,3993,3999,4016,4028,4077,4359,4387,4700,4706,4732,5221,5227,5239,5392,5398,5418,5423,5441,5455,5571,5577,5582,5641,5910,5915,5935,5941,5946,5958,5971,5992,6005,6018,6040,6048,6054,6059,6153,6158,6163,6698,6703,6708,6720,6798,6803,6832,6845,6868,6873,6878,6898,6906,6911,7277,7289,7552,7557,7563,7576,7797,7813,7819,7831,7836,8105,8111,8116,8121,8159,8178,8194,8200,8334,8340,8345,8366,8378,8391,8401,8407,8420,8430,8444,8456,8465,8480,8486,8492,8518,8538,8550,8757,8768,8773,9034,9039,9045,9077,9083,9093,9141,9154,9160,9165,9178,9183,9195,9208,9223,9234,9239,9257,9262,9268,9273,9278,9284,9512,9518,9531],{"type":2464,"tag":2465,"props":2466,"children":2467},"element","p",{},[2468],{"type":2464,"tag":2469,"props":2470,"children":2472},"img",{"alt":2415,"src":2471},".\u002F.github\u002Fsocial-card.jpeg",[],{"type":2464,"tag":2474,"props":2475,"children":2477},"h1",{"id":2476},"nuxt-edgedb",[2478],{"type":2479,"value":2480},"text","Nuxt EdgeDB",{"type":2464,"tag":2465,"props":2482,"children":2483},{},[2484,2496,2505,2514],{"type":2464,"tag":2485,"props":2486,"children":2490},"a",{"href":2487,"rel":2488},"https:\u002F\u002Fnpmjs.com\u002Fpackage\u002Fnuxt-edgedb-module",[2489],"nofollow",[2491],{"type":2464,"tag":2469,"props":2492,"children":2495},{"alt":2493,"src":2494},"npm version","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fnuxt-edgedb-module\u002Flatest.svg?style=flat&colorA=18181B&colorB=28CF8D",[],{"type":2464,"tag":2485,"props":2497,"children":2499},{"href":2487,"rel":2498},[2489],[2500],{"type":2464,"tag":2469,"props":2501,"children":2504},{"alt":2502,"src":2503},"npm downloads","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Fnuxt-edgedb-module.svg?style=flat&colorA=18181B&colorB=28CF8D",[],{"type":2464,"tag":2485,"props":2506,"children":2508},{"href":2487,"rel":2507},[2489],[2509],{"type":2464,"tag":2469,"props":2510,"children":2513},{"alt":2511,"src":2512},"License","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fl\u002Fnuxt-edgedb-module.svg?style=flat&colorA=18181B&colorB=28CF8D",[],{"type":2464,"tag":2485,"props":2515,"children":2518},{"href":2516,"rel":2517},"https:\u002F\u002Fnuxt.com",[2489],[2519],{"type":2464,"tag":2469,"props":2520,"children":2523},{"alt":2521,"src":2522},"Nuxt","https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNuxt-18181B?logo=nuxt.js",[],{"type":2464,"tag":2465,"props":2525,"children":2526},{},[2527,2529,2535,2537,2544],{"type":2479,"value":2528},"Integrate ",{"type":2464,"tag":2485,"props":2530,"children":2532},{"href":2516,"rel":2531},[2489],[2533],{"type":2479,"value":2534},"Nuxt 3",{"type":2479,"value":2536}," with ",{"type":2464,"tag":2485,"props":2538,"children":2541},{"href":2539,"rel":2540},"https:\u002F\u002Fwww.edgedb.com",[2489],[2542],{"type":2479,"value":2543},"EdgeDB",{"type":2479,"value":2545}," effortlessly, adding a robust database layer to your app with minimal configuration.",{"type":2464,"tag":2547,"props":2548,"children":2550},"h2",{"id":2549},"features",[2551],{"type":2479,"value":450},{"type":2464,"tag":2553,"props":2554,"children":2555},"ul",{},[2556,2570,2611,2631,2651,2681],{"type":2464,"tag":2557,"props":2558,"children":2559},"li",{},[2560,2562,2568],{"type":2479,"value":2561},"🍱 ",{"type":2464,"tag":2563,"props":2564,"children":2565},"strong",{},[2566],{"type":2479,"value":2567},"Effortless Integration",{"type":2479,"value":2569},": Set up a database with just one line of configuration.",{"type":2464,"tag":2557,"props":2571,"children":2572},{},[2573,2575,2580,2582,2588,2590,2595,2597,2602,2604,2609],{"type":2479,"value":2574},"🎩 ",{"type":2464,"tag":2563,"props":2576,"children":2577},{},[2578],{"type":2479,"value":2579},"Live Schema Updates",{"type":2479,"value":2581},": Experience ",{"type":2464,"tag":2583,"props":2584,"children":2585},"em",{},[2586],{"type":2479,"value":2587},"HMR-like DX",{"type":2479,"value":2589}," with watchers on ",{"type":2464,"tag":2563,"props":2591,"children":2592},{},[2593],{"type":2479,"value":2594},"schema",{"type":2479,"value":2596},", ",{"type":2464,"tag":2563,"props":2598,"children":2599},{},[2600],{"type":2479,"value":2601},"queries",{"type":2479,"value":2603},", and ",{"type":2464,"tag":2563,"props":2605,"children":2606},{},[2607],{"type":2479,"value":2608},"migrations",{"type":2479,"value":2610},".",{"type":2464,"tag":2557,"props":2612,"children":2613},{},[2614,2616,2621,2623,2630],{"type":2479,"value":2615},"🛟 ",{"type":2464,"tag":2563,"props":2617,"children":2618},{},[2619],{"type":2479,"value":2620},"Typed Query Generation",{"type":2479,"value":2622},": Automatically generate a typed query client with ",{"type":2464,"tag":2485,"props":2624,"children":2627},{"href":2625,"rel":2626},"https:\u002F\u002Fwww.edgedb.com\u002Fdocs\u002Fclients\u002Fjs\u002Fgeneration",[2489],[2628],{"type":2479,"value":2629},"@edgedb\u002Fgenerate",{"type":2479,"value":2610},{"type":2464,"tag":2557,"props":2632,"children":2633},{},[2634,2636,2641,2643,2650],{"type":2479,"value":2635},"🍩 ",{"type":2464,"tag":2563,"props":2637,"children":2638},{},[2639],{"type":2479,"value":2640},"Integrated Database Management",{"type":2479,"value":2642},": Pilot your database from ",{"type":2464,"tag":2485,"props":2644,"children":2647},{"href":2645,"rel":2646},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fdevtools",[2489],[2648],{"type":2479,"value":2649},"Nuxt DevTools",{"type":2479,"value":2610},{"type":2464,"tag":2557,"props":2652,"children":2653},{},[2654,2656,2661,2663,2670,2672,2679],{"type":2479,"value":2655},"🔐 ",{"type":2464,"tag":2563,"props":2657,"children":2658},{},[2659],{"type":2479,"value":2660},"Flexible Auth",{"type":2479,"value":2662},": 1-line toggle ",{"type":2464,"tag":2485,"props":2664,"children":2667},{"href":2665,"rel":2666},"https:\u002F\u002Fwww.edgedb.com\u002Fdocs\u002Fguides\u002Fauth\u002Femail_password",[2489],[2668],{"type":2479,"value":2669},"Email",{"type":2479,"value":2671}," or ",{"type":2464,"tag":2485,"props":2673,"children":2676},{"href":2674,"rel":2675},"https:\u002F\u002Fwww.edgedb.com\u002Fdocs\u002Fguides\u002Fauth\u002Foauth",[2489],[2677],{"type":2479,"value":2678},"OAuth",{"type":2479,"value":2680}," authentication, with support for custom auth providers.",{"type":2464,"tag":2557,"props":2682,"children":2683},{},[2684,2686,2691,2693,2700,2702,2709],{"type":2479,"value":2685},"🧙 ",{"type":2464,"tag":2563,"props":2687,"children":2688},{},[2689],{"type":2479,"value":2690},"Initial guidance",{"type":2479,"value":2692},": Guides you through ",{"type":2464,"tag":2485,"props":2694,"children":2697},{"href":2695,"rel":2696},"https:\u002F\u002Fwww.edgedb.com\u002Fdocs\u002Fcli\u002Findex",[2489],[2698],{"type":2479,"value":2699},"EdgeDB CLI",{"type":2479,"value":2701}," setup and ",{"type":2464,"tag":2485,"props":2703,"children":2706},{"href":2704,"rel":2705},"https:\u002F\u002Fwww.edgedb.com\u002Fdocs\u002Fcli\u002Fedgedb_project\u002Fedgedb_project_init",[2489],[2707],{"type":2479,"value":2708},"project initialization",{"type":2479,"value":2610},{"type":2464,"tag":2547,"props":2711,"children":2713},{"id":2712},"quick-setup",[2714],{"type":2479,"value":2715},"Quick Setup",{"type":2464,"tag":2717,"props":2718,"children":2719},"ol",{},[2720],{"type":2464,"tag":2557,"props":2721,"children":2722},{},[2723,2725,2731],{"type":2479,"value":2724},"Add ",{"type":2464,"tag":2726,"props":2727,"children":2729},"code",{"className":2728},[],[2730],{"type":2479,"value":2415},{"type":2479,"value":2732}," dependency to your project",{"type":2464,"tag":2734,"props":2735,"children":2739},"pre",{"className":2736,"code":2737,"language":2738,"meta":2459,"style":2459},"language-bash shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","npx nuxi@latest module add edgedb\n","bash",[2740],{"type":2464,"tag":2726,"props":2741,"children":2742},{"__ignoreMap":2459},[2743],{"type":2464,"tag":2744,"props":2745,"children":2747},"span",{"class":2746,"line":2445},"line",[2748,2754,2760,2765,2770],{"type":2464,"tag":2744,"props":2749,"children":2751},{"style":2750},"--shiki-light:#E2931D;--shiki-default:#E2931D;--shiki-dark:#FFCB6B",[2752],{"type":2479,"value":2753},"npx",{"type":2464,"tag":2744,"props":2755,"children":2757},{"style":2756},"--shiki-light:#91B859;--shiki-default:#91B859;--shiki-dark:#C3E88D",[2758],{"type":2479,"value":2759}," nuxi@latest",{"type":2464,"tag":2744,"props":2761,"children":2762},{"style":2756},[2763],{"type":2479,"value":2764}," module",{"type":2464,"tag":2744,"props":2766,"children":2767},{"style":2756},[2768],{"type":2479,"value":2769}," add",{"type":2464,"tag":2744,"props":2771,"children":2772},{"style":2756},[2773],{"type":2479,"value":2774}," edgedb\n",{"type":2464,"tag":2717,"props":2776,"children":2777},{"start":2441},[2778],{"type":2464,"tag":2557,"props":2779,"children":2780},{},[2781,2782,2787,2789,2794,2796],{"type":2479,"value":2724},{"type":2464,"tag":2726,"props":2783,"children":2785},{"className":2784},[],[2786],{"type":2479,"value":2415},{"type":2479,"value":2788}," to the ",{"type":2464,"tag":2726,"props":2790,"children":2792},{"className":2791},[],[2793],{"type":2479,"value":194},{"type":2479,"value":2795}," section of ",{"type":2464,"tag":2726,"props":2797,"children":2799},{"className":2798},[],[2800],{"type":2479,"value":244},{"type":2464,"tag":2734,"props":2802,"children":2806},{"className":2803,"code":2804,"language":2805,"meta":2459,"style":2459},"language-js shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","export default defineNuxtConfig({\n  modules: [\n    'nuxt-edgedb-module'\n  ]\n})\n","js",[2807],{"type":2464,"tag":2726,"props":2808,"children":2809},{"__ignoreMap":2459},[2810,2842,2861,2879,2888],{"type":2464,"tag":2744,"props":2811,"children":2812},{"class":2746,"line":2445},[2813,2819,2824,2830,2836],{"type":2464,"tag":2744,"props":2814,"children":2816},{"style":2815},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#39ADB5;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[2817],{"type":2479,"value":2818},"export",{"type":2464,"tag":2744,"props":2820,"children":2821},{"style":2815},[2822],{"type":2479,"value":2823}," default",{"type":2464,"tag":2744,"props":2825,"children":2827},{"style":2826},"--shiki-light:#6182B8;--shiki-default:#6182B8;--shiki-dark:#82AAFF",[2828],{"type":2479,"value":2829}," defineNuxtConfig",{"type":2464,"tag":2744,"props":2831,"children":2833},{"style":2832},"--shiki-light:#90A4AE;--shiki-default:#90A4AE;--shiki-dark:#BABED8",[2834],{"type":2479,"value":2835},"(",{"type":2464,"tag":2744,"props":2837,"children":2839},{"style":2838},"--shiki-light:#39ADB5;--shiki-default:#39ADB5;--shiki-dark:#89DDFF",[2840],{"type":2479,"value":2841},"{\n",{"type":2464,"tag":2744,"props":2843,"children":2844},{"class":2746,"line":2441},[2845,2851,2856],{"type":2464,"tag":2744,"props":2846,"children":2848},{"style":2847},"--shiki-light:#E53935;--shiki-default:#E53935;--shiki-dark:#F07178",[2849],{"type":2479,"value":2850},"  modules",{"type":2464,"tag":2744,"props":2852,"children":2853},{"style":2838},[2854],{"type":2479,"value":2855},":",{"type":2464,"tag":2744,"props":2857,"children":2858},{"style":2832},[2859],{"type":2479,"value":2860}," [\n",{"type":2464,"tag":2744,"props":2862,"children":2864},{"class":2746,"line":2863},3,[2865,2870,2874],{"type":2464,"tag":2744,"props":2866,"children":2867},{"style":2838},[2868],{"type":2479,"value":2869},"    '",{"type":2464,"tag":2744,"props":2871,"children":2872},{"style":2756},[2873],{"type":2479,"value":2415},{"type":2464,"tag":2744,"props":2875,"children":2876},{"style":2838},[2877],{"type":2479,"value":2878},"'\n",{"type":2464,"tag":2744,"props":2880,"children":2882},{"class":2746,"line":2881},4,[2883],{"type":2464,"tag":2744,"props":2884,"children":2885},{"style":2832},[2886],{"type":2479,"value":2887},"  ]\n",{"type":2464,"tag":2744,"props":2889,"children":2890},{"class":2746,"line":2453},[2891,2896],{"type":2464,"tag":2744,"props":2892,"children":2893},{"style":2838},[2894],{"type":2479,"value":2895},"}",{"type":2464,"tag":2744,"props":2897,"children":2898},{"style":2832},[2899],{"type":2479,"value":2900},")\n",{"type":2464,"tag":2717,"props":2902,"children":2903},{"start":2863},[2904],{"type":2464,"tag":2557,"props":2905,"children":2906},{},[2907,2909,2915],{"type":2479,"value":2908},"Run ",{"type":2464,"tag":2726,"props":2910,"children":2912},{"className":2911},[],[2913],{"type":2479,"value":2914},"npx nuxt-edgedb-module",{"type":2479,"value":2916}," in your project root to run the CLI setup wizard.",{"type":2464,"tag":2734,"props":2918,"children":2920},{"className":2736,"code":2919,"language":2738,"meta":2459,"style":2459},"npx nuxt-edgedb-module\n",[2921],{"type":2464,"tag":2726,"props":2922,"children":2923},{"__ignoreMap":2459},[2924],{"type":2464,"tag":2744,"props":2925,"children":2926},{"class":2746,"line":2445},[2927,2931],{"type":2464,"tag":2744,"props":2928,"children":2929},{"style":2750},[2930],{"type":2479,"value":2753},{"type":2464,"tag":2744,"props":2932,"children":2933},{"style":2756},[2934],{"type":2479,"value":2935}," nuxt-edgedb-module\n",{"type":2464,"tag":2465,"props":2937,"children":2938},{},[2939],{"type":2479,"value":2940},"That's it! Your Nuxt project now have a database. ✨",{"type":2464,"tag":2465,"props":2942,"children":2943},{},[2944,2946,2951],{"type":2479,"value":2945},"If you do not already have ",{"type":2464,"tag":2485,"props":2947,"children":2949},{"href":2539,"rel":2948},[2489],[2950],{"type":2479,"value":2543},{"type":2479,"value":2952}," installed on your machine, the install wizard will help you install it.",{"type":2464,"tag":2547,"props":2954,"children":2956},{"id":2955},"example-project",[2957],{"type":2479,"value":2958},"Example project",{"type":2464,"tag":2465,"props":2960,"children":2961},{},[2962],{"type":2479,"value":2963},"If you want to run the example project, you have to clone this repository and run the playground.",{"type":2464,"tag":2465,"props":2965,"children":2966},{},[2967],{"type":2479,"value":2968},"As EdgeDB cannot run on web containers environment like Stackblitz or CodeSandbox.",{"type":2464,"tag":2734,"props":2970,"children":2972},{"className":2736,"code":2971,"language":2738,"meta":2459,"style":2459},"git clone git@github.com:Tahul\u002Fnuxt-edgedb.git\ncd nuxt-edgedb\npnpm install\npnpm stub\ncd playground\nedgedb project init\nnpx nuxt-edgedb-module\npnpm run dev\n",[2973],{"type":2464,"tag":2726,"props":2974,"children":2975},{"__ignoreMap":2459},[2976,2994,3007,3020,3032,3044,3062,3074],{"type":2464,"tag":2744,"props":2977,"children":2978},{"class":2746,"line":2445},[2979,2984,2989],{"type":2464,"tag":2744,"props":2980,"children":2981},{"style":2750},[2982],{"type":2479,"value":2983},"git",{"type":2464,"tag":2744,"props":2985,"children":2986},{"style":2756},[2987],{"type":2479,"value":2988}," clone",{"type":2464,"tag":2744,"props":2990,"children":2991},{"style":2756},[2992],{"type":2479,"value":2993}," git@github.com:Tahul\u002Fnuxt-edgedb.git\n",{"type":2464,"tag":2744,"props":2995,"children":2996},{"class":2746,"line":2441},[2997,3002],{"type":2464,"tag":2744,"props":2998,"children":2999},{"style":2826},[3000],{"type":2479,"value":3001},"cd",{"type":2464,"tag":2744,"props":3003,"children":3004},{"style":2756},[3005],{"type":2479,"value":3006}," nuxt-edgedb\n",{"type":2464,"tag":2744,"props":3008,"children":3009},{"class":2746,"line":2863},[3010,3015],{"type":2464,"tag":2744,"props":3011,"children":3012},{"style":2750},[3013],{"type":2479,"value":3014},"pnpm",{"type":2464,"tag":2744,"props":3016,"children":3017},{"style":2756},[3018],{"type":2479,"value":3019}," install\n",{"type":2464,"tag":2744,"props":3021,"children":3022},{"class":2746,"line":2881},[3023,3027],{"type":2464,"tag":2744,"props":3024,"children":3025},{"style":2750},[3026],{"type":2479,"value":3014},{"type":2464,"tag":2744,"props":3028,"children":3029},{"style":2756},[3030],{"type":2479,"value":3031}," stub\n",{"type":2464,"tag":2744,"props":3033,"children":3034},{"class":2746,"line":2453},[3035,3039],{"type":2464,"tag":2744,"props":3036,"children":3037},{"style":2826},[3038],{"type":2479,"value":3001},{"type":2464,"tag":2744,"props":3040,"children":3041},{"style":2756},[3042],{"type":2479,"value":3043}," playground\n",{"type":2464,"tag":2744,"props":3045,"children":3047},{"class":2746,"line":3046},6,[3048,3052,3057],{"type":2464,"tag":2744,"props":3049,"children":3050},{"style":2750},[3051],{"type":2479,"value":2412},{"type":2464,"tag":2744,"props":3053,"children":3054},{"style":2756},[3055],{"type":2479,"value":3056}," project",{"type":2464,"tag":2744,"props":3058,"children":3059},{"style":2756},[3060],{"type":2479,"value":3061}," init\n",{"type":2464,"tag":2744,"props":3063,"children":3065},{"class":2746,"line":3064},7,[3066,3070],{"type":2464,"tag":2744,"props":3067,"children":3068},{"style":2750},[3069],{"type":2479,"value":2753},{"type":2464,"tag":2744,"props":3071,"children":3072},{"style":2756},[3073],{"type":2479,"value":2935},{"type":2464,"tag":2744,"props":3075,"children":3077},{"class":2746,"line":3076},8,[3078,3082,3087],{"type":2464,"tag":2744,"props":3079,"children":3080},{"style":2750},[3081],{"type":2479,"value":3014},{"type":2464,"tag":2744,"props":3083,"children":3084},{"style":2756},[3085],{"type":2479,"value":3086}," run",{"type":2464,"tag":2744,"props":3088,"children":3089},{"style":2756},[3090],{"type":2479,"value":3091}," dev\n",{"type":2464,"tag":2547,"props":3093,"children":3095},{"id":3094},"module-options",[3096],{"type":2479,"value":3097},"Module options",{"type":2464,"tag":2465,"props":3099,"children":3100},{},[3101,3103,3108],{"type":2479,"value":3102},"You can configure any behavior from the module from your ",{"type":2464,"tag":2726,"props":3104,"children":3106},{"className":3105},[],[3107],{"type":2479,"value":244},{"type":2479,"value":3109}," file:",{"type":2464,"tag":2734,"props":3111,"children":3115},{"className":3112,"code":3113,"language":3114,"meta":2459,"style":2459},"language-typescript shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","export default defineNuxtConfig({\n  modules: ['nuxt-edgedb-module'],\n  edgeDb: {\n    \u002F\u002F Devtools integrations\n    devtools: true,\n    \u002F\u002F Completely toggle watchers feature\n    watch: true,\n    \u002F\u002F Enable or disable prompts on watch events\n    watchPrompt: true,\n    \u002F\u002F Generate target for your queries and query builder\n    generateTarget: 'ts',\n    \u002F\u002F dbschema\u002F dir\n    dbschemaDir: 'dbschema',\n    \u002F\u002F Individual queries dir (useEdgeDbQueries composable)\n    queriesDir: 'queries',\n    \u002F\u002F Toggle CLI install wizard\n    installCli: true,\n    \u002F\u002F Toggles composables\n    composables: true,\n    \u002F\u002F Toggles auto-injection on auth credentials\n    injectDbCredentials: true,\n    \u002F\u002F Enables authentication integration\n    auth: false,\n    \u002F\u002F Enables oauth integration\n    oauth: false,\n  }\n})\n","typescript",[3116],{"type":2464,"tag":2726,"props":3117,"children":3118},{"__ignoreMap":2459},[3119,3142,3181,3198,3207,3229,3237,3257,3265,3285,3294,3325,3334,3364,3373,3402,3411,3432,3441,3462,3471,3492,3501,3523,3532,3553,3562],{"type":2464,"tag":2744,"props":3120,"children":3121},{"class":2746,"line":2445},[3122,3126,3130,3134,3138],{"type":2464,"tag":2744,"props":3123,"children":3124},{"style":2815},[3125],{"type":2479,"value":2818},{"type":2464,"tag":2744,"props":3127,"children":3128},{"style":2815},[3129],{"type":2479,"value":2823},{"type":2464,"tag":2744,"props":3131,"children":3132},{"style":2826},[3133],{"type":2479,"value":2829},{"type":2464,"tag":2744,"props":3135,"children":3136},{"style":2832},[3137],{"type":2479,"value":2835},{"type":2464,"tag":2744,"props":3139,"children":3140},{"style":2838},[3141],{"type":2479,"value":2841},{"type":2464,"tag":2744,"props":3143,"children":3144},{"class":2746,"line":2441},[3145,3149,3153,3158,3163,3167,3171,3176],{"type":2464,"tag":2744,"props":3146,"children":3147},{"style":2847},[3148],{"type":2479,"value":2850},{"type":2464,"tag":2744,"props":3150,"children":3151},{"style":2838},[3152],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":3154,"children":3155},{"style":2832},[3156],{"type":2479,"value":3157}," [",{"type":2464,"tag":2744,"props":3159,"children":3160},{"style":2838},[3161],{"type":2479,"value":3162},"'",{"type":2464,"tag":2744,"props":3164,"children":3165},{"style":2756},[3166],{"type":2479,"value":2415},{"type":2464,"tag":2744,"props":3168,"children":3169},{"style":2838},[3170],{"type":2479,"value":3162},{"type":2464,"tag":2744,"props":3172,"children":3173},{"style":2832},[3174],{"type":2479,"value":3175},"]",{"type":2464,"tag":2744,"props":3177,"children":3178},{"style":2838},[3179],{"type":2479,"value":3180},",\n",{"type":2464,"tag":2744,"props":3182,"children":3183},{"class":2746,"line":2863},[3184,3189,3193],{"type":2464,"tag":2744,"props":3185,"children":3186},{"style":2847},[3187],{"type":2479,"value":3188},"  edgeDb",{"type":2464,"tag":2744,"props":3190,"children":3191},{"style":2838},[3192],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":3194,"children":3195},{"style":2838},[3196],{"type":2479,"value":3197}," {\n",{"type":2464,"tag":2744,"props":3199,"children":3200},{"class":2746,"line":2881},[3201],{"type":2464,"tag":2744,"props":3202,"children":3204},{"style":3203},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[3205],{"type":2479,"value":3206},"    \u002F\u002F Devtools integrations\n",{"type":2464,"tag":2744,"props":3208,"children":3209},{"class":2746,"line":2453},[3210,3215,3219,3225],{"type":2464,"tag":2744,"props":3211,"children":3212},{"style":2847},[3213],{"type":2479,"value":3214},"    devtools",{"type":2464,"tag":2744,"props":3216,"children":3217},{"style":2838},[3218],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":3220,"children":3222},{"style":3221},"--shiki-light:#FF5370;--shiki-default:#FF5370;--shiki-dark:#FF9CAC",[3223],{"type":2479,"value":3224}," true",{"type":2464,"tag":2744,"props":3226,"children":3227},{"style":2838},[3228],{"type":2479,"value":3180},{"type":2464,"tag":2744,"props":3230,"children":3231},{"class":2746,"line":3046},[3232],{"type":2464,"tag":2744,"props":3233,"children":3234},{"style":3203},[3235],{"type":2479,"value":3236},"    \u002F\u002F Completely toggle watchers feature\n",{"type":2464,"tag":2744,"props":3238,"children":3239},{"class":2746,"line":3064},[3240,3245,3249,3253],{"type":2464,"tag":2744,"props":3241,"children":3242},{"style":2847},[3243],{"type":2479,"value":3244},"    watch",{"type":2464,"tag":2744,"props":3246,"children":3247},{"style":2838},[3248],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":3250,"children":3251},{"style":3221},[3252],{"type":2479,"value":3224},{"type":2464,"tag":2744,"props":3254,"children":3255},{"style":2838},[3256],{"type":2479,"value":3180},{"type":2464,"tag":2744,"props":3258,"children":3259},{"class":2746,"line":3076},[3260],{"type":2464,"tag":2744,"props":3261,"children":3262},{"style":3203},[3263],{"type":2479,"value":3264},"    \u002F\u002F Enable or disable prompts on watch events\n",{"type":2464,"tag":2744,"props":3266,"children":3267},{"class":2746,"line":2437},[3268,3273,3277,3281],{"type":2464,"tag":2744,"props":3269,"children":3270},{"style":2847},[3271],{"type":2479,"value":3272},"    watchPrompt",{"type":2464,"tag":2744,"props":3274,"children":3275},{"style":2838},[3276],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":3278,"children":3279},{"style":3221},[3280],{"type":2479,"value":3224},{"type":2464,"tag":2744,"props":3282,"children":3283},{"style":2838},[3284],{"type":2479,"value":3180},{"type":2464,"tag":2744,"props":3286,"children":3288},{"class":2746,"line":3287},10,[3289],{"type":2464,"tag":2744,"props":3290,"children":3291},{"style":3203},[3292],{"type":2479,"value":3293},"    \u002F\u002F Generate target for your queries and query builder\n",{"type":2464,"tag":2744,"props":3295,"children":3297},{"class":2746,"line":3296},11,[3298,3303,3307,3312,3317,3321],{"type":2464,"tag":2744,"props":3299,"children":3300},{"style":2847},[3301],{"type":2479,"value":3302},"    generateTarget",{"type":2464,"tag":2744,"props":3304,"children":3305},{"style":2838},[3306],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":3308,"children":3309},{"style":2838},[3310],{"type":2479,"value":3311}," '",{"type":2464,"tag":2744,"props":3313,"children":3314},{"style":2756},[3315],{"type":2479,"value":3316},"ts",{"type":2464,"tag":2744,"props":3318,"children":3319},{"style":2838},[3320],{"type":2479,"value":3162},{"type":2464,"tag":2744,"props":3322,"children":3323},{"style":2838},[3324],{"type":2479,"value":3180},{"type":2464,"tag":2744,"props":3326,"children":3328},{"class":2746,"line":3327},12,[3329],{"type":2464,"tag":2744,"props":3330,"children":3331},{"style":3203},[3332],{"type":2479,"value":3333},"    \u002F\u002F dbschema\u002F dir\n",{"type":2464,"tag":2744,"props":3335,"children":3337},{"class":2746,"line":3336},13,[3338,3343,3347,3351,3356,3360],{"type":2464,"tag":2744,"props":3339,"children":3340},{"style":2847},[3341],{"type":2479,"value":3342},"    dbschemaDir",{"type":2464,"tag":2744,"props":3344,"children":3345},{"style":2838},[3346],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":3348,"children":3349},{"style":2838},[3350],{"type":2479,"value":3311},{"type":2464,"tag":2744,"props":3352,"children":3353},{"style":2756},[3354],{"type":2479,"value":3355},"dbschema",{"type":2464,"tag":2744,"props":3357,"children":3358},{"style":2838},[3359],{"type":2479,"value":3162},{"type":2464,"tag":2744,"props":3361,"children":3362},{"style":2838},[3363],{"type":2479,"value":3180},{"type":2464,"tag":2744,"props":3365,"children":3367},{"class":2746,"line":3366},14,[3368],{"type":2464,"tag":2744,"props":3369,"children":3370},{"style":3203},[3371],{"type":2479,"value":3372},"    \u002F\u002F Individual queries dir (useEdgeDbQueries composable)\n",{"type":2464,"tag":2744,"props":3374,"children":3376},{"class":2746,"line":3375},15,[3377,3382,3386,3390,3394,3398],{"type":2464,"tag":2744,"props":3378,"children":3379},{"style":2847},[3380],{"type":2479,"value":3381},"    queriesDir",{"type":2464,"tag":2744,"props":3383,"children":3384},{"style":2838},[3385],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":3387,"children":3388},{"style":2838},[3389],{"type":2479,"value":3311},{"type":2464,"tag":2744,"props":3391,"children":3392},{"style":2756},[3393],{"type":2479,"value":2601},{"type":2464,"tag":2744,"props":3395,"children":3396},{"style":2838},[3397],{"type":2479,"value":3162},{"type":2464,"tag":2744,"props":3399,"children":3400},{"style":2838},[3401],{"type":2479,"value":3180},{"type":2464,"tag":2744,"props":3403,"children":3405},{"class":2746,"line":3404},16,[3406],{"type":2464,"tag":2744,"props":3407,"children":3408},{"style":3203},[3409],{"type":2479,"value":3410},"    \u002F\u002F Toggle CLI install wizard\n",{"type":2464,"tag":2744,"props":3412,"children":3414},{"class":2746,"line":3413},17,[3415,3420,3424,3428],{"type":2464,"tag":2744,"props":3416,"children":3417},{"style":2847},[3418],{"type":2479,"value":3419},"    installCli",{"type":2464,"tag":2744,"props":3421,"children":3422},{"style":2838},[3423],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":3425,"children":3426},{"style":3221},[3427],{"type":2479,"value":3224},{"type":2464,"tag":2744,"props":3429,"children":3430},{"style":2838},[3431],{"type":2479,"value":3180},{"type":2464,"tag":2744,"props":3433,"children":3435},{"class":2746,"line":3434},18,[3436],{"type":2464,"tag":2744,"props":3437,"children":3438},{"style":3203},[3439],{"type":2479,"value":3440},"    \u002F\u002F Toggles composables\n",{"type":2464,"tag":2744,"props":3442,"children":3444},{"class":2746,"line":3443},19,[3445,3450,3454,3458],{"type":2464,"tag":2744,"props":3446,"children":3447},{"style":2847},[3448],{"type":2479,"value":3449},"    composables",{"type":2464,"tag":2744,"props":3451,"children":3452},{"style":2838},[3453],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":3455,"children":3456},{"style":3221},[3457],{"type":2479,"value":3224},{"type":2464,"tag":2744,"props":3459,"children":3460},{"style":2838},[3461],{"type":2479,"value":3180},{"type":2464,"tag":2744,"props":3463,"children":3465},{"class":2746,"line":3464},20,[3466],{"type":2464,"tag":2744,"props":3467,"children":3468},{"style":3203},[3469],{"type":2479,"value":3470},"    \u002F\u002F Toggles auto-injection on auth credentials\n",{"type":2464,"tag":2744,"props":3472,"children":3474},{"class":2746,"line":3473},21,[3475,3480,3484,3488],{"type":2464,"tag":2744,"props":3476,"children":3477},{"style":2847},[3478],{"type":2479,"value":3479},"    injectDbCredentials",{"type":2464,"tag":2744,"props":3481,"children":3482},{"style":2838},[3483],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":3485,"children":3486},{"style":3221},[3487],{"type":2479,"value":3224},{"type":2464,"tag":2744,"props":3489,"children":3490},{"style":2838},[3491],{"type":2479,"value":3180},{"type":2464,"tag":2744,"props":3493,"children":3495},{"class":2746,"line":3494},22,[3496],{"type":2464,"tag":2744,"props":3497,"children":3498},{"style":3203},[3499],{"type":2479,"value":3500},"    \u002F\u002F Enables authentication integration\n",{"type":2464,"tag":2744,"props":3502,"children":3504},{"class":2746,"line":3503},23,[3505,3510,3514,3519],{"type":2464,"tag":2744,"props":3506,"children":3507},{"style":2847},[3508],{"type":2479,"value":3509},"    auth",{"type":2464,"tag":2744,"props":3511,"children":3512},{"style":2838},[3513],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":3515,"children":3516},{"style":3221},[3517],{"type":2479,"value":3518}," false",{"type":2464,"tag":2744,"props":3520,"children":3521},{"style":2838},[3522],{"type":2479,"value":3180},{"type":2464,"tag":2744,"props":3524,"children":3526},{"class":2746,"line":3525},24,[3527],{"type":2464,"tag":2744,"props":3528,"children":3529},{"style":3203},[3530],{"type":2479,"value":3531},"    \u002F\u002F Enables oauth integration\n",{"type":2464,"tag":2744,"props":3533,"children":3535},{"class":2746,"line":3534},25,[3536,3541,3545,3549],{"type":2464,"tag":2744,"props":3537,"children":3538},{"style":2847},[3539],{"type":2479,"value":3540},"    oauth",{"type":2464,"tag":2744,"props":3542,"children":3543},{"style":2838},[3544],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":3546,"children":3547},{"style":3221},[3548],{"type":2479,"value":3518},{"type":2464,"tag":2744,"props":3550,"children":3551},{"style":2838},[3552],{"type":2479,"value":3180},{"type":2464,"tag":2744,"props":3554,"children":3556},{"class":2746,"line":3555},26,[3557],{"type":2464,"tag":2744,"props":3558,"children":3559},{"style":2838},[3560],{"type":2479,"value":3561},"  }\n",{"type":2464,"tag":2744,"props":3563,"children":3565},{"class":2746,"line":3564},27,[3566,3570],{"type":2464,"tag":2744,"props":3567,"children":3568},{"style":2838},[3569],{"type":2479,"value":2895},{"type":2464,"tag":2744,"props":3571,"children":3572},{"style":2832},[3573],{"type":2479,"value":2900},{"type":2464,"tag":2547,"props":3575,"children":3577},{"id":3576},"server-usage",[3578],{"type":2479,"value":3579},"Server usage",{"type":2464,"tag":2465,"props":3581,"children":3582},{},[3583,3585,3591],{"type":2479,"value":3584},"The module auto-imports all composables available in the ",{"type":2464,"tag":2726,"props":3586,"children":3588},{"className":3587},[],[3589],{"type":2479,"value":3590},"server\u002F",{"type":2479,"value":3592}," context of your Nuxt app.",{"type":2464,"tag":3594,"props":3595,"children":3597},"h3",{"id":3596},"useedgedb",[3598],{"type":2479,"value":3599},"useEdgeDb",{"type":2464,"tag":2465,"props":3601,"children":3602},{},[3603,3608,3610,3615],{"type":2464,"tag":2726,"props":3604,"children":3606},{"className":3605},[],[3607],{"type":2479,"value":3599},{"type":2479,"value":3609}," exposes the raw client from the ",{"type":2464,"tag":2726,"props":3611,"children":3613},{"className":3612},[],[3614],{"type":2479,"value":2412},{"type":2479,"value":3616}," import using your Nuxt environment configuration.",{"type":2464,"tag":2734,"props":3618,"children":3620},{"className":3112,"code":3619,"language":3114,"meta":2459,"style":2459},"\u002F\u002F server\u002Fapi\u002Fblogpost\u002F[id].ts\nimport { defineEventHandler, getRouterParams } from 'h3'\n\nexport default defineEventHandler(async (req) => {\n  const params = getRouterParams(req)\n  const id = params.id\n  const client = useEdgeDb()\n\n  const blogpost = await client.querySingle(`\n    select BlogPost {\n      title,\n      description\n    } filter .id = \u003Cuuid>$id\n  `, {\n    id: id\n  });\n\n  return blogpost\n})\n",[3621],{"type":2464,"tag":2726,"props":3622,"children":3623},{"__ignoreMap":2459},[3624,3632,3682,3691,3741,3775,3804,3830,3837,3880,3888,3896,3904,3912,3928,3945,3962,3969,3982],{"type":2464,"tag":2744,"props":3625,"children":3626},{"class":2746,"line":2445},[3627],{"type":2464,"tag":2744,"props":3628,"children":3629},{"style":3203},[3630],{"type":2479,"value":3631},"\u002F\u002F server\u002Fapi\u002Fblogpost\u002F[id].ts\n",{"type":2464,"tag":2744,"props":3633,"children":3634},{"class":2746,"line":2441},[3635,3640,3645,3650,3655,3660,3665,3670,3674,3678],{"type":2464,"tag":2744,"props":3636,"children":3637},{"style":2815},[3638],{"type":2479,"value":3639},"import",{"type":2464,"tag":2744,"props":3641,"children":3642},{"style":2838},[3643],{"type":2479,"value":3644}," {",{"type":2464,"tag":2744,"props":3646,"children":3647},{"style":2832},[3648],{"type":2479,"value":3649}," defineEventHandler",{"type":2464,"tag":2744,"props":3651,"children":3652},{"style":2838},[3653],{"type":2479,"value":3654},",",{"type":2464,"tag":2744,"props":3656,"children":3657},{"style":2832},[3658],{"type":2479,"value":3659}," getRouterParams",{"type":2464,"tag":2744,"props":3661,"children":3662},{"style":2838},[3663],{"type":2479,"value":3664}," }",{"type":2464,"tag":2744,"props":3666,"children":3667},{"style":2815},[3668],{"type":2479,"value":3669}," from",{"type":2464,"tag":2744,"props":3671,"children":3672},{"style":2838},[3673],{"type":2479,"value":3311},{"type":2464,"tag":2744,"props":3675,"children":3676},{"style":2756},[3677],{"type":2479,"value":3594},{"type":2464,"tag":2744,"props":3679,"children":3680},{"style":2838},[3681],{"type":2479,"value":2878},{"type":2464,"tag":2744,"props":3683,"children":3684},{"class":2746,"line":2863},[3685],{"type":2464,"tag":2744,"props":3686,"children":3688},{"emptyLinePlaceholder":3687},true,[3689],{"type":2479,"value":3690},"\n",{"type":2464,"tag":2744,"props":3692,"children":3693},{"class":2746,"line":2881},[3694,3698,3702,3706,3710,3716,3721,3727,3732,3737],{"type":2464,"tag":2744,"props":3695,"children":3696},{"style":2815},[3697],{"type":2479,"value":2818},{"type":2464,"tag":2744,"props":3699,"children":3700},{"style":2815},[3701],{"type":2479,"value":2823},{"type":2464,"tag":2744,"props":3703,"children":3704},{"style":2826},[3705],{"type":2479,"value":3649},{"type":2464,"tag":2744,"props":3707,"children":3708},{"style":2832},[3709],{"type":2479,"value":2835},{"type":2464,"tag":2744,"props":3711,"children":3713},{"style":3712},"--shiki-light:#9C3EDA;--shiki-default:#9C3EDA;--shiki-dark:#C792EA",[3714],{"type":2479,"value":3715},"async",{"type":2464,"tag":2744,"props":3717,"children":3718},{"style":2838},[3719],{"type":2479,"value":3720}," (",{"type":2464,"tag":2744,"props":3722,"children":3724},{"style":3723},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[3725],{"type":2479,"value":3726},"req",{"type":2464,"tag":2744,"props":3728,"children":3729},{"style":2838},[3730],{"type":2479,"value":3731},")",{"type":2464,"tag":2744,"props":3733,"children":3734},{"style":3712},[3735],{"type":2479,"value":3736}," =>",{"type":2464,"tag":2744,"props":3738,"children":3739},{"style":2838},[3740],{"type":2479,"value":3197},{"type":2464,"tag":2744,"props":3742,"children":3743},{"class":2746,"line":2453},[3744,3749,3754,3759,3763,3767,3771],{"type":2464,"tag":2744,"props":3745,"children":3746},{"style":3712},[3747],{"type":2479,"value":3748},"  const",{"type":2464,"tag":2744,"props":3750,"children":3751},{"style":2832},[3752],{"type":2479,"value":3753}," params",{"type":2464,"tag":2744,"props":3755,"children":3756},{"style":2838},[3757],{"type":2479,"value":3758}," =",{"type":2464,"tag":2744,"props":3760,"children":3761},{"style":2826},[3762],{"type":2479,"value":3659},{"type":2464,"tag":2744,"props":3764,"children":3765},{"style":2847},[3766],{"type":2479,"value":2835},{"type":2464,"tag":2744,"props":3768,"children":3769},{"style":2832},[3770],{"type":2479,"value":3726},{"type":2464,"tag":2744,"props":3772,"children":3773},{"style":2847},[3774],{"type":2479,"value":2900},{"type":2464,"tag":2744,"props":3776,"children":3777},{"class":2746,"line":3046},[3778,3782,3787,3791,3795,3799],{"type":2464,"tag":2744,"props":3779,"children":3780},{"style":3712},[3781],{"type":2479,"value":3748},{"type":2464,"tag":2744,"props":3783,"children":3784},{"style":2832},[3785],{"type":2479,"value":3786}," id",{"type":2464,"tag":2744,"props":3788,"children":3789},{"style":2838},[3790],{"type":2479,"value":3758},{"type":2464,"tag":2744,"props":3792,"children":3793},{"style":2832},[3794],{"type":2479,"value":3753},{"type":2464,"tag":2744,"props":3796,"children":3797},{"style":2838},[3798],{"type":2479,"value":2610},{"type":2464,"tag":2744,"props":3800,"children":3801},{"style":2832},[3802],{"type":2479,"value":3803},"id\n",{"type":2464,"tag":2744,"props":3805,"children":3806},{"class":2746,"line":3064},[3807,3811,3816,3820,3825],{"type":2464,"tag":2744,"props":3808,"children":3809},{"style":3712},[3810],{"type":2479,"value":3748},{"type":2464,"tag":2744,"props":3812,"children":3813},{"style":2832},[3814],{"type":2479,"value":3815}," client",{"type":2464,"tag":2744,"props":3817,"children":3818},{"style":2838},[3819],{"type":2479,"value":3758},{"type":2464,"tag":2744,"props":3821,"children":3822},{"style":2826},[3823],{"type":2479,"value":3824}," useEdgeDb",{"type":2464,"tag":2744,"props":3826,"children":3827},{"style":2847},[3828],{"type":2479,"value":3829},"()\n",{"type":2464,"tag":2744,"props":3831,"children":3832},{"class":2746,"line":3076},[3833],{"type":2464,"tag":2744,"props":3834,"children":3835},{"emptyLinePlaceholder":3687},[3836],{"type":2479,"value":3690},{"type":2464,"tag":2744,"props":3838,"children":3839},{"class":2746,"line":2437},[3840,3844,3849,3853,3858,3862,3866,3871,3875],{"type":2464,"tag":2744,"props":3841,"children":3842},{"style":3712},[3843],{"type":2479,"value":3748},{"type":2464,"tag":2744,"props":3845,"children":3846},{"style":2832},[3847],{"type":2479,"value":3848}," blogpost",{"type":2464,"tag":2744,"props":3850,"children":3851},{"style":2838},[3852],{"type":2479,"value":3758},{"type":2464,"tag":2744,"props":3854,"children":3855},{"style":2815},[3856],{"type":2479,"value":3857}," await",{"type":2464,"tag":2744,"props":3859,"children":3860},{"style":2832},[3861],{"type":2479,"value":3815},{"type":2464,"tag":2744,"props":3863,"children":3864},{"style":2838},[3865],{"type":2479,"value":2610},{"type":2464,"tag":2744,"props":3867,"children":3868},{"style":2826},[3869],{"type":2479,"value":3870},"querySingle",{"type":2464,"tag":2744,"props":3872,"children":3873},{"style":2847},[3874],{"type":2479,"value":2835},{"type":2464,"tag":2744,"props":3876,"children":3877},{"style":2838},[3878],{"type":2479,"value":3879},"`\n",{"type":2464,"tag":2744,"props":3881,"children":3882},{"class":2746,"line":3287},[3883],{"type":2464,"tag":2744,"props":3884,"children":3885},{"style":2756},[3886],{"type":2479,"value":3887},"    select BlogPost {\n",{"type":2464,"tag":2744,"props":3889,"children":3890},{"class":2746,"line":3296},[3891],{"type":2464,"tag":2744,"props":3892,"children":3893},{"style":2756},[3894],{"type":2479,"value":3895},"      title,\n",{"type":2464,"tag":2744,"props":3897,"children":3898},{"class":2746,"line":3327},[3899],{"type":2464,"tag":2744,"props":3900,"children":3901},{"style":2756},[3902],{"type":2479,"value":3903},"      description\n",{"type":2464,"tag":2744,"props":3905,"children":3906},{"class":2746,"line":3336},[3907],{"type":2464,"tag":2744,"props":3908,"children":3909},{"style":2756},[3910],{"type":2479,"value":3911},"    } filter .id = \u003Cuuid>$id\n",{"type":2464,"tag":2744,"props":3913,"children":3914},{"class":2746,"line":3366},[3915,3920,3924],{"type":2464,"tag":2744,"props":3916,"children":3917},{"style":2838},[3918],{"type":2479,"value":3919},"  `",{"type":2464,"tag":2744,"props":3921,"children":3922},{"style":2838},[3923],{"type":2479,"value":3654},{"type":2464,"tag":2744,"props":3925,"children":3926},{"style":2838},[3927],{"type":2479,"value":3197},{"type":2464,"tag":2744,"props":3929,"children":3930},{"class":2746,"line":3375},[3931,3936,3940],{"type":2464,"tag":2744,"props":3932,"children":3933},{"style":2847},[3934],{"type":2479,"value":3935},"    id",{"type":2464,"tag":2744,"props":3937,"children":3938},{"style":2838},[3939],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":3941,"children":3942},{"style":2832},[3943],{"type":2479,"value":3944}," id\n",{"type":2464,"tag":2744,"props":3946,"children":3947},{"class":2746,"line":3404},[3948,3953,3957],{"type":2464,"tag":2744,"props":3949,"children":3950},{"style":2838},[3951],{"type":2479,"value":3952},"  }",{"type":2464,"tag":2744,"props":3954,"children":3955},{"style":2847},[3956],{"type":2479,"value":3731},{"type":2464,"tag":2744,"props":3958,"children":3959},{"style":2838},[3960],{"type":2479,"value":3961},";\n",{"type":2464,"tag":2744,"props":3963,"children":3964},{"class":2746,"line":3413},[3965],{"type":2464,"tag":2744,"props":3966,"children":3967},{"emptyLinePlaceholder":3687},[3968],{"type":2479,"value":3690},{"type":2464,"tag":2744,"props":3970,"children":3971},{"class":2746,"line":3434},[3972,3977],{"type":2464,"tag":2744,"props":3973,"children":3974},{"style":2815},[3975],{"type":2479,"value":3976},"  return",{"type":2464,"tag":2744,"props":3978,"children":3979},{"style":2832},[3980],{"type":2479,"value":3981}," blogpost\n",{"type":2464,"tag":2744,"props":3983,"children":3984},{"class":2746,"line":3443},[3985,3989],{"type":2464,"tag":2744,"props":3986,"children":3987},{"style":2838},[3988],{"type":2479,"value":2895},{"type":2464,"tag":2744,"props":3990,"children":3991},{"style":2832},[3992],{"type":2479,"value":2900},{"type":2464,"tag":3594,"props":3994,"children":3996},{"id":3995},"useedgedbqueries",[3997],{"type":2479,"value":3998},"useEdgeDbQueries",{"type":2464,"tag":2465,"props":4000,"children":4001},{},[4002,4007,4009,4015],{"type":2464,"tag":2726,"props":4003,"children":4005},{"className":4004},[],[4006],{"type":2479,"value":3998},{"type":2479,"value":4008}," exposes all your queries from ",{"type":2464,"tag":2726,"props":4010,"children":4012},{"className":4011},[],[4013],{"type":2479,"value":4014},"dbschema\u002Fqueries.ts",{"type":2479,"value":2610},{"type":2464,"tag":2465,"props":4017,"children":4018},{},[4019,4021,4026],{"type":2479,"value":4020},"You do not have to pass them a client. They will use the one generated by ",{"type":2464,"tag":2726,"props":4022,"children":4024},{"className":4023},[],[4025],{"type":2479,"value":3599},{"type":2479,"value":4027}," that is scoped to the current request.",{"type":2464,"tag":2734,"props":4029,"children":4033},{"className":4030,"code":4031,"language":4032,"meta":2459,"style":2459},"language-esdl shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","\u002F\u002F queries\u002FgetBlogPost.edgeql\nselect BlogPost {\n  title,\n  description\n} filter .id = \u003Cuuid>$blogpost_id\n","esdl",[4034],{"type":2464,"tag":2726,"props":4035,"children":4036},{"__ignoreMap":2459},[4037,4045,4053,4061,4069],{"type":2464,"tag":2744,"props":4038,"children":4039},{"class":2746,"line":2445},[4040],{"type":2464,"tag":2744,"props":4041,"children":4042},{},[4043],{"type":2479,"value":4044},"\u002F\u002F queries\u002FgetBlogPost.edgeql\n",{"type":2464,"tag":2744,"props":4046,"children":4047},{"class":2746,"line":2441},[4048],{"type":2464,"tag":2744,"props":4049,"children":4050},{},[4051],{"type":2479,"value":4052},"select BlogPost {\n",{"type":2464,"tag":2744,"props":4054,"children":4055},{"class":2746,"line":2863},[4056],{"type":2464,"tag":2744,"props":4057,"children":4058},{},[4059],{"type":2479,"value":4060},"  title,\n",{"type":2464,"tag":2744,"props":4062,"children":4063},{"class":2746,"line":2881},[4064],{"type":2464,"tag":2744,"props":4065,"children":4066},{},[4067],{"type":2479,"value":4068},"  description\n",{"type":2464,"tag":2744,"props":4070,"children":4071},{"class":2746,"line":2453},[4072],{"type":2464,"tag":2744,"props":4073,"children":4074},{},[4075],{"type":2479,"value":4076},"} filter .id = \u003Cuuid>$blogpost_id\n",{"type":2464,"tag":2734,"props":4078,"children":4080},{"className":3112,"code":4079,"language":3114,"meta":2459,"style":2459},"\u002F\u002F server\u002Fapi\u002Fblogpost\u002F[id].ts\nimport { defineEventHandler, getRouterParams } from 'h3'\n\nexport default defineEventHandler(async (req) => {\n  const params = getRouterParams(req)\n  const id = params.id\n  const { getBlogpPost } = useEdgeDbQueries()\n  const blogPost = await getBlogpost({ blogpost_id: id })\n\n  return blogpost\n})\n",[4081],{"type":2464,"tag":2726,"props":4082,"children":4083},{"__ignoreMap":2459},[4084,4091,4134,4141,4184,4215,4242,4275,4330,4337,4348],{"type":2464,"tag":2744,"props":4085,"children":4086},{"class":2746,"line":2445},[4087],{"type":2464,"tag":2744,"props":4088,"children":4089},{"style":3203},[4090],{"type":2479,"value":3631},{"type":2464,"tag":2744,"props":4092,"children":4093},{"class":2746,"line":2441},[4094,4098,4102,4106,4110,4114,4118,4122,4126,4130],{"type":2464,"tag":2744,"props":4095,"children":4096},{"style":2815},[4097],{"type":2479,"value":3639},{"type":2464,"tag":2744,"props":4099,"children":4100},{"style":2838},[4101],{"type":2479,"value":3644},{"type":2464,"tag":2744,"props":4103,"children":4104},{"style":2832},[4105],{"type":2479,"value":3649},{"type":2464,"tag":2744,"props":4107,"children":4108},{"style":2838},[4109],{"type":2479,"value":3654},{"type":2464,"tag":2744,"props":4111,"children":4112},{"style":2832},[4113],{"type":2479,"value":3659},{"type":2464,"tag":2744,"props":4115,"children":4116},{"style":2838},[4117],{"type":2479,"value":3664},{"type":2464,"tag":2744,"props":4119,"children":4120},{"style":2815},[4121],{"type":2479,"value":3669},{"type":2464,"tag":2744,"props":4123,"children":4124},{"style":2838},[4125],{"type":2479,"value":3311},{"type":2464,"tag":2744,"props":4127,"children":4128},{"style":2756},[4129],{"type":2479,"value":3594},{"type":2464,"tag":2744,"props":4131,"children":4132},{"style":2838},[4133],{"type":2479,"value":2878},{"type":2464,"tag":2744,"props":4135,"children":4136},{"class":2746,"line":2863},[4137],{"type":2464,"tag":2744,"props":4138,"children":4139},{"emptyLinePlaceholder":3687},[4140],{"type":2479,"value":3690},{"type":2464,"tag":2744,"props":4142,"children":4143},{"class":2746,"line":2881},[4144,4148,4152,4156,4160,4164,4168,4172,4176,4180],{"type":2464,"tag":2744,"props":4145,"children":4146},{"style":2815},[4147],{"type":2479,"value":2818},{"type":2464,"tag":2744,"props":4149,"children":4150},{"style":2815},[4151],{"type":2479,"value":2823},{"type":2464,"tag":2744,"props":4153,"children":4154},{"style":2826},[4155],{"type":2479,"value":3649},{"type":2464,"tag":2744,"props":4157,"children":4158},{"style":2832},[4159],{"type":2479,"value":2835},{"type":2464,"tag":2744,"props":4161,"children":4162},{"style":3712},[4163],{"type":2479,"value":3715},{"type":2464,"tag":2744,"props":4165,"children":4166},{"style":2838},[4167],{"type":2479,"value":3720},{"type":2464,"tag":2744,"props":4169,"children":4170},{"style":3723},[4171],{"type":2479,"value":3726},{"type":2464,"tag":2744,"props":4173,"children":4174},{"style":2838},[4175],{"type":2479,"value":3731},{"type":2464,"tag":2744,"props":4177,"children":4178},{"style":3712},[4179],{"type":2479,"value":3736},{"type":2464,"tag":2744,"props":4181,"children":4182},{"style":2838},[4183],{"type":2479,"value":3197},{"type":2464,"tag":2744,"props":4185,"children":4186},{"class":2746,"line":2453},[4187,4191,4195,4199,4203,4207,4211],{"type":2464,"tag":2744,"props":4188,"children":4189},{"style":3712},[4190],{"type":2479,"value":3748},{"type":2464,"tag":2744,"props":4192,"children":4193},{"style":2832},[4194],{"type":2479,"value":3753},{"type":2464,"tag":2744,"props":4196,"children":4197},{"style":2838},[4198],{"type":2479,"value":3758},{"type":2464,"tag":2744,"props":4200,"children":4201},{"style":2826},[4202],{"type":2479,"value":3659},{"type":2464,"tag":2744,"props":4204,"children":4205},{"style":2847},[4206],{"type":2479,"value":2835},{"type":2464,"tag":2744,"props":4208,"children":4209},{"style":2832},[4210],{"type":2479,"value":3726},{"type":2464,"tag":2744,"props":4212,"children":4213},{"style":2847},[4214],{"type":2479,"value":2900},{"type":2464,"tag":2744,"props":4216,"children":4217},{"class":2746,"line":3046},[4218,4222,4226,4230,4234,4238],{"type":2464,"tag":2744,"props":4219,"children":4220},{"style":3712},[4221],{"type":2479,"value":3748},{"type":2464,"tag":2744,"props":4223,"children":4224},{"style":2832},[4225],{"type":2479,"value":3786},{"type":2464,"tag":2744,"props":4227,"children":4228},{"style":2838},[4229],{"type":2479,"value":3758},{"type":2464,"tag":2744,"props":4231,"children":4232},{"style":2832},[4233],{"type":2479,"value":3753},{"type":2464,"tag":2744,"props":4235,"children":4236},{"style":2838},[4237],{"type":2479,"value":2610},{"type":2464,"tag":2744,"props":4239,"children":4240},{"style":2832},[4241],{"type":2479,"value":3803},{"type":2464,"tag":2744,"props":4243,"children":4244},{"class":2746,"line":3064},[4245,4249,4253,4258,4262,4266,4271],{"type":2464,"tag":2744,"props":4246,"children":4247},{"style":3712},[4248],{"type":2479,"value":3748},{"type":2464,"tag":2744,"props":4250,"children":4251},{"style":2838},[4252],{"type":2479,"value":3644},{"type":2464,"tag":2744,"props":4254,"children":4255},{"style":2832},[4256],{"type":2479,"value":4257}," getBlogpPost",{"type":2464,"tag":2744,"props":4259,"children":4260},{"style":2838},[4261],{"type":2479,"value":3664},{"type":2464,"tag":2744,"props":4263,"children":4264},{"style":2838},[4265],{"type":2479,"value":3758},{"type":2464,"tag":2744,"props":4267,"children":4268},{"style":2826},[4269],{"type":2479,"value":4270}," useEdgeDbQueries",{"type":2464,"tag":2744,"props":4272,"children":4273},{"style":2847},[4274],{"type":2479,"value":3829},{"type":2464,"tag":2744,"props":4276,"children":4277},{"class":2746,"line":3076},[4278,4282,4287,4291,4295,4300,4304,4309,4314,4318,4322,4326],{"type":2464,"tag":2744,"props":4279,"children":4280},{"style":3712},[4281],{"type":2479,"value":3748},{"type":2464,"tag":2744,"props":4283,"children":4284},{"style":2832},[4285],{"type":2479,"value":4286}," blogPost",{"type":2464,"tag":2744,"props":4288,"children":4289},{"style":2838},[4290],{"type":2479,"value":3758},{"type":2464,"tag":2744,"props":4292,"children":4293},{"style":2815},[4294],{"type":2479,"value":3857},{"type":2464,"tag":2744,"props":4296,"children":4297},{"style":2826},[4298],{"type":2479,"value":4299}," getBlogpost",{"type":2464,"tag":2744,"props":4301,"children":4302},{"style":2847},[4303],{"type":2479,"value":2835},{"type":2464,"tag":2744,"props":4305,"children":4306},{"style":2838},[4307],{"type":2479,"value":4308},"{",{"type":2464,"tag":2744,"props":4310,"children":4311},{"style":2847},[4312],{"type":2479,"value":4313}," blogpost_id",{"type":2464,"tag":2744,"props":4315,"children":4316},{"style":2838},[4317],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":4319,"children":4320},{"style":2832},[4321],{"type":2479,"value":3786},{"type":2464,"tag":2744,"props":4323,"children":4324},{"style":2838},[4325],{"type":2479,"value":3664},{"type":2464,"tag":2744,"props":4327,"children":4328},{"style":2847},[4329],{"type":2479,"value":2900},{"type":2464,"tag":2744,"props":4331,"children":4332},{"class":2746,"line":2437},[4333],{"type":2464,"tag":2744,"props":4334,"children":4335},{"emptyLinePlaceholder":3687},[4336],{"type":2479,"value":3690},{"type":2464,"tag":2744,"props":4338,"children":4339},{"class":2746,"line":3287},[4340,4344],{"type":2464,"tag":2744,"props":4341,"children":4342},{"style":2815},[4343],{"type":2479,"value":3976},{"type":2464,"tag":2744,"props":4345,"children":4346},{"style":2832},[4347],{"type":2479,"value":3981},{"type":2464,"tag":2744,"props":4349,"children":4350},{"class":2746,"line":3296},[4351,4355],{"type":2464,"tag":2744,"props":4352,"children":4353},{"style":2838},[4354],{"type":2479,"value":2895},{"type":2464,"tag":2744,"props":4356,"children":4357},{"style":2832},[4358],{"type":2479,"value":2900},{"type":2464,"tag":2465,"props":4360,"children":4361},{},[4362,4364,4370,4372,4378,4380,4386],{"type":2479,"value":4363},"You can still import ",{"type":2464,"tag":2485,"props":4365,"children":4368},{"href":4366,"rel":4367},"https:\u002F\u002Fwww.edgedb.com\u002Fdocs\u002Fclients\u002Fjs\u002Fqueries",[2489],[4369],{"type":2479,"value":2601},{"type":2479,"value":4371}," directly from ",{"type":2464,"tag":2726,"props":4373,"children":4375},{"className":4374},[],[4376],{"type":2479,"value":4377},"#edgedb\u002Fqueries",{"type":2479,"value":4379}," and pass them the client from ",{"type":2464,"tag":2726,"props":4381,"children":4383},{"className":4382},[],[4384],{"type":2479,"value":4385},"useEdgeDb()",{"type":2479,"value":2610},{"type":2464,"tag":2734,"props":4388,"children":4390},{"className":3112,"code":4389,"language":3114,"meta":2459,"style":2459},"\u002F\u002F server\u002Fapi\u002Fblogpost\u002F[id].ts\nimport { getBlogPost } from '#edgedb\u002Fqueries'\nimport { defineEventHandler, getRouterParams } from 'h3'\n\nexport default defineEventHandler(async (req) => {\n  const params = getRouterParams(req)\n  const id = params.id\n  const client = useEdgeDb()\n  const blogPost = await getBlogpost(client, { blogpost_id: id })\n\n  return blogpost\n})\n",[4391],{"type":2464,"tag":2726,"props":4392,"children":4393},{"__ignoreMap":2459},[4394,4401,4437,4480,4487,4530,4561,4588,4611,4671,4678,4689],{"type":2464,"tag":2744,"props":4395,"children":4396},{"class":2746,"line":2445},[4397],{"type":2464,"tag":2744,"props":4398,"children":4399},{"style":3203},[4400],{"type":2479,"value":3631},{"type":2464,"tag":2744,"props":4402,"children":4403},{"class":2746,"line":2441},[4404,4408,4412,4417,4421,4425,4429,4433],{"type":2464,"tag":2744,"props":4405,"children":4406},{"style":2815},[4407],{"type":2479,"value":3639},{"type":2464,"tag":2744,"props":4409,"children":4410},{"style":2838},[4411],{"type":2479,"value":3644},{"type":2464,"tag":2744,"props":4413,"children":4414},{"style":2832},[4415],{"type":2479,"value":4416}," getBlogPost",{"type":2464,"tag":2744,"props":4418,"children":4419},{"style":2838},[4420],{"type":2479,"value":3664},{"type":2464,"tag":2744,"props":4422,"children":4423},{"style":2815},[4424],{"type":2479,"value":3669},{"type":2464,"tag":2744,"props":4426,"children":4427},{"style":2838},[4428],{"type":2479,"value":3311},{"type":2464,"tag":2744,"props":4430,"children":4431},{"style":2756},[4432],{"type":2479,"value":4377},{"type":2464,"tag":2744,"props":4434,"children":4435},{"style":2838},[4436],{"type":2479,"value":2878},{"type":2464,"tag":2744,"props":4438,"children":4439},{"class":2746,"line":2863},[4440,4444,4448,4452,4456,4460,4464,4468,4472,4476],{"type":2464,"tag":2744,"props":4441,"children":4442},{"style":2815},[4443],{"type":2479,"value":3639},{"type":2464,"tag":2744,"props":4445,"children":4446},{"style":2838},[4447],{"type":2479,"value":3644},{"type":2464,"tag":2744,"props":4449,"children":4450},{"style":2832},[4451],{"type":2479,"value":3649},{"type":2464,"tag":2744,"props":4453,"children":4454},{"style":2838},[4455],{"type":2479,"value":3654},{"type":2464,"tag":2744,"props":4457,"children":4458},{"style":2832},[4459],{"type":2479,"value":3659},{"type":2464,"tag":2744,"props":4461,"children":4462},{"style":2838},[4463],{"type":2479,"value":3664},{"type":2464,"tag":2744,"props":4465,"children":4466},{"style":2815},[4467],{"type":2479,"value":3669},{"type":2464,"tag":2744,"props":4469,"children":4470},{"style":2838},[4471],{"type":2479,"value":3311},{"type":2464,"tag":2744,"props":4473,"children":4474},{"style":2756},[4475],{"type":2479,"value":3594},{"type":2464,"tag":2744,"props":4477,"children":4478},{"style":2838},[4479],{"type":2479,"value":2878},{"type":2464,"tag":2744,"props":4481,"children":4482},{"class":2746,"line":2881},[4483],{"type":2464,"tag":2744,"props":4484,"children":4485},{"emptyLinePlaceholder":3687},[4486],{"type":2479,"value":3690},{"type":2464,"tag":2744,"props":4488,"children":4489},{"class":2746,"line":2453},[4490,4494,4498,4502,4506,4510,4514,4518,4522,4526],{"type":2464,"tag":2744,"props":4491,"children":4492},{"style":2815},[4493],{"type":2479,"value":2818},{"type":2464,"tag":2744,"props":4495,"children":4496},{"style":2815},[4497],{"type":2479,"value":2823},{"type":2464,"tag":2744,"props":4499,"children":4500},{"style":2826},[4501],{"type":2479,"value":3649},{"type":2464,"tag":2744,"props":4503,"children":4504},{"style":2832},[4505],{"type":2479,"value":2835},{"type":2464,"tag":2744,"props":4507,"children":4508},{"style":3712},[4509],{"type":2479,"value":3715},{"type":2464,"tag":2744,"props":4511,"children":4512},{"style":2838},[4513],{"type":2479,"value":3720},{"type":2464,"tag":2744,"props":4515,"children":4516},{"style":3723},[4517],{"type":2479,"value":3726},{"type":2464,"tag":2744,"props":4519,"children":4520},{"style":2838},[4521],{"type":2479,"value":3731},{"type":2464,"tag":2744,"props":4523,"children":4524},{"style":3712},[4525],{"type":2479,"value":3736},{"type":2464,"tag":2744,"props":4527,"children":4528},{"style":2838},[4529],{"type":2479,"value":3197},{"type":2464,"tag":2744,"props":4531,"children":4532},{"class":2746,"line":3046},[4533,4537,4541,4545,4549,4553,4557],{"type":2464,"tag":2744,"props":4534,"children":4535},{"style":3712},[4536],{"type":2479,"value":3748},{"type":2464,"tag":2744,"props":4538,"children":4539},{"style":2832},[4540],{"type":2479,"value":3753},{"type":2464,"tag":2744,"props":4542,"children":4543},{"style":2838},[4544],{"type":2479,"value":3758},{"type":2464,"tag":2744,"props":4546,"children":4547},{"style":2826},[4548],{"type":2479,"value":3659},{"type":2464,"tag":2744,"props":4550,"children":4551},{"style":2847},[4552],{"type":2479,"value":2835},{"type":2464,"tag":2744,"props":4554,"children":4555},{"style":2832},[4556],{"type":2479,"value":3726},{"type":2464,"tag":2744,"props":4558,"children":4559},{"style":2847},[4560],{"type":2479,"value":2900},{"type":2464,"tag":2744,"props":4562,"children":4563},{"class":2746,"line":3064},[4564,4568,4572,4576,4580,4584],{"type":2464,"tag":2744,"props":4565,"children":4566},{"style":3712},[4567],{"type":2479,"value":3748},{"type":2464,"tag":2744,"props":4569,"children":4570},{"style":2832},[4571],{"type":2479,"value":3786},{"type":2464,"tag":2744,"props":4573,"children":4574},{"style":2838},[4575],{"type":2479,"value":3758},{"type":2464,"tag":2744,"props":4577,"children":4578},{"style":2832},[4579],{"type":2479,"value":3753},{"type":2464,"tag":2744,"props":4581,"children":4582},{"style":2838},[4583],{"type":2479,"value":2610},{"type":2464,"tag":2744,"props":4585,"children":4586},{"style":2832},[4587],{"type":2479,"value":3803},{"type":2464,"tag":2744,"props":4589,"children":4590},{"class":2746,"line":3076},[4591,4595,4599,4603,4607],{"type":2464,"tag":2744,"props":4592,"children":4593},{"style":3712},[4594],{"type":2479,"value":3748},{"type":2464,"tag":2744,"props":4596,"children":4597},{"style":2832},[4598],{"type":2479,"value":3815},{"type":2464,"tag":2744,"props":4600,"children":4601},{"style":2838},[4602],{"type":2479,"value":3758},{"type":2464,"tag":2744,"props":4604,"children":4605},{"style":2826},[4606],{"type":2479,"value":3824},{"type":2464,"tag":2744,"props":4608,"children":4609},{"style":2847},[4610],{"type":2479,"value":3829},{"type":2464,"tag":2744,"props":4612,"children":4613},{"class":2746,"line":2437},[4614,4618,4622,4626,4630,4634,4638,4643,4647,4651,4655,4659,4663,4667],{"type":2464,"tag":2744,"props":4615,"children":4616},{"style":3712},[4617],{"type":2479,"value":3748},{"type":2464,"tag":2744,"props":4619,"children":4620},{"style":2832},[4621],{"type":2479,"value":4286},{"type":2464,"tag":2744,"props":4623,"children":4624},{"style":2838},[4625],{"type":2479,"value":3758},{"type":2464,"tag":2744,"props":4627,"children":4628},{"style":2815},[4629],{"type":2479,"value":3857},{"type":2464,"tag":2744,"props":4631,"children":4632},{"style":2826},[4633],{"type":2479,"value":4299},{"type":2464,"tag":2744,"props":4635,"children":4636},{"style":2847},[4637],{"type":2479,"value":2835},{"type":2464,"tag":2744,"props":4639,"children":4640},{"style":2832},[4641],{"type":2479,"value":4642},"client",{"type":2464,"tag":2744,"props":4644,"children":4645},{"style":2838},[4646],{"type":2479,"value":3654},{"type":2464,"tag":2744,"props":4648,"children":4649},{"style":2838},[4650],{"type":2479,"value":3644},{"type":2464,"tag":2744,"props":4652,"children":4653},{"style":2847},[4654],{"type":2479,"value":4313},{"type":2464,"tag":2744,"props":4656,"children":4657},{"style":2838},[4658],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":4660,"children":4661},{"style":2832},[4662],{"type":2479,"value":3786},{"type":2464,"tag":2744,"props":4664,"children":4665},{"style":2838},[4666],{"type":2479,"value":3664},{"type":2464,"tag":2744,"props":4668,"children":4669},{"style":2847},[4670],{"type":2479,"value":2900},{"type":2464,"tag":2744,"props":4672,"children":4673},{"class":2746,"line":3287},[4674],{"type":2464,"tag":2744,"props":4675,"children":4676},{"emptyLinePlaceholder":3687},[4677],{"type":2479,"value":3690},{"type":2464,"tag":2744,"props":4679,"children":4680},{"class":2746,"line":3296},[4681,4685],{"type":2464,"tag":2744,"props":4682,"children":4683},{"style":2815},[4684],{"type":2479,"value":3976},{"type":2464,"tag":2744,"props":4686,"children":4687},{"style":2832},[4688],{"type":2479,"value":3981},{"type":2464,"tag":2744,"props":4690,"children":4691},{"class":2746,"line":3327},[4692,4696],{"type":2464,"tag":2744,"props":4693,"children":4694},{"style":2838},[4695],{"type":2479,"value":2895},{"type":2464,"tag":2744,"props":4697,"children":4698},{"style":2832},[4699],{"type":2479,"value":2900},{"type":2464,"tag":3594,"props":4701,"children":4703},{"id":4702},"useedgedbquerybuilder",[4704],{"type":2479,"value":4705},"useEdgeDbQueryBuilder",{"type":2464,"tag":2465,"props":4707,"children":4708},{},[4709,4714,4716,4723,4725,4730],{"type":2464,"tag":2726,"props":4710,"children":4712},{"className":4711},[],[4713],{"type":2479,"value":4705},{"type":2479,"value":4715}," exposes the generated ",{"type":2464,"tag":2485,"props":4717,"children":4720},{"href":4718,"rel":4719},"https:\u002F\u002Fwww.edgedb.com\u002Fdocs\u002Fclients\u002Fjs\u002Fquerybuilder",[2489],[4721],{"type":2479,"value":4722},"query builder",{"type":2479,"value":4724}," directly to your ",{"type":2464,"tag":2726,"props":4726,"children":4728},{"className":4727},[],[4729],{"type":2479,"value":3590},{"type":2479,"value":4731}," context.",{"type":2464,"tag":2734,"props":4733,"children":4735},{"className":3112,"code":4734,"language":3114,"meta":2459,"style":2459},"\u002F\u002F server\u002Fapi\u002Fblogpost\u002F[id].ts\nimport { defineEventHandler, getRouterParams } from 'h3'\n\nexport default defineEventHandler(async (req) => {\n  const params = getRouterParams(req)\n  const id = params.id\n  const client = useEdgeDb()\n  const e = useEdgeDbQueryBuilder()\n\n  const blogPostQuery = e.select(\n    e.BlogPost,\n    (blogPost) => ({\n      id: true,\n      title: true,\n      description: true,\n      filter_single: { id }\n    })\n  )\n\n  const blogPost = await blogPostQuery.run(client)\n\n  return blogpost\n})\n",[4736],{"type":2464,"tag":2726,"props":4737,"children":4738},{"__ignoreMap":2459},[4739,4746,4789,4796,4839,4870,4897,4920,4945,4952,4986,5007,5036,5056,5076,5096,5121,5133,5141,5148,5192,5199,5210],{"type":2464,"tag":2744,"props":4740,"children":4741},{"class":2746,"line":2445},[4742],{"type":2464,"tag":2744,"props":4743,"children":4744},{"style":3203},[4745],{"type":2479,"value":3631},{"type":2464,"tag":2744,"props":4747,"children":4748},{"class":2746,"line":2441},[4749,4753,4757,4761,4765,4769,4773,4777,4781,4785],{"type":2464,"tag":2744,"props":4750,"children":4751},{"style":2815},[4752],{"type":2479,"value":3639},{"type":2464,"tag":2744,"props":4754,"children":4755},{"style":2838},[4756],{"type":2479,"value":3644},{"type":2464,"tag":2744,"props":4758,"children":4759},{"style":2832},[4760],{"type":2479,"value":3649},{"type":2464,"tag":2744,"props":4762,"children":4763},{"style":2838},[4764],{"type":2479,"value":3654},{"type":2464,"tag":2744,"props":4766,"children":4767},{"style":2832},[4768],{"type":2479,"value":3659},{"type":2464,"tag":2744,"props":4770,"children":4771},{"style":2838},[4772],{"type":2479,"value":3664},{"type":2464,"tag":2744,"props":4774,"children":4775},{"style":2815},[4776],{"type":2479,"value":3669},{"type":2464,"tag":2744,"props":4778,"children":4779},{"style":2838},[4780],{"type":2479,"value":3311},{"type":2464,"tag":2744,"props":4782,"children":4783},{"style":2756},[4784],{"type":2479,"value":3594},{"type":2464,"tag":2744,"props":4786,"children":4787},{"style":2838},[4788],{"type":2479,"value":2878},{"type":2464,"tag":2744,"props":4790,"children":4791},{"class":2746,"line":2863},[4792],{"type":2464,"tag":2744,"props":4793,"children":4794},{"emptyLinePlaceholder":3687},[4795],{"type":2479,"value":3690},{"type":2464,"tag":2744,"props":4797,"children":4798},{"class":2746,"line":2881},[4799,4803,4807,4811,4815,4819,4823,4827,4831,4835],{"type":2464,"tag":2744,"props":4800,"children":4801},{"style":2815},[4802],{"type":2479,"value":2818},{"type":2464,"tag":2744,"props":4804,"children":4805},{"style":2815},[4806],{"type":2479,"value":2823},{"type":2464,"tag":2744,"props":4808,"children":4809},{"style":2826},[4810],{"type":2479,"value":3649},{"type":2464,"tag":2744,"props":4812,"children":4813},{"style":2832},[4814],{"type":2479,"value":2835},{"type":2464,"tag":2744,"props":4816,"children":4817},{"style":3712},[4818],{"type":2479,"value":3715},{"type":2464,"tag":2744,"props":4820,"children":4821},{"style":2838},[4822],{"type":2479,"value":3720},{"type":2464,"tag":2744,"props":4824,"children":4825},{"style":3723},[4826],{"type":2479,"value":3726},{"type":2464,"tag":2744,"props":4828,"children":4829},{"style":2838},[4830],{"type":2479,"value":3731},{"type":2464,"tag":2744,"props":4832,"children":4833},{"style":3712},[4834],{"type":2479,"value":3736},{"type":2464,"tag":2744,"props":4836,"children":4837},{"style":2838},[4838],{"type":2479,"value":3197},{"type":2464,"tag":2744,"props":4840,"children":4841},{"class":2746,"line":2453},[4842,4846,4850,4854,4858,4862,4866],{"type":2464,"tag":2744,"props":4843,"children":4844},{"style":3712},[4845],{"type":2479,"value":3748},{"type":2464,"tag":2744,"props":4847,"children":4848},{"style":2832},[4849],{"type":2479,"value":3753},{"type":2464,"tag":2744,"props":4851,"children":4852},{"style":2838},[4853],{"type":2479,"value":3758},{"type":2464,"tag":2744,"props":4855,"children":4856},{"style":2826},[4857],{"type":2479,"value":3659},{"type":2464,"tag":2744,"props":4859,"children":4860},{"style":2847},[4861],{"type":2479,"value":2835},{"type":2464,"tag":2744,"props":4863,"children":4864},{"style":2832},[4865],{"type":2479,"value":3726},{"type":2464,"tag":2744,"props":4867,"children":4868},{"style":2847},[4869],{"type":2479,"value":2900},{"type":2464,"tag":2744,"props":4871,"children":4872},{"class":2746,"line":3046},[4873,4877,4881,4885,4889,4893],{"type":2464,"tag":2744,"props":4874,"children":4875},{"style":3712},[4876],{"type":2479,"value":3748},{"type":2464,"tag":2744,"props":4878,"children":4879},{"style":2832},[4880],{"type":2479,"value":3786},{"type":2464,"tag":2744,"props":4882,"children":4883},{"style":2838},[4884],{"type":2479,"value":3758},{"type":2464,"tag":2744,"props":4886,"children":4887},{"style":2832},[4888],{"type":2479,"value":3753},{"type":2464,"tag":2744,"props":4890,"children":4891},{"style":2838},[4892],{"type":2479,"value":2610},{"type":2464,"tag":2744,"props":4894,"children":4895},{"style":2832},[4896],{"type":2479,"value":3803},{"type":2464,"tag":2744,"props":4898,"children":4899},{"class":2746,"line":3064},[4900,4904,4908,4912,4916],{"type":2464,"tag":2744,"props":4901,"children":4902},{"style":3712},[4903],{"type":2479,"value":3748},{"type":2464,"tag":2744,"props":4905,"children":4906},{"style":2832},[4907],{"type":2479,"value":3815},{"type":2464,"tag":2744,"props":4909,"children":4910},{"style":2838},[4911],{"type":2479,"value":3758},{"type":2464,"tag":2744,"props":4913,"children":4914},{"style":2826},[4915],{"type":2479,"value":3824},{"type":2464,"tag":2744,"props":4917,"children":4918},{"style":2847},[4919],{"type":2479,"value":3829},{"type":2464,"tag":2744,"props":4921,"children":4922},{"class":2746,"line":3076},[4923,4927,4932,4936,4941],{"type":2464,"tag":2744,"props":4924,"children":4925},{"style":3712},[4926],{"type":2479,"value":3748},{"type":2464,"tag":2744,"props":4928,"children":4929},{"style":2832},[4930],{"type":2479,"value":4931}," e",{"type":2464,"tag":2744,"props":4933,"children":4934},{"style":2838},[4935],{"type":2479,"value":3758},{"type":2464,"tag":2744,"props":4937,"children":4938},{"style":2826},[4939],{"type":2479,"value":4940}," useEdgeDbQueryBuilder",{"type":2464,"tag":2744,"props":4942,"children":4943},{"style":2847},[4944],{"type":2479,"value":3829},{"type":2464,"tag":2744,"props":4946,"children":4947},{"class":2746,"line":2437},[4948],{"type":2464,"tag":2744,"props":4949,"children":4950},{"emptyLinePlaceholder":3687},[4951],{"type":2479,"value":3690},{"type":2464,"tag":2744,"props":4953,"children":4954},{"class":2746,"line":3287},[4955,4959,4964,4968,4972,4976,4981],{"type":2464,"tag":2744,"props":4956,"children":4957},{"style":3712},[4958],{"type":2479,"value":3748},{"type":2464,"tag":2744,"props":4960,"children":4961},{"style":2832},[4962],{"type":2479,"value":4963}," blogPostQuery",{"type":2464,"tag":2744,"props":4965,"children":4966},{"style":2838},[4967],{"type":2479,"value":3758},{"type":2464,"tag":2744,"props":4969,"children":4970},{"style":2832},[4971],{"type":2479,"value":4931},{"type":2464,"tag":2744,"props":4973,"children":4974},{"style":2838},[4975],{"type":2479,"value":2610},{"type":2464,"tag":2744,"props":4977,"children":4978},{"style":2826},[4979],{"type":2479,"value":4980},"select",{"type":2464,"tag":2744,"props":4982,"children":4983},{"style":2847},[4984],{"type":2479,"value":4985},"(\n",{"type":2464,"tag":2744,"props":4987,"children":4988},{"class":2746,"line":3296},[4989,4994,4998,5003],{"type":2464,"tag":2744,"props":4990,"children":4991},{"style":2832},[4992],{"type":2479,"value":4993},"    e",{"type":2464,"tag":2744,"props":4995,"children":4996},{"style":2838},[4997],{"type":2479,"value":2610},{"type":2464,"tag":2744,"props":4999,"children":5000},{"style":2832},[5001],{"type":2479,"value":5002},"BlogPost",{"type":2464,"tag":2744,"props":5004,"children":5005},{"style":2838},[5006],{"type":2479,"value":3180},{"type":2464,"tag":2744,"props":5008,"children":5009},{"class":2746,"line":3327},[5010,5015,5020,5024,5028,5032],{"type":2464,"tag":2744,"props":5011,"children":5012},{"style":2838},[5013],{"type":2479,"value":5014},"    (",{"type":2464,"tag":2744,"props":5016,"children":5017},{"style":3723},[5018],{"type":2479,"value":5019},"blogPost",{"type":2464,"tag":2744,"props":5021,"children":5022},{"style":2838},[5023],{"type":2479,"value":3731},{"type":2464,"tag":2744,"props":5025,"children":5026},{"style":3712},[5027],{"type":2479,"value":3736},{"type":2464,"tag":2744,"props":5029,"children":5030},{"style":2847},[5031],{"type":2479,"value":3720},{"type":2464,"tag":2744,"props":5033,"children":5034},{"style":2838},[5035],{"type":2479,"value":2841},{"type":2464,"tag":2744,"props":5037,"children":5038},{"class":2746,"line":3336},[5039,5044,5048,5052],{"type":2464,"tag":2744,"props":5040,"children":5041},{"style":2847},[5042],{"type":2479,"value":5043},"      id",{"type":2464,"tag":2744,"props":5045,"children":5046},{"style":2838},[5047],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":5049,"children":5050},{"style":3221},[5051],{"type":2479,"value":3224},{"type":2464,"tag":2744,"props":5053,"children":5054},{"style":2838},[5055],{"type":2479,"value":3180},{"type":2464,"tag":2744,"props":5057,"children":5058},{"class":2746,"line":3366},[5059,5064,5068,5072],{"type":2464,"tag":2744,"props":5060,"children":5061},{"style":2847},[5062],{"type":2479,"value":5063},"      title",{"type":2464,"tag":2744,"props":5065,"children":5066},{"style":2838},[5067],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":5069,"children":5070},{"style":3221},[5071],{"type":2479,"value":3224},{"type":2464,"tag":2744,"props":5073,"children":5074},{"style":2838},[5075],{"type":2479,"value":3180},{"type":2464,"tag":2744,"props":5077,"children":5078},{"class":2746,"line":3375},[5079,5084,5088,5092],{"type":2464,"tag":2744,"props":5080,"children":5081},{"style":2847},[5082],{"type":2479,"value":5083},"      description",{"type":2464,"tag":2744,"props":5085,"children":5086},{"style":2838},[5087],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":5089,"children":5090},{"style":3221},[5091],{"type":2479,"value":3224},{"type":2464,"tag":2744,"props":5093,"children":5094},{"style":2838},[5095],{"type":2479,"value":3180},{"type":2464,"tag":2744,"props":5097,"children":5098},{"class":2746,"line":3404},[5099,5104,5108,5112,5116],{"type":2464,"tag":2744,"props":5100,"children":5101},{"style":2847},[5102],{"type":2479,"value":5103},"      filter_single",{"type":2464,"tag":2744,"props":5105,"children":5106},{"style":2838},[5107],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":5109,"children":5110},{"style":2838},[5111],{"type":2479,"value":3644},{"type":2464,"tag":2744,"props":5113,"children":5114},{"style":2832},[5115],{"type":2479,"value":3786},{"type":2464,"tag":2744,"props":5117,"children":5118},{"style":2838},[5119],{"type":2479,"value":5120}," }\n",{"type":2464,"tag":2744,"props":5122,"children":5123},{"class":2746,"line":3413},[5124,5129],{"type":2464,"tag":2744,"props":5125,"children":5126},{"style":2838},[5127],{"type":2479,"value":5128},"    }",{"type":2464,"tag":2744,"props":5130,"children":5131},{"style":2847},[5132],{"type":2479,"value":2900},{"type":2464,"tag":2744,"props":5134,"children":5135},{"class":2746,"line":3434},[5136],{"type":2464,"tag":2744,"props":5137,"children":5138},{"style":2847},[5139],{"type":2479,"value":5140},"  )\n",{"type":2464,"tag":2744,"props":5142,"children":5143},{"class":2746,"line":3443},[5144],{"type":2464,"tag":2744,"props":5145,"children":5146},{"emptyLinePlaceholder":3687},[5147],{"type":2479,"value":3690},{"type":2464,"tag":2744,"props":5149,"children":5150},{"class":2746,"line":3464},[5151,5155,5159,5163,5167,5171,5175,5180,5184,5188],{"type":2464,"tag":2744,"props":5152,"children":5153},{"style":3712},[5154],{"type":2479,"value":3748},{"type":2464,"tag":2744,"props":5156,"children":5157},{"style":2832},[5158],{"type":2479,"value":4286},{"type":2464,"tag":2744,"props":5160,"children":5161},{"style":2838},[5162],{"type":2479,"value":3758},{"type":2464,"tag":2744,"props":5164,"children":5165},{"style":2815},[5166],{"type":2479,"value":3857},{"type":2464,"tag":2744,"props":5168,"children":5169},{"style":2832},[5170],{"type":2479,"value":4963},{"type":2464,"tag":2744,"props":5172,"children":5173},{"style":2838},[5174],{"type":2479,"value":2610},{"type":2464,"tag":2744,"props":5176,"children":5177},{"style":2826},[5178],{"type":2479,"value":5179},"run",{"type":2464,"tag":2744,"props":5181,"children":5182},{"style":2847},[5183],{"type":2479,"value":2835},{"type":2464,"tag":2744,"props":5185,"children":5186},{"style":2832},[5187],{"type":2479,"value":4642},{"type":2464,"tag":2744,"props":5189,"children":5190},{"style":2847},[5191],{"type":2479,"value":2900},{"type":2464,"tag":2744,"props":5193,"children":5194},{"class":2746,"line":3473},[5195],{"type":2464,"tag":2744,"props":5196,"children":5197},{"emptyLinePlaceholder":3687},[5198],{"type":2479,"value":3690},{"type":2464,"tag":2744,"props":5200,"children":5201},{"class":2746,"line":3494},[5202,5206],{"type":2464,"tag":2744,"props":5203,"children":5204},{"style":2815},[5205],{"type":2479,"value":3976},{"type":2464,"tag":2744,"props":5207,"children":5208},{"style":2832},[5209],{"type":2479,"value":3981},{"type":2464,"tag":2744,"props":5211,"children":5212},{"class":2746,"line":3503},[5213,5217],{"type":2464,"tag":2744,"props":5214,"children":5215},{"style":2838},[5216],{"type":2479,"value":2895},{"type":2464,"tag":2744,"props":5218,"children":5219},{"style":2832},[5220],{"type":2479,"value":2900},{"type":2464,"tag":3594,"props":5222,"children":5224},{"id":5223},"typings",[5225],{"type":2479,"value":5226},"Typings",{"type":2464,"tag":2465,"props":5228,"children":5229},{},[5230,5232,5238],{"type":2479,"value":5231},"All the interfaces generated by EdgeDB are available through imports via ",{"type":2464,"tag":2726,"props":5233,"children":5235},{"className":5234},[],[5236],{"type":2479,"value":5237},"#edgedb\u002Finterfaces",{"type":2479,"value":2610},{"type":2464,"tag":2734,"props":5240,"children":5244},{"className":5241,"code":5242,"language":5243,"meta":2459,"style":2459},"language-vue shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","\u003Cscript setup lang=\"ts\">\nimport type { BlogPost } from '#edgedb\u002Finterfaces'\n\ndefineProps\u003C{ blogPost: BlogPost }>()\n\u003C\u002Fscript>\n","vue",[5245],{"type":2464,"tag":2726,"props":5246,"children":5247},{"__ignoreMap":2459},[5248,5294,5335,5342,5376],{"type":2464,"tag":2744,"props":5249,"children":5250},{"class":2746,"line":2445},[5251,5256,5261,5266,5271,5276,5281,5285,5289],{"type":2464,"tag":2744,"props":5252,"children":5253},{"style":2838},[5254],{"type":2479,"value":5255},"\u003C",{"type":2464,"tag":2744,"props":5257,"children":5258},{"style":2847},[5259],{"type":2479,"value":5260},"script",{"type":2464,"tag":2744,"props":5262,"children":5263},{"style":3712},[5264],{"type":2479,"value":5265}," setup",{"type":2464,"tag":2744,"props":5267,"children":5268},{"style":3712},[5269],{"type":2479,"value":5270}," lang",{"type":2464,"tag":2744,"props":5272,"children":5273},{"style":2838},[5274],{"type":2479,"value":5275},"=",{"type":2464,"tag":2744,"props":5277,"children":5278},{"style":2838},[5279],{"type":2479,"value":5280},"\"",{"type":2464,"tag":2744,"props":5282,"children":5283},{"style":2756},[5284],{"type":2479,"value":3316},{"type":2464,"tag":2744,"props":5286,"children":5287},{"style":2838},[5288],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":5290,"children":5291},{"style":2838},[5292],{"type":2479,"value":5293},">\n",{"type":2464,"tag":2744,"props":5295,"children":5296},{"class":2746,"line":2441},[5297,5301,5306,5310,5315,5319,5323,5327,5331],{"type":2464,"tag":2744,"props":5298,"children":5299},{"style":2815},[5300],{"type":2479,"value":3639},{"type":2464,"tag":2744,"props":5302,"children":5303},{"style":2815},[5304],{"type":2479,"value":5305}," type",{"type":2464,"tag":2744,"props":5307,"children":5308},{"style":2838},[5309],{"type":2479,"value":3644},{"type":2464,"tag":2744,"props":5311,"children":5312},{"style":2832},[5313],{"type":2479,"value":5314}," BlogPost",{"type":2464,"tag":2744,"props":5316,"children":5317},{"style":2838},[5318],{"type":2479,"value":3664},{"type":2464,"tag":2744,"props":5320,"children":5321},{"style":2815},[5322],{"type":2479,"value":3669},{"type":2464,"tag":2744,"props":5324,"children":5325},{"style":2838},[5326],{"type":2479,"value":3311},{"type":2464,"tag":2744,"props":5328,"children":5329},{"style":2756},[5330],{"type":2479,"value":5237},{"type":2464,"tag":2744,"props":5332,"children":5333},{"style":2838},[5334],{"type":2479,"value":2878},{"type":2464,"tag":2744,"props":5336,"children":5337},{"class":2746,"line":2863},[5338],{"type":2464,"tag":2744,"props":5339,"children":5340},{"emptyLinePlaceholder":3687},[5341],{"type":2479,"value":3690},{"type":2464,"tag":2744,"props":5343,"children":5344},{"class":2746,"line":2881},[5345,5350,5355,5359,5363,5367,5372],{"type":2464,"tag":2744,"props":5346,"children":5347},{"style":2826},[5348],{"type":2479,"value":5349},"defineProps",{"type":2464,"tag":2744,"props":5351,"children":5352},{"style":2838},[5353],{"type":2479,"value":5354},"\u003C{",{"type":2464,"tag":2744,"props":5356,"children":5357},{"style":2847},[5358],{"type":2479,"value":4286},{"type":2464,"tag":2744,"props":5360,"children":5361},{"style":2838},[5362],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":5364,"children":5365},{"style":2750},[5366],{"type":2479,"value":5314},{"type":2464,"tag":2744,"props":5368,"children":5369},{"style":2838},[5370],{"type":2479,"value":5371}," }>",{"type":2464,"tag":2744,"props":5373,"children":5374},{"style":2832},[5375],{"type":2479,"value":3829},{"type":2464,"tag":2744,"props":5377,"children":5378},{"class":2746,"line":2453},[5379,5384,5388],{"type":2464,"tag":2744,"props":5380,"children":5381},{"style":2838},[5382],{"type":2479,"value":5383},"\u003C\u002F",{"type":2464,"tag":2744,"props":5385,"children":5386},{"style":2847},[5387],{"type":2479,"value":5260},{"type":2464,"tag":2744,"props":5389,"children":5390},{"style":2838},[5391],{"type":2479,"value":5293},{"type":2464,"tag":2547,"props":5393,"children":5395},{"id":5394},"authentification",[5396],{"type":2479,"value":5397},"Authentification",{"type":2464,"tag":2465,"props":5399,"children":5400},{},[5401,5403,5409,5411,5416],{"type":2479,"value":5402},"You can use EdgeDB as a server-only database exposed via ",{"type":2464,"tag":2726,"props":5404,"children":5406},{"className":5405},[],[5407],{"type":2479,"value":5408},"server\u002Fapi",{"type":2479,"value":5410}," endpoints and ",{"type":2464,"tag":2726,"props":5412,"children":5414},{"className":5413},[],[5415],{"type":2479,"value":762},{"type":2479,"value":5417}," on the client, avoiding the need for authentication.",{"type":2464,"tag":2465,"props":5419,"children":5420},{},[5421],{"type":2479,"value":5422},"But in some projects, you might want your users to login so they have an identity on the server as well. Luckily, the module got you covered.",{"type":2464,"tag":5424,"props":5425,"children":5426},"blockquote",{},[5427],{"type":2464,"tag":2465,"props":5428,"children":5429},{},[5430,5432,5439],{"type":2479,"value":5431},"Before going through these auth installation steps, we strongly recommend you to read the ",{"type":2464,"tag":2485,"props":5433,"children":5436},{"href":5434,"rel":5435},"https:\u002F\u002Fwww.edgedb.com\u002Fdocs\u002Fguides\u002Fauth\u002Findex#auth",[2489],[5437],{"type":2479,"value":5438},"EdgeDB Auth",{"type":2479,"value":5440}," documentation.",{"type":2464,"tag":3594,"props":5442,"children":5444},{"id":5443},"enable-the-auth-option-in-your-nuxt-configuration",[5445,5447,5453],{"type":2479,"value":5446},"Enable the ",{"type":2464,"tag":2726,"props":5448,"children":5450},{"className":5449},[],[5451],{"type":2479,"value":5452},"auth",{"type":2479,"value":5454}," option in your Nuxt configuration",{"type":2464,"tag":2734,"props":5456,"children":5459},{"className":5457,"code":5458,"language":3316,"meta":2459,"style":2459},"language-ts shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","export default defineNuxtConfig({\n  modules: ['nuxt-edgedb-module'],\n  edgedb: {\n    auth: true\n  }\n})\n",[5460],{"type":2464,"tag":2726,"props":5461,"children":5462},{"__ignoreMap":2459},[5463,5486,5521,5537,5553,5560],{"type":2464,"tag":2744,"props":5464,"children":5465},{"class":2746,"line":2445},[5466,5470,5474,5478,5482],{"type":2464,"tag":2744,"props":5467,"children":5468},{"style":2815},[5469],{"type":2479,"value":2818},{"type":2464,"tag":2744,"props":5471,"children":5472},{"style":2815},[5473],{"type":2479,"value":2823},{"type":2464,"tag":2744,"props":5475,"children":5476},{"style":2826},[5477],{"type":2479,"value":2829},{"type":2464,"tag":2744,"props":5479,"children":5480},{"style":2832},[5481],{"type":2479,"value":2835},{"type":2464,"tag":2744,"props":5483,"children":5484},{"style":2838},[5485],{"type":2479,"value":2841},{"type":2464,"tag":2744,"props":5487,"children":5488},{"class":2746,"line":2441},[5489,5493,5497,5501,5505,5509,5513,5517],{"type":2464,"tag":2744,"props":5490,"children":5491},{"style":2847},[5492],{"type":2479,"value":2850},{"type":2464,"tag":2744,"props":5494,"children":5495},{"style":2838},[5496],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":5498,"children":5499},{"style":2832},[5500],{"type":2479,"value":3157},{"type":2464,"tag":2744,"props":5502,"children":5503},{"style":2838},[5504],{"type":2479,"value":3162},{"type":2464,"tag":2744,"props":5506,"children":5507},{"style":2756},[5508],{"type":2479,"value":2415},{"type":2464,"tag":2744,"props":5510,"children":5511},{"style":2838},[5512],{"type":2479,"value":3162},{"type":2464,"tag":2744,"props":5514,"children":5515},{"style":2832},[5516],{"type":2479,"value":3175},{"type":2464,"tag":2744,"props":5518,"children":5519},{"style":2838},[5520],{"type":2479,"value":3180},{"type":2464,"tag":2744,"props":5522,"children":5523},{"class":2746,"line":2863},[5524,5529,5533],{"type":2464,"tag":2744,"props":5525,"children":5526},{"style":2847},[5527],{"type":2479,"value":5528},"  edgedb",{"type":2464,"tag":2744,"props":5530,"children":5531},{"style":2838},[5532],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":5534,"children":5535},{"style":2838},[5536],{"type":2479,"value":3197},{"type":2464,"tag":2744,"props":5538,"children":5539},{"class":2746,"line":2881},[5540,5544,5548],{"type":2464,"tag":2744,"props":5541,"children":5542},{"style":2847},[5543],{"type":2479,"value":3509},{"type":2464,"tag":2744,"props":5545,"children":5546},{"style":2838},[5547],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":5549,"children":5550},{"style":3221},[5551],{"type":2479,"value":5552}," true\n",{"type":2464,"tag":2744,"props":5554,"children":5555},{"class":2746,"line":2453},[5556],{"type":2464,"tag":2744,"props":5557,"children":5558},{"style":2838},[5559],{"type":2479,"value":3561},{"type":2464,"tag":2744,"props":5561,"children":5562},{"class":2746,"line":3046},[5563,5567],{"type":2464,"tag":2744,"props":5564,"children":5565},{"style":2838},[5566],{"type":2479,"value":2895},{"type":2464,"tag":2744,"props":5568,"children":5569},{"style":2832},[5570],{"type":2479,"value":2900},{"type":2464,"tag":3594,"props":5572,"children":5574},{"id":5573},"setup-edgedb-auth-in-your-schema",[5575],{"type":2479,"value":5576},"Setup EdgeDB Auth in your schema",{"type":2464,"tag":2465,"props":5578,"children":5579},{},[5580],{"type":2479,"value":5581},"In this example, you can notice:",{"type":2464,"tag":2553,"props":5583,"children":5584},{},[5585,5605,5616],{"type":2464,"tag":2557,"props":5586,"children":5587},{},[5588,5594,5596,5603],{"type":2464,"tag":2726,"props":5589,"children":5591},{"className":5590},[],[5592],{"type":2479,"value":5593},"global current_user",{"type":2479,"value":5595}," which defines a ",{"type":2464,"tag":2485,"props":5597,"children":5600},{"href":5598,"rel":5599},"https:\u002F\u002Fwww.edgedb.com\u002Fdocs\u002Fdatamodel\u002Fglobals",[2489],[5601],{"type":2479,"value":5602},"global property",{"type":2479,"value":5604}," linked to the client token identity.",{"type":2464,"tag":2557,"props":5606,"children":5607},{},[5608,5614],{"type":2464,"tag":2726,"props":5609,"children":5611},{"className":5610},[],[5612],{"type":2479,"value":5613},"type User",{"type":2479,"value":5615}," is the model if your user, you are free to change it, that can be done later on thanks to migrations.",{"type":2464,"tag":2557,"props":5617,"children":5618},{},[5619,5625,5627,5633,5635,5640],{"type":2464,"tag":2726,"props":5620,"children":5622},{"className":5621},[],[5623],{"type":2479,"value":5624},"access policy author_has_full_access",{"type":2479,"value":5626}," & ",{"type":2464,"tag":2726,"props":5628,"children":5630},{"className":5629},[],[5631],{"type":2479,"value":5632},"using (.author ?= global current_user);",{"type":2479,"value":5634}," defines the policy for the users to only have access to their own ",{"type":2464,"tag":2726,"props":5636,"children":5638},{"className":5637},[],[5639],{"type":2479,"value":5002},{"type":2479,"value":2610},{"type":2464,"tag":2734,"props":5642,"children":5644},{"className":4030,"code":5643,"language":4032,"meta":2459,"style":2459},"\u002F\u002F dbschema\u002Fdefault.esdl\nusing extension auth;\n\nmodule default {\n  global current_user := (\n    assert_single((\n      select User { id, name }\n      filter .identity = global ext::auth::ClientTokenIdentity\n    ))\n  );\n\n  type User {\n    required name: str;\n    required identity: ext::auth::Identity;\n  }\n\n  type BlogPost {\n    property content: str {\n      default := 'My blog post content.';\n    };\n    property title: str {\n      default := 'My blog post';\n    };\n    required author: User;\n\n    access policy author_has_full_access\n      allow all\n      using (.author ?= global current_user);\n\n    access policy others_read_only\n      allow select;\n  }\n}\n",[5645],{"type":2464,"tag":2726,"props":5646,"children":5647},{"__ignoreMap":2459},[5648,5656,5664,5671,5679,5687,5695,5703,5711,5719,5727,5734,5742,5750,5758,5765,5772,5780,5788,5796,5804,5812,5820,5827,5835,5842,5850,5858,5867,5875,5884,5893,5901],{"type":2464,"tag":2744,"props":5649,"children":5650},{"class":2746,"line":2445},[5651],{"type":2464,"tag":2744,"props":5652,"children":5653},{},[5654],{"type":2479,"value":5655},"\u002F\u002F dbschema\u002Fdefault.esdl\n",{"type":2464,"tag":2744,"props":5657,"children":5658},{"class":2746,"line":2441},[5659],{"type":2464,"tag":2744,"props":5660,"children":5661},{},[5662],{"type":2479,"value":5663},"using extension auth;\n",{"type":2464,"tag":2744,"props":5665,"children":5666},{"class":2746,"line":2863},[5667],{"type":2464,"tag":2744,"props":5668,"children":5669},{"emptyLinePlaceholder":3687},[5670],{"type":2479,"value":3690},{"type":2464,"tag":2744,"props":5672,"children":5673},{"class":2746,"line":2881},[5674],{"type":2464,"tag":2744,"props":5675,"children":5676},{},[5677],{"type":2479,"value":5678},"module default {\n",{"type":2464,"tag":2744,"props":5680,"children":5681},{"class":2746,"line":2453},[5682],{"type":2464,"tag":2744,"props":5683,"children":5684},{},[5685],{"type":2479,"value":5686},"  global current_user := (\n",{"type":2464,"tag":2744,"props":5688,"children":5689},{"class":2746,"line":3046},[5690],{"type":2464,"tag":2744,"props":5691,"children":5692},{},[5693],{"type":2479,"value":5694},"    assert_single((\n",{"type":2464,"tag":2744,"props":5696,"children":5697},{"class":2746,"line":3064},[5698],{"type":2464,"tag":2744,"props":5699,"children":5700},{},[5701],{"type":2479,"value":5702},"      select User { id, name }\n",{"type":2464,"tag":2744,"props":5704,"children":5705},{"class":2746,"line":3076},[5706],{"type":2464,"tag":2744,"props":5707,"children":5708},{},[5709],{"type":2479,"value":5710},"      filter .identity = global ext::auth::ClientTokenIdentity\n",{"type":2464,"tag":2744,"props":5712,"children":5713},{"class":2746,"line":2437},[5714],{"type":2464,"tag":2744,"props":5715,"children":5716},{},[5717],{"type":2479,"value":5718},"    ))\n",{"type":2464,"tag":2744,"props":5720,"children":5721},{"class":2746,"line":3287},[5722],{"type":2464,"tag":2744,"props":5723,"children":5724},{},[5725],{"type":2479,"value":5726},"  );\n",{"type":2464,"tag":2744,"props":5728,"children":5729},{"class":2746,"line":3296},[5730],{"type":2464,"tag":2744,"props":5731,"children":5732},{"emptyLinePlaceholder":3687},[5733],{"type":2479,"value":3690},{"type":2464,"tag":2744,"props":5735,"children":5736},{"class":2746,"line":3327},[5737],{"type":2464,"tag":2744,"props":5738,"children":5739},{},[5740],{"type":2479,"value":5741},"  type User {\n",{"type":2464,"tag":2744,"props":5743,"children":5744},{"class":2746,"line":3336},[5745],{"type":2464,"tag":2744,"props":5746,"children":5747},{},[5748],{"type":2479,"value":5749},"    required name: str;\n",{"type":2464,"tag":2744,"props":5751,"children":5752},{"class":2746,"line":3366},[5753],{"type":2464,"tag":2744,"props":5754,"children":5755},{},[5756],{"type":2479,"value":5757},"    required identity: ext::auth::Identity;\n",{"type":2464,"tag":2744,"props":5759,"children":5760},{"class":2746,"line":3375},[5761],{"type":2464,"tag":2744,"props":5762,"children":5763},{},[5764],{"type":2479,"value":3561},{"type":2464,"tag":2744,"props":5766,"children":5767},{"class":2746,"line":3404},[5768],{"type":2464,"tag":2744,"props":5769,"children":5770},{"emptyLinePlaceholder":3687},[5771],{"type":2479,"value":3690},{"type":2464,"tag":2744,"props":5773,"children":5774},{"class":2746,"line":3413},[5775],{"type":2464,"tag":2744,"props":5776,"children":5777},{},[5778],{"type":2479,"value":5779},"  type BlogPost {\n",{"type":2464,"tag":2744,"props":5781,"children":5782},{"class":2746,"line":3434},[5783],{"type":2464,"tag":2744,"props":5784,"children":5785},{},[5786],{"type":2479,"value":5787},"    property content: str {\n",{"type":2464,"tag":2744,"props":5789,"children":5790},{"class":2746,"line":3443},[5791],{"type":2464,"tag":2744,"props":5792,"children":5793},{},[5794],{"type":2479,"value":5795},"      default := 'My blog post content.';\n",{"type":2464,"tag":2744,"props":5797,"children":5798},{"class":2746,"line":3464},[5799],{"type":2464,"tag":2744,"props":5800,"children":5801},{},[5802],{"type":2479,"value":5803},"    };\n",{"type":2464,"tag":2744,"props":5805,"children":5806},{"class":2746,"line":3473},[5807],{"type":2464,"tag":2744,"props":5808,"children":5809},{},[5810],{"type":2479,"value":5811},"    property title: str {\n",{"type":2464,"tag":2744,"props":5813,"children":5814},{"class":2746,"line":3494},[5815],{"type":2464,"tag":2744,"props":5816,"children":5817},{},[5818],{"type":2479,"value":5819},"      default := 'My blog post';\n",{"type":2464,"tag":2744,"props":5821,"children":5822},{"class":2746,"line":3503},[5823],{"type":2464,"tag":2744,"props":5824,"children":5825},{},[5826],{"type":2479,"value":5803},{"type":2464,"tag":2744,"props":5828,"children":5829},{"class":2746,"line":3525},[5830],{"type":2464,"tag":2744,"props":5831,"children":5832},{},[5833],{"type":2479,"value":5834},"    required author: User;\n",{"type":2464,"tag":2744,"props":5836,"children":5837},{"class":2746,"line":3534},[5838],{"type":2464,"tag":2744,"props":5839,"children":5840},{"emptyLinePlaceholder":3687},[5841],{"type":2479,"value":3690},{"type":2464,"tag":2744,"props":5843,"children":5844},{"class":2746,"line":3555},[5845],{"type":2464,"tag":2744,"props":5846,"children":5847},{},[5848],{"type":2479,"value":5849},"    access policy author_has_full_access\n",{"type":2464,"tag":2744,"props":5851,"children":5852},{"class":2746,"line":3564},[5853],{"type":2464,"tag":2744,"props":5854,"children":5855},{},[5856],{"type":2479,"value":5857},"      allow all\n",{"type":2464,"tag":2744,"props":5859,"children":5861},{"class":2746,"line":5860},28,[5862],{"type":2464,"tag":2744,"props":5863,"children":5864},{},[5865],{"type":2479,"value":5866},"      using (.author ?= global current_user);\n",{"type":2464,"tag":2744,"props":5868,"children":5870},{"class":2746,"line":5869},29,[5871],{"type":2464,"tag":2744,"props":5872,"children":5873},{"emptyLinePlaceholder":3687},[5874],{"type":2479,"value":3690},{"type":2464,"tag":2744,"props":5876,"children":5878},{"class":2746,"line":5877},30,[5879],{"type":2464,"tag":2744,"props":5880,"children":5881},{},[5882],{"type":2479,"value":5883},"    access policy others_read_only\n",{"type":2464,"tag":2744,"props":5885,"children":5887},{"class":2746,"line":5886},31,[5888],{"type":2464,"tag":2744,"props":5889,"children":5890},{},[5891],{"type":2479,"value":5892},"      allow select;\n",{"type":2464,"tag":2744,"props":5894,"children":5896},{"class":2746,"line":5895},32,[5897],{"type":2464,"tag":2744,"props":5898,"children":5899},{},[5900],{"type":2479,"value":3561},{"type":2464,"tag":2744,"props":5902,"children":5904},{"class":2746,"line":5903},33,[5905],{"type":2464,"tag":2744,"props":5906,"children":5907},{},[5908],{"type":2479,"value":5909},"}\n",{"type":2464,"tag":2465,"props":5911,"children":5912},{},[5913],{"type":2479,"value":5914},"You can edit this schema while your server is running and accept the prompted messages to auto-migrate.",{"type":2464,"tag":2465,"props":5916,"children":5917},{},[5918,5920,5926,5928,5934],{"type":2479,"value":5919},"If you are doing these edits while the server is off, you can run ",{"type":2464,"tag":2726,"props":5921,"children":5923},{"className":5922},[],[5924],{"type":2479,"value":5925},"edgedb migration create",{"type":2479,"value":5927}," and ",{"type":2464,"tag":2726,"props":5929,"children":5931},{"className":5930},[],[5932],{"type":2479,"value":5933},"edgedb migrate",{"type":2479,"value":2610},{"type":2464,"tag":3594,"props":5936,"children":5938},{"id":5937},"setup-edgedb-auth-in-your-server",[5939],{"type":2479,"value":5940},"Setup EdgeDB auth in your server",{"type":2464,"tag":2465,"props":5942,"children":5943},{},[5944],{"type":2479,"value":5945},"You will need to enable auth providers on your EdgeDB server.",{"type":2464,"tag":2465,"props":5947,"children":5948},{},[5949,5951,5956],{"type":2479,"value":5950},"That can be done in the ",{"type":2464,"tag":2726,"props":5952,"children":5954},{"className":5953},[],[5955],{"type":2479,"value":2543},{"type":2479,"value":5957}," tab through your DevTools.",{"type":2464,"tag":2465,"props":5959,"children":5960},{},[5961,5963,5969],{"type":2479,"value":5962},"Browse your database to ",{"type":2464,"tag":2726,"props":5964,"children":5966},{"className":5965},[],[5967],{"type":2479,"value":5968},"Auth Admin",{"type":2479,"value":5970}," and specify:",{"type":2464,"tag":2553,"props":5972,"children":5973},{},[5974,5983],{"type":2464,"tag":2557,"props":5975,"children":5976},{},[5977],{"type":2464,"tag":2726,"props":5978,"children":5980},{"className":5979},[],[5981],{"type":2479,"value":5982},"auth_signing_key",{"type":2464,"tag":2557,"props":5984,"children":5985},{},[5986],{"type":2464,"tag":2726,"props":5987,"children":5989},{"className":5988},[],[5990],{"type":2479,"value":5991},"allowed_redirect_urls",{"type":2464,"tag":2465,"props":5993,"children":5994},{},[5995,5997,6003],{"type":2479,"value":5996},"You must also enable some providers. You can start with ",{"type":2464,"tag":2726,"props":5998,"children":6000},{"className":5999},[],[6001],{"type":2479,"value":6002},"Email + Password",{"type":2479,"value":6004}," for instance.",{"type":2464,"tag":2465,"props":6006,"children":6007},{},[6008,6010,6016],{"type":2479,"value":6009},"If you enable ",{"type":2464,"tag":2726,"props":6011,"children":6013},{"className":6012},[],[6014],{"type":2479,"value":6015},"required_verification",{"type":2479,"value":6017},", you will need to configure a SMTP server for you EdgeDB instance.",{"type":2464,"tag":2465,"props":6019,"children":6020},{},[6021,6023,6030,6032,6039],{"type":2479,"value":6022},"You can find further instructions on how to use ",{"type":2464,"tag":2485,"props":6024,"children":6027},{"href":6025,"rel":6026},"https:\u002F\u002Fmailpit.axllent.org\u002Fdocs\u002Fconfiguration\u002F",[2489],[6028],{"type":2479,"value":6029},"Mailtrap",{"type":2479,"value":6031}," locally to try this feature ",{"type":2464,"tag":2485,"props":6033,"children":6036},{"href":6034,"rel":6035},"https:\u002F\u002Fwww.edgedb.com\u002Fdocs\u002Fguides\u002Fauth\u002Findex#email-and-password",[2489],[6037],{"type":2479,"value":6038},"here",{"type":2479,"value":2610},{"type":2464,"tag":5424,"props":6041,"children":6042},{},[6043],{"type":2464,"tag":2465,"props":6044,"children":6045},{},[6046],{"type":2479,"value":6047},"Do not forget these steps must also be performed on your production environment.",{"type":2464,"tag":3594,"props":6049,"children":6051},{"id":6050},"use-authentication-components-on-the-client",[6052],{"type":2479,"value":6053},"Use authentication components on the client",{"type":2464,"tag":2465,"props":6055,"children":6056},{},[6057],{"type":2479,"value":6058},"As you enabled auth in your config, the module injected these components in your project:",{"type":2464,"tag":2553,"props":6060,"children":6061},{},[6062,6075,6088,6101,6114,6127,6140],{"type":2464,"tag":2557,"props":6063,"children":6064},{},[6065],{"type":2464,"tag":2485,"props":6066,"children":6068},{"href":6067},".\u002Fsrc\u002Fruntime\u002Fcomponents\u002FEdgeDbAuthEmailLogin.vue",[6069],{"type":2464,"tag":2726,"props":6070,"children":6072},{"className":6071},[],[6073],{"type":2479,"value":6074},"EdgeDbAuthEmailLogin",{"type":2464,"tag":2557,"props":6076,"children":6077},{},[6078],{"type":2464,"tag":2485,"props":6079,"children":6081},{"href":6080},".\u002Fsrc\u002Fruntime\u002Fcomponents\u002FEdgeDbAuthEmailVerify.vue",[6082],{"type":2464,"tag":2726,"props":6083,"children":6085},{"className":6084},[],[6086],{"type":2479,"value":6087},"EdgeDbAuthEmailVerify",{"type":2464,"tag":2557,"props":6089,"children":6090},{},[6091],{"type":2464,"tag":2485,"props":6092,"children":6094},{"href":6093},".\u002Fsrc\u002Fruntime\u002Fcomponents\u002FEdgeDbAuthLogout.vue",[6095],{"type":2464,"tag":2726,"props":6096,"children":6098},{"className":6097},[],[6099],{"type":2479,"value":6100},"EdgeDbAuthLogout",{"type":2464,"tag":2557,"props":6102,"children":6103},{},[6104],{"type":2464,"tag":2485,"props":6105,"children":6107},{"href":6106},".\u002Fsrc\u002Fruntime\u002Fcomponents\u002FEdgeDbAuthResetPassword.vue",[6108],{"type":2464,"tag":2726,"props":6109,"children":6111},{"className":6110},[],[6112],{"type":2479,"value":6113},"EdgeDbAuthResetPassword",{"type":2464,"tag":2557,"props":6115,"children":6116},{},[6117],{"type":2464,"tag":2485,"props":6118,"children":6120},{"href":6119},".\u002Fsrc\u002Fruntime\u002Fcomponents\u002FEdgeDbAuthSendPasswordReset.vue",[6121],{"type":2464,"tag":2726,"props":6122,"children":6124},{"className":6123},[],[6125],{"type":2479,"value":6126},"EdgeDbAuthSendPasswordReset",{"type":2464,"tag":2557,"props":6128,"children":6129},{},[6130],{"type":2464,"tag":2485,"props":6131,"children":6133},{"href":6132},".\u002Fsrc\u002Fruntime\u002Fcomponents\u002FEdgeDbAuthSignup.vue",[6134],{"type":2464,"tag":2726,"props":6135,"children":6137},{"className":6136},[],[6138],{"type":2479,"value":6139},"EdgeDbAuthSignup",{"type":2464,"tag":2557,"props":6141,"children":6142},{},[6143],{"type":2464,"tag":2485,"props":6144,"children":6146},{"href":6145},".\u002Fsrc\u002Fruntime\u002Fcomponents\u002FEdgeDbAuthProviders.vue",[6147],{"type":2464,"tag":2726,"props":6148,"children":6150},{"className":6149},[],[6151],{"type":2479,"value":6152},"EdgeDbAuthProviders",{"type":2464,"tag":2465,"props":6154,"children":6155},{},[6156],{"type":2479,"value":6157},"You can look at the sources of these components to learn more about their props.",{"type":2464,"tag":2465,"props":6159,"children":6160},{},[6161],{"type":2479,"value":6162},"They all are unstyled components that only expose the necessary logic to achieve a smooth authentication flow.",{"type":2464,"tag":2734,"props":6164,"children":6166},{"className":5241,"code":6165,"language":5243,"meta":2459,"style":2459},"\u003Ctemplate>\n  \u003CEdgeDbAuthEmailLogin\n    v-slot=\"{ email, updateEmail, password, updatePassword, submit, loading }\"\n    redirect-to=\"\u002F\"\n  >\n    \u003Cdiv>\n      \u003Cinput\n        type=\"email\"\n        :value=\"email\"\n        placeholder=\"your@email.com\"\n        @change=\"(e) => updateEmail(e.target.value)\"\n      >\n      \u003Cinput\n        type=\"password\"\n        :value=\"password\"\n        placeholder=\"password\"\n        @change=\"(e) => updatePassword(e.target.value)\"\n      >\n      \u003Cbutton\n        type=\"button\"\n        @click=\"(e) => !loading && submit()\"\n      >\n        {{ loading ? 'Loading' : 'Login' }}\n      \u003C\u002Fbutton>\n    \u003C\u002Fdiv>\n  \u003C\u002FEdgeDbAuthEmailLogin>\n\u003C\u002Ftemplate>\n",[6167],{"type":2464,"tag":2726,"props":6168,"children":6169},{"__ignoreMap":2459},[6170,6186,6199,6279,6304,6312,6329,6342,6366,6390,6415,6440,6448,6459,6482,6505,6528,6552,6559,6571,6595,6620,6627,6635,6651,6667,6683],{"type":2464,"tag":2744,"props":6171,"children":6172},{"class":2746,"line":2445},[6173,6177,6182],{"type":2464,"tag":2744,"props":6174,"children":6175},{"style":2838},[6176],{"type":2479,"value":5255},{"type":2464,"tag":2744,"props":6178,"children":6179},{"style":2847},[6180],{"type":2479,"value":6181},"template",{"type":2464,"tag":2744,"props":6183,"children":6184},{"style":2838},[6185],{"type":2479,"value":5293},{"type":2464,"tag":2744,"props":6187,"children":6188},{"class":2746,"line":2441},[6189,6194],{"type":2464,"tag":2744,"props":6190,"children":6191},{"style":2838},[6192],{"type":2479,"value":6193},"  \u003C",{"type":2464,"tag":2744,"props":6195,"children":6196},{"style":2847},[6197],{"type":2479,"value":6198},"EdgeDbAuthEmailLogin\n",{"type":2464,"tag":2744,"props":6200,"children":6201},{"class":2746,"line":2863},[6202,6207,6211,6215,6220,6225,6229,6234,6238,6243,6247,6252,6256,6261,6265,6270,6274],{"type":2464,"tag":2744,"props":6203,"children":6204},{"style":3712},[6205],{"type":2479,"value":6206},"    v-slot",{"type":2464,"tag":2744,"props":6208,"children":6209},{"style":2838},[6210],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":6212,"children":6213},{"style":2838},[6214],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":6216,"children":6217},{"style":2838},[6218],{"type":2479,"value":6219},"{ ",{"type":2464,"tag":2744,"props":6221,"children":6222},{"style":2832},[6223],{"type":2479,"value":6224},"email",{"type":2464,"tag":2744,"props":6226,"children":6227},{"style":2838},[6228],{"type":2479,"value":2596},{"type":2464,"tag":2744,"props":6230,"children":6231},{"style":2832},[6232],{"type":2479,"value":6233},"updateEmail",{"type":2464,"tag":2744,"props":6235,"children":6236},{"style":2838},[6237],{"type":2479,"value":2596},{"type":2464,"tag":2744,"props":6239,"children":6240},{"style":2832},[6241],{"type":2479,"value":6242},"password",{"type":2464,"tag":2744,"props":6244,"children":6245},{"style":2838},[6246],{"type":2479,"value":2596},{"type":2464,"tag":2744,"props":6248,"children":6249},{"style":2832},[6250],{"type":2479,"value":6251},"updatePassword",{"type":2464,"tag":2744,"props":6253,"children":6254},{"style":2838},[6255],{"type":2479,"value":2596},{"type":2464,"tag":2744,"props":6257,"children":6258},{"style":2832},[6259],{"type":2479,"value":6260},"submit",{"type":2464,"tag":2744,"props":6262,"children":6263},{"style":2838},[6264],{"type":2479,"value":2596},{"type":2464,"tag":2744,"props":6266,"children":6267},{"style":2832},[6268],{"type":2479,"value":6269},"loading",{"type":2464,"tag":2744,"props":6271,"children":6272},{"style":2838},[6273],{"type":2479,"value":3664},{"type":2464,"tag":2744,"props":6275,"children":6276},{"style":2838},[6277],{"type":2479,"value":6278},"\"\n",{"type":2464,"tag":2744,"props":6280,"children":6281},{"class":2746,"line":2881},[6282,6287,6291,6295,6300],{"type":2464,"tag":2744,"props":6283,"children":6284},{"style":3712},[6285],{"type":2479,"value":6286},"    redirect-to",{"type":2464,"tag":2744,"props":6288,"children":6289},{"style":2838},[6290],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":6292,"children":6293},{"style":2838},[6294],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":6296,"children":6297},{"style":2756},[6298],{"type":2479,"value":6299},"\u002F",{"type":2464,"tag":2744,"props":6301,"children":6302},{"style":2838},[6303],{"type":2479,"value":6278},{"type":2464,"tag":2744,"props":6305,"children":6306},{"class":2746,"line":2453},[6307],{"type":2464,"tag":2744,"props":6308,"children":6309},{"style":2838},[6310],{"type":2479,"value":6311},"  >\n",{"type":2464,"tag":2744,"props":6313,"children":6314},{"class":2746,"line":3046},[6315,6320,6325],{"type":2464,"tag":2744,"props":6316,"children":6317},{"style":2838},[6318],{"type":2479,"value":6319},"    \u003C",{"type":2464,"tag":2744,"props":6321,"children":6322},{"style":2847},[6323],{"type":2479,"value":6324},"div",{"type":2464,"tag":2744,"props":6326,"children":6327},{"style":2838},[6328],{"type":2479,"value":5293},{"type":2464,"tag":2744,"props":6330,"children":6331},{"class":2746,"line":3064},[6332,6337],{"type":2464,"tag":2744,"props":6333,"children":6334},{"style":2838},[6335],{"type":2479,"value":6336},"      \u003C",{"type":2464,"tag":2744,"props":6338,"children":6339},{"style":2847},[6340],{"type":2479,"value":6341},"input\n",{"type":2464,"tag":2744,"props":6343,"children":6344},{"class":2746,"line":3076},[6345,6350,6354,6358,6362],{"type":2464,"tag":2744,"props":6346,"children":6347},{"style":3712},[6348],{"type":2479,"value":6349},"        type",{"type":2464,"tag":2744,"props":6351,"children":6352},{"style":2838},[6353],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":6355,"children":6356},{"style":2838},[6357],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":6359,"children":6360},{"style":2756},[6361],{"type":2479,"value":6224},{"type":2464,"tag":2744,"props":6363,"children":6364},{"style":2838},[6365],{"type":2479,"value":6278},{"type":2464,"tag":2744,"props":6367,"children":6368},{"class":2746,"line":2437},[6369,6374,6378,6382,6386],{"type":2464,"tag":2744,"props":6370,"children":6371},{"style":3712},[6372],{"type":2479,"value":6373},"        :value",{"type":2464,"tag":2744,"props":6375,"children":6376},{"style":2838},[6377],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":6379,"children":6380},{"style":2838},[6381],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":6383,"children":6384},{"style":2756},[6385],{"type":2479,"value":6224},{"type":2464,"tag":2744,"props":6387,"children":6388},{"style":2838},[6389],{"type":2479,"value":6278},{"type":2464,"tag":2744,"props":6391,"children":6392},{"class":2746,"line":3287},[6393,6398,6402,6406,6411],{"type":2464,"tag":2744,"props":6394,"children":6395},{"style":3712},[6396],{"type":2479,"value":6397},"        placeholder",{"type":2464,"tag":2744,"props":6399,"children":6400},{"style":2838},[6401],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":6403,"children":6404},{"style":2838},[6405],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":6407,"children":6408},{"style":2756},[6409],{"type":2479,"value":6410},"your@email.com",{"type":2464,"tag":2744,"props":6412,"children":6413},{"style":2838},[6414],{"type":2479,"value":6278},{"type":2464,"tag":2744,"props":6416,"children":6417},{"class":2746,"line":3296},[6418,6423,6427,6431,6436],{"type":2464,"tag":2744,"props":6419,"children":6420},{"style":3712},[6421],{"type":2479,"value":6422},"        @change",{"type":2464,"tag":2744,"props":6424,"children":6425},{"style":2838},[6426],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":6428,"children":6429},{"style":2838},[6430],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":6432,"children":6433},{"style":2756},[6434],{"type":2479,"value":6435},"(e) => updateEmail(e.target.value)",{"type":2464,"tag":2744,"props":6437,"children":6438},{"style":2838},[6439],{"type":2479,"value":6278},{"type":2464,"tag":2744,"props":6441,"children":6442},{"class":2746,"line":3327},[6443],{"type":2464,"tag":2744,"props":6444,"children":6445},{"style":2838},[6446],{"type":2479,"value":6447},"      >\n",{"type":2464,"tag":2744,"props":6449,"children":6450},{"class":2746,"line":3336},[6451,6455],{"type":2464,"tag":2744,"props":6452,"children":6453},{"style":2838},[6454],{"type":2479,"value":6336},{"type":2464,"tag":2744,"props":6456,"children":6457},{"style":2847},[6458],{"type":2479,"value":6341},{"type":2464,"tag":2744,"props":6460,"children":6461},{"class":2746,"line":3366},[6462,6466,6470,6474,6478],{"type":2464,"tag":2744,"props":6463,"children":6464},{"style":3712},[6465],{"type":2479,"value":6349},{"type":2464,"tag":2744,"props":6467,"children":6468},{"style":2838},[6469],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":6471,"children":6472},{"style":2838},[6473],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":6475,"children":6476},{"style":2756},[6477],{"type":2479,"value":6242},{"type":2464,"tag":2744,"props":6479,"children":6480},{"style":2838},[6481],{"type":2479,"value":6278},{"type":2464,"tag":2744,"props":6483,"children":6484},{"class":2746,"line":3375},[6485,6489,6493,6497,6501],{"type":2464,"tag":2744,"props":6486,"children":6487},{"style":3712},[6488],{"type":2479,"value":6373},{"type":2464,"tag":2744,"props":6490,"children":6491},{"style":2838},[6492],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":6494,"children":6495},{"style":2838},[6496],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":6498,"children":6499},{"style":2756},[6500],{"type":2479,"value":6242},{"type":2464,"tag":2744,"props":6502,"children":6503},{"style":2838},[6504],{"type":2479,"value":6278},{"type":2464,"tag":2744,"props":6506,"children":6507},{"class":2746,"line":3404},[6508,6512,6516,6520,6524],{"type":2464,"tag":2744,"props":6509,"children":6510},{"style":3712},[6511],{"type":2479,"value":6397},{"type":2464,"tag":2744,"props":6513,"children":6514},{"style":2838},[6515],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":6517,"children":6518},{"style":2838},[6519],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":6521,"children":6522},{"style":2756},[6523],{"type":2479,"value":6242},{"type":2464,"tag":2744,"props":6525,"children":6526},{"style":2838},[6527],{"type":2479,"value":6278},{"type":2464,"tag":2744,"props":6529,"children":6530},{"class":2746,"line":3413},[6531,6535,6539,6543,6548],{"type":2464,"tag":2744,"props":6532,"children":6533},{"style":3712},[6534],{"type":2479,"value":6422},{"type":2464,"tag":2744,"props":6536,"children":6537},{"style":2838},[6538],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":6540,"children":6541},{"style":2838},[6542],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":6544,"children":6545},{"style":2756},[6546],{"type":2479,"value":6547},"(e) => updatePassword(e.target.value)",{"type":2464,"tag":2744,"props":6549,"children":6550},{"style":2838},[6551],{"type":2479,"value":6278},{"type":2464,"tag":2744,"props":6553,"children":6554},{"class":2746,"line":3434},[6555],{"type":2464,"tag":2744,"props":6556,"children":6557},{"style":2838},[6558],{"type":2479,"value":6447},{"type":2464,"tag":2744,"props":6560,"children":6561},{"class":2746,"line":3443},[6562,6566],{"type":2464,"tag":2744,"props":6563,"children":6564},{"style":2838},[6565],{"type":2479,"value":6336},{"type":2464,"tag":2744,"props":6567,"children":6568},{"style":2847},[6569],{"type":2479,"value":6570},"button\n",{"type":2464,"tag":2744,"props":6572,"children":6573},{"class":2746,"line":3464},[6574,6578,6582,6586,6591],{"type":2464,"tag":2744,"props":6575,"children":6576},{"style":3712},[6577],{"type":2479,"value":6349},{"type":2464,"tag":2744,"props":6579,"children":6580},{"style":2838},[6581],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":6583,"children":6584},{"style":2838},[6585],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":6587,"children":6588},{"style":2756},[6589],{"type":2479,"value":6590},"button",{"type":2464,"tag":2744,"props":6592,"children":6593},{"style":2838},[6594],{"type":2479,"value":6278},{"type":2464,"tag":2744,"props":6596,"children":6597},{"class":2746,"line":3473},[6598,6603,6607,6611,6616],{"type":2464,"tag":2744,"props":6599,"children":6600},{"style":3712},[6601],{"type":2479,"value":6602},"        @click",{"type":2464,"tag":2744,"props":6604,"children":6605},{"style":2838},[6606],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":6608,"children":6609},{"style":2838},[6610],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":6612,"children":6613},{"style":2756},[6614],{"type":2479,"value":6615},"(e) => !loading && submit()",{"type":2464,"tag":2744,"props":6617,"children":6618},{"style":2838},[6619],{"type":2479,"value":6278},{"type":2464,"tag":2744,"props":6621,"children":6622},{"class":2746,"line":3494},[6623],{"type":2464,"tag":2744,"props":6624,"children":6625},{"style":2838},[6626],{"type":2479,"value":6447},{"type":2464,"tag":2744,"props":6628,"children":6629},{"class":2746,"line":3503},[6630],{"type":2464,"tag":2744,"props":6631,"children":6632},{"style":2832},[6633],{"type":2479,"value":6634},"        {{ loading ? 'Loading' : 'Login' }}\n",{"type":2464,"tag":2744,"props":6636,"children":6637},{"class":2746,"line":3525},[6638,6643,6647],{"type":2464,"tag":2744,"props":6639,"children":6640},{"style":2838},[6641],{"type":2479,"value":6642},"      \u003C\u002F",{"type":2464,"tag":2744,"props":6644,"children":6645},{"style":2847},[6646],{"type":2479,"value":6590},{"type":2464,"tag":2744,"props":6648,"children":6649},{"style":2838},[6650],{"type":2479,"value":5293},{"type":2464,"tag":2744,"props":6652,"children":6653},{"class":2746,"line":3534},[6654,6659,6663],{"type":2464,"tag":2744,"props":6655,"children":6656},{"style":2838},[6657],{"type":2479,"value":6658},"    \u003C\u002F",{"type":2464,"tag":2744,"props":6660,"children":6661},{"style":2847},[6662],{"type":2479,"value":6324},{"type":2464,"tag":2744,"props":6664,"children":6665},{"style":2838},[6666],{"type":2479,"value":5293},{"type":2464,"tag":2744,"props":6668,"children":6669},{"class":2746,"line":3555},[6670,6675,6679],{"type":2464,"tag":2744,"props":6671,"children":6672},{"style":2838},[6673],{"type":2479,"value":6674},"  \u003C\u002F",{"type":2464,"tag":2744,"props":6676,"children":6677},{"style":2847},[6678],{"type":2479,"value":6074},{"type":2464,"tag":2744,"props":6680,"children":6681},{"style":2838},[6682],{"type":2479,"value":5293},{"type":2464,"tag":2744,"props":6684,"children":6685},{"class":2746,"line":3564},[6686,6690,6694],{"type":2464,"tag":2744,"props":6687,"children":6688},{"style":2838},[6689],{"type":2479,"value":5383},{"type":2464,"tag":2744,"props":6691,"children":6692},{"style":2847},[6693],{"type":2479,"value":6181},{"type":2464,"tag":2744,"props":6695,"children":6696},{"style":2838},[6697],{"type":2479,"value":5293},{"type":2464,"tag":2465,"props":6699,"children":6700},{},[6701],{"type":2479,"value":6702},"Of course, you can totally rewrite any of these components locally to implement your own authentication flow.",{"type":2464,"tag":3594,"props":6704,"children":6706},{"id":6705},"oauth",[6707],{"type":2479,"value":2678},{"type":2464,"tag":2465,"props":6709,"children":6710},{},[6711,6713,6719],{"type":2479,"value":6712},"If you want to use OAuth, you will have to enable it in your ",{"type":2464,"tag":2726,"props":6714,"children":6716},{"className":6715},[],[6717],{"type":2479,"value":6718},"nuxt.config",{"type":2479,"value":2855},{"type":2464,"tag":2734,"props":6721,"children":6723},{"className":3112,"code":6722,"language":3114,"meta":2459,"style":2459},"export default defineNuxtConfig({\n  edgeDb: {\n    oauth: true\n  }\n})\n",[6724],{"type":2464,"tag":2726,"props":6725,"children":6726},{"__ignoreMap":2459},[6727,6750,6765,6780,6787],{"type":2464,"tag":2744,"props":6728,"children":6729},{"class":2746,"line":2445},[6730,6734,6738,6742,6746],{"type":2464,"tag":2744,"props":6731,"children":6732},{"style":2815},[6733],{"type":2479,"value":2818},{"type":2464,"tag":2744,"props":6735,"children":6736},{"style":2815},[6737],{"type":2479,"value":2823},{"type":2464,"tag":2744,"props":6739,"children":6740},{"style":2826},[6741],{"type":2479,"value":2829},{"type":2464,"tag":2744,"props":6743,"children":6744},{"style":2832},[6745],{"type":2479,"value":2835},{"type":2464,"tag":2744,"props":6747,"children":6748},{"style":2838},[6749],{"type":2479,"value":2841},{"type":2464,"tag":2744,"props":6751,"children":6752},{"class":2746,"line":2441},[6753,6757,6761],{"type":2464,"tag":2744,"props":6754,"children":6755},{"style":2847},[6756],{"type":2479,"value":3188},{"type":2464,"tag":2744,"props":6758,"children":6759},{"style":2838},[6760],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":6762,"children":6763},{"style":2838},[6764],{"type":2479,"value":3197},{"type":2464,"tag":2744,"props":6766,"children":6767},{"class":2746,"line":2863},[6768,6772,6776],{"type":2464,"tag":2744,"props":6769,"children":6770},{"style":2847},[6771],{"type":2479,"value":3540},{"type":2464,"tag":2744,"props":6773,"children":6774},{"style":2838},[6775],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":6777,"children":6778},{"style":3221},[6779],{"type":2479,"value":5552},{"type":2464,"tag":2744,"props":6781,"children":6782},{"class":2746,"line":2881},[6783],{"type":2464,"tag":2744,"props":6784,"children":6785},{"style":2838},[6786],{"type":2479,"value":3561},{"type":2464,"tag":2744,"props":6788,"children":6789},{"class":2746,"line":2453},[6790,6794],{"type":2464,"tag":2744,"props":6791,"children":6792},{"style":2838},[6793],{"type":2479,"value":2895},{"type":2464,"tag":2744,"props":6795,"children":6796},{"style":2832},[6797],{"type":2479,"value":2900},{"type":2464,"tag":2465,"props":6799,"children":6800},{},[6801],{"type":2479,"value":6802},"That will inject two new components to your app:",{"type":2464,"tag":2553,"props":6804,"children":6805},{},[6806,6819],{"type":2464,"tag":2557,"props":6807,"children":6808},{},[6809],{"type":2464,"tag":2485,"props":6810,"children":6812},{"href":6811},".\u002Fsrc\u002Fruntime\u002Fcomponents\u002FEdgeDbOAuthButton.vue",[6813],{"type":2464,"tag":2726,"props":6814,"children":6816},{"className":6815},[],[6817],{"type":2479,"value":6818},"EdgeDbOAuthButton",{"type":2464,"tag":2557,"props":6820,"children":6821},{},[6822],{"type":2464,"tag":2485,"props":6823,"children":6825},{"href":6824},".\u002Fsrc\u002Fruntime\u002Fcomponents\u002FEdgeDbOAuthCallback.vue",[6826],{"type":2464,"tag":2726,"props":6827,"children":6829},{"className":6828},[],[6830],{"type":2479,"value":6831},"EdgeDbOAuthCallback",{"type":2464,"tag":2465,"props":6833,"children":6834},{},[6835,6837,6843],{"type":2479,"value":6836},"EdgeDB currently supports ",{"type":2464,"tag":2485,"props":6838,"children":6841},{"href":6839,"rel":6840},"https:\u002F\u002Fwww.edgedb.com\u002Fdocs\u002Fguides\u002Fauth\u002Foauth#oauth",[2489],[6842],{"type":2479,"value":2678},{"type":2479,"value":6844}," for the following providers:",{"type":2464,"tag":2553,"props":6846,"children":6847},{},[6848,6853,6858,6863],{"type":2464,"tag":2557,"props":6849,"children":6850},{},[6851],{"type":2479,"value":6852},"Apple",{"type":2464,"tag":2557,"props":6854,"children":6855},{},[6856],{"type":2479,"value":6857},"Azure (Microsoft)",{"type":2464,"tag":2557,"props":6859,"children":6860},{},[6861],{"type":2479,"value":6862},"GitHub",{"type":2464,"tag":2557,"props":6864,"children":6865},{},[6866],{"type":2479,"value":6867},"Google",{"type":2464,"tag":2465,"props":6869,"children":6870},{},[6871],{"type":2479,"value":6872},"In order to get OAuth working, you will have to visit your EdgeDB Instance UI, via the Nuxt DevTools.",{"type":2464,"tag":2465,"props":6874,"children":6875},{},[6876],{"type":2479,"value":6877},"Browse to your database and visit the \"Auth Admin\" tab.",{"type":2464,"tag":2465,"props":6879,"children":6880},{},[6881,6883,6889,6890,6896],{"type":2479,"value":6882},"In your list of providers, you can then add any provider you want and configure the necessary keys (usually client ",{"type":2464,"tag":2726,"props":6884,"children":6886},{"className":6885},[],[6887],{"type":2479,"value":6888},"appid",{"type":2479,"value":5927},{"type":2464,"tag":2726,"props":6891,"children":6893},{"className":6892},[],[6894],{"type":2479,"value":6895},"secret",{"type":2479,"value":6897},").",{"type":2464,"tag":5424,"props":6899,"children":6900},{},[6901],{"type":2464,"tag":2465,"props":6902,"children":6903},{},[6904],{"type":2479,"value":6905},"Do not forget to set the callback url of your provider to the one listed at the top of your EdgeDB Auth Admin.",{"type":2464,"tag":2465,"props":6907,"children":6908},{},[6909],{"type":2479,"value":6910},"Then, you can then create a simple OAuth button in your app like this:",{"type":2464,"tag":2734,"props":6912,"children":6914},{"className":5241,"code":6913,"language":5243,"meta":2459,"style":2459},"\u003Ctemplate>\n  \u003C!-- Gives access to all available auth providers -->\n  \u003CEdgeDbAuthProviders v-slot=\"{ oAuthProviders: providers }\">\n    \u003C!-- Create a OAuth button behavior from a provider name -->\n    \u003CEdgeDbOAuthButton\n      v-for=\"provider of providers\"\n      :key=\"provider.name\"\n      v-slot=\"{ redirect }\"\n      :provider=\"provider.name\"\n    >\n      \u003C!-- Call `redirect` from the OAuthButton -->\n      \u003Cbutton @click=\"() => redirect()\">\n        {{ provider.display_name }}\n      \u003C\u002Fbutton>\n    \u003C\u002FEdgeDbOAuthButton>\n  \u003C\u002FEdgeDbAuthProviders>\n\u003C\u002Ftemplate>\n",[6915],{"type":2464,"tag":2726,"props":6916,"children":6917},{"__ignoreMap":2459},[6918,6933,6941,6996,7004,7016,7050,7088,7121,7156,7164,7172,7209,7217,7232,7247,7262],{"type":2464,"tag":2744,"props":6919,"children":6920},{"class":2746,"line":2445},[6921,6925,6929],{"type":2464,"tag":2744,"props":6922,"children":6923},{"style":2838},[6924],{"type":2479,"value":5255},{"type":2464,"tag":2744,"props":6926,"children":6927},{"style":2847},[6928],{"type":2479,"value":6181},{"type":2464,"tag":2744,"props":6930,"children":6931},{"style":2838},[6932],{"type":2479,"value":5293},{"type":2464,"tag":2744,"props":6934,"children":6935},{"class":2746,"line":2441},[6936],{"type":2464,"tag":2744,"props":6937,"children":6938},{"style":3203},[6939],{"type":2479,"value":6940},"  \u003C!-- Gives access to all available auth providers -->\n",{"type":2464,"tag":2744,"props":6942,"children":6943},{"class":2746,"line":2863},[6944,6948,6952,6957,6961,6965,6969,6974,6979,6984,6988,6992],{"type":2464,"tag":2744,"props":6945,"children":6946},{"style":2838},[6947],{"type":2479,"value":6193},{"type":2464,"tag":2744,"props":6949,"children":6950},{"style":2847},[6951],{"type":2479,"value":6152},{"type":2464,"tag":2744,"props":6953,"children":6954},{"style":3712},[6955],{"type":2479,"value":6956}," v-slot",{"type":2464,"tag":2744,"props":6958,"children":6959},{"style":2838},[6960],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":6962,"children":6963},{"style":2838},[6964],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":6966,"children":6967},{"style":2838},[6968],{"type":2479,"value":6219},{"type":2464,"tag":2744,"props":6970,"children":6971},{"style":2847},[6972],{"type":2479,"value":6973},"oAuthProviders",{"type":2464,"tag":2744,"props":6975,"children":6976},{"style":2838},[6977],{"type":2479,"value":6978},": ",{"type":2464,"tag":2744,"props":6980,"children":6981},{"style":2832},[6982],{"type":2479,"value":6983},"providers",{"type":2464,"tag":2744,"props":6985,"children":6986},{"style":2838},[6987],{"type":2479,"value":3664},{"type":2464,"tag":2744,"props":6989,"children":6990},{"style":2838},[6991],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":6993,"children":6994},{"style":2838},[6995],{"type":2479,"value":5293},{"type":2464,"tag":2744,"props":6997,"children":6998},{"class":2746,"line":2881},[6999],{"type":2464,"tag":2744,"props":7000,"children":7001},{"style":3203},[7002],{"type":2479,"value":7003},"    \u003C!-- Create a OAuth button behavior from a provider name -->\n",{"type":2464,"tag":2744,"props":7005,"children":7006},{"class":2746,"line":2453},[7007,7011],{"type":2464,"tag":2744,"props":7008,"children":7009},{"style":2838},[7010],{"type":2479,"value":6319},{"type":2464,"tag":2744,"props":7012,"children":7013},{"style":2847},[7014],{"type":2479,"value":7015},"EdgeDbOAuthButton\n",{"type":2464,"tag":2744,"props":7017,"children":7018},{"class":2746,"line":3046},[7019,7024,7028,7032,7037,7042,7046],{"type":2464,"tag":2744,"props":7020,"children":7021},{"style":2815},[7022],{"type":2479,"value":7023},"      v-for",{"type":2464,"tag":2744,"props":7025,"children":7026},{"style":2838},[7027],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":7029,"children":7030},{"style":2838},[7031],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":7033,"children":7034},{"style":2832},[7035],{"type":2479,"value":7036},"provider",{"type":2464,"tag":2744,"props":7038,"children":7039},{"style":2838},[7040],{"type":2479,"value":7041}," of ",{"type":2464,"tag":2744,"props":7043,"children":7044},{"style":2832},[7045],{"type":2479,"value":6983},{"type":2464,"tag":2744,"props":7047,"children":7048},{"style":2838},[7049],{"type":2479,"value":6278},{"type":2464,"tag":2744,"props":7051,"children":7052},{"class":2746,"line":3064},[7053,7058,7063,7067,7071,7075,7079,7084],{"type":2464,"tag":2744,"props":7054,"children":7055},{"style":2838},[7056],{"type":2479,"value":7057},"      :",{"type":2464,"tag":2744,"props":7059,"children":7060},{"style":3712},[7061],{"type":2479,"value":7062},"key",{"type":2464,"tag":2744,"props":7064,"children":7065},{"style":2838},[7066],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":7068,"children":7069},{"style":2838},[7070],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":7072,"children":7073},{"style":2832},[7074],{"type":2479,"value":7036},{"type":2464,"tag":2744,"props":7076,"children":7077},{"style":2838},[7078],{"type":2479,"value":2610},{"type":2464,"tag":2744,"props":7080,"children":7081},{"style":2832},[7082],{"type":2479,"value":7083},"name",{"type":2464,"tag":2744,"props":7085,"children":7086},{"style":2838},[7087],{"type":2479,"value":6278},{"type":2464,"tag":2744,"props":7089,"children":7090},{"class":2746,"line":3076},[7091,7096,7100,7104,7108,7113,7117],{"type":2464,"tag":2744,"props":7092,"children":7093},{"style":3712},[7094],{"type":2479,"value":7095},"      v-slot",{"type":2464,"tag":2744,"props":7097,"children":7098},{"style":2838},[7099],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":7101,"children":7102},{"style":2838},[7103],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":7105,"children":7106},{"style":2838},[7107],{"type":2479,"value":6219},{"type":2464,"tag":2744,"props":7109,"children":7110},{"style":2832},[7111],{"type":2479,"value":7112},"redirect",{"type":2464,"tag":2744,"props":7114,"children":7115},{"style":2838},[7116],{"type":2479,"value":3664},{"type":2464,"tag":2744,"props":7118,"children":7119},{"style":2838},[7120],{"type":2479,"value":6278},{"type":2464,"tag":2744,"props":7122,"children":7123},{"class":2746,"line":2437},[7124,7128,7132,7136,7140,7144,7148,7152],{"type":2464,"tag":2744,"props":7125,"children":7126},{"style":2838},[7127],{"type":2479,"value":7057},{"type":2464,"tag":2744,"props":7129,"children":7130},{"style":3712},[7131],{"type":2479,"value":7036},{"type":2464,"tag":2744,"props":7133,"children":7134},{"style":2838},[7135],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":7137,"children":7138},{"style":2838},[7139],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":7141,"children":7142},{"style":2832},[7143],{"type":2479,"value":7036},{"type":2464,"tag":2744,"props":7145,"children":7146},{"style":2838},[7147],{"type":2479,"value":2610},{"type":2464,"tag":2744,"props":7149,"children":7150},{"style":2832},[7151],{"type":2479,"value":7083},{"type":2464,"tag":2744,"props":7153,"children":7154},{"style":2838},[7155],{"type":2479,"value":6278},{"type":2464,"tag":2744,"props":7157,"children":7158},{"class":2746,"line":3287},[7159],{"type":2464,"tag":2744,"props":7160,"children":7161},{"style":2838},[7162],{"type":2479,"value":7163},"    >\n",{"type":2464,"tag":2744,"props":7165,"children":7166},{"class":2746,"line":3296},[7167],{"type":2464,"tag":2744,"props":7168,"children":7169},{"style":3203},[7170],{"type":2479,"value":7171},"      \u003C!-- Call `redirect` from the OAuthButton -->\n",{"type":2464,"tag":2744,"props":7173,"children":7174},{"class":2746,"line":3327},[7175,7179,7183,7188,7192,7196,7201,7205],{"type":2464,"tag":2744,"props":7176,"children":7177},{"style":2838},[7178],{"type":2479,"value":6336},{"type":2464,"tag":2744,"props":7180,"children":7181},{"style":2847},[7182],{"type":2479,"value":6590},{"type":2464,"tag":2744,"props":7184,"children":7185},{"style":3712},[7186],{"type":2479,"value":7187}," @click",{"type":2464,"tag":2744,"props":7189,"children":7190},{"style":2838},[7191],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":7193,"children":7194},{"style":2838},[7195],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":7197,"children":7198},{"style":2756},[7199],{"type":2479,"value":7200},"() => redirect()",{"type":2464,"tag":2744,"props":7202,"children":7203},{"style":2838},[7204],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":7206,"children":7207},{"style":2838},[7208],{"type":2479,"value":5293},{"type":2464,"tag":2744,"props":7210,"children":7211},{"class":2746,"line":3336},[7212],{"type":2464,"tag":2744,"props":7213,"children":7214},{"style":2832},[7215],{"type":2479,"value":7216},"        {{ provider.display_name }}\n",{"type":2464,"tag":2744,"props":7218,"children":7219},{"class":2746,"line":3366},[7220,7224,7228],{"type":2464,"tag":2744,"props":7221,"children":7222},{"style":2838},[7223],{"type":2479,"value":6642},{"type":2464,"tag":2744,"props":7225,"children":7226},{"style":2847},[7227],{"type":2479,"value":6590},{"type":2464,"tag":2744,"props":7229,"children":7230},{"style":2838},[7231],{"type":2479,"value":5293},{"type":2464,"tag":2744,"props":7233,"children":7234},{"class":2746,"line":3375},[7235,7239,7243],{"type":2464,"tag":2744,"props":7236,"children":7237},{"style":2838},[7238],{"type":2479,"value":6658},{"type":2464,"tag":2744,"props":7240,"children":7241},{"style":2847},[7242],{"type":2479,"value":6818},{"type":2464,"tag":2744,"props":7244,"children":7245},{"style":2838},[7246],{"type":2479,"value":5293},{"type":2464,"tag":2744,"props":7248,"children":7249},{"class":2746,"line":3404},[7250,7254,7258],{"type":2464,"tag":2744,"props":7251,"children":7252},{"style":2838},[7253],{"type":2479,"value":6674},{"type":2464,"tag":2744,"props":7255,"children":7256},{"style":2847},[7257],{"type":2479,"value":6152},{"type":2464,"tag":2744,"props":7259,"children":7260},{"style":2838},[7261],{"type":2479,"value":5293},{"type":2464,"tag":2744,"props":7263,"children":7264},{"class":2746,"line":3413},[7265,7269,7273],{"type":2464,"tag":2744,"props":7266,"children":7267},{"style":2838},[7268],{"type":2479,"value":5383},{"type":2464,"tag":2744,"props":7270,"children":7271},{"style":2847},[7272],{"type":2479,"value":6181},{"type":2464,"tag":2744,"props":7274,"children":7275},{"style":2838},[7276],{"type":2479,"value":5293},{"type":2464,"tag":2465,"props":7278,"children":7279},{},[7280,7282,7288],{"type":2479,"value":7281},"You will also need a call back page, that can use ",{"type":2464,"tag":2726,"props":7283,"children":7285},{"className":7284},[],[7286],{"type":2479,"value":7287},"EdgeDbAuthCallback",{"type":2479,"value":2610},{"type":2464,"tag":2734,"props":7290,"children":7292},{"className":5241,"code":7291,"language":5243,"meta":2459,"style":2459},"\u003Ctemplate>\n  \u003CEdgeDbOAuthCallback\n    v-slot=\"{ loading }\"\n    redirect-to=\"\u002F\"\n  >\n    \u003Cdiv>\n      \u003Ch2>OAuth callback\u003C\u002Fh2>\n      \u003Cp v-if=\"loading\">\n        Loading...\n      \u003C\u002Fp>\n      \u003C\u002FUCard>\n    \u003C\u002Fdiv>\n  \u003C\u002FEdgeDbOAuthCallback>\n\u003C\u002Ftemplate>\n",[7293],{"type":2464,"tag":2726,"props":7294,"children":7295},{"__ignoreMap":2459},[7296,7311,7323,7354,7377,7384,7399,7432,7468,7476,7491,7507,7522,7537],{"type":2464,"tag":2744,"props":7297,"children":7298},{"class":2746,"line":2445},[7299,7303,7307],{"type":2464,"tag":2744,"props":7300,"children":7301},{"style":2838},[7302],{"type":2479,"value":5255},{"type":2464,"tag":2744,"props":7304,"children":7305},{"style":2847},[7306],{"type":2479,"value":6181},{"type":2464,"tag":2744,"props":7308,"children":7309},{"style":2838},[7310],{"type":2479,"value":5293},{"type":2464,"tag":2744,"props":7312,"children":7313},{"class":2746,"line":2441},[7314,7318],{"type":2464,"tag":2744,"props":7315,"children":7316},{"style":2838},[7317],{"type":2479,"value":6193},{"type":2464,"tag":2744,"props":7319,"children":7320},{"style":2847},[7321],{"type":2479,"value":7322},"EdgeDbOAuthCallback\n",{"type":2464,"tag":2744,"props":7324,"children":7325},{"class":2746,"line":2863},[7326,7330,7334,7338,7342,7346,7350],{"type":2464,"tag":2744,"props":7327,"children":7328},{"style":3712},[7329],{"type":2479,"value":6206},{"type":2464,"tag":2744,"props":7331,"children":7332},{"style":2838},[7333],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":7335,"children":7336},{"style":2838},[7337],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":7339,"children":7340},{"style":2838},[7341],{"type":2479,"value":6219},{"type":2464,"tag":2744,"props":7343,"children":7344},{"style":2832},[7345],{"type":2479,"value":6269},{"type":2464,"tag":2744,"props":7347,"children":7348},{"style":2838},[7349],{"type":2479,"value":3664},{"type":2464,"tag":2744,"props":7351,"children":7352},{"style":2838},[7353],{"type":2479,"value":6278},{"type":2464,"tag":2744,"props":7355,"children":7356},{"class":2746,"line":2881},[7357,7361,7365,7369,7373],{"type":2464,"tag":2744,"props":7358,"children":7359},{"style":3712},[7360],{"type":2479,"value":6286},{"type":2464,"tag":2744,"props":7362,"children":7363},{"style":2838},[7364],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":7366,"children":7367},{"style":2838},[7368],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":7370,"children":7371},{"style":2756},[7372],{"type":2479,"value":6299},{"type":2464,"tag":2744,"props":7374,"children":7375},{"style":2838},[7376],{"type":2479,"value":6278},{"type":2464,"tag":2744,"props":7378,"children":7379},{"class":2746,"line":2453},[7380],{"type":2464,"tag":2744,"props":7381,"children":7382},{"style":2838},[7383],{"type":2479,"value":6311},{"type":2464,"tag":2744,"props":7385,"children":7386},{"class":2746,"line":3046},[7387,7391,7395],{"type":2464,"tag":2744,"props":7388,"children":7389},{"style":2838},[7390],{"type":2479,"value":6319},{"type":2464,"tag":2744,"props":7392,"children":7393},{"style":2847},[7394],{"type":2479,"value":6324},{"type":2464,"tag":2744,"props":7396,"children":7397},{"style":2838},[7398],{"type":2479,"value":5293},{"type":2464,"tag":2744,"props":7400,"children":7401},{"class":2746,"line":3064},[7402,7406,7410,7415,7420,7424,7428],{"type":2464,"tag":2744,"props":7403,"children":7404},{"style":2838},[7405],{"type":2479,"value":6336},{"type":2464,"tag":2744,"props":7407,"children":7408},{"style":2847},[7409],{"type":2479,"value":2547},{"type":2464,"tag":2744,"props":7411,"children":7412},{"style":2838},[7413],{"type":2479,"value":7414},">",{"type":2464,"tag":2744,"props":7416,"children":7417},{"style":2832},[7418],{"type":2479,"value":7419},"OAuth callback",{"type":2464,"tag":2744,"props":7421,"children":7422},{"style":2838},[7423],{"type":2479,"value":5383},{"type":2464,"tag":2744,"props":7425,"children":7426},{"style":2847},[7427],{"type":2479,"value":2547},{"type":2464,"tag":2744,"props":7429,"children":7430},{"style":2838},[7431],{"type":2479,"value":5293},{"type":2464,"tag":2744,"props":7433,"children":7434},{"class":2746,"line":3076},[7435,7439,7443,7448,7452,7456,7460,7464],{"type":2464,"tag":2744,"props":7436,"children":7437},{"style":2838},[7438],{"type":2479,"value":6336},{"type":2464,"tag":2744,"props":7440,"children":7441},{"style":2847},[7442],{"type":2479,"value":2465},{"type":2464,"tag":2744,"props":7444,"children":7445},{"style":3712},[7446],{"type":2479,"value":7447}," v-if",{"type":2464,"tag":2744,"props":7449,"children":7450},{"style":2838},[7451],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":7453,"children":7454},{"style":2838},[7455],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":7457,"children":7458},{"style":2756},[7459],{"type":2479,"value":6269},{"type":2464,"tag":2744,"props":7461,"children":7462},{"style":2838},[7463],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":7465,"children":7466},{"style":2838},[7467],{"type":2479,"value":5293},{"type":2464,"tag":2744,"props":7469,"children":7470},{"class":2746,"line":2437},[7471],{"type":2464,"tag":2744,"props":7472,"children":7473},{"style":2832},[7474],{"type":2479,"value":7475},"        Loading...\n",{"type":2464,"tag":2744,"props":7477,"children":7478},{"class":2746,"line":3287},[7479,7483,7487],{"type":2464,"tag":2744,"props":7480,"children":7481},{"style":2838},[7482],{"type":2479,"value":6642},{"type":2464,"tag":2744,"props":7484,"children":7485},{"style":2847},[7486],{"type":2479,"value":2465},{"type":2464,"tag":2744,"props":7488,"children":7489},{"style":2838},[7490],{"type":2479,"value":5293},{"type":2464,"tag":2744,"props":7492,"children":7493},{"class":2746,"line":3296},[7494,7498,7503],{"type":2464,"tag":2744,"props":7495,"children":7496},{"style":2838},[7497],{"type":2479,"value":6642},{"type":2464,"tag":2744,"props":7499,"children":7500},{"style":2847},[7501],{"type":2479,"value":7502},"UCard",{"type":2464,"tag":2744,"props":7504,"children":7505},{"style":2838},[7506],{"type":2479,"value":5293},{"type":2464,"tag":2744,"props":7508,"children":7509},{"class":2746,"line":3327},[7510,7514,7518],{"type":2464,"tag":2744,"props":7511,"children":7512},{"style":2838},[7513],{"type":2479,"value":6658},{"type":2464,"tag":2744,"props":7515,"children":7516},{"style":2847},[7517],{"type":2479,"value":6324},{"type":2464,"tag":2744,"props":7519,"children":7520},{"style":2838},[7521],{"type":2479,"value":5293},{"type":2464,"tag":2744,"props":7523,"children":7524},{"class":2746,"line":3336},[7525,7529,7533],{"type":2464,"tag":2744,"props":7526,"children":7527},{"style":2838},[7528],{"type":2479,"value":6674},{"type":2464,"tag":2744,"props":7530,"children":7531},{"style":2847},[7532],{"type":2479,"value":6831},{"type":2464,"tag":2744,"props":7534,"children":7535},{"style":2838},[7536],{"type":2479,"value":5293},{"type":2464,"tag":2744,"props":7538,"children":7539},{"class":2746,"line":3366},[7540,7544,7548],{"type":2464,"tag":2744,"props":7541,"children":7542},{"style":2838},[7543],{"type":2479,"value":5383},{"type":2464,"tag":2744,"props":7545,"children":7546},{"style":2847},[7547],{"type":2479,"value":6181},{"type":2464,"tag":2744,"props":7549,"children":7550},{"style":2838},[7551],{"type":2479,"value":5293},{"type":2464,"tag":2465,"props":7553,"children":7554},{},[7555],{"type":2479,"value":7556},"Amazing right?! In just a few lines, we just added a basic authentication to our application.",{"type":2464,"tag":3594,"props":7558,"children":7560},{"id":7559},"client-side-usage",[7561],{"type":2479,"value":7562},"Client-side usage",{"type":2464,"tag":2465,"props":7564,"children":7565},{},[7566,7568,7574],{"type":2479,"value":7567},"Now that the authentication is implemented, you also have access to the ",{"type":2464,"tag":2726,"props":7569,"children":7571},{"className":7570},[],[7572],{"type":2479,"value":7573},"useEdgeDbIdentity",{"type":2479,"value":7575}," composable in your Nuxt app.",{"type":2464,"tag":2734,"props":7577,"children":7579},{"className":5241,"code":7578,"language":5243,"meta":2459,"style":2459},"\u003Cscript setup lang=\"ts\">\nconst { isLoggedIn } = useEdgeDbIdentity()\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cdiv>\n    \u003CLoginButton v-if=\"isLoggedIn\" \u002F>\n    \u003CLogoutButton v-else \u002F>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n",[7580],{"type":2464,"tag":2726,"props":7581,"children":7582},{"__ignoreMap":2459},[7583,7622,7656,7671,7678,7693,7708,7746,7767,7782],{"type":2464,"tag":2744,"props":7584,"children":7585},{"class":2746,"line":2445},[7586,7590,7594,7598,7602,7606,7610,7614,7618],{"type":2464,"tag":2744,"props":7587,"children":7588},{"style":2838},[7589],{"type":2479,"value":5255},{"type":2464,"tag":2744,"props":7591,"children":7592},{"style":2847},[7593],{"type":2479,"value":5260},{"type":2464,"tag":2744,"props":7595,"children":7596},{"style":3712},[7597],{"type":2479,"value":5265},{"type":2464,"tag":2744,"props":7599,"children":7600},{"style":3712},[7601],{"type":2479,"value":5270},{"type":2464,"tag":2744,"props":7603,"children":7604},{"style":2838},[7605],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":7607,"children":7608},{"style":2838},[7609],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":7611,"children":7612},{"style":2756},[7613],{"type":2479,"value":3316},{"type":2464,"tag":2744,"props":7615,"children":7616},{"style":2838},[7617],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":7619,"children":7620},{"style":2838},[7621],{"type":2479,"value":5293},{"type":2464,"tag":2744,"props":7623,"children":7624},{"class":2746,"line":2441},[7625,7630,7634,7639,7643,7647,7652],{"type":2464,"tag":2744,"props":7626,"children":7627},{"style":3712},[7628],{"type":2479,"value":7629},"const",{"type":2464,"tag":2744,"props":7631,"children":7632},{"style":2838},[7633],{"type":2479,"value":3644},{"type":2464,"tag":2744,"props":7635,"children":7636},{"style":2832},[7637],{"type":2479,"value":7638}," isLoggedIn ",{"type":2464,"tag":2744,"props":7640,"children":7641},{"style":2838},[7642],{"type":2479,"value":2895},{"type":2464,"tag":2744,"props":7644,"children":7645},{"style":2838},[7646],{"type":2479,"value":3758},{"type":2464,"tag":2744,"props":7648,"children":7649},{"style":2826},[7650],{"type":2479,"value":7651}," useEdgeDbIdentity",{"type":2464,"tag":2744,"props":7653,"children":7654},{"style":2832},[7655],{"type":2479,"value":3829},{"type":2464,"tag":2744,"props":7657,"children":7658},{"class":2746,"line":2863},[7659,7663,7667],{"type":2464,"tag":2744,"props":7660,"children":7661},{"style":2838},[7662],{"type":2479,"value":5383},{"type":2464,"tag":2744,"props":7664,"children":7665},{"style":2847},[7666],{"type":2479,"value":5260},{"type":2464,"tag":2744,"props":7668,"children":7669},{"style":2838},[7670],{"type":2479,"value":5293},{"type":2464,"tag":2744,"props":7672,"children":7673},{"class":2746,"line":2881},[7674],{"type":2464,"tag":2744,"props":7675,"children":7676},{"emptyLinePlaceholder":3687},[7677],{"type":2479,"value":3690},{"type":2464,"tag":2744,"props":7679,"children":7680},{"class":2746,"line":2453},[7681,7685,7689],{"type":2464,"tag":2744,"props":7682,"children":7683},{"style":2838},[7684],{"type":2479,"value":5255},{"type":2464,"tag":2744,"props":7686,"children":7687},{"style":2847},[7688],{"type":2479,"value":6181},{"type":2464,"tag":2744,"props":7690,"children":7691},{"style":2838},[7692],{"type":2479,"value":5293},{"type":2464,"tag":2744,"props":7694,"children":7695},{"class":2746,"line":3046},[7696,7700,7704],{"type":2464,"tag":2744,"props":7697,"children":7698},{"style":2838},[7699],{"type":2479,"value":6193},{"type":2464,"tag":2744,"props":7701,"children":7702},{"style":2847},[7703],{"type":2479,"value":6324},{"type":2464,"tag":2744,"props":7705,"children":7706},{"style":2838},[7707],{"type":2479,"value":5293},{"type":2464,"tag":2744,"props":7709,"children":7710},{"class":2746,"line":3064},[7711,7715,7720,7724,7728,7732,7737,7741],{"type":2464,"tag":2744,"props":7712,"children":7713},{"style":2838},[7714],{"type":2479,"value":6319},{"type":2464,"tag":2744,"props":7716,"children":7717},{"style":2847},[7718],{"type":2479,"value":7719},"LoginButton",{"type":2464,"tag":2744,"props":7721,"children":7722},{"style":2815},[7723],{"type":2479,"value":7447},{"type":2464,"tag":2744,"props":7725,"children":7726},{"style":2838},[7727],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":7729,"children":7730},{"style":2838},[7731],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":7733,"children":7734},{"style":2832},[7735],{"type":2479,"value":7736},"isLoggedIn",{"type":2464,"tag":2744,"props":7738,"children":7739},{"style":2838},[7740],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":7742,"children":7743},{"style":2838},[7744],{"type":2479,"value":7745}," \u002F>\n",{"type":2464,"tag":2744,"props":7747,"children":7748},{"class":2746,"line":3076},[7749,7753,7758,7763],{"type":2464,"tag":2744,"props":7750,"children":7751},{"style":2838},[7752],{"type":2479,"value":6319},{"type":2464,"tag":2744,"props":7754,"children":7755},{"style":2847},[7756],{"type":2479,"value":7757},"LogoutButton",{"type":2464,"tag":2744,"props":7759,"children":7760},{"style":2815},[7761],{"type":2479,"value":7762}," v-else",{"type":2464,"tag":2744,"props":7764,"children":7765},{"style":2838},[7766],{"type":2479,"value":7745},{"type":2464,"tag":2744,"props":7768,"children":7769},{"class":2746,"line":2437},[7770,7774,7778],{"type":2464,"tag":2744,"props":7771,"children":7772},{"style":2838},[7773],{"type":2479,"value":6674},{"type":2464,"tag":2744,"props":7775,"children":7776},{"style":2847},[7777],{"type":2479,"value":6324},{"type":2464,"tag":2744,"props":7779,"children":7780},{"style":2838},[7781],{"type":2479,"value":5293},{"type":2464,"tag":2744,"props":7783,"children":7784},{"class":2746,"line":3287},[7785,7789,7793],{"type":2464,"tag":2744,"props":7786,"children":7787},{"style":2838},[7788],{"type":2479,"value":5383},{"type":2464,"tag":2744,"props":7790,"children":7791},{"style":2847},[7792],{"type":2479,"value":6181},{"type":2464,"tag":2744,"props":7794,"children":7795},{"style":2838},[7796],{"type":2479,"value":5293},{"type":2464,"tag":2465,"props":7798,"children":7799},{},[7800,7802,7811],{"type":2479,"value":7801},"You can look at the ",{"type":2464,"tag":2485,"props":7803,"children":7805},{"href":7804},".\u002Fsrc\u002Fruntime\u002Fcomposables\u002FuseEdgeDbIdentity.ts",[7806],{"type":2464,"tag":2726,"props":7807,"children":7809},{"className":7808},[],[7810],{"type":2479,"value":7573},{"type":2479,"value":7812}," for more details.",{"type":2464,"tag":3594,"props":7814,"children":7816},{"id":7815},"server-side-usage",[7817],{"type":2479,"value":7818},"Server-side usage",{"type":2464,"tag":2465,"props":7820,"children":7821},{},[7822,7824,7830],{"type":2479,"value":7823},"The authentication process does use a cookie called ",{"type":2464,"tag":2726,"props":7825,"children":7827},{"className":7826},[],[7828],{"type":2479,"value":7829},"edgedb-auth-token",{"type":2479,"value":2610},{"type":2464,"tag":2465,"props":7832,"children":7833},{},[7834],{"type":2479,"value":7835},"On the server, if you want to authenticate your requests to the database for the current user, you only have to pass the current request object to composables:",{"type":2464,"tag":2734,"props":7837,"children":7839},{"className":3112,"code":7838,"language":3114,"meta":2459,"style":2459},"export default defineEventHandler(async (req) => {\n  \u002F\u002F Will throw an error, as you cannot delete a BlogPost without being the author\n  const { deleteBlogPost } = useEdgeDbQueries()\n  await deleteBlogPost({ blogpost_id: id })\n\n  \u002F\u002F Success\n  const { deleteBlogPost: deleteBlogPostAuthenticated } = useEdgeDbQueries(req)\n  await deleteBlogPostAuthenticated({ blogpost_id: id })\n\n  return { id }\n})\n",[7840],{"type":2464,"tag":2726,"props":7841,"children":7842},{"__ignoreMap":2459},[7843,7886,7894,7926,7966,7973,7981,8029,8068,8075,8094],{"type":2464,"tag":2744,"props":7844,"children":7845},{"class":2746,"line":2445},[7846,7850,7854,7858,7862,7866,7870,7874,7878,7882],{"type":2464,"tag":2744,"props":7847,"children":7848},{"style":2815},[7849],{"type":2479,"value":2818},{"type":2464,"tag":2744,"props":7851,"children":7852},{"style":2815},[7853],{"type":2479,"value":2823},{"type":2464,"tag":2744,"props":7855,"children":7856},{"style":2826},[7857],{"type":2479,"value":3649},{"type":2464,"tag":2744,"props":7859,"children":7860},{"style":2832},[7861],{"type":2479,"value":2835},{"type":2464,"tag":2744,"props":7863,"children":7864},{"style":3712},[7865],{"type":2479,"value":3715},{"type":2464,"tag":2744,"props":7867,"children":7868},{"style":2838},[7869],{"type":2479,"value":3720},{"type":2464,"tag":2744,"props":7871,"children":7872},{"style":3723},[7873],{"type":2479,"value":3726},{"type":2464,"tag":2744,"props":7875,"children":7876},{"style":2838},[7877],{"type":2479,"value":3731},{"type":2464,"tag":2744,"props":7879,"children":7880},{"style":3712},[7881],{"type":2479,"value":3736},{"type":2464,"tag":2744,"props":7883,"children":7884},{"style":2838},[7885],{"type":2479,"value":3197},{"type":2464,"tag":2744,"props":7887,"children":7888},{"class":2746,"line":2441},[7889],{"type":2464,"tag":2744,"props":7890,"children":7891},{"style":3203},[7892],{"type":2479,"value":7893},"  \u002F\u002F Will throw an error, as you cannot delete a BlogPost without being the author\n",{"type":2464,"tag":2744,"props":7895,"children":7896},{"class":2746,"line":2863},[7897,7901,7905,7910,7914,7918,7922],{"type":2464,"tag":2744,"props":7898,"children":7899},{"style":3712},[7900],{"type":2479,"value":3748},{"type":2464,"tag":2744,"props":7902,"children":7903},{"style":2838},[7904],{"type":2479,"value":3644},{"type":2464,"tag":2744,"props":7906,"children":7907},{"style":2832},[7908],{"type":2479,"value":7909}," deleteBlogPost",{"type":2464,"tag":2744,"props":7911,"children":7912},{"style":2838},[7913],{"type":2479,"value":3664},{"type":2464,"tag":2744,"props":7915,"children":7916},{"style":2838},[7917],{"type":2479,"value":3758},{"type":2464,"tag":2744,"props":7919,"children":7920},{"style":2826},[7921],{"type":2479,"value":4270},{"type":2464,"tag":2744,"props":7923,"children":7924},{"style":2847},[7925],{"type":2479,"value":3829},{"type":2464,"tag":2744,"props":7927,"children":7928},{"class":2746,"line":2881},[7929,7934,7938,7942,7946,7950,7954,7958,7962],{"type":2464,"tag":2744,"props":7930,"children":7931},{"style":2815},[7932],{"type":2479,"value":7933},"  await",{"type":2464,"tag":2744,"props":7935,"children":7936},{"style":2826},[7937],{"type":2479,"value":7909},{"type":2464,"tag":2744,"props":7939,"children":7940},{"style":2847},[7941],{"type":2479,"value":2835},{"type":2464,"tag":2744,"props":7943,"children":7944},{"style":2838},[7945],{"type":2479,"value":4308},{"type":2464,"tag":2744,"props":7947,"children":7948},{"style":2847},[7949],{"type":2479,"value":4313},{"type":2464,"tag":2744,"props":7951,"children":7952},{"style":2838},[7953],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":7955,"children":7956},{"style":2832},[7957],{"type":2479,"value":3786},{"type":2464,"tag":2744,"props":7959,"children":7960},{"style":2838},[7961],{"type":2479,"value":3664},{"type":2464,"tag":2744,"props":7963,"children":7964},{"style":2847},[7965],{"type":2479,"value":2900},{"type":2464,"tag":2744,"props":7967,"children":7968},{"class":2746,"line":2453},[7969],{"type":2464,"tag":2744,"props":7970,"children":7971},{"emptyLinePlaceholder":3687},[7972],{"type":2479,"value":3690},{"type":2464,"tag":2744,"props":7974,"children":7975},{"class":2746,"line":3046},[7976],{"type":2464,"tag":2744,"props":7977,"children":7978},{"style":3203},[7979],{"type":2479,"value":7980},"  \u002F\u002F Success\n",{"type":2464,"tag":2744,"props":7982,"children":7983},{"class":2746,"line":3064},[7984,7988,7992,7996,8000,8005,8009,8013,8017,8021,8025],{"type":2464,"tag":2744,"props":7985,"children":7986},{"style":3712},[7987],{"type":2479,"value":3748},{"type":2464,"tag":2744,"props":7989,"children":7990},{"style":2838},[7991],{"type":2479,"value":3644},{"type":2464,"tag":2744,"props":7993,"children":7994},{"style":2847},[7995],{"type":2479,"value":7909},{"type":2464,"tag":2744,"props":7997,"children":7998},{"style":2838},[7999],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":8001,"children":8002},{"style":2832},[8003],{"type":2479,"value":8004}," deleteBlogPostAuthenticated",{"type":2464,"tag":2744,"props":8006,"children":8007},{"style":2838},[8008],{"type":2479,"value":3664},{"type":2464,"tag":2744,"props":8010,"children":8011},{"style":2838},[8012],{"type":2479,"value":3758},{"type":2464,"tag":2744,"props":8014,"children":8015},{"style":2826},[8016],{"type":2479,"value":4270},{"type":2464,"tag":2744,"props":8018,"children":8019},{"style":2847},[8020],{"type":2479,"value":2835},{"type":2464,"tag":2744,"props":8022,"children":8023},{"style":2832},[8024],{"type":2479,"value":3726},{"type":2464,"tag":2744,"props":8026,"children":8027},{"style":2847},[8028],{"type":2479,"value":2900},{"type":2464,"tag":2744,"props":8030,"children":8031},{"class":2746,"line":3076},[8032,8036,8040,8044,8048,8052,8056,8060,8064],{"type":2464,"tag":2744,"props":8033,"children":8034},{"style":2815},[8035],{"type":2479,"value":7933},{"type":2464,"tag":2744,"props":8037,"children":8038},{"style":2826},[8039],{"type":2479,"value":8004},{"type":2464,"tag":2744,"props":8041,"children":8042},{"style":2847},[8043],{"type":2479,"value":2835},{"type":2464,"tag":2744,"props":8045,"children":8046},{"style":2838},[8047],{"type":2479,"value":4308},{"type":2464,"tag":2744,"props":8049,"children":8050},{"style":2847},[8051],{"type":2479,"value":4313},{"type":2464,"tag":2744,"props":8053,"children":8054},{"style":2838},[8055],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":8057,"children":8058},{"style":2832},[8059],{"type":2479,"value":3786},{"type":2464,"tag":2744,"props":8061,"children":8062},{"style":2838},[8063],{"type":2479,"value":3664},{"type":2464,"tag":2744,"props":8065,"children":8066},{"style":2847},[8067],{"type":2479,"value":2900},{"type":2464,"tag":2744,"props":8069,"children":8070},{"class":2746,"line":2437},[8071],{"type":2464,"tag":2744,"props":8072,"children":8073},{"emptyLinePlaceholder":3687},[8074],{"type":2479,"value":3690},{"type":2464,"tag":2744,"props":8076,"children":8077},{"class":2746,"line":3287},[8078,8082,8086,8090],{"type":2464,"tag":2744,"props":8079,"children":8080},{"style":2815},[8081],{"type":2479,"value":3976},{"type":2464,"tag":2744,"props":8083,"children":8084},{"style":2838},[8085],{"type":2479,"value":3644},{"type":2464,"tag":2744,"props":8087,"children":8088},{"style":2832},[8089],{"type":2479,"value":3786},{"type":2464,"tag":2744,"props":8091,"children":8092},{"style":2838},[8093],{"type":2479,"value":5120},{"type":2464,"tag":2744,"props":8095,"children":8096},{"class":2746,"line":3296},[8097,8101],{"type":2464,"tag":2744,"props":8098,"children":8099},{"style":2838},[8100],{"type":2479,"value":2895},{"type":2464,"tag":2744,"props":8102,"children":8103},{"style":2832},[8104],{"type":2479,"value":2900},{"type":2464,"tag":3594,"props":8106,"children":8108},{"id":8107},"other-authentication-solutions",[8109],{"type":2479,"value":8110},"Other authentication solutions",{"type":2464,"tag":2465,"props":8112,"children":8113},{},[8114],{"type":2479,"value":8115},"EdgeDDB Auth is a great solution, but eventually your app may require more features later.",{"type":2464,"tag":2465,"props":8117,"children":8118},{},[8119],{"type":2479,"value":8120},"Do not forget that EdgeDB can also be used as a database. You can build your own auth or use existing solutions like:",{"type":2464,"tag":2553,"props":8122,"children":8123},{},[8124,8134,8144,8154],{"type":2464,"tag":2557,"props":8125,"children":8126},{},[8127],{"type":2464,"tag":2485,"props":8128,"children":8131},{"href":8129,"rel":8130},"https:\u002F\u002Fgithub.com\u002Fsidebase\u002Fnuxt-auth",[2489],[8132],{"type":2479,"value":8133},"Sidebase Nuxt Auth",{"type":2464,"tag":2557,"props":8135,"children":8136},{},[8137],{"type":2464,"tag":2485,"props":8138,"children":8141},{"href":8139,"rel":8140},"https:\u002F\u002Fgithub.com\u002Fnuxt-community\u002Fauth-module",[2489],[8142],{"type":2479,"value":8143},"Nuxt Auth (when ready)",{"type":2464,"tag":2557,"props":8145,"children":8146},{},[8147],{"type":2464,"tag":2485,"props":8148,"children":8151},{"href":8149,"rel":8150},"https:\u002F\u002Fgithub.com\u002FAtinux\u002Fnuxt-auth-utils#supported-oauth-providers",[2489],[8152],{"type":2479,"value":8153},"Nuxt Auth Utils",{"type":2464,"tag":2557,"props":8155,"children":8156},{},[8157],{"type":2479,"value":8158},"Your own implementation",{"type":2464,"tag":2465,"props":8160,"children":8161},{},[8162,8164,8169,8171,8176],{"type":2479,"value":8163},"You can also use ",{"type":2464,"tag":2583,"props":8165,"children":8166},{},[8167],{"type":2479,"value":8168},"both",{"type":2479,"value":8170}," and create Identity objects from your own authentication provider, and use ",{"type":2464,"tag":2726,"props":8172,"children":8174},{"className":8173},[],[8175],{"type":2479,"value":7829},{"type":2479,"value":8177}," as your cookie.",{"type":2464,"tag":2465,"props":8179,"children":8180},{},[8181,8183,8192],{"type":2479,"value":8182},"I would recommend looking at ",{"type":2464,"tag":2744,"props":8184,"children":8185},{},[8186],{"type":2464,"tag":2485,"props":8187,"children":8190},{"href":8188,"rel":8189},"https:\u002F\u002Fgithub.com\u002Fedgedb\u002Fedgedb-examples",[2489],[8191],{"type":2479,"value":8188},{"type":2479,"value":8193}," that is filled with great examples of custom authentications built on EdgeDB.",{"type":2464,"tag":3594,"props":8195,"children":8197},{"id":8196},"authentication-environment-variables",[8198],{"type":2479,"value":8199},"Authentication environment variables",{"type":2464,"tag":2734,"props":8201,"children":8205},{"className":8202,"code":8203,"language":8204,"meta":2459,"style":2459},"language-sh shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","# Your EdgeDB instance auth extension base URL\nNUXT_EDGEDB_AUTH_BASE_URL=http:\u002F\u002Flocalhost:10702\u002Fdb\u002Fedgedb\u002Fext\u002Fauth\u002F\n# Your EdgeDB instance OAuth callback URL\nNUXT_EDGEDB_OAUTH_CALLBACK=http:\u002F\u002Flocalhost:10702\u002Fdb\u002Fedgedb\u002Fext\u002Fauth\u002Fcallback\n# Your app callback page\nNUXT_EDGEDB_OAUTH_REDIRECT_URL=http:\u002F\u002Flocalhost:3000\u002Fauth\u002Fcallback\n# Your app app reset password URL (receiving the token from the forgot password email)\nNUXT_EDGEDB_AUTH_RESET_PASSWORD_URL=http:\u002F\u002Flocalhost:3000\u002Fauth\u002Freset-password\n# Your app email verify url (receiving the token from email verify feature)\nNUXT_EDGEDB_AUTH_VERIFY_REDIRECT_URL=http:\u002F\u002Flocalhost:3000\u002Fauth\u002Fverify\n","sh",[8206],{"type":2464,"tag":2726,"props":8207,"children":8208},{"__ignoreMap":2459},[8209,8217,8234,8242,8259,8267,8284,8292,8309,8317],{"type":2464,"tag":2744,"props":8210,"children":8211},{"class":2746,"line":2445},[8212],{"type":2464,"tag":2744,"props":8213,"children":8214},{"style":3203},[8215],{"type":2479,"value":8216},"# Your EdgeDB instance auth extension base URL\n",{"type":2464,"tag":2744,"props":8218,"children":8219},{"class":2746,"line":2441},[8220,8225,8229],{"type":2464,"tag":2744,"props":8221,"children":8222},{"style":2832},[8223],{"type":2479,"value":8224},"NUXT_EDGEDB_AUTH_BASE_URL",{"type":2464,"tag":2744,"props":8226,"children":8227},{"style":2838},[8228],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":8230,"children":8231},{"style":2756},[8232],{"type":2479,"value":8233},"http:\u002F\u002Flocalhost:10702\u002Fdb\u002Fedgedb\u002Fext\u002Fauth\u002F\n",{"type":2464,"tag":2744,"props":8235,"children":8236},{"class":2746,"line":2863},[8237],{"type":2464,"tag":2744,"props":8238,"children":8239},{"style":3203},[8240],{"type":2479,"value":8241},"# Your EdgeDB instance OAuth callback URL\n",{"type":2464,"tag":2744,"props":8243,"children":8244},{"class":2746,"line":2881},[8245,8250,8254],{"type":2464,"tag":2744,"props":8246,"children":8247},{"style":2832},[8248],{"type":2479,"value":8249},"NUXT_EDGEDB_OAUTH_CALLBACK",{"type":2464,"tag":2744,"props":8251,"children":8252},{"style":2838},[8253],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":8255,"children":8256},{"style":2756},[8257],{"type":2479,"value":8258},"http:\u002F\u002Flocalhost:10702\u002Fdb\u002Fedgedb\u002Fext\u002Fauth\u002Fcallback\n",{"type":2464,"tag":2744,"props":8260,"children":8261},{"class":2746,"line":2453},[8262],{"type":2464,"tag":2744,"props":8263,"children":8264},{"style":3203},[8265],{"type":2479,"value":8266},"# Your app callback page\n",{"type":2464,"tag":2744,"props":8268,"children":8269},{"class":2746,"line":3046},[8270,8275,8279],{"type":2464,"tag":2744,"props":8271,"children":8272},{"style":2832},[8273],{"type":2479,"value":8274},"NUXT_EDGEDB_OAUTH_REDIRECT_URL",{"type":2464,"tag":2744,"props":8276,"children":8277},{"style":2838},[8278],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":8280,"children":8281},{"style":2756},[8282],{"type":2479,"value":8283},"http:\u002F\u002Flocalhost:3000\u002Fauth\u002Fcallback\n",{"type":2464,"tag":2744,"props":8285,"children":8286},{"class":2746,"line":3064},[8287],{"type":2464,"tag":2744,"props":8288,"children":8289},{"style":3203},[8290],{"type":2479,"value":8291},"# Your app app reset password URL (receiving the token from the forgot password email)\n",{"type":2464,"tag":2744,"props":8293,"children":8294},{"class":2746,"line":3076},[8295,8300,8304],{"type":2464,"tag":2744,"props":8296,"children":8297},{"style":2832},[8298],{"type":2479,"value":8299},"NUXT_EDGEDB_AUTH_RESET_PASSWORD_URL",{"type":2464,"tag":2744,"props":8301,"children":8302},{"style":2838},[8303],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":8305,"children":8306},{"style":2756},[8307],{"type":2479,"value":8308},"http:\u002F\u002Flocalhost:3000\u002Fauth\u002Freset-password\n",{"type":2464,"tag":2744,"props":8310,"children":8311},{"class":2746,"line":2437},[8312],{"type":2464,"tag":2744,"props":8313,"children":8314},{"style":3203},[8315],{"type":2479,"value":8316},"# Your app email verify url (receiving the token from email verify feature)\n",{"type":2464,"tag":2744,"props":8318,"children":8319},{"class":2746,"line":3287},[8320,8325,8329],{"type":2464,"tag":2744,"props":8321,"children":8322},{"style":2832},[8323],{"type":2479,"value":8324},"NUXT_EDGEDB_AUTH_VERIFY_REDIRECT_URL",{"type":2464,"tag":2744,"props":8326,"children":8327},{"style":2838},[8328],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":8330,"children":8331},{"style":2756},[8332],{"type":2479,"value":8333},"http:\u002F\u002Flocalhost:3000\u002Fauth\u002Fverify\n",{"type":2464,"tag":3594,"props":8335,"children":8337},{"id":8336},"going-further-with-authentication",[8338],{"type":2479,"value":8339},"Going further with authentication",{"type":2464,"tag":2465,"props":8341,"children":8342},{},[8343],{"type":2479,"value":8344},"EdgeDB Auth only provides the bare minimal identity feature for authentication.",{"type":2464,"tag":2465,"props":8346,"children":8347},{},[8348,8350,8356,8358,8364],{"type":2479,"value":8349},"In the code example provided for authentication setup, a ",{"type":2464,"tag":2726,"props":8351,"children":8353},{"className":8352},[],[8354],{"type":2479,"value":8355},"User",{"type":2479,"value":8357}," type goes along with the ",{"type":2464,"tag":2726,"props":8359,"children":8361},{"className":8360},[],[8362],{"type":2479,"value":8363},"Identity",{"type":2479,"value":8365}," interface.",{"type":2464,"tag":2465,"props":8367,"children":8368},{},[8369,8371,8376],{"type":2479,"value":8370},"If you want to fill ",{"type":2464,"tag":2726,"props":8372,"children":8374},{"className":8373},[],[8375],{"type":2479,"value":8355},{"type":2479,"value":8377}," with other attributes upon registration, you will have to implement this behavior yourself.",{"type":2464,"tag":2465,"props":8379,"children":8380},{},[8381,8383,8389],{"type":2479,"value":8382},"If you want to resolve data from OAuth providers, you can use the Nitro hook called ",{"type":2464,"tag":2726,"props":8384,"children":8386},{"className":8385},[],[8387],{"type":2479,"value":8388},"edgedb:auth:callback",{"type":2479,"value":8390}," from a Nitro plugin.",{"type":2464,"tag":2734,"props":8392,"children":8396},{"className":8393,"code":8395,"language":2479},[8394],"language-text","\u002F\u002F server\u002Fplugins\u002Fauth.ts\n\nexport default defineNitroPlugin((app) => {\n  app.hooks.hook('edgedb:auth:callback', (data) => {\n    const {\n      code,\n      verifier,\n      codeExchangeUrl,\n      codeExchangeResponseData,\n    } = data\n\n    \u002F\u002F codeExchangeResponseData contains the OAuth token from the provider.\n    \u002F\u002F ... implement your own authentication logic.\n  })\n})\n",[8397],{"type":2464,"tag":2726,"props":8398,"children":8399},{"__ignoreMap":2459},[8400],{"type":2479,"value":8395},{"type":2464,"tag":2547,"props":8402,"children":8404},{"id":8403},"production",[8405],{"type":2479,"value":8406},"Production",{"type":2464,"tag":2465,"props":8408,"children":8409},{},[8410,8412,8419],{"type":2479,"value":8411},"If you want to get out of development and deploy your database to prodution, you must follow the ",{"type":2464,"tag":2485,"props":8413,"children":8416},{"href":8414,"rel":8415},"https:\u002F\u002Fwww.edgedb.com\u002Fdocs\u002Fguides\u002Fdeployment\u002Findex",[2489],[8417],{"type":2479,"value":8418},"EdgeDB guides",{"type":2479,"value":2610},{"type":2464,"tag":2465,"props":8421,"children":8422},{},[8423,8428],{"type":2464,"tag":2485,"props":8424,"children":8426},{"href":2539,"rel":8425},[2489],[8427],{"type":2479,"value":2543},{"type":2479,"value":8429}," is an open-source database that is designed to be self-hosted.",{"type":2464,"tag":2465,"props":8431,"children":8432},{},[8433,8435,8442],{"type":2479,"value":8434},"However, they also offer a ",{"type":2464,"tag":2485,"props":8436,"children":8439},{"href":8437,"rel":8438},"https:\u002F\u002Fwww.edgedb.com\u002Fdocs\u002Fguides\u002Fcloud",[2489],[8440],{"type":2479,"value":8441},"Cloud",{"type":2479,"value":8443},", which is fully compatible with this module thanks to environment variables.",{"type":2464,"tag":2465,"props":8445,"children":8446},{},[8447,8449,8454],{"type":2479,"value":8448},"If you want to customize the ",{"type":2464,"tag":2744,"props":8450,"children":8451},{},[8452],{"type":2479,"value":8453},"DSN",{"type":2479,"value":8455}," used by the composables, you can use the environment variables provided by the module:",{"type":2464,"tag":2734,"props":8457,"children":8460},{"className":8458,"code":8459,"language":2479},[8394],"NUXT_EDGEDB_HOST=\nNUXT_EDGEDB_PORT=\nNUXT_EDGEDB_USER=\nNUXT_EDGEDB_PASS=\nNUXT_EDGEDB_DATABASE=\n",[8461],{"type":2464,"tag":2726,"props":8462,"children":8463},{"__ignoreMap":2459},[8464],{"type":2479,"value":8459},{"type":2464,"tag":5424,"props":8466,"children":8467},{},[8468],{"type":2464,"tag":2465,"props":8469,"children":8470},{},[8471,8473,8478],{"type":2479,"value":8472},"If you want to use the env variables, you have to specify ",{"type":2464,"tag":2563,"props":8474,"children":8475},{},[8476],{"type":2479,"value":8477},"ALL",{"type":2479,"value":8479}," of them, otherwise the client will fallback on default values.",{"type":2464,"tag":2547,"props":8481,"children":8483},{"id":8482},"qa",[8484],{"type":2479,"value":8485},"Q&A",{"type":2464,"tag":3594,"props":8487,"children":8489},{"id":8488},"will-my-database-client-be-exposed-in-userland",[8490],{"type":2479,"value":8491},"Will my database client be exposed in userland?",{"type":2464,"tag":2465,"props":8493,"children":8494},{},[8495,8497,8502,8503,8508,8510,8516],{"type":2479,"value":8496},"No, ",{"type":2464,"tag":2726,"props":8498,"children":8500},{"className":8499},[],[8501],{"type":2479,"value":3599},{"type":2479,"value":5927},{"type":2464,"tag":2726,"props":8504,"children":8506},{"className":8505},[],[8507],{"type":2479,"value":3998},{"type":2479,"value":8509}," are only available in the ",{"type":2464,"tag":2485,"props":8511,"children":8514},{"href":8512,"rel":8513},"https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fguide\u002Fdirectory-structure\u002Fserver",[2489],[8515],{"type":2479,"value":3590},{"type":2479,"value":8517}," context of Nuxt.",{"type":2464,"tag":2465,"props":8519,"children":8520},{},[8521,8523,8528,8530,8536],{"type":2479,"value":8522},"You can, as an ",{"type":2464,"tag":2563,"props":8524,"children":8525},{},[8526],{"type":2479,"value":8527},"opt-in",{"type":2479,"value":8529}," feature, import queries from ",{"type":2464,"tag":2726,"props":8531,"children":8533},{"className":8532},[],[8534],{"type":2479,"value":8535},"@dbschema\u002Fqueries",{"type":2479,"value":8537}," on the client.",{"type":2464,"tag":2465,"props":8539,"children":8540},{},[8541,8543,8549],{"type":2479,"value":8542},"You will need to provide these queries with a client from ",{"type":2464,"tag":2726,"props":8544,"children":8546},{"className":8545},[],[8547],{"type":2479,"value":8548},"createClient()",{"type":2479,"value":2610},{"type":2464,"tag":2734,"props":8551,"children":8553},{"className":5241,"code":8552,"language":5243,"meta":2459,"style":2459},"\u003Cscript setup lang=\"ts\">\nimport { createClient } from 'edgedb'\nimport { getUser } from '@dbschema\u002Fqueries'\n\nconst client = createClient()\nconst user = await getUser(client, 42)\n\u003C\u002Fscript>\n",[8554],{"type":2464,"tag":2726,"props":8555,"children":8556},{"__ignoreMap":2459},[8557,8596,8632,8668,8675,8699,8742],{"type":2464,"tag":2744,"props":8558,"children":8559},{"class":2746,"line":2445},[8560,8564,8568,8572,8576,8580,8584,8588,8592],{"type":2464,"tag":2744,"props":8561,"children":8562},{"style":2838},[8563],{"type":2479,"value":5255},{"type":2464,"tag":2744,"props":8565,"children":8566},{"style":2847},[8567],{"type":2479,"value":5260},{"type":2464,"tag":2744,"props":8569,"children":8570},{"style":3712},[8571],{"type":2479,"value":5265},{"type":2464,"tag":2744,"props":8573,"children":8574},{"style":3712},[8575],{"type":2479,"value":5270},{"type":2464,"tag":2744,"props":8577,"children":8578},{"style":2838},[8579],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":8581,"children":8582},{"style":2838},[8583],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":8585,"children":8586},{"style":2756},[8587],{"type":2479,"value":3316},{"type":2464,"tag":2744,"props":8589,"children":8590},{"style":2838},[8591],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":8593,"children":8594},{"style":2838},[8595],{"type":2479,"value":5293},{"type":2464,"tag":2744,"props":8597,"children":8598},{"class":2746,"line":2441},[8599,8603,8607,8612,8616,8620,8624,8628],{"type":2464,"tag":2744,"props":8600,"children":8601},{"style":2815},[8602],{"type":2479,"value":3639},{"type":2464,"tag":2744,"props":8604,"children":8605},{"style":2838},[8606],{"type":2479,"value":3644},{"type":2464,"tag":2744,"props":8608,"children":8609},{"style":2832},[8610],{"type":2479,"value":8611}," createClient",{"type":2464,"tag":2744,"props":8613,"children":8614},{"style":2838},[8615],{"type":2479,"value":3664},{"type":2464,"tag":2744,"props":8617,"children":8618},{"style":2815},[8619],{"type":2479,"value":3669},{"type":2464,"tag":2744,"props":8621,"children":8622},{"style":2838},[8623],{"type":2479,"value":3311},{"type":2464,"tag":2744,"props":8625,"children":8626},{"style":2756},[8627],{"type":2479,"value":2412},{"type":2464,"tag":2744,"props":8629,"children":8630},{"style":2838},[8631],{"type":2479,"value":2878},{"type":2464,"tag":2744,"props":8633,"children":8634},{"class":2746,"line":2863},[8635,8639,8643,8648,8652,8656,8660,8664],{"type":2464,"tag":2744,"props":8636,"children":8637},{"style":2815},[8638],{"type":2479,"value":3639},{"type":2464,"tag":2744,"props":8640,"children":8641},{"style":2838},[8642],{"type":2479,"value":3644},{"type":2464,"tag":2744,"props":8644,"children":8645},{"style":2832},[8646],{"type":2479,"value":8647}," getUser",{"type":2464,"tag":2744,"props":8649,"children":8650},{"style":2838},[8651],{"type":2479,"value":3664},{"type":2464,"tag":2744,"props":8653,"children":8654},{"style":2815},[8655],{"type":2479,"value":3669},{"type":2464,"tag":2744,"props":8657,"children":8658},{"style":2838},[8659],{"type":2479,"value":3311},{"type":2464,"tag":2744,"props":8661,"children":8662},{"style":2756},[8663],{"type":2479,"value":8535},{"type":2464,"tag":2744,"props":8665,"children":8666},{"style":2838},[8667],{"type":2479,"value":2878},{"type":2464,"tag":2744,"props":8669,"children":8670},{"class":2746,"line":2881},[8671],{"type":2464,"tag":2744,"props":8672,"children":8673},{"emptyLinePlaceholder":3687},[8674],{"type":2479,"value":3690},{"type":2464,"tag":2744,"props":8676,"children":8677},{"class":2746,"line":2453},[8678,8682,8687,8691,8695],{"type":2464,"tag":2744,"props":8679,"children":8680},{"style":3712},[8681],{"type":2479,"value":7629},{"type":2464,"tag":2744,"props":8683,"children":8684},{"style":2832},[8685],{"type":2479,"value":8686}," client ",{"type":2464,"tag":2744,"props":8688,"children":8689},{"style":2838},[8690],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":8692,"children":8693},{"style":2826},[8694],{"type":2479,"value":8611},{"type":2464,"tag":2744,"props":8696,"children":8697},{"style":2832},[8698],{"type":2479,"value":3829},{"type":2464,"tag":2744,"props":8700,"children":8701},{"class":2746,"line":3046},[8702,8706,8711,8715,8719,8723,8728,8732,8738],{"type":2464,"tag":2744,"props":8703,"children":8704},{"style":3712},[8705],{"type":2479,"value":7629},{"type":2464,"tag":2744,"props":8707,"children":8708},{"style":2832},[8709],{"type":2479,"value":8710}," user ",{"type":2464,"tag":2744,"props":8712,"children":8713},{"style":2838},[8714],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":8716,"children":8717},{"style":2815},[8718],{"type":2479,"value":3857},{"type":2464,"tag":2744,"props":8720,"children":8721},{"style":2826},[8722],{"type":2479,"value":8647},{"type":2464,"tag":2744,"props":8724,"children":8725},{"style":2832},[8726],{"type":2479,"value":8727},"(client",{"type":2464,"tag":2744,"props":8729,"children":8730},{"style":2838},[8731],{"type":2479,"value":3654},{"type":2464,"tag":2744,"props":8733,"children":8735},{"style":8734},"--shiki-light:#F76D47;--shiki-default:#F76D47;--shiki-dark:#F78C6C",[8736],{"type":2479,"value":8737}," 42",{"type":2464,"tag":2744,"props":8739,"children":8740},{"style":2832},[8741],{"type":2479,"value":2900},{"type":2464,"tag":2744,"props":8743,"children":8744},{"class":2746,"line":3064},[8745,8749,8753],{"type":2464,"tag":2744,"props":8746,"children":8747},{"style":2838},[8748],{"type":2479,"value":5383},{"type":2464,"tag":2744,"props":8750,"children":8751},{"style":2847},[8752],{"type":2479,"value":5260},{"type":2464,"tag":2744,"props":8754,"children":8755},{"style":2838},[8756],{"type":2479,"value":5293},{"type":2464,"tag":2465,"props":8758,"children":8759},{},[8760,8762,8766],{"type":2479,"value":8761},"You can also, still as an ",{"type":2464,"tag":2563,"props":8763,"children":8764},{},[8765],{"type":2479,"value":8527},{"type":2479,"value":8767}," feature, import the query builder to the client.",{"type":2464,"tag":2465,"props":8769,"children":8770},{},[8771],{"type":2479,"value":8772},"I guess that can be useful for a super-admin\u002Finternal dashboard, but use it at your own risks in terms of security access.",{"type":2464,"tag":2734,"props":8774,"children":8776},{"className":5241,"code":8775,"language":5243,"meta":2459,"style":2459},"\u003Cscript setup lang=\"ts\">\nimport e, { type $infer } from '#edgedb\u002Fbuilder'\n\nconst query = e.select(e.Movie, () => ({ id: true, title: true }))\ntype result = $infer\u003Ctypeof query>\n\u002F\u002F   ^ { id: string; title: string }[]\n\u003C\u002Fscript>\n",[8777],{"type":2464,"tag":2726,"props":8778,"children":8779},{"__ignoreMap":2459},[8780,8819,8868,8875,8976,9011,9019],{"type":2464,"tag":2744,"props":8781,"children":8782},{"class":2746,"line":2445},[8783,8787,8791,8795,8799,8803,8807,8811,8815],{"type":2464,"tag":2744,"props":8784,"children":8785},{"style":2838},[8786],{"type":2479,"value":5255},{"type":2464,"tag":2744,"props":8788,"children":8789},{"style":2847},[8790],{"type":2479,"value":5260},{"type":2464,"tag":2744,"props":8792,"children":8793},{"style":3712},[8794],{"type":2479,"value":5265},{"type":2464,"tag":2744,"props":8796,"children":8797},{"style":3712},[8798],{"type":2479,"value":5270},{"type":2464,"tag":2744,"props":8800,"children":8801},{"style":2838},[8802],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":8804,"children":8805},{"style":2838},[8806],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":8808,"children":8809},{"style":2756},[8810],{"type":2479,"value":3316},{"type":2464,"tag":2744,"props":8812,"children":8813},{"style":2838},[8814],{"type":2479,"value":5280},{"type":2464,"tag":2744,"props":8816,"children":8817},{"style":2838},[8818],{"type":2479,"value":5293},{"type":2464,"tag":2744,"props":8820,"children":8821},{"class":2746,"line":2441},[8822,8826,8830,8834,8838,8842,8847,8851,8855,8859,8864],{"type":2464,"tag":2744,"props":8823,"children":8824},{"style":2815},[8825],{"type":2479,"value":3639},{"type":2464,"tag":2744,"props":8827,"children":8828},{"style":2832},[8829],{"type":2479,"value":4931},{"type":2464,"tag":2744,"props":8831,"children":8832},{"style":2838},[8833],{"type":2479,"value":3654},{"type":2464,"tag":2744,"props":8835,"children":8836},{"style":2838},[8837],{"type":2479,"value":3644},{"type":2464,"tag":2744,"props":8839,"children":8840},{"style":2815},[8841],{"type":2479,"value":5305},{"type":2464,"tag":2744,"props":8843,"children":8844},{"style":2832},[8845],{"type":2479,"value":8846}," $infer",{"type":2464,"tag":2744,"props":8848,"children":8849},{"style":2838},[8850],{"type":2479,"value":3664},{"type":2464,"tag":2744,"props":8852,"children":8853},{"style":2815},[8854],{"type":2479,"value":3669},{"type":2464,"tag":2744,"props":8856,"children":8857},{"style":2838},[8858],{"type":2479,"value":3311},{"type":2464,"tag":2744,"props":8860,"children":8861},{"style":2756},[8862],{"type":2479,"value":8863},"#edgedb\u002Fbuilder",{"type":2464,"tag":2744,"props":8865,"children":8866},{"style":2838},[8867],{"type":2479,"value":2878},{"type":2464,"tag":2744,"props":8869,"children":8870},{"class":2746,"line":2863},[8871],{"type":2464,"tag":2744,"props":8872,"children":8873},{"emptyLinePlaceholder":3687},[8874],{"type":2479,"value":3690},{"type":2464,"tag":2744,"props":8876,"children":8877},{"class":2746,"line":2881},[8878,8882,8887,8891,8895,8899,8903,8908,8912,8917,8921,8926,8930,8934,8938,8942,8946,8950,8954,8959,8963,8967,8971],{"type":2464,"tag":2744,"props":8879,"children":8880},{"style":3712},[8881],{"type":2479,"value":7629},{"type":2464,"tag":2744,"props":8883,"children":8884},{"style":2832},[8885],{"type":2479,"value":8886}," query ",{"type":2464,"tag":2744,"props":8888,"children":8889},{"style":2838},[8890],{"type":2479,"value":5275},{"type":2464,"tag":2744,"props":8892,"children":8893},{"style":2832},[8894],{"type":2479,"value":4931},{"type":2464,"tag":2744,"props":8896,"children":8897},{"style":2838},[8898],{"type":2479,"value":2610},{"type":2464,"tag":2744,"props":8900,"children":8901},{"style":2826},[8902],{"type":2479,"value":4980},{"type":2464,"tag":2744,"props":8904,"children":8905},{"style":2832},[8906],{"type":2479,"value":8907},"(e",{"type":2464,"tag":2744,"props":8909,"children":8910},{"style":2838},[8911],{"type":2479,"value":2610},{"type":2464,"tag":2744,"props":8913,"children":8914},{"style":2832},[8915],{"type":2479,"value":8916},"Movie",{"type":2464,"tag":2744,"props":8918,"children":8919},{"style":2838},[8920],{"type":2479,"value":3654},{"type":2464,"tag":2744,"props":8922,"children":8923},{"style":2838},[8924],{"type":2479,"value":8925}," ()",{"type":2464,"tag":2744,"props":8927,"children":8928},{"style":3712},[8929],{"type":2479,"value":3736},{"type":2464,"tag":2744,"props":8931,"children":8932},{"style":2832},[8933],{"type":2479,"value":3720},{"type":2464,"tag":2744,"props":8935,"children":8936},{"style":2838},[8937],{"type":2479,"value":4308},{"type":2464,"tag":2744,"props":8939,"children":8940},{"style":2847},[8941],{"type":2479,"value":3786},{"type":2464,"tag":2744,"props":8943,"children":8944},{"style":2838},[8945],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":8947,"children":8948},{"style":3221},[8949],{"type":2479,"value":3224},{"type":2464,"tag":2744,"props":8951,"children":8952},{"style":2838},[8953],{"type":2479,"value":3654},{"type":2464,"tag":2744,"props":8955,"children":8956},{"style":2847},[8957],{"type":2479,"value":8958}," title",{"type":2464,"tag":2744,"props":8960,"children":8961},{"style":2838},[8962],{"type":2479,"value":2855},{"type":2464,"tag":2744,"props":8964,"children":8965},{"style":3221},[8966],{"type":2479,"value":3224},{"type":2464,"tag":2744,"props":8968,"children":8969},{"style":2838},[8970],{"type":2479,"value":3664},{"type":2464,"tag":2744,"props":8972,"children":8973},{"style":2832},[8974],{"type":2479,"value":8975},"))\n",{"type":2464,"tag":2744,"props":8977,"children":8978},{"class":2746,"line":2453},[8979,8984,8989,8993,8997,9002,9007],{"type":2464,"tag":2744,"props":8980,"children":8981},{"style":3712},[8982],{"type":2479,"value":8983},"type",{"type":2464,"tag":2744,"props":8985,"children":8986},{"style":2750},[8987],{"type":2479,"value":8988}," result",{"type":2464,"tag":2744,"props":8990,"children":8991},{"style":2838},[8992],{"type":2479,"value":3758},{"type":2464,"tag":2744,"props":8994,"children":8995},{"style":2750},[8996],{"type":2479,"value":8846},{"type":2464,"tag":2744,"props":8998,"children":8999},{"style":2838},[9000],{"type":2479,"value":9001},"\u003Ctypeof",{"type":2464,"tag":2744,"props":9003,"children":9004},{"style":2832},[9005],{"type":2479,"value":9006}," query",{"type":2464,"tag":2744,"props":9008,"children":9009},{"style":2838},[9010],{"type":2479,"value":5293},{"type":2464,"tag":2744,"props":9012,"children":9013},{"class":2746,"line":3046},[9014],{"type":2464,"tag":2744,"props":9015,"children":9016},{"style":3203},[9017],{"type":2479,"value":9018},"\u002F\u002F   ^ { id: string; title: string }[]\n",{"type":2464,"tag":2744,"props":9020,"children":9021},{"class":2746,"line":3064},[9022,9026,9030],{"type":2464,"tag":2744,"props":9023,"children":9024},{"style":2838},[9025],{"type":2479,"value":5383},{"type":2464,"tag":2744,"props":9027,"children":9028},{"style":2847},[9029],{"type":2479,"value":5260},{"type":2464,"tag":2744,"props":9031,"children":9032},{"style":2838},[9033],{"type":2479,"value":5293},{"type":2464,"tag":2465,"props":9035,"children":9036},{},[9037],{"type":2479,"value":9038},"Be careful with these imports, as if you import wrong queries, you might end up with write operations available to the client, potentially damaging your database.",{"type":2464,"tag":3594,"props":9040,"children":9042},{"id":9041},"how-do-i-run-my-migrations-in-production",[9043],{"type":2479,"value":9044},"How do I run my migrations in production?",{"type":2464,"tag":2553,"props":9046,"children":9047},{},[9048,9053,9065],{"type":2464,"tag":2557,"props":9049,"children":9050},{},[9051],{"type":2479,"value":9052},"Clone your Nuxt project on your production environment",{"type":2464,"tag":2557,"props":9054,"children":9055},{},[9056,9058,9063],{"type":2479,"value":9057},"Ensure you have ",{"type":2464,"tag":2485,"props":9059,"children":9061},{"href":2695,"rel":9060},[2489],[9062],{"type":2479,"value":2699},{"type":2479,"value":9064}," installed on the server",{"type":2464,"tag":2557,"props":9066,"children":9067},{},[9068,9069,9075],{"type":2479,"value":2724},{"type":2464,"tag":2726,"props":9070,"children":9072},{"className":9071},[],[9073],{"type":2479,"value":9074},"edgedb migrate --quiet",{"type":2479,"value":9076}," to your CLI script",{"type":2464,"tag":3594,"props":9078,"children":9080},{"id":9079},"should-i-version-generated-files",[9081],{"type":2479,"value":9082},"Should I version generated files?",{"type":2464,"tag":2465,"props":9084,"children":9085},{},[9086,9088],{"type":2479,"value":9087},"No, as they are generated with your Nuxt client, you should add them to your ",{"type":2464,"tag":2726,"props":9089,"children":9091},{"className":9090},[],[9092],{"type":2479,"value":229},{"type":2464,"tag":2734,"props":9094,"children":9097},{"className":9095,"code":9096,"language":229,"meta":2459,"style":2459},"language-.gitignore shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","**\u002F*.edgeql.ts\ndbschema\u002Fqueries.*\ndbschema\u002Fquery-builder\ndbschema\u002Finterfaces.ts\nqueries\u002F*.query.ts\n",[9098],{"type":2464,"tag":2726,"props":9099,"children":9100},{"__ignoreMap":2459},[9101,9109,9117,9125,9133],{"type":2464,"tag":2744,"props":9102,"children":9103},{"class":2746,"line":2445},[9104],{"type":2464,"tag":2744,"props":9105,"children":9106},{},[9107],{"type":2479,"value":9108},"**\u002F*.edgeql.ts\n",{"type":2464,"tag":2744,"props":9110,"children":9111},{"class":2746,"line":2441},[9112],{"type":2464,"tag":2744,"props":9113,"children":9114},{},[9115],{"type":2479,"value":9116},"dbschema\u002Fqueries.*\n",{"type":2464,"tag":2744,"props":9118,"children":9119},{"class":2746,"line":2863},[9120],{"type":2464,"tag":2744,"props":9121,"children":9122},{},[9123],{"type":2479,"value":9124},"dbschema\u002Fquery-builder\n",{"type":2464,"tag":2744,"props":9126,"children":9127},{"class":2746,"line":2881},[9128],{"type":2464,"tag":2744,"props":9129,"children":9130},{},[9131],{"type":2479,"value":9132},"dbschema\u002Finterfaces.ts\n",{"type":2464,"tag":2744,"props":9134,"children":9135},{"class":2746,"line":2453},[9136],{"type":2464,"tag":2744,"props":9137,"children":9138},{},[9139],{"type":2479,"value":9140},"queries\u002F*.query.ts\n",{"type":2464,"tag":2465,"props":9142,"children":9143},{},[9144,9146,9152],{"type":2479,"value":9145},"You must change these paths accordingly if you change the ",{"type":2464,"tag":2726,"props":9147,"children":9149},{"className":9148},[],[9150],{"type":2479,"value":9151},"**Dir",{"type":2479,"value":9153}," options.",{"type":2464,"tag":3594,"props":9155,"children":9157},{"id":9156},"is-hmr-for-my-database-schema-really-safe",[9158],{"type":2479,"value":9159},"Is HMR for my database schema really safe?",{"type":2464,"tag":2465,"props":9161,"children":9162},{},[9163],{"type":2479,"value":9164},"Well, it depends on when you want to use it.",{"type":2464,"tag":2465,"props":9166,"children":9167},{},[9168,9170,9176],{"type":2479,"value":9169},"I would suggest keeping ",{"type":2464,"tag":2726,"props":9171,"children":9173},{"className":9172},[],[9174],{"type":2479,"value":9175},"watchPrompt",{"type":2479,"value":9177}," enabled while you casually dev on your project.",{"type":2464,"tag":2465,"props":9179,"children":9180},{},[9181],{"type":2479,"value":9182},"That will prevent from running any unwanted migration, and will only prompt when you add new things to your schemas.",{"type":2464,"tag":2465,"props":9184,"children":9185},{},[9186,9188,9193],{"type":2479,"value":9187},"If you want to go fast and know what you are doing, you can set ",{"type":2464,"tag":2726,"props":9189,"children":9191},{"className":9190},[],[9192],{"type":2479,"value":9175},{"type":2479,"value":9194}," to false, and profit from automatic migration creation and applying on any change on your schemas.",{"type":2464,"tag":2465,"props":9196,"children":9197},{},[9198,9200,9206],{"type":2479,"value":9199},"If you do not want any of these features, just set ",{"type":2464,"tag":2726,"props":9201,"children":9203},{"className":9202},[],[9204],{"type":2479,"value":9205},"watch",{"type":2479,"value":9207}," to false and feel safe about changes applied to your development database.",{"type":2464,"tag":5424,"props":9209,"children":9210},{},[9211],{"type":2464,"tag":2465,"props":9212,"children":9213},{},[9214,9216,9221],{"type":2479,"value":9215},"HMR on your database obviously has ",{"type":2464,"tag":2563,"props":9217,"children":9218},{},[9219],{"type":2479,"value":9220},"NO",{"type":2479,"value":9222}," effect in production context.",{"type":2464,"tag":3594,"props":9224,"children":9226},{"id":9225},"why-the-name-isnt-nuxt-edgedb",[9227,9229],{"type":2479,"value":9228},"Why the name isn't ",{"type":2464,"tag":2726,"props":9230,"children":9232},{"className":9231},[],[9233],{"type":2479,"value":2476},{"type":2464,"tag":2465,"props":9235,"children":9236},{},[9237],{"type":2479,"value":9238},"Because that handle is already taken on NPM.",{"type":2464,"tag":2465,"props":9240,"children":9241},{},[9242,9244,9255],{"type":2479,"value":9243},"It seem to be taken by ",{"type":2464,"tag":2485,"props":9245,"children":9248},{"href":9246,"rel":9247},"https:\u002F\u002Fgithub.com\u002Fohmree",[2489],[9249],{"type":2464,"tag":2726,"props":9250,"children":9252},{"className":9251},[],[9253],{"type":2479,"value":9254},"ohmree",{"type":2479,"value":9256},", but the package seem inactive.",{"type":2464,"tag":2465,"props":9258,"children":9259},{},[9260],{"type":2479,"value":9261},"If anyone happens to know him, I would be happy to get in touch with him!",{"type":2464,"tag":3594,"props":9263,"children":9265},{"id":9264},"contributions",[9266],{"type":2479,"value":9267},"Contributions",{"type":2464,"tag":2465,"props":9269,"children":9270},{},[9271],{"type":2479,"value":9272},"There is still plenty of great features to build for this integration.",{"type":2464,"tag":2465,"props":9274,"children":9275},{},[9276],{"type":2479,"value":9277},"I would be happy to receive and review any Pull Request.",{"type":2464,"tag":2547,"props":9279,"children":9281},{"id":9280},"development",[9282],{"type":2479,"value":9283},"Development",{"type":2464,"tag":2734,"props":9285,"children":9287},{"className":2736,"code":9286,"language":2738,"meta":2459,"style":2459},"# Install dependencies\nnpm install\n\n# Generate type stubs\nnpm run dev:prepare\n\n# Develop with the playground\nnpm run dev\n\n# Build the playground\nnpm run dev:build\n\n# Run ESLint\nnpm run lint\n\n# Run Vitest\nnpm run test\nnpm run test:watch\n\n# Release new version\nnpm run release\n",[9288],{"type":2464,"tag":2726,"props":9289,"children":9290},{"__ignoreMap":2459},[9291,9299,9311,9318,9326,9342,9349,9357,9372,9379,9387,9403,9410,9418,9434,9441,9449,9465,9481,9488,9496],{"type":2464,"tag":2744,"props":9292,"children":9293},{"class":2746,"line":2445},[9294],{"type":2464,"tag":2744,"props":9295,"children":9296},{"style":3203},[9297],{"type":2479,"value":9298},"# Install dependencies\n",{"type":2464,"tag":2744,"props":9300,"children":9301},{"class":2746,"line":2441},[9302,9307],{"type":2464,"tag":2744,"props":9303,"children":9304},{"style":2750},[9305],{"type":2479,"value":9306},"npm",{"type":2464,"tag":2744,"props":9308,"children":9309},{"style":2756},[9310],{"type":2479,"value":3019},{"type":2464,"tag":2744,"props":9312,"children":9313},{"class":2746,"line":2863},[9314],{"type":2464,"tag":2744,"props":9315,"children":9316},{"emptyLinePlaceholder":3687},[9317],{"type":2479,"value":3690},{"type":2464,"tag":2744,"props":9319,"children":9320},{"class":2746,"line":2881},[9321],{"type":2464,"tag":2744,"props":9322,"children":9323},{"style":3203},[9324],{"type":2479,"value":9325},"# Generate type stubs\n",{"type":2464,"tag":2744,"props":9327,"children":9328},{"class":2746,"line":2453},[9329,9333,9337],{"type":2464,"tag":2744,"props":9330,"children":9331},{"style":2750},[9332],{"type":2479,"value":9306},{"type":2464,"tag":2744,"props":9334,"children":9335},{"style":2756},[9336],{"type":2479,"value":3086},{"type":2464,"tag":2744,"props":9338,"children":9339},{"style":2756},[9340],{"type":2479,"value":9341}," dev:prepare\n",{"type":2464,"tag":2744,"props":9343,"children":9344},{"class":2746,"line":3046},[9345],{"type":2464,"tag":2744,"props":9346,"children":9347},{"emptyLinePlaceholder":3687},[9348],{"type":2479,"value":3690},{"type":2464,"tag":2744,"props":9350,"children":9351},{"class":2746,"line":3064},[9352],{"type":2464,"tag":2744,"props":9353,"children":9354},{"style":3203},[9355],{"type":2479,"value":9356},"# Develop with the playground\n",{"type":2464,"tag":2744,"props":9358,"children":9359},{"class":2746,"line":3076},[9360,9364,9368],{"type":2464,"tag":2744,"props":9361,"children":9362},{"style":2750},[9363],{"type":2479,"value":9306},{"type":2464,"tag":2744,"props":9365,"children":9366},{"style":2756},[9367],{"type":2479,"value":3086},{"type":2464,"tag":2744,"props":9369,"children":9370},{"style":2756},[9371],{"type":2479,"value":3091},{"type":2464,"tag":2744,"props":9373,"children":9374},{"class":2746,"line":2437},[9375],{"type":2464,"tag":2744,"props":9376,"children":9377},{"emptyLinePlaceholder":3687},[9378],{"type":2479,"value":3690},{"type":2464,"tag":2744,"props":9380,"children":9381},{"class":2746,"line":3287},[9382],{"type":2464,"tag":2744,"props":9383,"children":9384},{"style":3203},[9385],{"type":2479,"value":9386},"# Build the playground\n",{"type":2464,"tag":2744,"props":9388,"children":9389},{"class":2746,"line":3296},[9390,9394,9398],{"type":2464,"tag":2744,"props":9391,"children":9392},{"style":2750},[9393],{"type":2479,"value":9306},{"type":2464,"tag":2744,"props":9395,"children":9396},{"style":2756},[9397],{"type":2479,"value":3086},{"type":2464,"tag":2744,"props":9399,"children":9400},{"style":2756},[9401],{"type":2479,"value":9402}," dev:build\n",{"type":2464,"tag":2744,"props":9404,"children":9405},{"class":2746,"line":3327},[9406],{"type":2464,"tag":2744,"props":9407,"children":9408},{"emptyLinePlaceholder":3687},[9409],{"type":2479,"value":3690},{"type":2464,"tag":2744,"props":9411,"children":9412},{"class":2746,"line":3336},[9413],{"type":2464,"tag":2744,"props":9414,"children":9415},{"style":3203},[9416],{"type":2479,"value":9417},"# Run ESLint\n",{"type":2464,"tag":2744,"props":9419,"children":9420},{"class":2746,"line":3366},[9421,9425,9429],{"type":2464,"tag":2744,"props":9422,"children":9423},{"style":2750},[9424],{"type":2479,"value":9306},{"type":2464,"tag":2744,"props":9426,"children":9427},{"style":2756},[9428],{"type":2479,"value":3086},{"type":2464,"tag":2744,"props":9430,"children":9431},{"style":2756},[9432],{"type":2479,"value":9433}," lint\n",{"type":2464,"tag":2744,"props":9435,"children":9436},{"class":2746,"line":3375},[9437],{"type":2464,"tag":2744,"props":9438,"children":9439},{"emptyLinePlaceholder":3687},[9440],{"type":2479,"value":3690},{"type":2464,"tag":2744,"props":9442,"children":9443},{"class":2746,"line":3404},[9444],{"type":2464,"tag":2744,"props":9445,"children":9446},{"style":3203},[9447],{"type":2479,"value":9448},"# Run Vitest\n",{"type":2464,"tag":2744,"props":9450,"children":9451},{"class":2746,"line":3413},[9452,9456,9460],{"type":2464,"tag":2744,"props":9453,"children":9454},{"style":2750},[9455],{"type":2479,"value":9306},{"type":2464,"tag":2744,"props":9457,"children":9458},{"style":2756},[9459],{"type":2479,"value":3086},{"type":2464,"tag":2744,"props":9461,"children":9462},{"style":2756},[9463],{"type":2479,"value":9464}," test\n",{"type":2464,"tag":2744,"props":9466,"children":9467},{"class":2746,"line":3434},[9468,9472,9476],{"type":2464,"tag":2744,"props":9469,"children":9470},{"style":2750},[9471],{"type":2479,"value":9306},{"type":2464,"tag":2744,"props":9473,"children":9474},{"style":2756},[9475],{"type":2479,"value":3086},{"type":2464,"tag":2744,"props":9477,"children":9478},{"style":2756},[9479],{"type":2479,"value":9480}," test:watch\n",{"type":2464,"tag":2744,"props":9482,"children":9483},{"class":2746,"line":3443},[9484],{"type":2464,"tag":2744,"props":9485,"children":9486},{"emptyLinePlaceholder":3687},[9487],{"type":2479,"value":3690},{"type":2464,"tag":2744,"props":9489,"children":9490},{"class":2746,"line":3464},[9491],{"type":2464,"tag":2744,"props":9492,"children":9493},{"style":3203},[9494],{"type":2479,"value":9495},"# Release new version\n",{"type":2464,"tag":2744,"props":9497,"children":9498},{"class":2746,"line":3473},[9499,9503,9507],{"type":2464,"tag":2744,"props":9500,"children":9501},{"style":2750},[9502],{"type":2479,"value":9306},{"type":2464,"tag":2744,"props":9504,"children":9505},{"style":2756},[9506],{"type":2479,"value":3086},{"type":2464,"tag":2744,"props":9508,"children":9509},{"style":2756},[9510],{"type":2479,"value":9511}," release\n",{"type":2464,"tag":2547,"props":9513,"children":9515},{"id":9514},"sponsors",[9516],{"type":2479,"value":9517},"Sponsors",{"type":2464,"tag":2465,"props":9519,"children":9520},{},[9521],{"type":2464,"tag":2485,"props":9522,"children":9525},{"href":9523,"rel":9524},"https:\u002F\u002Fthecompaniesapi.com",[2489],[9526],{"type":2464,"tag":2469,"props":9527,"children":9530},{"alt":9528,"src":9529},"thecompaniesapi.com",".\u002F.github\u002Fthecompaniesapi.png",[],{"type":2464,"tag":9532,"props":9533,"children":9534},"style",{},[9535],{"type":2479,"value":9536},"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":2459,"searchDepth":2441,"depth":2441,"links":9538},[9539,9540,9541,9542,9543,9549,9562,9563,9572,9573],{"id":2549,"depth":2441,"text":450},{"id":2712,"depth":2441,"text":2715},{"id":2955,"depth":2441,"text":2958},{"id":3094,"depth":2441,"text":3097},{"id":3576,"depth":2441,"text":3579,"children":9544},[9545,9546,9547,9548],{"id":3596,"depth":2863,"text":3599},{"id":3995,"depth":2863,"text":3998},{"id":4702,"depth":2863,"text":4705},{"id":5223,"depth":2863,"text":5226},{"id":5394,"depth":2441,"text":5397,"children":9550},[9551,9553,9554,9555,9556,9557,9558,9559,9560,9561],{"id":5443,"depth":2863,"text":9552},"Enable the auth option in your Nuxt configuration",{"id":5573,"depth":2863,"text":5576},{"id":5937,"depth":2863,"text":5940},{"id":6050,"depth":2863,"text":6053},{"id":6705,"depth":2863,"text":2678},{"id":7559,"depth":2863,"text":7562},{"id":7815,"depth":2863,"text":7818},{"id":8107,"depth":2863,"text":8110},{"id":8196,"depth":2863,"text":8199},{"id":8336,"depth":2863,"text":8339},{"id":8403,"depth":2441,"text":8406},{"id":8482,"depth":2441,"text":8485,"children":9564},[9565,9566,9567,9568,9569,9571],{"id":8488,"depth":2863,"text":8491},{"id":9041,"depth":2863,"text":9044},{"id":9079,"depth":2863,"text":9082},{"id":9156,"depth":2863,"text":9159},{"id":9225,"depth":2863,"text":9570},"Why the name isn't nuxt-edgedb",{"id":9264,"depth":2863,"text":9267},{"id":9280,"depth":2441,"text":9283},{"id":9514,"depth":2441,"text":9517},{"v5":9575,"v4":9576,"v3":9577,"v2":9578},"5 (nightly)","4.5.2","3.21.11","2.18.1"]