@edryslabs/genericprovider 1.0.3 → 1.5.1
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/README.md +129 -5
- package/dist/index.d.ts +1009 -42
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2936 -392
- package/dist/index.js.map +1 -1
- package/dist/lib.d.ts +1 -0
- package/dist/lib.d.ts.map +1 -1
- package/dist/lib.js +3 -0
- package/dist/lib.js.map +1 -1
- package/dist/providers/ably/index.d.ts +203 -0
- package/dist/providers/ably/index.d.ts.map +1 -0
- package/dist/providers/ably/index.js +561 -0
- package/dist/providers/ably/index.js.map +1 -0
- package/dist/providers/chunking.d.ts +26 -0
- package/dist/providers/chunking.d.ts.map +1 -0
- package/dist/providers/chunking.js +52 -0
- package/dist/providers/chunking.js.map +1 -0
- package/dist/providers/dummy/index.d.ts +138 -2
- package/dist/providers/dummy/index.d.ts.map +1 -1
- package/dist/providers/dummy/index.js +266 -4
- package/dist/providers/dummy/index.js.map +1 -1
- package/dist/providers/gun/index.d.ts +29 -4
- package/dist/providers/gun/index.d.ts.map +1 -1
- package/dist/providers/gun/index.js +165 -34
- package/dist/providers/gun/index.js.map +1 -1
- package/dist/providers/indexeddb/index.d.ts +44 -20
- package/dist/providers/indexeddb/index.d.ts.map +1 -1
- package/dist/providers/indexeddb/index.js +85 -71
- package/dist/providers/indexeddb/index.js.map +1 -1
- package/dist/providers/matrix/index.d.ts +11 -0
- package/dist/providers/matrix/index.d.ts.map +1 -1
- package/dist/providers/matrix/index.js +49 -5
- package/dist/providers/matrix/index.js.map +1 -1
- package/dist/providers/nostr/index.d.ts +76 -5
- package/dist/providers/nostr/index.d.ts.map +1 -1
- package/dist/providers/nostr/index.js +211 -36
- package/dist/providers/nostr/index.js.map +1 -1
- package/dist/providers/peerjs/index.d.ts +11 -1
- package/dist/providers/peerjs/index.d.ts.map +1 -1
- package/dist/providers/peerjs/index.js +32 -2
- package/dist/providers/peerjs/index.js.map +1 -1
- package/dist/providers/pubnub/index.d.ts +35 -1
- package/dist/providers/pubnub/index.d.ts.map +1 -1
- package/dist/providers/pubnub/index.js +56 -35
- package/dist/providers/pubnub/index.js.map +1 -1
- package/dist/providers/simple-peer/index.d.ts +8 -14
- package/dist/providers/simple-peer/index.d.ts.map +1 -1
- package/dist/providers/simple-peer/index.js +45 -68
- package/dist/providers/simple-peer/index.js.map +1 -1
- package/dist/providers/supabase/index.d.ts +43 -1
- package/dist/providers/supabase/index.d.ts.map +1 -1
- package/dist/providers/supabase/index.js +211 -18
- package/dist/providers/supabase/index.js.map +1 -1
- package/dist/providers/trystero/index.d.ts +19 -1
- package/dist/providers/trystero/index.d.ts.map +1 -1
- package/dist/providers/trystero/index.js +37 -2
- package/dist/providers/trystero/index.js.map +1 -1
- package/dist/providers/websocket/index.d.ts +9 -1
- package/dist/providers/websocket/index.d.ts.map +1 -1
- package/dist/providers/websocket/index.js +7 -1
- package/dist/providers/websocket/index.js.map +1 -1
- package/dist/transport.d.ts +80 -16
- package/dist/transport.d.ts.map +1 -1
- package/package.json +35 -24
|
@@ -137,8 +137,14 @@ export interface GunConnectionConfig extends ConnectionConfig {
|
|
|
137
137
|
/**
|
|
138
138
|
* GunDB transport implementation.
|
|
139
139
|
* Creates decentralized P2P connections using Gun graph database.
|
|
140
|
+
*
|
|
141
|
+
* Note: deliberately does NOT set `preferredBatchMs` on the Transport
|
|
142
|
+
* interface. send() already debounces internally via `batchInterval`
|
|
143
|
+
* (see flushBatch()) — an additional GenericProvider-level batch delay
|
|
144
|
+
* would just stack a second debounce in front of this one for no benefit.
|
|
140
145
|
*/
|
|
141
146
|
export declare class GunTransport implements Transport {
|
|
147
|
+
readonly expectedRttMs = 500;
|
|
142
148
|
private options;
|
|
143
149
|
private _connected;
|
|
144
150
|
private _room;
|
|
@@ -150,13 +156,13 @@ export declare class GunTransport implements Transport {
|
|
|
150
156
|
private updateBatch;
|
|
151
157
|
private batchTimeout?;
|
|
152
158
|
private processedUpdates;
|
|
153
|
-
private connectionTime;
|
|
154
159
|
private throttleTimeout?;
|
|
155
160
|
private pendingUpdates;
|
|
156
161
|
private updateSlot;
|
|
157
162
|
private readonly BUFFER_SIZE;
|
|
158
163
|
private awarenessListener;
|
|
159
164
|
private lastAwarenessId;
|
|
165
|
+
private ownAwarenessId;
|
|
160
166
|
private encryptionEnabled;
|
|
161
167
|
private persistentMode;
|
|
162
168
|
private persistDoc;
|
|
@@ -166,6 +172,8 @@ export declare class GunTransport implements Transport {
|
|
|
166
172
|
private savePending;
|
|
167
173
|
/** Data loaded from Gun snapshot before onMessage callback is registered */
|
|
168
174
|
private pendingLoad;
|
|
175
|
+
/** True once loadSnapshot()'s initial Gun read has completed */
|
|
176
|
+
private snapshotLoaded;
|
|
169
177
|
/**
|
|
170
178
|
* Create a new Gun transport.
|
|
171
179
|
*
|
|
@@ -201,15 +209,32 @@ export declare class GunTransport implements Transport {
|
|
|
201
209
|
*/
|
|
202
210
|
private peekMessageType;
|
|
203
211
|
/**
|
|
204
|
-
* Send awareness update to a
|
|
205
|
-
* Awareness is ephemeral - only the latest state matters.
|
|
206
|
-
* Each client writes to its own
|
|
212
|
+
* Send awareness update to a per-client slot under the awareness node.
|
|
213
|
+
* Awareness is ephemeral - only the latest state per client matters.
|
|
214
|
+
* Each client writes to its own slot (keyed by a stable per-connection id)
|
|
215
|
+
* so peers never overwrite each other's presence data.
|
|
207
216
|
*/
|
|
208
217
|
private sendAwareness;
|
|
209
218
|
/**
|
|
210
219
|
* Setup listener for awareness updates (separate from doc sync).
|
|
220
|
+
* Uses .map() so every existing per-client slot is replayed on subscribe
|
|
221
|
+
* (late joiners learn about already-present peers), not just the most
|
|
222
|
+
* recently written one.
|
|
211
223
|
*/
|
|
212
224
|
private setupAwarenessListener;
|
|
225
|
+
/**
|
|
226
|
+
* Frame a list of independently-wrapped envelopes with 4-byte big-endian
|
|
227
|
+
* length prefixes so they can be split back apart after transmission as
|
|
228
|
+
* one combined Gun record. See unframeUpdates() for the inverse.
|
|
229
|
+
*/
|
|
230
|
+
private frameUpdates;
|
|
231
|
+
/**
|
|
232
|
+
* Split a buffer produced by frameUpdates() back into the individual
|
|
233
|
+
* envelopes it contains. Malformed/truncated framing stops early rather
|
|
234
|
+
* than throwing, since a partial batch is still recoverable via periodic
|
|
235
|
+
* sync / hash verification.
|
|
236
|
+
*/
|
|
237
|
+
private unframeUpdates;
|
|
213
238
|
/**
|
|
214
239
|
* Flush batched updates to Gun.
|
|
215
240
|
* Called after debounce period (no new updates for batchInterval ms).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/gun/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAGxB,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/gun/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -75,9 +75,23 @@ function addCRC32Header(data) {
|
|
|
75
75
|
// Message type identifiers (must match GenericProvider)
|
|
76
76
|
const MESSAGE_SYNC = 0;
|
|
77
77
|
const MESSAGE_AWARENESS = 1;
|
|
78
|
+
// A presence slot older than this is ignored on receipt: the relay keeps
|
|
79
|
+
// every slot ever written and `.map().on()` replays all of them to a
|
|
80
|
+
// joiner, so without a bound a joiner inherited one phantom presence per
|
|
81
|
+
// connection the room ever had (round 7, item 5; measured 55 phantoms for
|
|
82
|
+
// 60 slots in test/dummy/bench-gun-awareness-replay.ts). A live slot is
|
|
83
|
+
// rewritten every lease/2 (at most 150 s at the playgrounds' 120 s lease),
|
|
84
|
+
// so 5 min is never reached by one; a bound the size of the lease would
|
|
85
|
+
// make a peer whose clock runs a minute or two off invisible to everyone.
|
|
86
|
+
const AWARENESS_MAX_AGE_MS = 5 * 60000;
|
|
78
87
|
/**
|
|
79
88
|
* GunDB transport implementation.
|
|
80
89
|
* Creates decentralized P2P connections using Gun graph database.
|
|
90
|
+
*
|
|
91
|
+
* Note: deliberately does NOT set `preferredBatchMs` on the Transport
|
|
92
|
+
* interface. send() already debounces internally via `batchInterval`
|
|
93
|
+
* (see flushBatch()) — an additional GenericProvider-level batch delay
|
|
94
|
+
* would just stack a second debounce in front of this one for no benefit.
|
|
81
95
|
*/
|
|
82
96
|
export class GunTransport {
|
|
83
97
|
/**
|
|
@@ -86,6 +100,8 @@ export class GunTransport {
|
|
|
86
100
|
* @param options - Configuration options (must include gun constructor)
|
|
87
101
|
*/
|
|
88
102
|
constructor(options) {
|
|
103
|
+
// Relay mesh with its own debounce/throttle: a few hundred ms round trip.
|
|
104
|
+
this.expectedRttMs = 500;
|
|
89
105
|
this._connected = false;
|
|
90
106
|
this._room = '';
|
|
91
107
|
this.gun = null;
|
|
@@ -94,12 +110,12 @@ export class GunTransport {
|
|
|
94
110
|
this.lastUpdateTime = 0;
|
|
95
111
|
this.updateBatch = [];
|
|
96
112
|
this.processedUpdates = new Set();
|
|
97
|
-
this.connectionTime = 0;
|
|
98
113
|
this.pendingUpdates = new Map();
|
|
99
114
|
this.updateSlot = 0;
|
|
100
115
|
this.BUFFER_SIZE = 20; // Circular buffer size
|
|
101
116
|
this.awarenessListener = null;
|
|
102
117
|
this.lastAwarenessId = ''; // Track last awareness ID to avoid processing our own
|
|
118
|
+
this.ownAwarenessId = null; // Stable per-client slot key under the awareness node
|
|
103
119
|
this.encryptionEnabled = false;
|
|
104
120
|
// Persistence
|
|
105
121
|
this.persistentMode = false;
|
|
@@ -109,6 +125,8 @@ export class GunTransport {
|
|
|
109
125
|
this.savePending = false;
|
|
110
126
|
/** Data loaded from Gun snapshot before onMessage callback is registered */
|
|
111
127
|
this.pendingLoad = null;
|
|
128
|
+
/** True once loadSnapshot()'s initial Gun read has completed */
|
|
129
|
+
this.snapshotLoaded = false;
|
|
112
130
|
if (!options.gun) {
|
|
113
131
|
throw new Error('GunTransport requires the "gun" option. ' +
|
|
114
132
|
'Please provide the Gun constructor: ' +
|
|
@@ -141,7 +159,6 @@ export class GunTransport {
|
|
|
141
159
|
throw new Error('Already connected');
|
|
142
160
|
}
|
|
143
161
|
this._room = config.room;
|
|
144
|
-
this.connectionTime = Date.now();
|
|
145
162
|
this.persistentMode = config.persistent ?? false;
|
|
146
163
|
this.persistDoc = config.doc ?? null;
|
|
147
164
|
this.persistDebounceMs = config.persistDebounceMs ?? 2000;
|
|
@@ -155,10 +172,22 @@ export class GunTransport {
|
|
|
155
172
|
radisk: false, // Disable radisk
|
|
156
173
|
...this.options.gunOptions,
|
|
157
174
|
};
|
|
158
|
-
// Add peers if specified
|
|
175
|
+
// Add peers if specified. Gun wants full URLs ending in the relay's
|
|
176
|
+
// path (`http://host:8765/gun`; it turns http(s) into ws(s) itself) -
|
|
177
|
+
// a bare `host:8765` never connects and Gun says nothing. Fill in what
|
|
178
|
+
// is missing: http:// (https:// only if the relay has a certificate),
|
|
179
|
+
// and /gun when there is no path.
|
|
159
180
|
if (this.options.peers.length > 0) {
|
|
160
|
-
|
|
161
|
-
|
|
181
|
+
const peers = this.options.peers.map((peer) => {
|
|
182
|
+
let url = peer.trim();
|
|
183
|
+
if (!/^(https?|wss?):\/\//i.test(url))
|
|
184
|
+
url = 'http://' + url;
|
|
185
|
+
if (/^(https?|wss?):\/\/[^/]+\/?$/i.test(url))
|
|
186
|
+
url = url.replace(/\/?$/, '/gun');
|
|
187
|
+
return url;
|
|
188
|
+
});
|
|
189
|
+
gunConfig.peers = peers;
|
|
190
|
+
this.log('📡 Connecting to peers:', peers);
|
|
162
191
|
}
|
|
163
192
|
this.gun = new this.options.gun(gunConfig);
|
|
164
193
|
// Navigate to room node
|
|
@@ -170,8 +199,42 @@ export class GunTransport {
|
|
|
170
199
|
// Subscribe to updates from Gun (both doc sync and awareness)
|
|
171
200
|
this.setupUpdateListener();
|
|
172
201
|
this.setupAwarenessListener();
|
|
202
|
+
// Wait for the first relay to say hi before anything is written: a put
|
|
203
|
+
// made before the websocket is up is stored by the relay but not pushed
|
|
204
|
+
// to peers already subscribed (measured 2026-09-07 with two Node peers
|
|
205
|
+
// on gun's own examples/http.js relay: the joiner's JOIN batch and
|
|
206
|
+
// presence, written ~10 ms before 'hi', never reached the settled
|
|
207
|
+
// peer; every later write did). GenericProvider sends its connect
|
|
208
|
+
// batch the moment connect() resolves, so resolve after 'hi' - or after
|
|
209
|
+
// a short timeout for a relay that is down or a local-only instance.
|
|
210
|
+
if (this.options.peers.length > 0) {
|
|
211
|
+
await new Promise((resolve) => {
|
|
212
|
+
let done = false;
|
|
213
|
+
const finish = () => {
|
|
214
|
+
if (done)
|
|
215
|
+
return;
|
|
216
|
+
done = true;
|
|
217
|
+
clearTimeout(timer);
|
|
218
|
+
resolve();
|
|
219
|
+
};
|
|
220
|
+
const timer = setTimeout(() => {
|
|
221
|
+
this.log('⏱️ No relay said hi within 3 s, continuing');
|
|
222
|
+
finish();
|
|
223
|
+
}, 3000);
|
|
224
|
+
try {
|
|
225
|
+
this.gun.on('hi', (peer) => {
|
|
226
|
+
this.log('🤝 Relay connected:', peer?.url ?? peer?.id ?? '?');
|
|
227
|
+
finish();
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
catch {
|
|
231
|
+
finish();
|
|
232
|
+
}
|
|
233
|
+
});
|
|
234
|
+
}
|
|
173
235
|
this._connected = true;
|
|
174
236
|
// Persistence: load existing snapshot or clear it for a fresh session
|
|
237
|
+
this.snapshotLoaded = false;
|
|
175
238
|
if (this.persistentMode) {
|
|
176
239
|
this.loadSnapshot();
|
|
177
240
|
}
|
|
@@ -227,10 +290,6 @@ export class GunTransport {
|
|
|
227
290
|
return;
|
|
228
291
|
if (!update || !update.data)
|
|
229
292
|
return;
|
|
230
|
-
// Only process updates newer than our connection time
|
|
231
|
-
if (update.timestamp && update.timestamp < this.connectionTime) {
|
|
232
|
-
return;
|
|
233
|
-
}
|
|
234
293
|
// Use sequence number for deduplication
|
|
235
294
|
const sequence = update.sequence || Math.floor(update.timestamp / 100);
|
|
236
295
|
const updateKey = `${updateId}-${sequence}`;
|
|
@@ -285,14 +344,19 @@ export class GunTransport {
|
|
|
285
344
|
continue;
|
|
286
345
|
}
|
|
287
346
|
}
|
|
288
|
-
// Decode base64 back to Uint8Array
|
|
347
|
+
// Decode base64 back to Uint8Array, then split the length-prefixed
|
|
348
|
+
// framing back into the individual envelopes flushBatch() combined
|
|
349
|
+
// (see frameUpdates()/unframeUpdates()) — a flush may contain
|
|
350
|
+
// several independently CRC32-wrapped GenericProvider messages.
|
|
289
351
|
const decoded = this.base64ToUint8Array(payload);
|
|
290
|
-
|
|
352
|
+
const frames = this.unframeUpdates(decoded);
|
|
291
353
|
if (this._callback) {
|
|
292
|
-
|
|
354
|
+
for (const frame of frames) {
|
|
355
|
+
this._callback(frame);
|
|
356
|
+
}
|
|
293
357
|
}
|
|
294
358
|
if (updates.length === 1) {
|
|
295
|
-
this.log('📥 Received update:',
|
|
359
|
+
this.log('📥 Received update:', frames.length, frames.length === 1 ? 'message' : 'messages', update.encrypted ? '(decrypted)' : '');
|
|
296
360
|
}
|
|
297
361
|
}
|
|
298
362
|
catch (error) {
|
|
@@ -332,6 +396,11 @@ export class GunTransport {
|
|
|
332
396
|
this.processPendingUpdates();
|
|
333
397
|
// Flush any pending updates
|
|
334
398
|
this.flushBatch();
|
|
399
|
+
// Take our presence slot with us; a crashed tab's slot ages out at the
|
|
400
|
+
// receivers instead (AWARENESS_MAX_AGE_MS).
|
|
401
|
+
if (this.ownAwarenessId && this.roomNode) {
|
|
402
|
+
this.roomNode.get('awareness').get(this.ownAwarenessId).put(null);
|
|
403
|
+
}
|
|
335
404
|
// Remove listeners
|
|
336
405
|
if (this.updateListener) {
|
|
337
406
|
// Gun doesn't have a clear off() method for map listeners
|
|
@@ -349,6 +418,7 @@ export class GunTransport {
|
|
|
349
418
|
this.persistentMode = false;
|
|
350
419
|
this.persistDoc = null;
|
|
351
420
|
this.pendingLoad = null;
|
|
421
|
+
this.snapshotLoaded = false;
|
|
352
422
|
this.log('✅ Disconnected');
|
|
353
423
|
}
|
|
354
424
|
/**
|
|
@@ -397,9 +467,10 @@ export class GunTransport {
|
|
|
397
467
|
return data[4];
|
|
398
468
|
}
|
|
399
469
|
/**
|
|
400
|
-
* Send awareness update to a
|
|
401
|
-
* Awareness is ephemeral - only the latest state matters.
|
|
402
|
-
* Each client writes to its own
|
|
470
|
+
* Send awareness update to a per-client slot under the awareness node.
|
|
471
|
+
* Awareness is ephemeral - only the latest state per client matters.
|
|
472
|
+
* Each client writes to its own slot (keyed by a stable per-connection id)
|
|
473
|
+
* so peers never overwrite each other's presence data.
|
|
403
474
|
*/
|
|
404
475
|
async sendAwareness(data) {
|
|
405
476
|
let payload = this.uint8ArrayToBase64(data);
|
|
@@ -407,12 +478,16 @@ export class GunTransport {
|
|
|
407
478
|
if (this.encryptionEnabled) {
|
|
408
479
|
payload = await this.encrypt(payload);
|
|
409
480
|
}
|
|
410
|
-
|
|
481
|
+
// Generated once per connection and reused for every broadcast, so all
|
|
482
|
+
// of this client's updates land in the same slot instead of each
|
|
483
|
+
// clobbering a shared node.
|
|
484
|
+
if (!this.ownAwarenessId) {
|
|
485
|
+
this.ownAwarenessId = `aware-${Date.now()}-${Math.random().toString(36).substr(2, 5)}`;
|
|
486
|
+
}
|
|
487
|
+
const awarenessId = this.ownAwarenessId;
|
|
411
488
|
// Track this ID so we don't process our own update
|
|
412
489
|
this.lastAwarenessId = awarenessId;
|
|
413
|
-
|
|
414
|
-
// Each update overwrites the previous - awareness only needs latest state
|
|
415
|
-
this.roomNode.get('awareness').put({
|
|
490
|
+
this.roomNode.get('awareness').get(awarenessId).put({
|
|
416
491
|
data: payload,
|
|
417
492
|
id: awarenessId,
|
|
418
493
|
timestamp: Date.now(),
|
|
@@ -422,18 +497,23 @@ export class GunTransport {
|
|
|
422
497
|
}
|
|
423
498
|
/**
|
|
424
499
|
* Setup listener for awareness updates (separate from doc sync).
|
|
500
|
+
* Uses .map() so every existing per-client slot is replayed on subscribe
|
|
501
|
+
* (late joiners learn about already-present peers), not just the most
|
|
502
|
+
* recently written one.
|
|
425
503
|
*/
|
|
426
504
|
setupAwarenessListener() {
|
|
427
505
|
this.awarenessListener = this.roomNode
|
|
428
506
|
.get('awareness')
|
|
507
|
+
.map()
|
|
429
508
|
.on(async (awareness) => {
|
|
430
509
|
if (!awareness || !awareness.data)
|
|
431
510
|
return;
|
|
432
511
|
// Skip our own awareness updates
|
|
433
512
|
if (awareness.id === this.lastAwarenessId)
|
|
434
513
|
return;
|
|
435
|
-
//
|
|
436
|
-
if (
|
|
514
|
+
// Skip the presence of connections long gone (see AWARENESS_MAX_AGE_MS)
|
|
515
|
+
if (typeof awareness.timestamp === 'number' &&
|
|
516
|
+
Date.now() - awareness.timestamp > AWARENESS_MAX_AGE_MS) {
|
|
437
517
|
return;
|
|
438
518
|
}
|
|
439
519
|
try {
|
|
@@ -458,6 +538,45 @@ export class GunTransport {
|
|
|
458
538
|
});
|
|
459
539
|
this.log('👂 Listening for awareness updates...');
|
|
460
540
|
}
|
|
541
|
+
/**
|
|
542
|
+
* Frame a list of independently-wrapped envelopes with 4-byte big-endian
|
|
543
|
+
* length prefixes so they can be split back apart after transmission as
|
|
544
|
+
* one combined Gun record. See unframeUpdates() for the inverse.
|
|
545
|
+
*/
|
|
546
|
+
frameUpdates(updates) {
|
|
547
|
+
const totalLength = updates.reduce((sum, arr) => sum + 4 + arr.length, 0);
|
|
548
|
+
const merged = new Uint8Array(totalLength);
|
|
549
|
+
const view = new DataView(merged.buffer);
|
|
550
|
+
let offset = 0;
|
|
551
|
+
for (const update of updates) {
|
|
552
|
+
view.setUint32(offset, update.length, false);
|
|
553
|
+
merged.set(update, offset + 4);
|
|
554
|
+
offset += 4 + update.length;
|
|
555
|
+
}
|
|
556
|
+
return merged;
|
|
557
|
+
}
|
|
558
|
+
/**
|
|
559
|
+
* Split a buffer produced by frameUpdates() back into the individual
|
|
560
|
+
* envelopes it contains. Malformed/truncated framing stops early rather
|
|
561
|
+
* than throwing, since a partial batch is still recoverable via periodic
|
|
562
|
+
* sync / hash verification.
|
|
563
|
+
*/
|
|
564
|
+
unframeUpdates(data) {
|
|
565
|
+
const frames = [];
|
|
566
|
+
const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
|
|
567
|
+
let offset = 0;
|
|
568
|
+
while (offset + 4 <= data.length) {
|
|
569
|
+
const len = view.getUint32(offset, false);
|
|
570
|
+
offset += 4;
|
|
571
|
+
if (len < 0 || offset + len > data.length) {
|
|
572
|
+
this.log('⚠️ Malformed batch framing, stopping split early');
|
|
573
|
+
break;
|
|
574
|
+
}
|
|
575
|
+
frames.push(data.subarray(offset, offset + len));
|
|
576
|
+
offset += len;
|
|
577
|
+
}
|
|
578
|
+
return frames;
|
|
579
|
+
}
|
|
461
580
|
/**
|
|
462
581
|
* Flush batched updates to Gun.
|
|
463
582
|
* Called after debounce period (no new updates for batchInterval ms).
|
|
@@ -465,14 +584,14 @@ export class GunTransport {
|
|
|
465
584
|
async flushBatch() {
|
|
466
585
|
if (this.updateBatch.length === 0)
|
|
467
586
|
return;
|
|
468
|
-
//
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
587
|
+
// Frame each queued update with a 4-byte big-endian length prefix so
|
|
588
|
+
// multiple independently CRC32-wrapped GenericProvider envelopes can be
|
|
589
|
+
// split back apart on the receiving side (see processPendingUpdates()).
|
|
590
|
+
// Each entry in updateBatch is already a complete, self-checksummed
|
|
591
|
+
// envelope — naively concatenating them without a delimiter made the
|
|
592
|
+
// combined blob fail CRC32 verification (and get silently dropped)
|
|
593
|
+
// whenever 2+ updates landed in the same flush.
|
|
594
|
+
const merged = this.frameUpdates(this.updateBatch);
|
|
476
595
|
// Clear batch
|
|
477
596
|
this.updateBatch = [];
|
|
478
597
|
// Convert to base64 for Gun storage
|
|
@@ -549,6 +668,13 @@ export class GunTransport {
|
|
|
549
668
|
async saveSnapshot() {
|
|
550
669
|
if (!this.persistDoc || !this.persistentMode || !this.roomNode)
|
|
551
670
|
return;
|
|
671
|
+
if (!this.snapshotLoaded) {
|
|
672
|
+
// The initial Gun read hasn't resolved yet — saving now could clobber
|
|
673
|
+
// the real persisted state with our still-unmerged local doc. Retry
|
|
674
|
+
// shortly instead of writing.
|
|
675
|
+
this.persistTimer = setTimeout(() => this.saveSnapshot(), 100);
|
|
676
|
+
return;
|
|
677
|
+
}
|
|
552
678
|
if (this.isWritingToGun) {
|
|
553
679
|
this.savePending = true;
|
|
554
680
|
return;
|
|
@@ -590,11 +716,11 @@ export class GunTransport {
|
|
|
590
716
|
*/
|
|
591
717
|
loadSnapshot() {
|
|
592
718
|
this.roomNode.get('snapshot').once(async (snap) => {
|
|
593
|
-
if (!snap || !snap.data || snap.cleared) {
|
|
594
|
-
this.log('📭 No snapshot found in Gun');
|
|
595
|
-
return;
|
|
596
|
-
}
|
|
597
719
|
try {
|
|
720
|
+
if (!snap || !snap.data || snap.cleared) {
|
|
721
|
+
this.log('📭 No snapshot found in Gun');
|
|
722
|
+
return;
|
|
723
|
+
}
|
|
598
724
|
let payload = snap.data;
|
|
599
725
|
if (snap.encrypted && this.encryptionEnabled) {
|
|
600
726
|
const decrypted = await this.decrypt(payload);
|
|
@@ -622,6 +748,11 @@ export class GunTransport {
|
|
|
622
748
|
this.log('❌ Error loading snapshot:', error);
|
|
623
749
|
console.warn('GunTransport: Failed to load snapshot:', error);
|
|
624
750
|
}
|
|
751
|
+
finally {
|
|
752
|
+
// Only now is it safe for saveSnapshot() to write — the local doc
|
|
753
|
+
// has had a chance to merge in whatever Gun had stored.
|
|
754
|
+
this.snapshotLoaded = true;
|
|
755
|
+
}
|
|
625
756
|
});
|
|
626
757
|
}
|
|
627
758
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/gun/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/gun/index.ts"],"names":[],"mappings":"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"}
|