@libp2p/webrtc 3.2.11-9c67c5b3d → 3.2.11-bb6ceb192
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/README.md +1 -1
- package/dist/index.min.js +12 -12
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/maconn.d.ts +2 -2
- package/dist/src/maconn.d.ts.map +1 -1
- package/dist/src/maconn.js.map +1 -1
- package/dist/src/muxer.d.ts +1 -0
- package/dist/src/muxer.d.ts.map +1 -1
- package/dist/src/muxer.js +20 -0
- package/dist/src/muxer.js.map +1 -1
- package/dist/src/private-to-private/util.d.ts.map +1 -1
- package/dist/src/private-to-private/util.js +22 -34
- package/dist/src/private-to-private/util.js.map +1 -1
- package/dist/src/stream.d.ts +7 -2
- package/dist/src/stream.d.ts.map +1 -1
- package/dist/src/stream.js +17 -30
- package/dist/src/stream.js.map +1 -1
- package/package.json +13 -13
- package/src/index.ts +6 -0
- package/src/maconn.ts +2 -1
- package/src/muxer.ts +28 -0
- package/src/private-to-private/util.ts +25 -37
- package/src/stream.ts +20 -34
package/dist/src/index.d.ts
CHANGED
|
@@ -59,6 +59,11 @@ export interface DataChannelOptions {
|
|
|
59
59
|
* controls how long we wait for the acknowledgement in ms (default: 5s)
|
|
60
60
|
*/
|
|
61
61
|
closeTimeout?: number;
|
|
62
|
+
/**
|
|
63
|
+
* When sending the first data message, if the channel is not in the "open"
|
|
64
|
+
* state, wait this long for the "open" event to fire.
|
|
65
|
+
*/
|
|
66
|
+
openTimeout?: number;
|
|
62
67
|
}
|
|
63
68
|
/**
|
|
64
69
|
* @param {WebRTCTransportDirectInit} init - WebRTC direct transport configuration
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,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,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B;;;;OAIG;IACH,6BAA6B,CAAC,EAAE,MAAM,CAAA;IAEtC;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,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,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B;;;;OAIG;IACH,6BAA6B,CAAC,EAAE,MAAM,CAAA;IAEtC;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;;;;;;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.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,EAAE,qBAAqB,EAAwE,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,EAAE,qBAAqB,EAAwE,MAAM,kCAAkC,CAAA;AA4C9I;;;;;;;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/maconn.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ComponentLogger } from '@libp2p/interface';
|
|
1
|
+
import type { ComponentLogger, Logger } from '@libp2p/interface';
|
|
2
2
|
import type { MultiaddrConnection, MultiaddrConnectionTimeline } from '@libp2p/interface/connection';
|
|
3
3
|
import type { CounterGroup } from '@libp2p/interface/metrics';
|
|
4
4
|
import type { AbortOptions, Multiaddr } from '@multiformats/multiaddr';
|
|
@@ -25,7 +25,7 @@ export interface WebRTCMultiaddrConnectionComponents {
|
|
|
25
25
|
logger: ComponentLogger;
|
|
26
26
|
}
|
|
27
27
|
export declare class WebRTCMultiaddrConnection implements MultiaddrConnection {
|
|
28
|
-
|
|
28
|
+
readonly log: Logger;
|
|
29
29
|
/**
|
|
30
30
|
* WebRTC Peer Connection
|
|
31
31
|
*/
|
package/dist/src/maconn.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maconn.d.ts","sourceRoot":"","sources":["../../src/maconn.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"maconn.d.ts","sourceRoot":"","sources":["../../src/maconn.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAA;AACpG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAEnD,UAAU,6BAA6B;IACrC;;OAEG;IACH,cAAc,EAAE,iBAAiB,CAAA;IAEjC;;OAEG;IACH,UAAU,EAAE,SAAS,CAAA;IAErB;;OAEG;IACH,QAAQ,EAAE,2BAA2B,CAAA;IAErC;;OAEG;IACH,OAAO,CAAC,EAAE,YAAY,CAAA;CACvB;AAED,MAAM,WAAW,mCAAmC;IAClD,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,qBAAa,yBAA0B,YAAW,mBAAmB;IACnE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,iBAAiB,CAAA;IAE1C;;OAEG;IACH,UAAU,EAAE,SAAS,CAAA;IAErB;;OAEG;IACH,QAAQ,EAAE,2BAA2B,CAAA;IAErC;;OAEG;IACH,OAAO,CAAC,EAAE,YAAY,CAAA;IAEtB;;OAEG;IACH,MAAM,EAAE,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC,CAAc;IAE9D;;OAEG;IACH,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAU;gBAE1C,UAAU,EAAE,mCAAmC,EAAE,IAAI,EAAE,6BAA6B;IAkB3F,KAAK,CAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAQnD,KAAK,CAAE,GAAG,EAAE,KAAK,GAAG,IAAI;CAOzB"}
|
package/dist/src/maconn.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maconn.js","sourceRoot":"","sources":["../../src/maconn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAiC9C,MAAM,OAAO,yBAAyB;
|
|
1
|
+
{"version":3,"file":"maconn.js","sourceRoot":"","sources":["../../src/maconn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAiC9C,MAAM,OAAO,yBAAyB;IAC3B,GAAG,CAAQ;IAEpB;;OAEG;IACM,cAAc,CAAmB;IAE1C;;OAEG;IACH,UAAU,CAAW;IAErB;;OAEG;IACH,QAAQ,CAA6B;IAErC;;OAEG;IACH,OAAO,CAAe;IAEtB;;OAEG;IACH,MAAM,GAA6C,SAAS,EAAE,CAAA;IAE9D;;OAEG;IACH,IAAI,GAA4C,OAAO,CAAA;IAEvD,YAAa,UAA+C,EAAE,IAAmC;QAC/F,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAA;QACjE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;QACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAA;QAEzC,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAA;QAExD,IAAI,CAAC,cAAc,CAAC,uBAAuB,GAAG,GAAG,EAAE;YACjD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,EAAE,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,eAAe,EAAE,YAAY,CAAC,CAAA;YAElH,IAAI,IAAI,CAAC,cAAc,CAAC,eAAe,KAAK,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,eAAe,KAAK,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,eAAe,KAAK,QAAQ,EAAE;gBAClK,8CAA8C;gBAC9C,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;aACjC;QACH,CAAC,CAAA;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAE,OAAsB;QACjC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;QAEpC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAA;QAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAChC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1C,CAAC;IAED,KAAK,CAAE,GAAU;QACf,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAA;QAEtD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAA;QAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAChC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1C,CAAC;CACF"}
|
package/dist/src/muxer.d.ts
CHANGED
|
@@ -39,6 +39,7 @@ export declare class DataChannelMuxerFactory implements StreamMuxerFactory {
|
|
|
39
39
|
private readonly metrics?;
|
|
40
40
|
private readonly dataChannelOptions?;
|
|
41
41
|
private readonly components;
|
|
42
|
+
private readonly log;
|
|
42
43
|
constructor(components: DataChannelMuxerFactoryComponents, init: DataChannelMuxerFactoryInit);
|
|
43
44
|
createStreamMuxer(init?: StreamMuxerInit): StreamMuxer;
|
|
44
45
|
}
|
package/dist/src/muxer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"muxer.d.ts","sourceRoot":"","sources":["../../src/muxer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,mBAAmB,CAAA;AAChE,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,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAIpD,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,cAAc,EAAE,iBAAiB,CAAA;IAEjC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,OAAO,CAAC,EAAE,YAAY,CAAA;IAEtB,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;CACxC;AAED,MAAM,WAAW,iCAAiC;IAChD,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,cAAc,CAAA;IACvB,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAA;CACzB;AAED,qBAAa,uBAAwB,YAAW,kBAAkB;IAChE,SAAgB,QAAQ,EAAE,MAAM,CAAA;IAEhC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmB;IAClD,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAc;IACvC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAoB;IACxD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmC;
|
|
1
|
+
{"version":3,"file":"muxer.d.ts","sourceRoot":"","sources":["../../src/muxer.ts"],"names":[],"mappings":"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"}
|
package/dist/src/muxer.js
CHANGED
|
@@ -11,14 +11,23 @@ export class DataChannelMuxerFactory {
|
|
|
11
11
|
metrics;
|
|
12
12
|
dataChannelOptions;
|
|
13
13
|
components;
|
|
14
|
+
log;
|
|
14
15
|
constructor(components, init) {
|
|
15
16
|
this.components = components;
|
|
16
17
|
this.peerConnection = init.peerConnection;
|
|
17
18
|
this.metrics = init.metrics;
|
|
18
19
|
this.protocol = init.protocol ?? PROTOCOL;
|
|
19
20
|
this.dataChannelOptions = init.dataChannelOptions ?? {};
|
|
21
|
+
this.log = components.logger.forComponent('libp2p:webrtc:datachannelmuxerfactory');
|
|
20
22
|
// store any datachannels opened before upgrade has been completed
|
|
21
23
|
this.peerConnection.ondatachannel = ({ channel }) => {
|
|
24
|
+
this.log.trace('incoming early datachannel with channel id %d and label "%s"', channel.id);
|
|
25
|
+
// 'init' channel is only used during connection establishment
|
|
26
|
+
if (channel.label === 'init') {
|
|
27
|
+
this.log.trace('closing early init channel');
|
|
28
|
+
channel.close();
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
22
31
|
// @ts-expect-error fields are set below
|
|
23
32
|
const bufferedStream = {};
|
|
24
33
|
const stream = createStream({
|
|
@@ -80,10 +89,18 @@ export class DataChannelMuxer {
|
|
|
80
89
|
* {@link https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/datachannel_event}
|
|
81
90
|
*/
|
|
82
91
|
this.peerConnection.ondatachannel = ({ channel }) => {
|
|
92
|
+
this.log.trace('incoming datachannel with channel id %d', channel.id);
|
|
93
|
+
// 'init' channel is only used during connection establishment
|
|
94
|
+
if (channel.label === 'init') {
|
|
95
|
+
this.log.trace('closing init channel');
|
|
96
|
+
channel.close();
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
83
99
|
const stream = createStream({
|
|
84
100
|
channel,
|
|
85
101
|
direction: 'inbound',
|
|
86
102
|
onEnd: () => {
|
|
103
|
+
this.log('incoming channel %s ended with state %s', channel.id, channel.readyState);
|
|
87
104
|
this.#onStreamEnd(stream, channel);
|
|
88
105
|
},
|
|
89
106
|
logger: this.logger,
|
|
@@ -103,6 +120,7 @@ export class DataChannelMuxer {
|
|
|
103
120
|
queueMicrotask(() => {
|
|
104
121
|
this.init.streams.forEach(bufferedStream => {
|
|
105
122
|
bufferedStream.onEnd = () => {
|
|
123
|
+
this.log('incoming early channel %s ended with state %s', bufferedStream.channel.id, bufferedStream.channel.readyState);
|
|
106
124
|
this.#onStreamEnd(bufferedStream.stream, bufferedStream.channel);
|
|
107
125
|
};
|
|
108
126
|
this.metrics?.increment({ incoming_stream: true });
|
|
@@ -150,10 +168,12 @@ export class DataChannelMuxer {
|
|
|
150
168
|
newStream() {
|
|
151
169
|
// The spec says the label SHOULD be an empty string: https://github.com/libp2p/specs/blob/master/webrtc/README.md#rtcdatachannel-label
|
|
152
170
|
const channel = this.peerConnection.createDataChannel('');
|
|
171
|
+
this.log.trace('opened outgoing datachannel with channel id %s', channel.id);
|
|
153
172
|
const stream = createStream({
|
|
154
173
|
channel,
|
|
155
174
|
direction: 'outbound',
|
|
156
175
|
onEnd: () => {
|
|
176
|
+
this.log('outgoing channel %s ended with state %s', channel.id, channel.readyState);
|
|
157
177
|
this.#onStreamEnd(stream, channel);
|
|
158
178
|
},
|
|
159
179
|
logger: this.logger,
|
package/dist/src/muxer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"muxer.js","sourceRoot":"","sources":["../../src/muxer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAU7D,MAAM,QAAQ,GAAG,SAAS,CAAA;AA+B1B,MAAM,OAAO,uBAAuB;IAClB,QAAQ,CAAQ;IAEhC;;OAEG;IACc,cAAc,CAAmB;IAC1C,eAAe,GAAqB,EAAE,CAAA;IAC7B,OAAO,CAAe;IACtB,kBAAkB,CAAqB;IACvC,UAAU,CAAmC;
|
|
1
|
+
{"version":3,"file":"muxer.js","sourceRoot":"","sources":["../../src/muxer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAU7D,MAAM,QAAQ,GAAG,SAAS,CAAA;AA+B1B,MAAM,OAAO,uBAAuB;IAClB,QAAQ,CAAQ;IAEhC;;OAEG;IACc,cAAc,CAAmB;IAC1C,eAAe,GAAqB,EAAE,CAAA;IAC7B,OAAO,CAAe;IACtB,kBAAkB,CAAqB;IACvC,UAAU,CAAmC;IAC7C,GAAG,CAAQ;IAE5B,YAAa,UAA6C,EAAE,IAAiC;QAC3F,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAA;QACzC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAA;QACzC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAA;QACvD,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,uCAAuC,CAAC,CAAA;QAElF,kEAAkE;QAClE,IAAI,CAAC,cAAc,CAAC,aAAa,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;YAClD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8DAA8D,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;YAE1F,8DAA8D;YAC9D,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,EAAE;gBAC5B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAA;gBAC5C,OAAO,CAAC,KAAK,EAAE,CAAA;gBAEf,OAAM;aACP;YAED,wCAAwC;YACxC,MAAM,cAAc,GAAmB,EAAE,CAAA;YAEzC,MAAM,MAAM,GAAG,YAAY,CAAC;gBAC1B,OAAO;gBACP,SAAS,EAAE,SAAS;gBACpB,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE;oBACb,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAC3B,CAAC;gBACD,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,GAAG,IAAI,CAAC,kBAAkB;aAC3B,CAAC,CAAA;YAEF,cAAc,CAAC,MAAM,GAAG,MAAM,CAAA;YAC9B,cAAc,CAAC,OAAO,GAAG,OAAO,CAAA;YAChC,cAAc,CAAC,KAAK,GAAG,GAAG,EAAE;gBAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAA;YACpF,CAAC,CAAA;YAED,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC3C,CAAC,CAAA;IACH,CAAC;IAED,iBAAiB,CAAE,IAAsB;QACvC,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE;YAC3C,GAAG,IAAI;YACP,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAA;IACJ,CAAC;CACF;AAUD;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAamC;IAZ9D;;OAEG;IACI,OAAO,CAAU;IACjB,QAAQ,CAAQ;IAEN,GAAG,CAAQ;IACX,cAAc,CAAmB;IACjC,kBAAkB,CAAoB;IACtC,OAAO,CAAe;IACtB,MAAM,CAAiB;IAExC,YAAa,UAAsC,EAAW,IAA0B;QAA1B,SAAI,GAAJ,IAAI,CAAsB;QACtF,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAA;QAChE,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;QAC9C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAA;QACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAA;QACzC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAA;QAEvD;;;;;WAKG;QACH,IAAI,CAAC,cAAc,CAAC,aAAa,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;YAClD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yCAAyC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;YAErE,8DAA8D;YAC9D,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,EAAE;gBAC5B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;gBACtC,OAAO,CAAC,KAAK,EAAE,CAAA;gBAEf,OAAM;aACP;YAED,MAAM,MAAM,GAAG,YAAY,CAAC;gBAC1B,OAAO;gBACP,SAAS,EAAE,SAAS;gBACpB,KAAK,EAAE,GAAG,EAAE;oBACV,IAAI,CAAC,GAAG,CAAC,yCAAyC,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;oBACnF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;gBACpC,CAAC;gBACD,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,IAAI,CAAC,kBAAkB;aAC3B,CAAC,CAAA;YAEF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACzB,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAA;YAClD,IAAI,EAAE,gBAAgB,EAAE,CAAC,MAAM,CAAC,CAAA;QAClC,CAAC,CAAA;QAED,kEAAkE;QAClE,8BAA8B;QAC9B,EAAE;QACF,0EAA0E;QAC1E,gEAAgE;QAChE,sCAAsC;QACtC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,cAAc,CAAC,GAAG,EAAE;gBAClB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;oBACzC,cAAc,CAAC,KAAK,GAAG,GAAG,EAAE;wBAC1B,IAAI,CAAC,GAAG,CAAC,+CAA+C,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;wBACvH,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,CAAA;oBAClE,CAAC,CAAA;oBAED,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAA;oBAClD,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;gBACtD,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;SACH;IACH,CAAC;IAED,YAAY,CAAE,MAAc,EAAE,OAAuB;QACnD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uBAAuB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;QACrF,aAAa,CACX,OAAO,EACP,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE,EACrD,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;YACpC,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CACF,CAAA;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAA;QAC3D,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;QAC7C,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,CAAA;IAClC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAE,OAAsB;QACjC,IAAI;YACF,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CACxD,CAAA;SACF;QAAC,OAAO,GAAQ,EAAE;YACjB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;SAChB;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAE,GAAU;QACf,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YACjC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;SAClB;IACH,CAAC;IAED;;OAEG;IACH,MAAM,GAA6C,SAAS,EAAE,CAAA;IAE9D;;OAEG;IACH,IAAI,GAA6D,OAAO,CAAA;IAExE,SAAS;QACP,uIAAuI;QACvI,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAA;QAEzD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gDAAgD,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;QAE5E,MAAM,MAAM,GAAG,YAAY,CAAC;YAC1B,OAAO;YACP,SAAS,EAAE,UAAU;YACrB,KAAK,EAAE,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,yCAAyC,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;gBACnF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YACpC,CAAC;YACD,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,IAAI,CAAC,kBAAkB;SAC3B,CAAC,CAAA;QACF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACzB,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAA;QAElD,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/private-to-private/util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/private-to-private/util.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,MAAM,WAAW,qBAAsB,SAAQ,YAAY,EAAE,aAAa;IACxE,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,eAAO,MAAM,4BAA4B,qBAA4B,gBAAgB,IAAI,CAAC,MAAM,iBAAiB,UAAU,cAAc,OAAO,EAAE,MAAM,CAAC,WAAW,qBAAqB,KAAG,QAAQ,IAAI,CAgEvM,CAAA;AAED,wBAAgB,kBAAkB,CAAE,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,GAAG,IAAI,CAe/F"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { CodeError } from '@libp2p/interface/errors';
|
|
2
|
-
import {
|
|
2
|
+
import { closeSource } from '@libp2p/utils/close-source';
|
|
3
3
|
import { anySignal } from 'any-signal';
|
|
4
|
-
import * as lp from 'it-length-prefixed';
|
|
5
|
-
import { AbortError, raceSignal } from 'race-signal';
|
|
6
4
|
import { isFirefox } from '../util.js';
|
|
7
5
|
import { RTCIceCandidate } from '../webrtc/index.js';
|
|
8
6
|
import { Message } from './pb/message.js';
|
|
@@ -18,42 +16,39 @@ export const readCandidatesUntilConnected = async (connectedPromise, pc, stream,
|
|
|
18
16
|
controller.signal,
|
|
19
17
|
options.signal
|
|
20
18
|
]);
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
}
|
|
19
|
+
const abortListener = () => {
|
|
20
|
+
closeSource(stream.unwrap().unwrap().source, options.log);
|
|
21
|
+
};
|
|
22
|
+
signal.addEventListener('abort', abortListener);
|
|
24
23
|
try {
|
|
25
24
|
// read candidates until we are connected or we reach the end of the stream
|
|
26
|
-
|
|
27
|
-
const message =
|
|
25
|
+
while (true) {
|
|
26
|
+
const message = await Promise.race([
|
|
27
|
+
connectedPromise.promise,
|
|
28
|
+
stream.read()
|
|
29
|
+
]);
|
|
30
|
+
// stream ended or we became connected
|
|
31
|
+
if (message == null) {
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
28
34
|
if (message.type !== Message.Type.ICE_CANDIDATE) {
|
|
29
35
|
throw new CodeError('ICE candidate message expected', 'ERR_NOT_ICE_CANDIDATE');
|
|
30
36
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
sdpMid: '0',
|
|
37
|
-
sdpMLineIndex: 0
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
if (candidateInit === null) {
|
|
37
|
+
const candidateInit = JSON.parse(message.data ?? 'null');
|
|
38
|
+
// an empty string means this generation of candidates is complete, a null
|
|
39
|
+
// candidate means candidate gathering has finished
|
|
40
|
+
// see - https://www.w3.org/TR/webrtc/#rtcpeerconnectioniceevent
|
|
41
|
+
if (candidateInit === '' || candidateInit === null) {
|
|
41
42
|
options.log.trace('end-of-candidates received');
|
|
42
|
-
|
|
43
|
-
candidate: null,
|
|
44
|
-
sdpMid: '0',
|
|
45
|
-
sdpMLineIndex: 0
|
|
46
|
-
};
|
|
43
|
+
continue;
|
|
47
44
|
}
|
|
48
|
-
// a null candidate means end-of-candidates
|
|
49
|
-
// see - https://www.w3.org/TR/webrtc/#rtcpeerconnectioniceevent
|
|
50
45
|
const candidate = new RTCIceCandidate(candidateInit);
|
|
51
46
|
options.log.trace('%s received new ICE candidate', options.direction, candidate);
|
|
52
47
|
try {
|
|
53
48
|
await pc.addIceCandidate(candidate);
|
|
54
49
|
}
|
|
55
50
|
catch (err) {
|
|
56
|
-
options.log.error('%s bad candidate received', options.direction, err);
|
|
51
|
+
options.log.error('%s bad candidate received', options.direction, candidateInit, err);
|
|
57
52
|
}
|
|
58
53
|
}
|
|
59
54
|
}
|
|
@@ -61,16 +56,9 @@ export const readCandidatesUntilConnected = async (connectedPromise, pc, stream,
|
|
|
61
56
|
options.log.error('%s error parsing ICE candidate', options.direction, err);
|
|
62
57
|
}
|
|
63
58
|
finally {
|
|
59
|
+
signal.removeEventListener('abort', abortListener);
|
|
64
60
|
signal.clear();
|
|
65
61
|
}
|
|
66
|
-
if (options.signal?.aborted === true) {
|
|
67
|
-
throw new AbortError('Aborted while reading ICE candidates', 'ERR_ICE_CANDIDATES_READ_ABORTED');
|
|
68
|
-
}
|
|
69
|
-
// read all available ICE candidates, wait for connection state change
|
|
70
|
-
await raceSignal(connectedPromise.promise, options.signal, {
|
|
71
|
-
errorMessage: 'Aborted before connected',
|
|
72
|
-
errorCode: 'ERR_ABORTED_BEFORE_CONNECTED'
|
|
73
|
-
});
|
|
74
62
|
};
|
|
75
63
|
export function resolveOnConnected(pc, promise) {
|
|
76
64
|
pc[isFirefox ? 'oniceconnectionstatechange' : 'onconnectionstatechange'] = (_) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/private-to-private/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/private-to-private/util.ts"],"names":[],"mappings":"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"}
|
package/dist/src/stream.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AbstractStream, type AbstractStreamInit } from '@libp2p/
|
|
1
|
+
import { AbstractStream, type AbstractStreamInit } from '@libp2p/utils/abstract-stream';
|
|
2
2
|
import { Uint8ArrayList } from 'uint8arraylist';
|
|
3
3
|
import type { DataChannelOptions } from './index.js';
|
|
4
4
|
import type { AbortOptions, ComponentLogger } from '@libp2p/interface';
|
|
@@ -39,6 +39,11 @@ export declare const MAX_MESSAGE_SIZE: number;
|
|
|
39
39
|
* we close the stream anyway.
|
|
40
40
|
*/
|
|
41
41
|
export declare const FIN_ACK_TIMEOUT = 5000;
|
|
42
|
+
/**
|
|
43
|
+
* When sending data messages, if the channel is not in the "open" state, wait
|
|
44
|
+
* this long for the "open" event to fire.
|
|
45
|
+
*/
|
|
46
|
+
export declare const OPEN_TIMEOUT = 5000;
|
|
42
47
|
export declare class WebRTCStream extends AbstractStream {
|
|
43
48
|
/**
|
|
44
49
|
* The data channel used to send and receive data
|
|
@@ -49,7 +54,6 @@ export declare class WebRTCStream extends AbstractStream {
|
|
|
49
54
|
* and then the protobuf decoder.
|
|
50
55
|
*/
|
|
51
56
|
private readonly incomingData;
|
|
52
|
-
private messageQueue?;
|
|
53
57
|
private readonly maxBufferedAmount;
|
|
54
58
|
private readonly bufferedAmountLowEventTimeout;
|
|
55
59
|
/**
|
|
@@ -61,6 +65,7 @@ export declare class WebRTCStream extends AbstractStream {
|
|
|
61
65
|
*/
|
|
62
66
|
private readonly receiveFinAck;
|
|
63
67
|
private readonly finAckTimeout;
|
|
68
|
+
private readonly openTimeout;
|
|
64
69
|
constructor(init: WebRTCStreamInit);
|
|
65
70
|
sendNewStream(): void;
|
|
66
71
|
_sendMessage(data: Uint8ArrayList, checkBuffer?: boolean): Promise<void>;
|
package/dist/src/stream.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/stream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/stream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAOvF,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAG7D,MAAM,WAAW,gBAAiB,SAAQ,kBAAkB,EAAE,kBAAkB;IAC9E;;;;;OAKG;IACH,OAAO,EAAE,cAAc,CAAA;IAEvB,MAAM,EAAE,eAAe,CAAA;CACxB;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAAmB,CAAA;AAEnD;;GAEG;AACH,eAAO,MAAM,2BAA2B,QAAY,CAAA;AAEpD;;GAEG;AACH,eAAO,MAAM,iBAAiB,IAAI,CAAA;AAElC;;GAEG;AACH,eAAO,MAAM,aAAa,IAAI,CAAA;AAE9B;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAY,CAAA;AAEzC;;;;GAIG;AACH,eAAO,MAAM,eAAe,OAAO,CAAA;AAEnC;;;GAGG;AACH,eAAO,MAAM,YAAY,OAAO,CAAA;AAEhC,qBAAa,YAAa,SAAQ,cAAc;IAC9C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IAExC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IAEnD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAQ;IAE1C,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAQ;IAEtD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IAEvC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;IACrD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;gBAEvB,IAAI,EAAE,gBAAgB;IAiHnC,aAAa,IAAK,IAAI;IAIhB,YAAY,CAAE,IAAI,EAAE,cAAc,EAAE,WAAW,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA4B/E,QAAQ,CAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB9C,SAAS,IAAK,OAAO,CAAC,IAAI,CAAC;IAI3B,cAAc,CAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBrD,aAAa,IAAK,OAAO,CAAC,IAAI,CAAC;IAIrC;;OAEG;IACH,OAAO,CAAC,uBAAuB;YAuCjB,SAAS;CAuBxB;AAED,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D;;;;;OAKG;IACH,OAAO,EAAE,cAAc,CAAA;IAEvB;;OAEG;IACH,SAAS,EAAE,SAAS,CAAA;IAEpB;;OAEG;IACH,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,IAAI,CAAA;IAErC,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,wBAAgB,YAAY,CAAE,OAAO,EAAE,mBAAmB,GAAG,YAAY,CAQxE"}
|
package/dist/src/stream.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CodeError } from '@libp2p/interface/errors';
|
|
2
|
-
import { AbstractStream } from '@libp2p/
|
|
2
|
+
import { AbstractStream } from '@libp2p/utils/abstract-stream';
|
|
3
3
|
import * as lengthPrefixed from 'it-length-prefixed';
|
|
4
4
|
import { pushable } from 'it-pushable';
|
|
5
5
|
import pDefer from 'p-defer';
|
|
@@ -34,6 +34,11 @@ export const MAX_MESSAGE_SIZE = 16 * 1024;
|
|
|
34
34
|
* we close the stream anyway.
|
|
35
35
|
*/
|
|
36
36
|
export const FIN_ACK_TIMEOUT = 5000;
|
|
37
|
+
/**
|
|
38
|
+
* When sending data messages, if the channel is not in the "open" state, wait
|
|
39
|
+
* this long for the "open" event to fire.
|
|
40
|
+
*/
|
|
41
|
+
export const OPEN_TIMEOUT = 5000;
|
|
37
42
|
export class WebRTCStream extends AbstractStream {
|
|
38
43
|
/**
|
|
39
44
|
* The data channel used to send and receive data
|
|
@@ -44,7 +49,6 @@ export class WebRTCStream extends AbstractStream {
|
|
|
44
49
|
* and then the protobuf decoder.
|
|
45
50
|
*/
|
|
46
51
|
incomingData;
|
|
47
|
-
messageQueue;
|
|
48
52
|
maxBufferedAmount;
|
|
49
53
|
bufferedAmountLowEventTimeout;
|
|
50
54
|
/**
|
|
@@ -56,6 +60,7 @@ export class WebRTCStream extends AbstractStream {
|
|
|
56
60
|
*/
|
|
57
61
|
receiveFinAck;
|
|
58
62
|
finAckTimeout;
|
|
63
|
+
openTimeout;
|
|
59
64
|
constructor(init) {
|
|
60
65
|
// override onEnd to send/receive FIN_ACK before closing the stream
|
|
61
66
|
const originalOnEnd = init.onEnd;
|
|
@@ -89,15 +94,16 @@ export class WebRTCStream extends AbstractStream {
|
|
|
89
94
|
this.channel = init.channel;
|
|
90
95
|
this.channel.binaryType = 'arraybuffer';
|
|
91
96
|
this.incomingData = pushable();
|
|
92
|
-
this.messageQueue = new Uint8ArrayList();
|
|
93
97
|
this.bufferedAmountLowEventTimeout = init.bufferedAmountLowEventTimeout ?? BUFFERED_AMOUNT_LOW_TIMEOUT;
|
|
94
98
|
this.maxBufferedAmount = init.maxBufferedAmount ?? MAX_BUFFERED_AMOUNT;
|
|
95
99
|
this.maxMessageSize = (init.maxMessageSize ?? MAX_MESSAGE_SIZE) - PROTOBUF_OVERHEAD - VARINT_LENGTH;
|
|
96
100
|
this.receiveFinAck = pDefer();
|
|
97
101
|
this.finAckTimeout = init.closeTimeout ?? FIN_ACK_TIMEOUT;
|
|
102
|
+
this.openTimeout = init.openTimeout ?? OPEN_TIMEOUT;
|
|
98
103
|
// set up initial state
|
|
99
104
|
switch (this.channel.readyState) {
|
|
100
105
|
case 'open':
|
|
106
|
+
this.timeline.open = new Date().getTime();
|
|
101
107
|
break;
|
|
102
108
|
case 'closed':
|
|
103
109
|
case 'closing':
|
|
@@ -115,16 +121,6 @@ export class WebRTCStream extends AbstractStream {
|
|
|
115
121
|
// handle RTCDataChannel events
|
|
116
122
|
this.channel.onopen = (_evt) => {
|
|
117
123
|
this.timeline.open = new Date().getTime();
|
|
118
|
-
if (this.messageQueue != null && this.messageQueue.byteLength > 0) {
|
|
119
|
-
this.log.trace('dataChannel opened, sending queued messages', this.messageQueue.byteLength, this.channel.readyState);
|
|
120
|
-
// send any queued messages
|
|
121
|
-
this._sendMessage(this.messageQueue)
|
|
122
|
-
.catch(err => {
|
|
123
|
-
this.log.error('error sending queued messages', err);
|
|
124
|
-
this.abort(err);
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
this.messageQueue = undefined;
|
|
128
124
|
};
|
|
129
125
|
this.channel.onclose = (_evt) => {
|
|
130
126
|
// if the channel has closed we'll never receive a FIN_ACK so resolve the
|
|
@@ -166,6 +162,7 @@ export class WebRTCStream extends AbstractStream {
|
|
|
166
162
|
async _sendMessage(data, checkBuffer = true) {
|
|
167
163
|
if (checkBuffer && this.channel.bufferedAmount > this.maxBufferedAmount) {
|
|
168
164
|
try {
|
|
165
|
+
this.log('channel buffer is %d, wait for "bufferedamountlow" event', this.channel.bufferedAmount);
|
|
169
166
|
await pEvent(this.channel, 'bufferedamountlow', { timeout: this.bufferedAmountLowEventTimeout });
|
|
170
167
|
}
|
|
171
168
|
catch (err) {
|
|
@@ -178,23 +175,13 @@ export class WebRTCStream extends AbstractStream {
|
|
|
178
175
|
if (this.channel.readyState === 'closed' || this.channel.readyState === 'closing') {
|
|
179
176
|
throw new CodeError(`Invalid datachannel state - ${this.channel.readyState}`, 'ERR_INVALID_STATE');
|
|
180
177
|
}
|
|
181
|
-
if (this.channel.readyState
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
else if (this.channel.readyState === 'connecting') {
|
|
188
|
-
// queue message for when we are open
|
|
189
|
-
if (this.messageQueue == null) {
|
|
190
|
-
this.messageQueue = new Uint8ArrayList();
|
|
191
|
-
}
|
|
192
|
-
this.messageQueue.append(data);
|
|
193
|
-
}
|
|
194
|
-
else {
|
|
195
|
-
this.log.error('unknown datachannel state %s', this.channel.readyState);
|
|
196
|
-
throw new CodeError('Unknown datachannel state', 'ERR_INVALID_STATE');
|
|
178
|
+
if (this.channel.readyState !== 'open') {
|
|
179
|
+
this.log('channel state is "%s" and not "open", waiting for "open" event before sending data', this.channel.readyState);
|
|
180
|
+
await pEvent(this.channel, 'open', { timeout: this.openTimeout });
|
|
181
|
+
this.log('channel state is now "%s", sending data', this.channel.readyState);
|
|
197
182
|
}
|
|
183
|
+
// send message without copying data
|
|
184
|
+
this.channel.send(data.subarray());
|
|
198
185
|
}
|
|
199
186
|
async sendData(data) {
|
|
200
187
|
// sending messages is an async operation so use a copy of the list as it
|
|
@@ -274,7 +261,7 @@ export class WebRTCStream extends AbstractStream {
|
|
|
274
261
|
// flags can be sent while we or the remote are closing the datachannel so
|
|
275
262
|
// if the channel isn't open, don't try to send it but return false to let
|
|
276
263
|
// the caller know and act if they need to
|
|
277
|
-
this.log.trace('not sending flag %s because channel is not open', flag.toString());
|
|
264
|
+
this.log.trace('not sending flag %s because channel is "%s" and not "open"', this.channel.readyState, flag.toString());
|
|
278
265
|
return false;
|
|
279
266
|
}
|
|
280
267
|
this.log.trace('sending flag %s', flag.toString());
|
package/dist/src/stream.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,cAAc,EAA2B,MAAM,
|
|
1
|
+
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/stream.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/webrtc",
|
|
3
|
-
"version": "3.2.11-
|
|
3
|
+
"version": "3.2.11-bb6ceb192",
|
|
4
4
|
"description": "A libp2p transport using WebRTC connections",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
|
-
"homepage": "https://github.com/libp2p/js-libp2p/tree/
|
|
6
|
+
"homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/transport-webrtc#readme",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
9
|
"url": "git+https://github.com/libp2p/js-libp2p.git"
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"scripts": {
|
|
36
36
|
"generate": "protons src/private-to-private/pb/message.proto src/pb/message.proto",
|
|
37
37
|
"build": "aegir build",
|
|
38
|
-
"test": "aegir test -t node -t browser
|
|
38
|
+
"test": "aegir test -t node -t browser -- --exit",
|
|
39
39
|
"test:node": "aegir test -t node --cov -- --exit",
|
|
40
40
|
"test:chrome": "aegir test -t browser --cov",
|
|
41
41
|
"test:firefox": "aegir test -t browser -- --browser firefox",
|
|
@@ -46,14 +46,14 @@
|
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"@chainsafe/libp2p-noise": "^13.0.0",
|
|
49
|
-
"@libp2p/interface": "0.1.6-
|
|
50
|
-
"@libp2p/interface-internal": "0.1.9-
|
|
51
|
-
"@libp2p/logger": "3.1.0-
|
|
52
|
-
"@libp2p/peer-id": "3.0.6-
|
|
49
|
+
"@libp2p/interface": "0.1.6-bb6ceb192",
|
|
50
|
+
"@libp2p/interface-internal": "0.1.9-bb6ceb192",
|
|
51
|
+
"@libp2p/logger": "3.1.0-bb6ceb192",
|
|
52
|
+
"@libp2p/peer-id": "3.0.6-bb6ceb192",
|
|
53
|
+
"@libp2p/utils": "4.0.7-bb6ceb192",
|
|
53
54
|
"@multiformats/mafmt": "^12.1.6",
|
|
54
55
|
"@multiformats/multiaddr": "^12.1.10",
|
|
55
56
|
"@multiformats/multiaddr-matcher": "^1.1.0",
|
|
56
|
-
"abortable-iterator": "^5.0.1",
|
|
57
57
|
"any-signal": "^4.1.1",
|
|
58
58
|
"detect-browser": "^5.3.0",
|
|
59
59
|
"it-length-prefixed": "^9.0.3",
|
|
@@ -75,10 +75,10 @@
|
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
|
77
77
|
"@chainsafe/libp2p-yamux": "^5.0.0",
|
|
78
|
-
"@libp2p/circuit-relay-v2": "0.0.0-
|
|
79
|
-
"@libp2p/interface-compliance-tests": "4.1.5-
|
|
80
|
-
"@libp2p/peer-id-factory": "3.0.8-
|
|
81
|
-
"@libp2p/websockets": "7.0.13-
|
|
78
|
+
"@libp2p/circuit-relay-v2": "0.0.0-bb6ceb192",
|
|
79
|
+
"@libp2p/interface-compliance-tests": "4.1.5-bb6ceb192",
|
|
80
|
+
"@libp2p/peer-id-factory": "3.0.8-bb6ceb192",
|
|
81
|
+
"@libp2p/websockets": "7.0.13-bb6ceb192",
|
|
82
82
|
"@types/sinon": "^17.0.0",
|
|
83
83
|
"aegir": "^41.0.2",
|
|
84
84
|
"delay": "^6.0.0",
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"it-length": "^3.0.2",
|
|
87
87
|
"it-map": "^3.0.3",
|
|
88
88
|
"it-pair": "^2.0.6",
|
|
89
|
-
"libp2p": "0.46.21-
|
|
89
|
+
"libp2p": "0.46.21-bb6ceb192",
|
|
90
90
|
"p-retry": "^6.1.0",
|
|
91
91
|
"protons": "^7.3.0",
|
|
92
92
|
"sinon": "^17.0.0",
|
package/src/index.ts
CHANGED
|
@@ -66,6 +66,12 @@ export interface DataChannelOptions {
|
|
|
66
66
|
* controls how long we wait for the acknowledgement in ms (default: 5s)
|
|
67
67
|
*/
|
|
68
68
|
closeTimeout?: number
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* When sending the first data message, if the channel is not in the "open"
|
|
72
|
+
* state, wait this long for the "open" event to fire.
|
|
73
|
+
*/
|
|
74
|
+
openTimeout?: number
|
|
69
75
|
}
|
|
70
76
|
|
|
71
77
|
/**
|
package/src/maconn.ts
CHANGED