@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
@@ -6,12 +6,19 @@
6
6
  * for persistence across browser sessions.
7
7
  *
8
8
  * Features:
9
- * - Automatic persistence of all document updates
10
- * - Efficient storage and retrieval
11
- * - Optional compaction to reduce storage size
9
+ * - Persists the document's updates as they happen - and nothing else: the
10
+ * provider's presence, beacons and requests are not stored (round 7,
11
+ * item 6: stored and replayed, they resurrected the previous session as a
12
+ * phantom peer and cost ~10x the bytes)
13
+ * - Loads the stored updates as one merged update and trims the log to
14
+ * that one row (every load appends a full-document push otherwise)
15
+ * - Lossless compaction (merge), on by default
12
16
  * - Works offline (no network required)
13
- * - Automatic cleanup of old updates
14
17
  * - Supports multiple documents/rooms
18
+ * - Pairs with a network provider on the same document through
19
+ * `connect({ waitFor })` (see ConnectionConfig.waitFor)
20
+ * - Not for a provider with `compressionThresholdBytes` set: the frame
21
+ * parser expects the plain CRC-wrapped frame
15
22
  *
16
23
  * @example
17
24
  * ```typescript
@@ -31,13 +38,12 @@
31
38
  *
32
39
  * @example
33
40
  * ```typescript
34
- * // With automatic compaction every 100 updates
35
- * const transport = new IndexedDBTransport({
36
- * compactThreshold: 100,
37
- * autoCompact: true
38
- * })
41
+ * // Compact (merge the rows into one) every 100 updates instead of 500
42
+ * const transport = new IndexedDBTransport({ compactThreshold: 100 })
39
43
  * ```
40
44
  */
45
+ import * as Y from 'yjs';
46
+ import { extractDocUpdates, frameDocUpdate } from '../../index';
41
47
  /**
42
48
  * IndexedDB transport implementation.
43
49
  * Provides local persistence for Yjs documents using browser IndexedDB.
@@ -54,7 +60,7 @@ export class IndexedDBTransport {
54
60
  prefix: options.prefix ?? 'yjs',
55
61
  version: options.version ?? 1,
56
62
  compactThreshold: options.compactThreshold ?? 0,
57
- autoCompact: options.autoCompact ?? false,
63
+ autoCompact: options.autoCompact ?? true,
58
64
  debug: options.debug ?? false,
59
65
  maxUpdates: options.maxUpdates ?? 500,
60
66
  storeName: options.storeName ?? 'updates',
@@ -151,7 +157,12 @@ export class IndexedDBTransport {
151
157
  this.log('Disconnected');
152
158
  }
153
159
  /**
154
- * Send (store) an update to IndexedDB.
160
+ * Store what the frame carries of the document - one row per frame that
161
+ * carries anything. Presence, beacons and requests are the provider's
162
+ * conversation with the room, and this transport is not the room: stored
163
+ * and replayed on the next load they resurrected the previous session's
164
+ * clientID as a phantom peer and were answered into the store again
165
+ * (round 7, item 6; test/dummy/bench-persist-log.ts).
155
166
  */
156
167
  send(data) {
157
168
  if (!this.db) {
@@ -162,14 +173,14 @@ export class IndexedDBTransport {
162
173
  if (this.isLoading) {
163
174
  return;
164
175
  }
176
+ const updates = extractDocUpdates(data);
177
+ if (updates.length === 0)
178
+ return;
179
+ const update = updates.length === 1 ? updates[0].slice() : Y.mergeUpdates(updates);
165
180
  try {
166
181
  const transaction = this.db.transaction([this.options.storeName], 'readwrite');
167
182
  const store = transaction.objectStore(this.options.storeName);
168
- // Store update with timestamp
169
- const record = {
170
- update: data,
171
- timestamp: Date.now(),
172
- };
183
+ const record = { update, timestamp: Date.now(), raw: true };
173
184
  const request = store.add(record);
174
185
  request.onsuccess = () => {
175
186
  this.updateCount++;
@@ -205,7 +216,12 @@ export class IndexedDBTransport {
205
216
  };
206
217
  }
207
218
  /**
208
- * Load all stored updates from database.
219
+ * Load the stored document: every row merged into one update, handed to
220
+ * the provider as one SyncStep2 (`frameDocUpdate`: applied, `synced`
221
+ * fires, nothing is sent back) and written back as that one row. Every
222
+ * page load appends a full-document push (GenericProvider's connect), so
223
+ * without the trim the log grew by one document per load - y-indexeddb
224
+ * trims the same way at its PREFERRED_TRIM_SIZE.
209
225
  */
210
226
  async loadUpdates() {
211
227
  if (!this.db || !this.messageCallback) {
@@ -213,27 +229,61 @@ export class IndexedDBTransport {
213
229
  }
214
230
  this.isLoading = true;
215
231
  this.log('Loading updates from database...');
232
+ let merged;
233
+ try {
234
+ merged = await this.mergeStore();
235
+ }
236
+ finally {
237
+ // Off before the delivery: an edit made from a `synced` handler must
238
+ // be stored, and the loaded state itself never comes back through
239
+ // send() (the provider applies it under its own origin).
240
+ this.isLoading = false;
241
+ }
242
+ this.log(merged === null ? 'Nothing stored' : `Loaded ${merged.length} bytes`);
243
+ if (merged !== null)
244
+ this.messageCallback?.(frameDocUpdate(merged));
245
+ }
246
+ /**
247
+ * The stored document as one update: every row read, merged and - when
248
+ * there was more than one, or one in the pre-round-7 frame format -
249
+ * written back as one row, all in one readwrite transaction (a
250
+ * concurrent send() queues behind it, so nothing added meanwhile can be
251
+ * cleared away). Rows that carry no document state (old presence or
252
+ * beacon frames) are dropped. Null for an empty store. Shared by
253
+ * loadUpdates() and compact().
254
+ */
255
+ mergeStore() {
216
256
  return new Promise((resolve, reject) => {
217
- const transaction = this.db.transaction([this.options.storeName], 'readonly');
257
+ const transaction = this.db.transaction([this.options.storeName], 'readwrite');
218
258
  const store = transaction.objectStore(this.options.storeName);
259
+ let merged = null;
219
260
  const request = store.getAll();
220
261
  request.onsuccess = () => {
221
- const records = request.result;
222
- this.log(`Loaded ${records.length} updates`);
223
- this.updateCount = records.length;
224
- // Apply all updates
225
- records.forEach((record) => {
226
- this.messageCallback?.(record.update);
227
- });
228
- this.isLoading = false;
229
- resolve();
262
+ const rows = request.result;
263
+ const updates = rows.flatMap((row) => row.raw ? [row.update] : extractDocUpdates(row.update));
264
+ if (updates.length === 0) {
265
+ if (rows.length > 0)
266
+ store.clear();
267
+ this.updateCount = 0;
268
+ return;
269
+ }
270
+ merged = updates.length === 1 ? updates[0].slice() : Y.mergeUpdates(updates);
271
+ if (rows.length > 1 || !rows[0].raw) {
272
+ store.clear();
273
+ const row = { update: merged, timestamp: Date.now(), raw: true };
274
+ store.add(row);
275
+ }
276
+ this.updateCount = 1;
230
277
  };
231
- request.onerror = () => {
232
- this.isLoading = false;
233
- const error = new Error(`Failed to load updates: ${request.error?.message}`);
278
+ transaction.oncomplete = () => resolve(merged);
279
+ transaction.onerror = () => {
280
+ const error = new Error(`Failed to read updates: ${transaction.error?.message ?? 'unknown error'}`);
234
281
  this.log('Error loading updates:', error);
235
282
  reject(error);
236
283
  };
284
+ transaction.onabort = () => {
285
+ reject(new Error('Reading updates was aborted'));
286
+ };
237
287
  });
238
288
  }
239
289
  /**
@@ -249,52 +299,16 @@ export class IndexedDBTransport {
249
299
  return this.updateCount >= this.options.maxUpdates;
250
300
  }
251
301
  /**
252
- * Compact the database by merging updates.
253
- * This reduces storage size by consolidating the update history.
302
+ * Merge every stored row into one. Lossless - it used to delete the
303
+ * oldest 90 % of rows, i.e. the document (round 7, item 6).
254
304
  */
255
305
  async compact() {
256
306
  if (!this.db) {
257
307
  throw new Error('Database not connected');
258
308
  }
259
- this.log('Starting compaction...');
260
- // Get document state from the provider
261
- // Note: This requires the provider to expose the document
262
- // For now, we'll just clear old updates and keep recent ones
263
- return new Promise((resolve, reject) => {
264
- const transaction = this.db.transaction([this.options.storeName], 'readwrite');
265
- const store = transaction.objectStore(this.options.storeName);
266
- // Get all keys
267
- const getAllKeysRequest = store.getAllKeys();
268
- getAllKeysRequest.onsuccess = () => {
269
- const keys = getAllKeysRequest.result;
270
- if (keys.length <= 1) {
271
- this.log('No compaction needed');
272
- resolve();
273
- return;
274
- }
275
- // Keep only the most recent 10% of updates
276
- const keepCount = Math.max(1, Math.floor(keys.length * 0.1));
277
- const deleteKeys = keys.slice(0, keys.length - keepCount);
278
- this.log(`Compacting: deleting ${deleteKeys.length} old updates`);
279
- let deleted = 0;
280
- deleteKeys.forEach((key) => {
281
- const deleteRequest = store.delete(key);
282
- deleteRequest.onsuccess = () => {
283
- deleted++;
284
- if (deleted === deleteKeys.length) {
285
- this.updateCount = keepCount;
286
- this.log('Compaction complete, remaining updates:', keepCount);
287
- resolve();
288
- }
289
- };
290
- });
291
- };
292
- getAllKeysRequest.onerror = () => {
293
- const error = new Error('Failed to get keys for compaction');
294
- this.log('Compaction error:', error);
295
- reject(error);
296
- };
297
- });
309
+ this.log('Compacting...');
310
+ await this.mergeStore();
311
+ this.log('Compaction complete, rows:', this.updateCount);
298
312
  }
299
313
  /**
300
314
  * Clear all stored updates for the current room.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/indexeddb/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAqDH;;;GAGG;AACH,MAAM,OAAO,kBAAkB;IAU7B,YAAY,UAAqC,EAAE;QAR3C,OAAE,GAAuB,IAAI,CAAA;QAC7B,WAAM,GAAW,EAAE,CAAA;QACnB,UAAK,GAAW,EAAE,CAAA;QAElB,iBAAY,GAAY,KAAK,CAAA;QAC7B,gBAAW,GAAW,CAAC,CAAA;QACvB,cAAS,GAAY,KAAK,CAAA;QAGhC,IAAI,CAAC,OAAO,GAAG;YACb,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;YAC/B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC;YAC7B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,CAAC;YAC/C,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,KAAK;YACzC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK;YAC7B,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,GAAG;YACrC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,SAAS;SAC1C,CAAA;IACH,CAAC;IAED;;OAEG;IACK,GAAG,CAAC,GAAG,IAAW;QACxB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,GAAG,IAAI,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,MAAwB;QACpC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QACnD,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAA;QACxB,IAAI,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAA;QAErD,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEhD,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QAEzB,kDAAkD;QAClD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;QAC1B,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;QACxB,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;IACpC,CAAC;IAED;;OAEG;IACK,YAAY;QAClB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YAEjE,OAAO,CAAC,OAAO,GAAG,GAAG,EAAE;gBACrB,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB,6BAA6B,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,CACtD,CAAA;gBACD,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAA;gBAC1C,MAAM,CAAC,KAAK,CAAC,CAAA;YACf,CAAC,CAAA;YAED,OAAO,CAAC,SAAS,GAAG,GAAG,EAAE;gBACvB,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAA;gBACxB,IAAI,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;gBACxC,OAAO,EAAE,CAAA;YACX,CAAC,CAAA;YAED,OAAO,CAAC,eAAe,GAAG,CAAC,KAAK,EAAE,EAAE;gBAClC,MAAM,EAAE,GAAI,KAAK,CAAC,MAA2B,CAAC,MAAM,CAAA;gBAEpD,IAAI,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;gBAExC,8BAA8B;gBAC9B,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC1D,MAAM,KAAK,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;wBACzD,aAAa,EAAE,IAAI;qBACpB,CAAC,CAAA;oBACF,mDAAmD;oBACnD,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;oBAC9D,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;gBAC3D,CAAC;gBAED,4CAA4C;gBAC5C,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC9C,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAA;oBAChC,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;gBACpC,CAAC;YACH,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAM;QAE9B,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;QAE5B,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;YACf,IAAI,CAAC,EAAE,GAAG,IAAI,CAAA;QAChB,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;QACzB,IAAI,CAAC,eAAe,GAAG,SAAS,CAAA;QAChC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;QAEpB,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;IAC1B,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,IAAgB;QACnB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAA;YAC/C,OAAM;QACR,CAAC;QAED,oCAAoC;QACpC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAM;QACR,CAAC;QAED,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CACrC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EACxB,WAAW,CACZ,CAAA;YACD,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;YAE7D,8BAA8B;YAC9B,MAAM,MAAM,GAAG;gBACb,MAAM,EAAE,IAAI;gBACZ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAA;YAED,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAEjC,OAAO,CAAC,SAAS,GAAG,GAAG,EAAE;gBACvB,IAAI,CAAC,WAAW,EAAE,CAAA;gBAClB,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;gBAEnD,8BAA8B;gBAC9B,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;oBACzB,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;wBAC3B,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAA;oBACrC,CAAC,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC,CAAA;YAED,OAAO,CAAC,OAAO,GAAG,GAAG,EAAE;gBACrB,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;YACpD,CAAC,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,QAAoC;QAC5C,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAA;QAE/B,iDAAiD;QACjD,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACzC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC/B,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAA;YAC1C,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,eAAe,GAAG,SAAS,CAAA;QAClC,CAAC,CAAA;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACtC,OAAM;QACR,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACrB,IAAI,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAA;QAE5C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,WAAW,GAAG,IAAI,CAAC,EAAG,CAAC,WAAW,CACtC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EACxB,UAAU,CACX,CAAA;YACD,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;YAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,CAAA;YAE9B,OAAO,CAAC,SAAS,GAAG,GAAG,EAAE;gBACvB,MAAM,OAAO,GAAG,OAAO,CAAC,MAGtB,CAAA;gBAEF,IAAI,CAAC,GAAG,CAAC,UAAU,OAAO,CAAC,MAAM,UAAU,CAAC,CAAA;gBAC5C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,MAAM,CAAA;gBAEjC,oBAAoB;gBACpB,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;oBACzB,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;gBACvC,CAAC,CAAC,CAAA;gBAEF,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;gBACtB,OAAO,EAAE,CAAA;YACX,CAAC,CAAA;YAED,OAAO,CAAC,OAAO,GAAG,GAAG,EAAE;gBACrB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;gBACtB,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB,2BAA2B,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,CACpD,CAAA;gBACD,IAAI,CAAC,GAAG,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAA;gBACzC,MAAM,CAAC,KAAK,CAAC,CAAA;YACf,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACK,aAAa;QACnB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAA;QACd,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAA;QAC1D,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAA;IACpD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAC3C,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;QAElC,uCAAuC;QACvC,0DAA0D;QAC1D,6DAA6D;QAE7D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,WAAW,GAAG,IAAI,CAAC,EAAG,CAAC,WAAW,CACtC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EACxB,WAAW,CACZ,CAAA;YACD,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;YAE7D,eAAe;YACf,MAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,EAAE,CAAA;YAE5C,iBAAiB,CAAC,SAAS,GAAG,GAAG,EAAE;gBACjC,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,CAAA;gBAErC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBACrB,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;oBAChC,OAAO,EAAE,CAAA;oBACT,OAAM;gBACR,CAAC;gBAED,2CAA2C;gBAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAA;gBAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;gBAEzD,IAAI,CAAC,GAAG,CAAC,wBAAwB,UAAU,CAAC,MAAM,cAAc,CAAC,CAAA;gBAEjE,IAAI,OAAO,GAAG,CAAC,CAAA;gBACf,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBACzB,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;oBACvC,aAAa,CAAC,SAAS,GAAG,GAAG,EAAE;wBAC7B,OAAO,EAAE,CAAA;wBACT,IAAI,OAAO,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;4BAClC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAA;4BAC5B,IAAI,CAAC,GAAG,CAAC,yCAAyC,EAAE,SAAS,CAAC,CAAA;4BAC9D,OAAO,EAAE,CAAA;wBACX,CAAC;oBACH,CAAC,CAAA;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC,CAAA;YAED,iBAAiB,CAAC,OAAO,GAAG,GAAG,EAAE;gBAC/B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;gBAC5D,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAA;gBACpC,MAAM,CAAC,KAAK,CAAC,CAAA;YACf,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAC3C,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;QAEnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,WAAW,GAAG,IAAI,CAAC,EAAG,CAAC,WAAW,CACtC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EACxB,WAAW,CACZ,CAAA;YACD,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;YAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;YAE7B,OAAO,CAAC,SAAS,GAAG,GAAG,EAAE;gBACvB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;gBACpB,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;gBAC/B,OAAO,EAAE,CAAA;YACX,CAAC,CAAA;YAED,OAAO,CAAC,OAAO,GAAG,GAAG,EAAE;gBACrB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;gBAClD,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;gBAC/B,MAAM,CAAC,KAAK,CAAC,CAAA;YACf,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QAKZ,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAC3C,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,WAAW,GAAG,IAAI,CAAC,EAAG,CAAC,WAAW,CACtC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EACxB,UAAU,CACX,CAAA;YACD,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;YAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;YAE7B,OAAO,CAAC,SAAS,GAAG,GAAG,EAAE;gBACvB,OAAO,CAAC;oBACN,WAAW,EAAE,OAAO,CAAC,MAAM;oBAC3B,YAAY,EAAE,IAAI,CAAC,MAAM;oBACzB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;iBAClC,CAAC,CAAA;YACJ,CAAC,CAAA;YAED,OAAO,CAAC,OAAO,GAAG,GAAG,EAAE;gBACrB,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAA;YAC1C,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,cAAc,CACzB,IAAY,EACZ,SAAiB,KAAK;QAEtB,MAAM,MAAM,GAAG,GAAG,MAAM,IAAI,IAAI,EAAE,CAAA;QAElC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,OAAO,GAAG,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;YAEhD,OAAO,CAAC,SAAS,GAAG,GAAG,EAAE;gBACvB,OAAO,CAAC,GAAG,CAAC,wCAAwC,EAAE,MAAM,CAAC,CAAA;gBAC7D,OAAO,EAAE,CAAA;YACX,CAAC,CAAA;YAED,OAAO,CAAC,OAAO,GAAG,GAAG,EAAE;gBACrB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,8BAA8B,MAAM,EAAE,CAAC,CAAA;gBAC/D,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAA;gBAC5C,MAAM,CAAC,KAAK,CAAC,CAAA;YACf,CAAC,CAAA;YAED,OAAO,CAAC,SAAS,GAAG,GAAG,EAAE;gBACvB,OAAO,CAAC,IAAI,CACV,8EAA8E,CAC/E,CAAA;YACH,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/indexeddb/index.ts"],"names":[],"mappings":"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"}
@@ -48,7 +48,10 @@ export declare class MatrixTransport implements Transport {
48
48
  * unlike push-style transports, there's no cheaper round trip to lose by
49
49
  * batching. Recommends GenericProvider debounce rapid edits by default.
50
50
  */
51
- readonly preferredBatchMs = 150;
51
+ readonly preferredBatchMs = 2000;
52
+ readonly preferredAwarenessMs = 2000;
53
+ readonly preferredCompressMinBytes = 2048;
54
+ readonly expectedRttMs = 700;
52
55
  private config;
53
56
  private messageCallback?;
54
57
  private _isConnected;
@@ -62,6 +65,7 @@ export declare class MatrixTransport implements Transport {
62
65
  private txnId;
63
66
  private messageQueue;
64
67
  private receivedBuffer;
68
+ private chunks;
65
69
  get isConnected(): boolean;
66
70
  /**
67
71
  * Connect to Matrix homeserver and join room
@@ -91,6 +95,7 @@ export declare class MatrixTransport implements Transport {
91
95
  * Send Yjs update to Matrix room
92
96
  */
93
97
  send(data: Uint8Array): void;
98
+ private sendEvent;
94
99
  /**
95
100
  * Register message callback
96
101
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/matrix/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAElE;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACpD,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAA;IACrB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,eAAgB,YAAW,SAAS;IAC/C;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,OAAM;IAE/B,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,eAAe,CAAC,CAA4B;IACpD,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,qBAAqB,CAAiB;IAC9C,OAAO,CAAC,KAAK,CAAY;IAGzB,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,cAAc,CAAmB;IAEzC,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA0ClD;;OAEG;YACW,eAAe;IA6C7B;;OAEG;YACW,QAAQ;IA+BtB;;OAEG;YACW,SAAS;IAiBvB;;OAEG;YACW,QAAQ;IAsDtB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAWjC;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAuC5B;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,GAAG,MAAM,IAAI;IAiB3D;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;OAEG;IACH,OAAO,CAAC,GAAG;CAKZ"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/matrix/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAOlE;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACpD,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAA;IACrB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,eAAgB,YAAW,SAAS;IAC/C;;;;OAIG;IAKH,QAAQ,CAAC,gBAAgB,QAAO;IAChC,QAAQ,CAAC,oBAAoB,QAAO;IAEpC,QAAQ,CAAC,yBAAyB,QAAO;IAEzC,QAAQ,CAAC,aAAa,OAAM;IAE5B,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,eAAe,CAAC,CAA4B;IACpD,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,qBAAqB,CAAiB;IAC9C,OAAO,CAAC,KAAK,CAAY;IAGzB,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,cAAc,CAAmB;IACzC,OAAO,CAAC,MAAM,CAAuB;IAErC,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA0ClD;;OAEG;YACW,eAAe;IA6C7B;;OAEG;YACW,QAAQ;IA+BtB;;OAEG;YACW,SAAS;IAiBvB;;OAEG;YACW,QAAQ;IA8DtB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAWjC;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAuB5B,OAAO,CAAC,SAAS;IA6BjB;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,GAAG,MAAM,IAAI;IAiB3D;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;OAEG;IACH,OAAO,CAAC,GAAG;CAKZ"}
@@ -1,3 +1,7 @@
1
+ import { splitChunks, isChunk, ChunkAssembler } from '../chunking';
2
+ // Synapse rejects events above 65,536 bytes of canonical JSON; the body is
3
+ // the base64 payload, the rest of the event is a few hundred bytes.
4
+ const MAX_BODY_CHARS = 60000;
1
5
  /**
2
6
  * Matrix Transport for Yjs
3
7
  *
@@ -33,7 +37,16 @@ export class MatrixTransport {
33
37
  * unlike push-style transports, there's no cheaper round trip to lose by
34
38
  * batching. Recommends GenericProvider debounce rapid edits by default.
35
39
  */
36
- this.preferredBatchMs = 150;
40
+ // Synapse's default rc_message is 0.2 messages/s per user with a burst of
41
+ // 10: at 150 ms batches and 100 ms awareness a typing peer was
42
+ // rate-limited within seconds. 2 s each keeps a minute of activity inside
43
+ // the burst; operators who raise rc_message override per call.
44
+ this.preferredBatchMs = 2000;
45
+ this.preferredAwarenessMs = 2000;
46
+ // A 65,536-byte canonical-JSON cap per event: compress first, chunk after.
47
+ this.preferredCompressMinBytes = 2048;
48
+ // HTTP PUT to send, long-poll to receive: several hundred ms one way.
49
+ this.expectedRttMs = 700;
37
50
  this.config = null;
38
51
  this._isConnected = false;
39
52
  this.debug = false;
@@ -47,6 +60,7 @@ export class MatrixTransport {
47
60
  // Message buffering
48
61
  this.messageQueue = [];
49
62
  this.receivedBuffer = [];
63
+ this.chunks = new ChunkAssembler();
50
64
  }
51
65
  get isConnected() {
52
66
  return this._isConnected;
@@ -200,9 +214,19 @@ export class MatrixTransport {
200
214
  // Ignore our own messages
201
215
  if (event.sender === this.userId)
202
216
  continue;
203
- // Decode the Yjs update from base64
217
+ // Decode the Yjs update from base64 (a chunk of one above
218
+ // MAX_BODY_CHARS: reassemble first)
204
219
  try {
205
- const updateBase64 = event.content.body;
220
+ let updateBase64 = event.content.body;
221
+ if (updateBase64.startsWith('{')) {
222
+ const parsed = JSON.parse(updateBase64);
223
+ if (!isChunk(parsed))
224
+ continue;
225
+ const whole = this.chunks.push(parsed);
226
+ if (whole === null)
227
+ continue;
228
+ updateBase64 = whole;
229
+ }
206
230
  const update = this.base64ToUint8(updateBase64);
207
231
  this.log(`📨 Received ${update.length} bytes from ${event.sender}`);
208
232
  if (this.messageCallback) {
@@ -243,8 +267,22 @@ export class MatrixTransport {
243
267
  return;
244
268
  }
245
269
  try {
246
- // Encode update as base64 for JSON transport
270
+ // Encode update as base64 for JSON transport; above the event size
271
+ // cap, one event per chunk (each counts against rc_message - the
272
+ // only option Synapse leaves).
247
273
  const base64Data = this.uint8ToBase64(data);
274
+ const bodies = base64Data.length > MAX_BODY_CHARS
275
+ ? splitChunks(base64Data, MAX_BODY_CHARS).map((c) => JSON.stringify(c))
276
+ : [base64Data];
277
+ for (const body of bodies)
278
+ this.sendEvent(body, data.length);
279
+ }
280
+ catch (error) {
281
+ this.log('❌ Send error:', error);
282
+ }
283
+ }
284
+ sendEvent(body, byteCount) {
285
+ try {
248
286
  // Send as custom message type
249
287
  const txnId = `y${this.txnId++}_${Date.now()}`;
250
288
  const url = `${this.config.homeserverUrl}/_matrix/client/v3/rooms/${encodeURIComponent(this.roomId)}/send/m.room.message/${txnId}`;
@@ -257,11 +295,11 @@ export class MatrixTransport {
257
295
  },
258
296
  body: JSON.stringify({
259
297
  msgtype: 'y.update',
260
- body: base64Data,
298
+ body,
261
299
  }),
262
300
  }).then((response) => {
263
301
  if (response.ok) {
264
- this.log(`📤 Sent ${data.length} bytes`);
302
+ this.log(`📤 Sent ${byteCount} bytes`);
265
303
  }
266
304
  else {
267
305
  this.log(`❌ Send failed: ${response.statusText}`);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/matrix/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/matrix/index.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Nostr Transport Provider
3
3
  *
4
4
  * Serverless, decentralised synchronisation using the Nostr protocol.
5
- * Binary Yjs updates are base64-encoded and published as signed Nostr events
5
+ * Binary Yjs updates (the provider's frame, untouched) are base64-encoded and published as signed Nostr events
6
6
  * to one or more relays. Every connected client subscribes to the same room tag,
7
7
  * so updates fan out through all configured relays automatically.
8
8
  *
@@ -13,6 +13,9 @@
13
13
  * - Optional password to obfuscate the room tag (SHA-256)
14
14
  * - Configurable history window to catch up on missed updates
15
15
  * - Automatic deduplication (events from self are ignored)
16
+ * - Optional persistent mode: durable full-document snapshots via NIP-01
17
+ * addressable events, so a late joiner can catch up with no live peer
18
+ * and no relay-side history needed (see README.md)
16
19
  *
17
20
  * @example
18
21
  * ```typescript
@@ -47,6 +50,7 @@
47
50
  * })
48
51
  * ```
49
52
  */
53
+ import * as Y from 'yjs';
50
54
  import type { Transport, ConnectionConfig } from '../../transport';
51
55
  /** Shape of a signed Nostr event returned by finalizeEvent. */
52
56
  interface NostrEvent {
@@ -90,7 +94,7 @@ export interface NostrTransportOptions {
90
94
  * @example import { SimplePool } from 'nostr-tools'
91
95
  */
92
96
  SimplePool: new () => {
93
- subscribeMany(relays: string[], filters: object[], handlers: {
97
+ subscribeMany(relays: string[], filter: object, handlers: {
94
98
  onevent?: (event: NostrEvent) => void;
95
99
  oneose?: () => void;
96
100
  }): {
@@ -108,7 +112,12 @@ export interface NostrTransportOptions {
108
112
  */
109
113
  secretKey?: Uint8Array;
110
114
  /**
111
- * Custom Nostr event kind to use for Yjs update events.
115
+ * Custom Nostr event kind to use for Yjs update events. 27370 is in the
116
+ * ephemeral range: relays fan it out without storing it, which is what
117
+ * sync and presence traffic wants (and what most public relays accept;
118
+ * a few block ephemeral kinds or unknown pubkeys, see the README). Use a
119
+ * regular kind (1000-9999) if `historyWindowSecs` catch-up matters more
120
+ * than not filling relays with document history.
112
121
  * @default 27370
113
122
  */
114
123
  eventKind?: number;
@@ -123,7 +132,9 @@ export interface NostrConfig extends ConnectionConfig {
123
132
  room: string;
124
133
  /**
125
134
  * Nostr relay WebSocket URLs to connect to.
126
- * @default ['wss://relay.damus.io', 'wss://nos.lol', 'wss://relay.nostr.band']
135
+ * @default ['wss://relay.damus.io', 'wss://nos.lol', 'wss://nostr.mom'] -
136
+ * the three that accepted kind-27370 events of 50 KB fastest in the
137
+ * 2026-09-06 probe (see the README's relay table)
127
138
  */
128
139
  relays?: string[];
129
140
  /**
@@ -135,10 +146,40 @@ export interface NostrConfig extends ConnectionConfig {
135
146
  /**
136
147
  * How many seconds of stored relay events to fetch on connect.
137
148
  * Set to 0 to receive only real-time events (no catch-up).
138
- * Increase for longer-lived documents that should survive peer restarts.
149
+ * Only meaningful with a regular (stored) `eventKind`: the default kind
150
+ * 27370 is in NIP-01's ephemeral range (20000-29999), which relays do
151
+ * not store - measured against 8 public relays, none returned a stored
152
+ * event - so with the default kind this window fetches nothing and a
153
+ * late joiner gets the document from a live peer's reply instead.
139
154
  * @default 86400 (24 hours)
140
155
  */
141
156
  historyWindowSecs?: number;
157
+ /**
158
+ * Publish periodic full-document snapshots as NIP-01 addressable events
159
+ * (see `persistentKind`) so a late joiner can catch up from a relay's
160
+ * durable storage alone, even with no live peer online and even across a
161
+ * relay restart (unlike the default ephemeral live-update kind, which
162
+ * relays are not expected to store). Requires `doc`.
163
+ * @default false
164
+ */
165
+ persistent?: boolean;
166
+ /**
167
+ * The Y.Doc to snapshot. Required when `persistent` is true - the
168
+ * transport reads its state directly (`doc.on('update', ...)`) rather
169
+ * than inspecting outgoing wire frames, since compression (see
170
+ * `NostrTransport.preferredCompressMinBytes`) would shift the frame's
171
+ * message-type byte to an unpredictable offset.
172
+ */
173
+ doc?: Y.Doc;
174
+ /**
175
+ * Nostr event kind used for persistent snapshots. Must be in NIP-01's
176
+ * addressable range (30000-39999) for relay replace-on-write semantics
177
+ * to apply.
178
+ * @default 30078
179
+ */
180
+ persistentKind?: number;
181
+ /** Debounce between a document change and the next snapshot publish. */
182
+ persistDebounceMs?: number;
142
183
  /** Enable debug logging (overrides constructor option). */
143
184
  debug?: boolean;
144
185
  }
@@ -156,10 +197,13 @@ export declare class NostrTransport implements Transport {
156
197
  * round trips.
157
198
  */
158
199
  readonly preferredBatchMs = 150;
200
+ readonly preferredCompressMinBytes = 2048;
201
+ readonly expectedRttMs = 600;
159
202
  private readonly opts;
160
203
  private _connected;
161
204
  private _callback?;
162
205
  private _buffer;
206
+ private _chunks;
163
207
  private pool;
164
208
  private sub;
165
209
  private relays;
@@ -167,11 +211,31 @@ export declare class NostrTransport implements Transport {
167
211
  private pubkey;
168
212
  private roomTag;
169
213
  private readonly eventKind;
214
+ private persistentMode;
215
+ private doc;
216
+ private persistentKind;
217
+ private persistDebounceMs;
218
+ private persistTimer?;
219
+ private isPublishingSnapshot;
220
+ private publishPending;
221
+ private snapshotSub;
222
+ private snapshotChunks;
223
+ private _onDocUpdate;
170
224
  constructor(opts: NostrTransportOptions);
171
225
  get isConnected(): boolean;
172
226
  connect(config: NostrConfig): Promise<void>;
173
227
  disconnect(): void;
174
228
  send(data: Uint8Array): Promise<void>;
229
+ private _queueSnapshotPublish;
230
+ /**
231
+ * Publish the whole doc as one snapshot, always through the chunk
232
+ * envelope (even a single part) - see README.md's "Persistent mode" for
233
+ * why: it keeps exactly one addressing scheme (`${roomTag}#${index}`)
234
+ * regardless of how many parts a given snapshot needs, so an older
235
+ * differently-sized snapshot's slots are always overwritten rather than
236
+ * left stale alongside a newer one under a different address.
237
+ */
238
+ private _publishSnapshot;
175
239
  onMessage(callback: (data: Uint8Array) => void): () => void;
176
240
  private _deliver;
177
241
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/nostr/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/nostr/index.ts"],"names":[],"mappings":"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"}