@trpc/server 10.0.0-alpha.8 → 10.0.0-proxy-alpha.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (355) hide show
  1. package/README.md +79 -1
  2. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.d.ts +1 -0
  3. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.dev.js +190 -0
  4. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.js +7 -0
  5. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.prod.js +190 -0
  6. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.esm.js +186 -0
  7. package/adapters/aws-lambda/index.d.ts +1 -0
  8. package/adapters/aws-lambda/index.js +1 -0
  9. package/adapters/express/dist/trpc-server-adapters-express.cjs.dev.js +7 -7
  10. package/adapters/express/dist/trpc-server-adapters-express.cjs.prod.js +7 -7
  11. package/adapters/express/dist/trpc-server-adapters-express.esm.js +7 -7
  12. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.dev.js +18 -11
  13. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.prod.js +18 -11
  14. package/adapters/fastify/dist/trpc-server-adapters-fastify.esm.js +18 -11
  15. package/adapters/fastify/index.d.ts +1 -0
  16. package/adapters/fastify/index.js +1 -0
  17. package/adapters/fetch/index.d.ts +1 -0
  18. package/adapters/fetch/index.js +1 -0
  19. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.d.ts +1 -0
  20. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.dev.js +25 -0
  21. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.js +7 -0
  22. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.prod.js +25 -0
  23. package/adapters/lambda/dist/trpc-server-adapters-lambda.esm.js +21 -0
  24. package/adapters/next/dist/trpc-server-adapters-next.cjs.dev.js +4 -4
  25. package/adapters/next/dist/trpc-server-adapters-next.cjs.prod.js +4 -4
  26. package/adapters/next/dist/trpc-server-adapters-next.esm.js +4 -4
  27. package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.dev.js +4 -4
  28. package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.prod.js +4 -4
  29. package/adapters/node-http/dist/trpc-server-adapters-node-http.esm.js +4 -4
  30. package/adapters/node-http/index.js +1 -1
  31. package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.dev.js +5 -5
  32. package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.prod.js +5 -5
  33. package/adapters/standalone/dist/trpc-server-adapters-standalone.esm.js +5 -5
  34. package/adapters/ws/dist/trpc-server-adapters-ws.cjs.dev.js +24 -7
  35. package/adapters/ws/dist/trpc-server-adapters-ws.cjs.prod.js +24 -7
  36. package/adapters/ws/dist/trpc-server-adapters-ws.esm.js +24 -7
  37. package/dist/TRPCError-bcb38a84.js +61 -0
  38. package/dist/TRPCError-e6e632a5.mjs +57 -0
  39. package/dist/adapters/aws-lambda/index.d.ts +14 -0
  40. package/dist/adapters/aws-lambda/index.d.ts.map +1 -0
  41. package/dist/adapters/aws-lambda/index.js +153 -0
  42. package/dist/adapters/aws-lambda/index.mjs +149 -0
  43. package/dist/adapters/aws-lambda/utils.d.ts +35 -0
  44. package/dist/adapters/aws-lambda/utils.d.ts.map +1 -0
  45. package/dist/adapters/express.d.ts +1 -1
  46. package/dist/adapters/express.d.ts.map +1 -1
  47. package/dist/adapters/express.js +14 -13
  48. package/dist/adapters/express.mjs +14 -13
  49. package/dist/adapters/fastify/fastifyRequestHandler.d.ts +2 -2
  50. package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -1
  51. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts +2 -2
  52. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -1
  53. package/dist/adapters/fastify/index.d.ts.map +1 -1
  54. package/dist/adapters/fastify/index.js +87 -0
  55. package/dist/adapters/fastify/index.mjs +82 -0
  56. package/dist/adapters/fetch/fetchRequestHandler.d.ts +8 -0
  57. package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -0
  58. package/dist/adapters/fetch/index.d.ts +3 -0
  59. package/dist/adapters/fetch/index.d.ts.map +1 -0
  60. package/dist/adapters/fetch/index.js +57 -0
  61. package/dist/adapters/fetch/index.mjs +53 -0
  62. package/dist/adapters/fetch/types.d.ts +21 -0
  63. package/dist/adapters/fetch/types.d.ts.map +1 -0
  64. package/dist/adapters/lambda/index.d.ts +12 -0
  65. package/dist/adapters/lambda/index.d.ts.map +1 -0
  66. package/dist/adapters/next.d.ts +2 -2
  67. package/dist/adapters/next.d.ts.map +1 -1
  68. package/dist/adapters/next.js +42 -46
  69. package/dist/adapters/next.mjs +42 -46
  70. package/dist/adapters/node-http/index.d.ts.map +1 -1
  71. package/dist/adapters/node-http/index.js +5 -4
  72. package/dist/adapters/node-http/index.mjs +5 -4
  73. package/dist/adapters/node-http/internals/getPostBody.d.ts +1 -1
  74. package/dist/adapters/node-http/internals/getPostBody.d.ts.map +1 -1
  75. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts +2 -2
  76. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
  77. package/dist/adapters/node-http/types.d.ts +11 -9
  78. package/dist/adapters/node-http/types.d.ts.map +1 -1
  79. package/dist/adapters/standalone.d.ts +2 -2
  80. package/dist/adapters/standalone.d.ts.map +1 -1
  81. package/dist/adapters/standalone.js +30 -28
  82. package/dist/adapters/standalone.mjs +30 -27
  83. package/dist/adapters/ws.d.ts +8 -6
  84. package/dist/adapters/ws.d.ts.map +1 -1
  85. package/dist/adapters/ws.js +284 -317
  86. package/dist/adapters/ws.mjs +284 -317
  87. package/dist/assertNotBrowser.d.ts.map +1 -1
  88. package/dist/codes-1c24d919.js +47 -0
  89. package/dist/codes-aaa7d554.mjs +44 -0
  90. package/dist/core/index.d.ts +6 -0
  91. package/dist/core/index.d.ts.map +1 -0
  92. package/dist/core/initTRPC.d.ts +95 -0
  93. package/dist/core/initTRPC.d.ts.map +1 -0
  94. package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts +302 -0
  95. package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts.map +1 -0
  96. package/dist/core/internals/config.d.ts +36 -0
  97. package/dist/core/internals/config.d.ts.map +1 -0
  98. package/dist/core/internals/getParseFn.d.ts +9 -0
  99. package/dist/core/internals/getParseFn.d.ts.map +1 -0
  100. package/dist/core/internals/mergeRouters.d.ts +3 -0
  101. package/dist/core/internals/mergeRouters.d.ts.map +1 -0
  102. package/dist/core/internals/mergeWithoutOverrides.d.ts +5 -0
  103. package/dist/core/internals/mergeWithoutOverrides.d.ts.map +1 -0
  104. package/dist/core/internals/omitPrototype.d.ts +6 -0
  105. package/dist/core/internals/omitPrototype.d.ts.map +1 -0
  106. package/dist/core/internals/prefixObjectKeys.d.ts +2 -0
  107. package/dist/core/internals/prefixObjectKeys.d.ts.map +1 -0
  108. package/dist/core/internals/procedureBuilder.d.ts +124 -0
  109. package/dist/core/internals/procedureBuilder.d.ts.map +1 -0
  110. package/dist/core/internals/utils.d.ts +44 -0
  111. package/dist/core/internals/utils.d.ts.map +1 -0
  112. package/dist/core/middleware.d.ts +87 -0
  113. package/dist/core/middleware.d.ts.map +1 -0
  114. package/dist/core/parser.d.ts +25 -0
  115. package/dist/core/parser.d.ts.map +1 -0
  116. package/dist/core/procedure.d.ts +89 -0
  117. package/dist/core/procedure.d.ts.map +1 -0
  118. package/dist/core/router.d.ts +136 -0
  119. package/dist/core/router.d.ts.map +1 -0
  120. package/dist/core/types.d.ts +19 -0
  121. package/dist/core/types.d.ts.map +1 -0
  122. package/dist/{internals → deprecated/internals}/callProcedure.d.ts +5 -2
  123. package/dist/deprecated/internals/callProcedure.d.ts.map +1 -0
  124. package/dist/{internals → deprecated/internals}/middlewares.d.ts +21 -3
  125. package/dist/deprecated/internals/middlewares.d.ts.map +1 -0
  126. package/dist/deprecated/internals/procedure.d.ts +96 -0
  127. package/dist/deprecated/internals/procedure.d.ts.map +1 -0
  128. package/dist/deprecated/interop.d.ts +61 -0
  129. package/dist/deprecated/interop.d.ts.map +1 -0
  130. package/dist/deprecated/router.d.ts +194 -0
  131. package/dist/deprecated/router.d.ts.map +1 -0
  132. package/dist/error/TRPCError.d.ts +11 -0
  133. package/dist/error/TRPCError.d.ts.map +1 -0
  134. package/dist/error/formatter.d.ts +33 -0
  135. package/dist/error/formatter.d.ts.map +1 -0
  136. package/dist/{internals/errors.d.ts → error/utils.d.ts} +3 -2
  137. package/dist/error/utils.d.ts.map +1 -0
  138. package/dist/http/index.d.ts +1 -1
  139. package/dist/http/index.d.ts.map +1 -1
  140. package/dist/http/internals/getHTTPStatusCode.d.ts +2 -1
  141. package/dist/http/internals/getHTTPStatusCode.d.ts.map +1 -1
  142. package/dist/http/internals/types.d.ts +11 -8
  143. package/dist/http/internals/types.d.ts.map +1 -1
  144. package/dist/http/resolveHTTPResponse.d.ts +4 -4
  145. package/dist/http/resolveHTTPResponse.d.ts.map +1 -1
  146. package/dist/http/{ResponseMeta.d.ts → types.d.ts} +1 -1
  147. package/dist/http/types.d.ts.map +1 -0
  148. package/dist/index-47817162.mjs +26 -0
  149. package/dist/index-9d687d33.js +28 -0
  150. package/dist/index.d.ts +4 -5
  151. package/dist/index.d.ts.map +1 -1
  152. package/dist/index.js +78 -516
  153. package/dist/index.mjs +71 -508
  154. package/dist/internals/invert.d.ts.map +1 -1
  155. package/dist/internals/transformTRPCResponse.d.ts +5 -3
  156. package/dist/internals/transformTRPCResponse.d.ts.map +1 -1
  157. package/dist/internals/types.d.ts +23 -0
  158. package/dist/internals/types.d.ts.map +1 -0
  159. package/dist/internals.d.ts +11 -0
  160. package/dist/internals.d.ts.map +1 -0
  161. package/dist/nodeHTTPRequestHandler-2c467c02.mjs +80 -0
  162. package/dist/nodeHTTPRequestHandler-6609461a.js +82 -0
  163. package/dist/observable/index.d.ts +5 -0
  164. package/dist/observable/index.d.ts.map +1 -0
  165. package/dist/observable/index.js +157 -0
  166. package/dist/observable/index.mjs +148 -0
  167. package/dist/observable/internals/identity.d.ts +2 -0
  168. package/dist/observable/internals/identity.d.ts.map +1 -0
  169. package/dist/observable/internals/observableToPromise.d.ts +10 -0
  170. package/dist/observable/internals/observableToPromise.d.ts.map +1 -0
  171. package/dist/observable/internals/pipe.d.ts +4 -0
  172. package/dist/observable/internals/pipe.d.ts.map +1 -0
  173. package/dist/observable/observable.d.ts +5 -0
  174. package/dist/observable/observable.d.ts.map +1 -0
  175. package/dist/observable/operators/index.d.ts +4 -0
  176. package/dist/observable/operators/index.d.ts.map +1 -0
  177. package/dist/observable/operators/map.d.ts +3 -0
  178. package/dist/observable/operators/map.d.ts.map +1 -0
  179. package/dist/observable/operators/share.d.ts +6 -0
  180. package/dist/observable/operators/share.d.ts.map +1 -0
  181. package/dist/observable/operators/tap.d.ts +3 -0
  182. package/dist/observable/operators/tap.d.ts.map +1 -0
  183. package/dist/observable/types.d.ts +29 -0
  184. package/dist/observable/types.d.ts.map +1 -0
  185. package/dist/observable-b651bf11.js +84 -0
  186. package/dist/observable-e129ac9d.mjs +81 -0
  187. package/dist/resolveHTTPResponse-11d52bd0.mjs +255 -0
  188. package/dist/resolveHTTPResponse-29d4b64a.js +259 -0
  189. package/dist/router-3ee4babe.js +903 -0
  190. package/dist/router-a2a75de3.mjs +893 -0
  191. package/dist/rpc/codes.d.ts +2 -0
  192. package/dist/rpc/codes.d.ts.map +1 -1
  193. package/dist/rpc/envelopes.d.ts +64 -41
  194. package/dist/rpc/envelopes.d.ts.map +1 -1
  195. package/dist/rpc/index.d.ts.map +1 -1
  196. package/dist/rpc/index.js +1 -1
  197. package/dist/rpc/index.mjs +1 -1
  198. package/dist/rpc/internals/invert.d.ts +18 -0
  199. package/dist/rpc/internals/invert.d.ts.map +1 -0
  200. package/dist/shared/createProxy/index.d.ts +12 -0
  201. package/dist/shared/createProxy/index.d.ts.map +1 -0
  202. package/dist/shared/index.d.ts +2 -0
  203. package/dist/shared/index.d.ts.map +1 -0
  204. package/dist/shared/index.js +9 -0
  205. package/dist/shared/index.mjs +1 -0
  206. package/dist/subscription.d.ts +3 -52
  207. package/dist/subscription.d.ts.map +1 -1
  208. package/dist/subscription.js +34 -0
  209. package/dist/subscription.mjs +30 -0
  210. package/dist/transformTRPCResponse-11ac69cc.js +27 -0
  211. package/dist/transformTRPCResponse-c8138d5f.mjs +25 -0
  212. package/dist/transformer.d.ts +14 -0
  213. package/dist/transformer.d.ts.map +1 -1
  214. package/dist/types.d.ts +37 -10
  215. package/dist/types.d.ts.map +1 -1
  216. package/observable/index.d.ts +1 -0
  217. package/observable/index.js +1 -0
  218. package/package.json +53 -25
  219. package/rpc/dist/trpc-server-rpc.cjs.dev.js +1 -1
  220. package/rpc/dist/trpc-server-rpc.cjs.prod.js +1 -1
  221. package/rpc/dist/trpc-server-rpc.esm.js +1 -1
  222. package/rpc/index.js +1 -1
  223. package/shared/index.d.ts +1 -0
  224. package/shared/index.js +1 -0
  225. package/src/adapters/aws-lambda/index.ts +173 -0
  226. package/src/adapters/aws-lambda/utils.ts +92 -0
  227. package/src/adapters/express.ts +4 -4
  228. package/src/adapters/fastify/fastifyRequestHandler.ts +6 -8
  229. package/src/adapters/fastify/fastifyTRPCPlugin.ts +17 -9
  230. package/src/adapters/fetch/fetchRequestHandler.ts +61 -0
  231. package/src/adapters/fetch/index.ts +2 -0
  232. package/src/adapters/fetch/types.ts +28 -0
  233. package/src/adapters/lambda/index.ts +18 -0
  234. package/src/adapters/next.ts +10 -8
  235. package/src/adapters/node-http/internals/getPostBody.test.ts +2 -1
  236. package/src/adapters/node-http/internals/getPostBody.ts +1 -1
  237. package/src/adapters/node-http/nodeHTTPRequestHandler.ts +7 -7
  238. package/src/adapters/node-http/types.ts +11 -9
  239. package/src/adapters/standalone.ts +12 -4
  240. package/src/adapters/ws.ts +150 -91
  241. package/src/assertNotBrowser.ts +1 -0
  242. package/src/core/index.ts +15 -0
  243. package/src/core/initTRPC.ts +94 -0
  244. package/src/core/internals/__generated__/mergeRoutersGeneric.ts +406 -0
  245. package/src/core/internals/config.ts +43 -0
  246. package/src/core/internals/getParseFn.ts +47 -0
  247. package/src/core/internals/mergeRouters.ts +45 -0
  248. package/src/core/internals/mergeWithoutOverrides.ts +19 -0
  249. package/src/core/internals/omitPrototype.ts +9 -0
  250. package/src/core/internals/prefixObjectKeys.ts +9 -0
  251. package/src/core/internals/procedureBuilder.ts +430 -0
  252. package/src/core/internals/utils.ts +64 -0
  253. package/src/core/middleware.ts +96 -0
  254. package/src/core/parser.ts +45 -0
  255. package/src/core/procedure.ts +121 -0
  256. package/src/core/router.ts +351 -0
  257. package/src/core/types.ts +58 -0
  258. package/src/{internals → deprecated/internals}/callProcedure.ts +9 -3
  259. package/src/{internals → deprecated/internals}/middlewares.ts +23 -3
  260. package/src/deprecated/internals/procedure.ts +415 -0
  261. package/src/deprecated/interop.ts +272 -0
  262. package/src/{router.ts → deprecated/router.ts} +221 -108
  263. package/src/{TRPCError.ts → error/TRPCError.ts} +6 -14
  264. package/src/error/formatter.ts +51 -0
  265. package/src/{internals/errors.ts → error/utils.ts} +24 -5
  266. package/src/http/index.ts +1 -1
  267. package/src/http/internals/getHTTPStatusCode.ts +3 -2
  268. package/src/http/internals/types.ts +11 -14
  269. package/src/http/resolveHTTPResponse.ts +34 -39
  270. package/src/http/{ResponseMeta.ts → types.ts} +0 -0
  271. package/src/index.ts +4 -7
  272. package/src/internals/transformTRPCResponse.ts +21 -16
  273. package/src/internals/types.ts +24 -0
  274. package/src/internals.ts +14 -0
  275. package/src/observable/index.ts +4 -0
  276. package/src/observable/internals/identity.ts +3 -0
  277. package/src/observable/internals/observableToPromise.ts +49 -0
  278. package/src/observable/internals/pipe.ts +23 -0
  279. package/src/observable/observable.test.ts +101 -0
  280. package/src/observable/observable.ts +78 -0
  281. package/src/observable/operators/index.ts +3 -0
  282. package/src/observable/operators/map.test.ts +92 -0
  283. package/src/observable/operators/map.ts +25 -0
  284. package/src/observable/operators/share.test.ts +60 -0
  285. package/src/observable/operators/share.ts +67 -0
  286. package/src/observable/operators/tap.ts +26 -0
  287. package/src/observable/types.ts +69 -0
  288. package/src/rpc/codes.ts +2 -1
  289. package/src/rpc/envelopes.ts +94 -68
  290. package/src/rpc/internals/invert.ts +27 -0
  291. package/src/shared/createProxy/index.ts +38 -0
  292. package/src/shared/index.ts +1 -0
  293. package/src/subscription.ts +7 -125
  294. package/src/transformer.ts +28 -0
  295. package/src/types.ts +45 -15
  296. package/subscription/index.d.ts +1 -0
  297. package/subscription/index.js +1 -0
  298. package/adapters/fastify/package.json +0 -4
  299. package/dist/TRPCError.d.ts +0 -19
  300. package/dist/TRPCError.d.ts.map +0 -1
  301. package/dist/adapters/express.ts.js +0 -1
  302. package/dist/adapters/next.ts.js +0 -1
  303. package/dist/adapters/node-http/index.ts.js +0 -1
  304. package/dist/adapters/standalone.ts.js +0 -1
  305. package/dist/adapters/ws.ts.js +0 -1
  306. package/dist/codes-7a3d4f65.mjs +0 -56
  307. package/dist/codes-7f46544e.js +0 -60
  308. package/dist/deprecated/LegacyRouter.d.ts +0 -3
  309. package/dist/deprecated/LegacyRouter.d.ts.map +0 -1
  310. package/dist/deprecated/createHttpServer.d.ts +0 -19
  311. package/dist/deprecated/createHttpServer.d.ts.map +0 -1
  312. package/dist/deprecated/requestHandler.d.ts +0 -15
  313. package/dist/deprecated/requestHandler.d.ts.map +0 -1
  314. package/dist/http/ResponseMeta.d.ts.map +0 -1
  315. package/dist/index.ts.js +0 -1
  316. package/dist/internals/BaseHandlerOptions.d.ts +0 -13
  317. package/dist/internals/BaseHandlerOptions.d.ts.map +0 -1
  318. package/dist/internals/OnErrorFunction.d.ts +0 -11
  319. package/dist/internals/OnErrorFunction.d.ts.map +0 -1
  320. package/dist/internals/callProcedure.d.ts.map +0 -1
  321. package/dist/internals/errors.d.ts.map +0 -1
  322. package/dist/internals/middlewares.d.ts.map +0 -1
  323. package/dist/internals/procedure.d.ts +0 -74
  324. package/dist/internals/procedure.d.ts.map +0 -1
  325. package/dist/internals/wrapCallSafe.d.ts +0 -16
  326. package/dist/internals/wrapCallSafe.d.ts.map +0 -1
  327. package/dist/nodeHTTPRequestHandler-10e6d2f9.mjs +0 -394
  328. package/dist/nodeHTTPRequestHandler-d7c307d3.js +0 -399
  329. package/dist/router.d.ts +0 -176
  330. package/dist/router.d.ts.map +0 -1
  331. package/dist/rpc/index.ts.js +0 -1
  332. package/dist/subscription-5b7e1eba.js +0 -136
  333. package/dist/subscription-e1d42e69.mjs +0 -133
  334. package/dist/transformTRPCResponse-76e0c91e.mjs +0 -109
  335. package/dist/transformTRPCResponse-bd24f548.js +0 -114
  336. package/dist/ws/index.d.ts +0 -7
  337. package/dist/ws/index.d.ts.map +0 -1
  338. package/dist/ws/index.js +0 -15
  339. package/dist/ws/index.mjs +0 -11
  340. package/dist/ws/index.ts.js +0 -1
  341. package/src/deprecated/LegacyRouter.ts +0 -3
  342. package/src/deprecated/createHttpServer.ts +0 -29
  343. package/src/deprecated/requestHandler.ts +0 -26
  344. package/src/internals/BaseHandlerOptions.ts +0 -13
  345. package/src/internals/OnErrorFunction.ts +0 -11
  346. package/src/internals/procedure.ts +0 -283
  347. package/src/internals/wrapCallSafe.ts +0 -19
  348. package/src/ws/index.ts +0 -8
  349. package/ws/dist/trpc-server-ws.cjs.d.ts +0 -1
  350. package/ws/dist/trpc-server-ws.cjs.dev.js +0 -15
  351. package/ws/dist/trpc-server-ws.cjs.js +0 -7
  352. package/ws/dist/trpc-server-ws.cjs.prod.js +0 -15
  353. package/ws/dist/trpc-server-ws.esm.js +0 -11
  354. package/ws/index.d.ts +0 -1
  355. package/ws/index.js +0 -1
@@ -1,56 +1,76 @@
1
- /* eslint-disable @typescript-eslint/ban-types */
2
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
3
- import { assertNotBrowser } from './assertNotBrowser';
4
- import { getHTTPStatusCodeFromError } from './http/internals/getHTTPStatusCode';
2
+ import { assertNotBrowser } from '../assertNotBrowser';
3
+ import { TRPCError } from '../error/TRPCError';
4
+ import { defaultFormatter } from '../error/formatter';
5
+ import { getHTTPStatusCodeFromError } from '../http/internals/getHTTPStatusCode';
6
+ import { Observable, inferObservableValue } from '../observable';
7
+ import {
8
+ TRPCErrorShape,
9
+ TRPC_ERROR_CODES_BY_KEY,
10
+ TRPC_ERROR_CODE_KEY,
11
+ TRPC_ERROR_CODE_NUMBER,
12
+ } from '../rpc';
13
+ import {
14
+ CombinedDataTransformer,
15
+ DataTransformerOptions,
16
+ defaultTransformer,
17
+ } from '../transformer';
18
+ import { FlatOverwrite, Prefixer, ThenArg } from '../types';
5
19
  import { MiddlewareFunction } from './internals/middlewares';
6
20
  import {
7
- createProcedure,
8
21
  CreateProcedureOptions,
9
22
  CreateProcedureWithInput,
10
23
  CreateProcedureWithInputOutputParser,
11
24
  CreateProcedureWithoutInput,
12
- inferProcedureFromOptions,
13
25
  Procedure,
14
26
  ProcedureCallOptions,
27
+ createProcedure,
28
+ inferProcedureFromOptions,
15
29
  } from './internals/procedure';
16
- import {
17
- TRPCErrorShape,
18
- TRPC_ERROR_CODES_BY_KEY,
19
- TRPC_ERROR_CODE_KEY,
20
- TRPC_ERROR_CODE_NUMBER,
21
- } from './rpc';
22
- import { Subscription } from './subscription';
23
- import { CombinedDataTransformer, DataTransformerOptions } from './transformer';
24
- import { TRPCError } from './TRPCError';
25
- import { flatten, Prefixer, ThenArg } from './types';
30
+ import { MigrateRouter, migrateRouter } from './interop';
26
31
 
27
32
  assertNotBrowser();
28
33
 
34
+ export type { Procedure } from './internals/procedure';
35
+
29
36
  /**
30
37
  * @public
38
+ * @deprecated
31
39
  */
32
40
  export type ProcedureType = 'query' | 'mutation' | 'subscription';
33
41
 
34
42
  /**
35
43
  * @internal
44
+ * @deprecated
36
45
  */
37
46
  export type ProcedureRecord<
38
47
  TInputContext = any,
39
48
  TContext = any,
49
+ TMeta = any,
40
50
  TInput = any,
41
51
  TParsedInput = any,
42
52
  TOutput = any,
53
+ TParsedOutput = any,
43
54
  > = Record<
44
55
  string,
45
- Procedure<TInputContext, TContext, TInput, TParsedInput, TOutput>
56
+ Procedure<
57
+ TInputContext,
58
+ TContext,
59
+ TMeta,
60
+ TInput,
61
+ TParsedInput,
62
+ TOutput,
63
+ TParsedOutput
64
+ >
46
65
  >;
47
66
 
48
67
  /**
49
68
  * @public
69
+ * @deprecated
50
70
  */
51
71
  export type inferProcedureInput<
52
- TProcedure extends Procedure<any, any, any, any, any>,
53
- > = TProcedure extends Procedure<any, any, infer Input, any, any>
72
+ TProcedure extends Procedure<any, any, any, any, any, any, any>,
73
+ > = TProcedure extends Procedure<any, any, any, infer Input, any, any, any>
54
74
  ? undefined extends Input
55
75
  ? Input | null | void // void is necessary to allow procedures with nullish input to be called without an input
56
76
  : Input
@@ -58,28 +78,29 @@ export type inferProcedureInput<
58
78
 
59
79
  /**
60
80
  * @public
81
+ * @deprecated
61
82
  */
62
83
  export type inferAsyncReturnType<TFunction extends (...args: any) => any> =
63
84
  ThenArg<ReturnType<TFunction>>;
64
85
 
65
86
  /**
66
87
  * @public
88
+ * @deprecated
67
89
  */
68
90
  export type inferProcedureOutput<
69
- TProcedure extends Procedure<any, any, any, any, any>,
91
+ TProcedure extends Procedure<any, any, any, any, any, any, any>,
70
92
  > = inferAsyncReturnType<TProcedure['call']>;
71
93
 
72
94
  /**
73
95
  * @public
74
96
  * @beta
97
+ * @deprecated
75
98
  */
76
99
  export type inferSubscriptionOutput<
77
100
  TRouter extends AnyRouter,
78
101
  TPath extends keyof TRouter['_def']['subscriptions'],
79
- > = ReturnType<
80
- inferAsyncReturnType<
81
- TRouter['_def']['subscriptions'][TPath]['call']
82
- >['output']
102
+ > = inferObservableValue<
103
+ inferAsyncReturnType<TRouter['_def']['subscriptions'][TPath]['call']>
83
104
  >;
84
105
 
85
106
  function getDataTransformer(
@@ -92,10 +113,11 @@ function getDataTransformer(
92
113
  }
93
114
  /**
94
115
  * @internal
116
+ * @deprecated
95
117
  */
96
118
  export type inferHandlerInput<
97
- TProcedure extends Procedure<any, any, any, any, any>,
98
- > = TProcedure extends Procedure<any, any, infer TInput, any, any>
119
+ TProcedure extends Procedure<any, any, any, any, any, any, any>,
120
+ > = TProcedure extends Procedure<any, any, any, infer TInput, any, any, any>
99
121
  ? undefined extends TInput // ? is input optional
100
122
  ? unknown extends TInput // ? is input unset
101
123
  ? [(null | undefined)?] // -> there is no input
@@ -113,13 +135,30 @@ type inferHandlerFn<TProcedures extends ProcedureRecord> = <
113
135
 
114
136
  /**
115
137
  * @internal
138
+ * @deprecated
116
139
  */
117
140
  export type inferRouterContext<TRouter extends AnyRouter> = Parameters<
118
141
  TRouter['createCaller']
119
142
  >[0];
120
143
 
144
+ /**
145
+ * @internal
146
+ */
147
+ export type inferRouterMeta<TRouter extends AnyRouter> = TRouter extends Router<
148
+ any,
149
+ any,
150
+ infer TMeta,
151
+ any,
152
+ any,
153
+ any,
154
+ any
155
+ >
156
+ ? TMeta
157
+ : {};
158
+
121
159
  /**
122
160
  * @public
161
+ * @deprecated
123
162
  */
124
163
  export type AnyRouter<TContext = any> = Router<
125
164
  any,
@@ -127,11 +166,13 @@ export type AnyRouter<TContext = any> = Router<
127
166
  any,
128
167
  any,
129
168
  any,
169
+ any,
130
170
  any
131
171
  >;
132
172
 
133
173
  /**
134
174
  * @internal
175
+ * @deprecated
135
176
  */
136
177
  export type inferRouterError<TRouter extends AnyRouter> = ReturnType<
137
178
  TRouter['getErrorShape']
@@ -147,6 +188,7 @@ const PROCEDURE_DEFINITION_MAP: Record<
147
188
 
148
189
  /**
149
190
  * @internal
191
+ * @deprecated
150
192
  */
151
193
  export type ErrorFormatter<TContext, TShape extends TRPCErrorShape<number>> = ({
152
194
  error,
@@ -168,6 +210,7 @@ type DefaultErrorData = {
168
210
 
169
211
  /**
170
212
  * @internal
213
+ * @deprecated
171
214
  */
172
215
  export interface DefaultErrorShape
173
216
  extends TRPCErrorShape<TRPC_ERROR_CODE_NUMBER, DefaultErrorData> {
@@ -192,34 +235,32 @@ function safeObject<TObj1, TObj2>(obj1: TObj1, obj2: TObj2): TObj1 & TObj2;
192
235
  function safeObject(...args: unknown[]) {
193
236
  return Object.assign(Object.create(null), ...args);
194
237
  }
195
- const defaultFormatter: ErrorFormatter<any, any> = ({
196
- shape,
197
- }: {
198
- shape: DefaultErrorShape;
199
- }) => {
200
- return shape;
201
- };
202
- const defaultTransformer: CombinedDataTransformer = {
203
- input: { serialize: (obj) => obj, deserialize: (obj) => obj },
204
- output: { serialize: (obj) => obj, deserialize: (obj) => obj },
205
- };
206
-
207
238
  type SwapProcedureContext<
208
- TProcedure extends Procedure<any, any, any, any, any>,
239
+ TProcedure extends Procedure<any, any, any, any, any, any, any>,
209
240
  TNewContext,
210
241
  > = TProcedure extends Procedure<
211
242
  infer TInputContext,
212
243
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
213
244
  infer _TOldContext,
245
+ infer TMeta,
214
246
  infer TInput,
215
247
  infer TParsedInput,
216
- infer TOutput
248
+ infer TOutput,
249
+ infer TParsedOutput
217
250
  >
218
- ? Procedure<TInputContext, TNewContext, TInput, TParsedInput, TOutput>
251
+ ? Procedure<
252
+ TInputContext,
253
+ TNewContext,
254
+ TMeta,
255
+ TInput,
256
+ TParsedInput,
257
+ TOutput,
258
+ TParsedOutput
259
+ >
219
260
  : never;
220
261
 
221
262
  type SwapContext<
222
- TObj extends ProcedureRecord<any, any, any, any>,
263
+ TObj extends ProcedureRecord<any, any, any, any, any, any>,
223
264
  TNewContext,
224
265
  > = {
225
266
  [P in keyof TObj]: SwapProcedureContext<TObj[P], TNewContext>;
@@ -227,17 +268,38 @@ type SwapContext<
227
268
 
228
269
  /**
229
270
  * @internal The type signature of this class may change without warning.
271
+ * @deprecated
230
272
  */
231
273
  export class Router<
232
274
  TInputContext,
233
275
  TContext,
234
- TQueries extends ProcedureRecord<TInputContext, TContext>,
235
- TMutations extends ProcedureRecord<TInputContext, TContext>,
276
+ TMeta extends Record<string, any>,
277
+ TQueries extends ProcedureRecord<
278
+ TInputContext,
279
+ TContext,
280
+ any,
281
+ any,
282
+ any,
283
+ any,
284
+ any
285
+ >,
286
+ TMutations extends ProcedureRecord<
287
+ TInputContext,
288
+ TContext,
289
+ any,
290
+ any,
291
+ any,
292
+ any,
293
+ any
294
+ >,
236
295
  TSubscriptions extends ProcedureRecord<
237
296
  TInputContext,
238
297
  TContext,
239
298
  unknown,
240
- Subscription<unknown>
299
+ unknown,
300
+ Observable<unknown, unknown>,
301
+ unknown,
302
+ unknown
241
303
  >,
242
304
  TErrorShape extends TRPCErrorShape<number>,
243
305
  > {
@@ -245,7 +307,7 @@ export class Router<
245
307
  queries: TQueries;
246
308
  mutations: TMutations;
247
309
  subscriptions: TSubscriptions;
248
- middlewares: MiddlewareFunction<TInputContext, TContext>[];
310
+ middlewares: MiddlewareFunction<TInputContext, TContext, TMeta>[];
249
311
  errorFormatter: ErrorFormatter<TContext, TErrorShape>;
250
312
  transformer: CombinedDataTransformer;
251
313
  };
@@ -254,7 +316,7 @@ export class Router<
254
316
  queries?: TQueries;
255
317
  mutations?: TMutations;
256
318
  subscriptions?: TSubscriptions;
257
- middlewares?: MiddlewareFunction<TInputContext, TContext>[];
319
+ middlewares?: MiddlewareFunction<TInputContext, TContext, TMeta>[];
258
320
  errorFormatter?: ErrorFormatter<TContext, TErrorShape>;
259
321
  transformer?: CombinedDataTransformer;
260
322
  }) {
@@ -273,35 +335,46 @@ export class Router<
273
335
  TPrefix extends string,
274
336
  >(procedures: TProcedures, prefix: TPrefix): Prefixer<TProcedures, TPrefix> {
275
337
  const eps: ProcedureRecord = safeObject();
276
- for (const key in procedures) {
277
- eps[prefix + key] = procedures[key];
338
+ for (const [key, procedure] of Object.entries(procedures)) {
339
+ eps[prefix + key] = procedure;
278
340
  }
279
341
  return eps as any;
280
342
  }
281
343
 
282
- public query<TPath extends string, TInput, TParsedInput, TOutput>(
344
+ public query<
345
+ TPath extends string,
346
+ TInput,
347
+ TParsedInput,
348
+ TOutput,
349
+ TParsedOutput,
350
+ >(
283
351
  path: TPath,
284
352
  procedure: CreateProcedureWithInputOutputParser<
285
353
  TContext,
354
+ TMeta,
286
355
  TInput,
287
356
  TParsedInput,
288
- TOutput
357
+ TOutput,
358
+ TParsedOutput
289
359
  >,
290
360
  ): Router<
291
361
  TInputContext,
292
362
  TContext,
363
+ TMeta,
293
364
  TQueries &
294
365
  Record<TPath, inferProcedureFromOptions<TInputContext, typeof procedure>>,
295
366
  TMutations,
296
367
  TSubscriptions,
297
368
  TErrorShape
298
369
  >;
370
+
299
371
  public query<TPath extends string, TInput, TOutput>(
300
372
  path: TPath,
301
- procedure: CreateProcedureWithInput<TContext, TInput, TInput, TOutput>,
373
+ procedure: CreateProcedureWithInput<TContext, TMeta, TInput, TOutput>,
302
374
  ): Router<
303
375
  TInputContext,
304
376
  TContext,
377
+ TMeta,
305
378
  TQueries &
306
379
  Record<TPath, inferProcedureFromOptions<TInputContext, typeof procedure>>,
307
380
  TMutations,
@@ -309,12 +382,18 @@ export class Router<
309
382
  TErrorShape
310
383
  >;
311
384
 
312
- public query<TPath extends string, TOutput>(
385
+ public query<TPath extends string, TOutput, TParsedOutput>(
313
386
  path: TPath,
314
- procedure: CreateProcedureWithoutInput<TContext, TOutput>,
387
+ procedure: CreateProcedureWithoutInput<
388
+ TContext,
389
+ TMeta,
390
+ TOutput,
391
+ TParsedOutput
392
+ >,
315
393
  ): Router<
316
394
  TInputContext,
317
395
  TContext,
396
+ TMeta,
318
397
  TQueries &
319
398
  Record<TPath, inferProcedureFromOptions<TInputContext, typeof procedure>>,
320
399
  TMutations,
@@ -324,9 +403,9 @@ export class Router<
324
403
 
325
404
  query(
326
405
  path: string,
327
- procedure: CreateProcedureOptions<TContext, any, any, any>,
406
+ procedure: CreateProcedureOptions<TContext, TMeta, any, any, any, any>,
328
407
  ) {
329
- const router = new Router<TContext, TContext, any, {}, {}, any>({
408
+ const router = new Router<TContext, TContext, TMeta, any, {}, {}, any>({
330
409
  queries: safeObject({
331
410
  [path]: createProcedure(procedure),
332
411
  }),
@@ -335,29 +414,40 @@ export class Router<
335
414
  return this.merge(router);
336
415
  }
337
416
 
338
- public mutation<TPath extends string, TInput, TParsedInput, TOutput>(
417
+ public mutation<
418
+ TPath extends string,
419
+ TInput,
420
+ TParsedInput,
421
+ TOutput,
422
+ TParsedOutput,
423
+ >(
339
424
  path: TPath,
340
425
  procedure: CreateProcedureWithInputOutputParser<
341
426
  TContext,
427
+ TMeta,
342
428
  TInput,
343
429
  TParsedInput,
344
- TOutput
430
+ TOutput,
431
+ TParsedOutput
345
432
  >,
346
433
  ): Router<
347
434
  TInputContext,
348
435
  TContext,
436
+ TMeta,
349
437
  TQueries,
350
438
  TMutations &
351
439
  Record<TPath, inferProcedureFromOptions<TInputContext, typeof procedure>>,
352
440
  TSubscriptions,
353
441
  TErrorShape
354
442
  >;
443
+
355
444
  public mutation<TPath extends string, TInput, TOutput>(
356
445
  path: TPath,
357
- procedure: CreateProcedureWithInput<TContext, TInput, TInput, TOutput>,
446
+ procedure: CreateProcedureWithInput<TContext, TMeta, TInput, TOutput>,
358
447
  ): Router<
359
448
  TInputContext,
360
449
  TContext,
450
+ TMeta,
361
451
  TQueries,
362
452
  TMutations &
363
453
  Record<TPath, inferProcedureFromOptions<TInputContext, typeof procedure>>,
@@ -365,12 +455,18 @@ export class Router<
365
455
  TErrorShape
366
456
  >;
367
457
 
368
- public mutation<TPath extends string, TOutput>(
458
+ public mutation<TPath extends string, TOutput, TParsedOutput>(
369
459
  path: TPath,
370
- procedure: CreateProcedureWithoutInput<TContext, TOutput>,
460
+ procedure: CreateProcedureWithoutInput<
461
+ TContext,
462
+ TMeta,
463
+ TOutput,
464
+ TParsedOutput
465
+ >,
371
466
  ): Router<
372
467
  TInputContext,
373
468
  TContext,
469
+ TMeta,
374
470
  TQueries,
375
471
  TMutations &
376
472
  Record<TPath, inferProcedureFromOptions<TInputContext, typeof procedure>>,
@@ -380,9 +476,9 @@ export class Router<
380
476
 
381
477
  public mutation(
382
478
  path: string,
383
- procedure: CreateProcedureOptions<TContext, any, any, any>,
479
+ procedure: CreateProcedureOptions<TContext, TMeta, any, any, any, any>,
384
480
  ) {
385
- const router = new Router<TContext, TContext, {}, any, {}, any>({
481
+ const router = new Router<TContext, TContext, TMeta, {}, any, {}, any>({
386
482
  mutations: safeObject({
387
483
  [path]: createProcedure(procedure),
388
484
  }),
@@ -398,18 +494,24 @@ export class Router<
398
494
  TPath extends string,
399
495
  TInput,
400
496
  TParsedInput,
401
- TOutput extends Subscription<unknown>,
497
+ TOutput extends Observable<unknown, unknown>,
402
498
  >(
403
499
  path: TPath,
404
- procedure: CreateProcedureWithInputOutputParser<
405
- TContext,
406
- TInput,
407
- TParsedInput,
408
- TOutput
500
+ procedure: Omit<
501
+ CreateProcedureWithInputOutputParser<
502
+ TContext,
503
+ TMeta,
504
+ TInput,
505
+ TParsedInput,
506
+ TOutput,
507
+ unknown
508
+ >,
509
+ 'output'
409
510
  >,
410
511
  ): Router<
411
512
  TInputContext,
412
513
  TContext,
514
+ TMeta,
413
515
  TQueries,
414
516
  TMutations,
415
517
  TSubscriptions &
@@ -423,13 +525,17 @@ export class Router<
423
525
  public subscription<
424
526
  TPath extends string,
425
527
  TInput,
426
- TOutput extends Subscription<unknown>,
528
+ TOutput extends Observable<unknown, unknown>,
427
529
  >(
428
530
  path: TPath,
429
- procedure: CreateProcedureWithInput<TContext, TInput, TInput, TOutput>,
531
+ procedure: Omit<
532
+ CreateProcedureWithInput<TContext, TMeta, TInput, TOutput>,
533
+ 'output'
534
+ >,
430
535
  ): Router<
431
536
  TInputContext,
432
537
  TContext,
538
+ TMeta,
433
539
  TQueries,
434
540
  TMutations,
435
541
  TSubscriptions &
@@ -442,13 +548,17 @@ export class Router<
442
548
  */
443
549
  public subscription<
444
550
  TPath extends string,
445
- TOutput extends Subscription<unknown>,
551
+ TOutput extends Observable<unknown, unknown>,
446
552
  >(
447
553
  path: TPath,
448
- procedure: CreateProcedureWithoutInput<TContext, TOutput>,
554
+ procedure: Omit<
555
+ CreateProcedureWithoutInput<TContext, TMeta, TOutput, unknown>,
556
+ 'output'
557
+ >,
449
558
  ): Router<
450
559
  TInputContext,
451
560
  TContext,
561
+ TMeta,
452
562
  TQueries,
453
563
  TMutations,
454
564
  TSubscriptions &
@@ -458,9 +568,12 @@ export class Router<
458
568
 
459
569
  public subscription(
460
570
  path: string,
461
- procedure: CreateProcedureOptions<TContext, any, any, any>,
571
+ procedure: Omit<
572
+ CreateProcedureOptions<TContext, TMeta, any, any, any, any>,
573
+ 'output'
574
+ >,
462
575
  ) {
463
- const router = new Router<TContext, TContext, {}, {}, any, any>({
576
+ const router = new Router<TContext, TContext, TMeta, {}, {}, any, any>({
464
577
  subscriptions: safeObject({
465
578
  [path]: createProcedure(procedure),
466
579
  }),
@@ -473,11 +586,14 @@ export class Router<
473
586
  * Merge router with other router
474
587
  * @param router
475
588
  */
476
- public merge<TChildRouter extends Router<TContext, any, any, any, any, any>>(
589
+ public merge<
590
+ TChildRouter extends Router<TContext, any, TMeta, any, any, any, any>,
591
+ >(
477
592
  router: TChildRouter,
478
593
  ): Router<
479
594
  TInputContext,
480
595
  inferRouterContext<TChildRouter>,
596
+ TMeta,
481
597
  TQueries & TChildRouter['_def']['queries'],
482
598
  TMutations & TChildRouter['_def']['mutations'],
483
599
  TSubscriptions & TChildRouter['_def']['subscriptions'],
@@ -491,13 +607,14 @@ export class Router<
491
607
  */
492
608
  public merge<
493
609
  TPath extends string,
494
- TChildRouter extends Router<TContext, any, any, any, any, any>,
610
+ TChildRouter extends Router<TContext, any, TMeta, any, any, any, any>,
495
611
  >(
496
612
  prefix: TPath,
497
613
  router: TChildRouter,
498
614
  ): Router<
499
615
  TInputContext,
500
616
  inferRouterContext<TChildRouter>,
617
+ TMeta,
501
618
  TQueries & Prefixer<TChildRouter['_def']['queries'], `${TPath}`>,
502
619
  TMutations & Prefixer<TChildRouter['_def']['mutations'], `${TPath}`>,
503
620
  TSubscriptions &
@@ -539,8 +656,7 @@ export class Router<
539
656
 
540
657
  const mergeProcedures = (defs: ProcedureRecord) => {
541
658
  const newDefs = safeObject() as typeof defs;
542
- for (const key in defs) {
543
- const procedure = defs[key];
659
+ for (const [key, procedure] of Object.entries(defs)) {
544
660
  const newProcedure = procedure.inheritMiddlewares(
545
661
  this._def.middlewares,
546
662
  );
@@ -550,7 +666,7 @@ export class Router<
550
666
  return Router.prefixProcedures(newDefs, prefix);
551
667
  };
552
668
 
553
- return new Router<TInputContext, any, any, any, any, TErrorShape>({
669
+ return new Router<TInputContext, any, TMeta, any, any, any, TErrorShape>({
554
670
  ...this._def,
555
671
  queries: safeObject(
556
672
  this._def.queries,
@@ -577,7 +693,7 @@ export class Router<
577
693
  const defTarget = PROCEDURE_DEFINITION_MAP[type];
578
694
  const defs = this._def[defTarget];
579
695
  const procedure = defs[path] as
580
- | Procedure<TInputContext, TContext, any, any, any>
696
+ | Procedure<TInputContext, TContext, TMeta, any, any, any, any>
581
697
  | undefined;
582
698
 
583
699
  if (!procedure) {
@@ -628,10 +744,11 @@ export class Router<
628
744
  * @link https://trpc.io/docs/middlewares
629
745
  */
630
746
  public middleware<TNewContext>(
631
- middleware: MiddlewareFunction<TContext, TNewContext>,
747
+ middleware: MiddlewareFunction<TContext, TNewContext, TMeta>,
632
748
  ): Router<
633
749
  TInputContext,
634
750
  TNewContext,
751
+ TMeta,
635
752
  SwapContext<TQueries, TNewContext>,
636
753
  SwapContext<TMutations, TNewContext>,
637
754
  SwapContext<TSubscriptions, TNewContext>,
@@ -658,6 +775,7 @@ export class Router<
658
775
  return new Router<
659
776
  TInputContext,
660
777
  TContext,
778
+ TMeta,
661
779
  TQueries,
662
780
  TMutations,
663
781
  TSubscriptions,
@@ -712,6 +830,7 @@ export class Router<
712
830
  return new Router<
713
831
  TInputContext,
714
832
  TContext,
833
+ TMeta,
715
834
  TQueries,
716
835
  TMutations,
717
836
  TSubscriptions,
@@ -731,40 +850,34 @@ export class Router<
731
850
  public flat(): Router<
732
851
  TInputContext,
733
852
  TContext,
734
- flatten<{}, TQueries>,
735
- flatten<{}, TMutations>,
736
- flatten<{}, TSubscriptions>,
853
+ TMeta,
854
+ FlatOverwrite<{}, TQueries>,
855
+ FlatOverwrite<{}, TMutations>,
856
+ FlatOverwrite<{}, TSubscriptions>,
737
857
  TErrorShape
738
858
  > {
739
859
  return this as any;
740
860
  }
861
+
862
+ /**
863
+ * Interop mode for v9.x -> v10.x
864
+ */
865
+ public interop(): MigrateRouter<
866
+ TInputContext,
867
+ TContext,
868
+ TMeta,
869
+ TQueries,
870
+ TMutations,
871
+ TSubscriptions,
872
+ TErrorShape
873
+ > {
874
+ return migrateRouter(this);
875
+ }
741
876
  }
742
877
 
743
878
  /**
744
- * Subclass of `VNextRouter` with `TInputContext` and `TContext` set to the same type, for backcompat.
745
- *
746
879
  * @deprecated
747
880
  */
748
- export class LegacyRouter<
749
- TContext,
750
- TQueries extends ProcedureRecord<TContext, TContext>,
751
- TMutations extends ProcedureRecord<TContext, TContext>,
752
- TSubscriptions extends ProcedureRecord<
753
- TContext,
754
- TContext,
755
- unknown,
756
- Subscription<unknown>
757
- >,
758
- TErrorShape extends TRPCErrorShape<number>,
759
- > extends Router<
760
- TContext,
761
- TContext,
762
- TQueries,
763
- TMutations,
764
- TSubscriptions,
765
- TErrorShape
766
- > {}
767
-
768
- export function router<TContext>() {
769
- return new Router<TContext, TContext, {}, {}, {}, DefaultErrorShape>();
881
+ export function router<TContext, TMeta extends Record<string, any> = {}>() {
882
+ return new Router<TContext, TContext, TMeta, {}, {}, {}, DefaultErrorShape>();
770
883
  }