@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,903 @@
1
+ 'use strict';
2
+
3
+ var resolveHTTPResponse = require('./resolveHTTPResponse-29d4b64a.js');
4
+ var TRPCError = require('./TRPCError-bcb38a84.js');
5
+ var codes = require('./codes-1c24d919.js');
6
+ var index = require('./index-9d687d33.js');
7
+
8
+ resolveHTTPResponse.assertNotBrowser();
9
+
10
+ /* eslint-disable @typescript-eslint/no-explicit-any */ /**
11
+ * @public
12
+ */ /**
13
+ * @internal
14
+ */ function getDataTransformer$1(transformer) {
15
+ if ('input' in transformer) {
16
+ return transformer;
17
+ }
18
+ return {
19
+ input: transformer,
20
+ output: transformer
21
+ };
22
+ }
23
+ /**
24
+ * @internal
25
+ */ const defaultTransformer = {
26
+ _default: true,
27
+ input: {
28
+ serialize: (obj)=>obj,
29
+ deserialize: (obj)=>obj
30
+ },
31
+ output: {
32
+ serialize: (obj)=>obj,
33
+ deserialize: (obj)=>obj
34
+ }
35
+ };
36
+
37
+ const defaultFormatter = ({ shape })=>{
38
+ return shape;
39
+ };
40
+
41
+ /**
42
+ * @deprecated
43
+ */ const middlewareMarker$1 = 'middlewareMarker';
44
+
45
+ resolveHTTPResponse.assertNotBrowser();
46
+ function getParseFn$1(procedureParser) {
47
+ const parser = procedureParser;
48
+ if (typeof parser === 'function') {
49
+ // ProcedureParserCustomValidatorEsque
50
+ return parser;
51
+ }
52
+ if (typeof parser.parseAsync === 'function') {
53
+ // ProcedureParserZodEsque
54
+ return parser.parseAsync.bind(parser);
55
+ }
56
+ if (typeof parser.parse === 'function') {
57
+ // ProcedureParserZodEsque
58
+ return parser.parse.bind(parser);
59
+ }
60
+ if (typeof parser.validateSync === 'function') {
61
+ // ProcedureParserYupEsque
62
+ return parser.validateSync.bind(parser);
63
+ }
64
+ if (typeof parser.create === 'function') {
65
+ // ProcedureParserSuperstructEsque
66
+ return parser.create.bind(parser);
67
+ }
68
+ throw new Error('Could not find a validator fn');
69
+ }
70
+ /**
71
+ * @internal
72
+ * @deprecated
73
+ */ class Procedure {
74
+ _def() {
75
+ return {
76
+ middlewares: this.middlewares,
77
+ resolver: this.resolver,
78
+ inputParser: this.inputParser,
79
+ outputParser: this.outputParser,
80
+ meta: this.meta
81
+ };
82
+ }
83
+ async parseInput(rawInput) {
84
+ try {
85
+ return await this.parseInputFn(rawInput);
86
+ } catch (cause) {
87
+ throw new TRPCError.TRPCError({
88
+ code: 'BAD_REQUEST',
89
+ cause: TRPCError.getCauseFromUnknown(cause)
90
+ });
91
+ }
92
+ }
93
+ async parseOutput(rawOutput) {
94
+ try {
95
+ return await this.parseOutputFn(rawOutput);
96
+ } catch (cause) {
97
+ throw new TRPCError.TRPCError({
98
+ code: 'INTERNAL_SERVER_ERROR',
99
+ cause: TRPCError.getCauseFromUnknown(cause),
100
+ message: 'Output validation failed'
101
+ });
102
+ }
103
+ }
104
+ /**
105
+ * Trigger middlewares in order, parse raw input, call resolver & parse raw output
106
+ * @internal
107
+ */ async call(opts) {
108
+ // wrap the actual resolver and treat as the last "middleware"
109
+ const middlewaresWithResolver = this.middlewares.concat([
110
+ async ({ ctx })=>{
111
+ const input = await this.parseInput(opts.rawInput);
112
+ const rawOutput = await this.resolver({
113
+ ...opts,
114
+ ctx,
115
+ input
116
+ });
117
+ const data = await this.parseOutput(rawOutput);
118
+ return {
119
+ marker: middlewareMarker$1,
120
+ ok: true,
121
+ data,
122
+ ctx
123
+ };
124
+ },
125
+ ]);
126
+ // run the middlewares recursively with the resolver as the last one
127
+ const callRecursive = async (callOpts = {
128
+ index: 0,
129
+ ctx: opts.ctx
130
+ })=>{
131
+ try {
132
+ const result = await middlewaresWithResolver[callOpts.index]({
133
+ ctx: callOpts.ctx,
134
+ type: opts.type,
135
+ path: opts.path,
136
+ rawInput: opts.rawInput,
137
+ meta: this.meta,
138
+ next: async (nextOpts)=>{
139
+ return await callRecursive({
140
+ index: callOpts.index + 1,
141
+ ctx: nextOpts ? nextOpts.ctx : callOpts.ctx
142
+ });
143
+ }
144
+ });
145
+ return result;
146
+ } catch (cause) {
147
+ return {
148
+ ctx: callOpts.ctx,
149
+ ok: false,
150
+ error: TRPCError.getErrorFromUnknown(cause),
151
+ marker: middlewareMarker$1
152
+ };
153
+ }
154
+ };
155
+ // there's always at least one "next" since we wrap this.resolver in a middleware
156
+ const result = await callRecursive();
157
+ if (!result) {
158
+ throw new TRPCError.TRPCError({
159
+ code: 'INTERNAL_SERVER_ERROR',
160
+ message: 'No result from middlewares - did you forget to `return next()`?'
161
+ });
162
+ }
163
+ if (!result.ok) {
164
+ // re-throw original error
165
+ throw result.error;
166
+ }
167
+ return result.data;
168
+ }
169
+ /**
170
+ * Create new procedure with passed middlewares
171
+ * @param middlewares
172
+ */ inheritMiddlewares(middlewares) {
173
+ const Constructor = this.constructor;
174
+ const instance = new Constructor({
175
+ middlewares: [
176
+ ...middlewares,
177
+ ...this.middlewares
178
+ ],
179
+ resolver: this.resolver,
180
+ inputParser: this.inputParser,
181
+ outputParser: this.outputParser,
182
+ meta: this.meta
183
+ });
184
+ return instance;
185
+ }
186
+ constructor(opts){
187
+ this.middlewares = opts.middlewares;
188
+ this.resolver = opts.resolver;
189
+ this.inputParser = opts.inputParser;
190
+ this.parseInputFn = getParseFn$1(this.inputParser);
191
+ this.outputParser = opts.outputParser;
192
+ this.parseOutputFn = getParseFn$1(this.outputParser);
193
+ this.meta = opts.meta;
194
+ }
195
+ }
196
+ function createProcedure(opts) {
197
+ const inputParser = 'input' in opts ? opts.input : (input)=>{
198
+ if (input != null) {
199
+ throw new TRPCError.TRPCError({
200
+ code: 'BAD_REQUEST',
201
+ message: 'No input expected'
202
+ });
203
+ }
204
+ return undefined;
205
+ };
206
+ const outputParser = 'output' in opts && opts.output ? opts.output : (output)=>output;
207
+ return new Procedure({
208
+ inputParser: inputParser,
209
+ resolver: opts.resolve,
210
+ middlewares: [],
211
+ outputParser: outputParser,
212
+ meta: opts.meta
213
+ });
214
+ }
215
+
216
+ function getParseFn(procedureParser) {
217
+ const parser = procedureParser;
218
+ if (typeof parser === 'function') {
219
+ // ProcedureParserCustomValidatorEsque
220
+ return parser;
221
+ }
222
+ if (typeof parser.parseAsync === 'function') {
223
+ // ProcedureParserZodEsque
224
+ return parser.parseAsync.bind(parser);
225
+ }
226
+ if (typeof parser.parse === 'function') {
227
+ // ProcedureParserZodEsque
228
+ return parser.parse.bind(parser);
229
+ }
230
+ if (typeof parser.validateSync === 'function') {
231
+ // ProcedureParserYupEsque
232
+ return parser.validateSync.bind(parser);
233
+ }
234
+ if (typeof parser.create === 'function') {
235
+ // ProcedureParserSuperstructEsque
236
+ return parser.create.bind(parser);
237
+ }
238
+ throw new Error('Could not find a validator fn');
239
+ }
240
+ /**
241
+ * @deprecated only for backwards compat
242
+ * @internal
243
+ */ function getParseFnOrPassThrough(procedureParser) {
244
+ if (!procedureParser) {
245
+ return (v)=>v;
246
+ }
247
+ return getParseFn(procedureParser);
248
+ }
249
+
250
+ /**
251
+ * Ensures there are no duplicate keys when building a procedure.
252
+ */ function mergeWithoutOverrides(obj1, ...objs) {
253
+ const newObj = Object.assign(Object.create(null), obj1);
254
+ for (const overrides of objs){
255
+ for(const key in overrides){
256
+ if (key in newObj && newObj[key] !== overrides[key]) {
257
+ throw new Error(`Duplicate key ${key}`);
258
+ }
259
+ newObj[key] = overrides[key];
260
+ }
261
+ }
262
+ return newObj;
263
+ }
264
+
265
+ /**
266
+ * @internal
267
+ */ const middlewareMarker = 'middlewareMarker';
268
+
269
+ function createNewBuilder(def1, def2) {
270
+ const { middlewares =[] , inputs , ...rest } = def2;
271
+ // TODO: maybe have a fn here to warn about calls
272
+ return createBuilder({
273
+ ...mergeWithoutOverrides(def1, rest),
274
+ inputs: [
275
+ ...def1.inputs,
276
+ ...inputs ?? []
277
+ ],
278
+ middlewares: [
279
+ ...def1.middlewares,
280
+ ...middlewares
281
+ ]
282
+ });
283
+ }
284
+ function createBuilder(initDef) {
285
+ const _def = initDef || {
286
+ inputs: [],
287
+ middlewares: []
288
+ };
289
+ return {
290
+ _def,
291
+ input (input) {
292
+ const parser = getParseFn(input);
293
+ return createNewBuilder(_def, {
294
+ inputs: [
295
+ input
296
+ ],
297
+ middlewares: [
298
+ createInputMiddleware(parser)
299
+ ]
300
+ });
301
+ },
302
+ output (output) {
303
+ const parseOutput = getParseFn(output);
304
+ return createNewBuilder(_def, {
305
+ output,
306
+ middlewares: [
307
+ createOutputMiddleware(parseOutput)
308
+ ]
309
+ });
310
+ },
311
+ meta (meta) {
312
+ return createNewBuilder(_def, {
313
+ meta: meta
314
+ });
315
+ },
316
+ unstable_concat (builder) {
317
+ return createNewBuilder(_def, builder._def);
318
+ },
319
+ use (middleware) {
320
+ return createNewBuilder(_def, {
321
+ middlewares: [
322
+ middleware
323
+ ]
324
+ });
325
+ },
326
+ query (resolver) {
327
+ return createResolver({
328
+ ..._def,
329
+ query: true
330
+ }, resolver);
331
+ },
332
+ mutation (resolver) {
333
+ return createResolver({
334
+ ..._def,
335
+ mutation: true
336
+ }, resolver);
337
+ },
338
+ subscription (resolver) {
339
+ return createResolver({
340
+ ..._def,
341
+ subscription: true
342
+ }, resolver);
343
+ }
344
+ };
345
+ }
346
+ function isPlainObject(obj) {
347
+ return obj && typeof obj === 'object' && !Array.isArray(obj);
348
+ }
349
+ function createInputMiddleware(parse) {
350
+ return async function inputMiddleware({ next , rawInput , input }) {
351
+ let parsedInput;
352
+ try {
353
+ parsedInput = await parse(rawInput);
354
+ } catch (cause) {
355
+ throw new TRPCError.TRPCError({
356
+ code: 'BAD_REQUEST',
357
+ cause: TRPCError.getCauseFromUnknown(cause)
358
+ });
359
+ }
360
+ // Multiple input parsers
361
+ const combinedInput = isPlainObject(input) && isPlainObject(parsedInput) ? {
362
+ ...input,
363
+ ...parsedInput
364
+ } : parsedInput;
365
+ // TODO fix this typing?
366
+ return next({
367
+ input: combinedInput
368
+ });
369
+ };
370
+ }
371
+ function createOutputMiddleware(parse) {
372
+ return async function outputMiddleware({ next }) {
373
+ const result = await next();
374
+ if (!result.ok) {
375
+ // pass through failures without validating
376
+ return result;
377
+ }
378
+ try {
379
+ const data = await parse(result.data);
380
+ return {
381
+ ...result,
382
+ data
383
+ };
384
+ } catch (cause) {
385
+ throw new TRPCError.TRPCError({
386
+ message: 'Output validation failed',
387
+ code: 'INTERNAL_SERVER_ERROR',
388
+ cause: TRPCError.getCauseFromUnknown(cause)
389
+ });
390
+ }
391
+ };
392
+ }
393
+ function createResolver(_def, resolver) {
394
+ const finalBuilder = createNewBuilder(_def, {
395
+ resolver,
396
+ middlewares: [
397
+ async function resolveMiddleware(opts) {
398
+ const data = await resolver(opts);
399
+ return {
400
+ marker: middlewareMarker,
401
+ ok: true,
402
+ data,
403
+ ctx: opts.ctx
404
+ };
405
+ },
406
+ ]
407
+ });
408
+ return createProcedureCaller(finalBuilder._def);
409
+ }
410
+ const codeblock = `
411
+ If you want to call this function on the server, you do the following:
412
+ This is a client-only function.
413
+
414
+ const caller = appRouter.createCaller({
415
+ /* ... your context */
416
+ });
417
+
418
+ const result = await caller.call('myProcedure', input);
419
+ `.trim();
420
+ function createProcedureCaller(_def) {
421
+ const procedure = async function resolve(opts) {
422
+ // is direct server-side call
423
+ if (!opts || !('rawInput' in opts)) {
424
+ throw new Error(codeblock);
425
+ }
426
+ // run the middlewares recursively with the resolver as the last one
427
+ const callRecursive = async (callOpts = {
428
+ index: 0,
429
+ ctx: opts.ctx
430
+ })=>{
431
+ try {
432
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
433
+ const middleware = _def.middlewares[callOpts.index];
434
+ const result = await middleware({
435
+ ctx: callOpts.ctx,
436
+ type: opts.type,
437
+ path: opts.path,
438
+ rawInput: opts.rawInput,
439
+ meta: _def.meta,
440
+ input: callOpts.input,
441
+ next: async (nextOpts)=>{
442
+ return await callRecursive({
443
+ index: callOpts.index + 1,
444
+ ctx: nextOpts && 'ctx' in nextOpts ? {
445
+ ...callOpts.ctx,
446
+ ...nextOpts.ctx
447
+ } : callOpts.ctx,
448
+ input: nextOpts && 'input' in nextOpts ? nextOpts.input : callOpts.input
449
+ });
450
+ }
451
+ });
452
+ return result;
453
+ } catch (cause) {
454
+ return {
455
+ ok: false,
456
+ error: TRPCError.getErrorFromUnknown(cause),
457
+ marker: middlewareMarker
458
+ };
459
+ }
460
+ };
461
+ // there's always at least one "next" since we wrap this.resolver in a middleware
462
+ const result = await callRecursive();
463
+ if (!result) {
464
+ throw new TRPCError.TRPCError({
465
+ code: 'INTERNAL_SERVER_ERROR',
466
+ message: 'No result from middlewares - did you forget to `return next()`?'
467
+ });
468
+ }
469
+ if (!result.ok) {
470
+ // re-throw original error
471
+ throw result.error;
472
+ }
473
+ return result.data;
474
+ };
475
+ procedure._def = _def;
476
+ procedure.meta = _def.meta;
477
+ return procedure;
478
+ }
479
+
480
+ /**
481
+ * Create an object without inheriting anything from `Object.prototype`
482
+ * @internal
483
+ */ function omitPrototype(obj1) {
484
+ return Object.assign(Object.create(null), obj1);
485
+ }
486
+
487
+ const procedureTypes = [
488
+ 'query',
489
+ 'mutation',
490
+ 'subscription'
491
+ ];
492
+
493
+ function isRouter(procedureOrRouter) {
494
+ return 'router' in procedureOrRouter._def;
495
+ }
496
+ const emptyRouter = {
497
+ _ctx: null,
498
+ _errorShape: null,
499
+ _meta: null,
500
+ queries: {},
501
+ mutations: {},
502
+ subscriptions: {},
503
+ errorFormatter: defaultFormatter,
504
+ transformer: defaultTransformer
505
+ };
506
+ /**
507
+ *
508
+ * @internal
509
+ */ function createRouterFactory(defaults) {
510
+ return function createRouterInner(opts) {
511
+ const routerProcedures = omitPrototype({});
512
+ function recursiveGetPaths(procedures, path = '') {
513
+ for (const [key, procedureOrRouter] of Object.entries(procedures ?? {})){
514
+ const newPath = `${path}${key}`;
515
+ if (isRouter(procedureOrRouter)) {
516
+ recursiveGetPaths(procedureOrRouter._def.procedures, `${newPath}.`);
517
+ continue;
518
+ }
519
+ routerProcedures[newPath] = procedureOrRouter;
520
+ }
521
+ }
522
+ recursiveGetPaths(opts);
523
+ const result = mergeWithoutOverrides({
524
+ transformer: defaults?.transformer ?? defaultTransformer,
525
+ errorFormatter: defaults?.errorFormatter ?? defaultFormatter
526
+ }, {
527
+ procedures: routerProcedures
528
+ });
529
+ const _def = {
530
+ router: true,
531
+ legacy: {},
532
+ procedures: {},
533
+ ...emptyRouter,
534
+ ...result,
535
+ record: opts,
536
+ queries: Object.entries(result.procedures || {}).filter((pair)=>pair[1]._def.query).reduce((acc, [key, val])=>({
537
+ ...acc,
538
+ [key]: val
539
+ }), {}),
540
+ mutations: Object.entries(result.procedures || {}).filter((pair)=>pair[1]._def.mutation).reduce((acc, [key, val])=>({
541
+ ...acc,
542
+ [key]: val
543
+ }), {}),
544
+ subscriptions: Object.entries(result.procedures || {}).filter((pair)=>pair[1]._def.subscription).reduce((acc, [key, val])=>({
545
+ ...acc,
546
+ [key]: val
547
+ }), {}),
548
+ routers: Object.entries(result.procedures || {}).filter((pair)=>pair[1]._def._router).reduce((acc, [key, val])=>({
549
+ ...acc,
550
+ [key]: val
551
+ }), {})
552
+ };
553
+ const router = {
554
+ ...opts,
555
+ _def,
556
+ transformer: _def.transformer,
557
+ errorFormatter: _def.errorFormatter,
558
+ createCaller (ctx) {
559
+ const proxy = index.createProxy(({ path , args })=>{
560
+ // interop mode
561
+ if (path.length === 1 && procedureTypes.includes(path[0])) {
562
+ return callProcedure({
563
+ procedures: _def.procedures,
564
+ path: args[0],
565
+ rawInput: args[1],
566
+ ctx,
567
+ type: path[0]
568
+ });
569
+ }
570
+ const fullPath = path.join('.');
571
+ const procedure = _def.procedures[fullPath];
572
+ let type = 'query';
573
+ if (procedure._def.mutation) {
574
+ type = 'mutation';
575
+ } else if (procedure._def.subscription) {
576
+ type = 'subscription';
577
+ }
578
+ return procedure({
579
+ path: fullPath,
580
+ rawInput: args[0],
581
+ ctx,
582
+ type
583
+ });
584
+ });
585
+ return proxy;
586
+ },
587
+ getErrorShape (opts) {
588
+ const { path , error } = opts;
589
+ const { code } = opts.error;
590
+ const shape = {
591
+ message: error.message,
592
+ code: codes.TRPC_ERROR_CODES_BY_KEY[code],
593
+ data: {
594
+ code,
595
+ httpStatus: resolveHTTPResponse.getHTTPStatusCodeFromError(error)
596
+ }
597
+ };
598
+ if (process.env.NODE_ENV !== 'production' && typeof opts.error.stack === 'string') {
599
+ shape.data.stack = opts.error.stack;
600
+ }
601
+ if (typeof path === 'string') {
602
+ shape.data.path = path;
603
+ }
604
+ return this._def.errorFormatter({
605
+ ...opts,
606
+ shape
607
+ });
608
+ }
609
+ };
610
+ return router;
611
+ };
612
+ }
613
+ /**
614
+ * @internal
615
+ */ function callProcedure(opts) {
616
+ const { type , path } = opts;
617
+ if (!(path in opts.procedures) || !opts.procedures[path]?._def[type]) {
618
+ throw new TRPCError.TRPCError({
619
+ code: 'NOT_FOUND',
620
+ message: `No "${type}"-procedure on path "${path}"`
621
+ });
622
+ }
623
+ const procedure = opts.procedures[path];
624
+ return procedure(opts);
625
+ }
626
+
627
+ function migrateProcedure(oldProc, type) {
628
+ const def = oldProc._def();
629
+ const inputParser = getParseFnOrPassThrough(def.inputParser);
630
+ const outputParser = getParseFnOrPassThrough(def.outputParser);
631
+ const inputMiddleware = createInputMiddleware(inputParser);
632
+ const builder = createBuilder({
633
+ inputs: [
634
+ def.inputParser
635
+ ],
636
+ middlewares: [
637
+ ...def.middlewares,
638
+ inputMiddleware,
639
+ createOutputMiddleware(outputParser),
640
+ ],
641
+ meta: def.meta,
642
+ output: def.outputParser,
643
+ mutation: type === 'mutation',
644
+ query: type === 'query',
645
+ subscription: type === 'subscription'
646
+ });
647
+ const proc = builder[type]((opts)=>def.resolver(opts));
648
+ return proc;
649
+ }
650
+ function migrateRouter(oldRouter) {
651
+ const errorFormatter = oldRouter._def.errorFormatter;
652
+ const transformer = oldRouter._def.transformer;
653
+ const queries = {};
654
+ const mutations = {};
655
+ const subscriptions = {};
656
+ for (const [name, procedure] of Object.entries(oldRouter._def.queries)){
657
+ queries[name] = migrateProcedure(procedure, 'query');
658
+ }
659
+ for (const [name1, procedure1] of Object.entries(oldRouter._def.mutations)){
660
+ mutations[name1] = migrateProcedure(procedure1, 'mutation');
661
+ }
662
+ for (const [name2, procedure2] of Object.entries(oldRouter._def.subscriptions)){
663
+ subscriptions[name2] = migrateProcedure(procedure2, 'subscription');
664
+ }
665
+ const procedures = mergeWithoutOverrides(queries, mutations, subscriptions);
666
+ const newRouter = createRouterFactory({
667
+ transformer,
668
+ errorFormatter
669
+ })(procedures);
670
+ return newRouter;
671
+ }
672
+
673
+ resolveHTTPResponse.assertNotBrowser();
674
+ function getDataTransformer(transformer) {
675
+ if ('input' in transformer) {
676
+ return transformer;
677
+ }
678
+ return {
679
+ input: transformer,
680
+ output: transformer
681
+ };
682
+ }
683
+ const PROCEDURE_DEFINITION_MAP = {
684
+ query: 'queries',
685
+ mutation: 'mutations',
686
+ subscription: 'subscriptions'
687
+ };
688
+ function safeObject(...args) {
689
+ return Object.assign(Object.create(null), ...args);
690
+ }
691
+ /**
692
+ * @internal The type signature of this class may change without warning.
693
+ * @deprecated
694
+ */ class Router {
695
+ static prefixProcedures(procedures, prefix) {
696
+ const eps = safeObject();
697
+ for (const [key, procedure] of Object.entries(procedures)){
698
+ eps[prefix + key] = procedure;
699
+ }
700
+ return eps;
701
+ }
702
+ query(path, procedure) {
703
+ const router = new Router({
704
+ queries: safeObject({
705
+ [path]: createProcedure(procedure)
706
+ })
707
+ });
708
+ return this.merge(router);
709
+ }
710
+ mutation(path, procedure) {
711
+ const router = new Router({
712
+ mutations: safeObject({
713
+ [path]: createProcedure(procedure)
714
+ })
715
+ });
716
+ return this.merge(router);
717
+ }
718
+ subscription(path, procedure) {
719
+ const router = new Router({
720
+ subscriptions: safeObject({
721
+ [path]: createProcedure(procedure)
722
+ })
723
+ });
724
+ return this.merge(router);
725
+ }
726
+ merge(prefixOrRouter, maybeRouter) {
727
+ let prefix = '';
728
+ let childRouter;
729
+ if (typeof prefixOrRouter === 'string' && maybeRouter instanceof Router) {
730
+ prefix = prefixOrRouter;
731
+ childRouter = maybeRouter;
732
+ } else if (prefixOrRouter instanceof Router) {
733
+ childRouter = prefixOrRouter;
734
+ } else {
735
+ throw new Error('Invalid args');
736
+ }
737
+ const duplicateQueries = Object.keys(childRouter._def.queries).filter((key)=>!!this._def['queries'][prefix + key]);
738
+ const duplicateMutations = Object.keys(childRouter._def.mutations).filter((key)=>!!this._def['mutations'][prefix + key]);
739
+ const duplicateSubscriptions = Object.keys(childRouter._def.subscriptions).filter((key)=>!!this._def['subscriptions'][prefix + key]);
740
+ const duplicates = [
741
+ ...duplicateQueries,
742
+ ...duplicateMutations,
743
+ ...duplicateSubscriptions,
744
+ ];
745
+ if (duplicates.length) {
746
+ throw new Error(`Duplicate endpoint(s): ${duplicates.join(', ')}`);
747
+ }
748
+ const mergeProcedures = (defs)=>{
749
+ const newDefs = safeObject();
750
+ for (const [key, procedure] of Object.entries(defs)){
751
+ const newProcedure = procedure.inheritMiddlewares(this._def.middlewares);
752
+ newDefs[key] = newProcedure;
753
+ }
754
+ return Router.prefixProcedures(newDefs, prefix);
755
+ };
756
+ return new Router({
757
+ ...this._def,
758
+ queries: safeObject(this._def.queries, mergeProcedures(childRouter._def.queries)),
759
+ mutations: safeObject(this._def.mutations, mergeProcedures(childRouter._def.mutations)),
760
+ subscriptions: safeObject(this._def.subscriptions, mergeProcedures(childRouter._def.subscriptions))
761
+ });
762
+ }
763
+ /**
764
+ * Invoke procedure. Only for internal use within library.
765
+ */ async call(opts) {
766
+ const { type , path } = opts;
767
+ const defTarget = PROCEDURE_DEFINITION_MAP[type];
768
+ const defs = this._def[defTarget];
769
+ const procedure = defs[path];
770
+ if (!procedure) {
771
+ throw new TRPCError.TRPCError({
772
+ code: 'NOT_FOUND',
773
+ message: `No "${type}"-procedure on path "${path}"`
774
+ });
775
+ }
776
+ return procedure.call(opts);
777
+ }
778
+ createCaller(ctx) {
779
+ return {
780
+ query: (path, ...args)=>{
781
+ return this.call({
782
+ type: 'query',
783
+ ctx,
784
+ path,
785
+ rawInput: args[0]
786
+ });
787
+ },
788
+ mutation: (path, ...args)=>{
789
+ return this.call({
790
+ type: 'mutation',
791
+ ctx,
792
+ path,
793
+ rawInput: args[0]
794
+ });
795
+ },
796
+ subscription: (path, ...args)=>{
797
+ return this.call({
798
+ type: 'subscription',
799
+ ctx,
800
+ path,
801
+ rawInput: args[0]
802
+ });
803
+ }
804
+ };
805
+ }
806
+ /**
807
+ * Function to be called before any procedure is invoked
808
+ * @link https://trpc.io/docs/middlewares
809
+ */ middleware(middleware) {
810
+ return new Router({
811
+ ...this._def,
812
+ middlewares: [
813
+ ...this._def.middlewares,
814
+ middleware
815
+ ]
816
+ });
817
+ }
818
+ /**
819
+ * Format errors
820
+ * @link https://trpc.io/docs/error-formatting
821
+ */ formatError(errorFormatter) {
822
+ if (this._def.errorFormatter !== defaultFormatter) {
823
+ throw new Error('You seem to have double `formatError()`-calls in your router tree');
824
+ }
825
+ return new Router({
826
+ ...this._def,
827
+ errorFormatter: errorFormatter
828
+ });
829
+ }
830
+ getErrorShape(opts) {
831
+ const { path , error } = opts;
832
+ const { code } = opts.error;
833
+ const shape = {
834
+ message: error.message,
835
+ code: codes.TRPC_ERROR_CODES_BY_KEY[code],
836
+ data: {
837
+ code,
838
+ httpStatus: resolveHTTPResponse.getHTTPStatusCodeFromError(error)
839
+ }
840
+ };
841
+ if (process.env.NODE_ENV !== 'production' && typeof opts.error.stack === 'string') {
842
+ shape.data.stack = opts.error.stack;
843
+ }
844
+ if (typeof path === 'string') {
845
+ shape.data.path = path;
846
+ }
847
+ return this._def.errorFormatter({
848
+ ...opts,
849
+ shape
850
+ });
851
+ }
852
+ /**
853
+ * Add data transformer to serialize/deserialize input args + output
854
+ * @link https://trpc.io/docs/data-transformers
855
+ */ transformer(_transformer) {
856
+ const transformer = getDataTransformer(_transformer);
857
+ if (this._def.transformer !== defaultTransformer) {
858
+ throw new Error('You seem to have double `transformer()`-calls in your router tree');
859
+ }
860
+ return new Router({
861
+ ...this._def,
862
+ transformer
863
+ });
864
+ }
865
+ /**
866
+ * Flattens the generics of TQueries/TMutations/TSubscriptions.
867
+ * ⚠️ Experimental - might disappear. ⚠️
868
+ *
869
+ * @alpha
870
+ */ flat() {
871
+ return this;
872
+ }
873
+ /**
874
+ * Interop mode for v9.x -> v10.x
875
+ */ interop() {
876
+ return migrateRouter(this);
877
+ }
878
+ constructor(def){
879
+ this._def = {
880
+ queries: def?.queries ?? safeObject(),
881
+ mutations: def?.mutations ?? safeObject(),
882
+ subscriptions: def?.subscriptions ?? safeObject(),
883
+ middlewares: def?.middlewares ?? [],
884
+ errorFormatter: def?.errorFormatter ?? defaultFormatter,
885
+ transformer: def?.transformer ?? defaultTransformer
886
+ };
887
+ }
888
+ }
889
+ /**
890
+ * @deprecated
891
+ */ function router() {
892
+ return new Router();
893
+ }
894
+
895
+ exports.callProcedure = callProcedure;
896
+ exports.createBuilder = createBuilder;
897
+ exports.createRouterFactory = createRouterFactory;
898
+ exports.defaultFormatter = defaultFormatter;
899
+ exports.defaultTransformer = defaultTransformer;
900
+ exports.getDataTransformer = getDataTransformer$1;
901
+ exports.mergeWithoutOverrides = mergeWithoutOverrides;
902
+ exports.procedureTypes = procedureTypes;
903
+ exports.router = router;