@trpc/server 10.0.0-alpha.4 → 10.0.0-alpha.40

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