[{"data":1,"prerenderedAt":1337},["ShallowReactive",2],{"navigation_docs":3,"-runtypes-diagnostics-error-levels":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":340,"body":401,"description":1331,"extension":1332,"links":1333,"meta":1334,"navigation":636,"path":335,"seo":1335,"stem":341,"__hash__":1336},"docs\u002F02.runtypes\u002F08.diagnostics\u002F01.error-levels.md",{"type":402,"value":403},"minimark",[404,407,424,429,432,540,544,548,551,567,578,744,823,834,838,844,1005,1008,1016,1022,1030,1034,1049,1175,1179,1185,1191,1195,1202,1327],[405,406],"diagnostic-levels",{},[408,409,410,411,415,416,419,420,423],"p",{},"Every diagnostic has a name like ",[412,413,414],"code",{},"validate-symbol-root",": its area, then what went wrong. Error and RuntimeError both print the word ",[412,417,418],{},"error",", so check the name to see which one you got. Every name is listed in ",[421,422,343],"a",{"href":344},".",[425,426,428],"h2",{"id":427},"where-each-level-shows","Where Each Level Shows",[408,430,431],{},"The dev server shows only what breaks your running code.",[433,434,435,457],"table",{},[436,437,438],"thead",{},[439,440,441,445,448,451,454],"tr",{},[442,443,444],"th",{},"Where",[442,446,447],{},"Error",[442,449,450],{},"RuntimeError",[442,452,453],{},"Warning",[442,455,456],{},"Info",[458,459,460,490,506,521],"tbody",{},[439,461,462,469,474,479,484],{},[463,464,465,466],"td",{},"Editor, through the ",[421,467,468],{"href":257},"lint rules",[463,470,471],{},[412,472,473],{},"mion\u002Ferror",[463,475,476],{},[412,477,478],{},"mion\u002Fruntime-error",[463,480,481],{},[412,482,483],{},"mion\u002Fwarning",[463,485,486,489],{},[412,487,488],{},"mion\u002Finfo",", off by default",[439,491,492,495,498,500,503],{},[463,493,494],{},"Dev server terminal",[463,496,497],{},"printed once",[463,499,497],{},[463,501,502],{},"one line counting them",[463,504,505],{},"not printed",[439,507,508,511,514,517,519],{},[463,509,510],{},"Browser overlay",[463,512,513],{},"shown when its file loads",[463,515,516],{},"not shown",[463,518,516],{},[463,520,516],{},[439,522,523,526,529,531,534],{},[463,524,525],{},"Build and CI",[463,527,528],{},"printed, the build stops",[463,530,528],{},[463,532,533],{},"printed",[463,535,536,537],{},"printed with ",[412,538,539],{},"levels: 'all'",[541,542,543],"tip",{},"The dev server never stops on an error. A function with a RuntimeError throws when your code calls it.",[425,545,547],{"id":546},"disabling-errors","Disabling Errors",[408,549,550],{},"Two comments turn an error off:",[552,553,554,561],"ul",{},[555,556,557,560],"li",{},[412,558,559],{},"@mion-expect-error"," hides it.",[555,562,563,566],{},[412,564,565],{},"@mion-downgrade-error"," shows it as a warning, so the build does not fail.",[408,568,569,570,573,574,577],{},"Use ",[412,571,572],{},"\u002F\u002F"," above a line to cover that line. Use ",[412,575,576],{},"\u002F* *\u002F"," at the top of the file, before any code, to cover the whole file. Several names fit on one comment.",[579,580,586],"pre",{"className":581,"code":582,"filename":583,"language":584,"meta":585,"style":585},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F* @mion-downgrade-error validate-symbol-root *\u002F\nimport {createValidateFn} from '@mionjs\u002Frun-types';\n\n\u002F\u002F both raise validate-symbol-root; the file comment above makes them warnings\nexport const validateSymbol = createValidateFn\u003Csymbol>();\nexport const validateAnotherSymbol = createValidateFn\u003Csymbol>();\n\n\u002F\u002F the line comment hides this one completely\n\u002F\u002F @mion-expect-error validate-symbol-root\nexport const validateSymbolQuietly = createValidateFn\u003Csymbol>();\n","disabling-errors.ts","ts","",[412,587,588,597,631,638,644,679,703,708,714,720],{"__ignoreMap":585},[589,590,593],"span",{"class":591,"line":592},"line",1,[589,594,596],{"class":595},"sHwdD","\u002F* @mion-downgrade-error validate-symbol-root *\u002F\n",[589,598,600,604,608,612,615,618,621,625,628],{"class":591,"line":599},2,[589,601,603],{"class":602},"s7zQu","import",[589,605,607],{"class":606},"sMK4o"," {",[589,609,611],{"class":610},"sTEyZ","createValidateFn",[589,613,614],{"class":606},"}",[589,616,617],{"class":602}," from",[589,619,620],{"class":606}," '",[589,622,624],{"class":623},"sfazB","@mionjs\u002Frun-types",[589,626,627],{"class":606},"'",[589,629,630],{"class":606},";\n",[589,632,634],{"class":591,"line":633},3,[589,635,637],{"emptyLinePlaceholder":636},true,"\n",[589,639,641],{"class":591,"line":640},4,[589,642,643],{"class":595},"\u002F\u002F both raise validate-symbol-root; the file comment above makes them warnings\n",[589,645,647,650,654,657,660,664,667,671,674,677],{"class":591,"line":646},5,[589,648,649],{"class":602},"export",[589,651,653],{"class":652},"spNyl"," const",[589,655,656],{"class":610}," validateSymbol ",[589,658,659],{"class":606},"=",[589,661,663],{"class":662},"s2Zo4"," createValidateFn",[589,665,666],{"class":606},"\u003C",[589,668,670],{"class":669},"sBMFI","symbol",[589,672,673],{"class":606},">",[589,675,676],{"class":610},"()",[589,678,630],{"class":606},[589,680,682,684,686,689,691,693,695,697,699,701],{"class":591,"line":681},6,[589,683,649],{"class":602},[589,685,653],{"class":652},[589,687,688],{"class":610}," validateAnotherSymbol ",[589,690,659],{"class":606},[589,692,663],{"class":662},[589,694,666],{"class":606},[589,696,670],{"class":669},[589,698,673],{"class":606},[589,700,676],{"class":610},[589,702,630],{"class":606},[589,704,706],{"class":591,"line":705},7,[589,707,637],{"emptyLinePlaceholder":636},[589,709,711],{"class":591,"line":710},8,[589,712,713],{"class":595},"\u002F\u002F the line comment hides this one completely\n",[589,715,717],{"class":591,"line":716},9,[589,718,719],{"class":595},"\u002F\u002F @mion-expect-error validate-symbol-root\n",[589,721,723,725,727,730,732,734,736,738,740,742],{"class":591,"line":722},10,[589,724,649],{"class":602},[589,726,653],{"class":652},[589,728,729],{"class":610}," validateSymbolQuietly ",[589,731,659],{"class":606},[589,733,663],{"class":662},[589,735,666],{"class":606},[589,737,670],{"class":669},[589,739,673],{"class":606},[589,741,676],{"class":610},[589,743,630],{"class":606},[433,745,746,759],{},[436,747,748],{},[439,749,750,753,756],{},[442,751,752],{},"Comment",[442,754,755],{},"Placement",[442,757,758],{},"What happens",[458,760,761,774,786,799,811],{},[439,762,763,768,771],{},[463,764,765],{},[412,766,767],{},"\u002F\u002F @mion-expect-error validate-symbol-root",[463,769,770],{},"its own line",[463,772,773],{},"validate-symbol-root on the next line is hidden",[439,775,776,781,783],{},[463,777,778],{},[412,779,780],{},"\u002F\u002F @mion-downgrade-error validate-symbol-root",[463,782,770],{},[463,784,785],{},"validate-symbol-root on the next line becomes a warning",[439,787,788,793,796],{},[463,789,790],{},[412,791,792],{},"\u002F* @mion-expect-error validate-symbol-root *\u002F",[463,794,795],{},"top of the file",[463,797,798],{},"every validate-symbol-root in the file is hidden",[439,800,801,806,808],{},[463,802,803],{},[412,804,805],{},"\u002F* @mion-downgrade-error validate-symbol-root *\u002F",[463,807,795],{},[463,809,810],{},"every validate-symbol-root in the file becomes a warning",[439,812,813,818,820],{},[463,814,815],{},[412,816,817],{},"\u002F* @mion-expect-error *\u002F",[463,819,795],{},[463,821,822],{},"every error in the file is hidden",[541,824,825,826,829,830,833],{},"Always name the diagnostic. A comment with no name also hides errors you have not seen yet. A comment that turns nothing off is reported (",[412,827,828],{},"comment-expect-error-unused"," or ",[412,831,832],{},"comment-downgrade-error-unused",").",[425,835,837],{"id":836},"downgrading-errors-in-config","Downgrading Errors in Config",[408,839,840,843],{},[412,841,842],{},"downgradeErrors"," turns the errors you list into warnings, across the whole project. Use it when you cannot add a comment: the type is in a package you do not own, or the problem is in your config. Only the tsconfig setting also lowers them in the linter.",[845,846,847,913],"code-group",{},[579,848,851],{"className":581,"code":849,"filename":850,"language":584,"meta":585,"style":585},"mionVitePlugin({\n  runTypes: {\n    downgradeErrors: ['marker-comptime-arg-forbidden-construct'],\n  },\n});\n","vite.config.ts",[412,852,853,864,876,899,904],{"__ignoreMap":585},[589,854,855,858,861],{"class":591,"line":592},[589,856,857],{"class":662},"mionVitePlugin",[589,859,860],{"class":610},"(",[589,862,863],{"class":606},"{\n",[589,865,866,870,873],{"class":591,"line":599},[589,867,869],{"class":868},"swJcz","  runTypes",[589,871,872],{"class":606},":",[589,874,875],{"class":606}," {\n",[589,877,878,881,883,886,888,891,893,896],{"class":591,"line":633},[589,879,880],{"class":868},"    downgradeErrors",[589,882,872],{"class":606},[589,884,885],{"class":610}," [",[589,887,627],{"class":606},[589,889,890],{"class":623},"marker-comptime-arg-forbidden-construct",[589,892,627],{"class":606},[589,894,895],{"class":610},"]",[589,897,898],{"class":606},",\n",[589,900,901],{"class":591,"line":640},[589,902,903],{"class":606},"  },\n",[589,905,906,908,911],{"class":591,"line":646},[589,907,614],{"class":606},[589,909,910],{"class":610},")",[589,912,630],{"class":606},[579,914,919],{"className":915,"code":916,"filename":917,"language":918,"meta":585,"style":585},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"compilerOptions\": {\n    \"plugins\": [{\"name\": \"mion\", \"downgradeErrors\": [\"marker-comptime-arg-forbidden-construct\"]}]\n  }\n}\n","tsconfig.json","json",[412,920,921,925,940,995,1000],{"__ignoreMap":585},[589,922,923],{"class":591,"line":592},[589,924,863],{"class":606},[589,926,927,930,933,936,938],{"class":591,"line":599},[589,928,929],{"class":606},"  \"",[589,931,932],{"class":652},"compilerOptions",[589,934,935],{"class":606},"\"",[589,937,872],{"class":606},[589,939,875],{"class":606},[589,941,942,945,948,950,952,955,957,961,963,965,968,971,973,976,978,980,982,984,986,988,990,992],{"class":591,"line":633},[589,943,944],{"class":606},"    \"",[589,946,947],{"class":669},"plugins",[589,949,935],{"class":606},[589,951,872],{"class":606},[589,953,954],{"class":606}," [{",[589,956,935],{"class":606},[589,958,960],{"class":959},"sbssI","name",[589,962,935],{"class":606},[589,964,872],{"class":606},[589,966,967],{"class":606}," \"",[589,969,970],{"class":623},"mion",[589,972,935],{"class":606},[589,974,975],{"class":606},",",[589,977,967],{"class":606},[589,979,842],{"class":959},[589,981,935],{"class":606},[589,983,872],{"class":606},[589,985,885],{"class":606},[589,987,935],{"class":606},[589,989,890],{"class":623},[589,991,935],{"class":606},[589,993,994],{"class":606},"]}]\n",[589,996,997],{"class":591,"line":640},[589,998,999],{"class":606},"  }\n",[589,1001,1002],{"class":591,"line":646},[589,1003,1004],{"class":606},"}\n",[408,1006,1007],{},"A downgraded error still prints on every build:",[579,1009,1014],{"className":1010,"code":1012,"language":1013},[1011],"language-text","node_modules\u002Fsome-lib\u002Fadapter.js(41,9): warning marker-comptime-arg-forbidden-construct: ... (downgraded)\n","text",[412,1015,1012],{"__ignoreMap":585},[408,1017,1018,1019,423],{},"All the options are listed in ",[421,1020,181],{"href":1021},"\u002Fruntypes\u002Fintroduction\u002Fconfiguration#option-reference",[541,1023,1024,1027,1028,423],{},[412,1025,1026],{},"'*'"," turns every error into a warning at once, useful when adding mion to an existing project. List the real names once you know them. An Error is never downgraded, not even by ",[412,1029,1026],{},[425,1031,1033],{"id":1032},"showing-info-messages","Showing Info Messages",[408,1035,1036,1037,1039,1040,1042,1043,423],{},"Info messages are hidden in the build, the ",[412,1038,970],{}," command line and the linter. Set ",[412,1041,539],{}," in your tsconfig to show them in the build and the command line. The build plugin also has its own setting, and the linter shows them with its ",[421,1044,1046,1048],{"href":1045},"\u002Fruntypes\u002Ftooling\u002Flinting#showing-info-messages",[412,1047,488],{}," rule",[845,1050,1051,1100],{},[579,1052,1054],{"className":581,"code":1053,"filename":850,"language":584,"meta":585,"style":585},"mionVitePlugin({\n  runTypes: {\n    levels: 'all',\n  },\n});\n",[412,1055,1056,1064,1072,1088,1092],{"__ignoreMap":585},[589,1057,1058,1060,1062],{"class":591,"line":592},[589,1059,857],{"class":662},[589,1061,860],{"class":610},[589,1063,863],{"class":606},[589,1065,1066,1068,1070],{"class":591,"line":599},[589,1067,869],{"class":868},[589,1069,872],{"class":606},[589,1071,875],{"class":606},[589,1073,1074,1077,1079,1081,1084,1086],{"class":591,"line":633},[589,1075,1076],{"class":868},"    levels",[589,1078,872],{"class":606},[589,1080,620],{"class":606},[589,1082,1083],{"class":623},"all",[589,1085,627],{"class":606},[589,1087,898],{"class":606},[589,1089,1090],{"class":591,"line":640},[589,1091,903],{"class":606},[589,1093,1094,1096,1098],{"class":591,"line":646},[589,1095,614],{"class":606},[589,1097,910],{"class":610},[589,1099,630],{"class":606},[579,1101,1103],{"className":915,"code":1102,"filename":917,"language":918,"meta":585,"style":585},"{\n  \"compilerOptions\": {\n    \"plugins\": [{\"name\": \"mion\", \"levels\": \"all\"}]\n  }\n}\n",[412,1104,1105,1109,1121,1167,1171],{"__ignoreMap":585},[589,1106,1107],{"class":591,"line":592},[589,1108,863],{"class":606},[589,1110,1111,1113,1115,1117,1119],{"class":591,"line":599},[589,1112,929],{"class":606},[589,1114,932],{"class":652},[589,1116,935],{"class":606},[589,1118,872],{"class":606},[589,1120,875],{"class":606},[589,1122,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143,1145,1147,1149,1151,1154,1156,1158,1160,1162,1164],{"class":591,"line":633},[589,1124,944],{"class":606},[589,1126,947],{"class":669},[589,1128,935],{"class":606},[589,1130,872],{"class":606},[589,1132,954],{"class":606},[589,1134,935],{"class":606},[589,1136,960],{"class":959},[589,1138,935],{"class":606},[589,1140,872],{"class":606},[589,1142,967],{"class":606},[589,1144,970],{"class":623},[589,1146,935],{"class":606},[589,1148,975],{"class":606},[589,1150,967],{"class":606},[589,1152,1153],{"class":959},"levels",[589,1155,935],{"class":606},[589,1157,872],{"class":606},[589,1159,967],{"class":606},[589,1161,1083],{"class":623},[589,1163,935],{"class":606},[589,1165,1166],{"class":606},"}]\n",[589,1168,1169],{"class":591,"line":640},[589,1170,999],{"class":606},[589,1172,1173],{"class":591,"line":646},[589,1174,1004],{"class":606},[425,1176,1178],{"id":1177},"grouping-messages","Grouping Messages",[408,1180,1181,1182,1184],{},"The build, the dev server and the ",[412,1183,970],{}," command line print each message once, then every place it happens. A value that is the same in every place goes into the message.",[579,1186,1189],{"className":1187,"code":1188,"language":1013,"meta":585},[1011],"error validate-non-data-root (2)\n  Type `{type}` can never be validated: the generated function will always fail.\n    src\u002Froutes\u002Fuser.ts:12:7  type=FileHandle\n    src\u002Fjobs\u002Fupload.ts:41:2  type=Socket\n\nmion: 2 errors in 2 files\n",[412,1190,1188],{"__ignoreMap":585},[425,1192,1194],{"id":1193},"one-line-per-message","One Line per Message",[408,1196,1197,1198,1201],{},"Set ",[412,1199,1200],{},"logStyle: 'lines'"," to print one full line per message, the form CI tools read.",[845,1203,1204,1253],{},[579,1205,1207],{"className":581,"code":1206,"filename":850,"language":584,"meta":585,"style":585},"mionVitePlugin({\n  runTypes: {\n    logStyle: 'lines',\n  },\n});\n",[412,1208,1209,1217,1225,1241,1245],{"__ignoreMap":585},[589,1210,1211,1213,1215],{"class":591,"line":592},[589,1212,857],{"class":662},[589,1214,860],{"class":610},[589,1216,863],{"class":606},[589,1218,1219,1221,1223],{"class":591,"line":599},[589,1220,869],{"class":868},[589,1222,872],{"class":606},[589,1224,875],{"class":606},[589,1226,1227,1230,1232,1234,1237,1239],{"class":591,"line":633},[589,1228,1229],{"class":868},"    logStyle",[589,1231,872],{"class":606},[589,1233,620],{"class":606},[589,1235,1236],{"class":623},"lines",[589,1238,627],{"class":606},[589,1240,898],{"class":606},[589,1242,1243],{"class":591,"line":640},[589,1244,903],{"class":606},[589,1246,1247,1249,1251],{"class":591,"line":646},[589,1248,614],{"class":606},[589,1250,910],{"class":610},[589,1252,630],{"class":606},[579,1254,1256],{"className":915,"code":1255,"filename":917,"language":918,"meta":585,"style":585},"{\n  \"compilerOptions\": {\n    \"plugins\": [{\"name\": \"mion\", \"logStyle\": \"lines\"}]\n  }\n}\n",[412,1257,1258,1262,1274,1319,1323],{"__ignoreMap":585},[589,1259,1260],{"class":591,"line":592},[589,1261,863],{"class":606},[589,1263,1264,1266,1268,1270,1272],{"class":591,"line":599},[589,1265,929],{"class":606},[589,1267,932],{"class":652},[589,1269,935],{"class":606},[589,1271,872],{"class":606},[589,1273,875],{"class":606},[589,1275,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1307,1309,1311,1313,1315,1317],{"class":591,"line":633},[589,1277,944],{"class":606},[589,1279,947],{"class":669},[589,1281,935],{"class":606},[589,1283,872],{"class":606},[589,1285,954],{"class":606},[589,1287,935],{"class":606},[589,1289,960],{"class":959},[589,1291,935],{"class":606},[589,1293,872],{"class":606},[589,1295,967],{"class":606},[589,1297,970],{"class":623},[589,1299,935],{"class":606},[589,1301,975],{"class":606},[589,1303,967],{"class":606},[589,1305,1306],{"class":959},"logStyle",[589,1308,935],{"class":606},[589,1310,872],{"class":606},[589,1312,967],{"class":606},[589,1314,1236],{"class":623},[589,1316,935],{"class":606},[589,1318,1166],{"class":606},[589,1320,1321],{"class":591,"line":640},[589,1322,999],{"class":606},[589,1324,1325],{"class":591,"line":646},[589,1326,1004],{"class":606},[1328,1329,1330],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html .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 .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}","The four diagnostic levels, and how to turn one off.","md",null,{"toc":24},{"title":340,"description":1331},"Lf7qGbMljNStNXyu9OOGIO_CM1lpiplF_lQp_6p-pO4",1793324366612]