@libp2p/webrtc 2.0.2 → 2.0.3
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/index.min.js +16 -16
- package/dist/src/index.d.ts +19 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +20 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/muxer.d.ts +15 -12
- package/dist/src/muxer.d.ts.map +1 -1
- package/dist/src/muxer.js +16 -25
- package/dist/src/muxer.js.map +1 -1
- package/dist/src/private-to-private/handler.d.ts +5 -2
- package/dist/src/private-to-private/handler.d.ts.map +1 -1
- package/dist/src/private-to-private/handler.js +4 -4
- package/dist/src/private-to-private/handler.js.map +1 -1
- package/dist/src/private-to-private/transport.d.ts +3 -1
- package/dist/src/private-to-private/transport.d.ts.map +1 -1
- package/dist/src/private-to-private/transport.js +4 -2
- package/dist/src/private-to-private/transport.js.map +1 -1
- package/dist/src/private-to-public/transport.d.ts +6 -1
- package/dist/src/private-to-public/transport.d.ts.map +1 -1
- package/dist/src/private-to-public/transport.js +5 -3
- package/dist/src/private-to-public/transport.js.map +1 -1
- package/dist/src/stream.d.ts +13 -0
- package/dist/src/stream.d.ts.map +1 -1
- package/dist/src/stream.js +31 -1
- package/dist/src/stream.js.map +1 -1
- package/package.json +2 -1
- package/src/index.ts +21 -4
- package/src/muxer.ts +25 -29
- package/src/private-to-private/handler.ts +7 -6
- package/src/private-to-private/transport.ts +6 -2
- package/src/private-to-public/transport.ts +10 -5
- package/src/stream.ts +49 -2
package/dist/src/index.d.ts
CHANGED
|
@@ -1,7 +1,24 @@
|
|
|
1
|
-
import { type WebRTCDirectTransportComponents } from './private-to-public/transport.js';
|
|
1
|
+
import { type WebRTCTransportDirectInit, type WebRTCDirectTransportComponents } from './private-to-public/transport.js';
|
|
2
2
|
import type { WebRTCTransportComponents, WebRTCTransportInit } from './private-to-private/transport.js';
|
|
3
3
|
import type { Transport } from '@libp2p/interface-transport';
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* @param {WebRTCTransportDirectInit} init - WebRTC direct transport configuration
|
|
6
|
+
* @param init.dataChannel - DataChannel configurations
|
|
7
|
+
* @param {number} init.dataChannel.maxMessageSize - Max message size that can be sent through the DataChannel. Larger messages will be chunked into smaller messages below this size (default 16kb)
|
|
8
|
+
* @param {number} init.dataChannel.maxBufferedAmount - Max buffered amount a DataChannel can have (default 16mb)
|
|
9
|
+
* @param {number} init.dataChannel.bufferedAmountLowEventTimeout - If max buffered amount is reached, this is the max time that is waited before the buffer is cleared (default 30 seconds)
|
|
10
|
+
* @returns
|
|
11
|
+
*/
|
|
12
|
+
declare function webRTCDirect(init?: WebRTCTransportDirectInit): (components: WebRTCDirectTransportComponents) => Transport;
|
|
13
|
+
/**
|
|
14
|
+
* @param {WebRTCTransportInit} init - WebRTC transport configuration
|
|
15
|
+
* @param {RTCConfiguration} init.rtcConfiguration - RTCConfiguration
|
|
16
|
+
* @param init.dataChannel - DataChannel configurations
|
|
17
|
+
* @param {number} init.dataChannel.maxMessageSize - Max message size that can be sent through the DataChannel. Larger messages will be chunked into smaller messages below this size (default 16kb)
|
|
18
|
+
* @param {number} init.dataChannel.maxBufferedAmount - Max buffered amount a DataChannel can have (default 16mb)
|
|
19
|
+
* @param {number} init.dataChannel.bufferedAmountLowEventTimeout - If max buffered amount is reached, this is the max time that is waited before the buffer is cleared (default 30 seconds)
|
|
20
|
+
* @returns
|
|
21
|
+
*/
|
|
5
22
|
declare function webRTC(init?: WebRTCTransportInit): (components: WebRTCTransportComponents) => Transport;
|
|
6
23
|
export { webRTC, webRTCDirect };
|
|
7
24
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,KAAK,+BAA+B,EAAE,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,KAAK,yBAAyB,EAAE,KAAK,+BAA+B,EAAE,MAAM,kCAAkC,CAAA;AAC9I,OAAO,KAAK,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAE5D;;;;;;;GAOG;AACH,iBAAS,YAAY,CAAE,IAAI,CAAC,EAAE,yBAAyB,GAAG,CAAC,UAAU,EAAE,+BAA+B,KAAK,SAAS,CAEnH;AAED;;;;;;;;GAQG;AACH,iBAAS,MAAM,CAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,CAAC,UAAU,EAAE,yBAAyB,KAAK,SAAS,CAEjG;AAED,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAA"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,10 +1,27 @@
|
|
|
1
1
|
import { WebRTCTransport } from './private-to-private/transport.js';
|
|
2
2
|
import { WebRTCDirectTransport } from './private-to-public/transport.js';
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
/**
|
|
4
|
+
* @param {WebRTCTransportDirectInit} init - WebRTC direct transport configuration
|
|
5
|
+
* @param init.dataChannel - DataChannel configurations
|
|
6
|
+
* @param {number} init.dataChannel.maxMessageSize - Max message size that can be sent through the DataChannel. Larger messages will be chunked into smaller messages below this size (default 16kb)
|
|
7
|
+
* @param {number} init.dataChannel.maxBufferedAmount - Max buffered amount a DataChannel can have (default 16mb)
|
|
8
|
+
* @param {number} init.dataChannel.bufferedAmountLowEventTimeout - If max buffered amount is reached, this is the max time that is waited before the buffer is cleared (default 30 seconds)
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
function webRTCDirect(init) {
|
|
12
|
+
return (components) => new WebRTCDirectTransport(components, init);
|
|
5
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* @param {WebRTCTransportInit} init - WebRTC transport configuration
|
|
16
|
+
* @param {RTCConfiguration} init.rtcConfiguration - RTCConfiguration
|
|
17
|
+
* @param init.dataChannel - DataChannel configurations
|
|
18
|
+
* @param {number} init.dataChannel.maxMessageSize - Max message size that can be sent through the DataChannel. Larger messages will be chunked into smaller messages below this size (default 16kb)
|
|
19
|
+
* @param {number} init.dataChannel.maxBufferedAmount - Max buffered amount a DataChannel can have (default 16mb)
|
|
20
|
+
* @param {number} init.dataChannel.bufferedAmountLowEventTimeout - If max buffered amount is reached, this is the max time that is waited before the buffer is cleared (default 30 seconds)
|
|
21
|
+
* @returns
|
|
22
|
+
*/
|
|
6
23
|
function webRTC(init) {
|
|
7
|
-
return (components) => new WebRTCTransport(components, init
|
|
24
|
+
return (components) => new WebRTCTransport(components, init);
|
|
8
25
|
}
|
|
9
26
|
export { webRTC, webRTCDirect };
|
|
10
27
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,EAAE,qBAAqB,EAAwE,MAAM,kCAAkC,CAAA;AAI9I;;;;;;;GAOG;AACH,SAAS,YAAY,CAAE,IAAgC;IACrD,OAAO,CAAC,UAA2C,EAAE,EAAE,CAAC,IAAI,qBAAqB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;AACrG,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,MAAM,CAAE,IAA0B;IACzC,OAAO,CAAC,UAAqC,EAAE,EAAE,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;AACzF,CAAC;AAED,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAA"}
|
package/dist/src/muxer.d.ts
CHANGED
|
@@ -1,36 +1,39 @@
|
|
|
1
|
+
import { type DataChannelOpts } from './stream.js';
|
|
1
2
|
import type { Stream } from '@libp2p/interface-connection';
|
|
2
3
|
import type { CounterGroup } from '@libp2p/interface-metrics';
|
|
3
4
|
import type { StreamMuxer, StreamMuxerFactory, StreamMuxerInit } from '@libp2p/interface-stream-muxer';
|
|
4
5
|
import type { Source, Sink } from 'it-stream-types';
|
|
5
6
|
import type { Uint8ArrayList } from 'uint8arraylist';
|
|
6
7
|
export interface DataChannelMuxerFactoryInit {
|
|
8
|
+
/**
|
|
9
|
+
* WebRTC Peer Connection
|
|
10
|
+
*/
|
|
7
11
|
peerConnection: RTCPeerConnection;
|
|
12
|
+
/**
|
|
13
|
+
* Optional metrics for this data channel muxer
|
|
14
|
+
*/
|
|
8
15
|
metrics?: CounterGroup;
|
|
16
|
+
/**
|
|
17
|
+
* Data channel options
|
|
18
|
+
*/
|
|
19
|
+
dataChannelOptions?: Partial<DataChannelOpts>;
|
|
9
20
|
}
|
|
10
21
|
export declare class DataChannelMuxerFactory implements StreamMuxerFactory {
|
|
22
|
+
readonly init: DataChannelMuxerFactoryInit;
|
|
11
23
|
readonly protocol: string;
|
|
12
24
|
/**
|
|
13
25
|
* WebRTC Peer Connection
|
|
14
26
|
*/
|
|
15
|
-
private readonly peerConnection;
|
|
16
27
|
private streamBuffer;
|
|
17
|
-
|
|
18
|
-
constructor(peerConnection: RTCPeerConnection, metrics?: CounterGroup, protocol?: string);
|
|
28
|
+
constructor(init: DataChannelMuxerFactoryInit, protocol?: string);
|
|
19
29
|
createStreamMuxer(init?: StreamMuxerInit | undefined): StreamMuxer;
|
|
20
30
|
}
|
|
21
31
|
/**
|
|
22
32
|
* A libp2p data channel stream muxer
|
|
23
33
|
*/
|
|
24
34
|
export declare class DataChannelMuxer implements StreamMuxer {
|
|
35
|
+
readonly dataChannelMuxer: DataChannelMuxerFactoryInit;
|
|
25
36
|
readonly protocol: string;
|
|
26
|
-
/**
|
|
27
|
-
* WebRTC Peer Connection
|
|
28
|
-
*/
|
|
29
|
-
private readonly peerConnection;
|
|
30
|
-
/**
|
|
31
|
-
* Optional metrics for this data channel muxer
|
|
32
|
-
*/
|
|
33
|
-
private readonly metrics?;
|
|
34
37
|
/**
|
|
35
38
|
* Array of streams in the data channel
|
|
36
39
|
*/
|
|
@@ -51,7 +54,7 @@ export declare class DataChannelMuxer implements StreamMuxer {
|
|
|
51
54
|
* The stream destination, a no-op as the transport natively supports multiplexing
|
|
52
55
|
*/
|
|
53
56
|
sink: Sink<Source<Uint8Array | Uint8ArrayList>, Promise<void>>;
|
|
54
|
-
constructor(
|
|
57
|
+
constructor(dataChannelMuxer: DataChannelMuxerFactoryInit, streams: Stream[], protocol?: string, init?: StreamMuxerInit);
|
|
55
58
|
newStream(): Stream;
|
|
56
59
|
private wrapStreamEnd;
|
|
57
60
|
}
|
package/dist/src/muxer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"muxer.d.ts","sourceRoot":"","sources":["../../src/muxer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"muxer.d.ts","sourceRoot":"","sources":["../../src/muxer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAgB,MAAM,aAAa,CAAA;AAEhE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AACtG,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,cAAc,EAAE,iBAAiB,CAAA;IAEjC;;OAEG;IACH,OAAO,CAAC,EAAE,YAAY,CAAA;IAEtB;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;CAC9C;AAED,qBAAa,uBAAwB,YAAW,kBAAkB;IAMnD,QAAQ,CAAC,IAAI,EAAE,2BAA2B;IAAE,QAAQ,CAAC,QAAQ;IAL1E;;OAEG;IACH,OAAO,CAAC,YAAY,CAAqB;gBAEnB,IAAI,EAAE,2BAA2B,EAAW,QAAQ,SAAY;IAkBtF,iBAAiB,CAAE,IAAI,CAAC,EAAE,eAAe,GAAG,SAAS,GAAG,WAAW;CAGpE;AAED;;GAEG;AACH,qBAAa,gBAAiB,YAAW,WAAW;IA0BrC,QAAQ,CAAC,gBAAgB,EAAE,2BAA2B;IAAqB,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAzBjH;;OAEG;IACH,OAAO,EAAE,MAAM,EAAE,CAAK;IAEtB;;OAEG;IACH,IAAI,CAAC,EAAE,eAAe,CAAA;IAEtB;;OAEG;IACH,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,KAAK,IAAI,CAAY;IAEpD;;OAEG;IACH,MAAM,EAAE,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC,CAAc;IAE9D;;OAEG;IACH,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,cAAc,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAU;gBAElD,gBAAgB,EAAE,2BAA2B,EAAE,OAAO,EAAE,MAAM,EAAE,EAAW,QAAQ,GAAE,MAAkB,EAAE,IAAI,CAAC,EAAE,eAAe;IA6CrJ,SAAS,IAAK,MAAM;IAwBpB,OAAO,CAAC,aAAa;CAStB"}
|
package/dist/src/muxer.js
CHANGED
|
@@ -1,49 +1,41 @@
|
|
|
1
1
|
import { WebRTCStream } from './stream.js';
|
|
2
2
|
import { nopSink, nopSource } from './util.js';
|
|
3
3
|
export class DataChannelMuxerFactory {
|
|
4
|
+
init;
|
|
4
5
|
protocol;
|
|
5
6
|
/**
|
|
6
7
|
* WebRTC Peer Connection
|
|
7
8
|
*/
|
|
8
|
-
peerConnection;
|
|
9
9
|
streamBuffer = [];
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
constructor(init, protocol = '/webrtc') {
|
|
11
|
+
this.init = init;
|
|
12
12
|
this.protocol = protocol;
|
|
13
|
-
this.peerConnection = peerConnection;
|
|
14
13
|
// store any datachannels opened before upgrade has been completed
|
|
15
|
-
this.peerConnection.ondatachannel = ({ channel }) => {
|
|
14
|
+
this.init.peerConnection.ondatachannel = ({ channel }) => {
|
|
16
15
|
const stream = new WebRTCStream({
|
|
17
16
|
channel,
|
|
18
17
|
stat: {
|
|
19
18
|
direction: 'inbound',
|
|
20
19
|
timeline: { open: 0 }
|
|
21
20
|
},
|
|
21
|
+
dataChannelOptions: init.dataChannelOptions,
|
|
22
22
|
closeCb: (_stream) => {
|
|
23
23
|
this.streamBuffer = this.streamBuffer.filter(s => !_stream.eq(s));
|
|
24
24
|
}
|
|
25
25
|
});
|
|
26
26
|
this.streamBuffer.push(stream);
|
|
27
27
|
};
|
|
28
|
-
this.metrics = metrics;
|
|
29
28
|
}
|
|
30
29
|
createStreamMuxer(init) {
|
|
31
|
-
return new DataChannelMuxer(this.
|
|
30
|
+
return new DataChannelMuxer(this.init, this.streamBuffer, this.protocol, init);
|
|
32
31
|
}
|
|
33
32
|
}
|
|
34
33
|
/**
|
|
35
34
|
* A libp2p data channel stream muxer
|
|
36
35
|
*/
|
|
37
36
|
export class DataChannelMuxer {
|
|
37
|
+
dataChannelMuxer;
|
|
38
38
|
protocol;
|
|
39
|
-
/**
|
|
40
|
-
* WebRTC Peer Connection
|
|
41
|
-
*/
|
|
42
|
-
peerConnection;
|
|
43
|
-
/**
|
|
44
|
-
* Optional metrics for this data channel muxer
|
|
45
|
-
*/
|
|
46
|
-
metrics;
|
|
47
39
|
/**
|
|
48
40
|
* Array of streams in the data channel
|
|
49
41
|
*/
|
|
@@ -64,23 +56,20 @@ export class DataChannelMuxer {
|
|
|
64
56
|
* The stream destination, a no-op as the transport natively supports multiplexing
|
|
65
57
|
*/
|
|
66
58
|
sink = nopSink;
|
|
67
|
-
constructor(
|
|
59
|
+
constructor(dataChannelMuxer, streams, protocol = '/webrtc', init) {
|
|
60
|
+
this.dataChannelMuxer = dataChannelMuxer;
|
|
68
61
|
this.protocol = protocol;
|
|
69
62
|
/**
|
|
70
63
|
* Initialized stream muxer
|
|
71
64
|
*/
|
|
72
65
|
this.init = init;
|
|
73
|
-
/**
|
|
74
|
-
* WebRTC Peer Connection
|
|
75
|
-
*/
|
|
76
|
-
this.peerConnection = peerConnection;
|
|
77
66
|
/**
|
|
78
67
|
* Fired when a data channel has been added to the connection has been
|
|
79
68
|
* added by the remote peer.
|
|
80
69
|
*
|
|
81
70
|
* {@link https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/datachannel_event}
|
|
82
71
|
*/
|
|
83
|
-
this.peerConnection.ondatachannel = ({ channel }) => {
|
|
72
|
+
this.dataChannelMuxer.peerConnection.ondatachannel = ({ channel }) => {
|
|
84
73
|
const stream = new WebRTCStream({
|
|
85
74
|
channel,
|
|
86
75
|
stat: {
|
|
@@ -89,11 +78,12 @@ export class DataChannelMuxer {
|
|
|
89
78
|
open: 0
|
|
90
79
|
}
|
|
91
80
|
},
|
|
81
|
+
dataChannelOptions: dataChannelMuxer.dataChannelOptions,
|
|
92
82
|
closeCb: this.wrapStreamEnd(init?.onIncomingStream)
|
|
93
83
|
});
|
|
94
84
|
this.streams.push(stream);
|
|
95
85
|
if ((init?.onIncomingStream) != null) {
|
|
96
|
-
this.metrics?.increment({ incoming_stream: true });
|
|
86
|
+
this.dataChannelMuxer.metrics?.increment({ incoming_stream: true });
|
|
97
87
|
init.onIncomingStream(stream);
|
|
98
88
|
}
|
|
99
89
|
};
|
|
@@ -111,9 +101,9 @@ export class DataChannelMuxer {
|
|
|
111
101
|
}
|
|
112
102
|
newStream() {
|
|
113
103
|
// The spec says the label SHOULD be an empty string: https://github.com/libp2p/specs/blob/master/webrtc/README.md#rtcdatachannel-label
|
|
114
|
-
const channel = this.peerConnection.createDataChannel('');
|
|
104
|
+
const channel = this.dataChannelMuxer.peerConnection.createDataChannel('');
|
|
115
105
|
const closeCb = (stream) => {
|
|
116
|
-
this.metrics?.increment({ stream_end: true });
|
|
106
|
+
this.dataChannelMuxer.metrics?.increment({ stream_end: true });
|
|
117
107
|
this.init?.onStreamEnd?.(stream);
|
|
118
108
|
};
|
|
119
109
|
const stream = new WebRTCStream({
|
|
@@ -124,10 +114,11 @@ export class DataChannelMuxer {
|
|
|
124
114
|
open: 0
|
|
125
115
|
}
|
|
126
116
|
},
|
|
117
|
+
dataChannelOptions: this.dataChannelMuxer.dataChannelOptions,
|
|
127
118
|
closeCb: this.wrapStreamEnd(closeCb)
|
|
128
119
|
});
|
|
129
120
|
this.streams.push(stream);
|
|
130
|
-
this.metrics?.increment({ outgoing_stream: true });
|
|
121
|
+
this.dataChannelMuxer.metrics?.increment({ outgoing_stream: true });
|
|
131
122
|
return stream;
|
|
132
123
|
}
|
|
133
124
|
wrapStreamEnd(onStreamEnd) {
|
package/dist/src/muxer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"muxer.js","sourceRoot":"","sources":["../../src/muxer.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"muxer.js","sourceRoot":"","sources":["../../src/muxer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
import type { DataChannelOpts } from '../stream.js';
|
|
1
2
|
import type { Stream } from '@libp2p/interface-connection';
|
|
2
3
|
import type { IncomingStreamData } from '@libp2p/interface-registrar';
|
|
3
4
|
import type { StreamMuxerFactory } from '@libp2p/interface-stream-muxer';
|
|
4
5
|
export type IncomingStreamOpts = {
|
|
5
6
|
rtcConfiguration?: RTCConfiguration;
|
|
7
|
+
dataChannelOptions?: Partial<DataChannelOpts>;
|
|
6
8
|
} & IncomingStreamData;
|
|
7
|
-
export declare function handleIncomingStream({ rtcConfiguration, stream: rawStream }: IncomingStreamOpts): Promise<{
|
|
9
|
+
export declare function handleIncomingStream({ rtcConfiguration, dataChannelOptions, stream: rawStream }: IncomingStreamOpts): Promise<{
|
|
8
10
|
pc: RTCPeerConnection;
|
|
9
11
|
muxerFactory: StreamMuxerFactory;
|
|
10
12
|
remoteAddress: string;
|
|
@@ -13,8 +15,9 @@ export interface ConnectOptions {
|
|
|
13
15
|
stream: Stream;
|
|
14
16
|
signal: AbortSignal;
|
|
15
17
|
rtcConfiguration?: RTCConfiguration;
|
|
18
|
+
dataChannelOptions?: Partial<DataChannelOpts>;
|
|
16
19
|
}
|
|
17
|
-
export declare function initiateConnection({ rtcConfiguration, signal, stream: rawStream }: ConnectOptions): Promise<{
|
|
20
|
+
export declare function initiateConnection({ rtcConfiguration, dataChannelOptions, signal, stream: rawStream }: ConnectOptions): Promise<{
|
|
18
21
|
pc: RTCPeerConnection;
|
|
19
22
|
muxerFactory: StreamMuxerFactory;
|
|
20
23
|
remoteAddress: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/private-to-private/handler.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAMxE,MAAM,MAAM,kBAAkB,GAAG;IAAE,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;CAAE,GAAG,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/private-to-private/handler.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAMxE,MAAM,MAAM,kBAAkB,GAAG;IAAE,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;CAAE,GAAG,kBAAkB,CAAA;AAE5I,wBAAsB,oBAAoB,CAAE,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,iBAAiB,CAAC;IAAC,YAAY,EAAE,kBAAkB,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC,CAgExN;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,WAAW,CAAA;IACnB,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;CAC9C;AAED,wBAAsB,kBAAkB,CAAE,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,iBAAiB,CAAC;IAAC,YAAY,EAAE,kBAAkB,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC,CAmD1N"}
|
|
@@ -7,11 +7,11 @@ import { Message } from './pb/message.js';
|
|
|
7
7
|
import { readCandidatesUntilConnected, resolveOnConnected } from './util.js';
|
|
8
8
|
const DEFAULT_TIMEOUT = 30 * 1000;
|
|
9
9
|
const log = logger('libp2p:webrtc:peer');
|
|
10
|
-
export async function handleIncomingStream({ rtcConfiguration, stream: rawStream }) {
|
|
10
|
+
export async function handleIncomingStream({ rtcConfiguration, dataChannelOptions, stream: rawStream }) {
|
|
11
11
|
const signal = AbortSignal.timeout(DEFAULT_TIMEOUT);
|
|
12
12
|
const stream = pbStream(abortableDuplex(rawStream, signal)).pb(Message);
|
|
13
13
|
const pc = new RTCPeerConnection(rtcConfiguration);
|
|
14
|
-
const muxerFactory = new DataChannelMuxerFactory(pc);
|
|
14
|
+
const muxerFactory = new DataChannelMuxerFactory({ peerConnection: pc, dataChannelOptions });
|
|
15
15
|
const connectedPromise = pDefer();
|
|
16
16
|
const answerSentPromise = pDefer();
|
|
17
17
|
signal.onabort = () => { connectedPromise.reject(); };
|
|
@@ -59,11 +59,11 @@ export async function handleIncomingStream({ rtcConfiguration, stream: rawStream
|
|
|
59
59
|
const remoteAddress = parseRemoteAddress(pc.currentRemoteDescription?.sdp ?? '');
|
|
60
60
|
return { pc, muxerFactory, remoteAddress };
|
|
61
61
|
}
|
|
62
|
-
export async function initiateConnection({ rtcConfiguration, signal, stream: rawStream }) {
|
|
62
|
+
export async function initiateConnection({ rtcConfiguration, dataChannelOptions, signal, stream: rawStream }) {
|
|
63
63
|
const stream = pbStream(abortableDuplex(rawStream, signal)).pb(Message);
|
|
64
64
|
// setup peer connection
|
|
65
65
|
const pc = new RTCPeerConnection(rtcConfiguration);
|
|
66
|
-
const muxerFactory = new DataChannelMuxerFactory(pc);
|
|
66
|
+
const muxerFactory = new DataChannelMuxerFactory({ peerConnection: pc, dataChannelOptions });
|
|
67
67
|
const connectedPromise = pDefer();
|
|
68
68
|
resolveOnConnected(pc, connectedPromise);
|
|
69
69
|
// reject the connectedPromise if the signal aborts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/private-to-private/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,MAAgC,MAAM,SAAS,CAAA;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/private-to-private/handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { type CreateListenerOptions, type DialOptions, type Listener, symbol, type Transport, type Upgrader, type TransportManager } from '@libp2p/interface-transport';
|
|
2
2
|
import { type Multiaddr } from '@multiformats/multiaddr';
|
|
3
|
+
import type { DataChannelOpts } from '../stream.js';
|
|
3
4
|
import type { Connection } from '@libp2p/interface-connection';
|
|
4
5
|
import type { PeerId } from '@libp2p/interface-peer-id';
|
|
5
6
|
import type { IncomingStreamData, Registrar } from '@libp2p/interface-registrar';
|
|
6
7
|
import type { Startable } from '@libp2p/interfaces/startable';
|
|
7
8
|
export interface WebRTCTransportInit {
|
|
8
9
|
rtcConfiguration?: RTCConfiguration;
|
|
10
|
+
dataChannel?: Partial<DataChannelOpts>;
|
|
9
11
|
}
|
|
10
12
|
export interface WebRTCTransportComponents {
|
|
11
13
|
peerId: PeerId;
|
|
@@ -17,7 +19,7 @@ export declare class WebRTCTransport implements Transport, Startable {
|
|
|
17
19
|
private readonly components;
|
|
18
20
|
private readonly init;
|
|
19
21
|
private _started;
|
|
20
|
-
constructor(components: WebRTCTransportComponents, init
|
|
22
|
+
constructor(components: WebRTCTransportComponents, init?: WebRTCTransportInit);
|
|
21
23
|
isStarted(): boolean;
|
|
22
24
|
start(): Promise<void>;
|
|
23
25
|
stop(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/private-to-private/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,KAAK,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAIvK,OAAO,EAAa,KAAK,SAAS,EAAa,MAAM,yBAAyB,CAAA;AAK9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAChF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAS7D,MAAM,WAAW,mBAAmB;IAClC,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/private-to-private/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,KAAK,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAIvK,OAAO,EAAa,KAAK,SAAS,EAAa,MAAM,yBAAyB,CAAA;AAK9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAChF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAS7D,MAAM,WAAW,mBAAmB;IAClC,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;CACvC;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;IACpB,QAAQ,EAAE,QAAQ,CAAA;IAClB,gBAAgB,EAAE,gBAAgB,CAAA;CACnC;AAED,qBAAa,eAAgB,YAAW,SAAS,EAAE,SAAS;IAIxD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJvB,OAAO,CAAC,QAAQ,CAAQ;gBAGL,UAAU,EAAE,yBAAyB,EACrC,IAAI,GAAE,mBAAwB;IAIjD,SAAS,IAAK,OAAO;IAIf,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAOvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAK5B,cAAc,CAAE,OAAO,EAAE,qBAAqB,GAAG,QAAQ;IAIzD,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,oBAAmB;IAEhD,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAO;IAExB,MAAM,CAAE,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE;IAO7C,OAAO,CAAC,SAAS;IAqCX,IAAI,CAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IA2C/D,WAAW,CAAE,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;CAuB9E"}
|
|
@@ -16,7 +16,7 @@ export class WebRTCTransport {
|
|
|
16
16
|
components;
|
|
17
17
|
init;
|
|
18
18
|
_started = false;
|
|
19
|
-
constructor(components, init) {
|
|
19
|
+
constructor(components, init = {}) {
|
|
20
20
|
this.components = components;
|
|
21
21
|
this.init = init;
|
|
22
22
|
}
|
|
@@ -88,6 +88,7 @@ export class WebRTCTransport {
|
|
|
88
88
|
const { pc, muxerFactory, remoteAddress } = await initiateConnection({
|
|
89
89
|
stream: signalingStream,
|
|
90
90
|
rtcConfiguration: this.init.rtcConfiguration,
|
|
91
|
+
dataChannelOptions: this.init.dataChannel,
|
|
91
92
|
signal: options.signal
|
|
92
93
|
});
|
|
93
94
|
const result = await options.upgrader.upgradeOutbound(new WebRTCMultiaddrConnection({
|
|
@@ -114,7 +115,8 @@ export class WebRTCTransport {
|
|
|
114
115
|
const { pc, muxerFactory, remoteAddress } = await handleIncomingStream({
|
|
115
116
|
rtcConfiguration: this.init.rtcConfiguration,
|
|
116
117
|
connection,
|
|
117
|
-
stream
|
|
118
|
+
stream,
|
|
119
|
+
dataChannelOptions: this.init.dataChannel
|
|
118
120
|
});
|
|
119
121
|
await this.components.upgrader.upgradeInbound(new WebRTCMultiaddrConnection({
|
|
120
122
|
peerConnection: pc,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/private-to-private/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+D,MAAM,EAAwD,MAAM,6BAA6B,CAAA;AACvK,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAkB,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAC9E,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/private-to-private/transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type CreateListenerOptions, type Listener, symbol, type Transport } from '@libp2p/interface-transport';
|
|
2
|
+
import { type DataChannelOpts } from '../stream.js';
|
|
2
3
|
import type { WebRTCDialOptions } from './options.js';
|
|
3
4
|
import type { Connection } from '@libp2p/interface-connection';
|
|
4
5
|
import type { CounterGroup, Metrics } from '@libp2p/interface-metrics';
|
|
@@ -26,10 +27,14 @@ export interface WebRTCDirectTransportComponents {
|
|
|
26
27
|
export interface WebRTCMetrics {
|
|
27
28
|
dialerEvents: CounterGroup;
|
|
28
29
|
}
|
|
30
|
+
export interface WebRTCTransportDirectInit {
|
|
31
|
+
dataChannel?: Partial<DataChannelOpts>;
|
|
32
|
+
}
|
|
29
33
|
export declare class WebRTCDirectTransport implements Transport {
|
|
30
34
|
private readonly metrics?;
|
|
31
35
|
private readonly components;
|
|
32
|
-
|
|
36
|
+
private readonly init;
|
|
37
|
+
constructor(components: WebRTCDirectTransportComponents, init?: WebRTCTransportDirectInit);
|
|
33
38
|
/**
|
|
34
39
|
* Dial a given multiaddr
|
|
35
40
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/private-to-public/transport.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,QAAQ,EAAE,MAAM,EAAE,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/private-to-public/transport.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,QAAQ,EAAE,MAAM,EAAE,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAU/G,OAAO,EAAE,KAAK,eAAe,EAAgB,MAAM,cAAc,CAAA;AAIjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AASxD;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,MAAwC,CAAA;AAElE;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,MAAmC,CAAA;AAE/D;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,YAAY,CAAA;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,WAAW,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;CACvC;AAED,qBAAa,qBAAsB,YAAW,SAAS;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiC;IAC5D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA2B;gBACnC,UAAU,EAAE,+BAA+B,EAAE,IAAI,GAAE,yBAA8B;IAa9F;;OAEG;IACG,IAAI,CAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;IAM3E;;OAEG;IACH,cAAc,CAAE,OAAO,EAAE,qBAAqB,GAAG,QAAQ;IAIzD;;OAEG;IACH,MAAM,CAAE,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE;IAI7C;;OAEG;IACH,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,2BAA0B;IAEvD;;OAEG;IACH,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAO;IAExB;;OAEG;IACG,QAAQ,CAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;IAwI/E;;;OAGG;IACH,OAAO,CAAC,qBAAqB;CAkB9B"}
|
|
@@ -33,8 +33,10 @@ export const CERTHASH_CODE = protocols('certhash').code;
|
|
|
33
33
|
export class WebRTCDirectTransport {
|
|
34
34
|
metrics;
|
|
35
35
|
components;
|
|
36
|
-
|
|
36
|
+
init;
|
|
37
|
+
constructor(components, init = {}) {
|
|
37
38
|
this.components = components;
|
|
39
|
+
this.init = init;
|
|
38
40
|
if (components.metrics != null) {
|
|
39
41
|
this.metrics = {
|
|
40
42
|
dialerEvents: components.metrics.registerCounterGroup('libp2p_webrtc_dialer_events_total', {
|
|
@@ -141,7 +143,7 @@ export class WebRTCDirectTransport {
|
|
|
141
143
|
// Since we use the default crypto interface and do not use a static key or early data,
|
|
142
144
|
// we pass in undefined for these parameters.
|
|
143
145
|
const noise = Noise({ prologueBytes: fingerprintsPrologue })();
|
|
144
|
-
const wrappedChannel = new WebRTCStream({ channel: handshakeDataChannel, stat: { direction: 'inbound', timeline: { open: 1 } } });
|
|
146
|
+
const wrappedChannel = new WebRTCStream({ channel: handshakeDataChannel, stat: { direction: 'inbound', timeline: { open: 1 } }, dataChannelOptions: this.init.dataChannel });
|
|
145
147
|
const wrappedDuplex = {
|
|
146
148
|
...wrappedChannel,
|
|
147
149
|
sink: wrappedChannel.sink.bind(wrappedChannel),
|
|
@@ -182,7 +184,7 @@ export class WebRTCDirectTransport {
|
|
|
182
184
|
}, { signal });
|
|
183
185
|
// Track opened peer connection
|
|
184
186
|
this.metrics?.dialerEvents.increment({ peer_connection: true });
|
|
185
|
-
const muxerFactory = new DataChannelMuxerFactory(peerConnection, this.metrics?.dialerEvents);
|
|
187
|
+
const muxerFactory = new DataChannelMuxerFactory({ peerConnection, metrics: this.metrics?.dialerEvents, dataChannelOptions: this.init.dataChannel });
|
|
186
188
|
// For outbound connections, the remote is expected to start the noise handshake.
|
|
187
189
|
// Therefore, we need to secure an inbound noise connection from the remote.
|
|
188
190
|
await noise.secureInbound(myPeerId, wrappedDuplex, theirPeerId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/private-to-public/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAA6C,MAAM,EAAkB,MAAM,6BAA6B,CAAA;AAC/G,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,KAAK,CAAC,MAAM,iBAAiB,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,KAAK,WAAW,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACtG,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/private-to-public/transport.ts"],"names":[],"mappings":"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"}
|
package/dist/src/stream.d.ts
CHANGED
|
@@ -7,6 +7,11 @@ import type { Source } from 'it-stream-types';
|
|
|
7
7
|
* Constructs a default StreamStat
|
|
8
8
|
*/
|
|
9
9
|
export declare function defaultStat(dir: Direction): StreamStat;
|
|
10
|
+
export interface DataChannelOpts {
|
|
11
|
+
maxMessageSize: number;
|
|
12
|
+
maxBufferedAmount: number;
|
|
13
|
+
bufferedAmountLowEventTimeout: number;
|
|
14
|
+
}
|
|
10
15
|
interface StreamInitOpts {
|
|
11
16
|
/**
|
|
12
17
|
* The network channel used for bidirectional peer-to-peer transfers of
|
|
@@ -27,6 +32,10 @@ interface StreamInitOpts {
|
|
|
27
32
|
* Callback to invoke when the stream is closed.
|
|
28
33
|
*/
|
|
29
34
|
closeCb?: (stream: WebRTCStream) => void;
|
|
35
|
+
/**
|
|
36
|
+
* Data channel options
|
|
37
|
+
*/
|
|
38
|
+
dataChannelOptions?: Partial<DataChannelOpts>;
|
|
30
39
|
}
|
|
31
40
|
interface StreamStateInput {
|
|
32
41
|
/**
|
|
@@ -75,6 +84,10 @@ export declare class WebRTCStream implements Stream {
|
|
|
75
84
|
* The current state of the stream
|
|
76
85
|
*/
|
|
77
86
|
streamState: StreamState;
|
|
87
|
+
/**
|
|
88
|
+
* Data channel options
|
|
89
|
+
*/
|
|
90
|
+
dataChannelOptions: DataChannelOpts;
|
|
78
91
|
/**
|
|
79
92
|
* Read unwrapped protobuf data from the underlying datachannel.
|
|
80
93
|
* _src is exposed to the user via the `source` getter to .
|
package/dist/src/stream.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/stream.ts"],"names":[],"mappings":"AAKA,OAAc,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/stream.ts"],"names":[],"mappings":"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"}
|