@libp2p/webrtc 2.0.10 → 3.0.0-72e81dc1
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 +7 -2
- package/dist/index.min.js +17 -18
- package/dist/src/error.d.ts +2 -2
- package/dist/src/error.d.ts.map +1 -1
- package/dist/src/error.js +1 -1
- package/dist/src/error.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/maconn.d.ts +5 -4
- package/dist/src/maconn.d.ts.map +1 -1
- package/dist/src/maconn.js +8 -5
- package/dist/src/maconn.js.map +1 -1
- package/dist/src/muxer.d.ts +10 -5
- package/dist/src/muxer.d.ts.map +1 -1
- package/dist/src/muxer.js +6 -2
- package/dist/src/muxer.js.map +1 -1
- package/dist/src/private-to-private/handler.d.ts +4 -3
- package/dist/src/private-to-private/handler.d.ts.map +1 -1
- package/dist/src/private-to-private/handler.js +104 -84
- package/dist/src/private-to-private/handler.js.map +1 -1
- package/dist/src/private-to-private/listener.d.ts +4 -3
- package/dist/src/private-to-private/listener.d.ts.map +1 -1
- package/dist/src/private-to-private/listener.js +1 -1
- package/dist/src/private-to-private/listener.js.map +1 -1
- package/dist/src/private-to-private/transport.d.ts +6 -5
- package/dist/src/private-to-private/transport.d.ts.map +1 -1
- package/dist/src/private-to-private/transport.js +13 -6
- package/dist/src/private-to-private/transport.js.map +1 -1
- package/dist/src/private-to-private/util.d.ts.map +1 -1
- package/dist/src/private-to-private/util.js +1 -0
- package/dist/src/private-to-private/util.js.map +1 -1
- package/dist/src/private-to-public/options.d.ts +1 -1
- package/dist/src/private-to-public/sdp.js +1 -1
- package/dist/src/private-to-public/transport.d.ts +4 -4
- package/dist/src/private-to-public/transport.d.ts.map +1 -1
- package/dist/src/private-to-public/transport.js +99 -92
- package/dist/src/private-to-public/transport.js.map +1 -1
- package/dist/src/private-to-public/util.d.ts.map +1 -1
- package/dist/src/private-to-public/util.js.map +1 -1
- package/dist/src/stream.d.ts +34 -3
- package/dist/src/stream.d.ts.map +1 -1
- package/dist/src/stream.js +24 -14
- package/dist/src/stream.js.map +1 -1
- package/dist/src/webrtc/index.browser.d.ts +15 -0
- package/dist/src/webrtc/index.browser.d.ts.map +1 -0
- package/dist/src/webrtc/index.browser.js +5 -0
- package/dist/src/webrtc/index.browser.js.map +1 -0
- package/dist/src/webrtc/index.d.ts +8 -0
- package/dist/src/webrtc/index.d.ts.map +1 -0
- package/dist/src/webrtc/index.js +11 -0
- package/dist/src/webrtc/index.js.map +1 -0
- package/dist/src/webrtc/rtc-data-channel.d.ts +29 -0
- package/dist/src/webrtc/rtc-data-channel.d.ts.map +1 -0
- package/dist/src/webrtc/rtc-data-channel.js +115 -0
- package/dist/src/webrtc/rtc-data-channel.js.map +1 -0
- package/dist/src/webrtc/rtc-events.d.ts +9 -0
- package/dist/src/webrtc/rtc-events.d.ts.map +1 -0
- package/dist/src/webrtc/rtc-events.js +15 -0
- package/dist/src/webrtc/rtc-events.js.map +1 -0
- package/dist/src/webrtc/rtc-ice-candidate.d.ts +22 -0
- package/dist/src/webrtc/rtc-ice-candidate.d.ts.map +1 -0
- package/dist/src/webrtc/rtc-ice-candidate.js +47 -0
- package/dist/src/webrtc/rtc-ice-candidate.js.map +1 -0
- package/dist/src/webrtc/rtc-peer-connection.d.ts +47 -0
- package/dist/src/webrtc/rtc-peer-connection.d.ts.map +1 -0
- package/dist/src/webrtc/rtc-peer-connection.js +245 -0
- package/dist/src/webrtc/rtc-peer-connection.js.map +1 -0
- package/dist/src/webrtc/rtc-session-description.d.ts +10 -0
- package/dist/src/webrtc/rtc-session-description.d.ts.map +1 -0
- package/dist/src/webrtc/rtc-session-description.js +18 -0
- package/dist/src/webrtc/rtc-session-description.js.map +1 -0
- package/package.json +30 -122
- package/src/error.ts +2 -2
- package/src/index.ts +1 -1
- package/src/maconn.ts +13 -8
- package/src/muxer.ts +11 -5
- package/src/private-to-private/handler.ts +124 -103
- package/src/private-to-private/listener.ts +4 -3
- package/src/private-to-private/transport.ts +20 -12
- package/src/private-to-private/util.ts +1 -0
- package/src/private-to-public/options.ts +1 -1
- package/src/private-to-public/sdp.ts +1 -1
- package/src/private-to-public/transport.ts +113 -107
- package/src/private-to-public/util.ts +0 -1
- package/src/stream.ts +29 -16
- package/src/webrtc/index.browser.ts +4 -0
- package/src/webrtc/index.ts +12 -0
- package/src/webrtc/rtc-data-channel.ts +140 -0
- package/src/webrtc/rtc-events.ts +19 -0
- package/src/webrtc/rtc-ice-candidate.ts +50 -0
- package/src/webrtc/rtc-peer-connection.ts +306 -0
- package/src/webrtc/rtc-session-description.ts +19 -0
package/dist/src/error.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { CodeError } from '@libp2p/
|
|
2
|
-
import type { Direction } from '@libp2p/interface
|
|
1
|
+
import { CodeError } from '@libp2p/interface/errors';
|
|
2
|
+
import type { Direction } from '@libp2p/interface/connection';
|
|
3
3
|
export declare enum codes {
|
|
4
4
|
ERR_ALREADY_ABORTED = "ERR_ALREADY_ABORTED",
|
|
5
5
|
ERR_DATA_CHANNEL = "ERR_DATA_CHANNEL",
|
package/dist/src/error.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAE7D,oBAAY,KAAK;IACf,mBAAmB,wBAAwB;IAC3C,gBAAgB,qBAAqB;IACrC,qBAAqB,0BAA0B;IAC/C,sBAAsB,2BAA2B;IACjD,qBAAqB,0BAA0B;IAC/C,uBAAuB,4BAA4B;IACnD,sBAAsB,2BAA2B;IACjD,mBAAmB,wBAAwB;IAC3C,qCAAqC,0CAA0C;IAC/E,sCAAsC,2CAA2C;CAClF;AAED,qBAAa,oBAAqB,SAAQ,SAAS;gBACpC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAIxC;AAED,qBAAa,qBAAsB,SAAQ,oBAAoB;gBAChD,KAAK,EAAE,sBAAsB,EAAE,GAAG,EAAE,MAAM;CAIxD;AAED,wBAAgB,qBAAqB,CAAE,KAAK,EAAE,sBAAsB,EAAE,GAAG,EAAE,MAAM,GAAG,qBAAqB,CAExG;AAED,qBAAa,gBAAiB,SAAQ,oBAAoB;gBAC3C,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAI9C;AAED,wBAAgB,gBAAgB,CAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAEpF;AAED,qBAAa,2BAA4B,SAAQ,oBAAoB;gBACtD,GAAG,EAAE,MAAM;CAIzB;AAED,wBAAgB,sBAAsB,CAAE,GAAG,EAAE,MAAM,GAAG,2BAA2B,CAEhF;AAED,qBAAa,oBAAqB,SAAQ,oBAAoB;gBAC/C,GAAG,EAAE,MAAM;CAIzB;AAED,wBAAgB,eAAe,CAAE,GAAG,EAAE,MAAM,GAAG,oBAAoB,CAElE;AAED,qBAAa,uBAAwB,SAAQ,oBAAoB;gBAClD,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAIjD;AAED,wBAAgB,kBAAkB,CAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,uBAAuB,CAEhG;AAED,qBAAa,qBAAsB,SAAQ,oBAAoB;gBAChD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAIlD;AAED,wBAAgB,gBAAgB,CAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,qBAAqB,CAExF;AAED,qBAAa,oBAAqB,SAAQ,oBAAoB;gBAC/C,GAAG,EAAE,MAAM;CAKzB;AAED,wBAAgB,eAAe,CAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,oBAAoB,CAEpF;AAED,qBAAa,kBAAmB,SAAQ,oBAAoB;gBAC7C,UAAU,EAAE,MAAM;CAIhC;AAED,wBAAgB,aAAa,CAAE,UAAU,EAAE,MAAM,GAAG,kBAAkB,CAErE;AAED,qBAAa,6BAA8B,SAAQ,oBAAoB;gBACxD,IAAI,EAAE,MAAM;CAI1B;AAED,wBAAgB,wBAAwB,CAAE,SAAS,EAAE,MAAM,GAAG,6BAA6B,CAE1F"}
|
package/dist/src/error.js
CHANGED
package/dist/src/error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/error.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
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
|
-
import type { Transport } from '@libp2p/interface
|
|
3
|
+
import type { Transport } from '@libp2p/interface/transport';
|
|
4
4
|
/**
|
|
5
5
|
* @param {WebRTCTransportDirectInit} init - WebRTC direct transport configuration
|
|
6
6
|
* @param init.dataChannel - DataChannel configurations
|
package/dist/src/maconn.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { MultiaddrConnection, MultiaddrConnectionTimeline } from '@libp2p/interface
|
|
2
|
-
import type { CounterGroup } from '@libp2p/interface
|
|
3
|
-
import type { Multiaddr } from '@multiformats/multiaddr';
|
|
1
|
+
import type { MultiaddrConnection, MultiaddrConnectionTimeline } from '@libp2p/interface/connection';
|
|
2
|
+
import type { CounterGroup } from '@libp2p/interface/metrics';
|
|
3
|
+
import type { AbortOptions, Multiaddr } from '@multiformats/multiaddr';
|
|
4
4
|
import type { Source, Sink } from 'it-stream-types';
|
|
5
5
|
interface WebRTCMultiaddrConnectionInit {
|
|
6
6
|
/**
|
|
@@ -46,7 +46,8 @@ export declare class WebRTCMultiaddrConnection implements MultiaddrConnection {
|
|
|
46
46
|
*/
|
|
47
47
|
sink: Sink<Source<Uint8Array>, Promise<void>>;
|
|
48
48
|
constructor(init: WebRTCMultiaddrConnectionInit);
|
|
49
|
-
close(
|
|
49
|
+
close(options?: AbortOptions): Promise<void>;
|
|
50
|
+
abort(err: Error): void;
|
|
50
51
|
}
|
|
51
52
|
export {};
|
|
52
53
|
//# sourceMappingURL=maconn.d.ts.map
|
package/dist/src/maconn.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maconn.d.ts","sourceRoot":"","sources":["../../src/maconn.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAA;AACpG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"maconn.d.ts","sourceRoot":"","sources":["../../src/maconn.ts"],"names":[],"mappings":"AAEA,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;AAInD,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,qBAAa,yBAA0B,YAAW,mBAAmB;IACnE;;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,IAAI,EAAE,6BAA6B;IAY1C,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
CHANGED
|
@@ -36,14 +36,17 @@ export class WebRTCMultiaddrConnection {
|
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
38
|
}
|
|
39
|
-
async close(
|
|
40
|
-
if (err !== undefined) {
|
|
41
|
-
log.error('error closing connection', err);
|
|
42
|
-
}
|
|
39
|
+
async close(options) {
|
|
43
40
|
log.trace('closing connection');
|
|
44
|
-
this.timeline.close = Date.now();
|
|
45
41
|
this.peerConnection.close();
|
|
42
|
+
this.timeline.close = Date.now();
|
|
46
43
|
this.metrics?.increment({ close: true });
|
|
47
44
|
}
|
|
45
|
+
abort(err) {
|
|
46
|
+
log.error('closing connection due to error', err);
|
|
47
|
+
this.peerConnection.close();
|
|
48
|
+
this.timeline.close = Date.now();
|
|
49
|
+
this.metrics?.increment({ abort: true });
|
|
50
|
+
}
|
|
48
51
|
}
|
|
49
52
|
//# sourceMappingURL=maconn.js.map
|
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,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAM9C,MAAM,GAAG,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAA;AAwB9C,MAAM,OAAO,yBAAyB;IACpC;;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,IAAmC;QAC9C,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,IAAI,CAAC,cAAc,CAAC,uBAAuB,GAAG,GAAG,EAAE;YACjD,IAAI,IAAI,CAAC,cAAc,CAAC,eAAe,KAAK,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,eAAe,KAAK,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,eAAe,KAAK,QAAQ,EAAE;gBAClK,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;aACjC;QACH,CAAC,CAAA;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAE,
|
|
1
|
+
{"version":3,"file":"maconn.js","sourceRoot":"","sources":["../../src/maconn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAM9C,MAAM,GAAG,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAA;AAwB9C,MAAM,OAAO,yBAAyB;IACpC;;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,IAAmC;QAC9C,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,IAAI,CAAC,cAAc,CAAC,uBAAuB,GAAG,GAAG,EAAE;YACjD,IAAI,IAAI,CAAC,cAAc,CAAC,eAAe,KAAK,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,eAAe,KAAK,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,eAAe,KAAK,QAAQ,EAAE;gBAClK,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;aACjC;QACH,CAAC,CAAA;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAE,OAAsB;QACjC,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;QAE/B,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,GAAG,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAA;QAEjD,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
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { DataChannelOpts } from './stream.js';
|
|
2
|
-
import type { Stream } from '@libp2p/interface
|
|
3
|
-
import type { CounterGroup } from '@libp2p/interface
|
|
4
|
-
import type { StreamMuxer, StreamMuxerFactory, StreamMuxerInit } from '@libp2p/interface
|
|
2
|
+
import type { Stream } from '@libp2p/interface/connection';
|
|
3
|
+
import type { CounterGroup } from '@libp2p/interface/metrics';
|
|
4
|
+
import type { StreamMuxer, StreamMuxerFactory, StreamMuxerInit } from '@libp2p/interface/stream-muxer';
|
|
5
|
+
import type { AbortOptions } from '@multiformats/multiaddr';
|
|
5
6
|
import type { Source, Sink } from 'it-stream-types';
|
|
6
7
|
import type { Uint8ArrayList } from 'uint8arraylist';
|
|
7
8
|
export interface DataChannelMuxerFactoryInit {
|
|
@@ -51,9 +52,13 @@ export declare class DataChannelMuxer implements StreamMuxer {
|
|
|
51
52
|
private readonly dataChannelOptions?;
|
|
52
53
|
private readonly metrics?;
|
|
53
54
|
/**
|
|
54
|
-
*
|
|
55
|
+
* Gracefully close all tracked streams and stop the muxer
|
|
55
56
|
*/
|
|
56
|
-
close: (
|
|
57
|
+
close: (options?: AbortOptions) => Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Abort all tracked streams and stop the muxer
|
|
60
|
+
*/
|
|
61
|
+
abort: (err: Error) => void;
|
|
57
62
|
/**
|
|
58
63
|
* The stream source, a no-op as the transport natively supports multiplexing
|
|
59
64
|
*/
|
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,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,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;AAIpD,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;IAE7C;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,qBAAa,uBAAwB,YAAW,kBAAkB;IAChE,SAAgB,QAAQ,EAAE,MAAM,CAAA;IAEhC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmB;IAClD,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAc;IACvC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAA0B;gBAEjD,IAAI,EAAE,2BAA2B;IAoB9C,iBAAiB,CAAE,IAAI,CAAC,EAAE,eAAe,GAAG,WAAW;CAUxD;AAED,MAAM,WAAW,oBAAqB,SAAQ,2BAA2B,EAAE,eAAe;IACxF,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED;;GAEG;AACH,qBAAa,gBAAiB,YAAW,WAAW;
|
|
1
|
+
{"version":3,"file":"muxer.d.ts","sourceRoot":"","sources":["../../src/muxer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,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,OAAO,CAAC,EAAE,YAAY,CAAA;IAEtB;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAE7C;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,qBAAa,uBAAwB,YAAW,kBAAkB;IAChE,SAAgB,QAAQ,EAAE,MAAM,CAAA;IAEhC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmB;IAClD,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAc;IACvC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAA0B;gBAEjD,IAAI,EAAE,2BAA2B;IAoB9C,iBAAiB,CAAE,IAAI,CAAC,EAAE,eAAe,GAAG,WAAW;CAUxD;AAED,MAAM,WAAW,oBAAqB,SAAQ,2BAA2B,EAAE,eAAe;IACxF,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED;;GAEG;AACH,qBAAa,gBAAiB,YAAW,WAAW;IA+BrC,QAAQ,CAAC,IAAI,EAAE,oBAAoB;IA9BhD;;OAEG;IACI,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAEvB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmB;IAClD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAiB;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAc;IAEvC;;OAEG;IACH,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAkB;IAElE;;OAEG;IACH,KAAK,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAY;IAEvC;;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,IAAI,EAAE,oBAAoB;IAqChD,SAAS,IAAK,MAAM;CAkBrB"}
|
package/dist/src/muxer.js
CHANGED
|
@@ -53,9 +53,13 @@ export class DataChannelMuxer {
|
|
|
53
53
|
dataChannelOptions;
|
|
54
54
|
metrics;
|
|
55
55
|
/**
|
|
56
|
-
*
|
|
56
|
+
* Gracefully close all tracked streams and stop the muxer
|
|
57
57
|
*/
|
|
58
|
-
close = () => { };
|
|
58
|
+
close = async () => { };
|
|
59
|
+
/**
|
|
60
|
+
* Abort all tracked streams and stop the muxer
|
|
61
|
+
*/
|
|
62
|
+
abort = () => { };
|
|
59
63
|
/**
|
|
60
64
|
* The stream source, a no-op as the transport natively supports multiplexing
|
|
61
65
|
*/
|
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,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"muxer.js","sourceRoot":"","sources":["../../src/muxer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { RTCPeerConnection } from '../webrtc/index.js';
|
|
1
2
|
import type { DataChannelOpts } from '../stream.js';
|
|
2
|
-
import type { Stream } from '@libp2p/interface
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
3
|
+
import type { Stream } from '@libp2p/interface/connection';
|
|
4
|
+
import type { StreamMuxerFactory } from '@libp2p/interface/stream-muxer';
|
|
5
|
+
import type { IncomingStreamData } from '@libp2p/interface-internal/registrar';
|
|
5
6
|
export type IncomingStreamOpts = {
|
|
6
7
|
rtcConfiguration?: RTCConfiguration;
|
|
7
8
|
dataChannelOptions?: Partial<DataChannelOpts>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/private-to-private/handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/private-to-private/handler.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAyB,MAAM,oBAAoB,CAAA;AAG7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAA;AAM9E,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,CAyExN;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,CA6D1N"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { CodeError } from '@libp2p/interface/errors';
|
|
1
2
|
import { logger } from '@libp2p/logger';
|
|
2
3
|
import { abortableDuplex } from 'abortable-iterator';
|
|
3
|
-
import { pbStream } from 'it-
|
|
4
|
-
import pDefer from 'p-defer';
|
|
4
|
+
import { pbStream } from 'it-protobuf-stream';
|
|
5
|
+
import pDefer, {} from 'p-defer';
|
|
5
6
|
import { DataChannelMuxerFactory } from '../muxer.js';
|
|
7
|
+
import { RTCPeerConnection, RTCSessionDescription } from '../webrtc/index.js';
|
|
6
8
|
import { Message } from './pb/message.js';
|
|
7
9
|
import { readCandidatesUntilConnected, resolveOnConnected } from './util.js';
|
|
8
10
|
const DEFAULT_TIMEOUT = 30 * 1000;
|
|
@@ -11,98 +13,116 @@ export async function handleIncomingStream({ rtcConfiguration, dataChannelOption
|
|
|
11
13
|
const signal = AbortSignal.timeout(DEFAULT_TIMEOUT);
|
|
12
14
|
const stream = pbStream(abortableDuplex(rawStream, signal)).pb(Message);
|
|
13
15
|
const pc = new RTCPeerConnection(rtcConfiguration);
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
16
|
+
try {
|
|
17
|
+
const muxerFactory = new DataChannelMuxerFactory({ peerConnection: pc, dataChannelOptions });
|
|
18
|
+
const connectedPromise = pDefer();
|
|
19
|
+
const answerSentPromise = pDefer();
|
|
20
|
+
signal.onabort = () => {
|
|
21
|
+
connectedPromise.reject(new CodeError('Timed out while trying to connect', 'ERR_TIMEOUT'));
|
|
22
|
+
};
|
|
23
|
+
// candidate callbacks
|
|
24
|
+
pc.onicecandidate = ({ candidate }) => {
|
|
25
|
+
answerSentPromise.promise.then(async () => {
|
|
26
|
+
await stream.write({
|
|
27
|
+
type: Message.Type.ICE_CANDIDATE,
|
|
28
|
+
data: (candidate != null) ? JSON.stringify(candidate.toJSON()) : ''
|
|
29
|
+
});
|
|
30
|
+
}, (err) => {
|
|
31
|
+
log.error('cannot set candidate since sending answer failed', err);
|
|
32
|
+
connectedPromise.reject(err);
|
|
24
33
|
});
|
|
25
|
-
}
|
|
26
|
-
|
|
34
|
+
};
|
|
35
|
+
resolveOnConnected(pc, connectedPromise);
|
|
36
|
+
// read an SDP offer
|
|
37
|
+
const pbOffer = await stream.read();
|
|
38
|
+
if (pbOffer.type !== Message.Type.SDP_OFFER) {
|
|
39
|
+
throw new Error(`expected message type SDP_OFFER, received: ${pbOffer.type ?? 'undefined'} `);
|
|
40
|
+
}
|
|
41
|
+
const offer = new RTCSessionDescription({
|
|
42
|
+
type: 'offer',
|
|
43
|
+
sdp: pbOffer.data
|
|
44
|
+
});
|
|
45
|
+
await pc.setRemoteDescription(offer).catch(err => {
|
|
46
|
+
log.error('could not execute setRemoteDescription', err);
|
|
47
|
+
throw new Error('Failed to set remoteDescription');
|
|
27
48
|
});
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
49
|
+
// create and write an SDP answer
|
|
50
|
+
const answer = await pc.createAnswer().catch(err => {
|
|
51
|
+
log.error('could not execute createAnswer', err);
|
|
52
|
+
answerSentPromise.reject(err);
|
|
53
|
+
throw new Error('Failed to create answer');
|
|
54
|
+
});
|
|
55
|
+
// write the answer to the remote
|
|
56
|
+
await stream.write({ type: Message.Type.SDP_ANSWER, data: answer.sdp });
|
|
57
|
+
await pc.setLocalDescription(answer).catch(err => {
|
|
58
|
+
log.error('could not execute setLocalDescription', err);
|
|
59
|
+
answerSentPromise.reject(err);
|
|
60
|
+
throw new Error('Failed to set localDescription');
|
|
61
|
+
});
|
|
62
|
+
answerSentPromise.resolve();
|
|
63
|
+
// wait until candidates are connected
|
|
64
|
+
await readCandidatesUntilConnected(connectedPromise, pc, stream);
|
|
65
|
+
const remoteAddress = parseRemoteAddress(pc.currentRemoteDescription?.sdp ?? '');
|
|
66
|
+
return { pc, muxerFactory, remoteAddress };
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
pc.close();
|
|
70
|
+
throw err;
|
|
34
71
|
}
|
|
35
|
-
const offer = new RTCSessionDescription({
|
|
36
|
-
type: 'offer',
|
|
37
|
-
sdp: pbOffer.data
|
|
38
|
-
});
|
|
39
|
-
await pc.setRemoteDescription(offer).catch(err => {
|
|
40
|
-
log.error('could not execute setRemoteDescription', err);
|
|
41
|
-
throw new Error('Failed to set remoteDescription');
|
|
42
|
-
});
|
|
43
|
-
// create and write an SDP answer
|
|
44
|
-
const answer = await pc.createAnswer().catch(err => {
|
|
45
|
-
log.error('could not execute createAnswer', err);
|
|
46
|
-
answerSentPromise.reject(err);
|
|
47
|
-
throw new Error('Failed to create answer');
|
|
48
|
-
});
|
|
49
|
-
// write the answer to the remote
|
|
50
|
-
stream.write({ type: Message.Type.SDP_ANSWER, data: answer.sdp });
|
|
51
|
-
await pc.setLocalDescription(answer).catch(err => {
|
|
52
|
-
log.error('could not execute setLocalDescription', err);
|
|
53
|
-
answerSentPromise.reject(err);
|
|
54
|
-
throw new Error('Failed to set localDescription');
|
|
55
|
-
});
|
|
56
|
-
answerSentPromise.resolve();
|
|
57
|
-
// wait until candidates are connected
|
|
58
|
-
await readCandidatesUntilConnected(connectedPromise, pc, stream);
|
|
59
|
-
const remoteAddress = parseRemoteAddress(pc.currentRemoteDescription?.sdp ?? '');
|
|
60
|
-
return { pc, muxerFactory, remoteAddress };
|
|
61
72
|
}
|
|
62
73
|
export async function initiateConnection({ rtcConfiguration, dataChannelOptions, signal, stream: rawStream }) {
|
|
63
74
|
const stream = pbStream(abortableDuplex(rawStream, signal)).pb(Message);
|
|
64
75
|
// setup peer connection
|
|
65
76
|
const pc = new RTCPeerConnection(rtcConfiguration);
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
77
|
+
try {
|
|
78
|
+
const muxerFactory = new DataChannelMuxerFactory({ peerConnection: pc, dataChannelOptions });
|
|
79
|
+
const connectedPromise = pDefer();
|
|
80
|
+
resolveOnConnected(pc, connectedPromise);
|
|
81
|
+
// reject the connectedPromise if the signal aborts
|
|
82
|
+
signal.onabort = connectedPromise.reject;
|
|
83
|
+
// we create the channel so that the peerconnection has a component for which
|
|
84
|
+
// to collect candidates. The label is not relevant to connection initiation
|
|
85
|
+
// but can be useful for debugging
|
|
86
|
+
const channel = pc.createDataChannel('init');
|
|
87
|
+
// setup callback to write ICE candidates to the remote
|
|
88
|
+
// peer
|
|
89
|
+
pc.onicecandidate = ({ candidate }) => {
|
|
90
|
+
void stream.write({
|
|
91
|
+
type: Message.Type.ICE_CANDIDATE,
|
|
92
|
+
data: (candidate != null) ? JSON.stringify(candidate.toJSON()) : ''
|
|
93
|
+
})
|
|
94
|
+
.catch(err => {
|
|
95
|
+
log.error('error sending ICE candidate', err);
|
|
96
|
+
});
|
|
97
|
+
};
|
|
98
|
+
// create an offer
|
|
99
|
+
const offerSdp = await pc.createOffer();
|
|
100
|
+
// write the offer to the stream
|
|
101
|
+
await stream.write({ type: Message.Type.SDP_OFFER, data: offerSdp.sdp });
|
|
102
|
+
// set offer as local description
|
|
103
|
+
await pc.setLocalDescription(offerSdp).catch(err => {
|
|
104
|
+
log.error('could not execute setLocalDescription', err);
|
|
105
|
+
throw new Error('Failed to set localDescription');
|
|
81
106
|
});
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
107
|
+
// read answer
|
|
108
|
+
const answerMessage = await stream.read();
|
|
109
|
+
if (answerMessage.type !== Message.Type.SDP_ANSWER) {
|
|
110
|
+
throw new Error('remote should send an SDP answer');
|
|
111
|
+
}
|
|
112
|
+
const answerSdp = new RTCSessionDescription({ type: 'answer', sdp: answerMessage.data });
|
|
113
|
+
await pc.setRemoteDescription(answerSdp).catch(err => {
|
|
114
|
+
log.error('could not execute setRemoteDescription', err);
|
|
115
|
+
throw new Error('Failed to set remoteDescription');
|
|
116
|
+
});
|
|
117
|
+
await readCandidatesUntilConnected(connectedPromise, pc, stream);
|
|
118
|
+
channel.close();
|
|
119
|
+
const remoteAddress = parseRemoteAddress(pc.currentRemoteDescription?.sdp ?? '');
|
|
120
|
+
return { pc, muxerFactory, remoteAddress };
|
|
121
|
+
}
|
|
122
|
+
catch (err) {
|
|
123
|
+
pc.close();
|
|
124
|
+
throw err;
|
|
96
125
|
}
|
|
97
|
-
const answerSdp = new RTCSessionDescription({ type: 'answer', sdp: answerMessage.data });
|
|
98
|
-
await pc.setRemoteDescription(answerSdp).catch(err => {
|
|
99
|
-
log.error('could not execute setRemoteDescription', err);
|
|
100
|
-
throw new Error('Failed to set remoteDescription');
|
|
101
|
-
});
|
|
102
|
-
await readCandidatesUntilConnected(connectedPromise, pc, stream);
|
|
103
|
-
channel.close();
|
|
104
|
-
const remoteAddress = parseRemoteAddress(pc.currentRemoteDescription?.sdp ?? '');
|
|
105
|
-
return { pc, muxerFactory, remoteAddress };
|
|
106
126
|
}
|
|
107
127
|
function parseRemoteAddress(sdp) {
|
|
108
128
|
// 'a=candidate:1746876089 1 udp 2113937151 0614fbad-b...ocal 54882 typ host generation 0 network-cost 999'
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/private-to-private/handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { EventEmitter } from '@libp2p/
|
|
2
|
-
import type { PeerId } from '@libp2p/interface
|
|
3
|
-
import type { ListenerEvents, Listener
|
|
1
|
+
import { EventEmitter } from '@libp2p/interface/events';
|
|
2
|
+
import type { PeerId } from '@libp2p/interface/peer-id';
|
|
3
|
+
import type { ListenerEvents, Listener } from '@libp2p/interface/transport';
|
|
4
|
+
import type { TransportManager } from '@libp2p/interface-internal/transport-manager';
|
|
4
5
|
import type { Multiaddr } from '@multiformats/multiaddr';
|
|
5
6
|
export interface ListenerOptions {
|
|
6
7
|
peerId: PeerId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../../src/private-to-private/listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../../src/private-to-private/listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAC3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAA;AACpF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB,EAAE,gBAAgB,CAAA;CACnC;AAED,qBAAa,kBAAmB,SAAQ,YAAY,CAAC,cAAc,CAAE,YAAW,QAAQ;IACtF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;gBAEtC,IAAI,EAAE,eAAe;IAO5B,MAAM,IAAK,OAAO,CAAC,IAAI,CAAC;IAI9B,QAAQ,IAAK,SAAS,EAAE;IAalB,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;CAG9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listener.js","sourceRoot":"","sources":["../../../src/private-to-private/listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"listener.js","sourceRoot":"","sources":["../../../src/private-to-private/listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAW7C,MAAM,OAAO,kBAAmB,SAAQ,YAA4B;IACjD,MAAM,CAAQ;IACd,gBAAgB,CAAkB;IAEnD,YAAa,IAAqB;QAChC,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QACzB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAA;IAC/C,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;IACzC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,gBAAgB;aACzB,YAAY,EAAE;aACd,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;aACvB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;aACnB,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;aACjC,GAAG,CAAC,EAAE,CAAC,EAAE;YACR,OAAO,EAAE,CAAC,WAAW,CAAC,eAAe,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QACrD,CAAC,CAAC,CACH;aACA,IAAI,EAAE,CAAA;IACX,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IACrC,CAAC;CACF"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { type CreateListenerOptions, type DialOptions,
|
|
1
|
+
import { type CreateListenerOptions, type DialOptions, symbol, type Transport, type Listener, type Upgrader } from '@libp2p/interface/transport';
|
|
2
2
|
import { type Multiaddr } from '@multiformats/multiaddr';
|
|
3
3
|
import type { DataChannelOpts } from '../stream.js';
|
|
4
|
-
import type { Connection } from '@libp2p/interface
|
|
5
|
-
import type { PeerId } from '@libp2p/interface
|
|
6
|
-
import type {
|
|
7
|
-
import type {
|
|
4
|
+
import type { Connection } from '@libp2p/interface/connection';
|
|
5
|
+
import type { PeerId } from '@libp2p/interface/peer-id';
|
|
6
|
+
import type { Startable } from '@libp2p/interface/startable';
|
|
7
|
+
import type { IncomingStreamData, Registrar } from '@libp2p/interface-internal/registrar';
|
|
8
|
+
import type { TransportManager } from '@libp2p/interface-internal/transport-manager';
|
|
8
9
|
export interface WebRTCTransportInit {
|
|
9
10
|
rtcConfiguration?: RTCConfiguration;
|
|
10
11
|
dataChannel?: Partial<DataChannelOpts>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/private-to-private/transport.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/private-to-private/transport.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,WAAW,EAAE,MAAM,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAGhJ,OAAO,EAAa,KAAK,SAAS,EAAa,MAAM,yBAAyB,CAAA;AAM9E,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,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAA;AACzF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAA;AASpF,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;IASvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAM5B,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;IAcvC,IAAI,CAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAiD/D,WAAW,CAAE,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;CA0B9E;AAED,wBAAgB,SAAS,CAAE,EAAE,EAAE,SAAS,GAAG;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA4BjF"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { CodeError } from '@libp2p/interface/errors';
|
|
2
|
+
import { symbol } from '@libp2p/interface/transport';
|
|
3
3
|
import { logger } from '@libp2p/logger';
|
|
4
4
|
import { peerIdFromString } from '@libp2p/peer-id';
|
|
5
5
|
import { multiaddr, protocols } from '@multiformats/multiaddr';
|
|
6
6
|
import { codes } from '../error.js';
|
|
7
7
|
import { WebRTCMultiaddrConnection } from '../maconn.js';
|
|
8
|
+
import { cleanup } from '../webrtc/index.js';
|
|
8
9
|
import { initiateConnection, handleIncomingStream } from './handler.js';
|
|
9
10
|
import { WebRTCPeerListener } from './listener.js';
|
|
10
11
|
const log = logger('libp2p:webrtc:peer');
|
|
@@ -26,11 +27,14 @@ export class WebRTCTransport {
|
|
|
26
27
|
async start() {
|
|
27
28
|
await this.components.registrar.handle(SIGNALING_PROTO_ID, (data) => {
|
|
28
29
|
this._onProtocol(data).catch(err => { log.error('failed to handle incoming connect from %p', data.connection.remotePeer, err); });
|
|
30
|
+
}, {
|
|
31
|
+
runOnTransientConnection: true
|
|
29
32
|
});
|
|
30
33
|
this._started = true;
|
|
31
34
|
}
|
|
32
35
|
async stop() {
|
|
33
36
|
await this.components.registrar.unhandle(SIGNALING_PROTO_ID);
|
|
37
|
+
cleanup();
|
|
34
38
|
this._started = false;
|
|
35
39
|
}
|
|
36
40
|
createListener(options) {
|
|
@@ -59,7 +63,10 @@ export class WebRTCTransport {
|
|
|
59
63
|
options.signal = controller.signal;
|
|
60
64
|
}
|
|
61
65
|
const connection = await this.components.transportManager.dial(baseAddr, options);
|
|
62
|
-
const signalingStream = await connection.newStream(
|
|
66
|
+
const signalingStream = await connection.newStream(SIGNALING_PROTO_ID, {
|
|
67
|
+
...options,
|
|
68
|
+
runOnTransientConnection: true
|
|
69
|
+
});
|
|
63
70
|
try {
|
|
64
71
|
const { pc, muxerFactory, remoteAddress } = await initiateConnection({
|
|
65
72
|
stream: signalingStream,
|
|
@@ -77,12 +84,12 @@ export class WebRTCTransport {
|
|
|
77
84
|
muxerFactory
|
|
78
85
|
});
|
|
79
86
|
// close the stream if SDP has been exchanged successfully
|
|
80
|
-
signalingStream.close();
|
|
87
|
+
await signalingStream.close();
|
|
81
88
|
return result;
|
|
82
89
|
}
|
|
83
90
|
catch (err) {
|
|
84
91
|
// reset the stream in case of any error
|
|
85
|
-
signalingStream.
|
|
92
|
+
signalingStream.abort(err);
|
|
86
93
|
throw err;
|
|
87
94
|
}
|
|
88
95
|
finally {
|
|
@@ -109,7 +116,7 @@ export class WebRTCTransport {
|
|
|
109
116
|
});
|
|
110
117
|
}
|
|
111
118
|
catch (err) {
|
|
112
|
-
stream.
|
|
119
|
+
stream.abort(err);
|
|
113
120
|
throw err;
|
|
114
121
|
}
|
|
115
122
|
finally {
|