@libp2p/webrtc 3.2.11-9c67c5b3d → 3.2.11-adea7bbbf

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