@libp2p/webrtc 3.2.11 → 4.0.0
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/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 +33 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/maconn.d.ts +8 -4
- package/dist/src/maconn.d.ts.map +1 -1
- package/dist/src/maconn.js +6 -6
- package/dist/src/maconn.js.map +1 -1
- package/dist/src/muxer.d.ts +13 -5
- package/dist/src/muxer.d.ts.map +1 -1
- package/dist/src/muxer.js +36 -7
- package/dist/src/muxer.js.map +1 -1
- package/dist/src/pb/message.js.map +1 -1
- package/dist/src/private-to-private/initiate-connection.d.ts +4 -5
- package/dist/src/private-to-private/initiate-connection.d.ts.map +1 -1
- package/dist/src/private-to-private/initiate-connection.js +4 -5
- package/dist/src/private-to-private/initiate-connection.js.map +1 -1
- package/dist/src/private-to-private/listener.d.ts +3 -4
- 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/pb/message.js.map +1 -1
- package/dist/src/private-to-private/signaling-stream-handler.d.ts +4 -2
- package/dist/src/private-to-private/signaling-stream-handler.d.ts.map +1 -1
- package/dist/src/private-to-private/signaling-stream-handler.js +4 -5
- package/dist/src/private-to-private/signaling-stream-handler.js.map +1 -1
- package/dist/src/private-to-private/transport.d.ts +6 -27
- package/dist/src/private-to-private/transport.d.ts.map +1 -1
- package/dist/src/private-to-private/transport.js +15 -14
- package/dist/src/private-to-private/transport.js.map +1 -1
- package/dist/src/private-to-private/util.d.ts +2 -2
- package/dist/src/private-to-private/util.d.ts.map +1 -1
- package/dist/src/private-to-private/util.js +26 -41
- 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/options.d.ts.map +1 -1
- package/dist/src/private-to-public/sdp.d.ts +2 -1
- package/dist/src/private-to-public/sdp.d.ts.map +1 -1
- package/dist/src/private-to-public/sdp.js +3 -6
- package/dist/src/private-to-public/sdp.js.map +1 -1
- package/dist/src/private-to-public/transport.d.ts +5 -16
- package/dist/src/private-to-public/transport.d.ts.map +1 -1
- package/dist/src/private-to-public/transport.js +28 -17
- package/dist/src/private-to-public/transport.js.map +1 -1
- package/dist/src/stream.d.ts +10 -4
- package/dist/src/stream.d.ts.map +1 -1
- package/dist/src/stream.js +19 -33
- package/dist/src/stream.js.map +1 -1
- package/dist/src/util.d.ts +2 -1
- package/dist/src/util.d.ts.map +1 -1
- package/dist/src/util.js +4 -6
- package/dist/src/util.js.map +1 -1
- package/dist/src/webrtc/rtc-data-channel.js.map +1 -1
- package/dist/src/webrtc/rtc-ice-candidate.js.map +1 -1
- package/dist/src/webrtc/rtc-peer-connection.js.map +1 -1
- package/dist/typedoc-urls.json +8 -0
- package/package.json +25 -20
- package/src/error.ts +2 -2
- package/src/index.ts +40 -3
- package/src/maconn.ts +14 -10
- package/src/muxer.ts +57 -11
- package/src/private-to-private/initiate-connection.ts +7 -11
- package/src/private-to-private/listener.ts +3 -4
- package/src/private-to-private/signaling-stream-handler.ts +7 -7
- package/src/private-to-private/transport.ts +18 -43
- package/src/private-to-private/util.ts +30 -46
- package/src/private-to-public/options.ts +1 -1
- package/src/private-to-public/sdp.ts +4 -8
- package/src/private-to-public/transport.ts +30 -34
- package/src/stream.ts +27 -39
- package/src/util.ts +5 -7
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import { CodeError } from '@libp2p/interface
|
|
2
|
-
import { logger } from '@libp2p/logger';
|
|
1
|
+
import { CodeError } from '@libp2p/interface';
|
|
3
2
|
import { multiaddr } from '@multiformats/multiaddr';
|
|
4
3
|
import { pbStream } from 'it-protobuf-stream';
|
|
5
4
|
import pDefer, {} from 'p-defer';
|
|
6
5
|
import { RTCSessionDescription } from '../webrtc/index.js';
|
|
7
6
|
import { Message } from './pb/message.js';
|
|
8
7
|
import { readCandidatesUntilConnected, resolveOnConnected } from './util.js';
|
|
9
|
-
|
|
10
|
-
export async function handleIncomingStream({ peerConnection, stream, signal, connection }) {
|
|
8
|
+
export async function handleIncomingStream({ peerConnection, stream, signal, connection, log }) {
|
|
11
9
|
log.trace('new inbound signaling stream');
|
|
12
10
|
const messageStream = pbStream(stream).pb(Message);
|
|
13
11
|
try {
|
|
@@ -74,7 +72,8 @@ export async function handleIncomingStream({ peerConnection, stream, signal, con
|
|
|
74
72
|
// wait until candidates are connected
|
|
75
73
|
await readCandidatesUntilConnected(connectedPromise, peerConnection, messageStream, {
|
|
76
74
|
direction: 'recipient',
|
|
77
|
-
signal
|
|
75
|
+
signal,
|
|
76
|
+
log
|
|
78
77
|
});
|
|
79
78
|
log.trace('recipient connected, closing signaling stream');
|
|
80
79
|
await messageStream.unwrap().unwrap().close({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signaling-stream-handler.js","sourceRoot":"","sources":["../../../src/private-to-private/signaling-stream-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"signaling-stream-handler.js","sourceRoot":"","sources":["../../../src/private-to-private/signaling-stream-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { transportSymbol } from '@libp2p/interface';
|
|
2
2
|
import { type Multiaddr } from '@multiformats/multiaddr';
|
|
3
|
-
import type {
|
|
4
|
-
import type { Connection } from '@libp2p/interface
|
|
5
|
-
import type {
|
|
6
|
-
import type { CounterGroup, Metrics } from '@libp2p/interface/src/metrics/index.js';
|
|
7
|
-
import type { Startable } from '@libp2p/interface/startable';
|
|
8
|
-
import type { IncomingStreamData, Registrar } from '@libp2p/interface-internal/registrar';
|
|
9
|
-
import type { ConnectionManager } from '@libp2p/interface-internal/src/connection-manager/index.js';
|
|
10
|
-
import type { TransportManager } from '@libp2p/interface-internal/transport-manager';
|
|
3
|
+
import type { WebRTCTransportComponents, WebRTCTransportInit } from '../index.js';
|
|
4
|
+
import type { Connection, CounterGroup, PeerId, Startable, CreateListenerOptions, DialOptions, Transport, Listener } from '@libp2p/interface';
|
|
5
|
+
import type { IncomingStreamData } from '@libp2p/interface-internal';
|
|
11
6
|
export declare const SIGNALING_PROTO_ID = "/webrtc-signaling/0.0.1";
|
|
12
|
-
export interface WebRTCTransportInit {
|
|
13
|
-
rtcConfiguration?: RTCConfiguration;
|
|
14
|
-
dataChannel?: DataChannelOptions;
|
|
15
|
-
/**
|
|
16
|
-
* Inbound connections must complete the upgrade within this many ms
|
|
17
|
-
* (default: 30s)
|
|
18
|
-
*/
|
|
19
|
-
inboundConnectionTimeout?: number;
|
|
20
|
-
}
|
|
21
|
-
export interface WebRTCTransportComponents {
|
|
22
|
-
peerId: PeerId;
|
|
23
|
-
registrar: Registrar;
|
|
24
|
-
upgrader: Upgrader;
|
|
25
|
-
transportManager: TransportManager;
|
|
26
|
-
connectionManager: ConnectionManager;
|
|
27
|
-
metrics?: Metrics;
|
|
28
|
-
}
|
|
29
7
|
export interface WebRTCTransportMetrics {
|
|
30
8
|
dialerEvents: CounterGroup;
|
|
31
9
|
listenerEvents: CounterGroup;
|
|
@@ -33,6 +11,7 @@ export interface WebRTCTransportMetrics {
|
|
|
33
11
|
export declare class WebRTCTransport implements Transport, Startable {
|
|
34
12
|
private readonly components;
|
|
35
13
|
private readonly init;
|
|
14
|
+
private readonly log;
|
|
36
15
|
private _started;
|
|
37
16
|
private readonly metrics?;
|
|
38
17
|
private readonly shutdownController;
|
|
@@ -42,7 +21,7 @@ export declare class WebRTCTransport implements Transport, Startable {
|
|
|
42
21
|
stop(): Promise<void>;
|
|
43
22
|
createListener(options: CreateListenerOptions): Listener;
|
|
44
23
|
readonly [Symbol.toStringTag] = "@libp2p/webrtc";
|
|
45
|
-
readonly [
|
|
24
|
+
readonly [transportSymbol] = true;
|
|
46
25
|
filter(multiaddrs: Multiaddr[]): Multiaddr[];
|
|
47
26
|
dial(ma: Multiaddr, options: DialOptions): Promise<Connection>;
|
|
48
27
|
_onProtocol({ connection, stream }: IncomingStreamData): Promise<void>;
|
|
@@ -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":"AAAA,OAAO,EAAa,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAE9D,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAA;AASnE,OAAO,KAAK,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjF,OAAO,KAAK,EAAU,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,qBAAqB,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACrJ,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAIpE,eAAO,MAAM,kBAAkB,4BAA4B,CAAA;AAG3D,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,YAAY,CAAA;IAC1B,cAAc,EAAE,YAAY,CAAA;CAC7B;AAED,qBAAa,eAAgB,YAAW,SAAS,EAAE,SAAS;IAOxD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI;IAPvB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAwB;IACjD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAiB;gBAGjC,UAAU,EAAE,yBAAyB,EACrC,IAAI,GAAE,mBAAwB;IAmBjD,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;IAMzD,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,oBAAmB;IAEhD,QAAQ,CAAC,CAAC,eAAe,CAAC,QAAO;IAEjC,MAAM,CAAE,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE;IAWvC,IAAI,CAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAsC/D,WAAW,CAAE,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2C7E,OAAO,CAAC,gBAAgB;CAezB;AAED,wBAAgB,SAAS,CAAE,EAAE,EAAE,SAAS,GAAG;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA4BjF"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { CodeError } from '@libp2p/interface
|
|
2
|
-
import { symbol } from '@libp2p/interface/transport';
|
|
3
|
-
import { logger } from '@libp2p/logger';
|
|
1
|
+
import { CodeError, transportSymbol } from '@libp2p/interface';
|
|
4
2
|
import { peerIdFromString } from '@libp2p/peer-id';
|
|
5
3
|
import { multiaddr } from '@multiformats/multiaddr';
|
|
6
4
|
import { WebRTC } from '@multiformats/multiaddr-matcher';
|
|
@@ -11,7 +9,6 @@ import { cleanup, RTCPeerConnection } from '../webrtc/index.js';
|
|
|
11
9
|
import { initiateConnection } from './initiate-connection.js';
|
|
12
10
|
import { WebRTCPeerListener } from './listener.js';
|
|
13
11
|
import { handleIncomingStream } from './signaling-stream-handler.js';
|
|
14
|
-
const log = logger('libp2p:webrtc:peer');
|
|
15
12
|
const WEBRTC_TRANSPORT = '/webrtc';
|
|
16
13
|
const CIRCUIT_RELAY_TRANSPORT = '/p2p-circuit';
|
|
17
14
|
export const SIGNALING_PROTO_ID = '/webrtc-signaling/0.0.1';
|
|
@@ -19,12 +16,14 @@ const INBOUND_CONNECTION_TIMEOUT = 30 * 1000;
|
|
|
19
16
|
export class WebRTCTransport {
|
|
20
17
|
components;
|
|
21
18
|
init;
|
|
19
|
+
log;
|
|
22
20
|
_started = false;
|
|
23
21
|
metrics;
|
|
24
22
|
shutdownController;
|
|
25
23
|
constructor(components, init = {}) {
|
|
26
24
|
this.components = components;
|
|
27
25
|
this.init = init;
|
|
26
|
+
this.log = components.logger.forComponent('libp2p:webrtc');
|
|
28
27
|
this.shutdownController = new AbortController();
|
|
29
28
|
if (components.metrics != null) {
|
|
30
29
|
this.metrics = {
|
|
@@ -44,7 +43,7 @@ export class WebRTCTransport {
|
|
|
44
43
|
}
|
|
45
44
|
async start() {
|
|
46
45
|
await this.components.registrar.handle(SIGNALING_PROTO_ID, (data) => {
|
|
47
|
-
this._onProtocol(data).catch(err => { log.error('failed to handle incoming connect from %p', data.connection.remotePeer, err); });
|
|
46
|
+
this._onProtocol(data).catch(err => { this.log.error('failed to handle incoming connect from %p', data.connection.remotePeer, err); });
|
|
48
47
|
}, {
|
|
49
48
|
runOnTransientConnection: true
|
|
50
49
|
});
|
|
@@ -61,7 +60,7 @@ export class WebRTCTransport {
|
|
|
61
60
|
});
|
|
62
61
|
}
|
|
63
62
|
[Symbol.toStringTag] = '@libp2p/webrtc';
|
|
64
|
-
[
|
|
63
|
+
[transportSymbol] = true;
|
|
65
64
|
filter(multiaddrs) {
|
|
66
65
|
return multiaddrs.filter(WebRTC.exactMatch);
|
|
67
66
|
}
|
|
@@ -73,9 +72,9 @@ export class WebRTCTransport {
|
|
|
73
72
|
* <relay address>/p2p/<relay-peer>/p2p-circuit/webrtc/p2p/<destination-peer>
|
|
74
73
|
*/
|
|
75
74
|
async dial(ma, options) {
|
|
76
|
-
log.trace('dialing address: %a', ma);
|
|
75
|
+
this.log.trace('dialing address: %a', ma);
|
|
77
76
|
const peerConnection = new RTCPeerConnection(this.init.rtcConfiguration);
|
|
78
|
-
const muxerFactory = new DataChannelMuxerFactory({
|
|
77
|
+
const muxerFactory = new DataChannelMuxerFactory(this.components, {
|
|
79
78
|
peerConnection,
|
|
80
79
|
dataChannelOptions: this.init.dataChannel
|
|
81
80
|
});
|
|
@@ -85,9 +84,10 @@ export class WebRTCTransport {
|
|
|
85
84
|
dataChannelOptions: this.init.dataChannel,
|
|
86
85
|
signal: options.signal,
|
|
87
86
|
connectionManager: this.components.connectionManager,
|
|
88
|
-
transportManager: this.components.transportManager
|
|
87
|
+
transportManager: this.components.transportManager,
|
|
88
|
+
log: this.log
|
|
89
89
|
});
|
|
90
|
-
const webRTCConn = new WebRTCMultiaddrConnection({
|
|
90
|
+
const webRTCConn = new WebRTCMultiaddrConnection(this.components, {
|
|
91
91
|
peerConnection,
|
|
92
92
|
timeline: { open: Date.now() },
|
|
93
93
|
remoteAddr: remoteAddress,
|
|
@@ -105,7 +105,7 @@ export class WebRTCTransport {
|
|
|
105
105
|
async _onProtocol({ connection, stream }) {
|
|
106
106
|
const signal = AbortSignal.timeout(this.init.inboundConnectionTimeout ?? INBOUND_CONNECTION_TIMEOUT);
|
|
107
107
|
const peerConnection = new RTCPeerConnection(this.init.rtcConfiguration);
|
|
108
|
-
const muxerFactory = new DataChannelMuxerFactory({
|
|
108
|
+
const muxerFactory = new DataChannelMuxerFactory(this.components, {
|
|
109
109
|
peerConnection,
|
|
110
110
|
dataChannelOptions: this.init.dataChannel
|
|
111
111
|
});
|
|
@@ -114,9 +114,10 @@ export class WebRTCTransport {
|
|
|
114
114
|
peerConnection,
|
|
115
115
|
connection,
|
|
116
116
|
stream,
|
|
117
|
-
signal
|
|
117
|
+
signal,
|
|
118
|
+
log: this.log
|
|
118
119
|
});
|
|
119
|
-
const webRTCConn = new WebRTCMultiaddrConnection({
|
|
120
|
+
const webRTCConn = new WebRTCMultiaddrConnection(this.components, {
|
|
120
121
|
peerConnection,
|
|
121
122
|
timeline: { open: (new Date()).getTime() },
|
|
122
123
|
remoteAddr: remoteAddress,
|
|
@@ -144,7 +145,7 @@ export class WebRTCTransport {
|
|
|
144
145
|
const shutDownListener = () => {
|
|
145
146
|
webRTCConn.close()
|
|
146
147
|
.catch(err => {
|
|
147
|
-
log.error('could not close WebRTCMultiaddrConnection', err);
|
|
148
|
+
this.log.error('could not close WebRTCMultiaddrConnection', err);
|
|
148
149
|
});
|
|
149
150
|
};
|
|
150
151
|
this.shutdownController.signal.addEventListener('abort', shutDownListener);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/private-to-private/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/private-to-private/transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Message } from './pb/message.js';
|
|
2
|
-
import type { Stream } from '@libp2p/interface
|
|
2
|
+
import type { LoggerOptions, Stream } from '@libp2p/interface';
|
|
3
3
|
import type { AbortOptions, MessageStream } from 'it-protobuf-stream';
|
|
4
4
|
import type { DeferredPromise } from 'p-defer';
|
|
5
|
-
export interface ReadCandidatesOptions extends AbortOptions {
|
|
5
|
+
export interface ReadCandidatesOptions extends AbortOptions, LoggerOptions {
|
|
6
6
|
direction: string;
|
|
7
7
|
}
|
|
8
8
|
export declare const readCandidatesUntilConnected: (connectedPromise: DeferredPromise<void>, pc: RTCPeerConnection, stream: MessageStream<Message, Stream>, options: ReadCandidatesOptions) => Promise<void>;
|
|
@@ -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,EAAE,MAAM,mBAAmB,CAAA;AAC9D,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,13 +1,9 @@
|
|
|
1
|
-
import { CodeError } from '@libp2p/interface
|
|
2
|
-
import {
|
|
3
|
-
import { abortableSource } from 'abortable-iterator';
|
|
1
|
+
import { CodeError } from '@libp2p/interface';
|
|
2
|
+
import { closeSource } from '@libp2p/utils/close-source';
|
|
4
3
|
import { anySignal } from 'any-signal';
|
|
5
|
-
import * as lp from 'it-length-prefixed';
|
|
6
|
-
import { AbortError, raceSignal } from 'race-signal';
|
|
7
4
|
import { isFirefox } from '../util.js';
|
|
8
5
|
import { RTCIceCandidate } from '../webrtc/index.js';
|
|
9
6
|
import { Message } from './pb/message.js';
|
|
10
|
-
const log = logger('libp2p:webrtc:peer:util');
|
|
11
7
|
export const readCandidatesUntilConnected = async (connectedPromise, pc, stream, options) => {
|
|
12
8
|
// if we connect, stop trying to read from the stream
|
|
13
9
|
const controller = new AbortController();
|
|
@@ -20,63 +16,52 @@ export const readCandidatesUntilConnected = async (connectedPromise, pc, stream,
|
|
|
20
16
|
controller.signal,
|
|
21
17
|
options.signal
|
|
22
18
|
]);
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
}
|
|
19
|
+
const abortListener = () => {
|
|
20
|
+
closeSource(stream.unwrap().unwrap().source, options.log);
|
|
21
|
+
};
|
|
22
|
+
signal.addEventListener('abort', abortListener);
|
|
26
23
|
try {
|
|
27
24
|
// read candidates until we are connected or we reach the end of the stream
|
|
28
|
-
|
|
29
|
-
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
|
+
}
|
|
30
34
|
if (message.type !== Message.Type.ICE_CANDIDATE) {
|
|
31
35
|
throw new CodeError('ICE candidate message expected', 'ERR_NOT_ICE_CANDIDATE');
|
|
32
36
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
candidateInit = {
|
|
37
|
-
candidate: '',
|
|
38
|
-
sdpMid: '0',
|
|
39
|
-
sdpMLineIndex: 0
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
if (candidateInit === null) {
|
|
43
|
-
log.trace('end-of-candidates received');
|
|
44
|
-
candidateInit = {
|
|
45
|
-
candidate: null,
|
|
46
|
-
sdpMid: '0',
|
|
47
|
-
sdpMLineIndex: 0
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
// a null candidate means end-of-candidates
|
|
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
|
|
51
40
|
// see - https://www.w3.org/TR/webrtc/#rtcpeerconnectioniceevent
|
|
41
|
+
if (candidateInit === '' || candidateInit === null) {
|
|
42
|
+
options.log.trace('end-of-candidates received');
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
52
45
|
const candidate = new RTCIceCandidate(candidateInit);
|
|
53
|
-
log.trace('%s received new ICE candidate', options.direction, candidate);
|
|
46
|
+
options.log.trace('%s received new ICE candidate', options.direction, candidate);
|
|
54
47
|
try {
|
|
55
48
|
await pc.addIceCandidate(candidate);
|
|
56
49
|
}
|
|
57
50
|
catch (err) {
|
|
58
|
-
log.error('%s bad candidate received', options.direction, err);
|
|
51
|
+
options.log.error('%s bad candidate received', options.direction, candidateInit, err);
|
|
59
52
|
}
|
|
60
53
|
}
|
|
61
54
|
}
|
|
62
55
|
catch (err) {
|
|
63
|
-
log.error('%s error parsing ICE candidate', options.direction, err);
|
|
56
|
+
options.log.error('%s error parsing ICE candidate', options.direction, err);
|
|
64
57
|
}
|
|
65
58
|
finally {
|
|
59
|
+
signal.removeEventListener('abort', abortListener);
|
|
66
60
|
signal.clear();
|
|
67
61
|
}
|
|
68
|
-
if (options.signal?.aborted === true) {
|
|
69
|
-
throw new AbortError('Aborted while reading ICE candidates', 'ERR_ICE_CANDIDATES_READ_ABORTED');
|
|
70
|
-
}
|
|
71
|
-
// read all available ICE candidates, wait for connection state change
|
|
72
|
-
await raceSignal(connectedPromise.promise, options.signal, {
|
|
73
|
-
errorMessage: 'Aborted before connected',
|
|
74
|
-
errorCode: 'ERR_ABORTED_BEFORE_CONNECTED'
|
|
75
|
-
});
|
|
76
62
|
};
|
|
77
63
|
export function resolveOnConnected(pc, promise) {
|
|
78
64
|
pc[isFirefox ? 'oniceconnectionstatechange' : 'onconnectionstatechange'] = (_) => {
|
|
79
|
-
log.trace('receiver peerConnectionState state change: %s', pc.connectionState);
|
|
80
65
|
switch (isFirefox ? pc.iceConnectionState : pc.connectionState) {
|
|
81
66
|
case 'connected':
|
|
82
67
|
promise.resolve();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/private-to-private/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/private-to-private/util.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CreateListenerOptions, DialOptions } from '@libp2p/interface
|
|
1
|
+
import type { CreateListenerOptions, DialOptions } from '@libp2p/interface';
|
|
2
2
|
export interface WebRTCListenerOptions extends CreateListenerOptions {
|
|
3
3
|
}
|
|
4
4
|
export interface WebRTCDialOptions extends DialOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/private-to-public/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/private-to-public/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE3E,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;CAAG;AACvE,MAAM,WAAW,iBAAkB,SAAQ,WAAW;CAAG"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import * as multihashes from 'multihashes';
|
|
2
|
+
import type { LoggerOptions } from '@libp2p/interface';
|
|
2
3
|
import type { Multiaddr } from '@multiformats/multiaddr';
|
|
3
4
|
import type { HashCode, HashName } from 'multihashes';
|
|
4
5
|
/**
|
|
5
6
|
* Get base2 | identity decoders
|
|
6
7
|
*/
|
|
7
8
|
export declare const mbdecoder: any;
|
|
8
|
-
export declare function getLocalFingerprint(pc: RTCPeerConnection): string | undefined;
|
|
9
|
+
export declare function getLocalFingerprint(pc: RTCPeerConnection, options: LoggerOptions): string | undefined;
|
|
9
10
|
export declare function getFingerprintFromSdp(sdp: string): string | undefined;
|
|
10
11
|
export declare function certhash(ma: Multiaddr): string;
|
|
11
12
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdp.d.ts","sourceRoot":"","sources":["../../../src/private-to-public/sdp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sdp.d.ts","sourceRoot":"","sources":["../../../src/private-to-public/sdp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,WAAW,MAAM,aAAa,CAAA;AAG1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAErD;;GAEG;AAEH,eAAO,MAAM,SAAS,EAAE,GAAwE,CAAA;AAEhG,wBAAgB,mBAAmB,CAAE,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAwBtG;AAGD,wBAAgB,qBAAqB,CAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGtE;AAeD,wBAAgB,QAAQ,CAAE,EAAE,EAAE,SAAS,GAAG,MAAM,CAS/C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAE,QAAQ,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAGxH;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAE,EAAE,EAAE,SAAS,GAAG,MAAM,EAAE,CAWvD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAE,IAAI,EAAE,WAAW,CAAC,QAAQ,GAAG,MAAM,CAW3E;AA2BD;;GAEG;AACH,wBAAgB,aAAa,CAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,yBAAyB,CAKtF;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,MAAM,GAAG,yBAAyB,CAShG"}
|
|
@@ -1,26 +1,24 @@
|
|
|
1
|
-
import { logger } from '@libp2p/logger';
|
|
2
1
|
import { bases } from 'multiformats/basics';
|
|
3
2
|
import * as multihashes from 'multihashes';
|
|
4
3
|
import { inappropriateMultiaddr, invalidArgument, invalidFingerprint, unsupportedHashAlgorithm } from '../error.js';
|
|
5
4
|
import { CERTHASH_CODE } from './transport.js';
|
|
6
|
-
const log = logger('libp2p:webrtc:sdp');
|
|
7
5
|
/**
|
|
8
6
|
* Get base2 | identity decoders
|
|
9
7
|
*/
|
|
10
8
|
// @ts-expect-error - Not easy to combine these types.
|
|
11
9
|
export const mbdecoder = Object.values(bases).map(b => b.decoder).reduce((d, b) => d.or(b));
|
|
12
|
-
export function getLocalFingerprint(pc) {
|
|
10
|
+
export function getLocalFingerprint(pc, options) {
|
|
13
11
|
// try to fetch fingerprint from local certificate
|
|
14
12
|
const localCert = pc.getConfiguration().certificates?.at(0);
|
|
15
13
|
if (localCert == null || localCert.getFingerprints == null) {
|
|
16
|
-
log.trace('fetching fingerprint from local SDP');
|
|
14
|
+
options.log.trace('fetching fingerprint from local SDP');
|
|
17
15
|
const localDescription = pc.localDescription;
|
|
18
16
|
if (localDescription == null) {
|
|
19
17
|
return undefined;
|
|
20
18
|
}
|
|
21
19
|
return getFingerprintFromSdp(localDescription.sdp);
|
|
22
20
|
}
|
|
23
|
-
log.trace('fetching fingerprint from local certificate');
|
|
21
|
+
options.log.trace('fetching fingerprint from local certificate');
|
|
24
22
|
if (localCert.getFingerprints().length === 0) {
|
|
25
23
|
return undefined;
|
|
26
24
|
}
|
|
@@ -44,7 +42,6 @@ function ipv(ma) {
|
|
|
44
42
|
return proto.toUpperCase();
|
|
45
43
|
}
|
|
46
44
|
}
|
|
47
|
-
log('Warning: multiaddr does not appear to contain IP4 or IP6, defaulting to IP6', ma);
|
|
48
45
|
return 'IP6';
|
|
49
46
|
}
|
|
50
47
|
// Extract the certhash from a multiaddr
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdp.js","sourceRoot":"","sources":["../../../src/private-to-public/sdp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"sdp.js","sourceRoot":"","sources":["../../../src/private-to-public/sdp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,OAAO,KAAK,WAAW,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AACnH,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAK9C;;GAEG;AACH,sDAAsD;AACtD,MAAM,CAAC,MAAM,SAAS,GAAQ,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AAEhG,MAAM,UAAU,mBAAmB,CAAE,EAAqB,EAAE,OAAsB;IAChF,kDAAkD;IAClD,MAAM,SAAS,GAAG,EAAE,CAAC,gBAAgB,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;IAC3D,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,CAAC,eAAe,IAAI,IAAI,EAAE,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAA;QACxD,MAAM,gBAAgB,GAAG,EAAE,CAAC,gBAAgB,CAAA;QAC5C,IAAI,gBAAgB,IAAI,IAAI,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,OAAO,qBAAqB,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAA;IACpD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAA;IAEhE,IAAI,SAAS,CAAC,eAAe,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IACxD,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,kBAAkB,CAAC,EAAE,EAAE,qCAAqC,CAAC,CAAA;IACrE,CAAC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,MAAM,gBAAgB,GAAG,sEAAsE,CAAA;AAC/F,MAAM,UAAU,qBAAqB,CAAE,GAAW;IAChD,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;IAChD,OAAO,YAAY,EAAE,MAAM,EAAE,WAAW,CAAA;AAC1C,CAAC;AACD;;GAEG;AACH,SAAS,GAAG,CAAE,EAAa;IACzB,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC;QACpC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC,WAAW,EAAE,CAAA;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,wCAAwC;AACxC,MAAM,UAAU,QAAQ,CAAE,EAAa;IACrC,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,EAAE,CAAA;IAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAEvF,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;QAC9C,MAAM,sBAAsB,CAAC,oDAAoD,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IACnG,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAE,QAAgB;IAC9C,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC5C,OAAO,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAE,EAAa;IAC3C,MAAM,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;IAC9C,MAAM,MAAM,GAAG,uBAAuB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IACtD,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;IACxG,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAExC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAChB,MAAM,kBAAkB,CAAC,WAAW,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;IACtD,CAAC;IAED,OAAO,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,EAAE,WAAW,CAAC,CAAA;AAChF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAE,IAA0B;IACjE,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM;YACT,OAAO,OAAO,CAAA;QAChB,KAAK,UAAU;YACb,OAAO,SAAS,CAAA;QAClB,KAAK,UAAU;YACb,OAAO,SAAS,CAAA;QAClB;YACE,MAAM,wBAAwB,CAAC,IAAI,CAAC,CAAA;IACxC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,MAAM,CAAE,EAAa,EAAE,KAAa;IAC3C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAA;IACrC,MAAM,SAAS,GAAG,GAAG,CAAC,EAAE,CAAC,CAAA;IACzB,MAAM,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,EAAE,CAAC,CAAA;IAEnC,OAAO;aACI,SAAS,IAAI,IAAI;;OAEvB,SAAS,IAAI,IAAI;;;gBAGR,IAAI;;;cAGN,KAAK;YACP,KAAK;gBACD,MAAM;;;0CAGoB,IAAI,IAAI,IAAI,eAAe,CAAA;AACrE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAE,EAAa,EAAE,KAAa;IACzD,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC;KACvB,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAAE,IAA+B,EAAE,KAAa;IACnE,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,eAAe,CAAC,2BAA2B,CAAC,CAAA;IACpD,CAAC;IAED,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;SAChB,OAAO,CAAC,wBAAwB,EAAE,gBAAgB,GAAG,KAAK,GAAG,IAAI,CAAC;SAClE,OAAO,CAAC,sBAAsB,EAAE,cAAc,GAAG,KAAK,GAAG,IAAI,CAAC,CAAA;IACjE,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { transportSymbol } from '@libp2p/interface';
|
|
2
2
|
import type { WebRTCDialOptions } from './options.js';
|
|
3
|
-
import type {
|
|
4
|
-
import type { Connection } from '@libp2p/interface
|
|
5
|
-
import type { CounterGroup, Metrics } from '@libp2p/interface/metrics';
|
|
6
|
-
import type { PeerId } from '@libp2p/interface/peer-id';
|
|
3
|
+
import type { WebRTCDirectTransportComponents, WebRTCTransportDirectInit } from '../index.js';
|
|
4
|
+
import type { Connection, CounterGroup, CreateListenerOptions, Transport, Listener } from '@libp2p/interface';
|
|
7
5
|
import type { Multiaddr } from '@multiformats/multiaddr';
|
|
8
6
|
/**
|
|
9
7
|
* Created by converting the hexadecimal protocol code to an integer.
|
|
@@ -17,20 +15,11 @@ export declare const WEBRTC_CODE: number;
|
|
|
17
15
|
* {@link https://github.com/multiformats/multiaddr/blob/master/protocols.csv}
|
|
18
16
|
*/
|
|
19
17
|
export declare const CERTHASH_CODE: number;
|
|
20
|
-
/**
|
|
21
|
-
* The peer for this transport
|
|
22
|
-
*/
|
|
23
|
-
export interface WebRTCDirectTransportComponents {
|
|
24
|
-
peerId: PeerId;
|
|
25
|
-
metrics?: Metrics;
|
|
26
|
-
}
|
|
27
18
|
export interface WebRTCMetrics {
|
|
28
19
|
dialerEvents: CounterGroup;
|
|
29
20
|
}
|
|
30
|
-
export interface WebRTCTransportDirectInit {
|
|
31
|
-
dataChannel?: DataChannelOptions;
|
|
32
|
-
}
|
|
33
21
|
export declare class WebRTCDirectTransport implements Transport {
|
|
22
|
+
private readonly log;
|
|
34
23
|
private readonly metrics?;
|
|
35
24
|
private readonly components;
|
|
36
25
|
private readonly init;
|
|
@@ -54,7 +43,7 @@ export declare class WebRTCDirectTransport implements Transport {
|
|
|
54
43
|
/**
|
|
55
44
|
* Symbol.for('@libp2p/transport')
|
|
56
45
|
*/
|
|
57
|
-
readonly [
|
|
46
|
+
readonly [transportSymbol] = true;
|
|
58
47
|
/**
|
|
59
48
|
* Connect to a peer using a multiaddr
|
|
60
49
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/private-to-public/transport.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/private-to-public/transport.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAenD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,KAAK,EAAE,+BAA+B,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAC7F,OAAO,KAAK,EAAU,UAAU,EAAE,YAAY,EAAE,qBAAqB,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACrH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAOxD;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,MAAwC,CAAA;AAElE;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,MAAmC,CAAA;AAE/D,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,YAAY,CAAA;CAC3B;AAED,qBAAa,qBAAsB,YAAW,SAAS;IACrD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,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;IAc9F;;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,eAAe,CAAC,QAAO;IAEjC;;OAEG;IACG,QAAQ,CAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;IAsJ/E;;;OAGG;IACH,OAAO,CAAC,qBAAqB;CAoB9B"}
|