@webex/plugin-meetings 2.37.0 → 2.37.2

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 (308) hide show
  1. package/UPGRADING.md +9 -9
  2. package/browsers.js +19 -24
  3. package/dist/common/browser-detection.js +1 -20
  4. package/dist/common/browser-detection.js.map +1 -1
  5. package/dist/common/collection.js +5 -20
  6. package/dist/common/collection.js.map +1 -1
  7. package/dist/common/config.js +0 -7
  8. package/dist/common/config.js.map +1 -1
  9. package/dist/common/errors/captcha-error.js +5 -26
  10. package/dist/common/errors/captcha-error.js.map +1 -1
  11. package/dist/common/errors/intent-to-join.js +5 -26
  12. package/dist/common/errors/intent-to-join.js.map +1 -1
  13. package/dist/common/errors/join-meeting.js +6 -27
  14. package/dist/common/errors/join-meeting.js.map +1 -1
  15. package/dist/common/errors/media.js +5 -26
  16. package/dist/common/errors/media.js.map +1 -1
  17. package/dist/common/errors/parameter.js +5 -33
  18. package/dist/common/errors/parameter.js.map +1 -1
  19. package/dist/common/errors/password-error.js +5 -26
  20. package/dist/common/errors/password-error.js.map +1 -1
  21. package/dist/common/errors/permission.js +4 -25
  22. package/dist/common/errors/permission.js.map +1 -1
  23. package/dist/common/errors/reconnection-in-progress.js +0 -17
  24. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  25. package/dist/common/errors/reconnection.js +5 -26
  26. package/dist/common/errors/reconnection.js.map +1 -1
  27. package/dist/common/errors/stats.js +5 -26
  28. package/dist/common/errors/stats.js.map +1 -1
  29. package/dist/common/errors/webex-errors.js +7 -46
  30. package/dist/common/errors/webex-errors.js.map +1 -1
  31. package/dist/common/errors/webex-meetings-error.js +1 -24
  32. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  33. package/dist/common/events/events-scope.js +0 -22
  34. package/dist/common/events/events-scope.js.map +1 -1
  35. package/dist/common/events/events.js +0 -23
  36. package/dist/common/events/events.js.map +1 -1
  37. package/dist/common/events/trigger-proxy.js +0 -12
  38. package/dist/common/events/trigger-proxy.js.map +1 -1
  39. package/dist/common/events/util.js +0 -15
  40. package/dist/common/events/util.js.map +1 -1
  41. package/dist/common/logs/logger-config.js +0 -4
  42. package/dist/common/logs/logger-config.js.map +1 -1
  43. package/dist/common/logs/logger-proxy.js +1 -8
  44. package/dist/common/logs/logger-proxy.js.map +1 -1
  45. package/dist/common/logs/request.js +35 -61
  46. package/dist/common/logs/request.js.map +1 -1
  47. package/dist/common/queue.js +4 -14
  48. package/dist/common/queue.js.map +1 -1
  49. package/dist/config.js +1 -5
  50. package/dist/config.js.map +1 -1
  51. package/dist/constants.js +46 -42
  52. package/dist/constants.js.map +1 -1
  53. package/dist/index.js +1 -17
  54. package/dist/index.js.map +1 -1
  55. package/dist/locus-info/controlsUtils.js +10 -28
  56. package/dist/locus-info/controlsUtils.js.map +1 -1
  57. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  58. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  59. package/dist/locus-info/fullState.js +0 -15
  60. package/dist/locus-info/fullState.js.map +1 -1
  61. package/dist/locus-info/hostUtils.js +4 -12
  62. package/dist/locus-info/hostUtils.js.map +1 -1
  63. package/dist/locus-info/index.js +101 -193
  64. package/dist/locus-info/index.js.map +1 -1
  65. package/dist/locus-info/infoUtils.js +0 -37
  66. package/dist/locus-info/infoUtils.js.map +1 -1
  67. package/dist/locus-info/mediaSharesUtils.js +12 -38
  68. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  69. package/dist/locus-info/parser.js +87 -123
  70. package/dist/locus-info/parser.js.map +1 -1
  71. package/dist/locus-info/selfUtils.js +16 -81
  72. package/dist/locus-info/selfUtils.js.map +1 -1
  73. package/dist/media/index.js +74 -137
  74. package/dist/media/index.js.map +1 -1
  75. package/dist/media/properties.js +64 -110
  76. package/dist/media/properties.js.map +1 -1
  77. package/dist/media/util.js +3 -17
  78. package/dist/media/util.js.map +1 -1
  79. package/dist/mediaQualityMetrics/config.js +10 -12
  80. package/dist/mediaQualityMetrics/config.js.map +1 -1
  81. package/dist/meeting/effectsState.js +120 -192
  82. package/dist/meeting/effectsState.js.map +1 -1
  83. package/dist/meeting/in-meeting-actions.js +0 -13
  84. package/dist/meeting/in-meeting-actions.js.map +1 -1
  85. package/dist/meeting/index.js +812 -1487
  86. package/dist/meeting/index.js.map +1 -1
  87. package/dist/meeting/muteState.js +31 -78
  88. package/dist/meeting/muteState.js.map +1 -1
  89. package/dist/meeting/request.js +157 -227
  90. package/dist/meeting/request.js.map +1 -1
  91. package/dist/meeting/state.js +21 -31
  92. package/dist/meeting/state.js.map +1 -1
  93. package/dist/meeting/util.js +25 -169
  94. package/dist/meeting/util.js.map +1 -1
  95. package/dist/meeting-info/collection.js +3 -25
  96. package/dist/meeting-info/collection.js.map +1 -1
  97. package/dist/meeting-info/index.js +10 -33
  98. package/dist/meeting-info/index.js.map +1 -1
  99. package/dist/meeting-info/meeting-info-v2.js +179 -268
  100. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  101. package/dist/meeting-info/request.js +1 -16
  102. package/dist/meeting-info/request.js.map +1 -1
  103. package/dist/meeting-info/util.js +98 -183
  104. package/dist/meeting-info/util.js.map +1 -1
  105. package/dist/meeting-info/utilv2.js +137 -228
  106. package/dist/meeting-info/utilv2.js.map +1 -1
  107. package/dist/meetings/collection.js +3 -21
  108. package/dist/meetings/collection.js.map +1 -1
  109. package/dist/meetings/index.js +451 -570
  110. package/dist/meetings/index.js.map +1 -1
  111. package/dist/meetings/request.js +7 -30
  112. package/dist/meetings/request.js.map +1 -1
  113. package/dist/meetings/util.js +94 -148
  114. package/dist/meetings/util.js.map +1 -1
  115. package/dist/member/index.js +49 -89
  116. package/dist/member/index.js.map +1 -1
  117. package/dist/member/util.js +17 -68
  118. package/dist/member/util.js.map +1 -1
  119. package/dist/members/collection.js +2 -12
  120. package/dist/members/collection.js.map +1 -1
  121. package/dist/members/index.js +68 -184
  122. package/dist/members/index.js.map +1 -1
  123. package/dist/members/request.js +21 -56
  124. package/dist/members/request.js.map +1 -1
  125. package/dist/members/util.js +9 -38
  126. package/dist/members/util.js.map +1 -1
  127. package/dist/metrics/config.js +0 -2
  128. package/dist/metrics/config.js.map +1 -1
  129. package/dist/metrics/constants.js +1 -2
  130. package/dist/metrics/constants.js.map +1 -1
  131. package/dist/metrics/index.js +48 -136
  132. package/dist/metrics/index.js.map +1 -1
  133. package/dist/networkQualityMonitor/index.js +28 -57
  134. package/dist/networkQualityMonitor/index.js.map +1 -1
  135. package/dist/peer-connection-manager/index.js +60 -190
  136. package/dist/peer-connection-manager/index.js.map +1 -1
  137. package/dist/peer-connection-manager/util.js +10 -24
  138. package/dist/peer-connection-manager/util.js.map +1 -1
  139. package/dist/personal-meeting-room/index.js +10 -45
  140. package/dist/personal-meeting-room/index.js.map +1 -1
  141. package/dist/personal-meeting-room/request.js +2 -33
  142. package/dist/personal-meeting-room/request.js.map +1 -1
  143. package/dist/personal-meeting-room/util.js +0 -13
  144. package/dist/personal-meeting-room/util.js.map +1 -1
  145. package/dist/reachability/index.js +100 -166
  146. package/dist/reachability/index.js.map +1 -1
  147. package/dist/reachability/request.js +2 -18
  148. package/dist/reachability/request.js.map +1 -1
  149. package/dist/reactions/reactions.js +0 -2
  150. package/dist/reactions/reactions.js.map +1 -1
  151. package/dist/reactions/reactions.type.js +0 -5
  152. package/dist/reactions/reactions.type.js.map +1 -1
  153. package/dist/reconnection-manager/index.js +294 -468
  154. package/dist/reconnection-manager/index.js.map +1 -1
  155. package/dist/roap/collection.js +1 -12
  156. package/dist/roap/collection.js.map +1 -1
  157. package/dist/roap/handler.js +15 -85
  158. package/dist/roap/handler.js.map +1 -1
  159. package/dist/roap/index.js +42 -94
  160. package/dist/roap/index.js.map +1 -1
  161. package/dist/roap/request.js +81 -148
  162. package/dist/roap/request.js.map +1 -1
  163. package/dist/roap/state.js +2 -39
  164. package/dist/roap/state.js.map +1 -1
  165. package/dist/roap/turnDiscovery.js +8 -52
  166. package/dist/roap/turnDiscovery.js.map +1 -1
  167. package/dist/roap/util.js +0 -26
  168. package/dist/roap/util.js.map +1 -1
  169. package/dist/statsAnalyzer/global.js +0 -2
  170. package/dist/statsAnalyzer/global.js.map +1 -1
  171. package/dist/statsAnalyzer/index.js +68 -168
  172. package/dist/statsAnalyzer/index.js.map +1 -1
  173. package/dist/statsAnalyzer/mqaUtil.js +54 -53
  174. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  175. package/dist/transcription/index.js +13 -45
  176. package/dist/transcription/index.js.map +1 -1
  177. package/internal-README.md +7 -6
  178. package/package.json +17 -17
  179. package/src/common/browser-detection.ts +9 -6
  180. package/src/common/collection.ts +3 -1
  181. package/src/common/errors/captcha-error.ts +6 -6
  182. package/src/common/errors/intent-to-join.ts +6 -6
  183. package/src/common/errors/join-meeting.ts +12 -8
  184. package/src/common/errors/media.ts +6 -6
  185. package/src/common/errors/parameter.ts +9 -6
  186. package/src/common/errors/password-error.ts +6 -6
  187. package/src/common/errors/permission.ts +5 -5
  188. package/src/common/errors/reconnection.ts +6 -6
  189. package/src/common/errors/stats.ts +6 -6
  190. package/src/common/errors/webex-errors.ts +7 -5
  191. package/src/common/errors/webex-meetings-error.ts +1 -1
  192. package/src/common/events/events-scope.ts +5 -1
  193. package/src/common/events/events.ts +5 -1
  194. package/src/common/events/trigger-proxy.ts +8 -3
  195. package/src/common/events/util.ts +1 -2
  196. package/src/common/logs/logger-proxy.ts +21 -10
  197. package/src/common/logs/request.ts +11 -8
  198. package/src/config.ts +11 -11
  199. package/src/constants.ts +138 -119
  200. package/src/index.js +1 -1
  201. package/src/locus-info/controlsUtils.ts +34 -24
  202. package/src/locus-info/fullState.ts +15 -11
  203. package/src/locus-info/hostUtils.ts +4 -3
  204. package/src/locus-info/index.ts +25 -34
  205. package/src/locus-info/infoUtils.ts +12 -4
  206. package/src/locus-info/mediaSharesUtils.ts +4 -4
  207. package/src/locus-info/parser.ts +45 -68
  208. package/src/locus-info/selfUtils.ts +106 -57
  209. package/src/media/index.ts +118 -109
  210. package/src/media/properties.ts +26 -20
  211. package/src/media/util.ts +2 -2
  212. package/src/mediaQualityMetrics/config.ts +46 -46
  213. package/src/meeting/effectsState.ts +35 -35
  214. package/src/meeting/in-meeting-actions.ts +7 -3
  215. package/src/meeting/index.ts +1435 -1210
  216. package/src/meeting/muteState.ts +62 -31
  217. package/src/meeting/request.ts +160 -113
  218. package/src/meeting/state.ts +45 -30
  219. package/src/meeting/util.ts +131 -90
  220. package/src/meeting-info/collection.ts +2 -1
  221. package/src/meeting-info/index.ts +32 -30
  222. package/src/meeting-info/meeting-info-v2.ts +106 -108
  223. package/src/meeting-info/request.ts +9 -3
  224. package/src/meeting-info/util.ts +54 -46
  225. package/src/meeting-info/utilv2.ts +59 -53
  226. package/src/meetings/collection.ts +1 -1
  227. package/src/meetings/index.ts +513 -441
  228. package/src/meetings/request.ts +26 -24
  229. package/src/meetings/util.ts +26 -23
  230. package/src/member/index.ts +55 -49
  231. package/src/member/util.ts +26 -13
  232. package/src/members/collection.ts +0 -1
  233. package/src/members/index.ts +172 -121
  234. package/src/members/request.ts +46 -14
  235. package/src/members/util.ts +44 -42
  236. package/src/metrics/config.ts +254 -81
  237. package/src/metrics/constants.ts +0 -2
  238. package/src/metrics/index.ts +84 -71
  239. package/src/networkQualityMonitor/index.ts +20 -23
  240. package/src/peer-connection-manager/index.ts +321 -241
  241. package/src/peer-connection-manager/util.ts +4 -2
  242. package/src/personal-meeting-room/index.ts +12 -16
  243. package/src/personal-meeting-room/request.ts +10 -3
  244. package/src/personal-meeting-room/util.ts +3 -3
  245. package/src/reachability/index.ts +61 -59
  246. package/src/reachability/request.ts +36 -32
  247. package/src/reactions/reactions.ts +4 -4
  248. package/src/reactions/reactions.type.ts +2 -3
  249. package/src/reconnection-manager/index.ts +159 -98
  250. package/src/roap/collection.ts +2 -4
  251. package/src/roap/handler.ts +63 -32
  252. package/src/roap/index.ts +78 -58
  253. package/src/roap/request.ts +69 -54
  254. package/src/roap/state.ts +17 -11
  255. package/src/roap/turnDiscovery.ts +60 -31
  256. package/src/roap/util.ts +39 -31
  257. package/src/statsAnalyzer/global.ts +30 -33
  258. package/src/statsAnalyzer/index.ts +397 -169
  259. package/src/statsAnalyzer/mqaUtil.ts +178 -72
  260. package/src/transcription/index.ts +34 -32
  261. package/test/integration/spec/journey.js +666 -462
  262. package/test/integration/spec/space-meeting.js +318 -203
  263. package/test/integration/spec/transcription.js +6 -7
  264. package/test/unit/spec/common/browser-detection.js +9 -28
  265. package/test/unit/spec/fixture/locus.js +92 -90
  266. package/test/unit/spec/locus-info/controlsUtils.js +5 -5
  267. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  268. package/test/unit/spec/locus-info/index.js +1 -2
  269. package/test/unit/spec/locus-info/infoUtils.js +24 -31
  270. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  271. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  272. package/test/unit/spec/locus-info/parser.js +3 -9
  273. package/test/unit/spec/locus-info/selfConstant.js +72 -103
  274. package/test/unit/spec/locus-info/selfUtils.js +21 -12
  275. package/test/unit/spec/meeting/effectsState.js +33 -45
  276. package/test/unit/spec/meeting/in-meeting-actions.ts +2 -3
  277. package/test/unit/spec/meeting/index.js +1141 -649
  278. package/test/unit/spec/meeting/muteState.js +42 -33
  279. package/test/unit/spec/meeting/request.js +56 -45
  280. package/test/unit/spec/meeting/utils.js +66 -49
  281. package/test/unit/spec/meeting-info/meetinginfov2.js +100 -73
  282. package/test/unit/spec/meeting-info/request.js +7 -9
  283. package/test/unit/spec/meeting-info/util.js +11 -12
  284. package/test/unit/spec/meeting-info/utilv2.js +110 -74
  285. package/test/unit/spec/meetings/collection.js +1 -1
  286. package/test/unit/spec/meetings/index.js +438 -257
  287. package/test/unit/spec/meetings/utils.js +14 -12
  288. package/test/unit/spec/member/index.js +0 -1
  289. package/test/unit/spec/member/util.js +5 -6
  290. package/test/unit/spec/members/index.js +84 -35
  291. package/test/unit/spec/members/request.js +29 -20
  292. package/test/unit/spec/members/utils.js +8 -5
  293. package/test/unit/spec/metrics/index.js +16 -21
  294. package/test/unit/spec/networkQualityMonitor/index.js +21 -15
  295. package/test/unit/spec/peerconnection-manager/index.js +88 -58
  296. package/test/unit/spec/peerconnection-manager/utils.js +5 -4
  297. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +7 -8
  298. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  299. package/test/unit/spec/reachability/index.ts +9 -11
  300. package/test/unit/spec/reconnection-manager/index.js +14 -17
  301. package/test/unit/spec/roap/index.ts +18 -8
  302. package/test/unit/spec/roap/turnDiscovery.ts +22 -19
  303. package/test/unit/spec/roap/util.js +3 -3
  304. package/test/unit/spec/stats-analyzer/index.js +29 -24
  305. package/test/utils/cmr.js +44 -42
  306. package/test/utils/testUtils.js +83 -74
  307. package/test/utils/webex-config.js +18 -18
  308. package/test/utils/webex-test-users.js +53 -50
@@ -1,51 +1,31 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
4
-
5
4
  var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
6
-
7
5
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
8
-
9
6
  var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
10
-
11
7
  var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
12
-
13
8
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
14
-
15
9
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
16
-
17
10
  _Object$defineProperty(exports, "__esModule", {
18
11
  value: true
19
12
  });
20
-
21
13
  exports.default = void 0;
22
-
23
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
24
-
25
15
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
26
-
27
16
  var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
28
-
29
17
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
30
-
31
18
  var _constants = require("../constants");
32
-
33
19
  var _config = _interopRequireDefault(require("../config"));
34
-
35
20
  var _peerConnectionManager = _interopRequireDefault(require("../peer-connection-manager"));
36
-
37
21
  var _reconnection = _interopRequireDefault(require("../common/errors/reconnection"));
38
-
39
22
  var _media = _interopRequireDefault(require("../common/errors/media"));
40
-
41
23
  var _browserDetection = _interopRequireDefault(require("../common/browser-detection"));
42
-
43
24
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
44
-
45
25
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
46
-
47
26
  var _BrowserDetection = (0, _browserDetection.default)(),
48
- isBrowser = _BrowserDetection.isBrowser;
27
+ isBrowser = _BrowserDetection.isBrowser;
28
+
49
29
  /**
50
30
  * MediaDirection
51
31
  * @typedef {Object} MediaDirection
@@ -66,7 +46,6 @@ var _BrowserDetection = (0, _browserDetection.default)(),
66
46
  * @property isSharing
67
47
  * @property {Object} sharePreferences
68
48
  */
69
-
70
49
  /**
71
50
  *
72
51
  * @public
@@ -75,24 +54,22 @@ var _BrowserDetection = (0, _browserDetection.default)(),
75
54
  * Handles the quirks of each browser.
76
55
  * Extends and enhances adapter.js, i.e., the "media" file from the web client.
77
56
  */
78
-
79
-
80
57
  var Media = {};
58
+
81
59
  /**
82
60
  * @param {boolean} enabled
83
61
  * @param {MediaStreamTrack} track
84
62
  * @returns {Boolean}
85
63
  * @public
86
64
  */
87
-
88
65
  Media.setLocalTrack = function (enabled, track) {
89
66
  if (track) {
90
67
  track.enabled = enabled;
91
68
  return true;
92
69
  }
93
-
94
70
  return false;
95
71
  };
72
+
96
73
  /**
97
74
  * @param {RTCPeerConnection} peerConnection
98
75
  * @param {Object} meetingProperties
@@ -100,18 +77,14 @@ Media.setLocalTrack = function (enabled, track) {
100
77
  * @param {string} meetingProperties.remoteQualityLevel LOW|MEDIUM|HIGH
101
78
  * @returns {Promise}
102
79
  */
103
-
104
-
105
80
  Media.reconnectMedia = function (peerConnection, _ref) {
106
81
  var meetingId = _ref.meetingId,
107
- remoteQualityLevel = _ref.remoteQualityLevel,
108
- enableRtx = _ref.enableRtx,
109
- enableExtmap = _ref.enableExtmap;
110
-
82
+ remoteQualityLevel = _ref.remoteQualityLevel,
83
+ enableRtx = _ref.enableRtx,
84
+ enableExtmap = _ref.enableExtmap;
111
85
  if (peerConnection.connectionState === _constants.PEER_CONNECTION_STATE.CLOSED || peerConnection.connectionState === _constants.PEER_CONNECTION_STATE.FAILED) {
112
86
  return _promise.default.reject(new _reconnection.default('Reinitiate peerconnection'));
113
87
  }
114
-
115
88
  return _peerConnectionManager.default.createOffer(peerConnection, {
116
89
  meetingId: meetingId,
117
90
  remoteQualityLevel: remoteQualityLevel,
@@ -119,6 +92,7 @@ Media.reconnectMedia = function (peerConnection, _ref) {
119
92
  enableExtmap: enableExtmap
120
93
  });
121
94
  };
95
+
122
96
  /**
123
97
  * format the media array for send
124
98
  * @param {String} mediaId
@@ -126,8 +100,6 @@ Media.reconnectMedia = function (peerConnection, _ref) {
126
100
  * @param {Boolean} videoMuted
127
101
  * @returns {Array} medias
128
102
  */
129
-
130
-
131
103
  Media.generateLocalMedias = function (mediaId, audioMuted, videoMuted) {
132
104
  if (mediaId) {
133
105
  return [{
@@ -138,28 +110,24 @@ Media.generateLocalMedias = function (mediaId, audioMuted, videoMuted) {
138
110
  mediaId: mediaId
139
111
  }];
140
112
  }
141
-
142
113
  return [];
143
114
  };
115
+
144
116
  /**
145
117
  * make a browser call to get the media
146
118
  * @param {SendOptions} options
147
119
  * @param {Object} config SDK Configuration for meetings plugin
148
120
  * @returns {Promise}
149
121
  */
150
-
151
-
152
122
  Media.getLocalMedia = function (options, config) {
153
123
  var sendAudio = options.sendAudio,
154
- sendVideo = options.sendVideo,
155
- sendShare = options.sendShare,
156
- sharePreferences = options.sharePreferences,
157
- isSharing = options.isSharing;
158
-
124
+ sendVideo = options.sendVideo,
125
+ sendShare = options.sendShare,
126
+ sharePreferences = options.sharePreferences,
127
+ isSharing = options.isSharing;
159
128
  if (sendAudio || sendVideo) {
160
129
  return Media.getMedia(sendAudio, sendVideo, config);
161
130
  }
162
-
163
131
  if (sendShare && !isSharing) {
164
132
  return Media.getDisplayMedia({
165
133
  sendAudio: false,
@@ -167,7 +135,6 @@ Media.getLocalMedia = function (options, config) {
167
135
  sharePreferences: sharePreferences
168
136
  }, config);
169
137
  }
170
-
171
138
  return _promise.default.resolve(undefined);
172
139
  };
173
140
  /**
@@ -177,32 +144,26 @@ Media.getLocalMedia = function (options, config) {
177
144
  * @param {boolean} receiveTracks do you want to receive tracks from the remote side
178
145
  * @returns {Object} returns direction tracks to be added in transceiver
179
146
  */
180
-
181
-
182
147
  Media.checkTracks = function (trackType, track, receiveTracks) {
148
+ // eslint-disable-next-line @typescript-eslint/no-shadow
183
149
  var getDirection = function getDirection(sendTracks, receiveTracks) {
184
150
  if (sendTracks && receiveTracks) {
185
151
  return 'sendrecv';
186
152
  }
187
-
188
153
  if (sendTracks && !receiveTracks) {
189
154
  return 'sendonly';
190
155
  }
191
-
192
156
  if (!sendTracks && receiveTracks) {
193
157
  return 'recvonly';
194
158
  }
195
-
196
159
  return 'inactive';
197
160
  };
198
-
199
161
  if (track) {
200
162
  return {
201
163
  track: track,
202
164
  direction: getDirection(!!track, receiveTracks)
203
165
  };
204
166
  }
205
-
206
167
  return {
207
168
  track: trackType,
208
169
  direction: getDirection(!!track, receiveTracks)
@@ -216,39 +177,38 @@ Media.checkTracks = function (trackType, track, receiveTracks) {
216
177
  * @param {string} meetingProperties.remoteQualityLevel LOW|MEDIUM|HIGH
217
178
  * @returns {Array} [peerConnection, ]
218
179
  */
219
-
220
-
221
180
  Media.attachMedia = function (mediaProperties, _ref2) {
222
181
  var meetingId = _ref2.meetingId,
223
- remoteQualityLevel = _ref2.remoteQualityLevel,
224
- enableRtx = _ref2.enableRtx,
225
- enableExtmap = _ref2.enableExtmap;
182
+ remoteQualityLevel = _ref2.remoteQualityLevel,
183
+ enableRtx = _ref2.enableRtx,
184
+ enableExtmap = _ref2.enableExtmap;
226
185
  var mediaDirection = mediaProperties.mediaDirection,
227
- audioTrack = mediaProperties.audioTrack,
228
- videoTrack = mediaProperties.videoTrack,
229
- shareTrack = mediaProperties.shareTrack,
230
- peerConnection = mediaProperties.peerConnection;
231
- var result = null; // Add Transceiver for audio
186
+ audioTrack = mediaProperties.audioTrack,
187
+ videoTrack = mediaProperties.videoTrack,
188
+ shareTrack = mediaProperties.shareTrack,
189
+ peerConnection = mediaProperties.peerConnection;
190
+ var result = null;
232
191
 
192
+ // Add Transceiver for audio
233
193
  result = Media.checkTracks('audio', mediaDirection.sendAudio && audioTrack, mediaDirection.receiveAudio);
234
194
  peerConnection.audioTransceiver = peerConnection.addTransceiver(result.track, {
235
195
  direction: result.direction
236
- }); // Add Transceiver for video
196
+ });
237
197
 
198
+ // Add Transceiver for video
238
199
  result = Media.checkTracks('video', mediaDirection.sendVideo && videoTrack, mediaDirection.receiveVideo);
239
200
  peerConnection.videoTransceiver = peerConnection.addTransceiver(result.track, {
240
201
  direction: result.direction
241
- }); // Add Transceiver for share
202
+ });
242
203
 
204
+ // Add Transceiver for share
243
205
  result = Media.checkTracks('video', mediaDirection.sendShare && shareTrack, mediaDirection.receiveShare);
244
206
  peerConnection.shareTransceiver = peerConnection.addTransceiver(result.track, {
245
207
  direction: result.direction
246
208
  });
247
-
248
209
  peerConnection.onnegotiationneeded = function (event) {
249
210
  _loggerProxy.default.logger.info("Media:index#attachMedia --> onnegotiationneeded#PeerConnection: ".concat(event));
250
211
  };
251
-
252
212
  return _peerConnectionManager.default.createOffer(peerConnection, {
253
213
  meetingId: meetingId,
254
214
  remoteQualityLevel: remoteQualityLevel,
@@ -256,6 +216,7 @@ Media.attachMedia = function (mediaProperties, _ref2) {
256
216
  enableExtmap: enableExtmap
257
217
  });
258
218
  };
219
+
259
220
  /**
260
221
  * updates all the media streams and creates a new media offer
261
222
  * @param {MediaDirection} mediaProperties
@@ -264,44 +225,43 @@ Media.attachMedia = function (mediaProperties, _ref2) {
264
225
  * @param {string} meetingProperties.remoteQualityLevel LOW|MEDIUM|HIGH
265
226
  * @returns {Promise}
266
227
  */
267
-
268
-
269
228
  Media.updateMedia = function (mediaProperties, _ref3) {
270
229
  var meetingId = _ref3.meetingId,
271
- remoteQualityLevel = _ref3.remoteQualityLevel,
272
- enableRtx = _ref3.enableRtx,
273
- enableExtmap = _ref3.enableExtmap;
230
+ remoteQualityLevel = _ref3.remoteQualityLevel,
231
+ enableRtx = _ref3.enableRtx,
232
+ enableExtmap = _ref3.enableExtmap;
274
233
  var mediaDirection = mediaProperties.mediaDirection,
275
- audioTrack = mediaProperties.audioTrack,
276
- videoTrack = mediaProperties.videoTrack,
277
- shareTrack = mediaProperties.shareTrack,
278
- peerConnection = mediaProperties.peerConnection; // update audio transceiver
234
+ audioTrack = mediaProperties.audioTrack,
235
+ videoTrack = mediaProperties.videoTrack,
236
+ shareTrack = mediaProperties.shareTrack,
237
+ peerConnection = mediaProperties.peerConnection;
279
238
 
239
+ // update audio transceiver
280
240
  Media.setTrackOnTransceiver(peerConnection.audioTransceiver, {
281
241
  type: 'audio',
282
242
  track: audioTrack,
283
243
  sendTrack: mediaDirection.sendAudio && audioTrack,
284
244
  receiveTrack: mediaDirection.receiveAudio
285
- }); // update video transceiver
245
+ });
286
246
 
247
+ // update video transceiver
287
248
  Media.setTrackOnTransceiver(peerConnection.videoTransceiver, {
288
249
  type: 'video',
289
250
  track: videoTrack,
290
251
  sendTrack: mediaDirection.sendVideo && videoTrack,
291
252
  receiveTrack: mediaDirection.receiveVideo
292
- }); // update content transceiver
253
+ });
293
254
 
255
+ // update content transceiver
294
256
  Media.setTrackOnTransceiver(peerConnection.shareTransceiver, {
295
257
  type: 'video',
296
258
  track: shareTrack,
297
259
  sendTrack: mediaDirection.sendShare && shareTrack,
298
260
  receiveTrack: mediaDirection.receiveShare
299
261
  });
300
-
301
262
  peerConnection.onnegotiationneeded = function (event) {
302
263
  _loggerProxy.default.logger.info("Media:index#updateMedia --> onnegotiationneeded#PeerConnection: ".concat(event));
303
264
  };
304
-
305
265
  return _peerConnectionManager.default.createOffer(peerConnection, {
306
266
  meetingId: meetingId,
307
267
  remoteQualityLevel: remoteQualityLevel,
@@ -309,33 +269,30 @@ Media.updateMedia = function (mediaProperties, _ref3) {
309
269
  enableExtmap: enableExtmap
310
270
  });
311
271
  };
272
+
312
273
  /**
313
274
  * @param {RTCRtpTransceiver} transceiver
314
275
  * @param {Object} options
315
276
  * @param {MediaStreamTrack} options.track
316
277
  * @returns {undefined}
317
278
  */
318
-
319
-
320
279
  Media.setTrackOnTransceiver = function (transceiver, options) {
321
280
  var type = options.type,
322
- track = options.track,
323
- sendTrack = options.sendTrack,
324
- receiveTrack = options.receiveTrack;
325
-
281
+ track = options.track,
282
+ sendTrack = options.sendTrack,
283
+ receiveTrack = options.receiveTrack;
326
284
  try {
327
285
  var result = Media.checkTracks(type, sendTrack && track, receiveTrack);
328
286
  transceiver.direction = result.direction;
329
-
330
287
  if (options.track) {
331
288
  transceiver.sender.replaceTrack(track);
332
289
  }
333
290
  } catch (e) {
334
291
  _loggerProxy.default.logger.error("Media:index#setTrackOnTransceiver --> ".concat(e));
335
-
336
292
  throw e;
337
293
  }
338
294
  };
295
+
339
296
  /**
340
297
  * creates a new offer
341
298
  * @param {Object} meetingProperties
@@ -346,13 +303,11 @@ Media.setTrackOnTransceiver = function (transceiver, options) {
346
303
  * @param {Object} options see #Media.setTrackOnTransceiver
347
304
  * @returns {Promise}
348
305
  */
349
-
350
-
351
306
  Media.updateTransceiver = function (_ref4, peerConnection, transceiver, options) {
352
307
  var meetingId = _ref4.meetingId,
353
- remoteQualityLevel = _ref4.remoteQualityLevel,
354
- enableRtx = _ref4.enableRtx,
355
- enableExtmap = _ref4.enableExtmap;
308
+ remoteQualityLevel = _ref4.remoteQualityLevel,
309
+ enableRtx = _ref4.enableRtx,
310
+ enableExtmap = _ref4.enableExtmap;
356
311
  Media.setTrackOnTransceiver(transceiver, options);
357
312
  return _peerConnectionManager.default.createOffer(peerConnection, {
358
313
  meetingId: meetingId,
@@ -361,6 +316,7 @@ Media.updateTransceiver = function (_ref4, peerConnection, transceiver, options)
361
316
  enableExtmap: enableExtmap
362
317
  });
363
318
  };
319
+
364
320
  /**
365
321
  * generates share streams
366
322
  * @param {Object} options parameter
@@ -373,29 +329,26 @@ Media.updateTransceiver = function (_ref4, peerConnection, transceiver, options)
373
329
  * @param {Object} config SDK Configuration for meetings plugin
374
330
  * @returns {Promise.<MediaStream>}
375
331
  */
376
-
377
-
378
332
  Media.getDisplayMedia = function (options) {
379
333
  var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
380
334
  // SDK screen share resolution settings from Webex.init
381
- var customResolution = config.screenResolution || {}; // user defined screen share frame rate
382
-
383
- var customShareFrameRate = config.screenFrameRate || null; // user defined share preferences
384
-
335
+ var customResolution = config.screenResolution || {};
336
+ // user defined screen share frame rate
337
+ var customShareFrameRate = config.screenFrameRate || null;
338
+ // user defined share preferences
385
339
  var hasSharePreferences = options.sharePreferences;
386
340
  var hasCustomConstraints = hasSharePreferences && hasSharePreferences.shareConstraints;
387
341
  var hasHighFrameRate = hasSharePreferences && hasSharePreferences.highFrameRate;
388
342
  var _Config$meetings = _config.default.meetings,
389
- screenResolution = _Config$meetings.screenResolution,
390
- resolution = _Config$meetings.resolution,
391
- videoShareFrameRate = _Config$meetings.videoShareFrameRate,
392
- screenFrameRate = _Config$meetings.screenFrameRate,
393
- aspectRatio = _Config$meetings.aspectRatio;
343
+ screenResolution = _Config$meetings.screenResolution,
344
+ resolution = _Config$meetings.resolution,
345
+ videoShareFrameRate = _Config$meetings.videoShareFrameRate,
346
+ screenFrameRate = _Config$meetings.screenFrameRate,
347
+ aspectRatio = _Config$meetings.aspectRatio;
394
348
  var shareConstraints = {
395
349
  cursor: _constants.MEDIA_TRACK_CONSTRAINT.CURSOR.AWLAYS,
396
350
  aspectRatio: aspectRatio
397
351
  };
398
-
399
352
  if (hasCustomConstraints) {
400
353
  shareConstraints = hasSharePreferences.shareConstraints;
401
354
  } else if (hasHighFrameRate) {
@@ -410,14 +363,15 @@ Media.getDisplayMedia = function (options) {
410
363
  height: customResolution.idealHeight || screenResolution.idealHeight,
411
364
  width: customResolution.idealWidth || screenResolution.idealWidth
412
365
  }, config.screenResolution);
413
- } // chrome and webkit based browsers (edge, safari) automatically adjust everything
366
+ }
367
+
368
+ // chrome and webkit based browsers (edge, safari) automatically adjust everything
414
369
  // and we have noticed higher quality with those browser types
415
370
  // firefox specifically has some issues with resolution and frame rate decision making
416
371
  // so we are making it optional and configurable (with defaults) for firefox
417
372
  // to have higher quality, and for developers to control the values
418
373
  // eventually we may have to add the same functionality to chrome, OR conversely, get to with firefox
419
374
 
420
-
421
375
  if (isBrowser('firefox')) {
422
376
  var mediaConfig = {
423
377
  audio: options.sendAudio,
@@ -433,22 +387,21 @@ Media.getDisplayMedia = function (options) {
433
387
  // https://bugzilla.mozilla.org/show_bug.cgi?id=1321221
434
388
  stream.getVideoTracks()[0].applyConstraints(shareConstraints);
435
389
  }
436
-
437
390
  return stream;
438
391
  });
439
392
  }
440
-
441
393
  var getDisplayMediaParams = {
442
394
  video: options.sendShare ? shareConstraints : false
443
- }; // safari doesn't support sending screen share audio
444
- // https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia
395
+ };
445
396
 
397
+ // safari doesn't support sending screen share audio
398
+ // https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia
446
399
  if (options.sendAudio && isBrowser('safari')) {
447
400
  getDisplayMediaParams.audio = options.sendAudio;
448
401
  }
449
-
450
402
  return navigator.mediaDevices.getDisplayMedia(getDisplayMediaParams);
451
403
  };
404
+
452
405
  /**
453
406
  * generates audio and video using constraints (often called after getSupportedDevices)
454
407
  * @param {Object|Boolean} audio gum constraints
@@ -456,8 +409,6 @@ Media.getDisplayMedia = function (options) {
456
409
  * @param {Object} config SDK Configuration for meetings plugin
457
410
  * @returns {Object} {streams}
458
411
  */
459
-
460
-
461
412
  Media.getMedia = function (audio, video, config) {
462
413
  var defaultWidth = {
463
414
  ideal: config.resolution.idealWidth,
@@ -485,16 +436,15 @@ Media.getMedia = function (audio, video, config) {
485
436
  facingMode: video.facingMode ? video.facingMode : undefined
486
437
  } : false,
487
438
  fake: process.env.NODE_ENV === 'test' // Special case to get fake media for Firefox browser for testing
488
-
489
439
  };
440
+
490
441
  return navigator.mediaDevices.getUserMedia(mediaConfig).catch(function (err) {
491
442
  var logPath = 'Media:index#getMedia --> navigator.mediaDevices.getUserMedia';
492
-
493
443
  _loggerProxy.default.logger.error("".concat(logPath, " failed - ").concat(err, " (").concat(err.constraint, ")"));
494
-
495
444
  throw err;
496
445
  });
497
446
  };
447
+
498
448
  /**
499
449
  * Checks if the machine has at least one audio or video device (Dont use this for screen share)
500
450
  * @param {object} [options]
@@ -507,11 +457,9 @@ Media.getMedia = function (audio, video, config) {
507
457
  * sendVideo: true/false
508
458
  *}
509
459
  */
510
-
511
-
512
460
  Media.getSupportedDevice = function (_ref5) {
513
461
  var sendAudio = _ref5.sendAudio,
514
- sendVideo = _ref5.sendVideo;
462
+ sendVideo = _ref5.sendVideo;
515
463
  return _promise.default.resolve().then(function () {
516
464
  if (!navigator.mediaDevices || navigator.mediaDevices.enumerateDevices === undefined) {
517
465
  return {
@@ -519,7 +467,6 @@ Media.getSupportedDevice = function (_ref5) {
519
467
  sendVideo: false
520
468
  };
521
469
  }
522
-
523
470
  return navigator.mediaDevices.enumerateDevices().then(function (devices) {
524
471
  var supported = {
525
472
  audio: devices.filter(function (device) {
@@ -536,40 +483,35 @@ Media.getSupportedDevice = function (_ref5) {
536
483
  });
537
484
  });
538
485
  };
486
+
539
487
  /**
540
488
  * proxy to browser navigator.mediaDevices.enumerateDevices()
541
489
  * @returns {Promise}
542
490
  */
543
-
544
-
545
491
  Media.getDevices = function () {
546
492
  if (navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices) {
547
493
  return navigator.mediaDevices.enumerateDevices();
548
494
  }
549
-
550
495
  return _promise.default.reject(new _media.default('enumerateDevices not supported.'));
551
496
  };
497
+
552
498
  /**
553
499
  *
554
500
  * Toggle a specific stream
555
501
  * noop as of now, does nothing
556
502
  * @returns {null}
557
503
  */
558
-
559
-
560
504
  Media.toggleStream = function () {};
505
+
561
506
  /**
562
507
  * Stop input stream
563
508
  * @param {MediaTrack} track A media stream
564
509
  * @returns {null}
565
510
  */
566
-
567
-
568
511
  Media.stopTracks = function (track) {
569
512
  if (!track) {
570
513
  return _promise.default.resolve();
571
514
  }
572
-
573
515
  return _promise.default.resolve().then(function () {
574
516
  if (track && track.stop) {
575
517
  try {
@@ -580,6 +522,7 @@ Media.stopTracks = function (track) {
580
522
  }
581
523
  });
582
524
  };
525
+
583
526
  /**
584
527
  *
585
528
  * Stop input stream
@@ -587,21 +530,17 @@ Media.stopTracks = function (track) {
587
530
  * @returns {null}
588
531
  * @deprecated after v1.89.3
589
532
  */
590
-
591
-
592
533
  Media.stopStream = function (stream) {
593
534
  _loggerProxy.default.logger.warn('Media:index#stopStream --> [DEPRECATION WARNING]: stopStream has been deprecated after v1.89.3');
594
-
595
535
  if (!stream) {
596
536
  return _promise.default.resolve();
597
537
  }
538
+
598
539
  /*
599
540
  * To release local media
600
541
  * 1) Chrome requires all tracks to be stopped (stream.stop got deprecated)
601
542
  * 2) Firefox requires the stream to be stopped
602
543
  */
603
-
604
-
605
544
  return _promise.default.resolve().then(function () {
606
545
  if (stream.getTracks) {
607
546
  stream.getTracks().forEach(function (track) {
@@ -612,6 +551,7 @@ Media.stopStream = function (stream) {
612
551
  }
613
552
  });
614
553
  };
554
+
615
555
  /**
616
556
  * generates streams for audio video and share
617
557
  * @param {object} mediaSetting parameter
@@ -628,8 +568,6 @@ Media.stopStream = function (stream) {
628
568
  * @param {Object} config SDK Config
629
569
  * @returns {Array} [localStream, shareStream]
630
570
  */
631
-
632
-
633
571
  Media.getUserMedia = function (mediaSetting, audioVideo, sharePreferences, config) {
634
572
  return Media.getLocalMedia({
635
573
  sendAudio: mediaSetting.sendAudio ? audioVideo.audio || mediaSetting.sendAudio : false,
@@ -644,7 +582,6 @@ Media.getUserMedia = function (mediaSetting, audioVideo, sharePreferences, confi
644
582
  });
645
583
  });
646
584
  };
647
-
648
585
  var _default = Media;
649
586
  exports.default = _default;
650
587
  //# sourceMappingURL=index.js.map