@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.
- package/dist/connection-manager/connection-manager.d.ts +10 -1
- package/dist/connection-manager/connection-manager.js +171 -13
- package/dist/connection-manager/connection-manager.js.map +1 -1
- package/dist/connection-manager/network-manager.d.ts +58 -0
- package/dist/connection-manager/network-manager.js +275 -0
- package/dist/connection-manager/network-manager.js.map +1 -0
- package/dist/connection-manager/protocol-manager.interface.d.ts +26 -0
- package/dist/connection-manager/protocol-manager.interface.js +3 -0
- package/dist/connection-manager/protocol-manager.interface.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/local.data-source.js +9 -6
- package/dist/local.data-source.js.map +1 -1
- package/dist/machine-stats.js +2 -10
- package/dist/machine-stats.js.map +1 -1
- package/dist/main.d.ts +2 -0
- package/dist/main.js +8 -1
- package/dist/main.js.map +1 -1
- package/dist/sync-group.js +14 -2
- package/dist/sync-group.js.map +1 -1
- package/dist/tracked-data-source.js +1 -1
- package/dist/tracked-data-source.js.map +1 -1
- package/dist/tracked-data-source.test.js +2 -1
- package/dist/tracked-data-source.test.js.map +1 -1
- package/package.json +3 -3
|
@@ -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 @@
|
|
|
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
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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":";;;;;;AACA,2BAA+B;AAC/B,gDAAwB;AAIxB,MAAM,UAAU,GAAG,GAAG,CAAC;AACvB,MAAM,OAAO,GAAG,YAAY,UAAU,SAAS,CAAC;AAEhD,MAAa,OAAO;IAMC;IACA;IALX,EAAE,GAAoB,IAAI,CAAC;IAC3B,UAAU,GAAoB,IAAI,CAAC;IAE3C,YACmB,KAAc,EACd,YAAoC;QADpC,UAAK,GAAL,KAAK,CAAS;QACd,iBAAY,GAAZ,YAAY,CAAwB;QAErD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"local.data-source.js","sourceRoot":"","sources":["../src/local.data-source.ts"],"names":[],"mappings":";;;;;;AACA,2BAA+B;AAC/B,gDAAwB;AAIxB,MAAM,UAAU,GAAG,GAAG,CAAC;AACvB,MAAM,OAAO,GAAG,YAAY,UAAU,SAAS,CAAC;AAEhD,MAAa,OAAO;IAMC;IACA;IALX,EAAE,GAAoB,IAAI,CAAC;IAC3B,UAAU,GAAoB,IAAI,CAAC;IAE3C,YACmB,KAAc,EACd,YAAoC;QADpC,UAAK,GAAL,KAAK,CAAS;QACd,iBAAY,GAAZ,YAAY,CAAwB;QAErD,yDAAyD;QACzD,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,OAAO,CAAC,EAAE,KAAK,UAAU,EAAE,CAAC;YACvE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;gBACtB,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;gBAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAY,UAAU;QACpB,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YAC9B,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,IAAK,SAAS,IAAI,aAAa,IAAI,GAAG,CAAC;QACjE,IAAA,cAAS,EAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,OAAO,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAEO,aAAa,GAAyB,IAAI,CAAC;IAC3C,KAAK,CAAC,MAAM;QAClB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,aAAa,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YACzD,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAC;gBAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;gBAC/B,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC;gBACtD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;gBAC9C,IAAI,SAAS,EAAE,CAAC;oBACd,EAAE,CAAC,MAAM,CAAC,QAAQ,SAAS,GAAG,CAAC,CAAC;gBAClC,CAAC;gBACD,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;gBAChC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;gBACb,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;oBAC1B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACN,MAAM,UAAU,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC;oBAC7D,IAAI,SAAS,EAAE,CAAC;wBACd,UAAU,CAAC,MAAM,CAAC,QAAQ,SAAS,GAAG,CAAC,CAAC;oBAC1C,CAAC;oBACD,UAAU,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;oBACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC/B,IAAI,EAAE,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;4BAC/B,MAAM;wBACR,CAAC;wBACD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;oBACxD,CAAC;oBACD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;gBAC/B,CAAC;gBACD,OAAO,EAAE,CAAC;YACZ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,CAAC,CAAC;gBACZ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC5B,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,SAAc,EAAE;QAC5C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,UAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAM,CAAC;QACxD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,oDAAoD;YACpD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,SAAc,EAAE;QAC5C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,UAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAQ,CAAC;QAC1D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,oDAAoD;YACpD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,SAAc,EAAE;QAC7C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,EAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,kEAAkE;YAClE,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,MAAM,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;QACvB,MAAM,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACf,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;CACF;AA5GD,0BA4GC"}
|
package/dist/machine-stats.js
CHANGED
|
@@ -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":";;;
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
package/dist/sync-group.js
CHANGED
|
@@ -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 >
|
|
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)(
|
|
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;
|