@trpc/server 11.18.1-canary.6 → 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-7Ltmq-Fb.cjs → parseTRPCMessage-BxAIUx49.cjs} +14 -18
- package/dist/{parseTRPCMessage-CTow-umk.mjs → parseTRPCMessage-MJWDg1vX.mjs} +6 -9
- 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-Cq69JO4d.cjs → ws-BMSSVFiW.cjs} +59 -65
- package/dist/{ws-DyeWX-EY.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/rpc/parseTRPCMessage.ts +2 -3
- 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-CTow-umk.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-DyeWX-EY.mjs.map +0 -1
package/dist/adapters/ws.d.mts
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
import "../
|
|
2
|
-
import {
|
|
3
|
-
import "../index.d-vq_QHko2.mjs";
|
|
4
|
-
import { NodeHTTPCreateContextFnOptions } from "../index.d-DhhodpGb.mjs";
|
|
1
|
+
import { J as AnyRouter, ft as inferRouterContext, gn as BaseHandlerOptions, ii as MaybePromise, yt as CreateContextCallback } from "../unstable-core-do-not-import-BK_OKrtM.mjs";
|
|
2
|
+
import { o as NodeHTTPCreateContextFnOptions } from "../index-_jAhoJQ7.mjs";
|
|
5
3
|
import { IncomingMessage } from "http";
|
|
6
4
|
import ws from "ws";
|
|
7
|
-
|
|
8
5
|
//#region src/adapters/wsEncoder.d.ts
|
|
9
|
-
|
|
10
6
|
/**
|
|
11
7
|
* Encoder for WebSocket wire format.
|
|
12
8
|
* Encodes outgoing messages and decodes incoming messages.
|
|
@@ -21,7 +17,7 @@ import ws from "ws";
|
|
|
21
17
|
*/
|
|
22
18
|
interface Encoder {
|
|
23
19
|
/** Encode data for transmission over the wire */
|
|
24
|
-
encode(data: unknown): string | Uint8Array
|
|
20
|
+
encode(data: unknown): string | Uint8Array<ArrayBuffer>;
|
|
25
21
|
/** Decode data received from the wire */
|
|
26
22
|
decode(data: string | ArrayBuffer | Uint8Array): unknown;
|
|
27
23
|
}
|
|
@@ -29,23 +25,22 @@ interface Encoder {
|
|
|
29
25
|
* Default JSON encoder - used when no encoder is specified.
|
|
30
26
|
* This maintains backwards compatibility with existing behavior.
|
|
31
27
|
*/
|
|
32
|
-
declare const jsonEncoder: Encoder;
|
|
33
|
-
//# sourceMappingURL=wsEncoder.d.ts.map
|
|
28
|
+
export declare const jsonEncoder: Encoder;
|
|
34
29
|
//#endregion
|
|
35
30
|
//#region src/adapters/ws.d.ts
|
|
36
31
|
/**
|
|
37
32
|
* @public
|
|
38
33
|
*/
|
|
39
|
-
type CreateWSSContextFnOptions = NodeHTTPCreateContextFnOptions<IncomingMessage, ws.WebSocket>;
|
|
34
|
+
export type CreateWSSContextFnOptions = NodeHTTPCreateContextFnOptions<IncomingMessage, ws.WebSocket>;
|
|
40
35
|
/**
|
|
41
36
|
* @public
|
|
42
37
|
*/
|
|
43
|
-
type CreateWSSContextFn<TRouter extends AnyRouter> = (opts: CreateWSSContextFnOptions) => MaybePromise<inferRouterContext<TRouter>>;
|
|
44
|
-
type WSConnectionHandlerOptions<TRouter extends AnyRouter> = BaseHandlerOptions<TRouter, IncomingMessage> & CreateContextCallback<inferRouterContext<TRouter>, CreateWSSContextFn<TRouter>>;
|
|
38
|
+
export type CreateWSSContextFn<TRouter extends AnyRouter> = (opts: CreateWSSContextFnOptions) => MaybePromise<inferRouterContext<TRouter>>;
|
|
39
|
+
export type WSConnectionHandlerOptions<TRouter extends AnyRouter> = BaseHandlerOptions<TRouter, IncomingMessage> & CreateContextCallback<inferRouterContext<TRouter>, CreateWSSContextFn<TRouter>>;
|
|
45
40
|
/**
|
|
46
41
|
* Web socket server handler
|
|
47
42
|
*/
|
|
48
|
-
type WSSHandlerOptions<TRouter extends AnyRouter> = WSConnectionHandlerOptions<TRouter> & {
|
|
43
|
+
export type WSSHandlerOptions<TRouter extends AnyRouter> = WSConnectionHandlerOptions<TRouter> & {
|
|
49
44
|
wss: ws.WebSocketServer;
|
|
50
45
|
prefix?: string;
|
|
51
46
|
keepAlive?: {
|
|
@@ -77,14 +72,14 @@ type WSSHandlerOptions<TRouter extends AnyRouter> = WSConnectionHandlerOptions<T
|
|
|
77
72
|
*/
|
|
78
73
|
experimental_encoder?: Encoder;
|
|
79
74
|
};
|
|
80
|
-
declare function getWSConnectionHandler<TRouter extends AnyRouter>(opts: WSSHandlerOptions<TRouter>): (client: ws.WebSocket, req: IncomingMessage) => void;
|
|
75
|
+
export declare function getWSConnectionHandler<TRouter extends AnyRouter>(opts: WSSHandlerOptions<TRouter>): (client: ws.WebSocket, req: IncomingMessage) => void;
|
|
81
76
|
/**
|
|
82
77
|
* Handle WebSocket keep-alive messages
|
|
83
78
|
*/
|
|
84
|
-
declare function handleKeepAlive(client: ws.WebSocket, pingMs?: number, pongWaitMs?: number): void;
|
|
85
|
-
declare function applyWSSHandler<TRouter extends AnyRouter>(opts: WSSHandlerOptions<TRouter>): {
|
|
79
|
+
export declare function handleKeepAlive(client: ws.WebSocket, pingMs?: number, pongWaitMs?: number): void;
|
|
80
|
+
export declare function applyWSSHandler<TRouter extends AnyRouter>(opts: WSSHandlerOptions<TRouter>): {
|
|
86
81
|
broadcastReconnectNotification: () => void;
|
|
87
82
|
};
|
|
88
83
|
//#endregion
|
|
89
|
-
export {
|
|
84
|
+
export type { Encoder };
|
|
90
85
|
//# sourceMappingURL=ws.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws.d.mts","names":[],"sources":["../../src/adapters/wsEncoder.ts","../../src/adapters/ws.ts"],"
|
|
1
|
+
{"version":3,"file":"ws.d.mts","names":[],"sources":["../../src/adapters/wsEncoder.ts","../../src/adapters/ws.ts"],"mappings":";;;;;;;;;;;;;;;;;UAYiB;;EAEf,OAAO,yBAAyB,WAAW;;EAE3C,OAAO,eAAe,cAAc;;;;;;qBAOzB,aAAa;;;;;;YC8Bd,4BAA4B,+BACtC,iBACA,GAAG;;;;YAMO,mBAAmB,gBAAgB,cAC7C,MAAM,8BACH,aAAa,mBAAmB;YAEzB,2BAA2B,gBAAgB,aACrD,mBAAmB,SAAS,mBAC1B,sBACE,mBAAmB,UACnB,mBAAmB;;;;YAMb,kBAAkB,gBAAgB,aAC5C,2BAA2B;EACzB,KAAK,GAAG;EACR;EACA;;;;;IAKE;;;;;IAKA;;;;;IAKA;;;;;;;EAOF;;;;;EAKA,uBAAuB;;wBAGX,uBAAuB,gBAAgB,WACrD,MAAM,kBAAkB,YAAQ,QAMhB,GAAG,WAAS,KAAO;;;;wBA4crB,gBACd,QAAQ,GAAG,WACX,iBACA;wBAmCc,gBAAgB,gBAAgB,WAC9C,MAAM,kBAAkB;EAatB"}
|
package/dist/adapters/ws.mjs
CHANGED
|
@@ -1,15 +1,2 @@
|
|
|
1
|
-
import "../
|
|
2
|
-
|
|
3
|
-
import "../tracked-DWInO6EQ.mjs";
|
|
4
|
-
import "../parseTRPCMessage-CTow-umk.mjs";
|
|
5
|
-
import "../resolveResponse-C7cFScHo.mjs";
|
|
6
|
-
import "../contentTypeParsers-SN4WL9ze.mjs";
|
|
7
|
-
import "../unstable-core-do-not-import-9NNw8uQM.mjs";
|
|
8
|
-
import "../observable-UMO3vUa_.mjs";
|
|
9
|
-
import "../initTRPC-BRf4imah.mjs";
|
|
10
|
-
import "../http-CWyjOa1l.mjs";
|
|
11
|
-
import "../node-http-n0vBVXjb.mjs";
|
|
12
|
-
import "../observable-CUiPknO-.mjs";
|
|
13
|
-
import { applyWSSHandler, getWSConnectionHandler, handleKeepAlive, jsonEncoder } from "../ws-DyeWX-EY.mjs";
|
|
14
|
-
|
|
15
|
-
export { applyWSSHandler, getWSConnectionHandler, handleKeepAlive, jsonEncoder };
|
|
1
|
+
import { i as jsonEncoder, n as getWSConnectionHandler, r as handleKeepAlive, t as applyWSSHandler } from "../ws-C7ZOJJeA.mjs";
|
|
2
|
+
export { applyWSSHandler, getWSConnectionHandler, handleKeepAlive, jsonEncoder };
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
//#region src/unstable-core-do-not-import/utils.ts
|
|
3
2
|
/**
|
|
4
3
|
* Ensures there are no duplicate keys when building a procedure.
|
|
@@ -73,7 +72,6 @@ function abortSignalsAnyPonyfill(signals) {
|
|
|
73
72
|
for (const signal of signals) signal.removeEventListener("abort", trigger);
|
|
74
73
|
}
|
|
75
74
|
}
|
|
76
|
-
|
|
77
75
|
//#endregion
|
|
78
76
|
//#region src/unstable-core-do-not-import/rpc/codes.ts
|
|
79
77
|
/**
|
|
@@ -83,7 +81,14 @@ function abortSignalsAnyPonyfill(signals) {
|
|
|
83
81
|
* For tRPC we're copying the last digits of HTTP 4XX errors.
|
|
84
82
|
*/
|
|
85
83
|
const TRPC_ERROR_CODES_BY_KEY = {
|
|
84
|
+
/**
|
|
85
|
+
* Invalid JSON was received by the server.
|
|
86
|
+
* An error occurred on the server while parsing the JSON text.
|
|
87
|
+
*/
|
|
86
88
|
PARSE_ERROR: -32700,
|
|
89
|
+
/**
|
|
90
|
+
* The JSON sent is not a valid Request object.
|
|
91
|
+
*/
|
|
87
92
|
BAD_REQUEST: -32600,
|
|
88
93
|
INTERNAL_SERVER_ERROR: -32603,
|
|
89
94
|
NOT_IMPLEMENTED: -32603,
|
|
@@ -134,89 +139,88 @@ const retryableRpcCodes = [
|
|
|
134
139
|
TRPC_ERROR_CODES_BY_KEY.GATEWAY_TIMEOUT,
|
|
135
140
|
TRPC_ERROR_CODES_BY_KEY.INTERNAL_SERVER_ERROR
|
|
136
141
|
];
|
|
137
|
-
|
|
138
142
|
//#endregion
|
|
139
|
-
Object.defineProperty(exports,
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
143
|
+
Object.defineProperty(exports, "TRPC_ERROR_CODES_BY_KEY", {
|
|
144
|
+
enumerable: true,
|
|
145
|
+
get: function() {
|
|
146
|
+
return TRPC_ERROR_CODES_BY_KEY;
|
|
147
|
+
}
|
|
144
148
|
});
|
|
145
|
-
Object.defineProperty(exports,
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
149
|
+
Object.defineProperty(exports, "TRPC_ERROR_CODES_BY_NUMBER", {
|
|
150
|
+
enumerable: true,
|
|
151
|
+
get: function() {
|
|
152
|
+
return TRPC_ERROR_CODES_BY_NUMBER;
|
|
153
|
+
}
|
|
150
154
|
});
|
|
151
|
-
Object.defineProperty(exports,
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
155
|
+
Object.defineProperty(exports, "abortSignalsAnyPonyfill", {
|
|
156
|
+
enumerable: true,
|
|
157
|
+
get: function() {
|
|
158
|
+
return abortSignalsAnyPonyfill;
|
|
159
|
+
}
|
|
156
160
|
});
|
|
157
|
-
Object.defineProperty(exports,
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
161
|
+
Object.defineProperty(exports, "assert", {
|
|
162
|
+
enumerable: true,
|
|
163
|
+
get: function() {
|
|
164
|
+
return assert;
|
|
165
|
+
}
|
|
162
166
|
});
|
|
163
|
-
Object.defineProperty(exports,
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
167
|
+
Object.defineProperty(exports, "emptyObject", {
|
|
168
|
+
enumerable: true,
|
|
169
|
+
get: function() {
|
|
170
|
+
return emptyObject;
|
|
171
|
+
}
|
|
168
172
|
});
|
|
169
|
-
Object.defineProperty(exports,
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
173
|
+
Object.defineProperty(exports, "identity", {
|
|
174
|
+
enumerable: true,
|
|
175
|
+
get: function() {
|
|
176
|
+
return identity;
|
|
177
|
+
}
|
|
174
178
|
});
|
|
175
|
-
Object.defineProperty(exports,
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
179
|
+
Object.defineProperty(exports, "isAsyncIterable", {
|
|
180
|
+
enumerable: true,
|
|
181
|
+
get: function() {
|
|
182
|
+
return isAsyncIterable;
|
|
183
|
+
}
|
|
180
184
|
});
|
|
181
|
-
Object.defineProperty(exports,
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
185
|
+
Object.defineProperty(exports, "isFunction", {
|
|
186
|
+
enumerable: true,
|
|
187
|
+
get: function() {
|
|
188
|
+
return isFunction;
|
|
189
|
+
}
|
|
186
190
|
});
|
|
187
|
-
Object.defineProperty(exports,
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
191
|
+
Object.defineProperty(exports, "isObject", {
|
|
192
|
+
enumerable: true,
|
|
193
|
+
get: function() {
|
|
194
|
+
return isObject;
|
|
195
|
+
}
|
|
192
196
|
});
|
|
193
|
-
Object.defineProperty(exports,
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
197
|
+
Object.defineProperty(exports, "mergeWithoutOverrides", {
|
|
198
|
+
enumerable: true,
|
|
199
|
+
get: function() {
|
|
200
|
+
return mergeWithoutOverrides;
|
|
201
|
+
}
|
|
198
202
|
});
|
|
199
|
-
Object.defineProperty(exports,
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
203
|
+
Object.defineProperty(exports, "noop", {
|
|
204
|
+
enumerable: true,
|
|
205
|
+
get: function() {
|
|
206
|
+
return noop;
|
|
207
|
+
}
|
|
204
208
|
});
|
|
205
|
-
Object.defineProperty(exports,
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
209
|
+
Object.defineProperty(exports, "retryableRpcCodes", {
|
|
210
|
+
enumerable: true,
|
|
211
|
+
get: function() {
|
|
212
|
+
return retryableRpcCodes;
|
|
213
|
+
}
|
|
210
214
|
});
|
|
211
|
-
Object.defineProperty(exports,
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
215
|
+
Object.defineProperty(exports, "run", {
|
|
216
|
+
enumerable: true,
|
|
217
|
+
get: function() {
|
|
218
|
+
return run;
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
Object.defineProperty(exports, "sleep", {
|
|
222
|
+
enumerable: true,
|
|
223
|
+
get: function() {
|
|
224
|
+
return sleep;
|
|
225
|
+
}
|
|
216
226
|
});
|
|
217
|
-
Object.defineProperty(exports, 'sleep', {
|
|
218
|
-
enumerable: true,
|
|
219
|
-
get: function () {
|
|
220
|
-
return sleep;
|
|
221
|
-
}
|
|
222
|
-
});
|
|
@@ -72,7 +72,6 @@ function abortSignalsAnyPonyfill(signals) {
|
|
|
72
72
|
for (const signal of signals) signal.removeEventListener("abort", trigger);
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
|
-
|
|
76
75
|
//#endregion
|
|
77
76
|
//#region src/unstable-core-do-not-import/rpc/codes.ts
|
|
78
77
|
/**
|
|
@@ -82,7 +81,14 @@ function abortSignalsAnyPonyfill(signals) {
|
|
|
82
81
|
* For tRPC we're copying the last digits of HTTP 4XX errors.
|
|
83
82
|
*/
|
|
84
83
|
const TRPC_ERROR_CODES_BY_KEY = {
|
|
84
|
+
/**
|
|
85
|
+
* Invalid JSON was received by the server.
|
|
86
|
+
* An error occurred on the server while parsing the JSON text.
|
|
87
|
+
*/
|
|
85
88
|
PARSE_ERROR: -32700,
|
|
89
|
+
/**
|
|
90
|
+
* The JSON sent is not a valid Request object.
|
|
91
|
+
*/
|
|
86
92
|
BAD_REQUEST: -32600,
|
|
87
93
|
INTERNAL_SERVER_ERROR: -32603,
|
|
88
94
|
NOT_IMPLEMENTED: -32603,
|
|
@@ -133,7 +139,7 @@ const retryableRpcCodes = [
|
|
|
133
139
|
TRPC_ERROR_CODES_BY_KEY.GATEWAY_TIMEOUT,
|
|
134
140
|
TRPC_ERROR_CODES_BY_KEY.INTERNAL_SERVER_ERROR
|
|
135
141
|
];
|
|
136
|
-
|
|
137
142
|
//#endregion
|
|
138
|
-
export {
|
|
139
|
-
|
|
143
|
+
export { assert as a, isAsyncIterable as c, mergeWithoutOverrides as d, noop as f, abortSignalsAnyPonyfill as i, isFunction as l, sleep as m, TRPC_ERROR_CODES_BY_NUMBER as n, emptyObject as o, run as p, retryableRpcCodes as r, identity as s, TRPC_ERROR_CODES_BY_KEY as t, isObject as u };
|
|
144
|
+
|
|
145
|
+
//# sourceMappingURL=codes-D5Ya6_Bi.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codes-D5Ya6_Bi.mjs","names":[],"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,sBACd,MACA,GAAG,MACI;CACP,MAAM,SAAgB,OAAO,OAAO,YAAY,GAAG,IAAI;CAEvD,KAAK,MAAM,aAAa,MACtB,KAAK,MAAM,OAAO,WAAW;EAC3B,IAAI,OAAO,UAAU,OAAO,SAAS,UAAU,MAC7C,MAAM,IAAI,MAAM,iBAAiB,KAAK;EAExC,OAAO,OAAsB,UAAU;CACzC;CAEF,OAAO;AACT;;;;;AAMA,SAAgB,SAAS,OAAkD;CACzE,OAAO,CAAC,CAAC,SAAS,CAAC,MAAM,QAAQ,KAAK,KAAK,OAAO,UAAU;AAC9D;AAGA,SAAgB,WAAW,IAA0B;CACnD,OAAO,OAAO,OAAO;AACvB;;;;;AAMA,SAAgB,cAA0D;CACxE,OAAO,OAAO,OAAO,IAAI;AAC3B;AAEA,MAAM,0BACJ,OAAO,WAAW,cAAc,CAAC,CAAC,OAAO;AAE3C,SAAgB,gBACd,OACgC;CAChC,OACE,2BAA2B,SAAS,KAAK,KAAK,OAAO,iBAAiB;AAE1E;;;;AAKA,MAAa,OAAe,OAA6B,GAAG;AAG5D,SAAgB,OAAa,CAAC;AAE9B,SAAgB,SAAY,IAAU;CACpC,OAAO;AACT;;;;;;;AAQA,SAAgB,OACd,WACA,MAAM,sBACa;CACnB,IAAI,CAAC,WACH,MAAM,IAAI,MAAM,mBAAmB,KAAK;AAE5C;AAEA,SAAgB,MAAM,KAAK,GAAkB;CAC3C,OAAO,IAAI,SAAe,QAAQ,WAAW,KAAK,EAAE,CAAC;AACvD;;;;;AAMA,SAAgB,wBAAwB,SAAqC;CAC3E,IAAI,OAAO,YAAY,QAAQ,YAC7B,OAAO,YAAY,IAAI,OAAO;CAGhC,MAAM,KAAK,IAAI,gBAAgB;CAE/B,KAAK,MAAM,UAAU,SAAS;EAC5B,IAAI,OAAO,SAAS;GAClB,QAAQ;GACR;EACF;EACA,OAAO,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;CAC1D;CAEA,OAAO,GAAG;CAEV,SAAS,UAAU;EACjB,GAAG,MAAM;EACT,KAAK,MAAM,UAAU,SACnB,OAAO,oBAAoB,SAAS,OAAO;CAE/C;AACF;;;;;;;;;AC1GA,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;AACzB;AAGA,MAAa,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;AACZ;;;;;AASA,MAAa,oBAA8C;CACzD,wBAAwB;CACxB,wBAAwB;CACxB,wBAAwB;CACxB,wBAAwB;AAC1B"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
//#region src/unstable-core-do-not-import/http/contentTypeParsers.ts
|
|
3
2
|
const octetInputParser = {
|
|
4
3
|
_input: null,
|
|
@@ -8,11 +7,10 @@ const octetInputParser = {
|
|
|
8
7
|
throw new Error(`Parsed input was expected to be a ReadableStream but was: ${typeof input}`);
|
|
9
8
|
}
|
|
10
9
|
};
|
|
11
|
-
|
|
12
10
|
//#endregion
|
|
13
|
-
Object.defineProperty(exports,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
});
|
|
11
|
+
Object.defineProperty(exports, "octetInputParser", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: function() {
|
|
14
|
+
return octetInputParser;
|
|
15
|
+
}
|
|
16
|
+
});
|
|
@@ -7,7 +7,7 @@ const octetInputParser = {
|
|
|
7
7
|
throw new Error(`Parsed input was expected to be a ReadableStream but was: ${typeof input}`);
|
|
8
8
|
}
|
|
9
9
|
};
|
|
10
|
-
|
|
11
10
|
//#endregion
|
|
12
|
-
export { octetInputParser };
|
|
13
|
-
|
|
11
|
+
export { octetInputParser as t };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=contentTypeParsers-KFMy_fwz.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contentTypeParsers-KFMy_fwz.mjs","names":[],"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,MAAa,mBAA8D;CACzE,QAAQ;CACR,SAAS;CACT,MAAM,OAAO;EACX,IAAI,iBAAiB,gBACnB,OAAO;EAGT,MAAM,IAAI,MACR,6DAA6D,OAAO,OACtE;CACF;AACF"}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import { n as TRPC_ERROR_CODES_BY_NUMBER, o as emptyObject, t as TRPC_ERROR_CODES_BY_KEY, u as isObject } from "./codes-D5Ya6_Bi.mjs";
|
|
2
|
+
//#region src/unstable-core-do-not-import/createProxy.ts
|
|
3
|
+
const noop = () => {};
|
|
4
|
+
const freezeIfAvailable = (obj) => {
|
|
5
|
+
if (Object.freeze) Object.freeze(obj);
|
|
6
|
+
};
|
|
7
|
+
function createInnerProxy(callback, path, memo) {
|
|
8
|
+
var _memo$cacheKey;
|
|
9
|
+
const cacheKey = path.join(".");
|
|
10
|
+
(_memo$cacheKey = memo[cacheKey]) !== null && _memo$cacheKey !== void 0 || (memo[cacheKey] = new Proxy(noop, {
|
|
11
|
+
get(_obj, key) {
|
|
12
|
+
if (typeof key !== "string" || key === "then") return;
|
|
13
|
+
return createInnerProxy(callback, [...path, key], memo);
|
|
14
|
+
},
|
|
15
|
+
apply(_1, _2, args) {
|
|
16
|
+
const lastOfPath = path[path.length - 1];
|
|
17
|
+
if (lastOfPath === "valueOf" || lastOfPath === "toString" || lastOfPath === "toJSON") return `tRPC.proxy(${path.slice(0, -1).join(".")})`;
|
|
18
|
+
let opts = {
|
|
19
|
+
args,
|
|
20
|
+
path
|
|
21
|
+
};
|
|
22
|
+
if (lastOfPath === "call") opts = {
|
|
23
|
+
args: args.length >= 2 ? [args[1]] : [],
|
|
24
|
+
path: path.slice(0, -1)
|
|
25
|
+
};
|
|
26
|
+
else if (lastOfPath === "apply") opts = {
|
|
27
|
+
args: args.length >= 2 ? args[1] : [],
|
|
28
|
+
path: path.slice(0, -1)
|
|
29
|
+
};
|
|
30
|
+
freezeIfAvailable(opts.args);
|
|
31
|
+
freezeIfAvailable(opts.path);
|
|
32
|
+
return callback(opts);
|
|
33
|
+
}
|
|
34
|
+
}));
|
|
35
|
+
return memo[cacheKey];
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Creates a proxy that calls the callback with the path and arguments
|
|
39
|
+
*
|
|
40
|
+
* @internal
|
|
41
|
+
*/
|
|
42
|
+
const createRecursiveProxy = (callback) => createInnerProxy(callback, [], emptyObject());
|
|
43
|
+
/**
|
|
44
|
+
* Used in place of `new Proxy` where each handler will map 1 level deep to another value.
|
|
45
|
+
*
|
|
46
|
+
* @internal
|
|
47
|
+
*/
|
|
48
|
+
const createFlatProxy = (callback) => {
|
|
49
|
+
return new Proxy(noop, { get(_obj, name) {
|
|
50
|
+
if (name === "then") return;
|
|
51
|
+
return callback(name);
|
|
52
|
+
} });
|
|
53
|
+
};
|
|
54
|
+
//#endregion
|
|
55
|
+
//#region src/unstable-core-do-not-import/http/getHTTPStatusCode.ts
|
|
56
|
+
const JSONRPC2_TO_HTTP_CODE = {
|
|
57
|
+
PARSE_ERROR: 400,
|
|
58
|
+
BAD_REQUEST: 400,
|
|
59
|
+
UNAUTHORIZED: 401,
|
|
60
|
+
PAYMENT_REQUIRED: 402,
|
|
61
|
+
FORBIDDEN: 403,
|
|
62
|
+
NOT_FOUND: 404,
|
|
63
|
+
METHOD_NOT_SUPPORTED: 405,
|
|
64
|
+
TIMEOUT: 408,
|
|
65
|
+
CONFLICT: 409,
|
|
66
|
+
PRECONDITION_FAILED: 412,
|
|
67
|
+
PAYLOAD_TOO_LARGE: 413,
|
|
68
|
+
UNSUPPORTED_MEDIA_TYPE: 415,
|
|
69
|
+
UNPROCESSABLE_CONTENT: 422,
|
|
70
|
+
PRECONDITION_REQUIRED: 428,
|
|
71
|
+
TOO_MANY_REQUESTS: 429,
|
|
72
|
+
CLIENT_CLOSED_REQUEST: 499,
|
|
73
|
+
INTERNAL_SERVER_ERROR: 500,
|
|
74
|
+
NOT_IMPLEMENTED: 501,
|
|
75
|
+
BAD_GATEWAY: 502,
|
|
76
|
+
SERVICE_UNAVAILABLE: 503,
|
|
77
|
+
GATEWAY_TIMEOUT: 504
|
|
78
|
+
};
|
|
79
|
+
const HTTP_CODE_TO_JSONRPC2 = {
|
|
80
|
+
400: "BAD_REQUEST",
|
|
81
|
+
401: "UNAUTHORIZED",
|
|
82
|
+
402: "PAYMENT_REQUIRED",
|
|
83
|
+
403: "FORBIDDEN",
|
|
84
|
+
404: "NOT_FOUND",
|
|
85
|
+
405: "METHOD_NOT_SUPPORTED",
|
|
86
|
+
408: "TIMEOUT",
|
|
87
|
+
409: "CONFLICT",
|
|
88
|
+
412: "PRECONDITION_FAILED",
|
|
89
|
+
413: "PAYLOAD_TOO_LARGE",
|
|
90
|
+
415: "UNSUPPORTED_MEDIA_TYPE",
|
|
91
|
+
422: "UNPROCESSABLE_CONTENT",
|
|
92
|
+
428: "PRECONDITION_REQUIRED",
|
|
93
|
+
429: "TOO_MANY_REQUESTS",
|
|
94
|
+
499: "CLIENT_CLOSED_REQUEST",
|
|
95
|
+
500: "INTERNAL_SERVER_ERROR",
|
|
96
|
+
501: "NOT_IMPLEMENTED",
|
|
97
|
+
502: "BAD_GATEWAY",
|
|
98
|
+
503: "SERVICE_UNAVAILABLE",
|
|
99
|
+
504: "GATEWAY_TIMEOUT"
|
|
100
|
+
};
|
|
101
|
+
function getStatusCodeFromKey(code) {
|
|
102
|
+
var _JSONRPC2_TO_HTTP_COD;
|
|
103
|
+
return (_JSONRPC2_TO_HTTP_COD = JSONRPC2_TO_HTTP_CODE[code]) !== null && _JSONRPC2_TO_HTTP_COD !== void 0 ? _JSONRPC2_TO_HTTP_COD : 500;
|
|
104
|
+
}
|
|
105
|
+
function getStatusKeyFromCode(code) {
|
|
106
|
+
var _HTTP_CODE_TO_JSONRPC;
|
|
107
|
+
return (_HTTP_CODE_TO_JSONRPC = HTTP_CODE_TO_JSONRPC2[code]) !== null && _HTTP_CODE_TO_JSONRPC !== void 0 ? _HTTP_CODE_TO_JSONRPC : "INTERNAL_SERVER_ERROR";
|
|
108
|
+
}
|
|
109
|
+
function getHTTPStatusCode(json) {
|
|
110
|
+
const httpStatuses = new Set((Array.isArray(json) ? json : [json]).map((res) => {
|
|
111
|
+
if ("error" in res && isObject(res.error.data)) {
|
|
112
|
+
var _res$error$data;
|
|
113
|
+
if (typeof ((_res$error$data = res.error.data) === null || _res$error$data === void 0 ? void 0 : _res$error$data["httpStatus"]) === "number") return res.error.data["httpStatus"];
|
|
114
|
+
const code = TRPC_ERROR_CODES_BY_NUMBER[res.error.code];
|
|
115
|
+
return getStatusCodeFromKey(code);
|
|
116
|
+
}
|
|
117
|
+
return 200;
|
|
118
|
+
}));
|
|
119
|
+
if (httpStatuses.size !== 1) return 207;
|
|
120
|
+
return httpStatuses.values().next().value;
|
|
121
|
+
}
|
|
122
|
+
function getHTTPStatusCodeFromError(error) {
|
|
123
|
+
return getStatusCodeFromKey(error.code);
|
|
124
|
+
}
|
|
125
|
+
//#endregion
|
|
126
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/typeof.js
|
|
127
|
+
function _typeof(o) {
|
|
128
|
+
"@babel/helpers - typeof";
|
|
129
|
+
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
130
|
+
return typeof o;
|
|
131
|
+
} : function(o) {
|
|
132
|
+
return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
|
|
133
|
+
}, _typeof(o);
|
|
134
|
+
}
|
|
135
|
+
//#endregion
|
|
136
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/toPrimitive.js
|
|
137
|
+
function toPrimitive(t, r) {
|
|
138
|
+
if ("object" != _typeof(t) || !t) return t;
|
|
139
|
+
var e = t[Symbol.toPrimitive];
|
|
140
|
+
if (void 0 !== e) {
|
|
141
|
+
var i = e.call(t, r || "default");
|
|
142
|
+
if ("object" != _typeof(i)) return i;
|
|
143
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
144
|
+
}
|
|
145
|
+
return ("string" === r ? String : Number)(t);
|
|
146
|
+
}
|
|
147
|
+
//#endregion
|
|
148
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/toPropertyKey.js
|
|
149
|
+
function toPropertyKey(t) {
|
|
150
|
+
var i = toPrimitive(t, "string");
|
|
151
|
+
return "symbol" == _typeof(i) ? i : i + "";
|
|
152
|
+
}
|
|
153
|
+
//#endregion
|
|
154
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/defineProperty.js
|
|
155
|
+
function _defineProperty(e, r, t) {
|
|
156
|
+
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
157
|
+
value: t,
|
|
158
|
+
enumerable: !0,
|
|
159
|
+
configurable: !0,
|
|
160
|
+
writable: !0
|
|
161
|
+
}) : e[r] = t, e;
|
|
162
|
+
}
|
|
163
|
+
//#endregion
|
|
164
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/objectSpread2.js
|
|
165
|
+
function ownKeys(e, r) {
|
|
166
|
+
var t = Object.keys(e);
|
|
167
|
+
if (Object.getOwnPropertySymbols) {
|
|
168
|
+
var o = Object.getOwnPropertySymbols(e);
|
|
169
|
+
r && (o = o.filter(function(r) {
|
|
170
|
+
return Object.getOwnPropertyDescriptor(e, r).enumerable;
|
|
171
|
+
})), t.push.apply(t, o);
|
|
172
|
+
}
|
|
173
|
+
return t;
|
|
174
|
+
}
|
|
175
|
+
function _objectSpread2(e) {
|
|
176
|
+
for (var r = 1; r < arguments.length; r++) {
|
|
177
|
+
var t = null != arguments[r] ? arguments[r] : {};
|
|
178
|
+
r % 2 ? ownKeys(Object(t), !0).forEach(function(r) {
|
|
179
|
+
_defineProperty(e, r, t[r]);
|
|
180
|
+
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r) {
|
|
181
|
+
Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
return e;
|
|
185
|
+
}
|
|
186
|
+
//#endregion
|
|
187
|
+
//#region src/unstable-core-do-not-import/error/getErrorShape.ts
|
|
188
|
+
/**
|
|
189
|
+
* @internal
|
|
190
|
+
*/
|
|
191
|
+
function getErrorShape(opts) {
|
|
192
|
+
const { path, error, config } = opts;
|
|
193
|
+
const { code } = opts.error;
|
|
194
|
+
const shape = {
|
|
195
|
+
message: error.message,
|
|
196
|
+
code: TRPC_ERROR_CODES_BY_KEY[code],
|
|
197
|
+
data: {
|
|
198
|
+
code,
|
|
199
|
+
httpStatus: getHTTPStatusCodeFromError(error)
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
if (config.isDev && typeof opts.error.stack === "string") shape.data.stack = opts.error.stack;
|
|
203
|
+
if (typeof path === "string") shape.data.path = path;
|
|
204
|
+
return config.errorFormatter(_objectSpread2(_objectSpread2({}, opts), {}, { shape }));
|
|
205
|
+
}
|
|
206
|
+
//#endregion
|
|
207
|
+
export { JSONRPC2_TO_HTTP_CODE as a, getStatusCodeFromKey as c, createRecursiveProxy as d, HTTP_CODE_TO_JSONRPC2 as i, getStatusKeyFromCode as l, _objectSpread2 as n, getHTTPStatusCode as o, _defineProperty as r, getHTTPStatusCodeFromError as s, getErrorShape as t, createFlatProxy as u };
|
|
208
|
+
|
|
209
|
+
//# sourceMappingURL=getErrorShape-B0JBUs-i.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getErrorShape-B0JBUs-i.mjs","names":[],"sources":["../src/unstable-core-do-not-import/createProxy.ts","../src/unstable-core-do-not-import/http/getHTTPStatusCode.ts","../src/unstable-core-do-not-import/error/getErrorShape.ts"],"sourcesContent":["import { emptyObject } from './utils';\n\ninterface ProxyCallbackOptions {\n path: readonly string[];\n args: readonly unknown[];\n}\ntype ProxyCallback = (opts: ProxyCallbackOptions) => unknown;\n\nconst noop = () => {\n // noop\n};\n\nconst freezeIfAvailable = (obj: object) => {\n if (Object.freeze) {\n Object.freeze(obj);\n }\n};\n\nfunction createInnerProxy(\n callback: ProxyCallback,\n path: readonly string[],\n memo: Record<string, unknown>,\n) {\n const cacheKey = path.join('.');\n\n memo[cacheKey] ??= new Proxy(noop, {\n get(_obj, key) {\n if (typeof key !== 'string' || key === 'then') {\n // special case for if the proxy is accidentally treated\n // like a PromiseLike (like in `Promise.resolve(proxy)`)\n return undefined;\n }\n return createInnerProxy(callback, [...path, key], memo);\n },\n apply(_1, _2, args) {\n const lastOfPath = path[path.length - 1];\n\n // React 19 may call valueOf / toString / toJSON when coercing a proxy\n // to a primitive (e.g. during rendering or logging). Return a debug\n // string so the coercion does not recurse into the proxy. This only\n // triggers for direct calls (proxy.toString()), not for chained access\n // (proxy.toString.query()), preserving route naming freedom.\n if (\n lastOfPath === 'valueOf' ||\n lastOfPath === 'toString' ||\n lastOfPath === 'toJSON'\n ) {\n const debugPath = path.slice(0, -1).join('.');\n return `tRPC.proxy(${debugPath})`;\n }\n\n let opts = { args, path };\n // special handling for e.g. `trpc.hello.call(this, 'there')` and `trpc.hello.apply(this, ['there'])\n if (lastOfPath === 'call') {\n opts = {\n args: args.length >= 2 ? [args[1]] : [],\n path: path.slice(0, -1),\n };\n } else if (lastOfPath === 'apply') {\n opts = {\n args: args.length >= 2 ? args[1] : [],\n path: path.slice(0, -1),\n };\n }\n freezeIfAvailable(opts.args);\n freezeIfAvailable(opts.path);\n return callback(opts);\n },\n });\n\n return memo[cacheKey];\n}\n\n/**\n * Creates a proxy that calls the callback with the path and arguments\n *\n * @internal\n */\nexport const createRecursiveProxy = <TFaux = unknown>(\n callback: ProxyCallback,\n): TFaux => createInnerProxy(callback, [], emptyObject()) as TFaux;\n\n/**\n * Used in place of `new Proxy` where each handler will map 1 level deep to another value.\n *\n * @internal\n */\nexport const createFlatProxy = <TFaux>(\n callback: (path: keyof TFaux) => any,\n): TFaux => {\n return new Proxy(noop, {\n get(_obj, name) {\n if (name === 'then') {\n // special case for if the proxy is accidentally treated\n // like a PromiseLike (like in `Promise.resolve(proxy)`)\n return undefined;\n }\n return callback(name as any);\n },\n }) as TFaux;\n};\n","import type { TRPCError } from '../error/TRPCError';\nimport type { TRPC_ERROR_CODES_BY_KEY, TRPCResponse } from '../rpc';\nimport { TRPC_ERROR_CODES_BY_NUMBER } from '../rpc';\nimport type { InvertKeyValue, ValueOf } from '../types';\nimport { isObject } from '../utils';\n\nexport const JSONRPC2_TO_HTTP_CODE: Record<\n keyof typeof TRPC_ERROR_CODES_BY_KEY,\n number\n> = {\n PARSE_ERROR: 400,\n BAD_REQUEST: 400,\n UNAUTHORIZED: 401,\n PAYMENT_REQUIRED: 402,\n FORBIDDEN: 403,\n NOT_FOUND: 404,\n METHOD_NOT_SUPPORTED: 405,\n TIMEOUT: 408,\n CONFLICT: 409,\n PRECONDITION_FAILED: 412,\n PAYLOAD_TOO_LARGE: 413,\n UNSUPPORTED_MEDIA_TYPE: 415,\n UNPROCESSABLE_CONTENT: 422,\n PRECONDITION_REQUIRED: 428,\n TOO_MANY_REQUESTS: 429,\n CLIENT_CLOSED_REQUEST: 499,\n INTERNAL_SERVER_ERROR: 500,\n NOT_IMPLEMENTED: 501,\n BAD_GATEWAY: 502,\n SERVICE_UNAVAILABLE: 503,\n GATEWAY_TIMEOUT: 504,\n};\n\nexport const HTTP_CODE_TO_JSONRPC2: InvertKeyValue<\n typeof JSONRPC2_TO_HTTP_CODE\n> = {\n 400: 'BAD_REQUEST',\n 401: 'UNAUTHORIZED',\n 402: 'PAYMENT_REQUIRED',\n 403: 'FORBIDDEN',\n 404: 'NOT_FOUND',\n 405: 'METHOD_NOT_SUPPORTED',\n 408: 'TIMEOUT',\n 409: 'CONFLICT',\n 412: 'PRECONDITION_FAILED',\n 413: 'PAYLOAD_TOO_LARGE',\n 415: 'UNSUPPORTED_MEDIA_TYPE',\n 422: 'UNPROCESSABLE_CONTENT',\n 428: 'PRECONDITION_REQUIRED',\n 429: 'TOO_MANY_REQUESTS',\n 499: 'CLIENT_CLOSED_REQUEST',\n 500: 'INTERNAL_SERVER_ERROR',\n 501: 'NOT_IMPLEMENTED',\n 502: 'BAD_GATEWAY',\n 503: 'SERVICE_UNAVAILABLE',\n 504: 'GATEWAY_TIMEOUT',\n} as const;\n\nexport function getStatusCodeFromKey(\n code: keyof typeof TRPC_ERROR_CODES_BY_KEY,\n) {\n return JSONRPC2_TO_HTTP_CODE[code] ?? 500;\n}\n\nexport function getStatusKeyFromCode(\n code: keyof typeof HTTP_CODE_TO_JSONRPC2,\n): ValueOf<typeof HTTP_CODE_TO_JSONRPC2> {\n return HTTP_CODE_TO_JSONRPC2[code] ?? 'INTERNAL_SERVER_ERROR';\n}\n\nexport function getHTTPStatusCode(json: TRPCResponse | TRPCResponse[]) {\n const arr = Array.isArray(json) ? json : [json];\n const httpStatuses = new Set<number>(\n arr.map((res) => {\n if ('error' in res && isObject(res.error.data)) {\n if (typeof res.error.data?.['httpStatus'] === 'number') {\n return res.error.data['httpStatus'];\n }\n const code = TRPC_ERROR_CODES_BY_NUMBER[res.error.code];\n return getStatusCodeFromKey(code);\n }\n return 200;\n }),\n );\n\n if (httpStatuses.size !== 1) {\n return 207;\n }\n\n const httpStatus = httpStatuses.values().next().value;\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return httpStatus!;\n}\n\nexport function getHTTPStatusCodeFromError(error: TRPCError) {\n return getStatusCodeFromKey(error.code);\n}\n","import { getHTTPStatusCodeFromError } from '../http/getHTTPStatusCode';\nimport type { ProcedureType } from '../procedure';\nimport type { AnyRootTypes, RootConfig } from '../rootConfig';\nimport { TRPC_ERROR_CODES_BY_KEY } from '../rpc';\nimport type { DefaultErrorShape } from './formatter';\nimport type { TRPCError } from './TRPCError';\n\n/**\n * @internal\n */\nexport function getErrorShape<TRoot extends AnyRootTypes>(opts: {\n config: RootConfig<TRoot>;\n error: TRPCError;\n type: ProcedureType | 'unknown';\n path: string | undefined;\n input: unknown;\n ctx: TRoot['ctx'] | undefined;\n}): TRoot['errorShape'] {\n const { path, error, config } = opts;\n const { code } = opts.error;\n const shape: DefaultErrorShape = {\n message: error.message,\n code: TRPC_ERROR_CODES_BY_KEY[code],\n data: {\n code,\n httpStatus: getHTTPStatusCodeFromError(error),\n },\n };\n if (config.isDev && typeof opts.error.stack === 'string') {\n shape.data.stack = opts.error.stack;\n }\n if (typeof path === 'string') {\n shape.data.path = path;\n }\n return config.errorFormatter({ ...opts, shape });\n}\n"],"mappings":"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"}
|