@libp2p/webrtc 6.0.27-e86b39e5d → 6.0.28

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.
Files changed (55) hide show
  1. package/dist/index.min.js +6 -6
  2. package/dist/index.min.js.map +3 -3
  3. package/dist/src/constants.d.ts +28 -0
  4. package/dist/src/constants.d.ts.map +1 -1
  5. package/dist/src/constants.js +28 -0
  6. package/dist/src/constants.js.map +1 -1
  7. package/dist/src/muxer.d.ts +36 -4
  8. package/dist/src/muxer.d.ts.map +1 -1
  9. package/dist/src/muxer.js +115 -8
  10. package/dist/src/muxer.js.map +1 -1
  11. package/dist/src/private-to-private/initiate-connection.d.ts +2 -1
  12. package/dist/src/private-to-private/initiate-connection.d.ts.map +1 -1
  13. package/dist/src/private-to-private/initiate-connection.js +6 -2
  14. package/dist/src/private-to-private/initiate-connection.js.map +1 -1
  15. package/dist/src/private-to-private/transport.d.ts +7 -0
  16. package/dist/src/private-to-private/transport.d.ts.map +1 -1
  17. package/dist/src/private-to-private/transport.js +25 -9
  18. package/dist/src/private-to-private/transport.js.map +1 -1
  19. package/dist/src/private-to-public/listener.d.ts +1 -0
  20. package/dist/src/private-to-public/listener.d.ts.map +1 -1
  21. package/dist/src/private-to-public/listener.js +3 -1
  22. package/dist/src/private-to-public/listener.js.map +1 -1
  23. package/dist/src/private-to-public/transport.browser.d.ts +7 -0
  24. package/dist/src/private-to-public/transport.browser.d.ts.map +1 -1
  25. package/dist/src/private-to-public/transport.browser.js +4 -1
  26. package/dist/src/private-to-public/transport.browser.js.map +1 -1
  27. package/dist/src/private-to-public/utils/connect.js +2 -0
  28. package/dist/src/private-to-public/utils/connect.js.map +1 -1
  29. package/dist/src/private-to-public/utils/get-rtcpeerconnection.browser.d.ts.map +1 -1
  30. package/dist/src/private-to-public/utils/get-rtcpeerconnection.browser.js +3 -1
  31. package/dist/src/private-to-public/utils/get-rtcpeerconnection.browser.js.map +1 -1
  32. package/dist/src/private-to-public/utils/get-rtcpeerconnection.d.ts +4 -1
  33. package/dist/src/private-to-public/utils/get-rtcpeerconnection.d.ts.map +1 -1
  34. package/dist/src/private-to-public/utils/get-rtcpeerconnection.js +21 -13
  35. package/dist/src/private-to-public/utils/get-rtcpeerconnection.js.map +1 -1
  36. package/dist/src/private-to-public/utils/stun-listener.d.ts.map +1 -1
  37. package/dist/src/private-to-public/utils/stun-listener.js +2 -5
  38. package/dist/src/private-to-public/utils/stun-listener.js.map +1 -1
  39. package/dist/src/util.d.ts +4 -2
  40. package/dist/src/util.d.ts.map +1 -1
  41. package/dist/src/util.js +21 -0
  42. package/dist/src/util.js.map +1 -1
  43. package/dist/typedoc-urls.json +14 -0
  44. package/package.json +8 -8
  45. package/src/constants.ts +31 -0
  46. package/src/muxer.ts +160 -13
  47. package/src/private-to-private/initiate-connection.ts +7 -2
  48. package/src/private-to-private/transport.ts +33 -9
  49. package/src/private-to-public/listener.ts +4 -1
  50. package/src/private-to-public/transport.browser.ts +12 -1
  51. package/src/private-to-public/utils/connect.ts +2 -0
  52. package/src/private-to-public/utils/get-rtcpeerconnection.browser.ts +3 -1
  53. package/src/private-to-public/utils/get-rtcpeerconnection.ts +27 -14
  54. package/src/private-to-public/utils/stun-listener.ts +2 -7
  55. package/src/util.ts +29 -2
@@ -28,6 +28,34 @@ export declare const MAX_BUFFERED_AMOUNT: number;
28
28
  * @see https://issues.webrtc.org/issues/40644524
29
29
  */
30
30
  export declare const MAX_MESSAGE_SIZE: number;
31
+ /**
32
+ * The maximum number of bytes buffered for a single incoming data channel that
33
+ * arrives before the muxer has been created (`earlyDataChannels` in
34
+ * `muxer.ts`). A well-behaved remote only puts its multistream-select proposal
35
+ * on an early channel (well under 1 KB): `newStream` blocks on
36
+ * multistream-select before the application can write, and WebRTC does not
37
+ * pre-negotiate the stream protocol. If the `// TODO: pre-negotiate stream
38
+ * protocol` in `muxer.ts` is ever implemented the application could write
39
+ * immediately, so this assumption, and therefore this bound, must be revisited.
40
+ * It is set to one maximum WebRTC message so a single legitimately-sized frame
41
+ * is never rejected, even though the expected payload is far smaller. Channels
42
+ * that exceed this are closed.
43
+ */
44
+ export declare const MAX_EARLY_DATA_CHANNEL_BYTES: number;
45
+ /**
46
+ * Default for the `maxEarlyStreams` transport option, which caps both the data
47
+ * channels buffered before the muxer exists and the early streams the muxer
48
+ * surfaces on adoption. They are one budget - buffered channels become early
49
+ * streams on adoption, so a larger channel buffer would abort on hand-off.
50
+ */
51
+ export declare const DEFAULT_MAX_EARLY_STREAMS = 10;
52
+ /**
53
+ * Max buffered messages per early data channel. A legitimate early channel
54
+ * carries only the multistream-select proposal (one or two frames), so this
55
+ * bounds a flood of tiny or empty messages that would otherwise evade the byte
56
+ * cap by contributing ~0 bytes each.
57
+ */
58
+ export declare const MAX_EARLY_DATA_CHANNEL_MESSAGES = 8;
31
59
  /**
32
60
  * The protobuf message overhead includes the maximum amount of all bytes in the
33
61
  * protobuf that aren't message field bytes
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,UAK/B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,UAA+E,CAAA;AAE1G;;GAEG;AACH,eAAO,MAAM,YAAY,sBAAsB,CAAA;AAE/C;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAAkB,CAAA;AAElD;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,QAAY,CAAA;AAsBzC;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QAA8B,CAAA;AAE5D;;;GAGG;AACH,eAAO,MAAM,0BAA0B,QAAS,CAAA;AAEhD;;GAEG;AACH,eAAO,MAAM,uBAAuB,QAAS,CAAA;AAE7C;;GAEG;AACH,eAAO,MAAM,cAAc,YAAY,CAAA;AAEvC;;GAEG;AACH,eAAO,MAAM,kBAAkB,4BAA4B,CAAA;AAE3D;;GAEG;AACH,eAAO,MAAM,iCAAiC,sCAAsC,CAAA;AAEpF;;GAEG;AACH,eAAO,MAAM,oCAAoC,0CAA0C,CAAA;AAE3F;;GAEG;AACH,eAAO,MAAM,oCAAoC,UAAU,CAAA;AAE3D;;GAEG;AACH,eAAO,MAAM,4BAA4B,aAAgB,CAAA;AAEzD;;GAEG;AACH,eAAO,MAAM,qCAAqC,WAAa,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,UAK/B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,UAA+E,CAAA;AAE1G;;GAEG;AACH,eAAO,MAAM,YAAY,sBAAsB,CAAA;AAE/C;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAAkB,CAAA;AAElD;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,QAAY,CAAA;AAEzC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,4BAA4B,QAAmB,CAAA;AAE5D;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,KAAK,CAAA;AAE3C;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,IAAI,CAAA;AAsBhD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QAA8B,CAAA;AAE5D;;;GAGG;AACH,eAAO,MAAM,0BAA0B,QAAS,CAAA;AAEhD;;GAEG;AACH,eAAO,MAAM,uBAAuB,QAAS,CAAA;AAE7C;;GAEG;AACH,eAAO,MAAM,cAAc,YAAY,CAAA;AAEvC;;GAEG;AACH,eAAO,MAAM,kBAAkB,4BAA4B,CAAA;AAE3D;;GAEG;AACH,eAAO,MAAM,iCAAiC,sCAAsC,CAAA;AAEpF;;GAEG;AACH,eAAO,MAAM,oCAAoC,0CAA0C,CAAA;AAE3F;;GAEG;AACH,eAAO,MAAM,oCAAoC,UAAU,CAAA;AAE3D;;GAEG;AACH,eAAO,MAAM,4BAA4B,aAAgB,CAAA;AAEzD;;GAEG;AACH,eAAO,MAAM,qCAAqC,WAAa,CAAA"}
@@ -35,6 +35,34 @@ export const MAX_BUFFERED_AMOUNT = 2 * 1024 * 1024;
35
35
  * @see https://issues.webrtc.org/issues/40644524
36
36
  */
37
37
  export const MAX_MESSAGE_SIZE = 16 * 1024;
38
+ /**
39
+ * The maximum number of bytes buffered for a single incoming data channel that
40
+ * arrives before the muxer has been created (`earlyDataChannels` in
41
+ * `muxer.ts`). A well-behaved remote only puts its multistream-select proposal
42
+ * on an early channel (well under 1 KB): `newStream` blocks on
43
+ * multistream-select before the application can write, and WebRTC does not
44
+ * pre-negotiate the stream protocol. If the `// TODO: pre-negotiate stream
45
+ * protocol` in `muxer.ts` is ever implemented the application could write
46
+ * immediately, so this assumption, and therefore this bound, must be revisited.
47
+ * It is set to one maximum WebRTC message so a single legitimately-sized frame
48
+ * is never rejected, even though the expected payload is far smaller. Channels
49
+ * that exceed this are closed.
50
+ */
51
+ export const MAX_EARLY_DATA_CHANNEL_BYTES = MAX_MESSAGE_SIZE;
52
+ /**
53
+ * Default for the `maxEarlyStreams` transport option, which caps both the data
54
+ * channels buffered before the muxer exists and the early streams the muxer
55
+ * surfaces on adoption. They are one budget - buffered channels become early
56
+ * streams on adoption, so a larger channel buffer would abort on hand-off.
57
+ */
58
+ export const DEFAULT_MAX_EARLY_STREAMS = 10;
59
+ /**
60
+ * Max buffered messages per early data channel. A legitimate early channel
61
+ * carries only the multistream-select proposal (one or two frames), so this
62
+ * bounds a flood of tiny or empty messages that would otherwise evade the byte
63
+ * cap by contributing ~0 bytes each.
64
+ */
65
+ export const MAX_EARLY_DATA_CHANNEL_MESSAGES = 8;
38
66
  /**
39
67
  * max protobuf overhead:
40
68
  *
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAE3D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,8BAA8B;IAC9B,kCAAkC;IAClC,+BAA+B;IAC/B,qCAAqC;CACtC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAA;AAE1G;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,mBAAmB,CAAA;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA;AAElD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,CAAA;AAEzC;;;;;;GAMG;AACH,SAAS,yBAAyB,CAAE,cAAc,GAAG,gBAAgB;IACnE,0BAA0B;IAC1B,MAAM,aAAa,GAAG,cAAc,CAAC,cAAc,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC,CAAA;IACrF,MAAM,SAAS,GAAG,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA,CAAC,gBAAgB;IAC3F,MAAM,kBAAkB,GAAG,CAAC,CAAA,CAAC,UAAU;IACvC,MAAM,SAAS,GAAG,cAAc,GAAG,aAAa,GAAG,SAAS,GAAG,kBAAkB,CAAA;IAEjF,+DAA+D;IAC/D,MAAM,wBAAwB,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IAE1D,OAAO,aAAa,GAAG,SAAS,GAAG,kBAAkB,GAAG,wBAAwB,CAAA;AAClF,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,yBAAyB,EAAE,CAAA;AAE5D;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAA;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAA;AAE7C;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAA;AAEvC;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,yBAAyB,CAAA;AAE3D;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,mCAAmC,CAAA;AAEpF;;GAEG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,uCAAuC,CAAA;AAE3F;;GAEG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,OAAO,CAAA;AAE3D;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,aAAa,CAAA;AAEzD;;GAEG;AACH,MAAM,CAAC,MAAM,qCAAqC,GAAG,UAAU,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAE3D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,8BAA8B;IAC9B,kCAAkC;IAClC,+BAA+B;IAC/B,qCAAqC;CACtC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAA;AAE1G;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,mBAAmB,CAAA;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA;AAElD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,CAAA;AAEzC;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,gBAAgB,CAAA;AAE5D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAA;AAE3C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAA;AAEhD;;;;;;GAMG;AACH,SAAS,yBAAyB,CAAE,cAAc,GAAG,gBAAgB;IACnE,0BAA0B;IAC1B,MAAM,aAAa,GAAG,cAAc,CAAC,cAAc,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC,CAAA;IACrF,MAAM,SAAS,GAAG,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA,CAAC,gBAAgB;IAC3F,MAAM,kBAAkB,GAAG,CAAC,CAAA,CAAC,UAAU;IACvC,MAAM,SAAS,GAAG,cAAc,GAAG,aAAa,GAAG,SAAS,GAAG,kBAAkB,CAAA;IAEjF,+DAA+D;IAC/D,MAAM,wBAAwB,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IAE1D,OAAO,aAAa,GAAG,SAAS,GAAG,kBAAkB,GAAG,wBAAwB,CAAA;AAClF,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,yBAAyB,EAAE,CAAA;AAE5D;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAA;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAA;AAE7C;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAA;AAEvC;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,yBAAyB,CAAA;AAE3D;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,mCAAmC,CAAA;AAEpF;;GAEG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,uCAAuC,CAAA;AAE3F;;GAEG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,OAAO,CAAA;AAE3D;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,aAAa,CAAA;AAEzD;;GAEG;AACH,MAAM,CAAC,MAAM,qCAAqC,GAAG,UAAU,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { AbstractStreamMuxer } from '@libp2p/utils';
2
2
  import { WebRTCStream } from './stream.ts';
3
3
  import type { DataChannelOptions } from './index.ts';
4
- import type { ComponentLogger, CounterGroup, StreamMuxer, StreamMuxerFactory, CreateStreamOptions, MultiaddrConnection } from '@libp2p/interface';
4
+ import type { ComponentLogger, CounterGroup, Logger, StreamMuxer, StreamMuxerFactory, CreateStreamOptions, MultiaddrConnection } from '@libp2p/interface';
5
5
  export interface DataChannelMuxerFactoryInit {
6
6
  /**
7
7
  * WebRTC Peer Connection
@@ -15,6 +15,16 @@ export interface DataChannelMuxerFactoryInit {
15
15
  * Optional metrics for this data channel muxer
16
16
  */
17
17
  metrics?: CounterGroup;
18
+ /**
19
+ * Optional logger, used to report early data channels that are dropped or
20
+ * rejected, and best-effort close errors
21
+ */
22
+ log?: Logger;
23
+ /**
24
+ * Caps the early data channel buffer and the muxer's early streams from one
25
+ * value (see `DEFAULT_MAX_EARLY_STREAMS`)
26
+ */
27
+ maxEarlyStreams?: number;
18
28
  /**
19
29
  * Options used to create data channels
20
30
  */
@@ -23,6 +33,15 @@ export interface DataChannelMuxerFactoryInit {
23
33
  export interface DataChannelMuxerFactoryComponents {
24
34
  logger: ComponentLogger;
25
35
  }
36
+ interface EarlyDataChannel {
37
+ channel: RTCDataChannel;
38
+ /**
39
+ * Messages buffered before the muxer adopted the channel; without these they
40
+ * would be dropped, since the stream's `message` listener is only attached
41
+ * when the muxer is created
42
+ */
43
+ messages: Array<MessageEvent<ArrayBuffer>>;
44
+ }
26
45
  export declare class DataChannelMuxerFactory implements StreamMuxerFactory {
27
46
  readonly protocol: string;
28
47
  /**
@@ -30,19 +49,31 @@ export declare class DataChannelMuxerFactory implements StreamMuxerFactory {
30
49
  */
31
50
  private readonly peerConnection;
32
51
  private readonly metrics?;
52
+ private readonly log?;
33
53
  private readonly dataChannelOptions?;
54
+ private readonly maxEarlyStreams;
34
55
  private readonly earlyDataChannels;
56
+ private handedOff;
35
57
  constructor(init: DataChannelMuxerFactoryInit);
36
58
  private onEarlyDataChannel;
59
+ private closeEarlyDataChannel;
37
60
  createStreamMuxer(maConn: MultiaddrConnection): StreamMuxer;
61
+ /**
62
+ * Discards any early data channels buffered before the muxer was created and
63
+ * detaches the `datachannel` listener. Called by the transport whenever
64
+ * connection establishment fails; it is a no-op once `createStreamMuxer` has
65
+ * handed the channels to the muxer, and otherwise ensures a peer whose
66
+ * connection is rejected cannot leave buffered data or listeners behind.
67
+ */
68
+ close(): void;
38
69
  }
39
70
  export interface DataChannelMuxerInit extends DataChannelMuxerFactoryInit {
40
71
  protocol: string;
41
72
  /**
42
- * Incoming data channels that were opened by the remote before the peer
43
- * connection was established
73
+ * Incoming data channels opened by the remote before the muxer was created,
74
+ * along with the messages that arrived on them in that window
44
75
  */
45
- earlyDataChannels: RTCDataChannel[];
76
+ earlyDataChannels: EarlyDataChannel[];
46
77
  }
47
78
  export interface DataChannelMuxerComponents {
48
79
  logger: ComponentLogger;
@@ -58,4 +89,5 @@ export declare class DataChannelMuxer extends AbstractStreamMuxer<WebRTCStream>
58
89
  onCreateStream(options?: CreateStreamOptions): Promise<WebRTCStream>;
59
90
  onData(): void;
60
91
  }
92
+ export {};
61
93
  //# sourceMappingURL=muxer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"muxer.d.ts","sourceRoot":"","sources":["../../src/muxer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEnD,OAAO,EAAgB,YAAY,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAEjJ,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;;OAEG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;CACxC;AAED,MAAM,WAAW,iCAAiC;IAChD,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,qBAAa,uBAAwB,YAAW,kBAAkB;IAChE,SAAgB,QAAQ,EAAE,MAAM,CAAA;IAEhC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmB;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAc;IACvC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAoB;IACxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAkB;gBAEvC,IAAI,EAAE,2BAA2B;IAW9C,OAAO,CAAC,kBAAkB;IAI1B,iBAAiB,CAAE,MAAM,EAAE,mBAAmB,GAAG,WAAW;CAW7D;AAED,MAAM,WAAW,oBAAqB,SAAQ,2BAA2B;IACvE,QAAQ,EAAE,MAAM,CAAA;IAEhB;;;OAGG;IACH,iBAAiB,EAAE,cAAc,EAAE,CAAA;CACpC;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,eAAe,CAAA;CACxB;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,mBAAmB,CAAC,YAAY,CAAE,YAAW,WAAW,CAAC,YAAY,CAAC;IAC1G,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmB;IAClD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;gBAE1C,MAAM,EAAE,mBAAmB,EAAE,IAAI,EAAE,oBAAoB;IAkCpE,OAAO,CAAC,aAAa;IAuBf,cAAc,CAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC;IAoB3E,MAAM,IAAK,IAAI;CAGhB"}
1
+ {"version":3,"file":"muxer.d.ts","sourceRoot":"","sources":["../../src/muxer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEnD,OAAO,EAAgB,YAAY,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAEzJ,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;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IAEZ;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB;;OAEG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;CACxC;AAED,MAAM,WAAW,iCAAiC;IAChD,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,UAAU,gBAAgB;IACxB,OAAO,EAAE,cAAc,CAAA;IAEvB;;;;OAIG;IACH,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAA;CAC3C;AA0BD,qBAAa,uBAAwB,YAAW,kBAAkB;IAChE,SAAgB,QAAQ,EAAE,MAAM,CAAA;IAEhC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmB;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAc;IACvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAQ;IAC7B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAoB;IACxD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IACtD,OAAO,CAAC,SAAS,CAAQ;gBAEZ,IAAI,EAAE,2BAA2B;IAa9C,OAAO,CAAC,kBAAkB;IAiD1B,OAAO,CAAC,qBAAqB;IAY7B,iBAAiB,CAAE,MAAM,EAAE,mBAAmB,GAAG,WAAW;IAgB5D;;;;;;OAMG;IACH,KAAK,IAAK,IAAI;CAaf;AAED,MAAM,WAAW,oBAAqB,SAAQ,2BAA2B;IACvE,QAAQ,EAAE,MAAM,CAAA;IAEhB;;;OAGG;IACH,iBAAiB,EAAE,gBAAgB,EAAE,CAAA;CACtC;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,eAAe,CAAA;CACxB;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,mBAAmB,CAAC,YAAY,CAAE,YAAW,WAAW,CAAC,YAAY,CAAC;IAC1G,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmB;IAClD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;gBAE1C,MAAM,EAAE,mBAAmB,EAAE,IAAI,EAAE,oBAAoB;IAwCpE,OAAO,CAAC,aAAa;IA8Bf,cAAc,CAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC;IAoB3E,MAAM,IAAK,IAAI;CAGhB"}
package/dist/src/muxer.js CHANGED
@@ -1,6 +1,29 @@
1
1
  import { AbstractStreamMuxer } from '@libp2p/utils';
2
- import { MUXER_PROTOCOL } from "./constants.js";
2
+ import { DEFAULT_MAX_EARLY_STREAMS, MAX_EARLY_DATA_CHANNEL_BYTES, MAX_EARLY_DATA_CHANNEL_MESSAGES, MUXER_PROTOCOL } from "./constants.js";
3
3
  import { createStream, WebRTCStream } from "./stream.js";
4
+ /**
5
+ * Close a data channel. Closing is best-effort and wrapped so a synchronous
6
+ * throw from an already-closed or stale channel cannot escape and abort
7
+ * disposal of the remaining early channels.
8
+ */
9
+ function closeChannel(channel, log) {
10
+ try {
11
+ channel.close();
12
+ }
13
+ catch (err) {
14
+ log?.trace('error closing early data channel - %e', err);
15
+ }
16
+ }
17
+ /**
18
+ * Detach the buffering handler, release the buffered messages and close the
19
+ * channel. Used both when disposing a single over-limit channel and when
20
+ * discarding the whole early buffer.
21
+ */
22
+ function disposeEarlyDataChannel(early, log) {
23
+ early.channel.onmessage = null;
24
+ early.messages.length = 0;
25
+ closeChannel(early.channel, log);
26
+ }
4
27
  export class DataChannelMuxerFactory {
5
28
  protocol;
6
29
  /**
@@ -8,30 +31,101 @@ export class DataChannelMuxerFactory {
8
31
  */
9
32
  peerConnection;
10
33
  metrics;
34
+ log;
11
35
  dataChannelOptions;
36
+ maxEarlyStreams;
12
37
  earlyDataChannels;
38
+ handedOff = false;
13
39
  constructor(init) {
14
40
  this.onEarlyDataChannel = this.onEarlyDataChannel.bind(this);
15
41
  this.peerConnection = init.peerConnection;
16
42
  this.metrics = init.metrics;
43
+ this.log = init.log;
17
44
  this.protocol = init.protocol ?? MUXER_PROTOCOL;
18
45
  this.dataChannelOptions = init.dataChannelOptions ?? {};
46
+ this.maxEarlyStreams = init.maxEarlyStreams ?? DEFAULT_MAX_EARLY_STREAMS;
19
47
  this.peerConnection.addEventListener('datachannel', this.onEarlyDataChannel);
20
48
  this.earlyDataChannels = [];
21
49
  }
22
50
  onEarlyDataChannel(evt) {
23
- this.earlyDataChannels.push(evt.channel);
51
+ const channel = evt.channel;
52
+ // reject (don't buffer) channels beyond the count cap, keeping the connection
53
+ if (this.earlyDataChannels.length >= this.maxEarlyStreams) {
54
+ this.log?.('rejecting early data channel %d - too many early channels', channel.id);
55
+ this.metrics?.increment({ early_data_channel_count_exceeded: true });
56
+ closeChannel(channel, this.log);
57
+ return;
58
+ }
59
+ // deliver binary as ArrayBuffer so it can be sized and replayed to the stream
60
+ channel.binaryType = 'arraybuffer';
61
+ const early = {
62
+ channel,
63
+ messages: []
64
+ };
65
+ // buffer until the muxer adopts the channel, bounded so a remote cannot hold
66
+ // unbounded data pre-admission. Must stay on `.onmessage` so `createStream`
67
+ // can overwrite it on adoption (see stream.ts)
68
+ channel.onmessage = (messageEvent) => {
69
+ const { data } = messageEvent;
70
+ // text frames arrive as strings despite binaryType - can't size them, reject
71
+ if (!(data instanceof ArrayBuffer)) {
72
+ this.closeEarlyDataChannel(early, 'invalid_message');
73
+ return;
74
+ }
75
+ // cap count too, else a flood of ~0-byte messages evades the byte cap
76
+ if (early.messages.length >= MAX_EARLY_DATA_CHANNEL_MESSAGES) {
77
+ this.closeEarlyDataChannel(early, 'message_count_exceeded');
78
+ return;
79
+ }
80
+ const buffered = early.messages.reduce((total, m) => total + m.data.byteLength, 0);
81
+ if (buffered + data.byteLength > MAX_EARLY_DATA_CHANNEL_BYTES) {
82
+ this.closeEarlyDataChannel(early, 'byte_count_exceeded');
83
+ return;
84
+ }
85
+ early.messages.push(messageEvent);
86
+ };
87
+ this.earlyDataChannels.push(early);
88
+ }
89
+ closeEarlyDataChannel(early, reason) {
90
+ this.log?.('closing early data channel %d - %s', early.channel.id, reason);
91
+ this.metrics?.increment({ [`early_data_channel_${reason}`]: true });
92
+ disposeEarlyDataChannel(early, this.log);
93
+ const index = this.earlyDataChannels.indexOf(early);
94
+ if (index !== -1) {
95
+ this.earlyDataChannels.splice(index, 1);
96
+ }
24
97
  }
25
98
  createStreamMuxer(maConn) {
99
+ // ownership of the buffered early channels transfers to the muxer, so a
100
+ // later `close()` from the transport must not dispose them
101
+ this.handedOff = true;
26
102
  this.peerConnection.removeEventListener('datachannel', this.onEarlyDataChannel);
27
103
  return new DataChannelMuxer(maConn, {
28
104
  peerConnection: this.peerConnection,
29
105
  dataChannelOptions: this.dataChannelOptions,
30
106
  metrics: this.metrics,
31
107
  protocol: this.protocol,
108
+ maxEarlyStreams: this.maxEarlyStreams,
32
109
  earlyDataChannels: this.earlyDataChannels
33
110
  });
34
111
  }
112
+ /**
113
+ * Discards any early data channels buffered before the muxer was created and
114
+ * detaches the `datachannel` listener. Called by the transport whenever
115
+ * connection establishment fails; it is a no-op once `createStreamMuxer` has
116
+ * handed the channels to the muxer, and otherwise ensures a peer whose
117
+ * connection is rejected cannot leave buffered data or listeners behind.
118
+ */
119
+ close() {
120
+ if (this.handedOff) {
121
+ return;
122
+ }
123
+ this.peerConnection.removeEventListener('datachannel', this.onEarlyDataChannel);
124
+ for (const early of this.earlyDataChannels) {
125
+ disposeEarlyDataChannel(early, this.log);
126
+ }
127
+ this.earlyDataChannels.length = 0;
128
+ }
35
129
  }
36
130
  /**
37
131
  * A libp2p data channel stream muxer
@@ -58,23 +152,30 @@ export class DataChannelMuxer extends AbstractStreamMuxer {
58
152
  };
59
153
  queueMicrotask(() => {
60
154
  if (this.status !== 'open') {
61
- init.earlyDataChannels.forEach(channel => {
62
- channel.close();
155
+ // the connection was torn down before we could adopt these channels -
156
+ // detach the buffer, release it, and close the channel
157
+ init.earlyDataChannels.forEach((early) => {
158
+ disposeEarlyDataChannel(early, this.log);
63
159
  });
64
160
  return;
65
161
  }
66
- init.earlyDataChannels.forEach(channel => {
67
- this.onDataChannel(channel);
162
+ init.earlyDataChannels.forEach(({ channel, messages }) => {
163
+ try {
164
+ this.onDataChannel(channel, messages);
165
+ }
166
+ catch (err) {
167
+ this.log.error('error adopting early data channel %d - %e', channel.id, err);
168
+ }
68
169
  });
69
170
  });
70
171
  }
71
- onDataChannel(channel) {
172
+ onDataChannel(channel, earlyMessages) {
72
173
  this.log('incoming datachannel with channel id %d, protocol %s and status %s', channel.id, channel.protocol, channel.readyState);
73
174
  // 'init' channel is only used during connection establishment, it is
74
175
  // closed by the initiator
75
176
  if (channel.label === 'init') {
76
177
  this.log.trace('closing init channel %d', channel.id);
77
- channel.close();
178
+ closeChannel(channel, this.log);
78
179
  return;
79
180
  }
80
181
  const stream = createStream({
@@ -84,6 +185,12 @@ export class DataChannelMuxer extends AbstractStreamMuxer {
84
185
  direction: 'inbound',
85
186
  log: this.log
86
187
  });
188
+ // replay any messages that arrived before the muxer was created - the
189
+ // stream has just attached its `message` handler so this preserves
190
+ // ordering with any messages that arrive later
191
+ earlyMessages?.forEach(messageEvent => {
192
+ channel.onmessage?.(messageEvent);
193
+ });
87
194
  this.onRemoteStream(stream);
88
195
  }
89
196
  async onCreateStream(options) {
@@ -1 +1 @@
1
- {"version":3,"file":"muxer.js","sourceRoot":"","sources":["../../src/muxer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AA8BxD,MAAM,OAAO,uBAAuB;IAClB,QAAQ,CAAQ;IAEhC;;OAEG;IACc,cAAc,CAAmB;IACjC,OAAO,CAAe;IACtB,kBAAkB,CAAqB;IACvC,iBAAiB,CAAkB;IAEpD,YAAa,IAAiC;QAC5C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAE5D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAA;QACzC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,cAAc,CAAA;QAC/C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAA;QACvD,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAA;QAC5E,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAA;IAC7B,CAAC;IAEO,kBAAkB,CAAE,GAAwB;QAClD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC1C,CAAC;IAED,iBAAiB,CAAE,MAA2B;QAC5C,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAA;QAE/E,OAAO,IAAI,gBAAgB,CAAC,MAAM,EAAE;YAClC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;SAC1C,CAAC,CAAA;IACJ,CAAC;CACF;AAgBD;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,mBAAiC;IACpD,cAAc,CAAmB;IACjC,kBAAkB,CAAoB;IAEvD,YAAa,MAA2B,EAAE,IAA0B;QAClE,KAAK,CAAC,MAAM,EAAE;YACZ,GAAG,IAAI;YACP,IAAI,EAAE,OAAO;SACd,CAAC,CAAA;QAEF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAA;QACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,cAAc,CAAA;QAC/C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAA;QAEvD;;;;;WAKG;QACH,IAAI,CAAC,cAAc,CAAC,aAAa,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;YAClD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAC7B,CAAC,CAAA;QAED,cAAc,CAAC,GAAG,EAAE;YAClB,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oBACvC,OAAO,CAAC,KAAK,EAAE,CAAA;gBACjB,CAAC,CAAC,CAAA;gBACF,OAAM;YACR,CAAC;YAED,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;YAC7B,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,aAAa,CAAE,OAAuB;QAC5C,IAAI,CAAC,GAAG,CAAC,oEAAoE,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;QAEhI,qEAAqE;QACrE,0BAA0B;QAC1B,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC7B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yBAAyB,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;YACrD,OAAO,CAAC,KAAK,EAAE,CAAA;YAEf,OAAM;QACR,CAAC;QAED,MAAM,MAAM,GAAG,YAAY,CAAC;YAC1B,GAAG,IAAI,CAAC,aAAa;YACrB,GAAG,IAAI,CAAC,kBAAkB;YAC1B,OAAO;YACP,SAAS,EAAE,SAAS;YACpB,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CAAA;QAEF,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,cAAc,CAAE,OAA6B;QACjD,qIAAqI;QACrI,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,EAAE;QACxD,sCAAsC;QACtC,8BAA8B;SAC/B,CAAC,CAAA;QAEF,IAAI,CAAC,GAAG,CAAC,iCAAiC,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;QAE1E,MAAM,MAAM,GAAG,YAAY,CAAC;YAC1B,GAAG,OAAO;YACV,GAAG,IAAI,CAAC,kBAAkB;YAC1B,OAAO;YACP,SAAS,EAAE,UAAU;YACrB,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CAAA;QAEF,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM;IAEN,CAAC;CACF"}
1
+ {"version":3,"file":"muxer.js","sourceRoot":"","sources":["../../src/muxer.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ export interface IncomingStreamOptions extends AbortOptions {
12
12
  export interface ConnectOptions extends LoggerOptions, ProgressOptions<WebRTCDialEvents> {
13
13
  rtcConfiguration?: RTCConfiguration;
14
14
  dataChannel?: DataChannelOptions;
15
+ maxEarlyStreams?: number;
15
16
  multiaddr: Multiaddr;
16
17
  connectionManager: ConnectionManager;
17
18
  transportManager: TransportManager;
@@ -20,7 +21,7 @@ export interface ConnectOptions extends LoggerOptions, ProgressOptions<WebRTCDia
20
21
  metrics?: WebRTCTransportMetrics;
21
22
  logger: ComponentLogger;
22
23
  }
23
- export declare function initiateConnection({ rtcConfiguration, dataChannel, signal, metrics, multiaddr: ma, connectionManager, transportManager, log, logger, onProgress }: ConnectOptions): Promise<{
24
+ export declare function initiateConnection({ rtcConfiguration, dataChannel, maxEarlyStreams, signal, metrics, multiaddr: ma, connectionManager, transportManager, log, logger, onProgress }: ConnectOptions): Promise<{
24
25
  remoteAddress: Multiaddr;
25
26
  peerConnection: globalThis.RTCPeerConnection;
26
27
  muxerFactory: DataChannelMuxerFactory;
@@ -1 +1 @@
1
- {"version":3,"file":"initiate-connection.d.ts","sourceRoot":"","sources":["../../../src/private-to-private/initiate-connection.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAKrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAC9E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAc,eAAe,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACjG,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AACrF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,MAAM,WAAW,qBAAsB,SAAQ,YAAY;IACzD,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAA;CACjD;AAED,MAAM,WAAW,cAAe,SAAQ,aAAa,EAAE,eAAe,CAAC,gBAAgB,CAAC;IACtF,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,WAAW,CAAC,EAAE,kBAAkB,CAAA;IAChC,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;IAChC,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,wBAAsB,kBAAkB,CAAE,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC;IAAE,aAAa,EAAE,SAAS,CAAC;IAAC,cAAc,EAAE,UAAU,CAAC,iBAAiB,CAAC;IAAC,YAAY,EAAE,uBAAuB,CAAA;CAAE,CAAC,CA+LrT"}
1
+ {"version":3,"file":"initiate-connection.d.ts","sourceRoot":"","sources":["../../../src/private-to-private/initiate-connection.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAKrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAC9E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAc,eAAe,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACjG,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AACrF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,MAAM,WAAW,qBAAsB,SAAQ,YAAY;IACzD,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAA;CACjD;AAED,MAAM,WAAW,cAAe,SAAQ,aAAa,EAAE,eAAe,CAAC,gBAAgB,CAAC;IACtF,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,WAAW,CAAC,EAAE,kBAAkB,CAAA;IAChC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,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;IAChC,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,wBAAsB,kBAAkB,CAAE,EAAE,gBAAgB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC;IAAE,aAAa,EAAE,SAAS,CAAC;IAAC,cAAc,EAAE,UAAU,CAAC,iBAAiB,CAAC;IAAC,YAAY,EAAE,uBAAuB,CAAA;CAAE,CAAC,CAmMtU"}
@@ -8,7 +8,7 @@ import { RTCPeerConnection, RTCSessionDescription } from "../webrtc/index.js";
8
8
  import { Message } from "./pb/message.js";
9
9
  import { splitAddr } from "./transport.js";
10
10
  import { readCandidatesUntilConnected } from "./util.js";
11
- export async function initiateConnection({ rtcConfiguration, dataChannel, signal, metrics, multiaddr: ma, connectionManager, transportManager, log, logger, onProgress }) {
11
+ export async function initiateConnection({ rtcConfiguration, dataChannel, maxEarlyStreams, signal, metrics, multiaddr: ma, connectionManager, transportManager, log, logger, onProgress }) {
12
12
  const { circuitAddress, targetPeer } = splitAddr(ma);
13
13
  metrics?.dialerEvents.increment({ open: true });
14
14
  log.trace('dialing circuit address: %a', circuitAddress);
@@ -49,7 +49,10 @@ export async function initiateConnection({ rtcConfiguration, dataChannel, signal
49
49
  const muxerFactory = new DataChannelMuxerFactory({
50
50
  // @ts-expect-error https://github.com/murat-dogan/node-datachannel/pull/370
51
51
  peerConnection,
52
- dataChannelOptions: dataChannel
52
+ dataChannelOptions: dataChannel,
53
+ maxEarlyStreams,
54
+ metrics: metrics?.dialerEvents,
55
+ log
53
56
  });
54
57
  try {
55
58
  // we create the channel so that the RTCPeerConnection has a component for
@@ -154,6 +157,7 @@ export async function initiateConnection({ rtcConfiguration, dataChannel, signal
154
157
  }
155
158
  catch (err) {
156
159
  log.error('outgoing signaling error - %e', err);
160
+ muxerFactory.close();
157
161
  peerConnection.close();
158
162
  stream.abort(err);
159
163
  throw err;
@@ -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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"}
@@ -16,6 +16,13 @@ export interface WebRTCTransportInit {
16
16
  * Any options here will be applied to any RTCDataChannels that are opened.
17
17
  */
18
18
  dataChannel?: DataChannelOptions;
19
+ /**
20
+ * Caps the inbound streams accepted before the connection surfaces them, and
21
+ * the data channels buffered before the muxer exists (excess are closed).
22
+ *
23
+ * @default 10
24
+ */
25
+ maxEarlyStreams?: number;
19
26
  }
20
27
  export interface WebRTCTransportComponents {
21
28
  peerId: PeerId;
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/private-to-private/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,mBAAmB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAcrH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,KAAK,EAAE,+BAA+B,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAU,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,4BAA4B,EAAE,YAAY,EAAuB,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC5S,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAChG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEpD,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAE1F;;OAEG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAA;CACjC;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;IACvB,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAA;CACvC;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,YAAY,CAAA;IAC1B,cAAc,EAAE,YAAY,CAAA;CAC7B;AAED,MAAM,MAAM,gBAAgB,GAC1B,+BAA+B,GAC/B,4BAA4B,GAC5B,aAAa,CAAC,mBAAmB,CAAC,GAClC,aAAa,CAAC,+BAA+B,CAAC,GAC9C,aAAa,CAAC,8BAA8B,CAAC,GAC7C,aAAa,CAAC,uBAAuB,CAAC,GACtC,aAAa,CAAC,wBAAwB,CAAC,GACvC,aAAa,CAAC,4BAA4B,CAAC,GAC3C,aAAa,CAAC,0BAA0B,EAAE,MAAM,CAAC,GACjD,aAAa,CAAC,8BAA8B,CAAC,GAC7C,aAAa,CAAC,+BAA+B,CAAC,CAAA;AAEhD,qBAAa,eAAgB,YAAW,SAAS,CAAC,gBAAgB,CAAC,EAAE,SAAS;IAO1E,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,QAAQ,CAAC,CAAC,eAAe,CAAC,QAAO;IAEjC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,oBAAmB;IAEhD,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAEvC;IAED,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAGvC;IAED,SAAS,IAAK,OAAO;IAIf,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAkBvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAK5B,cAAc,CAAE,OAAO,EAAE,qBAAqB,GAAG,QAAQ;IAMzD;;OAEG;IACH,YAAY,CAAE,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE;IAInD;;OAEG;IACH,UAAU,CAAE,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE;IAW3C,IAAI,CAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAuC1F,WAAW,CAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA6D9F,OAAO,CAAC,gBAAgB;CAezB;AAED,wBAAgB,SAAS,CAAE,EAAE,EAAE,SAAS,GAAG;IAAE,cAAc,EAAE,SAAS,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAgB3F"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/private-to-private/transport.ts"],"names":[],"mappings":"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"}
@@ -99,11 +99,13 @@ export class WebRTCTransport {
99
99
  const { remoteAddress, peerConnection, muxerFactory } = await initiateConnection({
100
100
  rtcConfiguration: await getRtcConfiguration(this.init.rtcConfiguration),
101
101
  dataChannel: this.init.dataChannel,
102
+ maxEarlyStreams: this.init.maxEarlyStreams,
102
103
  multiaddr: ma,
103
104
  dataChannelOptions: this.init.dataChannel,
104
105
  signal: options.signal,
105
106
  connectionManager: this.components.connectionManager,
106
107
  transportManager: this.components.transportManager,
108
+ metrics: this.metrics,
107
109
  log: this.log,
108
110
  logger: this.components.logger,
109
111
  onProgress: options.onProgress
@@ -115,14 +117,24 @@ export class WebRTCTransport {
115
117
  direction: 'outbound',
116
118
  log: this.components.logger.forComponent('libp2p:webrtc:connection')
117
119
  });
118
- const connection = await options.upgrader.upgradeOutbound(webRTCConn, {
119
- skipProtection: true,
120
- skipEncryption: true,
121
- remotePeer: getRemotePeer(ma),
122
- muxerFactory,
123
- onProgress: options.onProgress,
124
- signal: options.signal
125
- });
120
+ let connection;
121
+ try {
122
+ connection = await options.upgrader.upgradeOutbound(webRTCConn, {
123
+ skipProtection: true,
124
+ skipEncryption: true,
125
+ remotePeer: getRemotePeer(ma),
126
+ muxerFactory,
127
+ onProgress: options.onProgress,
128
+ signal: options.signal
129
+ });
130
+ }
131
+ catch (err) {
132
+ // discard any early data channels buffered before the upgrade failed and
133
+ // close the peer connection
134
+ muxerFactory.close();
135
+ peerConnection.close();
136
+ throw err;
137
+ }
126
138
  // close the connection on shut down
127
139
  this._closeOnShutdown(peerConnection, webRTCConn);
128
140
  return connection;
@@ -143,7 +155,10 @@ export class WebRTCTransport {
143
155
  const muxerFactory = new DataChannelMuxerFactory({
144
156
  // @ts-expect-error https://github.com/murat-dogan/node-datachannel/pull/370
145
157
  peerConnection,
146
- dataChannelOptions: this.init.dataChannel
158
+ dataChannelOptions: this.init.dataChannel,
159
+ maxEarlyStreams: this.init.maxEarlyStreams,
160
+ metrics: this.metrics?.listenerEvents,
161
+ log: this.log
147
162
  });
148
163
  try {
149
164
  const { remoteAddress, remotePeer } = await handleIncomingStream(stream, connection, {
@@ -176,6 +191,7 @@ export class WebRTCTransport {
176
191
  }
177
192
  catch (err) {
178
193
  this.log.error('incoming signaling error - %e', err);
194
+ muxerFactory.close();
179
195
  peerConnection.close();
180
196
  stream.abort(err);
181
197
  throw err;
@@ -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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"}
@@ -20,6 +20,7 @@ export interface WebRTCDirectListenerInit {
20
20
  upgrader: Upgrader;
21
21
  certificate: TransportCertificate;
22
22
  maxInboundStreams?: number;
23
+ maxEarlyStreams?: number;
23
24
  dataChannel?: DataChannelOptions;
24
25
  rtcConfiguration?: RTCConfiguration | (() => RTCConfiguration | Promise<RTCConfiguration>);
25
26
  emitter: TypedEventTarget<WebRTCDirectTransportCertificateEvents>;
@@ -1 +1 @@
1
- {"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../../src/private-to-public/listener.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAmB,MAAM,YAAY,CAAA;AAK/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAC3E,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,gBAAgB,CAAA;AAG5E,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAU,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC/I,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,MAAM,WAAW,8BAA8B;IAC7C,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,eAAe,CAAA;IACvB,QAAQ,EAAE,QAAQ,CAAA;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,YAAY,CAAA;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,QAAQ,CAAA;IAClB,WAAW,EAAE,oBAAoB,CAAA;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,WAAW,CAAC,EAAE,kBAAkB,CAAA;IAChC,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAC1F,OAAO,EAAE,gBAAgB,CAAC,sCAAsC,CAAC,CAAA;CAClE;AAED,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,YAAY,CAAA;CAC7B;AAaD,qBAAa,oBAAqB,SAAQ,iBAAiB,CAAC,cAAc,CAAE,YAAW,QAAQ;IAC7F,OAAO,CAAC,kBAAkB,CAAC,CAAW;IACtC,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,UAAU,CAAC,CAAY;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAClE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA0B;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgC;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAuB;IAChD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAiB;gBAEvC,UAAU,EAAE,8BAA8B,EAAE,IAAI,EAAE,wBAAwB;IA4BjF,MAAM,CAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA6C3C,OAAO,CAAC,iBAAiB;YAgCX,kBAAkB;IAwDhC,QAAQ,IAAK,SAAS,EAAE;IAYxB,mBAAmB,CAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI;IAgC7C,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;CA8B9B"}
1
+ {"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../../src/private-to-public/listener.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAmB,MAAM,YAAY,CAAA;AAK/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAC3E,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,gBAAgB,CAAA;AAG5E,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAU,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC/I,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,MAAM,WAAW,8BAA8B;IAC7C,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,eAAe,CAAA;IACvB,QAAQ,EAAE,QAAQ,CAAA;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,YAAY,CAAA;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,QAAQ,CAAA;IAClB,WAAW,EAAE,oBAAoB,CAAA;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,WAAW,CAAC,EAAE,kBAAkB,CAAA;IAChC,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAC1F,OAAO,EAAE,gBAAgB,CAAC,sCAAsC,CAAC,CAAA;CAClE;AAED,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,YAAY,CAAA;CAC7B;AAaD,qBAAa,oBAAqB,SAAQ,iBAAiB,CAAC,cAAc,CAAE,YAAW,QAAQ;IAC7F,OAAO,CAAC,kBAAkB,CAAC,CAAW;IACtC,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,UAAU,CAAC,CAAY;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAClE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA0B;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgC;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAuB;IAChD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAiB;gBAEvC,UAAU,EAAE,8BAA8B,EAAE,IAAI,EAAE,wBAAwB;IA4BjF,MAAM,CAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA6C3C,OAAO,CAAC,iBAAiB;YAgCX,kBAAkB;IA0DhC,QAAQ,IAAK,SAAS,EAAE;IAYxB,mBAAmB,CAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI;IAgC7C,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;CA8B9B"}