@webex/plugin-meetings 3.0.0-beta.14 → 3.0.0-beta.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 (311) 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 +6 -41
  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 +45 -40
  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 -38
  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 +43 -97
  74. package/dist/media/index.js.map +1 -1
  75. package/dist/media/internal-media-core-wrapper.js +0 -4
  76. package/dist/media/internal-media-core-wrapper.js.map +1 -1
  77. package/dist/media/properties.js +64 -110
  78. package/dist/media/properties.js.map +1 -1
  79. package/dist/media/util.js +2 -9
  80. package/dist/media/util.js.map +1 -1
  81. package/dist/mediaQualityMetrics/config.js +10 -12
  82. package/dist/mediaQualityMetrics/config.js.map +1 -1
  83. package/dist/meeting/effectsState.js +120 -192
  84. package/dist/meeting/effectsState.js.map +1 -1
  85. package/dist/meeting/in-meeting-actions.js +0 -13
  86. package/dist/meeting/in-meeting-actions.js.map +1 -1
  87. package/dist/meeting/index.js +819 -1591
  88. package/dist/meeting/index.js.map +1 -1
  89. package/dist/meeting/muteState.js +31 -78
  90. package/dist/meeting/muteState.js.map +1 -1
  91. package/dist/meeting/request.js +160 -230
  92. package/dist/meeting/request.js.map +1 -1
  93. package/dist/meeting/request.type.js +0 -1
  94. package/dist/meeting/request.type.js.map +1 -1
  95. package/dist/meeting/state.js +21 -31
  96. package/dist/meeting/state.js.map +1 -1
  97. package/dist/meeting/util.js +19 -158
  98. package/dist/meeting/util.js.map +1 -1
  99. package/dist/meeting-info/collection.js +3 -25
  100. package/dist/meeting-info/collection.js.map +1 -1
  101. package/dist/meeting-info/index.js +10 -33
  102. package/dist/meeting-info/index.js.map +1 -1
  103. package/dist/meeting-info/meeting-info-v2.js +179 -268
  104. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  105. package/dist/meeting-info/request.js +1 -16
  106. package/dist/meeting-info/request.js.map +1 -1
  107. package/dist/meeting-info/util.js +98 -183
  108. package/dist/meeting-info/util.js.map +1 -1
  109. package/dist/meeting-info/utilv2.js +137 -228
  110. package/dist/meeting-info/utilv2.js.map +1 -1
  111. package/dist/meetings/collection.js +3 -21
  112. package/dist/meetings/collection.js.map +1 -1
  113. package/dist/meetings/index.js +450 -582
  114. package/dist/meetings/index.js.map +1 -1
  115. package/dist/meetings/request.js +7 -30
  116. package/dist/meetings/request.js.map +1 -1
  117. package/dist/meetings/util.js +99 -155
  118. package/dist/meetings/util.js.map +1 -1
  119. package/dist/member/index.js +49 -89
  120. package/dist/member/index.js.map +1 -1
  121. package/dist/member/util.js +17 -68
  122. package/dist/member/util.js.map +1 -1
  123. package/dist/members/collection.js +2 -12
  124. package/dist/members/collection.js.map +1 -1
  125. package/dist/members/index.js +72 -194
  126. package/dist/members/index.js.map +1 -1
  127. package/dist/members/request.js +21 -56
  128. package/dist/members/request.js.map +1 -1
  129. package/dist/members/util.js +9 -38
  130. package/dist/members/util.js.map +1 -1
  131. package/dist/metrics/config.js +0 -2
  132. package/dist/metrics/config.js.map +1 -1
  133. package/dist/metrics/constants.js +1 -2
  134. package/dist/metrics/constants.js.map +1 -1
  135. package/dist/metrics/index.js +48 -136
  136. package/dist/metrics/index.js.map +1 -1
  137. package/dist/multistream/mediaRequestManager.js +12 -28
  138. package/dist/multistream/mediaRequestManager.js.map +1 -1
  139. package/dist/multistream/multistreamMedia.js +11 -21
  140. package/dist/multistream/multistreamMedia.js.map +1 -1
  141. package/dist/multistream/receiveSlot.js +7 -47
  142. package/dist/multistream/receiveSlot.js.map +1 -1
  143. package/dist/multistream/receiveSlotManager.js +38 -77
  144. package/dist/multistream/receiveSlotManager.js.map +1 -1
  145. package/dist/multistream/remoteMedia.js +11 -56
  146. package/dist/multistream/remoteMedia.js.map +1 -1
  147. package/dist/multistream/remoteMediaGroup.js +6 -40
  148. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  149. package/dist/multistream/remoteMediaManager.js +221 -380
  150. package/dist/multistream/remoteMediaManager.js.map +1 -1
  151. package/dist/networkQualityMonitor/index.js +28 -57
  152. package/dist/networkQualityMonitor/index.js.map +1 -1
  153. package/dist/personal-meeting-room/index.js +10 -45
  154. package/dist/personal-meeting-room/index.js.map +1 -1
  155. package/dist/personal-meeting-room/request.js +2 -33
  156. package/dist/personal-meeting-room/request.js.map +1 -1
  157. package/dist/personal-meeting-room/util.js +0 -13
  158. package/dist/personal-meeting-room/util.js.map +1 -1
  159. package/dist/reachability/index.js +100 -166
  160. package/dist/reachability/index.js.map +1 -1
  161. package/dist/reachability/request.js +2 -18
  162. package/dist/reachability/request.js.map +1 -1
  163. package/dist/reactions/reactions.js +0 -2
  164. package/dist/reactions/reactions.js.map +1 -1
  165. package/dist/reactions/reactions.type.js +2 -6
  166. package/dist/reactions/reactions.type.js.map +1 -1
  167. package/dist/reconnection-manager/index.js +294 -459
  168. package/dist/reconnection-manager/index.js.map +1 -1
  169. package/dist/roap/index.js +18 -53
  170. package/dist/roap/index.js.map +1 -1
  171. package/dist/roap/request.js +13 -55
  172. package/dist/roap/request.js.map +1 -1
  173. package/dist/roap/turnDiscovery.js +10 -52
  174. package/dist/roap/turnDiscovery.js.map +1 -1
  175. package/dist/statsAnalyzer/global.js +0 -2
  176. package/dist/statsAnalyzer/global.js.map +1 -1
  177. package/dist/statsAnalyzer/index.js +66 -174
  178. package/dist/statsAnalyzer/index.js.map +1 -1
  179. package/dist/statsAnalyzer/mqaUtil.js +54 -53
  180. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  181. package/dist/transcription/index.js +13 -45
  182. package/dist/transcription/index.js.map +1 -1
  183. package/internal-README.md +7 -6
  184. package/package.json +18 -18
  185. package/src/common/browser-detection.ts +9 -6
  186. package/src/common/collection.ts +3 -1
  187. package/src/common/errors/captcha-error.ts +6 -6
  188. package/src/common/errors/intent-to-join.ts +6 -6
  189. package/src/common/errors/join-meeting.ts +12 -8
  190. package/src/common/errors/media.ts +6 -6
  191. package/src/common/errors/parameter.ts +9 -6
  192. package/src/common/errors/password-error.ts +6 -6
  193. package/src/common/errors/permission.ts +5 -5
  194. package/src/common/errors/reconnection.ts +6 -6
  195. package/src/common/errors/stats.ts +6 -6
  196. package/src/common/errors/webex-errors.ts +7 -5
  197. package/src/common/errors/webex-meetings-error.ts +1 -1
  198. package/src/common/events/events-scope.ts +5 -1
  199. package/src/common/events/events.ts +5 -1
  200. package/src/common/events/trigger-proxy.ts +8 -3
  201. package/src/common/events/util.ts +1 -2
  202. package/src/common/logs/logger-proxy.ts +21 -10
  203. package/src/common/logs/request.ts +11 -8
  204. package/src/config.ts +11 -11
  205. package/src/constants.ts +1 -1
  206. package/src/index.js +1 -1
  207. package/src/locus-info/controlsUtils.ts +34 -24
  208. package/src/locus-info/fullState.ts +15 -11
  209. package/src/locus-info/hostUtils.ts +4 -3
  210. package/src/locus-info/index.ts +25 -34
  211. package/src/locus-info/infoUtils.ts +12 -4
  212. package/src/locus-info/mediaSharesUtils.ts +4 -4
  213. package/src/locus-info/parser.ts +45 -68
  214. package/src/locus-info/selfUtils.ts +106 -57
  215. package/src/media/index.ts +123 -135
  216. package/src/media/internal-media-core-wrapper.ts +2 -2
  217. package/src/media/properties.ts +30 -20
  218. package/src/media/util.ts +1 -1
  219. package/src/mediaQualityMetrics/config.ts +46 -46
  220. package/src/meeting/effectsState.ts +35 -35
  221. package/src/meeting/in-meeting-actions.ts +7 -3
  222. package/src/meeting/index.ts +1559 -1292
  223. package/src/meeting/muteState.ts +62 -31
  224. package/src/meeting/request.ts +155 -116
  225. package/src/meeting/request.type.ts +8 -8
  226. package/src/meeting/state.ts +45 -30
  227. package/src/meeting/util.ts +101 -70
  228. package/src/meeting-info/collection.ts +2 -1
  229. package/src/meeting-info/index.ts +32 -30
  230. package/src/meeting-info/meeting-info-v2.ts +106 -108
  231. package/src/meeting-info/request.ts +9 -3
  232. package/src/meeting-info/util.ts +54 -46
  233. package/src/meeting-info/utilv2.ts +59 -53
  234. package/src/meetings/collection.ts +1 -1
  235. package/src/meetings/index.ts +512 -440
  236. package/src/meetings/request.ts +26 -24
  237. package/src/meetings/util.ts +29 -29
  238. package/src/member/index.ts +55 -49
  239. package/src/member/util.ts +26 -13
  240. package/src/members/collection.ts +0 -1
  241. package/src/members/index.ts +182 -126
  242. package/src/members/request.ts +46 -14
  243. package/src/members/util.ts +44 -42
  244. package/src/metrics/config.ts +254 -81
  245. package/src/metrics/constants.ts +0 -2
  246. package/src/metrics/index.ts +84 -71
  247. package/src/multistream/multistreamMedia.ts +1 -0
  248. package/src/multistream/receiveSlot.ts +1 -0
  249. package/src/multistream/receiveSlotManager.ts +1 -0
  250. package/src/multistream/remoteMedia.ts +1 -1
  251. package/src/multistream/remoteMediaGroup.ts +2 -1
  252. package/src/multistream/remoteMediaManager.ts +3 -0
  253. package/src/networkQualityMonitor/index.ts +20 -23
  254. package/src/personal-meeting-room/index.ts +12 -16
  255. package/src/personal-meeting-room/request.ts +10 -3
  256. package/src/personal-meeting-room/util.ts +3 -3
  257. package/src/reachability/index.ts +61 -59
  258. package/src/reachability/request.ts +36 -32
  259. package/src/reactions/reactions.ts +4 -4
  260. package/src/reactions/reactions.type.ts +4 -3
  261. package/src/reconnection-manager/index.ts +139 -84
  262. package/src/roap/index.ts +46 -38
  263. package/src/roap/request.ts +44 -31
  264. package/src/roap/turnDiscovery.ts +59 -30
  265. package/src/statsAnalyzer/global.ts +30 -33
  266. package/src/statsAnalyzer/index.ts +432 -175
  267. package/src/statsAnalyzer/mqaUtil.ts +178 -72
  268. package/src/transcription/index.ts +34 -32
  269. package/test/integration/spec/journey.js +664 -463
  270. package/test/integration/spec/space-meeting.js +319 -204
  271. package/test/integration/spec/transcription.js +7 -8
  272. package/test/unit/spec/common/browser-detection.js +9 -28
  273. package/test/unit/spec/fixture/locus.js +92 -90
  274. package/test/unit/spec/locus-info/controlsUtils.js +5 -5
  275. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  276. package/test/unit/spec/locus-info/index.js +1 -2
  277. package/test/unit/spec/locus-info/infoUtils.js +26 -33
  278. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  279. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  280. package/test/unit/spec/locus-info/parser.js +3 -9
  281. package/test/unit/spec/locus-info/selfConstant.js +72 -103
  282. package/test/unit/spec/locus-info/selfUtils.js +21 -12
  283. package/test/unit/spec/meeting/effectsState.js +36 -46
  284. package/test/unit/spec/meeting/in-meeting-actions.ts +2 -3
  285. package/test/unit/spec/meeting/index.js +1279 -685
  286. package/test/unit/spec/meeting/muteState.js +42 -33
  287. package/test/unit/spec/meeting/request.js +57 -46
  288. package/test/unit/spec/meeting/utils.js +78 -53
  289. package/test/unit/spec/meeting-info/meetinginfov2.js +100 -73
  290. package/test/unit/spec/meeting-info/request.js +7 -9
  291. package/test/unit/spec/meeting-info/util.js +11 -12
  292. package/test/unit/spec/meeting-info/utilv2.js +110 -74
  293. package/test/unit/spec/meetings/collection.js +1 -1
  294. package/test/unit/spec/meetings/index.js +438 -257
  295. package/test/unit/spec/meetings/utils.js +14 -12
  296. package/test/unit/spec/member/index.js +0 -1
  297. package/test/unit/spec/member/util.js +5 -6
  298. package/test/unit/spec/members/index.js +104 -54
  299. package/test/unit/spec/members/request.js +29 -20
  300. package/test/unit/spec/members/utils.js +8 -5
  301. package/test/unit/spec/metrics/index.js +16 -21
  302. package/test/unit/spec/networkQualityMonitor/index.js +21 -15
  303. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  304. package/test/unit/spec/reachability/index.ts +9 -11
  305. package/test/unit/spec/reconnection-manager/index.js +16 -18
  306. package/test/unit/spec/roap/turnDiscovery.ts +22 -19
  307. package/test/unit/spec/stats-analyzer/index.js +25 -20
  308. package/test/utils/cmr.js +44 -42
  309. package/test/utils/testUtils.js +83 -74
  310. package/test/utils/webex-config.js +18 -18
  311. package/test/utils/webex-test-users.js +53 -50
@@ -9,7 +9,6 @@ import LocusDeltaParser from '@webex/plugin-meetings/src/locus-info/parser';
9
9
  import basicSequenceComparisons from './lib/BasicSeqCmp.json';
10
10
  import sequenceComparisons from './lib/SeqCmp';
11
11
 
12
-
13
12
  describe('locus-info/parser', () => {
14
13
  describe('Locus Sequence Comparison Algorithm', () => {
15
14
  describe('basic sequence comparisons', () => {
@@ -73,11 +72,11 @@ describe('locus-info/parser', () => {
73
72
  const {description, result} = sequenceComparisons.update_actions[key];
74
73
 
75
74
  const current = {
76
- sequence: sequenceComparisons.sequences[currentKey]
75
+ sequence: sequenceComparisons.sequences[currentKey],
77
76
  };
78
77
  const incoming = {
79
78
  sequence: sequenceComparisons.sequences[incomingKey],
80
- baseSequence: sequenceComparisons.sequences[baseKey]
79
+ baseSequence: sequenceComparisons.sequences[baseKey],
81
80
  };
82
81
  const comparison = LocusDeltaParser.compare(current, incoming);
83
82
  const action = extract(comparison);
@@ -161,7 +160,6 @@ describe('locus-info/parser', () => {
161
160
  assert.calledOnce(parser.pause);
162
161
  });
163
162
 
164
-
165
163
  it('should update working copy on USE_INCOMING', () => {
166
164
  const {USE_INCOMING} = LocusDeltaParser.loci;
167
165
 
@@ -173,7 +171,6 @@ describe('locus-info/parser', () => {
173
171
  assert.equal(parser.workingCopy, NEW_LOCI);
174
172
  });
175
173
 
176
-
177
174
  it('calls onDeltaAction() when a comparison result is available', () => {
178
175
  const {USE_INCOMING} = LocusDeltaParser.loci;
179
176
  const lociComparison = USE_INCOMING;
@@ -186,7 +183,6 @@ describe('locus-info/parser', () => {
186
183
  assert.calledWith(parser.onDeltaAction, lociComparison, NEW_LOCI);
187
184
  });
188
185
 
189
-
190
186
  it('should call nextEvent()', () => {
191
187
  const {USE_INCOMING} = LocusDeltaParser.loci;
192
188
 
@@ -198,7 +194,6 @@ describe('locus-info/parser', () => {
198
194
  assert.calledOnce(parser.nextEvent);
199
195
  });
200
196
 
201
-
202
197
  it('should not call compare() if locus is invalid', () => {
203
198
  const {USE_INCOMING} = LocusDeltaParser.loci;
204
199
 
@@ -212,7 +207,6 @@ describe('locus-info/parser', () => {
212
207
  assert.notCalled(LocusDeltaParser.compare);
213
208
  });
214
209
 
215
-
216
210
  it('processDeltaEvent() should take next item in queue', () => {
217
211
  // restore the original method
218
212
  parser.queue.dequeue = sandbox.stub();
@@ -254,7 +248,7 @@ describe('locus-info/parser', () => {
254
248
  parser = new LocusDeltaParser();
255
249
  loci = {
256
250
  rangeStart: 0,
257
- rangeEnd: 0
251
+ rangeEnd: 0,
258
252
  };
259
253
  });
260
254
 
@@ -1,19 +1,19 @@
1
-
2
1
  export const self = {
3
2
  deviceUrl: 'https://wdm-a.wbx2.com/wdm/api/v1/devices/20eabde3-4254-48da-9a24',
4
3
  alertHint: {
5
- action: 'NONE'
4
+ action: 'NONE',
6
5
  },
7
6
  alertType: {
8
- action: 'NONE'
7
+ action: 'NONE',
9
8
  },
10
9
  callbackInfo: {
11
10
  callbackAddress: 'alice@alpha.webex.com',
12
- callbackType: 'SIPURI'
11
+ callbackType: 'SIPURI',
13
12
  },
14
13
  lookUpInfo: {
15
- lookupLink: 'https://locus.meet-a.prod.meetapi.webex.com/locus/api/v1/loci/meetingInfo/4e073f82-f5b6-31e5-93b3?type=LOCUS_ID&useUriLookup=false',
16
- type: 'MEETING'
14
+ lookupLink:
15
+ 'https://locus.meet-a.prod.meetapi.webex.com/locus/api/v1/loci/meetingInfo/4e073f82-f5b6-31e5-93b3?type=LOCUS_ID&useUriLookup=false',
16
+ type: 'MEETING',
17
17
  },
18
18
  isCreator: false,
19
19
  identity: '344ea183-9d5d-4e77-aed2-',
@@ -25,7 +25,7 @@ export const self = {
25
25
  email: 'alic@cisco.com',
26
26
  name: 'alice',
27
27
  isExternal: false,
28
- orgId: '1eb65fdf-9643-417f-9974'
28
+ orgId: '1eb65fdf-9643-417f-9974',
29
29
  },
30
30
  devices: [
31
31
  {
@@ -34,106 +34,89 @@ export const self = {
34
34
  mediaConnections: [
35
35
  {
36
36
  mediaId: '5706ee09-b2f6-4d0a-b43e-05dbcdea524d',
37
- actionsUrl: 'https://cme-junctionbox-apdx2-006-apdx2-public.wbx2.com:443/calliope/api/v1/rest/send/16a7d18c-71a5-4f51-8732-b456e7832197/calliope/api/v1/confluences/cd12fc68-53e9-43c2-be01-/actions',
38
- type: 'SDP'
39
- }
37
+ actionsUrl:
38
+ 'https://cme-junctionbox-apdx2-006-apdx2-public.wbx2.com:443/calliope/api/v1/rest/send/16a7d18c-71a5-4f51-8732-b456e7832197/calliope/api/v1/confluences/cd12fc68-53e9-43c2-be01-/actions',
39
+ type: 'SDP',
40
+ },
40
41
  ],
41
42
  mediaSessions: [
42
43
  {
43
44
  mediaType: 'audio',
44
45
  mediaContent: 'main',
45
46
  direction: 'sendrecv',
46
- state: 'active'
47
+ state: 'active',
47
48
  },
48
49
  {
49
50
  mediaType: 'video',
50
51
  mediaContent: 'main',
51
52
  direction: 'sendrecv',
52
- state: 'active'
53
+ state: 'active',
53
54
  },
54
55
  {
55
56
  mediaType: 'audio',
56
57
  mediaContent: 'slides',
57
58
  direction: 'inactive',
58
- state: 'inactive'
59
+ state: 'inactive',
59
60
  },
60
61
  {
61
62
  mediaType: 'video',
62
63
  mediaContent: 'slides',
63
64
  direction: 'recvonly',
64
- state: 'active'
65
- }
65
+ state: 'active',
66
+ },
66
67
  ],
67
68
  mediaSessionsExternal: false,
68
69
  state: 'JOINED',
69
70
  intent: {type: ''},
70
- intents: [
71
- null
72
- ],
71
+ intents: [null],
73
72
  keepAliveSecs: 20,
74
73
  callLegId: '84bbb491-598f-4828-bd27',
75
74
  correlationId: '74421718-e1f8-4555-9497',
76
75
  isVideoCallback: false,
77
- csis: [
78
- 515285760,
79
- 515285761,
80
- 3779681281,
81
- 3779681280
82
- ],
76
+ csis: [515285760, 515285761, 3779681281, 3779681280],
83
77
  serverTranscoded: true,
84
78
  serverComposed: true,
85
- availableLayouts: [
86
- 'Single',
87
- 'ActivePresence',
88
- 'Prominent',
89
- 'Equal',
90
- 'OnePlusN'
91
- ]
92
- }
79
+ availableLayouts: ['Single', 'ActivePresence', 'Prominent', 'Equal', 'OnePlusN'],
80
+ },
93
81
  ],
94
82
  status: {
95
83
  audioStatus: 'SENDRECV',
96
84
  videoStatus: 'SENDRECV',
97
85
  videoSlidesStatus: 'RECVONLY',
98
86
  audioSlidesStatus: 'INACTIVE',
99
- csis: [
100
- 515285760,
101
- 515285761,
102
- 3779681281,
103
- 3779681280
104
- ]
87
+ csis: [515285760, 515285761, 3779681281, 3779681280],
105
88
  },
106
89
  suggestedMedia: [
107
90
  {
108
91
  mediaType: 'audio',
109
92
  mediaContent: 'main',
110
- direction: 'inactive'
93
+ direction: 'inactive',
111
94
  },
112
95
  {
113
96
  mediaType: 'video',
114
97
  mediaContent: 'main',
115
- direction: 'recvonly'
98
+ direction: 'recvonly',
116
99
  },
117
100
  {
118
101
  mediaType: 'video',
119
102
  mediaContent: 'slides',
120
- direction: 'sendrecv'
121
- }
103
+ direction: 'sendrecv',
104
+ },
122
105
  ],
123
106
  controls: {
124
107
  audio: {
125
108
  muted: false,
126
109
  requestedToUnmute: false,
127
- meta: {}
110
+ meta: {},
128
111
  },
129
112
  localRecord: {
130
- recording: false
113
+ recording: false,
131
114
  },
132
115
  layouts: [
133
116
  {
134
117
  type: 'activePresence',
135
- deviceUrl: 'https://wdm-a.wbx2.com/wdm/api/v1/devices/20eabde3-4254-48da-9a24'
136
- }
118
+ deviceUrl: 'https://wdm-a.wbx2.com/wdm/api/v1/devices/20eabde3-4254-48da-9a24',
119
+ },
137
120
  ],
138
121
  role: {
139
122
  presenter: true,
@@ -142,11 +125,11 @@ export const self = {
142
125
  type: 'PRESENTER',
143
126
  hasRole: true,
144
127
  meta: {
145
- lastModified: '2020-07-20T20:32:35.259Z'
146
- }
147
- }
148
- ]
149
- }
128
+ lastModified: '2020-07-20T20:32:35.259Z',
129
+ },
130
+ },
131
+ ],
132
+ },
150
133
  },
151
134
  enableDTMF: true,
152
135
  id: 'e0d54e94-226c-3290-b75a-',
@@ -154,7 +137,8 @@ export const self = {
154
137
  resourceGuest: false,
155
138
  moderator: true,
156
139
  panelist: false,
157
- mediaBaseUrl: 'https://locus.meet-a.prod.meetapi.webex.com/locus/api/v1/loci/4e073f82-f5b6-31e5-93b3/participant/e0d54e94-226c-3290-b75a-/media',
140
+ mediaBaseUrl:
141
+ 'https://locus.meet-a.prod.meetapi.webex.com/locus/api/v1/loci/4e073f82-f5b6-31e5-93b3/participant/e0d54e94-226c-3290-b75a-/media',
158
142
  canNotViewTheParticipantList: false,
159
143
  isSharingBlocked: false,
160
144
  };
@@ -162,18 +146,19 @@ export const self = {
162
146
  export const selfWithInactivity = {
163
147
  deviceUrl: 'https://wdm-a.wbx2.com/wdm/api/v1/devices/20eabde3-4254-48da-9a24',
164
148
  alertHint: {
165
- action: 'NONE'
149
+ action: 'NONE',
166
150
  },
167
151
  alertType: {
168
- action: 'NONE'
152
+ action: 'NONE',
169
153
  },
170
154
  callbackInfo: {
171
155
  callbackAddress: 'alice@alpha.webex.com',
172
- callbackType: 'SIPURI'
156
+ callbackType: 'SIPURI',
173
157
  },
174
158
  lookUpInfo: {
175
- lookupLink: 'https://locus.meet-a.prod.meetapi.webex.com/locus/api/v1/loci/meetingInfo/4e073f82-f5b6-31e5-93b3?type=LOCUS_ID&useUriLookup=false',
176
- type: 'MEETING'
159
+ lookupLink:
160
+ 'https://locus.meet-a.prod.meetapi.webex.com/locus/api/v1/loci/meetingInfo/4e073f82-f5b6-31e5-93b3?type=LOCUS_ID&useUriLookup=false',
161
+ type: 'MEETING',
177
162
  },
178
163
  isCreator: false,
179
164
  identity: '344ea183-9d5d-4e77-aed2-',
@@ -185,7 +170,7 @@ export const selfWithInactivity = {
185
170
  email: 'alic@cisco.com',
186
171
  name: 'alice',
187
172
  isExternal: false,
188
- orgId: '1eb65fdf-9643-417f-9974'
173
+ orgId: '1eb65fdf-9643-417f-9974',
189
174
  },
190
175
  devices: [
191
176
  {
@@ -194,105 +179,88 @@ export const selfWithInactivity = {
194
179
  mediaConnections: [
195
180
  {
196
181
  mediaId: '5706ee09-b2f6-4d0a-b43e-05dbcdea524d',
197
- actionsUrl: 'https://cme-junctionbox-apdx2-006-apdx2-public.wbx2.com:443/calliope/api/v1/rest/send/16a7d18c-71a5-4f51-8732-b456e7832197/calliope/api/v1/confluences/cd12fc68-53e9-43c2-be01-/actions',
198
- type: 'SDP'
199
- }
182
+ actionsUrl:
183
+ 'https://cme-junctionbox-apdx2-006-apdx2-public.wbx2.com:443/calliope/api/v1/rest/send/16a7d18c-71a5-4f51-8732-b456e7832197/calliope/api/v1/confluences/cd12fc68-53e9-43c2-be01-/actions',
184
+ type: 'SDP',
185
+ },
200
186
  ],
201
187
  mediaSessions: [
202
188
  {
203
189
  mediaType: 'audio',
204
190
  mediaContent: 'main',
205
191
  direction: 'sendrecv',
206
- state: 'inactive'
192
+ state: 'inactive',
207
193
  },
208
194
  {
209
195
  mediaType: 'video',
210
196
  mediaContent: 'main',
211
197
  direction: 'sendrecv',
212
- state: 'inactive'
198
+ state: 'inactive',
213
199
  },
214
200
  {
215
201
  mediaType: 'audio',
216
202
  mediaContent: 'slides',
217
203
  direction: 'inactive',
218
- state: 'inactive'
204
+ state: 'inactive',
219
205
  },
220
206
  {
221
207
  mediaType: 'video',
222
208
  mediaContent: 'slides',
223
209
  direction: 'recvonly',
224
- state: 'inactive'
225
- }
210
+ state: 'inactive',
211
+ },
226
212
  ],
227
213
  mediaSessionsExternal: false,
228
214
  state: 'JOINED',
229
- intents: [
230
- null
231
- ],
215
+ intents: [null],
232
216
  keepAliveSecs: 20,
233
217
  callLegId: '84bbb491-598f-4828-bd27',
234
218
  correlationId: '74421718-e1f8-4555-9497',
235
219
  isVideoCallback: false,
236
- csis: [
237
- 515285760,
238
- 515285761,
239
- 3779681281,
240
- 3779681280
241
- ],
220
+ csis: [515285760, 515285761, 3779681281, 3779681280],
242
221
  serverTranscoded: true,
243
222
  serverComposed: true,
244
- availableLayouts: [
245
- 'Single',
246
- 'ActivePresence',
247
- 'Prominent',
248
- 'Equal',
249
- 'OnePlusN'
250
- ]
251
- }
223
+ availableLayouts: ['Single', 'ActivePresence', 'Prominent', 'Equal', 'OnePlusN'],
224
+ },
252
225
  ],
253
226
  status: {
254
227
  audioStatus: 'SENDRECV',
255
228
  videoStatus: 'SENDRECV',
256
229
  videoSlidesStatus: 'RECVONLY',
257
230
  audioSlidesStatus: 'INACTIVE',
258
- csis: [
259
- 515285760,
260
- 515285761,
261
- 3779681281,
262
- 3779681280
263
- ]
231
+ csis: [515285760, 515285761, 3779681281, 3779681280],
264
232
  },
265
233
  suggestedMedia: [
266
234
  {
267
235
  mediaType: 'audio',
268
236
  mediaContent: 'main',
269
- direction: 'inactive'
237
+ direction: 'inactive',
270
238
  },
271
239
  {
272
240
  mediaType: 'video',
273
241
  mediaContent: 'main',
274
- direction: 'recvonly'
242
+ direction: 'recvonly',
275
243
  },
276
244
  {
277
245
  mediaType: 'video',
278
246
  mediaContent: 'slides',
279
- direction: 'sendrecv'
280
- }
247
+ direction: 'sendrecv',
248
+ },
281
249
  ],
282
250
  controls: {
283
251
  audio: {
284
252
  muted: false,
285
253
  requestedToUnmute: false,
286
- meta: {}
254
+ meta: {},
287
255
  },
288
256
  localRecord: {
289
- recording: false
257
+ recording: false,
290
258
  },
291
259
  layouts: [
292
260
  {
293
261
  type: 'activePresence',
294
- deviceUrl: 'https://wdm-a.wbx2.com/wdm/api/v1/devices/20eabde3-4254-48da-9a24'
295
- }
262
+ deviceUrl: 'https://wdm-a.wbx2.com/wdm/api/v1/devices/20eabde3-4254-48da-9a24',
263
+ },
296
264
  ],
297
265
  role: {
298
266
  presenter: true,
@@ -301,11 +269,11 @@ export const selfWithInactivity = {
301
269
  type: 'PRESENTER',
302
270
  hasRole: true,
303
271
  meta: {
304
- lastModified: '2020-07-20T20:32:35.259Z'
305
- }
306
- }
307
- ]
308
- }
272
+ lastModified: '2020-07-20T20:32:35.259Z',
273
+ },
274
+ },
275
+ ],
276
+ },
309
277
  },
310
278
  enableDTMF: true,
311
279
  id: 'e0d54e94-226c-3290-b75a-',
@@ -313,5 +281,6 @@ export const selfWithInactivity = {
313
281
  resourceGuest: false,
314
282
  moderator: true,
315
283
  panelist: false,
316
- mediaBaseUrl: 'https://locus.meet-a.prod.meetapi.webex.com/locus/api/v1/loci/4e073f82-f5b6-31e5-93b3/participant/e0d54e94-226c-3290-b75a-/media'
284
+ mediaBaseUrl:
285
+ 'https://locus.meet-a.prod.meetapi.webex.com/locus/api/v1/loci/4e073f82-f5b6-31e5-93b3/participant/e0d54e94-226c-3290-b75a-/media',
317
286
  };
@@ -60,7 +60,10 @@ describe('plugin-meetings', () => {
60
60
 
61
61
  describe('canNotViewTheParticipantList', () => {
62
62
  it('should return the correct value', () => {
63
- assert.equal(SelfUtils.canNotViewTheParticipantList(self), self.canNotViewTheParticipantList);
63
+ assert.equal(
64
+ SelfUtils.canNotViewTheParticipantList(self),
65
+ self.canNotViewTheParticipantList
66
+ );
64
67
  });
65
68
 
66
69
  it('should return false if the new self does not have a value', () => {
@@ -90,17 +93,23 @@ describe('plugin-meetings', () => {
90
93
  it('get roles works', () => {
91
94
  assert.deepEqual(SelfUtils.getRoles(self), ['PRESENTER']);
92
95
 
93
- assert.deepEqual(SelfUtils.getRoles({
94
- controls: {
95
- role: {roles: [{type: 'SOME_ARBITRARY_ROLE', hasRole: true}]}
96
- }
97
- }), ['SOME_ARBITRARY_ROLE']);
98
-
99
- assert.deepEqual(SelfUtils.getRoles({
100
- controls: {
101
- role: {roles: [{type: 'SOME_ARBITRARY_ROLE', hasRole: false}]}
102
- }
103
- }), []);
96
+ assert.deepEqual(
97
+ SelfUtils.getRoles({
98
+ controls: {
99
+ role: {roles: [{type: 'SOME_ARBITRARY_ROLE', hasRole: true}]},
100
+ },
101
+ }),
102
+ ['SOME_ARBITRARY_ROLE']
103
+ );
104
+
105
+ assert.deepEqual(
106
+ SelfUtils.getRoles({
107
+ controls: {
108
+ role: {roles: [{type: 'SOME_ARBITRARY_ROLE', hasRole: false}]},
109
+ },
110
+ }),
111
+ []
112
+ );
104
113
 
105
114
  assert.deepEqual(SelfUtils.getRoles({}), []);
106
115
  assert.deepEqual(SelfUtils.getRoles(), []);
@@ -20,7 +20,7 @@ describe('plugin-meetings', () => {
20
20
  error: () => {},
21
21
  warn: () => {},
22
22
  trace: () => {},
23
- debug: () => {}
23
+ debug: () => {},
24
24
  };
25
25
 
26
26
  beforeEach(() => {
@@ -34,8 +34,8 @@ describe('plugin-meetings', () => {
34
34
  writable: true,
35
35
  value: {
36
36
  getSupportedConstraints: sinon.stub().returns({
37
- sampleRate: true
38
- })
37
+ sampleRate: true,
38
+ }),
39
39
  },
40
40
  });
41
41
  LoggerConfig.set({verboseEvents: true, enable: false});
@@ -51,8 +51,8 @@ describe('plugin-meetings', () => {
51
51
  readyState: 'live',
52
52
  enabled: true,
53
53
  getSettings: () => ({
54
- sampleRate: 48000
55
- })
54
+ sampleRate: 48000,
55
+ }),
56
56
  });
57
57
 
58
58
  class FakeMediaStream {
@@ -85,7 +85,7 @@ describe('plugin-meetings', () => {
85
85
  connect: () => undefined,
86
86
  mediaStream: {
87
87
  getAudioTracks() {
88
- // eslint-disable-next-line no-undef
88
+ // eslint-disable-next-line no-undef
89
89
  return [new MediaStreamTrack()];
90
90
  },
91
91
  },
@@ -96,7 +96,7 @@ describe('plugin-meetings', () => {
96
96
  return {
97
97
  stream: {
98
98
  getAudioTracks() {
99
- // eslint-disable-next-line no-undef
99
+ // eslint-disable-next-line no-undef
100
100
  return [new MediaStreamTrack()];
101
101
  },
102
102
  },
@@ -112,7 +112,7 @@ describe('plugin-meetings', () => {
112
112
  }
113
113
 
114
114
  connect() {
115
- /* placeholder method */
115
+ /* placeholder method */
116
116
  }
117
117
  }
118
118
 
@@ -128,7 +128,7 @@ describe('plugin-meetings', () => {
128
128
 
129
129
  getSettings() {
130
130
  return {
131
- sampleRate: 48000
131
+ sampleRate: 48000,
132
132
  };
133
133
  }
134
134
  }
@@ -157,15 +157,15 @@ describe('plugin-meetings', () => {
157
157
  beforeEach(() => {
158
158
  webex = new MockWebex({
159
159
  children: {
160
- meetings: Meetings
161
- }
160
+ meetings: Meetings,
161
+ },
162
162
  });
163
163
  meeting = new Meeting(
164
164
  {
165
- userId: uuid1
165
+ userId: uuid1,
166
166
  },
167
167
  {
168
- parent: webex
168
+ parent: webex,
169
169
  }
170
170
  );
171
171
 
@@ -179,9 +179,11 @@ describe('plugin-meetings', () => {
179
179
  sinon.replace(meeting, 'addMedia', () => {
180
180
  sinon.stub(meeting.mediaProperties, 'audioTrack').value(fakeMediaTrack());
181
181
  sinon.stub(meeting.mediaProperties, 'mediaDirection').value({
182
- receiveAudio: true
182
+ receiveAudio: true,
183
183
  });
184
- sinon.stub(meeting.mediaProperties, 'webrtcMediaConnection').value({updateSendReceiveOptions: sinon.stub()});
184
+ sinon
185
+ .stub(meeting.mediaProperties, 'webrtcMediaConnection')
186
+ .value({updateSendReceiveOptions: sinon.stub()});
185
187
  });
186
188
  });
187
189
 
@@ -200,10 +202,7 @@ describe('plugin-meetings', () => {
200
202
  assert.equal(effects.state.bnr.enabled, BNR_STATUS.ENABLED);
201
203
 
202
204
  assert(Metrics.sendBehavioralMetric.calledOnce);
203
- assert.calledWith(
204
- Metrics.sendBehavioralMetric,
205
- BEHAVIORAL_METRICS.ENABLE_BNR_SUCCESS,
206
- );
205
+ assert.calledWith(Metrics.sendBehavioralMetric, BEHAVIORAL_METRICS.ENABLE_BNR_SUCCESS);
207
206
  });
208
207
 
209
208
  it('does resolve request if bnr is already enabled', async () => {
@@ -213,12 +212,14 @@ describe('plugin-meetings', () => {
213
212
  });
214
213
 
215
214
  it('if called twice, does bnr effect enable on audio track for the first request and resolves second', async () => {
216
- Promise.all([effects.handleClientRequest(true, meeting), effects.handleClientRequest(true, meeting)])
217
- .then((resolveFirst, resolveSecond) => {
218
- assert.isTrue(resolveFirst);
219
- assert.isTrue(resolveSecond);
220
- assert.calledOnce(MediaUtil.createMediaStream);
221
- });
215
+ Promise.all([
216
+ effects.handleClientRequest(true, meeting),
217
+ effects.handleClientRequest(true, meeting),
218
+ ]).then((resolveFirst, resolveSecond) => {
219
+ assert.isTrue(resolveFirst);
220
+ assert.isTrue(resolveSecond);
221
+ assert.calledOnce(MediaUtil.createMediaStream);
222
+ });
222
223
  });
223
224
 
224
225
  it('should throw error for inappropriate sample rate and send error metrics', async () => {
@@ -227,8 +228,8 @@ describe('plugin-meetings', () => {
227
228
  stop: () => {},
228
229
  readyState: 'live',
229
230
  getSettings: () => ({
230
- sampleRate: 49000
231
- })
231
+ sampleRate: 49000,
232
+ }),
232
233
  });
233
234
 
234
235
  sinon.stub(meeting.mediaProperties, 'audioTrack').value(fakeMediaTrack1());
@@ -237,16 +238,12 @@ describe('plugin-meetings', () => {
237
238
  MediaUtil.createMediaStream = sinon.stub().returns(new MediaStream([fakeMediaTrack1()]));
238
239
  try {
239
240
  await effects.handleClientRequest(true, meeting);
240
- }
241
- catch (err) {
241
+ } catch (err) {
242
242
  assert(Metrics.sendBehavioralMetric.calledOnce);
243
- assert.calledWith(
244
- Metrics.sendBehavioralMetric,
245
- BEHAVIORAL_METRICS.ENABLE_BNR_FAILURE, {
246
- reason: err.message,
247
- stack: err.stack
248
- }
249
- );
243
+ assert.calledWith(Metrics.sendBehavioralMetric, BEHAVIORAL_METRICS.ENABLE_BNR_FAILURE, {
244
+ reason: err.message,
245
+ stack: err.stack,
246
+ });
250
247
  assert.equal(err.message, 'Sample rate of 49000 is not supported.');
251
248
  }
252
249
  });
@@ -265,25 +262,18 @@ describe('plugin-meetings', () => {
265
262
  assert.equal(effects.state.bnr.enabled, BNR_STATUS.NOT_ENABLED);
266
263
 
267
264
  assert(Metrics.sendBehavioralMetric.calledOnce);
268
- assert.calledWith(
269
- Metrics.sendBehavioralMetric,
270
- BEHAVIORAL_METRICS.DISABLE_BNR_SUCCESS,
271
- );
265
+ assert.calledWith(Metrics.sendBehavioralMetric, BEHAVIORAL_METRICS.DISABLE_BNR_SUCCESS);
272
266
  });
273
267
 
274
268
  it('reject request for disable bnr if not enabled', async () => {
275
269
  try {
276
270
  await effects.handleClientRequest(false, meeting);
277
- }
278
- catch (e) {
271
+ } catch (e) {
279
272
  assert.equal(e.message, 'Can not disable as BNR is not enabled');
280
273
  assert.equal(effects.state.bnr.enabled, BNR_STATUS.ENABLED);
281
274
 
282
275
  assert(Metrics.sendBehavioralMetric.calledOnce);
283
- assert.calledWith(
284
- Metrics.sendBehavioralMetric,
285
- BEHAVIORAL_METRICS.DISABLE_BNR_FAILURE,
286
- );
276
+ assert.calledWith(Metrics.sendBehavioralMetric, BEHAVIORAL_METRICS.DISABLE_BNR_FAILURE);
287
277
  }
288
278
  });
289
279
  });