@peers-app/peers-device 0.7.23 → 0.7.25

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.
Files changed (30) hide show
  1. package/dist/connection-manager/connection-manager-priorities.d.ts +5 -5
  2. package/dist/connection-manager/connection-manager-priorities.js +11 -11
  3. package/dist/connection-manager/connection-manager-priorities.js.map +1 -1
  4. package/dist/connection-manager/connection-manager-priorities.test.js +33 -33
  5. package/dist/connection-manager/connection-manager-priorities.test.js.map +1 -1
  6. package/dist/connection-manager/connection-manager.d.ts +8 -8
  7. package/dist/connection-manager/connection-manager.js +114 -38
  8. package/dist/connection-manager/connection-manager.js.map +1 -1
  9. package/dist/connection-manager/connection-manager.test.js +181 -1
  10. package/dist/connection-manager/connection-manager.test.js.map +1 -1
  11. package/dist/index.d.ts +1 -1
  12. package/dist/index.js +1 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/machine-stats.js +103 -3
  15. package/dist/machine-stats.js.map +1 -1
  16. package/dist/pvars.tracked-data-source.js +1 -1
  17. package/dist/pvars.tracked-data-source.js.map +1 -1
  18. package/dist/{sync-device.d.ts → sync-group.d.ts} +2 -2
  19. package/dist/{sync-device.js → sync-group.js} +54 -30
  20. package/dist/sync-group.js.map +1 -0
  21. package/dist/{sync-device.test.js → sync-group.test.js} +31 -31
  22. package/dist/sync-group.test.js.map +1 -0
  23. package/dist/tracked-data-source.js +14 -2
  24. package/dist/tracked-data-source.js.map +1 -1
  25. package/dist/tracked-data-source.test.js +1 -1
  26. package/dist/tracked-data-source.test.js.map +1 -1
  27. package/package.json +3 -3
  28. package/dist/sync-device.js.map +0 -1
  29. package/dist/sync-device.test.js.map +0 -1
  30. /package/dist/{sync-device.test.d.ts → sync-group.test.d.ts} +0 -0
@@ -1,16 +1,16 @@
1
1
  import { Connection, IDeviceConnection } from "@peers-app/peers-sdk";
2
- import type { SyncDevice } from "../sync-device";
2
+ import type { SyncGroup } from "../sync-group";
3
3
  import type { IConnectionState } from "./connection-state.type";
4
- export declare function getConnectionManagerPreferredDeviceIds(devices: SyncDevice[]): {
4
+ export declare function getConnectionManagerPreferredDeviceIds(syncGroups: SyncGroup[]): {
5
5
  preferredDeviceIds: string[];
6
6
  preferredByDeviceIds: string[];
7
7
  };
8
- export declare function getLeastPreferredManagerConnection(devices: SyncDevice[], connectionStates: Map<Connection, IConnectionState>): Connection | IDeviceConnection | undefined;
8
+ export declare function getLeastPreferredManagerConnection(syncGroups: SyncGroup[], connectionStates: Map<Connection, IConnectionState>): Connection | IDeviceConnection | undefined;
9
9
  /**
10
10
  * TODO: Mostly a copy of above but still needs to
11
- * @param devices
11
+ * @param syncGroups
12
12
  * @returns
13
13
  */
14
- export declare function reduceDeviceConnections(devices: SyncDevice[]): (IDeviceConnection & {
14
+ export declare function reduceDeviceConnections(syncGroups: SyncGroup[]): (IDeviceConnection & {
15
15
  groups: string[];
16
16
  })[];
@@ -5,11 +5,11 @@ exports.getLeastPreferredManagerConnection = getLeastPreferredManagerConnection;
5
5
  exports.reduceDeviceConnections = reduceDeviceConnections;
6
6
  const peers_sdk_1 = require("@peers-app/peers-sdk");
7
7
  const lodash_1 = require("lodash");
8
- function getConnectionManagerPreferredDeviceIds(devices) {
8
+ function getConnectionManagerPreferredDeviceIds(syncGroups) {
9
9
  const preferredDeviceIds = new Set();
10
10
  const preferredByDeviceIds = new Set();
11
- for (const device of devices) {
12
- const priorityDeviceIds = device.priorityDeviceIds;
11
+ for (const syncGroup of syncGroups) {
12
+ const priorityDeviceIds = syncGroup.priorityDeviceIds;
13
13
  priorityDeviceIds.preferredByDeviceIds.forEach(id => preferredByDeviceIds.add(id));
14
14
  priorityDeviceIds.preferredDeviceIds.forEach(id => preferredDeviceIds.add(id));
15
15
  }
@@ -18,7 +18,7 @@ function getConnectionManagerPreferredDeviceIds(devices) {
18
18
  preferredByDeviceIds: Array.from(preferredByDeviceIds),
19
19
  };
20
20
  }
21
- function getLeastPreferredManagerConnection(devices, connectionStates) {
21
+ function getLeastPreferredManagerConnection(syncGroups, connectionStates) {
22
22
  // first check if there are connections that we don't share any groups with (aren't mapped to a group device)
23
23
  // if there are any, randomly remove one
24
24
  const nullGroupConnections = [];
@@ -33,7 +33,7 @@ function getLeastPreferredManagerConnection(devices, connectionStates) {
33
33
  // all connections share at least one group with this device, use priority logic
34
34
  const connections = new Map();
35
35
  const deviceConnectionMap = new Map();
36
- for (const device of devices) {
36
+ for (const device of syncGroups) {
37
37
  const deviceConnections = device.getConnections();
38
38
  for (const _connection of deviceConnections) {
39
39
  let connection = connections.get(_connection.deviceId);
@@ -52,7 +52,7 @@ function getLeastPreferredManagerConnection(devices, connectionStates) {
52
52
  connection.latencyMs * (connection.groups.length - 1) + connection.latencyMs / connection.groups.length;
53
53
  }
54
54
  }
55
- const { preferredDeviceIds, preferredByDeviceIds } = getConnectionManagerPreferredDeviceIds(devices);
55
+ const { preferredDeviceIds, preferredByDeviceIds } = getConnectionManagerPreferredDeviceIds(syncGroups);
56
56
  const leastPreferred = (0, peers_sdk_1.getLeastPreferredConnection)({
57
57
  connections: Array.from(connections.values()),
58
58
  preferredDeviceIds,
@@ -68,14 +68,14 @@ function getLeastPreferredManagerConnection(devices, connectionStates) {
68
68
  }
69
69
  /**
70
70
  * TODO: Mostly a copy of above but still needs to
71
- * @param devices
71
+ * @param syncGroups
72
72
  * @returns
73
73
  */
74
- function reduceDeviceConnections(devices) {
74
+ function reduceDeviceConnections(syncGroups) {
75
75
  const connections = new Map();
76
76
  const deviceConnectionMap = new Map();
77
- for (const device of devices) {
78
- const deviceConnections = device.getConnections();
77
+ for (const syncGroup of syncGroups) {
78
+ const deviceConnections = syncGroup.getConnections();
79
79
  for (const _connection of deviceConnections) {
80
80
  let connection = connections.get(_connection.deviceId);
81
81
  if (!connection) {
@@ -83,7 +83,7 @@ function reduceDeviceConnections(devices) {
83
83
  connections.set(_connection.deviceId, connection);
84
84
  }
85
85
  deviceConnectionMap.set(_connection, connection);
86
- const groupId = device.dataContext.dataContextId;
86
+ const groupId = syncGroup.dataContext.dataContextId;
87
87
  if (!connection.groups.includes(groupId)) {
88
88
  connection.groups.push(groupId);
89
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"connection-manager-priorities.js","sourceRoot":"","sources":["../../src/connection-manager/connection-manager-priorities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection-manager-priorities.js","sourceRoot":"","sources":["../../src/connection-manager/connection-manager-priorities.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const peers_sdk_1 = require("@peers-app/peers-sdk");
4
- const sync_device_1 = require("../sync-device");
4
+ const sync_group_1 = require("../sync-group");
5
5
  const local_data_source_1 = require("../local.data-source");
6
6
  const tracked_data_source_1 = require("../tracked-data-source");
7
7
  const connection_manager_priorities_1 = require("./connection-manager-priorities");
8
8
  describe("getLeastPreferredManagerConnection", () => {
9
- const devices = [];
9
+ const syncGroups = [];
10
10
  afterAll(async () => {
11
- await Promise.all(devices.map(d => d.dispose()));
11
+ await Promise.all(syncGroups.map(d => d.dispose()));
12
12
  });
13
- function createMockDeviceSync(userId = (0, peers_sdk_1.newid)(), deviceId = (0, peers_sdk_1.newid)(), groupId = (0, peers_sdk_1.newid)()) {
13
+ function createMockSyncGroup(userId = (0, peers_sdk_1.newid)(), deviceId = (0, peers_sdk_1.newid)(), groupId = (0, peers_sdk_1.newid)()) {
14
14
  const db = new local_data_source_1.DBLocal(':memory:');
15
15
  const changeTrackingTable = new peers_sdk_1.ChangeTrackingTable({ db });
16
16
  const mockUserContext = {
@@ -30,9 +30,9 @@ describe("getLeastPreferredManagerConnection", () => {
30
30
  get: () => groupId,
31
31
  configurable: true
32
32
  });
33
- const deviceSync = new sync_device_1.SyncDevice(dataContext, changeTrackingTable);
34
- devices.push(deviceSync);
35
- return deviceSync;
33
+ const syncGroup = new sync_group_1.SyncGroup(dataContext, changeTrackingTable);
34
+ syncGroups.push(syncGroup);
35
+ return syncGroup;
36
36
  }
37
37
  function createMockConnection(deviceId, errorRate = 0, latencyMs = 10, timestampLastApplied = Date.now()) {
38
38
  return {
@@ -66,8 +66,8 @@ describe("getLeastPreferredManagerConnection", () => {
66
66
  expect(result).toBeUndefined();
67
67
  });
68
68
  it("should return undefined when devices have no connections", () => {
69
- const device1 = createMockDeviceSync();
70
- const device2 = createMockDeviceSync();
69
+ const device1 = createMockSyncGroup();
70
+ const device2 = createMockSyncGroup();
71
71
  jest.spyOn(device1, 'getConnections').mockReturnValue([]);
72
72
  jest.spyOn(device2, 'getConnections').mockReturnValue([]);
73
73
  const connectionStates = new Map();
@@ -76,7 +76,7 @@ describe("getLeastPreferredManagerConnection", () => {
76
76
  });
77
77
  describe("null group connections (connections without any shared groups)", () => {
78
78
  it("should prioritize removing null group connections over regular connections", () => {
79
- const device1 = createMockDeviceSync("user1", "device1", "group1");
79
+ const device1 = createMockSyncGroup("user1", "device1", "group1");
80
80
  const connection1 = createMockConnection("remote1", 0.9, 500); // High error rate but in a group
81
81
  jest.spyOn(device1, 'getConnections').mockReturnValue([connection1]);
82
82
  jest.spyOn(device1, 'priorityDeviceIds', 'get').mockReturnValue({
@@ -96,7 +96,7 @@ describe("getLeastPreferredManagerConnection", () => {
96
96
  expect(result).toBe(socketConn2);
97
97
  });
98
98
  it("should randomly select one null group connection when multiple exist", () => {
99
- const device1 = createMockDeviceSync("user1", "device1", "group1");
99
+ const device1 = createMockSyncGroup("user1", "device1", "group1");
100
100
  jest.spyOn(device1, 'getConnections').mockReturnValue([]);
101
101
  jest.spyOn(device1, 'priorityDeviceIds', 'get').mockReturnValue({
102
102
  preferredDeviceIds: [],
@@ -117,7 +117,7 @@ describe("getLeastPreferredManagerConnection", () => {
117
117
  expect([socketConn1, socketConn2, socketConn3]).toContain(result);
118
118
  });
119
119
  it("should fall back to priority logic when no null group connections exist", () => {
120
- const device1 = createMockDeviceSync("user1", "device1", "group1");
120
+ const device1 = createMockSyncGroup("user1", "device1", "group1");
121
121
  const connection1 = createMockConnection("remote1", 0.5, 100);
122
122
  jest.spyOn(device1, 'getConnections').mockReturnValue([connection1]);
123
123
  jest.spyOn(device1, 'priorityDeviceIds', 'get').mockReturnValue({
@@ -135,7 +135,7 @@ describe("getLeastPreferredManagerConnection", () => {
135
135
  expect(result).toBe(connection1);
136
136
  });
137
137
  it("should handle empty connectionStates map", () => {
138
- const device1 = createMockDeviceSync("user1", "device1", "group1");
138
+ const device1 = createMockSyncGroup("user1", "device1", "group1");
139
139
  const connection1 = createMockConnection("remote1", 0.5, 100);
140
140
  jest.spyOn(device1, 'getConnections').mockReturnValue([connection1]);
141
141
  jest.spyOn(device1, 'priorityDeviceIds', 'get').mockReturnValue({
@@ -150,8 +150,8 @@ describe("getLeastPreferredManagerConnection", () => {
150
150
  });
151
151
  });
152
152
  it("should return connection with highest error rate when no preferences", () => {
153
- const device1 = createMockDeviceSync("user1", "device1", "group1");
154
- const device2 = createMockDeviceSync("user1", "device1", "group2");
153
+ const device1 = createMockSyncGroup("user1", "device1", "group1");
154
+ const device2 = createMockSyncGroup("user1", "device1", "group2");
155
155
  const connection1 = createMockConnection("remote1", 0.1, 100);
156
156
  const connection2 = createMockConnection("remote1", 0.2, 200);
157
157
  const connection3 = createMockConnection("remote2", 0.5, 50);
@@ -176,8 +176,8 @@ describe("getLeastPreferredManagerConnection", () => {
176
176
  expect(deviceConn.errorRate).toBe(0.5);
177
177
  });
178
178
  it("should aggregate same device across multiple groups", () => {
179
- const device1 = createMockDeviceSync("user1", "device1", "group1");
180
- const device2 = createMockDeviceSync("user1", "device1", "group2");
179
+ const device1 = createMockSyncGroup("user1", "device1", "group1");
180
+ const device2 = createMockSyncGroup("user1", "device1", "group2");
181
181
  // Same remote device connected to both groups with different metrics
182
182
  const connection1 = createMockConnection("remote1", 0.1, 100);
183
183
  const connection2 = createMockConnection("remote1", 0.3, 200);
@@ -203,7 +203,7 @@ describe("getLeastPreferredManagerConnection", () => {
203
203
  expect([connection1, connection2]).toContain(result);
204
204
  });
205
205
  it("should respect priority device preferences", () => {
206
- const device1 = createMockDeviceSync("user1", "device1", "group1");
206
+ const device1 = createMockSyncGroup("user1", "device1", "group1");
207
207
  const connection1 = createMockConnection("remote1", 0.1, 100);
208
208
  const connection2 = createMockConnection("remote2", 0.5, 200); // Higher error rate
209
209
  const connection3 = createMockConnection("remote3", 0.2, 150);
@@ -222,7 +222,7 @@ describe("getLeastPreferredManagerConnection", () => {
222
222
  expect(deviceConn1.errorRate).toBe(0.5);
223
223
  });
224
224
  it("should handle single device with multiple connections", () => {
225
- const device1 = createMockDeviceSync("user1", "device1", "group1");
225
+ const device1 = createMockSyncGroup("user1", "device1", "group1");
226
226
  const connection1 = createMockConnection("remote1", 0.1, 100);
227
227
  const connection2 = createMockConnection("remote2", 0.5, 200);
228
228
  const connection3 = createMockConnection("remote3", 0.2, 150);
@@ -241,7 +241,7 @@ describe("getLeastPreferredManagerConnection", () => {
241
241
  expect(deviceConn2.errorRate).toBe(0.5);
242
242
  });
243
243
  it("should handle empty connections gracefully", () => {
244
- const device1 = createMockDeviceSync("user1", "device1", "group1");
244
+ const device1 = createMockSyncGroup("user1", "device1", "group1");
245
245
  jest.spyOn(device1, 'getConnections').mockReturnValue([]);
246
246
  jest.spyOn(device1, 'priorityDeviceIds', 'get').mockReturnValue({
247
247
  preferredDeviceIds: [],
@@ -253,9 +253,9 @@ describe("getLeastPreferredManagerConnection", () => {
253
253
  expect(result).toBeUndefined();
254
254
  });
255
255
  it("should properly average metrics for same device across groups", () => {
256
- const device1 = createMockDeviceSync("user1", "device1", "group1");
257
- const device2 = createMockDeviceSync("user1", "device1", "group2");
258
- const device3 = createMockDeviceSync("user1", "device1", "group3");
256
+ const device1 = createMockSyncGroup("user1", "device1", "group1");
257
+ const device2 = createMockSyncGroup("user1", "device1", "group2");
258
+ const device3 = createMockSyncGroup("user1", "device1", "group3");
259
259
  // Same device across three groups with varying metrics
260
260
  const connection1 = createMockConnection("remote1", 0.1, 100);
261
261
  const connection2 = createMockConnection("remote1", 0.2, 200);
@@ -287,9 +287,9 @@ describe("getLeastPreferredManagerConnection", () => {
287
287
  expect([connection1, connection2, connection3]).toContain(result);
288
288
  });
289
289
  it("should merge priority device IDs from all groups", () => {
290
- const device1 = createMockDeviceSync("user1", "device1", "group1");
291
- const device2 = createMockDeviceSync("user1", "device1", "group2");
292
- const device3 = createMockDeviceSync("user1", "device1", "group3");
290
+ const device1 = createMockSyncGroup("user1", "device1", "group1");
291
+ const device2 = createMockSyncGroup("user1", "device1", "group2");
292
+ const device3 = createMockSyncGroup("user1", "device1", "group3");
293
293
  const connection1 = createMockConnection("remote1", 0.1, 100);
294
294
  const connection2 = createMockConnection("remote2", 0.2, 200);
295
295
  const connection3 = createMockConnection("remote3", 0.3, 150);
@@ -322,9 +322,9 @@ describe("getLeastPreferredManagerConnection", () => {
322
322
  expect(deviceConn4.errorRate).toBe(0.8);
323
323
  });
324
324
  it("should prefer removing connections with fewer groups over those with more groups", () => {
325
- const device1 = createMockDeviceSync("user1", "device1", "group1");
326
- const device2 = createMockDeviceSync("user1", "device1", "group2");
327
- const device3 = createMockDeviceSync("user1", "device1", "group3");
325
+ const device1 = createMockSyncGroup("user1", "device1", "group1");
326
+ const device2 = createMockSyncGroup("user1", "device1", "group2");
327
+ const device3 = createMockSyncGroup("user1", "device1", "group3");
328
328
  // remote1: connected to all 3 groups (most critical)
329
329
  const connection1a = createMockConnection("remote1", 0.1, 100);
330
330
  const connection1b = createMockConnection("remote1", 0.1, 100);
@@ -361,8 +361,8 @@ describe("getLeastPreferredManagerConnection", () => {
361
361
  expect(deviceConn5.deviceId).toBe("remote3");
362
362
  });
363
363
  it("should prefer connections with fewer groups even when they have lower error rates", () => {
364
- const device1 = createMockDeviceSync("user1", "device1", "group1");
365
- const device2 = createMockDeviceSync("user1", "device1", "group2");
364
+ const device1 = createMockSyncGroup("user1", "device1", "group1");
365
+ const device2 = createMockSyncGroup("user1", "device1", "group2");
366
366
  // remote1: connected to both groups with low error rate
367
367
  const connection1a = createMockConnection("remote1", 0.1, 100);
368
368
  const connection1b = createMockConnection("remote1", 0.1, 100);
@@ -389,7 +389,7 @@ describe("getLeastPreferredManagerConnection", () => {
389
389
  expect(deviceConn6.errorRate).toBe(0);
390
390
  });
391
391
  it("should use error rate as tiebreaker when group counts are equal", () => {
392
- const device1 = createMockDeviceSync("user1", "device1", "group1");
392
+ const device1 = createMockSyncGroup("user1", "device1", "group1");
393
393
  // Both connections are only in 1 group, so should use error rate to decide
394
394
  const connection1 = createMockConnection("remote1", 0.1, 100); // Lower error rate
395
395
  const connection2 = createMockConnection("remote2", 0.5, 200); // Higher error rate
@@ -433,7 +433,7 @@ describe("getPreferredDeviceIds", () => {
433
433
  get: () => groupId,
434
434
  configurable: true
435
435
  });
436
- const deviceSync = new sync_device_1.SyncDevice(dataContext, changeTrackingTable);
436
+ const deviceSync = new sync_group_1.SyncGroup(dataContext, changeTrackingTable);
437
437
  devices.push(deviceSync);
438
438
  return deviceSync;
439
439
  }
@@ -1 +1 @@
1
- {"version":3,"file":"connection-manager-priorities.test.js","sourceRoot":"","sources":["../../src/connection-manager/connection-manager-priorities.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection-manager-priorities.test.js","sourceRoot":"","sources":["../../src/connection-manager/connection-manager-priorities.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { ChangeTrackingTable, Connection, DataContext, IDeviceMessage, IFileChunkInfo, INetworkInfo, Observable, UserContext } from "@peers-app/peers-sdk";
2
2
  import { ChunkDownloadManager } from "../chunk-download-manager";
3
- import { SyncDevice } from "../sync-device";
3
+ import { SyncGroup } from "../sync-group";
4
4
  interface IDownloadDevice {
5
5
  userId: string;
6
6
  deviceId: string;
@@ -15,17 +15,20 @@ export declare class ConnectionManager {
15
15
  MAX_CONNECTIONS_TO_FORWARD_MESSAGES_TO: number;
16
16
  MAX_DEVICE_MESSAGE_SIZE: number;
17
17
  readonly chunkDownloadManager: ChunkDownloadManager;
18
- private syncDevices;
18
+ private syncGroups;
19
19
  private connectionStates;
20
20
  private deviceSyncConnections;
21
21
  private groupMemberSubscriptionCleanups;
22
22
  private allConnections;
23
23
  private cleanOldDeviceMessagesSeenInterval;
24
+ private pingInterval;
24
25
  private deviceMessageHandlers;
26
+ private connectionMetrics;
25
27
  readonly onConnectionAdded: Observable<Connection | undefined>;
26
28
  readonly onConnectionRemoved: Observable<Connection | undefined>;
27
29
  constructor(userContext: UserContext, changeTrackingTableFactory: (groupId?: string) => ChangeTrackingTable);
28
30
  cleanOldDeviceMessagesSeen(): void;
31
+ private pingAllConnections;
29
32
  /**
30
33
  * Register a handler for device messages with a specific payload type
31
34
  * @param deviceMessageType The payload type to handle (e.g., 'webrtc-offer')
@@ -43,11 +46,11 @@ export declare class ConnectionManager {
43
46
  private getConnectionState;
44
47
  addConnection(connection: Connection): Promise<void>;
45
48
  removeConnection(connection: Connection): Promise<void>;
46
- getPeerGroupDevice(dataContext: DataContext): SyncDevice;
49
+ getPeerGroupDevice(dataContext: DataContext): SyncGroup;
47
50
  downloadFileChunk(chunkHash: string): Promise<Uint8Array | null>;
48
51
  getFileChunkInfo(chunkHash: string): Promise<IFileChunkInfo>;
49
52
  getDownloadDevices(): IDownloadDevice[];
50
- removeLeastPreferredConnection(): void;
53
+ removeLeastPreferredConnection(): Promise<void>;
51
54
  private readonly deviceMessagesSeen;
52
55
  sendDeviceMessage(partialMessage: Pick<IDeviceMessage, 'toDeviceId' | 'dataContextId' | 'payload'> & Partial<IDeviceMessage>): Promise<any>;
53
56
  private forwardDeviceMessageAndReturnFirstResponse;
@@ -59,11 +62,8 @@ export declare class ConnectionManager {
59
62
  dispose(): Promise<void>;
60
63
  getConnectionIndirectRemoteDeviceIds(connection: Connection, excludeDeviceIds?: string[]): string[];
61
64
  getPathToDevice(deviceId: string): {
62
- pathType: "direct" | "indirect" | "unknown";
63
- throughDeviceIds: string[];
64
- } | {
65
65
  pathType: string;
66
- throughDeviceIds: never[];
66
+ throughDeviceIds: string[];
67
67
  };
68
68
  }
69
69
  export {};