@peers-app/peers-device 0.7.40 → 0.8.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.
@@ -0,0 +1,275 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NetworkManager = void 0;
4
+ const peers_sdk_1 = require("@peers-app/peers-sdk");
5
+ const connection_manager_1 = require("./connection-manager");
6
+ /**
7
+ * NetworkManager is responsible for deciding when and which devices to connect to,
8
+ * and which protocol to use for those connections.
9
+ *
10
+ * It subscribes to connection changes and tries to maintain a "well connected" network of devices.
11
+ * Ideally we want connections to all of our personal devices and a few "well connected" peers for groups that we don't own.
12
+ * If we "own" a group, we assume other devices are responsible for connecting to our devices.
13
+ *
14
+ * In order of preference:
15
+ * 1. wss / https - most preferred because we have a well-know address over TLS and can have many concurrent connections.
16
+ * 2. webrtc - only available on devices with a browser instance (e.g. electron, react native, browser)
17
+ * 3. libp2p - theoretically the best long term solution but it's currently not as good as webrtc at handling NATs.
18
+ * 4. ws - least preferred because it's not encrypted at the protocol level so we have to encrypt the traffic ourselves
19
+ * which is less efficient than having the protocol handle it. These should mostly be used for bootstrapping local networks.
20
+ *
21
+ * Local devices can be discoverd via ip scanning and are usually over http/ws (not encrypted at the protocol level).
22
+ * Peer connections will automatically encrypt the traffic for these but we'd prefer to have connections encrypted at the protocol level,
23
+ * so if we can upgrade to wss or wrtc we should do that. Libp2p encrypts the traffic for us but I think just in the same way
24
+ * Peer connections do encryption. More testing is needed to understand the differences between the two.
25
+ *
26
+ */
27
+ class NetworkManager {
28
+ connectionManager;
29
+ protocolManagers;
30
+ onConnectionAddedSubscription;
31
+ onConnectionRemovedSubscription;
32
+ unsubscribeFunctions = [];
33
+ checkForWellConnectedPromise = Promise.resolve();
34
+ constructor(connectionManager, protocolManagers = []) {
35
+ this.connectionManager = connectionManager;
36
+ this.protocolManagers = protocolManagers;
37
+ // Register handler for protocol support queries
38
+ this.setupHandler();
39
+ // Subscribe to connection changes to trigger well-connected checks
40
+ this.onConnectionAddedSubscription = this.connectionManager.onConnectionAdded.subscribe(connection => {
41
+ this.checkForWellConnected(connection);
42
+ });
43
+ this.onConnectionRemovedSubscription = this.connectionManager.onConnectionRemoved.subscribe(() => {
44
+ this.checkForWellConnected();
45
+ });
46
+ this.connectionManager.onUserConnectExchangeFinished.subscribe(deviceId => {
47
+ if (!deviceId)
48
+ return;
49
+ this.connectToDevice(deviceId);
50
+ });
51
+ // setInterval(() => this.checkForWellConnected(), 70_000);
52
+ }
53
+ sortProtocolManagers() {
54
+ const protocolPriority = {
55
+ 'wss': 1, // TLS websockets
56
+ 'https': 1, // TLS websockets
57
+ 'ws': 10, // slower due to Peers high-level encryption
58
+ 'http': 10, // slower due to Peers high-level encryption
59
+ 'libp2p': 20, // basically tcp under the hood
60
+ 'wrtc': 30, // wrtc has the best chance of connecting but is the slowest connection
61
+ };
62
+ const defaultPriority = 99; // protocols not listed will sort above ws and http
63
+ this.protocolManagers.sort((a, b) => (protocolPriority[a.protocolName] ?? defaultPriority) -
64
+ (protocolPriority[b.protocolName] ?? defaultPriority));
65
+ }
66
+ /**
67
+ * Register handlers for device messages
68
+ */
69
+ setupHandler() {
70
+ // Handler for protocol support queries
71
+ const protocolSupportSub = this.connectionManager.on('get-supported-protocols', async (message) => {
72
+ try {
73
+ const supportedProtocols = this.protocolManagers.map(pm => pm.protocolName);
74
+ const response = {
75
+ supportedProtocols,
76
+ };
77
+ return {
78
+ statusCode: 200,
79
+ statusMessage: 'OK',
80
+ payload: response,
81
+ hops: message.hops
82
+ };
83
+ }
84
+ catch (error) {
85
+ console.error('Error handling get-supported-protocols:', error);
86
+ return {
87
+ statusCode: 500,
88
+ statusMessage: 'Error handling get-supported-protocols',
89
+ hops: message.hops
90
+ };
91
+ }
92
+ });
93
+ this.unsubscribeFunctions.push(protocolSupportSub);
94
+ }
95
+ /**
96
+ * Check if we're well connected to all personal devices and establish connections if needed.
97
+ * This is called when connections are added or removed.
98
+ */
99
+ pendingCallCnt = 0;
100
+ async checkForWellConnected(newConnection) {
101
+ if (this.pendingCallCnt > 2) {
102
+ return this.checkForWellConnectedPromise;
103
+ }
104
+ this.pendingCallCnt++;
105
+ this.checkForWellConnectedPromise = this.checkForWellConnectedPromise.finally(() => {
106
+ this.pendingCallCnt--;
107
+ return this._checkForWellConnected(newConnection);
108
+ });
109
+ return this.checkForWellConnectedPromise;
110
+ }
111
+ /**
112
+ * Internal implementation of well-connected check.
113
+ * Ensures we have good connections (libp2p, https, wss, or wrtc) to all personal devices.
114
+ */
115
+ async _checkForWellConnected(newConnection) {
116
+ if (newConnection) {
117
+ await (0, peers_sdk_1.sleep)(4_000); // wait for connection to stabilize
118
+ }
119
+ console.log(`[NetworkManager] Checking for well-connected devices (pending calls: ${this.pendingCallCnt})`);
120
+ const userContext = this.connectionManager.userContext;
121
+ // Step 1 - I always want to be connected to ALL of my own devices
122
+ // TODO: revisit this for a user with >10 devices
123
+ const myDevices = (0, peers_sdk_1.Devices)(userContext.userDataContext).cursor({
124
+ userId: userContext.userId
125
+ });
126
+ for await (const myRemoteDevice of myDevices) {
127
+ await this.connectToDevice(myRemoteDevice.deviceId, userContext.userId);
128
+ await (0, peers_sdk_1.sleep)(100);
129
+ }
130
+ await (0, peers_sdk_1.sleep)(1000);
131
+ // Step 2 - I want at least 1, and preferably 2 or 3, connections for all my groups
132
+ const dataContexts = Array.from(userContext.groupDataContexts.values());
133
+ for (const groupDataContext of [userContext.userDataContext, ...dataContexts]) {
134
+ const syncGroup = this.connectionManager.getPeerGroupDevice(groupDataContext);
135
+ const connections = syncGroup.getConnections();
136
+ if (connections.length > 2) {
137
+ continue;
138
+ }
139
+ if (connections.length === 0) {
140
+ // use sendDevice to try to find a device for this group
141
+ const response = await this.connectionManager.sendDeviceMessage({
142
+ dataContextId: groupDataContext.dataContextId,
143
+ payload: 0,
144
+ toDeviceId: '',
145
+ });
146
+ if (response?.statusCode === 200) {
147
+ const hops = response.hops;
148
+ const targetDeviceId = hops.pop();
149
+ await this.connectToDevice(targetDeviceId, groupDataContext.dataContextId);
150
+ }
151
+ }
152
+ else {
153
+ // use existing connections to try to find new ones
154
+ for (const connection of connections) {
155
+ const networkInfo = await syncGroup.getRemoteNetworkInfo(connection.deviceId);
156
+ for (const remoteDeviceId of networkInfo.preferredDeviceIds) {
157
+ const existingConnection = this.connectionManager.getDeviceConnection(remoteDeviceId);
158
+ if (!existingConnection) {
159
+ await this.connectToDevice(remoteDeviceId);
160
+ return;
161
+ }
162
+ }
163
+ }
164
+ }
165
+ }
166
+ }
167
+ async connectToDevice(deviceId, dataContextId, protocol) {
168
+ const userContext = await (0, peers_sdk_1.getUserContext)();
169
+ dataContextId ??= userContext.userId;
170
+ if (deviceId === userContext.deviceId()) {
171
+ // this is this device, we don't connect to ourselves
172
+ return;
173
+ }
174
+ const existingConnection = this.connectionManager.getDeviceConnection(deviceId);
175
+ // if (existingConnection && this.isUsingEncryptedProtocol(existingConnection) && !protocol) {
176
+ // // we already have a good connection to this device
177
+ // return;
178
+ // }
179
+ if (existingConnection && !protocol) {
180
+ // we already have a good connection to this device
181
+ return;
182
+ }
183
+ // check if any of the protocol managers are currently working on connecting to this device
184
+ for (const protocolManager of this.protocolManagers) {
185
+ if (protocolManager.isConnecting(deviceId) && (!protocol || protocolManager.protocolName === protocol)) {
186
+ return;
187
+ }
188
+ }
189
+ // send a get-supported-protocols message to the device
190
+ const supportedProtocolsResponse = await this.connectionManager.sendDeviceMessage({
191
+ toDeviceId: deviceId,
192
+ dataContextId,
193
+ payload: {
194
+ type: 'get-supported-protocols',
195
+ },
196
+ });
197
+ // TODO: take this out once we get cached multiaddrs in libp2p
198
+ if (supportedProtocolsResponse === connection_manager_1.TTL0) {
199
+ return;
200
+ }
201
+ let supportedProtocols = [];
202
+ if (supportedProtocolsResponse === connection_manager_1.TTL0 || supportedProtocolsResponse?.statusCode !== 200) {
203
+ if (supportedProtocolsResponse === connection_manager_1.TTL0) {
204
+ // console.warn(`[NetworkManager] Device ${deviceId} couldn't be found, trying libp2p in case it has cached addresses`);
205
+ supportedProtocols = ['libp2p'];
206
+ }
207
+ else {
208
+ // console.warn(`[NetworkManager] Error getting supported protocols from ${deviceId}: ${supportedProtocolsResponse?.statusMessage} - defaulting to specified protocol or libp2p`);
209
+ supportedProtocols = protocol ? [protocol] : ['libp2p'];
210
+ }
211
+ }
212
+ else {
213
+ supportedProtocols = supportedProtocolsResponse.payload.supportedProtocols;
214
+ }
215
+ if (protocol) {
216
+ if (!supportedProtocols.includes(protocol)) {
217
+ console.warn(`[NetworkManager] Device ${deviceId} does not support protocol ${protocol}`);
218
+ return;
219
+ }
220
+ }
221
+ this.sortProtocolManagers();
222
+ for (const protocolManager of this.protocolManagers) {
223
+ if (supportedProtocols.includes(protocolManager.protocolName)) {
224
+ if (protocolManager.isConnecting(deviceId)) {
225
+ continue;
226
+ }
227
+ if (this.hasConnectionViaProtocol(existingConnection, protocolManager.protocolName)) {
228
+ continue;
229
+ }
230
+ try {
231
+ await protocolManager.connectToDevice(deviceId, dataContextId);
232
+ return;
233
+ }
234
+ catch (error) {
235
+ console.warn(`[NetworkManager] Error trying to connect to ${deviceId} via ${protocolManager.protocolName}:`, error);
236
+ }
237
+ await (0, peers_sdk_1.sleep)(1000);
238
+ }
239
+ }
240
+ console.warn(`[NetworkManager] Could not establish connection to ${deviceId}`);
241
+ }
242
+ isUsingEncryptedProtocol(connection) {
243
+ const address = connection.connectionAddress || '';
244
+ return (address.startsWith('https://') ||
245
+ address.startsWith('wss://') ||
246
+ address.startsWith('wrtc://') ||
247
+ address.startsWith('libp2p://'));
248
+ }
249
+ /**
250
+ * Check if a connection is via a specific protocol
251
+ */
252
+ hasConnectionViaProtocol(connection, protocolName) {
253
+ if (!connection?.connectionAddress) {
254
+ return false;
255
+ }
256
+ // Map protocol names to their connection address prefixes
257
+ const protocolPrefixMap = {
258
+ 'libp2p': 'libp2p://',
259
+ 'wrtc': 'wrtc://', // WebRTC uses 'wrtc://' prefix
260
+ };
261
+ const protocolPrefix = protocolPrefixMap[protocolName] || `${protocolName}://`;
262
+ return connection.connectionAddress.startsWith(protocolPrefix);
263
+ }
264
+ /**
265
+ * Clean up subscriptions
266
+ */
267
+ dispose() {
268
+ this.unsubscribeFunctions.forEach(fn => fn());
269
+ this.unsubscribeFunctions.length = 0;
270
+ this.onConnectionAddedSubscription.dispose();
271
+ this.onConnectionRemovedSubscription.dispose();
272
+ }
273
+ }
274
+ exports.NetworkManager = NetworkManager;
275
+ //# sourceMappingURL=network-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network-manager.js","sourceRoot":"","sources":["../../src/connection-manager/network-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Minimal interface for protocol managers that can establish connections to devices.
3
+ * Protocol managers are responsible for:
4
+ * - Establishing connections to other devices using their specific protocol
5
+ * - Handling incoming connection offers from other devices
6
+ * - Performing handshakes (initiator) or waiting for handshakes (receiver)
7
+ * - Passing established connections to ConnectionManager
8
+ */
9
+ export interface IProtocolManager {
10
+ /**
11
+ * Protocol name for identification (e.g., 'libp2p', 'webrtc')
12
+ */
13
+ readonly protocolName: string;
14
+ /**
15
+ * Attempt to connect to a specific device using this protocol.
16
+ * @param deviceId - The target device ID to connect to
17
+ * @param dataContextId - The data context for this connection
18
+ */
19
+ connectToDevice(deviceId: string, dataContextId: string): Promise<void>;
20
+ /**
21
+ * Check if this protocol manager is currently attempting to connect to a device.
22
+ * @param deviceId - The device ID to check
23
+ * @returns true if a connection attempt is in progress for this device
24
+ */
25
+ isConnecting(deviceId: string): boolean;
26
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=protocol-manager.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol-manager.interface.js","sourceRoot":"","sources":["../../src/connection-manager/protocol-manager.interface.ts"],"names":[],"mappings":""}
package/dist/index.d.ts CHANGED
@@ -4,5 +4,7 @@ export * from './tracked-data-source';
4
4
  export * from './pvars.tracked-data-source';
5
5
  export * from './connection-manager/connection-manager';
6
6
  export * from './connection-manager/device-message-handler.types';
7
+ export * from './connection-manager/protocol-manager.interface';
8
+ export * from './connection-manager/network-manager';
7
9
  export * from './local.data-source';
8
10
  export * from './machine-stats';
package/dist/index.js CHANGED
@@ -20,6 +20,8 @@ __exportStar(require("./tracked-data-source"), exports);
20
20
  __exportStar(require("./pvars.tracked-data-source"), exports);
21
21
  __exportStar(require("./connection-manager/connection-manager"), exports);
22
22
  __exportStar(require("./connection-manager/device-message-handler.types"), exports);
23
+ __exportStar(require("./connection-manager/protocol-manager.interface"), exports);
24
+ __exportStar(require("./connection-manager/network-manager"), exports);
23
25
  __exportStar(require("./local.data-source"), exports);
24
26
  __exportStar(require("./machine-stats"), exports);
25
27
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,+CAA6B;AAC7B,wDAAsC;AACtC,8DAA4C;AAC5C,0EAAwD;AACxD,oFAAkE;AAClE,sDAAoC;AACpC,kDAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,+CAA6B;AAC7B,wDAAsC;AACtC,8DAA4C;AAC5C,0EAAwD;AACxD,oFAAkE;AAClE,kFAAgE;AAChE,uEAAqD;AACrD,sDAAoC;AACpC,kDAAgC"}
@@ -16,12 +16,15 @@ class DBLocal {
16
16
  constructor(dbDir, getSecretKey) {
17
17
  this.dbDir = dbDir;
18
18
  this.getSecretKey = getSecretKey;
19
- process.on('exit', () => {
20
- this.close();
21
- });
22
- process.on('SIGINT', async () => {
23
- this.close();
24
- });
19
+ // Only register process handlers in Node.js environments
20
+ if (typeof process !== 'undefined' && typeof process.on === 'function') {
21
+ process.on('exit', () => {
22
+ this.close();
23
+ });
24
+ process.on('SIGINT', async () => {
25
+ this.close();
26
+ });
27
+ }
25
28
  }
26
29
  get dbFilePath() {
27
30
  if (this.dbDir === ':memory:') {
@@ -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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"}
@@ -246,18 +246,10 @@ exports.machineStatsInterval = !isJest ? setInterval(() => {
246
246
  // const cur = Math.round(stats.cpu.current * 100) / 100;
247
247
  // console.log(`Current CPU usage - max: ${max.toFixed(1)}%, min: ${min.toFixed(1)}%, avg use: ${avg.toFixed(1)}%, avg idle: ${idle.toFixed(1)}%, current: ${cur.toFixed(1)}%`);
248
248
  }, 1000) : null;
249
- // Clean up interval when process exits (only if interval was created)
250
- if (exports.machineStatsInterval) {
249
+ // Clean up interval when process exits (only if interval was created and process.on exists)
250
+ if (exports.machineStatsInterval && typeof process !== 'undefined' && typeof process.on === 'function') {
251
251
  process.on('exit', () => {
252
252
  clearInterval(exports.machineStatsInterval);
253
253
  });
254
- // process.on('SIGINT', () => {
255
- // clearInterval(machineStatsInterval);
256
- // process.exit(0);
257
- // });
258
- // process.on('SIGTERM', () => {
259
- // clearInterval(machineStatsInterval);
260
- // process.exit(0);
261
- // });
262
254
  }
263
255
  //# sourceMappingURL=machine-stats.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"machine-stats.js","sourceRoot":"","sources":["../src/machine-stats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"machine-stats.js","sourceRoot":"","sources":["../src/machine-stats.ts"],"names":[],"mappings":"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"}
package/dist/main.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  import { FileOps, ISqlDb, UserContext } from "@peers-app/peers-sdk";
2
2
  import { ConnectionManager } from './connection-manager/connection-manager';
3
+ import { NetworkManager } from "./connection-manager/network-manager";
3
4
  export declare const connectionManagerPromise: Promise<ConnectionManager>;
5
+ export declare const networkManagerPromise: Promise<NetworkManager>;
4
6
  export declare const peersDeviceInitializedPromise: Promise<void>;
5
7
  export declare function initializePeerDevice(userId: string, dbConstructor: (groupId?: string) => ISqlDb, _setUserContext: (userContext: UserContext) => void, fileOps: FileOps, getSecretKey: () => Promise<string> | string): Promise<UserContext>;
package/dist/main.js CHANGED
@@ -1,16 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.peersDeviceInitializedPromise = exports.connectionManagerPromise = void 0;
3
+ exports.peersDeviceInitializedPromise = exports.networkManagerPromise = exports.connectionManagerPromise = void 0;
4
4
  exports.initializePeerDevice = initializePeerDevice;
5
5
  const peers_sdk_1 = require("@peers-app/peers-sdk");
6
6
  const connection_manager_1 = require("./connection-manager/connection-manager");
7
7
  const packages_tracked_data_source_1 = require("./packages.tracked-data-source");
8
8
  const pvars_tracked_data_source_1 = require("./pvars.tracked-data-source");
9
9
  const tracked_data_source_1 = require("./tracked-data-source");
10
+ const network_manager_1 = require("./connection-manager/network-manager");
10
11
  let resolveConnectionManager;
11
12
  exports.connectionManagerPromise = new Promise(async (resolve) => {
12
13
  resolveConnectionManager = resolve;
13
14
  });
15
+ let networkManagerResolve;
16
+ exports.networkManagerPromise = new Promise((resolve) => {
17
+ networkManagerResolve = resolve;
18
+ });
14
19
  let resolvePeersDeviceInitialized;
15
20
  exports.peersDeviceInitializedPromise = new Promise(resolve => {
16
21
  resolvePeersDeviceInitialized = resolve;
@@ -103,6 +108,8 @@ async function initializePeerDevice(userId, dbConstructor, _setUserContext, file
103
108
  return groupSecretKey;
104
109
  };
105
110
  const connectionManager = new connection_manager_1.ConnectionManager(userContext, changeTrackingTableFactory, localDevice, getGroupSecretKey);
111
+ const networkManager = new network_manager_1.NetworkManager(connectionManager);
112
+ networkManagerResolve(networkManager);
106
113
  peers_sdk_1.rpcServerCalls.resetAllDeviceSyncInfo = async () => {
107
114
  const peerDevice = connectionManager.getPeerGroupDevice(userContext.defaultDataContext());
108
115
  await peerDevice.resetAllDeviceSyncInfo();
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;;AA4CA,oDAuIC;AAnLD,oDA0B8B;AAE9B,gFAA4E;AAC5E,iFAA2E;AAC3E,2EAAqE;AACrE,+DAA0D;AAG1D,IAAI,wBAAiE,CAAC;AACzD,QAAA,wBAAwB,GAAG,IAAI,OAAO,CAAoB,KAAK,EAAE,OAAO,EAAE,EAAE;IACvF,wBAAwB,GAAG,OAAO,CAAC;AACrC,CAAC,CAAC,CAAC;AAEH,IAAI,6BAAyC,CAAC;AACjC,QAAA,6BAA6B,GAAG,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;IACvE,6BAA6B,GAAG,OAAO,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEI,KAAK,UAAU,oBAAoB,CACxC,MAAc,EACd,aAA2C,EAC3C,eAAmD,EACnD,OAAgB,EAChB,YAA4C;IAE5C,IAAA,sBAAU,EAAC,OAAO,CAAC,CAAC;IACpB,IAAA,6BAAiB,EAAC,OAAO,CAAC,CAAC;IAC3B,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAA+B,CAAC;IACpE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE3C,MAAM,0BAA0B,GAAG,CAAC,OAAgB,EAAE,EAAE;QACtD,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,mBAAmB,GAAG,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5D,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,IAAI,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC/B,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC5B,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC5B,CAAC;YACD,mBAAmB,GAAG,IAAI,+BAAmB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACtD,oBAAoB,CAAC,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,mBAAmB,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAsB,CAAC,QAAwB,EAAE,MAAuB,EAAE,OAAgB,EAAoB,EAAE;QACrI,MAAM,mBAAmB,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;QAChE,MAAM,aAAa,GAAG,IAAI,yBAAa,CAAC,mBAAmB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAClF,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACvB,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,MAAM,sBAAsB,GAAqB,IAAI,kCAAsB,CAAC,aAAa,CAAC,CAAC;QAC3F,IAAI,iBAAyC,CAAC;QAC9C,yCAAyC;QACzC,IAAI,QAAQ,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACvC,iBAAiB,GAAG,IAAI,kDAAsB,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,CAAC;QAC9F,CAAC;aAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACxC,iBAAiB,GAAG,IAAI,wDAAyB,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,CAAC;QACjG,CAAC;aAAM,CAAC;YACN,iBAAiB,GAAG,IAAI,uCAAiB,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,CAAC;QACzF,CAAC;QACD,wFAAwF;QACxF,iBAAiB,CAAC,mBAAmB,EAAE,CAAC;QACxC,OAAO,iBAAiB,CAAC;IAC3B,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,IAAI,uBAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC/D,IAAA,0BAAc,EAAC,WAAW,CAAC,CAAC;IAC5B,IAAI,CAAC;QACH,IAAI,0BAAc,KAAK,eAAe,EAAE,CAAC;YACvC,eAAe,CAAC,WAAW,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,GAAG,EAAE,OAAO,KAAK,6DAA6D,EAAE,CAAC;YACnF,iIAAiI;QACnI,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,MAAM,WAAW,CAAC,cAAc,CAAC;IAEjC,IAAI,IAAA,gBAAI,EAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAChC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,SAAU,CAAA;QAC1C,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,EAAE,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAChG,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;SAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC;QACnC,+CAA+C;QAC/C,WAAW,CAAC,QAAQ,CAAC,IAAA,iBAAK,GAAE,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE;QACrC,QAAQ,EAAE,WAAW,CAAC,MAAM;QAC5B,YAAY,EAAE,WAAW,CAAC,QAAQ,EAAE;KACrC,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,IAAA,uBAAW,EAAC,MAAM,YAAY,EAAE,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,CAAgC,GAAM,EAAE,EAAE;QAC3D,OAAO,IAAA,gCAAoB,EAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,IAAI,kBAAM,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;IAEjF,MAAM,iBAAiB,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;QAClD,MAAM,kBAAkB,GAAG,MAAM,IAAA,0BAAc,EAAC,WAAW,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,kBAAkB,OAAO,EAAE,EAAE,CAAC,CAAC;QAC5H,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,uCAAuC,OAAO,EAAE,CAAC,CAAA;QACnE,CAAC;QACD,MAAM,cAAc,GAAG,IAAA,uBAAW,EAAC,kBAAkB,CAAC,KAAK,CAAC,KAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACpF,IAAI,CAAC,cAAc,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;QACvD,CAAC;QACD,OAAO,cAAc,CAAC;IACxB,CAAC,CAAA;IAED,MAAM,iBAAiB,GAAG,IAAI,sCAAiB,CAC7C,WAAW,EACX,0BAA0B,EAC1B,WAAW,EACX,iBAAiB,CAClB,CAAC;IAEF,0BAAc,CAAC,sBAAsB,GAAG,KAAK,IAAI,EAAE;QACjD,MAAM,UAAU,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC1F,MAAM,UAAU,CAAC,sBAAsB,EAAE,CAAC;IAC5C,CAAC,CAAA;IAED,yBAAa,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAC/C,uBAAW,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC3C,6BAAiB,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;IACvD,sBAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,WAAW,CAAC,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACxD,MAAM,WAAW,CAAC,eAAe,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;IAElE,qEAAqE;IACrE,MAAM,aAAa,GAAG,IAAA,kBAAM,EAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAC1D,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;QACxC,IAAI,GAAG,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;YACvC,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,EAAE,GAAQ,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACtC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC;oBACf,EAAE,CAAC,MAAM,EAAE,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;IAC5C,6BAA6B,EAAE,CAAC;IAEhC,OAAO,WAAW,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
@@ -270,6 +270,15 @@ class SyncGroup {
270
270
  if (connection?.timestampLastApplied && networkInfoStart.timestampLastApplied <= connection.timestampLastApplied) {
271
271
  return; // already synced
272
272
  }
273
+ // // this is a hacky test to make sure connections can deal with incredibly large RPC args and results
274
+ // const t0 = Date.now();
275
+ // const results = await remoteDevice.listChanges();
276
+ // const t1 = Date.now();
277
+ // console.log(`transferred all changes (cnt: ${results.length}) in ${t1 - t0}ms`);
278
+ // const results2 = await remoteDevice.listChanges({ changeId: {$nin: results.map(c => c.changeId) }});
279
+ // const t2 = Date.now();
280
+ // console.log(`queried with array of all id changes in ${t2 - t1}ms (cnt: ${results2.length})`);
281
+ const startTime = Date.now();
273
282
  const batchSize = (0, lodash_1.clamp)(opts?.pageSize ?? SyncGroup.CHANGES_PAGE_SIZE, 2, 1000);
274
283
  const changeCursor = (0, peers_sdk_1.dataSourceCursor)({
275
284
  primaryKeyName: 'changeId',
@@ -289,18 +298,20 @@ class SyncGroup {
289
298
  );
290
299
  const changeBatch = [];
291
300
  let maxTimestampApplied = syncInfo.timestampAppliedLast;
301
+ let totalChangesSynced = 0;
292
302
  const applyBatch = async () => {
293
303
  if (changeBatch.length) {
294
304
  maxTimestampApplied = (0, lodash_1.max)([maxTimestampApplied, ...changeBatch.map(c => c.appliedAt)]);
295
305
  const sTime = Date.now();
296
306
  await this.applyChanges(changeBatch, remoteDevice);
307
+ totalChangesSynced += changeBatch.length;
297
308
  changeBatch.length = 0;
298
309
  const applyTime = Date.now() - sTime;
299
310
  // Give an equal amount of time for other work as applying changes
300
311
  // TODO try to do syncing in a worker thread
301
- if (applyTime > 50) {
312
+ if (applyTime > 100) {
302
313
  console.warn(`Syncing changes batch is taking a long time (${applyTime}ms), sleeping a bit to let other work happen`);
303
- await (0, peers_sdk_1.sleep)(Math.min(applyTime, 100));
314
+ await (0, peers_sdk_1.sleep)(100);
304
315
  }
305
316
  }
306
317
  };
@@ -311,6 +322,7 @@ class SyncGroup {
311
322
  }
312
323
  }
313
324
  await applyBatch();
325
+ console.log(`Sync finished for group ${this.dataContext.dataContextId}: ${totalChangesSynced} items, ${Date.now() - startTime}ms`);
314
326
  // NOTE: we don't update timestampAppliedLast until after all changes are applied
315
327
  // if something breaks in the middle, we'll have to reapply all changes
316
328
  syncInfo.timestampAppliedLast = maxTimestampApplied;