@dxos/network-manager 0.8.2-main.fbd8ed0 → 0.8.2-staging.4d6ad0f
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/lib/browser/{chunk-LOUV2QRE.mjs → chunk-LFKR6BAF.mjs} +12 -24
- package/dist/lib/browser/chunk-LFKR6BAF.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +1 -1
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +1 -1
- package/dist/lib/browser/testing/index.mjs.map +3 -3
- package/dist/lib/browser/transport/tcp/index.mjs.map +2 -2
- package/dist/lib/node/{chunk-NGSQDQ6O.cjs → chunk-2G6RZMS5.cjs} +15 -27
- package/dist/lib/node/chunk-2G6RZMS5.cjs.map +7 -0
- package/dist/lib/node/index.cjs +23 -23
- package/dist/lib/node/index.cjs.map +1 -1
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/testing/index.cjs +14 -14
- package/dist/lib/node/testing/index.cjs.map +3 -3
- package/dist/lib/node/transport/tcp/index.cjs.map +3 -3
- package/dist/lib/node-esm/{chunk-2TV33CKS.mjs → chunk-QQY4BF6O.mjs} +12 -24
- package/dist/lib/node-esm/chunk-QQY4BF6O.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +1 -1
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs +1 -1
- package/dist/lib/node-esm/testing/index.mjs.map +3 -3
- package/dist/lib/node-esm/transport/tcp/index.mjs.map +3 -3
- package/dist/types/src/connection-log.d.ts.map +1 -1
- package/dist/types/src/network-manager.d.ts.map +1 -1
- package/dist/types/src/swarm/connection-limiter.d.ts.map +1 -1
- package/dist/types/src/swarm/connection.d.ts.map +1 -1
- package/dist/types/src/swarm/peer.d.ts.map +1 -1
- package/dist/types/src/swarm/swarm-mapper.d.ts.map +1 -1
- package/dist/types/src/swarm/swarm.d.ts.map +1 -1
- package/dist/types/src/testing/test-builder.d.ts.map +1 -1
- package/dist/types/src/testing/test-wire-protocol.d.ts.map +1 -1
- package/dist/types/src/topology/fully-connected-topology.d.ts.map +1 -1
- package/dist/types/src/topology/mmst-topology.d.ts.map +1 -1
- package/dist/types/src/topology/star-topology.d.ts.map +1 -1
- package/dist/types/src/transport/memory-transport.d.ts.map +1 -1
- package/dist/types/src/transport/tcp/tcp-transport.browser.d.ts.map +1 -1
- package/dist/types/src/transport/tcp/tcp-transport.d.ts.map +1 -1
- package/dist/types/src/transport/webrtc/rtc-peer-connection.d.ts.map +1 -1
- package/dist/types/src/transport/webrtc/rtc-transport-channel.d.ts.map +1 -1
- package/dist/types/src/transport/webrtc/rtc-transport-proxy.d.ts.map +1 -1
- package/dist/types/src/transport/webrtc/rtc-transport-service.d.ts.map +1 -1
- package/package.json +18 -18
- package/src/connection-log.ts +3 -3
- package/src/network-manager.ts +5 -5
- package/src/swarm/connection-limiter.ts +1 -1
- package/src/swarm/connection.ts +10 -10
- package/src/swarm/peer.ts +5 -5
- package/src/swarm/swarm-mapper.ts +2 -2
- package/src/swarm/swarm.ts +10 -10
- package/src/testing/test-builder.ts +9 -9
- package/src/testing/test-wire-protocol.ts +2 -2
- package/src/topology/fully-connected-topology.ts +1 -1
- package/src/topology/mmst-topology.ts +3 -3
- package/src/topology/star-topology.ts +1 -1
- package/src/transport/memory-transport.ts +10 -5
- package/src/transport/tcp/tcp-transport.browser.ts +3 -3
- package/src/transport/tcp/tcp-transport.ts +4 -4
- package/src/transport/webrtc/rtc-connection-factory.ts +5 -5
- package/src/transport/webrtc/rtc-peer-connection.ts +9 -9
- package/src/transport/webrtc/rtc-transport-channel.ts +6 -6
- package/src/transport/webrtc/rtc-transport-proxy.ts +7 -7
- package/src/transport/webrtc/rtc-transport-service.ts +3 -3
- package/dist/lib/browser/chunk-LOUV2QRE.mjs.map +0 -7
- package/dist/lib/node/chunk-NGSQDQ6O.cjs.map +0 -7
- package/dist/lib/node-esm/chunk-2TV33CKS.mjs.map +0 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rtc-transport-channel.d.ts","sourceRoot":"","sources":["../../../../../src/transport/webrtc/rtc-transport-channel.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI1C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAEpE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAO1F;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,QAAS,YAAW,SAAS;IAWlE,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAX3B,SAAgB,MAAM,mBAAoB;IAC1C,SAAgB,SAAS,mBAAoB;IAC7C,SAAgB,MAAM,cAAqB;IAE3C,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,0BAA0B,CAA6C;IAC/E,OAAO,CAAC,4BAA4B,CAAS;gBAG1B,WAAW,EAAE,iBAAiB,EAC9B,QAAQ,EAAE,gBAAgB;IAK7C,IAAW,8BAA8B,YAExC;IAEM,iBAAiB,CAAC,KAAK,EAAE,KAAK;
|
|
1
|
+
{"version":3,"file":"rtc-transport-channel.d.ts","sourceRoot":"","sources":["../../../../../src/transport/webrtc/rtc-transport-channel.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI1C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAEpE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAO1F;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,QAAS,YAAW,SAAS;IAWlE,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAX3B,SAAgB,MAAM,mBAAoB;IAC1C,SAAgB,SAAS,mBAAoB;IAC7C,SAAgB,MAAM,cAAqB;IAE3C,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,0BAA0B,CAA6C;IAC/E,OAAO,CAAC,4BAA4B,CAAS;gBAG1B,WAAW,EAAE,iBAAiB,EAC9B,QAAQ,EAAE,gBAAgB;IAK7C,IAAW,8BAA8B,YAExC;IAEM,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;cAMnB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;cA6BtB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAWhD,OAAO,CAAC,YAAY;YAwDN,mBAAmB;IA+BjC,OAAO,CAAC,iBAAiB;IAQlB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAI7B,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC;CAG1C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rtc-transport-proxy.d.ts","sourceRoot":"","sources":["../../../../../src/transport/webrtc/rtc-transport-proxy.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAgB,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK1C,OAAO,EAAoB,KAAK,aAAa,EAAmB,MAAM,wCAAwC,CAAC;AAC/G,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAGpE,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAMjH,MAAM,MAAM,wBAAwB,GAAG,gBAAgB,GAAG;IACxD,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEF,qBAAa,iBAAkB,SAAQ,QAAS,YAAW,SAAS;IAStD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IARrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAE/C,QAAQ,CAAC,MAAM,cAAe;IAC9B,QAAQ,CAAC,SAAS,cAAe;IACjC,QAAQ,CAAC,MAAM,cAAqB;IAEpC,OAAO,CAAC,cAAc,CAAkC;gBAE3B,QAAQ,EAAE,wBAAwB;cAItC,KAAK;
|
|
1
|
+
{"version":3,"file":"rtc-transport-proxy.d.ts","sourceRoot":"","sources":["../../../../../src/transport/webrtc/rtc-transport-proxy.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAgB,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK1C,OAAO,EAAoB,KAAK,aAAa,EAAmB,MAAM,wCAAwC,CAAC;AAC/G,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAGpE,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAMjH,MAAM,MAAM,wBAAwB,GAAG,gBAAgB,GAAG;IACxD,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEF,qBAAa,iBAAkB,SAAQ,QAAS,YAAW,SAAS;IAStD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IARrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAE/C,QAAQ,CAAC,MAAM,cAAe;IAC9B,QAAQ,CAAC,SAAS,cAAe;IACjC,QAAQ,CAAC,MAAM,cAAqB;IAEpC,OAAO,CAAC,cAAc,CAAkC;gBAE3B,QAAQ,EAAE,wBAAwB;cAItC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;cAiFtB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB1C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAM/B,iBAAiB;IAkB/B,OAAO,CAAC,WAAW;YASL,aAAa;IAWrB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAY7B,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC;IAezC,OAAO,CAAC,YAAY;IAQpB;;OAEG;IACH,UAAU,IAAI,IAAI;CAInB;AAED,qBAAa,wBAAyB,YAAW,gBAAgB;IAC/D,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,YAAY,CAAgC;IAEpD;;;OAGG;IACH,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,SAAS,GAAG,IAAI;IAQhE,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS;CAStD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rtc-transport-service.d.ts","sourceRoot":"","sources":["../../../../../src/transport/webrtc/rtc-transport-service.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAIrD,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,WAAW,EAEhB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,aAAa,EACnB,MAAM,wCAAwC,CAAC;AAIhD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAkB,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AASrE,qBAAa,mBAAoB,YAAW,aAAa;IAMrD,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IALpC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6D;gBAG3F,YAAY,CAAC,EAAE,gBAAgB,EAC/B,WAAW,CAAC,EAAE,WAAW,EACR,iBAAiB,GAAE,gBAAuE;IAGtG,iBAAiB;
|
|
1
|
+
{"version":3,"file":"rtc-transport-service.d.ts","sourceRoot":"","sources":["../../../../../src/transport/webrtc/rtc-transport-service.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAIrD,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,WAAW,EAEhB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,aAAa,EACnB,MAAM,wCAAwC,CAAC;AAIhD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAkB,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AASrE,qBAAa,mBAAoB,YAAW,aAAa;IAMrD,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IALpC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6D;gBAG3F,YAAY,CAAC,EAAE,gBAAgB,EAC/B,WAAW,CAAC,EAAE,WAAW,EACR,iBAAiB,GAAE,gBAAuE;IAGtG,iBAAiB,IAAI,OAAO;IAInC,IAAI,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAC;IAuE/C,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAO7D,UAAU,CAAC,EAAE,OAAO,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAOjE,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAO3D,QAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAY1D,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;YAUvC,mBAAmB;CAmBlC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/network-manager",
|
|
3
|
-
"version": "0.8.2-
|
|
3
|
+
"version": "0.8.2-staging.4d6ad0f",
|
|
4
4
|
"description": "Network Manager",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -74,29 +74,29 @@
|
|
|
74
74
|
"tiny-invariant": "^1.3.1",
|
|
75
75
|
"ws": "^8.14.2",
|
|
76
76
|
"xor-distance": "^2.0.0",
|
|
77
|
-
"@dxos/
|
|
78
|
-
"@dxos/
|
|
79
|
-
"@dxos/
|
|
80
|
-
"@dxos/
|
|
81
|
-
"@dxos/
|
|
82
|
-
"@dxos/
|
|
83
|
-
"@dxos/
|
|
84
|
-
"@dxos/
|
|
85
|
-
"@dxos/
|
|
86
|
-
"@dxos/
|
|
87
|
-
"@dxos/
|
|
88
|
-
"@dxos/
|
|
89
|
-
"@dxos/
|
|
90
|
-
"@dxos/tracing": "0.8.2-
|
|
77
|
+
"@dxos/context": "0.8.2-staging.4d6ad0f",
|
|
78
|
+
"@dxos/async": "0.8.2-staging.4d6ad0f",
|
|
79
|
+
"@dxos/debug": "0.8.2-staging.4d6ad0f",
|
|
80
|
+
"@dxos/keys": "0.8.2-staging.4d6ad0f",
|
|
81
|
+
"@dxos/log": "0.8.2-staging.4d6ad0f",
|
|
82
|
+
"@dxos/codec-protobuf": "0.8.2-staging.4d6ad0f",
|
|
83
|
+
"@dxos/invariant": "0.8.2-staging.4d6ad0f",
|
|
84
|
+
"@dxos/messaging": "0.8.2-staging.4d6ad0f",
|
|
85
|
+
"@dxos/node-std": "0.8.2-staging.4d6ad0f",
|
|
86
|
+
"@dxos/protocols": "0.8.2-staging.4d6ad0f",
|
|
87
|
+
"@dxos/rpc": "0.8.2-staging.4d6ad0f",
|
|
88
|
+
"@dxos/util": "0.8.2-staging.4d6ad0f",
|
|
89
|
+
"@dxos/teleport": "0.8.2-staging.4d6ad0f",
|
|
90
|
+
"@dxos/tracing": "0.8.2-staging.4d6ad0f"
|
|
91
91
|
},
|
|
92
92
|
"devDependencies": {
|
|
93
93
|
"@swc-node/register": "1.9.1",
|
|
94
94
|
"@types/ws": "^7.4.0",
|
|
95
95
|
"fast-check": "^3.19.0",
|
|
96
96
|
"fetch-mock": "^11.0.0",
|
|
97
|
-
"@dxos/edge-client": "0.8.2-
|
|
98
|
-
"@dxos/
|
|
99
|
-
"@dxos/
|
|
97
|
+
"@dxos/edge-client": "0.8.2-staging.4d6ad0f",
|
|
98
|
+
"@dxos/keyring": "0.8.2-staging.4d6ad0f",
|
|
99
|
+
"@dxos/signal": "0.8.2-staging.4d6ad0f"
|
|
100
100
|
},
|
|
101
101
|
"publishConfig": {
|
|
102
102
|
"access": "public"
|
package/src/connection-log.ts
CHANGED
|
@@ -30,7 +30,7 @@ export class ConnectionLog {
|
|
|
30
30
|
|
|
31
31
|
readonly update = new Event();
|
|
32
32
|
|
|
33
|
-
getSwarmInfo(swarmId: PublicKey) {
|
|
33
|
+
getSwarmInfo(swarmId: PublicKey): SwarmInfo {
|
|
34
34
|
return this._swarms.get(swarmId) ?? raise(new Error(`Swarm not found: ${swarmId}`));
|
|
35
35
|
}
|
|
36
36
|
|
|
@@ -38,7 +38,7 @@ export class ConnectionLog {
|
|
|
38
38
|
return Array.from(this._swarms.values());
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
joinedSwarm(swarm: Swarm) {
|
|
41
|
+
joinedSwarm(swarm: Swarm): void {
|
|
42
42
|
const info: SwarmInfo = {
|
|
43
43
|
id: PublicKey.from(swarm._instanceId),
|
|
44
44
|
topic: swarm.topic,
|
|
@@ -126,7 +126,7 @@ export class ConnectionLog {
|
|
|
126
126
|
});
|
|
127
127
|
}
|
|
128
128
|
|
|
129
|
-
leftSwarm(swarm: Swarm) {
|
|
129
|
+
leftSwarm(swarm: Swarm): void {
|
|
130
130
|
this.getSwarmInfo(PublicKey.from(swarm._instanceId)).isActive = false;
|
|
131
131
|
this.update.emit();
|
|
132
132
|
}
|
package/src/network-manager.ts
CHANGED
|
@@ -125,18 +125,18 @@ export class SwarmNetworkManager {
|
|
|
125
125
|
return this._swarms.get(topic);
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
-
setPeerInfo(peerInfo: PeerInfo) {
|
|
128
|
+
setPeerInfo(peerInfo: PeerInfo): void {
|
|
129
129
|
this._peerInfo = peerInfo;
|
|
130
130
|
}
|
|
131
131
|
|
|
132
|
-
async open() {
|
|
132
|
+
async open(): Promise<void> {
|
|
133
133
|
log.trace('dxos.mesh.network-manager.open', trace.begin({ id: this._instanceId }));
|
|
134
134
|
await this._messenger.open();
|
|
135
135
|
await this._signalManager.open();
|
|
136
136
|
log.trace('dxos.mesh.network-manager.open', trace.end({ id: this._instanceId }));
|
|
137
137
|
}
|
|
138
138
|
|
|
139
|
-
async close() {
|
|
139
|
+
async close(): Promise<void> {
|
|
140
140
|
for (const topic of this._swarms.keys()) {
|
|
141
141
|
await this.leaveSwarm(topic).catch((err) => {
|
|
142
142
|
log(err);
|
|
@@ -202,7 +202,7 @@ export class SwarmNetworkManager {
|
|
|
202
202
|
* Close the connection.
|
|
203
203
|
*/
|
|
204
204
|
@synchronized
|
|
205
|
-
async leaveSwarm(topic: PublicKey) {
|
|
205
|
+
async leaveSwarm(topic: PublicKey): Promise<void> {
|
|
206
206
|
if (!this._swarms.has(topic)) {
|
|
207
207
|
// log.warn('swarm not open', { topic: PublicKey.from(topic).truncate() });
|
|
208
208
|
return;
|
|
@@ -225,7 +225,7 @@ export class SwarmNetworkManager {
|
|
|
225
225
|
log('left', { topic: PublicKey.from(topic), count: this._swarms.size });
|
|
226
226
|
}
|
|
227
227
|
|
|
228
|
-
async setConnectionState(state: ConnectionState) {
|
|
228
|
+
async setConnectionState(state: ConnectionState): Promise<void> {
|
|
229
229
|
if (state === this._connectionState) {
|
|
230
230
|
return;
|
|
231
231
|
}
|
|
@@ -60,7 +60,7 @@ export class ConnectionLimiter {
|
|
|
60
60
|
/**
|
|
61
61
|
* Rejects promise returned by `connecting` method.
|
|
62
62
|
*/
|
|
63
|
-
doneConnecting(sessionId: PublicKey) {
|
|
63
|
+
doneConnecting(sessionId: PublicKey): void {
|
|
64
64
|
log('done', { sessionId });
|
|
65
65
|
if (!this._waitingPromises.has(sessionId)) {
|
|
66
66
|
return;
|
package/src/swarm/connection.ts
CHANGED
|
@@ -163,7 +163,7 @@ export class Connection {
|
|
|
163
163
|
/**
|
|
164
164
|
* Create an underlying transport and prepares it for the connection.
|
|
165
165
|
*/
|
|
166
|
-
async openConnection() {
|
|
166
|
+
async openConnection(): Promise<void> {
|
|
167
167
|
invariant(this._state === ConnectionState.INITIAL, 'Invalid state.');
|
|
168
168
|
log.trace('dxos.mesh.connection.open-connection', trace.begin({ id: this._instanceId }));
|
|
169
169
|
log.trace('dxos.mesh.connection.open', {
|
|
@@ -261,7 +261,7 @@ export class Connection {
|
|
|
261
261
|
@synchronized
|
|
262
262
|
// TODO(nf): make the caller responsible for recording the reason and determining flow control.
|
|
263
263
|
// TODO(nf): make abort cancel an existing close in progress.
|
|
264
|
-
async abort(err?: Error) {
|
|
264
|
+
async abort(err?: Error): Promise<void> {
|
|
265
265
|
log('abort', { err });
|
|
266
266
|
if (this._state === ConnectionState.CLOSED || this._state === ConnectionState.ABORTED) {
|
|
267
267
|
log(`abort ignored: already ${this._state}`, this.closeReason);
|
|
@@ -301,7 +301,7 @@ export class Connection {
|
|
|
301
301
|
}
|
|
302
302
|
|
|
303
303
|
@synchronized
|
|
304
|
-
async close({ error, reason }: { error?: Error; reason?: string } = {}) {
|
|
304
|
+
async close({ error, reason }: { error?: Error; reason?: string } = {}): Promise<void> {
|
|
305
305
|
log('close', { error });
|
|
306
306
|
if (!this.closeReason) {
|
|
307
307
|
this.closeReason = reason ?? error?.message;
|
|
@@ -347,24 +347,24 @@ export class Connection {
|
|
|
347
347
|
this._callbacks?.onClosed?.(error);
|
|
348
348
|
}
|
|
349
349
|
|
|
350
|
-
private async _closeProtocol(options?: { abort: boolean }) {
|
|
350
|
+
private async _closeProtocol(options?: { abort: boolean }): Promise<void> {
|
|
351
351
|
log('closing protocol', options);
|
|
352
352
|
await Promise.race([options?.abort ? this._protocol.abort() : this._protocol.close(), this._protocolClosed.wait()]);
|
|
353
353
|
log('protocol closed', options);
|
|
354
354
|
}
|
|
355
355
|
|
|
356
|
-
private async _closeTransport() {
|
|
356
|
+
private async _closeTransport(): Promise<void> {
|
|
357
357
|
log('closing transport');
|
|
358
358
|
await Promise.race([this._transport?.close(), this._transportClosed.wait()]);
|
|
359
359
|
log('transport closed');
|
|
360
360
|
}
|
|
361
361
|
|
|
362
|
-
private _sendSignal(signal: Signal) {
|
|
362
|
+
private _sendSignal(signal: Signal): void {
|
|
363
363
|
this._outgoingSignalBuffer.push(signal);
|
|
364
364
|
this._signalSendTask.schedule();
|
|
365
365
|
}
|
|
366
366
|
|
|
367
|
-
private async _flushSignalBuffer() {
|
|
367
|
+
private async _flushSignalBuffer(): Promise<void> {
|
|
368
368
|
if (this._outgoingSignalBuffer.length === 0) {
|
|
369
369
|
return;
|
|
370
370
|
}
|
|
@@ -404,7 +404,7 @@ export class Connection {
|
|
|
404
404
|
/**
|
|
405
405
|
* Receive a signal from the remote peer.
|
|
406
406
|
*/
|
|
407
|
-
async signal(msg: SignalMessage) {
|
|
407
|
+
async signal(msg: SignalMessage): Promise<void> {
|
|
408
408
|
invariant(msg.sessionId);
|
|
409
409
|
if (!msg.sessionId.equals(this.sessionId)) {
|
|
410
410
|
log('dropping signal for incorrect session id');
|
|
@@ -431,7 +431,7 @@ export class Connection {
|
|
|
431
431
|
}
|
|
432
432
|
}
|
|
433
433
|
|
|
434
|
-
initiate() {
|
|
434
|
+
initiate(): void {
|
|
435
435
|
this._changeState(ConnectionState.INITIAL);
|
|
436
436
|
}
|
|
437
437
|
|
|
@@ -442,7 +442,7 @@ export class Connection {
|
|
|
442
442
|
this.stateChanged.emit(state);
|
|
443
443
|
}
|
|
444
444
|
|
|
445
|
-
private async _emitTransportStats() {
|
|
445
|
+
private async _emitTransportStats(): Promise<void> {
|
|
446
446
|
const stats = await this.transport?.getStats();
|
|
447
447
|
if (stats) {
|
|
448
448
|
this.transportStats.emit(stats);
|
package/src/swarm/peer.ts
CHANGED
|
@@ -167,7 +167,7 @@ export class Peer {
|
|
|
167
167
|
/**
|
|
168
168
|
* Initiate a connection to the remote peer.
|
|
169
169
|
*/
|
|
170
|
-
async initiateConnection() {
|
|
170
|
+
async initiateConnection(): Promise<void> {
|
|
171
171
|
invariant(!this.initiating, 'Initiation in progress.');
|
|
172
172
|
invariant(!this.connection, 'Already connected.');
|
|
173
173
|
const sessionId = PublicKey.random();
|
|
@@ -244,7 +244,7 @@ export class Peer {
|
|
|
244
244
|
* Create new connection.
|
|
245
245
|
* Either we're initiating a connection or creating one in response to an offer from the other peer.
|
|
246
246
|
*/
|
|
247
|
-
private _createConnection(initiator: boolean, sessionId: PublicKey) {
|
|
247
|
+
private _createConnection(initiator: boolean, sessionId: PublicKey): Connection {
|
|
248
248
|
log('creating connection', {
|
|
249
249
|
topic: this.topic,
|
|
250
250
|
peerId: this.localInfo,
|
|
@@ -360,7 +360,7 @@ export class Peer {
|
|
|
360
360
|
return connection;
|
|
361
361
|
}
|
|
362
362
|
|
|
363
|
-
async closeConnection(err?: Error) {
|
|
363
|
+
async closeConnection(err?: Error): Promise<void> {
|
|
364
364
|
if (!this.connection) {
|
|
365
365
|
return;
|
|
366
366
|
}
|
|
@@ -376,7 +376,7 @@ export class Peer {
|
|
|
376
376
|
log('closed', { peerId: this.remoteInfo, sessionId: connection.sessionId });
|
|
377
377
|
}
|
|
378
378
|
|
|
379
|
-
async onSignal(message: SignalMessage) {
|
|
379
|
+
async onSignal(message: SignalMessage): Promise<void> {
|
|
380
380
|
if (!this.connection) {
|
|
381
381
|
log('dropping signal message for non-existent connection', { message });
|
|
382
382
|
return;
|
|
@@ -386,7 +386,7 @@ export class Peer {
|
|
|
386
386
|
}
|
|
387
387
|
|
|
388
388
|
@synchronized
|
|
389
|
-
async safeDestroy(reason?: string) {
|
|
389
|
+
async safeDestroy(reason?: string): Promise<void> {
|
|
390
390
|
await this._ctx.dispose();
|
|
391
391
|
log('Destroying peer', { peerId: this.remoteInfo, topic: this.topic });
|
|
392
392
|
|
|
@@ -67,7 +67,7 @@ export class SwarmMapper {
|
|
|
67
67
|
this._update();
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
private _update() {
|
|
70
|
+
private _update(): void {
|
|
71
71
|
log('updating swarm');
|
|
72
72
|
|
|
73
73
|
this._peers.clear();
|
|
@@ -118,7 +118,7 @@ export class SwarmMapper {
|
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
// TODO(burdon): Async open/close.
|
|
121
|
-
destroy() {
|
|
121
|
+
destroy(): void {
|
|
122
122
|
Array.from(this._connectionSubscriptions.values()).forEach((cb) => cb());
|
|
123
123
|
this._connectionSubscriptions.clear();
|
|
124
124
|
this._subscriptions.clear();
|
package/src/swarm/swarm.ts
CHANGED
|
@@ -128,7 +128,7 @@ export class Swarm {
|
|
|
128
128
|
return this._topic;
|
|
129
129
|
}
|
|
130
130
|
|
|
131
|
-
async open() {
|
|
131
|
+
async open(): Promise<void> {
|
|
132
132
|
invariant(!this._listeningHandle);
|
|
133
133
|
this._listeningHandle = await this._messenger.listen({
|
|
134
134
|
peer: this._ownPeer,
|
|
@@ -142,7 +142,7 @@ export class Swarm {
|
|
|
142
142
|
});
|
|
143
143
|
}
|
|
144
144
|
|
|
145
|
-
async destroy() {
|
|
145
|
+
async destroy(): Promise<void> {
|
|
146
146
|
log('destroying...');
|
|
147
147
|
await this._listeningHandle?.unsubscribe();
|
|
148
148
|
this._listeningHandle = undefined;
|
|
@@ -153,7 +153,7 @@ export class Swarm {
|
|
|
153
153
|
log('destroyed');
|
|
154
154
|
}
|
|
155
155
|
|
|
156
|
-
async setTopology(topology: Topology) {
|
|
156
|
+
async setTopology(topology: Topology): Promise<void> {
|
|
157
157
|
invariant(!this._ctx.disposed, 'Swarm is offline');
|
|
158
158
|
if (topology === this._topology) {
|
|
159
159
|
return;
|
|
@@ -228,7 +228,7 @@ export class Swarm {
|
|
|
228
228
|
return answer;
|
|
229
229
|
}
|
|
230
230
|
|
|
231
|
-
private _getOfferSenderPeer(senderInfo: PeerInfo) {
|
|
231
|
+
private _getOfferSenderPeer(senderInfo: PeerInfo): Peer {
|
|
232
232
|
const peer = this._getOrCreatePeer(senderInfo);
|
|
233
233
|
|
|
234
234
|
// Handle fast peer reconnect (eg. tab reload)
|
|
@@ -261,14 +261,14 @@ export class Swarm {
|
|
|
261
261
|
|
|
262
262
|
// For debug purposes
|
|
263
263
|
@synchronized
|
|
264
|
-
async goOffline() {
|
|
264
|
+
async goOffline(): Promise<void> {
|
|
265
265
|
await this._ctx.dispose();
|
|
266
266
|
await Promise.all([...this._peers.keys()].map((peerId) => this._destroyPeer(peerId, 'goOffline')));
|
|
267
267
|
}
|
|
268
268
|
|
|
269
269
|
// For debug purposes
|
|
270
270
|
@synchronized
|
|
271
|
-
async goOnline() {
|
|
271
|
+
async goOnline(): Promise<void> {
|
|
272
272
|
this._ctx = new Context();
|
|
273
273
|
}
|
|
274
274
|
|
|
@@ -328,7 +328,7 @@ export class Swarm {
|
|
|
328
328
|
return peer;
|
|
329
329
|
}
|
|
330
330
|
|
|
331
|
-
private async _destroyPeer(peerInfo: PeerInfo, reason?: string) {
|
|
331
|
+
private async _destroyPeer(peerInfo: PeerInfo, reason?: string): Promise<void> {
|
|
332
332
|
log('destroy peer', { peerKey: peerInfo.peerKey, reason });
|
|
333
333
|
const peer = this._peers.get(peerInfo);
|
|
334
334
|
invariant(peer);
|
|
@@ -379,7 +379,7 @@ export class Swarm {
|
|
|
379
379
|
/**
|
|
380
380
|
* Creates a connection then sends message over signal network.
|
|
381
381
|
*/
|
|
382
|
-
private async _initiateConnection(remotePeer: PeerInfo) {
|
|
382
|
+
private async _initiateConnection(remotePeer: PeerInfo): Promise<void> {
|
|
383
383
|
const ctx = this._ctx; // Copy to avoid getting reset while sleeping.
|
|
384
384
|
|
|
385
385
|
// It is likely that the other peer will also try to connect to us at the same time.
|
|
@@ -408,7 +408,7 @@ export class Swarm {
|
|
|
408
408
|
log('initiated', { remotePeer });
|
|
409
409
|
}
|
|
410
410
|
|
|
411
|
-
private async _closeConnection(peerInfo: PeerInfo) {
|
|
411
|
+
private async _closeConnection(peerInfo: PeerInfo): Promise<void> {
|
|
412
412
|
const peer = this._peers.get(peerInfo);
|
|
413
413
|
if (!peer) {
|
|
414
414
|
return;
|
|
@@ -417,7 +417,7 @@ export class Swarm {
|
|
|
417
417
|
await peer.closeConnection();
|
|
418
418
|
}
|
|
419
419
|
|
|
420
|
-
private _isConnectionEstablishmentInProgress(peer: Peer) {
|
|
420
|
+
private _isConnectionEstablishmentInProgress(peer: Peer): boolean {
|
|
421
421
|
if (!peer.connection) {
|
|
422
422
|
return true;
|
|
423
423
|
}
|
|
@@ -43,7 +43,7 @@ export class TestBuilder {
|
|
|
43
43
|
|
|
44
44
|
constructor(public readonly options: TestBuilderOptions = {}) {}
|
|
45
45
|
|
|
46
|
-
createSignalManager() {
|
|
46
|
+
createSignalManager(): WebsocketSignalManager | MemorySignalManager {
|
|
47
47
|
if (this.options.signalHosts) {
|
|
48
48
|
return new WebsocketSignalManager(this.options.signalHosts);
|
|
49
49
|
}
|
|
@@ -51,7 +51,7 @@ export class TestBuilder {
|
|
|
51
51
|
return new MemorySignalManager(this._signalContext);
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
createPeer(peerId: PublicKey = PublicKey.random()) {
|
|
54
|
+
createPeer(peerId: PublicKey = PublicKey.random()): TestPeer {
|
|
55
55
|
return new TestPeer(this, peerId, this.options.transport);
|
|
56
56
|
}
|
|
57
57
|
}
|
|
@@ -88,7 +88,7 @@ export class TestPeer {
|
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
// TODO(burdon): Move to TestBuilder.
|
|
91
|
-
createNetworkManager(transport: TransportKind) {
|
|
91
|
+
createNetworkManager(transport: TransportKind): SwarmNetworkManager {
|
|
92
92
|
let transportFactory: TransportFactory;
|
|
93
93
|
if (this.testBuilder.options.signalHosts) {
|
|
94
94
|
log.info(`using ${transport} transport with signal server.`);
|
|
@@ -149,13 +149,13 @@ export class TestPeer {
|
|
|
149
149
|
});
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
-
async open() {
|
|
152
|
+
async open(): Promise<void> {
|
|
153
153
|
await this._networkManager.open();
|
|
154
154
|
await this._proxy?.open();
|
|
155
155
|
await this._service?.open();
|
|
156
156
|
}
|
|
157
157
|
|
|
158
|
-
async close() {
|
|
158
|
+
async close(): Promise<void> {
|
|
159
159
|
await Promise.all(Array.from(this._swarms.values()).map((swarm) => swarm.leave()));
|
|
160
160
|
this._swarms.clear();
|
|
161
161
|
|
|
@@ -184,11 +184,11 @@ export class TestPeer {
|
|
|
184
184
|
return swarm;
|
|
185
185
|
}
|
|
186
186
|
|
|
187
|
-
async goOffline() {
|
|
187
|
+
async goOffline(): Promise<void> {
|
|
188
188
|
await this._networkManager.setConnectionState(ConnectionState.OFFLINE);
|
|
189
189
|
}
|
|
190
190
|
|
|
191
|
-
async goOnline() {
|
|
191
|
+
async goOnline(): Promise<void> {
|
|
192
192
|
await this._networkManager.setConnectionState(ConnectionState.ONLINE);
|
|
193
193
|
}
|
|
194
194
|
}
|
|
@@ -209,7 +209,7 @@ export class TestSwarmConnection {
|
|
|
209
209
|
|
|
210
210
|
// TODO(burdon): Need to create new plugin instance per swarm?
|
|
211
211
|
// If so, then perhaps joinSwarm should return swarm object with access to plugins.
|
|
212
|
-
async join(topology = new FullyConnectedTopology()) {
|
|
212
|
+
async join(topology = new FullyConnectedTopology()): Promise<this> {
|
|
213
213
|
await this.peer._networkManager.joinSwarm({
|
|
214
214
|
topic: this.topic,
|
|
215
215
|
peerInfo: { peerKey: this.peer.peerId.toHex(), identityKey: this.peer.peerId.toHex() },
|
|
@@ -220,7 +220,7 @@ export class TestSwarmConnection {
|
|
|
220
220
|
return this;
|
|
221
221
|
}
|
|
222
222
|
|
|
223
|
-
async leave() {
|
|
223
|
+
async leave(): Promise<this> {
|
|
224
224
|
await this.peer._networkManager.leaveSwarm(this.topic);
|
|
225
225
|
return this;
|
|
226
226
|
}
|
|
@@ -59,7 +59,7 @@ export class TestWireProtocol {
|
|
|
59
59
|
}
|
|
60
60
|
});
|
|
61
61
|
|
|
62
|
-
async waitForConnection(peerId: PublicKey) {
|
|
62
|
+
async waitForConnection(peerId: PublicKey): Promise<TestExtension> {
|
|
63
63
|
if (this.connections.has(peerId)) {
|
|
64
64
|
return this.connections.get(peerId)!;
|
|
65
65
|
}
|
|
@@ -72,7 +72,7 @@ export class TestWireProtocol {
|
|
|
72
72
|
return this.connections.get(peerId)!;
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
-
async testConnection(peerId: PublicKey, message?: string) {
|
|
75
|
+
async testConnection(peerId: PublicKey, message?: string): Promise<void> {
|
|
76
76
|
const connection = await this.waitForConnection(peerId);
|
|
77
77
|
await connection.test(message);
|
|
78
78
|
}
|
|
@@ -61,7 +61,7 @@ export class MMSTTopology implements Topology {
|
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
forceUpdate() {
|
|
64
|
+
forceUpdate(): void {
|
|
65
65
|
this._lastAction = new Date(0);
|
|
66
66
|
this.update();
|
|
67
67
|
}
|
|
@@ -78,7 +78,7 @@ export class MMSTTopology implements Topology {
|
|
|
78
78
|
// Nothing to do.
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
-
private _runAlgorithm() {
|
|
81
|
+
private _runAlgorithm(): void {
|
|
82
82
|
invariant(this._controller, 'Not initialized');
|
|
83
83
|
const { connected, candidates, ownPeerId } = this._controller.getState();
|
|
84
84
|
|
|
@@ -125,7 +125,7 @@ export class MMSTTopology implements Topology {
|
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
-
toString() {
|
|
128
|
+
toString(): string {
|
|
129
129
|
return 'MMSTTopology';
|
|
130
130
|
}
|
|
131
131
|
}
|
|
@@ -70,7 +70,7 @@ export class MemoryTransport implements Transport {
|
|
|
70
70
|
return !this._closed;
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
async open() {
|
|
73
|
+
async open(): Promise<this> {
|
|
74
74
|
log('opening...');
|
|
75
75
|
|
|
76
76
|
// Initiator will send a signal, the receiver will receive the unique ID and connect the streams.
|
|
@@ -126,7 +126,7 @@ export class MemoryTransport implements Transport {
|
|
|
126
126
|
return this;
|
|
127
127
|
}
|
|
128
128
|
|
|
129
|
-
async close() {
|
|
129
|
+
async close(): Promise<this> {
|
|
130
130
|
log('closing...');
|
|
131
131
|
this._closed = true;
|
|
132
132
|
|
|
@@ -159,7 +159,7 @@ export class MemoryTransport implements Transport {
|
|
|
159
159
|
return this;
|
|
160
160
|
}
|
|
161
161
|
|
|
162
|
-
async onSignal({ payload }: Signal) {
|
|
162
|
+
async onSignal({ payload }: Signal): Promise<void> {
|
|
163
163
|
log('received signal', { payload });
|
|
164
164
|
if (!payload?.transportId) {
|
|
165
165
|
return;
|
|
@@ -173,11 +173,16 @@ export class MemoryTransport implements Transport {
|
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
175
|
|
|
176
|
-
async getDetails() {
|
|
176
|
+
async getDetails(): Promise<string> {
|
|
177
177
|
return this._instanceId.toHex();
|
|
178
178
|
}
|
|
179
179
|
|
|
180
|
-
async getStats() {
|
|
180
|
+
async getStats(): Promise<{
|
|
181
|
+
bytesSent: number;
|
|
182
|
+
bytesReceived: number;
|
|
183
|
+
packetsSent: number;
|
|
184
|
+
packetsReceived: number;
|
|
185
|
+
}> {
|
|
181
186
|
return {
|
|
182
187
|
bytesSent: 0,
|
|
183
188
|
bytesReceived: 0,
|
|
@@ -23,15 +23,15 @@ export class TcpTransport implements Transport {
|
|
|
23
23
|
return true;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
async open() {
|
|
26
|
+
async open(): Promise<this> {
|
|
27
27
|
return this;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
async close() {
|
|
30
|
+
async close(): Promise<this> {
|
|
31
31
|
return this;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
async onSignal() {
|
|
34
|
+
async onSignal(): Promise<void> {
|
|
35
35
|
throw new Error('Method not implemented.');
|
|
36
36
|
}
|
|
37
37
|
|
|
@@ -35,7 +35,7 @@ export class TcpTransport implements Transport {
|
|
|
35
35
|
return this._connected && !this._closed;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
async open() {
|
|
38
|
+
async open(): Promise<this> {
|
|
39
39
|
log('opening');
|
|
40
40
|
|
|
41
41
|
// Initiator will send a signal, the receiver will receive the unique ID and connect the streams.
|
|
@@ -75,7 +75,7 @@ export class TcpTransport implements Transport {
|
|
|
75
75
|
return this;
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
async close() {
|
|
78
|
+
async close(): Promise<this> {
|
|
79
79
|
log('closing');
|
|
80
80
|
this._socket?.destroy();
|
|
81
81
|
this._server?.close();
|
|
@@ -83,7 +83,7 @@ export class TcpTransport implements Transport {
|
|
|
83
83
|
return this;
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
async onSignal({ payload }: Signal) {
|
|
86
|
+
async onSignal({ payload }: Signal): Promise<void> {
|
|
87
87
|
log('received signal', { payload });
|
|
88
88
|
if (this.options.initiator || this._connected) {
|
|
89
89
|
return;
|
|
@@ -113,7 +113,7 @@ export class TcpTransport implements Transport {
|
|
|
113
113
|
};
|
|
114
114
|
}
|
|
115
115
|
|
|
116
|
-
private _handleSocket(socket: Socket) {
|
|
116
|
+
private _handleSocket(socket: Socket): void {
|
|
117
117
|
log('handling socket', { remotePort: socket.remotePort, localPort: socket.localPort });
|
|
118
118
|
this._socket = socket;
|
|
119
119
|
|
|
@@ -19,10 +19,10 @@ export interface RtcConnectionFactory {
|
|
|
19
19
|
* Use built-in browser RTCPeerConnection.
|
|
20
20
|
*/
|
|
21
21
|
class BrowserRtcConnectionFactory implements RtcConnectionFactory {
|
|
22
|
-
async initialize() {}
|
|
23
|
-
async onConnectionDestroyed() {}
|
|
22
|
+
async initialize(): Promise<void> {}
|
|
23
|
+
async onConnectionDestroyed(): Promise<void> {}
|
|
24
24
|
|
|
25
|
-
async createConnection(config: RTCConfiguration) {
|
|
25
|
+
async createConnection(config: RTCConfiguration): Promise<RTCPeerConnection> {
|
|
26
26
|
return new RTCPeerConnection(config);
|
|
27
27
|
}
|
|
28
28
|
|
|
@@ -41,8 +41,8 @@ class NodeRtcConnectionFactory implements RtcConnectionFactory {
|
|
|
41
41
|
// eslint-disable-next-line no-new-func
|
|
42
42
|
|
|
43
43
|
// TODO(burdon): Do imports here?
|
|
44
|
-
async initialize() {}
|
|
45
|
-
async onConnectionDestroyed() {
|
|
44
|
+
async initialize(): Promise<void> {}
|
|
45
|
+
async onConnectionDestroyed(): Promise<void> {
|
|
46
46
|
return NodeRtcConnectionFactory._cleanupMutex.executeSynchronized(async () => {
|
|
47
47
|
if (--NodeRtcConnectionFactory._createdConnections === 0) {
|
|
48
48
|
(await import('#node-datachannel')).cleanup();
|