@edryslabs/genericprovider 1.0.4 → 1.5.2

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.
Files changed (64) hide show
  1. package/README.md +129 -5
  2. package/dist/index.d.ts +903 -60
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +2723 -428
  5. package/dist/index.js.map +1 -1
  6. package/dist/lib.d.ts +1 -0
  7. package/dist/lib.d.ts.map +1 -1
  8. package/dist/lib.js +3 -0
  9. package/dist/lib.js.map +1 -1
  10. package/dist/providers/ably/index.d.ts +203 -0
  11. package/dist/providers/ably/index.d.ts.map +1 -0
  12. package/dist/providers/ably/index.js +561 -0
  13. package/dist/providers/ably/index.js.map +1 -0
  14. package/dist/providers/chunking.d.ts +26 -0
  15. package/dist/providers/chunking.d.ts.map +1 -0
  16. package/dist/providers/chunking.js +52 -0
  17. package/dist/providers/chunking.js.map +1 -0
  18. package/dist/providers/dummy/index.d.ts +138 -2
  19. package/dist/providers/dummy/index.d.ts.map +1 -1
  20. package/dist/providers/dummy/index.js +266 -4
  21. package/dist/providers/dummy/index.js.map +1 -1
  22. package/dist/providers/gun/index.d.ts +11 -4
  23. package/dist/providers/gun/index.d.ts.map +1 -1
  24. package/dist/providers/gun/index.js +104 -22
  25. package/dist/providers/gun/index.js.map +1 -1
  26. package/dist/providers/indexeddb/index.d.ts +44 -20
  27. package/dist/providers/indexeddb/index.d.ts.map +1 -1
  28. package/dist/providers/indexeddb/index.js +85 -71
  29. package/dist/providers/indexeddb/index.js.map +1 -1
  30. package/dist/providers/matrix/index.d.ts +6 -1
  31. package/dist/providers/matrix/index.d.ts.map +1 -1
  32. package/dist/providers/matrix/index.js +44 -6
  33. package/dist/providers/matrix/index.js.map +1 -1
  34. package/dist/providers/nostr/index.d.ts +69 -5
  35. package/dist/providers/nostr/index.d.ts.map +1 -1
  36. package/dist/providers/nostr/index.js +204 -36
  37. package/dist/providers/nostr/index.js.map +1 -1
  38. package/dist/providers/peerjs/index.d.ts +11 -1
  39. package/dist/providers/peerjs/index.d.ts.map +1 -1
  40. package/dist/providers/peerjs/index.js +32 -2
  41. package/dist/providers/peerjs/index.js.map +1 -1
  42. package/dist/providers/pubnub/index.d.ts +35 -1
  43. package/dist/providers/pubnub/index.d.ts.map +1 -1
  44. package/dist/providers/pubnub/index.js +56 -35
  45. package/dist/providers/pubnub/index.js.map +1 -1
  46. package/dist/providers/simple-peer/index.d.ts +10 -15
  47. package/dist/providers/simple-peer/index.d.ts.map +1 -1
  48. package/dist/providers/simple-peer/index.js +81 -109
  49. package/dist/providers/simple-peer/index.js.map +1 -1
  50. package/dist/providers/supabase/index.d.ts +43 -1
  51. package/dist/providers/supabase/index.d.ts.map +1 -1
  52. package/dist/providers/supabase/index.js +211 -18
  53. package/dist/providers/supabase/index.js.map +1 -1
  54. package/dist/providers/trystero/index.d.ts +19 -1
  55. package/dist/providers/trystero/index.d.ts.map +1 -1
  56. package/dist/providers/trystero/index.js +37 -2
  57. package/dist/providers/trystero/index.js.map +1 -1
  58. package/dist/providers/websocket/index.d.ts +9 -1
  59. package/dist/providers/websocket/index.d.ts.map +1 -1
  60. package/dist/providers/websocket/index.js +7 -1
  61. package/dist/providers/websocket/index.js.map +1 -1
  62. package/dist/transport.d.ts +69 -16
  63. package/dist/transport.d.ts.map +1 -1
  64. package/package.json +35 -24
@@ -1,3 +1,15 @@
1
+ import * as Y from 'yjs';
2
+ import * as encoding from 'lib0/encoding';
3
+ import { splitChunks, isChunk, ChunkAssembler } from '../chunking';
4
+ // GenericProvider's frame types this transport looks at (see src/index.ts).
5
+ const MESSAGE_AWARENESS = 1;
6
+ const MESSAGE_SYNC_PUSH = 6;
7
+ // Realtime caps a broadcast at 256 KB on the free tier (3 MB above). Below
8
+ // this the raw bytes go out as a binary payload (supabase-js >= 2.91.0 on
9
+ // EVERY peer - an older client drops binary broadcasts silently); above
10
+ // it, base64 chunks in the JSON path.
11
+ const MAX_BINARY_BYTES = 200000;
12
+ const MAX_CHUNK_CHARS = 200000;
1
13
  // ---------------------------------------------------------------------------
2
14
  // CRC32 helpers (GenericProvider wraps messages with CRC32 header)
3
15
  // ---------------------------------------------------------------------------
@@ -77,10 +89,30 @@ export class SupabaseTransport {
77
89
  this.options = options;
78
90
  this.supabase = null;
79
91
  this.channel = null;
92
+ // No preferredCompressMinBytes: send() strips the CRC32 header, which
93
+ // assumes the uncompressed frame layout (see compressionThresholdBytes).
80
94
  this.config = null;
95
+ // Our id on the channel: the presence key we track under, and the suffix
96
+ // of the broadcast event name (`m:<id>`) every message goes out with, so
97
+ // receivers get it as `from`. Round 5, item 2: with a leave signal
98
+ // GenericProvider drops a departed peer's presence at once and stretches
99
+ // the awareness lease to 5 minutes - the 15 s renewal broadcasts, 80 % of
100
+ // an idle room's messages, stop. Same-version rule: an older peer listens
101
+ // for event 'message' only and never sees these frames.
102
+ this.peerId = Math.random().toString(36).slice(2, 10);
103
+ this.chunks = new ChunkAssembler();
81
104
  this._isConnected = false;
82
105
  this.debug = false;
83
106
  this.roomId = '';
107
+ // Persistence (see SupabaseConfig.persistent)
108
+ this.persistentMode = false;
109
+ this.doc = null;
110
+ this.tableName = 'yjs_documents';
111
+ this.persistDebounceMs = 2000;
112
+ this.isWritingToDb = false;
113
+ this.savePending = false;
114
+ // State loaded from the table before GenericProvider registered onMessage
115
+ this.pendingLoad = null;
84
116
  }
85
117
  get isConnected() {
86
118
  return this._isConnected;
@@ -94,6 +126,13 @@ export class SupabaseTransport {
94
126
  if (!config.room) {
95
127
  throw new Error('SupabaseTransport: room name is required');
96
128
  }
129
+ this.persistentMode = config.persistent ?? false;
130
+ this.doc = config.doc ?? null;
131
+ this.tableName = config.tableName ?? 'yjs_documents';
132
+ this.persistDebounceMs = config.persistDebounceMs ?? 2000;
133
+ if (this.persistentMode && !this.doc) {
134
+ throw new Error('SupabaseTransport: a Y.Doc must be provided via config.doc when persistent is true');
135
+ }
97
136
  // Create Supabase client using the injected createClient function
98
137
  this.supabase = this.options.createClient(config.supabaseUrl, config.supabaseKey);
99
138
  // Generate room ID (with optional password hashing)
@@ -101,11 +140,30 @@ export class SupabaseTransport {
101
140
  ? `${config.room}-${await hashPassword(config.password)}`
102
141
  : config.room;
103
142
  this.log('Connecting to room:', this.roomId);
104
- // Create and subscribe to channel
105
- this.channel = this.supabase.channel(this.roomId);
106
- // Listen for messages
107
- this.channel.on('broadcast', { event: 'message' }, (payload) => {
108
- this.handleMessage(payload.payload);
143
+ // Create and subscribe to channel; our presence key is our peer id.
144
+ this.channel = this.supabase.channel(this.roomId, {
145
+ config: { presence: { key: this.peerId } },
146
+ });
147
+ // Listen for messages: `m:<peerId>` from a current peer (the id becomes
148
+ // `from`), 'message' from an older one.
149
+ this.channel.on('broadcast', { event: '*' }, (msg) => {
150
+ const event = typeof msg?.event === 'string' ? msg.event : '';
151
+ const from = event.startsWith('m:') ? event.slice(2) : undefined;
152
+ if (from === this.peerId)
153
+ return;
154
+ if (from === undefined && event !== 'message')
155
+ return;
156
+ this.handleMessage(msg.payload, from);
157
+ });
158
+ // Presence: a peer's channel went away (clean unsubscribe, closed tab,
159
+ // or the server's timeout after a dead connection). Delivered to every
160
+ // subscriber, so GenericProvider handles it without a broadcast burst.
161
+ this.channel.on('presence', { event: 'leave' }, (event) => {
162
+ const key = event?.key;
163
+ if (typeof key === 'string' && key !== this.peerId) {
164
+ this.log('Peer left:', key);
165
+ this._peerDisconnectCallback?.(key);
166
+ }
109
167
  });
110
168
  // Subscribe to channel
111
169
  await new Promise((resolve, reject) => {
@@ -117,6 +175,9 @@ export class SupabaseTransport {
117
175
  if (status === 'SUBSCRIBED') {
118
176
  this._isConnected = true;
119
177
  this.log('Connected to Supabase channel');
178
+ // Join the presence set under our key; the promise resolves with
179
+ // 'ok' or an error status, neither blocks the connect.
180
+ Promise.resolve(this.channel?.track({ joined_at: Date.now() })).catch((error) => this.log('presence track failed:', error));
120
181
  resolve();
121
182
  }
122
183
  else if (status === 'CHANNEL_ERROR' || status === 'TIMED_OUT') {
@@ -124,9 +185,23 @@ export class SupabaseTransport {
124
185
  }
125
186
  });
126
187
  });
188
+ if (this.persistentMode)
189
+ await this.loadFromDatabase();
127
190
  }
128
191
  async disconnect() {
129
192
  this.log('Disconnecting...');
193
+ if (this.persistTimer) {
194
+ clearTimeout(this.persistTimer);
195
+ this.persistTimer = undefined;
196
+ }
197
+ if (this.persistentMode && this.doc) {
198
+ try {
199
+ await this.saveToDatabase();
200
+ }
201
+ catch (error) {
202
+ this.log('Error flushing to database on disconnect:', error);
203
+ }
204
+ }
130
205
  if (this.channel) {
131
206
  await this.channel.unsubscribe();
132
207
  this.channel = null;
@@ -135,6 +210,7 @@ export class SupabaseTransport {
135
210
  this.supabase = null;
136
211
  this.config = null;
137
212
  this.messageCallback = undefined;
213
+ this.pendingLoad = null;
138
214
  }
139
215
  send(data) {
140
216
  if (!this._isConnected || !this.channel) {
@@ -143,35 +219,152 @@ export class SupabaseTransport {
143
219
  }
144
220
  // Strip CRC32 header before sending
145
221
  const payload = stripCRC32Header(data);
146
- // Convert Uint8Array to base64 for JSON transport
222
+ // Only document updates schedule a database write, not presence
223
+ if (this.persistentMode && payload[0] !== MESSAGE_AWARENESS) {
224
+ this.queuePersist();
225
+ }
226
+ if (payload.length <= MAX_BINARY_BYTES) {
227
+ // Binary broadcast: no base64 (33 % smaller on the wire)
228
+ this.channel.send({
229
+ type: 'broadcast',
230
+ event: 'm:' + this.peerId,
231
+ payload: payload.buffer.slice(payload.byteOffset, payload.byteOffset + payload.byteLength),
232
+ });
233
+ return;
234
+ }
235
+ // Too large for one broadcast: base64 chunks through the JSON path
147
236
  const base64 = this.uint8ArrayToBase64(payload);
148
- // Broadcast to channel
149
- this.channel.send({
150
- type: 'broadcast',
151
- event: 'message',
152
- payload: base64,
153
- });
237
+ for (const chunk of splitChunks(base64, MAX_CHUNK_CHARS)) {
238
+ this.channel.send({ type: 'broadcast', event: 'm:' + this.peerId, payload: chunk });
239
+ }
154
240
  }
155
241
  onMessage(callback) {
156
242
  this.messageCallback = callback;
243
+ // State loaded from the table before GenericProvider registered this
244
+ // callback (connect() resolves first): deliver it now, one microtask
245
+ // later so the provider has finished its own setup.
246
+ if (this.pendingLoad) {
247
+ const data = this.pendingLoad;
248
+ this.pendingLoad = null;
249
+ Promise.resolve().then(() => callback(data));
250
+ }
157
251
  return () => {
158
252
  this.messageCallback = undefined;
159
253
  };
160
254
  }
255
+ /**
256
+ * Transport.onPeerDisconnect: Supabase presence 'leave' for the channel.
257
+ * Peer ids are presence keys, the same id `onMessage` passes as `from`.
258
+ */
259
+ onPeerDisconnect(callback) {
260
+ this._peerDisconnectCallback = callback;
261
+ return () => {
262
+ this._peerDisconnectCallback = undefined;
263
+ };
264
+ }
265
+ // ---------------------------------------------------------------------------
266
+ // Persistence: one row per room, `content` = base64 of the full state
267
+ // ---------------------------------------------------------------------------
268
+ /**
269
+ * Deliver the stored state as a MESSAGE_SYNC_PUSH frame - the provider
270
+ * applies it like a peer's full-state push: no hash check, no `synced`
271
+ * flip (a stored copy says nothing about who is online).
272
+ */
273
+ async loadFromDatabase() {
274
+ try {
275
+ const { data, error } = await this.supabase
276
+ .from(this.tableName)
277
+ .select('content')
278
+ .eq('id', this.roomId)
279
+ .maybeSingle();
280
+ if (error)
281
+ throw error;
282
+ if (!data?.content) {
283
+ this.log('No stored document for this room yet');
284
+ return;
285
+ }
286
+ const update = this.base64ToUint8Array(data.content);
287
+ const enc = encoding.createEncoder();
288
+ encoding.writeVarUint(enc, MESSAGE_SYNC_PUSH);
289
+ encoding.writeVarUint8Array(enc, update);
290
+ const frame = addCRC32Header(encoding.toUint8Array(enc));
291
+ if (this.messageCallback)
292
+ this.messageCallback(frame);
293
+ else
294
+ this.pendingLoad = frame;
295
+ this.log('Loaded', update.length, 'bytes from the database');
296
+ }
297
+ catch (error) {
298
+ this.log('Error loading from database:', error?.message ?? error);
299
+ console.warn('SupabaseTransport: failed to load from database:', error);
300
+ }
301
+ }
302
+ queuePersist() {
303
+ if (this.persistTimer)
304
+ clearTimeout(this.persistTimer);
305
+ this.persistTimer = setTimeout(() => this.saveToDatabase(), this.persistDebounceMs);
306
+ }
307
+ /** Upsert the full current state; a write that overlaps a change re-runs once. */
308
+ async saveToDatabase() {
309
+ if (!this.supabase || !this.persistentMode || !this.doc)
310
+ return;
311
+ if (this.isWritingToDb) {
312
+ this.savePending = true;
313
+ return;
314
+ }
315
+ this.isWritingToDb = true;
316
+ this.savePending = false;
317
+ try {
318
+ const state = Y.encodeStateAsUpdate(this.doc);
319
+ const { error } = await this.supabase.from(this.tableName).upsert({
320
+ id: this.roomId,
321
+ content: this.uint8ArrayToBase64(state),
322
+ updated_at: new Date().toISOString(),
323
+ });
324
+ if (error)
325
+ throw error;
326
+ this.log('Saved', state.length, 'bytes to the database');
327
+ }
328
+ catch (error) {
329
+ this.log('Error saving to database:', error?.message ?? error);
330
+ console.warn('SupabaseTransport: failed to save to database, will retry:', error);
331
+ this.savePending = true;
332
+ }
333
+ finally {
334
+ this.isWritingToDb = false;
335
+ if (this.savePending)
336
+ setTimeout(() => this.saveToDatabase(), 1000);
337
+ }
338
+ }
161
339
  // ---------------------------------------------------------------------------
162
340
  // Private methods
163
341
  // ---------------------------------------------------------------------------
164
- handleMessage(payload) {
342
+ handleMessage(payload, from) {
165
343
  if (!this.messageCallback)
166
344
  return;
167
345
  try {
168
- // Convert base64 back to Uint8Array
169
- const data = typeof payload === 'string'
170
- ? this.base64ToUint8Array(payload)
171
- : new Uint8Array(0);
346
+ let data;
347
+ if (payload instanceof ArrayBuffer) {
348
+ data = new Uint8Array(payload);
349
+ }
350
+ else if (ArrayBuffer.isView(payload)) {
351
+ data = new Uint8Array(payload.buffer, payload.byteOffset, payload.byteLength);
352
+ }
353
+ else if (typeof payload === 'string') {
354
+ data = this.base64ToUint8Array(payload); // an older sender
355
+ }
356
+ else if (isChunk(payload)) {
357
+ const whole = this.chunks.push(payload);
358
+ if (whole === null)
359
+ return;
360
+ data = this.base64ToUint8Array(whole);
361
+ }
362
+ else {
363
+ return;
364
+ }
172
365
  // Add CRC32 header for GenericProvider
173
366
  const wrapped = addCRC32Header(data);
174
- this.messageCallback(wrapped);
367
+ this.messageCallback(wrapped, from);
175
368
  }
176
369
  catch (error) {
177
370
  this.log('Error handling message:', error);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/supabase/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/supabase/index.ts"],"names":[],"mappings":"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"}
@@ -158,13 +158,31 @@ export declare class TrysteroTransport implements Transport {
158
158
  private sendUpdate;
159
159
  private peers;
160
160
  private onJoinErrorCallback?;
161
+ private _peerConnectCallback?;
162
+ private _peerDisconnectCallback?;
161
163
  constructor(options: TrysteroTransportOptions);
162
164
  private log;
163
165
  get isConnected(): boolean;
164
166
  connect(config: ConnectionConfig): Promise<void>;
165
167
  disconnect(): void;
166
168
  send(data: Uint8Array): Promise<void>;
167
- onMessage(callback: (data: Uint8Array) => void): () => void;
169
+ /**
170
+ * Transport.sendTo: deliver to one peer (Trystero's action send accepts
171
+ * a target peer id). Used by GenericProvider for replies, acks and
172
+ * presence responses.
173
+ */
174
+ sendTo(peerId: string, data: Uint8Array): Promise<void>;
175
+ onMessage(callback: (data: Uint8Array, from?: string) => void): () => void;
176
+ /**
177
+ * Register callback for new peer data-channel connections. Lets
178
+ * GenericProvider push our current doc/awareness state to a peer as
179
+ * soon as their channel opens, instead of only at our own connect()
180
+ * time (which fires before any mesh connection exists) or the next
181
+ * periodic sync tick.
182
+ */
183
+ onPeerConnect(callback: (peerId: string) => void): () => void;
184
+ /** Transport.onPeerDisconnect: Trystero's onPeerLeave, the same peer id. */
185
+ onPeerDisconnect(callback: (peerId: string) => void): () => void;
168
186
  /**
169
187
  * Set a callback for join errors (optional).
170
188
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/trystero/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/trystero/index.ts"],"names":[],"mappings":"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"}
@@ -114,18 +114,21 @@ export class TrysteroTransport {
114
114
  receive((data, peerId) => {
115
115
  this.log(`Received update from ${peerId} (${data.byteLength} bytes)`);
116
116
  if (this._callback) {
117
- // Convert ArrayBuffer to Uint8Array
118
- this._callback(new Uint8Array(data));
117
+ // Convert ArrayBuffer to Uint8Array; peerId lets GenericProvider
118
+ // answer this peer directly via sendTo()
119
+ this._callback(new Uint8Array(data), peerId);
119
120
  }
120
121
  });
121
122
  // Track peers
122
123
  this.room.onPeerJoin((peerId) => {
123
124
  this.peers.add(peerId);
124
125
  this.log(`Peer joined: ${peerId} (${this.peers.size} total)`);
126
+ this._peerConnectCallback?.(peerId);
125
127
  });
126
128
  this.room.onPeerLeave((peerId) => {
127
129
  this.peers.delete(peerId);
128
130
  this.log(`Peer left: ${peerId} (${this.peers.size} remaining)`);
131
+ this._peerDisconnectCallback?.(peerId);
129
132
  });
130
133
  this._connected = true;
131
134
  this.log(`✅ Connected to room: ${room}`);
@@ -154,6 +157,18 @@ export class TrysteroTransport {
154
157
  this.log(`Sending update (${data.byteLength} bytes) to ${this.peers.size} peers`);
155
158
  await this.sendUpdate(data, null);
156
159
  }
160
+ /**
161
+ * Transport.sendTo: deliver to one peer (Trystero's action send accepts
162
+ * a target peer id). Used by GenericProvider for replies, acks and
163
+ * presence responses.
164
+ */
165
+ async sendTo(peerId, data) {
166
+ if (!this._connected || !this.sendUpdate)
167
+ return;
168
+ if (!this.peers.has(peerId))
169
+ return;
170
+ await this.sendUpdate(data, peerId);
171
+ }
157
172
  onMessage(callback) {
158
173
  this._callback = callback;
159
174
  this.log('Message callback registered');
@@ -162,6 +177,26 @@ export class TrysteroTransport {
162
177
  this.log('Message callback unregistered');
163
178
  };
164
179
  }
180
+ /**
181
+ * Register callback for new peer data-channel connections. Lets
182
+ * GenericProvider push our current doc/awareness state to a peer as
183
+ * soon as their channel opens, instead of only at our own connect()
184
+ * time (which fires before any mesh connection exists) or the next
185
+ * periodic sync tick.
186
+ */
187
+ onPeerConnect(callback) {
188
+ this._peerConnectCallback = callback;
189
+ return () => {
190
+ this._peerConnectCallback = undefined;
191
+ };
192
+ }
193
+ /** Transport.onPeerDisconnect: Trystero's onPeerLeave, the same peer id. */
194
+ onPeerDisconnect(callback) {
195
+ this._peerDisconnectCallback = callback;
196
+ return () => {
197
+ this._peerDisconnectCallback = undefined;
198
+ };
199
+ }
165
200
  /**
166
201
  * Set a callback for join errors (optional).
167
202
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/trystero/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/trystero/index.ts"],"names":[],"mappings":"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"}
@@ -7,8 +7,16 @@ export interface WebSocketConfig extends ConnectionConfig {
7
7
  serverUrl: string;
8
8
  /** Enable automatic reconnection on disconnect (default: true) */
9
9
  autoReconnect?: boolean;
10
- /** Reconnection delay in milliseconds (default: 2000) */
10
+ /**
11
+ * Delay before the first reconnection attempt in milliseconds (default:
12
+ * 2000). Doubles per failed attempt, jittered by ±50 %, capped at
13
+ * `maxReconnectDelay` - a classroom of 30 browsers used to hit a
14
+ * restarting relay 15 times a second in lockstep and come back in the
15
+ * same instant (round 7, item 4; test/dummy/bench-ws-reconnect-storm.ts).
16
+ */
11
17
  reconnectDelay?: number;
18
+ /** Cap on the reconnection delay in milliseconds (default: 10000) */
19
+ maxReconnectDelay?: number;
12
20
  /** Maximum reconnection attempts (0 = infinite, default: 0) */
13
21
  maxReconnectAttempts?: number;
14
22
  /** WebSocket protocols (optional) */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/websocket/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AA6ClE;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,yFAAyF;IACzF,SAAS,EAAE,MAAM,CAAA;IACjB,kEAAkE;IAClE,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,+DAA+D;IAC/D,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC7B,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,kBAAmB,YAAW,SAAS;IAClD,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,eAAe,CAAC,CAA4B;IACpD,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,iBAAiB,CAAY;IACrC,OAAO,CAAC,cAAc,CAAC,CAA+B;IACtD,OAAO,CAAC,qBAAqB,CAAiB;IAC9C,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,cAAc,CAAmB;IAEzC,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAgFrD;;OAEG;IACH,UAAU,IAAI,IAAI;IAiBlB;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAiB5B;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,GAAG,MAAM,IAAI;IAmB3D;;OAEG;IACH,OAAO,CAAC,aAAa;IAwBrB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA0BxB;;OAEG;IACH,OAAO,CAAC,GAAG;CAKZ"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/websocket/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AA6ClE;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,yFAAyF;IACzF,SAAS,EAAE,MAAM,CAAA;IACjB,kEAAkE;IAClE,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,+DAA+D;IAC/D,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC7B,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,kBAAmB,YAAW,SAAS;IAClD,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,eAAe,CAAC,CAA4B;IACpD,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,iBAAiB,CAAY;IACrC,OAAO,CAAC,cAAc,CAAC,CAA+B;IACtD,OAAO,CAAC,qBAAqB,CAAiB;IAC9C,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,cAAc,CAAmB;IAEzC,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAgFrD;;OAEG;IACH,UAAU,IAAI,IAAI;IAiBlB;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAiB5B;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,GAAG,MAAM,IAAI;IAmB3D;;OAEG;IACH,OAAO,CAAC,aAAa;IAwBrB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkCxB;;OAEG;IACH,OAAO,CAAC,GAAG;CAKZ"}
@@ -248,7 +248,13 @@ export class WebSocketTransport {
248
248
  return;
249
249
  }
250
250
  this.reconnectAttempts++;
251
- const delay = this.config.reconnectDelay ?? 2000;
251
+ // Exponential backoff with jitter: the jitter is what breaks the herd
252
+ // on the relay's return, the cap what keeps recovery quick (y-websocket
253
+ // caps at 2.5 s, Socket.IO at 5 s; 10 s cuts the storm ~4x for a mean
254
+ // recovery wait under 8 s).
255
+ const base = this.config.reconnectDelay ?? 2000;
256
+ const cap = this.config.maxReconnectDelay ?? 10000;
257
+ const delay = Math.round(Math.min(cap, base * 2 ** (this.reconnectAttempts - 1)) * (0.5 + Math.random()));
252
258
  this.log(`🔄 Attempting reconnection #${this.reconnectAttempts} in ${delay}ms...`);
253
259
  this.reconnectTimer = setTimeout(async () => {
254
260
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/websocket/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/websocket/index.ts"],"names":[],"mappings":"AAEA,8EAA8E;AAC9E,4BAA4B;AAC5B,EAAE;AACF,2EAA2E;AAC3E,0EAA0E;AAC1E,2EAA2E;AAC3E,4EAA4E;AAC5E,8EAA8E;AAE9E,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE;IACzB,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAA;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QACxE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACd,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAC,EAAE,CAAA;AAEJ,SAAS,MAAM,CAAC,IAAgB;IAC9B,IAAI,GAAG,GAAG,UAAU,CAAA;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;QAClC,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IAC1D,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;AACjC,CAAC;AAED,mEAAmE;AACnE,SAAS,gBAAgB,CAAC,IAAgB;IACxC,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AACnD,CAAC;AAED,uEAAuE;AACvE,SAAS,cAAc,CAAC,IAAgB;IACtC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IACxB,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;IAC/C,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAA;IAChC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAA;IAChC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAA;IAC/B,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAA;IACvB,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IACpB,OAAO,OAAO,CAAA;AAChB,CAAC;AA4BD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,OAAO,kBAAkB;IAA/B;QACU,OAAE,GAAqB,IAAI,CAAA;QAC3B,WAAM,GAA2B,IAAI,CAAA;QAErC,iBAAY,GAAY,KAAK,CAAA;QAC7B,UAAK,GAAY,KAAK,CAAA;QACtB,sBAAiB,GAAW,CAAC,CAAA;QAE7B,0BAAqB,GAAY,KAAK,CAAA;QACtC,iBAAY,GAAiB,EAAE,CAAA,CAAC,iCAAiC;QACjE,mBAAc,GAAiB,EAAE,CAAA,CAAC,sDAAsD;IA8OlG,CAAC;IA5OC,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,MAAuB;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,KAAK,CAAA;QAClC,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAA;QAElC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;QACpD,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;QAC1C,CAAC;QAED,+CAA+C;QAC/C,IAAI,KAAK,GAAG,MAAM,CAAC,SAAS,CAAA;QAC5B,mCAAmC;QACnC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC5B,CAAC;QACD,+BAA+B;QAC/B,KAAK,GAAG,GAAG,KAAK,IAAI,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAA;QAErD,IAAI,CAAC,GAAG,CAAC,mCAAmC,KAAK,EAAE,CAAC,CAAA;QAEpD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC;gBACH,mEAAmE;gBACnE,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;gBAChD,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,aAAa,CAAA;gBAElC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC9B,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;wBACrD,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;wBACf,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAA;oBACnD,CAAC;gBACH,CAAC,EAAE,KAAK,CAAC,CAAA;gBAET,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,GAAG,EAAE;oBACpB,YAAY,CAAC,OAAO,CAAC,CAAA;oBACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;oBACxB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAA;oBAC1B,IAAI,CAAC,GAAG,CAAC,kCAAkC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;oBAEzD,wBAAwB;oBACxB,IAAI,CAAC,iBAAiB,EAAE,CAAA;oBAExB,OAAO,EAAE,CAAA;gBACX,CAAC,CAAA;gBAED,IAAI,CAAC,EAAE,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,EAAE;oBAC5B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBAChC,CAAC,CAAA;gBAED,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE;oBAC1B,YAAY,CAAC,OAAO,CAAC,CAAA;oBACrB,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAA;oBAErC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;wBACvB,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAA;oBAClD,CAAC;gBACH,CAAC,CAAA;gBAED,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE;oBAC1B,YAAY,CAAC,OAAO,CAAC,CAAA;oBACrB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;oBACzB,IAAI,CAAC,GAAG,CACN,0BAA0B,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,MAAM,IAAI,MAAM,EAAE,CACzE,CAAA;oBAED,0CAA0C;oBAC1C,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC,EAAE,CAAC;wBAClE,IAAI,CAAC,gBAAgB,EAAE,CAAA;oBACzB,CAAC;gBACH,CAAC,CAAA;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,CAAA;YACf,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAA;QAEjC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YACjC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAA;QACjC,CAAC;QAED,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAA;YAC3C,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAA;YACxC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAA;QAChB,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,IAAgB;QACnB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACtD,IAAI,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAA;YACpD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC5B,OAAM;QACR,CAAC;QAED,IAAI,CAAC;YACH,uEAAuE;YACvE,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;YAClC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACjB,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,MAAM,WAAW,IAAI,CAAC,MAAM,eAAe,CAAC,CAAA;QACtE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;QAClC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,QAAoC;QAC5C,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAA;QAE/B,0EAA0E;QAC1E,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,GAAG,CACN,eAAe,IAAI,CAAC,cAAc,CAAC,MAAM,6BAA6B,CACvE,CAAA;YACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACvC,QAAQ,CAAC,IAAI,CAAC,CAAA;YAChB,CAAC;YACD,IAAI,CAAC,cAAc,GAAG,EAAE,CAAA;QAC1B,CAAC;QAED,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,eAAe,GAAG,SAAS,CAAA;QAClC,CAAC,CAAA;IACH,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,IAA0B;QAC9C,IAAI,CAAC;YACH,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,0CAA0C;gBAC1C,IAAI,CAAC,GAAG,CAAC,2BAA2B,EAAE,IAAI,CAAC,CAAA;gBAC3C,OAAM;YACR,CAAC;YAED,+EAA+E;YAC/E,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;YACtD,IAAI,CAAC,GAAG,CAAC,eAAe,SAAS,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAA;YAErD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;YACjC,CAAC;iBAAM,CAAC;gBACN,iEAAiE;gBACjE,IAAI,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAA;gBAC7D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACrC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QAE1C,IAAI,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,YAAY,CAAC,MAAM,kBAAkB,CAAC,CAAA;QAEnE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACjB,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,EAAE,CAAA;IACxB,CAAC;IAED;;OAEG;IACK,gBAAgB;QACtB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAM;QAExB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,IAAI,CAAC,CAAA;QACzD,IAAI,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,iBAAiB,IAAI,WAAW,EAAE,CAAC;YAC7D,IAAI,CAAC,GAAG,CAAC,gCAAgC,WAAW,WAAW,CAAC,CAAA;YAChE,OAAM;QACR,CAAC;QAED,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,sEAAsE;QACtE,wEAAwE;QACxE,sEAAsE;QACtE,4BAA4B;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI,CAAA;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,KAAK,CAAA;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CACtB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAChF,CAAA;QAED,IAAI,CAAC,GAAG,CACN,+BAA+B,IAAI,CAAC,iBAAiB,OAAO,KAAK,OAAO,CACzE,CAAA;QAED,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;YAC1C,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAO,CAAC,CAAA;gBAChC,IAAI,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;YACxC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,GAAG,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAA;YAC3C,CAAC;QACH,CAAC,EAAE,KAAK,CAAC,CAAA;IACX,CAAC;IAED;;OAEG;IACK,GAAG,CAAC,OAAe,EAAE,GAAG,IAAW;QACzC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,wBAAwB,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAA;QACzD,CAAC;IACH,CAAC;CACF"}