@dxos/network-manager 0.3.9-main.3fcc0fa → 0.3.9-main.4e39f3a
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-KGZ5C6JO.mjs → chunk-6B4JGIV2.mjs} +91 -52
- package/dist/lib/browser/chunk-6B4JGIV2.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 +3 -3
- package/dist/lib/node/{chunk-WUBZ4UOJ.cjs → chunk-Y2B5BDRH.cjs} +87 -54
- package/dist/lib/node/{chunk-WUBZ4UOJ.cjs.map → chunk-Y2B5BDRH.cjs.map} +3 -3
- 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/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/package.json +18 -18
- package/src/transport/index.ts +0 -1
- package/src/transport/libdatachannel-transport.ts +76 -34
- package/src/transport/simplepeer-transport.ts +2 -2
- package/dist/lib/browser/chunk-KGZ5C6JO.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/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
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
import "@dxos/node-std/globals";
|
|
2
|
+
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
3
|
+
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
4
|
+
}) : x)(function(x) {
|
|
5
|
+
if (typeof require !== "undefined")
|
|
6
|
+
return require.apply(this, arguments);
|
|
7
|
+
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
// inject-globals:@inject-globals
|
|
2
11
|
import {
|
|
3
|
-
|
|
4
|
-
|
|
12
|
+
global,
|
|
13
|
+
Buffer as Buffer2,
|
|
14
|
+
process
|
|
15
|
+
} from "@dxos/node-std/inject-globals";
|
|
5
16
|
|
|
6
17
|
// packages/core/mesh/network-manager/src/swarm/connection.ts
|
|
7
18
|
import { DeferredTask, Event, sleep, scheduleTask, scheduleTaskInterval, synchronized } from "@dxos/async";
|
|
@@ -3004,8 +3015,8 @@ var SimplePeerTransport = class {
|
|
|
3004
3015
|
return {
|
|
3005
3016
|
bytesSent: stats.transport.bytesSent,
|
|
3006
3017
|
bytesReceived: stats.transport.bytesReceived,
|
|
3007
|
-
packetsSent: stats.transport.
|
|
3008
|
-
packetsReceived: stats.transport.
|
|
3018
|
+
packetsSent: stats.transport.packetsSent,
|
|
3019
|
+
packetsReceived: stats.transport.packetsReceived,
|
|
3009
3020
|
rawStats: stats.raw
|
|
3010
3021
|
};
|
|
3011
3022
|
}
|
|
@@ -3507,17 +3518,24 @@ var LibDataChannelTransport = class {
|
|
|
3507
3518
|
this._readyForCandidates = new Trigger2();
|
|
3508
3519
|
this._writeCallback = null;
|
|
3509
3520
|
this._peer = (async () => {
|
|
3510
|
-
const { RTCPeerConnection
|
|
3521
|
+
const { RTCPeerConnection } = (await importESM("node-datachannel/polyfill")).default;
|
|
3511
3522
|
if (this._closed) {
|
|
3512
3523
|
this.errors.raise(new Error("connection already closed"));
|
|
3513
3524
|
}
|
|
3514
|
-
|
|
3525
|
+
if (params.webrtcConfig) {
|
|
3526
|
+
params.webrtcConfig.iceServers = params.webrtcConfig.iceServers ?? [];
|
|
3527
|
+
} else {
|
|
3528
|
+
params.webrtcConfig = {
|
|
3529
|
+
iceServers: []
|
|
3530
|
+
};
|
|
3531
|
+
}
|
|
3532
|
+
const peer = new RTCPeerConnection(params.webrtcConfig);
|
|
3515
3533
|
peer.onicecandidateerror = (event) => {
|
|
3516
3534
|
log14.error("peer.onicecandidateerror", {
|
|
3517
3535
|
event
|
|
3518
3536
|
}, {
|
|
3519
3537
|
F: __dxlog_file15,
|
|
3520
|
-
L:
|
|
3538
|
+
L: 61,
|
|
3521
3539
|
S: this,
|
|
3522
3540
|
C: (f, a) => f(...a)
|
|
3523
3541
|
});
|
|
@@ -3529,7 +3547,7 @@ var LibDataChannelTransport = class {
|
|
|
3529
3547
|
transportConnectionState: this._connected
|
|
3530
3548
|
}, {
|
|
3531
3549
|
F: __dxlog_file15,
|
|
3532
|
-
L:
|
|
3550
|
+
L: 65,
|
|
3533
3551
|
S: this,
|
|
3534
3552
|
C: (f, a) => f(...a)
|
|
3535
3553
|
});
|
|
@@ -3539,7 +3557,7 @@ var LibDataChannelTransport = class {
|
|
|
3539
3557
|
event
|
|
3540
3558
|
}, {
|
|
3541
3559
|
F: __dxlog_file15,
|
|
3542
|
-
L:
|
|
3560
|
+
L: 74,
|
|
3543
3561
|
S: this,
|
|
3544
3562
|
C: (f, a) => f(...a)
|
|
3545
3563
|
});
|
|
@@ -3563,7 +3581,7 @@ var LibDataChannelTransport = class {
|
|
|
3563
3581
|
err
|
|
3564
3582
|
}, {
|
|
3565
3583
|
F: __dxlog_file15,
|
|
3566
|
-
L:
|
|
3584
|
+
L: 91,
|
|
3567
3585
|
S: this,
|
|
3568
3586
|
C: (f, a) => f(...a)
|
|
3569
3587
|
});
|
|
@@ -3572,12 +3590,15 @@ var LibDataChannelTransport = class {
|
|
|
3572
3590
|
};
|
|
3573
3591
|
if (params.initiator) {
|
|
3574
3592
|
peer.createOffer().then(async (offer) => {
|
|
3593
|
+
if (this._closed) {
|
|
3594
|
+
return;
|
|
3595
|
+
}
|
|
3575
3596
|
if (peer.connectionState !== "connecting") {
|
|
3576
3597
|
log14.error("i am initiator but peer not in state connecting", {
|
|
3577
3598
|
peer
|
|
3578
3599
|
}, {
|
|
3579
3600
|
F: __dxlog_file15,
|
|
3580
|
-
L:
|
|
3601
|
+
L: 104,
|
|
3581
3602
|
S: this,
|
|
3582
3603
|
C: (f, a) => f(...a)
|
|
3583
3604
|
});
|
|
@@ -3587,7 +3608,7 @@ var LibDataChannelTransport = class {
|
|
|
3587
3608
|
offer
|
|
3588
3609
|
}, {
|
|
3589
3610
|
F: __dxlog_file15,
|
|
3590
|
-
L:
|
|
3611
|
+
L: 107,
|
|
3591
3612
|
S: this,
|
|
3592
3613
|
C: (f, a) => f(...a)
|
|
3593
3614
|
});
|
|
@@ -3607,7 +3628,7 @@ var LibDataChannelTransport = class {
|
|
|
3607
3628
|
this.handleChannel(peer.createDataChannel(DATACHANNEL_LABEL));
|
|
3608
3629
|
log14.debug("created data channel", void 0, {
|
|
3609
3630
|
F: __dxlog_file15,
|
|
3610
|
-
L:
|
|
3631
|
+
L: 116,
|
|
3611
3632
|
S: this,
|
|
3612
3633
|
C: (f, a) => f(...a)
|
|
3613
3634
|
});
|
|
@@ -3620,7 +3641,7 @@ var LibDataChannelTransport = class {
|
|
|
3620
3641
|
event
|
|
3621
3642
|
}, {
|
|
3622
3643
|
F: __dxlog_file15,
|
|
3623
|
-
L:
|
|
3644
|
+
L: 122,
|
|
3624
3645
|
S: this,
|
|
3625
3646
|
C: (f, a) => f(...a)
|
|
3626
3647
|
});
|
|
@@ -3638,7 +3659,7 @@ var LibDataChannelTransport = class {
|
|
|
3638
3659
|
this._channel.onopen = () => {
|
|
3639
3660
|
log14.debug("dataChannel.onopen", void 0, {
|
|
3640
3661
|
F: __dxlog_file15,
|
|
3641
|
-
L:
|
|
3662
|
+
L: 138,
|
|
3642
3663
|
S: this,
|
|
3643
3664
|
C: (f, a) => f(...a)
|
|
3644
3665
|
});
|
|
@@ -3659,7 +3680,7 @@ var LibDataChannelTransport = class {
|
|
|
3659
3680
|
if (this._writeCallback !== null) {
|
|
3660
3681
|
log14.error("consumer trying to write before we're ready for more data", void 0, {
|
|
3661
3682
|
F: __dxlog_file15,
|
|
3662
|
-
L:
|
|
3683
|
+
L: 155,
|
|
3663
3684
|
S: this,
|
|
3664
3685
|
C: (f, a) => f(...a)
|
|
3665
3686
|
});
|
|
@@ -3684,7 +3705,7 @@ var LibDataChannelTransport = class {
|
|
|
3684
3705
|
err
|
|
3685
3706
|
}, {
|
|
3686
3707
|
F: __dxlog_file15,
|
|
3687
|
-
L:
|
|
3708
|
+
L: 175,
|
|
3688
3709
|
S: this,
|
|
3689
3710
|
C: (f, a) => f(...a)
|
|
3690
3711
|
});
|
|
@@ -3693,7 +3714,7 @@ var LibDataChannelTransport = class {
|
|
|
3693
3714
|
this._channel.onmessage = (event) => {
|
|
3694
3715
|
let data = event.data;
|
|
3695
3716
|
if (data instanceof ArrayBuffer) {
|
|
3696
|
-
data =
|
|
3717
|
+
data = Buffer2.from(data);
|
|
3697
3718
|
}
|
|
3698
3719
|
this._stream.push(data);
|
|
3699
3720
|
};
|
|
@@ -3708,6 +3729,12 @@ var LibDataChannelTransport = class {
|
|
|
3708
3729
|
return;
|
|
3709
3730
|
}
|
|
3710
3731
|
await this._disconnectStreams();
|
|
3732
|
+
const peer = await this._peer;
|
|
3733
|
+
try {
|
|
3734
|
+
peer.close();
|
|
3735
|
+
} catch (err) {
|
|
3736
|
+
this.errors.raise(err);
|
|
3737
|
+
}
|
|
3711
3738
|
this._closed = true;
|
|
3712
3739
|
this.closed.emit();
|
|
3713
3740
|
}
|
|
@@ -3721,7 +3748,7 @@ var LibDataChannelTransport = class {
|
|
|
3721
3748
|
peer
|
|
3722
3749
|
}, {
|
|
3723
3750
|
F: __dxlog_file15,
|
|
3724
|
-
L:
|
|
3751
|
+
L: 216,
|
|
3725
3752
|
S: this,
|
|
3726
3753
|
C: (f, a) => f(...a)
|
|
3727
3754
|
});
|
|
@@ -3749,7 +3776,7 @@ var LibDataChannelTransport = class {
|
|
|
3749
3776
|
err
|
|
3750
3777
|
}, {
|
|
3751
3778
|
F: __dxlog_file15,
|
|
3752
|
-
L:
|
|
3779
|
+
L: 227,
|
|
3753
3780
|
S: this,
|
|
3754
3781
|
C: (f, a) => f(...a)
|
|
3755
3782
|
});
|
|
@@ -3769,7 +3796,7 @@ var LibDataChannelTransport = class {
|
|
|
3769
3796
|
err
|
|
3770
3797
|
}, {
|
|
3771
3798
|
F: __dxlog_file15,
|
|
3772
|
-
L:
|
|
3799
|
+
L: 238,
|
|
3773
3800
|
S: this,
|
|
3774
3801
|
C: (f, a) => f(...a)
|
|
3775
3802
|
});
|
|
@@ -3788,7 +3815,7 @@ var LibDataChannelTransport = class {
|
|
|
3788
3815
|
signal
|
|
3789
3816
|
}, {
|
|
3790
3817
|
F: __dxlog_file15,
|
|
3791
|
-
L:
|
|
3818
|
+
L: 249,
|
|
3792
3819
|
S: this,
|
|
3793
3820
|
C: (f, a) => f(...a)
|
|
3794
3821
|
});
|
|
@@ -3797,51 +3824,61 @@ var LibDataChannelTransport = class {
|
|
|
3797
3824
|
}).catch((err) => {
|
|
3798
3825
|
log14.catch(err, void 0, {
|
|
3799
3826
|
F: __dxlog_file15,
|
|
3800
|
-
L:
|
|
3827
|
+
L: 254,
|
|
3801
3828
|
S: this,
|
|
3802
3829
|
C: (f, a) => f(...a)
|
|
3803
3830
|
});
|
|
3804
3831
|
});
|
|
3805
3832
|
}
|
|
3806
3833
|
async getDetails() {
|
|
3834
|
+
const stats = await this._getStats();
|
|
3835
|
+
const rc = stats?.remoteCandidate;
|
|
3836
|
+
if (!rc) {
|
|
3837
|
+
return "unavailable";
|
|
3838
|
+
}
|
|
3839
|
+
if (rc.candidateType === "relay") {
|
|
3840
|
+
return `${rc.ip}:${rc.port} relay for ${rc.relatedAddress}:${rc.relatedPort}`;
|
|
3841
|
+
}
|
|
3842
|
+
return `${rc.ip}:${rc.port} ${rc.candidateType}`;
|
|
3843
|
+
}
|
|
3844
|
+
async _getStats() {
|
|
3807
3845
|
return this._peer.then(async (peer) => {
|
|
3808
|
-
const
|
|
3809
|
-
|
|
3810
|
-
|
|
3846
|
+
const stats = await peer.getStats();
|
|
3847
|
+
const statsEntries = Array.from(stats.entries());
|
|
3848
|
+
const transport = statsEntries.filter((s) => s[1].type === "transport")[0][1];
|
|
3849
|
+
const candidatePair = statsEntries.filter((s) => s[0] === transport.selectedCandidatePairId);
|
|
3850
|
+
let selectedCandidatePair;
|
|
3851
|
+
let remoteCandidate;
|
|
3852
|
+
if (candidatePair.length > 0) {
|
|
3853
|
+
selectedCandidatePair = candidatePair[0][1];
|
|
3854
|
+
remoteCandidate = statsEntries.filter((s) => s[0] === selectedCandidatePair.remoteCandidateId)[0][1];
|
|
3811
3855
|
}
|
|
3812
|
-
return
|
|
3813
|
-
|
|
3814
|
-
|
|
3815
|
-
|
|
3816
|
-
|
|
3817
|
-
|
|
3818
|
-
C: (f, a) => f(...a)
|
|
3819
|
-
});
|
|
3820
|
-
return "unavailable";
|
|
3856
|
+
return {
|
|
3857
|
+
transport,
|
|
3858
|
+
selectedCandidatePair,
|
|
3859
|
+
remoteCandidate,
|
|
3860
|
+
raw: Object.fromEntries(stats)
|
|
3861
|
+
};
|
|
3821
3862
|
});
|
|
3822
3863
|
}
|
|
3823
3864
|
async getStats() {
|
|
3824
|
-
|
|
3825
|
-
|
|
3826
|
-
bytesSent: peer.bytesSent(),
|
|
3827
|
-
bytesReceived: peer.bytesReceived(),
|
|
3828
|
-
packetsSent: 0,
|
|
3829
|
-
packetsReceived: 0
|
|
3830
|
-
};
|
|
3831
|
-
}).catch((err) => {
|
|
3832
|
-
log14.catch(err, void 0, {
|
|
3833
|
-
F: __dxlog_file15,
|
|
3834
|
-
L: 266,
|
|
3835
|
-
S: this,
|
|
3836
|
-
C: (f, a) => f(...a)
|
|
3837
|
-
});
|
|
3865
|
+
const stats = await this._getStats();
|
|
3866
|
+
if (!stats) {
|
|
3838
3867
|
return {
|
|
3839
3868
|
bytesSent: 0,
|
|
3840
3869
|
bytesReceived: 0,
|
|
3841
3870
|
packetsSent: 0,
|
|
3842
|
-
packetsReceived: 0
|
|
3871
|
+
packetsReceived: 0,
|
|
3872
|
+
rawStats: {}
|
|
3843
3873
|
};
|
|
3844
|
-
}
|
|
3874
|
+
}
|
|
3875
|
+
return {
|
|
3876
|
+
bytesSent: stats.transport.bytesSent,
|
|
3877
|
+
bytesReceived: stats.transport.bytesReceived,
|
|
3878
|
+
packetsSent: 0,
|
|
3879
|
+
packetsReceived: 0,
|
|
3880
|
+
rawStats: stats.raw
|
|
3881
|
+
};
|
|
3845
3882
|
}
|
|
3846
3883
|
// TODO(nf): add classmethod to call node-datachannel.cleanup() when all instances have been destroyed?
|
|
3847
3884
|
async destroy() {
|
|
@@ -3860,6 +3897,7 @@ var createLibDataChannelTransportFactory = (webrtcConfig) => ({
|
|
|
3860
3897
|
webrtcConfig
|
|
3861
3898
|
})
|
|
3862
3899
|
});
|
|
3900
|
+
var importESM = Function("path", "return import(path)");
|
|
3863
3901
|
|
|
3864
3902
|
// packages/core/mesh/network-manager/src/transport/tcp-transport.browser.ts
|
|
3865
3903
|
import { Event as Event11 } from "@dxos/async";
|
|
@@ -3909,6 +3947,7 @@ var createTeleportProtocolFactory = (onConnection) => {
|
|
|
3909
3947
|
};
|
|
3910
3948
|
|
|
3911
3949
|
export {
|
|
3950
|
+
process,
|
|
3912
3951
|
ConnectionState,
|
|
3913
3952
|
Connection,
|
|
3914
3953
|
SwarmMessenger,
|
|
@@ -3936,4 +3975,4 @@ export {
|
|
|
3936
3975
|
TcpTransport,
|
|
3937
3976
|
createTeleportProtocolFactory
|
|
3938
3977
|
};
|
|
3939
|
-
//# sourceMappingURL=chunk-
|
|
3978
|
+
//# sourceMappingURL=chunk-6B4JGIV2.mjs.map
|