@dxos/network-manager 0.1.8 → 0.1.10
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 +25 -18
- package/src/index.ts +2 -2
- package/src/network-manager.ts +30 -45
- 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/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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/swarm/connection.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;AAEF,8DAAiC;AAEjC,uCAAkD;AAClD,uCAA0C;AAE1C,mCAAgC;AAOhC;;GAEG;AACH,IAAY,eAoCX;AApCD,WAAY,eAAe;IACzB;;;OAGG;IACH,sCAAmB,CAAA;IAEnB;;OAEG;IACH,kEAA+C,CAAA;IAE/C;;OAEG;IACH,4CAAyB,CAAA;IAEzB;;OAEG;IACH,wCAAqB,CAAA;IAErB;;OAEG;IACH,wCAAqB,CAAA;IAErB;;OAEG;IACH,0CAAuB,CAAA;IAEvB;;OAEG;IACH,oCAAiB,CAAA;AACnB,CAAC,EApCW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAoC1B;AAED;;GAEG;AACH,MAAa,UAAU;IAQrB,YACkB,KAAgB,EAChB,KAAgB,EAAE,wBAAwB;IAC1C,QAAmB,EACnB,SAAoB,EACpB,SAAkB,EACjB,gBAAiC,EACjC,SAAmB,EACnB,iBAAmC;QAPpC,UAAK,GAAL,KAAK,CAAW;QAChB,UAAK,GAAL,KAAK,CAAW;QAChB,aAAQ,GAAR,QAAQ,CAAW;QACnB,cAAS,GAAT,SAAS,CAAW;QACpB,cAAS,GAAT,SAAS,CAAS;QACjB,qBAAgB,GAAhB,gBAAgB,CAAiB;QACjC,cAAS,GAAT,SAAS,CAAU;QACnB,sBAAiB,GAAjB,iBAAiB,CAAkB;QAf9C,WAAM,GAAoB,eAAe,CAAC,OAAO,CAAC;QAElD,qBAAgB,GAAa,EAAE,CAAC;QAE/B,iBAAY,GAAG,IAAI,aAAK,EAAmB,CAAC;QAC5C,WAAM,GAAG,IAAI,mBAAW,EAAE,CAAC;IAWjC,CAAC;IAEJ,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,4BAA4B;IAC5B,QAAQ;QACN,IAAI,CAAC,gBAAgB;aAClB,KAAK,CAAC;YACL,MAAM,EAAE,IAAI,CAAC,KAAK;YAClB,SAAS,EAAE,IAAI,CAAC,QAAQ;YACxB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;SACpB,CAAC;aACD,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,IAAA,SAAG,EAAC,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/swarm/connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { PublicKey } from '@dxos/keys';
|
|
2
|
+
import { Protocol } from '@dxos/mesh-protocol';
|
|
3
|
+
import { SignalMessage, SignalMessenger } from '../signal';
|
|
4
|
+
import { TransportFactory } from '../transport';
|
|
5
|
+
import { Connection } from './connection';
|
|
6
|
+
interface PeerCallbacks {
|
|
7
|
+
/**
|
|
8
|
+
* Connection opened.
|
|
9
|
+
*/
|
|
10
|
+
onConnected: () => void;
|
|
11
|
+
/**
|
|
12
|
+
* Connection closed.
|
|
13
|
+
*/
|
|
14
|
+
onDisconnected: () => void;
|
|
15
|
+
/**
|
|
16
|
+
* Peer accepted our offer to connect.
|
|
17
|
+
*/
|
|
18
|
+
onAccepted: () => void;
|
|
19
|
+
/**
|
|
20
|
+
* Peer rejected our offer to connect.
|
|
21
|
+
*/
|
|
22
|
+
onRejected: () => void;
|
|
23
|
+
}
|
|
24
|
+
export declare class Peer {
|
|
25
|
+
readonly id: PublicKey;
|
|
26
|
+
readonly topic: PublicKey;
|
|
27
|
+
readonly localPeerId: PublicKey;
|
|
28
|
+
private readonly _callbacks;
|
|
29
|
+
connection?: Connection;
|
|
30
|
+
/**
|
|
31
|
+
* Whether the peer is currently advertizing itself on the signal-network.
|
|
32
|
+
*/
|
|
33
|
+
advertizing: boolean;
|
|
34
|
+
constructor(id: PublicKey, topic: PublicKey, localPeerId: PublicKey, _callbacks: PeerCallbacks);
|
|
35
|
+
/**
|
|
36
|
+
* Create new connection.
|
|
37
|
+
* Either we're initiating a connection or creating one in response to an offer from the other peer.
|
|
38
|
+
*/
|
|
39
|
+
createConnection(signalMessaging: SignalMessenger, initiator: boolean, sessionId: PublicKey, protocol: Protocol, transportFactory: TransportFactory): Connection;
|
|
40
|
+
closeConnection(): Promise<void>;
|
|
41
|
+
onSignal(message: SignalMessage): Promise<void>;
|
|
42
|
+
destroy(): Promise<void>;
|
|
43
|
+
}
|
|
44
|
+
export {};
|
|
45
|
+
//# sourceMappingURL=peer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peer.d.ts","sourceRoot":"","sources":["../../../src/swarm/peer.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,UAAU,EAAmB,MAAM,cAAc,CAAC;AAE3D,UAAU,aAAa;IACrB;;OAEG;IACH,WAAW,EAAE,MAAM,IAAI,CAAC;IAExB;;OAEG;IACH,cAAc,EAAE,MAAM,IAAI,CAAC;IAE3B;;OAEG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;IAEvB;;OAEG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,qBAAa,IAAI;aASG,EAAE,EAAE,SAAS;aACb,KAAK,EAAE,SAAS;aAChB,WAAW,EAAE,SAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAXtB,UAAU,CAAC,EAAE,UAAU,CAAC;IAE/B;;OAEG;IACI,WAAW,UAAS;gBAGT,EAAE,EAAE,SAAS,EACb,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,SAAS,EACrB,UAAU,EAAE,aAAa;IAG5C;;;OAGG;IACH,gBAAgB,CAEd,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,gBAAgB;IA6D9B,eAAe;IAiBf,QAAQ,CAAC,OAAO,EAAE,aAAa;IAS/B,OAAO;CAMd"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
//
|
|
3
|
+
// Copyright 2022 DXOS.org
|
|
4
|
+
//
|
|
5
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
6
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
7
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
8
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
9
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.Peer = void 0;
|
|
16
|
+
const assert_1 = __importDefault(require("assert"));
|
|
17
|
+
const async_1 = require("@dxos/async");
|
|
18
|
+
const log_1 = require("@dxos/log");
|
|
19
|
+
const connection_1 = require("./connection");
|
|
20
|
+
class Peer {
|
|
21
|
+
constructor(id, topic, localPeerId, _callbacks) {
|
|
22
|
+
this.id = id;
|
|
23
|
+
this.topic = topic;
|
|
24
|
+
this.localPeerId = localPeerId;
|
|
25
|
+
this._callbacks = _callbacks;
|
|
26
|
+
/**
|
|
27
|
+
* Whether the peer is currently advertizing itself on the signal-network.
|
|
28
|
+
*/
|
|
29
|
+
this.advertizing = false;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Create new connection.
|
|
33
|
+
* Either we're initiating a connection or creating one in response to an offer from the other peer.
|
|
34
|
+
*/
|
|
35
|
+
createConnection(
|
|
36
|
+
// TODO(dmaretskyi): Move into constructor?
|
|
37
|
+
signalMessaging, initiator, sessionId, protocol, transportFactory) {
|
|
38
|
+
(0, log_1.log)('creating connection', {
|
|
39
|
+
topic: this.topic,
|
|
40
|
+
peerId: this.localPeerId,
|
|
41
|
+
remoteId: this.id,
|
|
42
|
+
initiator,
|
|
43
|
+
sessionId
|
|
44
|
+
}, { file: "packages/core/mesh/network-manager/src/swarm/peer.ts", line: 65, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation." });
|
|
45
|
+
(0, assert_1.default)(!this.connection, 'Already connected.');
|
|
46
|
+
const connection = new connection_1.Connection(this.topic, this.localPeerId, this.id, sessionId, initiator, signalMessaging, protocol, transportFactory);
|
|
47
|
+
connection.stateChanged.on((state) => {
|
|
48
|
+
switch (state) {
|
|
49
|
+
case connection_1.ConnectionState.CONNECTED: {
|
|
50
|
+
this._callbacks.onConnected();
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
case connection_1.ConnectionState.REJECTED: {
|
|
54
|
+
this._callbacks.onRejected();
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
case connection_1.ConnectionState.ACCEPTED: {
|
|
58
|
+
this._callbacks.onAccepted();
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
case connection_1.ConnectionState.CLOSED: {
|
|
62
|
+
(0, log_1.log)('connection closed', { topic: this.topic, peerId: this.localPeerId, remoteId: this.id, initiator }, { file: "packages/core/mesh/network-manager/src/swarm/peer.ts", line: 101, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation." });
|
|
63
|
+
(0, assert_1.default)(this.connection === connection, 'Connection mismatch (race condition).');
|
|
64
|
+
this.connection = undefined;
|
|
65
|
+
this._callbacks.onDisconnected();
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
connection.errors.handle((err) => {
|
|
71
|
+
log_1.log.warn('connection error', { topic: this.topic, peerId: this.localPeerId, remoteId: this.id, initiator, err }, { file: "packages/core/mesh/network-manager/src/swarm/peer.ts", line: 111, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation." });
|
|
72
|
+
// Calls `onStateChange` with CLOSED state.
|
|
73
|
+
void this.closeConnection().catch(() => {
|
|
74
|
+
log_1.log.catch(err, {}, { file: "packages/core/mesh/network-manager/src/swarm/peer.ts", line: 115, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation." });
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
this.connection = connection;
|
|
78
|
+
return connection;
|
|
79
|
+
}
|
|
80
|
+
async closeConnection() {
|
|
81
|
+
if (!this.connection) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const connection = this.connection;
|
|
85
|
+
(0, log_1.log)('closing...', { peerId: this.id, sessionId: connection.sessionId }, { file: "packages/core/mesh/network-manager/src/swarm/peer.ts", line: 129, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation." });
|
|
86
|
+
try {
|
|
87
|
+
// Triggers `onStateChange` callback which will clean up the connection.
|
|
88
|
+
await connection.close();
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
log_1.log.catch(err, {}, { file: "packages/core/mesh/network-manager/src/swarm/peer.ts", line: 135, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation." });
|
|
92
|
+
}
|
|
93
|
+
(0, log_1.log)('closed', { peerId: this.id, sessionId: connection.sessionId }, { file: "packages/core/mesh/network-manager/src/swarm/peer.ts", line: 138, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation." });
|
|
94
|
+
}
|
|
95
|
+
async onSignal(message) {
|
|
96
|
+
if (!this.connection) {
|
|
97
|
+
(0, log_1.log)('dropping signal message for non-existent connection', { message }, { file: "packages/core/mesh/network-manager/src/swarm/peer.ts", line: 143, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation." });
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
await this.connection.signal(message);
|
|
101
|
+
}
|
|
102
|
+
async destroy() {
|
|
103
|
+
var _a;
|
|
104
|
+
(0, log_1.log)('Destroying peer', { peerId: this.id, topic: this.topic }, { file: "packages/core/mesh/network-manager/src/swarm/peer.ts", line: 151, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation." });
|
|
105
|
+
// Won't throw.
|
|
106
|
+
await ((_a = this === null || this === void 0 ? void 0 : this.connection) === null || _a === void 0 ? void 0 : _a.close());
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
__decorate([
|
|
110
|
+
async_1.synchronized
|
|
111
|
+
], Peer.prototype, "destroy", null);
|
|
112
|
+
exports.Peer = Peer;
|
|
113
|
+
//# sourceMappingURL=peer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peer.js","sourceRoot":"","sources":["../../../src/swarm/peer.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { Swarm } from './swarm';
|
|
|
6
6
|
/**
|
|
7
7
|
* State of the connection to the remote peer with additional info derived from network mapping.
|
|
8
8
|
*/
|
|
9
|
-
export
|
|
9
|
+
export type PeerState = ConnectionState | 'INDIRECTLY_CONNECTED' | 'ME';
|
|
10
10
|
/**
|
|
11
11
|
* Information about remote peer, directly or indirectly connected.
|
|
12
12
|
*/
|
|
@@ -21,8 +21,8 @@ export declare class SwarmMapper {
|
|
|
21
21
|
private readonly _subscriptions;
|
|
22
22
|
private readonly _connectionSubscriptions;
|
|
23
23
|
private readonly _peers;
|
|
24
|
-
get peers(): PeerInfo[];
|
|
25
24
|
readonly mapUpdated: Event<PeerInfo[]>;
|
|
25
|
+
get peers(): PeerInfo[];
|
|
26
26
|
constructor(_swarm: Swarm, _presence: PresencePlugin | undefined);
|
|
27
27
|
private _update;
|
|
28
28
|
destroy(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swarm-mapper.d.ts","sourceRoot":"","sources":["../../../src/swarm/swarm-mapper.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAsB,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGhE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"swarm-mapper.d.ts","sourceRoot":"","sources":["../../../src/swarm/swarm-mapper.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAsB,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGhE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,sBAAsB,GAAG,IAAI,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,SAAS,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,EAAE,SAAS,EAAE,CAAC;CAC1B;AAID,qBAAa,WAAW;IAapB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAb5B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4B;IAC3D,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA0D;IACnG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuD;IAE9E,QAAQ,CAAC,UAAU,oBAA2B;IAE9C,IAAI,KAAK,IAAI,QAAQ,EAAE,CAEtB;gBAIkB,MAAM,EAAE,KAAK,EACb,SAAS,EAAE,cAAc,GAAG,SAAS;IAgCxD,OAAO,CAAC,OAAO;IAmDf,OAAO;CAIR"}
|
|
@@ -9,6 +9,9 @@ const keys_1 = require("@dxos/keys");
|
|
|
9
9
|
const log_1 = require("@dxos/log");
|
|
10
10
|
const util_1 = require("@dxos/util");
|
|
11
11
|
class SwarmMapper {
|
|
12
|
+
get peers() {
|
|
13
|
+
return Array.from(this._peers.values());
|
|
14
|
+
}
|
|
12
15
|
// prettier-ignore
|
|
13
16
|
constructor(_swarm, _presence) {
|
|
14
17
|
this._swarm = _swarm;
|
|
@@ -23,24 +26,22 @@ class SwarmMapper {
|
|
|
23
26
|
this._update();
|
|
24
27
|
}));
|
|
25
28
|
}));
|
|
26
|
-
this._subscriptions.add(_swarm.
|
|
29
|
+
this._subscriptions.add(_swarm.disconnected.on((peerId) => {
|
|
27
30
|
var _a;
|
|
28
|
-
(_a = this._connectionSubscriptions.get(
|
|
29
|
-
this._connectionSubscriptions.delete(
|
|
31
|
+
(_a = this._connectionSubscriptions.get(peerId)) === null || _a === void 0 ? void 0 : _a();
|
|
32
|
+
this._connectionSubscriptions.delete(peerId);
|
|
30
33
|
this._update();
|
|
31
34
|
}));
|
|
32
35
|
if (_presence) {
|
|
33
|
-
|
|
36
|
+
this._subscriptions.add(_presence.graphUpdated.on(() => {
|
|
34
37
|
this._update();
|
|
35
|
-
};
|
|
36
|
-
this._subscriptions.add(_presence.graphUpdated.on(cb));
|
|
38
|
+
}));
|
|
37
39
|
}
|
|
40
|
+
// TODO(burdon): Do not call from constructor.
|
|
38
41
|
this._update();
|
|
39
42
|
}
|
|
40
|
-
get peers() {
|
|
41
|
-
return Array.from(this._peers.values());
|
|
42
|
-
}
|
|
43
43
|
_update() {
|
|
44
|
+
(0, log_1.log)('updating swarm', {}, { file: "packages/core/mesh/network-manager/src/swarm/swarm-mapper.ts", line: 77, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation." });
|
|
44
45
|
this._peers.clear();
|
|
45
46
|
this._peers.set(this._swarm.ownPeerId, {
|
|
46
47
|
id: this._swarm.ownPeerId,
|
|
@@ -78,9 +79,10 @@ class SwarmMapper {
|
|
|
78
79
|
(0, log_1.log)('graph changed', {
|
|
79
80
|
directConnections: this._swarm.connections.length,
|
|
80
81
|
totalPeersInSwarm: this._peers.size
|
|
81
|
-
}, { file: "packages/core/mesh/network-manager/src/swarm/swarm-mapper.ts", line:
|
|
82
|
+
}, { file: "packages/core/mesh/network-manager/src/swarm/swarm-mapper.ts", line: 118, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation." });
|
|
82
83
|
this.mapUpdated.emit(Array.from(this._peers.values()));
|
|
83
84
|
}
|
|
85
|
+
// TODO(burdon): Async open/close.
|
|
84
86
|
destroy() {
|
|
85
87
|
Array.from(this._connectionSubscriptions.values()).forEach((cb) => cb());
|
|
86
88
|
this._subscriptions.clear();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swarm-mapper.js","sourceRoot":"","sources":["../../../src/swarm/swarm-mapper.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;AAEF,uCAAwD;AACxD,qCAAuC;AACvC,mCAAgC;AAEhC,qCAAwC;AAqBxC,MAAa,WAAW;
|
|
1
|
+
{"version":3,"file":"swarm-mapper.js","sourceRoot":"","sources":["../../../src/swarm/swarm-mapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { Event } from '@dxos/async';
|
|
2
1
|
import { ErrorStream } from '@dxos/debug';
|
|
3
2
|
import { PublicKey } from '@dxos/keys';
|
|
4
3
|
import { Messenger } from '@dxos/messaging';
|
|
5
4
|
import { SwarmEvent } from '@dxos/protocols/proto/dxos/mesh/signal';
|
|
6
5
|
import { Answer } from '@dxos/protocols/proto/dxos/mesh/swarm';
|
|
7
6
|
import { ProtocolProvider } from '../network-manager';
|
|
8
|
-
import { OfferMessage, SignalMessage } from '../signal
|
|
7
|
+
import { OfferMessage, SignalMessage } from '../signal';
|
|
9
8
|
import { Topology } from '../topology';
|
|
10
9
|
import { TransportFactory } from '../transport';
|
|
11
10
|
import { Topic } from '../types';
|
|
@@ -23,25 +22,13 @@ export declare class Swarm {
|
|
|
23
22
|
private readonly _messenger;
|
|
24
23
|
private readonly _transportFactory;
|
|
25
24
|
private readonly _label;
|
|
26
|
-
private readonly
|
|
27
|
-
private readonly _discoveredPeers;
|
|
25
|
+
private readonly _peers;
|
|
28
26
|
private readonly _swarmMessenger;
|
|
27
|
+
private _destroyed;
|
|
29
28
|
/**
|
|
30
29
|
* Unique id of the swarm, local to the current peer, generated when swarm is joined.
|
|
31
30
|
*/
|
|
32
31
|
readonly id: PublicKey;
|
|
33
|
-
/**
|
|
34
|
-
* New connection to a peer is started.
|
|
35
|
-
*/
|
|
36
|
-
readonly connectionAdded: Event<Connection>;
|
|
37
|
-
/**
|
|
38
|
-
* Connection to a peer is dropped.
|
|
39
|
-
*/
|
|
40
|
-
readonly connectionRemoved: Event<Connection>;
|
|
41
|
-
/**
|
|
42
|
-
* Connection is established to a new peer.
|
|
43
|
-
*/
|
|
44
|
-
readonly connected: Event<PublicKey>;
|
|
45
32
|
readonly errors: ErrorStream;
|
|
46
33
|
constructor(_topic: PublicKey, _ownPeerId: PublicKey, _topology: Topology, _protocolProvider: ProtocolProvider, _messenger: Messenger, _transportFactory: TransportFactory, _label: string | undefined);
|
|
47
34
|
get connections(): Connection[];
|
|
@@ -51,13 +38,21 @@ export declare class Swarm {
|
|
|
51
38
|
*/
|
|
52
39
|
get label(): string | undefined;
|
|
53
40
|
get topic(): Topic;
|
|
41
|
+
destroy(): Promise<void>;
|
|
42
|
+
setTopology(topology: Topology): Promise<void>;
|
|
43
|
+
private _getOrCreatePeer;
|
|
44
|
+
private _destroyPeer;
|
|
54
45
|
onSwarmEvent(swarmEvent: SwarmEvent): void;
|
|
55
46
|
onOffer(message: OfferMessage): Promise<Answer>;
|
|
56
47
|
onSignal(message: SignalMessage): Promise<void>;
|
|
57
|
-
setTopology(topology: Topology): Promise<void>;
|
|
58
|
-
destroy(): Promise<void>;
|
|
59
48
|
private _getSwarmController;
|
|
49
|
+
/**
|
|
50
|
+
* Creates a connection then sends message over signal network.
|
|
51
|
+
*/
|
|
60
52
|
private _initiateConnection;
|
|
53
|
+
/**
|
|
54
|
+
* Synchronously create a connection, which must be initialized.
|
|
55
|
+
*/
|
|
61
56
|
private _createConnection;
|
|
62
57
|
private _closeConnection;
|
|
63
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swarm.d.ts","sourceRoot":"","sources":["../../../src/swarm/swarm.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"swarm.d.ts","sourceRoot":"","sources":["../../../src/swarm/swarm.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAG/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAiB,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EAAmB,QAAQ,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQ1C;;;;GAIG;AACH,qBAAa,KAAK;IAoCd,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAzCzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmD;IAE1E,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgB;IAEhD,OAAO,CAAC,UAAU,CAAS;IAE3B;;OAEG;IACH,QAAQ,CAAC,EAAE,YAAsB;IAoBjC,QAAQ,CAAC,MAAM,cAAqB;gBAMjB,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,SAAS,EAC9B,SAAS,EAAE,QAAQ,EACV,iBAAiB,EAAE,gBAAgB,EACnC,UAAU,EAAE,SAAS,EACrB,iBAAiB,EAAE,gBAAgB,EACnC,MAAM,EAAE,MAAM,GAAG,SAAS;IAqB7C,IAAI,WAAW,iBAId;IAED,IAAI,SAAS,cAEZ;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAE9B;IAED,IAAI,KAAK,IAAI,KAAK,CAEjB;IAGK,OAAO;IAOP,WAAW,CAAC,QAAQ,EAAE,QAAQ;IAiBpC,OAAO,CAAC,gBAAgB;YAgCV,YAAY;IAM1B,YAAY,CAAC,UAAU,EAAE,UAAU;IA2B7B,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IA4D/C,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBrD,OAAO,CAAC,mBAAmB;IAuB3B;;OAEG;YACW,mBAAmB;IAqBjC;;OAEG;IACH,OAAO,CAAC,iBAAiB;YAeX,gBAAgB;CAQ/B"}
|