mediasoup-client 3.13.0 → 3.14.1

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 (67) hide show
  1. package/lib/Consumer.d.ts.map +1 -1
  2. package/lib/Consumer.js +3 -0
  3. package/lib/DataConsumer.d.ts.map +1 -1
  4. package/lib/DataConsumer.js +8 -8
  5. package/lib/DataProducer.d.ts.map +1 -1
  6. package/lib/DataProducer.js +8 -7
  7. package/lib/Device.d.ts +2 -2
  8. package/lib/Device.d.ts.map +1 -1
  9. package/lib/Device.js +53 -70
  10. package/lib/Producer.d.ts.map +1 -1
  11. package/lib/Producer.js +3 -0
  12. package/lib/RtpParameters.d.ts +8 -8
  13. package/lib/RtpParameters.d.ts.map +1 -1
  14. package/lib/Transport.d.ts +4 -4
  15. package/lib/Transport.d.ts.map +1 -1
  16. package/lib/Transport.js +9 -7
  17. package/lib/enhancedEvents.d.ts +4 -0
  18. package/lib/enhancedEvents.d.ts.map +1 -1
  19. package/lib/enhancedEvents.js +7 -0
  20. package/lib/handlers/Chrome111.d.ts +13 -13
  21. package/lib/handlers/Chrome111.d.ts.map +1 -1
  22. package/lib/handlers/Chrome111.js +175 -124
  23. package/lib/handlers/Chrome74.d.ts +13 -13
  24. package/lib/handlers/Chrome74.d.ts.map +1 -1
  25. package/lib/handlers/Chrome74.js +175 -120
  26. package/lib/handlers/FakeHandler.d.ts +8 -10
  27. package/lib/handlers/FakeHandler.d.ts.map +1 -1
  28. package/lib/handlers/FakeHandler.js +204 -61
  29. package/lib/handlers/Firefox120.d.ts +13 -13
  30. package/lib/handlers/Firefox120.d.ts.map +1 -1
  31. package/lib/handlers/Firefox120.js +200 -147
  32. package/lib/handlers/HandlerInterface.d.ts +11 -9
  33. package/lib/handlers/HandlerInterface.d.ts.map +1 -1
  34. package/lib/handlers/ReactNative106.d.ts +13 -13
  35. package/lib/handlers/ReactNative106.d.ts.map +1 -1
  36. package/lib/handlers/ReactNative106.js +181 -127
  37. package/lib/handlers/Safari12.d.ts +13 -13
  38. package/lib/handlers/Safari12.d.ts.map +1 -1
  39. package/lib/handlers/Safari12.js +178 -116
  40. package/lib/handlers/sdp/MediaSection.d.ts +5 -5
  41. package/lib/handlers/sdp/MediaSection.d.ts.map +1 -1
  42. package/lib/handlers/sdp/MediaSection.js +43 -45
  43. package/lib/handlers/sdp/RemoteSdp.d.ts +5 -6
  44. package/lib/handlers/sdp/RemoteSdp.d.ts.map +1 -1
  45. package/lib/handlers/sdp/RemoteSdp.js +5 -8
  46. package/lib/handlers/sdp/commonUtils.d.ts +5 -4
  47. package/lib/handlers/sdp/commonUtils.d.ts.map +1 -1
  48. package/lib/handlers/sdp/commonUtils.js +2 -2
  49. package/lib/handlers/sdp/plainRtpUtils.d.ts +4 -3
  50. package/lib/handlers/sdp/plainRtpUtils.d.ts.map +1 -1
  51. package/lib/handlers/sdp/plainRtpUtils.js +2 -2
  52. package/lib/handlers/sdp/unifiedPlanUtils.d.ts +3 -2
  53. package/lib/handlers/sdp/unifiedPlanUtils.d.ts.map +1 -1
  54. package/lib/handlers/sdp/unifiedPlanUtils.js +10 -8
  55. package/lib/index.d.ts +1 -1
  56. package/lib/index.js +1 -1
  57. package/lib/ortc.d.ts +7 -6
  58. package/lib/ortc.d.ts.map +1 -1
  59. package/lib/ortc.js +13 -14
  60. package/lib/privateTypes.d.ts +27 -0
  61. package/lib/privateTypes.d.ts.map +1 -0
  62. package/lib/privateTypes.js +2 -0
  63. package/lib/test/test.js +22 -3
  64. package/lib/utils.d.ts +1 -1
  65. package/lib/utils.d.ts.map +1 -1
  66. package/lib/utils.js +5 -4
  67. package/package.json +8 -9
@@ -7,41 +7,13 @@ const Logger_1 = require("../Logger");
7
7
  const utils = require("../utils");
8
8
  const ortc = require("../ortc");
9
9
  const errors_1 = require("../errors");
10
- const HandlerInterface_1 = require("./HandlerInterface");
11
10
  const logger = new Logger_1.Logger('FakeHandler');
12
11
  const NAME = 'FakeHandler';
13
- class FakeDataChannel extends enhancedEvents_1.EnhancedEventEmitter {
14
- id;
15
- ordered;
16
- maxPacketLifeTime;
17
- maxRetransmits;
18
- label;
19
- protocol;
20
- constructor({ id, ordered, maxPacketLifeTime, maxRetransmits, label, protocol, }) {
21
- super();
22
- this.id = id;
23
- this.ordered = ordered;
24
- this.maxPacketLifeTime = maxPacketLifeTime;
25
- this.maxRetransmits = maxRetransmits;
26
- this.label = label;
27
- this.protocol = protocol;
28
- }
29
- close() {
30
- this.safeEmit('close');
31
- this.emit('@close');
32
- }
33
- send(data) {
34
- this.safeEmit('message', data);
35
- }
36
- addEventListener(event, fn) {
37
- this.on(event, fn);
38
- }
39
- }
40
- class FakeHandler extends HandlerInterface_1.HandlerInterface {
12
+ class FakeHandler extends enhancedEvents_1.EnhancedEventEmitter {
41
13
  // Closed flag.
42
14
  _closed = false;
43
15
  // Fake parameters source of RTP and SCTP parameters and capabilities.
44
- fakeParameters;
16
+ _fakeParameters;
45
17
  // Generic sending RTP parameters for audio and video.
46
18
  _rtpParametersByKind;
47
19
  // Local RTCP CNAME.
@@ -58,11 +30,38 @@ class FakeHandler extends HandlerInterface_1.HandlerInterface {
58
30
  * Creates a factory function.
59
31
  */
60
32
  static createFactory(fakeParameters) {
61
- return () => new FakeHandler(fakeParameters);
33
+ return {
34
+ name: NAME,
35
+ factory: (options) => new FakeHandler(options, fakeParameters),
36
+ getNativeRtpCapabilities: async () => {
37
+ logger.debug('getNativeRtpCapabilities()');
38
+ return fakeParameters.generateNativeRtpCapabilities();
39
+ },
40
+ getNativeSctpCapabilities: async () => {
41
+ logger.debug('getNativeSctpCapabilities()');
42
+ return fakeParameters.generateNativeSctpCapabilities();
43
+ },
44
+ };
62
45
  }
63
- constructor(fakeParameters) {
46
+ constructor({
47
+ // direction,
48
+ // iceParameters,
49
+ // iceCandidates,
50
+ // dtlsParameters,
51
+ // sctpParameters,
52
+ // iceServers,
53
+ // iceTransportPolicy,
54
+ // additionalSettings,
55
+ extendedRtpCapabilities, }, fakeParameters) {
64
56
  super();
65
- this.fakeParameters = fakeParameters;
57
+ logger.debug('constructor()');
58
+ // Generic sending RTP parameters for audio and video.
59
+ // @type {Object}
60
+ this._rtpParametersByKind = {
61
+ audio: ortc.getSendingRtpParameters('audio', extendedRtpCapabilities),
62
+ video: ortc.getSendingRtpParameters('video', extendedRtpCapabilities),
63
+ };
64
+ this._fakeParameters = fakeParameters;
66
65
  }
67
66
  get name() {
68
67
  return NAME;
@@ -73,6 +72,8 @@ class FakeHandler extends HandlerInterface_1.HandlerInterface {
73
72
  return;
74
73
  }
75
74
  this._closed = true;
75
+ // Invoke close() in EnhancedEventEmitter classes.
76
+ super.close();
76
77
  }
77
78
  // NOTE: Custom method for simulation purposes.
78
79
  setIceGatheringState(iceGatheringState) {
@@ -82,28 +83,6 @@ class FakeHandler extends HandlerInterface_1.HandlerInterface {
82
83
  setConnectionState(connectionState) {
83
84
  this.emit('@connectionstatechange', connectionState);
84
85
  }
85
- async getNativeRtpCapabilities() {
86
- logger.debug('getNativeRtpCapabilities()');
87
- return this.fakeParameters.generateNativeRtpCapabilities();
88
- }
89
- async getNativeSctpCapabilities() {
90
- logger.debug('getNativeSctpCapabilities()');
91
- return this.fakeParameters.generateNativeSctpCapabilities();
92
- }
93
- run({
94
- /* eslint-disable @typescript-eslint/no-unused-vars */
95
- direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, proprietaryConstraints, extendedRtpCapabilities,
96
- /* eslint-enable @typescript-eslint/no-unused-vars */
97
- }) {
98
- this.assertNotClosed();
99
- logger.debug('run()');
100
- // Generic sending RTP parameters for audio and video.
101
- // @type {Object}
102
- this._rtpParametersByKind = {
103
- audio: ortc.getSendingRtpParameters('audio', extendedRtpCapabilities),
104
- video: ortc.getSendingRtpParameters('video', extendedRtpCapabilities),
105
- };
106
- }
107
86
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
108
87
  async updateIceServers(iceServers) {
109
88
  this.assertNotClosed();
@@ -127,7 +106,7 @@ class FakeHandler extends HandlerInterface_1.HandlerInterface {
127
106
  await this.setupTransport({ localDtlsRole: 'server' });
128
107
  }
129
108
  const rtpParameters = utils.clone(this._rtpParametersByKind[track.kind]);
130
- const useRtx = rtpParameters.codecs.some((_codec) => /.+\/rtx$/i.test(_codec.mimeType));
109
+ const useRtx = rtpParameters.codecs.some(_codec => /.+\/rtx$/i.test(_codec.mimeType));
131
110
  rtpParameters.mid = `mid-${utils.generateRandomNumber()}`;
132
111
  if (!encodings) {
133
112
  encodings = [{}];
@@ -199,7 +178,7 @@ class FakeHandler extends HandlerInterface_1.HandlerInterface {
199
178
  await this.setupTransport({ localDtlsRole: 'server' });
200
179
  }
201
180
  logger.debug('sendDataChannel()');
202
- const dataChannel = new FakeDataChannel({
181
+ const dataChannel = new FakeRTCDataChannel({
203
182
  id: this._nextSctpStreamId++,
204
183
  ordered,
205
184
  maxPacketLifeTime,
@@ -213,7 +192,6 @@ class FakeHandler extends HandlerInterface_1.HandlerInterface {
213
192
  maxPacketLifeTime: maxPacketLifeTime,
214
193
  maxRetransmits: maxRetransmits,
215
194
  };
216
- // @ts-expect-error --- On purpose.
217
195
  return { dataChannel, sctpStreamParameters };
218
196
  }
219
197
  async receive(optionsList) {
@@ -264,7 +242,7 @@ class FakeHandler extends HandlerInterface_1.HandlerInterface {
264
242
  await this.setupTransport({ localDtlsRole: 'client' });
265
243
  }
266
244
  logger.debug('receiveDataChannel()');
267
- const dataChannel = new FakeDataChannel({
245
+ const dataChannel = new FakeRTCDataChannel({
268
246
  id: sctpStreamParameters.streamId,
269
247
  ordered: sctpStreamParameters.ordered,
270
248
  maxPacketLifeTime: sctpStreamParameters.maxPacketLifeTime,
@@ -272,13 +250,12 @@ class FakeHandler extends HandlerInterface_1.HandlerInterface {
272
250
  label,
273
251
  protocol,
274
252
  });
275
- // @ts-expect-error --- On purpose.
276
253
  return { dataChannel };
277
254
  }
278
255
  async setupTransport({ localDtlsRole,
279
256
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
280
257
  localSdpObject, }) {
281
- const dtlsParameters = utils.clone(this.fakeParameters.generateLocalDtlsParameters());
258
+ const dtlsParameters = utils.clone(this._fakeParameters.generateLocalDtlsParameters());
282
259
  // Set our DTLS role.
283
260
  if (localDtlsRole) {
284
261
  dtlsParameters.role = localDtlsRole;
@@ -296,3 +273,169 @@ class FakeHandler extends HandlerInterface_1.HandlerInterface {
296
273
  }
297
274
  }
298
275
  exports.FakeHandler = FakeHandler;
276
+ /* eslint-disable @typescript-eslint/no-explicit-any */
277
+ class FakeRTCDataChannel extends EventTarget {
278
+ // Members for RTCDataChannel standard public getters/setters.
279
+ _id;
280
+ _negotiated = true; // mediasoup just uses negotiated DataChannels.
281
+ _ordered;
282
+ _maxPacketLifeTime;
283
+ _maxRetransmits;
284
+ _label;
285
+ _protocol;
286
+ _readyState = 'connecting';
287
+ _bufferedAmount = 0;
288
+ _bufferedAmountLowThreshold = 0;
289
+ _binaryType = 'arraybuffer';
290
+ // Events.
291
+ _onopen = null;
292
+ _onclosing = null;
293
+ _onclose = null;
294
+ _onmessage = null;
295
+ _onbufferedamountlow = null;
296
+ _onerror = null;
297
+ constructor({ id, ordered = true, maxPacketLifeTime = null, maxRetransmits = null, label = '', protocol = '', }) {
298
+ super();
299
+ logger.debug(`constructor() [id:${id}, ordered:${ordered}, maxPacketLifeTime:${maxPacketLifeTime}, maxRetransmits:${maxRetransmits}, label:${label}, protocol:${protocol}`);
300
+ this._id = id;
301
+ this._ordered = ordered;
302
+ this._maxPacketLifeTime = maxPacketLifeTime;
303
+ this._maxRetransmits = maxRetransmits;
304
+ this._label = label;
305
+ this._protocol = protocol;
306
+ }
307
+ get id() {
308
+ return this._id;
309
+ }
310
+ get negotiated() {
311
+ return this._negotiated;
312
+ }
313
+ get ordered() {
314
+ return this._ordered;
315
+ }
316
+ get maxPacketLifeTime() {
317
+ return this._maxPacketLifeTime;
318
+ }
319
+ get maxRetransmits() {
320
+ return this._maxRetransmits;
321
+ }
322
+ get label() {
323
+ return this._label;
324
+ }
325
+ get protocol() {
326
+ return this._protocol;
327
+ }
328
+ get readyState() {
329
+ return this._readyState;
330
+ }
331
+ get bufferedAmount() {
332
+ return this._bufferedAmount;
333
+ }
334
+ get bufferedAmountLowThreshold() {
335
+ return this._bufferedAmountLowThreshold;
336
+ }
337
+ set bufferedAmountLowThreshold(value) {
338
+ this._bufferedAmountLowThreshold = value;
339
+ }
340
+ get binaryType() {
341
+ return this._binaryType;
342
+ }
343
+ set binaryType(binaryType) {
344
+ this._binaryType = binaryType;
345
+ }
346
+ get onopen() {
347
+ return this._onopen;
348
+ }
349
+ set onopen(handler) {
350
+ if (this._onopen) {
351
+ this.removeEventListener('open', this._onopen);
352
+ }
353
+ this._onopen = handler;
354
+ if (handler) {
355
+ this.addEventListener('open', handler);
356
+ }
357
+ }
358
+ get onclosing() {
359
+ return this._onclosing;
360
+ }
361
+ set onclosing(handler) {
362
+ if (this._onclosing) {
363
+ this.removeEventListener('closing', this._onclosing);
364
+ }
365
+ this._onclosing = handler;
366
+ if (handler) {
367
+ this.addEventListener('closing', handler);
368
+ }
369
+ }
370
+ get onclose() {
371
+ return this._onclose;
372
+ }
373
+ set onclose(handler) {
374
+ if (this._onclose) {
375
+ this.removeEventListener('close', this._onclose);
376
+ }
377
+ this._onclose = handler;
378
+ if (handler) {
379
+ this.addEventListener('close', handler);
380
+ }
381
+ }
382
+ get onmessage() {
383
+ return this._onmessage;
384
+ }
385
+ set onmessage(handler) {
386
+ if (this._onmessage) {
387
+ this.removeEventListener('message', this._onmessage);
388
+ }
389
+ this._onmessage = handler;
390
+ if (handler) {
391
+ this.addEventListener('message', handler);
392
+ }
393
+ }
394
+ get onbufferedamountlow() {
395
+ return this._onbufferedamountlow;
396
+ }
397
+ set onbufferedamountlow(handler) {
398
+ if (this._onbufferedamountlow) {
399
+ this.removeEventListener('bufferedamountlow', this._onbufferedamountlow);
400
+ }
401
+ this._onbufferedamountlow = handler;
402
+ if (handler) {
403
+ this.addEventListener('bufferedamountlow', handler);
404
+ }
405
+ }
406
+ get onerror() {
407
+ return this._onerror;
408
+ }
409
+ set onerror(handler) {
410
+ if (this._onerror) {
411
+ this.removeEventListener('error', this._onerror);
412
+ }
413
+ this._onerror = handler;
414
+ if (handler) {
415
+ this.addEventListener('error', handler);
416
+ }
417
+ }
418
+ addEventListener(type, listener, options) {
419
+ super.addEventListener(type, listener, options);
420
+ }
421
+ removeEventListener(type, listener, options) {
422
+ super.removeEventListener(type, listener, options);
423
+ }
424
+ close() {
425
+ if (['closing', 'closed'].includes(this._readyState)) {
426
+ return;
427
+ }
428
+ this._readyState = 'closed';
429
+ }
430
+ /**
431
+ * We extend the definition of send() to allow Node Buffer. However
432
+ * ArrayBufferView and Blob do not exist in Node.
433
+ */
434
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
435
+ send(data) {
436
+ if (this._readyState !== 'open') {
437
+ throw new errors_1.InvalidStateError('not open');
438
+ }
439
+ }
440
+ }
441
+ /* eslint-enable @typescript-eslint/no-explicit-any */
@@ -1,13 +1,12 @@
1
- import { type HandlerFactory, HandlerInterface, type HandlerRunOptions, type HandlerSendOptions, type HandlerSendResult, type HandlerReceiveOptions, type HandlerReceiveResult, type HandlerSendDataChannelOptions, type HandlerSendDataChannelResult, type HandlerReceiveDataChannelOptions, type HandlerReceiveDataChannelResult } from './HandlerInterface';
1
+ import { EnhancedEventEmitter } from '../enhancedEvents';
2
2
  import type { IceParameters } from '../Transport';
3
- import type { RtpCapabilities } from '../RtpParameters';
4
- import type { SctpCapabilities } from '../SctpParameters';
5
- export declare class Firefox120 extends HandlerInterface {
3
+ import type { HandlerFactory, HandlerInterface, HandlerEvents, HandlerSendOptions, HandlerSendResult, HandlerReceiveOptions, HandlerReceiveResult, HandlerSendDataChannelOptions, HandlerSendDataChannelResult, HandlerReceiveDataChannelOptions, HandlerReceiveDataChannelResult } from './HandlerInterface';
4
+ export declare class Firefox120 extends EnhancedEventEmitter<HandlerEvents> implements HandlerInterface {
6
5
  private _closed;
7
- private _direction?;
8
- private _remoteSdp?;
9
- private _sendingRtpParametersByKind?;
10
- private _sendingRemoteRtpParametersByKind?;
6
+ private _direction;
7
+ private _remoteSdp;
8
+ private _sendingRtpParametersByKind;
9
+ private _sendingRemoteRtpParametersByKind;
11
10
  private _pc;
12
11
  private readonly _mapMidTransceiver;
13
12
  private readonly _sendStream;
@@ -18,12 +17,9 @@ export declare class Firefox120 extends HandlerInterface {
18
17
  * Creates a factory function.
19
18
  */
20
19
  static createFactory(): HandlerFactory;
21
- constructor();
20
+ private constructor();
22
21
  get name(): string;
23
22
  close(): void;
24
- getNativeRtpCapabilities(): Promise<RtpCapabilities>;
25
- getNativeSctpCapabilities(): Promise<SctpCapabilities>;
26
- run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities, }: HandlerRunOptions): void;
27
23
  updateIceServers(iceServers: RTCIceServer[]): Promise<void>;
28
24
  restartIce(iceParameters: IceParameters): Promise<void>;
29
25
  getTransportStats(): Promise<RTCStatsReport>;
@@ -33,7 +29,7 @@ export declare class Firefox120 extends HandlerInterface {
33
29
  resumeSending(localId: string): Promise<void>;
34
30
  replaceTrack(localId: string, track: MediaStreamTrack | null): Promise<void>;
35
31
  setMaxSpatialLayer(localId: string, spatialLayer: number): Promise<void>;
36
- setRtpEncodingParameters(localId: string, params: any): Promise<void>;
32
+ setRtpEncodingParameters(localId: string, params: Partial<RTCRtpEncodingParameters>): Promise<void>;
37
33
  getSenderStats(localId: string): Promise<RTCStatsReport>;
38
34
  sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol, }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
39
35
  receive(optionsList: HandlerReceiveOptions[]): Promise<HandlerReceiveResult[]>;
@@ -43,6 +39,10 @@ export declare class Firefox120 extends HandlerInterface {
43
39
  getReceiverStats(localId: string): Promise<RTCStatsReport>;
44
40
  receiveDataChannel({ sctpStreamParameters, label, protocol, }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
45
41
  private setupTransport;
42
+ private onIceGatheringStateChange;
43
+ private onIceCandidateError;
44
+ private onConnectionStateChange;
45
+ private onIceConnectionStateChange;
46
46
  private assertNotClosed;
47
47
  private assertSendDirection;
48
48
  private assertRecvDirection;
@@ -1 +1 @@
1
- {"version":3,"file":"Firefox120.d.ts","sourceRoot":"","sources":["../../src/handlers/Firefox120.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Firefox120.d.ts","sourceRoot":"","sources":["../../src/handlers/Firefox120.ts"],"names":[],"mappings":"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"}