[{"data":1,"prerenderedAt":2175},["ShallowReactive",2],{"navigation-landing-en":3,"navigation-nuxt-auto-en":180,"navigation-nuxt-protokit-en":338,"/docs/nuxt-auto/getting-started/installation-en":444,"/docs/nuxt-auto/getting-started/installation-surround-en":2170},[4,8,13,28,41,51,64,77,94,110,134,150,157,172],{"title":5,"path":6,"stem":7},"Overview","/docs/landing","0.docs/1.landing/001.index",{"title":9,"path":10,"stem":11,"badge":12},"Built-in Features","/docs/landing/built-in-features","0.docs/1.landing/002.built-in-features","New",{"title":14,"path":15,"stem":16,"children":17,"icon":27},"Content Foundation","/docs/landing/content","0.docs/1.landing/02.content/1.index",[18,19,23],{"title":5,"path":15,"stem":16},{"title":20,"path":21,"stem":22},"Details","/docs/landing/content/details","0.docs/1.landing/02.content/2.details",{"title":24,"path":25,"stem":26},"Technical","/docs/landing/content/technical","0.docs/1.landing/02.content/4.technical","i-heroicons-document-text",{"title":29,"path":30,"stem":31,"children":32,"icon":40},"Regional Content","/docs/landing/regional","0.docs/1.landing/03.regional/1.index",[33,34,37],{"title":5,"path":30,"stem":31},{"title":20,"path":35,"stem":36},"/docs/landing/regional/details","0.docs/1.landing/03.regional/2.details",{"title":24,"path":38,"stem":39},"/docs/landing/regional/technical","0.docs/1.landing/03.regional/4.technical","i-heroicons-globe-alt",{"title":42,"path":43,"stem":44,"children":45,"icon":50},"Multi-language","/docs/landing/multilang","0.docs/1.landing/04.multilang/1.index",[46,47],{"title":5,"path":43,"stem":44},{"title":20,"path":48,"stem":49},"/docs/landing/multilang/details","0.docs/1.landing/04.multilang/2.details","i-heroicons-language",{"title":52,"path":53,"stem":54,"children":55,"icon":63},"Blog","/docs/landing/blog","0.docs/1.landing/05.blog/1.index",[56,57,60],{"title":5,"path":53,"stem":54},{"title":20,"path":58,"stem":59},"/docs/landing/blog/details","0.docs/1.landing/05.blog/2.details",{"title":24,"path":61,"stem":62},"/docs/landing/blog/technical","0.docs/1.landing/05.blog/4.technical","i-heroicons-pencil-square",{"title":65,"path":66,"stem":67,"children":68,"icon":76},"Documentation","/docs/landing/docs","0.docs/1.landing/06.docs/1.index",[69,70,73],{"title":5,"path":66,"stem":67},{"title":20,"path":71,"stem":72},"/docs/landing/docs/details","0.docs/1.landing/06.docs/2.details",{"title":24,"path":74,"stem":75},"/docs/landing/docs/technical","0.docs/1.landing/06.docs/4.technical","i-heroicons-book-open",{"title":78,"path":79,"stem":80,"children":81,"icon":93},"Forms","/docs/landing/forms","0.docs/1.landing/07.forms/1.index",[82,83,86,90],{"title":5,"path":79,"stem":80},{"title":20,"path":84,"stem":85},"/docs/landing/forms/details","0.docs/1.landing/07.forms/2.details",{"title":87,"path":88,"stem":89},"Admin","/docs/landing/forms/admin","0.docs/1.landing/07.forms/3.admin",{"title":24,"path":91,"stem":92},"/docs/landing/forms/technical","0.docs/1.landing/07.forms/4.technical","i-heroicons-clipboard-document-list",{"title":95,"path":96,"stem":97,"children":98,"icon":109},"Email","/docs/landing/email","0.docs/1.landing/08.email/1.index",[99,100,103,106],{"title":5,"path":96,"stem":97},{"title":20,"path":101,"stem":102},"/docs/landing/email/details","0.docs/1.landing/08.email/2.details",{"title":87,"path":104,"stem":105},"/docs/landing/email/admin","0.docs/1.landing/08.email/3.admin",{"title":24,"path":107,"stem":108},"/docs/landing/email/technical","0.docs/1.landing/08.email/4.technical","i-heroicons-envelope",{"title":111,"path":112,"stem":113,"children":114,"icon":133},"Feedback Platform","/docs/landing/feedback","0.docs/1.landing/09.feedback/1.index",[115,116,119,122,125,129],{"title":5,"path":112,"stem":113},{"title":20,"path":117,"stem":118},"/docs/landing/feedback/details","0.docs/1.landing/09.feedback/2.details",{"title":87,"path":120,"stem":121},"/docs/landing/feedback/admin","0.docs/1.landing/09.feedback/3.admin",{"title":24,"path":123,"stem":124},"/docs/landing/feedback/technical","0.docs/1.landing/09.feedback/4.technical",{"title":126,"path":127,"stem":128},"Compare vs SaaS","/docs/landing/feedback/compare","0.docs/1.landing/09.feedback/5.compare",{"title":130,"path":131,"stem":132},"FAQ","/docs/landing/feedback/faq","0.docs/1.landing/09.feedback/6.faq","i-heroicons-chat-bubble-left-right",{"title":135,"path":136,"stem":137,"children":138,"icon":149},"Storage","/docs/landing/storage","0.docs/1.landing/10.storage/1.index",[139,140,143,146],{"title":5,"path":136,"stem":137},{"title":20,"path":141,"stem":142},"/docs/landing/storage/details","0.docs/1.landing/10.storage/2.details",{"title":87,"path":144,"stem":145},"/docs/landing/storage/admin","0.docs/1.landing/10.storage/3.admin",{"title":24,"path":147,"stem":148},"/docs/landing/storage/technical","0.docs/1.landing/10.storage/4.technical","i-heroicons-circle-stack",{"title":151,"path":152,"stem":153,"children":154,"icon":156},"Offline First","/docs/landing/offline-first","0.docs/1.landing/11.offline-first/1.index",[155],{"title":151,"path":152,"stem":153},"i-heroicons-users",{"title":158,"path":159,"stem":160,"children":161,"icon":156},"Yjs Sync","/docs/landing/yjs-sync","0.docs/1.landing/12.yjs-sync/1.index",[162,163,166,169],{"title":5,"path":159,"stem":160},{"title":20,"path":164,"stem":165},"/docs/landing/yjs-sync/details","0.docs/1.landing/12.yjs-sync/2.details",{"title":87,"path":167,"stem":168},"/docs/landing/yjs-sync/admin","0.docs/1.landing/12.yjs-sync/3.admin",{"title":24,"path":170,"stem":171},"/docs/landing/yjs-sync/technical","0.docs/1.landing/12.yjs-sync/4.technical",{"title":173,"path":174,"stem":175,"children":176,"badge":178,"icon":179},"Newsletter","/docs/landing/newsletter","0.docs/1.landing/13.newsletter/index",[177],{"title":173,"path":174,"stem":175,"badge":178},"Coming Soon","i-lucide-send",[181,184,202,298],{"title":5,"path":182,"stem":183},"/docs/nuxt-auto","0.docs/3.nuxt-auto/index",{"title":185,"path":186,"stem":187,"children":188,"page":201},"Getting Started","/docs/nuxt-auto/getting-started","0.docs/3.nuxt-auto/1.getting-started",[189,193,197],{"title":190,"path":191,"stem":192},"Introduction","/docs/nuxt-auto/getting-started/introduction","0.docs/3.nuxt-auto/1.getting-started/1.introduction",{"title":194,"path":195,"stem":196},"Installation","/docs/nuxt-auto/getting-started/installation","0.docs/3.nuxt-auto/1.getting-started/2.installation",{"title":198,"path":199,"stem":200},"Quick Start","/docs/nuxt-auto/getting-started/quick-start","0.docs/3.nuxt-auto/1.getting-started/3.quick-start",false,{"title":203,"path":204,"stem":205,"children":206,"page":201},"Auto API","/docs/nuxt-auto/auto-api","0.docs/3.nuxt-auto/2.auto-api",[207,210,214,218,222,226,230,234,238,242,246,250,254,258,262,266,270,274,278,282,286,290,294],{"title":185,"path":208,"stem":209},"/docs/nuxt-auto/auto-api/getting-started","0.docs/3.nuxt-auto/2.auto-api/1.getting-started",{"title":211,"path":212,"stem":213},"Aggregations","/docs/nuxt-auto/auto-api/aggregations","0.docs/3.nuxt-auto/2.auto-api/10.aggregations",{"title":215,"path":216,"stem":217},"Lifecycle Hooks","/docs/nuxt-auto/auto-api/lifecycle-hooks","0.docs/3.nuxt-auto/2.auto-api/11.lifecycle-hooks",{"title":219,"path":220,"stem":221},"Many-to-Many (M2M) Relationships","/docs/nuxt-auto/auto-api/m2m-relationships","0.docs/3.nuxt-auto/2.auto-api/12.m2m-relationships",{"title":223,"path":224,"stem":225},"Plugin System","/docs/nuxt-auto/auto-api/plugin-system","0.docs/3.nuxt-auto/2.auto-api/13.plugin-system",{"title":227,"path":228,"stem":229},"Database Adapters","/docs/nuxt-auto/auto-api/database-adapters","0.docs/3.nuxt-auto/2.auto-api/14.database-adapters",{"title":231,"path":232,"stem":233},"Custom Endpoints","/docs/nuxt-auto/auto-api/custom-endpoints","0.docs/3.nuxt-auto/2.auto-api/15.custom-endpoints",{"title":235,"path":236,"stem":237},"Multi-Tenancy","/docs/nuxt-auto/auto-api/multi-tenancy","0.docs/3.nuxt-auto/2.auto-api/16.multi-tenancy",{"title":239,"path":240,"stem":241},"Validation","/docs/nuxt-auto/auto-api/validation","0.docs/3.nuxt-auto/2.auto-api/2.validation",{"title":243,"path":244,"stem":245},"Rate Limiting","/docs/nuxt-auto/auto-api/rate-limiting","0.docs/3.nuxt-auto/2.auto-api/20.rate-limiting",{"title":247,"path":248,"stem":249},"Request Metadata Plugin","/docs/nuxt-auto/auto-api/request-metadata","0.docs/3.nuxt-auto/2.auto-api/21.request-metadata",{"title":251,"path":252,"stem":253},"Plugin Catalog","/docs/nuxt-auto/auto-api/plugin-catalog","0.docs/3.nuxt-auto/2.auto-api/22.plugin-catalog",{"title":255,"path":256,"stem":257},"Handler Overrides","/docs/nuxt-auto/auto-api/handler-overrides","0.docs/3.nuxt-auto/2.auto-api/3.handler-overrides",{"title":259,"path":260,"stem":261},"Cloudflare D1","/docs/nuxt-auto/auto-api/cloudflare-d1","0.docs/3.nuxt-auto/2.auto-api/30.cloudflare-d1",{"title":263,"path":264,"stem":265},"SQLite to D1 Migration","/docs/nuxt-auto/auto-api/migration-sqlite-d1","0.docs/3.nuxt-auto/2.auto-api/31.migration-sqlite-d1",{"title":267,"path":268,"stem":269},"Frontend Composables","/docs/nuxt-auto/auto-api/frontend-composables","0.docs/3.nuxt-auto/2.auto-api/32.frontend-composables",{"title":271,"path":272,"stem":273},"Testing","/docs/nuxt-auto/auto-api/testing","0.docs/3.nuxt-auto/2.auto-api/33.testing",{"title":275,"path":276,"stem":277},"Pagination","/docs/nuxt-auto/auto-api/pagination","0.docs/3.nuxt-auto/2.auto-api/4.pagination",{"title":279,"path":280,"stem":281},"Soft Deletes","/docs/nuxt-auto/auto-api/soft-deletes","0.docs/3.nuxt-auto/2.auto-api/5.soft-deletes",{"title":283,"path":284,"stem":285},"Authentication & Authorization","/docs/nuxt-auto/auto-api/authentication-authorization","0.docs/3.nuxt-auto/2.auto-api/6.authentication-authorization",{"title":287,"path":288,"stem":289},"Better-Auth Integration","/docs/nuxt-auto/auto-api/better-auth","0.docs/3.nuxt-auto/2.auto-api/7.better-auth",{"title":291,"path":292,"stem":293},"Nested Relations","/docs/nuxt-auto/auto-api/nested-relationships","0.docs/3.nuxt-auto/2.auto-api/8.nested-relationships",{"title":295,"path":296,"stem":297},"Bulk Operations","/docs/nuxt-auto/auto-api/bulk-operations","0.docs/3.nuxt-auto/2.auto-api/9.bulk-operations",{"title":299,"path":300,"stem":301,"children":302,"page":201},"Auto Admin","/docs/nuxt-auto/auto-admin","0.docs/3.nuxt-auto/3.auto-admin",[303,306,310,314,318,322,326,330,334],{"title":185,"path":304,"stem":305},"/docs/nuxt-auto/auto-admin/getting-started","0.docs/3.nuxt-auto/3.auto-admin/1.getting-started",{"title":307,"path":308,"stem":309},"Configuration & Theming","/docs/nuxt-auto/auto-admin/configuration-theming","0.docs/3.nuxt-auto/3.auto-admin/2.configuration-theming",{"title":311,"path":312,"stem":313},"Resource Configuration","/docs/nuxt-auto/auto-admin/resource-configuration","0.docs/3.nuxt-auto/3.auto-admin/3.resource-configuration",{"title":315,"path":316,"stem":317},"Form Fields & Widgets","/docs/nuxt-auto/auto-admin/form-fields-widgets","0.docs/3.nuxt-auto/3.auto-admin/4.form-fields-widgets",{"title":319,"path":320,"stem":321},"Permissions","/docs/nuxt-auto/auto-admin/permissions","0.docs/3.nuxt-auto/3.auto-admin/5.permissions",{"title":323,"path":324,"stem":325},"Custom Pages","/docs/nuxt-auto/auto-admin/custom-pages","0.docs/3.nuxt-auto/3.auto-admin/6.custom-pages",{"title":327,"path":328,"stem":329},"M2M Relationships","/docs/nuxt-auto/auto-admin/m2m-relationships","0.docs/3.nuxt-auto/3.auto-admin/7.m2m-relationships",{"title":331,"path":332,"stem":333},"Custom Actions","/docs/nuxt-auto/auto-admin/custom-actions","0.docs/3.nuxt-auto/3.auto-admin/8.custom-actions",{"title":335,"path":336,"stem":337},"Composables","/docs/nuxt-auto/auto-admin/composables","0.docs/3.nuxt-auto/3.auto-admin/9.composables",[339,342,355,382,400,415,425],{"title":5,"path":340,"stem":341},"/docs/nuxt-protokit","0.docs/4.nuxt-protokit/index",{"title":185,"path":343,"stem":344,"children":345,"icon":354},"/docs/nuxt-protokit/getting-started","0.docs/4.nuxt-protokit/1.getting-started/1.index",[346,347,351],{"title":190,"path":343,"stem":344},{"title":348,"path":349,"stem":350},"Core Concepts","/docs/nuxt-protokit/getting-started/concepts","0.docs/4.nuxt-protokit/1.getting-started/2.concepts",{"title":198,"path":352,"stem":353},"/docs/nuxt-protokit/getting-started/quick-start","0.docs/4.nuxt-protokit/1.getting-started/3.quick-start","i-lucide-rocket",{"title":356,"path":357,"stem":358,"children":359,"icon":381},"Schemas","/docs/nuxt-protokit/schemas","0.docs/4.nuxt-protokit/2.schemas/1.index",[360,361,365,369,373,377],{"title":5,"path":357,"stem":358},{"title":362,"path":363,"stem":364},"Field Types","/docs/nuxt-protokit/schemas/fields","0.docs/4.nuxt-protokit/2.schemas/2.fields",{"title":366,"path":367,"stem":368},"Collections","/docs/nuxt-protokit/schemas/collections","0.docs/4.nuxt-protokit/2.schemas/3.collections",{"title":370,"path":371,"stem":372},"Derived & Computed","/docs/nuxt-protokit/schemas/derived-computed","0.docs/4.nuxt-protokit/2.schemas/4.derived-computed",{"title":374,"path":375,"stem":376},"Connections","/docs/nuxt-protokit/schemas/connections","0.docs/4.nuxt-protokit/2.schemas/5.connections",{"title":378,"path":379,"stem":380},"Visualizations & Layouts","/docs/nuxt-protokit/schemas/visualizations","0.docs/4.nuxt-protokit/2.schemas/6.visualizations","i-lucide-file-code",{"title":335,"path":383,"stem":384,"children":385,"icon":399},"/docs/nuxt-protokit/composables","0.docs/4.nuxt-protokit/3.composables/1.index",[386,387,391,395],{"title":5,"path":383,"stem":384},{"title":388,"path":389,"stem":390},"usePrototype","/docs/nuxt-protokit/composables/use-prototype","0.docs/4.nuxt-protokit/3.composables/2.use-prototype",{"title":392,"path":393,"stem":394},"useProtoDoc","/docs/nuxt-protokit/composables/use-proto-doc","0.docs/4.nuxt-protokit/3.composables/3.use-proto-doc",{"title":396,"path":397,"stem":398},"useProtoCollection","/docs/nuxt-protokit/composables/use-proto-collection","0.docs/4.nuxt-protokit/3.composables/4.use-proto-collection","i-lucide-layers",{"title":401,"path":402,"stem":403,"children":404,"icon":414},"Components","/docs/nuxt-protokit/components","0.docs/4.nuxt-protokit/4.components/1.index",[405,406,410],{"title":5,"path":402,"stem":403},{"title":407,"path":408,"stem":409},"ProtoTool","/docs/nuxt-protokit/components/proto-tool","0.docs/4.nuxt-protokit/4.components/2.proto-tool",{"title":411,"path":412,"stem":413},"ProtoCrudModal","/docs/nuxt-protokit/components/proto-crud-modal","0.docs/4.nuxt-protokit/4.components/3.proto-crud-modal","i-lucide-puzzle",{"title":151,"path":416,"stem":417,"children":418,"icon":424},"/docs/nuxt-protokit/offline-first","0.docs/4.nuxt-protokit/5.offline-first/1.index",[419,420],{"title":151,"path":416,"stem":417},{"title":421,"path":422,"stem":423},"Corruption Recovery","/docs/nuxt-protokit/offline-first/corruption-recovery","0.docs/4.nuxt-protokit/5.offline-first/2.corruption-recovery","i-lucide-wifi-off",{"title":426,"icon":427,"path":428,"stem":429,"children":430},"Advanced","i-lucide-graduation-cap","/docs/nuxt-protokit/advanced","0.docs/4.nuxt-protokit/6.advanced/1.index",[431,432,436,440],{"title":5,"path":428,"stem":429},{"title":433,"path":434,"stem":435},"Multi-Tool Apps","/docs/nuxt-protokit/advanced/building-a-toolkit","0.docs/4.nuxt-protokit/6.advanced/1.building-a-toolkit",{"title":437,"path":438,"stem":439},"Schema Patterns","/docs/nuxt-protokit/advanced/custom-schema-patterns","0.docs/4.nuxt-protokit/6.advanced/2.custom-schema-patterns",{"title":441,"path":442,"stem":443},"Custom Fields & Viz","/docs/nuxt-protokit/advanced/extensibility","0.docs/4.nuxt-protokit/6.advanced/3.extensibility",{"page":445,"fallbackPage":2166},{"id":446,"title":194,"body":447,"description":457,"extension":2165,"links":2166,"meta":2167,"navigation":2166,"ogImage":2166,"path":195,"seo":2168,"stem":196,"__hash__":2169},"nuxt_auto/0.docs/3.nuxt-auto/1.getting-started/2.installation.md",{"type":448,"value":449,"toc":2141},"minimark",[450,454,458,463,466,495,499,504,507,615,622,626,629,695,699,702,707,739,743,770,774,800,803,830,834,860,864,867,873,887,893,910,916,930,934,941,1180,1193,1197,1204,1243,1246,1250,1253,1257,1576,1580,1773,1777,1907,1911,1949,1953,1956,1971,1974,1988,1992,2018,2022,2026,2029,2092,2096,2099,2103,2106,2134,2137],[451,452,194],"h1",{"id":453},"installation",[455,456,457],"p",{},"This guide will help you install and set up Nuxt Auto in your Nuxt 3 project.",[459,460,462],"h2",{"id":461},"prerequisites","Prerequisites",[455,464,465],{},"Before installing Nuxt Auto, ensure you have:",[467,468,469,477,483,489],"ul",{},[470,471,472,476],"li",{},[473,474,475],"strong",{},"Node.js"," 18.x or later",[470,478,479,482],{},[473,480,481],{},"Nuxt 3"," (latest stable version recommended)",[470,484,485,488],{},[473,486,487],{},"Package manager"," - npm, pnpm, yarn, or bun",[470,490,491,494],{},[473,492,493],{},"Drizzle ORM"," - For database schema definitions",[459,496,498],{"id":497},"install-dependencies","Install Dependencies",[500,501,503],"h3",{"id":502},"_1-install-core-packages","1. Install Core Packages",[455,505,506],{},"First, install the Nuxt Auto modules:",[508,509,514],"pre",{"className":510,"code":511,"language":512,"meta":513,"style":513},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Using npm\nnpm install @websideproject/nuxt-auto-api @websideproject/nuxt-auto-admin\n\n# Using pnpm\npnpm add @websideproject/nuxt-auto-api @websideproject/nuxt-auto-admin\n\n# Using yarn\nyarn add @websideproject/nuxt-auto-api @websideproject/nuxt-auto-admin\n\n# Using bun\nbun add @websideproject/nuxt-auto-api @websideproject/nuxt-auto-admin\n","bash","",[515,516,517,526,543,550,556,569,574,580,592,597,603],"code",{"__ignoreMap":513},[518,519,522],"span",{"class":520,"line":521},"line",1,[518,523,525],{"class":524},"sHwdD","# Using npm\n",[518,527,529,533,537,540],{"class":520,"line":528},2,[518,530,532],{"class":531},"sBMFI","npm",[518,534,536],{"class":535},"sfazB"," install",[518,538,539],{"class":535}," @websideproject/nuxt-auto-api",[518,541,542],{"class":535}," @websideproject/nuxt-auto-admin\n",[518,544,546],{"class":520,"line":545},3,[518,547,549],{"emptyLinePlaceholder":548},true,"\n",[518,551,553],{"class":520,"line":552},4,[518,554,555],{"class":524},"# Using pnpm\n",[518,557,559,562,565,567],{"class":520,"line":558},5,[518,560,561],{"class":531},"pnpm",[518,563,564],{"class":535}," add",[518,566,539],{"class":535},[518,568,542],{"class":535},[518,570,572],{"class":520,"line":571},6,[518,573,549],{"emptyLinePlaceholder":548},[518,575,577],{"class":520,"line":576},7,[518,578,579],{"class":524},"# Using yarn\n",[518,581,583,586,588,590],{"class":520,"line":582},8,[518,584,585],{"class":531},"yarn",[518,587,564],{"class":535},[518,589,539],{"class":535},[518,591,542],{"class":535},[518,593,595],{"class":520,"line":594},9,[518,596,549],{"emptyLinePlaceholder":548},[518,598,600],{"class":520,"line":599},10,[518,601,602],{"class":524},"# Using bun\n",[518,604,606,609,611,613],{"class":520,"line":605},11,[518,607,608],{"class":531},"bun",[518,610,564],{"class":535},[518,612,539],{"class":535},[518,614,542],{"class":535},[455,616,617,618,621],{},"If you only need the API module, you can install just ",[515,619,620],{},"@websideproject/nuxt-auto-api",".",[500,623,625],{"id":624},"_2-install-nuxt-ui-required-for-admin","2. Install Nuxt UI (Required for Admin)",[455,627,628],{},"The admin module requires Nuxt UI for its components:",[508,630,632],{"className":510,"code":631,"language":512,"meta":513,"style":513},"# Using npm\nnpm install @nuxt/ui\n\n# Using pnpm\npnpm add @nuxt/ui\n\n# Using yarn\nyarn add @nuxt/ui\n\n# Using bun\nbun add @nuxt/ui\n",[515,633,634,638,647,651,655,663,667,671,679,683,687],{"__ignoreMap":513},[518,635,636],{"class":520,"line":521},[518,637,525],{"class":524},[518,639,640,642,644],{"class":520,"line":528},[518,641,532],{"class":531},[518,643,536],{"class":535},[518,645,646],{"class":535}," @nuxt/ui\n",[518,648,649],{"class":520,"line":545},[518,650,549],{"emptyLinePlaceholder":548},[518,652,653],{"class":520,"line":552},[518,654,555],{"class":524},[518,656,657,659,661],{"class":520,"line":558},[518,658,561],{"class":531},[518,660,564],{"class":535},[518,662,646],{"class":535},[518,664,665],{"class":520,"line":571},[518,666,549],{"emptyLinePlaceholder":548},[518,668,669],{"class":520,"line":576},[518,670,579],{"class":524},[518,672,673,675,677],{"class":520,"line":582},[518,674,585],{"class":531},[518,676,564],{"class":535},[518,678,646],{"class":535},[518,680,681],{"class":520,"line":594},[518,682,549],{"emptyLinePlaceholder":548},[518,684,685],{"class":520,"line":599},[518,686,602],{"class":524},[518,688,689,691,693],{"class":520,"line":605},[518,690,608],{"class":531},[518,692,564],{"class":535},[518,694,646],{"class":535},[500,696,698],{"id":697},"_3-install-drizzle-orm","3. Install Drizzle ORM",[455,700,701],{},"Choose your database and install the corresponding Drizzle packages:",[703,704,706],"h4",{"id":705},"sqlite-better-sqlite3","SQLite (better-sqlite3)",[508,708,710],{"className":510,"code":709,"language":512,"meta":513,"style":513},"npm install drizzle-orm better-sqlite3\nnpm install -D drizzle-kit @types/better-sqlite3\n",[515,711,712,724],{"__ignoreMap":513},[518,713,714,716,718,721],{"class":520,"line":521},[518,715,532],{"class":531},[518,717,536],{"class":535},[518,719,720],{"class":535}," drizzle-orm",[518,722,723],{"class":535}," better-sqlite3\n",[518,725,726,728,730,733,736],{"class":520,"line":528},[518,727,532],{"class":531},[518,729,536],{"class":535},[518,731,732],{"class":535}," -D",[518,734,735],{"class":535}," drizzle-kit",[518,737,738],{"class":535}," @types/better-sqlite3\n",[703,740,742],{"id":741},"postgresql","PostgreSQL",[508,744,746],{"className":510,"code":745,"language":512,"meta":513,"style":513},"npm install drizzle-orm postgres\nnpm install -D drizzle-kit\n",[515,747,748,759],{"__ignoreMap":513},[518,749,750,752,754,756],{"class":520,"line":521},[518,751,532],{"class":531},[518,753,536],{"class":535},[518,755,720],{"class":535},[518,757,758],{"class":535}," postgres\n",[518,760,761,763,765,767],{"class":520,"line":528},[518,762,532],{"class":531},[518,764,536],{"class":535},[518,766,732],{"class":535},[518,768,769],{"class":535}," drizzle-kit\n",[703,771,773],{"id":772},"mysql","MySQL",[508,775,777],{"className":510,"code":776,"language":512,"meta":513,"style":513},"npm install drizzle-orm mysql2\nnpm install -D drizzle-kit\n",[515,778,779,790],{"__ignoreMap":513},[518,780,781,783,785,787],{"class":520,"line":521},[518,782,532],{"class":531},[518,784,536],{"class":535},[518,786,720],{"class":535},[518,788,789],{"class":535}," mysql2\n",[518,791,792,794,796,798],{"class":520,"line":528},[518,793,532],{"class":531},[518,795,536],{"class":535},[518,797,732],{"class":535},[518,799,769],{"class":535},[703,801,259],{"id":802},"cloudflare-d1",[508,804,806],{"className":510,"code":805,"language":512,"meta":513,"style":513},"npm install drizzle-orm\nnpm install -D drizzle-kit wrangler\n",[515,807,808,817],{"__ignoreMap":513},[518,809,810,812,814],{"class":520,"line":521},[518,811,532],{"class":531},[518,813,536],{"class":535},[518,815,816],{"class":535}," drizzle-orm\n",[518,818,819,821,823,825,827],{"class":520,"line":528},[518,820,532],{"class":531},[518,822,536],{"class":535},[518,824,732],{"class":535},[518,826,735],{"class":535},[518,828,829],{"class":535}," wrangler\n",[703,831,833],{"id":832},"turso","Turso",[508,835,837],{"className":510,"code":836,"language":512,"meta":513,"style":513},"npm install drizzle-orm @libsql/client\nnpm install -D drizzle-kit\n",[515,838,839,850],{"__ignoreMap":513},[518,840,841,843,845,847],{"class":520,"line":521},[518,842,532],{"class":531},[518,844,536],{"class":535},[518,846,720],{"class":535},[518,848,849],{"class":535}," @libsql/client\n",[518,851,852,854,856,858],{"class":520,"line":528},[518,853,532],{"class":531},[518,855,536],{"class":535},[518,857,732],{"class":535},[518,859,769],{"class":535},[500,861,863],{"id":862},"_4-install-optional-dependencies","4. Install Optional Dependencies",[455,865,866],{},"For additional features:",[455,868,869,872],{},[473,870,871],{},"TanStack Query"," (for frontend data fetching):",[508,874,876],{"className":510,"code":875,"language":512,"meta":513,"style":513},"npm install @tanstack/vue-query\n",[515,877,878],{"__ignoreMap":513},[518,879,880,882,884],{"class":520,"line":521},[518,881,532],{"class":531},[518,883,536],{"class":535},[518,885,886],{"class":535}," @tanstack/vue-query\n",[455,888,889,892],{},[473,890,891],{},"Zod"," (for validation):",[508,894,896],{"className":510,"code":895,"language":512,"meta":513,"style":513},"npm install zod drizzle-zod\n",[515,897,898],{"__ignoreMap":513},[518,899,900,902,904,907],{"class":520,"line":521},[518,901,532],{"class":531},[518,903,536],{"class":535},[518,905,906],{"class":535}," zod",[518,908,909],{"class":535}," drizzle-zod\n",[455,911,912,915],{},[473,913,914],{},"Better Auth"," (for authentication):",[508,917,919],{"className":510,"code":918,"language":512,"meta":513,"style":513},"npm install better-auth\n",[515,920,921],{"__ignoreMap":513},[518,922,923,925,927],{"class":520,"line":521},[518,924,532],{"class":531},[518,926,536],{"class":535},[518,928,929],{"class":535}," better-auth\n",[459,931,933],{"id":932},"configure-modules","Configure Modules",[455,935,936,937,940],{},"Add the modules to your ",[515,938,939],{},"nuxt.config.ts",":",[508,942,946],{"className":943,"code":944,"language":945,"meta":513,"style":513},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  modules: [\n    '@nuxt/ui',                                  // Required for admin\n    '@websideproject/nuxt-auto-api',            // API module\n    '@websideproject/nuxt-auto-admin',          // Admin module\n  ],\n\n  autoApi: {\n    prefix: '/api',\n    database: {\n      client: 'better-sqlite3',  // or 'pg', 'mysql2', 'd1', 'turso'\n    },\n  },\n\n  autoAdmin: {\n    prefix: '/admin',\n    branding: {\n      title: 'Admin Panel',\n    },\n  },\n})\n","typescript",[515,947,948,969,980,997,1010,1024,1032,1036,1046,1063,1072,1091,1097,1103,1108,1118,1134,1144,1161,1166,1171],{"__ignoreMap":513},[518,949,950,954,957,961,965],{"class":520,"line":521},[518,951,953],{"class":952},"s7zQu","export",[518,955,956],{"class":952}," default",[518,958,960],{"class":959},"s2Zo4"," defineNuxtConfig",[518,962,964],{"class":963},"sTEyZ","(",[518,966,968],{"class":967},"sMK4o","{\n",[518,970,971,975,977],{"class":520,"line":528},[518,972,974],{"class":973},"swJcz","  modules",[518,976,940],{"class":967},[518,978,979],{"class":963}," [\n",[518,981,982,985,988,991,994],{"class":520,"line":545},[518,983,984],{"class":967},"    '",[518,986,987],{"class":535},"@nuxt/ui",[518,989,990],{"class":967},"'",[518,992,993],{"class":967},",",[518,995,996],{"class":524},"                                  // Required for admin\n",[518,998,999,1001,1003,1005,1007],{"class":520,"line":552},[518,1000,984],{"class":967},[518,1002,620],{"class":535},[518,1004,990],{"class":967},[518,1006,993],{"class":967},[518,1008,1009],{"class":524},"            // API module\n",[518,1011,1012,1014,1017,1019,1021],{"class":520,"line":558},[518,1013,984],{"class":967},[518,1015,1016],{"class":535},"@websideproject/nuxt-auto-admin",[518,1018,990],{"class":967},[518,1020,993],{"class":967},[518,1022,1023],{"class":524},"          // Admin module\n",[518,1025,1026,1029],{"class":520,"line":571},[518,1027,1028],{"class":963},"  ]",[518,1030,1031],{"class":967},",\n",[518,1033,1034],{"class":520,"line":576},[518,1035,549],{"emptyLinePlaceholder":548},[518,1037,1038,1041,1043],{"class":520,"line":582},[518,1039,1040],{"class":973},"  autoApi",[518,1042,940],{"class":967},[518,1044,1045],{"class":967}," {\n",[518,1047,1048,1051,1053,1056,1059,1061],{"class":520,"line":594},[518,1049,1050],{"class":973},"    prefix",[518,1052,940],{"class":967},[518,1054,1055],{"class":967}," '",[518,1057,1058],{"class":535},"/api",[518,1060,990],{"class":967},[518,1062,1031],{"class":967},[518,1064,1065,1068,1070],{"class":520,"line":599},[518,1066,1067],{"class":973},"    database",[518,1069,940],{"class":967},[518,1071,1045],{"class":967},[518,1073,1074,1077,1079,1081,1084,1086,1088],{"class":520,"line":605},[518,1075,1076],{"class":973},"      client",[518,1078,940],{"class":967},[518,1080,1055],{"class":967},[518,1082,1083],{"class":535},"better-sqlite3",[518,1085,990],{"class":967},[518,1087,993],{"class":967},[518,1089,1090],{"class":524},"  // or 'pg', 'mysql2', 'd1', 'turso'\n",[518,1092,1094],{"class":520,"line":1093},12,[518,1095,1096],{"class":967},"    },\n",[518,1098,1100],{"class":520,"line":1099},13,[518,1101,1102],{"class":967},"  },\n",[518,1104,1106],{"class":520,"line":1105},14,[518,1107,549],{"emptyLinePlaceholder":548},[518,1109,1111,1114,1116],{"class":520,"line":1110},15,[518,1112,1113],{"class":973},"  autoAdmin",[518,1115,940],{"class":967},[518,1117,1045],{"class":967},[518,1119,1121,1123,1125,1127,1130,1132],{"class":520,"line":1120},16,[518,1122,1050],{"class":973},[518,1124,940],{"class":967},[518,1126,1055],{"class":967},[518,1128,1129],{"class":535},"/admin",[518,1131,990],{"class":967},[518,1133,1031],{"class":967},[518,1135,1137,1140,1142],{"class":520,"line":1136},17,[518,1138,1139],{"class":973},"    branding",[518,1141,940],{"class":967},[518,1143,1045],{"class":967},[518,1145,1147,1150,1152,1154,1157,1159],{"class":520,"line":1146},18,[518,1148,1149],{"class":973},"      title",[518,1151,940],{"class":967},[518,1153,1055],{"class":967},[518,1155,1156],{"class":535},"Admin Panel",[518,1158,990],{"class":967},[518,1160,1031],{"class":967},[518,1162,1164],{"class":520,"line":1163},19,[518,1165,1096],{"class":967},[518,1167,1169],{"class":520,"line":1168},20,[518,1170,1102],{"class":967},[518,1172,1174,1177],{"class":520,"line":1173},21,[518,1175,1176],{"class":967},"}",[518,1178,1179],{"class":963},")\n",[455,1181,1182,1185,1186,1189,1190,621],{},[473,1183,1184],{},"Important:"," ",[515,1187,1188],{},"nuxt-auto-api"," must be loaded before ",[515,1191,1192],{},"nuxt-auto-admin",[459,1194,1196],{"id":1195},"typescript-configuration","TypeScript Configuration",[455,1198,1199,1200,1203],{},"Ensure your ",[515,1201,1202],{},"tsconfig.json"," extends Nuxt's configuration:",[508,1205,1209],{"className":1206,"code":1207,"language":1208,"meta":513,"style":513},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"extends\": \"./.nuxt/tsconfig.json\"\n}\n","json",[515,1210,1211,1215,1238],{"__ignoreMap":513},[518,1212,1213],{"class":520,"line":521},[518,1214,968],{"class":967},[518,1216,1217,1220,1224,1227,1229,1232,1235],{"class":520,"line":528},[518,1218,1219],{"class":967},"  \"",[518,1221,1223],{"class":1222},"spNyl","extends",[518,1225,1226],{"class":967},"\"",[518,1228,940],{"class":967},[518,1230,1231],{"class":967}," \"",[518,1233,1234],{"class":535},"./.nuxt/tsconfig.json",[518,1236,1237],{"class":967},"\"\n",[518,1239,1240],{"class":520,"line":545},[518,1241,1242],{"class":967},"}\n",[455,1244,1245],{},"This gives you full type inference for all auto-generated composables and types.",[459,1247,1249],{"id":1248},"database-setup","Database Setup",[455,1251,1252],{},"Create your Drizzle schema and database connection:",[500,1254,1256],{"id":1255},"_1-create-schema","1. Create Schema",[508,1258,1260],{"className":943,"code":1259,"language":945,"meta":513,"style":513},"// server/database/schema.ts\nimport { sqliteTable, text, integer } from 'drizzle-orm/sqlite-core'\n\nexport const users = sqliteTable('users', {\n  id: integer('id').primaryKey({ autoIncrement: true }),\n  email: text('email').notNull().unique(),\n  name: text('name'),\n  role: text('role', { enum: ['user', 'admin'] }).default('user'),\n  createdAt: integer('created_at', { mode: 'timestamp' }).$defaultFn(() => new Date()),\n})\n",[515,1261,1262,1267,1302,1306,1334,1380,1417,1439,1509,1570],{"__ignoreMap":513},[518,1263,1264],{"class":520,"line":521},[518,1265,1266],{"class":524},"// server/database/schema.ts\n",[518,1268,1269,1272,1275,1278,1280,1283,1285,1288,1291,1294,1296,1299],{"class":520,"line":528},[518,1270,1271],{"class":952},"import",[518,1273,1274],{"class":967}," {",[518,1276,1277],{"class":963}," sqliteTable",[518,1279,993],{"class":967},[518,1281,1282],{"class":963}," text",[518,1284,993],{"class":967},[518,1286,1287],{"class":963}," integer",[518,1289,1290],{"class":967}," }",[518,1292,1293],{"class":952}," from",[518,1295,1055],{"class":967},[518,1297,1298],{"class":535},"drizzle-orm/sqlite-core",[518,1300,1301],{"class":967},"'\n",[518,1303,1304],{"class":520,"line":545},[518,1305,549],{"emptyLinePlaceholder":548},[518,1307,1308,1310,1313,1316,1319,1321,1323,1325,1328,1330,1332],{"class":520,"line":552},[518,1309,953],{"class":952},[518,1311,1312],{"class":1222}," const",[518,1314,1315],{"class":963}," users ",[518,1317,1318],{"class":967},"=",[518,1320,1277],{"class":959},[518,1322,964],{"class":963},[518,1324,990],{"class":967},[518,1326,1327],{"class":535},"users",[518,1329,990],{"class":967},[518,1331,993],{"class":967},[518,1333,1045],{"class":967},[518,1335,1336,1339,1341,1343,1345,1347,1350,1352,1355,1357,1360,1362,1365,1368,1370,1374,1376,1378],{"class":520,"line":558},[518,1337,1338],{"class":973},"  id",[518,1340,940],{"class":967},[518,1342,1287],{"class":959},[518,1344,964],{"class":963},[518,1346,990],{"class":967},[518,1348,1349],{"class":535},"id",[518,1351,990],{"class":967},[518,1353,1354],{"class":963},")",[518,1356,621],{"class":967},[518,1358,1359],{"class":959},"primaryKey",[518,1361,964],{"class":963},[518,1363,1364],{"class":967},"{",[518,1366,1367],{"class":973}," autoIncrement",[518,1369,940],{"class":967},[518,1371,1373],{"class":1372},"sfNiH"," true",[518,1375,1290],{"class":967},[518,1377,1354],{"class":963},[518,1379,1031],{"class":967},[518,1381,1382,1385,1387,1389,1391,1393,1396,1398,1400,1402,1405,1408,1410,1413,1415],{"class":520,"line":571},[518,1383,1384],{"class":973},"  email",[518,1386,940],{"class":967},[518,1388,1282],{"class":959},[518,1390,964],{"class":963},[518,1392,990],{"class":967},[518,1394,1395],{"class":535},"email",[518,1397,990],{"class":967},[518,1399,1354],{"class":963},[518,1401,621],{"class":967},[518,1403,1404],{"class":959},"notNull",[518,1406,1407],{"class":963},"()",[518,1409,621],{"class":967},[518,1411,1412],{"class":959},"unique",[518,1414,1407],{"class":963},[518,1416,1031],{"class":967},[518,1418,1419,1422,1424,1426,1428,1430,1433,1435,1437],{"class":520,"line":576},[518,1420,1421],{"class":973},"  name",[518,1423,940],{"class":967},[518,1425,1282],{"class":959},[518,1427,964],{"class":963},[518,1429,990],{"class":967},[518,1431,1432],{"class":535},"name",[518,1434,990],{"class":967},[518,1436,1354],{"class":963},[518,1438,1031],{"class":967},[518,1440,1441,1444,1446,1448,1450,1452,1455,1457,1459,1461,1464,1466,1469,1471,1474,1476,1478,1480,1483,1485,1488,1490,1492,1494,1497,1499,1501,1503,1505,1507],{"class":520,"line":582},[518,1442,1443],{"class":973},"  role",[518,1445,940],{"class":967},[518,1447,1282],{"class":959},[518,1449,964],{"class":963},[518,1451,990],{"class":967},[518,1453,1454],{"class":535},"role",[518,1456,990],{"class":967},[518,1458,993],{"class":967},[518,1460,1274],{"class":967},[518,1462,1463],{"class":973}," enum",[518,1465,940],{"class":967},[518,1467,1468],{"class":963}," [",[518,1470,990],{"class":967},[518,1472,1473],{"class":535},"user",[518,1475,990],{"class":967},[518,1477,993],{"class":967},[518,1479,1055],{"class":967},[518,1481,1482],{"class":535},"admin",[518,1484,990],{"class":967},[518,1486,1487],{"class":963},"] ",[518,1489,1176],{"class":967},[518,1491,1354],{"class":963},[518,1493,621],{"class":967},[518,1495,1496],{"class":959},"default",[518,1498,964],{"class":963},[518,1500,990],{"class":967},[518,1502,1473],{"class":535},[518,1504,990],{"class":967},[518,1506,1354],{"class":963},[518,1508,1031],{"class":967},[518,1510,1511,1514,1516,1518,1520,1522,1525,1527,1529,1531,1534,1536,1538,1541,1543,1545,1547,1549,1552,1554,1556,1559,1562,1565,1568],{"class":520,"line":594},[518,1512,1513],{"class":973},"  createdAt",[518,1515,940],{"class":967},[518,1517,1287],{"class":959},[518,1519,964],{"class":963},[518,1521,990],{"class":967},[518,1523,1524],{"class":535},"created_at",[518,1526,990],{"class":967},[518,1528,993],{"class":967},[518,1530,1274],{"class":967},[518,1532,1533],{"class":973}," mode",[518,1535,940],{"class":967},[518,1537,1055],{"class":967},[518,1539,1540],{"class":535},"timestamp",[518,1542,990],{"class":967},[518,1544,1290],{"class":967},[518,1546,1354],{"class":963},[518,1548,621],{"class":967},[518,1550,1551],{"class":959},"$defaultFn",[518,1553,964],{"class":963},[518,1555,1407],{"class":967},[518,1557,1558],{"class":1222}," =>",[518,1560,1561],{"class":967}," new",[518,1563,1564],{"class":959}," Date",[518,1566,1567],{"class":963},"())",[518,1569,1031],{"class":967},[518,1571,1572,1574],{"class":520,"line":599},[518,1573,1176],{"class":967},[518,1575,1179],{"class":963},[500,1577,1579],{"id":1578},"_2-initialize-database","2. Initialize Database",[508,1581,1583],{"className":943,"code":1582,"language":945,"meta":513,"style":513},"// server/plugins/database.ts\nimport { drizzle } from 'drizzle-orm/better-sqlite3'\nimport Database from 'better-sqlite3'\nimport { initializeDatabase } from '@websideproject/nuxt-auto-api/database'\nimport * as schema from '../database/schema'\n\nexport default defineNitroPlugin(() => {\n  const sqlite = new Database('sqlite.db')\n  const db = drizzle(sqlite, { schema })\n\n  initializeDatabase(db, 'better-sqlite3')\n})\n",[515,1584,1585,1590,1610,1626,1646,1668,1672,1689,1716,1743,1747,1767],{"__ignoreMap":513},[518,1586,1587],{"class":520,"line":521},[518,1588,1589],{"class":524},"// server/plugins/database.ts\n",[518,1591,1592,1594,1596,1599,1601,1603,1605,1608],{"class":520,"line":528},[518,1593,1271],{"class":952},[518,1595,1274],{"class":967},[518,1597,1598],{"class":963}," drizzle",[518,1600,1290],{"class":967},[518,1602,1293],{"class":952},[518,1604,1055],{"class":967},[518,1606,1607],{"class":535},"drizzle-orm/better-sqlite3",[518,1609,1301],{"class":967},[518,1611,1612,1614,1617,1620,1622,1624],{"class":520,"line":545},[518,1613,1271],{"class":952},[518,1615,1616],{"class":963}," Database ",[518,1618,1619],{"class":952},"from",[518,1621,1055],{"class":967},[518,1623,1083],{"class":535},[518,1625,1301],{"class":967},[518,1627,1628,1630,1632,1635,1637,1639,1641,1644],{"class":520,"line":552},[518,1629,1271],{"class":952},[518,1631,1274],{"class":967},[518,1633,1634],{"class":963}," initializeDatabase",[518,1636,1290],{"class":967},[518,1638,1293],{"class":952},[518,1640,1055],{"class":967},[518,1642,1643],{"class":535},"@websideproject/nuxt-auto-api/database",[518,1645,1301],{"class":967},[518,1647,1648,1650,1653,1656,1659,1661,1663,1666],{"class":520,"line":558},[518,1649,1271],{"class":952},[518,1651,1652],{"class":967}," *",[518,1654,1655],{"class":952}," as",[518,1657,1658],{"class":963}," schema ",[518,1660,1619],{"class":952},[518,1662,1055],{"class":967},[518,1664,1665],{"class":535},"../database/schema",[518,1667,1301],{"class":967},[518,1669,1670],{"class":520,"line":571},[518,1671,549],{"emptyLinePlaceholder":548},[518,1673,1674,1676,1678,1681,1683,1685,1687],{"class":520,"line":576},[518,1675,953],{"class":952},[518,1677,956],{"class":952},[518,1679,1680],{"class":959}," defineNitroPlugin",[518,1682,964],{"class":963},[518,1684,1407],{"class":967},[518,1686,1558],{"class":1222},[518,1688,1045],{"class":967},[518,1690,1691,1694,1697,1700,1702,1705,1707,1709,1712,1714],{"class":520,"line":582},[518,1692,1693],{"class":1222},"  const",[518,1695,1696],{"class":963}," sqlite",[518,1698,1699],{"class":967}," =",[518,1701,1561],{"class":967},[518,1703,1704],{"class":959}," Database",[518,1706,964],{"class":973},[518,1708,990],{"class":967},[518,1710,1711],{"class":535},"sqlite.db",[518,1713,990],{"class":967},[518,1715,1179],{"class":973},[518,1717,1718,1720,1723,1725,1727,1729,1732,1734,1736,1739,1741],{"class":520,"line":594},[518,1719,1693],{"class":1222},[518,1721,1722],{"class":963}," db",[518,1724,1699],{"class":967},[518,1726,1598],{"class":959},[518,1728,964],{"class":973},[518,1730,1731],{"class":963},"sqlite",[518,1733,993],{"class":967},[518,1735,1274],{"class":967},[518,1737,1738],{"class":963}," schema",[518,1740,1290],{"class":967},[518,1742,1179],{"class":973},[518,1744,1745],{"class":520,"line":599},[518,1746,549],{"emptyLinePlaceholder":548},[518,1748,1749,1752,1754,1757,1759,1761,1763,1765],{"class":520,"line":605},[518,1750,1751],{"class":959},"  initializeDatabase",[518,1753,964],{"class":973},[518,1755,1756],{"class":963},"db",[518,1758,993],{"class":967},[518,1760,1055],{"class":967},[518,1762,1083],{"class":535},[518,1764,990],{"class":967},[518,1766,1179],{"class":973},[518,1768,1769,1771],{"class":520,"line":1093},[518,1770,1176],{"class":967},[518,1772,1179],{"class":963},[500,1774,1776],{"id":1775},"_3-configure-drizzle-kit","3. Configure Drizzle Kit",[508,1778,1780],{"className":943,"code":1779,"language":945,"meta":513,"style":513},"// drizzle.config.ts\nimport type { Config } from 'drizzle-kit'\n\nexport default {\n  schema: './server/database/schema.ts',\n  out: './drizzle',\n  driver: 'better-sqlite3',\n  dbCredentials: {\n    url: 'sqlite.db',\n  },\n} satisfies Config\n",[515,1781,1782,1787,1810,1814,1822,1838,1854,1869,1878,1893,1897],{"__ignoreMap":513},[518,1783,1784],{"class":520,"line":521},[518,1785,1786],{"class":524},"// drizzle.config.ts\n",[518,1788,1789,1791,1794,1796,1799,1801,1803,1805,1808],{"class":520,"line":528},[518,1790,1271],{"class":952},[518,1792,1793],{"class":952}," type",[518,1795,1274],{"class":967},[518,1797,1798],{"class":963}," Config",[518,1800,1290],{"class":967},[518,1802,1293],{"class":952},[518,1804,1055],{"class":967},[518,1806,1807],{"class":535},"drizzle-kit",[518,1809,1301],{"class":967},[518,1811,1812],{"class":520,"line":545},[518,1813,549],{"emptyLinePlaceholder":548},[518,1815,1816,1818,1820],{"class":520,"line":552},[518,1817,953],{"class":952},[518,1819,956],{"class":952},[518,1821,1045],{"class":967},[518,1823,1824,1827,1829,1831,1834,1836],{"class":520,"line":558},[518,1825,1826],{"class":973},"  schema",[518,1828,940],{"class":967},[518,1830,1055],{"class":967},[518,1832,1833],{"class":535},"./server/database/schema.ts",[518,1835,990],{"class":967},[518,1837,1031],{"class":967},[518,1839,1840,1843,1845,1847,1850,1852],{"class":520,"line":571},[518,1841,1842],{"class":973},"  out",[518,1844,940],{"class":967},[518,1846,1055],{"class":967},[518,1848,1849],{"class":535},"./drizzle",[518,1851,990],{"class":967},[518,1853,1031],{"class":967},[518,1855,1856,1859,1861,1863,1865,1867],{"class":520,"line":576},[518,1857,1858],{"class":973},"  driver",[518,1860,940],{"class":967},[518,1862,1055],{"class":967},[518,1864,1083],{"class":535},[518,1866,990],{"class":967},[518,1868,1031],{"class":967},[518,1870,1871,1874,1876],{"class":520,"line":582},[518,1872,1873],{"class":973},"  dbCredentials",[518,1875,940],{"class":967},[518,1877,1045],{"class":967},[518,1879,1880,1883,1885,1887,1889,1891],{"class":520,"line":594},[518,1881,1882],{"class":973},"    url",[518,1884,940],{"class":967},[518,1886,1055],{"class":967},[518,1888,1711],{"class":535},[518,1890,990],{"class":967},[518,1892,1031],{"class":967},[518,1894,1895],{"class":520,"line":599},[518,1896,1102],{"class":967},[518,1898,1899,1901,1904],{"class":520,"line":605},[518,1900,1176],{"class":967},[518,1902,1903],{"class":952}," satisfies",[518,1905,1906],{"class":531}," Config\n",[500,1908,1910],{"id":1909},"_4-generate-and-run-migrations","4. Generate and Run Migrations",[508,1912,1914],{"className":510,"code":1913,"language":512,"meta":513,"style":513},"# Generate migration\nnpx drizzle-kit generate:sqlite\n\n# Push schema to database (development)\nnpx drizzle-kit push:sqlite\n",[515,1915,1916,1921,1931,1935,1940],{"__ignoreMap":513},[518,1917,1918],{"class":520,"line":521},[518,1919,1920],{"class":524},"# Generate migration\n",[518,1922,1923,1926,1928],{"class":520,"line":528},[518,1924,1925],{"class":531},"npx",[518,1927,735],{"class":535},[518,1929,1930],{"class":535}," generate:sqlite\n",[518,1932,1933],{"class":520,"line":545},[518,1934,549],{"emptyLinePlaceholder":548},[518,1936,1937],{"class":520,"line":552},[518,1938,1939],{"class":524},"# Push schema to database (development)\n",[518,1941,1942,1944,1946],{"class":520,"line":558},[518,1943,1925],{"class":531},[518,1945,735],{"class":535},[518,1947,1948],{"class":535}," push:sqlite\n",[459,1950,1952],{"id":1951},"verify-installation","Verify Installation",[455,1954,1955],{},"Start your development server:",[508,1957,1959],{"className":510,"code":1958,"language":512,"meta":513,"style":513},"npm run dev\n",[515,1960,1961],{"__ignoreMap":513},[518,1962,1963,1965,1968],{"class":520,"line":521},[518,1964,532],{"class":531},[518,1966,1967],{"class":535}," run",[518,1969,1970],{"class":535}," dev\n",[455,1972,1973],{},"You should see:",[467,1975,1976,1982],{},[470,1977,1978,1979],{},"API endpoints available at ",[515,1980,1981],{},"http://localhost:3000/api",[470,1983,1984,1985],{},"Admin panel at ",[515,1986,1987],{},"http://localhost:3000/admin",[459,1989,1991],{"id":1990},"next-steps","Next Steps",[467,1993,1994,2002,2010],{},[470,1995,1996,2001],{},[473,1997,1998],{},[1999,2000,198],"a",{"href":199}," - Build your first API and admin panel",[470,2003,2004,2009],{},[473,2005,2006],{},[1999,2007,2008],{"href":208},"Auto API - Getting Started"," - Configure API features",[470,2011,2012,2017],{},[473,2013,2014],{},[1999,2015,2016],{"href":304},"Auto Admin - Getting Started"," - Customize admin panel",[459,2019,2021],{"id":2020},"troubleshooting","Troubleshooting",[500,2023,2025],{"id":2024},"module-not-found-errors","Module Not Found Errors",[455,2027,2028],{},"If you get module resolution errors, try:",[508,2030,2032],{"className":510,"code":2031,"language":512,"meta":513,"style":513},"# Clear Nuxt cache\nrm -rf .nuxt\n\n# Reinstall dependencies\nrm -rf node_modules\nnpm install\n\n# Rebuild\nnpm run dev\n",[515,2033,2034,2039,2050,2054,2059,2068,2075,2079,2084],{"__ignoreMap":513},[518,2035,2036],{"class":520,"line":521},[518,2037,2038],{"class":524},"# Clear Nuxt cache\n",[518,2040,2041,2044,2047],{"class":520,"line":528},[518,2042,2043],{"class":531},"rm",[518,2045,2046],{"class":535}," -rf",[518,2048,2049],{"class":535}," .nuxt\n",[518,2051,2052],{"class":520,"line":545},[518,2053,549],{"emptyLinePlaceholder":548},[518,2055,2056],{"class":520,"line":552},[518,2057,2058],{"class":524},"# Reinstall dependencies\n",[518,2060,2061,2063,2065],{"class":520,"line":558},[518,2062,2043],{"class":531},[518,2064,2046],{"class":535},[518,2066,2067],{"class":535}," node_modules\n",[518,2069,2070,2072],{"class":520,"line":571},[518,2071,532],{"class":531},[518,2073,2074],{"class":535}," install\n",[518,2076,2077],{"class":520,"line":576},[518,2078,549],{"emptyLinePlaceholder":548},[518,2080,2081],{"class":520,"line":582},[518,2082,2083],{"class":524},"# Rebuild\n",[518,2085,2086,2088,2090],{"class":520,"line":594},[518,2087,532],{"class":531},[518,2089,1967],{"class":535},[518,2091,1970],{"class":535},[500,2093,2095],{"id":2094},"database-connection-issues","Database Connection Issues",[455,2097,2098],{},"Ensure your database path is correct and the database file exists. For SQLite, the file will be created automatically on first run.",[500,2100,2102],{"id":2101},"type-errors","Type Errors",[455,2104,2105],{},"Make sure you're extending Nuxt's TypeScript config:",[508,2107,2108],{"className":1206,"code":1207,"language":1208,"meta":513,"style":513},[515,2109,2110,2114,2130],{"__ignoreMap":513},[518,2111,2112],{"class":520,"line":521},[518,2113,968],{"class":967},[518,2115,2116,2118,2120,2122,2124,2126,2128],{"class":520,"line":528},[518,2117,1219],{"class":967},[518,2119,1223],{"class":1222},[518,2121,1226],{"class":967},[518,2123,940],{"class":967},[518,2125,1231],{"class":967},[518,2127,1234],{"class":535},[518,2129,1237],{"class":967},[518,2131,2132],{"class":520,"line":545},[518,2133,1242],{"class":967},[455,2135,2136],{},"Restart your TypeScript server in your editor after changes.",[2138,2139,2140],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}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);}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":513,"searchDepth":528,"depth":528,"links":2142},[2143,2144,2150,2151,2152,2158,2159,2160],{"id":461,"depth":528,"text":462},{"id":497,"depth":528,"text":498,"children":2145},[2146,2147,2148,2149],{"id":502,"depth":545,"text":503},{"id":624,"depth":545,"text":625},{"id":697,"depth":545,"text":698},{"id":862,"depth":545,"text":863},{"id":932,"depth":528,"text":933},{"id":1195,"depth":528,"text":1196},{"id":1248,"depth":528,"text":1249,"children":2153},[2154,2155,2156,2157],{"id":1255,"depth":545,"text":1256},{"id":1578,"depth":545,"text":1579},{"id":1775,"depth":545,"text":1776},{"id":1909,"depth":545,"text":1910},{"id":1951,"depth":528,"text":1952},{"id":1990,"depth":528,"text":1991},{"id":2020,"depth":528,"text":2021,"children":2161},[2162,2163,2164],{"id":2024,"depth":545,"text":2025},{"id":2094,"depth":545,"text":2095},{"id":2101,"depth":545,"text":2102},"md",null,{},{"title":194,"description":457},"1snAbOtWKvmSJMfTzMmeERGkODBt_RETXjJ4aDviCUY",[2171,2173],{"title":190,"path":191,"stem":192,"description":2172,"children":-1},"Nuxt Auto is a collection of modules that dramatically accelerate full-stack development by automatically generating production-ready APIs and admin interfaces from your database schemas.",{"title":198,"path":199,"stem":200,"description":2174,"children":-1},"This guide will walk you through creating your first API and admin panel with Nuxt Auto in under 10 minutes.",1772977477990]