@edryslabs/genericprovider 1.0.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/LICENSE +24 -0
- package/README.md +660 -0
- package/dist/index.d.ts +323 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1001 -0
- package/dist/index.js.map +1 -0
- package/dist/lib.d.ts +36 -0
- package/dist/lib.d.ts.map +1 -0
- package/dist/lib.js +37 -0
- package/dist/lib.js.map +1 -0
- package/dist/providers/dummy/index.d.ts +226 -0
- package/dist/providers/dummy/index.d.ts.map +1 -0
- package/dist/providers/dummy/index.js +326 -0
- package/dist/providers/dummy/index.js.map +1 -0
- package/dist/providers/gun/index.d.ts +269 -0
- package/dist/providers/gun/index.d.ts.map +1 -0
- package/dist/providers/gun/index.js +683 -0
- package/dist/providers/gun/index.js.map +1 -0
- package/dist/providers/indexeddb/index.d.ts +161 -0
- package/dist/providers/indexeddb/index.d.ts.map +1 -0
- package/dist/providers/indexeddb/index.js +369 -0
- package/dist/providers/indexeddb/index.js.map +1 -0
- package/dist/providers/matrix/index.d.ts +109 -0
- package/dist/providers/matrix/index.d.ts.map +1 -0
- package/dist/providers/matrix/index.js +329 -0
- package/dist/providers/matrix/index.js.map +1 -0
- package/dist/providers/nostr/index.d.ts +172 -0
- package/dist/providers/nostr/index.d.ts.map +1 -0
- package/dist/providers/nostr/index.js +280 -0
- package/dist/providers/nostr/index.js.map +1 -0
- package/dist/providers/peerjs/index.d.ts +231 -0
- package/dist/providers/peerjs/index.d.ts.map +1 -0
- package/dist/providers/peerjs/index.js +1038 -0
- package/dist/providers/peerjs/index.js.map +1 -0
- package/dist/providers/pubnub/index.d.ts +106 -0
- package/dist/providers/pubnub/index.d.ts.map +1 -0
- package/dist/providers/pubnub/index.js +357 -0
- package/dist/providers/pubnub/index.js.map +1 -0
- package/dist/providers/simple-peer/index.d.ts +253 -0
- package/dist/providers/simple-peer/index.d.ts.map +1 -0
- package/dist/providers/simple-peer/index.js +783 -0
- package/dist/providers/simple-peer/index.js.map +1 -0
- package/dist/providers/supabase/index.d.ts +80 -0
- package/dist/providers/supabase/index.d.ts.map +1 -0
- package/dist/providers/supabase/index.js +202 -0
- package/dist/providers/supabase/index.js.map +1 -0
- package/dist/providers/trystero/index.d.ts +181 -0
- package/dist/providers/trystero/index.d.ts.map +1 -0
- package/dist/providers/trystero/index.js +187 -0
- package/dist/providers/trystero/index.js.map +1 -0
- package/dist/providers/websocket/index.d.ts +92 -0
- package/dist/providers/websocket/index.d.ts.map +1 -0
- package/dist/providers/websocket/index.js +272 -0
- package/dist/providers/websocket/index.js.map +1 -0
- package/dist/sync-monitor.d.ts +90 -0
- package/dist/sync-monitor.d.ts.map +1 -0
- package/dist/sync-monitor.js +149 -0
- package/dist/sync-monitor.js.map +1 -0
- package/dist/transport.d.ts +116 -0
- package/dist/transport.d.ts.map +1 -0
- package/dist/transport.js +2 -0
- package/dist/transport.js.map +1 -0
- package/package.json +137 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/gun/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IndexedDB Transport Provider
|
|
3
|
+
*
|
|
4
|
+
* Persistent local storage transport using browser's IndexedDB.
|
|
5
|
+
* Unlike P2P transports, this provider stores document updates locally
|
|
6
|
+
* for persistence across browser sessions.
|
|
7
|
+
*
|
|
8
|
+
* Features:
|
|
9
|
+
* - Automatic persistence of all document updates
|
|
10
|
+
* - Efficient storage and retrieval
|
|
11
|
+
* - Optional compaction to reduce storage size
|
|
12
|
+
* - Works offline (no network required)
|
|
13
|
+
* - Automatic cleanup of old updates
|
|
14
|
+
* - Supports multiple documents/rooms
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* import { GenericProvider } from 'y-generic'
|
|
19
|
+
* import { IndexedDBTransport } from 'y-generic/providers/indexeddb'
|
|
20
|
+
*
|
|
21
|
+
* const doc = new Y.Doc()
|
|
22
|
+
* const transport = new IndexedDBTransport()
|
|
23
|
+
* const provider = new GenericProvider(doc, transport)
|
|
24
|
+
* await provider.connect({ room: 'my-document' })
|
|
25
|
+
*
|
|
26
|
+
* // Updates are automatically persisted to IndexedDB
|
|
27
|
+
* doc.getText('content').insert(0, 'Hello, World!')
|
|
28
|
+
*
|
|
29
|
+
* // On next page load, updates are automatically restored
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* // With automatic compaction every 100 updates
|
|
35
|
+
* const transport = new IndexedDBTransport({
|
|
36
|
+
* compactThreshold: 100,
|
|
37
|
+
* autoCompact: true
|
|
38
|
+
* })
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
import type { Transport, ConnectionConfig } from '../../transport';
|
|
42
|
+
/**
|
|
43
|
+
* Configuration options for IndexedDB transport.
|
|
44
|
+
*/
|
|
45
|
+
export interface IndexedDBTransportOptions {
|
|
46
|
+
/**
|
|
47
|
+
* Database name prefix. The actual database name will be `{prefix}-{room}`.
|
|
48
|
+
* @default 'yjs'
|
|
49
|
+
*/
|
|
50
|
+
prefix?: string;
|
|
51
|
+
/**
|
|
52
|
+
* Database version. Increment to trigger schema upgrade.
|
|
53
|
+
* @default 1
|
|
54
|
+
*/
|
|
55
|
+
version?: number;
|
|
56
|
+
/**
|
|
57
|
+
* Automatically compact storage when update count reaches this threshold.
|
|
58
|
+
* Set to 0 to disable auto-compaction.
|
|
59
|
+
* @default 0 (disabled)
|
|
60
|
+
*/
|
|
61
|
+
compactThreshold?: number;
|
|
62
|
+
/**
|
|
63
|
+
* Enable automatic compaction.
|
|
64
|
+
* @default false
|
|
65
|
+
*/
|
|
66
|
+
autoCompact?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Enable debug logging.
|
|
69
|
+
* @default false
|
|
70
|
+
*/
|
|
71
|
+
debug?: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Maximum number of updates to store before compaction is required.
|
|
74
|
+
* Prevents unbounded growth of the update log.
|
|
75
|
+
* @default 500
|
|
76
|
+
*/
|
|
77
|
+
maxUpdates?: number;
|
|
78
|
+
/**
|
|
79
|
+
* Object store name for storing updates.
|
|
80
|
+
* @default 'updates'
|
|
81
|
+
*/
|
|
82
|
+
storeName?: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* IndexedDB transport implementation.
|
|
86
|
+
* Provides local persistence for Yjs documents using browser IndexedDB.
|
|
87
|
+
*/
|
|
88
|
+
export declare class IndexedDBTransport implements Transport {
|
|
89
|
+
private options;
|
|
90
|
+
private db;
|
|
91
|
+
private dbName;
|
|
92
|
+
private _room;
|
|
93
|
+
private messageCallback?;
|
|
94
|
+
private _isConnected;
|
|
95
|
+
private updateCount;
|
|
96
|
+
private isLoading;
|
|
97
|
+
constructor(options?: IndexedDBTransportOptions);
|
|
98
|
+
/**
|
|
99
|
+
* Log debug messages if debug mode is enabled.
|
|
100
|
+
*/
|
|
101
|
+
private log;
|
|
102
|
+
/**
|
|
103
|
+
* Check if connected to database.
|
|
104
|
+
*/
|
|
105
|
+
get isConnected(): boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Get current room name.
|
|
108
|
+
*/
|
|
109
|
+
get room(): string;
|
|
110
|
+
/**
|
|
111
|
+
* Connect to IndexedDB and load existing updates.
|
|
112
|
+
*/
|
|
113
|
+
connect(config: ConnectionConfig): Promise<void>;
|
|
114
|
+
/**
|
|
115
|
+
* Open the IndexedDB database.
|
|
116
|
+
*/
|
|
117
|
+
private openDatabase;
|
|
118
|
+
/**
|
|
119
|
+
* Disconnect from database.
|
|
120
|
+
*/
|
|
121
|
+
disconnect(): void;
|
|
122
|
+
/**
|
|
123
|
+
* Send (store) an update to IndexedDB.
|
|
124
|
+
*/
|
|
125
|
+
send(data: Uint8Array): void;
|
|
126
|
+
/**
|
|
127
|
+
* Register callback for incoming messages (loaded updates).
|
|
128
|
+
*/
|
|
129
|
+
onMessage(callback: (data: Uint8Array) => void): () => void;
|
|
130
|
+
/**
|
|
131
|
+
* Load all stored updates from database.
|
|
132
|
+
*/
|
|
133
|
+
private loadUpdates;
|
|
134
|
+
/**
|
|
135
|
+
* Check if compaction should be triggered.
|
|
136
|
+
*/
|
|
137
|
+
private shouldCompact;
|
|
138
|
+
/**
|
|
139
|
+
* Compact the database by merging updates.
|
|
140
|
+
* This reduces storage size by consolidating the update history.
|
|
141
|
+
*/
|
|
142
|
+
compact(): Promise<void>;
|
|
143
|
+
/**
|
|
144
|
+
* Clear all stored updates for the current room.
|
|
145
|
+
*/
|
|
146
|
+
clear(): Promise<void>;
|
|
147
|
+
/**
|
|
148
|
+
* Get statistics about stored data.
|
|
149
|
+
*/
|
|
150
|
+
getStats(): Promise<{
|
|
151
|
+
updateCount: number;
|
|
152
|
+
databaseName: string;
|
|
153
|
+
storeName: string;
|
|
154
|
+
}>;
|
|
155
|
+
/**
|
|
156
|
+
* Delete the entire database.
|
|
157
|
+
* Warning: This is irreversible!
|
|
158
|
+
*/
|
|
159
|
+
static deleteDatabase(room: string, prefix?: string): Promise<void>;
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/indexeddb/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAElE;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IAEf;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;GAGG;AACH,qBAAa,kBAAmB,YAAW,SAAS;IAClD,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,EAAE,CAA2B;IACrC,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,eAAe,CAAC,CAA4B;IACpD,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,WAAW,CAAY;IAC/B,OAAO,CAAC,SAAS,CAAiB;gBAEtB,OAAO,GAAE,yBAA8B;IAYnD;;OAEG;IACH,OAAO,CAAC,GAAG;IAMX;;OAEG;IACH,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBtD;;OAEG;IACH,OAAO,CAAC,YAAY;IA0CpB;;OAEG;IACH,UAAU,IAAI,IAAI;IAiBlB;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IA8C5B;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,GAAG,MAAM,IAAI;IAe3D;;OAEG;YACW,WAAW;IA6CzB;;OAEG;IACH,OAAO,CAAC,aAAa;IAYrB;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA0D9B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA6B5B;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC;QACxB,WAAW,EAAE,MAAM,CAAA;QACnB,YAAY,EAAE,MAAM,CAAA;QACpB,SAAS,EAAE,MAAM,CAAA;KAClB,CAAC;IA2BF;;;OAGG;WACU,cAAc,CACzB,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,MAAc,GACrB,OAAO,CAAC,IAAI,CAAC;CAwBjB"}
|
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IndexedDB Transport Provider
|
|
3
|
+
*
|
|
4
|
+
* Persistent local storage transport using browser's IndexedDB.
|
|
5
|
+
* Unlike P2P transports, this provider stores document updates locally
|
|
6
|
+
* for persistence across browser sessions.
|
|
7
|
+
*
|
|
8
|
+
* Features:
|
|
9
|
+
* - Automatic persistence of all document updates
|
|
10
|
+
* - Efficient storage and retrieval
|
|
11
|
+
* - Optional compaction to reduce storage size
|
|
12
|
+
* - Works offline (no network required)
|
|
13
|
+
* - Automatic cleanup of old updates
|
|
14
|
+
* - Supports multiple documents/rooms
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* import { GenericProvider } from 'y-generic'
|
|
19
|
+
* import { IndexedDBTransport } from 'y-generic/providers/indexeddb'
|
|
20
|
+
*
|
|
21
|
+
* const doc = new Y.Doc()
|
|
22
|
+
* const transport = new IndexedDBTransport()
|
|
23
|
+
* const provider = new GenericProvider(doc, transport)
|
|
24
|
+
* await provider.connect({ room: 'my-document' })
|
|
25
|
+
*
|
|
26
|
+
* // Updates are automatically persisted to IndexedDB
|
|
27
|
+
* doc.getText('content').insert(0, 'Hello, World!')
|
|
28
|
+
*
|
|
29
|
+
* // On next page load, updates are automatically restored
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* // With automatic compaction every 100 updates
|
|
35
|
+
* const transport = new IndexedDBTransport({
|
|
36
|
+
* compactThreshold: 100,
|
|
37
|
+
* autoCompact: true
|
|
38
|
+
* })
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
/**
|
|
42
|
+
* IndexedDB transport implementation.
|
|
43
|
+
* Provides local persistence for Yjs documents using browser IndexedDB.
|
|
44
|
+
*/
|
|
45
|
+
export class IndexedDBTransport {
|
|
46
|
+
constructor(options = {}) {
|
|
47
|
+
this.db = null;
|
|
48
|
+
this.dbName = '';
|
|
49
|
+
this._room = '';
|
|
50
|
+
this._isConnected = false;
|
|
51
|
+
this.updateCount = 0;
|
|
52
|
+
this.isLoading = false;
|
|
53
|
+
this.options = {
|
|
54
|
+
prefix: options.prefix ?? 'yjs',
|
|
55
|
+
version: options.version ?? 1,
|
|
56
|
+
compactThreshold: options.compactThreshold ?? 0,
|
|
57
|
+
autoCompact: options.autoCompact ?? false,
|
|
58
|
+
debug: options.debug ?? false,
|
|
59
|
+
maxUpdates: options.maxUpdates ?? 500,
|
|
60
|
+
storeName: options.storeName ?? 'updates',
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Log debug messages if debug mode is enabled.
|
|
65
|
+
*/
|
|
66
|
+
log(...args) {
|
|
67
|
+
if (this.options.debug) {
|
|
68
|
+
console.log('[IndexedDBTransport]', ...args);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Check if connected to database.
|
|
73
|
+
*/
|
|
74
|
+
get isConnected() {
|
|
75
|
+
return this._isConnected;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Get current room name.
|
|
79
|
+
*/
|
|
80
|
+
get room() {
|
|
81
|
+
return this._room;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Connect to IndexedDB and load existing updates.
|
|
85
|
+
*/
|
|
86
|
+
async connect(config) {
|
|
87
|
+
if (this._isConnected) {
|
|
88
|
+
throw new Error('Already connected to IndexedDB');
|
|
89
|
+
}
|
|
90
|
+
this._room = config.room;
|
|
91
|
+
this.dbName = `${this.options.prefix}-${config.room}`;
|
|
92
|
+
this.log('Connecting to database:', this.dbName);
|
|
93
|
+
await this.openDatabase();
|
|
94
|
+
// Load existing updates if callback is registered
|
|
95
|
+
if (this.messageCallback) {
|
|
96
|
+
await this.loadUpdates();
|
|
97
|
+
}
|
|
98
|
+
this._isConnected = true;
|
|
99
|
+
this.log('Connected successfully');
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Open the IndexedDB database.
|
|
103
|
+
*/
|
|
104
|
+
openDatabase() {
|
|
105
|
+
return new Promise((resolve, reject) => {
|
|
106
|
+
const request = indexedDB.open(this.dbName, this.options.version);
|
|
107
|
+
request.onerror = () => {
|
|
108
|
+
const error = new Error(`Failed to open IndexedDB: ${request.error?.message}`);
|
|
109
|
+
this.log('Error opening database:', error);
|
|
110
|
+
reject(error);
|
|
111
|
+
};
|
|
112
|
+
request.onsuccess = () => {
|
|
113
|
+
this.db = request.result;
|
|
114
|
+
this.log('Database opened successfully');
|
|
115
|
+
resolve();
|
|
116
|
+
};
|
|
117
|
+
request.onupgradeneeded = (event) => {
|
|
118
|
+
const db = event.target.result;
|
|
119
|
+
this.log('Upgrading database schema...');
|
|
120
|
+
// Create updates object store
|
|
121
|
+
if (!db.objectStoreNames.contains(this.options.storeName)) {
|
|
122
|
+
const store = db.createObjectStore(this.options.storeName, {
|
|
123
|
+
autoIncrement: true,
|
|
124
|
+
});
|
|
125
|
+
// Create index for timestamps (useful for cleanup)
|
|
126
|
+
store.createIndex('timestamp', 'timestamp', { unique: false });
|
|
127
|
+
this.log('Created object store:', this.options.storeName);
|
|
128
|
+
}
|
|
129
|
+
// Create metadata store for compaction info
|
|
130
|
+
if (!db.objectStoreNames.contains('metadata')) {
|
|
131
|
+
db.createObjectStore('metadata');
|
|
132
|
+
this.log('Created metadata store');
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Disconnect from database.
|
|
139
|
+
*/
|
|
140
|
+
disconnect() {
|
|
141
|
+
if (!this._isConnected)
|
|
142
|
+
return;
|
|
143
|
+
this.log('Disconnecting...');
|
|
144
|
+
if (this.db) {
|
|
145
|
+
this.db.close();
|
|
146
|
+
this.db = null;
|
|
147
|
+
}
|
|
148
|
+
this._isConnected = false;
|
|
149
|
+
this.messageCallback = undefined;
|
|
150
|
+
this.updateCount = 0;
|
|
151
|
+
this.log('Disconnected');
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Send (store) an update to IndexedDB.
|
|
155
|
+
*/
|
|
156
|
+
send(data) {
|
|
157
|
+
if (!this.db) {
|
|
158
|
+
this.log('Cannot send: database not connected');
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
// Don't store updates while loading
|
|
162
|
+
if (this.isLoading) {
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
try {
|
|
166
|
+
const transaction = this.db.transaction([this.options.storeName], 'readwrite');
|
|
167
|
+
const store = transaction.objectStore(this.options.storeName);
|
|
168
|
+
// Store update with timestamp
|
|
169
|
+
const record = {
|
|
170
|
+
update: data,
|
|
171
|
+
timestamp: Date.now(),
|
|
172
|
+
};
|
|
173
|
+
const request = store.add(record);
|
|
174
|
+
request.onsuccess = () => {
|
|
175
|
+
this.updateCount++;
|
|
176
|
+
this.log('Stored update, count:', this.updateCount);
|
|
177
|
+
// Check if we need to compact
|
|
178
|
+
if (this.shouldCompact()) {
|
|
179
|
+
this.compact().catch((err) => {
|
|
180
|
+
this.log('Compaction failed:', err);
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
request.onerror = () => {
|
|
185
|
+
this.log('Failed to store update:', request.error);
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
catch (error) {
|
|
189
|
+
this.log('Error storing update:', error);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Register callback for incoming messages (loaded updates).
|
|
194
|
+
*/
|
|
195
|
+
onMessage(callback) {
|
|
196
|
+
this.messageCallback = callback;
|
|
197
|
+
// If already connected, load updates immediately
|
|
198
|
+
if (this._isConnected && !this.isLoading) {
|
|
199
|
+
this.loadUpdates().catch((err) => {
|
|
200
|
+
this.log('Failed to load updates:', err);
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
return () => {
|
|
204
|
+
this.messageCallback = undefined;
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Load all stored updates from database.
|
|
209
|
+
*/
|
|
210
|
+
async loadUpdates() {
|
|
211
|
+
if (!this.db || !this.messageCallback) {
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
this.isLoading = true;
|
|
215
|
+
this.log('Loading updates from database...');
|
|
216
|
+
return new Promise((resolve, reject) => {
|
|
217
|
+
const transaction = this.db.transaction([this.options.storeName], 'readonly');
|
|
218
|
+
const store = transaction.objectStore(this.options.storeName);
|
|
219
|
+
const request = store.getAll();
|
|
220
|
+
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();
|
|
230
|
+
};
|
|
231
|
+
request.onerror = () => {
|
|
232
|
+
this.isLoading = false;
|
|
233
|
+
const error = new Error(`Failed to load updates: ${request.error?.message}`);
|
|
234
|
+
this.log('Error loading updates:', error);
|
|
235
|
+
reject(error);
|
|
236
|
+
};
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Check if compaction should be triggered.
|
|
241
|
+
*/
|
|
242
|
+
shouldCompact() {
|
|
243
|
+
if (!this.options.autoCompact) {
|
|
244
|
+
return false;
|
|
245
|
+
}
|
|
246
|
+
if (this.options.compactThreshold > 0) {
|
|
247
|
+
return this.updateCount >= this.options.compactThreshold;
|
|
248
|
+
}
|
|
249
|
+
return this.updateCount >= this.options.maxUpdates;
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Compact the database by merging updates.
|
|
253
|
+
* This reduces storage size by consolidating the update history.
|
|
254
|
+
*/
|
|
255
|
+
async compact() {
|
|
256
|
+
if (!this.db) {
|
|
257
|
+
throw new Error('Database not connected');
|
|
258
|
+
}
|
|
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
|
+
});
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Clear all stored updates for the current room.
|
|
301
|
+
*/
|
|
302
|
+
async clear() {
|
|
303
|
+
if (!this.db) {
|
|
304
|
+
throw new Error('Database not connected');
|
|
305
|
+
}
|
|
306
|
+
this.log('Clearing all updates...');
|
|
307
|
+
return new Promise((resolve, reject) => {
|
|
308
|
+
const transaction = this.db.transaction([this.options.storeName], 'readwrite');
|
|
309
|
+
const store = transaction.objectStore(this.options.storeName);
|
|
310
|
+
const request = store.clear();
|
|
311
|
+
request.onsuccess = () => {
|
|
312
|
+
this.updateCount = 0;
|
|
313
|
+
this.log('All updates cleared');
|
|
314
|
+
resolve();
|
|
315
|
+
};
|
|
316
|
+
request.onerror = () => {
|
|
317
|
+
const error = new Error('Failed to clear updates');
|
|
318
|
+
this.log('Clear error:', error);
|
|
319
|
+
reject(error);
|
|
320
|
+
};
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Get statistics about stored data.
|
|
325
|
+
*/
|
|
326
|
+
async getStats() {
|
|
327
|
+
if (!this.db) {
|
|
328
|
+
throw new Error('Database not connected');
|
|
329
|
+
}
|
|
330
|
+
return new Promise((resolve, reject) => {
|
|
331
|
+
const transaction = this.db.transaction([this.options.storeName], 'readonly');
|
|
332
|
+
const store = transaction.objectStore(this.options.storeName);
|
|
333
|
+
const request = store.count();
|
|
334
|
+
request.onsuccess = () => {
|
|
335
|
+
resolve({
|
|
336
|
+
updateCount: request.result,
|
|
337
|
+
databaseName: this.dbName,
|
|
338
|
+
storeName: this.options.storeName,
|
|
339
|
+
});
|
|
340
|
+
};
|
|
341
|
+
request.onerror = () => {
|
|
342
|
+
reject(new Error('Failed to get stats'));
|
|
343
|
+
};
|
|
344
|
+
});
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Delete the entire database.
|
|
348
|
+
* Warning: This is irreversible!
|
|
349
|
+
*/
|
|
350
|
+
static async deleteDatabase(room, prefix = 'yjs') {
|
|
351
|
+
const dbName = `${prefix}-${room}`;
|
|
352
|
+
return new Promise((resolve, reject) => {
|
|
353
|
+
const request = indexedDB.deleteDatabase(dbName);
|
|
354
|
+
request.onsuccess = () => {
|
|
355
|
+
console.log('[IndexedDBTransport] Deleted database:', dbName);
|
|
356
|
+
resolve();
|
|
357
|
+
};
|
|
358
|
+
request.onerror = () => {
|
|
359
|
+
const error = new Error(`Failed to delete database: ${dbName}`);
|
|
360
|
+
console.error('[IndexedDBTransport]', error);
|
|
361
|
+
reject(error);
|
|
362
|
+
};
|
|
363
|
+
request.onblocked = () => {
|
|
364
|
+
console.warn('[IndexedDBTransport] Database deletion blocked. Close all connections first.');
|
|
365
|
+
};
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/indexeddb/index.ts"],"names":[],"mappings":"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"}
|