@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
@@ -0,0 +1,386 @@
1
+ import { AnyRouter, AnyRouterDef, Router } from "../../router";
2
+ import { mergeRouters } from '../mergeRouters';
3
+
4
+ export function mergeRoutersGeneric<
5
+ RP0 extends AnyRouterDef
6
+ >(
7
+ router0: Router<RP0>
8
+ ): Router<{
9
+ router: true;
10
+ _ctx: RP0['_ctx'];
11
+ _errorShape: RP0['_errorShape'];
12
+ _meta: RP0['_meta'];
13
+ transformer: RP0['transformer'];
14
+ errorFormatter: RP0['errorFormatter'];
15
+ queries: RP0['queries'];
16
+ mutations: RP0['mutations'];
17
+ subscriptions: RP0['subscriptions'];
18
+ procedures: RP0['procedures'];
19
+ routers: RP0['routers'];
20
+ record: RP0['record'];
21
+ }> & RP0['record'];
22
+
23
+ export function mergeRoutersGeneric<
24
+ RP0 extends AnyRouterDef, RP1 extends AnyRouterDef
25
+ >(
26
+ router0: Router<RP0>, router1: Router<RP1>
27
+ ): Router<{
28
+ router: true;
29
+ _ctx: RP0['_ctx'];
30
+ _errorShape: RP0['_errorShape'];
31
+ _meta: RP0['_meta'];
32
+ transformer: RP0['transformer'];
33
+ errorFormatter: RP0['errorFormatter'];
34
+ queries: RP0['queries'] & RP1['queries'];
35
+ mutations: RP0['mutations'] & RP1['mutations'];
36
+ subscriptions: RP0['subscriptions'] & RP1['subscriptions'];
37
+ procedures: RP0['procedures'] & RP1['procedures'];
38
+ routers: RP0['routers'] & RP1['routers'];
39
+ record: RP0['record'] & RP1['record'];
40
+ }> & RP0['record'] & RP1['record'];
41
+
42
+ export function mergeRoutersGeneric<
43
+ RP0 extends AnyRouterDef, RP1 extends AnyRouterDef, RP2 extends AnyRouterDef
44
+ >(
45
+ router0: Router<RP0>, router1: Router<RP1>, router2: Router<RP2>
46
+ ): Router<{
47
+ router: true;
48
+ _ctx: RP0['_ctx'];
49
+ _errorShape: RP0['_errorShape'];
50
+ _meta: RP0['_meta'];
51
+ transformer: RP0['transformer'];
52
+ errorFormatter: RP0['errorFormatter'];
53
+ queries: RP0['queries'] & RP1['queries'] & RP2['queries'];
54
+ mutations: RP0['mutations'] & RP1['mutations'] & RP2['mutations'];
55
+ subscriptions: RP0['subscriptions'] & RP1['subscriptions'] & RP2['subscriptions'];
56
+ procedures: RP0['procedures'] & RP1['procedures'] & RP2['procedures'];
57
+ routers: RP0['routers'] & RP1['routers'] & RP2['routers'];
58
+ record: RP0['record'] & RP1['record'] & RP2['record'];
59
+ }> & RP0['record'] & RP1['record'] & RP2['record'];
60
+
61
+ export function mergeRoutersGeneric<
62
+ RP0 extends AnyRouterDef, RP1 extends AnyRouterDef, RP2 extends AnyRouterDef, RP3 extends AnyRouterDef
63
+ >(
64
+ router0: Router<RP0>, router1: Router<RP1>, router2: Router<RP2>, router3: Router<RP3>
65
+ ): Router<{
66
+ router: true;
67
+ _ctx: RP0['_ctx'];
68
+ _errorShape: RP0['_errorShape'];
69
+ _meta: RP0['_meta'];
70
+ transformer: RP0['transformer'];
71
+ errorFormatter: RP0['errorFormatter'];
72
+ queries: RP0['queries'] & RP1['queries'] & RP2['queries'] & RP3['queries'];
73
+ mutations: RP0['mutations'] & RP1['mutations'] & RP2['mutations'] & RP3['mutations'];
74
+ subscriptions: RP0['subscriptions'] & RP1['subscriptions'] & RP2['subscriptions'] & RP3['subscriptions'];
75
+ procedures: RP0['procedures'] & RP1['procedures'] & RP2['procedures'] & RP3['procedures'];
76
+ routers: RP0['routers'] & RP1['routers'] & RP2['routers'] & RP3['routers'];
77
+ record: RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'];
78
+ }> & RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'];
79
+
80
+ export function mergeRoutersGeneric<
81
+ RP0 extends AnyRouterDef, RP1 extends AnyRouterDef, RP2 extends AnyRouterDef, RP3 extends AnyRouterDef, RP4 extends AnyRouterDef
82
+ >(
83
+ router0: Router<RP0>, router1: Router<RP1>, router2: Router<RP2>, router3: Router<RP3>, router4: Router<RP4>
84
+ ): Router<{
85
+ router: true;
86
+ _ctx: RP0['_ctx'];
87
+ _errorShape: RP0['_errorShape'];
88
+ _meta: RP0['_meta'];
89
+ transformer: RP0['transformer'];
90
+ errorFormatter: RP0['errorFormatter'];
91
+ queries: RP0['queries'] & RP1['queries'] & RP2['queries'] & RP3['queries'] & RP4['queries'];
92
+ mutations: RP0['mutations'] & RP1['mutations'] & RP2['mutations'] & RP3['mutations'] & RP4['mutations'];
93
+ subscriptions: RP0['subscriptions'] & RP1['subscriptions'] & RP2['subscriptions'] & RP3['subscriptions'] & RP4['subscriptions'];
94
+ procedures: RP0['procedures'] & RP1['procedures'] & RP2['procedures'] & RP3['procedures'] & RP4['procedures'];
95
+ routers: RP0['routers'] & RP1['routers'] & RP2['routers'] & RP3['routers'] & RP4['routers'];
96
+ record: RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'];
97
+ }> & RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'];
98
+
99
+ export function mergeRoutersGeneric<
100
+ RP0 extends AnyRouterDef, RP1 extends AnyRouterDef, RP2 extends AnyRouterDef, RP3 extends AnyRouterDef, RP4 extends AnyRouterDef, RP5 extends AnyRouterDef
101
+ >(
102
+ router0: Router<RP0>, router1: Router<RP1>, router2: Router<RP2>, router3: Router<RP3>, router4: Router<RP4>, router5: Router<RP5>
103
+ ): Router<{
104
+ router: true;
105
+ _ctx: RP0['_ctx'];
106
+ _errorShape: RP0['_errorShape'];
107
+ _meta: RP0['_meta'];
108
+ transformer: RP0['transformer'];
109
+ errorFormatter: RP0['errorFormatter'];
110
+ queries: RP0['queries'] & RP1['queries'] & RP2['queries'] & RP3['queries'] & RP4['queries'] & RP5['queries'];
111
+ mutations: RP0['mutations'] & RP1['mutations'] & RP2['mutations'] & RP3['mutations'] & RP4['mutations'] & RP5['mutations'];
112
+ subscriptions: RP0['subscriptions'] & RP1['subscriptions'] & RP2['subscriptions'] & RP3['subscriptions'] & RP4['subscriptions'] & RP5['subscriptions'];
113
+ procedures: RP0['procedures'] & RP1['procedures'] & RP2['procedures'] & RP3['procedures'] & RP4['procedures'] & RP5['procedures'];
114
+ routers: RP0['routers'] & RP1['routers'] & RP2['routers'] & RP3['routers'] & RP4['routers'] & RP5['routers'];
115
+ record: RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'] & RP5['record'];
116
+ }> & RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'] & RP5['record'];
117
+
118
+ export function mergeRoutersGeneric<
119
+ RP0 extends AnyRouterDef, RP1 extends AnyRouterDef, RP2 extends AnyRouterDef, RP3 extends AnyRouterDef, RP4 extends AnyRouterDef, RP5 extends AnyRouterDef, RP6 extends AnyRouterDef
120
+ >(
121
+ router0: Router<RP0>, router1: Router<RP1>, router2: Router<RP2>, router3: Router<RP3>, router4: Router<RP4>, router5: Router<RP5>, router6: Router<RP6>
122
+ ): Router<{
123
+ router: true;
124
+ _ctx: RP0['_ctx'];
125
+ _errorShape: RP0['_errorShape'];
126
+ _meta: RP0['_meta'];
127
+ transformer: RP0['transformer'];
128
+ errorFormatter: RP0['errorFormatter'];
129
+ queries: RP0['queries'] & RP1['queries'] & RP2['queries'] & RP3['queries'] & RP4['queries'] & RP5['queries'] & RP6['queries'];
130
+ mutations: RP0['mutations'] & RP1['mutations'] & RP2['mutations'] & RP3['mutations'] & RP4['mutations'] & RP5['mutations'] & RP6['mutations'];
131
+ subscriptions: RP0['subscriptions'] & RP1['subscriptions'] & RP2['subscriptions'] & RP3['subscriptions'] & RP4['subscriptions'] & RP5['subscriptions'] & RP6['subscriptions'];
132
+ procedures: RP0['procedures'] & RP1['procedures'] & RP2['procedures'] & RP3['procedures'] & RP4['procedures'] & RP5['procedures'] & RP6['procedures'];
133
+ routers: RP0['routers'] & RP1['routers'] & RP2['routers'] & RP3['routers'] & RP4['routers'] & RP5['routers'] & RP6['routers'];
134
+ record: RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'] & RP5['record'] & RP6['record'];
135
+ }> & RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'] & RP5['record'] & RP6['record'];
136
+
137
+ export function mergeRoutersGeneric<
138
+ RP0 extends AnyRouterDef, RP1 extends AnyRouterDef, RP2 extends AnyRouterDef, RP3 extends AnyRouterDef, RP4 extends AnyRouterDef, RP5 extends AnyRouterDef, RP6 extends AnyRouterDef, RP7 extends AnyRouterDef
139
+ >(
140
+ router0: Router<RP0>, router1: Router<RP1>, router2: Router<RP2>, router3: Router<RP3>, router4: Router<RP4>, router5: Router<RP5>, router6: Router<RP6>, router7: Router<RP7>
141
+ ): Router<{
142
+ router: true;
143
+ _ctx: RP0['_ctx'];
144
+ _errorShape: RP0['_errorShape'];
145
+ _meta: RP0['_meta'];
146
+ transformer: RP0['transformer'];
147
+ errorFormatter: RP0['errorFormatter'];
148
+ queries: RP0['queries'] & RP1['queries'] & RP2['queries'] & RP3['queries'] & RP4['queries'] & RP5['queries'] & RP6['queries'] & RP7['queries'];
149
+ mutations: RP0['mutations'] & RP1['mutations'] & RP2['mutations'] & RP3['mutations'] & RP4['mutations'] & RP5['mutations'] & RP6['mutations'] & RP7['mutations'];
150
+ subscriptions: RP0['subscriptions'] & RP1['subscriptions'] & RP2['subscriptions'] & RP3['subscriptions'] & RP4['subscriptions'] & RP5['subscriptions'] & RP6['subscriptions'] & RP7['subscriptions'];
151
+ procedures: RP0['procedures'] & RP1['procedures'] & RP2['procedures'] & RP3['procedures'] & RP4['procedures'] & RP5['procedures'] & RP6['procedures'] & RP7['procedures'];
152
+ routers: RP0['routers'] & RP1['routers'] & RP2['routers'] & RP3['routers'] & RP4['routers'] & RP5['routers'] & RP6['routers'] & RP7['routers'];
153
+ record: RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'] & RP5['record'] & RP6['record'] & RP7['record'];
154
+ }> & RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'] & RP5['record'] & RP6['record'] & RP7['record'];
155
+
156
+ export function mergeRoutersGeneric<
157
+ RP0 extends AnyRouterDef, RP1 extends AnyRouterDef, RP2 extends AnyRouterDef, RP3 extends AnyRouterDef, RP4 extends AnyRouterDef, RP5 extends AnyRouterDef, RP6 extends AnyRouterDef, RP7 extends AnyRouterDef, RP8 extends AnyRouterDef
158
+ >(
159
+ router0: Router<RP0>, router1: Router<RP1>, router2: Router<RP2>, router3: Router<RP3>, router4: Router<RP4>, router5: Router<RP5>, router6: Router<RP6>, router7: Router<RP7>, router8: Router<RP8>
160
+ ): Router<{
161
+ router: true;
162
+ _ctx: RP0['_ctx'];
163
+ _errorShape: RP0['_errorShape'];
164
+ _meta: RP0['_meta'];
165
+ transformer: RP0['transformer'];
166
+ errorFormatter: RP0['errorFormatter'];
167
+ queries: RP0['queries'] & RP1['queries'] & RP2['queries'] & RP3['queries'] & RP4['queries'] & RP5['queries'] & RP6['queries'] & RP7['queries'] & RP8['queries'];
168
+ mutations: RP0['mutations'] & RP1['mutations'] & RP2['mutations'] & RP3['mutations'] & RP4['mutations'] & RP5['mutations'] & RP6['mutations'] & RP7['mutations'] & RP8['mutations'];
169
+ subscriptions: RP0['subscriptions'] & RP1['subscriptions'] & RP2['subscriptions'] & RP3['subscriptions'] & RP4['subscriptions'] & RP5['subscriptions'] & RP6['subscriptions'] & RP7['subscriptions'] & RP8['subscriptions'];
170
+ procedures: RP0['procedures'] & RP1['procedures'] & RP2['procedures'] & RP3['procedures'] & RP4['procedures'] & RP5['procedures'] & RP6['procedures'] & RP7['procedures'] & RP8['procedures'];
171
+ routers: RP0['routers'] & RP1['routers'] & RP2['routers'] & RP3['routers'] & RP4['routers'] & RP5['routers'] & RP6['routers'] & RP7['routers'] & RP8['routers'];
172
+ record: RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'] & RP5['record'] & RP6['record'] & RP7['record'] & RP8['record'];
173
+ }> & RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'] & RP5['record'] & RP6['record'] & RP7['record'] & RP8['record'];
174
+
175
+ export function mergeRoutersGeneric<
176
+ RP0 extends AnyRouterDef, RP1 extends AnyRouterDef, RP2 extends AnyRouterDef, RP3 extends AnyRouterDef, RP4 extends AnyRouterDef, RP5 extends AnyRouterDef, RP6 extends AnyRouterDef, RP7 extends AnyRouterDef, RP8 extends AnyRouterDef, RP9 extends AnyRouterDef
177
+ >(
178
+ router0: Router<RP0>, router1: Router<RP1>, router2: Router<RP2>, router3: Router<RP3>, router4: Router<RP4>, router5: Router<RP5>, router6: Router<RP6>, router7: Router<RP7>, router8: Router<RP8>, router9: Router<RP9>
179
+ ): Router<{
180
+ router: true;
181
+ _ctx: RP0['_ctx'];
182
+ _errorShape: RP0['_errorShape'];
183
+ _meta: RP0['_meta'];
184
+ transformer: RP0['transformer'];
185
+ errorFormatter: RP0['errorFormatter'];
186
+ queries: RP0['queries'] & RP1['queries'] & RP2['queries'] & RP3['queries'] & RP4['queries'] & RP5['queries'] & RP6['queries'] & RP7['queries'] & RP8['queries'] & RP9['queries'];
187
+ mutations: RP0['mutations'] & RP1['mutations'] & RP2['mutations'] & RP3['mutations'] & RP4['mutations'] & RP5['mutations'] & RP6['mutations'] & RP7['mutations'] & RP8['mutations'] & RP9['mutations'];
188
+ subscriptions: RP0['subscriptions'] & RP1['subscriptions'] & RP2['subscriptions'] & RP3['subscriptions'] & RP4['subscriptions'] & RP5['subscriptions'] & RP6['subscriptions'] & RP7['subscriptions'] & RP8['subscriptions'] & RP9['subscriptions'];
189
+ procedures: RP0['procedures'] & RP1['procedures'] & RP2['procedures'] & RP3['procedures'] & RP4['procedures'] & RP5['procedures'] & RP6['procedures'] & RP7['procedures'] & RP8['procedures'] & RP9['procedures'];
190
+ routers: RP0['routers'] & RP1['routers'] & RP2['routers'] & RP3['routers'] & RP4['routers'] & RP5['routers'] & RP6['routers'] & RP7['routers'] & RP8['routers'] & RP9['routers'];
191
+ record: RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'] & RP5['record'] & RP6['record'] & RP7['record'] & RP8['record'] & RP9['record'];
192
+ }> & RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'] & RP5['record'] & RP6['record'] & RP7['record'] & RP8['record'] & RP9['record'];
193
+
194
+ export function mergeRoutersGeneric<
195
+ RP0 extends AnyRouterDef, RP1 extends AnyRouterDef, RP2 extends AnyRouterDef, RP3 extends AnyRouterDef, RP4 extends AnyRouterDef, RP5 extends AnyRouterDef, RP6 extends AnyRouterDef, RP7 extends AnyRouterDef, RP8 extends AnyRouterDef, RP9 extends AnyRouterDef, RP10 extends AnyRouterDef
196
+ >(
197
+ router0: Router<RP0>, router1: Router<RP1>, router2: Router<RP2>, router3: Router<RP3>, router4: Router<RP4>, router5: Router<RP5>, router6: Router<RP6>, router7: Router<RP7>, router8: Router<RP8>, router9: Router<RP9>, router10: Router<RP10>
198
+ ): Router<{
199
+ router: true;
200
+ _ctx: RP0['_ctx'];
201
+ _errorShape: RP0['_errorShape'];
202
+ _meta: RP0['_meta'];
203
+ transformer: RP0['transformer'];
204
+ errorFormatter: RP0['errorFormatter'];
205
+ queries: RP0['queries'] & RP1['queries'] & RP2['queries'] & RP3['queries'] & RP4['queries'] & RP5['queries'] & RP6['queries'] & RP7['queries'] & RP8['queries'] & RP9['queries'] & RP10['queries'];
206
+ mutations: RP0['mutations'] & RP1['mutations'] & RP2['mutations'] & RP3['mutations'] & RP4['mutations'] & RP5['mutations'] & RP6['mutations'] & RP7['mutations'] & RP8['mutations'] & RP9['mutations'] & RP10['mutations'];
207
+ subscriptions: RP0['subscriptions'] & RP1['subscriptions'] & RP2['subscriptions'] & RP3['subscriptions'] & RP4['subscriptions'] & RP5['subscriptions'] & RP6['subscriptions'] & RP7['subscriptions'] & RP8['subscriptions'] & RP9['subscriptions'] & RP10['subscriptions'];
208
+ procedures: RP0['procedures'] & RP1['procedures'] & RP2['procedures'] & RP3['procedures'] & RP4['procedures'] & RP5['procedures'] & RP6['procedures'] & RP7['procedures'] & RP8['procedures'] & RP9['procedures'] & RP10['procedures'];
209
+ routers: RP0['routers'] & RP1['routers'] & RP2['routers'] & RP3['routers'] & RP4['routers'] & RP5['routers'] & RP6['routers'] & RP7['routers'] & RP8['routers'] & RP9['routers'] & RP10['routers'];
210
+ record: RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'] & RP5['record'] & RP6['record'] & RP7['record'] & RP8['record'] & RP9['record'] & RP10['record'];
211
+ }> & RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'] & RP5['record'] & RP6['record'] & RP7['record'] & RP8['record'] & RP9['record'] & RP10['record'];
212
+
213
+ export function mergeRoutersGeneric<
214
+ RP0 extends AnyRouterDef, RP1 extends AnyRouterDef, RP2 extends AnyRouterDef, RP3 extends AnyRouterDef, RP4 extends AnyRouterDef, RP5 extends AnyRouterDef, RP6 extends AnyRouterDef, RP7 extends AnyRouterDef, RP8 extends AnyRouterDef, RP9 extends AnyRouterDef, RP10 extends AnyRouterDef, RP11 extends AnyRouterDef
215
+ >(
216
+ router0: Router<RP0>, router1: Router<RP1>, router2: Router<RP2>, router3: Router<RP3>, router4: Router<RP4>, router5: Router<RP5>, router6: Router<RP6>, router7: Router<RP7>, router8: Router<RP8>, router9: Router<RP9>, router10: Router<RP10>, router11: Router<RP11>
217
+ ): Router<{
218
+ router: true;
219
+ _ctx: RP0['_ctx'];
220
+ _errorShape: RP0['_errorShape'];
221
+ _meta: RP0['_meta'];
222
+ transformer: RP0['transformer'];
223
+ errorFormatter: RP0['errorFormatter'];
224
+ queries: RP0['queries'] & RP1['queries'] & RP2['queries'] & RP3['queries'] & RP4['queries'] & RP5['queries'] & RP6['queries'] & RP7['queries'] & RP8['queries'] & RP9['queries'] & RP10['queries'] & RP11['queries'];
225
+ mutations: RP0['mutations'] & RP1['mutations'] & RP2['mutations'] & RP3['mutations'] & RP4['mutations'] & RP5['mutations'] & RP6['mutations'] & RP7['mutations'] & RP8['mutations'] & RP9['mutations'] & RP10['mutations'] & RP11['mutations'];
226
+ subscriptions: RP0['subscriptions'] & RP1['subscriptions'] & RP2['subscriptions'] & RP3['subscriptions'] & RP4['subscriptions'] & RP5['subscriptions'] & RP6['subscriptions'] & RP7['subscriptions'] & RP8['subscriptions'] & RP9['subscriptions'] & RP10['subscriptions'] & RP11['subscriptions'];
227
+ procedures: RP0['procedures'] & RP1['procedures'] & RP2['procedures'] & RP3['procedures'] & RP4['procedures'] & RP5['procedures'] & RP6['procedures'] & RP7['procedures'] & RP8['procedures'] & RP9['procedures'] & RP10['procedures'] & RP11['procedures'];
228
+ routers: RP0['routers'] & RP1['routers'] & RP2['routers'] & RP3['routers'] & RP4['routers'] & RP5['routers'] & RP6['routers'] & RP7['routers'] & RP8['routers'] & RP9['routers'] & RP10['routers'] & RP11['routers'];
229
+ record: RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'] & RP5['record'] & RP6['record'] & RP7['record'] & RP8['record'] & RP9['record'] & RP10['record'] & RP11['record'];
230
+ }> & RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'] & RP5['record'] & RP6['record'] & RP7['record'] & RP8['record'] & RP9['record'] & RP10['record'] & RP11['record'];
231
+
232
+ export function mergeRoutersGeneric<
233
+ RP0 extends AnyRouterDef, RP1 extends AnyRouterDef, RP2 extends AnyRouterDef, RP3 extends AnyRouterDef, RP4 extends AnyRouterDef, RP5 extends AnyRouterDef, RP6 extends AnyRouterDef, RP7 extends AnyRouterDef, RP8 extends AnyRouterDef, RP9 extends AnyRouterDef, RP10 extends AnyRouterDef, RP11 extends AnyRouterDef, RP12 extends AnyRouterDef
234
+ >(
235
+ router0: Router<RP0>, router1: Router<RP1>, router2: Router<RP2>, router3: Router<RP3>, router4: Router<RP4>, router5: Router<RP5>, router6: Router<RP6>, router7: Router<RP7>, router8: Router<RP8>, router9: Router<RP9>, router10: Router<RP10>, router11: Router<RP11>, router12: Router<RP12>
236
+ ): Router<{
237
+ router: true;
238
+ _ctx: RP0['_ctx'];
239
+ _errorShape: RP0['_errorShape'];
240
+ _meta: RP0['_meta'];
241
+ transformer: RP0['transformer'];
242
+ errorFormatter: RP0['errorFormatter'];
243
+ queries: RP0['queries'] & RP1['queries'] & RP2['queries'] & RP3['queries'] & RP4['queries'] & RP5['queries'] & RP6['queries'] & RP7['queries'] & RP8['queries'] & RP9['queries'] & RP10['queries'] & RP11['queries'] & RP12['queries'];
244
+ mutations: RP0['mutations'] & RP1['mutations'] & RP2['mutations'] & RP3['mutations'] & RP4['mutations'] & RP5['mutations'] & RP6['mutations'] & RP7['mutations'] & RP8['mutations'] & RP9['mutations'] & RP10['mutations'] & RP11['mutations'] & RP12['mutations'];
245
+ subscriptions: RP0['subscriptions'] & RP1['subscriptions'] & RP2['subscriptions'] & RP3['subscriptions'] & RP4['subscriptions'] & RP5['subscriptions'] & RP6['subscriptions'] & RP7['subscriptions'] & RP8['subscriptions'] & RP9['subscriptions'] & RP10['subscriptions'] & RP11['subscriptions'] & RP12['subscriptions'];
246
+ procedures: RP0['procedures'] & RP1['procedures'] & RP2['procedures'] & RP3['procedures'] & RP4['procedures'] & RP5['procedures'] & RP6['procedures'] & RP7['procedures'] & RP8['procedures'] & RP9['procedures'] & RP10['procedures'] & RP11['procedures'] & RP12['procedures'];
247
+ routers: RP0['routers'] & RP1['routers'] & RP2['routers'] & RP3['routers'] & RP4['routers'] & RP5['routers'] & RP6['routers'] & RP7['routers'] & RP8['routers'] & RP9['routers'] & RP10['routers'] & RP11['routers'] & RP12['routers'];
248
+ record: RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'] & RP5['record'] & RP6['record'] & RP7['record'] & RP8['record'] & RP9['record'] & RP10['record'] & RP11['record'] & RP12['record'];
249
+ }> & RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'] & RP5['record'] & RP6['record'] & RP7['record'] & RP8['record'] & RP9['record'] & RP10['record'] & RP11['record'] & RP12['record'];
250
+
251
+ export function mergeRoutersGeneric<
252
+ RP0 extends AnyRouterDef, RP1 extends AnyRouterDef, RP2 extends AnyRouterDef, RP3 extends AnyRouterDef, RP4 extends AnyRouterDef, RP5 extends AnyRouterDef, RP6 extends AnyRouterDef, RP7 extends AnyRouterDef, RP8 extends AnyRouterDef, RP9 extends AnyRouterDef, RP10 extends AnyRouterDef, RP11 extends AnyRouterDef, RP12 extends AnyRouterDef, RP13 extends AnyRouterDef
253
+ >(
254
+ router0: Router<RP0>, router1: Router<RP1>, router2: Router<RP2>, router3: Router<RP3>, router4: Router<RP4>, router5: Router<RP5>, router6: Router<RP6>, router7: Router<RP7>, router8: Router<RP8>, router9: Router<RP9>, router10: Router<RP10>, router11: Router<RP11>, router12: Router<RP12>, router13: Router<RP13>
255
+ ): Router<{
256
+ router: true;
257
+ _ctx: RP0['_ctx'];
258
+ _errorShape: RP0['_errorShape'];
259
+ _meta: RP0['_meta'];
260
+ transformer: RP0['transformer'];
261
+ errorFormatter: RP0['errorFormatter'];
262
+ queries: RP0['queries'] & RP1['queries'] & RP2['queries'] & RP3['queries'] & RP4['queries'] & RP5['queries'] & RP6['queries'] & RP7['queries'] & RP8['queries'] & RP9['queries'] & RP10['queries'] & RP11['queries'] & RP12['queries'] & RP13['queries'];
263
+ mutations: RP0['mutations'] & RP1['mutations'] & RP2['mutations'] & RP3['mutations'] & RP4['mutations'] & RP5['mutations'] & RP6['mutations'] & RP7['mutations'] & RP8['mutations'] & RP9['mutations'] & RP10['mutations'] & RP11['mutations'] & RP12['mutations'] & RP13['mutations'];
264
+ subscriptions: RP0['subscriptions'] & RP1['subscriptions'] & RP2['subscriptions'] & RP3['subscriptions'] & RP4['subscriptions'] & RP5['subscriptions'] & RP6['subscriptions'] & RP7['subscriptions'] & RP8['subscriptions'] & RP9['subscriptions'] & RP10['subscriptions'] & RP11['subscriptions'] & RP12['subscriptions'] & RP13['subscriptions'];
265
+ procedures: RP0['procedures'] & RP1['procedures'] & RP2['procedures'] & RP3['procedures'] & RP4['procedures'] & RP5['procedures'] & RP6['procedures'] & RP7['procedures'] & RP8['procedures'] & RP9['procedures'] & RP10['procedures'] & RP11['procedures'] & RP12['procedures'] & RP13['procedures'];
266
+ routers: RP0['routers'] & RP1['routers'] & RP2['routers'] & RP3['routers'] & RP4['routers'] & RP5['routers'] & RP6['routers'] & RP7['routers'] & RP8['routers'] & RP9['routers'] & RP10['routers'] & RP11['routers'] & RP12['routers'] & RP13['routers'];
267
+ record: RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'] & RP5['record'] & RP6['record'] & RP7['record'] & RP8['record'] & RP9['record'] & RP10['record'] & RP11['record'] & RP12['record'] & RP13['record'];
268
+ }> & RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'] & RP5['record'] & RP6['record'] & RP7['record'] & RP8['record'] & RP9['record'] & RP10['record'] & RP11['record'] & RP12['record'] & RP13['record'];
269
+
270
+ export function mergeRoutersGeneric<
271
+ RP0 extends AnyRouterDef, RP1 extends AnyRouterDef, RP2 extends AnyRouterDef, RP3 extends AnyRouterDef, RP4 extends AnyRouterDef, RP5 extends AnyRouterDef, RP6 extends AnyRouterDef, RP7 extends AnyRouterDef, RP8 extends AnyRouterDef, RP9 extends AnyRouterDef, RP10 extends AnyRouterDef, RP11 extends AnyRouterDef, RP12 extends AnyRouterDef, RP13 extends AnyRouterDef, RP14 extends AnyRouterDef
272
+ >(
273
+ router0: Router<RP0>, router1: Router<RP1>, router2: Router<RP2>, router3: Router<RP3>, router4: Router<RP4>, router5: Router<RP5>, router6: Router<RP6>, router7: Router<RP7>, router8: Router<RP8>, router9: Router<RP9>, router10: Router<RP10>, router11: Router<RP11>, router12: Router<RP12>, router13: Router<RP13>, router14: Router<RP14>
274
+ ): Router<{
275
+ router: true;
276
+ _ctx: RP0['_ctx'];
277
+ _errorShape: RP0['_errorShape'];
278
+ _meta: RP0['_meta'];
279
+ transformer: RP0['transformer'];
280
+ errorFormatter: RP0['errorFormatter'];
281
+ queries: RP0['queries'] & RP1['queries'] & RP2['queries'] & RP3['queries'] & RP4['queries'] & RP5['queries'] & RP6['queries'] & RP7['queries'] & RP8['queries'] & RP9['queries'] & RP10['queries'] & RP11['queries'] & RP12['queries'] & RP13['queries'] & RP14['queries'];
282
+ mutations: RP0['mutations'] & RP1['mutations'] & RP2['mutations'] & RP3['mutations'] & RP4['mutations'] & RP5['mutations'] & RP6['mutations'] & RP7['mutations'] & RP8['mutations'] & RP9['mutations'] & RP10['mutations'] & RP11['mutations'] & RP12['mutations'] & RP13['mutations'] & RP14['mutations'];
283
+ subscriptions: RP0['subscriptions'] & RP1['subscriptions'] & RP2['subscriptions'] & RP3['subscriptions'] & RP4['subscriptions'] & RP5['subscriptions'] & RP6['subscriptions'] & RP7['subscriptions'] & RP8['subscriptions'] & RP9['subscriptions'] & RP10['subscriptions'] & RP11['subscriptions'] & RP12['subscriptions'] & RP13['subscriptions'] & RP14['subscriptions'];
284
+ procedures: RP0['procedures'] & RP1['procedures'] & RP2['procedures'] & RP3['procedures'] & RP4['procedures'] & RP5['procedures'] & RP6['procedures'] & RP7['procedures'] & RP8['procedures'] & RP9['procedures'] & RP10['procedures'] & RP11['procedures'] & RP12['procedures'] & RP13['procedures'] & RP14['procedures'];
285
+ routers: RP0['routers'] & RP1['routers'] & RP2['routers'] & RP3['routers'] & RP4['routers'] & RP5['routers'] & RP6['routers'] & RP7['routers'] & RP8['routers'] & RP9['routers'] & RP10['routers'] & RP11['routers'] & RP12['routers'] & RP13['routers'] & RP14['routers'];
286
+ record: RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'] & RP5['record'] & RP6['record'] & RP7['record'] & RP8['record'] & RP9['record'] & RP10['record'] & RP11['record'] & RP12['record'] & RP13['record'] & RP14['record'];
287
+ }> & RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'] & RP5['record'] & RP6['record'] & RP7['record'] & RP8['record'] & RP9['record'] & RP10['record'] & RP11['record'] & RP12['record'] & RP13['record'] & RP14['record'];
288
+
289
+ export function mergeRoutersGeneric<
290
+ RP0 extends AnyRouterDef, RP1 extends AnyRouterDef, RP2 extends AnyRouterDef, RP3 extends AnyRouterDef, RP4 extends AnyRouterDef, RP5 extends AnyRouterDef, RP6 extends AnyRouterDef, RP7 extends AnyRouterDef, RP8 extends AnyRouterDef, RP9 extends AnyRouterDef, RP10 extends AnyRouterDef, RP11 extends AnyRouterDef, RP12 extends AnyRouterDef, RP13 extends AnyRouterDef, RP14 extends AnyRouterDef, RP15 extends AnyRouterDef
291
+ >(
292
+ router0: Router<RP0>, router1: Router<RP1>, router2: Router<RP2>, router3: Router<RP3>, router4: Router<RP4>, router5: Router<RP5>, router6: Router<RP6>, router7: Router<RP7>, router8: Router<RP8>, router9: Router<RP9>, router10: Router<RP10>, router11: Router<RP11>, router12: Router<RP12>, router13: Router<RP13>, router14: Router<RP14>, router15: Router<RP15>
293
+ ): Router<{
294
+ router: true;
295
+ _ctx: RP0['_ctx'];
296
+ _errorShape: RP0['_errorShape'];
297
+ _meta: RP0['_meta'];
298
+ transformer: RP0['transformer'];
299
+ errorFormatter: RP0['errorFormatter'];
300
+ queries: RP0['queries'] & RP1['queries'] & RP2['queries'] & RP3['queries'] & RP4['queries'] & RP5['queries'] & RP6['queries'] & RP7['queries'] & RP8['queries'] & RP9['queries'] & RP10['queries'] & RP11['queries'] & RP12['queries'] & RP13['queries'] & RP14['queries'] & RP15['queries'];
301
+ mutations: RP0['mutations'] & RP1['mutations'] & RP2['mutations'] & RP3['mutations'] & RP4['mutations'] & RP5['mutations'] & RP6['mutations'] & RP7['mutations'] & RP8['mutations'] & RP9['mutations'] & RP10['mutations'] & RP11['mutations'] & RP12['mutations'] & RP13['mutations'] & RP14['mutations'] & RP15['mutations'];
302
+ subscriptions: RP0['subscriptions'] & RP1['subscriptions'] & RP2['subscriptions'] & RP3['subscriptions'] & RP4['subscriptions'] & RP5['subscriptions'] & RP6['subscriptions'] & RP7['subscriptions'] & RP8['subscriptions'] & RP9['subscriptions'] & RP10['subscriptions'] & RP11['subscriptions'] & RP12['subscriptions'] & RP13['subscriptions'] & RP14['subscriptions'] & RP15['subscriptions'];
303
+ procedures: RP0['procedures'] & RP1['procedures'] & RP2['procedures'] & RP3['procedures'] & RP4['procedures'] & RP5['procedures'] & RP6['procedures'] & RP7['procedures'] & RP8['procedures'] & RP9['procedures'] & RP10['procedures'] & RP11['procedures'] & RP12['procedures'] & RP13['procedures'] & RP14['procedures'] & RP15['procedures'];
304
+ routers: RP0['routers'] & RP1['routers'] & RP2['routers'] & RP3['routers'] & RP4['routers'] & RP5['routers'] & RP6['routers'] & RP7['routers'] & RP8['routers'] & RP9['routers'] & RP10['routers'] & RP11['routers'] & RP12['routers'] & RP13['routers'] & RP14['routers'] & RP15['routers'];
305
+ record: RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'] & RP5['record'] & RP6['record'] & RP7['record'] & RP8['record'] & RP9['record'] & RP10['record'] & RP11['record'] & RP12['record'] & RP13['record'] & RP14['record'] & RP15['record'];
306
+ }> & RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'] & RP5['record'] & RP6['record'] & RP7['record'] & RP8['record'] & RP9['record'] & RP10['record'] & RP11['record'] & RP12['record'] & RP13['record'] & RP14['record'] & RP15['record'];
307
+
308
+ export function mergeRoutersGeneric<
309
+ RP0 extends AnyRouterDef, RP1 extends AnyRouterDef, RP2 extends AnyRouterDef, RP3 extends AnyRouterDef, RP4 extends AnyRouterDef, RP5 extends AnyRouterDef, RP6 extends AnyRouterDef, RP7 extends AnyRouterDef, RP8 extends AnyRouterDef, RP9 extends AnyRouterDef, RP10 extends AnyRouterDef, RP11 extends AnyRouterDef, RP12 extends AnyRouterDef, RP13 extends AnyRouterDef, RP14 extends AnyRouterDef, RP15 extends AnyRouterDef, RP16 extends AnyRouterDef
310
+ >(
311
+ router0: Router<RP0>, router1: Router<RP1>, router2: Router<RP2>, router3: Router<RP3>, router4: Router<RP4>, router5: Router<RP5>, router6: Router<RP6>, router7: Router<RP7>, router8: Router<RP8>, router9: Router<RP9>, router10: Router<RP10>, router11: Router<RP11>, router12: Router<RP12>, router13: Router<RP13>, router14: Router<RP14>, router15: Router<RP15>, router16: Router<RP16>
312
+ ): Router<{
313
+ router: true;
314
+ _ctx: RP0['_ctx'];
315
+ _errorShape: RP0['_errorShape'];
316
+ _meta: RP0['_meta'];
317
+ transformer: RP0['transformer'];
318
+ errorFormatter: RP0['errorFormatter'];
319
+ queries: RP0['queries'] & RP1['queries'] & RP2['queries'] & RP3['queries'] & RP4['queries'] & RP5['queries'] & RP6['queries'] & RP7['queries'] & RP8['queries'] & RP9['queries'] & RP10['queries'] & RP11['queries'] & RP12['queries'] & RP13['queries'] & RP14['queries'] & RP15['queries'] & RP16['queries'];
320
+ mutations: RP0['mutations'] & RP1['mutations'] & RP2['mutations'] & RP3['mutations'] & RP4['mutations'] & RP5['mutations'] & RP6['mutations'] & RP7['mutations'] & RP8['mutations'] & RP9['mutations'] & RP10['mutations'] & RP11['mutations'] & RP12['mutations'] & RP13['mutations'] & RP14['mutations'] & RP15['mutations'] & RP16['mutations'];
321
+ subscriptions: RP0['subscriptions'] & RP1['subscriptions'] & RP2['subscriptions'] & RP3['subscriptions'] & RP4['subscriptions'] & RP5['subscriptions'] & RP6['subscriptions'] & RP7['subscriptions'] & RP8['subscriptions'] & RP9['subscriptions'] & RP10['subscriptions'] & RP11['subscriptions'] & RP12['subscriptions'] & RP13['subscriptions'] & RP14['subscriptions'] & RP15['subscriptions'] & RP16['subscriptions'];
322
+ procedures: RP0['procedures'] & RP1['procedures'] & RP2['procedures'] & RP3['procedures'] & RP4['procedures'] & RP5['procedures'] & RP6['procedures'] & RP7['procedures'] & RP8['procedures'] & RP9['procedures'] & RP10['procedures'] & RP11['procedures'] & RP12['procedures'] & RP13['procedures'] & RP14['procedures'] & RP15['procedures'] & RP16['procedures'];
323
+ routers: RP0['routers'] & RP1['routers'] & RP2['routers'] & RP3['routers'] & RP4['routers'] & RP5['routers'] & RP6['routers'] & RP7['routers'] & RP8['routers'] & RP9['routers'] & RP10['routers'] & RP11['routers'] & RP12['routers'] & RP13['routers'] & RP14['routers'] & RP15['routers'] & RP16['routers'];
324
+ record: RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'] & RP5['record'] & RP6['record'] & RP7['record'] & RP8['record'] & RP9['record'] & RP10['record'] & RP11['record'] & RP12['record'] & RP13['record'] & RP14['record'] & RP15['record'] & RP16['record'];
325
+ }> & RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'] & RP5['record'] & RP6['record'] & RP7['record'] & RP8['record'] & RP9['record'] & RP10['record'] & RP11['record'] & RP12['record'] & RP13['record'] & RP14['record'] & RP15['record'] & RP16['record'];
326
+
327
+ export function mergeRoutersGeneric<
328
+ RP0 extends AnyRouterDef, RP1 extends AnyRouterDef, RP2 extends AnyRouterDef, RP3 extends AnyRouterDef, RP4 extends AnyRouterDef, RP5 extends AnyRouterDef, RP6 extends AnyRouterDef, RP7 extends AnyRouterDef, RP8 extends AnyRouterDef, RP9 extends AnyRouterDef, RP10 extends AnyRouterDef, RP11 extends AnyRouterDef, RP12 extends AnyRouterDef, RP13 extends AnyRouterDef, RP14 extends AnyRouterDef, RP15 extends AnyRouterDef, RP16 extends AnyRouterDef, RP17 extends AnyRouterDef
329
+ >(
330
+ router0: Router<RP0>, router1: Router<RP1>, router2: Router<RP2>, router3: Router<RP3>, router4: Router<RP4>, router5: Router<RP5>, router6: Router<RP6>, router7: Router<RP7>, router8: Router<RP8>, router9: Router<RP9>, router10: Router<RP10>, router11: Router<RP11>, router12: Router<RP12>, router13: Router<RP13>, router14: Router<RP14>, router15: Router<RP15>, router16: Router<RP16>, router17: Router<RP17>
331
+ ): Router<{
332
+ router: true;
333
+ _ctx: RP0['_ctx'];
334
+ _errorShape: RP0['_errorShape'];
335
+ _meta: RP0['_meta'];
336
+ transformer: RP0['transformer'];
337
+ errorFormatter: RP0['errorFormatter'];
338
+ queries: RP0['queries'] & RP1['queries'] & RP2['queries'] & RP3['queries'] & RP4['queries'] & RP5['queries'] & RP6['queries'] & RP7['queries'] & RP8['queries'] & RP9['queries'] & RP10['queries'] & RP11['queries'] & RP12['queries'] & RP13['queries'] & RP14['queries'] & RP15['queries'] & RP16['queries'] & RP17['queries'];
339
+ mutations: RP0['mutations'] & RP1['mutations'] & RP2['mutations'] & RP3['mutations'] & RP4['mutations'] & RP5['mutations'] & RP6['mutations'] & RP7['mutations'] & RP8['mutations'] & RP9['mutations'] & RP10['mutations'] & RP11['mutations'] & RP12['mutations'] & RP13['mutations'] & RP14['mutations'] & RP15['mutations'] & RP16['mutations'] & RP17['mutations'];
340
+ subscriptions: RP0['subscriptions'] & RP1['subscriptions'] & RP2['subscriptions'] & RP3['subscriptions'] & RP4['subscriptions'] & RP5['subscriptions'] & RP6['subscriptions'] & RP7['subscriptions'] & RP8['subscriptions'] & RP9['subscriptions'] & RP10['subscriptions'] & RP11['subscriptions'] & RP12['subscriptions'] & RP13['subscriptions'] & RP14['subscriptions'] & RP15['subscriptions'] & RP16['subscriptions'] & RP17['subscriptions'];
341
+ procedures: RP0['procedures'] & RP1['procedures'] & RP2['procedures'] & RP3['procedures'] & RP4['procedures'] & RP5['procedures'] & RP6['procedures'] & RP7['procedures'] & RP8['procedures'] & RP9['procedures'] & RP10['procedures'] & RP11['procedures'] & RP12['procedures'] & RP13['procedures'] & RP14['procedures'] & RP15['procedures'] & RP16['procedures'] & RP17['procedures'];
342
+ routers: RP0['routers'] & RP1['routers'] & RP2['routers'] & RP3['routers'] & RP4['routers'] & RP5['routers'] & RP6['routers'] & RP7['routers'] & RP8['routers'] & RP9['routers'] & RP10['routers'] & RP11['routers'] & RP12['routers'] & RP13['routers'] & RP14['routers'] & RP15['routers'] & RP16['routers'] & RP17['routers'];
343
+ record: RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'] & RP5['record'] & RP6['record'] & RP7['record'] & RP8['record'] & RP9['record'] & RP10['record'] & RP11['record'] & RP12['record'] & RP13['record'] & RP14['record'] & RP15['record'] & RP16['record'] & RP17['record'];
344
+ }> & RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'] & RP5['record'] & RP6['record'] & RP7['record'] & RP8['record'] & RP9['record'] & RP10['record'] & RP11['record'] & RP12['record'] & RP13['record'] & RP14['record'] & RP15['record'] & RP16['record'] & RP17['record'];
345
+
346
+ export function mergeRoutersGeneric<
347
+ RP0 extends AnyRouterDef, RP1 extends AnyRouterDef, RP2 extends AnyRouterDef, RP3 extends AnyRouterDef, RP4 extends AnyRouterDef, RP5 extends AnyRouterDef, RP6 extends AnyRouterDef, RP7 extends AnyRouterDef, RP8 extends AnyRouterDef, RP9 extends AnyRouterDef, RP10 extends AnyRouterDef, RP11 extends AnyRouterDef, RP12 extends AnyRouterDef, RP13 extends AnyRouterDef, RP14 extends AnyRouterDef, RP15 extends AnyRouterDef, RP16 extends AnyRouterDef, RP17 extends AnyRouterDef, RP18 extends AnyRouterDef
348
+ >(
349
+ router0: Router<RP0>, router1: Router<RP1>, router2: Router<RP2>, router3: Router<RP3>, router4: Router<RP4>, router5: Router<RP5>, router6: Router<RP6>, router7: Router<RP7>, router8: Router<RP8>, router9: Router<RP9>, router10: Router<RP10>, router11: Router<RP11>, router12: Router<RP12>, router13: Router<RP13>, router14: Router<RP14>, router15: Router<RP15>, router16: Router<RP16>, router17: Router<RP17>, router18: Router<RP18>
350
+ ): Router<{
351
+ router: true;
352
+ _ctx: RP0['_ctx'];
353
+ _errorShape: RP0['_errorShape'];
354
+ _meta: RP0['_meta'];
355
+ transformer: RP0['transformer'];
356
+ errorFormatter: RP0['errorFormatter'];
357
+ queries: RP0['queries'] & RP1['queries'] & RP2['queries'] & RP3['queries'] & RP4['queries'] & RP5['queries'] & RP6['queries'] & RP7['queries'] & RP8['queries'] & RP9['queries'] & RP10['queries'] & RP11['queries'] & RP12['queries'] & RP13['queries'] & RP14['queries'] & RP15['queries'] & RP16['queries'] & RP17['queries'] & RP18['queries'];
358
+ mutations: RP0['mutations'] & RP1['mutations'] & RP2['mutations'] & RP3['mutations'] & RP4['mutations'] & RP5['mutations'] & RP6['mutations'] & RP7['mutations'] & RP8['mutations'] & RP9['mutations'] & RP10['mutations'] & RP11['mutations'] & RP12['mutations'] & RP13['mutations'] & RP14['mutations'] & RP15['mutations'] & RP16['mutations'] & RP17['mutations'] & RP18['mutations'];
359
+ subscriptions: RP0['subscriptions'] & RP1['subscriptions'] & RP2['subscriptions'] & RP3['subscriptions'] & RP4['subscriptions'] & RP5['subscriptions'] & RP6['subscriptions'] & RP7['subscriptions'] & RP8['subscriptions'] & RP9['subscriptions'] & RP10['subscriptions'] & RP11['subscriptions'] & RP12['subscriptions'] & RP13['subscriptions'] & RP14['subscriptions'] & RP15['subscriptions'] & RP16['subscriptions'] & RP17['subscriptions'] & RP18['subscriptions'];
360
+ procedures: RP0['procedures'] & RP1['procedures'] & RP2['procedures'] & RP3['procedures'] & RP4['procedures'] & RP5['procedures'] & RP6['procedures'] & RP7['procedures'] & RP8['procedures'] & RP9['procedures'] & RP10['procedures'] & RP11['procedures'] & RP12['procedures'] & RP13['procedures'] & RP14['procedures'] & RP15['procedures'] & RP16['procedures'] & RP17['procedures'] & RP18['procedures'];
361
+ routers: RP0['routers'] & RP1['routers'] & RP2['routers'] & RP3['routers'] & RP4['routers'] & RP5['routers'] & RP6['routers'] & RP7['routers'] & RP8['routers'] & RP9['routers'] & RP10['routers'] & RP11['routers'] & RP12['routers'] & RP13['routers'] & RP14['routers'] & RP15['routers'] & RP16['routers'] & RP17['routers'] & RP18['routers'];
362
+ record: RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'] & RP5['record'] & RP6['record'] & RP7['record'] & RP8['record'] & RP9['record'] & RP10['record'] & RP11['record'] & RP12['record'] & RP13['record'] & RP14['record'] & RP15['record'] & RP16['record'] & RP17['record'] & RP18['record'];
363
+ }> & RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'] & RP5['record'] & RP6['record'] & RP7['record'] & RP8['record'] & RP9['record'] & RP10['record'] & RP11['record'] & RP12['record'] & RP13['record'] & RP14['record'] & RP15['record'] & RP16['record'] & RP17['record'] & RP18['record'];
364
+
365
+ export function mergeRoutersGeneric<
366
+ RP0 extends AnyRouterDef, RP1 extends AnyRouterDef, RP2 extends AnyRouterDef, RP3 extends AnyRouterDef, RP4 extends AnyRouterDef, RP5 extends AnyRouterDef, RP6 extends AnyRouterDef, RP7 extends AnyRouterDef, RP8 extends AnyRouterDef, RP9 extends AnyRouterDef, RP10 extends AnyRouterDef, RP11 extends AnyRouterDef, RP12 extends AnyRouterDef, RP13 extends AnyRouterDef, RP14 extends AnyRouterDef, RP15 extends AnyRouterDef, RP16 extends AnyRouterDef, RP17 extends AnyRouterDef, RP18 extends AnyRouterDef, RP19 extends AnyRouterDef
367
+ >(
368
+ router0: Router<RP0>, router1: Router<RP1>, router2: Router<RP2>, router3: Router<RP3>, router4: Router<RP4>, router5: Router<RP5>, router6: Router<RP6>, router7: Router<RP7>, router8: Router<RP8>, router9: Router<RP9>, router10: Router<RP10>, router11: Router<RP11>, router12: Router<RP12>, router13: Router<RP13>, router14: Router<RP14>, router15: Router<RP15>, router16: Router<RP16>, router17: Router<RP17>, router18: Router<RP18>, router19: Router<RP19>
369
+ ): Router<{
370
+ router: true;
371
+ _ctx: RP0['_ctx'];
372
+ _errorShape: RP0['_errorShape'];
373
+ _meta: RP0['_meta'];
374
+ transformer: RP0['transformer'];
375
+ errorFormatter: RP0['errorFormatter'];
376
+ queries: RP0['queries'] & RP1['queries'] & RP2['queries'] & RP3['queries'] & RP4['queries'] & RP5['queries'] & RP6['queries'] & RP7['queries'] & RP8['queries'] & RP9['queries'] & RP10['queries'] & RP11['queries'] & RP12['queries'] & RP13['queries'] & RP14['queries'] & RP15['queries'] & RP16['queries'] & RP17['queries'] & RP18['queries'] & RP19['queries'];
377
+ mutations: RP0['mutations'] & RP1['mutations'] & RP2['mutations'] & RP3['mutations'] & RP4['mutations'] & RP5['mutations'] & RP6['mutations'] & RP7['mutations'] & RP8['mutations'] & RP9['mutations'] & RP10['mutations'] & RP11['mutations'] & RP12['mutations'] & RP13['mutations'] & RP14['mutations'] & RP15['mutations'] & RP16['mutations'] & RP17['mutations'] & RP18['mutations'] & RP19['mutations'];
378
+ subscriptions: RP0['subscriptions'] & RP1['subscriptions'] & RP2['subscriptions'] & RP3['subscriptions'] & RP4['subscriptions'] & RP5['subscriptions'] & RP6['subscriptions'] & RP7['subscriptions'] & RP8['subscriptions'] & RP9['subscriptions'] & RP10['subscriptions'] & RP11['subscriptions'] & RP12['subscriptions'] & RP13['subscriptions'] & RP14['subscriptions'] & RP15['subscriptions'] & RP16['subscriptions'] & RP17['subscriptions'] & RP18['subscriptions'] & RP19['subscriptions'];
379
+ procedures: RP0['procedures'] & RP1['procedures'] & RP2['procedures'] & RP3['procedures'] & RP4['procedures'] & RP5['procedures'] & RP6['procedures'] & RP7['procedures'] & RP8['procedures'] & RP9['procedures'] & RP10['procedures'] & RP11['procedures'] & RP12['procedures'] & RP13['procedures'] & RP14['procedures'] & RP15['procedures'] & RP16['procedures'] & RP17['procedures'] & RP18['procedures'] & RP19['procedures'];
380
+ routers: RP0['routers'] & RP1['routers'] & RP2['routers'] & RP3['routers'] & RP4['routers'] & RP5['routers'] & RP6['routers'] & RP7['routers'] & RP8['routers'] & RP9['routers'] & RP10['routers'] & RP11['routers'] & RP12['routers'] & RP13['routers'] & RP14['routers'] & RP15['routers'] & RP16['routers'] & RP17['routers'] & RP18['routers'] & RP19['routers'];
381
+ record: RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'] & RP5['record'] & RP6['record'] & RP7['record'] & RP8['record'] & RP9['record'] & RP10['record'] & RP11['record'] & RP12['record'] & RP13['record'] & RP14['record'] & RP15['record'] & RP16['record'] & RP17['record'] & RP18['record'] & RP19['record'];
382
+ }> & RP0['record'] & RP1['record'] & RP2['record'] & RP3['record'] & RP4['record'] & RP5['record'] & RP6['record'] & RP7['record'] & RP8['record'] & RP9['record'] & RP10['record'] & RP11['record'] & RP12['record'] & RP13['record'] & RP14['record'] & RP15['record'] & RP16['record'] & RP17['record'] & RP18['record'] & RP19['record'];
383
+
384
+ export function mergeRoutersGeneric(...args: AnyRouter[]): AnyRouter {
385
+ return mergeRouters(...args) as any;
386
+ }
@@ -0,0 +1,43 @@
1
+ import { ErrorFormatter } from '../../error/formatter';
2
+ import {
3
+ CombinedDataTransformer,
4
+ DataTransformerOptions,
5
+ } from '../../transformer';
6
+
7
+ /**
8
+ * The initial generics that are used in the init function
9
+ * @internal
10
+ */
11
+ export interface InitGenerics {
12
+ ctx: Record<string, unknown>;
13
+ meta: Record<string, unknown>;
14
+ }
15
+ /**
16
+ * The initial params that are used and actually represents real values underneath
17
+ * @internal
18
+ */
19
+ export interface InitOptions<T extends InitGenerics> {
20
+ transformer: DataTransformerOptions;
21
+ errorFormatter: ErrorFormatter<T['ctx'], any>;
22
+ }
23
+
24
+ /**
25
+ * @internal
26
+ */
27
+ export type CreateInitGenerics<T extends InitGenerics> = T;
28
+
29
+ /**
30
+ * The config that is resolved after both calls of `initTRPC()` has been called
31
+ * Combination of `InitTOptions` + `InitGenerics`
32
+ * @internal
33
+ */
34
+ export interface RootConfig extends InitGenerics {
35
+ transformer: CombinedDataTransformer;
36
+ // FIXME this should probably be restricted
37
+ errorShape: any;
38
+ }
39
+
40
+ /**
41
+ * @internal
42
+ */
43
+ export type CreateRootConfig<T extends RootConfig> = T;
@@ -0,0 +1,47 @@
1
+ import { Parser } from '../parser';
2
+
3
+ export type ParseFn<T> = (value: unknown) => T | Promise<T>;
4
+
5
+ export function getParseFn<T>(procedureParser: Parser): ParseFn<T> {
6
+ const parser = procedureParser as any;
7
+
8
+ if (typeof parser === 'function') {
9
+ // ProcedureParserCustomValidatorEsque
10
+ return parser;
11
+ }
12
+
13
+ if (typeof parser.parseAsync === 'function') {
14
+ // ProcedureParserZodEsque
15
+ return parser.parseAsync.bind(parser);
16
+ }
17
+
18
+ if (typeof parser.parse === 'function') {
19
+ // ProcedureParserZodEsque
20
+ return parser.parse.bind(parser);
21
+ }
22
+
23
+ if (typeof parser.validateSync === 'function') {
24
+ // ProcedureParserYupEsque
25
+ return parser.validateSync.bind(parser);
26
+ }
27
+
28
+ if (typeof parser.create === 'function') {
29
+ // ProcedureParserSuperstructEsque
30
+ return parser.create.bind(parser);
31
+ }
32
+
33
+ throw new Error('Could not find a validator fn');
34
+ }
35
+
36
+ /**
37
+ * @deprecated only for backwards compat
38
+ * @internal
39
+ */
40
+ export function getParseFnOrPassThrough<T>(
41
+ procedureParser: Parser | undefined,
42
+ ): ParseFn<T> {
43
+ if (!procedureParser) {
44
+ return (v) => v as T;
45
+ }
46
+ return getParseFn(procedureParser);
47
+ }
@@ -0,0 +1,45 @@
1
+ import { defaultFormatter } from '../../error/formatter';
2
+ import { CombinedDataTransformer, defaultTransformer } from '../../transformer';
3
+ import { AnyRouter, createRouterFactory } from '../router';
4
+ import { mergeWithoutOverrides } from './mergeWithoutOverrides';
5
+
6
+ export function mergeRouters(...routerList: AnyRouter[]): AnyRouter {
7
+ const record = mergeWithoutOverrides(
8
+ {},
9
+ ...routerList.map((r) => r._def.record),
10
+ );
11
+ const errorFormatter = routerList.reduce(
12
+ (currentErrorFormatter, nextRouter) => {
13
+ if (
14
+ nextRouter.errorFormatter &&
15
+ nextRouter.errorFormatter !== defaultFormatter
16
+ ) {
17
+ if (
18
+ currentErrorFormatter !== defaultFormatter &&
19
+ currentErrorFormatter !== nextRouter.errorFormatter
20
+ ) {
21
+ throw new Error('You seem to have several error formatters');
22
+ }
23
+ return nextRouter.errorFormatter;
24
+ }
25
+ return currentErrorFormatter;
26
+ },
27
+ defaultFormatter,
28
+ );
29
+
30
+ const transformer = routerList.reduce((prev, current) => {
31
+ if (current.transformer && current.transformer !== defaultTransformer) {
32
+ if (prev !== defaultTransformer && prev !== current.transformer) {
33
+ throw new Error('You seem to have several transformers');
34
+ }
35
+ return current.transformer;
36
+ }
37
+ return prev;
38
+ }, defaultTransformer as CombinedDataTransformer);
39
+
40
+ const router = createRouterFactory({
41
+ errorFormatter,
42
+ transformer,
43
+ })(record);
44
+ return router;
45
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Ensures there are no duplicate keys when building a procedure.
3
+ */
4
+ export function mergeWithoutOverrides<T extends Record<string, unknown>>(
5
+ obj1: T,
6
+ ...objs: Partial<T>[]
7
+ ): T {
8
+ const newObj: T = Object.assign(Object.create(null), obj1);
9
+
10
+ for (const overrides of objs) {
11
+ for (const key in overrides) {
12
+ if (key in newObj && newObj[key] !== overrides[key]) {
13
+ throw new Error(`Duplicate key ${key}`);
14
+ }
15
+ newObj[key as keyof T] = overrides[key] as T[keyof T];
16
+ }
17
+ }
18
+ return newObj;
19
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Create an object without inheriting anything from `Object.prototype`
3
+ * @internal
4
+ */
5
+ export function omitPrototype<TObj1 extends Record<string, unknown>>(
6
+ obj1: TObj1,
7
+ ): TObj1 {
8
+ return Object.assign(Object.create(null), obj1);
9
+ }