@webex/plugin-meetings 3.12.0-next.5 → 3.12.0-next.51

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 (136) hide show
  1. package/AGENTS.md +9 -0
  2. package/dist/aiEnableRequest/index.js +15 -2
  3. package/dist/aiEnableRequest/index.js.map +1 -1
  4. package/dist/breakouts/breakout.js +6 -2
  5. package/dist/breakouts/breakout.js.map +1 -1
  6. package/dist/breakouts/index.js +1 -1
  7. package/dist/config.js +1 -0
  8. package/dist/config.js.map +1 -1
  9. package/dist/constants.js +6 -3
  10. package/dist/constants.js.map +1 -1
  11. package/dist/controls-options-manager/constants.js +11 -1
  12. package/dist/controls-options-manager/constants.js.map +1 -1
  13. package/dist/controls-options-manager/index.js +38 -24
  14. package/dist/controls-options-manager/index.js.map +1 -1
  15. package/dist/controls-options-manager/util.js +91 -0
  16. package/dist/controls-options-manager/util.js.map +1 -1
  17. package/dist/hashTree/constants.js +10 -1
  18. package/dist/hashTree/constants.js.map +1 -1
  19. package/dist/hashTree/hashTreeParser.js +646 -371
  20. package/dist/hashTree/hashTreeParser.js.map +1 -1
  21. package/dist/hashTree/utils.js +22 -0
  22. package/dist/hashTree/utils.js.map +1 -1
  23. package/dist/index.js +7 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/interceptors/locusRetry.js +23 -8
  26. package/dist/interceptors/locusRetry.js.map +1 -1
  27. package/dist/interpretation/index.js +10 -1
  28. package/dist/interpretation/index.js.map +1 -1
  29. package/dist/interpretation/siLanguage.js +1 -1
  30. package/dist/locus-info/controlsUtils.js +4 -1
  31. package/dist/locus-info/controlsUtils.js.map +1 -1
  32. package/dist/locus-info/index.js +289 -86
  33. package/dist/locus-info/index.js.map +1 -1
  34. package/dist/locus-info/types.js +19 -0
  35. package/dist/locus-info/types.js.map +1 -1
  36. package/dist/media/properties.js +1 -0
  37. package/dist/media/properties.js.map +1 -1
  38. package/dist/meeting/in-meeting-actions.js +3 -1
  39. package/dist/meeting/in-meeting-actions.js.map +1 -1
  40. package/dist/meeting/index.js +842 -521
  41. package/dist/meeting/index.js.map +1 -1
  42. package/dist/meeting/util.js +19 -2
  43. package/dist/meeting/util.js.map +1 -1
  44. package/dist/meetings/index.js +205 -77
  45. package/dist/meetings/index.js.map +1 -1
  46. package/dist/meetings/meetings.types.js +6 -1
  47. package/dist/meetings/meetings.types.js.map +1 -1
  48. package/dist/meetings/request.js +39 -0
  49. package/dist/meetings/request.js.map +1 -1
  50. package/dist/meetings/util.js +67 -5
  51. package/dist/meetings/util.js.map +1 -1
  52. package/dist/member/index.js +10 -0
  53. package/dist/member/index.js.map +1 -1
  54. package/dist/member/types.js.map +1 -1
  55. package/dist/member/util.js +3 -0
  56. package/dist/member/util.js.map +1 -1
  57. package/dist/metrics/constants.js +2 -1
  58. package/dist/metrics/constants.js.map +1 -1
  59. package/dist/recording-controller/index.js +1 -3
  60. package/dist/recording-controller/index.js.map +1 -1
  61. package/dist/types/config.d.ts +1 -0
  62. package/dist/types/constants.d.ts +2 -0
  63. package/dist/types/controls-options-manager/constants.d.ts +6 -1
  64. package/dist/types/controls-options-manager/index.d.ts +10 -0
  65. package/dist/types/hashTree/constants.d.ts +1 -0
  66. package/dist/types/hashTree/hashTreeParser.d.ts +83 -16
  67. package/dist/types/hashTree/utils.d.ts +11 -0
  68. package/dist/types/index.d.ts +2 -0
  69. package/dist/types/interceptors/locusRetry.d.ts +4 -4
  70. package/dist/types/locus-info/index.d.ts +46 -6
  71. package/dist/types/locus-info/types.d.ts +21 -1
  72. package/dist/types/media/properties.d.ts +1 -0
  73. package/dist/types/meeting/in-meeting-actions.d.ts +2 -0
  74. package/dist/types/meeting/index.d.ts +70 -1
  75. package/dist/types/meeting/util.d.ts +8 -0
  76. package/dist/types/meetings/index.d.ts +20 -2
  77. package/dist/types/meetings/meetings.types.d.ts +15 -0
  78. package/dist/types/meetings/request.d.ts +14 -0
  79. package/dist/types/member/index.d.ts +1 -0
  80. package/dist/types/member/types.d.ts +1 -0
  81. package/dist/types/member/util.d.ts +1 -0
  82. package/dist/types/metrics/constants.d.ts +1 -0
  83. package/dist/webinar/index.js +361 -235
  84. package/dist/webinar/index.js.map +1 -1
  85. package/package.json +22 -22
  86. package/src/aiEnableRequest/index.ts +16 -0
  87. package/src/breakouts/breakout.ts +2 -1
  88. package/src/config.ts +1 -0
  89. package/src/constants.ts +5 -1
  90. package/src/controls-options-manager/constants.ts +14 -1
  91. package/src/controls-options-manager/index.ts +47 -24
  92. package/src/controls-options-manager/util.ts +81 -1
  93. package/src/hashTree/constants.ts +9 -0
  94. package/src/hashTree/hashTreeParser.ts +362 -174
  95. package/src/hashTree/utils.ts +17 -0
  96. package/src/index.ts +5 -0
  97. package/src/interceptors/locusRetry.ts +25 -4
  98. package/src/interpretation/index.ts +25 -8
  99. package/src/locus-info/controlsUtils.ts +3 -1
  100. package/src/locus-info/index.ts +291 -93
  101. package/src/locus-info/types.ts +25 -1
  102. package/src/media/properties.ts +1 -0
  103. package/src/meeting/in-meeting-actions.ts +4 -0
  104. package/src/meeting/index.ts +315 -26
  105. package/src/meeting/util.ts +20 -2
  106. package/src/meetings/index.ts +109 -43
  107. package/src/meetings/meetings.types.ts +19 -0
  108. package/src/meetings/request.ts +43 -0
  109. package/src/meetings/util.ts +80 -1
  110. package/src/member/index.ts +10 -0
  111. package/src/member/types.ts +1 -0
  112. package/src/member/util.ts +3 -0
  113. package/src/metrics/constants.ts +1 -0
  114. package/src/recording-controller/index.ts +1 -2
  115. package/src/webinar/index.ts +162 -21
  116. package/test/unit/spec/aiEnableRequest/index.ts +86 -0
  117. package/test/unit/spec/breakouts/breakout.ts +7 -3
  118. package/test/unit/spec/controls-options-manager/index.js +140 -29
  119. package/test/unit/spec/controls-options-manager/util.js +165 -0
  120. package/test/unit/spec/hashTree/hashTreeParser.ts +1341 -140
  121. package/test/unit/spec/hashTree/utils.ts +88 -1
  122. package/test/unit/spec/interceptors/locusRetry.ts +205 -4
  123. package/test/unit/spec/interpretation/index.ts +26 -4
  124. package/test/unit/spec/locus-info/controlsUtils.js +172 -57
  125. package/test/unit/spec/locus-info/index.js +475 -81
  126. package/test/unit/spec/meeting/in-meeting-actions.ts +2 -0
  127. package/test/unit/spec/meeting/index.js +836 -41
  128. package/test/unit/spec/meeting/muteState.js +3 -0
  129. package/test/unit/spec/meeting/utils.js +33 -0
  130. package/test/unit/spec/meetings/index.js +309 -10
  131. package/test/unit/spec/meetings/request.js +141 -0
  132. package/test/unit/spec/meetings/utils.js +161 -0
  133. package/test/unit/spec/member/index.js +7 -0
  134. package/test/unit/spec/member/util.js +24 -0
  135. package/test/unit/spec/recording-controller/index.js +9 -8
  136. package/test/unit/spec/webinar/index.ts +141 -16
@@ -1 +1 @@
1
- {"version":3,"names":["_types","require","_constants","_parameter","_interopRequireDefault","MemberUtil","canReclaimHost","participant","ParameterError","canReclaimHostRole","canApproveAIEnablement","attendeeRequestAiAssistantNotAllowed","getControlsRoles","_participant$controls","_participant$controls2","controls","role","roles","isBrb","_participant$controls3","_participant$controls4","brb","enabled","hasRole","controlRole","_MemberUtil$getContro","some","type","hasCohost","ServerRoles","Cohost","hasModerator","Moderator","hasPresenter","Presenter","extractControlRoles","cohost","moderator","presenter","isUser","_USER_","isModerator","isGuest","guest","isDevice","_RESOURCE_ROOM_","isModeratorAssignmentProhibited","moderatorAssignmentNotAllowed","isPresenterAssignmentProhibited","presenterAssignmentNotAllowed","isSame","id","person","isNotAdmitted","status","devices","intent","_WAIT_","_IN_LOBBY_","_IN_MEETING_","isAudioMuted","isMuted","AUDIO_STATUS","AUDIO","isVideoMuted","VIDEO_STATUS","VIDEO","isHandRaised","_participant$controls5","_participant$controls6","hand","raised","isBreakoutsSupported","doesNotSupportBreakouts","isSupportsSingleUserAutoEndMeeting","doesNotSupportSingleUserAutoEndMeeting","isInterpretationSupported","doesNotSupportSiInterpreter","isLiveAnnotationSupported","annotatorAssignmentNotAllowed","statusAccessor","controlsAccessor","_participant$controls7","_participant$controls8","_participant$status","remoteMute","muted","localStatus","_RECEIVE_ONLY_","_SEND_RECEIVE_","getRecordingMember","record","recording","meta","modifiedBy","isRecording","localRecord","isRemovable","isSelf","isInMeeting","_CALL_","isMutable","extractStatus","length","_NOT_IN_MEETING_","state","_JOINED_","_IDLE_","foundDevice","find","device","_OBSERVE_","_LEFT_","extractId","extractMediaStatus","_participant$status2","_participant$status3","audio","audioStatus","video","videoStatus","extractName","name","extractPairedWithParticipantUrl","_participant$devices","participantUrl","forEach","_device$intents","intents","associatedWith","_default","exports","default"],"sources":["util.ts"],"sourcesContent":["import {\n IExternalRoles,\n ServerRoles,\n ServerRoleShape,\n IMediaStatus,\n Participant,\n ParticipantUrl,\n} from './types';\nimport {\n _USER_,\n _RESOURCE_ROOM_,\n _OBSERVE_,\n _WAIT_,\n _LEFT_,\n _JOINED_,\n _IDLE_,\n _IN_LOBBY_,\n _NOT_IN_MEETING_,\n _IN_MEETING_,\n AUDIO_STATUS,\n VIDEO_STATUS,\n _SEND_RECEIVE_,\n _RECEIVE_ONLY_,\n _CALL_,\n VIDEO,\n AUDIO,\n} from '../constants';\nimport ParameterError from '../common/errors/parameter';\n\nconst MemberUtil = {\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n canReclaimHost: (participant) => {\n if (!participant) {\n throw new ParameterError(\n 'canReclaimHostRole could not be processed, participant is undefined.'\n );\n }\n\n return participant.canReclaimHostRole || false;\n },\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n canApproveAIEnablement: (participant) => {\n if (!participant) {\n return false;\n }\n\n return !participant.attendeeRequestAiAssistantNotAllowed;\n },\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {[ServerRoleShape]}\n */\n getControlsRoles: (participant: Participant): Array<ServerRoleShape> =>\n participant?.controls?.role?.roles,\n\n /**\n * Checks if the participant has the brb status enabled.\n *\n * @param {Participant} participant - The locus participant object.\n * @returns {boolean} - True if the participant has brb enabled, false otherwise.\n */\n isBrb: (participant: Participant): boolean => participant.controls?.brb?.enabled || false,\n\n /**\n * @param {Object} participant - The locus participant object.\n * @param {ServerRoles} controlRole the search role\n * @returns {Boolean}\n */\n hasRole: (participant: Participant, controlRole: ServerRoles): boolean =>\n MemberUtil.getControlsRoles(participant)?.some(\n (role) => role.type === controlRole && role.hasRole\n ),\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n hasCohost: (participant: Participant): boolean =>\n MemberUtil.hasRole(participant, ServerRoles.Cohost) || false,\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n hasModerator: (participant: Participant): boolean =>\n MemberUtil.hasRole(participant, ServerRoles.Moderator) || false,\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n hasPresenter: (participant: Participant): boolean =>\n MemberUtil.hasRole(participant, ServerRoles.Presenter) || false,\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {IExternalRoles}\n */\n extractControlRoles: (participant: Participant): IExternalRoles => {\n const roles = {\n cohost: MemberUtil.hasCohost(participant),\n moderator: MemberUtil.hasModerator(participant),\n presenter: MemberUtil.hasPresenter(participant),\n };\n\n return roles;\n },\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n isUser: (participant: Participant) => participant && participant.type === _USER_,\n\n isModerator: (participant: Participant) => participant && participant.moderator,\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n isGuest: (participant: Participant) => participant && participant.guest,\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n isDevice: (participant: Participant) => participant && participant.type === _RESOURCE_ROOM_,\n\n isModeratorAssignmentProhibited: (participant: Participant) =>\n participant && participant.moderatorAssignmentNotAllowed,\n\n isPresenterAssignmentProhibited: (participant: Participant) =>\n participant && participant.presenterAssignmentNotAllowed,\n\n /**\n * checks to see if the participant id is the same as the passed id\n * there are multiple ids that can be used\n * @param {Object} participant - The locus participant object.\n * @param {String} id\n * @returns {Boolean}\n */\n isSame: (participant: Participant, id: string) =>\n participant && (participant.id === id || (participant.person && participant.person.id === id)),\n\n /**\n * @param {Object} participant - The locus participant object.\n * @param {Boolean} isGuest\n * @param {String} status\n * @returns {Boolean}\n */\n isNotAdmitted: (participant: Participant, isGuest: boolean, status: string): boolean =>\n participant &&\n participant.guest &&\n ((participant.devices &&\n participant.devices[0] &&\n participant.devices[0].intent &&\n participant.devices[0].intent.type === _WAIT_ &&\n // @ts-ignore\n isGuest &&\n status === _IN_LOBBY_) ||\n // @ts-ignore\n !status === _IN_MEETING_),\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n isAudioMuted: (participant: Participant) => {\n if (!participant) {\n throw new ParameterError('Audio could not be processed, participant is undefined.');\n }\n\n return MemberUtil.isMuted(participant, AUDIO_STATUS, AUDIO);\n },\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n isVideoMuted: (participant: Participant): boolean => {\n if (!participant) {\n throw new ParameterError('Video could not be processed, participant is undefined.');\n }\n\n return MemberUtil.isMuted(participant, VIDEO_STATUS, VIDEO);\n },\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n isHandRaised: (participant: Participant) => {\n if (!participant) {\n throw new ParameterError('Raise hand could not be processed, participant is undefined.');\n }\n\n return participant.controls?.hand?.raised || false;\n },\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n isBreakoutsSupported: (participant) => {\n if (!participant) {\n throw new ParameterError(\n 'Breakout support could not be processed, participant is undefined.'\n );\n }\n\n return !participant.doesNotSupportBreakouts;\n },\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n isSupportsSingleUserAutoEndMeeting: (participant) => {\n if (!participant) {\n throw new ParameterError(\n 'Single user auto end meeting support could not be processed, participant is undefined.'\n );\n }\n\n return !participant.doesNotSupportSingleUserAutoEndMeeting;\n },\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n isInterpretationSupported: (participant) => {\n if (!participant) {\n throw new ParameterError(\n 'Interpretation support could not be processed, participant is undefined.'\n );\n }\n\n return !participant.doesNotSupportSiInterpreter;\n },\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n isLiveAnnotationSupported: (participant) => {\n if (!participant) {\n throw new ParameterError(\n 'LiveAnnotation support could not be processed, participant is undefined.'\n );\n }\n\n return !participant.annotatorAssignmentNotAllowed;\n },\n\n /**\n * utility method for audio/video muted status\n * @param {any} participant\n * @param {String} statusAccessor\n * @param {String} controlsAccessor\n * @returns {Boolean | undefined}\n */\n isMuted: (participant: Participant, statusAccessor: string, controlsAccessor: string) => {\n // check remote mute\n const remoteMute = participant?.controls?.[controlsAccessor]?.muted;\n if (remoteMute === true) {\n return true;\n }\n\n // check local mute\n const localStatus = participant?.status?.[statusAccessor];\n if (localStatus === _RECEIVE_ONLY_) {\n return true;\n }\n if (localStatus === _SEND_RECEIVE_) {\n return false;\n }\n\n return remoteMute;\n },\n\n /**\n * utility method for getting the recording member for later comparison\n * @param {Object} controls\n * @returns {String|null}\n */\n getRecordingMember: (controls: any) => {\n if (!controls) {\n return null;\n }\n if (controls.record && controls.record.recording && controls.record.meta) {\n return controls.record.meta.modifiedBy;\n }\n\n return null;\n },\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n isRecording: (participant: Participant) => {\n if (!participant) {\n throw new ParameterError('Recording could not be processed, participant is undefined.');\n }\n if (participant.controls && participant.controls.localRecord) {\n return participant.controls.localRecord.recording;\n }\n\n return false;\n },\n\n isRemovable: (isSelf, isGuest, isInMeeting, type) => {\n if (isGuest || isSelf) {\n return false;\n }\n if (type === _CALL_) {\n return false;\n }\n if (isInMeeting) {\n return true;\n }\n\n return false;\n },\n\n isMutable: (isSelf, isDevice, isInMeeting, isMuted, type) => {\n if (!isInMeeting) {\n return false;\n }\n if (isMuted) {\n return false;\n }\n if (type === _CALL_) {\n return false;\n }\n if (isSelf || isDevice) {\n return true;\n }\n\n return false;\n },\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {String}\n */\n extractStatus: (participant: Participant) => {\n if (!(participant && participant.devices && participant.devices.length)) {\n return _NOT_IN_MEETING_;\n }\n if (participant.state === _JOINED_) {\n return _IN_MEETING_;\n }\n if (participant.state === _IDLE_) {\n if (participant.devices && participant.devices.length > 0) {\n const foundDevice = participant.devices.find(\n (device) =>\n device.intent && (device.intent.type === _WAIT_ || device.intent.type === _OBSERVE_)\n );\n\n return foundDevice ? _IN_LOBBY_ : _NOT_IN_MEETING_;\n }\n\n return _NOT_IN_MEETING_;\n }\n if (participant.state === _LEFT_) {\n return _NOT_IN_MEETING_;\n }\n\n return _NOT_IN_MEETING_;\n },\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {String}\n */\n extractId: (participant: Participant) => {\n if (participant) {\n return participant.id;\n }\n\n return null;\n },\n\n /**\n * extracts the media status from nested participant object\n * @param {Object} participant - The locus participant object.\n * @returns {Object}\n */\n extractMediaStatus: (participant: Participant): IMediaStatus => {\n if (!participant) {\n throw new ParameterError('Media status could not be extracted, participant is undefined.');\n }\n\n return {\n audio: participant.status?.audioStatus,\n video: participant.status?.videoStatus,\n };\n },\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {String}\n */\n extractName: (participant: Participant) => {\n if (participant && participant.person) {\n return participant.person.name;\n }\n\n return null;\n },\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {String}\n */\n extractPairedWithParticipantUrl: (participant: Participant): ParticipantUrl | undefined => {\n let participantUrl;\n\n participant?.devices?.forEach((device) => {\n device?.intents?.forEach((intent) => {\n if (intent?.type === _OBSERVE_ && intent?.associatedWith) {\n participantUrl = intent.associatedWith;\n }\n });\n });\n\n return participantUrl;\n },\n};\nexport default MemberUtil;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_types","require","_constants","_parameter","_interopRequireDefault","MemberUtil","canReclaimHost","participant","ParameterError","canReclaimHostRole","canApproveAIEnablement","attendeeRequestAiAssistantNotAllowed","getControlsRoles","_participant$controls","_participant$controls2","controls","role","roles","isBrb","_participant$controls3","_participant$controls4","brb","enabled","hasRole","controlRole","_MemberUtil$getContro","some","type","hasCohost","ServerRoles","Cohost","hasModerator","Moderator","hasPresenter","Presenter","extractControlRoles","cohost","moderator","presenter","isUser","_USER_","isModerator","isGuest","guest","isDevice","_RESOURCE_ROOM_","isModeratorAssignmentProhibited","moderatorAssignmentNotAllowed","isPresenterAssignmentProhibited","presenterAssignmentNotAllowed","isAttendeeAssignmentProhibited","attendeeAssignmentNotAllowed","isSame","id","person","isNotAdmitted","status","devices","intent","_WAIT_","_IN_LOBBY_","_IN_MEETING_","isAudioMuted","isMuted","AUDIO_STATUS","AUDIO","isVideoMuted","VIDEO_STATUS","VIDEO","isHandRaised","_participant$controls5","_participant$controls6","hand","raised","isBreakoutsSupported","doesNotSupportBreakouts","isSupportsSingleUserAutoEndMeeting","doesNotSupportSingleUserAutoEndMeeting","isInterpretationSupported","doesNotSupportSiInterpreter","isLiveAnnotationSupported","annotatorAssignmentNotAllowed","statusAccessor","controlsAccessor","_participant$controls7","_participant$controls8","_participant$status","remoteMute","muted","localStatus","_RECEIVE_ONLY_","_SEND_RECEIVE_","getRecordingMember","record","recording","meta","modifiedBy","isRecording","localRecord","isRemovable","isSelf","isInMeeting","_CALL_","isMutable","extractStatus","length","_NOT_IN_MEETING_","state","_JOINED_","_IDLE_","foundDevice","find","device","_OBSERVE_","_LEFT_","extractId","extractMediaStatus","_participant$status2","_participant$status3","audio","audioStatus","video","videoStatus","extractName","name","extractPairedWithParticipantUrl","_participant$devices","participantUrl","forEach","_device$intents","intents","associatedWith","_default","exports","default"],"sources":["util.ts"],"sourcesContent":["import {\n IExternalRoles,\n ServerRoles,\n ServerRoleShape,\n IMediaStatus,\n Participant,\n ParticipantUrl,\n} from './types';\nimport {\n _USER_,\n _RESOURCE_ROOM_,\n _OBSERVE_,\n _WAIT_,\n _LEFT_,\n _JOINED_,\n _IDLE_,\n _IN_LOBBY_,\n _NOT_IN_MEETING_,\n _IN_MEETING_,\n AUDIO_STATUS,\n VIDEO_STATUS,\n _SEND_RECEIVE_,\n _RECEIVE_ONLY_,\n _CALL_,\n VIDEO,\n AUDIO,\n} from '../constants';\nimport ParameterError from '../common/errors/parameter';\n\nconst MemberUtil = {\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n canReclaimHost: (participant) => {\n if (!participant) {\n throw new ParameterError(\n 'canReclaimHostRole could not be processed, participant is undefined.'\n );\n }\n\n return participant.canReclaimHostRole || false;\n },\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n canApproveAIEnablement: (participant) => {\n if (!participant) {\n return false;\n }\n\n return !participant.attendeeRequestAiAssistantNotAllowed;\n },\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {[ServerRoleShape]}\n */\n getControlsRoles: (participant: Participant): Array<ServerRoleShape> =>\n participant?.controls?.role?.roles,\n\n /**\n * Checks if the participant has the brb status enabled.\n *\n * @param {Participant} participant - The locus participant object.\n * @returns {boolean} - True if the participant has brb enabled, false otherwise.\n */\n isBrb: (participant: Participant): boolean => participant.controls?.brb?.enabled || false,\n\n /**\n * @param {Object} participant - The locus participant object.\n * @param {ServerRoles} controlRole the search role\n * @returns {Boolean}\n */\n hasRole: (participant: Participant, controlRole: ServerRoles): boolean =>\n MemberUtil.getControlsRoles(participant)?.some(\n (role) => role.type === controlRole && role.hasRole\n ),\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n hasCohost: (participant: Participant): boolean =>\n MemberUtil.hasRole(participant, ServerRoles.Cohost) || false,\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n hasModerator: (participant: Participant): boolean =>\n MemberUtil.hasRole(participant, ServerRoles.Moderator) || false,\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n hasPresenter: (participant: Participant): boolean =>\n MemberUtil.hasRole(participant, ServerRoles.Presenter) || false,\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {IExternalRoles}\n */\n extractControlRoles: (participant: Participant): IExternalRoles => {\n const roles = {\n cohost: MemberUtil.hasCohost(participant),\n moderator: MemberUtil.hasModerator(participant),\n presenter: MemberUtil.hasPresenter(participant),\n };\n\n return roles;\n },\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n isUser: (participant: Participant) => participant && participant.type === _USER_,\n\n isModerator: (participant: Participant) => participant && participant.moderator,\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n isGuest: (participant: Participant) => participant && participant.guest,\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n isDevice: (participant: Participant) => participant && participant.type === _RESOURCE_ROOM_,\n\n isModeratorAssignmentProhibited: (participant: Participant) =>\n participant && participant.moderatorAssignmentNotAllowed,\n\n isPresenterAssignmentProhibited: (participant: Participant) =>\n participant && participant.presenterAssignmentNotAllowed,\n\n isAttendeeAssignmentProhibited: (participant: Participant) =>\n !!(participant && participant.attendeeAssignmentNotAllowed),\n\n /**\n * checks to see if the participant id is the same as the passed id\n * there are multiple ids that can be used\n * @param {Object} participant - The locus participant object.\n * @param {String} id\n * @returns {Boolean}\n */\n isSame: (participant: Participant, id: string) =>\n participant && (participant.id === id || (participant.person && participant.person.id === id)),\n\n /**\n * @param {Object} participant - The locus participant object.\n * @param {Boolean} isGuest\n * @param {String} status\n * @returns {Boolean}\n */\n isNotAdmitted: (participant: Participant, isGuest: boolean, status: string): boolean =>\n participant &&\n participant.guest &&\n ((participant.devices &&\n participant.devices[0] &&\n participant.devices[0].intent &&\n participant.devices[0].intent.type === _WAIT_ &&\n // @ts-ignore\n isGuest &&\n status === _IN_LOBBY_) ||\n // @ts-ignore\n !status === _IN_MEETING_),\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n isAudioMuted: (participant: Participant) => {\n if (!participant) {\n throw new ParameterError('Audio could not be processed, participant is undefined.');\n }\n\n return MemberUtil.isMuted(participant, AUDIO_STATUS, AUDIO);\n },\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n isVideoMuted: (participant: Participant): boolean => {\n if (!participant) {\n throw new ParameterError('Video could not be processed, participant is undefined.');\n }\n\n return MemberUtil.isMuted(participant, VIDEO_STATUS, VIDEO);\n },\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n isHandRaised: (participant: Participant) => {\n if (!participant) {\n throw new ParameterError('Raise hand could not be processed, participant is undefined.');\n }\n\n return participant.controls?.hand?.raised || false;\n },\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n isBreakoutsSupported: (participant) => {\n if (!participant) {\n throw new ParameterError(\n 'Breakout support could not be processed, participant is undefined.'\n );\n }\n\n return !participant.doesNotSupportBreakouts;\n },\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n isSupportsSingleUserAutoEndMeeting: (participant) => {\n if (!participant) {\n throw new ParameterError(\n 'Single user auto end meeting support could not be processed, participant is undefined.'\n );\n }\n\n return !participant.doesNotSupportSingleUserAutoEndMeeting;\n },\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n isInterpretationSupported: (participant) => {\n if (!participant) {\n throw new ParameterError(\n 'Interpretation support could not be processed, participant is undefined.'\n );\n }\n\n return !participant.doesNotSupportSiInterpreter;\n },\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n isLiveAnnotationSupported: (participant) => {\n if (!participant) {\n throw new ParameterError(\n 'LiveAnnotation support could not be processed, participant is undefined.'\n );\n }\n\n return !participant.annotatorAssignmentNotAllowed;\n },\n\n /**\n * utility method for audio/video muted status\n * @param {any} participant\n * @param {String} statusAccessor\n * @param {String} controlsAccessor\n * @returns {Boolean | undefined}\n */\n isMuted: (participant: Participant, statusAccessor: string, controlsAccessor: string) => {\n // check remote mute\n const remoteMute = participant?.controls?.[controlsAccessor]?.muted;\n if (remoteMute === true) {\n return true;\n }\n\n // check local mute\n const localStatus = participant?.status?.[statusAccessor];\n if (localStatus === _RECEIVE_ONLY_) {\n return true;\n }\n if (localStatus === _SEND_RECEIVE_) {\n return false;\n }\n\n return remoteMute;\n },\n\n /**\n * utility method for getting the recording member for later comparison\n * @param {Object} controls\n * @returns {String|null}\n */\n getRecordingMember: (controls: any) => {\n if (!controls) {\n return null;\n }\n if (controls.record && controls.record.recording && controls.record.meta) {\n return controls.record.meta.modifiedBy;\n }\n\n return null;\n },\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {Boolean}\n */\n isRecording: (participant: Participant) => {\n if (!participant) {\n throw new ParameterError('Recording could not be processed, participant is undefined.');\n }\n if (participant.controls && participant.controls.localRecord) {\n return participant.controls.localRecord.recording;\n }\n\n return false;\n },\n\n isRemovable: (isSelf, isGuest, isInMeeting, type) => {\n if (isGuest || isSelf) {\n return false;\n }\n if (type === _CALL_) {\n return false;\n }\n if (isInMeeting) {\n return true;\n }\n\n return false;\n },\n\n isMutable: (isSelf, isDevice, isInMeeting, isMuted, type) => {\n if (!isInMeeting) {\n return false;\n }\n if (isMuted) {\n return false;\n }\n if (type === _CALL_) {\n return false;\n }\n if (isSelf || isDevice) {\n return true;\n }\n\n return false;\n },\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {String}\n */\n extractStatus: (participant: Participant) => {\n if (!(participant && participant.devices && participant.devices.length)) {\n return _NOT_IN_MEETING_;\n }\n if (participant.state === _JOINED_) {\n return _IN_MEETING_;\n }\n if (participant.state === _IDLE_) {\n if (participant.devices && participant.devices.length > 0) {\n const foundDevice = participant.devices.find(\n (device) =>\n device.intent && (device.intent.type === _WAIT_ || device.intent.type === _OBSERVE_)\n );\n\n return foundDevice ? _IN_LOBBY_ : _NOT_IN_MEETING_;\n }\n\n return _NOT_IN_MEETING_;\n }\n if (participant.state === _LEFT_) {\n return _NOT_IN_MEETING_;\n }\n\n return _NOT_IN_MEETING_;\n },\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {String}\n */\n extractId: (participant: Participant) => {\n if (participant) {\n return participant.id;\n }\n\n return null;\n },\n\n /**\n * extracts the media status from nested participant object\n * @param {Object} participant - The locus participant object.\n * @returns {Object}\n */\n extractMediaStatus: (participant: Participant): IMediaStatus => {\n if (!participant) {\n throw new ParameterError('Media status could not be extracted, participant is undefined.');\n }\n\n return {\n audio: participant.status?.audioStatus,\n video: participant.status?.videoStatus,\n };\n },\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {String}\n */\n extractName: (participant: Participant) => {\n if (participant && participant.person) {\n return participant.person.name;\n }\n\n return null;\n },\n\n /**\n * @param {Object} participant - The locus participant object.\n * @returns {String}\n */\n extractPairedWithParticipantUrl: (participant: Participant): ParticipantUrl | undefined => {\n let participantUrl;\n\n participant?.devices?.forEach((device) => {\n device?.intents?.forEach((intent) => {\n if (intent?.type === _OBSERVE_ && intent?.associatedWith) {\n participantUrl = intent.associatedWith;\n }\n });\n });\n\n return participantUrl;\n },\n};\nexport default MemberUtil;\n"],"mappings":"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","ignoreList":[]}
@@ -100,6 +100,7 @@ var BEHAVIORAL_METRICS = exports.default = {
100
100
  DEPRECATED_SET_CODEC_PARAMETERS_USED: 'js_sdk_deprecated_set_codec_parameters_used',
101
101
  DEPRECATED_DELETE_CODEC_PARAMETERS_USED: 'js_sdk_deprecated_delete_codec_parameters_used',
102
102
  SET_CUSTOM_CODEC_PARAMETERS_USED: 'js_sdk_set_custom_codec_parameters_used',
103
- MARK_CUSTOM_CODEC_PARAMETERS_FOR_DELETION_USED: 'js_sdk_mark_custom_codec_parameters_for_deletion_used'
103
+ MARK_CUSTOM_CODEC_PARAMETERS_FOR_DELETION_USED: 'js_sdk_mark_custom_codec_parameters_for_deletion_used',
104
+ HASH_TREE_SYNC_FAILURE: 'js_sdk_hash_tree_sync_failure'
104
105
  };
105
106
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["BEHAVIORAL_METRICS","exports","default","MEETINGS_REGISTRATION_FAILED","MEETINGS_REGISTRATION_SUCCESS","MEETINGS_REGISTRATION_STEP","MERCURY_CONNECTION_FAILURE","MERCURY_CONNECTION_RESTORED","JOIN_SUCCESS","JOIN_FAILURE","ADD_MEDIA_SUCCESS","ADD_MEDIA_FAILURE","ADD_MEDIA_RETRY","ROAP_MERCURY_EVENT_RECEIVED","CONNECTION_SUCCESS","CONNECTION_FAILURE","MEETING_LEAVE_FAILURE","MEETING_END_ALL_FAILURE","MEETING_END_ALL_INITIATED","GET_USER_MEDIA_FAILURE","GET_DISPLAY_MEDIA_FAILURE","JOIN_WITH_MEDIA_FAILURE","LLM_CONNECTION_AFTER_JOIN_FAILURE","LLM_HEALTHCHECK_FAILURE","RECEIVE_TRANSCRIPTION_AFTER_JOIN_FAILURE","DISCONNECT_DUE_TO_INACTIVITY","MEETING_MEDIA_INACTIVE","MEETING_RECONNECT_FAILURE","MEETING_MAX_REJOIN_FAILURE","MEETING_SHARE_SUCCESS","MEETING_SHARE_FAILURE","MEETING_START_WHITEBOARD_SHARE_FAILURE","MEETING_STOP_WHITEBOARD_SHARE_FAILURE","MEETING_SHARE_VIDEO_MUTE_STATE_CHANGE","MUTE_AUDIO_FAILURE","MUTE_VIDEO_FAILURE","SET_MEETING_QUALITY_FAILURE","STOP_FLOOR_REQUEST_FAILURE","ADD_DIAL_IN_FAILURE","ADD_DIAL_OUT_FAILURE","UPDATE_MEDIA_FAILURE","UNMUTE_AUDIO_FAILURE","UNMUTE_VIDEO_FAILURE","ROAP_ANSWER_FAILURE","ROAP_GLARE_CONDITION","PEERCONNECTION_FAILURE","INVALID_ICE_CANDIDATE","UPLOAD_LOGS_FAILURE","UPLOAD_LOGS_SUCCESS","RECEIVE_TRANSCRIPTION_FAILURE","MEETING_IS_IN_PROGRESS_ERROR","STATIC_MEETING_LINK_ALREADY_EXISTS_ERROR","FETCH_MEETING_INFO_V1_SUCCESS","FETCH_MEETING_INFO_V1_FAILURE","ENABLE_STATIC_METTING_LINK_SUCCESS","ENABLE_STATIC_METTING_LINK_FAILURE","DISABLE_STATIC_MEETING_LINK_SUCCESS","DISABLE_STATIC_MEETING_LINK_FAILURE","ADHOC_MEETING_SUCCESS","ADHOC_MEETING_FAILURE","FETCH_STATIC_MEETING_LINK_SUCCESS","FETCH_STATIC_MEETING_LINK_FAILURE","MEETING_LINK_DOES_NOT_EXIST_ERROR","VERIFY_PASSWORD_SUCCESS","VERIFY_PASSWORD_ERROR","VERIFY_CAPTCHA_ERROR","MOVE_TO_SUCCESS","MOVE_TO_FAILURE","MOVE_FROM_SUCCESS","MOVE_FROM_FAILURE","TURN_DISCOVERY_FAILURE","MEETING_INFO_POLICY_ERROR","LOCUS_DELTA_SYNC_FAILED","LOCUS_DELTA_OUT_OF_ORDER","LOCUS_SYNC_HANDLING_FAILED","PERMISSION_TOKEN_REFRESH","PERMISSION_TOKEN_REFRESH_ERROR","TURN_DISCOVERY_LATENCY","ROAP_OFFER_TO_ANSWER_LATENCY","ROAP_HTTP_RESPONSE_MISSING","TURN_DISCOVERY_REQUIRES_OK","REACHABILITY_COMPLETED","JOIN_WEBINAR_ERROR","GUEST_ENTERED_LOBBY","GUEST_EXITED_LOBBY","VERIFY_REGISTRATION_ID_SUCCESS","VERIFY_REGISTRATION_ID_ERROR","JOIN_FORBIDDEN_ERROR","MEDIA_ISSUE_DETECTED","LOCUS_CLASSIC_VS_HASH_TREE_MISMATCH","LOCUS_HASH_TREE_UNSUPPORTED_OPERATION","MEDIA_STILL_NOT_CONNECTED","DEPRECATED_SET_CODEC_PARAMETERS_USED","DEPRECATED_DELETE_CODEC_PARAMETERS_USED","SET_CUSTOM_CODEC_PARAMETERS_USED","MARK_CUSTOM_CODEC_PARAMETERS_FOR_DELETION_USED"],"sources":["constants.ts"],"sourcesContent":["// Metrics constants ----------------------------------------------------------\n\nconst BEHAVIORAL_METRICS = {\n MEETINGS_REGISTRATION_FAILED: 'js_sdk_meetings_registration_failed',\n MEETINGS_REGISTRATION_SUCCESS: 'js_sdk_meetings_registration_success',\n MEETINGS_REGISTRATION_STEP: 'meetings_registration_step',\n MERCURY_CONNECTION_FAILURE: 'js_sdk_mercury_connection_failure',\n MERCURY_CONNECTION_RESTORED: 'js_sdk_mercury_connection_restored',\n JOIN_SUCCESS: 'js_sdk_join_success',\n JOIN_FAILURE: 'js_sdk_join_failures',\n ADD_MEDIA_SUCCESS: 'js_sdk_add_media_success',\n ADD_MEDIA_FAILURE: 'js_sdk_add_media_failures',\n ADD_MEDIA_RETRY: 'js_sdk_add_media_retry',\n ROAP_MERCURY_EVENT_RECEIVED: 'js_sdk_roap_mercury_received',\n CONNECTION_SUCCESS: 'js_sdk_connection_success',\n CONNECTION_FAILURE: 'js_sdk_connection_failures',\n MEETING_LEAVE_FAILURE: 'js_sdk_meeting_leave_failure',\n MEETING_END_ALL_FAILURE: 'js_sdk_meeting_end_for_all_failure',\n MEETING_END_ALL_INITIATED: 'js_sdk_meeting_end_for_all_initiated',\n GET_USER_MEDIA_FAILURE: 'js_sdk_get_user_media_failures',\n GET_DISPLAY_MEDIA_FAILURE: 'js_sdk_get_display_media_failures',\n JOIN_WITH_MEDIA_FAILURE: 'js_sdk_join_with_media_failures',\n LLM_CONNECTION_AFTER_JOIN_FAILURE: 'js_sdk_llm_connection_after_join_failure',\n LLM_HEALTHCHECK_FAILURE: 'js_sdk_llm_healthcheck_failure',\n RECEIVE_TRANSCRIPTION_AFTER_JOIN_FAILURE: 'js_sdk_receive_transcription_after_join_failure',\n\n DISCONNECT_DUE_TO_INACTIVITY: 'js_sdk_disconnect_due_to_inactivity',\n MEETING_MEDIA_INACTIVE: 'js_sdk_meeting_media_inactive',\n MEETING_RECONNECT_FAILURE: 'js_sdk_meeting_reconnect_failures',\n MEETING_MAX_REJOIN_FAILURE: 'js_sdk_meeting_max_rejoin_failure',\n MEETING_SHARE_SUCCESS: 'js_sdk_meeting_share_success',\n MEETING_SHARE_FAILURE: 'js_sdk_meeting_share_failures',\n MEETING_START_WHITEBOARD_SHARE_FAILURE: 'js_sdk_meeting_start_whiteboard_share_failures',\n MEETING_STOP_WHITEBOARD_SHARE_FAILURE: 'js_sdk_meeting_stop_whiteboard_share_failures',\n MEETING_SHARE_VIDEO_MUTE_STATE_CHANGE: 'js_sdk_meeting_share_video_mute_state_change',\n MUTE_AUDIO_FAILURE: 'js_sdk_mute_audio_failures',\n MUTE_VIDEO_FAILURE: 'js_sdk_mute_video_failures',\n SET_MEETING_QUALITY_FAILURE: 'js_sdk_set_meeting_quality_failures',\n STOP_FLOOR_REQUEST_FAILURE: 'js_sdk_stop_floor_request_failures',\n ADD_DIAL_IN_FAILURE: 'js_sdk_add_dial_in_failure',\n ADD_DIAL_OUT_FAILURE: 'js_sdk_add_dial_out_failure',\n UPDATE_MEDIA_FAILURE: 'js_sdk_update_media_failures',\n UNMUTE_AUDIO_FAILURE: 'js_sdk_unmute_audio_failures',\n UNMUTE_VIDEO_FAILURE: 'js_sdk_unmute_video_failures',\n ROAP_ANSWER_FAILURE: 'js_sdk_roap_answer_failures',\n ROAP_GLARE_CONDITION: 'js_sdk_roap_glar_condition',\n PEERCONNECTION_FAILURE: 'js_sdk_peerConnection_failures',\n INVALID_ICE_CANDIDATE: 'js_sdk_invalid_ice_candidate',\n UPLOAD_LOGS_FAILURE: 'js_sdk_upload_logs_failure',\n UPLOAD_LOGS_SUCCESS: 'js_sdk_upload_logs_success',\n RECEIVE_TRANSCRIPTION_FAILURE: 'js_sdk_receive_transcription_failure',\n MEETING_IS_IN_PROGRESS_ERROR: 'js_sdk_meeting_is_in_progress_error',\n STATIC_MEETING_LINK_ALREADY_EXISTS_ERROR: 'js_sdk_static_meeting_link_already_exists_error',\n FETCH_MEETING_INFO_V1_SUCCESS: 'js_sdk_fetch_meeting_info_v1_success',\n FETCH_MEETING_INFO_V1_FAILURE: 'js_sdk_fetch_meeting_info_v1_failure',\n ENABLE_STATIC_METTING_LINK_SUCCESS: 'js_sdk_enable_static_meeting_link_success',\n ENABLE_STATIC_METTING_LINK_FAILURE: 'js_sdk_enable_static_meeting_link_failure',\n DISABLE_STATIC_MEETING_LINK_SUCCESS: 'js_sdk_disable_static_meeting_link_success',\n DISABLE_STATIC_MEETING_LINK_FAILURE: 'js_sdk_disable_static_meeting_link_failure',\n ADHOC_MEETING_SUCCESS: 'js_sdk_adhoc_meeting_success',\n ADHOC_MEETING_FAILURE: 'js_sdk_adhoc_meeting_failure',\n FETCH_STATIC_MEETING_LINK_SUCCESS: 'js_sdk_fetch_static_meeting_link_success',\n FETCH_STATIC_MEETING_LINK_FAILURE: 'js_sdk_fetch_static_meeting_link_failure',\n MEETING_LINK_DOES_NOT_EXIST_ERROR: 'js_sdk_meeting_link_does_not_exist_error',\n VERIFY_PASSWORD_SUCCESS: 'js_sdk_verify_password_success',\n VERIFY_PASSWORD_ERROR: 'js_sdk_verify_password_error',\n VERIFY_CAPTCHA_ERROR: 'js_sdk_verify_captcha_error',\n MOVE_TO_SUCCESS: 'js_sdk_move_to_success',\n MOVE_TO_FAILURE: 'js_sdk_move_to_failure',\n MOVE_FROM_SUCCESS: 'js_sdk_move_from_success',\n MOVE_FROM_FAILURE: 'js_sdk_move_from_failure',\n TURN_DISCOVERY_FAILURE: 'js_sdk_turn_discovery_failure',\n MEETING_INFO_POLICY_ERROR: 'js_sdk_meeting_info_policy_error',\n LOCUS_DELTA_SYNC_FAILED: 'js_sdk_locus_delta_sync_failed',\n LOCUS_DELTA_OUT_OF_ORDER: 'js_sdk_locus_delta_ooo',\n LOCUS_SYNC_HANDLING_FAILED: 'js_sdk_locus_sync_handling_failed',\n PERMISSION_TOKEN_REFRESH: 'js_sdk_permission_token_refresh',\n PERMISSION_TOKEN_REFRESH_ERROR: 'js_sdk_permission_token_refresh_error',\n TURN_DISCOVERY_LATENCY: 'js_sdk_turn_discovery_latency',\n ROAP_OFFER_TO_ANSWER_LATENCY: 'js_sdk_roap_offer_to_answer_latency',\n ROAP_HTTP_RESPONSE_MISSING: 'js_sdk_roap_http_response_missing',\n TURN_DISCOVERY_REQUIRES_OK: 'js_sdk_turn_discovery_requires_ok',\n REACHABILITY_COMPLETED: 'js_sdk_reachability_completed',\n JOIN_WEBINAR_ERROR: 'js_sdk_join_webinar_error',\n GUEST_ENTERED_LOBBY: 'js_sdk_guest_entered_lobby',\n GUEST_EXITED_LOBBY: 'js_sdk_guest_exited_lobby',\n VERIFY_REGISTRATION_ID_SUCCESS: 'js_sdk_verify_registrationId_success',\n VERIFY_REGISTRATION_ID_ERROR: 'js_sdk_verify_registrationId_error',\n JOIN_FORBIDDEN_ERROR: 'js_sdk_join_forbidden_error',\n MEDIA_ISSUE_DETECTED: 'js_sdk_media_issue_detected',\n LOCUS_CLASSIC_VS_HASH_TREE_MISMATCH: 'js_sdk_locus_classic_vs_hash_tree_mismatch',\n LOCUS_HASH_TREE_UNSUPPORTED_OPERATION: 'js_sdk_locus_hash_tree_unsupported_operation',\n MEDIA_STILL_NOT_CONNECTED: 'js_sdk_media_still_not_connected',\n DEPRECATED_SET_CODEC_PARAMETERS_USED: 'js_sdk_deprecated_set_codec_parameters_used',\n DEPRECATED_DELETE_CODEC_PARAMETERS_USED: 'js_sdk_deprecated_delete_codec_parameters_used',\n SET_CUSTOM_CODEC_PARAMETERS_USED: 'js_sdk_set_custom_codec_parameters_used',\n MARK_CUSTOM_CODEC_PARAMETERS_FOR_DELETION_USED:\n 'js_sdk_mark_custom_codec_parameters_for_deletion_used',\n};\n\nexport {BEHAVIORAL_METRICS as default};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["BEHAVIORAL_METRICS","exports","default","MEETINGS_REGISTRATION_FAILED","MEETINGS_REGISTRATION_SUCCESS","MEETINGS_REGISTRATION_STEP","MERCURY_CONNECTION_FAILURE","MERCURY_CONNECTION_RESTORED","JOIN_SUCCESS","JOIN_FAILURE","ADD_MEDIA_SUCCESS","ADD_MEDIA_FAILURE","ADD_MEDIA_RETRY","ROAP_MERCURY_EVENT_RECEIVED","CONNECTION_SUCCESS","CONNECTION_FAILURE","MEETING_LEAVE_FAILURE","MEETING_END_ALL_FAILURE","MEETING_END_ALL_INITIATED","GET_USER_MEDIA_FAILURE","GET_DISPLAY_MEDIA_FAILURE","JOIN_WITH_MEDIA_FAILURE","LLM_CONNECTION_AFTER_JOIN_FAILURE","LLM_HEALTHCHECK_FAILURE","RECEIVE_TRANSCRIPTION_AFTER_JOIN_FAILURE","DISCONNECT_DUE_TO_INACTIVITY","MEETING_MEDIA_INACTIVE","MEETING_RECONNECT_FAILURE","MEETING_MAX_REJOIN_FAILURE","MEETING_SHARE_SUCCESS","MEETING_SHARE_FAILURE","MEETING_START_WHITEBOARD_SHARE_FAILURE","MEETING_STOP_WHITEBOARD_SHARE_FAILURE","MEETING_SHARE_VIDEO_MUTE_STATE_CHANGE","MUTE_AUDIO_FAILURE","MUTE_VIDEO_FAILURE","SET_MEETING_QUALITY_FAILURE","STOP_FLOOR_REQUEST_FAILURE","ADD_DIAL_IN_FAILURE","ADD_DIAL_OUT_FAILURE","UPDATE_MEDIA_FAILURE","UNMUTE_AUDIO_FAILURE","UNMUTE_VIDEO_FAILURE","ROAP_ANSWER_FAILURE","ROAP_GLARE_CONDITION","PEERCONNECTION_FAILURE","INVALID_ICE_CANDIDATE","UPLOAD_LOGS_FAILURE","UPLOAD_LOGS_SUCCESS","RECEIVE_TRANSCRIPTION_FAILURE","MEETING_IS_IN_PROGRESS_ERROR","STATIC_MEETING_LINK_ALREADY_EXISTS_ERROR","FETCH_MEETING_INFO_V1_SUCCESS","FETCH_MEETING_INFO_V1_FAILURE","ENABLE_STATIC_METTING_LINK_SUCCESS","ENABLE_STATIC_METTING_LINK_FAILURE","DISABLE_STATIC_MEETING_LINK_SUCCESS","DISABLE_STATIC_MEETING_LINK_FAILURE","ADHOC_MEETING_SUCCESS","ADHOC_MEETING_FAILURE","FETCH_STATIC_MEETING_LINK_SUCCESS","FETCH_STATIC_MEETING_LINK_FAILURE","MEETING_LINK_DOES_NOT_EXIST_ERROR","VERIFY_PASSWORD_SUCCESS","VERIFY_PASSWORD_ERROR","VERIFY_CAPTCHA_ERROR","MOVE_TO_SUCCESS","MOVE_TO_FAILURE","MOVE_FROM_SUCCESS","MOVE_FROM_FAILURE","TURN_DISCOVERY_FAILURE","MEETING_INFO_POLICY_ERROR","LOCUS_DELTA_SYNC_FAILED","LOCUS_DELTA_OUT_OF_ORDER","LOCUS_SYNC_HANDLING_FAILED","PERMISSION_TOKEN_REFRESH","PERMISSION_TOKEN_REFRESH_ERROR","TURN_DISCOVERY_LATENCY","ROAP_OFFER_TO_ANSWER_LATENCY","ROAP_HTTP_RESPONSE_MISSING","TURN_DISCOVERY_REQUIRES_OK","REACHABILITY_COMPLETED","JOIN_WEBINAR_ERROR","GUEST_ENTERED_LOBBY","GUEST_EXITED_LOBBY","VERIFY_REGISTRATION_ID_SUCCESS","VERIFY_REGISTRATION_ID_ERROR","JOIN_FORBIDDEN_ERROR","MEDIA_ISSUE_DETECTED","LOCUS_CLASSIC_VS_HASH_TREE_MISMATCH","LOCUS_HASH_TREE_UNSUPPORTED_OPERATION","MEDIA_STILL_NOT_CONNECTED","DEPRECATED_SET_CODEC_PARAMETERS_USED","DEPRECATED_DELETE_CODEC_PARAMETERS_USED","SET_CUSTOM_CODEC_PARAMETERS_USED","MARK_CUSTOM_CODEC_PARAMETERS_FOR_DELETION_USED","HASH_TREE_SYNC_FAILURE"],"sources":["constants.ts"],"sourcesContent":["// Metrics constants ----------------------------------------------------------\n\nconst BEHAVIORAL_METRICS = {\n MEETINGS_REGISTRATION_FAILED: 'js_sdk_meetings_registration_failed',\n MEETINGS_REGISTRATION_SUCCESS: 'js_sdk_meetings_registration_success',\n MEETINGS_REGISTRATION_STEP: 'meetings_registration_step',\n MERCURY_CONNECTION_FAILURE: 'js_sdk_mercury_connection_failure',\n MERCURY_CONNECTION_RESTORED: 'js_sdk_mercury_connection_restored',\n JOIN_SUCCESS: 'js_sdk_join_success',\n JOIN_FAILURE: 'js_sdk_join_failures',\n ADD_MEDIA_SUCCESS: 'js_sdk_add_media_success',\n ADD_MEDIA_FAILURE: 'js_sdk_add_media_failures',\n ADD_MEDIA_RETRY: 'js_sdk_add_media_retry',\n ROAP_MERCURY_EVENT_RECEIVED: 'js_sdk_roap_mercury_received',\n CONNECTION_SUCCESS: 'js_sdk_connection_success',\n CONNECTION_FAILURE: 'js_sdk_connection_failures',\n MEETING_LEAVE_FAILURE: 'js_sdk_meeting_leave_failure',\n MEETING_END_ALL_FAILURE: 'js_sdk_meeting_end_for_all_failure',\n MEETING_END_ALL_INITIATED: 'js_sdk_meeting_end_for_all_initiated',\n GET_USER_MEDIA_FAILURE: 'js_sdk_get_user_media_failures',\n GET_DISPLAY_MEDIA_FAILURE: 'js_sdk_get_display_media_failures',\n JOIN_WITH_MEDIA_FAILURE: 'js_sdk_join_with_media_failures',\n LLM_CONNECTION_AFTER_JOIN_FAILURE: 'js_sdk_llm_connection_after_join_failure',\n LLM_HEALTHCHECK_FAILURE: 'js_sdk_llm_healthcheck_failure',\n RECEIVE_TRANSCRIPTION_AFTER_JOIN_FAILURE: 'js_sdk_receive_transcription_after_join_failure',\n\n DISCONNECT_DUE_TO_INACTIVITY: 'js_sdk_disconnect_due_to_inactivity',\n MEETING_MEDIA_INACTIVE: 'js_sdk_meeting_media_inactive',\n MEETING_RECONNECT_FAILURE: 'js_sdk_meeting_reconnect_failures',\n MEETING_MAX_REJOIN_FAILURE: 'js_sdk_meeting_max_rejoin_failure',\n MEETING_SHARE_SUCCESS: 'js_sdk_meeting_share_success',\n MEETING_SHARE_FAILURE: 'js_sdk_meeting_share_failures',\n MEETING_START_WHITEBOARD_SHARE_FAILURE: 'js_sdk_meeting_start_whiteboard_share_failures',\n MEETING_STOP_WHITEBOARD_SHARE_FAILURE: 'js_sdk_meeting_stop_whiteboard_share_failures',\n MEETING_SHARE_VIDEO_MUTE_STATE_CHANGE: 'js_sdk_meeting_share_video_mute_state_change',\n MUTE_AUDIO_FAILURE: 'js_sdk_mute_audio_failures',\n MUTE_VIDEO_FAILURE: 'js_sdk_mute_video_failures',\n SET_MEETING_QUALITY_FAILURE: 'js_sdk_set_meeting_quality_failures',\n STOP_FLOOR_REQUEST_FAILURE: 'js_sdk_stop_floor_request_failures',\n ADD_DIAL_IN_FAILURE: 'js_sdk_add_dial_in_failure',\n ADD_DIAL_OUT_FAILURE: 'js_sdk_add_dial_out_failure',\n UPDATE_MEDIA_FAILURE: 'js_sdk_update_media_failures',\n UNMUTE_AUDIO_FAILURE: 'js_sdk_unmute_audio_failures',\n UNMUTE_VIDEO_FAILURE: 'js_sdk_unmute_video_failures',\n ROAP_ANSWER_FAILURE: 'js_sdk_roap_answer_failures',\n ROAP_GLARE_CONDITION: 'js_sdk_roap_glar_condition',\n PEERCONNECTION_FAILURE: 'js_sdk_peerConnection_failures',\n INVALID_ICE_CANDIDATE: 'js_sdk_invalid_ice_candidate',\n UPLOAD_LOGS_FAILURE: 'js_sdk_upload_logs_failure',\n UPLOAD_LOGS_SUCCESS: 'js_sdk_upload_logs_success',\n RECEIVE_TRANSCRIPTION_FAILURE: 'js_sdk_receive_transcription_failure',\n MEETING_IS_IN_PROGRESS_ERROR: 'js_sdk_meeting_is_in_progress_error',\n STATIC_MEETING_LINK_ALREADY_EXISTS_ERROR: 'js_sdk_static_meeting_link_already_exists_error',\n FETCH_MEETING_INFO_V1_SUCCESS: 'js_sdk_fetch_meeting_info_v1_success',\n FETCH_MEETING_INFO_V1_FAILURE: 'js_sdk_fetch_meeting_info_v1_failure',\n ENABLE_STATIC_METTING_LINK_SUCCESS: 'js_sdk_enable_static_meeting_link_success',\n ENABLE_STATIC_METTING_LINK_FAILURE: 'js_sdk_enable_static_meeting_link_failure',\n DISABLE_STATIC_MEETING_LINK_SUCCESS: 'js_sdk_disable_static_meeting_link_success',\n DISABLE_STATIC_MEETING_LINK_FAILURE: 'js_sdk_disable_static_meeting_link_failure',\n ADHOC_MEETING_SUCCESS: 'js_sdk_adhoc_meeting_success',\n ADHOC_MEETING_FAILURE: 'js_sdk_adhoc_meeting_failure',\n FETCH_STATIC_MEETING_LINK_SUCCESS: 'js_sdk_fetch_static_meeting_link_success',\n FETCH_STATIC_MEETING_LINK_FAILURE: 'js_sdk_fetch_static_meeting_link_failure',\n MEETING_LINK_DOES_NOT_EXIST_ERROR: 'js_sdk_meeting_link_does_not_exist_error',\n VERIFY_PASSWORD_SUCCESS: 'js_sdk_verify_password_success',\n VERIFY_PASSWORD_ERROR: 'js_sdk_verify_password_error',\n VERIFY_CAPTCHA_ERROR: 'js_sdk_verify_captcha_error',\n MOVE_TO_SUCCESS: 'js_sdk_move_to_success',\n MOVE_TO_FAILURE: 'js_sdk_move_to_failure',\n MOVE_FROM_SUCCESS: 'js_sdk_move_from_success',\n MOVE_FROM_FAILURE: 'js_sdk_move_from_failure',\n TURN_DISCOVERY_FAILURE: 'js_sdk_turn_discovery_failure',\n MEETING_INFO_POLICY_ERROR: 'js_sdk_meeting_info_policy_error',\n LOCUS_DELTA_SYNC_FAILED: 'js_sdk_locus_delta_sync_failed',\n LOCUS_DELTA_OUT_OF_ORDER: 'js_sdk_locus_delta_ooo',\n LOCUS_SYNC_HANDLING_FAILED: 'js_sdk_locus_sync_handling_failed',\n PERMISSION_TOKEN_REFRESH: 'js_sdk_permission_token_refresh',\n PERMISSION_TOKEN_REFRESH_ERROR: 'js_sdk_permission_token_refresh_error',\n TURN_DISCOVERY_LATENCY: 'js_sdk_turn_discovery_latency',\n ROAP_OFFER_TO_ANSWER_LATENCY: 'js_sdk_roap_offer_to_answer_latency',\n ROAP_HTTP_RESPONSE_MISSING: 'js_sdk_roap_http_response_missing',\n TURN_DISCOVERY_REQUIRES_OK: 'js_sdk_turn_discovery_requires_ok',\n REACHABILITY_COMPLETED: 'js_sdk_reachability_completed',\n JOIN_WEBINAR_ERROR: 'js_sdk_join_webinar_error',\n GUEST_ENTERED_LOBBY: 'js_sdk_guest_entered_lobby',\n GUEST_EXITED_LOBBY: 'js_sdk_guest_exited_lobby',\n VERIFY_REGISTRATION_ID_SUCCESS: 'js_sdk_verify_registrationId_success',\n VERIFY_REGISTRATION_ID_ERROR: 'js_sdk_verify_registrationId_error',\n JOIN_FORBIDDEN_ERROR: 'js_sdk_join_forbidden_error',\n MEDIA_ISSUE_DETECTED: 'js_sdk_media_issue_detected',\n LOCUS_CLASSIC_VS_HASH_TREE_MISMATCH: 'js_sdk_locus_classic_vs_hash_tree_mismatch',\n LOCUS_HASH_TREE_UNSUPPORTED_OPERATION: 'js_sdk_locus_hash_tree_unsupported_operation',\n MEDIA_STILL_NOT_CONNECTED: 'js_sdk_media_still_not_connected',\n DEPRECATED_SET_CODEC_PARAMETERS_USED: 'js_sdk_deprecated_set_codec_parameters_used',\n DEPRECATED_DELETE_CODEC_PARAMETERS_USED: 'js_sdk_deprecated_delete_codec_parameters_used',\n SET_CUSTOM_CODEC_PARAMETERS_USED: 'js_sdk_set_custom_codec_parameters_used',\n MARK_CUSTOM_CODEC_PARAMETERS_FOR_DELETION_USED:\n 'js_sdk_mark_custom_codec_parameters_for_deletion_used',\n HASH_TREE_SYNC_FAILURE: 'js_sdk_hash_tree_sync_failure',\n};\n\nexport {BEHAVIORAL_METRICS as default};\n"],"mappings":"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","ignoreList":[]}
@@ -275,9 +275,7 @@ var RecordingController = exports.default = /*#__PURE__*/function () {
275
275
  value: function recordingControls(action) {
276
276
  var record = _util.default.deriveRecordingStates(action);
277
277
  _loggerProxy.default.logger.log("RecordingController:index#recordingControls --> ".concat(record));
278
-
279
- // @ts-ignore
280
- return this.request.request({
278
+ return this.request.locusDeltaRequest({
281
279
  uri: "".concat(this.locusUrl, "/").concat(_constants.CONTROLS),
282
280
  body: {
283
281
  record: record
@@ -1 +1 @@
1
- {"version":3,"names":["_permission","_interopRequireDefault","require","_loggerProxy","_constants","_enums","_util","RecordingController","exports","default","request","options","_classCallCheck2","_defineProperty2","initialize","set","_createClass2","key","value","extract","setLocusUrl","url","locusUrl","locusId","Util","extractLocusId","setDisplayHints","hints","displayHints","setUserPolicy","selfUserPolicies","setSessionId","id","sessionId","setServiceUrl","serviceUrl","getLocusUrl","getLocusId","getSessionId","getServiceUrl","getDisplayHints","recordingService","action","recordingType","body","meetingInfo","locusSessionId","recording","toLowerCase","uri","concat","method","HTTP_VERBS","PUT","recordingControls","record","deriveRecordingStates","LoggerProxy","logger","log","CONTROLS","PATCH","recordingFacade","isPremiseRecordingEnabled","RecordingType","Premise","Cloud","_promise","reject","PermissionError","startRecording","RecordingAction","Start","stopRecording","Stop","pauseRecording","Pause","resumeRecording","Resume"],"sources":["index.ts"],"sourcesContent":["import PermissionError from '../common/errors/permission';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {CONTROLS, HTTP_VERBS, SELF_POLICY} from '../constants';\nimport MeetingRequest from '../meeting/request';\nimport {RecordingAction, RecordingType} from './enums';\nimport Util from './util';\n\n/**\n * @description Recording manages the recording functionality of the meeting object, there should only be one instantation of recording per meeting\n * @export\n * @private\n * @class Recording\n */\nexport default class RecordingController {\n /**\n * @instance\n * @type {MeetingRequest}\n * @private\n * @memberof RecordingController\n */\n private request: MeetingRequest;\n\n /**\n * @instance\n * @type {Array}\n * @private\n * @memberof RecordingInfo\n */\n private displayHints: Array<string> = [];\n\n /**\n * @instance\n * @type {Object}\n * @private\n * @memberof RecordingInfo\n */\n private selfUserPolicies: Record<SELF_POLICY, boolean>;\n\n /**\n * @instance\n * @type {string}\n * @private\n * @memberof RecordingInfo\n */\n private serviceUrl: string;\n\n /**\n * @instance\n * @type {string}\n * @private\n * @memberof RecordingInfo\n */\n private sessionId: string;\n\n /**\n * @instance\n * @type {string}\n * @private\n * @memberof RecordingInfo\n */\n private locusUrl: string;\n\n /**\n * @instance\n * @type {string}\n * @private\n * @memberof RecordingInfo\n */\n private locusId: string;\n\n /**\n * @param {MeetingRequest} request\n * @param {Object} options\n * @constructor\n * @memberof RecordingController\n */\n constructor(\n request: MeetingRequest,\n options?: {\n serviceUrl?: string;\n sessionId: string;\n locusUrl: string;\n displayHints?: Array<string>;\n }\n ) {\n this.initialize(request);\n this.set(options);\n }\n\n /**\n * @param {MeetingRequest} request\n * @returns {void}\n * @private\n * @memberof RecordingController\n */\n private initialize(request: MeetingRequest) {\n this.request = request;\n }\n\n /**\n * @param {Object} options\n * @returns {void}\n * @public\n * @memberof RecordingController\n */\n public set(options?: {\n serviceUrl?: string;\n sessionId: string;\n locusUrl: string;\n displayHints?: Array<string>;\n }) {\n this.extract(options);\n }\n\n /**\n * @param {string} url\n * @returns {void}\n * @public\n * @memberof RecordingController\n */\n public setLocusUrl(url: string) {\n this.locusUrl = url;\n this.locusId = Util.extractLocusId(this.locusUrl);\n }\n\n /**\n * @param {Array} hints\n * @returns {void}\n * @public\n * @memberof RecordingController\n */\n public setDisplayHints(hints: Array<string>) {\n this.displayHints = hints;\n }\n\n /**\n * @param {Object} selfUserPolicies\n * @returns {void}\n * @public\n * @memberof RecordingController\n */\n public setUserPolicy(selfUserPolicies: Record<SELF_POLICY, boolean>) {\n this.selfUserPolicies = selfUserPolicies;\n }\n\n /**\n * @param {string} id\n * @returns {void}\n * @public\n * @memberof RecordingController\n */\n public setSessionId(id: string) {\n this.sessionId = id;\n }\n\n /**\n * @param {string} url\n * @returns {void}\n * @public\n * @memberof RecordingController\n */\n public setServiceUrl(url: string) {\n this.serviceUrl = url;\n }\n\n /**\n * @returns {string}\n * @public\n * @memberof RecordingController\n */\n public getLocusUrl() {\n return this.locusUrl;\n }\n\n /**\n * @returns {string}\n * @public\n * @memberof RecordingController\n */\n public getLocusId() {\n return this.locusId;\n }\n\n /**\n * @returns {string}\n * @public\n * @memberof RecordingController\n */\n public getSessionId() {\n return this.sessionId;\n }\n\n /**\n * @returns {string}\n * @public\n * @memberof RecordingController\n */\n public getServiceUrl() {\n return this.serviceUrl;\n }\n\n /**\n * @returns {Array}\n * @public\n * @memberof RecordingController\n */\n public getDisplayHints() {\n return this.displayHints;\n }\n\n /**\n * @param {Object} options\n * @returns {void}\n * @private\n * @memberof RecordingController\n */\n private extract(options?: {\n serviceUrl?: string;\n sessionId: string;\n locusUrl: string;\n displayHints?: Array<string>;\n }) {\n this.setServiceUrl(options?.serviceUrl);\n this.setSessionId(options?.sessionId);\n this.setDisplayHints(options?.displayHints);\n this.setLocusUrl(options?.locusUrl);\n }\n\n /**\n * @param {RecordingAction} action\n * @param {RecordingType} recordingType\n * @private\n * @memberof RecordingController\n * @returns {Promise}\n */\n private recordingService(action: RecordingAction, recordingType: RecordingType): Promise<any> {\n // @ts-ignore\n return this.request.request({\n body: {\n meetingInfo: {\n locusSessionId: this.sessionId,\n },\n recording: {\n action: action.toLowerCase(),\n },\n recordingType,\n },\n uri: `${this.serviceUrl}/loci/${this.locusId}/recording`,\n method: HTTP_VERBS.PUT,\n });\n }\n\n /**\n * @param {RecordingAction} action\n * @private\n * @memberof RecordingController\n * @returns {Promise}\n */\n private recordingControls(action: RecordingAction): Promise<any> {\n const record = Util.deriveRecordingStates(action);\n\n LoggerProxy.logger.log(`RecordingController:index#recordingControls --> ${record}`);\n\n // @ts-ignore\n return this.request.request({\n uri: `${this.locusUrl}/${CONTROLS}`,\n body: {\n record,\n },\n method: HTTP_VERBS.PATCH,\n });\n }\n\n /**\n * @param {RecordingAction} action\n * @private\n * @memberof RecordingController\n * @returns {Promise}\n */\n private recordingFacade(action: RecordingAction): Promise<any> {\n const isPremiseRecordingEnabled = Util.isPremiseRecordingEnabled(\n this.displayHints,\n this.selfUserPolicies\n );\n LoggerProxy.logger.log(\n `RecordingController:index#recordingFacade --> recording action [${action}]`\n );\n\n let recordingType: RecordingType;\n if (isPremiseRecordingEnabled) {\n recordingType = RecordingType.Premise;\n } else {\n recordingType = RecordingType.Cloud;\n }\n\n // assumes action is proper cased (i.e., Example)\n if (Util?.[`canUser${action}`](this.displayHints, this.selfUserPolicies)) {\n if (this.serviceUrl) {\n return this.recordingService(action, recordingType);\n }\n\n return this.recordingControls(action);\n }\n\n return Promise.reject(\n new PermissionError(`${action} recording not allowed, due to moderator property.`)\n );\n }\n\n /**\n * @private\n * @memberof RecordingController\n * @returns {Promise}\n */\n public startRecording(): Promise<any> {\n return this.recordingFacade(RecordingAction.Start);\n }\n\n /**\n * @private\n * @memberof RecordingController\n * @returns {Promise}\n */\n public stopRecording(): Promise<any> {\n return this.recordingFacade(RecordingAction.Stop);\n }\n\n /**\n * @private\n * @memberof RecordingController\n * @returns {Promise}\n */\n public pauseRecording(): Promise<any> {\n return this.recordingFacade(RecordingAction.Pause);\n }\n\n /**\n * @private\n * @memberof RecordingController\n * @returns {Promise}\n */\n public resumeRecording(): Promise<any> {\n return this.recordingFacade(RecordingAction.Resume);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_permission","_interopRequireDefault","require","_loggerProxy","_constants","_enums","_util","RecordingController","exports","default","request","options","_classCallCheck2","_defineProperty2","initialize","set","_createClass2","key","value","extract","setLocusUrl","url","locusUrl","locusId","Util","extractLocusId","setDisplayHints","hints","displayHints","setUserPolicy","selfUserPolicies","setSessionId","id","sessionId","setServiceUrl","serviceUrl","getLocusUrl","getLocusId","getSessionId","getServiceUrl","getDisplayHints","recordingService","action","recordingType","body","meetingInfo","locusSessionId","recording","toLowerCase","uri","concat","method","HTTP_VERBS","PUT","recordingControls","record","deriveRecordingStates","LoggerProxy","logger","log","locusDeltaRequest","CONTROLS","PATCH","recordingFacade","isPremiseRecordingEnabled","RecordingType","Premise","Cloud","_promise","reject","PermissionError","startRecording","RecordingAction","Start","stopRecording","Stop","pauseRecording","Pause","resumeRecording","Resume"],"sources":["index.ts"],"sourcesContent":["import PermissionError from '../common/errors/permission';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {CONTROLS, HTTP_VERBS, SELF_POLICY} from '../constants';\nimport MeetingRequest from '../meeting/request';\nimport {RecordingAction, RecordingType} from './enums';\nimport Util from './util';\n\n/**\n * @description Recording manages the recording functionality of the meeting object, there should only be one instantation of recording per meeting\n * @export\n * @private\n * @class Recording\n */\nexport default class RecordingController {\n /**\n * @instance\n * @type {MeetingRequest}\n * @private\n * @memberof RecordingController\n */\n private request: MeetingRequest;\n\n /**\n * @instance\n * @type {Array}\n * @private\n * @memberof RecordingInfo\n */\n private displayHints: Array<string> = [];\n\n /**\n * @instance\n * @type {Object}\n * @private\n * @memberof RecordingInfo\n */\n private selfUserPolicies: Record<SELF_POLICY, boolean>;\n\n /**\n * @instance\n * @type {string}\n * @private\n * @memberof RecordingInfo\n */\n private serviceUrl: string;\n\n /**\n * @instance\n * @type {string}\n * @private\n * @memberof RecordingInfo\n */\n private sessionId: string;\n\n /**\n * @instance\n * @type {string}\n * @private\n * @memberof RecordingInfo\n */\n private locusUrl: string;\n\n /**\n * @instance\n * @type {string}\n * @private\n * @memberof RecordingInfo\n */\n private locusId: string;\n\n /**\n * @param {MeetingRequest} request\n * @param {Object} options\n * @constructor\n * @memberof RecordingController\n */\n constructor(\n request: MeetingRequest,\n options?: {\n serviceUrl?: string;\n sessionId: string;\n locusUrl: string;\n displayHints?: Array<string>;\n }\n ) {\n this.initialize(request);\n this.set(options);\n }\n\n /**\n * @param {MeetingRequest} request\n * @returns {void}\n * @private\n * @memberof RecordingController\n */\n private initialize(request: MeetingRequest) {\n this.request = request;\n }\n\n /**\n * @param {Object} options\n * @returns {void}\n * @public\n * @memberof RecordingController\n */\n public set(options?: {\n serviceUrl?: string;\n sessionId: string;\n locusUrl: string;\n displayHints?: Array<string>;\n }) {\n this.extract(options);\n }\n\n /**\n * @param {string} url\n * @returns {void}\n * @public\n * @memberof RecordingController\n */\n public setLocusUrl(url: string) {\n this.locusUrl = url;\n this.locusId = Util.extractLocusId(this.locusUrl);\n }\n\n /**\n * @param {Array} hints\n * @returns {void}\n * @public\n * @memberof RecordingController\n */\n public setDisplayHints(hints: Array<string>) {\n this.displayHints = hints;\n }\n\n /**\n * @param {Object} selfUserPolicies\n * @returns {void}\n * @public\n * @memberof RecordingController\n */\n public setUserPolicy(selfUserPolicies: Record<SELF_POLICY, boolean>) {\n this.selfUserPolicies = selfUserPolicies;\n }\n\n /**\n * @param {string} id\n * @returns {void}\n * @public\n * @memberof RecordingController\n */\n public setSessionId(id: string) {\n this.sessionId = id;\n }\n\n /**\n * @param {string} url\n * @returns {void}\n * @public\n * @memberof RecordingController\n */\n public setServiceUrl(url: string) {\n this.serviceUrl = url;\n }\n\n /**\n * @returns {string}\n * @public\n * @memberof RecordingController\n */\n public getLocusUrl() {\n return this.locusUrl;\n }\n\n /**\n * @returns {string}\n * @public\n * @memberof RecordingController\n */\n public getLocusId() {\n return this.locusId;\n }\n\n /**\n * @returns {string}\n * @public\n * @memberof RecordingController\n */\n public getSessionId() {\n return this.sessionId;\n }\n\n /**\n * @returns {string}\n * @public\n * @memberof RecordingController\n */\n public getServiceUrl() {\n return this.serviceUrl;\n }\n\n /**\n * @returns {Array}\n * @public\n * @memberof RecordingController\n */\n public getDisplayHints() {\n return this.displayHints;\n }\n\n /**\n * @param {Object} options\n * @returns {void}\n * @private\n * @memberof RecordingController\n */\n private extract(options?: {\n serviceUrl?: string;\n sessionId: string;\n locusUrl: string;\n displayHints?: Array<string>;\n }) {\n this.setServiceUrl(options?.serviceUrl);\n this.setSessionId(options?.sessionId);\n this.setDisplayHints(options?.displayHints);\n this.setLocusUrl(options?.locusUrl);\n }\n\n /**\n * @param {RecordingAction} action\n * @param {RecordingType} recordingType\n * @private\n * @memberof RecordingController\n * @returns {Promise}\n */\n private recordingService(action: RecordingAction, recordingType: RecordingType): Promise<any> {\n // @ts-ignore\n return this.request.request({\n body: {\n meetingInfo: {\n locusSessionId: this.sessionId,\n },\n recording: {\n action: action.toLowerCase(),\n },\n recordingType,\n },\n uri: `${this.serviceUrl}/loci/${this.locusId}/recording`,\n method: HTTP_VERBS.PUT,\n });\n }\n\n /**\n * @param {RecordingAction} action\n * @private\n * @memberof RecordingController\n * @returns {Promise}\n */\n private recordingControls(action: RecordingAction): Promise<any> {\n const record = Util.deriveRecordingStates(action);\n\n LoggerProxy.logger.log(`RecordingController:index#recordingControls --> ${record}`);\n\n return this.request.locusDeltaRequest({\n uri: `${this.locusUrl}/${CONTROLS}`,\n body: {\n record,\n },\n method: HTTP_VERBS.PATCH,\n });\n }\n\n /**\n * @param {RecordingAction} action\n * @private\n * @memberof RecordingController\n * @returns {Promise}\n */\n private recordingFacade(action: RecordingAction): Promise<any> {\n const isPremiseRecordingEnabled = Util.isPremiseRecordingEnabled(\n this.displayHints,\n this.selfUserPolicies\n );\n LoggerProxy.logger.log(\n `RecordingController:index#recordingFacade --> recording action [${action}]`\n );\n\n let recordingType: RecordingType;\n if (isPremiseRecordingEnabled) {\n recordingType = RecordingType.Premise;\n } else {\n recordingType = RecordingType.Cloud;\n }\n\n // assumes action is proper cased (i.e., Example)\n if (Util?.[`canUser${action}`](this.displayHints, this.selfUserPolicies)) {\n if (this.serviceUrl) {\n return this.recordingService(action, recordingType);\n }\n\n return this.recordingControls(action);\n }\n\n return Promise.reject(\n new PermissionError(`${action} recording not allowed, due to moderator property.`)\n );\n }\n\n /**\n * @private\n * @memberof RecordingController\n * @returns {Promise}\n */\n public startRecording(): Promise<any> {\n return this.recordingFacade(RecordingAction.Start);\n }\n\n /**\n * @private\n * @memberof RecordingController\n * @returns {Promise}\n */\n public stopRecording(): Promise<any> {\n return this.recordingFacade(RecordingAction.Stop);\n }\n\n /**\n * @private\n * @memberof RecordingController\n * @returns {Promise}\n */\n public pauseRecording(): Promise<any> {\n return this.recordingFacade(RecordingAction.Pause);\n }\n\n /**\n * @private\n * @memberof RecordingController\n * @returns {Promise}\n */\n public resumeRecording(): Promise<any> {\n return this.recordingFacade(RecordingAction.Resume);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -58,6 +58,7 @@ declare const _default: {
58
58
  enableExtmap: boolean;
59
59
  enableAutomaticLLM: boolean;
60
60
  installedOrgID: any;
61
+ multipartSitePrefixList: string[];
61
62
  experimental: {
62
63
  enableMediaNegotiatedEvent: boolean;
63
64
  enableUnifiedMeetings: boolean;
@@ -293,6 +293,7 @@ export declare const EVENT_TRIGGERS: {
293
293
  MEETING_CAPTION_RECEIVED: string;
294
294
  MEETING_PARTICIPANT_REASON_CHANGED: string;
295
295
  MEETING_AI_ENABLE_REQUEST: string;
296
+ MEETING_SRTP_CIPHER_UPDATED: string;
296
297
  };
297
298
  export declare const EVENT_TYPES: {
298
299
  SELF: string;
@@ -884,6 +885,7 @@ export declare const DISPLAY_HINTS: {
884
885
  DISABLE_ATTENDEE_START_POLLING_QA: string;
885
886
  ATTENDEE_REQUEST_AI_ASSISTANT_ENABLED: string;
886
887
  ATTENDEE_REQUEST_AI_ASSISTANT_DECLINED_ALL: string;
888
+ ANONYMOUS_DISPLAY_NAMES_ENABLED: string;
887
889
  };
888
890
  export declare const INTERSTITIAL_DISPLAY_HINTS: string[];
889
891
  export declare const SELF_ROLES: {
@@ -1,4 +1,9 @@
1
1
  declare const ENABLED = "enabled";
2
2
  declare const CAN_SET = "canSet";
3
3
  declare const CAN_UNSET = "canUnset";
4
- export { ENABLED, CAN_SET, CAN_UNSET };
4
+ /**
5
+ * Body keys that represent audio controls. These do not support cross-locus
6
+ * authorization and must be sent directly to the current locus URL.
7
+ */
8
+ declare const AUDIO_CONTROL_BODY_KEYS: ReadonlySet<string>;
9
+ export { ENABLED, CAN_SET, CAN_UNSET, AUDIO_CONTROL_BODY_KEYS };
@@ -118,6 +118,16 @@ export default class ControlsOptionsManager {
118
118
  * @returns {Promise}
119
119
  */
120
120
  private setControls;
121
+ /**
122
+ * Sends a controls request to Locus. When authorizingLocusUrl is present in the body,
123
+ * we use a plain request() because the response contains the main session Locus DTO
124
+ * instead of the breakout we're in, so we don't want to parse it as a delta.
125
+ * Otherwise we use locusDeltaRequest() for normal delta processing.
126
+ *
127
+ * @param {Object} requestParams - The request parameters from getControlsRequestParams.
128
+ * @returns {Promise<any>}
129
+ */
130
+ private sendControlsRequest;
121
131
  /**
122
132
  * @public
123
133
  * @param {boolean} enabled
@@ -7,3 +7,4 @@ export declare const DataSetNames: {
7
7
  SELF: string;
8
8
  UNJOINED: string;
9
9
  };
10
+ export declare const DATA_SET_INIT_PRIORITY: string[];
@@ -43,17 +43,35 @@ type WebexRequestMethod = (options: Record<string, any>) => Promise<any>;
43
43
  export declare const LocusInfoUpdateType: {
44
44
  readonly OBJECTS_UPDATED: "OBJECTS_UPDATED";
45
45
  readonly MEETING_ENDED: "MEETING_ENDED";
46
+ readonly LOCUS_NOT_FOUND: "LOCUS_NOT_FOUND";
46
47
  };
47
48
  export type LocusInfoUpdateType = Enum<typeof LocusInfoUpdateType>;
48
- export type LocusInfoUpdateCallback = (updateType: LocusInfoUpdateType, data?: {
49
- updatedObjects: HashTreeObject[];
50
- }) => void;
49
+ interface LocusUpdatePayloads {
50
+ [LocusInfoUpdateType.OBJECTS_UPDATED]: {
51
+ updatedObjects: HashTreeObject[];
52
+ };
53
+ [LocusInfoUpdateType.MEETING_ENDED]: unknown;
54
+ [LocusInfoUpdateType.LOCUS_NOT_FOUND]: unknown;
55
+ }
56
+ export type LocusInfoUpdate = {
57
+ [K in keyof LocusUpdatePayloads]: {
58
+ updateType: K;
59
+ } & LocusUpdatePayloads[K];
60
+ }[keyof LocusUpdatePayloads];
61
+ export type LocusInfoUpdateCallback = (update: LocusInfoUpdate) => void;
51
62
  /**
52
63
  * This error is thrown if we receive information that the meeting has ended while we're processing some hash messages.
53
64
  * It's handled internally by HashTreeParser and results in MEETING_ENDED being sent up.
54
65
  */
55
66
  export declare class MeetingEndedError extends Error {
56
67
  }
68
+ /**
69
+ * This error is thrown when a 404 is received from Locus hash tree endpoints, indicating that the locus URL
70
+ * is no longer valid (e.g. participant moved to a breakout room, or meeting ended).
71
+ * It's handled internally by HashTreeParser and results in LOCUS_NOT_FOUND being sent up.
72
+ */
73
+ export declare class LocusNotFoundError extends Error {
74
+ }
57
75
  /**
58
76
  * Parses hash tree eventing locus data
59
77
  */
@@ -67,6 +85,10 @@ declare class HashTreeParser {
67
85
  heartbeatIntervalMs?: number;
68
86
  private excludedDataSets;
69
87
  state: 'active' | 'stopped';
88
+ private syncQueue;
89
+ private isSyncInProgress;
90
+ private isSyncAllInProgress;
91
+ private syncQueueProcessingPromise;
70
92
  /**
71
93
  * Constructor for HashTreeParser
72
94
  * @param {Object} options
@@ -120,14 +142,6 @@ declare class HashTreeParser {
120
142
  * @returns {Promise}
121
143
  */
122
144
  private initializeNewVisibleDataSet;
123
- /**
124
- * Sends a special sync request to Locus with all leaves empty - this is a way to get all the data for a given dataset.
125
- *
126
- * @param {string} datasetName - name of the dataset for which to send the request
127
- * @param {string} debugText - text to include in logs
128
- * @returns {Promise}
129
- */
130
- private sendInitializationSyncRequestToLocus;
131
145
  /**
132
146
  * Queries Locus for all up-to-date information about all visible data sets
133
147
  *
@@ -193,6 +207,13 @@ declare class HashTreeParser {
193
207
  * @returns {void}
194
208
  */
195
209
  private handleRootHashHeartBeatMessage;
210
+ /**
211
+ * Handles known errors that can happen during syncs
212
+ *
213
+ * @param {any} error - The error to handle
214
+ * @returns {boolean} true if the error was recognized and handled, false otherwise
215
+ */
216
+ private handleSyncErrors;
196
217
  /**
197
218
  * Asynchronously initializes new visible data sets
198
219
  *
@@ -228,6 +249,14 @@ declare class HashTreeParser {
228
249
  * @returns {void}
229
250
  */
230
251
  private updateDataSetInfo;
252
+ /**
253
+ * Updates the leaf count for a data set, resizing its hash tree accordingly.
254
+ *
255
+ * @param {InternalDataSet} dataSet - The data set to update
256
+ * @param {number} newLeafCount - The new leaf count
257
+ * @returns {void}
258
+ */
259
+ private updateDataSetLeafCount;
231
260
  /**
232
261
  * Checks for changes in the visible data sets based on the updated objects.
233
262
  * @param {HashTreeObject[]} updatedObjects - The list of updated hash tree objects.
@@ -298,11 +327,35 @@ declare class HashTreeParser {
298
327
  * Performs a sync for the given data set.
299
328
  *
300
329
  * @param {InternalDataSet} dataSet - The data set to sync
301
- * @param {string} rootHash - Our current root hash for this data set
302
330
  * @param {string} reason - The reason for the sync (used for logging)
331
+ * @param {boolean} [isInitialization] - Whether this is an initialization sync (sends empty leaves data instead of comparing hashes)
303
332
  * @returns {Promise<void>}
304
333
  */
305
334
  private performSync;
335
+ /**
336
+ * Enqueues a sync for the given data set. If the data set is already in the queue, the request is ignored.
337
+ * This ensures that all syncs are executed sequentially and no more than 1 sync runs at a time.
338
+ *
339
+ * @param {string} dataSetName - The name of the data set to sync
340
+ * @param {string} reason - The reason for the sync (used for logging)
341
+ * @param {boolean} [isInitialization=false] - Whether this is an initialization sync (uses empty leaves data instead of hash comparison)
342
+ * @returns {void}
343
+ */
344
+ private enqueueSyncForDataset;
345
+ /**
346
+ * Processes the sync queue sequentially. Only one instance of this method runs at a time.
347
+ *
348
+ * @returns {Promise<void>}
349
+ */
350
+ private processSyncQueue;
351
+ /**
352
+ * Syncs all data sets that have hash trees, one by one in sequence, using the priority order
353
+ * provided by sortByInitPriority(). Does nothing if the parser is stopped or if a syncAllDatasets
354
+ * call is already in progress.
355
+ *
356
+ * @returns {Promise<void>}
357
+ */
358
+ syncAllDatasets(): Promise<void>;
306
359
  /**
307
360
  * Runs the sync algorithm for the given data set.
308
361
  *
@@ -333,24 +386,38 @@ declare class HashTreeParser {
333
386
  */
334
387
  stop(): void;
335
388
  /**
336
- * Resumes the HashTreeParser that was previously stopped.
389
+ * Cleans up the HashTreeParser, stopping all timers and clearing all internal state.
390
+ * After calling this, the parser should not be used anymore.
391
+ * @returns {void}
392
+ */
393
+ cleanUp(): void;
394
+ /**
395
+ * Resumes the HashTreeParser that was previously stopped, using a hash tree message.
337
396
  * @param {HashTreeMessage} message - The message to resume with, it must contain metadata with visible data sets info
338
397
  * @returns {void}
339
398
  */
340
- resume(message: HashTreeMessage): void;
399
+ resumeFromMessage(message: HashTreeMessage): void;
400
+ /**
401
+ * Resumes the HashTreeParser that was previously stopped, using a Locus API response.
402
+ * Unlike resumeFromMessage(), this does not require metadata/dataSets in the input,
403
+ * as it fetches all necessary information from Locus via initializeFromGetLociResponse.
404
+ * @param {LocusDTO} locus - locus object from an API response
405
+ * @returns {Promise}
406
+ */
407
+ resumeFromApiResponse(locus: LocusDTO): Promise<void>;
341
408
  private checkForSentinelHttpResponse;
342
409
  /**
343
410
  * Gets the current hashes from the locus for a specific data set.
344
411
  * @param {string} dataSetName
345
412
  * @param {string} currentRootHash
346
- * @returns {string[]}
413
+ * @returns {Object|null} An object containing the hashes and leaf count, or null if the hashes match and no sync is needed
347
414
  */
348
415
  private getHashesFromLocus;
349
416
  /**
350
417
  * Sends a sync request to Locus for the specified data set.
351
418
  *
352
419
  * @param {InternalDataSet} dataSet The data set to sync.
353
- * @param {Record<number, LeafDataItem[]>} mismatchedLeavesData The mismatched leaves data to include in the sync request.
420
+ * @param {Object} options Either `{ isInitialization: true }` for init syncs (uses leafCount=1 with empty leaf data) or `{ mismatchedLeavesData }` for normal syncs.
354
421
  * @returns {Promise<HashTreeMessage|null>}
355
422
  */
356
423
  private sendSyncRequestToLocus;
@@ -20,3 +20,14 @@ export declare function isMetadata(object: HashTreeObject): boolean;
20
20
  * @returns {void}
21
21
  */
22
22
  export declare const deleteNestedObjectsWithHtMeta: (currentLocusPart: any, parent?: any, currentKey?: string | number) => void;
23
+ /**
24
+ * Reorders items so that those matching the given priority list come first (in priority order),
25
+ * followed by everything else in their original order.
26
+ *
27
+ * @param {Array<T>} items - The items to reorder
28
+ * @param {string[]} priority - Ordered list of names that should come first
29
+ * @returns {Array<T>} A new array with prioritized items first
30
+ */
31
+ export declare function sortByInitPriority<T extends {
32
+ name: string;
33
+ }>(items: T[], priority: string[]): T[];
@@ -16,6 +16,8 @@ export * as REACTIONS from './reactions/reactions';
16
16
  export * as sdkAnnotationTypes from './annotation/annotation.types';
17
17
  export * as MeetingInfoV2 from './meeting-info/meeting-info-v2';
18
18
  export { type Reaction } from './reactions/reactions.type';
19
+ export { SitePreferenceSelectOption } from './meetings/meetings.types';
20
+ export type { FetchSitePreferencesMeViaSiteOptions, SitePreferencesResponse, } from './meetings/meetings.types';
19
21
  export { CaptchaError, IntentToJoinError, JoinMeetingError, PasswordError, PermissionError, ReclaimHostIsHostAlreadyError, ReclaimHostNotAllowedError, ReclaimHostNotSupportedError, ReclaimHostEmptyWrongKeyError, Meeting, MeetingInfoUtil, JoinWebinarError, SdpResponseTimeoutError, };
20
22
  export { RemoteMedia } from './multistream/remoteMedia';
21
23
  export { default as TriggerProxy } from './common/events/trigger-proxy';
@@ -11,11 +11,11 @@ export default class LocusRetryStatusInterceptor extends Interceptor {
11
11
  */
12
12
  static create(): LocusRetryStatusInterceptor;
13
13
  /**
14
- * Handle response errors
15
- * @param {Object} options
16
- * @param {WebexHttpError} reason
17
- * @returns {Promise<WebexHttpError>}
14
+ * Check whether a URI is a Locus /hashtree or /sync endpoint.
15
+ * @param {string} uri
16
+ * @returns {boolean}
18
17
  */
18
+ private static isLocusHashtreeOrSync;
19
19
  onResponseError(options: any, reason: any): Promise<unknown>;
20
20
  /**
21
21
  * Handle retries for locus service unavailable errors