@trpc/server 11.18.1-canary.9 → 11.19.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/dist/adapters/aws-lambda/index.cjs +16 -26
- package/dist/adapters/aws-lambda/index.d.cts +6 -16
- package/dist/adapters/aws-lambda/index.d.cts.map +1 -1
- package/dist/adapters/aws-lambda/index.d.mts +6 -16
- package/dist/adapters/aws-lambda/index.d.mts.map +1 -1
- package/dist/adapters/aws-lambda/index.mjs +13 -23
- package/dist/adapters/aws-lambda/index.mjs.map +1 -1
- package/dist/adapters/express.cjs +7 -16
- package/dist/adapters/express.d.cts +4 -11
- package/dist/adapters/express.d.cts.map +1 -1
- package/dist/adapters/express.d.mts +4 -11
- package/dist/adapters/express.d.mts.map +1 -1
- package/dist/adapters/express.mjs +6 -15
- package/dist/adapters/express.mjs.map +1 -1
- package/dist/adapters/fastify/index.cjs +11 -24
- package/dist/adapters/fastify/index.d.cts +7 -14
- package/dist/adapters/fastify/index.d.cts.map +1 -1
- package/dist/adapters/fastify/index.d.mts +7 -14
- package/dist/adapters/fastify/index.d.mts.map +1 -1
- package/dist/adapters/fastify/index.mjs +10 -23
- package/dist/adapters/fastify/index.mjs.map +1 -1
- package/dist/adapters/fetch/index.cjs +7 -12
- package/dist/adapters/fetch/index.d.cts +7 -15
- package/dist/adapters/fetch/index.d.cts.map +1 -1
- package/dist/adapters/fetch/index.d.mts +7 -15
- package/dist/adapters/fetch/index.d.mts.map +1 -1
- package/dist/adapters/fetch/index.mjs +6 -11
- package/dist/adapters/fetch/index.mjs.map +1 -1
- package/dist/adapters/next-app-dir.cjs +13 -3145
- package/dist/adapters/next-app-dir.d.cts +3 -12
- package/dist/adapters/next-app-dir.d.cts.map +1 -1
- package/dist/adapters/next-app-dir.d.mts +3 -12
- package/dist/adapters/next-app-dir.d.mts.map +1 -1
- package/dist/adapters/next-app-dir.mjs +31 -3165
- package/dist/adapters/next-app-dir.mjs.map +1 -1
- package/dist/adapters/next.cjs +8 -16
- package/dist/adapters/next.d.cts +5 -15
- package/dist/adapters/next.d.cts.map +1 -1
- package/dist/adapters/next.d.mts +5 -15
- package/dist/adapters/next.d.mts.map +1 -1
- package/dist/adapters/next.mjs +7 -15
- package/dist/adapters/next.mjs.map +1 -1
- package/dist/adapters/node-http/index.cjs +3 -12
- package/dist/adapters/node-http/index.d.cts +1 -4
- package/dist/adapters/node-http/index.d.mts +1 -4
- package/dist/adapters/node-http/index.mjs +2 -12
- package/dist/adapters/standalone.cjs +21 -21
- package/dist/adapters/standalone.d.cts +9 -14
- package/dist/adapters/standalone.d.cts.map +1 -1
- package/dist/adapters/standalone.d.mts +9 -14
- package/dist/adapters/standalone.d.mts.map +1 -1
- package/dist/adapters/standalone.mjs +17 -19
- package/dist/adapters/standalone.mjs.map +1 -1
- package/dist/adapters/ws.cjs +3 -15
- package/dist/adapters/ws.d.cts +12 -17
- package/dist/adapters/ws.d.cts.map +1 -1
- package/dist/adapters/ws.d.mts +12 -17
- package/dist/adapters/ws.d.mts.map +1 -1
- package/dist/adapters/ws.mjs +2 -15
- package/dist/{codes-BfZsPdy-.cjs → codes-C6ZIq69A.cjs} +78 -74
- package/dist/{codes-DagpWZLc.mjs → codes-D5Ya6_Bi.mjs} +10 -4
- package/dist/codes-D5Ya6_Bi.mjs.map +1 -0
- package/dist/{contentTypeParsers-iAFF_pJG.cjs → contentTypeParsers-DUzXRHT1.cjs} +6 -8
- package/dist/{contentTypeParsers-SN4WL9ze.mjs → contentTypeParsers-KFMy_fwz.mjs} +3 -3
- package/dist/contentTypeParsers-KFMy_fwz.mjs.map +1 -0
- package/dist/getErrorShape-B0JBUs-i.mjs +209 -0
- package/dist/getErrorShape-B0JBUs-i.mjs.map +1 -0
- package/dist/getErrorShape-DeIapApr.cjs +272 -0
- package/dist/http.cjs +5 -9
- package/dist/http.d.cts +2 -3
- package/dist/http.d.mts +2 -3
- package/dist/http.mjs +4 -9
- package/dist/{index.d-DhhodpGb.d.mts → index-BHatz_Pu.d.cts} +3 -8
- package/dist/index-BHatz_Pu.d.cts.map +1 -0
- package/dist/{index.d-BiUz7kM_.d.cts → index-BMimGNYb.d.cts} +2 -5
- package/dist/index-BMimGNYb.d.cts.map +1 -0
- package/dist/{index.d-D4qZxQJh.d.mts → index-BMimGNYb.d.mts} +2 -5
- package/dist/index-BMimGNYb.d.mts.map +1 -0
- package/dist/{index.d-fBAdSX6g.d.cts → index-_jAhoJQ7.d.mts} +3 -8
- package/dist/index-_jAhoJQ7.d.mts.map +1 -0
- package/dist/index.cjs +5 -6
- package/dist/index.d.cts +10 -4
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +10 -4
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +4 -6
- package/dist/{initTRPC-BRf4imah.mjs → initTRPC-B259os3T.mjs} +85 -83
- package/dist/initTRPC-B259os3T.mjs.map +1 -0
- package/dist/{initTRPC-_cqIfGlH.cjs → initTRPC-B7UdX-c3.cjs} +133 -132
- package/dist/{node-http-n0vBVXjb.mjs → node-http-BUlb5EdB.mjs} +29 -26
- package/dist/node-http-BUlb5EdB.mjs.map +1 -0
- package/dist/{node-http-CSXWJkwC.cjs → node-http-CikCqjt6.cjs} +48 -46
- package/dist/observable/index.cjs +4 -4
- package/dist/observable/index.d.cts +2 -2
- package/dist/observable/index.d.mts +2 -2
- package/dist/observable/index.mjs +3 -4
- package/dist/{observable-B1Nk6r1H.cjs → observable-CIyO2eSm.cjs} +28 -32
- package/dist/{observable-CUiPknO-.mjs → observable-CSprJVOf.mjs} +6 -10
- package/dist/observable-CSprJVOf.mjs.map +1 -0
- package/dist/{observable-BVzLuBs6.cjs → observable-D8mqXlHG.cjs} +34 -39
- package/dist/{observable-UMO3vUa_.mjs → observable-DwUFSuKv.mjs} +10 -12
- package/dist/observable-DwUFSuKv.mjs.map +1 -0
- package/dist/{parseTRPCMessage-D1ZZaDox.cjs → parseTRPCMessage-BxAIUx49.cjs} +13 -17
- package/dist/{parseTRPCMessage-CPM1-44n.mjs → parseTRPCMessage-MJWDg1vX.mjs} +5 -8
- package/dist/parseTRPCMessage-MJWDg1vX.mjs.map +1 -0
- package/dist/{resolveResponse-Djb7nJqb.cjs → resolveResponse-DLpzHrPG.cjs} +505 -583
- package/dist/{resolveResponse-C7cFScHo.mjs → resolveResponse-JtMyT9TQ.mjs} +412 -489
- package/dist/resolveResponse-JtMyT9TQ.mjs.map +1 -0
- package/dist/rolldown-runtime-VH7oDXx4.cjs +28 -0
- package/dist/rpc.cjs +4 -4
- package/dist/rpc.d.cts +2 -3
- package/dist/rpc.d.mts +2 -3
- package/dist/rpc.mjs +3 -4
- package/dist/shared.cjs +3 -4
- package/dist/shared.d.cts +2 -4
- package/dist/shared.d.mts +2 -4
- package/dist/shared.mjs +2 -4
- package/dist/{tracked-DFxm8M2u.cjs → tracked-BQJb0ANk.cjs} +125 -142
- package/dist/{tracked-DWInO6EQ.mjs → tracked-D4jU_Hb3.mjs} +42 -58
- package/dist/tracked-D4jU_Hb3.mjs.map +1 -0
- package/dist/{unstable-core-do-not-import.d-BdVSvUCr.d.mts → unstable-core-do-not-import-B9ZnrQAU.d.cts} +37 -69
- package/dist/unstable-core-do-not-import-B9ZnrQAU.d.cts.map +1 -0
- package/dist/{unstable-core-do-not-import.d-Dh9CT5RO.d.cts → unstable-core-do-not-import-BK_OKrtM.d.mts} +37 -69
- package/dist/unstable-core-do-not-import-BK_OKrtM.d.mts.map +1 -0
- package/dist/unstable-core-do-not-import.cjs +33 -12
- package/dist/unstable-core-do-not-import.d.cts +2 -3
- package/dist/unstable-core-do-not-import.d.mts +2 -3
- package/dist/unstable-core-do-not-import.mjs +32 -10
- package/dist/unstable-core-do-not-import.mjs.map +1 -0
- package/dist/{ws-DCe9kEo_.cjs → ws-BMSSVFiW.cjs} +59 -65
- package/dist/{ws-Bme8aJNK.mjs → ws-C7ZOJJeA.mjs} +41 -46
- package/dist/ws-C7ZOJJeA.mjs.map +1 -0
- package/package.json +13 -13
- package/src/adapters/aws-lambda/getPlanner.ts +1 -2
- package/src/adapters/aws-lambda/index.ts +1 -2
- package/src/adapters/ws.ts +3 -2
- package/src/adapters/wsEncoder.ts +1 -1
- package/src/observable/behaviorSubject.ts +4 -2
- package/src/observable/types.ts +4 -2
- package/src/unstable-core-do-not-import/clientish/inferrable.ts +1 -4
- package/src/unstable-core-do-not-import/http/contentType.ts +1 -1
- package/src/unstable-core-do-not-import/http/resolveResponse.ts +4 -9
- package/src/unstable-core-do-not-import/http/types.ts +8 -4
- package/src/unstable-core-do-not-import/initTRPC.ts +10 -10
- package/src/unstable-core-do-not-import/middleware.ts +3 -2
- package/src/unstable-core-do-not-import/procedure.ts +11 -11
- package/src/unstable-core-do-not-import/router.ts +4 -5
- package/src/unstable-core-do-not-import/rpc/envelopes.ts +33 -34
- package/src/unstable-core-do-not-import/stream/jsonl.ts +1 -2
- package/src/unstable-core-do-not-import/stream/sse.ts +18 -12
- package/src/unstable-core-do-not-import/stream/utils/mergeAsyncIterables.ts +5 -2
- package/src/unstable-core-do-not-import/stream/utils/withPing.ts +1 -3
- package/src/unstable-core-do-not-import/transformer.ts +1 -4
- package/src/unstable-core-do-not-import/types.ts +9 -10
- package/dist/codes-DagpWZLc.mjs.map +0 -1
- package/dist/contentTypeParsers-SN4WL9ze.mjs.map +0 -1
- package/dist/getErrorShape-BPSzUA7W.mjs +0 -269
- package/dist/getErrorShape-BPSzUA7W.mjs.map +0 -1
- package/dist/getErrorShape-Ed1OwssN.cjs +0 -345
- package/dist/http-CWyjOa1l.mjs +0 -0
- package/dist/http-DXy3XyhL.cjs +0 -0
- package/dist/index.d-BiUz7kM_.d.cts.map +0 -1
- package/dist/index.d-CvZXeEyR.d.cts +0 -11
- package/dist/index.d-CvZXeEyR.d.cts.map +0 -1
- package/dist/index.d-D4qZxQJh.d.mts.map +0 -1
- package/dist/index.d-DhhodpGb.d.mts.map +0 -1
- package/dist/index.d-fBAdSX6g.d.cts.map +0 -1
- package/dist/index.d-vq_QHko2.d.mts +0 -11
- package/dist/index.d-vq_QHko2.d.mts.map +0 -1
- package/dist/initTRPC-BRf4imah.mjs.map +0 -1
- package/dist/node-http-n0vBVXjb.mjs.map +0 -1
- package/dist/observable-CUiPknO-.mjs.map +0 -1
- package/dist/observable-UMO3vUa_.mjs.map +0 -1
- package/dist/parseTRPCMessage-CPM1-44n.mjs.map +0 -1
- package/dist/resolveResponse-C7cFScHo.mjs.map +0 -1
- package/dist/tracked-DWInO6EQ.mjs.map +0 -1
- package/dist/unstable-core-do-not-import-9NNw8uQM.mjs +0 -31
- package/dist/unstable-core-do-not-import-9NNw8uQM.mjs.map +0 -1
- package/dist/unstable-core-do-not-import-fsjhEhgh.cjs +0 -35
- package/dist/unstable-core-do-not-import.d-BdVSvUCr.d.mts.map +0 -1
- package/dist/unstable-core-do-not-import.d-Dh9CT5RO.d.cts.map +0 -1
- package/dist/ws-Bme8aJNK.mjs.map +0 -1
package/src/adapters/ws.ts
CHANGED
|
@@ -406,6 +406,7 @@ export function getWSConnectionHandler<TRouter extends AnyRouter>(
|
|
|
406
406
|
});
|
|
407
407
|
clientSubscriptions.delete(id);
|
|
408
408
|
}).catch((cause) => {
|
|
409
|
+
clientSubscriptions.delete(id);
|
|
409
410
|
const error = getTRPCErrorFromUnknown(cause);
|
|
410
411
|
opts.onError?.({ error, path, type, ctx, req, input });
|
|
411
412
|
respond({
|
|
@@ -585,13 +586,13 @@ export function handleKeepAlive(
|
|
|
585
586
|
const scheduleTimeout = () => {
|
|
586
587
|
timeout = setTimeout(() => {
|
|
587
588
|
client.terminate();
|
|
588
|
-
}, pongWaitMs)
|
|
589
|
+
}, pongWaitMs);
|
|
589
590
|
};
|
|
590
591
|
ping = setTimeout(() => {
|
|
591
592
|
client.send('PING');
|
|
592
593
|
|
|
593
594
|
scheduleTimeout();
|
|
594
|
-
}, pingMs)
|
|
595
|
+
}, pingMs);
|
|
595
596
|
};
|
|
596
597
|
|
|
597
598
|
const onMessage = () => {
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
*/
|
|
13
13
|
export interface Encoder {
|
|
14
14
|
/** Encode data for transmission over the wire */
|
|
15
|
-
encode(data: unknown): string | Uint8Array
|
|
15
|
+
encode(data: unknown): string | Uint8Array<ArrayBuffer>;
|
|
16
16
|
/** Decode data received from the wire */
|
|
17
17
|
decode(data: string | ArrayBuffer | Uint8Array): unknown;
|
|
18
18
|
}
|
|
@@ -7,8 +7,10 @@ export interface BehaviorSubject<TValue> extends Observable<TValue, never> {
|
|
|
7
7
|
get: () => TValue;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
export interface ReadonlyBehaviorSubject<TValue>
|
|
11
|
-
|
|
10
|
+
export interface ReadonlyBehaviorSubject<TValue> extends Omit<
|
|
11
|
+
BehaviorSubject<TValue>,
|
|
12
|
+
'next'
|
|
13
|
+
> {}
|
|
12
14
|
|
|
13
15
|
/**
|
|
14
16
|
* @internal
|
package/src/observable/types.ts
CHANGED
|
@@ -5,8 +5,10 @@ export type UnsubscribeFn = () => void;
|
|
|
5
5
|
interface Subscribable<TValue, TError> {
|
|
6
6
|
subscribe(observer: Partial<Observer<TValue, TError>>): Unsubscribable;
|
|
7
7
|
}
|
|
8
|
-
export interface Observable<TValue, TError>
|
|
9
|
-
|
|
8
|
+
export interface Observable<TValue, TError> extends Subscribable<
|
|
9
|
+
TValue,
|
|
10
|
+
TError
|
|
11
|
+
> {
|
|
10
12
|
pipe(): Observable<TValue, TError>;
|
|
11
13
|
pipe<TValue1, TError1>(
|
|
12
14
|
op1: OperatorFunction<TValue, TError, TValue1, TError1>,
|
|
@@ -29,10 +29,7 @@ type RootConfigLike = {
|
|
|
29
29
|
* Anything that can be inferred to the root config types needed for a TRPC client
|
|
30
30
|
*/
|
|
31
31
|
export type InferrableClientTypes =
|
|
32
|
-
|
|
|
33
|
-
| InitLike
|
|
34
|
-
| RootConfigLike
|
|
35
|
-
| AnyClientTypes;
|
|
32
|
+
RouterLike | InitLike | RootConfigLike | AnyClientTypes;
|
|
36
33
|
|
|
37
34
|
type PickTypes<T extends AnyClientTypes> = {
|
|
38
35
|
transformer: T['transformer'];
|
|
@@ -35,13 +35,7 @@ function errorToAsyncIterable(err: TRPCError): AsyncIterable<never> {
|
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
37
|
type HTTPMethods =
|
|
38
|
-
| '
|
|
39
|
-
| 'POST'
|
|
40
|
-
| 'HEAD'
|
|
41
|
-
| 'OPTIONS'
|
|
42
|
-
| 'PUT'
|
|
43
|
-
| 'DELETE'
|
|
44
|
-
| 'PATCH';
|
|
38
|
+
'GET' | 'POST' | 'HEAD' | 'OPTIONS' | 'PUT' | 'DELETE' | 'PATCH';
|
|
45
39
|
|
|
46
40
|
function combinedAbortController(signal: AbortSignal) {
|
|
47
41
|
const controller = new AbortController();
|
|
@@ -67,8 +61,9 @@ const TYPE_ACCEPTED_METHOD_MAP_WITH_METHOD_OVERRIDE: Record<
|
|
|
67
61
|
subscription: ['GET', 'POST'],
|
|
68
62
|
};
|
|
69
63
|
|
|
70
|
-
interface ResolveHTTPRequestOptions<
|
|
71
|
-
extends
|
|
64
|
+
interface ResolveHTTPRequestOptions<
|
|
65
|
+
TRouter extends AnyRouter,
|
|
66
|
+
> extends HTTPBaseHandlerOptions<TRouter, Request> {
|
|
72
67
|
createContext: ResolveHTTPRequestOptionsContextFn<TRouter>;
|
|
73
68
|
req: Request;
|
|
74
69
|
path: string;
|
|
@@ -45,8 +45,10 @@ export type ResponseMetaFn<TRouter extends AnyRouter> = (opts: {
|
|
|
45
45
|
/**
|
|
46
46
|
* Base interface for anything using HTTP
|
|
47
47
|
*/
|
|
48
|
-
export interface HTTPBaseHandlerOptions<
|
|
49
|
-
extends
|
|
48
|
+
export interface HTTPBaseHandlerOptions<
|
|
49
|
+
TRouter extends AnyRouter,
|
|
50
|
+
TRequest,
|
|
51
|
+
> extends BaseHandlerOptions<TRouter, TRequest> {
|
|
50
52
|
/**
|
|
51
53
|
* Add handler to be called before response is sent to the user
|
|
52
54
|
* Useful for setting cache headers
|
|
@@ -121,8 +123,10 @@ export interface TRPCRequestInfo {
|
|
|
121
123
|
export type ResolveHTTPRequestOptionsContextFn<TRouter extends AnyRouter> =
|
|
122
124
|
(opts: { info: TRPCRequestInfo }) => Promise<inferRouterContext<TRouter>>;
|
|
123
125
|
|
|
124
|
-
interface HTTPErrorHandlerOptions<
|
|
125
|
-
extends
|
|
126
|
+
interface HTTPErrorHandlerOptions<
|
|
127
|
+
TRouter extends AnyRouter,
|
|
128
|
+
TRequest,
|
|
129
|
+
> extends ErrorHandlerOptions<inferRouterContext<TRouter>> {
|
|
126
130
|
req: TRequest;
|
|
127
131
|
}
|
|
128
132
|
/**
|
|
@@ -32,16 +32,16 @@ export interface RuntimeConfigOptions<
|
|
|
32
32
|
TContext extends object,
|
|
33
33
|
TMeta extends object,
|
|
34
34
|
> extends Partial<
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
35
|
+
Omit<
|
|
36
|
+
RootConfig<{
|
|
37
|
+
ctx: TContext;
|
|
38
|
+
meta: TMeta;
|
|
39
|
+
errorShape: any;
|
|
40
|
+
transformer: any;
|
|
41
|
+
}>,
|
|
42
|
+
'$types' | 'transformer'
|
|
43
|
+
>
|
|
44
|
+
> {
|
|
45
45
|
/**
|
|
46
46
|
* Use a data transformer
|
|
47
47
|
* @see https://trpc.io/docs/v11/data-transformers
|
|
@@ -24,8 +24,9 @@ interface MiddlewareOKResult<_TContextOverride> extends MiddlewareResultBase {
|
|
|
24
24
|
// this could be extended with `input`/`rawInput` later
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
interface MiddlewareErrorResult<
|
|
28
|
-
|
|
27
|
+
interface MiddlewareErrorResult<
|
|
28
|
+
_TContextOverride,
|
|
29
|
+
> extends MiddlewareResultBase {
|
|
29
30
|
ok: false;
|
|
30
31
|
error: TRPCError;
|
|
31
32
|
}
|
|
@@ -52,14 +52,17 @@ export interface Procedure<
|
|
|
52
52
|
(opts: ProcedureCallOptions<unknown>): Promise<TDef['output']>;
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
export interface QueryProcedure<
|
|
56
|
-
extends
|
|
55
|
+
export interface QueryProcedure<
|
|
56
|
+
TDef extends BuiltProcedureDef,
|
|
57
|
+
> extends Procedure<'query', TDef> {}
|
|
57
58
|
|
|
58
|
-
export interface MutationProcedure<
|
|
59
|
-
extends
|
|
59
|
+
export interface MutationProcedure<
|
|
60
|
+
TDef extends BuiltProcedureDef,
|
|
61
|
+
> extends Procedure<'mutation', TDef> {}
|
|
60
62
|
|
|
61
|
-
export interface SubscriptionProcedure<
|
|
62
|
-
extends
|
|
63
|
+
export interface SubscriptionProcedure<
|
|
64
|
+
TDef extends BuiltProcedureDef,
|
|
65
|
+
> extends Procedure<'subscription', TDef> {}
|
|
63
66
|
|
|
64
67
|
/**
|
|
65
68
|
* @deprecated
|
|
@@ -73,13 +76,10 @@ export interface LegacyObservableSubscriptionProcedure<
|
|
|
73
76
|
export type AnyQueryProcedure = QueryProcedure<any>;
|
|
74
77
|
export type AnyMutationProcedure = MutationProcedure<any>;
|
|
75
78
|
export type AnySubscriptionProcedure =
|
|
76
|
-
|
|
|
77
|
-
| LegacyObservableSubscriptionProcedure<any>;
|
|
79
|
+
SubscriptionProcedure<any> | LegacyObservableSubscriptionProcedure<any>;
|
|
78
80
|
|
|
79
81
|
export type AnyProcedure =
|
|
80
|
-
|
|
|
81
|
-
| AnyMutationProcedure
|
|
82
|
-
| AnySubscriptionProcedure;
|
|
82
|
+
AnyQueryProcedure | AnyMutationProcedure | AnySubscriptionProcedure;
|
|
83
83
|
|
|
84
84
|
export type inferProcedureInput<TProcedure extends AnyProcedure> =
|
|
85
85
|
undefined extends inferProcedureParams<TProcedure>['$types']['input']
|
|
@@ -223,10 +223,7 @@ const reservedWords = [
|
|
|
223
223
|
/** @internal */
|
|
224
224
|
export type CreateRouterOptions = {
|
|
225
225
|
[key: string]:
|
|
226
|
-
|
|
|
227
|
-
| AnyRouter
|
|
228
|
-
| CreateRouterOptions
|
|
229
|
-
| Lazy<AnyRouter>;
|
|
226
|
+
AnyProcedure | AnyRouter | CreateRouterOptions | Lazy<AnyRouter>;
|
|
230
227
|
};
|
|
231
228
|
|
|
232
229
|
/** @internal */
|
|
@@ -378,7 +375,9 @@ export async function getProcedureAtPath(
|
|
|
378
375
|
let procedure = _def.procedures[path];
|
|
379
376
|
|
|
380
377
|
while (!procedure) {
|
|
381
|
-
const key = Object.keys(_def.lazy).find(
|
|
378
|
+
const key = Object.keys(_def.lazy).find(
|
|
379
|
+
(key) => path === key || path.startsWith(key + '.'),
|
|
380
|
+
);
|
|
382
381
|
// console.log(`found lazy: ${key ?? 'NOPE'} (fullPath: ${fullPath})`);
|
|
383
382
|
|
|
384
383
|
if (!key) {
|
|
@@ -26,13 +26,16 @@ export namespace JSONRPC2 {
|
|
|
26
26
|
jsonrpc?: '2.0';
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
export interface BaseRequest<
|
|
30
|
-
extends
|
|
29
|
+
export interface BaseRequest<
|
|
30
|
+
TMethod extends string = string,
|
|
31
|
+
> extends BaseEnvelope {
|
|
31
32
|
method: TMethod;
|
|
32
33
|
}
|
|
33
34
|
|
|
34
|
-
export interface Request<
|
|
35
|
-
extends
|
|
35
|
+
export interface Request<
|
|
36
|
+
TMethod extends string = string,
|
|
37
|
+
TParams = unknown,
|
|
38
|
+
> extends BaseRequest<TMethod> {
|
|
36
39
|
params: TParams;
|
|
37
40
|
}
|
|
38
41
|
|
|
@@ -40,26 +43,26 @@ export namespace JSONRPC2 {
|
|
|
40
43
|
result: TResult;
|
|
41
44
|
}
|
|
42
45
|
|
|
43
|
-
export interface ErrorResponse<
|
|
44
|
-
extends
|
|
46
|
+
export interface ErrorResponse<
|
|
47
|
+
TError extends TRPCErrorShape = TRPCErrorShape,
|
|
48
|
+
> extends BaseEnvelope {
|
|
45
49
|
error: TError;
|
|
46
50
|
}
|
|
47
51
|
}
|
|
48
52
|
|
|
49
53
|
/////////////////////////// HTTP envelopes ///////////////////////
|
|
50
54
|
|
|
51
|
-
export interface TRPCRequest
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
> {}
|
|
55
|
+
export interface TRPCRequest extends JSONRPC2.Request<
|
|
56
|
+
ProcedureType,
|
|
57
|
+
{
|
|
58
|
+
path: string;
|
|
59
|
+
input: unknown;
|
|
60
|
+
/**
|
|
61
|
+
* The last event id that the client received
|
|
62
|
+
*/
|
|
63
|
+
lastEventId?: string;
|
|
64
|
+
}
|
|
65
|
+
> {}
|
|
63
66
|
|
|
64
67
|
export interface TRPCResult<TData = unknown> {
|
|
65
68
|
data: TData;
|
|
@@ -70,8 +73,9 @@ export interface TRPCResult<TData = unknown> {
|
|
|
70
73
|
id?: string;
|
|
71
74
|
}
|
|
72
75
|
|
|
73
|
-
export interface TRPCSuccessResponse<TData>
|
|
74
|
-
|
|
76
|
+
export interface TRPCSuccessResponse<TData> extends JSONRPC2.ResultResponse<
|
|
77
|
+
TRPCResult<TData>
|
|
78
|
+
> {}
|
|
75
79
|
|
|
76
80
|
export interface TRPCErrorResponse<
|
|
77
81
|
TError extends TRPCErrorShape = TRPCErrorShape,
|
|
@@ -91,8 +95,7 @@ export type TRPCRequestMessage = TRPCRequest & {
|
|
|
91
95
|
/**
|
|
92
96
|
* The client asked the server to unsubscribe
|
|
93
97
|
*/
|
|
94
|
-
export interface TRPCSubscriptionStopNotification
|
|
95
|
-
extends JSONRPC2.BaseRequest<'subscription.stop'> {
|
|
98
|
+
export interface TRPCSubscriptionStopNotification extends JSONRPC2.BaseRequest<'subscription.stop'> {
|
|
96
99
|
id: null;
|
|
97
100
|
}
|
|
98
101
|
|
|
@@ -108,26 +111,23 @@ export type TRPCClientOutgoingMessage =
|
|
|
108
111
|
| TRPCRequestMessage
|
|
109
112
|
| (JSONRPC2.BaseRequest<'subscription.stop'> & { id: JSONRPC2.RequestId });
|
|
110
113
|
|
|
111
|
-
export interface TRPCResultMessage<TData>
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
> {}
|
|
114
|
+
export interface TRPCResultMessage<TData> extends JSONRPC2.ResultResponse<
|
|
115
|
+
| { type: 'started'; data?: never }
|
|
116
|
+
| { type: 'stopped'; data?: never }
|
|
117
|
+
| TRPCResult<TData>
|
|
118
|
+
> {}
|
|
117
119
|
|
|
118
120
|
export type TRPCResponseMessage<
|
|
119
121
|
TData = unknown,
|
|
120
122
|
TError extends TRPCErrorShape = TRPCErrorShape,
|
|
121
123
|
> = { id: JSONRPC2.RequestId } & (
|
|
122
|
-
|
|
123
|
-
| TRPCResultMessage<TData>
|
|
124
|
+
TRPCErrorResponse<TError> | TRPCResultMessage<TData>
|
|
124
125
|
);
|
|
125
126
|
|
|
126
127
|
/**
|
|
127
128
|
* The server asked the client to reconnect - useful when restarting/redeploying service
|
|
128
129
|
*/
|
|
129
|
-
export interface TRPCReconnectNotification
|
|
130
|
-
extends JSONRPC2.BaseRequest<'reconnect'> {
|
|
130
|
+
export interface TRPCReconnectNotification extends JSONRPC2.BaseRequest<'reconnect'> {
|
|
131
131
|
id: JSONRPC2.RequestId;
|
|
132
132
|
}
|
|
133
133
|
|
|
@@ -147,7 +147,6 @@ export type TRPCClientIncomingMessage<
|
|
|
147
147
|
/**
|
|
148
148
|
* The client sends connection params - always sent as the first message
|
|
149
149
|
*/
|
|
150
|
-
export interface TRPCConnectionParamsMessage
|
|
151
|
-
extends JSONRPC2.BaseRequest<'connectionParams'> {
|
|
150
|
+
export interface TRPCConnectionParamsMessage extends JSONRPC2.BaseRequest<'connectionParams'> {
|
|
152
151
|
data: TRPCRequestInfo['connectionParams'];
|
|
153
152
|
}
|
|
@@ -57,8 +57,7 @@ type ChunkDefinitionKey =
|
|
|
57
57
|
|
|
58
58
|
type ChunkIndex = number & { __chunkIndex: true };
|
|
59
59
|
type ChunkValueType =
|
|
60
|
-
|
|
|
61
|
-
| CHUNK_VALUE_TYPE_ASYNC_ITERABLE;
|
|
60
|
+
CHUNK_VALUE_TYPE_PROMISE | CHUNK_VALUE_TYPE_ASYNC_ITERABLE;
|
|
62
61
|
type ChunkDefinition = [
|
|
63
62
|
key: ChunkDefinitionKey,
|
|
64
63
|
type: ChunkValueType,
|
|
@@ -202,35 +202,41 @@ interface ConsumerStreamResultBase<TConfig extends ConsumerConfig> {
|
|
|
202
202
|
eventSource: InstanceType<TConfig['EventSource']> | null;
|
|
203
203
|
}
|
|
204
204
|
|
|
205
|
-
interface ConsumerStreamResultData<
|
|
206
|
-
extends
|
|
205
|
+
interface ConsumerStreamResultData<
|
|
206
|
+
TConfig extends ConsumerConfig,
|
|
207
|
+
> extends ConsumerStreamResultBase<TConfig> {
|
|
207
208
|
type: 'data';
|
|
208
209
|
data: inferTrackedOutput<TConfig['data']>;
|
|
209
210
|
}
|
|
210
211
|
|
|
211
|
-
interface ConsumerStreamResultError<
|
|
212
|
-
extends
|
|
212
|
+
interface ConsumerStreamResultError<
|
|
213
|
+
TConfig extends ConsumerConfig,
|
|
214
|
+
> extends ConsumerStreamResultBase<TConfig> {
|
|
213
215
|
type: 'serialized-error';
|
|
214
216
|
error: TConfig['error'];
|
|
215
217
|
}
|
|
216
218
|
|
|
217
|
-
interface ConsumerStreamResultConnecting<
|
|
218
|
-
extends
|
|
219
|
+
interface ConsumerStreamResultConnecting<
|
|
220
|
+
TConfig extends ConsumerConfig,
|
|
221
|
+
> extends ConsumerStreamResultBase<TConfig> {
|
|
219
222
|
type: 'connecting';
|
|
220
223
|
event: EventSourceLike.EventOf<TConfig['EventSource']> | null;
|
|
221
224
|
}
|
|
222
|
-
interface ConsumerStreamResultTimeout<
|
|
223
|
-
extends
|
|
225
|
+
interface ConsumerStreamResultTimeout<
|
|
226
|
+
TConfig extends ConsumerConfig,
|
|
227
|
+
> extends ConsumerStreamResultBase<TConfig> {
|
|
224
228
|
type: 'timeout';
|
|
225
229
|
ms: number;
|
|
226
230
|
}
|
|
227
|
-
interface ConsumerStreamResultPing<
|
|
228
|
-
extends
|
|
231
|
+
interface ConsumerStreamResultPing<
|
|
232
|
+
TConfig extends ConsumerConfig,
|
|
233
|
+
> extends ConsumerStreamResultBase<TConfig> {
|
|
229
234
|
type: 'ping';
|
|
230
235
|
}
|
|
231
236
|
|
|
232
|
-
interface ConsumerStreamResultConnected<
|
|
233
|
-
extends
|
|
237
|
+
interface ConsumerStreamResultConnected<
|
|
238
|
+
TConfig extends ConsumerConfig,
|
|
239
|
+
> extends ConsumerStreamResultBase<TConfig> {
|
|
234
240
|
type: 'connected';
|
|
235
241
|
options: SSEClientOptions;
|
|
236
242
|
}
|
|
@@ -55,8 +55,11 @@ type ManagedIterator<TYield, TReturn> = ReturnType<
|
|
|
55
55
|
typeof createManagedIterator<TYield, TReturn>
|
|
56
56
|
>;
|
|
57
57
|
|
|
58
|
-
interface MergedAsyncIterables<TYield>
|
|
59
|
-
|
|
58
|
+
interface MergedAsyncIterables<TYield> extends AsyncIterable<
|
|
59
|
+
TYield,
|
|
60
|
+
void,
|
|
61
|
+
unknown
|
|
62
|
+
> {
|
|
60
63
|
add(iterable: AsyncIterable<TYield>): void;
|
|
61
64
|
}
|
|
62
65
|
|
|
@@ -16,9 +16,7 @@ export async function* withPing<TValue>(
|
|
|
16
16
|
|
|
17
17
|
// declaration outside the loop for garbage collection reasons
|
|
18
18
|
let result:
|
|
19
|
-
|
|
|
20
|
-
| IteratorResult<TValue>
|
|
21
|
-
| typeof disposablePromiseTimerResult;
|
|
19
|
+
null | IteratorResult<TValue> | typeof disposablePromiseTimerResult;
|
|
22
20
|
|
|
23
21
|
let nextPromise = iterator.next();
|
|
24
22
|
|
|
@@ -112,10 +112,7 @@ function transformTRPCResponseItem<
|
|
|
112
112
|
**/
|
|
113
113
|
export function transformTRPCResponse<
|
|
114
114
|
TResponse extends
|
|
115
|
-
| TRPCResponse
|
|
116
|
-
| TRPCResponse[]
|
|
117
|
-
| TRPCResponseMessage
|
|
118
|
-
| TRPCResponseMessage[],
|
|
115
|
+
TRPCResponse | TRPCResponse[] | TRPCResponseMessage | TRPCResponseMessage[],
|
|
119
116
|
>(config: RootConfig<AnyRootTypes>, itemOrItems: TResponse) {
|
|
120
117
|
return Array.isArray(itemOrItems)
|
|
121
118
|
? itemOrItems.map((item) => transformTRPCResponseItem(config, item))
|
|
@@ -35,8 +35,7 @@ export type FilterKeys<TObj extends object, TFilter> = {
|
|
|
35
35
|
* @internal
|
|
36
36
|
*/
|
|
37
37
|
export type Result<TType, TErr = unknown> =
|
|
38
|
-
|
|
39
|
-
| { ok: false; error: TErr };
|
|
38
|
+
{ ok: true; value: TType } | { ok: false; error: TErr };
|
|
40
39
|
|
|
41
40
|
/**
|
|
42
41
|
* @internal
|
|
@@ -80,11 +79,9 @@ export type DistributiveOmit<TObj, TKey extends keyof any> = TObj extends any
|
|
|
80
79
|
* @internal
|
|
81
80
|
*/
|
|
82
81
|
export type WithoutIndexSignature<TObj> = {
|
|
83
|
-
[
|
|
84
|
-
? never
|
|
85
|
-
|
|
86
|
-
? never
|
|
87
|
-
: K]: TObj[K];
|
|
82
|
+
[
|
|
83
|
+
K in keyof TObj as string extends K ? never : number extends K ? never : K
|
|
84
|
+
]: TObj[K];
|
|
88
85
|
};
|
|
89
86
|
|
|
90
87
|
/**
|
|
@@ -96,9 +93,11 @@ export type WithoutIndexSignature<TObj> = {
|
|
|
96
93
|
export type Overwrite<TType, TWith> = TWith extends any
|
|
97
94
|
? TType extends object
|
|
98
95
|
? {
|
|
99
|
-
[
|
|
100
|
-
|
|
101
|
-
|
|
96
|
+
[
|
|
97
|
+
K in // Exclude index signature from keys
|
|
98
|
+
| keyof WithoutIndexSignature<TType>
|
|
99
|
+
| keyof WithoutIndexSignature<TWith>
|
|
100
|
+
]: K extends keyof TWith
|
|
102
101
|
? TWith[K]
|
|
103
102
|
: K extends keyof TType
|
|
104
103
|
? TType[K]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codes-DagpWZLc.mjs","names":["obj1: TType","newObj: TType","value: unknown","fn: unknown","fn: () => TValue","it: T","condition: boolean","signals: AbortSignal[]","TRPC_ERROR_CODES_BY_NUMBER: InvertKeyValue<\n typeof TRPC_ERROR_CODES_BY_KEY\n>","retryableRpcCodes: TRPC_ERROR_CODE_NUMBER[]"],"sources":["../src/unstable-core-do-not-import/utils.ts","../src/unstable-core-do-not-import/rpc/codes.ts"],"sourcesContent":["/** @internal */\nexport type UnsetMarker = 'unsetMarker' & {\n __brand: 'unsetMarker';\n};\n\n/**\n * Ensures there are no duplicate keys when building a procedure.\n * @internal\n */\nexport function mergeWithoutOverrides<TType extends Record<string, unknown>>(\n obj1: TType,\n ...objs: Partial<TType>[]\n): TType {\n const newObj: TType = Object.assign(emptyObject(), obj1);\n\n for (const overrides of objs) {\n for (const key in overrides) {\n if (key in newObj && newObj[key] !== overrides[key]) {\n throw new Error(`Duplicate key ${key}`);\n }\n newObj[key as keyof TType] = overrides[key] as TType[keyof TType];\n }\n }\n return newObj;\n}\n\n/**\n * Check that value is object\n * @internal\n */\nexport function isObject(value: unknown): value is Record<string, unknown> {\n return !!value && !Array.isArray(value) && typeof value === 'object';\n}\n\ntype AnyFn = ((...args: any[]) => unknown) & Record<keyof any, unknown>;\nexport function isFunction(fn: unknown): fn is AnyFn {\n return typeof fn === 'function';\n}\n\n/**\n * Create an object without inheriting anything from `Object.prototype`\n * @internal\n */\nexport function emptyObject<TObj extends Record<string, unknown>>(): TObj {\n return Object.create(null);\n}\n\nconst asyncIteratorsSupported =\n typeof Symbol === 'function' && !!Symbol.asyncIterator;\n\nexport function isAsyncIterable<TValue>(\n value: unknown,\n): value is AsyncIterable<TValue> {\n return (\n asyncIteratorsSupported && isObject(value) && Symbol.asyncIterator in value\n );\n}\n\n/**\n * Run an IIFE\n */\nexport const run = <TValue>(fn: () => TValue): TValue => fn();\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop(): void {}\n\nexport function identity<T>(it: T): T {\n return it;\n}\n\n/**\n * Generic runtime assertion function. Throws, if the condition is not `true`.\n *\n * Can be used as a slightly less dangerous variant of type assertions. Code\n * mistakes would be revealed at runtime then (hopefully during testing).\n */\nexport function assert(\n condition: boolean,\n msg = 'no additional info',\n): asserts condition {\n if (!condition) {\n throw new Error(`AssertionError: ${msg}`);\n }\n}\n\nexport function sleep(ms = 0): Promise<void> {\n return new Promise<void>((res) => setTimeout(res, ms));\n}\n\n/**\n * Ponyfill for\n * [`AbortSignal.any`](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/any_static).\n */\nexport function abortSignalsAnyPonyfill(signals: AbortSignal[]): AbortSignal {\n if (typeof AbortSignal.any === 'function') {\n return AbortSignal.any(signals);\n }\n\n const ac = new AbortController();\n\n for (const signal of signals) {\n if (signal.aborted) {\n trigger();\n break;\n }\n signal.addEventListener('abort', trigger, { once: true });\n }\n\n return ac.signal;\n\n function trigger() {\n ac.abort();\n for (const signal of signals) {\n signal.removeEventListener('abort', trigger);\n }\n }\n}\n","import type { InvertKeyValue, ValueOf } from '../types';\n\n// reference: https://www.jsonrpc.org/specification\n\n/**\n * JSON-RPC 2.0 Error codes\n *\n * `-32000` to `-32099` are reserved for implementation-defined server-errors.\n * For tRPC we're copying the last digits of HTTP 4XX errors.\n */\nexport const TRPC_ERROR_CODES_BY_KEY = {\n /**\n * Invalid JSON was received by the server.\n * An error occurred on the server while parsing the JSON text.\n */\n PARSE_ERROR: -32700,\n /**\n * The JSON sent is not a valid Request object.\n */\n BAD_REQUEST: -32600, // 400\n\n // Internal JSON-RPC error\n INTERNAL_SERVER_ERROR: -32603, // 500\n NOT_IMPLEMENTED: -32603, // 501\n BAD_GATEWAY: -32603, // 502\n SERVICE_UNAVAILABLE: -32603, // 503\n GATEWAY_TIMEOUT: -32603, // 504\n\n // Implementation specific errors\n UNAUTHORIZED: -32001, // 401\n PAYMENT_REQUIRED: -32002, // 402\n FORBIDDEN: -32003, // 403\n NOT_FOUND: -32004, // 404\n METHOD_NOT_SUPPORTED: -32005, // 405\n TIMEOUT: -32008, // 408\n CONFLICT: -32009, // 409\n PRECONDITION_FAILED: -32012, // 412\n PAYLOAD_TOO_LARGE: -32013, // 413\n UNSUPPORTED_MEDIA_TYPE: -32015, // 415\n UNPROCESSABLE_CONTENT: -32022, // 422\n PRECONDITION_REQUIRED: -32028, // 428\n TOO_MANY_REQUESTS: -32029, // 429\n CLIENT_CLOSED_REQUEST: -32099, // 499\n} as const;\n\n// pure\nexport const TRPC_ERROR_CODES_BY_NUMBER: InvertKeyValue<\n typeof TRPC_ERROR_CODES_BY_KEY\n> = {\n [-32700]: 'PARSE_ERROR',\n [-32600]: 'BAD_REQUEST',\n [-32603]: 'INTERNAL_SERVER_ERROR',\n [-32001]: 'UNAUTHORIZED',\n [-32002]: 'PAYMENT_REQUIRED',\n [-32003]: 'FORBIDDEN',\n [-32004]: 'NOT_FOUND',\n [-32005]: 'METHOD_NOT_SUPPORTED',\n [-32008]: 'TIMEOUT',\n [-32009]: 'CONFLICT',\n [-32012]: 'PRECONDITION_FAILED',\n [-32013]: 'PAYLOAD_TOO_LARGE',\n [-32015]: 'UNSUPPORTED_MEDIA_TYPE',\n [-32022]: 'UNPROCESSABLE_CONTENT',\n [-32028]: 'PRECONDITION_REQUIRED',\n [-32029]: 'TOO_MANY_REQUESTS',\n [-32099]: 'CLIENT_CLOSED_REQUEST',\n};\n\nexport type TRPC_ERROR_CODE_NUMBER = ValueOf<typeof TRPC_ERROR_CODES_BY_KEY>;\nexport type TRPC_ERROR_CODE_KEY = keyof typeof TRPC_ERROR_CODES_BY_KEY;\n\n/**\n * tRPC error codes that are considered retryable\n * With out of the box SSE, the client will reconnect when these errors are encountered\n */\nexport const retryableRpcCodes: TRPC_ERROR_CODE_NUMBER[] = [\n TRPC_ERROR_CODES_BY_KEY.BAD_GATEWAY,\n TRPC_ERROR_CODES_BY_KEY.SERVICE_UNAVAILABLE,\n TRPC_ERROR_CODES_BY_KEY.GATEWAY_TIMEOUT,\n TRPC_ERROR_CODES_BY_KEY.INTERNAL_SERVER_ERROR,\n];\n"],"mappings":";;;;;AASA,SAAgB,sBACdA,MACA,GAAG,MACI;CACP,MAAMC,SAAgB,OAAO,OAAO,aAAa,EAAE,KAAK;AAExD,MAAK,MAAM,aAAa,KACtB,MAAK,MAAM,OAAO,WAAW;AAC3B,MAAI,OAAO,UAAU,OAAO,SAAS,UAAU,KAC7C,OAAM,IAAI,OAAO,gBAAgB,IAAI;AAEvC,SAAO,OAAsB,UAAU;CACxC;AAEH,QAAO;AACR;;;;;AAMD,SAAgB,SAASC,OAAkD;AACzE,UAAS,UAAU,MAAM,QAAQ,MAAM,WAAW,UAAU;AAC7D;AAGD,SAAgB,WAAWC,IAA0B;AACnD,eAAc,OAAO;AACtB;;;;;AAMD,SAAgB,cAA0D;AACxE,QAAO,OAAO,OAAO,KAAK;AAC3B;AAED,MAAM,iCACG,WAAW,gBAAgB,OAAO;AAE3C,SAAgB,gBACdD,OACgC;AAChC,QACE,2BAA2B,SAAS,MAAM,IAAI,OAAO,iBAAiB;AAEzE;;;;AAKD,MAAa,MAAM,CAASE,OAA6B,IAAI;AAG7D,SAAgB,OAAa,CAAE;AAE/B,SAAgB,SAAYC,IAAU;AACpC,QAAO;AACR;;;;;;;AAQD,SAAgB,OACdC,WACA,MAAM,sBACa;AACnB,MAAK,UACH,OAAM,IAAI,OAAO,kBAAkB,IAAI;AAE1C;AAED,SAAgB,MAAM,KAAK,GAAkB;AAC3C,QAAO,IAAI,QAAc,CAAC,QAAQ,WAAW,KAAK,GAAG;AACtD;;;;;AAMD,SAAgB,wBAAwBC,SAAqC;AAC3E,YAAW,YAAY,QAAQ,WAC7B,QAAO,YAAY,IAAI,QAAQ;CAGjC,MAAM,KAAK,IAAI;AAEf,MAAK,MAAM,UAAU,SAAS;AAC5B,MAAI,OAAO,SAAS;AAClB,YAAS;AACT;EACD;AACD,SAAO,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAM,EAAC;CAC1D;AAED,QAAO,GAAG;CAEV,SAAS,UAAU;AACjB,KAAG,OAAO;AACV,OAAK,MAAM,UAAU,QACnB,QAAO,oBAAoB,SAAS,QAAQ;CAE/C;AACF;;;;;;;;;;AC1GD,MAAa,0BAA0B;CAKrC,aAAa;CAIb,aAAa;CAGb,uBAAuB;CACvB,iBAAiB;CACjB,aAAa;CACb,qBAAqB;CACrB,iBAAiB;CAGjB,cAAc;CACd,kBAAkB;CAClB,WAAW;CACX,WAAW;CACX,sBAAsB;CACtB,SAAS;CACT,UAAU;CACV,qBAAqB;CACrB,mBAAmB;CACnB,wBAAwB;CACxB,uBAAuB;CACvB,uBAAuB;CACvB,mBAAmB;CACnB,uBAAuB;AACxB;AAGD,MAAaC,6BAET;EACD,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;AACX;;;;;AASD,MAAaC,oBAA8C;CACzD,wBAAwB;CACxB,wBAAwB;CACxB,wBAAwB;CACxB,wBAAwB;AACzB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"contentTypeParsers-SN4WL9ze.mjs","names":["octetInputParser: UtilityParser<OctetInput, ReadableStream>"],"sources":["../src/unstable-core-do-not-import/http/contentTypeParsers.ts"],"sourcesContent":["import type { ParserZodEsque } from '../parser';\n\n/**\n * @internal\n */\nexport type UtilityParser<TInput, TOutput> = ParserZodEsque<TInput, TOutput> & {\n parse: (input: unknown) => TOutput;\n};\n\n// Should be the same possible types as packages/client/src/links/internals/contentTypes.ts isOctetType\n\n/**\n * @internal\n *\n * File is only available from Node19+ but it always extends Blob so we can use that as a type until we eventually drop Node18\n */\nexport interface FileLike extends Blob {\n readonly name: string;\n}\n\n/**\n * @internal\n */\nexport type OctetInput = Blob | Uint8Array | FileLike;\n\nexport const octetInputParser: UtilityParser<OctetInput, ReadableStream> = {\n _input: null as any as OctetInput,\n _output: null as any as ReadableStream,\n parse(input) {\n if (input instanceof ReadableStream) {\n return input;\n }\n\n throw new Error(\n `Parsed input was expected to be a ReadableStream but was: ${typeof input}`,\n );\n },\n};\n"],"mappings":";AAyBA,MAAaA,mBAA8D;CACzE,QAAQ;CACR,SAAS;CACT,MAAM,OAAO;AACX,MAAI,iBAAiB,eACnB,QAAO;AAGT,QAAM,IAAI,OACP,mEAAmE,MAAM;CAE7E;AACF"}
|