mediasoup-client 3.6.85 → 3.6.86

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.
@@ -1 +1 @@
1
- {"version":3,"file":"Device.d.ts","sourceRoot":"","sources":["../src/Device.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAoB,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAoB,MAAM,6BAA6B,CAAC;AAY/E,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAIlC,MAAM,MAAM,kBAAkB,GAC3B,WAAW,GACX,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,WAAW,GACX,UAAU,GACV,UAAU,GACV,QAAQ,GACR,wBAAwB,GACxB,aAAa,CAAC;AAEjB,MAAM,MAAM,aAAa,GACzB;IACC;;OAEG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,YAAY,IAAI,kBAAkB,GAAG,SAAS,CA4I7D;AAED,MAAM,MAAM,oBAAoB,GAChC;IACC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC;CAC1B,CAAC;AAEF,qBAAa,MAAM;IAGlB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IAEjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAEtC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,wBAAwB,CAAC,CAAM;IAEvC,OAAO,CAAC,oBAAoB,CAAC,CAAkB;IAG/C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IAErD,OAAO,CAAC,iBAAiB,CAAC,CAAmB;IAE7C,SAAS,CAAC,QAAQ,CAAC,SAAS,6CAAoD;IAEhF;;;;OAIG;gBACS,EAAE,WAAW,EAAE,cAAc,EAAE,OAAO,EAAE,GAAE,aAAkB;IA2GxE;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAGxB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,OAAO,CAGpB;IAED;;;;OAIG;IACH,IAAI,eAAe,IAAI,eAAe,CAQrC;IAED;;;;OAIG;IACH,IAAI,gBAAgB,IAAI,gBAAgB,CAQvC;IAED,IAAI,QAAQ,IAAI,oBAAoB,CAGnC;IAED;;OAEG;IACG,IAAI,CACT,EAAE,qBAAqB,EAAE,EACzB;QAAE,qBAAqB,EAAE,eAAe,CAAA;KAAE,GACxC,OAAO,CAAC,IAAI,CAAC;IAgFhB;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO;IAcpC;;;;;OAKG;IACH,mBAAmB,CAAC,gBAAgB,SAAS,OAAO,GAAG,OAAO,EAC7D,EACC,EAAE,EACF,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,OAAO,EACP,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,GACnC,SAAS,CAAC,gBAAgB,CAAC;IAoB9B;;;;;OAKG;IACH,mBAAmB,CAAC,gBAAgB,SAAS,OAAO,GAAG,OAAO,EAC7D,EACC,EAAE,EACF,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,OAAO,EACP,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,GACnC,SAAS,CAAC,gBAAgB,CAAC;IAoB9B,OAAO,CAAC,eAAe;CAwEvB"}
1
+ {"version":3,"file":"Device.d.ts","sourceRoot":"","sources":["../src/Device.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAoB,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAoB,MAAM,6BAA6B,CAAC;AAY/E,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAIlC,MAAM,MAAM,kBAAkB,GAC3B,WAAW,GACX,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,WAAW,GACX,UAAU,GACV,UAAU,GACV,QAAQ,GACR,wBAAwB,GACxB,aAAa,CAAC;AAEjB,MAAM,MAAM,aAAa,GACzB;IACC;;OAEG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,YAAY,IAAI,kBAAkB,GAAG,SAAS,CA6J7D;AAED,MAAM,MAAM,oBAAoB,GAChC;IACC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC;CAC1B,CAAC;AAEF,qBAAa,MAAM;IAGlB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IAEjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAEtC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,wBAAwB,CAAC,CAAM;IAEvC,OAAO,CAAC,oBAAoB,CAAC,CAAkB;IAG/C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IAErD,OAAO,CAAC,iBAAiB,CAAC,CAAmB;IAE7C,SAAS,CAAC,QAAQ,CAAC,SAAS,6CAAoD;IAEhF;;;;OAIG;gBACS,EAAE,WAAW,EAAE,cAAc,EAAE,OAAO,EAAE,GAAE,aAAkB;IA2GxE;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAGxB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,OAAO,CAGpB;IAED;;;;OAIG;IACH,IAAI,eAAe,IAAI,eAAe,CAQrC;IAED;;;;OAIG;IACH,IAAI,gBAAgB,IAAI,gBAAgB,CAQvC;IAED,IAAI,QAAQ,IAAI,oBAAoB,CAGnC;IAED;;OAEG;IACG,IAAI,CACT,EAAE,qBAAqB,EAAE,EACzB;QAAE,qBAAqB,EAAE,eAAe,CAAA;KAAE,GACxC,OAAO,CAAC,IAAI,CAAC;IAgFhB;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO;IAcpC;;;;;OAKG;IACH,mBAAmB,CAAC,gBAAgB,SAAS,OAAO,GAAG,OAAO,EAC7D,EACC,EAAE,EACF,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,OAAO,EACP,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,GACnC,SAAS,CAAC,gBAAgB,CAAC;IAoB9B;;;;;OAKG;IACH,mBAAmB,CAAC,gBAAgB,SAAS,OAAO,GAAG,OAAO,EAC7D,EACC,EAAE,EACF,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,OAAO,EACP,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,GACnC,SAAS,CAAC,gBAAgB,CAAC;IAoB9B,OAAO,CAAC,eAAe;CAwEvB"}
package/lib/Device.js CHANGED
@@ -22,12 +22,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
25
  Object.defineProperty(exports, "__esModule", { value: true });
29
26
  exports.Device = exports.detectDevice = void 0;
30
- const bowser_1 = __importDefault(require("bowser"));
27
+ const ua_parser_js_1 = require("ua-parser-js");
31
28
  const Logger_1 = require("./Logger");
32
29
  const EnhancedEventEmitter_1 = require("./EnhancedEventEmitter");
33
30
  const errors_1 = require("./errors");
@@ -47,69 +44,80 @@ const ReactNativeUnifiedPlan_1 = require("./handlers/ReactNativeUnifiedPlan");
47
44
  const ReactNative_1 = require("./handlers/ReactNative");
48
45
  const logger = new Logger_1.Logger('Device');
49
46
  function detectDevice() {
47
+ var _a, _b, _c, _d, _e, _f, _g, _h;
50
48
  // React-Native.
51
49
  // NOTE: react-native-webrtc >= 1.75.0 is required.
52
50
  // NOTE: react-native-webrtc with Unified Plan requires version >= 106.0.0.
53
51
  if (typeof navigator === 'object' && navigator.product === 'ReactNative') {
52
+ logger.debug('detectDevice() | React-Native detected');
54
53
  if (typeof RTCPeerConnection === 'undefined') {
55
- logger.warn('this._detectDevice() | unsupported react-native-webrtc without RTCPeerConnection, forgot to call registerGlobals()?');
54
+ logger.warn('detectDevice() | unsupported react-native-webrtc without RTCPeerConnection, forgot to call registerGlobals()?');
56
55
  return undefined;
57
56
  }
58
57
  if (typeof RTCRtpTransceiver !== 'undefined') {
59
- logger.debug('this._detectDevice() | ReactNative UnifiedPlan handler chosen');
58
+ logger.debug('detectDevice() | ReactNative UnifiedPlan handler chosen');
60
59
  return 'ReactNativeUnifiedPlan';
61
60
  }
62
61
  else {
63
- logger.debug('this._detectDevice() | ReactNative PlanB handler chosen');
62
+ logger.debug('detectDevice() | ReactNative PlanB handler chosen');
64
63
  return 'ReactNative';
65
64
  }
66
65
  }
67
66
  // Browser.
68
67
  else if (typeof navigator === 'object' && typeof navigator.userAgent === 'string') {
69
68
  const ua = navigator.userAgent;
70
- const browser = bowser_1.default.getParser(ua);
71
- const engine = browser.getEngine();
69
+ const uaParser = new ua_parser_js_1.UAParser(ua);
70
+ logger.debug('detectDevice() | browser detected [ua:%s, parsed:%o]', ua, uaParser.getResult());
71
+ const browser = uaParser.getBrowser();
72
+ const browserName = (_b = (_a = browser.name) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== null && _b !== void 0 ? _b : '';
73
+ const browserVersion = parseInt((_c = browser.major) !== null && _c !== void 0 ? _c : '0');
74
+ const engine = uaParser.getEngine();
75
+ const engineName = (_e = (_d = engine.name) === null || _d === void 0 ? void 0 : _d.toLowerCase()) !== null && _e !== void 0 ? _e : '';
76
+ const os = uaParser.getOS();
77
+ const osName = (_g = (_f = os.name) === null || _f === void 0 ? void 0 : _f.toLowerCase()) !== null && _g !== void 0 ? _g : '';
78
+ const osVersion = parseFloat((_h = os.version) !== null && _h !== void 0 ? _h : '0');
72
79
  // Chrome, Chromium, and Edge.
73
- if (browser.satisfies({ chrome: '>=111', chromium: '>=111', 'microsoft edge': '>=111' })) {
80
+ if (['chrome', 'chromium', 'edge'].includes(browserName) && browserVersion >= 111) {
74
81
  return 'Chrome111';
75
82
  }
76
- else if (browser.satisfies({ chrome: '>=74', chromium: '>=74', 'microsoft edge': '>=88' })) {
83
+ else if ((['chrome', 'chromium'].includes(browserName) && browserVersion >= 74) ||
84
+ (browserName === 'edge' && browserVersion >= 88)) {
77
85
  return 'Chrome74';
78
86
  }
79
- else if (browser.satisfies({ chrome: '>=70', chromium: '>=70' })) {
87
+ else if (['chrome', 'chromium'].includes(browserName) && browserVersion >= 70) {
80
88
  return 'Chrome70';
81
89
  }
82
- else if (browser.satisfies({ chrome: '>=67', chromium: '>=67' })) {
90
+ else if (['chrome', 'chromium'].includes(browserName) && browserVersion >= 67) {
83
91
  return 'Chrome67';
84
92
  }
85
- else if (browser.satisfies({ chrome: '>=55', chromium: '>=55' })) {
93
+ else if (['chrome', 'chromium'].includes(browserName) && browserVersion >= 55) {
86
94
  return 'Chrome55';
87
95
  }
88
96
  // Firefox.
89
- else if (browser.satisfies({ firefox: '>=60' })) {
97
+ else if (browserName === 'firefox' && osName !== 'ios' && browserVersion >= 60) {
90
98
  return 'Firefox60';
91
99
  }
92
- // Firefox on iOS.
93
- else if (browser.satisfies({ ios: { OS: '>=14.3', firefox: '>=30.0' } })) {
100
+ // Firefox on iOS (so Safari).
101
+ else if (browserName === 'firefox' && osName === 'ios' && osVersion >= 14.3) {
94
102
  return 'Safari12';
95
103
  }
96
104
  // Safari with Unified-Plan support enabled.
97
- else if (browser.satisfies({ safari: '>=12.0' }) &&
105
+ else if (browserName === 'safari' &&
106
+ browserVersion >= 12 &&
98
107
  typeof RTCRtpTransceiver !== 'undefined' &&
99
108
  RTCRtpTransceiver.prototype.hasOwnProperty('currentDirection')) {
100
109
  return 'Safari12';
101
110
  }
102
111
  // Safari with Plab-B support.
103
- else if (browser.satisfies({ safari: '>=11' })) {
112
+ else if (browserName === 'safari' && browserVersion >= 11) {
104
113
  return 'Safari11';
105
114
  }
106
115
  // Old Edge with ORTC support.
107
- else if (browser.satisfies({ 'microsoft edge': '>=11' }) &&
108
- browser.satisfies({ 'microsoft edge': '<=18' })) {
116
+ else if (browserName === 'edge' && browserVersion >= 11 && browserVersion <= 18) {
109
117
  return 'Edge11';
110
118
  }
111
119
  // Best effort for Chromium based browsers.
112
- else if (engine.name && engine.name.toLowerCase() === 'blink') {
120
+ else if (engineName === 'blink') {
113
121
  const match = ua.match(/(?:(?:Chrome|Chromium))[ /](\w+)/i);
114
122
  if (match) {
115
123
  const version = Number(match[1]);
@@ -135,13 +143,13 @@ function detectDevice() {
135
143
  }
136
144
  // Unsupported browser.
137
145
  else {
138
- logger.warn('this._detectDevice() | browser not supported [name:%s, version:%s]', browser.getBrowserName(), browser.getBrowserVersion());
146
+ logger.warn('detectDevice() | browser not supported [name:%s, version:%s]', browserName, browserVersion);
139
147
  return undefined;
140
148
  }
141
149
  }
142
150
  // Unknown device.
143
151
  else {
144
- logger.warn('this._detectDevice() | unknown device');
152
+ logger.warn('detectDevice() | unknown device');
145
153
  return undefined;
146
154
  }
147
155
  }
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.85";
11
+ export declare const version = "3.6.86";
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.85';
40
+ exports.version = '3.6.86';
41
41
  /**
42
42
  * Expose parseScalabilityMode() function.
43
43
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mediasoup-client",
3
- "version": "3.6.85",
3
+ "version": "3.6.86",
4
4
  "description": "mediasoup client side JavaScript library",
5
5
  "contributors": [
6
6
  "Iñaki Baz Castillo <ibc@aliax.net> (https://inakibaz.me)",
@@ -63,19 +63,20 @@
63
63
  "dependencies": {
64
64
  "@types/debug": "^4.1.8",
65
65
  "awaitqueue": "^3.0.1",
66
- "bowser": "^2.11.0",
67
66
  "debug": "^4.3.4",
68
67
  "events": "^3.3.0",
69
68
  "fake-mediastreamtrack": "^1.1.6",
70
69
  "h264-profile-level-id": "^1.0.1",
71
70
  "queue-microtask": "^1.2.3",
72
71
  "sdp-transform": "^2.14.1",
73
- "supports-color": "^9.3.1"
72
+ "supports-color": "^9.3.1",
73
+ "ua-parser-js": "^1.0.35"
74
74
  },
75
75
  "devDependencies": {
76
76
  "@types/events": "^3.0.0",
77
77
  "@types/jest": "^29.5.2",
78
78
  "@types/sdp-transform": "^2.4.6",
79
+ "@types/ua-parser-js": "^0.7.36",
79
80
  "@typescript-eslint/eslint-plugin": "^5.59.11",
80
81
  "@typescript-eslint/parser": "^5.59.11",
81
82
  "eslint": "^8.42.0",