[{"data":1,"prerenderedAt":1784},["ShallowReactive",2],{"navigation-landing-en":3,"navigation-nuxt-auto-en":180,"navigation-nuxt-protokit-en":338,"/docs/nuxt-auto/auto-api/soft-deletes-en":444,"/docs/nuxt-auto/auto-api/soft-deletes-surround-en":1779},[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":1775},{"id":446,"title":279,"body":447,"description":457,"extension":1774,"links":1775,"meta":1776,"navigation":1775,"ogImage":1775,"path":280,"seo":1777,"stem":281,"__hash__":1778},"nuxt_auto/0.docs/3.nuxt-auto/2.auto-api/5.soft-deletes.md",{"type":448,"value":449,"toc":1760},"minimark",[450,454,458,463,471,667,670,687,691,696,722,728,794,799,854,858,861,885,889,922,926,929,955,959,962,990,995,1041,1046,1061,1065,1068,1530,1534,1537,1567,1571,1604,1608,1611,1756],[451,452,279],"h1",{"id":453},"soft-deletes",[455,456,457],"p",{},"Soft deletes mark records as deleted without removing them from the database.",[459,460,462],"h2",{"id":461},"auto-detection","Auto-Detection",[455,464,465,466,470],{},"Add a ",[467,468,469],"code",{},"deletedAt"," column to your schema:",[472,473,478],"pre",{"className":474,"code":475,"language":476,"meta":477,"style":477},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export const posts = sqliteTable('posts', {\n  id: integer('id').primaryKey({ autoIncrement: true }),\n  title: text('title').notNull(),\n  // ... other fields\n  deletedAt: integer('deleted_at', { mode: 'timestamp' }),\n})\n","typescript","",[467,479,480,523,576,608,615,658],{"__ignoreMap":477},[481,482,485,489,493,497,501,505,508,511,515,517,520],"span",{"class":483,"line":484},"line",1,[481,486,488],{"class":487},"s7zQu","export",[481,490,492],{"class":491},"spNyl"," const",[481,494,496],{"class":495},"sTEyZ"," posts ",[481,498,500],{"class":499},"sMK4o","=",[481,502,504],{"class":503},"s2Zo4"," sqliteTable",[481,506,507],{"class":495},"(",[481,509,510],{"class":499},"'",[481,512,514],{"class":513},"sfazB","posts",[481,516,510],{"class":499},[481,518,519],{"class":499},",",[481,521,522],{"class":499}," {\n",[481,524,526,530,533,536,538,540,543,545,548,551,554,556,559,562,564,568,571,573],{"class":483,"line":525},2,[481,527,529],{"class":528},"swJcz","  id",[481,531,532],{"class":499},":",[481,534,535],{"class":503}," integer",[481,537,507],{"class":495},[481,539,510],{"class":499},[481,541,542],{"class":513},"id",[481,544,510],{"class":499},[481,546,547],{"class":495},")",[481,549,550],{"class":499},".",[481,552,553],{"class":503},"primaryKey",[481,555,507],{"class":495},[481,557,558],{"class":499},"{",[481,560,561],{"class":528}," autoIncrement",[481,563,532],{"class":499},[481,565,567],{"class":566},"sfNiH"," true",[481,569,570],{"class":499}," }",[481,572,547],{"class":495},[481,574,575],{"class":499},",\n",[481,577,579,582,584,587,589,591,594,596,598,600,603,606],{"class":483,"line":578},3,[481,580,581],{"class":528},"  title",[481,583,532],{"class":499},[481,585,586],{"class":503}," text",[481,588,507],{"class":495},[481,590,510],{"class":499},[481,592,593],{"class":513},"title",[481,595,510],{"class":499},[481,597,547],{"class":495},[481,599,550],{"class":499},[481,601,602],{"class":503},"notNull",[481,604,605],{"class":495},"()",[481,607,575],{"class":499},[481,609,611],{"class":483,"line":610},4,[481,612,614],{"class":613},"sHwdD","  // ... other fields\n",[481,616,618,621,623,625,627,629,632,634,636,639,642,644,647,650,652,654,656],{"class":483,"line":617},5,[481,619,620],{"class":528},"  deletedAt",[481,622,532],{"class":499},[481,624,535],{"class":503},[481,626,507],{"class":495},[481,628,510],{"class":499},[481,630,631],{"class":513},"deleted_at",[481,633,510],{"class":499},[481,635,519],{"class":499},[481,637,638],{"class":499}," {",[481,640,641],{"class":528}," mode",[481,643,532],{"class":499},[481,645,646],{"class":499}," '",[481,648,649],{"class":513},"timestamp",[481,651,510],{"class":499},[481,653,570],{"class":499},[481,655,547],{"class":495},[481,657,575],{"class":499},[481,659,661,664],{"class":483,"line":660},6,[481,662,663],{"class":499},"}",[481,665,666],{"class":495},")\n",[455,668,669],{},"Supported column names (auto-detected):",[671,672,673,678,682],"ul",{},[674,675,676],"li",{},[467,677,469],{},[674,679,680],{},[467,681,631],{},[674,683,684],{},[467,685,686],{},"deletedDate",[459,688,690],{"id":689},"behavior","Behavior",[692,693,695],"h3",{"id":694},"delete-operation","Delete Operation",[472,697,699],{"className":474,"code":698,"language":476,"meta":477,"style":477},"DELETE /api/posts/123\n",[467,700,701],{"__ignoreMap":477},[481,702,703,706,709,712,714,716,718],{"class":483,"line":484},[481,704,705],{"class":495},"DELETE ",[481,707,708],{"class":499},"/",[481,710,711],{"class":495},"api",[481,713,708],{"class":499},[481,715,514],{"class":495},[481,717,708],{"class":499},[481,719,721],{"class":720},"sbssI","123\n",[455,723,724],{},[725,726,727],"strong",{},"With deletedAt column:",[472,729,733],{"className":730,"code":731,"language":732,"meta":477,"style":477},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"success\": true,\n  \"softDeleted\": true,\n  \"message\": \"Record marked as deleted\"\n}\n","json",[467,734,735,740,756,769,789],{"__ignoreMap":477},[481,736,737],{"class":483,"line":484},[481,738,739],{"class":499},"{\n",[481,741,742,745,748,751,753],{"class":483,"line":525},[481,743,744],{"class":499},"  \"",[481,746,747],{"class":491},"success",[481,749,750],{"class":499},"\"",[481,752,532],{"class":499},[481,754,755],{"class":499}," true,\n",[481,757,758,760,763,765,767],{"class":483,"line":578},[481,759,744],{"class":499},[481,761,762],{"class":491},"softDeleted",[481,764,750],{"class":499},[481,766,532],{"class":499},[481,768,755],{"class":499},[481,770,771,773,776,778,780,783,786],{"class":483,"line":610},[481,772,744],{"class":499},[481,774,775],{"class":491},"message",[481,777,750],{"class":499},[481,779,532],{"class":499},[481,781,782],{"class":499}," \"",[481,784,785],{"class":513},"Record marked as deleted",[481,787,788],{"class":499},"\"\n",[481,790,791],{"class":483,"line":617},[481,792,793],{"class":499},"}\n",[455,795,796],{},[725,797,798],{},"Without deletedAt column:",[472,800,802],{"className":730,"code":801,"language":732,"meta":477,"style":477},"{\n  \"success\": true,\n  \"softDeleted\": false,\n  \"message\": \"Record permanently deleted\"\n}\n",[467,803,804,808,820,833,850],{"__ignoreMap":477},[481,805,806],{"class":483,"line":484},[481,807,739],{"class":499},[481,809,810,812,814,816,818],{"class":483,"line":525},[481,811,744],{"class":499},[481,813,747],{"class":491},[481,815,750],{"class":499},[481,817,532],{"class":499},[481,819,755],{"class":499},[481,821,822,824,826,828,830],{"class":483,"line":578},[481,823,744],{"class":499},[481,825,762],{"class":491},[481,827,750],{"class":499},[481,829,532],{"class":499},[481,831,832],{"class":499}," false,\n",[481,834,835,837,839,841,843,845,848],{"class":483,"line":610},[481,836,744],{"class":499},[481,838,775],{"class":491},[481,840,750],{"class":499},[481,842,532],{"class":499},[481,844,782],{"class":499},[481,846,847],{"class":513},"Record permanently deleted",[481,849,788],{"class":499},[481,851,852],{"class":483,"line":617},[481,853,793],{"class":499},[692,855,857],{"id":856},"list-operation","List Operation",[455,859,860],{},"Soft-deleted records are automatically filtered:",[472,862,864],{"className":474,"code":863,"language":476,"meta":477,"style":477},"GET /api/posts\n// Returns only non-deleted posts\n",[467,865,866,880],{"__ignoreMap":477},[481,867,868,871,873,875,877],{"class":483,"line":484},[481,869,870],{"class":495},"GET ",[481,872,708],{"class":499},[481,874,711],{"class":495},[481,876,708],{"class":499},[481,878,879],{"class":495},"posts\n",[481,881,882],{"class":483,"line":525},[481,883,884],{"class":613},"// Returns only non-deleted posts\n",[692,886,888],{"id":887},"include-deleted-admin-only","Include Deleted (Admin Only)",[472,890,892],{"className":474,"code":891,"language":476,"meta":477,"style":477},"GET /api/posts?includeDeleted=true\n// Requires 'admin' permission\n",[467,893,894,917],{"__ignoreMap":477},[481,895,896,898,900,902,904,906,909,912,914],{"class":483,"line":484},[481,897,870],{"class":495},[481,899,708],{"class":499},[481,901,711],{"class":495},[481,903,708],{"class":499},[481,905,514],{"class":495},[481,907,908],{"class":499},"?",[481,910,911],{"class":495},"includeDeleted",[481,913,500],{"class":499},[481,915,916],{"class":566},"true\n",[481,918,919],{"class":483,"line":525},[481,920,921],{"class":613},"// Requires 'admin' permission\n",[692,923,925],{"id":924},"get-operation","Get Operation",[455,927,928],{},"Soft-deleted records return 404 (unless admin):",[472,930,932],{"className":474,"code":931,"language":476,"meta":477,"style":477},"GET /api/posts/123\n// 404 if deleted (unless user has 'admin' permission)\n",[467,933,934,950],{"__ignoreMap":477},[481,935,936,938,940,942,944,946,948],{"class":483,"line":484},[481,937,870],{"class":495},[481,939,708],{"class":499},[481,941,711],{"class":495},[481,943,708],{"class":499},[481,945,514],{"class":495},[481,947,708],{"class":499},[481,949,721],{"class":720},[481,951,952],{"class":483,"line":525},[481,953,954],{"class":613},"// 404 if deleted (unless user has 'admin' permission)\n",[459,956,958],{"id":957},"restore-endpoint","Restore Endpoint",[455,960,961],{},"Restore soft-deleted records:",[472,963,965],{"className":474,"code":964,"language":476,"meta":477,"style":477},"POST /api/posts/123/restore\n",[467,966,967],{"__ignoreMap":477},[481,968,969,972,974,976,978,980,982,985,987],{"class":483,"line":484},[481,970,971],{"class":495},"POST ",[481,973,708],{"class":499},[481,975,711],{"class":495},[481,977,708],{"class":499},[481,979,514],{"class":495},[481,981,708],{"class":499},[481,983,984],{"class":720},"123",[481,986,708],{"class":499},[481,988,989],{"class":495},"restore\n",[455,991,992],{},[725,993,994],{},"Response:",[472,996,998],{"className":730,"code":997,"language":732,"meta":477,"style":477},"{\n  \"data\": { ... },\n  \"restored\": true\n}\n",[467,999,1000,1004,1023,1037],{"__ignoreMap":477},[481,1001,1002],{"class":483,"line":484},[481,1003,739],{"class":499},[481,1005,1006,1008,1011,1013,1015,1017,1020],{"class":483,"line":525},[481,1007,744],{"class":499},[481,1009,1010],{"class":491},"data",[481,1012,750],{"class":499},[481,1014,532],{"class":499},[481,1016,638],{"class":499},[481,1018,1019],{"class":495}," ... ",[481,1021,1022],{"class":499},"},\n",[481,1024,1025,1027,1030,1032,1034],{"class":483,"line":578},[481,1026,744],{"class":499},[481,1028,1029],{"class":491},"restored",[481,1031,750],{"class":499},[481,1033,532],{"class":499},[481,1035,1036],{"class":499}," true\n",[481,1038,1039],{"class":483,"line":610},[481,1040,793],{"class":499},[455,1042,1043],{},[725,1044,1045],{},"Requirements:",[671,1047,1048,1055,1058],{},[674,1049,1050,1051,1054],{},"User must have ",[467,1052,1053],{},"admin"," permission (by default)",[674,1056,1057],{},"Record must be soft-deleted",[674,1059,1060],{},"Table must support soft deletes",[459,1062,1064],{"id":1063},"custom-authorization","Custom Authorization",[455,1066,1067],{},"Override restore authorization in a custom handler:",[472,1069,1071],{"className":474,"code":1070,"language":476,"meta":477,"style":477},"// server/api/posts/[id]/restore.post.ts\nimport { defineAutoApiHandler } from '@websideproject/nuxt-auto-api/utils'\n\nexport default defineAutoApiHandler({\n  async execute(context) {\n    const postId = context.params.id\n    const post = await context.db.query.posts.findFirst({\n      where: and(\n        eq(posts.id, postId),\n        isNotNull(posts.deletedAt)\n      ),\n    })\n\n    // Custom authorization: allow post owner to restore\n    if (post.userId !== context.user.id && !context.permissions.includes('admin')) {\n      throw createError({ statusCode: 403 })\n    }\n\n    // Restore\n    const [restored] = await context.db\n      .update(posts)\n      .set({ deletedAt: null })\n      .where(eq(posts.id, postId))\n      .returning()\n\n    return { data: restored, restored: true }\n  },\n})\n",[467,1072,1073,1078,1101,1107,1120,1138,1162,1200,1214,1236,1252,1260,1268,1273,1279,1341,1366,1372,1377,1383,1407,1422,1446,1474,1485,1490,1517,1523],{"__ignoreMap":477},[481,1074,1075],{"class":483,"line":484},[481,1076,1077],{"class":613},"// server/api/posts/[id]/restore.post.ts\n",[481,1079,1080,1083,1085,1088,1090,1093,1095,1098],{"class":483,"line":525},[481,1081,1082],{"class":487},"import",[481,1084,638],{"class":499},[481,1086,1087],{"class":495}," defineAutoApiHandler",[481,1089,570],{"class":499},[481,1091,1092],{"class":487}," from",[481,1094,646],{"class":499},[481,1096,1097],{"class":513},"@websideproject/nuxt-auto-api/utils",[481,1099,1100],{"class":499},"'\n",[481,1102,1103],{"class":483,"line":578},[481,1104,1106],{"emptyLinePlaceholder":1105},true,"\n",[481,1108,1109,1111,1114,1116,1118],{"class":483,"line":610},[481,1110,488],{"class":487},[481,1112,1113],{"class":487}," default",[481,1115,1087],{"class":503},[481,1117,507],{"class":495},[481,1119,739],{"class":499},[481,1121,1122,1125,1128,1130,1134,1136],{"class":483,"line":617},[481,1123,1124],{"class":491},"  async",[481,1126,1127],{"class":528}," execute",[481,1129,507],{"class":499},[481,1131,1133],{"class":1132},"sHdIc","context",[481,1135,547],{"class":499},[481,1137,522],{"class":499},[481,1139,1140,1143,1146,1149,1152,1154,1157,1159],{"class":483,"line":660},[481,1141,1142],{"class":491},"    const",[481,1144,1145],{"class":495}," postId",[481,1147,1148],{"class":499}," =",[481,1150,1151],{"class":495}," context",[481,1153,550],{"class":499},[481,1155,1156],{"class":495},"params",[481,1158,550],{"class":499},[481,1160,1161],{"class":495},"id\n",[481,1163,1165,1167,1170,1172,1175,1177,1179,1182,1184,1187,1189,1191,1193,1196,1198],{"class":483,"line":1164},7,[481,1166,1142],{"class":491},[481,1168,1169],{"class":495}," post",[481,1171,1148],{"class":499},[481,1173,1174],{"class":487}," await",[481,1176,1151],{"class":495},[481,1178,550],{"class":499},[481,1180,1181],{"class":495},"db",[481,1183,550],{"class":499},[481,1185,1186],{"class":495},"query",[481,1188,550],{"class":499},[481,1190,514],{"class":495},[481,1192,550],{"class":499},[481,1194,1195],{"class":503},"findFirst",[481,1197,507],{"class":528},[481,1199,739],{"class":499},[481,1201,1203,1206,1208,1211],{"class":483,"line":1202},8,[481,1204,1205],{"class":528},"      where",[481,1207,532],{"class":499},[481,1209,1210],{"class":503}," and",[481,1212,1213],{"class":528},"(\n",[481,1215,1217,1220,1222,1224,1226,1228,1230,1232,1234],{"class":483,"line":1216},9,[481,1218,1219],{"class":503},"        eq",[481,1221,507],{"class":528},[481,1223,514],{"class":495},[481,1225,550],{"class":499},[481,1227,542],{"class":495},[481,1229,519],{"class":499},[481,1231,1145],{"class":495},[481,1233,547],{"class":528},[481,1235,575],{"class":499},[481,1237,1239,1242,1244,1246,1248,1250],{"class":483,"line":1238},10,[481,1240,1241],{"class":503},"        isNotNull",[481,1243,507],{"class":528},[481,1245,514],{"class":495},[481,1247,550],{"class":499},[481,1249,469],{"class":495},[481,1251,666],{"class":528},[481,1253,1255,1258],{"class":483,"line":1254},11,[481,1256,1257],{"class":528},"      )",[481,1259,575],{"class":499},[481,1261,1263,1266],{"class":483,"line":1262},12,[481,1264,1265],{"class":499},"    }",[481,1267,666],{"class":528},[481,1269,1271],{"class":483,"line":1270},13,[481,1272,1106],{"emptyLinePlaceholder":1105},[481,1274,1276],{"class":483,"line":1275},14,[481,1277,1278],{"class":613},"    // Custom authorization: allow post owner to restore\n",[481,1280,1282,1285,1288,1291,1293,1296,1299,1301,1303,1306,1308,1310,1313,1316,1318,1320,1323,1325,1328,1330,1332,1334,1336,1339],{"class":483,"line":1281},15,[481,1283,1284],{"class":487},"    if",[481,1286,1287],{"class":528}," (",[481,1289,1290],{"class":495},"post",[481,1292,550],{"class":499},[481,1294,1295],{"class":495},"userId",[481,1297,1298],{"class":499}," !==",[481,1300,1151],{"class":495},[481,1302,550],{"class":499},[481,1304,1305],{"class":495},"user",[481,1307,550],{"class":499},[481,1309,542],{"class":495},[481,1311,1312],{"class":499}," &&",[481,1314,1315],{"class":499}," !",[481,1317,1133],{"class":495},[481,1319,550],{"class":499},[481,1321,1322],{"class":495},"permissions",[481,1324,550],{"class":499},[481,1326,1327],{"class":503},"includes",[481,1329,507],{"class":528},[481,1331,510],{"class":499},[481,1333,1053],{"class":513},[481,1335,510],{"class":499},[481,1337,1338],{"class":528},")) ",[481,1340,739],{"class":499},[481,1342,1344,1347,1350,1352,1354,1357,1359,1362,1364],{"class":483,"line":1343},16,[481,1345,1346],{"class":487},"      throw",[481,1348,1349],{"class":503}," createError",[481,1351,507],{"class":528},[481,1353,558],{"class":499},[481,1355,1356],{"class":528}," statusCode",[481,1358,532],{"class":499},[481,1360,1361],{"class":720}," 403",[481,1363,570],{"class":499},[481,1365,666],{"class":528},[481,1367,1369],{"class":483,"line":1368},17,[481,1370,1371],{"class":499},"    }\n",[481,1373,1375],{"class":483,"line":1374},18,[481,1376,1106],{"emptyLinePlaceholder":1105},[481,1378,1380],{"class":483,"line":1379},19,[481,1381,1382],{"class":613},"    // Restore\n",[481,1384,1386,1388,1391,1393,1396,1398,1400,1402,1404],{"class":483,"line":1385},20,[481,1387,1142],{"class":491},[481,1389,1390],{"class":499}," [",[481,1392,1029],{"class":495},[481,1394,1395],{"class":499},"]",[481,1397,1148],{"class":499},[481,1399,1174],{"class":487},[481,1401,1151],{"class":495},[481,1403,550],{"class":499},[481,1405,1406],{"class":495},"db\n",[481,1408,1410,1413,1416,1418,1420],{"class":483,"line":1409},21,[481,1411,1412],{"class":499},"      .",[481,1414,1415],{"class":503},"update",[481,1417,507],{"class":528},[481,1419,514],{"class":495},[481,1421,666],{"class":528},[481,1423,1425,1427,1430,1432,1434,1437,1439,1442,1444],{"class":483,"line":1424},22,[481,1426,1412],{"class":499},[481,1428,1429],{"class":503},"set",[481,1431,507],{"class":528},[481,1433,558],{"class":499},[481,1435,1436],{"class":528}," deletedAt",[481,1438,532],{"class":499},[481,1440,1441],{"class":499}," null",[481,1443,570],{"class":499},[481,1445,666],{"class":528},[481,1447,1449,1451,1454,1456,1459,1461,1463,1465,1467,1469,1471],{"class":483,"line":1448},23,[481,1450,1412],{"class":499},[481,1452,1453],{"class":503},"where",[481,1455,507],{"class":528},[481,1457,1458],{"class":503},"eq",[481,1460,507],{"class":528},[481,1462,514],{"class":495},[481,1464,550],{"class":499},[481,1466,542],{"class":495},[481,1468,519],{"class":499},[481,1470,1145],{"class":495},[481,1472,1473],{"class":528},"))\n",[481,1475,1477,1479,1482],{"class":483,"line":1476},24,[481,1478,1412],{"class":499},[481,1480,1481],{"class":503},"returning",[481,1483,1484],{"class":528},"()\n",[481,1486,1488],{"class":483,"line":1487},25,[481,1489,1106],{"emptyLinePlaceholder":1105},[481,1491,1493,1496,1498,1501,1503,1506,1508,1510,1512,1514],{"class":483,"line":1492},26,[481,1494,1495],{"class":487},"    return",[481,1497,638],{"class":499},[481,1499,1500],{"class":528}," data",[481,1502,532],{"class":499},[481,1504,1505],{"class":495}," restored",[481,1507,519],{"class":499},[481,1509,1505],{"class":528},[481,1511,532],{"class":499},[481,1513,567],{"class":566},[481,1515,1516],{"class":499}," }\n",[481,1518,1520],{"class":483,"line":1519},27,[481,1521,1522],{"class":499},"  },\n",[481,1524,1526,1528],{"class":483,"line":1525},28,[481,1527,663],{"class":499},[481,1529,666],{"class":495},[459,1531,1533],{"id":1532},"migration-example","Migration Example",[455,1535,1536],{},"Add deletedAt to existing table:",[472,1538,1540],{"className":474,"code":1539,"language":476,"meta":477,"style":477},"// migrations/0001_add_soft_delete.sql\nALTER TABLE posts ADD COLUMN deleted_at INTEGER;\nCREATE INDEX idx_posts_deleted_at ON posts(deleted_at);\n",[467,1541,1542,1547,1555],{"__ignoreMap":477},[481,1543,1544],{"class":483,"line":484},[481,1545,1546],{"class":613},"// migrations/0001_add_soft_delete.sql\n",[481,1548,1549,1552],{"class":483,"line":525},[481,1550,1551],{"class":495},"ALTER TABLE posts ADD COLUMN deleted_at INTEGER",[481,1553,1554],{"class":499},";\n",[481,1556,1557,1560,1562,1565],{"class":483,"line":578},[481,1558,1559],{"class":495},"CREATE INDEX idx_posts_deleted_at ON ",[481,1561,514],{"class":503},[481,1563,1564],{"class":495},"(deleted_at)",[481,1566,1554],{"class":499},[459,1568,1570],{"id":1569},"best-practices","Best Practices",[1572,1573,1574,1580,1586,1592,1598],"ol",{},[674,1575,1576,1579],{},[725,1577,1578],{},"Index deletedAt"," for query performance",[674,1581,1582,1585],{},[725,1583,1584],{},"Use for user data"," - allows recovery if needed",[674,1587,1588,1591],{},[725,1589,1590],{},"Purge old deleted records"," - periodic cleanup job",[674,1593,1594,1597],{},[725,1595,1596],{},"Document restore policy"," - who can restore, when to purge",[674,1599,1600,1603],{},[725,1601,1602],{},"Consider GDPR"," - may need hard delete for user requests",[459,1605,1607],{"id":1606},"hard-delete-override","Hard Delete Override",[455,1609,1610],{},"Force hard delete even with deletedAt column:",[472,1612,1614],{"className":474,"code":1613,"language":476,"meta":477,"style":477},"// Custom handler for permanent deletion\nexport default defineAutoApiHandler({\n  async execute(context) {\n    const postId = context.params.id\n\n    // Permanently delete (ignore soft delete)\n    await context.db.delete(posts).where(eq(posts.id, postId))\n\n    return { success: true, hardDeleted: true }\n  },\n})\n",[467,1615,1616,1621,1633,1647,1665,1669,1674,1718,1722,1746,1750],{"__ignoreMap":477},[481,1617,1618],{"class":483,"line":484},[481,1619,1620],{"class":613},"// Custom handler for permanent deletion\n",[481,1622,1623,1625,1627,1629,1631],{"class":483,"line":525},[481,1624,488],{"class":487},[481,1626,1113],{"class":487},[481,1628,1087],{"class":503},[481,1630,507],{"class":495},[481,1632,739],{"class":499},[481,1634,1635,1637,1639,1641,1643,1645],{"class":483,"line":578},[481,1636,1124],{"class":491},[481,1638,1127],{"class":528},[481,1640,507],{"class":499},[481,1642,1133],{"class":1132},[481,1644,547],{"class":499},[481,1646,522],{"class":499},[481,1648,1649,1651,1653,1655,1657,1659,1661,1663],{"class":483,"line":610},[481,1650,1142],{"class":491},[481,1652,1145],{"class":495},[481,1654,1148],{"class":499},[481,1656,1151],{"class":495},[481,1658,550],{"class":499},[481,1660,1156],{"class":495},[481,1662,550],{"class":499},[481,1664,1161],{"class":495},[481,1666,1667],{"class":483,"line":617},[481,1668,1106],{"emptyLinePlaceholder":1105},[481,1670,1671],{"class":483,"line":660},[481,1672,1673],{"class":613},"    // Permanently delete (ignore soft delete)\n",[481,1675,1676,1679,1681,1683,1685,1687,1690,1692,1694,1696,1698,1700,1702,1704,1706,1708,1710,1712,1714,1716],{"class":483,"line":1164},[481,1677,1678],{"class":487},"    await",[481,1680,1151],{"class":495},[481,1682,550],{"class":499},[481,1684,1181],{"class":495},[481,1686,550],{"class":499},[481,1688,1689],{"class":503},"delete",[481,1691,507],{"class":528},[481,1693,514],{"class":495},[481,1695,547],{"class":528},[481,1697,550],{"class":499},[481,1699,1453],{"class":503},[481,1701,507],{"class":528},[481,1703,1458],{"class":503},[481,1705,507],{"class":528},[481,1707,514],{"class":495},[481,1709,550],{"class":499},[481,1711,542],{"class":495},[481,1713,519],{"class":499},[481,1715,1145],{"class":495},[481,1717,1473],{"class":528},[481,1719,1720],{"class":483,"line":1202},[481,1721,1106],{"emptyLinePlaceholder":1105},[481,1723,1724,1726,1728,1731,1733,1735,1737,1740,1742,1744],{"class":483,"line":1216},[481,1725,1495],{"class":487},[481,1727,638],{"class":499},[481,1729,1730],{"class":528}," success",[481,1732,532],{"class":499},[481,1734,567],{"class":566},[481,1736,519],{"class":499},[481,1738,1739],{"class":528}," hardDeleted",[481,1741,532],{"class":499},[481,1743,567],{"class":566},[481,1745,1516],{"class":499},[481,1747,1748],{"class":483,"line":1238},[481,1749,1522],{"class":499},[481,1751,1752,1754],{"class":483,"line":1254},[481,1753,663],{"class":499},[481,1755,666],{"class":495},[1757,1758,1759],"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 .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}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}",{"title":477,"searchDepth":525,"depth":525,"links":1761},[1762,1763,1769,1770,1771,1772,1773],{"id":461,"depth":525,"text":462},{"id":689,"depth":525,"text":690,"children":1764},[1765,1766,1767,1768],{"id":694,"depth":578,"text":695},{"id":856,"depth":578,"text":857},{"id":887,"depth":578,"text":888},{"id":924,"depth":578,"text":925},{"id":957,"depth":525,"text":958},{"id":1063,"depth":525,"text":1064},{"id":1532,"depth":525,"text":1533},{"id":1569,"depth":525,"text":1570},{"id":1606,"depth":525,"text":1607},"md",null,{},{"title":279,"description":457},"Gjhe04sltEzTl3A_oU-o4F8Z898F2GnwHQl8Qx7Ch7c",[1780,1782],{"title":275,"path":276,"stem":277,"description":1781,"children":-1},"@websideproject/nuxt-auto-api supports both offset-based and cursor-based pagination.",{"title":283,"path":284,"stem":285,"description":1783,"children":-1},"@websideproject/nuxt-auto-api provides a flexible multi-tier authorization system that works with any authentication provider. You control user context and permissions, while the module enforces authorization rules.",1772977478299]