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

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 (345) 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-97212592.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/index.js +190 -0
  43. package/dist/adapters/aws-lambda/index.mjs +186 -0
  44. package/dist/{ws → adapters/aws-lambda}/index.ts.js +0 -0
  45. package/dist/adapters/aws-lambda/utils.d.ts +35 -0
  46. package/dist/adapters/aws-lambda/utils.d.ts.map +1 -0
  47. package/dist/adapters/express.d.ts +1 -1
  48. package/dist/adapters/express.d.ts.map +1 -1
  49. package/dist/adapters/express.js +8 -7
  50. package/dist/adapters/express.mjs +8 -7
  51. package/dist/adapters/fastify/fastifyRequestHandler.d.ts +13 -0
  52. package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -0
  53. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts +12 -0
  54. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -0
  55. package/dist/adapters/fastify/index.d.ts +3 -0
  56. package/dist/adapters/fastify/index.d.ts.map +1 -0
  57. package/dist/adapters/fastify/index.js +108 -0
  58. package/dist/adapters/fastify/index.mjs +103 -0
  59. package/dist/adapters/fastify/index.ts.js +1 -0
  60. package/dist/adapters/fetch/fetchRequestHandler.d.ts +8 -0
  61. package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -0
  62. package/dist/adapters/fetch/index.d.ts +3 -0
  63. package/dist/adapters/fetch/index.d.ts.map +1 -0
  64. package/dist/adapters/fetch/index.js +69 -0
  65. package/dist/adapters/fetch/index.mjs +65 -0
  66. package/dist/adapters/fetch/index.ts.js +1 -0
  67. package/dist/adapters/fetch/types.d.ts +21 -0
  68. package/dist/adapters/fetch/types.d.ts.map +1 -0
  69. package/dist/adapters/lambda/index.d.ts +12 -0
  70. package/dist/adapters/lambda/index.d.ts.map +1 -0
  71. package/dist/adapters/next.d.ts +2 -2
  72. package/dist/adapters/next.d.ts.map +1 -1
  73. package/dist/adapters/next.js +9 -9
  74. package/dist/adapters/next.mjs +8 -8
  75. package/dist/adapters/node-http/index.js +5 -4
  76. package/dist/adapters/node-http/index.mjs +5 -4
  77. package/dist/adapters/node-http/internals/getPostBody.d.ts +1 -1
  78. package/dist/adapters/node-http/internals/getPostBody.d.ts.map +1 -1
  79. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts +2 -2
  80. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
  81. package/dist/adapters/node-http/types.d.ts +11 -9
  82. package/dist/adapters/node-http/types.d.ts.map +1 -1
  83. package/dist/adapters/standalone.d.ts +2 -2
  84. package/dist/adapters/standalone.d.ts.map +1 -1
  85. package/dist/adapters/standalone.js +11 -7
  86. package/dist/adapters/standalone.mjs +11 -6
  87. package/dist/adapters/ws.d.ts +8 -6
  88. package/dist/adapters/ws.d.ts.map +1 -1
  89. package/dist/adapters/ws.js +123 -90
  90. package/dist/adapters/ws.mjs +118 -85
  91. package/dist/assertNotBrowser.d.ts.map +1 -1
  92. package/dist/core/index.d.ts +6 -0
  93. package/dist/core/index.d.ts.map +1 -0
  94. package/dist/core/initTRPC.d.ts +87 -0
  95. package/dist/core/initTRPC.d.ts.map +1 -0
  96. package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts +282 -0
  97. package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts.map +1 -0
  98. package/dist/core/internals/config.d.ts +36 -0
  99. package/dist/core/internals/config.d.ts.map +1 -0
  100. package/dist/core/internals/getParseFn.d.ts +9 -0
  101. package/dist/core/internals/getParseFn.d.ts.map +1 -0
  102. package/dist/core/internals/mergeRouters.d.ts +3 -0
  103. package/dist/core/internals/mergeRouters.d.ts.map +1 -0
  104. package/dist/core/internals/mergeWithoutOverrides.d.ts +5 -0
  105. package/dist/core/internals/mergeWithoutOverrides.d.ts.map +1 -0
  106. package/dist/core/internals/omitPrototype.d.ts +6 -0
  107. package/dist/core/internals/omitPrototype.d.ts.map +1 -0
  108. package/dist/core/internals/prefixObjectKeys.d.ts +2 -0
  109. package/dist/core/internals/prefixObjectKeys.d.ts.map +1 -0
  110. package/dist/core/internals/procedureBuilder.d.ts +122 -0
  111. package/dist/core/internals/procedureBuilder.d.ts.map +1 -0
  112. package/dist/core/internals/utils.d.ts +44 -0
  113. package/dist/core/internals/utils.d.ts.map +1 -0
  114. package/dist/core/middleware.d.ts +87 -0
  115. package/dist/core/middleware.d.ts.map +1 -0
  116. package/dist/core/parser.d.ts +25 -0
  117. package/dist/core/parser.d.ts.map +1 -0
  118. package/dist/core/procedure.d.ts +88 -0
  119. package/dist/core/procedure.d.ts.map +1 -0
  120. package/dist/core/router.d.ts +128 -0
  121. package/dist/core/router.d.ts.map +1 -0
  122. package/dist/core/types.d.ts +19 -0
  123. package/dist/core/types.d.ts.map +1 -0
  124. package/dist/{internals → deprecated/internals}/callProcedure.d.ts +5 -2
  125. package/dist/deprecated/internals/callProcedure.d.ts.map +1 -0
  126. package/dist/{internals → deprecated/internals}/middlewares.d.ts +21 -3
  127. package/dist/deprecated/internals/middlewares.d.ts.map +1 -0
  128. package/dist/deprecated/internals/procedure.d.ts +96 -0
  129. package/dist/deprecated/internals/procedure.d.ts.map +1 -0
  130. package/dist/deprecated/interop.d.ts +34 -0
  131. package/dist/deprecated/interop.d.ts.map +1 -0
  132. package/dist/deprecated/router.d.ts +194 -0
  133. package/dist/deprecated/router.d.ts.map +1 -0
  134. package/dist/{codes-7a3d4f65.mjs → envelopes-af8c2959.mjs} +30 -1
  135. package/dist/{codes-7f46544e.js → envelopes-b6dd0367.js} +29 -1
  136. package/dist/error/TRPCError.d.ts +11 -0
  137. package/dist/error/TRPCError.d.ts.map +1 -0
  138. package/dist/error/formatter.d.ts +33 -0
  139. package/dist/error/formatter.d.ts.map +1 -0
  140. package/dist/{internals/errors.d.ts → error/utils.d.ts} +3 -2
  141. package/dist/error/utils.d.ts.map +1 -0
  142. package/dist/http/index.d.ts +1 -1
  143. package/dist/http/index.d.ts.map +1 -1
  144. package/dist/http/internals/getHTTPStatusCode.d.ts +2 -1
  145. package/dist/http/internals/getHTTPStatusCode.d.ts.map +1 -1
  146. package/dist/http/internals/types.d.ts +11 -8
  147. package/dist/http/internals/types.d.ts.map +1 -1
  148. package/dist/http/resolveHTTPResponse.d.ts +4 -4
  149. package/dist/http/resolveHTTPResponse.d.ts.map +1 -1
  150. package/dist/http/{ResponseMeta.d.ts → types.d.ts} +1 -1
  151. package/dist/http/types.d.ts.map +1 -0
  152. package/dist/index-1a25ccbd.js +33 -0
  153. package/dist/index-a3bd54c7.mjs +31 -0
  154. package/dist/index.d.ts +4 -5
  155. package/dist/index.d.ts.map +1 -1
  156. package/dist/index.js +95 -496
  157. package/dist/index.mjs +88 -488
  158. package/dist/internals/transformTRPCResponse.d.ts +5 -3
  159. package/dist/internals/transformTRPCResponse.d.ts.map +1 -1
  160. package/dist/internals/types.d.ts +23 -0
  161. package/dist/internals/types.d.ts.map +1 -0
  162. package/dist/internals.d.ts +11 -0
  163. package/dist/internals.d.ts.map +1 -0
  164. package/dist/nodeHTTPRequestHandler-65cf2218.mjs +105 -0
  165. package/dist/nodeHTTPRequestHandler-6b7c8622.js +107 -0
  166. package/dist/observable/index.d.ts +5 -0
  167. package/dist/observable/index.d.ts.map +1 -0
  168. package/dist/observable/index.js +204 -0
  169. package/dist/observable/index.mjs +195 -0
  170. package/dist/observable/index.ts.js +1 -0
  171. package/dist/observable/internals/identity.d.ts +2 -0
  172. package/dist/observable/internals/identity.d.ts.map +1 -0
  173. package/dist/observable/internals/observableToPromise.d.ts +10 -0
  174. package/dist/observable/internals/observableToPromise.d.ts.map +1 -0
  175. package/dist/observable/internals/pipe.d.ts +4 -0
  176. package/dist/observable/internals/pipe.d.ts.map +1 -0
  177. package/dist/observable/observable.d.ts +5 -0
  178. package/dist/observable/observable.d.ts.map +1 -0
  179. package/dist/observable/operators/index.d.ts +4 -0
  180. package/dist/observable/operators/index.d.ts.map +1 -0
  181. package/dist/observable/operators/map.d.ts +3 -0
  182. package/dist/observable/operators/map.d.ts.map +1 -0
  183. package/dist/observable/operators/share.d.ts +6 -0
  184. package/dist/observable/operators/share.d.ts.map +1 -0
  185. package/dist/observable/operators/tap.d.ts +3 -0
  186. package/dist/observable/operators/tap.d.ts.map +1 -0
  187. package/dist/observable/types.d.ts +29 -0
  188. package/dist/observable/types.d.ts.map +1 -0
  189. package/dist/observable-341a0506.js +109 -0
  190. package/dist/observable-cfedfa30.mjs +106 -0
  191. package/dist/{nodeHTTPRequestHandler-10e6d2f9.mjs → resolveHTTPResponse-95634936.mjs} +32 -133
  192. package/dist/{nodeHTTPRequestHandler-d7c307d3.js → resolveHTTPResponse-fcc8f644.js} +37 -139
  193. package/dist/router-6665b0ee.mjs +1093 -0
  194. package/dist/router-9d12560f.js +1103 -0
  195. package/dist/rpc/codes.d.ts +2 -0
  196. package/dist/rpc/codes.d.ts.map +1 -1
  197. package/dist/rpc/envelopes.d.ts +62 -40
  198. package/dist/rpc/envelopes.d.ts.map +1 -1
  199. package/dist/rpc/index.js +7 -3
  200. package/dist/rpc/index.mjs +1 -1
  201. package/dist/rpc/internals/invert.d.ts +18 -0
  202. package/dist/rpc/internals/invert.d.ts.map +1 -0
  203. package/dist/shared/createProxy/index.d.ts +12 -0
  204. package/dist/shared/createProxy/index.d.ts.map +1 -0
  205. package/dist/shared/index.d.ts +2 -0
  206. package/dist/shared/index.d.ts.map +1 -0
  207. package/dist/shared/index.js +9 -0
  208. package/dist/shared/index.mjs +1 -0
  209. package/dist/shared/index.ts.js +1 -0
  210. package/dist/subscription.d.ts +3 -52
  211. package/dist/subscription.d.ts.map +1 -1
  212. package/dist/subscription.js +44 -0
  213. package/dist/subscription.mjs +40 -0
  214. package/dist/subscription.ts.js +1 -0
  215. package/dist/transformTRPCResponse-0c261655.js +29 -0
  216. package/dist/transformTRPCResponse-747b9a68.mjs +27 -0
  217. package/dist/transformer.d.ts +14 -0
  218. package/dist/transformer.d.ts.map +1 -1
  219. package/dist/types.d.ts +35 -8
  220. package/dist/types.d.ts.map +1 -1
  221. package/observable/index.d.ts +1 -0
  222. package/observable/index.js +1 -0
  223. package/package.json +57 -16
  224. package/rpc/dist/trpc-server-rpc.cjs.dev.js +1 -1
  225. package/rpc/dist/trpc-server-rpc.cjs.prod.js +1 -1
  226. package/rpc/dist/trpc-server-rpc.esm.js +1 -1
  227. package/shared/index.d.ts +1 -0
  228. package/shared/index.js +1 -0
  229. package/src/adapters/aws-lambda/index.ts +173 -0
  230. package/src/adapters/aws-lambda/utils.ts +92 -0
  231. package/src/adapters/express.ts +4 -4
  232. package/src/adapters/fastify/fastifyRequestHandler.ts +77 -0
  233. package/src/adapters/fastify/fastifyTRPCPlugin.ts +56 -0
  234. package/src/adapters/fastify/index.ts +2 -0
  235. package/src/adapters/fetch/fetchRequestHandler.ts +61 -0
  236. package/src/adapters/fetch/index.ts +2 -0
  237. package/src/adapters/fetch/types.ts +28 -0
  238. package/src/adapters/lambda/index.ts +18 -0
  239. package/src/adapters/next.ts +10 -8
  240. package/src/adapters/node-http/internals/getPostBody.test.ts +2 -1
  241. package/src/adapters/node-http/internals/getPostBody.ts +1 -1
  242. package/src/adapters/node-http/nodeHTTPRequestHandler.ts +7 -7
  243. package/src/adapters/node-http/types.ts +11 -9
  244. package/src/adapters/standalone.ts +12 -4
  245. package/src/adapters/ws.ts +135 -91
  246. package/src/assertNotBrowser.ts +1 -0
  247. package/src/core/index.ts +11 -0
  248. package/src/core/initTRPC.ts +95 -0
  249. package/src/core/internals/__generated__/mergeRoutersGeneric.ts +386 -0
  250. package/src/core/internals/config.ts +43 -0
  251. package/src/core/internals/getParseFn.ts +47 -0
  252. package/src/core/internals/mergeRouters.ts +45 -0
  253. package/src/core/internals/mergeWithoutOverrides.ts +19 -0
  254. package/src/core/internals/omitPrototype.ts +9 -0
  255. package/src/core/internals/prefixObjectKeys.ts +9 -0
  256. package/src/core/internals/procedureBuilder.ts +398 -0
  257. package/src/core/internals/utils.ts +64 -0
  258. package/src/core/middleware.ts +96 -0
  259. package/src/core/parser.ts +45 -0
  260. package/src/core/procedure.ts +120 -0
  261. package/src/core/router.ts +366 -0
  262. package/src/core/types.ts +58 -0
  263. package/src/{internals → deprecated/internals}/callProcedure.ts +9 -3
  264. package/src/{internals → deprecated/internals}/middlewares.ts +23 -3
  265. package/src/deprecated/internals/procedure.ts +415 -0
  266. package/src/deprecated/interop.ts +229 -0
  267. package/src/{router.ts → deprecated/router.ts} +219 -104
  268. package/src/{TRPCError.ts → error/TRPCError.ts} +6 -14
  269. package/src/error/formatter.ts +51 -0
  270. package/src/{internals/errors.ts → error/utils.ts} +21 -5
  271. package/src/http/index.ts +1 -1
  272. package/src/http/internals/getHTTPStatusCode.ts +3 -2
  273. package/src/http/internals/types.ts +11 -14
  274. package/src/http/resolveHTTPResponse.ts +29 -38
  275. package/src/http/{ResponseMeta.ts → types.ts} +0 -0
  276. package/src/index.ts +4 -7
  277. package/src/internals/transformTRPCResponse.ts +21 -16
  278. package/src/internals/types.ts +24 -0
  279. package/src/internals.ts +14 -0
  280. package/src/observable/index.ts +4 -0
  281. package/src/observable/internals/identity.ts +3 -0
  282. package/src/observable/internals/observableToPromise.ts +49 -0
  283. package/src/observable/internals/pipe.ts +23 -0
  284. package/src/observable/observable.test.ts +101 -0
  285. package/src/observable/observable.ts +78 -0
  286. package/src/observable/operators/index.ts +3 -0
  287. package/src/observable/operators/map.test.ts +92 -0
  288. package/src/observable/operators/map.ts +25 -0
  289. package/src/observable/operators/share.test.ts +60 -0
  290. package/src/observable/operators/share.ts +67 -0
  291. package/src/observable/operators/tap.ts +26 -0
  292. package/src/observable/types.ts +69 -0
  293. package/src/rpc/codes.ts +2 -1
  294. package/src/rpc/envelopes.ts +88 -69
  295. package/src/rpc/internals/invert.ts +27 -0
  296. package/src/shared/createProxy/index.ts +38 -0
  297. package/src/shared/index.ts +1 -0
  298. package/src/subscription.ts +7 -125
  299. package/src/transformer.ts +28 -0
  300. package/src/types.ts +40 -9
  301. package/dist/TRPCError.d.ts +0 -19
  302. package/dist/TRPCError.d.ts.map +0 -1
  303. package/dist/deprecated/LegacyRouter.d.ts +0 -3
  304. package/dist/deprecated/LegacyRouter.d.ts.map +0 -1
  305. package/dist/deprecated/createHttpServer.d.ts +0 -19
  306. package/dist/deprecated/createHttpServer.d.ts.map +0 -1
  307. package/dist/deprecated/requestHandler.d.ts +0 -15
  308. package/dist/deprecated/requestHandler.d.ts.map +0 -1
  309. package/dist/http/ResponseMeta.d.ts.map +0 -1
  310. package/dist/internals/BaseHandlerOptions.d.ts +0 -13
  311. package/dist/internals/BaseHandlerOptions.d.ts.map +0 -1
  312. package/dist/internals/OnErrorFunction.d.ts +0 -11
  313. package/dist/internals/OnErrorFunction.d.ts.map +0 -1
  314. package/dist/internals/callProcedure.d.ts.map +0 -1
  315. package/dist/internals/errors.d.ts.map +0 -1
  316. package/dist/internals/middlewares.d.ts.map +0 -1
  317. package/dist/internals/procedure.d.ts +0 -74
  318. package/dist/internals/procedure.d.ts.map +0 -1
  319. package/dist/internals/wrapCallSafe.d.ts +0 -16
  320. package/dist/internals/wrapCallSafe.d.ts.map +0 -1
  321. package/dist/router.d.ts +0 -176
  322. package/dist/router.d.ts.map +0 -1
  323. package/dist/subscription-5b7e1eba.js +0 -136
  324. package/dist/subscription-e1d42e69.mjs +0 -133
  325. package/dist/transformTRPCResponse-76e0c91e.mjs +0 -109
  326. package/dist/transformTRPCResponse-bd24f548.js +0 -114
  327. package/dist/ws/index.d.ts +0 -7
  328. package/dist/ws/index.d.ts.map +0 -1
  329. package/dist/ws/index.js +0 -15
  330. package/dist/ws/index.mjs +0 -11
  331. package/src/deprecated/LegacyRouter.ts +0 -3
  332. package/src/deprecated/createHttpServer.ts +0 -29
  333. package/src/deprecated/requestHandler.ts +0 -26
  334. package/src/internals/BaseHandlerOptions.ts +0 -13
  335. package/src/internals/OnErrorFunction.ts +0 -11
  336. package/src/internals/procedure.ts +0 -283
  337. package/src/internals/wrapCallSafe.ts +0 -19
  338. package/src/ws/index.ts +0 -8
  339. package/ws/dist/trpc-server-ws.cjs.d.ts +0 -1
  340. package/ws/dist/trpc-server-ws.cjs.dev.js +0 -15
  341. package/ws/dist/trpc-server-ws.cjs.js +0 -7
  342. package/ws/dist/trpc-server-ws.cjs.prod.js +0 -15
  343. package/ws/dist/trpc-server-ws.esm.js +0 -11
  344. package/ws/index.d.ts +0 -1
  345. package/ws/index.js +0 -1
@@ -1,6 +1,6 @@
1
- import { T as TRPCError, t as transformTRPCResponse, c as callProcedure, g as getErrorFromUnknown } from '../transformTRPCResponse-76e0c91e.mjs';
2
- import { S as Subscription } from '../subscription-e1d42e69.mjs';
3
- import 'events';
1
+ import { T as TRPCError, a as getCauseFromUnknown, g as getErrorFromUnknown } from '../TRPCError-97212592.mjs';
2
+ import { t as transformTRPCResponse } from '../transformTRPCResponse-747b9a68.mjs';
3
+ import { i as isObservable } from '../observable-cfedfa30.mjs';
4
4
 
5
5
  /* istanbul ignore next */
6
6
  function assertIsObject(obj) {
@@ -55,8 +55,8 @@ function parseMessage(obj, transformer) {
55
55
  if (method === 'subscription.stop') {
56
56
  return {
57
57
  id,
58
- method,
59
- params: undefined
58
+ jsonrpc,
59
+ method
60
60
  };
61
61
  }
62
62
 
@@ -69,8 +69,8 @@ function parseMessage(obj, transformer) {
69
69
  assertIsString(path);
70
70
  const input = transformer.input.deserialize(rawInput);
71
71
  return {
72
- jsonrpc,
73
72
  id,
73
+ jsonrpc,
74
74
  method,
75
75
  params: {
76
76
  input,
@@ -92,13 +92,27 @@ function applyWSSHandler(opts) {
92
92
  const {
93
93
  transformer
94
94
  } = router._def;
95
- wss.on('connection', (client, req) => {
95
+ wss.on('connection', async (client, req) => {
96
96
  const clientSubscriptions = new Map();
97
97
 
98
98
  function respond(untransformedJSON) {
99
99
  client.send(JSON.stringify(transformTRPCResponse(router, untransformedJSON)));
100
100
  }
101
101
 
102
+ function stopSubscription(subscription, {
103
+ id,
104
+ jsonrpc
105
+ }) {
106
+ subscription.unsubscribe();
107
+ respond({
108
+ id,
109
+ jsonrpc,
110
+ result: {
111
+ type: 'stopped'
112
+ }
113
+ });
114
+ }
115
+
102
116
  const ctxPromise = createContext === null || createContext === void 0 ? void 0 : createContext({
103
117
  req,
104
118
  res: client
@@ -107,7 +121,8 @@ function applyWSSHandler(opts) {
107
121
 
108
122
  async function handleRequest(msg) {
109
123
  const {
110
- id
124
+ id,
125
+ jsonrpc
111
126
  } = msg;
112
127
  /* istanbul ignore next */
113
128
 
@@ -122,7 +137,10 @@ function applyWSSHandler(opts) {
122
137
  const sub = clientSubscriptions.get(id);
123
138
 
124
139
  if (sub) {
125
- sub.destroy();
140
+ stopSubscription(sub, {
141
+ id,
142
+ jsonrpc
143
+ });
126
144
  }
127
145
 
128
146
  clientSubscriptions.delete(id);
@@ -138,17 +156,21 @@ function applyWSSHandler(opts) {
138
156
  try {
139
157
  await ctxPromise; // asserts context has been set
140
158
 
141
- const result = await callProcedure({
142
- path,
143
- input,
144
- type,
145
- router,
146
- ctx
147
- });
159
+ const caller = router.createCaller(ctx);
160
+ const result = await caller[type](path, input);
148
161
 
149
- if (!(result instanceof Subscription)) {
162
+ if (type === 'subscription') {
163
+ if (!isObservable(result)) {
164
+ throw new TRPCError({
165
+ message: `Subscription ${path} did not return an observable`,
166
+ code: 'INTERNAL_SERVER_ERROR'
167
+ });
168
+ }
169
+ } else {
170
+ // send the value as data if the method is not a subscription
150
171
  respond({
151
172
  id,
173
+ jsonrpc,
152
174
  result: {
153
175
  type: 'data',
154
176
  data: result
@@ -157,12 +179,61 @@ function applyWSSHandler(opts) {
157
179
  return;
158
180
  }
159
181
 
160
- const sub = result;
182
+ const observable = result;
183
+ const sub = observable.subscribe({
184
+ next(data) {
185
+ respond({
186
+ id,
187
+ jsonrpc,
188
+ result: {
189
+ type: 'data',
190
+ data
191
+ }
192
+ });
193
+ },
194
+
195
+ error(err) {
196
+ var _opts$onError;
197
+
198
+ const error = getErrorFromUnknown(err);
199
+ (_opts$onError = opts.onError) === null || _opts$onError === void 0 ? void 0 : _opts$onError.call(opts, {
200
+ error,
201
+ path,
202
+ type,
203
+ ctx,
204
+ req,
205
+ input
206
+ });
207
+ respond({
208
+ id,
209
+ jsonrpc,
210
+ error: router.getErrorShape({
211
+ error,
212
+ type,
213
+ path,
214
+ input,
215
+ ctx
216
+ })
217
+ });
218
+ },
219
+
220
+ complete() {
221
+ respond({
222
+ id,
223
+ jsonrpc,
224
+ result: {
225
+ type: 'stopped'
226
+ }
227
+ });
228
+ }
229
+
230
+ });
161
231
  /* istanbul ignore next */
162
232
 
163
233
  if (client.readyState !== client.OPEN) {
164
234
  // if the client got disconnected whilst initializing the subscription
165
- sub.destroy();
235
+ // no need to send stopped message if the client is disconnected
236
+ sub.unsubscribe();
166
237
  return;
167
238
  }
168
239
  /* istanbul ignore next */
@@ -170,7 +241,10 @@ function applyWSSHandler(opts) {
170
241
 
171
242
  if (clientSubscriptions.has(id)) {
172
243
  // duplicate request ids for client
173
- sub.destroy();
244
+ stopSubscription(sub, {
245
+ id,
246
+ jsonrpc
247
+ });
174
248
  throw new TRPCError({
175
249
  message: `Duplicate id ${id}`,
176
250
  code: 'BAD_REQUEST'
@@ -178,54 +252,13 @@ function applyWSSHandler(opts) {
178
252
  }
179
253
 
180
254
  clientSubscriptions.set(id, sub);
181
- sub.on('data', data => {
182
- respond({
183
- id,
184
- result: {
185
- type: 'data',
186
- data
187
- }
188
- });
189
- });
190
- sub.on('error', _error => {
191
- var _opts$onError;
192
-
193
- const error = getErrorFromUnknown(_error);
194
- const json = {
195
- id,
196
- error: router.getErrorShape({
197
- error,
198
- type,
199
- path,
200
- input,
201
- ctx
202
- })
203
- };
204
- (_opts$onError = opts.onError) === null || _opts$onError === void 0 ? void 0 : _opts$onError.call(opts, {
205
- error,
206
- path,
207
- type,
208
- ctx,
209
- req,
210
- input
211
- });
212
- respond(json);
213
- });
214
- sub.on('destroy', () => {
215
- respond({
216
- id,
217
- result: {
218
- type: 'stopped'
219
- }
220
- });
221
- });
222
255
  respond({
223
256
  id,
257
+ jsonrpc,
224
258
  result: {
225
259
  type: 'started'
226
260
  }
227
261
  });
228
- await sub.start();
229
262
  } catch (cause)
230
263
  /* istanbul ignore next */
231
264
  {
@@ -233,13 +266,6 @@ function applyWSSHandler(opts) {
233
266
 
234
267
  // procedure threw an error
235
268
  const error = getErrorFromUnknown(cause);
236
- const json = router.getErrorShape({
237
- error,
238
- type,
239
- path,
240
- input,
241
- ctx
242
- });
243
269
  (_opts$onError2 = opts.onError) === null || _opts$onError2 === void 0 ? void 0 : _opts$onError2.call(opts, {
244
270
  error,
245
271
  path,
@@ -250,7 +276,14 @@ function applyWSSHandler(opts) {
250
276
  });
251
277
  respond({
252
278
  id,
253
- error: json
279
+ jsonrpc,
280
+ error: router.getErrorShape({
281
+ error,
282
+ type,
283
+ path,
284
+ input,
285
+ ctx
286
+ })
254
287
  });
255
288
  }
256
289
  }
@@ -259,11 +292,12 @@ function applyWSSHandler(opts) {
259
292
  try {
260
293
  const msgJSON = JSON.parse(message.toString());
261
294
  const msgs = Array.isArray(msgJSON) ? msgJSON : [msgJSON];
262
- msgs.map(raw => parseMessage(raw, transformer)).map(handleRequest);
295
+ const promises = msgs.map(raw => parseMessage(raw, transformer)).map(handleRequest);
296
+ await Promise.all(promises);
263
297
  } catch (cause) {
264
298
  const error = new TRPCError({
265
299
  code: 'PARSE_ERROR',
266
- cause
300
+ cause: getCauseFromUnknown(cause)
267
301
  });
268
302
  respond({
269
303
  id: null,
@@ -279,7 +313,7 @@ function applyWSSHandler(opts) {
279
313
  });
280
314
  client.once('close', () => {
281
315
  for (const sub of clientSubscriptions.values()) {
282
- sub.destroy();
316
+ sub.unsubscribe();
283
317
  }
284
318
 
285
319
  clientSubscriptions.clear();
@@ -292,16 +326,6 @@ function applyWSSHandler(opts) {
292
326
  var _opts$onError3, _global$setImmediate;
293
327
 
294
328
  const error = getErrorFromUnknown(cause);
295
- const json = {
296
- id: null,
297
- error: router.getErrorShape({
298
- error,
299
- type: 'unknown',
300
- path: undefined,
301
- input: undefined,
302
- ctx
303
- })
304
- };
305
329
  (_opts$onError3 = opts.onError) === null || _opts$onError3 === void 0 ? void 0 : _opts$onError3.call(opts, {
306
330
  error,
307
331
  path: undefined,
@@ -310,7 +334,16 @@ function applyWSSHandler(opts) {
310
334
  req,
311
335
  input: undefined
312
336
  });
313
- respond(json); // close in next tick
337
+ respond({
338
+ id: null,
339
+ error: router.getErrorShape({
340
+ error,
341
+ type: 'unknown',
342
+ path: undefined,
343
+ input: undefined,
344
+ ctx
345
+ })
346
+ }); // close in next tick
314
347
 
315
348
  ((_global$setImmediate = global.setImmediate) !== null && _global$setImmediate !== void 0 ? _global$setImmediate : global.setTimeout)(() => {
316
349
  client.close();
@@ -318,7 +351,7 @@ function applyWSSHandler(opts) {
318
351
  }
319
352
  }
320
353
 
321
- createContextAsync();
354
+ await createContextAsync();
322
355
  });
323
356
  return {
324
357
  broadcastReconnectNotification: () => {
@@ -1 +1 @@
1
- {"version":3,"file":"assertNotBrowser.d.ts","sourceRoot":"","sources":["../src/assertNotBrowser.ts"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,SAQ/B"}
1
+ {"version":3,"file":"assertNotBrowser.d.ts","sourceRoot":"","sources":["../src/assertNotBrowser.ts"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,SAS/B"}
@@ -0,0 +1,6 @@
1
+ export type { AnyRouter, ProcedureRouterRecord } from './router';
2
+ export { callProcedure } from './router';
3
+ export type { Procedure, ProcedureParams, ProcedureArgs, ProcedureOptions, } from './procedure';
4
+ export { initTRPC } from './initTRPC';
5
+ export * from './types';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,YAAY,EACV,SAAS,EACT,eAAe,EACf,aAAa,EACb,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,cAAc,SAAS,CAAC"}
@@ -0,0 +1,87 @@
1
+ import { mergeRoutersGeneric } from './internals/__generated__/mergeRoutersGeneric';
2
+ import { DefaultErrorShape, ErrorFormatter, ErrorFormatterShape } from '../error/formatter';
3
+ import { CombinedDataTransformer, DataTransformerOptions, DefaultDataTransformer } from '../transformer';
4
+ import { InitGenerics, InitOptions } from './internals/config';
5
+ import { PickFirstDefined, ValidateShape } from './internals/utils';
6
+ export declare function initTRPC<TParams extends Partial<InitGenerics> = {}>(): <TOptions extends Partial<InitOptions<{
7
+ ctx: TParams['ctx'] extends undefined ? {} : NonNullable<TParams['ctx']>;
8
+ meta: TParams['meta'] extends undefined ? {} : NonNullable<TParams['meta']>;
9
+ }>>>(options?: ValidateShape<TOptions, Partial<InitOptions<{
10
+ ctx: TParams['ctx'] extends undefined ? {} : NonNullable<TParams['ctx']>;
11
+ meta: TParams['meta'] extends undefined ? {} : NonNullable<TParams['meta']>;
12
+ }>>> | undefined) => {
13
+ /**
14
+ * These are just types, they can't be used
15
+ * @internal
16
+ */
17
+ _config: {
18
+ ctx: TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>;
19
+ meta: PickFirstDefined<TParams["meta"] extends undefined ? {} : NonNullable<TParams["meta"]>, undefined>;
20
+ errorShape: ErrorFormatterShape<PickFirstDefined<TOptions["errorFormatter"], ErrorFormatter<TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>, DefaultErrorShape>>>;
21
+ transformer: TOptions["transformer"] extends DataTransformerOptions ? TOptions["transformer"] extends DataTransformerOptions ? CombinedDataTransformer : DefaultDataTransformer : DefaultDataTransformer;
22
+ };
23
+ /**
24
+ * Builder object for creating procedures
25
+ */
26
+ procedure: import("./internals/procedureBuilder").ProcedureBuilder<{
27
+ _config: {
28
+ ctx: TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>;
29
+ meta: PickFirstDefined<TParams["meta"] extends undefined ? {} : NonNullable<TParams["meta"]>, undefined>;
30
+ errorShape: ErrorFormatterShape<PickFirstDefined<TOptions["errorFormatter"], ErrorFormatter<TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>, DefaultErrorShape>>>;
31
+ transformer: TOptions["transformer"] extends DataTransformerOptions ? TOptions["transformer"] extends DataTransformerOptions ? CombinedDataTransformer : DefaultDataTransformer : DefaultDataTransformer;
32
+ };
33
+ _ctx_in: TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>;
34
+ _ctx_out: TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>;
35
+ _input_in: typeof import("./internals/utils").unsetMarker;
36
+ _input_out: typeof import("./internals/utils").unsetMarker;
37
+ _output_in: typeof import("./internals/utils").unsetMarker;
38
+ _output_out: typeof import("./internals/utils").unsetMarker;
39
+ _meta: PickFirstDefined<TParams["meta"] extends undefined ? {} : NonNullable<TParams["meta"]>, undefined>;
40
+ }>;
41
+ /**
42
+ * Create reusable middlewares
43
+ */
44
+ middleware: <$TNewParams extends import("./procedure").ProcedureParams<{
45
+ transformer: CombinedDataTransformer;
46
+ errorShape: DefaultErrorShape;
47
+ ctx: Record<string, unknown>;
48
+ meta: Record<string, unknown>;
49
+ }, unknown, unknown, unknown, unknown, unknown, unknown, unknown>>(fn: import("./middleware").MiddlewareFunction<{
50
+ _config: {
51
+ ctx: TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>;
52
+ meta: PickFirstDefined<TParams["meta"] extends undefined ? {} : NonNullable<TParams["meta"]>, undefined>;
53
+ errorShape: ErrorFormatterShape<PickFirstDefined<TOptions["errorFormatter"], ErrorFormatter<TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>, DefaultErrorShape>>>;
54
+ transformer: TOptions["transformer"] extends DataTransformerOptions ? TOptions["transformer"] extends DataTransformerOptions ? CombinedDataTransformer : DefaultDataTransformer : DefaultDataTransformer;
55
+ };
56
+ _ctx_in: TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>;
57
+ _ctx_out: TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>;
58
+ _input_out: unknown;
59
+ _input_in: unknown;
60
+ _output_in: unknown;
61
+ _output_out: unknown;
62
+ _meta: PickFirstDefined<TParams["meta"] extends undefined ? {} : NonNullable<TParams["meta"]>, undefined>;
63
+ }, $TNewParams>) => import("./middleware").MiddlewareFunction<{
64
+ _config: {
65
+ ctx: TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>;
66
+ meta: PickFirstDefined<TParams["meta"] extends undefined ? {} : NonNullable<TParams["meta"]>, undefined>;
67
+ errorShape: ErrorFormatterShape<PickFirstDefined<TOptions["errorFormatter"], ErrorFormatter<TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>, DefaultErrorShape>>>;
68
+ transformer: TOptions["transformer"] extends DataTransformerOptions ? TOptions["transformer"] extends DataTransformerOptions ? CombinedDataTransformer : DefaultDataTransformer : DefaultDataTransformer;
69
+ };
70
+ _ctx_in: TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>;
71
+ _ctx_out: TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>;
72
+ _input_out: unknown;
73
+ _input_in: unknown;
74
+ _output_in: unknown;
75
+ _output_out: unknown;
76
+ _meta: PickFirstDefined<TParams["meta"] extends undefined ? {} : NonNullable<TParams["meta"]>, undefined>;
77
+ }, $TNewParams>;
78
+ /**
79
+ * Create a router
80
+ */
81
+ router: <TProcRouterRecord extends import("./router").ProcedureRouterRecord>(opts: TProcRouterRecord) => import("./router").Router<import("./router").RouterDef<TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>, ErrorFormatterShape<PickFirstDefined<TOptions["errorFormatter"], ErrorFormatter<TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>, DefaultErrorShape>>>, PickFirstDefined<TParams["meta"] extends undefined ? {} : NonNullable<TParams["meta"]>, undefined>, TProcRouterRecord>> & TProcRouterRecord;
82
+ /**
83
+ * Merge Routers
84
+ */
85
+ mergeRouters: typeof mergeRoutersGeneric;
86
+ };
87
+ //# sourceMappingURL=initTRPC.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initTRPC.d.ts","sourceRoot":"","sources":["../../src/core/initTRPC.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EAEpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EAGvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAGL,YAAY,EACZ,WAAW,EACZ,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIpE,wBAAgB,QAAQ,CAAC,OAAO,SAAS,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE;SAE1D,OAAO,CAAC,KAAK,CAAC,SAAS,SAAS,GAAG,EAAE,GAAG,YAAY,OAAO,CAAC,KAAK,CAAC,CAAC;UAClE,OAAO,CAAC,MAAM,CAAC,SAAS,SAAS,GAAG,EAAE,GAAG,YAAY,OAAO,CAAC,MAAM,CAAC,CAAC;;SADtE,OAAO,CAAC,KAAK,CAAC,SAAS,SAAS,GAAG,EAAE,GAAG,YAAY,OAAO,CAAC,KAAK,CAAC,CAAC;UAClE,OAAO,CAAC,MAAM,CAAC,SAAS,SAAS,GAAG,EAAE,GAAG,YAAY,OAAO,CAAC,MAAM,CAAC,CAAC;;IAuCzE;;;OAGG;;;;;;;IAEH;;OAEG;;;;;;;;;;;;;;;;IAEH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;OAEG;;IAKH;;OAEG;;EAIR"}