@peers-app/peers-device 0.8.23 → 0.9.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/dist/connection-manager/connection-manager.d.ts +18 -2
- package/dist/connection-manager/connection-manager.js +130 -17
- package/dist/connection-manager/connection-manager.js.map +1 -1
- package/dist/local.data-source.d.ts +3 -1
- package/dist/local.data-source.js +2 -1
- package/dist/local.data-source.js.map +1 -1
- package/dist/sync-group.d.ts +15 -0
- package/dist/sync-group.js +112 -29
- package/dist/sync-group.js.map +1 -1
- package/dist/tracked-data-source.d.ts +9 -0
- package/dist/tracked-data-source.js +88 -11
- package/dist/tracked-data-source.js.map +1 -1
- package/dist/tracked-data-source.test.js +25 -14
- package/dist/tracked-data-source.test.js.map +1 -1
- package/package.json +3 -3
|
@@ -23,8 +23,6 @@ export { TTL0 } from "./device-messages";
|
|
|
23
23
|
export declare class ConnectionManager {
|
|
24
24
|
readonly userContext: UserContext;
|
|
25
25
|
readonly changeTrackingTableFactory: (groupId?: string) => ChangeTrackingTable;
|
|
26
|
-
private readonly localDevice;
|
|
27
|
-
private readonly getGroupSecretKey;
|
|
28
26
|
MAX_CONNECTIONS: number;
|
|
29
27
|
get MAX_CONNECTIONS_TO_FORWARD_MESSAGES_TO(): number;
|
|
30
28
|
set MAX_CONNECTIONS_TO_FORWARD_MESSAGES_TO(value: number);
|
|
@@ -54,9 +52,27 @@ export declare class ConnectionManager {
|
|
|
54
52
|
[deviceId: string]: Connection;
|
|
55
53
|
};
|
|
56
54
|
private setupGroupsSubscriptions;
|
|
55
|
+
/**
|
|
56
|
+
* Called when a new group is added or re-enabled.
|
|
57
|
+
* Sets up the group member subscription and checks all existing connections
|
|
58
|
+
* for membership in the new group, confirming with the remote side first.
|
|
59
|
+
*/
|
|
60
|
+
private setupGroup;
|
|
61
|
+
/**
|
|
62
|
+
* Called when a group is deleted or disabled.
|
|
63
|
+
* Cleans up the group member subscription, per-group connection state
|
|
64
|
+
* on all existing connections, and disposes the SyncGroup.
|
|
65
|
+
*/
|
|
66
|
+
private teardownGroup;
|
|
57
67
|
private setupGroupMembersSubscription;
|
|
58
68
|
private setConnectionMembership;
|
|
59
69
|
private getConnectionState;
|
|
70
|
+
/**
|
|
71
|
+
* Ask the remote device to confirm which groups it also recognizes as shared.
|
|
72
|
+
* Returns the subset of groupIds confirmed by the remote side.
|
|
73
|
+
* Retries once after a short delay if the first attempt fails (e.g., remote handler not ready yet).
|
|
74
|
+
*/
|
|
75
|
+
private confirmSharedGroupsWithRemote;
|
|
60
76
|
addConnection(connection: Connection): Promise<void>;
|
|
61
77
|
removeConnection(connection: Connection): Promise<void>;
|
|
62
78
|
getPeerGroupDevice(dataContext: DataContext): SyncGroup;
|
|
@@ -13,8 +13,6 @@ Object.defineProperty(exports, "TTL0", { enumerable: true, get: function () { re
|
|
|
13
13
|
class ConnectionManager {
|
|
14
14
|
userContext;
|
|
15
15
|
changeTrackingTableFactory;
|
|
16
|
-
localDevice;
|
|
17
|
-
getGroupSecretKey;
|
|
18
16
|
// TODO set this based on device type (desktops and servers should be able to handle much more than the default of 30)
|
|
19
17
|
MAX_CONNECTIONS = peers_sdk_1.PeerDeviceConsts.MAX_CONNECTIONS;
|
|
20
18
|
get MAX_CONNECTIONS_TO_FORWARD_MESSAGES_TO() {
|
|
@@ -38,8 +36,6 @@ class ConnectionManager {
|
|
|
38
36
|
constructor(userContext, changeTrackingTableFactory, localDevice, getGroupSecretKey) {
|
|
39
37
|
this.userContext = userContext;
|
|
40
38
|
this.changeTrackingTableFactory = changeTrackingTableFactory;
|
|
41
|
-
this.localDevice = localDevice;
|
|
42
|
-
this.getGroupSecretKey = getGroupSecretKey;
|
|
43
39
|
this.chunkDownloadManager = new chunk_download_manager_1.ChunkDownloadManager(this);
|
|
44
40
|
this.deviceMessages = new device_messages_1.DeviceMessages({
|
|
45
41
|
userContext,
|
|
@@ -133,10 +129,10 @@ class ConnectionManager {
|
|
|
133
129
|
const groupsTable = (0, peers_sdk_1.Groups)(this.userContext.userDataContext);
|
|
134
130
|
groupsTable.dataChanged.subscribe(evt => {
|
|
135
131
|
if (evt.op === 'delete' || evt.dataObject.disabled) {
|
|
136
|
-
this.
|
|
132
|
+
this.teardownGroup(evt.dataObject.groupId);
|
|
137
133
|
}
|
|
138
134
|
else {
|
|
139
|
-
this.
|
|
135
|
+
this.setupGroup(evt.dataObject.groupId);
|
|
140
136
|
}
|
|
141
137
|
});
|
|
142
138
|
this.getPeerGroupDevice(this.userContext.userDataContext); // ensure userSyncDevice is created and peerDevice is set on dataLocks table
|
|
@@ -144,6 +140,68 @@ class ConnectionManager {
|
|
|
144
140
|
await this.setupGroupMembersSubscription(groupId);
|
|
145
141
|
}
|
|
146
142
|
}
|
|
143
|
+
/**
|
|
144
|
+
* Called when a new group is added or re-enabled.
|
|
145
|
+
* Sets up the group member subscription and checks all existing connections
|
|
146
|
+
* for membership in the new group, confirming with the remote side first.
|
|
147
|
+
*/
|
|
148
|
+
async setupGroup(groupId) {
|
|
149
|
+
await this.setupGroupMembersSubscription(groupId);
|
|
150
|
+
// Check existing connections for membership in the new group
|
|
151
|
+
const dataContext = this.userContext.getDataContext(groupId);
|
|
152
|
+
const groupMembersTable = (0, peers_sdk_1.GroupMembers)(dataContext);
|
|
153
|
+
for (const connection of Array.from(this.connectionStates.keys())) {
|
|
154
|
+
const remoteUserId = connection.remoteDeviceInfo.userId;
|
|
155
|
+
let membership = await groupMembersTable.findOne({ userId: remoteUserId, groupId });
|
|
156
|
+
if (!membership) {
|
|
157
|
+
const role = await (0, peers_sdk_1.getUserRole)(groupId, remoteUserId);
|
|
158
|
+
if (role) {
|
|
159
|
+
membership = {
|
|
160
|
+
groupMemberId: '',
|
|
161
|
+
userId: remoteUserId,
|
|
162
|
+
groupId,
|
|
163
|
+
role,
|
|
164
|
+
signature: ''
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
if (membership && membership.role >= peers_sdk_1.GroupMemberRole.Writer) {
|
|
169
|
+
const confirmedGroupIds = await this.confirmSharedGroupsWithRemote(connection, [groupId]);
|
|
170
|
+
if (confirmedGroupIds.includes(groupId)) {
|
|
171
|
+
this.setConnectionMembership(connection, membership);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Called when a group is deleted or disabled.
|
|
178
|
+
* Cleans up the group member subscription, per-group connection state
|
|
179
|
+
* on all existing connections, and disposes the SyncGroup.
|
|
180
|
+
*/
|
|
181
|
+
teardownGroup(groupId) {
|
|
182
|
+
// Clean up group member subscription
|
|
183
|
+
this.groupMemberSubscriptionCleanups.get(groupId)?.();
|
|
184
|
+
// Clean up per-group state on all existing connections
|
|
185
|
+
for (const [connection, connectionState] of this.connectionStates.entries()) {
|
|
186
|
+
const disposeFn = connectionState.disposeFns[groupId];
|
|
187
|
+
if (disposeFn) {
|
|
188
|
+
try {
|
|
189
|
+
disposeFn();
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
console.error(`Error disposing group ${groupId} on connection to ${connection.remoteDeviceInfo.deviceId}:`, error);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
// Dispose and remove the SyncGroup
|
|
197
|
+
const syncGroup = this.syncGroups[groupId];
|
|
198
|
+
if (syncGroup) {
|
|
199
|
+
syncGroup.dispose().catch(err => {
|
|
200
|
+
console.error(`Error disposing SyncGroup for group ${groupId}:`, err);
|
|
201
|
+
});
|
|
202
|
+
delete this.syncGroups[groupId];
|
|
203
|
+
}
|
|
204
|
+
}
|
|
147
205
|
async setupGroupMembersSubscription(groupId) {
|
|
148
206
|
if (this.groupMemberSubscriptionCleanups.has(groupId)) {
|
|
149
207
|
return;
|
|
@@ -233,6 +291,31 @@ class ConnectionManager {
|
|
|
233
291
|
}
|
|
234
292
|
return this.connectionStates.get(connection);
|
|
235
293
|
}
|
|
294
|
+
/**
|
|
295
|
+
* Ask the remote device to confirm which groups it also recognizes as shared.
|
|
296
|
+
* Returns the subset of groupIds confirmed by the remote side.
|
|
297
|
+
* Retries once after a short delay if the first attempt fails (e.g., remote handler not ready yet).
|
|
298
|
+
*/
|
|
299
|
+
async confirmSharedGroupsWithRemote(connection, groupIds) {
|
|
300
|
+
if (!groupIds.length)
|
|
301
|
+
return [];
|
|
302
|
+
const CONFIRM_TIMEOUT_MS = 5_000;
|
|
303
|
+
for (let attempt = 0; attempt < 2; attempt++) {
|
|
304
|
+
try {
|
|
305
|
+
return await Promise.race([
|
|
306
|
+
connection.emit('confirmSharedGroups', groupIds),
|
|
307
|
+
(0, peers_sdk_1.sleep)(CONFIRM_TIMEOUT_MS).then(() => { throw new Error('confirmSharedGroups timed out'); }),
|
|
308
|
+
]);
|
|
309
|
+
}
|
|
310
|
+
catch (err) {
|
|
311
|
+
if (attempt === 0) {
|
|
312
|
+
await (0, peers_sdk_1.sleep)(1_000);
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
console.warn(`Could not confirm shared groups with device ${connection.remoteDeviceInfo.deviceId}, skipping group sync`);
|
|
317
|
+
return [];
|
|
318
|
+
}
|
|
236
319
|
async addConnection(connection) {
|
|
237
320
|
const remoteDeviceId = connection.remoteDeviceInfo.deviceId;
|
|
238
321
|
if (this.connectionStates.has(connection)) {
|
|
@@ -258,6 +341,31 @@ class ConnectionManager {
|
|
|
258
341
|
connection.exposeRPC('getFileChunkInfo', (chunkHash) => this.getFileChunkInfo(chunkHash));
|
|
259
342
|
connection.exposeRPC('downloadFileChunk', (chunkHash) => this.chunkDownloadManager.getLocalChunk(chunkHash));
|
|
260
343
|
connection.exposeRPC('sendDeviceMessage', (message) => this.sendDeviceMessage(message));
|
|
344
|
+
// RPC handler for remote devices to confirm which groups they share with us
|
|
345
|
+
connection.exposeRPC('confirmSharedGroups', async (groupIds) => {
|
|
346
|
+
const confirmedGroupIds = [];
|
|
347
|
+
const myGroupIds = this.userContext.groupIds();
|
|
348
|
+
for (const groupId of groupIds) {
|
|
349
|
+
if (!myGroupIds.includes(groupId))
|
|
350
|
+
continue;
|
|
351
|
+
const dataContext = this.userContext.getDataContext(groupId);
|
|
352
|
+
let membership = await (0, peers_sdk_1.GroupMembers)(dataContext).findOne({
|
|
353
|
+
userId: connection.remoteDeviceInfo.userId,
|
|
354
|
+
groupId,
|
|
355
|
+
});
|
|
356
|
+
if (!membership) {
|
|
357
|
+
const role = await (0, peers_sdk_1.getUserRole)(groupId, connection.remoteDeviceInfo.userId);
|
|
358
|
+
if (role && role >= peers_sdk_1.GroupMemberRole.Writer) {
|
|
359
|
+
confirmedGroupIds.push(groupId);
|
|
360
|
+
continue;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
if (membership && membership.role >= peers_sdk_1.GroupMemberRole.Writer) {
|
|
364
|
+
confirmedGroupIds.push(groupId);
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
return confirmedGroupIds;
|
|
368
|
+
});
|
|
261
369
|
// Streaming chunk download: reads chunks from disk and streams them via sendRawBytes
|
|
262
370
|
if (connection.socket.sendRawBytes) {
|
|
263
371
|
connection.exposeRPC('streamChunks', async (args) => {
|
|
@@ -302,6 +410,7 @@ class ConnectionManager {
|
|
|
302
410
|
console.warn('Error retrying chunk downloads with new peer:', err);
|
|
303
411
|
});
|
|
304
412
|
const remoteUserId = connection.remoteDeviceInfo.userId;
|
|
413
|
+
// Same-user personal data sync doesn't need remote confirmation
|
|
305
414
|
if (remoteUserId === this.userContext.userId) {
|
|
306
415
|
this.setConnectionMembership(connection, {
|
|
307
416
|
groupMemberId: '',
|
|
@@ -311,12 +420,9 @@ class ConnectionManager {
|
|
|
311
420
|
signature: ''
|
|
312
421
|
}, false, this.userContext.userDataContext);
|
|
313
422
|
}
|
|
423
|
+
// Build candidate list of groups we think we share with this remote user
|
|
424
|
+
const candidateGroups = [];
|
|
314
425
|
for (const dataContext of this.userContext.groupDataContexts.values()) {
|
|
315
|
-
// if (dataContext.dataContextId === "00ml2qmor4za043giqb0iolld" && remoteUserId === "00ml2uyozrcgcv6wzmhtrn9wy") {
|
|
316
|
-
// let membership = await GroupMembers(dataContext).findOne({ userId: remoteUserId, groupId: dataContext.dataContextId });
|
|
317
|
-
// const role = await getUserRole(dataContext.dataContextId, remoteUserId);
|
|
318
|
-
// console.log('games group', { role, membership });
|
|
319
|
-
// }
|
|
320
426
|
let membership = await (0, peers_sdk_1.GroupMembers)(dataContext).findOne({ userId: remoteUserId, groupId: dataContext.dataContextId });
|
|
321
427
|
if (!membership && dataContext.groupId) {
|
|
322
428
|
const role = await (0, peers_sdk_1.getUserRole)(dataContext.groupId, remoteUserId);
|
|
@@ -330,12 +436,18 @@ class ConnectionManager {
|
|
|
330
436
|
};
|
|
331
437
|
}
|
|
332
438
|
}
|
|
333
|
-
if (membership) {
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
439
|
+
if (membership && membership.role >= peers_sdk_1.GroupMemberRole.Writer) {
|
|
440
|
+
candidateGroups.push({ membership, dataContext });
|
|
441
|
+
}
|
|
442
|
+
// TODO special logic so < Writer can propagate signed blocks of changes
|
|
443
|
+
}
|
|
444
|
+
// Ask the remote device to confirm which groups it also recognizes as shared
|
|
445
|
+
if (candidateGroups.length > 0) {
|
|
446
|
+
const candidateGroupIds = candidateGroups.map(c => c.membership.groupId);
|
|
447
|
+
const confirmedGroupIds = await this.confirmSharedGroupsWithRemote(connection, candidateGroupIds);
|
|
448
|
+
for (const { membership, dataContext } of candidateGroups) {
|
|
449
|
+
if (confirmedGroupIds.includes(membership.groupId)) {
|
|
450
|
+
this.setConnectionMembership(connection, membership, false, dataContext);
|
|
339
451
|
}
|
|
340
452
|
}
|
|
341
453
|
}
|
|
@@ -365,6 +477,7 @@ class ConnectionManager {
|
|
|
365
477
|
connection.removeAllListeners('downloadFileChunk');
|
|
366
478
|
connection.removeAllListeners('streamChunks');
|
|
367
479
|
connection.removeAllListeners('sendDeviceMessage');
|
|
480
|
+
connection.removeAllListeners('confirmSharedGroups');
|
|
368
481
|
this.connectionStates.delete(connection);
|
|
369
482
|
this.onConnectionRemoved(connection);
|
|
370
483
|
return connection.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection-manager.js","sourceRoot":"","sources":["../../src/connection-manager/connection-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"connection-manager.js","sourceRoot":"","sources":["../../src/connection-manager/connection-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,9 @@ export declare class DBLocal<T extends {
|
|
|
12
12
|
private openDb;
|
|
13
13
|
get(sql: string, params?: any): Promise<T | undefined>;
|
|
14
14
|
all(sql: string, params?: any): Promise<T[]>;
|
|
15
|
-
exec(sql: string, params?: any): Promise<
|
|
15
|
+
exec(sql: string, params?: any): Promise<{
|
|
16
|
+
changes: number;
|
|
17
|
+
}>;
|
|
16
18
|
execSync(sql: string, params?: any): void;
|
|
17
19
|
getSync(sql: string, params?: any): T | undefined;
|
|
18
20
|
allSync(sql: string, params?: any): T[];
|
|
@@ -100,7 +100,8 @@ class DBLocal {
|
|
|
100
100
|
async exec(sql, params = []) {
|
|
101
101
|
try {
|
|
102
102
|
await this.openDb();
|
|
103
|
-
this.db.prepare(sql).run(params);
|
|
103
|
+
const result = this.db.prepare(sql).run(params);
|
|
104
|
+
return { changes: result.changes };
|
|
104
105
|
}
|
|
105
106
|
catch (err) {
|
|
106
107
|
// console.error(`error running db.exec`, sql, params, err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local.data-source.js","sourceRoot":"","sources":["../src/local.data-source.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"local.data-source.js","sourceRoot":"","sources":["../src/local.data-source.ts"],"names":[],"mappings":"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"}
|
package/dist/sync-group.d.ts
CHANGED
|
@@ -63,6 +63,13 @@ export declare class SyncGroup implements IPeerDevice {
|
|
|
63
63
|
private _syncWithRemoteDevice;
|
|
64
64
|
applyChanges(changes: IChangeRecord[], remoteDevice?: IPeerDevice): Promise<void>;
|
|
65
65
|
listChanges(filter?: DataFilter<IChangeRecord>, opts?: IDataQueryParams<IChangeRecord>): Promise<IChangeRecord[]>;
|
|
66
|
+
/**
|
|
67
|
+
* Resolve null values on insert changes (op: 'set', path: '/') by batch-looking up
|
|
68
|
+
* the current records from the appropriate source tables.
|
|
69
|
+
* This is needed because insert changes no longer store the full record value
|
|
70
|
+
* in the changes table to avoid doubling DB size or persisting inserts for old schemas.
|
|
71
|
+
*/
|
|
72
|
+
private resolveInsertChangeValues;
|
|
66
73
|
dispose(): Promise<void>;
|
|
67
74
|
getNetworkInfo(): Promise<INetworkInfo>;
|
|
68
75
|
private currentElectionPromise;
|
|
@@ -72,6 +79,14 @@ export declare class SyncGroup implements IPeerDevice {
|
|
|
72
79
|
getRemoteNetworkInfo(device: string | IPeerDevice, opts?: {
|
|
73
80
|
force?: boolean;
|
|
74
81
|
}): Promise<INetworkInfo>;
|
|
82
|
+
/**
|
|
83
|
+
* Find and delete change tracking entries for tables that no longer exist.
|
|
84
|
+
* This can happen when a package (or its table definitions) is removed but
|
|
85
|
+
* the corresponding change records remain in the change tracking table.
|
|
86
|
+
*
|
|
87
|
+
* @returns The list of orphaned table names that were cleaned up.
|
|
88
|
+
*/
|
|
89
|
+
cleanupOrphanedChangeTrackingEntries(): Promise<string[]>;
|
|
75
90
|
compactDatabase(beforeTimestamp?: number): Promise<void>;
|
|
76
91
|
resetAllDeviceSyncInfo(): Promise<void>;
|
|
77
92
|
/**
|
package/dist/sync-group.js
CHANGED
|
@@ -270,26 +270,17 @@ class SyncGroup {
|
|
|
270
270
|
if (connection?.timestampLastApplied && networkInfoStart.timestampLastApplied <= connection.timestampLastApplied) {
|
|
271
271
|
return; // already synced
|
|
272
272
|
}
|
|
273
|
-
//
|
|
274
|
-
|
|
275
|
-
const fileChanges = await remoteDevice.listChanges({
|
|
273
|
+
// Sync table definitions so we know about all table schemas before applying other changes
|
|
274
|
+
const tableDefChanges = await remoteDevice.listChanges({
|
|
276
275
|
supersededAt: { $exists: false },
|
|
277
276
|
appliedAt: { $gte: syncInfo.timestampAppliedLast },
|
|
278
|
-
tableName: '
|
|
277
|
+
tableName: 'TableDefinitions'
|
|
279
278
|
});
|
|
280
|
-
if (
|
|
281
|
-
console.warn(`
|
|
282
|
-
await this.applyChanges(
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
const packageChanges = await remoteDevice.listChanges({
|
|
286
|
-
supersededAt: { $exists: false },
|
|
287
|
-
appliedAt: { $gte: syncInfo.timestampAppliedLast },
|
|
288
|
-
tableName: 'Packages'
|
|
289
|
-
});
|
|
290
|
-
if ((packageChanges).length) {
|
|
291
|
-
console.warn(`package changes found ${packageChanges.length}, applying first`);
|
|
292
|
-
await this.applyChanges(packageChanges, remoteDevice);
|
|
279
|
+
if (tableDefChanges.length) {
|
|
280
|
+
console.warn(`table definition changes found ${tableDefChanges.length}, applying first`);
|
|
281
|
+
await this.applyChanges(tableDefChanges, remoteDevice);
|
|
282
|
+
// Fallback definitions are now auto-registered by TableContainer's dataChanged
|
|
283
|
+
// subscription on the TableDefinitions table (set up during getAllTables)
|
|
293
284
|
}
|
|
294
285
|
// // this is a hacky test to make sure connections can deal with incredibly large RPC args and results
|
|
295
286
|
// const t0 = Date.now();
|
|
@@ -311,6 +302,7 @@ class SyncGroup {
|
|
|
311
302
|
{ appliedAt: { $gte: syncInfo.timestampAppliedLast } },
|
|
312
303
|
// We don't want to go past the current applied changes because we might skip changes that are actively being synced from other device to the remote device
|
|
313
304
|
{ appliedAt: { $lte: networkInfoStart.timestampLastApplied } },
|
|
305
|
+
{ tableName: { $nin: ['TableDefinitions'] } }
|
|
314
306
|
]
|
|
315
307
|
}, { sortBy: ['createdAt'], pageSize: batchSize });
|
|
316
308
|
const changeBatch = [];
|
|
@@ -373,14 +365,14 @@ class SyncGroup {
|
|
|
373
365
|
tableTimestamps[c.tableName] = c.createdAt;
|
|
374
366
|
}
|
|
375
367
|
});
|
|
376
|
-
// always load Users, Devices, Groups, PersistentVars, PeerTypes, and
|
|
368
|
+
// always load Users, Devices, Groups, PersistentVars, PeerTypes, Packages, and TableDefinitions first since they can affect how other tables are handled
|
|
377
369
|
const tableNames = (0, lodash_1.sortBy)(Object.keys(tableTimestamps), (t) => {
|
|
378
|
-
return t === "Users" ? -
|
|
379
|
-
t === "Devices" ? -
|
|
380
|
-
t === "Groups" ? -
|
|
381
|
-
t === "PersistentVars" ? -
|
|
382
|
-
t === "PeerTypes" ? -
|
|
383
|
-
t === "Packages" ? -
|
|
370
|
+
return t === "Users" ? -7 :
|
|
371
|
+
t === "Devices" ? -6 :
|
|
372
|
+
t === "Groups" ? -5 :
|
|
373
|
+
t === "PersistentVars" ? -4 :
|
|
374
|
+
t === "PeerTypes" ? -3 :
|
|
375
|
+
t === "Packages" ? -2 :
|
|
384
376
|
t === "Files" ? 0 :
|
|
385
377
|
tableTimestamps[t];
|
|
386
378
|
});
|
|
@@ -388,10 +380,14 @@ class SyncGroup {
|
|
|
388
380
|
// WARNING: by grouping changes by table name, we're not necessarily applying them in the order they were created
|
|
389
381
|
// this is a questionable decision that gives better performance but may lead to data integrity issues
|
|
390
382
|
for (const tableName of tableNames) {
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
383
|
+
if (!tables[tableName]) {
|
|
384
|
+
const fallback = await this.tableContainer.getFallbackTable(tableName);
|
|
385
|
+
if (!fallback) {
|
|
386
|
+
throw new Error(`Table not found: ${tableName} - cannot continue with changes (no definition available)`);
|
|
387
|
+
}
|
|
388
|
+
tables[tableName] = fallback;
|
|
394
389
|
}
|
|
390
|
+
const table = tables[tableName];
|
|
395
391
|
let ds = table;
|
|
396
392
|
while (typeof ds?.applyChanges !== 'function' && ds.dataSource) {
|
|
397
393
|
ds = ds.dataSource;
|
|
@@ -407,7 +403,56 @@ class SyncGroup {
|
|
|
407
403
|
}
|
|
408
404
|
async listChanges(filter, opts) {
|
|
409
405
|
SyncGroup.listChangesCount++;
|
|
410
|
-
|
|
406
|
+
const changes = await this.changeTrackingTable.list(filter, opts);
|
|
407
|
+
await this.resolveInsertChangeValues(changes);
|
|
408
|
+
return changes;
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Resolve null values on insert changes (op: 'set', path: '/') by batch-looking up
|
|
412
|
+
* the current records from the appropriate source tables.
|
|
413
|
+
* This is needed because insert changes no longer store the full record value
|
|
414
|
+
* in the changes table to avoid doubling DB size or persisting inserts for old schemas.
|
|
415
|
+
*/
|
|
416
|
+
async resolveInsertChangeValues(changes) {
|
|
417
|
+
// Find insert changes that need resolution (value is null/undefined)
|
|
418
|
+
const insertChanges = changes.filter(c => c.op === 'set' && c.path === '/' && (c.value === null || c.value === undefined));
|
|
419
|
+
if (insertChanges.length === 0)
|
|
420
|
+
return;
|
|
421
|
+
// Group by tableName so we can batch-lookup from the right table
|
|
422
|
+
const byTable = {};
|
|
423
|
+
for (const change of insertChanges) {
|
|
424
|
+
if (!byTable[change.tableName]) {
|
|
425
|
+
byTable[change.tableName] = [];
|
|
426
|
+
}
|
|
427
|
+
byTable[change.tableName].push(change);
|
|
428
|
+
}
|
|
429
|
+
for (const tableName of Object.keys(byTable)) {
|
|
430
|
+
let table;
|
|
431
|
+
try {
|
|
432
|
+
table = this.tableContainer.getTableByName(tableName);
|
|
433
|
+
}
|
|
434
|
+
catch (e) {
|
|
435
|
+
throw new Error(`[Sync Group] Cannot resolve insert change values: table "${tableName}" not found in tableContainer`);
|
|
436
|
+
}
|
|
437
|
+
const tableChanges = byTable[tableName];
|
|
438
|
+
const recordIds = [...new Set(tableChanges.map(c => c.recordId))];
|
|
439
|
+
const primaryKeyName = table.primaryKeyName || table.dataSource?.primaryKeyName;
|
|
440
|
+
try {
|
|
441
|
+
const records = await table.list({
|
|
442
|
+
[primaryKeyName]: { $in: recordIds },
|
|
443
|
+
});
|
|
444
|
+
const recordMap = new Map(records.map((r) => [r[primaryKeyName], r]));
|
|
445
|
+
for (const change of tableChanges) {
|
|
446
|
+
const record = recordMap.get(change.recordId);
|
|
447
|
+
if (record) {
|
|
448
|
+
change.value = record;
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
catch (e) {
|
|
453
|
+
throw new Error(`[Sync Group] Failed to resolve insert change values for table ${tableName}: ${e}`);
|
|
454
|
+
}
|
|
455
|
+
}
|
|
411
456
|
}
|
|
412
457
|
async dispose() {
|
|
413
458
|
this.disposed = true;
|
|
@@ -527,11 +572,49 @@ class SyncGroup {
|
|
|
527
572
|
throw err;
|
|
528
573
|
});
|
|
529
574
|
}
|
|
575
|
+
/**
|
|
576
|
+
* Find and delete change tracking entries for tables that no longer exist.
|
|
577
|
+
* This can happen when a package (or its table definitions) is removed but
|
|
578
|
+
* the corresponding change records remain in the change tracking table.
|
|
579
|
+
*
|
|
580
|
+
* @returns The list of orphaned table names that were cleaned up.
|
|
581
|
+
*/
|
|
582
|
+
async cleanupOrphanedChangeTrackingEntries() {
|
|
583
|
+
const db = this.changeTrackingTable.db;
|
|
584
|
+
if (!db) {
|
|
585
|
+
throw new Error(`Database not ready`);
|
|
586
|
+
}
|
|
587
|
+
await this.changeTrackingTable.initTable();
|
|
588
|
+
const changeTrackingTableName = this.changeTrackingTable.metaData.name;
|
|
589
|
+
// Find orphaned table names: tracked in change tracking but no longer an actual table in the database
|
|
590
|
+
const orphanedRows = await db.all(`SELECT DISTINCT tableName FROM "${changeTrackingTableName}" WHERE tableName NOT IN (SELECT name FROM sqlite_master WHERE type = 'table')`);
|
|
591
|
+
const orphanedTableNames = orphanedRows.map((r) => r.tableName);
|
|
592
|
+
if (orphanedTableNames.length === 0) {
|
|
593
|
+
return [];
|
|
594
|
+
}
|
|
595
|
+
// Delete all orphaned entries in a single SQL call
|
|
596
|
+
const placeholders = orphanedTableNames.map(() => '?').join(', ');
|
|
597
|
+
await db.exec(`DELETE FROM "${changeTrackingTableName}" WHERE tableName IN (${placeholders})`, orphanedTableNames);
|
|
598
|
+
for (const tableName of orphanedTableNames) {
|
|
599
|
+
console.log(`Cleaned up orphaned change tracking entries for deleted table: ${tableName}`);
|
|
600
|
+
}
|
|
601
|
+
return orphanedTableNames;
|
|
602
|
+
}
|
|
530
603
|
async compactDatabase(beforeTimestamp) {
|
|
531
604
|
const db = this.changeTrackingTable.db;
|
|
532
605
|
if (!db) {
|
|
533
606
|
throw new Error(`Database not ready`);
|
|
534
607
|
}
|
|
608
|
+
// Clean up change tracking entries for tables that no longer exist
|
|
609
|
+
try {
|
|
610
|
+
const orphaned = await this.cleanupOrphanedChangeTrackingEntries();
|
|
611
|
+
if (orphaned.length > 0) {
|
|
612
|
+
console.log(`Cleaned up orphaned change tracking entries for ${orphaned.length} deleted table(s): ${orphaned.join(', ')}`);
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
catch (err) {
|
|
616
|
+
console.warn(`Error cleaning up orphaned change tracking entries`, err);
|
|
617
|
+
}
|
|
535
618
|
// delete and locks and their changes that are older than 1 day
|
|
536
619
|
const dataLocksTableName = (0, peers_sdk_1.DataLocks)(this.dataContext).tableName;
|
|
537
620
|
try {
|
|
@@ -540,7 +623,7 @@ class SyncGroup {
|
|
|
540
623
|
// ensure tables are initialized
|
|
541
624
|
await this.changeTrackingTable.initTable();
|
|
542
625
|
await (0, peers_sdk_1.DataLocks)().list({}, { pageSize: 1 });
|
|
543
|
-
await db.exec(`DELETE FROM ${changeTrackingTableId} WHERE tableName = ? AND
|
|
626
|
+
await db.exec(`DELETE FROM ${changeTrackingTableId} WHERE tableName = ? AND createdAt < ?`, [dataLocksTableName, oneDayAgoMs]);
|
|
544
627
|
await db.exec(`DELETE FROM ${dataLocksTableName} WHERE lockedUntil < ?`, [oneDayAgoMs]);
|
|
545
628
|
}
|
|
546
629
|
catch (err) {
|