@trpc/server 10.37.1 → 10.38.0

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.
package/README.md CHANGED
@@ -31,6 +31,9 @@ yarn add @trpc/server
31
31
 
32
32
  # pnpm
33
33
  pnpm add @trpc/server
34
+
35
+ # Bun
36
+ bun add @trpc/server
34
37
  ```
35
38
 
36
39
  We also recommend installing `zod` to validate procedure inputs.
@@ -2,7 +2,7 @@ export type { AnyRouter, ProcedureRecord, ProcedureRouterRecord, CreateRouterInn
2
2
  export { callProcedure } from './router';
3
3
  export type { Procedure, AnyProcedure, AnyQueryProcedure, AnyMutationProcedure, AnySubscriptionProcedure, ProcedureParams, ProcedureArgs, ProcedureOptions, } from './procedure';
4
4
  export type { inferParser } from './parser';
5
- export { createInputMiddleware, createOutputMiddleware } from './middleware';
5
+ export { createInputMiddleware, createOutputMiddleware, experimental_standaloneMiddleware, } from './middleware';
6
6
  export type { MiddlewareFunction, MiddlewareBuilder } from './middleware';
7
7
  export { initTRPC } from './initTRPC';
8
8
  export * from './types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,SAAS,EACT,eAAe,EACf,qBAAqB,EACrB,iBAAiB,EACjB,MAAM,GACP,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,YAAY,EACV,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,EACxB,eAAe,EACf,aAAa,EACb,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC7E,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,SAAS,EACT,eAAe,EACf,qBAAqB,EACrB,iBAAiB,EACjB,MAAM,GACP,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,YAAY,EACV,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,EACxB,eAAe,EACf,aAAa,EACb,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,iCAAiC,GAClC,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,cAAc,SAAS,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { TRPCError } from '../error/TRPCError';
2
2
  import { Simplify } from '../types';
3
- import { AnyRootConfig } from './internals/config';
3
+ import { AnyRootConfig, RootConfig } from './internals/config';
4
4
  import { ParseFn } from './internals/getParseFn';
5
5
  import { ProcedureBuilderMiddleware } from './internals/procedureBuilder';
6
6
  import { DefaultValue as FallbackValue, MiddlewareMarker, Overwrite } from './internals/utils';
@@ -71,11 +71,11 @@ type CreateMiddlewareReturnInput<TRoot extends ProcedureParams, TPrev extends Pr
71
71
  /**
72
72
  * @internal
73
73
  */
74
- type deriveParamsFromConfig<TConfig extends AnyRootConfig> = {
74
+ type deriveParamsFromConfig<TConfig extends AnyRootConfig, TInputIn = unknown> = {
75
75
  _config: TConfig;
76
76
  _ctx_out: {};
77
- _input_out: unknown;
78
- _input_in: unknown;
77
+ _input_out: TInputIn;
78
+ _input_in: TInputIn;
79
79
  _output_in: unknown;
80
80
  _output_out: unknown;
81
81
  _meta: TConfig['$types']['meta'];
@@ -114,7 +114,36 @@ export type MiddlewareFunction<TParams extends ProcedureParams, TParamsAfter ext
114
114
  /**
115
115
  * @internal
116
116
  */
117
- export declare function createMiddlewareFactory<TConfig extends AnyRootConfig>(): <TNewParams extends ProcedureParams<AnyRootConfig, unknown, unknown, unknown, unknown, unknown, unknown>>(fn: MiddlewareFunction<deriveParamsFromConfig<TConfig>, TNewParams>) => MiddlewareBuilder<deriveParamsFromConfig<TConfig>, TNewParams>;
117
+ export declare function createMiddlewareFactory<TConfig extends AnyRootConfig, TInputIn = unknown>(): <TNewParams extends ProcedureParams<AnyRootConfig, unknown, unknown, unknown, unknown, unknown, unknown>>(fn: MiddlewareFunction<deriveParamsFromConfig<TConfig, TInputIn>, TNewParams>) => MiddlewareBuilder<deriveParamsFromConfig<TConfig, TInputIn>, TNewParams>;
118
+ export declare const experimental_standaloneMiddleware: <TCtx extends {
119
+ ctx?: object | undefined;
120
+ meta?: object | undefined;
121
+ input?: unknown;
122
+ }>() => {
123
+ create: <TNewParams extends ProcedureParams<AnyRootConfig, unknown, unknown, unknown, unknown, unknown, unknown>>(fn: MiddlewareFunction<deriveParamsFromConfig<RootConfig<{
124
+ ctx: TCtx extends {
125
+ ctx: infer T extends object;
126
+ } ? T : object;
127
+ meta: TCtx extends {
128
+ meta: infer T_1 extends object;
129
+ } ? T_1 : object;
130
+ errorShape: object;
131
+ transformer: object;
132
+ }>, TCtx extends {
133
+ input: infer T_2;
134
+ } ? T_2 : unknown>, TNewParams>) => MiddlewareBuilder<deriveParamsFromConfig<RootConfig<{
135
+ ctx: TCtx extends {
136
+ ctx: infer T extends object;
137
+ } ? T : object;
138
+ meta: TCtx extends {
139
+ meta: infer T_1 extends object;
140
+ } ? T_1 : object;
141
+ errorShape: object;
142
+ transformer: object;
143
+ }>, TCtx extends {
144
+ input: infer T_2;
145
+ } ? T_2 : unknown>, TNewParams>;
146
+ };
118
147
  /**
119
148
  * @internal
120
149
  * Please note, `trpc-openapi` uses this function.
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/core/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EACL,YAAY,IAAI,aAAa,EAC7B,gBAAgB,EAChB,SAAS,EACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC;;GAEG;AACH,UAAU,oBAAoB;IAC5B;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;CACnC;AAED;;GAEG;AACH,UAAU,kBAAkB,CAAC,QAAQ,SAAS,eAAe,CAC3D,SAAQ,oBAAoB;IAC5B,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,OAAO,CAAC;CAEf;AAED;;GAEG;AACH,UAAU,qBAAqB,CAAC,QAAQ,SAAS,eAAe,CAC9D,SAAQ,oBAAoB;IAC5B,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,SAAS,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,OAAO,SAAS,eAAe,IACxD,qBAAqB,CAAC,OAAO,CAAC,GAC9B,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAEhC;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAChC,KAAK,SAAS,eAAe,EAC7B,UAAU,SAAS,eAAe;IAElC;;OAEG;IACH,aAAa,CAAC,OAAO,SAAS,eAAe,EAC3C,EAAE,EAAE;QACF,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC1B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACtB,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;QAC/D,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;QACtE,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;QACzE,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;QACzE,WAAW,EAAE,aAAa,CACxB,KAAK,CAAC,aAAa,CAAC,EACpB,UAAU,CAAC,aAAa,CAAC,CAC1B,CAAC;KACH,SAAS,MAAM,OAAO,SAAS,eAAe,GAEvC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,GACnC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,GACxC,KAAK,GACR,2BAA2B,CAC5B,KAAK,EACL,UAAU,EACV,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAC/B,CAAC;IAEF;;OAEG;IACH,YAAY,EAAE,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;CACvD;AAED;;;GAGG;AACH,KAAK,2BAA2B,CAC9B,KAAK,SAAS,eAAe,EAC7B,KAAK,SAAS,eAAe,EAC7B,KAAK,SAAS,eAAe,IAC3B,iBAAiB,CACnB,KAAK,EACL;IACE,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1D,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IACjE,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;IACpE,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;IACpE,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;CACxE,CACF,CAAC;AAEF;;GAEG;AACH,KAAK,sBAAsB,CAAC,OAAO,SAAS,aAAa,IAAI;IAC3D,OAAO,EAAE,OAAO,CAAC;IAEjB,QAAQ,EAAE,EAAE,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;CAClC,CAAC;AACF;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAC5B,OAAO,SAAS,eAAe,EAC/B,YAAY,SAAS,eAAe,IAClC;IACF,CAAC,IAAI,EAAE;QACL,GAAG,EAAE,QAAQ,CACX,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CACpE,CAAC;QACF,IAAI,EAAE,aAAa,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QAC7B,QAAQ,EAAE,OAAO,CAAC;QAClB,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;QACnC,IAAI,EAAE;YACJ,IAAI,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,CAAC,QAAQ,EAAE,IAAI,EAAE;gBAAE,GAAG,EAAE,QAAQ,CAAA;aAAE,GAAG,OAAO,CAC1C,gBAAgB,CAAC;gBACf,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;gBAC5B,QAAQ,EAAE,QAAQ,CAAC;gBACnB,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;gBAChC,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;gBAClC,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;gBAClC,WAAW,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;gBACpC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;aACzB,CAAC,CACH,CAAC;YACF,CAAC,IAAI,EAAE;gBAAE,QAAQ,EAAE,OAAO,CAAA;aAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;SACnE,CAAC;KACH,GAAG,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;IAC5C,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,CAAC;AAEF;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,SAAS,aAAa,sPA2BpE;AAMD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,8BA8BnE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,8BAuBtE"}
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/core/middleware.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -263,6 +263,9 @@ function getParseFn(procedureParser) {
263
263
  }
264
264
  return createMiddleware;
265
265
  }
266
+ const experimental_standaloneMiddleware = ()=>({
267
+ create: createMiddlewareFactory()
268
+ });
266
269
  function isPlainObject(obj) {
267
270
  return obj && typeof obj === 'object' && !Array.isArray(obj);
268
271
  }
@@ -872,5 +875,6 @@ exports.TRPCError = TRPCError.TRPCError;
872
875
  exports.getTRPCErrorFromUnknown = TRPCError.getTRPCErrorFromUnknown;
873
876
  exports.createInputMiddleware = createInputMiddleware;
874
877
  exports.createOutputMiddleware = createOutputMiddleware;
878
+ exports.experimental_standaloneMiddleware = experimental_standaloneMiddleware;
875
879
  exports.initTRPC = initTRPC;
876
880
  exports.router = router;
package/dist/index.mjs CHANGED
@@ -261,6 +261,9 @@ function getParseFn(procedureParser) {
261
261
  }
262
262
  return createMiddleware;
263
263
  }
264
+ const experimental_standaloneMiddleware = ()=>({
265
+ create: createMiddlewareFactory()
266
+ });
264
267
  function isPlainObject(obj) {
265
268
  return obj && typeof obj === 'object' && !Array.isArray(obj);
266
269
  }
@@ -862,4 +865,4 @@ function createTRPCInner() {
862
865
  };
863
866
  }
864
867
 
865
- export { createInputMiddleware, createOutputMiddleware, initTRPC, router };
868
+ export { createInputMiddleware, createOutputMiddleware, experimental_standaloneMiddleware, initTRPC, router };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trpc/server",
3
- "version": "10.37.1",
3
+ "version": "10.38.0",
4
4
  "description": "The tRPC server library",
5
5
  "author": "KATT",
6
6
  "license": "MIT",
@@ -165,7 +165,7 @@
165
165
  "tslib": "^2.5.0",
166
166
  "tsx": "^3.12.7",
167
167
  "typescript": "^5.1.3",
168
- "valibot": "^0.8.0",
168
+ "valibot": "^0.12.0",
169
169
  "vitest": "^0.32.0",
170
170
  "ws": "^8.0.0",
171
171
  "yup": "^1.0.0",
@@ -174,5 +174,5 @@
174
174
  "funding": [
175
175
  "https://trpc.io/sponsor"
176
176
  ],
177
- "gitHead": "9ebca19eb2690d4717601d9d54f39e4ffeff369f"
177
+ "gitHead": "a811287aae324c1e947f9620e9aab4de79c98bed"
178
178
  }
package/src/core/index.ts CHANGED
@@ -17,7 +17,11 @@ export type {
17
17
  ProcedureOptions,
18
18
  } from './procedure';
19
19
  export type { inferParser } from './parser';
20
- export { createInputMiddleware, createOutputMiddleware } from './middleware';
20
+ export {
21
+ createInputMiddleware,
22
+ createOutputMiddleware,
23
+ experimental_standaloneMiddleware,
24
+ } from './middleware';
21
25
  export type { MiddlewareFunction, MiddlewareBuilder } from './middleware';
22
26
  export { initTRPC } from './initTRPC';
23
27
  export * from './types';
@@ -1,6 +1,6 @@
1
1
  import { TRPCError } from '../error/TRPCError';
2
2
  import { Simplify } from '../types';
3
- import { AnyRootConfig } from './internals/config';
3
+ import { AnyRootConfig, RootConfig } from './internals/config';
4
4
  import { ParseFn } from './internals/getParseFn';
5
5
  import { ProcedureBuilderMiddleware } from './internals/procedureBuilder';
6
6
  import {
@@ -111,12 +111,15 @@ type CreateMiddlewareReturnInput<
111
111
  /**
112
112
  * @internal
113
113
  */
114
- type deriveParamsFromConfig<TConfig extends AnyRootConfig> = {
114
+ type deriveParamsFromConfig<
115
+ TConfig extends AnyRootConfig,
116
+ TInputIn = unknown,
117
+ > = {
115
118
  _config: TConfig;
116
119
  // eslint-disable-next-line @typescript-eslint/ban-types
117
120
  _ctx_out: {};
118
- _input_out: unknown;
119
- _input_in: unknown;
121
+ _input_out: TInputIn;
122
+ _input_in: TInputIn;
120
123
  _output_in: unknown;
121
124
  _output_out: unknown;
122
125
  _meta: TConfig['$types']['meta'];
@@ -159,10 +162,13 @@ export type MiddlewareFunction<
159
162
  /**
160
163
  * @internal
161
164
  */
162
- export function createMiddlewareFactory<TConfig extends AnyRootConfig>() {
165
+ export function createMiddlewareFactory<
166
+ TConfig extends AnyRootConfig,
167
+ TInputIn = unknown,
168
+ >() {
163
169
  function createMiddlewareInner<TNewParams extends ProcedureParams>(
164
170
  middlewares: MiddlewareFunction<any, any>[],
165
- ): MiddlewareBuilder<deriveParamsFromConfig<TConfig>, TNewParams> {
171
+ ): MiddlewareBuilder<deriveParamsFromConfig<TConfig, TInputIn>, TNewParams> {
166
172
  return {
167
173
  _middlewares: middlewares,
168
174
  unstable_pipe(middlewareBuilderOrFn) {
@@ -180,14 +186,35 @@ export function createMiddlewareFactory<TConfig extends AnyRootConfig>() {
180
186
  }
181
187
 
182
188
  function createMiddleware<TNewParams extends ProcedureParams>(
183
- fn: MiddlewareFunction<deriveParamsFromConfig<TConfig>, TNewParams>,
184
- ): MiddlewareBuilder<deriveParamsFromConfig<TConfig>, TNewParams> {
189
+ fn: MiddlewareFunction<
190
+ deriveParamsFromConfig<TConfig, TInputIn>,
191
+ TNewParams
192
+ >,
193
+ ): MiddlewareBuilder<deriveParamsFromConfig<TConfig, TInputIn>, TNewParams> {
185
194
  return createMiddlewareInner([fn]);
186
195
  }
187
196
 
188
197
  return createMiddleware;
189
198
  }
190
199
 
200
+ export const experimental_standaloneMiddleware = <
201
+ TCtx extends {
202
+ ctx?: object;
203
+ meta?: object;
204
+ input?: unknown;
205
+ },
206
+ >() => ({
207
+ create: createMiddlewareFactory<
208
+ RootConfig<{
209
+ ctx: TCtx extends { ctx: infer T extends object } ? T : object;
210
+ meta: TCtx extends { meta: infer T extends object } ? T : object;
211
+ errorShape: object;
212
+ transformer: object;
213
+ }>,
214
+ TCtx extends { input: infer T } ? T : unknown
215
+ >(),
216
+ });
217
+
191
218
  function isPlainObject(obj: unknown) {
192
219
  return obj && typeof obj === 'object' && !Array.isArray(obj);
193
220
  }