@libp2p/webrtc 2.0.1 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.min.js +20 -20
- package/dist/src/private-to-private/listener.d.ts +4 -5
- package/dist/src/private-to-private/listener.d.ts.map +1 -1
- package/dist/src/private-to-private/listener.js +8 -14
- package/dist/src/private-to-private/listener.js.map +1 -1
- package/dist/src/private-to-private/transport.d.ts +0 -3
- package/dist/src/private-to-private/transport.d.ts.map +1 -1
- package/dist/src/private-to-private/transport.js.map +1 -1
- package/package.json +3 -3
- package/src/private-to-private/listener.ts +10 -22
- package/src/private-to-private/transport.ts +0 -3
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import { EventEmitter } from '@libp2p/interfaces/events';
|
|
2
|
-
import type { Libp2pEvents } from '@libp2p/interface-libp2p';
|
|
3
2
|
import type { PeerId } from '@libp2p/interface-peer-id';
|
|
4
|
-
import type { ListenerEvents, Listener } from '@libp2p/interface-transport';
|
|
3
|
+
import type { ListenerEvents, Listener, TransportManager } from '@libp2p/interface-transport';
|
|
5
4
|
import type { Multiaddr } from '@multiformats/multiaddr';
|
|
6
5
|
export interface ListenerOptions {
|
|
7
6
|
peerId: PeerId;
|
|
8
|
-
|
|
7
|
+
transportManager: TransportManager;
|
|
9
8
|
}
|
|
10
9
|
export declare class WebRTCPeerListener extends EventEmitter<ListenerEvents> implements Listener {
|
|
11
10
|
private readonly peerId;
|
|
12
|
-
private
|
|
11
|
+
private readonly transportManager;
|
|
13
12
|
constructor(opts: ListenerOptions);
|
|
14
|
-
listen(
|
|
13
|
+
listen(): Promise<void>;
|
|
15
14
|
getAddrs(): Multiaddr[];
|
|
16
15
|
close(): Promise<void>;
|
|
17
16
|
}
|
|
@@ -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,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../../src/private-to-private/listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAExD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC7F,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,28 +1,22 @@
|
|
|
1
1
|
import { EventEmitter } from '@libp2p/interfaces/events';
|
|
2
|
+
import { Circuit } from '@multiformats/mafmt';
|
|
2
3
|
export class WebRTCPeerListener extends EventEmitter {
|
|
3
4
|
peerId;
|
|
4
|
-
|
|
5
|
+
transportManager;
|
|
5
6
|
constructor(opts) {
|
|
6
7
|
super();
|
|
7
8
|
this.peerId = opts.peerId;
|
|
8
|
-
|
|
9
|
-
const listener = event.detail;
|
|
10
|
-
if (listener === this || this.listeners.includes(listener)) {
|
|
11
|
-
return;
|
|
12
|
-
}
|
|
13
|
-
this.listeners.push(listener);
|
|
14
|
-
});
|
|
15
|
-
opts.events.addEventListener('transport:close', (event) => {
|
|
16
|
-
const listener = event.detail;
|
|
17
|
-
this.listeners = this.listeners.filter(l => l !== listener);
|
|
18
|
-
});
|
|
9
|
+
this.transportManager = opts.transportManager;
|
|
19
10
|
}
|
|
20
|
-
async listen(
|
|
11
|
+
async listen() {
|
|
21
12
|
this.safeDispatchEvent('listening', {});
|
|
22
13
|
}
|
|
23
14
|
getAddrs() {
|
|
24
|
-
return this.
|
|
15
|
+
return this.transportManager
|
|
16
|
+
.getListeners()
|
|
17
|
+
.filter(l => l !== this)
|
|
25
18
|
.map(l => l.getAddrs()
|
|
19
|
+
.filter(ma => Circuit.matches(ma))
|
|
26
20
|
.map(ma => {
|
|
27
21
|
return ma.encapsulate(`/webrtc/p2p/${this.peerId}`);
|
|
28
22
|
}))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listener.js","sourceRoot":"","sources":["../../../src/private-to-private/listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"listener.js","sourceRoot":"","sources":["../../../src/private-to-private/listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAU7C,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,8 @@
|
|
|
1
1
|
import { type CreateListenerOptions, type DialOptions, type Listener, symbol, type Transport, type Upgrader, type TransportManager } from '@libp2p/interface-transport';
|
|
2
2
|
import { type Multiaddr } from '@multiformats/multiaddr';
|
|
3
3
|
import type { Connection } from '@libp2p/interface-connection';
|
|
4
|
-
import type { Libp2pEvents } from '@libp2p/interface-libp2p';
|
|
5
4
|
import type { PeerId } from '@libp2p/interface-peer-id';
|
|
6
5
|
import type { IncomingStreamData, Registrar } from '@libp2p/interface-registrar';
|
|
7
|
-
import type { EventEmitter } from '@libp2p/interfaces/events';
|
|
8
6
|
import type { Startable } from '@libp2p/interfaces/startable';
|
|
9
7
|
export interface WebRTCTransportInit {
|
|
10
8
|
rtcConfiguration?: RTCConfiguration;
|
|
@@ -14,7 +12,6 @@ export interface WebRTCTransportComponents {
|
|
|
14
12
|
registrar: Registrar;
|
|
15
13
|
upgrader: Upgrader;
|
|
16
14
|
transportManager: TransportManager;
|
|
17
|
-
events: EventEmitter<Libp2pEvents>;
|
|
18
15
|
}
|
|
19
16
|
export declare class WebRTCTransport implements Transport, Startable {
|
|
20
17
|
private readonly components;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/private-to-private/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,KAAK,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAIvK,OAAO,EAAa,KAAK,SAAS,EAAa,MAAM,yBAAyB,CAAA;AAK9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/private-to-private/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,KAAK,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAIvK,OAAO,EAAa,KAAK,SAAS,EAAa,MAAM,yBAAyB,CAAA;AAK9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAChF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAS7D,MAAM,WAAW,mBAAmB;IAClC,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;CACpC;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,EAAE,mBAAmB;IAI5C,SAAS,IAAK,OAAO;IAIf,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAOvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAK5B,cAAc,CAAE,OAAO,EAAE,qBAAqB,GAAG,QAAQ;IAIzD,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,oBAAmB;IAEhD,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAO;IAExB,MAAM,CAAE,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE;IAO7C,OAAO,CAAC,SAAS;IAqCX,IAAI,CAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IA0C/D,WAAW,CAAE,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;CAsB9E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/private-to-private/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+D,MAAM,EAAwD,MAAM,6BAA6B,CAAA;AACvK,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAkB,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAC9E,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/private-to-private/transport.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/webrtc",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.2",
|
|
4
4
|
"description": "A libp2p transport using WebRTC connections",
|
|
5
5
|
"author": "",
|
|
6
6
|
"license": "Apache-2.0 OR MIT",
|
|
@@ -137,15 +137,15 @@
|
|
|
137
137
|
"dependencies": {
|
|
138
138
|
"@chainsafe/libp2p-noise": "^12.0.0",
|
|
139
139
|
"@libp2p/interface-connection": "^5.0.2",
|
|
140
|
-
"@libp2p/interface-libp2p": "^3.1.0",
|
|
141
140
|
"@libp2p/interface-metrics": "^4.0.8",
|
|
142
141
|
"@libp2p/interface-peer-id": "^2.0.2",
|
|
143
142
|
"@libp2p/interface-registrar": "^2.0.12",
|
|
144
143
|
"@libp2p/interface-stream-muxer": "^4.0.1",
|
|
145
|
-
"@libp2p/interface-transport": "^4.0.
|
|
144
|
+
"@libp2p/interface-transport": "^4.0.3",
|
|
146
145
|
"@libp2p/interfaces": "^3.3.2",
|
|
147
146
|
"@libp2p/logger": "^2.0.7",
|
|
148
147
|
"@libp2p/peer-id": "^2.0.3",
|
|
148
|
+
"@multiformats/mafmt": "^12.1.2",
|
|
149
149
|
"@multiformats/multiaddr": "^12.1.2",
|
|
150
150
|
"abortable-iterator": "^5.0.1",
|
|
151
151
|
"detect-browser": "^5.3.0",
|
|
@@ -1,47 +1,35 @@
|
|
|
1
1
|
import { EventEmitter } from '@libp2p/interfaces/events'
|
|
2
|
-
import
|
|
2
|
+
import { Circuit } from '@multiformats/mafmt'
|
|
3
3
|
import type { PeerId } from '@libp2p/interface-peer-id'
|
|
4
|
-
import type { ListenerEvents, Listener } from '@libp2p/interface-transport'
|
|
4
|
+
import type { ListenerEvents, Listener, TransportManager } from '@libp2p/interface-transport'
|
|
5
5
|
import type { Multiaddr } from '@multiformats/multiaddr'
|
|
6
6
|
|
|
7
7
|
export interface ListenerOptions {
|
|
8
8
|
peerId: PeerId
|
|
9
|
-
|
|
9
|
+
transportManager: TransportManager
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
export class WebRTCPeerListener extends EventEmitter<ListenerEvents> implements Listener {
|
|
13
13
|
private readonly peerId: PeerId
|
|
14
|
-
private
|
|
14
|
+
private readonly transportManager: TransportManager
|
|
15
15
|
|
|
16
16
|
constructor (opts: ListenerOptions) {
|
|
17
17
|
super()
|
|
18
18
|
|
|
19
19
|
this.peerId = opts.peerId
|
|
20
|
-
|
|
21
|
-
opts.events.addEventListener('transport:listening', (event) => {
|
|
22
|
-
const listener = event.detail
|
|
23
|
-
|
|
24
|
-
if (listener === this || this.listeners.includes(listener)) {
|
|
25
|
-
return
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
this.listeners.push(listener)
|
|
29
|
-
})
|
|
30
|
-
|
|
31
|
-
opts.events.addEventListener('transport:close', (event) => {
|
|
32
|
-
const listener = event.detail
|
|
33
|
-
|
|
34
|
-
this.listeners = this.listeners.filter(l => l !== listener)
|
|
35
|
-
})
|
|
20
|
+
this.transportManager = opts.transportManager
|
|
36
21
|
}
|
|
37
22
|
|
|
38
|
-
async listen (
|
|
23
|
+
async listen (): Promise<void> {
|
|
39
24
|
this.safeDispatchEvent('listening', {})
|
|
40
25
|
}
|
|
41
26
|
|
|
42
27
|
getAddrs (): Multiaddr[] {
|
|
43
|
-
return this.
|
|
28
|
+
return this.transportManager
|
|
29
|
+
.getListeners()
|
|
30
|
+
.filter(l => l !== this)
|
|
44
31
|
.map(l => l.getAddrs()
|
|
32
|
+
.filter(ma => Circuit.matches(ma))
|
|
45
33
|
.map(ma => {
|
|
46
34
|
return ma.encapsulate(`/webrtc/p2p/${this.peerId}`)
|
|
47
35
|
})
|
|
@@ -8,10 +8,8 @@ import { WebRTCMultiaddrConnection } from '../maconn.js'
|
|
|
8
8
|
import { initiateConnection, handleIncomingStream } from './handler.js'
|
|
9
9
|
import { WebRTCPeerListener } from './listener.js'
|
|
10
10
|
import type { Connection } from '@libp2p/interface-connection'
|
|
11
|
-
import type { Libp2pEvents } from '@libp2p/interface-libp2p'
|
|
12
11
|
import type { PeerId } from '@libp2p/interface-peer-id'
|
|
13
12
|
import type { IncomingStreamData, Registrar } from '@libp2p/interface-registrar'
|
|
14
|
-
import type { EventEmitter } from '@libp2p/interfaces/events'
|
|
15
13
|
import type { Startable } from '@libp2p/interfaces/startable'
|
|
16
14
|
|
|
17
15
|
const log = logger('libp2p:webrtc:peer')
|
|
@@ -30,7 +28,6 @@ export interface WebRTCTransportComponents {
|
|
|
30
28
|
registrar: Registrar
|
|
31
29
|
upgrader: Upgrader
|
|
32
30
|
transportManager: TransportManager
|
|
33
|
-
events: EventEmitter<Libp2pEvents>
|
|
34
31
|
}
|
|
35
32
|
|
|
36
33
|
export class WebRTCTransport implements Transport, Startable {
|