@trpc/server 10.23.0 → 10.24.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.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var nodeHTTPRequestHandler = require('../nodeHTTPRequestHandler-953c8f9a.js');
5
+ var nodeHTTPRequestHandler = require('../nodeHTTPRequestHandler-ace6dac5.js');
6
6
  require('../resolveHTTPResponse-a7abb046.js');
7
7
  require('../config-e6e74385.js');
8
8
  require('../TRPCError-16b2e52d.js');
@@ -1,4 +1,4 @@
1
- import { n as nodeHTTPRequestHandler } from '../nodeHTTPRequestHandler-fcbe1351.mjs';
1
+ import { n as nodeHTTPRequestHandler } from '../nodeHTTPRequestHandler-f0efcff4.mjs';
2
2
  import '../resolveHTTPResponse-e1286cb3.mjs';
3
3
  import '../config-f0387de5.mjs';
4
4
  import '../TRPCError-2b10c8d2.mjs';
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var TRPCError = require('../TRPCError-16b2e52d.js');
6
- var nodeHTTPRequestHandler = require('../nodeHTTPRequestHandler-953c8f9a.js');
6
+ var nodeHTTPRequestHandler = require('../nodeHTTPRequestHandler-ace6dac5.js');
7
7
  require('../resolveHTTPResponse-a7abb046.js');
8
8
  require('../config-e6e74385.js');
9
9
  require('../codes-0a561c20.js');
@@ -1,5 +1,5 @@
1
1
  import { T as TRPCError } from '../TRPCError-2b10c8d2.mjs';
2
- import { n as nodeHTTPRequestHandler } from '../nodeHTTPRequestHandler-fcbe1351.mjs';
2
+ import { n as nodeHTTPRequestHandler } from '../nodeHTTPRequestHandler-f0efcff4.mjs';
3
3
  import '../resolveHTTPResponse-e1286cb3.mjs';
4
4
  import '../config-f0387de5.mjs';
5
5
  import '../codes-e5d244b6.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"getPostBody.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/node-http/content-type/json/getPostBody.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,wBAAsB,WAAW,CAAC,IAAI,EAAE;IACtC,GAAG,EAAE,eAAe,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,UAAU,CAAC,CA4BtB"}
1
+ {"version":3,"file":"getPostBody.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/node-http/content-type/json/getPostBody.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,wBAAsB,WAAW,CAAC,IAAI,EAAE;IACtC,GAAG,EAAE,eAAe,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,UAAU,CAAC,CAiCtB"}
@@ -13,7 +13,8 @@ async function getPostBody(opts) {
13
13
  resolve({
14
14
  ok: true,
15
15
  data: req.body,
16
- preprocessed: true
16
+ // If the request headers specifies a content-type, we assume that the body has been preprocessed
17
+ preprocessed: req.headers['content-type'] === 'application/json'
17
18
  });
18
19
  return;
19
20
  }
@@ -9,7 +9,8 @@ async function getPostBody(opts) {
9
9
  resolve({
10
10
  ok: true,
11
11
  data: req.body,
12
- preprocessed: true
12
+ // If the request headers specifies a content-type, we assume that the body has been preprocessed
13
+ preprocessed: req.headers['content-type'] === 'application/json'
13
14
  });
14
15
  return;
15
16
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var nodeHTTPRequestHandler = require('../../nodeHTTPRequestHandler-953c8f9a.js');
5
+ var nodeHTTPRequestHandler = require('../../nodeHTTPRequestHandler-ace6dac5.js');
6
6
  require('../../resolveHTTPResponse-a7abb046.js');
7
7
  require('../../config-e6e74385.js');
8
8
  require('../../TRPCError-16b2e52d.js');
@@ -1,4 +1,4 @@
1
- export { n as nodeHTTPRequestHandler } from '../../nodeHTTPRequestHandler-fcbe1351.mjs';
1
+ export { n as nodeHTTPRequestHandler } from '../../nodeHTTPRequestHandler-f0efcff4.mjs';
2
2
  import '../../resolveHTTPResponse-e1286cb3.mjs';
3
3
  import '../../config-f0387de5.mjs';
4
4
  import '../../TRPCError-2b10c8d2.mjs';
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var http = require('node:http');
6
- var nodeHTTPRequestHandler = require('../nodeHTTPRequestHandler-953c8f9a.js');
6
+ var nodeHTTPRequestHandler = require('../nodeHTTPRequestHandler-ace6dac5.js');
7
7
  require('../resolveHTTPResponse-a7abb046.js');
8
8
  require('../config-e6e74385.js');
9
9
  require('../TRPCError-16b2e52d.js');
@@ -1,5 +1,5 @@
1
1
  import http from 'node:http';
2
- import { n as nodeHTTPRequestHandler } from '../nodeHTTPRequestHandler-fcbe1351.mjs';
2
+ import { n as nodeHTTPRequestHandler } from '../nodeHTTPRequestHandler-f0efcff4.mjs';
3
3
  import '../resolveHTTPResponse-e1286cb3.mjs';
4
4
  import '../config-f0387de5.mjs';
5
5
  import '../TRPCError-2b10c8d2.mjs';
@@ -1,4 +1,4 @@
1
- import { FilterKeys } from '../../types';
1
+ import { FilterKeys, Simplify } from '../../types';
2
2
  /**
3
3
  * @link https://github.com/remix-run/remix/blob/2248669ed59fd716e267ea41df5d665d4781f4a9/packages/remix-server-runtime/serialize.ts
4
4
  */
@@ -8,7 +8,7 @@ declare type IsAny<T> = 0 extends 1 & T ? true : false;
8
8
  declare type JsonReturnable = JsonPrimitive | undefined;
9
9
  export declare type Serialize<T> = IsAny<T> extends true ? any : T extends JsonReturnable ? T : T extends Map<any, any> | Set<any> ? object : T extends NonJsonPrimitive ? never : T extends {
10
10
  toJSON(): infer U;
11
- } ? U : T extends [] ? [] : T extends [unknown, ...unknown[]] ? SerializeTuple<T> : T extends ReadonlyArray<infer U> ? (U extends NonJsonPrimitive ? null : Serialize<U>)[] : T extends object ? SerializeObject<UndefinedToOptional<T>> : never;
11
+ } ? U : T extends [] ? [] : T extends [unknown, ...unknown[]] ? SerializeTuple<T> : T extends ReadonlyArray<infer U> ? (U extends NonJsonPrimitive ? null : Serialize<U>)[] : T extends object ? Simplify<SerializeObject<UndefinedToOptional<T>>> : never;
12
12
  /** JSON serialize [tuples](https://www.typescriptlang.org/docs/handbook/2/objects.html#tuple-types) */
13
13
  declare type SerializeTuple<T extends [unknown, ...unknown[]]> = {
14
14
  [k in keyof T]: T[k] extends NonJsonPrimitive ? null : Serialize<T[k]>;
@@ -1 +1 @@
1
- {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../../src/shared/internal/serialize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;GAEG;AACH,aAAK,aAAa,GACd,MAAM,GACN,MAAM,GACN,OAAO,GAEP,MAAM,GAEN,MAAM,GAEN,OAAO,GACP,IAAI,CAAC;AAET,aAAK,gBAAgB,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAKtD,aAAK,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAK/C,aAAK,cAAc,GAAG,aAAa,GAAG,SAAS,CAAC;AAGhD,oBAAY,SAAS,CAAC,CAAC,IACtB,KAAK,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,GAAG,GAC3B,CAAC,SAAS,cAAc,GAAG,CAAC,GAC5B,CAAC,SAAS,GAAG,CAAC,GAAG,EAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAC1C,CAAC,SAAS,gBAAgB,GAAG,KAAK,GAClC,CAAC,SAAS;IAAE,MAAM,IAAI,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GACnC,CAAC,SAAS,EAAE,GAAG,EAAE,GACjB,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,GACrD,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,GACvF,CAAC,SAAS,MAAM,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,GAC1D,KAAK,CAAC;AAEP,uGAAuG;AACvG,aAAK,cAAc,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,IAAI;KACtD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACvE,CAAC;AAEF;;;IAGI;AACJ,oBAAY,eAAe,CAAC,CAAC,SAAS,MAAM,IAAI;KAC7C,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACvE,CAAC;AAEF,aAAK,iBAAiB,CAAC,IAAI,SAAS,MAAM,IAAI,OAAO,CACnD;KACG,IAAI,IAAI,MAAM,IAAI,GAAG,SAAS,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI;CAClE,CAAC,MAAM,IAAI,CAAC,EACb,SAAS,CACV,CAAC;AAQF,aAAK,mBAAmB,CAAC,CAAC,SAAS,MAAM,IAEvC,IAAI,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG;KAE7B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;CACtE,CAAC"}
1
+ {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../../src/shared/internal/serialize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEnD;;GAEG;AACH,aAAK,aAAa,GACd,MAAM,GACN,MAAM,GACN,OAAO,GAEP,MAAM,GAEN,MAAM,GAEN,OAAO,GACP,IAAI,CAAC;AAET,aAAK,gBAAgB,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAKtD,aAAK,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAK/C,aAAK,cAAc,GAAG,aAAa,GAAG,SAAS,CAAC;AAGhD,oBAAY,SAAS,CAAC,CAAC,IACrB,KAAK,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,GAAG,GAC3B,CAAC,SAAS,cAAc,GAAG,CAAC,GAC5B,CAAC,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAC3C,CAAC,SAAS,gBAAgB,GAAG,KAAK,GAClC,CAAC,SAAS;IAAE,MAAM,IAAI,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GACnC,CAAC,SAAS,EAAE,GAAG,EAAE,GACjB,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,GACrD,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,GACvF,CAAC,SAAS,MAAM,GAAG,QAAQ,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,GACpE,KAAK,CAAC;AAER,uGAAuG;AACvG,aAAK,cAAc,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,IAAI;KACtD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACvE,CAAC;AAEF;;;IAGI;AACJ,oBAAY,eAAe,CAAC,CAAC,SAAS,MAAM,IAAI;KAC7C,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACvE,CAAC;AAEF,aAAK,iBAAiB,CAAC,IAAI,SAAS,MAAM,IAAI,OAAO,CACnD;KACG,IAAI,IAAI,MAAM,IAAI,GAAG,SAAS,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI;CAClE,CAAC,MAAM,IAAI,CAAC,EACb,SAAS,CACV,CAAC;AAQF,aAAK,mBAAmB,CAAC,CAAC,SAAS,MAAM,IAEvC,IAAI,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG;KAE7B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;CACtE,CAAC"}
@@ -1,11 +1,10 @@
1
1
  import { AnyProcedure } from '../core';
2
2
  import { inferObservableValue } from '../observable';
3
3
  import { DefaultDataTransformer } from '../transformer';
4
- import { Simplify } from '../types';
5
4
  import type { Serialize } from './internal/serialize';
6
5
  /**
7
6
  * @internal
8
7
  */
9
- export declare type inferTransformedProcedureOutput<TProcedure extends AnyProcedure> = TProcedure['_def']['_config']['transformer'] extends DefaultDataTransformer ? Simplify<Serialize<TProcedure['_def']['_output_out']>> : TProcedure['_def']['_output_out'];
8
+ export declare type inferTransformedProcedureOutput<TProcedure extends AnyProcedure> = TProcedure['_def']['_config']['transformer'] extends DefaultDataTransformer ? Serialize<TProcedure['_def']['_output_out']> : TProcedure['_def']['_output_out'];
10
9
  export declare type inferTransformedSubscriptionOutput<TProcedure extends AnyProcedure> = TProcedure['_def']['_config']['transformer'] extends DefaultDataTransformer ? Serialize<inferObservableValue<TProcedure['_def']['_output_out']>> : inferObservableValue<TProcedure['_def']['_output_out']>;
11
10
  //# sourceMappingURL=jsonify.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"jsonify.d.ts","sourceRoot":"","sources":["../../src/shared/jsonify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;GAEG;AACH,oBAAY,+BAA+B,CAAC,UAAU,SAAS,YAAY,IACzE,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,SAAS,sBAAsB,GACvE,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GACtD,UAAU,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;AAExC,oBAAY,kCAAkC,CAC5C,UAAU,SAAS,YAAY,IAC7B,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,SAAS,sBAAsB,GAC3E,SAAS,CAAC,oBAAoB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAClE,oBAAoB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"jsonify.d.ts","sourceRoot":"","sources":["../../src/shared/jsonify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;GAEG;AACH,oBAAY,+BAA+B,CAAC,UAAU,SAAS,YAAY,IACzE,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,SAAS,sBAAsB,GACvE,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,GAC5C,UAAU,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;AAExC,oBAAY,kCAAkC,CAC5C,UAAU,SAAS,YAAY,IAC7B,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,SAAS,sBAAsB,GAC3E,SAAS,CAAC,oBAAoB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAClE,oBAAoB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@trpc/server",
3
- "version": "10.23.0",
4
- "description": "tRPC Server",
3
+ "version": "10.24.0",
4
+ "description": "The tRPC server library",
5
5
  "author": "KATT",
6
6
  "license": "MIT",
7
7
  "main": "dist/index.js",
@@ -169,5 +169,5 @@
169
169
  "yup": "^1.0.0",
170
170
  "zod": "^3.0.0"
171
171
  },
172
- "gitHead": "189f81da3b02beedaf11f09f81526c5df63224b7"
172
+ "gitHead": "165ff9fe6d8c52cbdf413b1eac52d66a7c2205f0"
173
173
  }
@@ -4,7 +4,12 @@ import { getPostBody } from './getPostBody';
4
4
  test('has body', async () => {
5
5
  const body = {};
6
6
  const resolvedBody = await getPostBody({
7
- req: { body },
7
+ req: {
8
+ body,
9
+ headers: {
10
+ 'content-type': 'application/json',
11
+ },
12
+ },
8
13
  } as any);
9
14
  expect(resolvedBody).toMatchInlineSnapshot(`
10
15
  Object {
@@ -26,6 +31,8 @@ test('req as eventemitter', async () => {
26
31
  );
27
32
  events.emit('end');
28
33
  }, 5);
34
+
35
+ (events as any).headers = {};
29
36
  const result = await getPostBody({
30
37
  req: events,
31
38
  } as any);
@@ -9,7 +9,12 @@ export async function getPostBody(opts: {
9
9
  const { req, maxBodySize = Infinity } = opts;
10
10
  return new Promise((resolve) => {
11
11
  if ('body' in req) {
12
- resolve({ ok: true, data: req.body, preprocessed: true });
12
+ resolve({
13
+ ok: true,
14
+ data: req.body,
15
+ // If the request headers specifies a content-type, we assume that the body has been preprocessed
16
+ preprocessed: req.headers['content-type'] === 'application/json',
17
+ });
13
18
  return;
14
19
  }
15
20
  let body = '';
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable @typescript-eslint/naming-convention */
2
- import { FilterKeys } from '../../types';
2
+ import { FilterKeys, Simplify } from '../../types';
3
3
 
4
4
  /**
5
5
  * @link https://github.com/remix-run/remix/blob/2248669ed59fd716e267ea41df5d665d4781f4a9/packages/remix-server-runtime/serialize.ts
@@ -30,16 +30,16 @@ type JsonReturnable = JsonPrimitive | undefined;
30
30
 
31
31
  // prettier-ignore
32
32
  export type Serialize<T> =
33
- IsAny<T> extends true ? any :
34
- T extends JsonReturnable ? T :
35
- T extends Map<any,any> | Set<any> ? object :
36
- T extends NonJsonPrimitive ? never :
37
- T extends { toJSON(): infer U } ? U :
38
- T extends [] ? [] :
39
- T extends [unknown, ...unknown[]] ? SerializeTuple<T> :
40
- T extends ReadonlyArray<infer U> ? (U extends NonJsonPrimitive ? null : Serialize<U>)[] :
41
- T extends object ? SerializeObject<UndefinedToOptional<T>> :
42
- never;
33
+ IsAny<T> extends true ? any :
34
+ T extends JsonReturnable ? T :
35
+ T extends Map<any, any> | Set<any> ? object :
36
+ T extends NonJsonPrimitive ? never :
37
+ T extends { toJSON(): infer U } ? U :
38
+ T extends [] ? [] :
39
+ T extends [unknown, ...unknown[]] ? SerializeTuple<T> :
40
+ T extends ReadonlyArray<infer U> ? (U extends NonJsonPrimitive ? null : Serialize<U>)[] :
41
+ T extends object ? Simplify<SerializeObject<UndefinedToOptional<T>>> :
42
+ never;
43
43
 
44
44
  /** JSON serialize [tuples](https://www.typescriptlang.org/docs/handbook/2/objects.html#tuple-types) */
45
45
  type SerializeTuple<T extends [unknown, ...unknown[]]> = {
@@ -1,7 +1,6 @@
1
1
  import { AnyProcedure } from '../core';
2
2
  import { inferObservableValue } from '../observable';
3
3
  import { DefaultDataTransformer } from '../transformer';
4
- import { Simplify } from '../types';
5
4
  import type { Serialize } from './internal/serialize';
6
5
 
7
6
  /**
@@ -9,7 +8,7 @@ import type { Serialize } from './internal/serialize';
9
8
  */
10
9
  export type inferTransformedProcedureOutput<TProcedure extends AnyProcedure> =
11
10
  TProcedure['_def']['_config']['transformer'] extends DefaultDataTransformer
12
- ? Simplify<Serialize<TProcedure['_def']['_output_out']>>
11
+ ? Serialize<TProcedure['_def']['_output_out']>
13
12
  : TProcedure['_def']['_output_out'];
14
13
 
15
14
  export type inferTransformedSubscriptionOutput<