@dxos/network-manager 0.1.9 → 0.1.11
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/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/network-manager.d.ts +10 -14
- package/dist/src/network-manager.d.ts.map +1 -1
- package/dist/src/network-manager.js +28 -33
- package/dist/src/network-manager.js.map +1 -1
- package/dist/src/protocol-factory.d.ts.map +1 -1
- package/dist/src/protocol-factory.js +8 -6
- package/dist/src/protocol-factory.js.map +1 -1
- package/dist/src/signal/index.d.ts +2 -2
- package/dist/src/signal/index.d.ts.map +1 -1
- package/dist/src/signal/index.js +2 -2
- package/dist/src/signal/index.js.map +1 -1
- package/dist/src/signal/message-router.d.ts +2 -2
- package/dist/src/signal/message-router.js +3 -3
- package/dist/src/signal/message-router.js.map +1 -1
- package/dist/src/signal/{signal-messaging.d.ts → signal-messenger.d.ts} +2 -2
- package/dist/src/signal/{signal-messaging.d.ts.map → signal-messenger.d.ts.map} +1 -1
- package/dist/src/signal/{signal-messaging.js → signal-messenger.js} +1 -1
- package/dist/src/signal/signal-messenger.js.map +1 -0
- package/dist/src/swarm/connection.d.ts +6 -3
- package/dist/src/swarm/connection.d.ts.map +1 -1
- package/dist/src/swarm/connection.js +28 -15
- package/dist/src/swarm/connection.js.map +1 -1
- package/dist/src/swarm/peer.d.ts +45 -0
- package/dist/src/swarm/peer.d.ts.map +1 -0
- package/dist/src/swarm/peer.js +113 -0
- package/dist/src/swarm/peer.js.map +1 -0
- package/dist/src/swarm/swarm-mapper.d.ts +2 -2
- package/dist/src/swarm/swarm-mapper.d.ts.map +1 -1
- package/dist/src/swarm/swarm-mapper.js +12 -10
- package/dist/src/swarm/swarm-mapper.js.map +1 -1
- package/dist/src/swarm/swarm.d.ts +13 -18
- package/dist/src/swarm/swarm.d.ts.map +1 -1
- package/dist/src/swarm/swarm.js +126 -97
- package/dist/src/swarm/swarm.js.map +1 -1
- package/dist/src/swarm/swarm.test.js +2 -2
- package/dist/src/swarm/swarm.test.js.map +1 -1
- package/dist/src/testing/test-builder.d.ts +31 -18
- package/dist/src/testing/test-builder.d.ts.map +1 -1
- package/dist/src/testing/test-builder.js +120 -48
- package/dist/src/testing/test-builder.js.map +1 -1
- package/dist/src/testing/test-protocol.d.ts +5 -5
- package/dist/src/testing/test-protocol.d.ts.map +1 -1
- package/dist/src/testing/test-protocol.js +28 -24
- package/dist/src/testing/test-protocol.js.map +1 -1
- package/dist/src/tests/basic-test-suite.d.ts +6 -0
- package/dist/src/tests/basic-test-suite.d.ts.map +1 -0
- package/dist/src/tests/basic-test-suite.js +142 -0
- package/dist/src/tests/basic-test-suite.js.map +1 -0
- package/dist/src/tests/memory-transport.test.d.ts +2 -0
- package/dist/src/tests/memory-transport.test.d.ts.map +1 -0
- package/dist/src/tests/memory-transport.test.js +12 -0
- package/dist/src/tests/memory-transport.test.js.map +1 -0
- package/dist/src/{presence.test.d.ts → tests/presence.test.d.ts} +0 -0
- package/dist/src/tests/presence.test.d.ts.map +1 -0
- package/dist/src/{presence.test.js → tests/presence.test.js} +21 -20
- package/dist/src/tests/presence.test.js.map +1 -0
- package/dist/src/tests/property-test-suite.d.ts +5 -0
- package/dist/src/tests/property-test-suite.d.ts.map +1 -0
- package/dist/src/tests/property-test-suite.js +203 -0
- package/dist/src/tests/property-test-suite.js.map +1 -0
- package/dist/src/tests/utils.d.ts +21 -0
- package/dist/src/tests/utils.d.ts.map +1 -0
- package/dist/src/tests/utils.js +76 -0
- package/dist/src/tests/utils.js.map +1 -0
- package/dist/src/tests/webrtc-transport.test.d.ts +2 -0
- package/dist/src/tests/webrtc-transport.test.d.ts.map +1 -0
- package/dist/src/tests/webrtc-transport.test.js +16 -0
- package/dist/src/tests/webrtc-transport.test.js.map +1 -0
- package/dist/src/topology/fully-connected-topology.d.ts +1 -1
- package/dist/src/topology/fully-connected-topology.d.ts.map +1 -1
- package/dist/src/topology/fully-connected-topology.js +4 -3
- package/dist/src/topology/fully-connected-topology.js.map +1 -1
- package/dist/src/topology/mmst-topology.js +4 -4
- package/dist/src/topology/mmst-topology.js.map +1 -1
- package/dist/src/topology/star-topology.js +4 -4
- package/dist/src/topology/star-topology.js.map +1 -1
- package/dist/src/topology/topology.d.ts +0 -5
- package/dist/src/topology/topology.d.ts.map +1 -1
- package/dist/src/transport/memory-transport.d.ts +8 -7
- package/dist/src/transport/memory-transport.d.ts.map +1 -1
- package/dist/src/transport/memory-transport.js +79 -45
- package/dist/src/transport/memory-transport.js.map +1 -1
- package/dist/src/transport/memory-transport.test.js +3 -2
- package/dist/src/transport/memory-transport.test.js.map +1 -1
- package/dist/src/transport/transport.d.ts +8 -4
- package/dist/src/transport/transport.d.ts.map +1 -1
- package/dist/src/transport/webrtc-simple-peer.test.d.ts +2 -0
- package/dist/src/transport/webrtc-simple-peer.test.d.ts.map +1 -0
- package/dist/src/transport/{wrtc-simple-peer.test.js → webrtc-simple-peer.test.js} +2 -2
- package/dist/src/transport/webrtc-simple-peer.test.js.map +1 -0
- package/dist/src/transport/webrtc-transport-proxy.d.ts +4 -4
- package/dist/src/transport/webrtc-transport-proxy.d.ts.map +1 -1
- package/dist/src/transport/webrtc-transport-proxy.js +15 -10
- package/dist/src/transport/webrtc-transport-proxy.js.map +1 -1
- package/dist/src/transport/webrtc-transport-proxy.test.js +2 -2
- package/dist/src/transport/webrtc-transport-proxy.test.js.map +1 -1
- package/dist/src/transport/webrtc-transport-service.js +2 -2
- package/dist/src/transport/webrtc-transport-service.js.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 +10 -10
- package/dist/src/transport/webrtc-transport.js.map +1 -1
- package/dist/src/transport/webrtc-transport.test.js +3 -3
- package/dist/src/transport/webrtc-transport.test.js.map +1 -1
- package/dist/src/types.d.ts +1 -1
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +27 -22
- package/src/index.ts +2 -2
- package/src/network-manager.ts +31 -46
- package/src/protocol-factory.ts +5 -3
- package/src/signal/index.ts +2 -2
- package/src/signal/integration.test.ts +1 -1
- package/src/signal/message-router.test.ts +1 -1
- package/src/signal/message-router.ts +2 -2
- package/src/signal/{signal-messaging.ts → signal-messenger.ts} +2 -2
- package/src/swarm/connection.ts +23 -12
- package/src/swarm/peer.ts +156 -0
- package/src/swarm/swarm-mapper.ts +21 -10
- package/src/swarm/swarm.ts +142 -111
- package/src/testing/test-builder.ts +143 -63
- package/src/testing/test-protocol.ts +31 -23
- package/src/tests/basic-test-suite.ts +168 -0
- package/src/tests/memory-transport.test.ts +11 -0
- package/src/{presence.test.ts → tests/presence.test.ts} +24 -23
- package/src/tests/property-test-suite.ts +221 -0
- package/src/tests/utils.ts +85 -0
- package/src/tests/webrtc-transport.test.ts +16 -0
- package/src/topology/fully-connected-topology.ts +5 -4
- package/src/topology/topology.ts +0 -5
- package/src/transport/memory-transport.test.ts +3 -2
- package/src/transport/memory-transport.ts +79 -49
- package/src/transport/transport.ts +9 -3
- package/src/transport/{wrtc-simple-peer.test.ts → webrtc-simple-peer.test.ts} +1 -1
- package/src/transport/webrtc-transport-proxy.test.ts +2 -2
- package/src/transport/webrtc-transport-proxy.ts +17 -8
- package/src/transport/webrtc-transport-service.ts +1 -1
- package/src/transport/webrtc-transport.test.ts +4 -6
- package/src/transport/webrtc-transport.ts +4 -4
- package/testing.d.ts +11 -0
- package/testing.js +5 -0
- package/dist/src/network-manager.test.d.ts +0 -2
- package/dist/src/network-manager.test.d.ts.map +0 -1
- package/dist/src/network-manager.test.js +0 -596
- package/dist/src/network-manager.test.js.map +0 -1
- package/dist/src/presence.test.d.ts.map +0 -1
- package/dist/src/presence.test.js.map +0 -1
- package/dist/src/signal/signal-messaging.js.map +0 -1
- package/dist/src/transport/wrtc-simple-peer.test.d.ts +0 -2
- package/dist/src/transport/wrtc-simple-peer.test.d.ts.map +0 -1
- package/dist/src/transport/wrtc-simple-peer.test.js.map +0 -1
- package/src/network-manager.test.ts +0 -707
|
@@ -39,6 +39,7 @@ export class WebRTCTransportProxy implements Transport {
|
|
|
39
39
|
proxyId: this._proxyId,
|
|
40
40
|
initiator: this._params.initiator
|
|
41
41
|
});
|
|
42
|
+
|
|
42
43
|
this._serviceStream.waitUntilReady().then(
|
|
43
44
|
() => {
|
|
44
45
|
this._serviceStream.subscribe(async (event: BridgeEvent) => {
|
|
@@ -78,7 +79,7 @@ export class WebRTCTransportProxy implements Transport {
|
|
|
78
79
|
break;
|
|
79
80
|
}
|
|
80
81
|
case ConnectionState.CLOSED: {
|
|
81
|
-
await this.
|
|
82
|
+
await this.destroy();
|
|
82
83
|
break;
|
|
83
84
|
}
|
|
84
85
|
}
|
|
@@ -93,23 +94,29 @@ export class WebRTCTransportProxy implements Transport {
|
|
|
93
94
|
await this._params.sendSignal(signalEvent.payload);
|
|
94
95
|
}
|
|
95
96
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
97
|
+
signal(signal: Signal): void {
|
|
98
|
+
this._params.bridgeService
|
|
99
|
+
.sendSignal({
|
|
100
|
+
proxyId: this._proxyId,
|
|
101
|
+
signal
|
|
102
|
+
})
|
|
103
|
+
.catch((err) => this.errors.raise(err));
|
|
101
104
|
}
|
|
102
105
|
|
|
103
|
-
|
|
106
|
+
// TODO(burdon): Move open from constructor.
|
|
107
|
+
async destroy(): Promise<void> {
|
|
104
108
|
if (this._closed) {
|
|
105
109
|
return;
|
|
106
110
|
}
|
|
111
|
+
|
|
107
112
|
this._serviceStream.close();
|
|
113
|
+
|
|
108
114
|
try {
|
|
109
115
|
await this._params.bridgeService.close({ proxyId: this._proxyId });
|
|
110
116
|
} catch (err: any) {
|
|
111
117
|
log.catch(err);
|
|
112
118
|
}
|
|
119
|
+
|
|
113
120
|
this.closed.emit();
|
|
114
121
|
this._closed = true;
|
|
115
122
|
}
|
|
@@ -117,6 +124,7 @@ export class WebRTCTransportProxy implements Transport {
|
|
|
117
124
|
/**
|
|
118
125
|
* Called when underlying proxy service becomes unavailable.
|
|
119
126
|
*/
|
|
127
|
+
// TODO(burdon): Option on close method.
|
|
120
128
|
forceClose() {
|
|
121
129
|
this._serviceStream.close();
|
|
122
130
|
this.closed.emit();
|
|
@@ -124,6 +132,7 @@ export class WebRTCTransportProxy implements Transport {
|
|
|
124
132
|
}
|
|
125
133
|
}
|
|
126
134
|
|
|
135
|
+
// TODO(burdon): Why is this named Proxy?
|
|
127
136
|
export class WebRTCTransportProxyFactory implements TransportFactory {
|
|
128
137
|
private _bridgeService: BridgeService | undefined;
|
|
129
138
|
private _connections = new Set<WebRTCTransportProxy>();
|
|
@@ -141,7 +150,7 @@ export class WebRTCTransportProxyFactory implements TransportFactory {
|
|
|
141
150
|
return this;
|
|
142
151
|
}
|
|
143
152
|
|
|
144
|
-
|
|
153
|
+
createTransport(options: TransportOptions): Transport {
|
|
145
154
|
assert(this._bridgeService, 'WebRTCTransportProxyFactory is not ready to open connections');
|
|
146
155
|
|
|
147
156
|
const transport = new WebRTCTransportProxy({
|
|
@@ -102,7 +102,7 @@ export class WebRTCTransportService implements BridgeService {
|
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
async close({ proxyId }: CloseRequest) {
|
|
105
|
-
await this.transports.get(proxyId)?.transport.
|
|
105
|
+
await this.transports.get(proxyId)?.transport.destroy();
|
|
106
106
|
await this.transports.get(proxyId)?.stream.end();
|
|
107
107
|
this.transports.delete(proxyId);
|
|
108
108
|
log('Closed.');
|
|
@@ -28,13 +28,12 @@ describe('WebRTCTransport', function () {
|
|
|
28
28
|
const closedCb = () => {
|
|
29
29
|
callsCounter++;
|
|
30
30
|
};
|
|
31
|
-
connection.closed.once(closedCb);
|
|
32
31
|
|
|
32
|
+
connection.closed.once(closedCb);
|
|
33
33
|
await sleep(10); // Let simple-peer process events.
|
|
34
|
-
await connection.
|
|
34
|
+
await connection.destroy();
|
|
35
35
|
|
|
36
36
|
await sleep(10); // Process events.
|
|
37
|
-
|
|
38
37
|
expect(callsCounter).toEqual(1);
|
|
39
38
|
})
|
|
40
39
|
.timeout(1_000)
|
|
@@ -58,7 +57,7 @@ describe('WebRTCTransport', function () {
|
|
|
58
57
|
await connection2.signal(signal);
|
|
59
58
|
}
|
|
60
59
|
});
|
|
61
|
-
afterTest(() => connection1.
|
|
60
|
+
afterTest(() => connection1.destroy());
|
|
62
61
|
afterTest(() => connection1.errors.assertNoUnhandledErrors());
|
|
63
62
|
|
|
64
63
|
const plugin2 = new TestProtocolPlugin(peer2Id.asBuffer());
|
|
@@ -74,7 +73,7 @@ describe('WebRTCTransport', function () {
|
|
|
74
73
|
await connection1.signal(signal);
|
|
75
74
|
}
|
|
76
75
|
});
|
|
77
|
-
afterTest(() => connection2.
|
|
76
|
+
afterTest(() => connection2.destroy());
|
|
78
77
|
afterTest(() => connection2.errors.assertNoUnhandledErrors());
|
|
79
78
|
|
|
80
79
|
const received: any[] = [];
|
|
@@ -83,7 +82,6 @@ describe('WebRTCTransport', function () {
|
|
|
83
82
|
return undefined;
|
|
84
83
|
};
|
|
85
84
|
plugin1.on('receive', mockReceive);
|
|
86
|
-
|
|
87
85
|
plugin2.on('connect', async (protocol) => {
|
|
88
86
|
await plugin2.send(peer1Id.asBuffer(), '{"message": "Hello"}');
|
|
89
87
|
});
|
|
@@ -57,11 +57,11 @@ export class WebRTCTransport implements Transport {
|
|
|
57
57
|
|
|
58
58
|
this._peer.on('error', async (err) => {
|
|
59
59
|
this.errors.raise(err);
|
|
60
|
-
await this.
|
|
60
|
+
await this.destroy();
|
|
61
61
|
});
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
async
|
|
64
|
+
async destroy() {
|
|
65
65
|
log('closing...');
|
|
66
66
|
await this._disconnectStreams();
|
|
67
67
|
this._peer!.destroy();
|
|
@@ -69,7 +69,7 @@ export class WebRTCTransport implements Transport {
|
|
|
69
69
|
log('closed');
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
|
|
72
|
+
signal(signal: Signal) {
|
|
73
73
|
assert(this._peer, 'Connection not ready to accept signals.');
|
|
74
74
|
assert(signal.json, 'Signal message must contain signal data.');
|
|
75
75
|
this._peer.signal(JSON.parse(signal.json));
|
|
@@ -83,7 +83,7 @@ export class WebRTCTransport implements Transport {
|
|
|
83
83
|
|
|
84
84
|
// TODO(dmaretskyi): Convert to class.
|
|
85
85
|
export const createWebRTCTransportFactory = (webrtcConfig?: any): TransportFactory => ({
|
|
86
|
-
|
|
86
|
+
createTransport: (params) =>
|
|
87
87
|
new WebRTCTransport({
|
|
88
88
|
...params,
|
|
89
89
|
webrtcConfig
|
package/testing.d.ts
ADDED
package/testing.js
ADDED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"network-manager.test.d.ts","sourceRoot":"","sources":["../../src/network-manager.test.ts"],"names":[],"mappings":""}
|