@trpc/server 10.11.1 → 10.13.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.
Files changed (75) hide show
  1. package/dist/TRPCError-ef1ceb74.js +55 -0
  2. package/dist/adapters/aws-lambda/index.js +2 -2
  3. package/dist/adapters/aws-lambda/index.mjs +2 -2
  4. package/dist/adapters/express.js +3 -3
  5. package/dist/adapters/express.mjs +3 -3
  6. package/dist/adapters/fastify/index.js +3 -3
  7. package/dist/adapters/fastify/index.mjs +3 -3
  8. package/dist/adapters/fetch/index.js +3 -3
  9. package/dist/adapters/fetch/index.mjs +3 -3
  10. package/dist/adapters/next.js +3 -3
  11. package/dist/adapters/next.mjs +3 -3
  12. package/dist/adapters/node-http/index.js +3 -3
  13. package/dist/adapters/node-http/index.mjs +3 -3
  14. package/dist/adapters/standalone.js +3 -3
  15. package/dist/adapters/standalone.mjs +3 -3
  16. package/dist/adapters/ws.js +10 -10
  17. package/dist/adapters/ws.mjs +10 -10
  18. package/dist/codes-ec2bad91.js +45 -0
  19. package/dist/{config-d356ff77.js → config-cc5b2d45.js} +1 -1
  20. package/dist/{config-4ca0221b.mjs → config-cd794c2a.mjs} +1 -1
  21. package/dist/config-e8f70019.js +225 -0
  22. package/dist/core/index.d.ts +1 -0
  23. package/dist/core/index.d.ts.map +1 -1
  24. package/dist/core/internals/config.d.ts +4 -1
  25. package/dist/core/internals/config.d.ts.map +1 -1
  26. package/dist/core/internals/procedureBuilder.d.ts +3 -6
  27. package/dist/core/internals/procedureBuilder.d.ts.map +1 -1
  28. package/dist/error/TRPCError.d.ts +1 -1
  29. package/dist/http/index.js +2 -2
  30. package/dist/http/index.mjs +2 -2
  31. package/dist/http/resolveHTTPResponse.d.ts.map +1 -1
  32. package/dist/index-f38f12ba.js +47 -0
  33. package/dist/index.js +1 -1
  34. package/dist/index.mjs +2 -2
  35. package/dist/internals.d.ts +2 -3
  36. package/dist/internals.d.ts.map +1 -1
  37. package/dist/{nodeHTTPRequestHandler-34404221.mjs → nodeHTTPRequestHandler-85d2b636.mjs} +1 -1
  38. package/dist/{nodeHTTPRequestHandler-64cf5f55.js → nodeHTTPRequestHandler-a649e036.js} +1 -1
  39. package/dist/nodeHTTPRequestHandler-fa0b13d4.js +76 -0
  40. package/dist/observable-a1c2103f.js +83 -0
  41. package/dist/{resolveHTTPResponse-3408bbf7.js → resolveHTTPResponse-6cffb0ce.js} +4 -3
  42. package/dist/{resolveHTTPResponse-b831e644.mjs → resolveHTTPResponse-7a4f75b3.mjs} +4 -3
  43. package/dist/resolveHTTPResponse-fed650e4.js +205 -0
  44. package/dist/subscription.js +3 -3
  45. package/dist/subscription.mjs +3 -3
  46. package/dist/transformTRPCResponse-896669e0.js +28 -0
  47. package/dist/transformer.d.ts +35 -8
  48. package/dist/transformer.d.ts.map +1 -1
  49. package/package.json +10 -14
  50. package/src/adapters/fastify/fastifyRequestHandler.ts +1 -1
  51. package/src/adapters/fetch/fetchRequestHandler.ts +1 -1
  52. package/src/adapters/ws.ts +9 -9
  53. package/src/core/index.ts +1 -0
  54. package/src/core/internals/config.ts +7 -2
  55. package/src/core/internals/procedureBuilder.ts +9 -20
  56. package/src/http/resolveHTTPResponse.ts +3 -2
  57. package/src/internals.ts +2 -3
  58. package/src/observable/observable.test.ts +15 -15
  59. package/src/observable/operators/map.test.ts +2 -2
  60. package/src/observable/operators/share.test.ts +9 -9
  61. package/src/subscription.ts +3 -3
  62. package/src/transformer.ts +36 -8
  63. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.d.ts +0 -1
  64. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.dev.js +0 -190
  65. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.js +0 -7
  66. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.prod.js +0 -190
  67. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.esm.js +0 -186
  68. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.d.ts +0 -1
  69. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.dev.js +0 -109
  70. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.js +0 -7
  71. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.prod.js +0 -109
  72. package/adapters/fastify/dist/trpc-server-adapters-fastify.esm.js +0 -104
  73. package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts +0 -202
  74. package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts.map +0 -1
  75. package/src/core/internals/__generated__/mergeRoutersGeneric.ts +0 -306
@@ -0,0 +1,225 @@
1
+ import { T as TRPCError } from './TRPCError-ef1ceb74.js';
2
+ import { i as invert, T as TRPC_ERROR_CODES_BY_KEY } from './codes-ec2bad91.js';
3
+ import { a as createRecursiveProxy } from './index-f38f12ba.js';
4
+
5
+ /**
6
+ * @internal
7
+ */
8
+ function getDataTransformer(transformer) {
9
+ if ('input' in transformer) {
10
+ return transformer;
11
+ }
12
+ return { input: transformer, output: transformer };
13
+ }
14
+ /**
15
+ * @internal
16
+ */
17
+ const defaultTransformer = {
18
+ _default: true,
19
+ input: { serialize: (obj) => obj, deserialize: (obj) => obj },
20
+ output: { serialize: (obj) => obj, deserialize: (obj) => obj },
21
+ };
22
+
23
+ const defaultFormatter = ({ shape, }) => {
24
+ return shape;
25
+ };
26
+
27
+ const TRPC_ERROR_CODES_BY_NUMBER = invert(TRPC_ERROR_CODES_BY_KEY);
28
+ const JSONRPC2_TO_HTTP_CODE = {
29
+ PARSE_ERROR: 400,
30
+ BAD_REQUEST: 400,
31
+ NOT_FOUND: 404,
32
+ INTERNAL_SERVER_ERROR: 500,
33
+ UNAUTHORIZED: 401,
34
+ FORBIDDEN: 403,
35
+ TIMEOUT: 408,
36
+ CONFLICT: 409,
37
+ CLIENT_CLOSED_REQUEST: 499,
38
+ PRECONDITION_FAILED: 412,
39
+ PAYLOAD_TOO_LARGE: 413,
40
+ METHOD_NOT_SUPPORTED: 405,
41
+ TOO_MANY_REQUESTS: 429,
42
+ };
43
+ function getStatusCodeFromKey(code) {
44
+ return JSONRPC2_TO_HTTP_CODE[code] ?? 500;
45
+ }
46
+ function getHTTPStatusCode(json) {
47
+ const arr = Array.isArray(json) ? json : [json];
48
+ const httpStatuses = new Set(arr.map((res) => {
49
+ if ('error' in res) {
50
+ const data = res.error.data;
51
+ if (typeof data.httpStatus === 'number') {
52
+ return data.httpStatus;
53
+ }
54
+ const code = TRPC_ERROR_CODES_BY_NUMBER[res.error.code];
55
+ return getStatusCodeFromKey(code);
56
+ }
57
+ return 200;
58
+ }));
59
+ if (httpStatuses.size !== 1) {
60
+ return 207;
61
+ }
62
+ const httpStatus = httpStatuses.values().next().value;
63
+ return httpStatus;
64
+ }
65
+ function getHTTPStatusCodeFromError(error) {
66
+ const { code } = error;
67
+ return getStatusCodeFromKey(code);
68
+ }
69
+
70
+ /**
71
+ * Create an object without inheriting anything from `Object.prototype`
72
+ * @internal
73
+ */
74
+ function omitPrototype(obj) {
75
+ return Object.assign(Object.create(null), obj);
76
+ }
77
+
78
+ const procedureTypes = ['query', 'mutation', 'subscription'];
79
+
80
+ function isRouter(procedureOrRouter) {
81
+ return 'router' in procedureOrRouter._def;
82
+ }
83
+ const emptyRouter = {
84
+ _ctx: null,
85
+ _errorShape: null,
86
+ _meta: null,
87
+ queries: {},
88
+ mutations: {},
89
+ subscriptions: {},
90
+ errorFormatter: defaultFormatter,
91
+ transformer: defaultTransformer,
92
+ };
93
+ /**
94
+ * Reserved words that can't be used as router or procedure names
95
+ */
96
+ const reservedWords = [
97
+ /**
98
+ * Then is a reserved word because otherwise we can't return a promise that returns a Proxy
99
+ * since JS will think that `.then` is something that exists
100
+ */
101
+ 'then',
102
+ ];
103
+ /**
104
+ * @internal
105
+ */
106
+ function createRouterFactory(config) {
107
+ return function createRouterInner(procedures) {
108
+ const reservedWordsUsed = new Set(Object.keys(procedures).filter((v) => reservedWords.includes(v)));
109
+ if (reservedWordsUsed.size > 0) {
110
+ throw new Error('Reserved words used in `router({})` call: ' +
111
+ Array.from(reservedWordsUsed).join(', '));
112
+ }
113
+ const routerProcedures = omitPrototype({});
114
+ function recursiveGetPaths(procedures, path = '') {
115
+ for (const [key, procedureOrRouter] of Object.entries(procedures ?? {})) {
116
+ const newPath = `${path}${key}`;
117
+ if (isRouter(procedureOrRouter)) {
118
+ recursiveGetPaths(procedureOrRouter._def.procedures, `${newPath}.`);
119
+ continue;
120
+ }
121
+ if (routerProcedures[newPath]) {
122
+ throw new Error(`Duplicate key: ${newPath}`);
123
+ }
124
+ routerProcedures[newPath] = procedureOrRouter;
125
+ }
126
+ }
127
+ recursiveGetPaths(procedures);
128
+ const _def = {
129
+ _config: config,
130
+ router: true,
131
+ procedures: routerProcedures,
132
+ ...emptyRouter,
133
+ record: procedures,
134
+ queries: Object.entries(routerProcedures)
135
+ .filter((pair) => pair[1]._def.query)
136
+ .reduce((acc, [key, val]) => ({ ...acc, [key]: val }), {}),
137
+ mutations: Object.entries(routerProcedures)
138
+ .filter((pair) => pair[1]._def.mutation)
139
+ .reduce((acc, [key, val]) => ({ ...acc, [key]: val }), {}),
140
+ subscriptions: Object.entries(routerProcedures)
141
+ .filter((pair) => pair[1]._def.subscription)
142
+ .reduce((acc, [key, val]) => ({ ...acc, [key]: val }), {}),
143
+ };
144
+ const router = {
145
+ ...procedures,
146
+ _def,
147
+ createCaller(ctx) {
148
+ const proxy = createRecursiveProxy(({ path, args }) => {
149
+ // interop mode
150
+ if (path.length === 1 &&
151
+ procedureTypes.includes(path[0])) {
152
+ return callProcedure({
153
+ procedures: _def.procedures,
154
+ path: args[0],
155
+ rawInput: args[1],
156
+ ctx,
157
+ type: path[0],
158
+ });
159
+ }
160
+ const fullPath = path.join('.');
161
+ const procedure = _def.procedures[fullPath];
162
+ let type = 'query';
163
+ if (procedure._def.mutation) {
164
+ type = 'mutation';
165
+ }
166
+ else if (procedure._def.subscription) {
167
+ type = 'subscription';
168
+ }
169
+ return procedure({
170
+ path: fullPath,
171
+ rawInput: args[0],
172
+ ctx,
173
+ type,
174
+ });
175
+ });
176
+ return proxy;
177
+ },
178
+ getErrorShape(opts) {
179
+ const { path, error } = opts;
180
+ const { code } = opts.error;
181
+ const shape = {
182
+ message: error.message,
183
+ code: TRPC_ERROR_CODES_BY_KEY[code],
184
+ data: {
185
+ code,
186
+ httpStatus: getHTTPStatusCodeFromError(error),
187
+ },
188
+ };
189
+ if (config.isDev && typeof opts.error.stack === 'string') {
190
+ shape.data.stack = opts.error.stack;
191
+ }
192
+ if (typeof path === 'string') {
193
+ shape.data.path = path;
194
+ }
195
+ return this._def._config.errorFormatter({ ...opts, shape });
196
+ },
197
+ };
198
+ return router;
199
+ };
200
+ }
201
+ /**
202
+ * @internal
203
+ */
204
+ function callProcedure(opts) {
205
+ const { type, path } = opts;
206
+ if (!(path in opts.procedures) || !opts.procedures[path]?._def[type]) {
207
+ throw new TRPCError({
208
+ code: 'NOT_FOUND',
209
+ message: `No "${type}"-procedure on path "${path}"`,
210
+ });
211
+ }
212
+ const procedure = opts.procedures[path];
213
+ return procedure(opts);
214
+ }
215
+
216
+ /**
217
+ * The default check to see if we're in a server
218
+ */
219
+ const isServerDefault = typeof window === 'undefined' ||
220
+ 'Deno' in window ||
221
+ globalThis.process?.env?.NODE_ENV === 'test' ||
222
+ !!globalThis.process?.env?.JEST_WORKER_ID ||
223
+ !!globalThis.process?.env?.VITEST_WORKER_ID;
224
+
225
+ export { TRPC_ERROR_CODES_BY_NUMBER as T, defaultTransformer as a, getDataTransformer as b, createRouterFactory as c, defaultFormatter as d, callProcedure as e, getHTTPStatusCode as f, getHTTPStatusCodeFromError as g, isServerDefault as i, procedureTypes as p };
@@ -1,6 +1,7 @@
1
1
  export type { AnyRouter, ProcedureRecord, ProcedureRouterRecord, CreateRouterInner, } from './router';
2
2
  export { callProcedure } from './router';
3
3
  export type { Procedure, AnyProcedure, AnyQueryProcedure, AnyMutationProcedure, AnySubscriptionProcedure, ProcedureParams, ProcedureArgs, ProcedureOptions, } from './procedure';
4
+ export type { inferParser } from './parser';
4
5
  export { createInputMiddleware, createOutputMiddleware } from './middleware';
5
6
  export { initTRPC } from './initTRPC';
6
7
  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,GAClB,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,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE7E,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,GAClB,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;AAE7E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,cAAc,SAAS,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { ErrorFormatter } from '../../error/formatter';
2
+ import type { TRPCErrorShape } from '../../rpc';
2
3
  /**
3
4
  * The initial generics that are used in the init function
4
5
  * @internal
@@ -27,7 +28,9 @@ export interface RuntimeConfig<TTypes extends RootConfigTypes> {
27
28
  * Use custom error formatting
28
29
  * @link https://trpc.io/docs/error-formatting
29
30
  */
30
- errorFormatter: ErrorFormatter<TTypes['ctx'], any>;
31
+ errorFormatter: ErrorFormatter<TTypes['ctx'], TRPCErrorShape<number> & {
32
+ [key: string]: any;
33
+ }>;
31
34
  /**
32
35
  * Allow `@trpc/server` to run in non-server environments
33
36
  * @warning **Use with caution**, this should likely mainly be used within testing.
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/core/internals/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,OAIa,CAAC;AAE5C;;;GAGG;AACH,MAAM,WAAW,aAAa,CAAC,MAAM,SAAS,eAAe;IAC3D;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IACnC;;;OAGG;IACH,cAAc,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;IACnD;;;;OAIG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,oBAAY,qBAAqB,CAAC,SAAS,SAAS,eAAe,IACjE,SAAS,CAAC;AAEZ;;;;GAIG;AACH,MAAM,WAAW,UAAU,CAAC,SAAS,SAAS,eAAe,CAC3D,SAAQ,aAAa,CAAC,SAAS,CAAC;IAChC,MAAM,EAAE,SAAS,CAAC;CACnB;AAED;;GAEG;AACH,oBAAY,aAAa,GAAG,UAAU,CAAC;IACrC,GAAG,EAAE,GAAG,CAAC;IACT,IAAI,EAAE,GAAG,CAAC;IACV,UAAU,EAAE,GAAG,CAAC;IAChB,WAAW,EAAE,GAAG,CAAC;CAClB,CAAC,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/core/internals/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,OAKe,CAAC;AAE9C;;;GAGG;AACH,MAAM,WAAW,aAAa,CAAC,MAAM,SAAS,eAAe;IAC3D;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IACnC;;;OAGG;IACH,cAAc,EAAE,cAAc,CAC5B,MAAM,CAAC,KAAK,CAAC,EACb,cAAc,CAAC,MAAM,CAAC,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAChD,CAAC;IACF;;;;OAIG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,oBAAY,qBAAqB,CAAC,SAAS,SAAS,eAAe,IACjE,SAAS,CAAC;AAEZ;;;;GAIG;AACH,MAAM,WAAW,UAAU,CAAC,SAAS,SAAS,eAAe,CAC3D,SAAQ,aAAa,CAAC,SAAS,CAAC;IAChC,MAAM,EAAE,SAAS,CAAC;CACnB;AAED;;GAEG;AACH,oBAAY,aAAa,GAAG,UAAU,CAAC;IACrC,GAAG,EAAE,GAAG,CAAC;IACT,IAAI,EAAE,GAAG,CAAC;IACV,UAAU,EAAE,GAAG,CAAC;IAChB,WAAW,EAAE,GAAG,CAAC;CAClB,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { InferOptional, MaybePromise, Simplify, UndefinedKeys } from '../../types';
1
+ import { MaybePromise, Simplify } from '../../types';
2
2
  import { MiddlewareBuilder, MiddlewareFunction } from '../middleware';
3
3
  import { Parser, inferParser } from '../parser';
4
4
  import { Procedure, ProcedureParams } from '../procedure';
@@ -22,10 +22,7 @@ export interface BuildProcedure<TType extends ProcedureType, TParams extends Pro
22
22
  _output_out: TOutput;
23
23
  }> : TParams> {
24
24
  }
25
- declare type Merge<TType, TWith> = {
26
- [TKey in keyof TType | keyof TWith]: TKey extends keyof TType ? TKey extends keyof TWith ? TType[TKey] & TWith[TKey] : TType[TKey] : TWith[TKey & keyof TWith];
27
- };
28
- declare type OverwriteIfDefined<TType, TWith> = UnsetMarker extends TType ? TWith : Simplify<InferOptional<Merge<TType, TWith>, UndefinedKeys<Merge<TType, TWith>>>>;
25
+ declare type OverwriteIfDefined<TType, TWith> = UnsetMarker extends TType ? TWith : Simplify<TType & TWith>;
29
26
  declare type ErrorMessage<TMessage extends string> = TMessage;
30
27
  export declare type ProcedureBuilderDef<TParams extends ProcedureParams> = {
31
28
  inputs: Parser[];
@@ -42,7 +39,7 @@ export interface ProcedureBuilder<TParams extends ProcedureParams> {
42
39
  /**
43
40
  * Add an input parser to the procedure.
44
41
  */
45
- input<$Parser extends Parser>(schema: TParams['_input_out'] extends UnsetMarker ? $Parser : inferParser<$Parser>['out'] extends Record<string, unknown> ? TParams['_input_out'] extends Record<string, unknown> ? $Parser : ErrorMessage<'All input parsers did not resolve to an object'> : ErrorMessage<'All input parsers did not resolve to an object'>): ProcedureBuilder<{
42
+ input<$Parser extends Parser>(schema: TParams['_input_out'] extends UnsetMarker ? $Parser : inferParser<$Parser>['out'] extends Record<string, unknown> | undefined ? TParams['_input_out'] extends Record<string, unknown> | undefined ? undefined extends inferParser<$Parser>['out'] ? undefined extends TParams['_input_out'] ? $Parser : ErrorMessage<'Cannot chain an optional parser to a required parser'> : $Parser : ErrorMessage<'All input parsers did not resolve to an object'> : ErrorMessage<'All input parsers did not resolve to an object'>): ProcedureBuilder<{
46
43
  _config: TParams['_config'];
47
44
  _meta: TParams['_meta'];
48
45
  _ctx_out: TParams['_ctx_out'];
@@ -1 +1 @@
1
- {"version":3,"file":"procedureBuilder.d.ts","sourceRoot":"","sources":["../../../src/core/internals/procedureBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"procedureBuilder.d.ts","sourceRoot":"","sources":["../../../src/core/internals/procedureBuilder.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { TRPC_ERROR_CODE_KEY } from '../rpc/codes';
2
2
  export declare class TRPCError extends Error {
3
3
  readonly cause?: Error | undefined;
4
- readonly code: "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "BAD_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "CONFLICT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "TOO_MANY_REQUESTS" | "CLIENT_CLOSED_REQUEST";
4
+ readonly code: "PARSE_ERROR" | "BAD_REQUEST" | "INTERNAL_SERVER_ERROR" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "CONFLICT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "TOO_MANY_REQUESTS" | "CLIENT_CLOSED_REQUEST";
5
5
  constructor(opts: {
6
6
  message?: string;
7
7
  code: TRPC_ERROR_CODE_KEY;
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var config = require('../config-d356ff77.js');
6
- var resolveHTTPResponse = require('../resolveHTTPResponse-3408bbf7.js');
5
+ var config = require('../config-cc5b2d45.js');
6
+ var resolveHTTPResponse = require('../resolveHTTPResponse-6cffb0ce.js');
7
7
  require('../TRPCError-bd37df84.js');
8
8
  require('../codes-e0ea0f4c.js');
9
9
  require('../index-4d2d31b6.js');
@@ -1,5 +1,5 @@
1
- export { T as TRPC_ERROR_CODES_BY_NUMBER, f as getHTTPStatusCode, g as getHTTPStatusCodeFromError } from '../config-4ca0221b.mjs';
2
- export { r as resolveHTTPResponse } from '../resolveHTTPResponse-b831e644.mjs';
1
+ export { T as TRPC_ERROR_CODES_BY_NUMBER, f as getHTTPStatusCode, g as getHTTPStatusCodeFromError } from '../config-cd794c2a.mjs';
2
+ export { r as resolveHTTPResponse } from '../resolveHTTPResponse-7a4f75b3.mjs';
3
3
  import '../TRPCError-7de0a793.mjs';
4
4
  import '../codes-52c11119.mjs';
5
5
  import '../index-972002da.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"resolveHTTPResponse.d.ts","sourceRoot":"","sources":["../../src/http/resolveHTTPResponse.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EAGT,kBAAkB,EAEnB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAI/C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,OAAO,EACL,sBAAsB,EAEtB,WAAW,EACX,YAAY,EACb,MAAM,mBAAmB,CAAC;AA+B3B,UAAU,yBAAyB,CACjC,OAAO,SAAS,SAAS,EACzB,QAAQ,SAAS,WAAW,CAC5B,SAAQ,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC;IACjD,aAAa,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,GAAG,EAAE,QAAQ,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;CAC1B;AAED,wBAAsB,mBAAmB,CACvC,OAAO,SAAS,SAAS,EACzB,QAAQ,SAAS,WAAW,EAC5B,IAAI,EAAE,yBAAyB,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAwM3E"}
1
+ {"version":3,"file":"resolveHTTPResponse.d.ts","sourceRoot":"","sources":["../../src/http/resolveHTTPResponse.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EAGT,kBAAkB,EAEnB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAI/C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,OAAO,EACL,sBAAsB,EAEtB,WAAW,EACX,YAAY,EACb,MAAM,mBAAmB,CAAC;AA+B3B,UAAU,yBAAyB,CACjC,OAAO,SAAS,SAAS,EACzB,QAAQ,SAAS,WAAW,CAC5B,SAAQ,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC;IACjD,aAAa,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,GAAG,EAAE,QAAQ,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;CAC1B;AAED,wBAAsB,mBAAmB,CACvC,OAAO,SAAS,SAAS,EACzB,QAAQ,SAAS,WAAW,EAC5B,IAAI,EAAE,yBAAyB,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAyM3E"}
@@ -0,0 +1,47 @@
1
+ const noop = () => {
2
+ // noop
3
+ };
4
+ function createInnerProxy(callback, path) {
5
+ const proxy = new Proxy(noop, {
6
+ get(_obj, key) {
7
+ if (typeof key !== 'string' || key === 'then') {
8
+ // special case for if the proxy is accidentally treated
9
+ // like a PromiseLike (like in `Promise.resolve(proxy)`)
10
+ return undefined;
11
+ }
12
+ return createInnerProxy(callback, [...path, key]);
13
+ },
14
+ apply(_1, _2, args) {
15
+ return callback({
16
+ args,
17
+ path,
18
+ });
19
+ },
20
+ });
21
+ return proxy;
22
+ }
23
+ /**
24
+ * Creates a proxy that calls the callback with the path and arguments
25
+ *
26
+ * @internal
27
+ */
28
+ const createRecursiveProxy = (callback) => createInnerProxy(callback, []);
29
+ /**
30
+ * Used in place of `new Proxy` where each handler will map 1 level deep to another value.
31
+ *
32
+ * @internal
33
+ */
34
+ const createFlatProxy = (callback) => {
35
+ return new Proxy(noop, {
36
+ get(_obj, name) {
37
+ if (typeof name !== 'string' || name === 'then') {
38
+ // special case for if the proxy is accidentally treated
39
+ // like a PromiseLike (like in `Promise.resolve(proxy)`)
40
+ return undefined;
41
+ }
42
+ return callback(name);
43
+ },
44
+ });
45
+ };
46
+
47
+ export { createRecursiveProxy as a, createFlatProxy as c };
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var config = require('./config-d356ff77.js');
5
+ var config = require('./config-cc5b2d45.js');
6
6
  var TRPCError = require('./TRPCError-bd37df84.js');
7
7
  var codes = require('./codes-e0ea0f4c.js');
8
8
  var index = require('./index-4d2d31b6.js');
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { c as createRouterFactory, d as defaultFormatter, g as getHTTPStatusCodeFromError, a as defaultTransformer, b as getDataTransformer$1, i as isServerDefault } from './config-4ca0221b.mjs';
2
- export { e as callProcedure, a as defaultTransformer, b as getDataTransformer, p as procedureTypes } from './config-4ca0221b.mjs';
1
+ import { c as createRouterFactory, d as defaultFormatter, g as getHTTPStatusCodeFromError, a as defaultTransformer, b as getDataTransformer$1, i as isServerDefault } from './config-cd794c2a.mjs';
2
+ export { e as callProcedure, a as defaultTransformer, b as getDataTransformer, p as procedureTypes } from './config-cd794c2a.mjs';
3
3
  import { T as TRPCError, g as getCauseFromUnknown, a as getTRPCErrorFromUnknown } from './TRPCError-7de0a793.mjs';
4
4
  export { T as TRPCError } from './TRPCError-7de0a793.mjs';
5
5
  import { T as TRPC_ERROR_CODES_BY_KEY } from './codes-52c11119.mjs';
@@ -2,10 +2,9 @@
2
2
  * These types have to be exported so users can generate their own types definitions files
3
3
  */
4
4
  export type { DefaultErrorShape } from './error/formatter';
5
- export type { MergeRouters } from './core/internals/mergeRouters';
5
+ export type { mergeRouters } from './core/internals/mergeRouters';
6
6
  export type { RootConfig, AnyRootConfig } from './core/internals/config';
7
7
  export type { ProcedureBuilder, BuildProcedure, } from './core/internals/procedureBuilder';
8
8
  export type { Overwrite, unsetMarker } from './core/internals/utils';
9
- export type { MiddlewareFunction } from './core/middleware';
10
- export type { Router, RouterDef } from './core/router';
9
+ export type { MiddlewareFunction, MiddlewareBuilder } from './core/middleware';
11
10
  //# sourceMappingURL=internals.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"internals.d.ts","sourceRoot":"","sources":["../src/internals.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACzE,YAAY,EACV,gBAAgB,EAChB,cAAc,GACf,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrE,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"internals.d.ts","sourceRoot":"","sources":["../src/internals.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACzE,YAAY,EACV,gBAAgB,EAChB,cAAc,GACf,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrE,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { r as resolveHTTPResponse } from './resolveHTTPResponse-b831e644.mjs';
1
+ import { r as resolveHTTPResponse } from './resolveHTTPResponse-7a4f75b3.mjs';
2
2
  import { T as TRPCError } from './TRPCError-7de0a793.mjs';
3
3
 
4
4
  async function getPostBody(opts) {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var resolveHTTPResponse = require('./resolveHTTPResponse-3408bbf7.js');
3
+ var resolveHTTPResponse = require('./resolveHTTPResponse-6cffb0ce.js');
4
4
  var TRPCError = require('./TRPCError-bd37df84.js');
5
5
 
6
6
  async function getPostBody(opts) {
@@ -0,0 +1,76 @@
1
+ import { r as resolveHTTPResponse } from './resolveHTTPResponse-fed650e4.js';
2
+ import { T as TRPCError } from './TRPCError-ef1ceb74.js';
3
+
4
+ async function getPostBody(opts) {
5
+ const { req, maxBodySize = Infinity } = opts;
6
+ return new Promise((resolve) => {
7
+ if ('body' in req) {
8
+ resolve({ ok: true, data: req.body });
9
+ return;
10
+ }
11
+ let body = '';
12
+ let hasBody = false;
13
+ req.on('data', function (data) {
14
+ body += data;
15
+ hasBody = true;
16
+ if (body.length > maxBodySize) {
17
+ resolve({
18
+ ok: false,
19
+ error: new TRPCError({ code: 'PAYLOAD_TOO_LARGE' }),
20
+ });
21
+ req.socket.destroy();
22
+ }
23
+ });
24
+ req.on('end', () => {
25
+ resolve({
26
+ ok: true,
27
+ data: hasBody ? body : undefined,
28
+ });
29
+ });
30
+ });
31
+ }
32
+
33
+ async function nodeHTTPRequestHandler(opts) {
34
+ const createContext = async function _createContext() {
35
+ return await opts.createContext?.(opts);
36
+ };
37
+ const { path, router } = opts;
38
+ const bodyResult = await getPostBody(opts);
39
+ const query = opts.req.query
40
+ ? new URLSearchParams(opts.req.query)
41
+ : new URLSearchParams(opts.req.url.split('?')[1]);
42
+ const req = {
43
+ method: opts.req.method,
44
+ headers: opts.req.headers,
45
+ query,
46
+ body: bodyResult.ok ? bodyResult.data : undefined,
47
+ };
48
+ const result = await resolveHTTPResponse({
49
+ batching: opts.batching,
50
+ responseMeta: opts.responseMeta,
51
+ path,
52
+ createContext,
53
+ router,
54
+ req,
55
+ error: bodyResult.ok ? null : bodyResult.error,
56
+ onError(o) {
57
+ opts?.onError?.({
58
+ ...o,
59
+ req: opts.req,
60
+ });
61
+ },
62
+ });
63
+ const { res } = opts;
64
+ if ('status' in result && (!res.statusCode || res.statusCode === 200)) {
65
+ res.statusCode = result.status;
66
+ }
67
+ for (const [key, value] of Object.entries(result.headers ?? {})) {
68
+ if (typeof value === 'undefined') {
69
+ continue;
70
+ }
71
+ res.setHeader(key, value);
72
+ }
73
+ res.end(result.body);
74
+ }
75
+
76
+ export { nodeHTTPRequestHandler as n };
@@ -0,0 +1,83 @@
1
+ function identity(x) {
2
+ return x;
3
+ }
4
+
5
+ /** @internal */
6
+ function pipeFromArray(fns) {
7
+ if (fns.length === 0) {
8
+ return identity;
9
+ }
10
+ if (fns.length === 1) {
11
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
12
+ return fns[0];
13
+ }
14
+ return function piped(input) {
15
+ return fns.reduce((prev, fn) => fn(prev), input);
16
+ };
17
+ }
18
+
19
+ function isObservable(x) {
20
+ return typeof x === 'object' && x !== null && 'subscribe' in x;
21
+ }
22
+ function observable(subscribe) {
23
+ const self = {
24
+ subscribe(observer) {
25
+ let teardownRef = null;
26
+ let isDone = false;
27
+ let unsubscribed = false;
28
+ let teardownImmediately = false;
29
+ function unsubscribe() {
30
+ if (teardownRef === null) {
31
+ teardownImmediately = true;
32
+ return;
33
+ }
34
+ if (unsubscribed) {
35
+ return;
36
+ }
37
+ unsubscribed = true;
38
+ if (typeof teardownRef === 'function') {
39
+ teardownRef();
40
+ }
41
+ else if (teardownRef) {
42
+ teardownRef.unsubscribe();
43
+ }
44
+ }
45
+ teardownRef = subscribe({
46
+ next(value) {
47
+ if (isDone) {
48
+ return;
49
+ }
50
+ observer.next?.(value);
51
+ },
52
+ error(err) {
53
+ if (isDone) {
54
+ return;
55
+ }
56
+ isDone = true;
57
+ observer.error?.(err);
58
+ unsubscribe();
59
+ },
60
+ complete() {
61
+ if (isDone) {
62
+ return;
63
+ }
64
+ isDone = true;
65
+ observer.complete?.();
66
+ unsubscribe();
67
+ },
68
+ });
69
+ if (teardownImmediately) {
70
+ unsubscribe();
71
+ }
72
+ return {
73
+ unsubscribe,
74
+ };
75
+ },
76
+ pipe(...operations) {
77
+ return pipeFromArray(operations)(self);
78
+ },
79
+ };
80
+ return self;
81
+ }
82
+
83
+ export { isObservable as i, observable as o };
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var config = require('./config-d356ff77.js');
3
+ var config = require('./config-cc5b2d45.js');
4
4
  var TRPCError = require('./TRPCError-bd37df84.js');
5
5
  var transformTRPCResponse = require('./transformTRPCResponse-d2700b72.js');
6
6
 
@@ -77,7 +77,7 @@ async function resolveHTTPResponse(opts) {
77
77
  if (isBatchCall && !batchingEnabled) {
78
78
  throw new Error(`Batching is not enabled on the server`);
79
79
  }
80
- /* istanbul ignore if */ if (type === 'subscription') {
80
+ /* istanbul ignore if -- @preserve */ if (type === 'subscription') {
81
81
  throw new TRPCError.TRPCError({
82
82
  message: 'Subscriptions should use wsLink',
83
83
  code: 'METHOD_NOT_SUPPORTED'
@@ -103,7 +103,7 @@ async function resolveHTTPResponse(opts) {
103
103
  0: deserializeInputValue(rawInput)
104
104
  };
105
105
  }
106
- /* istanbul ignore if */ if (rawInput == null || typeof rawInput !== 'object' || Array.isArray(rawInput)) {
106
+ /* istanbul ignore if -- @preserve */ if (rawInput == null || typeof rawInput !== 'object' || Array.isArray(rawInput)) {
107
107
  throw new TRPCError.TRPCError({
108
108
  code: 'BAD_REQUEST',
109
109
  message: '"input" needs to be an object when doing a batch call'
@@ -182,6 +182,7 @@ async function resolveHTTPResponse(opts) {
182
182
  // - `createContext()` throws
183
183
  // - post body is too large
184
184
  // - input deserialization fails
185
+ // - `errorFormatter` return value is malformed
185
186
  const error = TRPCError.getTRPCErrorFromUnknown(cause);
186
187
  onError?.({
187
188
  error,