mediasoup-client 3.6.100 → 3.6.101

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.
package/lib/Device.js CHANGED
@@ -313,7 +313,7 @@ class Device {
313
313
  */
314
314
  async load({ routerRtpCapabilities }) {
315
315
  logger.debug('load() [routerRtpCapabilities:%o]', routerRtpCapabilities);
316
- routerRtpCapabilities = utils.clone(routerRtpCapabilities, undefined);
316
+ routerRtpCapabilities = utils.clone(routerRtpCapabilities);
317
317
  // Temporal handler to get its capabilities.
318
318
  let handler;
319
319
  try {
package/lib/Transport.js CHANGED
@@ -95,7 +95,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
95
95
  this._maxSctpMessageSize =
96
96
  sctpParameters ? sctpParameters.maxMessageSize : null;
97
97
  // Clone and sanitize additionalSettings.
98
- additionalSettings = utils.clone(additionalSettings, {});
98
+ additionalSettings = utils.clone(additionalSettings) || {};
99
99
  delete additionalSettings.iceServers;
100
100
  delete additionalSettings.iceTransportPolicy;
101
101
  delete additionalSettings.bundlePolicy;
@@ -374,7 +374,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
374
374
  */
375
375
  async consume({ id, producerId, kind, rtpParameters, streamId, appData = {} }) {
376
376
  logger.debug('consume()');
377
- rtpParameters = utils.clone(rtpParameters, undefined);
377
+ rtpParameters = utils.clone(rtpParameters);
378
378
  if (this._closed) {
379
379
  throw new errors_1.InvalidStateError('closed');
380
380
  }
@@ -485,7 +485,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
485
485
  */
486
486
  async consumeData({ id, dataProducerId, sctpStreamParameters, label = '', protocol = '', appData = {} }) {
487
487
  logger.debug('consumeData()');
488
- sctpStreamParameters = utils.clone(sctpStreamParameters, undefined);
488
+ sctpStreamParameters = utils.clone(sctpStreamParameters);
489
489
  if (this._closed) {
490
490
  throw new errors_1.InvalidStateError('closed');
491
491
  }
@@ -243,11 +243,11 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
243
243
  encoding.scalabilityMode = `L1T${maxTemporalLayers}`;
244
244
  }
245
245
  }
246
- const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind], {});
246
+ const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
247
247
  // This may throw.
248
248
  sendingRtpParameters.codecs =
249
249
  ortc.reduceCodecs(sendingRtpParameters.codecs, codec);
250
- const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind], {});
250
+ const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
251
251
  // This may throw.
252
252
  sendingRemoteRtpParameters.codecs =
253
253
  ortc.reduceCodecs(sendingRemoteRtpParameters.codecs, codec);
@@ -219,10 +219,10 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
219
219
  let offer = await this._pc.createOffer();
220
220
  let localSdpObject = sdpTransform.parse(offer.sdp);
221
221
  let offerMediaObject;
222
- const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind], {});
222
+ const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
223
223
  sendingRtpParameters.codecs =
224
224
  ortc.reduceCodecs(sendingRtpParameters.codecs);
225
- const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind], {});
225
+ const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
226
226
  sendingRemoteRtpParameters.codecs =
227
227
  ortc.reduceCodecs(sendingRemoteRtpParameters.codecs);
228
228
  if (!this._transportReady) {
@@ -218,10 +218,10 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
218
218
  let offer = await this._pc.createOffer();
219
219
  let localSdpObject = sdpTransform.parse(offer.sdp);
220
220
  let offerMediaObject;
221
- const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind], {});
221
+ const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
222
222
  sendingRtpParameters.codecs =
223
223
  ortc.reduceCodecs(sendingRtpParameters.codecs);
224
- const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind], {});
224
+ const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
225
225
  sendingRemoteRtpParameters.codecs =
226
226
  ortc.reduceCodecs(sendingRemoteRtpParameters.codecs);
227
227
  if (!this._transportReady) {
@@ -204,11 +204,11 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
204
204
  async send({ track, encodings, codecOptions, codec }) {
205
205
  this.assertSendDirection();
206
206
  logger.debug('send() [kind:%s, track.id:%s]', track.kind, track.id);
207
- const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind], {});
207
+ const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
208
208
  // This may throw.
209
209
  sendingRtpParameters.codecs =
210
210
  ortc.reduceCodecs(sendingRtpParameters.codecs, codec);
211
- const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind], {});
211
+ const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
212
212
  // This may throw.
213
213
  sendingRemoteRtpParameters.codecs =
214
214
  ortc.reduceCodecs(sendingRemoteRtpParameters.codecs, codec);
@@ -223,11 +223,11 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
223
223
  encoding.rid = `r${idx}`;
224
224
  });
225
225
  }
226
- const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind], {});
226
+ const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
227
227
  // This may throw.
228
228
  sendingRtpParameters.codecs =
229
229
  ortc.reduceCodecs(sendingRtpParameters.codecs, codec);
230
- const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind], {});
230
+ const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
231
231
  // This may throw.
232
232
  sendingRemoteRtpParameters.codecs =
233
233
  ortc.reduceCodecs(sendingRemoteRtpParameters.codecs, codec);
@@ -145,7 +145,7 @@ class Edge11 extends HandlerInterface_1.HandlerInterface {
145
145
  }
146
146
  logger.debug('send() | calling new RTCRtpSender()');
147
147
  const rtpSender = new RTCRtpSender(track, this._dtlsTransport);
148
- const rtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind], {});
148
+ const rtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
149
149
  rtpParameters.codecs = ortc.reduceCodecs(rtpParameters.codecs, codec);
150
150
  const useRtx = rtpParameters.codecs
151
151
  .some((_codec) => /.+\/rtx$/i.test(_codec.mimeType));
@@ -139,7 +139,7 @@ class FakeHandler extends HandlerInterface_1.HandlerInterface {
139
139
  if (!this._transportReady) {
140
140
  await this.setupTransport({ localDtlsRole: 'server' });
141
141
  }
142
- const rtpParameters = utils.clone(this._rtpParametersByKind[track.kind], {});
142
+ const rtpParameters = utils.clone(this._rtpParametersByKind[track.kind]);
143
143
  const useRtx = rtpParameters.codecs
144
144
  .some((_codec) => /.+\/rtx$/i.test(_codec.mimeType));
145
145
  rtpParameters.mid = `mid-${utils.generateRandomNumber()}`;
@@ -293,7 +293,7 @@ class FakeHandler extends HandlerInterface_1.HandlerInterface {
293
293
  async setupTransport({ localDtlsRole,
294
294
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
295
295
  localSdpObject }) {
296
- const dtlsParameters = utils.clone(this.fakeParameters.generateLocalDtlsParameters(), {});
296
+ const dtlsParameters = utils.clone(this.fakeParameters.generateLocalDtlsParameters());
297
297
  // Set our DTLS role.
298
298
  if (localDtlsRole) {
299
299
  dtlsParameters.role = localDtlsRole;
@@ -1 +1 @@
1
- {"version":3,"file":"Firefox60.d.ts","sourceRoot":"","sources":["../../src/handlers/Firefox60.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Firefox60.d.ts","sourceRoot":"","sources":["../../src/handlers/Firefox60.ts"],"names":[],"mappings":"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"}
@@ -238,7 +238,7 @@ class Firefox60 extends HandlerInterface_1.HandlerInterface {
238
238
  this.assertSendDirection();
239
239
  logger.debug('send() [kind:%s, track.id:%s]', track.kind, track.id);
240
240
  if (encodings) {
241
- encodings = utils.clone(encodings, []);
241
+ encodings = utils.clone(encodings);
242
242
  if (encodings.length > 1) {
243
243
  encodings.forEach((encoding, idx) => {
244
244
  encoding.rid = `r${idx}`;
@@ -248,11 +248,11 @@ class Firefox60 extends HandlerInterface_1.HandlerInterface {
248
248
  encodings.reverse();
249
249
  }
250
250
  }
251
- const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind], {});
251
+ const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
252
252
  // This may throw.
253
253
  sendingRtpParameters.codecs =
254
254
  ortc.reduceCodecs(sendingRtpParameters.codecs, codec);
255
- const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind], {});
255
+ const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
256
256
  // This may throw.
257
257
  sendingRemoteRtpParameters.codecs =
258
258
  ortc.reduceCodecs(sendingRemoteRtpParameters.codecs, codec);
@@ -223,10 +223,10 @@ class ReactNative extends HandlerInterface_1.HandlerInterface {
223
223
  let offer = await this._pc.createOffer();
224
224
  let localSdpObject = sdpTransform.parse(offer.sdp);
225
225
  let offerMediaObject;
226
- const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind], {});
226
+ const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
227
227
  sendingRtpParameters.codecs =
228
228
  ortc.reduceCodecs(sendingRtpParameters.codecs);
229
- const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind], {});
229
+ const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
230
230
  sendingRemoteRtpParameters.codecs =
231
231
  ortc.reduceCodecs(sendingRemoteRtpParameters.codecs);
232
232
  if (!this._transportReady) {
@@ -228,11 +228,11 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
228
228
  encoding.rid = `r${idx}`;
229
229
  });
230
230
  }
231
- const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind], {});
231
+ const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
232
232
  // This may throw.
233
233
  sendingRtpParameters.codecs =
234
234
  ortc.reduceCodecs(sendingRtpParameters.codecs, codec);
235
- const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind], {});
235
+ const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
236
236
  // This may throw.
237
237
  sendingRemoteRtpParameters.codecs =
238
238
  ortc.reduceCodecs(sendingRemoteRtpParameters.codecs, codec);
@@ -217,10 +217,10 @@ class Safari11 extends HandlerInterface_1.HandlerInterface {
217
217
  let offer = await this._pc.createOffer();
218
218
  let localSdpObject = sdpTransform.parse(offer.sdp);
219
219
  let offerMediaObject;
220
- const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind], {});
220
+ const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
221
221
  sendingRtpParameters.codecs =
222
222
  ortc.reduceCodecs(sendingRtpParameters.codecs);
223
- const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind], {});
223
+ const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
224
224
  sendingRemoteRtpParameters.codecs =
225
225
  ortc.reduceCodecs(sendingRemoteRtpParameters.codecs);
226
226
  if (!this._transportReady) {
@@ -217,11 +217,11 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
217
217
  this.assertNotClosed();
218
218
  this.assertSendDirection();
219
219
  logger.debug('send() [kind:%s, track.id:%s]', track.kind, track.id);
220
- const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind], {});
220
+ const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
221
221
  // This may throw.
222
222
  sendingRtpParameters.codecs =
223
223
  ortc.reduceCodecs(sendingRtpParameters.codecs, codec);
224
- const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind], {});
224
+ const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
225
225
  // This may throw.
226
226
  sendingRemoteRtpParameters.codecs =
227
227
  ortc.reduceCodecs(sendingRemoteRtpParameters.codecs, codec);
@@ -1 +1 @@
1
- {"version":3,"file":"edgeUtils.d.ts","sourceRoot":"","sources":["../../../src/handlers/ortc/edgeUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAErE;;;GAGG;AACH,wBAAgB,eAAe,IAAI,eAAe,CAyCjD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,aAAa,GAAG,aAAa,CA+B/E"}
1
+ {"version":3,"file":"edgeUtils.d.ts","sourceRoot":"","sources":["../../../src/handlers/ortc/edgeUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAErE;;;GAGG;AACH,wBAAgB,eAAe,IAAI,eAAe,CA4CjD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,aAAa,GAAG,aAAa,CAoC/E"}
@@ -31,12 +31,15 @@ const utils = __importStar(require("../../utils"));
31
31
  */
32
32
  function getCapabilities() {
33
33
  const nativeCaps = RTCRtpReceiver.getCapabilities();
34
- const caps = utils.clone(nativeCaps, {});
35
- for (const codec of caps.codecs) {
34
+ const caps = utils.clone(nativeCaps);
35
+ for (const codec of caps.codecs ?? []) {
36
36
  // Rename numChannels to channels.
37
+ // @ts-ignore
37
38
  codec.channels = codec.numChannels;
39
+ // @ts-ignore
38
40
  delete codec.numChannels;
39
41
  // Add mimeType.
42
+ // @ts-ignore (due to codec.name).
40
43
  codec.mimeType = codec.mimeType || `${codec.kind}/${codec.name}`;
41
44
  // NOTE: Edge sets some numeric parameters as string rather than number. Fix them.
42
45
  if (codec.parameters) {
@@ -62,23 +65,28 @@ exports.getCapabilities = getCapabilities;
62
65
  * Generate RTCRtpParameters as ORTC based Edge likes.
63
66
  */
64
67
  function mangleRtpParameters(rtpParameters) {
65
- const params = utils.clone(rtpParameters, {});
68
+ const params = utils.clone(rtpParameters);
66
69
  // Rename mid to muxId.
67
70
  if (params.mid) {
71
+ // @ts-ignore (due to muxId).
68
72
  params.muxId = params.mid;
69
73
  delete params.mid;
70
74
  }
71
75
  for (const codec of params.codecs) {
72
76
  // Rename channels to numChannels.
73
77
  if (codec.channels) {
78
+ // @ts-ignore.
74
79
  codec.numChannels = codec.channels;
75
80
  delete codec.channels;
76
81
  }
77
82
  // Add codec.name (requried by Edge).
83
+ // @ts-ignore (due to name).
78
84
  if (codec.mimeType && !codec.name) {
85
+ // @ts-ignore (due to name).
79
86
  codec.name = codec.mimeType.split('/')[1];
80
87
  }
81
88
  // Remove mimeType.
89
+ // @ts-ignore
82
90
  delete codec.mimeType;
83
91
  }
84
92
  return params;
@@ -126,8 +126,8 @@ class AnswerMediaSection extends MediaSection {
126
126
  rtp.encoding = codec.channels;
127
127
  }
128
128
  this._mediaObject.rtp.push(rtp);
129
- const codecParameters = utils.clone(codec.parameters, {});
130
- let codecRtcpFeedback = utils.clone(codec.rtcpFeedback, []);
129
+ const codecParameters = utils.clone(codec.parameters) ?? {};
130
+ let codecRtcpFeedback = utils.clone(codec.rtcpFeedback) ?? [];
131
131
  if (codecOptions) {
132
132
  const { opusStereo, opusFec, opusDtx, opusMaxPlaybackRate, opusMaxAverageBitrate, opusPtime, opusNack, videoGoogleStartBitrate, videoGoogleMaxBitrate, videoGoogleMinBitrate } = codecOptions;
133
133
  const offerCodec = offerRtpParameters.codecs
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.6.100";
11
+ export declare const version = "3.6.101";
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.6.100';
40
+ exports.version = '3.6.101';
41
41
  /**
42
42
  * Expose parseScalabilityMode() function.
43
43
  */
package/lib/ortc.js CHANGED
@@ -815,7 +815,7 @@ exports.reduceCodecs = reduceCodecs;
815
815
  */
816
816
  function generateProbatorRtpParameters(videoRtpParameters) {
817
817
  // Clone given reference video RTP parameters.
818
- videoRtpParameters = utils.clone(videoRtpParameters, {});
818
+ videoRtpParameters = utils.clone(videoRtpParameters);
819
819
  // This may throw.
820
820
  validateRtpParameters(videoRtpParameters);
821
821
  const rtpParameters = {
package/lib/tests/test.js CHANGED
@@ -99,8 +99,9 @@ test('device.load() without routerRtpCapabilities rejects with TypeError', async
99
99
  }, 500);
100
100
  test('device.load() with invalid routerRtpCapabilities rejects with TypeError', async () => {
101
101
  // Clonse fake router RTP capabilities to make them invalid.
102
- const routerRtpCapabilities = utils.clone(fakeParameters.generateRouterRtpCapabilities(), {});
102
+ const routerRtpCapabilities = utils.clone(fakeParameters.generateRouterRtpCapabilities());
103
103
  for (const codec of routerRtpCapabilities.codecs) {
104
+ // @ts-ignore
104
105
  delete codec.mimeType;
105
106
  }
106
107
  await expect(device.load({ routerRtpCapabilities }))
package/lib/utils.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Clones the given data.
2
+ * Clones the given value.
3
3
  */
4
- export declare function clone(data: any, defaultValue: any): any;
4
+ export declare function clone<T>(value: T): T;
5
5
  /**
6
6
  * Generates a random positive integer.
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,GAAG,GAAG,CAQvD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAG7C"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAmBpC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAG7C"}
package/lib/utils.js CHANGED
@@ -2,13 +2,22 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateRandomNumber = exports.clone = void 0;
4
4
  /**
5
- * Clones the given data.
5
+ * Clones the given value.
6
6
  */
7
- function clone(data, defaultValue) {
8
- if (typeof data === 'undefined') {
9
- return defaultValue;
7
+ function clone(value) {
8
+ if (value === undefined) {
9
+ return undefined;
10
+ }
11
+ else if (Number.isNaN(value)) {
12
+ return NaN;
13
+ }
14
+ else if (typeof structuredClone === 'function') {
15
+ // Available in Node >= 18.
16
+ return structuredClone(value);
17
+ }
18
+ else {
19
+ return JSON.parse(JSON.stringify(value));
10
20
  }
11
- return JSON.parse(JSON.stringify(data));
12
21
  }
13
22
  exports.clone = clone;
14
23
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mediasoup-client",
3
- "version": "3.6.100",
3
+ "version": "3.6.101",
4
4
  "description": "mediasoup client side JavaScript library",
5
5
  "contributors": [
6
6
  "Iñaki Baz Castillo <ibc@aliax.net> (https://inakibaz.me)",
@@ -58,6 +58,9 @@
58
58
  }
59
59
  ]
60
60
  },
61
+ "coveragePathIgnorePatterns": [
62
+ "src/tests"
63
+ ],
61
64
  "cacheDirectory": ".cache/jest"
62
65
  },
63
66
  "dependencies": {
@@ -70,18 +73,18 @@
70
73
  "queue-microtask": "^1.2.3",
71
74
  "sdp-transform": "^2.14.1",
72
75
  "supports-color": "^9.4.0",
73
- "ua-parser-js": "^1.0.35"
76
+ "ua-parser-js": "^1.0.36"
74
77
  },
75
78
  "devDependencies": {
76
79
  "@types/events": "^3.0.0",
77
- "@types/jest": "^29.5.4",
80
+ "@types/jest": "^29.5.5",
78
81
  "@types/sdp-transform": "^2.4.6",
79
- "@types/ua-parser-js": "^0.7.36",
80
- "@typescript-eslint/eslint-plugin": "^6.4.1",
81
- "@typescript-eslint/parser": "^6.4.1",
82
- "eslint": "^8.48.0",
83
- "eslint-plugin-jest": "^27.2.3",
84
- "jest": "^29.6.4",
82
+ "@types/ua-parser-js": "^0.7.37",
83
+ "@typescript-eslint/eslint-plugin": "^6.7.2",
84
+ "@typescript-eslint/parser": "^6.7.2",
85
+ "eslint": "^8.49.0",
86
+ "eslint-plugin-jest": "^27.4.0",
87
+ "jest": "^29.7.0",
85
88
  "open-cli": "^7.2.0",
86
89
  "ts-jest": "^29.1.1",
87
90
  "typescript": "^5.2.2"