[{"data":1,"prerenderedAt":2823},["ShallowReactive",2],{"navigation_docs":3,"-rpc-server-drizzle-tables":399},[4,162,346],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":24},"RPC","icon-park-outline:lightning","\u002Frpc","01.rpc",[10,25,63,77,102,136],{"title":11,"icon":12,"redirect":7,"path":13,"stem":14,"children":15,"page":24},"Introduction","icon-park-outline:home","\u002Frpc\u002Fintroduction","01.rpc\u002F01.introduction",[16,20],{"title":17,"path":18,"stem":19},"Quick Start","\u002Frpc\u002Fintroduction\u002Fquick-start","01.rpc\u002F01.introduction\u002F02.quick-start",{"title":21,"path":22,"stem":23},"Manual Install","\u002Frpc\u002Fintroduction\u002Fmanual-install","01.rpc\u002F01.introduction\u002F03.manual-install",false,{"title":26,"icon":27,"path":28,"stem":29,"children":30,"page":24},"Server","icon-park-outline:server","\u002Frpc\u002Fserver","01.rpc\u002F02.server",[31,35,39,43,47,51,55,59],{"title":32,"path":33,"stem":34},"Routes","\u002Frpc\u002Fserver\u002Froutes","01.rpc\u002F02.server\u002F01.routes",{"title":36,"path":37,"stem":38},"Middleware","\u002Frpc\u002Fserver\u002Fmiddleware","01.rpc\u002F02.server\u002F02.middleware",{"title":40,"path":41,"stem":42},"Call Context","\u002Frpc\u002Fserver\u002Fcall-context","01.rpc\u002F02.server\u002F03.call-context",{"title":44,"path":45,"stem":46},"Headers","\u002Frpc\u002Fserver\u002Fheaders","01.rpc\u002F02.server\u002F04.headers",{"title":48,"path":49,"stem":50},"Error Handling","\u002Frpc\u002Fserver\u002Ferror-handling","01.rpc\u002F02.server\u002F05.error-handling",{"title":52,"path":53,"stem":54},"Validation","\u002Frpc\u002Fserver\u002Fvalidation","01.rpc\u002F02.server\u002F06.validation",{"title":56,"path":57,"stem":58},"JSON Round Trip","\u002Frpc\u002Fserver\u002Fjson-round-trip","01.rpc\u002F02.server\u002F07.json-round-trip",{"title":60,"path":61,"stem":62},"Drizzle Tables","\u002Frpc\u002Fserver\u002Fdrizzle-tables","01.rpc\u002F02.server\u002F08.drizzle-tables",{"title":64,"icon":65,"path":66,"stem":67,"children":68,"page":24},"Middlewares","icon-park-outline:link-one","\u002Frpc\u002Fmiddlewares","01.rpc\u002F03.middlewares",[69,73],{"title":70,"path":71,"stem":72},"fetchMetadata","\u002Frpc\u002Fmiddlewares\u002Ffetch-metadata","01.rpc\u002F03.middlewares\u002F01.fetch-metadata",{"title":74,"path":75,"stem":76},"syncRoutes","\u002Frpc\u002Fmiddlewares\u002Fsync-routes","01.rpc\u002F03.middlewares\u002F02.sync-routes",{"title":78,"icon":79,"path":80,"stem":81,"children":82,"page":24},"Client","icon-park-outline:computer","\u002Frpc\u002Fclient","01.rpc\u002F04.client",[83,87,91,94,98],{"title":84,"path":85,"stem":86},"Client Overview","\u002Frpc\u002Fclient\u002Fclient-overview","01.rpc\u002F04.client\u002F00.client-overview",{"title":88,"path":89,"stem":90},"Client Middleware","\u002Frpc\u002Fclient\u002Fclient-middleware","01.rpc\u002F04.client\u002F01.client-middleware",{"title":48,"path":92,"stem":93},"\u002Frpc\u002Fclient\u002Ferror-handling","01.rpc\u002F04.client\u002F02.error-handling",{"title":95,"path":96,"stem":97},"Batch Requests","\u002Frpc\u002Fclient\u002Fbatch","01.rpc\u002F04.client\u002F03.batch",{"title":99,"path":100,"stem":101},"Cancellation & Timeouts","\u002Frpc\u002Fclient\u002Fcancellation-timeouts","01.rpc\u002F04.client\u002F04.cancellation-timeouts",{"title":103,"redirect":104,"icon":105,"path":106,"stem":107,"children":108,"page":24},"Platforms","\u002Frpc\u002Fplatforms\u002Fnode-js","icon-park-outline:play","\u002Frpc\u002Fplatforms","01.rpc\u002F06.platforms",[109,112,116,120,124,128,132],{"title":110,"path":104,"stem":111},"Node.js","01.rpc\u002F06.platforms\u002F01.node-js",{"title":113,"path":114,"stem":115},"Bun","\u002Frpc\u002Fplatforms\u002Fbun","01.rpc\u002F06.platforms\u002F02.bun",{"title":117,"path":118,"stem":119},"AWS Lambda","\u002Frpc\u002Fplatforms\u002Faws-lambda","01.rpc\u002F06.platforms\u002F03.aws-lambda",{"title":121,"path":122,"stem":123},"Google Cloud Functions","\u002Frpc\u002Fplatforms\u002Fgoogle-cloud-functions","01.rpc\u002F06.platforms\u002F04.google-cloud-functions",{"title":125,"path":126,"stem":127},"Cloudflare Workers","\u002Frpc\u002Fplatforms\u002Fcloudflare","01.rpc\u002F06.platforms\u002F05.cloudflare",{"title":129,"path":130,"stem":131},"Vercel","\u002Frpc\u002Fplatforms\u002Fvercel","01.rpc\u002F06.platforms\u002F06.vercel",{"title":133,"path":134,"stem":135},"uWebSockets.js","\u002Frpc\u002Fplatforms\u002Fuwebsockets","01.rpc\u002F06.platforms\u002F07.uwebsockets",{"title":137,"icon":138,"path":139,"stem":140,"children":141,"page":24},"Devtools","icon-park-outline:tool","\u002Frpc\u002Fdevtools","01.rpc\u002F07.devtools",[142,146,150,154,158],{"title":143,"path":144,"stem":145},"Linter","\u002Frpc\u002Fdevtools\u002Flinter","01.rpc\u002F07.devtools\u002F01.linter",{"title":147,"path":148,"stem":149},"Vite","\u002Frpc\u002Fdevtools\u002Fvite","01.rpc\u002F07.devtools\u002F02.vite",{"title":151,"path":152,"stem":153},"Next.js","\u002Frpc\u002Fdevtools\u002Fnextjs","01.rpc\u002F07.devtools\u002F03.nextjs",{"title":155,"path":156,"stem":157},"CLI","\u002Frpc\u002Fdevtools\u002Fcli","01.rpc\u002F07.devtools\u002F04.cli",{"title":159,"path":160,"stem":161},"API Types","\u002Frpc\u002Fdevtools\u002Fapi-types","01.rpc\u002F07.devtools\u002F05.api-types",{"title":163,"icon":164,"path":165,"stem":166,"children":167,"page":24},"RunTypes","i-lucide-braces","\u002Fruntypes","02.runtypes",[168,184,224,254,268,290,332],{"title":11,"icon":169,"redirect":165,"path":170,"stem":171,"children":172,"page":24},"i-lucide-rocket","\u002Fruntypes\u002Fintroduction","02.runtypes\u002F01.introduction",[173,177,180],{"title":174,"path":175,"stem":176},"Built on typescript-go","\u002Fruntypes\u002Fintroduction\u002Fbuilt-on-typescript-go","02.runtypes\u002F01.introduction\u002F02.built-on-typescript-go",{"title":17,"path":178,"stem":179},"\u002Fruntypes\u002Fintroduction\u002Fquick-start","02.runtypes\u002F01.introduction\u002F03.quick-start",{"title":181,"path":182,"stem":183},"Configuration","\u002Fruntypes\u002Fintroduction\u002Fconfiguration","02.runtypes\u002F01.introduction\u002F04.configuration",{"title":185,"icon":186,"redirect":187,"path":188,"stem":189,"children":190,"page":24},"Guide","i-lucide-book-open","\u002Fruntypes\u002Fguide\u002Ftype-builders","\u002Fruntypes\u002Fguide","02.runtypes\u002F02.guide",[191,194,198,201,204,208,212,216,220],{"title":192,"path":187,"stem":193},"Types vs Type Builders","02.runtypes\u002F02.guide\u002F01.type-builders",{"title":195,"path":196,"stem":197},"Reflection","\u002Fruntypes\u002Fguide\u002Freflection","02.runtypes\u002F02.guide\u002F02.reflection",{"title":52,"path":199,"stem":200},"\u002Fruntypes\u002Fguide\u002Fvalidation","02.runtypes\u002F02.guide\u002F03.validation",{"title":56,"path":202,"stem":203},"\u002Fruntypes\u002Fguide\u002Fjson-round-trip","02.runtypes\u002F02.guide\u002F04.json-round-trip",{"title":205,"path":206,"stem":207},"Data Mocking","\u002Fruntypes\u002Fguide\u002Fmocking","02.runtypes\u002F02.guide\u002F07.mocking",{"title":209,"path":210,"stem":211},"JSON Schemas","\u002Fruntypes\u002Fguide\u002Fjson-schemas","02.runtypes\u002F02.guide\u002F08.json-schemas",{"title":213,"path":214,"stem":215},"Pure Functions","\u002Fruntypes\u002Fguide\u002Fpure-functions","02.runtypes\u002F02.guide\u002F09.pure-functions",{"title":217,"path":218,"stem":219},"Compiler Markers","\u002Fruntypes\u002Fguide\u002Fcompiler-markers","02.runtypes\u002F02.guide\u002F10.compiler-markers",{"title":221,"path":222,"stem":223},"All Compiled Functions","\u002Fruntypes\u002Fguide\u002Fall-compiled-functions","02.runtypes\u002F02.guide\u002F11.all-compiled-functions",{"title":225,"icon":226,"redirect":227,"path":228,"stem":229,"children":230,"page":24},"Type Formats","i-lucide-shapes","\u002Fruntypes\u002Ftype-formats\u002Foverview","\u002Fruntypes\u002Ftype-formats","02.runtypes\u002F03.type-formats",[231,234,238,242,246,250],{"title":232,"path":227,"stem":233},"Overview","02.runtypes\u002F03.type-formats\u002F01.overview",{"title":235,"path":236,"stem":237},"String Formats","\u002Fruntypes\u002Ftype-formats\u002Fstring","02.runtypes\u002F03.type-formats\u002F02.string",{"title":239,"path":240,"stem":241},"Number Formats","\u002Fruntypes\u002Ftype-formats\u002Fnumber","02.runtypes\u002F03.type-formats\u002F03.number",{"title":243,"path":244,"stem":245},"BigInt Formats","\u002Fruntypes\u002Ftype-formats\u002Fbigint","02.runtypes\u002F03.type-formats\u002F04.bigint",{"title":247,"path":248,"stem":249},"Date and Time Formats","\u002Fruntypes\u002Ftype-formats\u002Fdate-time","02.runtypes\u002F03.type-formats\u002F05.date-time",{"title":251,"path":252,"stem":253},"Collection Formats","\u002Fruntypes\u002Ftype-formats\u002Fcollections","02.runtypes\u002F03.type-formats\u002F06.collections",{"title":255,"icon":256,"redirect":257,"path":258,"stem":259,"children":260,"page":24},"Tooling","i-lucide-wrench","\u002Fruntypes\u002Ftooling\u002Flinting","\u002Fruntypes\u002Ftooling","02.runtypes\u002F04.tooling",[261,264],{"title":262,"path":257,"stem":263},"Linting","02.runtypes\u002F04.tooling\u002F01.linting",{"title":265,"path":266,"stem":267},"Source Conversion","\u002Fruntypes\u002Ftooling\u002Fsource-conversion","02.runtypes\u002F04.tooling\u002F02.source-conversion",{"title":269,"icon":270,"redirect":271,"path":272,"stem":273,"children":274,"page":24},"AI Integration","i-lucide-sparkles","\u002Fruntypes\u002Fai-integration\u002Fworkflow-and-commands","\u002Fruntypes\u002Fai-integration","02.runtypes\u002F05.ai-integration",[275,278,282,286],{"title":276,"path":271,"stem":277},"AI Workflow","02.runtypes\u002F05.ai-integration\u002F01.workflow-and-commands",{"title":279,"path":280,"stem":281},"FriendlyText","\u002Fruntypes\u002Fai-integration\u002Ffriendly-text","02.runtypes\u002F05.ai-integration\u002F02.friendly-text",{"title":283,"path":284,"stem":285},"MockData","\u002Fruntypes\u002Fai-integration\u002Fmock-data","02.runtypes\u002F05.ai-integration\u002F03.mock-data",{"title":287,"path":288,"stem":289},"Translations (i18n)","\u002Fruntypes\u002Fai-integration\u002Fi18n","02.runtypes\u002F05.ai-integration\u002F04.i18n",{"title":291,"icon":292,"redirect":293,"path":294,"stem":295,"children":296,"page":24},"Drizzle ORM","i-lineicons-drizzle","\u002Fruntypes\u002Fdrizzle-orm\u002Fdrizzle-overview","\u002Fruntypes\u002Fdrizzle-orm","02.runtypes\u002F06.drizzle-orm",[297,300,304,308,312,316,320,324,328],{"title":298,"path":293,"stem":299},"Drizzle Overview","02.runtypes\u002F06.drizzle-orm\u002F00.drizzle-overview",{"title":301,"path":302,"stem":303},"Column Formats","\u002Fruntypes\u002Fdrizzle-orm\u002Fcolumn-formats","02.runtypes\u002F06.drizzle-orm\u002F01.column-formats",{"title":305,"path":306,"stem":307},"Views","\u002Fruntypes\u002Fdrizzle-orm\u002Fviews","02.runtypes\u002F06.drizzle-orm\u002F02.views",{"title":309,"path":310,"stem":311},"Indexes and Constraints","\u002Fruntypes\u002Fdrizzle-orm\u002Fconstraints","02.runtypes\u002F06.drizzle-orm\u002F03.constraints",{"title":313,"path":314,"stem":315},"Row Level Security","\u002Fruntypes\u002Fdrizzle-orm\u002Frow-level-security","02.runtypes\u002F06.drizzle-orm\u002F04.row-level-security",{"title":317,"path":318,"stem":319},"Relations","\u002Fruntypes\u002Fdrizzle-orm\u002Frelations","02.runtypes\u002F06.drizzle-orm\u002F05.relations",{"title":321,"path":322,"stem":323},"The Schema File","\u002Fruntypes\u002Fdrizzle-orm\u002Fschema-file","02.runtypes\u002F06.drizzle-orm\u002F06.schema-file",{"title":325,"path":326,"stem":327},"Migrate an Existing Schema","\u002Fruntypes\u002Fdrizzle-orm\u002Fmigrate-an-existing-schema","02.runtypes\u002F06.drizzle-orm\u002F07.migrate-an-existing-schema",{"title":329,"path":330,"stem":331},"Cloudflare D1 and Durable Objects","\u002Fruntypes\u002Fdrizzle-orm\u002Fcloudflare-storage","02.runtypes\u002F06.drizzle-orm\u002F08.cloudflare-storage",{"title":333,"icon":334,"redirect":335,"path":336,"stem":337,"children":338,"page":24},"Diagnostics","i-lucide-triangle-alert","\u002Fruntypes\u002Fdiagnostics\u002Ferror-levels","\u002Fruntypes\u002Fdiagnostics","02.runtypes\u002F08.diagnostics",[339,342],{"title":340,"path":335,"stem":341},"Error Levels","02.runtypes\u002F08.diagnostics\u002F01.error-levels",{"title":343,"path":344,"stem":345},"All Diagnostics","\u002Fruntypes\u002Fdiagnostics\u002Fall-diagnostics","02.runtypes\u002F08.diagnostics\u002F02.all-diagnostics",{"title":347,"icon":348,"path":349,"stem":350,"children":351,"page":24},"Benchmarks","i-lucide-gauge","\u002Fbenchmarks","03.benchmarks",[352,372],{"title":5,"icon":6,"redirect":353,"path":354,"stem":355,"children":356,"page":24},"\u002Fbenchmarks\u002Frpc\u002Fhello-world","\u002Fbenchmarks\u002Frpc","03.benchmarks\u002F02.rpc",[357,360,364,368],{"title":358,"path":353,"stem":359},"Hello World","03.benchmarks\u002F02.rpc\u002F01.hello-world",{"title":361,"path":362,"stem":363},"Light Validation","\u002Fbenchmarks\u002Frpc\u002Flight-validation","03.benchmarks\u002F02.rpc\u002F02.light-validation",{"title":365,"path":366,"stem":367},"Heavy Validation","\u002Fbenchmarks\u002Frpc\u002Fheavy-validation","03.benchmarks\u002F02.rpc\u002F03.heavy-validation",{"title":369,"path":370,"stem":371},"Payload Sizes","\u002Fbenchmarks\u002Frpc\u002Fpayload-sizes","03.benchmarks\u002F02.rpc\u002F04.payload-sizes",{"title":163,"icon":164,"redirect":373,"path":374,"stem":375,"children":376,"page":24},"\u002Fbenchmarks\u002Fruntypes\u002Fis-valid","\u002Fbenchmarks\u002Fruntypes","03.benchmarks\u002F03.runtypes",[377,380,384,388,392,395],{"title":378,"path":373,"stem":379},"Is Valid","03.benchmarks\u002F03.runtypes\u002F01.is-valid",{"title":381,"path":382,"stem":383},"Is Valid Formats","\u002Fbenchmarks\u002Fruntypes\u002Fis-valid-formats","03.benchmarks\u002F03.runtypes\u002F02.is-valid-formats",{"title":385,"path":386,"stem":387},"Get Errors","\u002Fbenchmarks\u002Fruntypes\u002Fget-errors","03.benchmarks\u002F03.runtypes\u002F03.get-errors",{"title":389,"path":390,"stem":391},"Get Errors Formats","\u002Fbenchmarks\u002Fruntypes\u002Fget-errors-formats","03.benchmarks\u002F03.runtypes\u002F04.get-errors-formats",{"title":56,"path":393,"stem":394},"\u002Fbenchmarks\u002Fruntypes\u002Fjson-round-trip","03.benchmarks\u002F03.runtypes\u002F05.json-round-trip",{"title":396,"path":397,"stem":398},"Type Checking","\u002Fbenchmarks\u002Fruntypes\u002Ftype-checking","03.benchmarks\u002F03.runtypes\u002F07.type-checking",{"id":400,"title":60,"body":401,"description":2817,"extension":2818,"links":2819,"meta":2820,"navigation":536,"path":61,"seo":2821,"stem":62,"__hash__":2822},"docs\u002F01.rpc\u002F02.server\u002F08.drizzle-tables.md",{"type":402,"value":403},"minimark",[404,413,418,421,2050,2054,2061,2797,2801,2805,2813],[405,406,407,408,412],"p",{},"Routes take and return the models of your Drizzle ORM tables like any other type. The ",[409,410,411],"a",{"href":293},"RunTypes Drizzle ORM section"," covers declaring tables, column formats, views and migrations.",[414,415,417],"h2",{"id":416},"using-models-in-routes","Using Models in Routes",[405,419,420],{},"A route typed with your table models is validated before the handler runs, refined bounds included. Dates stay Dates on server and client, the client gets full types, and you register nothing per route. Both table forms give the same models, so only the import differs.",[422,423,424,1335],"code-group",{},[425,426,432],"pre",{"className":427,"code":428,"filename":429,"language":430,"meta":431,"style":431},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import {RpcError} from '@mionjs\u002Fcore';\nimport {createMionRouter} from '@mionjs\u002Frouter';\nimport type {NewUser, User, UserPatch} from '.\u002Fdrizzle-refine-example.ts';\n\nconst mion = createMionRouter();\n\nconst usersStore = new Map\u003Cstring, User>();\n\nexport const usersApi = mion.initRoutes({\n  users: {\n    \u002F\u002F id and createdAt are optional (table defaults), so the handler fills them\n    insert: mion.route((_ctx, user: NewUser): User => {\n      const row: User = {\n        id: user.id ?? crypto.randomUUID(),\n        name: user.name,\n        age: user.age,\n        createdAt: user.createdAt ?? new Date(),\n      };\n      usersStore.set(row.id, row);\n      return row;\n    }),\n\n    \u002F\u002F createdAt arrives on the client as a real Date\n    select: mion.route(\n      (_ctx, id: string): User | RpcError\u003C'user-not-found'> => {\n        return (\n          usersStore.get(id) ??\n          new RpcError({\n            publicMessage: 'User not found',\n            type: 'user-not-found',\n          })\n        );\n      }\n    ),\n\n    \u002F\u002F any subset is accepted, but a too-short name is still rejected\n    update: mion.route(\n      (\n        _ctx,\n        id: string,\n        patch: UserPatch\n      ): User | RpcError\u003C'user-not-found'> => {\n        const existing = usersStore.get(id);\n        if (!existing)\n          return new RpcError({\n            publicMessage: 'User not found',\n            type: 'user-not-found',\n          });\n        const next: User = {...existing, ...patch};\n        usersStore.set(id, next);\n        return next;\n      }\n    ),\n  },\n});\n\n\u002F\u002F the client's types come from this\nexport type UsersApi = typeof usersApi;\n","Builders","ts","",[433,434,435,471,494,531,538,560,565,599,604,633,646,653,696,714,745,762,779,805,811,840,850,860,865,871,888,931,940,961,973,990,1006,1015,1023,1029,1037,1042,1048,1064,1070,1078,1086,1092,1120,1146,1163,1177,1192,1207,1216,1246,1268,1277,1282,1289,1295,1304,1309,1315],"code",{"__ignoreMap":431},[436,437,440,444,448,452,455,458,461,465,468],"span",{"class":438,"line":439},"line",1,[436,441,443],{"class":442},"s7zQu","import",[436,445,447],{"class":446},"sMK4o"," {",[436,449,451],{"class":450},"sTEyZ","RpcError",[436,453,454],{"class":446},"}",[436,456,457],{"class":442}," from",[436,459,460],{"class":446}," '",[436,462,464],{"class":463},"sfazB","@mionjs\u002Fcore",[436,466,467],{"class":446},"'",[436,469,470],{"class":446},";\n",[436,472,474,476,478,481,483,485,487,490,492],{"class":438,"line":473},2,[436,475,443],{"class":442},[436,477,447],{"class":446},[436,479,480],{"class":450},"createMionRouter",[436,482,454],{"class":446},[436,484,457],{"class":442},[436,486,460],{"class":446},[436,488,489],{"class":463},"@mionjs\u002Frouter",[436,491,467],{"class":446},[436,493,470],{"class":446},[436,495,497,499,502,504,507,510,513,515,518,520,522,524,527,529],{"class":438,"line":496},3,[436,498,443],{"class":442},[436,500,501],{"class":442}," type",[436,503,447],{"class":446},[436,505,506],{"class":450},"NewUser",[436,508,509],{"class":446},",",[436,511,512],{"class":450}," User",[436,514,509],{"class":446},[436,516,517],{"class":450}," UserPatch",[436,519,454],{"class":446},[436,521,457],{"class":442},[436,523,460],{"class":446},[436,525,526],{"class":463},".\u002Fdrizzle-refine-example.ts",[436,528,467],{"class":446},[436,530,470],{"class":446},[436,532,534],{"class":438,"line":533},4,[436,535,537],{"emptyLinePlaceholder":536},true,"\n",[436,539,541,545,548,551,555,558],{"class":438,"line":540},5,[436,542,544],{"class":543},"spNyl","const",[436,546,547],{"class":450}," mion ",[436,549,550],{"class":446},"=",[436,552,554],{"class":553},"s2Zo4"," createMionRouter",[436,556,557],{"class":450},"()",[436,559,470],{"class":446},[436,561,563],{"class":438,"line":562},6,[436,564,537],{"emptyLinePlaceholder":536},[436,566,568,570,573,575,578,581,584,588,590,592,595,597],{"class":438,"line":567},7,[436,569,544],{"class":543},[436,571,572],{"class":450}," usersStore ",[436,574,550],{"class":446},[436,576,577],{"class":446}," new",[436,579,580],{"class":553}," Map",[436,582,583],{"class":446},"\u003C",[436,585,587],{"class":586},"sBMFI","string",[436,589,509],{"class":446},[436,591,512],{"class":586},[436,593,594],{"class":446},">",[436,596,557],{"class":450},[436,598,470],{"class":446},[436,600,602],{"class":438,"line":601},8,[436,603,537],{"emptyLinePlaceholder":536},[436,605,607,610,613,616,618,621,624,627,630],{"class":438,"line":606},9,[436,608,609],{"class":442},"export",[436,611,612],{"class":543}," const",[436,614,615],{"class":450}," usersApi ",[436,617,550],{"class":446},[436,619,620],{"class":450}," mion",[436,622,623],{"class":446},".",[436,625,626],{"class":553},"initRoutes",[436,628,629],{"class":450},"(",[436,631,632],{"class":446},"{\n",[436,634,636,640,643],{"class":438,"line":635},10,[436,637,639],{"class":638},"swJcz","  users",[436,641,642],{"class":446},":",[436,644,645],{"class":446}," {\n",[436,647,649],{"class":438,"line":648},11,[436,650,652],{"class":651},"sHwdD","    \u002F\u002F id and createdAt are optional (table defaults), so the handler fills them\n",[436,654,656,659,661,663,665,668,670,672,676,678,681,683,686,689,691,694],{"class":438,"line":655},12,[436,657,658],{"class":638},"    insert",[436,660,642],{"class":446},[436,662,620],{"class":450},[436,664,623],{"class":446},[436,666,667],{"class":553},"route",[436,669,629],{"class":450},[436,671,629],{"class":446},[436,673,675],{"class":674},"sHdIc","_ctx",[436,677,509],{"class":446},[436,679,680],{"class":674}," user",[436,682,642],{"class":446},[436,684,685],{"class":586}," NewUser",[436,687,688],{"class":446},"):",[436,690,512],{"class":586},[436,692,693],{"class":543}," =>",[436,695,645],{"class":446},[436,697,699,702,705,707,709,712],{"class":438,"line":698},13,[436,700,701],{"class":543},"      const",[436,703,704],{"class":450}," row",[436,706,642],{"class":446},[436,708,512],{"class":586},[436,710,711],{"class":446}," =",[436,713,645],{"class":446},[436,715,717,720,722,724,726,729,732,735,737,740,742],{"class":438,"line":716},14,[436,718,719],{"class":638},"        id",[436,721,642],{"class":446},[436,723,680],{"class":450},[436,725,623],{"class":446},[436,727,728],{"class":450},"id",[436,730,731],{"class":446}," ??",[436,733,734],{"class":450}," crypto",[436,736,623],{"class":446},[436,738,739],{"class":553},"randomUUID",[436,741,557],{"class":638},[436,743,744],{"class":446},",\n",[436,746,748,751,753,755,757,760],{"class":438,"line":747},15,[436,749,750],{"class":638},"        name",[436,752,642],{"class":446},[436,754,680],{"class":450},[436,756,623],{"class":446},[436,758,759],{"class":450},"name",[436,761,744],{"class":446},[436,763,765,768,770,772,774,777],{"class":438,"line":764},16,[436,766,767],{"class":638},"        age",[436,769,642],{"class":446},[436,771,680],{"class":450},[436,773,623],{"class":446},[436,775,776],{"class":450},"age",[436,778,744],{"class":446},[436,780,782,785,787,789,791,794,796,798,801,803],{"class":438,"line":781},17,[436,783,784],{"class":638},"        createdAt",[436,786,642],{"class":446},[436,788,680],{"class":450},[436,790,623],{"class":446},[436,792,793],{"class":450},"createdAt",[436,795,731],{"class":446},[436,797,577],{"class":446},[436,799,800],{"class":553}," Date",[436,802,557],{"class":638},[436,804,744],{"class":446},[436,806,808],{"class":438,"line":807},18,[436,809,810],{"class":446},"      };\n",[436,812,814,817,819,822,824,827,829,831,833,835,838],{"class":438,"line":813},19,[436,815,816],{"class":450},"      usersStore",[436,818,623],{"class":446},[436,820,821],{"class":553},"set",[436,823,629],{"class":638},[436,825,826],{"class":450},"row",[436,828,623],{"class":446},[436,830,728],{"class":450},[436,832,509],{"class":446},[436,834,704],{"class":450},[436,836,837],{"class":638},")",[436,839,470],{"class":446},[436,841,843,846,848],{"class":438,"line":842},20,[436,844,845],{"class":442},"      return",[436,847,704],{"class":450},[436,849,470],{"class":446},[436,851,853,856,858],{"class":438,"line":852},21,[436,854,855],{"class":446},"    }",[436,857,837],{"class":450},[436,859,744],{"class":446},[436,861,863],{"class":438,"line":862},22,[436,864,537],{"emptyLinePlaceholder":536},[436,866,868],{"class":438,"line":867},23,[436,869,870],{"class":651},"    \u002F\u002F createdAt arrives on the client as a real Date\n",[436,872,874,877,879,881,883,885],{"class":438,"line":873},24,[436,875,876],{"class":638},"    select",[436,878,642],{"class":446},[436,880,620],{"class":450},[436,882,623],{"class":446},[436,884,667],{"class":553},[436,886,887],{"class":450},"(\n",[436,889,891,894,896,898,901,903,906,908,910,913,916,918,920,923,925,927,929],{"class":438,"line":890},25,[436,892,893],{"class":446},"      (",[436,895,675],{"class":674},[436,897,509],{"class":446},[436,899,900],{"class":674}," id",[436,902,642],{"class":446},[436,904,905],{"class":586}," string",[436,907,688],{"class":446},[436,909,512],{"class":586},[436,911,912],{"class":446}," |",[436,914,915],{"class":586}," RpcError",[436,917,583],{"class":446},[436,919,467],{"class":446},[436,921,922],{"class":463},"user-not-found",[436,924,467],{"class":446},[436,926,594],{"class":446},[436,928,693],{"class":543},[436,930,645],{"class":446},[436,932,934,937],{"class":438,"line":933},26,[436,935,936],{"class":442},"        return",[436,938,939],{"class":638}," (\n",[436,941,943,946,948,951,953,955,958],{"class":438,"line":942},27,[436,944,945],{"class":450},"          usersStore",[436,947,623],{"class":446},[436,949,950],{"class":553},"get",[436,952,629],{"class":638},[436,954,728],{"class":450},[436,956,957],{"class":638},") ",[436,959,960],{"class":446},"??\n",[436,962,964,967,969,971],{"class":438,"line":963},28,[436,965,966],{"class":446},"          new",[436,968,915],{"class":553},[436,970,629],{"class":638},[436,972,632],{"class":446},[436,974,976,979,981,983,986,988],{"class":438,"line":975},29,[436,977,978],{"class":638},"            publicMessage",[436,980,642],{"class":446},[436,982,460],{"class":446},[436,984,985],{"class":463},"User not found",[436,987,467],{"class":446},[436,989,744],{"class":446},[436,991,993,996,998,1000,1002,1004],{"class":438,"line":992},30,[436,994,995],{"class":638},"            type",[436,997,642],{"class":446},[436,999,460],{"class":446},[436,1001,922],{"class":463},[436,1003,467],{"class":446},[436,1005,744],{"class":446},[436,1007,1009,1012],{"class":438,"line":1008},31,[436,1010,1011],{"class":446},"          }",[436,1013,1014],{"class":638},")\n",[436,1016,1018,1021],{"class":438,"line":1017},32,[436,1019,1020],{"class":638},"        )",[436,1022,470],{"class":446},[436,1024,1026],{"class":438,"line":1025},33,[436,1027,1028],{"class":446},"      }\n",[436,1030,1032,1035],{"class":438,"line":1031},34,[436,1033,1034],{"class":450},"    )",[436,1036,744],{"class":446},[436,1038,1040],{"class":438,"line":1039},35,[436,1041,537],{"emptyLinePlaceholder":536},[436,1043,1045],{"class":438,"line":1044},36,[436,1046,1047],{"class":651},"    \u002F\u002F any subset is accepted, but a too-short name is still rejected\n",[436,1049,1051,1054,1056,1058,1060,1062],{"class":438,"line":1050},37,[436,1052,1053],{"class":638},"    update",[436,1055,642],{"class":446},[436,1057,620],{"class":450},[436,1059,623],{"class":446},[436,1061,667],{"class":553},[436,1063,887],{"class":450},[436,1065,1067],{"class":438,"line":1066},38,[436,1068,1069],{"class":450},"      (\n",[436,1071,1073,1076],{"class":438,"line":1072},39,[436,1074,1075],{"class":450},"        _ctx",[436,1077,744],{"class":446},[436,1079,1081,1084],{"class":438,"line":1080},40,[436,1082,1083],{"class":450},"        id: string",[436,1085,744],{"class":446},[436,1087,1089],{"class":438,"line":1088},41,[436,1090,1091],{"class":450},"        patch: UserPatch\n",[436,1093,1095,1098,1100,1102,1104,1106,1108,1110,1112,1114,1116,1118],{"class":438,"line":1094},42,[436,1096,1097],{"class":450},"      )",[436,1099,642],{"class":446},[436,1101,512],{"class":586},[436,1103,912],{"class":446},[436,1105,915],{"class":586},[436,1107,583],{"class":446},[436,1109,467],{"class":446},[436,1111,922],{"class":463},[436,1113,467],{"class":446},[436,1115,594],{"class":446},[436,1117,693],{"class":543},[436,1119,645],{"class":446},[436,1121,1123,1126,1129,1131,1134,1136,1138,1140,1142,1144],{"class":438,"line":1122},43,[436,1124,1125],{"class":543},"        const",[436,1127,1128],{"class":450}," existing",[436,1130,711],{"class":446},[436,1132,1133],{"class":450}," usersStore",[436,1135,623],{"class":446},[436,1137,950],{"class":553},[436,1139,629],{"class":638},[436,1141,728],{"class":450},[436,1143,837],{"class":638},[436,1145,470],{"class":446},[436,1147,1149,1152,1155,1158,1161],{"class":438,"line":1148},44,[436,1150,1151],{"class":442},"        if",[436,1153,1154],{"class":638}," (",[436,1156,1157],{"class":446},"!",[436,1159,1160],{"class":450},"existing",[436,1162,1014],{"class":638},[436,1164,1166,1169,1171,1173,1175],{"class":438,"line":1165},45,[436,1167,1168],{"class":442},"          return",[436,1170,577],{"class":446},[436,1172,915],{"class":553},[436,1174,629],{"class":638},[436,1176,632],{"class":446},[436,1178,1180,1182,1184,1186,1188,1190],{"class":438,"line":1179},46,[436,1181,978],{"class":638},[436,1183,642],{"class":446},[436,1185,460],{"class":446},[436,1187,985],{"class":463},[436,1189,467],{"class":446},[436,1191,744],{"class":446},[436,1193,1195,1197,1199,1201,1203,1205],{"class":438,"line":1194},47,[436,1196,995],{"class":638},[436,1198,642],{"class":446},[436,1200,460],{"class":446},[436,1202,922],{"class":463},[436,1204,467],{"class":446},[436,1206,744],{"class":446},[436,1208,1210,1212,1214],{"class":438,"line":1209},48,[436,1211,1011],{"class":446},[436,1213,837],{"class":638},[436,1215,470],{"class":446},[436,1217,1219,1221,1224,1226,1228,1230,1233,1235,1237,1240,1243],{"class":438,"line":1218},49,[436,1220,1125],{"class":543},[436,1222,1223],{"class":450}," next",[436,1225,642],{"class":446},[436,1227,512],{"class":586},[436,1229,711],{"class":446},[436,1231,1232],{"class":446}," {...",[436,1234,1160],{"class":450},[436,1236,509],{"class":446},[436,1238,1239],{"class":446}," ...",[436,1241,1242],{"class":450},"patch",[436,1244,1245],{"class":446},"};\n",[436,1247,1249,1252,1254,1256,1258,1260,1262,1264,1266],{"class":438,"line":1248},50,[436,1250,1251],{"class":450},"        usersStore",[436,1253,623],{"class":446},[436,1255,821],{"class":553},[436,1257,629],{"class":638},[436,1259,728],{"class":450},[436,1261,509],{"class":446},[436,1263,1223],{"class":450},[436,1265,837],{"class":638},[436,1267,470],{"class":446},[436,1269,1271,1273,1275],{"class":438,"line":1270},51,[436,1272,936],{"class":442},[436,1274,1223],{"class":450},[436,1276,470],{"class":446},[436,1278,1280],{"class":438,"line":1279},52,[436,1281,1028],{"class":446},[436,1283,1285,1287],{"class":438,"line":1284},53,[436,1286,1034],{"class":450},[436,1288,744],{"class":446},[436,1290,1292],{"class":438,"line":1291},54,[436,1293,1294],{"class":446},"  },\n",[436,1296,1298,1300,1302],{"class":438,"line":1297},55,[436,1299,454],{"class":446},[436,1301,837],{"class":450},[436,1303,470],{"class":446},[436,1305,1307],{"class":438,"line":1306},56,[436,1308,537],{"emptyLinePlaceholder":536},[436,1310,1312],{"class":438,"line":1311},57,[436,1313,1314],{"class":651},"\u002F\u002F the client's types come from this\n",[436,1316,1318,1320,1322,1325,1327,1330,1333],{"class":438,"line":1317},58,[436,1319,609],{"class":442},[436,1321,501],{"class":543},[436,1323,1324],{"class":586}," UsersApi",[436,1326,711],{"class":446},[436,1328,1329],{"class":446}," typeof",[436,1331,1332],{"class":450}," usersApi",[436,1334,470],{"class":446},[425,1336,1339],{"className":427,"code":1337,"filename":1338,"language":430,"meta":431,"style":431},"import {RpcError} from '@mionjs\u002Fcore';\nimport {createMionRouter} from '@mionjs\u002Frouter';\nimport type {NewUser, User, UserPatch} from '.\u002Fdrizzle-types-refine-example.ts';\n\nconst mion = createMionRouter();\n\nconst usersStore = new Map\u003Cstring, User>();\n\nexport const usersApi = mion.initRoutes({\n  users: {\n    \u002F\u002F id and createdAt are optional (table defaults), so the handler fills them\n    insert: mion.route((_ctx, user: NewUser): User => {\n      const row: User = {\n        id: user.id ?? crypto.randomUUID(),\n        name: user.name,\n        age: user.age,\n        createdAt: user.createdAt ?? new Date(),\n      };\n      usersStore.set(row.id, row);\n      return row;\n    }),\n\n    \u002F\u002F createdAt arrives on the client as a real Date\n    select: mion.route(\n      (_ctx, id: string): User | RpcError\u003C'user-not-found'> => {\n        return (\n          usersStore.get(id) ??\n          new RpcError({\n            publicMessage: 'User not found',\n            type: 'user-not-found',\n          })\n        );\n      }\n    ),\n\n    \u002F\u002F any subset is accepted, but a too-short name is still rejected\n    update: mion.route(\n      (\n        _ctx,\n        id: string,\n        patch: UserPatch\n      ): User | RpcError\u003C'user-not-found'> => {\n        const existing = usersStore.get(id);\n        if (!existing)\n          return new RpcError({\n            publicMessage: 'User not found',\n            type: 'user-not-found',\n          });\n        const next: User = {...existing, ...patch};\n        usersStore.set(id, next);\n        return next;\n      }\n    ),\n  },\n});\n\n\u002F\u002F the client's types come from this\nexport type UsersApi = typeof usersApi;\n","Types",[433,1340,1341,1361,1381,1412,1416,1430,1434,1460,1464,1484,1492,1496,1530,1544,1568,1582,1596,1618,1622,1646,1654,1662,1666,1670,1684,1720,1726,1742,1752,1766,1780,1786,1792,1796,1802,1806,1810,1824,1828,1834,1840,1844,1870,1892,1904,1916,1930,1944,1952,1976,1996,2004,2008,2014,2018,2026,2030,2034],{"__ignoreMap":431},[436,1342,1343,1345,1347,1349,1351,1353,1355,1357,1359],{"class":438,"line":439},[436,1344,443],{"class":442},[436,1346,447],{"class":446},[436,1348,451],{"class":450},[436,1350,454],{"class":446},[436,1352,457],{"class":442},[436,1354,460],{"class":446},[436,1356,464],{"class":463},[436,1358,467],{"class":446},[436,1360,470],{"class":446},[436,1362,1363,1365,1367,1369,1371,1373,1375,1377,1379],{"class":438,"line":473},[436,1364,443],{"class":442},[436,1366,447],{"class":446},[436,1368,480],{"class":450},[436,1370,454],{"class":446},[436,1372,457],{"class":442},[436,1374,460],{"class":446},[436,1376,489],{"class":463},[436,1378,467],{"class":446},[436,1380,470],{"class":446},[436,1382,1383,1385,1387,1389,1391,1393,1395,1397,1399,1401,1403,1405,1408,1410],{"class":438,"line":496},[436,1384,443],{"class":442},[436,1386,501],{"class":442},[436,1388,447],{"class":446},[436,1390,506],{"class":450},[436,1392,509],{"class":446},[436,1394,512],{"class":450},[436,1396,509],{"class":446},[436,1398,517],{"class":450},[436,1400,454],{"class":446},[436,1402,457],{"class":442},[436,1404,460],{"class":446},[436,1406,1407],{"class":463},".\u002Fdrizzle-types-refine-example.ts",[436,1409,467],{"class":446},[436,1411,470],{"class":446},[436,1413,1414],{"class":438,"line":533},[436,1415,537],{"emptyLinePlaceholder":536},[436,1417,1418,1420,1422,1424,1426,1428],{"class":438,"line":540},[436,1419,544],{"class":543},[436,1421,547],{"class":450},[436,1423,550],{"class":446},[436,1425,554],{"class":553},[436,1427,557],{"class":450},[436,1429,470],{"class":446},[436,1431,1432],{"class":438,"line":562},[436,1433,537],{"emptyLinePlaceholder":536},[436,1435,1436,1438,1440,1442,1444,1446,1448,1450,1452,1454,1456,1458],{"class":438,"line":567},[436,1437,544],{"class":543},[436,1439,572],{"class":450},[436,1441,550],{"class":446},[436,1443,577],{"class":446},[436,1445,580],{"class":553},[436,1447,583],{"class":446},[436,1449,587],{"class":586},[436,1451,509],{"class":446},[436,1453,512],{"class":586},[436,1455,594],{"class":446},[436,1457,557],{"class":450},[436,1459,470],{"class":446},[436,1461,1462],{"class":438,"line":601},[436,1463,537],{"emptyLinePlaceholder":536},[436,1465,1466,1468,1470,1472,1474,1476,1478,1480,1482],{"class":438,"line":606},[436,1467,609],{"class":442},[436,1469,612],{"class":543},[436,1471,615],{"class":450},[436,1473,550],{"class":446},[436,1475,620],{"class":450},[436,1477,623],{"class":446},[436,1479,626],{"class":553},[436,1481,629],{"class":450},[436,1483,632],{"class":446},[436,1485,1486,1488,1490],{"class":438,"line":635},[436,1487,639],{"class":638},[436,1489,642],{"class":446},[436,1491,645],{"class":446},[436,1493,1494],{"class":438,"line":648},[436,1495,652],{"class":651},[436,1497,1498,1500,1502,1504,1506,1508,1510,1512,1514,1516,1518,1520,1522,1524,1526,1528],{"class":438,"line":655},[436,1499,658],{"class":638},[436,1501,642],{"class":446},[436,1503,620],{"class":450},[436,1505,623],{"class":446},[436,1507,667],{"class":553},[436,1509,629],{"class":450},[436,1511,629],{"class":446},[436,1513,675],{"class":674},[436,1515,509],{"class":446},[436,1517,680],{"class":674},[436,1519,642],{"class":446},[436,1521,685],{"class":586},[436,1523,688],{"class":446},[436,1525,512],{"class":586},[436,1527,693],{"class":543},[436,1529,645],{"class":446},[436,1531,1532,1534,1536,1538,1540,1542],{"class":438,"line":698},[436,1533,701],{"class":543},[436,1535,704],{"class":450},[436,1537,642],{"class":446},[436,1539,512],{"class":586},[436,1541,711],{"class":446},[436,1543,645],{"class":446},[436,1545,1546,1548,1550,1552,1554,1556,1558,1560,1562,1564,1566],{"class":438,"line":716},[436,1547,719],{"class":638},[436,1549,642],{"class":446},[436,1551,680],{"class":450},[436,1553,623],{"class":446},[436,1555,728],{"class":450},[436,1557,731],{"class":446},[436,1559,734],{"class":450},[436,1561,623],{"class":446},[436,1563,739],{"class":553},[436,1565,557],{"class":638},[436,1567,744],{"class":446},[436,1569,1570,1572,1574,1576,1578,1580],{"class":438,"line":747},[436,1571,750],{"class":638},[436,1573,642],{"class":446},[436,1575,680],{"class":450},[436,1577,623],{"class":446},[436,1579,759],{"class":450},[436,1581,744],{"class":446},[436,1583,1584,1586,1588,1590,1592,1594],{"class":438,"line":764},[436,1585,767],{"class":638},[436,1587,642],{"class":446},[436,1589,680],{"class":450},[436,1591,623],{"class":446},[436,1593,776],{"class":450},[436,1595,744],{"class":446},[436,1597,1598,1600,1602,1604,1606,1608,1610,1612,1614,1616],{"class":438,"line":781},[436,1599,784],{"class":638},[436,1601,642],{"class":446},[436,1603,680],{"class":450},[436,1605,623],{"class":446},[436,1607,793],{"class":450},[436,1609,731],{"class":446},[436,1611,577],{"class":446},[436,1613,800],{"class":553},[436,1615,557],{"class":638},[436,1617,744],{"class":446},[436,1619,1620],{"class":438,"line":807},[436,1621,810],{"class":446},[436,1623,1624,1626,1628,1630,1632,1634,1636,1638,1640,1642,1644],{"class":438,"line":813},[436,1625,816],{"class":450},[436,1627,623],{"class":446},[436,1629,821],{"class":553},[436,1631,629],{"class":638},[436,1633,826],{"class":450},[436,1635,623],{"class":446},[436,1637,728],{"class":450},[436,1639,509],{"class":446},[436,1641,704],{"class":450},[436,1643,837],{"class":638},[436,1645,470],{"class":446},[436,1647,1648,1650,1652],{"class":438,"line":842},[436,1649,845],{"class":442},[436,1651,704],{"class":450},[436,1653,470],{"class":446},[436,1655,1656,1658,1660],{"class":438,"line":852},[436,1657,855],{"class":446},[436,1659,837],{"class":450},[436,1661,744],{"class":446},[436,1663,1664],{"class":438,"line":862},[436,1665,537],{"emptyLinePlaceholder":536},[436,1667,1668],{"class":438,"line":867},[436,1669,870],{"class":651},[436,1671,1672,1674,1676,1678,1680,1682],{"class":438,"line":873},[436,1673,876],{"class":638},[436,1675,642],{"class":446},[436,1677,620],{"class":450},[436,1679,623],{"class":446},[436,1681,667],{"class":553},[436,1683,887],{"class":450},[436,1685,1686,1688,1690,1692,1694,1696,1698,1700,1702,1704,1706,1708,1710,1712,1714,1716,1718],{"class":438,"line":890},[436,1687,893],{"class":446},[436,1689,675],{"class":674},[436,1691,509],{"class":446},[436,1693,900],{"class":674},[436,1695,642],{"class":446},[436,1697,905],{"class":586},[436,1699,688],{"class":446},[436,1701,512],{"class":586},[436,1703,912],{"class":446},[436,1705,915],{"class":586},[436,1707,583],{"class":446},[436,1709,467],{"class":446},[436,1711,922],{"class":463},[436,1713,467],{"class":446},[436,1715,594],{"class":446},[436,1717,693],{"class":543},[436,1719,645],{"class":446},[436,1721,1722,1724],{"class":438,"line":933},[436,1723,936],{"class":442},[436,1725,939],{"class":638},[436,1727,1728,1730,1732,1734,1736,1738,1740],{"class":438,"line":942},[436,1729,945],{"class":450},[436,1731,623],{"class":446},[436,1733,950],{"class":553},[436,1735,629],{"class":638},[436,1737,728],{"class":450},[436,1739,957],{"class":638},[436,1741,960],{"class":446},[436,1743,1744,1746,1748,1750],{"class":438,"line":963},[436,1745,966],{"class":446},[436,1747,915],{"class":553},[436,1749,629],{"class":638},[436,1751,632],{"class":446},[436,1753,1754,1756,1758,1760,1762,1764],{"class":438,"line":975},[436,1755,978],{"class":638},[436,1757,642],{"class":446},[436,1759,460],{"class":446},[436,1761,985],{"class":463},[436,1763,467],{"class":446},[436,1765,744],{"class":446},[436,1767,1768,1770,1772,1774,1776,1778],{"class":438,"line":992},[436,1769,995],{"class":638},[436,1771,642],{"class":446},[436,1773,460],{"class":446},[436,1775,922],{"class":463},[436,1777,467],{"class":446},[436,1779,744],{"class":446},[436,1781,1782,1784],{"class":438,"line":1008},[436,1783,1011],{"class":446},[436,1785,1014],{"class":638},[436,1787,1788,1790],{"class":438,"line":1017},[436,1789,1020],{"class":638},[436,1791,470],{"class":446},[436,1793,1794],{"class":438,"line":1025},[436,1795,1028],{"class":446},[436,1797,1798,1800],{"class":438,"line":1031},[436,1799,1034],{"class":450},[436,1801,744],{"class":446},[436,1803,1804],{"class":438,"line":1039},[436,1805,537],{"emptyLinePlaceholder":536},[436,1807,1808],{"class":438,"line":1044},[436,1809,1047],{"class":651},[436,1811,1812,1814,1816,1818,1820,1822],{"class":438,"line":1050},[436,1813,1053],{"class":638},[436,1815,642],{"class":446},[436,1817,620],{"class":450},[436,1819,623],{"class":446},[436,1821,667],{"class":553},[436,1823,887],{"class":450},[436,1825,1826],{"class":438,"line":1066},[436,1827,1069],{"class":450},[436,1829,1830,1832],{"class":438,"line":1072},[436,1831,1075],{"class":450},[436,1833,744],{"class":446},[436,1835,1836,1838],{"class":438,"line":1080},[436,1837,1083],{"class":450},[436,1839,744],{"class":446},[436,1841,1842],{"class":438,"line":1088},[436,1843,1091],{"class":450},[436,1845,1846,1848,1850,1852,1854,1856,1858,1860,1862,1864,1866,1868],{"class":438,"line":1094},[436,1847,1097],{"class":450},[436,1849,642],{"class":446},[436,1851,512],{"class":586},[436,1853,912],{"class":446},[436,1855,915],{"class":586},[436,1857,583],{"class":446},[436,1859,467],{"class":446},[436,1861,922],{"class":463},[436,1863,467],{"class":446},[436,1865,594],{"class":446},[436,1867,693],{"class":543},[436,1869,645],{"class":446},[436,1871,1872,1874,1876,1878,1880,1882,1884,1886,1888,1890],{"class":438,"line":1122},[436,1873,1125],{"class":543},[436,1875,1128],{"class":450},[436,1877,711],{"class":446},[436,1879,1133],{"class":450},[436,1881,623],{"class":446},[436,1883,950],{"class":553},[436,1885,629],{"class":638},[436,1887,728],{"class":450},[436,1889,837],{"class":638},[436,1891,470],{"class":446},[436,1893,1894,1896,1898,1900,1902],{"class":438,"line":1148},[436,1895,1151],{"class":442},[436,1897,1154],{"class":638},[436,1899,1157],{"class":446},[436,1901,1160],{"class":450},[436,1903,1014],{"class":638},[436,1905,1906,1908,1910,1912,1914],{"class":438,"line":1165},[436,1907,1168],{"class":442},[436,1909,577],{"class":446},[436,1911,915],{"class":553},[436,1913,629],{"class":638},[436,1915,632],{"class":446},[436,1917,1918,1920,1922,1924,1926,1928],{"class":438,"line":1179},[436,1919,978],{"class":638},[436,1921,642],{"class":446},[436,1923,460],{"class":446},[436,1925,985],{"class":463},[436,1927,467],{"class":446},[436,1929,744],{"class":446},[436,1931,1932,1934,1936,1938,1940,1942],{"class":438,"line":1194},[436,1933,995],{"class":638},[436,1935,642],{"class":446},[436,1937,460],{"class":446},[436,1939,922],{"class":463},[436,1941,467],{"class":446},[436,1943,744],{"class":446},[436,1945,1946,1948,1950],{"class":438,"line":1209},[436,1947,1011],{"class":446},[436,1949,837],{"class":638},[436,1951,470],{"class":446},[436,1953,1954,1956,1958,1960,1962,1964,1966,1968,1970,1972,1974],{"class":438,"line":1218},[436,1955,1125],{"class":543},[436,1957,1223],{"class":450},[436,1959,642],{"class":446},[436,1961,512],{"class":586},[436,1963,711],{"class":446},[436,1965,1232],{"class":446},[436,1967,1160],{"class":450},[436,1969,509],{"class":446},[436,1971,1239],{"class":446},[436,1973,1242],{"class":450},[436,1975,1245],{"class":446},[436,1977,1978,1980,1982,1984,1986,1988,1990,1992,1994],{"class":438,"line":1248},[436,1979,1251],{"class":450},[436,1981,623],{"class":446},[436,1983,821],{"class":553},[436,1985,629],{"class":638},[436,1987,728],{"class":450},[436,1989,509],{"class":446},[436,1991,1223],{"class":450},[436,1993,837],{"class":638},[436,1995,470],{"class":446},[436,1997,1998,2000,2002],{"class":438,"line":1270},[436,1999,936],{"class":442},[436,2001,1223],{"class":450},[436,2003,470],{"class":446},[436,2005,2006],{"class":438,"line":1279},[436,2007,1028],{"class":446},[436,2009,2010,2012],{"class":438,"line":1284},[436,2011,1034],{"class":450},[436,2013,744],{"class":446},[436,2015,2016],{"class":438,"line":1291},[436,2017,1294],{"class":446},[436,2019,2020,2022,2024],{"class":438,"line":1297},[436,2021,454],{"class":446},[436,2023,837],{"class":450},[436,2025,470],{"class":446},[436,2027,2028],{"class":438,"line":1306},[436,2029,537],{"emptyLinePlaceholder":536},[436,2031,2032],{"class":438,"line":1311},[436,2033,1314],{"class":651},[436,2035,2036,2038,2040,2042,2044,2046,2048],{"class":438,"line":1317},[436,2037,609],{"class":442},[436,2039,501],{"class":543},[436,2041,1324],{"class":586},[436,2043,711],{"class":446},[436,2045,1329],{"class":446},[436,2047,1332],{"class":450},[436,2049,470],{"class":446},[414,2051,2053],{"id":2052},"returning-query-results","Returning Query Results",[405,2055,2056,2057,2060],{},"A row you query from a ",[433,2058,2059],{},"toDrizzle"," table has the model's type, formats included. A route can return it as is, and the client checks the same lengths, ranges and ids.",[425,2062,2064],{"className":427,"code":2063,"language":430,"meta":431,"style":431},"import {eq} from 'drizzle-orm';\nimport {drizzle} from 'drizzle-orm\u002Fpg-proxy';\nimport {createMionRouter} from '@mionjs\u002Frouter';\nimport {toDrizzle} from '@mionjs\u002Fdrizzle-orm-pg-core\u002Fdrizzle';\nimport {schema} from '.\u002Fdrizzle-relations-example.ts';\nimport {\n  authors,\n  posts,\n  type Author,\n  type Post,\n  type AuthorWithPosts,\n} from '.\u002Fdrizzle-relations-schema-example.ts';\n\nconst authorsDb = toDrizzle(authors);\nconst postsDb = toDrizzle(posts);\nconst db = drizzle(async () => ({rows: []}), {schema});\n\nconst mion = createMionRouter();\n\nexport const blogApi = mion.initRoutes({\n  \u002F\u002F whole rows\n  listAuthors: mion.route(\n    async (): Promise\u003CAuthor[]> => db.select().from(authorsDb)\n  ),\n\n  \u002F\u002F selected model fields\n  authorNames: mion.route(\n    async (): Promise\u003CPick\u003CAuthor, 'id' | 'name'>[]> =>\n      db.select({id: authorsDb.id, name: authorsDb.name}).from(authorsDb)\n  ),\n\n  \u002F\u002F one model per joined table\n  postsWithAuthor: mion.route(\n    async (): Promise\u003C{post: Post; author: Author}[]> =>\n      db\n        .select({post: postsDb, author: authorsDb})\n        .from(postsDb)\n        .innerJoin(authorsDb, eq(postsDb.authorId, authorsDb.id))\n  ),\n\n  \u002F\u002F nested models\n  authorsWithPosts: mion.route(\n    async (): Promise\u003CAuthorWithPosts[]> =>\n      db.query.authors.findMany({with: {posts: true}})\n  ),\n});\n",[433,2065,2066,2088,2110,2130,2151,2173,2179,2186,2193,2203,2212,2221,2236,2240,2257,2273,2324,2328,2342,2346,2367,2372,2387,2428,2435,2439,2444,2459,2501,2548,2554,2558,2563,2578,2614,2619,2649,2658,2690,2696,2700,2705,2720,2739,2783,2789],{"__ignoreMap":431},[436,2067,2068,2070,2072,2075,2077,2079,2081,2084,2086],{"class":438,"line":439},[436,2069,443],{"class":442},[436,2071,447],{"class":446},[436,2073,2074],{"class":450},"eq",[436,2076,454],{"class":446},[436,2078,457],{"class":442},[436,2080,460],{"class":446},[436,2082,2083],{"class":463},"drizzle-orm",[436,2085,467],{"class":446},[436,2087,470],{"class":446},[436,2089,2090,2092,2094,2097,2099,2101,2103,2106,2108],{"class":438,"line":473},[436,2091,443],{"class":442},[436,2093,447],{"class":446},[436,2095,2096],{"class":450},"drizzle",[436,2098,454],{"class":446},[436,2100,457],{"class":442},[436,2102,460],{"class":446},[436,2104,2105],{"class":463},"drizzle-orm\u002Fpg-proxy",[436,2107,467],{"class":446},[436,2109,470],{"class":446},[436,2111,2112,2114,2116,2118,2120,2122,2124,2126,2128],{"class":438,"line":496},[436,2113,443],{"class":442},[436,2115,447],{"class":446},[436,2117,480],{"class":450},[436,2119,454],{"class":446},[436,2121,457],{"class":442},[436,2123,460],{"class":446},[436,2125,489],{"class":463},[436,2127,467],{"class":446},[436,2129,470],{"class":446},[436,2131,2132,2134,2136,2138,2140,2142,2144,2147,2149],{"class":438,"line":533},[436,2133,443],{"class":442},[436,2135,447],{"class":446},[436,2137,2059],{"class":450},[436,2139,454],{"class":446},[436,2141,457],{"class":442},[436,2143,460],{"class":446},[436,2145,2146],{"class":463},"@mionjs\u002Fdrizzle-orm-pg-core\u002Fdrizzle",[436,2148,467],{"class":446},[436,2150,470],{"class":446},[436,2152,2153,2155,2157,2160,2162,2164,2166,2169,2171],{"class":438,"line":540},[436,2154,443],{"class":442},[436,2156,447],{"class":446},[436,2158,2159],{"class":450},"schema",[436,2161,454],{"class":446},[436,2163,457],{"class":442},[436,2165,460],{"class":446},[436,2167,2168],{"class":463},".\u002Fdrizzle-relations-example.ts",[436,2170,467],{"class":446},[436,2172,470],{"class":446},[436,2174,2175,2177],{"class":438,"line":562},[436,2176,443],{"class":442},[436,2178,645],{"class":446},[436,2180,2181,2184],{"class":438,"line":567},[436,2182,2183],{"class":450},"  authors",[436,2185,744],{"class":446},[436,2187,2188,2191],{"class":438,"line":601},[436,2189,2190],{"class":450},"  posts",[436,2192,744],{"class":446},[436,2194,2195,2198,2201],{"class":438,"line":606},[436,2196,2197],{"class":442},"  type",[436,2199,2200],{"class":450}," Author",[436,2202,744],{"class":446},[436,2204,2205,2207,2210],{"class":438,"line":635},[436,2206,2197],{"class":442},[436,2208,2209],{"class":450}," Post",[436,2211,744],{"class":446},[436,2213,2214,2216,2219],{"class":438,"line":648},[436,2215,2197],{"class":442},[436,2217,2218],{"class":450}," AuthorWithPosts",[436,2220,744],{"class":446},[436,2222,2223,2225,2227,2229,2232,2234],{"class":438,"line":655},[436,2224,454],{"class":446},[436,2226,457],{"class":442},[436,2228,460],{"class":446},[436,2230,2231],{"class":463},".\u002Fdrizzle-relations-schema-example.ts",[436,2233,467],{"class":446},[436,2235,470],{"class":446},[436,2237,2238],{"class":438,"line":698},[436,2239,537],{"emptyLinePlaceholder":536},[436,2241,2242,2244,2247,2249,2252,2255],{"class":438,"line":716},[436,2243,544],{"class":543},[436,2245,2246],{"class":450}," authorsDb ",[436,2248,550],{"class":446},[436,2250,2251],{"class":553}," toDrizzle",[436,2253,2254],{"class":450},"(authors)",[436,2256,470],{"class":446},[436,2258,2259,2261,2264,2266,2268,2271],{"class":438,"line":747},[436,2260,544],{"class":543},[436,2262,2263],{"class":450}," postsDb ",[436,2265,550],{"class":446},[436,2267,2251],{"class":553},[436,2269,2270],{"class":450},"(posts)",[436,2272,470],{"class":446},[436,2274,2275,2277,2280,2282,2285,2287,2290,2293,2295,2297,2300,2303,2305,2308,2310,2312,2314,2316,2318,2320,2322],{"class":438,"line":764},[436,2276,544],{"class":543},[436,2278,2279],{"class":450}," db ",[436,2281,550],{"class":446},[436,2283,2284],{"class":553}," drizzle",[436,2286,629],{"class":450},[436,2288,2289],{"class":543},"async",[436,2291,2292],{"class":446}," ()",[436,2294,693],{"class":543},[436,2296,1154],{"class":450},[436,2298,2299],{"class":446},"{",[436,2301,2302],{"class":638},"rows",[436,2304,642],{"class":446},[436,2306,2307],{"class":450}," []",[436,2309,454],{"class":446},[436,2311,837],{"class":450},[436,2313,509],{"class":446},[436,2315,447],{"class":446},[436,2317,2159],{"class":450},[436,2319,454],{"class":446},[436,2321,837],{"class":450},[436,2323,470],{"class":446},[436,2325,2326],{"class":438,"line":781},[436,2327,537],{"emptyLinePlaceholder":536},[436,2329,2330,2332,2334,2336,2338,2340],{"class":438,"line":807},[436,2331,544],{"class":543},[436,2333,547],{"class":450},[436,2335,550],{"class":446},[436,2337,554],{"class":553},[436,2339,557],{"class":450},[436,2341,470],{"class":446},[436,2343,2344],{"class":438,"line":813},[436,2345,537],{"emptyLinePlaceholder":536},[436,2347,2348,2350,2352,2355,2357,2359,2361,2363,2365],{"class":438,"line":842},[436,2349,609],{"class":442},[436,2351,612],{"class":543},[436,2353,2354],{"class":450}," blogApi ",[436,2356,550],{"class":446},[436,2358,620],{"class":450},[436,2360,623],{"class":446},[436,2362,626],{"class":553},[436,2364,629],{"class":450},[436,2366,632],{"class":446},[436,2368,2369],{"class":438,"line":852},[436,2370,2371],{"class":651},"  \u002F\u002F whole rows\n",[436,2373,2374,2377,2379,2381,2383,2385],{"class":438,"line":862},[436,2375,2376],{"class":638},"  listAuthors",[436,2378,642],{"class":446},[436,2380,620],{"class":450},[436,2382,623],{"class":446},[436,2384,667],{"class":553},[436,2386,887],{"class":450},[436,2388,2389,2392,2395,2398,2400,2403,2406,2408,2410,2413,2415,2418,2420,2422,2425],{"class":438,"line":867},[436,2390,2391],{"class":543},"    async",[436,2393,2394],{"class":446}," ():",[436,2396,2397],{"class":586}," Promise",[436,2399,583],{"class":446},[436,2401,2402],{"class":586},"Author",[436,2404,2405],{"class":450},"[]",[436,2407,594],{"class":446},[436,2409,693],{"class":543},[436,2411,2412],{"class":450}," db",[436,2414,623],{"class":446},[436,2416,2417],{"class":553},"select",[436,2419,557],{"class":450},[436,2421,623],{"class":446},[436,2423,2424],{"class":553},"from",[436,2426,2427],{"class":450},"(authorsDb)\n",[436,2429,2430,2433],{"class":438,"line":873},[436,2431,2432],{"class":450},"  )",[436,2434,744],{"class":446},[436,2436,2437],{"class":438,"line":890},[436,2438,537],{"emptyLinePlaceholder":536},[436,2440,2441],{"class":438,"line":933},[436,2442,2443],{"class":651},"  \u002F\u002F selected model fields\n",[436,2445,2446,2449,2451,2453,2455,2457],{"class":438,"line":942},[436,2447,2448],{"class":638},"  authorNames",[436,2450,642],{"class":446},[436,2452,620],{"class":450},[436,2454,623],{"class":446},[436,2456,667],{"class":553},[436,2458,887],{"class":450},[436,2460,2461,2463,2465,2467,2469,2472,2474,2476,2478,2480,2482,2484,2486,2488,2490,2492,2494,2496,2498],{"class":438,"line":963},[436,2462,2391],{"class":543},[436,2464,2394],{"class":446},[436,2466,2397],{"class":586},[436,2468,583],{"class":446},[436,2470,2471],{"class":586},"Pick",[436,2473,583],{"class":446},[436,2475,2402],{"class":586},[436,2477,509],{"class":446},[436,2479,460],{"class":446},[436,2481,728],{"class":463},[436,2483,467],{"class":446},[436,2485,912],{"class":446},[436,2487,460],{"class":446},[436,2489,759],{"class":463},[436,2491,467],{"class":446},[436,2493,594],{"class":446},[436,2495,2405],{"class":450},[436,2497,594],{"class":446},[436,2499,2500],{"class":543}," =>\n",[436,2502,2503,2506,2508,2510,2512,2514,2516,2518,2521,2523,2525,2527,2530,2532,2534,2536,2538,2540,2542,2544,2546],{"class":438,"line":975},[436,2504,2505],{"class":450},"      db",[436,2507,623],{"class":446},[436,2509,2417],{"class":553},[436,2511,629],{"class":450},[436,2513,2299],{"class":446},[436,2515,728],{"class":638},[436,2517,642],{"class":446},[436,2519,2520],{"class":450}," authorsDb",[436,2522,623],{"class":446},[436,2524,728],{"class":450},[436,2526,509],{"class":446},[436,2528,2529],{"class":638}," name",[436,2531,642],{"class":446},[436,2533,2520],{"class":450},[436,2535,623],{"class":446},[436,2537,759],{"class":450},[436,2539,454],{"class":446},[436,2541,837],{"class":450},[436,2543,623],{"class":446},[436,2545,2424],{"class":553},[436,2547,2427],{"class":450},[436,2549,2550,2552],{"class":438,"line":992},[436,2551,2432],{"class":450},[436,2553,744],{"class":446},[436,2555,2556],{"class":438,"line":1008},[436,2557,537],{"emptyLinePlaceholder":536},[436,2559,2560],{"class":438,"line":1017},[436,2561,2562],{"class":651},"  \u002F\u002F one model per joined table\n",[436,2564,2565,2568,2570,2572,2574,2576],{"class":438,"line":1025},[436,2566,2567],{"class":638},"  postsWithAuthor",[436,2569,642],{"class":446},[436,2571,620],{"class":450},[436,2573,623],{"class":446},[436,2575,667],{"class":553},[436,2577,887],{"class":450},[436,2579,2580,2582,2584,2586,2589,2592,2594,2596,2599,2602,2604,2606,2608,2610,2612],{"class":438,"line":1031},[436,2581,2391],{"class":543},[436,2583,2394],{"class":446},[436,2585,2397],{"class":586},[436,2587,2588],{"class":446},"\u003C{",[436,2590,2591],{"class":638},"post",[436,2593,642],{"class":446},[436,2595,2209],{"class":586},[436,2597,2598],{"class":446},";",[436,2600,2601],{"class":638}," author",[436,2603,642],{"class":446},[436,2605,2200],{"class":586},[436,2607,454],{"class":446},[436,2609,2405],{"class":450},[436,2611,594],{"class":446},[436,2613,2500],{"class":543},[436,2615,2616],{"class":438,"line":1039},[436,2617,2618],{"class":450},"      db\n",[436,2620,2621,2624,2626,2628,2630,2632,2634,2637,2639,2641,2643,2645,2647],{"class":438,"line":1044},[436,2622,2623],{"class":446},"        .",[436,2625,2417],{"class":553},[436,2627,629],{"class":450},[436,2629,2299],{"class":446},[436,2631,2591],{"class":638},[436,2633,642],{"class":446},[436,2635,2636],{"class":450}," postsDb",[436,2638,509],{"class":446},[436,2640,2601],{"class":638},[436,2642,642],{"class":446},[436,2644,2520],{"class":450},[436,2646,454],{"class":446},[436,2648,1014],{"class":450},[436,2650,2651,2653,2655],{"class":438,"line":1050},[436,2652,2623],{"class":446},[436,2654,2424],{"class":553},[436,2656,2657],{"class":450},"(postsDb)\n",[436,2659,2660,2662,2665,2668,2670,2673,2676,2678,2681,2683,2685,2687],{"class":438,"line":1066},[436,2661,2623],{"class":446},[436,2663,2664],{"class":553},"innerJoin",[436,2666,2667],{"class":450},"(authorsDb",[436,2669,509],{"class":446},[436,2671,2672],{"class":553}," eq",[436,2674,2675],{"class":450},"(postsDb",[436,2677,623],{"class":446},[436,2679,2680],{"class":450},"authorId",[436,2682,509],{"class":446},[436,2684,2520],{"class":450},[436,2686,623],{"class":446},[436,2688,2689],{"class":450},"id))\n",[436,2691,2692,2694],{"class":438,"line":1072},[436,2693,2432],{"class":450},[436,2695,744],{"class":446},[436,2697,2698],{"class":438,"line":1080},[436,2699,537],{"emptyLinePlaceholder":536},[436,2701,2702],{"class":438,"line":1088},[436,2703,2704],{"class":651},"  \u002F\u002F nested models\n",[436,2706,2707,2710,2712,2714,2716,2718],{"class":438,"line":1094},[436,2708,2709],{"class":638},"  authorsWithPosts",[436,2711,642],{"class":446},[436,2713,620],{"class":450},[436,2715,623],{"class":446},[436,2717,667],{"class":553},[436,2719,887],{"class":450},[436,2721,2722,2724,2726,2728,2730,2733,2735,2737],{"class":438,"line":1122},[436,2723,2391],{"class":543},[436,2725,2394],{"class":446},[436,2727,2397],{"class":586},[436,2729,583],{"class":446},[436,2731,2732],{"class":586},"AuthorWithPosts",[436,2734,2405],{"class":450},[436,2736,594],{"class":446},[436,2738,2500],{"class":543},[436,2740,2741,2743,2745,2748,2750,2753,2755,2758,2760,2762,2765,2767,2769,2772,2774,2778,2781],{"class":438,"line":1148},[436,2742,2505],{"class":450},[436,2744,623],{"class":446},[436,2746,2747],{"class":450},"query",[436,2749,623],{"class":446},[436,2751,2752],{"class":450},"authors",[436,2754,623],{"class":446},[436,2756,2757],{"class":553},"findMany",[436,2759,629],{"class":450},[436,2761,2299],{"class":446},[436,2763,2764],{"class":638},"with",[436,2766,642],{"class":446},[436,2768,447],{"class":446},[436,2770,2771],{"class":638},"posts",[436,2773,642],{"class":446},[436,2775,2777],{"class":2776},"sfNiH"," true",[436,2779,2780],{"class":446},"}}",[436,2782,1014],{"class":450},[436,2784,2785,2787],{"class":438,"line":1165},[436,2786,2432],{"class":450},[436,2788,744],{"class":446},[436,2790,2791,2793,2795],{"class":438,"line":1179},[436,2792,454],{"class":446},[436,2794,837],{"class":450},[436,2796,470],{"class":446},[2798,2799,2800],"tip",{},"Write route return types from your models for an explicit public contract with the same TypeFormats parameters.",[414,2802,2804],{"id":2803},"keeping-drizzle-types-out-of-routes","Keeping Drizzle Types Out of Routes",[405,2806,2807,2808,2812],{},"Route parameters and return types use slim models, never Drizzle types, so the client never type-checks or bundles your database code. The ",[409,2809,2811],{"href":2810},"\u002Frpc\u002Fdevtools\u002Flinter#public-drizzle-types","linter"," warns when a route uses a Drizzle type.",[2814,2815,2816],"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 .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 .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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 .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 .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 .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}","Type routes with the models of your Drizzle ORM tables.","md",null,{"toc":24},{"title":60,"description":2817},"9oBU9oNRuB5rZO6kJqccRcnh_jYGK9GsqfRbDnz3LMM",1793324369888]