@dxos/network-manager 2.33.9-dev.9246a07b → 2.33.9-dev.9bbef4e2
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/src/network-manager.blueprint-test.d.ts +3 -1
- package/dist/src/network-manager.blueprint-test.d.ts.map +1 -1
- package/dist/src/network-manager.blueprint-test.js +46 -17
- package/dist/src/network-manager.blueprint-test.js.map +1 -1
- package/dist/src/network-manager.browser-test.js +1 -1
- package/dist/src/network-manager.browser-test.js.map +1 -1
- package/dist/src/network-manager.d.ts.map +1 -1
- package/dist/src/network-manager.js +6 -6
- package/dist/src/network-manager.js.map +1 -1
- package/dist/src/network-manager.test.js +5 -4
- package/dist/src/network-manager.test.js.map +1 -1
- package/dist/src/proto/gen/dxos/credentials.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/halo/keys.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/halo/keys.js.map +1 -1
- package/dist/src/proto/gen/dxos/mesh/signal.d.ts +52 -45
- package/dist/src/proto/gen/dxos/mesh/signal.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/mesh/signalMessage.d.ts +79 -0
- package/dist/src/proto/gen/dxos/mesh/signalMessage.d.ts.map +1 -0
- package/dist/src/proto/gen/dxos/mesh/signalMessage.js +3 -0
- package/dist/src/proto/gen/dxos/mesh/signalMessage.js.map +1 -0
- package/dist/src/proto/gen/google/protobuf.d.ts +6 -0
- package/dist/src/proto/gen/google/protobuf.d.ts.map +1 -1
- package/dist/src/proto/gen/index.d.ts +17 -5
- package/dist/src/proto/gen/index.d.ts.map +1 -1
- package/dist/src/proto/gen/index.js +1 -1
- package/dist/src/proto/gen/index.js.map +1 -1
- package/dist/src/proto/substitutions.d.ts +4 -0
- package/dist/src/proto/substitutions.d.ts.map +1 -1
- package/dist/src/proto/substitutions.js +3 -1
- package/dist/src/proto/substitutions.js.map +1 -1
- package/dist/src/signal/in-memory-signal-manager.d.ts +7 -7
- package/dist/src/signal/in-memory-signal-manager.d.ts.map +1 -1
- package/dist/src/signal/in-memory-signal-manager.js +29 -8
- package/dist/src/signal/in-memory-signal-manager.js.map +1 -1
- package/dist/src/signal/index.d.ts +1 -2
- package/dist/src/signal/index.d.ts.map +1 -1
- package/dist/src/signal/index.js +1 -2
- package/dist/src/signal/index.js.map +1 -1
- package/dist/src/signal/integration.test.d.ts +2 -0
- package/dist/src/signal/integration.test.d.ts.map +1 -0
- package/dist/src/signal/integration.test.js +102 -0
- package/dist/src/signal/integration.test.js.map +1 -0
- package/dist/src/signal/message-router.d.ts +7 -7
- package/dist/src/signal/message-router.d.ts.map +1 -1
- package/dist/src/signal/message-router.js +6 -1
- package/dist/src/signal/message-router.js.map +1 -1
- package/dist/src/signal/message-router.test.js +15 -19
- package/dist/src/signal/message-router.test.js.map +1 -1
- package/dist/src/signal/signal-client.d.ts +33 -18
- package/dist/src/signal/signal-client.d.ts.map +1 -1
- package/dist/src/signal/signal-client.js +102 -92
- package/dist/src/signal/signal-client.js.map +1 -1
- package/dist/src/signal/signal-client.test.js +60 -77
- package/dist/src/signal/signal-client.test.js.map +1 -1
- package/dist/src/signal/{websocket-signal-manager.d.ts → signal-manager-impl.d.ts} +13 -11
- package/dist/src/signal/signal-manager-impl.d.ts.map +1 -0
- package/dist/src/signal/signal-manager-impl.js +151 -0
- package/dist/src/signal/signal-manager-impl.js.map +1 -0
- package/dist/src/signal/signal-manager.d.ts +12 -11
- package/dist/src/signal/signal-manager.d.ts.map +1 -1
- package/dist/src/signal/signal-rpc-client.d.ts +19 -0
- package/dist/src/signal/signal-rpc-client.d.ts.map +1 -0
- package/dist/src/signal/signal-rpc-client.js +108 -0
- package/dist/src/signal/signal-rpc-client.js.map +1 -0
- package/dist/src/signal/signal-rpc-client.test.d.ts +2 -0
- package/dist/src/signal/signal-rpc-client.test.d.ts.map +1 -0
- package/dist/src/signal/signal-rpc-client.test.js +74 -0
- package/dist/src/signal/signal-rpc-client.test.js.map +1 -0
- package/dist/src/swarm/connection.d.ts +3 -3
- package/dist/src/swarm/connection.d.ts.map +1 -1
- package/dist/src/swarm/connection.js +1 -4
- package/dist/src/swarm/connection.js.map +1 -1
- package/dist/src/swarm/swarm.d.ts +6 -7
- package/dist/src/swarm/swarm.d.ts.map +1 -1
- package/dist/src/swarm/swarm.js +21 -17
- package/dist/src/swarm/swarm.js.map +1 -1
- package/dist/src/swarm/swarm.test.js +156 -117
- package/dist/src/swarm/swarm.test.js.map +1 -1
- package/dist/src/topology/fully-connected-topology.d.ts +0 -1
- package/dist/src/topology/fully-connected-topology.d.ts.map +1 -1
- package/dist/src/topology/fully-connected-topology.js +1 -6
- package/dist/src/topology/fully-connected-topology.js.map +1 -1
- package/dist/src/topology/mmst-topology.d.ts +0 -1
- package/dist/src/topology/mmst-topology.d.ts.map +1 -1
- package/dist/src/topology/mmst-topology.js +1 -6
- package/dist/src/topology/mmst-topology.js.map +1 -1
- package/dist/src/topology/star-topology.d.ts +0 -1
- package/dist/src/topology/star-topology.d.ts.map +1 -1
- package/dist/src/topology/star-topology.js +1 -6
- package/dist/src/topology/star-topology.js.map +1 -1
- package/dist/src/topology/topology.d.ts +0 -6
- package/dist/src/topology/topology.d.ts.map +1 -1
- package/dist/src/transport/in-memory-transport.d.ts +2 -2
- package/dist/src/transport/in-memory-transport.d.ts.map +1 -1
- package/dist/src/transport/in-memory-transport.js.map +1 -1
- package/dist/src/transport/transport.d.ts +3 -3
- package/dist/src/transport/transport.d.ts.map +1 -1
- package/dist/src/transport/webrtc-transport.d.ts +3 -3
- package/dist/src/transport/webrtc-transport.d.ts.map +1 -1
- package/dist/src/transport/webrtc-transport.js.map +1 -1
- package/dist/tests-setup.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +14 -12
- package/src/network-manager.blueprint-test.ts +57 -22
- package/src/network-manager.browser-test.ts +1 -1
- package/src/network-manager.test.ts +8 -7
- package/src/network-manager.ts +8 -9
- package/src/proto/defs/dxos/mesh/signal.proto +53 -35
- package/src/proto/defs/dxos/mesh/signalMessage.proto +51 -0
- package/src/proto/gen/dxos/credentials.ts +1 -0
- package/src/proto/gen/dxos/halo/keys.ts +1 -0
- package/src/proto/gen/dxos/mesh/signal.ts +51 -45
- package/src/proto/gen/dxos/mesh/signalMessage.ts +83 -0
- package/src/proto/gen/google/protobuf.ts +7 -0
- package/src/proto/gen/index.ts +18 -6
- package/src/proto/substitutions.ts +3 -1
- package/src/signal/in-memory-signal-manager.ts +37 -12
- package/src/signal/index.ts +1 -2
- package/src/signal/integration.test.ts +117 -0
- package/src/signal/message-router.test.ts +36 -41
- package/src/signal/message-router.ts +22 -18
- package/src/signal/signal-client.test.ts +70 -92
- package/src/signal/signal-client.ts +119 -113
- package/src/signal/signal-manager-impl.ts +166 -0
- package/src/signal/signal-manager.ts +12 -12
- package/src/signal/signal-rpc-client.test.ts +86 -0
- package/src/signal/signal-rpc-client.ts +121 -0
- package/src/swarm/connection.ts +5 -8
- package/src/swarm/swarm.test.ts +208 -169
- package/src/swarm/swarm.ts +24 -20
- package/src/topology/fully-connected-topology.ts +1 -9
- package/src/topology/mmst-topology.ts +1 -9
- package/src/topology/star-topology.ts +1 -7
- package/src/topology/topology.ts +0 -7
- package/src/transport/in-memory-transport.ts +2 -2
- package/src/transport/transport.ts +3 -3
- package/src/transport/webrtc-transport.ts +3 -3
- package/dist/browser-mocha/bundle.js +0 -119346
- package/dist/browser-mocha/main.js +0 -27
- package/dist/src/signal/websocket-rpc.d.ts +0 -30
- package/dist/src/signal/websocket-rpc.d.ts.map +0 -1
- package/dist/src/signal/websocket-rpc.js +0 -203
- package/dist/src/signal/websocket-rpc.js.map +0 -1
- package/dist/src/signal/websocket-signal-manager.d.ts.map +0 -1
- package/dist/src/signal/websocket-signal-manager.js +0 -134
- package/dist/src/signal/websocket-signal-manager.js.map +0 -1
- package/src/signal/websocket-rpc.ts +0 -208
- package/src/signal/websocket-signal-manager.ts +0 -158
|
@@ -11,15 +11,9 @@ import { SwarmController, Topology } from './topology';
|
|
|
11
11
|
export class FullyConnectedTopology implements Topology {
|
|
12
12
|
private _controller?: SwarmController;
|
|
13
13
|
|
|
14
|
-
private _intervalId?: NodeJS.Timeout;
|
|
15
|
-
|
|
16
14
|
init (controller: SwarmController): void {
|
|
17
15
|
assert(!this._controller, 'Already initialized');
|
|
18
16
|
this._controller = controller;
|
|
19
|
-
|
|
20
|
-
this._intervalId = setInterval(() => {
|
|
21
|
-
controller.lookup();
|
|
22
|
-
}, 10_000);
|
|
23
17
|
}
|
|
24
18
|
|
|
25
19
|
update (): void {
|
|
@@ -35,9 +29,7 @@ export class FullyConnectedTopology implements Topology {
|
|
|
35
29
|
}
|
|
36
30
|
|
|
37
31
|
async destroy (): Promise<void> {
|
|
38
|
-
|
|
39
|
-
clearInterval(this._intervalId);
|
|
40
|
-
}
|
|
32
|
+
// Nothing to do.
|
|
41
33
|
}
|
|
42
34
|
|
|
43
35
|
toString () {
|
|
@@ -36,8 +36,6 @@ export class MMSTTopology implements Topology {
|
|
|
36
36
|
|
|
37
37
|
private _controller?: SwarmController;
|
|
38
38
|
|
|
39
|
-
private _lookupIntervalId?: NodeJS.Timeout;
|
|
40
|
-
|
|
41
39
|
private _sampleCollected = false;
|
|
42
40
|
|
|
43
41
|
constructor ({
|
|
@@ -53,10 +51,6 @@ export class MMSTTopology implements Topology {
|
|
|
53
51
|
init (controller: SwarmController): void {
|
|
54
52
|
assert(!this._controller, 'Already initialized');
|
|
55
53
|
this._controller = controller;
|
|
56
|
-
|
|
57
|
-
this._lookupIntervalId = setInterval(() => {
|
|
58
|
-
controller.lookup();
|
|
59
|
-
}, 10_000);
|
|
60
54
|
}
|
|
61
55
|
|
|
62
56
|
update (): void {
|
|
@@ -79,9 +73,7 @@ export class MMSTTopology implements Topology {
|
|
|
79
73
|
}
|
|
80
74
|
|
|
81
75
|
async destroy (): Promise<void> {
|
|
82
|
-
|
|
83
|
-
clearInterval(this._lookupIntervalId);
|
|
84
|
-
}
|
|
76
|
+
// Nothing to do.
|
|
85
77
|
}
|
|
86
78
|
|
|
87
79
|
private _runAlgorithm () {
|
|
@@ -13,7 +13,6 @@ const log = debug('dxos:network-manager:topology:star');
|
|
|
13
13
|
|
|
14
14
|
export class StarTopology implements Topology {
|
|
15
15
|
private _controller?: SwarmController;
|
|
16
|
-
private _intervalId?: NodeJS.Timeout;
|
|
17
16
|
|
|
18
17
|
constructor (
|
|
19
18
|
private readonly _centralPeer: PublicKey
|
|
@@ -26,9 +25,6 @@ export class StarTopology implements Topology {
|
|
|
26
25
|
init (controller: SwarmController): void {
|
|
27
26
|
assert(!this._controller, 'Already initialized.');
|
|
28
27
|
this._controller = controller;
|
|
29
|
-
this._intervalId = setInterval(() => {
|
|
30
|
-
controller.lookup();
|
|
31
|
-
}, 10_000);
|
|
32
28
|
}
|
|
33
29
|
|
|
34
30
|
update (): void {
|
|
@@ -62,8 +58,6 @@ export class StarTopology implements Topology {
|
|
|
62
58
|
}
|
|
63
59
|
|
|
64
60
|
async destroy (): Promise<void> {
|
|
65
|
-
|
|
66
|
-
clearInterval(this._intervalId);
|
|
67
|
-
}
|
|
61
|
+
// Nothing to do.
|
|
68
62
|
}
|
|
69
63
|
}
|
package/src/topology/topology.ts
CHANGED
|
@@ -19,13 +19,6 @@ export interface SwarmController {
|
|
|
19
19
|
* Disconnect from a peer.
|
|
20
20
|
*/
|
|
21
21
|
disconnect(peer: PublicKey): void;
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Trigger a lookup of any other peers swarming on this topic.
|
|
25
|
-
*
|
|
26
|
-
* Updates will be propagated through `update` method.
|
|
27
|
-
*/
|
|
28
|
-
lookup(): void;
|
|
29
22
|
}
|
|
30
23
|
|
|
31
24
|
export interface SwarmState {
|
|
@@ -11,7 +11,7 @@ import { ErrorStream } from '@dxos/debug';
|
|
|
11
11
|
import { PublicKey } from '@dxos/protocols';
|
|
12
12
|
import { ComplexMap } from '@dxos/util';
|
|
13
13
|
|
|
14
|
-
import {
|
|
14
|
+
import { SignalMessage } from '../proto/gen/dxos/mesh/signalMessage';
|
|
15
15
|
import { Transport, TransportFactory } from './transport';
|
|
16
16
|
|
|
17
17
|
const log = debug('dxos:network-manager:swarm:transport:in-memory-transport');
|
|
@@ -79,7 +79,7 @@ export class InMemoryTransport implements Transport {
|
|
|
79
79
|
return this._sessionId;
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
async signal (msg:
|
|
82
|
+
async signal (msg: SignalMessage) {
|
|
83
83
|
// No-op.
|
|
84
84
|
}
|
|
85
85
|
|
|
@@ -6,7 +6,7 @@ import { Event } from '@dxos/async';
|
|
|
6
6
|
import { ErrorStream } from '@dxos/debug';
|
|
7
7
|
import { PublicKey } from '@dxos/protocols';
|
|
8
8
|
|
|
9
|
-
import {
|
|
9
|
+
import { SignalMessage } from '../proto/gen/dxos/mesh/signalMessage';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* Abstraction over a P2P connection transport. Currently either WebRTC or in-memory.
|
|
@@ -15,7 +15,7 @@ export interface Transport {
|
|
|
15
15
|
closed: Event
|
|
16
16
|
connected: Event
|
|
17
17
|
errors: ErrorStream
|
|
18
|
-
signal (msg:
|
|
18
|
+
signal (msg: SignalMessage): Promise<void> // TODO(burdon): Remove async?
|
|
19
19
|
close (): Promise<void>
|
|
20
20
|
}
|
|
21
21
|
|
|
@@ -38,7 +38,7 @@ export interface TransportOptions {
|
|
|
38
38
|
/**
|
|
39
39
|
* Send a signal message to remote peer.
|
|
40
40
|
*/
|
|
41
|
-
sendSignal: (msg:
|
|
41
|
+
sendSignal: (msg: SignalMessage) => Promise<void> // TODO(burdon): Remove async?
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
export type TransportFactory = (options: TransportOptions) => Transport
|
|
@@ -11,7 +11,7 @@ import { Event } from '@dxos/async';
|
|
|
11
11
|
import { ErrorStream } from '@dxos/debug';
|
|
12
12
|
import { PublicKey } from '@dxos/protocols';
|
|
13
13
|
|
|
14
|
-
import {
|
|
14
|
+
import { SignalMessage } from '../proto/gen/dxos/mesh/signalMessage';
|
|
15
15
|
import { Transport, TransportFactory } from './transport';
|
|
16
16
|
|
|
17
17
|
const log = debug('dxos:network-manager:swarm:transport:webrtc');
|
|
@@ -35,7 +35,7 @@ export class WebRTCTransport implements Transport {
|
|
|
35
35
|
private readonly _remoteId: PublicKey,
|
|
36
36
|
private readonly _sessionId: PublicKey,
|
|
37
37
|
private readonly _topic: PublicKey,
|
|
38
|
-
private readonly _sendSignal: (msg:
|
|
38
|
+
private readonly _sendSignal: (msg: SignalMessage) => void,
|
|
39
39
|
private readonly _webrtcConfig?: any
|
|
40
40
|
) {
|
|
41
41
|
log(`Created WebRTC connection ${this._ownId} -> ${this._remoteId} initiator=${this._initiator}`);
|
|
@@ -89,7 +89,7 @@ export class WebRTCTransport implements Transport {
|
|
|
89
89
|
return this._peer;
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
-
async signal (msg:
|
|
92
|
+
async signal (msg: SignalMessage) {
|
|
93
93
|
assert(this._peer, 'Connection not ready to accept signals.');
|
|
94
94
|
assert(msg.data?.signal?.json, 'Signal message must contain signal data.');
|
|
95
95
|
this._peer.signal(JSON.parse(msg.data.signal.json));
|