@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
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var transformTRPCResponse = require('../transformTRPCResponse-bd24f548.js');
6
- var subscription = require('../subscription-5b7e1eba.js');
7
- require('events');
5
+ var TRPCError = require('../TRPCError-9050a68d.js');
6
+ var transformTRPCResponse = require('../transformTRPCResponse-0c261655.js');
7
+ var observable = require('../observable-341a0506.js');
8
8
 
9
9
  /* istanbul ignore next */
10
10
  function assertIsObject(obj) {
@@ -59,8 +59,8 @@ function parseMessage(obj, transformer) {
59
59
  if (method === 'subscription.stop') {
60
60
  return {
61
61
  id,
62
- method,
63
- params: undefined
62
+ jsonrpc,
63
+ method
64
64
  };
65
65
  }
66
66
 
@@ -73,8 +73,8 @@ function parseMessage(obj, transformer) {
73
73
  assertIsString(path);
74
74
  const input = transformer.input.deserialize(rawInput);
75
75
  return {
76
- jsonrpc,
77
76
  id,
77
+ jsonrpc,
78
78
  method,
79
79
  params: {
80
80
  input,
@@ -96,13 +96,27 @@ function applyWSSHandler(opts) {
96
96
  const {
97
97
  transformer
98
98
  } = router._def;
99
- wss.on('connection', (client, req) => {
99
+ wss.on('connection', async (client, req) => {
100
100
  const clientSubscriptions = new Map();
101
101
 
102
102
  function respond(untransformedJSON) {
103
103
  client.send(JSON.stringify(transformTRPCResponse.transformTRPCResponse(router, untransformedJSON)));
104
104
  }
105
105
 
106
+ function stopSubscription(subscription, {
107
+ id,
108
+ jsonrpc
109
+ }) {
110
+ subscription.unsubscribe();
111
+ respond({
112
+ id,
113
+ jsonrpc,
114
+ result: {
115
+ type: 'stopped'
116
+ }
117
+ });
118
+ }
119
+
106
120
  const ctxPromise = createContext === null || createContext === void 0 ? void 0 : createContext({
107
121
  req,
108
122
  res: client
@@ -111,12 +125,13 @@ function applyWSSHandler(opts) {
111
125
 
112
126
  async function handleRequest(msg) {
113
127
  const {
114
- id
128
+ id,
129
+ jsonrpc
115
130
  } = msg;
116
131
  /* istanbul ignore next */
117
132
 
118
133
  if (id === null) {
119
- throw new transformTRPCResponse.TRPCError({
134
+ throw new TRPCError.TRPCError({
120
135
  code: 'BAD_REQUEST',
121
136
  message: '`id` is required'
122
137
  });
@@ -126,7 +141,10 @@ function applyWSSHandler(opts) {
126
141
  const sub = clientSubscriptions.get(id);
127
142
 
128
143
  if (sub) {
129
- sub.destroy();
144
+ stopSubscription(sub, {
145
+ id,
146
+ jsonrpc
147
+ });
130
148
  }
131
149
 
132
150
  clientSubscriptions.delete(id);
@@ -142,17 +160,21 @@ function applyWSSHandler(opts) {
142
160
  try {
143
161
  await ctxPromise; // asserts context has been set
144
162
 
145
- const result = await transformTRPCResponse.callProcedure({
146
- path,
147
- input,
148
- type,
149
- router,
150
- ctx
151
- });
163
+ const caller = router.createCaller(ctx);
164
+ const result = await caller[type](path, input);
152
165
 
153
- if (!(result instanceof subscription.Subscription)) {
166
+ if (type === 'subscription') {
167
+ if (!observable.isObservable(result)) {
168
+ throw new TRPCError.TRPCError({
169
+ message: `Subscription ${path} did not return an observable`,
170
+ code: 'INTERNAL_SERVER_ERROR'
171
+ });
172
+ }
173
+ } else {
174
+ // send the value as data if the method is not a subscription
154
175
  respond({
155
176
  id,
177
+ jsonrpc,
156
178
  result: {
157
179
  type: 'data',
158
180
  data: result
@@ -161,12 +183,61 @@ function applyWSSHandler(opts) {
161
183
  return;
162
184
  }
163
185
 
164
- const sub = result;
186
+ const observable$1 = result;
187
+ const sub = observable$1.subscribe({
188
+ next(data) {
189
+ respond({
190
+ id,
191
+ jsonrpc,
192
+ result: {
193
+ type: 'data',
194
+ data
195
+ }
196
+ });
197
+ },
198
+
199
+ error(err) {
200
+ var _opts$onError;
201
+
202
+ const error = TRPCError.getErrorFromUnknown(err);
203
+ (_opts$onError = opts.onError) === null || _opts$onError === void 0 ? void 0 : _opts$onError.call(opts, {
204
+ error,
205
+ path,
206
+ type,
207
+ ctx,
208
+ req,
209
+ input
210
+ });
211
+ respond({
212
+ id,
213
+ jsonrpc,
214
+ error: router.getErrorShape({
215
+ error,
216
+ type,
217
+ path,
218
+ input,
219
+ ctx
220
+ })
221
+ });
222
+ },
223
+
224
+ complete() {
225
+ respond({
226
+ id,
227
+ jsonrpc,
228
+ result: {
229
+ type: 'stopped'
230
+ }
231
+ });
232
+ }
233
+
234
+ });
165
235
  /* istanbul ignore next */
166
236
 
167
237
  if (client.readyState !== client.OPEN) {
168
238
  // if the client got disconnected whilst initializing the subscription
169
- sub.destroy();
239
+ // no need to send stopped message if the client is disconnected
240
+ sub.unsubscribe();
170
241
  return;
171
242
  }
172
243
  /* istanbul ignore next */
@@ -174,76 +245,31 @@ function applyWSSHandler(opts) {
174
245
 
175
246
  if (clientSubscriptions.has(id)) {
176
247
  // duplicate request ids for client
177
- sub.destroy();
178
- throw new transformTRPCResponse.TRPCError({
248
+ stopSubscription(sub, {
249
+ id,
250
+ jsonrpc
251
+ });
252
+ throw new TRPCError.TRPCError({
179
253
  message: `Duplicate id ${id}`,
180
254
  code: 'BAD_REQUEST'
181
255
  });
182
256
  }
183
257
 
184
258
  clientSubscriptions.set(id, sub);
185
- sub.on('data', data => {
186
- respond({
187
- id,
188
- result: {
189
- type: 'data',
190
- data
191
- }
192
- });
193
- });
194
- sub.on('error', _error => {
195
- var _opts$onError;
196
-
197
- const error = transformTRPCResponse.getErrorFromUnknown(_error);
198
- const json = {
199
- id,
200
- error: router.getErrorShape({
201
- error,
202
- type,
203
- path,
204
- input,
205
- ctx
206
- })
207
- };
208
- (_opts$onError = opts.onError) === null || _opts$onError === void 0 ? void 0 : _opts$onError.call(opts, {
209
- error,
210
- path,
211
- type,
212
- ctx,
213
- req,
214
- input
215
- });
216
- respond(json);
217
- });
218
- sub.on('destroy', () => {
219
- respond({
220
- id,
221
- result: {
222
- type: 'stopped'
223
- }
224
- });
225
- });
226
259
  respond({
227
260
  id,
261
+ jsonrpc,
228
262
  result: {
229
263
  type: 'started'
230
264
  }
231
265
  });
232
- await sub.start();
233
266
  } catch (cause)
234
267
  /* istanbul ignore next */
235
268
  {
236
269
  var _opts$onError2;
237
270
 
238
271
  // procedure threw an error
239
- const error = transformTRPCResponse.getErrorFromUnknown(cause);
240
- const json = router.getErrorShape({
241
- error,
242
- type,
243
- path,
244
- input,
245
- ctx
246
- });
272
+ const error = TRPCError.getErrorFromUnknown(cause);
247
273
  (_opts$onError2 = opts.onError) === null || _opts$onError2 === void 0 ? void 0 : _opts$onError2.call(opts, {
248
274
  error,
249
275
  path,
@@ -254,7 +280,14 @@ function applyWSSHandler(opts) {
254
280
  });
255
281
  respond({
256
282
  id,
257
- error: json
283
+ jsonrpc,
284
+ error: router.getErrorShape({
285
+ error,
286
+ type,
287
+ path,
288
+ input,
289
+ ctx
290
+ })
258
291
  });
259
292
  }
260
293
  }
@@ -263,11 +296,12 @@ function applyWSSHandler(opts) {
263
296
  try {
264
297
  const msgJSON = JSON.parse(message.toString());
265
298
  const msgs = Array.isArray(msgJSON) ? msgJSON : [msgJSON];
266
- msgs.map(raw => parseMessage(raw, transformer)).map(handleRequest);
299
+ const promises = msgs.map(raw => parseMessage(raw, transformer)).map(handleRequest);
300
+ await Promise.all(promises);
267
301
  } catch (cause) {
268
- const error = new transformTRPCResponse.TRPCError({
302
+ const error = new TRPCError.TRPCError({
269
303
  code: 'PARSE_ERROR',
270
- cause
304
+ cause: TRPCError.getCauseFromUnknown(cause)
271
305
  });
272
306
  respond({
273
307
  id: null,
@@ -283,7 +317,7 @@ function applyWSSHandler(opts) {
283
317
  });
284
318
  client.once('close', () => {
285
319
  for (const sub of clientSubscriptions.values()) {
286
- sub.destroy();
320
+ sub.unsubscribe();
287
321
  }
288
322
 
289
323
  clientSubscriptions.clear();
@@ -295,17 +329,7 @@ function applyWSSHandler(opts) {
295
329
  } catch (cause) {
296
330
  var _opts$onError3, _global$setImmediate;
297
331
 
298
- const error = transformTRPCResponse.getErrorFromUnknown(cause);
299
- const json = {
300
- id: null,
301
- error: router.getErrorShape({
302
- error,
303
- type: 'unknown',
304
- path: undefined,
305
- input: undefined,
306
- ctx
307
- })
308
- };
332
+ const error = TRPCError.getErrorFromUnknown(cause);
309
333
  (_opts$onError3 = opts.onError) === null || _opts$onError3 === void 0 ? void 0 : _opts$onError3.call(opts, {
310
334
  error,
311
335
  path: undefined,
@@ -314,7 +338,16 @@ function applyWSSHandler(opts) {
314
338
  req,
315
339
  input: undefined
316
340
  });
317
- respond(json); // close in next tick
341
+ respond({
342
+ id: null,
343
+ error: router.getErrorShape({
344
+ error,
345
+ type: 'unknown',
346
+ path: undefined,
347
+ input: undefined,
348
+ ctx
349
+ })
350
+ }); // close in next tick
318
351
 
319
352
  ((_global$setImmediate = global.setImmediate) !== null && _global$setImmediate !== void 0 ? _global$setImmediate : global.setTimeout)(() => {
320
353
  client.close();
@@ -322,7 +355,7 @@ function applyWSSHandler(opts) {
322
355
  }
323
356
  }
324
357
 
325
- createContextAsync();
358
+ await createContextAsync();
326
359
  });
327
360
  return {
328
361
  broadcastReconnectNotification: () => {
@@ -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, g as getCauseFromUnknown, a as getErrorFromUnknown } from '../TRPCError-b7fa0c31.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 } 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,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,cAAc,SAAS,CAAC"}