@webex/plugin-meetings 3.8.1-web-workers-keepalive.1 → 3.9.0-multipleLLM.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/dist/breakouts/breakout.js +1 -1
  2. package/dist/breakouts/index.js +1 -1
  3. package/dist/constants.js +26 -2
  4. package/dist/constants.js.map +1 -1
  5. package/dist/interpretation/index.js +1 -1
  6. package/dist/interpretation/siLanguage.js +1 -1
  7. package/dist/locus-info/index.js +77 -95
  8. package/dist/locus-info/index.js.map +1 -1
  9. package/dist/locus-info/parser.js +4 -1
  10. package/dist/locus-info/parser.js.map +1 -1
  11. package/dist/media/properties.js +53 -5
  12. package/dist/media/properties.js.map +1 -1
  13. package/dist/meeting/brbState.js +14 -12
  14. package/dist/meeting/brbState.js.map +1 -1
  15. package/dist/meeting/in-meeting-actions.js +8 -0
  16. package/dist/meeting/in-meeting-actions.js.map +1 -1
  17. package/dist/meeting/index.js +443 -225
  18. package/dist/meeting/index.js.map +1 -1
  19. package/dist/meeting/muteState.js +2 -5
  20. package/dist/meeting/muteState.js.map +1 -1
  21. package/dist/meeting/request.js +44 -0
  22. package/dist/meeting/request.js.map +1 -1
  23. package/dist/meeting/request.type.js.map +1 -1
  24. package/dist/meeting/type.js +7 -0
  25. package/dist/meeting/type.js.map +1 -0
  26. package/dist/meeting/util.js +98 -13
  27. package/dist/meeting/util.js.map +1 -1
  28. package/dist/meeting-info/meeting-info-v2.js +29 -21
  29. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  30. package/dist/meetings/index.js +18 -10
  31. package/dist/meetings/index.js.map +1 -1
  32. package/dist/member/index.js.map +1 -1
  33. package/dist/member/types.js.map +1 -1
  34. package/dist/members/collection.js +13 -0
  35. package/dist/members/collection.js.map +1 -1
  36. package/dist/members/index.js +53 -29
  37. package/dist/members/index.js.map +1 -1
  38. package/dist/members/request.js +3 -3
  39. package/dist/members/request.js.map +1 -1
  40. package/dist/members/util.js +25 -8
  41. package/dist/members/util.js.map +1 -1
  42. package/dist/metrics/constants.js +2 -1
  43. package/dist/metrics/constants.js.map +1 -1
  44. package/dist/multistream/mediaRequestManager.js +1 -1
  45. package/dist/multistream/mediaRequestManager.js.map +1 -1
  46. package/dist/multistream/remoteMedia.js +34 -5
  47. package/dist/multistream/remoteMedia.js.map +1 -1
  48. package/dist/multistream/remoteMediaGroup.js +42 -2
  49. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  50. package/dist/multistream/sendSlotManager.js +32 -2
  51. package/dist/multistream/sendSlotManager.js.map +1 -1
  52. package/dist/reachability/index.js +3 -3
  53. package/dist/reachability/index.js.map +1 -1
  54. package/dist/types/constants.d.ts +24 -0
  55. package/dist/types/locus-info/index.d.ts +54 -10
  56. package/dist/types/media/properties.d.ts +21 -0
  57. package/dist/types/meeting/brbState.d.ts +0 -1
  58. package/dist/types/meeting/in-meeting-actions.d.ts +8 -0
  59. package/dist/types/meeting/index.d.ts +51 -20
  60. package/dist/types/meeting/request.d.ts +18 -1
  61. package/dist/types/meeting/request.type.d.ts +74 -0
  62. package/dist/types/meeting/type.d.ts +9 -0
  63. package/dist/types/meeting/util.d.ts +13 -3
  64. package/dist/types/meeting-info/meeting-info-v2.d.ts +6 -3
  65. package/dist/types/meetings/index.d.ts +3 -1
  66. package/dist/types/member/types.d.ts +1 -0
  67. package/dist/types/members/collection.d.ts +6 -0
  68. package/dist/types/members/index.d.ts +22 -9
  69. package/dist/types/members/request.d.ts +1 -1
  70. package/dist/types/members/util.d.ts +13 -6
  71. package/dist/types/metrics/constants.d.ts +1 -0
  72. package/dist/types/multistream/remoteMedia.d.ts +20 -1
  73. package/dist/types/multistream/remoteMediaGroup.d.ts +11 -0
  74. package/dist/types/multistream/sendSlotManager.d.ts +16 -0
  75. package/dist/webinar/index.js +1 -1
  76. package/package.json +23 -24
  77. package/src/constants.ts +25 -2
  78. package/src/locus-info/index.ts +133 -96
  79. package/src/locus-info/parser.ts +5 -1
  80. package/src/media/properties.ts +43 -0
  81. package/src/meeting/brbState.ts +9 -7
  82. package/src/meeting/in-meeting-actions.ts +17 -0
  83. package/src/meeting/index.ts +273 -42
  84. package/src/meeting/muteState.ts +2 -6
  85. package/src/meeting/request.ts +39 -0
  86. package/src/meeting/request.type.ts +64 -0
  87. package/src/meeting/type.ts +9 -0
  88. package/src/meeting/util.ts +114 -22
  89. package/src/meeting-info/meeting-info-v2.ts +24 -5
  90. package/src/meetings/index.ts +12 -5
  91. package/src/member/index.ts +1 -0
  92. package/src/member/types.ts +1 -0
  93. package/src/members/collection.ts +11 -0
  94. package/src/members/index.ts +51 -15
  95. package/src/members/request.ts +2 -2
  96. package/src/members/util.ts +34 -6
  97. package/src/metrics/constants.ts +1 -0
  98. package/src/multistream/mediaRequestManager.ts +7 -7
  99. package/src/multistream/remoteMedia.ts +34 -4
  100. package/src/multistream/remoteMediaGroup.ts +37 -2
  101. package/src/multistream/sendSlotManager.ts +34 -2
  102. package/src/reachability/index.ts +3 -3
  103. package/test/unit/spec/locus-info/index.js +229 -98
  104. package/test/unit/spec/locus-info/parser.js +3 -2
  105. package/test/unit/spec/media/properties.ts +137 -0
  106. package/test/unit/spec/meeting/brbState.ts +9 -9
  107. package/test/unit/spec/meeting/in-meeting-actions.ts +8 -0
  108. package/test/unit/spec/meeting/index.js +1022 -93
  109. package/test/unit/spec/meeting/muteState.js +32 -6
  110. package/test/unit/spec/meeting/request.js +92 -0
  111. package/test/unit/spec/meeting/utils.js +167 -17
  112. package/test/unit/spec/meeting-info/meetinginfov2.js +8 -3
  113. package/test/unit/spec/meetings/index.js +12 -1
  114. package/test/unit/spec/members/collection.js +120 -0
  115. package/test/unit/spec/members/index.js +140 -12
  116. package/test/unit/spec/members/request.js +57 -2
  117. package/test/unit/spec/members/utils.js +139 -17
  118. package/test/unit/spec/multistream/mediaRequestManager.ts +19 -6
  119. package/test/unit/spec/multistream/remoteMedia.ts +66 -2
  120. package/test/unit/spec/multistream/sendSlotManager.ts +59 -0
  121. package/test/unit/spec/reachability/index.ts +158 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","_util","_interopRequireDefault","Member","exports","default","participant","options","arguments","length","undefined","_classCallCheck2","_defineProperty2","MEETINGS","canReclaimHost","id","name","isAudioMuted","isVideoMuted","isHandRaised","supportsBreakouts","supportLiveAnnotation","isSelf","isHost","isGuest","isInLobby","isInMeeting","isNotAdmitted","isContentSharing","status","isDevice","isUser","associatedUser","associatedUsers","_set","isRecording","isMutable","isRemovable","isBrb","type","isModerator","isModeratorAssignmentProhibited","isPresenterAssignmentProhibited","isPairedWithSelf","roles","pairedWith","participantUrl","memberId","mediaStatus","audio","video","processParticipant","processParticipantOptions","processMember","_createClass2","key","value","processPairedDevice","MemberUtil","extractId","extractName","isBreakoutsSupported","supportsInterpretation","isInterpretationSupported","isLiveAnnotationSupported","processStatus","processRoles","extractPairedWithParticipantUrl","processIsSelf","selfId","processIsHost","hostId","processIsContentSharing","contentSharingId","processType","processIsRecording","recordingId","extractMediaStatus","extractStatus","_IN_LOBBY_","_IN_MEETING_","_NOT_IN_MEETING_","setIsContentSharing","flag","setIsHost","setIsSelf","sharingId","isSame","extractControlRoles"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\nimport {MEETINGS, _IN_LOBBY_, _NOT_IN_MEETING_, _IN_MEETING_, _OBSERVE_} from '../constants';\nimport {IExternalRoles, IMediaStatus, Participant, ParticipantUrl} from './types';\nimport MemberUtil from './util';\n\nexport type MemberId = string;\n/**\n * @class Member\n */\nexport default class Member {\n associatedUser: MemberId | null; // deprecated, use associatedUsers instead\n associatedUsers: Set<MemberId>; // users associated with this device, empty if this member is not a device\n canReclaimHost: boolean;\n id: MemberId;\n isAudioMuted: any;\n isContentSharing: any;\n isDevice: any;\n isGuest: any;\n isHandRaised: any;\n isHost: any;\n isInLobby: any;\n isInMeeting: any;\n isModerator: any;\n isModeratorAssignmentProhibited: any;\n isPresenterAssignmentProhibited: any;\n isMutable: any;\n isNotAdmitted: any;\n isRecording: any;\n isRemovable: any;\n isSelf: any;\n isPairedWithSelf: boolean; // true for a device that we are paired with\n isBrb: boolean;\n isUser: any;\n isVideoMuted: any;\n roles: IExternalRoles;\n mediaStatus: IMediaStatus;\n name: any;\n participant: any;\n status: any;\n supportsBreakouts: boolean;\n supportsInterpretation: boolean;\n supportLiveAnnotation: boolean;\n type: any;\n namespace = MEETINGS;\n pairedWith: {\n participantUrl?: ParticipantUrl;\n memberId?: MemberId;\n };\n\n /**\n * @param {Object} participant - the locus participant\n * @param {Object} [options] - constructor params\n * @param {String} options.selfId\n * @param {String} options.hostId\n * @param {String} options.contentSharingId\n * @param {String} options.type\n * @returns {Member}\n * @memberof Member\n */\n constructor(\n participant: Participant,\n options:\n | {\n selfId: string;\n hostId: string;\n contentSharingId: string;\n type: string;\n }\n | any = {}\n ) {\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.canReclaimHost = false;\n /**\n * The server participant object\n * @instance\n * @type {Object}\n * @private\n * @memberof Member\n */\n this.participant = null;\n /**\n * The member id\n * @instance\n * @type {String}\n * @public\n * @memberof Member\n */\n this.id = null;\n /**\n * The member name\n * @instance\n * @type {String}\n * @public\n * @memberof Member\n */\n this.name = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isAudioMuted = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isVideoMuted = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isHandRaised = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.supportsBreakouts = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.supportLiveAnnotation = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isSelf = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isHost = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isGuest = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isInLobby = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isInMeeting = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isNotAdmitted = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isContentSharing = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.status = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isDevice = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isUser = null;\n /**\n * Deprecated: use associatedUsers instead\n * Is this member associated to another user by way of pairing (typical of devices)\n * @instance\n * @type {MemberId|null}\n * @deprecated\n * @public\n * @memberof Member\n */\n this.associatedUser = null;\n /**\n * Is this member associated to another user by way of pairing (typical of devices)\n * @instance\n * @type {String}\n * @public\n * @memberof Member\n */\n this.associatedUsers = new Set<MemberId>();\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isRecording = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isMutable = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isRemovable = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isBrb = false;\n /**\n * @instance\n * @type {String}\n * @private\n * @memberof Member\n */\n this.type = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isModerator = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isModeratorAssignmentProhibited = null;\n\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isPresenterAssignmentProhibited = null;\n\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isPairedWithSelf = false;\n\n /**\n * @instance\n * @type {IExternalRoles}\n * @public\n * @memberof Member\n */\n this.roles = null;\n\n this.pairedWith = {\n participantUrl: undefined,\n memberId: undefined,\n };\n /**\n * @instance\n * @type {IMediaStatus}\n * @public\n * @memberof Member\n * @example {audio: MediaStatus.RECVONLY, video: MediaStatus.SENDRECV}\n */\n this.mediaStatus = {\n audio: null,\n video: null,\n };\n // TODO: more participant types\n // such as native client, web client, is a device, what type of phone, etc\n this.processParticipant(participant);\n this.processParticipantOptions(participant, options);\n this.processMember();\n }\n\n /**\n * set all the participant values extracted directly from locus participant\n * @param {Object} participant the locus participant object\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processParticipant(participant: Participant) {\n this.participant = participant;\n if (participant) {\n this.processPairedDevice(participant);\n this.canReclaimHost = MemberUtil.canReclaimHost(participant);\n this.id = MemberUtil.extractId(participant);\n this.name = MemberUtil.extractName(participant);\n this.isAudioMuted = MemberUtil.isAudioMuted(participant);\n this.isVideoMuted = MemberUtil.isVideoMuted(participant);\n this.isHandRaised = MemberUtil.isHandRaised(participant);\n this.supportsBreakouts = MemberUtil.isBreakoutsSupported(participant);\n this.supportsInterpretation = MemberUtil.isInterpretationSupported(participant);\n this.supportLiveAnnotation = MemberUtil.isLiveAnnotationSupported(participant);\n this.isGuest = MemberUtil.isGuest(participant);\n this.isBrb = MemberUtil.isBrb(participant);\n this.isUser = MemberUtil.isUser(participant);\n this.isDevice = MemberUtil.isDevice(participant);\n this.isModerator = MemberUtil.isModerator(participant);\n this.isModeratorAssignmentProhibited =\n MemberUtil.isModeratorAssignmentProhibited(participant);\n this.isPresenterAssignmentProhibited =\n MemberUtil.isPresenterAssignmentProhibited(participant);\n this.processStatus(participant);\n this.processRoles(participant);\n // must be done last\n this.isNotAdmitted = MemberUtil.isNotAdmitted(participant, this.isGuest, this.status);\n }\n }\n\n /**\n * Checks if the participant is paired with another device\n *\n * @param {any} participant the locus participant object\n * @returns {void}\n */\n processPairedDevice(participant: Participant) {\n // we can't populate this.pairedWith.memberId here because the member for that device might not yet exist\n // so only populating the participantUrl and memberId will be set later\n this.pairedWith.participantUrl = MemberUtil.extractPairedWithParticipantUrl(participant);\n }\n\n /**\n * Use the members options and participant values to set on the member\n * @param {Object} participant the locus participant object\n * @param {Object} options the passed in options, what was set on members\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processParticipantOptions(participant: Participant, options: any) {\n if (participant && options) {\n this.processIsSelf(participant, options.selfId);\n this.processIsHost(participant, options.hostId);\n this.processIsContentSharing(participant, options.contentSharingId);\n this.processType(options.type);\n this.processIsRecording(participant, options.recordingId);\n }\n }\n\n /**\n * processes what already exists on the member to determine other info about the member\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processMember() {\n // must occur after self, guest, meeting, and type properties are calculated\n this.isRemovable = MemberUtil.isRemovable(\n this.isSelf,\n this.isGuest,\n this.isInMeeting,\n this.type\n );\n // must occur after self, device, meeting, mute status, and type properties are calculated\n this.isMutable = MemberUtil.isMutable(\n this.isSelf,\n this.isDevice,\n this.isInMeeting,\n this.isAudioMuted,\n this.type\n );\n\n this.mediaStatus = MemberUtil.extractMediaStatus(this.participant);\n }\n\n /**\n * set the status on member object\n * @param {Object} participant the locus participant object\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processStatus(participant: Participant) {\n this.status = MemberUtil.extractStatus(participant);\n switch (this.status) {\n case _IN_LOBBY_:\n this.isInLobby = true;\n this.isInMeeting = false;\n break;\n case _IN_MEETING_:\n this.isInLobby = false;\n this.isInMeeting = true;\n break;\n case _NOT_IN_MEETING_:\n this.isInLobby = false;\n this.isInMeeting = false;\n break;\n default:\n this.isInLobby = false;\n this.isInMeeting = false;\n }\n }\n\n /**\n * set the isContentSharing on member\n * @param {Boolean} flag\n * @returns {undefined}\n * @public\n * @memberof Member\n */\n public setIsContentSharing(flag: boolean) {\n this.isContentSharing = flag;\n }\n\n /**\n * set the isHost on member\n * @param {Boolean} flag\n * @returns {undefined}\n * @public\n * @memberof Member\n */\n public setIsHost(flag: boolean) {\n this.isHost = flag;\n }\n\n /**\n * set the isSelf on member\n * @param {Boolean} flag\n * @returns {undefined}\n * @public\n * @memberof Member\n */\n public setIsSelf(flag: boolean) {\n this.isSelf = flag;\n }\n\n /**\n * determine if this member is content sharing\n * @param {Object} participant\n * @param {String} sharingId\n * @returns {undefined}\n * @public\n * @memberof Member\n */\n public processIsContentSharing(participant: Participant, sharingId: string) {\n if (MemberUtil.isUser(participant)) {\n this.isContentSharing = MemberUtil.isSame(participant, sharingId);\n }\n }\n\n /**\n * Determine if this member is recording\n * @param {Object} participant\n * @param {String} recordingId\n * @returns {undefined}\n * @public\n * @memberof Member\n */\n public processIsRecording(participant: Participant, recordingId: string) {\n this.isRecording = MemberUtil.isSame(participant, recordingId);\n }\n\n /**\n * determine if this member is the self\n * @param {Object} participant\n * @param {String} selfId\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processIsSelf(participant: Participant, selfId: string) {\n if (MemberUtil.isUser(participant)) {\n this.isSelf = MemberUtil.isSame(participant, selfId);\n }\n }\n\n /**\n * determine if this member is the host\n * @param {Object} participant\n * @param {String} hostId\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processIsHost(participant: Participant, hostId: string) {\n if (MemberUtil.isUser(participant)) {\n this.isHost = MemberUtil.isSame(participant, hostId);\n }\n }\n\n /**\n * process the roles that have been applied to this member\n * @param {Object} participant\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processRoles(participant: Participant) {\n this.roles = MemberUtil.extractControlRoles(participant);\n }\n\n /**\n * set the type for the member, could be MEETING or CALL\n * @param {String} type\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processType(type: string) {\n this.type = type;\n }\n}\n"],"mappings":";;;;;;;;;;;;AAGA,IAAAA,UAAA,GAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAC,sBAAA,CAAAF,OAAA;AALA;AACA;AACA;AAMA;AACA;AACA;AAFA,IAGqBG,MAAM,GAAAC,OAAA,CAAAC,OAAA;EAwCzB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,SAAAF,OACEG,WAAwB,EASxB;IAAA,IARAC,OAOO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAAA,IAAAG,gBAAA,CAAAN,OAAA,QAAAF,MAAA;IAAA,IAAAS,gBAAA,CAAAP,OAAA;IA1DmB;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IACD;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAmBL;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA,qBAafQ,mBAAQ;IAAA,IAAAD,gBAAA,CAAAP,OAAA;IA2BlB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACS,cAAc,GAAG,KAAK;IAC3B;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACR,WAAW,GAAG,IAAI;IACvB;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACS,EAAE,GAAG,IAAI;IACd;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,IAAI,GAAG,IAAI;IAChB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,YAAY,GAAG,IAAI;IACxB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,YAAY,GAAG,IAAI;IACxB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,YAAY,GAAG,IAAI;IACxB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,iBAAiB,GAAG,IAAI;IAC7B;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,qBAAqB,GAAG,IAAI;IACjC;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,MAAM,GAAG,IAAI;IAClB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,MAAM,GAAG,IAAI;IAClB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,OAAO,GAAG,IAAI;IACnB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,SAAS,GAAG,IAAI;IACrB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,WAAW,GAAG,IAAI;IACvB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,aAAa,GAAG,IAAI;IACzB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,gBAAgB,GAAG,IAAI;IAC5B;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,MAAM,GAAG,IAAI;IAClB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,QAAQ,GAAG,IAAI;IACpB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,MAAM,GAAG,IAAI;IAClB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,cAAc,GAAG,IAAI;IAC1B;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,eAAe,GAAG,IAAAC,IAAA,CAAA7B,OAAA,CAAkB,CAAC;IAC1C;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAAC8B,WAAW,GAAG,IAAI;IACvB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,SAAS,GAAG,IAAI;IACrB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,WAAW,GAAG,IAAI;IACvB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,KAAK,GAAG,KAAK;IAClB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,IAAI,GAAG,IAAI;IAChB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,WAAW,GAAG,IAAI;IACvB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,+BAA+B,GAAG,IAAI;;IAE3C;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,+BAA+B,GAAG,IAAI;;IAE3C;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,gBAAgB,GAAG,KAAK;;IAE7B;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,KAAK,GAAG,IAAI;IAEjB,IAAI,CAACC,UAAU,GAAG;MAChBC,cAAc,EAAEpC,SAAS;MACzBqC,QAAQ,EAAErC;IACZ,CAAC;IACD;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACsC,WAAW,GAAG;MACjBC,KAAK,EAAE,IAAI;MACXC,KAAK,EAAE;IACT,CAAC;IACD;IACA;IACA,IAAI,CAACC,kBAAkB,CAAC7C,WAA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"}
1
+ {"version":3,"names":["_constants","require","_util","_interopRequireDefault","Member","exports","default","participant","options","arguments","length","undefined","_classCallCheck2","_defineProperty2","MEETINGS","canReclaimHost","id","name","isAudioMuted","isVideoMuted","isHandRaised","supportsBreakouts","supportLiveAnnotation","isSelf","isHost","isGuest","isInLobby","isInMeeting","isNotAdmitted","isContentSharing","status","isDevice","isUser","associatedUser","associatedUsers","_set","isRecording","isMutable","isRemovable","isBrb","type","isModerator","isModeratorAssignmentProhibited","isPresenterAssignmentProhibited","isPairedWithSelf","roles","pairedWith","participantUrl","memberId","mediaStatus","audio","video","processParticipant","processParticipantOptions","processMember","_createClass2","key","value","processPairedDevice","MemberUtil","extractId","extractName","isBreakoutsSupported","supportsInterpretation","isInterpretationSupported","isLiveAnnotationSupported","processStatus","processRoles","extractPairedWithParticipantUrl","processIsSelf","selfId","processIsHost","hostId","processIsContentSharing","contentSharingId","processType","processIsRecording","recordingId","extractMediaStatus","extractStatus","_IN_LOBBY_","_IN_MEETING_","_NOT_IN_MEETING_","setIsContentSharing","flag","setIsHost","setIsSelf","sharingId","isSame","extractControlRoles"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\nimport {MEETINGS, _IN_LOBBY_, _NOT_IN_MEETING_, _IN_MEETING_, _OBSERVE_} from '../constants';\nimport {IExternalRoles, IMediaStatus, Participant, ParticipantUrl} from './types';\n\nimport MemberUtil from './util';\n\nexport type MemberId = string;\n/**\n * @class Member\n */\nexport default class Member {\n associatedUser: MemberId | null; // deprecated, use associatedUsers instead\n associatedUsers: Set<MemberId>; // users associated with this device, empty if this member is not a device\n canReclaimHost: boolean;\n id: MemberId;\n isAudioMuted: any;\n isContentSharing: any;\n isDevice: any;\n isGuest: any;\n isHandRaised: any;\n isHost: any;\n isInLobby: any;\n isInMeeting: any;\n isModerator: any;\n isModeratorAssignmentProhibited: any;\n isPresenterAssignmentProhibited: any;\n isMutable: any;\n isNotAdmitted: any;\n isRecording: any;\n isRemovable: any;\n isSelf: any;\n isPairedWithSelf: boolean; // true for a device that we are paired with\n isBrb: boolean;\n isUser: any;\n isVideoMuted: any;\n roles: IExternalRoles;\n mediaStatus: IMediaStatus;\n name: any;\n participant: any;\n status: any;\n supportsBreakouts: boolean;\n supportsInterpretation: boolean;\n supportLiveAnnotation: boolean;\n type: any;\n namespace = MEETINGS;\n pairedWith: {\n participantUrl?: ParticipantUrl;\n memberId?: MemberId;\n };\n\n /**\n * @param {Object} participant - the locus participant\n * @param {Object} [options] - constructor params\n * @param {String} options.selfId\n * @param {String} options.hostId\n * @param {String} options.contentSharingId\n * @param {String} options.type\n * @returns {Member}\n * @memberof Member\n */\n constructor(\n participant: Participant,\n options:\n | {\n selfId: string;\n hostId: string;\n contentSharingId: string;\n type: string;\n }\n | any = {}\n ) {\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.canReclaimHost = false;\n /**\n * The server participant object\n * @instance\n * @type {Object}\n * @private\n * @memberof Member\n */\n this.participant = null;\n /**\n * The member id\n * @instance\n * @type {String}\n * @public\n * @memberof Member\n */\n this.id = null;\n /**\n * The member name\n * @instance\n * @type {String}\n * @public\n * @memberof Member\n */\n this.name = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isAudioMuted = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isVideoMuted = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isHandRaised = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.supportsBreakouts = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.supportLiveAnnotation = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isSelf = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isHost = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isGuest = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isInLobby = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isInMeeting = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isNotAdmitted = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isContentSharing = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.status = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isDevice = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isUser = null;\n /**\n * Deprecated: use associatedUsers instead\n * Is this member associated to another user by way of pairing (typical of devices)\n * @instance\n * @type {MemberId|null}\n * @deprecated\n * @public\n * @memberof Member\n */\n this.associatedUser = null;\n /**\n * Is this member associated to another user by way of pairing (typical of devices)\n * @instance\n * @type {String}\n * @public\n * @memberof Member\n */\n this.associatedUsers = new Set<MemberId>();\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isRecording = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isMutable = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isRemovable = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isBrb = false;\n /**\n * @instance\n * @type {String}\n * @private\n * @memberof Member\n */\n this.type = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isModerator = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isModeratorAssignmentProhibited = null;\n\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isPresenterAssignmentProhibited = null;\n\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isPairedWithSelf = false;\n\n /**\n * @instance\n * @type {IExternalRoles}\n * @public\n * @memberof Member\n */\n this.roles = null;\n\n this.pairedWith = {\n participantUrl: undefined,\n memberId: undefined,\n };\n /**\n * @instance\n * @type {IMediaStatus}\n * @public\n * @memberof Member\n * @example {audio: MediaStatus.RECVONLY, video: MediaStatus.SENDRECV}\n */\n this.mediaStatus = {\n audio: null,\n video: null,\n };\n // TODO: more participant types\n // such as native client, web client, is a device, what type of phone, etc\n this.processParticipant(participant);\n this.processParticipantOptions(participant, options);\n this.processMember();\n }\n\n /**\n * set all the participant values extracted directly from locus participant\n * @param {Object} participant the locus participant object\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processParticipant(participant: Participant) {\n this.participant = participant;\n if (participant) {\n this.processPairedDevice(participant);\n this.canReclaimHost = MemberUtil.canReclaimHost(participant);\n this.id = MemberUtil.extractId(participant);\n this.name = MemberUtil.extractName(participant);\n this.isAudioMuted = MemberUtil.isAudioMuted(participant);\n this.isVideoMuted = MemberUtil.isVideoMuted(participant);\n this.isHandRaised = MemberUtil.isHandRaised(participant);\n this.supportsBreakouts = MemberUtil.isBreakoutsSupported(participant);\n this.supportsInterpretation = MemberUtil.isInterpretationSupported(participant);\n this.supportLiveAnnotation = MemberUtil.isLiveAnnotationSupported(participant);\n this.isGuest = MemberUtil.isGuest(participant);\n this.isBrb = MemberUtil.isBrb(participant);\n this.isUser = MemberUtil.isUser(participant);\n this.isDevice = MemberUtil.isDevice(participant);\n this.isModerator = MemberUtil.isModerator(participant);\n this.isModeratorAssignmentProhibited =\n MemberUtil.isModeratorAssignmentProhibited(participant);\n this.isPresenterAssignmentProhibited =\n MemberUtil.isPresenterAssignmentProhibited(participant);\n this.processStatus(participant);\n this.processRoles(participant);\n // must be done last\n this.isNotAdmitted = MemberUtil.isNotAdmitted(participant, this.isGuest, this.status);\n }\n }\n\n /**\n * Checks if the participant is paired with another device\n *\n * @param {any} participant the locus participant object\n * @returns {void}\n */\n processPairedDevice(participant: Participant) {\n // we can't populate this.pairedWith.memberId here because the member for that device might not yet exist\n // so only populating the participantUrl and memberId will be set later\n this.pairedWith.participantUrl = MemberUtil.extractPairedWithParticipantUrl(participant);\n }\n\n /**\n * Use the members options and participant values to set on the member\n * @param {Object} participant the locus participant object\n * @param {Object} options the passed in options, what was set on members\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processParticipantOptions(participant: Participant, options: any) {\n if (participant && options) {\n this.processIsSelf(participant, options.selfId);\n this.processIsHost(participant, options.hostId);\n this.processIsContentSharing(participant, options.contentSharingId);\n this.processType(options.type);\n this.processIsRecording(participant, options.recordingId);\n }\n }\n\n /**\n * processes what already exists on the member to determine other info about the member\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processMember() {\n // must occur after self, guest, meeting, and type properties are calculated\n this.isRemovable = MemberUtil.isRemovable(\n this.isSelf,\n this.isGuest,\n this.isInMeeting,\n this.type\n );\n // must occur after self, device, meeting, mute status, and type properties are calculated\n this.isMutable = MemberUtil.isMutable(\n this.isSelf,\n this.isDevice,\n this.isInMeeting,\n this.isAudioMuted,\n this.type\n );\n\n this.mediaStatus = MemberUtil.extractMediaStatus(this.participant);\n }\n\n /**\n * set the status on member object\n * @param {Object} participant the locus participant object\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processStatus(participant: Participant) {\n this.status = MemberUtil.extractStatus(participant);\n switch (this.status) {\n case _IN_LOBBY_:\n this.isInLobby = true;\n this.isInMeeting = false;\n break;\n case _IN_MEETING_:\n this.isInLobby = false;\n this.isInMeeting = true;\n break;\n case _NOT_IN_MEETING_:\n this.isInLobby = false;\n this.isInMeeting = false;\n break;\n default:\n this.isInLobby = false;\n this.isInMeeting = false;\n }\n }\n\n /**\n * set the isContentSharing on member\n * @param {Boolean} flag\n * @returns {undefined}\n * @public\n * @memberof Member\n */\n public setIsContentSharing(flag: boolean) {\n this.isContentSharing = flag;\n }\n\n /**\n * set the isHost on member\n * @param {Boolean} flag\n * @returns {undefined}\n * @public\n * @memberof Member\n */\n public setIsHost(flag: boolean) {\n this.isHost = flag;\n }\n\n /**\n * set the isSelf on member\n * @param {Boolean} flag\n * @returns {undefined}\n * @public\n * @memberof Member\n */\n public setIsSelf(flag: boolean) {\n this.isSelf = flag;\n }\n\n /**\n * determine if this member is content sharing\n * @param {Object} participant\n * @param {String} sharingId\n * @returns {undefined}\n * @public\n * @memberof Member\n */\n public processIsContentSharing(participant: Participant, sharingId: string) {\n if (MemberUtil.isUser(participant)) {\n this.isContentSharing = MemberUtil.isSame(participant, sharingId);\n }\n }\n\n /**\n * Determine if this member is recording\n * @param {Object} participant\n * @param {String} recordingId\n * @returns {undefined}\n * @public\n * @memberof Member\n */\n public processIsRecording(participant: Participant, recordingId: string) {\n this.isRecording = MemberUtil.isSame(participant, recordingId);\n }\n\n /**\n * determine if this member is the self\n * @param {Object} participant\n * @param {String} selfId\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processIsSelf(participant: Participant, selfId: string) {\n if (MemberUtil.isUser(participant)) {\n this.isSelf = MemberUtil.isSame(participant, selfId);\n }\n }\n\n /**\n * determine if this member is the host\n * @param {Object} participant\n * @param {String} hostId\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processIsHost(participant: Participant, hostId: string) {\n if (MemberUtil.isUser(participant)) {\n this.isHost = MemberUtil.isSame(participant, hostId);\n }\n }\n\n /**\n * process the roles that have been applied to this member\n * @param {Object} participant\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processRoles(participant: Participant) {\n this.roles = MemberUtil.extractControlRoles(participant);\n }\n\n /**\n * set the type for the member, could be MEETING or CALL\n * @param {String} type\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processType(type: string) {\n this.type = type;\n }\n}\n"],"mappings":";;;;;;;;;;;;AAGA,IAAAA,UAAA,GAAAC,OAAA;AAGA,IAAAC,KAAA,GAAAC,sBAAA,CAAAF,OAAA;AANA;AACA;AACA;AAOA;AACA;AACA;AAFA,IAGqBG,MAAM,GAAAC,OAAA,CAAAC,OAAA;EAwCzB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,SAAAF,OACEG,WAAwB,EASxB;IAAA,IARAC,OAOO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAAA,IAAAG,gBAAA,CAAAN,OAAA,QAAAF,MAAA;IAAA,IAAAS,gBAAA,CAAAP,OAAA;IA1DmB;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IACD;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAmBL;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA,qBAafQ,mBAAQ;IAAA,IAAAD,gBAAA,CAAAP,OAAA;IA2BlB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACS,cAAc,GAAG,KAAK;IAC3B;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACR,WAAW,GAAG,IAAI;IACvB;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACS,EAAE,GAAG,IAAI;IACd;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,IAAI,GAAG,IAAI;IAChB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,YAAY,GAAG,IAAI;IACxB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,YAAY,GAAG,IAAI;IACxB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,YAAY,GAAG,IAAI;IACxB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,iBAAiB,GAAG,IAAI;IAC7B;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,qBAAqB,GAAG,IAAI;IACjC;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,MAAM,GAAG,IAAI;IAClB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,MAAM,GAAG,IAAI;IAClB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,OAAO,GAAG,IAAI;IACnB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,SAAS,GAAG,IAAI;IACrB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,WAAW,GAAG,IAAI;IACvB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,aAAa,GAAG,IAAI;IACzB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,gBAAgB,GAAG,IAAI;IAC5B;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,MAAM,GAAG,IAAI;IAClB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,QAAQ,GAAG,IAAI;IACpB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,MAAM,GAAG,IAAI;IAClB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,cAAc,GAAG,IAAI;IAC1B;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,eAAe,GAAG,IAAAC,IAAA,CAAA7B,OAAA,CAAkB,CAAC;IAC1C;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAAC8B,WAAW,GAAG,IAAI;IACvB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,SAAS,GAAG,IAAI;IACrB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,WAAW,GAAG,IAAI;IACvB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,KAAK,GAAG,KAAK;IAClB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,IAAI,GAAG,IAAI;IAChB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,WAAW,GAAG,IAAI;IACvB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,+BAA+B,GAAG,IAAI;;IAE3C;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,+BAA+B,GAAG,IAAI;;IAE3C;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,gBAAgB,GAAG,KAAK;;IAE7B;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,KAAK,GAAG,IAAI;IAEjB,IAAI,CAACC,UAAU,GAAG;MAChBC,cAAc,EAAEpC,SAAS;MACzBqC,QAAQ,EAAErC;IACZ,CAAC;IACD;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACsC,WAAW,GAAG;MACjBC,KAAK,EAAE,IAAI;MACXC,KAAK,EAAE;IACT,CAAC;IACD;IACA;IACA,IAAI,CAACC,kBAAkB,CAAC7C,WAA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"}
@@ -1 +1 @@
1
- {"version":3,"names":["ServerRoles","exports","MediaStatus"],"sources":["types.ts"],"sourcesContent":["export interface IExternalRoles {\n cohost: boolean;\n moderator: boolean;\n presenter: boolean;\n}\n\nexport enum ServerRoles {\n Cohost = 'COHOST',\n Moderator = 'MODERATOR',\n Presenter = 'PRESENTER',\n}\n\nexport type ServerRoleShape = {\n type: ServerRoles;\n hasRole: boolean;\n};\n\n// values are inherited from locus so don't update these\nexport enum MediaStatus {\n RECVONLY = 'RECVONLY', // participant only receiving and not sending\n SENDONLY = 'SENDONLY', // participant only sending and not receiving\n SENDRECV = 'SENDRECV', // participant both sending and receiving\n INACTIVE = 'INACTIVE', // participant is not connected to media source\n UNKNOWN = 'UNKNOWN', // participant has not added media in the meeting\n}\n\nexport interface IMediaStatus {\n audio: MediaStatus;\n video: MediaStatus;\n}\n\nexport type Csi = number;\nexport type Direction = 'inactive' | 'sendrecv' | 'sendonly' | 'recvonly';\nexport type ParticipantUrl = string;\nexport interface MediaSession {\n csi: Csi;\n direction: Direction;\n mediaContent: 'main' | 'slides';\n mediaType: 'audio' | 'video';\n state: string;\n}\n\nexport interface Intent {\n associatedWith: ParticipantUrl;\n id: string;\n type: string; // could be \"WAIT\" or \"OBSERVE\" or other....\n}\nexport interface ParticipantDevice {\n correlationId: string;\n csis: Csi[];\n deviceType: string; // WDM device type, could be \"WEB\", \"TP_ENDPOINT\", \"MAC\" or other things, don't know the full list, so keeping it as string\n intent?: Intent;\n intents: Array<Intent | null>;\n isVideoCallback: boolean;\n mediaSessions: Array<MediaSession>;\n mediaSessionsExternal: boolean;\n state: string; // probably one of MEETING_STATE.STATES\n}\n\n// this is not a complete type, Locus may send more fields\nexport interface ParticipantPerson {\n id: string;\n isExternal: boolean;\n name: string;\n orgId: string;\n}\n\nexport interface ParticipantMediaStatus {\n audioStatus: MediaStatus;\n videoStatus: MediaStatus;\n audioSlidesStatus?: MediaStatus;\n videoSlidesStatus?: MediaStatus;\n csis: Csi[];\n}\n\n// this is not a complete type, Locus may send more fields\nexport interface ParticipantControls {\n role: {\n roles: Array<ServerRoleShape>;\n };\n brb?: {\n enabled: boolean;\n };\n hand: {\n raised: boolean;\n };\n localRecord: {\n recording: boolean;\n };\n}\n\n// this is not a complete type, Locus may send more fields\nexport interface Participant {\n canBeController: boolean;\n controls: ParticipantControls;\n deviceUrl: string;\n devices: Array<ParticipantDevice>;\n guest: boolean;\n id: string;\n identity: string;\n identityTrustLevel: string; // could be 'INTERNAL', 'EXTERNAL' or other....\n isCreator: boolean;\n moderator: boolean; // Locus docs say this is deprecated and role control should be used instead\n moderatorAssignmentNotAllowed: boolean;\n presenterAssignmentNotAllowed: boolean;\n person: ParticipantPerson;\n resourceGuest: boolean;\n state: string; // probably one of MEETING_STATE.STATES\n status: ParticipantMediaStatus;\n type: string;\n url: ParticipantUrl;\n}\n"],"mappings":";;;;;;;IAMYA,WAAW,GAAAC,OAAA,CAAAD,WAAA,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAWvB;AAAA,IACYE,WAAW,GAAAD,OAAA,CAAAC,WAAA,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA,OAKA;AAoCvB;AAgBA;AAgBA"}
1
+ {"version":3,"names":["ServerRoles","exports","MediaStatus"],"sources":["types.ts"],"sourcesContent":["export interface IExternalRoles {\n cohost: boolean;\n moderator: boolean;\n presenter: boolean;\n}\n\nexport enum ServerRoles {\n Cohost = 'COHOST',\n Moderator = 'MODERATOR',\n Presenter = 'PRESENTER',\n}\n\nexport type ServerRoleShape = {\n type: ServerRoles;\n hasRole: boolean;\n};\n\n// values are inherited from locus so don't update these\nexport enum MediaStatus {\n RECVONLY = 'RECVONLY', // participant only receiving and not sending\n SENDONLY = 'SENDONLY', // participant only sending and not receiving\n SENDRECV = 'SENDRECV', // participant both sending and receiving\n INACTIVE = 'INACTIVE', // participant is not connected to media source\n UNKNOWN = 'UNKNOWN', // participant has not added media in the meeting\n}\n\nexport interface IMediaStatus {\n audio: MediaStatus;\n video: MediaStatus;\n}\n\nexport type Csi = number;\nexport type Direction = 'inactive' | 'sendrecv' | 'sendonly' | 'recvonly';\nexport type ParticipantUrl = string;\nexport interface MediaSession {\n csi: Csi;\n direction: Direction;\n mediaContent: 'main' | 'slides';\n mediaType: 'audio' | 'video';\n state: string;\n}\n\nexport interface Intent {\n associatedWith: ParticipantUrl;\n id: string;\n type: string; // could be \"WAIT\" or \"OBSERVE\" or other....\n}\nexport interface ParticipantDevice {\n correlationId: string;\n csis: Csi[];\n deviceType: string; // WDM device type, could be \"WEB\", \"TP_ENDPOINT\", \"MAC\" or other things, don't know the full list, so keeping it as string\n intent?: Intent;\n intents: Array<Intent | null>;\n isVideoCallback: boolean;\n mediaSessions: Array<MediaSession>;\n mediaSessionsExternal: boolean;\n state: string; // probably one of MEETING_STATE.STATES\n}\n\n// this is not a complete type, Locus may send more fields\nexport interface ParticipantPerson {\n id: string;\n isExternal: boolean;\n name: string;\n orgId: string;\n}\n\nexport interface ParticipantMediaStatus {\n audioStatus: MediaStatus;\n videoStatus: MediaStatus;\n audioSlidesStatus?: MediaStatus;\n videoSlidesStatus?: MediaStatus;\n csis: Csi[];\n}\n\n// this is not a complete type, Locus may send more fields\nexport interface ParticipantControls {\n role: {\n roles: Array<ServerRoleShape>;\n };\n brb?: {\n enabled: boolean;\n };\n hand: {\n raised: boolean;\n };\n localRecord: {\n recording: boolean;\n };\n}\n\n// this is not a complete type, Locus may send more fields\nexport interface Participant {\n canBeController: boolean;\n controls: ParticipantControls;\n deviceUrl: string;\n devices: Array<ParticipantDevice>;\n guest: boolean;\n id: string;\n identity: string;\n identityTrustLevel: string; // could be 'INTERNAL', 'EXTERNAL' or other....\n isCreator: boolean;\n moderator: boolean; // Locus docs say this is deprecated and role control should be used instead\n moderatorAssignmentNotAllowed: boolean;\n presenterAssignmentNotAllowed: boolean;\n person: ParticipantPerson;\n resourceGuest: boolean;\n state: string; // probably one of MEETING_STATE.STATES\n status: ParticipantMediaStatus;\n type: string;\n url: ParticipantUrl;\n isRemoved: boolean; // JS-SDK internal field to indicate in updates when the participant is removed\n}\n"],"mappings":";;;;;;;IAMYA,WAAW,GAAAC,OAAA,CAAAD,WAAA,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAWvB;AAAA,IACYE,WAAW,GAAAD,OAAA,CAAAC,WAAA,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA,OAKA;AAoCvB;AAgBA;AAgBA"}
@@ -55,6 +55,19 @@ var MembersCollection = exports.default = /*#__PURE__*/function () {
55
55
  return this.members;
56
56
  }
57
57
 
58
+ /**
59
+ * Removes a member from the collection
60
+ * @param {String} id
61
+ * @returns {void}
62
+ */
63
+ }, {
64
+ key: "remove",
65
+ value: function remove(id) {
66
+ if (this.members[id]) {
67
+ delete this.members[id];
68
+ }
69
+ }
70
+
58
71
  /**
59
72
  * @returns {void}
60
73
  * reset members
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","MembersCollection","exports","default","_classCallCheck2","_defineProperty2","MEETINGS","members","_createClass2","key","value","set","id","member","setAll","get","getAll","reset"],"sources":["collection.ts"],"sourcesContent":["import {MEETINGS} from '../constants';\nimport Member from '../member';\n\n/**\n * @class MembersCollection\n */\nexport default class MembersCollection {\n members: Record<string, Member>;\n namespace = MEETINGS;\n /**\n * @param {Object} locus\n * @memberof Members\n */\n constructor() {\n this.members = {};\n }\n\n set(id: string, member: Member) {\n this.members[id] = member;\n }\n\n setAll(members: Record<string, Member>) {\n this.members = members;\n }\n\n /**\n * @param {String} id\n * @returns {Member}\n */\n get(id: string) {\n return this.members[id];\n }\n\n /**\n * @returns {Object} returns an object map of Member instances\n * @memberof MembersCollection\n */\n getAll() {\n return this.members;\n }\n\n /**\n * @returns {void}\n * reset members\n */\n reset() {\n this.members = {};\n }\n}\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAGA;AACA;AACA;AAFA,IAGqBC,iBAAiB,GAAAC,OAAA,CAAAC,OAAA;EAGpC;AACF;AACA;AACA;EACE,SAAAF,kBAAA,EAAc;IAAA,IAAAG,gBAAA,CAAAD,OAAA,QAAAF,iBAAA;IAAA,IAAAI,gBAAA,CAAAF,OAAA;IAAA,IAAAE,gBAAA,CAAAF,OAAA,qBALFG,mBAAQ;IAMlB,IAAI,CAACC,OAAO,GAAG,CAAC,CAAC;EACnB;EAAC,IAAAC,aAAA,CAAAL,OAAA,EAAAF,iBAAA;IAAAQ,GAAA;IAAAC,KAAA,EAED,SAAAC,IAAIC,EAAU,EAAEC,MAAc,EAAE;MAC9B,IAAI,CAACN,OAAO,CAACK,EAAE,CAAC,GAAGC,MAAM;IAC3B;EAAC;IAAAJ,GAAA;IAAAC,KAAA,EAED,SAAAI,OAAOP,OAA+B,EAAE;MACtC,IAAI,CAACA,OAAO,GAAGA,OAAO;IACxB;;IAEA;AACF;AACA;AACA;EAHE;IAAAE,GAAA;IAAAC,KAAA,EAIA,SAAAK,IAAIH,EAAU,EAAE;MACd,OAAO,IAAI,CAACL,OAAO,CAACK,EAAE,CAAC;IACzB;;IAEA;AACF;AACA;AACA;EAHE;IAAAH,GAAA;IAAAC,KAAA,EAIA,SAAAM,OAAA,EAAS;MACP,OAAO,IAAI,CAACT,OAAO;IACrB;;IAEA;AACF;AACA;AACA;EAHE;IAAAE,GAAA;IAAAC,KAAA,EAIA,SAAAO,MAAA,EAAQ;MACN,IAAI,CAACV,OAAO,GAAG,CAAC,CAAC;IACnB;EAAC;EAAA,OAAAN,iBAAA;AAAA"}
1
+ {"version":3,"names":["_constants","require","MembersCollection","exports","default","_classCallCheck2","_defineProperty2","MEETINGS","members","_createClass2","key","value","set","id","member","setAll","get","getAll","remove","reset"],"sources":["collection.ts"],"sourcesContent":["import {MEETINGS} from '../constants';\nimport Member from '../member';\n\n/**\n * @class MembersCollection\n */\nexport default class MembersCollection {\n members: Record<string, Member>;\n namespace = MEETINGS;\n /**\n * @param {Object} locus\n * @memberof Members\n */\n constructor() {\n this.members = {};\n }\n\n set(id: string, member: Member) {\n this.members[id] = member;\n }\n\n setAll(members: Record<string, Member>) {\n this.members = members;\n }\n\n /**\n * @param {String} id\n * @returns {Member}\n */\n get(id: string) {\n return this.members[id];\n }\n\n /**\n * @returns {Object} returns an object map of Member instances\n * @memberof MembersCollection\n */\n getAll() {\n return this.members;\n }\n\n /**\n * Removes a member from the collection\n * @param {String} id\n * @returns {void}\n */\n remove(id: string) {\n if (this.members[id]) {\n delete this.members[id];\n }\n }\n\n /**\n * @returns {void}\n * reset members\n */\n reset() {\n this.members = {};\n }\n}\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAGA;AACA;AACA;AAFA,IAGqBC,iBAAiB,GAAAC,OAAA,CAAAC,OAAA;EAGpC;AACF;AACA;AACA;EACE,SAAAF,kBAAA,EAAc;IAAA,IAAAG,gBAAA,CAAAD,OAAA,QAAAF,iBAAA;IAAA,IAAAI,gBAAA,CAAAF,OAAA;IAAA,IAAAE,gBAAA,CAAAF,OAAA,qBALFG,mBAAQ;IAMlB,IAAI,CAACC,OAAO,GAAG,CAAC,CAAC;EACnB;EAAC,IAAAC,aAAA,CAAAL,OAAA,EAAAF,iBAAA;IAAAQ,GAAA;IAAAC,KAAA,EAED,SAAAC,IAAIC,EAAU,EAAEC,MAAc,EAAE;MAC9B,IAAI,CAACN,OAAO,CAACK,EAAE,CAAC,GAAGC,MAAM;IAC3B;EAAC;IAAAJ,GAAA;IAAAC,KAAA,EAED,SAAAI,OAAOP,OAA+B,EAAE;MACtC,IAAI,CAACA,OAAO,GAAGA,OAAO;IACxB;;IAEA;AACF;AACA;AACA;EAHE;IAAAE,GAAA;IAAAC,KAAA,EAIA,SAAAK,IAAIH,EAAU,EAAE;MACd,OAAO,IAAI,CAACL,OAAO,CAACK,EAAE,CAAC;IACzB;;IAEA;AACF;AACA;AACA;EAHE;IAAAH,GAAA;IAAAC,KAAA,EAIA,SAAAM,OAAA,EAAS;MACP,OAAO,IAAI,CAACT,OAAO;IACrB;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAAE,GAAA;IAAAC,KAAA,EAKA,SAAAO,OAAOL,EAAU,EAAE;MACjB,IAAI,IAAI,CAACL,OAAO,CAACK,EAAE,CAAC,EAAE;QACpB,OAAO,IAAI,CAACL,OAAO,CAACK,EAAE,CAAC;MACzB;IACF;;IAEA;AACF;AACA;AACA;EAHE;IAAAH,GAAA;IAAAC,KAAA,EAIA,SAAAQ,MAAA,EAAQ;MACN,IAAI,CAACX,OAAO,GAAG,CAAC,CAAC;IACnB;EAAC;EAAA,OAAAN,iBAAA;AAAA"}
@@ -365,7 +365,9 @@ var Members = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
365
365
  * when new participant updates come in, both delta and full participants, update them in members collection
366
366
  * delta object in the event will have {updated, added} and full will be the full membersCollection
367
367
  * @param {Object} payload
368
- * @param {Object} payload.participants
368
+ * @param {Object} payload.participants new/updated participants
369
+ * @param {Boolean} payload.isReplace whether to replace the whole members collection
370
+ * @param {Object} payload.removedParticipantIds ids of the removed participants
369
371
  * @returns {undefined}
370
372
  * @private
371
373
  * @memberof Members
@@ -514,9 +516,24 @@ var Members = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
514
516
  value: function handleMembersUpdate(membersUpdate) {
515
517
  this.constructMembers(membersUpdate.updated, true);
516
518
  this.constructMembers(membersUpdate.added, false);
519
+ this.removeMembers(membersUpdate.removedIds);
517
520
  return this.membersCollection.getAll();
518
521
  }
519
522
 
523
+ /**
524
+ * removes members from the collection
525
+ * @param {Array<string>} removedMembers removed members ids
526
+ * @returns {void}
527
+ */
528
+ }, {
529
+ key: "removeMembers",
530
+ value: function removeMembers(removedMembers) {
531
+ var _this3 = this;
532
+ removedMembers.forEach(function (memberId) {
533
+ _this3.membersCollection.remove(memberId);
534
+ });
535
+ }
536
+
520
537
  /**
521
538
  * set members to the member collection from each updated/added lists as passed in
522
539
  * @param {Array} list
@@ -528,14 +545,14 @@ var Members = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
528
545
  }, {
529
546
  key: "constructMembers",
530
547
  value: function constructMembers(list, isUpdate) {
531
- var _this3 = this;
548
+ var _this4 = this;
532
549
  list.forEach(function (member) {
533
550
  if (isUpdate) {
534
551
  // some member props are generated by SDK and need to be preserved on update,
535
552
  // because they depend on relationships with other members so they need to be handled
536
553
  // at the end, once all members are updated - this is done in updateRelationsBetweenMembers()
537
554
  var propsToKeepOnUpdate = ['pairedWith.memberId'];
538
- var existingMember = _this3.membersCollection.get(member.id);
555
+ var existingMember = _this4.membersCollection.get(member.id);
539
556
  if (existingMember) {
540
557
  propsToKeepOnUpdate.forEach(function (prop) {
541
558
  var existingValue = (0, _lodash.get)(existingMember, prop);
@@ -545,7 +562,7 @@ var Members = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
545
562
  });
546
563
  }
547
564
  }
548
- _this3.membersCollection.set(member.id, member);
565
+ _this4.membersCollection.set(member.id, member);
549
566
  });
550
567
  }
551
568
 
@@ -566,6 +583,10 @@ var Members = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
566
583
  _loggerProxy.default.logger.warn('Members:index#handleLocusInfoUpdatedParticipants --> participants payload is missing.');
567
584
  }
568
585
  var memberUpdate = this.update(payload.participants);
586
+
587
+ // this code depends on memberIds being the same as participantIds
588
+ // if MemberUtil.extractId() ever changes, this will need to be updated
589
+ memberUpdate.removedIds = payload.removedParticipantIds || [];
569
590
  return memberUpdate;
570
591
  }
571
592
 
@@ -714,7 +735,7 @@ var Members = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
714
735
  }, {
715
736
  key: "update",
716
737
  value: function update(participants) {
717
- var _this4 = this;
738
+ var _this5 = this;
718
739
  var membersUpdate = {
719
740
  added: [],
720
741
  updated: []
@@ -724,26 +745,26 @@ var Members = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
724
745
  if (participant.hideInRoster) {
725
746
  return;
726
747
  }
727
- var existing = _this4.membersCollection.get(participant.id);
748
+ var existing = _this5.membersCollection.get(participant.id);
728
749
  if (existing) {
729
750
  // TODO: compare existing member to new participant coming in properties and determine if updated (this helps for non delta events)
730
751
  // on client re renders, but we will have to determine what values to compare to determine difference, premature optimization
731
752
  membersUpdate.updated.push(new _member.default(participant, {
732
- recordingId: _this4.recordingId,
733
- selfId: _this4.selfId,
734
- hostId: _this4.hostId,
735
- contentSharingId: _this4.mediaShareContentId,
736
- whiteboardSharingId: _this4.mediaShareWhiteboardId,
737
- type: _this4.type
753
+ recordingId: _this5.recordingId,
754
+ selfId: _this5.selfId,
755
+ hostId: _this5.hostId,
756
+ contentSharingId: _this5.mediaShareContentId,
757
+ whiteboardSharingId: _this5.mediaShareWhiteboardId,
758
+ type: _this5.type
738
759
  }));
739
760
  } else {
740
761
  membersUpdate.added.push(new _member.default(participant, {
741
- recordingId: _this4.recordingId,
742
- selfId: _this4.selfId,
743
- hostId: _this4.hostId,
744
- contentSharingId: _this4.mediaShareContentId,
745
- whiteboardSharingId: _this4.mediaShareWhiteboardId,
746
- type: _this4.type
762
+ recordingId: _this5.recordingId,
763
+ selfId: _this5.selfId,
764
+ hostId: _this5.hostId,
765
+ contentSharingId: _this5.mediaShareContentId,
766
+ whiteboardSharingId: _this5.mediaShareWhiteboardId,
767
+ type: _this5.type
747
768
  }));
748
769
  }
749
770
  });
@@ -753,7 +774,7 @@ var Members = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
753
774
 
754
775
  /**
755
776
  * Adds a guest Member to the associated meeting
756
- * @param {String} invitee
777
+ * @param {Invitee} invitee
757
778
  * @param {Boolean} [alertIfActive]
758
779
  * @returns {Promise}
759
780
  * @memberof Members
@@ -764,7 +785,7 @@ var Members = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
764
785
  if (!this.locusUrl) {
765
786
  return _promise.default.reject(new _parameter.default('The associated locus url for this meeting object must be defined.'));
766
787
  }
767
- if (_util.default.isInvalidInvitee(invitee)) {
788
+ if ((invitee === null || invitee === void 0 ? void 0 : invitee.skipEmailValidation) !== true && _util.default.isInvalidInvitee(invitee)) {
768
789
  return _promise.default.reject(new _parameter.default('The invitee must be defined with either a valid email, emailAddress or phoneNumber property.'));
769
790
  }
770
791
  var options = _util.default.generateAddMemberOptions(invitee, this.locusUrl, alertIfActive);
@@ -773,7 +794,7 @@ var Members = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
773
794
 
774
795
  /**
775
796
  * Cancels an outgoing PSTN call to the associated meeting
776
- * @param {String} invitee
797
+ * @param {Invitee} invitee
777
798
  * @returns {Promise}
778
799
  * @memberof Members
779
800
  */
@@ -791,22 +812,24 @@ var Members = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
791
812
  }
792
813
 
793
814
  /**
794
- * Cancels an SIP call to the associated meeting
795
- * @param {String} invitee
815
+ * Cancels an SIP/phone call to the associated meeting
816
+ * @param {Invitee} invitee
817
+ * @param {String} invitee.memberId - The memberId of the invitee
818
+ * @param {Boolean} [invitee.isInternalNumber] - When cancel phone invitation, if the number is internal
796
819
  * @returns {Promise}
797
820
  * @memberof Members
798
821
  */
799
822
  }, {
800
- key: "cancelSIPInvite",
801
- value: function cancelSIPInvite(invitee) {
823
+ key: "cancelInviteByMemberId",
824
+ value: function cancelInviteByMemberId(invitee) {
802
825
  if (!this.locusUrl) {
803
826
  return _promise.default.reject(new _parameter.default('The associated locus url for this meeting object must be defined.'));
804
827
  }
805
828
  if (!(invitee !== null && invitee !== void 0 && invitee.memberId)) {
806
829
  return _promise.default.reject(new _parameter.default('The invitee must be defined with a memberId property.'));
807
830
  }
808
- var options = _util.default.cancelSIPInviteOptions(invitee, this.locusUrl);
809
- return this.membersRequest.cancelSIPInvite(options);
831
+ var options = _util.default.cancelInviteByMemberIdOptions(invitee, this.locusUrl);
832
+ return this.membersRequest.cancelInviteByMemberId(options);
810
833
  }
811
834
 
812
835
  /**
@@ -1087,13 +1110,14 @@ var Members = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
1087
1110
  * @param {string} memberId - id of the participant who is receiving request
1088
1111
  * @param {string} requestingParticipantId - id of the participant who is sending request (optional)
1089
1112
  * @param {string} [alias] - alias name
1113
+ * @param {string} [suffix] - name suffix (optional)
1090
1114
  * @returns {Promise}
1091
1115
  * @public
1092
1116
  * @memberof Members
1093
1117
  */
1094
1118
  }, {
1095
1119
  key: "editDisplayName",
1096
- value: function editDisplayName(memberId, requestingParticipantId, alias) {
1120
+ value: function editDisplayName(memberId, requestingParticipantId, alias, suffix) {
1097
1121
  if (!this.locusUrl) {
1098
1122
  return _promise.default.reject(new _parameter.default('The associated locus url for this meetings members object must be defined.'));
1099
1123
  }
@@ -1101,7 +1125,7 @@ var Members = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
1101
1125
  return _promise.default.reject(new _parameter.default('The member id must be defined to edit display name of the member.'));
1102
1126
  }
1103
1127
  var locusUrl = this.locusUrl;
1104
- var options = _util.default.generateEditDisplayNameMemberOptions(memberId, requestingParticipantId, alias, locusUrl);
1128
+ var options = _util.default.generateEditDisplayNameMemberOptions(memberId, requestingParticipantId, alias, locusUrl, suffix);
1105
1129
  return this.membersRequest.editDisplayNameMember(options);
1106
1130
  }
1107
1131
  }]);