@webex/plugin-meetings 2.37.0 → 2.37.1

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
@@ -15,7 +15,9 @@ const MeetingStateMachine = {
15
15
  */
16
16
  create(meetingRef: any) {
17
17
  if (!meetingRef) {
18
- throw new ParameterError('You must initialize the meeting state machine with a meeting reference.');
18
+ throw new ParameterError(
19
+ 'You must initialize the meeting state machine with a meeting reference.'
20
+ );
19
21
  }
20
22
 
21
23
  return new StateMachine({
@@ -24,27 +26,36 @@ const MeetingStateMachine = {
24
26
  // when ringing a meeting, it must be first IDLE, because all other states are invalid, it transitions to the RINGING state
25
27
  {
26
28
  name: MEETING_STATE_MACHINE.TRANSITIONS.RING,
27
- from: [MEETING_STATE_MACHINE.STATES.IDLE, MEETING_STATE_MACHINE.STATES.ERROR, MEETING_STATE_MACHINE.STATES.JOINED],
28
- to: MEETING_STATE_MACHINE.STATES.RINGING
29
+ from: [
30
+ MEETING_STATE_MACHINE.STATES.IDLE,
31
+ MEETING_STATE_MACHINE.STATES.ERROR,
32
+ MEETING_STATE_MACHINE.STATES.JOINED,
33
+ ],
34
+ to: MEETING_STATE_MACHINE.STATES.RINGING,
29
35
  },
30
36
  // when joining a meeting, it must be from the RINGING or IDLE state, transitions to JOINED state, 1:1 will go to RINGING,
31
37
  // others will go straight to JOINED with this transition
32
38
  {
33
39
  name: MEETING_STATE_MACHINE.TRANSITIONS.JOIN,
34
- from: [MEETING_STATE_MACHINE.STATES.JOINED, MEETING_STATE_MACHINE.STATES.IDLE, MEETING_STATE_MACHINE.STATES.RINGING, MEETING_STATE_MACHINE.STATES.ERROR],
35
- to: MEETING_STATE_MACHINE.STATES.JOINED
40
+ from: [
41
+ MEETING_STATE_MACHINE.STATES.JOINED,
42
+ MEETING_STATE_MACHINE.STATES.IDLE,
43
+ MEETING_STATE_MACHINE.STATES.RINGING,
44
+ MEETING_STATE_MACHINE.STATES.ERROR,
45
+ ],
46
+ to: MEETING_STATE_MACHINE.STATES.JOINED,
36
47
  },
37
48
  // signify that ringing has stopped and somebody else answered, move state to DECLINED, ANSWERED
38
49
  {
39
50
  name: MEETING_STATE_MACHINE.TRANSITIONS.REMOTE,
40
51
  from: [MEETING_STATE_MACHINE.STATES.JOINED, MEETING_STATE_MACHINE.STATES.ERROR],
41
52
  /**
42
- * @param {Object} remote
43
- * @param {Boolean} remote.remoteAnswered
44
- * @param {Boolean} remote.remoteDeclined
45
- * @returns {String}
46
- */
47
- to(remote: { remoteAnswered: boolean; remoteDeclined: boolean }) {
53
+ * @param {Object} remote
54
+ * @param {Boolean} remote.remoteAnswered
55
+ * @param {Boolean} remote.remoteDeclined
56
+ * @returns {String}
57
+ */
58
+ to(remote: {remoteAnswered: boolean; remoteDeclined: boolean}) {
48
59
  // other user answered the call
49
60
  if (remote.remoteAnswered) {
50
61
  return MEETING_STATE_MACHINE.STATES.ANSWERED;
@@ -56,7 +67,7 @@ const MeetingStateMachine = {
56
67
 
57
68
  // default
58
69
  return MEETING_STATE_MACHINE.STATES.ERROR;
59
- }
70
+ },
60
71
  },
61
72
  // when leaving a meeting it must be from either the RINGING, JOINED, or ERROR states, and transitions it to the ENDED state
62
73
  {
@@ -67,9 +78,9 @@ const MeetingStateMachine = {
67
78
  MEETING_STATE_MACHINE.STATES.JOINED,
68
79
  MEETING_STATE_MACHINE.STATES.ANSWERED,
69
80
  MEETING_STATE_MACHINE.STATES.DECLINED,
70
- MEETING_STATE_MACHINE.STATES.ERROR
81
+ MEETING_STATE_MACHINE.STATES.ERROR,
71
82
  ],
72
- to: MEETING_STATE_MACHINE.STATES.ENDED
83
+ to: MEETING_STATE_MACHINE.STATES.ENDED,
73
84
  },
74
85
  {
75
86
  name: MEETING_STATE_MACHINE.TRANSITIONS.END,
@@ -79,33 +90,33 @@ const MeetingStateMachine = {
79
90
  MEETING_STATE_MACHINE.STATES.JOINED,
80
91
  MEETING_STATE_MACHINE.STATES.ANSWERED,
81
92
  MEETING_STATE_MACHINE.STATES.DECLINED,
82
- MEETING_STATE_MACHINE.STATES.ERROR
93
+ MEETING_STATE_MACHINE.STATES.ERROR,
83
94
  ],
84
- to: MEETING_STATE_MACHINE.STATES.ENDED
95
+ to: MEETING_STATE_MACHINE.STATES.ENDED,
85
96
  },
86
97
  {
87
98
  name: MEETING_STATE_MACHINE.TRANSITIONS.DECLINE,
88
99
  from: [MEETING_STATE_MACHINE.STATES.RINGING, MEETING_STATE_MACHINE.STATES.ERROR],
89
- to: MEETING_STATE_MACHINE.STATES.ENDED
100
+ to: MEETING_STATE_MACHINE.STATES.ENDED,
90
101
  },
91
102
  // transition from ANY state to ERROR state
92
103
  {
93
104
  name: MEETING_STATE_MACHINE.TRANSITIONS.FAIL,
94
105
  from: '*',
95
- to: MEETING_STATE_MACHINE.STATES.ERROR
106
+ to: MEETING_STATE_MACHINE.STATES.ERROR,
96
107
  },
97
108
  // fail safe, transition from ANY state to IDLE state
98
109
  {
99
110
  name: MEETING_STATE_MACHINE.TRANSITIONS.RESET,
100
111
  from: '*',
101
- to: MEETING_STATE_MACHINE.STATES.IDLE
102
- }
112
+ to: MEETING_STATE_MACHINE.STATES.IDLE,
113
+ },
103
114
  ],
104
115
  data: {
105
116
  /**
106
117
  * The meeting instance to execute all state changes on
107
118
  */
108
- meeting: meetingRef
119
+ meeting: meetingRef,
109
120
  },
110
121
  methods: {
111
122
  /**
@@ -120,12 +131,12 @@ const MeetingStateMachine = {
120
131
  this.meeting,
121
132
  {
122
133
  file: 'meeting/state',
123
- function: 'onRemote'
134
+ function: 'onRemote',
124
135
  },
125
136
  EVENT_TRIGGERS.MEETING_RINGING_STOP,
126
137
  {
127
138
  id: this.meeting.id,
128
- type: stop
139
+ type: stop,
129
140
  }
130
141
  );
131
142
  }
@@ -142,12 +153,12 @@ const MeetingStateMachine = {
142
153
  this.meeting,
143
154
  {
144
155
  file: 'meeting/state',
145
- function: 'onRing'
156
+ function: 'onRing',
146
157
  },
147
158
  EVENT_TRIGGERS.MEETING_RINGING,
148
159
  {
149
160
  type,
150
- id: this.meeting.id
161
+ id: this.meeting.id,
151
162
  }
152
163
  );
153
164
  }
@@ -159,7 +170,9 @@ const MeetingStateMachine = {
159
170
  * @returns {Boolean}
160
171
  */
161
172
  onEnterError(transition: any, error: Error) {
162
- LoggerProxy.logger.error(`Meeting:state#onEnterError --> state->onEnterError#meeting.id: ${this.meeting.id} | Transition '${transition?.transition}' : ${transition?.from} -> ${transition?.to}, with error ${error}. Last states: ${this.history}`);
173
+ LoggerProxy.logger.error(
174
+ `Meeting:state#onEnterError --> state->onEnterError#meeting.id: ${this.meeting.id} | Transition '${transition?.transition}' : ${transition?.from} -> ${transition?.to}, with error ${error}. Last states: ${this.history}`
175
+ );
163
176
  },
164
177
  /**
165
178
  * After ANY transition occurs, we want to know what state the meeting moved to for debugging
@@ -167,13 +180,15 @@ const MeetingStateMachine = {
167
180
  * @returns {Boolean}
168
181
  */
169
182
  onAfterTransition(transition: any) {
170
- LoggerProxy.logger.log(`Meeting:state#onAfterTransition --> state->onAfterTransition#meeting.id: ${this.meeting.id} | Transition '${transition.transition}' : ${transition.from} -> ${transition.to} executed. Last states: ${this.history}`);
171
- }
183
+ LoggerProxy.logger.log(
184
+ `Meeting:state#onAfterTransition --> state->onAfterTransition#meeting.id: ${this.meeting.id} | Transition '${transition.transition}' : ${transition.from} -> ${transition.to} executed. Last states: ${this.history}`
185
+ );
186
+ },
172
187
  },
173
188
  // track the last 25 states entered
174
- plugins: [new StateMachineHistory({max: 25})]
189
+ plugins: [new StateMachineHistory({max: 25})],
175
190
  });
176
- }
191
+ },
177
192
  };
178
193
 
179
194
  export default MeetingStateMachine;
@@ -5,13 +5,15 @@ import Metrics from '../metrics';
5
5
  import {eventType, trigger} from '../metrics/config';
6
6
  import Media from '../media';
7
7
  import LoggerProxy from '../common/logs/logger-proxy';
8
- import {INTENT_TO_JOIN,
8
+ import {
9
+ INTENT_TO_JOIN,
9
10
  _LEFT_,
10
11
  _IDLE_,
11
12
  _JOINED_,
12
13
  PASSWORD_STATUS,
13
14
  DISPLAY_HINTS,
14
- FULL_STATE} from '../constants';
15
+ FULL_STATE,
16
+ } from '../constants';
15
17
  import IntentToJoinError from '../common/errors/intent-to-join';
16
18
  import JoinMeetingError from '../common/errors/join-meeting';
17
19
  import ParameterError from '../common/errors/parameter';
@@ -48,29 +50,34 @@ MeetingUtil.remoteUpdateAudioVideo = (audioMuted, videoMuted, meeting) => {
48
50
  const localMedias = Media.generateLocalMedias(meeting.mediaId, audioMuted, videoMuted);
49
51
 
50
52
  if (isEmpty(localMedias)) {
51
- return Promise.reject(new ParameterError('You need a media id on the meeting to change remote audio.'));
53
+ return Promise.reject(
54
+ new ParameterError('You need a media id on the meeting to change remote audio.')
55
+ );
52
56
  }
53
57
 
54
58
  Metrics.postEvent({event: eventType.MEDIA_REQUEST, meeting});
55
59
 
56
- return meeting.meetingRequest.remoteAudioVideoToggle({
57
- locusUrl: meeting.locusUrl,
58
- selfId: meeting.selfId,
59
- localMedias,
60
- deviceUrl: meeting.deviceUrl,
61
- correlationId: meeting.correlationId
62
- }).then((response) => {
63
- Metrics.postEvent({event: eventType.MEDIA_RESPONSE, meeting});
60
+ return meeting.meetingRequest
61
+ .remoteAudioVideoToggle({
62
+ locusUrl: meeting.locusUrl,
63
+ selfId: meeting.selfId,
64
+ localMedias,
65
+ deviceUrl: meeting.deviceUrl,
66
+ correlationId: meeting.correlationId,
67
+ })
68
+ .then((response) => {
69
+ Metrics.postEvent({event: eventType.MEDIA_RESPONSE, meeting});
64
70
 
65
- return response.body.locus;
66
- });
71
+ return response.body.locus;
72
+ });
67
73
  };
68
74
 
69
75
  MeetingUtil.hasOwner = (info) => info && info.owner;
70
76
 
71
77
  MeetingUtil.isOwnerSelf = (owner, selfId) => owner === selfId;
72
78
 
73
- MeetingUtil.isPinOrGuest = (err) => err?.body?.errorCode && INTENT_TO_JOIN.includes(err.body.errorCode);
79
+ MeetingUtil.isPinOrGuest = (err) =>
80
+ err?.body?.errorCode && INTENT_TO_JOIN.includes(err.body.errorCode);
74
81
 
75
82
  MeetingUtil.joinMeeting = (meeting, options) => {
76
83
  if (!meeting) {
@@ -96,7 +103,7 @@ MeetingUtil.joinMeeting = (meeting, options) => {
96
103
  pin: options.pin,
97
104
  moveToResource: options.moveToResource,
98
105
  preferTranscoding: options.preferTranscoding,
99
- asResourceOccupant: options.asResourceOccupant
106
+ asResourceOccupant: options.asResourceOccupant,
100
107
  })
101
108
  .then((res) => {
102
109
  Metrics.postEvent({
@@ -106,8 +113,8 @@ MeetingUtil.joinMeeting = (meeting, options) => {
106
113
  trigger: trigger.LOCI_UPDATE,
107
114
  locus: res.body.locus,
108
115
  mediaConnections: res.body.mediaConnections,
109
- trackingId: res.headers.trackingid
110
- }
116
+ trackingId: res.headers.trackingid,
117
+ },
111
118
  });
112
119
 
113
120
  return MeetingUtil.parseLocusJoin(res);
@@ -116,7 +123,9 @@ MeetingUtil.joinMeeting = (meeting, options) => {
116
123
 
117
124
  MeetingUtil.cleanUp = (meeting) => {
118
125
  // make sure we send last metrics before we close the peerconnection
119
- const stopStatsAnalyzer = (meeting.statsAnalyzer) ? meeting.statsAnalyzer.stopAnalyzer() : Promise.resolve();
126
+ const stopStatsAnalyzer = meeting.statsAnalyzer
127
+ ? meeting.statsAnalyzer.stopAnalyzer()
128
+ : Promise.resolve();
120
129
 
121
130
  return stopStatsAnalyzer
122
131
  .then(() => meeting.closeLocalStream())
@@ -143,7 +152,7 @@ MeetingUtil.disconnectPhoneAudio = (meeting, phoneUrl) => {
143
152
  locusUrl: meeting.locusUrl,
144
153
  selfId: meeting.selfId,
145
154
  correlationId: meeting.correlationId,
146
- phoneUrl
155
+ phoneUrl,
147
156
  };
148
157
 
149
158
  return meeting.meetingRequest
@@ -155,9 +164,7 @@ MeetingUtil.disconnectPhoneAudio = (meeting, phoneUrl) => {
155
164
  })
156
165
  .catch((err) => {
157
166
  LoggerProxy.logger.error(
158
- `Meeting:util#disconnectPhoneAudio --> An error occured while disconnecting phone audio in meeting ${
159
- meeting.id
160
- }, error: ${err}`
167
+ `Meeting:util#disconnectPhoneAudio --> An error occured while disconnecting phone audio in meeting ${meeting.id}, error: ${err}`
161
168
  );
162
169
 
163
170
  return Promise.reject(err);
@@ -183,7 +190,7 @@ MeetingUtil.leaveMeeting = (meeting, options: any = {}) => {
183
190
  selfId: meeting.selfId,
184
191
  correlationId: meeting.correlationId,
185
192
  resourceId: meeting.resourceId,
186
- deviceUrl: meeting.deviceUrl
193
+ deviceUrl: meeting.deviceUrl,
187
194
  };
188
195
 
189
196
  const leaveOptions = {...defaultOptions, ...options};
@@ -191,7 +198,8 @@ MeetingUtil.leaveMeeting = (meeting, options: any = {}) => {
191
198
  return meeting.meetingRequest
192
199
  .leaveMeeting(leaveOptions)
193
200
  .then((response) => {
194
- if (response && response.body && response.body.locus) { // && !options.moveMeeting) {
201
+ if (response && response.body && response.body.locus) {
202
+ // && !options.moveMeeting) {
195
203
  meeting.locusInfo.onFullLocus(response.body.locus);
196
204
  }
197
205
 
@@ -209,9 +217,7 @@ MeetingUtil.leaveMeeting = (meeting, options: any = {}) => {
209
217
  // 1) on leave clean up the meeting or simply do a sync on the meeting
210
218
  // 2) If the error says meeting is inactive then destroy the meeting object
211
219
  LoggerProxy.logger.error(
212
- `Meeting:util#leaveMeeting --> An error occured while trying to leave meeting with an id of ${
213
- meeting.id
214
- }, error: ${err}`
220
+ `Meeting:util#leaveMeeting --> An error occured while trying to leave meeting with an id of ${meeting.id}, error: ${err}`
215
221
  );
216
222
 
217
223
  return Promise.reject(err);
@@ -221,21 +227,18 @@ MeetingUtil.declineMeeting = (meeting, reason) =>
221
227
  meeting.meetingRequest.declineMeeting({
222
228
  locusUrl: meeting.locusUrl,
223
229
  deviceUrl: meeting.deviceUrl,
224
- reason
230
+ reason,
225
231
  });
226
232
 
227
- MeetingUtil.isUserInLeftState = (locusInfo) =>
228
- locusInfo.parsedLocus?.self?.state === _LEFT_;
233
+ MeetingUtil.isUserInLeftState = (locusInfo) => locusInfo.parsedLocus?.self?.state === _LEFT_;
229
234
 
230
- MeetingUtil.isUserInIdleState = (locusInfo) =>
231
- locusInfo.parsedLocus?.self?.state === _IDLE_;
235
+ MeetingUtil.isUserInIdleState = (locusInfo) => locusInfo.parsedLocus?.self?.state === _IDLE_;
232
236
 
233
- MeetingUtil.isUserInJoinedState = (locusInfo) =>
234
- locusInfo.parsedLocus?.self?.state === _JOINED_;
237
+ MeetingUtil.isUserInJoinedState = (locusInfo) => locusInfo.parsedLocus?.self?.state === _JOINED_;
235
238
 
236
239
  MeetingUtil.isMediaEstablished = (currentMediaStatus) =>
237
- currentMediaStatus && (currentMediaStatus.audio || currentMediaStatus.video || currentMediaStatus.share);
238
-
240
+ currentMediaStatus &&
241
+ (currentMediaStatus.audio || currentMediaStatus.video || currentMediaStatus.share);
239
242
 
240
243
  MeetingUtil.joinMeetingOptions = (meeting, options: any = {}) => {
241
244
  meeting.resourceId = meeting.resourceId || options.resourceId;
@@ -250,7 +253,7 @@ MeetingUtil.joinMeetingOptions = (meeting, options: any = {}) => {
250
253
  if (options.pin) {
251
254
  Metrics.postEvent({
252
255
  event: eventType.PIN_COLLECTED,
253
- meeting
256
+ meeting,
254
257
  });
255
258
  }
256
259
 
@@ -266,7 +269,7 @@ MeetingUtil.joinMeetingOptions = (meeting, options: any = {}) => {
266
269
  if (MeetingUtil.isPinOrGuest(err)) {
267
270
  Metrics.postEvent({
268
271
  event: eventType.PIN_PROMPT,
269
- meeting
272
+ meeting,
270
273
  });
271
274
 
272
275
  // request host pin or non host for unclaimed PMR, start of Scenario C
@@ -287,33 +290,43 @@ MeetingUtil.updateTransceiver = (options, meetingOptions) => {
287
290
  track,
288
291
  transceiver,
289
292
  peerConnection,
290
- previousMediaDirection
293
+ previousMediaDirection,
291
294
  } = options;
292
295
 
293
- if ((sendTrack !== undefined && sendTrack !== previousMediaDirection.sendTrack) ||
294
- (receiveTrack !== undefined && receiveTrack !== previousMediaDirection.receiveTrack)) {
295
- return Media.updateTransceiver({
296
- meetingId: meetingOptions.meeting.id,
297
- remoteQualityLevel: meetingOptions.mediaProperties.remoteQualityLevel,
298
- enableRtx: meetingOptions.meeting.config.enableRtx,
299
- enableExtmap: meetingOptions.meeting.config.enableExtmap
300
- }, peerConnection, transceiver,
301
- {
302
- track,
303
- type,
304
- receiveTrack,
305
- sendTrack
306
- })
307
- .then(() => meetingOptions.meeting.roap
308
- .sendRoapMediaRequest({
296
+ if (
297
+ (sendTrack !== undefined && sendTrack !== previousMediaDirection.sendTrack) ||
298
+ (receiveTrack !== undefined && receiveTrack !== previousMediaDirection.receiveTrack)
299
+ ) {
300
+ return Media.updateTransceiver(
301
+ {
302
+ meetingId: meetingOptions.meeting.id,
303
+ remoteQualityLevel: meetingOptions.mediaProperties.remoteQualityLevel,
304
+ enableRtx: meetingOptions.meeting.config.enableRtx,
305
+ enableExtmap: meetingOptions.meeting.config.enableExtmap,
306
+ },
307
+ peerConnection,
308
+ transceiver,
309
+ {
310
+ track,
311
+ type,
312
+ receiveTrack,
313
+ sendTrack,
314
+ }
315
+ )
316
+ .then(() =>
317
+ meetingOptions.meeting.roap.sendRoapMediaRequest({
309
318
  sdp: meetingOptions.mediaProperties.peerConnection.sdp,
310
319
  roapSeq: meetingOptions.meeting.roapSeq,
311
- meeting: meetingOptions.meeting // or can pass meeting ID
312
- }))
320
+ meeting: meetingOptions.meeting, // or can pass meeting ID
321
+ })
322
+ )
313
323
  .catch((e) => {
314
- LoggerProxy.logger.error(`Meeting:util#updateTransceiver --> Error updating the ${type} streams with error: ${e}`);
324
+ LoggerProxy.logger.error(
325
+ `Meeting:util#updateTransceiver --> Error updating the ${type} streams with error: ${e}`
326
+ );
315
327
  });
316
- } if (track) {
328
+ }
329
+ if (track) {
317
330
  transceiver.sender.replaceTrack(track);
318
331
 
319
332
  return Promise.resolve();
@@ -323,9 +336,7 @@ MeetingUtil.updateTransceiver = (options, meetingOptions) => {
323
336
  };
324
337
 
325
338
  MeetingUtil.validateOptions = (options) => {
326
- const {
327
- sendVideo, sendAudio, sendShare, localStream, localShare
328
- } = options;
339
+ const {sendVideo, sendAudio, sendShare, localStream, localShare} = options;
329
340
 
330
341
  if (sendVideo && !MeetingUtil.getTrack(localStream).videoTrack) {
331
342
  return Promise.reject(new ParameterError('please pass valid video streams'));
@@ -383,23 +394,34 @@ MeetingUtil.getPolicyFromLocusInfo = (locusInfo) =>
383
394
  locusInfo.parsedLocus.info &&
384
395
  locusInfo.parsedLocus.info.policy;
385
396
 
386
- MeetingUtil.getUserDisplayHintsFromLocusInfo = (locusInfo) => locusInfo?.parsedLocus?.info?.userDisplayHints || [];
397
+ MeetingUtil.getUserDisplayHintsFromLocusInfo = (locusInfo) =>
398
+ locusInfo?.parsedLocus?.info?.userDisplayHints || [];
387
399
 
388
- MeetingUtil.canInviteNewParticipants = (displayHints) => displayHints.includes(DISPLAY_HINTS.ADD_GUEST);
400
+ MeetingUtil.canInviteNewParticipants = (displayHints) =>
401
+ displayHints.includes(DISPLAY_HINTS.ADD_GUEST);
389
402
 
390
- MeetingUtil.canAdmitParticipant = (displayHints) => displayHints.includes(DISPLAY_HINTS.ROSTER_WAITING_TO_JOIN);
403
+ MeetingUtil.canAdmitParticipant = (displayHints) =>
404
+ displayHints.includes(DISPLAY_HINTS.ROSTER_WAITING_TO_JOIN);
391
405
 
392
- MeetingUtil.canUserLock = (displayHints) => displayHints.includes(DISPLAY_HINTS.LOCK_CONTROL_LOCK) && displayHints.includes(DISPLAY_HINTS.LOCK_STATUS_UNLOCKED);
406
+ MeetingUtil.canUserLock = (displayHints) =>
407
+ displayHints.includes(DISPLAY_HINTS.LOCK_CONTROL_LOCK) &&
408
+ displayHints.includes(DISPLAY_HINTS.LOCK_STATUS_UNLOCKED);
393
409
 
394
- MeetingUtil.canUserUnlock = (displayHints) => displayHints.includes(DISPLAY_HINTS.LOCK_CONTROL_UNLOCK) && displayHints.includes(DISPLAY_HINTS.LOCK_STATUS_LOCKED);
410
+ MeetingUtil.canUserUnlock = (displayHints) =>
411
+ displayHints.includes(DISPLAY_HINTS.LOCK_CONTROL_UNLOCK) &&
412
+ displayHints.includes(DISPLAY_HINTS.LOCK_STATUS_LOCKED);
395
413
 
396
- MeetingUtil.canUserRecord = (displayHints) => displayHints.includes(DISPLAY_HINTS.RECORDING_CONTROL_START);
414
+ MeetingUtil.canUserRecord = (displayHints) =>
415
+ displayHints.includes(DISPLAY_HINTS.RECORDING_CONTROL_START);
397
416
 
398
- MeetingUtil.canUserPause = (displayHints) => displayHints.includes(DISPLAY_HINTS.RECORDING_CONTROL_PAUSE);
417
+ MeetingUtil.canUserPause = (displayHints) =>
418
+ displayHints.includes(DISPLAY_HINTS.RECORDING_CONTROL_PAUSE);
399
419
 
400
- MeetingUtil.canUserResume = (displayHints) => displayHints.includes(DISPLAY_HINTS.RECORDING_CONTROL_RESUME);
420
+ MeetingUtil.canUserResume = (displayHints) =>
421
+ displayHints.includes(DISPLAY_HINTS.RECORDING_CONTROL_RESUME);
401
422
 
402
- MeetingUtil.canUserStop = (displayHints) => displayHints.includes(DISPLAY_HINTS.RECORDING_CONTROL_STOP);
423
+ MeetingUtil.canUserStop = (displayHints) =>
424
+ displayHints.includes(DISPLAY_HINTS.RECORDING_CONTROL_STOP);
403
425
 
404
426
  MeetingUtil.startRecording = (request, locusUrl, locusInfo) => {
405
427
  const displayHints = MeetingUtil.getUserDisplayHintsFromLocusInfo(locusInfo);
@@ -408,7 +430,9 @@ MeetingUtil.startRecording = (request, locusUrl, locusInfo) => {
408
430
  return request.recordMeeting({locusUrl, recording: true, paused: false});
409
431
  }
410
432
 
411
- return Promise.reject(new PermissionError('Start recording not allowed, due to moderator property.'));
433
+ return Promise.reject(
434
+ new PermissionError('Start recording not allowed, due to moderator property.')
435
+ );
412
436
  };
413
437
 
414
438
  MeetingUtil.pauseRecording = (request, locusUrl, locusInfo) => {
@@ -418,7 +442,9 @@ MeetingUtil.pauseRecording = (request, locusUrl, locusInfo) => {
418
442
  return request.recordMeeting({locusUrl, recording: true, paused: true});
419
443
  }
420
444
 
421
- return Promise.reject(new PermissionError('Pause recording not allowed, due to moderator property.'));
445
+ return Promise.reject(
446
+ new PermissionError('Pause recording not allowed, due to moderator property.')
447
+ );
422
448
  };
423
449
 
424
450
  MeetingUtil.resumeRecording = (request, locusUrl, locusInfo) => {
@@ -428,7 +454,9 @@ MeetingUtil.resumeRecording = (request, locusUrl, locusInfo) => {
428
454
  return request.recordMeeting({locusUrl, recording: true, paused: false});
429
455
  }
430
456
 
431
- return Promise.reject(new PermissionError('Resume recording not allowed, due to moderator property.'));
457
+ return Promise.reject(
458
+ new PermissionError('Resume recording not allowed, due to moderator property.')
459
+ );
432
460
  };
433
461
 
434
462
  MeetingUtil.stopRecording = (request, locusUrl, locusInfo) => {
@@ -438,16 +466,22 @@ MeetingUtil.stopRecording = (request, locusUrl, locusInfo) => {
438
466
  return request.recordMeeting({locusUrl, recording: false, paused: false});
439
467
  }
440
468
 
441
- return Promise.reject(new PermissionError('Stop recording not allowed, due to moderator property.'));
469
+ return Promise.reject(
470
+ new PermissionError('Stop recording not allowed, due to moderator property.')
471
+ );
442
472
  };
443
473
 
444
474
  MeetingUtil.canUserRaiseHand = (displayHints) => displayHints.includes(DISPLAY_HINTS.RAISE_HAND);
445
475
 
446
- MeetingUtil.canUserLowerAllHands = (displayHints) => displayHints.includes(DISPLAY_HINTS.LOWER_ALL_HANDS);
476
+ MeetingUtil.canUserLowerAllHands = (displayHints) =>
477
+ displayHints.includes(DISPLAY_HINTS.LOWER_ALL_HANDS);
447
478
 
448
- MeetingUtil.canUserLowerSomeoneElsesHand = (displayHints) => displayHints.includes(DISPLAY_HINTS.LOWER_SOMEONE_ELSES_HAND);
479
+ MeetingUtil.canUserLowerSomeoneElsesHand = (displayHints) =>
480
+ displayHints.includes(DISPLAY_HINTS.LOWER_SOMEONE_ELSES_HAND);
449
481
 
450
- MeetingUtil.bothLeaveAndEndMeetingAvailable = (displayHints) => displayHints.includes(DISPLAY_HINTS.LEAVE_TRANSFER_HOST_END_MEETING) || displayHints.includes(DISPLAY_HINTS.LEAVE_END_MEETING);
482
+ MeetingUtil.bothLeaveAndEndMeetingAvailable = (displayHints) =>
483
+ displayHints.includes(DISPLAY_HINTS.LEAVE_TRANSFER_HOST_END_MEETING) ||
484
+ displayHints.includes(DISPLAY_HINTS.LEAVE_END_MEETING);
451
485
 
452
486
  MeetingUtil.lockMeeting = (actions, request, locusUrl) => {
453
487
  if (actions && actions.canLock) {
@@ -519,31 +553,38 @@ MeetingUtil.endMeetingForAll = (meeting) => {
519
553
  .then(() => MeetingUtil.cleanUp(meeting))
520
554
  .catch((err) => {
521
555
  LoggerProxy.logger.error(
522
- `Meeting:util#endMeetingForAll An error occured while trying to end meeting for all with an id of ${
523
- meeting.id
524
- }, error: ${err}`
556
+ `Meeting:util#endMeetingForAll An error occured while trying to end meeting for all with an id of ${meeting.id}, error: ${err}`
525
557
  );
526
558
 
527
559
  return Promise.reject(err);
528
560
  });
529
561
  };
530
562
 
531
- MeetingUtil.canEnableClosedCaption = (displayHints) => displayHints.includes(DISPLAY_HINTS.CAPTION_START);
563
+ MeetingUtil.canEnableClosedCaption = (displayHints) =>
564
+ displayHints.includes(DISPLAY_HINTS.CAPTION_START);
532
565
 
533
- MeetingUtil.canStartTranscribing = (displayHints) => displayHints.includes(DISPLAY_HINTS.TRANSCRIPTION_CONTROL_START);
566
+ MeetingUtil.canStartTranscribing = (displayHints) =>
567
+ displayHints.includes(DISPLAY_HINTS.TRANSCRIPTION_CONTROL_START);
534
568
 
535
- MeetingUtil.canStopTranscribing = (displayHints) => displayHints.includes(DISPLAY_HINTS.TRANSCRIPTION_CONTROL_STOP);
569
+ MeetingUtil.canStopTranscribing = (displayHints) =>
570
+ displayHints.includes(DISPLAY_HINTS.TRANSCRIPTION_CONTROL_STOP);
536
571
 
537
- MeetingUtil.isClosedCaptionActive = (displayHints) => displayHints.includes(DISPLAY_HINTS.CAPTION_STATUS_ACTIVE);
572
+ MeetingUtil.isClosedCaptionActive = (displayHints) =>
573
+ displayHints.includes(DISPLAY_HINTS.CAPTION_STATUS_ACTIVE);
538
574
 
539
- MeetingUtil.isWebexAssistantActive = (displayHints) => displayHints.includes(DISPLAY_HINTS.WEBEX_ASSISTANT_STATUS_ACTIVE);
575
+ MeetingUtil.isWebexAssistantActive = (displayHints) =>
576
+ displayHints.includes(DISPLAY_HINTS.WEBEX_ASSISTANT_STATUS_ACTIVE);
540
577
 
541
- MeetingUtil.canViewCaptionPanel = (displayHints) => displayHints.includes(DISPLAY_HINTS.ENABLE_CAPTION_PANEL);
578
+ MeetingUtil.canViewCaptionPanel = (displayHints) =>
579
+ displayHints.includes(DISPLAY_HINTS.ENABLE_CAPTION_PANEL);
542
580
 
543
- MeetingUtil.isRealTimeTranslationEnabled = (displayHints) => displayHints.includes(DISPLAY_HINTS.DISPLAY_REAL_TIME_TRANSLATION);
581
+ MeetingUtil.isRealTimeTranslationEnabled = (displayHints) =>
582
+ displayHints.includes(DISPLAY_HINTS.DISPLAY_REAL_TIME_TRANSLATION);
544
583
 
545
- MeetingUtil.canSelectSpokenLanguages = (displayHints) => displayHints.includes(DISPLAY_HINTS.DISPLAY_NON_ENGLISH_ASR);
584
+ MeetingUtil.canSelectSpokenLanguages = (displayHints) =>
585
+ displayHints.includes(DISPLAY_HINTS.DISPLAY_NON_ENGLISH_ASR);
546
586
 
547
- MeetingUtil.waitingForOthersToJoin = (displayHints) => displayHints.includes(DISPLAY_HINTS.WAITING_FOR_OTHERS);
587
+ MeetingUtil.waitingForOthersToJoin = (displayHints) =>
588
+ displayHints.includes(DISPLAY_HINTS.WAITING_FOR_OTHERS);
548
589
 
549
590
  export default MeetingUtil;
@@ -34,7 +34,8 @@ export default class MeetingInfoCollection extends Collection {
34
34
  return find(
35
35
  // @ts-ignore
36
36
  this.meetingInfos,
37
- (info) => info.sipUrl === id || info.locusId === id || info.userId === id || info.meetingLink === id
37
+ (info) =>
38
+ info.sipUrl === id || info.locusId === id || info.userId === id || info.meetingLink === id
38
39
  );
39
40
  }
40
41
  }