@trpc/server 10.45.1-canary.9 → 10.45.2-canary.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 (210) hide show
  1. package/dist/{TRPCError-2bb6a7d0.js → TRPCError-213cd8c9.js} +1 -1
  2. package/dist/{TRPCError-7e8e2a1b.mjs → TRPCError-98d44758.mjs} +1 -1
  3. package/dist/{TRPCError-0b220715.js → TRPCError-ca37bf1a.js} +1 -1
  4. package/dist/adapters/aws-lambda/index.d.ts +2 -2
  5. package/dist/adapters/aws-lambda/index.d.ts.map +1 -1
  6. package/dist/adapters/aws-lambda/index.js +4 -4
  7. package/dist/adapters/aws-lambda/index.mjs +4 -4
  8. package/dist/adapters/aws-lambda/utils.d.ts +1 -1
  9. package/dist/adapters/aws-lambda/utils.d.ts.map +1 -1
  10. package/dist/adapters/express.d.ts +2 -2
  11. package/dist/adapters/express.d.ts.map +1 -1
  12. package/dist/adapters/express.js +5 -5
  13. package/dist/adapters/express.mjs +5 -5
  14. package/dist/adapters/fastify/fastifyRequestHandler.d.ts +4 -4
  15. package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -1
  16. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts +4 -4
  17. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -1
  18. package/dist/adapters/fastify/index.js +4 -4
  19. package/dist/adapters/fastify/index.mjs +4 -4
  20. package/dist/adapters/fetch/fetchRequestHandler.d.ts +2 -2
  21. package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -1
  22. package/dist/adapters/fetch/index.js +6 -5
  23. package/dist/adapters/fetch/index.mjs +6 -5
  24. package/dist/adapters/fetch/types.d.ts +2 -2
  25. package/dist/adapters/fetch/types.d.ts.map +1 -1
  26. package/dist/adapters/lambda/index.d.ts +3 -2
  27. package/dist/adapters/lambda/index.d.ts.map +1 -1
  28. package/dist/adapters/next.d.ts +2 -2
  29. package/dist/adapters/next.d.ts.map +1 -1
  30. package/dist/adapters/next.js +5 -5
  31. package/dist/adapters/next.mjs +5 -5
  32. package/dist/adapters/node-http/content-type/form-data/fileUploadHandler.d.ts +1 -1
  33. package/dist/adapters/node-http/content-type/form-data/fileUploadHandler.d.ts.map +1 -1
  34. package/dist/adapters/node-http/content-type/form-data/index.d.ts +2 -2
  35. package/dist/adapters/node-http/content-type/form-data/index.d.ts.map +1 -1
  36. package/dist/adapters/node-http/content-type/form-data/memoryUploadHandler.d.ts +1 -1
  37. package/dist/adapters/node-http/content-type/form-data/memoryUploadHandler.d.ts.map +1 -1
  38. package/dist/adapters/node-http/content-type/form-data/streamSlice.d.ts +2 -1
  39. package/dist/adapters/node-http/content-type/form-data/streamSlice.d.ts.map +1 -1
  40. package/dist/adapters/node-http/content-type/form-data/uploadHandler.d.ts +1 -1
  41. package/dist/adapters/node-http/content-type/form-data/uploadHandler.d.ts.map +1 -1
  42. package/dist/adapters/node-http/content-type/json/getPostBody.d.ts +2 -2
  43. package/dist/adapters/node-http/content-type/json/getPostBody.d.ts.map +1 -1
  44. package/dist/adapters/node-http/content-type/json/index.js +2 -2
  45. package/dist/adapters/node-http/content-type/json/index.mjs +2 -2
  46. package/dist/adapters/node-http/index.js +5 -5
  47. package/dist/adapters/node-http/index.mjs +5 -5
  48. package/dist/adapters/node-http/internals/contentType.d.ts +3 -3
  49. package/dist/adapters/node-http/internals/contentType.d.ts.map +1 -1
  50. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts +2 -2
  51. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
  52. package/dist/adapters/node-http/types.d.ts +5 -5
  53. package/dist/adapters/node-http/types.d.ts.map +1 -1
  54. package/dist/adapters/standalone.d.ts +2 -2
  55. package/dist/adapters/standalone.d.ts.map +1 -1
  56. package/dist/adapters/standalone.js +8 -8
  57. package/dist/adapters/standalone.mjs +8 -8
  58. package/dist/adapters/ws.d.ts +5 -5
  59. package/dist/adapters/ws.d.ts.map +1 -1
  60. package/dist/adapters/ws.js +2 -2
  61. package/dist/adapters/ws.mjs +2 -2
  62. package/dist/bundle-analysis.json +121 -106
  63. package/dist/{config-930036df.js → config-194bdd43.js} +1 -1
  64. package/dist/{config-efa2782d.js → config-61497ca3.js} +1 -1
  65. package/dist/{config-e3143f14.mjs → config-d5fdbd39.mjs} +1 -1
  66. package/dist/{contentType-a229790b.js → contentType-1de645c8.js} +1 -1
  67. package/dist/{contentType-31223e57.mjs → contentType-9fd995d3.mjs} +1 -1
  68. package/dist/{contentType-0447b256.js → contentType-fb720add.js} +1 -1
  69. package/dist/core/initTRPC.d.ts +9 -8
  70. package/dist/core/initTRPC.d.ts.map +1 -1
  71. package/dist/core/internals/config.d.ts +1 -1
  72. package/dist/core/internals/config.d.ts.map +1 -1
  73. package/dist/core/internals/getParseFn.d.ts +1 -1
  74. package/dist/core/internals/getParseFn.d.ts.map +1 -1
  75. package/dist/core/internals/mergeRouters.d.ts +1 -1
  76. package/dist/core/internals/mergeRouters.d.ts.map +1 -1
  77. package/dist/core/internals/procedureBuilder.d.ts +7 -7
  78. package/dist/core/internals/procedureBuilder.d.ts.map +1 -1
  79. package/dist/core/internals/utils.d.ts +2 -2
  80. package/dist/core/internals/utils.d.ts.map +1 -1
  81. package/dist/core/middleware.d.ts +7 -7
  82. package/dist/core/middleware.d.ts.map +1 -1
  83. package/dist/core/procedure.d.ts +4 -4
  84. package/dist/core/procedure.d.ts.map +1 -1
  85. package/dist/core/router.d.ts +5 -5
  86. package/dist/core/router.d.ts.map +1 -1
  87. package/dist/core/types.d.ts +4 -4
  88. package/dist/core/types.d.ts.map +1 -1
  89. package/dist/deprecated/internals/middlewares.d.ts +2 -2
  90. package/dist/deprecated/internals/middlewares.d.ts.map +1 -1
  91. package/dist/deprecated/internals/procedure.d.ts +3 -3
  92. package/dist/deprecated/internals/procedure.d.ts.map +1 -1
  93. package/dist/deprecated/interop.d.ts +9 -9
  94. package/dist/deprecated/interop.d.ts.map +1 -1
  95. package/dist/deprecated/router.d.ts +7 -7
  96. package/dist/deprecated/router.d.ts.map +1 -1
  97. package/dist/error/TRPCError.d.ts +1 -1
  98. package/dist/error/TRPCError.d.ts.map +1 -1
  99. package/dist/error/formatter.d.ts +3 -3
  100. package/dist/error/formatter.d.ts.map +1 -1
  101. package/dist/http/contentType.d.ts +3 -3
  102. package/dist/http/contentType.d.ts.map +1 -1
  103. package/dist/http/getHTTPStatusCode.d.ts +3 -2
  104. package/dist/http/getHTTPStatusCode.d.ts.map +1 -1
  105. package/dist/http/index.js +4 -4
  106. package/dist/http/index.mjs +4 -4
  107. package/dist/http/internals/types.d.ts +5 -5
  108. package/dist/http/internals/types.d.ts.map +1 -1
  109. package/dist/http/resolveHTTPResponse.d.ts +5 -5
  110. package/dist/http/resolveHTTPResponse.d.ts.map +1 -1
  111. package/dist/http/toURL.d.ts +2 -0
  112. package/dist/http/toURL.d.ts.map +1 -0
  113. package/dist/http/types.d.ts +3 -3
  114. package/dist/http/types.d.ts.map +1 -1
  115. package/dist/index.js +2 -2
  116. package/dist/index.mjs +4 -4
  117. package/dist/internals/types.d.ts +3 -3
  118. package/dist/internals/types.d.ts.map +1 -1
  119. package/dist/{nodeHTTPRequestHandler-f5efadf5.mjs → nodeHTTPRequestHandler-97af83bc.mjs} +1 -1
  120. package/dist/{nodeHTTPRequestHandler-60853005.js → nodeHTTPRequestHandler-ad3e4860.js} +1 -1
  121. package/dist/{nodeHTTPRequestHandler-cd03d007.js → nodeHTTPRequestHandler-bd7d0ca5.js} +1 -1
  122. package/dist/observable/internals/observableToPromise.d.ts +1 -1
  123. package/dist/observable/internals/observableToPromise.d.ts.map +1 -1
  124. package/dist/observable/internals/pipe.d.ts +1 -1
  125. package/dist/observable/internals/pipe.d.ts.map +1 -1
  126. package/dist/observable/observable.d.ts +1 -1
  127. package/dist/observable/observable.d.ts.map +1 -1
  128. package/dist/observable/operators/map.d.ts +1 -1
  129. package/dist/observable/operators/map.d.ts.map +1 -1
  130. package/dist/observable/operators/share.d.ts +1 -1
  131. package/dist/observable/operators/share.d.ts.map +1 -1
  132. package/dist/observable/operators/tap.d.ts +1 -1
  133. package/dist/observable/operators/tap.d.ts.map +1 -1
  134. package/dist/{resolveHTTPResponse-37afa02e.mjs → resolveHTTPResponse-2fc435bb.mjs} +3 -3
  135. package/dist/{resolveHTTPResponse-268da4ac.js → resolveHTTPResponse-9f105277.js} +3 -3
  136. package/dist/{resolveHTTPResponse-b2ba9325.js → resolveHTTPResponse-b7a8a1c9.js} +3 -3
  137. package/dist/rpc/envelopes.d.ts +2 -2
  138. package/dist/rpc/envelopes.d.ts.map +1 -1
  139. package/dist/shared/createProxy/index.d.ts.map +1 -1
  140. package/dist/shared/getErrorShape.d.ts +3 -3
  141. package/dist/shared/getErrorShape.d.ts.map +1 -1
  142. package/dist/shared/internal/serialize.d.ts +1 -1
  143. package/dist/shared/internal/serialize.d.ts.map +1 -1
  144. package/dist/shared/jsonify.d.ts +3 -3
  145. package/dist/shared/jsonify.d.ts.map +1 -1
  146. package/dist/shared/transformTRPCResponse.d.ts +2 -2
  147. package/dist/shared/transformTRPCResponse.d.ts.map +1 -1
  148. package/dist/subscription.d.ts +1 -1
  149. package/dist/subscription.d.ts.map +1 -1
  150. package/dist/subscription.js +1 -1
  151. package/dist/subscription.mjs +1 -1
  152. package/dist/toURL-8f0ea228.mjs +6 -0
  153. package/dist/toURL-b64256fe.js +8 -0
  154. package/dist/toURL-eeeff3d1.js +8 -0
  155. package/package.json +3 -3
  156. package/src/adapters/aws-lambda/index.ts +7 -4
  157. package/src/adapters/aws-lambda/utils.ts +1 -1
  158. package/src/adapters/express.ts +3 -3
  159. package/src/adapters/fastify/fastifyRequestHandler.ts +6 -9
  160. package/src/adapters/fastify/fastifyTRPCPlugin.ts +6 -5
  161. package/src/adapters/fetch/fetchRequestHandler.ts +7 -5
  162. package/src/adapters/fetch/types.ts +2 -2
  163. package/src/adapters/lambda/index.ts +3 -5
  164. package/src/adapters/next.ts +3 -3
  165. package/src/adapters/node-http/content-type/form-data/fileUploadHandler.ts +2 -1
  166. package/src/adapters/node-http/content-type/form-data/index.ts +4 -7
  167. package/src/adapters/node-http/content-type/form-data/memoryUploadHandler.ts +2 -1
  168. package/src/adapters/node-http/content-type/form-data/streamSlice.ts +2 -1
  169. package/src/adapters/node-http/content-type/form-data/uploadHandler.ts +1 -1
  170. package/src/adapters/node-http/content-type/json/getPostBody.ts +2 -2
  171. package/src/adapters/node-http/internals/contentType.ts +3 -3
  172. package/src/adapters/node-http/nodeHTTPRequestHandler.ts +7 -6
  173. package/src/adapters/node-http/types.ts +5 -5
  174. package/src/adapters/standalone.ts +6 -8
  175. package/src/adapters/ws.ts +10 -8
  176. package/src/core/initTRPC.ts +24 -15
  177. package/src/core/internals/config.ts +1 -1
  178. package/src/core/internals/getParseFn.ts +1 -1
  179. package/src/core/internals/mergeRouters.ts +4 -8
  180. package/src/core/internals/procedureBuilder.ts +9 -10
  181. package/src/core/internals/utils.ts +2 -2
  182. package/src/core/middleware.ts +7 -7
  183. package/src/core/procedure.ts +4 -4
  184. package/src/core/router.ts +7 -6
  185. package/src/core/types.ts +4 -4
  186. package/src/deprecated/internals/middlewares.ts +2 -2
  187. package/src/deprecated/internals/procedure.ts +4 -7
  188. package/src/deprecated/interop.ts +10 -10
  189. package/src/deprecated/router.ts +11 -10
  190. package/src/error/TRPCError.ts +2 -2
  191. package/src/error/formatter.ts +3 -3
  192. package/src/http/contentType.ts +4 -4
  193. package/src/http/getHTTPStatusCode.ts +3 -2
  194. package/src/http/internals/types.ts +5 -5
  195. package/src/http/resolveHTTPResponse.ts +12 -10
  196. package/src/http/toURL.ts +7 -0
  197. package/src/http/types.ts +3 -3
  198. package/src/internals/types.ts +3 -3
  199. package/src/observable/internals/observableToPromise.ts +1 -1
  200. package/src/observable/internals/pipe.ts +1 -1
  201. package/src/observable/observable.ts +6 -1
  202. package/src/observable/operators/map.ts +1 -1
  203. package/src/observable/operators/share.ts +5 -1
  204. package/src/observable/operators/tap.ts +1 -1
  205. package/src/rpc/envelopes.ts +2 -2
  206. package/src/shared/getErrorShape.ts +3 -3
  207. package/src/shared/internal/serialize.ts +1 -1
  208. package/src/shared/jsonify.ts +3 -3
  209. package/src/shared/transformTRPCResponse.ts +2 -2
  210. package/src/subscription.ts +2 -1
@@ -1,9 +1,10 @@
1
1
  /// <reference types="@fastify/websocket" />
2
- import { FastifyInstance, FastifyReply, FastifyRequest } from 'fastify';
3
- import { FastifyHandlerOptions } from '.';
4
- import { AnyRouter } from '../../core';
5
- import { NodeHTTPCreateContextFnOptions } from '../node-http';
6
- import { applyWSSHandler, WSSHandlerOptions } from '../ws';
2
+ import type { FastifyInstance, FastifyReply, FastifyRequest } from 'fastify';
3
+ import type { FastifyHandlerOptions } from '.';
4
+ import type { AnyRouter } from '../../core';
5
+ import type { NodeHTTPCreateContextFnOptions } from '../node-http';
6
+ import type { WSSHandlerOptions } from '../ws';
7
+ import { applyWSSHandler } from '../ws';
7
8
  import { fastifyRequestHandler } from './fastifyRequestHandler';
8
9
 
9
10
  export interface FastifyTRPCPluginOptions<TRouter extends AnyRouter> {
@@ -1,8 +1,10 @@
1
- import { AnyRouter } from '../../core';
2
- import { getBatchStreamFormatter, HTTPRequest } from '../../http';
3
- import { HTTPResponse, ResponseChunk } from '../../http/internals/types';
1
+ import type { AnyRouter } from '../../core';
2
+ import type { HTTPRequest } from '../../http';
3
+ import { getBatchStreamFormatter } from '../../http';
4
+ import type { HTTPResponse, ResponseChunk } from '../../http/internals/types';
4
5
  import { resolveHTTPResponse } from '../../http/resolveHTTPResponse';
5
- import { FetchHandlerOptions } from './types';
6
+ import { toURL } from '../../http/toURL';
7
+ import type { FetchHandlerOptions } from './types';
6
8
 
7
9
  export type FetchHandlerRequestOptions<TRouter extends AnyRouter> =
8
10
  FetchHandlerOptions<TRouter> & {
@@ -26,7 +28,7 @@ export async function fetchRequestHandler<TRouter extends AnyRouter>(
26
28
  return opts.createContext?.({ req: opts.req, resHeaders });
27
29
  };
28
30
 
29
- const url = new URL(opts.req.url);
31
+ const url = toURL(opts.req.url);
30
32
 
31
33
  const pathname = trimSlashes(url.pathname);
32
34
  const endpoint = trimSlashes(opts.endpoint);
@@ -1,5 +1,5 @@
1
- import { AnyRouter, inferRouterContext } from '../../core';
2
- import { HTTPBaseHandlerOptions } from '../../http';
1
+ import type { AnyRouter, inferRouterContext } from '../../core';
2
+ import type { HTTPBaseHandlerOptions } from '../../http';
3
3
 
4
4
  export type FetchCreateContextFnOptions = {
5
5
  req: Request;
@@ -1,8 +1,6 @@
1
- import {
2
- awsLambdaRequestHandler,
3
- CreateAWSLambdaContextOptions,
4
- } from '../aws-lambda';
5
- import { APIGatewayEvent } from '../aws-lambda/utils';
1
+ import type { CreateAWSLambdaContextOptions } from '../aws-lambda';
2
+ import { awsLambdaRequestHandler } from '../aws-lambda';
3
+ import type { APIGatewayEvent } from '../aws-lambda/utils';
6
4
 
7
5
  export * from '../aws-lambda';
8
6
 
@@ -3,14 +3,14 @@ import type {
3
3
  NextApiRequest,
4
4
  NextApiResponse,
5
5
  } from 'next/types';
6
- import { AnyRouter } from '../core';
6
+ import type { AnyRouter } from '../core';
7
7
  import { TRPCError } from '../error/TRPCError';
8
8
  import { getErrorShape } from '../shared/getErrorShape';
9
- import {
9
+ import type {
10
10
  NodeHTTPCreateContextFnOptions,
11
11
  NodeHTTPHandlerOptions,
12
- nodeHTTPRequestHandler,
13
12
  } from './node-http';
13
+ import { nodeHTTPRequestHandler } from './node-http';
14
14
 
15
15
  export type CreateNextContextOptions = NodeHTTPCreateContextFnOptions<
16
16
  NextApiRequest,
@@ -18,7 +18,8 @@ import { basename, dirname, extname, resolve as resolvePath } from 'node:path';
18
18
  import { finished, Readable } from 'node:stream';
19
19
  import { promisify } from 'node:util';
20
20
  import { streamSlice } from './streamSlice';
21
- import { MaxPartSizeExceededError, UploadHandler } from './uploadHandler';
21
+ import type { UploadHandler } from './uploadHandler';
22
+ import { MaxPartSizeExceededError } from './uploadHandler';
22
23
 
23
24
  export async function readableStreamToString(
24
25
  stream: ReadableStream<Uint8Array>,
@@ -13,15 +13,12 @@ import { Readable } from 'node:stream';
13
13
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
14
14
  // @ts-ignore the type definitions for this package are borked
15
15
  import { streamMultipart } from '@web3-storage/multipart-parser';
16
- import { CombinedDataTransformer } from '../../../../transformer';
16
+ import type { CombinedDataTransformer } from '../../../../transformer';
17
17
  import { createNodeHTTPContentTypeHandler } from '../../internals/contentType';
18
- import { NodeHTTPRequest } from '../../types';
18
+ import type { NodeHTTPRequest } from '../../types';
19
19
  import { NodeOnDiskFile } from './fileUploadHandler';
20
- import {
21
- MaxBodySizeExceededError,
22
- UploadHandler,
23
- UploadHandlerPart,
24
- } from './uploadHandler';
20
+ import type { UploadHandler, UploadHandlerPart } from './uploadHandler';
21
+ import { MaxBodySizeExceededError } from './uploadHandler';
25
22
 
26
23
  const utfTextDecoder = new TextDecoder('utf-8');
27
24
 
@@ -8,7 +8,8 @@
8
8
  /**
9
9
  * @see https://github.com/remix-run/remix/blob/0bcb4a304dd2f08f6032c3bf0c3aa7eb5b976901/packages/remix-server-runtime/upload/memoryUploadHandler.ts
10
10
  */
11
- import { MaxPartSizeExceededError, UploadHandler } from './uploadHandler';
11
+ import type { UploadHandler } from './uploadHandler';
12
+ import { MaxPartSizeExceededError } from './uploadHandler';
12
13
 
13
14
  export type MemoryUploadHandlerFilterArgs = {
14
15
  filename?: string;
@@ -1,4 +1,5 @@
1
- import { Transform, TransformCallback } from 'node:stream';
1
+ import type { TransformCallback } from 'node:stream';
2
+ import { Transform } from 'node:stream';
2
3
 
3
4
  class SliceStream extends Transform {
4
5
  private indexOffset = 0;
@@ -1,4 +1,4 @@
1
- import { NodeOnDiskFile } from './fileUploadHandler';
1
+ import type { NodeOnDiskFile } from './fileUploadHandler';
2
2
 
3
3
  /**
4
4
  * @see https://github.com/remix-run/remix/blob/0bcb4a304dd2f08f6032c3bf0c3aa7eb5b976901/packages/remix-server-runtime/formData.ts
@@ -1,6 +1,6 @@
1
1
  import { TRPCError } from '../../../../error/TRPCError';
2
- import { BodyResult } from '../../../../http/contentType';
3
- import { NodeHTTPRequest } from '../../types';
2
+ import type { BodyResult } from '../../../../http/contentType';
3
+ import type { NodeHTTPRequest } from '../../types';
4
4
 
5
5
  export async function getPostBody(opts: {
6
6
  req: NodeHTTPRequest;
@@ -1,6 +1,6 @@
1
- import { AnyRouter } from '../../../core';
2
- import { BaseContentTypeHandler } from '../../../http/contentType';
3
- import {
1
+ import type { AnyRouter } from '../../../core';
2
+ import type { BaseContentTypeHandler } from '../../../http/contentType';
3
+ import type {
4
4
  NodeHTTPRequest,
5
5
  NodeHTTPRequestHandlerOptions,
6
6
  NodeHTTPResponse,
@@ -1,12 +1,13 @@
1
1
  /* eslint-disable @typescript-eslint/no-non-null-assertion */
2
- import { AnyRouter } from '../../core';
3
- import { inferRouterContext } from '../../core/types';
4
- import { getBatchStreamFormatter, HTTPRequest } from '../../http';
5
- import { HTTPResponse, ResponseChunk } from '../../http/internals/types';
2
+ import type { AnyRouter } from '../../core';
3
+ import type { inferRouterContext } from '../../core/types';
4
+ import type { HTTPRequest } from '../../http';
5
+ import { getBatchStreamFormatter } from '../../http';
6
+ import type { HTTPResponse, ResponseChunk } from '../../http/internals/types';
6
7
  import { resolveHTTPResponse } from '../../http/resolveHTTPResponse';
7
8
  import { nodeHTTPJSONContentTypeHandler } from './content-type/json';
8
- import { NodeHTTPContentTypeHandler } from './internals/contentType';
9
- import {
9
+ import type { NodeHTTPContentTypeHandler } from './internals/contentType';
10
+ import type {
10
11
  NodeHTTPRequest,
11
12
  NodeHTTPRequestHandlerOptions,
12
13
  NodeHTTPResponse,
@@ -1,8 +1,8 @@
1
- import { IncomingMessage, ServerResponse } from 'http';
2
- import { AnyRouter, inferRouterContext } from '../../core';
3
- import { HTTPBaseHandlerOptions } from '../../http';
4
- import { MaybePromise } from '../../types';
5
- import { NodeHTTPContentTypeHandler } from './internals/contentType';
1
+ import type { IncomingMessage, ServerResponse } from 'http';
2
+ import type { AnyRouter, inferRouterContext } from '../../core';
3
+ import type { HTTPBaseHandlerOptions } from '../../http';
4
+ import type { MaybePromise } from '../../types';
5
+ import type { NodeHTTPContentTypeHandler } from './internals/contentType';
6
6
 
7
7
  interface ParsedQs {
8
8
  [key: string]: ParsedQs | ParsedQs[] | string[] | string | undefined;
@@ -1,11 +1,12 @@
1
1
  /* eslint-disable @typescript-eslint/no-non-null-assertion */
2
2
  import http from 'http';
3
- import { AnyRouter } from '../core';
4
- import {
3
+ import type { AnyRouter } from '../core';
4
+ import { toURL } from '../http/toURL';
5
+ import type {
5
6
  NodeHTTPCreateContextFnOptions,
6
7
  NodeHTTPHandlerOptions,
7
- nodeHTTPRequestHandler,
8
8
  } from './node-http';
9
+ import { nodeHTTPRequestHandler } from './node-http';
9
10
 
10
11
  export type CreateHTTPHandlerOptions<TRouter extends AnyRouter> =
11
12
  NodeHTTPHandlerOptions<TRouter, http.IncomingMessage, http.ServerResponse>;
@@ -19,14 +20,11 @@ export function createHTTPHandler<TRouter extends AnyRouter>(
19
20
  opts: CreateHTTPHandlerOptions<TRouter>,
20
21
  ) {
21
22
  return async (req: http.IncomingMessage, res: http.ServerResponse) => {
22
- // if no hostname, set a dummy one
23
- const href = req.url!.startsWith('/')
24
- ? `http://127.0.0.1${req.url}`
25
- : req.url!;
23
+ const url = toURL(req.url!);
26
24
 
27
25
  // get procedure path and remove the leading slash
28
26
  // /procedure -> procedure
29
- const path = new URL(href).pathname.slice(1);
27
+ const path = url.pathname.slice(1);
30
28
 
31
29
  await nodeHTTPRequestHandler({
32
30
  // FIXME: no typecasting should be needed here
@@ -1,19 +1,21 @@
1
- import { IncomingMessage } from 'http';
2
- import { WebSocket, WebSocketServer } from 'ws';
3
- import { AnyRouter, callProcedure, inferRouterContext } from '../core';
1
+ import type { IncomingMessage } from 'http';
2
+ import type { WebSocket, WebSocketServer } from 'ws';
3
+ import type { AnyRouter, inferRouterContext } from '../core';
4
+ import { callProcedure } from '../core';
4
5
  import { getTRPCErrorFromUnknown, TRPCError } from '../error/TRPCError';
5
- import { BaseHandlerOptions } from '../internals/types';
6
- import { isObservable, Unsubscribable } from '../observable';
7
- import {
6
+ import type { BaseHandlerOptions } from '../internals/types';
7
+ import type { Unsubscribable } from '../observable';
8
+ import { isObservable } from '../observable';
9
+ import type {
8
10
  JSONRPC2,
9
- parseTRPCMessage,
10
11
  TRPCClientOutgoingMessage,
11
12
  TRPCReconnectNotification,
12
13
  TRPCResponseMessage,
13
14
  } from '../rpc';
15
+ import { parseTRPCMessage } from '../rpc';
14
16
  import { getErrorShape } from '../shared/getErrorShape';
15
17
  import { transformTRPCResponse } from '../shared/transformTRPCResponse';
16
- import {
18
+ import type {
17
19
  NodeHTTPCreateContextFnOptions,
18
20
  NodeHTTPCreateContextOption,
19
21
  } from './node-http';
@@ -1,27 +1,30 @@
1
- import {
1
+ import type {
2
2
  DefaultErrorShape,
3
- defaultFormatter,
4
3
  ErrorFormatter,
5
4
  ErrorFormatterShape,
6
5
  } from '../error/formatter';
6
+ import { defaultFormatter } from '../error/formatter';
7
7
  import { createFlatProxy } from '../shared/createProxy';
8
- import {
8
+ import type {
9
9
  DataTransformerOptions,
10
10
  DefaultDataTransformer,
11
- defaultTransformer,
12
- getDataTransformer,
13
11
  } from '../transformer';
14
- import { Unwrap } from '../types';
15
- import {
12
+ import { defaultTransformer, getDataTransformer } from '../transformer';
13
+ import type { Unwrap } from '../types';
14
+ import type {
16
15
  CreateRootConfigTypes,
17
- isServerDefault,
18
16
  RootConfig,
19
17
  RootConfigTypes,
20
18
  RuntimeConfig,
21
19
  } from './internals/config';
20
+ import { isServerDefault } from './internals/config';
22
21
  import { mergeRouters } from './internals/mergeRouters';
23
22
  import { createBuilder } from './internals/procedureBuilder';
24
- import { Overwrite, PickFirstDefined, ValidateShape } from './internals/utils';
23
+ import type {
24
+ Overwrite,
25
+ PickFirstDefined,
26
+ ValidateShape,
27
+ } from './internals/utils';
25
28
  import { createMiddlewareFactory } from './middleware';
26
29
  import { createCallerFactory, createRouterFactory } from './router';
27
30
 
@@ -37,6 +40,7 @@ type CreateRootConfigTypesFromPartial<TTypes extends PartialRootConfigTypes> =
37
40
  transformer: DataTransformerOptions;
38
41
  }>;
39
42
 
43
+ type ContextCallback = (...args: any[]) => object | Promise<object>;
40
44
  /**
41
45
  * TODO: This can be improved:
42
46
  * - We should be able to chain `.meta()`/`.context()` only once
@@ -45,12 +49,17 @@ type CreateRootConfigTypesFromPartial<TTypes extends PartialRootConfigTypes> =
45
49
  */
46
50
 
47
51
  class TRPCBuilder<TParams extends PartialRootConfigTypes = object> {
48
- context<
49
- TNewContext extends
50
- | RootConfigTypes['ctx']
51
- | ((...args: unknown[]) => RootConfigTypes['ctx']),
52
- >() {
53
- type NextParams = Overwrite<TParams, { ctx: Unwrap<TNewContext> }>;
52
+ context<TNewContext extends object | ContextCallback>() {
53
+ type $Context = TNewContext extends ContextCallback
54
+ ? Unwrap<TNewContext>
55
+ : TNewContext;
56
+
57
+ type NextParams = Overwrite<
58
+ TParams,
59
+ {
60
+ ctx: $Context;
61
+ }
62
+ >;
54
63
 
55
64
  return new TRPCBuilder<NextParams>();
56
65
  }
@@ -1,4 +1,4 @@
1
- import { ErrorFormatter } from '../../error/formatter';
1
+ import type { ErrorFormatter } from '../../error/formatter';
2
2
  import type { TRPCErrorShape } from '../../rpc';
3
3
 
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { Parser } from '../parser';
1
+ import type { Parser } from '../parser';
2
2
 
3
3
  export type ParseFn<TType> = (value: unknown) => Promise<TType> | TType;
4
4
 
@@ -1,12 +1,8 @@
1
1
  import { defaultFormatter } from '../../error/formatter';
2
- import { CombinedDataTransformer, defaultTransformer } from '../../transformer';
3
- import {
4
- AnyRouter,
5
- AnyRouterDef,
6
- createRouterFactory,
7
- Router,
8
- RouterDef,
9
- } from '../router';
2
+ import type { CombinedDataTransformer } from '../../transformer';
3
+ import { defaultTransformer } from '../../transformer';
4
+ import type { AnyRouter, AnyRouterDef, Router, RouterDef } from '../router';
5
+ import { createRouterFactory } from '../router';
10
6
  import { mergeWithoutOverrides } from './mergeWithoutOverrides';
11
7
 
12
8
  /**
@@ -1,14 +1,13 @@
1
1
  import { getTRPCErrorFromUnknown, TRPCError } from '../../error/TRPCError';
2
- import { MaybePromise, Simplify } from '../../types';
3
- import {
4
- createInputMiddleware,
5
- createOutputMiddleware,
2
+ import type { MaybePromise, Simplify } from '../../types';
3
+ import type {
6
4
  MiddlewareBuilder,
7
5
  MiddlewareFunction,
8
6
  MiddlewareResult,
9
7
  } from '../middleware';
10
- import { inferParser, Parser } from '../parser';
11
- import {
8
+ import { createInputMiddleware, createOutputMiddleware } from '../middleware';
9
+ import type { inferParser, Parser } from '../parser';
10
+ import type {
12
11
  AnyMutationProcedure,
13
12
  AnyProcedure,
14
13
  AnyQueryProcedure,
@@ -16,18 +15,18 @@ import {
16
15
  Procedure,
17
16
  ProcedureParams,
18
17
  } from '../procedure';
19
- import { ProcedureType } from '../types';
20
- import { AnyRootConfig } from './config';
18
+ import type { ProcedureType } from '../types';
19
+ import type { AnyRootConfig } from './config';
21
20
  import { getParseFn } from './getParseFn';
22
21
  import { mergeWithoutOverrides } from './mergeWithoutOverrides';
23
- import {
22
+ import type {
24
23
  DefaultValue,
25
- middlewareMarker,
26
24
  Overwrite,
27
25
  OverwriteKnown,
28
26
  ResolveOptions,
29
27
  UnsetMarker,
30
28
  } from './utils';
29
+ import { middlewareMarker } from './utils';
31
30
 
32
31
  type CreateProcedureReturnInput<
33
32
  TPrev extends ProcedureParams,
@@ -1,5 +1,5 @@
1
- import { Simplify, WithoutIndexSignature } from '../../types';
2
- import { ProcedureParams } from '../procedure';
1
+ import type { Simplify, WithoutIndexSignature } from '../../types';
2
+ import type { ProcedureParams } from '../procedure';
3
3
 
4
4
  /**
5
5
  * @internal
@@ -1,16 +1,16 @@
1
1
  import { TRPCError } from '../error/TRPCError';
2
- import { Simplify } from '../types';
3
- import { AnyRootConfig, RootConfig } from './internals/config';
4
- import { ParseFn } from './internals/getParseFn';
5
- import { ProcedureBuilderMiddleware } from './internals/procedureBuilder';
6
- import {
2
+ import type { Simplify } from '../types';
3
+ import type { AnyRootConfig, RootConfig } from './internals/config';
4
+ import type { ParseFn } from './internals/getParseFn';
5
+ import type { ProcedureBuilderMiddleware } from './internals/procedureBuilder';
6
+ import type {
7
7
  DefaultValue,
8
8
  MiddlewareMarker,
9
9
  Overwrite,
10
10
  UnsetMarker,
11
11
  } from './internals/utils';
12
- import { ProcedureParams } from './procedure';
13
- import { ProcedureType } from './types';
12
+ import type { ProcedureParams } from './procedure';
13
+ import type { ProcedureType } from './types';
14
14
 
15
15
  /**
16
16
  * @internal
@@ -1,10 +1,10 @@
1
- import { AnyRootConfig } from './internals/config';
2
- import {
1
+ import type { AnyRootConfig } from './internals/config';
2
+ import type {
3
3
  ProcedureBuilderDef,
4
4
  ProcedureCallOptions,
5
5
  } from './internals/procedureBuilder';
6
- import { UnsetMarker } from './internals/utils';
7
- import { ProcedureType } from './types';
6
+ import type { UnsetMarker } from './internals/utils';
7
+ import type { ProcedureType } from './types';
8
8
 
9
9
  type ClientContext = Record<string, unknown>;
10
10
 
@@ -1,25 +1,26 @@
1
- import { DefaultErrorShape, defaultFormatter } from '../error/formatter';
1
+ import type { DefaultErrorShape } from '../error/formatter';
2
+ import { defaultFormatter } from '../error/formatter';
2
3
  import { TRPCError } from '../error/TRPCError';
3
4
  import { getHTTPStatusCodeFromError } from '../http/getHTTPStatusCode';
4
5
  import { TRPC_ERROR_CODES_BY_KEY } from '../rpc';
5
6
  import { createRecursiveProxy } from '../shared/createProxy';
6
7
  import { defaultTransformer } from '../transformer';
7
- import { AnyRootConfig } from './internals/config';
8
+ import type { AnyRootConfig } from './internals/config';
8
9
  import { omitPrototype } from './internals/omitPrototype';
9
- import { ProcedureCallOptions } from './internals/procedureBuilder';
10
- import {
10
+ import type { ProcedureCallOptions } from './internals/procedureBuilder';
11
+ import type {
11
12
  AnyMutationProcedure,
12
13
  AnyProcedure,
13
14
  AnyQueryProcedure,
14
15
  AnySubscriptionProcedure,
15
16
  ProcedureArgs,
16
17
  } from './procedure';
17
- import {
18
+ import type {
18
19
  inferHandlerInput,
19
20
  inferProcedureOutput,
20
21
  ProcedureType,
21
- procedureTypes,
22
22
  } from './types';
23
+ import { procedureTypes } from './types';
23
24
 
24
25
  /** @internal **/
25
26
  export type ProcedureRecord = Record<string, AnyProcedure>;
package/src/core/types.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { inferObservableValue } from '../observable';
2
- import { inferTransformedProcedureOutput } from '../shared/jsonify';
3
- import { AnyProcedure, ProcedureArgs } from './procedure';
4
- import { AnyRouter, AnyRouterDef, Router } from './router';
1
+ import type { inferObservableValue } from '../observable';
2
+ import type { inferTransformedProcedureOutput } from '../shared/jsonify';
3
+ import type { AnyProcedure, ProcedureArgs } from './procedure';
4
+ import type { AnyRouter, AnyRouterDef, Router } from './router';
5
5
 
6
6
  export type inferRouterDef<TRouter extends AnyRouter> = TRouter extends Router<
7
7
  infer TParams
@@ -1,5 +1,5 @@
1
- import { TRPCError } from '../../error/TRPCError';
2
- import { ProcedureType } from '../router';
1
+ import type { TRPCError } from '../../error/TRPCError';
2
+ import type { ProcedureType } from '../router';
3
3
 
4
4
  /**
5
5
  * @deprecated
@@ -1,11 +1,8 @@
1
1
  import { getTRPCErrorFromUnknown, TRPCError } from '../../error/TRPCError';
2
- import { InferLast } from '../../types';
3
- import { ProcedureType } from '../router';
4
- import {
5
- MiddlewareFunction,
6
- middlewareMarker,
7
- MiddlewareResult,
8
- } from './middlewares';
2
+ import type { InferLast } from '../../types';
3
+ import type { ProcedureType } from '../router';
4
+ import type { MiddlewareFunction, MiddlewareResult } from './middlewares';
5
+ import { middlewareMarker } from './middlewares';
9
6
 
10
7
  export type ProcedureParserZodEsque<TInput, TOutput> = {
11
8
  _input: TInput;
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable @typescript-eslint/ban-types */
2
- import { ProcedureParams, ProcedureType } from '..';
3
- import { AnyRootConfig, RootConfig } from '../core/internals/config';
2
+ import type { ProcedureParams, ProcedureType } from '..';
3
+ import type { AnyRootConfig, RootConfig } from '../core/internals/config';
4
4
  import { getParseFnOrPassThrough } from '../core/internals/getParseFn';
5
5
  import { mergeWithoutOverrides } from '../core/internals/mergeWithoutOverrides';
6
6
  import { createBuilder } from '../core/internals/procedureBuilder';
@@ -8,21 +8,21 @@ import {
8
8
  createInputMiddleware,
9
9
  createOutputMiddleware,
10
10
  } from '../core/middleware';
11
- import { Procedure } from '../core/procedure';
12
- import {
13
- createRouterFactory,
11
+ import type { Procedure } from '../core/procedure';
12
+ import type {
14
13
  ProcedureRecord as NewProcedureRecord,
15
14
  Router as NewRouter,
16
15
  RouterDef,
17
16
  } from '../core/router';
18
- import {
17
+ import { createRouterFactory } from '../core/router';
18
+ import type {
19
19
  AnyRouter as AnyOldRouter,
20
20
  Router as OldRouter,
21
21
  } from '../deprecated/router';
22
- import { TRPCErrorShape } from '../rpc';
23
- import { CombinedDataTransformer } from '../transformer';
24
- import { Procedure as OldProcedure } from './internals/procedure';
25
- import { ProcedureRecord } from './router';
22
+ import type { TRPCErrorShape } from '../rpc';
23
+ import type { CombinedDataTransformer } from '../transformer';
24
+ import type { Procedure as OldProcedure } from './internals/procedure';
25
+ import type { ProcedureRecord } from './router';
26
26
 
27
27
  type AnyOldProcedure = OldProcedure<any, any, any, any, any, any, any, any>;
28
28
 
@@ -2,23 +2,22 @@
2
2
  import { defaultFormatter } from '../error/formatter';
3
3
  import { TRPCError } from '../error/TRPCError';
4
4
  import { getHTTPStatusCodeFromError } from '../http/getHTTPStatusCode';
5
- import { inferObservableValue, Observable } from '../observable';
6
- import {
5
+ import type { inferObservableValue, Observable } from '../observable';
6
+ import type {
7
7
  TRPC_ERROR_CODE_KEY,
8
8
  TRPC_ERROR_CODE_NUMBER,
9
- TRPC_ERROR_CODES_BY_KEY,
10
9
  TRPCErrorShape,
11
10
  } from '../rpc';
12
- import {
11
+ import { TRPC_ERROR_CODES_BY_KEY } from '../rpc';
12
+ import type {
13
13
  CombinedDataTransformer,
14
14
  DataTransformerOptions,
15
15
  DefaultDataTransformer,
16
- defaultTransformer,
17
16
  } from '../transformer';
18
- import { FlatOverwrite, ThenArg } from '../types';
19
- import { MiddlewareFunction } from './internals/middlewares';
20
- import {
21
- createProcedure,
17
+ import { defaultTransformer } from '../transformer';
18
+ import type { FlatOverwrite, ThenArg } from '../types';
19
+ import type { MiddlewareFunction } from './internals/middlewares';
20
+ import type {
22
21
  CreateProcedureOptions,
23
22
  CreateProcedureWithInput,
24
23
  CreateProcedureWithInputOutputParser,
@@ -27,7 +26,9 @@ import {
27
26
  Procedure,
28
27
  ProcedureCallOptions,
29
28
  } from './internals/procedure';
30
- import { MigrateRouter, migrateRouter } from './interop';
29
+ import { createProcedure } from './internals/procedure';
30
+ import type { MigrateRouter } from './interop';
31
+ import { migrateRouter } from './interop';
31
32
 
32
33
  export type { Procedure } from './internals/procedure';
33
34
 
@@ -1,4 +1,4 @@
1
- import { TRPC_ERROR_CODE_KEY } from '../rpc/codes';
1
+ import type { TRPC_ERROR_CODE_KEY } from '../rpc/codes';
2
2
  import { getCauseFromUnknown } from '../shared/getCauseFromUnknown';
3
3
 
4
4
  export function getTRPCErrorFromUnknown(cause: unknown): TRPCError {
@@ -45,7 +45,7 @@ export class TRPCError extends Error {
45
45
  this.name = 'TRPCError';
46
46
 
47
47
  if (!this.cause) {
48
- // idk why this is needed, but it is
48
+ // < ES2022 / < Node 16.9.0 compatability
49
49
  this.cause = cause;
50
50
  }
51
51
  }