@trpc/server 11.0.0-alpha-tmp-export-from-main-nuke-core.240 → 11.0.0-alpha-tmp-export-from-main.223

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 (308) hide show
  1. package/dist/adapters/aws-lambda/index.d.mts +68 -0
  2. package/dist/adapters/aws-lambda/index.d.ts +55 -6
  3. package/dist/adapters/aws-lambda/index.js +111 -23
  4. package/dist/adapters/aws-lambda/index.mjs +95 -7
  5. package/dist/adapters/express.d.mts +19 -0
  6. package/dist/adapters/express.d.ts +10 -6
  7. package/dist/adapters/express.js +3 -3
  8. package/dist/adapters/express.mjs +1 -1
  9. package/dist/adapters/fastify/index.d.mts +33 -0
  10. package/dist/adapters/fastify/index.d.ts +33 -3
  11. package/dist/adapters/fastify/index.js +124 -5
  12. package/dist/adapters/fastify/index.mjs +125 -2
  13. package/dist/adapters/fetch/index.d.mts +51 -0
  14. package/dist/adapters/fetch/index.d.ts +51 -3
  15. package/dist/adapters/fetch/index.js +115 -4
  16. package/dist/adapters/fetch/index.mjs +116 -1
  17. package/dist/adapters/next.d.mts +21 -0
  18. package/dist/adapters/next.d.ts +12 -6
  19. package/dist/adapters/next.js +7 -9
  20. package/dist/adapters/next.mjs +3 -5
  21. package/dist/adapters/node-http/content-type/form-data/index.d.mts +219 -0
  22. package/dist/adapters/node-http/content-type/form-data/index.d.ts +201 -10
  23. package/dist/adapters/node-http/content-type/form-data/index.js +662 -23
  24. package/dist/adapters/node-http/content-type/form-data/index.mjs +646 -10
  25. package/dist/adapters/node-http/{types.d.ts → content-type/json/index.d.mts} +22 -15
  26. package/dist/adapters/node-http/content-type/json/index.d.ts +89 -2
  27. package/dist/adapters/node-http/content-type/json/index.js +48 -9
  28. package/dist/adapters/node-http/content-type/json/index.mjs +44 -5
  29. package/dist/adapters/node-http/index.d.mts +100 -0
  30. package/dist/adapters/node-http/index.d.ts +100 -3
  31. package/dist/adapters/node-http/index.js +106 -4
  32. package/dist/adapters/node-http/index.mjs +107 -1
  33. package/dist/adapters/standalone.d.mts +21 -0
  34. package/dist/adapters/standalone.d.ts +12 -9
  35. package/dist/adapters/standalone.js +9 -6
  36. package/dist/adapters/standalone.mjs +2 -3
  37. package/dist/adapters/ws.d.mts +36 -0
  38. package/dist/adapters/ws.d.ts +12 -14
  39. package/dist/adapters/ws.js +33 -38
  40. package/dist/adapters/ws.mjs +12 -17
  41. package/dist/http.d.mts +1 -0
  42. package/dist/http.d.ts +1 -2
  43. package/dist/http.js +22 -12
  44. package/dist/http.mjs +1 -6
  45. package/dist/index.d.mts +9 -0
  46. package/dist/index.d.ts +9 -2
  47. package/dist/index.js +811 -23
  48. package/dist/index.mjs +799 -8
  49. package/dist/observable.d.mts +1 -0
  50. package/dist/observable.d.ts +1 -0
  51. package/dist/observable.js +30 -0
  52. package/dist/observable.mjs +1 -0
  53. package/dist/rpc.d.mts +1 -0
  54. package/dist/rpc.d.ts +1 -2
  55. package/dist/rpc.js +14 -7
  56. package/dist/rpc.mjs +1 -3
  57. package/dist/shared.d.mts +1 -0
  58. package/dist/shared.d.ts +1 -26
  59. package/dist/shared.js +10 -7
  60. package/dist/shared.mjs +1 -4
  61. package/dist/unstableDontImportMe.d.mts +1 -0
  62. package/dist/unstableDontImportMe.d.ts +1 -0
  63. package/dist/unstableDontImportMe.js +1549 -0
  64. package/dist/unstableDontImportMe.mjs +1514 -0
  65. package/package.json +138 -53
  66. package/src/@trpc-server/http.ts +2 -0
  67. package/src/adapters/aws-lambda/index.ts +5 -4
  68. package/src/adapters/aws-lambda/utils.ts +4 -3
  69. package/src/adapters/express.ts +3 -1
  70. package/src/adapters/fastify/fastifyRequestHandler.ts +4 -6
  71. package/src/adapters/fastify/fastifyTRPCPlugin.ts +2 -1
  72. package/src/adapters/fetch/fetchRequestHandler.ts +4 -6
  73. package/src/adapters/fetch/types.ts +3 -2
  74. package/src/adapters/next.ts +4 -2
  75. package/src/adapters/node-http/content-type/form-data/index.ts +1 -1
  76. package/src/adapters/node-http/content-type/json/getPostBody.ts +2 -2
  77. package/src/adapters/node-http/content-type/json/index.ts +1 -1
  78. package/src/adapters/node-http/internals/contentType.ts +2 -2
  79. package/src/adapters/node-http/nodeHTTPRequestHandler.ts +4 -6
  80. package/src/adapters/node-http/types.ts +5 -4
  81. package/src/adapters/standalone.ts +2 -2
  82. package/src/adapters/ws.ts +13 -14
  83. package/src/http.ts +26 -1
  84. package/src/index.ts +107 -1
  85. package/src/observable.ts +16 -0
  86. package/src/rpc.ts +26 -1
  87. package/src/shared.ts +1 -1
  88. package/src/unstableDontImportMe.ts +146 -0
  89. package/unstableDontImportMe/index.d.ts +1 -0
  90. package/unstableDontImportMe/index.js +1 -0
  91. package/dist/@trpc/server/http.d.ts +0 -7
  92. package/dist/@trpc/server/http.d.ts.map +0 -1
  93. package/dist/@trpc/server/index.d.ts +0 -69
  94. package/dist/@trpc/server/index.d.ts.map +0 -1
  95. package/dist/@trpc/server/rpc.d.ts +0 -3
  96. package/dist/@trpc/server/rpc.d.ts.map +0 -1
  97. package/dist/adapters/aws-lambda/index.d.ts.map +0 -1
  98. package/dist/adapters/aws-lambda/utils.d.ts +0 -47
  99. package/dist/adapters/aws-lambda/utils.d.ts.map +0 -1
  100. package/dist/adapters/aws-lambda/utils.js +0 -101
  101. package/dist/adapters/aws-lambda/utils.mjs +0 -94
  102. package/dist/adapters/express.d.ts.map +0 -1
  103. package/dist/adapters/fastify/fastifyRequestHandler.d.ts +0 -13
  104. package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +0 -1
  105. package/dist/adapters/fastify/fastifyRequestHandler.js +0 -84
  106. package/dist/adapters/fastify/fastifyRequestHandler.mjs +0 -82
  107. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts +0 -21
  108. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +0 -1
  109. package/dist/adapters/fastify/fastifyTRPCPlugin.js +0 -50
  110. package/dist/adapters/fastify/fastifyTRPCPlugin.mjs +0 -48
  111. package/dist/adapters/fastify/index.d.ts.map +0 -1
  112. package/dist/adapters/fetch/fetchRequestHandler.d.ts +0 -17
  113. package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +0 -1
  114. package/dist/adapters/fetch/fetchRequestHandler.js +0 -120
  115. package/dist/adapters/fetch/fetchRequestHandler.mjs +0 -118
  116. package/dist/adapters/fetch/index.d.ts.map +0 -1
  117. package/dist/adapters/fetch/types.d.ts +0 -30
  118. package/dist/adapters/fetch/types.d.ts.map +0 -1
  119. package/dist/adapters/next.d.ts.map +0 -1
  120. package/dist/adapters/node-http/content-type/form-data/fileUploadHandler.d.ts +0 -70
  121. package/dist/adapters/node-http/content-type/form-data/fileUploadHandler.d.ts.map +0 -1
  122. package/dist/adapters/node-http/content-type/form-data/fileUploadHandler.js +0 -161
  123. package/dist/adapters/node-http/content-type/form-data/fileUploadHandler.mjs +0 -157
  124. package/dist/adapters/node-http/content-type/form-data/index.d.ts.map +0 -1
  125. package/dist/adapters/node-http/content-type/form-data/memoryUploadHandler.d.ts +0 -31
  126. package/dist/adapters/node-http/content-type/form-data/memoryUploadHandler.d.ts.map +0 -1
  127. package/dist/adapters/node-http/content-type/form-data/memoryUploadHandler.js +0 -29
  128. package/dist/adapters/node-http/content-type/form-data/memoryUploadHandler.mjs +0 -27
  129. package/dist/adapters/node-http/content-type/form-data/streamSlice.d.ts +0 -16
  130. package/dist/adapters/node-http/content-type/form-data/streamSlice.d.ts.map +0 -1
  131. package/dist/adapters/node-http/content-type/form-data/streamSlice.js +0 -46
  132. package/dist/adapters/node-http/content-type/form-data/streamSlice.mjs +0 -44
  133. package/dist/adapters/node-http/content-type/form-data/uploadHandler.d.ts +0 -45
  134. package/dist/adapters/node-http/content-type/form-data/uploadHandler.d.ts.map +0 -1
  135. package/dist/adapters/node-http/content-type/form-data/uploadHandler.js +0 -30
  136. package/dist/adapters/node-http/content-type/form-data/uploadHandler.mjs +0 -26
  137. package/dist/adapters/node-http/content-type/json/getPostBody.d.ts +0 -7
  138. package/dist/adapters/node-http/content-type/json/getPostBody.d.ts.map +0 -1
  139. package/dist/adapters/node-http/content-type/json/getPostBody.js +0 -44
  140. package/dist/adapters/node-http/content-type/json/getPostBody.mjs +0 -42
  141. package/dist/adapters/node-http/content-type/json/index.d.ts.map +0 -1
  142. package/dist/adapters/node-http/index.d.ts.map +0 -1
  143. package/dist/adapters/node-http/internals/contentType.d.ts +0 -9
  144. package/dist/adapters/node-http/internals/contentType.d.ts.map +0 -1
  145. package/dist/adapters/node-http/internals/contentType.js +0 -8
  146. package/dist/adapters/node-http/internals/contentType.mjs +0 -6
  147. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts +0 -13
  148. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +0 -1
  149. package/dist/adapters/node-http/nodeHTTPRequestHandler.js +0 -111
  150. package/dist/adapters/node-http/nodeHTTPRequestHandler.mjs +0 -109
  151. package/dist/adapters/node-http/types.d.ts.map +0 -1
  152. package/dist/adapters/standalone.d.ts.map +0 -1
  153. package/dist/adapters/ws.d.ts.map +0 -1
  154. package/dist/bundle-analysis.json +0 -757
  155. package/dist/http.d.ts.map +0 -1
  156. package/dist/index.d.ts.map +0 -1
  157. package/dist/node_modules/.pnpm/@web3-storage_multipart-parser@1.0.0/node_modules/@web3-storage/multipart-parser/esm/src/index.js +0 -203
  158. package/dist/node_modules/.pnpm/@web3-storage_multipart-parser@1.0.0/node_modules/@web3-storage/multipart-parser/esm/src/index.mjs +0 -201
  159. package/dist/node_modules/.pnpm/@web3-storage_multipart-parser@1.0.0/node_modules/@web3-storage/multipart-parser/esm/src/search.js +0 -167
  160. package/dist/node_modules/.pnpm/@web3-storage_multipart-parser@1.0.0/node_modules/@web3-storage/multipart-parser/esm/src/search.mjs +0 -163
  161. package/dist/node_modules/.pnpm/@web3-storage_multipart-parser@1.0.0/node_modules/@web3-storage/multipart-parser/esm/src/utils.js +0 -35
  162. package/dist/node_modules/.pnpm/@web3-storage_multipart-parser@1.0.0/node_modules/@web3-storage/multipart-parser/esm/src/utils.mjs +0 -30
  163. package/dist/observable/index.d.ts +0 -5
  164. package/dist/observable/index.d.ts.map +0 -1
  165. package/dist/observable/index.js +0 -13
  166. package/dist/observable/index.mjs +0 -2
  167. package/dist/observable/observable.d.ts +0 -13
  168. package/dist/observable/observable.d.ts.map +0 -1
  169. package/dist/observable/observable.js +0 -126
  170. package/dist/observable/observable.mjs +0 -122
  171. package/dist/observable/operators.d.ts +0 -8
  172. package/dist/observable/operators.d.ts.map +0 -1
  173. package/dist/observable/operators.js +0 -103
  174. package/dist/observable/operators.mjs +0 -99
  175. package/dist/observable/types.d.ts +0 -26
  176. package/dist/observable/types.d.ts.map +0 -1
  177. package/dist/rpc.d.ts.map +0 -1
  178. package/dist/shared.d.ts.map +0 -1
  179. package/dist/unstable-core-do-not-import/TRPCInferrable.d.ts +0 -6
  180. package/dist/unstable-core-do-not-import/TRPCInferrable.d.ts.map +0 -1
  181. package/dist/unstable-core-do-not-import/createProxy.d.ts +0 -19
  182. package/dist/unstable-core-do-not-import/createProxy.d.ts.map +0 -1
  183. package/dist/unstable-core-do-not-import/createProxy.js +0 -52
  184. package/dist/unstable-core-do-not-import/createProxy.mjs +0 -49
  185. package/dist/unstable-core-do-not-import/error/TRPCError.d.ts +0 -13
  186. package/dist/unstable-core-do-not-import/error/TRPCError.d.ts.map +0 -1
  187. package/dist/unstable-core-do-not-import/error/TRPCError.js +0 -67
  188. package/dist/unstable-core-do-not-import/error/TRPCError.mjs +0 -63
  189. package/dist/unstable-core-do-not-import/error/formatter.d.ts +0 -33
  190. package/dist/unstable-core-do-not-import/error/formatter.d.ts.map +0 -1
  191. package/dist/unstable-core-do-not-import/error/formatter.js +0 -7
  192. package/dist/unstable-core-do-not-import/error/formatter.mjs +0 -5
  193. package/dist/unstable-core-do-not-import/error/getErrorShape.d.ts +0 -15
  194. package/dist/unstable-core-do-not-import/error/getErrorShape.d.ts.map +0 -1
  195. package/dist/unstable-core-do-not-import/error/getErrorShape.js +0 -31
  196. package/dist/unstable-core-do-not-import/error/getErrorShape.mjs +0 -29
  197. package/dist/unstable-core-do-not-import/http/batchStreamFormatter.d.ts +0 -24
  198. package/dist/unstable-core-do-not-import/http/batchStreamFormatter.d.ts.map +0 -1
  199. package/dist/unstable-core-do-not-import/http/batchStreamFormatter.js +0 -32
  200. package/dist/unstable-core-do-not-import/http/batchStreamFormatter.mjs +0 -30
  201. package/dist/unstable-core-do-not-import/http/contentType.d.ts +0 -29
  202. package/dist/unstable-core-do-not-import/http/contentType.d.ts.map +0 -1
  203. package/dist/unstable-core-do-not-import/http/contentType.js +0 -54
  204. package/dist/unstable-core-do-not-import/http/contentType.mjs +0 -52
  205. package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.d.ts +0 -5
  206. package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.d.ts.map +0 -1
  207. package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.js +0 -51
  208. package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.mjs +0 -48
  209. package/dist/unstable-core-do-not-import/http/index.d.ts +0 -7
  210. package/dist/unstable-core-do-not-import/http/index.d.ts.map +0 -1
  211. package/dist/unstable-core-do-not-import/http/resolveHTTPResponse.d.ts +0 -51
  212. package/dist/unstable-core-do-not-import/http/resolveHTTPResponse.d.ts.map +0 -1
  213. package/dist/unstable-core-do-not-import/http/resolveHTTPResponse.js +0 -295
  214. package/dist/unstable-core-do-not-import/http/resolveHTTPResponse.mjs +0 -293
  215. package/dist/unstable-core-do-not-import/http/types.d.ts +0 -96
  216. package/dist/unstable-core-do-not-import/http/types.d.ts.map +0 -1
  217. package/dist/unstable-core-do-not-import/index.d.ts +0 -37
  218. package/dist/unstable-core-do-not-import/index.d.ts.map +0 -1
  219. package/dist/unstable-core-do-not-import/index.js +0 -48
  220. package/dist/unstable-core-do-not-import/index.mjs +0 -16
  221. package/dist/unstable-core-do-not-import/initTRPC.d.ts +0 -96
  222. package/dist/unstable-core-do-not-import/initTRPC.d.ts.map +0 -1
  223. package/dist/unstable-core-do-not-import/initTRPC.js +0 -95
  224. package/dist/unstable-core-do-not-import/initTRPC.mjs +0 -93
  225. package/dist/unstable-core-do-not-import/middleware.d.ts +0 -105
  226. package/dist/unstable-core-do-not-import/middleware.d.ts.map +0 -1
  227. package/dist/unstable-core-do-not-import/middleware.js +0 -95
  228. package/dist/unstable-core-do-not-import/middleware.mjs +0 -89
  229. package/dist/unstable-core-do-not-import/parser.d.ts +0 -30
  230. package/dist/unstable-core-do-not-import/parser.d.ts.map +0 -1
  231. package/dist/unstable-core-do-not-import/parser.js +0 -37
  232. package/dist/unstable-core-do-not-import/parser.mjs +0 -35
  233. package/dist/unstable-core-do-not-import/procedure.d.ts +0 -72
  234. package/dist/unstable-core-do-not-import/procedure.d.ts.map +0 -1
  235. package/dist/unstable-core-do-not-import/procedure.js +0 -9
  236. package/dist/unstable-core-do-not-import/procedure.mjs +0 -7
  237. package/dist/unstable-core-do-not-import/procedureBuilder.d.ts +0 -101
  238. package/dist/unstable-core-do-not-import/procedureBuilder.d.ts.map +0 -1
  239. package/dist/unstable-core-do-not-import/procedureBuilder.js +0 -176
  240. package/dist/unstable-core-do-not-import/procedureBuilder.mjs +0 -173
  241. package/dist/unstable-core-do-not-import/rootConfig.d.ts +0 -75
  242. package/dist/unstable-core-do-not-import/rootConfig.d.ts.map +0 -1
  243. package/dist/unstable-core-do-not-import/rootConfig.js +0 -8
  244. package/dist/unstable-core-do-not-import/rootConfig.mjs +0 -6
  245. package/dist/unstable-core-do-not-import/router.d.ts +0 -85
  246. package/dist/unstable-core-do-not-import/router.d.ts.map +0 -1
  247. package/dist/unstable-core-do-not-import/router.js +0 -156
  248. package/dist/unstable-core-do-not-import/router.mjs +0 -151
  249. package/dist/unstable-core-do-not-import/rpc/codes.d.ts +0 -51
  250. package/dist/unstable-core-do-not-import/rpc/codes.d.ts.map +0 -1
  251. package/dist/unstable-core-do-not-import/rpc/codes.js +0 -38
  252. package/dist/unstable-core-do-not-import/rpc/codes.mjs +0 -35
  253. package/dist/unstable-core-do-not-import/rpc/envelopes.d.ts +0 -97
  254. package/dist/unstable-core-do-not-import/rpc/envelopes.d.ts.map +0 -1
  255. package/dist/unstable-core-do-not-import/rpc/index.d.ts +0 -5
  256. package/dist/unstable-core-do-not-import/rpc/index.d.ts.map +0 -1
  257. package/dist/unstable-core-do-not-import/rpc/parseTRPCMessage.d.ts +0 -5
  258. package/dist/unstable-core-do-not-import/rpc/parseTRPCMessage.d.ts.map +0 -1
  259. package/dist/unstable-core-do-not-import/rpc/parseTRPCMessage.js +0 -59
  260. package/dist/unstable-core-do-not-import/rpc/parseTRPCMessage.mjs +0 -57
  261. package/dist/unstable-core-do-not-import/serialize.d.ts +0 -62
  262. package/dist/unstable-core-do-not-import/serialize.d.ts.map +0 -1
  263. package/dist/unstable-core-do-not-import/transformer.d.ts +0 -107
  264. package/dist/unstable-core-do-not-import/transformer.d.ts.map +0 -1
  265. package/dist/unstable-core-do-not-import/transformer.js +0 -107
  266. package/dist/unstable-core-do-not-import/transformer.mjs +0 -102
  267. package/dist/unstable-core-do-not-import/types.d.ts +0 -98
  268. package/dist/unstable-core-do-not-import/types.d.ts.map +0 -1
  269. package/dist/unstable-core-do-not-import/utils.d.ts +0 -27
  270. package/dist/unstable-core-do-not-import/utils.d.ts.map +0 -1
  271. package/dist/unstable-core-do-not-import/utils.js +0 -44
  272. package/dist/unstable-core-do-not-import/utils.mjs +0 -39
  273. package/src/@trpc/server/http.ts +0 -26
  274. package/src/@trpc/server/index.ts +0 -105
  275. package/src/@trpc/server/rpc.ts +0 -26
  276. package/src/observable/index.ts +0 -10
  277. package/src/observable/observable.ts +0 -158
  278. package/src/observable/operators.ts +0 -119
  279. package/src/observable/types.ts +0 -76
  280. package/src/unstable-core-do-not-import/TRPCInferrable.ts +0 -9
  281. package/src/unstable-core-do-not-import/createProxy.ts +0 -59
  282. package/src/unstable-core-do-not-import/error/TRPCError.ts +0 -82
  283. package/src/unstable-core-do-not-import/error/formatter.ts +0 -51
  284. package/src/unstable-core-do-not-import/error/getErrorShape.ts +0 -36
  285. package/src/unstable-core-do-not-import/http/batchStreamFormatter.ts +0 -29
  286. package/src/unstable-core-do-not-import/http/contentType.ts +0 -99
  287. package/src/unstable-core-do-not-import/http/getHTTPStatusCode.ts +0 -57
  288. package/src/unstable-core-do-not-import/http/index.ts +0 -23
  289. package/src/unstable-core-do-not-import/http/resolveHTTPResponse.ts +0 -458
  290. package/src/unstable-core-do-not-import/http/types.ts +0 -111
  291. package/src/unstable-core-do-not-import/index.ts +0 -110
  292. package/src/unstable-core-do-not-import/initTRPC.ts +0 -206
  293. package/src/unstable-core-do-not-import/middleware.ts +0 -233
  294. package/src/unstable-core-do-not-import/parser.ts +0 -94
  295. package/src/unstable-core-do-not-import/procedure.ts +0 -108
  296. package/src/unstable-core-do-not-import/procedureBuilder.ts +0 -458
  297. package/src/unstable-core-do-not-import/rootConfig.ts +0 -90
  298. package/src/unstable-core-do-not-import/router.ts +0 -370
  299. package/src/unstable-core-do-not-import/rpc/codes.ts +0 -44
  300. package/src/unstable-core-do-not-import/rpc/envelopes.ts +0 -136
  301. package/src/unstable-core-do-not-import/rpc/index.ts +0 -21
  302. package/src/unstable-core-do-not-import/rpc/parseTRPCMessage.ts +0 -85
  303. package/src/unstable-core-do-not-import/serialize.ts +0 -122
  304. package/src/unstable-core-do-not-import/transformer.ts +0 -202
  305. package/src/unstable-core-do-not-import/types.ts +0 -151
  306. package/src/unstable-core-do-not-import/utils.ts +0 -59
  307. package/unstable-core-do-not-import/index.d.ts +0 -1
  308. package/unstable-core-do-not-import/index.js +0 -1
package/dist/index.mjs CHANGED
@@ -1,8 +1,799 @@
1
- export { getErrorShape } from './unstable-core-do-not-import/error/getErrorShape.mjs';
2
- export { TRPCError, getTRPCErrorFromUnknown } from './unstable-core-do-not-import/error/TRPCError.mjs';
3
- export { initTRPC } from './unstable-core-do-not-import/initTRPC.mjs';
4
- export { experimental_standaloneMiddleware, experimental_standaloneMiddleware as experimental_trpcMiddleware } from './unstable-core-do-not-import/middleware.mjs';
5
- export { callProcedure, callProcedure as callTRPCProcedure } from './unstable-core-do-not-import/router.mjs';
6
- export { transformTRPCResponse } from './unstable-core-do-not-import/transformer.mjs';
7
- export { createFlatProxy as createTRPCFlatProxy } from './unstable-core-do-not-import/createProxy.mjs';
8
- import './unstable-core-do-not-import/rpc/codes.mjs';
1
+ /**
2
+ * @internal
3
+ */ function invert(obj) {
4
+ const newObj = Object.create(null);
5
+ for(const key in obj){
6
+ const v = obj[key];
7
+ newObj[v] = key;
8
+ }
9
+ return newObj;
10
+ }
11
+ /**
12
+ * Ensures there are no duplicate keys when building a procedure.
13
+ * @internal
14
+ */ function mergeWithoutOverrides(obj1, ...objs) {
15
+ const newObj = Object.assign(Object.create(null), obj1);
16
+ for (const overrides of objs){
17
+ for(const key in overrides){
18
+ if (key in newObj && newObj[key] !== overrides[key]) {
19
+ throw new Error(`Duplicate key ${key}`);
20
+ }
21
+ newObj[key] = overrides[key];
22
+ }
23
+ }
24
+ return newObj;
25
+ }
26
+ /**
27
+ * Check that value is object
28
+ * @internal
29
+ */ function isObject(value) {
30
+ return !!value && !Array.isArray(value) && typeof value === 'object';
31
+ }
32
+ /**
33
+ * Create an object without inheriting anything from `Object.prototype`
34
+ * @internal
35
+ */ function omitPrototype(obj) {
36
+ return Object.assign(Object.create(null), obj);
37
+ }
38
+
39
+ // reference: https://www.jsonrpc.org/specification
40
+ /**
41
+ * JSON-RPC 2.0 Error codes
42
+ *
43
+ * `-32000` to `-32099` are reserved for implementation-defined server-errors.
44
+ * For tRPC we're copying the last digits of HTTP 4XX errors.
45
+ */ const TRPC_ERROR_CODES_BY_KEY = {
46
+ /**
47
+ * Invalid JSON was received by the server.
48
+ * An error occurred on the server while parsing the JSON text.
49
+ */ PARSE_ERROR: -32700,
50
+ /**
51
+ * The JSON sent is not a valid Request object.
52
+ */ BAD_REQUEST: -32600,
53
+ // Internal JSON-RPC error
54
+ INTERNAL_SERVER_ERROR: -32603,
55
+ NOT_IMPLEMENTED: -32603,
56
+ // Implementation specific errors
57
+ UNAUTHORIZED: -32001,
58
+ FORBIDDEN: -32003,
59
+ NOT_FOUND: -32004,
60
+ METHOD_NOT_SUPPORTED: -32005,
61
+ TIMEOUT: -32008,
62
+ CONFLICT: -32009,
63
+ PRECONDITION_FAILED: -32012,
64
+ PAYLOAD_TOO_LARGE: -32013,
65
+ UNPROCESSABLE_CONTENT: -32022,
66
+ TOO_MANY_REQUESTS: -32029,
67
+ CLIENT_CLOSED_REQUEST: -32099
68
+ };
69
+ invert(TRPC_ERROR_CODES_BY_KEY);
70
+
71
+ const JSONRPC2_TO_HTTP_CODE = {
72
+ PARSE_ERROR: 400,
73
+ BAD_REQUEST: 400,
74
+ UNAUTHORIZED: 401,
75
+ NOT_FOUND: 404,
76
+ FORBIDDEN: 403,
77
+ METHOD_NOT_SUPPORTED: 405,
78
+ TIMEOUT: 408,
79
+ CONFLICT: 409,
80
+ PRECONDITION_FAILED: 412,
81
+ PAYLOAD_TOO_LARGE: 413,
82
+ UNPROCESSABLE_CONTENT: 422,
83
+ TOO_MANY_REQUESTS: 429,
84
+ CLIENT_CLOSED_REQUEST: 499,
85
+ INTERNAL_SERVER_ERROR: 500,
86
+ NOT_IMPLEMENTED: 501
87
+ };
88
+ function getStatusCodeFromKey(code) {
89
+ return JSONRPC2_TO_HTTP_CODE[code] ?? 500;
90
+ }
91
+ function getHTTPStatusCodeFromError(error) {
92
+ return getStatusCodeFromKey(error.code);
93
+ }
94
+
95
+ /**
96
+ * @internal
97
+ */ function getErrorShape(opts) {
98
+ const { path, error, config } = opts;
99
+ const { code } = opts.error;
100
+ const shape = {
101
+ message: error.message,
102
+ code: TRPC_ERROR_CODES_BY_KEY[code],
103
+ data: {
104
+ code,
105
+ httpStatus: getHTTPStatusCodeFromError(error)
106
+ }
107
+ };
108
+ if (config.isDev && typeof opts.error.stack === 'string') {
109
+ shape.data.stack = opts.error.stack;
110
+ }
111
+ if (typeof path === 'string') {
112
+ shape.data.path = path;
113
+ }
114
+ return config.errorFormatter({
115
+ ...opts,
116
+ shape
117
+ });
118
+ }
119
+
120
+ class UnknownCauseError extends Error {
121
+ }
122
+ function getCauseFromUnknown(cause) {
123
+ if (cause instanceof Error) {
124
+ return cause;
125
+ }
126
+ const type = typeof cause;
127
+ if (type === 'undefined' || type === 'function' || cause === null) {
128
+ return undefined;
129
+ }
130
+ // Primitive types just get wrapped in an error
131
+ if (type !== 'object') {
132
+ return new Error(String(cause));
133
+ }
134
+ // If it's an object, we'll create a synthetic error
135
+ if (isObject(cause)) {
136
+ const err = new UnknownCauseError();
137
+ for(const key in cause){
138
+ err[key] = cause[key];
139
+ }
140
+ return err;
141
+ }
142
+ return undefined;
143
+ }
144
+ function getTRPCErrorFromUnknown(cause) {
145
+ if (cause instanceof TRPCError) {
146
+ return cause;
147
+ }
148
+ if (cause instanceof Error && cause.name === 'TRPCError') {
149
+ // https://github.com/trpc/trpc/pull/4848
150
+ return cause;
151
+ }
152
+ const trpcError = new TRPCError({
153
+ code: 'INTERNAL_SERVER_ERROR',
154
+ cause
155
+ });
156
+ // Inherit stack from error
157
+ if (cause instanceof Error && cause.stack) {
158
+ trpcError.stack = cause.stack;
159
+ }
160
+ return trpcError;
161
+ }
162
+ class TRPCError extends Error {
163
+ constructor(opts){
164
+ const cause = getCauseFromUnknown(opts.cause);
165
+ const message = opts.message ?? cause?.message ?? opts.code;
166
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
167
+ // @ts-ignore https://github.com/tc39/proposal-error-cause
168
+ super(message, {
169
+ cause
170
+ });
171
+ this.code = opts.code;
172
+ this.name = 'TRPCError';
173
+ if (!this.cause) {
174
+ // < ES2022 / < Node 16.9.0 compatability
175
+ this.cause = cause;
176
+ }
177
+ }
178
+ }
179
+
180
+ const noop = ()=>{
181
+ // noop
182
+ };
183
+ function createInnerProxy(callback, path) {
184
+ const proxy = new Proxy(noop, {
185
+ get (_obj, key) {
186
+ if (typeof key !== 'string' || key === 'then') {
187
+ // special case for if the proxy is accidentally treated
188
+ // like a PromiseLike (like in `Promise.resolve(proxy)`)
189
+ return undefined;
190
+ }
191
+ return createInnerProxy(callback, [
192
+ ...path,
193
+ key
194
+ ]);
195
+ },
196
+ apply (_1, _2, args) {
197
+ const isApply = path[path.length - 1] === 'apply';
198
+ return callback({
199
+ args: isApply ? args.length >= 2 ? args[1] : [] : args,
200
+ path: isApply ? path.slice(0, -1) : path
201
+ });
202
+ }
203
+ });
204
+ return proxy;
205
+ }
206
+ /**
207
+ * Creates a proxy that calls the callback with the path and arguments
208
+ *
209
+ * @internal
210
+ */ const createRecursiveProxy = (callback)=>createInnerProxy(callback, []);
211
+ /**
212
+ * Used in place of `new Proxy` where each handler will map 1 level deep to another value.
213
+ *
214
+ * @internal
215
+ */ const createFlatProxy = (callback)=>{
216
+ return new Proxy(noop, {
217
+ get (_obj, name) {
218
+ if (typeof name !== 'string' || name === 'then') {
219
+ // special case for if the proxy is accidentally treated
220
+ // like a PromiseLike (like in `Promise.resolve(proxy)`)
221
+ return undefined;
222
+ }
223
+ return callback(name);
224
+ }
225
+ });
226
+ };
227
+
228
+ const defaultFormatter = ({ shape })=>{
229
+ return shape;
230
+ };
231
+
232
+ /** @internal */ const middlewareMarker = 'middlewareMarker';
233
+ /**
234
+ * @internal
235
+ */ function createMiddlewareFactory() {
236
+ function createMiddlewareInner(middlewares) {
237
+ return {
238
+ _middlewares: middlewares,
239
+ unstable_pipe (middlewareBuilderOrFn) {
240
+ const pipedMiddleware = '_middlewares' in middlewareBuilderOrFn ? middlewareBuilderOrFn._middlewares : [
241
+ middlewareBuilderOrFn
242
+ ];
243
+ return createMiddlewareInner([
244
+ ...middlewares,
245
+ ...pipedMiddleware
246
+ ]);
247
+ }
248
+ };
249
+ }
250
+ function createMiddleware(fn) {
251
+ return createMiddlewareInner([
252
+ fn
253
+ ]);
254
+ }
255
+ return createMiddleware;
256
+ }
257
+ /**
258
+ * Create a standalone middleware
259
+ * @link https://trpc.io/docs/v11/server/middlewares#experimental-standalone-middlewares
260
+ */ const experimental_standaloneMiddleware = ()=>({
261
+ create: createMiddlewareFactory()
262
+ });
263
+ /**
264
+ * @internal
265
+ * Please note, `trpc-openapi` uses this function.
266
+ */ function createInputMiddleware(parse) {
267
+ const inputMiddleware = async function inputValidatorMiddleware(opts) {
268
+ let parsedInput;
269
+ const rawInput = await opts.getRawInput();
270
+ try {
271
+ parsedInput = await parse(rawInput);
272
+ } catch (cause) {
273
+ throw new TRPCError({
274
+ code: 'BAD_REQUEST',
275
+ cause
276
+ });
277
+ }
278
+ // Multiple input parsers
279
+ const combinedInput = isObject(opts.input) && isObject(parsedInput) ? {
280
+ ...opts.input,
281
+ ...parsedInput
282
+ } : parsedInput;
283
+ return opts.next({
284
+ input: combinedInput
285
+ });
286
+ };
287
+ inputMiddleware._type = 'input';
288
+ return inputMiddleware;
289
+ }
290
+ /**
291
+ * @internal
292
+ */ function createOutputMiddleware(parse) {
293
+ const outputMiddleware = async function outputValidatorMiddleware({ next }) {
294
+ const result = await next();
295
+ if (!result.ok) {
296
+ // pass through failures without validating
297
+ return result;
298
+ }
299
+ try {
300
+ const data = await parse(result.data);
301
+ return {
302
+ ...result,
303
+ data
304
+ };
305
+ } catch (cause) {
306
+ throw new TRPCError({
307
+ message: 'Output validation failed',
308
+ code: 'INTERNAL_SERVER_ERROR',
309
+ cause
310
+ });
311
+ }
312
+ };
313
+ outputMiddleware._type = 'output';
314
+ return outputMiddleware;
315
+ }
316
+
317
+ // zod / @decs/typeschema
318
+ function getParseFn(procedureParser) {
319
+ const parser = procedureParser;
320
+ if (typeof parser === 'function') {
321
+ // ParserCustomValidatorEsque
322
+ return parser;
323
+ }
324
+ if (typeof parser.parseAsync === 'function') {
325
+ // ParserZodEsque
326
+ return parser.parseAsync.bind(parser);
327
+ }
328
+ if (typeof parser.parse === 'function') {
329
+ // ParserZodEsque
330
+ // ParserValibotEsque (<= v0.12.X)
331
+ return parser.parse.bind(parser);
332
+ }
333
+ if (typeof parser.validateSync === 'function') {
334
+ // ParserYupEsque
335
+ return parser.validateSync.bind(parser);
336
+ }
337
+ if (typeof parser.create === 'function') {
338
+ // ParserSuperstructEsque
339
+ return parser.create.bind(parser);
340
+ }
341
+ if (typeof parser.assert === 'function') {
342
+ // ParserScaleEsque
343
+ return (value)=>{
344
+ parser.assert(value);
345
+ return value;
346
+ };
347
+ }
348
+ throw new Error('Could not find a validator fn');
349
+ }
350
+
351
+ /** @internal */ const unsetMarker = Symbol('unsetMarker');
352
+ function createNewBuilder(def1, def2) {
353
+ const { middlewares = [], inputs, meta, ...rest } = def2;
354
+ // TODO: maybe have a fn here to warn about calls
355
+ return createBuilder({
356
+ ...mergeWithoutOverrides(def1, rest),
357
+ inputs: [
358
+ ...def1.inputs,
359
+ ...inputs ?? []
360
+ ],
361
+ middlewares: [
362
+ ...def1.middlewares,
363
+ ...middlewares
364
+ ],
365
+ meta: def1.meta && meta ? {
366
+ ...def1.meta,
367
+ ...meta
368
+ } : meta ?? def1.meta
369
+ });
370
+ }
371
+ function createBuilder(initDef = {}) {
372
+ const _def = {
373
+ procedure: true,
374
+ inputs: [],
375
+ middlewares: [],
376
+ ...initDef
377
+ };
378
+ const builder = {
379
+ _def,
380
+ input (input) {
381
+ const parser = getParseFn(input);
382
+ return createNewBuilder(_def, {
383
+ inputs: [
384
+ input
385
+ ],
386
+ middlewares: [
387
+ createInputMiddleware(parser)
388
+ ]
389
+ });
390
+ },
391
+ output (output) {
392
+ const parser = getParseFn(output);
393
+ return createNewBuilder(_def, {
394
+ output,
395
+ middlewares: [
396
+ createOutputMiddleware(parser)
397
+ ]
398
+ });
399
+ },
400
+ meta (meta) {
401
+ return createNewBuilder(_def, {
402
+ meta
403
+ });
404
+ },
405
+ use (middlewareBuilderOrFn) {
406
+ // Distinguish between a middleware builder and a middleware function
407
+ const middlewares = '_middlewares' in middlewareBuilderOrFn ? middlewareBuilderOrFn._middlewares : [
408
+ middlewareBuilderOrFn
409
+ ];
410
+ return createNewBuilder(_def, {
411
+ middlewares: middlewares
412
+ });
413
+ },
414
+ query (resolver) {
415
+ return createResolver({
416
+ ..._def,
417
+ type: 'query'
418
+ }, resolver);
419
+ },
420
+ mutation (resolver) {
421
+ return createResolver({
422
+ ..._def,
423
+ type: 'mutation'
424
+ }, resolver);
425
+ },
426
+ subscription (resolver) {
427
+ return createResolver({
428
+ ..._def,
429
+ type: 'subscription'
430
+ }, resolver);
431
+ }
432
+ };
433
+ return builder;
434
+ }
435
+ function createResolver(_def, resolver) {
436
+ const finalBuilder = createNewBuilder(_def, {
437
+ resolver,
438
+ middlewares: [
439
+ async function resolveMiddleware(opts) {
440
+ const data = await resolver(opts);
441
+ return {
442
+ marker: middlewareMarker,
443
+ ok: true,
444
+ data,
445
+ ctx: opts.ctx
446
+ };
447
+ }
448
+ ]
449
+ });
450
+ return createProcedureCaller(finalBuilder._def);
451
+ }
452
+ const codeblock = `
453
+ This is a client-only function.
454
+ If you want to call this function on the server, see https://trpc.io/docs/v11/server/server-side-calls
455
+ `.trim();
456
+ function createProcedureCaller(_def) {
457
+ async function procedure(opts) {
458
+ // is direct server-side call
459
+ if (!opts || !('getRawInput' in opts)) {
460
+ throw new Error(codeblock);
461
+ }
462
+ // run the middlewares recursively with the resolver as the last one
463
+ async function callRecursive(callOpts = {
464
+ index: 0,
465
+ ctx: opts.ctx
466
+ }) {
467
+ try {
468
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
469
+ const middleware = _def.middlewares[callOpts.index];
470
+ const result = await middleware({
471
+ ctx: callOpts.ctx,
472
+ type: opts.type,
473
+ path: opts.path,
474
+ getRawInput: callOpts.getRawInput ?? opts.getRawInput,
475
+ meta: _def.meta,
476
+ input: callOpts.input,
477
+ next (_nextOpts) {
478
+ const nextOpts = _nextOpts;
479
+ return callRecursive({
480
+ index: callOpts.index + 1,
481
+ ctx: nextOpts && 'ctx' in nextOpts ? {
482
+ ...callOpts.ctx,
483
+ ...nextOpts.ctx
484
+ } : callOpts.ctx,
485
+ input: nextOpts && 'input' in nextOpts ? nextOpts.input : callOpts.input,
486
+ getRawInput: nextOpts && 'getRawInput' in nextOpts ? nextOpts.getRawInput : callOpts.getRawInput
487
+ });
488
+ }
489
+ });
490
+ return result;
491
+ } catch (cause) {
492
+ return {
493
+ ok: false,
494
+ error: getTRPCErrorFromUnknown(cause),
495
+ marker: middlewareMarker
496
+ };
497
+ }
498
+ }
499
+ // there's always at least one "next" since we wrap this.resolver in a middleware
500
+ const result = await callRecursive();
501
+ if (!result) {
502
+ throw new TRPCError({
503
+ code: 'INTERNAL_SERVER_ERROR',
504
+ message: 'No result from middlewares - did you forget to `return next()`?'
505
+ });
506
+ }
507
+ if (!result.ok) {
508
+ // re-throw original error
509
+ throw result.error;
510
+ }
511
+ return result.data;
512
+ }
513
+ procedure._def = _def;
514
+ // FIXME typecast shouldn't be needed - fixittt
515
+ return procedure;
516
+ }
517
+
518
+ /**
519
+ * The default check to see if we're in a server
520
+ */ const isServerDefault = typeof window === 'undefined' || 'Deno' in window || // eslint-disable-next-line @typescript-eslint/dot-notation
521
+ globalThis.process?.env?.['NODE_ENV'] === 'test' || !!globalThis.process?.env?.['JEST_WORKER_ID'] || !!globalThis.process?.env?.['VITEST_WORKER_ID'];
522
+
523
+ /**
524
+ * @internal
525
+ */ function getDataTransformer(transformer) {
526
+ if ('input' in transformer) {
527
+ return transformer;
528
+ }
529
+ return {
530
+ input: transformer,
531
+ output: transformer
532
+ };
533
+ }
534
+ /**
535
+ * @internal
536
+ */ const defaultTransformer = {
537
+ _default: true,
538
+ input: {
539
+ serialize: (obj)=>obj,
540
+ deserialize: (obj)=>obj
541
+ },
542
+ output: {
543
+ serialize: (obj)=>obj,
544
+ deserialize: (obj)=>obj
545
+ }
546
+ };
547
+ function transformTRPCResponseItem(config, item) {
548
+ if ('error' in item) {
549
+ return {
550
+ ...item,
551
+ error: config.transformer.output.serialize(item.error)
552
+ };
553
+ }
554
+ if ('data' in item.result) {
555
+ return {
556
+ ...item,
557
+ result: {
558
+ ...item.result,
559
+ data: config.transformer.output.serialize(item.result.data)
560
+ }
561
+ };
562
+ }
563
+ return item;
564
+ }
565
+ /**
566
+ * Takes a unserialized `TRPCResponse` and serializes it with the router's transformers
567
+ **/ function transformTRPCResponse(config, itemOrItems) {
568
+ return Array.isArray(itemOrItems) ? itemOrItems.map((item)=>transformTRPCResponseItem(config, item)) : transformTRPCResponseItem(config, itemOrItems);
569
+ }
570
+
571
+ function isRouter(procedureOrRouter) {
572
+ return 'router' in procedureOrRouter._def;
573
+ }
574
+ const emptyRouter = {
575
+ _ctx: null,
576
+ _errorShape: null,
577
+ _meta: null,
578
+ queries: {},
579
+ mutations: {},
580
+ subscriptions: {},
581
+ errorFormatter: defaultFormatter,
582
+ transformer: defaultTransformer
583
+ };
584
+ /**
585
+ * Reserved words that can't be used as router or procedure names
586
+ */ const reservedWords = [
587
+ /**
588
+ * Then is a reserved word because otherwise we can't return a promise that returns a Proxy
589
+ * since JS will think that `.then` is something that exists
590
+ */ 'then'
591
+ ];
592
+ /**
593
+ * @internal
594
+ */ function createRouterFactory(config) {
595
+ return function createRouterInner(procedures) {
596
+ const reservedWordsUsed = new Set(Object.keys(procedures).filter((v)=>reservedWords.includes(v)));
597
+ if (reservedWordsUsed.size > 0) {
598
+ throw new Error('Reserved words used in `router({})` call: ' + Array.from(reservedWordsUsed).join(', '));
599
+ }
600
+ const routerProcedures = omitPrototype({});
601
+ function recursiveGetPaths(procedures, path = '') {
602
+ for (const [key, procedureOrRouter] of Object.entries(procedures ?? {})){
603
+ const newPath = `${path}${key}`;
604
+ if (isRouter(procedureOrRouter)) {
605
+ recursiveGetPaths(procedureOrRouter._def.procedures, `${newPath}.`);
606
+ continue;
607
+ }
608
+ if (routerProcedures[newPath]) {
609
+ throw new Error(`Duplicate key: ${newPath}`);
610
+ }
611
+ routerProcedures[newPath] = procedureOrRouter;
612
+ }
613
+ }
614
+ recursiveGetPaths(procedures);
615
+ const _def = {
616
+ _config: config,
617
+ router: true,
618
+ procedures: routerProcedures,
619
+ ...emptyRouter,
620
+ record: procedures
621
+ };
622
+ const router = {
623
+ ...procedures,
624
+ _def,
625
+ createCaller (ctx) {
626
+ const proxy = createRecursiveProxy(({ path, args })=>{
627
+ const fullPath = path.join('.');
628
+ const procedure = _def.procedures[fullPath];
629
+ return procedure({
630
+ path: fullPath,
631
+ getRawInput: async ()=>args[0],
632
+ ctx,
633
+ type: procedure._def.type
634
+ });
635
+ });
636
+ return proxy;
637
+ }
638
+ };
639
+ return router;
640
+ };
641
+ }
642
+ function isProcedure(procedureOrRouter) {
643
+ return !!procedureOrRouter._def.procedure;
644
+ }
645
+ /**
646
+ * @internal
647
+ */ function callProcedure(opts) {
648
+ const { type, path } = opts;
649
+ const proc = opts.procedures[path];
650
+ if (!proc || !isProcedure(proc) || proc._def.type !== type) {
651
+ throw new TRPCError({
652
+ code: 'NOT_FOUND',
653
+ message: `No "${type}"-procedure on path "${path}"`
654
+ });
655
+ }
656
+ return proc(opts);
657
+ }
658
+ function createCallerFactory() {
659
+ return function createCallerInner(router) {
660
+ const _def = router._def;
661
+ return function createCaller(maybeContext) {
662
+ const proxy = createRecursiveProxy(({ path, args })=>{
663
+ const fullPath = path.join('.');
664
+ const procedure = _def.procedures[fullPath];
665
+ const callProc = (ctx)=>procedure({
666
+ path: fullPath,
667
+ getRawInput: async ()=>args[0],
668
+ ctx,
669
+ type: procedure._def.type
670
+ });
671
+ if (typeof maybeContext === 'function') {
672
+ const context = maybeContext();
673
+ if (context instanceof Promise) {
674
+ return context.then(callProc);
675
+ }
676
+ return callProc(context);
677
+ }
678
+ return callProc(maybeContext);
679
+ });
680
+ return proxy;
681
+ };
682
+ };
683
+ }
684
+ function mergeRouters(...routerList) {
685
+ const record = mergeWithoutOverrides({}, ...routerList.map((r)=>r._def.record));
686
+ const errorFormatter = routerList.reduce((currentErrorFormatter, nextRouter)=>{
687
+ if (nextRouter._def._config.errorFormatter && nextRouter._def._config.errorFormatter !== defaultFormatter) {
688
+ if (currentErrorFormatter !== defaultFormatter && currentErrorFormatter !== nextRouter._def._config.errorFormatter) {
689
+ throw new Error('You seem to have several error formatters');
690
+ }
691
+ return nextRouter._def._config.errorFormatter;
692
+ }
693
+ return currentErrorFormatter;
694
+ }, defaultFormatter);
695
+ const transformer = routerList.reduce((prev, current)=>{
696
+ if (current._def._config.transformer && current._def._config.transformer !== defaultTransformer) {
697
+ if (prev !== defaultTransformer && prev !== current._def._config.transformer) {
698
+ throw new Error('You seem to have several transformers');
699
+ }
700
+ return current._def._config.transformer;
701
+ }
702
+ return prev;
703
+ }, defaultTransformer);
704
+ const router = createRouterFactory({
705
+ errorFormatter,
706
+ transformer,
707
+ isDev: routerList.some((r)=>r._def._config.isDev),
708
+ allowOutsideOfServer: routerList.some((r)=>r._def._config.allowOutsideOfServer),
709
+ isServer: routerList.some((r)=>r._def._config.isServer),
710
+ $types: routerList[0]?._def._config.$types
711
+ })(record);
712
+ return router;
713
+ }
714
+
715
+ /**
716
+ * TODO: This can be improved:
717
+ * - We should be able to chain `.meta()`/`.context()` only once
718
+ * - Simplify typings
719
+ * - Doesn't need to be a class but it doesn't really hurt either
720
+ */ class TRPCBuilder {
721
+ /**
722
+ * Add a context shape as a generic to the root object
723
+ * @link https://trpc.io/docs/v11/server/context
724
+ */ context() {
725
+ return new TRPCBuilder();
726
+ }
727
+ /**
728
+ * Add a meta shape as a generic to the root object
729
+ * @link https://trpc.io/docs/v11/quickstart
730
+ */ meta() {
731
+ return new TRPCBuilder();
732
+ }
733
+ /**
734
+ * Create the root object
735
+ * @link https://trpc.io/docs/v11/server/routers#initialize-trpc
736
+ */ create(options) {
737
+ return createTRPCInner()(options);
738
+ }
739
+ }
740
+ /**
741
+ * Builder to initialize the tRPC root object - use this exactly once per backend
742
+ * @link https://trpc.io/docs/v11/quickstart
743
+ */ const initTRPC = new TRPCBuilder();
744
+ function createTRPCInner() {
745
+ return function initTRPCInner(runtime) {
746
+ const errorFormatter = runtime?.errorFormatter ?? defaultFormatter;
747
+ const transformer = getDataTransformer(runtime?.transformer ?? defaultTransformer);
748
+ const config = {
749
+ transformer,
750
+ isDev: runtime?.isDev ?? // eslint-disable-next-line @typescript-eslint/dot-notation
751
+ globalThis.process?.env?.['NODE_ENV'] !== 'production',
752
+ allowOutsideOfServer: runtime?.allowOutsideOfServer ?? false,
753
+ errorFormatter,
754
+ isServer: runtime?.isServer ?? isServerDefault,
755
+ /**
756
+ * @internal
757
+ */ $types: createFlatProxy((key)=>{
758
+ throw new Error(`Tried to access "$types.${key}" which is not available at runtime`);
759
+ })
760
+ };
761
+ {
762
+ // Server check
763
+ const isServer = runtime?.isServer ?? isServerDefault;
764
+ if (!isServer && runtime?.allowOutsideOfServer !== true) {
765
+ throw new Error(`You're trying to use @trpc/server in a non-server environment. This is not supported by default.`);
766
+ }
767
+ }
768
+ return {
769
+ /**
770
+ * These are just types, they can't be used
771
+ * @internal
772
+ */ _config: config,
773
+ /**
774
+ * Builder object for creating procedures
775
+ * @link https://trpc.io/docs/v11/server/procedures
776
+ */ procedure: createBuilder({
777
+ meta: runtime?.defaultMeta
778
+ }),
779
+ /**
780
+ * Create reusable middlewares
781
+ * @link https://trpc.io/docs/v11/server/middlewares
782
+ */ middleware: createMiddlewareFactory(),
783
+ /**
784
+ * Create a router
785
+ * @link https://trpc.io/docs/v11/server/routers
786
+ */ router: createRouterFactory(config),
787
+ /**
788
+ * Merge Routers
789
+ * @link https://trpc.io/docs/v11/server/merging-routers
790
+ */ mergeRouters,
791
+ /**
792
+ * Create a server-side caller for a router
793
+ * @link https://trpc.io/docs/v11/server/server-side-calls
794
+ */ createCallerFactory: createCallerFactory()
795
+ };
796
+ };
797
+ }
798
+
799
+ export { unsetMarker as ENABLE_PNPM_DECLARATION_MODE, TRPCError, callProcedure, callProcedure as callTRPCProcedure, createFlatProxy as createTRPCFlatProxy, experimental_standaloneMiddleware, experimental_standaloneMiddleware as experimental_trpcMiddleware, getErrorShape, getTRPCErrorFromUnknown, initTRPC, transformTRPCResponse };