typeferry 0.13.0 → 0.14.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/client/visibility-manager.d.ts +22 -11
- package/dist/client/visibility-manager.js +258 -42
- package/dist/client/visibility-manager.js.map +1 -1
- package/dist/server/server.d.ts +8 -1
- package/dist/server/server.js +4 -4
- package/dist/server/server.js.map +1 -1
- package/dist/server/transports/hono-streaming-body-limit.d.ts +7 -0
- package/dist/server/transports/hono-streaming-body-limit.js +155 -0
- package/dist/server/transports/hono-streaming-body-limit.js.map +1 -0
- package/dist/server/transports/node-hono-transport.js +39 -16
- package/dist/server/transports/node-hono-transport.js.map +1 -1
- package/package.json +1 -1
|
@@ -26,37 +26,48 @@ export declare class VisibilityManager {
|
|
|
26
26
|
* Guards against duplicate reconnects when both the heartbeat and
|
|
27
27
|
* visibilitychange fire in quick succession after wake.
|
|
28
28
|
*/
|
|
29
|
-
private
|
|
29
|
+
private recovery;
|
|
30
|
+
private missedHeartbeat;
|
|
31
|
+
private destroyed;
|
|
32
|
+
private initializedSocket;
|
|
33
|
+
private readonly rememberInitialization;
|
|
30
34
|
constructor(client: Client, idleTimer: IdleTimer | null);
|
|
31
35
|
/**
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
* do a full cleanup before reconnecting.
|
|
36
|
+
* Explicit recovery replaces the socket immediately. Automatic wake recovery
|
|
37
|
+
* first checks for traffic so timer throttling does not cancel live requests.
|
|
35
38
|
*/
|
|
36
39
|
reconnect(): void;
|
|
37
|
-
/** Removes
|
|
40
|
+
/** Removes listeners, timers and pending recovery work. */
|
|
38
41
|
destroy(): void;
|
|
42
|
+
private finishRecovery;
|
|
43
|
+
private waitForInitialization;
|
|
44
|
+
private replaceConnection;
|
|
45
|
+
private waitForTraffic;
|
|
39
46
|
private setup;
|
|
40
47
|
private startHeartbeat;
|
|
41
48
|
private stopHeartbeat;
|
|
42
49
|
private handlePageHide;
|
|
43
50
|
/**
|
|
44
51
|
* Unified entry point for sleep detection from both the heartbeat
|
|
45
|
-
* timer and `visibilitychange`.
|
|
52
|
+
* timer and `visibilitychange`. One recovery owns the full lifecycle to prevent
|
|
46
53
|
* duplicate reconnects when both fire after wake.
|
|
47
54
|
*/
|
|
48
55
|
private handleSleepDetected;
|
|
49
56
|
/**
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
57
|
+
* A token change still needs a new handshake. Otherwise delivered traffic
|
|
58
|
+
* allows the existing socket to survive a timer gap without replaying RPCs.
|
|
59
|
+
* Socket identity prevents a late hook/probe from retiring a newer connection.
|
|
53
60
|
*/
|
|
54
61
|
private runHookAndReconnect;
|
|
62
|
+
/**
|
|
63
|
+
* A competing reconnect may already have adopted the refreshed token. Keep
|
|
64
|
+
* that successor, but never mistake a newer socket for a newer handshake.
|
|
65
|
+
*/
|
|
66
|
+
private needsTokenHandshake;
|
|
67
|
+
private runBeforeReconnect;
|
|
55
68
|
/**
|
|
56
69
|
* Determines whether reconnection is needed and triggers it. Routes
|
|
57
70
|
* through `handleSleepDetected` for deduplication with the heartbeat.
|
|
58
71
|
*/
|
|
59
72
|
private handlePageVisible;
|
|
60
|
-
/** Promisified delay for hook retry backoff. */
|
|
61
|
-
private delay;
|
|
62
73
|
}
|
|
@@ -1,14 +1,76 @@
|
|
|
1
|
-
import { ClientEvents } from '../utils/index.js';
|
|
1
|
+
import { ClientEvents, MessageType, Presentation, WebSocketState } from '../utils/index.js';
|
|
2
|
+
import { LogLevel } from './logger.js';
|
|
2
3
|
/**
|
|
3
4
|
* Time threshold below which we trust the socket connection is healthy.
|
|
4
|
-
*
|
|
5
|
-
* disconnected.
|
|
5
|
+
* Longer hides check delivered traffic before trusting an open socket.
|
|
6
6
|
*/
|
|
7
7
|
const FORCE_RECONNECT_THRESHOLD = 60 * 60 * 1000; // 1 hour
|
|
8
8
|
/** Heartbeat fires every 30s to detect OS sleep gaps. */
|
|
9
9
|
const HEARTBEAT_INTERVAL_MS = 30_000;
|
|
10
|
-
/**
|
|
10
|
+
/** A timer gap is wake evidence; background throttling can also cause it. */
|
|
11
11
|
const HEARTBEAT_THRESHOLD_MS = 60_000;
|
|
12
|
+
/** The existing server heartbeat sends traffic every 25 seconds. */
|
|
13
|
+
const RECOVERY_TIMEOUT_MS = 30_000;
|
|
14
|
+
/**
|
|
15
|
+
* Only delivered server envelopes satisfy the grace. This is activity evidence,
|
|
16
|
+
* not a new round-trip protocol or a replacement for ordinary RPC timeouts.
|
|
17
|
+
*/
|
|
18
|
+
function isServerTraffic(value) {
|
|
19
|
+
if (typeof value !== 'object' || value === null || !('t' in value))
|
|
20
|
+
return false;
|
|
21
|
+
switch (value.t) {
|
|
22
|
+
case MessageType.PING:
|
|
23
|
+
return true;
|
|
24
|
+
case MessageType.AUTH:
|
|
25
|
+
return 'authenticated' in value && typeof value.authenticated === 'boolean';
|
|
26
|
+
case MessageType.RPC_RESPONSE:
|
|
27
|
+
return 'id' in value && typeof value.id === 'string';
|
|
28
|
+
case MessageType.EVENT:
|
|
29
|
+
return 'event' in value && typeof value.event === 'string' &&
|
|
30
|
+
'channel' in value && typeof value.channel === 'string';
|
|
31
|
+
default:
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Owns one bounded recovery wait and releases every timer/listener when it
|
|
37
|
+
* settles. Abort also settles the promise so close cannot strand async work.
|
|
38
|
+
*/
|
|
39
|
+
function waitForRecovery(signal, timeoutMs, subscribe) {
|
|
40
|
+
if (signal.aborted)
|
|
41
|
+
return Promise.resolve(false);
|
|
42
|
+
return new Promise((resolve, reject) => {
|
|
43
|
+
let unsubscribe;
|
|
44
|
+
let settled = false;
|
|
45
|
+
const cleanup = () => {
|
|
46
|
+
clearTimeout(timer);
|
|
47
|
+
signal.removeEventListener('abort', onAbort);
|
|
48
|
+
unsubscribe?.();
|
|
49
|
+
unsubscribe = undefined;
|
|
50
|
+
};
|
|
51
|
+
const finish = (success) => {
|
|
52
|
+
if (settled)
|
|
53
|
+
return;
|
|
54
|
+
settled = true;
|
|
55
|
+
cleanup();
|
|
56
|
+
resolve(success);
|
|
57
|
+
};
|
|
58
|
+
const onAbort = () => finish(false);
|
|
59
|
+
const timer = setTimeout(() => finish(false), timeoutMs);
|
|
60
|
+
signal.addEventListener('abort', onAbort, { once: true });
|
|
61
|
+
try {
|
|
62
|
+
unsubscribe = subscribe?.(finish);
|
|
63
|
+
// A subscriber can settle synchronously before returning its cleanup.
|
|
64
|
+
if (settled)
|
|
65
|
+
cleanup();
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
settled = true;
|
|
69
|
+
cleanup();
|
|
70
|
+
reject(error);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
12
74
|
/** Max retry attempts for the pre-reconnect hook (network may not be ready on wake). */
|
|
13
75
|
const HOOK_RETRY_ATTEMPTS = 3;
|
|
14
76
|
/** Delay between hook retry attempts in ms. */
|
|
@@ -39,36 +101,115 @@ export class VisibilityManager {
|
|
|
39
101
|
* Guards against duplicate reconnects when both the heartbeat and
|
|
40
102
|
* visibilitychange fire in quick succession after wake.
|
|
41
103
|
*/
|
|
42
|
-
|
|
104
|
+
recovery = null;
|
|
105
|
+
missedHeartbeat = false;
|
|
106
|
+
destroyed = false;
|
|
107
|
+
initializedSocket;
|
|
108
|
+
rememberInitialization = () => {
|
|
109
|
+
this.initializedSocket = this.client.clientSocket.socket;
|
|
110
|
+
};
|
|
43
111
|
constructor(client, idleTimer) {
|
|
44
112
|
this.client = client;
|
|
45
113
|
this.idleTimer = idleTimer;
|
|
114
|
+
this.initializedSocket = client.initialized ? client.clientSocket.socket : undefined;
|
|
115
|
+
this.client.on(ClientEvents.INITIALIZED, this.rememberInitialization);
|
|
46
116
|
this.setup();
|
|
47
117
|
}
|
|
48
118
|
/**
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
* do a full cleanup before reconnecting.
|
|
119
|
+
* Explicit recovery replaces the socket immediately. Automatic wake recovery
|
|
120
|
+
* first checks for traffic so timer throttling does not cancel live requests.
|
|
52
121
|
*/
|
|
53
122
|
reconnect() {
|
|
123
|
+
// Explicit reconnect remains usable after close; cancelled automatic work
|
|
124
|
+
// still cannot restart the client or reattach browser recovery listeners.
|
|
125
|
+
this.recovery?.abort();
|
|
126
|
+
const recovery = new AbortController();
|
|
127
|
+
this.recovery = recovery;
|
|
128
|
+
this.finishRecovery(recovery, this.replaceConnection(recovery));
|
|
129
|
+
}
|
|
130
|
+
/** Removes listeners, timers and pending recovery work. */
|
|
131
|
+
destroy() {
|
|
132
|
+
this.destroyed = true;
|
|
133
|
+
this.client.off(ClientEvents.INITIALIZED, this.rememberInitialization);
|
|
134
|
+
this.recovery?.abort();
|
|
135
|
+
this.recovery = null;
|
|
136
|
+
this.missedHeartbeat = false;
|
|
137
|
+
if (typeof document !== 'undefined' && this.visibilityHandler) {
|
|
138
|
+
document.removeEventListener('visibilitychange', this.visibilityHandler);
|
|
139
|
+
}
|
|
140
|
+
this.visibilityHandler = null;
|
|
141
|
+
this.stopHeartbeat();
|
|
142
|
+
}
|
|
143
|
+
finishRecovery(recovery, operation) {
|
|
144
|
+
void operation.catch(error => {
|
|
145
|
+
if (!recovery.signal.aborted) {
|
|
146
|
+
this.client.logger.connection(LogLevel.WARN, 'Wake recovery failed', {}, error);
|
|
147
|
+
}
|
|
148
|
+
}).finally(() => {
|
|
149
|
+
recovery.abort();
|
|
150
|
+
if (this.recovery === recovery)
|
|
151
|
+
this.recovery = null;
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
waitForInitialization(signal) {
|
|
155
|
+
return waitForRecovery(signal, RECOVERY_TIMEOUT_MS, finish => {
|
|
156
|
+
const initialized = () => finish(true);
|
|
157
|
+
const failed = () => finish(false);
|
|
158
|
+
this.client.on(ClientEvents.INITIALIZED, initialized);
|
|
159
|
+
this.client.on(ClientEvents.INITIALIZATION_FAILED, failed);
|
|
160
|
+
return () => {
|
|
161
|
+
this.client.off(ClientEvents.INITIALIZED, initialized);
|
|
162
|
+
this.client.off(ClientEvents.INITIALIZATION_FAILED, failed);
|
|
163
|
+
};
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
async replaceConnection(recovery) {
|
|
54
167
|
const wasInitialized = this.client.initialized;
|
|
168
|
+
// Subscribe before replacing: even synchronous initialization is observable.
|
|
169
|
+
const initialized = this.waitForInitialization(recovery.signal);
|
|
55
170
|
this.client.initialized = false;
|
|
56
171
|
this.client.initializing = false;
|
|
57
172
|
this.client.clientSocket.retireConnection();
|
|
173
|
+
if (recovery.signal.aborted)
|
|
174
|
+
return initialized;
|
|
58
175
|
this.client.clientSocket.connect();
|
|
59
176
|
this.lastHeartbeat = Date.now();
|
|
60
|
-
this.reconnecting = false;
|
|
61
177
|
if (wasInitialized) {
|
|
62
178
|
this.client.emit(ClientEvents.WEBSOCKET_RECONNECTING);
|
|
63
179
|
}
|
|
180
|
+
return initialized;
|
|
64
181
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
182
|
+
waitForTraffic(socket, signal) {
|
|
183
|
+
return waitForRecovery(signal, RECOVERY_TIMEOUT_MS, finish => {
|
|
184
|
+
const token = this.client.context.token;
|
|
185
|
+
const contextChanged = () => {
|
|
186
|
+
if (token !== this.client.context.token)
|
|
187
|
+
finish(false);
|
|
188
|
+
};
|
|
189
|
+
const message = (event) => {
|
|
190
|
+
if (typeof event.data !== 'string')
|
|
191
|
+
return;
|
|
192
|
+
try {
|
|
193
|
+
const envelope = Presentation.decode(event.data);
|
|
194
|
+
if (isServerTraffic(envelope))
|
|
195
|
+
finish(true);
|
|
196
|
+
}
|
|
197
|
+
catch {
|
|
198
|
+
// Malformed frames are not evidence of a working TypeFerry peer.
|
|
199
|
+
}
|
|
200
|
+
};
|
|
201
|
+
const closed = () => finish(false);
|
|
202
|
+
this.client.on(ClientEvents.CONTEXT_CHANGED, contextChanged);
|
|
203
|
+
socket.addEventListener('message', message);
|
|
204
|
+
socket.addEventListener('close', closed);
|
|
205
|
+
socket.addEventListener('error', closed);
|
|
206
|
+
return () => {
|
|
207
|
+
this.client.off(ClientEvents.CONTEXT_CHANGED, contextChanged);
|
|
208
|
+
socket.removeEventListener('message', message);
|
|
209
|
+
socket.removeEventListener('close', closed);
|
|
210
|
+
socket.removeEventListener('error', closed);
|
|
211
|
+
};
|
|
212
|
+
});
|
|
72
213
|
}
|
|
73
214
|
setup() {
|
|
74
215
|
if (typeof window === 'undefined')
|
|
@@ -92,7 +233,12 @@ export class VisibilityManager {
|
|
|
92
233
|
const gap = now - this.lastHeartbeat;
|
|
93
234
|
this.lastHeartbeat = now;
|
|
94
235
|
if (gap > HEARTBEAT_THRESHOLD_MS) {
|
|
95
|
-
|
|
236
|
+
if (document.visibilityState === 'hidden') {
|
|
237
|
+
this.missedHeartbeat = true;
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
this.handleSleepDetected('heartbeat', gap);
|
|
241
|
+
}
|
|
96
242
|
}
|
|
97
243
|
}, HEARTBEAT_INTERVAL_MS);
|
|
98
244
|
}
|
|
@@ -112,39 +258,110 @@ export class VisibilityManager {
|
|
|
112
258
|
}
|
|
113
259
|
/**
|
|
114
260
|
* Unified entry point for sleep detection from both the heartbeat
|
|
115
|
-
* timer and `visibilitychange`.
|
|
261
|
+
* timer and `visibilitychange`. One recovery owns the full lifecycle to prevent
|
|
116
262
|
* duplicate reconnects when both fire after wake.
|
|
117
263
|
*/
|
|
118
264
|
handleSleepDetected(source, durationMs) {
|
|
119
|
-
if (this.
|
|
265
|
+
if (this.destroyed || this.recovery)
|
|
120
266
|
return;
|
|
121
|
-
|
|
267
|
+
const recovery = new AbortController();
|
|
268
|
+
this.recovery = recovery;
|
|
269
|
+
this.missedHeartbeat = false;
|
|
122
270
|
if (this.client.options?.debug) {
|
|
123
271
|
console.log(`TypeFerry: Sleep detected via ${source} (${Math.round(durationMs / 1000)}s gap), reconnecting`);
|
|
124
272
|
}
|
|
125
|
-
this.runHookAndReconnect();
|
|
273
|
+
this.finishRecovery(recovery, this.runHookAndReconnect(recovery));
|
|
126
274
|
}
|
|
127
275
|
/**
|
|
128
|
-
*
|
|
129
|
-
*
|
|
130
|
-
*
|
|
276
|
+
* A token change still needs a new handshake. Otherwise delivered traffic
|
|
277
|
+
* allows the existing socket to survive a timer gap without replaying RPCs.
|
|
278
|
+
* Socket identity prevents a late hook/probe from retiring a newer connection.
|
|
131
279
|
*/
|
|
132
|
-
async runHookAndReconnect() {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
280
|
+
async runHookAndReconnect(recovery) {
|
|
281
|
+
const { signal } = recovery;
|
|
282
|
+
const socket = this.client.clientSocket.socket;
|
|
283
|
+
const token = this.client.context.token;
|
|
284
|
+
const hookSucceeded = this.onBeforeReconnect
|
|
285
|
+
? await this.runBeforeReconnect(signal)
|
|
286
|
+
: true;
|
|
287
|
+
if (signal.aborted)
|
|
288
|
+
return;
|
|
289
|
+
const currentSocket = this.client.clientSocket.socket;
|
|
290
|
+
if (!hookSucceeded || this.needsTokenHandshake(socket, token)) {
|
|
291
|
+
await this.replaceConnection(recovery);
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
if (currentSocket !== socket) {
|
|
295
|
+
if (this.initializedSocket !== this.client.clientSocket.socket) {
|
|
296
|
+
await this.waitForInitialization(signal);
|
|
297
|
+
}
|
|
298
|
+
return;
|
|
299
|
+
}
|
|
300
|
+
if (this.client.clientSocket.ready &&
|
|
301
|
+
this.client.initialized &&
|
|
302
|
+
this.initializedSocket === socket &&
|
|
303
|
+
socket) {
|
|
304
|
+
const receivedTraffic = await this.waitForTraffic(socket, signal);
|
|
305
|
+
if (signal.aborted)
|
|
306
|
+
return;
|
|
307
|
+
if (this.needsTokenHandshake(socket, token)) {
|
|
308
|
+
await this.replaceConnection(recovery);
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
311
|
+
if (this.client.clientSocket.socket !== socket) {
|
|
312
|
+
if (this.initializedSocket !== this.client.clientSocket.socket) {
|
|
313
|
+
await this.waitForInitialization(signal);
|
|
144
314
|
}
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
if (receivedTraffic && this.client.clientSocket.ready)
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
320
|
+
// Join transport-owned backoff, handshake or subscription initialization.
|
|
321
|
+
if (this.client.clientSocket.connecting ||
|
|
322
|
+
this.client.clientSocket.socket?.readyState === WebSocketState.CONNECTING ||
|
|
323
|
+
this.client.initializing ||
|
|
324
|
+
(this.client.clientSocket.ready && this.initializedSocket !== currentSocket)) {
|
|
325
|
+
await this.waitForInitialization(signal);
|
|
326
|
+
return;
|
|
327
|
+
}
|
|
328
|
+
await this.replaceConnection(recovery);
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* A competing reconnect may already have adopted the refreshed token. Keep
|
|
332
|
+
* that successor, but never mistake a newer socket for a newer handshake.
|
|
333
|
+
*/
|
|
334
|
+
needsTokenHandshake(previousSocket, previousToken) {
|
|
335
|
+
const token = this.client.context.token;
|
|
336
|
+
if (token === previousToken)
|
|
337
|
+
return false;
|
|
338
|
+
const socket = this.client.clientSocket.socket;
|
|
339
|
+
if (!socket || socket === previousSocket)
|
|
340
|
+
return true;
|
|
341
|
+
return new URL(socket.url).searchParams.get('token') !== (token ?? null);
|
|
342
|
+
}
|
|
343
|
+
async runBeforeReconnect(signal) {
|
|
344
|
+
const hook = this.onBeforeReconnect;
|
|
345
|
+
if (!hook)
|
|
346
|
+
return true;
|
|
347
|
+
for (let attempt = 0; attempt < HOOK_RETRY_ATTEMPTS; attempt++) {
|
|
348
|
+
if (signal.aborted)
|
|
349
|
+
return false;
|
|
350
|
+
try {
|
|
351
|
+
const succeeded = await waitForRecovery(signal, RECOVERY_TIMEOUT_MS, finish => {
|
|
352
|
+
void hook().then(() => finish(true), () => finish(false));
|
|
353
|
+
});
|
|
354
|
+
if (succeeded)
|
|
355
|
+
return true;
|
|
356
|
+
}
|
|
357
|
+
catch {
|
|
358
|
+
// Synchronous hook failures use the same bounded retry as rejections.
|
|
359
|
+
}
|
|
360
|
+
if (attempt < HOOK_RETRY_ATTEMPTS - 1) {
|
|
361
|
+
await waitForRecovery(signal, HOOK_RETRY_DELAY_MS);
|
|
145
362
|
}
|
|
146
363
|
}
|
|
147
|
-
|
|
364
|
+
return false;
|
|
148
365
|
}
|
|
149
366
|
/**
|
|
150
367
|
* Determines whether reconnection is needed and triggers it. Routes
|
|
@@ -155,7 +372,10 @@ export class VisibilityManager {
|
|
|
155
372
|
this.hiddenAt = null;
|
|
156
373
|
const socket = this.client.clientSocket.socket;
|
|
157
374
|
const isConnected = socket?.readyState === WebSocket.OPEN && this.client.initialized;
|
|
158
|
-
const needsReconnect = !isConnected ||
|
|
375
|
+
const needsReconnect = !isConnected ||
|
|
376
|
+
this.missedHeartbeat ||
|
|
377
|
+
Date.now() - this.lastHeartbeat > HEARTBEAT_THRESHOLD_MS ||
|
|
378
|
+
hiddenDuration > FORCE_RECONNECT_THRESHOLD;
|
|
159
379
|
if (needsReconnect) {
|
|
160
380
|
this.handleSleepDetected('visibility', hiddenDuration);
|
|
161
381
|
return;
|
|
@@ -165,9 +385,5 @@ export class VisibilityManager {
|
|
|
165
385
|
this.idleTimer.start();
|
|
166
386
|
}
|
|
167
387
|
}
|
|
168
|
-
/** Promisified delay for hook retry backoff. */
|
|
169
|
-
delay(ms) {
|
|
170
|
-
return new Promise(resolve => setTimeout(resolve, ms));
|
|
171
|
-
}
|
|
172
388
|
}
|
|
173
389
|
//# sourceMappingURL=visibility-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visibility-manager.js","sourceRoot":"","sources":["../../src/client/visibility-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"visibility-manager.js","sourceRoot":"","sources":["../../src/client/visibility-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/server/server.d.ts
CHANGED
|
@@ -37,6 +37,13 @@ export declare const DEFAULT_MAX_REQUEST_BODY_SIZE_BYTES: number;
|
|
|
37
37
|
export interface RequestBodySizeLimit {
|
|
38
38
|
readonly pathPrefix: string;
|
|
39
39
|
readonly maxSize: number;
|
|
40
|
+
/**
|
|
41
|
+
* Buffered (the default) rejects chunked overflow before application handlers.
|
|
42
|
+
* Streaming passes bounded chunks to handlers, allowing early authentication;
|
|
43
|
+
* handlers must consume and validate EOF before committing upload side effects.
|
|
44
|
+
* Every matching rule must opt in; any buffered rule retains buffering.
|
|
45
|
+
*/
|
|
46
|
+
readonly bodyMode?: 'buffered' | 'streaming';
|
|
40
47
|
}
|
|
41
48
|
export type ServerOptions = {
|
|
42
49
|
host?: string;
|
|
@@ -107,7 +114,7 @@ export declare class Server<Methods extends ServerMethods = ServerMethods> exten
|
|
|
107
114
|
* Returns the authoritative Hono application for route registration.
|
|
108
115
|
*/
|
|
109
116
|
get app(): Hono;
|
|
110
|
-
setAuth<TParameters, TResult>({ auth, logIn }: AuthSetup<TParameters, TResult>): void;
|
|
117
|
+
setAuth<TParameters, TResult>({ auth, logIn, }: AuthSetup<TParameters, TResult>): void;
|
|
111
118
|
setChannelAuthorization(checker: ChannelChecker): void;
|
|
112
119
|
close(): Promise<boolean>;
|
|
113
120
|
private closeTransports;
|
package/dist/server/server.js
CHANGED
|
@@ -44,7 +44,7 @@ export class Server extends ServerChannel {
|
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
setupHttpListening() {
|
|
47
|
-
this.httpTransport.http?.on('error', error => {
|
|
47
|
+
this.httpTransport.http?.on('error', (error) => {
|
|
48
48
|
this.emit(Server.ERROR_EVENT, error);
|
|
49
49
|
});
|
|
50
50
|
this.httpTransport.listen(() => {
|
|
@@ -92,7 +92,7 @@ export class Server extends ServerChannel {
|
|
|
92
92
|
* commonly use this as a low-cost guard before request handling.
|
|
93
93
|
*/
|
|
94
94
|
isReady() {
|
|
95
|
-
return new Promise(resolve => {
|
|
95
|
+
return new Promise((resolve) => {
|
|
96
96
|
if (this.ready) {
|
|
97
97
|
resolve(true);
|
|
98
98
|
return;
|
|
@@ -106,7 +106,7 @@ export class Server extends ServerChannel {
|
|
|
106
106
|
get app() {
|
|
107
107
|
return this.httpTransport.app;
|
|
108
108
|
}
|
|
109
|
-
setAuth({ auth, logIn }) {
|
|
109
|
+
setAuth({ auth, logIn, }) {
|
|
110
110
|
this.isAuthEnabled = true;
|
|
111
111
|
this.auth = auth;
|
|
112
112
|
this.addMethod(Methods.RPC_LOGIN, logIn);
|
|
@@ -119,7 +119,7 @@ export class Server extends ServerChannel {
|
|
|
119
119
|
return this.closePromise;
|
|
120
120
|
}
|
|
121
121
|
async closeTransports() {
|
|
122
|
-
this.allClients.forEach(node => node.close());
|
|
122
|
+
this.allClients.forEach((node) => node.close());
|
|
123
123
|
this.allClients.clear();
|
|
124
124
|
this.clientsByUserId.clear();
|
|
125
125
|
this.methods.clear();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAQhC,OAAO,EACL,eAAe,EACf,OAAO,EACP,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,UAAU,GACX,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAGlD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,kBAAkB,GACnB,MAAM,cAAc,CAAA;AAsCrB,0EAA0E;AAC1E,MAAM,CAAC,MAAM,mCAAmC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { MiddlewareHandler } from 'hono';
|
|
2
|
+
/**
|
|
3
|
+
* Pass chunks only on consumer demand. Native byte-sized queueing avoids the
|
|
4
|
+
* Node-to-Web default count strategy treating a byte high-water mark as a chunk
|
|
5
|
+
* count. Unlike buffered limits, routes own authentication and verified EOF.
|
|
6
|
+
*/
|
|
7
|
+
export declare function streamingBodyLimit(maxSize: number): MiddlewareHandler;
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { HTTPException } from 'hono/http-exception';
|
|
2
|
+
import { Readable } from 'node:stream';
|
|
3
|
+
import { ServerResponse } from 'node:http';
|
|
4
|
+
const TOO_LARGE = 'Request Entity Too Large';
|
|
5
|
+
/**
|
|
6
|
+
* Pass chunks only on consumer demand. Native byte-sized queueing avoids the
|
|
7
|
+
* Node-to-Web default count strategy treating a byte high-water mark as a chunk
|
|
8
|
+
* count. Unlike buffered limits, routes own authentication and verified EOF.
|
|
9
|
+
*/
|
|
10
|
+
export function streamingBodyLimit(maxSize) {
|
|
11
|
+
return async (c, next) => {
|
|
12
|
+
const original = c.req.raw;
|
|
13
|
+
const env = c.env;
|
|
14
|
+
const incoming = typeof env === 'object' &&
|
|
15
|
+
env !== null &&
|
|
16
|
+
'incoming' in env &&
|
|
17
|
+
env.incoming instanceof Readable
|
|
18
|
+
? env.incoming
|
|
19
|
+
: undefined;
|
|
20
|
+
const outgoing = typeof env === 'object' &&
|
|
21
|
+
env !== null &&
|
|
22
|
+
'outgoing' in env &&
|
|
23
|
+
env.outgoing instanceof ServerResponse
|
|
24
|
+
? env.outgoing
|
|
25
|
+
: undefined;
|
|
26
|
+
if (original.method === 'GET' || original.method === 'HEAD')
|
|
27
|
+
return next();
|
|
28
|
+
const declared = original.headers.get('content-length');
|
|
29
|
+
if (declared !== null &&
|
|
30
|
+
/^\d+$/u.test(declared) &&
|
|
31
|
+
Number(declared) > maxSize)
|
|
32
|
+
return c.text(TOO_LARGE, 413);
|
|
33
|
+
// Accessing the adapter's .body would eagerly create its default Node/Web
|
|
34
|
+
// bridge. Native input stays paused until the first authenticated read.
|
|
35
|
+
const source = incoming instanceof Readable ? undefined : original.body;
|
|
36
|
+
if (!incoming && !source)
|
|
37
|
+
return next();
|
|
38
|
+
let reader;
|
|
39
|
+
let controller;
|
|
40
|
+
let ended = false;
|
|
41
|
+
let exceeded = false;
|
|
42
|
+
let size = 0;
|
|
43
|
+
let cancellationScheduled = false;
|
|
44
|
+
const cancelSource = (reason) => {
|
|
45
|
+
if (cancellationScheduled || ended || !reader)
|
|
46
|
+
return;
|
|
47
|
+
cancellationScheduled = true;
|
|
48
|
+
const cancel = () => {
|
|
49
|
+
outgoing?.off('finish', cancel);
|
|
50
|
+
outgoing?.off('close', cancel);
|
|
51
|
+
const activeReader = reader;
|
|
52
|
+
if (activeReader) {
|
|
53
|
+
void activeReader
|
|
54
|
+
.cancel(reason)
|
|
55
|
+
.finally(() => activeReader.releaseLock())
|
|
56
|
+
.catch(() => undefined);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
// Destroying a live IncomingMessage before the error response is written
|
|
60
|
+
// also destroys its socket. Stop consuming now, cancel after response EOF.
|
|
61
|
+
if (outgoing &&
|
|
62
|
+
!outgoing.writableFinished &&
|
|
63
|
+
!outgoing.destroyed &&
|
|
64
|
+
!incoming?.destroyed) {
|
|
65
|
+
outgoing.once('finish', cancel);
|
|
66
|
+
outgoing.once('close', cancel);
|
|
67
|
+
}
|
|
68
|
+
else
|
|
69
|
+
cancel();
|
|
70
|
+
};
|
|
71
|
+
const abort = () => {
|
|
72
|
+
if (ended)
|
|
73
|
+
return;
|
|
74
|
+
controller?.error(original.signal.reason);
|
|
75
|
+
cancelSource(original.signal.reason);
|
|
76
|
+
};
|
|
77
|
+
const body = new ReadableStream({
|
|
78
|
+
start(value) {
|
|
79
|
+
controller = value;
|
|
80
|
+
},
|
|
81
|
+
async pull(value) {
|
|
82
|
+
try {
|
|
83
|
+
if (!reader) {
|
|
84
|
+
const input = incoming instanceof Readable
|
|
85
|
+
? Readable.toWeb(incoming, {
|
|
86
|
+
strategy: {
|
|
87
|
+
highWaterMark: incoming.readableHighWaterMark,
|
|
88
|
+
size: (chunk) => {
|
|
89
|
+
if (!(chunk instanceof Uint8Array))
|
|
90
|
+
throw new TypeError('Invalid native request bytes');
|
|
91
|
+
return chunk.byteLength;
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
})
|
|
95
|
+
: source;
|
|
96
|
+
if (!input)
|
|
97
|
+
throw new Error('Missing streaming request body');
|
|
98
|
+
reader = input.getReader();
|
|
99
|
+
}
|
|
100
|
+
const chunk = await reader.read();
|
|
101
|
+
if (ended || original.signal.aborted)
|
|
102
|
+
return;
|
|
103
|
+
if (chunk.done) {
|
|
104
|
+
ended = true;
|
|
105
|
+
reader.releaseLock();
|
|
106
|
+
value.close();
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
const bytes = chunk.value;
|
|
110
|
+
if (!(bytes instanceof Uint8Array))
|
|
111
|
+
throw new TypeError('Invalid streaming request bytes');
|
|
112
|
+
size += bytes.byteLength;
|
|
113
|
+
if (size > maxSize) {
|
|
114
|
+
exceeded = true;
|
|
115
|
+
throw new HTTPException(413, { message: TOO_LARGE });
|
|
116
|
+
}
|
|
117
|
+
value.enqueue(bytes);
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
if (!ended && !original.signal.aborted)
|
|
121
|
+
value.error(error);
|
|
122
|
+
cancelSource(error);
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
cancel(reason) {
|
|
126
|
+
cancelSource(reason);
|
|
127
|
+
},
|
|
128
|
+
}, { highWaterMark: 0 });
|
|
129
|
+
original.signal.addEventListener('abort', abort, { once: true });
|
|
130
|
+
if (original.signal.aborted)
|
|
131
|
+
abort();
|
|
132
|
+
const init = {
|
|
133
|
+
method: original.method,
|
|
134
|
+
headers: original.headers,
|
|
135
|
+
signal: original.signal,
|
|
136
|
+
body,
|
|
137
|
+
duplex: 'half',
|
|
138
|
+
};
|
|
139
|
+
c.req.raw = new Request(original.url, init);
|
|
140
|
+
try {
|
|
141
|
+
await next();
|
|
142
|
+
if (exceeded) {
|
|
143
|
+
c.res = c.text(TOO_LARGE, 413);
|
|
144
|
+
c.res.headers.delete('content-length');
|
|
145
|
+
c.res.headers.delete('content-encoding');
|
|
146
|
+
c.res.headers.delete('content-range');
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
finally {
|
|
150
|
+
original.signal.removeEventListener('abort', abort);
|
|
151
|
+
cancelSource();
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=hono-streaming-body-limit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hono-streaming-body-limit.js","sourceRoot":"","sources":["../../../src/server/transports/hono-streaming-body-limit.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ import { CLIENT_ID_HEADER_KEY, Errors, PayloadType, Presentation, PublicError, S
|
|
|
11
11
|
import { ClientNode } from '../client-node.js';
|
|
12
12
|
import { redactMethodTelemetry } from '../method.js';
|
|
13
13
|
import { rateLimiter } from './hono-rate-limit.js';
|
|
14
|
+
import { streamingBodyLimit } from './hono-streaming-body-limit.js';
|
|
14
15
|
import { HttpTransportEvents, SERVER_NOT_READY_RESPONSE, } from './node-hono-transport-contract.js';
|
|
15
16
|
/**
|
|
16
17
|
* Node.js HTTP transport backed by a Hono application.
|
|
@@ -44,6 +45,10 @@ export class NodeHonoTransport {
|
|
|
44
45
|
dispatchObservedRequest(request, response, honoListener) {
|
|
45
46
|
const honoRequest = this.createRequestMirror(request);
|
|
46
47
|
const observerRequest = this.createRequestMirror(request);
|
|
48
|
+
// A disconnect can precede the first authenticated body read. Keep the
|
|
49
|
+
// mirror's errored state available to readers without an unhandled event
|
|
50
|
+
// when no reader exists yet; Hono forwards response closure to its signal.
|
|
51
|
+
honoRequest.once('error', () => undefined);
|
|
47
52
|
void honoListener(honoRequest, response);
|
|
48
53
|
const requestListener = this.server.requestListener;
|
|
49
54
|
if (!requestListener)
|
|
@@ -65,9 +70,11 @@ export class NodeHonoTransport {
|
|
|
65
70
|
honoRequest.end();
|
|
66
71
|
observerRequest.end();
|
|
67
72
|
});
|
|
68
|
-
request.once('error', error => {
|
|
73
|
+
request.once('error', (error) => {
|
|
69
74
|
honoRequest.destroy(error);
|
|
70
|
-
|
|
75
|
+
// Metadata-only observers need not subscribe to errors. Preserve an
|
|
76
|
+
// explicit observer's error notification without crashing other requests.
|
|
77
|
+
observerRequest.destroy(observerRequest.listenerCount('error') ? error : undefined);
|
|
71
78
|
});
|
|
72
79
|
}
|
|
73
80
|
/** Creates an IncomingMessage-compatible stream with immutable request metadata. */
|
|
@@ -89,10 +96,15 @@ export class NodeHonoTransport {
|
|
|
89
96
|
// ---------------------------------------------------------------------------
|
|
90
97
|
setupMiddleware(origins, limit, maxRequestBodySize, requestBodySizeLimits) {
|
|
91
98
|
validateRequestBodyLimits(maxRequestBodySize, requestBodySizeLimits);
|
|
92
|
-
this.app.use('*', (c, next) =>
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
99
|
+
this.app.use('*', (c, next) => {
|
|
100
|
+
const policy = getRequestBodyPolicy(c.req.path, maxRequestBodySize, requestBodySizeLimits);
|
|
101
|
+
if (policy.streaming)
|
|
102
|
+
return streamingBodyLimit(policy.maxSize)(c, next);
|
|
103
|
+
return bodyLimit({
|
|
104
|
+
maxSize: policy.maxSize,
|
|
105
|
+
onError: (context) => context.text('Request Entity Too Large', 413),
|
|
106
|
+
})(c, next);
|
|
107
|
+
});
|
|
96
108
|
if (origins?.length) {
|
|
97
109
|
this.app.use('*', cors({
|
|
98
110
|
origin: (origin) => origins.includes(origin) ? origin : null,
|
|
@@ -106,7 +118,7 @@ export class NodeHonoTransport {
|
|
|
106
118
|
this.httpRateLimiter = rateLimiter(opts);
|
|
107
119
|
this.app.use('/__h', this.httpRateLimiter);
|
|
108
120
|
}
|
|
109
|
-
this.app.post('/__h', c => this.handleRpc(c));
|
|
121
|
+
this.app.post('/__h', (c) => this.handleRpc(c));
|
|
110
122
|
}
|
|
111
123
|
// ---------------------------------------------------------------------------
|
|
112
124
|
// Fetch handler
|
|
@@ -326,7 +338,7 @@ export class NodeHonoTransport {
|
|
|
326
338
|
}
|
|
327
339
|
http.closeAllConnections();
|
|
328
340
|
await new Promise((resolve, reject) => {
|
|
329
|
-
http.close(error => {
|
|
341
|
+
http.close((error) => {
|
|
330
342
|
if (error &&
|
|
331
343
|
error.code !== 'ERR_SERVER_NOT_RUNNING') {
|
|
332
344
|
reject(error);
|
|
@@ -343,12 +355,17 @@ export class NodeHonoTransport {
|
|
|
343
355
|
* Rejects invalid limits before the listener starts accepting requests.
|
|
344
356
|
*/
|
|
345
357
|
function validateRequestBodyLimits(globalLimit, limits) {
|
|
346
|
-
for (const limit of [globalLimit, ...limits.map(rule => rule.maxSize)]) {
|
|
358
|
+
for (const limit of [globalLimit, ...limits.map((rule) => rule.maxSize)]) {
|
|
347
359
|
if (!Number.isSafeInteger(limit) || limit < 1) {
|
|
348
360
|
throw new Error('Request body limits must be positive safe integers');
|
|
349
361
|
}
|
|
350
362
|
}
|
|
351
|
-
for (const { pathPrefix } of limits) {
|
|
363
|
+
for (const { pathPrefix, bodyMode } of limits) {
|
|
364
|
+
if (bodyMode !== undefined &&
|
|
365
|
+
bodyMode !== 'buffered' &&
|
|
366
|
+
bodyMode !== 'streaming') {
|
|
367
|
+
throw new Error('Request body mode must be buffered or streaming');
|
|
368
|
+
}
|
|
352
369
|
if (!pathPrefix.startsWith('/') ||
|
|
353
370
|
pathPrefix === '/' ||
|
|
354
371
|
pathPrefix.endsWith('/') ||
|
|
@@ -362,18 +379,24 @@ function validateRequestBodyLimits(globalLimit, limits) {
|
|
|
362
379
|
* Decode once because Hono route parameters decode encoded input. Otherwise
|
|
363
380
|
* percent-encoded equivalents could bypass a more restrictive prefix ceiling.
|
|
364
381
|
*/
|
|
365
|
-
function
|
|
382
|
+
function getRequestBodyPolicy(path, globalLimit, limits) {
|
|
366
383
|
let decodedPath;
|
|
367
384
|
try {
|
|
368
385
|
decodedPath = decodeURIComponent(path);
|
|
369
386
|
}
|
|
370
387
|
catch {
|
|
371
388
|
// Malformed encodings should not receive a more permissive buffering limit.
|
|
372
|
-
return
|
|
389
|
+
return {
|
|
390
|
+
maxSize: Math.min(globalLimit, ...limits.map((rule) => rule.maxSize)),
|
|
391
|
+
streaming: false,
|
|
392
|
+
};
|
|
373
393
|
}
|
|
374
|
-
|
|
375
|
-
decodedPath.startsWith(`${rule.pathPrefix}/`)
|
|
376
|
-
|
|
377
|
-
:
|
|
394
|
+
const matching = limits.filter((rule) => decodedPath === rule.pathPrefix ||
|
|
395
|
+
decodedPath.startsWith(`${rule.pathPrefix}/`));
|
|
396
|
+
return {
|
|
397
|
+
maxSize: Math.min(globalLimit, ...matching.map((rule) => rule.maxSize)),
|
|
398
|
+
streaming: matching.length > 0 &&
|
|
399
|
+
matching.every((rule) => rule.bodyMode === 'streaming'),
|
|
400
|
+
};
|
|
378
401
|
}
|
|
379
402
|
//# sourceMappingURL=node-hono-transport.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-hono-transport.js","sourceRoot":"","sources":["../../../src/server/transports/node-hono-transport.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"node-hono-transport.js","sourceRoot":"","sources":["../../../src/server/transports/node-hono-transport.ts"],"names":[],"mappings":"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"}
|