[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-trpc-openapi":3,"mdc--3ybvxr-key":36,"related-org-trpc-openapi":5269,"related-repo-trpc-openapi":5435},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":19,"repoUrl":20,"updatedAt":21,"license":22,"forks":23,"topics":24,"repo":31,"sourceUrl":34,"mdContent":35},"openapi","generate OpenAPI specs from tRPC routers","Generate OpenAPI 3.1 spec from a tRPC router with @trpc\u002Fopenapi CLI or programmatic API. Generate typed REST client with @hey-api\u002Fopenapi-ts and configureTRPCHeyApiClient(). Configure transformers (superjson, EJSON) for generated clients. Alpha status.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"trpc","tRPC","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Ftrpc.png",[12,14,17],{"name":9,"slug":8,"type":13},"tag",{"name":15,"slug":16,"type":13},"API Development","api-development",{"name":18,"slug":4,"type":13},"OpenAPI",40424,"https:\u002F\u002Fgithub.com\u002Ftrpc\u002Ftrpc","2026-07-18T05:47:09.54232",null,1636,[25,26,27,28,29,30],"api","next","nextjs","prisma","react","typescript",{"repoUrl":20,"stars":19,"forks":23,"topics":32,"description":33},[25,26,27,28,29,30],"🧙‍♀️  Move Fast and Break Nothing. End-to-end typesafe APIs made easy. ","https:\u002F\u002Fgithub.com\u002Ftrpc\u002Ftrpc\u002Ftree\u002FHEAD\u002Fpackages\u002Fopenapi\u002Fskills\u002Fopenapi","---\nname: openapi\ndescription: >\n  Generate OpenAPI 3.1 spec from a tRPC router with @trpc\u002Fopenapi CLI or\n  programmatic API. Generate typed REST client with @hey-api\u002Fopenapi-ts and\n  configureTRPCHeyApiClient(). Configure transformers (superjson, EJSON) for\n  generated clients. Alpha status.\ntype: composition\nlibrary: trpc\nlibrary_version: '11.16.0-alpha'\nrequires:\n  - server-setup\nsources:\n  - 'trpc\u002Ftrpc:www\u002Fdocs\u002Fclient\u002Fopenapi.md'\n  - 'trpc\u002Ftrpc:packages\u002Fopenapi\u002Ftest\u002Fheyapi.test.ts'\n  - 'trpc\u002Ftrpc:examples\u002Fopenapi-codegen\u002F'\n---\n\n# tRPC -- OpenAPI\n\n> **Alpha**: `@trpc\u002Fopenapi` is versioned as `11.x.x-alpha`. APIs may change without notice.\n\n## Setup\n\n### 1. Install\n\n```bash\npnpm add @trpc\u002Fopenapi\n```\n\nFor HeyAPI client generation:\n\n```bash\npnpm add @hey-api\u002Fopenapi-ts -D\n```\n\n### 2. Generate the OpenAPI spec\n\nThe generator statically analyses your router's TypeScript types. It never executes your code.\n\n**CLI:**\n\n```bash\npnpm exec trpc-openapi .\u002Fsrc\u002Fserver\u002Findex.ts -e appRouter -o openapi.json --title \"My API\" --version 1.0.0\n```\n\n| Option                | Default        | Description                 |\n| --------------------- | -------------- | --------------------------- |\n| `-e, --export \u003Cname>` | `AppRouter`    | Name of the exported router |\n| `-o, --output \u003Cfile>` | `openapi.json` | Output file path            |\n| `--title \u003Ctext>`      | `tRPC API`     | OpenAPI `info.title`        |\n| `--version \u003Cver>`     | `0.0.0`        | OpenAPI `info.version`      |\n\n**Programmatic:**\n\n```ts\nimport { generateOpenAPIDocument } from '@trpc\u002Fopenapi';\n\nconst doc = await generateOpenAPIDocument('.\u002Fsrc\u002Fserver\u002Findex.ts', {\n  exportName: 'appRouter',\n  title: 'My API',\n  version: '1.0.0',\n});\n```\n\n### 3. Generate a HeyAPI client from the spec\n\n```ts\n\u002F\u002F scripts\u002Fcodegen.ts\nimport { rmSync, writeFileSync } from 'node:fs';\nimport * as path from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { createClient } from '@hey-api\u002Fopenapi-ts';\nimport { generateOpenAPIDocument } from '@trpc\u002Fopenapi';\nimport { createTRPCHeyApiTypeResolvers } from '@trpc\u002Fopenapi\u002Fheyapi';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\nconst routerPath = path.resolve(__dirname, '..', 'server', 'index.ts');\nconst outputDir = path.resolve(__dirname, '..', 'client', 'generated');\nconst specPath = path.resolve(__dirname, '..', '..', 'openapi.json');\n\nasync function main() {\n  const doc = await generateOpenAPIDocument(routerPath, {\n    exportName: 'appRouter',\n    title: 'Example API',\n    version: '1.0.0',\n  });\n\n  writeFileSync(specPath, JSON.stringify(doc, null, 2) + '\\n');\n\n  rmSync(outputDir, { recursive: true, force: true });\n\n  await createClient({\n    input: specPath,\n    output: outputDir,\n    plugins: [\n      {\n        name: '@hey-api\u002Ftypescript',\n        '~resolvers': createTRPCHeyApiTypeResolvers(),\n      },\n      {\n        name: '@hey-api\u002Fsdk',\n        operations: { strategy: 'single' },\n      },\n    ],\n  });\n}\n\nmain().catch((err) => {\n  console.error(err);\n  process.exit(1);\n});\n```\n\nRun it:\n\n```bash\npnpm tsx scripts\u002Fcodegen.ts\n```\n\n### 4. Configure and use the generated client at runtime\n\n```ts\nimport { configureTRPCHeyApiClient } from '@trpc\u002Fopenapi\u002Fheyapi';\nimport { client } from '.\u002Fgenerated\u002Fclient.gen';\nimport { Sdk } from '.\u002Fgenerated\u002Fsdk.gen';\n\nconfigureTRPCHeyApiClient(client, {\n  baseUrl: 'http:\u002F\u002Flocalhost:3000',\n});\nconst sdk = new Sdk({ client });\n\n\u002F\u002F Queries -> GET, Mutations -> POST\nconst result = await sdk.greeting({ query: { input: { name: 'World' } } });\nconst user = await sdk.user.create({ body: { name: 'Bob', age: 30 } });\n```\n\n## Core Patterns\n\n### CLI quick spec generation\n\n```bash\n# Default export name \"AppRouter\", output \"openapi.json\"\npnpm exec trpc-openapi .\u002Fsrc\u002Fserver\u002Frouter.ts\n\n# Custom export name and output\npnpm exec trpc-openapi .\u002Fsrc\u002Fserver\u002Frouter.ts -e appRouter -o api.json --title \"My API\" --version 1.0.0\n```\n\n### HeyAPI codegen with type resolvers (transformer setup)\n\nWhen the server uses a transformer, pass `createTRPCHeyApiTypeResolvers()` to the `@hey-api\u002Ftypescript` plugin so generated types use `Date` instead of `string` for date-time fields and `bigint` for bigint fields:\n\n```ts\nimport { createClient } from '@hey-api\u002Fopenapi-ts';\nimport { createTRPCHeyApiTypeResolvers } from '@trpc\u002Fopenapi\u002Fheyapi';\n\nawait createClient({\n  input: '.\u002Fopenapi.json',\n  output: '.\u002Fgenerated',\n  plugins: [\n    {\n      name: '@hey-api\u002Ftypescript',\n      '~resolvers': createTRPCHeyApiTypeResolvers(),\n    },\n    {\n      name: '@hey-api\u002Fsdk',\n      operations: { strategy: 'single' },\n    },\n  ],\n});\n```\n\n### Runtime client with superjson transformer\n\nWhen the tRPC server uses `superjson`, the client must be configured with the same transformer:\n\n```ts\n\u002F\u002F src\u002Fshared\u002Ftransformer.ts\nimport superjson from 'superjson';\n\nexport const transformer = superjson;\n```\n\n```ts\n\u002F\u002F src\u002Fserver\u002Ftrpc.ts\nimport { initTRPC } from '@trpc\u002Fserver';\nimport { transformer } from '..\u002Fshared\u002Ftransformer';\n\nconst t = initTRPC.create({ transformer });\nexport const router = t.router;\nexport const publicProcedure = t.procedure;\n```\n\n```ts\n\u002F\u002F src\u002Fclient\u002Findex.ts\nimport { configureTRPCHeyApiClient } from '@trpc\u002Fopenapi\u002Fheyapi';\nimport superjson from 'superjson';\nimport { client } from '.\u002Fgenerated\u002Fclient.gen';\nimport { Sdk } from '.\u002Fgenerated\u002Fsdk.gen';\n\nconfigureTRPCHeyApiClient(client, {\n  baseUrl: 'http:\u002F\u002Flocalhost:3000',\n  transformer: superjson,\n});\nconst sdk = new Sdk({ client });\n\nconst event = await sdk.getEvent({\n  query: { input: { id: 'evt_1', at: new Date('2025-06-15T10:00:00Z') } },\n});\n\u002F\u002F event.data.result.data.at is a Date object\n```\n\n### MongoDB EJSON transformer (cross-language)\n\nFor non-TypeScript clients, EJSON provides a language-agnostic serialization format:\n\n```ts\nimport type { TRPCDataTransformer } from '@trpc\u002Fserver';\nimport type { Document } from 'bson';\nimport { EJSON } from 'bson';\n\nexport const ejsonTransformer: TRPCDataTransformer = {\n  serialize: (value) => EJSON.serialize(value),\n  deserialize: (value) => EJSON.deserialize(value as Document),\n};\n```\n\n```ts\nimport { configureTRPCHeyApiClient } from '@trpc\u002Fopenapi\u002Fheyapi';\nimport { client } from '.\u002Fgenerated\u002Fclient.gen';\nimport { ejsonTransformer } from '.\u002Ftransformer';\n\nconfigureTRPCHeyApiClient(client, {\n  baseUrl: 'http:\u002F\u002Flocalhost:3000',\n  transformer: ejsonTransformer,\n});\n```\n\n### Response shape\n\nAll tRPC HTTP responses follow the envelope format. Access data through `result.data`:\n\n```ts\nconst listResult = await sdk.user.list();\nconst users = listResult.data?.result.data; \u002F\u002F the actual return value\n\nconst createResult = await sdk.user.create({ body: { name: 'nick' } });\nconst user = createResult.data?.result.data;\n\u002F\u002F user.createdAt instanceof Date === true (when transformer is configured)\n```\n\n### Descriptions in the spec\n\nZod `.describe()` calls and JSDoc comments on types, routers, and procedures become `description` fields in the generated OpenAPI spec. No annotations or decorators required.\n\n## Common Mistakes\n\n### Missing transformer config in HeyAPI client\n\nWhen the tRPC server uses `superjson` or another transformer, the generated HeyAPI client must also be configured with the same transformer via `configureTRPCHeyApiClient(client, { transformer })`. Without this, `Date`, `Map`, `Set`, and other non-JSON types will be silently wrong at runtime -- they arrive as raw serialized objects instead of their native types.\n\nWrong:\n\n```ts\nconfigureTRPCHeyApiClient(client, {\n  baseUrl: 'http:\u002F\u002Flocalhost:3000',\n  \u002F\u002F missing transformer -- Dates will be broken\n});\n```\n\nRight:\n\n```ts\nconfigureTRPCHeyApiClient(client, {\n  baseUrl: 'http:\u002F\u002Flocalhost:3000',\n  transformer: superjson, \u002F\u002F must match server's transformer\n});\n```\n\n### Expecting subscriptions in OpenAPI spec\n\nSubscriptions are currently excluded from OpenAPI spec generation. The generator silently skips any procedure with `type: 'subscription'`. SSE subscription support is planned but not yet available.\n\n### Forgetting createTRPCHeyApiTypeResolvers when using a transformer\n\nWithout the type resolvers plugin, HeyAPI generates `string` types for date-time fields instead of `Date`. The `createTRPCHeyApiTypeResolvers()` function maps `date`\u002F`date-time` format to `Date` and `bigint` format to `bigint` in the generated TypeScript SDK.\n\n### Using the wrong export name\n\nThe CLI defaults to `--export AppRouter` (the type). If your file exports the router value as `appRouter`, pass `-e appRouter`. If the export is not found, the error message lists all available exports from the file.\n\n## See Also\n\n- **server-setup** -- Required. Define routers and procedures before generating the spec.\n- **superjson** -- Transformer configuration for server and client. OpenAPI clients need matching transformer config.\n- **validators** -- Zod `.describe()` calls propagate into OpenAPI `description` fields.\n- Full working example: `examples\u002Fopenapi-codegen\u002F`\n",{"data":37,"body":46},{"name":4,"description":6,"type":38,"library":8,"library_version":39,"requires":40,"sources":42},"composition","11.16.0-alpha",[41],"server-setup",[43,44,45],"trpc\u002Ftrpc:www\u002Fdocs\u002Fclient\u002Fopenapi.md","trpc\u002Ftrpc:packages\u002Fopenapi\u002Ftest\u002Fheyapi.test.ts","trpc\u002Ftrpc:examples\u002Fopenapi-codegen\u002F",{"type":47,"children":48},"root",[49,58,91,98,105,139,144,172,178,183,191,272,420,428,664,670,2128,2133,2157,2163,2658,2664,2670,2781,2787,2831,3201,3207,3220,3305,3536,4006,4012,4017,4316,4528,4534,4546,4820,4826,4847,4853,4859,4900,4905,4981,4986,5078,5084,5097,5103,5165,5171,5199,5205,5263],{"type":50,"tag":51,"props":52,"children":54},"element","h1",{"id":53},"trpc-openapi",[55],{"type":56,"value":57},"text","tRPC -- OpenAPI",{"type":50,"tag":59,"props":60,"children":61},"blockquote",{},[62],{"type":50,"tag":63,"props":64,"children":65},"p",{},[66,72,74,81,83,89],{"type":50,"tag":67,"props":68,"children":69},"strong",{},[70],{"type":56,"value":71},"Alpha",{"type":56,"value":73},": ",{"type":50,"tag":75,"props":76,"children":78},"code",{"className":77},[],[79],{"type":56,"value":80},"@trpc\u002Fopenapi",{"type":56,"value":82}," is versioned as ",{"type":50,"tag":75,"props":84,"children":86},{"className":85},[],[87],{"type":56,"value":88},"11.x.x-alpha",{"type":56,"value":90},". APIs may change without notice.",{"type":50,"tag":92,"props":93,"children":95},"h2",{"id":94},"setup",[96],{"type":56,"value":97},"Setup",{"type":50,"tag":99,"props":100,"children":102},"h3",{"id":101},"_1-install",[103],{"type":56,"value":104},"1. Install",{"type":50,"tag":106,"props":107,"children":112},"pre",{"className":108,"code":109,"language":110,"meta":111,"style":111},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm add @trpc\u002Fopenapi\n","bash","",[113],{"type":50,"tag":75,"props":114,"children":115},{"__ignoreMap":111},[116],{"type":50,"tag":117,"props":118,"children":121},"span",{"class":119,"line":120},"line",1,[122,128,134],{"type":50,"tag":117,"props":123,"children":125},{"style":124},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[126],{"type":56,"value":127},"pnpm",{"type":50,"tag":117,"props":129,"children":131},{"style":130},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[132],{"type":56,"value":133}," add",{"type":50,"tag":117,"props":135,"children":136},{"style":130},[137],{"type":56,"value":138}," @trpc\u002Fopenapi\n",{"type":50,"tag":63,"props":140,"children":141},{},[142],{"type":56,"value":143},"For HeyAPI client generation:",{"type":50,"tag":106,"props":145,"children":147},{"className":108,"code":146,"language":110,"meta":111,"style":111},"pnpm add @hey-api\u002Fopenapi-ts -D\n",[148],{"type":50,"tag":75,"props":149,"children":150},{"__ignoreMap":111},[151],{"type":50,"tag":117,"props":152,"children":153},{"class":119,"line":120},[154,158,162,167],{"type":50,"tag":117,"props":155,"children":156},{"style":124},[157],{"type":56,"value":127},{"type":50,"tag":117,"props":159,"children":160},{"style":130},[161],{"type":56,"value":133},{"type":50,"tag":117,"props":163,"children":164},{"style":130},[165],{"type":56,"value":166}," @hey-api\u002Fopenapi-ts",{"type":50,"tag":117,"props":168,"children":169},{"style":130},[170],{"type":56,"value":171}," -D\n",{"type":50,"tag":99,"props":173,"children":175},{"id":174},"_2-generate-the-openapi-spec",[176],{"type":56,"value":177},"2. Generate the OpenAPI spec",{"type":50,"tag":63,"props":179,"children":180},{},[181],{"type":56,"value":182},"The generator statically analyses your router's TypeScript types. It never executes your code.",{"type":50,"tag":63,"props":184,"children":185},{},[186],{"type":50,"tag":67,"props":187,"children":188},{},[189],{"type":56,"value":190},"CLI:",{"type":50,"tag":106,"props":192,"children":194},{"className":108,"code":193,"language":110,"meta":111,"style":111},"pnpm exec trpc-openapi .\u002Fsrc\u002Fserver\u002Findex.ts -e appRouter -o openapi.json --title \"My API\" --version 1.0.0\n",[195],{"type":50,"tag":75,"props":196,"children":197},{"__ignoreMap":111},[198],{"type":50,"tag":117,"props":199,"children":200},{"class":119,"line":120},[201,205,210,215,220,225,230,235,240,245,251,256,261,266],{"type":50,"tag":117,"props":202,"children":203},{"style":124},[204],{"type":56,"value":127},{"type":50,"tag":117,"props":206,"children":207},{"style":130},[208],{"type":56,"value":209}," exec",{"type":50,"tag":117,"props":211,"children":212},{"style":130},[213],{"type":56,"value":214}," trpc-openapi",{"type":50,"tag":117,"props":216,"children":217},{"style":130},[218],{"type":56,"value":219}," .\u002Fsrc\u002Fserver\u002Findex.ts",{"type":50,"tag":117,"props":221,"children":222},{"style":130},[223],{"type":56,"value":224}," -e",{"type":50,"tag":117,"props":226,"children":227},{"style":130},[228],{"type":56,"value":229}," appRouter",{"type":50,"tag":117,"props":231,"children":232},{"style":130},[233],{"type":56,"value":234}," -o",{"type":50,"tag":117,"props":236,"children":237},{"style":130},[238],{"type":56,"value":239}," openapi.json",{"type":50,"tag":117,"props":241,"children":242},{"style":130},[243],{"type":56,"value":244}," --title",{"type":50,"tag":117,"props":246,"children":248},{"style":247},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[249],{"type":56,"value":250}," \"",{"type":50,"tag":117,"props":252,"children":253},{"style":130},[254],{"type":56,"value":255},"My API",{"type":50,"tag":117,"props":257,"children":258},{"style":247},[259],{"type":56,"value":260},"\"",{"type":50,"tag":117,"props":262,"children":263},{"style":130},[264],{"type":56,"value":265}," --version",{"type":50,"tag":117,"props":267,"children":269},{"style":268},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[270],{"type":56,"value":271}," 1.0.0\n",{"type":50,"tag":273,"props":274,"children":275},"table",{},[276,300],{"type":50,"tag":277,"props":278,"children":279},"thead",{},[280],{"type":50,"tag":281,"props":282,"children":283},"tr",{},[284,290,295],{"type":50,"tag":285,"props":286,"children":287},"th",{},[288],{"type":56,"value":289},"Option",{"type":50,"tag":285,"props":291,"children":292},{},[293],{"type":56,"value":294},"Default",{"type":50,"tag":285,"props":296,"children":297},{},[298],{"type":56,"value":299},"Description",{"type":50,"tag":301,"props":302,"children":303},"tbody",{},[304,331,357,389],{"type":50,"tag":281,"props":305,"children":306},{},[307,317,326],{"type":50,"tag":308,"props":309,"children":310},"td",{},[311],{"type":50,"tag":75,"props":312,"children":314},{"className":313},[],[315],{"type":56,"value":316},"-e, --export \u003Cname>",{"type":50,"tag":308,"props":318,"children":319},{},[320],{"type":50,"tag":75,"props":321,"children":323},{"className":322},[],[324],{"type":56,"value":325},"AppRouter",{"type":50,"tag":308,"props":327,"children":328},{},[329],{"type":56,"value":330},"Name of the exported router",{"type":50,"tag":281,"props":332,"children":333},{},[334,343,352],{"type":50,"tag":308,"props":335,"children":336},{},[337],{"type":50,"tag":75,"props":338,"children":340},{"className":339},[],[341],{"type":56,"value":342},"-o, --output \u003Cfile>",{"type":50,"tag":308,"props":344,"children":345},{},[346],{"type":50,"tag":75,"props":347,"children":349},{"className":348},[],[350],{"type":56,"value":351},"openapi.json",{"type":50,"tag":308,"props":353,"children":354},{},[355],{"type":56,"value":356},"Output file path",{"type":50,"tag":281,"props":358,"children":359},{},[360,369,378],{"type":50,"tag":308,"props":361,"children":362},{},[363],{"type":50,"tag":75,"props":364,"children":366},{"className":365},[],[367],{"type":56,"value":368},"--title \u003Ctext>",{"type":50,"tag":308,"props":370,"children":371},{},[372],{"type":50,"tag":75,"props":373,"children":375},{"className":374},[],[376],{"type":56,"value":377},"tRPC API",{"type":50,"tag":308,"props":379,"children":380},{},[381,383],{"type":56,"value":382},"OpenAPI ",{"type":50,"tag":75,"props":384,"children":386},{"className":385},[],[387],{"type":56,"value":388},"info.title",{"type":50,"tag":281,"props":390,"children":391},{},[392,401,410],{"type":50,"tag":308,"props":393,"children":394},{},[395],{"type":50,"tag":75,"props":396,"children":398},{"className":397},[],[399],{"type":56,"value":400},"--version \u003Cver>",{"type":50,"tag":308,"props":402,"children":403},{},[404],{"type":50,"tag":75,"props":405,"children":407},{"className":406},[],[408],{"type":56,"value":409},"0.0.0",{"type":50,"tag":308,"props":411,"children":412},{},[413,414],{"type":56,"value":382},{"type":50,"tag":75,"props":415,"children":417},{"className":416},[],[418],{"type":56,"value":419},"info.version",{"type":50,"tag":63,"props":421,"children":422},{},[423],{"type":50,"tag":67,"props":424,"children":425},{},[426],{"type":56,"value":427},"Programmatic:",{"type":50,"tag":106,"props":429,"children":433},{"className":430,"code":431,"language":432,"meta":111,"style":111},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { generateOpenAPIDocument } from '@trpc\u002Fopenapi';\n\nconst doc = await generateOpenAPIDocument('.\u002Fsrc\u002Fserver\u002Findex.ts', {\n  exportName: 'appRouter',\n  title: 'My API',\n  version: '1.0.0',\n});\n","ts",[434],{"type":50,"tag":75,"props":435,"children":436},{"__ignoreMap":111},[437,486,496,554,587,616,646],{"type":50,"tag":117,"props":438,"children":439},{"class":119,"line":120},[440,446,451,457,462,467,472,476,481],{"type":50,"tag":117,"props":441,"children":443},{"style":442},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[444],{"type":56,"value":445},"import",{"type":50,"tag":117,"props":447,"children":448},{"style":247},[449],{"type":56,"value":450}," {",{"type":50,"tag":117,"props":452,"children":454},{"style":453},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[455],{"type":56,"value":456}," generateOpenAPIDocument",{"type":50,"tag":117,"props":458,"children":459},{"style":247},[460],{"type":56,"value":461}," }",{"type":50,"tag":117,"props":463,"children":464},{"style":442},[465],{"type":56,"value":466}," from",{"type":50,"tag":117,"props":468,"children":469},{"style":247},[470],{"type":56,"value":471}," '",{"type":50,"tag":117,"props":473,"children":474},{"style":130},[475],{"type":56,"value":80},{"type":50,"tag":117,"props":477,"children":478},{"style":247},[479],{"type":56,"value":480},"'",{"type":50,"tag":117,"props":482,"children":483},{"style":247},[484],{"type":56,"value":485},";\n",{"type":50,"tag":117,"props":487,"children":489},{"class":119,"line":488},2,[490],{"type":50,"tag":117,"props":491,"children":493},{"emptyLinePlaceholder":492},true,[494],{"type":56,"value":495},"\n",{"type":50,"tag":117,"props":497,"children":499},{"class":119,"line":498},3,[500,506,511,516,521,526,531,535,540,544,549],{"type":50,"tag":117,"props":501,"children":503},{"style":502},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[504],{"type":56,"value":505},"const",{"type":50,"tag":117,"props":507,"children":508},{"style":453},[509],{"type":56,"value":510}," doc ",{"type":50,"tag":117,"props":512,"children":513},{"style":247},[514],{"type":56,"value":515},"=",{"type":50,"tag":117,"props":517,"children":518},{"style":442},[519],{"type":56,"value":520}," await",{"type":50,"tag":117,"props":522,"children":524},{"style":523},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[525],{"type":56,"value":456},{"type":50,"tag":117,"props":527,"children":528},{"style":453},[529],{"type":56,"value":530},"(",{"type":50,"tag":117,"props":532,"children":533},{"style":247},[534],{"type":56,"value":480},{"type":50,"tag":117,"props":536,"children":537},{"style":130},[538],{"type":56,"value":539},".\u002Fsrc\u002Fserver\u002Findex.ts",{"type":50,"tag":117,"props":541,"children":542},{"style":247},[543],{"type":56,"value":480},{"type":50,"tag":117,"props":545,"children":546},{"style":247},[547],{"type":56,"value":548},",",{"type":50,"tag":117,"props":550,"children":551},{"style":247},[552],{"type":56,"value":553}," {\n",{"type":50,"tag":117,"props":555,"children":557},{"class":119,"line":556},4,[558,564,569,573,578,582],{"type":50,"tag":117,"props":559,"children":561},{"style":560},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[562],{"type":56,"value":563},"  exportName",{"type":50,"tag":117,"props":565,"children":566},{"style":247},[567],{"type":56,"value":568},":",{"type":50,"tag":117,"props":570,"children":571},{"style":247},[572],{"type":56,"value":471},{"type":50,"tag":117,"props":574,"children":575},{"style":130},[576],{"type":56,"value":577},"appRouter",{"type":50,"tag":117,"props":579,"children":580},{"style":247},[581],{"type":56,"value":480},{"type":50,"tag":117,"props":583,"children":584},{"style":247},[585],{"type":56,"value":586},",\n",{"type":50,"tag":117,"props":588,"children":590},{"class":119,"line":589},5,[591,596,600,604,608,612],{"type":50,"tag":117,"props":592,"children":593},{"style":560},[594],{"type":56,"value":595},"  title",{"type":50,"tag":117,"props":597,"children":598},{"style":247},[599],{"type":56,"value":568},{"type":50,"tag":117,"props":601,"children":602},{"style":247},[603],{"type":56,"value":471},{"type":50,"tag":117,"props":605,"children":606},{"style":130},[607],{"type":56,"value":255},{"type":50,"tag":117,"props":609,"children":610},{"style":247},[611],{"type":56,"value":480},{"type":50,"tag":117,"props":613,"children":614},{"style":247},[615],{"type":56,"value":586},{"type":50,"tag":117,"props":617,"children":619},{"class":119,"line":618},6,[620,625,629,633,638,642],{"type":50,"tag":117,"props":621,"children":622},{"style":560},[623],{"type":56,"value":624},"  version",{"type":50,"tag":117,"props":626,"children":627},{"style":247},[628],{"type":56,"value":568},{"type":50,"tag":117,"props":630,"children":631},{"style":247},[632],{"type":56,"value":471},{"type":50,"tag":117,"props":634,"children":635},{"style":130},[636],{"type":56,"value":637},"1.0.0",{"type":50,"tag":117,"props":639,"children":640},{"style":247},[641],{"type":56,"value":480},{"type":50,"tag":117,"props":643,"children":644},{"style":247},[645],{"type":56,"value":586},{"type":50,"tag":117,"props":647,"children":649},{"class":119,"line":648},7,[650,655,660],{"type":50,"tag":117,"props":651,"children":652},{"style":247},[653],{"type":56,"value":654},"}",{"type":50,"tag":117,"props":656,"children":657},{"style":453},[658],{"type":56,"value":659},")",{"type":50,"tag":117,"props":661,"children":662},{"style":247},[663],{"type":56,"value":485},{"type":50,"tag":99,"props":665,"children":667},{"id":666},"_3-generate-a-heyapi-client-from-the-spec",[668],{"type":56,"value":669},"3. Generate a HeyAPI client from the spec",{"type":50,"tag":106,"props":671,"children":673},{"className":430,"code":672,"language":432,"meta":111,"style":111},"\u002F\u002F scripts\u002Fcodegen.ts\nimport { rmSync, writeFileSync } from 'node:fs';\nimport * as path from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { createClient } from '@hey-api\u002Fopenapi-ts';\nimport { generateOpenAPIDocument } from '@trpc\u002Fopenapi';\nimport { createTRPCHeyApiTypeResolvers } from '@trpc\u002Fopenapi\u002Fheyapi';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\nconst routerPath = path.resolve(__dirname, '..', 'server', 'index.ts');\nconst outputDir = path.resolve(__dirname, '..', 'client', 'generated');\nconst specPath = path.resolve(__dirname, '..', '..', 'openapi.json');\n\nasync function main() {\n  const doc = await generateOpenAPIDocument(routerPath, {\n    exportName: 'appRouter',\n    title: 'Example API',\n    version: '1.0.0',\n  });\n\n  writeFileSync(specPath, JSON.stringify(doc, null, 2) + '\\n');\n\n  rmSync(outputDir, { recursive: true, force: true });\n\n  await createClient({\n    input: specPath,\n    output: outputDir,\n    plugins: [\n      {\n        name: '@hey-api\u002Ftypescript',\n        '~resolvers': createTRPCHeyApiTypeResolvers(),\n      },\n      {\n        name: '@hey-api\u002Fsdk',\n        operations: { strategy: 'single' },\n      },\n    ],\n  });\n}\n\nmain().catch((err) => {\n  console.error(err);\n  process.exit(1);\n});\n",[674],{"type":50,"tag":75,"props":675,"children":676},{"__ignoreMap":111},[677,686,736,780,821,862,901,942,950,1002,1042,1050,1144,1235,1324,1332,1360,1404,1433,1463,1492,1509,1517,1607,1615,1685,1693,1715,1737,1759,1777,1786,1816,1850,1859,1867,1896,1940,1948,1961,1977,1986,1994,2043,2077,2112],{"type":50,"tag":117,"props":678,"children":679},{"class":119,"line":120},[680],{"type":50,"tag":117,"props":681,"children":683},{"style":682},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[684],{"type":56,"value":685},"\u002F\u002F scripts\u002Fcodegen.ts\n",{"type":50,"tag":117,"props":687,"children":688},{"class":119,"line":488},[689,693,697,702,706,711,715,719,723,728,732],{"type":50,"tag":117,"props":690,"children":691},{"style":442},[692],{"type":56,"value":445},{"type":50,"tag":117,"props":694,"children":695},{"style":247},[696],{"type":56,"value":450},{"type":50,"tag":117,"props":698,"children":699},{"style":453},[700],{"type":56,"value":701}," rmSync",{"type":50,"tag":117,"props":703,"children":704},{"style":247},[705],{"type":56,"value":548},{"type":50,"tag":117,"props":707,"children":708},{"style":453},[709],{"type":56,"value":710}," writeFileSync",{"type":50,"tag":117,"props":712,"children":713},{"style":247},[714],{"type":56,"value":461},{"type":50,"tag":117,"props":716,"children":717},{"style":442},[718],{"type":56,"value":466},{"type":50,"tag":117,"props":720,"children":721},{"style":247},[722],{"type":56,"value":471},{"type":50,"tag":117,"props":724,"children":725},{"style":130},[726],{"type":56,"value":727},"node:fs",{"type":50,"tag":117,"props":729,"children":730},{"style":247},[731],{"type":56,"value":480},{"type":50,"tag":117,"props":733,"children":734},{"style":247},[735],{"type":56,"value":485},{"type":50,"tag":117,"props":737,"children":738},{"class":119,"line":498},[739,743,748,753,758,763,767,772,776],{"type":50,"tag":117,"props":740,"children":741},{"style":442},[742],{"type":56,"value":445},{"type":50,"tag":117,"props":744,"children":745},{"style":247},[746],{"type":56,"value":747}," *",{"type":50,"tag":117,"props":749,"children":750},{"style":442},[751],{"type":56,"value":752}," as",{"type":50,"tag":117,"props":754,"children":755},{"style":453},[756],{"type":56,"value":757}," path ",{"type":50,"tag":117,"props":759,"children":760},{"style":442},[761],{"type":56,"value":762},"from",{"type":50,"tag":117,"props":764,"children":765},{"style":247},[766],{"type":56,"value":471},{"type":50,"tag":117,"props":768,"children":769},{"style":130},[770],{"type":56,"value":771},"node:path",{"type":50,"tag":117,"props":773,"children":774},{"style":247},[775],{"type":56,"value":480},{"type":50,"tag":117,"props":777,"children":778},{"style":247},[779],{"type":56,"value":485},{"type":50,"tag":117,"props":781,"children":782},{"class":119,"line":556},[783,787,791,796,800,804,808,813,817],{"type":50,"tag":117,"props":784,"children":785},{"style":442},[786],{"type":56,"value":445},{"type":50,"tag":117,"props":788,"children":789},{"style":247},[790],{"type":56,"value":450},{"type":50,"tag":117,"props":792,"children":793},{"style":453},[794],{"type":56,"value":795}," fileURLToPath",{"type":50,"tag":117,"props":797,"children":798},{"style":247},[799],{"type":56,"value":461},{"type":50,"tag":117,"props":801,"children":802},{"style":442},[803],{"type":56,"value":466},{"type":50,"tag":117,"props":805,"children":806},{"style":247},[807],{"type":56,"value":471},{"type":50,"tag":117,"props":809,"children":810},{"style":130},[811],{"type":56,"value":812},"node:url",{"type":50,"tag":117,"props":814,"children":815},{"style":247},[816],{"type":56,"value":480},{"type":50,"tag":117,"props":818,"children":819},{"style":247},[820],{"type":56,"value":485},{"type":50,"tag":117,"props":822,"children":823},{"class":119,"line":589},[824,828,832,837,841,845,849,854,858],{"type":50,"tag":117,"props":825,"children":826},{"style":442},[827],{"type":56,"value":445},{"type":50,"tag":117,"props":829,"children":830},{"style":247},[831],{"type":56,"value":450},{"type":50,"tag":117,"props":833,"children":834},{"style":453},[835],{"type":56,"value":836}," createClient",{"type":50,"tag":117,"props":838,"children":839},{"style":247},[840],{"type":56,"value":461},{"type":50,"tag":117,"props":842,"children":843},{"style":442},[844],{"type":56,"value":466},{"type":50,"tag":117,"props":846,"children":847},{"style":247},[848],{"type":56,"value":471},{"type":50,"tag":117,"props":850,"children":851},{"style":130},[852],{"type":56,"value":853},"@hey-api\u002Fopenapi-ts",{"type":50,"tag":117,"props":855,"children":856},{"style":247},[857],{"type":56,"value":480},{"type":50,"tag":117,"props":859,"children":860},{"style":247},[861],{"type":56,"value":485},{"type":50,"tag":117,"props":863,"children":864},{"class":119,"line":618},[865,869,873,877,881,885,889,893,897],{"type":50,"tag":117,"props":866,"children":867},{"style":442},[868],{"type":56,"value":445},{"type":50,"tag":117,"props":870,"children":871},{"style":247},[872],{"type":56,"value":450},{"type":50,"tag":117,"props":874,"children":875},{"style":453},[876],{"type":56,"value":456},{"type":50,"tag":117,"props":878,"children":879},{"style":247},[880],{"type":56,"value":461},{"type":50,"tag":117,"props":882,"children":883},{"style":442},[884],{"type":56,"value":466},{"type":50,"tag":117,"props":886,"children":887},{"style":247},[888],{"type":56,"value":471},{"type":50,"tag":117,"props":890,"children":891},{"style":130},[892],{"type":56,"value":80},{"type":50,"tag":117,"props":894,"children":895},{"style":247},[896],{"type":56,"value":480},{"type":50,"tag":117,"props":898,"children":899},{"style":247},[900],{"type":56,"value":485},{"type":50,"tag":117,"props":902,"children":903},{"class":119,"line":648},[904,908,912,917,921,925,929,934,938],{"type":50,"tag":117,"props":905,"children":906},{"style":442},[907],{"type":56,"value":445},{"type":50,"tag":117,"props":909,"children":910},{"style":247},[911],{"type":56,"value":450},{"type":50,"tag":117,"props":913,"children":914},{"style":453},[915],{"type":56,"value":916}," createTRPCHeyApiTypeResolvers",{"type":50,"tag":117,"props":918,"children":919},{"style":247},[920],{"type":56,"value":461},{"type":50,"tag":117,"props":922,"children":923},{"style":442},[924],{"type":56,"value":466},{"type":50,"tag":117,"props":926,"children":927},{"style":247},[928],{"type":56,"value":471},{"type":50,"tag":117,"props":930,"children":931},{"style":130},[932],{"type":56,"value":933},"@trpc\u002Fopenapi\u002Fheyapi",{"type":50,"tag":117,"props":935,"children":936},{"style":247},[937],{"type":56,"value":480},{"type":50,"tag":117,"props":939,"children":940},{"style":247},[941],{"type":56,"value":485},{"type":50,"tag":117,"props":943,"children":945},{"class":119,"line":944},8,[946],{"type":50,"tag":117,"props":947,"children":948},{"emptyLinePlaceholder":492},[949],{"type":56,"value":495},{"type":50,"tag":117,"props":951,"children":953},{"class":119,"line":952},9,[954,958,963,967,971,975,979,984,989,993,998],{"type":50,"tag":117,"props":955,"children":956},{"style":502},[957],{"type":56,"value":505},{"type":50,"tag":117,"props":959,"children":960},{"style":453},[961],{"type":56,"value":962}," __filename ",{"type":50,"tag":117,"props":964,"children":965},{"style":247},[966],{"type":56,"value":515},{"type":50,"tag":117,"props":968,"children":969},{"style":523},[970],{"type":56,"value":795},{"type":50,"tag":117,"props":972,"children":973},{"style":453},[974],{"type":56,"value":530},{"type":50,"tag":117,"props":976,"children":977},{"style":442},[978],{"type":56,"value":445},{"type":50,"tag":117,"props":980,"children":981},{"style":247},[982],{"type":56,"value":983},".",{"type":50,"tag":117,"props":985,"children":986},{"style":453},[987],{"type":56,"value":988},"meta",{"type":50,"tag":117,"props":990,"children":991},{"style":247},[992],{"type":56,"value":983},{"type":50,"tag":117,"props":994,"children":995},{"style":453},[996],{"type":56,"value":997},"url)",{"type":50,"tag":117,"props":999,"children":1000},{"style":247},[1001],{"type":56,"value":485},{"type":50,"tag":117,"props":1003,"children":1005},{"class":119,"line":1004},10,[1006,1010,1015,1019,1024,1028,1033,1038],{"type":50,"tag":117,"props":1007,"children":1008},{"style":502},[1009],{"type":56,"value":505},{"type":50,"tag":117,"props":1011,"children":1012},{"style":453},[1013],{"type":56,"value":1014}," __dirname ",{"type":50,"tag":117,"props":1016,"children":1017},{"style":247},[1018],{"type":56,"value":515},{"type":50,"tag":117,"props":1020,"children":1021},{"style":453},[1022],{"type":56,"value":1023}," path",{"type":50,"tag":117,"props":1025,"children":1026},{"style":247},[1027],{"type":56,"value":983},{"type":50,"tag":117,"props":1029,"children":1030},{"style":523},[1031],{"type":56,"value":1032},"dirname",{"type":50,"tag":117,"props":1034,"children":1035},{"style":453},[1036],{"type":56,"value":1037},"(__filename)",{"type":50,"tag":117,"props":1039,"children":1040},{"style":247},[1041],{"type":56,"value":485},{"type":50,"tag":117,"props":1043,"children":1045},{"class":119,"line":1044},11,[1046],{"type":50,"tag":117,"props":1047,"children":1048},{"emptyLinePlaceholder":492},[1049],{"type":56,"value":495},{"type":50,"tag":117,"props":1051,"children":1053},{"class":119,"line":1052},12,[1054,1058,1063,1067,1071,1075,1080,1085,1089,1093,1098,1102,1106,1110,1115,1119,1123,1127,1132,1136,1140],{"type":50,"tag":117,"props":1055,"children":1056},{"style":502},[1057],{"type":56,"value":505},{"type":50,"tag":117,"props":1059,"children":1060},{"style":453},[1061],{"type":56,"value":1062}," routerPath ",{"type":50,"tag":117,"props":1064,"children":1065},{"style":247},[1066],{"type":56,"value":515},{"type":50,"tag":117,"props":1068,"children":1069},{"style":453},[1070],{"type":56,"value":1023},{"type":50,"tag":117,"props":1072,"children":1073},{"style":247},[1074],{"type":56,"value":983},{"type":50,"tag":117,"props":1076,"children":1077},{"style":523},[1078],{"type":56,"value":1079},"resolve",{"type":50,"tag":117,"props":1081,"children":1082},{"style":453},[1083],{"type":56,"value":1084},"(__dirname",{"type":50,"tag":117,"props":1086,"children":1087},{"style":247},[1088],{"type":56,"value":548},{"type":50,"tag":117,"props":1090,"children":1091},{"style":247},[1092],{"type":56,"value":471},{"type":50,"tag":117,"props":1094,"children":1095},{"style":130},[1096],{"type":56,"value":1097},"..",{"type":50,"tag":117,"props":1099,"children":1100},{"style":247},[1101],{"type":56,"value":480},{"type":50,"tag":117,"props":1103,"children":1104},{"style":247},[1105],{"type":56,"value":548},{"type":50,"tag":117,"props":1107,"children":1108},{"style":247},[1109],{"type":56,"value":471},{"type":50,"tag":117,"props":1111,"children":1112},{"style":130},[1113],{"type":56,"value":1114},"server",{"type":50,"tag":117,"props":1116,"children":1117},{"style":247},[1118],{"type":56,"value":480},{"type":50,"tag":117,"props":1120,"children":1121},{"style":247},[1122],{"type":56,"value":548},{"type":50,"tag":117,"props":1124,"children":1125},{"style":247},[1126],{"type":56,"value":471},{"type":50,"tag":117,"props":1128,"children":1129},{"style":130},[1130],{"type":56,"value":1131},"index.ts",{"type":50,"tag":117,"props":1133,"children":1134},{"style":247},[1135],{"type":56,"value":480},{"type":50,"tag":117,"props":1137,"children":1138},{"style":453},[1139],{"type":56,"value":659},{"type":50,"tag":117,"props":1141,"children":1142},{"style":247},[1143],{"type":56,"value":485},{"type":50,"tag":117,"props":1145,"children":1147},{"class":119,"line":1146},13,[1148,1152,1157,1161,1165,1169,1173,1177,1181,1185,1189,1193,1197,1201,1206,1210,1214,1218,1223,1227,1231],{"type":50,"tag":117,"props":1149,"children":1150},{"style":502},[1151],{"type":56,"value":505},{"type":50,"tag":117,"props":1153,"children":1154},{"style":453},[1155],{"type":56,"value":1156}," outputDir ",{"type":50,"tag":117,"props":1158,"children":1159},{"style":247},[1160],{"type":56,"value":515},{"type":50,"tag":117,"props":1162,"children":1163},{"style":453},[1164],{"type":56,"value":1023},{"type":50,"tag":117,"props":1166,"children":1167},{"style":247},[1168],{"type":56,"value":983},{"type":50,"tag":117,"props":1170,"children":1171},{"style":523},[1172],{"type":56,"value":1079},{"type":50,"tag":117,"props":1174,"children":1175},{"style":453},[1176],{"type":56,"value":1084},{"type":50,"tag":117,"props":1178,"children":1179},{"style":247},[1180],{"type":56,"value":548},{"type":50,"tag":117,"props":1182,"children":1183},{"style":247},[1184],{"type":56,"value":471},{"type":50,"tag":117,"props":1186,"children":1187},{"style":130},[1188],{"type":56,"value":1097},{"type":50,"tag":117,"props":1190,"children":1191},{"style":247},[1192],{"type":56,"value":480},{"type":50,"tag":117,"props":1194,"children":1195},{"style":247},[1196],{"type":56,"value":548},{"type":50,"tag":117,"props":1198,"children":1199},{"style":247},[1200],{"type":56,"value":471},{"type":50,"tag":117,"props":1202,"children":1203},{"style":130},[1204],{"type":56,"value":1205},"client",{"type":50,"tag":117,"props":1207,"children":1208},{"style":247},[1209],{"type":56,"value":480},{"type":50,"tag":117,"props":1211,"children":1212},{"style":247},[1213],{"type":56,"value":548},{"type":50,"tag":117,"props":1215,"children":1216},{"style":247},[1217],{"type":56,"value":471},{"type":50,"tag":117,"props":1219,"children":1220},{"style":130},[1221],{"type":56,"value":1222},"generated",{"type":50,"tag":117,"props":1224,"children":1225},{"style":247},[1226],{"type":56,"value":480},{"type":50,"tag":117,"props":1228,"children":1229},{"style":453},[1230],{"type":56,"value":659},{"type":50,"tag":117,"props":1232,"children":1233},{"style":247},[1234],{"type":56,"value":485},{"type":50,"tag":117,"props":1236,"children":1238},{"class":119,"line":1237},14,[1239,1243,1248,1252,1256,1260,1264,1268,1272,1276,1280,1284,1288,1292,1296,1300,1304,1308,1312,1316,1320],{"type":50,"tag":117,"props":1240,"children":1241},{"style":502},[1242],{"type":56,"value":505},{"type":50,"tag":117,"props":1244,"children":1245},{"style":453},[1246],{"type":56,"value":1247}," specPath ",{"type":50,"tag":117,"props":1249,"children":1250},{"style":247},[1251],{"type":56,"value":515},{"type":50,"tag":117,"props":1253,"children":1254},{"style":453},[1255],{"type":56,"value":1023},{"type":50,"tag":117,"props":1257,"children":1258},{"style":247},[1259],{"type":56,"value":983},{"type":50,"tag":117,"props":1261,"children":1262},{"style":523},[1263],{"type":56,"value":1079},{"type":50,"tag":117,"props":1265,"children":1266},{"style":453},[1267],{"type":56,"value":1084},{"type":50,"tag":117,"props":1269,"children":1270},{"style":247},[1271],{"type":56,"value":548},{"type":50,"tag":117,"props":1273,"children":1274},{"style":247},[1275],{"type":56,"value":471},{"type":50,"tag":117,"props":1277,"children":1278},{"style":130},[1279],{"type":56,"value":1097},{"type":50,"tag":117,"props":1281,"children":1282},{"style":247},[1283],{"type":56,"value":480},{"type":50,"tag":117,"props":1285,"children":1286},{"style":247},[1287],{"type":56,"value":548},{"type":50,"tag":117,"props":1289,"children":1290},{"style":247},[1291],{"type":56,"value":471},{"type":50,"tag":117,"props":1293,"children":1294},{"style":130},[1295],{"type":56,"value":1097},{"type":50,"tag":117,"props":1297,"children":1298},{"style":247},[1299],{"type":56,"value":480},{"type":50,"tag":117,"props":1301,"children":1302},{"style":247},[1303],{"type":56,"value":548},{"type":50,"tag":117,"props":1305,"children":1306},{"style":247},[1307],{"type":56,"value":471},{"type":50,"tag":117,"props":1309,"children":1310},{"style":130},[1311],{"type":56,"value":351},{"type":50,"tag":117,"props":1313,"children":1314},{"style":247},[1315],{"type":56,"value":480},{"type":50,"tag":117,"props":1317,"children":1318},{"style":453},[1319],{"type":56,"value":659},{"type":50,"tag":117,"props":1321,"children":1322},{"style":247},[1323],{"type":56,"value":485},{"type":50,"tag":117,"props":1325,"children":1327},{"class":119,"line":1326},15,[1328],{"type":50,"tag":117,"props":1329,"children":1330},{"emptyLinePlaceholder":492},[1331],{"type":56,"value":495},{"type":50,"tag":117,"props":1333,"children":1335},{"class":119,"line":1334},16,[1336,1341,1346,1351,1356],{"type":50,"tag":117,"props":1337,"children":1338},{"style":502},[1339],{"type":56,"value":1340},"async",{"type":50,"tag":117,"props":1342,"children":1343},{"style":502},[1344],{"type":56,"value":1345}," function",{"type":50,"tag":117,"props":1347,"children":1348},{"style":523},[1349],{"type":56,"value":1350}," main",{"type":50,"tag":117,"props":1352,"children":1353},{"style":247},[1354],{"type":56,"value":1355},"()",{"type":50,"tag":117,"props":1357,"children":1358},{"style":247},[1359],{"type":56,"value":553},{"type":50,"tag":117,"props":1361,"children":1363},{"class":119,"line":1362},17,[1364,1369,1374,1379,1383,1387,1391,1396,1400],{"type":50,"tag":117,"props":1365,"children":1366},{"style":502},[1367],{"type":56,"value":1368},"  const",{"type":50,"tag":117,"props":1370,"children":1371},{"style":453},[1372],{"type":56,"value":1373}," doc",{"type":50,"tag":117,"props":1375,"children":1376},{"style":247},[1377],{"type":56,"value":1378}," =",{"type":50,"tag":117,"props":1380,"children":1381},{"style":442},[1382],{"type":56,"value":520},{"type":50,"tag":117,"props":1384,"children":1385},{"style":523},[1386],{"type":56,"value":456},{"type":50,"tag":117,"props":1388,"children":1389},{"style":560},[1390],{"type":56,"value":530},{"type":50,"tag":117,"props":1392,"children":1393},{"style":453},[1394],{"type":56,"value":1395},"routerPath",{"type":50,"tag":117,"props":1397,"children":1398},{"style":247},[1399],{"type":56,"value":548},{"type":50,"tag":117,"props":1401,"children":1402},{"style":247},[1403],{"type":56,"value":553},{"type":50,"tag":117,"props":1405,"children":1407},{"class":119,"line":1406},18,[1408,1413,1417,1421,1425,1429],{"type":50,"tag":117,"props":1409,"children":1410},{"style":560},[1411],{"type":56,"value":1412},"    exportName",{"type":50,"tag":117,"props":1414,"children":1415},{"style":247},[1416],{"type":56,"value":568},{"type":50,"tag":117,"props":1418,"children":1419},{"style":247},[1420],{"type":56,"value":471},{"type":50,"tag":117,"props":1422,"children":1423},{"style":130},[1424],{"type":56,"value":577},{"type":50,"tag":117,"props":1426,"children":1427},{"style":247},[1428],{"type":56,"value":480},{"type":50,"tag":117,"props":1430,"children":1431},{"style":247},[1432],{"type":56,"value":586},{"type":50,"tag":117,"props":1434,"children":1436},{"class":119,"line":1435},19,[1437,1442,1446,1450,1455,1459],{"type":50,"tag":117,"props":1438,"children":1439},{"style":560},[1440],{"type":56,"value":1441},"    title",{"type":50,"tag":117,"props":1443,"children":1444},{"style":247},[1445],{"type":56,"value":568},{"type":50,"tag":117,"props":1447,"children":1448},{"style":247},[1449],{"type":56,"value":471},{"type":50,"tag":117,"props":1451,"children":1452},{"style":130},[1453],{"type":56,"value":1454},"Example API",{"type":50,"tag":117,"props":1456,"children":1457},{"style":247},[1458],{"type":56,"value":480},{"type":50,"tag":117,"props":1460,"children":1461},{"style":247},[1462],{"type":56,"value":586},{"type":50,"tag":117,"props":1464,"children":1466},{"class":119,"line":1465},20,[1467,1472,1476,1480,1484,1488],{"type":50,"tag":117,"props":1468,"children":1469},{"style":560},[1470],{"type":56,"value":1471},"    version",{"type":50,"tag":117,"props":1473,"children":1474},{"style":247},[1475],{"type":56,"value":568},{"type":50,"tag":117,"props":1477,"children":1478},{"style":247},[1479],{"type":56,"value":471},{"type":50,"tag":117,"props":1481,"children":1482},{"style":130},[1483],{"type":56,"value":637},{"type":50,"tag":117,"props":1485,"children":1486},{"style":247},[1487],{"type":56,"value":480},{"type":50,"tag":117,"props":1489,"children":1490},{"style":247},[1491],{"type":56,"value":586},{"type":50,"tag":117,"props":1493,"children":1495},{"class":119,"line":1494},21,[1496,1501,1505],{"type":50,"tag":117,"props":1497,"children":1498},{"style":247},[1499],{"type":56,"value":1500},"  }",{"type":50,"tag":117,"props":1502,"children":1503},{"style":560},[1504],{"type":56,"value":659},{"type":50,"tag":117,"props":1506,"children":1507},{"style":247},[1508],{"type":56,"value":485},{"type":50,"tag":117,"props":1510,"children":1512},{"class":119,"line":1511},22,[1513],{"type":50,"tag":117,"props":1514,"children":1515},{"emptyLinePlaceholder":492},[1516],{"type":56,"value":495},{"type":50,"tag":117,"props":1518,"children":1520},{"class":119,"line":1519},23,[1521,1526,1530,1535,1539,1544,1548,1553,1557,1562,1566,1571,1576,1581,1586,1590,1595,1599,1603],{"type":50,"tag":117,"props":1522,"children":1523},{"style":523},[1524],{"type":56,"value":1525},"  writeFileSync",{"type":50,"tag":117,"props":1527,"children":1528},{"style":560},[1529],{"type":56,"value":530},{"type":50,"tag":117,"props":1531,"children":1532},{"style":453},[1533],{"type":56,"value":1534},"specPath",{"type":50,"tag":117,"props":1536,"children":1537},{"style":247},[1538],{"type":56,"value":548},{"type":50,"tag":117,"props":1540,"children":1541},{"style":453},[1542],{"type":56,"value":1543}," JSON",{"type":50,"tag":117,"props":1545,"children":1546},{"style":247},[1547],{"type":56,"value":983},{"type":50,"tag":117,"props":1549,"children":1550},{"style":523},[1551],{"type":56,"value":1552},"stringify",{"type":50,"tag":117,"props":1554,"children":1555},{"style":560},[1556],{"type":56,"value":530},{"type":50,"tag":117,"props":1558,"children":1559},{"style":453},[1560],{"type":56,"value":1561},"doc",{"type":50,"tag":117,"props":1563,"children":1564},{"style":247},[1565],{"type":56,"value":548},{"type":50,"tag":117,"props":1567,"children":1568},{"style":247},[1569],{"type":56,"value":1570}," null,",{"type":50,"tag":117,"props":1572,"children":1573},{"style":268},[1574],{"type":56,"value":1575}," 2",{"type":50,"tag":117,"props":1577,"children":1578},{"style":560},[1579],{"type":56,"value":1580},") ",{"type":50,"tag":117,"props":1582,"children":1583},{"style":247},[1584],{"type":56,"value":1585},"+",{"type":50,"tag":117,"props":1587,"children":1588},{"style":247},[1589],{"type":56,"value":471},{"type":50,"tag":117,"props":1591,"children":1592},{"style":453},[1593],{"type":56,"value":1594},"\\n",{"type":50,"tag":117,"props":1596,"children":1597},{"style":247},[1598],{"type":56,"value":480},{"type":50,"tag":117,"props":1600,"children":1601},{"style":560},[1602],{"type":56,"value":659},{"type":50,"tag":117,"props":1604,"children":1605},{"style":247},[1606],{"type":56,"value":485},{"type":50,"tag":117,"props":1608,"children":1610},{"class":119,"line":1609},24,[1611],{"type":50,"tag":117,"props":1612,"children":1613},{"emptyLinePlaceholder":492},[1614],{"type":56,"value":495},{"type":50,"tag":117,"props":1616,"children":1618},{"class":119,"line":1617},25,[1619,1624,1628,1633,1637,1641,1646,1650,1656,1660,1665,1669,1673,1677,1681],{"type":50,"tag":117,"props":1620,"children":1621},{"style":523},[1622],{"type":56,"value":1623},"  rmSync",{"type":50,"tag":117,"props":1625,"children":1626},{"style":560},[1627],{"type":56,"value":530},{"type":50,"tag":117,"props":1629,"children":1630},{"style":453},[1631],{"type":56,"value":1632},"outputDir",{"type":50,"tag":117,"props":1634,"children":1635},{"style":247},[1636],{"type":56,"value":548},{"type":50,"tag":117,"props":1638,"children":1639},{"style":247},[1640],{"type":56,"value":450},{"type":50,"tag":117,"props":1642,"children":1643},{"style":560},[1644],{"type":56,"value":1645}," recursive",{"type":50,"tag":117,"props":1647,"children":1648},{"style":247},[1649],{"type":56,"value":568},{"type":50,"tag":117,"props":1651,"children":1653},{"style":1652},"--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC",[1654],{"type":56,"value":1655}," true",{"type":50,"tag":117,"props":1657,"children":1658},{"style":247},[1659],{"type":56,"value":548},{"type":50,"tag":117,"props":1661,"children":1662},{"style":560},[1663],{"type":56,"value":1664}," force",{"type":50,"tag":117,"props":1666,"children":1667},{"style":247},[1668],{"type":56,"value":568},{"type":50,"tag":117,"props":1670,"children":1671},{"style":1652},[1672],{"type":56,"value":1655},{"type":50,"tag":117,"props":1674,"children":1675},{"style":247},[1676],{"type":56,"value":461},{"type":50,"tag":117,"props":1678,"children":1679},{"style":560},[1680],{"type":56,"value":659},{"type":50,"tag":117,"props":1682,"children":1683},{"style":247},[1684],{"type":56,"value":485},{"type":50,"tag":117,"props":1686,"children":1688},{"class":119,"line":1687},26,[1689],{"type":50,"tag":117,"props":1690,"children":1691},{"emptyLinePlaceholder":492},[1692],{"type":56,"value":495},{"type":50,"tag":117,"props":1694,"children":1696},{"class":119,"line":1695},27,[1697,1702,1706,1710],{"type":50,"tag":117,"props":1698,"children":1699},{"style":442},[1700],{"type":56,"value":1701},"  await",{"type":50,"tag":117,"props":1703,"children":1704},{"style":523},[1705],{"type":56,"value":836},{"type":50,"tag":117,"props":1707,"children":1708},{"style":560},[1709],{"type":56,"value":530},{"type":50,"tag":117,"props":1711,"children":1712},{"style":247},[1713],{"type":56,"value":1714},"{\n",{"type":50,"tag":117,"props":1716,"children":1718},{"class":119,"line":1717},28,[1719,1724,1728,1733],{"type":50,"tag":117,"props":1720,"children":1721},{"style":560},[1722],{"type":56,"value":1723},"    input",{"type":50,"tag":117,"props":1725,"children":1726},{"style":247},[1727],{"type":56,"value":568},{"type":50,"tag":117,"props":1729,"children":1730},{"style":453},[1731],{"type":56,"value":1732}," specPath",{"type":50,"tag":117,"props":1734,"children":1735},{"style":247},[1736],{"type":56,"value":586},{"type":50,"tag":117,"props":1738,"children":1740},{"class":119,"line":1739},29,[1741,1746,1750,1755],{"type":50,"tag":117,"props":1742,"children":1743},{"style":560},[1744],{"type":56,"value":1745},"    output",{"type":50,"tag":117,"props":1747,"children":1748},{"style":247},[1749],{"type":56,"value":568},{"type":50,"tag":117,"props":1751,"children":1752},{"style":453},[1753],{"type":56,"value":1754}," outputDir",{"type":50,"tag":117,"props":1756,"children":1757},{"style":247},[1758],{"type":56,"value":586},{"type":50,"tag":117,"props":1760,"children":1762},{"class":119,"line":1761},30,[1763,1768,1772],{"type":50,"tag":117,"props":1764,"children":1765},{"style":560},[1766],{"type":56,"value":1767},"    plugins",{"type":50,"tag":117,"props":1769,"children":1770},{"style":247},[1771],{"type":56,"value":568},{"type":50,"tag":117,"props":1773,"children":1774},{"style":560},[1775],{"type":56,"value":1776}," [\n",{"type":50,"tag":117,"props":1778,"children":1780},{"class":119,"line":1779},31,[1781],{"type":50,"tag":117,"props":1782,"children":1783},{"style":247},[1784],{"type":56,"value":1785},"      {\n",{"type":50,"tag":117,"props":1787,"children":1789},{"class":119,"line":1788},32,[1790,1795,1799,1803,1808,1812],{"type":50,"tag":117,"props":1791,"children":1792},{"style":560},[1793],{"type":56,"value":1794},"        name",{"type":50,"tag":117,"props":1796,"children":1797},{"style":247},[1798],{"type":56,"value":568},{"type":50,"tag":117,"props":1800,"children":1801},{"style":247},[1802],{"type":56,"value":471},{"type":50,"tag":117,"props":1804,"children":1805},{"style":130},[1806],{"type":56,"value":1807},"@hey-api\u002Ftypescript",{"type":50,"tag":117,"props":1809,"children":1810},{"style":247},[1811],{"type":56,"value":480},{"type":50,"tag":117,"props":1813,"children":1814},{"style":247},[1815],{"type":56,"value":586},{"type":50,"tag":117,"props":1817,"children":1819},{"class":119,"line":1818},33,[1820,1825,1830,1834,1838,1842,1846],{"type":50,"tag":117,"props":1821,"children":1822},{"style":247},[1823],{"type":56,"value":1824},"        '",{"type":50,"tag":117,"props":1826,"children":1827},{"style":560},[1828],{"type":56,"value":1829},"~resolvers",{"type":50,"tag":117,"props":1831,"children":1832},{"style":247},[1833],{"type":56,"value":480},{"type":50,"tag":117,"props":1835,"children":1836},{"style":247},[1837],{"type":56,"value":568},{"type":50,"tag":117,"props":1839,"children":1840},{"style":523},[1841],{"type":56,"value":916},{"type":50,"tag":117,"props":1843,"children":1844},{"style":560},[1845],{"type":56,"value":1355},{"type":50,"tag":117,"props":1847,"children":1848},{"style":247},[1849],{"type":56,"value":586},{"type":50,"tag":117,"props":1851,"children":1853},{"class":119,"line":1852},34,[1854],{"type":50,"tag":117,"props":1855,"children":1856},{"style":247},[1857],{"type":56,"value":1858},"      },\n",{"type":50,"tag":117,"props":1860,"children":1862},{"class":119,"line":1861},35,[1863],{"type":50,"tag":117,"props":1864,"children":1865},{"style":247},[1866],{"type":56,"value":1785},{"type":50,"tag":117,"props":1868,"children":1870},{"class":119,"line":1869},36,[1871,1875,1879,1883,1888,1892],{"type":50,"tag":117,"props":1872,"children":1873},{"style":560},[1874],{"type":56,"value":1794},{"type":50,"tag":117,"props":1876,"children":1877},{"style":247},[1878],{"type":56,"value":568},{"type":50,"tag":117,"props":1880,"children":1881},{"style":247},[1882],{"type":56,"value":471},{"type":50,"tag":117,"props":1884,"children":1885},{"style":130},[1886],{"type":56,"value":1887},"@hey-api\u002Fsdk",{"type":50,"tag":117,"props":1889,"children":1890},{"style":247},[1891],{"type":56,"value":480},{"type":50,"tag":117,"props":1893,"children":1894},{"style":247},[1895],{"type":56,"value":586},{"type":50,"tag":117,"props":1897,"children":1899},{"class":119,"line":1898},37,[1900,1905,1909,1913,1918,1922,1926,1931,1935],{"type":50,"tag":117,"props":1901,"children":1902},{"style":560},[1903],{"type":56,"value":1904},"        operations",{"type":50,"tag":117,"props":1906,"children":1907},{"style":247},[1908],{"type":56,"value":568},{"type":50,"tag":117,"props":1910,"children":1911},{"style":247},[1912],{"type":56,"value":450},{"type":50,"tag":117,"props":1914,"children":1915},{"style":560},[1916],{"type":56,"value":1917}," strategy",{"type":50,"tag":117,"props":1919,"children":1920},{"style":247},[1921],{"type":56,"value":568},{"type":50,"tag":117,"props":1923,"children":1924},{"style":247},[1925],{"type":56,"value":471},{"type":50,"tag":117,"props":1927,"children":1928},{"style":130},[1929],{"type":56,"value":1930},"single",{"type":50,"tag":117,"props":1932,"children":1933},{"style":247},[1934],{"type":56,"value":480},{"type":50,"tag":117,"props":1936,"children":1937},{"style":247},[1938],{"type":56,"value":1939}," },\n",{"type":50,"tag":117,"props":1941,"children":1943},{"class":119,"line":1942},38,[1944],{"type":50,"tag":117,"props":1945,"children":1946},{"style":247},[1947],{"type":56,"value":1858},{"type":50,"tag":117,"props":1949,"children":1951},{"class":119,"line":1950},39,[1952,1957],{"type":50,"tag":117,"props":1953,"children":1954},{"style":560},[1955],{"type":56,"value":1956},"    ]",{"type":50,"tag":117,"props":1958,"children":1959},{"style":247},[1960],{"type":56,"value":586},{"type":50,"tag":117,"props":1962,"children":1964},{"class":119,"line":1963},40,[1965,1969,1973],{"type":50,"tag":117,"props":1966,"children":1967},{"style":247},[1968],{"type":56,"value":1500},{"type":50,"tag":117,"props":1970,"children":1971},{"style":560},[1972],{"type":56,"value":659},{"type":50,"tag":117,"props":1974,"children":1975},{"style":247},[1976],{"type":56,"value":485},{"type":50,"tag":117,"props":1978,"children":1980},{"class":119,"line":1979},41,[1981],{"type":50,"tag":117,"props":1982,"children":1983},{"style":247},[1984],{"type":56,"value":1985},"}\n",{"type":50,"tag":117,"props":1987,"children":1989},{"class":119,"line":1988},42,[1990],{"type":50,"tag":117,"props":1991,"children":1992},{"emptyLinePlaceholder":492},[1993],{"type":56,"value":495},{"type":50,"tag":117,"props":1995,"children":1997},{"class":119,"line":1996},43,[1998,2003,2007,2011,2016,2020,2024,2030,2034,2039],{"type":50,"tag":117,"props":1999,"children":2000},{"style":523},[2001],{"type":56,"value":2002},"main",{"type":50,"tag":117,"props":2004,"children":2005},{"style":453},[2006],{"type":56,"value":1355},{"type":50,"tag":117,"props":2008,"children":2009},{"style":247},[2010],{"type":56,"value":983},{"type":50,"tag":117,"props":2012,"children":2013},{"style":523},[2014],{"type":56,"value":2015},"catch",{"type":50,"tag":117,"props":2017,"children":2018},{"style":453},[2019],{"type":56,"value":530},{"type":50,"tag":117,"props":2021,"children":2022},{"style":247},[2023],{"type":56,"value":530},{"type":50,"tag":117,"props":2025,"children":2027},{"style":2026},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[2028],{"type":56,"value":2029},"err",{"type":50,"tag":117,"props":2031,"children":2032},{"style":247},[2033],{"type":56,"value":659},{"type":50,"tag":117,"props":2035,"children":2036},{"style":502},[2037],{"type":56,"value":2038}," =>",{"type":50,"tag":117,"props":2040,"children":2041},{"style":247},[2042],{"type":56,"value":553},{"type":50,"tag":117,"props":2044,"children":2046},{"class":119,"line":2045},44,[2047,2052,2056,2061,2065,2069,2073],{"type":50,"tag":117,"props":2048,"children":2049},{"style":453},[2050],{"type":56,"value":2051},"  console",{"type":50,"tag":117,"props":2053,"children":2054},{"style":247},[2055],{"type":56,"value":983},{"type":50,"tag":117,"props":2057,"children":2058},{"style":523},[2059],{"type":56,"value":2060},"error",{"type":50,"tag":117,"props":2062,"children":2063},{"style":560},[2064],{"type":56,"value":530},{"type":50,"tag":117,"props":2066,"children":2067},{"style":453},[2068],{"type":56,"value":2029},{"type":50,"tag":117,"props":2070,"children":2071},{"style":560},[2072],{"type":56,"value":659},{"type":50,"tag":117,"props":2074,"children":2075},{"style":247},[2076],{"type":56,"value":485},{"type":50,"tag":117,"props":2078,"children":2080},{"class":119,"line":2079},45,[2081,2086,2090,2095,2099,2104,2108],{"type":50,"tag":117,"props":2082,"children":2083},{"style":453},[2084],{"type":56,"value":2085},"  process",{"type":50,"tag":117,"props":2087,"children":2088},{"style":247},[2089],{"type":56,"value":983},{"type":50,"tag":117,"props":2091,"children":2092},{"style":523},[2093],{"type":56,"value":2094},"exit",{"type":50,"tag":117,"props":2096,"children":2097},{"style":560},[2098],{"type":56,"value":530},{"type":50,"tag":117,"props":2100,"children":2101},{"style":268},[2102],{"type":56,"value":2103},"1",{"type":50,"tag":117,"props":2105,"children":2106},{"style":560},[2107],{"type":56,"value":659},{"type":50,"tag":117,"props":2109,"children":2110},{"style":247},[2111],{"type":56,"value":485},{"type":50,"tag":117,"props":2113,"children":2115},{"class":119,"line":2114},46,[2116,2120,2124],{"type":50,"tag":117,"props":2117,"children":2118},{"style":247},[2119],{"type":56,"value":654},{"type":50,"tag":117,"props":2121,"children":2122},{"style":453},[2123],{"type":56,"value":659},{"type":50,"tag":117,"props":2125,"children":2126},{"style":247},[2127],{"type":56,"value":485},{"type":50,"tag":63,"props":2129,"children":2130},{},[2131],{"type":56,"value":2132},"Run it:",{"type":50,"tag":106,"props":2134,"children":2136},{"className":108,"code":2135,"language":110,"meta":111,"style":111},"pnpm tsx scripts\u002Fcodegen.ts\n",[2137],{"type":50,"tag":75,"props":2138,"children":2139},{"__ignoreMap":111},[2140],{"type":50,"tag":117,"props":2141,"children":2142},{"class":119,"line":120},[2143,2147,2152],{"type":50,"tag":117,"props":2144,"children":2145},{"style":124},[2146],{"type":56,"value":127},{"type":50,"tag":117,"props":2148,"children":2149},{"style":130},[2150],{"type":56,"value":2151}," tsx",{"type":50,"tag":117,"props":2153,"children":2154},{"style":130},[2155],{"type":56,"value":2156}," scripts\u002Fcodegen.ts\n",{"type":50,"tag":99,"props":2158,"children":2160},{"id":2159},"_4-configure-and-use-the-generated-client-at-runtime",[2161],{"type":56,"value":2162},"4. Configure and use the generated client at runtime",{"type":50,"tag":106,"props":2164,"children":2166},{"className":430,"code":2165,"language":432,"meta":111,"style":111},"import { configureTRPCHeyApiClient } from '@trpc\u002Fopenapi\u002Fheyapi';\nimport { client } from '.\u002Fgenerated\u002Fclient.gen';\nimport { Sdk } from '.\u002Fgenerated\u002Fsdk.gen';\n\nconfigureTRPCHeyApiClient(client, {\n  baseUrl: 'http:\u002F\u002Flocalhost:3000',\n});\nconst sdk = new Sdk({ client });\n\n\u002F\u002F Queries -> GET, Mutations -> POST\nconst result = await sdk.greeting({ query: { input: { name: 'World' } } });\nconst user = await sdk.user.create({ body: { name: 'Bob', age: 30 } });\n",[2167],{"type":50,"tag":75,"props":2168,"children":2169},{"__ignoreMap":111},[2170,2210,2251,2292,2299,2320,2349,2364,2415,2422,2430,2540],{"type":50,"tag":117,"props":2171,"children":2172},{"class":119,"line":120},[2173,2177,2181,2186,2190,2194,2198,2202,2206],{"type":50,"tag":117,"props":2174,"children":2175},{"style":442},[2176],{"type":56,"value":445},{"type":50,"tag":117,"props":2178,"children":2179},{"style":247},[2180],{"type":56,"value":450},{"type":50,"tag":117,"props":2182,"children":2183},{"style":453},[2184],{"type":56,"value":2185}," configureTRPCHeyApiClient",{"type":50,"tag":117,"props":2187,"children":2188},{"style":247},[2189],{"type":56,"value":461},{"type":50,"tag":117,"props":2191,"children":2192},{"style":442},[2193],{"type":56,"value":466},{"type":50,"tag":117,"props":2195,"children":2196},{"style":247},[2197],{"type":56,"value":471},{"type":50,"tag":117,"props":2199,"children":2200},{"style":130},[2201],{"type":56,"value":933},{"type":50,"tag":117,"props":2203,"children":2204},{"style":247},[2205],{"type":56,"value":480},{"type":50,"tag":117,"props":2207,"children":2208},{"style":247},[2209],{"type":56,"value":485},{"type":50,"tag":117,"props":2211,"children":2212},{"class":119,"line":488},[2213,2217,2221,2226,2230,2234,2238,2243,2247],{"type":50,"tag":117,"props":2214,"children":2215},{"style":442},[2216],{"type":56,"value":445},{"type":50,"tag":117,"props":2218,"children":2219},{"style":247},[2220],{"type":56,"value":450},{"type":50,"tag":117,"props":2222,"children":2223},{"style":453},[2224],{"type":56,"value":2225}," client",{"type":50,"tag":117,"props":2227,"children":2228},{"style":247},[2229],{"type":56,"value":461},{"type":50,"tag":117,"props":2231,"children":2232},{"style":442},[2233],{"type":56,"value":466},{"type":50,"tag":117,"props":2235,"children":2236},{"style":247},[2237],{"type":56,"value":471},{"type":50,"tag":117,"props":2239,"children":2240},{"style":130},[2241],{"type":56,"value":2242},".\u002Fgenerated\u002Fclient.gen",{"type":50,"tag":117,"props":2244,"children":2245},{"style":247},[2246],{"type":56,"value":480},{"type":50,"tag":117,"props":2248,"children":2249},{"style":247},[2250],{"type":56,"value":485},{"type":50,"tag":117,"props":2252,"children":2253},{"class":119,"line":498},[2254,2258,2262,2267,2271,2275,2279,2284,2288],{"type":50,"tag":117,"props":2255,"children":2256},{"style":442},[2257],{"type":56,"value":445},{"type":50,"tag":117,"props":2259,"children":2260},{"style":247},[2261],{"type":56,"value":450},{"type":50,"tag":117,"props":2263,"children":2264},{"style":453},[2265],{"type":56,"value":2266}," Sdk",{"type":50,"tag":117,"props":2268,"children":2269},{"style":247},[2270],{"type":56,"value":461},{"type":50,"tag":117,"props":2272,"children":2273},{"style":442},[2274],{"type":56,"value":466},{"type":50,"tag":117,"props":2276,"children":2277},{"style":247},[2278],{"type":56,"value":471},{"type":50,"tag":117,"props":2280,"children":2281},{"style":130},[2282],{"type":56,"value":2283},".\u002Fgenerated\u002Fsdk.gen",{"type":50,"tag":117,"props":2285,"children":2286},{"style":247},[2287],{"type":56,"value":480},{"type":50,"tag":117,"props":2289,"children":2290},{"style":247},[2291],{"type":56,"value":485},{"type":50,"tag":117,"props":2293,"children":2294},{"class":119,"line":556},[2295],{"type":50,"tag":117,"props":2296,"children":2297},{"emptyLinePlaceholder":492},[2298],{"type":56,"value":495},{"type":50,"tag":117,"props":2300,"children":2301},{"class":119,"line":589},[2302,2307,2312,2316],{"type":50,"tag":117,"props":2303,"children":2304},{"style":523},[2305],{"type":56,"value":2306},"configureTRPCHeyApiClient",{"type":50,"tag":117,"props":2308,"children":2309},{"style":453},[2310],{"type":56,"value":2311},"(client",{"type":50,"tag":117,"props":2313,"children":2314},{"style":247},[2315],{"type":56,"value":548},{"type":50,"tag":117,"props":2317,"children":2318},{"style":247},[2319],{"type":56,"value":553},{"type":50,"tag":117,"props":2321,"children":2322},{"class":119,"line":618},[2323,2328,2332,2336,2341,2345],{"type":50,"tag":117,"props":2324,"children":2325},{"style":560},[2326],{"type":56,"value":2327},"  baseUrl",{"type":50,"tag":117,"props":2329,"children":2330},{"style":247},[2331],{"type":56,"value":568},{"type":50,"tag":117,"props":2333,"children":2334},{"style":247},[2335],{"type":56,"value":471},{"type":50,"tag":117,"props":2337,"children":2338},{"style":130},[2339],{"type":56,"value":2340},"http:\u002F\u002Flocalhost:3000",{"type":50,"tag":117,"props":2342,"children":2343},{"style":247},[2344],{"type":56,"value":480},{"type":50,"tag":117,"props":2346,"children":2347},{"style":247},[2348],{"type":56,"value":586},{"type":50,"tag":117,"props":2350,"children":2351},{"class":119,"line":648},[2352,2356,2360],{"type":50,"tag":117,"props":2353,"children":2354},{"style":247},[2355],{"type":56,"value":654},{"type":50,"tag":117,"props":2357,"children":2358},{"style":453},[2359],{"type":56,"value":659},{"type":50,"tag":117,"props":2361,"children":2362},{"style":247},[2363],{"type":56,"value":485},{"type":50,"tag":117,"props":2365,"children":2366},{"class":119,"line":944},[2367,2371,2376,2380,2385,2389,2393,2398,2403,2407,2411],{"type":50,"tag":117,"props":2368,"children":2369},{"style":502},[2370],{"type":56,"value":505},{"type":50,"tag":117,"props":2372,"children":2373},{"style":453},[2374],{"type":56,"value":2375}," sdk ",{"type":50,"tag":117,"props":2377,"children":2378},{"style":247},[2379],{"type":56,"value":515},{"type":50,"tag":117,"props":2381,"children":2382},{"style":247},[2383],{"type":56,"value":2384}," new",{"type":50,"tag":117,"props":2386,"children":2387},{"style":523},[2388],{"type":56,"value":2266},{"type":50,"tag":117,"props":2390,"children":2391},{"style":453},[2392],{"type":56,"value":530},{"type":50,"tag":117,"props":2394,"children":2395},{"style":247},[2396],{"type":56,"value":2397},"{",{"type":50,"tag":117,"props":2399,"children":2400},{"style":453},[2401],{"type":56,"value":2402}," client ",{"type":50,"tag":117,"props":2404,"children":2405},{"style":247},[2406],{"type":56,"value":654},{"type":50,"tag":117,"props":2408,"children":2409},{"style":453},[2410],{"type":56,"value":659},{"type":50,"tag":117,"props":2412,"children":2413},{"style":247},[2414],{"type":56,"value":485},{"type":50,"tag":117,"props":2416,"children":2417},{"class":119,"line":952},[2418],{"type":50,"tag":117,"props":2419,"children":2420},{"emptyLinePlaceholder":492},[2421],{"type":56,"value":495},{"type":50,"tag":117,"props":2423,"children":2424},{"class":119,"line":1004},[2425],{"type":50,"tag":117,"props":2426,"children":2427},{"style":682},[2428],{"type":56,"value":2429},"\u002F\u002F Queries -> GET, Mutations -> POST\n",{"type":50,"tag":117,"props":2431,"children":2432},{"class":119,"line":1044},[2433,2437,2442,2446,2450,2455,2459,2464,2468,2472,2477,2481,2485,2490,2494,2498,2503,2507,2511,2516,2520,2524,2528,2532,2536],{"type":50,"tag":117,"props":2434,"children":2435},{"style":502},[2436],{"type":56,"value":505},{"type":50,"tag":117,"props":2438,"children":2439},{"style":453},[2440],{"type":56,"value":2441}," result ",{"type":50,"tag":117,"props":2443,"children":2444},{"style":247},[2445],{"type":56,"value":515},{"type":50,"tag":117,"props":2447,"children":2448},{"style":442},[2449],{"type":56,"value":520},{"type":50,"tag":117,"props":2451,"children":2452},{"style":453},[2453],{"type":56,"value":2454}," sdk",{"type":50,"tag":117,"props":2456,"children":2457},{"style":247},[2458],{"type":56,"value":983},{"type":50,"tag":117,"props":2460,"children":2461},{"style":523},[2462],{"type":56,"value":2463},"greeting",{"type":50,"tag":117,"props":2465,"children":2466},{"style":453},[2467],{"type":56,"value":530},{"type":50,"tag":117,"props":2469,"children":2470},{"style":247},[2471],{"type":56,"value":2397},{"type":50,"tag":117,"props":2473,"children":2474},{"style":560},[2475],{"type":56,"value":2476}," query",{"type":50,"tag":117,"props":2478,"children":2479},{"style":247},[2480],{"type":56,"value":568},{"type":50,"tag":117,"props":2482,"children":2483},{"style":247},[2484],{"type":56,"value":450},{"type":50,"tag":117,"props":2486,"children":2487},{"style":560},[2488],{"type":56,"value":2489}," input",{"type":50,"tag":117,"props":2491,"children":2492},{"style":247},[2493],{"type":56,"value":568},{"type":50,"tag":117,"props":2495,"children":2496},{"style":247},[2497],{"type":56,"value":450},{"type":50,"tag":117,"props":2499,"children":2500},{"style":560},[2501],{"type":56,"value":2502}," name",{"type":50,"tag":117,"props":2504,"children":2505},{"style":247},[2506],{"type":56,"value":568},{"type":50,"tag":117,"props":2508,"children":2509},{"style":247},[2510],{"type":56,"value":471},{"type":50,"tag":117,"props":2512,"children":2513},{"style":130},[2514],{"type":56,"value":2515},"World",{"type":50,"tag":117,"props":2517,"children":2518},{"style":247},[2519],{"type":56,"value":480},{"type":50,"tag":117,"props":2521,"children":2522},{"style":247},[2523],{"type":56,"value":461},{"type":50,"tag":117,"props":2525,"children":2526},{"style":247},[2527],{"type":56,"value":461},{"type":50,"tag":117,"props":2529,"children":2530},{"style":247},[2531],{"type":56,"value":461},{"type":50,"tag":117,"props":2533,"children":2534},{"style":453},[2535],{"type":56,"value":659},{"type":50,"tag":117,"props":2537,"children":2538},{"style":247},[2539],{"type":56,"value":485},{"type":50,"tag":117,"props":2541,"children":2542},{"class":119,"line":1052},[2543,2547,2552,2556,2560,2564,2568,2573,2577,2582,2586,2590,2595,2599,2603,2607,2611,2615,2620,2624,2628,2633,2637,2642,2646,2650,2654],{"type":50,"tag":117,"props":2544,"children":2545},{"style":502},[2546],{"type":56,"value":505},{"type":50,"tag":117,"props":2548,"children":2549},{"style":453},[2550],{"type":56,"value":2551}," user ",{"type":50,"tag":117,"props":2553,"children":2554},{"style":247},[2555],{"type":56,"value":515},{"type":50,"tag":117,"props":2557,"children":2558},{"style":442},[2559],{"type":56,"value":520},{"type":50,"tag":117,"props":2561,"children":2562},{"style":453},[2563],{"type":56,"value":2454},{"type":50,"tag":117,"props":2565,"children":2566},{"style":247},[2567],{"type":56,"value":983},{"type":50,"tag":117,"props":2569,"children":2570},{"style":453},[2571],{"type":56,"value":2572},"user",{"type":50,"tag":117,"props":2574,"children":2575},{"style":247},[2576],{"type":56,"value":983},{"type":50,"tag":117,"props":2578,"children":2579},{"style":523},[2580],{"type":56,"value":2581},"create",{"type":50,"tag":117,"props":2583,"children":2584},{"style":453},[2585],{"type":56,"value":530},{"type":50,"tag":117,"props":2587,"children":2588},{"style":247},[2589],{"type":56,"value":2397},{"type":50,"tag":117,"props":2591,"children":2592},{"style":560},[2593],{"type":56,"value":2594}," body",{"type":50,"tag":117,"props":2596,"children":2597},{"style":247},[2598],{"type":56,"value":568},{"type":50,"tag":117,"props":2600,"children":2601},{"style":247},[2602],{"type":56,"value":450},{"type":50,"tag":117,"props":2604,"children":2605},{"style":560},[2606],{"type":56,"value":2502},{"type":50,"tag":117,"props":2608,"children":2609},{"style":247},[2610],{"type":56,"value":568},{"type":50,"tag":117,"props":2612,"children":2613},{"style":247},[2614],{"type":56,"value":471},{"type":50,"tag":117,"props":2616,"children":2617},{"style":130},[2618],{"type":56,"value":2619},"Bob",{"type":50,"tag":117,"props":2621,"children":2622},{"style":247},[2623],{"type":56,"value":480},{"type":50,"tag":117,"props":2625,"children":2626},{"style":247},[2627],{"type":56,"value":548},{"type":50,"tag":117,"props":2629,"children":2630},{"style":560},[2631],{"type":56,"value":2632}," age",{"type":50,"tag":117,"props":2634,"children":2635},{"style":247},[2636],{"type":56,"value":568},{"type":50,"tag":117,"props":2638,"children":2639},{"style":268},[2640],{"type":56,"value":2641}," 30",{"type":50,"tag":117,"props":2643,"children":2644},{"style":247},[2645],{"type":56,"value":461},{"type":50,"tag":117,"props":2647,"children":2648},{"style":247},[2649],{"type":56,"value":461},{"type":50,"tag":117,"props":2651,"children":2652},{"style":453},[2653],{"type":56,"value":659},{"type":50,"tag":117,"props":2655,"children":2656},{"style":247},[2657],{"type":56,"value":485},{"type":50,"tag":92,"props":2659,"children":2661},{"id":2660},"core-patterns",[2662],{"type":56,"value":2663},"Core Patterns",{"type":50,"tag":99,"props":2665,"children":2667},{"id":2666},"cli-quick-spec-generation",[2668],{"type":56,"value":2669},"CLI quick spec generation",{"type":50,"tag":106,"props":2671,"children":2673},{"className":108,"code":2672,"language":110,"meta":111,"style":111},"# Default export name \"AppRouter\", output \"openapi.json\"\npnpm exec trpc-openapi .\u002Fsrc\u002Fserver\u002Frouter.ts\n\n# Custom export name and output\npnpm exec trpc-openapi .\u002Fsrc\u002Fserver\u002Frouter.ts -e appRouter -o api.json --title \"My API\" --version 1.0.0\n",[2674],{"type":50,"tag":75,"props":2675,"children":2676},{"__ignoreMap":111},[2677,2685,2705,2712,2720],{"type":50,"tag":117,"props":2678,"children":2679},{"class":119,"line":120},[2680],{"type":50,"tag":117,"props":2681,"children":2682},{"style":682},[2683],{"type":56,"value":2684},"# Default export name \"AppRouter\", output \"openapi.json\"\n",{"type":50,"tag":117,"props":2686,"children":2687},{"class":119,"line":488},[2688,2692,2696,2700],{"type":50,"tag":117,"props":2689,"children":2690},{"style":124},[2691],{"type":56,"value":127},{"type":50,"tag":117,"props":2693,"children":2694},{"style":130},[2695],{"type":56,"value":209},{"type":50,"tag":117,"props":2697,"children":2698},{"style":130},[2699],{"type":56,"value":214},{"type":50,"tag":117,"props":2701,"children":2702},{"style":130},[2703],{"type":56,"value":2704}," .\u002Fsrc\u002Fserver\u002Frouter.ts\n",{"type":50,"tag":117,"props":2706,"children":2707},{"class":119,"line":498},[2708],{"type":50,"tag":117,"props":2709,"children":2710},{"emptyLinePlaceholder":492},[2711],{"type":56,"value":495},{"type":50,"tag":117,"props":2713,"children":2714},{"class":119,"line":556},[2715],{"type":50,"tag":117,"props":2716,"children":2717},{"style":682},[2718],{"type":56,"value":2719},"# Custom export name and output\n",{"type":50,"tag":117,"props":2721,"children":2722},{"class":119,"line":589},[2723,2727,2731,2735,2740,2744,2748,2752,2757,2761,2765,2769,2773,2777],{"type":50,"tag":117,"props":2724,"children":2725},{"style":124},[2726],{"type":56,"value":127},{"type":50,"tag":117,"props":2728,"children":2729},{"style":130},[2730],{"type":56,"value":209},{"type":50,"tag":117,"props":2732,"children":2733},{"style":130},[2734],{"type":56,"value":214},{"type":50,"tag":117,"props":2736,"children":2737},{"style":130},[2738],{"type":56,"value":2739}," .\u002Fsrc\u002Fserver\u002Frouter.ts",{"type":50,"tag":117,"props":2741,"children":2742},{"style":130},[2743],{"type":56,"value":224},{"type":50,"tag":117,"props":2745,"children":2746},{"style":130},[2747],{"type":56,"value":229},{"type":50,"tag":117,"props":2749,"children":2750},{"style":130},[2751],{"type":56,"value":234},{"type":50,"tag":117,"props":2753,"children":2754},{"style":130},[2755],{"type":56,"value":2756}," api.json",{"type":50,"tag":117,"props":2758,"children":2759},{"style":130},[2760],{"type":56,"value":244},{"type":50,"tag":117,"props":2762,"children":2763},{"style":247},[2764],{"type":56,"value":250},{"type":50,"tag":117,"props":2766,"children":2767},{"style":130},[2768],{"type":56,"value":255},{"type":50,"tag":117,"props":2770,"children":2771},{"style":247},[2772],{"type":56,"value":260},{"type":50,"tag":117,"props":2774,"children":2775},{"style":130},[2776],{"type":56,"value":265},{"type":50,"tag":117,"props":2778,"children":2779},{"style":268},[2780],{"type":56,"value":271},{"type":50,"tag":99,"props":2782,"children":2784},{"id":2783},"heyapi-codegen-with-type-resolvers-transformer-setup",[2785],{"type":56,"value":2786},"HeyAPI codegen with type resolvers (transformer setup)",{"type":50,"tag":63,"props":2788,"children":2789},{},[2790,2792,2798,2800,2805,2807,2813,2815,2821,2823,2829],{"type":56,"value":2791},"When the server uses a transformer, pass ",{"type":50,"tag":75,"props":2793,"children":2795},{"className":2794},[],[2796],{"type":56,"value":2797},"createTRPCHeyApiTypeResolvers()",{"type":56,"value":2799}," to the ",{"type":50,"tag":75,"props":2801,"children":2803},{"className":2802},[],[2804],{"type":56,"value":1807},{"type":56,"value":2806}," plugin so generated types use ",{"type":50,"tag":75,"props":2808,"children":2810},{"className":2809},[],[2811],{"type":56,"value":2812},"Date",{"type":56,"value":2814}," instead of ",{"type":50,"tag":75,"props":2816,"children":2818},{"className":2817},[],[2819],{"type":56,"value":2820},"string",{"type":56,"value":2822}," for date-time fields and ",{"type":50,"tag":75,"props":2824,"children":2826},{"className":2825},[],[2827],{"type":56,"value":2828},"bigint",{"type":56,"value":2830}," for bigint fields:",{"type":50,"tag":106,"props":2832,"children":2834},{"className":430,"code":2833,"language":432,"meta":111,"style":111},"import { createClient } from '@hey-api\u002Fopenapi-ts';\nimport { createTRPCHeyApiTypeResolvers } from '@trpc\u002Fopenapi\u002Fheyapi';\n\nawait createClient({\n  input: '.\u002Fopenapi.json',\n  output: '.\u002Fgenerated',\n  plugins: [\n    {\n      name: '@hey-api\u002Ftypescript',\n      '~resolvers': createTRPCHeyApiTypeResolvers(),\n    },\n    {\n      name: '@hey-api\u002Fsdk',\n      operations: { strategy: 'single' },\n    },\n  ],\n});\n",[2835],{"type":50,"tag":75,"props":2836,"children":2837},{"__ignoreMap":111},[2838,2877,2916,2923,2943,2972,3001,3017,3025,3053,3085,3093,3100,3127,3167,3174,3186],{"type":50,"tag":117,"props":2839,"children":2840},{"class":119,"line":120},[2841,2845,2849,2853,2857,2861,2865,2869,2873],{"type":50,"tag":117,"props":2842,"children":2843},{"style":442},[2844],{"type":56,"value":445},{"type":50,"tag":117,"props":2846,"children":2847},{"style":247},[2848],{"type":56,"value":450},{"type":50,"tag":117,"props":2850,"children":2851},{"style":453},[2852],{"type":56,"value":836},{"type":50,"tag":117,"props":2854,"children":2855},{"style":247},[2856],{"type":56,"value":461},{"type":50,"tag":117,"props":2858,"children":2859},{"style":442},[2860],{"type":56,"value":466},{"type":50,"tag":117,"props":2862,"children":2863},{"style":247},[2864],{"type":56,"value":471},{"type":50,"tag":117,"props":2866,"children":2867},{"style":130},[2868],{"type":56,"value":853},{"type":50,"tag":117,"props":2870,"children":2871},{"style":247},[2872],{"type":56,"value":480},{"type":50,"tag":117,"props":2874,"children":2875},{"style":247},[2876],{"type":56,"value":485},{"type":50,"tag":117,"props":2878,"children":2879},{"class":119,"line":488},[2880,2884,2888,2892,2896,2900,2904,2908,2912],{"type":50,"tag":117,"props":2881,"children":2882},{"style":442},[2883],{"type":56,"value":445},{"type":50,"tag":117,"props":2885,"children":2886},{"style":247},[2887],{"type":56,"value":450},{"type":50,"tag":117,"props":2889,"children":2890},{"style":453},[2891],{"type":56,"value":916},{"type":50,"tag":117,"props":2893,"children":2894},{"style":247},[2895],{"type":56,"value":461},{"type":50,"tag":117,"props":2897,"children":2898},{"style":442},[2899],{"type":56,"value":466},{"type":50,"tag":117,"props":2901,"children":2902},{"style":247},[2903],{"type":56,"value":471},{"type":50,"tag":117,"props":2905,"children":2906},{"style":130},[2907],{"type":56,"value":933},{"type":50,"tag":117,"props":2909,"children":2910},{"style":247},[2911],{"type":56,"value":480},{"type":50,"tag":117,"props":2913,"children":2914},{"style":247},[2915],{"type":56,"value":485},{"type":50,"tag":117,"props":2917,"children":2918},{"class":119,"line":498},[2919],{"type":50,"tag":117,"props":2920,"children":2921},{"emptyLinePlaceholder":492},[2922],{"type":56,"value":495},{"type":50,"tag":117,"props":2924,"children":2925},{"class":119,"line":556},[2926,2931,2935,2939],{"type":50,"tag":117,"props":2927,"children":2928},{"style":442},[2929],{"type":56,"value":2930},"await",{"type":50,"tag":117,"props":2932,"children":2933},{"style":523},[2934],{"type":56,"value":836},{"type":50,"tag":117,"props":2936,"children":2937},{"style":453},[2938],{"type":56,"value":530},{"type":50,"tag":117,"props":2940,"children":2941},{"style":247},[2942],{"type":56,"value":1714},{"type":50,"tag":117,"props":2944,"children":2945},{"class":119,"line":589},[2946,2951,2955,2959,2964,2968],{"type":50,"tag":117,"props":2947,"children":2948},{"style":560},[2949],{"type":56,"value":2950},"  input",{"type":50,"tag":117,"props":2952,"children":2953},{"style":247},[2954],{"type":56,"value":568},{"type":50,"tag":117,"props":2956,"children":2957},{"style":247},[2958],{"type":56,"value":471},{"type":50,"tag":117,"props":2960,"children":2961},{"style":130},[2962],{"type":56,"value":2963},".\u002Fopenapi.json",{"type":50,"tag":117,"props":2965,"children":2966},{"style":247},[2967],{"type":56,"value":480},{"type":50,"tag":117,"props":2969,"children":2970},{"style":247},[2971],{"type":56,"value":586},{"type":50,"tag":117,"props":2973,"children":2974},{"class":119,"line":618},[2975,2980,2984,2988,2993,2997],{"type":50,"tag":117,"props":2976,"children":2977},{"style":560},[2978],{"type":56,"value":2979},"  output",{"type":50,"tag":117,"props":2981,"children":2982},{"style":247},[2983],{"type":56,"value":568},{"type":50,"tag":117,"props":2985,"children":2986},{"style":247},[2987],{"type":56,"value":471},{"type":50,"tag":117,"props":2989,"children":2990},{"style":130},[2991],{"type":56,"value":2992},".\u002Fgenerated",{"type":50,"tag":117,"props":2994,"children":2995},{"style":247},[2996],{"type":56,"value":480},{"type":50,"tag":117,"props":2998,"children":2999},{"style":247},[3000],{"type":56,"value":586},{"type":50,"tag":117,"props":3002,"children":3003},{"class":119,"line":648},[3004,3009,3013],{"type":50,"tag":117,"props":3005,"children":3006},{"style":560},[3007],{"type":56,"value":3008},"  plugins",{"type":50,"tag":117,"props":3010,"children":3011},{"style":247},[3012],{"type":56,"value":568},{"type":50,"tag":117,"props":3014,"children":3015},{"style":453},[3016],{"type":56,"value":1776},{"type":50,"tag":117,"props":3018,"children":3019},{"class":119,"line":944},[3020],{"type":50,"tag":117,"props":3021,"children":3022},{"style":247},[3023],{"type":56,"value":3024},"    {\n",{"type":50,"tag":117,"props":3026,"children":3027},{"class":119,"line":952},[3028,3033,3037,3041,3045,3049],{"type":50,"tag":117,"props":3029,"children":3030},{"style":560},[3031],{"type":56,"value":3032},"      name",{"type":50,"tag":117,"props":3034,"children":3035},{"style":247},[3036],{"type":56,"value":568},{"type":50,"tag":117,"props":3038,"children":3039},{"style":247},[3040],{"type":56,"value":471},{"type":50,"tag":117,"props":3042,"children":3043},{"style":130},[3044],{"type":56,"value":1807},{"type":50,"tag":117,"props":3046,"children":3047},{"style":247},[3048],{"type":56,"value":480},{"type":50,"tag":117,"props":3050,"children":3051},{"style":247},[3052],{"type":56,"value":586},{"type":50,"tag":117,"props":3054,"children":3055},{"class":119,"line":1004},[3056,3061,3065,3069,3073,3077,3081],{"type":50,"tag":117,"props":3057,"children":3058},{"style":247},[3059],{"type":56,"value":3060},"      '",{"type":50,"tag":117,"props":3062,"children":3063},{"style":560},[3064],{"type":56,"value":1829},{"type":50,"tag":117,"props":3066,"children":3067},{"style":247},[3068],{"type":56,"value":480},{"type":50,"tag":117,"props":3070,"children":3071},{"style":247},[3072],{"type":56,"value":568},{"type":50,"tag":117,"props":3074,"children":3075},{"style":523},[3076],{"type":56,"value":916},{"type":50,"tag":117,"props":3078,"children":3079},{"style":453},[3080],{"type":56,"value":1355},{"type":50,"tag":117,"props":3082,"children":3083},{"style":247},[3084],{"type":56,"value":586},{"type":50,"tag":117,"props":3086,"children":3087},{"class":119,"line":1044},[3088],{"type":50,"tag":117,"props":3089,"children":3090},{"style":247},[3091],{"type":56,"value":3092},"    },\n",{"type":50,"tag":117,"props":3094,"children":3095},{"class":119,"line":1052},[3096],{"type":50,"tag":117,"props":3097,"children":3098},{"style":247},[3099],{"type":56,"value":3024},{"type":50,"tag":117,"props":3101,"children":3102},{"class":119,"line":1146},[3103,3107,3111,3115,3119,3123],{"type":50,"tag":117,"props":3104,"children":3105},{"style":560},[3106],{"type":56,"value":3032},{"type":50,"tag":117,"props":3108,"children":3109},{"style":247},[3110],{"type":56,"value":568},{"type":50,"tag":117,"props":3112,"children":3113},{"style":247},[3114],{"type":56,"value":471},{"type":50,"tag":117,"props":3116,"children":3117},{"style":130},[3118],{"type":56,"value":1887},{"type":50,"tag":117,"props":3120,"children":3121},{"style":247},[3122],{"type":56,"value":480},{"type":50,"tag":117,"props":3124,"children":3125},{"style":247},[3126],{"type":56,"value":586},{"type":50,"tag":117,"props":3128,"children":3129},{"class":119,"line":1237},[3130,3135,3139,3143,3147,3151,3155,3159,3163],{"type":50,"tag":117,"props":3131,"children":3132},{"style":560},[3133],{"type":56,"value":3134},"      operations",{"type":50,"tag":117,"props":3136,"children":3137},{"style":247},[3138],{"type":56,"value":568},{"type":50,"tag":117,"props":3140,"children":3141},{"style":247},[3142],{"type":56,"value":450},{"type":50,"tag":117,"props":3144,"children":3145},{"style":560},[3146],{"type":56,"value":1917},{"type":50,"tag":117,"props":3148,"children":3149},{"style":247},[3150],{"type":56,"value":568},{"type":50,"tag":117,"props":3152,"children":3153},{"style":247},[3154],{"type":56,"value":471},{"type":50,"tag":117,"props":3156,"children":3157},{"style":130},[3158],{"type":56,"value":1930},{"type":50,"tag":117,"props":3160,"children":3161},{"style":247},[3162],{"type":56,"value":480},{"type":50,"tag":117,"props":3164,"children":3165},{"style":247},[3166],{"type":56,"value":1939},{"type":50,"tag":117,"props":3168,"children":3169},{"class":119,"line":1326},[3170],{"type":50,"tag":117,"props":3171,"children":3172},{"style":247},[3173],{"type":56,"value":3092},{"type":50,"tag":117,"props":3175,"children":3176},{"class":119,"line":1334},[3177,3182],{"type":50,"tag":117,"props":3178,"children":3179},{"style":453},[3180],{"type":56,"value":3181},"  ]",{"type":50,"tag":117,"props":3183,"children":3184},{"style":247},[3185],{"type":56,"value":586},{"type":50,"tag":117,"props":3187,"children":3188},{"class":119,"line":1362},[3189,3193,3197],{"type":50,"tag":117,"props":3190,"children":3191},{"style":247},[3192],{"type":56,"value":654},{"type":50,"tag":117,"props":3194,"children":3195},{"style":453},[3196],{"type":56,"value":659},{"type":50,"tag":117,"props":3198,"children":3199},{"style":247},[3200],{"type":56,"value":485},{"type":50,"tag":99,"props":3202,"children":3204},{"id":3203},"runtime-client-with-superjson-transformer",[3205],{"type":56,"value":3206},"Runtime client with superjson transformer",{"type":50,"tag":63,"props":3208,"children":3209},{},[3210,3212,3218],{"type":56,"value":3211},"When the tRPC server uses ",{"type":50,"tag":75,"props":3213,"children":3215},{"className":3214},[],[3216],{"type":56,"value":3217},"superjson",{"type":56,"value":3219},", the client must be configured with the same transformer:",{"type":50,"tag":106,"props":3221,"children":3223},{"className":430,"code":3222,"language":432,"meta":111,"style":111},"\u002F\u002F src\u002Fshared\u002Ftransformer.ts\nimport superjson from 'superjson';\n\nexport const transformer = superjson;\n",[3224],{"type":50,"tag":75,"props":3225,"children":3226},{"__ignoreMap":111},[3227,3235,3267,3274],{"type":50,"tag":117,"props":3228,"children":3229},{"class":119,"line":120},[3230],{"type":50,"tag":117,"props":3231,"children":3232},{"style":682},[3233],{"type":56,"value":3234},"\u002F\u002F src\u002Fshared\u002Ftransformer.ts\n",{"type":50,"tag":117,"props":3236,"children":3237},{"class":119,"line":488},[3238,3242,3247,3251,3255,3259,3263],{"type":50,"tag":117,"props":3239,"children":3240},{"style":442},[3241],{"type":56,"value":445},{"type":50,"tag":117,"props":3243,"children":3244},{"style":453},[3245],{"type":56,"value":3246}," superjson ",{"type":50,"tag":117,"props":3248,"children":3249},{"style":442},[3250],{"type":56,"value":762},{"type":50,"tag":117,"props":3252,"children":3253},{"style":247},[3254],{"type":56,"value":471},{"type":50,"tag":117,"props":3256,"children":3257},{"style":130},[3258],{"type":56,"value":3217},{"type":50,"tag":117,"props":3260,"children":3261},{"style":247},[3262],{"type":56,"value":480},{"type":50,"tag":117,"props":3264,"children":3265},{"style":247},[3266],{"type":56,"value":485},{"type":50,"tag":117,"props":3268,"children":3269},{"class":119,"line":498},[3270],{"type":50,"tag":117,"props":3271,"children":3272},{"emptyLinePlaceholder":492},[3273],{"type":56,"value":495},{"type":50,"tag":117,"props":3275,"children":3276},{"class":119,"line":556},[3277,3282,3287,3292,3296,3301],{"type":50,"tag":117,"props":3278,"children":3279},{"style":442},[3280],{"type":56,"value":3281},"export",{"type":50,"tag":117,"props":3283,"children":3284},{"style":502},[3285],{"type":56,"value":3286}," const",{"type":50,"tag":117,"props":3288,"children":3289},{"style":453},[3290],{"type":56,"value":3291}," transformer ",{"type":50,"tag":117,"props":3293,"children":3294},{"style":247},[3295],{"type":56,"value":515},{"type":50,"tag":117,"props":3297,"children":3298},{"style":453},[3299],{"type":56,"value":3300}," superjson",{"type":50,"tag":117,"props":3302,"children":3303},{"style":247},[3304],{"type":56,"value":485},{"type":50,"tag":106,"props":3306,"children":3308},{"className":430,"code":3307,"language":432,"meta":111,"style":111},"\u002F\u002F src\u002Fserver\u002Ftrpc.ts\nimport { initTRPC } from '@trpc\u002Fserver';\nimport { transformer } from '..\u002Fshared\u002Ftransformer';\n\nconst t = initTRPC.create({ transformer });\nexport const router = t.router;\nexport const publicProcedure = t.procedure;\n",[3309],{"type":50,"tag":75,"props":3310,"children":3311},{"__ignoreMap":111},[3312,3320,3361,3402,3409,3461,3499],{"type":50,"tag":117,"props":3313,"children":3314},{"class":119,"line":120},[3315],{"type":50,"tag":117,"props":3316,"children":3317},{"style":682},[3318],{"type":56,"value":3319},"\u002F\u002F src\u002Fserver\u002Ftrpc.ts\n",{"type":50,"tag":117,"props":3321,"children":3322},{"class":119,"line":488},[3323,3327,3331,3336,3340,3344,3348,3353,3357],{"type":50,"tag":117,"props":3324,"children":3325},{"style":442},[3326],{"type":56,"value":445},{"type":50,"tag":117,"props":3328,"children":3329},{"style":247},[3330],{"type":56,"value":450},{"type":50,"tag":117,"props":3332,"children":3333},{"style":453},[3334],{"type":56,"value":3335}," initTRPC",{"type":50,"tag":117,"props":3337,"children":3338},{"style":247},[3339],{"type":56,"value":461},{"type":50,"tag":117,"props":3341,"children":3342},{"style":442},[3343],{"type":56,"value":466},{"type":50,"tag":117,"props":3345,"children":3346},{"style":247},[3347],{"type":56,"value":471},{"type":50,"tag":117,"props":3349,"children":3350},{"style":130},[3351],{"type":56,"value":3352},"@trpc\u002Fserver",{"type":50,"tag":117,"props":3354,"children":3355},{"style":247},[3356],{"type":56,"value":480},{"type":50,"tag":117,"props":3358,"children":3359},{"style":247},[3360],{"type":56,"value":485},{"type":50,"tag":117,"props":3362,"children":3363},{"class":119,"line":498},[3364,3368,3372,3377,3381,3385,3389,3394,3398],{"type":50,"tag":117,"props":3365,"children":3366},{"style":442},[3367],{"type":56,"value":445},{"type":50,"tag":117,"props":3369,"children":3370},{"style":247},[3371],{"type":56,"value":450},{"type":50,"tag":117,"props":3373,"children":3374},{"style":453},[3375],{"type":56,"value":3376}," transformer",{"type":50,"tag":117,"props":3378,"children":3379},{"style":247},[3380],{"type":56,"value":461},{"type":50,"tag":117,"props":3382,"children":3383},{"style":442},[3384],{"type":56,"value":466},{"type":50,"tag":117,"props":3386,"children":3387},{"style":247},[3388],{"type":56,"value":471},{"type":50,"tag":117,"props":3390,"children":3391},{"style":130},[3392],{"type":56,"value":3393},"..\u002Fshared\u002Ftransformer",{"type":50,"tag":117,"props":3395,"children":3396},{"style":247},[3397],{"type":56,"value":480},{"type":50,"tag":117,"props":3399,"children":3400},{"style":247},[3401],{"type":56,"value":485},{"type":50,"tag":117,"props":3403,"children":3404},{"class":119,"line":556},[3405],{"type":50,"tag":117,"props":3406,"children":3407},{"emptyLinePlaceholder":492},[3408],{"type":56,"value":495},{"type":50,"tag":117,"props":3410,"children":3411},{"class":119,"line":589},[3412,3416,3421,3425,3429,3433,3437,3441,3445,3449,3453,3457],{"type":50,"tag":117,"props":3413,"children":3414},{"style":502},[3415],{"type":56,"value":505},{"type":50,"tag":117,"props":3417,"children":3418},{"style":453},[3419],{"type":56,"value":3420}," t ",{"type":50,"tag":117,"props":3422,"children":3423},{"style":247},[3424],{"type":56,"value":515},{"type":50,"tag":117,"props":3426,"children":3427},{"style":453},[3428],{"type":56,"value":3335},{"type":50,"tag":117,"props":3430,"children":3431},{"style":247},[3432],{"type":56,"value":983},{"type":50,"tag":117,"props":3434,"children":3435},{"style":523},[3436],{"type":56,"value":2581},{"type":50,"tag":117,"props":3438,"children":3439},{"style":453},[3440],{"type":56,"value":530},{"type":50,"tag":117,"props":3442,"children":3443},{"style":247},[3444],{"type":56,"value":2397},{"type":50,"tag":117,"props":3446,"children":3447},{"style":453},[3448],{"type":56,"value":3291},{"type":50,"tag":117,"props":3450,"children":3451},{"style":247},[3452],{"type":56,"value":654},{"type":50,"tag":117,"props":3454,"children":3455},{"style":453},[3456],{"type":56,"value":659},{"type":50,"tag":117,"props":3458,"children":3459},{"style":247},[3460],{"type":56,"value":485},{"type":50,"tag":117,"props":3462,"children":3463},{"class":119,"line":618},[3464,3468,3472,3477,3481,3486,3490,3495],{"type":50,"tag":117,"props":3465,"children":3466},{"style":442},[3467],{"type":56,"value":3281},{"type":50,"tag":117,"props":3469,"children":3470},{"style":502},[3471],{"type":56,"value":3286},{"type":50,"tag":117,"props":3473,"children":3474},{"style":453},[3475],{"type":56,"value":3476}," router ",{"type":50,"tag":117,"props":3478,"children":3479},{"style":247},[3480],{"type":56,"value":515},{"type":50,"tag":117,"props":3482,"children":3483},{"style":453},[3484],{"type":56,"value":3485}," t",{"type":50,"tag":117,"props":3487,"children":3488},{"style":247},[3489],{"type":56,"value":983},{"type":50,"tag":117,"props":3491,"children":3492},{"style":453},[3493],{"type":56,"value":3494},"router",{"type":50,"tag":117,"props":3496,"children":3497},{"style":247},[3498],{"type":56,"value":485},{"type":50,"tag":117,"props":3500,"children":3501},{"class":119,"line":648},[3502,3506,3510,3515,3519,3523,3527,3532],{"type":50,"tag":117,"props":3503,"children":3504},{"style":442},[3505],{"type":56,"value":3281},{"type":50,"tag":117,"props":3507,"children":3508},{"style":502},[3509],{"type":56,"value":3286},{"type":50,"tag":117,"props":3511,"children":3512},{"style":453},[3513],{"type":56,"value":3514}," publicProcedure ",{"type":50,"tag":117,"props":3516,"children":3517},{"style":247},[3518],{"type":56,"value":515},{"type":50,"tag":117,"props":3520,"children":3521},{"style":453},[3522],{"type":56,"value":3485},{"type":50,"tag":117,"props":3524,"children":3525},{"style":247},[3526],{"type":56,"value":983},{"type":50,"tag":117,"props":3528,"children":3529},{"style":453},[3530],{"type":56,"value":3531},"procedure",{"type":50,"tag":117,"props":3533,"children":3534},{"style":247},[3535],{"type":56,"value":485},{"type":50,"tag":106,"props":3537,"children":3539},{"className":430,"code":3538,"language":432,"meta":111,"style":111},"\u002F\u002F src\u002Fclient\u002Findex.ts\nimport { configureTRPCHeyApiClient } from '@trpc\u002Fopenapi\u002Fheyapi';\nimport superjson from 'superjson';\nimport { client } from '.\u002Fgenerated\u002Fclient.gen';\nimport { Sdk } from '.\u002Fgenerated\u002Fsdk.gen';\n\nconfigureTRPCHeyApiClient(client, {\n  baseUrl: 'http:\u002F\u002Flocalhost:3000',\n  transformer: superjson,\n});\nconst sdk = new Sdk({ client });\n\nconst event = await sdk.getEvent({\n  query: { input: { id: 'evt_1', at: new Date('2025-06-15T10:00:00Z') } },\n});\n\u002F\u002F event.data.result.data.at is a Date object\n",[3540],{"type":50,"tag":75,"props":3541,"children":3542},{"__ignoreMap":111},[3543,3551,3590,3621,3660,3699,3706,3725,3752,3772,3787,3834,3841,3882,3983,3998],{"type":50,"tag":117,"props":3544,"children":3545},{"class":119,"line":120},[3546],{"type":50,"tag":117,"props":3547,"children":3548},{"style":682},[3549],{"type":56,"value":3550},"\u002F\u002F src\u002Fclient\u002Findex.ts\n",{"type":50,"tag":117,"props":3552,"children":3553},{"class":119,"line":488},[3554,3558,3562,3566,3570,3574,3578,3582,3586],{"type":50,"tag":117,"props":3555,"children":3556},{"style":442},[3557],{"type":56,"value":445},{"type":50,"tag":117,"props":3559,"children":3560},{"style":247},[3561],{"type":56,"value":450},{"type":50,"tag":117,"props":3563,"children":3564},{"style":453},[3565],{"type":56,"value":2185},{"type":50,"tag":117,"props":3567,"children":3568},{"style":247},[3569],{"type":56,"value":461},{"type":50,"tag":117,"props":3571,"children":3572},{"style":442},[3573],{"type":56,"value":466},{"type":50,"tag":117,"props":3575,"children":3576},{"style":247},[3577],{"type":56,"value":471},{"type":50,"tag":117,"props":3579,"children":3580},{"style":130},[3581],{"type":56,"value":933},{"type":50,"tag":117,"props":3583,"children":3584},{"style":247},[3585],{"type":56,"value":480},{"type":50,"tag":117,"props":3587,"children":3588},{"style":247},[3589],{"type":56,"value":485},{"type":50,"tag":117,"props":3591,"children":3592},{"class":119,"line":498},[3593,3597,3601,3605,3609,3613,3617],{"type":50,"tag":117,"props":3594,"children":3595},{"style":442},[3596],{"type":56,"value":445},{"type":50,"tag":117,"props":3598,"children":3599},{"style":453},[3600],{"type":56,"value":3246},{"type":50,"tag":117,"props":3602,"children":3603},{"style":442},[3604],{"type":56,"value":762},{"type":50,"tag":117,"props":3606,"children":3607},{"style":247},[3608],{"type":56,"value":471},{"type":50,"tag":117,"props":3610,"children":3611},{"style":130},[3612],{"type":56,"value":3217},{"type":50,"tag":117,"props":3614,"children":3615},{"style":247},[3616],{"type":56,"value":480},{"type":50,"tag":117,"props":3618,"children":3619},{"style":247},[3620],{"type":56,"value":485},{"type":50,"tag":117,"props":3622,"children":3623},{"class":119,"line":556},[3624,3628,3632,3636,3640,3644,3648,3652,3656],{"type":50,"tag":117,"props":3625,"children":3626},{"style":442},[3627],{"type":56,"value":445},{"type":50,"tag":117,"props":3629,"children":3630},{"style":247},[3631],{"type":56,"value":450},{"type":50,"tag":117,"props":3633,"children":3634},{"style":453},[3635],{"type":56,"value":2225},{"type":50,"tag":117,"props":3637,"children":3638},{"style":247},[3639],{"type":56,"value":461},{"type":50,"tag":117,"props":3641,"children":3642},{"style":442},[3643],{"type":56,"value":466},{"type":50,"tag":117,"props":3645,"children":3646},{"style":247},[3647],{"type":56,"value":471},{"type":50,"tag":117,"props":3649,"children":3650},{"style":130},[3651],{"type":56,"value":2242},{"type":50,"tag":117,"props":3653,"children":3654},{"style":247},[3655],{"type":56,"value":480},{"type":50,"tag":117,"props":3657,"children":3658},{"style":247},[3659],{"type":56,"value":485},{"type":50,"tag":117,"props":3661,"children":3662},{"class":119,"line":589},[3663,3667,3671,3675,3679,3683,3687,3691,3695],{"type":50,"tag":117,"props":3664,"children":3665},{"style":442},[3666],{"type":56,"value":445},{"type":50,"tag":117,"props":3668,"children":3669},{"style":247},[3670],{"type":56,"value":450},{"type":50,"tag":117,"props":3672,"children":3673},{"style":453},[3674],{"type":56,"value":2266},{"type":50,"tag":117,"props":3676,"children":3677},{"style":247},[3678],{"type":56,"value":461},{"type":50,"tag":117,"props":3680,"children":3681},{"style":442},[3682],{"type":56,"value":466},{"type":50,"tag":117,"props":3684,"children":3685},{"style":247},[3686],{"type":56,"value":471},{"type":50,"tag":117,"props":3688,"children":3689},{"style":130},[3690],{"type":56,"value":2283},{"type":50,"tag":117,"props":3692,"children":3693},{"style":247},[3694],{"type":56,"value":480},{"type":50,"tag":117,"props":3696,"children":3697},{"style":247},[3698],{"type":56,"value":485},{"type":50,"tag":117,"props":3700,"children":3701},{"class":119,"line":618},[3702],{"type":50,"tag":117,"props":3703,"children":3704},{"emptyLinePlaceholder":492},[3705],{"type":56,"value":495},{"type":50,"tag":117,"props":3707,"children":3708},{"class":119,"line":648},[3709,3713,3717,3721],{"type":50,"tag":117,"props":3710,"children":3711},{"style":523},[3712],{"type":56,"value":2306},{"type":50,"tag":117,"props":3714,"children":3715},{"style":453},[3716],{"type":56,"value":2311},{"type":50,"tag":117,"props":3718,"children":3719},{"style":247},[3720],{"type":56,"value":548},{"type":50,"tag":117,"props":3722,"children":3723},{"style":247},[3724],{"type":56,"value":553},{"type":50,"tag":117,"props":3726,"children":3727},{"class":119,"line":944},[3728,3732,3736,3740,3744,3748],{"type":50,"tag":117,"props":3729,"children":3730},{"style":560},[3731],{"type":56,"value":2327},{"type":50,"tag":117,"props":3733,"children":3734},{"style":247},[3735],{"type":56,"value":568},{"type":50,"tag":117,"props":3737,"children":3738},{"style":247},[3739],{"type":56,"value":471},{"type":50,"tag":117,"props":3741,"children":3742},{"style":130},[3743],{"type":56,"value":2340},{"type":50,"tag":117,"props":3745,"children":3746},{"style":247},[3747],{"type":56,"value":480},{"type":50,"tag":117,"props":3749,"children":3750},{"style":247},[3751],{"type":56,"value":586},{"type":50,"tag":117,"props":3753,"children":3754},{"class":119,"line":952},[3755,3760,3764,3768],{"type":50,"tag":117,"props":3756,"children":3757},{"style":560},[3758],{"type":56,"value":3759},"  transformer",{"type":50,"tag":117,"props":3761,"children":3762},{"style":247},[3763],{"type":56,"value":568},{"type":50,"tag":117,"props":3765,"children":3766},{"style":453},[3767],{"type":56,"value":3300},{"type":50,"tag":117,"props":3769,"children":3770},{"style":247},[3771],{"type":56,"value":586},{"type":50,"tag":117,"props":3773,"children":3774},{"class":119,"line":1004},[3775,3779,3783],{"type":50,"tag":117,"props":3776,"children":3777},{"style":247},[3778],{"type":56,"value":654},{"type":50,"tag":117,"props":3780,"children":3781},{"style":453},[3782],{"type":56,"value":659},{"type":50,"tag":117,"props":3784,"children":3785},{"style":247},[3786],{"type":56,"value":485},{"type":50,"tag":117,"props":3788,"children":3789},{"class":119,"line":1044},[3790,3794,3798,3802,3806,3810,3814,3818,3822,3826,3830],{"type":50,"tag":117,"props":3791,"children":3792},{"style":502},[3793],{"type":56,"value":505},{"type":50,"tag":117,"props":3795,"children":3796},{"style":453},[3797],{"type":56,"value":2375},{"type":50,"tag":117,"props":3799,"children":3800},{"style":247},[3801],{"type":56,"value":515},{"type":50,"tag":117,"props":3803,"children":3804},{"style":247},[3805],{"type":56,"value":2384},{"type":50,"tag":117,"props":3807,"children":3808},{"style":523},[3809],{"type":56,"value":2266},{"type":50,"tag":117,"props":3811,"children":3812},{"style":453},[3813],{"type":56,"value":530},{"type":50,"tag":117,"props":3815,"children":3816},{"style":247},[3817],{"type":56,"value":2397},{"type":50,"tag":117,"props":3819,"children":3820},{"style":453},[3821],{"type":56,"value":2402},{"type":50,"tag":117,"props":3823,"children":3824},{"style":247},[3825],{"type":56,"value":654},{"type":50,"tag":117,"props":3827,"children":3828},{"style":453},[3829],{"type":56,"value":659},{"type":50,"tag":117,"props":3831,"children":3832},{"style":247},[3833],{"type":56,"value":485},{"type":50,"tag":117,"props":3835,"children":3836},{"class":119,"line":1052},[3837],{"type":50,"tag":117,"props":3838,"children":3839},{"emptyLinePlaceholder":492},[3840],{"type":56,"value":495},{"type":50,"tag":117,"props":3842,"children":3843},{"class":119,"line":1146},[3844,3848,3853,3857,3861,3865,3869,3874,3878],{"type":50,"tag":117,"props":3845,"children":3846},{"style":502},[3847],{"type":56,"value":505},{"type":50,"tag":117,"props":3849,"children":3850},{"style":453},[3851],{"type":56,"value":3852}," event ",{"type":50,"tag":117,"props":3854,"children":3855},{"style":247},[3856],{"type":56,"value":515},{"type":50,"tag":117,"props":3858,"children":3859},{"style":442},[3860],{"type":56,"value":520},{"type":50,"tag":117,"props":3862,"children":3863},{"style":453},[3864],{"type":56,"value":2454},{"type":50,"tag":117,"props":3866,"children":3867},{"style":247},[3868],{"type":56,"value":983},{"type":50,"tag":117,"props":3870,"children":3871},{"style":523},[3872],{"type":56,"value":3873},"getEvent",{"type":50,"tag":117,"props":3875,"children":3876},{"style":453},[3877],{"type":56,"value":530},{"type":50,"tag":117,"props":3879,"children":3880},{"style":247},[3881],{"type":56,"value":1714},{"type":50,"tag":117,"props":3883,"children":3884},{"class":119,"line":1237},[3885,3890,3894,3898,3902,3906,3910,3915,3919,3923,3928,3932,3936,3941,3945,3949,3954,3958,3962,3967,3971,3975,3979],{"type":50,"tag":117,"props":3886,"children":3887},{"style":560},[3888],{"type":56,"value":3889},"  query",{"type":50,"tag":117,"props":3891,"children":3892},{"style":247},[3893],{"type":56,"value":568},{"type":50,"tag":117,"props":3895,"children":3896},{"style":247},[3897],{"type":56,"value":450},{"type":50,"tag":117,"props":3899,"children":3900},{"style":560},[3901],{"type":56,"value":2489},{"type":50,"tag":117,"props":3903,"children":3904},{"style":247},[3905],{"type":56,"value":568},{"type":50,"tag":117,"props":3907,"children":3908},{"style":247},[3909],{"type":56,"value":450},{"type":50,"tag":117,"props":3911,"children":3912},{"style":560},[3913],{"type":56,"value":3914}," id",{"type":50,"tag":117,"props":3916,"children":3917},{"style":247},[3918],{"type":56,"value":568},{"type":50,"tag":117,"props":3920,"children":3921},{"style":247},[3922],{"type":56,"value":471},{"type":50,"tag":117,"props":3924,"children":3925},{"style":130},[3926],{"type":56,"value":3927},"evt_1",{"type":50,"tag":117,"props":3929,"children":3930},{"style":247},[3931],{"type":56,"value":480},{"type":50,"tag":117,"props":3933,"children":3934},{"style":247},[3935],{"type":56,"value":548},{"type":50,"tag":117,"props":3937,"children":3938},{"style":560},[3939],{"type":56,"value":3940}," at",{"type":50,"tag":117,"props":3942,"children":3943},{"style":247},[3944],{"type":56,"value":568},{"type":50,"tag":117,"props":3946,"children":3947},{"style":247},[3948],{"type":56,"value":2384},{"type":50,"tag":117,"props":3950,"children":3951},{"style":523},[3952],{"type":56,"value":3953}," Date",{"type":50,"tag":117,"props":3955,"children":3956},{"style":453},[3957],{"type":56,"value":530},{"type":50,"tag":117,"props":3959,"children":3960},{"style":247},[3961],{"type":56,"value":480},{"type":50,"tag":117,"props":3963,"children":3964},{"style":130},[3965],{"type":56,"value":3966},"2025-06-15T10:00:00Z",{"type":50,"tag":117,"props":3968,"children":3969},{"style":247},[3970],{"type":56,"value":480},{"type":50,"tag":117,"props":3972,"children":3973},{"style":453},[3974],{"type":56,"value":1580},{"type":50,"tag":117,"props":3976,"children":3977},{"style":247},[3978],{"type":56,"value":654},{"type":50,"tag":117,"props":3980,"children":3981},{"style":247},[3982],{"type":56,"value":1939},{"type":50,"tag":117,"props":3984,"children":3985},{"class":119,"line":1326},[3986,3990,3994],{"type":50,"tag":117,"props":3987,"children":3988},{"style":247},[3989],{"type":56,"value":654},{"type":50,"tag":117,"props":3991,"children":3992},{"style":453},[3993],{"type":56,"value":659},{"type":50,"tag":117,"props":3995,"children":3996},{"style":247},[3997],{"type":56,"value":485},{"type":50,"tag":117,"props":3999,"children":4000},{"class":119,"line":1334},[4001],{"type":50,"tag":117,"props":4002,"children":4003},{"style":682},[4004],{"type":56,"value":4005},"\u002F\u002F event.data.result.data.at is a Date object\n",{"type":50,"tag":99,"props":4007,"children":4009},{"id":4008},"mongodb-ejson-transformer-cross-language",[4010],{"type":56,"value":4011},"MongoDB EJSON transformer (cross-language)",{"type":50,"tag":63,"props":4013,"children":4014},{},[4015],{"type":56,"value":4016},"For non-TypeScript clients, EJSON provides a language-agnostic serialization format:",{"type":50,"tag":106,"props":4018,"children":4020},{"className":430,"code":4019,"language":432,"meta":111,"style":111},"import type { TRPCDataTransformer } from '@trpc\u002Fserver';\nimport type { Document } from 'bson';\nimport { EJSON } from 'bson';\n\nexport const ejsonTransformer: TRPCDataTransformer = {\n  serialize: (value) => EJSON.serialize(value),\n  deserialize: (value) => EJSON.deserialize(value as Document),\n};\n",[4021],{"type":50,"tag":75,"props":4022,"children":4023},{"__ignoreMap":111},[4024,4069,4114,4154,4161,4193,4245,4308],{"type":50,"tag":117,"props":4025,"children":4026},{"class":119,"line":120},[4027,4031,4036,4040,4045,4049,4053,4057,4061,4065],{"type":50,"tag":117,"props":4028,"children":4029},{"style":442},[4030],{"type":56,"value":445},{"type":50,"tag":117,"props":4032,"children":4033},{"style":442},[4034],{"type":56,"value":4035}," type",{"type":50,"tag":117,"props":4037,"children":4038},{"style":247},[4039],{"type":56,"value":450},{"type":50,"tag":117,"props":4041,"children":4042},{"style":453},[4043],{"type":56,"value":4044}," TRPCDataTransformer",{"type":50,"tag":117,"props":4046,"children":4047},{"style":247},[4048],{"type":56,"value":461},{"type":50,"tag":117,"props":4050,"children":4051},{"style":442},[4052],{"type":56,"value":466},{"type":50,"tag":117,"props":4054,"children":4055},{"style":247},[4056],{"type":56,"value":471},{"type":50,"tag":117,"props":4058,"children":4059},{"style":130},[4060],{"type":56,"value":3352},{"type":50,"tag":117,"props":4062,"children":4063},{"style":247},[4064],{"type":56,"value":480},{"type":50,"tag":117,"props":4066,"children":4067},{"style":247},[4068],{"type":56,"value":485},{"type":50,"tag":117,"props":4070,"children":4071},{"class":119,"line":488},[4072,4076,4080,4084,4089,4093,4097,4101,4106,4110],{"type":50,"tag":117,"props":4073,"children":4074},{"style":442},[4075],{"type":56,"value":445},{"type":50,"tag":117,"props":4077,"children":4078},{"style":442},[4079],{"type":56,"value":4035},{"type":50,"tag":117,"props":4081,"children":4082},{"style":247},[4083],{"type":56,"value":450},{"type":50,"tag":117,"props":4085,"children":4086},{"style":453},[4087],{"type":56,"value":4088}," Document",{"type":50,"tag":117,"props":4090,"children":4091},{"style":247},[4092],{"type":56,"value":461},{"type":50,"tag":117,"props":4094,"children":4095},{"style":442},[4096],{"type":56,"value":466},{"type":50,"tag":117,"props":4098,"children":4099},{"style":247},[4100],{"type":56,"value":471},{"type":50,"tag":117,"props":4102,"children":4103},{"style":130},[4104],{"type":56,"value":4105},"bson",{"type":50,"tag":117,"props":4107,"children":4108},{"style":247},[4109],{"type":56,"value":480},{"type":50,"tag":117,"props":4111,"children":4112},{"style":247},[4113],{"type":56,"value":485},{"type":50,"tag":117,"props":4115,"children":4116},{"class":119,"line":498},[4117,4121,4125,4130,4134,4138,4142,4146,4150],{"type":50,"tag":117,"props":4118,"children":4119},{"style":442},[4120],{"type":56,"value":445},{"type":50,"tag":117,"props":4122,"children":4123},{"style":247},[4124],{"type":56,"value":450},{"type":50,"tag":117,"props":4126,"children":4127},{"style":453},[4128],{"type":56,"value":4129}," EJSON",{"type":50,"tag":117,"props":4131,"children":4132},{"style":247},[4133],{"type":56,"value":461},{"type":50,"tag":117,"props":4135,"children":4136},{"style":442},[4137],{"type":56,"value":466},{"type":50,"tag":117,"props":4139,"children":4140},{"style":247},[4141],{"type":56,"value":471},{"type":50,"tag":117,"props":4143,"children":4144},{"style":130},[4145],{"type":56,"value":4105},{"type":50,"tag":117,"props":4147,"children":4148},{"style":247},[4149],{"type":56,"value":480},{"type":50,"tag":117,"props":4151,"children":4152},{"style":247},[4153],{"type":56,"value":485},{"type":50,"tag":117,"props":4155,"children":4156},{"class":119,"line":556},[4157],{"type":50,"tag":117,"props":4158,"children":4159},{"emptyLinePlaceholder":492},[4160],{"type":56,"value":495},{"type":50,"tag":117,"props":4162,"children":4163},{"class":119,"line":589},[4164,4168,4172,4177,4181,4185,4189],{"type":50,"tag":117,"props":4165,"children":4166},{"style":442},[4167],{"type":56,"value":3281},{"type":50,"tag":117,"props":4169,"children":4170},{"style":502},[4171],{"type":56,"value":3286},{"type":50,"tag":117,"props":4173,"children":4174},{"style":453},[4175],{"type":56,"value":4176}," ejsonTransformer",{"type":50,"tag":117,"props":4178,"children":4179},{"style":247},[4180],{"type":56,"value":568},{"type":50,"tag":117,"props":4182,"children":4183},{"style":124},[4184],{"type":56,"value":4044},{"type":50,"tag":117,"props":4186,"children":4187},{"style":247},[4188],{"type":56,"value":1378},{"type":50,"tag":117,"props":4190,"children":4191},{"style":247},[4192],{"type":56,"value":553},{"type":50,"tag":117,"props":4194,"children":4195},{"class":119,"line":618},[4196,4201,4205,4210,4215,4219,4223,4227,4231,4236,4241],{"type":50,"tag":117,"props":4197,"children":4198},{"style":523},[4199],{"type":56,"value":4200},"  serialize",{"type":50,"tag":117,"props":4202,"children":4203},{"style":247},[4204],{"type":56,"value":568},{"type":50,"tag":117,"props":4206,"children":4207},{"style":247},[4208],{"type":56,"value":4209}," (",{"type":50,"tag":117,"props":4211,"children":4212},{"style":2026},[4213],{"type":56,"value":4214},"value",{"type":50,"tag":117,"props":4216,"children":4217},{"style":247},[4218],{"type":56,"value":659},{"type":50,"tag":117,"props":4220,"children":4221},{"style":502},[4222],{"type":56,"value":2038},{"type":50,"tag":117,"props":4224,"children":4225},{"style":453},[4226],{"type":56,"value":4129},{"type":50,"tag":117,"props":4228,"children":4229},{"style":247},[4230],{"type":56,"value":983},{"type":50,"tag":117,"props":4232,"children":4233},{"style":523},[4234],{"type":56,"value":4235},"serialize",{"type":50,"tag":117,"props":4237,"children":4238},{"style":453},[4239],{"type":56,"value":4240},"(value)",{"type":50,"tag":117,"props":4242,"children":4243},{"style":247},[4244],{"type":56,"value":586},{"type":50,"tag":117,"props":4246,"children":4247},{"class":119,"line":648},[4248,4253,4257,4261,4265,4269,4273,4277,4281,4286,4291,4296,4300,4304],{"type":50,"tag":117,"props":4249,"children":4250},{"style":523},[4251],{"type":56,"value":4252},"  deserialize",{"type":50,"tag":117,"props":4254,"children":4255},{"style":247},[4256],{"type":56,"value":568},{"type":50,"tag":117,"props":4258,"children":4259},{"style":247},[4260],{"type":56,"value":4209},{"type":50,"tag":117,"props":4262,"children":4263},{"style":2026},[4264],{"type":56,"value":4214},{"type":50,"tag":117,"props":4266,"children":4267},{"style":247},[4268],{"type":56,"value":659},{"type":50,"tag":117,"props":4270,"children":4271},{"style":502},[4272],{"type":56,"value":2038},{"type":50,"tag":117,"props":4274,"children":4275},{"style":453},[4276],{"type":56,"value":4129},{"type":50,"tag":117,"props":4278,"children":4279},{"style":247},[4280],{"type":56,"value":983},{"type":50,"tag":117,"props":4282,"children":4283},{"style":523},[4284],{"type":56,"value":4285},"deserialize",{"type":50,"tag":117,"props":4287,"children":4288},{"style":453},[4289],{"type":56,"value":4290},"(value ",{"type":50,"tag":117,"props":4292,"children":4293},{"style":442},[4294],{"type":56,"value":4295},"as",{"type":50,"tag":117,"props":4297,"children":4298},{"style":124},[4299],{"type":56,"value":4088},{"type":50,"tag":117,"props":4301,"children":4302},{"style":453},[4303],{"type":56,"value":659},{"type":50,"tag":117,"props":4305,"children":4306},{"style":247},[4307],{"type":56,"value":586},{"type":50,"tag":117,"props":4309,"children":4310},{"class":119,"line":944},[4311],{"type":50,"tag":117,"props":4312,"children":4313},{"style":247},[4314],{"type":56,"value":4315},"};\n",{"type":50,"tag":106,"props":4317,"children":4319},{"className":430,"code":4318,"language":432,"meta":111,"style":111},"import { configureTRPCHeyApiClient } from '@trpc\u002Fopenapi\u002Fheyapi';\nimport { client } from '.\u002Fgenerated\u002Fclient.gen';\nimport { ejsonTransformer } from '.\u002Ftransformer';\n\nconfigureTRPCHeyApiClient(client, {\n  baseUrl: 'http:\u002F\u002Flocalhost:3000',\n  transformer: ejsonTransformer,\n});\n",[4320],{"type":50,"tag":75,"props":4321,"children":4322},{"__ignoreMap":111},[4323,4362,4401,4441,4448,4467,4494,4513],{"type":50,"tag":117,"props":4324,"children":4325},{"class":119,"line":120},[4326,4330,4334,4338,4342,4346,4350,4354,4358],{"type":50,"tag":117,"props":4327,"children":4328},{"style":442},[4329],{"type":56,"value":445},{"type":50,"tag":117,"props":4331,"children":4332},{"style":247},[4333],{"type":56,"value":450},{"type":50,"tag":117,"props":4335,"children":4336},{"style":453},[4337],{"type":56,"value":2185},{"type":50,"tag":117,"props":4339,"children":4340},{"style":247},[4341],{"type":56,"value":461},{"type":50,"tag":117,"props":4343,"children":4344},{"style":442},[4345],{"type":56,"value":466},{"type":50,"tag":117,"props":4347,"children":4348},{"style":247},[4349],{"type":56,"value":471},{"type":50,"tag":117,"props":4351,"children":4352},{"style":130},[4353],{"type":56,"value":933},{"type":50,"tag":117,"props":4355,"children":4356},{"style":247},[4357],{"type":56,"value":480},{"type":50,"tag":117,"props":4359,"children":4360},{"style":247},[4361],{"type":56,"value":485},{"type":50,"tag":117,"props":4363,"children":4364},{"class":119,"line":488},[4365,4369,4373,4377,4381,4385,4389,4393,4397],{"type":50,"tag":117,"props":4366,"children":4367},{"style":442},[4368],{"type":56,"value":445},{"type":50,"tag":117,"props":4370,"children":4371},{"style":247},[4372],{"type":56,"value":450},{"type":50,"tag":117,"props":4374,"children":4375},{"style":453},[4376],{"type":56,"value":2225},{"type":50,"tag":117,"props":4378,"children":4379},{"style":247},[4380],{"type":56,"value":461},{"type":50,"tag":117,"props":4382,"children":4383},{"style":442},[4384],{"type":56,"value":466},{"type":50,"tag":117,"props":4386,"children":4387},{"style":247},[4388],{"type":56,"value":471},{"type":50,"tag":117,"props":4390,"children":4391},{"style":130},[4392],{"type":56,"value":2242},{"type":50,"tag":117,"props":4394,"children":4395},{"style":247},[4396],{"type":56,"value":480},{"type":50,"tag":117,"props":4398,"children":4399},{"style":247},[4400],{"type":56,"value":485},{"type":50,"tag":117,"props":4402,"children":4403},{"class":119,"line":498},[4404,4408,4412,4416,4420,4424,4428,4433,4437],{"type":50,"tag":117,"props":4405,"children":4406},{"style":442},[4407],{"type":56,"value":445},{"type":50,"tag":117,"props":4409,"children":4410},{"style":247},[4411],{"type":56,"value":450},{"type":50,"tag":117,"props":4413,"children":4414},{"style":453},[4415],{"type":56,"value":4176},{"type":50,"tag":117,"props":4417,"children":4418},{"style":247},[4419],{"type":56,"value":461},{"type":50,"tag":117,"props":4421,"children":4422},{"style":442},[4423],{"type":56,"value":466},{"type":50,"tag":117,"props":4425,"children":4426},{"style":247},[4427],{"type":56,"value":471},{"type":50,"tag":117,"props":4429,"children":4430},{"style":130},[4431],{"type":56,"value":4432},".\u002Ftransformer",{"type":50,"tag":117,"props":4434,"children":4435},{"style":247},[4436],{"type":56,"value":480},{"type":50,"tag":117,"props":4438,"children":4439},{"style":247},[4440],{"type":56,"value":485},{"type":50,"tag":117,"props":4442,"children":4443},{"class":119,"line":556},[4444],{"type":50,"tag":117,"props":4445,"children":4446},{"emptyLinePlaceholder":492},[4447],{"type":56,"value":495},{"type":50,"tag":117,"props":4449,"children":4450},{"class":119,"line":589},[4451,4455,4459,4463],{"type":50,"tag":117,"props":4452,"children":4453},{"style":523},[4454],{"type":56,"value":2306},{"type":50,"tag":117,"props":4456,"children":4457},{"style":453},[4458],{"type":56,"value":2311},{"type":50,"tag":117,"props":4460,"children":4461},{"style":247},[4462],{"type":56,"value":548},{"type":50,"tag":117,"props":4464,"children":4465},{"style":247},[4466],{"type":56,"value":553},{"type":50,"tag":117,"props":4468,"children":4469},{"class":119,"line":618},[4470,4474,4478,4482,4486,4490],{"type":50,"tag":117,"props":4471,"children":4472},{"style":560},[4473],{"type":56,"value":2327},{"type":50,"tag":117,"props":4475,"children":4476},{"style":247},[4477],{"type":56,"value":568},{"type":50,"tag":117,"props":4479,"children":4480},{"style":247},[4481],{"type":56,"value":471},{"type":50,"tag":117,"props":4483,"children":4484},{"style":130},[4485],{"type":56,"value":2340},{"type":50,"tag":117,"props":4487,"children":4488},{"style":247},[4489],{"type":56,"value":480},{"type":50,"tag":117,"props":4491,"children":4492},{"style":247},[4493],{"type":56,"value":586},{"type":50,"tag":117,"props":4495,"children":4496},{"class":119,"line":648},[4497,4501,4505,4509],{"type":50,"tag":117,"props":4498,"children":4499},{"style":560},[4500],{"type":56,"value":3759},{"type":50,"tag":117,"props":4502,"children":4503},{"style":247},[4504],{"type":56,"value":568},{"type":50,"tag":117,"props":4506,"children":4507},{"style":453},[4508],{"type":56,"value":4176},{"type":50,"tag":117,"props":4510,"children":4511},{"style":247},[4512],{"type":56,"value":586},{"type":50,"tag":117,"props":4514,"children":4515},{"class":119,"line":944},[4516,4520,4524],{"type":50,"tag":117,"props":4517,"children":4518},{"style":247},[4519],{"type":56,"value":654},{"type":50,"tag":117,"props":4521,"children":4522},{"style":453},[4523],{"type":56,"value":659},{"type":50,"tag":117,"props":4525,"children":4526},{"style":247},[4527],{"type":56,"value":485},{"type":50,"tag":99,"props":4529,"children":4531},{"id":4530},"response-shape",[4532],{"type":56,"value":4533},"Response shape",{"type":50,"tag":63,"props":4535,"children":4536},{},[4537,4539,4545],{"type":56,"value":4538},"All tRPC HTTP responses follow the envelope format. Access data through ",{"type":50,"tag":75,"props":4540,"children":4542},{"className":4541},[],[4543],{"type":56,"value":4544},"result.data",{"type":56,"value":568},{"type":50,"tag":106,"props":4547,"children":4549},{"className":430,"code":4548,"language":432,"meta":111,"style":111},"const listResult = await sdk.user.list();\nconst users = listResult.data?.result.data; \u002F\u002F the actual return value\n\nconst createResult = await sdk.user.create({ body: { name: 'nick' } });\nconst user = createResult.data?.result.data;\n\u002F\u002F user.createdAt instanceof Date === true (when transformer is configured)\n",[4550],{"type":50,"tag":75,"props":4551,"children":4552},{"__ignoreMap":111},[4553,4602,4660,4667,4764,4812],{"type":50,"tag":117,"props":4554,"children":4555},{"class":119,"line":120},[4556,4560,4565,4569,4573,4577,4581,4585,4589,4594,4598],{"type":50,"tag":117,"props":4557,"children":4558},{"style":502},[4559],{"type":56,"value":505},{"type":50,"tag":117,"props":4561,"children":4562},{"style":453},[4563],{"type":56,"value":4564}," listResult ",{"type":50,"tag":117,"props":4566,"children":4567},{"style":247},[4568],{"type":56,"value":515},{"type":50,"tag":117,"props":4570,"children":4571},{"style":442},[4572],{"type":56,"value":520},{"type":50,"tag":117,"props":4574,"children":4575},{"style":453},[4576],{"type":56,"value":2454},{"type":50,"tag":117,"props":4578,"children":4579},{"style":247},[4580],{"type":56,"value":983},{"type":50,"tag":117,"props":4582,"children":4583},{"style":453},[4584],{"type":56,"value":2572},{"type":50,"tag":117,"props":4586,"children":4587},{"style":247},[4588],{"type":56,"value":983},{"type":50,"tag":117,"props":4590,"children":4591},{"style":523},[4592],{"type":56,"value":4593},"list",{"type":50,"tag":117,"props":4595,"children":4596},{"style":453},[4597],{"type":56,"value":1355},{"type":50,"tag":117,"props":4599,"children":4600},{"style":247},[4601],{"type":56,"value":485},{"type":50,"tag":117,"props":4603,"children":4604},{"class":119,"line":488},[4605,4609,4614,4618,4623,4627,4632,4637,4642,4646,4650,4655],{"type":50,"tag":117,"props":4606,"children":4607},{"style":502},[4608],{"type":56,"value":505},{"type":50,"tag":117,"props":4610,"children":4611},{"style":453},[4612],{"type":56,"value":4613}," users ",{"type":50,"tag":117,"props":4615,"children":4616},{"style":247},[4617],{"type":56,"value":515},{"type":50,"tag":117,"props":4619,"children":4620},{"style":453},[4621],{"type":56,"value":4622}," listResult",{"type":50,"tag":117,"props":4624,"children":4625},{"style":247},[4626],{"type":56,"value":983},{"type":50,"tag":117,"props":4628,"children":4629},{"style":453},[4630],{"type":56,"value":4631},"data",{"type":50,"tag":117,"props":4633,"children":4634},{"style":247},[4635],{"type":56,"value":4636},"?.",{"type":50,"tag":117,"props":4638,"children":4639},{"style":453},[4640],{"type":56,"value":4641},"result",{"type":50,"tag":117,"props":4643,"children":4644},{"style":247},[4645],{"type":56,"value":983},{"type":50,"tag":117,"props":4647,"children":4648},{"style":453},[4649],{"type":56,"value":4631},{"type":50,"tag":117,"props":4651,"children":4652},{"style":247},[4653],{"type":56,"value":4654},";",{"type":50,"tag":117,"props":4656,"children":4657},{"style":682},[4658],{"type":56,"value":4659}," \u002F\u002F the actual return value\n",{"type":50,"tag":117,"props":4661,"children":4662},{"class":119,"line":498},[4663],{"type":50,"tag":117,"props":4664,"children":4665},{"emptyLinePlaceholder":492},[4666],{"type":56,"value":495},{"type":50,"tag":117,"props":4668,"children":4669},{"class":119,"line":556},[4670,4674,4679,4683,4687,4691,4695,4699,4703,4707,4711,4715,4719,4723,4727,4731,4735,4739,4744,4748,4752,4756,4760],{"type":50,"tag":117,"props":4671,"children":4672},{"style":502},[4673],{"type":56,"value":505},{"type":50,"tag":117,"props":4675,"children":4676},{"style":453},[4677],{"type":56,"value":4678}," createResult ",{"type":50,"tag":117,"props":4680,"children":4681},{"style":247},[4682],{"type":56,"value":515},{"type":50,"tag":117,"props":4684,"children":4685},{"style":442},[4686],{"type":56,"value":520},{"type":50,"tag":117,"props":4688,"children":4689},{"style":453},[4690],{"type":56,"value":2454},{"type":50,"tag":117,"props":4692,"children":4693},{"style":247},[4694],{"type":56,"value":983},{"type":50,"tag":117,"props":4696,"children":4697},{"style":453},[4698],{"type":56,"value":2572},{"type":50,"tag":117,"props":4700,"children":4701},{"style":247},[4702],{"type":56,"value":983},{"type":50,"tag":117,"props":4704,"children":4705},{"style":523},[4706],{"type":56,"value":2581},{"type":50,"tag":117,"props":4708,"children":4709},{"style":453},[4710],{"type":56,"value":530},{"type":50,"tag":117,"props":4712,"children":4713},{"style":247},[4714],{"type":56,"value":2397},{"type":50,"tag":117,"props":4716,"children":4717},{"style":560},[4718],{"type":56,"value":2594},{"type":50,"tag":117,"props":4720,"children":4721},{"style":247},[4722],{"type":56,"value":568},{"type":50,"tag":117,"props":4724,"children":4725},{"style":247},[4726],{"type":56,"value":450},{"type":50,"tag":117,"props":4728,"children":4729},{"style":560},[4730],{"type":56,"value":2502},{"type":50,"tag":117,"props":4732,"children":4733},{"style":247},[4734],{"type":56,"value":568},{"type":50,"tag":117,"props":4736,"children":4737},{"style":247},[4738],{"type":56,"value":471},{"type":50,"tag":117,"props":4740,"children":4741},{"style":130},[4742],{"type":56,"value":4743},"nick",{"type":50,"tag":117,"props":4745,"children":4746},{"style":247},[4747],{"type":56,"value":480},{"type":50,"tag":117,"props":4749,"children":4750},{"style":247},[4751],{"type":56,"value":461},{"type":50,"tag":117,"props":4753,"children":4754},{"style":247},[4755],{"type":56,"value":461},{"type":50,"tag":117,"props":4757,"children":4758},{"style":453},[4759],{"type":56,"value":659},{"type":50,"tag":117,"props":4761,"children":4762},{"style":247},[4763],{"type":56,"value":485},{"type":50,"tag":117,"props":4765,"children":4766},{"class":119,"line":589},[4767,4771,4775,4779,4784,4788,4792,4796,4800,4804,4808],{"type":50,"tag":117,"props":4768,"children":4769},{"style":502},[4770],{"type":56,"value":505},{"type":50,"tag":117,"props":4772,"children":4773},{"style":453},[4774],{"type":56,"value":2551},{"type":50,"tag":117,"props":4776,"children":4777},{"style":247},[4778],{"type":56,"value":515},{"type":50,"tag":117,"props":4780,"children":4781},{"style":453},[4782],{"type":56,"value":4783}," createResult",{"type":50,"tag":117,"props":4785,"children":4786},{"style":247},[4787],{"type":56,"value":983},{"type":50,"tag":117,"props":4789,"children":4790},{"style":453},[4791],{"type":56,"value":4631},{"type":50,"tag":117,"props":4793,"children":4794},{"style":247},[4795],{"type":56,"value":4636},{"type":50,"tag":117,"props":4797,"children":4798},{"style":453},[4799],{"type":56,"value":4641},{"type":50,"tag":117,"props":4801,"children":4802},{"style":247},[4803],{"type":56,"value":983},{"type":50,"tag":117,"props":4805,"children":4806},{"style":453},[4807],{"type":56,"value":4631},{"type":50,"tag":117,"props":4809,"children":4810},{"style":247},[4811],{"type":56,"value":485},{"type":50,"tag":117,"props":4813,"children":4814},{"class":119,"line":618},[4815],{"type":50,"tag":117,"props":4816,"children":4817},{"style":682},[4818],{"type":56,"value":4819},"\u002F\u002F user.createdAt instanceof Date === true (when transformer is configured)\n",{"type":50,"tag":99,"props":4821,"children":4823},{"id":4822},"descriptions-in-the-spec",[4824],{"type":56,"value":4825},"Descriptions in the spec",{"type":50,"tag":63,"props":4827,"children":4828},{},[4829,4831,4837,4839,4845],{"type":56,"value":4830},"Zod ",{"type":50,"tag":75,"props":4832,"children":4834},{"className":4833},[],[4835],{"type":56,"value":4836},".describe()",{"type":56,"value":4838}," calls and JSDoc comments on types, routers, and procedures become ",{"type":50,"tag":75,"props":4840,"children":4842},{"className":4841},[],[4843],{"type":56,"value":4844},"description",{"type":56,"value":4846}," fields in the generated OpenAPI spec. No annotations or decorators required.",{"type":50,"tag":92,"props":4848,"children":4850},{"id":4849},"common-mistakes",[4851],{"type":56,"value":4852},"Common Mistakes",{"type":50,"tag":99,"props":4854,"children":4856},{"id":4855},"missing-transformer-config-in-heyapi-client",[4857],{"type":56,"value":4858},"Missing transformer config in HeyAPI client",{"type":50,"tag":63,"props":4860,"children":4861},{},[4862,4863,4868,4870,4876,4878,4883,4885,4891,4892,4898],{"type":56,"value":3211},{"type":50,"tag":75,"props":4864,"children":4866},{"className":4865},[],[4867],{"type":56,"value":3217},{"type":56,"value":4869}," or another transformer, the generated HeyAPI client must also be configured with the same transformer via ",{"type":50,"tag":75,"props":4871,"children":4873},{"className":4872},[],[4874],{"type":56,"value":4875},"configureTRPCHeyApiClient(client, { transformer })",{"type":56,"value":4877},". Without this, ",{"type":50,"tag":75,"props":4879,"children":4881},{"className":4880},[],[4882],{"type":56,"value":2812},{"type":56,"value":4884},", ",{"type":50,"tag":75,"props":4886,"children":4888},{"className":4887},[],[4889],{"type":56,"value":4890},"Map",{"type":56,"value":4884},{"type":50,"tag":75,"props":4893,"children":4895},{"className":4894},[],[4896],{"type":56,"value":4897},"Set",{"type":56,"value":4899},", and other non-JSON types will be silently wrong at runtime -- they arrive as raw serialized objects instead of their native types.",{"type":50,"tag":63,"props":4901,"children":4902},{},[4903],{"type":56,"value":4904},"Wrong:",{"type":50,"tag":106,"props":4906,"children":4908},{"className":430,"code":4907,"language":432,"meta":111,"style":111},"configureTRPCHeyApiClient(client, {\n  baseUrl: 'http:\u002F\u002Flocalhost:3000',\n  \u002F\u002F missing transformer -- Dates will be broken\n});\n",[4909],{"type":50,"tag":75,"props":4910,"children":4911},{"__ignoreMap":111},[4912,4931,4958,4966],{"type":50,"tag":117,"props":4913,"children":4914},{"class":119,"line":120},[4915,4919,4923,4927],{"type":50,"tag":117,"props":4916,"children":4917},{"style":523},[4918],{"type":56,"value":2306},{"type":50,"tag":117,"props":4920,"children":4921},{"style":453},[4922],{"type":56,"value":2311},{"type":50,"tag":117,"props":4924,"children":4925},{"style":247},[4926],{"type":56,"value":548},{"type":50,"tag":117,"props":4928,"children":4929},{"style":247},[4930],{"type":56,"value":553},{"type":50,"tag":117,"props":4932,"children":4933},{"class":119,"line":488},[4934,4938,4942,4946,4950,4954],{"type":50,"tag":117,"props":4935,"children":4936},{"style":560},[4937],{"type":56,"value":2327},{"type":50,"tag":117,"props":4939,"children":4940},{"style":247},[4941],{"type":56,"value":568},{"type":50,"tag":117,"props":4943,"children":4944},{"style":247},[4945],{"type":56,"value":471},{"type":50,"tag":117,"props":4947,"children":4948},{"style":130},[4949],{"type":56,"value":2340},{"type":50,"tag":117,"props":4951,"children":4952},{"style":247},[4953],{"type":56,"value":480},{"type":50,"tag":117,"props":4955,"children":4956},{"style":247},[4957],{"type":56,"value":586},{"type":50,"tag":117,"props":4959,"children":4960},{"class":119,"line":498},[4961],{"type":50,"tag":117,"props":4962,"children":4963},{"style":682},[4964],{"type":56,"value":4965},"  \u002F\u002F missing transformer -- Dates will be broken\n",{"type":50,"tag":117,"props":4967,"children":4968},{"class":119,"line":556},[4969,4973,4977],{"type":50,"tag":117,"props":4970,"children":4971},{"style":247},[4972],{"type":56,"value":654},{"type":50,"tag":117,"props":4974,"children":4975},{"style":453},[4976],{"type":56,"value":659},{"type":50,"tag":117,"props":4978,"children":4979},{"style":247},[4980],{"type":56,"value":485},{"type":50,"tag":63,"props":4982,"children":4983},{},[4984],{"type":56,"value":4985},"Right:",{"type":50,"tag":106,"props":4987,"children":4989},{"className":430,"code":4988,"language":432,"meta":111,"style":111},"configureTRPCHeyApiClient(client, {\n  baseUrl: 'http:\u002F\u002Flocalhost:3000',\n  transformer: superjson, \u002F\u002F must match server's transformer\n});\n",[4990],{"type":50,"tag":75,"props":4991,"children":4992},{"__ignoreMap":111},[4993,5012,5039,5063],{"type":50,"tag":117,"props":4994,"children":4995},{"class":119,"line":120},[4996,5000,5004,5008],{"type":50,"tag":117,"props":4997,"children":4998},{"style":523},[4999],{"type":56,"value":2306},{"type":50,"tag":117,"props":5001,"children":5002},{"style":453},[5003],{"type":56,"value":2311},{"type":50,"tag":117,"props":5005,"children":5006},{"style":247},[5007],{"type":56,"value":548},{"type":50,"tag":117,"props":5009,"children":5010},{"style":247},[5011],{"type":56,"value":553},{"type":50,"tag":117,"props":5013,"children":5014},{"class":119,"line":488},[5015,5019,5023,5027,5031,5035],{"type":50,"tag":117,"props":5016,"children":5017},{"style":560},[5018],{"type":56,"value":2327},{"type":50,"tag":117,"props":5020,"children":5021},{"style":247},[5022],{"type":56,"value":568},{"type":50,"tag":117,"props":5024,"children":5025},{"style":247},[5026],{"type":56,"value":471},{"type":50,"tag":117,"props":5028,"children":5029},{"style":130},[5030],{"type":56,"value":2340},{"type":50,"tag":117,"props":5032,"children":5033},{"style":247},[5034],{"type":56,"value":480},{"type":50,"tag":117,"props":5036,"children":5037},{"style":247},[5038],{"type":56,"value":586},{"type":50,"tag":117,"props":5040,"children":5041},{"class":119,"line":498},[5042,5046,5050,5054,5058],{"type":50,"tag":117,"props":5043,"children":5044},{"style":560},[5045],{"type":56,"value":3759},{"type":50,"tag":117,"props":5047,"children":5048},{"style":247},[5049],{"type":56,"value":568},{"type":50,"tag":117,"props":5051,"children":5052},{"style":453},[5053],{"type":56,"value":3300},{"type":50,"tag":117,"props":5055,"children":5056},{"style":247},[5057],{"type":56,"value":548},{"type":50,"tag":117,"props":5059,"children":5060},{"style":682},[5061],{"type":56,"value":5062}," \u002F\u002F must match server's transformer\n",{"type":50,"tag":117,"props":5064,"children":5065},{"class":119,"line":556},[5066,5070,5074],{"type":50,"tag":117,"props":5067,"children":5068},{"style":247},[5069],{"type":56,"value":654},{"type":50,"tag":117,"props":5071,"children":5072},{"style":453},[5073],{"type":56,"value":659},{"type":50,"tag":117,"props":5075,"children":5076},{"style":247},[5077],{"type":56,"value":485},{"type":50,"tag":99,"props":5079,"children":5081},{"id":5080},"expecting-subscriptions-in-openapi-spec",[5082],{"type":56,"value":5083},"Expecting subscriptions in OpenAPI spec",{"type":50,"tag":63,"props":5085,"children":5086},{},[5087,5089,5095],{"type":56,"value":5088},"Subscriptions are currently excluded from OpenAPI spec generation. The generator silently skips any procedure with ",{"type":50,"tag":75,"props":5090,"children":5092},{"className":5091},[],[5093],{"type":56,"value":5094},"type: 'subscription'",{"type":56,"value":5096},". SSE subscription support is planned but not yet available.",{"type":50,"tag":99,"props":5098,"children":5100},{"id":5099},"forgetting-createtrpcheyapityperesolvers-when-using-a-transformer",[5101],{"type":56,"value":5102},"Forgetting createTRPCHeyApiTypeResolvers when using a transformer",{"type":50,"tag":63,"props":5104,"children":5105},{},[5106,5108,5113,5115,5120,5122,5127,5129,5135,5137,5143,5145,5150,5152,5157,5158,5163],{"type":56,"value":5107},"Without the type resolvers plugin, HeyAPI generates ",{"type":50,"tag":75,"props":5109,"children":5111},{"className":5110},[],[5112],{"type":56,"value":2820},{"type":56,"value":5114}," types for date-time fields instead of ",{"type":50,"tag":75,"props":5116,"children":5118},{"className":5117},[],[5119],{"type":56,"value":2812},{"type":56,"value":5121},". The ",{"type":50,"tag":75,"props":5123,"children":5125},{"className":5124},[],[5126],{"type":56,"value":2797},{"type":56,"value":5128}," function maps ",{"type":50,"tag":75,"props":5130,"children":5132},{"className":5131},[],[5133],{"type":56,"value":5134},"date",{"type":56,"value":5136},"\u002F",{"type":50,"tag":75,"props":5138,"children":5140},{"className":5139},[],[5141],{"type":56,"value":5142},"date-time",{"type":56,"value":5144}," format to ",{"type":50,"tag":75,"props":5146,"children":5148},{"className":5147},[],[5149],{"type":56,"value":2812},{"type":56,"value":5151}," and ",{"type":50,"tag":75,"props":5153,"children":5155},{"className":5154},[],[5156],{"type":56,"value":2828},{"type":56,"value":5144},{"type":50,"tag":75,"props":5159,"children":5161},{"className":5160},[],[5162],{"type":56,"value":2828},{"type":56,"value":5164}," in the generated TypeScript SDK.",{"type":50,"tag":99,"props":5166,"children":5168},{"id":5167},"using-the-wrong-export-name",[5169],{"type":56,"value":5170},"Using the wrong export name",{"type":50,"tag":63,"props":5172,"children":5173},{},[5174,5176,5182,5184,5189,5191,5197],{"type":56,"value":5175},"The CLI defaults to ",{"type":50,"tag":75,"props":5177,"children":5179},{"className":5178},[],[5180],{"type":56,"value":5181},"--export AppRouter",{"type":56,"value":5183}," (the type). If your file exports the router value as ",{"type":50,"tag":75,"props":5185,"children":5187},{"className":5186},[],[5188],{"type":56,"value":577},{"type":56,"value":5190},", pass ",{"type":50,"tag":75,"props":5192,"children":5194},{"className":5193},[],[5195],{"type":56,"value":5196},"-e appRouter",{"type":56,"value":5198},". If the export is not found, the error message lists all available exports from the file.",{"type":50,"tag":92,"props":5200,"children":5202},{"id":5201},"see-also",[5203],{"type":56,"value":5204},"See Also",{"type":50,"tag":5206,"props":5207,"children":5208},"ul",{},[5209,5219,5228,5252],{"type":50,"tag":5210,"props":5211,"children":5212},"li",{},[5213,5217],{"type":50,"tag":67,"props":5214,"children":5215},{},[5216],{"type":56,"value":41},{"type":56,"value":5218}," -- Required. Define routers and procedures before generating the spec.",{"type":50,"tag":5210,"props":5220,"children":5221},{},[5222,5226],{"type":50,"tag":67,"props":5223,"children":5224},{},[5225],{"type":56,"value":3217},{"type":56,"value":5227}," -- Transformer configuration for server and client. OpenAPI clients need matching transformer config.",{"type":50,"tag":5210,"props":5229,"children":5230},{},[5231,5236,5238,5243,5245,5250],{"type":50,"tag":67,"props":5232,"children":5233},{},[5234],{"type":56,"value":5235},"validators",{"type":56,"value":5237}," -- Zod ",{"type":50,"tag":75,"props":5239,"children":5241},{"className":5240},[],[5242],{"type":56,"value":4836},{"type":56,"value":5244}," calls propagate into OpenAPI ",{"type":50,"tag":75,"props":5246,"children":5248},{"className":5247},[],[5249],{"type":56,"value":4844},{"type":56,"value":5251}," fields.",{"type":50,"tag":5210,"props":5253,"children":5254},{},[5255,5257],{"type":56,"value":5256},"Full working example: ",{"type":50,"tag":75,"props":5258,"children":5260},{"className":5259},[],[5261],{"type":56,"value":5262},"examples\u002Fopenapi-codegen\u002F",{"type":50,"tag":5264,"props":5265,"children":5266},"style",{},[5267],{"type":56,"value":5268},"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);}",{"items":5270,"total":1609},[5271,5286,5299,5312,5332,5345,5359,5373,5385,5399,5409,5421],{"slug":5272,"name":5272,"fn":5273,"description":5274,"org":5275,"tags":5276,"stars":19,"repoUrl":20,"updatedAt":5285},"adapter-aws-lambda","deploy tRPC APIs on AWS Lambda","Deploy tRPC on AWS Lambda with awsLambdaRequestHandler() from @trpc\u002Fserver\u002Fadapters\u002Faws-lambda for API Gateway v1 (REST, APIGatewayProxyEvent) and v2 (HTTP, APIGatewayProxyEventV2), and Lambda Function URLs. Enable response streaming with awsLambdaStreamingRequestHandler() wrapped in awslambda.streamifyResponse(). CreateAWSLambdaContextOptions provides event and context for context creation.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5277,5278,5281,5284],{"name":15,"slug":16,"type":13},{"name":5279,"slug":5280,"type":13},"AWS","aws",{"name":5282,"slug":5283,"type":13},"Backend","backend",{"name":9,"slug":8,"type":13},"2026-07-18T05:47:05.451869",{"slug":5287,"name":5287,"fn":5288,"description":5289,"org":5290,"tags":5291,"stars":19,"repoUrl":20,"updatedAt":5298},"adapter-express","mount tRPC as Express middleware","Mount tRPC as Express middleware with createExpressMiddleware() from @trpc\u002Fserver\u002Fadapters\u002Fexpress. Access Express req\u002Fres in createContext via CreateExpressContextOptions. Mount at a path prefix like app.use('\u002Ftrpc', ...). Avoid global express.json() conflicting with tRPC body parsing for FormData.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5292,5293,5294,5297],{"name":15,"slug":16,"type":13},{"name":5282,"slug":5283,"type":13},{"name":5295,"slug":5296,"type":13},"Express","express",{"name":9,"slug":8,"type":13},"2026-07-18T05:46:53.274248",{"slug":5300,"name":5300,"fn":5301,"description":5302,"org":5303,"tags":5304,"stars":19,"repoUrl":20,"updatedAt":5311},"adapter-fastify","mount tRPC as a Fastify plugin","Mount tRPC as a Fastify plugin with fastifyTRPCPlugin from @trpc\u002Fserver\u002Fadapters\u002Ffastify. Configure prefix, trpcOptions (router, createContext, onError). Enable WebSocket subscriptions with useWSS and @fastify\u002Fwebsocket. Set routerOptions.maxParamLength for batch requests. Requires Fastify v5+. FastifyTRPCPluginOptions for type-safe onError. CreateFastifyContextOptions provides req, res.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5305,5306,5307,5310],{"name":15,"slug":16,"type":13},{"name":5282,"slug":5283,"type":13},{"name":5308,"slug":5309,"type":13},"Fastify","fastify",{"name":9,"slug":8,"type":13},"2026-07-18T05:46:53.746621",{"slug":5313,"name":5313,"fn":5314,"description":5315,"org":5316,"tags":5317,"stars":19,"repoUrl":20,"updatedAt":5331},"adapter-fetch","deploy tRPC on edge runtimes","Deploy tRPC on WinterCG-compliant edge runtimes with fetchRequestHandler() from @trpc\u002Fserver\u002Fadapters\u002Ffetch. Supports Cloudflare Workers, Deno Deploy, Vercel Edge Runtime, Astro, Remix, SolidStart. FetchCreateContextFnOptions provides req (Request) and resHeaders (Headers) for context creation. The endpoint option must match the URL path prefix where the handler is mounted.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5318,5321,5324,5327,5328],{"name":5319,"slug":5320,"type":13},"Cloudflare","cloudflare",{"name":5322,"slug":5323,"type":13},"Deployment","deployment",{"name":5325,"slug":5326,"type":13},"Edge","edge",{"name":9,"slug":8,"type":13},{"name":5329,"slug":5330,"type":13},"Vercel","vercel","2026-07-18T05:46:50.548228",{"slug":5333,"name":5333,"fn":5334,"description":5335,"org":5336,"tags":5337,"stars":19,"repoUrl":20,"updatedAt":5344},"adapter-standalone","mount tRPC on Node.js servers","Mount tRPC on Node.js built-in HTTP server with createHTTPServer() from @trpc\u002Fserver\u002Fadapters\u002Fstandalone, createHTTPHandler() for custom http.createServer, createHTTP2Handler() for HTTP\u002F2 with TLS. Configure basePath to slice URL prefix, CORS via the cors npm package passed as middleware option. CreateHTTPContextOptions provides req and res for context creation.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5338,5339,5340,5343],{"name":15,"slug":16,"type":13},{"name":5282,"slug":5283,"type":13},{"name":5341,"slug":5342,"type":13},"Node.js","node-js",{"name":9,"slug":8,"type":13},"2026-07-18T05:46:58.093869",{"slug":5346,"name":5346,"fn":5347,"description":5348,"org":5349,"tags":5350,"stars":19,"repoUrl":20,"updatedAt":5358},"auth","implement authentication in tRPC applications","Implement JWT\u002Fcookie authentication and authorization in tRPC using createContext for user extraction, t.middleware with opts.next({ ctx }) for context narrowing to non-null user, protectedProcedure base pattern, client-side Authorization headers via httpBatchLink headers(), WebSocket connectionParams, and SSE auth via cookies or EventSource polyfill custom headers.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5351,5353,5356,5357],{"name":5352,"slug":5346,"type":13},"Auth",{"name":5354,"slug":5355,"type":13},"Authentication","authentication",{"name":5282,"slug":5283,"type":13},{"name":9,"slug":8,"type":13},"2026-07-18T05:46:45.347628",{"slug":5360,"name":5360,"fn":5361,"description":5362,"org":5363,"tags":5364,"stars":19,"repoUrl":20,"updatedAt":5372},"caching","configure HTTP caching for tRPC queries","Set HTTP cache headers on tRPC query responses via responseMeta callback for CDN and browser caching. Configure Cache-Control, s-maxage, stale-while-revalidate. Handle caching with batching and authenticated requests. Avoid caching mutations, errors, and authenticated responses.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5365,5366,5368,5371],{"name":5282,"slug":5283,"type":13},{"name":5367,"slug":5360,"type":13},"Caching",{"name":5369,"slug":5370,"type":13},"Performance","performance",{"name":9,"slug":8,"type":13},"2026-07-18T05:46:45.86443",{"slug":5374,"name":5374,"fn":5375,"description":5376,"org":5377,"tags":5378,"stars":19,"repoUrl":20,"updatedAt":5384},"client-setup","set up vanilla tRPC clients","Create a vanilla tRPC client with createTRPCClient\u003CAppRouter>(), configure link chain with httpBatchLink\u002FhttpLink, dynamic headers for auth, transformer on links (not client constructor). Infer types with inferRouterInputs and inferRouterOutputs. AbortController signal support. TRPCClientError typing.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5379,5380,5383],{"name":15,"slug":16,"type":13},{"name":5381,"slug":5382,"type":13},"Frontend","frontend",{"name":9,"slug":8,"type":13},"2026-07-18T05:48:11.437946",{"slug":5386,"name":5386,"fn":5387,"description":5388,"org":5389,"tags":5390,"stars":19,"repoUrl":20,"updatedAt":5398},"error-handling","implement typed error handling in tRPC","Throw typed errors with TRPCError and error codes (NOT_FOUND, UNAUTHORIZED, BAD_REQUEST, INTERNAL_SERVER_ERROR), configure errorFormatter for client-side Zod error display, handle errors globally with onError callback, map tRPC errors to HTTP status codes with getHTTPStatusCodeFromError().\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5391,5392,5395,5396],{"name":5282,"slug":5283,"type":13},{"name":5393,"slug":5394,"type":13},"Debugging","debugging",{"name":9,"slug":8,"type":13},{"name":5397,"slug":30,"type":13},"TypeScript","2026-07-18T05:46:52.798151",{"slug":5400,"name":5400,"fn":5401,"description":5402,"org":5403,"tags":5404,"stars":19,"repoUrl":20,"updatedAt":5408},"links","configure tRPC client link chains","Configure the tRPC client link chain: httpLink, httpBatchLink, httpBatchStreamLink, splitLink, loggerLink, wsLink, createWSClient, httpSubscriptionLink, unstable_localLink, retryLink. Choose the right terminating link. Route subscriptions via splitLink. Build custom links for SOA routing. Link options: url, headers, transformer, maxURLLength, maxItems, connectionParams, EventSource ponyfill.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5405,5406,5407],{"name":15,"slug":16,"type":13},{"name":5381,"slug":5382,"type":13},{"name":9,"slug":8,"type":13},"2026-07-18T05:47:06.847309",{"slug":5410,"name":5410,"fn":5411,"description":5412,"org":5413,"tags":5414,"stars":19,"repoUrl":20,"updatedAt":5420},"middlewares","compose middleware for tRPC procedures","Create and compose tRPC middleware with t.procedure.use(), extend context via opts.next({ ctx }), build reusable middleware with .concat() and .unstable_pipe(), define base procedures like publicProcedure and authedProcedure. Access raw input with getRawInput(). Logging, timing, OTEL tracing patterns.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5415,5416,5419],{"name":5282,"slug":5283,"type":13},{"name":5417,"slug":5418,"type":13},"Middleware","middleware",{"name":9,"slug":8,"type":13},"2026-07-18T05:46:49.132255",{"slug":5422,"name":5422,"fn":5423,"description":5424,"org":5425,"tags":5426,"stars":19,"repoUrl":20,"updatedAt":5434},"nextjs-app-router","implement tRPC in Next.js App Router","Full end-to-end tRPC setup for Next.js App Router. Covers route handler with fetchRequestHandler (GET + POST exports), TRPCProvider with QueryClientProvider, createTRPCOptionsProxy for RSC prefetching, HydrateClient\u002FHydrationBoundary for hydration, useSuspenseQuery for Suspense, and server-side callers.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5427,5428,5429,5432,5433],{"name":5282,"slug":5283,"type":13},{"name":5381,"slug":5382,"type":13},{"name":5430,"slug":5431,"type":13},"Next.js","next-js",{"name":9,"slug":8,"type":13},{"name":5397,"slug":30,"type":13},"2026-07-18T05:47:10.468453",{"items":5436,"total":1609},[5437,5444,5451,5458,5466,5473,5480],{"slug":5272,"name":5272,"fn":5273,"description":5274,"org":5438,"tags":5439,"stars":19,"repoUrl":20,"updatedAt":5285},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5440,5441,5442,5443],{"name":15,"slug":16,"type":13},{"name":5279,"slug":5280,"type":13},{"name":5282,"slug":5283,"type":13},{"name":9,"slug":8,"type":13},{"slug":5287,"name":5287,"fn":5288,"description":5289,"org":5445,"tags":5446,"stars":19,"repoUrl":20,"updatedAt":5298},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5447,5448,5449,5450],{"name":15,"slug":16,"type":13},{"name":5282,"slug":5283,"type":13},{"name":5295,"slug":5296,"type":13},{"name":9,"slug":8,"type":13},{"slug":5300,"name":5300,"fn":5301,"description":5302,"org":5452,"tags":5453,"stars":19,"repoUrl":20,"updatedAt":5311},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5454,5455,5456,5457],{"name":15,"slug":16,"type":13},{"name":5282,"slug":5283,"type":13},{"name":5308,"slug":5309,"type":13},{"name":9,"slug":8,"type":13},{"slug":5313,"name":5313,"fn":5314,"description":5315,"org":5459,"tags":5460,"stars":19,"repoUrl":20,"updatedAt":5331},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5461,5462,5463,5464,5465],{"name":5319,"slug":5320,"type":13},{"name":5322,"slug":5323,"type":13},{"name":5325,"slug":5326,"type":13},{"name":9,"slug":8,"type":13},{"name":5329,"slug":5330,"type":13},{"slug":5333,"name":5333,"fn":5334,"description":5335,"org":5467,"tags":5468,"stars":19,"repoUrl":20,"updatedAt":5344},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5469,5470,5471,5472],{"name":15,"slug":16,"type":13},{"name":5282,"slug":5283,"type":13},{"name":5341,"slug":5342,"type":13},{"name":9,"slug":8,"type":13},{"slug":5346,"name":5346,"fn":5347,"description":5348,"org":5474,"tags":5475,"stars":19,"repoUrl":20,"updatedAt":5358},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5476,5477,5478,5479],{"name":5352,"slug":5346,"type":13},{"name":5354,"slug":5355,"type":13},{"name":5282,"slug":5283,"type":13},{"name":9,"slug":8,"type":13},{"slug":5360,"name":5360,"fn":5361,"description":5362,"org":5481,"tags":5482,"stars":19,"repoUrl":20,"updatedAt":5372},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5483,5484,5485,5486],{"name":5282,"slug":5283,"type":13},{"name":5367,"slug":5360,"type":13},{"name":5369,"slug":5370,"type":13},{"name":9,"slug":8,"type":13}]