[{"data":1,"prerenderedAt":1746},["ShallowReactive",2],{"navigation_docs":3,"-rpc-client-client-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":84,"body":401,"description":1740,"extension":1741,"links":1742,"meta":1743,"navigation":487,"path":85,"seo":1744,"stem":86,"__hash__":1745},"docs\u002F01.rpc\u002F04.client\u002F00.client-overview.md",{"type":402,"value":403},"minimark",[404,408,413,433,896,905,912,915,917,921,936,1447,1454,1458,1468,1736],[405,406,407],"p",{},"Routes are called like any other async function. The client only imports the API type from the server, so no server code ever reaches the browser.",[409,410,412],"h2",{"id":411},"calling-routes","Calling Routes",[405,414,415,416,420,421,424,425,428,429,432],{},"The ",[417,418,419],"code",{},"routes"," and ",[417,422,423],{},"middlewares"," objects hold every remote route and middleware, except a middleware that takes no params and returns no data. Calling a route creates a ",[417,426,427],{},"RouteSubRequest",", and ",[417,430,431],{},"call()"," sends it.",[434,435,436,700],"code-split",{},[437,438,444],"pre",{"className":439,"code":440,"filename":441,"language":442,"meta":443,"style":443},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import {initClient} from '@mionjs\u002Fclient';\n\n\u002F\u002F only the API type is imported from the server\nimport type {MyApi} from '.\u002Fhello.routes.ts';\n\nconst {routes} = initClient\u003CMyApi>({baseURL: 'http:\u002F\u002Flocalhost:3000'});\n\n\u002F\u002F call() never throws, it returns [result, error]\nconst [greeting, error] = await routes.sayHello('John').call();\n\nif (error) console.log(error.publicMessage);\nelse console.log(greeting); \u002F\u002F Hello John\n","client.ts","ts","",[417,445,446,482,489,496,522,527,583,588,594,649,654,678],{"__ignoreMap":443},[447,448,451,455,459,463,466,469,472,476,479],"span",{"class":449,"line":450},"line",1,[447,452,454],{"class":453},"s7zQu","import",[447,456,458],{"class":457},"sMK4o"," {",[447,460,462],{"class":461},"sTEyZ","initClient",[447,464,465],{"class":457},"}",[447,467,468],{"class":453}," from",[447,470,471],{"class":457}," '",[447,473,475],{"class":474},"sfazB","@mionjs\u002Fclient",[447,477,478],{"class":457},"'",[447,480,481],{"class":457},";\n",[447,483,485],{"class":449,"line":484},2,[447,486,488],{"emptyLinePlaceholder":487},true,"\n",[447,490,492],{"class":449,"line":491},3,[447,493,495],{"class":494},"sHwdD","\u002F\u002F only the API type is imported from the server\n",[447,497,499,501,504,506,509,511,513,515,518,520],{"class":449,"line":498},4,[447,500,454],{"class":453},[447,502,503],{"class":453}," type",[447,505,458],{"class":457},[447,507,508],{"class":461},"MyApi",[447,510,465],{"class":457},[447,512,468],{"class":453},[447,514,471],{"class":457},[447,516,517],{"class":474},".\u002Fhello.routes.ts",[447,519,478],{"class":457},[447,521,481],{"class":457},[447,523,525],{"class":449,"line":524},5,[447,526,488],{"emptyLinePlaceholder":487},[447,528,530,534,536,538,540,543,547,550,553,556,559,562,566,569,571,574,576,578,581],{"class":449,"line":529},6,[447,531,533],{"class":532},"spNyl","const",[447,535,458],{"class":457},[447,537,419],{"class":461},[447,539,465],{"class":457},[447,541,542],{"class":457}," =",[447,544,546],{"class":545},"s2Zo4"," initClient",[447,548,549],{"class":457},"\u003C",[447,551,508],{"class":552},"sBMFI",[447,554,555],{"class":457},">",[447,557,558],{"class":461},"(",[447,560,561],{"class":457},"{",[447,563,565],{"class":564},"swJcz","baseURL",[447,567,568],{"class":457},":",[447,570,471],{"class":457},[447,572,573],{"class":474},"http:\u002F\u002Flocalhost:3000",[447,575,478],{"class":457},[447,577,465],{"class":457},[447,579,580],{"class":461},")",[447,582,481],{"class":457},[447,584,586],{"class":449,"line":585},7,[447,587,488],{"emptyLinePlaceholder":487},[447,589,591],{"class":449,"line":590},8,[447,592,593],{"class":494},"\u002F\u002F call() never throws, it returns [result, error]\n",[447,595,597,599,602,605,608,611,614,616,619,622,625,628,630,632,635,637,639,641,644,647],{"class":449,"line":596},9,[447,598,533],{"class":532},[447,600,601],{"class":457}," [",[447,603,604],{"class":461},"greeting",[447,606,607],{"class":457},",",[447,609,610],{"class":461}," error",[447,612,613],{"class":457},"]",[447,615,542],{"class":457},[447,617,618],{"class":453}," await",[447,620,621],{"class":461}," routes",[447,623,624],{"class":457},".",[447,626,627],{"class":545},"sayHello",[447,629,558],{"class":461},[447,631,478],{"class":457},[447,633,634],{"class":474},"John",[447,636,478],{"class":457},[447,638,580],{"class":461},[447,640,624],{"class":457},[447,642,643],{"class":545},"call",[447,645,646],{"class":461},"()",[447,648,481],{"class":457},[447,650,652],{"class":449,"line":651},10,[447,653,488],{"emptyLinePlaceholder":487},[447,655,657,660,663,665,668,671,673,676],{"class":449,"line":656},11,[447,658,659],{"class":453},"if",[447,661,662],{"class":461}," (error) console",[447,664,624],{"class":457},[447,666,667],{"class":545},"log",[447,669,670],{"class":461},"(error",[447,672,624],{"class":457},[447,674,675],{"class":461},"publicMessage)",[447,677,481],{"class":457},[447,679,681,684,687,689,691,694,697],{"class":449,"line":680},12,[447,682,683],{"class":453},"else",[447,685,686],{"class":461}," console",[447,688,624],{"class":457},[447,690,667],{"class":545},[447,692,693],{"class":461},"(greeting)",[447,695,696],{"class":457},";",[447,698,699],{"class":494}," \u002F\u002F Hello John\n",[437,701,704],{"className":439,"code":702,"filename":703,"language":442,"meta":443,"style":443},"import {createMionRouter, Routes} from '@mionjs\u002Frouter';\n\nconst mion = createMionRouter();\n\nconst routes = {\n  sayHello: mion.route((ctx, name: string): string => `Hello ${name}`),\n} satisfies Routes;\n\nconst myApi = mion.initRoutes(routes);\n\n\u002F\u002F the type the client uses, no server code ever reaches the browser\nexport type MyApi = typeof myApi;\n","server.routes.ts",[417,705,706,733,737,754,758,770,831,842,846,867,871,876],{"__ignoreMap":443},[447,707,708,710,712,715,717,720,722,724,726,729,731],{"class":449,"line":450},[447,709,454],{"class":453},[447,711,458],{"class":457},[447,713,714],{"class":461},"createMionRouter",[447,716,607],{"class":457},[447,718,719],{"class":461}," Routes",[447,721,465],{"class":457},[447,723,468],{"class":453},[447,725,471],{"class":457},[447,727,728],{"class":474},"@mionjs\u002Frouter",[447,730,478],{"class":457},[447,732,481],{"class":457},[447,734,735],{"class":449,"line":484},[447,736,488],{"emptyLinePlaceholder":487},[447,738,739,741,744,747,750,752],{"class":449,"line":491},[447,740,533],{"class":532},[447,742,743],{"class":461}," mion ",[447,745,746],{"class":457},"=",[447,748,749],{"class":545}," createMionRouter",[447,751,646],{"class":461},[447,753,481],{"class":457},[447,755,756],{"class":449,"line":498},[447,757,488],{"emptyLinePlaceholder":487},[447,759,760,762,765,767],{"class":449,"line":524},[447,761,533],{"class":532},[447,763,764],{"class":461}," routes ",[447,766,746],{"class":457},[447,768,769],{"class":457}," {\n",[447,771,772,775,777,780,782,785,787,789,793,795,798,800,803,806,808,811,814,817,820,823,826,828],{"class":449,"line":529},[447,773,774],{"class":564},"  sayHello",[447,776,568],{"class":457},[447,778,779],{"class":461}," mion",[447,781,624],{"class":457},[447,783,784],{"class":545},"route",[447,786,558],{"class":461},[447,788,558],{"class":457},[447,790,792],{"class":791},"sHdIc","ctx",[447,794,607],{"class":457},[447,796,797],{"class":791}," name",[447,799,568],{"class":457},[447,801,802],{"class":552}," string",[447,804,805],{"class":457},"):",[447,807,802],{"class":552},[447,809,810],{"class":532}," =>",[447,812,813],{"class":457}," `",[447,815,816],{"class":474},"Hello ",[447,818,819],{"class":457},"${",[447,821,822],{"class":461},"name",[447,824,825],{"class":457},"}`",[447,827,580],{"class":461},[447,829,830],{"class":457},",\n",[447,832,833,835,838,840],{"class":449,"line":585},[447,834,465],{"class":457},[447,836,837],{"class":453}," satisfies",[447,839,719],{"class":552},[447,841,481],{"class":457},[447,843,844],{"class":449,"line":590},[447,845,488],{"emptyLinePlaceholder":487},[447,847,848,850,853,855,857,859,862,865],{"class":449,"line":596},[447,849,533],{"class":532},[447,851,852],{"class":461}," myApi ",[447,854,746],{"class":457},[447,856,779],{"class":461},[447,858,624],{"class":457},[447,860,861],{"class":545},"initRoutes",[447,863,864],{"class":461},"(routes)",[447,866,481],{"class":457},[447,868,869],{"class":449,"line":651},[447,870,488],{"emptyLinePlaceholder":487},[447,872,873],{"class":449,"line":656},[447,874,875],{"class":494},"\u002F\u002F the type the client uses, no server code ever reaches the browser\n",[447,877,878,881,883,886,888,891,894],{"class":449,"line":680},[447,879,880],{"class":453},"export",[447,882,503],{"class":532},[447,884,885],{"class":552}," MyApi",[447,887,542],{"class":457},[447,889,890],{"class":457}," typeof",[447,892,893],{"class":461}," myApi",[447,895,481],{"class":457},[405,897,898,899,904],{},"The client follows the validation and JSON round trip rules set on the server, including the params ",[900,901,903],"a",{"href":902},"\u002Frpc\u002Fserver\u002Fvalidation#sanitizing-params","sanitizing"," transforms. Wrong params fail in the browser, with no request sent.",[906,907,908,909,624],"note",{},"By default the build ships each route's validation and JSON round trip functions with the client. To fetch them from the server instead, see ",[900,910,911],{"href":71},"mionFetchMetadata",[913,914],"read-more",{"title":48,"to":92},[913,916],{"title":88,"to":89},[409,918,920],{"id":919},"queries-and-mutations","Queries and Mutations",[405,922,923,924,927,928,931,932,935],{},"A ",[417,925,926],{},"query()"," is read only, so small payloads travel in the url as a GET. A ",[417,929,930],{},"mutation()"," changes data, so it always travels in the body as a POST. A plain ",[417,933,934],{},"route()"," also travels in the body.",[434,937,938,1167],{},[437,939,941],{"className":439,"code":940,"filename":441,"language":442,"meta":443,"style":443},"import {initClient} from '@mionjs\u002Fclient';\nimport type {MyApi} from '.\u002Fquery-mutation.routes.ts';\n\nconst {routes} = initClient\u003CMyApi>({\n  baseURL: 'http:\u002F\u002Flocalhost:3000',\n});\n\n\u002F\u002F a GET, so it is cheap to cancel and easy to cache\nconst [user] = await routes.getUser('USER-123').call();\n\nconst [created] = await routes.createUser('Jane').call();\n\nconsole.log(user?.name, created?.id);\n",[417,942,943,963,986,990,1015,1030,1038,1042,1047,1088,1092,1133,1137],{"__ignoreMap":443},[447,944,945,947,949,951,953,955,957,959,961],{"class":449,"line":450},[447,946,454],{"class":453},[447,948,458],{"class":457},[447,950,462],{"class":461},[447,952,465],{"class":457},[447,954,468],{"class":453},[447,956,471],{"class":457},[447,958,475],{"class":474},[447,960,478],{"class":457},[447,962,481],{"class":457},[447,964,965,967,969,971,973,975,977,979,982,984],{"class":449,"line":484},[447,966,454],{"class":453},[447,968,503],{"class":453},[447,970,458],{"class":457},[447,972,508],{"class":461},[447,974,465],{"class":457},[447,976,468],{"class":453},[447,978,471],{"class":457},[447,980,981],{"class":474},".\u002Fquery-mutation.routes.ts",[447,983,478],{"class":457},[447,985,481],{"class":457},[447,987,988],{"class":449,"line":491},[447,989,488],{"emptyLinePlaceholder":487},[447,991,992,994,996,998,1000,1002,1004,1006,1008,1010,1012],{"class":449,"line":498},[447,993,533],{"class":532},[447,995,458],{"class":457},[447,997,419],{"class":461},[447,999,465],{"class":457},[447,1001,542],{"class":457},[447,1003,546],{"class":545},[447,1005,549],{"class":457},[447,1007,508],{"class":552},[447,1009,555],{"class":457},[447,1011,558],{"class":461},[447,1013,1014],{"class":457},"{\n",[447,1016,1017,1020,1022,1024,1026,1028],{"class":449,"line":524},[447,1018,1019],{"class":564},"  baseURL",[447,1021,568],{"class":457},[447,1023,471],{"class":457},[447,1025,573],{"class":474},[447,1027,478],{"class":457},[447,1029,830],{"class":457},[447,1031,1032,1034,1036],{"class":449,"line":529},[447,1033,465],{"class":457},[447,1035,580],{"class":461},[447,1037,481],{"class":457},[447,1039,1040],{"class":449,"line":585},[447,1041,488],{"emptyLinePlaceholder":487},[447,1043,1044],{"class":449,"line":590},[447,1045,1046],{"class":494},"\u002F\u002F a GET, so it is cheap to cancel and easy to cache\n",[447,1048,1049,1051,1053,1056,1058,1060,1062,1064,1066,1069,1071,1073,1076,1078,1080,1082,1084,1086],{"class":449,"line":596},[447,1050,533],{"class":532},[447,1052,601],{"class":457},[447,1054,1055],{"class":461},"user",[447,1057,613],{"class":457},[447,1059,542],{"class":457},[447,1061,618],{"class":453},[447,1063,621],{"class":461},[447,1065,624],{"class":457},[447,1067,1068],{"class":545},"getUser",[447,1070,558],{"class":461},[447,1072,478],{"class":457},[447,1074,1075],{"class":474},"USER-123",[447,1077,478],{"class":457},[447,1079,580],{"class":461},[447,1081,624],{"class":457},[447,1083,643],{"class":545},[447,1085,646],{"class":461},[447,1087,481],{"class":457},[447,1089,1090],{"class":449,"line":651},[447,1091,488],{"emptyLinePlaceholder":487},[447,1093,1094,1096,1098,1101,1103,1105,1107,1109,1111,1114,1116,1118,1121,1123,1125,1127,1129,1131],{"class":449,"line":656},[447,1095,533],{"class":532},[447,1097,601],{"class":457},[447,1099,1100],{"class":461},"created",[447,1102,613],{"class":457},[447,1104,542],{"class":457},[447,1106,618],{"class":453},[447,1108,621],{"class":461},[447,1110,624],{"class":457},[447,1112,1113],{"class":545},"createUser",[447,1115,558],{"class":461},[447,1117,478],{"class":457},[447,1119,1120],{"class":474},"Jane",[447,1122,478],{"class":457},[447,1124,580],{"class":461},[447,1126,624],{"class":457},[447,1128,643],{"class":545},[447,1130,646],{"class":461},[447,1132,481],{"class":457},[447,1134,1135],{"class":449,"line":680},[447,1136,488],{"emptyLinePlaceholder":487},[447,1138,1140,1143,1145,1147,1150,1153,1155,1157,1160,1162,1165],{"class":449,"line":1139},13,[447,1141,1142],{"class":461},"console",[447,1144,624],{"class":457},[447,1146,667],{"class":545},[447,1148,1149],{"class":461},"(user",[447,1151,1152],{"class":457},"?.",[447,1154,822],{"class":461},[447,1156,607],{"class":457},[447,1158,1159],{"class":461}," created",[447,1161,1152],{"class":457},[447,1163,1164],{"class":461},"id)",[447,1166,481],{"class":457},[437,1168,1170],{"className":439,"code":1169,"filename":703,"language":442,"meta":443,"style":443},"import {createMionRouter, Routes} from '@mionjs\u002Frouter';\n\nconst mion = createMionRouter();\n\nexport type User = {id: string; name: string};\n\nconst routes = {\n  getUser: mion.query((ctx, id: string): User => ({id, name: 'John'})),\n  createUser: mion.mutation(\n    (ctx, name: string): User => ({id: 'USER-123', name})\n  ),\n} satisfies Routes;\n\nconst myApi = mion.initRoutes(routes);\n\nexport type MyApi = typeof myApi;\n",[417,1171,1172,1196,1200,1214,1218,1249,1253,1263,1324,1341,1385,1392,1402,1406,1425,1430],{"__ignoreMap":443},[447,1173,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194],{"class":449,"line":450},[447,1175,454],{"class":453},[447,1177,458],{"class":457},[447,1179,714],{"class":461},[447,1181,607],{"class":457},[447,1183,719],{"class":461},[447,1185,465],{"class":457},[447,1187,468],{"class":453},[447,1189,471],{"class":457},[447,1191,728],{"class":474},[447,1193,478],{"class":457},[447,1195,481],{"class":457},[447,1197,1198],{"class":449,"line":484},[447,1199,488],{"emptyLinePlaceholder":487},[447,1201,1202,1204,1206,1208,1210,1212],{"class":449,"line":491},[447,1203,533],{"class":532},[447,1205,743],{"class":461},[447,1207,746],{"class":457},[447,1209,749],{"class":545},[447,1211,646],{"class":461},[447,1213,481],{"class":457},[447,1215,1216],{"class":449,"line":498},[447,1217,488],{"emptyLinePlaceholder":487},[447,1219,1220,1222,1224,1227,1229,1231,1234,1236,1238,1240,1242,1244,1246],{"class":449,"line":524},[447,1221,880],{"class":453},[447,1223,503],{"class":532},[447,1225,1226],{"class":552}," User",[447,1228,542],{"class":457},[447,1230,458],{"class":457},[447,1232,1233],{"class":564},"id",[447,1235,568],{"class":457},[447,1237,802],{"class":552},[447,1239,696],{"class":457},[447,1241,797],{"class":564},[447,1243,568],{"class":457},[447,1245,802],{"class":552},[447,1247,1248],{"class":457},"};\n",[447,1250,1251],{"class":449,"line":529},[447,1252,488],{"emptyLinePlaceholder":487},[447,1254,1255,1257,1259,1261],{"class":449,"line":585},[447,1256,533],{"class":532},[447,1258,764],{"class":461},[447,1260,746],{"class":457},[447,1262,769],{"class":457},[447,1264,1265,1268,1270,1272,1274,1277,1279,1281,1283,1285,1288,1290,1292,1294,1296,1298,1301,1303,1305,1307,1309,1311,1313,1315,1317,1319,1322],{"class":449,"line":590},[447,1266,1267],{"class":564},"  getUser",[447,1269,568],{"class":457},[447,1271,779],{"class":461},[447,1273,624],{"class":457},[447,1275,1276],{"class":545},"query",[447,1278,558],{"class":461},[447,1280,558],{"class":457},[447,1282,792],{"class":791},[447,1284,607],{"class":457},[447,1286,1287],{"class":791}," id",[447,1289,568],{"class":457},[447,1291,802],{"class":552},[447,1293,805],{"class":457},[447,1295,1226],{"class":552},[447,1297,810],{"class":532},[447,1299,1300],{"class":461}," (",[447,1302,561],{"class":457},[447,1304,1233],{"class":461},[447,1306,607],{"class":457},[447,1308,797],{"class":564},[447,1310,568],{"class":457},[447,1312,471],{"class":457},[447,1314,634],{"class":474},[447,1316,478],{"class":457},[447,1318,465],{"class":457},[447,1320,1321],{"class":461},"))",[447,1323,830],{"class":457},[447,1325,1326,1329,1331,1333,1335,1338],{"class":449,"line":596},[447,1327,1328],{"class":564},"  createUser",[447,1330,568],{"class":457},[447,1332,779],{"class":461},[447,1334,624],{"class":457},[447,1336,1337],{"class":545},"mutation",[447,1339,1340],{"class":461},"(\n",[447,1342,1343,1346,1348,1350,1352,1354,1356,1358,1360,1362,1364,1366,1368,1370,1372,1374,1376,1378,1380,1382],{"class":449,"line":651},[447,1344,1345],{"class":457},"    (",[447,1347,792],{"class":791},[447,1349,607],{"class":457},[447,1351,797],{"class":791},[447,1353,568],{"class":457},[447,1355,802],{"class":552},[447,1357,805],{"class":457},[447,1359,1226],{"class":552},[447,1361,810],{"class":532},[447,1363,1300],{"class":461},[447,1365,561],{"class":457},[447,1367,1233],{"class":564},[447,1369,568],{"class":457},[447,1371,471],{"class":457},[447,1373,1075],{"class":474},[447,1375,478],{"class":457},[447,1377,607],{"class":457},[447,1379,797],{"class":461},[447,1381,465],{"class":457},[447,1383,1384],{"class":461},")\n",[447,1386,1387,1390],{"class":449,"line":656},[447,1388,1389],{"class":461},"  )",[447,1391,830],{"class":457},[447,1393,1394,1396,1398,1400],{"class":449,"line":680},[447,1395,465],{"class":457},[447,1397,837],{"class":453},[447,1399,719],{"class":552},[447,1401,481],{"class":457},[447,1403,1404],{"class":449,"line":1139},[447,1405,488],{"emptyLinePlaceholder":487},[447,1407,1409,1411,1413,1415,1417,1419,1421,1423],{"class":449,"line":1408},14,[447,1410,533],{"class":532},[447,1412,852],{"class":461},[447,1414,746],{"class":457},[447,1416,779],{"class":461},[447,1418,624],{"class":457},[447,1420,861],{"class":545},[447,1422,864],{"class":461},[447,1424,481],{"class":457},[447,1426,1428],{"class":449,"line":1427},15,[447,1429,488],{"emptyLinePlaceholder":487},[447,1431,1433,1435,1437,1439,1441,1443,1445],{"class":449,"line":1432},16,[447,1434,880],{"class":453},[447,1436,503],{"class":532},[447,1438,885],{"class":552},[447,1440,542],{"class":457},[447,1442,890],{"class":457},[447,1444,893],{"class":461},[447,1446,481],{"class":457},[1448,1449,1450,1451,624],"tip",{},"Cancelling a query is always safe, the worst case is wasted work on the server. A cancelled mutation may already have changed data. See ",[900,1452,1453],{"href":100},"Cancellation and Timeouts",[409,1455,1457],{"id":1456},"validating-server-responses","Validating Server Responses",[405,1459,1460,1461,1464,1465,624],{},"The server does not check its answers. Set ",[417,1462,1463],{},"validateServerResponses: true"," to check every answer and returned header against its type on the client.\nThe type errors of a wrong answer or header go in ",[417,1466,1467],{},"errorData",[437,1469,1471],{"className":439,"code":1470,"filename":441,"language":442,"meta":443,"style":443},"import {initClient} from '@mionjs\u002Fclient';\nimport type {MyApi} from '.\u002Fhello.routes.ts';\n\n\u002F\u002F off by default\nconst {routes} = initClient\u003CMyApi>({\n  baseURL: 'http:\u002F\u002Flocalhost:3000',\n  validateServerResponses: true,\n});\n\n\u002F\u002F a wrong answer is dropped and reported\nconst [greeting, error, response] = await routes.sayHello('John').call();\nconst [thrown] = response['@thrownErrors'] ?? [];\n\nif (thrown?.type === 'response-validation-error') console.log(thrown.errorData);\nelse console.log(greeting, error);\n",[417,1472,1473,1493,1515,1519,1524,1548,1562,1575,1583,1587,1592,1639,1673,1677,1716],{"__ignoreMap":443},[447,1474,1475,1477,1479,1481,1483,1485,1487,1489,1491],{"class":449,"line":450},[447,1476,454],{"class":453},[447,1478,458],{"class":457},[447,1480,462],{"class":461},[447,1482,465],{"class":457},[447,1484,468],{"class":453},[447,1486,471],{"class":457},[447,1488,475],{"class":474},[447,1490,478],{"class":457},[447,1492,481],{"class":457},[447,1494,1495,1497,1499,1501,1503,1505,1507,1509,1511,1513],{"class":449,"line":484},[447,1496,454],{"class":453},[447,1498,503],{"class":453},[447,1500,458],{"class":457},[447,1502,508],{"class":461},[447,1504,465],{"class":457},[447,1506,468],{"class":453},[447,1508,471],{"class":457},[447,1510,517],{"class":474},[447,1512,478],{"class":457},[447,1514,481],{"class":457},[447,1516,1517],{"class":449,"line":491},[447,1518,488],{"emptyLinePlaceholder":487},[447,1520,1521],{"class":449,"line":498},[447,1522,1523],{"class":494},"\u002F\u002F off by default\n",[447,1525,1526,1528,1530,1532,1534,1536,1538,1540,1542,1544,1546],{"class":449,"line":524},[447,1527,533],{"class":532},[447,1529,458],{"class":457},[447,1531,419],{"class":461},[447,1533,465],{"class":457},[447,1535,542],{"class":457},[447,1537,546],{"class":545},[447,1539,549],{"class":457},[447,1541,508],{"class":552},[447,1543,555],{"class":457},[447,1545,558],{"class":461},[447,1547,1014],{"class":457},[447,1549,1550,1552,1554,1556,1558,1560],{"class":449,"line":529},[447,1551,1019],{"class":564},[447,1553,568],{"class":457},[447,1555,471],{"class":457},[447,1557,573],{"class":474},[447,1559,478],{"class":457},[447,1561,830],{"class":457},[447,1563,1564,1567,1569,1573],{"class":449,"line":585},[447,1565,1566],{"class":564},"  validateServerResponses",[447,1568,568],{"class":457},[447,1570,1572],{"class":1571},"sfNiH"," true",[447,1574,830],{"class":457},[447,1576,1577,1579,1581],{"class":449,"line":590},[447,1578,465],{"class":457},[447,1580,580],{"class":461},[447,1582,481],{"class":457},[447,1584,1585],{"class":449,"line":596},[447,1586,488],{"emptyLinePlaceholder":487},[447,1588,1589],{"class":449,"line":651},[447,1590,1591],{"class":494},"\u002F\u002F a wrong answer is dropped and reported\n",[447,1593,1594,1596,1598,1600,1602,1604,1606,1609,1611,1613,1615,1617,1619,1621,1623,1625,1627,1629,1631,1633,1635,1637],{"class":449,"line":656},[447,1595,533],{"class":532},[447,1597,601],{"class":457},[447,1599,604],{"class":461},[447,1601,607],{"class":457},[447,1603,610],{"class":461},[447,1605,607],{"class":457},[447,1607,1608],{"class":461}," response",[447,1610,613],{"class":457},[447,1612,542],{"class":457},[447,1614,618],{"class":453},[447,1616,621],{"class":461},[447,1618,624],{"class":457},[447,1620,627],{"class":545},[447,1622,558],{"class":461},[447,1624,478],{"class":457},[447,1626,634],{"class":474},[447,1628,478],{"class":457},[447,1630,580],{"class":461},[447,1632,624],{"class":457},[447,1634,643],{"class":545},[447,1636,646],{"class":461},[447,1638,481],{"class":457},[447,1640,1641,1643,1645,1648,1650,1652,1655,1657,1660,1662,1665,1668,1671],{"class":449,"line":680},[447,1642,533],{"class":532},[447,1644,601],{"class":457},[447,1646,1647],{"class":461},"thrown",[447,1649,613],{"class":457},[447,1651,542],{"class":457},[447,1653,1654],{"class":461}," response[",[447,1656,478],{"class":457},[447,1658,1659],{"class":474},"@thrownErrors",[447,1661,478],{"class":457},[447,1663,1664],{"class":461},"] ",[447,1666,1667],{"class":457},"??",[447,1669,1670],{"class":461}," []",[447,1672,481],{"class":457},[447,1674,1675],{"class":449,"line":1139},[447,1676,488],{"emptyLinePlaceholder":487},[447,1678,1679,1681,1684,1686,1689,1692,1694,1697,1699,1702,1704,1706,1709,1711,1714],{"class":449,"line":1408},[447,1680,659],{"class":453},[447,1682,1683],{"class":461}," (thrown",[447,1685,1152],{"class":457},[447,1687,1688],{"class":461},"type ",[447,1690,1691],{"class":457},"===",[447,1693,471],{"class":457},[447,1695,1696],{"class":474},"response-validation-error",[447,1698,478],{"class":457},[447,1700,1701],{"class":461},") console",[447,1703,624],{"class":457},[447,1705,667],{"class":545},[447,1707,1708],{"class":461},"(thrown",[447,1710,624],{"class":457},[447,1712,1713],{"class":461},"errorData)",[447,1715,481],{"class":457},[447,1717,1718,1720,1722,1724,1726,1729,1731,1734],{"class":449,"line":1427},[447,1719,683],{"class":453},[447,1721,686],{"class":461},[447,1723,624],{"class":457},[447,1725,667],{"class":545},[447,1727,1728],{"class":461},"(greeting",[447,1730,607],{"class":457},[447,1732,1733],{"class":461}," error)",[447,1735,481],{"class":457},[1737,1738,1739],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .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 .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}","Use the mion client for type-safe API calls.","md",null,{"toc":24},{"title":84,"description":1740},"D8tpWRtCUDIELj8hIwhAsz12QO9Ih3laRlQ8Fd46iHk",1793324370073]