mediasoup-client 3.7.14 → 3.7.16

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 (72) hide show
  1. package/lib/Consumer.d.ts +1 -1
  2. package/lib/Consumer.d.ts.map +1 -1
  3. package/lib/Consumer.js +4 -4
  4. package/lib/DataConsumer.d.ts +1 -1
  5. package/lib/DataConsumer.d.ts.map +1 -1
  6. package/lib/DataConsumer.js +4 -4
  7. package/lib/DataProducer.d.ts +1 -1
  8. package/lib/DataProducer.d.ts.map +1 -1
  9. package/lib/DataProducer.js +4 -4
  10. package/lib/Device.d.ts +1 -1
  11. package/lib/Device.d.ts.map +1 -1
  12. package/lib/Device.js +3 -2
  13. package/lib/Producer.d.ts +1 -1
  14. package/lib/Producer.d.ts.map +1 -1
  15. package/lib/Producer.js +4 -4
  16. package/lib/Transport.d.ts +1 -1
  17. package/lib/Transport.d.ts.map +1 -1
  18. package/lib/Transport.js +7 -7
  19. package/lib/{EnhancedEventEmitter.d.ts → enhancedEvents.d.ts} +1 -1
  20. package/lib/enhancedEvents.d.ts.map +1 -0
  21. package/lib/{EnhancedEventEmitter.js → enhancedEvents.js} +9 -4
  22. package/lib/errors.d.ts.map +1 -1
  23. package/lib/errors.js +0 -3
  24. package/lib/handlers/Chrome111.d.ts.map +1 -1
  25. package/lib/handlers/Chrome111.js +7 -6
  26. package/lib/handlers/Chrome55.d.ts.map +1 -1
  27. package/lib/handlers/Chrome55.js +7 -6
  28. package/lib/handlers/Chrome67.d.ts.map +1 -1
  29. package/lib/handlers/Chrome67.js +7 -6
  30. package/lib/handlers/Chrome70.d.ts.map +1 -1
  31. package/lib/handlers/Chrome70.js +9 -8
  32. package/lib/handlers/Chrome74.d.ts.map +1 -1
  33. package/lib/handlers/Chrome74.js +8 -7
  34. package/lib/handlers/Edge11.d.ts.map +1 -1
  35. package/lib/handlers/Edge11.js +5 -4
  36. package/lib/handlers/FakeHandler.d.ts.map +1 -1
  37. package/lib/handlers/FakeHandler.js +6 -5
  38. package/lib/handlers/Firefox120.d.ts.map +1 -1
  39. package/lib/handlers/Firefox120.js +9 -12
  40. package/lib/handlers/Firefox60.d.ts.map +1 -1
  41. package/lib/handlers/Firefox60.js +15 -20
  42. package/lib/handlers/HandlerInterface.d.ts +1 -1
  43. package/lib/handlers/HandlerInterface.d.ts.map +1 -1
  44. package/lib/handlers/HandlerInterface.js +2 -2
  45. package/lib/handlers/ReactNative.d.ts.map +1 -1
  46. package/lib/handlers/ReactNative.js +7 -6
  47. package/lib/handlers/ReactNativeUnifiedPlan.d.ts.map +1 -1
  48. package/lib/handlers/ReactNativeUnifiedPlan.js +9 -8
  49. package/lib/handlers/Safari11.d.ts.map +1 -1
  50. package/lib/handlers/Safari11.js +7 -6
  51. package/lib/handlers/Safari12.d.ts.map +1 -1
  52. package/lib/handlers/Safari12.js +8 -9
  53. package/lib/handlers/ortc/edgeUtils.js +10 -10
  54. package/lib/handlers/ortc/utils.js +1 -1
  55. package/lib/handlers/sdp/MediaSection.d.ts.map +1 -1
  56. package/lib/handlers/sdp/MediaSection.js +12 -13
  57. package/lib/handlers/sdp/RemoteSdp.js +1 -1
  58. package/lib/handlers/sdp/commonUtils.js +1 -1
  59. package/lib/handlers/sdp/planBUtils.d.ts.map +1 -1
  60. package/lib/handlers/sdp/planBUtils.js +1 -2
  61. package/lib/handlers/sdp/unifiedPlanUtils.d.ts.map +1 -1
  62. package/lib/handlers/sdp/unifiedPlanUtils.js +2 -3
  63. package/lib/index.d.ts +1 -1
  64. package/lib/index.js +1 -1
  65. package/lib/ortc.js +7 -7
  66. package/lib/scalabilityModes.js +1 -1
  67. package/lib/test/fakeParameters.d.ts.map +1 -1
  68. package/lib/test/fakeParameters.js +7 -8
  69. package/lib/test/test.js +50 -48
  70. package/npm-scripts.mjs +4 -3
  71. package/package.json +13 -9
  72. package/lib/EnhancedEventEmitter.d.ts.map +0 -1
@@ -34,6 +34,7 @@ const sdpPlanBUtils = __importStar(require("./sdp/planBUtils"));
34
34
  const HandlerInterface_1 = require("./HandlerInterface");
35
35
  const RemoteSdp_1 = require("./sdp/RemoteSdp");
36
36
  const logger = new Logger_1.Logger('ReactNative');
37
+ const NAME = 'ReactNative';
37
38
  const SCTP_NUM_STREAMS = { OS: 1024, MIS: 1024 };
38
39
  class ReactNative extends HandlerInterface_1.HandlerInterface {
39
40
  /**
@@ -61,13 +62,13 @@ class ReactNative extends HandlerInterface_1.HandlerInterface {
61
62
  this._transportReady = false;
62
63
  }
63
64
  get name() {
64
- return 'ReactNative';
65
+ return NAME;
65
66
  }
66
67
  close() {
67
68
  logger.debug('close()');
68
69
  // Free/dispose native MediaStream but DO NOT free/dispose native
69
70
  // MediaStreamTracks (that is parent's business).
70
- // @ts-ignore (proprietary API in react-native-webrtc).
71
+ // @ts-expect-error --- Proprietary API in react-native-webrtc.
71
72
  this._sendStream.release(/* releaseTracks */ false);
72
73
  // Close RTCPeerConnection.
73
74
  if (this._pc) {
@@ -139,8 +140,8 @@ class ReactNative extends HandlerInterface_1.HandlerInterface {
139
140
  dtlsParameters.role === 'server' ? 'client' : 'server';
140
141
  }
141
142
  this._pc = new RTCPeerConnection({
142
- iceServers: iceServers || [],
143
- iceTransportPolicy: iceTransportPolicy || 'all',
143
+ iceServers: iceServers ?? [],
144
+ iceTransportPolicy: iceTransportPolicy ?? 'all',
144
145
  bundlePolicy: 'max-bundle',
145
146
  rtcpMuxPolicy: 'require',
146
147
  sdpSemantics: 'plan-b',
@@ -409,7 +410,7 @@ class ReactNative extends HandlerInterface_1.HandlerInterface {
409
410
  const { trackId, kind, rtpParameters } = options;
410
411
  logger.debug('receive() [trackId:%s, kind:%s]', trackId, kind);
411
412
  const mid = kind;
412
- let streamId = options.streamId || rtpParameters.rtcp.cname;
413
+ let streamId = options.streamId ?? rtpParameters.rtcp.cname;
413
414
  // NOTE: In React-Native we cannot reuse the same remote MediaStream for new
414
415
  // remote tracks. This is because react-native-webrtc does not react on new
415
416
  // tracks generated within already existing streams, so force the streamId
@@ -473,7 +474,7 @@ class ReactNative extends HandlerInterface_1.HandlerInterface {
473
474
  this.assertRecvDirection();
474
475
  for (const localId of localIds) {
475
476
  logger.debug('stopReceiving() [localId:%s]', localId);
476
- const { mid, rtpParameters } = this._mapRecvLocalIdInfo.get(localId) || {};
477
+ const { mid, rtpParameters } = this._mapRecvLocalIdInfo.get(localId) ?? {};
477
478
  // Remove from the map.
478
479
  this._mapRecvLocalIdInfo.delete(localId);
479
480
  this._remoteSdp.planBStopReceiving({
@@ -1 +1 @@
1
- {"version":3,"file":"ReactNativeUnifiedPlan.d.ts","sourceRoot":"","sources":["../../src/handlers/ReactNativeUnifiedPlan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReactNativeUnifiedPlan.d.ts","sourceRoot":"","sources":["../../src/handlers/ReactNativeUnifiedPlan.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,7 @@ const HandlerInterface_1 = require("./HandlerInterface");
36
36
  const RemoteSdp_1 = require("./sdp/RemoteSdp");
37
37
  const scalabilityModes_1 = require("../scalabilityModes");
38
38
  const logger = new Logger_1.Logger('ReactNativeUnifiedPlan');
39
+ const NAME = 'ReactNativeUnifiedPlan';
39
40
  const SCTP_NUM_STREAMS = { OS: 1024, MIS: 1024 };
40
41
  class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
41
42
  /**
@@ -60,7 +61,7 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
60
61
  this._transportReady = false;
61
62
  }
62
63
  get name() {
63
- return 'ReactNativeUnifiedPlan';
64
+ return NAME;
64
65
  }
65
66
  close() {
66
67
  logger.debug('close()');
@@ -70,7 +71,7 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
70
71
  this._closed = true;
71
72
  // Free/dispose native MediaStream but DO NOT free/dispose native
72
73
  // MediaStreamTracks (that is parent's business).
73
- // @ts-ignore (proprietary API in react-native-webrtc).
74
+ // @ts-expect-error --- Proprietary API in react-native-webrtc.
74
75
  this._sendStream.release(/* releaseTracks */ false);
75
76
  // Close RTCPeerConnection.
76
77
  if (this._pc) {
@@ -143,8 +144,8 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
143
144
  dtlsParameters.role === 'server' ? 'client' : 'server';
144
145
  }
145
146
  this._pc = new RTCPeerConnection({
146
- iceServers: iceServers || [],
147
- iceTransportPolicy: iceTransportPolicy || 'all',
147
+ iceServers: iceServers ?? [],
148
+ iceTransportPolicy: iceTransportPolicy ?? 'all',
148
149
  bundlePolicy: 'max-bundle',
149
150
  rtcpMuxPolicy: 'require',
150
151
  sdpSemantics: 'unified-plan',
@@ -258,7 +259,7 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
258
259
  }
259
260
  // Special case for VP9 with SVC.
260
261
  let hackVp9Svc = false;
261
- const layers = (0, scalabilityModes_1.parse)((encodings || [{}])[0].scalabilityMode);
262
+ const layers = (0, scalabilityModes_1.parse)((encodings ?? [{}])[0].scalabilityMode);
262
263
  if (encodings &&
263
264
  encodings.length === 1 &&
264
265
  layers.spatialLayers > 1 &&
@@ -369,7 +370,7 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
369
370
  if (!transceiver) {
370
371
  throw new Error('associated RTCRtpTransceiver not found');
371
372
  }
372
- transceiver.sender.replaceTrack(null);
373
+ void transceiver.sender.replaceTrack(null);
373
374
  this._pc.removeTrack(transceiver.sender);
374
375
  const mediaSectionClosed = this._remoteSdp.closeMediaSection(transceiver.mid);
375
376
  if (mediaSectionClosed) {
@@ -543,13 +544,13 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
543
544
  for (const options of optionsList) {
544
545
  const { trackId, kind, rtpParameters, streamId } = options;
545
546
  logger.debug('receive() [trackId:%s, kind:%s]', trackId, kind);
546
- const localId = rtpParameters.mid || String(this._mapMidTransceiver.size);
547
+ const localId = rtpParameters.mid ?? String(this._mapMidTransceiver.size);
547
548
  mapLocalId.set(trackId, localId);
548
549
  this._remoteSdp.receive({
549
550
  mid: localId,
550
551
  kind,
551
552
  offerRtpParameters: rtpParameters,
552
- streamId: streamId || rtpParameters.rtcp.cname,
553
+ streamId: streamId ?? rtpParameters.rtcp.cname,
553
554
  trackId,
554
555
  });
555
556
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Safari11.d.ts","sourceRoot":"","sources":["../../src/handlers/Safari11.ts"],"names":[],"mappings":"AAMA,OAAO,EACN,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,eAAe,EAAiB,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAwB,MAAM,mBAAmB,CAAC;AAM3E,qBAAa,QAAS,SAAQ,gBAAgB;IAE7C,OAAO,CAAC,UAAU,CAAC,CAAkB;IAErC,OAAO,CAAC,UAAU,CAAC,CAAY;IAE/B,OAAO,CAAC,2BAA2B,CAAC,CAAmC;IAGvE,OAAO,CAAC,iCAAiC,CAAC,CAAmC;IAG7E,OAAO,CAAC,oBAAoB,CAAC,CAAW;IAExC,OAAO,CAAC,GAAG,CAAM;IAEjB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IAEjD,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAC9B;IAEX,OAAO,CAAC,gBAAgB,CAAK;IAG7B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAOtB;IAEd,OAAO,CAAC,2BAA2B,CAAS;IAE5C,OAAO,CAAC,qBAAqB,CAAK;IAElC,OAAO,CAAC,eAAe,CAAS;IAEhC;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,cAAc;;IAQtC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,KAAK,IAAI,IAAI;IAaP,wBAAwB,IAAI,OAAO,CAAC,eAAe,CAAC;IAoCpD,yBAAyB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAQ5D,GAAG,CAAC,EACH,SAAS,EACT,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,GACvB,EAAE,iBAAiB,GAAG,IAAI;IA+FrB,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAU3D,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAiDvD,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAI5C,IAAI,CAAC,EACV,KAAK,EACL,SAAS,EACT,YAAY,EACZ,KAAK,GACL,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAoI5C,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsD3C,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5C,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,YAAY,CACjB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAC5B,OAAO,CAAC,IAAI,CAAC;IAkCV,kBAAkB,CACvB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IA8BV,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BrE,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAYxD,eAAe,CAAC,EACrB,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,KAAK,EACL,QAAQ,GACR,EAAE,6BAA6B,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAmElE,OAAO,CACZ,WAAW,EAAE,qBAAqB,EAAE,GAClC,OAAO,CAAC,oBAAoB,EAAE,CAAC;IA8F5B,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqChD,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAY1D,cAAc,CAEnB,QAAQ,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,IAAI,CAAC;IAIV,eAAe,CAEpB,QAAQ,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,IAAI,CAAC;IAIV,kBAAkB,CAAC,EACxB,oBAAoB,EACpB,KAAK,EACL,QAAQ,GACR,EAAE,gCAAgC,GAAG,OAAO,CAAC,+BAA+B,CAAC;YAyDhE,cAAc;IAgC5B,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,mBAAmB;CAO3B"}
1
+ {"version":3,"file":"Safari11.d.ts","sourceRoot":"","sources":["../../src/handlers/Safari11.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,7 @@ const sdpPlanBUtils = __importStar(require("./sdp/planBUtils"));
33
33
  const HandlerInterface_1 = require("./HandlerInterface");
34
34
  const RemoteSdp_1 = require("./sdp/RemoteSdp");
35
35
  const logger = new Logger_1.Logger('Safari11');
36
+ const NAME = 'Safari11';
36
37
  const SCTP_NUM_STREAMS = { OS: 1024, MIS: 1024 };
37
38
  class Safari11 extends HandlerInterface_1.HandlerInterface {
38
39
  /**
@@ -60,7 +61,7 @@ class Safari11 extends HandlerInterface_1.HandlerInterface {
60
61
  this._transportReady = false;
61
62
  }
62
63
  get name() {
63
- return 'Safari11';
64
+ return NAME;
64
65
  }
65
66
  close() {
66
67
  logger.debug('close()');
@@ -134,8 +135,8 @@ class Safari11 extends HandlerInterface_1.HandlerInterface {
134
135
  dtlsParameters.role === 'server' ? 'client' : 'server';
135
136
  }
136
137
  this._pc = new RTCPeerConnection({
137
- iceServers: iceServers || [],
138
- iceTransportPolicy: iceTransportPolicy || 'all',
138
+ iceServers: iceServers ?? [],
139
+ iceTransportPolicy: iceTransportPolicy ?? 'all',
139
140
  bundlePolicy: 'max-bundle',
140
141
  rtcpMuxPolicy: 'require',
141
142
  ...additionalSettings,
@@ -448,7 +449,7 @@ class Safari11 extends HandlerInterface_1.HandlerInterface {
448
449
  mid,
449
450
  kind,
450
451
  offerRtpParameters: rtpParameters,
451
- streamId: streamId || rtpParameters.rtcp.cname,
452
+ streamId: streamId ?? rtpParameters.rtcp.cname,
452
453
  trackId,
453
454
  });
454
455
  }
@@ -505,7 +506,7 @@ class Safari11 extends HandlerInterface_1.HandlerInterface {
505
506
  this.assertRecvDirection();
506
507
  for (const localId of localIds) {
507
508
  logger.debug('stopReceiving() [localId:%s]', localId);
508
- const { mid, rtpParameters } = this._mapRecvLocalIdInfo.get(localId) || {};
509
+ const { mid, rtpParameters } = this._mapRecvLocalIdInfo.get(localId) ?? {};
509
510
  // Remove from the map.
510
511
  this._mapRecvLocalIdInfo.delete(localId);
511
512
  this._remoteSdp.planBStopReceiving({
@@ -522,7 +523,7 @@ class Safari11 extends HandlerInterface_1.HandlerInterface {
522
523
  }
523
524
  async getReceiverStats(localId) {
524
525
  this.assertRecvDirection();
525
- const { rtpReceiver } = this._mapRecvLocalIdInfo.get(localId) || {};
526
+ const { rtpReceiver } = this._mapRecvLocalIdInfo.get(localId) ?? {};
526
527
  if (!rtpReceiver) {
527
528
  throw new Error('associated RTCRtpReceiver not found');
528
529
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Safari12.d.ts","sourceRoot":"","sources":["../../src/handlers/Safari12.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Safari12.d.ts","sourceRoot":"","sources":["../../src/handlers/Safari12.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,7 @@ const HandlerInterface_1 = require("./HandlerInterface");
36
36
  const RemoteSdp_1 = require("./sdp/RemoteSdp");
37
37
  const scalabilityModes_1 = require("../scalabilityModes");
38
38
  const logger = new Logger_1.Logger('Safari12');
39
+ const NAME = 'Safari12';
39
40
  const SCTP_NUM_STREAMS = { OS: 1024, MIS: 1024 };
40
41
  class Safari12 extends HandlerInterface_1.HandlerInterface {
41
42
  /**
@@ -60,7 +61,7 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
60
61
  this._transportReady = false;
61
62
  }
62
63
  get name() {
63
- return 'Safari12';
64
+ return NAME;
64
65
  }
65
66
  close() {
66
67
  logger.debug('close()');
@@ -138,8 +139,8 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
138
139
  dtlsParameters.role === 'server' ? 'client' : 'server';
139
140
  }
140
141
  this._pc = new RTCPeerConnection({
141
- iceServers: iceServers || [],
142
- iceTransportPolicy: iceTransportPolicy || 'all',
142
+ iceServers: iceServers ?? [],
143
+ iceTransportPolicy: iceTransportPolicy ?? 'all',
143
144
  bundlePolicy: 'max-bundle',
144
145
  rtcpMuxPolicy: 'require',
145
146
  ...additionalSettings,
@@ -244,7 +245,7 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
244
245
  localSdpObject,
245
246
  });
246
247
  }
247
- const layers = (0, scalabilityModes_1.parse)((encodings || [{}])[0].scalabilityMode);
248
+ const layers = (0, scalabilityModes_1.parse)((encodings ?? [{}])[0].scalabilityMode);
248
249
  if (encodings && encodings.length > 1) {
249
250
  logger.debug('send() | enabling legacy simulcast');
250
251
  localSdpObject = sdpTransform.parse(offer.sdp);
@@ -321,7 +322,7 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
321
322
  if (!transceiver) {
322
323
  throw new Error('associated RTCRtpTransceiver not found');
323
324
  }
324
- transceiver.sender.replaceTrack(null);
325
+ void transceiver.sender.replaceTrack(null);
325
326
  this._pc.removeTrack(transceiver.sender);
326
327
  const mediaSectionClosed = this._remoteSdp.closeMediaSection(transceiver.mid);
327
328
  if (mediaSectionClosed) {
@@ -338,7 +339,6 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
338
339
  await this._pc.setRemoteDescription(answer);
339
340
  this._mapMidTransceiver.delete(localId);
340
341
  }
341
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
342
342
  async pauseSending(localId) {
343
343
  this.assertNotClosed();
344
344
  this.assertSendDirection();
@@ -356,7 +356,6 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
356
356
  logger.debug('pauseSending() | calling pc.setRemoteDescription() [answer:%o]', answer);
357
357
  await this._pc.setRemoteDescription(answer);
358
358
  }
359
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
360
359
  async resumeSending(localId) {
361
360
  this.assertNotClosed();
362
361
  this.assertSendDirection();
@@ -497,13 +496,13 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
497
496
  for (const options of optionsList) {
498
497
  const { trackId, kind, rtpParameters, streamId } = options;
499
498
  logger.debug('receive() [trackId:%s, kind:%s]', trackId, kind);
500
- const localId = rtpParameters.mid || String(this._mapMidTransceiver.size);
499
+ const localId = rtpParameters.mid ?? String(this._mapMidTransceiver.size);
501
500
  mapLocalId.set(trackId, localId);
502
501
  this._remoteSdp.receive({
503
502
  mid: localId,
504
503
  kind,
505
504
  offerRtpParameters: rtpParameters,
506
- streamId: streamId || rtpParameters.rtcp.cname,
505
+ streamId: streamId ?? rtpParameters.rtcp.cname,
507
506
  trackId,
508
507
  });
509
508
  }
@@ -35,13 +35,13 @@ function getCapabilities() {
35
35
  const caps = utils.clone(nativeCaps);
36
36
  for (const codec of caps.codecs ?? []) {
37
37
  // Rename numChannels to channels.
38
- // @ts-ignore
38
+ // @ts-expect-error --- On purpose.
39
39
  codec.channels = codec.numChannels;
40
- // @ts-ignore
40
+ // @ts-expect-error --- On purpose.
41
41
  delete codec.numChannels;
42
42
  // Add mimeType.
43
- // @ts-ignore (due to codec.name).
44
- codec.mimeType = codec.mimeType || `${codec.kind}/${codec.name}`;
43
+ // @ts-expect-error --- On purpose (due to codec.name).
44
+ codec.mimeType = codec.mimeType ?? `${codec.kind}/${codec.name}`;
45
45
  // NOTE: Edge sets some numeric parameters as string rather than number. Fix them.
46
46
  if (codec.parameters) {
47
47
  const parameters = codec.parameters;
@@ -53,7 +53,7 @@ function getCapabilities() {
53
53
  }
54
54
  }
55
55
  // Delete emty parameter String in rtcpFeedback.
56
- for (const feedback of codec.rtcpFeedback || []) {
56
+ for (const feedback of codec.rtcpFeedback ?? []) {
57
57
  if (!feedback.parameter) {
58
58
  feedback.parameter = '';
59
59
  }
@@ -68,25 +68,25 @@ function mangleRtpParameters(rtpParameters) {
68
68
  const params = utils.clone(rtpParameters);
69
69
  // Rename mid to muxId.
70
70
  if (params.mid) {
71
- // @ts-ignore (due to muxId).
71
+ // @ts-expect-error --- On purpose (due to muxId).
72
72
  params.muxId = params.mid;
73
73
  delete params.mid;
74
74
  }
75
75
  for (const codec of params.codecs) {
76
76
  // Rename channels to numChannels.
77
77
  if (codec.channels) {
78
- // @ts-ignore.
78
+ // @ts-expect-error --- On purpose.
79
79
  codec.numChannels = codec.channels;
80
80
  delete codec.channels;
81
81
  }
82
82
  // Add codec.name (requried by Edge).
83
- // @ts-ignore (due to name).
83
+ // @ts-expect-error --- On purpose (due to name).
84
84
  if (codec.mimeType && !codec.name) {
85
- // @ts-ignore (due to name).
85
+ // @ts-expect-error --- On purpose (due to name).
86
86
  codec.name = codec.mimeType.split('/')[1];
87
87
  }
88
88
  // Remove mimeType.
89
- // @ts-ignore
89
+ // @ts-expect-error --- On purpose.
90
90
  delete codec.mimeType;
91
91
  }
92
92
  return params;
@@ -5,7 +5,7 @@ exports.addNackSuppportForOpus = addNackSuppportForOpus;
5
5
  * This function adds RTCP NACK support for OPUS codec in given capabilities.
6
6
  */
7
7
  function addNackSuppportForOpus(rtpCapabilities) {
8
- for (const codec of rtpCapabilities.codecs || []) {
8
+ for (const codec of rtpCapabilities.codecs ?? []) {
9
9
  if ((codec.mimeType.toLowerCase() === 'audio/opus' ||
10
10
  codec.mimeType.toLowerCase() === 'audio/multiopus') &&
11
11
  !codec.rtcpFeedback?.some(fb => fb.type === 'nack' && !fb.parameter)) {
@@ -1 +1 @@
1
- {"version":3,"file":"MediaSection.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/MediaSection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MediaSection.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/MediaSection.ts"],"names":[],"mappings":"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"}
@@ -212,7 +212,7 @@ class AnswerMediaSection extends MediaSection {
212
212
  this._mediaObject.ext = [];
213
213
  for (const ext of answerRtpParameters.headerExtensions) {
214
214
  // Don't add a header extension if not present in the offer.
215
- const found = (offerMediaObject.ext || []).some((localExt) => localExt.uri === ext.uri);
215
+ const found = (offerMediaObject.ext ?? []).some((localExt) => localExt.uri === ext.uri);
216
216
  if (!found) {
217
217
  continue;
218
218
  }
@@ -233,7 +233,7 @@ class AnswerMediaSection extends MediaSection {
233
233
  list1: offerMediaObject.simulcast.list1,
234
234
  };
235
235
  this._mediaObject.rids = [];
236
- for (const rid of offerMediaObject.rids || []) {
236
+ for (const rid of offerMediaObject.rids ?? []) {
237
237
  if (rid.direction !== 'send') {
238
238
  continue;
239
239
  }
@@ -245,12 +245,11 @@ class AnswerMediaSection extends MediaSection {
245
245
  }
246
246
  // Simulcast (draft version 03).
247
247
  else if (offerMediaObject.simulcast_03) {
248
- // eslint-disable-next-line camelcase
249
248
  this._mediaObject.simulcast_03 = {
250
249
  value: offerMediaObject.simulcast_03.value.replace(/send/g, 'recv'),
251
250
  };
252
251
  this._mediaObject.rids = [];
253
- for (const rid of offerMediaObject.rids || []) {
252
+ for (const rid of offerMediaObject.rids ?? []) {
254
253
  if (rid.direction !== 'send') {
255
254
  continue;
256
255
  }
@@ -307,7 +306,7 @@ class AnswerMediaSection extends MediaSection {
307
306
  this._mediaObject.direction = 'recvonly';
308
307
  }
309
308
  muxSimulcastStreams(encodings) {
310
- if (!this._mediaObject.simulcast || !this._mediaObject.simulcast.list1) {
309
+ if (!this._mediaObject.simulcast?.list1) {
311
310
  return;
312
311
  }
313
312
  const layers = {};
@@ -360,7 +359,7 @@ class OfferMediaSection extends MediaSection {
360
359
  this._mediaObject.rtcpFb = [];
361
360
  this._mediaObject.fmtp = [];
362
361
  if (!this._planB) {
363
- this._mediaObject.msid = `${streamId || '-'} ${trackId}`;
362
+ this._mediaObject.msid = `${streamId ?? '-'} ${trackId}`;
364
363
  }
365
364
  for (const codec of offerRtpParameters.codecs) {
366
365
  const rtp = {
@@ -407,7 +406,7 @@ class OfferMediaSection extends MediaSection {
407
406
  this._mediaObject.rtcpRsize = 'rtcp-rsize';
408
407
  const encoding = offerRtpParameters.encodings[0];
409
408
  const ssrc = encoding.ssrc;
410
- const rtxSsrc = encoding.rtx && encoding.rtx.ssrc ? encoding.rtx.ssrc : undefined;
409
+ const rtxSsrc = encoding.rtx?.ssrc;
411
410
  this._mediaObject.ssrcs = [];
412
411
  this._mediaObject.ssrcGroups = [];
413
412
  if (offerRtpParameters.rtcp.cname) {
@@ -421,7 +420,7 @@ class OfferMediaSection extends MediaSection {
421
420
  this._mediaObject.ssrcs.push({
422
421
  id: ssrc,
423
422
  attribute: 'msid',
424
- value: `${streamId || '-'} ${trackId}`,
423
+ value: `${streamId ?? '-'} ${trackId}`,
425
424
  });
426
425
  }
427
426
  if (rtxSsrc) {
@@ -436,7 +435,7 @@ class OfferMediaSection extends MediaSection {
436
435
  this._mediaObject.ssrcs.push({
437
436
  id: rtxSsrc,
438
437
  attribute: 'msid',
439
- value: `${streamId || '-'} ${trackId}`,
438
+ value: `${streamId ?? '-'} ${trackId}`,
440
439
  });
441
440
  }
442
441
  // Associate original and retransmission SSRCs.
@@ -478,7 +477,7 @@ class OfferMediaSection extends MediaSection {
478
477
  planBReceive({ offerRtpParameters, streamId, trackId, }) {
479
478
  const encoding = offerRtpParameters.encodings[0];
480
479
  const ssrc = encoding.ssrc;
481
- const rtxSsrc = encoding.rtx && encoding.rtx.ssrc ? encoding.rtx.ssrc : undefined;
480
+ const rtxSsrc = encoding.rtx?.ssrc;
482
481
  const payloads = this._mediaObject.payloads.split(' ');
483
482
  for (const codec of offerRtpParameters.codecs) {
484
483
  if (payloads.includes(String(codec.payloadType))) {
@@ -529,7 +528,7 @@ class OfferMediaSection extends MediaSection {
529
528
  this._mediaObject.ssrcs.push({
530
529
  id: ssrc,
531
530
  attribute: 'msid',
532
- value: `${streamId || '-'} ${trackId}`,
531
+ value: `${streamId ?? '-'} ${trackId}`,
533
532
  });
534
533
  if (rtxSsrc) {
535
534
  if (offerRtpParameters.rtcp.cname) {
@@ -542,7 +541,7 @@ class OfferMediaSection extends MediaSection {
542
541
  this._mediaObject.ssrcs.push({
543
542
  id: rtxSsrc,
544
543
  attribute: 'msid',
545
- value: `${streamId || '-'} ${trackId}`,
544
+ value: `${streamId ?? '-'} ${trackId}`,
546
545
  });
547
546
  // Associate original and retransmission SSRCs.
548
547
  this._mediaObject.ssrcGroups.push({
@@ -554,7 +553,7 @@ class OfferMediaSection extends MediaSection {
554
553
  planBStopReceiving({ offerRtpParameters, }) {
555
554
  const encoding = offerRtpParameters.encodings[0];
556
555
  const ssrc = encoding.ssrc;
557
- const rtxSsrc = encoding.rtx && encoding.rtx.ssrc ? encoding.rtx.ssrc : undefined;
556
+ const rtxSsrc = encoding.rtx?.ssrc;
558
557
  this._mediaObject.ssrcs = this._mediaObject.ssrcs.filter((s) => s.id !== ssrc && s.id !== rtxSsrc);
559
558
  if (rtxSsrc) {
560
559
  this._mediaObject.ssrcGroups = this._mediaObject.ssrcGroups.filter((group) => group.ssrcs !== `${ssrc} ${rtxSsrc}`);
@@ -55,7 +55,7 @@ class RemoteSdp {
55
55
  media: [],
56
56
  };
57
57
  // If ICE parameters are given, add ICE-Lite indicator.
58
- if (iceParameters && iceParameters.iceLite) {
58
+ if (iceParameters?.iceLite) {
59
59
  this._sdpObject.icelite = 'ice-lite';
60
60
  }
61
61
  // If DTLS parameters are given, assume WebRTC and BUNDLE.
@@ -82,7 +82,7 @@ function extractRtpCapabilities({ sdpObject, }) {
82
82
  continue;
83
83
  }
84
84
  // Specials case to convert parameter value to string.
85
- if (parameters && parameters.hasOwnProperty('profile-level-id')) {
85
+ if (parameters?.hasOwnProperty('profile-level-id')) {
86
86
  parameters['profile-level-id'] = String(parameters['profile-level-id']);
87
87
  }
88
88
  codec.parameters = parameters;
@@ -1 +1 @@
1
- {"version":3,"file":"planBUtils.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/planBUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAgB,eAAe,CAAC,EAC/B,gBAAgB,EAChB,KAAK,GACL,EAAE;IACF,gBAAgB,EAAE,GAAG,CAAC;IACtB,KAAK,EAAE,gBAAgB,CAAC;CACxB,GAAG,qBAAqB,EAAE,CAyE1B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EAClC,gBAAgB,EAChB,KAAK,EACL,UAAU,GACV,EAAE;IACF,gBAAgB,EAAE,GAAG,CAAC;IACtB,KAAK,EAAE,gBAAgB,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACnB,GAAG,IAAI,CAqHP"}
1
+ {"version":3,"file":"planBUtils.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/planBUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAgB,eAAe,CAAC,EAC/B,gBAAgB,EAChB,KAAK,GACL,EAAE;IACF,gBAAgB,EAAE,GAAG,CAAC;IACtB,KAAK,EAAE,gBAAgB,CAAC;CACxB,GAAG,qBAAqB,EAAE,CAyE1B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EAClC,gBAAgB,EAChB,KAAK,EACL,UAAU,GACV,EAAE;IACF,gBAAgB,EAAE,GAAG,CAAC;IACtB,KAAK,EAAE,gBAAgB,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACnB,GAAG,IAAI,CAmHP"}
@@ -117,8 +117,7 @@ function addLegacySimulcast({ offerMediaObject, track, numStreams, }) {
117
117
  semantics: 'SIM',
118
118
  ssrcs: ssrcs.join(' '),
119
119
  });
120
- for (let i = 0; i < ssrcs.length; ++i) {
121
- const ssrc = ssrcs[i];
120
+ for (const ssrc of ssrcs) {
122
121
  offerMediaObject.ssrcs.push({
123
122
  id: ssrc,
124
123
  attribute: 'cname',
@@ -1 +1 @@
1
- {"version":3,"file":"unifiedPlanUtils.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/unifiedPlanUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAgB,eAAe,CAAC,EAC/B,gBAAgB,GAChB,EAAE;IACF,gBAAgB,EAAE,GAAG,CAAC;CACtB,GAAG,qBAAqB,EAAE,CAyD1B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EAClC,gBAAgB,EAChB,UAAU,GACV,EAAE;IACF,gBAAgB,EAAE,GAAG,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACnB,GAAG,IAAI,CAoGP"}
1
+ {"version":3,"file":"unifiedPlanUtils.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/unifiedPlanUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAgB,eAAe,CAAC,EAC/B,gBAAgB,GAChB,EAAE;IACF,gBAAgB,EAAE,GAAG,CAAC;CACtB,GAAG,qBAAqB,EAAE,CAyD1B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EAClC,gBAAgB,EAChB,UAAU,GACV,EAAE;IACF,gBAAgB,EAAE,GAAG,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACnB,GAAG,IAAI,CAkGP"}
@@ -58,7 +58,7 @@ function addLegacySimulcast({ offerMediaObject, numStreams, }) {
58
58
  throw new Error('a=ssrc line with msid information not found');
59
59
  }
60
60
  const [streamId, trackId] = ssrcMsidLine.value.split(' ');
61
- const firstSsrc = ssrcMsidLine.id;
61
+ const firstSsrc = Number(ssrcMsidLine.id);
62
62
  let firstRtxSsrc;
63
63
  // Get the SSRC for RTX.
64
64
  (offerMediaObject.ssrcGroups || []).some((line) => {
@@ -93,8 +93,7 @@ function addLegacySimulcast({ offerMediaObject, numStreams, }) {
93
93
  semantics: 'SIM',
94
94
  ssrcs: ssrcs.join(' '),
95
95
  });
96
- for (let i = 0; i < ssrcs.length; ++i) {
97
- const ssrc = ssrcs[i];
96
+ for (const ssrc of ssrcs) {
98
97
  offerMediaObject.ssrcs.push({
99
98
  id: ssrc,
100
99
  attribute: 'cname',
package/lib/index.d.ts CHANGED
@@ -8,7 +8,7 @@ export { types };
8
8
  /**
9
9
  * Expose mediasoup-client version.
10
10
  */
11
- export declare const version = "3.7.14";
11
+ export declare const version = "3.7.16";
12
12
  /**
13
13
  * Expose Device class and detectDevice() helper.
14
14
  */
package/lib/index.js CHANGED
@@ -37,7 +37,7 @@ exports.types = types;
37
37
  /**
38
38
  * Expose mediasoup-client version.
39
39
  */
40
- exports.version = '3.7.14';
40
+ exports.version = '3.7.16';
41
41
  /**
42
42
  * Expose parseScalabilityMode() function.
43
43
  */
package/lib/ortc.js CHANGED
@@ -194,11 +194,11 @@ function getExtendedRtpCapabilities(localCaps, remoteCaps) {
194
194
  headerExtensions: [],
195
195
  };
196
196
  // Match media codecs and keep the order preferred by remoteCaps.
197
- for (const remoteCodec of remoteCaps.codecs || []) {
197
+ for (const remoteCodec of remoteCaps.codecs ?? []) {
198
198
  if (isRtxCodec(remoteCodec)) {
199
199
  continue;
200
200
  }
201
- const matchingLocalCodec = (localCaps.codecs || []).find((localCodec) => matchCodecs(localCodec, remoteCodec, { strict: true, modify: true }));
201
+ const matchingLocalCodec = (localCaps.codecs ?? []).find((localCodec) => matchCodecs(localCodec, remoteCodec, { strict: true, modify: true }));
202
202
  if (!matchingLocalCodec) {
203
203
  continue;
204
204
  }
@@ -433,17 +433,17 @@ function getSendingRemoteRtpParameters(kind, extendedRtpCapabilities) {
433
433
  if (rtpParameters.headerExtensions.some(ext => ext.uri ===
434
434
  'http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01')) {
435
435
  for (const codec of rtpParameters.codecs) {
436
- codec.rtcpFeedback = (codec.rtcpFeedback || []).filter((fb) => fb.type !== 'goog-remb');
436
+ codec.rtcpFeedback = (codec.rtcpFeedback ?? []).filter((fb) => fb.type !== 'goog-remb');
437
437
  }
438
438
  }
439
439
  else if (rtpParameters.headerExtensions.some(ext => ext.uri === 'http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time')) {
440
440
  for (const codec of rtpParameters.codecs) {
441
- codec.rtcpFeedback = (codec.rtcpFeedback || []).filter(fb => fb.type !== 'transport-cc');
441
+ codec.rtcpFeedback = (codec.rtcpFeedback ?? []).filter(fb => fb.type !== 'transport-cc');
442
442
  }
443
443
  }
444
444
  else {
445
445
  for (const codec of rtpParameters.codecs) {
446
- codec.rtcpFeedback = (codec.rtcpFeedback || []).filter((fb) => fb.type !== 'transport-cc' && fb.type !== 'goog-remb');
446
+ codec.rtcpFeedback = (codec.rtcpFeedback ?? []).filter((fb) => fb.type !== 'transport-cc' && fb.type !== 'goog-remb');
447
447
  }
448
448
  }
449
449
  return rtpParameters;
@@ -893,8 +893,8 @@ function matchHeaderExtensions(aExt, bExt) {
893
893
  }
894
894
  function reduceRtcpFeedback(codecA, codecB) {
895
895
  const reducedRtcpFeedback = [];
896
- for (const aFb of codecA.rtcpFeedback || []) {
897
- const matchingBFb = (codecB.rtcpFeedback || []).find((bFb) => bFb.type === aFb.type &&
896
+ for (const aFb of codecA.rtcpFeedback ?? []) {
897
+ const matchingBFb = (codecB.rtcpFeedback ?? []).find((bFb) => bFb.type === aFb.type &&
898
898
  (bFb.parameter === aFb.parameter || (!bFb.parameter && !aFb.parameter)));
899
899
  if (matchingBFb) {
900
900
  reducedRtcpFeedback.push(matchingBFb);
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parse = parse;
4
4
  const ScalabilityModeRegex = new RegExp('^[LS]([1-9]\\d{0,1})T([1-9]\\d{0,1})');
5
5
  function parse(scalabilityMode) {
6
- const match = ScalabilityModeRegex.exec(scalabilityMode || '');
6
+ const match = ScalabilityModeRegex.exec(scalabilityMode ?? '');
7
7
  if (match) {
8
8
  return {
9
9
  spatialLayers: Number(match[1]),