@trpc/client 11.1.2 → 11.1.3-alpha-tmp-tsdown.23
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/TRPCClientError.d.mts +33 -0
- package/dist/TRPCClientError.d.mts.map +1 -0
- package/dist/TRPCClientError.d.ts +29 -25
- package/dist/TRPCClientError.d.ts.map +1 -1
- package/dist/TRPCClientError.js +48 -72
- package/dist/TRPCClientError.mjs +48 -71
- package/dist/TRPCClientError.mjs.map +1 -0
- package/dist/_virtual/rolldown_runtime.js +39 -0
- package/dist/_virtual/rolldown_runtime.mjs +27 -0
- package/dist/createTRPCClient.d.mts +73 -0
- package/dist/createTRPCClient.d.mts.map +1 -0
- package/dist/createTRPCClient.d.ts +38 -34
- package/dist/createTRPCClient.d.ts.map +1 -1
- package/dist/createTRPCClient.js +34 -34
- package/dist/createTRPCClient.mjs +33 -31
- package/dist/createTRPCClient.mjs.map +1 -0
- package/dist/createTRPCUntypedClient.d.mts +9 -0
- package/dist/createTRPCUntypedClient.d.mts.map +1 -0
- package/dist/createTRPCUntypedClient.d.ts +8 -6
- package/dist/createTRPCUntypedClient.d.ts.map +1 -1
- package/dist/createTRPCUntypedClient.js +5 -6
- package/dist/createTRPCUntypedClient.mjs +6 -3
- package/dist/createTRPCUntypedClient.mjs.map +1 -0
- package/dist/getFetch.d.mts +10 -0
- package/dist/getFetch.d.mts.map +1 -0
- package/dist/getFetch.d.ts +9 -2
- package/dist/getFetch.d.ts.map +1 -1
- package/dist/getFetch.js +8 -13
- package/dist/getFetch.mjs +8 -11
- package/dist/getFetch.mjs.map +1 -0
- package/dist/index.d.mts +21 -0
- package/dist/index.d.ts +21 -16
- package/dist/index.js +41 -42
- package/dist/index.mjs +18 -15
- package/dist/internals/TRPCUntypedClient.d.mts +46 -0
- package/dist/internals/TRPCUntypedClient.d.mts.map +1 -0
- package/dist/internals/TRPCUntypedClient.d.ts +40 -33
- package/dist/internals/TRPCUntypedClient.d.ts.map +1 -1
- package/dist/internals/TRPCUntypedClient.js +94 -113
- package/dist/internals/TRPCUntypedClient.mjs +93 -110
- package/dist/internals/TRPCUntypedClient.mjs.map +1 -0
- package/dist/internals/dataLoader.js +101 -116
- package/dist/internals/dataLoader.mjs +101 -114
- package/dist/internals/dataLoader.mjs.map +1 -0
- package/dist/internals/inputWithTrackedEventId.js +9 -12
- package/dist/internals/inputWithTrackedEventId.mjs +9 -10
- package/dist/internals/inputWithTrackedEventId.mjs.map +1 -0
- package/dist/internals/signals.js +39 -40
- package/dist/internals/signals.mjs +39 -39
- package/dist/internals/signals.mjs.map +1 -0
- package/dist/internals/transformer.d.mts +47 -0
- package/dist/internals/transformer.d.mts.map +1 -0
- package/dist/internals/transformer.d.ts +28 -23
- package/dist/internals/transformer.d.ts.map +1 -1
- package/dist/internals/transformer.js +25 -26
- package/dist/internals/transformer.mjs +25 -24
- package/dist/internals/transformer.mjs.map +1 -0
- package/dist/internals/types.d.mts +85 -0
- package/dist/internals/types.d.mts.map +1 -0
- package/dist/internals/types.d.ts +45 -42
- package/dist/internals/types.d.ts.map +1 -1
- package/dist/links/HTTPBatchLinkOptions.d.mts +25 -0
- package/dist/links/HTTPBatchLinkOptions.d.mts.map +1 -0
- package/dist/links/HTTPBatchLinkOptions.d.ts +23 -18
- package/dist/links/HTTPBatchLinkOptions.d.ts.map +1 -1
- package/dist/links/httpBatchLink.d.mts +18 -0
- package/dist/links/httpBatchLink.d.mts.map +1 -0
- package/dist/links/httpBatchLink.d.ts +14 -4
- package/dist/links/httpBatchLink.d.ts.map +1 -1
- package/dist/links/httpBatchLink.js +90 -106
- package/dist/links/httpBatchLink.mjs +89 -103
- package/dist/links/httpBatchLink.mjs.map +1 -0
- package/dist/links/httpBatchStreamLink.d.mts +22 -0
- package/dist/links/httpBatchStreamLink.d.mts.map +1 -0
- package/dist/links/httpBatchStreamLink.d.ts +15 -5
- package/dist/links/httpBatchStreamLink.d.ts.map +1 -1
- package/dist/links/httpBatchStreamLink.js +120 -144
- package/dist/links/httpBatchStreamLink.mjs +119 -141
- package/dist/links/httpBatchStreamLink.mjs.map +1 -0
- package/dist/links/httpLink.d.mts +24 -0
- package/dist/links/httpLink.d.mts.map +1 -0
- package/dist/links/httpLink.d.ts +19 -12
- package/dist/links/httpLink.d.ts.map +1 -1
- package/dist/links/httpLink.js +74 -90
- package/dist/links/httpLink.mjs +73 -87
- package/dist/links/httpLink.mjs.map +1 -0
- package/dist/links/httpSubscriptionLink.d.mts +30 -0
- package/dist/links/httpSubscriptionLink.d.mts.map +1 -0
- package/dist/links/httpSubscriptionLink.d.ts +21 -17
- package/dist/links/httpSubscriptionLink.d.ts.map +1 -1
- package/dist/links/httpSubscriptionLink.js +134 -179
- package/dist/links/httpSubscriptionLink.mjs +133 -176
- package/dist/links/httpSubscriptionLink.mjs.map +1 -0
- package/dist/links/internals/contentTypes.d.mts +10 -0
- package/dist/links/internals/contentTypes.d.mts.map +1 -0
- package/dist/links/internals/contentTypes.d.ts +9 -3
- package/dist/links/internals/contentTypes.d.ts.map +1 -1
- package/dist/links/internals/contentTypes.js +6 -6
- package/dist/links/internals/contentTypes.mjs +6 -4
- package/dist/links/internals/contentTypes.mjs.map +1 -0
- package/dist/links/internals/createChain.js +23 -23
- package/dist/links/internals/createChain.mjs +22 -20
- package/dist/links/internals/createChain.mjs.map +1 -0
- package/dist/links/internals/httpUtils.d.mts +26 -0
- package/dist/links/internals/httpUtils.d.mts.map +1 -0
- package/dist/links/internals/httpUtils.d.ts +22 -64
- package/dist/links/internals/httpUtils.d.ts.map +1 -1
- package/dist/links/internals/httpUtils.js +93 -116
- package/dist/links/internals/httpUtils.mjs +94 -113
- package/dist/links/internals/httpUtils.mjs.map +1 -0
- package/dist/links/internals/subscriptions.d.mts +20 -0
- package/dist/links/internals/subscriptions.d.mts.map +1 -0
- package/dist/links/internals/subscriptions.d.ts +11 -8
- package/dist/links/internals/subscriptions.d.ts.map +1 -1
- package/dist/links/internals/urlWithConnectionParams.d.mts +27 -0
- package/dist/links/internals/urlWithConnectionParams.d.mts.map +1 -0
- package/dist/links/internals/urlWithConnectionParams.d.ts +22 -18
- package/dist/links/internals/urlWithConnectionParams.d.ts.map +1 -1
- package/dist/links/internals/urlWithConnectionParams.js +8 -6
- package/dist/links/internals/urlWithConnectionParams.mjs +8 -4
- package/dist/links/internals/urlWithConnectionParams.mjs.map +1 -0
- package/dist/links/localLink.d.mts +22 -0
- package/dist/links/localLink.d.mts.map +1 -0
- package/dist/links/localLink.d.ts +22 -0
- package/dist/links/localLink.d.ts.map +1 -0
- package/dist/links/localLink.js +192 -0
- package/dist/links/localLink.mjs +193 -0
- package/dist/links/localLink.mjs.map +1 -0
- package/dist/links/loggerLink.d.mts +56 -0
- package/dist/links/loggerLink.d.mts.map +1 -0
- package/dist/links/loggerLink.d.ts +40 -36
- package/dist/links/loggerLink.d.ts.map +1 -1
- package/dist/links/loggerLink.js +113 -166
- package/dist/links/loggerLink.mjs +112 -163
- package/dist/links/loggerLink.mjs.map +1 -0
- package/dist/links/retryLink.d.mts +35 -0
- package/dist/links/retryLink.d.mts.map +1 -0
- package/dist/links/retryLink.d.ts +27 -25
- package/dist/links/retryLink.d.ts.map +1 -1
- package/dist/links/retryLink.js +60 -68
- package/dist/links/retryLink.mjs +59 -65
- package/dist/links/retryLink.mjs.map +1 -0
- package/dist/links/splitLink.d.mts +21 -0
- package/dist/links/splitLink.d.mts.map +1 -0
- package/dist/links/splitLink.d.ts +19 -12
- package/dist/links/splitLink.d.ts.map +1 -1
- package/dist/links/splitLink.js +20 -21
- package/dist/links/splitLink.mjs +19 -18
- package/dist/links/splitLink.mjs.map +1 -0
- package/dist/links/types.d.mts +71 -0
- package/dist/links/types.d.mts.map +1 -0
- package/dist/links/types.d.ts +37 -29
- package/dist/links/types.d.ts.map +1 -1
- package/dist/links/wsLink/createWsClient.d.mts +10 -0
- package/dist/links/wsLink/createWsClient.d.mts.map +1 -0
- package/dist/links/wsLink/createWsClient.d.ts +9 -5
- package/dist/links/wsLink/createWsClient.d.ts.map +1 -1
- package/dist/links/wsLink/createWsClient.js +5 -5
- package/dist/links/wsLink/createWsClient.mjs +5 -2
- package/dist/links/wsLink/createWsClient.mjs.map +1 -0
- package/dist/links/wsLink/wsClient/options.d.mts +69 -0
- package/dist/links/wsLink/wsClient/options.d.mts.map +1 -0
- package/dist/links/wsLink/wsClient/options.d.ts +54 -64
- package/dist/links/wsLink/wsClient/options.d.ts.map +1 -1
- package/dist/links/wsLink/wsClient/options.js +14 -12
- package/dist/links/wsLink/wsClient/options.mjs +14 -10
- package/dist/links/wsLink/wsClient/options.mjs.map +1 -0
- package/dist/links/wsLink/wsClient/requestManager.js +133 -135
- package/dist/links/wsLink/wsClient/requestManager.mjs +133 -132
- package/dist/links/wsLink/wsClient/requestManager.mjs.map +1 -0
- package/dist/links/wsLink/wsClient/utils.js +64 -81
- package/dist/links/wsLink/wsClient/utils.mjs +64 -78
- package/dist/links/wsLink/wsClient/utils.mjs.map +1 -0
- package/dist/links/wsLink/wsClient/wsClient.d.mts +104 -0
- package/dist/links/wsLink/wsClient/wsClient.d.mts.map +1 -0
- package/dist/links/wsLink/wsClient/wsClient.d.ts +99 -79
- package/dist/links/wsLink/wsClient/wsClient.d.ts.map +1 -1
- package/dist/links/wsLink/wsClient/wsClient.js +273 -322
- package/dist/links/wsLink/wsClient/wsClient.mjs +272 -319
- package/dist/links/wsLink/wsClient/wsClient.mjs.map +1 -0
- package/dist/links/wsLink/wsClient/wsConnection.js +155 -178
- package/dist/links/wsLink/wsClient/wsConnection.mjs +154 -175
- package/dist/links/wsLink/wsClient/wsConnection.mjs.map +1 -0
- package/dist/links/wsLink/wsLink.d.mts +15 -0
- package/dist/links/wsLink/wsLink.d.mts.map +1 -0
- package/dist/links/wsLink/wsLink.d.ts +13 -9
- package/dist/links/wsLink/wsLink.d.ts.map +1 -1
- package/dist/links/wsLink/wsLink.js +30 -31
- package/dist/links/wsLink/wsLink.mjs +29 -28
- package/dist/links/wsLink/wsLink.mjs.map +1 -0
- package/dist/links.js +11 -0
- package/dist/links.mjs +11 -0
- package/dist/node_modules/.pnpm/@oxc-project_runtime@0.71.0/node_modules/@oxc-project/runtime/src/helpers/usingCtx.js +68 -0
- package/dist/node_modules/.pnpm/@oxc-project_runtime@0.71.0/node_modules/@oxc-project/runtime/src/helpers/usingCtx.mjs +66 -0
- package/dist/node_modules/.pnpm/@oxc-project_runtime@0.71.0/node_modules/@oxc-project/runtime/src/helpers/usingCtx.mjs.map +1 -0
- package/dist/unstable-internals.d.mts +3 -0
- package/dist/unstable-internals.d.ts +3 -3
- package/dist/unstable-internals.js +2 -6
- package/dist/unstable-internals.mjs +3 -1
- package/links/httpBatchLink/package.json +1 -0
- package/links/httpLink/package.json +1 -0
- package/links/loggerLink/package.json +1 -0
- package/links/splitLink/package.json +1 -0
- package/links/wsLink/wsLink/package.json +1 -0
- package/package.json +64 -29
- package/src/TRPCClientError.ts +4 -9
- package/src/internals/dataLoader.ts +2 -6
- package/src/internals/signals.ts +16 -0
- package/src/links/httpSubscriptionLink.ts +3 -18
- package/src/links/localLink.ts +277 -0
- package/src/links/wsLink/wsClient/requestManager.ts +9 -0
- package/src/links/wsLink/wsClient/wsClient.ts +1 -1
- package/src/links.ts +1 -0
- package/unstable-internals/package.json +1 -0
- package/dist/index.d.ts.map +0 -1
- package/dist/internals/dataLoader.d.ts +0 -13
- package/dist/internals/dataLoader.d.ts.map +0 -1
- package/dist/internals/inputWithTrackedEventId.d.ts +0 -2
- package/dist/internals/inputWithTrackedEventId.d.ts.map +0 -1
- package/dist/internals/signals.d.ts +0 -15
- package/dist/internals/signals.d.ts.map +0 -1
- package/dist/links/internals/createChain.d.ts +0 -8
- package/dist/links/internals/createChain.d.ts.map +0 -1
- package/dist/links/internals/dedupeLink.d.ts +0 -7
- package/dist/links/internals/dedupeLink.d.ts.map +0 -1
- package/dist/links/wsLink/wsClient/requestManager.d.ts +0 -102
- package/dist/links/wsLink/wsClient/requestManager.d.ts.map +0 -1
- package/dist/links/wsLink/wsClient/utils.d.ts +0 -38
- package/dist/links/wsLink/wsClient/utils.d.ts.map +0 -1
- package/dist/links/wsLink/wsClient/wsConnection.d.ts +0 -79
- package/dist/links/wsLink/wsClient/wsConnection.d.ts.map +0 -1
- package/dist/links.d.ts +0 -11
- package/dist/links.d.ts.map +0 -1
- package/dist/unstable-internals.d.ts.map +0 -1
|
@@ -1,184 +1,141 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { resultOf } from './internals/urlWithConnectionParams.mjs';
|
|
1
|
+
import { TRPCClientError } from "../TRPCClientError.mjs";
|
|
2
|
+
import { raceAbortSignals } from "../internals/signals.mjs";
|
|
3
|
+
import { getTransformer } from "../internals/transformer.mjs";
|
|
4
|
+
import { getUrl } from "./internals/httpUtils.mjs";
|
|
5
|
+
import { resultOf } from "./internals/urlWithConnectionParams.mjs";
|
|
6
|
+
import { inputWithTrackedEventId } from "../internals/inputWithTrackedEventId.mjs";
|
|
7
|
+
import { behaviorSubject, observable } from "@trpc/server/observable";
|
|
8
|
+
import { retryableRpcCodes, run, sseStreamConsumer } from "@trpc/server/unstable-core-do-not-import";
|
|
10
9
|
|
|
10
|
+
//#region src/links/httpSubscriptionLink.ts
|
|
11
11
|
async function urlWithConnectionParams(opts) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
let url = await resultOf(opts.url);
|
|
13
|
+
if (opts.connectionParams) {
|
|
14
|
+
const params = await resultOf(opts.connectionParams);
|
|
15
|
+
const prefix = url.includes("?") ? "&" : "?";
|
|
16
|
+
url += prefix + "connectionParams=" + encodeURIComponent(JSON.stringify(params));
|
|
17
|
+
}
|
|
18
|
+
return url;
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
case 'connecting':
|
|
134
|
-
{
|
|
135
|
-
const lastState = connectionState.get();
|
|
136
|
-
const error = chunk.event && TRPCClientError.from(chunk.event);
|
|
137
|
-
if (!error && lastState.state === 'connecting') {
|
|
138
|
-
break;
|
|
139
|
-
}
|
|
140
|
-
connectionState.next({
|
|
141
|
-
type: 'state',
|
|
142
|
-
state: 'connecting',
|
|
143
|
-
error
|
|
144
|
-
});
|
|
145
|
-
break;
|
|
146
|
-
}
|
|
147
|
-
case 'timeout':
|
|
148
|
-
{
|
|
149
|
-
connectionState.next({
|
|
150
|
-
type: 'state',
|
|
151
|
-
state: 'connecting',
|
|
152
|
-
error: new TRPCClientError(`Timeout of ${chunk.ms}ms reached while waiting for a response`)
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
observer.next({
|
|
158
|
-
result: {
|
|
159
|
-
type: 'stopped'
|
|
160
|
-
}
|
|
161
|
-
});
|
|
162
|
-
connectionState.next({
|
|
163
|
-
type: 'state',
|
|
164
|
-
state: 'idle',
|
|
165
|
-
error: null
|
|
166
|
-
});
|
|
167
|
-
observer.complete();
|
|
168
|
-
}).catch((error)=>{
|
|
169
|
-
observer.error(TRPCClientError.from(error));
|
|
170
|
-
});
|
|
171
|
-
return ()=>{
|
|
172
|
-
observer.complete();
|
|
173
|
-
ac.abort();
|
|
174
|
-
connectionSub.unsubscribe();
|
|
175
|
-
};
|
|
176
|
-
});
|
|
177
|
-
};
|
|
178
|
-
};
|
|
21
|
+
* @see https://trpc.io/docs/client/links/httpSubscriptionLink
|
|
22
|
+
*/
|
|
23
|
+
function httpSubscriptionLink(opts) {
|
|
24
|
+
const transformer = getTransformer(opts.transformer);
|
|
25
|
+
return () => {
|
|
26
|
+
return ({ op }) => {
|
|
27
|
+
return observable((observer) => {
|
|
28
|
+
const { type, path, input } = op;
|
|
29
|
+
/* istanbul ignore if -- @preserve */
|
|
30
|
+
if (type !== "subscription") throw new Error("httpSubscriptionLink only supports subscriptions");
|
|
31
|
+
let lastEventId = void 0;
|
|
32
|
+
const ac = new AbortController();
|
|
33
|
+
const signal = raceAbortSignals(op.signal, ac.signal);
|
|
34
|
+
const eventSourceStream = sseStreamConsumer({
|
|
35
|
+
url: async () => getUrl({
|
|
36
|
+
transformer,
|
|
37
|
+
url: await urlWithConnectionParams(opts),
|
|
38
|
+
input: inputWithTrackedEventId(input, lastEventId),
|
|
39
|
+
path,
|
|
40
|
+
type,
|
|
41
|
+
signal: null
|
|
42
|
+
}),
|
|
43
|
+
init: () => resultOf(opts.eventSourceOptions, { op }),
|
|
44
|
+
signal,
|
|
45
|
+
deserialize: transformer.output.deserialize,
|
|
46
|
+
EventSource: opts.EventSource ?? globalThis.EventSource
|
|
47
|
+
});
|
|
48
|
+
const connectionState = behaviorSubject({
|
|
49
|
+
type: "state",
|
|
50
|
+
state: "connecting",
|
|
51
|
+
error: null
|
|
52
|
+
});
|
|
53
|
+
const connectionSub = connectionState.subscribe({ next(state) {
|
|
54
|
+
observer.next({ result: state });
|
|
55
|
+
} });
|
|
56
|
+
run(async () => {
|
|
57
|
+
for await (const chunk of eventSourceStream) switch (chunk.type) {
|
|
58
|
+
case "ping": break;
|
|
59
|
+
case "data":
|
|
60
|
+
const chunkData = chunk.data;
|
|
61
|
+
let result;
|
|
62
|
+
if (chunkData.id) {
|
|
63
|
+
lastEventId = chunkData.id;
|
|
64
|
+
result = {
|
|
65
|
+
id: chunkData.id,
|
|
66
|
+
data: chunkData
|
|
67
|
+
};
|
|
68
|
+
} else result = { data: chunkData.data };
|
|
69
|
+
observer.next({
|
|
70
|
+
result,
|
|
71
|
+
context: { eventSource: chunk.eventSource }
|
|
72
|
+
});
|
|
73
|
+
break;
|
|
74
|
+
case "connected": {
|
|
75
|
+
observer.next({
|
|
76
|
+
result: { type: "started" },
|
|
77
|
+
context: { eventSource: chunk.eventSource }
|
|
78
|
+
});
|
|
79
|
+
connectionState.next({
|
|
80
|
+
type: "state",
|
|
81
|
+
state: "pending",
|
|
82
|
+
error: null
|
|
83
|
+
});
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
case "serialized-error": {
|
|
87
|
+
const error = TRPCClientError.from({ error: chunk.error });
|
|
88
|
+
if (retryableRpcCodes.includes(chunk.error.code)) {
|
|
89
|
+
connectionState.next({
|
|
90
|
+
type: "state",
|
|
91
|
+
state: "connecting",
|
|
92
|
+
error
|
|
93
|
+
});
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
throw error;
|
|
97
|
+
}
|
|
98
|
+
case "connecting": {
|
|
99
|
+
const lastState = connectionState.get();
|
|
100
|
+
const error = chunk.event && TRPCClientError.from(chunk.event);
|
|
101
|
+
if (!error && lastState.state === "connecting") break;
|
|
102
|
+
connectionState.next({
|
|
103
|
+
type: "state",
|
|
104
|
+
state: "connecting",
|
|
105
|
+
error
|
|
106
|
+
});
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
case "timeout": connectionState.next({
|
|
110
|
+
type: "state",
|
|
111
|
+
state: "connecting",
|
|
112
|
+
error: new TRPCClientError(`Timeout of ${chunk.ms}ms reached while waiting for a response`)
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
observer.next({ result: { type: "stopped" } });
|
|
116
|
+
connectionState.next({
|
|
117
|
+
type: "state",
|
|
118
|
+
state: "idle",
|
|
119
|
+
error: null
|
|
120
|
+
});
|
|
121
|
+
observer.complete();
|
|
122
|
+
}).catch((error) => {
|
|
123
|
+
observer.error(TRPCClientError.from(error));
|
|
124
|
+
});
|
|
125
|
+
return () => {
|
|
126
|
+
observer.complete();
|
|
127
|
+
ac.abort();
|
|
128
|
+
connectionSub.unsubscribe();
|
|
129
|
+
};
|
|
130
|
+
});
|
|
131
|
+
};
|
|
132
|
+
};
|
|
179
133
|
}
|
|
180
134
|
/**
|
|
181
|
-
|
|
182
|
-
|
|
135
|
+
* @deprecated use {@link httpSubscriptionLink} instead
|
|
136
|
+
*/
|
|
137
|
+
const unstable_httpSubscriptionLink = httpSubscriptionLink;
|
|
183
138
|
|
|
139
|
+
//#endregion
|
|
184
140
|
export { httpSubscriptionLink, unstable_httpSubscriptionLink };
|
|
141
|
+
//# sourceMappingURL=httpSubscriptionLink.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"httpSubscriptionLink.mjs","names":["opts: UrlOptionsWithConnectionParams","opts: HTTPSubscriptionLinkOptions<\n inferClientTypes<TInferrable>,\n TEventSource\n >","lastEventId: string | undefined","result: TRPCResult<unknown>"],"sources":["../../src/links/httpSubscriptionLink.ts"],"sourcesContent":["import { behaviorSubject, observable } from '@trpc/server/observable';\nimport type { TRPCErrorShape, TRPCResult } from '@trpc/server/rpc';\nimport type {\n AnyClientTypes,\n EventSourceLike,\n inferClientTypes,\n InferrableClientTypes,\n} from '@trpc/server/unstable-core-do-not-import';\nimport {\n retryableRpcCodes,\n run,\n sseStreamConsumer,\n} from '@trpc/server/unstable-core-do-not-import';\nimport { inputWithTrackedEventId } from '../internals/inputWithTrackedEventId';\nimport { raceAbortSignals } from '../internals/signals';\nimport { TRPCClientError } from '../TRPCClientError';\nimport type { TRPCConnectionState } from '../unstable-internals';\nimport { getTransformer, type TransformerOptions } from '../unstable-internals';\nimport { getUrl } from './internals/httpUtils';\nimport {\n resultOf,\n type UrlOptionsWithConnectionParams,\n} from './internals/urlWithConnectionParams';\nimport type { Operation, TRPCLink } from './types';\n\nasync function urlWithConnectionParams(\n opts: UrlOptionsWithConnectionParams,\n): Promise<string> {\n let url = await resultOf(opts.url);\n if (opts.connectionParams) {\n const params = await resultOf(opts.connectionParams);\n\n const prefix = url.includes('?') ? '&' : '?';\n url +=\n prefix + 'connectionParams=' + encodeURIComponent(JSON.stringify(params));\n }\n\n return url;\n}\n\ntype HTTPSubscriptionLinkOptions<\n TRoot extends AnyClientTypes,\n TEventSource extends EventSourceLike.AnyConstructor = typeof EventSource,\n> = {\n /**\n * EventSource ponyfill\n */\n EventSource?: TEventSource;\n /**\n * EventSource options or a callback that returns them\n */\n eventSourceOptions?:\n | EventSourceLike.InitDictOf<TEventSource>\n | ((opts: {\n op: Operation;\n }) =>\n | EventSourceLike.InitDictOf<TEventSource>\n | Promise<EventSourceLike.InitDictOf<TEventSource>>);\n} & TransformerOptions<TRoot> &\n UrlOptionsWithConnectionParams;\n\n/**\n * @see https://trpc.io/docs/client/links/httpSubscriptionLink\n */\nexport function httpSubscriptionLink<\n TInferrable extends InferrableClientTypes,\n TEventSource extends EventSourceLike.AnyConstructor,\n>(\n opts: HTTPSubscriptionLinkOptions<\n inferClientTypes<TInferrable>,\n TEventSource\n >,\n): TRPCLink<TInferrable> {\n const transformer = getTransformer(opts.transformer);\n\n return () => {\n return ({ op }) => {\n return observable((observer) => {\n const { type, path, input } = op;\n\n /* istanbul ignore if -- @preserve */\n if (type !== 'subscription') {\n throw new Error('httpSubscriptionLink only supports subscriptions');\n }\n\n let lastEventId: string | undefined = undefined;\n const ac = new AbortController();\n const signal = raceAbortSignals(op.signal, ac.signal);\n const eventSourceStream = sseStreamConsumer<{\n EventSource: TEventSource;\n data: Partial<{\n id?: string;\n data: unknown;\n }>;\n error: TRPCErrorShape;\n }>({\n url: async () =>\n getUrl({\n transformer,\n url: await urlWithConnectionParams(opts),\n input: inputWithTrackedEventId(input, lastEventId),\n path,\n type,\n signal: null,\n }),\n init: () => resultOf(opts.eventSourceOptions, { op }),\n signal,\n deserialize: transformer.output.deserialize,\n EventSource:\n opts.EventSource ??\n (globalThis.EventSource as never as TEventSource),\n });\n\n const connectionState = behaviorSubject<\n TRPCConnectionState<TRPCClientError<any>>\n >({\n type: 'state',\n state: 'connecting',\n error: null,\n });\n\n const connectionSub = connectionState.subscribe({\n next(state) {\n observer.next({\n result: state,\n });\n },\n });\n run(async () => {\n for await (const chunk of eventSourceStream) {\n switch (chunk.type) {\n case 'ping':\n // do nothing\n break;\n case 'data':\n const chunkData = chunk.data;\n\n let result: TRPCResult<unknown>;\n if (chunkData.id) {\n // if the `tracked()`-helper is used, we always have an `id` field\n lastEventId = chunkData.id;\n result = {\n id: chunkData.id,\n data: chunkData,\n };\n } else {\n result = {\n data: chunkData.data,\n };\n }\n\n observer.next({\n result,\n context: {\n eventSource: chunk.eventSource,\n },\n });\n break;\n case 'connected': {\n observer.next({\n result: {\n type: 'started',\n },\n context: {\n eventSource: chunk.eventSource,\n },\n });\n connectionState.next({\n type: 'state',\n state: 'pending',\n error: null,\n });\n break;\n }\n case 'serialized-error': {\n const error = TRPCClientError.from({ error: chunk.error });\n\n if (retryableRpcCodes.includes(chunk.error.code)) {\n //\n connectionState.next({\n type: 'state',\n state: 'connecting',\n error,\n });\n break;\n }\n //\n // non-retryable error, cancel the subscription\n throw error;\n }\n case 'connecting': {\n const lastState = connectionState.get();\n\n const error = chunk.event && TRPCClientError.from(chunk.event);\n if (!error && lastState.state === 'connecting') {\n break;\n }\n\n connectionState.next({\n type: 'state',\n state: 'connecting',\n error,\n });\n break;\n }\n case 'timeout': {\n connectionState.next({\n type: 'state',\n state: 'connecting',\n error: new TRPCClientError(\n `Timeout of ${chunk.ms}ms reached while waiting for a response`,\n ),\n });\n }\n }\n }\n observer.next({\n result: {\n type: 'stopped',\n },\n });\n connectionState.next({\n type: 'state',\n state: 'idle',\n error: null,\n });\n observer.complete();\n }).catch((error) => {\n observer.error(TRPCClientError.from(error));\n });\n\n return () => {\n observer.complete();\n ac.abort();\n connectionSub.unsubscribe();\n };\n });\n };\n };\n}\n\n/**\n * @deprecated use {@link httpSubscriptionLink} instead\n */\nexport const unstable_httpSubscriptionLink = httpSubscriptionLink;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region src/links/internals/contentTypes.d.ts
|
|
2
|
+
declare function isOctetType(input: unknown): input is Blob | Uint8Array<ArrayBufferLike>;
|
|
3
|
+
declare function isFormData(input: unknown): input is FormData;
|
|
4
|
+
declare function isNonJsonSerializable(input: unknown): input is Blob | FormData | Uint8Array<ArrayBufferLike>;
|
|
5
|
+
|
|
6
|
+
//#endregion
|
|
7
|
+
//# sourceMappingURL=contentTypes.d.ts.map
|
|
8
|
+
|
|
9
|
+
export { isFormData as isFormData$1, isNonJsonSerializable as isNonJsonSerializable$1, isOctetType as isOctetType$1 };
|
|
10
|
+
//# sourceMappingURL=contentTypes.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contentTypes.d.mts","names":[],"sources":["../../../src/links/internals/contentTypes.ts"],"sourcesContent":[],"mappings":";iBAAgB,WAAA,2BAA0B,OAAA,WAAA;AAA1B,iBAQA,UAAA,CARW,KAAA,EAAA,OAAA,CAAA,EAAA,KAAA,IAQc,QARd;AAAA,iBAYX,qBAAA,CAZW,KAAA,EAAA,OAAA,CAAA,EAAA,KAAA,IAYyB,IAZzB,GAYyB,QAZzB,GAYyB,UAZzB,CAYyB,eAZzB,CAAA"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
//#region src/links/internals/contentTypes.d.ts
|
|
2
|
+
declare function isOctetType(input: unknown): input is Blob | Uint8Array<ArrayBufferLike>;
|
|
3
|
+
declare function isFormData(input: unknown): input is FormData;
|
|
4
|
+
declare function isNonJsonSerializable(input: unknown): input is Blob | FormData | Uint8Array<ArrayBufferLike>;
|
|
5
|
+
|
|
6
|
+
//#endregion
|
|
7
|
+
//# sourceMappingURL=contentTypes.d.ts.map
|
|
8
|
+
|
|
9
|
+
export { isFormData, isNonJsonSerializable, isOctetType };
|
|
4
10
|
//# sourceMappingURL=contentTypes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contentTypes.d.ts","
|
|
1
|
+
{"version":3,"file":"contentTypes.d.ts","names":[],"sources":["../../../src/links/internals/contentTypes.ts"],"sourcesContent":[],"mappings":";iBAAgB,WAAA,2BAA0B,OAAA,WAAA;AAA1B,iBAQA,UAAA,CARW,KAAA,EAAA,OAAA,CAAA,EAAA,KAAA,IAQc,QARd;AAAA,iBAYX,qBAAA,CAZW,KAAA,EAAA,OAAA,CAAA,EAAA,KAAA,IAYyB,IAZzB,GAYyB,QAZzB,GAYyB,UAZzB,CAYyB,eAZzB,CAAA"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
'use strict';
|
|
2
1
|
|
|
2
|
+
//#region src/links/internals/contentTypes.ts
|
|
3
3
|
function isOctetType(input) {
|
|
4
|
-
|
|
5
|
-
input instanceof Blob;
|
|
4
|
+
return input instanceof Uint8Array || input instanceof Blob;
|
|
6
5
|
}
|
|
7
6
|
function isFormData(input) {
|
|
8
|
-
|
|
7
|
+
return input instanceof FormData;
|
|
9
8
|
}
|
|
10
9
|
function isNonJsonSerializable(input) {
|
|
11
|
-
|
|
10
|
+
return isOctetType(input) || isFormData(input);
|
|
12
11
|
}
|
|
13
12
|
|
|
13
|
+
//#endregion
|
|
14
14
|
exports.isFormData = isFormData;
|
|
15
15
|
exports.isNonJsonSerializable = isNonJsonSerializable;
|
|
16
|
-
exports.isOctetType = isOctetType;
|
|
16
|
+
exports.isOctetType = isOctetType;
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
+
//#region src/links/internals/contentTypes.ts
|
|
1
2
|
function isOctetType(input) {
|
|
2
|
-
|
|
3
|
-
input instanceof Blob;
|
|
3
|
+
return input instanceof Uint8Array || input instanceof Blob;
|
|
4
4
|
}
|
|
5
5
|
function isFormData(input) {
|
|
6
|
-
|
|
6
|
+
return input instanceof FormData;
|
|
7
7
|
}
|
|
8
8
|
function isNonJsonSerializable(input) {
|
|
9
|
-
|
|
9
|
+
return isOctetType(input) || isFormData(input);
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
+
//#endregion
|
|
12
13
|
export { isFormData, isNonJsonSerializable, isOctetType };
|
|
14
|
+
//# sourceMappingURL=contentTypes.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contentTypes.mjs","names":["input: unknown"],"sources":["../../../src/links/internals/contentTypes.ts"],"sourcesContent":["export function isOctetType(input: unknown) {\n return (\n input instanceof Uint8Array ||\n // File extends from Blob but is only available in nodejs from v20\n input instanceof Blob\n );\n}\n\nexport function isFormData(input: unknown) {\n return input instanceof FormData;\n}\n\nexport function isNonJsonSerializable(input: unknown) {\n return isOctetType(input) || isFormData(input);\n}\n"],"mappings":";AAAA,SAAgB,YAAYA,OAAgB;AAC1C,QACE,iBAAiB,cAEjB,iBAAiB;AAEpB;AAED,SAAgB,WAAWA,OAAgB;AACzC,QAAO,iBAAiB;AACzB;AAED,SAAgB,sBAAsBA,OAAgB;AACpD,QAAO,YAAY,MAAM,IAAI,WAAW,MAAM;AAC/C"}
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
|
|
1
|
+
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.js');
|
|
2
|
+
const __trpc_server_observable = require_rolldown_runtime.__toESM(require("@trpc/server/observable"));
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
return obs$.subscribe(observer);
|
|
23
|
-
});
|
|
4
|
+
//#region src/links/internals/createChain.ts
|
|
5
|
+
/** @internal */
|
|
6
|
+
function createChain(opts) {
|
|
7
|
+
return (0, __trpc_server_observable.observable)((observer) => {
|
|
8
|
+
function execute(index = 0, op = opts.op) {
|
|
9
|
+
const next = opts.links[index];
|
|
10
|
+
if (!next) throw new Error("No more links to execute - did you forget to add an ending link?");
|
|
11
|
+
const subscription = next({
|
|
12
|
+
op,
|
|
13
|
+
next(nextOp) {
|
|
14
|
+
const nextObserver = execute(index + 1, nextOp);
|
|
15
|
+
return nextObserver;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
return subscription;
|
|
19
|
+
}
|
|
20
|
+
const obs$ = execute();
|
|
21
|
+
return obs$.subscribe(observer);
|
|
22
|
+
});
|
|
24
23
|
}
|
|
25
24
|
|
|
26
|
-
|
|
25
|
+
//#endregion
|
|
26
|
+
exports.createChain = createChain;
|
|
@@ -1,24 +1,26 @@
|
|
|
1
|
-
import { observable } from
|
|
1
|
+
import { observable } from "@trpc/server/observable";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
3
|
+
//#region src/links/internals/createChain.ts
|
|
4
|
+
/** @internal */
|
|
5
|
+
function createChain(opts) {
|
|
6
|
+
return observable((observer) => {
|
|
7
|
+
function execute(index = 0, op = opts.op) {
|
|
8
|
+
const next = opts.links[index];
|
|
9
|
+
if (!next) throw new Error("No more links to execute - did you forget to add an ending link?");
|
|
10
|
+
const subscription = next({
|
|
11
|
+
op,
|
|
12
|
+
next(nextOp) {
|
|
13
|
+
const nextObserver = execute(index + 1, nextOp);
|
|
14
|
+
return nextObserver;
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
return subscription;
|
|
18
|
+
}
|
|
19
|
+
const obs$ = execute();
|
|
20
|
+
return obs$.subscribe(observer);
|
|
21
|
+
});
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
//#endregion
|
|
24
25
|
export { createChain };
|
|
26
|
+
//# sourceMappingURL=createChain.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createChain.mjs","names":["opts: {\n links: OperationLink<TRouter, TInput, TOutput>[];\n op: Operation<TInput>;\n}"],"sources":["../../../src/links/internals/createChain.ts"],"sourcesContent":["import { observable } from '@trpc/server/observable';\nimport type { AnyRouter } from '@trpc/server/unstable-core-do-not-import';\nimport type {\n Operation,\n OperationLink,\n OperationResultObservable,\n} from '../types';\n\n/** @internal */\nexport function createChain<\n TRouter extends AnyRouter,\n TInput = unknown,\n TOutput = unknown,\n>(opts: {\n links: OperationLink<TRouter, TInput, TOutput>[];\n op: Operation<TInput>;\n}): OperationResultObservable<TRouter, TOutput> {\n return observable((observer) => {\n function execute(index = 0, op = opts.op) {\n const next = opts.links[index];\n if (!next) {\n throw new Error(\n 'No more links to execute - did you forget to add an ending link?',\n );\n }\n const subscription = next({\n op,\n next(nextOp) {\n const nextObserver = execute(index + 1, nextOp);\n\n return nextObserver;\n },\n });\n return subscription;\n }\n\n const obs$ = execute();\n return obs$.subscribe(observer);\n });\n}\n"],"mappings":";;;;AASA,SAAgB,YAIdA,MAG8C;AAC9C,QAAO,WAAW,CAAC,aAAa;EAC9B,SAAS,QAAQ,QAAQ,GAAG,KAAK,KAAK,IAAI;GACxC,MAAM,OAAO,KAAK,MAAM;AACxB,QAAK,KACH,OAAM,IAAI,MACR;GAGJ,MAAM,eAAe,KAAK;IACxB;IACA,KAAK,QAAQ;KACX,MAAM,eAAe,QAAQ,QAAQ,GAAG,OAAO;AAE/C,YAAO;IACR;GACF,EAAC;AACF,UAAO;EACR;EAED,MAAM,OAAO,SAAS;AACtB,SAAO,KAAK,UAAU,SAAS;CAChC,EAAC;AACH"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { FetchEsque } from "../../internals/types.mjs";
|
|
2
|
+
import { TransformerOptions } from "../../internals/transformer.mjs";
|
|
3
|
+
import { AnyClientTypes, CombinedDataTransformer, Maybe, ProcedureType } from "@trpc/server/unstable-core-do-not-import";
|
|
4
|
+
|
|
5
|
+
//#region src/links/internals/httpUtils.d.ts
|
|
6
|
+
/**
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
type HTTPLinkBaseOptions<TRoot extends Pick<AnyClientTypes, 'transformer'>> = {
|
|
13
|
+
url: string | URL;
|
|
14
|
+
/**
|
|
15
|
+
* Add ponyfill for fetch
|
|
16
|
+
*/
|
|
17
|
+
fetch?: FetchEsque;
|
|
18
|
+
/**
|
|
19
|
+
* Send all requests `as POST`s requests regardless of the procedure type
|
|
20
|
+
* The HTTP handler must separately allow overriding the method. See:
|
|
21
|
+
* @see https://trpc.io/docs/rpc
|
|
22
|
+
*/
|
|
23
|
+
methodOverride?: 'POST';
|
|
24
|
+
} & TransformerOptions<TRoot>; //#endregion
|
|
25
|
+
export { HTTPLinkBaseOptions };
|
|
26
|
+
//# sourceMappingURL=httpUtils.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"httpUtils.d.mts","names":[],"sources":["../../../src/links/internals/httpUtils.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;KAqBY,kCACI,KAAK;EADT,GAAA,EAAA,MAAA,GAGI,GAHJ;EAAmB;;;EACX,KAEJ,CAAA,EAIN,UAJM;EAAG;;;AAWG;;;IAAlB,mBAAmB"}
|