@libp2p/webrtc 4.0.8 → 4.0.9

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.
@@ -1 +1 @@
1
- {"version":3,"file":"initiate-connection.d.ts","sourceRoot":"","sources":["../../../src/private-to-private/initiate-connection.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,iBAAiB,EAAyB,MAAM,oBAAoB,CAAA;AAElF,OAAO,EAAiC,KAAK,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAE3F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,mBAAmB,CAAA;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AACzG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC5D,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAChD,MAAM,EAAE,WAAW,CAAA;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,cAAc,EAAE,iBAAiB,CAAA;IACjC,SAAS,EAAE,SAAS,CAAA;IACpB,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,kBAAkB,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAChD,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,OAAO,CAAC,EAAE,sBAAsB,CAAA;CACjC;AAED,wBAAsB,kBAAkB,CAAE,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,GAAG,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC;IAAE,aAAa,EAAE,SAAS,CAAA;CAAE,CAAC,CA2J7L"}
1
+ {"version":3,"file":"initiate-connection.d.ts","sourceRoot":"","sources":["../../../src/private-to-private/initiate-connection.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,iBAAiB,EAAyB,MAAM,oBAAoB,CAAA;AAElF,OAAO,EAAiC,KAAK,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAE3F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,mBAAmB,CAAA;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AACzG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC5D,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAChD,MAAM,EAAE,WAAW,CAAA;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,cAAc,EAAE,iBAAiB,CAAA;IACjC,SAAS,EAAE,SAAS,CAAA;IACpB,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,kBAAkB,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAChD,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,OAAO,CAAC,EAAE,sBAAsB,CAAA;CACjC;AAED,wBAAsB,kBAAkB,CAAE,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,GAAG,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC;IAAE,aAAa,EAAE,SAAS,CAAA;CAAE,CAAC,CAmJ7L"}
@@ -1,11 +1,10 @@
1
1
  import { CodeError } from '@libp2p/interface';
2
2
  import { peerIdFromString } from '@libp2p/peer-id';
3
3
  import { pbStream } from 'it-protobuf-stream';
4
- import pDefer, {} from 'p-defer';
5
4
  import { RTCSessionDescription } from '../webrtc/index.js';
6
5
  import { Message } from './pb/message.js';
7
6
  import { SIGNALING_PROTO_ID, splitAddr } from './transport.js';
8
- import { readCandidatesUntilConnected, resolveOnConnected } from './util.js';
7
+ import { readCandidatesUntilConnected } from './util.js';
9
8
  export async function initiateConnection({ peerConnection, signal, metrics, multiaddr: ma, connectionManager, transportManager, log }) {
10
9
  const { baseAddr } = splitAddr(ma);
11
10
  metrics?.dialerEvents.increment({ open: true });
@@ -37,14 +36,7 @@ export async function initiateConnection({ peerConnection, signal, metrics, mult
37
36
  runOnTransientConnection: true
38
37
  });
39
38
  const messageStream = pbStream(stream).pb(Message);
40
- const connectedPromise = pDefer();
41
- const sdpAbortedListener = () => {
42
- connectedPromise.reject(new CodeError('SDP handshake aborted', 'ERR_SDP_HANDSHAKE_ABORTED'));
43
- };
44
39
  try {
45
- resolveOnConnected(peerConnection, connectedPromise);
46
- // reject the connectedPromise if the signal aborts
47
- signal?.addEventListener('abort', sdpAbortedListener);
48
40
  // we create the channel so that the RTCPeerConnection has a component for
49
41
  // which to collect candidates. The label is not relevant to connection
50
42
  // initiation but can be useful for debugging
@@ -68,10 +60,13 @@ export async function initiateConnection({ peerConnection, signal, metrics, mult
68
60
  });
69
61
  };
70
62
  peerConnection.onicecandidateerror = (event) => {
71
- log('initiator ICE candidate error', event);
63
+ log.error('initiator ICE candidate error', event);
72
64
  };
73
65
  // create an offer
74
- const offerSdp = await peerConnection.createOffer();
66
+ const offerSdp = await peerConnection.createOffer().catch(err => {
67
+ log.error('could not execute createOffer', err);
68
+ throw new CodeError('Failed to set createOffer', 'ERR_SDP_HANDSHAKE_FAILED');
69
+ });
75
70
  log.trace('initiator send SDP offer %s', offerSdp.sdp);
76
71
  // write the offer to the stream
77
72
  await messageStream.write({ type: Message.Type.SDP_OFFER, data: offerSdp.sdp }, {
@@ -87,7 +82,7 @@ export async function initiateConnection({ peerConnection, signal, metrics, mult
87
82
  signal
88
83
  });
89
84
  if (answerMessage.type !== Message.Type.SDP_ANSWER) {
90
- throw new CodeError('remote should send an SDP answer', 'ERR_SDP_HANDSHAKE_FAILED');
85
+ throw new CodeError('Remote should send an SDP answer', 'ERR_SDP_HANDSHAKE_FAILED');
91
86
  }
92
87
  log.trace('initiator receive SDP answer %s', answerMessage.data);
93
88
  const answerSdp = new RTCSessionDescription({ type: 'answer', sdp: answerMessage.data });
@@ -96,7 +91,7 @@ export async function initiateConnection({ peerConnection, signal, metrics, mult
96
91
  throw new CodeError('Failed to set remoteDescription', 'ERR_SDP_HANDSHAKE_FAILED');
97
92
  });
98
93
  log.trace('initiator read candidates until connected');
99
- await readCandidatesUntilConnected(connectedPromise, peerConnection, messageStream, {
94
+ await readCandidatesUntilConnected(peerConnection, messageStream, {
100
95
  direction: 'initiator',
101
96
  signal,
102
97
  log
@@ -118,8 +113,6 @@ export async function initiateConnection({ peerConnection, signal, metrics, mult
118
113
  throw err;
119
114
  }
120
115
  finally {
121
- // remove event listeners
122
- signal?.removeEventListener('abort', sdpAbortedListener);
123
116
  peerConnection.onicecandidate = null;
124
117
  peerConnection.onicecandidateerror = null;
125
118
  }
@@ -1 +1 @@
1
- {"version":3,"file":"initiate-connection.js","sourceRoot":"","sources":["../../../src/private-to-private/initiate-connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"initiate-connection.js","sourceRoot":"","sources":["../../../src/private-to-private/initiate-connection.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"signaling-stream-handler.d.ts","sourceRoot":"","sources":["../../../src/private-to-private/signaling-stream-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAGnE,OAAO,EAAE,KAAK,iBAAiB,EAAyB,MAAM,oBAAoB,CAAA;AAGlF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAEpE,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC5D,cAAc,EAAE,iBAAiB,CAAA;IACjC,MAAM,EAAE,WAAW,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,wBAAsB,oBAAoB,CAAE,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC;IAAE,aAAa,EAAE,SAAS,CAAA;CAAE,CAAC,CAiH1J"}
1
+ {"version":3,"file":"signaling-stream-handler.d.ts","sourceRoot":"","sources":["../../../src/private-to-private/signaling-stream-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEnE,OAAO,EAAE,KAAK,iBAAiB,EAAyB,MAAM,oBAAoB,CAAA;AAGlF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAEpE,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC5D,cAAc,EAAE,iBAAiB,CAAA;IACjC,MAAM,EAAE,WAAW,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,wBAAsB,oBAAoB,CAAE,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC;IAAE,aAAa,EAAE,SAAS,CAAA;CAAE,CAAC,CA0F1J"}
@@ -1,40 +1,31 @@
1
1
  import { CodeError } from '@libp2p/interface';
2
2
  import { multiaddr } from '@multiformats/multiaddr';
3
3
  import { pbStream } from 'it-protobuf-stream';
4
- import pDefer, {} from 'p-defer';
5
4
  import { RTCSessionDescription } from '../webrtc/index.js';
6
5
  import { Message } from './pb/message.js';
7
- import { readCandidatesUntilConnected, resolveOnConnected } from './util.js';
6
+ import { readCandidatesUntilConnected } from './util.js';
8
7
  export async function handleIncomingStream({ peerConnection, stream, signal, connection, log }) {
9
8
  log.trace('new inbound signaling stream');
10
9
  const messageStream = pbStream(stream).pb(Message);
11
10
  try {
12
- const connectedPromise = pDefer();
13
- const answerSentPromise = pDefer();
14
- signal.onabort = () => {
15
- connectedPromise.reject(new CodeError('Timed out while trying to connect', 'ERR_TIMEOUT'));
16
- };
17
11
  // candidate callbacks
18
12
  peerConnection.onicecandidate = ({ candidate }) => {
19
- answerSentPromise.promise.then(async () => {
20
- // a null candidate means end-of-candidates, an empty string candidate
21
- // means end-of-candidates for this generation, otherwise this should
22
- // be a valid candidate object
23
- // see - https://www.w3.org/TR/webrtc/#rtcpeerconnectioniceevent
24
- const data = JSON.stringify(candidate?.toJSON() ?? null);
25
- log.trace('recipient sending ICE candidate %s', data);
26
- await messageStream.write({
27
- type: Message.Type.ICE_CANDIDATE,
28
- data
29
- }, {
30
- signal
31
- });
32
- }, (err) => {
33
- log.error('cannot set candidate since sending answer failed', err);
34
- connectedPromise.reject(err);
13
+ // a null candidate means end-of-candidates, an empty string candidate
14
+ // means end-of-candidates for this generation, otherwise this should
15
+ // be a valid candidate object
16
+ // see - https://www.w3.org/TR/webrtc/#rtcpeerconnectioniceevent
17
+ const data = JSON.stringify(candidate?.toJSON() ?? null);
18
+ log.trace('recipient sending ICE candidate %s', data);
19
+ messageStream.write({
20
+ type: Message.Type.ICE_CANDIDATE,
21
+ data
22
+ }, {
23
+ signal
24
+ })
25
+ .catch(err => {
26
+ log.error('error sending ICE candidate', err);
35
27
  });
36
28
  };
37
- resolveOnConnected(peerConnection, connectedPromise);
38
29
  // read an SDP offer
39
30
  const pbOffer = await messageStream.read({
40
31
  signal
@@ -54,7 +45,6 @@ export async function handleIncomingStream({ peerConnection, stream, signal, con
54
45
  // create and write an SDP answer
55
46
  const answer = await peerConnection.createAnswer().catch(err => {
56
47
  log.error('could not execute createAnswer', err);
57
- answerSentPromise.reject(err);
58
48
  throw new CodeError('Failed to create answer', 'ERR_SDP_HANDSHAKE_FAILED');
59
49
  });
60
50
  log.trace('recipient send SDP answer %s', answer.sdp);
@@ -64,21 +54,15 @@ export async function handleIncomingStream({ peerConnection, stream, signal, con
64
54
  });
65
55
  await peerConnection.setLocalDescription(answer).catch(err => {
66
56
  log.error('could not execute setLocalDescription', err);
67
- answerSentPromise.reject(err);
68
57
  throw new CodeError('Failed to set localDescription', 'ERR_SDP_HANDSHAKE_FAILED');
69
58
  });
70
- answerSentPromise.resolve();
71
59
  log.trace('recipient read candidates until connected');
72
60
  // wait until candidates are connected
73
- await readCandidatesUntilConnected(connectedPromise, peerConnection, messageStream, {
61
+ await readCandidatesUntilConnected(peerConnection, messageStream, {
74
62
  direction: 'recipient',
75
63
  signal,
76
64
  log
77
65
  });
78
- log.trace('recipient connected, closing signaling stream');
79
- await messageStream.unwrap().unwrap().close({
80
- signal
81
- });
82
66
  }
83
67
  catch (err) {
84
68
  if (peerConnection.connectionState !== 'connected') {
@@ -1 +1 @@
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
+ {"version":3,"file":"signaling-stream-handler.js","sourceRoot":"","sources":["../../../src/private-to-private/signaling-stream-handler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
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,eAAe,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,KAAK,eAAe,EAAe,KAAK,UAAU,EAAE,KAAK,MAAM,EAAE,KAAK,YAAY,EAAE,KAAK,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAEjQ,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAA;AASnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAIpH,eAAO,MAAM,kBAAkB,4BAA4B,CAAA;AAG3D,MAAM,WAAW,mBAAmB;IAClC,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,WAAW,CAAC,EAAE,kBAAkB,CAAA;IAEhC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAA;CAClC;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;IACpB,QAAQ,EAAE,QAAQ,CAAA;IAClB,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,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
+ {"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,eAAe,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,KAAK,eAAe,EAAe,KAAK,UAAU,EAAE,KAAK,MAAM,EAAE,KAAK,YAAY,EAAE,KAAK,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAEjQ,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAA;AASnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAIpH,eAAO,MAAM,kBAAkB,4BAA4B,CAAA;AAG3D,MAAM,WAAW,mBAAmB;IAClC,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,WAAW,CAAC,EAAE,kBAAkB,CAAA;IAEhC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAA;CAClC;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;IACpB,QAAQ,EAAE,QAAQ,CAAA;IAClB,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,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;IAoBjD,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,4 +1,4 @@
1
- import { CodeError } from '@libp2p/interface';
1
+ import { CodeError, setMaxListeners } from '@libp2p/interface';
2
2
  import { transportSymbol } from '@libp2p/interface';
3
3
  import { peerIdFromString } from '@libp2p/peer-id';
4
4
  import { multiaddr } from '@multiformats/multiaddr';
@@ -26,6 +26,7 @@ export class WebRTCTransport {
26
26
  this.init = init;
27
27
  this.log = components.logger.forComponent('libp2p:webrtc');
28
28
  this.shutdownController = new AbortController();
29
+ setMaxListeners(Infinity, this.shutdownController.signal);
29
30
  if (components.metrics != null) {
30
31
  this.metrics = {
31
32
  dialerEvents: components.metrics.registerCounterGroup('libp2p_webrtc_dialer_events_total', {
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/private-to-private/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/private-to-private/transport.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,8 @@
1
1
  import { Message } from './pb/message.js';
2
2
  import type { LoggerOptions, Stream } from '@libp2p/interface';
3
3
  import type { AbortOptions, MessageStream } from 'it-protobuf-stream';
4
- import type { DeferredPromise } from 'p-defer';
5
4
  export interface ReadCandidatesOptions extends AbortOptions, LoggerOptions {
6
5
  direction: string;
7
6
  }
8
- export declare const readCandidatesUntilConnected: (connectedPromise: DeferredPromise<void>, pc: RTCPeerConnection, stream: MessageStream<Message, Stream>, options: ReadCandidatesOptions) => Promise<void>;
9
- export declare function resolveOnConnected(pc: RTCPeerConnection, promise: DeferredPromise<void>): void;
7
+ export declare const readCandidatesUntilConnected: (pc: RTCPeerConnection, stream: MessageStream<Message, Stream>, options: ReadCandidatesOptions) => Promise<void>;
10
8
  //# sourceMappingURL=util.d.ts.map
@@ -1 +1 @@
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
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/private-to-private/util.ts"],"names":[],"mappings":"AAIA,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;AAGrE,MAAM,WAAW,qBAAsB,SAAQ,YAAY,EAAE,aAAa;IACxE,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,eAAO,MAAM,4BAA4B,OAAc,iBAAiB,UAAU,cAAc,OAAO,EAAE,MAAM,CAAC,WAAW,qBAAqB,KAAG,QAAQ,IAAI,CAoD9J,CAAA"}
@@ -1,31 +1,20 @@
1
1
  import { CodeError } from '@libp2p/interface';
2
- import { closeSource } from '@libp2p/utils/close-source';
3
- import { anySignal } from 'any-signal';
2
+ import pDefer from 'p-defer';
4
3
  import { isFirefox } from '../util.js';
5
4
  import { RTCIceCandidate } from '../webrtc/index.js';
6
5
  import { Message } from './pb/message.js';
7
- export const readCandidatesUntilConnected = async (connectedPromise, pc, stream, options) => {
8
- // if we connect, stop trying to read from the stream
9
- const controller = new AbortController();
10
- connectedPromise.promise.then(() => {
11
- controller.abort();
12
- }, () => {
13
- controller.abort();
14
- });
15
- const signal = anySignal([
16
- controller.signal,
17
- options.signal
18
- ]);
19
- const abortListener = () => {
20
- closeSource(stream.unwrap().unwrap().source, options.log);
21
- };
22
- signal.addEventListener('abort', abortListener);
6
+ export const readCandidatesUntilConnected = async (pc, stream, options) => {
23
7
  try {
8
+ const connectedPromise = pDefer();
9
+ resolveOnConnected(pc, connectedPromise);
24
10
  // read candidates until we are connected or we reach the end of the stream
25
11
  while (true) {
12
+ // if we connect, stop trying to read from the stream
26
13
  const message = await Promise.race([
27
14
  connectedPromise.promise,
28
- stream.read()
15
+ stream.read({
16
+ signal: options.signal
17
+ })
29
18
  ]);
30
19
  // stream ended or we became connected
31
20
  if (message == null) {
@@ -54,15 +43,17 @@ export const readCandidatesUntilConnected = async (connectedPromise, pc, stream,
54
43
  }
55
44
  catch (err) {
56
45
  options.log.error('%s error parsing ICE candidate', options.direction, err);
57
- }
58
- finally {
59
- signal.removeEventListener('abort', abortListener);
60
- signal.clear();
46
+ if (options.signal?.aborted === true) {
47
+ throw err;
48
+ }
61
49
  }
62
50
  };
63
- export function resolveOnConnected(pc, promise) {
51
+ function getConnectionState(pc) {
52
+ return isFirefox ? pc.iceConnectionState : pc.connectionState;
53
+ }
54
+ function resolveOnConnected(pc, promise) {
64
55
  pc[isFirefox ? 'oniceconnectionstatechange' : 'onconnectionstatechange'] = (_) => {
65
- switch (isFirefox ? pc.iceConnectionState : pc.connectionState) {
56
+ switch (getConnectionState(pc)) {
66
57
  case 'connected':
67
58
  promise.resolve();
68
59
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/private-to-private/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/private-to-private/util.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libp2p/webrtc",
3
- "version": "4.0.8",
3
+ "version": "4.0.9",
4
4
  "description": "A libp2p transport using WebRTC connections",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/transport-webrtc#readme",
@@ -51,14 +51,13 @@
51
51
  "dependencies": {
52
52
  "@chainsafe/libp2p-noise": "^14.0.0",
53
53
  "@libp2p/interface": "^1.0.1",
54
- "@libp2p/interface-internal": "^1.0.1",
54
+ "@libp2p/interface-internal": "^1.0.2",
55
55
  "@libp2p/logger": "^4.0.1",
56
56
  "@libp2p/peer-id": "^4.0.1",
57
57
  "@libp2p/utils": "^5.0.2",
58
58
  "@multiformats/mafmt": "^12.1.6",
59
59
  "@multiformats/multiaddr": "^12.1.10",
60
60
  "@multiformats/multiaddr-matcher": "^1.1.0",
61
- "any-signal": "^4.1.1",
62
61
  "detect-browser": "^5.3.0",
63
62
  "it-length-prefixed": "^9.0.3",
64
63
  "it-pipe": "^3.0.1",
@@ -79,10 +78,10 @@
79
78
  },
80
79
  "devDependencies": {
81
80
  "@chainsafe/libp2p-yamux": "^6.0.1",
82
- "@libp2p/circuit-relay-v2": "^1.0.5",
83
- "@libp2p/interface-compliance-tests": "^5.0.5",
81
+ "@libp2p/circuit-relay-v2": "^1.0.6",
82
+ "@libp2p/interface-compliance-tests": "^5.0.6",
84
83
  "@libp2p/peer-id-factory": "^4.0.0",
85
- "@libp2p/websockets": "^8.0.5",
84
+ "@libp2p/websockets": "^8.0.6",
86
85
  "@types/sinon": "^17.0.0",
87
86
  "aegir": "^41.0.2",
88
87
  "delay": "^6.0.0",
@@ -90,7 +89,7 @@
90
89
  "it-length": "^3.0.2",
91
90
  "it-map": "^3.0.3",
92
91
  "it-pair": "^2.0.6",
93
- "libp2p": "^1.0.8",
92
+ "libp2p": "^1.0.9",
94
93
  "p-retry": "^6.1.0",
95
94
  "protons": "^7.3.0",
96
95
  "sinon": "^17.0.0",
@@ -1,11 +1,10 @@
1
1
  import { CodeError } from '@libp2p/interface'
2
2
  import { peerIdFromString } from '@libp2p/peer-id'
3
3
  import { pbStream } from 'it-protobuf-stream'
4
- import pDefer, { type DeferredPromise } from 'p-defer'
5
4
  import { type RTCPeerConnection, RTCSessionDescription } from '../webrtc/index.js'
6
5
  import { Message } from './pb/message.js'
7
6
  import { SIGNALING_PROTO_ID, splitAddr, type WebRTCTransportMetrics } from './transport.js'
8
- import { readCandidatesUntilConnected, resolveOnConnected } from './util.js'
7
+ import { readCandidatesUntilConnected } from './util.js'
9
8
  import type { DataChannelOptions } from '../index.js'
10
9
  import type { LoggerOptions, Connection } from '@libp2p/interface'
11
10
  import type { ConnectionManager, IncomingStreamData, TransportManager } from '@libp2p/interface-internal'
@@ -65,17 +64,8 @@ export async function initiateConnection ({ peerConnection, signal, metrics, mul
65
64
  })
66
65
 
67
66
  const messageStream = pbStream(stream).pb(Message)
68
- const connectedPromise: DeferredPromise<void> = pDefer()
69
- const sdpAbortedListener = (): void => {
70
- connectedPromise.reject(new CodeError('SDP handshake aborted', 'ERR_SDP_HANDSHAKE_ABORTED'))
71
- }
72
67
 
73
68
  try {
74
- resolveOnConnected(peerConnection, connectedPromise)
75
-
76
- // reject the connectedPromise if the signal aborts
77
- signal?.addEventListener('abort', sdpAbortedListener)
78
-
79
69
  // we create the channel so that the RTCPeerConnection has a component for
80
70
  // which to collect candidates. The label is not relevant to connection
81
71
  // initiation but can be useful for debugging
@@ -102,11 +92,14 @@ export async function initiateConnection ({ peerConnection, signal, metrics, mul
102
92
  })
103
93
  }
104
94
  peerConnection.onicecandidateerror = (event) => {
105
- log('initiator ICE candidate error', event)
95
+ log.error('initiator ICE candidate error', event)
106
96
  }
107
97
 
108
98
  // create an offer
109
- const offerSdp = await peerConnection.createOffer()
99
+ const offerSdp = await peerConnection.createOffer().catch(err => {
100
+ log.error('could not execute createOffer', err)
101
+ throw new CodeError('Failed to set createOffer', 'ERR_SDP_HANDSHAKE_FAILED')
102
+ })
110
103
 
111
104
  log.trace('initiator send SDP offer %s', offerSdp.sdp)
112
105
 
@@ -127,7 +120,7 @@ export async function initiateConnection ({ peerConnection, signal, metrics, mul
127
120
  })
128
121
 
129
122
  if (answerMessage.type !== Message.Type.SDP_ANSWER) {
130
- throw new CodeError('remote should send an SDP answer', 'ERR_SDP_HANDSHAKE_FAILED')
123
+ throw new CodeError('Remote should send an SDP answer', 'ERR_SDP_HANDSHAKE_FAILED')
131
124
  }
132
125
 
133
126
  log.trace('initiator receive SDP answer %s', answerMessage.data)
@@ -140,7 +133,7 @@ export async function initiateConnection ({ peerConnection, signal, metrics, mul
140
133
 
141
134
  log.trace('initiator read candidates until connected')
142
135
 
143
- await readCandidatesUntilConnected(connectedPromise, peerConnection, messageStream, {
136
+ await readCandidatesUntilConnected(peerConnection, messageStream, {
144
137
  direction: 'initiator',
145
138
  signal,
146
139
  log
@@ -164,8 +157,6 @@ export async function initiateConnection ({ peerConnection, signal, metrics, mul
164
157
  stream.abort(err)
165
158
  throw err
166
159
  } finally {
167
- // remove event listeners
168
- signal?.removeEventListener('abort', sdpAbortedListener)
169
160
  peerConnection.onicecandidate = null
170
161
  peerConnection.onicecandidateerror = null
171
162
  }
@@ -1,10 +1,9 @@
1
1
  import { CodeError } from '@libp2p/interface'
2
2
  import { multiaddr, type Multiaddr } from '@multiformats/multiaddr'
3
3
  import { pbStream } from 'it-protobuf-stream'
4
- import pDefer, { type DeferredPromise } from 'p-defer'
5
4
  import { type RTCPeerConnection, RTCSessionDescription } from '../webrtc/index.js'
6
5
  import { Message } from './pb/message.js'
7
- import { readCandidatesUntilConnected, resolveOnConnected } from './util.js'
6
+ import { readCandidatesUntilConnected } from './util.js'
8
7
  import type { Logger } from '@libp2p/interface'
9
8
  import type { IncomingStreamData } from '@libp2p/interface-internal'
10
9
 
@@ -20,41 +19,27 @@ export async function handleIncomingStream ({ peerConnection, stream, signal, co
20
19
  const messageStream = pbStream(stream).pb(Message)
21
20
 
22
21
  try {
23
- const connectedPromise: DeferredPromise<void> = pDefer()
24
- const answerSentPromise: DeferredPromise<void> = pDefer()
25
-
26
- signal.onabort = () => {
27
- connectedPromise.reject(new CodeError('Timed out while trying to connect', 'ERR_TIMEOUT'))
28
- }
29
-
30
22
  // candidate callbacks
31
23
  peerConnection.onicecandidate = ({ candidate }) => {
32
- answerSentPromise.promise.then(
33
- async () => {
34
- // a null candidate means end-of-candidates, an empty string candidate
35
- // means end-of-candidates for this generation, otherwise this should
36
- // be a valid candidate object
37
- // see - https://www.w3.org/TR/webrtc/#rtcpeerconnectioniceevent
38
- const data = JSON.stringify(candidate?.toJSON() ?? null)
39
-
40
- log.trace('recipient sending ICE candidate %s', data)
41
-
42
- await messageStream.write({
43
- type: Message.Type.ICE_CANDIDATE,
44
- data
45
- }, {
46
- signal
47
- })
48
- },
49
- (err) => {
50
- log.error('cannot set candidate since sending answer failed', err)
51
- connectedPromise.reject(err)
52
- }
53
- )
24
+ // a null candidate means end-of-candidates, an empty string candidate
25
+ // means end-of-candidates for this generation, otherwise this should
26
+ // be a valid candidate object
27
+ // see - https://www.w3.org/TR/webrtc/#rtcpeerconnectioniceevent
28
+ const data = JSON.stringify(candidate?.toJSON() ?? null)
29
+
30
+ log.trace('recipient sending ICE candidate %s', data)
31
+
32
+ messageStream.write({
33
+ type: Message.Type.ICE_CANDIDATE,
34
+ data
35
+ }, {
36
+ signal
37
+ })
38
+ .catch(err => {
39
+ log.error('error sending ICE candidate', err)
40
+ })
54
41
  }
55
42
 
56
- resolveOnConnected(peerConnection, connectedPromise)
57
-
58
43
  // read an SDP offer
59
44
  const pbOffer = await messageStream.read({
60
45
  signal
@@ -79,7 +64,6 @@ export async function handleIncomingStream ({ peerConnection, stream, signal, co
79
64
  // create and write an SDP answer
80
65
  const answer = await peerConnection.createAnswer().catch(err => {
81
66
  log.error('could not execute createAnswer', err)
82
- answerSentPromise.reject(err)
83
67
  throw new CodeError('Failed to create answer', 'ERR_SDP_HANDSHAKE_FAILED')
84
68
  })
85
69
 
@@ -92,25 +76,17 @@ export async function handleIncomingStream ({ peerConnection, stream, signal, co
92
76
 
93
77
  await peerConnection.setLocalDescription(answer).catch(err => {
94
78
  log.error('could not execute setLocalDescription', err)
95
- answerSentPromise.reject(err)
96
79
  throw new CodeError('Failed to set localDescription', 'ERR_SDP_HANDSHAKE_FAILED')
97
80
  })
98
81
 
99
- answerSentPromise.resolve()
100
-
101
82
  log.trace('recipient read candidates until connected')
102
83
 
103
84
  // wait until candidates are connected
104
- await readCandidatesUntilConnected(connectedPromise, peerConnection, messageStream, {
85
+ await readCandidatesUntilConnected(peerConnection, messageStream, {
105
86
  direction: 'recipient',
106
87
  signal,
107
88
  log
108
89
  })
109
-
110
- log.trace('recipient connected, closing signaling stream')
111
- await messageStream.unwrap().unwrap().close({
112
- signal
113
- })
114
90
  } catch (err: any) {
115
91
  if (peerConnection.connectionState !== 'connected') {
116
92
  log.error('error while handling signaling stream from peer %a', connection.remoteAddr, err)
@@ -1,4 +1,4 @@
1
- import { CodeError } from '@libp2p/interface'
1
+ import { CodeError, setMaxListeners } from '@libp2p/interface'
2
2
  import { type CreateListenerOptions, type DialOptions, transportSymbol, type Transport, type Listener, type Upgrader, type ComponentLogger, type Logger, type Connection, type PeerId, type CounterGroup, type Metrics, type Startable } from '@libp2p/interface'
3
3
  import { peerIdFromString } from '@libp2p/peer-id'
4
4
  import { multiaddr, type Multiaddr } from '@multiformats/multiaddr'
@@ -56,6 +56,7 @@ export class WebRTCTransport implements Transport, Startable {
56
56
  ) {
57
57
  this.log = components.logger.forComponent('libp2p:webrtc')
58
58
  this.shutdownController = new AbortController()
59
+ setMaxListeners(Infinity, this.shutdownController.signal)
59
60
 
60
61
  if (components.metrics != null) {
61
62
  this.metrics = {