@libp2p/webrtc 3.1.10-d9159dd5 → 3.1.11

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.
@@ -17,6 +17,11 @@ export interface WebRTCStreamInit extends AbstractStreamInit {
17
17
  dataChannelOptions?: Partial<DataChannelOpts>;
18
18
  maxDataSize: number;
19
19
  }
20
+ export declare const MAX_MESSAGE_SIZE: number;
21
+ export declare const MAX_BUFFERED_AMOUNT: number;
22
+ export declare const BUFFERED_AMOUNT_LOW_TIMEOUT: number;
23
+ export declare const PROTOBUF_OVERHEAD = 5;
24
+ export declare const VARINT_LENGTH = 2;
20
25
  export declare class WebRTCStream extends AbstractStream {
21
26
  /**
22
27
  * The data channel used to send and receive data
@@ -32,6 +37,9 @@ export declare class WebRTCStream extends AbstractStream {
32
37
  */
33
38
  private readonly incomingData;
34
39
  private messageQueue?;
40
+ /**
41
+ * The maximum size of a message in bytes
42
+ */
35
43
  private readonly maxDataSize;
36
44
  constructor(init: WebRTCStreamInit);
37
45
  sendNewStream(): 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;AAK/F,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAE7D,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAA;IACtB,iBAAiB,EAAE,MAAM,CAAA;IACzB,6BAA6B,EAAE,MAAM,CAAA;CACtC;AAED,MAAM,WAAW,gBAAiB,SAAQ,kBAAkB;IAC1D;;;;;OAKG;IACH,OAAO,EAAE,cAAc,CAAA;IAEvB,kBAAkB,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAE7C,WAAW,EAAE,MAAM,CAAA;CACpB;AAcD,qBAAa,YAAa,SAAQ,cAAc;IAC9C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IAExC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAiB;IAEpD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IAEnD,OAAO,CAAC,YAAY,CAAC,CAAgB;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;gBAEvB,IAAI,EAAE,gBAAgB;IAuFnC,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;IAc9C,SAAS,IAAK,OAAO,CAAC,IAAI,CAAC;IAI3B,cAAc,IAAK,OAAO,CAAC,IAAI,CAAC;IAIhC,aAAa,IAAK,OAAO,CAAC,IAAI,CAAC;IAIrC;;OAEG;IACH,OAAO,CAAC,uBAAuB;YAwBjB,SAAS;CAOxB;AAED,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,OAAO,EAAE,cAAc,CAAA;IAEvB;;OAEG;IACH,SAAS,EAAE,SAAS,CAAA;IAEpB,kBAAkB,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAE7C,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,KAAK,IAAI,CAAA;CAC1C;AAED,wBAAgB,YAAY,CAAE,OAAO,EAAE,mBAAmB,GAAG,YAAY,CAYxE"}
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;AAK/F,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAE7D,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAA;IACtB,iBAAiB,EAAE,MAAM,CAAA;IACzB,6BAA6B,EAAE,MAAM,CAAA;CACtC;AAED,MAAM,WAAW,gBAAiB,SAAQ,kBAAkB;IAC1D;;;;;OAKG;IACH,OAAO,EAAE,cAAc,CAAA;IAEvB,kBAAkB,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAE7C,WAAW,EAAE,MAAM,CAAA;CACpB;AAGD,eAAO,MAAM,gBAAgB,QAAY,CAAA;AAGzC,eAAO,MAAM,mBAAmB,QAAmB,CAAA;AAGnD,eAAO,MAAM,2BAA2B,QAAY,CAAA;AAGpD,eAAO,MAAM,iBAAiB,IAAI,CAAA;AAGlC,eAAO,MAAM,aAAa,IAAI,CAAA;AAE9B,qBAAa,YAAa,SAAQ,cAAc;IAC9C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IAExC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAiB;IAEpD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IAEnD,OAAO,CAAC,YAAY,CAAC,CAAgB;IAErC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;gBAEvB,IAAI,EAAE,gBAAgB;IAuFnC,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;IAc9C,SAAS,IAAK,OAAO,CAAC,IAAI,CAAC;IAI3B,cAAc,IAAK,OAAO,CAAC,IAAI,CAAC;IAIhC,aAAa,IAAK,OAAO,CAAC,IAAI,CAAC;IAIrC;;OAEG;IACH,OAAO,CAAC,uBAAuB;YAwBjB,SAAS;CAOxB;AAED,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,OAAO,EAAE,cAAc,CAAA;IAEvB;;OAEG;IACH,SAAS,EAAE,SAAS,CAAA;IAEpB,kBAAkB,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAE7C,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,KAAK,IAAI,CAAA;CAC1C;AAED,wBAAgB,YAAY,CAAE,OAAO,EAAE,mBAAmB,GAAG,YAAY,CAYxE"}
@@ -7,13 +7,15 @@ import { pEvent, TimeoutError } from 'p-event';
7
7
  import { Uint8ArrayList } from 'uint8arraylist';
8
8
  import { Message } from './pb/message.js';
9
9
  // Max message size that can be sent to the DataChannel
10
- const MAX_MESSAGE_SIZE = 16 * 1024;
10
+ export const MAX_MESSAGE_SIZE = 16 * 1024;
11
11
  // How much can be buffered to the DataChannel at once
12
- const MAX_BUFFERED_AMOUNT = 16 * 1024 * 1024;
12
+ export const MAX_BUFFERED_AMOUNT = 16 * 1024 * 1024;
13
13
  // How long time we wait for the 'bufferedamountlow' event to be emitted
14
- const BUFFERED_AMOUNT_LOW_TIMEOUT = 30 * 1000;
14
+ export const BUFFERED_AMOUNT_LOW_TIMEOUT = 30 * 1000;
15
15
  // protobuf field definition overhead
16
- const PROTOBUF_OVERHEAD = 3;
16
+ export const PROTOBUF_OVERHEAD = 5;
17
+ // Length of varint, in bytes.
18
+ export const VARINT_LENGTH = 2;
17
19
  export class WebRTCStream extends AbstractStream {
18
20
  /**
19
21
  * The data channel used to send and receive data
@@ -29,6 +31,9 @@ export class WebRTCStream extends AbstractStream {
29
31
  */
30
32
  incomingData;
31
33
  messageQueue;
34
+ /**
35
+ * The maximum size of a message in bytes
36
+ */
32
37
  maxDataSize;
33
38
  constructor(init) {
34
39
  super(init);
@@ -39,7 +44,7 @@ export class WebRTCStream extends AbstractStream {
39
44
  this.dataChannelOptions = {
40
45
  bufferedAmountLowEventTimeout: init.dataChannelOptions?.bufferedAmountLowEventTimeout ?? BUFFERED_AMOUNT_LOW_TIMEOUT,
41
46
  maxBufferedAmount: init.dataChannelOptions?.maxBufferedAmount ?? MAX_BUFFERED_AMOUNT,
42
- maxMessageSize: init.dataChannelOptions?.maxMessageSize ?? MAX_MESSAGE_SIZE
47
+ maxMessageSize: init.dataChannelOptions?.maxMessageSize ?? init.maxDataSize
43
48
  };
44
49
  this.maxDataSize = init.maxDataSize;
45
50
  // set up initial state
@@ -192,7 +197,7 @@ export function createStream(options) {
192
197
  return new WebRTCStream({
193
198
  id: direction === 'inbound' ? (`i${channel.id}`) : `r${channel.id}`,
194
199
  direction,
195
- maxDataSize: (dataChannelOptions?.maxMessageSize ?? MAX_MESSAGE_SIZE) - PROTOBUF_OVERHEAD,
200
+ maxDataSize: (dataChannelOptions?.maxMessageSize ?? MAX_MESSAGE_SIZE) - PROTOBUF_OVERHEAD - VARINT_LENGTH,
196
201
  dataChannelOptions,
197
202
  onEnd,
198
203
  channel,
@@ -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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"}
@@ -0,0 +1,6 @@
1
+ {
2
+ "webRTC": "https://libp2p.github.io/js-libp2p/functions/_libp2p_webrtc.webRTC.html",
3
+ ".:webRTC": "https://libp2p.github.io/js-libp2p/functions/_libp2p_webrtc.webRTC.html",
4
+ "webRTCDirect": "https://libp2p.github.io/js-libp2p/functions/_libp2p_webrtc.webRTCDirect.html",
5
+ ".:webRTCDirect": "https://libp2p.github.io/js-libp2p/functions/_libp2p_webrtc.webRTCDirect.html"
6
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libp2p/webrtc",
3
- "version": "3.1.10-d9159dd5",
3
+ "version": "3.1.11",
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",
@@ -45,10 +45,10 @@
45
45
  },
46
46
  "dependencies": {
47
47
  "@chainsafe/libp2p-noise": "^13.0.0",
48
- "@libp2p/interface": "0.1.2-d9159dd5",
49
- "@libp2p/interface-internal": "0.1.4-d9159dd5",
50
- "@libp2p/logger": "3.0.2-d9159dd5",
51
- "@libp2p/peer-id": "3.0.2-d9159dd5",
48
+ "@libp2p/interface": "^0.1.2",
49
+ "@libp2p/interface-internal": "^0.1.5",
50
+ "@libp2p/logger": "^3.0.2",
51
+ "@libp2p/peer-id": "^3.0.2",
52
52
  "@multiformats/mafmt": "^12.1.2",
53
53
  "@multiformats/multiaddr": "^12.1.5",
54
54
  "abortable-iterator": "^5.0.1",
@@ -70,16 +70,16 @@
70
70
  },
71
71
  "devDependencies": {
72
72
  "@chainsafe/libp2p-yamux": "^5.0.0",
73
- "@libp2p/interface-compliance-tests": "4.0.5-d9159dd5",
74
- "@libp2p/peer-id-factory": "3.0.3-d9159dd5",
75
- "@libp2p/websockets": "7.0.6-d9159dd5",
73
+ "@libp2p/interface-compliance-tests": "^4.0.6",
74
+ "@libp2p/peer-id-factory": "^3.0.4",
75
+ "@libp2p/websockets": "^7.0.7",
76
76
  "@types/sinon": "^10.0.15",
77
77
  "aegir": "^40.0.8",
78
78
  "delay": "^6.0.0",
79
79
  "it-length": "^3.0.2",
80
80
  "it-map": "^3.0.3",
81
81
  "it-pair": "^2.0.6",
82
- "libp2p": "0.46.10-d9159dd5",
82
+ "libp2p": "^0.46.11",
83
83
  "protons": "^7.0.2",
84
84
  "sinon": "^16.0.0",
85
85
  "sinon-ts": "^1.0.0"
package/src/stream.ts CHANGED
@@ -29,16 +29,19 @@ export interface WebRTCStreamInit extends AbstractStreamInit {
29
29
  }
30
30
 
31
31
  // Max message size that can be sent to the DataChannel
32
- const MAX_MESSAGE_SIZE = 16 * 1024
32
+ export const MAX_MESSAGE_SIZE = 16 * 1024
33
33
 
34
34
  // How much can be buffered to the DataChannel at once
35
- const MAX_BUFFERED_AMOUNT = 16 * 1024 * 1024
35
+ export const MAX_BUFFERED_AMOUNT = 16 * 1024 * 1024
36
36
 
37
37
  // How long time we wait for the 'bufferedamountlow' event to be emitted
38
- const BUFFERED_AMOUNT_LOW_TIMEOUT = 30 * 1000
38
+ export const BUFFERED_AMOUNT_LOW_TIMEOUT = 30 * 1000
39
39
 
40
40
  // protobuf field definition overhead
41
- const PROTOBUF_OVERHEAD = 3
41
+ export const PROTOBUF_OVERHEAD = 5
42
+
43
+ // Length of varint, in bytes.
44
+ export const VARINT_LENGTH = 2
42
45
 
43
46
  export class WebRTCStream extends AbstractStream {
44
47
  /**
@@ -58,6 +61,10 @@ export class WebRTCStream extends AbstractStream {
58
61
  private readonly incomingData: Pushable<Uint8Array>
59
62
 
60
63
  private messageQueue?: Uint8ArrayList
64
+
65
+ /**
66
+ * The maximum size of a message in bytes
67
+ */
61
68
  private readonly maxDataSize: number
62
69
 
63
70
  constructor (init: WebRTCStreamInit) {
@@ -70,7 +77,7 @@ export class WebRTCStream extends AbstractStream {
70
77
  this.dataChannelOptions = {
71
78
  bufferedAmountLowEventTimeout: init.dataChannelOptions?.bufferedAmountLowEventTimeout ?? BUFFERED_AMOUNT_LOW_TIMEOUT,
72
79
  maxBufferedAmount: init.dataChannelOptions?.maxBufferedAmount ?? MAX_BUFFERED_AMOUNT,
73
- maxMessageSize: init.dataChannelOptions?.maxMessageSize ?? MAX_MESSAGE_SIZE
80
+ maxMessageSize: init.dataChannelOptions?.maxMessageSize ?? init.maxDataSize
74
81
  }
75
82
  this.maxDataSize = init.maxDataSize
76
83
 
@@ -275,7 +282,7 @@ export function createStream (options: WebRTCStreamOptions): WebRTCStream {
275
282
  return new WebRTCStream({
276
283
  id: direction === 'inbound' ? (`i${channel.id}`) : `r${channel.id}`,
277
284
  direction,
278
- maxDataSize: (dataChannelOptions?.maxMessageSize ?? MAX_MESSAGE_SIZE) - PROTOBUF_OVERHEAD,
285
+ maxDataSize: (dataChannelOptions?.maxMessageSize ?? MAX_MESSAGE_SIZE) - PROTOBUF_OVERHEAD - VARINT_LENGTH,
279
286
  dataChannelOptions,
280
287
  onEnd,
281
288
  channel,