@trpc/server 10.0.0-alpha.3 → 10.0.0-alpha.32

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 (326) hide show
  1. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.d.ts +1 -0
  2. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.dev.js +170 -0
  3. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.js +7 -0
  4. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.prod.js +170 -0
  5. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.esm.js +166 -0
  6. package/adapters/aws-lambda/index.d.ts +1 -0
  7. package/adapters/aws-lambda/index.js +1 -0
  8. package/adapters/express/dist/trpc-server-adapters-express.cjs.dev.js +7 -6
  9. package/adapters/express/dist/trpc-server-adapters-express.cjs.prod.js +7 -6
  10. package/adapters/express/dist/trpc-server-adapters-express.esm.js +7 -6
  11. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.d.ts +1 -0
  12. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.dev.js +109 -0
  13. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.js +7 -0
  14. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.prod.js +109 -0
  15. package/adapters/fastify/dist/trpc-server-adapters-fastify.esm.js +104 -0
  16. package/adapters/fastify/index.d.ts +1 -0
  17. package/adapters/fastify/index.js +1 -0
  18. package/adapters/fetch/index.d.ts +1 -0
  19. package/adapters/fetch/index.js +1 -0
  20. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.d.ts +1 -0
  21. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.dev.js +25 -0
  22. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.js +7 -0
  23. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.prod.js +25 -0
  24. package/adapters/lambda/dist/trpc-server-adapters-lambda.esm.js +21 -0
  25. package/adapters/next/dist/trpc-server-adapters-next.cjs.dev.js +4 -3
  26. package/adapters/next/dist/trpc-server-adapters-next.cjs.prod.js +4 -3
  27. package/adapters/next/dist/trpc-server-adapters-next.esm.js +4 -3
  28. package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.dev.js +4 -3
  29. package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.prod.js +4 -3
  30. package/adapters/node-http/dist/trpc-server-adapters-node-http.esm.js +4 -3
  31. package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.dev.js +5 -4
  32. package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.prod.js +5 -4
  33. package/adapters/standalone/dist/trpc-server-adapters-standalone.esm.js +5 -4
  34. package/adapters/ws/dist/trpc-server-adapters-ws.cjs.dev.js +6 -5
  35. package/adapters/ws/dist/trpc-server-adapters-ws.cjs.prod.js +6 -5
  36. package/adapters/ws/dist/trpc-server-adapters-ws.esm.js +6 -5
  37. package/dist/TRPCError-9050a68d.js +69 -0
  38. package/dist/TRPCError-b7fa0c31.mjs +65 -0
  39. package/dist/adapters/aws-lambda/index.d.ts +14 -0
  40. package/dist/adapters/aws-lambda/index.d.ts.map +1 -0
  41. package/dist/adapters/aws-lambda/utils.d.ts +34 -0
  42. package/dist/adapters/aws-lambda/utils.d.ts.map +1 -0
  43. package/dist/adapters/express.d.ts +1 -1
  44. package/dist/adapters/express.d.ts.map +1 -1
  45. package/dist/adapters/express.js +8 -7
  46. package/dist/adapters/express.mjs +8 -7
  47. package/dist/adapters/fastify/fastifyRequestHandler.d.ts +13 -0
  48. package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -0
  49. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts +12 -0
  50. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -0
  51. package/dist/adapters/fastify/index.d.ts +3 -0
  52. package/dist/adapters/fastify/index.d.ts.map +1 -0
  53. package/dist/adapters/fastify/index.js +108 -0
  54. package/dist/adapters/fastify/index.mjs +103 -0
  55. package/dist/{ws → adapters/fastify}/index.ts.js +0 -0
  56. package/dist/adapters/fetch/fetchRequestHandler.d.ts +8 -0
  57. package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -0
  58. package/dist/adapters/fetch/index.d.ts +3 -0
  59. package/dist/adapters/fetch/index.d.ts.map +1 -0
  60. package/dist/adapters/fetch/index.js +69 -0
  61. package/dist/adapters/fetch/index.mjs +65 -0
  62. package/dist/adapters/fetch/index.ts.js +1 -0
  63. package/dist/adapters/fetch/types.d.ts +21 -0
  64. package/dist/adapters/fetch/types.d.ts.map +1 -0
  65. package/dist/adapters/lambda/index.d.ts +12 -0
  66. package/dist/adapters/lambda/index.d.ts.map +1 -0
  67. package/dist/adapters/next.d.ts +2 -2
  68. package/dist/adapters/next.d.ts.map +1 -1
  69. package/dist/adapters/next.js +9 -9
  70. package/dist/adapters/next.mjs +8 -8
  71. package/dist/adapters/node-http/index.js +5 -4
  72. package/dist/adapters/node-http/index.mjs +5 -4
  73. package/dist/adapters/node-http/internals/getPostBody.d.ts +1 -1
  74. package/dist/adapters/node-http/internals/getPostBody.d.ts.map +1 -1
  75. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts +2 -2
  76. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
  77. package/dist/adapters/node-http/types.d.ts +11 -9
  78. package/dist/adapters/node-http/types.d.ts.map +1 -1
  79. package/dist/adapters/standalone.d.ts +2 -2
  80. package/dist/adapters/standalone.d.ts.map +1 -1
  81. package/dist/adapters/standalone.js +11 -7
  82. package/dist/adapters/standalone.mjs +11 -6
  83. package/dist/adapters/ws.d.ts +8 -6
  84. package/dist/adapters/ws.d.ts.map +1 -1
  85. package/dist/adapters/ws.js +123 -90
  86. package/dist/adapters/ws.mjs +118 -85
  87. package/dist/assertNotBrowser.d.ts.map +1 -1
  88. package/dist/core/index.d.ts +5 -0
  89. package/dist/core/index.d.ts.map +1 -0
  90. package/dist/core/initTRPC.d.ts +87 -0
  91. package/dist/core/initTRPC.d.ts.map +1 -0
  92. package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts +282 -0
  93. package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts.map +1 -0
  94. package/dist/core/internals/config.d.ts +36 -0
  95. package/dist/core/internals/config.d.ts.map +1 -0
  96. package/dist/core/internals/getParseFn.d.ts +9 -0
  97. package/dist/core/internals/getParseFn.d.ts.map +1 -0
  98. package/dist/core/internals/internalProcedure.d.ts +78 -0
  99. package/dist/core/internals/internalProcedure.d.ts.map +1 -0
  100. package/dist/core/internals/mergeRouters.d.ts +3 -0
  101. package/dist/core/internals/mergeRouters.d.ts.map +1 -0
  102. package/dist/core/internals/mergeWithoutOverrides.d.ts +5 -0
  103. package/dist/core/internals/mergeWithoutOverrides.d.ts.map +1 -0
  104. package/dist/core/internals/omitPrototype.d.ts +6 -0
  105. package/dist/core/internals/omitPrototype.d.ts.map +1 -0
  106. package/dist/core/internals/prefixObjectKeys.d.ts +2 -0
  107. package/dist/core/internals/prefixObjectKeys.d.ts.map +1 -0
  108. package/dist/core/internals/procedureBuilder.d.ts +103 -0
  109. package/dist/core/internals/procedureBuilder.d.ts.map +1 -0
  110. package/dist/core/internals/utils.d.ts +44 -0
  111. package/dist/core/internals/utils.d.ts.map +1 -0
  112. package/dist/core/middleware.d.ts +87 -0
  113. package/dist/core/middleware.d.ts.map +1 -0
  114. package/dist/core/parser.d.ts +25 -0
  115. package/dist/core/parser.d.ts.map +1 -0
  116. package/dist/core/procedure.d.ts +80 -0
  117. package/dist/core/procedure.d.ts.map +1 -0
  118. package/dist/core/router.d.ts +114 -0
  119. package/dist/core/router.d.ts.map +1 -0
  120. package/dist/core/types.d.ts +17 -0
  121. package/dist/core/types.d.ts.map +1 -0
  122. package/dist/{internals → deprecated/internals}/callProcedure.d.ts +5 -2
  123. package/dist/deprecated/internals/callProcedure.d.ts.map +1 -0
  124. package/dist/{internals → deprecated/internals}/middlewares.d.ts +21 -3
  125. package/dist/deprecated/internals/middlewares.d.ts.map +1 -0
  126. package/dist/deprecated/internals/procedure.d.ts +96 -0
  127. package/dist/deprecated/internals/procedure.d.ts.map +1 -0
  128. package/dist/deprecated/interop.d.ts +34 -0
  129. package/dist/deprecated/interop.d.ts.map +1 -0
  130. package/dist/deprecated/router.d.ts +194 -0
  131. package/dist/deprecated/router.d.ts.map +1 -0
  132. package/dist/{codes-7a3d4f65.mjs → envelopes-af8c2959.mjs} +30 -1
  133. package/dist/{codes-7f46544e.js → envelopes-b6dd0367.js} +29 -1
  134. package/dist/error/TRPCError.d.ts +11 -0
  135. package/dist/error/TRPCError.d.ts.map +1 -0
  136. package/dist/error/formatter.d.ts +33 -0
  137. package/dist/error/formatter.d.ts.map +1 -0
  138. package/dist/{internals/errors.d.ts → error/utils.d.ts} +3 -2
  139. package/dist/error/utils.d.ts.map +1 -0
  140. package/dist/http/index.d.ts +1 -1
  141. package/dist/http/index.d.ts.map +1 -1
  142. package/dist/http/internals/getHTTPStatusCode.d.ts +2 -1
  143. package/dist/http/internals/getHTTPStatusCode.d.ts.map +1 -1
  144. package/dist/http/internals/types.d.ts +11 -8
  145. package/dist/http/internals/types.d.ts.map +1 -1
  146. package/dist/http/resolveHTTPResponse.d.ts +4 -4
  147. package/dist/http/resolveHTTPResponse.d.ts.map +1 -1
  148. package/dist/http/{ResponseMeta.d.ts → types.d.ts} +1 -1
  149. package/dist/http/types.d.ts.map +1 -0
  150. package/dist/index.d.ts +3 -5
  151. package/dist/index.d.ts.map +1 -1
  152. package/dist/index.js +800 -105
  153. package/dist/index.mjs +789 -90
  154. package/dist/internals/transformTRPCResponse.d.ts +5 -3
  155. package/dist/internals/transformTRPCResponse.d.ts.map +1 -1
  156. package/dist/internals/types.d.ts +23 -0
  157. package/dist/internals/types.d.ts.map +1 -0
  158. package/dist/nodeHTTPRequestHandler-174459c5.mjs +105 -0
  159. package/dist/nodeHTTPRequestHandler-6b7c8622.js +107 -0
  160. package/dist/observable/index.d.ts +5 -0
  161. package/dist/observable/index.d.ts.map +1 -0
  162. package/dist/observable/index.js +204 -0
  163. package/dist/observable/index.mjs +195 -0
  164. package/dist/observable/index.ts.js +1 -0
  165. package/dist/observable/internals/identity.d.ts +2 -0
  166. package/dist/observable/internals/identity.d.ts.map +1 -0
  167. package/dist/observable/internals/observableToPromise.d.ts +10 -0
  168. package/dist/observable/internals/observableToPromise.d.ts.map +1 -0
  169. package/dist/observable/internals/pipe.d.ts +4 -0
  170. package/dist/observable/internals/pipe.d.ts.map +1 -0
  171. package/dist/observable/observable.d.ts +5 -0
  172. package/dist/observable/observable.d.ts.map +1 -0
  173. package/dist/observable/operators/index.d.ts +4 -0
  174. package/dist/observable/operators/index.d.ts.map +1 -0
  175. package/dist/observable/operators/map.d.ts +3 -0
  176. package/dist/observable/operators/map.d.ts.map +1 -0
  177. package/dist/observable/operators/share.d.ts +6 -0
  178. package/dist/observable/operators/share.d.ts.map +1 -0
  179. package/dist/observable/operators/tap.d.ts +3 -0
  180. package/dist/observable/operators/tap.d.ts.map +1 -0
  181. package/dist/observable/types.d.ts +29 -0
  182. package/dist/observable/types.d.ts.map +1 -0
  183. package/dist/observable-137ea1bd.mjs +105 -0
  184. package/dist/observable-3aa4d911.js +108 -0
  185. package/dist/{nodeHTTPRequestHandler-10e6d2f9.mjs → resolveHTTPResponse-8657b8de.mjs} +32 -133
  186. package/dist/{nodeHTTPRequestHandler-d7c307d3.js → resolveHTTPResponse-fcc8f644.js} +37 -139
  187. package/dist/rpc/codes.d.ts +2 -0
  188. package/dist/rpc/codes.d.ts.map +1 -1
  189. package/dist/rpc/envelopes.d.ts +62 -40
  190. package/dist/rpc/envelopes.d.ts.map +1 -1
  191. package/dist/rpc/index.js +7 -3
  192. package/dist/rpc/index.mjs +1 -1
  193. package/dist/rpc/internals/invert.d.ts +18 -0
  194. package/dist/rpc/internals/invert.d.ts.map +1 -0
  195. package/dist/subscription.d.ts +3 -52
  196. package/dist/subscription.d.ts.map +1 -1
  197. package/dist/subscription.js +44 -0
  198. package/dist/subscription.mjs +40 -0
  199. package/dist/subscription.ts.js +1 -0
  200. package/dist/transformTRPCResponse-0c261655.js +29 -0
  201. package/dist/transformTRPCResponse-747b9a68.mjs +27 -0
  202. package/dist/transformer.d.ts +14 -0
  203. package/dist/transformer.d.ts.map +1 -1
  204. package/dist/types.d.ts +25 -8
  205. package/dist/types.d.ts.map +1 -1
  206. package/observable/index.d.ts +1 -0
  207. package/observable/index.js +1 -0
  208. package/package.json +50 -16
  209. package/rpc/dist/trpc-server-rpc.cjs.dev.js +1 -1
  210. package/rpc/dist/trpc-server-rpc.cjs.prod.js +1 -1
  211. package/rpc/dist/trpc-server-rpc.esm.js +1 -1
  212. package/src/adapters/aws-lambda/index.ts +156 -0
  213. package/src/adapters/aws-lambda/utils.ts +91 -0
  214. package/src/adapters/express.ts +4 -4
  215. package/src/adapters/fastify/fastifyRequestHandler.ts +77 -0
  216. package/src/adapters/fastify/fastifyTRPCPlugin.ts +56 -0
  217. package/src/adapters/fastify/index.ts +2 -0
  218. package/src/adapters/fetch/fetchRequestHandler.ts +61 -0
  219. package/src/adapters/fetch/index.ts +2 -0
  220. package/src/adapters/fetch/types.ts +28 -0
  221. package/src/adapters/lambda/index.ts +18 -0
  222. package/src/adapters/next.ts +10 -8
  223. package/src/adapters/node-http/internals/getPostBody.test.ts +2 -1
  224. package/src/adapters/node-http/internals/getPostBody.ts +1 -1
  225. package/src/adapters/node-http/nodeHTTPRequestHandler.ts +7 -7
  226. package/src/adapters/node-http/types.ts +11 -9
  227. package/src/adapters/standalone.ts +12 -4
  228. package/src/adapters/ws.ts +135 -91
  229. package/src/assertNotBrowser.ts +1 -0
  230. package/src/core/index.ts +5 -0
  231. package/src/core/initTRPC.ts +95 -0
  232. package/src/core/internals/__generated__/mergeRoutersGeneric.ts +386 -0
  233. package/src/core/internals/config.ts +43 -0
  234. package/src/core/internals/getParseFn.ts +47 -0
  235. package/src/core/internals/internalProcedure.ts +296 -0
  236. package/src/core/internals/mergeRouters.ts +45 -0
  237. package/src/core/internals/mergeWithoutOverrides.ts +19 -0
  238. package/src/core/internals/omitPrototype.ts +9 -0
  239. package/src/core/internals/prefixObjectKeys.ts +9 -0
  240. package/src/core/internals/procedureBuilder.ts +184 -0
  241. package/src/core/internals/utils.ts +64 -0
  242. package/src/core/middleware.ts +96 -0
  243. package/src/core/parser.ts +45 -0
  244. package/src/core/procedure.ts +108 -0
  245. package/src/core/router.ts +365 -0
  246. package/src/core/types.ts +54 -0
  247. package/src/{internals → deprecated/internals}/callProcedure.ts +9 -3
  248. package/src/{internals → deprecated/internals}/middlewares.ts +23 -3
  249. package/src/deprecated/internals/procedure.ts +415 -0
  250. package/src/deprecated/interop.ts +229 -0
  251. package/src/{router.ts → deprecated/router.ts} +216 -100
  252. package/src/{TRPCError.ts → error/TRPCError.ts} +6 -14
  253. package/src/error/formatter.ts +51 -0
  254. package/src/{internals/errors.ts → error/utils.ts} +21 -5
  255. package/src/http/index.ts +1 -1
  256. package/src/http/internals/getHTTPStatusCode.ts +3 -2
  257. package/src/http/internals/types.ts +11 -14
  258. package/src/http/resolveHTTPResponse.ts +28 -37
  259. package/src/http/{ResponseMeta.ts → types.ts} +0 -0
  260. package/src/index.ts +3 -7
  261. package/src/internals/transformTRPCResponse.ts +21 -16
  262. package/src/internals/types.ts +24 -0
  263. package/src/observable/index.ts +4 -0
  264. package/src/observable/internals/identity.ts +3 -0
  265. package/src/observable/internals/observableToPromise.ts +49 -0
  266. package/src/observable/internals/pipe.ts +22 -0
  267. package/src/observable/observable.test.ts +101 -0
  268. package/src/observable/observable.ts +78 -0
  269. package/src/observable/operators/index.ts +3 -0
  270. package/src/observable/operators/map.test.ts +92 -0
  271. package/src/observable/operators/map.ts +25 -0
  272. package/src/observable/operators/share.test.ts +60 -0
  273. package/src/observable/operators/share.ts +67 -0
  274. package/src/observable/operators/tap.ts +26 -0
  275. package/src/observable/types.ts +69 -0
  276. package/src/rpc/codes.ts +2 -1
  277. package/src/rpc/envelopes.ts +88 -69
  278. package/src/rpc/internals/invert.ts +27 -0
  279. package/src/subscription.ts +7 -125
  280. package/src/transformer.ts +28 -0
  281. package/src/types.ts +28 -9
  282. package/dist/TRPCError.d.ts +0 -19
  283. package/dist/TRPCError.d.ts.map +0 -1
  284. package/dist/deprecated/LegacyRouter.d.ts +0 -3
  285. package/dist/deprecated/LegacyRouter.d.ts.map +0 -1
  286. package/dist/deprecated/createHttpServer.d.ts +0 -19
  287. package/dist/deprecated/createHttpServer.d.ts.map +0 -1
  288. package/dist/deprecated/requestHandler.d.ts +0 -15
  289. package/dist/deprecated/requestHandler.d.ts.map +0 -1
  290. package/dist/http/ResponseMeta.d.ts.map +0 -1
  291. package/dist/internals/BaseHandlerOptions.d.ts +0 -13
  292. package/dist/internals/BaseHandlerOptions.d.ts.map +0 -1
  293. package/dist/internals/OnErrorFunction.d.ts +0 -11
  294. package/dist/internals/OnErrorFunction.d.ts.map +0 -1
  295. package/dist/internals/callProcedure.d.ts.map +0 -1
  296. package/dist/internals/errors.d.ts.map +0 -1
  297. package/dist/internals/middlewares.d.ts.map +0 -1
  298. package/dist/internals/procedure.d.ts +0 -74
  299. package/dist/internals/procedure.d.ts.map +0 -1
  300. package/dist/internals/wrapCallSafe.d.ts +0 -16
  301. package/dist/internals/wrapCallSafe.d.ts.map +0 -1
  302. package/dist/router.d.ts +0 -176
  303. package/dist/router.d.ts.map +0 -1
  304. package/dist/subscription-5b7e1eba.js +0 -136
  305. package/dist/subscription-e1d42e69.mjs +0 -133
  306. package/dist/transformTRPCResponse-76e0c91e.mjs +0 -109
  307. package/dist/transformTRPCResponse-bd24f548.js +0 -114
  308. package/dist/ws/index.d.ts +0 -7
  309. package/dist/ws/index.d.ts.map +0 -1
  310. package/dist/ws/index.js +0 -15
  311. package/dist/ws/index.mjs +0 -11
  312. package/src/deprecated/LegacyRouter.ts +0 -3
  313. package/src/deprecated/createHttpServer.ts +0 -29
  314. package/src/deprecated/requestHandler.ts +0 -26
  315. package/src/internals/BaseHandlerOptions.ts +0 -13
  316. package/src/internals/OnErrorFunction.ts +0 -11
  317. package/src/internals/procedure.ts +0 -283
  318. package/src/internals/wrapCallSafe.ts +0 -19
  319. package/src/ws/index.ts +0 -8
  320. package/ws/dist/trpc-server-ws.cjs.d.ts +0 -1
  321. package/ws/dist/trpc-server-ws.cjs.dev.js +0 -15
  322. package/ws/dist/trpc-server-ws.cjs.js +0 -7
  323. package/ws/dist/trpc-server-ws.cjs.prod.js +0 -15
  324. package/ws/dist/trpc-server-ws.esm.js +0 -11
  325. package/ws/index.d.ts +0 -1
  326. 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
  }) {
@@ -279,29 +343,40 @@ export class Router<
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 &
@@ -550,7 +669,7 @@ export class Router<
550
669
  return Router.prefixProcedures(newDefs, prefix);
551
670
  };
552
671
 
553
- return new Router<TInputContext, any, any, any, any, TErrorShape>({
672
+ return new Router<TInputContext, any, TMeta, any, any, any, TErrorShape>({
554
673
  ...this._def,
555
674
  queries: safeObject(
556
675
  this._def.queries,
@@ -577,7 +696,7 @@ export class Router<
577
696
  const defTarget = PROCEDURE_DEFINITION_MAP[type];
578
697
  const defs = this._def[defTarget];
579
698
  const procedure = defs[path] as
580
- | Procedure<TInputContext, TContext, any, any, any>
699
+ | Procedure<TInputContext, TContext, TMeta, any, any, any, any>
581
700
  | undefined;
582
701
 
583
702
  if (!procedure) {
@@ -628,10 +747,11 @@ export class Router<
628
747
  * @link https://trpc.io/docs/middlewares
629
748
  */
630
749
  public middleware<TNewContext>(
631
- middleware: MiddlewareFunction<TContext, TNewContext>,
750
+ middleware: MiddlewareFunction<TContext, TNewContext, TMeta>,
632
751
  ): Router<
633
752
  TInputContext,
634
753
  TNewContext,
754
+ TMeta,
635
755
  SwapContext<TQueries, TNewContext>,
636
756
  SwapContext<TMutations, TNewContext>,
637
757
  SwapContext<TSubscriptions, TNewContext>,
@@ -658,6 +778,7 @@ export class Router<
658
778
  return new Router<
659
779
  TInputContext,
660
780
  TContext,
781
+ TMeta,
661
782
  TQueries,
662
783
  TMutations,
663
784
  TSubscriptions,
@@ -712,6 +833,7 @@ export class Router<
712
833
  return new Router<
713
834
  TInputContext,
714
835
  TContext,
836
+ TMeta,
715
837
  TQueries,
716
838
  TMutations,
717
839
  TSubscriptions,
@@ -731,6 +853,7 @@ export class Router<
731
853
  public flat(): Router<
732
854
  TInputContext,
733
855
  TContext,
856
+ TMeta,
734
857
  flatten<{}, TQueries>,
735
858
  flatten<{}, TMutations>,
736
859
  flatten<{}, TSubscriptions>,
@@ -738,33 +861,26 @@ export class Router<
738
861
  > {
739
862
  return this as any;
740
863
  }
864
+
865
+ /**
866
+ * Interop mode for v9.x -> v10.x
867
+ */
868
+ public interop(): MigrateRouter<
869
+ TInputContext,
870
+ TContext,
871
+ TMeta,
872
+ TQueries,
873
+ TMutations,
874
+ TSubscriptions,
875
+ TErrorShape
876
+ > {
877
+ return migrateRouter(this);
878
+ }
741
879
  }
742
880
 
743
881
  /**
744
- * Subclass of `VNextRouter` with `TInputContext` and `TContext` set to the same type, for backcompat.
745
- *
746
882
  * @deprecated
747
883
  */
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>();
884
+ export function router<TContext, TMeta extends Record<string, any> = {}>() {
885
+ return new Router<TContext, TContext, TMeta, {}, {}, {}, DefaultErrorShape>();
770
886
  }