@trpc/server 10.0.0-alpha.8 → 10.0.0-proxy-alpha.53

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 (355) 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 -7
  10. package/adapters/express/dist/trpc-server-adapters-express.cjs.prod.js +7 -7
  11. package/adapters/express/dist/trpc-server-adapters-express.esm.js +7 -7
  12. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.dev.js +18 -11
  13. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.prod.js +18 -11
  14. package/adapters/fastify/dist/trpc-server-adapters-fastify.esm.js +18 -11
  15. package/adapters/fastify/index.d.ts +1 -0
  16. package/adapters/fastify/index.js +1 -0
  17. package/adapters/fetch/index.d.ts +1 -0
  18. package/adapters/fetch/index.js +1 -0
  19. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.d.ts +1 -0
  20. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.dev.js +25 -0
  21. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.js +7 -0
  22. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.prod.js +25 -0
  23. package/adapters/lambda/dist/trpc-server-adapters-lambda.esm.js +21 -0
  24. package/adapters/next/dist/trpc-server-adapters-next.cjs.dev.js +4 -4
  25. package/adapters/next/dist/trpc-server-adapters-next.cjs.prod.js +4 -4
  26. package/adapters/next/dist/trpc-server-adapters-next.esm.js +4 -4
  27. package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.dev.js +4 -4
  28. package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.prod.js +4 -4
  29. package/adapters/node-http/dist/trpc-server-adapters-node-http.esm.js +4 -4
  30. package/adapters/node-http/index.js +1 -1
  31. package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.dev.js +5 -5
  32. package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.prod.js +5 -5
  33. package/adapters/standalone/dist/trpc-server-adapters-standalone.esm.js +5 -5
  34. package/adapters/ws/dist/trpc-server-adapters-ws.cjs.dev.js +24 -7
  35. package/adapters/ws/dist/trpc-server-adapters-ws.cjs.prod.js +24 -7
  36. package/adapters/ws/dist/trpc-server-adapters-ws.esm.js +24 -7
  37. package/dist/TRPCError-bcb38a84.js +61 -0
  38. package/dist/TRPCError-e6e632a5.mjs +57 -0
  39. package/dist/adapters/aws-lambda/index.d.ts +14 -0
  40. package/dist/adapters/aws-lambda/index.d.ts.map +1 -0
  41. package/dist/adapters/aws-lambda/index.js +153 -0
  42. package/dist/adapters/aws-lambda/index.mjs +149 -0
  43. package/dist/adapters/aws-lambda/utils.d.ts +35 -0
  44. package/dist/adapters/aws-lambda/utils.d.ts.map +1 -0
  45. package/dist/adapters/express.d.ts +1 -1
  46. package/dist/adapters/express.d.ts.map +1 -1
  47. package/dist/adapters/express.js +14 -13
  48. package/dist/adapters/express.mjs +14 -13
  49. package/dist/adapters/fastify/fastifyRequestHandler.d.ts +2 -2
  50. package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -1
  51. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts +2 -2
  52. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -1
  53. package/dist/adapters/fastify/index.d.ts.map +1 -1
  54. package/dist/adapters/fastify/index.js +87 -0
  55. package/dist/adapters/fastify/index.mjs +82 -0
  56. package/dist/adapters/fetch/fetchRequestHandler.d.ts +8 -0
  57. package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -0
  58. package/dist/adapters/fetch/index.d.ts +3 -0
  59. package/dist/adapters/fetch/index.d.ts.map +1 -0
  60. package/dist/adapters/fetch/index.js +57 -0
  61. package/dist/adapters/fetch/index.mjs +53 -0
  62. package/dist/adapters/fetch/types.d.ts +21 -0
  63. package/dist/adapters/fetch/types.d.ts.map +1 -0
  64. package/dist/adapters/lambda/index.d.ts +12 -0
  65. package/dist/adapters/lambda/index.d.ts.map +1 -0
  66. package/dist/adapters/next.d.ts +2 -2
  67. package/dist/adapters/next.d.ts.map +1 -1
  68. package/dist/adapters/next.js +42 -46
  69. package/dist/adapters/next.mjs +42 -46
  70. package/dist/adapters/node-http/index.d.ts.map +1 -1
  71. package/dist/adapters/node-http/index.js +5 -4
  72. package/dist/adapters/node-http/index.mjs +5 -4
  73. package/dist/adapters/node-http/internals/getPostBody.d.ts +1 -1
  74. package/dist/adapters/node-http/internals/getPostBody.d.ts.map +1 -1
  75. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts +2 -2
  76. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
  77. package/dist/adapters/node-http/types.d.ts +11 -9
  78. package/dist/adapters/node-http/types.d.ts.map +1 -1
  79. package/dist/adapters/standalone.d.ts +2 -2
  80. package/dist/adapters/standalone.d.ts.map +1 -1
  81. package/dist/adapters/standalone.js +30 -28
  82. package/dist/adapters/standalone.mjs +30 -27
  83. package/dist/adapters/ws.d.ts +8 -6
  84. package/dist/adapters/ws.d.ts.map +1 -1
  85. package/dist/adapters/ws.js +284 -317
  86. package/dist/adapters/ws.mjs +284 -317
  87. package/dist/assertNotBrowser.d.ts.map +1 -1
  88. package/dist/codes-1c24d919.js +47 -0
  89. package/dist/codes-aaa7d554.mjs +44 -0
  90. package/dist/core/index.d.ts +6 -0
  91. package/dist/core/index.d.ts.map +1 -0
  92. package/dist/core/initTRPC.d.ts +95 -0
  93. package/dist/core/initTRPC.d.ts.map +1 -0
  94. package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts +302 -0
  95. package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts.map +1 -0
  96. package/dist/core/internals/config.d.ts +36 -0
  97. package/dist/core/internals/config.d.ts.map +1 -0
  98. package/dist/core/internals/getParseFn.d.ts +9 -0
  99. package/dist/core/internals/getParseFn.d.ts.map +1 -0
  100. package/dist/core/internals/mergeRouters.d.ts +3 -0
  101. package/dist/core/internals/mergeRouters.d.ts.map +1 -0
  102. package/dist/core/internals/mergeWithoutOverrides.d.ts +5 -0
  103. package/dist/core/internals/mergeWithoutOverrides.d.ts.map +1 -0
  104. package/dist/core/internals/omitPrototype.d.ts +6 -0
  105. package/dist/core/internals/omitPrototype.d.ts.map +1 -0
  106. package/dist/core/internals/prefixObjectKeys.d.ts +2 -0
  107. package/dist/core/internals/prefixObjectKeys.d.ts.map +1 -0
  108. package/dist/core/internals/procedureBuilder.d.ts +124 -0
  109. package/dist/core/internals/procedureBuilder.d.ts.map +1 -0
  110. package/dist/core/internals/utils.d.ts +44 -0
  111. package/dist/core/internals/utils.d.ts.map +1 -0
  112. package/dist/core/middleware.d.ts +87 -0
  113. package/dist/core/middleware.d.ts.map +1 -0
  114. package/dist/core/parser.d.ts +25 -0
  115. package/dist/core/parser.d.ts.map +1 -0
  116. package/dist/core/procedure.d.ts +89 -0
  117. package/dist/core/procedure.d.ts.map +1 -0
  118. package/dist/core/router.d.ts +136 -0
  119. package/dist/core/router.d.ts.map +1 -0
  120. package/dist/core/types.d.ts +19 -0
  121. package/dist/core/types.d.ts.map +1 -0
  122. package/dist/{internals → deprecated/internals}/callProcedure.d.ts +5 -2
  123. package/dist/deprecated/internals/callProcedure.d.ts.map +1 -0
  124. package/dist/{internals → deprecated/internals}/middlewares.d.ts +21 -3
  125. package/dist/deprecated/internals/middlewares.d.ts.map +1 -0
  126. package/dist/deprecated/internals/procedure.d.ts +96 -0
  127. package/dist/deprecated/internals/procedure.d.ts.map +1 -0
  128. package/dist/deprecated/interop.d.ts +61 -0
  129. package/dist/deprecated/interop.d.ts.map +1 -0
  130. package/dist/deprecated/router.d.ts +194 -0
  131. package/dist/deprecated/router.d.ts.map +1 -0
  132. package/dist/error/TRPCError.d.ts +11 -0
  133. package/dist/error/TRPCError.d.ts.map +1 -0
  134. package/dist/error/formatter.d.ts +33 -0
  135. package/dist/error/formatter.d.ts.map +1 -0
  136. package/dist/{internals/errors.d.ts → error/utils.d.ts} +3 -2
  137. package/dist/error/utils.d.ts.map +1 -0
  138. package/dist/http/index.d.ts +1 -1
  139. package/dist/http/index.d.ts.map +1 -1
  140. package/dist/http/internals/getHTTPStatusCode.d.ts +2 -1
  141. package/dist/http/internals/getHTTPStatusCode.d.ts.map +1 -1
  142. package/dist/http/internals/types.d.ts +11 -8
  143. package/dist/http/internals/types.d.ts.map +1 -1
  144. package/dist/http/resolveHTTPResponse.d.ts +4 -4
  145. package/dist/http/resolveHTTPResponse.d.ts.map +1 -1
  146. package/dist/http/{ResponseMeta.d.ts → types.d.ts} +1 -1
  147. package/dist/http/types.d.ts.map +1 -0
  148. package/dist/index-47817162.mjs +26 -0
  149. package/dist/index-9d687d33.js +28 -0
  150. package/dist/index.d.ts +4 -5
  151. package/dist/index.d.ts.map +1 -1
  152. package/dist/index.js +78 -516
  153. package/dist/index.mjs +71 -508
  154. package/dist/internals/invert.d.ts.map +1 -1
  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-2c467c02.mjs +80 -0
  162. package/dist/nodeHTTPRequestHandler-6609461a.js +82 -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 +157 -0
  166. package/dist/observable/index.mjs +148 -0
  167. package/dist/observable/internals/identity.d.ts +2 -0
  168. package/dist/observable/internals/identity.d.ts.map +1 -0
  169. package/dist/observable/internals/observableToPromise.d.ts +10 -0
  170. package/dist/observable/internals/observableToPromise.d.ts.map +1 -0
  171. package/dist/observable/internals/pipe.d.ts +4 -0
  172. package/dist/observable/internals/pipe.d.ts.map +1 -0
  173. package/dist/observable/observable.d.ts +5 -0
  174. package/dist/observable/observable.d.ts.map +1 -0
  175. package/dist/observable/operators/index.d.ts +4 -0
  176. package/dist/observable/operators/index.d.ts.map +1 -0
  177. package/dist/observable/operators/map.d.ts +3 -0
  178. package/dist/observable/operators/map.d.ts.map +1 -0
  179. package/dist/observable/operators/share.d.ts +6 -0
  180. package/dist/observable/operators/share.d.ts.map +1 -0
  181. package/dist/observable/operators/tap.d.ts +3 -0
  182. package/dist/observable/operators/tap.d.ts.map +1 -0
  183. package/dist/observable/types.d.ts +29 -0
  184. package/dist/observable/types.d.ts.map +1 -0
  185. package/dist/observable-b651bf11.js +84 -0
  186. package/dist/observable-e129ac9d.mjs +81 -0
  187. package/dist/resolveHTTPResponse-11d52bd0.mjs +255 -0
  188. package/dist/resolveHTTPResponse-29d4b64a.js +259 -0
  189. package/dist/router-3ee4babe.js +903 -0
  190. package/dist/router-a2a75de3.mjs +893 -0
  191. package/dist/rpc/codes.d.ts +2 -0
  192. package/dist/rpc/codes.d.ts.map +1 -1
  193. package/dist/rpc/envelopes.d.ts +64 -41
  194. package/dist/rpc/envelopes.d.ts.map +1 -1
  195. package/dist/rpc/index.d.ts.map +1 -1
  196. package/dist/rpc/index.js +1 -1
  197. package/dist/rpc/index.mjs +1 -1
  198. package/dist/rpc/internals/invert.d.ts +18 -0
  199. package/dist/rpc/internals/invert.d.ts.map +1 -0
  200. package/dist/shared/createProxy/index.d.ts +12 -0
  201. package/dist/shared/createProxy/index.d.ts.map +1 -0
  202. package/dist/shared/index.d.ts +2 -0
  203. package/dist/shared/index.d.ts.map +1 -0
  204. package/dist/shared/index.js +9 -0
  205. package/dist/shared/index.mjs +1 -0
  206. package/dist/subscription.d.ts +3 -52
  207. package/dist/subscription.d.ts.map +1 -1
  208. package/dist/subscription.js +34 -0
  209. package/dist/subscription.mjs +30 -0
  210. package/dist/transformTRPCResponse-11ac69cc.js +27 -0
  211. package/dist/transformTRPCResponse-c8138d5f.mjs +25 -0
  212. package/dist/transformer.d.ts +14 -0
  213. package/dist/transformer.d.ts.map +1 -1
  214. package/dist/types.d.ts +37 -10
  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 +53 -25
  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/rpc/index.js +1 -1
  223. package/shared/index.d.ts +1 -0
  224. package/shared/index.js +1 -0
  225. package/src/adapters/aws-lambda/index.ts +173 -0
  226. package/src/adapters/aws-lambda/utils.ts +92 -0
  227. package/src/adapters/express.ts +4 -4
  228. package/src/adapters/fastify/fastifyRequestHandler.ts +6 -8
  229. package/src/adapters/fastify/fastifyTRPCPlugin.ts +17 -9
  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 +150 -91
  241. package/src/assertNotBrowser.ts +1 -0
  242. package/src/core/index.ts +15 -0
  243. package/src/core/initTRPC.ts +94 -0
  244. package/src/core/internals/__generated__/mergeRoutersGeneric.ts +406 -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 +430 -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 +121 -0
  256. package/src/core/router.ts +351 -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 +272 -0
  262. package/src/{router.ts → deprecated/router.ts} +221 -108
  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} +24 -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 +34 -39
  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 +94 -68
  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 +45 -15
  296. package/subscription/index.d.ts +1 -0
  297. package/subscription/index.js +1 -0
  298. package/adapters/fastify/package.json +0 -4
  299. package/dist/TRPCError.d.ts +0 -19
  300. package/dist/TRPCError.d.ts.map +0 -1
  301. package/dist/adapters/express.ts.js +0 -1
  302. package/dist/adapters/next.ts.js +0 -1
  303. package/dist/adapters/node-http/index.ts.js +0 -1
  304. package/dist/adapters/standalone.ts.js +0 -1
  305. package/dist/adapters/ws.ts.js +0 -1
  306. package/dist/codes-7a3d4f65.mjs +0 -56
  307. package/dist/codes-7f46544e.js +0 -60
  308. package/dist/deprecated/LegacyRouter.d.ts +0 -3
  309. package/dist/deprecated/LegacyRouter.d.ts.map +0 -1
  310. package/dist/deprecated/createHttpServer.d.ts +0 -19
  311. package/dist/deprecated/createHttpServer.d.ts.map +0 -1
  312. package/dist/deprecated/requestHandler.d.ts +0 -15
  313. package/dist/deprecated/requestHandler.d.ts.map +0 -1
  314. package/dist/http/ResponseMeta.d.ts.map +0 -1
  315. package/dist/index.ts.js +0 -1
  316. package/dist/internals/BaseHandlerOptions.d.ts +0 -13
  317. package/dist/internals/BaseHandlerOptions.d.ts.map +0 -1
  318. package/dist/internals/OnErrorFunction.d.ts +0 -11
  319. package/dist/internals/OnErrorFunction.d.ts.map +0 -1
  320. package/dist/internals/callProcedure.d.ts.map +0 -1
  321. package/dist/internals/errors.d.ts.map +0 -1
  322. package/dist/internals/middlewares.d.ts.map +0 -1
  323. package/dist/internals/procedure.d.ts +0 -74
  324. package/dist/internals/procedure.d.ts.map +0 -1
  325. package/dist/internals/wrapCallSafe.d.ts +0 -16
  326. package/dist/internals/wrapCallSafe.d.ts.map +0 -1
  327. package/dist/nodeHTTPRequestHandler-10e6d2f9.mjs +0 -394
  328. package/dist/nodeHTTPRequestHandler-d7c307d3.js +0 -399
  329. package/dist/router.d.ts +0 -176
  330. package/dist/router.d.ts.map +0 -1
  331. package/dist/rpc/index.ts.js +0 -1
  332. package/dist/subscription-5b7e1eba.js +0 -136
  333. package/dist/subscription-e1d42e69.mjs +0 -133
  334. package/dist/transformTRPCResponse-76e0c91e.mjs +0 -109
  335. package/dist/transformTRPCResponse-bd24f548.js +0 -114
  336. package/dist/ws/index.d.ts +0 -7
  337. package/dist/ws/index.d.ts.map +0 -1
  338. package/dist/ws/index.js +0 -15
  339. package/dist/ws/index.mjs +0 -11
  340. package/dist/ws/index.ts.js +0 -1
  341. package/src/deprecated/LegacyRouter.ts +0 -3
  342. package/src/deprecated/createHttpServer.ts +0 -29
  343. package/src/deprecated/requestHandler.ts +0 -26
  344. package/src/internals/BaseHandlerOptions.ts +0 -13
  345. package/src/internals/OnErrorFunction.ts +0 -11
  346. package/src/internals/procedure.ts +0 -283
  347. package/src/internals/wrapCallSafe.ts +0 -19
  348. package/src/ws/index.ts +0 -8
  349. package/ws/dist/trpc-server-ws.cjs.d.ts +0 -1
  350. package/ws/dist/trpc-server-ws.cjs.dev.js +0 -15
  351. package/ws/dist/trpc-server-ws.cjs.js +0 -7
  352. package/ws/dist/trpc-server-ws.cjs.prod.js +0 -15
  353. package/ws/dist/trpc-server-ws.esm.js +0 -11
  354. package/ws/index.d.ts +0 -1
  355. package/ws/index.js +0 -1
@@ -0,0 +1,84 @@
1
+ 'use strict';
2
+
3
+ function identity(x) {
4
+ return x;
5
+ }
6
+
7
+ /** @internal */ function pipeFromArray(fns) {
8
+ if (fns.length === 0) {
9
+ return identity;
10
+ }
11
+ if (fns.length === 1) {
12
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
13
+ return fns[0];
14
+ }
15
+ return function piped(input) {
16
+ return fns.reduce((prev, fn)=>fn(prev), input);
17
+ };
18
+ }
19
+
20
+ function isObservable(x) {
21
+ return typeof x === 'object' && x !== null && 'subscribe' in x;
22
+ }
23
+ function observable(subscribe) {
24
+ const self = {
25
+ subscribe (observer) {
26
+ let teardownRef = null;
27
+ let isDone = false;
28
+ let unsubscribed = false;
29
+ let teardownImmediately = false;
30
+ function unsubscribe() {
31
+ if (teardownRef === null) {
32
+ teardownImmediately = true;
33
+ return;
34
+ }
35
+ if (unsubscribed) {
36
+ return;
37
+ }
38
+ unsubscribed = true;
39
+ if (typeof teardownRef === 'function') {
40
+ teardownRef();
41
+ } else if (teardownRef) {
42
+ teardownRef.unsubscribe();
43
+ }
44
+ }
45
+ teardownRef = subscribe({
46
+ next (value) {
47
+ if (isDone) {
48
+ return;
49
+ }
50
+ observer.next?.(value);
51
+ },
52
+ error (err) {
53
+ if (isDone) {
54
+ return;
55
+ }
56
+ isDone = true;
57
+ observer.error?.(err);
58
+ unsubscribe();
59
+ },
60
+ complete () {
61
+ if (isDone) {
62
+ return;
63
+ }
64
+ isDone = true;
65
+ observer.complete?.();
66
+ unsubscribe();
67
+ }
68
+ });
69
+ if (teardownImmediately) {
70
+ unsubscribe();
71
+ }
72
+ return {
73
+ unsubscribe
74
+ };
75
+ },
76
+ pipe (...operations) {
77
+ return pipeFromArray(operations)(self);
78
+ }
79
+ };
80
+ return self;
81
+ }
82
+
83
+ exports.isObservable = isObservable;
84
+ exports.observable = observable;
@@ -0,0 +1,81 @@
1
+ function identity(x) {
2
+ return x;
3
+ }
4
+
5
+ /** @internal */ function pipeFromArray(fns) {
6
+ if (fns.length === 0) {
7
+ return identity;
8
+ }
9
+ if (fns.length === 1) {
10
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
11
+ return fns[0];
12
+ }
13
+ return function piped(input) {
14
+ return fns.reduce((prev, fn)=>fn(prev), input);
15
+ };
16
+ }
17
+
18
+ function isObservable(x) {
19
+ return typeof x === 'object' && x !== null && 'subscribe' in x;
20
+ }
21
+ function observable(subscribe) {
22
+ const self = {
23
+ subscribe (observer) {
24
+ let teardownRef = null;
25
+ let isDone = false;
26
+ let unsubscribed = false;
27
+ let teardownImmediately = false;
28
+ function unsubscribe() {
29
+ if (teardownRef === null) {
30
+ teardownImmediately = true;
31
+ return;
32
+ }
33
+ if (unsubscribed) {
34
+ return;
35
+ }
36
+ unsubscribed = true;
37
+ if (typeof teardownRef === 'function') {
38
+ teardownRef();
39
+ } else if (teardownRef) {
40
+ teardownRef.unsubscribe();
41
+ }
42
+ }
43
+ teardownRef = subscribe({
44
+ next (value) {
45
+ if (isDone) {
46
+ return;
47
+ }
48
+ observer.next?.(value);
49
+ },
50
+ error (err) {
51
+ if (isDone) {
52
+ return;
53
+ }
54
+ isDone = true;
55
+ observer.error?.(err);
56
+ unsubscribe();
57
+ },
58
+ complete () {
59
+ if (isDone) {
60
+ return;
61
+ }
62
+ isDone = true;
63
+ observer.complete?.();
64
+ unsubscribe();
65
+ }
66
+ });
67
+ if (teardownImmediately) {
68
+ unsubscribe();
69
+ }
70
+ return {
71
+ unsubscribe
72
+ };
73
+ },
74
+ pipe (...operations) {
75
+ return pipeFromArray(operations)(self);
76
+ }
77
+ };
78
+ return self;
79
+ }
80
+
81
+ export { isObservable as i, observable as o };
@@ -0,0 +1,255 @@
1
+ import { T as TRPCError, g as getErrorFromUnknown, a as getCauseFromUnknown } from './TRPCError-e6e632a5.mjs';
2
+ import { t as transformTRPCResponse } from './transformTRPCResponse-c8138d5f.mjs';
3
+ import { T as TRPC_ERROR_CODES_BY_KEY } from './codes-aaa7d554.mjs';
4
+
5
+ /* istanbul ignore file */ function assertNotBrowser() {
6
+ if (typeof window !== 'undefined' && !('Deno' in window) && process.env.NODE_ENV !== 'test' && process.env.JEST_WORKER_ID === undefined) {
7
+ throw new Error('Imported server-only code in the browser');
8
+ }
9
+ }
10
+
11
+ function invert(obj) {
12
+ const newObj = Object.create(null);
13
+ for(const key in obj){
14
+ const v = obj[key];
15
+ newObj[v] = key;
16
+ }
17
+ return newObj;
18
+ }
19
+
20
+ const TRPC_ERROR_CODES_BY_NUMBER = invert(TRPC_ERROR_CODES_BY_KEY);
21
+ const JSONRPC2_TO_HTTP_CODE = {
22
+ PARSE_ERROR: 400,
23
+ BAD_REQUEST: 400,
24
+ NOT_FOUND: 404,
25
+ INTERNAL_SERVER_ERROR: 500,
26
+ UNAUTHORIZED: 401,
27
+ FORBIDDEN: 403,
28
+ TIMEOUT: 408,
29
+ CONFLICT: 409,
30
+ CLIENT_CLOSED_REQUEST: 499,
31
+ PRECONDITION_FAILED: 412,
32
+ PAYLOAD_TOO_LARGE: 413,
33
+ METHOD_NOT_SUPPORTED: 405
34
+ };
35
+ function getStatusCodeFromKey(code) {
36
+ return JSONRPC2_TO_HTTP_CODE[code] ?? 500;
37
+ }
38
+ function getHTTPStatusCode(json) {
39
+ const arr = Array.isArray(json) ? json : [
40
+ json
41
+ ];
42
+ const httpStatuses = new Set(arr.map((res)=>{
43
+ if ('error' in res) {
44
+ const data = res.error.data;
45
+ if (typeof data.httpStatus === 'number') {
46
+ return data.httpStatus;
47
+ }
48
+ const code = TRPC_ERROR_CODES_BY_NUMBER[res.error.code];
49
+ return getStatusCodeFromKey(code);
50
+ }
51
+ return 200;
52
+ }));
53
+ if (httpStatuses.size !== 1) {
54
+ return 207;
55
+ }
56
+ const httpStatus = httpStatuses.values().next().value;
57
+ return httpStatus;
58
+ }
59
+ function getHTTPStatusCodeFromError(error) {
60
+ const { code } = error;
61
+ return getStatusCodeFromKey(code);
62
+ }
63
+
64
+ const HTTP_METHOD_PROCEDURE_TYPE_MAP = {
65
+ GET: 'query',
66
+ POST: 'mutation',
67
+ PATCH: 'subscription'
68
+ };
69
+ function getRawProcedureInputOrThrow(req) {
70
+ try {
71
+ if (req.method === 'GET') {
72
+ if (!req.query.has('input')) {
73
+ return undefined;
74
+ }
75
+ const raw = req.query.get('input');
76
+ return JSON.parse(raw);
77
+ }
78
+ if (typeof req.body === 'string') {
79
+ // A mutation with no inputs will have req.body === ''
80
+ return req.body.length === 0 ? undefined : JSON.parse(req.body);
81
+ }
82
+ return req.body;
83
+ } catch (err) {
84
+ throw new TRPCError({
85
+ code: 'PARSE_ERROR',
86
+ cause: getCauseFromUnknown(err)
87
+ });
88
+ }
89
+ }
90
+ async function resolveHTTPResponse(opts) {
91
+ const { createContext , onError , router , req } = opts;
92
+ const batchingEnabled = opts.batching?.enabled ?? true;
93
+ if (req.method === 'HEAD') {
94
+ // can be used for lambda warmup
95
+ return {
96
+ status: 204
97
+ };
98
+ }
99
+ const type = HTTP_METHOD_PROCEDURE_TYPE_MAP[req.method] ?? 'unknown';
100
+ let ctx = undefined;
101
+ let paths = undefined;
102
+ const isBatchCall = !!req.query.get('batch');
103
+ function endResponse(untransformedJSON, errors) {
104
+ let status = getHTTPStatusCode(untransformedJSON);
105
+ const headers = {
106
+ 'Content-Type': 'application/json'
107
+ };
108
+ const meta = opts.responseMeta?.({
109
+ ctx,
110
+ paths,
111
+ type,
112
+ data: Array.isArray(untransformedJSON) ? untransformedJSON : [
113
+ untransformedJSON
114
+ ],
115
+ errors
116
+ }) ?? {};
117
+ for (const [key, value] of Object.entries(meta.headers ?? {})){
118
+ headers[key] = value;
119
+ }
120
+ if (meta.status) {
121
+ status = meta.status;
122
+ }
123
+ const transformedJSON = transformTRPCResponse(router, untransformedJSON);
124
+ const body = JSON.stringify(transformedJSON);
125
+ return {
126
+ body,
127
+ status,
128
+ headers
129
+ };
130
+ }
131
+ try {
132
+ if (opts.error) {
133
+ throw opts.error;
134
+ }
135
+ if (isBatchCall && !batchingEnabled) {
136
+ throw new Error(`Batching is not enabled on the server`);
137
+ }
138
+ if (type === 'unknown' || type === 'subscription') {
139
+ throw new TRPCError({
140
+ message: `Unexpected request method ${req.method}`,
141
+ code: 'METHOD_NOT_SUPPORTED'
142
+ });
143
+ }
144
+ const rawInput = getRawProcedureInputOrThrow(req);
145
+ paths = isBatchCall ? opts.path.split(',') : [
146
+ opts.path
147
+ ];
148
+ ctx = await createContext();
149
+ const deserializeInputValue = (rawValue)=>{
150
+ return typeof rawValue !== 'undefined' ? router._def.transformer.input.deserialize(rawValue) : rawValue;
151
+ };
152
+ const getInputs = ()=>{
153
+ if (!isBatchCall) {
154
+ return {
155
+ 0: deserializeInputValue(rawInput)
156
+ };
157
+ }
158
+ if (rawInput == null || typeof rawInput !== 'object' || Array.isArray(rawInput)) {
159
+ throw new TRPCError({
160
+ code: 'BAD_REQUEST',
161
+ message: '"input" needs to be an object when doing a batch call'
162
+ });
163
+ }
164
+ const input = {};
165
+ for(const key in rawInput){
166
+ const k = key;
167
+ const rawValue = rawInput[k];
168
+ const value = deserializeInputValue(rawValue);
169
+ input[k] = value;
170
+ }
171
+ return input;
172
+ };
173
+ const inputs = getInputs();
174
+ const rawResults = await Promise.all(paths.map(async (path, index)=>{
175
+ const input = inputs[index];
176
+ try {
177
+ const caller = router.createCaller(ctx);
178
+ const output = await caller[type](path, input);
179
+ return {
180
+ input,
181
+ path,
182
+ data: output
183
+ };
184
+ } catch (cause) {
185
+ const error = getErrorFromUnknown(cause);
186
+ onError?.({
187
+ error,
188
+ path,
189
+ input,
190
+ ctx,
191
+ type: type,
192
+ req
193
+ });
194
+ return {
195
+ input,
196
+ path,
197
+ error
198
+ };
199
+ }
200
+ }));
201
+ const errors = rawResults.flatMap((obj)=>obj.error ? [
202
+ obj.error
203
+ ] : []);
204
+ const resultEnvelopes = rawResults.map((obj)=>{
205
+ const { path , input } = obj;
206
+ if (obj.error) {
207
+ return {
208
+ error: router.getErrorShape({
209
+ error: obj.error,
210
+ type,
211
+ path,
212
+ input,
213
+ ctx
214
+ })
215
+ };
216
+ } else {
217
+ return {
218
+ result: {
219
+ data: obj.data
220
+ }
221
+ };
222
+ }
223
+ });
224
+ const result = isBatchCall ? resultEnvelopes : resultEnvelopes[0];
225
+ return endResponse(result, errors);
226
+ } catch (cause) {
227
+ // we get here if
228
+ // - batching is called when it's not enabled
229
+ // - `createContext()` throws
230
+ // - post body is too large
231
+ // - input deserialization fails
232
+ const error = getErrorFromUnknown(cause);
233
+ onError?.({
234
+ error,
235
+ path: undefined,
236
+ input: undefined,
237
+ ctx,
238
+ type: type,
239
+ req
240
+ });
241
+ return endResponse({
242
+ error: router.getErrorShape({
243
+ error,
244
+ type,
245
+ path: undefined,
246
+ input: undefined,
247
+ ctx
248
+ })
249
+ }, [
250
+ error
251
+ ]);
252
+ }
253
+ }
254
+
255
+ export { assertNotBrowser as a, getHTTPStatusCodeFromError as g, resolveHTTPResponse as r };
@@ -0,0 +1,259 @@
1
+ 'use strict';
2
+
3
+ var TRPCError = require('./TRPCError-bcb38a84.js');
4
+ var transformTRPCResponse = require('./transformTRPCResponse-11ac69cc.js');
5
+ var codes = require('./codes-1c24d919.js');
6
+
7
+ /* istanbul ignore file */ function assertNotBrowser() {
8
+ if (typeof window !== 'undefined' && !('Deno' in window) && process.env.NODE_ENV !== 'test' && process.env.JEST_WORKER_ID === undefined) {
9
+ throw new Error('Imported server-only code in the browser');
10
+ }
11
+ }
12
+
13
+ function invert(obj) {
14
+ const newObj = Object.create(null);
15
+ for(const key in obj){
16
+ const v = obj[key];
17
+ newObj[v] = key;
18
+ }
19
+ return newObj;
20
+ }
21
+
22
+ const TRPC_ERROR_CODES_BY_NUMBER = invert(codes.TRPC_ERROR_CODES_BY_KEY);
23
+ const JSONRPC2_TO_HTTP_CODE = {
24
+ PARSE_ERROR: 400,
25
+ BAD_REQUEST: 400,
26
+ NOT_FOUND: 404,
27
+ INTERNAL_SERVER_ERROR: 500,
28
+ UNAUTHORIZED: 401,
29
+ FORBIDDEN: 403,
30
+ TIMEOUT: 408,
31
+ CONFLICT: 409,
32
+ CLIENT_CLOSED_REQUEST: 499,
33
+ PRECONDITION_FAILED: 412,
34
+ PAYLOAD_TOO_LARGE: 413,
35
+ METHOD_NOT_SUPPORTED: 405
36
+ };
37
+ function getStatusCodeFromKey(code) {
38
+ return JSONRPC2_TO_HTTP_CODE[code] ?? 500;
39
+ }
40
+ function getHTTPStatusCode(json) {
41
+ const arr = Array.isArray(json) ? json : [
42
+ json
43
+ ];
44
+ const httpStatuses = new Set(arr.map((res)=>{
45
+ if ('error' in res) {
46
+ const data = res.error.data;
47
+ if (typeof data.httpStatus === 'number') {
48
+ return data.httpStatus;
49
+ }
50
+ const code = TRPC_ERROR_CODES_BY_NUMBER[res.error.code];
51
+ return getStatusCodeFromKey(code);
52
+ }
53
+ return 200;
54
+ }));
55
+ if (httpStatuses.size !== 1) {
56
+ return 207;
57
+ }
58
+ const httpStatus = httpStatuses.values().next().value;
59
+ return httpStatus;
60
+ }
61
+ function getHTTPStatusCodeFromError(error) {
62
+ const { code } = error;
63
+ return getStatusCodeFromKey(code);
64
+ }
65
+
66
+ const HTTP_METHOD_PROCEDURE_TYPE_MAP = {
67
+ GET: 'query',
68
+ POST: 'mutation',
69
+ PATCH: 'subscription'
70
+ };
71
+ function getRawProcedureInputOrThrow(req) {
72
+ try {
73
+ if (req.method === 'GET') {
74
+ if (!req.query.has('input')) {
75
+ return undefined;
76
+ }
77
+ const raw = req.query.get('input');
78
+ return JSON.parse(raw);
79
+ }
80
+ if (typeof req.body === 'string') {
81
+ // A mutation with no inputs will have req.body === ''
82
+ return req.body.length === 0 ? undefined : JSON.parse(req.body);
83
+ }
84
+ return req.body;
85
+ } catch (err) {
86
+ throw new TRPCError.TRPCError({
87
+ code: 'PARSE_ERROR',
88
+ cause: TRPCError.getCauseFromUnknown(err)
89
+ });
90
+ }
91
+ }
92
+ async function resolveHTTPResponse(opts) {
93
+ const { createContext , onError , router , req } = opts;
94
+ const batchingEnabled = opts.batching?.enabled ?? true;
95
+ if (req.method === 'HEAD') {
96
+ // can be used for lambda warmup
97
+ return {
98
+ status: 204
99
+ };
100
+ }
101
+ const type = HTTP_METHOD_PROCEDURE_TYPE_MAP[req.method] ?? 'unknown';
102
+ let ctx = undefined;
103
+ let paths = undefined;
104
+ const isBatchCall = !!req.query.get('batch');
105
+ function endResponse(untransformedJSON, errors) {
106
+ let status = getHTTPStatusCode(untransformedJSON);
107
+ const headers = {
108
+ 'Content-Type': 'application/json'
109
+ };
110
+ const meta = opts.responseMeta?.({
111
+ ctx,
112
+ paths,
113
+ type,
114
+ data: Array.isArray(untransformedJSON) ? untransformedJSON : [
115
+ untransformedJSON
116
+ ],
117
+ errors
118
+ }) ?? {};
119
+ for (const [key, value] of Object.entries(meta.headers ?? {})){
120
+ headers[key] = value;
121
+ }
122
+ if (meta.status) {
123
+ status = meta.status;
124
+ }
125
+ const transformedJSON = transformTRPCResponse.transformTRPCResponse(router, untransformedJSON);
126
+ const body = JSON.stringify(transformedJSON);
127
+ return {
128
+ body,
129
+ status,
130
+ headers
131
+ };
132
+ }
133
+ try {
134
+ if (opts.error) {
135
+ throw opts.error;
136
+ }
137
+ if (isBatchCall && !batchingEnabled) {
138
+ throw new Error(`Batching is not enabled on the server`);
139
+ }
140
+ if (type === 'unknown' || type === 'subscription') {
141
+ throw new TRPCError.TRPCError({
142
+ message: `Unexpected request method ${req.method}`,
143
+ code: 'METHOD_NOT_SUPPORTED'
144
+ });
145
+ }
146
+ const rawInput = getRawProcedureInputOrThrow(req);
147
+ paths = isBatchCall ? opts.path.split(',') : [
148
+ opts.path
149
+ ];
150
+ ctx = await createContext();
151
+ const deserializeInputValue = (rawValue)=>{
152
+ return typeof rawValue !== 'undefined' ? router._def.transformer.input.deserialize(rawValue) : rawValue;
153
+ };
154
+ const getInputs = ()=>{
155
+ if (!isBatchCall) {
156
+ return {
157
+ 0: deserializeInputValue(rawInput)
158
+ };
159
+ }
160
+ if (rawInput == null || typeof rawInput !== 'object' || Array.isArray(rawInput)) {
161
+ throw new TRPCError.TRPCError({
162
+ code: 'BAD_REQUEST',
163
+ message: '"input" needs to be an object when doing a batch call'
164
+ });
165
+ }
166
+ const input = {};
167
+ for(const key in rawInput){
168
+ const k = key;
169
+ const rawValue = rawInput[k];
170
+ const value = deserializeInputValue(rawValue);
171
+ input[k] = value;
172
+ }
173
+ return input;
174
+ };
175
+ const inputs = getInputs();
176
+ const rawResults = await Promise.all(paths.map(async (path, index)=>{
177
+ const input = inputs[index];
178
+ try {
179
+ const caller = router.createCaller(ctx);
180
+ const output = await caller[type](path, input);
181
+ return {
182
+ input,
183
+ path,
184
+ data: output
185
+ };
186
+ } catch (cause) {
187
+ const error = TRPCError.getErrorFromUnknown(cause);
188
+ onError?.({
189
+ error,
190
+ path,
191
+ input,
192
+ ctx,
193
+ type: type,
194
+ req
195
+ });
196
+ return {
197
+ input,
198
+ path,
199
+ error
200
+ };
201
+ }
202
+ }));
203
+ const errors = rawResults.flatMap((obj)=>obj.error ? [
204
+ obj.error
205
+ ] : []);
206
+ const resultEnvelopes = rawResults.map((obj)=>{
207
+ const { path , input } = obj;
208
+ if (obj.error) {
209
+ return {
210
+ error: router.getErrorShape({
211
+ error: obj.error,
212
+ type,
213
+ path,
214
+ input,
215
+ ctx
216
+ })
217
+ };
218
+ } else {
219
+ return {
220
+ result: {
221
+ data: obj.data
222
+ }
223
+ };
224
+ }
225
+ });
226
+ const result = isBatchCall ? resultEnvelopes : resultEnvelopes[0];
227
+ return endResponse(result, errors);
228
+ } catch (cause) {
229
+ // we get here if
230
+ // - batching is called when it's not enabled
231
+ // - `createContext()` throws
232
+ // - post body is too large
233
+ // - input deserialization fails
234
+ const error = TRPCError.getErrorFromUnknown(cause);
235
+ onError?.({
236
+ error,
237
+ path: undefined,
238
+ input: undefined,
239
+ ctx,
240
+ type: type,
241
+ req
242
+ });
243
+ return endResponse({
244
+ error: router.getErrorShape({
245
+ error,
246
+ type,
247
+ path: undefined,
248
+ input: undefined,
249
+ ctx
250
+ })
251
+ }, [
252
+ error
253
+ ]);
254
+ }
255
+ }
256
+
257
+ exports.assertNotBrowser = assertNotBrowser;
258
+ exports.getHTTPStatusCodeFromError = getHTTPStatusCodeFromError;
259
+ exports.resolveHTTPResponse = resolveHTTPResponse;