lemon-model 1.2.3 → 1.2.4
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/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/socket/decorators.js +266 -0
- package/dist/esm/socket/decorators.js.map +1 -0
- package/dist/esm/socket/index.js +2 -0
- package/dist/esm/socket/index.js.map +1 -1
- package/dist/esm/socket/multi.js +94 -0
- package/dist/esm/socket/multi.js.map +1 -0
- package/dist/esm/socket/socket.js +82 -22
- package/dist/esm/socket/socket.js.map +1 -1
- package/dist/esm/socket/transport.js +385 -3
- package/dist/esm/socket/transport.js.map +1 -1
- package/dist/esm/sync/client.js +166 -0
- package/dist/esm/sync/client.js.map +1 -0
- package/dist/esm/sync/index.js +14 -0
- package/dist/esm/sync/index.js.map +1 -0
- package/dist/esm/sync/machine.js +181 -0
- package/dist/esm/sync/machine.js.map +1 -0
- package/dist/esm/sync/network.js +273 -0
- package/dist/esm/sync/network.js.map +1 -0
- package/dist/esm/sync/testing.js +44 -0
- package/dist/esm/sync/testing.js.map +1 -0
- package/dist/esm/sync/ticker.js +53 -0
- package/dist/esm/sync/ticker.js.map +1 -0
- package/dist/esm/sync/types.js +2 -0
- package/dist/{proxy → esm/sync}/types.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/socket/client/index.d.ts +9 -0
- package/dist/{proxy → socket/client}/index.js +8 -11
- package/dist/socket/client/index.js.map +1 -0
- package/dist/socket/client/keep-alive-controller.d.ts +35 -0
- package/dist/socket/client/keep-alive-controller.js +101 -0
- package/dist/socket/client/keep-alive-controller.js.map +1 -0
- package/dist/socket/client/message-router.d.ts +15 -0
- package/dist/socket/client/message-router.js +52 -0
- package/dist/socket/client/message-router.js.map +1 -0
- package/dist/socket/client/pending-request-store.d.ts +24 -0
- package/dist/socket/client/pending-request-store.js +78 -0
- package/dist/socket/client/pending-request-store.js.map +1 -0
- package/dist/socket/client/reconnect-controller.d.ts +56 -0
- package/dist/socket/client/reconnect-controller.js +177 -0
- package/dist/socket/client/reconnect-controller.js.map +1 -0
- package/dist/socket/client/rotation-controller.d.ts +32 -0
- package/dist/socket/client/rotation-controller.js +76 -0
- package/dist/socket/client/rotation-controller.js.map +1 -0
- package/dist/socket/client/shared-timer-scheduler.d.ts +17 -0
- package/dist/socket/client/shared-timer-scheduler.js +77 -0
- package/dist/socket/client/shared-timer-scheduler.js.map +1 -0
- package/dist/socket/client/socket-client.d.ts +2 -0
- package/dist/socket/client/socket-client.js +219 -0
- package/dist/socket/client/socket-client.js.map +1 -0
- package/dist/socket/client/types.d.ts +101 -0
- package/dist/socket/client/types.js +3 -0
- package/dist/socket/client/types.js.map +1 -0
- package/dist/socket/client/websocket-client-transport.d.ts +23 -0
- package/dist/socket/client/websocket-client-transport.js +152 -0
- package/dist/socket/client/websocket-client-transport.js.map +1 -0
- package/dist/socket/decorators.d.ts +38 -0
- package/dist/socket/decorators.js +271 -0
- package/dist/socket/decorators.js.map +1 -0
- package/dist/socket/index.d.ts +2 -0
- package/dist/socket/index.js +2 -0
- package/dist/socket/index.js.map +1 -1
- package/dist/socket/multi.d.ts +33 -0
- package/dist/socket/multi.js +98 -0
- package/dist/socket/multi.js.map +1 -0
- package/dist/socket/socket.d.ts +22 -4
- package/dist/socket/socket.js +82 -22
- package/dist/socket/socket.js.map +1 -1
- package/dist/socket/transport.d.ts +124 -6
- package/dist/socket/transport.js +389 -4
- package/dist/socket/transport.js.map +1 -1
- package/dist/sync/client.d.ts +16 -0
- package/dist/sync/client.js +171 -0
- package/dist/sync/client.js.map +1 -0
- package/dist/sync/index.d.ts +10 -0
- package/dist/sync/index.js +30 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/machine.d.ts +3 -0
- package/dist/sync/machine.js +185 -0
- package/dist/sync/machine.js.map +1 -0
- package/dist/sync/network.d.ts +38 -0
- package/dist/sync/network.js +278 -0
- package/dist/sync/network.js.map +1 -0
- package/dist/sync/testing.d.ts +38 -0
- package/dist/sync/testing.js +48 -0
- package/dist/sync/testing.js.map +1 -0
- package/dist/sync/ticker.d.ts +21 -0
- package/dist/sync/ticker.js +57 -0
- package/dist/sync/ticker.js.map +1 -0
- package/dist/sync/types.d.ts +115 -0
- package/dist/sync/types.js +3 -0
- package/dist/sync/types.js.map +1 -0
- package/package.json +1 -1
- package/dist/proxy/index.d.ts +0 -12
- package/dist/proxy/index.js.map +0 -1
- package/dist/proxy/proxy.d.ts +0 -75
- package/dist/proxy/proxy.js +0 -198
- package/dist/proxy/proxy.js.map +0 -1
- package/dist/proxy/transport.d.ts +0 -123
- package/dist/proxy/transport.js +0 -401
- package/dist/proxy/transport.js.map +0 -1
- package/dist/proxy/types.d.ts +0 -89
- package/dist/proxy/types.js +0 -12
package/dist/socket/transport.js
CHANGED
|
@@ -1,12 +1,48 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.JSONTransport = exports.assembleJSON = exports.summarizeJSONTransportSize = exports.splitJSON = exports.calculateJSONTransportChunkBytes = exports.createJSONTransport = exports.defaultJSONTransportIdentityProvider = void 0;
|
|
3
|
+
exports.JSONTransport = exports.assembleJSON = exports.summarizeJSONTransportSize = exports.splitJSON = exports.calculateJSONTransportChunkBytes = exports.createJSONTransport = exports.defaultReliableJSONTransportIdentityProvider = exports.defaultJSONTransportIdentityProvider = exports.onReliableError = exports.JSONTransportReliableError = exports.isJSONReliableScope = exports.JSON_RELIABLE_SCOPE = void 0;
|
|
4
|
+
/** `scope` values reliable-mode puts on `SocketErrorContext` (see `JSONTransportOptions.reliable`) */
|
|
5
|
+
exports.JSON_RELIABLE_SCOPE = {
|
|
6
|
+
failed: 'json.reliable.failed',
|
|
7
|
+
mismatch: 'json.reliable.mismatch',
|
|
8
|
+
detached: 'json.reliable.detached',
|
|
9
|
+
evicted: 'json.reliable.evicted',
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* true for a direct `json.reliable.*` scope, or its `peer.transport.json.reliable.*` re-published
|
|
13
|
+
* form — `Peer` re-emits transport errors under that prefix (see socket.ts `attachTransport`), so a
|
|
14
|
+
* plain `scope === JSON_RELIABLE_SCOPE.mismatch` check never matches on the Peer path. narrows
|
|
15
|
+
* `scope` to `JSONReliableScope | PeerPrefixedJSONReliableScope` for callers that switch on it.
|
|
16
|
+
*/
|
|
17
|
+
const isJSONReliableScope = (scope) => scope.startsWith('json.reliable.') || scope.startsWith('peer.transport.json.reliable.');
|
|
18
|
+
exports.isJSONReliableScope = isJSONReliableScope;
|
|
19
|
+
/** thrown when a reliable-mode send() exhausts its retry budget without an ack. */
|
|
20
|
+
class JSONTransportReliableError extends Error {
|
|
21
|
+
constructor(message, tid) {
|
|
22
|
+
super(message);
|
|
23
|
+
this.name = 'JSONTransportReliableError';
|
|
24
|
+
this.tid = tid;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.JSONTransportReliableError = JSONTransportReliableError;
|
|
28
|
+
/** typed subscription for reliable-mode failures — filters reliable scopes (direct or peer-prefixed) and narrows the error type */
|
|
29
|
+
const onReliableError = (source, handler) => source.onError((error, context) => {
|
|
30
|
+
if ((0, exports.isJSONReliableScope)(context.scope) && error instanceof JSONTransportReliableError)
|
|
31
|
+
handler(error, context);
|
|
32
|
+
});
|
|
33
|
+
exports.onReliableError = onReliableError;
|
|
4
34
|
let transportNo = 0;
|
|
5
35
|
let chunkNo = 0;
|
|
6
36
|
const DEFAULT_LARGE_VALUE_BYTES = 16 * 1024;
|
|
7
37
|
const DEFAULT_CHUNK_BYTES = 16 * 1024;
|
|
8
38
|
const DEFAULT_ENVELOPE_RESERVE_BYTES = 1024;
|
|
9
39
|
const DEFAULT_PARTIAL_TTL_MS = 5 * 60 * 1000;
|
|
40
|
+
const DEFAULT_NACK_DEBOUNCE_MS = 150;
|
|
41
|
+
const DEFAULT_RESEND_INTERVAL_MS = 2000;
|
|
42
|
+
const DEFAULT_MAX_ATTEMPTS = 6;
|
|
43
|
+
const DEFAULT_DEADLINE_MS = 60000;
|
|
44
|
+
const DEFAULT_SETTLED_TTL_MS = 5 * 60 * 1000;
|
|
45
|
+
const DEFAULT_SETTLED_MAX_ENTRIES = 10000;
|
|
10
46
|
const DEFAULT_PREFERRED_SPLIT_PATHS = [
|
|
11
47
|
'/data/text',
|
|
12
48
|
'/data/content',
|
|
@@ -20,6 +56,17 @@ exports.defaultJSONTransportIdentityProvider = {
|
|
|
20
56
|
nextTransportId: () => `json-${++transportNo}`,
|
|
21
57
|
nextChunkId: () => `chunk-${++chunkNo}`,
|
|
22
58
|
};
|
|
59
|
+
/** reliable-mode default id provider — the counter-based default is unsafe across instance/reconnect boundaries. */
|
|
60
|
+
const nextReliableJSONTransportId = () => {
|
|
61
|
+
var _a;
|
|
62
|
+
return typeof ((_a = globalThis.crypto) === null || _a === void 0 ? void 0 : _a.randomUUID) === 'function'
|
|
63
|
+
? globalThis.crypto.randomUUID()
|
|
64
|
+
: `json-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;
|
|
65
|
+
};
|
|
66
|
+
exports.defaultReliableJSONTransportIdentityProvider = {
|
|
67
|
+
nextTransportId: nextReliableJSONTransportId,
|
|
68
|
+
nextChunkId: nextReliableJSONTransportId,
|
|
69
|
+
};
|
|
23
70
|
/** create a JSON transport over a raw string network. */
|
|
24
71
|
const createJSONTransport = (network, options) => new JSONTransport(network, options);
|
|
25
72
|
exports.createJSONTransport = createJSONTransport;
|
|
@@ -110,12 +157,21 @@ exports.assembleJSON = assembleJSON;
|
|
|
110
157
|
/** JSON response transport over NetworkSupportable. */
|
|
111
158
|
class JSONTransport {
|
|
112
159
|
constructor(network, options) {
|
|
160
|
+
var _a, _b;
|
|
113
161
|
this.listeners = new Set();
|
|
114
162
|
this.errorListeners = new Set();
|
|
115
163
|
this.states = new Map();
|
|
116
164
|
this.network = network;
|
|
117
165
|
this.options = asJSONTransportOptions(options);
|
|
118
|
-
this.
|
|
166
|
+
this.reliable = asResolvedReliableOptions(options === null || options === void 0 ? void 0 : options.reliable);
|
|
167
|
+
if (this.reliable) {
|
|
168
|
+
this.pendingSend = new Map();
|
|
169
|
+
this.settledSend = new Map();
|
|
170
|
+
this.settledReceived = new Map();
|
|
171
|
+
this.nackTimers = new Map();
|
|
172
|
+
}
|
|
173
|
+
const receiveNetwork = (_b = (_a = this.reliable) === null || _a === void 0 ? void 0 : _a.receiveNetwork) !== null && _b !== void 0 ? _b : network;
|
|
174
|
+
this.unsubscribeNetworkMessage = receiveNetwork.onMessage(packet => this.receive(packet));
|
|
119
175
|
this.unsubscribeNetworkError = network.onError((error, context) => {
|
|
120
176
|
this.log('error', 'json transport network error', 'json.network', {
|
|
121
177
|
networkId: getNetworkId(network),
|
|
@@ -131,8 +187,10 @@ class JSONTransport {
|
|
|
131
187
|
get pendingCount() {
|
|
132
188
|
return this.states.size;
|
|
133
189
|
}
|
|
134
|
-
/** send a typed JSON response object */
|
|
190
|
+
/** send a typed JSON response object; reliable mode returns a Promise settling on completion/failure */
|
|
135
191
|
send(data) {
|
|
192
|
+
if (this.reliable)
|
|
193
|
+
return this.sendReliable(data);
|
|
136
194
|
const split = (0, exports.splitJSON)(data, this.options);
|
|
137
195
|
try {
|
|
138
196
|
this.log('debug', 'json transport sending packets', 'json.send', {
|
|
@@ -181,6 +239,8 @@ class JSONTransport {
|
|
|
181
239
|
}
|
|
182
240
|
/** unsubscribe from the underlying network. */
|
|
183
241
|
detach() {
|
|
242
|
+
if (this.reliable)
|
|
243
|
+
this.detachReliable();
|
|
184
244
|
this.unsubscribeNetworkMessage();
|
|
185
245
|
this.unsubscribeNetworkError();
|
|
186
246
|
this.clearCleanupTimer();
|
|
@@ -191,6 +251,8 @@ class JSONTransport {
|
|
|
191
251
|
}
|
|
192
252
|
/** remove expired incomplete transport messages and return removed count */
|
|
193
253
|
cleanup(now = Date.now()) {
|
|
254
|
+
if (this.reliable)
|
|
255
|
+
this.sweepSettledMaps(now);
|
|
194
256
|
if (this.options.partialTtlMs <= 0)
|
|
195
257
|
return 0;
|
|
196
258
|
let removed = 0;
|
|
@@ -198,6 +260,10 @@ class JSONTransport {
|
|
|
198
260
|
if (now - state.updatedAt <= this.options.partialTtlMs)
|
|
199
261
|
continue;
|
|
200
262
|
this.states.delete(tid);
|
|
263
|
+
if (this.reliable) {
|
|
264
|
+
this.clearNackTimer(tid);
|
|
265
|
+
this.settleReceived(tid, 'fail');
|
|
266
|
+
}
|
|
201
267
|
removed++;
|
|
202
268
|
this.log('warn', 'json partial message expired', 'json.partial.expired', {
|
|
203
269
|
networkId: getNetworkId(this.network),
|
|
@@ -231,6 +297,14 @@ class JSONTransport {
|
|
|
231
297
|
});
|
|
232
298
|
return;
|
|
233
299
|
}
|
|
300
|
+
if (!this.reliable && (packet.type === 'json:ack' || packet.type === 'json:nack')) {
|
|
301
|
+
this.log('error', 'json packet requires reliable mode', exports.JSON_RELIABLE_SCOPE.mismatch, {
|
|
302
|
+
networkId: getNetworkId(this.network),
|
|
303
|
+
data: { tid: packet.tid, type: packet.type },
|
|
304
|
+
});
|
|
305
|
+
this.emitError(new Error(`@packet[${packet.type}] requires reliable mode - ${exports.JSON_RELIABLE_SCOPE.mismatch}`), { scope: exports.JSON_RELIABLE_SCOPE.mismatch, network: this.network });
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
234
308
|
try {
|
|
235
309
|
this.log('debug', 'json packet received', 'json.receive', {
|
|
236
310
|
networkId: getNetworkId(this.network),
|
|
@@ -248,11 +322,30 @@ class JSONTransport {
|
|
|
248
322
|
}
|
|
249
323
|
}
|
|
250
324
|
acceptPacket(packet) {
|
|
325
|
+
if (this.reliable && (packet.type === 'json:ack' || packet.type === 'json:nack')) {
|
|
326
|
+
if (packet.type === 'json:ack')
|
|
327
|
+
this.handleAck(packet);
|
|
328
|
+
else
|
|
329
|
+
this.handleNack(packet);
|
|
330
|
+
return;
|
|
331
|
+
}
|
|
251
332
|
if (packet.type === 'json:error') {
|
|
252
333
|
this.emitError(new Error(packet.error), { scope: 'json.error', network: this.network });
|
|
334
|
+
if (this.reliable) {
|
|
335
|
+
this.states.delete(packet.tid);
|
|
336
|
+
this.clearNackTimer(packet.tid);
|
|
337
|
+
this.settleReceived(packet.tid, 'fail');
|
|
338
|
+
}
|
|
339
|
+
return;
|
|
340
|
+
}
|
|
341
|
+
if (this.reliable && this.settledReceived.has(packet.tid)) {
|
|
342
|
+
if (this.settledReceived.get(packet.tid).outcome === 'ok')
|
|
343
|
+
this.sendAck(packet.tid);
|
|
253
344
|
return;
|
|
254
345
|
}
|
|
255
346
|
const state = this.getState(packet.tid);
|
|
347
|
+
if (this.reliable)
|
|
348
|
+
this.scheduleNack(state.tid);
|
|
256
349
|
if (packet.type === 'json:manifest' && !this.acceptManifest(state, packet))
|
|
257
350
|
return;
|
|
258
351
|
if (packet.type === 'json:complete')
|
|
@@ -272,8 +365,15 @@ class JSONTransport {
|
|
|
272
365
|
});
|
|
273
366
|
for (const listener of [...this.listeners])
|
|
274
367
|
listener(data);
|
|
368
|
+
if (this.reliable) {
|
|
369
|
+
this.clearNackTimer(state.tid);
|
|
370
|
+
this.settleReceived(state.tid, 'ok');
|
|
371
|
+
this.sendAck(state.tid);
|
|
372
|
+
}
|
|
275
373
|
}
|
|
276
374
|
acceptManifest(state, packet) {
|
|
375
|
+
if (this.reliable && state.manifest)
|
|
376
|
+
return true; // retransmit of an already-accepted manifest — idempotent no-op
|
|
277
377
|
if (state.manifest) {
|
|
278
378
|
this.emitError(new Error(`@manifest[${packet.tid}] is duplicated - json.manifest.duplicate`), {
|
|
279
379
|
scope: 'json.manifest.duplicate',
|
|
@@ -301,6 +401,8 @@ class JSONTransport {
|
|
|
301
401
|
byIndex = new Map();
|
|
302
402
|
state.chunks.set(packet.cid, byIndex);
|
|
303
403
|
}
|
|
404
|
+
if (this.reliable && byIndex.has(packet.index))
|
|
405
|
+
return; // retransmit of an already-accepted chunk — idempotent no-op
|
|
304
406
|
if (byIndex.has(packet.index)) {
|
|
305
407
|
this.emitError(new Error(`@chunk[${packet.cid}:${packet.index}] is duplicated - json.chunk.duplicate`), {
|
|
306
408
|
scope: 'json.chunk.duplicate',
|
|
@@ -311,6 +413,261 @@ class JSONTransport {
|
|
|
311
413
|
byIndex.set(packet.index, packet);
|
|
312
414
|
state.updatedAt = Date.now();
|
|
313
415
|
}
|
|
416
|
+
/** reliable send(): split once, register pendingSend, attempt delivery, arm the blind-resend timer. */
|
|
417
|
+
sendReliable(data) {
|
|
418
|
+
const reliable = this.reliable;
|
|
419
|
+
const split = (0, exports.splitJSON)(data, this.options);
|
|
420
|
+
const tid = split.tid;
|
|
421
|
+
let resolvePromise;
|
|
422
|
+
let rejectPromise;
|
|
423
|
+
const promise = new Promise((resolve, reject) => {
|
|
424
|
+
resolvePromise = resolve;
|
|
425
|
+
rejectPromise = reject;
|
|
426
|
+
});
|
|
427
|
+
const pending = {
|
|
428
|
+
manifest: split.manifest,
|
|
429
|
+
chunks: split.chunks,
|
|
430
|
+
complete: split.complete,
|
|
431
|
+
attempts: 0,
|
|
432
|
+
startedAt: Date.now(),
|
|
433
|
+
resendTimer: setInterval(() => this.resendTick(tid), reliable.resendIntervalMs),
|
|
434
|
+
resolve: resolvePromise,
|
|
435
|
+
reject: rejectPromise,
|
|
436
|
+
};
|
|
437
|
+
this.pendingSend.set(tid, pending);
|
|
438
|
+
this.attemptSend(tid, pending);
|
|
439
|
+
//! self-catch: keep returning the original promise so real listeners still observe
|
|
440
|
+
//! resolve/reject, while a discarded return value never surfaces an unhandled rejection.
|
|
441
|
+
promise.catch(() => undefined);
|
|
442
|
+
return promise;
|
|
443
|
+
}
|
|
444
|
+
/** deliver (or re-deliver) the full pendingSend packet set; readyState!=='open' ticks don't count. */
|
|
445
|
+
attemptSend(tid, pending) {
|
|
446
|
+
const reliable = this.reliable;
|
|
447
|
+
//! deadlineMs is a wall-clock cap independent of readyState — it still fires while the
|
|
448
|
+
//! network stays permanently non-open, unlike maxAttempts which only counts open ticks.
|
|
449
|
+
if (Date.now() - pending.startedAt >= reliable.deadlineMs) {
|
|
450
|
+
this.failSend(tid, pending, 'deadline exceeded');
|
|
451
|
+
return;
|
|
452
|
+
}
|
|
453
|
+
if (this.network.readyState !== 'open')
|
|
454
|
+
return;
|
|
455
|
+
pending.attempts++;
|
|
456
|
+
try {
|
|
457
|
+
for (const packet of [pending.manifest, ...pending.chunks, pending.complete]) {
|
|
458
|
+
this.network.send(JSON.stringify(packet));
|
|
459
|
+
}
|
|
460
|
+
this.log('debug', 'json transport sending reliable packets', 'json.send', {
|
|
461
|
+
networkId: getNetworkId(this.network),
|
|
462
|
+
data: { tid, attempt: pending.attempts, chunks: pending.chunks.length },
|
|
463
|
+
});
|
|
464
|
+
}
|
|
465
|
+
catch (e) {
|
|
466
|
+
this.log('warn', 'json transport reliable send attempt failed', 'json.send', {
|
|
467
|
+
networkId: getNetworkId(this.network),
|
|
468
|
+
error: e,
|
|
469
|
+
data: { tid, attempt: pending.attempts },
|
|
470
|
+
});
|
|
471
|
+
}
|
|
472
|
+
if (pending.attempts >= reliable.maxAttempts)
|
|
473
|
+
this.failSend(tid, pending, 'max attempts exceeded');
|
|
474
|
+
}
|
|
475
|
+
resendTick(tid) {
|
|
476
|
+
var _a;
|
|
477
|
+
const pending = (_a = this.pendingSend) === null || _a === void 0 ? void 0 : _a.get(tid);
|
|
478
|
+
if (!pending)
|
|
479
|
+
return;
|
|
480
|
+
this.attemptSend(tid, pending);
|
|
481
|
+
}
|
|
482
|
+
handleAck(packet) {
|
|
483
|
+
var _a;
|
|
484
|
+
const pending = (_a = this.pendingSend) === null || _a === void 0 ? void 0 : _a.get(packet.tid);
|
|
485
|
+
if (!pending)
|
|
486
|
+
return; // unknown/already-settled tid — silently ignored
|
|
487
|
+
clearInterval(pending.resendTimer);
|
|
488
|
+
this.pendingSend.delete(packet.tid);
|
|
489
|
+
this.settleSend(packet.tid, 'ok');
|
|
490
|
+
pending.resolve();
|
|
491
|
+
}
|
|
492
|
+
handleNack(packet) {
|
|
493
|
+
var _a, _b;
|
|
494
|
+
const pending = (_a = this.pendingSend) === null || _a === void 0 ? void 0 : _a.get(packet.tid);
|
|
495
|
+
if (!pending)
|
|
496
|
+
return; // unknown/already-settled tid — silently ignored
|
|
497
|
+
try {
|
|
498
|
+
if (packet.manifest)
|
|
499
|
+
this.network.send(JSON.stringify(pending.manifest));
|
|
500
|
+
for (const entry of (_b = packet.chunks) !== null && _b !== void 0 ? _b : []) {
|
|
501
|
+
for (const index of entry.missing) {
|
|
502
|
+
const chunk = pending.chunks.find(item => item.cid === entry.cid && item.index === index);
|
|
503
|
+
if (chunk)
|
|
504
|
+
this.network.send(JSON.stringify(chunk));
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
if (packet.complete)
|
|
508
|
+
this.network.send(JSON.stringify(pending.complete));
|
|
509
|
+
}
|
|
510
|
+
catch (e) {
|
|
511
|
+
this.log('warn', 'json transport nack-driven resend failed', 'json.nack', {
|
|
512
|
+
networkId: getNetworkId(this.network),
|
|
513
|
+
error: e,
|
|
514
|
+
data: { tid: packet.tid },
|
|
515
|
+
});
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
failSend(tid, pending, reason) {
|
|
519
|
+
clearInterval(pending.resendTimer);
|
|
520
|
+
this.pendingSend.delete(tid);
|
|
521
|
+
try {
|
|
522
|
+
this.network.send(JSON.stringify({ type: 'json:error', tid, error: reason }));
|
|
523
|
+
}
|
|
524
|
+
catch (_a) {
|
|
525
|
+
// best-effort notification only — the reject below is the source of truth
|
|
526
|
+
}
|
|
527
|
+
this.settleSend(tid, 'fail');
|
|
528
|
+
const error = new JSONTransportReliableError(`@json[${tid}] ${reason} - ${exports.JSON_RELIABLE_SCOPE.failed}`, tid);
|
|
529
|
+
this.emitError(error, { scope: exports.JSON_RELIABLE_SCOPE.failed, network: this.network });
|
|
530
|
+
pending.reject(error);
|
|
531
|
+
}
|
|
532
|
+
/** send-side ack/nack listening happens on `receiveNetwork`; acks/nacks/errors are emitted on `network`. */
|
|
533
|
+
sendAck(tid) {
|
|
534
|
+
try {
|
|
535
|
+
this.network.send(JSON.stringify({ type: 'json:ack', tid }));
|
|
536
|
+
}
|
|
537
|
+
catch (e) {
|
|
538
|
+
this.log('warn', 'json transport ack send failed', 'json.ack', {
|
|
539
|
+
networkId: getNetworkId(this.network),
|
|
540
|
+
error: e,
|
|
541
|
+
data: { tid },
|
|
542
|
+
});
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
scheduleNack(tid) {
|
|
546
|
+
const reliable = this.reliable;
|
|
547
|
+
if (!reliable)
|
|
548
|
+
return;
|
|
549
|
+
this.clearNackTimer(tid);
|
|
550
|
+
const timer = setTimeout(() => this.fireNack(tid), reliable.nackDebounceMs);
|
|
551
|
+
this.nackTimers.set(tid, timer);
|
|
552
|
+
}
|
|
553
|
+
clearNackTimer(tid) {
|
|
554
|
+
var _a;
|
|
555
|
+
const timer = (_a = this.nackTimers) === null || _a === void 0 ? void 0 : _a.get(tid);
|
|
556
|
+
if (!timer)
|
|
557
|
+
return;
|
|
558
|
+
clearTimeout(timer);
|
|
559
|
+
this.nackTimers.delete(tid);
|
|
560
|
+
}
|
|
561
|
+
fireNack(tid) {
|
|
562
|
+
this.nackTimers.delete(tid);
|
|
563
|
+
const state = this.states.get(tid);
|
|
564
|
+
if (!state || state.emitted)
|
|
565
|
+
return; // already completed/removed — nothing to nack
|
|
566
|
+
try {
|
|
567
|
+
this.network.send(JSON.stringify(this.buildNackPacket(state)));
|
|
568
|
+
}
|
|
569
|
+
catch (e) {
|
|
570
|
+
this.log('warn', 'json transport nack send failed', 'json.nack', {
|
|
571
|
+
networkId: getNetworkId(this.network),
|
|
572
|
+
error: e,
|
|
573
|
+
data: { tid },
|
|
574
|
+
});
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
/** recompute the current diff (not cumulative) between what's buffered and what the manifest declares. */
|
|
578
|
+
buildNackPacket(state) {
|
|
579
|
+
const nack = { type: 'json:nack', tid: state.tid };
|
|
580
|
+
if (!state.manifest) {
|
|
581
|
+
nack.manifest = true;
|
|
582
|
+
return nack;
|
|
583
|
+
}
|
|
584
|
+
const chunkEntries = [];
|
|
585
|
+
for (const ref of state.manifest.refs) {
|
|
586
|
+
const byIndex = state.chunks.get(ref.cid);
|
|
587
|
+
const missing = [];
|
|
588
|
+
for (let index = 0; index < ref.chunks; index++) {
|
|
589
|
+
if (!(byIndex === null || byIndex === void 0 ? void 0 : byIndex.has(index)))
|
|
590
|
+
missing.push(index);
|
|
591
|
+
}
|
|
592
|
+
if (missing.length > 0)
|
|
593
|
+
chunkEntries.push({ cid: ref.cid, missing });
|
|
594
|
+
}
|
|
595
|
+
if (chunkEntries.length > 0)
|
|
596
|
+
nack.chunks = chunkEntries;
|
|
597
|
+
if (!state.complete)
|
|
598
|
+
nack.complete = true;
|
|
599
|
+
return nack;
|
|
600
|
+
}
|
|
601
|
+
settleSend(tid, outcome) {
|
|
602
|
+
const reliable = this.reliable;
|
|
603
|
+
this.settledSend.set(tid, { outcome, expiresAt: Date.now() + reliable.settledTtlMs });
|
|
604
|
+
this.sweepSettledMapSize(this.settledSend, reliable.settledMaxEntries, 'send');
|
|
605
|
+
}
|
|
606
|
+
settleReceived(tid, outcome) {
|
|
607
|
+
const reliable = this.reliable;
|
|
608
|
+
this.settledReceived.set(tid, { outcome, expiresAt: Date.now() + reliable.settledTtlMs });
|
|
609
|
+
this.sweepSettledMapSize(this.settledReceived, reliable.settledMaxEntries, 'received');
|
|
610
|
+
}
|
|
611
|
+
sweepSettledMaps(now) {
|
|
612
|
+
const reliable = this.reliable;
|
|
613
|
+
if (!reliable)
|
|
614
|
+
return;
|
|
615
|
+
this.sweepSettledMapTtl(this.settledSend, now);
|
|
616
|
+
this.sweepSettledMapTtl(this.settledReceived, now);
|
|
617
|
+
}
|
|
618
|
+
sweepSettledMapTtl(map, now) {
|
|
619
|
+
for (const [tid, entry] of map) {
|
|
620
|
+
if (now >= entry.expiresAt)
|
|
621
|
+
map.delete(tid);
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
/**
|
|
625
|
+
* evicts past maxEntries by priority — TTL-expired entries first, then 'fail' outcomes, and only as a
|
|
626
|
+
* last resort a still-valid 'ok' entry (oldest within each tier); only that last case warns, since it's
|
|
627
|
+
* the only one that can cause a late duplicate to re-emit to listeners.
|
|
628
|
+
*/
|
|
629
|
+
sweepSettledMapSize(map, maxEntries, kind) {
|
|
630
|
+
const now = Date.now();
|
|
631
|
+
while (map.size > maxEntries) {
|
|
632
|
+
const victim = this.pickSettledEvictionVictim(map, now);
|
|
633
|
+
if (victim === undefined)
|
|
634
|
+
break;
|
|
635
|
+
const entry = map.get(victim);
|
|
636
|
+
map.delete(victim);
|
|
637
|
+
if (entry.outcome === 'ok' && now < entry.expiresAt) {
|
|
638
|
+
this.log('warn', 'json reliable settled memory evicted before TTL', exports.JSON_RELIABLE_SCOPE.evicted, {
|
|
639
|
+
networkId: getNetworkId(this.network),
|
|
640
|
+
data: { tid: victim, kind, maxEntries },
|
|
641
|
+
});
|
|
642
|
+
}
|
|
643
|
+
}
|
|
644
|
+
}
|
|
645
|
+
/** oldest TTL-expired entry, else oldest 'fail' entry, else the oldest entry overall (a still-valid 'ok'). */
|
|
646
|
+
pickSettledEvictionVictim(map, now) {
|
|
647
|
+
const oldest = map.keys().next().value;
|
|
648
|
+
if (oldest === undefined)
|
|
649
|
+
return undefined;
|
|
650
|
+
if (now >= map.get(oldest).expiresAt)
|
|
651
|
+
return oldest;
|
|
652
|
+
for (const [tid, entry] of map) {
|
|
653
|
+
if (entry.outcome === 'fail')
|
|
654
|
+
return tid;
|
|
655
|
+
}
|
|
656
|
+
return oldest;
|
|
657
|
+
}
|
|
658
|
+
/** idempotent: settles in-flight sends as failed and clears reliable-mode timers. */
|
|
659
|
+
detachReliable() {
|
|
660
|
+
for (const [tid, pending] of this.pendingSend) {
|
|
661
|
+
clearInterval(pending.resendTimer);
|
|
662
|
+
this.pendingSend.delete(tid);
|
|
663
|
+
this.settleSend(tid, 'fail');
|
|
664
|
+
pending.reject(new JSONTransportReliableError(`@json[${tid}] transport detached - ${exports.JSON_RELIABLE_SCOPE.detached}`, tid));
|
|
665
|
+
}
|
|
666
|
+
for (const [tid, timer] of this.nackTimers) {
|
|
667
|
+
clearTimeout(timer);
|
|
668
|
+
this.nackTimers.delete(tid);
|
|
669
|
+
}
|
|
670
|
+
}
|
|
314
671
|
validateManifest(manifest) {
|
|
315
672
|
const refs = new Map();
|
|
316
673
|
for (const ref of manifest.refs) {
|
|
@@ -440,13 +797,29 @@ const asJSONTransportOptions = (options) => {
|
|
|
440
797
|
chunkBytes: (_c = options === null || options === void 0 ? void 0 : options.chunkBytes) !== null && _c !== void 0 ? _c : DEFAULT_CHUNK_BYTES,
|
|
441
798
|
envelopeReserveBytes,
|
|
442
799
|
preferredSplitPaths: (_d = options === null || options === void 0 ? void 0 : options.preferredSplitPaths) !== null && _d !== void 0 ? _d : DEFAULT_PREFERRED_SPLIT_PATHS,
|
|
443
|
-
identityProvider: (_e = options === null || options === void 0 ? void 0 : options.identityProvider) !== null && _e !== void 0 ? _e : exports.defaultJSONTransportIdentityProvider,
|
|
800
|
+
identityProvider: (_e = options === null || options === void 0 ? void 0 : options.identityProvider) !== null && _e !== void 0 ? _e : ((options === null || options === void 0 ? void 0 : options.reliable) ? exports.defaultReliableJSONTransportIdentityProvider : exports.defaultJSONTransportIdentityProvider),
|
|
444
801
|
partialTtlMs: (_f = options === null || options === void 0 ? void 0 : options.partialTtlMs) !== null && _f !== void 0 ? _f : DEFAULT_PARTIAL_TTL_MS,
|
|
445
802
|
cleanupIntervalMs: (_g = options === null || options === void 0 ? void 0 : options.cleanupIntervalMs) !== null && _g !== void 0 ? _g : 0,
|
|
446
803
|
logger: (_h = options === null || options === void 0 ? void 0 : options.logger) !== null && _h !== void 0 ? _h : noopJSONTransportLogger,
|
|
447
804
|
split: options === null || options === void 0 ? void 0 : options.split,
|
|
448
805
|
};
|
|
449
806
|
};
|
|
807
|
+
/** resolve reliable-mode options; returns undefined (off) when `reliable` is falsy. */
|
|
808
|
+
const asResolvedReliableOptions = (reliable) => {
|
|
809
|
+
var _a, _b, _c, _d, _e, _f;
|
|
810
|
+
if (!reliable)
|
|
811
|
+
return undefined;
|
|
812
|
+
const options = reliable === true ? {} : reliable;
|
|
813
|
+
return {
|
|
814
|
+
nackDebounceMs: (_a = options.nackDebounceMs) !== null && _a !== void 0 ? _a : DEFAULT_NACK_DEBOUNCE_MS,
|
|
815
|
+
resendIntervalMs: (_b = options.resendIntervalMs) !== null && _b !== void 0 ? _b : DEFAULT_RESEND_INTERVAL_MS,
|
|
816
|
+
maxAttempts: (_c = options.maxAttempts) !== null && _c !== void 0 ? _c : DEFAULT_MAX_ATTEMPTS,
|
|
817
|
+
deadlineMs: (_d = options.deadlineMs) !== null && _d !== void 0 ? _d : DEFAULT_DEADLINE_MS,
|
|
818
|
+
settledTtlMs: (_e = options.settledTtlMs) !== null && _e !== void 0 ? _e : DEFAULT_SETTLED_TTL_MS,
|
|
819
|
+
settledMaxEntries: (_f = options.settledMaxEntries) !== null && _f !== void 0 ? _f : DEFAULT_SETTLED_MAX_ENTRIES,
|
|
820
|
+
receiveNetwork: options.receiveNetwork,
|
|
821
|
+
};
|
|
822
|
+
};
|
|
450
823
|
const resolveEnvelopeReserveBytesByPacketLimit = (maxPacketBytes) => Math.min(DEFAULT_ENVELOPE_RESERVE_BYTES, Math.max(64, Math.floor(maxPacketBytes / 2)));
|
|
451
824
|
const cloneAndSplit = (value, path, options, refs, chunks) => {
|
|
452
825
|
if (typeof value === 'string') {
|
|
@@ -581,8 +954,20 @@ const isJSONTransportPacket = (packet) => {
|
|
|
581
954
|
return true;
|
|
582
955
|
if (packet.type === 'json:error')
|
|
583
956
|
return typeof packet.error === 'string';
|
|
957
|
+
if (packet.type === 'json:ack')
|
|
958
|
+
return true;
|
|
959
|
+
if (packet.type === 'json:nack')
|
|
960
|
+
return isJSONNackPacketShape(packet);
|
|
584
961
|
return false;
|
|
585
962
|
};
|
|
963
|
+
const isJSONNackPacketShape = (packet) => (packet.manifest === undefined || typeof packet.manifest === 'boolean') &&
|
|
964
|
+
(packet.complete === undefined || typeof packet.complete === 'boolean') &&
|
|
965
|
+
(packet.chunks === undefined || (Array.isArray(packet.chunks) && packet.chunks.every(isJSONNackChunkEntry)));
|
|
966
|
+
const isJSONNackChunkEntry = (entry) => entry &&
|
|
967
|
+
typeof entry === 'object' &&
|
|
968
|
+
typeof entry.cid === 'string' &&
|
|
969
|
+
Array.isArray(entry.missing) &&
|
|
970
|
+
entry.missing.every((index) => Number.isInteger(index) && index >= 0);
|
|
586
971
|
const isJSONChunkRef = (ref) => ref &&
|
|
587
972
|
typeof ref === 'object' &&
|
|
588
973
|
typeof ref.cid === 'string' &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/socket/transport.ts"],"names":[],"mappings":";;;AA+KA,IAAI,WAAW,GAAG,CAAC,CAAC;AACpB,IAAI,OAAO,GAAG,CAAC,CAAC;AAEhB,MAAM,yBAAyB,GAAG,EAAE,GAAG,IAAI,CAAC;AAC5C,MAAM,mBAAmB,GAAG,EAAE,GAAG,IAAI,CAAC;AACtC,MAAM,8BAA8B,GAAG,IAAI,CAAC;AAC5C,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAC7C,MAAM,6BAA6B,GAAG;IAClC,YAAY;IACZ,eAAe;IACf,cAAc;IACd,kBAAkB;IAClB,oBAAoB;IACpB,0BAA0B;CAC7B,CAAC;AACF,MAAM,uBAAuB,GAAiB,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;AAE1D,QAAA,oCAAoC,GAAkC;IAC/E,eAAe,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE;IAC9C,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE;CAC1C,CAAC;AAEF,yDAAyD;AAClD,MAAM,mBAAmB,GAAG,CAC/B,OAA2B,EAC3B,OAA8B,EACd,EAAE,CAAC,IAAI,aAAa,CAAI,OAAO,EAAE,OAAO,CAAC,CAAC;AAHjD,QAAA,mBAAmB,uBAG8B;AAE9D,8DAA8D;AACvD,MAAM,gCAAgC,GAAG,CAC5C,cAAsB,EACtB,oBAAoB,GAAG,wCAAwC,CAAC,cAAc,CAAC,EACzE,EAAE;IACR,MAAM,UAAU,GAAG,cAAc,GAAG,oBAAoB,CAAC;IACzD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC,EAAE;QACjD,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;KAChG;IACD,OAAO,UAAU,CAAC;AACtB,CAAC,CAAC;AATW,QAAA,gCAAgC,oCAS3C;AAEF,iEAAiE;AAC1D,MAAM,SAAS,GAAG,CAAmB,IAAO,EAAE,OAA8B,EAAmB,EAAE;IACpG,MAAM,MAAM,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC;IACtD,MAAM,IAAI,GAAmB,EAAE,CAAC;IAChC,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAuB,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAChF,MAAM,QAAQ,GAAuB,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC;IAEpE,KAAK,MAAM,KAAK,IAAI,MAAM;QAAE,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;IAE5C,IAAI,OAA6C,CAAC;IAClD,MAAM,MAAM,GAAoB;QAC5B,GAAG;QACH,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,IAAI,IAAI;YACJ,OAAO,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,IAAP,OAAO,GAAK,IAAA,kCAA0B,EAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAC,CAAC;QACtF,CAAC;QACD,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,IAAP,OAAO,GAAK,IAAA,kCAA0B,EAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAC;QAC3F,IAAI,EAAE,CAAC,OAA2B,EAAE,EAAE;YAClC,KAAK,MAAM,MAAM,IAAI,CAAC,QAAQ,EAAE,GAAG,MAAM,EAAE,QAAQ,CAAC,EAAE;gBAClD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;aACxC;QACL,CAAC;KACJ,CAAC;IACF,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AA5BW,QAAA,SAAS,aA4BpB;AAEF,yEAAyE;AAClE,MAAM,0BAA0B,GAAG,CACtC,IAAO,EACP,QAA4B,EAC5B,MAAyB,EACzB,QAA4B,EACJ,EAAE;IAC1B,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3D,MAAM,gBAAgB,GAAG,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC;IAEzG,OAAO;QACH,aAAa;QACb,aAAa;QACb,UAAU;QACV,aAAa;QACb,gBAAgB;QAChB,aAAa,EAAE,gBAAgB,GAAG,aAAa;KAClD,CAAC;AACN,CAAC,CAAC;AApBW,QAAA,0BAA0B,8BAoBrC;AAEF,4EAA4E;AACrE,MAAM,YAAY,GAAG,CAAmB,KAAuB,EAAiB,EAAE;IACrF,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAChC,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAEpE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE;QAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAE5D,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,CAAC,KAAK;gBAAE,OAAO,SAAS,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC1B;QACD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;KACvC;IAED,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtC,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE;QAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QAC3C,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;KACzD;IAED,OAAO,IAAS,CAAC;AACrB,CAAC,CAAC;AAzBW,QAAA,YAAY,gBAyBvB;AAEF,uDAAuD;AACvD,MAAa,aAAa;IAUtB,YAAmB,OAA2B,EAAE,OAA8B;QAP7D,cAAS,GAAG,IAAI,GAAG,EAAkC,CAAC;QACtD,mBAAc,GAAG,IAAI,GAAG,EAAsB,CAAC;QAC/C,WAAM,GAAG,IAAI,GAAG,EAA4B,CAAC;QAM1D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,yBAAyB,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAC9D,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,8BAA8B,EAAE,cAAc,EAAE;gBAC9D,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC;gBAChC,KAAK;gBACL,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;aACjC,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,KAAK,kCAAO,OAAO,KAAE,KAAK,EAAE,gBAAgB,OAAO,CAAC,KAAK,EAAE,EAAE,OAAO,IAAG,CAAC;QAC3F,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3G,CAAC;IAED,iEAAiE;IACjE,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED,wCAAwC;IACjC,IAAI,CAAC,IAAO;QACf,MAAM,KAAK,GAAG,IAAA,iBAAS,EAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE5C,IAAI;YACA,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,gCAAgC,EAAE,WAAW,EAAE;gBAC7D,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;gBACrC,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;aACxD,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC5B;QAAC,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,4BAA4B,EAAE,WAAW,EAAE;gBACzD,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;gBACrC,KAAK,EAAE,CAAC;gBACR,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE;aAC3B,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACjE,MAAM,CAAC,CAAC;SACX;IACL,CAAC;IAED,wCAAwC;IACjC,SAAS,CAAC,OAA6B;QAC1C,IAAI,CAAC,OAAO,GAAG,sBAAsB,iCAAM,IAAI,CAAC,OAAO,GAAK,OAAO,EAAG,CAAC;QACvE,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,2BAA2B,EAAE,gBAAgB,EAAE;YAC5D,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;YACrC,IAAI,EAAE;gBACF,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe;gBAC7C,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;gBACnC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY;gBACvC,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB;aACpD;SACJ,CAAC,CAAC;IACP,CAAC;IAED,iDAAiD;IAC1C,SAAS,CAAC,OAAuC;QACpD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,GAAG,EAAE;YACR,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC,CAAC;IACN,CAAC;IAED,oCAAoC;IAC7B,OAAO,CAAC,OAA2B;QACtC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjC,OAAO,GAAG,EAAE;YACR,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC,CAAC;IACN,CAAC;IAED,+CAA+C;IACxC,MAAM;QACT,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACjC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,yBAAyB,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1G,CAAC;IAED,4EAA4E;IACrE,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;QAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC;QAE7C,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;YACpC,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY;gBAAE,SAAS;YACjE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACxB,OAAO,EAAE,CAAC;YACV,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,8BAA8B,EAAE,sBAAsB,EAAE;gBACrE,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;gBACrC,IAAI,EAAE,EAAE,GAAG,EAAE;aAChB,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,SAAS,GAAG,kDAAkD,CAAC,EAAE;gBACtF,KAAK,EAAE,sBAAsB;gBAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;aACxB,CAAC,CAAC;SACN;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAEO,OAAO,CAAC,YAAoB;QAChC,IAAI,MAA2B,CAAC;QAChC,IAAI;YACA,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;SACrC;QAAC,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,0BAA0B,EAAE,YAAY,EAAE;gBACxD,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;gBACrC,KAAK,EAAE,CAAC;aACX,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAClE,OAAO;SACV;QAED,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE;YAChC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACtG,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,kCAAkC,CAAC,EAAE;gBAC1D,KAAK,EAAE,aAAa;gBACpB,OAAO,EAAE,IAAI,CAAC,OAAO;aACxB,CAAC,CAAC;YACH,OAAO;SACV;QAED,IAAI;YACA,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE;gBACtD,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;gBACrC,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;aAC/C,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;SAC7B;QAAC,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,6BAA6B,EAAE,aAAa,EAAE;gBAC5D,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;gBACrC,KAAK,EAAE,CAAC;gBACR,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;aAC/C,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;SACtE;IACL,CAAC;IAEO,YAAY,CAAC,MAA2B;QAC5C,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE;YAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACxF,OAAO;SACV;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC;YAAE,OAAO;QACnF,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe;YAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC3D,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY;YAAE,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC;YAAE,OAAO;QAErD,MAAM,IAAI,GAAG,IAAA,oBAAY,EAAI,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE;YACzD,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;YACrC,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE;SAC3B,CAAC,CAAC;QACH,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;IAEO,cAAc,CAAC,KAAuB,EAAE,MAA0B;QACtE,IAAI,KAAK,CAAC,QAAQ,EAAE;YAChB,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,aAAa,MAAM,CAAC,GAAG,2CAA2C,CAAC,EAAE;gBAC1F,KAAK,EAAE,yBAAyB;gBAChC,OAAO,EAAE,IAAI,CAAC,OAAO;aACxB,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QACjD,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC;QACxB,OAAO,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAEO,WAAW,CAAC,KAAuB,EAAE,MAAuB;QAChE,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACzC,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,UAAU,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK,mCAAmC,CAAC,EAAE;gBAC/F,KAAK,EAAE,iBAAiB;gBACxB,OAAO,EAAE,IAAI,CAAC,OAAO;aACxB,CAAC,CAAC;YACH,OAAO;SACV;QACD,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;YAAE,OAAO;QAErF,IAAI,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,EAAE;YACV,OAAO,GAAG,IAAI,GAAG,EAA2B,CAAC;YAC7C,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;SACzC;QACD,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,UAAU,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK,wCAAwC,CAAC,EAAE;gBACpG,KAAK,EAAE,sBAAsB;gBAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;aACxB,CAAC,CAAC;YACH,OAAO;SACV;QACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAClC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACjC,CAAC;IAEO,gBAAgB,CAAC,QAA4B;QACjD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAwB,CAAC;QAC7C,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE;YAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,GAAG,sCAAsC,CAAC,EAAE;oBAC7E,KAAK,EAAE,oBAAoB;oBAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;iBACxB,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aAChB;YACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAEvB,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,iBAAiB,KAAK,GAAG,CAAC,GAAG,EAAE;gBAClE,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,GAAG,mCAAmC,CAAC,EAAE;oBAC1E,KAAK,EAAE,eAAe;oBACtB,OAAO,EAAE,IAAI,CAAC,OAAO;iBACxB,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aAChB;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,sBAAsB,CAAC,KAAuB;QAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3B,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE;YACzC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE;gBAClC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,KAAK,CAAC;oBAAE,OAAO,KAAK,CAAC;aACrE;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,wBAAwB,CAAC,QAA4B,EAAE,MAAuB;QAClF,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC;QAChE,IAAI,CAAC,GAAG,EAAE;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,UAAU,MAAM,CAAC,GAAG,+BAA+B,CAAC,EAAE;gBAC3E,KAAK,EAAE,gBAAgB;gBACvB,OAAO,EAAE,IAAI,CAAC,OAAO;aACxB,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;SAChB;QACD,IAAI,MAAM,CAAC,KAAK,KAAK,GAAG,CAAC,MAAM,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,UAAU,MAAM,CAAC,GAAG,qCAAqC,CAAC,EAAE;gBACjF,KAAK,EAAE,kBAAkB;gBACzB,OAAO,EAAE,IAAI,CAAC,OAAO;aACxB,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,2BAA2B,CAAC,KAAuB;QACvD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE3B,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE;YAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM;gBAAE,SAAS;YAEpD,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACjC,IAAI,CAAC,KAAK;oBAAE,OAAO,IAAI,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC1B;YAED,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE;gBACzC,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,GAAG,iCAAiC,CAAC,EAAE;oBACxE,KAAK,EAAE,eAAe;oBACtB,OAAO,EAAE,IAAI,CAAC,OAAO;iBACxB,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aAChB;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,QAAQ,CAAC,GAAW;QACxB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,EAAE;YACR,KAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;YAC1D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SAC/B;QACD,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,SAAS,CAAC,KAAU,EAAE,OAA2B;;QACrD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,8BAA8B,EAAE,gBAAgB,EAAE;YAChE,SAAS,EAAE,YAAY,CAAC,MAAA,OAAO,CAAC,OAAO,mCAAI,IAAI,CAAC,OAAO,CAAC;YACxD,KAAK;YACL,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;SACjC,CAAC,CAAC;QACH,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;YAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9E,CAAC;IAEO,GAAG,CACP,KAAqB,EACrB,OAAe,EACf,QAAgB,EAChB,KAA4G;QAE5G,IAAI;YACA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,+BACnB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,EAChB,KAAK;gBACL,OAAO;gBACP,QAAQ,IACL,KAAK,KACR,KAAK,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,KAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,IACvE,CAAC;SACN;QAAC,WAAM;YACJ,oDAAoD;SACvD;IACL,CAAC;IAEO,qBAAqB;QACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,CAAC;YAAE,OAAO;QAClF,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC1F,CAAC;IAEO,iBAAiB;QACrB,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO;QAC/B,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;IAClC,CAAC;CACJ;AA5VD,sCA4VC;AAED,MAAM,sBAAsB,GAAG,CAAC,OAA8B,EAAgC,EAAE;;IAC5F,MAAM,oBAAoB,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,oBAAoB,mCAAI,8BAA8B,CAAC;IAC7F,OAAO;QACH,eAAe,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,mCAAI,yBAAyB;QACtE,UAAU,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,mCAAI,mBAAmB;QACtD,oBAAoB;QACpB,mBAAmB,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,mBAAmB,mCAAI,6BAA6B;QAClF,gBAAgB,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,mCAAI,4CAAoC;QACnF,YAAY,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,mCAAI,sBAAsB;QAC7D,iBAAiB,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB,mCAAI,CAAC;QAClD,MAAM,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,mCAAI,uBAAuB;QAClD,KAAK,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK;KACxB,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,wCAAwC,GAAG,CAAC,cAAsB,EAAU,EAAE,CAChF,IAAI,CAAC,GAAG,CAAC,8BAA8B,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAE3F,MAAM,aAAa,GAAG,CAClB,KAAU,EACV,IAAY,EACZ,OAAqC,EACrC,IAAoB,EACpB,MAAyB,EACtB,EAAE;IACL,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC3B,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QAE3D,MAAM,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACvE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChH,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,iBAAiB,EAAE,GAAG,EAAE,CAAC;KACrC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACtB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;KACrG;IAED,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QACpC,MAAM,MAAM,GAAwB,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC7C,MAAM,QAAQ,GAAG,GAAG,IAAI,IAAI,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;YACrD,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;SACtE;QACD,OAAO,MAAM,CAAC;KACjB;IAED,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,IAAY,EAAE,OAAqC,EAAW,EAAE;;IAC9G,IAAI,MAAA,OAAO,CAAC,KAAK,wDAAG,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACpD,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACjF,IAAI,yBAAyB,CAAC,IAAI,EAAE,OAAO,CAAC,mBAAmB,CAAC,IAAI,IAAI,GAAG,kBAAkB,EAAE;QAC3F,OAAO,IAAI,CAAC;KACf;IACD,OAAO,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC;AAC1C,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAC,IAAY,EAAE,QAAkB,EAAW,EAAE;IAC5E,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC5B,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,YAAY,CAAC,MAAM,KAAK,eAAe,CAAC,MAAM;YAAE,SAAS;QAC7D,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9G,IAAI,OAAO;YAAE,OAAO,IAAI,CAAC;KAC5B;IACD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAE,UAAkB,EAAY,EAAE;IACvE,IAAI,UAAU,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IAExF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACtB,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,SAAS,GAAG,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACrG,IAAI,MAAM,IAAI,WAAW,GAAG,SAAS,GAAG,UAAU,EAAE;YAChD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,MAAM,GAAG,EAAE,CAAC;YACZ,WAAW,GAAG,CAAC,CAAC;SACnB;QACD,MAAM,IAAI,IAAI,CAAC;QACf,WAAW,IAAI,SAAS,CAAC;KAC5B;IAED,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAErF,MAAM,UAAU,GAAG,CAAC,KAAa,EAAU,EAAE;IACzC,IAAI,IAAI,GAAG,UAAU,CAAC;IACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnC,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;KACtC;IACD,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAI,KAAQ,EAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAExE,MAAM,gBAAgB,GAAG,CAAC,IAAS,EAAE,IAAY,EAAE,KAAU,EAAQ,EAAE;IACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAEnE,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAE/E,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QACzC,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC9C,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,8BAA8B,CAAC,CAAC;SAChE;QACD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;KAC5B;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC9C,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,8BAA8B,CAAC,CAAC;KAChE;IACD,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,IAAS,EAAE,IAAY,EAAO,EAAE;IACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACnE,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC5B,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QACnE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;KAC5B;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC5F,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAE7F,MAAM,qBAAqB,GAAG,CAAC,MAAW,EAAiC,EAAE;IACzE,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACxD,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAEpF,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE;QACjC,OAAO,MAAM,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;KAC9F;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE;QAC9B,OAAO,CACH,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ;YAC9B,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;YAC9B,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;YAC9B,MAAM,CAAC,KAAK,IAAI,CAAC;YACjB,MAAM,CAAC,KAAK,GAAG,CAAC;YAChB,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;YAC3B,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;YAC/B,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAClC,CAAC;KACL;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe;QAAE,OAAO,IAAI,CAAC;IACjD,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC;IAC1E,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,GAAQ,EAAuB,EAAE,CACrD,GAAG;IACH,OAAO,GAAG,KAAK,QAAQ;IACvB,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ;IAC3B,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;IAC5B,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ;IAChC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;IAC1B,GAAG,CAAC,IAAI,IAAI,CAAC;IACb,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;IAC5B,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;AAEnB,MAAM,eAAe,GAAG,CAAC,KAAU,EAA0B,EAAE,CAC3D,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,iBAAiB,KAAK,QAAQ,CAAC;AAE/G,MAAM,YAAY,GAAG,CAAC,OAA4B,EAAsB,EAAE;IACtE,MAAM,EAAE,GAAI,OAAe,aAAf,OAAO,uBAAP,OAAO,CAAU,EAAE,CAAC;IAChC,OAAO,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,KAAU,EAAU,EAAE;IAC1C,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI;QACA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;KAChC;IAAC,WAAM;QACJ,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;KACxB;AACL,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/socket/transport.ts"],"names":[],"mappings":"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"}
|