@webex/plugin-meetings 3.0.0-beta.2 → 3.0.0-beta.20
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.
- package/UPGRADING.md +9 -9
- package/browsers.js +19 -24
- package/dist/breakouts/breakout.js +116 -0
- package/dist/breakouts/breakout.js.map +1 -0
- package/dist/breakouts/collection.js +23 -0
- package/dist/breakouts/collection.js.map +1 -0
- package/dist/breakouts/index.js +226 -0
- package/dist/breakouts/index.js.map +1 -0
- package/dist/common/browser-detection.js +1 -20
- package/dist/common/browser-detection.js.map +1 -1
- package/dist/common/collection.js +5 -20
- package/dist/common/collection.js.map +1 -1
- package/dist/common/config.js +0 -7
- package/dist/common/config.js.map +1 -1
- package/dist/common/errors/captcha-error.js +10 -24
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +11 -24
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +12 -25
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +10 -24
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/parameter.js +5 -33
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.js +10 -24
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +9 -23
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/reconnection-in-progress.js +0 -17
- package/dist/common/errors/reconnection-in-progress.js.map +1 -1
- package/dist/common/errors/reconnection.js +10 -24
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +10 -24
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.js +6 -41
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js +5 -25
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.js +0 -22
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.js +0 -23
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.js +0 -12
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.js +0 -15
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-config.js +0 -4
- package/dist/common/logs/logger-config.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +1 -8
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.js +37 -60
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.js +4 -14
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +6 -6
- package/dist/config.js.map +1 -1
- package/dist/constants.js +88 -46
- package/dist/constants.js.map +1 -1
- package/dist/index.js +1 -17
- package/dist/index.js.map +1 -1
- package/dist/locus-info/controlsUtils.js +12 -29
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.js +3 -26
- package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
- package/dist/locus-info/fullState.js +0 -15
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.js +4 -12
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/locus-info/index.js +184 -190
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +3 -37
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +12 -38
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +92 -118
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +34 -91
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +67 -111
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +80 -114
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.js +2 -9
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js +10 -12
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/effectsState.js +125 -190
- package/dist/meeting/effectsState.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +5 -14
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +1692 -1925
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +36 -77
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +224 -230
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js +7 -0
- package/dist/meeting/request.type.js.map +1 -0
- package/dist/meeting/state.js +21 -31
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.js +43 -215
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.js +6 -25
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.js +14 -32
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +193 -268
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +3 -15
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.js +98 -183
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +137 -228
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +5 -20
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +490 -560
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/request.js +24 -41
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +99 -155
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +78 -86
- package/dist/member/index.js.map +1 -1
- package/dist/member/util.js +31 -68
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +3 -12
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +93 -200
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +16 -39
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.js +9 -38
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/config.js +0 -2
- package/dist/metrics/config.js.map +1 -1
- package/dist/metrics/constants.js +1 -2
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +55 -135
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +57 -32
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/multistreamMedia.js +15 -21
- package/dist/multistream/multistreamMedia.js.map +1 -1
- package/dist/multistream/receiveSlot.js +10 -50
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +45 -82
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +18 -58
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +6 -40
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +362 -416
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/networkQualityMonitor/index.js +36 -57
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/personal-meeting-room/index.js +21 -45
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +1 -31
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.js +0 -13
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/reachability/index.js +138 -182
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +3 -18
- package/dist/reachability/request.js.map +1 -1
- package/dist/reactions/constants.js +13 -0
- package/dist/reactions/constants.js.map +1 -0
- package/dist/reactions/reactions.js +109 -0
- package/dist/reactions/reactions.js.map +1 -0
- package/dist/reactions/reactions.type.js +36 -0
- package/dist/reactions/reactions.type.js.map +1 -0
- package/dist/reconnection-manager/index.js +322 -455
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/enums.js +17 -0
- package/dist/recording-controller/enums.js.map +1 -0
- package/dist/recording-controller/index.js +343 -0
- package/dist/recording-controller/index.js.map +1 -0
- package/dist/recording-controller/util.js +63 -0
- package/dist/recording-controller/util.js.map +1 -0
- package/dist/roap/index.js +39 -64
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +94 -113
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +85 -94
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/statsAnalyzer/global.js +0 -2
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.js +85 -175
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +72 -53
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +22 -47
- package/dist/transcription/index.js.map +1 -1
- package/internal-README.md +7 -6
- package/package.json +25 -20
- package/src/breakouts/README.md +190 -0
- package/src/breakouts/breakout.ts +110 -0
- package/src/breakouts/collection.ts +19 -0
- package/src/breakouts/index.ts +225 -0
- package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
- package/src/common/collection.ts +9 -7
- package/src/common/{config.js → config.ts} +1 -1
- package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
- package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
- package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
- package/src/common/errors/{media.js → media.ts} +11 -7
- package/src/common/errors/parameter.ts +11 -7
- package/src/common/errors/{password-error.js → password-error.ts} +11 -7
- package/src/common/errors/{permission.js → permission.ts} +10 -6
- package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
- package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
- package/src/common/errors/{stats.js → stats.ts} +11 -7
- package/src/common/errors/{webex-errors.js → webex-errors.ts} +8 -7
- package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
- package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
- package/src/common/events/{events.js → events.ts} +5 -1
- package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
- package/src/common/events/{util.js → util.ts} +2 -3
- package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
- package/src/common/logs/logger-proxy.ts +44 -0
- package/src/common/logs/{request.js → request.ts} +22 -9
- package/src/common/queue.ts +1 -2
- package/src/{config.js → config.ts} +17 -12
- package/src/constants.ts +40 -1
- package/src/index.js +1 -1
- package/src/locus-info/controlsUtils.ts +114 -0
- package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
- package/src/locus-info/{fullState.js → fullState.ts} +16 -12
- package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
- package/src/locus-info/{index.js → index.ts} +148 -64
- package/src/locus-info/{infoUtils.js → infoUtils.ts} +19 -8
- package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +17 -17
- package/src/locus-info/{parser.js → parser.ts} +67 -79
- package/src/locus-info/{selfUtils.js → selfUtils.ts} +123 -68
- package/src/media/{index.js → index.ts} +181 -131
- package/src/media/{properties.js → properties.ts} +47 -28
- package/src/media/{util.js → util.ts} +2 -2
- package/src/mediaQualityMetrics/{config.js → config.ts} +46 -46
- package/src/meeting/{effectsState.js → effectsState.ts} +47 -41
- package/src/meeting/in-meeting-actions.ts +15 -3
- package/src/meeting/{index.js → index.ts} +2263 -1427
- package/src/meeting/{muteState.js → muteState.ts} +78 -42
- package/src/meeting/{request.js → request.ts} +292 -142
- package/src/meeting/request.type.ts +13 -0
- package/src/meeting/{state.js → state.ts} +50 -35
- package/src/meeting/{util.js → util.ts} +112 -115
- package/src/meeting-info/{collection.js → collection.ts} +6 -2
- package/src/meeting-info/{index.js → index.ts} +42 -36
- package/src/meeting-info/meeting-info-v2.ts +273 -0
- package/src/meeting-info/{request.js → request.ts} +14 -4
- package/src/meeting-info/{util.js → util.ts} +60 -51
- package/src/meeting-info/{utilv2.js → utilv2.ts} +65 -58
- package/src/meetings/{collection.js → collection.ts} +6 -3
- package/src/meetings/index.ts +1159 -0
- package/src/meetings/{request.js → request.ts} +32 -25
- package/src/meetings/{util.js → util.ts} +34 -32
- package/src/member/{index.js → index.ts} +102 -56
- package/src/member/{util.js → util.ts} +52 -25
- package/src/members/{collection.js → collection.ts} +2 -2
- package/src/members/{index.js → index.ts} +219 -142
- package/src/members/{request.js → request.ts} +60 -16
- package/src/members/{util.js → util.ts} +50 -48
- package/src/metrics/{config.js → config.ts} +254 -83
- package/src/metrics/{constants.js → constants.ts} +0 -2
- package/src/metrics/{index.js → index.ts} +106 -74
- package/src/multistream/mediaRequestManager.ts +81 -15
- package/src/multistream/multistreamMedia.ts +5 -0
- package/src/multistream/receiveSlot.ts +18 -12
- package/src/multistream/receiveSlotManager.ts +23 -21
- package/src/multistream/remoteMedia.ts +15 -5
- package/src/multistream/remoteMediaGroup.ts +4 -3
- package/src/multistream/remoteMediaManager.ts +153 -37
- package/src/networkQualityMonitor/{index.js → index.ts} +37 -25
- package/src/personal-meeting-room/{index.js → index.ts} +28 -19
- package/src/personal-meeting-room/{request.js → request.ts} +13 -4
- package/src/personal-meeting-room/{util.js → util.ts} +4 -4
- package/src/reachability/{index.js → index.ts} +99 -83
- package/src/reachability/request.ts +39 -33
- package/src/reactions/constants.ts +4 -0
- package/src/reactions/reactions.ts +104 -0
- package/src/reactions/reactions.type.ts +62 -0
- package/src/reconnection-manager/{index.js → index.ts} +195 -102
- package/src/recording-controller/enums.ts +8 -0
- package/src/recording-controller/index.ts +315 -0
- package/src/recording-controller/util.ts +58 -0
- package/src/roap/{index.js → index.ts} +73 -56
- package/src/roap/request.ts +157 -0
- package/src/roap/turnDiscovery.ts +77 -37
- package/src/statsAnalyzer/{global.js → global.ts} +30 -33
- package/src/statsAnalyzer/{index.js → index.ts} +468 -192
- package/src/statsAnalyzer/mqaUtil.ts +290 -0
- package/src/transcription/{index.js → index.ts} +46 -39
- package/test/integration/spec/journey.js +664 -463
- package/test/integration/spec/space-meeting.js +320 -206
- package/test/integration/spec/transcription.js +7 -8
- package/test/unit/spec/breakouts/breakout.ts +119 -0
- package/test/unit/spec/breakouts/collection.ts +15 -0
- package/test/unit/spec/breakouts/index.ts +293 -0
- package/test/unit/spec/common/browser-detection.js +9 -28
- package/test/unit/spec/fixture/locus.js +92 -90
- package/test/unit/spec/locus-info/controlsUtils.js +25 -5
- package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
- package/test/unit/spec/locus-info/index.js +104 -2
- package/test/unit/spec/locus-info/infoUtils.js +41 -32
- package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
- package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
- package/test/unit/spec/locus-info/parser.js +3 -9
- package/test/unit/spec/locus-info/selfConstant.js +97 -103
- package/test/unit/spec/locus-info/selfUtils.js +105 -12
- package/test/unit/spec/media/index.ts +31 -47
- package/test/unit/spec/media/properties.ts +9 -9
- package/test/unit/spec/meeting/effectsState.js +39 -45
- package/test/unit/spec/meeting/in-meeting-actions.ts +5 -2
- package/test/unit/spec/meeting/index.js +2017 -742
- package/test/unit/spec/meeting/muteState.js +42 -33
- package/test/unit/spec/meeting/request.js +115 -44
- package/test/unit/spec/meeting/utils.js +104 -171
- package/test/unit/spec/meeting-info/meetinginfov2.js +100 -73
- package/test/unit/spec/meeting-info/request.js +7 -9
- package/test/unit/spec/meeting-info/util.js +11 -12
- package/test/unit/spec/meeting-info/utilv2.js +110 -74
- package/test/unit/spec/meetings/collection.js +1 -1
- package/test/unit/spec/meetings/index.js +439 -257
- package/test/unit/spec/meetings/utils.js +14 -12
- package/test/unit/spec/member/index.js +0 -1
- package/test/unit/spec/member/util.js +31 -7
- package/test/unit/spec/members/index.js +104 -54
- package/test/unit/spec/members/request.js +29 -20
- package/test/unit/spec/members/utils.js +8 -5
- package/test/unit/spec/metrics/index.js +16 -21
- package/test/unit/spec/multistream/mediaRequestManager.ts +316 -50
- package/test/unit/spec/multistream/receiveSlot.ts +6 -6
- package/test/unit/spec/multistream/receiveSlotManager.ts +13 -13
- package/test/unit/spec/multistream/remoteMedia.ts +10 -2
- package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
- package/test/unit/spec/multistream/remoteMediaManager.ts +412 -65
- package/test/unit/spec/networkQualityMonitor/index.js +21 -15
- package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
- package/test/unit/spec/reachability/index.ts +58 -26
- package/test/unit/spec/reconnection-manager/index.js +102 -9
- package/test/unit/spec/recording-controller/index.js +231 -0
- package/test/unit/spec/recording-controller/util.js +102 -0
- package/test/unit/spec/roap/index.ts +2 -1
- package/test/unit/spec/roap/request.ts +114 -0
- package/test/unit/spec/roap/turnDiscovery.ts +64 -45
- package/test/unit/spec/stats-analyzer/index.js +27 -22
- package/test/utils/cmr.js +44 -42
- package/test/utils/testUtils.js +83 -74
- package/test/utils/webex-config.js +18 -18
- package/test/utils/webex-test-users.js +54 -50
- package/tsconfig.json +6 -0
- package/dist/media/internal-media-core-wrapper.js +0 -22
- package/dist/media/internal-media-core-wrapper.js.map +0 -1
- package/dist/peer-connection-manager/util.js +0 -124
- package/dist/peer-connection-manager/util.js.map +0 -1
- package/src/common/logs/logger-proxy.js +0 -33
- package/src/locus-info/controlsUtils.js +0 -102
- package/src/media/internal-media-core-wrapper.ts +0 -9
- package/src/meeting-info/meeting-info-v2.js +0 -255
- package/src/meetings/index.js +0 -1015
- package/src/peer-connection-manager/util.ts +0 -117
- package/src/roap/request.js +0 -127
- package/src/statsAnalyzer/mqaUtil.js +0 -173
- package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
|
@@ -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.js"],"sourcesContent":["\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 = {};\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, deviceId) => {\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(\n joinedWith?.mediaSessions\n ),\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) => (Array.isArray(self?.controls?.layouts) ? self.controls.layouts[0].type : undefined);\n\nSelfUtils.getRoles = (self) => (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 = {};\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(previous, current);\n updates.localAudioUnmuteRequiredByServer = SelfUtils.localAudioUnmuteRequiredByServer(previous, current);\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 = previous?.currentMediaStatus.audio !== current.currentMediaStatus.audio;\n updates.videoStateChange = previous?.currentMediaStatus.video !== current.currentMediaStatus.video;\n updates.shareStateChange = previous?.currentMediaStatus.share !== current.currentMediaStatus.share;\n\n updates.canNotViewTheParticipantListChanged = 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) => 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, current) => current?.layout && previous?.layout !== current?.layout;\n\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(\n previous.joinedWith.mediaSessions\n );\n const currentMediaStatus = SelfUtils.getMediaStatus(\n current.joinedWith.mediaSessions\n );\n\n if (\n previousMediaStatus.audio && 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 && 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 && 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 (!self || !self.controls || !self.controls.audio || !self.controls.audio.meta || !self.controls.audio.meta.lastModified) {\n return null;\n }\n\n return self.controls.audio.meta.lastModified;\n};\n\nSelfUtils.getModifiedBy = (self) => {\n if (!self || !self.controls || !self.controls.audio || !self.controls.audio.meta || !self.controls.audio.meta.modifiedBy) {\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) => {\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) => {\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\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/**\n * @param {Object} oldSelf\n * @param {Object} changedSelf\n * @returns {Boolean}\n */\nSelfUtils.wasMediaInactiveOrReleased = (oldSelf = {}, changedSelf) => oldSelf.joinedWith && oldSelf.joinedWith.state === _JOINED_ && changedSelf.joinedWith.state === _LEFT_ &&\n (changedSelf.joinedWith.reason === MEETING_END_REASON.INACTIVE || changedSelf.joinedWith.reason === MEETING_END_REASON.MEDIA_RELEASED);\n\n\n/**\n * @param {Object} check\n * @returns {Boolean}\n */\nSelfUtils.isLocusUserUnadmitted = (check) => check && check.joinedWith?.intent?.type === _WAIT_ && check.state === _IDLE_;\n\n/**\n * @param {Object} check\n * @returns {Boolean}\n */\nSelfUtils.isLocusUserAdmitted = (check) => 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) => {\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('New self must be defined to determine if self transitioned moderator status.');\n }\n\n return oldSelf.moderator !== changedSelf.moderator;\n};\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, changedSelf) => oldSelf && oldSelf.joinedWith?.intent?.type === _MOVE_MEDIA_ && changedSelf && 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, changedSelf) => {\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('New self must be defined to determine if self transitioned to admitted as guest.');\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 (changedSelf.remoteMuted !== null) &&\n ((oldSelf.remoteMuted !== changedSelf.remoteMuted) || (changedSelf.remoteMuted && (oldSelf.unmuteAllowed !== changedSelf.unmuteAllowed)));\n};\n\nSelfUtils.localAudioUnmuteRequestedByServer = (oldSelf = {}, changedSelf) => {\n if (!changedSelf) {\n throw new ParameterError('New self must be defined to determine if self received request to unmute.');\n }\n\n return changedSelf.localAudioUnmuteRequested && !oldSelf.localAudioUnmuteRequested;\n};\n\n\nSelfUtils.localAudioUnmuteRequiredByServer = (oldSelf = {}, changedSelf) => {\n if (!changedSelf) {\n throw new ParameterError('New self must be defined to determine if localAudioUnmuteRequired changed.');\n }\n\n return !changedSelf.remoteMuted && changedSelf.localAudioUnmuteRequired && (oldSelf.localAudioUnmuteRequired !== changedSelf.localAudioUnmuteRequired);\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, 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((media) => media.mediaType === AUDIO && media.mediaContent === MediaContent.main);\n mediaStatus.video = mediaSessions.find((media) => media.mediaType === VIDEO && media.mediaContent === MediaContent.main);\n mediaStatus.share = mediaSessions.find((media) => media.mediaType === VIDEO && media.mediaContent === MediaContent.slides);\n\n return mediaStatus;\n};\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","breakoutSessions","getBreakouts","controls","breakout","sessions","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","breakoutsChanged","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 {isEqual} from 'lodash';\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 breakoutSessions: SelfUtils.getBreakouts(self),\n };\n }\n\n return null;\n};\n\nSelfUtils.getBreakouts = (self) => self?.controls?.breakout?.sessions;\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 updates.breakoutsChanged = SelfUtils.breakoutsChanged(previous, current);\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.breakoutsChanged = (previous, current) =>\n !isEqual(previous?.breakoutSessions, current?.breakoutSessions);\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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"}
|
package/dist/media/index.js
CHANGED
|
@@ -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
|
-
|
|
17
|
+
var _internalMediaCore = require("@webex/internal-media-core");
|
|
29
18
|
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
|
30
|
-
|
|
31
19
|
var _constants = require("../constants");
|
|
32
|
-
|
|
33
20
|
var _config = _interopRequireDefault(require("../config"));
|
|
34
|
-
|
|
35
21
|
var _config2 = _interopRequireDefault(require("../common/config"));
|
|
36
|
-
|
|
37
22
|
var _media = _interopRequireDefault(require("../common/errors/media"));
|
|
38
|
-
|
|
39
23
|
var _browserDetection = _interopRequireDefault(require("../common/browser-detection"));
|
|
40
|
-
|
|
41
|
-
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
|
-
|
|
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
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
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,35 +112,30 @@ 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
|
-
*
|
|
150
|
-
*
|
|
120
|
+
*
|
|
121
|
+
* @param {boolean} isMultistream
|
|
122
|
+
* @param {string} debugId string useful for debugging (will appear in media connection logs)
|
|
151
123
|
* @param {Object} options
|
|
152
|
-
* @param {
|
|
124
|
+
* @param {Object} [options.mediaProperties] only applicable to non-multistream connections, contains mediaDirection and local tracks:
|
|
125
|
+
* audioTrack, videoTrack and shareTrack
|
|
153
126
|
* @param {string} [options.remoteQualityLevel] LOW|MEDIUM|HIGH applicable only to non-multistream connections
|
|
154
127
|
* @param {boolean} [options.enableRtx] applicable only to non-multistream connections
|
|
155
128
|
* @param {boolean} [options.enableExtmap] applicable only to non-multistream connections
|
|
156
129
|
* @param {Object} [options.turnServerInfo]
|
|
157
130
|
* @returns {RoapMediaConnection}
|
|
158
131
|
*/
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
enableExtmap = _ref.enableExtmap,
|
|
166
|
-
turnServerInfo = _ref.turnServerInfo;
|
|
167
|
-
var mediaDirection = mediaProperties.mediaDirection,
|
|
168
|
-
audioTrack = mediaProperties.audioTrack,
|
|
169
|
-
videoTrack = mediaProperties.videoTrack,
|
|
170
|
-
shareTrack = mediaProperties.shareTrack;
|
|
132
|
+
Media.createMediaConnection = function (isMultistream, debugId, options) {
|
|
133
|
+
var mediaProperties = options.mediaProperties,
|
|
134
|
+
remoteQualityLevel = options.remoteQualityLevel,
|
|
135
|
+
enableRtx = options.enableRtx,
|
|
136
|
+
enableExtmap = options.enableExtmap,
|
|
137
|
+
turnServerInfo = options.turnServerInfo;
|
|
171
138
|
var iceServers = [];
|
|
172
|
-
|
|
173
139
|
if (turnServerInfo) {
|
|
174
140
|
iceServers.push({
|
|
175
141
|
urls: turnServerInfo.url,
|
|
@@ -177,14 +143,19 @@ Media.createMediaConnection = function (mediaProperties, _ref) {
|
|
|
177
143
|
credential: turnServerInfo.password || ''
|
|
178
144
|
});
|
|
179
145
|
}
|
|
180
|
-
|
|
181
146
|
if (isMultistream) {
|
|
182
|
-
return new
|
|
147
|
+
return new _internalMediaCore.MultistreamRoapMediaConnection({
|
|
183
148
|
iceServers: iceServers
|
|
184
|
-
},
|
|
149
|
+
}, debugId);
|
|
185
150
|
}
|
|
186
|
-
|
|
187
|
-
|
|
151
|
+
if (!mediaProperties) {
|
|
152
|
+
throw new Error('mediaProperties have to be provided for non-multistream media connections');
|
|
153
|
+
}
|
|
154
|
+
var mediaDirection = mediaProperties.mediaDirection,
|
|
155
|
+
audioTrack = mediaProperties.audioTrack,
|
|
156
|
+
videoTrack = mediaProperties.videoTrack,
|
|
157
|
+
shareTrack = mediaProperties.shareTrack;
|
|
158
|
+
return new _internalMediaCore.RoapMediaConnection({
|
|
188
159
|
iceServers: iceServers,
|
|
189
160
|
skipInactiveTransceivers: false,
|
|
190
161
|
requireH264: true,
|
|
@@ -200,7 +171,6 @@ Media.createMediaConnection = function (mediaProperties, _ref) {
|
|
|
200
171
|
// it's always been hardcoded in SDK so for now keeping it that way
|
|
201
172
|
disableExtmap: !enableExtmap,
|
|
202
173
|
disableRtx: !enableRtx // see https://bugs.chromium.org/p/chromium/issues/detail?id=1020642 why we might want to remove RTX from SDP
|
|
203
|
-
|
|
204
174
|
}
|
|
205
175
|
}, {
|
|
206
176
|
send: {
|
|
@@ -214,8 +184,9 @@ Media.createMediaConnection = function (mediaProperties, _ref) {
|
|
|
214
184
|
screenShareVideo: mediaDirection.receiveShare,
|
|
215
185
|
remoteQualityLevel: remoteQualityLevel
|
|
216
186
|
}
|
|
217
|
-
},
|
|
187
|
+
}, debugId);
|
|
218
188
|
};
|
|
189
|
+
|
|
219
190
|
/**
|
|
220
191
|
* generates share streams
|
|
221
192
|
* @param {Object} options parameter
|
|
@@ -228,29 +199,26 @@ Media.createMediaConnection = function (mediaProperties, _ref) {
|
|
|
228
199
|
* @param {Object} config SDK Configuration for meetings plugin
|
|
229
200
|
* @returns {Promise.<MediaStream>}
|
|
230
201
|
*/
|
|
231
|
-
|
|
232
|
-
|
|
233
202
|
Media.getDisplayMedia = function (options) {
|
|
234
203
|
var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
235
204
|
// SDK screen share resolution settings from Webex.init
|
|
236
|
-
var customResolution = config.screenResolution || {};
|
|
237
|
-
|
|
238
|
-
var customShareFrameRate = config.screenFrameRate || null;
|
|
239
|
-
|
|
205
|
+
var customResolution = config.screenResolution || {};
|
|
206
|
+
// user defined screen share frame rate
|
|
207
|
+
var customShareFrameRate = config.screenFrameRate || null;
|
|
208
|
+
// user defined share preferences
|
|
240
209
|
var hasSharePreferences = options.sharePreferences;
|
|
241
210
|
var hasCustomConstraints = hasSharePreferences && hasSharePreferences.shareConstraints;
|
|
242
211
|
var hasHighFrameRate = hasSharePreferences && hasSharePreferences.highFrameRate;
|
|
243
212
|
var _Config$meetings = _config.default.meetings,
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
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;
|
|
249
218
|
var shareConstraints = {
|
|
250
219
|
cursor: _constants.MEDIA_TRACK_CONSTRAINT.CURSOR.AWLAYS,
|
|
251
220
|
aspectRatio: aspectRatio
|
|
252
221
|
};
|
|
253
|
-
|
|
254
222
|
if (hasCustomConstraints) {
|
|
255
223
|
shareConstraints = hasSharePreferences.shareConstraints;
|
|
256
224
|
} else if (hasHighFrameRate) {
|
|
@@ -265,14 +233,15 @@ Media.getDisplayMedia = function (options) {
|
|
|
265
233
|
height: customResolution.idealHeight || screenResolution.idealHeight,
|
|
266
234
|
width: customResolution.idealWidth || screenResolution.idealWidth
|
|
267
235
|
}, config.screenResolution);
|
|
268
|
-
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
// chrome and webkit based browsers (edge, safari) automatically adjust everything
|
|
269
239
|
// and we have noticed higher quality with those browser types
|
|
270
240
|
// firefox specifically has some issues with resolution and frame rate decision making
|
|
271
241
|
// so we are making it optional and configurable (with defaults) for firefox
|
|
272
242
|
// to have higher quality, and for developers to control the values
|
|
273
243
|
// eventually we may have to add the same functionality to chrome, OR conversely, get to with firefox
|
|
274
244
|
|
|
275
|
-
|
|
276
245
|
if (isBrowser('firefox')) {
|
|
277
246
|
var mediaConfig = {
|
|
278
247
|
audio: options.sendAudio,
|
|
@@ -288,22 +257,21 @@ Media.getDisplayMedia = function (options) {
|
|
|
288
257
|
// https://bugzilla.mozilla.org/show_bug.cgi?id=1321221
|
|
289
258
|
stream.getVideoTracks()[0].applyConstraints(shareConstraints);
|
|
290
259
|
}
|
|
291
|
-
|
|
292
260
|
return stream;
|
|
293
261
|
});
|
|
294
262
|
}
|
|
295
|
-
|
|
296
263
|
var getDisplayMediaParams = {
|
|
297
264
|
video: options.sendShare ? shareConstraints : false
|
|
298
|
-
};
|
|
299
|
-
// https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia
|
|
265
|
+
};
|
|
300
266
|
|
|
267
|
+
// safari doesn't support sending screen share audio
|
|
268
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia
|
|
301
269
|
if (options.sendAudio && isBrowser('safari')) {
|
|
302
270
|
getDisplayMediaParams.audio = options.sendAudio;
|
|
303
271
|
}
|
|
304
|
-
|
|
305
272
|
return navigator.mediaDevices.getDisplayMedia(getDisplayMediaParams);
|
|
306
273
|
};
|
|
274
|
+
|
|
307
275
|
/**
|
|
308
276
|
* generates audio and video using constraints (often called after getSupportedDevices)
|
|
309
277
|
* @param {Object|Boolean} audio gum constraints
|
|
@@ -311,8 +279,6 @@ Media.getDisplayMedia = function (options) {
|
|
|
311
279
|
* @param {Object} config SDK Configuration for meetings plugin
|
|
312
280
|
* @returns {Object} {streams}
|
|
313
281
|
*/
|
|
314
|
-
|
|
315
|
-
|
|
316
282
|
Media.getMedia = function (audio, video, config) {
|
|
317
283
|
var defaultWidth = {
|
|
318
284
|
ideal: config.resolution.idealWidth,
|
|
@@ -329,23 +295,26 @@ Media.getMedia = function (audio, video, config) {
|
|
|
329
295
|
video: video ? isBrowser('firefox') && video.width && video.width.max === 320 ? {
|
|
330
296
|
deviceId: video.deviceId ? video.deviceId : undefined,
|
|
331
297
|
width: 320,
|
|
332
|
-
height: 180
|
|
298
|
+
height: 180,
|
|
299
|
+
frameRate: video.frameRate ? video.frameRate : undefined,
|
|
300
|
+
facingMode: video.facingMode ? video.facingMode : undefined
|
|
333
301
|
} : {
|
|
334
302
|
deviceId: video.deviceId ? video.deviceId : undefined,
|
|
335
303
|
width: video.width ? video.width : defaultWidth,
|
|
336
|
-
height: video.height ? video.height : defaultHeight
|
|
304
|
+
height: video.height ? video.height : defaultHeight,
|
|
305
|
+
frameRate: video.frameRate ? video.frameRate : undefined,
|
|
306
|
+
facingMode: video.facingMode ? video.facingMode : undefined
|
|
337
307
|
} : false,
|
|
338
308
|
fake: process.env.NODE_ENV === 'test' // Special case to get fake media for Firefox browser for testing
|
|
339
|
-
|
|
340
309
|
};
|
|
310
|
+
|
|
341
311
|
return navigator.mediaDevices.getUserMedia(mediaConfig).catch(function (err) {
|
|
342
312
|
var logPath = 'Media:index#getMedia --> navigator.mediaDevices.getUserMedia';
|
|
343
|
-
|
|
344
313
|
_loggerProxy.default.logger.error("".concat(logPath, " failed - ").concat(err, " (").concat(err.constraint, ")"));
|
|
345
|
-
|
|
346
314
|
throw err;
|
|
347
315
|
});
|
|
348
316
|
};
|
|
317
|
+
|
|
349
318
|
/**
|
|
350
319
|
* Checks if the machine has at least one audio or video device (Dont use this for screen share)
|
|
351
320
|
* @param {object} [options]
|
|
@@ -358,11 +327,9 @@ Media.getMedia = function (audio, video, config) {
|
|
|
358
327
|
* sendVideo: true/false
|
|
359
328
|
*}
|
|
360
329
|
*/
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
var sendAudio = _ref2.sendAudio,
|
|
365
|
-
sendVideo = _ref2.sendVideo;
|
|
330
|
+
Media.getSupportedDevice = function (_ref) {
|
|
331
|
+
var sendAudio = _ref.sendAudio,
|
|
332
|
+
sendVideo = _ref.sendVideo;
|
|
366
333
|
return _promise.default.resolve().then(function () {
|
|
367
334
|
if (!navigator.mediaDevices || navigator.mediaDevices.enumerateDevices === undefined) {
|
|
368
335
|
return {
|
|
@@ -370,7 +337,6 @@ Media.getSupportedDevice = function (_ref2) {
|
|
|
370
337
|
sendVideo: false
|
|
371
338
|
};
|
|
372
339
|
}
|
|
373
|
-
|
|
374
340
|
return navigator.mediaDevices.enumerateDevices().then(function (devices) {
|
|
375
341
|
var supported = {
|
|
376
342
|
audio: devices.filter(function (device) {
|
|
@@ -387,40 +353,35 @@ Media.getSupportedDevice = function (_ref2) {
|
|
|
387
353
|
});
|
|
388
354
|
});
|
|
389
355
|
};
|
|
356
|
+
|
|
390
357
|
/**
|
|
391
358
|
* proxy to browser navigator.mediaDevices.enumerateDevices()
|
|
392
359
|
* @returns {Promise}
|
|
393
360
|
*/
|
|
394
|
-
|
|
395
|
-
|
|
396
361
|
Media.getDevices = function () {
|
|
397
362
|
if (navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices) {
|
|
398
363
|
return navigator.mediaDevices.enumerateDevices();
|
|
399
364
|
}
|
|
400
|
-
|
|
401
365
|
return _promise.default.reject(new _media.default('enumerateDevices not supported.'));
|
|
402
366
|
};
|
|
367
|
+
|
|
403
368
|
/**
|
|
404
369
|
*
|
|
405
370
|
* Toggle a specific stream
|
|
406
371
|
* noop as of now, does nothing
|
|
407
372
|
* @returns {null}
|
|
408
373
|
*/
|
|
409
|
-
|
|
410
|
-
|
|
411
374
|
Media.toggleStream = function () {};
|
|
375
|
+
|
|
412
376
|
/**
|
|
413
377
|
* Stop input stream
|
|
414
378
|
* @param {MediaTrack} track A media stream
|
|
415
379
|
* @returns {null}
|
|
416
380
|
*/
|
|
417
|
-
|
|
418
|
-
|
|
419
381
|
Media.stopTracks = function (track) {
|
|
420
382
|
if (!track) {
|
|
421
383
|
return _promise.default.resolve();
|
|
422
384
|
}
|
|
423
|
-
|
|
424
385
|
return _promise.default.resolve().then(function () {
|
|
425
386
|
if (track && track.stop) {
|
|
426
387
|
try {
|
|
@@ -431,6 +392,7 @@ Media.stopTracks = function (track) {
|
|
|
431
392
|
}
|
|
432
393
|
});
|
|
433
394
|
};
|
|
395
|
+
|
|
434
396
|
/**
|
|
435
397
|
*
|
|
436
398
|
* Stop input stream
|
|
@@ -438,21 +400,17 @@ Media.stopTracks = function (track) {
|
|
|
438
400
|
* @returns {null}
|
|
439
401
|
* @deprecated after v1.89.3
|
|
440
402
|
*/
|
|
441
|
-
|
|
442
|
-
|
|
443
403
|
Media.stopStream = function (stream) {
|
|
444
404
|
_loggerProxy.default.logger.warn('Media:index#stopStream --> [DEPRECATION WARNING]: stopStream has been deprecated after v1.89.3');
|
|
445
|
-
|
|
446
405
|
if (!stream) {
|
|
447
406
|
return _promise.default.resolve();
|
|
448
407
|
}
|
|
408
|
+
|
|
449
409
|
/*
|
|
450
410
|
* To release local media
|
|
451
411
|
* 1) Chrome requires all tracks to be stopped (stream.stop got deprecated)
|
|
452
412
|
* 2) Firefox requires the stream to be stopped
|
|
453
413
|
*/
|
|
454
|
-
|
|
455
|
-
|
|
456
414
|
return _promise.default.resolve().then(function () {
|
|
457
415
|
if (stream.getTracks) {
|
|
458
416
|
stream.getTracks().forEach(function (track) {
|
|
@@ -463,6 +421,7 @@ Media.stopStream = function (stream) {
|
|
|
463
421
|
}
|
|
464
422
|
});
|
|
465
423
|
};
|
|
424
|
+
|
|
466
425
|
/**
|
|
467
426
|
* generates streams for audio video and share
|
|
468
427
|
* @param {object} mediaSetting parameter
|
|
@@ -479,8 +438,6 @@ Media.stopStream = function (stream) {
|
|
|
479
438
|
* @param {Object} config SDK Config
|
|
480
439
|
* @returns {Array} [localStream, shareStream]
|
|
481
440
|
*/
|
|
482
|
-
|
|
483
|
-
|
|
484
441
|
Media.getUserMedia = function (mediaSetting, audioVideo, sharePreferences, config) {
|
|
485
442
|
return Media.getLocalMedia({
|
|
486
443
|
sendAudio: mediaSetting.sendAudio ? audioVideo.audio || mediaSetting.sendAudio : false,
|
|
@@ -495,7 +452,6 @@ Media.getUserMedia = function (mediaSetting, audioVideo, sharePreferences, confi
|
|
|
495
452
|
});
|
|
496
453
|
});
|
|
497
454
|
};
|
|
498
|
-
|
|
499
455
|
var _default = Media;
|
|
500
456
|
exports.default = _default;
|
|
501
457
|
//# sourceMappingURL=index.js.map
|