@trpc/server 11.0.0-next-alpha.152 → 11.0.0-next-alpha.154

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 (295) hide show
  1. package/dist/adapters/aws-lambda/index.d.ts +1 -1
  2. package/dist/adapters/aws-lambda/index.d.ts.map +1 -1
  3. package/dist/adapters/aws-lambda/index.js +6 -13
  4. package/dist/adapters/aws-lambda/index.mjs +2 -9
  5. package/dist/adapters/aws-lambda/utils.d.ts +2 -3
  6. package/dist/adapters/aws-lambda/utils.d.ts.map +1 -1
  7. package/dist/adapters/express.d.ts +1 -1
  8. package/dist/adapters/express.d.ts.map +1 -1
  9. package/dist/adapters/express.js +3 -11
  10. package/dist/adapters/express.mjs +3 -11
  11. package/dist/adapters/fastify/fastifyRequestHandler.d.ts +1 -1
  12. package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -1
  13. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts +1 -1
  14. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -1
  15. package/dist/adapters/fastify/index.js +6 -14
  16. package/dist/adapters/fastify/index.mjs +4 -12
  17. package/dist/adapters/fetch/fetchRequestHandler.d.ts +1 -1
  18. package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -1
  19. package/dist/adapters/fetch/index.js +3 -12
  20. package/dist/adapters/fetch/index.mjs +1 -10
  21. package/dist/adapters/fetch/types.d.ts +1 -1
  22. package/dist/adapters/next.d.ts +3 -2
  23. package/dist/adapters/next.d.ts.map +1 -1
  24. package/dist/adapters/next.js +5 -13
  25. package/dist/adapters/next.mjs +3 -11
  26. package/dist/adapters/node-http/content-type/json/getPostBody.d.ts +1 -1
  27. package/dist/adapters/node-http/content-type/json/getPostBody.d.ts.map +1 -1
  28. package/dist/adapters/node-http/content-type/json/index.js +4 -5
  29. package/dist/adapters/node-http/content-type/json/index.mjs +2 -3
  30. package/dist/adapters/node-http/index.js +3 -11
  31. package/dist/adapters/node-http/index.mjs +3 -11
  32. package/dist/adapters/node-http/internals/contentType.d.ts +2 -2
  33. package/dist/adapters/node-http/internals/contentType.d.ts.map +1 -1
  34. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts +1 -1
  35. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
  36. package/dist/adapters/node-http/types.d.ts +1 -2
  37. package/dist/adapters/node-http/types.d.ts.map +1 -1
  38. package/dist/adapters/standalone.d.ts +1 -1
  39. package/dist/adapters/standalone.d.ts.map +1 -1
  40. package/dist/adapters/standalone.js +3 -11
  41. package/dist/adapters/standalone.mjs +3 -11
  42. package/dist/adapters/ws.d.ts +3 -3
  43. package/dist/adapters/ws.d.ts.map +1 -1
  44. package/dist/adapters/ws.js +25 -31
  45. package/dist/adapters/ws.mjs +3 -9
  46. package/dist/bundle-analysis.json +74 -604
  47. package/dist/http.d.ts +2 -0
  48. package/dist/http.d.ts.map +1 -0
  49. package/dist/http.js +14 -0
  50. package/dist/http.mjs +1 -0
  51. package/dist/index.d.ts +15 -7
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +17 -95
  54. package/dist/index.mjs +1 -90
  55. package/dist/{nodeHTTPRequestHandler-a7049e69.js → nodeHTTPRequestHandler-30028c9a.js} +3 -5
  56. package/dist/{nodeHTTPRequestHandler-ca65b7c9.mjs → nodeHTTPRequestHandler-36974696.mjs} +1 -3
  57. package/dist/{nodeHTTPRequestHandler-abbfb330.js → nodeHTTPRequestHandler-640c1f60.js} +1 -3
  58. package/dist/observable.d.ts +2 -0
  59. package/dist/observable.d.ts.map +1 -0
  60. package/dist/observable.js +14 -0
  61. package/dist/observable.mjs +1 -0
  62. package/dist/rpc.d.ts +2 -0
  63. package/dist/rpc.d.ts.map +1 -0
  64. package/dist/rpc.js +14 -0
  65. package/dist/rpc.mjs +1 -0
  66. package/dist/unstableDoNotImportThis.d.ts +9 -0
  67. package/dist/unstableDoNotImportThis.d.ts.map +1 -0
  68. package/package.json +32 -41
  69. package/src/adapters/aws-lambda/index.ts +2 -3
  70. package/src/adapters/aws-lambda/utils.ts +3 -4
  71. package/src/adapters/express.ts +1 -1
  72. package/src/adapters/fastify/fastifyRequestHandler.ts +4 -3
  73. package/src/adapters/fastify/fastifyTRPCPlugin.ts +1 -1
  74. package/src/adapters/fetch/fetchRequestHandler.ts +4 -3
  75. package/src/adapters/fetch/types.ts +1 -1
  76. package/src/adapters/next.ts +3 -8
  77. package/src/adapters/node-http/content-type/form-data/index.ts +1 -1
  78. package/src/adapters/node-http/content-type/json/getPostBody.ts +2 -2
  79. package/src/adapters/node-http/content-type/json/index.ts +1 -1
  80. package/src/adapters/node-http/internals/contentType.ts +2 -2
  81. package/src/adapters/node-http/nodeHTTPRequestHandler.ts +4 -3
  82. package/src/adapters/node-http/types.ts +1 -2
  83. package/src/adapters/standalone.ts +1 -1
  84. package/src/adapters/ws.ts +14 -9
  85. package/src/http.ts +2 -0
  86. package/src/index.ts +30 -14
  87. package/src/observable.ts +1 -0
  88. package/src/rpc.ts +2 -0
  89. package/src/unstableDoNotImportThis.ts +9 -0
  90. package/dist/TRPCError-0b220715.js +0 -42
  91. package/dist/TRPCError-2bb6a7d0.js +0 -37
  92. package/dist/TRPCError-7e8e2a1b.mjs +0 -39
  93. package/dist/batchStreamFormatter-2c1405a1.js +0 -31
  94. package/dist/batchStreamFormatter-93cdcdd4.js +0 -32
  95. package/dist/batchStreamFormatter-fc1ffb26.mjs +0 -30
  96. package/dist/codes-62b059d2.js +0 -48
  97. package/dist/codes-87f6824b.js +0 -48
  98. package/dist/codes-c924c3db.mjs +0 -44
  99. package/dist/config-50853f49.mjs +0 -6
  100. package/dist/config-774dae36.js +0 -8
  101. package/dist/config-e3dd843b.js +0 -11
  102. package/dist/contentType-0447b256.js +0 -58
  103. package/dist/contentType-31223e57.mjs +0 -52
  104. package/dist/contentType-a229790b.js +0 -54
  105. package/dist/core/index.d.ts +0 -9
  106. package/dist/core/index.d.ts.map +0 -1
  107. package/dist/core/initTRPC.d.ts +0 -84
  108. package/dist/core/initTRPC.d.ts.map +0 -1
  109. package/dist/core/internals/config.d.ts +0 -75
  110. package/dist/core/internals/config.d.ts.map +0 -1
  111. package/dist/core/internals/getParseFn.d.ts +0 -4
  112. package/dist/core/internals/getParseFn.d.ts.map +0 -1
  113. package/dist/core/internals/mergeRouters.d.ts +0 -15
  114. package/dist/core/internals/mergeRouters.d.ts.map +0 -1
  115. package/dist/core/internals/mergeWithoutOverrides.d.ts +0 -5
  116. package/dist/core/internals/mergeWithoutOverrides.d.ts.map +0 -1
  117. package/dist/core/internals/omitPrototype.d.ts +0 -6
  118. package/dist/core/internals/omitPrototype.d.ts.map +0 -1
  119. package/dist/core/internals/procedureBuilder.d.ts +0 -99
  120. package/dist/core/internals/procedureBuilder.d.ts.map +0 -1
  121. package/dist/core/internals/utils.d.ts +0 -50
  122. package/dist/core/internals/utils.d.ts.map +0 -1
  123. package/dist/core/middleware.d.ts +0 -106
  124. package/dist/core/middleware.d.ts.map +0 -1
  125. package/dist/core/parser.d.ts +0 -28
  126. package/dist/core/parser.d.ts.map +0 -1
  127. package/dist/core/procedure.d.ts +0 -54
  128. package/dist/core/procedure.d.ts.map +0 -1
  129. package/dist/core/router.d.ts +0 -64
  130. package/dist/core/router.d.ts.map +0 -1
  131. package/dist/core/types.d.ts +0 -24
  132. package/dist/core/types.d.ts.map +0 -1
  133. package/dist/error/TRPCError.d.ts +0 -12
  134. package/dist/error/TRPCError.d.ts.map +0 -1
  135. package/dist/error/formatter.d.ts +0 -33
  136. package/dist/error/formatter.d.ts.map +0 -1
  137. package/dist/error/utils.d.ts +0 -9
  138. package/dist/error/utils.d.ts.map +0 -1
  139. package/dist/getCauseFromUnknown-2d66414a.mjs +0 -33
  140. package/dist/getCauseFromUnknown-ac5f46a2.js +0 -34
  141. package/dist/getCauseFromUnknown-d535264a.js +0 -35
  142. package/dist/http/batchStreamFormatter.d.ts +0 -24
  143. package/dist/http/batchStreamFormatter.d.ts.map +0 -1
  144. package/dist/http/contentType.d.ts +0 -29
  145. package/dist/http/contentType.d.ts.map +0 -1
  146. package/dist/http/getHTTPStatusCode.d.ts +0 -24
  147. package/dist/http/getHTTPStatusCode.d.ts.map +0 -1
  148. package/dist/http/index.d.ts +0 -5
  149. package/dist/http/index.d.ts.map +0 -1
  150. package/dist/http/index.js +0 -22
  151. package/dist/http/index.mjs +0 -10
  152. package/dist/http/internals/types.d.ts +0 -32
  153. package/dist/http/internals/types.d.ts.map +0 -1
  154. package/dist/http/resolveHTTPResponse.d.ts +0 -52
  155. package/dist/http/resolveHTTPResponse.d.ts.map +0 -1
  156. package/dist/http/types.d.ts +0 -46
  157. package/dist/http/types.d.ts.map +0 -1
  158. package/dist/index-8759c3db.js +0 -48
  159. package/dist/index-a496f86b.js +0 -52
  160. package/dist/index-a9e3e610.mjs +0 -49
  161. package/dist/internals/invert.d.ts +0 -12
  162. package/dist/internals/invert.d.ts.map +0 -1
  163. package/dist/internals/types.d.ts +0 -26
  164. package/dist/internals/types.d.ts.map +0 -1
  165. package/dist/observable/index.d.ts +0 -5
  166. package/dist/observable/index.d.ts.map +0 -1
  167. package/dist/observable/index.js +0 -156
  168. package/dist/observable/index.mjs +0 -147
  169. package/dist/observable/internals/identity.d.ts +0 -2
  170. package/dist/observable/internals/identity.d.ts.map +0 -1
  171. package/dist/observable/internals/observableToPromise.d.ts +0 -10
  172. package/dist/observable/internals/observableToPromise.d.ts.map +0 -1
  173. package/dist/observable/internals/pipe.d.ts +0 -4
  174. package/dist/observable/internals/pipe.d.ts.map +0 -1
  175. package/dist/observable/observable.d.ts +0 -5
  176. package/dist/observable/observable.d.ts.map +0 -1
  177. package/dist/observable/operators/index.d.ts +0 -4
  178. package/dist/observable/operators/index.d.ts.map +0 -1
  179. package/dist/observable/operators/map.d.ts +0 -3
  180. package/dist/observable/operators/map.d.ts.map +0 -1
  181. package/dist/observable/operators/share.d.ts +0 -6
  182. package/dist/observable/operators/share.d.ts.map +0 -1
  183. package/dist/observable/operators/tap.d.ts +0 -3
  184. package/dist/observable/operators/tap.d.ts.map +0 -1
  185. package/dist/observable/types.d.ts +0 -29
  186. package/dist/observable/types.d.ts.map +0 -1
  187. package/dist/observable-15588f28.js +0 -83
  188. package/dist/observable-464116ac.js +0 -84
  189. package/dist/observable-ade1bad8.mjs +0 -81
  190. package/dist/parseTRPCMessage-1377f305.js +0 -56
  191. package/dist/parseTRPCMessage-95955211.js +0 -63
  192. package/dist/parseTRPCMessage-a0f17853.mjs +0 -54
  193. package/dist/procedureBuilder-0446e596.js +0 -327
  194. package/dist/procedureBuilder-4b68e226.js +0 -349
  195. package/dist/procedureBuilder-cf58dadb.mjs +0 -340
  196. package/dist/resolveHTTPResponse-3ebaa4f6.mjs +0 -292
  197. package/dist/resolveHTTPResponse-7c84e387.js +0 -294
  198. package/dist/resolveHTTPResponse-fa37ffd7.js +0 -266
  199. package/dist/router-18d63731.js +0 -163
  200. package/dist/router-8dcebd61.js +0 -153
  201. package/dist/router-f9ce121f.mjs +0 -156
  202. package/dist/rpc/codes.d.ts +0 -51
  203. package/dist/rpc/codes.d.ts.map +0 -1
  204. package/dist/rpc/envelopes.d.ts +0 -95
  205. package/dist/rpc/envelopes.d.ts.map +0 -1
  206. package/dist/rpc/index.d.ts +0 -4
  207. package/dist/rpc/index.d.ts.map +0 -1
  208. package/dist/rpc/index.js +0 -12
  209. package/dist/rpc/index.mjs +0 -2
  210. package/dist/rpc/parseTRPCMessage.d.ts +0 -5
  211. package/dist/rpc/parseTRPCMessage.d.ts.map +0 -1
  212. package/dist/shared/createProxy/index.d.ts +0 -19
  213. package/dist/shared/createProxy/index.d.ts.map +0 -1
  214. package/dist/shared/getCauseFromUnknown.d.ts +0 -2
  215. package/dist/shared/getCauseFromUnknown.d.ts.map +0 -1
  216. package/dist/shared/getErrorShape.d.ts +0 -15
  217. package/dist/shared/getErrorShape.d.ts.map +0 -1
  218. package/dist/shared/index.d.ts +0 -8
  219. package/dist/shared/index.d.ts.map +0 -1
  220. package/dist/shared/index.js +0 -16
  221. package/dist/shared/index.mjs +0 -4
  222. package/dist/shared/internal/serialize.d.ts +0 -62
  223. package/dist/shared/internal/serialize.d.ts.map +0 -1
  224. package/dist/shared/jsonify.d.ts +0 -11
  225. package/dist/shared/jsonify.d.ts.map +0 -1
  226. package/dist/shared/transformTRPCResponse.d.ts +0 -9
  227. package/dist/shared/transformTRPCResponse.d.ts.map +0 -1
  228. package/dist/shared/types.d.ts +0 -6
  229. package/dist/shared/types.d.ts.map +0 -1
  230. package/dist/transformTRPCResponse-31040a38.mjs +0 -98
  231. package/dist/transformTRPCResponse-59486a84.js +0 -97
  232. package/dist/transformTRPCResponse-9f3b865f.js +0 -104
  233. package/dist/transformer.d.ts +0 -67
  234. package/dist/transformer.d.ts.map +0 -1
  235. package/dist/types.d.ts +0 -68
  236. package/dist/types.d.ts.map +0 -1
  237. package/dist/unstableInternalsExport.d.ts +0 -12
  238. package/dist/unstableInternalsExport.d.ts.map +0 -1
  239. package/dist/unstableInternalsExport.js +0 -16
  240. package/dist/unstableInternalsExport.mjs +0 -5
  241. package/src/core/index.ts +0 -28
  242. package/src/core/initTRPC.ts +0 -186
  243. package/src/core/internals/config.ts +0 -90
  244. package/src/core/internals/getParseFn.ts +0 -43
  245. package/src/core/internals/mergeRouters.ts +0 -90
  246. package/src/core/internals/mergeWithoutOverrides.ts +0 -19
  247. package/src/core/internals/omitPrototype.ts +0 -9
  248. package/src/core/internals/procedureBuilder.ts +0 -455
  249. package/src/core/internals/utils.ts +0 -79
  250. package/src/core/middleware.ts +0 -236
  251. package/src/core/parser.ts +0 -52
  252. package/src/core/procedure.ts +0 -68
  253. package/src/core/router.ts +0 -241
  254. package/src/core/types.ts +0 -67
  255. package/src/error/TRPCError.ts +0 -52
  256. package/src/error/formatter.ts +0 -54
  257. package/src/error/utils.ts +0 -23
  258. package/src/http/batchStreamFormatter.ts +0 -29
  259. package/src/http/contentType.ts +0 -99
  260. package/src/http/getHTTPStatusCode.ts +0 -61
  261. package/src/http/index.ts +0 -4
  262. package/src/http/internals/types.ts +0 -40
  263. package/src/http/resolveHTTPResponse.ts +0 -458
  264. package/src/http/types.ts +0 -51
  265. package/src/internals/invert.ts +0 -21
  266. package/src/internals/types.ts +0 -27
  267. package/src/observable/index.ts +0 -4
  268. package/src/observable/internals/identity.ts +0 -3
  269. package/src/observable/internals/observableToPromise.ts +0 -49
  270. package/src/observable/internals/pipe.ts +0 -23
  271. package/src/observable/observable.ts +0 -78
  272. package/src/observable/operators/index.ts +0 -3
  273. package/src/observable/operators/map.ts +0 -25
  274. package/src/observable/operators/share.ts +0 -65
  275. package/src/observable/operators/tap.ts +0 -26
  276. package/src/observable/types.ts +0 -80
  277. package/src/rpc/codes.ts +0 -44
  278. package/src/rpc/envelopes.ts +0 -136
  279. package/src/rpc/index.ts +0 -3
  280. package/src/rpc/parseTRPCMessage.ts +0 -84
  281. package/src/shared/createProxy/index.ts +0 -59
  282. package/src/shared/getCauseFromUnknown.ts +0 -31
  283. package/src/shared/getErrorShape.ts +0 -36
  284. package/src/shared/index.ts +0 -11
  285. package/src/shared/internal/serialize.ts +0 -122
  286. package/src/shared/jsonify.ts +0 -22
  287. package/src/shared/transformTRPCResponse.ts +0 -40
  288. package/src/shared/types.ts +0 -9
  289. package/src/transformer.ts +0 -84
  290. package/src/types.ts +0 -104
  291. package/src/unstableInternalsExport.ts +0 -12
  292. package/subscription/index.d.ts +0 -1
  293. package/subscription/index.js +0 -1
  294. package/unstableInternalsExport/index.d.ts +0 -1
  295. package/unstableInternalsExport/index.js +0 -1
@@ -1,340 +0,0 @@
1
- import { d as defaultFormatter, a as defaultTransformer, c as createRouterFactory } from './router-f9ce121f.mjs';
2
- import { T as TRPCError, g as getTRPCErrorFromUnknown } from './TRPCError-7e8e2a1b.mjs';
3
-
4
- /**
5
- * @internal
6
- */ function createMiddlewareFactory() {
7
- function createMiddlewareInner(middlewares) {
8
- return {
9
- _middlewares: middlewares,
10
- unstable_pipe (middlewareBuilderOrFn) {
11
- const pipedMiddleware = '_middlewares' in middlewareBuilderOrFn ? middlewareBuilderOrFn._middlewares : [
12
- middlewareBuilderOrFn
13
- ];
14
- return createMiddlewareInner([
15
- ...middlewares,
16
- ...pipedMiddleware
17
- ]);
18
- }
19
- };
20
- }
21
- function createMiddleware(fn) {
22
- return createMiddlewareInner([
23
- fn
24
- ]);
25
- }
26
- return createMiddleware;
27
- }
28
- const experimental_standaloneMiddleware = ()=>({
29
- create: createMiddlewareFactory()
30
- });
31
- function isPlainObject(obj) {
32
- return obj && typeof obj === 'object' && !Array.isArray(obj);
33
- }
34
- /**
35
- * @internal
36
- * Please note, `trpc-openapi` uses this function.
37
- */ function createInputMiddleware(parse) {
38
- const inputMiddleware = async function inputValidatorMiddleware(opts) {
39
- let parsedInput;
40
- const rawInput = await opts.getRawInput();
41
- try {
42
- parsedInput = await parse(rawInput);
43
- } catch (cause) {
44
- throw new TRPCError({
45
- code: 'BAD_REQUEST',
46
- cause
47
- });
48
- }
49
- // Multiple input parsers
50
- const combinedInput = isPlainObject(opts.input) && isPlainObject(parsedInput) ? {
51
- ...opts.input,
52
- ...parsedInput
53
- } : parsedInput;
54
- return opts.next({
55
- input: combinedInput
56
- });
57
- };
58
- inputMiddleware._type = 'input';
59
- return inputMiddleware;
60
- }
61
- /**
62
- * @internal
63
- */ function createOutputMiddleware(parse) {
64
- const outputMiddleware = async function outputValidatorMiddleware({ next }) {
65
- const result = await next();
66
- if (!result.ok) {
67
- // pass through failures without validating
68
- return result;
69
- }
70
- try {
71
- const data = await parse(result.data);
72
- return {
73
- ...result,
74
- data
75
- };
76
- } catch (cause) {
77
- throw new TRPCError({
78
- message: 'Output validation failed',
79
- code: 'INTERNAL_SERVER_ERROR',
80
- cause
81
- });
82
- }
83
- };
84
- outputMiddleware._type = 'output';
85
- return outputMiddleware;
86
- }
87
-
88
- /**
89
- * Ensures there are no duplicate keys when building a procedure.
90
- */ function mergeWithoutOverrides(obj1, ...objs) {
91
- const newObj = Object.assign(Object.create(null), obj1);
92
- for (const overrides of objs){
93
- for(const key in overrides){
94
- if (key in newObj && newObj[key] !== overrides[key]) {
95
- throw new Error(`Duplicate key ${key}`);
96
- }
97
- newObj[key] = overrides[key];
98
- }
99
- }
100
- return newObj;
101
- }
102
-
103
- function mergeRouters(...routerList) {
104
- const record = mergeWithoutOverrides({}, ...routerList.map((r)=>r._def.record));
105
- const errorFormatter = routerList.reduce((currentErrorFormatter, nextRouter)=>{
106
- if (nextRouter._def._config.errorFormatter && nextRouter._def._config.errorFormatter !== defaultFormatter) {
107
- if (currentErrorFormatter !== defaultFormatter && currentErrorFormatter !== nextRouter._def._config.errorFormatter) {
108
- throw new Error('You seem to have several error formatters');
109
- }
110
- return nextRouter._def._config.errorFormatter;
111
- }
112
- return currentErrorFormatter;
113
- }, defaultFormatter);
114
- const transformer = routerList.reduce((prev, current)=>{
115
- if (current._def._config.transformer && current._def._config.transformer !== defaultTransformer) {
116
- if (prev !== defaultTransformer && prev !== current._def._config.transformer) {
117
- throw new Error('You seem to have several transformers');
118
- }
119
- return current._def._config.transformer;
120
- }
121
- return prev;
122
- }, defaultTransformer);
123
- const router = createRouterFactory({
124
- errorFormatter,
125
- transformer,
126
- isDev: routerList.some((r)=>r._def._config.isDev),
127
- allowOutsideOfServer: routerList.some((r)=>r._def._config.allowOutsideOfServer),
128
- isServer: routerList.some((r)=>r._def._config.isServer),
129
- $types: routerList[0]?._def._config.$types
130
- })(record);
131
- return router;
132
- }
133
-
134
- function getParseFn(procedureParser) {
135
- const parser = procedureParser;
136
- if (typeof parser === 'function') {
137
- // ParserCustomValidatorEsque
138
- return parser;
139
- }
140
- if (typeof parser.parseAsync === 'function') {
141
- // ParserZodEsque
142
- return parser.parseAsync.bind(parser);
143
- }
144
- if (typeof parser.parse === 'function') {
145
- // ParserZodEsque
146
- // ParserValibotEsque (<= v0.12.X)
147
- return parser.parse.bind(parser);
148
- }
149
- if (typeof parser.validateSync === 'function') {
150
- // ParserYupEsque
151
- return parser.validateSync.bind(parser);
152
- }
153
- if (typeof parser.create === 'function') {
154
- // ParserSuperstructEsque
155
- return parser.create.bind(parser);
156
- }
157
- if (typeof parser.assert === 'function') {
158
- // ParserScaleEsque
159
- return (value)=>{
160
- parser.assert(value);
161
- return value;
162
- };
163
- }
164
- throw new Error('Could not find a validator fn');
165
- }
166
-
167
- /**
168
- * @internal
169
- */ const middlewareMarker = 'middlewareMarker';
170
- /**
171
- * @internal
172
- */ const unsetMarker = Symbol('unsetMarker');
173
-
174
- function createNewBuilder(def1, def2) {
175
- const { middlewares =[] , inputs , meta , ...rest } = def2;
176
- // TODO: maybe have a fn here to warn about calls
177
- return createBuilder({
178
- ...mergeWithoutOverrides(def1, rest),
179
- inputs: [
180
- ...def1.inputs,
181
- ...inputs ?? []
182
- ],
183
- middlewares: [
184
- ...def1.middlewares,
185
- ...middlewares
186
- ],
187
- meta: def1.meta && meta ? {
188
- ...def1.meta,
189
- ...meta
190
- } : meta ?? def1.meta
191
- });
192
- }
193
- function createBuilder(initDef = {}) {
194
- const _def = {
195
- procedure: true,
196
- inputs: [],
197
- middlewares: [],
198
- ...initDef
199
- };
200
- const builder = {
201
- _def,
202
- input (input) {
203
- const parser = getParseFn(input);
204
- return createNewBuilder(_def, {
205
- inputs: [
206
- input
207
- ],
208
- middlewares: [
209
- createInputMiddleware(parser)
210
- ]
211
- });
212
- },
213
- output (output) {
214
- const parser = getParseFn(output);
215
- return createNewBuilder(_def, {
216
- output,
217
- middlewares: [
218
- createOutputMiddleware(parser)
219
- ]
220
- });
221
- },
222
- meta (meta) {
223
- return createNewBuilder(_def, {
224
- meta
225
- });
226
- },
227
- use (middlewareBuilderOrFn) {
228
- // Distinguish between a middleware builder and a middleware function
229
- const middlewares = '_middlewares' in middlewareBuilderOrFn ? middlewareBuilderOrFn._middlewares : [
230
- middlewareBuilderOrFn
231
- ];
232
- return createNewBuilder(_def, {
233
- middlewares: middlewares
234
- });
235
- },
236
- query (resolver) {
237
- return createResolver({
238
- ..._def,
239
- type: 'query'
240
- }, resolver);
241
- },
242
- mutation (resolver) {
243
- return createResolver({
244
- ..._def,
245
- type: 'mutation'
246
- }, resolver);
247
- },
248
- subscription (resolver) {
249
- return createResolver({
250
- ..._def,
251
- type: 'subscription'
252
- }, resolver);
253
- }
254
- };
255
- return builder;
256
- }
257
- function createResolver(_def, resolver) {
258
- const finalBuilder = createNewBuilder(_def, {
259
- resolver,
260
- middlewares: [
261
- async function resolveMiddleware(opts) {
262
- const data = await resolver(opts);
263
- return {
264
- marker: middlewareMarker,
265
- ok: true,
266
- data,
267
- ctx: opts.ctx
268
- };
269
- }
270
- ]
271
- });
272
- return createProcedureCaller(finalBuilder._def);
273
- }
274
- const codeblock = `
275
- This is a client-only function.
276
- If you want to call this function on the server, see https://trpc.io/docs/server/server-side-calls
277
- `.trim();
278
- function createProcedureCaller(_def) {
279
- async function procedure(opts) {
280
- // is direct server-side call
281
- if (!opts || !('getRawInput' in opts)) {
282
- throw new Error(codeblock);
283
- }
284
- // run the middlewares recursively with the resolver as the last one
285
- async function callRecursive(callOpts = {
286
- index: 0,
287
- ctx: opts.ctx
288
- }) {
289
- try {
290
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
291
- const middleware = _def.middlewares[callOpts.index];
292
- const result = await middleware({
293
- ctx: callOpts.ctx,
294
- type: opts.type,
295
- path: opts.path,
296
- getRawInput: callOpts.getRawInput ?? opts.getRawInput,
297
- meta: _def.meta,
298
- input: callOpts.input,
299
- next (_nextOpts) {
300
- const nextOpts = _nextOpts;
301
- return callRecursive({
302
- index: callOpts.index + 1,
303
- ctx: nextOpts && 'ctx' in nextOpts ? {
304
- ...callOpts.ctx,
305
- ...nextOpts.ctx
306
- } : callOpts.ctx,
307
- input: nextOpts && 'input' in nextOpts ? nextOpts.input : callOpts.input,
308
- getRawInput: nextOpts && 'getRawInput' in nextOpts ? nextOpts.getRawInput : callOpts.getRawInput
309
- });
310
- }
311
- });
312
- return result;
313
- } catch (cause) {
314
- return {
315
- ok: false,
316
- error: getTRPCErrorFromUnknown(cause),
317
- marker: middlewareMarker
318
- };
319
- }
320
- }
321
- // there's always at least one "next" since we wrap this.resolver in a middleware
322
- const result = await callRecursive();
323
- if (!result) {
324
- throw new TRPCError({
325
- code: 'INTERNAL_SERVER_ERROR',
326
- message: 'No result from middlewares - did you forget to `return next()`?'
327
- });
328
- }
329
- if (!result.ok) {
330
- // re-throw original error
331
- throw result.error;
332
- }
333
- return result.data;
334
- }
335
- procedure._def = _def;
336
- // FIXME typecast shouldn't be needed - fixittt
337
- return procedure;
338
- }
339
-
340
- export { createMiddlewareFactory as a, createInputMiddleware as b, createBuilder as c, createOutputMiddleware as d, experimental_standaloneMiddleware as e, middlewareMarker as f, mergeRouters as m, unsetMarker as u };
@@ -1,292 +0,0 @@
1
- import { e as callProcedure } from './router-f9ce121f.mjs';
2
- import { T as TRPCError, g as getTRPCErrorFromUnknown } from './TRPCError-7e8e2a1b.mjs';
3
- import './config-50853f49.mjs';
4
- import { t as transformTRPCResponse, g as getHTTPStatusCode, a as getErrorShape } from './transformTRPCResponse-31040a38.mjs';
5
- import { g as getJsonContentTypeInputs } from './contentType-31223e57.mjs';
6
-
7
- const HTTP_METHOD_PROCEDURE_TYPE_MAP = {
8
- GET: 'query',
9
- POST: 'mutation'
10
- };
11
- const fallbackContentTypeHandler = {
12
- getInputs: getJsonContentTypeInputs
13
- };
14
- function initResponse(initOpts) {
15
- const { ctx , paths , type , responseMeta , untransformedJSON , errors =[] , } = initOpts;
16
- let status = untransformedJSON ? getHTTPStatusCode(untransformedJSON) : 200;
17
- const headers = {
18
- 'Content-Type': 'application/json'
19
- };
20
- const eagerGeneration = !untransformedJSON;
21
- const data = eagerGeneration ? [] : Array.isArray(untransformedJSON) ? untransformedJSON : [
22
- untransformedJSON
23
- ];
24
- const meta = responseMeta?.({
25
- ctx,
26
- paths,
27
- type,
28
- data,
29
- errors,
30
- eagerGeneration
31
- }) ?? {};
32
- for (const [key, value] of Object.entries(meta.headers ?? {})){
33
- headers[key] = value;
34
- }
35
- if (meta.status) {
36
- status = meta.status;
37
- }
38
- return {
39
- status,
40
- headers
41
- };
42
- }
43
- async function inputToProcedureCall(procedureOpts) {
44
- const { opts , ctx , type , input , path } = procedureOpts;
45
- try {
46
- const data = await callProcedure({
47
- procedures: opts.router._def.procedures,
48
- path,
49
- getRawInput: async ()=>input,
50
- ctx,
51
- type
52
- });
53
- return {
54
- result: {
55
- data
56
- }
57
- };
58
- } catch (cause) {
59
- const error = getTRPCErrorFromUnknown(cause);
60
- opts.onError?.({
61
- error,
62
- path,
63
- input,
64
- ctx,
65
- type: type,
66
- req: opts.req
67
- });
68
- return {
69
- error: getErrorShape({
70
- config: opts.router._def._config,
71
- error,
72
- type,
73
- path,
74
- input,
75
- ctx
76
- })
77
- };
78
- }
79
- }
80
- function caughtErrorToData(cause, errorOpts) {
81
- const { router , req , onError } = errorOpts.opts;
82
- const error = getTRPCErrorFromUnknown(cause);
83
- onError?.({
84
- error,
85
- path: errorOpts.path,
86
- input: errorOpts.input,
87
- ctx: errorOpts.ctx,
88
- type: errorOpts.type,
89
- req
90
- });
91
- const untransformedJSON = {
92
- error: getErrorShape({
93
- config: router._def._config,
94
- error,
95
- type: errorOpts.type,
96
- path: errorOpts.path,
97
- input: errorOpts.input,
98
- ctx: errorOpts.ctx
99
- })
100
- };
101
- const transformedJSON = transformTRPCResponse(router._def._config, untransformedJSON);
102
- const body = JSON.stringify(transformedJSON);
103
- return {
104
- error,
105
- untransformedJSON,
106
- body
107
- };
108
- }
109
- // implementation
110
- async function resolveHTTPResponse(opts) {
111
- const { router , req , unstable_onHead , unstable_onChunk } = opts;
112
- if (req.method === 'HEAD') {
113
- // can be used for lambda warmup
114
- const headResponse = {
115
- status: 204
116
- };
117
- unstable_onHead?.(headResponse, false);
118
- unstable_onChunk?.([
119
- -1,
120
- ''
121
- ]);
122
- return headResponse;
123
- }
124
- const contentTypeHandler = opts.contentTypeHandler ?? fallbackContentTypeHandler;
125
- const batchingEnabled = opts.batching?.enabled ?? true;
126
- const type = HTTP_METHOD_PROCEDURE_TYPE_MAP[req.method] ?? 'unknown';
127
- let ctx = undefined;
128
- let paths;
129
- const isBatchCall = !!req.query.get('batch');
130
- const isStreamCall = isBatchCall && unstable_onHead && unstable_onChunk && req.headers['trpc-batch-mode'] === 'stream';
131
- try {
132
- if (opts.error) {
133
- throw opts.error;
134
- }
135
- if (isBatchCall && !batchingEnabled) {
136
- throw new Error(`Batching is not enabled on the server`);
137
- }
138
- /* istanbul ignore if -- @preserve */ if (type === 'subscription') {
139
- throw new TRPCError({
140
- message: 'Subscriptions should use wsLink',
141
- code: 'METHOD_NOT_SUPPORTED'
142
- });
143
- }
144
- if (type === 'unknown') {
145
- throw new TRPCError({
146
- message: `Unexpected request method ${req.method}`,
147
- code: 'METHOD_NOT_SUPPORTED'
148
- });
149
- }
150
- const inputs = await contentTypeHandler.getInputs({
151
- isBatchCall,
152
- req,
153
- router,
154
- preprocessedBody: opts.preprocessedBody ?? false
155
- });
156
- paths = isBatchCall ? decodeURIComponent(opts.path).split(',') : [
157
- opts.path
158
- ];
159
- const info = {
160
- isBatchCall,
161
- calls: paths.map((path, idx)=>({
162
- path,
163
- type,
164
- input: inputs[idx] ?? undefined
165
- }))
166
- };
167
- ctx = await opts.createContext({
168
- info
169
- });
170
- const promises = paths.map((path, index)=>inputToProcedureCall({
171
- opts,
172
- ctx,
173
- type,
174
- input: inputs[index],
175
- path
176
- }));
177
- if (!isStreamCall) {
178
- /**
179
- * Non-streaming response:
180
- * - await all responses in parallel, blocking on the slowest one
181
- * - create headers with known response body
182
- * - return a complete HTTPResponse
183
- */ const untransformedJSON = await Promise.all(promises);
184
- const errors = untransformedJSON.flatMap((response)=>'error' in response ? [
185
- response.error
186
- ] : []);
187
- const headResponse1 = initResponse({
188
- ctx,
189
- paths,
190
- type,
191
- responseMeta: opts.responseMeta,
192
- untransformedJSON,
193
- errors
194
- });
195
- unstable_onHead?.(headResponse1, false);
196
- // return body stuff
197
- const result = isBatchCall ? untransformedJSON : untransformedJSON[0]; // eslint-disable-line @typescript-eslint/no-non-null-assertion -- `untransformedJSON` should be the length of `paths` which should be at least 1 otherwise there wouldn't be a request at all
198
- const transformedJSON = transformTRPCResponse(router._def._config, result);
199
- const body = JSON.stringify(transformedJSON);
200
- unstable_onChunk?.([
201
- -1,
202
- body
203
- ]);
204
- return {
205
- status: headResponse1.status,
206
- headers: headResponse1.headers,
207
- body
208
- };
209
- }
210
- /**
211
- * Streaming response:
212
- * - block on none, call `onChunk` as soon as each response is ready
213
- * - create headers with minimal data (cannot know the response body in advance)
214
- * - return void
215
- */ const headResponse2 = initResponse({
216
- ctx,
217
- paths,
218
- type,
219
- responseMeta: opts.responseMeta
220
- });
221
- unstable_onHead(headResponse2, true);
222
- const indexedPromises = new Map(promises.map((promise, index)=>[
223
- index,
224
- promise.then((r)=>[
225
- index,
226
- r
227
- ])
228
- ]));
229
- for (const _ of paths){
230
- const [index, untransformedJSON1] = await Promise.race(indexedPromises.values());
231
- indexedPromises.delete(index);
232
- try {
233
- const transformedJSON1 = transformTRPCResponse(router._def._config, untransformedJSON1);
234
- const body1 = JSON.stringify(transformedJSON1);
235
- unstable_onChunk([
236
- index,
237
- body1
238
- ]);
239
- } catch (cause) {
240
- const path = paths[index];
241
- const input = inputs[index];
242
- const { body: body2 } = caughtErrorToData(cause, {
243
- opts,
244
- ctx,
245
- type,
246
- path,
247
- input
248
- });
249
- unstable_onChunk([
250
- index,
251
- body2
252
- ]);
253
- }
254
- }
255
- return;
256
- } catch (cause1) {
257
- // we get here if
258
- // - batching is called when it's not enabled
259
- // - `createContext()` throws
260
- // - `router._def._config.transformer.output.serialize()` throws
261
- // - post body is too large
262
- // - input deserialization fails
263
- // - `errorFormatter` return value is malformed
264
- const { error , untransformedJSON: untransformedJSON2 , body: body3 } = caughtErrorToData(cause1, {
265
- opts,
266
- ctx,
267
- type
268
- });
269
- const headResponse3 = initResponse({
270
- ctx,
271
- paths,
272
- type,
273
- responseMeta: opts.responseMeta,
274
- untransformedJSON: untransformedJSON2,
275
- errors: [
276
- error
277
- ]
278
- });
279
- unstable_onHead?.(headResponse3, false);
280
- unstable_onChunk?.([
281
- -1,
282
- body3
283
- ]);
284
- return {
285
- status: headResponse3.status,
286
- headers: headResponse3.headers,
287
- body: body3
288
- };
289
- }
290
- }
291
-
292
- export { resolveHTTPResponse as r };