mediasoup-client 3.18.1 → 3.18.3

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.
@@ -256,7 +256,7 @@ class Chrome111 extends enhancedEvents_1.EnhancedEventEmitter {
256
256
  localSdpObject,
257
257
  });
258
258
  }
259
- // Optimize. Only generate new offer if needed.
259
+ // Optimize. Only generate a new offer if needed.
260
260
  if (headerExtensionOptions?.absCaptureTime) {
261
261
  const offerMediaObject = localSdpObject.media[mediaSectionIdx.idx];
262
262
  sdpCommonUtils.addHeaderExtension({
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/handlers/ortc/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,eAAe,EACf,SAAS,EACT,qBAAqB,EACrB,2BAA2B,EAC3B,MAAM,qBAAqB,CAAC;AAE7B;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI,CAc5E;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACxC,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE;IAChB,GAAG,EAAE,qBAAqB,CAAC;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,2BAA2B,CAAC;CACvC,GACC,IAAI,CAmCN;AAED,wBAAgB,yBAAyB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,CAgBA"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/handlers/ortc/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,eAAe,EACf,SAAS,EACT,qBAAqB,EACrB,2BAA2B,EAC3B,MAAM,qBAAqB,CAAC;AAE7B;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI,CAc5E;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACxC,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE;IAChB,GAAG,EAAE,qBAAqB,CAAC;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,2BAA2B,CAAC;CACvC,GACC,IAAI,CA6CN;AAED,wBAAgB,yBAAyB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,CAgBA"}
@@ -22,18 +22,30 @@ function addNackSupportForOpus(rtpCapabilities) {
22
22
  * This function adds the given RTP header extension to given capabilities.
23
23
  */
24
24
  function addHeaderExtensionSupport(rtpCapabilities, headerExtension) {
25
- if (rtpCapabilities.headerExtensions?.some(exten => exten.kind === headerExtension.kind && exten.uri === headerExtension.uri)) {
26
- return;
25
+ let preferredId;
26
+ // Look for an already existing header extension with same `uri`. Don't
27
+ // try to match `kind` since all media sections in a Bundle SDP must share
28
+ // same `id` in extensions with same `uri` (as per spec). So if we are
29
+ // adding an audio extension and there is already a video extension with
30
+ // same `uri`, then reuse its preferred `id`.
31
+ const existingHeaderExtension = rtpCapabilities.headerExtensions?.find(exten => exten.uri === headerExtension.uri);
32
+ if (existingHeaderExtension) {
33
+ if (existingHeaderExtension.kind === headerExtension.kind) {
34
+ return;
35
+ }
36
+ else {
37
+ preferredId = existingHeaderExtension.preferredId;
38
+ }
27
39
  }
28
40
  if (!rtpCapabilities.headerExtensions) {
29
41
  rtpCapabilities.headerExtensions = [];
30
42
  }
31
- const setPreferredIds = new Set(rtpCapabilities.headerExtensions
32
- .filter(exten => exten.uri !== headerExtension.uri)
33
- .map(exten => exten.preferredId));
34
- let preferredId = 1;
35
- while (setPreferredIds.has(preferredId)) {
36
- ++preferredId;
43
+ if (preferredId === undefined) {
44
+ preferredId = 1;
45
+ const setPreferredIds = new Set(rtpCapabilities.headerExtensions.map(exten => exten.preferredId));
46
+ while (setPreferredIds.has(preferredId)) {
47
+ ++preferredId;
48
+ }
37
49
  }
38
50
  const newHeaderExtension = {
39
51
  kind: headerExtension.kind,
@@ -1 +1 @@
1
- {"version":3,"file":"MediaSection.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/MediaSection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,YAAY,MAAM,eAAe,CAAC;AAEnD,OAAO,KAAK,EACX,aAAa,EACb,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,kBAAkB,EAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EACX,SAAS,EACT,aAAa,EAGb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,8BAAsB,YAAY;IAEjC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,gBAAgB,CAAC;gBAEnD,EACX,aAAa,EACb,aAAa,EACb,cAAc,GACd,EAAE;QACF,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;QAC/B,cAAc,CAAC,EAAE,cAAc,CAAC;KAChC;IAmDD,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAE1C,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,SAAS,IAAI,YAAY,CAAC,gBAAgB;IAI1C,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI;IAKpD,KAAK,IAAI,IAAI;IAIb,QAAQ,CAAC,MAAM,IAAI,IAAI;IAEvB,OAAO,IAAI,IAAI;IAYf,KAAK,IAAI,IAAI;CAKb;AAED,qBAAa,kBAAmB,SAAQ,YAAY;gBACvC,EACX,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,GACZ,EAAE;QACF,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;QAC/B,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;QACxC,gBAAgB,EAAE,YAAY,CAAC,gBAAgB,CAAC;QAChD,kBAAkB,CAAC,EAAE,aAAa,CAAC;QACnC,mBAAmB,CAAC,EAAE,aAAa,CAAC;QACpC,YAAY,CAAC,EAAE,oBAAoB,CAAC;KACpC;IAiQD,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAsBjC,MAAM,IAAI,IAAI;IAId,mBAAmB,CAAC,SAAS,EAAE,wBAAwB,EAAE,GAAG,IAAI;CA6BhE;AAED,qBAAa,iBAAkB,SAAQ,YAAY;gBACtC,EACX,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,GAAG,EACH,IAAI,EACJ,kBAAkB,EAClB,QAAQ,EACR,OAAO,GACP,EAAE;QACF,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;QAC/B,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;QACxC,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,SAAS,GAAG,aAAa,CAAC;QAEhC,kBAAkB,CAAC,EAAE,aAAa,CAAC;QACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;KACjB;IA8ID,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAKjC,MAAM,IAAI,IAAI;CAGd"}
1
+ {"version":3,"file":"MediaSection.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/MediaSection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,YAAY,MAAM,eAAe,CAAC;AAEnD,OAAO,KAAK,EACX,aAAa,EACb,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,kBAAkB,EAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EACX,SAAS,EACT,aAAa,EAGb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,8BAAsB,YAAY;IAEjC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,gBAAgB,CAAC;gBAEnD,EACX,aAAa,EACb,aAAa,EACb,cAAc,GACd,EAAE;QACF,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;QAC/B,cAAc,CAAC,EAAE,cAAc,CAAC;KAChC;IAmDD,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAE1C,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,SAAS,IAAI,YAAY,CAAC,gBAAgB;IAI1C,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI;IAKpD,KAAK,IAAI,IAAI;IAIb,QAAQ,CAAC,MAAM,IAAI,IAAI;IAEvB,OAAO,IAAI,IAAI;IAIf,KAAK,IAAI,IAAI;CAuBb;AAED,qBAAa,kBAAmB,SAAQ,YAAY;gBACvC,EACX,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,GACZ,EAAE;QACF,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;QAC/B,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;QACxC,gBAAgB,EAAE,YAAY,CAAC,gBAAgB,CAAC;QAChD,kBAAkB,CAAC,EAAE,aAAa,CAAC;QACnC,mBAAmB,CAAC,EAAE,aAAa,CAAC;QACpC,YAAY,CAAC,EAAE,oBAAoB,CAAC;KACpC;IAiQD,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAsBjC,MAAM,IAAI,IAAI;IAId,mBAAmB,CAAC,SAAS,EAAE,wBAAwB,EAAE,GAAG,IAAI;CA6BhE;AAED,qBAAa,iBAAkB,SAAQ,YAAY;gBACtC,EACX,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,GAAG,EACH,IAAI,EACJ,kBAAkB,EAClB,QAAQ,EACR,OAAO,GACP,EAAE;QACF,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;QAC/B,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;QACxC,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,SAAS,GAAG,aAAa,CAAC;QAEhC,kBAAkB,CAAC,EAAE,aAAa,CAAC;QACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;KACjB;IA8ID,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAKjC,MAAM,IAAI,IAAI;CAGd"}
@@ -64,7 +64,21 @@ class MediaSection {
64
64
  }
65
65
  disable() {
66
66
  this.pause();
67
- delete this._mediaObject.ext;
67
+ }
68
+ close() {
69
+ this.disable();
70
+ // Set port in m= line to 0, which means that the media sction is closed.
71
+ this._mediaObject.port = 0;
72
+ // NOTE: Do not remove header extensions since it's controversial in the spec.
73
+ delete this._mediaObject.candidates;
74
+ delete this._mediaObject.endOfCandidates;
75
+ delete this._mediaObject.iceUfrag;
76
+ delete this._mediaObject.icePwd;
77
+ delete this._mediaObject.iceOptions;
78
+ this._mediaObject.rtp = [];
79
+ this._mediaObject.fmtp = [];
80
+ delete this._mediaObject.rtcp;
81
+ delete this._mediaObject.rtcpFb;
68
82
  delete this._mediaObject.ssrcs;
69
83
  delete this._mediaObject.ssrcGroups;
70
84
  delete this._mediaObject.simulcast;
@@ -72,10 +86,6 @@ class MediaSection {
72
86
  delete this._mediaObject.rids;
73
87
  delete this._mediaObject.extmapAllowMixed;
74
88
  }
75
- close() {
76
- this.disable();
77
- this._mediaObject.port = 0;
78
- }
79
89
  }
80
90
  exports.MediaSection = MediaSection;
81
91
  class AnswerMediaSection extends MediaSection {
package/lib/index.d.ts CHANGED
@@ -6,7 +6,7 @@ export * as types from './types';
6
6
  /**
7
7
  * Expose mediasoup-client version.
8
8
  */
9
- export declare const version = "3.18.1";
9
+ export declare const version = "3.18.3";
10
10
  /**
11
11
  * Expose Device class and device detector helpers.
12
12
  */
package/lib/index.js CHANGED
@@ -10,7 +10,7 @@ exports.types = require("./types");
10
10
  /**
11
11
  * Expose mediasoup-client version.
12
12
  */
13
- exports.version = '3.18.1';
13
+ exports.version = '3.18.3';
14
14
  /**
15
15
  * Expose Device class and device detector helpers.
16
16
  */
package/npm-scripts.mjs CHANGED
@@ -212,8 +212,8 @@ function installDeps() {
212
212
  // Update package-lock.json.
213
213
  executeCmd('npm install --package-lock-only --ignore-scripts');
214
214
 
215
- // Check vulnerabilities in deps (exclude dev deps).
216
- executeCmd('npm audit --omit=dev');
215
+ // Check vulnerabilities in deps.
216
+ executeCmd('npm audit');
217
217
  }
218
218
 
219
219
  function checkRelease() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mediasoup-client",
3
- "version": "3.18.1",
3
+ "version": "3.18.3",
4
4
  "description": "mediasoup client side TypeScript library",
5
5
  "contributors": [
6
6
  "Iñaki Baz Castillo <ibc@aliax.net> (https://inakibaz.me)",
@@ -84,19 +84,19 @@
84
84
  "devDependencies": {
85
85
  "@eslint/js": "^9.39.1",
86
86
  "@types/jest": "^30.0.0",
87
- "@types/node": "^24.10.1",
87
+ "@types/node": "^24.10.2",
88
88
  "@types/sdp-transform": "^2.15.0",
89
89
  "@types/ua-parser-js": "^0.7.39",
90
90
  "eslint": "^9.39.1",
91
91
  "eslint-config-prettier": "^10.1.8",
92
- "eslint-plugin-jest": "^29.1.0",
92
+ "eslint-plugin-jest": "^29.2.1",
93
93
  "eslint-plugin-prettier": "^5.5.4",
94
94
  "globals": "^16.5.0",
95
95
  "jest": "^30.2.0",
96
96
  "open-cli": "^8.0.0",
97
- "prettier": "^3.6.2",
98
- "ts-jest": "^29.4.5",
97
+ "prettier": "^3.7.4",
98
+ "ts-jest": "^29.4.6",
99
99
  "typescript": "^5.9.3",
100
- "typescript-eslint": "^8.47.0"
100
+ "typescript-eslint": "^8.49.0"
101
101
  }
102
102
  }