@webex/plugin-meetings 3.0.0-beta.15 → 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 (183) hide show
  1. package/dist/common/browser-detection.js +1 -21
  2. package/dist/common/browser-detection.js.map +1 -1
  3. package/dist/common/collection.js +5 -20
  4. package/dist/common/collection.js.map +1 -1
  5. package/dist/common/config.js +0 -7
  6. package/dist/common/config.js.map +1 -1
  7. package/dist/common/errors/captcha-error.js +0 -21
  8. package/dist/common/errors/captcha-error.js.map +1 -1
  9. package/dist/common/errors/intent-to-join.js +0 -21
  10. package/dist/common/errors/intent-to-join.js.map +1 -1
  11. package/dist/common/errors/join-meeting.js +0 -21
  12. package/dist/common/errors/join-meeting.js.map +1 -1
  13. package/dist/common/errors/media.js +0 -21
  14. package/dist/common/errors/media.js.map +1 -1
  15. package/dist/common/errors/parameter.js +0 -28
  16. package/dist/common/errors/parameter.js.map +1 -1
  17. package/dist/common/errors/password-error.js +0 -21
  18. package/dist/common/errors/password-error.js.map +1 -1
  19. package/dist/common/errors/permission.js +0 -21
  20. package/dist/common/errors/permission.js.map +1 -1
  21. package/dist/common/errors/reconnection-in-progress.js +0 -17
  22. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  23. package/dist/common/errors/reconnection.js +0 -21
  24. package/dist/common/errors/reconnection.js.map +1 -1
  25. package/dist/common/errors/stats.js +0 -21
  26. package/dist/common/errors/stats.js.map +1 -1
  27. package/dist/common/errors/webex-errors.js +6 -41
  28. package/dist/common/errors/webex-errors.js.map +1 -1
  29. package/dist/common/errors/webex-meetings-error.js +1 -24
  30. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  31. package/dist/common/events/events-scope.js +0 -22
  32. package/dist/common/events/events-scope.js.map +1 -1
  33. package/dist/common/events/events.js +0 -23
  34. package/dist/common/events/events.js.map +1 -1
  35. package/dist/common/events/trigger-proxy.js +0 -12
  36. package/dist/common/events/trigger-proxy.js.map +1 -1
  37. package/dist/common/events/util.js +0 -15
  38. package/dist/common/events/util.js.map +1 -1
  39. package/dist/common/logs/logger-config.js +0 -4
  40. package/dist/common/logs/logger-config.js.map +1 -1
  41. package/dist/common/logs/logger-proxy.js +1 -8
  42. package/dist/common/logs/logger-proxy.js.map +1 -1
  43. package/dist/common/logs/request.js +35 -61
  44. package/dist/common/logs/request.js.map +1 -1
  45. package/dist/common/queue.js +4 -14
  46. package/dist/common/queue.js.map +1 -1
  47. package/dist/config.js +1 -5
  48. package/dist/config.js.map +1 -1
  49. package/dist/constants.js +45 -40
  50. package/dist/constants.js.map +1 -1
  51. package/dist/index.js +1 -17
  52. package/dist/index.js.map +1 -1
  53. package/dist/locus-info/controlsUtils.js +10 -28
  54. package/dist/locus-info/controlsUtils.js.map +1 -1
  55. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  56. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  57. package/dist/locus-info/fullState.js +0 -15
  58. package/dist/locus-info/fullState.js.map +1 -1
  59. package/dist/locus-info/hostUtils.js +4 -12
  60. package/dist/locus-info/hostUtils.js.map +1 -1
  61. package/dist/locus-info/index.js +90 -185
  62. package/dist/locus-info/index.js.map +1 -1
  63. package/dist/locus-info/infoUtils.js +0 -38
  64. package/dist/locus-info/infoUtils.js.map +1 -1
  65. package/dist/locus-info/mediaSharesUtils.js +12 -38
  66. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  67. package/dist/locus-info/parser.js +88 -125
  68. package/dist/locus-info/parser.js.map +1 -1
  69. package/dist/locus-info/selfUtils.js +15 -81
  70. package/dist/locus-info/selfUtils.js.map +1 -1
  71. package/dist/media/index.js +43 -97
  72. package/dist/media/index.js.map +1 -1
  73. package/dist/media/internal-media-core-wrapper.js +0 -4
  74. package/dist/media/internal-media-core-wrapper.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 +1 -8
  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 +119 -191
  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 +729 -1504
  86. package/dist/meeting/index.js.map +1 -1
  87. package/dist/meeting/muteState.js +30 -77
  88. package/dist/meeting/muteState.js.map +1 -1
  89. package/dist/meeting/request.js +160 -230
  90. package/dist/meeting/request.js.map +1 -1
  91. package/dist/meeting/request.type.js +0 -1
  92. package/dist/meeting/state.js +16 -26
  93. package/dist/meeting/state.js.map +1 -1
  94. package/dist/meeting/util.js +19 -158
  95. package/dist/meeting/util.js.map +1 -1
  96. package/dist/meeting-info/collection.js +3 -25
  97. package/dist/meeting-info/collection.js.map +1 -1
  98. package/dist/meeting-info/index.js +8 -31
  99. package/dist/meeting-info/index.js.map +1 -1
  100. package/dist/meeting-info/meeting-info-v2.js +131 -220
  101. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  102. package/dist/meeting-info/request.js +1 -16
  103. package/dist/meeting-info/request.js.map +1 -1
  104. package/dist/meeting-info/util.js +98 -183
  105. package/dist/meeting-info/util.js.map +1 -1
  106. package/dist/meeting-info/utilv2.js +137 -228
  107. package/dist/meeting-info/utilv2.js.map +1 -1
  108. package/dist/meetings/collection.js +3 -21
  109. package/dist/meetings/collection.js.map +1 -1
  110. package/dist/meetings/index.js +202 -335
  111. package/dist/meetings/index.js.map +1 -1
  112. package/dist/meetings/request.js +5 -28
  113. package/dist/meetings/request.js.map +1 -1
  114. package/dist/meetings/util.js +85 -141
  115. package/dist/meetings/util.js.map +1 -1
  116. package/dist/member/index.js +18 -58
  117. package/dist/member/index.js.map +1 -1
  118. package/dist/member/util.js +17 -68
  119. package/dist/member/util.js.map +1 -1
  120. package/dist/members/collection.js +2 -12
  121. package/dist/members/collection.js.map +1 -1
  122. package/dist/members/index.js +29 -151
  123. package/dist/members/index.js.map +1 -1
  124. package/dist/members/request.js +21 -56
  125. package/dist/members/request.js.map +1 -1
  126. package/dist/members/util.js +9 -38
  127. package/dist/members/util.js.map +1 -1
  128. package/dist/metrics/config.js +0 -2
  129. package/dist/metrics/config.js.map +1 -1
  130. package/dist/metrics/constants.js +1 -2
  131. package/dist/metrics/constants.js.map +1 -1
  132. package/dist/metrics/index.js +30 -121
  133. package/dist/metrics/index.js.map +1 -1
  134. package/dist/multistream/mediaRequestManager.js +12 -28
  135. package/dist/multistream/mediaRequestManager.js.map +1 -1
  136. package/dist/multistream/multistreamMedia.js +11 -22
  137. package/dist/multistream/multistreamMedia.js.map +1 -1
  138. package/dist/multistream/receiveSlot.js +7 -47
  139. package/dist/multistream/receiveSlot.js.map +1 -1
  140. package/dist/multistream/receiveSlotManager.js +37 -78
  141. package/dist/multistream/receiveSlotManager.js.map +1 -1
  142. package/dist/multistream/remoteMedia.js +11 -56
  143. package/dist/multistream/remoteMedia.js.map +1 -1
  144. package/dist/multistream/remoteMediaGroup.js +6 -40
  145. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  146. package/dist/multistream/remoteMediaManager.js +221 -380
  147. package/dist/multistream/remoteMediaManager.js.map +1 -1
  148. package/dist/networkQualityMonitor/index.js +20 -49
  149. package/dist/networkQualityMonitor/index.js.map +1 -1
  150. package/dist/personal-meeting-room/index.js +3 -38
  151. package/dist/personal-meeting-room/index.js.map +1 -1
  152. package/dist/personal-meeting-room/request.js +2 -33
  153. package/dist/personal-meeting-room/request.js.map +1 -1
  154. package/dist/personal-meeting-room/util.js +0 -13
  155. package/dist/personal-meeting-room/util.js.map +1 -1
  156. package/dist/reachability/index.js +100 -166
  157. package/dist/reachability/index.js.map +1 -1
  158. package/dist/reachability/request.js +2 -18
  159. package/dist/reachability/request.js.map +1 -1
  160. package/dist/reactions/reactions.js +0 -2
  161. package/dist/reactions/reactions.js.map +1 -1
  162. package/dist/reactions/reactions.type.js +0 -6
  163. package/dist/reactions/reactions.type.js.map +1 -1
  164. package/dist/reconnection-manager/index.js +290 -455
  165. package/dist/reconnection-manager/index.js.map +1 -1
  166. package/dist/roap/index.js +13 -48
  167. package/dist/roap/index.js.map +1 -1
  168. package/dist/roap/request.js +13 -55
  169. package/dist/roap/request.js.map +1 -1
  170. package/dist/roap/turnDiscovery.js +10 -52
  171. package/dist/roap/turnDiscovery.js.map +1 -1
  172. package/dist/statsAnalyzer/global.js +0 -2
  173. package/dist/statsAnalyzer/global.js.map +1 -1
  174. package/dist/statsAnalyzer/index.js +66 -174
  175. package/dist/statsAnalyzer/index.js.map +1 -1
  176. package/dist/statsAnalyzer/mqaUtil.js +54 -53
  177. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  178. package/dist/transcription/index.js +9 -44
  179. package/dist/transcription/index.js.map +1 -1
  180. package/package.json +18 -18
  181. package/test/integration/spec/journey.js +1 -1
  182. package/test/integration/spec/space-meeting.js +1 -1
  183. package/test/integration/spec/transcription.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["SelfUtils","PSTN_DEVICE_TYPE","parse","self","deviceId","joinedWith","devices","find","device","url","pstnDevices","filter","deviceType","remoteMuted","getRemoteMuted","unmuteAllowed","getUnmuteAllowed","localAudioUnmuteRequested","getLocalAudioUnmuteRequested","localAudioUnmuteRequired","getLocalAudioUnmuteRequired","lastModified","getLastModified","modifiedBy","getModifiedBy","guest","moderator","mediaStatus","getStatus","status","state","currentMediaStatus","getMediaStatus","mediaSessions","creator","isCreator","selfId","id","selfIdentity","getSelfIdentity","selfUrl","removed","roles","getRoles","isUserUnadmitted","_IDLE_","intent","type","_WAIT_","layout","getLayout","canNotViewTheParticipantList","isSharingBlocked","controls","layouts","undefined","role","reduce","hasRole","push","getSelves","oldSelf","newSelf","previous","current","updates","isUserAdmitted","isMutedByOthersChanged","mutedByOthersChanged","localAudioUnmuteRequestedByServer","localAudioUnmuteRequiredByServer","moderatorChanged","isMediaInactiveOrReleased","wasMediaInactiveOrReleased","isUserObserving","isDeviceObserving","layoutChanged","isMediaInactive","audioStateChange","audio","videoStateChange","video","shareStateChange","share","canNotViewTheParticipantListChanged","isSharingBlockedChanged","isJoined","_JOINED_","previousMediaStatus","MEDIA_STATE","inactive","direction","meta","person","muted","requestedToUnmute","disallowUnmute","audioStatus","videoStatus","slides","videoSlidesStatus","changedSelf","_LEFT_","reason","MEETING_END_REASON","INACTIVE","MEDIA_RELEASED","isLocusUserUnadmitted","check","isLocusUserAdmitted","ParameterError","_MOVE_MEDIA_","_OBSERVE_","getSipUrl","partner","sipUri","_CALL_","sipUrl","media","mediaType","AUDIO","mediaContent","MediaContent","main","VIDEO"],"sources":["selfUtils.ts"],"sourcesContent":["/* eslint-disable default-param-last */\n\nimport {\n _IDLE_,\n _JOINED_,\n _CALL_,\n _WAIT_,\n _MOVE_MEDIA_,\n _OBSERVE_,\n _LEFT_,\n MEETING_END_REASON,\n MEDIA_STATE,\n AUDIO,\n VIDEO,\n MediaContent,\n} from '../constants';\nimport ParameterError from '../common/errors/parameter';\n\nconst SelfUtils: any = {};\nconst PSTN_DEVICE_TYPE = 'PROVISIONAL';\n\n/**\n * parses the relevant values for self: muted, guest, moderator, mediaStatus, state, joinedWith, pstnDevices, creator, id\n * @param {Object} self\n * @param {String} deviceId\n * @returns {undefined}\n */\nSelfUtils.parse = (self: any, deviceId: string) => {\n if (self) {\n const joinedWith = self.devices.find((device) => deviceId === device.url);\n const pstnDevices = self.devices.filter((device) => PSTN_DEVICE_TYPE === device.deviceType);\n\n return {\n remoteMuted: SelfUtils.getRemoteMuted(self),\n unmuteAllowed: SelfUtils.getUnmuteAllowed(self),\n localAudioUnmuteRequested: SelfUtils.getLocalAudioUnmuteRequested(self),\n localAudioUnmuteRequired: SelfUtils.getLocalAudioUnmuteRequired(self),\n lastModified: SelfUtils.getLastModified(self),\n modifiedBy: SelfUtils.getModifiedBy(self),\n guest: self.guest,\n moderator: self.moderator,\n // cumulative media stats\n mediaStatus: SelfUtils.getStatus(self.status),\n // TODO: what should be the status if user has refreshed the page,\n // check the joinedWith parameter and communicate to the user\n state: self.state,\n // TODO: give a proper name . With same device as login or different login`\n // Some times we might have joined with both mobile and web\n joinedWith,\n pstnDevices,\n // current media stats is for the current device who has joined\n currentMediaStatus: SelfUtils.getMediaStatus(joinedWith?.mediaSessions),\n creator: self.isCreator, // check if its used,\n selfId: self.id,\n selfIdentity: SelfUtils.getSelfIdentity(self),\n selfUrl: self.url,\n removed: self.removed,\n roles: SelfUtils.getRoles(self),\n isUserUnadmitted: self.state === _IDLE_ && joinedWith?.intent?.type === _WAIT_,\n layout: SelfUtils.getLayout(self),\n canNotViewTheParticipantList: SelfUtils.canNotViewTheParticipantList(self),\n isSharingBlocked: SelfUtils.isSharingBlocked(self),\n };\n }\n\n return null;\n};\n\nSelfUtils.getLayout = (self) =>\n Array.isArray(self?.controls?.layouts) ? self.controls.layouts[0].type : undefined;\n\nSelfUtils.getRoles = (self) =>\n (self?.controls?.role?.roles || []).reduce((roles, role) => {\n if (role.hasRole) {\n roles.push(role.type);\n }\n\n return roles;\n }, []);\n\nSelfUtils.canNotViewTheParticipantList = (self) => !!self?.canNotViewTheParticipantList;\n\nSelfUtils.isSharingBlocked = (self) => !!self?.isSharingBlocked;\n\nSelfUtils.getSelves = (oldSelf, newSelf, deviceId) => {\n const previous = oldSelf && SelfUtils.parse(oldSelf, deviceId);\n const current = newSelf && SelfUtils.parse(newSelf, deviceId);\n const updates: any = {};\n\n updates.isUserUnadmitted = SelfUtils.isUserUnadmitted(current);\n updates.isUserAdmitted = SelfUtils.isUserAdmitted(previous, current);\n updates.isMutedByOthersChanged = SelfUtils.mutedByOthersChanged(previous, current);\n updates.localAudioUnmuteRequestedByServer = SelfUtils.localAudioUnmuteRequestedByServer(\n previous,\n current\n );\n updates.localAudioUnmuteRequiredByServer = SelfUtils.localAudioUnmuteRequiredByServer(\n previous,\n current\n );\n updates.moderatorChanged = SelfUtils.moderatorChanged(previous, current);\n updates.isMediaInactiveOrReleased = SelfUtils.wasMediaInactiveOrReleased(previous, current);\n updates.isUserObserving = SelfUtils.isDeviceObserving(previous, current);\n updates.layoutChanged = SelfUtils.layoutChanged(previous, current);\n\n updates.isMediaInactive = SelfUtils.isMediaInactive(previous, current);\n updates.audioStateChange =\n previous?.currentMediaStatus.audio !== current.currentMediaStatus.audio;\n updates.videoStateChange =\n previous?.currentMediaStatus.video !== current.currentMediaStatus.video;\n updates.shareStateChange =\n previous?.currentMediaStatus.share !== current.currentMediaStatus.share;\n\n updates.canNotViewTheParticipantListChanged =\n previous?.canNotViewTheParticipantList !== current.canNotViewTheParticipantList;\n updates.isSharingBlockedChanged = previous?.isSharingBlocked !== current.isSharingBlocked;\n\n return {\n previous,\n current,\n updates,\n };\n};\n\n/**\n * Checks if user has joined the meeting\n * @param {Object} self\n * @returns {boolean} isJoined\n */\nSelfUtils.isJoined = (self: any) => self?.state === _JOINED_;\n\n/**\n * Validate if the Meeting Layout Controls Layout has changed.\n *\n * @param {Self} previous - Previous self state\n * @param {Self} current - Current self state [per event]\n * @returns {boolean} - If the MEeting Layout Controls Layout has changed.\n */\nSelfUtils.layoutChanged = (previous: any, current: any) =>\n current?.layout && previous?.layout !== current?.layout;\n\nSelfUtils.isMediaInactive = (previous, current) => {\n if (\n previous &&\n previous.joinedWith &&\n previous.joinedWith.mediaSessions &&\n current &&\n current.joinedWith &&\n current.joinedWith.mediaSessions\n ) {\n const previousMediaStatus = SelfUtils.getMediaStatus(previous.joinedWith.mediaSessions);\n const currentMediaStatus = SelfUtils.getMediaStatus(current.joinedWith.mediaSessions);\n\n if (\n previousMediaStatus.audio &&\n currentMediaStatus.audio &&\n previousMediaStatus.audio.state !== MEDIA_STATE.inactive &&\n currentMediaStatus.audio.state === MEDIA_STATE.inactive &&\n currentMediaStatus.audio.direction !== MEDIA_STATE.inactive\n ) {\n return true;\n }\n\n if (\n previousMediaStatus.video &&\n currentMediaStatus.video &&\n previousMediaStatus.video.state !== MEDIA_STATE.inactive &&\n currentMediaStatus.video.state === MEDIA_STATE.inactive &&\n currentMediaStatus.video.direction !== MEDIA_STATE.inactive\n ) {\n return true;\n }\n\n if (\n previousMediaStatus.share &&\n currentMediaStatus.share &&\n previousMediaStatus.share.state !== MEDIA_STATE.inactive &&\n currentMediaStatus.share.state === MEDIA_STATE.inactive &&\n currentMediaStatus.share.direction !== MEDIA_STATE.inactive\n ) {\n return true;\n }\n\n return false;\n }\n\n return false;\n};\n\nSelfUtils.getLastModified = (self) => {\n if (\n !self ||\n !self.controls ||\n !self.controls.audio ||\n !self.controls.audio.meta ||\n !self.controls.audio.meta.lastModified\n ) {\n return null;\n }\n\n return self.controls.audio.meta.lastModified;\n};\n\nSelfUtils.getModifiedBy = (self) => {\n if (\n !self ||\n !self.controls ||\n !self.controls.audio ||\n !self.controls.audio.meta ||\n !self.controls.audio.meta.modifiedBy\n ) {\n return null;\n }\n\n return self.controls.audio.meta.modifiedBy;\n};\n\n/**\n * get the id from the self object\n * @param {Object} self\n * @returns {String}\n */\nSelfUtils.getSelfIdentity = (self: any) => {\n if (!self && !self.person) {\n return null;\n }\n\n return self.person.id;\n};\n\n/**\n * get the \"remote mute\" property from the self object\n * @param {Object} self\n * @returns {Boolean}\n */\nSelfUtils.getRemoteMuted = (self: any) => {\n if (!self || !self.controls || !self.controls.audio) {\n return null;\n }\n\n return self.controls.audio.muted;\n};\n\nSelfUtils.getLocalAudioUnmuteRequested = (self) => !!self?.controls?.audio?.requestedToUnmute;\n\nSelfUtils.getUnmuteAllowed = (self) => {\n if (!self || !self.controls || !self.controls.audio) {\n return null;\n }\n\n return !self.controls.audio.disallowUnmute;\n};\n\nSelfUtils.getLocalAudioUnmuteRequired = (self) => !!self?.controls?.audio?.localAudioUnmuteRequired;\n\nSelfUtils.getStatus = (status) => ({\n audio: status.audioStatus,\n video: status.videoStatus,\n slides: status.videoSlidesStatus,\n});\n\n/**\n * @param {Object} oldSelf\n * @param {Object} changedSelf\n * @returns {Boolean}\n */\nSelfUtils.wasMediaInactiveOrReleased = (oldSelf: any = {}, changedSelf: any) =>\n oldSelf.joinedWith &&\n oldSelf.joinedWith.state === _JOINED_ &&\n changedSelf.joinedWith.state === _LEFT_ &&\n (changedSelf.joinedWith.reason === MEETING_END_REASON.INACTIVE ||\n changedSelf.joinedWith.reason === MEETING_END_REASON.MEDIA_RELEASED);\n\n/**\n * @param {Object} check\n * @returns {Boolean}\n */\nSelfUtils.isLocusUserUnadmitted = (check: any) =>\n check && check.joinedWith?.intent?.type === _WAIT_ && check.state === _IDLE_;\n\n/**\n * @param {Object} check\n * @returns {Boolean}\n */\nSelfUtils.isLocusUserAdmitted = (check: any) =>\n check && check.joinedWith?.intent?.type !== _WAIT_ && check.state === _JOINED_;\n\n/**\n * @param {Object} self\n * @returns {Boolean}\n * @throws {Error} when self is undefined\n */\nSelfUtils.isUserUnadmitted = (self: object) => {\n if (!self) {\n throw new ParameterError('self must be defined to determine if self is unadmitted as guest.');\n }\n\n return SelfUtils.isLocusUserUnadmitted(self);\n};\n\nSelfUtils.moderatorChanged = (oldSelf, changedSelf) => {\n if (!oldSelf) {\n return true;\n }\n if (!changedSelf) {\n throw new ParameterError(\n 'New self must be defined to determine if self transitioned moderator status.'\n );\n }\n\n return oldSelf.moderator !== changedSelf.moderator;\n};\n\n/**\n * @param {Object} oldSelf\n * @param {Object} changedSelf\n * @returns {Boolean}\n * @throws {Error} if changed self was undefined\n */\nSelfUtils.isDeviceObserving = (oldSelf: any, changedSelf: any) =>\n oldSelf &&\n oldSelf.joinedWith?.intent?.type === _MOVE_MEDIA_ &&\n changedSelf &&\n changedSelf.joinedWith?.intent?.type === _OBSERVE_;\n\n/**\n * @param {Object} oldSelf\n * @param {Object} changedSelf\n * @returns {Boolean}\n * @throws {Error} if changed self was undefined\n */\nSelfUtils.isUserAdmitted = (oldSelf: object, changedSelf: object) => {\n if (!oldSelf) {\n // if there was no previous locus, it couldn't have been admitted yet\n return false;\n }\n if (!changedSelf) {\n throw new ParameterError(\n 'New self must be defined to determine if self transitioned to admitted as guest.'\n );\n }\n\n return SelfUtils.isLocusUserUnadmitted(oldSelf) && SelfUtils.isLocusUserAdmitted(changedSelf);\n};\n\nSelfUtils.mutedByOthersChanged = (oldSelf, changedSelf) => {\n if (!changedSelf) {\n throw new ParameterError('New self must be defined to determine if self was muted by others.');\n }\n\n if (!oldSelf || oldSelf.remoteMuted === null) {\n if (changedSelf.remoteMuted) {\n return true; // this happens when mute on-entry is enabled\n }\n\n // we don't want to be sending the 'meeting:self:unmutedByOthers' notification on meeting join\n return false;\n }\n\n return (\n changedSelf.remoteMuted !== null &&\n (oldSelf.remoteMuted !== changedSelf.remoteMuted ||\n (changedSelf.remoteMuted && oldSelf.unmuteAllowed !== changedSelf.unmuteAllowed))\n );\n};\n\nSelfUtils.localAudioUnmuteRequestedByServer = (oldSelf: any = {}, changedSelf: any) => {\n if (!changedSelf) {\n throw new ParameterError(\n 'New self must be defined to determine if self received request to unmute.'\n );\n }\n\n return changedSelf.localAudioUnmuteRequested && !oldSelf.localAudioUnmuteRequested;\n};\n\nSelfUtils.localAudioUnmuteRequiredByServer = (oldSelf: any = {}, changedSelf: any) => {\n if (!changedSelf) {\n throw new ParameterError(\n 'New self must be defined to determine if localAudioUnmuteRequired changed.'\n );\n }\n\n return (\n !changedSelf.remoteMuted &&\n changedSelf.localAudioUnmuteRequired &&\n oldSelf.localAudioUnmuteRequired !== changedSelf.localAudioUnmuteRequired\n );\n};\n\n/**\n * extract the sipUrl from the partner\n * @param {Object} partner\n * @param {Object} info\n * @returns {Object}\n */\n\nSelfUtils.getSipUrl = (partner: any, type, sipUri) => {\n // For webex meeting the sipUrl gets updated in info parser\n if (partner && type === _CALL_) {\n return {sipUri: partner.person.sipUrl || partner.person.id};\n }\n\n return {sipUri};\n};\n\nSelfUtils.getMediaStatus = (mediaSessions = []) => {\n const mediaStatus = {\n audio: {},\n video: {},\n share: {},\n };\n\n mediaStatus.audio = mediaSessions.find(\n (media) => media.mediaType === AUDIO && media.mediaContent === MediaContent.main\n );\n mediaStatus.video = mediaSessions.find(\n (media) => media.mediaType === VIDEO && media.mediaContent === MediaContent.main\n );\n mediaStatus.share = mediaSessions.find(\n (media) => media.mediaType === VIDEO && media.mediaContent === MediaContent.slides\n );\n\n return mediaStatus;\n};\n\nexport default SelfUtils;\n"],"mappings":"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"}
1
+ {"version":3,"names":["SelfUtils","PSTN_DEVICE_TYPE","parse","self","deviceId","joinedWith","devices","find","device","url","pstnDevices","filter","deviceType","remoteMuted","getRemoteMuted","unmuteAllowed","getUnmuteAllowed","localAudioUnmuteRequested","getLocalAudioUnmuteRequested","localAudioUnmuteRequired","getLocalAudioUnmuteRequired","lastModified","getLastModified","modifiedBy","getModifiedBy","guest","moderator","mediaStatus","getStatus","status","state","currentMediaStatus","getMediaStatus","mediaSessions","creator","isCreator","selfId","id","selfIdentity","getSelfIdentity","selfUrl","removed","roles","getRoles","isUserUnadmitted","_IDLE_","intent","type","_WAIT_","layout","getLayout","canNotViewTheParticipantList","isSharingBlocked","controls","layouts","undefined","role","reduce","hasRole","push","getSelves","oldSelf","newSelf","previous","current","updates","isUserAdmitted","isMutedByOthersChanged","mutedByOthersChanged","localAudioUnmuteRequestedByServer","localAudioUnmuteRequiredByServer","moderatorChanged","isMediaInactiveOrReleased","wasMediaInactiveOrReleased","isUserObserving","isDeviceObserving","layoutChanged","isMediaInactive","audioStateChange","audio","videoStateChange","video","shareStateChange","share","canNotViewTheParticipantListChanged","isSharingBlockedChanged","isJoined","_JOINED_","previousMediaStatus","MEDIA_STATE","inactive","direction","meta","person","muted","requestedToUnmute","disallowUnmute","audioStatus","videoStatus","slides","videoSlidesStatus","changedSelf","_LEFT_","reason","MEETING_END_REASON","INACTIVE","MEDIA_RELEASED","isLocusUserUnadmitted","check","isLocusUserAdmitted","ParameterError","_MOVE_MEDIA_","_OBSERVE_","getSipUrl","partner","sipUri","_CALL_","sipUrl","media","mediaType","AUDIO","mediaContent","MediaContent","main","VIDEO"],"sources":["selfUtils.ts"],"sourcesContent":["/* eslint-disable default-param-last */\n\nimport {\n _IDLE_,\n _JOINED_,\n _CALL_,\n _WAIT_,\n _MOVE_MEDIA_,\n _OBSERVE_,\n _LEFT_,\n MEETING_END_REASON,\n MEDIA_STATE,\n AUDIO,\n VIDEO,\n MediaContent,\n} from '../constants';\nimport ParameterError from '../common/errors/parameter';\n\nconst SelfUtils: any = {};\nconst PSTN_DEVICE_TYPE = 'PROVISIONAL';\n\n/**\n * parses the relevant values for self: muted, guest, moderator, mediaStatus, state, joinedWith, pstnDevices, creator, id\n * @param {Object} self\n * @param {String} deviceId\n * @returns {undefined}\n */\nSelfUtils.parse = (self: any, deviceId: string) => {\n if (self) {\n const joinedWith = self.devices.find((device) => deviceId === device.url);\n const pstnDevices = self.devices.filter((device) => PSTN_DEVICE_TYPE === device.deviceType);\n\n return {\n remoteMuted: SelfUtils.getRemoteMuted(self),\n unmuteAllowed: SelfUtils.getUnmuteAllowed(self),\n localAudioUnmuteRequested: SelfUtils.getLocalAudioUnmuteRequested(self),\n localAudioUnmuteRequired: SelfUtils.getLocalAudioUnmuteRequired(self),\n lastModified: SelfUtils.getLastModified(self),\n modifiedBy: SelfUtils.getModifiedBy(self),\n guest: self.guest,\n moderator: self.moderator,\n // cumulative media stats\n mediaStatus: SelfUtils.getStatus(self.status),\n // TODO: what should be the status if user has refreshed the page,\n // check the joinedWith parameter and communicate to the user\n state: self.state,\n // TODO: give a proper name . With same device as login or different login`\n // Some times we might have joined with both mobile and web\n joinedWith,\n pstnDevices,\n // current media stats is for the current device who has joined\n currentMediaStatus: SelfUtils.getMediaStatus(joinedWith?.mediaSessions),\n creator: self.isCreator, // check if its used,\n selfId: self.id,\n selfIdentity: SelfUtils.getSelfIdentity(self),\n selfUrl: self.url,\n removed: self.removed,\n roles: SelfUtils.getRoles(self),\n isUserUnadmitted: self.state === _IDLE_ && joinedWith?.intent?.type === _WAIT_,\n layout: SelfUtils.getLayout(self),\n canNotViewTheParticipantList: SelfUtils.canNotViewTheParticipantList(self),\n isSharingBlocked: SelfUtils.isSharingBlocked(self),\n };\n }\n\n return null;\n};\n\nSelfUtils.getLayout = (self) =>\n Array.isArray(self?.controls?.layouts) ? self.controls.layouts[0].type : undefined;\n\nSelfUtils.getRoles = (self) =>\n (self?.controls?.role?.roles || []).reduce((roles, role) => {\n if (role.hasRole) {\n roles.push(role.type);\n }\n\n return roles;\n }, []);\n\nSelfUtils.canNotViewTheParticipantList = (self) => !!self?.canNotViewTheParticipantList;\n\nSelfUtils.isSharingBlocked = (self) => !!self?.isSharingBlocked;\n\nSelfUtils.getSelves = (oldSelf, newSelf, deviceId) => {\n const previous = oldSelf && SelfUtils.parse(oldSelf, deviceId);\n const current = newSelf && SelfUtils.parse(newSelf, deviceId);\n const updates: any = {};\n\n updates.isUserUnadmitted = SelfUtils.isUserUnadmitted(current);\n updates.isUserAdmitted = SelfUtils.isUserAdmitted(previous, current);\n updates.isMutedByOthersChanged = SelfUtils.mutedByOthersChanged(previous, current);\n updates.localAudioUnmuteRequestedByServer = SelfUtils.localAudioUnmuteRequestedByServer(\n previous,\n current\n );\n updates.localAudioUnmuteRequiredByServer = SelfUtils.localAudioUnmuteRequiredByServer(\n previous,\n current\n );\n updates.moderatorChanged = SelfUtils.moderatorChanged(previous, current);\n updates.isMediaInactiveOrReleased = SelfUtils.wasMediaInactiveOrReleased(previous, current);\n updates.isUserObserving = SelfUtils.isDeviceObserving(previous, current);\n updates.layoutChanged = SelfUtils.layoutChanged(previous, current);\n\n updates.isMediaInactive = SelfUtils.isMediaInactive(previous, current);\n updates.audioStateChange =\n previous?.currentMediaStatus.audio !== current.currentMediaStatus.audio;\n updates.videoStateChange =\n previous?.currentMediaStatus.video !== current.currentMediaStatus.video;\n updates.shareStateChange =\n previous?.currentMediaStatus.share !== current.currentMediaStatus.share;\n\n updates.canNotViewTheParticipantListChanged =\n previous?.canNotViewTheParticipantList !== current.canNotViewTheParticipantList;\n updates.isSharingBlockedChanged = previous?.isSharingBlocked !== current.isSharingBlocked;\n\n return {\n previous,\n current,\n updates,\n };\n};\n\n/**\n * Checks if user has joined the meeting\n * @param {Object} self\n * @returns {boolean} isJoined\n */\nSelfUtils.isJoined = (self: any) => self?.state === _JOINED_;\n\n/**\n * Validate if the Meeting Layout Controls Layout has changed.\n *\n * @param {Self} previous - Previous self state\n * @param {Self} current - Current self state [per event]\n * @returns {boolean} - If the MEeting Layout Controls Layout has changed.\n */\nSelfUtils.layoutChanged = (previous: any, current: any) =>\n current?.layout && previous?.layout !== current?.layout;\n\nSelfUtils.isMediaInactive = (previous, current) => {\n if (\n previous &&\n previous.joinedWith &&\n previous.joinedWith.mediaSessions &&\n current &&\n current.joinedWith &&\n current.joinedWith.mediaSessions\n ) {\n const previousMediaStatus = SelfUtils.getMediaStatus(previous.joinedWith.mediaSessions);\n const currentMediaStatus = SelfUtils.getMediaStatus(current.joinedWith.mediaSessions);\n\n if (\n previousMediaStatus.audio &&\n currentMediaStatus.audio &&\n previousMediaStatus.audio.state !== MEDIA_STATE.inactive &&\n currentMediaStatus.audio.state === MEDIA_STATE.inactive &&\n currentMediaStatus.audio.direction !== MEDIA_STATE.inactive\n ) {\n return true;\n }\n\n if (\n previousMediaStatus.video &&\n currentMediaStatus.video &&\n previousMediaStatus.video.state !== MEDIA_STATE.inactive &&\n currentMediaStatus.video.state === MEDIA_STATE.inactive &&\n currentMediaStatus.video.direction !== MEDIA_STATE.inactive\n ) {\n return true;\n }\n\n if (\n previousMediaStatus.share &&\n currentMediaStatus.share &&\n previousMediaStatus.share.state !== MEDIA_STATE.inactive &&\n currentMediaStatus.share.state === MEDIA_STATE.inactive &&\n currentMediaStatus.share.direction !== MEDIA_STATE.inactive\n ) {\n return true;\n }\n\n return false;\n }\n\n return false;\n};\n\nSelfUtils.getLastModified = (self) => {\n if (\n !self ||\n !self.controls ||\n !self.controls.audio ||\n !self.controls.audio.meta ||\n !self.controls.audio.meta.lastModified\n ) {\n return null;\n }\n\n return self.controls.audio.meta.lastModified;\n};\n\nSelfUtils.getModifiedBy = (self) => {\n if (\n !self ||\n !self.controls ||\n !self.controls.audio ||\n !self.controls.audio.meta ||\n !self.controls.audio.meta.modifiedBy\n ) {\n return null;\n }\n\n return self.controls.audio.meta.modifiedBy;\n};\n\n/**\n * get the id from the self object\n * @param {Object} self\n * @returns {String}\n */\nSelfUtils.getSelfIdentity = (self: any) => {\n if (!self && !self.person) {\n return null;\n }\n\n return self.person.id;\n};\n\n/**\n * get the \"remote mute\" property from the self object\n * @param {Object} self\n * @returns {Boolean}\n */\nSelfUtils.getRemoteMuted = (self: any) => {\n if (!self || !self.controls || !self.controls.audio) {\n return null;\n }\n\n return self.controls.audio.muted;\n};\n\nSelfUtils.getLocalAudioUnmuteRequested = (self) => !!self?.controls?.audio?.requestedToUnmute;\n\nSelfUtils.getUnmuteAllowed = (self) => {\n if (!self || !self.controls || !self.controls.audio) {\n return null;\n }\n\n return !self.controls.audio.disallowUnmute;\n};\n\nSelfUtils.getLocalAudioUnmuteRequired = (self) => !!self?.controls?.audio?.localAudioUnmuteRequired;\n\nSelfUtils.getStatus = (status) => ({\n audio: status.audioStatus,\n video: status.videoStatus,\n slides: status.videoSlidesStatus,\n});\n\n/**\n * @param {Object} oldSelf\n * @param {Object} changedSelf\n * @returns {Boolean}\n */\nSelfUtils.wasMediaInactiveOrReleased = (oldSelf: any = {}, changedSelf: any) =>\n oldSelf.joinedWith &&\n oldSelf.joinedWith.state === _JOINED_ &&\n changedSelf.joinedWith.state === _LEFT_ &&\n (changedSelf.joinedWith.reason === MEETING_END_REASON.INACTIVE ||\n changedSelf.joinedWith.reason === MEETING_END_REASON.MEDIA_RELEASED);\n\n/**\n * @param {Object} check\n * @returns {Boolean}\n */\nSelfUtils.isLocusUserUnadmitted = (check: any) =>\n check && check.joinedWith?.intent?.type === _WAIT_ && check.state === _IDLE_;\n\n/**\n * @param {Object} check\n * @returns {Boolean}\n */\nSelfUtils.isLocusUserAdmitted = (check: any) =>\n check && check.joinedWith?.intent?.type !== _WAIT_ && check.state === _JOINED_;\n\n/**\n * @param {Object} self\n * @returns {Boolean}\n * @throws {Error} when self is undefined\n */\nSelfUtils.isUserUnadmitted = (self: object) => {\n if (!self) {\n throw new ParameterError('self must be defined to determine if self is unadmitted as guest.');\n }\n\n return SelfUtils.isLocusUserUnadmitted(self);\n};\n\nSelfUtils.moderatorChanged = (oldSelf, changedSelf) => {\n if (!oldSelf) {\n return true;\n }\n if (!changedSelf) {\n throw new ParameterError(\n 'New self must be defined to determine if self transitioned moderator status.'\n );\n }\n\n return oldSelf.moderator !== changedSelf.moderator;\n};\n\n/**\n * @param {Object} oldSelf\n * @param {Object} changedSelf\n * @returns {Boolean}\n * @throws {Error} if changed self was undefined\n */\nSelfUtils.isDeviceObserving = (oldSelf: any, changedSelf: any) =>\n oldSelf &&\n oldSelf.joinedWith?.intent?.type === _MOVE_MEDIA_ &&\n changedSelf &&\n changedSelf.joinedWith?.intent?.type === _OBSERVE_;\n\n/**\n * @param {Object} oldSelf\n * @param {Object} changedSelf\n * @returns {Boolean}\n * @throws {Error} if changed self was undefined\n */\nSelfUtils.isUserAdmitted = (oldSelf: object, changedSelf: object) => {\n if (!oldSelf) {\n // if there was no previous locus, it couldn't have been admitted yet\n return false;\n }\n if (!changedSelf) {\n throw new ParameterError(\n 'New self must be defined to determine if self transitioned to admitted as guest.'\n );\n }\n\n return SelfUtils.isLocusUserUnadmitted(oldSelf) && SelfUtils.isLocusUserAdmitted(changedSelf);\n};\n\nSelfUtils.mutedByOthersChanged = (oldSelf, changedSelf) => {\n if (!changedSelf) {\n throw new ParameterError('New self must be defined to determine if self was muted by others.');\n }\n\n if (!oldSelf || oldSelf.remoteMuted === null) {\n if (changedSelf.remoteMuted) {\n return true; // this happens when mute on-entry is enabled\n }\n\n // we don't want to be sending the 'meeting:self:unmutedByOthers' notification on meeting join\n return false;\n }\n\n return (\n changedSelf.remoteMuted !== null &&\n (oldSelf.remoteMuted !== changedSelf.remoteMuted ||\n (changedSelf.remoteMuted && oldSelf.unmuteAllowed !== changedSelf.unmuteAllowed))\n );\n};\n\nSelfUtils.localAudioUnmuteRequestedByServer = (oldSelf: any = {}, changedSelf: any) => {\n if (!changedSelf) {\n throw new ParameterError(\n 'New self must be defined to determine if self received request to unmute.'\n );\n }\n\n return changedSelf.localAudioUnmuteRequested && !oldSelf.localAudioUnmuteRequested;\n};\n\nSelfUtils.localAudioUnmuteRequiredByServer = (oldSelf: any = {}, changedSelf: any) => {\n if (!changedSelf) {\n throw new ParameterError(\n 'New self must be defined to determine if localAudioUnmuteRequired changed.'\n );\n }\n\n return (\n !changedSelf.remoteMuted &&\n changedSelf.localAudioUnmuteRequired &&\n oldSelf.localAudioUnmuteRequired !== changedSelf.localAudioUnmuteRequired\n );\n};\n\n/**\n * extract the sipUrl from the partner\n * @param {Object} partner\n * @param {Object} info\n * @returns {Object}\n */\n\nSelfUtils.getSipUrl = (partner: any, type, sipUri) => {\n // For webex meeting the sipUrl gets updated in info parser\n if (partner && type === _CALL_) {\n return {sipUri: partner.person.sipUrl || partner.person.id};\n }\n\n return {sipUri};\n};\n\nSelfUtils.getMediaStatus = (mediaSessions = []) => {\n const mediaStatus = {\n audio: {},\n video: {},\n share: {},\n };\n\n mediaStatus.audio = mediaSessions.find(\n (media) => media.mediaType === AUDIO && media.mediaContent === MediaContent.main\n );\n mediaStatus.video = mediaSessions.find(\n (media) => media.mediaType === VIDEO && media.mediaContent === MediaContent.main\n );\n mediaStatus.share = mediaSessions.find(\n (media) => media.mediaType === VIDEO && media.mediaContent === MediaContent.slides\n );\n\n return mediaStatus;\n};\n\nexport default SelfUtils;\n"],"mappings":"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"}
@@ -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 _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
26
-
27
16
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
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 _config2 = _interopRequireDefault(require("../common/config"));
36
-
37
21
  var _media = _interopRequireDefault(require("../common/errors/media"));
38
-
39
22
  var _browserDetection = _interopRequireDefault(require("../common/browser-detection"));
40
-
41
23
  var _internalMediaCoreWrapper = require("./internal-media-core-wrapper");
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
  * format the media array for send
98
75
  * @param {String} mediaId
@@ -100,8 +77,6 @@ Media.setLocalTrack = function (enabled, track) {
100
77
  * @param {Boolean} videoMuted
101
78
  * @returns {Array} medias
102
79
  */
103
-
104
-
105
80
  Media.generateLocalMedias = function (mediaId, audioMuted, videoMuted) {
106
81
  if (mediaId) {
107
82
  return [{
@@ -112,28 +87,24 @@ Media.generateLocalMedias = function (mediaId, audioMuted, videoMuted) {
112
87
  mediaId: mediaId
113
88
  }];
114
89
  }
115
-
116
90
  return [];
117
91
  };
92
+
118
93
  /**
119
94
  * make a browser call to get the media
120
95
  * @param {SendOptions} options
121
96
  * @param {Object} config SDK Configuration for meetings plugin
122
97
  * @returns {Promise}
123
98
  */
124
-
125
-
126
99
  Media.getLocalMedia = function (options, config) {
127
100
  var sendAudio = options.sendAudio,
128
- sendVideo = options.sendVideo,
129
- sendShare = options.sendShare,
130
- sharePreferences = options.sharePreferences,
131
- isSharing = options.isSharing;
132
-
101
+ sendVideo = options.sendVideo,
102
+ sendShare = options.sendShare,
103
+ sharePreferences = options.sharePreferences,
104
+ isSharing = options.isSharing;
133
105
  if (sendAudio || sendVideo) {
134
106
  return Media.getMedia(sendAudio, sendVideo, config);
135
107
  }
136
-
137
108
  if (sendShare && !isSharing) {
138
109
  return Media.getDisplayMedia({
139
110
  sendAudio: false,
@@ -141,9 +112,9 @@ Media.getLocalMedia = function (options, config) {
141
112
  sharePreferences: sharePreferences
142
113
  }, config);
143
114
  }
144
-
145
115
  return _promise.default.resolve(undefined);
146
116
  };
117
+
147
118
  /**
148
119
  * creates a webrtc media connection with provided tracks and mediaDirection configuration
149
120
  *
@@ -158,16 +129,13 @@ Media.getLocalMedia = function (options, config) {
158
129
  * @param {Object} [options.turnServerInfo]
159
130
  * @returns {RoapMediaConnection}
160
131
  */
161
-
162
-
163
132
  Media.createMediaConnection = function (isMultistream, debugId, options) {
164
133
  var mediaProperties = options.mediaProperties,
165
- remoteQualityLevel = options.remoteQualityLevel,
166
- enableRtx = options.enableRtx,
167
- enableExtmap = options.enableExtmap,
168
- turnServerInfo = options.turnServerInfo;
134
+ remoteQualityLevel = options.remoteQualityLevel,
135
+ enableRtx = options.enableRtx,
136
+ enableExtmap = options.enableExtmap,
137
+ turnServerInfo = options.turnServerInfo;
169
138
  var iceServers = [];
170
-
171
139
  if (turnServerInfo) {
172
140
  iceServers.push({
173
141
  urls: turnServerInfo.url,
@@ -175,21 +143,18 @@ Media.createMediaConnection = function (isMultistream, debugId, options) {
175
143
  credential: turnServerInfo.password || ''
176
144
  });
177
145
  }
178
-
179
146
  if (isMultistream) {
180
147
  return new _internalMediaCoreWrapper.MultistreamRoapMediaConnection({
181
148
  iceServers: iceServers
182
149
  }, debugId);
183
150
  }
184
-
185
151
  if (!mediaProperties) {
186
152
  throw new Error('mediaProperties have to be provided for non-multistream media connections');
187
153
  }
188
-
189
154
  var mediaDirection = mediaProperties.mediaDirection,
190
- audioTrack = mediaProperties.audioTrack,
191
- videoTrack = mediaProperties.videoTrack,
192
- shareTrack = mediaProperties.shareTrack;
155
+ audioTrack = mediaProperties.audioTrack,
156
+ videoTrack = mediaProperties.videoTrack,
157
+ shareTrack = mediaProperties.shareTrack;
193
158
  return new _internalMediaCoreWrapper.RoapMediaConnection({
194
159
  iceServers: iceServers,
195
160
  skipInactiveTransceivers: false,
@@ -206,7 +171,6 @@ Media.createMediaConnection = function (isMultistream, debugId, options) {
206
171
  // it's always been hardcoded in SDK so for now keeping it that way
207
172
  disableExtmap: !enableExtmap,
208
173
  disableRtx: !enableRtx // see https://bugs.chromium.org/p/chromium/issues/detail?id=1020642 why we might want to remove RTX from SDP
209
-
210
174
  }
211
175
  }, {
212
176
  send: {
@@ -222,6 +186,7 @@ Media.createMediaConnection = function (isMultistream, debugId, options) {
222
186
  }
223
187
  }, debugId);
224
188
  };
189
+
225
190
  /**
226
191
  * generates share streams
227
192
  * @param {Object} options parameter
@@ -234,29 +199,26 @@ Media.createMediaConnection = function (isMultistream, debugId, options) {
234
199
  * @param {Object} config SDK Configuration for meetings plugin
235
200
  * @returns {Promise.<MediaStream>}
236
201
  */
237
-
238
-
239
202
  Media.getDisplayMedia = function (options) {
240
203
  var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
241
204
  // SDK screen share resolution settings from Webex.init
242
- var customResolution = config.screenResolution || {}; // user defined screen share frame rate
243
-
244
- var customShareFrameRate = config.screenFrameRate || null; // user defined share preferences
245
-
205
+ var customResolution = config.screenResolution || {};
206
+ // user defined screen share frame rate
207
+ var customShareFrameRate = config.screenFrameRate || null;
208
+ // user defined share preferences
246
209
  var hasSharePreferences = options.sharePreferences;
247
210
  var hasCustomConstraints = hasSharePreferences && hasSharePreferences.shareConstraints;
248
211
  var hasHighFrameRate = hasSharePreferences && hasSharePreferences.highFrameRate;
249
212
  var _Config$meetings = _config.default.meetings,
250
- screenResolution = _Config$meetings.screenResolution,
251
- resolution = _Config$meetings.resolution,
252
- videoShareFrameRate = _Config$meetings.videoShareFrameRate,
253
- screenFrameRate = _Config$meetings.screenFrameRate,
254
- aspectRatio = _Config$meetings.aspectRatio;
213
+ screenResolution = _Config$meetings.screenResolution,
214
+ resolution = _Config$meetings.resolution,
215
+ videoShareFrameRate = _Config$meetings.videoShareFrameRate,
216
+ screenFrameRate = _Config$meetings.screenFrameRate,
217
+ aspectRatio = _Config$meetings.aspectRatio;
255
218
  var shareConstraints = {
256
219
  cursor: _constants.MEDIA_TRACK_CONSTRAINT.CURSOR.AWLAYS,
257
220
  aspectRatio: aspectRatio
258
221
  };
259
-
260
222
  if (hasCustomConstraints) {
261
223
  shareConstraints = hasSharePreferences.shareConstraints;
262
224
  } else if (hasHighFrameRate) {
@@ -271,14 +233,15 @@ Media.getDisplayMedia = function (options) {
271
233
  height: customResolution.idealHeight || screenResolution.idealHeight,
272
234
  width: customResolution.idealWidth || screenResolution.idealWidth
273
235
  }, config.screenResolution);
274
- } // chrome and webkit based browsers (edge, safari) automatically adjust everything
236
+ }
237
+
238
+ // chrome and webkit based browsers (edge, safari) automatically adjust everything
275
239
  // and we have noticed higher quality with those browser types
276
240
  // firefox specifically has some issues with resolution and frame rate decision making
277
241
  // so we are making it optional and configurable (with defaults) for firefox
278
242
  // to have higher quality, and for developers to control the values
279
243
  // eventually we may have to add the same functionality to chrome, OR conversely, get to with firefox
280
244
 
281
-
282
245
  if (isBrowser('firefox')) {
283
246
  var mediaConfig = {
284
247
  audio: options.sendAudio,
@@ -294,22 +257,21 @@ Media.getDisplayMedia = function (options) {
294
257
  // https://bugzilla.mozilla.org/show_bug.cgi?id=1321221
295
258
  stream.getVideoTracks()[0].applyConstraints(shareConstraints);
296
259
  }
297
-
298
260
  return stream;
299
261
  });
300
262
  }
301
-
302
263
  var getDisplayMediaParams = {
303
264
  video: options.sendShare ? shareConstraints : false
304
- }; // safari doesn't support sending screen share audio
305
- // https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia
265
+ };
306
266
 
267
+ // safari doesn't support sending screen share audio
268
+ // https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia
307
269
  if (options.sendAudio && isBrowser('safari')) {
308
270
  getDisplayMediaParams.audio = options.sendAudio;
309
271
  }
310
-
311
272
  return navigator.mediaDevices.getDisplayMedia(getDisplayMediaParams);
312
273
  };
274
+
313
275
  /**
314
276
  * generates audio and video using constraints (often called after getSupportedDevices)
315
277
  * @param {Object|Boolean} audio gum constraints
@@ -317,8 +279,6 @@ Media.getDisplayMedia = function (options) {
317
279
  * @param {Object} config SDK Configuration for meetings plugin
318
280
  * @returns {Object} {streams}
319
281
  */
320
-
321
-
322
282
  Media.getMedia = function (audio, video, config) {
323
283
  var defaultWidth = {
324
284
  ideal: config.resolution.idealWidth,
@@ -346,16 +306,15 @@ Media.getMedia = function (audio, video, config) {
346
306
  facingMode: video.facingMode ? video.facingMode : undefined
347
307
  } : false,
348
308
  fake: process.env.NODE_ENV === 'test' // Special case to get fake media for Firefox browser for testing
349
-
350
309
  };
310
+
351
311
  return navigator.mediaDevices.getUserMedia(mediaConfig).catch(function (err) {
352
312
  var logPath = 'Media:index#getMedia --> navigator.mediaDevices.getUserMedia';
353
-
354
313
  _loggerProxy.default.logger.error("".concat(logPath, " failed - ").concat(err, " (").concat(err.constraint, ")"));
355
-
356
314
  throw err;
357
315
  });
358
316
  };
317
+
359
318
  /**
360
319
  * Checks if the machine has at least one audio or video device (Dont use this for screen share)
361
320
  * @param {object} [options]
@@ -368,11 +327,9 @@ Media.getMedia = function (audio, video, config) {
368
327
  * sendVideo: true/false
369
328
  *}
370
329
  */
371
-
372
-
373
330
  Media.getSupportedDevice = function (_ref) {
374
331
  var sendAudio = _ref.sendAudio,
375
- sendVideo = _ref.sendVideo;
332
+ sendVideo = _ref.sendVideo;
376
333
  return _promise.default.resolve().then(function () {
377
334
  if (!navigator.mediaDevices || navigator.mediaDevices.enumerateDevices === undefined) {
378
335
  return {
@@ -380,7 +337,6 @@ Media.getSupportedDevice = function (_ref) {
380
337
  sendVideo: false
381
338
  };
382
339
  }
383
-
384
340
  return navigator.mediaDevices.enumerateDevices().then(function (devices) {
385
341
  var supported = {
386
342
  audio: devices.filter(function (device) {
@@ -397,40 +353,35 @@ Media.getSupportedDevice = function (_ref) {
397
353
  });
398
354
  });
399
355
  };
356
+
400
357
  /**
401
358
  * proxy to browser navigator.mediaDevices.enumerateDevices()
402
359
  * @returns {Promise}
403
360
  */
404
-
405
-
406
361
  Media.getDevices = function () {
407
362
  if (navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices) {
408
363
  return navigator.mediaDevices.enumerateDevices();
409
364
  }
410
-
411
365
  return _promise.default.reject(new _media.default('enumerateDevices not supported.'));
412
366
  };
367
+
413
368
  /**
414
369
  *
415
370
  * Toggle a specific stream
416
371
  * noop as of now, does nothing
417
372
  * @returns {null}
418
373
  */
419
-
420
-
421
374
  Media.toggleStream = function () {};
375
+
422
376
  /**
423
377
  * Stop input stream
424
378
  * @param {MediaTrack} track A media stream
425
379
  * @returns {null}
426
380
  */
427
-
428
-
429
381
  Media.stopTracks = function (track) {
430
382
  if (!track) {
431
383
  return _promise.default.resolve();
432
384
  }
433
-
434
385
  return _promise.default.resolve().then(function () {
435
386
  if (track && track.stop) {
436
387
  try {
@@ -441,6 +392,7 @@ Media.stopTracks = function (track) {
441
392
  }
442
393
  });
443
394
  };
395
+
444
396
  /**
445
397
  *
446
398
  * Stop input stream
@@ -448,21 +400,17 @@ Media.stopTracks = function (track) {
448
400
  * @returns {null}
449
401
  * @deprecated after v1.89.3
450
402
  */
451
-
452
-
453
403
  Media.stopStream = function (stream) {
454
404
  _loggerProxy.default.logger.warn('Media:index#stopStream --> [DEPRECATION WARNING]: stopStream has been deprecated after v1.89.3');
455
-
456
405
  if (!stream) {
457
406
  return _promise.default.resolve();
458
407
  }
408
+
459
409
  /*
460
410
  * To release local media
461
411
  * 1) Chrome requires all tracks to be stopped (stream.stop got deprecated)
462
412
  * 2) Firefox requires the stream to be stopped
463
413
  */
464
-
465
-
466
414
  return _promise.default.resolve().then(function () {
467
415
  if (stream.getTracks) {
468
416
  stream.getTracks().forEach(function (track) {
@@ -473,6 +421,7 @@ Media.stopStream = function (stream) {
473
421
  }
474
422
  });
475
423
  };
424
+
476
425
  /**
477
426
  * generates streams for audio video and share
478
427
  * @param {object} mediaSetting parameter
@@ -489,8 +438,6 @@ Media.stopStream = function (stream) {
489
438
  * @param {Object} config SDK Config
490
439
  * @returns {Array} [localStream, shareStream]
491
440
  */
492
-
493
-
494
441
  Media.getUserMedia = function (mediaSetting, audioVideo, sharePreferences, config) {
495
442
  return Media.getLocalMedia({
496
443
  sendAudio: mediaSetting.sendAudio ? audioVideo.audio || mediaSetting.sendAudio : false,
@@ -505,7 +452,6 @@ Media.getUserMedia = function (mediaSetting, audioVideo, sharePreferences, confi
505
452
  });
506
453
  });
507
454
  };
508
-
509
455
  var _default = Media;
510
456
  exports.default = _default;
511
457
  //# sourceMappingURL=index.js.map