@trpc/server 10.43.0 → 11.0.0-next.91

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