@prabhask5/stellar-engine 1.1.18 → 1.2.0
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 +55 -1
- package/dist/bin/install-pwa.js +50 -0
- package/dist/bin/install-pwa.js.map +1 -1
- package/dist/config.d.ts +11 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +8 -2
- package/dist/config.js.map +1 -1
- package/dist/crdt/awareness.d.ts +128 -0
- package/dist/crdt/awareness.d.ts.map +1 -0
- package/dist/crdt/awareness.js +284 -0
- package/dist/crdt/awareness.js.map +1 -0
- package/dist/crdt/channel.d.ts +165 -0
- package/dist/crdt/channel.d.ts.map +1 -0
- package/dist/crdt/channel.js +522 -0
- package/dist/crdt/channel.js.map +1 -0
- package/dist/crdt/config.d.ts +58 -0
- package/dist/crdt/config.d.ts.map +1 -0
- package/dist/crdt/config.js +123 -0
- package/dist/crdt/config.js.map +1 -0
- package/dist/crdt/helpers.d.ts +104 -0
- package/dist/crdt/helpers.d.ts.map +1 -0
- package/dist/crdt/helpers.js +116 -0
- package/dist/crdt/helpers.js.map +1 -0
- package/dist/crdt/offline.d.ts +58 -0
- package/dist/crdt/offline.d.ts.map +1 -0
- package/dist/crdt/offline.js +130 -0
- package/dist/crdt/offline.js.map +1 -0
- package/dist/crdt/persistence.d.ts +65 -0
- package/dist/crdt/persistence.d.ts.map +1 -0
- package/dist/crdt/persistence.js +171 -0
- package/dist/crdt/persistence.js.map +1 -0
- package/dist/crdt/provider.d.ts +109 -0
- package/dist/crdt/provider.d.ts.map +1 -0
- package/dist/crdt/provider.js +543 -0
- package/dist/crdt/provider.js.map +1 -0
- package/dist/crdt/store.d.ts +111 -0
- package/dist/crdt/store.d.ts.map +1 -0
- package/dist/crdt/store.js +158 -0
- package/dist/crdt/store.js.map +1 -0
- package/dist/crdt/types.d.ts +281 -0
- package/dist/crdt/types.d.ts.map +1 -0
- package/dist/crdt/types.js +26 -0
- package/dist/crdt/types.js.map +1 -0
- package/dist/database.d.ts +1 -1
- package/dist/database.d.ts.map +1 -1
- package/dist/database.js +28 -7
- package/dist/database.js.map +1 -1
- package/dist/diagnostics.d.ts +75 -0
- package/dist/diagnostics.d.ts.map +1 -1
- package/dist/diagnostics.js +114 -2
- package/dist/diagnostics.js.map +1 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +21 -1
- package/dist/engine.js.map +1 -1
- package/dist/entries/crdt.d.ts +32 -0
- package/dist/entries/crdt.d.ts.map +1 -0
- package/dist/entries/crdt.js +52 -0
- package/dist/entries/crdt.js.map +1 -0
- package/dist/entries/types.d.ts +1 -0
- package/dist/entries/types.d.ts.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/package.json +7 -2
- package/dist/operations.d.ts +0 -73
- package/dist/operations.d.ts.map +0 -1
- package/dist/operations.js +0 -227
- package/dist/operations.js.map +0 -1
- package/dist/reconnectHandler.d.ts +0 -16
- package/dist/reconnectHandler.d.ts.map +0 -1
- package/dist/reconnectHandler.js +0 -21
- package/dist/reconnectHandler.js.map +0 -1
package/dist/diagnostics.d.ts
CHANGED
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
import type { ConflictHistoryEntry, SyncStatus } from './types';
|
|
27
27
|
import type { RealtimeConnectionState } from './realtime';
|
|
28
28
|
import type { SyncError } from './stores/sync';
|
|
29
|
+
import type { CRDTConnectionState } from './crdt/types';
|
|
29
30
|
/**
|
|
30
31
|
* Comprehensive diagnostics snapshot returned by {@link getDiagnostics}.
|
|
31
32
|
*
|
|
@@ -120,6 +121,68 @@ export interface DiagnosticsSnapshot {
|
|
|
120
121
|
lastErrorDetails: string | null;
|
|
121
122
|
recentErrors: SyncError[];
|
|
122
123
|
};
|
|
124
|
+
/** CRDT collaborative editing subsystem diagnostics */
|
|
125
|
+
crdt: {
|
|
126
|
+
/** Whether the CRDT subsystem is enabled (crdt config provided to initEngine). */
|
|
127
|
+
enabled: boolean;
|
|
128
|
+
/** Resolved CRDT configuration (null if not enabled). */
|
|
129
|
+
config: {
|
|
130
|
+
supabaseTable: string;
|
|
131
|
+
persistIntervalMs: number;
|
|
132
|
+
broadcastDebounceMs: number;
|
|
133
|
+
localSaveDebounceMs: number;
|
|
134
|
+
cursorDebounceMs: number;
|
|
135
|
+
maxOfflineDocuments: number;
|
|
136
|
+
maxBroadcastPayloadBytes: number;
|
|
137
|
+
syncPeerTimeoutMs: number;
|
|
138
|
+
maxReconnectAttempts: number;
|
|
139
|
+
reconnectBaseDelayMs: number;
|
|
140
|
+
} | null;
|
|
141
|
+
/** Currently active (open) CRDT documents. */
|
|
142
|
+
activeDocuments: Array<{
|
|
143
|
+
documentId: string;
|
|
144
|
+
pageId: string;
|
|
145
|
+
connectionState: CRDTConnectionState;
|
|
146
|
+
isDirty: boolean;
|
|
147
|
+
/** Current Y.Doc state size in bytes. */
|
|
148
|
+
stateSizeBytes: number;
|
|
149
|
+
stateSizeFormatted: string;
|
|
150
|
+
/** Number of remote collaborators currently connected. */
|
|
151
|
+
collaboratorCount: number;
|
|
152
|
+
/** Names of connected collaborators. */
|
|
153
|
+
collaboratorNames: string[];
|
|
154
|
+
}>;
|
|
155
|
+
/** Total number of active documents. */
|
|
156
|
+
activeDocumentCount: number;
|
|
157
|
+
/** Offline storage statistics. */
|
|
158
|
+
offline: {
|
|
159
|
+
/** Number of documents stored for offline access. */
|
|
160
|
+
documentCount: number;
|
|
161
|
+
/** Max offline documents allowed. */
|
|
162
|
+
maxDocuments: number;
|
|
163
|
+
/** Total bytes stored across all offline documents. */
|
|
164
|
+
totalSizeBytes: number;
|
|
165
|
+
totalSizeFormatted: string;
|
|
166
|
+
/** Per-document offline storage details. */
|
|
167
|
+
documents: Array<{
|
|
168
|
+
documentId: string;
|
|
169
|
+
pageId: string;
|
|
170
|
+
stateSizeBytes: number;
|
|
171
|
+
stateSizeFormatted: string;
|
|
172
|
+
localUpdatedAt: string;
|
|
173
|
+
lastPersistedAt: string | null;
|
|
174
|
+
/** Whether this document has been persisted to Supabase since last local edit. */
|
|
175
|
+
syncedWithRemote: boolean;
|
|
176
|
+
}>;
|
|
177
|
+
};
|
|
178
|
+
/** Pending crash-recovery updates per active document. */
|
|
179
|
+
pendingUpdates: Array<{
|
|
180
|
+
documentId: string;
|
|
181
|
+
updateCount: number;
|
|
182
|
+
}>;
|
|
183
|
+
/** Total pending updates across all documents. */
|
|
184
|
+
totalPendingUpdates: number;
|
|
185
|
+
};
|
|
123
186
|
/** Engine configuration summary */
|
|
124
187
|
config: {
|
|
125
188
|
tableCount: number;
|
|
@@ -145,6 +208,18 @@ export interface DiagnosticsSnapshot {
|
|
|
145
208
|
* ```
|
|
146
209
|
*/
|
|
147
210
|
export declare function getDiagnostics(): Promise<DiagnosticsSnapshot>;
|
|
211
|
+
/**
|
|
212
|
+
* Get CRDT subsystem diagnostics (async — reads IndexedDB for offline and pending data).
|
|
213
|
+
*
|
|
214
|
+
* Returns a comprehensive snapshot of the CRDT subsystem including active documents,
|
|
215
|
+
* their state sizes, connection states, collaborator counts, offline storage usage,
|
|
216
|
+
* and pending crash-recovery updates.
|
|
217
|
+
*
|
|
218
|
+
* If CRDT is not enabled, returns a minimal object with `enabled: false`.
|
|
219
|
+
*
|
|
220
|
+
* @returns CRDT diagnostics section of the {@link DiagnosticsSnapshot}.
|
|
221
|
+
*/
|
|
222
|
+
export declare function getCRDTDiagnostics(): Promise<DiagnosticsSnapshot['crdt']>;
|
|
148
223
|
/**
|
|
149
224
|
* Get sync cycle and egress diagnostics (synchronous).
|
|
150
225
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"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"}
|
package/dist/diagnostics.js
CHANGED
|
@@ -33,6 +33,11 @@ import { syncStatusStore } from './stores/sync';
|
|
|
33
33
|
import { isOnline } from './stores/network';
|
|
34
34
|
import { formatBytes } from './utils';
|
|
35
35
|
import { get } from 'svelte/store';
|
|
36
|
+
import { isCRDTEnabled, getCRDTConfig } from './crdt/config';
|
|
37
|
+
import { getActiveProviderEntries } from './crdt/provider';
|
|
38
|
+
import { getOfflineDocuments, loadPendingUpdates } from './crdt/store';
|
|
39
|
+
import { getCollaborators } from './crdt/awareness';
|
|
40
|
+
import { encodeStateAsUpdate } from 'yjs';
|
|
36
41
|
// =============================================================================
|
|
37
42
|
// Main Diagnostics Function
|
|
38
43
|
// =============================================================================
|
|
@@ -57,9 +62,10 @@ export async function getDiagnostics() {
|
|
|
57
62
|
const realtimeState = _getRealtimeDiagnostics();
|
|
58
63
|
const syncState = get(syncStatusStore);
|
|
59
64
|
// Run async operations in parallel
|
|
60
|
-
const [queueData, conflictData] = await Promise.all([
|
|
65
|
+
const [queueData, conflictData, crdtData] = await Promise.all([
|
|
61
66
|
getQueueDiagnostics(),
|
|
62
|
-
getConflictDiagnostics()
|
|
67
|
+
getConflictDiagnostics(),
|
|
68
|
+
getCRDTDiagnostics()
|
|
63
69
|
]);
|
|
64
70
|
// Build egress section with formatted values
|
|
65
71
|
const egressByTable = {};
|
|
@@ -115,6 +121,7 @@ export async function getDiagnostics() {
|
|
|
115
121
|
authValidatedAfterReconnect: engineState.authValidatedAfterReconnect
|
|
116
122
|
},
|
|
117
123
|
conflicts: conflictData,
|
|
124
|
+
crdt: crdtData,
|
|
118
125
|
errors: getErrorDiagnostics(),
|
|
119
126
|
config: {
|
|
120
127
|
tableCount: config.tables.length,
|
|
@@ -126,6 +133,111 @@ export async function getDiagnostics() {
|
|
|
126
133
|
};
|
|
127
134
|
}
|
|
128
135
|
// =============================================================================
|
|
136
|
+
// CRDT Diagnostics
|
|
137
|
+
// =============================================================================
|
|
138
|
+
/**
|
|
139
|
+
* Get CRDT subsystem diagnostics (async — reads IndexedDB for offline and pending data).
|
|
140
|
+
*
|
|
141
|
+
* Returns a comprehensive snapshot of the CRDT subsystem including active documents,
|
|
142
|
+
* their state sizes, connection states, collaborator counts, offline storage usage,
|
|
143
|
+
* and pending crash-recovery updates.
|
|
144
|
+
*
|
|
145
|
+
* If CRDT is not enabled, returns a minimal object with `enabled: false`.
|
|
146
|
+
*
|
|
147
|
+
* @returns CRDT diagnostics section of the {@link DiagnosticsSnapshot}.
|
|
148
|
+
*/
|
|
149
|
+
export async function getCRDTDiagnostics() {
|
|
150
|
+
if (!isCRDTEnabled()) {
|
|
151
|
+
return {
|
|
152
|
+
enabled: false,
|
|
153
|
+
config: null,
|
|
154
|
+
activeDocuments: [],
|
|
155
|
+
activeDocumentCount: 0,
|
|
156
|
+
offline: {
|
|
157
|
+
documentCount: 0,
|
|
158
|
+
maxDocuments: 0,
|
|
159
|
+
totalSizeBytes: 0,
|
|
160
|
+
totalSizeFormatted: '0 B',
|
|
161
|
+
documents: []
|
|
162
|
+
},
|
|
163
|
+
pendingUpdates: [],
|
|
164
|
+
totalPendingUpdates: 0
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
const config = getCRDTConfig();
|
|
168
|
+
/* Gather active document diagnostics. */
|
|
169
|
+
const activeDocuments = [];
|
|
170
|
+
const entries = getActiveProviderEntries();
|
|
171
|
+
/* Collect documentIds for pending update queries. */
|
|
172
|
+
const activeDocumentIds = [];
|
|
173
|
+
for (const [documentId, provider] of entries) {
|
|
174
|
+
activeDocumentIds.push(documentId);
|
|
175
|
+
/* Get Y.Doc state size (encode to measure byte length). */
|
|
176
|
+
const state = encodeStateAsUpdate(provider.doc);
|
|
177
|
+
const stateSizeBytes = state.byteLength;
|
|
178
|
+
/* Get collaborators for this document. */
|
|
179
|
+
const collaborators = getCollaborators(documentId);
|
|
180
|
+
activeDocuments.push({
|
|
181
|
+
documentId: provider.documentId,
|
|
182
|
+
pageId: provider.pageId,
|
|
183
|
+
connectionState: provider.connectionState,
|
|
184
|
+
isDirty: provider.isDirty,
|
|
185
|
+
stateSizeBytes,
|
|
186
|
+
stateSizeFormatted: formatBytes(stateSizeBytes),
|
|
187
|
+
collaboratorCount: collaborators.length,
|
|
188
|
+
collaboratorNames: collaborators.map((c) => c.name)
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
/* Gather pending updates for each active document. */
|
|
192
|
+
const pendingUpdatesResults = await Promise.all(activeDocumentIds.map(async (documentId) => {
|
|
193
|
+
const updates = await loadPendingUpdates(documentId);
|
|
194
|
+
return { documentId, updateCount: updates.length };
|
|
195
|
+
}));
|
|
196
|
+
const pendingUpdates = pendingUpdatesResults.filter((p) => p.updateCount > 0);
|
|
197
|
+
const totalPendingUpdates = pendingUpdates.reduce((sum, p) => sum + p.updateCount, 0);
|
|
198
|
+
/* Gather offline document diagnostics. */
|
|
199
|
+
const offlineDocs = await getOfflineDocuments();
|
|
200
|
+
let offlineTotalSize = 0;
|
|
201
|
+
const offlineDocDetails = offlineDocs.map((doc) => {
|
|
202
|
+
offlineTotalSize += doc.stateSize;
|
|
203
|
+
return {
|
|
204
|
+
documentId: doc.documentId,
|
|
205
|
+
pageId: doc.pageId,
|
|
206
|
+
stateSizeBytes: doc.stateSize,
|
|
207
|
+
stateSizeFormatted: formatBytes(doc.stateSize),
|
|
208
|
+
localUpdatedAt: doc.localUpdatedAt,
|
|
209
|
+
lastPersistedAt: doc.lastPersistedAt,
|
|
210
|
+
syncedWithRemote: doc.lastPersistedAt !== null && doc.lastPersistedAt >= doc.localUpdatedAt
|
|
211
|
+
};
|
|
212
|
+
});
|
|
213
|
+
return {
|
|
214
|
+
enabled: true,
|
|
215
|
+
config: {
|
|
216
|
+
supabaseTable: config.supabaseTable,
|
|
217
|
+
persistIntervalMs: config.persistIntervalMs,
|
|
218
|
+
broadcastDebounceMs: config.broadcastDebounceMs,
|
|
219
|
+
localSaveDebounceMs: config.localSaveDebounceMs,
|
|
220
|
+
cursorDebounceMs: config.cursorDebounceMs,
|
|
221
|
+
maxOfflineDocuments: config.maxOfflineDocuments,
|
|
222
|
+
maxBroadcastPayloadBytes: config.maxBroadcastPayloadBytes,
|
|
223
|
+
syncPeerTimeoutMs: config.syncPeerTimeoutMs,
|
|
224
|
+
maxReconnectAttempts: config.maxReconnectAttempts,
|
|
225
|
+
reconnectBaseDelayMs: config.reconnectBaseDelayMs
|
|
226
|
+
},
|
|
227
|
+
activeDocuments,
|
|
228
|
+
activeDocumentCount: activeDocuments.length,
|
|
229
|
+
offline: {
|
|
230
|
+
documentCount: offlineDocs.length,
|
|
231
|
+
maxDocuments: config.maxOfflineDocuments,
|
|
232
|
+
totalSizeBytes: offlineTotalSize,
|
|
233
|
+
totalSizeFormatted: formatBytes(offlineTotalSize),
|
|
234
|
+
documents: offlineDocDetails
|
|
235
|
+
},
|
|
236
|
+
pendingUpdates,
|
|
237
|
+
totalPendingUpdates
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
// =============================================================================
|
|
129
241
|
// Sub-Category Diagnostics Functions
|
|
130
242
|
// =============================================================================
|
|
131
243
|
/**
|
package/dist/diagnostics.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"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"}
|
package/dist/engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AAgLH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,CAW7D;AAuCD,uDAAuD;AACvD,UAAU,cAAc;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAgLD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAEzD;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB;;;;;;uBAxLF,MAAM;yBAAW,MAAM;;;oBAF5C,MAAM;sBACJ,MAAM;sBAEN,MAAM;;;;;;;;;;;;EAuMrB;AAgLD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAO/D;AAuCD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAcvC;AAm8BD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,WAAW,CAC/B,KAAK,GAAE,OAAe,EACtB,QAAQ,GAAE,OAAe,GACxB,OAAO,CAAC,IAAI,CAAC,CA2Mf;AAolBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAwYrD;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA+DpD;AAED;;;;;;;;;GASG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AAgLH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,CAW7D;AAuCD,uDAAuD;AACvD,UAAU,cAAc;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAgLD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAEzD;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB;;;;;;uBAxLF,MAAM;yBAAW,MAAM;;;oBAF5C,MAAM;sBACJ,MAAM;sBAEN,MAAM;;;;;;;;;;;;EAuMrB;AAgLD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAO/D;AAuCD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAcvC;AAm8BD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,WAAW,CAC/B,KAAK,GAAE,OAAe,EACtB,QAAQ,GAAE,OAAe,GACxB,OAAO,CAAC,IAAI,CAAC,CA2Mf;AAolBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAwYrD;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA+DpD;AAED;;;;;;;;;GASG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAkDrD"}
|
package/dist/engine.js
CHANGED
|
@@ -2596,14 +2596,34 @@ export async function clearLocalCache() {
|
|
|
2596
2596
|
const db = config.db;
|
|
2597
2597
|
// Get user ID before clearing to remove their sync cursor
|
|
2598
2598
|
const userId = await getCurrentUserId();
|
|
2599
|
+
/*
|
|
2600
|
+
* Close all active CRDT documents before clearing the cache.
|
|
2601
|
+
* This ensures documents are properly saved and channels are cleaned up.
|
|
2602
|
+
* Uses a dynamic import to avoid circular dependency (engine ↔ crdt).
|
|
2603
|
+
*/
|
|
2604
|
+
if (config.crdt) {
|
|
2605
|
+
try {
|
|
2606
|
+
const { closeAllDocuments } = await import('./crdt/provider');
|
|
2607
|
+
await closeAllDocuments();
|
|
2608
|
+
}
|
|
2609
|
+
catch {
|
|
2610
|
+
/* CRDT module may not be available — non-critical. */
|
|
2611
|
+
}
|
|
2612
|
+
}
|
|
2599
2613
|
const entityTables = config.tables.map((t) => db.table(getDexieTableFor(t)));
|
|
2600
2614
|
const metaTables = [db.table('syncQueue'), db.table('conflictHistory')];
|
|
2601
|
-
|
|
2615
|
+
/* Include CRDT tables if the subsystem is enabled. */
|
|
2616
|
+
const crdtTables = config.crdt ? [db.table('crdtDocuments'), db.table('crdtPendingUpdates')] : [];
|
|
2617
|
+
await db.transaction('rw', [...entityTables, ...metaTables, ...crdtTables], async () => {
|
|
2602
2618
|
for (const t of entityTables) {
|
|
2603
2619
|
await t.clear();
|
|
2604
2620
|
}
|
|
2605
2621
|
await db.table('syncQueue').clear();
|
|
2606
2622
|
await db.table('conflictHistory').clear();
|
|
2623
|
+
/* Clear CRDT tables if enabled. */
|
|
2624
|
+
for (const t of crdtTables) {
|
|
2625
|
+
await t.clear();
|
|
2626
|
+
}
|
|
2607
2627
|
});
|
|
2608
2628
|
// Reset sync cursor (user-specific) and hydration flag
|
|
2609
2629
|
if (typeof localStorage !== 'undefined') {
|