[{"data":1,"prerenderedAt":8632},["ShallowReactive",2],{"navigation_docs":3,"-runtypes-drizzle-orm-drizzle-overview":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":298,"body":401,"description":8626,"extension":8627,"links":8628,"meta":8629,"navigation":635,"path":293,"seo":8630,"stem":299,"__hash__":8631},"docs\u002F02.runtypes\u002F06.drizzle-orm\u002F00.drizzle-overview.md",{"type":402,"value":403},"minimark",[404,408,418,478,484,487,490,535,538,2156,2161,2166,2173,2291,2298,2302,2317,3799,3803,3819,4343,4350,4354,4375,5392,5395,5399,5402,5406,5421,5425,5431,6933,6936,6940,6946,7051,7055,7070,7817,7836,7840,7868,8277,8282,8286,8293,8615,8622],[405,406,407],"p",{},"Mion's Drizzle integration follows RunTypes: TypeScript types express database settings and TypeFormats metadata. Those types describe your schema and generate validation, mock data and JSON conversion for server and client.",[405,409,410,411,417],{},"One package per database gives you the ",[412,413,291],"a",{"href":414,"rel":415},"https:\u002F\u002Form.drizzle.team",[416],"nofollow"," table functions for that database, with the same names, config, indexes and constraints. A column takes all its settings in one object instead of a chain of calls.",[419,420,421,434],"table",{},[422,423,424],"thead",{},[425,426,427,431],"tr",{},[428,429,430],"th",{},"Database",[428,432,433],{},"Package",[435,436,437,449,459,469],"tbody",{},[425,438,439,443],{},[440,441,442],"td",{},"PostgreSQL",[440,444,445],{},[446,447,448],"code",{},"@mionjs\u002Fdrizzle-orm-pg-core",[425,450,451,454],{},[440,452,453],{},"MySQL",[440,455,456],{},[446,457,458],{},"@mionjs\u002Fdrizzle-orm-mysql-core",[425,460,461,464],{},[440,462,463],{},"SQLite",[440,465,466],{},[446,467,468],{},"@mionjs\u002Fdrizzle-orm-sqlite-core",[425,470,471,474],{},[440,472,473],{},"Cloudflare D1, Durable Objects",[440,475,476],{},[446,477,468],{},[405,479,480,481,483],{},"Cloudflare's two databases are SQLite and only change the driver: see ",[412,482,329],{"href":330},".",[405,485,486],{},"Package versions follow drizzle-orm, not mion: version 0.45.x works with drizzle-orm 0.45.x and declares that range as a peer dependency. Pick the version that matches your drizzle-orm. A new version ships only when the package changes, so one version can stay current across several mion releases.",[405,488,489],{},"Install the database package with its shared core. drizzle-orm is an optional peer: your schema, models and validators work without it.",[491,492,497],"pre",{"className":493,"code":494,"language":495,"meta":496,"style":496},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npm install @mionjs\u002Fdrizzle-orm-pg-core @mionjs\u002Fdrizzle-orm @mionjs\u002Frun-types\nnpm install drizzle-orm   # only needed to run queries or migrations\n","bash","",[446,498,499,521],{"__ignoreMap":496},[500,501,504,508,512,515,518],"span",{"class":502,"line":503},"line",1,[500,505,507],{"class":506},"sBMFI","npm",[500,509,511],{"class":510},"sfazB"," install",[500,513,514],{"class":510}," @mionjs\u002Fdrizzle-orm-pg-core",[500,516,517],{"class":510}," @mionjs\u002Fdrizzle-orm",[500,519,520],{"class":510}," @mionjs\u002Frun-types\n",[500,522,524,526,528,531],{"class":502,"line":523},2,[500,525,507],{"class":506},[500,527,511],{"class":510},[500,529,530],{"class":510}," drizzle-orm",[500,532,534],{"class":533},"sHwdD","   # only needed to run queries or migrations\n",[405,536,537],{},"These builders record calls instead of running Drizzle. Their models keep column TypeFormats parameters, including string lengths and numeric bounds.",[539,540,541,1265,1700],"code-group",{},[491,542,546],{"className":543,"code":544,"filename":442,"language":545,"meta":496,"style":496},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import * as DZ from '@mionjs\u002Fdrizzle-orm-pg-core';\nimport type {InferSelectModel} from '@mionjs\u002Fdrizzle-orm';\nimport {createValidateFn} from '@mionjs\u002Frun-types';\n\n\u002F\u002F a recorded table, not drizzle's PgTable: toDrizzle() builds that on demand\nexport const users = DZ.pgTable('users', {\n  id: DZ.uuid('id', {primaryKey: true}),\n  name: DZ.varchar('name', {length: 100, notNull: true}),\n  age: DZ.integer('age', {notNull: true}),\n  role: DZ.text('role', {enum: ['admin', 'user'], notNull: true}),\n  createdAt: DZ.timestamp('created_at', {defaultNow: true, notNull: true}),\n});\n\n\u002F\u002F { id: UUID; name: String\u003C{maxLength: 100}>; age: Int32; role: 'admin' | 'user'; createdAt: Date }\nexport type User = InferSelectModel\u003Ctypeof users>;\n\n\u002F\u002F checks every captured param, with no extra runtime checks\nexport const validateUser = createValidateFn\u003CUser>();\n\nexport const checks = [\n  validateUser({\n    id: 'not-a-uuid',\n    name: 'ann',\n    age: 30,\n    role: 'admin',\n    createdAt: new Date(),\n  }), \u002F\u002F false\n  validateUser({\n    id: '793aff46-42ac-4372-b7fa-c48ba48ed94f',\n    name: 'x'.repeat(101), \u002F\u002F false: maxLength 100 is IN the compiled function\n    age: 30,\n    role: 'admin',\n    createdAt: new Date(),\n  }),\n];\n","ts",[446,547,548,579,607,630,637,643,684,731,783,824,893,942,951,956,962,987,992,998,1027,1032,1047,1058,1075,1092,1105,1121,1139,1152,1161,1177,1208,1219,1234,1249,1258],{"__ignoreMap":496},[500,549,550,554,558,561,565,568,571,573,576],{"class":502,"line":503},[500,551,553],{"class":552},"s7zQu","import",[500,555,557],{"class":556},"sMK4o"," *",[500,559,560],{"class":552}," as",[500,562,564],{"class":563},"sTEyZ"," DZ ",[500,566,567],{"class":552},"from",[500,569,570],{"class":556}," '",[500,572,448],{"class":510},[500,574,575],{"class":556},"'",[500,577,578],{"class":556},";\n",[500,580,581,583,586,589,592,595,598,600,603,605],{"class":502,"line":523},[500,582,553],{"class":552},[500,584,585],{"class":552}," type",[500,587,588],{"class":556}," {",[500,590,591],{"class":563},"InferSelectModel",[500,593,594],{"class":556},"}",[500,596,597],{"class":552}," from",[500,599,570],{"class":556},[500,601,602],{"class":510},"@mionjs\u002Fdrizzle-orm",[500,604,575],{"class":556},[500,606,578],{"class":556},[500,608,610,612,614,617,619,621,623,626,628],{"class":502,"line":609},3,[500,611,553],{"class":552},[500,613,588],{"class":556},[500,615,616],{"class":563},"createValidateFn",[500,618,594],{"class":556},[500,620,597],{"class":552},[500,622,570],{"class":556},[500,624,625],{"class":510},"@mionjs\u002Frun-types",[500,627,575],{"class":556},[500,629,578],{"class":556},[500,631,633],{"class":502,"line":632},4,[500,634,636],{"emptyLinePlaceholder":635},true,"\n",[500,638,640],{"class":502,"line":639},5,[500,641,642],{"class":533},"\u002F\u002F a recorded table, not drizzle's PgTable: toDrizzle() builds that on demand\n",[500,644,646,649,653,656,659,662,664,668,671,673,676,678,681],{"class":502,"line":645},6,[500,647,648],{"class":552},"export",[500,650,652],{"class":651},"spNyl"," const",[500,654,655],{"class":563}," users ",[500,657,658],{"class":556},"=",[500,660,661],{"class":563}," DZ",[500,663,483],{"class":556},[500,665,667],{"class":666},"s2Zo4","pgTable",[500,669,670],{"class":563},"(",[500,672,575],{"class":556},[500,674,675],{"class":510},"users",[500,677,575],{"class":556},[500,679,680],{"class":556},",",[500,682,683],{"class":556}," {\n",[500,685,687,691,694,696,698,701,703,705,708,710,712,714,717,719,723,725,728],{"class":502,"line":686},7,[500,688,690],{"class":689},"swJcz","  id",[500,692,693],{"class":556},":",[500,695,661],{"class":563},[500,697,483],{"class":556},[500,699,700],{"class":666},"uuid",[500,702,670],{"class":563},[500,704,575],{"class":556},[500,706,707],{"class":510},"id",[500,709,575],{"class":556},[500,711,680],{"class":556},[500,713,588],{"class":556},[500,715,716],{"class":689},"primaryKey",[500,718,693],{"class":556},[500,720,722],{"class":721},"sfNiH"," true",[500,724,594],{"class":556},[500,726,727],{"class":563},")",[500,729,730],{"class":556},",\n",[500,732,734,737,739,741,743,746,748,750,753,755,757,759,762,764,768,770,773,775,777,779,781],{"class":502,"line":733},8,[500,735,736],{"class":689},"  name",[500,738,693],{"class":556},[500,740,661],{"class":563},[500,742,483],{"class":556},[500,744,745],{"class":666},"varchar",[500,747,670],{"class":563},[500,749,575],{"class":556},[500,751,752],{"class":510},"name",[500,754,575],{"class":556},[500,756,680],{"class":556},[500,758,588],{"class":556},[500,760,761],{"class":689},"length",[500,763,693],{"class":556},[500,765,767],{"class":766},"sbssI"," 100",[500,769,680],{"class":556},[500,771,772],{"class":689}," notNull",[500,774,693],{"class":556},[500,776,722],{"class":721},[500,778,594],{"class":556},[500,780,727],{"class":563},[500,782,730],{"class":556},[500,784,786,789,791,793,795,798,800,802,805,807,809,811,814,816,818,820,822],{"class":502,"line":785},9,[500,787,788],{"class":689},"  age",[500,790,693],{"class":556},[500,792,661],{"class":563},[500,794,483],{"class":556},[500,796,797],{"class":666},"integer",[500,799,670],{"class":563},[500,801,575],{"class":556},[500,803,804],{"class":510},"age",[500,806,575],{"class":556},[500,808,680],{"class":556},[500,810,588],{"class":556},[500,812,813],{"class":689},"notNull",[500,815,693],{"class":556},[500,817,722],{"class":721},[500,819,594],{"class":556},[500,821,727],{"class":563},[500,823,730],{"class":556},[500,825,827,830,832,834,836,839,841,843,846,848,850,852,855,857,860,862,865,867,869,871,874,876,879,881,883,885,887,889,891],{"class":502,"line":826},10,[500,828,829],{"class":689},"  role",[500,831,693],{"class":556},[500,833,661],{"class":563},[500,835,483],{"class":556},[500,837,838],{"class":666},"text",[500,840,670],{"class":563},[500,842,575],{"class":556},[500,844,845],{"class":510},"role",[500,847,575],{"class":556},[500,849,680],{"class":556},[500,851,588],{"class":556},[500,853,854],{"class":689},"enum",[500,856,693],{"class":556},[500,858,859],{"class":563}," [",[500,861,575],{"class":556},[500,863,864],{"class":510},"admin",[500,866,575],{"class":556},[500,868,680],{"class":556},[500,870,570],{"class":556},[500,872,873],{"class":510},"user",[500,875,575],{"class":556},[500,877,878],{"class":563},"]",[500,880,680],{"class":556},[500,882,772],{"class":689},[500,884,693],{"class":556},[500,886,722],{"class":721},[500,888,594],{"class":556},[500,890,727],{"class":563},[500,892,730],{"class":556},[500,894,896,899,901,903,905,908,910,912,915,917,919,921,924,926,928,930,932,934,936,938,940],{"class":502,"line":895},11,[500,897,898],{"class":689},"  createdAt",[500,900,693],{"class":556},[500,902,661],{"class":563},[500,904,483],{"class":556},[500,906,907],{"class":666},"timestamp",[500,909,670],{"class":563},[500,911,575],{"class":556},[500,913,914],{"class":510},"created_at",[500,916,575],{"class":556},[500,918,680],{"class":556},[500,920,588],{"class":556},[500,922,923],{"class":689},"defaultNow",[500,925,693],{"class":556},[500,927,722],{"class":721},[500,929,680],{"class":556},[500,931,772],{"class":689},[500,933,693],{"class":556},[500,935,722],{"class":721},[500,937,594],{"class":556},[500,939,727],{"class":563},[500,941,730],{"class":556},[500,943,945,947,949],{"class":502,"line":944},12,[500,946,594],{"class":556},[500,948,727],{"class":563},[500,950,578],{"class":556},[500,952,954],{"class":502,"line":953},13,[500,955,636],{"emptyLinePlaceholder":635},[500,957,959],{"class":502,"line":958},14,[500,960,961],{"class":533},"\u002F\u002F { id: UUID; name: String\u003C{maxLength: 100}>; age: Int32; role: 'admin' | 'user'; createdAt: Date }\n",[500,963,965,967,969,972,975,978,981,984],{"class":502,"line":964},15,[500,966,648],{"class":552},[500,968,585],{"class":651},[500,970,971],{"class":506}," User",[500,973,974],{"class":556}," =",[500,976,977],{"class":506}," InferSelectModel",[500,979,980],{"class":556},"\u003Ctypeof",[500,982,983],{"class":563}," users",[500,985,986],{"class":556},">;\n",[500,988,990],{"class":502,"line":989},16,[500,991,636],{"emptyLinePlaceholder":635},[500,993,995],{"class":502,"line":994},17,[500,996,997],{"class":533},"\u002F\u002F checks every captured param, with no extra runtime checks\n",[500,999,1001,1003,1005,1008,1010,1013,1016,1019,1022,1025],{"class":502,"line":1000},18,[500,1002,648],{"class":552},[500,1004,652],{"class":651},[500,1006,1007],{"class":563}," validateUser ",[500,1009,658],{"class":556},[500,1011,1012],{"class":666}," createValidateFn",[500,1014,1015],{"class":556},"\u003C",[500,1017,1018],{"class":506},"User",[500,1020,1021],{"class":556},">",[500,1023,1024],{"class":563},"()",[500,1026,578],{"class":556},[500,1028,1030],{"class":502,"line":1029},19,[500,1031,636],{"emptyLinePlaceholder":635},[500,1033,1035,1037,1039,1042,1044],{"class":502,"line":1034},20,[500,1036,648],{"class":552},[500,1038,652],{"class":651},[500,1040,1041],{"class":563}," checks ",[500,1043,658],{"class":556},[500,1045,1046],{"class":563}," [\n",[500,1048,1050,1053,1055],{"class":502,"line":1049},21,[500,1051,1052],{"class":666},"  validateUser",[500,1054,670],{"class":563},[500,1056,1057],{"class":556},"{\n",[500,1059,1061,1064,1066,1068,1071,1073],{"class":502,"line":1060},22,[500,1062,1063],{"class":689},"    id",[500,1065,693],{"class":556},[500,1067,570],{"class":556},[500,1069,1070],{"class":510},"not-a-uuid",[500,1072,575],{"class":556},[500,1074,730],{"class":556},[500,1076,1078,1081,1083,1085,1088,1090],{"class":502,"line":1077},23,[500,1079,1080],{"class":689},"    name",[500,1082,693],{"class":556},[500,1084,570],{"class":556},[500,1086,1087],{"class":510},"ann",[500,1089,575],{"class":556},[500,1091,730],{"class":556},[500,1093,1095,1098,1100,1103],{"class":502,"line":1094},24,[500,1096,1097],{"class":689},"    age",[500,1099,693],{"class":556},[500,1101,1102],{"class":766}," 30",[500,1104,730],{"class":556},[500,1106,1108,1111,1113,1115,1117,1119],{"class":502,"line":1107},25,[500,1109,1110],{"class":689},"    role",[500,1112,693],{"class":556},[500,1114,570],{"class":556},[500,1116,864],{"class":510},[500,1118,575],{"class":556},[500,1120,730],{"class":556},[500,1122,1124,1127,1129,1132,1135,1137],{"class":502,"line":1123},26,[500,1125,1126],{"class":689},"    createdAt",[500,1128,693],{"class":556},[500,1130,1131],{"class":556}," new",[500,1133,1134],{"class":666}," Date",[500,1136,1024],{"class":563},[500,1138,730],{"class":556},[500,1140,1142,1145,1147,1149],{"class":502,"line":1141},27,[500,1143,1144],{"class":556},"  }",[500,1146,727],{"class":563},[500,1148,680],{"class":556},[500,1150,1151],{"class":533}," \u002F\u002F false\n",[500,1153,1155,1157,1159],{"class":502,"line":1154},28,[500,1156,1052],{"class":666},[500,1158,670],{"class":563},[500,1160,1057],{"class":556},[500,1162,1164,1166,1168,1170,1173,1175],{"class":502,"line":1163},29,[500,1165,1063],{"class":689},[500,1167,693],{"class":556},[500,1169,570],{"class":556},[500,1171,1172],{"class":510},"793aff46-42ac-4372-b7fa-c48ba48ed94f",[500,1174,575],{"class":556},[500,1176,730],{"class":556},[500,1178,1180,1182,1184,1186,1189,1191,1193,1196,1198,1201,1203,1205],{"class":502,"line":1179},30,[500,1181,1080],{"class":689},[500,1183,693],{"class":556},[500,1185,570],{"class":556},[500,1187,1188],{"class":510},"x",[500,1190,575],{"class":556},[500,1192,483],{"class":556},[500,1194,1195],{"class":666},"repeat",[500,1197,670],{"class":563},[500,1199,1200],{"class":766},"101",[500,1202,727],{"class":563},[500,1204,680],{"class":556},[500,1206,1207],{"class":533}," \u002F\u002F false: maxLength 100 is IN the compiled function\n",[500,1209,1211,1213,1215,1217],{"class":502,"line":1210},31,[500,1212,1097],{"class":689},[500,1214,693],{"class":556},[500,1216,1102],{"class":766},[500,1218,730],{"class":556},[500,1220,1222,1224,1226,1228,1230,1232],{"class":502,"line":1221},32,[500,1223,1110],{"class":689},[500,1225,693],{"class":556},[500,1227,570],{"class":556},[500,1229,864],{"class":510},[500,1231,575],{"class":556},[500,1233,730],{"class":556},[500,1235,1237,1239,1241,1243,1245,1247],{"class":502,"line":1236},33,[500,1238,1126],{"class":689},[500,1240,693],{"class":556},[500,1242,1131],{"class":556},[500,1244,1134],{"class":666},[500,1246,1024],{"class":563},[500,1248,730],{"class":556},[500,1250,1252,1254,1256],{"class":502,"line":1251},34,[500,1253,1144],{"class":556},[500,1255,727],{"class":563},[500,1257,730],{"class":556},[500,1259,1261,1263],{"class":502,"line":1260},35,[500,1262,878],{"class":563},[500,1264,578],{"class":556},[491,1266,1268],{"className":543,"code":1267,"filename":453,"language":545,"meta":496,"style":496},"import * as DZ from '@mionjs\u002Fdrizzle-orm-mysql-core';\nimport type {InferSelectModel} from '@mionjs\u002Fdrizzle-orm';\nimport {createValidateFn} from '@mionjs\u002Frun-types';\n\n\u002F\u002F a recorded table, not drizzle's MySqlTable: toDrizzle() builds that on demand\nexport const devices = DZ.mysqlTable('devices', {\n  serialNo: DZ.varchar('serial_no', {length: 12, notNull: true}),\n  views: DZ.int('views', {unsigned: true, notNull: true}), \u002F\u002F UInt32: 0 to 4294967295\n  offsetC: DZ.tinyint('offset_c', {notNull: true}), \u002F\u002F Int8: -128 to 127\n  builtIn: DZ.year('built_in', {notNull: true}), \u002F\u002F 1901 to 2155\n});\n\nexport type Device = InferSelectModel\u003Ctypeof devices>;\n\nexport const validateDevice = createValidateFn\u003CDevice>();\n\n\u002F\u002F false: views is negative and offsetC is beyond Int8\nexport const check = validateDevice({\n  serialNo: 'SN-1',\n  views: -1,\n  offsetC: 200,\n  builtIn: 2020,\n});\n",[446,1269,1270,1290,1312,1332,1336,1341,1372,1419,1470,1512,1554,1562,1566,1586,1590,1614,1618,1623,1641,1656,1670,1681,1692],{"__ignoreMap":496},[500,1271,1272,1274,1276,1278,1280,1282,1284,1286,1288],{"class":502,"line":503},[500,1273,553],{"class":552},[500,1275,557],{"class":556},[500,1277,560],{"class":552},[500,1279,564],{"class":563},[500,1281,567],{"class":552},[500,1283,570],{"class":556},[500,1285,458],{"class":510},[500,1287,575],{"class":556},[500,1289,578],{"class":556},[500,1291,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310],{"class":502,"line":523},[500,1293,553],{"class":552},[500,1295,585],{"class":552},[500,1297,588],{"class":556},[500,1299,591],{"class":563},[500,1301,594],{"class":556},[500,1303,597],{"class":552},[500,1305,570],{"class":556},[500,1307,602],{"class":510},[500,1309,575],{"class":556},[500,1311,578],{"class":556},[500,1313,1314,1316,1318,1320,1322,1324,1326,1328,1330],{"class":502,"line":609},[500,1315,553],{"class":552},[500,1317,588],{"class":556},[500,1319,616],{"class":563},[500,1321,594],{"class":556},[500,1323,597],{"class":552},[500,1325,570],{"class":556},[500,1327,625],{"class":510},[500,1329,575],{"class":556},[500,1331,578],{"class":556},[500,1333,1334],{"class":502,"line":632},[500,1335,636],{"emptyLinePlaceholder":635},[500,1337,1338],{"class":502,"line":639},[500,1339,1340],{"class":533},"\u002F\u002F a recorded table, not drizzle's MySqlTable: toDrizzle() builds that on demand\n",[500,1342,1343,1345,1347,1350,1352,1354,1356,1359,1361,1363,1366,1368,1370],{"class":502,"line":645},[500,1344,648],{"class":552},[500,1346,652],{"class":651},[500,1348,1349],{"class":563}," devices ",[500,1351,658],{"class":556},[500,1353,661],{"class":563},[500,1355,483],{"class":556},[500,1357,1358],{"class":666},"mysqlTable",[500,1360,670],{"class":563},[500,1362,575],{"class":556},[500,1364,1365],{"class":510},"devices",[500,1367,575],{"class":556},[500,1369,680],{"class":556},[500,1371,683],{"class":556},[500,1373,1374,1377,1379,1381,1383,1385,1387,1389,1392,1394,1396,1398,1400,1402,1405,1407,1409,1411,1413,1415,1417],{"class":502,"line":686},[500,1375,1376],{"class":689},"  serialNo",[500,1378,693],{"class":556},[500,1380,661],{"class":563},[500,1382,483],{"class":556},[500,1384,745],{"class":666},[500,1386,670],{"class":563},[500,1388,575],{"class":556},[500,1390,1391],{"class":510},"serial_no",[500,1393,575],{"class":556},[500,1395,680],{"class":556},[500,1397,588],{"class":556},[500,1399,761],{"class":689},[500,1401,693],{"class":556},[500,1403,1404],{"class":766}," 12",[500,1406,680],{"class":556},[500,1408,772],{"class":689},[500,1410,693],{"class":556},[500,1412,722],{"class":721},[500,1414,594],{"class":556},[500,1416,727],{"class":563},[500,1418,730],{"class":556},[500,1420,1421,1424,1426,1428,1430,1433,1435,1437,1440,1442,1444,1446,1449,1451,1453,1455,1457,1459,1461,1463,1465,1467],{"class":502,"line":733},[500,1422,1423],{"class":689},"  views",[500,1425,693],{"class":556},[500,1427,661],{"class":563},[500,1429,483],{"class":556},[500,1431,1432],{"class":666},"int",[500,1434,670],{"class":563},[500,1436,575],{"class":556},[500,1438,1439],{"class":510},"views",[500,1441,575],{"class":556},[500,1443,680],{"class":556},[500,1445,588],{"class":556},[500,1447,1448],{"class":689},"unsigned",[500,1450,693],{"class":556},[500,1452,722],{"class":721},[500,1454,680],{"class":556},[500,1456,772],{"class":689},[500,1458,693],{"class":556},[500,1460,722],{"class":721},[500,1462,594],{"class":556},[500,1464,727],{"class":563},[500,1466,680],{"class":556},[500,1468,1469],{"class":533}," \u002F\u002F UInt32: 0 to 4294967295\n",[500,1471,1472,1475,1477,1479,1481,1484,1486,1488,1491,1493,1495,1497,1499,1501,1503,1505,1507,1509],{"class":502,"line":785},[500,1473,1474],{"class":689},"  offsetC",[500,1476,693],{"class":556},[500,1478,661],{"class":563},[500,1480,483],{"class":556},[500,1482,1483],{"class":666},"tinyint",[500,1485,670],{"class":563},[500,1487,575],{"class":556},[500,1489,1490],{"class":510},"offset_c",[500,1492,575],{"class":556},[500,1494,680],{"class":556},[500,1496,588],{"class":556},[500,1498,813],{"class":689},[500,1500,693],{"class":556},[500,1502,722],{"class":721},[500,1504,594],{"class":556},[500,1506,727],{"class":563},[500,1508,680],{"class":556},[500,1510,1511],{"class":533}," \u002F\u002F Int8: -128 to 127\n",[500,1513,1514,1517,1519,1521,1523,1526,1528,1530,1533,1535,1537,1539,1541,1543,1545,1547,1549,1551],{"class":502,"line":826},[500,1515,1516],{"class":689},"  builtIn",[500,1518,693],{"class":556},[500,1520,661],{"class":563},[500,1522,483],{"class":556},[500,1524,1525],{"class":666},"year",[500,1527,670],{"class":563},[500,1529,575],{"class":556},[500,1531,1532],{"class":510},"built_in",[500,1534,575],{"class":556},[500,1536,680],{"class":556},[500,1538,588],{"class":556},[500,1540,813],{"class":689},[500,1542,693],{"class":556},[500,1544,722],{"class":721},[500,1546,594],{"class":556},[500,1548,727],{"class":563},[500,1550,680],{"class":556},[500,1552,1553],{"class":533}," \u002F\u002F 1901 to 2155\n",[500,1555,1556,1558,1560],{"class":502,"line":895},[500,1557,594],{"class":556},[500,1559,727],{"class":563},[500,1561,578],{"class":556},[500,1563,1564],{"class":502,"line":944},[500,1565,636],{"emptyLinePlaceholder":635},[500,1567,1568,1570,1572,1575,1577,1579,1581,1584],{"class":502,"line":953},[500,1569,648],{"class":552},[500,1571,585],{"class":651},[500,1573,1574],{"class":506}," Device",[500,1576,974],{"class":556},[500,1578,977],{"class":506},[500,1580,980],{"class":556},[500,1582,1583],{"class":563}," devices",[500,1585,986],{"class":556},[500,1587,1588],{"class":502,"line":958},[500,1589,636],{"emptyLinePlaceholder":635},[500,1591,1592,1594,1596,1599,1601,1603,1605,1608,1610,1612],{"class":502,"line":964},[500,1593,648],{"class":552},[500,1595,652],{"class":651},[500,1597,1598],{"class":563}," validateDevice ",[500,1600,658],{"class":556},[500,1602,1012],{"class":666},[500,1604,1015],{"class":556},[500,1606,1607],{"class":506},"Device",[500,1609,1021],{"class":556},[500,1611,1024],{"class":563},[500,1613,578],{"class":556},[500,1615,1616],{"class":502,"line":989},[500,1617,636],{"emptyLinePlaceholder":635},[500,1619,1620],{"class":502,"line":994},[500,1621,1622],{"class":533},"\u002F\u002F false: views is negative and offsetC is beyond Int8\n",[500,1624,1625,1627,1629,1632,1634,1637,1639],{"class":502,"line":1000},[500,1626,648],{"class":552},[500,1628,652],{"class":651},[500,1630,1631],{"class":563}," check ",[500,1633,658],{"class":556},[500,1635,1636],{"class":666}," validateDevice",[500,1638,670],{"class":563},[500,1640,1057],{"class":556},[500,1642,1643,1645,1647,1649,1652,1654],{"class":502,"line":1029},[500,1644,1376],{"class":689},[500,1646,693],{"class":556},[500,1648,570],{"class":556},[500,1650,1651],{"class":510},"SN-1",[500,1653,575],{"class":556},[500,1655,730],{"class":556},[500,1657,1658,1660,1662,1665,1668],{"class":502,"line":1034},[500,1659,1423],{"class":689},[500,1661,693],{"class":556},[500,1663,1664],{"class":556}," -",[500,1666,1667],{"class":766},"1",[500,1669,730],{"class":556},[500,1671,1672,1674,1676,1679],{"class":502,"line":1049},[500,1673,1474],{"class":689},[500,1675,693],{"class":556},[500,1677,1678],{"class":766}," 200",[500,1680,730],{"class":556},[500,1682,1683,1685,1687,1690],{"class":502,"line":1060},[500,1684,1516],{"class":689},[500,1686,693],{"class":556},[500,1688,1689],{"class":766}," 2020",[500,1691,730],{"class":556},[500,1693,1694,1696,1698],{"class":502,"line":1077},[500,1695,594],{"class":556},[500,1697,727],{"class":563},[500,1699,578],{"class":556},[491,1701,1703],{"className":543,"code":1702,"filename":463,"language":545,"meta":496,"style":496},"import * as DZ from '@mionjs\u002Fdrizzle-orm-sqlite-core';\nimport type {InferInsertModel, InferSelectModel} from '@mionjs\u002Fdrizzle-orm';\nimport {createValidateFn} from '@mionjs\u002Frun-types';\n\nexport const notes = DZ.sqliteTable('notes', {\n  id: DZ.integer('id', {primaryKey: true}),\n  title: DZ.text('title', {length: 80, notNull: true}),\n  rating: DZ.real('rating', {notNull: true}),\n  createdAt: DZ.integer('created_at', {mode: 'timestamp', notNull: true}), \u002F\u002F a real Date\n});\n\nexport type NewNote = InferInsertModel\u003Ctypeof notes>;\nexport type Note = InferSelectModel\u003Ctypeof notes>;\n\nexport const validateNote = createValidateFn\u003CNote>();\n\n\u002F\u002F false: title exceeds 80 characters\nexport const check = validateNote({\n  id: 1,\n  title: 'x'.repeat(81),\n  rating: 4.5,\n  createdAt: new Date(),\n});\n",[446,1704,1705,1725,1752,1772,1776,1807,1843,1890,1929,1981,1989,1993,2014,2033,2037,2061,2065,2070,2087,2098,2123,2134,2148],{"__ignoreMap":496},[500,1706,1707,1709,1711,1713,1715,1717,1719,1721,1723],{"class":502,"line":503},[500,1708,553],{"class":552},[500,1710,557],{"class":556},[500,1712,560],{"class":552},[500,1714,564],{"class":563},[500,1716,567],{"class":552},[500,1718,570],{"class":556},[500,1720,468],{"class":510},[500,1722,575],{"class":556},[500,1724,578],{"class":556},[500,1726,1727,1729,1731,1733,1736,1738,1740,1742,1744,1746,1748,1750],{"class":502,"line":523},[500,1728,553],{"class":552},[500,1730,585],{"class":552},[500,1732,588],{"class":556},[500,1734,1735],{"class":563},"InferInsertModel",[500,1737,680],{"class":556},[500,1739,977],{"class":563},[500,1741,594],{"class":556},[500,1743,597],{"class":552},[500,1745,570],{"class":556},[500,1747,602],{"class":510},[500,1749,575],{"class":556},[500,1751,578],{"class":556},[500,1753,1754,1756,1758,1760,1762,1764,1766,1768,1770],{"class":502,"line":609},[500,1755,553],{"class":552},[500,1757,588],{"class":556},[500,1759,616],{"class":563},[500,1761,594],{"class":556},[500,1763,597],{"class":552},[500,1765,570],{"class":556},[500,1767,625],{"class":510},[500,1769,575],{"class":556},[500,1771,578],{"class":556},[500,1773,1774],{"class":502,"line":632},[500,1775,636],{"emptyLinePlaceholder":635},[500,1777,1778,1780,1782,1785,1787,1789,1791,1794,1796,1798,1801,1803,1805],{"class":502,"line":639},[500,1779,648],{"class":552},[500,1781,652],{"class":651},[500,1783,1784],{"class":563}," notes ",[500,1786,658],{"class":556},[500,1788,661],{"class":563},[500,1790,483],{"class":556},[500,1792,1793],{"class":666},"sqliteTable",[500,1795,670],{"class":563},[500,1797,575],{"class":556},[500,1799,1800],{"class":510},"notes",[500,1802,575],{"class":556},[500,1804,680],{"class":556},[500,1806,683],{"class":556},[500,1808,1809,1811,1813,1815,1817,1819,1821,1823,1825,1827,1829,1831,1833,1835,1837,1839,1841],{"class":502,"line":645},[500,1810,690],{"class":689},[500,1812,693],{"class":556},[500,1814,661],{"class":563},[500,1816,483],{"class":556},[500,1818,797],{"class":666},[500,1820,670],{"class":563},[500,1822,575],{"class":556},[500,1824,707],{"class":510},[500,1826,575],{"class":556},[500,1828,680],{"class":556},[500,1830,588],{"class":556},[500,1832,716],{"class":689},[500,1834,693],{"class":556},[500,1836,722],{"class":721},[500,1838,594],{"class":556},[500,1840,727],{"class":563},[500,1842,730],{"class":556},[500,1844,1845,1848,1850,1852,1854,1856,1858,1860,1863,1865,1867,1869,1871,1873,1876,1878,1880,1882,1884,1886,1888],{"class":502,"line":686},[500,1846,1847],{"class":689},"  title",[500,1849,693],{"class":556},[500,1851,661],{"class":563},[500,1853,483],{"class":556},[500,1855,838],{"class":666},[500,1857,670],{"class":563},[500,1859,575],{"class":556},[500,1861,1862],{"class":510},"title",[500,1864,575],{"class":556},[500,1866,680],{"class":556},[500,1868,588],{"class":556},[500,1870,761],{"class":689},[500,1872,693],{"class":556},[500,1874,1875],{"class":766}," 80",[500,1877,680],{"class":556},[500,1879,772],{"class":689},[500,1881,693],{"class":556},[500,1883,722],{"class":721},[500,1885,594],{"class":556},[500,1887,727],{"class":563},[500,1889,730],{"class":556},[500,1891,1892,1895,1897,1899,1901,1904,1906,1908,1911,1913,1915,1917,1919,1921,1923,1925,1927],{"class":502,"line":733},[500,1893,1894],{"class":689},"  rating",[500,1896,693],{"class":556},[500,1898,661],{"class":563},[500,1900,483],{"class":556},[500,1902,1903],{"class":666},"real",[500,1905,670],{"class":563},[500,1907,575],{"class":556},[500,1909,1910],{"class":510},"rating",[500,1912,575],{"class":556},[500,1914,680],{"class":556},[500,1916,588],{"class":556},[500,1918,813],{"class":689},[500,1920,693],{"class":556},[500,1922,722],{"class":721},[500,1924,594],{"class":556},[500,1926,727],{"class":563},[500,1928,730],{"class":556},[500,1930,1931,1933,1935,1937,1939,1941,1943,1945,1947,1949,1951,1953,1956,1958,1960,1962,1964,1966,1968,1970,1972,1974,1976,1978],{"class":502,"line":785},[500,1932,898],{"class":689},[500,1934,693],{"class":556},[500,1936,661],{"class":563},[500,1938,483],{"class":556},[500,1940,797],{"class":666},[500,1942,670],{"class":563},[500,1944,575],{"class":556},[500,1946,914],{"class":510},[500,1948,575],{"class":556},[500,1950,680],{"class":556},[500,1952,588],{"class":556},[500,1954,1955],{"class":689},"mode",[500,1957,693],{"class":556},[500,1959,570],{"class":556},[500,1961,907],{"class":510},[500,1963,575],{"class":556},[500,1965,680],{"class":556},[500,1967,772],{"class":689},[500,1969,693],{"class":556},[500,1971,722],{"class":721},[500,1973,594],{"class":556},[500,1975,727],{"class":563},[500,1977,680],{"class":556},[500,1979,1980],{"class":533}," \u002F\u002F a real Date\n",[500,1982,1983,1985,1987],{"class":502,"line":826},[500,1984,594],{"class":556},[500,1986,727],{"class":563},[500,1988,578],{"class":556},[500,1990,1991],{"class":502,"line":895},[500,1992,636],{"emptyLinePlaceholder":635},[500,1994,1995,1997,1999,2002,2004,2007,2009,2012],{"class":502,"line":944},[500,1996,648],{"class":552},[500,1998,585],{"class":651},[500,2000,2001],{"class":506}," NewNote",[500,2003,974],{"class":556},[500,2005,2006],{"class":506}," InferInsertModel",[500,2008,980],{"class":556},[500,2010,2011],{"class":563}," notes",[500,2013,986],{"class":556},[500,2015,2016,2018,2020,2023,2025,2027,2029,2031],{"class":502,"line":953},[500,2017,648],{"class":552},[500,2019,585],{"class":651},[500,2021,2022],{"class":506}," Note",[500,2024,974],{"class":556},[500,2026,977],{"class":506},[500,2028,980],{"class":556},[500,2030,2011],{"class":563},[500,2032,986],{"class":556},[500,2034,2035],{"class":502,"line":958},[500,2036,636],{"emptyLinePlaceholder":635},[500,2038,2039,2041,2043,2046,2048,2050,2052,2055,2057,2059],{"class":502,"line":964},[500,2040,648],{"class":552},[500,2042,652],{"class":651},[500,2044,2045],{"class":563}," validateNote ",[500,2047,658],{"class":556},[500,2049,1012],{"class":666},[500,2051,1015],{"class":556},[500,2053,2054],{"class":506},"Note",[500,2056,1021],{"class":556},[500,2058,1024],{"class":563},[500,2060,578],{"class":556},[500,2062,2063],{"class":502,"line":989},[500,2064,636],{"emptyLinePlaceholder":635},[500,2066,2067],{"class":502,"line":994},[500,2068,2069],{"class":533},"\u002F\u002F false: title exceeds 80 characters\n",[500,2071,2072,2074,2076,2078,2080,2083,2085],{"class":502,"line":1000},[500,2073,648],{"class":552},[500,2075,652],{"class":651},[500,2077,1631],{"class":563},[500,2079,658],{"class":556},[500,2081,2082],{"class":666}," validateNote",[500,2084,670],{"class":563},[500,2086,1057],{"class":556},[500,2088,2089,2091,2093,2096],{"class":502,"line":1029},[500,2090,690],{"class":689},[500,2092,693],{"class":556},[500,2094,2095],{"class":766}," 1",[500,2097,730],{"class":556},[500,2099,2100,2102,2104,2106,2108,2110,2112,2114,2116,2119,2121],{"class":502,"line":1034},[500,2101,1847],{"class":689},[500,2103,693],{"class":556},[500,2105,570],{"class":556},[500,2107,1188],{"class":510},[500,2109,575],{"class":556},[500,2111,483],{"class":556},[500,2113,1195],{"class":666},[500,2115,670],{"class":563},[500,2117,2118],{"class":766},"81",[500,2120,727],{"class":563},[500,2122,730],{"class":556},[500,2124,2125,2127,2129,2132],{"class":502,"line":1049},[500,2126,1894],{"class":689},[500,2128,693],{"class":556},[500,2130,2131],{"class":766}," 4.5",[500,2133,730],{"class":556},[500,2135,2136,2138,2140,2142,2144,2146],{"class":502,"line":1060},[500,2137,898],{"class":689},[500,2139,693],{"class":556},[500,2141,1131],{"class":556},[500,2143,1134],{"class":666},[500,2145,1024],{"class":563},[500,2147,730],{"class":556},[500,2149,2150,2152,2154],{"class":502,"line":1077},[500,2151,594],{"class":556},[500,2153,727],{"class":563},[500,2155,578],{"class":556},[405,2157,2158,2159,483],{},"To type mion routes with these models, see ",[412,2160,60],{"href":61},[2162,2163,2165],"h2",{"id":2164},"column-settings","Column Settings",[405,2167,2168,2169,2172],{},"A column builder takes the database column name, then one object with drizzle's config and its modifiers. A modifier with no arguments is ",[446,2170,2171],{},"true",", one with arguments is its argument list.",[491,2174,2176],{"className":543,"code":2175,"language":545,"meta":496,"style":496},"\u002F\u002F drizzle\nvarchar('name', {length: 100}).notNull().default('anon');\n\u002F\u002F mion\nvarchar('name', {length: 100, notNull: true, default: ['anon']});\n",[446,2177,2178,2183,2233,2238],{"__ignoreMap":496},[500,2179,2180],{"class":502,"line":503},[500,2181,2182],{"class":533},"\u002F\u002F drizzle\n",[500,2184,2185,2187,2189,2191,2193,2195,2197,2199,2201,2203,2205,2207,2209,2211,2213,2215,2217,2220,2222,2224,2227,2229,2231],{"class":502,"line":523},[500,2186,745],{"class":666},[500,2188,670],{"class":563},[500,2190,575],{"class":556},[500,2192,752],{"class":510},[500,2194,575],{"class":556},[500,2196,680],{"class":556},[500,2198,588],{"class":556},[500,2200,761],{"class":689},[500,2202,693],{"class":556},[500,2204,767],{"class":766},[500,2206,594],{"class":556},[500,2208,727],{"class":563},[500,2210,483],{"class":556},[500,2212,813],{"class":666},[500,2214,1024],{"class":563},[500,2216,483],{"class":556},[500,2218,2219],{"class":666},"default",[500,2221,670],{"class":563},[500,2223,575],{"class":556},[500,2225,2226],{"class":510},"anon",[500,2228,575],{"class":556},[500,2230,727],{"class":563},[500,2232,578],{"class":556},[500,2234,2235],{"class":502,"line":609},[500,2236,2237],{"class":533},"\u002F\u002F mion\n",[500,2239,2240,2242,2244,2246,2248,2250,2252,2254,2256,2258,2260,2262,2264,2266,2268,2270,2273,2275,2277,2279,2281,2283,2285,2287,2289],{"class":502,"line":632},[500,2241,745],{"class":666},[500,2243,670],{"class":563},[500,2245,575],{"class":556},[500,2247,752],{"class":510},[500,2249,575],{"class":556},[500,2251,680],{"class":556},[500,2253,588],{"class":556},[500,2255,761],{"class":689},[500,2257,693],{"class":556},[500,2259,767],{"class":766},[500,2261,680],{"class":556},[500,2263,772],{"class":689},[500,2265,693],{"class":556},[500,2267,722],{"class":721},[500,2269,680],{"class":556},[500,2271,2272],{"class":689}," default",[500,2274,693],{"class":556},[500,2276,859],{"class":563},[500,2278,575],{"class":556},[500,2280,2226],{"class":510},[500,2282,575],{"class":556},[500,2284,878],{"class":563},[500,2286,594],{"class":556},[500,2288,727],{"class":563},[500,2290,578],{"class":556},[2292,2293,2294,2295,483],"tip",{},"Leave out the database name when it matches the key: ",[446,2296,2297],{},"name: varchar({length: 100})",[2162,2299,2301],{"id":2300},"writing-a-table-as-a-type","Writing a Table as a Type",[405,2303,2304,2305,2308,2309,2312,2313,2316],{},"Each column builder has a column type of the same name, first letter uppercased, that takes the same settings object: ",[446,2306,2307],{},"Varchar\u003C{length: 100; notNull: true}>",". A builder table's ",[446,2310,2311],{},"typeof users"," equals the same table written by hand, so you can mix both forms per table. ",[446,2314,2315],{},"mion convert"," translates a table between the two forms in either direction.",[539,2318,2319,2931,3375],{},[491,2320,2322],{"className":543,"code":2321,"filename":442,"language":545,"meta":496,"style":496},"import * as DZ from '@mionjs\u002Fdrizzle-orm-pg-core';\nimport type {InferSelectModel} from '@mionjs\u002Fdrizzle-orm';\nimport {createValidateFn} from '@mionjs\u002Frun-types';\n\n\u002F\u002F nothing runs where the table is declared\nexport type UsersTable = DZ.PgTable\u003C\n  'users',\n  {\n    id: DZ.Uuid\u003C{primaryKey: true}>;\n    name: DZ.Varchar\u003C{length: 100; notNull: true}>;\n    age: DZ.Integer\u003C{notNull: true}>;\n    role: DZ.Text\u003C{enum: ['admin', 'user']; notNull: true}>;\n    createdAt: DZ.Timestamp\u003C{defaultNow: true; notNull: true}>;\n  },\n  [],\n  {createdAt: 'created_at'}\n>; \u002F\u002F database names that differ from the key\n\n\u002F\u002F the same object pgTable returns; the build resolves the type, nothing is repeated\nexport const users = DZ.tableFromType\u003CUsersTable>();\n\n\u002F\u002F identical to the builders model, formats included\nexport type User = InferSelectModel\u003CUsersTable>;\n\n\u002F\u002F checks every captured param, with no extra runtime checks\nexport const validateUser = createValidateFn\u003CUser>();\n\nexport const checks = [\n  validateUser({\n    id: 'not-a-uuid',\n    name: 'ann',\n    age: 30,\n    role: 'admin',\n    createdAt: new Date(),\n  }), \u002F\u002F false\n  validateUser({\n    id: '793aff46-42ac-4372-b7fa-c48ba48ed94f',\n    name: 'x'.repeat(101), \u002F\u002F false: maxLength 100 is IN the compiled function\n    age: 30,\n    role: 'admin',\n    createdAt: new Date(),\n  }),\n];\n",[446,2323,2324,2344,2366,2386,2390,2395,2416,2427,2432,2457,2489,2512,2559,2590,2595,2602,2621,2629,2633,2638,2666,2670,2675,2693,2697,2701,2723,2727,2739,2747,2761,2775,2785,2799,2813,2823,2832,2847,2874,2885,2900,2915,2924],{"__ignoreMap":496},[500,2325,2326,2328,2330,2332,2334,2336,2338,2340,2342],{"class":502,"line":503},[500,2327,553],{"class":552},[500,2329,557],{"class":556},[500,2331,560],{"class":552},[500,2333,564],{"class":563},[500,2335,567],{"class":552},[500,2337,570],{"class":556},[500,2339,448],{"class":510},[500,2341,575],{"class":556},[500,2343,578],{"class":556},[500,2345,2346,2348,2350,2352,2354,2356,2358,2360,2362,2364],{"class":502,"line":523},[500,2347,553],{"class":552},[500,2349,585],{"class":552},[500,2351,588],{"class":556},[500,2353,591],{"class":563},[500,2355,594],{"class":556},[500,2357,597],{"class":552},[500,2359,570],{"class":556},[500,2361,602],{"class":510},[500,2363,575],{"class":556},[500,2365,578],{"class":556},[500,2367,2368,2370,2372,2374,2376,2378,2380,2382,2384],{"class":502,"line":609},[500,2369,553],{"class":552},[500,2371,588],{"class":556},[500,2373,616],{"class":563},[500,2375,594],{"class":556},[500,2377,597],{"class":552},[500,2379,570],{"class":556},[500,2381,625],{"class":510},[500,2383,575],{"class":556},[500,2385,578],{"class":556},[500,2387,2388],{"class":502,"line":632},[500,2389,636],{"emptyLinePlaceholder":635},[500,2391,2392],{"class":502,"line":639},[500,2393,2394],{"class":533},"\u002F\u002F nothing runs where the table is declared\n",[500,2396,2397,2399,2401,2404,2406,2408,2410,2413],{"class":502,"line":645},[500,2398,648],{"class":552},[500,2400,585],{"class":651},[500,2402,2403],{"class":506}," UsersTable",[500,2405,974],{"class":556},[500,2407,661],{"class":506},[500,2409,483],{"class":556},[500,2411,2412],{"class":506},"PgTable",[500,2414,2415],{"class":556},"\u003C\n",[500,2417,2418,2421,2423,2425],{"class":502,"line":686},[500,2419,2420],{"class":556},"  '",[500,2422,675],{"class":510},[500,2424,575],{"class":556},[500,2426,730],{"class":556},[500,2428,2429],{"class":502,"line":733},[500,2430,2431],{"class":556},"  {\n",[500,2433,2434,2436,2438,2440,2442,2445,2448,2450,2452,2454],{"class":502,"line":785},[500,2435,1063],{"class":689},[500,2437,693],{"class":556},[500,2439,661],{"class":506},[500,2441,483],{"class":556},[500,2443,2444],{"class":506},"Uuid",[500,2446,2447],{"class":556},"\u003C{",[500,2449,716],{"class":689},[500,2451,693],{"class":556},[500,2453,722],{"class":506},[500,2455,2456],{"class":556},"}>;\n",[500,2458,2459,2461,2463,2465,2467,2470,2472,2474,2476,2478,2481,2483,2485,2487],{"class":502,"line":826},[500,2460,1080],{"class":689},[500,2462,693],{"class":556},[500,2464,661],{"class":506},[500,2466,483],{"class":556},[500,2468,2469],{"class":506},"Varchar",[500,2471,2447],{"class":556},[500,2473,761],{"class":689},[500,2475,693],{"class":556},[500,2477,767],{"class":766},[500,2479,2480],{"class":556},";",[500,2482,772],{"class":689},[500,2484,693],{"class":556},[500,2486,722],{"class":506},[500,2488,2456],{"class":556},[500,2490,2491,2493,2495,2497,2499,2502,2504,2506,2508,2510],{"class":502,"line":895},[500,2492,1097],{"class":689},[500,2494,693],{"class":556},[500,2496,661],{"class":506},[500,2498,483],{"class":556},[500,2500,2501],{"class":506},"Integer",[500,2503,2447],{"class":556},[500,2505,813],{"class":689},[500,2507,693],{"class":556},[500,2509,722],{"class":506},[500,2511,2456],{"class":556},[500,2513,2514,2516,2518,2520,2522,2525,2527,2529,2531,2533,2535,2537,2539,2541,2543,2545,2547,2549,2551,2553,2555,2557],{"class":502,"line":944},[500,2515,1110],{"class":689},[500,2517,693],{"class":556},[500,2519,661],{"class":506},[500,2521,483],{"class":556},[500,2523,2524],{"class":506},"Text",[500,2526,2447],{"class":556},[500,2528,854],{"class":689},[500,2530,693],{"class":556},[500,2532,859],{"class":563},[500,2534,575],{"class":556},[500,2536,864],{"class":510},[500,2538,575],{"class":556},[500,2540,680],{"class":556},[500,2542,570],{"class":556},[500,2544,873],{"class":510},[500,2546,575],{"class":556},[500,2548,878],{"class":563},[500,2550,2480],{"class":556},[500,2552,772],{"class":689},[500,2554,693],{"class":556},[500,2556,722],{"class":506},[500,2558,2456],{"class":556},[500,2560,2561,2563,2565,2567,2569,2572,2574,2576,2578,2580,2582,2584,2586,2588],{"class":502,"line":953},[500,2562,1126],{"class":689},[500,2564,693],{"class":556},[500,2566,661],{"class":506},[500,2568,483],{"class":556},[500,2570,2571],{"class":506},"Timestamp",[500,2573,2447],{"class":556},[500,2575,923],{"class":689},[500,2577,693],{"class":556},[500,2579,722],{"class":506},[500,2581,2480],{"class":556},[500,2583,772],{"class":689},[500,2585,693],{"class":556},[500,2587,722],{"class":506},[500,2589,2456],{"class":556},[500,2591,2592],{"class":502,"line":958},[500,2593,2594],{"class":556},"  },\n",[500,2596,2597,2600],{"class":502,"line":964},[500,2598,2599],{"class":563},"  []",[500,2601,730],{"class":556},[500,2603,2604,2607,2610,2612,2614,2616,2618],{"class":502,"line":989},[500,2605,2606],{"class":556},"  {",[500,2608,2609],{"class":689},"createdAt",[500,2611,693],{"class":556},[500,2613,570],{"class":556},[500,2615,914],{"class":510},[500,2617,575],{"class":556},[500,2619,2620],{"class":556},"}\n",[500,2622,2623,2626],{"class":502,"line":994},[500,2624,2625],{"class":556},">;",[500,2627,2628],{"class":533}," \u002F\u002F database names that differ from the key\n",[500,2630,2631],{"class":502,"line":1000},[500,2632,636],{"emptyLinePlaceholder":635},[500,2634,2635],{"class":502,"line":1029},[500,2636,2637],{"class":533},"\u002F\u002F the same object pgTable returns; the build resolves the type, nothing is repeated\n",[500,2639,2640,2642,2644,2646,2648,2650,2652,2655,2657,2660,2662,2664],{"class":502,"line":1034},[500,2641,648],{"class":552},[500,2643,652],{"class":651},[500,2645,655],{"class":563},[500,2647,658],{"class":556},[500,2649,661],{"class":563},[500,2651,483],{"class":556},[500,2653,2654],{"class":666},"tableFromType",[500,2656,1015],{"class":556},[500,2658,2659],{"class":506},"UsersTable",[500,2661,1021],{"class":556},[500,2663,1024],{"class":563},[500,2665,578],{"class":556},[500,2667,2668],{"class":502,"line":1049},[500,2669,636],{"emptyLinePlaceholder":635},[500,2671,2672],{"class":502,"line":1060},[500,2673,2674],{"class":533},"\u002F\u002F identical to the builders model, formats included\n",[500,2676,2677,2679,2681,2683,2685,2687,2689,2691],{"class":502,"line":1077},[500,2678,648],{"class":552},[500,2680,585],{"class":651},[500,2682,971],{"class":506},[500,2684,974],{"class":556},[500,2686,977],{"class":506},[500,2688,1015],{"class":556},[500,2690,2659],{"class":506},[500,2692,986],{"class":556},[500,2694,2695],{"class":502,"line":1094},[500,2696,636],{"emptyLinePlaceholder":635},[500,2698,2699],{"class":502,"line":1107},[500,2700,997],{"class":533},[500,2702,2703,2705,2707,2709,2711,2713,2715,2717,2719,2721],{"class":502,"line":1123},[500,2704,648],{"class":552},[500,2706,652],{"class":651},[500,2708,1007],{"class":563},[500,2710,658],{"class":556},[500,2712,1012],{"class":666},[500,2714,1015],{"class":556},[500,2716,1018],{"class":506},[500,2718,1021],{"class":556},[500,2720,1024],{"class":563},[500,2722,578],{"class":556},[500,2724,2725],{"class":502,"line":1141},[500,2726,636],{"emptyLinePlaceholder":635},[500,2728,2729,2731,2733,2735,2737],{"class":502,"line":1154},[500,2730,648],{"class":552},[500,2732,652],{"class":651},[500,2734,1041],{"class":563},[500,2736,658],{"class":556},[500,2738,1046],{"class":563},[500,2740,2741,2743,2745],{"class":502,"line":1163},[500,2742,1052],{"class":666},[500,2744,670],{"class":563},[500,2746,1057],{"class":556},[500,2748,2749,2751,2753,2755,2757,2759],{"class":502,"line":1179},[500,2750,1063],{"class":689},[500,2752,693],{"class":556},[500,2754,570],{"class":556},[500,2756,1070],{"class":510},[500,2758,575],{"class":556},[500,2760,730],{"class":556},[500,2762,2763,2765,2767,2769,2771,2773],{"class":502,"line":1210},[500,2764,1080],{"class":689},[500,2766,693],{"class":556},[500,2768,570],{"class":556},[500,2770,1087],{"class":510},[500,2772,575],{"class":556},[500,2774,730],{"class":556},[500,2776,2777,2779,2781,2783],{"class":502,"line":1221},[500,2778,1097],{"class":689},[500,2780,693],{"class":556},[500,2782,1102],{"class":766},[500,2784,730],{"class":556},[500,2786,2787,2789,2791,2793,2795,2797],{"class":502,"line":1236},[500,2788,1110],{"class":689},[500,2790,693],{"class":556},[500,2792,570],{"class":556},[500,2794,864],{"class":510},[500,2796,575],{"class":556},[500,2798,730],{"class":556},[500,2800,2801,2803,2805,2807,2809,2811],{"class":502,"line":1251},[500,2802,1126],{"class":689},[500,2804,693],{"class":556},[500,2806,1131],{"class":556},[500,2808,1134],{"class":666},[500,2810,1024],{"class":563},[500,2812,730],{"class":556},[500,2814,2815,2817,2819,2821],{"class":502,"line":1260},[500,2816,1144],{"class":556},[500,2818,727],{"class":563},[500,2820,680],{"class":556},[500,2822,1151],{"class":533},[500,2824,2826,2828,2830],{"class":502,"line":2825},36,[500,2827,1052],{"class":666},[500,2829,670],{"class":563},[500,2831,1057],{"class":556},[500,2833,2835,2837,2839,2841,2843,2845],{"class":502,"line":2834},37,[500,2836,1063],{"class":689},[500,2838,693],{"class":556},[500,2840,570],{"class":556},[500,2842,1172],{"class":510},[500,2844,575],{"class":556},[500,2846,730],{"class":556},[500,2848,2850,2852,2854,2856,2858,2860,2862,2864,2866,2868,2870,2872],{"class":502,"line":2849},38,[500,2851,1080],{"class":689},[500,2853,693],{"class":556},[500,2855,570],{"class":556},[500,2857,1188],{"class":510},[500,2859,575],{"class":556},[500,2861,483],{"class":556},[500,2863,1195],{"class":666},[500,2865,670],{"class":563},[500,2867,1200],{"class":766},[500,2869,727],{"class":563},[500,2871,680],{"class":556},[500,2873,1207],{"class":533},[500,2875,2877,2879,2881,2883],{"class":502,"line":2876},39,[500,2878,1097],{"class":689},[500,2880,693],{"class":556},[500,2882,1102],{"class":766},[500,2884,730],{"class":556},[500,2886,2888,2890,2892,2894,2896,2898],{"class":502,"line":2887},40,[500,2889,1110],{"class":689},[500,2891,693],{"class":556},[500,2893,570],{"class":556},[500,2895,864],{"class":510},[500,2897,575],{"class":556},[500,2899,730],{"class":556},[500,2901,2903,2905,2907,2909,2911,2913],{"class":502,"line":2902},41,[500,2904,1126],{"class":689},[500,2906,693],{"class":556},[500,2908,1131],{"class":556},[500,2910,1134],{"class":666},[500,2912,1024],{"class":563},[500,2914,730],{"class":556},[500,2916,2918,2920,2922],{"class":502,"line":2917},42,[500,2919,1144],{"class":556},[500,2921,727],{"class":563},[500,2923,730],{"class":556},[500,2925,2927,2929],{"class":502,"line":2926},43,[500,2928,878],{"class":563},[500,2930,578],{"class":556},[491,2932,2934],{"className":543,"code":2933,"filename":453,"language":545,"meta":496,"style":496},"import * as DZ from '@mionjs\u002Fdrizzle-orm-mysql-core';\nimport type {InferSelectModel} from '@mionjs\u002Fdrizzle-orm';\nimport {createValidateFn} from '@mionjs\u002Frun-types';\n\nexport type DevicesTable = DZ.MysqlTable\u003C\n  'devices',\n  {\n    serialNo: DZ.Varchar\u003C{length: 12; notNull: true}>;\n    views: DZ.Int\u003C{unsigned: true; notNull: true}>; \u002F\u002F UInt32: 0 to 4294967295\n    offsetC: DZ.Tinyint\u003C{notNull: true}>; \u002F\u002F Int8: -128 to 127\n    builtIn: DZ.Year\u003C{notNull: true}>; \u002F\u002F 1901 to 2155\n  },\n  [],\n  {serialNo: 'serial_no'; offsetC: 'offset_c'; builtIn: 'built_in'}\n>; \u002F\u002F database names that differ from the key\n\n\u002F\u002F the recorded table, ready for toDrizzle\nexport const devices = DZ.tableFromType\u003CDevicesTable>();\n\nexport type Device = InferSelectModel\u003CDevicesTable>;\n\nexport const validateDevice = createValidateFn\u003CDevice>();\n\n\u002F\u002F false: views is negative and offsetC is beyond Int8\nexport const check = validateDevice({\n  serialNo: 'SN-1',\n  views: -1,\n  offsetC: 200,\n  builtIn: 2020,\n});\n",[446,2935,2936,2956,2978,2998,3002,3022,3032,3036,3067,3102,3128,3154,3158,3164,3207,3213,3217,3222,3249,3253,3271,3275,3297,3301,3305,3321,3335,3347,3357,3367],{"__ignoreMap":496},[500,2937,2938,2940,2942,2944,2946,2948,2950,2952,2954],{"class":502,"line":503},[500,2939,553],{"class":552},[500,2941,557],{"class":556},[500,2943,560],{"class":552},[500,2945,564],{"class":563},[500,2947,567],{"class":552},[500,2949,570],{"class":556},[500,2951,458],{"class":510},[500,2953,575],{"class":556},[500,2955,578],{"class":556},[500,2957,2958,2960,2962,2964,2966,2968,2970,2972,2974,2976],{"class":502,"line":523},[500,2959,553],{"class":552},[500,2961,585],{"class":552},[500,2963,588],{"class":556},[500,2965,591],{"class":563},[500,2967,594],{"class":556},[500,2969,597],{"class":552},[500,2971,570],{"class":556},[500,2973,602],{"class":510},[500,2975,575],{"class":556},[500,2977,578],{"class":556},[500,2979,2980,2982,2984,2986,2988,2990,2992,2994,2996],{"class":502,"line":609},[500,2981,553],{"class":552},[500,2983,588],{"class":556},[500,2985,616],{"class":563},[500,2987,594],{"class":556},[500,2989,597],{"class":552},[500,2991,570],{"class":556},[500,2993,625],{"class":510},[500,2995,575],{"class":556},[500,2997,578],{"class":556},[500,2999,3000],{"class":502,"line":632},[500,3001,636],{"emptyLinePlaceholder":635},[500,3003,3004,3006,3008,3011,3013,3015,3017,3020],{"class":502,"line":639},[500,3005,648],{"class":552},[500,3007,585],{"class":651},[500,3009,3010],{"class":506}," DevicesTable",[500,3012,974],{"class":556},[500,3014,661],{"class":506},[500,3016,483],{"class":556},[500,3018,3019],{"class":506},"MysqlTable",[500,3021,2415],{"class":556},[500,3023,3024,3026,3028,3030],{"class":502,"line":645},[500,3025,2420],{"class":556},[500,3027,1365],{"class":510},[500,3029,575],{"class":556},[500,3031,730],{"class":556},[500,3033,3034],{"class":502,"line":686},[500,3035,2431],{"class":556},[500,3037,3038,3041,3043,3045,3047,3049,3051,3053,3055,3057,3059,3061,3063,3065],{"class":502,"line":733},[500,3039,3040],{"class":689},"    serialNo",[500,3042,693],{"class":556},[500,3044,661],{"class":506},[500,3046,483],{"class":556},[500,3048,2469],{"class":506},[500,3050,2447],{"class":556},[500,3052,761],{"class":689},[500,3054,693],{"class":556},[500,3056,1404],{"class":766},[500,3058,2480],{"class":556},[500,3060,772],{"class":689},[500,3062,693],{"class":556},[500,3064,722],{"class":506},[500,3066,2456],{"class":556},[500,3068,3069,3072,3074,3076,3078,3081,3083,3085,3087,3089,3091,3093,3095,3097,3100],{"class":502,"line":785},[500,3070,3071],{"class":689},"    views",[500,3073,693],{"class":556},[500,3075,661],{"class":506},[500,3077,483],{"class":556},[500,3079,3080],{"class":506},"Int",[500,3082,2447],{"class":556},[500,3084,1448],{"class":689},[500,3086,693],{"class":556},[500,3088,722],{"class":506},[500,3090,2480],{"class":556},[500,3092,772],{"class":689},[500,3094,693],{"class":556},[500,3096,722],{"class":506},[500,3098,3099],{"class":556},"}>;",[500,3101,1469],{"class":533},[500,3103,3104,3107,3109,3111,3113,3116,3118,3120,3122,3124,3126],{"class":502,"line":826},[500,3105,3106],{"class":689},"    offsetC",[500,3108,693],{"class":556},[500,3110,661],{"class":506},[500,3112,483],{"class":556},[500,3114,3115],{"class":506},"Tinyint",[500,3117,2447],{"class":556},[500,3119,813],{"class":689},[500,3121,693],{"class":556},[500,3123,722],{"class":506},[500,3125,3099],{"class":556},[500,3127,1511],{"class":533},[500,3129,3130,3133,3135,3137,3139,3142,3144,3146,3148,3150,3152],{"class":502,"line":895},[500,3131,3132],{"class":689},"    builtIn",[500,3134,693],{"class":556},[500,3136,661],{"class":506},[500,3138,483],{"class":556},[500,3140,3141],{"class":506},"Year",[500,3143,2447],{"class":556},[500,3145,813],{"class":689},[500,3147,693],{"class":556},[500,3149,722],{"class":506},[500,3151,3099],{"class":556},[500,3153,1553],{"class":533},[500,3155,3156],{"class":502,"line":944},[500,3157,2594],{"class":556},[500,3159,3160,3162],{"class":502,"line":953},[500,3161,2599],{"class":563},[500,3163,730],{"class":556},[500,3165,3166,3168,3171,3173,3175,3177,3179,3181,3184,3186,3188,3190,3192,3194,3197,3199,3201,3203,3205],{"class":502,"line":958},[500,3167,2606],{"class":556},[500,3169,3170],{"class":689},"serialNo",[500,3172,693],{"class":556},[500,3174,570],{"class":556},[500,3176,1391],{"class":510},[500,3178,575],{"class":556},[500,3180,2480],{"class":556},[500,3182,3183],{"class":689}," offsetC",[500,3185,693],{"class":556},[500,3187,570],{"class":556},[500,3189,1490],{"class":510},[500,3191,575],{"class":556},[500,3193,2480],{"class":556},[500,3195,3196],{"class":689}," builtIn",[500,3198,693],{"class":556},[500,3200,570],{"class":556},[500,3202,1532],{"class":510},[500,3204,575],{"class":556},[500,3206,2620],{"class":556},[500,3208,3209,3211],{"class":502,"line":964},[500,3210,2625],{"class":556},[500,3212,2628],{"class":533},[500,3214,3215],{"class":502,"line":989},[500,3216,636],{"emptyLinePlaceholder":635},[500,3218,3219],{"class":502,"line":994},[500,3220,3221],{"class":533},"\u002F\u002F the recorded table, ready for toDrizzle\n",[500,3223,3224,3226,3228,3230,3232,3234,3236,3238,3240,3243,3245,3247],{"class":502,"line":1000},[500,3225,648],{"class":552},[500,3227,652],{"class":651},[500,3229,1349],{"class":563},[500,3231,658],{"class":556},[500,3233,661],{"class":563},[500,3235,483],{"class":556},[500,3237,2654],{"class":666},[500,3239,1015],{"class":556},[500,3241,3242],{"class":506},"DevicesTable",[500,3244,1021],{"class":556},[500,3246,1024],{"class":563},[500,3248,578],{"class":556},[500,3250,3251],{"class":502,"line":1029},[500,3252,636],{"emptyLinePlaceholder":635},[500,3254,3255,3257,3259,3261,3263,3265,3267,3269],{"class":502,"line":1034},[500,3256,648],{"class":552},[500,3258,585],{"class":651},[500,3260,1574],{"class":506},[500,3262,974],{"class":556},[500,3264,977],{"class":506},[500,3266,1015],{"class":556},[500,3268,3242],{"class":506},[500,3270,986],{"class":556},[500,3272,3273],{"class":502,"line":1049},[500,3274,636],{"emptyLinePlaceholder":635},[500,3276,3277,3279,3281,3283,3285,3287,3289,3291,3293,3295],{"class":502,"line":1060},[500,3278,648],{"class":552},[500,3280,652],{"class":651},[500,3282,1598],{"class":563},[500,3284,658],{"class":556},[500,3286,1012],{"class":666},[500,3288,1015],{"class":556},[500,3290,1607],{"class":506},[500,3292,1021],{"class":556},[500,3294,1024],{"class":563},[500,3296,578],{"class":556},[500,3298,3299],{"class":502,"line":1077},[500,3300,636],{"emptyLinePlaceholder":635},[500,3302,3303],{"class":502,"line":1094},[500,3304,1622],{"class":533},[500,3306,3307,3309,3311,3313,3315,3317,3319],{"class":502,"line":1107},[500,3308,648],{"class":552},[500,3310,652],{"class":651},[500,3312,1631],{"class":563},[500,3314,658],{"class":556},[500,3316,1636],{"class":666},[500,3318,670],{"class":563},[500,3320,1057],{"class":556},[500,3322,3323,3325,3327,3329,3331,3333],{"class":502,"line":1123},[500,3324,1376],{"class":689},[500,3326,693],{"class":556},[500,3328,570],{"class":556},[500,3330,1651],{"class":510},[500,3332,575],{"class":556},[500,3334,730],{"class":556},[500,3336,3337,3339,3341,3343,3345],{"class":502,"line":1141},[500,3338,1423],{"class":689},[500,3340,693],{"class":556},[500,3342,1664],{"class":556},[500,3344,1667],{"class":766},[500,3346,730],{"class":556},[500,3348,3349,3351,3353,3355],{"class":502,"line":1154},[500,3350,1474],{"class":689},[500,3352,693],{"class":556},[500,3354,1678],{"class":766},[500,3356,730],{"class":556},[500,3358,3359,3361,3363,3365],{"class":502,"line":1163},[500,3360,1516],{"class":689},[500,3362,693],{"class":556},[500,3364,1689],{"class":766},[500,3366,730],{"class":556},[500,3368,3369,3371,3373],{"class":502,"line":1179},[500,3370,594],{"class":556},[500,3372,727],{"class":563},[500,3374,578],{"class":556},[491,3376,3378],{"className":543,"code":3377,"filename":463,"language":545,"meta":496,"style":496},"import * as DZ from '@mionjs\u002Fdrizzle-orm-sqlite-core';\nimport type {InferSelectModel} from '@mionjs\u002Fdrizzle-orm';\nimport {createValidateFn} from '@mionjs\u002Frun-types';\n\nexport type NotesTable = DZ.SqliteTable\u003C\n  'notes',\n  {\n    id: DZ.Integer\u003C{primaryKey: true}>;\n    title: DZ.Text\u003C{length: 80; notNull: true}>;\n    rating: DZ.Real\u003C{notNull: true}>;\n    createdAt: DZ.Integer\u003C{mode: 'timestamp'; notNull: true}>; \u002F\u002F a real Date\n  },\n  [],\n  {createdAt: 'created_at'}\n>; \u002F\u002F database names that differ from the key\n\n\u002F\u002F the recorded table, ready for toDrizzle\nexport const notes = DZ.tableFromType\u003CNotesTable>();\n\nexport type Note = InferSelectModel\u003CNotesTable>;\n\nexport const validateNote = createValidateFn\u003CNote>();\n\n\u002F\u002F false: title is longer than the captured 80 char limit\nexport const check = validateNote({\n  id: 1,\n  title: 'x'.repeat(81),\n  rating: 4.5,\n  createdAt: new Date(),\n});\n",[446,3379,3380,3400,3422,3442,3446,3466,3476,3480,3502,3533,3557,3593,3597,3603,3619,3625,3629,3633,3660,3664,3682,3686,3708,3712,3717,3733,3743,3767,3777,3791],{"__ignoreMap":496},[500,3381,3382,3384,3386,3388,3390,3392,3394,3396,3398],{"class":502,"line":503},[500,3383,553],{"class":552},[500,3385,557],{"class":556},[500,3387,560],{"class":552},[500,3389,564],{"class":563},[500,3391,567],{"class":552},[500,3393,570],{"class":556},[500,3395,468],{"class":510},[500,3397,575],{"class":556},[500,3399,578],{"class":556},[500,3401,3402,3404,3406,3408,3410,3412,3414,3416,3418,3420],{"class":502,"line":523},[500,3403,553],{"class":552},[500,3405,585],{"class":552},[500,3407,588],{"class":556},[500,3409,591],{"class":563},[500,3411,594],{"class":556},[500,3413,597],{"class":552},[500,3415,570],{"class":556},[500,3417,602],{"class":510},[500,3419,575],{"class":556},[500,3421,578],{"class":556},[500,3423,3424,3426,3428,3430,3432,3434,3436,3438,3440],{"class":502,"line":609},[500,3425,553],{"class":552},[500,3427,588],{"class":556},[500,3429,616],{"class":563},[500,3431,594],{"class":556},[500,3433,597],{"class":552},[500,3435,570],{"class":556},[500,3437,625],{"class":510},[500,3439,575],{"class":556},[500,3441,578],{"class":556},[500,3443,3444],{"class":502,"line":632},[500,3445,636],{"emptyLinePlaceholder":635},[500,3447,3448,3450,3452,3455,3457,3459,3461,3464],{"class":502,"line":639},[500,3449,648],{"class":552},[500,3451,585],{"class":651},[500,3453,3454],{"class":506}," NotesTable",[500,3456,974],{"class":556},[500,3458,661],{"class":506},[500,3460,483],{"class":556},[500,3462,3463],{"class":506},"SqliteTable",[500,3465,2415],{"class":556},[500,3467,3468,3470,3472,3474],{"class":502,"line":645},[500,3469,2420],{"class":556},[500,3471,1800],{"class":510},[500,3473,575],{"class":556},[500,3475,730],{"class":556},[500,3477,3478],{"class":502,"line":686},[500,3479,2431],{"class":556},[500,3481,3482,3484,3486,3488,3490,3492,3494,3496,3498,3500],{"class":502,"line":733},[500,3483,1063],{"class":689},[500,3485,693],{"class":556},[500,3487,661],{"class":506},[500,3489,483],{"class":556},[500,3491,2501],{"class":506},[500,3493,2447],{"class":556},[500,3495,716],{"class":689},[500,3497,693],{"class":556},[500,3499,722],{"class":506},[500,3501,2456],{"class":556},[500,3503,3504,3507,3509,3511,3513,3515,3517,3519,3521,3523,3525,3527,3529,3531],{"class":502,"line":785},[500,3505,3506],{"class":689},"    title",[500,3508,693],{"class":556},[500,3510,661],{"class":506},[500,3512,483],{"class":556},[500,3514,2524],{"class":506},[500,3516,2447],{"class":556},[500,3518,761],{"class":689},[500,3520,693],{"class":556},[500,3522,1875],{"class":766},[500,3524,2480],{"class":556},[500,3526,772],{"class":689},[500,3528,693],{"class":556},[500,3530,722],{"class":506},[500,3532,2456],{"class":556},[500,3534,3535,3538,3540,3542,3544,3547,3549,3551,3553,3555],{"class":502,"line":826},[500,3536,3537],{"class":689},"    rating",[500,3539,693],{"class":556},[500,3541,661],{"class":506},[500,3543,483],{"class":556},[500,3545,3546],{"class":506},"Real",[500,3548,2447],{"class":556},[500,3550,813],{"class":689},[500,3552,693],{"class":556},[500,3554,722],{"class":506},[500,3556,2456],{"class":556},[500,3558,3559,3561,3563,3565,3567,3569,3571,3573,3575,3577,3579,3581,3583,3585,3587,3589,3591],{"class":502,"line":895},[500,3560,1126],{"class":689},[500,3562,693],{"class":556},[500,3564,661],{"class":506},[500,3566,483],{"class":556},[500,3568,2501],{"class":506},[500,3570,2447],{"class":556},[500,3572,1955],{"class":689},[500,3574,693],{"class":556},[500,3576,570],{"class":556},[500,3578,907],{"class":510},[500,3580,575],{"class":556},[500,3582,2480],{"class":556},[500,3584,772],{"class":689},[500,3586,693],{"class":556},[500,3588,722],{"class":506},[500,3590,3099],{"class":556},[500,3592,1980],{"class":533},[500,3594,3595],{"class":502,"line":944},[500,3596,2594],{"class":556},[500,3598,3599,3601],{"class":502,"line":953},[500,3600,2599],{"class":563},[500,3602,730],{"class":556},[500,3604,3605,3607,3609,3611,3613,3615,3617],{"class":502,"line":958},[500,3606,2606],{"class":556},[500,3608,2609],{"class":689},[500,3610,693],{"class":556},[500,3612,570],{"class":556},[500,3614,914],{"class":510},[500,3616,575],{"class":556},[500,3618,2620],{"class":556},[500,3620,3621,3623],{"class":502,"line":964},[500,3622,2625],{"class":556},[500,3624,2628],{"class":533},[500,3626,3627],{"class":502,"line":989},[500,3628,636],{"emptyLinePlaceholder":635},[500,3630,3631],{"class":502,"line":994},[500,3632,3221],{"class":533},[500,3634,3635,3637,3639,3641,3643,3645,3647,3649,3651,3654,3656,3658],{"class":502,"line":1000},[500,3636,648],{"class":552},[500,3638,652],{"class":651},[500,3640,1784],{"class":563},[500,3642,658],{"class":556},[500,3644,661],{"class":563},[500,3646,483],{"class":556},[500,3648,2654],{"class":666},[500,3650,1015],{"class":556},[500,3652,3653],{"class":506},"NotesTable",[500,3655,1021],{"class":556},[500,3657,1024],{"class":563},[500,3659,578],{"class":556},[500,3661,3662],{"class":502,"line":1029},[500,3663,636],{"emptyLinePlaceholder":635},[500,3665,3666,3668,3670,3672,3674,3676,3678,3680],{"class":502,"line":1034},[500,3667,648],{"class":552},[500,3669,585],{"class":651},[500,3671,2022],{"class":506},[500,3673,974],{"class":556},[500,3675,977],{"class":506},[500,3677,1015],{"class":556},[500,3679,3653],{"class":506},[500,3681,986],{"class":556},[500,3683,3684],{"class":502,"line":1049},[500,3685,636],{"emptyLinePlaceholder":635},[500,3687,3688,3690,3692,3694,3696,3698,3700,3702,3704,3706],{"class":502,"line":1060},[500,3689,648],{"class":552},[500,3691,652],{"class":651},[500,3693,2045],{"class":563},[500,3695,658],{"class":556},[500,3697,1012],{"class":666},[500,3699,1015],{"class":556},[500,3701,2054],{"class":506},[500,3703,1021],{"class":556},[500,3705,1024],{"class":563},[500,3707,578],{"class":556},[500,3709,3710],{"class":502,"line":1077},[500,3711,636],{"emptyLinePlaceholder":635},[500,3713,3714],{"class":502,"line":1094},[500,3715,3716],{"class":533},"\u002F\u002F false: title is longer than the captured 80 char limit\n",[500,3718,3719,3721,3723,3725,3727,3729,3731],{"class":502,"line":1107},[500,3720,648],{"class":552},[500,3722,652],{"class":651},[500,3724,1631],{"class":563},[500,3726,658],{"class":556},[500,3728,2082],{"class":666},[500,3730,670],{"class":563},[500,3732,1057],{"class":556},[500,3734,3735,3737,3739,3741],{"class":502,"line":1123},[500,3736,690],{"class":689},[500,3738,693],{"class":556},[500,3740,2095],{"class":766},[500,3742,730],{"class":556},[500,3744,3745,3747,3749,3751,3753,3755,3757,3759,3761,3763,3765],{"class":502,"line":1141},[500,3746,1847],{"class":689},[500,3748,693],{"class":556},[500,3750,570],{"class":556},[500,3752,1188],{"class":510},[500,3754,575],{"class":556},[500,3756,483],{"class":556},[500,3758,1195],{"class":666},[500,3760,670],{"class":563},[500,3762,2118],{"class":766},[500,3764,727],{"class":563},[500,3766,730],{"class":556},[500,3768,3769,3771,3773,3775],{"class":502,"line":1154},[500,3770,1894],{"class":689},[500,3772,693],{"class":556},[500,3774,2131],{"class":766},[500,3776,730],{"class":556},[500,3778,3779,3781,3783,3785,3787,3789],{"class":502,"line":1163},[500,3780,898],{"class":689},[500,3782,693],{"class":556},[500,3784,1131],{"class":556},[500,3786,1134],{"class":666},[500,3788,1024],{"class":563},[500,3790,730],{"class":556},[500,3792,3793,3795,3797],{"class":502,"line":1179},[500,3794,594],{"class":556},[500,3796,727],{"class":563},[500,3798,578],{"class":556},[2162,3800,3802],{"id":3801},"building-the-drizzle-table","Building the Drizzle Table",[405,3804,3805,3806,3809,3810,3814,3815,3818],{},"pgTable records a table; ",[446,3807,3808],{},"toDrizzle"," builds its Drizzle table once and returns it on later calls. Call it in your ",[412,3811,3813],{"href":3812},"#organising-schema-and-database-files","database file",". ",[446,3816,3817],{},"toDrizzle\u003CUsersTable>()"," builds the same table from its type alone, with no other schema imports in your query file.",[539,3820,3821,4096],{},[491,3822,3825],{"className":543,"code":3823,"filename":3824,"language":545,"meta":496,"style":496},"import {gte} from 'drizzle-orm';\nimport {drizzle} from 'drizzle-orm\u002Fpg-proxy';\nimport {toDrizzle} from '@mionjs\u002Fdrizzle-orm-pg-core\u002Fdrizzle';\nimport {users, type User} from '.\u002Fdrizzle-proxy-pg-example.ts';\n\n\u002F\u002F a genuine drizzle table, also what a drizzle-kit schema file exports\nexport const usersDb = toDrizzle(users);\n\n\u002F\u002F any drizzle driver works; swap in node-postgres, pglite or neon in a real app\nconst db = drizzle(async () => ({rows: []}));\n\nexport async function listAdults(): Promise\u003CUser[]> {\n  \u002F\u002F typed rows, formats intact: the same User the routes use\n  return db.select().from(usersDb).where(gte(usersDb.age, 18));\n}\n","Builders",[446,3826,3827,3849,3871,3892,3919,3923,3928,3947,3951,3956,4001,4005,4035,4040,4092],{"__ignoreMap":496},[500,3828,3829,3831,3833,3836,3838,3840,3842,3845,3847],{"class":502,"line":503},[500,3830,553],{"class":552},[500,3832,588],{"class":556},[500,3834,3835],{"class":563},"gte",[500,3837,594],{"class":556},[500,3839,597],{"class":552},[500,3841,570],{"class":556},[500,3843,3844],{"class":510},"drizzle-orm",[500,3846,575],{"class":556},[500,3848,578],{"class":556},[500,3850,3851,3853,3855,3858,3860,3862,3864,3867,3869],{"class":502,"line":523},[500,3852,553],{"class":552},[500,3854,588],{"class":556},[500,3856,3857],{"class":563},"drizzle",[500,3859,594],{"class":556},[500,3861,597],{"class":552},[500,3863,570],{"class":556},[500,3865,3866],{"class":510},"drizzle-orm\u002Fpg-proxy",[500,3868,575],{"class":556},[500,3870,578],{"class":556},[500,3872,3873,3875,3877,3879,3881,3883,3885,3888,3890],{"class":502,"line":609},[500,3874,553],{"class":552},[500,3876,588],{"class":556},[500,3878,3808],{"class":563},[500,3880,594],{"class":556},[500,3882,597],{"class":552},[500,3884,570],{"class":556},[500,3886,3887],{"class":510},"@mionjs\u002Fdrizzle-orm-pg-core\u002Fdrizzle",[500,3889,575],{"class":556},[500,3891,578],{"class":556},[500,3893,3894,3896,3898,3900,3902,3904,3906,3908,3910,3912,3915,3917],{"class":502,"line":632},[500,3895,553],{"class":552},[500,3897,588],{"class":556},[500,3899,675],{"class":563},[500,3901,680],{"class":556},[500,3903,585],{"class":552},[500,3905,971],{"class":563},[500,3907,594],{"class":556},[500,3909,597],{"class":552},[500,3911,570],{"class":556},[500,3913,3914],{"class":510},".\u002Fdrizzle-proxy-pg-example.ts",[500,3916,575],{"class":556},[500,3918,578],{"class":556},[500,3920,3921],{"class":502,"line":639},[500,3922,636],{"emptyLinePlaceholder":635},[500,3924,3925],{"class":502,"line":645},[500,3926,3927],{"class":533},"\u002F\u002F a genuine drizzle table, also what a drizzle-kit schema file exports\n",[500,3929,3930,3932,3934,3937,3939,3942,3945],{"class":502,"line":686},[500,3931,648],{"class":552},[500,3933,652],{"class":651},[500,3935,3936],{"class":563}," usersDb ",[500,3938,658],{"class":556},[500,3940,3941],{"class":666}," toDrizzle",[500,3943,3944],{"class":563},"(users)",[500,3946,578],{"class":556},[500,3948,3949],{"class":502,"line":733},[500,3950,636],{"emptyLinePlaceholder":635},[500,3952,3953],{"class":502,"line":785},[500,3954,3955],{"class":533},"\u002F\u002F any drizzle driver works; swap in node-postgres, pglite or neon in a real app\n",[500,3957,3958,3961,3964,3966,3969,3971,3974,3977,3980,3983,3986,3989,3991,3994,3996,3999],{"class":502,"line":826},[500,3959,3960],{"class":651},"const",[500,3962,3963],{"class":563}," db ",[500,3965,658],{"class":556},[500,3967,3968],{"class":666}," drizzle",[500,3970,670],{"class":563},[500,3972,3973],{"class":651},"async",[500,3975,3976],{"class":556}," ()",[500,3978,3979],{"class":651}," =>",[500,3981,3982],{"class":563}," (",[500,3984,3985],{"class":556},"{",[500,3987,3988],{"class":689},"rows",[500,3990,693],{"class":556},[500,3992,3993],{"class":563}," []",[500,3995,594],{"class":556},[500,3997,3998],{"class":563},"))",[500,4000,578],{"class":556},[500,4002,4003],{"class":502,"line":895},[500,4004,636],{"emptyLinePlaceholder":635},[500,4006,4007,4009,4012,4015,4018,4021,4024,4026,4028,4031,4033],{"class":502,"line":944},[500,4008,648],{"class":552},[500,4010,4011],{"class":651}," async",[500,4013,4014],{"class":651}," function",[500,4016,4017],{"class":666}," listAdults",[500,4019,4020],{"class":556},"():",[500,4022,4023],{"class":506}," Promise",[500,4025,1015],{"class":556},[500,4027,1018],{"class":506},[500,4029,4030],{"class":563},"[]",[500,4032,1021],{"class":556},[500,4034,683],{"class":556},[500,4036,4037],{"class":502,"line":953},[500,4038,4039],{"class":533},"  \u002F\u002F typed rows, formats intact: the same User the routes use\n",[500,4041,4042,4045,4048,4050,4053,4055,4057,4059,4061,4064,4066,4068,4071,4073,4075,4077,4079,4081,4083,4085,4088,4090],{"class":502,"line":958},[500,4043,4044],{"class":552},"  return",[500,4046,4047],{"class":563}," db",[500,4049,483],{"class":556},[500,4051,4052],{"class":666},"select",[500,4054,1024],{"class":689},[500,4056,483],{"class":556},[500,4058,567],{"class":666},[500,4060,670],{"class":689},[500,4062,4063],{"class":563},"usersDb",[500,4065,727],{"class":689},[500,4067,483],{"class":556},[500,4069,4070],{"class":666},"where",[500,4072,670],{"class":689},[500,4074,3835],{"class":666},[500,4076,670],{"class":689},[500,4078,4063],{"class":563},[500,4080,483],{"class":556},[500,4082,804],{"class":563},[500,4084,680],{"class":556},[500,4086,4087],{"class":766}," 18",[500,4089,3998],{"class":689},[500,4091,578],{"class":556},[500,4093,4094],{"class":502,"line":964},[500,4095,2620],{"class":556},[491,4097,4100],{"className":543,"code":4098,"filename":4099,"language":545,"meta":496,"style":496},"import {gte} from 'drizzle-orm';\nimport {drizzle} from 'drizzle-orm\u002Fpg-proxy';\nimport {toDrizzle} from '@mionjs\u002Fdrizzle-orm-pg-core\u002Fdrizzle';\nimport type {UsersTable, User} from '.\u002Fdrizzle-types-pg-example.ts';\n\n\u002F\u002F a genuine drizzle table, also what a drizzle-kit schema file exports\nexport const usersDb = toDrizzle\u003CUsersTable>();\n\n\u002F\u002F any drizzle driver works; swap in node-postgres, pglite or neon in a real app\nconst db = drizzle(async () => ({rows: []}));\n\nexport async function listAdults(): Promise\u003CUser[]> {\n  \u002F\u002F typed rows, formats intact: the same User the routes use\n  return db.select().from(usersDb).where(gte(usersDb.age, 18));\n}\n","Types",[446,4101,4102,4122,4142,4162,4189,4193,4197,4219,4223,4227,4261,4265,4289,4293,4339],{"__ignoreMap":496},[500,4103,4104,4106,4108,4110,4112,4114,4116,4118,4120],{"class":502,"line":503},[500,4105,553],{"class":552},[500,4107,588],{"class":556},[500,4109,3835],{"class":563},[500,4111,594],{"class":556},[500,4113,597],{"class":552},[500,4115,570],{"class":556},[500,4117,3844],{"class":510},[500,4119,575],{"class":556},[500,4121,578],{"class":556},[500,4123,4124,4126,4128,4130,4132,4134,4136,4138,4140],{"class":502,"line":523},[500,4125,553],{"class":552},[500,4127,588],{"class":556},[500,4129,3857],{"class":563},[500,4131,594],{"class":556},[500,4133,597],{"class":552},[500,4135,570],{"class":556},[500,4137,3866],{"class":510},[500,4139,575],{"class":556},[500,4141,578],{"class":556},[500,4143,4144,4146,4148,4150,4152,4154,4156,4158,4160],{"class":502,"line":609},[500,4145,553],{"class":552},[500,4147,588],{"class":556},[500,4149,3808],{"class":563},[500,4151,594],{"class":556},[500,4153,597],{"class":552},[500,4155,570],{"class":556},[500,4157,3887],{"class":510},[500,4159,575],{"class":556},[500,4161,578],{"class":556},[500,4163,4164,4166,4168,4170,4172,4174,4176,4178,4180,4182,4185,4187],{"class":502,"line":632},[500,4165,553],{"class":552},[500,4167,585],{"class":552},[500,4169,588],{"class":556},[500,4171,2659],{"class":563},[500,4173,680],{"class":556},[500,4175,971],{"class":563},[500,4177,594],{"class":556},[500,4179,597],{"class":552},[500,4181,570],{"class":556},[500,4183,4184],{"class":510},".\u002Fdrizzle-types-pg-example.ts",[500,4186,575],{"class":556},[500,4188,578],{"class":556},[500,4190,4191],{"class":502,"line":639},[500,4192,636],{"emptyLinePlaceholder":635},[500,4194,4195],{"class":502,"line":645},[500,4196,3927],{"class":533},[500,4198,4199,4201,4203,4205,4207,4209,4211,4213,4215,4217],{"class":502,"line":686},[500,4200,648],{"class":552},[500,4202,652],{"class":651},[500,4204,3936],{"class":563},[500,4206,658],{"class":556},[500,4208,3941],{"class":666},[500,4210,1015],{"class":556},[500,4212,2659],{"class":506},[500,4214,1021],{"class":556},[500,4216,1024],{"class":563},[500,4218,578],{"class":556},[500,4220,4221],{"class":502,"line":733},[500,4222,636],{"emptyLinePlaceholder":635},[500,4224,4225],{"class":502,"line":785},[500,4226,3955],{"class":533},[500,4228,4229,4231,4233,4235,4237,4239,4241,4243,4245,4247,4249,4251,4253,4255,4257,4259],{"class":502,"line":826},[500,4230,3960],{"class":651},[500,4232,3963],{"class":563},[500,4234,658],{"class":556},[500,4236,3968],{"class":666},[500,4238,670],{"class":563},[500,4240,3973],{"class":651},[500,4242,3976],{"class":556},[500,4244,3979],{"class":651},[500,4246,3982],{"class":563},[500,4248,3985],{"class":556},[500,4250,3988],{"class":689},[500,4252,693],{"class":556},[500,4254,3993],{"class":563},[500,4256,594],{"class":556},[500,4258,3998],{"class":563},[500,4260,578],{"class":556},[500,4262,4263],{"class":502,"line":895},[500,4264,636],{"emptyLinePlaceholder":635},[500,4266,4267,4269,4271,4273,4275,4277,4279,4281,4283,4285,4287],{"class":502,"line":944},[500,4268,648],{"class":552},[500,4270,4011],{"class":651},[500,4272,4014],{"class":651},[500,4274,4017],{"class":666},[500,4276,4020],{"class":556},[500,4278,4023],{"class":506},[500,4280,1015],{"class":556},[500,4282,1018],{"class":506},[500,4284,4030],{"class":563},[500,4286,1021],{"class":556},[500,4288,683],{"class":556},[500,4290,4291],{"class":502,"line":953},[500,4292,4039],{"class":533},[500,4294,4295,4297,4299,4301,4303,4305,4307,4309,4311,4313,4315,4317,4319,4321,4323,4325,4327,4329,4331,4333,4335,4337],{"class":502,"line":958},[500,4296,4044],{"class":552},[500,4298,4047],{"class":563},[500,4300,483],{"class":556},[500,4302,4052],{"class":666},[500,4304,1024],{"class":689},[500,4306,483],{"class":556},[500,4308,567],{"class":666},[500,4310,670],{"class":689},[500,4312,4063],{"class":563},[500,4314,727],{"class":689},[500,4316,483],{"class":556},[500,4318,4070],{"class":666},[500,4320,670],{"class":689},[500,4322,3835],{"class":666},[500,4324,670],{"class":689},[500,4326,4063],{"class":563},[500,4328,483],{"class":556},[500,4330,804],{"class":563},[500,4332,680],{"class":556},[500,4334,4087],{"class":766},[500,4336,3998],{"class":689},[500,4338,578],{"class":556},[500,4340,4341],{"class":502,"line":964},[500,4342,2620],{"class":556},[405,4344,4345,4346,4349],{},"A drizzle-kit schema file exports the same call (and the materialized enums, for ",[446,4347,4348],{},"pgEnum","). Operators, relations, getTableConfig and views built from a query builder all work on the result as usual.",[2162,4351,4353],{"id":4352},"organising-schema-and-database-files","Organising Schema and Database Files",[405,4355,4356,4357,4359,4360,4364,4365,3982,4367,4370,4371,4374],{},"Keep slim tables and models in a schema file, and ",[446,4358,3808],{},", relations, the database connection and queries in a database file that imports it. The ",[412,4361,4363],{"href":4362},"\u002Frpc\u002Fdevtools\u002Flinter#separating-database-code","linter"," fails the build when a file defining slim tables or models imports Drizzle or ",[446,4366,3808],{},[446,4368,4369],{},"drizzle-mixed-types","). It warns when a route takes or returns a Drizzle type (",[446,4372,4373],{},"drizzle-type-not-allowed",").",[539,4376,4377,4885],{},[491,4378,4381],{"className":543,"code":4379,"filename":4380,"language":545,"meta":496,"style":496},"import * as DZ from '@mionjs\u002Fdrizzle-orm-pg-core';\nimport {tableRef, type InferSelectModel} from '@mionjs\u002Fdrizzle-orm';\n\nexport const authors = DZ.pgTable('authors', {\n  id: DZ.uuid('id', {defaultRandom: true, primaryKey: true}),\n  name: DZ.varchar('name', {length: 100, notNull: true}),\n});\n\nexport const posts = DZ.pgTable('posts', {\n  id: DZ.uuid('id', {defaultRandom: true, primaryKey: true}),\n  authorId: DZ.uuid('author_id', {\n    notNull: true,\n    references: [() => tableRef(authors, 'id'), {onDelete: 'cascade'}],\n  }),\n  title: DZ.varchar('title', {length: 200, notNull: true}),\n});\n\n\u002F\u002F route and client models\nexport type Author = InferSelectModel\u003Ctypeof authors>;\nexport type Post = InferSelectModel\u003Ctypeof posts>;\n\n\u002F\u002F start-nested-model\nexport interface AuthorWithPosts extends Author {\n  posts: Post[];\n}\n\u002F\u002F end-nested-model\n","schema.ts",[446,4382,4383,4403,4430,4434,4464,4510,4554,4562,4566,4596,4640,4666,4677,4728,4736,4780,4788,4792,4797,4817,4837,4841,4846,4863,4876,4880],{"__ignoreMap":496},[500,4384,4385,4387,4389,4391,4393,4395,4397,4399,4401],{"class":502,"line":503},[500,4386,553],{"class":552},[500,4388,557],{"class":556},[500,4390,560],{"class":552},[500,4392,564],{"class":563},[500,4394,567],{"class":552},[500,4396,570],{"class":556},[500,4398,448],{"class":510},[500,4400,575],{"class":556},[500,4402,578],{"class":556},[500,4404,4405,4407,4409,4412,4414,4416,4418,4420,4422,4424,4426,4428],{"class":502,"line":523},[500,4406,553],{"class":552},[500,4408,588],{"class":556},[500,4410,4411],{"class":563},"tableRef",[500,4413,680],{"class":556},[500,4415,585],{"class":552},[500,4417,977],{"class":563},[500,4419,594],{"class":556},[500,4421,597],{"class":552},[500,4423,570],{"class":556},[500,4425,602],{"class":510},[500,4427,575],{"class":556},[500,4429,578],{"class":556},[500,4431,4432],{"class":502,"line":609},[500,4433,636],{"emptyLinePlaceholder":635},[500,4435,4436,4438,4440,4443,4445,4447,4449,4451,4453,4455,4458,4460,4462],{"class":502,"line":632},[500,4437,648],{"class":552},[500,4439,652],{"class":651},[500,4441,4442],{"class":563}," authors ",[500,4444,658],{"class":556},[500,4446,661],{"class":563},[500,4448,483],{"class":556},[500,4450,667],{"class":666},[500,4452,670],{"class":563},[500,4454,575],{"class":556},[500,4456,4457],{"class":510},"authors",[500,4459,575],{"class":556},[500,4461,680],{"class":556},[500,4463,683],{"class":556},[500,4465,4466,4468,4470,4472,4474,4476,4478,4480,4482,4484,4486,4488,4491,4493,4495,4497,4500,4502,4504,4506,4508],{"class":502,"line":639},[500,4467,690],{"class":689},[500,4469,693],{"class":556},[500,4471,661],{"class":563},[500,4473,483],{"class":556},[500,4475,700],{"class":666},[500,4477,670],{"class":563},[500,4479,575],{"class":556},[500,4481,707],{"class":510},[500,4483,575],{"class":556},[500,4485,680],{"class":556},[500,4487,588],{"class":556},[500,4489,4490],{"class":689},"defaultRandom",[500,4492,693],{"class":556},[500,4494,722],{"class":721},[500,4496,680],{"class":556},[500,4498,4499],{"class":689}," primaryKey",[500,4501,693],{"class":556},[500,4503,722],{"class":721},[500,4505,594],{"class":556},[500,4507,727],{"class":563},[500,4509,730],{"class":556},[500,4511,4512,4514,4516,4518,4520,4522,4524,4526,4528,4530,4532,4534,4536,4538,4540,4542,4544,4546,4548,4550,4552],{"class":502,"line":645},[500,4513,736],{"class":689},[500,4515,693],{"class":556},[500,4517,661],{"class":563},[500,4519,483],{"class":556},[500,4521,745],{"class":666},[500,4523,670],{"class":563},[500,4525,575],{"class":556},[500,4527,752],{"class":510},[500,4529,575],{"class":556},[500,4531,680],{"class":556},[500,4533,588],{"class":556},[500,4535,761],{"class":689},[500,4537,693],{"class":556},[500,4539,767],{"class":766},[500,4541,680],{"class":556},[500,4543,772],{"class":689},[500,4545,693],{"class":556},[500,4547,722],{"class":721},[500,4549,594],{"class":556},[500,4551,727],{"class":563},[500,4553,730],{"class":556},[500,4555,4556,4558,4560],{"class":502,"line":686},[500,4557,594],{"class":556},[500,4559,727],{"class":563},[500,4561,578],{"class":556},[500,4563,4564],{"class":502,"line":733},[500,4565,636],{"emptyLinePlaceholder":635},[500,4567,4568,4570,4572,4575,4577,4579,4581,4583,4585,4587,4590,4592,4594],{"class":502,"line":785},[500,4569,648],{"class":552},[500,4571,652],{"class":651},[500,4573,4574],{"class":563}," posts ",[500,4576,658],{"class":556},[500,4578,661],{"class":563},[500,4580,483],{"class":556},[500,4582,667],{"class":666},[500,4584,670],{"class":563},[500,4586,575],{"class":556},[500,4588,4589],{"class":510},"posts",[500,4591,575],{"class":556},[500,4593,680],{"class":556},[500,4595,683],{"class":556},[500,4597,4598,4600,4602,4604,4606,4608,4610,4612,4614,4616,4618,4620,4622,4624,4626,4628,4630,4632,4634,4636,4638],{"class":502,"line":826},[500,4599,690],{"class":689},[500,4601,693],{"class":556},[500,4603,661],{"class":563},[500,4605,483],{"class":556},[500,4607,700],{"class":666},[500,4609,670],{"class":563},[500,4611,575],{"class":556},[500,4613,707],{"class":510},[500,4615,575],{"class":556},[500,4617,680],{"class":556},[500,4619,588],{"class":556},[500,4621,4490],{"class":689},[500,4623,693],{"class":556},[500,4625,722],{"class":721},[500,4627,680],{"class":556},[500,4629,4499],{"class":689},[500,4631,693],{"class":556},[500,4633,722],{"class":721},[500,4635,594],{"class":556},[500,4637,727],{"class":563},[500,4639,730],{"class":556},[500,4641,4642,4645,4647,4649,4651,4653,4655,4657,4660,4662,4664],{"class":502,"line":895},[500,4643,4644],{"class":689},"  authorId",[500,4646,693],{"class":556},[500,4648,661],{"class":563},[500,4650,483],{"class":556},[500,4652,700],{"class":666},[500,4654,670],{"class":563},[500,4656,575],{"class":556},[500,4658,4659],{"class":510},"author_id",[500,4661,575],{"class":556},[500,4663,680],{"class":556},[500,4665,683],{"class":556},[500,4667,4668,4671,4673,4675],{"class":502,"line":944},[500,4669,4670],{"class":689},"    notNull",[500,4672,693],{"class":556},[500,4674,722],{"class":721},[500,4676,730],{"class":556},[500,4678,4679,4682,4684,4686,4688,4690,4693,4696,4698,4700,4702,4704,4706,4708,4710,4713,4715,4717,4720,4722,4724,4726],{"class":502,"line":953},[500,4680,4681],{"class":689},"    references",[500,4683,693],{"class":556},[500,4685,859],{"class":563},[500,4687,1024],{"class":556},[500,4689,3979],{"class":651},[500,4691,4692],{"class":666}," tableRef",[500,4694,4695],{"class":563},"(authors",[500,4697,680],{"class":556},[500,4699,570],{"class":556},[500,4701,707],{"class":510},[500,4703,575],{"class":556},[500,4705,727],{"class":563},[500,4707,680],{"class":556},[500,4709,588],{"class":556},[500,4711,4712],{"class":689},"onDelete",[500,4714,693],{"class":556},[500,4716,570],{"class":556},[500,4718,4719],{"class":510},"cascade",[500,4721,575],{"class":556},[500,4723,594],{"class":556},[500,4725,878],{"class":563},[500,4727,730],{"class":556},[500,4729,4730,4732,4734],{"class":502,"line":958},[500,4731,1144],{"class":556},[500,4733,727],{"class":563},[500,4735,730],{"class":556},[500,4737,4738,4740,4742,4744,4746,4748,4750,4752,4754,4756,4758,4760,4762,4764,4766,4768,4770,4772,4774,4776,4778],{"class":502,"line":964},[500,4739,1847],{"class":689},[500,4741,693],{"class":556},[500,4743,661],{"class":563},[500,4745,483],{"class":556},[500,4747,745],{"class":666},[500,4749,670],{"class":563},[500,4751,575],{"class":556},[500,4753,1862],{"class":510},[500,4755,575],{"class":556},[500,4757,680],{"class":556},[500,4759,588],{"class":556},[500,4761,761],{"class":689},[500,4763,693],{"class":556},[500,4765,1678],{"class":766},[500,4767,680],{"class":556},[500,4769,772],{"class":689},[500,4771,693],{"class":556},[500,4773,722],{"class":721},[500,4775,594],{"class":556},[500,4777,727],{"class":563},[500,4779,730],{"class":556},[500,4781,4782,4784,4786],{"class":502,"line":989},[500,4783,594],{"class":556},[500,4785,727],{"class":563},[500,4787,578],{"class":556},[500,4789,4790],{"class":502,"line":994},[500,4791,636],{"emptyLinePlaceholder":635},[500,4793,4794],{"class":502,"line":1000},[500,4795,4796],{"class":533},"\u002F\u002F route and client models\n",[500,4798,4799,4801,4803,4806,4808,4810,4812,4815],{"class":502,"line":1029},[500,4800,648],{"class":552},[500,4802,585],{"class":651},[500,4804,4805],{"class":506}," Author",[500,4807,974],{"class":556},[500,4809,977],{"class":506},[500,4811,980],{"class":556},[500,4813,4814],{"class":563}," authors",[500,4816,986],{"class":556},[500,4818,4819,4821,4823,4826,4828,4830,4832,4835],{"class":502,"line":1034},[500,4820,648],{"class":552},[500,4822,585],{"class":651},[500,4824,4825],{"class":506}," Post",[500,4827,974],{"class":556},[500,4829,977],{"class":506},[500,4831,980],{"class":556},[500,4833,4834],{"class":563}," posts",[500,4836,986],{"class":556},[500,4838,4839],{"class":502,"line":1049},[500,4840,636],{"emptyLinePlaceholder":635},[500,4842,4843],{"class":502,"line":1060},[500,4844,4845],{"class":533},"\u002F\u002F start-nested-model\n",[500,4847,4848,4850,4853,4856,4859,4861],{"class":502,"line":1077},[500,4849,648],{"class":552},[500,4851,4852],{"class":651}," interface",[500,4854,4855],{"class":506}," AuthorWithPosts",[500,4857,4858],{"class":651}," extends",[500,4860,4805],{"class":506},[500,4862,683],{"class":556},[500,4864,4865,4868,4870,4872,4874],{"class":502,"line":1094},[500,4866,4867],{"class":689},"  posts",[500,4869,693],{"class":556},[500,4871,4825],{"class":506},[500,4873,4030],{"class":563},[500,4875,578],{"class":556},[500,4877,4878],{"class":502,"line":1107},[500,4879,2620],{"class":556},[500,4881,4882],{"class":502,"line":1123},[500,4883,4884],{"class":533},"\u002F\u002F end-nested-model\n",[491,4886,4889],{"className":543,"code":4887,"filename":4888,"language":545,"meta":496,"style":496},"import {authors, posts} from '.\u002Fdrizzle-relations-schema-example.ts';\nimport {toDrizzle} from '@mionjs\u002Fdrizzle-orm-pg-core\u002Fdrizzle';\nimport {relations} from 'drizzle-orm';\nimport type {ExtractTablesWithRelations} from 'drizzle-orm';\nimport type {PgDatabase, PgQueryResultHKT} from 'drizzle-orm\u002Fpg-core';\n\nconst authorsDb = toDrizzle(authors);\nconst postsDb = toDrizzle(posts);\n\n\u002F\u002F relations need real Drizzle tables\nconst authorsRelations = relations(authorsDb, ({many}) => ({\n  posts: many(postsDb),\n}));\nconst postsRelations = relations(postsDb, ({one}) => ({\n  author: one(authorsDb, {\n    fields: [postsDb.authorId],\n    references: [authorsDb.id],\n  }),\n}));\n\n\u002F\u002F passed to drizzle(client, {schema})\nexport const schema = {\n  authors: authorsDb,\n  posts: postsDb,\n  authorsRelations,\n  postsRelations,\n};\n\ndeclare const db: PgDatabase\u003C\n  PgQueryResultHKT,\n  typeof schema,\n  ExtractTablesWithRelations\u003Ctypeof schema>\n>;\n\n\u002F\u002F nested results\nexport async function authorsWithPosts() {\n  return db.query.authors.findMany({with: {posts: true}});\n}\n","db.ts",[446,4890,4891,4916,4936,4957,4980,5009,5013,5029,5045,5049,5054,5087,5101,5109,5138,5154,5171,5187,5195,5203,5207,5212,5225,5237,5248,5255,5262,5267,5271,5287,5294,5304,5316,5320,5324,5329,5344,5388],{"__ignoreMap":496},[500,4892,4893,4895,4897,4899,4901,4903,4905,4907,4909,4912,4914],{"class":502,"line":503},[500,4894,553],{"class":552},[500,4896,588],{"class":556},[500,4898,4457],{"class":563},[500,4900,680],{"class":556},[500,4902,4834],{"class":563},[500,4904,594],{"class":556},[500,4906,597],{"class":552},[500,4908,570],{"class":556},[500,4910,4911],{"class":510},".\u002Fdrizzle-relations-schema-example.ts",[500,4913,575],{"class":556},[500,4915,578],{"class":556},[500,4917,4918,4920,4922,4924,4926,4928,4930,4932,4934],{"class":502,"line":523},[500,4919,553],{"class":552},[500,4921,588],{"class":556},[500,4923,3808],{"class":563},[500,4925,594],{"class":556},[500,4927,597],{"class":552},[500,4929,570],{"class":556},[500,4931,3887],{"class":510},[500,4933,575],{"class":556},[500,4935,578],{"class":556},[500,4937,4938,4940,4942,4945,4947,4949,4951,4953,4955],{"class":502,"line":609},[500,4939,553],{"class":552},[500,4941,588],{"class":556},[500,4943,4944],{"class":563},"relations",[500,4946,594],{"class":556},[500,4948,597],{"class":552},[500,4950,570],{"class":556},[500,4952,3844],{"class":510},[500,4954,575],{"class":556},[500,4956,578],{"class":556},[500,4958,4959,4961,4963,4965,4968,4970,4972,4974,4976,4978],{"class":502,"line":632},[500,4960,553],{"class":552},[500,4962,585],{"class":552},[500,4964,588],{"class":556},[500,4966,4967],{"class":563},"ExtractTablesWithRelations",[500,4969,594],{"class":556},[500,4971,597],{"class":552},[500,4973,570],{"class":556},[500,4975,3844],{"class":510},[500,4977,575],{"class":556},[500,4979,578],{"class":556},[500,4981,4982,4984,4986,4988,4991,4993,4996,4998,5000,5002,5005,5007],{"class":502,"line":639},[500,4983,553],{"class":552},[500,4985,585],{"class":552},[500,4987,588],{"class":556},[500,4989,4990],{"class":563},"PgDatabase",[500,4992,680],{"class":556},[500,4994,4995],{"class":563}," PgQueryResultHKT",[500,4997,594],{"class":556},[500,4999,597],{"class":552},[500,5001,570],{"class":556},[500,5003,5004],{"class":510},"drizzle-orm\u002Fpg-core",[500,5006,575],{"class":556},[500,5008,578],{"class":556},[500,5010,5011],{"class":502,"line":645},[500,5012,636],{"emptyLinePlaceholder":635},[500,5014,5015,5017,5020,5022,5024,5027],{"class":502,"line":686},[500,5016,3960],{"class":651},[500,5018,5019],{"class":563}," authorsDb ",[500,5021,658],{"class":556},[500,5023,3941],{"class":666},[500,5025,5026],{"class":563},"(authors)",[500,5028,578],{"class":556},[500,5030,5031,5033,5036,5038,5040,5043],{"class":502,"line":733},[500,5032,3960],{"class":651},[500,5034,5035],{"class":563}," postsDb ",[500,5037,658],{"class":556},[500,5039,3941],{"class":666},[500,5041,5042],{"class":563},"(posts)",[500,5044,578],{"class":556},[500,5046,5047],{"class":502,"line":785},[500,5048,636],{"emptyLinePlaceholder":635},[500,5050,5051],{"class":502,"line":826},[500,5052,5053],{"class":533},"\u002F\u002F relations need real Drizzle tables\n",[500,5055,5056,5058,5061,5063,5066,5069,5071,5074,5078,5081,5083,5085],{"class":502,"line":895},[500,5057,3960],{"class":651},[500,5059,5060],{"class":563}," authorsRelations ",[500,5062,658],{"class":556},[500,5064,5065],{"class":666}," relations",[500,5067,5068],{"class":563},"(authorsDb",[500,5070,680],{"class":556},[500,5072,5073],{"class":556}," ({",[500,5075,5077],{"class":5076},"sHdIc","many",[500,5079,5080],{"class":556},"})",[500,5082,3979],{"class":651},[500,5084,3982],{"class":563},[500,5086,1057],{"class":556},[500,5088,5089,5091,5093,5096,5099],{"class":502,"line":944},[500,5090,4867],{"class":689},[500,5092,693],{"class":556},[500,5094,5095],{"class":666}," many",[500,5097,5098],{"class":563},"(postsDb)",[500,5100,730],{"class":556},[500,5102,5103,5105,5107],{"class":502,"line":953},[500,5104,594],{"class":556},[500,5106,3998],{"class":563},[500,5108,578],{"class":556},[500,5110,5111,5113,5116,5118,5120,5123,5125,5127,5130,5132,5134,5136],{"class":502,"line":958},[500,5112,3960],{"class":651},[500,5114,5115],{"class":563}," postsRelations ",[500,5117,658],{"class":556},[500,5119,5065],{"class":666},[500,5121,5122],{"class":563},"(postsDb",[500,5124,680],{"class":556},[500,5126,5073],{"class":556},[500,5128,5129],{"class":5076},"one",[500,5131,5080],{"class":556},[500,5133,3979],{"class":651},[500,5135,3982],{"class":563},[500,5137,1057],{"class":556},[500,5139,5140,5143,5145,5148,5150,5152],{"class":502,"line":964},[500,5141,5142],{"class":689},"  author",[500,5144,693],{"class":556},[500,5146,5147],{"class":666}," one",[500,5149,5068],{"class":563},[500,5151,680],{"class":556},[500,5153,683],{"class":556},[500,5155,5156,5159,5161,5164,5166,5169],{"class":502,"line":989},[500,5157,5158],{"class":689},"    fields",[500,5160,693],{"class":556},[500,5162,5163],{"class":563}," [postsDb",[500,5165,483],{"class":556},[500,5167,5168],{"class":563},"authorId]",[500,5170,730],{"class":556},[500,5172,5173,5175,5177,5180,5182,5185],{"class":502,"line":994},[500,5174,4681],{"class":689},[500,5176,693],{"class":556},[500,5178,5179],{"class":563}," [authorsDb",[500,5181,483],{"class":556},[500,5183,5184],{"class":563},"id]",[500,5186,730],{"class":556},[500,5188,5189,5191,5193],{"class":502,"line":1000},[500,5190,1144],{"class":556},[500,5192,727],{"class":563},[500,5194,730],{"class":556},[500,5196,5197,5199,5201],{"class":502,"line":1029},[500,5198,594],{"class":556},[500,5200,3998],{"class":563},[500,5202,578],{"class":556},[500,5204,5205],{"class":502,"line":1034},[500,5206,636],{"emptyLinePlaceholder":635},[500,5208,5209],{"class":502,"line":1049},[500,5210,5211],{"class":533},"\u002F\u002F passed to drizzle(client, {schema})\n",[500,5213,5214,5216,5218,5221,5223],{"class":502,"line":1060},[500,5215,648],{"class":552},[500,5217,652],{"class":651},[500,5219,5220],{"class":563}," schema ",[500,5222,658],{"class":556},[500,5224,683],{"class":556},[500,5226,5227,5230,5232,5235],{"class":502,"line":1077},[500,5228,5229],{"class":689},"  authors",[500,5231,693],{"class":556},[500,5233,5234],{"class":563}," authorsDb",[500,5236,730],{"class":556},[500,5238,5239,5241,5243,5246],{"class":502,"line":1094},[500,5240,4867],{"class":689},[500,5242,693],{"class":556},[500,5244,5245],{"class":563}," postsDb",[500,5247,730],{"class":556},[500,5249,5250,5253],{"class":502,"line":1107},[500,5251,5252],{"class":563},"  authorsRelations",[500,5254,730],{"class":556},[500,5256,5257,5260],{"class":502,"line":1123},[500,5258,5259],{"class":563},"  postsRelations",[500,5261,730],{"class":556},[500,5263,5264],{"class":502,"line":1141},[500,5265,5266],{"class":556},"};\n",[500,5268,5269],{"class":502,"line":1154},[500,5270,636],{"emptyLinePlaceholder":635},[500,5272,5273,5276,5278,5280,5282,5285],{"class":502,"line":1163},[500,5274,5275],{"class":651},"declare",[500,5277,652],{"class":651},[500,5279,4047],{"class":563},[500,5281,693],{"class":556},[500,5283,5284],{"class":506}," PgDatabase",[500,5286,2415],{"class":556},[500,5288,5289,5292],{"class":502,"line":1179},[500,5290,5291],{"class":506},"  PgQueryResultHKT",[500,5293,730],{"class":556},[500,5295,5296,5299,5302],{"class":502,"line":1210},[500,5297,5298],{"class":556},"  typeof",[500,5300,5301],{"class":563}," schema",[500,5303,730],{"class":556},[500,5305,5306,5309,5311,5313],{"class":502,"line":1221},[500,5307,5308],{"class":506},"  ExtractTablesWithRelations",[500,5310,980],{"class":556},[500,5312,5301],{"class":563},[500,5314,5315],{"class":556},">\n",[500,5317,5318],{"class":502,"line":1236},[500,5319,986],{"class":556},[500,5321,5322],{"class":502,"line":1251},[500,5323,636],{"emptyLinePlaceholder":635},[500,5325,5326],{"class":502,"line":1260},[500,5327,5328],{"class":533},"\u002F\u002F nested results\n",[500,5330,5331,5333,5335,5337,5340,5342],{"class":502,"line":2825},[500,5332,648],{"class":552},[500,5334,4011],{"class":651},[500,5336,4014],{"class":651},[500,5338,5339],{"class":666}," authorsWithPosts",[500,5341,1024],{"class":556},[500,5343,683],{"class":556},[500,5345,5346,5348,5350,5352,5355,5357,5359,5361,5364,5366,5368,5371,5373,5375,5377,5379,5381,5384,5386],{"class":502,"line":2834},[500,5347,4044],{"class":552},[500,5349,4047],{"class":563},[500,5351,483],{"class":556},[500,5353,5354],{"class":563},"query",[500,5356,483],{"class":556},[500,5358,4457],{"class":563},[500,5360,483],{"class":556},[500,5362,5363],{"class":666},"findMany",[500,5365,670],{"class":689},[500,5367,3985],{"class":556},[500,5369,5370],{"class":689},"with",[500,5372,693],{"class":556},[500,5374,588],{"class":556},[500,5376,4589],{"class":689},[500,5378,693],{"class":556},[500,5380,722],{"class":721},[500,5382,5383],{"class":556},"}}",[500,5385,727],{"class":689},[500,5387,578],{"class":556},[500,5389,5390],{"class":502,"line":2849},[500,5391,2620],{"class":556},[405,5393,5394],{},"A client importing a model then type-checks only the schema file. With both in one file, a full type check also checks every conversion, relation and query, and a value import bundles drizzle-orm. Your editor costs the same either way.",[5396,5397],"code-card",{"name":5398},"drizzle-type-cost",[2292,5400,5401],{},"A query or router file may import both slim models and Drizzle if it defines no slim tables or models.",[2162,5403,5405],{"id":5404},"recorded-tables-from-a-type","Recorded Tables From a Type",[405,5407,5408,5409,5412,5413,5416,5417,5420],{},"Where you need the recorded table without drizzle (models, refinement, mion routes), use ",[446,5410,5411],{},"tableFromType\u003CUsersTable>()"," from the package root. Its options take the two runtime inputs a type cannot hold: the tables a column references (",[446,5414,5415],{},"{tables: {parents: parents}}",", or ",[446,5418,5419],{},"{tables: {parents: () => parents}}"," when that table is declared further down the file) and the runtime callbacks described below.",[2162,5422,5424],{"id":5423},"refining-tables-for-your-api","Refining Tables for Your API",[405,5426,5427,5430],{},[446,5428,5429],{},"refineTableType"," adds API rules stricter than the database column: a name that holds 100 characters can require at least 10. It returns the same table object with the extra rules added, and the SQL does not change. Build validators, mock data and JSON round trip functions from the refined models, with or without mion.",[539,5432,5433,6215],{},[491,5434,5436],{"className":543,"code":5435,"filename":3824,"language":545,"meta":496,"style":496},"import * as DZ from '@mionjs\u002Fdrizzle-orm-pg-core';\nimport {refineTableType} from '@mionjs\u002Fdrizzle-orm';\nimport type {InferInsertModel, InferSelectModel} from '@mionjs\u002Fdrizzle-orm';\nimport {\n  createJsonDecoderFn,\n  createJsonEncoderFn,\n  createValidateFn,\n} from '@mionjs\u002Frun-types';\nimport {createMockDataFn} from '@mionjs\u002Frun-types\u002Fmocking';\n\nexport const users = DZ.pgTable('users', {\n  id: DZ.uuid('id', {primaryKey: true, defaultRandom: true}),\n  name: DZ.varchar('name', {length: 100, notNull: true}), \u002F\u002F captured as String\u003C{maxLength: 100}>\n  age: DZ.integer('age', {notNull: true}),\n  createdAt: DZ.timestamp('created_at', {\n    mode: 'date',\n    notNull: true,\n    defaultNow: true,\n  }),\n});\n\n\u002F\u002F stricter types for the API\nexport const apiUsers = refineTableType(users, {\n  name: {minLength: 10},\n  age: {min: 18},\n});\n\nexport type User = InferSelectModel\u003Ctypeof apiUsers>; \u002F\u002F name: String\u003C{maxLength: 100, minLength: 10}>\nexport type NewUser = InferInsertModel\u003Ctypeof apiUsers>; \u002F\u002F id and createdAt optional (DB defaults)\nexport type UserPatch = Partial\u003CInferInsertModel\u003Ctypeof apiUsers>>;\n\nexport const validateUser = createValidateFn\u003CUser>();\nexport const mockUser = createMockDataFn\u003CUser>(); \u002F\u002F realistic rows that pass validateUser\nexport const encodeUser = createJsonEncoderFn\u003CUser>();\nexport const decodeUser = createJsonDecoderFn\u003CUser>();\n\n\u002F\u002F checks the captured AND the refined bounds\nexport const checks = [\n  validateUser(mockUser()), \u002F\u002F true: mock data respects every bound\n  validateUser({...mockUser(), name: 'short'}), \u002F\u002F false: refined minLength 10\n  validateUser({...mockUser(), age: 17}), \u002F\u002F false: refined min 18\n];\n\nconst wire = encodeUser(mockUser())!; \u002F\u002F a JSON string, the Date made wire-safe\nexport const restored = decodeUser(wire); \u002F\u002F restored.createdAt instanceof Date\n",[446,5437,5438,5458,5478,5504,5510,5517,5524,5531,5545,5567,5571,5599,5644,5691,5727,5751,5767,5777,5788,5796,5804,5808,5813,5834,5853,5870,5878,5882,5904,5926,5951,5955,5977,6004,6028,6052,6056,6061,6073,6090,6126,6157,6163,6167,6192],{"__ignoreMap":496},[500,5439,5440,5442,5444,5446,5448,5450,5452,5454,5456],{"class":502,"line":503},[500,5441,553],{"class":552},[500,5443,557],{"class":556},[500,5445,560],{"class":552},[500,5447,564],{"class":563},[500,5449,567],{"class":552},[500,5451,570],{"class":556},[500,5453,448],{"class":510},[500,5455,575],{"class":556},[500,5457,578],{"class":556},[500,5459,5460,5462,5464,5466,5468,5470,5472,5474,5476],{"class":502,"line":523},[500,5461,553],{"class":552},[500,5463,588],{"class":556},[500,5465,5429],{"class":563},[500,5467,594],{"class":556},[500,5469,597],{"class":552},[500,5471,570],{"class":556},[500,5473,602],{"class":510},[500,5475,575],{"class":556},[500,5477,578],{"class":556},[500,5479,5480,5482,5484,5486,5488,5490,5492,5494,5496,5498,5500,5502],{"class":502,"line":609},[500,5481,553],{"class":552},[500,5483,585],{"class":552},[500,5485,588],{"class":556},[500,5487,1735],{"class":563},[500,5489,680],{"class":556},[500,5491,977],{"class":563},[500,5493,594],{"class":556},[500,5495,597],{"class":552},[500,5497,570],{"class":556},[500,5499,602],{"class":510},[500,5501,575],{"class":556},[500,5503,578],{"class":556},[500,5505,5506,5508],{"class":502,"line":632},[500,5507,553],{"class":552},[500,5509,683],{"class":556},[500,5511,5512,5515],{"class":502,"line":639},[500,5513,5514],{"class":563},"  createJsonDecoderFn",[500,5516,730],{"class":556},[500,5518,5519,5522],{"class":502,"line":645},[500,5520,5521],{"class":563},"  createJsonEncoderFn",[500,5523,730],{"class":556},[500,5525,5526,5529],{"class":502,"line":686},[500,5527,5528],{"class":563},"  createValidateFn",[500,5530,730],{"class":556},[500,5532,5533,5535,5537,5539,5541,5543],{"class":502,"line":733},[500,5534,594],{"class":556},[500,5536,597],{"class":552},[500,5538,570],{"class":556},[500,5540,625],{"class":510},[500,5542,575],{"class":556},[500,5544,578],{"class":556},[500,5546,5547,5549,5551,5554,5556,5558,5560,5563,5565],{"class":502,"line":785},[500,5548,553],{"class":552},[500,5550,588],{"class":556},[500,5552,5553],{"class":563},"createMockDataFn",[500,5555,594],{"class":556},[500,5557,597],{"class":552},[500,5559,570],{"class":556},[500,5561,5562],{"class":510},"@mionjs\u002Frun-types\u002Fmocking",[500,5564,575],{"class":556},[500,5566,578],{"class":556},[500,5568,5569],{"class":502,"line":826},[500,5570,636],{"emptyLinePlaceholder":635},[500,5572,5573,5575,5577,5579,5581,5583,5585,5587,5589,5591,5593,5595,5597],{"class":502,"line":895},[500,5574,648],{"class":552},[500,5576,652],{"class":651},[500,5578,655],{"class":563},[500,5580,658],{"class":556},[500,5582,661],{"class":563},[500,5584,483],{"class":556},[500,5586,667],{"class":666},[500,5588,670],{"class":563},[500,5590,575],{"class":556},[500,5592,675],{"class":510},[500,5594,575],{"class":556},[500,5596,680],{"class":556},[500,5598,683],{"class":556},[500,5600,5601,5603,5605,5607,5609,5611,5613,5615,5617,5619,5621,5623,5625,5627,5629,5631,5634,5636,5638,5640,5642],{"class":502,"line":944},[500,5602,690],{"class":689},[500,5604,693],{"class":556},[500,5606,661],{"class":563},[500,5608,483],{"class":556},[500,5610,700],{"class":666},[500,5612,670],{"class":563},[500,5614,575],{"class":556},[500,5616,707],{"class":510},[500,5618,575],{"class":556},[500,5620,680],{"class":556},[500,5622,588],{"class":556},[500,5624,716],{"class":689},[500,5626,693],{"class":556},[500,5628,722],{"class":721},[500,5630,680],{"class":556},[500,5632,5633],{"class":689}," defaultRandom",[500,5635,693],{"class":556},[500,5637,722],{"class":721},[500,5639,594],{"class":556},[500,5641,727],{"class":563},[500,5643,730],{"class":556},[500,5645,5646,5648,5650,5652,5654,5656,5658,5660,5662,5664,5666,5668,5670,5672,5674,5676,5678,5680,5682,5684,5686,5688],{"class":502,"line":953},[500,5647,736],{"class":689},[500,5649,693],{"class":556},[500,5651,661],{"class":563},[500,5653,483],{"class":556},[500,5655,745],{"class":666},[500,5657,670],{"class":563},[500,5659,575],{"class":556},[500,5661,752],{"class":510},[500,5663,575],{"class":556},[500,5665,680],{"class":556},[500,5667,588],{"class":556},[500,5669,761],{"class":689},[500,5671,693],{"class":556},[500,5673,767],{"class":766},[500,5675,680],{"class":556},[500,5677,772],{"class":689},[500,5679,693],{"class":556},[500,5681,722],{"class":721},[500,5683,594],{"class":556},[500,5685,727],{"class":563},[500,5687,680],{"class":556},[500,5689,5690],{"class":533}," \u002F\u002F captured as String\u003C{maxLength: 100}>\n",[500,5692,5693,5695,5697,5699,5701,5703,5705,5707,5709,5711,5713,5715,5717,5719,5721,5723,5725],{"class":502,"line":958},[500,5694,788],{"class":689},[500,5696,693],{"class":556},[500,5698,661],{"class":563},[500,5700,483],{"class":556},[500,5702,797],{"class":666},[500,5704,670],{"class":563},[500,5706,575],{"class":556},[500,5708,804],{"class":510},[500,5710,575],{"class":556},[500,5712,680],{"class":556},[500,5714,588],{"class":556},[500,5716,813],{"class":689},[500,5718,693],{"class":556},[500,5720,722],{"class":721},[500,5722,594],{"class":556},[500,5724,727],{"class":563},[500,5726,730],{"class":556},[500,5728,5729,5731,5733,5735,5737,5739,5741,5743,5745,5747,5749],{"class":502,"line":964},[500,5730,898],{"class":689},[500,5732,693],{"class":556},[500,5734,661],{"class":563},[500,5736,483],{"class":556},[500,5738,907],{"class":666},[500,5740,670],{"class":563},[500,5742,575],{"class":556},[500,5744,914],{"class":510},[500,5746,575],{"class":556},[500,5748,680],{"class":556},[500,5750,683],{"class":556},[500,5752,5753,5756,5758,5760,5763,5765],{"class":502,"line":989},[500,5754,5755],{"class":689},"    mode",[500,5757,693],{"class":556},[500,5759,570],{"class":556},[500,5761,5762],{"class":510},"date",[500,5764,575],{"class":556},[500,5766,730],{"class":556},[500,5768,5769,5771,5773,5775],{"class":502,"line":994},[500,5770,4670],{"class":689},[500,5772,693],{"class":556},[500,5774,722],{"class":721},[500,5776,730],{"class":556},[500,5778,5779,5782,5784,5786],{"class":502,"line":1000},[500,5780,5781],{"class":689},"    defaultNow",[500,5783,693],{"class":556},[500,5785,722],{"class":721},[500,5787,730],{"class":556},[500,5789,5790,5792,5794],{"class":502,"line":1029},[500,5791,1144],{"class":556},[500,5793,727],{"class":563},[500,5795,730],{"class":556},[500,5797,5798,5800,5802],{"class":502,"line":1034},[500,5799,594],{"class":556},[500,5801,727],{"class":563},[500,5803,578],{"class":556},[500,5805,5806],{"class":502,"line":1049},[500,5807,636],{"emptyLinePlaceholder":635},[500,5809,5810],{"class":502,"line":1060},[500,5811,5812],{"class":533},"\u002F\u002F stricter types for the API\n",[500,5814,5815,5817,5819,5822,5824,5827,5830,5832],{"class":502,"line":1077},[500,5816,648],{"class":552},[500,5818,652],{"class":651},[500,5820,5821],{"class":563}," apiUsers ",[500,5823,658],{"class":556},[500,5825,5826],{"class":666}," refineTableType",[500,5828,5829],{"class":563},"(users",[500,5831,680],{"class":556},[500,5833,683],{"class":556},[500,5835,5836,5838,5840,5842,5845,5847,5850],{"class":502,"line":1094},[500,5837,736],{"class":689},[500,5839,693],{"class":556},[500,5841,588],{"class":556},[500,5843,5844],{"class":689},"minLength",[500,5846,693],{"class":556},[500,5848,5849],{"class":766}," 10",[500,5851,5852],{"class":556},"},\n",[500,5854,5855,5857,5859,5861,5864,5866,5868],{"class":502,"line":1107},[500,5856,788],{"class":689},[500,5858,693],{"class":556},[500,5860,588],{"class":556},[500,5862,5863],{"class":689},"min",[500,5865,693],{"class":556},[500,5867,4087],{"class":766},[500,5869,5852],{"class":556},[500,5871,5872,5874,5876],{"class":502,"line":1123},[500,5873,594],{"class":556},[500,5875,727],{"class":563},[500,5877,578],{"class":556},[500,5879,5880],{"class":502,"line":1141},[500,5881,636],{"emptyLinePlaceholder":635},[500,5883,5884,5886,5888,5890,5892,5894,5896,5899,5901],{"class":502,"line":1154},[500,5885,648],{"class":552},[500,5887,585],{"class":651},[500,5889,971],{"class":506},[500,5891,974],{"class":556},[500,5893,977],{"class":506},[500,5895,980],{"class":556},[500,5897,5898],{"class":563}," apiUsers",[500,5900,2625],{"class":556},[500,5902,5903],{"class":533}," \u002F\u002F name: String\u003C{maxLength: 100, minLength: 10}>\n",[500,5905,5906,5908,5910,5913,5915,5917,5919,5921,5923],{"class":502,"line":1163},[500,5907,648],{"class":552},[500,5909,585],{"class":651},[500,5911,5912],{"class":506}," NewUser",[500,5914,974],{"class":556},[500,5916,2006],{"class":506},[500,5918,980],{"class":556},[500,5920,5898],{"class":563},[500,5922,2625],{"class":556},[500,5924,5925],{"class":533}," \u002F\u002F id and createdAt optional (DB defaults)\n",[500,5927,5928,5930,5932,5935,5937,5940,5942,5944,5946,5948],{"class":502,"line":1179},[500,5929,648],{"class":552},[500,5931,585],{"class":651},[500,5933,5934],{"class":506}," UserPatch",[500,5936,974],{"class":556},[500,5938,5939],{"class":506}," Partial",[500,5941,1015],{"class":556},[500,5943,1735],{"class":506},[500,5945,980],{"class":556},[500,5947,5898],{"class":563},[500,5949,5950],{"class":556},">>;\n",[500,5952,5953],{"class":502,"line":1210},[500,5954,636],{"emptyLinePlaceholder":635},[500,5956,5957,5959,5961,5963,5965,5967,5969,5971,5973,5975],{"class":502,"line":1221},[500,5958,648],{"class":552},[500,5960,652],{"class":651},[500,5962,1007],{"class":563},[500,5964,658],{"class":556},[500,5966,1012],{"class":666},[500,5968,1015],{"class":556},[500,5970,1018],{"class":506},[500,5972,1021],{"class":556},[500,5974,1024],{"class":563},[500,5976,578],{"class":556},[500,5978,5979,5981,5983,5986,5988,5991,5993,5995,5997,5999,6001],{"class":502,"line":1236},[500,5980,648],{"class":552},[500,5982,652],{"class":651},[500,5984,5985],{"class":563}," mockUser ",[500,5987,658],{"class":556},[500,5989,5990],{"class":666}," createMockDataFn",[500,5992,1015],{"class":556},[500,5994,1018],{"class":506},[500,5996,1021],{"class":556},[500,5998,1024],{"class":563},[500,6000,2480],{"class":556},[500,6002,6003],{"class":533}," \u002F\u002F realistic rows that pass validateUser\n",[500,6005,6006,6008,6010,6013,6015,6018,6020,6022,6024,6026],{"class":502,"line":1251},[500,6007,648],{"class":552},[500,6009,652],{"class":651},[500,6011,6012],{"class":563}," encodeUser ",[500,6014,658],{"class":556},[500,6016,6017],{"class":666}," createJsonEncoderFn",[500,6019,1015],{"class":556},[500,6021,1018],{"class":506},[500,6023,1021],{"class":556},[500,6025,1024],{"class":563},[500,6027,578],{"class":556},[500,6029,6030,6032,6034,6037,6039,6042,6044,6046,6048,6050],{"class":502,"line":1260},[500,6031,648],{"class":552},[500,6033,652],{"class":651},[500,6035,6036],{"class":563}," decodeUser ",[500,6038,658],{"class":556},[500,6040,6041],{"class":666}," createJsonDecoderFn",[500,6043,1015],{"class":556},[500,6045,1018],{"class":506},[500,6047,1021],{"class":556},[500,6049,1024],{"class":563},[500,6051,578],{"class":556},[500,6053,6054],{"class":502,"line":2825},[500,6055,636],{"emptyLinePlaceholder":635},[500,6057,6058],{"class":502,"line":2834},[500,6059,6060],{"class":533},"\u002F\u002F checks the captured AND the refined bounds\n",[500,6062,6063,6065,6067,6069,6071],{"class":502,"line":2849},[500,6064,648],{"class":552},[500,6066,652],{"class":651},[500,6068,1041],{"class":563},[500,6070,658],{"class":556},[500,6072,1046],{"class":563},[500,6074,6075,6077,6079,6082,6085,6087],{"class":502,"line":2876},[500,6076,1052],{"class":666},[500,6078,670],{"class":563},[500,6080,6081],{"class":666},"mockUser",[500,6083,6084],{"class":563},"())",[500,6086,680],{"class":556},[500,6088,6089],{"class":533}," \u002F\u002F true: mock data respects every bound\n",[500,6091,6092,6094,6096,6099,6101,6103,6105,6108,6110,6112,6115,6117,6119,6121,6123],{"class":502,"line":2887},[500,6093,1052],{"class":666},[500,6095,670],{"class":563},[500,6097,6098],{"class":556},"{...",[500,6100,6081],{"class":666},[500,6102,1024],{"class":563},[500,6104,680],{"class":556},[500,6106,6107],{"class":689}," name",[500,6109,693],{"class":556},[500,6111,570],{"class":556},[500,6113,6114],{"class":510},"short",[500,6116,575],{"class":556},[500,6118,594],{"class":556},[500,6120,727],{"class":563},[500,6122,680],{"class":556},[500,6124,6125],{"class":533}," \u002F\u002F false: refined minLength 10\n",[500,6127,6128,6130,6132,6134,6136,6138,6140,6143,6145,6148,6150,6152,6154],{"class":502,"line":2902},[500,6129,1052],{"class":666},[500,6131,670],{"class":563},[500,6133,6098],{"class":556},[500,6135,6081],{"class":666},[500,6137,1024],{"class":563},[500,6139,680],{"class":556},[500,6141,6142],{"class":689}," age",[500,6144,693],{"class":556},[500,6146,6147],{"class":766}," 17",[500,6149,594],{"class":556},[500,6151,727],{"class":563},[500,6153,680],{"class":556},[500,6155,6156],{"class":533}," \u002F\u002F false: refined min 18\n",[500,6158,6159,6161],{"class":502,"line":2917},[500,6160,878],{"class":563},[500,6162,578],{"class":556},[500,6164,6165],{"class":502,"line":2926},[500,6166,636],{"emptyLinePlaceholder":635},[500,6168,6170,6172,6175,6177,6180,6182,6184,6186,6189],{"class":502,"line":6169},44,[500,6171,3960],{"class":651},[500,6173,6174],{"class":563}," wire ",[500,6176,658],{"class":556},[500,6178,6179],{"class":666}," encodeUser",[500,6181,670],{"class":563},[500,6183,6081],{"class":666},[500,6185,6084],{"class":563},[500,6187,6188],{"class":556},"!;",[500,6190,6191],{"class":533}," \u002F\u002F a JSON string, the Date made wire-safe\n",[500,6193,6195,6197,6199,6202,6204,6207,6210,6212],{"class":502,"line":6194},45,[500,6196,648],{"class":552},[500,6198,652],{"class":651},[500,6200,6201],{"class":563}," restored ",[500,6203,658],{"class":556},[500,6205,6206],{"class":666}," decodeUser",[500,6208,6209],{"class":563},"(wire)",[500,6211,2480],{"class":556},[500,6213,6214],{"class":533}," \u002F\u002F restored.createdAt instanceof Date\n",[491,6216,6218],{"className":543,"code":6217,"filename":4099,"language":545,"meta":496,"style":496},"import * as DZ from '@mionjs\u002Fdrizzle-orm-pg-core';\nimport {refineTableType} from '@mionjs\u002Fdrizzle-orm';\nimport type {InferInsertModel, InferSelectModel} from '@mionjs\u002Fdrizzle-orm';\nimport {\n  createJsonDecoderFn,\n  createJsonEncoderFn,\n  createValidateFn,\n} from '@mionjs\u002Frun-types';\nimport {createMockDataFn} from '@mionjs\u002Frun-types\u002Fmocking';\n\nexport type UsersTable = DZ.PgTable\u003C\n  'users',\n  {\n    id: DZ.Uuid\u003C{primaryKey: true; defaultRandom: true}>;\n    name: DZ.Varchar\u003C{length: 100; notNull: true}>; \u002F\u002F captured as String\u003C{maxLength: 100}>\n    age: DZ.Integer\u003C{notNull: true}>;\n    createdAt: DZ.Timestamp\u003C{mode: 'date'; notNull: true; defaultNow: true}>;\n  },\n  [],\n  {createdAt: 'created_at'}\n>;\nexport const users = DZ.tableFromType\u003CUsersTable>();\n\n\u002F\u002F stricter types for the API\nexport const apiUsers = refineTableType(users, {\n  name: {minLength: 10},\n  age: {min: 18},\n});\n\nexport type User = InferSelectModel\u003Ctypeof apiUsers>; \u002F\u002F name: String\u003C{maxLength: 100, minLength: 10}>\nexport type NewUser = InferInsertModel\u003Ctypeof apiUsers>; \u002F\u002F id and createdAt optional (DB defaults)\nexport type UserPatch = Partial\u003CInferInsertModel\u003Ctypeof apiUsers>>;\n\nexport const validateUser = createValidateFn\u003CUser>();\nexport const mockUser = createMockDataFn\u003CUser>(); \u002F\u002F realistic rows that pass validateUser\nexport const encodeUser = createJsonEncoderFn\u003CUser>();\nexport const decodeUser = createJsonDecoderFn\u003CUser>();\n\n\u002F\u002F checks the captured AND the refined bounds\nexport const checks = [\n  validateUser(mockUser()), \u002F\u002F true: mock data respects every bound\n  validateUser({...mockUser(), name: 'short'}), \u002F\u002F false: refined minLength 10\n  validateUser({...mockUser(), age: 17}), \u002F\u002F false: refined min 18\n];\n\nconst wire = encodeUser(mockUser())!; \u002F\u002F a JSON string, the Date made wire-safe\nexport const restored = decodeUser(wire); \u002F\u002F restored.createdAt instanceof Date\n",[446,6219,6220,6240,6260,6286,6292,6298,6304,6310,6324,6344,6348,6366,6376,6380,6410,6442,6464,6507,6511,6517,6533,6537,6563,6567,6571,6589,6605,6621,6629,6633,6653,6673,6695,6699,6721,6745,6767,6789,6793,6797,6809,6823,6855,6883,6889,6893,6914],{"__ignoreMap":496},[500,6221,6222,6224,6226,6228,6230,6232,6234,6236,6238],{"class":502,"line":503},[500,6223,553],{"class":552},[500,6225,557],{"class":556},[500,6227,560],{"class":552},[500,6229,564],{"class":563},[500,6231,567],{"class":552},[500,6233,570],{"class":556},[500,6235,448],{"class":510},[500,6237,575],{"class":556},[500,6239,578],{"class":556},[500,6241,6242,6244,6246,6248,6250,6252,6254,6256,6258],{"class":502,"line":523},[500,6243,553],{"class":552},[500,6245,588],{"class":556},[500,6247,5429],{"class":563},[500,6249,594],{"class":556},[500,6251,597],{"class":552},[500,6253,570],{"class":556},[500,6255,602],{"class":510},[500,6257,575],{"class":556},[500,6259,578],{"class":556},[500,6261,6262,6264,6266,6268,6270,6272,6274,6276,6278,6280,6282,6284],{"class":502,"line":609},[500,6263,553],{"class":552},[500,6265,585],{"class":552},[500,6267,588],{"class":556},[500,6269,1735],{"class":563},[500,6271,680],{"class":556},[500,6273,977],{"class":563},[500,6275,594],{"class":556},[500,6277,597],{"class":552},[500,6279,570],{"class":556},[500,6281,602],{"class":510},[500,6283,575],{"class":556},[500,6285,578],{"class":556},[500,6287,6288,6290],{"class":502,"line":632},[500,6289,553],{"class":552},[500,6291,683],{"class":556},[500,6293,6294,6296],{"class":502,"line":639},[500,6295,5514],{"class":563},[500,6297,730],{"class":556},[500,6299,6300,6302],{"class":502,"line":645},[500,6301,5521],{"class":563},[500,6303,730],{"class":556},[500,6305,6306,6308],{"class":502,"line":686},[500,6307,5528],{"class":563},[500,6309,730],{"class":556},[500,6311,6312,6314,6316,6318,6320,6322],{"class":502,"line":733},[500,6313,594],{"class":556},[500,6315,597],{"class":552},[500,6317,570],{"class":556},[500,6319,625],{"class":510},[500,6321,575],{"class":556},[500,6323,578],{"class":556},[500,6325,6326,6328,6330,6332,6334,6336,6338,6340,6342],{"class":502,"line":785},[500,6327,553],{"class":552},[500,6329,588],{"class":556},[500,6331,5553],{"class":563},[500,6333,594],{"class":556},[500,6335,597],{"class":552},[500,6337,570],{"class":556},[500,6339,5562],{"class":510},[500,6341,575],{"class":556},[500,6343,578],{"class":556},[500,6345,6346],{"class":502,"line":826},[500,6347,636],{"emptyLinePlaceholder":635},[500,6349,6350,6352,6354,6356,6358,6360,6362,6364],{"class":502,"line":895},[500,6351,648],{"class":552},[500,6353,585],{"class":651},[500,6355,2403],{"class":506},[500,6357,974],{"class":556},[500,6359,661],{"class":506},[500,6361,483],{"class":556},[500,6363,2412],{"class":506},[500,6365,2415],{"class":556},[500,6367,6368,6370,6372,6374],{"class":502,"line":944},[500,6369,2420],{"class":556},[500,6371,675],{"class":510},[500,6373,575],{"class":556},[500,6375,730],{"class":556},[500,6377,6378],{"class":502,"line":953},[500,6379,2431],{"class":556},[500,6381,6382,6384,6386,6388,6390,6392,6394,6396,6398,6400,6402,6404,6406,6408],{"class":502,"line":958},[500,6383,1063],{"class":689},[500,6385,693],{"class":556},[500,6387,661],{"class":506},[500,6389,483],{"class":556},[500,6391,2444],{"class":506},[500,6393,2447],{"class":556},[500,6395,716],{"class":689},[500,6397,693],{"class":556},[500,6399,722],{"class":506},[500,6401,2480],{"class":556},[500,6403,5633],{"class":689},[500,6405,693],{"class":556},[500,6407,722],{"class":506},[500,6409,2456],{"class":556},[500,6411,6412,6414,6416,6418,6420,6422,6424,6426,6428,6430,6432,6434,6436,6438,6440],{"class":502,"line":964},[500,6413,1080],{"class":689},[500,6415,693],{"class":556},[500,6417,661],{"class":506},[500,6419,483],{"class":556},[500,6421,2469],{"class":506},[500,6423,2447],{"class":556},[500,6425,761],{"class":689},[500,6427,693],{"class":556},[500,6429,767],{"class":766},[500,6431,2480],{"class":556},[500,6433,772],{"class":689},[500,6435,693],{"class":556},[500,6437,722],{"class":506},[500,6439,3099],{"class":556},[500,6441,5690],{"class":533},[500,6443,6444,6446,6448,6450,6452,6454,6456,6458,6460,6462],{"class":502,"line":989},[500,6445,1097],{"class":689},[500,6447,693],{"class":556},[500,6449,661],{"class":506},[500,6451,483],{"class":556},[500,6453,2501],{"class":506},[500,6455,2447],{"class":556},[500,6457,813],{"class":689},[500,6459,693],{"class":556},[500,6461,722],{"class":506},[500,6463,2456],{"class":556},[500,6465,6466,6468,6470,6472,6474,6476,6478,6480,6482,6484,6486,6488,6490,6492,6494,6496,6498,6501,6503,6505],{"class":502,"line":994},[500,6467,1126],{"class":689},[500,6469,693],{"class":556},[500,6471,661],{"class":506},[500,6473,483],{"class":556},[500,6475,2571],{"class":506},[500,6477,2447],{"class":556},[500,6479,1955],{"class":689},[500,6481,693],{"class":556},[500,6483,570],{"class":556},[500,6485,5762],{"class":510},[500,6487,575],{"class":556},[500,6489,2480],{"class":556},[500,6491,772],{"class":689},[500,6493,693],{"class":556},[500,6495,722],{"class":506},[500,6497,2480],{"class":556},[500,6499,6500],{"class":689}," defaultNow",[500,6502,693],{"class":556},[500,6504,722],{"class":506},[500,6506,2456],{"class":556},[500,6508,6509],{"class":502,"line":1000},[500,6510,2594],{"class":556},[500,6512,6513,6515],{"class":502,"line":1029},[500,6514,2599],{"class":563},[500,6516,730],{"class":556},[500,6518,6519,6521,6523,6525,6527,6529,6531],{"class":502,"line":1034},[500,6520,2606],{"class":556},[500,6522,2609],{"class":689},[500,6524,693],{"class":556},[500,6526,570],{"class":556},[500,6528,914],{"class":510},[500,6530,575],{"class":556},[500,6532,2620],{"class":556},[500,6534,6535],{"class":502,"line":1049},[500,6536,986],{"class":556},[500,6538,6539,6541,6543,6545,6547,6549,6551,6553,6555,6557,6559,6561],{"class":502,"line":1060},[500,6540,648],{"class":552},[500,6542,652],{"class":651},[500,6544,655],{"class":563},[500,6546,658],{"class":556},[500,6548,661],{"class":563},[500,6550,483],{"class":556},[500,6552,2654],{"class":666},[500,6554,1015],{"class":556},[500,6556,2659],{"class":506},[500,6558,1021],{"class":556},[500,6560,1024],{"class":563},[500,6562,578],{"class":556},[500,6564,6565],{"class":502,"line":1077},[500,6566,636],{"emptyLinePlaceholder":635},[500,6568,6569],{"class":502,"line":1094},[500,6570,5812],{"class":533},[500,6572,6573,6575,6577,6579,6581,6583,6585,6587],{"class":502,"line":1107},[500,6574,648],{"class":552},[500,6576,652],{"class":651},[500,6578,5821],{"class":563},[500,6580,658],{"class":556},[500,6582,5826],{"class":666},[500,6584,5829],{"class":563},[500,6586,680],{"class":556},[500,6588,683],{"class":556},[500,6590,6591,6593,6595,6597,6599,6601,6603],{"class":502,"line":1123},[500,6592,736],{"class":689},[500,6594,693],{"class":556},[500,6596,588],{"class":556},[500,6598,5844],{"class":689},[500,6600,693],{"class":556},[500,6602,5849],{"class":766},[500,6604,5852],{"class":556},[500,6606,6607,6609,6611,6613,6615,6617,6619],{"class":502,"line":1141},[500,6608,788],{"class":689},[500,6610,693],{"class":556},[500,6612,588],{"class":556},[500,6614,5863],{"class":689},[500,6616,693],{"class":556},[500,6618,4087],{"class":766},[500,6620,5852],{"class":556},[500,6622,6623,6625,6627],{"class":502,"line":1154},[500,6624,594],{"class":556},[500,6626,727],{"class":563},[500,6628,578],{"class":556},[500,6630,6631],{"class":502,"line":1163},[500,6632,636],{"emptyLinePlaceholder":635},[500,6634,6635,6637,6639,6641,6643,6645,6647,6649,6651],{"class":502,"line":1179},[500,6636,648],{"class":552},[500,6638,585],{"class":651},[500,6640,971],{"class":506},[500,6642,974],{"class":556},[500,6644,977],{"class":506},[500,6646,980],{"class":556},[500,6648,5898],{"class":563},[500,6650,2625],{"class":556},[500,6652,5903],{"class":533},[500,6654,6655,6657,6659,6661,6663,6665,6667,6669,6671],{"class":502,"line":1210},[500,6656,648],{"class":552},[500,6658,585],{"class":651},[500,6660,5912],{"class":506},[500,6662,974],{"class":556},[500,6664,2006],{"class":506},[500,6666,980],{"class":556},[500,6668,5898],{"class":563},[500,6670,2625],{"class":556},[500,6672,5925],{"class":533},[500,6674,6675,6677,6679,6681,6683,6685,6687,6689,6691,6693],{"class":502,"line":1221},[500,6676,648],{"class":552},[500,6678,585],{"class":651},[500,6680,5934],{"class":506},[500,6682,974],{"class":556},[500,6684,5939],{"class":506},[500,6686,1015],{"class":556},[500,6688,1735],{"class":506},[500,6690,980],{"class":556},[500,6692,5898],{"class":563},[500,6694,5950],{"class":556},[500,6696,6697],{"class":502,"line":1236},[500,6698,636],{"emptyLinePlaceholder":635},[500,6700,6701,6703,6705,6707,6709,6711,6713,6715,6717,6719],{"class":502,"line":1251},[500,6702,648],{"class":552},[500,6704,652],{"class":651},[500,6706,1007],{"class":563},[500,6708,658],{"class":556},[500,6710,1012],{"class":666},[500,6712,1015],{"class":556},[500,6714,1018],{"class":506},[500,6716,1021],{"class":556},[500,6718,1024],{"class":563},[500,6720,578],{"class":556},[500,6722,6723,6725,6727,6729,6731,6733,6735,6737,6739,6741,6743],{"class":502,"line":1260},[500,6724,648],{"class":552},[500,6726,652],{"class":651},[500,6728,5985],{"class":563},[500,6730,658],{"class":556},[500,6732,5990],{"class":666},[500,6734,1015],{"class":556},[500,6736,1018],{"class":506},[500,6738,1021],{"class":556},[500,6740,1024],{"class":563},[500,6742,2480],{"class":556},[500,6744,6003],{"class":533},[500,6746,6747,6749,6751,6753,6755,6757,6759,6761,6763,6765],{"class":502,"line":2825},[500,6748,648],{"class":552},[500,6750,652],{"class":651},[500,6752,6012],{"class":563},[500,6754,658],{"class":556},[500,6756,6017],{"class":666},[500,6758,1015],{"class":556},[500,6760,1018],{"class":506},[500,6762,1021],{"class":556},[500,6764,1024],{"class":563},[500,6766,578],{"class":556},[500,6768,6769,6771,6773,6775,6777,6779,6781,6783,6785,6787],{"class":502,"line":2834},[500,6770,648],{"class":552},[500,6772,652],{"class":651},[500,6774,6036],{"class":563},[500,6776,658],{"class":556},[500,6778,6041],{"class":666},[500,6780,1015],{"class":556},[500,6782,1018],{"class":506},[500,6784,1021],{"class":556},[500,6786,1024],{"class":563},[500,6788,578],{"class":556},[500,6790,6791],{"class":502,"line":2849},[500,6792,636],{"emptyLinePlaceholder":635},[500,6794,6795],{"class":502,"line":2876},[500,6796,6060],{"class":533},[500,6798,6799,6801,6803,6805,6807],{"class":502,"line":2887},[500,6800,648],{"class":552},[500,6802,652],{"class":651},[500,6804,1041],{"class":563},[500,6806,658],{"class":556},[500,6808,1046],{"class":563},[500,6810,6811,6813,6815,6817,6819,6821],{"class":502,"line":2902},[500,6812,1052],{"class":666},[500,6814,670],{"class":563},[500,6816,6081],{"class":666},[500,6818,6084],{"class":563},[500,6820,680],{"class":556},[500,6822,6089],{"class":533},[500,6824,6825,6827,6829,6831,6833,6835,6837,6839,6841,6843,6845,6847,6849,6851,6853],{"class":502,"line":2917},[500,6826,1052],{"class":666},[500,6828,670],{"class":563},[500,6830,6098],{"class":556},[500,6832,6081],{"class":666},[500,6834,1024],{"class":563},[500,6836,680],{"class":556},[500,6838,6107],{"class":689},[500,6840,693],{"class":556},[500,6842,570],{"class":556},[500,6844,6114],{"class":510},[500,6846,575],{"class":556},[500,6848,594],{"class":556},[500,6850,727],{"class":563},[500,6852,680],{"class":556},[500,6854,6125],{"class":533},[500,6856,6857,6859,6861,6863,6865,6867,6869,6871,6873,6875,6877,6879,6881],{"class":502,"line":2926},[500,6858,1052],{"class":666},[500,6860,670],{"class":563},[500,6862,6098],{"class":556},[500,6864,6081],{"class":666},[500,6866,1024],{"class":563},[500,6868,680],{"class":556},[500,6870,6142],{"class":689},[500,6872,693],{"class":556},[500,6874,6147],{"class":766},[500,6876,594],{"class":556},[500,6878,727],{"class":563},[500,6880,680],{"class":556},[500,6882,6156],{"class":533},[500,6884,6885,6887],{"class":502,"line":6169},[500,6886,878],{"class":563},[500,6888,578],{"class":556},[500,6890,6891],{"class":502,"line":6194},[500,6892,636],{"emptyLinePlaceholder":635},[500,6894,6896,6898,6900,6902,6904,6906,6908,6910,6912],{"class":502,"line":6895},46,[500,6897,3960],{"class":651},[500,6899,6174],{"class":563},[500,6901,658],{"class":556},[500,6903,6179],{"class":666},[500,6905,670],{"class":563},[500,6907,6081],{"class":666},[500,6909,6084],{"class":563},[500,6911,6188],{"class":556},[500,6913,6191],{"class":533},[500,6915,6917,6919,6921,6923,6925,6927,6929,6931],{"class":502,"line":6916},47,[500,6918,648],{"class":552},[500,6920,652],{"class":651},[500,6922,6201],{"class":563},[500,6924,658],{"class":556},[500,6926,6206],{"class":666},[500,6928,6209],{"class":563},[500,6930,2480],{"class":556},[500,6932,6214],{"class":533},[405,6934,6935],{},"A refinement that does not fit the column is a compile error, never a silent override: a number rule on a string column, an unknown parameter, or a change to whether the column accepts null (that stays with notNull on the table). Columns without a format (booleans, JSON, enums) cannot be refined.",[2162,6937,6939],{"id":6938},"refined-table-types","Refined Table Types",[405,6941,6942,6945],{},[446,6943,6944],{},"RefinedTable"," does the same refinement as a type, with no table value: it takes the table type and the per-column rules, so a types-only file can export the API view of a table.",[491,6947,6949],{"className":543,"code":6948,"language":545,"meta":496,"style":496},"import type {RefinedTable} from '@mionjs\u002Fdrizzle-orm';\nimport type {UsersTable} from '.\u002Fschema.ts';\n\ntype ApiUsersTable = RefinedTable\u003CUsersTable, {name: {minLength: 10}; age: {min: 18}}>;\n",[446,6950,6951,6973,6996,7000],{"__ignoreMap":496},[500,6952,6953,6955,6957,6959,6961,6963,6965,6967,6969,6971],{"class":502,"line":503},[500,6954,553],{"class":552},[500,6956,585],{"class":552},[500,6958,588],{"class":556},[500,6960,6944],{"class":563},[500,6962,594],{"class":556},[500,6964,597],{"class":552},[500,6966,570],{"class":556},[500,6968,602],{"class":510},[500,6970,575],{"class":556},[500,6972,578],{"class":556},[500,6974,6975,6977,6979,6981,6983,6985,6987,6989,6992,6994],{"class":502,"line":523},[500,6976,553],{"class":552},[500,6978,585],{"class":552},[500,6980,588],{"class":556},[500,6982,2659],{"class":563},[500,6984,594],{"class":556},[500,6986,597],{"class":552},[500,6988,570],{"class":556},[500,6990,6991],{"class":510},".\u002Fschema.ts",[500,6993,575],{"class":556},[500,6995,578],{"class":556},[500,6997,6998],{"class":502,"line":609},[500,6999,636],{"emptyLinePlaceholder":635},[500,7001,7002,7005,7008,7010,7013,7015,7017,7019,7021,7023,7025,7027,7029,7031,7033,7036,7038,7040,7042,7044,7046,7048],{"class":502,"line":632},[500,7003,7004],{"class":651},"type",[500,7006,7007],{"class":506}," ApiUsersTable",[500,7009,974],{"class":556},[500,7011,7012],{"class":506}," RefinedTable",[500,7014,1015],{"class":556},[500,7016,2659],{"class":506},[500,7018,680],{"class":556},[500,7020,588],{"class":556},[500,7022,752],{"class":689},[500,7024,693],{"class":556},[500,7026,588],{"class":556},[500,7028,5844],{"class":689},[500,7030,693],{"class":556},[500,7032,5849],{"class":766},[500,7034,7035],{"class":556},"};",[500,7037,6142],{"class":689},[500,7039,693],{"class":556},[500,7041,588],{"class":556},[500,7043,5863],{"class":689},[500,7045,693],{"class":556},[500,7047,4087],{"class":766},[500,7049,7050],{"class":556},"}}>;\n",[2162,7052,7054],{"id":7053},"insert-select-and-update-payloads","Insert, Select and Update Payloads",[405,7056,7057,7059,7060,7062,7063,7065,7066,7069],{},[446,7058,591],{}," and ",[446,7061,1735],{}," keep drizzle's names, so a schema file ports by changing only the import. They come from ",[446,7064,602],{},", with refineTableType and the sql template, and work on any table, refined or not: inserts drop generated columns and make defaulted ones optional. As in drizzle, an update is ",[446,7067,7068],{},"Partial\u003CInferInsertModel\u003Ctypeof users>>",". From a table type, the file is types only.",[539,7071,7072,7470],{},[491,7073,7075],{"className":543,"code":7074,"filename":3824,"language":545,"meta":496,"style":496},"import * as DZ from '@mionjs\u002Fdrizzle-orm-pg-core';\nimport type {InferInsertModel, InferSelectModel} from '@mionjs\u002Fdrizzle-orm';\n\nexport const users = DZ.pgTable('users', {\n  id: DZ.uuid('id', {primaryKey: true, defaultRandom: true}),\n  email: DZ.varchar('email', {length: 254, notNull: true}),\n  name: DZ.varchar('name', {length: 100, notNull: true}),\n  bio: DZ.varchar('bio', {length: 500}),\n  createdAt: DZ.timestamp('created_at', {defaultNow: true, notNull: true}),\n});\n\n\u002F\u002F every key present, bio is value | null\nexport type User = InferSelectModel\u003Ctypeof users>;\n\n\u002F\u002F id and createdAt have defaults, so inserts may omit them\nexport type NewUser = InferInsertModel\u003Ctypeof users>;\n\nexport type UserPatch = Partial\u003CInferInsertModel\u003Ctypeof users>>;\n\n\u002F\u002F a NewUser route input checks the varchar lengths and goes into db.insert(...).values() uncast\n",[446,7076,7077,7097,7123,7127,7155,7199,7246,7290,7329,7373,7381,7385,7390,7408,7412,7417,7435,7439,7461,7465],{"__ignoreMap":496},[500,7078,7079,7081,7083,7085,7087,7089,7091,7093,7095],{"class":502,"line":503},[500,7080,553],{"class":552},[500,7082,557],{"class":556},[500,7084,560],{"class":552},[500,7086,564],{"class":563},[500,7088,567],{"class":552},[500,7090,570],{"class":556},[500,7092,448],{"class":510},[500,7094,575],{"class":556},[500,7096,578],{"class":556},[500,7098,7099,7101,7103,7105,7107,7109,7111,7113,7115,7117,7119,7121],{"class":502,"line":523},[500,7100,553],{"class":552},[500,7102,585],{"class":552},[500,7104,588],{"class":556},[500,7106,1735],{"class":563},[500,7108,680],{"class":556},[500,7110,977],{"class":563},[500,7112,594],{"class":556},[500,7114,597],{"class":552},[500,7116,570],{"class":556},[500,7118,602],{"class":510},[500,7120,575],{"class":556},[500,7122,578],{"class":556},[500,7124,7125],{"class":502,"line":609},[500,7126,636],{"emptyLinePlaceholder":635},[500,7128,7129,7131,7133,7135,7137,7139,7141,7143,7145,7147,7149,7151,7153],{"class":502,"line":632},[500,7130,648],{"class":552},[500,7132,652],{"class":651},[500,7134,655],{"class":563},[500,7136,658],{"class":556},[500,7138,661],{"class":563},[500,7140,483],{"class":556},[500,7142,667],{"class":666},[500,7144,670],{"class":563},[500,7146,575],{"class":556},[500,7148,675],{"class":510},[500,7150,575],{"class":556},[500,7152,680],{"class":556},[500,7154,683],{"class":556},[500,7156,7157,7159,7161,7163,7165,7167,7169,7171,7173,7175,7177,7179,7181,7183,7185,7187,7189,7191,7193,7195,7197],{"class":502,"line":639},[500,7158,690],{"class":689},[500,7160,693],{"class":556},[500,7162,661],{"class":563},[500,7164,483],{"class":556},[500,7166,700],{"class":666},[500,7168,670],{"class":563},[500,7170,575],{"class":556},[500,7172,707],{"class":510},[500,7174,575],{"class":556},[500,7176,680],{"class":556},[500,7178,588],{"class":556},[500,7180,716],{"class":689},[500,7182,693],{"class":556},[500,7184,722],{"class":721},[500,7186,680],{"class":556},[500,7188,5633],{"class":689},[500,7190,693],{"class":556},[500,7192,722],{"class":721},[500,7194,594],{"class":556},[500,7196,727],{"class":563},[500,7198,730],{"class":556},[500,7200,7201,7204,7206,7208,7210,7212,7214,7216,7219,7221,7223,7225,7227,7229,7232,7234,7236,7238,7240,7242,7244],{"class":502,"line":645},[500,7202,7203],{"class":689},"  email",[500,7205,693],{"class":556},[500,7207,661],{"class":563},[500,7209,483],{"class":556},[500,7211,745],{"class":666},[500,7213,670],{"class":563},[500,7215,575],{"class":556},[500,7217,7218],{"class":510},"email",[500,7220,575],{"class":556},[500,7222,680],{"class":556},[500,7224,588],{"class":556},[500,7226,761],{"class":689},[500,7228,693],{"class":556},[500,7230,7231],{"class":766}," 254",[500,7233,680],{"class":556},[500,7235,772],{"class":689},[500,7237,693],{"class":556},[500,7239,722],{"class":721},[500,7241,594],{"class":556},[500,7243,727],{"class":563},[500,7245,730],{"class":556},[500,7247,7248,7250,7252,7254,7256,7258,7260,7262,7264,7266,7268,7270,7272,7274,7276,7278,7280,7282,7284,7286,7288],{"class":502,"line":686},[500,7249,736],{"class":689},[500,7251,693],{"class":556},[500,7253,661],{"class":563},[500,7255,483],{"class":556},[500,7257,745],{"class":666},[500,7259,670],{"class":563},[500,7261,575],{"class":556},[500,7263,752],{"class":510},[500,7265,575],{"class":556},[500,7267,680],{"class":556},[500,7269,588],{"class":556},[500,7271,761],{"class":689},[500,7273,693],{"class":556},[500,7275,767],{"class":766},[500,7277,680],{"class":556},[500,7279,772],{"class":689},[500,7281,693],{"class":556},[500,7283,722],{"class":721},[500,7285,594],{"class":556},[500,7287,727],{"class":563},[500,7289,730],{"class":556},[500,7291,7292,7295,7297,7299,7301,7303,7305,7307,7310,7312,7314,7316,7318,7320,7323,7325,7327],{"class":502,"line":733},[500,7293,7294],{"class":689},"  bio",[500,7296,693],{"class":556},[500,7298,661],{"class":563},[500,7300,483],{"class":556},[500,7302,745],{"class":666},[500,7304,670],{"class":563},[500,7306,575],{"class":556},[500,7308,7309],{"class":510},"bio",[500,7311,575],{"class":556},[500,7313,680],{"class":556},[500,7315,588],{"class":556},[500,7317,761],{"class":689},[500,7319,693],{"class":556},[500,7321,7322],{"class":766}," 500",[500,7324,594],{"class":556},[500,7326,727],{"class":563},[500,7328,730],{"class":556},[500,7330,7331,7333,7335,7337,7339,7341,7343,7345,7347,7349,7351,7353,7355,7357,7359,7361,7363,7365,7367,7369,7371],{"class":502,"line":785},[500,7332,898],{"class":689},[500,7334,693],{"class":556},[500,7336,661],{"class":563},[500,7338,483],{"class":556},[500,7340,907],{"class":666},[500,7342,670],{"class":563},[500,7344,575],{"class":556},[500,7346,914],{"class":510},[500,7348,575],{"class":556},[500,7350,680],{"class":556},[500,7352,588],{"class":556},[500,7354,923],{"class":689},[500,7356,693],{"class":556},[500,7358,722],{"class":721},[500,7360,680],{"class":556},[500,7362,772],{"class":689},[500,7364,693],{"class":556},[500,7366,722],{"class":721},[500,7368,594],{"class":556},[500,7370,727],{"class":563},[500,7372,730],{"class":556},[500,7374,7375,7377,7379],{"class":502,"line":826},[500,7376,594],{"class":556},[500,7378,727],{"class":563},[500,7380,578],{"class":556},[500,7382,7383],{"class":502,"line":895},[500,7384,636],{"emptyLinePlaceholder":635},[500,7386,7387],{"class":502,"line":944},[500,7388,7389],{"class":533},"\u002F\u002F every key present, bio is value | null\n",[500,7391,7392,7394,7396,7398,7400,7402,7404,7406],{"class":502,"line":953},[500,7393,648],{"class":552},[500,7395,585],{"class":651},[500,7397,971],{"class":506},[500,7399,974],{"class":556},[500,7401,977],{"class":506},[500,7403,980],{"class":556},[500,7405,983],{"class":563},[500,7407,986],{"class":556},[500,7409,7410],{"class":502,"line":958},[500,7411,636],{"emptyLinePlaceholder":635},[500,7413,7414],{"class":502,"line":964},[500,7415,7416],{"class":533},"\u002F\u002F id and createdAt have defaults, so inserts may omit them\n",[500,7418,7419,7421,7423,7425,7427,7429,7431,7433],{"class":502,"line":989},[500,7420,648],{"class":552},[500,7422,585],{"class":651},[500,7424,5912],{"class":506},[500,7426,974],{"class":556},[500,7428,2006],{"class":506},[500,7430,980],{"class":556},[500,7432,983],{"class":563},[500,7434,986],{"class":556},[500,7436,7437],{"class":502,"line":994},[500,7438,636],{"emptyLinePlaceholder":635},[500,7440,7441,7443,7445,7447,7449,7451,7453,7455,7457,7459],{"class":502,"line":1000},[500,7442,648],{"class":552},[500,7444,585],{"class":651},[500,7446,5934],{"class":506},[500,7448,974],{"class":556},[500,7450,5939],{"class":506},[500,7452,1015],{"class":556},[500,7454,1735],{"class":506},[500,7456,980],{"class":556},[500,7458,983],{"class":563},[500,7460,5950],{"class":556},[500,7462,7463],{"class":502,"line":1029},[500,7464,636],{"emptyLinePlaceholder":635},[500,7466,7467],{"class":502,"line":1034},[500,7468,7469],{"class":533},"\u002F\u002F a NewUser route input checks the varchar lengths and goes into db.insert(...).values() uncast\n",[491,7471,7473],{"className":543,"code":7472,"filename":4099,"language":545,"meta":496,"style":496},"import * as DZ from '@mionjs\u002Fdrizzle-orm-pg-core';\nimport type {InferInsertModel, InferSelectModel} from '@mionjs\u002Fdrizzle-orm';\n\nexport type UsersTable = DZ.PgTable\u003C\n  'users',\n  {\n    id: DZ.Uuid\u003C{primaryKey: true; defaultRandom: true}>;\n    email: DZ.Varchar\u003C{length: 254; notNull: true}>;\n    name: DZ.Varchar\u003C{length: 100; notNull: true}>;\n    bio: DZ.Varchar\u003C{length: 500}>;\n    createdAt: DZ.Timestamp\u003C{defaultNow: true; notNull: true}>;\n  },\n  [],\n  {createdAt: 'created_at'}\n>;\n\n\u002F\u002F every key present, bio is value | null\nexport type User = InferSelectModel\u003CUsersTable>;\n\n\u002F\u002F id and createdAt have defaults, so inserts may omit them\nexport type NewUser = InferInsertModel\u003CUsersTable>;\n\nexport type UserPatch = Partial\u003CInferInsertModel\u003CUsersTable>>;\n\n\u002F\u002F a NewUser route input checks the varchar lengths and goes into db.insert(...).values() uncast\n",[446,7474,7475,7495,7521,7525,7543,7553,7557,7587,7618,7648,7671,7701,7705,7711,7727,7731,7735,7739,7757,7761,7765,7783,7787,7809,7813],{"__ignoreMap":496},[500,7476,7477,7479,7481,7483,7485,7487,7489,7491,7493],{"class":502,"line":503},[500,7478,553],{"class":552},[500,7480,557],{"class":556},[500,7482,560],{"class":552},[500,7484,564],{"class":563},[500,7486,567],{"class":552},[500,7488,570],{"class":556},[500,7490,448],{"class":510},[500,7492,575],{"class":556},[500,7494,578],{"class":556},[500,7496,7497,7499,7501,7503,7505,7507,7509,7511,7513,7515,7517,7519],{"class":502,"line":523},[500,7498,553],{"class":552},[500,7500,585],{"class":552},[500,7502,588],{"class":556},[500,7504,1735],{"class":563},[500,7506,680],{"class":556},[500,7508,977],{"class":563},[500,7510,594],{"class":556},[500,7512,597],{"class":552},[500,7514,570],{"class":556},[500,7516,602],{"class":510},[500,7518,575],{"class":556},[500,7520,578],{"class":556},[500,7522,7523],{"class":502,"line":609},[500,7524,636],{"emptyLinePlaceholder":635},[500,7526,7527,7529,7531,7533,7535,7537,7539,7541],{"class":502,"line":632},[500,7528,648],{"class":552},[500,7530,585],{"class":651},[500,7532,2403],{"class":506},[500,7534,974],{"class":556},[500,7536,661],{"class":506},[500,7538,483],{"class":556},[500,7540,2412],{"class":506},[500,7542,2415],{"class":556},[500,7544,7545,7547,7549,7551],{"class":502,"line":639},[500,7546,2420],{"class":556},[500,7548,675],{"class":510},[500,7550,575],{"class":556},[500,7552,730],{"class":556},[500,7554,7555],{"class":502,"line":645},[500,7556,2431],{"class":556},[500,7558,7559,7561,7563,7565,7567,7569,7571,7573,7575,7577,7579,7581,7583,7585],{"class":502,"line":686},[500,7560,1063],{"class":689},[500,7562,693],{"class":556},[500,7564,661],{"class":506},[500,7566,483],{"class":556},[500,7568,2444],{"class":506},[500,7570,2447],{"class":556},[500,7572,716],{"class":689},[500,7574,693],{"class":556},[500,7576,722],{"class":506},[500,7578,2480],{"class":556},[500,7580,5633],{"class":689},[500,7582,693],{"class":556},[500,7584,722],{"class":506},[500,7586,2456],{"class":556},[500,7588,7589,7592,7594,7596,7598,7600,7602,7604,7606,7608,7610,7612,7614,7616],{"class":502,"line":733},[500,7590,7591],{"class":689},"    email",[500,7593,693],{"class":556},[500,7595,661],{"class":506},[500,7597,483],{"class":556},[500,7599,2469],{"class":506},[500,7601,2447],{"class":556},[500,7603,761],{"class":689},[500,7605,693],{"class":556},[500,7607,7231],{"class":766},[500,7609,2480],{"class":556},[500,7611,772],{"class":689},[500,7613,693],{"class":556},[500,7615,722],{"class":506},[500,7617,2456],{"class":556},[500,7619,7620,7622,7624,7626,7628,7630,7632,7634,7636,7638,7640,7642,7644,7646],{"class":502,"line":785},[500,7621,1080],{"class":689},[500,7623,693],{"class":556},[500,7625,661],{"class":506},[500,7627,483],{"class":556},[500,7629,2469],{"class":506},[500,7631,2447],{"class":556},[500,7633,761],{"class":689},[500,7635,693],{"class":556},[500,7637,767],{"class":766},[500,7639,2480],{"class":556},[500,7641,772],{"class":689},[500,7643,693],{"class":556},[500,7645,722],{"class":506},[500,7647,2456],{"class":556},[500,7649,7650,7653,7655,7657,7659,7661,7663,7665,7667,7669],{"class":502,"line":826},[500,7651,7652],{"class":689},"    bio",[500,7654,693],{"class":556},[500,7656,661],{"class":506},[500,7658,483],{"class":556},[500,7660,2469],{"class":506},[500,7662,2447],{"class":556},[500,7664,761],{"class":689},[500,7666,693],{"class":556},[500,7668,7322],{"class":766},[500,7670,2456],{"class":556},[500,7672,7673,7675,7677,7679,7681,7683,7685,7687,7689,7691,7693,7695,7697,7699],{"class":502,"line":895},[500,7674,1126],{"class":689},[500,7676,693],{"class":556},[500,7678,661],{"class":506},[500,7680,483],{"class":556},[500,7682,2571],{"class":506},[500,7684,2447],{"class":556},[500,7686,923],{"class":689},[500,7688,693],{"class":556},[500,7690,722],{"class":506},[500,7692,2480],{"class":556},[500,7694,772],{"class":689},[500,7696,693],{"class":556},[500,7698,722],{"class":506},[500,7700,2456],{"class":556},[500,7702,7703],{"class":502,"line":944},[500,7704,2594],{"class":556},[500,7706,7707,7709],{"class":502,"line":953},[500,7708,2599],{"class":563},[500,7710,730],{"class":556},[500,7712,7713,7715,7717,7719,7721,7723,7725],{"class":502,"line":958},[500,7714,2606],{"class":556},[500,7716,2609],{"class":689},[500,7718,693],{"class":556},[500,7720,570],{"class":556},[500,7722,914],{"class":510},[500,7724,575],{"class":556},[500,7726,2620],{"class":556},[500,7728,7729],{"class":502,"line":964},[500,7730,986],{"class":556},[500,7732,7733],{"class":502,"line":989},[500,7734,636],{"emptyLinePlaceholder":635},[500,7736,7737],{"class":502,"line":994},[500,7738,7389],{"class":533},[500,7740,7741,7743,7745,7747,7749,7751,7753,7755],{"class":502,"line":1000},[500,7742,648],{"class":552},[500,7744,585],{"class":651},[500,7746,971],{"class":506},[500,7748,974],{"class":556},[500,7750,977],{"class":506},[500,7752,1015],{"class":556},[500,7754,2659],{"class":506},[500,7756,986],{"class":556},[500,7758,7759],{"class":502,"line":1029},[500,7760,636],{"emptyLinePlaceholder":635},[500,7762,7763],{"class":502,"line":1034},[500,7764,7416],{"class":533},[500,7766,7767,7769,7771,7773,7775,7777,7779,7781],{"class":502,"line":1049},[500,7768,648],{"class":552},[500,7770,585],{"class":651},[500,7772,5912],{"class":506},[500,7774,974],{"class":556},[500,7776,2006],{"class":506},[500,7778,1015],{"class":556},[500,7780,2659],{"class":506},[500,7782,986],{"class":556},[500,7784,7785],{"class":502,"line":1060},[500,7786,636],{"emptyLinePlaceholder":635},[500,7788,7789,7791,7793,7795,7797,7799,7801,7803,7805,7807],{"class":502,"line":1077},[500,7790,648],{"class":552},[500,7792,585],{"class":651},[500,7794,5934],{"class":506},[500,7796,974],{"class":556},[500,7798,5939],{"class":506},[500,7800,1015],{"class":556},[500,7802,1735],{"class":506},[500,7804,1015],{"class":556},[500,7806,2659],{"class":506},[500,7808,5950],{"class":556},[500,7810,7811],{"class":502,"line":1094},[500,7812,636],{"emptyLinePlaceholder":635},[500,7814,7815],{"class":502,"line":1107},[500,7816,7469],{"class":533},[2292,7818,7819,7820,7823,7824,7827,7828,7059,7830,7832,7833,483],{},"A builder table or view also has drizzle's ",[446,7821,7822],{},"typeof users.$inferSelect",", and a table ",[446,7825,7826],{},"typeof users.$inferInsert",". They match ",[446,7829,591],{},[446,7831,1735],{},". On a table type, write them as ",[446,7834,7835],{},"UsersTable['$inferSelect']",[2162,7837,7839],{"id":7838},"runtime-column-callbacks","Runtime Column Callbacks",[405,7841,7842,7843,7846,7847,7846,7850,7059,7853,7856,7857,7860,7861,7863,7864,7867],{},"A builder takes Drizzle's ",[446,7844,7845],{},"$default",", ",[446,7848,7849],{},"$defaultFn",[446,7851,7852],{},"$onUpdate",[446,7854,7855],{},"$onUpdateFn"," callbacks as a one-item list: ",[446,7858,7859],{},"$defaultFn: [() => crypto.randomUUID()]",". A type cannot hold a function, so a table type sets the same prop to ",[446,7862,2171],{}," and the callback goes in the ",[446,7865,7866],{},"runtime"," option of tableFromType or toDrizzle. A column with any of these props counts as having a default, so it is optional on insert, even in files that only import the type.",[491,7869,7871],{"className":543,"code":7870,"language":545,"meta":496,"style":496},"import * as DZ from '@mionjs\u002Fdrizzle-orm-pg-core';\nimport type {InferInsertModel} from '@mionjs\u002Fdrizzle-orm';\n\nexport type JobsTable = DZ.PgTable\u003C\n  'jobs',\n  {\n    id: DZ.Uuid\u003C{primaryKey: true}>;\n    slug: DZ.Varchar\u003C{length: 80; notNull: true; $defaultFn: true}>;\n    updatedAt: DZ.Timestamp\u003C{mode: 'string'; $onUpdate: true}>;\n  },\n  [],\n  {updatedAt: 'updated_at'}\n>;\n\n\u002F\u002F a missing or extra callback throws at startup, naming the column\nexport const jobs = DZ.tableFromType\u003CJobsTable>({\n  runtime: {\n    slug: {$defaultFn: () => crypto.randomUUID().slice(0, 8)},\n    updatedAt: {$onUpdate: () => new Date().toISOString()},\n  },\n});\n\n\u002F\u002F slug is notNull, but the $defaultFn flag makes it optional on insert\nexport type NewJob = InferInsertModel\u003CJobsTable>;\nexport const minimalInsert: NewJob = {id: crypto.randomUUID()};\n",[446,7872,7873,7893,7915,7919,7938,7949,7953,7975,8015,8052,8056,8062,8080,8084,8088,8093,8121,8130,8175,8206,8210,8218,8222,8227,8246],{"__ignoreMap":496},[500,7874,7875,7877,7879,7881,7883,7885,7887,7889,7891],{"class":502,"line":503},[500,7876,553],{"class":552},[500,7878,557],{"class":556},[500,7880,560],{"class":552},[500,7882,564],{"class":563},[500,7884,567],{"class":552},[500,7886,570],{"class":556},[500,7888,448],{"class":510},[500,7890,575],{"class":556},[500,7892,578],{"class":556},[500,7894,7895,7897,7899,7901,7903,7905,7907,7909,7911,7913],{"class":502,"line":523},[500,7896,553],{"class":552},[500,7898,585],{"class":552},[500,7900,588],{"class":556},[500,7902,1735],{"class":563},[500,7904,594],{"class":556},[500,7906,597],{"class":552},[500,7908,570],{"class":556},[500,7910,602],{"class":510},[500,7912,575],{"class":556},[500,7914,578],{"class":556},[500,7916,7917],{"class":502,"line":609},[500,7918,636],{"emptyLinePlaceholder":635},[500,7920,7921,7923,7925,7928,7930,7932,7934,7936],{"class":502,"line":632},[500,7922,648],{"class":552},[500,7924,585],{"class":651},[500,7926,7927],{"class":506}," JobsTable",[500,7929,974],{"class":556},[500,7931,661],{"class":506},[500,7933,483],{"class":556},[500,7935,2412],{"class":506},[500,7937,2415],{"class":556},[500,7939,7940,7942,7945,7947],{"class":502,"line":639},[500,7941,2420],{"class":556},[500,7943,7944],{"class":510},"jobs",[500,7946,575],{"class":556},[500,7948,730],{"class":556},[500,7950,7951],{"class":502,"line":645},[500,7952,2431],{"class":556},[500,7954,7955,7957,7959,7961,7963,7965,7967,7969,7971,7973],{"class":502,"line":686},[500,7956,1063],{"class":689},[500,7958,693],{"class":556},[500,7960,661],{"class":506},[500,7962,483],{"class":556},[500,7964,2444],{"class":506},[500,7966,2447],{"class":556},[500,7968,716],{"class":689},[500,7970,693],{"class":556},[500,7972,722],{"class":506},[500,7974,2456],{"class":556},[500,7976,7977,7980,7982,7984,7986,7988,7990,7992,7994,7996,7998,8000,8002,8004,8006,8009,8011,8013],{"class":502,"line":733},[500,7978,7979],{"class":689},"    slug",[500,7981,693],{"class":556},[500,7983,661],{"class":506},[500,7985,483],{"class":556},[500,7987,2469],{"class":506},[500,7989,2447],{"class":556},[500,7991,761],{"class":689},[500,7993,693],{"class":556},[500,7995,1875],{"class":766},[500,7997,2480],{"class":556},[500,7999,772],{"class":689},[500,8001,693],{"class":556},[500,8003,722],{"class":506},[500,8005,2480],{"class":556},[500,8007,8008],{"class":689}," $defaultFn",[500,8010,693],{"class":556},[500,8012,722],{"class":506},[500,8014,2456],{"class":556},[500,8016,8017,8020,8022,8024,8026,8028,8030,8032,8034,8036,8039,8041,8043,8046,8048,8050],{"class":502,"line":785},[500,8018,8019],{"class":689},"    updatedAt",[500,8021,693],{"class":556},[500,8023,661],{"class":506},[500,8025,483],{"class":556},[500,8027,2571],{"class":506},[500,8029,2447],{"class":556},[500,8031,1955],{"class":689},[500,8033,693],{"class":556},[500,8035,570],{"class":556},[500,8037,8038],{"class":510},"string",[500,8040,575],{"class":556},[500,8042,2480],{"class":556},[500,8044,8045],{"class":689}," $onUpdate",[500,8047,693],{"class":556},[500,8049,722],{"class":506},[500,8051,2456],{"class":556},[500,8053,8054],{"class":502,"line":826},[500,8055,2594],{"class":556},[500,8057,8058,8060],{"class":502,"line":895},[500,8059,2599],{"class":563},[500,8061,730],{"class":556},[500,8063,8064,8066,8069,8071,8073,8076,8078],{"class":502,"line":944},[500,8065,2606],{"class":556},[500,8067,8068],{"class":689},"updatedAt",[500,8070,693],{"class":556},[500,8072,570],{"class":556},[500,8074,8075],{"class":510},"updated_at",[500,8077,575],{"class":556},[500,8079,2620],{"class":556},[500,8081,8082],{"class":502,"line":953},[500,8083,986],{"class":556},[500,8085,8086],{"class":502,"line":958},[500,8087,636],{"emptyLinePlaceholder":635},[500,8089,8090],{"class":502,"line":964},[500,8091,8092],{"class":533},"\u002F\u002F a missing or extra callback throws at startup, naming the column\n",[500,8094,8095,8097,8099,8102,8104,8106,8108,8110,8112,8115,8117,8119],{"class":502,"line":989},[500,8096,648],{"class":552},[500,8098,652],{"class":651},[500,8100,8101],{"class":563}," jobs ",[500,8103,658],{"class":556},[500,8105,661],{"class":563},[500,8107,483],{"class":556},[500,8109,2654],{"class":666},[500,8111,1015],{"class":556},[500,8113,8114],{"class":506},"JobsTable",[500,8116,1021],{"class":556},[500,8118,670],{"class":563},[500,8120,1057],{"class":556},[500,8122,8123,8126,8128],{"class":502,"line":994},[500,8124,8125],{"class":689},"  runtime",[500,8127,693],{"class":556},[500,8129,683],{"class":556},[500,8131,8132,8134,8136,8138,8140,8142,8144,8146,8149,8151,8154,8156,8158,8161,8163,8166,8168,8171,8173],{"class":502,"line":1000},[500,8133,7979],{"class":689},[500,8135,693],{"class":556},[500,8137,588],{"class":556},[500,8139,7849],{"class":666},[500,8141,693],{"class":556},[500,8143,3976],{"class":556},[500,8145,3979],{"class":651},[500,8147,8148],{"class":563}," crypto",[500,8150,483],{"class":556},[500,8152,8153],{"class":666},"randomUUID",[500,8155,1024],{"class":563},[500,8157,483],{"class":556},[500,8159,8160],{"class":666},"slice",[500,8162,670],{"class":563},[500,8164,8165],{"class":766},"0",[500,8167,680],{"class":556},[500,8169,8170],{"class":766}," 8",[500,8172,727],{"class":563},[500,8174,5852],{"class":556},[500,8176,8177,8179,8181,8183,8185,8187,8189,8191,8193,8195,8197,8199,8202,8204],{"class":502,"line":1029},[500,8178,8019],{"class":689},[500,8180,693],{"class":556},[500,8182,588],{"class":556},[500,8184,7852],{"class":666},[500,8186,693],{"class":556},[500,8188,3976],{"class":556},[500,8190,3979],{"class":651},[500,8192,1131],{"class":556},[500,8194,1134],{"class":666},[500,8196,1024],{"class":563},[500,8198,483],{"class":556},[500,8200,8201],{"class":666},"toISOString",[500,8203,1024],{"class":563},[500,8205,5852],{"class":556},[500,8207,8208],{"class":502,"line":1034},[500,8209,2594],{"class":556},[500,8211,8212,8214,8216],{"class":502,"line":1049},[500,8213,594],{"class":556},[500,8215,727],{"class":563},[500,8217,578],{"class":556},[500,8219,8220],{"class":502,"line":1060},[500,8221,636],{"emptyLinePlaceholder":635},[500,8223,8224],{"class":502,"line":1077},[500,8225,8226],{"class":533},"\u002F\u002F slug is notNull, but the $defaultFn flag makes it optional on insert\n",[500,8228,8229,8231,8233,8236,8238,8240,8242,8244],{"class":502,"line":1094},[500,8230,648],{"class":552},[500,8232,585],{"class":651},[500,8234,8235],{"class":506}," NewJob",[500,8237,974],{"class":556},[500,8239,2006],{"class":506},[500,8241,1015],{"class":556},[500,8243,8114],{"class":506},[500,8245,986],{"class":556},[500,8247,8248,8250,8252,8255,8257,8259,8261,8263,8265,8267,8269,8271,8273,8275],{"class":502,"line":1107},[500,8249,648],{"class":552},[500,8251,652],{"class":651},[500,8253,8254],{"class":563}," minimalInsert",[500,8256,693],{"class":556},[500,8258,8235],{"class":506},[500,8260,974],{"class":556},[500,8262,588],{"class":556},[500,8264,707],{"class":689},[500,8266,693],{"class":556},[500,8268,8148],{"class":563},[500,8270,483],{"class":556},[500,8272,8153],{"class":666},[500,8274,1024],{"class":563},[500,8276,5266],{"class":556},[405,8278,8279,8281],{},[446,8280,2315],{}," moves the callbacks between the two forms in both directions, text intact.",[2162,8283,8285],{"id":8284},"custom-json-types","Custom JSON Types",[405,8287,8288,8289,8292],{},"Columns with no matching format (geometry, vectors, MAC addresses, binary data, plain booleans and JSON) keep their plain data type. For a JSON column, declare your own type with the ",[446,8290,8291],{},"$type"," prop.",[539,8294,8295,8472],{},[491,8296,8298],{"className":543,"code":8297,"filename":3824,"language":545,"meta":496,"style":496},"import * as DZ from '@mionjs\u002Fdrizzle-orm-pg-core';\nimport {$type} from '@mionjs\u002Fdrizzle-orm';\n\nconst events = DZ.pgTable('events', {\n  id: DZ.uuid({primaryKey: true}),\n  payload: DZ.jsonb({$type: $type\u003C{kind: string; at: number}>(), notNull: true}),\n});\n",[446,8299,8300,8320,8340,8344,8372,8400,8464],{"__ignoreMap":496},[500,8301,8302,8304,8306,8308,8310,8312,8314,8316,8318],{"class":502,"line":503},[500,8303,553],{"class":552},[500,8305,557],{"class":556},[500,8307,560],{"class":552},[500,8309,564],{"class":563},[500,8311,567],{"class":552},[500,8313,570],{"class":556},[500,8315,448],{"class":510},[500,8317,575],{"class":556},[500,8319,578],{"class":556},[500,8321,8322,8324,8326,8328,8330,8332,8334,8336,8338],{"class":502,"line":523},[500,8323,553],{"class":552},[500,8325,588],{"class":556},[500,8327,8291],{"class":563},[500,8329,594],{"class":556},[500,8331,597],{"class":552},[500,8333,570],{"class":556},[500,8335,602],{"class":510},[500,8337,575],{"class":556},[500,8339,578],{"class":556},[500,8341,8342],{"class":502,"line":609},[500,8343,636],{"emptyLinePlaceholder":635},[500,8345,8346,8348,8351,8353,8355,8357,8359,8361,8363,8366,8368,8370],{"class":502,"line":632},[500,8347,3960],{"class":651},[500,8349,8350],{"class":563}," events ",[500,8352,658],{"class":556},[500,8354,661],{"class":563},[500,8356,483],{"class":556},[500,8358,667],{"class":666},[500,8360,670],{"class":563},[500,8362,575],{"class":556},[500,8364,8365],{"class":510},"events",[500,8367,575],{"class":556},[500,8369,680],{"class":556},[500,8371,683],{"class":556},[500,8373,8374,8376,8378,8380,8382,8384,8386,8388,8390,8392,8394,8396,8398],{"class":502,"line":639},[500,8375,690],{"class":689},[500,8377,693],{"class":556},[500,8379,661],{"class":563},[500,8381,483],{"class":556},[500,8383,700],{"class":666},[500,8385,670],{"class":563},[500,8387,3985],{"class":556},[500,8389,716],{"class":689},[500,8391,693],{"class":556},[500,8393,722],{"class":721},[500,8395,594],{"class":556},[500,8397,727],{"class":563},[500,8399,730],{"class":556},[500,8401,8402,8405,8407,8409,8411,8414,8416,8418,8420,8422,8425,8427,8430,8432,8435,8437,8440,8442,8445,8448,8450,8452,8454,8456,8458,8460,8462],{"class":502,"line":645},[500,8403,8404],{"class":689},"  payload",[500,8406,693],{"class":556},[500,8408,661],{"class":563},[500,8410,483],{"class":556},[500,8412,8413],{"class":666},"jsonb",[500,8415,670],{"class":563},[500,8417,3985],{"class":556},[500,8419,8291],{"class":689},[500,8421,693],{"class":556},[500,8423,8424],{"class":666}," $type",[500,8426,2447],{"class":556},[500,8428,8429],{"class":689},"kind",[500,8431,693],{"class":556},[500,8433,8434],{"class":506}," string",[500,8436,2480],{"class":556},[500,8438,8439],{"class":689}," at",[500,8441,693],{"class":556},[500,8443,8444],{"class":506}," number",[500,8446,8447],{"class":556},"}>",[500,8449,1024],{"class":563},[500,8451,680],{"class":556},[500,8453,772],{"class":689},[500,8455,693],{"class":556},[500,8457,722],{"class":721},[500,8459,594],{"class":556},[500,8461,727],{"class":563},[500,8463,730],{"class":556},[500,8465,8466,8468,8470],{"class":502,"line":686},[500,8467,594],{"class":556},[500,8469,727],{"class":563},[500,8471,578],{"class":556},[491,8473,8475],{"className":543,"code":8474,"filename":4099,"language":545,"meta":496,"style":496},"import * as DZ from '@mionjs\u002Fdrizzle-orm-pg-core';\n\ntype EventsTable = DZ.PgTable\u003C\n  'events',\n  {\n    id: DZ.Uuid\u003C{primaryKey: true}>;\n    payload: DZ.Jsonb\u003C{$type: [{kind: string; at: number}]; notNull: true}>;\n  }\n>;\n",[446,8476,8477,8497,8501,8518,8528,8532,8554,8606,8611],{"__ignoreMap":496},[500,8478,8479,8481,8483,8485,8487,8489,8491,8493,8495],{"class":502,"line":503},[500,8480,553],{"class":552},[500,8482,557],{"class":556},[500,8484,560],{"class":552},[500,8486,564],{"class":563},[500,8488,567],{"class":552},[500,8490,570],{"class":556},[500,8492,448],{"class":510},[500,8494,575],{"class":556},[500,8496,578],{"class":556},[500,8498,8499],{"class":502,"line":523},[500,8500,636],{"emptyLinePlaceholder":635},[500,8502,8503,8505,8508,8510,8512,8514,8516],{"class":502,"line":609},[500,8504,7004],{"class":651},[500,8506,8507],{"class":506}," EventsTable",[500,8509,974],{"class":556},[500,8511,661],{"class":506},[500,8513,483],{"class":556},[500,8515,2412],{"class":506},[500,8517,2415],{"class":556},[500,8519,8520,8522,8524,8526],{"class":502,"line":632},[500,8521,2420],{"class":556},[500,8523,8365],{"class":510},[500,8525,575],{"class":556},[500,8527,730],{"class":556},[500,8529,8530],{"class":502,"line":639},[500,8531,2431],{"class":556},[500,8533,8534,8536,8538,8540,8542,8544,8546,8548,8550,8552],{"class":502,"line":645},[500,8535,1063],{"class":689},[500,8537,693],{"class":556},[500,8539,661],{"class":506},[500,8541,483],{"class":556},[500,8543,2444],{"class":506},[500,8545,2447],{"class":556},[500,8547,716],{"class":689},[500,8549,693],{"class":556},[500,8551,722],{"class":506},[500,8553,2456],{"class":556},[500,8555,8556,8559,8561,8563,8565,8568,8570,8572,8574,8576,8578,8580,8582,8584,8586,8588,8590,8592,8594,8596,8598,8600,8602,8604],{"class":502,"line":686},[500,8557,8558],{"class":689},"    payload",[500,8560,693],{"class":556},[500,8562,661],{"class":506},[500,8564,483],{"class":556},[500,8566,8567],{"class":506},"Jsonb",[500,8569,2447],{"class":556},[500,8571,8291],{"class":689},[500,8573,693],{"class":556},[500,8575,859],{"class":563},[500,8577,3985],{"class":556},[500,8579,8429],{"class":689},[500,8581,693],{"class":556},[500,8583,8434],{"class":506},[500,8585,2480],{"class":556},[500,8587,8439],{"class":689},[500,8589,693],{"class":556},[500,8591,8444],{"class":506},[500,8593,594],{"class":556},[500,8595,878],{"class":563},[500,8597,2480],{"class":556},[500,8599,772],{"class":689},[500,8601,693],{"class":556},[500,8603,722],{"class":506},[500,8605,2456],{"class":556},[500,8607,8608],{"class":502,"line":733},[500,8609,8610],{"class":556},"  }\n",[500,8612,8613],{"class":502,"line":785},[500,8614,986],{"class":556},[8616,8617,8618,8619,483],"note",{},"Every column builder's format, per database and column mode, is listed in ",[412,8620,301],{"href":8621},".\u002Fcolumn-formats",[8623,8624,8625],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .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 .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 .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 .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}","Database settings and TypeFormats metadata expressed in TypeScript types.","md",null,{"toc":24},{"title":298,"description":8626},"8Ps6a-JIf6dYzokkU5NHmWXBU4HKKSx2OvAbnZSr3Vk",1793324366088]