@trpc/server 10.0.0-alpha.2 → 10.0.0-alpha.22

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 (301) hide show
  1. package/adapters/express/dist/trpc-server-adapters-express.cjs.dev.js +7 -6
  2. package/adapters/express/dist/trpc-server-adapters-express.cjs.prod.js +7 -6
  3. package/adapters/express/dist/trpc-server-adapters-express.esm.js +7 -6
  4. package/adapters/express/index.d.ts +1 -0
  5. package/adapters/express/index.js +1 -0
  6. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.d.ts +1 -0
  7. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.dev.js +109 -0
  8. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.js +7 -0
  9. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.prod.js +109 -0
  10. package/adapters/fastify/dist/trpc-server-adapters-fastify.esm.js +104 -0
  11. package/adapters/fastify/index.d.ts +1 -0
  12. package/adapters/fastify/index.js +1 -0
  13. package/adapters/fetch/index.d.ts +1 -0
  14. package/adapters/fetch/index.js +1 -0
  15. package/adapters/next/dist/trpc-server-adapters-next.cjs.dev.js +4 -3
  16. package/adapters/next/dist/trpc-server-adapters-next.cjs.prod.js +4 -3
  17. package/adapters/next/dist/trpc-server-adapters-next.esm.js +4 -3
  18. package/adapters/next/index.d.ts +1 -0
  19. package/adapters/next/index.js +1 -0
  20. package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.dev.js +4 -3
  21. package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.prod.js +4 -3
  22. package/adapters/node-http/dist/trpc-server-adapters-node-http.esm.js +4 -3
  23. package/adapters/node-http/index.d.ts +1 -0
  24. package/adapters/node-http/index.js +1 -0
  25. package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.dev.js +5 -4
  26. package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.prod.js +5 -4
  27. package/adapters/standalone/dist/trpc-server-adapters-standalone.esm.js +5 -4
  28. package/adapters/standalone/index.d.ts +1 -0
  29. package/adapters/standalone/index.js +1 -0
  30. package/adapters/ws/dist/trpc-server-adapters-ws.cjs.dev.js +6 -5
  31. package/adapters/ws/dist/trpc-server-adapters-ws.cjs.prod.js +6 -5
  32. package/adapters/ws/dist/trpc-server-adapters-ws.esm.js +6 -5
  33. package/adapters/ws/index.d.ts +1 -0
  34. package/adapters/ws/index.js +1 -0
  35. package/dist/TRPCError-7971540a.mjs +65 -0
  36. package/dist/TRPCError-ddec3395.js +69 -0
  37. package/dist/TRPCError.d.ts +11 -0
  38. package/dist/TRPCError.d.ts.map +1 -0
  39. package/dist/{declarations/src/adapters → adapters}/express.d.ts +5 -5
  40. package/dist/adapters/express.d.ts.map +1 -0
  41. package/dist/adapters/express.js +23 -0
  42. package/dist/adapters/express.mjs +19 -0
  43. package/dist/adapters/express.ts.js +1 -0
  44. package/dist/adapters/fastify/fastifyRequestHandler.d.ts +13 -0
  45. package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -0
  46. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts +12 -0
  47. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -0
  48. package/dist/adapters/fastify/index.d.ts +3 -0
  49. package/dist/adapters/fastify/index.d.ts.map +1 -0
  50. package/dist/adapters/fastify/index.js +108 -0
  51. package/dist/adapters/fastify/index.mjs +103 -0
  52. package/dist/adapters/fastify/index.ts.js +1 -0
  53. package/dist/adapters/fetch/fetchRequestHandler.d.ts +8 -0
  54. package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -0
  55. package/dist/adapters/fetch/index.d.ts +3 -0
  56. package/dist/adapters/fetch/index.d.ts.map +1 -0
  57. package/dist/adapters/fetch/index.js +69 -0
  58. package/dist/adapters/fetch/index.mjs +65 -0
  59. package/dist/adapters/fetch/index.ts.js +1 -0
  60. package/dist/adapters/fetch/types.d.ts +21 -0
  61. package/dist/adapters/fetch/types.d.ts.map +1 -0
  62. package/dist/{declarations/src/adapters → adapters}/next.d.ts +5 -5
  63. package/dist/adapters/next.d.ts.map +1 -0
  64. package/dist/adapters/next.js +55 -0
  65. package/dist/adapters/next.mjs +51 -0
  66. package/dist/adapters/next.ts.js +1 -0
  67. package/dist/{declarations/src/adapters → adapters}/node-http/index.d.ts +2 -2
  68. package/dist/adapters/node-http/index.d.ts.map +1 -0
  69. package/dist/adapters/node-http/index.js +13 -0
  70. package/dist/adapters/node-http/index.mjs +5 -0
  71. package/dist/adapters/node-http/index.ts.js +1 -0
  72. package/dist/{declarations/src/adapters → adapters}/node-http/internals/getPostBody.d.ts +12 -12
  73. package/dist/adapters/node-http/internals/getPostBody.d.ts.map +1 -0
  74. package/dist/{declarations/src/adapters → adapters}/node-http/nodeHTTPRequestHandler.d.ts +9 -9
  75. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -0
  76. package/dist/{declarations/src/adapters → adapters}/node-http/types.d.ts +31 -32
  77. package/dist/adapters/node-http/types.d.ts.map +1 -0
  78. package/dist/{declarations/src/adapters → adapters}/standalone.d.ts +13 -13
  79. package/dist/adapters/standalone.d.ts.map +1 -0
  80. package/dist/adapters/standalone.js +49 -0
  81. package/dist/adapters/standalone.mjs +40 -0
  82. package/dist/adapters/standalone.ts.js +1 -0
  83. package/dist/{declarations/src/adapters → adapters}/ws.d.ts +16 -16
  84. package/dist/adapters/ws.d.ts.map +1 -0
  85. package/dist/adapters/ws.js +384 -0
  86. package/dist/adapters/ws.mjs +380 -0
  87. package/dist/adapters/ws.ts.js +1 -0
  88. package/dist/{declarations/src/assertNotBrowser.d.ts → assertNotBrowser.d.ts} +1 -1
  89. package/dist/assertNotBrowser.d.ts.map +1 -0
  90. package/dist/{codes-e0df67c4.cjs.prod.js → envelopes-1deb2fa7.mjs} +19 -5
  91. package/dist/{codes-33cef953.cjs.dev.js → envelopes-a953b930.js} +18 -0
  92. package/dist/{declarations/src/http → http}/ResponseMeta.d.ts +4 -4
  93. package/dist/http/ResponseMeta.d.ts.map +1 -0
  94. package/dist/{declarations/src/http → http}/index.d.ts +2 -2
  95. package/dist/http/index.d.ts.map +1 -0
  96. package/dist/{declarations/src/http → http}/internals/getHTTPStatusCode.d.ts +21 -20
  97. package/dist/http/internals/getHTTPStatusCode.d.ts.map +1 -0
  98. package/dist/{declarations/src/http → http}/internals/types.d.ts +40 -39
  99. package/dist/http/internals/types.d.ts.map +1 -0
  100. package/dist/{declarations/src/http → http}/resolveHTTPResponse.d.ts +12 -12
  101. package/dist/http/resolveHTTPResponse.d.ts.map +1 -0
  102. package/dist/index.d.ts +7 -0
  103. package/dist/index.d.ts.map +1 -0
  104. package/dist/{trpc-server.cjs.dev.js → index.js} +81 -107
  105. package/dist/{trpc-server.esm.js → index.mjs} +71 -91
  106. package/dist/index.ts.js +1 -0
  107. package/dist/{declarations/src/internals → internals}/BaseHandlerOptions.d.ts +12 -12
  108. package/dist/internals/BaseHandlerOptions.d.ts.map +1 -0
  109. package/dist/{declarations/src/internals → internals}/OnErrorFunction.d.ts +10 -10
  110. package/dist/internals/OnErrorFunction.d.ts.map +1 -0
  111. package/dist/{declarations/src/internals → internals}/callProcedure.d.ts +9 -9
  112. package/dist/internals/callProcedure.d.ts.map +1 -0
  113. package/dist/{declarations/src/internals → internals}/errors.d.ts +4 -3
  114. package/dist/internals/errors.d.ts.map +1 -0
  115. package/dist/{declarations/src/internals → internals}/invert.d.ts +8 -8
  116. package/dist/internals/invert.d.ts.map +1 -0
  117. package/dist/{declarations/src/internals → internals}/middlewares.d.ts +34 -33
  118. package/dist/internals/middlewares.d.ts.map +1 -0
  119. package/dist/internals/procedure.d.ts +87 -0
  120. package/dist/internals/procedure.d.ts.map +1 -0
  121. package/dist/internals/transformTRPCResponse.d.ts +9 -0
  122. package/dist/internals/transformTRPCResponse.d.ts.map +1 -0
  123. package/dist/nodeHTTPRequestHandler-1cdb6383.mjs +105 -0
  124. package/dist/nodeHTTPRequestHandler-848f07b5.js +107 -0
  125. package/dist/observable/index.d.ts +5 -0
  126. package/dist/observable/index.d.ts.map +1 -0
  127. package/dist/observable/index.js +204 -0
  128. package/dist/observable/index.mjs +195 -0
  129. package/dist/observable/index.ts.js +1 -0
  130. package/dist/observable/internals/identity.d.ts +2 -0
  131. package/dist/observable/internals/identity.d.ts.map +1 -0
  132. package/dist/observable/internals/observableToPromise.d.ts +10 -0
  133. package/dist/observable/internals/observableToPromise.d.ts.map +1 -0
  134. package/dist/observable/internals/pipe.d.ts +4 -0
  135. package/dist/observable/internals/pipe.d.ts.map +1 -0
  136. package/dist/observable/observable.d.ts +5 -0
  137. package/dist/observable/observable.d.ts.map +1 -0
  138. package/dist/observable/operators/index.d.ts +4 -0
  139. package/dist/observable/operators/index.d.ts.map +1 -0
  140. package/dist/observable/operators/map.d.ts +3 -0
  141. package/dist/observable/operators/map.d.ts.map +1 -0
  142. package/dist/observable/operators/share.d.ts +6 -0
  143. package/dist/observable/operators/share.d.ts.map +1 -0
  144. package/dist/observable/operators/tap.d.ts +3 -0
  145. package/dist/observable/operators/tap.d.ts.map +1 -0
  146. package/dist/observable/types.d.ts +29 -0
  147. package/dist/observable/types.d.ts.map +1 -0
  148. package/dist/observable-137ea1bd.mjs +105 -0
  149. package/dist/observable-3aa4d911.js +108 -0
  150. package/dist/{nodeHTTPRequestHandler-2e6cc2d7.esm.js → resolveHTTPResponse-54a79e6c.mjs} +19 -126
  151. package/dist/{nodeHTTPRequestHandler-b7ff366e.cjs.dev.js → resolveHTTPResponse-ec3dccaa.js} +24 -132
  152. package/dist/router.d.ts +173 -0
  153. package/dist/router.d.ts.map +1 -0
  154. package/dist/{declarations/src/rpc → rpc}/codes.d.ts +48 -46
  155. package/dist/rpc/codes.d.ts.map +1 -0
  156. package/dist/rpc/envelopes.d.ts +94 -0
  157. package/dist/rpc/envelopes.d.ts.map +1 -0
  158. package/dist/{declarations/src/rpc → rpc}/index.d.ts +2 -2
  159. package/dist/rpc/index.d.ts.map +1 -0
  160. package/dist/rpc/index.js +14 -0
  161. package/dist/rpc/index.mjs +1 -0
  162. package/dist/rpc/index.ts.js +1 -0
  163. package/dist/subscription.d.ts +9 -0
  164. package/dist/subscription.d.ts.map +1 -0
  165. package/dist/subscription.js +44 -0
  166. package/dist/subscription.mjs +40 -0
  167. package/dist/subscription.ts.js +1 -0
  168. package/dist/transformTRPCResponse-333bed6c.js +56 -0
  169. package/dist/transformTRPCResponse-e0cba527.mjs +53 -0
  170. package/dist/{declarations/src/transformer.d.ts → transformer.d.ts} +29 -29
  171. package/dist/transformer.d.ts.map +1 -0
  172. package/dist/{declarations/src/types.d.ts → types.d.ts} +40 -40
  173. package/dist/types.d.ts.map +1 -0
  174. package/observable/index.d.ts +1 -0
  175. package/observable/index.js +1 -0
  176. package/package.json +82 -26
  177. package/rpc/dist/trpc-server-rpc.cjs.dev.js +1 -1
  178. package/rpc/dist/trpc-server-rpc.cjs.prod.js +1 -1
  179. package/rpc/dist/trpc-server-rpc.esm.js +1 -1
  180. package/rpc/index.d.ts +1 -0
  181. package/rpc/index.js +1 -0
  182. package/src/TRPCError.ts +5 -13
  183. package/src/adapters/express.ts +3 -3
  184. package/src/adapters/fastify/fastifyRequestHandler.ts +77 -0
  185. package/src/adapters/fastify/fastifyTRPCPlugin.ts +56 -0
  186. package/src/adapters/fastify/index.ts +2 -0
  187. package/src/adapters/fetch/fetchRequestHandler.ts +61 -0
  188. package/src/adapters/fetch/index.ts +2 -0
  189. package/src/adapters/fetch/types.ts +28 -0
  190. package/src/adapters/next.ts +9 -7
  191. package/src/adapters/node-http/internals/getPostBody.test.ts +2 -1
  192. package/src/adapters/node-http/nodeHTTPRequestHandler.ts +5 -6
  193. package/src/adapters/node-http/types.ts +4 -5
  194. package/src/adapters/standalone.ts +11 -3
  195. package/src/adapters/ws.ts +122 -81
  196. package/src/assertNotBrowser.ts +1 -0
  197. package/src/http/internals/getHTTPStatusCode.ts +2 -1
  198. package/src/http/internals/types.ts +6 -7
  199. package/src/http/resolveHTTPResponse.ts +23 -27
  200. package/src/index.ts +1 -6
  201. package/src/internals/BaseHandlerOptions.ts +1 -1
  202. package/src/internals/OnErrorFunction.ts +1 -1
  203. package/src/internals/callProcedure.ts +6 -3
  204. package/src/internals/errors.ts +20 -4
  205. package/src/internals/middlewares.ts +3 -2
  206. package/src/internals/procedure.ts +213 -93
  207. package/src/internals/transformTRPCResponse.ts +20 -15
  208. package/src/observable/index.ts +4 -0
  209. package/src/observable/internals/identity.ts +3 -0
  210. package/src/observable/internals/observableToPromise.ts +49 -0
  211. package/src/observable/internals/pipe.ts +22 -0
  212. package/src/observable/observable.test.ts +101 -0
  213. package/src/observable/observable.ts +75 -0
  214. package/src/observable/operators/index.ts +3 -0
  215. package/src/observable/operators/map.test.ts +92 -0
  216. package/src/observable/operators/map.ts +25 -0
  217. package/src/observable/operators/share.test.ts +60 -0
  218. package/src/observable/operators/share.ts +67 -0
  219. package/src/observable/operators/tap.ts +26 -0
  220. package/src/observable/types.ts +69 -0
  221. package/src/router.ts +171 -82
  222. package/src/rpc/codes.ts +1 -0
  223. package/src/rpc/envelopes.ts +87 -68
  224. package/src/subscription.ts +6 -124
  225. package/src/types.ts +7 -9
  226. package/adapters/express/package.json +0 -4
  227. package/adapters/next/package.json +0 -4
  228. package/adapters/node-http/package.json +0 -4
  229. package/adapters/standalone/package.json +0 -4
  230. package/adapters/ws/package.json +0 -4
  231. package/dist/codes-fe07bf82.esm.js +0 -56
  232. package/dist/declarations/src/TRPCError.d.ts +0 -19
  233. package/dist/declarations/src/TRPCError.d.ts.map +0 -1
  234. package/dist/declarations/src/adapters/express.d.ts.map +0 -1
  235. package/dist/declarations/src/adapters/next.d.ts.map +0 -1
  236. package/dist/declarations/src/adapters/node-http/index.d.ts.map +0 -1
  237. package/dist/declarations/src/adapters/node-http/internals/getPostBody.d.ts.map +0 -1
  238. package/dist/declarations/src/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +0 -1
  239. package/dist/declarations/src/adapters/node-http/types.d.ts.map +0 -1
  240. package/dist/declarations/src/adapters/standalone.d.ts.map +0 -1
  241. package/dist/declarations/src/adapters/ws.d.ts.map +0 -1
  242. package/dist/declarations/src/assertNotBrowser.d.ts.map +0 -1
  243. package/dist/declarations/src/deprecated/LegacyRouter.d.ts +0 -3
  244. package/dist/declarations/src/deprecated/LegacyRouter.d.ts.map +0 -1
  245. package/dist/declarations/src/deprecated/createHttpServer.d.ts +0 -19
  246. package/dist/declarations/src/deprecated/createHttpServer.d.ts.map +0 -1
  247. package/dist/declarations/src/deprecated/requestHandler.d.ts +0 -15
  248. package/dist/declarations/src/deprecated/requestHandler.d.ts.map +0 -1
  249. package/dist/declarations/src/http/ResponseMeta.d.ts.map +0 -1
  250. package/dist/declarations/src/http/index.d.ts.map +0 -1
  251. package/dist/declarations/src/http/internals/getHTTPStatusCode.d.ts.map +0 -1
  252. package/dist/declarations/src/http/internals/types.d.ts.map +0 -1
  253. package/dist/declarations/src/http/resolveHTTPResponse.d.ts.map +0 -1
  254. package/dist/declarations/src/index.d.ts +0 -10
  255. package/dist/declarations/src/index.d.ts.map +0 -1
  256. package/dist/declarations/src/internals/BaseHandlerOptions.d.ts.map +0 -1
  257. package/dist/declarations/src/internals/OnErrorFunction.d.ts.map +0 -1
  258. package/dist/declarations/src/internals/callProcedure.d.ts.map +0 -1
  259. package/dist/declarations/src/internals/errors.d.ts.map +0 -1
  260. package/dist/declarations/src/internals/invert.d.ts.map +0 -1
  261. package/dist/declarations/src/internals/middlewares.d.ts.map +0 -1
  262. package/dist/declarations/src/internals/procedure.d.ts +0 -74
  263. package/dist/declarations/src/internals/procedure.d.ts.map +0 -1
  264. package/dist/declarations/src/internals/transformTRPCResponse.d.ts +0 -7
  265. package/dist/declarations/src/internals/transformTRPCResponse.d.ts.map +0 -1
  266. package/dist/declarations/src/internals/wrapCallSafe.d.ts +0 -16
  267. package/dist/declarations/src/internals/wrapCallSafe.d.ts.map +0 -1
  268. package/dist/declarations/src/router.d.ts +0 -176
  269. package/dist/declarations/src/router.d.ts.map +0 -1
  270. package/dist/declarations/src/rpc/codes.d.ts.map +0 -1
  271. package/dist/declarations/src/rpc/envelopes.d.ts +0 -72
  272. package/dist/declarations/src/rpc/envelopes.d.ts.map +0 -1
  273. package/dist/declarations/src/rpc/index.d.ts.map +0 -1
  274. package/dist/declarations/src/subscription.d.ts +0 -58
  275. package/dist/declarations/src/subscription.d.ts.map +0 -1
  276. package/dist/declarations/src/transformer.d.ts.map +0 -1
  277. package/dist/declarations/src/types.d.ts.map +0 -1
  278. package/dist/declarations/src/ws/index.d.ts +0 -7
  279. package/dist/declarations/src/ws/index.d.ts.map +0 -1
  280. package/dist/nodeHTTPRequestHandler-7325b53f.cjs.prod.js +0 -399
  281. package/dist/subscription-b8831081.cjs.dev.js +0 -136
  282. package/dist/subscription-c2e0bfbc.cjs.prod.js +0 -136
  283. package/dist/subscription-fbda2888.esm.js +0 -133
  284. package/dist/transformTRPCResponse-8248515e.cjs.dev.js +0 -114
  285. package/dist/transformTRPCResponse-dcbf66c5.cjs.prod.js +0 -114
  286. package/dist/transformTRPCResponse-f73dc4a2.esm.js +0 -109
  287. package/dist/trpc-server.cjs.d.ts +0 -1
  288. package/dist/trpc-server.cjs.js +0 -7
  289. package/dist/trpc-server.cjs.prod.js +0 -528
  290. package/rpc/package.json +0 -4
  291. package/src/deprecated/LegacyRouter.ts +0 -3
  292. package/src/deprecated/createHttpServer.ts +0 -29
  293. package/src/deprecated/requestHandler.ts +0 -26
  294. package/src/internals/wrapCallSafe.ts +0 -19
  295. package/src/ws/index.ts +0 -8
  296. package/ws/dist/trpc-server-ws.cjs.d.ts +0 -1
  297. package/ws/dist/trpc-server-ws.cjs.dev.js +0 -15
  298. package/ws/dist/trpc-server-ws.cjs.js +0 -7
  299. package/ws/dist/trpc-server-ws.cjs.prod.js +0 -15
  300. package/ws/dist/trpc-server-ws.esm.js +0 -11
  301. package/ws/package.json +0 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trpc/server",
3
- "version": "10.0.0-alpha.2",
3
+ "version": "10.0.0-alpha.22",
4
4
  "description": "tRPC Server",
5
5
  "author": "KATT",
6
6
  "license": "MIT",
@@ -12,61 +12,117 @@
12
12
  },
13
13
  "eslintConfig": {
14
14
  "rules": {
15
- "explicit-module-boundary-types": "off"
15
+ "explicit-module-boundary-types": "off",
16
+ "no-restricted-imports": [
17
+ "error",
18
+ "@trpc/server"
19
+ ]
16
20
  }
17
21
  },
18
- "preconstruct": {
19
- "entrypoints": [
20
- "index.ts",
21
- "adapters/express.ts",
22
- "adapters/next.ts",
23
- "adapters/node-http/index.ts",
24
- "adapters/standalone.ts",
25
- "adapters/ws.ts",
26
- "ws/index.ts",
27
- "rpc/index.ts"
28
- ]
29
- },
30
22
  "scripts": {
31
- "test": "jest"
23
+ "test": "jest",
24
+ "build": "rollup -c"
25
+ },
26
+ "main": "dist/index.js",
27
+ "module": "dist/index.mjs",
28
+ "typings": "dist/index.d.ts",
29
+ "exports": {
30
+ ".": {
31
+ "import": "./dist/index.mjs",
32
+ "require": "./dist/index.js",
33
+ "default": "./dist/index.js"
34
+ },
35
+ "./adapters/express": {
36
+ "import": "./dist/adapters/express.mjs",
37
+ "require": "./dist/adapters/express.js",
38
+ "default": "./dist/adapters/express.js"
39
+ },
40
+ "./adapters/next": {
41
+ "import": "./dist/adapters/next.mjs",
42
+ "require": "./dist/adapters/next.js",
43
+ "default": "./dist/adapters/next.js"
44
+ },
45
+ "./adapters/node-http": {
46
+ "import": "./dist/adapters/node-http/index.mjs",
47
+ "require": "./dist/adapters/node-http/index.js",
48
+ "default": "./dist/adapters/node-http/index.js"
49
+ },
50
+ "./adapters/standalone": {
51
+ "import": "./dist/adapters/standalone.mjs",
52
+ "require": "./dist/adapters/standalone.js",
53
+ "default": "./dist/adapters/standalone.js"
54
+ },
55
+ "./adapters/fastify": {
56
+ "import": "./dist/adapters/fastify/index.mjs",
57
+ "require": "./dist/adapters/fastify/index.js",
58
+ "default": "./dist/adapters/fastify/index.js"
59
+ },
60
+ "./adapters/ws": {
61
+ "import": "./dist/adapters/ws.mjs",
62
+ "require": "./dist/adapters/ws.js",
63
+ "default": "./dist/adapters/ws.js"
64
+ },
65
+ "./adapters/fetch": {
66
+ "import": "./dist/adapters/fetch/index.mjs",
67
+ "require": "./dist/adapters/fetch/index.js",
68
+ "default": "./dist/adapters/fetch/index.js"
69
+ },
70
+ "./rpc": {
71
+ "import": "./dist/rpc/index.mjs",
72
+ "require": "./dist/rpc/index.js",
73
+ "default": "./dist/rpc/index.js"
74
+ },
75
+ "./observable": {
76
+ "import": "./dist/observable/index.mjs",
77
+ "require": "./dist/observable/index.js",
78
+ "default": "./dist/observable/index.js"
79
+ },
80
+ "./subscription": {
81
+ "import": "./dist/subscription.mjs",
82
+ "require": "./dist/subscription.js",
83
+ "default": "./dist/subscription.js"
84
+ }
32
85
  },
33
- "main": "dist/trpc-server.cjs.js",
34
- "module": "dist/trpc-server.esm.js",
35
- "typings": "dist/trpc-server.cjs.d.ts",
36
86
  "files": [
37
87
  "README.md",
38
88
  "dist",
39
89
  "adapters",
40
- "ws",
41
90
  "rpc",
91
+ "observable",
42
92
  "src"
43
93
  ],
44
94
  "publishConfig": {
45
95
  "access": "public"
46
96
  },
47
97
  "devDependencies": {
48
- "@testing-library/jest-dom": "^5.14.1",
49
- "@testing-library/react": "^12.0.0",
50
- "@testing-library/user-event": "^13.2.1",
98
+ "@cloudflare/workers-types": "^3.8.0",
99
+ "@miniflare/core": "^2.4.0",
51
100
  "@types/express": "^4.17.12",
52
101
  "@types/hash-sum": "^1.0.0",
53
102
  "@types/ws": "^8.2.0",
103
+ "abort-controller": "^3.0.0",
54
104
  "devalue": "^2.0.1",
105
+ "esbuild": "^0.14.38",
55
106
  "express": "^4.17.1",
56
- "fastify": "^3.17.0",
107
+ "fastify": "^3.27.1",
108
+ "fastify-plugin": "^3.0.1",
109
+ "fastify-websocket": "^4.0.0",
57
110
  "hash-sum": "^2.0.0",
58
111
  "jest": "^27.1.0",
112
+ "jest-environment-miniflare": "^2.4.0",
59
113
  "konn": "^0.7.0",
114
+ "miniflare": "^2.4.0",
60
115
  "myzod": "^1.3.1",
61
- "next": "^12.0.1",
116
+ "next": "^12.1.6",
117
+ "node-fetch": "^2.6.1",
62
118
  "superstruct": "^0.15.2",
63
119
  "typescript": "4.4.4",
64
120
  "ws": "^8.0.0",
65
121
  "yup": "^0.32.8",
66
122
  "zod": "^3.0.0"
67
123
  },
68
- "gitHead": "4d72f1922cfb8a74e2bb03a29b39903418312728",
69
124
  "dependencies": {
70
125
  "tslib": "^2.1.0"
71
- }
126
+ },
127
+ "gitHead": "d720eb2215f0fad6e70f4172a1bf084225d4d6de"
72
128
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var codes = require('../../dist/codes-33cef953.cjs.dev.js');
5
+ var codes = require('../../dist/codes-130e62df.cjs.dev.js');
6
6
 
7
7
 
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var codes = require('../../dist/codes-e0df67c4.cjs.prod.js');
5
+ var codes = require('../../dist/codes-aff770a3.cjs.prod.js');
6
6
 
7
7
 
8
8
 
@@ -1 +1 @@
1
- export { T as TRPC_ERROR_CODES_BY_KEY, a as TRPC_ERROR_CODES_BY_NUMBER } from '../../dist/codes-fe07bf82.esm.js';
1
+ export { T as TRPC_ERROR_CODES_BY_KEY, a as TRPC_ERROR_CODES_BY_NUMBER } from '../../dist/codes-5678cc97.esm.js';
package/rpc/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from '../dist/rpc';
package/rpc/index.js ADDED
@@ -0,0 +1 @@
1
+ module.exports = require('../dist/rpc/index');
package/src/TRPCError.ts CHANGED
@@ -1,24 +1,16 @@
1
- import { TRPC_ERROR_CODE_KEY } from './rpc/codes';
2
1
  import { getMessageFromUnkownError } from './internals/errors';
2
+ import { TRPC_ERROR_CODE_KEY } from './rpc/codes';
3
3
 
4
4
  export class TRPCError extends Error {
5
- /**
6
- * @deprecated use `cause`
7
- */
8
- public readonly originalError?: unknown;
9
- public readonly cause?: unknown;
5
+ public readonly cause?: Error | undefined;
10
6
  public readonly code;
11
7
 
12
8
  constructor(opts: {
13
9
  message?: string;
14
10
  code: TRPC_ERROR_CODE_KEY;
15
- /**
16
- * @deprecated use `cause`
17
- */
18
- originalError?: unknown;
19
- cause?: unknown;
11
+ cause?: Error;
20
12
  }) {
21
- const cause = opts.cause ?? opts.originalError;
13
+ const cause = opts.cause;
22
14
  const code = opts.code;
23
15
  const message = opts.message ?? getMessageFromUnkownError(cause, code);
24
16
 
@@ -27,7 +19,7 @@ export class TRPCError extends Error {
27
19
  super(message, { cause });
28
20
 
29
21
  this.code = code;
30
- this.cause = this.originalError = cause;
22
+ this.cause = cause;
31
23
  this.name = 'TRPCError';
32
24
 
33
25
  Object.setPrototypeOf(this, new.target.prototype);
@@ -15,10 +15,10 @@ export type CreateExpressContextOptions = NodeHTTPCreateContextFnOptions<
15
15
  export function createExpressMiddleware<TRouter extends AnyRouter>(
16
16
  opts: NodeHTTPHandlerOptions<TRouter, express.Request, express.Response>,
17
17
  ): express.Handler {
18
- return (req, res) => {
19
- const endpoint = req.path.substr(1);
18
+ return async (req, res) => {
19
+ const endpoint = req.path.slice(1);
20
20
 
21
- nodeHTTPRequestHandler({
21
+ await nodeHTTPRequestHandler({
22
22
  ...opts,
23
23
  req,
24
24
  res,
@@ -0,0 +1,77 @@
1
+ import { FastifyReply, FastifyRequest } from 'fastify';
2
+ import { assertNotBrowser } from '../../assertNotBrowser';
3
+ import {
4
+ HTTPBaseHandlerOptions,
5
+ HTTPRequest,
6
+ } from '../../http/internals/types';
7
+ import { resolveHTTPResponse } from '../../http/resolveHTTPResponse';
8
+ import { AnyRouter, inferRouterContext } from '../../router';
9
+ import { NodeHTTPCreateContextOption } from '../node-http';
10
+
11
+ assertNotBrowser();
12
+
13
+ export type FastifyHandlerOptions<
14
+ TRouter extends AnyRouter,
15
+ TRequest extends FastifyRequest,
16
+ TResponse extends FastifyReply,
17
+ > = HTTPBaseHandlerOptions<TRouter, TRequest> &
18
+ NodeHTTPCreateContextOption<TRouter, TRequest, TResponse>;
19
+
20
+ type FastifyRequestHandlerOptions<
21
+ TRouter extends AnyRouter,
22
+ TRequest extends FastifyRequest,
23
+ TResponse extends FastifyReply,
24
+ > = {
25
+ req: TRequest;
26
+ res: TResponse;
27
+ path: string;
28
+ } & FastifyHandlerOptions<TRouter, TRequest, TResponse>;
29
+
30
+ export async function fastifyRequestHandler<
31
+ TRouter extends AnyRouter,
32
+ TRequest extends FastifyRequest,
33
+ TResponse extends FastifyReply,
34
+ >(opts: FastifyRequestHandlerOptions<TRouter, TRequest, TResponse>) {
35
+ const createContext = async function _createContext(): Promise<
36
+ inferRouterContext<TRouter>
37
+ > {
38
+ return opts.createContext?.(opts);
39
+ };
40
+
41
+ const query = opts.req.query
42
+ ? new URLSearchParams(opts.req.query as any)
43
+ : new URLSearchParams(opts.req.url.split('?')[1]);
44
+
45
+ const req: HTTPRequest = {
46
+ query,
47
+ method: opts.req.method,
48
+ headers: opts.req.headers,
49
+ body: opts.req.body ?? 'null',
50
+ };
51
+
52
+ const result = await resolveHTTPResponse({
53
+ req,
54
+ createContext,
55
+ path: opts.path,
56
+ router: opts.router,
57
+ batching: opts.batching,
58
+ responseMeta: opts.responseMeta,
59
+ onError(o) {
60
+ opts?.onError?.({ ...o, req: opts.req });
61
+ },
62
+ });
63
+
64
+ const { res } = opts;
65
+
66
+ if ('status' in result && (!res.statusCode || res.statusCode === 200)) {
67
+ res.statusCode = result.status;
68
+ }
69
+ for (const [key, value] of Object.entries(result.headers ?? {})) {
70
+ if (typeof value === 'undefined') {
71
+ continue;
72
+ }
73
+
74
+ void res.header(key, value);
75
+ }
76
+ await res.send(result.body);
77
+ }
@@ -0,0 +1,56 @@
1
+ /// <reference types="fastify-websocket" />
2
+ import { FastifyInstance, FastifyReply, FastifyRequest } from 'fastify';
3
+ import { FastifyHandlerOptions } from '.';
4
+ import { AnyRouter } from '../..';
5
+ import { NodeHTTPCreateContextFnOptions } from '../node-http';
6
+ import { WSSHandlerOptions, applyWSSHandler } from '../ws';
7
+ import { fastifyRequestHandler } from './fastifyRequestHandler';
8
+
9
+ export interface FastifyTRPCPluginOptions<TRouter extends AnyRouter> {
10
+ prefix?: string;
11
+ useWSS?: boolean;
12
+ trpcOptions: FastifyHandlerOptions<TRouter, FastifyRequest, FastifyReply>;
13
+ }
14
+
15
+ export type CreateFastifyContextOptions = NodeHTTPCreateContextFnOptions<
16
+ FastifyRequest,
17
+ FastifyReply
18
+ >;
19
+
20
+ export function fastifyTRPCPlugin<TRouter extends AnyRouter>(
21
+ fastify: FastifyInstance,
22
+ opts: FastifyTRPCPluginOptions<TRouter>,
23
+ done: (err?: Error) => void,
24
+ ) {
25
+ fastify.addContentTypeParser(
26
+ 'application/json',
27
+ { parseAs: 'string' },
28
+ function (_, body, _done) {
29
+ _done(null, body);
30
+ },
31
+ );
32
+
33
+ let prefix = opts.prefix ?? '';
34
+
35
+ // https://github.com/fastify/fastify-plugin/blob/fe079bef6557a83794bf437e14b9b9edb8a74104/plugin.js#L11
36
+ // @ts-expect-error property 'default' does not exists on type ...
37
+ if (typeof fastifyTRPCPlugin.default !== 'function') {
38
+ prefix = ''; // handled by fastify internally
39
+ }
40
+
41
+ fastify.all(`${prefix}/:path`, async (req, res) => {
42
+ const path = (req.params as any).path;
43
+ await fastifyRequestHandler({ ...opts.trpcOptions, req, res, path });
44
+ });
45
+
46
+ if (opts.useWSS) {
47
+ applyWSSHandler<TRouter>({
48
+ ...(opts.trpcOptions as WSSHandlerOptions<TRouter>),
49
+ wss: fastify.websocketServer,
50
+ });
51
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
52
+ fastify.get(prefix ?? '/', { websocket: true }, () => {});
53
+ }
54
+
55
+ done();
56
+ }
@@ -0,0 +1,2 @@
1
+ export * from './fastifyRequestHandler';
2
+ export * from './fastifyTRPCPlugin';
@@ -0,0 +1,61 @@
1
+ import { assertNotBrowser } from '../../assertNotBrowser';
2
+ import { HTTPRequest } from '../../http/internals/types';
3
+ import { resolveHTTPResponse } from '../../http/resolveHTTPResponse';
4
+ import { AnyRouter } from '../../router';
5
+ import { FetchHandlerOptions } from './types';
6
+
7
+ assertNotBrowser();
8
+
9
+ export type FetchHandlerRequestOptions<TRouter extends AnyRouter> = {
10
+ req: Request;
11
+ endpoint: string;
12
+ } & FetchHandlerOptions<TRouter>;
13
+
14
+ export async function fetchRequestHandler<TRouter extends AnyRouter>(
15
+ opts: FetchHandlerRequestOptions<TRouter>,
16
+ ): Promise<Response> {
17
+ const createContext = async () => {
18
+ return opts.createContext?.({ req: opts.req });
19
+ };
20
+
21
+ const url = new URL(opts.req.url);
22
+ const path = url.pathname.slice(opts.endpoint.length + 1);
23
+ const req: HTTPRequest = {
24
+ query: url.searchParams,
25
+ method: opts.req.method,
26
+ headers: Object.fromEntries(opts.req.headers),
27
+ body: await opts.req.text(),
28
+ };
29
+
30
+ const result = await resolveHTTPResponse({
31
+ req,
32
+ createContext,
33
+ path,
34
+ router: opts.router,
35
+ batching: opts.batching,
36
+ responseMeta: opts.responseMeta,
37
+ onError(o) {
38
+ opts?.onError?.({ ...o, req: opts.req });
39
+ },
40
+ });
41
+
42
+ const res = new Response(result.body, {
43
+ status: result.status,
44
+ });
45
+
46
+ for (const [key, value] of Object.entries(result.headers ?? {})) {
47
+ if (typeof value === 'undefined') {
48
+ continue;
49
+ }
50
+
51
+ if (typeof value === 'string') {
52
+ res.headers.set(key, value);
53
+ continue;
54
+ }
55
+
56
+ for (const v of value) {
57
+ res.headers.append(key, v);
58
+ }
59
+ }
60
+ return res;
61
+ }
@@ -0,0 +1,2 @@
1
+ export * from './fetchRequestHandler';
2
+ export * from './types';
@@ -0,0 +1,28 @@
1
+ import { HTTPBaseHandlerOptions } from '../../http/internals/types';
2
+ import { AnyRouter, inferRouterContext } from '../../router';
3
+
4
+ export type FetchCreateContextFnOptions = {
5
+ req: Request;
6
+ };
7
+
8
+ export type FetchCreateContextFn<TRouter extends AnyRouter> = (opts: {
9
+ req: Request;
10
+ }) => inferRouterContext<TRouter> | Promise<inferRouterContext<TRouter>>;
11
+
12
+ export type FetchCreateContextOption<TRouter extends AnyRouter> =
13
+ unknown extends inferRouterContext<TRouter>
14
+ ? {
15
+ /**
16
+ * @link https://trpc.io/docs/context
17
+ **/
18
+ createContext?: FetchCreateContextFn<TRouter>;
19
+ }
20
+ : {
21
+ /**
22
+ * @link https://trpc.io/docs/context
23
+ **/
24
+ createContext: FetchCreateContextFn<TRouter>;
25
+ };
26
+
27
+ export type FetchHandlerOptions<TRouter extends AnyRouter> =
28
+ HTTPBaseHandlerOptions<TRouter, Request> & FetchCreateContextOption<TRouter>;
@@ -1,9 +1,12 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
3
- import type { NextApiHandler, NextApiRequest, NextApiResponse } from 'next';
4
- import { AnyRouter } from '../router';
5
- import { TRPCErrorResponse } from '../rpc';
3
+ import type {
4
+ NextApiHandler,
5
+ NextApiRequest,
6
+ NextApiResponse,
7
+ } from 'next/types';
6
8
  import { TRPCError } from '../TRPCError';
9
+ import { AnyRouter } from '../router';
7
10
  import { nodeHTTPRequestHandler } from './node-http';
8
11
  import {
9
12
  NodeHTTPCreateContextFnOptions,
@@ -42,12 +45,11 @@ export function createNextApiHandler<TRouter extends AnyRouter>(
42
45
  path: undefined,
43
46
  input: undefined,
44
47
  });
45
- const json: TRPCErrorResponse = {
48
+ res.statusCode = 500;
49
+ res.json({
46
50
  id: -1,
47
51
  error,
48
- };
49
- res.statusCode = 500;
50
- res.json(json);
52
+ });
51
53
  return;
52
54
  }
53
55
 
@@ -1,5 +1,6 @@
1
- import { getPostBody } from './getPostBody';
2
1
  import { EventEmitter } from 'events';
2
+ import { getPostBody } from './getPostBody';
3
+
3
4
  test('has body', async () => {
4
5
  const body = {};
5
6
  const resolvedBody = await getPostBody({ req: { body } } as any);
@@ -1,15 +1,14 @@
1
1
  /* eslint-disable @typescript-eslint/no-non-null-assertion */
2
- import { URLSearchParams } from 'url';
3
2
  import { assertNotBrowser } from '../../assertNotBrowser';
3
+ import { HTTPRequest } from '../../http/internals/types';
4
+ import { resolveHTTPResponse } from '../../http/resolveHTTPResponse';
5
+ import { AnyRouter, inferRouterContext } from '../../router';
6
+ import { getPostBody } from './internals/getPostBody';
4
7
  import {
8
+ NodeHTTPHandlerOptions,
5
9
  NodeHTTPRequest,
6
10
  NodeHTTPResponse,
7
- NodeHTTPHandlerOptions,
8
11
  } from './types';
9
- import { AnyRouter, inferRouterContext } from '../../router';
10
- import { getPostBody } from './internals/getPostBody';
11
- import { HTTPRequest } from '../../http/internals/types';
12
- import { resolveHTTPResponse } from '../../http/resolveHTTPResponse';
13
12
 
14
13
  assertNotBrowser();
15
14
 
@@ -1,15 +1,14 @@
1
- import http from 'http';
1
+ import { IncomingMessage, ServerResponse } from 'http';
2
2
  import qs from 'qs';
3
- import { inferRouterContext } from '../..';
4
3
  import { HTTPBaseHandlerOptions } from '../../http/internals/types';
5
- import { AnyRouter } from '../../router';
4
+ import { AnyRouter, inferRouterContext } from '../../router';
6
5
 
7
- export type NodeHTTPRequest = http.IncomingMessage & {
6
+ export type NodeHTTPRequest = IncomingMessage & {
8
7
  method?: string;
9
8
  query?: qs.ParsedQs;
10
9
  body?: unknown;
11
10
  };
12
- export type NodeHTTPResponse = http.ServerResponse;
11
+ export type NodeHTTPResponse = ServerResponse;
13
12
 
14
13
  export type NodeHTTPCreateContextOption<
15
14
  TRouter extends AnyRouter,
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable @typescript-eslint/no-non-null-assertion */
2
+
2
3
  /* eslint-disable @typescript-eslint/no-explicit-any */
3
4
  import http from 'http';
4
- import url from 'url';
5
5
  import { AnyRouter } from '../router';
6
6
  import {
7
7
  NodeHTTPCreateContextFnOptions,
@@ -21,12 +21,20 @@ export function createHTTPHandler<TRouter extends AnyRouter>(
21
21
  opts: CreateHTTPHandlerOptions<TRouter>,
22
22
  ) {
23
23
  return async (req: http.IncomingMessage, res: http.ServerResponse) => {
24
- const endpoint = url.parse(req.url!).pathname!.substr(1);
24
+ // if no hostname, set a dummy one
25
+ const href = req.url!.startsWith('/')
26
+ ? `http://127.0.0.1${req.url}`
27
+ : req.url!;
28
+
29
+ // get procedure path and remove the leading slash
30
+ // /procedure -> procedure
31
+ const path = new URL(href).pathname.slice(1);
32
+
25
33
  await nodeHTTPRequestHandler({
26
34
  ...opts,
27
35
  req,
28
36
  res,
29
- path: endpoint,
37
+ path,
30
38
  });
31
39
  };
32
40
  }