@dxos/network-manager 0.3.9-main.e6215fc → 0.3.9-main.ef334cd
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-HJ6JLRZM.mjs → chunk-7JESB3AJ.mjs} +160 -70
- package/dist/lib/browser/chunk-7JESB3AJ.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +1 -11
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +1 -2
- package/dist/lib/browser/testing/index.mjs.map +1 -1
- package/dist/lib/node/{chunk-XZF4MAFB.cjs → chunk-Y2B5BDRH.cjs} +164 -72
- package/dist/lib/node/chunk-Y2B5BDRH.cjs.map +7 -0
- package/dist/lib/node/index.cjs +27 -36
- package/dist/lib/node/index.cjs.map +2 -2
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/testing/index.cjs +18 -19
- package/dist/lib/node/testing/index.cjs.map +1 -1
- package/dist/types/src/topology/mmst-topology.d.ts +1 -0
- package/dist/types/src/topology/mmst-topology.d.ts.map +1 -1
- package/dist/types/src/transport/index.d.ts +0 -1
- package/dist/types/src/transport/index.d.ts.map +1 -1
- package/dist/types/src/transport/libdatachannel-transport.d.ts +1 -0
- package/dist/types/src/transport/libdatachannel-transport.d.ts.map +1 -1
- package/dist/types/src/transport/simplepeer-transport.d.ts.map +1 -1
- package/package.json +18 -18
- package/src/topology/mmst-topology.ts +34 -6
- package/src/transport/index.ts +0 -1
- package/src/transport/libdatachannel-transport.ts +76 -34
- package/src/transport/simplepeer-transport.ts +4 -5
- package/dist/lib/browser/chunk-HJ6JLRZM.mjs.map +0 -7
- package/dist/lib/browser/chunk-YERMWDRB.mjs +0 -24
- package/dist/lib/browser/chunk-YERMWDRB.mjs.map +0 -7
- package/dist/lib/browser/index.browser-O53CPVK3.mjs +0 -14
- package/dist/lib/browser/index.browser-O53CPVK3.mjs.map +0 -7
- package/dist/lib/node/chunk-JDKM4UPJ.cjs +0 -470
- package/dist/lib/node/chunk-JDKM4UPJ.cjs.map +0 -7
- package/dist/lib/node/chunk-XZF4MAFB.cjs.map +0 -7
- package/dist/lib/node/datachannel-3VTTIMR5.cjs +0 -35
- package/dist/lib/node/datachannel-3VTTIMR5.cjs.map +0 -7
- package/dist/types/src/transport/datachannel/index.browser.d.ts +0 -15
- package/dist/types/src/transport/datachannel/index.browser.d.ts.map +0 -1
- package/dist/types/src/transport/datachannel/index.d.ts +0 -8
- package/dist/types/src/transport/datachannel/index.d.ts.map +0 -1
- package/dist/types/src/transport/datachannel/rtc-data-channel.d.ts +0 -29
- package/dist/types/src/transport/datachannel/rtc-data-channel.d.ts.map +0 -1
- package/dist/types/src/transport/datachannel/rtc-events.d.ts +0 -9
- package/dist/types/src/transport/datachannel/rtc-events.d.ts.map +0 -1
- package/dist/types/src/transport/datachannel/rtc-ice-candidate.d.ts +0 -22
- package/dist/types/src/transport/datachannel/rtc-ice-candidate.d.ts.map +0 -1
- package/dist/types/src/transport/datachannel/rtc-peer-connection.d.ts +0 -54
- package/dist/types/src/transport/datachannel/rtc-peer-connection.d.ts.map +0 -1
- package/dist/types/src/transport/datachannel/rtc-peer-connection.test.d.ts +0 -2
- package/dist/types/src/transport/datachannel/rtc-peer-connection.test.d.ts.map +0 -1
- package/dist/types/src/transport/datachannel/rtc-session-description.d.ts +0 -10
- package/dist/types/src/transport/datachannel/rtc-session-description.d.ts.map +0 -1
- package/src/transport/datachannel/README.md +0 -2
- package/src/transport/datachannel/index.browser.ts +0 -8
- package/src/transport/datachannel/index.ts +0 -17
- package/src/transport/datachannel/rtc-data-channel.ts +0 -148
- package/src/transport/datachannel/rtc-events.ts +0 -23
- package/src/transport/datachannel/rtc-ice-candidate.ts +0 -54
- package/src/transport/datachannel/rtc-peer-connection.test.ts +0 -112
- package/src/transport/datachannel/rtc-peer-connection.ts +0 -355
- package/src/transport/datachannel/rtc-session-description.ts +0 -23
|
@@ -26,8 +26,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
mod
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var
|
|
30
|
-
__export(
|
|
29
|
+
var chunk_Y2B5BDRH_exports = {};
|
|
30
|
+
__export(chunk_Y2B5BDRH_exports, {
|
|
31
31
|
Connection: () => Connection,
|
|
32
32
|
ConnectionLimiter: () => ConnectionLimiter,
|
|
33
33
|
ConnectionLog: () => ConnectionLog,
|
|
@@ -55,8 +55,7 @@ __export(chunk_XZF4MAFB_exports, {
|
|
|
55
55
|
createSimplePeerTransportFactory: () => createSimplePeerTransportFactory,
|
|
56
56
|
createTeleportProtocolFactory: () => createTeleportProtocolFactory
|
|
57
57
|
});
|
|
58
|
-
module.exports = __toCommonJS(
|
|
59
|
-
var import_chunk_JDKM4UPJ = require("./chunk-JDKM4UPJ.cjs");
|
|
58
|
+
module.exports = __toCommonJS(chunk_Y2B5BDRH_exports);
|
|
60
59
|
var import_async = require("@dxos/async");
|
|
61
60
|
var import_context = require("@dxos/context");
|
|
62
61
|
var import_debug = require("@dxos/debug");
|
|
@@ -153,6 +152,13 @@ var import_async12 = require("@dxos/async");
|
|
|
153
152
|
var import_debug8 = require("@dxos/debug");
|
|
154
153
|
var import_log15 = require("@dxos/log");
|
|
155
154
|
var import_teleport = require("@dxos/teleport");
|
|
155
|
+
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
156
|
+
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
157
|
+
}) : x)(function(x) {
|
|
158
|
+
if (typeof require !== "undefined")
|
|
159
|
+
return require.apply(this, arguments);
|
|
160
|
+
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
161
|
+
});
|
|
156
162
|
function _ts_decorate(decorators, target, key, desc) {
|
|
157
163
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
158
164
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
@@ -2415,9 +2421,12 @@ var FullyConnectedTopology = class {
|
|
|
2415
2421
|
}
|
|
2416
2422
|
};
|
|
2417
2423
|
var __dxlog_file9 = "/home/runner/work/dxos/dxos/packages/core/mesh/network-manager/src/topology/mmst-topology.ts";
|
|
2424
|
+
var MIN_UPDATE_INTERVAL = 1e3 * 10;
|
|
2425
|
+
var MAX_CHANGES_PER_UPDATE = 1;
|
|
2418
2426
|
var MMSTTopology = class {
|
|
2419
2427
|
constructor({ originateConnections = 2, maxPeers = 4, sampleSize = 10 } = {}) {
|
|
2420
2428
|
this._sampleCollected = false;
|
|
2429
|
+
this._lastAction = /* @__PURE__ */ new Date(0);
|
|
2421
2430
|
this._originateConnections = originateConnections;
|
|
2422
2431
|
this._maxPeers = maxPeers;
|
|
2423
2432
|
this._sampleSize = sampleSize;
|
|
@@ -2425,7 +2434,7 @@ var MMSTTopology = class {
|
|
|
2425
2434
|
init(controller) {
|
|
2426
2435
|
(0, import_invariant8.invariant)(!this._controller, "Already initialized", {
|
|
2427
2436
|
F: __dxlog_file9,
|
|
2428
|
-
L:
|
|
2437
|
+
L: 51,
|
|
2429
2438
|
S: this,
|
|
2430
2439
|
A: [
|
|
2431
2440
|
"!this._controller",
|
|
@@ -2437,7 +2446,7 @@ var MMSTTopology = class {
|
|
|
2437
2446
|
update() {
|
|
2438
2447
|
(0, import_invariant8.invariant)(this._controller, "Not initialized", {
|
|
2439
2448
|
F: __dxlog_file9,
|
|
2440
|
-
L:
|
|
2449
|
+
L: 56,
|
|
2441
2450
|
S: this,
|
|
2442
2451
|
A: [
|
|
2443
2452
|
"this._controller",
|
|
@@ -2448,7 +2457,7 @@ var MMSTTopology = class {
|
|
|
2448
2457
|
if (this._sampleCollected || connected.length > this._maxPeers || candidates.length > 0) {
|
|
2449
2458
|
(0, import_log8.log)("Running the algorithm.", void 0, {
|
|
2450
2459
|
F: __dxlog_file9,
|
|
2451
|
-
L:
|
|
2460
|
+
L: 60,
|
|
2452
2461
|
S: this,
|
|
2453
2462
|
C: (f, a) => f(...a)
|
|
2454
2463
|
});
|
|
@@ -2459,7 +2468,7 @@ var MMSTTopology = class {
|
|
|
2459
2468
|
async onOffer(peer) {
|
|
2460
2469
|
(0, import_invariant8.invariant)(this._controller, "Not initialized", {
|
|
2461
2470
|
F: __dxlog_file9,
|
|
2462
|
-
L:
|
|
2471
|
+
L: 67,
|
|
2463
2472
|
S: this,
|
|
2464
2473
|
A: [
|
|
2465
2474
|
"this._controller",
|
|
@@ -2470,7 +2479,7 @@ var MMSTTopology = class {
|
|
|
2470
2479
|
const accept = connected.length < this._maxPeers;
|
|
2471
2480
|
(0, import_log8.log)(`Offer ${peer} accept=${accept}`, void 0, {
|
|
2472
2481
|
F: __dxlog_file9,
|
|
2473
|
-
L:
|
|
2482
|
+
L: 70,
|
|
2474
2483
|
S: this,
|
|
2475
2484
|
C: (f, a) => f(...a)
|
|
2476
2485
|
});
|
|
@@ -2481,7 +2490,7 @@ var MMSTTopology = class {
|
|
|
2481
2490
|
_runAlgorithm() {
|
|
2482
2491
|
(0, import_invariant8.invariant)(this._controller, "Not initialized", {
|
|
2483
2492
|
F: __dxlog_file9,
|
|
2484
|
-
L:
|
|
2493
|
+
L: 79,
|
|
2485
2494
|
S: this,
|
|
2486
2495
|
A: [
|
|
2487
2496
|
"this._controller",
|
|
@@ -2490,27 +2499,84 @@ var MMSTTopology = class {
|
|
|
2490
2499
|
});
|
|
2491
2500
|
const { connected, candidates, ownPeerId } = this._controller.getState();
|
|
2492
2501
|
if (connected.length > this._maxPeers) {
|
|
2502
|
+
(0, import_log8.log)(`disconnect ${connected.length - this._maxPeers} peers.`, void 0, {
|
|
2503
|
+
F: __dxlog_file9,
|
|
2504
|
+
L: 85,
|
|
2505
|
+
S: this,
|
|
2506
|
+
C: (f, a) => f(...a)
|
|
2507
|
+
});
|
|
2493
2508
|
const sorted = sortByXorDistance(connected, ownPeerId).reverse().slice(0, this._maxPeers - connected.length);
|
|
2494
|
-
|
|
2495
|
-
|
|
2509
|
+
(0, import_invariant8.invariant)(sorted.length === 0, void 0, {
|
|
2510
|
+
F: __dxlog_file9,
|
|
2511
|
+
L: 89,
|
|
2512
|
+
S: this,
|
|
2513
|
+
A: [
|
|
2514
|
+
"sorted.length === 0",
|
|
2515
|
+
""
|
|
2516
|
+
]
|
|
2517
|
+
});
|
|
2518
|
+
if (sorted.length > MAX_CHANGES_PER_UPDATE) {
|
|
2519
|
+
(0, import_log8.log)(`want to disconnect ${sorted.length} peers but limited to ${MAX_CHANGES_PER_UPDATE}`, void 0, {
|
|
2496
2520
|
F: __dxlog_file9,
|
|
2497
|
-
L:
|
|
2521
|
+
L: 92,
|
|
2522
|
+
S: this,
|
|
2523
|
+
C: (f, a) => f(...a)
|
|
2524
|
+
});
|
|
2525
|
+
}
|
|
2526
|
+
if (Date.now() - this._lastAction.getTime() > MIN_UPDATE_INTERVAL) {
|
|
2527
|
+
for (const peer of sorted.slice(0, MAX_CHANGES_PER_UPDATE)) {
|
|
2528
|
+
(0, import_log8.log)(`Disconnect ${peer}.`, void 0, {
|
|
2529
|
+
F: __dxlog_file9,
|
|
2530
|
+
L: 97,
|
|
2531
|
+
S: this,
|
|
2532
|
+
C: (f, a) => f(...a)
|
|
2533
|
+
});
|
|
2534
|
+
this._controller.disconnect(peer);
|
|
2535
|
+
}
|
|
2536
|
+
this._lastAction = /* @__PURE__ */ new Date();
|
|
2537
|
+
} else {
|
|
2538
|
+
(0, import_log8.log)("rate limited discconnect", void 0, {
|
|
2539
|
+
F: __dxlog_file9,
|
|
2540
|
+
L: 102,
|
|
2498
2541
|
S: this,
|
|
2499
2542
|
C: (f, a) => f(...a)
|
|
2500
2543
|
});
|
|
2501
|
-
this._controller.disconnect(peer);
|
|
2502
2544
|
}
|
|
2503
2545
|
} else if (connected.length < this._originateConnections) {
|
|
2546
|
+
(0, import_log8.log)(`connect ${this._originateConnections - connected.length} peers.`, void 0, {
|
|
2547
|
+
F: __dxlog_file9,
|
|
2548
|
+
L: 106,
|
|
2549
|
+
S: this,
|
|
2550
|
+
C: (f, a) => f(...a)
|
|
2551
|
+
});
|
|
2504
2552
|
const sample = candidates.sort(() => Math.random() - 0.5).slice(0, this._sampleSize);
|
|
2505
2553
|
const sorted = sortByXorDistance(sample, ownPeerId).slice(0, this._originateConnections - connected.length);
|
|
2506
|
-
|
|
2507
|
-
(0, import_log8.log)(`
|
|
2554
|
+
if (sorted.length > MAX_CHANGES_PER_UPDATE) {
|
|
2555
|
+
(0, import_log8.log)(`want to connect ${sorted.length} peers but limited to ${MAX_CHANGES_PER_UPDATE}`, void 0, {
|
|
2508
2556
|
F: __dxlog_file9,
|
|
2509
|
-
L:
|
|
2557
|
+
L: 111,
|
|
2558
|
+
S: this,
|
|
2559
|
+
C: (f, a) => f(...a)
|
|
2560
|
+
});
|
|
2561
|
+
}
|
|
2562
|
+
if (Date.now() - this._lastAction.getTime() > MIN_UPDATE_INTERVAL) {
|
|
2563
|
+
for (const peer of sorted.slice(0, MAX_CHANGES_PER_UPDATE)) {
|
|
2564
|
+
(0, import_log8.log)(`Connect ${peer}.`, void 0, {
|
|
2565
|
+
F: __dxlog_file9,
|
|
2566
|
+
L: 115,
|
|
2567
|
+
S: this,
|
|
2568
|
+
C: (f, a) => f(...a)
|
|
2569
|
+
});
|
|
2570
|
+
this._controller.connect(peer);
|
|
2571
|
+
}
|
|
2572
|
+
this._lastAction = /* @__PURE__ */ new Date();
|
|
2573
|
+
} else {
|
|
2574
|
+
(0, import_log8.log)("rate limited connect", void 0, {
|
|
2575
|
+
F: __dxlog_file9,
|
|
2576
|
+
L: 120,
|
|
2510
2577
|
S: this,
|
|
2511
2578
|
C: (f, a) => f(...a)
|
|
2512
2579
|
});
|
|
2513
|
-
this._controller.connect(peer);
|
|
2514
2580
|
}
|
|
2515
2581
|
}
|
|
2516
2582
|
}
|
|
@@ -2811,7 +2877,7 @@ var TransportKind;
|
|
|
2811
2877
|
})(TransportKind || (TransportKind = {}));
|
|
2812
2878
|
var wrtc = null;
|
|
2813
2879
|
try {
|
|
2814
|
-
wrtc =
|
|
2880
|
+
wrtc = __require("@koush/wrtc");
|
|
2815
2881
|
} catch {
|
|
2816
2882
|
}
|
|
2817
2883
|
var __dxlog_file12 = "/home/runner/work/dxos/dxos/packages/core/mesh/network-manager/src/transport/simplepeer-transport.ts";
|
|
@@ -2981,8 +3047,8 @@ var SimplePeerTransport = class {
|
|
|
2981
3047
|
return {
|
|
2982
3048
|
bytesSent: stats.transport.bytesSent,
|
|
2983
3049
|
bytesReceived: stats.transport.bytesReceived,
|
|
2984
|
-
packetsSent: stats.transport.
|
|
2985
|
-
packetsReceived: stats.transport.
|
|
3050
|
+
packetsSent: stats.transport.packetsSent,
|
|
3051
|
+
packetsReceived: stats.transport.packetsReceived,
|
|
2986
3052
|
rawStats: stats.raw
|
|
2987
3053
|
};
|
|
2988
3054
|
}
|
|
@@ -3015,8 +3081,8 @@ var SimplePeerTransport = class {
|
|
|
3015
3081
|
if (!rc) {
|
|
3016
3082
|
return "unavailable";
|
|
3017
3083
|
}
|
|
3018
|
-
if (rc.relay) {
|
|
3019
|
-
return `${rc.ip}:${rc.port}/${rc.protocol} relay for
|
|
3084
|
+
if (rc.candidateType === "relay") {
|
|
3085
|
+
return `${rc.ip}:${rc.port}/${rc.protocol} relay for ${rc.relatedAddress}:${rc.relatedPort}`;
|
|
3020
3086
|
}
|
|
3021
3087
|
return `${rc.ip}:${rc.port}/${rc.protocol} ${rc.candidateType}`;
|
|
3022
3088
|
}
|
|
@@ -3030,14 +3096,13 @@ var SimplePeerTransport = class {
|
|
|
3030
3096
|
if (this._closed) {
|
|
3031
3097
|
return;
|
|
3032
3098
|
}
|
|
3033
|
-
this._closed = true;
|
|
3034
3099
|
this._disconnectStreams();
|
|
3035
3100
|
this._peer.destroy();
|
|
3036
3101
|
this._closed = true;
|
|
3037
3102
|
this.closed.emit();
|
|
3038
3103
|
(0, import_log11.log)("closed", void 0, {
|
|
3039
3104
|
F: __dxlog_file12,
|
|
3040
|
-
L:
|
|
3105
|
+
L: 200,
|
|
3041
3106
|
S: this,
|
|
3042
3107
|
C: (f, a) => f(...a)
|
|
3043
3108
|
});
|
|
@@ -3458,17 +3523,24 @@ var LibDataChannelTransport = class {
|
|
|
3458
3523
|
this._readyForCandidates = new import_async11.Trigger();
|
|
3459
3524
|
this._writeCallback = null;
|
|
3460
3525
|
this._peer = (async () => {
|
|
3461
|
-
const { RTCPeerConnection
|
|
3526
|
+
const { RTCPeerConnection } = (await importESM("node-datachannel/polyfill")).default;
|
|
3462
3527
|
if (this._closed) {
|
|
3463
3528
|
this.errors.raise(new Error("connection already closed"));
|
|
3464
3529
|
}
|
|
3465
|
-
|
|
3530
|
+
if (params.webrtcConfig) {
|
|
3531
|
+
params.webrtcConfig.iceServers = params.webrtcConfig.iceServers ?? [];
|
|
3532
|
+
} else {
|
|
3533
|
+
params.webrtcConfig = {
|
|
3534
|
+
iceServers: []
|
|
3535
|
+
};
|
|
3536
|
+
}
|
|
3537
|
+
const peer = new RTCPeerConnection(params.webrtcConfig);
|
|
3466
3538
|
peer.onicecandidateerror = (event) => {
|
|
3467
3539
|
import_log14.log.error("peer.onicecandidateerror", {
|
|
3468
3540
|
event
|
|
3469
3541
|
}, {
|
|
3470
3542
|
F: __dxlog_file15,
|
|
3471
|
-
L:
|
|
3543
|
+
L: 61,
|
|
3472
3544
|
S: this,
|
|
3473
3545
|
C: (f, a) => f(...a)
|
|
3474
3546
|
});
|
|
@@ -3480,7 +3552,7 @@ var LibDataChannelTransport = class {
|
|
|
3480
3552
|
transportConnectionState: this._connected
|
|
3481
3553
|
}, {
|
|
3482
3554
|
F: __dxlog_file15,
|
|
3483
|
-
L:
|
|
3555
|
+
L: 65,
|
|
3484
3556
|
S: this,
|
|
3485
3557
|
C: (f, a) => f(...a)
|
|
3486
3558
|
});
|
|
@@ -3490,7 +3562,7 @@ var LibDataChannelTransport = class {
|
|
|
3490
3562
|
event
|
|
3491
3563
|
}, {
|
|
3492
3564
|
F: __dxlog_file15,
|
|
3493
|
-
L:
|
|
3565
|
+
L: 74,
|
|
3494
3566
|
S: this,
|
|
3495
3567
|
C: (f, a) => f(...a)
|
|
3496
3568
|
});
|
|
@@ -3514,7 +3586,7 @@ var LibDataChannelTransport = class {
|
|
|
3514
3586
|
err
|
|
3515
3587
|
}, {
|
|
3516
3588
|
F: __dxlog_file15,
|
|
3517
|
-
L:
|
|
3589
|
+
L: 91,
|
|
3518
3590
|
S: this,
|
|
3519
3591
|
C: (f, a) => f(...a)
|
|
3520
3592
|
});
|
|
@@ -3523,12 +3595,15 @@ var LibDataChannelTransport = class {
|
|
|
3523
3595
|
};
|
|
3524
3596
|
if (params.initiator) {
|
|
3525
3597
|
peer.createOffer().then(async (offer) => {
|
|
3598
|
+
if (this._closed) {
|
|
3599
|
+
return;
|
|
3600
|
+
}
|
|
3526
3601
|
if (peer.connectionState !== "connecting") {
|
|
3527
3602
|
import_log14.log.error("i am initiator but peer not in state connecting", {
|
|
3528
3603
|
peer
|
|
3529
3604
|
}, {
|
|
3530
3605
|
F: __dxlog_file15,
|
|
3531
|
-
L:
|
|
3606
|
+
L: 104,
|
|
3532
3607
|
S: this,
|
|
3533
3608
|
C: (f, a) => f(...a)
|
|
3534
3609
|
});
|
|
@@ -3538,7 +3613,7 @@ var LibDataChannelTransport = class {
|
|
|
3538
3613
|
offer
|
|
3539
3614
|
}, {
|
|
3540
3615
|
F: __dxlog_file15,
|
|
3541
|
-
L:
|
|
3616
|
+
L: 107,
|
|
3542
3617
|
S: this,
|
|
3543
3618
|
C: (f, a) => f(...a)
|
|
3544
3619
|
});
|
|
@@ -3558,7 +3633,7 @@ var LibDataChannelTransport = class {
|
|
|
3558
3633
|
this.handleChannel(peer.createDataChannel(DATACHANNEL_LABEL));
|
|
3559
3634
|
import_log14.log.debug("created data channel", void 0, {
|
|
3560
3635
|
F: __dxlog_file15,
|
|
3561
|
-
L:
|
|
3636
|
+
L: 116,
|
|
3562
3637
|
S: this,
|
|
3563
3638
|
C: (f, a) => f(...a)
|
|
3564
3639
|
});
|
|
@@ -3571,7 +3646,7 @@ var LibDataChannelTransport = class {
|
|
|
3571
3646
|
event
|
|
3572
3647
|
}, {
|
|
3573
3648
|
F: __dxlog_file15,
|
|
3574
|
-
L:
|
|
3649
|
+
L: 122,
|
|
3575
3650
|
S: this,
|
|
3576
3651
|
C: (f, a) => f(...a)
|
|
3577
3652
|
});
|
|
@@ -3589,7 +3664,7 @@ var LibDataChannelTransport = class {
|
|
|
3589
3664
|
this._channel.onopen = () => {
|
|
3590
3665
|
import_log14.log.debug("dataChannel.onopen", void 0, {
|
|
3591
3666
|
F: __dxlog_file15,
|
|
3592
|
-
L:
|
|
3667
|
+
L: 138,
|
|
3593
3668
|
S: this,
|
|
3594
3669
|
C: (f, a) => f(...a)
|
|
3595
3670
|
});
|
|
@@ -3610,7 +3685,7 @@ var LibDataChannelTransport = class {
|
|
|
3610
3685
|
if (this._writeCallback !== null) {
|
|
3611
3686
|
import_log14.log.error("consumer trying to write before we're ready for more data", void 0, {
|
|
3612
3687
|
F: __dxlog_file15,
|
|
3613
|
-
L:
|
|
3688
|
+
L: 155,
|
|
3614
3689
|
S: this,
|
|
3615
3690
|
C: (f, a) => f(...a)
|
|
3616
3691
|
});
|
|
@@ -3635,7 +3710,7 @@ var LibDataChannelTransport = class {
|
|
|
3635
3710
|
err
|
|
3636
3711
|
}, {
|
|
3637
3712
|
F: __dxlog_file15,
|
|
3638
|
-
L:
|
|
3713
|
+
L: 175,
|
|
3639
3714
|
S: this,
|
|
3640
3715
|
C: (f, a) => f(...a)
|
|
3641
3716
|
});
|
|
@@ -3659,6 +3734,12 @@ var LibDataChannelTransport = class {
|
|
|
3659
3734
|
return;
|
|
3660
3735
|
}
|
|
3661
3736
|
await this._disconnectStreams();
|
|
3737
|
+
const peer = await this._peer;
|
|
3738
|
+
try {
|
|
3739
|
+
peer.close();
|
|
3740
|
+
} catch (err) {
|
|
3741
|
+
this.errors.raise(err);
|
|
3742
|
+
}
|
|
3662
3743
|
this._closed = true;
|
|
3663
3744
|
this.closed.emit();
|
|
3664
3745
|
}
|
|
@@ -3672,7 +3753,7 @@ var LibDataChannelTransport = class {
|
|
|
3672
3753
|
peer
|
|
3673
3754
|
}, {
|
|
3674
3755
|
F: __dxlog_file15,
|
|
3675
|
-
L:
|
|
3756
|
+
L: 216,
|
|
3676
3757
|
S: this,
|
|
3677
3758
|
C: (f, a) => f(...a)
|
|
3678
3759
|
});
|
|
@@ -3700,7 +3781,7 @@ var LibDataChannelTransport = class {
|
|
|
3700
3781
|
err
|
|
3701
3782
|
}, {
|
|
3702
3783
|
F: __dxlog_file15,
|
|
3703
|
-
L:
|
|
3784
|
+
L: 227,
|
|
3704
3785
|
S: this,
|
|
3705
3786
|
C: (f, a) => f(...a)
|
|
3706
3787
|
});
|
|
@@ -3720,7 +3801,7 @@ var LibDataChannelTransport = class {
|
|
|
3720
3801
|
err
|
|
3721
3802
|
}, {
|
|
3722
3803
|
F: __dxlog_file15,
|
|
3723
|
-
L:
|
|
3804
|
+
L: 238,
|
|
3724
3805
|
S: this,
|
|
3725
3806
|
C: (f, a) => f(...a)
|
|
3726
3807
|
});
|
|
@@ -3739,7 +3820,7 @@ var LibDataChannelTransport = class {
|
|
|
3739
3820
|
signal
|
|
3740
3821
|
}, {
|
|
3741
3822
|
F: __dxlog_file15,
|
|
3742
|
-
L:
|
|
3823
|
+
L: 249,
|
|
3743
3824
|
S: this,
|
|
3744
3825
|
C: (f, a) => f(...a)
|
|
3745
3826
|
});
|
|
@@ -3748,51 +3829,61 @@ var LibDataChannelTransport = class {
|
|
|
3748
3829
|
}).catch((err) => {
|
|
3749
3830
|
import_log14.log.catch(err, void 0, {
|
|
3750
3831
|
F: __dxlog_file15,
|
|
3751
|
-
L:
|
|
3832
|
+
L: 254,
|
|
3752
3833
|
S: this,
|
|
3753
3834
|
C: (f, a) => f(...a)
|
|
3754
3835
|
});
|
|
3755
3836
|
});
|
|
3756
3837
|
}
|
|
3757
3838
|
async getDetails() {
|
|
3839
|
+
const stats = await this._getStats();
|
|
3840
|
+
const rc = stats?.remoteCandidate;
|
|
3841
|
+
if (!rc) {
|
|
3842
|
+
return "unavailable";
|
|
3843
|
+
}
|
|
3844
|
+
if (rc.candidateType === "relay") {
|
|
3845
|
+
return `${rc.ip}:${rc.port} relay for ${rc.relatedAddress}:${rc.relatedPort}`;
|
|
3846
|
+
}
|
|
3847
|
+
return `${rc.ip}:${rc.port} ${rc.candidateType}`;
|
|
3848
|
+
}
|
|
3849
|
+
async _getStats() {
|
|
3758
3850
|
return this._peer.then(async (peer) => {
|
|
3759
|
-
const
|
|
3760
|
-
|
|
3761
|
-
|
|
3851
|
+
const stats = await peer.getStats();
|
|
3852
|
+
const statsEntries = Array.from(stats.entries());
|
|
3853
|
+
const transport = statsEntries.filter((s) => s[1].type === "transport")[0][1];
|
|
3854
|
+
const candidatePair = statsEntries.filter((s) => s[0] === transport.selectedCandidatePairId);
|
|
3855
|
+
let selectedCandidatePair;
|
|
3856
|
+
let remoteCandidate;
|
|
3857
|
+
if (candidatePair.length > 0) {
|
|
3858
|
+
selectedCandidatePair = candidatePair[0][1];
|
|
3859
|
+
remoteCandidate = statsEntries.filter((s) => s[0] === selectedCandidatePair.remoteCandidateId)[0][1];
|
|
3762
3860
|
}
|
|
3763
|
-
return
|
|
3764
|
-
|
|
3765
|
-
|
|
3766
|
-
|
|
3767
|
-
|
|
3768
|
-
|
|
3769
|
-
C: (f, a) => f(...a)
|
|
3770
|
-
});
|
|
3771
|
-
return "unavailable";
|
|
3861
|
+
return {
|
|
3862
|
+
transport,
|
|
3863
|
+
selectedCandidatePair,
|
|
3864
|
+
remoteCandidate,
|
|
3865
|
+
raw: Object.fromEntries(stats)
|
|
3866
|
+
};
|
|
3772
3867
|
});
|
|
3773
3868
|
}
|
|
3774
3869
|
async getStats() {
|
|
3775
|
-
|
|
3776
|
-
|
|
3777
|
-
bytesSent: peer.bytesSent(),
|
|
3778
|
-
bytesReceived: peer.bytesReceived(),
|
|
3779
|
-
packetsSent: 0,
|
|
3780
|
-
packetsReceived: 0
|
|
3781
|
-
};
|
|
3782
|
-
}).catch((err) => {
|
|
3783
|
-
import_log14.log.catch(err, void 0, {
|
|
3784
|
-
F: __dxlog_file15,
|
|
3785
|
-
L: 266,
|
|
3786
|
-
S: this,
|
|
3787
|
-
C: (f, a) => f(...a)
|
|
3788
|
-
});
|
|
3870
|
+
const stats = await this._getStats();
|
|
3871
|
+
if (!stats) {
|
|
3789
3872
|
return {
|
|
3790
3873
|
bytesSent: 0,
|
|
3791
3874
|
bytesReceived: 0,
|
|
3792
3875
|
packetsSent: 0,
|
|
3793
|
-
packetsReceived: 0
|
|
3876
|
+
packetsReceived: 0,
|
|
3877
|
+
rawStats: {}
|
|
3794
3878
|
};
|
|
3795
|
-
}
|
|
3879
|
+
}
|
|
3880
|
+
return {
|
|
3881
|
+
bytesSent: stats.transport.bytesSent,
|
|
3882
|
+
bytesReceived: stats.transport.bytesReceived,
|
|
3883
|
+
packetsSent: 0,
|
|
3884
|
+
packetsReceived: 0,
|
|
3885
|
+
rawStats: stats.raw
|
|
3886
|
+
};
|
|
3796
3887
|
}
|
|
3797
3888
|
// TODO(nf): add classmethod to call node-datachannel.cleanup() when all instances have been destroyed?
|
|
3798
3889
|
async destroy() {
|
|
@@ -3811,6 +3902,7 @@ var createLibDataChannelTransportFactory = (webrtcConfig) => ({
|
|
|
3811
3902
|
webrtcConfig
|
|
3812
3903
|
})
|
|
3813
3904
|
});
|
|
3905
|
+
var importESM = Function("path", "return import(path)");
|
|
3814
3906
|
var __dxlog_file16 = "/home/runner/work/dxos/dxos/packages/core/mesh/network-manager/src/transport/tcp-transport.ts";
|
|
3815
3907
|
var TcpTransportFactory = {
|
|
3816
3908
|
createTransport: (params) => new TcpTransport(params)
|
|
@@ -3998,4 +4090,4 @@ var createTeleportProtocolFactory = (onConnection) => {
|
|
|
3998
4090
|
createSimplePeerTransportFactory,
|
|
3999
4091
|
createTeleportProtocolFactory
|
|
4000
4092
|
});
|
|
4001
|
-
//# sourceMappingURL=chunk-
|
|
4093
|
+
//# sourceMappingURL=chunk-Y2B5BDRH.cjs.map
|