[{"data":1,"prerenderedAt":2061},["ShallowReactive",2],{"navigation-landing-en":3,"navigation-nuxt-auto-en":180,"navigation-nuxt-protokit-en":338,"/docs/nuxt-auto/auto-api/database-adapters-en":444,"/docs/nuxt-auto/auto-api/database-adapters-surround-en":2056},[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":2052},{"id":446,"title":227,"body":447,"description":457,"extension":2051,"links":2052,"meta":2053,"navigation":2052,"ogImage":2052,"path":228,"seo":2054,"stem":229,"__hash__":2055},"nuxt_auto/0.docs/3.nuxt-auto/2.auto-api/14.database-adapters.md",{"type":448,"value":449,"toc":2037},"minimark",[450,454,458,463,616,620,628,635,873,876,1052,1055,1174,1178,1378,1382,1388,1458,1462,1473,1843,1847,1969,1973,1982,2033],[451,452,227],"h1",{"id":453},"database-adapters",[455,456,457],"p",{},"@websideproject/nuxt-auto-api supports multiple database engines through a unified adapter layer. Each adapter normalizes engine-specific behavior like transactions, batch operations, and mutation count parsing.",[459,460,462],"h2",{"id":461},"supported-engines","Supported Engines",[464,465,466,488],"table",{},[467,468,469],"thead",{},[470,471,472,476,479,482,485],"tr",{},[473,474,475],"th",{},"Engine",[473,477,478],{},"Package",[473,480,481],{},"Transactions",[473,483,484],{},"Returning",[473,486,487],{},"Native Batch",[489,490,491,515,538,558,576,596],"tbody",{},[470,492,493,500,504,509,512],{},[494,495,496],"td",{},[497,498,499],"code",{},"better-sqlite3",[494,501,502],{},[497,503,499],{},[494,505,506],{},[497,507,508],{},"db.transaction()",[494,510,511],{},"Yes",[494,513,514],{},"No",[470,516,517,522,530,534,536],{},[494,518,519],{},[497,520,521],{},"postgres",[494,523,524,527,528],{},[497,525,526],{},"pg"," / ",[497,529,521],{},[494,531,532],{},[497,533,508],{},[494,535,511],{},[494,537,514],{},[470,539,540,545,550,554,556],{},[494,541,542],{},[497,543,544],{},"mysql",[494,546,547],{},[497,548,549],{},"mysql2",[494,551,552],{},[497,553,508],{},[494,555,514],{},[494,557,514],{},[470,559,560,565,567,572,574],{},[494,561,562],{},[497,563,564],{},"d1",[494,566,259],{},[494,568,569],{},[497,570,571],{},"db.batch()",[494,573,511],{},[494,575,511],{},[470,577,578,583,588,592,594],{},[494,579,580],{},[497,581,582],{},"turso",[494,584,585],{},[497,586,587],{},"@libsql/client",[494,589,590],{},[497,591,571],{},[494,593,511],{},[494,595,511],{},[470,597,598,603,608,612,614],{},[494,599,600],{},[497,601,602],{},"planetscale",[494,604,605],{},[497,606,607],{},"@planetscale/database",[494,609,610],{},[497,611,508],{},[494,613,514],{},[494,615,514],{},[459,617,619],{"id":618},"setup","Setup",[621,622,624,625],"h3",{"id":623},"using-initializedatabase","Using ",[497,626,627],{},"initializeDatabase",[455,629,630,631,634],{},"The recommended way to initialize the database is with ",[497,632,633],{},"initializeDatabase()"," in a server plugin:",[636,637,642],"pre",{"className":638,"code":639,"language":640,"meta":641,"style":641},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","// 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","typescript","",[497,643,644,653,684,701,722,745,752,778,810,839,844,865],{"__ignoreMap":641},[645,646,649],"span",{"class":647,"line":648},"line",1,[645,650,652],{"class":651},"sHwdD","// server/plugins/database.ts\n",[645,654,656,660,664,668,671,674,677,681],{"class":647,"line":655},2,[645,657,659],{"class":658},"s7zQu","import",[645,661,663],{"class":662},"sMK4o"," {",[645,665,667],{"class":666},"sTEyZ"," drizzle",[645,669,670],{"class":662}," }",[645,672,673],{"class":658}," from",[645,675,676],{"class":662}," '",[645,678,680],{"class":679},"sfazB","drizzle-orm/better-sqlite3",[645,682,683],{"class":662},"'\n",[645,685,687,689,692,695,697,699],{"class":647,"line":686},3,[645,688,659],{"class":658},[645,690,691],{"class":666}," Database ",[645,693,694],{"class":658},"from",[645,696,676],{"class":662},[645,698,499],{"class":679},[645,700,683],{"class":662},[645,702,704,706,708,711,713,715,717,720],{"class":647,"line":703},4,[645,705,659],{"class":658},[645,707,663],{"class":662},[645,709,710],{"class":666}," initializeDatabase",[645,712,670],{"class":662},[645,714,673],{"class":658},[645,716,676],{"class":662},[645,718,719],{"class":679},"@websideproject/nuxt-auto-api/database",[645,721,683],{"class":662},[645,723,725,727,730,733,736,738,740,743],{"class":647,"line":724},5,[645,726,659],{"class":658},[645,728,729],{"class":662}," *",[645,731,732],{"class":658}," as",[645,734,735],{"class":666}," schema ",[645,737,694],{"class":658},[645,739,676],{"class":662},[645,741,742],{"class":679},"../database/schema",[645,744,683],{"class":662},[645,746,748],{"class":647,"line":747},6,[645,749,751],{"emptyLinePlaceholder":750},true,"\n",[645,753,755,758,761,765,768,771,775],{"class":647,"line":754},7,[645,756,757],{"class":658},"export",[645,759,760],{"class":658}," default",[645,762,764],{"class":763},"s2Zo4"," defineNitroPlugin",[645,766,767],{"class":666},"(",[645,769,770],{"class":662},"()",[645,772,774],{"class":773},"spNyl"," =>",[645,776,777],{"class":662}," {\n",[645,779,781,784,787,790,793,796,799,802,805,807],{"class":647,"line":780},8,[645,782,783],{"class":773},"  const",[645,785,786],{"class":666}," sqlite",[645,788,789],{"class":662}," =",[645,791,792],{"class":662}," new",[645,794,795],{"class":763}," Database",[645,797,767],{"class":798},"swJcz",[645,800,801],{"class":662},"'",[645,803,804],{"class":679},"sqlite.db",[645,806,801],{"class":662},[645,808,809],{"class":798},")\n",[645,811,813,815,818,820,822,824,827,830,832,835,837],{"class":647,"line":812},9,[645,814,783],{"class":773},[645,816,817],{"class":666}," db",[645,819,789],{"class":662},[645,821,667],{"class":763},[645,823,767],{"class":798},[645,825,826],{"class":666},"sqlite",[645,828,829],{"class":662},",",[645,831,663],{"class":662},[645,833,834],{"class":666}," schema",[645,836,670],{"class":662},[645,838,809],{"class":798},[645,840,842],{"class":647,"line":841},10,[645,843,751],{"emptyLinePlaceholder":750},[645,845,847,850,852,855,857,859,861,863],{"class":647,"line":846},11,[645,848,849],{"class":763},"  initializeDatabase",[645,851,767],{"class":798},[645,853,854],{"class":666},"db",[645,856,829],{"class":662},[645,858,676],{"class":662},[645,860,499],{"class":679},[645,862,801],{"class":662},[645,864,809],{"class":798},[645,866,868,871],{"class":647,"line":867},12,[645,869,870],{"class":662},"}",[645,872,809],{"class":666},[621,874,875],{"id":521},"Postgres",[636,877,879],{"className":638,"code":878,"language":640,"meta":641,"style":641},"import { drizzle } from 'drizzle-orm/node-postgres'\nimport { Pool } from 'pg'\nimport { initializeDatabase } from '@websideproject/nuxt-auto-api/database'\n\nexport default defineNitroPlugin(() => {\n  const pool = new Pool({ connectionString: process.env.DATABASE_URL })\n  const db = drizzle(pool, { schema })\n\n  initializeDatabase(db, 'postgres')\n})\n",[497,880,881,900,919,937,941,957,999,1024,1028,1046],{"__ignoreMap":641},[645,882,883,885,887,889,891,893,895,898],{"class":647,"line":648},[645,884,659],{"class":658},[645,886,663],{"class":662},[645,888,667],{"class":666},[645,890,670],{"class":662},[645,892,673],{"class":658},[645,894,676],{"class":662},[645,896,897],{"class":679},"drizzle-orm/node-postgres",[645,899,683],{"class":662},[645,901,902,904,906,909,911,913,915,917],{"class":647,"line":655},[645,903,659],{"class":658},[645,905,663],{"class":662},[645,907,908],{"class":666}," Pool",[645,910,670],{"class":662},[645,912,673],{"class":658},[645,914,676],{"class":662},[645,916,526],{"class":679},[645,918,683],{"class":662},[645,920,921,923,925,927,929,931,933,935],{"class":647,"line":686},[645,922,659],{"class":658},[645,924,663],{"class":662},[645,926,710],{"class":666},[645,928,670],{"class":662},[645,930,673],{"class":658},[645,932,676],{"class":662},[645,934,719],{"class":679},[645,936,683],{"class":662},[645,938,939],{"class":647,"line":703},[645,940,751],{"emptyLinePlaceholder":750},[645,942,943,945,947,949,951,953,955],{"class":647,"line":724},[645,944,757],{"class":658},[645,946,760],{"class":658},[645,948,764],{"class":763},[645,950,767],{"class":666},[645,952,770],{"class":662},[645,954,774],{"class":773},[645,956,777],{"class":662},[645,958,959,961,964,966,968,970,972,975,978,981,984,987,990,992,995,997],{"class":647,"line":747},[645,960,783],{"class":773},[645,962,963],{"class":666}," pool",[645,965,789],{"class":662},[645,967,792],{"class":662},[645,969,908],{"class":763},[645,971,767],{"class":798},[645,973,974],{"class":662},"{",[645,976,977],{"class":798}," connectionString",[645,979,980],{"class":662},":",[645,982,983],{"class":666}," process",[645,985,986],{"class":662},".",[645,988,989],{"class":666},"env",[645,991,986],{"class":662},[645,993,994],{"class":666},"DATABASE_URL",[645,996,670],{"class":662},[645,998,809],{"class":798},[645,1000,1001,1003,1005,1007,1009,1011,1014,1016,1018,1020,1022],{"class":647,"line":754},[645,1002,783],{"class":773},[645,1004,817],{"class":666},[645,1006,789],{"class":662},[645,1008,667],{"class":763},[645,1010,767],{"class":798},[645,1012,1013],{"class":666},"pool",[645,1015,829],{"class":662},[645,1017,663],{"class":662},[645,1019,834],{"class":666},[645,1021,670],{"class":662},[645,1023,809],{"class":798},[645,1025,1026],{"class":647,"line":780},[645,1027,751],{"emptyLinePlaceholder":750},[645,1029,1030,1032,1034,1036,1038,1040,1042,1044],{"class":647,"line":812},[645,1031,849],{"class":763},[645,1033,767],{"class":798},[645,1035,854],{"class":666},[645,1037,829],{"class":662},[645,1039,676],{"class":662},[645,1041,521],{"class":679},[645,1043,801],{"class":662},[645,1045,809],{"class":798},[645,1047,1048,1050],{"class":647,"line":841},[645,1049,870],{"class":662},[645,1051,809],{"class":666},[621,1053,259],{"id":1054},"cloudflare-d1",[636,1056,1058],{"className":638,"code":1057,"language":640,"meta":641,"style":641},"import { drizzle } from 'drizzle-orm/d1'\nimport { initializeDatabase } from '@websideproject/nuxt-auto-api/database'\n\nexport default defineNitroPlugin(() => {\n  const db = drizzle(env.DB, { schema })\n\n  initializeDatabase(db, 'd1')\n})\n",[497,1059,1060,1079,1097,1101,1117,1146,1150,1168],{"__ignoreMap":641},[645,1061,1062,1064,1066,1068,1070,1072,1074,1077],{"class":647,"line":648},[645,1063,659],{"class":658},[645,1065,663],{"class":662},[645,1067,667],{"class":666},[645,1069,670],{"class":662},[645,1071,673],{"class":658},[645,1073,676],{"class":662},[645,1075,1076],{"class":679},"drizzle-orm/d1",[645,1078,683],{"class":662},[645,1080,1081,1083,1085,1087,1089,1091,1093,1095],{"class":647,"line":655},[645,1082,659],{"class":658},[645,1084,663],{"class":662},[645,1086,710],{"class":666},[645,1088,670],{"class":662},[645,1090,673],{"class":658},[645,1092,676],{"class":662},[645,1094,719],{"class":679},[645,1096,683],{"class":662},[645,1098,1099],{"class":647,"line":686},[645,1100,751],{"emptyLinePlaceholder":750},[645,1102,1103,1105,1107,1109,1111,1113,1115],{"class":647,"line":703},[645,1104,757],{"class":658},[645,1106,760],{"class":658},[645,1108,764],{"class":763},[645,1110,767],{"class":666},[645,1112,770],{"class":662},[645,1114,774],{"class":773},[645,1116,777],{"class":662},[645,1118,1119,1121,1123,1125,1127,1129,1131,1133,1136,1138,1140,1142,1144],{"class":647,"line":724},[645,1120,783],{"class":773},[645,1122,817],{"class":666},[645,1124,789],{"class":662},[645,1126,667],{"class":763},[645,1128,767],{"class":798},[645,1130,989],{"class":666},[645,1132,986],{"class":662},[645,1134,1135],{"class":666},"DB",[645,1137,829],{"class":662},[645,1139,663],{"class":662},[645,1141,834],{"class":666},[645,1143,670],{"class":662},[645,1145,809],{"class":798},[645,1147,1148],{"class":647,"line":747},[645,1149,751],{"emptyLinePlaceholder":750},[645,1151,1152,1154,1156,1158,1160,1162,1164,1166],{"class":647,"line":754},[645,1153,849],{"class":763},[645,1155,767],{"class":798},[645,1157,854],{"class":666},[645,1159,829],{"class":662},[645,1161,676],{"class":662},[645,1163,564],{"class":679},[645,1165,801],{"class":662},[645,1167,809],{"class":798},[645,1169,1170,1172],{"class":647,"line":780},[645,1171,870],{"class":662},[645,1173,809],{"class":666},[621,1175,1177],{"id":1176},"turso-libsql","Turso / LibSQL",[636,1179,1181],{"className":638,"code":1180,"language":640,"meta":641,"style":641},"import { drizzle } from 'drizzle-orm/libsql'\nimport { createClient } from '@libsql/client'\nimport { initializeDatabase } from '@websideproject/nuxt-auto-api/database'\n\nexport default defineNitroPlugin(() => {\n  const client = createClient({\n    url: process.env.TURSO_DATABASE_URL!,\n    authToken: process.env.TURSO_AUTH_TOKEN,\n  })\n  const db = drizzle(client, { schema })\n\n  initializeDatabase(db, 'turso')\n})\n",[497,1182,1183,1202,1221,1239,1243,1259,1275,1296,1317,1324,1349,1353,1371],{"__ignoreMap":641},[645,1184,1185,1187,1189,1191,1193,1195,1197,1200],{"class":647,"line":648},[645,1186,659],{"class":658},[645,1188,663],{"class":662},[645,1190,667],{"class":666},[645,1192,670],{"class":662},[645,1194,673],{"class":658},[645,1196,676],{"class":662},[645,1198,1199],{"class":679},"drizzle-orm/libsql",[645,1201,683],{"class":662},[645,1203,1204,1206,1208,1211,1213,1215,1217,1219],{"class":647,"line":655},[645,1205,659],{"class":658},[645,1207,663],{"class":662},[645,1209,1210],{"class":666}," createClient",[645,1212,670],{"class":662},[645,1214,673],{"class":658},[645,1216,676],{"class":662},[645,1218,587],{"class":679},[645,1220,683],{"class":662},[645,1222,1223,1225,1227,1229,1231,1233,1235,1237],{"class":647,"line":686},[645,1224,659],{"class":658},[645,1226,663],{"class":662},[645,1228,710],{"class":666},[645,1230,670],{"class":662},[645,1232,673],{"class":658},[645,1234,676],{"class":662},[645,1236,719],{"class":679},[645,1238,683],{"class":662},[645,1240,1241],{"class":647,"line":703},[645,1242,751],{"emptyLinePlaceholder":750},[645,1244,1245,1247,1249,1251,1253,1255,1257],{"class":647,"line":724},[645,1246,757],{"class":658},[645,1248,760],{"class":658},[645,1250,764],{"class":763},[645,1252,767],{"class":666},[645,1254,770],{"class":662},[645,1256,774],{"class":773},[645,1258,777],{"class":662},[645,1260,1261,1263,1266,1268,1270,1272],{"class":647,"line":747},[645,1262,783],{"class":773},[645,1264,1265],{"class":666}," client",[645,1267,789],{"class":662},[645,1269,1210],{"class":763},[645,1271,767],{"class":798},[645,1273,1274],{"class":662},"{\n",[645,1276,1277,1280,1282,1284,1286,1288,1290,1293],{"class":647,"line":754},[645,1278,1279],{"class":798},"    url",[645,1281,980],{"class":662},[645,1283,983],{"class":666},[645,1285,986],{"class":662},[645,1287,989],{"class":666},[645,1289,986],{"class":662},[645,1291,1292],{"class":666},"TURSO_DATABASE_URL",[645,1294,1295],{"class":662},"!,\n",[645,1297,1298,1301,1303,1305,1307,1309,1311,1314],{"class":647,"line":780},[645,1299,1300],{"class":798},"    authToken",[645,1302,980],{"class":662},[645,1304,983],{"class":666},[645,1306,986],{"class":662},[645,1308,989],{"class":666},[645,1310,986],{"class":662},[645,1312,1313],{"class":666},"TURSO_AUTH_TOKEN",[645,1315,1316],{"class":662},",\n",[645,1318,1319,1322],{"class":647,"line":812},[645,1320,1321],{"class":662},"  }",[645,1323,809],{"class":798},[645,1325,1326,1328,1330,1332,1334,1336,1339,1341,1343,1345,1347],{"class":647,"line":841},[645,1327,783],{"class":773},[645,1329,817],{"class":666},[645,1331,789],{"class":662},[645,1333,667],{"class":763},[645,1335,767],{"class":798},[645,1337,1338],{"class":666},"client",[645,1340,829],{"class":662},[645,1342,663],{"class":662},[645,1344,834],{"class":666},[645,1346,670],{"class":662},[645,1348,809],{"class":798},[645,1350,1351],{"class":647,"line":846},[645,1352,751],{"emptyLinePlaceholder":750},[645,1354,1355,1357,1359,1361,1363,1365,1367,1369],{"class":647,"line":867},[645,1356,849],{"class":763},[645,1358,767],{"class":798},[645,1360,854],{"class":666},[645,1362,829],{"class":662},[645,1364,676],{"class":662},[645,1366,582],{"class":679},[645,1368,801],{"class":662},[645,1370,809],{"class":798},[645,1372,1374,1376],{"class":647,"line":1373},13,[645,1375,870],{"class":662},[645,1377,809],{"class":666},[459,1379,1381],{"id":1380},"configuration","Configuration",[455,1383,1384,1385,980],{},"Set the engine in ",[497,1386,1387],{},"nuxt.config.ts",[636,1389,1391],{"className":638,"code":1390,"language":640,"meta":641,"style":641},"export default defineNuxtConfig({\n  autoApi: {\n    database: {\n      client: 'better-sqlite3', // or 'postgres', 'mysql', 'd1', 'turso', 'planetscale'\n    },\n  },\n})\n",[497,1392,1393,1406,1415,1424,1442,1447,1452],{"__ignoreMap":641},[645,1394,1395,1397,1399,1402,1404],{"class":647,"line":648},[645,1396,757],{"class":658},[645,1398,760],{"class":658},[645,1400,1401],{"class":763}," defineNuxtConfig",[645,1403,767],{"class":666},[645,1405,1274],{"class":662},[645,1407,1408,1411,1413],{"class":647,"line":655},[645,1409,1410],{"class":798},"  autoApi",[645,1412,980],{"class":662},[645,1414,777],{"class":662},[645,1416,1417,1420,1422],{"class":647,"line":686},[645,1418,1419],{"class":798},"    database",[645,1421,980],{"class":662},[645,1423,777],{"class":662},[645,1425,1426,1429,1431,1433,1435,1437,1439],{"class":647,"line":703},[645,1427,1428],{"class":798},"      client",[645,1430,980],{"class":662},[645,1432,676],{"class":662},[645,1434,499],{"class":679},[645,1436,801],{"class":662},[645,1438,829],{"class":662},[645,1440,1441],{"class":651}," // or 'postgres', 'mysql', 'd1', 'turso', 'planetscale'\n",[645,1443,1444],{"class":647,"line":724},[645,1445,1446],{"class":662},"    },\n",[645,1448,1449],{"class":647,"line":747},[645,1450,1451],{"class":662},"  },\n",[645,1453,1454,1456],{"class":647,"line":754},[645,1455,870],{"class":662},[645,1457,809],{"class":666},[459,1459,1461],{"id":1460},"using-the-adapter-directly","Using the Adapter Directly",[455,1463,1464,1465,1468,1469,1472],{},"The adapter is available in ",[497,1466,1467],{},"HandlerContext"," and from the ",[497,1470,1471],{},"getDatabaseAdapter()"," helper:",[636,1474,1476],{"className":638,"code":1475,"language":640,"meta":641,"style":641},"import { getDatabaseAdapter } from '@websideproject/nuxt-auto-api/database'\n\n// In a server handler\nconst adapter = getDatabaseAdapter()\n\n// Run atomic operations (transaction or batch depending on engine)\nconst result = await adapter.atomic(async ({ tx }) => {\n  await tx.insert(users).values({ name: 'Alice' })\n  await tx.insert(posts).values({ title: 'Hello', userId: 1 })\n  return 'done'\n})\n\n// Check engine capabilities\nif (adapter.supportsReturning) {\n  const [created] = await db.insert(users).values(data).returning()\n}\n\n// Parse mutation counts\nconst result = await db.delete(posts).where(eq(posts.draft, true))\nconst deleted = adapter.getMutationCount(result)\n",[497,1477,1478,1497,1501,1506,1522,1526,1531,1570,1615,1667,1679,1685,1689,1694,1710,1758,1764,1769,1775,1823],{"__ignoreMap":641},[645,1479,1480,1482,1484,1487,1489,1491,1493,1495],{"class":647,"line":648},[645,1481,659],{"class":658},[645,1483,663],{"class":662},[645,1485,1486],{"class":666}," getDatabaseAdapter",[645,1488,670],{"class":662},[645,1490,673],{"class":658},[645,1492,676],{"class":662},[645,1494,719],{"class":679},[645,1496,683],{"class":662},[645,1498,1499],{"class":647,"line":655},[645,1500,751],{"emptyLinePlaceholder":750},[645,1502,1503],{"class":647,"line":686},[645,1504,1505],{"class":651},"// In a server handler\n",[645,1507,1508,1511,1514,1517,1519],{"class":647,"line":703},[645,1509,1510],{"class":773},"const",[645,1512,1513],{"class":666}," adapter ",[645,1515,1516],{"class":662},"=",[645,1518,1486],{"class":763},[645,1520,1521],{"class":666},"()\n",[645,1523,1524],{"class":647,"line":724},[645,1525,751],{"emptyLinePlaceholder":750},[645,1527,1528],{"class":647,"line":747},[645,1529,1530],{"class":651},"// Run atomic operations (transaction or batch depending on engine)\n",[645,1532,1533,1535,1538,1540,1543,1546,1548,1551,1553,1556,1559,1563,1566,1568],{"class":647,"line":754},[645,1534,1510],{"class":773},[645,1536,1537],{"class":666}," result ",[645,1539,1516],{"class":662},[645,1541,1542],{"class":658}," await",[645,1544,1545],{"class":666}," adapter",[645,1547,986],{"class":662},[645,1549,1550],{"class":763},"atomic",[645,1552,767],{"class":666},[645,1554,1555],{"class":773},"async",[645,1557,1558],{"class":662}," ({",[645,1560,1562],{"class":1561},"sHdIc"," tx",[645,1564,1565],{"class":662}," })",[645,1567,774],{"class":773},[645,1569,777],{"class":662},[645,1571,1572,1575,1577,1579,1582,1584,1587,1590,1592,1595,1597,1599,1602,1604,1606,1609,1611,1613],{"class":647,"line":780},[645,1573,1574],{"class":658},"  await",[645,1576,1562],{"class":666},[645,1578,986],{"class":662},[645,1580,1581],{"class":763},"insert",[645,1583,767],{"class":798},[645,1585,1586],{"class":666},"users",[645,1588,1589],{"class":798},")",[645,1591,986],{"class":662},[645,1593,1594],{"class":763},"values",[645,1596,767],{"class":798},[645,1598,974],{"class":662},[645,1600,1601],{"class":798}," name",[645,1603,980],{"class":662},[645,1605,676],{"class":662},[645,1607,1608],{"class":679},"Alice",[645,1610,801],{"class":662},[645,1612,670],{"class":662},[645,1614,809],{"class":798},[645,1616,1617,1619,1621,1623,1625,1627,1630,1632,1634,1636,1638,1640,1643,1645,1647,1650,1652,1654,1657,1659,1663,1665],{"class":647,"line":812},[645,1618,1574],{"class":658},[645,1620,1562],{"class":666},[645,1622,986],{"class":662},[645,1624,1581],{"class":763},[645,1626,767],{"class":798},[645,1628,1629],{"class":666},"posts",[645,1631,1589],{"class":798},[645,1633,986],{"class":662},[645,1635,1594],{"class":763},[645,1637,767],{"class":798},[645,1639,974],{"class":662},[645,1641,1642],{"class":798}," title",[645,1644,980],{"class":662},[645,1646,676],{"class":662},[645,1648,1649],{"class":679},"Hello",[645,1651,801],{"class":662},[645,1653,829],{"class":662},[645,1655,1656],{"class":798}," userId",[645,1658,980],{"class":662},[645,1660,1662],{"class":1661},"sbssI"," 1",[645,1664,670],{"class":662},[645,1666,809],{"class":798},[645,1668,1669,1672,1674,1677],{"class":647,"line":841},[645,1670,1671],{"class":658},"  return",[645,1673,676],{"class":662},[645,1675,1676],{"class":679},"done",[645,1678,683],{"class":662},[645,1680,1681,1683],{"class":647,"line":846},[645,1682,870],{"class":662},[645,1684,809],{"class":666},[645,1686,1687],{"class":647,"line":867},[645,1688,751],{"emptyLinePlaceholder":750},[645,1690,1691],{"class":647,"line":1373},[645,1692,1693],{"class":651},"// Check engine capabilities\n",[645,1695,1697,1700,1703,1705,1708],{"class":647,"line":1696},14,[645,1698,1699],{"class":658},"if",[645,1701,1702],{"class":666}," (adapter",[645,1704,986],{"class":662},[645,1706,1707],{"class":666},"supportsReturning) ",[645,1709,1274],{"class":662},[645,1711,1713,1715,1718,1721,1724,1726,1728,1730,1732,1734,1736,1738,1740,1742,1744,1746,1749,1751,1753,1756],{"class":647,"line":1712},15,[645,1714,783],{"class":773},[645,1716,1717],{"class":662}," [",[645,1719,1720],{"class":666},"created",[645,1722,1723],{"class":662},"]",[645,1725,789],{"class":662},[645,1727,1542],{"class":658},[645,1729,817],{"class":666},[645,1731,986],{"class":662},[645,1733,1581],{"class":763},[645,1735,767],{"class":798},[645,1737,1586],{"class":666},[645,1739,1589],{"class":798},[645,1741,986],{"class":662},[645,1743,1594],{"class":763},[645,1745,767],{"class":798},[645,1747,1748],{"class":666},"data",[645,1750,1589],{"class":798},[645,1752,986],{"class":662},[645,1754,1755],{"class":763},"returning",[645,1757,1521],{"class":798},[645,1759,1761],{"class":647,"line":1760},16,[645,1762,1763],{"class":662},"}\n",[645,1765,1767],{"class":647,"line":1766},17,[645,1768,751],{"emptyLinePlaceholder":750},[645,1770,1772],{"class":647,"line":1771},18,[645,1773,1774],{"class":651},"// Parse mutation counts\n",[645,1776,1778,1780,1782,1784,1786,1788,1790,1793,1796,1798,1801,1803,1806,1809,1811,1814,1816,1820],{"class":647,"line":1777},19,[645,1779,1510],{"class":773},[645,1781,1537],{"class":666},[645,1783,1516],{"class":662},[645,1785,1542],{"class":658},[645,1787,817],{"class":666},[645,1789,986],{"class":662},[645,1791,1792],{"class":763},"delete",[645,1794,1795],{"class":666},"(posts)",[645,1797,986],{"class":662},[645,1799,1800],{"class":763},"where",[645,1802,767],{"class":666},[645,1804,1805],{"class":763},"eq",[645,1807,1808],{"class":666},"(posts",[645,1810,986],{"class":662},[645,1812,1813],{"class":666},"draft",[645,1815,829],{"class":662},[645,1817,1819],{"class":1818},"sfNiH"," true",[645,1821,1822],{"class":666},"))\n",[645,1824,1826,1828,1831,1833,1835,1837,1840],{"class":647,"line":1825},20,[645,1827,1510],{"class":773},[645,1829,1830],{"class":666}," deleted ",[645,1832,1516],{"class":662},[645,1834,1545],{"class":666},[645,1836,986],{"class":662},[645,1838,1839],{"class":763},"getMutationCount",[645,1841,1842],{"class":666},"(result)\n",[459,1844,1846],{"id":1845},"adapter-api","Adapter API",[636,1848,1850],{"className":638,"code":1849,"language":640,"meta":641,"style":641},"interface DatabaseAdapter {\n  engine: DatabaseEngine       // Engine identifier\n  db: any                      // Drizzle database instance\n  atomic\u003CT>(fn): Promise\u003CT>    // Run operations atomically\n  getMutationCount(result): number  // Parse affected rows\n  supportsReturning: boolean   // Does the engine support RETURNING?\n  supportsNativeBatch: boolean // Does the engine use batch() instead of transaction()?\n}\n",[497,1851,1852,1863,1876,1889,1922,1940,1953,1965],{"__ignoreMap":641},[645,1853,1854,1857,1861],{"class":647,"line":648},[645,1855,1856],{"class":773},"interface",[645,1858,1860],{"class":1859},"sBMFI"," DatabaseAdapter",[645,1862,777],{"class":662},[645,1864,1865,1868,1870,1873],{"class":647,"line":655},[645,1866,1867],{"class":798},"  engine",[645,1869,980],{"class":662},[645,1871,1872],{"class":1859}," DatabaseEngine",[645,1874,1875],{"class":651},"       // Engine identifier\n",[645,1877,1878,1881,1883,1886],{"class":647,"line":686},[645,1879,1880],{"class":798},"  db",[645,1882,980],{"class":662},[645,1884,1885],{"class":1859}," any",[645,1887,1888],{"class":651},"                      // Drizzle database instance\n",[645,1890,1891,1894,1897,1900,1903,1906,1909,1912,1914,1916,1919],{"class":647,"line":703},[645,1892,1893],{"class":798},"  atomic",[645,1895,1896],{"class":662},"\u003C",[645,1898,1899],{"class":1859},"T",[645,1901,1902],{"class":662},">(",[645,1904,1905],{"class":1561},"fn",[645,1907,1908],{"class":662},"):",[645,1910,1911],{"class":1859}," Promise",[645,1913,1896],{"class":662},[645,1915,1899],{"class":1859},[645,1917,1918],{"class":662},">",[645,1920,1921],{"class":651},"    // Run operations atomically\n",[645,1923,1924,1927,1929,1932,1934,1937],{"class":647,"line":724},[645,1925,1926],{"class":798},"  getMutationCount",[645,1928,767],{"class":662},[645,1930,1931],{"class":1561},"result",[645,1933,1908],{"class":662},[645,1935,1936],{"class":1859}," number",[645,1938,1939],{"class":651},"  // Parse affected rows\n",[645,1941,1942,1945,1947,1950],{"class":647,"line":747},[645,1943,1944],{"class":798},"  supportsReturning",[645,1946,980],{"class":662},[645,1948,1949],{"class":1859}," boolean",[645,1951,1952],{"class":651},"   // Does the engine support RETURNING?\n",[645,1954,1955,1958,1960,1962],{"class":647,"line":754},[645,1956,1957],{"class":798},"  supportsNativeBatch",[645,1959,980],{"class":662},[645,1961,1949],{"class":1859},[645,1963,1964],{"class":651}," // Does the engine use batch() instead of transaction()?\n",[645,1966,1967],{"class":647,"line":780},[645,1968,1763],{"class":662},[459,1970,1972],{"id":1971},"backward-compatibility","Backward Compatibility",[455,1974,1975,1976,1979,1980,986],{},"If you are using the legacy ",[497,1977,1978],{},"globalThis.__autoApiDb"," pattern, it still works. The system will automatically wrap it in a default SQLite adapter with a deprecation warning. To silence the warning, switch to ",[497,1981,633],{},[636,1983,1985],{"className":638,"code":1984,"language":640,"meta":641,"style":641},"// Legacy (still works, deprecated)\nglobalThis.__autoApiDb = db\n\n// Recommended\ninitializeDatabase(db, 'better-sqlite3')\n",[497,1986,1987,1992,2007,2011,2016],{"__ignoreMap":641},[645,1988,1989],{"class":647,"line":648},[645,1990,1991],{"class":651},"// Legacy (still works, deprecated)\n",[645,1993,1994,1997,1999,2002,2004],{"class":647,"line":655},[645,1995,1996],{"class":666},"globalThis",[645,1998,986],{"class":662},[645,2000,2001],{"class":666},"__autoApiDb ",[645,2003,1516],{"class":662},[645,2005,2006],{"class":666}," db\n",[645,2008,2009],{"class":647,"line":686},[645,2010,751],{"emptyLinePlaceholder":750},[645,2012,2013],{"class":647,"line":703},[645,2014,2015],{"class":651},"// Recommended\n",[645,2017,2018,2020,2023,2025,2027,2029,2031],{"class":647,"line":724},[645,2019,627],{"class":763},[645,2021,2022],{"class":666},"(db",[645,2024,829],{"class":662},[645,2026,676],{"class":662},[645,2028,499],{"class":679},[645,2030,801],{"class":662},[645,2032,809],{"class":666},[2034,2035,2036],"style",{},"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 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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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 .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}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":641,"searchDepth":655,"depth":655,"links":2038},[2039,2040,2047,2048,2049,2050],{"id":461,"depth":655,"text":462},{"id":618,"depth":655,"text":619,"children":2041},[2042,2044,2045,2046],{"id":623,"depth":686,"text":2043},"Using initializeDatabase",{"id":521,"depth":686,"text":875},{"id":1054,"depth":686,"text":259},{"id":1176,"depth":686,"text":1177},{"id":1380,"depth":655,"text":1381},{"id":1460,"depth":655,"text":1461},{"id":1845,"depth":655,"text":1846},{"id":1971,"depth":655,"text":1972},"md",null,{},{"title":227,"description":457},"g3Aco-4gyrdVF6d_dmkTSD436f60z_6h_hno17DuYkE",[2057,2059],{"title":223,"path":224,"stem":225,"description":2058,"children":-1},"The plugin system provides a structured architecture for extending @websideproject/nuxt-auto-api. Plugins can hook into both the build-time module setup and the server-side runtime pipeline.",{"title":231,"path":232,"stem":233,"description":2060,"children":-1},"@websideproject/nuxt-auto-api provides two approaches for building custom server endpoints that integrate with the auto-api pipeline: createEndpoint() for full pipeline integration, and standalone helpers for lightweight use in regular Nitro handlers.",1772977478029]