@webex/plugin-meetings 3.12.0-next.67 → 3.12.0-next.69
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/aiEnableRequest/index.js +1 -1
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/meeting/muteState.js +10 -1
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +2 -2
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/webinar/index.js +1 -1
- package/package.json +13 -13
- package/src/meeting/muteState.ts +10 -1
- package/src/meeting-info/meeting-info-v2.ts +4 -2
- package/test/unit/spec/meeting/muteState.js +78 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +19 -10
|
@@ -191,7 +191,7 @@ var AIEnableRequest = _webexCore.WebexPlugin.extend({
|
|
|
191
191
|
method: _constants.HTTP_VERBS.PUT
|
|
192
192
|
});
|
|
193
193
|
},
|
|
194
|
-
version: "3.12.0-next.
|
|
194
|
+
version: "3.12.0-next.69"
|
|
195
195
|
});
|
|
196
196
|
var _default = exports.default = AIEnableRequest;
|
|
197
197
|
//# sourceMappingURL=index.js.map
|
package/dist/breakouts/index.js
CHANGED
|
@@ -1133,7 +1133,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
1133
1133
|
this.trigger(_constants.BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);
|
|
1134
1134
|
}
|
|
1135
1135
|
},
|
|
1136
|
-
version: "3.12.0-next.
|
|
1136
|
+
version: "3.12.0-next.69"
|
|
1137
1137
|
});
|
|
1138
1138
|
var _default = exports.default = Breakouts;
|
|
1139
1139
|
//# sourceMappingURL=index.js.map
|
|
@@ -381,7 +381,7 @@ var SimultaneousInterpretation = _webexCore.WebexPlugin.extend({
|
|
|
381
381
|
throw error;
|
|
382
382
|
});
|
|
383
383
|
},
|
|
384
|
-
version: "3.12.0-next.
|
|
384
|
+
version: "3.12.0-next.69"
|
|
385
385
|
});
|
|
386
386
|
var _default = exports.default = SimultaneousInterpretation;
|
|
387
387
|
//# sourceMappingURL=index.js.map
|
|
@@ -18,7 +18,7 @@ var SILanguage = _webexCore.WebexPlugin.extend({
|
|
|
18
18
|
languageCode: 'number',
|
|
19
19
|
languageName: 'string'
|
|
20
20
|
},
|
|
21
|
-
version: "3.12.0-next.
|
|
21
|
+
version: "3.12.0-next.69"
|
|
22
22
|
});
|
|
23
23
|
var _default = exports.default = SILanguage;
|
|
24
24
|
//# sourceMappingURL=siLanguage.js.map
|
|
@@ -339,7 +339,16 @@ var MuteState = exports.MuteState = /*#__PURE__*/function () {
|
|
|
339
339
|
}
|
|
340
340
|
if (muted !== undefined) {
|
|
341
341
|
this.state.server.remoteMute = muted;
|
|
342
|
-
|
|
342
|
+
// BO->Main may replay a stale remoteMute=false from the locus cache.
|
|
343
|
+
// Only enforce the mute on muted=true (also locking client.localMute so a later stale
|
|
344
|
+
// false can't flip isMuted()), and never touch the stream on muted=false — the
|
|
345
|
+
// legitimate server-driven unmute path is LOCAL_UNMUTE_REQUIRED. Always sync client
|
|
346
|
+
// intent back so other participants' tiles still show the mute icon.
|
|
347
|
+
if (muted) {
|
|
348
|
+
this.state.client.localMute = true;
|
|
349
|
+
this.muteLocalStream(meeting, true, 'remotelyMuted');
|
|
350
|
+
}
|
|
351
|
+
this.applyClientStateToServer(meeting);
|
|
343
352
|
}
|
|
344
353
|
}
|
|
345
354
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_loggerProxy","_interopRequireDefault","require","_parameter","_util","_constants","createMuteState","exports","type","meeting","enabled","LoggerProxy","logger","info","concat","id","muteState","MuteState","_meeting$remoteVideoM","_meeting$unmuteVideoA","_classCallCheck2","default","_defineProperty2","AUDIO","VIDEO","ParameterError","ignoreMuteStateChange","state","client","localMute","server","remoteMute","remoteMuted","remoteVideoMuted","unmuteAllowed","unmuteVideoAllowed","syncToServerInProgress","_createClass2","key","value","init","_meeting$mediaPropert","_meeting$mediaPropert2","applyUnmuteAllowedToStream","muteLocalStream","initialMute","mediaProperties","audioStream","muted","videoStream","undefined","applyClientStateToServer","handleLocalStreamChange","enable","mute","reason","_meeting$mediaPropert3","setServerMuted","_meeting$mediaPropert4","handleLocalStreamMuteStateChange","newMuteState","userMuteState","systemMuteState","_meeting$mediaPropert5","_meeting$mediaPropert6","_meeting$mediaPropert7","userMuted","systemMuted","_meeting$mediaPropert8","_meeting$mediaPropert9","_meeting$mediaPropert0","applyClientStateLocally","getClientLocalMuteState","_this","localMuteState","localMuteRequiresSync","remoteMuteRequiresSync","localMuteSyncPromise","sendLocalMuteRequestToServer","_promise","resolve","then","sendRemoteMuteRequestToServer","catch","e","warn","_this2","audioMuted","videoMuted","MeetingUtil","remoteUpdateAudioVideo","response","updateLocusFromApiResponse","remoteUpdateError","reject","_this3","members","muteMember","selfId","_meeting$mediaPropert1","setUnmuteAllowed","_meeting$mediaPropert10","handleServerRemoteMuteUpdate","handleServerLocalUnmuteRequired","_meeting$mediaPropert11","_meeting$mediaPropert12","isMuted","isRemotelyMuted","isUnmuteAllowed","isLocallyMuted"],"sources":["muteState.ts"],"sourcesContent":["import {ServerMuteReason} from '@webex/media-helpers';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport ParameterError from '../common/errors/parameter';\nimport MeetingUtil from './util';\nimport {AUDIO, VIDEO} from '../constants';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const createMuteState = (type, meeting, enabled: boolean) => {\n // todo: remove the meeting argument (SPARK-399695)\n\n LoggerProxy.logger.info(\n `Meeting:muteState#createMuteState --> ${type}: creating MuteState for meeting id ${meeting?.id}`\n );\n\n const muteState = new MuteState(type, meeting, enabled);\n\n return muteState;\n};\n\n/** The purpose of this class is to manage the local and remote mute state and make sure that the server state always matches\n the last requested state by the client.\n\n More info about Locus muting API: https://sqbu-github.cisco.com/pages/WebExSquared/locus/guides/mute.html#\n\n This class is exported only for unit tests. It should never be instantiated directly with new MuteState(), instead createMuteState() should be called\n*/\nexport class MuteState {\n state: {\n client: {\n enabled: boolean; // indicates if audio/video is enabled at all or not\n localMute: boolean;\n };\n server: {localMute: boolean; remoteMute: boolean; unmuteAllowed: boolean};\n syncToServerInProgress: boolean;\n };\n\n type: any;\n ignoreMuteStateChange: boolean;\n\n /**\n * Constructor\n *\n * @param {String} type - audio or video\n * @param {Object} meeting - the meeting object (used for reading current remote mute status)\n * @param {boolean} enabled - whether the client audio/video is enabled at all\n */\n constructor(type: string, meeting: any, enabled: boolean) {\n if (type !== AUDIO && type !== VIDEO) {\n throw new ParameterError('Mute state is designed for handling audio or video only');\n }\n this.type = type;\n this.ignoreMuteStateChange = false;\n this.state = {\n client: {\n enabled,\n localMute: true,\n },\n server: {\n localMute: true,\n // because remoteVideoMuted and unmuteVideoAllowed are updated seperately, they might be undefined\n remoteMute: type === AUDIO ? meeting.remoteMuted : meeting.remoteVideoMuted ?? false,\n unmuteAllowed: type === AUDIO ? meeting.unmuteAllowed : meeting.unmuteVideoAllowed ?? true,\n },\n syncToServerInProgress: false,\n };\n }\n\n /**\n * Starts the mute state machine. Needs to be called after a new MuteState instance is created.\n *\n * @param {Object} meeting - the meeting object\n * @returns {void}\n */\n public init(meeting: any) {\n this.applyUnmuteAllowedToStream(meeting);\n\n // if we are remotely muted, we need to apply that to the local stream now (mute on-entry)\n if (this.state.server.remoteMute) {\n this.muteLocalStream(meeting, this.state.server.remoteMute, 'remotelyMuted');\n }\n\n const initialMute =\n this.type === AUDIO\n ? meeting.mediaProperties.audioStream?.muted\n : meeting.mediaProperties.videoStream?.muted;\n\n LoggerProxy.logger.info(\n `Meeting:muteState#init --> ${this.type}: local stream initial mute state: ${initialMute}`\n );\n\n if (initialMute !== undefined) {\n this.state.client.localMute = initialMute;\n } else {\n // there is no stream, so it's like we are locally muted\n // (this is important especially for transcoded meetings, in which the SDP m-line direction always stays \"sendrecv\")\n this.state.client.localMute = true;\n }\n this.applyClientStateToServer(meeting);\n }\n\n /**\n * This method needs to be called whenever the local audio/video stream has changed.\n * It reapplies the remote mute state onto the new stream and also reads the current\n * local mute state from the stream and updates the internal state machine and sends\n * any required requests to the server.\n *\n * @param {Object} meeting - the meeting object\n * @returns {void}\n */\n public handleLocalStreamChange(meeting: any) {\n return this.init(meeting);\n }\n\n /**\n * Enables/disables audio/video\n *\n * @param {Object} meeting - the meeting object\n * @param {boolean} enable\n * @returns {void}\n */\n public enable(meeting: any, enable: boolean) {\n if (enable !== this.state.client.enabled) {\n this.state.client.enabled = enable;\n\n this.applyClientStateToServer(meeting);\n }\n }\n\n /**\n * Mutes/unmutes local stream\n *\n * @param {Object} meeting - the meeting object\n * @param {Boolean} mute - true to mute the stream, false to unmute it\n * @param {ServerMuteReason} reason - reason for muting/unmuting\n * @returns {void}\n */\n private muteLocalStream(meeting: any, mute: boolean, reason: ServerMuteReason) {\n this.ignoreMuteStateChange = true;\n if (this.type === AUDIO) {\n meeting.mediaProperties.audioStream?.setServerMuted(mute, reason);\n } else {\n meeting.mediaProperties.videoStream?.setServerMuted(mute, reason);\n }\n this.ignoreMuteStateChange = false;\n }\n\n /**\n * This method should be called when the local stream mute state is changed\n * @public\n * @memberof MuteState\n * @param {Object} [meeting] the meeting object\n * @returns {void}\n */\n public handleLocalStreamMuteStateChange(meeting?: any) {\n if (this.ignoreMuteStateChange) {\n return;\n }\n\n // either user or system may have triggered a mute state change, but localMute should reflect both\n let newMuteState: boolean;\n let userMuteState: boolean;\n let systemMuteState: boolean;\n if (this.type === AUDIO) {\n newMuteState = meeting.mediaProperties.audioStream?.muted;\n userMuteState = meeting.mediaProperties.audioStream?.userMuted;\n systemMuteState = meeting.mediaProperties.audioStream?.systemMuted;\n } else {\n newMuteState = meeting.mediaProperties.videoStream?.muted;\n userMuteState = meeting.mediaProperties.videoStream?.userMuted;\n systemMuteState = meeting.mediaProperties.videoStream?.systemMuted;\n }\n\n LoggerProxy.logger.info(\n `Meeting:muteState#handleLocalStreamMuteStateChange --> ${this.type}: local stream new mute state: ${newMuteState} (user mute: ${userMuteState}, system mute: ${systemMuteState})`\n );\n\n this.state.client.localMute = newMuteState;\n\n this.applyClientStateToServer(meeting);\n }\n\n /**\n * Applies the current mute state to the local stream (by enabling or disabling it accordingly)\n *\n * @public\n * @param {Object} [meeting] the meeting object\n * @param {ServerMuteReason} reason - reason why we're applying our client state to the local stream\n * @memberof MuteState\n * @returns {void}\n */\n public applyClientStateLocally(meeting?: any, reason?: ServerMuteReason) {\n this.muteLocalStream(meeting, this.state.client.localMute, reason);\n }\n\n /** Returns true if client is locally muted - it takes into account not just the client local mute state,\n * but also whether audio/video is enabled at all\n *\n * @returns {boolean}\n */\n private getClientLocalMuteState() {\n return this.state.client.enabled ? this.state.client.localMute : true;\n }\n\n /**\n * Updates the server local and remote mute values so that they match the current client desired state.\n *\n * @private\n * @param {Object} [meeting] the meeting object\n * @memberof MuteState\n * @returns {void}\n */\n private applyClientStateToServer(meeting?: any) {\n if (this.state.syncToServerInProgress) {\n LoggerProxy.logger.info(\n `Meeting:muteState#applyClientStateToServer --> ${this.type}: request to server in progress, we need to wait for it to complete`\n );\n\n return;\n }\n\n const localMuteState = this.getClientLocalMuteState();\n const localMuteRequiresSync = localMuteState !== this.state.server.localMute;\n const remoteMuteRequiresSync = !localMuteState && this.state.server.remoteMute;\n\n LoggerProxy.logger.info(\n `Meeting:muteState#applyClientStateToServer --> ${this.type}: localMuteRequiresSync: ${localMuteRequiresSync} (${localMuteState} ?= ${this.state.server.localMute})`\n );\n LoggerProxy.logger.info(\n `Meeting:muteState#applyClientStateToServer --> ${this.type}: remoteMuteRequiresSync: ${remoteMuteRequiresSync}`\n );\n\n if (!localMuteRequiresSync && !remoteMuteRequiresSync) {\n LoggerProxy.logger.info(\n `Meeting:muteState#applyClientStateToServer --> ${this.type}: client state already matching server state, nothing to do`\n );\n\n return;\n }\n\n this.state.syncToServerInProgress = true;\n\n // first sync local mute with server\n const localMuteSyncPromise = localMuteRequiresSync\n ? this.sendLocalMuteRequestToServer(meeting)\n : Promise.resolve();\n\n localMuteSyncPromise\n .then(() =>\n // then follow it up with remote mute sync\n remoteMuteRequiresSync ? this.sendRemoteMuteRequestToServer(meeting) : Promise.resolve()\n )\n .then(() => {\n this.state.syncToServerInProgress = false;\n LoggerProxy.logger.info(\n `Meeting:muteState#applyClientStateToServer --> ${this.type}: sync with server completed`\n );\n\n // need to check if a new sync is required, because this.state.client may have changed while we were doing the current sync\n this.applyClientStateToServer(meeting);\n })\n .catch((e) => {\n this.state.syncToServerInProgress = false;\n\n LoggerProxy.logger.warn(\n `Meeting:muteState#applyClientStateToServer --> ${this.type}: error: ${e}`\n );\n\n // failed to apply client state to server, so revert stream mute state to server state\n this.muteLocalStream(\n meeting,\n this.state.server.localMute || this.state.server.remoteMute,\n 'clientRequestFailed'\n );\n });\n }\n\n /**\n * Sets the local mute value in the server\n *\n * @private\n * @param {Object} [meeting] the meeting object\n * @memberof MuteState\n * @returns {Promise}\n */\n private sendLocalMuteRequestToServer(meeting?: any) {\n const audioMuted = this.type === AUDIO ? this.getClientLocalMuteState() : undefined;\n const videoMuted = this.type === VIDEO ? this.getClientLocalMuteState() : undefined;\n\n LoggerProxy.logger.info(\n `Meeting:muteState#sendLocalMuteRequestToServer --> ${this.type}: sending local mute (audio=${audioMuted}, video=${videoMuted}) to server`\n );\n\n return MeetingUtil.remoteUpdateAudioVideo(meeting, audioMuted, videoMuted)\n .then((response) => {\n LoggerProxy.logger.info(\n `Meeting:muteState#sendLocalMuteRequestToServer --> ${this.type}: local mute (audio=${audioMuted}, video=${videoMuted}) applied to server`\n );\n\n this.state.server.localMute = this.type === AUDIO ? audioMuted : videoMuted;\n\n return MeetingUtil.updateLocusFromApiResponse(meeting, response);\n })\n .catch((remoteUpdateError) => {\n LoggerProxy.logger.warn(\n `Meeting:muteState#sendLocalMuteRequestToServer --> ${this.type}: failed to apply local mute (audio=${audioMuted}, video=${videoMuted}) to server: ${remoteUpdateError}`\n );\n\n return Promise.reject(remoteUpdateError);\n });\n }\n\n /**\n * Sets the remote mute value in the server\n *\n * @private\n * @param {Object} [meeting] the meeting object\n * @memberof MuteState\n * @returns {Promise}\n */\n private sendRemoteMuteRequestToServer(meeting?: any) {\n const remoteMute = this.getClientLocalMuteState();\n\n LoggerProxy.logger.info(\n `Meeting:muteState#sendRemoteMuteRequestToServer --> ${this.type}: sending remote mute:${remoteMute} to server`\n );\n\n return meeting.members\n .muteMember(meeting.members.selfId, remoteMute, this.type === AUDIO)\n .then(() => {\n LoggerProxy.logger.info(\n `Meeting:muteState#sendRemoteMuteRequestToServer --> ${this.type}: remote mute:${remoteMute} applied to server`\n );\n\n this.state.server.remoteMute = remoteMute;\n })\n .catch((remoteUpdateError) => {\n LoggerProxy.logger.warn(\n `Meeting:muteState#sendRemoteMuteRequestToServer --> ${this.type}: failed to apply remote mute ${remoteMute} to server: ${remoteUpdateError}`\n );\n\n return Promise.reject(remoteUpdateError);\n });\n }\n\n /** Applies the current value for unmute allowed to the underlying stream\n *\n * @param {Meeting} meeting\n * @returns {void}\n */\n private applyUnmuteAllowedToStream(meeting: any) {\n if (this.type === AUDIO) {\n meeting.mediaProperties.audioStream?.setUnmuteAllowed(this.state.server.unmuteAllowed);\n } else {\n meeting.mediaProperties.videoStream?.setUnmuteAllowed(this.state.server.unmuteAllowed);\n }\n }\n\n /**\n * This method should be called whenever the server remote mute state is changed\n *\n * @public\n * @memberof MuteState\n * @param {Meeting} meeting\n * @param {Boolean} [muted] true if user is remotely muted, false otherwise\n * @param {Boolean} [unmuteAllowed] indicates if user is allowed to unmute self (false when \"hard mute\" feature is used)\n * @returns {undefined}\n */\n public handleServerRemoteMuteUpdate(meeting: any, muted?: boolean, unmuteAllowed?: boolean) {\n LoggerProxy.logger.info(\n `Meeting:muteState#handleServerRemoteMuteUpdate --> ${this.type}: updating server remoteMute to (${muted})`\n );\n if (unmuteAllowed !== undefined) {\n this.state.server.unmuteAllowed = unmuteAllowed;\n this.applyUnmuteAllowedToStream(meeting);\n }\n if (muted !== undefined) {\n this.state.server.remoteMute = muted;\n this.muteLocalStream(meeting, muted, 'remotelyMuted');\n }\n }\n\n /**\n * This method should be called whenever we receive from the server a requirement to locally unmute\n *\n * @public\n * @memberof MuteState\n * @param {Object} [meeting] the meeting object\n * @param {Boolean} [unmuteAllowed] whether the user is allowed to unmute self\n * @returns {undefined}\n */\n public handleServerLocalUnmuteRequired(meeting: any, unmuteAllowed: boolean) {\n if (!this.state.client.enabled) {\n LoggerProxy.logger.warn(\n `Meeting:muteState#handleServerLocalUnmuteRequired --> ${this.type}: localAudioUnmuteRequired received while ${this.type} is disabled -> local unmute will not result in ${this.type} being sent`\n );\n } else {\n LoggerProxy.logger.info(\n `Meeting:muteState#handleServerLocalUnmuteRequired --> ${this.type}: localAudioUnmuteRequired received -> doing local unmute (unmuteAllowed=${unmuteAllowed})`\n );\n }\n\n // todo: I'm seeing \"you can now unmute yourself \" popup when this happens - but same thing happens on web.w.c so we can ignore for now\n this.state.server.remoteMute = false;\n this.state.server.unmuteAllowed = unmuteAllowed;\n\n this.applyUnmuteAllowedToStream(meeting);\n\n // change user mute state to false, but keep localMute true if overall mute state is still true\n this.muteLocalStream(meeting, false, 'localUnmuteRequired');\n if (this.type === AUDIO) {\n this.state.client.localMute = meeting.mediaProperties.audioStream?.muted;\n } else {\n this.state.client.localMute = meeting.mediaProperties.videoStream?.muted;\n }\n\n this.applyClientStateToServer(meeting);\n }\n\n /**\n * Returns true if the user is locally or remotely muted.\n * It only checks the mute status, ignoring the fact whether audio/video is enabled.\n *\n * @public\n * @memberof MuteState\n * @returns {Boolean}\n */\n public isMuted() {\n return (\n this.state.client.localMute || this.state.server.localMute || this.state.server.remoteMute\n );\n }\n\n /**\n * Returns true if the user is remotely muted\n *\n * @public\n * @memberof MuteState\n * @returns {Boolean}\n */\n public isRemotelyMuted() {\n return this.state.server.remoteMute;\n }\n\n /**\n * Returns true if unmute is allowed\n *\n * @public\n * @memberof MuteState\n * @returns {Boolean}\n */\n public isUnmuteAllowed() {\n return this.state.server.unmuteAllowed;\n }\n\n /**\n * Returns true if the user is locally muted or audio/video is disabled\n *\n * @public\n * @memberof MuteState\n * @returns {Boolean}\n */\n public isLocallyMuted() {\n return this.getClientLocalMuteState();\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_loggerProxy","_interopRequireDefault","require","_parameter","_util","_constants","createMuteState","exports","type","meeting","enabled","LoggerProxy","logger","info","concat","id","muteState","MuteState","_meeting$remoteVideoM","_meeting$unmuteVideoA","_classCallCheck2","default","_defineProperty2","AUDIO","VIDEO","ParameterError","ignoreMuteStateChange","state","client","localMute","server","remoteMute","remoteMuted","remoteVideoMuted","unmuteAllowed","unmuteVideoAllowed","syncToServerInProgress","_createClass2","key","value","init","_meeting$mediaPropert","_meeting$mediaPropert2","applyUnmuteAllowedToStream","muteLocalStream","initialMute","mediaProperties","audioStream","muted","videoStream","undefined","applyClientStateToServer","handleLocalStreamChange","enable","mute","reason","_meeting$mediaPropert3","setServerMuted","_meeting$mediaPropert4","handleLocalStreamMuteStateChange","newMuteState","userMuteState","systemMuteState","_meeting$mediaPropert5","_meeting$mediaPropert6","_meeting$mediaPropert7","userMuted","systemMuted","_meeting$mediaPropert8","_meeting$mediaPropert9","_meeting$mediaPropert0","applyClientStateLocally","getClientLocalMuteState","_this","localMuteState","localMuteRequiresSync","remoteMuteRequiresSync","localMuteSyncPromise","sendLocalMuteRequestToServer","_promise","resolve","then","sendRemoteMuteRequestToServer","catch","e","warn","_this2","audioMuted","videoMuted","MeetingUtil","remoteUpdateAudioVideo","response","updateLocusFromApiResponse","remoteUpdateError","reject","_this3","members","muteMember","selfId","_meeting$mediaPropert1","setUnmuteAllowed","_meeting$mediaPropert10","handleServerRemoteMuteUpdate","handleServerLocalUnmuteRequired","_meeting$mediaPropert11","_meeting$mediaPropert12","isMuted","isRemotelyMuted","isUnmuteAllowed","isLocallyMuted"],"sources":["muteState.ts"],"sourcesContent":["import {ServerMuteReason} from '@webex/media-helpers';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport ParameterError from '../common/errors/parameter';\nimport MeetingUtil from './util';\nimport {AUDIO, VIDEO} from '../constants';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const createMuteState = (type, meeting, enabled: boolean) => {\n // todo: remove the meeting argument (SPARK-399695)\n\n LoggerProxy.logger.info(\n `Meeting:muteState#createMuteState --> ${type}: creating MuteState for meeting id ${meeting?.id}`\n );\n\n const muteState = new MuteState(type, meeting, enabled);\n\n return muteState;\n};\n\n/** The purpose of this class is to manage the local and remote mute state and make sure that the server state always matches\n the last requested state by the client.\n\n More info about Locus muting API: https://sqbu-github.cisco.com/pages/WebExSquared/locus/guides/mute.html#\n\n This class is exported only for unit tests. It should never be instantiated directly with new MuteState(), instead createMuteState() should be called\n*/\nexport class MuteState {\n state: {\n client: {\n enabled: boolean; // indicates if audio/video is enabled at all or not\n localMute: boolean;\n };\n server: {localMute: boolean; remoteMute: boolean; unmuteAllowed: boolean};\n syncToServerInProgress: boolean;\n };\n\n type: any;\n ignoreMuteStateChange: boolean;\n\n /**\n * Constructor\n *\n * @param {String} type - audio or video\n * @param {Object} meeting - the meeting object (used for reading current remote mute status)\n * @param {boolean} enabled - whether the client audio/video is enabled at all\n */\n constructor(type: string, meeting: any, enabled: boolean) {\n if (type !== AUDIO && type !== VIDEO) {\n throw new ParameterError('Mute state is designed for handling audio or video only');\n }\n this.type = type;\n this.ignoreMuteStateChange = false;\n this.state = {\n client: {\n enabled,\n localMute: true,\n },\n server: {\n localMute: true,\n // because remoteVideoMuted and unmuteVideoAllowed are updated seperately, they might be undefined\n remoteMute: type === AUDIO ? meeting.remoteMuted : meeting.remoteVideoMuted ?? false,\n unmuteAllowed: type === AUDIO ? meeting.unmuteAllowed : meeting.unmuteVideoAllowed ?? true,\n },\n syncToServerInProgress: false,\n };\n }\n\n /**\n * Starts the mute state machine. Needs to be called after a new MuteState instance is created.\n *\n * @param {Object} meeting - the meeting object\n * @returns {void}\n */\n public init(meeting: any) {\n this.applyUnmuteAllowedToStream(meeting);\n\n // if we are remotely muted, we need to apply that to the local stream now (mute on-entry)\n if (this.state.server.remoteMute) {\n this.muteLocalStream(meeting, this.state.server.remoteMute, 'remotelyMuted');\n }\n\n const initialMute =\n this.type === AUDIO\n ? meeting.mediaProperties.audioStream?.muted\n : meeting.mediaProperties.videoStream?.muted;\n\n LoggerProxy.logger.info(\n `Meeting:muteState#init --> ${this.type}: local stream initial mute state: ${initialMute}`\n );\n\n if (initialMute !== undefined) {\n this.state.client.localMute = initialMute;\n } else {\n // there is no stream, so it's like we are locally muted\n // (this is important especially for transcoded meetings, in which the SDP m-line direction always stays \"sendrecv\")\n this.state.client.localMute = true;\n }\n this.applyClientStateToServer(meeting);\n }\n\n /**\n * This method needs to be called whenever the local audio/video stream has changed.\n * It reapplies the remote mute state onto the new stream and also reads the current\n * local mute state from the stream and updates the internal state machine and sends\n * any required requests to the server.\n *\n * @param {Object} meeting - the meeting object\n * @returns {void}\n */\n public handleLocalStreamChange(meeting: any) {\n return this.init(meeting);\n }\n\n /**\n * Enables/disables audio/video\n *\n * @param {Object} meeting - the meeting object\n * @param {boolean} enable\n * @returns {void}\n */\n public enable(meeting: any, enable: boolean) {\n if (enable !== this.state.client.enabled) {\n this.state.client.enabled = enable;\n\n this.applyClientStateToServer(meeting);\n }\n }\n\n /**\n * Mutes/unmutes local stream\n *\n * @param {Object} meeting - the meeting object\n * @param {Boolean} mute - true to mute the stream, false to unmute it\n * @param {ServerMuteReason} reason - reason for muting/unmuting\n * @returns {void}\n */\n private muteLocalStream(meeting: any, mute: boolean, reason: ServerMuteReason) {\n this.ignoreMuteStateChange = true;\n if (this.type === AUDIO) {\n meeting.mediaProperties.audioStream?.setServerMuted(mute, reason);\n } else {\n meeting.mediaProperties.videoStream?.setServerMuted(mute, reason);\n }\n this.ignoreMuteStateChange = false;\n }\n\n /**\n * This method should be called when the local stream mute state is changed\n * @public\n * @memberof MuteState\n * @param {Object} [meeting] the meeting object\n * @returns {void}\n */\n public handleLocalStreamMuteStateChange(meeting?: any) {\n if (this.ignoreMuteStateChange) {\n return;\n }\n\n // either user or system may have triggered a mute state change, but localMute should reflect both\n let newMuteState: boolean;\n let userMuteState: boolean;\n let systemMuteState: boolean;\n if (this.type === AUDIO) {\n newMuteState = meeting.mediaProperties.audioStream?.muted;\n userMuteState = meeting.mediaProperties.audioStream?.userMuted;\n systemMuteState = meeting.mediaProperties.audioStream?.systemMuted;\n } else {\n newMuteState = meeting.mediaProperties.videoStream?.muted;\n userMuteState = meeting.mediaProperties.videoStream?.userMuted;\n systemMuteState = meeting.mediaProperties.videoStream?.systemMuted;\n }\n\n LoggerProxy.logger.info(\n `Meeting:muteState#handleLocalStreamMuteStateChange --> ${this.type}: local stream new mute state: ${newMuteState} (user mute: ${userMuteState}, system mute: ${systemMuteState})`\n );\n\n this.state.client.localMute = newMuteState;\n\n this.applyClientStateToServer(meeting);\n }\n\n /**\n * Applies the current mute state to the local stream (by enabling or disabling it accordingly)\n *\n * @public\n * @param {Object} [meeting] the meeting object\n * @param {ServerMuteReason} reason - reason why we're applying our client state to the local stream\n * @memberof MuteState\n * @returns {void}\n */\n public applyClientStateLocally(meeting?: any, reason?: ServerMuteReason) {\n this.muteLocalStream(meeting, this.state.client.localMute, reason);\n }\n\n /** Returns true if client is locally muted - it takes into account not just the client local mute state,\n * but also whether audio/video is enabled at all\n *\n * @returns {boolean}\n */\n private getClientLocalMuteState() {\n return this.state.client.enabled ? this.state.client.localMute : true;\n }\n\n /**\n * Updates the server local and remote mute values so that they match the current client desired state.\n *\n * @private\n * @param {Object} [meeting] the meeting object\n * @memberof MuteState\n * @returns {void}\n */\n private applyClientStateToServer(meeting?: any) {\n if (this.state.syncToServerInProgress) {\n LoggerProxy.logger.info(\n `Meeting:muteState#applyClientStateToServer --> ${this.type}: request to server in progress, we need to wait for it to complete`\n );\n\n return;\n }\n\n const localMuteState = this.getClientLocalMuteState();\n const localMuteRequiresSync = localMuteState !== this.state.server.localMute;\n const remoteMuteRequiresSync = !localMuteState && this.state.server.remoteMute;\n\n LoggerProxy.logger.info(\n `Meeting:muteState#applyClientStateToServer --> ${this.type}: localMuteRequiresSync: ${localMuteRequiresSync} (${localMuteState} ?= ${this.state.server.localMute})`\n );\n LoggerProxy.logger.info(\n `Meeting:muteState#applyClientStateToServer --> ${this.type}: remoteMuteRequiresSync: ${remoteMuteRequiresSync}`\n );\n\n if (!localMuteRequiresSync && !remoteMuteRequiresSync) {\n LoggerProxy.logger.info(\n `Meeting:muteState#applyClientStateToServer --> ${this.type}: client state already matching server state, nothing to do`\n );\n\n return;\n }\n\n this.state.syncToServerInProgress = true;\n\n // first sync local mute with server\n const localMuteSyncPromise = localMuteRequiresSync\n ? this.sendLocalMuteRequestToServer(meeting)\n : Promise.resolve();\n\n localMuteSyncPromise\n .then(() =>\n // then follow it up with remote mute sync\n remoteMuteRequiresSync ? this.sendRemoteMuteRequestToServer(meeting) : Promise.resolve()\n )\n .then(() => {\n this.state.syncToServerInProgress = false;\n LoggerProxy.logger.info(\n `Meeting:muteState#applyClientStateToServer --> ${this.type}: sync with server completed`\n );\n\n // need to check if a new sync is required, because this.state.client may have changed while we were doing the current sync\n this.applyClientStateToServer(meeting);\n })\n .catch((e) => {\n this.state.syncToServerInProgress = false;\n\n LoggerProxy.logger.warn(\n `Meeting:muteState#applyClientStateToServer --> ${this.type}: error: ${e}`\n );\n\n // failed to apply client state to server, so revert stream mute state to server state\n this.muteLocalStream(\n meeting,\n this.state.server.localMute || this.state.server.remoteMute,\n 'clientRequestFailed'\n );\n });\n }\n\n /**\n * Sets the local mute value in the server\n *\n * @private\n * @param {Object} [meeting] the meeting object\n * @memberof MuteState\n * @returns {Promise}\n */\n private sendLocalMuteRequestToServer(meeting?: any) {\n const audioMuted = this.type === AUDIO ? this.getClientLocalMuteState() : undefined;\n const videoMuted = this.type === VIDEO ? this.getClientLocalMuteState() : undefined;\n\n LoggerProxy.logger.info(\n `Meeting:muteState#sendLocalMuteRequestToServer --> ${this.type}: sending local mute (audio=${audioMuted}, video=${videoMuted}) to server`\n );\n\n return MeetingUtil.remoteUpdateAudioVideo(meeting, audioMuted, videoMuted)\n .then((response) => {\n LoggerProxy.logger.info(\n `Meeting:muteState#sendLocalMuteRequestToServer --> ${this.type}: local mute (audio=${audioMuted}, video=${videoMuted}) applied to server`\n );\n\n this.state.server.localMute = this.type === AUDIO ? audioMuted : videoMuted;\n\n return MeetingUtil.updateLocusFromApiResponse(meeting, response);\n })\n .catch((remoteUpdateError) => {\n LoggerProxy.logger.warn(\n `Meeting:muteState#sendLocalMuteRequestToServer --> ${this.type}: failed to apply local mute (audio=${audioMuted}, video=${videoMuted}) to server: ${remoteUpdateError}`\n );\n\n return Promise.reject(remoteUpdateError);\n });\n }\n\n /**\n * Sets the remote mute value in the server\n *\n * @private\n * @param {Object} [meeting] the meeting object\n * @memberof MuteState\n * @returns {Promise}\n */\n private sendRemoteMuteRequestToServer(meeting?: any) {\n const remoteMute = this.getClientLocalMuteState();\n\n LoggerProxy.logger.info(\n `Meeting:muteState#sendRemoteMuteRequestToServer --> ${this.type}: sending remote mute:${remoteMute} to server`\n );\n\n return meeting.members\n .muteMember(meeting.members.selfId, remoteMute, this.type === AUDIO)\n .then(() => {\n LoggerProxy.logger.info(\n `Meeting:muteState#sendRemoteMuteRequestToServer --> ${this.type}: remote mute:${remoteMute} applied to server`\n );\n\n this.state.server.remoteMute = remoteMute;\n })\n .catch((remoteUpdateError) => {\n LoggerProxy.logger.warn(\n `Meeting:muteState#sendRemoteMuteRequestToServer --> ${this.type}: failed to apply remote mute ${remoteMute} to server: ${remoteUpdateError}`\n );\n\n return Promise.reject(remoteUpdateError);\n });\n }\n\n /** Applies the current value for unmute allowed to the underlying stream\n *\n * @param {Meeting} meeting\n * @returns {void}\n */\n private applyUnmuteAllowedToStream(meeting: any) {\n if (this.type === AUDIO) {\n meeting.mediaProperties.audioStream?.setUnmuteAllowed(this.state.server.unmuteAllowed);\n } else {\n meeting.mediaProperties.videoStream?.setUnmuteAllowed(this.state.server.unmuteAllowed);\n }\n }\n\n /**\n * This method should be called whenever the server remote mute state is changed\n *\n * @public\n * @memberof MuteState\n * @param {Meeting} meeting\n * @param {Boolean} [muted] true if user is remotely muted, false otherwise\n * @param {Boolean} [unmuteAllowed] indicates if user is allowed to unmute self (false when \"hard mute\" feature is used)\n * @returns {undefined}\n */\n public handleServerRemoteMuteUpdate(meeting: any, muted?: boolean, unmuteAllowed?: boolean) {\n LoggerProxy.logger.info(\n `Meeting:muteState#handleServerRemoteMuteUpdate --> ${this.type}: updating server remoteMute to (${muted})`\n );\n if (unmuteAllowed !== undefined) {\n this.state.server.unmuteAllowed = unmuteAllowed;\n this.applyUnmuteAllowedToStream(meeting);\n }\n if (muted !== undefined) {\n this.state.server.remoteMute = muted;\n // BO->Main may replay a stale remoteMute=false from the locus cache.\n // Only enforce the mute on muted=true (also locking client.localMute so a later stale\n // false can't flip isMuted()), and never touch the stream on muted=false — the\n // legitimate server-driven unmute path is LOCAL_UNMUTE_REQUIRED. Always sync client\n // intent back so other participants' tiles still show the mute icon.\n if (muted) {\n this.state.client.localMute = true;\n this.muteLocalStream(meeting, true, 'remotelyMuted');\n }\n this.applyClientStateToServer(meeting);\n }\n }\n\n /**\n * This method should be called whenever we receive from the server a requirement to locally unmute\n *\n * @public\n * @memberof MuteState\n * @param {Object} [meeting] the meeting object\n * @param {Boolean} [unmuteAllowed] whether the user is allowed to unmute self\n * @returns {undefined}\n */\n public handleServerLocalUnmuteRequired(meeting: any, unmuteAllowed: boolean) {\n if (!this.state.client.enabled) {\n LoggerProxy.logger.warn(\n `Meeting:muteState#handleServerLocalUnmuteRequired --> ${this.type}: localAudioUnmuteRequired received while ${this.type} is disabled -> local unmute will not result in ${this.type} being sent`\n );\n } else {\n LoggerProxy.logger.info(\n `Meeting:muteState#handleServerLocalUnmuteRequired --> ${this.type}: localAudioUnmuteRequired received -> doing local unmute (unmuteAllowed=${unmuteAllowed})`\n );\n }\n\n // todo: I'm seeing \"you can now unmute yourself \" popup when this happens - but same thing happens on web.w.c so we can ignore for now\n this.state.server.remoteMute = false;\n this.state.server.unmuteAllowed = unmuteAllowed;\n\n this.applyUnmuteAllowedToStream(meeting);\n\n // change user mute state to false, but keep localMute true if overall mute state is still true\n this.muteLocalStream(meeting, false, 'localUnmuteRequired');\n if (this.type === AUDIO) {\n this.state.client.localMute = meeting.mediaProperties.audioStream?.muted;\n } else {\n this.state.client.localMute = meeting.mediaProperties.videoStream?.muted;\n }\n\n this.applyClientStateToServer(meeting);\n }\n\n /**\n * Returns true if the user is locally or remotely muted.\n * It only checks the mute status, ignoring the fact whether audio/video is enabled.\n *\n * @public\n * @memberof MuteState\n * @returns {Boolean}\n */\n public isMuted() {\n return (\n this.state.client.localMute || this.state.server.localMute || this.state.server.remoteMute\n );\n }\n\n /**\n * Returns true if the user is remotely muted\n *\n * @public\n * @memberof MuteState\n * @returns {Boolean}\n */\n public isRemotelyMuted() {\n return this.state.server.remoteMute;\n }\n\n /**\n * Returns true if unmute is allowed\n *\n * @public\n * @memberof MuteState\n * @returns {Boolean}\n */\n public isUnmuteAllowed() {\n return this.state.server.unmuteAllowed;\n }\n\n /**\n * Returns true if the user is locally muted or audio/video is disabled\n *\n * @public\n * @memberof MuteState\n * @returns {Boolean}\n */\n public isLocallyMuted() {\n return this.getClientLocalMuteState();\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -37,7 +37,7 @@ var ADHOC_MEETING_DEFAULT_ERROR = 'Failed starting the adhoc meeting, Please con
|
|
|
37
37
|
var MEETING_IS_IN_PROGRESS_MESSAGE = 'Meeting is in progress';
|
|
38
38
|
var STATIC_MEETING_LINK_ALREADY_EXISTS_MESSAGE = 'Static meeting link already exists';
|
|
39
39
|
var FETCH_STATIC_MEETING_LINK = 'Meeting link does not exists for conversation';
|
|
40
|
-
var CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES = [423005, 423006];
|
|
40
|
+
var CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES = [423005, 423006, 423008];
|
|
41
41
|
var CAPTCHA_ERROR_REQUIRES_REGISTRATION_ID_CODES = [423007];
|
|
42
42
|
var POLICY_ERROR_CODES = [403049, 403104, 403103, 403048, 403102, 403101];
|
|
43
43
|
var JOIN_FORBIDDEN_CODES = [403003];
|
|
@@ -52,7 +52,7 @@ var JOIN_FORBIDDEN_CODES = [403003];
|
|
|
52
52
|
* 403137 - Registration ID verified failure
|
|
53
53
|
*
|
|
54
54
|
*/
|
|
55
|
-
var JOIN_WEBINAR_ERROR_CODES = [403021, 403022, 403024, 403137, 423007, 403026, 403037, 403137];
|
|
55
|
+
var JOIN_WEBINAR_ERROR_CODES = [403021, 403022, 403024, 403137, 423007, 403026, 403037, 403137, 403106];
|
|
56
56
|
|
|
57
57
|
/**
|
|
58
58
|
* Error to indicate that wbxappapi requires a password
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_lodash","_interopRequireDefault","require","_constants","_metrics","_constants2","_utilv","ownKeys","e","r","t","_Object$keys2","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","_Reflect$construct","constructor","Boolean","prototype","valueOf","call","PASSWORD_ERROR_DEFAULT_MESSAGE","CAPTCHA_ERROR_DEFAULT_MESSAGE","ADHOC_MEETING_DEFAULT_ERROR","MEETING_IS_IN_PROGRESS_MESSAGE","STATIC_MEETING_LINK_ALREADY_EXISTS_MESSAGE","FETCH_STATIC_MEETING_LINK","CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES","CAPTCHA_ERROR_REQUIRES_REGISTRATION_ID_CODES","POLICY_ERROR_CODES","JOIN_FORBIDDEN_CODES","JOIN_WEBINAR_ERROR_CODES","MeetingInfoV2PasswordError","exports","_Error","wbxAppApiErrorCode","meetingInfo","_this","message","undefined","_classCallCheck2","concat","name","sdkMessage","stack","Error","wbxAppApiCode","_inherits2","_createClass2","_wrapNativeSuper2","MeetingInfoV2AdhocMeetingError","_Error2","_this2","MeetingInfoV2PolicyError","_Error3","_this3","MeetingInfoV2CaptchaError","_Error4","captchaInfo","_this4","isPasswordRequired","includes","isRegistrationIdRequired","MeetingInfoV2JoinWebinarError","_Error5","_this5","MeetingInfoV2JoinForbiddenError","_Error6","_this6","MeetingInfoV2StaticLinkDoesNotExistError","_Error7","_this7","MeetingInfoV2MeetingIsInProgressError","_Error8","_this8","enable","MeetingInfoV2StaticMeetingLinkAlreadyExists","_Error9","_this9","MeetingInfoV2","webex","err","_err$body","body","code","_err$body2","_err$body3","_err$body4","_err$body4$data","_err$body5","Metrics","sendBehavioralMetric","BEHAVIORAL_METRICS","MEETING_INFO_POLICY_ERROR","data","_err$body6","_err$body7","_err$body8","_err$body9","_err$body9$data","_err$body0","JOIN_WEBINAR_ERROR","_err$body1","_err$body10","_err$body11","_err$body12","_err$body12$data","_err$body13","JOIN_FORBIDDEN_ERROR","key","value","fetchInfoOptions","destination","type","MeetingInfoUtil","getDestinationType","_createAdhocSpaceMeetingOrEnableStaticMeetingLink","_asyncToGenerator2","_regenerator","mark","_callee","conversationUrl","installedOrgID","_this0","enableStaticMeetingLink","classificationId","getInvitees","_args","wrap","_context","prev","next","particpants","invitees","participant","email","emailAddress","ciUserUuid","entryUUID","abrupt","request","uri","qs","includeParticipants","disableTransform","then","_ref","_conversation$partici","conversation","title","displayName","spaceUrl","url","keyUrl","encryptionKeyUrl","kroUrl","kmsResourceObjectUrl","participants","items","schedule","meetings","preferredWebexSite","method","HTTP_VERBS","POST","stop","createAdhocSpaceMeetingOrEnableStaticMeetingLink","_x","_x2","_createAdhocSpaceMeeting","_callee2","_this1","_context2","requestResult","ADHOC_MEETING_SUCCESS","catch","_err$body14","_err$body15","handlePolicyError","handleJoinWebinarError","handleForbiddenError","ADHOC_MEETING_FAILURE","reason","createAdhocSpaceMeeting","_x3","_x4","_x5","_fetchStaticMeetingLink","_callee3","_context3","FETCH_STATIC_MEETING_LINK_SUCCESS","statusCode","_err$body16","_err$body17","MEETING_LINK_DOES_NOT_EXIST_ERROR","FETCH_STATIC_MEETING_LINK_FAILURE","fetchStaticMeetingLink","_x6","_enableStaticMeetingLink","_callee4","_context4","ENABLE_STATIC_METTING_LINK_SUCCESS","_err$body18","_err$body19","MEETING_IS_IN_PROGRESS_ERROR","_err$body20","_err$body21","STATIC_MEETING_LINK_ALREADY_EXISTS_ERROR","ENABLE_STATIC_METTING_LINK_FAILURE","_x7","_disableStaticMeetingLink","_callee5","_context5","DISABLE_STATIC_MEETING_LINK_SUCCESS","_err$body22","_err$body23","DISABLE_STATIC_MEETING_LINK_FAILURE","disableStaticMeetingLink","_x8","_fetchMeetingInfo","_callee6","_this10","password","locusId","extraParams","options","registrationId","fullSiteUrl","meetingId","sendCAevents","destinationType","_destinationType$info","_destinationType$info2","requestOptions","directURI","_args6","_context6","sent","DESTINATION_TYPE","CONVERSATION_URL","config","experimental","enableAdhocMeetings","getRequestBody","disableWebRedirect","lodash","difference","_keys","DEFAULT_MEETING_INFO_REQUEST_BODY","FETCH_MEETING_INFO_V1_FAILURE","webExMeetingId","info","sipUri","getDirectMeetingInfoURI","service","WBXAPPAPI_SERVICE","resource","internal","newMetrics","submitInternalEvent","submitClientEvent","response","_response$body","_response$body2","_response$body3","payload","identifiers","meetingLookupUrl","webexConferenceIdStr","confIdStr","confID","globalMeetingId","FETCH_MEETING_INFO_V1_SUCCESS","rawError","_err$body24","_err$body25","_err$body25$data","VERIFY_PASSWORD_ERROR","_err$body26","VERIFY_CAPTCHA_ERROR","captchaId","captchaID","verificationImageURL","verificationAudioURL","refreshURL","fetchMeetingInfo","_x9"],"sources":["meeting-info-v2.ts"],"sourcesContent":["import lodash from 'lodash';\nimport {\n HTTP_VERBS,\n DESTINATION_TYPE,\n WBXAPPAPI_SERVICE,\n DEFAULT_MEETING_INFO_REQUEST_BODY,\n} from '../constants';\nimport Metrics from '../metrics';\nimport BEHAVIORAL_METRICS from '../metrics/constants';\n\nimport MeetingInfoUtil from './utilv2';\n\nconst PASSWORD_ERROR_DEFAULT_MESSAGE =\n 'Password required. Call fetchMeetingInfo() with password argument';\nconst CAPTCHA_ERROR_DEFAULT_MESSAGE =\n 'Captcha required. Call fetchMeetingInfo() with captchaInfo argument';\nconst ADHOC_MEETING_DEFAULT_ERROR =\n 'Failed starting the adhoc meeting, Please contact support team ';\nconst MEETING_IS_IN_PROGRESS_MESSAGE = 'Meeting is in progress';\nconst STATIC_MEETING_LINK_ALREADY_EXISTS_MESSAGE = 'Static meeting link already exists';\nconst FETCH_STATIC_MEETING_LINK = 'Meeting link does not exists for conversation';\nconst CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES = [423005, 423006];\nconst CAPTCHA_ERROR_REQUIRES_REGISTRATION_ID_CODES = [423007];\n\nconst POLICY_ERROR_CODES = [403049, 403104, 403103, 403048, 403102, 403101];\nconst JOIN_FORBIDDEN_CODES = [403003];\n/**\n * 403021 - Meeting registration is required\n * 403022 - Meeting registration is still pending\n * 403024 - Meeting registration have been rejected\n * 403137 - Registration ID verified failure\n * 423007 - Registration ID input too many time,please input captcha code\n * 403026 - Need to join meeting via webcast\n * 403037 - Meeting join required registration ID\n * 403137 - Registration ID verified failure\n *\n */\nconst JOIN_WEBINAR_ERROR_CODES = [403021, 403022, 403024, 403137, 423007, 403026, 403037, 403137];\n\n/**\n * Error to indicate that wbxappapi requires a password\n */\nexport class MeetingInfoV2PasswordError extends Error {\n meetingInfo: any;\n sdkMessage: any;\n wbxAppApiCode: any;\n body: any;\n\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [meetingInfo]\n * @param {String} [message]\n */\n constructor(\n wbxAppApiErrorCode?: number,\n meetingInfo?: object,\n message: string = PASSWORD_ERROR_DEFAULT_MESSAGE\n ) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2PasswordError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n this.meetingInfo = meetingInfo;\n }\n}\n\n/**\n * Error generating a adhoc space meeting\n */\nexport class MeetingInfoV2AdhocMeetingError extends Error {\n sdkMessage: any;\n wbxAppApiCode: any;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {String} [message]\n */\n constructor(wbxAppApiErrorCode?: number, message: string = ADHOC_MEETING_DEFAULT_ERROR) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2AdhocMeetingError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n }\n}\n\n/**\n * Error preventing join because of a meeting policy\n */\nexport class MeetingInfoV2PolicyError extends Error {\n meetingInfo: object;\n sdkMessage: string;\n wbxAppApiCode: number;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [meetingInfo]\n * @param {String} [message]\n */\n constructor(wbxAppApiErrorCode?: number, meetingInfo?: object, message?: string) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2AdhocMeetingError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n this.meetingInfo = meetingInfo;\n }\n}\n\n/**\n * Error to indicate that preferred webex site not present to start adhoc meeting\n */\nexport class MeetingInfoV2CaptchaError extends Error {\n captchaInfo: any;\n isPasswordRequired: any;\n isRegistrationIdRequired: any;\n sdkMessage: any;\n wbxAppApiCode: any;\n body: any;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [captchaInfo]\n * @param {String} [message]\n */\n constructor(\n wbxAppApiErrorCode?: number,\n captchaInfo?: object,\n message: string = CAPTCHA_ERROR_DEFAULT_MESSAGE\n ) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2PasswordError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n this.isPasswordRequired = CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES.includes(wbxAppApiErrorCode);\n this.isRegistrationIdRequired =\n CAPTCHA_ERROR_REQUIRES_REGISTRATION_ID_CODES.includes(wbxAppApiErrorCode);\n this.captchaInfo = captchaInfo;\n }\n}\n\n/**\n * Error preventing join because of a webinar have some error\n */\nexport class MeetingInfoV2JoinWebinarError extends Error {\n meetingInfo: any;\n sdkMessage: any;\n wbxAppApiCode: any;\n body: any;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [meetingInfo]\n * @param {String} [message]\n */\n constructor(wbxAppApiErrorCode?: number, meetingInfo?: object, message?: string) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2JoinWebinarError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n this.meetingInfo = meetingInfo;\n }\n}\n\n/**\n * Error preventing join because of a forbidden error\n */\nexport class MeetingInfoV2JoinForbiddenError extends Error {\n meetingInfo: any;\n sdkMessage: any;\n wbxAppApiCode: any;\n body: any;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [meetingInfo]\n * @param {String} [message]\n */\n constructor(wbxAppApiErrorCode?: number, meetingInfo?: object, message?: string) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2JoinForbiddenError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n this.meetingInfo = meetingInfo;\n }\n}\n\n/**\n * Error fetching static link for a conversation when it does not exist\n */\nexport class MeetingInfoV2StaticLinkDoesNotExistError extends Error {\n sdkMessage: any;\n wbxAppApiCode: any;\n body: any;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {String} [message]\n */\n constructor(wbxAppApiErrorCode?: number, message: string = FETCH_STATIC_MEETING_LINK) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2StaticLinkDoesNotExistError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n }\n}\n\n/**\n * Error enabling/disabling static meeting link\n */\nexport class MeetingInfoV2MeetingIsInProgressError extends Error {\n sdkMessage: any;\n wbxAppApiCode: any;\n body: any;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {String} [message]\n * @param {Boolean} [enable]\n */\n constructor(\n wbxAppApiErrorCode?: number,\n message = MEETING_IS_IN_PROGRESS_MESSAGE,\n enable = false\n ) {\n super(`${message}, code=${wbxAppApiErrorCode}, enable=${enable}`);\n this.name = 'MeetingInfoV2MeetingIsInProgressError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n }\n}\n\n/**\n * Error enabling/disabling static meeting link\n */\nexport class MeetingInfoV2StaticMeetingLinkAlreadyExists extends Error {\n sdkMessage: any;\n wbxAppApiCode: any;\n body: any;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {String} [message]\n */\n constructor(wbxAppApiErrorCode?: number, message = STATIC_MEETING_LINK_ALREADY_EXISTS_MESSAGE) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2StaticMeetingLinkAlreadyExists';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n }\n}\n\n/**\n * @class MeetingInfo\n */\nexport default class MeetingInfoV2 {\n webex: any;\n\n /**\n *\n * @param {WebexSDK} webex\n */\n constructor(webex) {\n this.webex = webex;\n }\n\n /**\n * converts hydra id into conversation url and persons Id\n * @param {String} destination one of many different types of destinations to look up info for\n * @param {String} [type] to match up with the destination value\n * @returns {Promise} destination and type\n * @public\n * @memberof MeetingInfo\n */\n fetchInfoOptions(destination: string, type: string = null) {\n return MeetingInfoUtil.getDestinationType({\n destination,\n type,\n webex: this.webex,\n });\n }\n\n /**\n * Raises a MeetingInfoV2PolicyError for policy error codes\n * @param {any} err the error from the request\n * @returns {void}\n */\n handlePolicyError = (err) => {\n if (!err.body) {\n return;\n }\n\n if (POLICY_ERROR_CODES.includes(err.body?.code)) {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.MEETING_INFO_POLICY_ERROR, {\n code: err.body?.code,\n });\n\n throw new MeetingInfoV2PolicyError(\n err.body?.code,\n err.body?.data?.meetingInfo,\n err.body?.message\n );\n }\n };\n\n /**\n * Raises a handleJoinWebinarError for join webinar error codes\n * @param {any} err the error from the request\n * @returns {void}\n */\n handleJoinWebinarError = (err) => {\n if (!err.body) {\n return;\n }\n\n if (JOIN_WEBINAR_ERROR_CODES.includes(err.body?.code)) {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.JOIN_WEBINAR_ERROR, {\n code: err.body?.code,\n });\n\n throw new MeetingInfoV2JoinWebinarError(\n err.body?.code,\n err.body?.data?.meetingInfo,\n err.body?.message\n );\n }\n };\n\n /**\n * Raises a handleForbiddenError for join meeting forbidden error\n * @param {any} err the error from the request\n * @returns {void}\n */\n handleForbiddenError = (err) => {\n if (!err.body) {\n return;\n }\n\n if (JOIN_FORBIDDEN_CODES.includes(err.body?.code)) {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.JOIN_FORBIDDEN_ERROR, {\n code: err.body?.code,\n });\n\n throw new MeetingInfoV2JoinForbiddenError(\n err.body?.code,\n err.body?.data?.meetingInfo,\n err.body?.message\n );\n }\n };\n\n /**\n * helper function to either create an adhoc space meeting or enable static meeting link\n * @param {String} conversationUrl conversationUrl to start adhoc meeting on\n * @param {String} installedOrgID org ID of user's machine\n * @param {Boolean} enableStaticMeetingLink whether or not to enable static meeting link\n * @param {String} classificationId need it to start adhoc meeting if space support classification\n * @returns {Promise} returns a meeting info object\n * @public\n * @memberof MeetingInfo\n */\n async createAdhocSpaceMeetingOrEnableStaticMeetingLink(\n conversationUrl: string,\n installedOrgID?: string,\n // setting this to true enables static meeting link\n enableStaticMeetingLink = false,\n classificationId = undefined\n ) {\n const getInvitees = (particpants = []) => {\n const invitees = [];\n\n if (particpants) {\n particpants.forEach((participant) => {\n invitees.push({\n email: participant.emailAddress,\n ciUserUuid: participant.entryUUID,\n });\n });\n }\n\n return invitees;\n };\n\n return this.webex\n .request({uri: conversationUrl, qs: {includeParticipants: true}, disableTransform: true})\n .then(({body: conversation}) => {\n const body = {\n title: conversation.displayName,\n spaceUrl: conversation.url,\n keyUrl: conversation.encryptionKeyUrl,\n kroUrl: conversation.kmsResourceObjectUrl,\n invitees: getInvitees(conversation.participants?.items),\n installedOrgID,\n schedule: enableStaticMeetingLink,\n classificationId,\n };\n\n if (installedOrgID) {\n body.installedOrgID = installedOrgID;\n }\n\n const uri = this.webex.meetings.preferredWebexSite\n ? `https://${this.webex.meetings.preferredWebexSite}/wbxappapi/v2/meetings/spaceInstant`\n : '';\n\n return this.webex.request({\n method: HTTP_VERBS.POST,\n uri,\n body,\n });\n });\n }\n\n /**\n * Creates adhoc space meetings for a space by fetching the conversation infomation\n * @param {String} conversationUrl conversationUrl to start adhoc meeting on\n * @param {String} installedOrgID org ID of user's machine\n * @param {String} classificationId if space is support classification, it needs provide it during start instant meeting\n * @returns {Promise} returns a meeting info object\n * @public\n * @memberof MeetingInfo\n */\n async createAdhocSpaceMeeting(\n conversationUrl: string,\n installedOrgID?: string,\n classificationId?: string\n ) {\n if (!this.webex.meetings.preferredWebexSite) {\n throw Error('No preferred webex site found');\n }\n\n return this.createAdhocSpaceMeetingOrEnableStaticMeetingLink(\n conversationUrl,\n installedOrgID,\n false,\n classificationId\n )\n .then((requestResult) => {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_SUCCESS);\n\n return requestResult;\n })\n .catch((err) => {\n this.handlePolicyError(err);\n this.handleJoinWebinarError(err);\n this.handleForbiddenError(err);\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_FAILURE, {\n reason: err.message,\n stack: err.stack,\n });\n throw new MeetingInfoV2AdhocMeetingError(err.body?.code, err.body?.message);\n });\n }\n\n /**\n * Fetches details for static meeting link\n * @param {String} conversationUrl conversationUrl that's required to find static meeting link if it exists\n * @returns {Promise} returns a Promise\n * @public\n * @memberof MeetingInfo\n */\n async fetchStaticMeetingLink(conversationUrl: string) {\n if (!this.webex.meetings.preferredWebexSite) {\n throw Error('No preferred webex site found');\n }\n\n const body = {\n spaceUrl: conversationUrl,\n };\n\n const uri = this.webex.meetings.preferredWebexSite\n ? `https://${this.webex.meetings.preferredWebexSite}/wbxappapi/v2/meetings/spaceInstant/query`\n : '';\n\n return this.webex\n .request({\n method: HTTP_VERBS.POST,\n uri,\n body,\n })\n .then((requestResult) => {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_STATIC_MEETING_LINK_SUCCESS);\n\n return requestResult;\n })\n .catch((err) => {\n if (err?.statusCode === 403) {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.MEETING_LINK_DOES_NOT_EXIST_ERROR, {\n reason: err.message,\n stack: err.stack,\n });\n\n throw new MeetingInfoV2StaticLinkDoesNotExistError(err.body?.code, err.body?.message);\n }\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_STATIC_MEETING_LINK_FAILURE, {\n reason: err.message,\n stack: err.stack,\n });\n\n throw err;\n });\n }\n\n /**\n * Enables static meeting link\n * @param {String} conversationUrl conversationUrl that's required to enable static meeting link\n * @returns {Promise} returns a Promise\n * @public\n * @memberof MeetingInfo\n */\n async enableStaticMeetingLink(conversationUrl: string) {\n if (!this.webex.meetings.preferredWebexSite) {\n throw Error('No preferred webex site found');\n }\n\n return this.createAdhocSpaceMeetingOrEnableStaticMeetingLink(conversationUrl, undefined, true)\n .then((requestResult) => {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ENABLE_STATIC_METTING_LINK_SUCCESS);\n\n return requestResult;\n })\n .catch((err) => {\n if (err?.statusCode === 403) {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.MEETING_IS_IN_PROGRESS_ERROR, {\n reason: err.message,\n stack: err.stack,\n });\n\n throw new MeetingInfoV2MeetingIsInProgressError(err.body?.code, err.body?.message, true);\n }\n\n if (err?.statusCode === 409) {\n Metrics.sendBehavioralMetric(\n BEHAVIORAL_METRICS.STATIC_MEETING_LINK_ALREADY_EXISTS_ERROR,\n {\n reason: err.message,\n stack: err.stack,\n }\n );\n\n throw new MeetingInfoV2StaticMeetingLinkAlreadyExists(err.body?.code, err.body?.message);\n }\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ENABLE_STATIC_METTING_LINK_FAILURE, {\n reason: err.message,\n stack: err.stack,\n });\n\n throw err;\n });\n }\n\n /**\n * Disables static meeting link for given conversation url\n * @param {String} conversationUrl conversationUrl that's required to disable static meeting link if it exists\n * @returns {Promise} returns a Promise\n * @public\n * @memberof MeetingInfo\n */\n async disableStaticMeetingLink(conversationUrl: string) {\n if (!this.webex.meetings.preferredWebexSite) {\n throw Error('No preferred webex site found');\n }\n\n const body = {\n spaceUrl: conversationUrl,\n };\n\n const uri = this.webex.meetings.preferredWebexSite\n ? `https://${this.webex.meetings.preferredWebexSite}/wbxappapi/v2/meetings/spaceInstant/deletePersistentMeeting`\n : '';\n\n return this.webex\n .request({\n method: HTTP_VERBS.POST,\n uri,\n body,\n })\n .then((requestResult) => {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.DISABLE_STATIC_MEETING_LINK_SUCCESS);\n\n return requestResult;\n })\n .catch((err) => {\n if (err?.statusCode === 403) {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.MEETING_IS_IN_PROGRESS_ERROR, {\n reason: err.message,\n stack: err.stack,\n });\n\n throw new MeetingInfoV2MeetingIsInProgressError(err.body?.code, err.body?.message);\n }\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.DISABLE_STATIC_MEETING_LINK_FAILURE, {\n reason: err.message,\n stack: err.stack,\n });\n\n throw err;\n });\n }\n\n /**\n * Fetches meeting info from the server\n * @param {String} destination one of many different types of destinations to look up info for\n * @param {DESTINATION_TYPE} [type] to match up with the destination value\n * @param {String} password\n * @param {Object} captchaInfo\n * @param {String} captchaInfo.code\n * @param {String} captchaInfo.id\n * @param {String} installedOrgID org ID of user's machine\n * @param {String} locusId\n * @param {Object} extraParams\n * @param {Object} options\n * @param {String} registrationId\n * @param {String} fullSiteUrl\n * @param {String} classificationId\n * @returns {Promise} returns a meeting info object\n * @public\n * @memberof MeetingInfo\n */\n async fetchMeetingInfo(\n destination: string,\n type: DESTINATION_TYPE = null,\n password: string = null,\n captchaInfo: {\n code: string;\n id: string;\n } = null,\n installedOrgID = null,\n locusId = null,\n extraParams: object = {},\n options: {meetingId?: string; sendCAevents?: boolean} = {},\n registrationId: string = null,\n fullSiteUrl: string = null,\n classificationId: string = null\n ) {\n const {meetingId, sendCAevents} = options;\n\n const destinationType = await MeetingInfoUtil.getDestinationType({\n destination,\n type,\n webex: this.webex,\n });\n\n if (\n destinationType.type === DESTINATION_TYPE.CONVERSATION_URL &&\n this.webex.config.meetings.experimental.enableAdhocMeetings &&\n this.webex.meetings.preferredWebexSite\n ) {\n return this.createAdhocSpaceMeeting(\n destinationType.destination,\n installedOrgID,\n classificationId\n );\n }\n\n const body = await MeetingInfoUtil.getRequestBody({\n ...destinationType,\n password,\n captchaInfo,\n installedOrgID,\n locusId,\n extraParams,\n registrationId,\n disableWebRedirect: true,\n });\n\n // If the body only contains the default properties, we don't have enough to\n // fetch the meeting info so don't bother trying.\n if (\n !lodash.difference(Object.keys(body), Object.keys(DEFAULT_MEETING_INFO_REQUEST_BODY)).length\n ) {\n const err = new Error('Not enough information to fetch meeting info');\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_FAILURE, {\n reason: err.message,\n destinationType: destinationType?.type,\n webExMeetingId: destinationType?.info?.webExMeetingId,\n sipUri: destinationType?.info?.sipUri,\n });\n\n throw err;\n }\n\n const requestOptions: any = {\n method: HTTP_VERBS.POST,\n body,\n };\n\n const directURI = await MeetingInfoUtil.getDirectMeetingInfoURI(destinationType);\n\n if (fullSiteUrl) {\n requestOptions.uri = `https://${fullSiteUrl}/wbxappapi/v1/meetingInfo`;\n } else if (directURI) {\n requestOptions.uri = directURI;\n } else {\n requestOptions.service = WBXAPPAPI_SERVICE;\n requestOptions.resource = 'meetingInfo';\n }\n\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.request',\n });\n\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.request',\n options: {\n meetingId,\n },\n });\n }\n\n return this.webex\n .request(requestOptions)\n .then((response) => {\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response',\n });\n\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.response',\n payload: {\n identifiers: {\n meetingLookupUrl: response?.url,\n },\n },\n options: {\n meetingId,\n webexConferenceIdStr: response?.body?.confIdStr || response?.body?.confID,\n globalMeetingId: response?.body?.meetingId,\n },\n });\n }\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_SUCCESS);\n\n return response;\n })\n .catch((err) => {\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response',\n });\n\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.response',\n payload: {\n identifiers: {\n meetingLookupUrl: err?.url,\n },\n },\n options: {\n meetingId,\n rawError: err,\n },\n });\n }\n\n if (err?.statusCode === 403) {\n this.handlePolicyError(err);\n this.handleJoinWebinarError(err);\n this.handleForbiddenError(err);\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.VERIFY_PASSWORD_ERROR, {\n reason: err.message,\n stack: err.stack,\n });\n\n throw new MeetingInfoV2PasswordError(err.body?.code, err.body?.data?.meetingInfo);\n }\n if (err?.statusCode === 423) {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.VERIFY_CAPTCHA_ERROR, {\n reason: err.message,\n stack: err.stack,\n });\n\n throw new MeetingInfoV2CaptchaError(err.body?.code, {\n captchaId: err.body.captchaID,\n verificationImageURL: err.body.verificationImageURL,\n verificationAudioURL: err.body.verificationAudioURL,\n refreshURL: err.body.refreshURL,\n });\n }\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_FAILURE, {\n reason: err.message,\n stack: err.stack,\n });\n throw err;\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_lodash","_interopRequireDefault","require","_constants","_metrics","_constants2","_utilv","ownKeys","e","r","t","_Object$keys2","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","_Reflect$construct","constructor","Boolean","prototype","valueOf","call","PASSWORD_ERROR_DEFAULT_MESSAGE","CAPTCHA_ERROR_DEFAULT_MESSAGE","ADHOC_MEETING_DEFAULT_ERROR","MEETING_IS_IN_PROGRESS_MESSAGE","STATIC_MEETING_LINK_ALREADY_EXISTS_MESSAGE","FETCH_STATIC_MEETING_LINK","CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES","CAPTCHA_ERROR_REQUIRES_REGISTRATION_ID_CODES","POLICY_ERROR_CODES","JOIN_FORBIDDEN_CODES","JOIN_WEBINAR_ERROR_CODES","MeetingInfoV2PasswordError","exports","_Error","wbxAppApiErrorCode","meetingInfo","_this","message","undefined","_classCallCheck2","concat","name","sdkMessage","stack","Error","wbxAppApiCode","_inherits2","_createClass2","_wrapNativeSuper2","MeetingInfoV2AdhocMeetingError","_Error2","_this2","MeetingInfoV2PolicyError","_Error3","_this3","MeetingInfoV2CaptchaError","_Error4","captchaInfo","_this4","isPasswordRequired","includes","isRegistrationIdRequired","MeetingInfoV2JoinWebinarError","_Error5","_this5","MeetingInfoV2JoinForbiddenError","_Error6","_this6","MeetingInfoV2StaticLinkDoesNotExistError","_Error7","_this7","MeetingInfoV2MeetingIsInProgressError","_Error8","_this8","enable","MeetingInfoV2StaticMeetingLinkAlreadyExists","_Error9","_this9","MeetingInfoV2","webex","err","_err$body","body","code","_err$body2","_err$body3","_err$body4","_err$body4$data","_err$body5","Metrics","sendBehavioralMetric","BEHAVIORAL_METRICS","MEETING_INFO_POLICY_ERROR","data","_err$body6","_err$body7","_err$body8","_err$body9","_err$body9$data","_err$body0","JOIN_WEBINAR_ERROR","_err$body1","_err$body10","_err$body11","_err$body12","_err$body12$data","_err$body13","JOIN_FORBIDDEN_ERROR","key","value","fetchInfoOptions","destination","type","MeetingInfoUtil","getDestinationType","_createAdhocSpaceMeetingOrEnableStaticMeetingLink","_asyncToGenerator2","_regenerator","mark","_callee","conversationUrl","installedOrgID","_this0","enableStaticMeetingLink","classificationId","getInvitees","_args","wrap","_context","prev","next","particpants","invitees","participant","email","emailAddress","ciUserUuid","entryUUID","abrupt","request","uri","qs","includeParticipants","disableTransform","then","_ref","_conversation$partici","conversation","title","displayName","spaceUrl","url","keyUrl","encryptionKeyUrl","kroUrl","kmsResourceObjectUrl","participants","items","schedule","meetings","preferredWebexSite","method","HTTP_VERBS","POST","stop","createAdhocSpaceMeetingOrEnableStaticMeetingLink","_x","_x2","_createAdhocSpaceMeeting","_callee2","_this1","_context2","requestResult","ADHOC_MEETING_SUCCESS","catch","_err$body14","_err$body15","handlePolicyError","handleJoinWebinarError","handleForbiddenError","ADHOC_MEETING_FAILURE","reason","createAdhocSpaceMeeting","_x3","_x4","_x5","_fetchStaticMeetingLink","_callee3","_context3","FETCH_STATIC_MEETING_LINK_SUCCESS","statusCode","_err$body16","_err$body17","MEETING_LINK_DOES_NOT_EXIST_ERROR","FETCH_STATIC_MEETING_LINK_FAILURE","fetchStaticMeetingLink","_x6","_enableStaticMeetingLink","_callee4","_context4","ENABLE_STATIC_METTING_LINK_SUCCESS","_err$body18","_err$body19","MEETING_IS_IN_PROGRESS_ERROR","_err$body20","_err$body21","STATIC_MEETING_LINK_ALREADY_EXISTS_ERROR","ENABLE_STATIC_METTING_LINK_FAILURE","_x7","_disableStaticMeetingLink","_callee5","_context5","DISABLE_STATIC_MEETING_LINK_SUCCESS","_err$body22","_err$body23","DISABLE_STATIC_MEETING_LINK_FAILURE","disableStaticMeetingLink","_x8","_fetchMeetingInfo","_callee6","_this10","password","locusId","extraParams","options","registrationId","fullSiteUrl","meetingId","sendCAevents","destinationType","_destinationType$info","_destinationType$info2","requestOptions","directURI","_args6","_context6","sent","DESTINATION_TYPE","CONVERSATION_URL","config","experimental","enableAdhocMeetings","getRequestBody","disableWebRedirect","lodash","difference","_keys","DEFAULT_MEETING_INFO_REQUEST_BODY","FETCH_MEETING_INFO_V1_FAILURE","webExMeetingId","info","sipUri","getDirectMeetingInfoURI","service","WBXAPPAPI_SERVICE","resource","internal","newMetrics","submitInternalEvent","submitClientEvent","response","_response$body","_response$body2","_response$body3","payload","identifiers","meetingLookupUrl","webexConferenceIdStr","confIdStr","confID","globalMeetingId","FETCH_MEETING_INFO_V1_SUCCESS","rawError","_err$body24","_err$body25","_err$body25$data","VERIFY_PASSWORD_ERROR","_err$body26","VERIFY_CAPTCHA_ERROR","captchaId","captchaID","verificationImageURL","verificationAudioURL","refreshURL","fetchMeetingInfo","_x9"],"sources":["meeting-info-v2.ts"],"sourcesContent":["import lodash from 'lodash';\nimport {\n HTTP_VERBS,\n DESTINATION_TYPE,\n WBXAPPAPI_SERVICE,\n DEFAULT_MEETING_INFO_REQUEST_BODY,\n} from '../constants';\nimport Metrics from '../metrics';\nimport BEHAVIORAL_METRICS from '../metrics/constants';\n\nimport MeetingInfoUtil from './utilv2';\n\nconst PASSWORD_ERROR_DEFAULT_MESSAGE =\n 'Password required. Call fetchMeetingInfo() with password argument';\nconst CAPTCHA_ERROR_DEFAULT_MESSAGE =\n 'Captcha required. Call fetchMeetingInfo() with captchaInfo argument';\nconst ADHOC_MEETING_DEFAULT_ERROR =\n 'Failed starting the adhoc meeting, Please contact support team ';\nconst MEETING_IS_IN_PROGRESS_MESSAGE = 'Meeting is in progress';\nconst STATIC_MEETING_LINK_ALREADY_EXISTS_MESSAGE = 'Static meeting link already exists';\nconst FETCH_STATIC_MEETING_LINK = 'Meeting link does not exists for conversation';\nconst CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES = [423005, 423006, 423008];\nconst CAPTCHA_ERROR_REQUIRES_REGISTRATION_ID_CODES = [423007];\n\nconst POLICY_ERROR_CODES = [403049, 403104, 403103, 403048, 403102, 403101];\nconst JOIN_FORBIDDEN_CODES = [403003];\n/**\n * 403021 - Meeting registration is required\n * 403022 - Meeting registration is still pending\n * 403024 - Meeting registration have been rejected\n * 403137 - Registration ID verified failure\n * 423007 - Registration ID input too many time,please input captcha code\n * 403026 - Need to join meeting via webcast\n * 403037 - Meeting join required registration ID\n * 403137 - Registration ID verified failure\n *\n */\nconst JOIN_WEBINAR_ERROR_CODES = [\n 403021, 403022, 403024, 403137, 423007, 403026, 403037, 403137, 403106,\n];\n\n/**\n * Error to indicate that wbxappapi requires a password\n */\nexport class MeetingInfoV2PasswordError extends Error {\n meetingInfo: any;\n sdkMessage: any;\n wbxAppApiCode: any;\n body: any;\n\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [meetingInfo]\n * @param {String} [message]\n */\n constructor(\n wbxAppApiErrorCode?: number,\n meetingInfo?: object,\n message: string = PASSWORD_ERROR_DEFAULT_MESSAGE\n ) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2PasswordError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n this.meetingInfo = meetingInfo;\n }\n}\n\n/**\n * Error generating a adhoc space meeting\n */\nexport class MeetingInfoV2AdhocMeetingError extends Error {\n sdkMessage: any;\n wbxAppApiCode: any;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {String} [message]\n */\n constructor(wbxAppApiErrorCode?: number, message: string = ADHOC_MEETING_DEFAULT_ERROR) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2AdhocMeetingError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n }\n}\n\n/**\n * Error preventing join because of a meeting policy\n */\nexport class MeetingInfoV2PolicyError extends Error {\n meetingInfo: object;\n sdkMessage: string;\n wbxAppApiCode: number;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [meetingInfo]\n * @param {String} [message]\n */\n constructor(wbxAppApiErrorCode?: number, meetingInfo?: object, message?: string) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2AdhocMeetingError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n this.meetingInfo = meetingInfo;\n }\n}\n\n/**\n * Error to indicate that preferred webex site not present to start adhoc meeting\n */\nexport class MeetingInfoV2CaptchaError extends Error {\n captchaInfo: any;\n isPasswordRequired: any;\n isRegistrationIdRequired: any;\n sdkMessage: any;\n wbxAppApiCode: any;\n body: any;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [captchaInfo]\n * @param {String} [message]\n */\n constructor(\n wbxAppApiErrorCode?: number,\n captchaInfo?: object,\n message: string = CAPTCHA_ERROR_DEFAULT_MESSAGE\n ) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2PasswordError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n this.isPasswordRequired = CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES.includes(wbxAppApiErrorCode);\n this.isRegistrationIdRequired =\n CAPTCHA_ERROR_REQUIRES_REGISTRATION_ID_CODES.includes(wbxAppApiErrorCode);\n this.captchaInfo = captchaInfo;\n }\n}\n\n/**\n * Error preventing join because of a webinar have some error\n */\nexport class MeetingInfoV2JoinWebinarError extends Error {\n meetingInfo: any;\n sdkMessage: any;\n wbxAppApiCode: any;\n body: any;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [meetingInfo]\n * @param {String} [message]\n */\n constructor(wbxAppApiErrorCode?: number, meetingInfo?: object, message?: string) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2JoinWebinarError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n this.meetingInfo = meetingInfo;\n }\n}\n\n/**\n * Error preventing join because of a forbidden error\n */\nexport class MeetingInfoV2JoinForbiddenError extends Error {\n meetingInfo: any;\n sdkMessage: any;\n wbxAppApiCode: any;\n body: any;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [meetingInfo]\n * @param {String} [message]\n */\n constructor(wbxAppApiErrorCode?: number, meetingInfo?: object, message?: string) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2JoinForbiddenError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n this.meetingInfo = meetingInfo;\n }\n}\n\n/**\n * Error fetching static link for a conversation when it does not exist\n */\nexport class MeetingInfoV2StaticLinkDoesNotExistError extends Error {\n sdkMessage: any;\n wbxAppApiCode: any;\n body: any;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {String} [message]\n */\n constructor(wbxAppApiErrorCode?: number, message: string = FETCH_STATIC_MEETING_LINK) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2StaticLinkDoesNotExistError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n }\n}\n\n/**\n * Error enabling/disabling static meeting link\n */\nexport class MeetingInfoV2MeetingIsInProgressError extends Error {\n sdkMessage: any;\n wbxAppApiCode: any;\n body: any;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {String} [message]\n * @param {Boolean} [enable]\n */\n constructor(\n wbxAppApiErrorCode?: number,\n message = MEETING_IS_IN_PROGRESS_MESSAGE,\n enable = false\n ) {\n super(`${message}, code=${wbxAppApiErrorCode}, enable=${enable}`);\n this.name = 'MeetingInfoV2MeetingIsInProgressError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n }\n}\n\n/**\n * Error enabling/disabling static meeting link\n */\nexport class MeetingInfoV2StaticMeetingLinkAlreadyExists extends Error {\n sdkMessage: any;\n wbxAppApiCode: any;\n body: any;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {String} [message]\n */\n constructor(wbxAppApiErrorCode?: number, message = STATIC_MEETING_LINK_ALREADY_EXISTS_MESSAGE) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2StaticMeetingLinkAlreadyExists';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n }\n}\n\n/**\n * @class MeetingInfo\n */\nexport default class MeetingInfoV2 {\n webex: any;\n\n /**\n *\n * @param {WebexSDK} webex\n */\n constructor(webex) {\n this.webex = webex;\n }\n\n /**\n * converts hydra id into conversation url and persons Id\n * @param {String} destination one of many different types of destinations to look up info for\n * @param {String} [type] to match up with the destination value\n * @returns {Promise} destination and type\n * @public\n * @memberof MeetingInfo\n */\n fetchInfoOptions(destination: string, type: string = null) {\n return MeetingInfoUtil.getDestinationType({\n destination,\n type,\n webex: this.webex,\n });\n }\n\n /**\n * Raises a MeetingInfoV2PolicyError for policy error codes\n * @param {any} err the error from the request\n * @returns {void}\n */\n handlePolicyError = (err) => {\n if (!err.body) {\n return;\n }\n\n if (POLICY_ERROR_CODES.includes(err.body?.code)) {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.MEETING_INFO_POLICY_ERROR, {\n code: err.body?.code,\n });\n\n throw new MeetingInfoV2PolicyError(\n err.body?.code,\n err.body?.data?.meetingInfo,\n err.body?.message\n );\n }\n };\n\n /**\n * Raises a handleJoinWebinarError for join webinar error codes\n * @param {any} err the error from the request\n * @returns {void}\n */\n handleJoinWebinarError = (err) => {\n if (!err.body) {\n return;\n }\n\n if (JOIN_WEBINAR_ERROR_CODES.includes(err.body?.code)) {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.JOIN_WEBINAR_ERROR, {\n code: err.body?.code,\n });\n\n throw new MeetingInfoV2JoinWebinarError(\n err.body?.code,\n err.body?.data?.meetingInfo,\n err.body?.message\n );\n }\n };\n\n /**\n * Raises a handleForbiddenError for join meeting forbidden error\n * @param {any} err the error from the request\n * @returns {void}\n */\n handleForbiddenError = (err) => {\n if (!err.body) {\n return;\n }\n\n if (JOIN_FORBIDDEN_CODES.includes(err.body?.code)) {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.JOIN_FORBIDDEN_ERROR, {\n code: err.body?.code,\n });\n\n throw new MeetingInfoV2JoinForbiddenError(\n err.body?.code,\n err.body?.data?.meetingInfo,\n err.body?.message\n );\n }\n };\n\n /**\n * helper function to either create an adhoc space meeting or enable static meeting link\n * @param {String} conversationUrl conversationUrl to start adhoc meeting on\n * @param {String} installedOrgID org ID of user's machine\n * @param {Boolean} enableStaticMeetingLink whether or not to enable static meeting link\n * @param {String} classificationId need it to start adhoc meeting if space support classification\n * @returns {Promise} returns a meeting info object\n * @public\n * @memberof MeetingInfo\n */\n async createAdhocSpaceMeetingOrEnableStaticMeetingLink(\n conversationUrl: string,\n installedOrgID?: string,\n // setting this to true enables static meeting link\n enableStaticMeetingLink = false,\n classificationId = undefined\n ) {\n const getInvitees = (particpants = []) => {\n const invitees = [];\n\n if (particpants) {\n particpants.forEach((participant) => {\n invitees.push({\n email: participant.emailAddress,\n ciUserUuid: participant.entryUUID,\n });\n });\n }\n\n return invitees;\n };\n\n return this.webex\n .request({uri: conversationUrl, qs: {includeParticipants: true}, disableTransform: true})\n .then(({body: conversation}) => {\n const body = {\n title: conversation.displayName,\n spaceUrl: conversation.url,\n keyUrl: conversation.encryptionKeyUrl,\n kroUrl: conversation.kmsResourceObjectUrl,\n invitees: getInvitees(conversation.participants?.items),\n installedOrgID,\n schedule: enableStaticMeetingLink,\n classificationId,\n };\n\n if (installedOrgID) {\n body.installedOrgID = installedOrgID;\n }\n\n const uri = this.webex.meetings.preferredWebexSite\n ? `https://${this.webex.meetings.preferredWebexSite}/wbxappapi/v2/meetings/spaceInstant`\n : '';\n\n return this.webex.request({\n method: HTTP_VERBS.POST,\n uri,\n body,\n });\n });\n }\n\n /**\n * Creates adhoc space meetings for a space by fetching the conversation infomation\n * @param {String} conversationUrl conversationUrl to start adhoc meeting on\n * @param {String} installedOrgID org ID of user's machine\n * @param {String} classificationId if space is support classification, it needs provide it during start instant meeting\n * @returns {Promise} returns a meeting info object\n * @public\n * @memberof MeetingInfo\n */\n async createAdhocSpaceMeeting(\n conversationUrl: string,\n installedOrgID?: string,\n classificationId?: string\n ) {\n if (!this.webex.meetings.preferredWebexSite) {\n throw Error('No preferred webex site found');\n }\n\n return this.createAdhocSpaceMeetingOrEnableStaticMeetingLink(\n conversationUrl,\n installedOrgID,\n false,\n classificationId\n )\n .then((requestResult) => {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_SUCCESS);\n\n return requestResult;\n })\n .catch((err) => {\n this.handlePolicyError(err);\n this.handleJoinWebinarError(err);\n this.handleForbiddenError(err);\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_FAILURE, {\n reason: err.message,\n stack: err.stack,\n });\n throw new MeetingInfoV2AdhocMeetingError(err.body?.code, err.body?.message);\n });\n }\n\n /**\n * Fetches details for static meeting link\n * @param {String} conversationUrl conversationUrl that's required to find static meeting link if it exists\n * @returns {Promise} returns a Promise\n * @public\n * @memberof MeetingInfo\n */\n async fetchStaticMeetingLink(conversationUrl: string) {\n if (!this.webex.meetings.preferredWebexSite) {\n throw Error('No preferred webex site found');\n }\n\n const body = {\n spaceUrl: conversationUrl,\n };\n\n const uri = this.webex.meetings.preferredWebexSite\n ? `https://${this.webex.meetings.preferredWebexSite}/wbxappapi/v2/meetings/spaceInstant/query`\n : '';\n\n return this.webex\n .request({\n method: HTTP_VERBS.POST,\n uri,\n body,\n })\n .then((requestResult) => {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_STATIC_MEETING_LINK_SUCCESS);\n\n return requestResult;\n })\n .catch((err) => {\n if (err?.statusCode === 403) {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.MEETING_LINK_DOES_NOT_EXIST_ERROR, {\n reason: err.message,\n stack: err.stack,\n });\n\n throw new MeetingInfoV2StaticLinkDoesNotExistError(err.body?.code, err.body?.message);\n }\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_STATIC_MEETING_LINK_FAILURE, {\n reason: err.message,\n stack: err.stack,\n });\n\n throw err;\n });\n }\n\n /**\n * Enables static meeting link\n * @param {String} conversationUrl conversationUrl that's required to enable static meeting link\n * @returns {Promise} returns a Promise\n * @public\n * @memberof MeetingInfo\n */\n async enableStaticMeetingLink(conversationUrl: string) {\n if (!this.webex.meetings.preferredWebexSite) {\n throw Error('No preferred webex site found');\n }\n\n return this.createAdhocSpaceMeetingOrEnableStaticMeetingLink(conversationUrl, undefined, true)\n .then((requestResult) => {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ENABLE_STATIC_METTING_LINK_SUCCESS);\n\n return requestResult;\n })\n .catch((err) => {\n if (err?.statusCode === 403) {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.MEETING_IS_IN_PROGRESS_ERROR, {\n reason: err.message,\n stack: err.stack,\n });\n\n throw new MeetingInfoV2MeetingIsInProgressError(err.body?.code, err.body?.message, true);\n }\n\n if (err?.statusCode === 409) {\n Metrics.sendBehavioralMetric(\n BEHAVIORAL_METRICS.STATIC_MEETING_LINK_ALREADY_EXISTS_ERROR,\n {\n reason: err.message,\n stack: err.stack,\n }\n );\n\n throw new MeetingInfoV2StaticMeetingLinkAlreadyExists(err.body?.code, err.body?.message);\n }\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ENABLE_STATIC_METTING_LINK_FAILURE, {\n reason: err.message,\n stack: err.stack,\n });\n\n throw err;\n });\n }\n\n /**\n * Disables static meeting link for given conversation url\n * @param {String} conversationUrl conversationUrl that's required to disable static meeting link if it exists\n * @returns {Promise} returns a Promise\n * @public\n * @memberof MeetingInfo\n */\n async disableStaticMeetingLink(conversationUrl: string) {\n if (!this.webex.meetings.preferredWebexSite) {\n throw Error('No preferred webex site found');\n }\n\n const body = {\n spaceUrl: conversationUrl,\n };\n\n const uri = this.webex.meetings.preferredWebexSite\n ? `https://${this.webex.meetings.preferredWebexSite}/wbxappapi/v2/meetings/spaceInstant/deletePersistentMeeting`\n : '';\n\n return this.webex\n .request({\n method: HTTP_VERBS.POST,\n uri,\n body,\n })\n .then((requestResult) => {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.DISABLE_STATIC_MEETING_LINK_SUCCESS);\n\n return requestResult;\n })\n .catch((err) => {\n if (err?.statusCode === 403) {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.MEETING_IS_IN_PROGRESS_ERROR, {\n reason: err.message,\n stack: err.stack,\n });\n\n throw new MeetingInfoV2MeetingIsInProgressError(err.body?.code, err.body?.message);\n }\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.DISABLE_STATIC_MEETING_LINK_FAILURE, {\n reason: err.message,\n stack: err.stack,\n });\n\n throw err;\n });\n }\n\n /**\n * Fetches meeting info from the server\n * @param {String} destination one of many different types of destinations to look up info for\n * @param {DESTINATION_TYPE} [type] to match up with the destination value\n * @param {String} password\n * @param {Object} captchaInfo\n * @param {String} captchaInfo.code\n * @param {String} captchaInfo.id\n * @param {String} installedOrgID org ID of user's machine\n * @param {String} locusId\n * @param {Object} extraParams\n * @param {Object} options\n * @param {String} registrationId\n * @param {String} fullSiteUrl\n * @param {String} classificationId\n * @returns {Promise} returns a meeting info object\n * @public\n * @memberof MeetingInfo\n */\n async fetchMeetingInfo(\n destination: string,\n type: DESTINATION_TYPE = null,\n password: string = null,\n captchaInfo: {\n code: string;\n id: string;\n } = null,\n installedOrgID = null,\n locusId = null,\n extraParams: object = {},\n options: {meetingId?: string; sendCAevents?: boolean} = {},\n registrationId: string = null,\n fullSiteUrl: string = null,\n classificationId: string = null\n ) {\n const {meetingId, sendCAevents} = options;\n\n const destinationType = await MeetingInfoUtil.getDestinationType({\n destination,\n type,\n webex: this.webex,\n });\n\n if (\n destinationType.type === DESTINATION_TYPE.CONVERSATION_URL &&\n this.webex.config.meetings.experimental.enableAdhocMeetings &&\n this.webex.meetings.preferredWebexSite\n ) {\n return this.createAdhocSpaceMeeting(\n destinationType.destination,\n installedOrgID,\n classificationId\n );\n }\n\n const body = await MeetingInfoUtil.getRequestBody({\n ...destinationType,\n password,\n captchaInfo,\n installedOrgID,\n locusId,\n extraParams,\n registrationId,\n disableWebRedirect: true,\n });\n\n // If the body only contains the default properties, we don't have enough to\n // fetch the meeting info so don't bother trying.\n if (\n !lodash.difference(Object.keys(body), Object.keys(DEFAULT_MEETING_INFO_REQUEST_BODY)).length\n ) {\n const err = new Error('Not enough information to fetch meeting info');\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_FAILURE, {\n reason: err.message,\n destinationType: destinationType?.type,\n webExMeetingId: destinationType?.info?.webExMeetingId,\n sipUri: destinationType?.info?.sipUri,\n });\n\n throw err;\n }\n\n const requestOptions: any = {\n method: HTTP_VERBS.POST,\n body,\n };\n\n const directURI = await MeetingInfoUtil.getDirectMeetingInfoURI(destinationType);\n\n if (fullSiteUrl) {\n requestOptions.uri = `https://${fullSiteUrl}/wbxappapi/v1/meetingInfo`;\n } else if (directURI) {\n requestOptions.uri = directURI;\n } else {\n requestOptions.service = WBXAPPAPI_SERVICE;\n requestOptions.resource = 'meetingInfo';\n }\n\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.request',\n });\n\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.request',\n options: {\n meetingId,\n },\n });\n }\n\n return this.webex\n .request(requestOptions)\n .then((response) => {\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response',\n });\n\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.response',\n payload: {\n identifiers: {\n meetingLookupUrl: response?.url,\n },\n },\n options: {\n meetingId,\n webexConferenceIdStr: response?.body?.confIdStr || response?.body?.confID,\n globalMeetingId: response?.body?.meetingId,\n },\n });\n }\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_SUCCESS);\n\n return response;\n })\n .catch((err) => {\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response',\n });\n\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.response',\n payload: {\n identifiers: {\n meetingLookupUrl: err?.url,\n },\n },\n options: {\n meetingId,\n rawError: err,\n },\n });\n }\n\n if (err?.statusCode === 403) {\n this.handlePolicyError(err);\n this.handleJoinWebinarError(err);\n this.handleForbiddenError(err);\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.VERIFY_PASSWORD_ERROR, {\n reason: err.message,\n stack: err.stack,\n });\n\n throw new MeetingInfoV2PasswordError(err.body?.code, err.body?.data?.meetingInfo);\n }\n if (err?.statusCode === 423) {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.VERIFY_CAPTCHA_ERROR, {\n reason: err.message,\n stack: err.stack,\n });\n\n throw new MeetingInfoV2CaptchaError(err.body?.code, {\n captchaId: err.body.captchaID,\n verificationImageURL: err.body.verificationImageURL,\n verificationAudioURL: err.body.verificationAudioURL,\n refreshURL: err.body.refreshURL,\n });\n }\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_FAILURE, {\n reason: err.message,\n stack: err.stack,\n });\n throw err;\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAMA,IAAAE,QAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,WAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAEA,IAAAI,MAAA,GAAAL,sBAAA,CAAAC,OAAA;AAAuC,SAAAK,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,aAAA,CAAAH,CAAA,OAAAI,6BAAA,QAAAC,CAAA,GAAAD,6BAAA,CAAAJ,CAAA,GAAAC,CAAA,KAAAI,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAL,CAAA,WAAAM,gCAAA,CAAAP,CAAA,EAAAC,CAAA,EAAAO,UAAA,OAAAN,CAAA,CAAAO,IAAA,CAAAC,KAAA,CAAAR,CAAA,EAAAG,CAAA,YAAAH,CAAA;AAAA,SAAAS,cAAAX,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAW,SAAA,CAAAC,MAAA,EAAAZ,CAAA,UAAAC,CAAA,WAAAU,SAAA,CAAAX,CAAA,IAAAW,SAAA,CAAAX,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAe,MAAA,CAAAZ,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,CAAAC,OAAA,EAAAjB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAiB,iCAAA,GAAAC,wBAAA,CAAAnB,CAAA,EAAAkB,iCAAA,CAAAhB,CAAA,KAAAH,OAAA,CAAAe,MAAA,CAAAZ,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAmB,sBAAA,CAAApB,CAAA,EAAAC,CAAA,EAAAM,gCAAA,CAAAL,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAAA,SAAAqB,WAAAnB,CAAA,EAAAG,CAAA,EAAAL,CAAA,WAAAK,CAAA,OAAAiB,gBAAA,CAAAL,OAAA,EAAAZ,CAAA,OAAAkB,2BAAA,CAAAN,OAAA,EAAAf,CAAA,EAAAsB,yBAAA,KAAAC,kBAAA,CAAApB,CAAA,EAAAL,CAAA,YAAAsB,gBAAA,CAAAL,OAAA,EAAAf,CAAA,EAAAwB,WAAA,IAAArB,CAAA,CAAAK,KAAA,CAAAR,CAAA,EAAAF,CAAA;AAAA,SAAAwB,0BAAA,cAAAtB,CAAA,IAAAyB,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAL,kBAAA,CAAAE,OAAA,iCAAAzB,CAAA,aAAAsB,yBAAA,YAAAA,0BAAA,aAAAtB,CAAA;AAEvC,IAAM6B,8BAA8B,GAClC,mEAAmE;AACrE,IAAMC,6BAA6B,GACjC,qEAAqE;AACvE,IAAMC,2BAA2B,GAC/B,iEAAiE;AACnE,IAAMC,8BAA8B,GAAG,wBAAwB;AAC/D,IAAMC,0CAA0C,GAAG,oCAAoC;AACvF,IAAMC,yBAAyB,GAAG,+CAA+C;AACjF,IAAMC,qCAAqC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AACtE,IAAMC,4CAA4C,GAAG,CAAC,MAAM,CAAC;AAE7D,IAAMC,kBAAkB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC3E,IAAMC,oBAAoB,GAAG,CAAC,MAAM,CAAC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMC,wBAAwB,GAAG,CAC/B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CACvE;;AAED;AACA;AACA;AAFA,IAGaC,0BAA0B,GAAAC,OAAA,CAAAD,0BAAA,0BAAAE,MAAA;EAMrC;AACF;AACA;AACA;AACA;AACA;AACA;EACE,SAAAF,2BACEG,kBAA2B,EAC3BC,WAAoB,EAEpB;IAAA,IAAAC,KAAA;IAAA,IADAC,OAAe,GAAApC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAqC,SAAA,GAAArC,SAAA,MAAGmB,8BAA8B;IAAA,IAAAmB,gBAAA,CAAAjC,OAAA,QAAAyB,0BAAA;IAEhDK,KAAA,GAAA1B,UAAA,OAAAqB,0BAAA,MAAAS,MAAA,CAASH,OAAO,aAAAG,MAAA,CAAUN,kBAAkB;IAAI,IAAA7B,gBAAA,CAAAC,OAAA,EAAA8B,KAAA;IAAA,IAAA/B,gBAAA,CAAAC,OAAA,EAAA8B,KAAA;IAAA,IAAA/B,gBAAA,CAAAC,OAAA,EAAA8B,KAAA;IAAA,IAAA/B,gBAAA,CAAAC,OAAA,EAAA8B,KAAA;IAChDA,KAAA,CAAKK,IAAI,GAAG,4BAA4B;IACxCL,KAAA,CAAKM,UAAU,GAAGL,OAAO;IACzBD,KAAA,CAAKO,KAAK,GAAG,IAAIC,KAAK,CAAC,CAAC,CAACD,KAAK;IAC9BP,KAAA,CAAKS,aAAa,GAAGX,kBAAkB;IACvCE,KAAA,CAAKD,WAAW,GAAGA,WAAW;IAAC,OAAAC,KAAA;EACjC;EAAC,IAAAU,UAAA,CAAAxC,OAAA,EAAAyB,0BAAA,EAAAE,MAAA;EAAA,WAAAc,aAAA,CAAAzC,OAAA,EAAAyB,0BAAA;AAAA,mBAAAiB,iBAAA,CAAA1C,OAAA,EAxB6CsC,KAAK;AA2BrD;AACA;AACA;AAFA,IAGaK,8BAA8B,GAAAjB,OAAA,CAAAiB,8BAAA,0BAAAC,OAAA;EAGzC;AACF;AACA;AACA;AACA;AACA;EACE,SAAAD,+BAAYf,kBAA2B,EAAiD;IAAA,IAAAiB,MAAA;IAAA,IAA/Cd,OAAe,GAAApC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAqC,SAAA,GAAArC,SAAA,MAAGqB,2BAA2B;IAAA,IAAAiB,gBAAA,CAAAjC,OAAA,QAAA2C,8BAAA;IACpFE,MAAA,GAAAzC,UAAA,OAAAuC,8BAAA,MAAAT,MAAA,CAASH,OAAO,aAAAG,MAAA,CAAUN,kBAAkB;IAAI,IAAA7B,gBAAA,CAAAC,OAAA,EAAA6C,MAAA;IAAA,IAAA9C,gBAAA,CAAAC,OAAA,EAAA6C,MAAA;IAChDA,MAAA,CAAKV,IAAI,GAAG,gCAAgC;IAC5CU,MAAA,CAAKT,UAAU,GAAGL,OAAO;IACzBc,MAAA,CAAKR,KAAK,GAAG,IAAIC,KAAK,CAAC,CAAC,CAACD,KAAK;IAC9BQ,MAAA,CAAKN,aAAa,GAAGX,kBAAkB;IAAC,OAAAiB,MAAA;EAC1C;EAAC,IAAAL,UAAA,CAAAxC,OAAA,EAAA2C,8BAAA,EAAAC,OAAA;EAAA,WAAAH,aAAA,CAAAzC,OAAA,EAAA2C,8BAAA;AAAA,mBAAAD,iBAAA,CAAA1C,OAAA,EAfiDsC,KAAK;AAkBzD;AACA;AACA;AAFA,IAGaQ,wBAAwB,GAAApB,OAAA,CAAAoB,wBAAA,0BAAAC,OAAA;EAInC;AACF;AACA;AACA;AACA;AACA;AACA;EACE,SAAAD,yBAAYlB,kBAA2B,EAAEC,WAAoB,EAAEE,OAAgB,EAAE;IAAA,IAAAiB,MAAA;IAAA,IAAAf,gBAAA,CAAAjC,OAAA,QAAA8C,wBAAA;IAC/EE,MAAA,GAAA5C,UAAA,OAAA0C,wBAAA,MAAAZ,MAAA,CAASH,OAAO,aAAAG,MAAA,CAAUN,kBAAkB;IAAI,IAAA7B,gBAAA,CAAAC,OAAA,EAAAgD,MAAA;IAAA,IAAAjD,gBAAA,CAAAC,OAAA,EAAAgD,MAAA;IAAA,IAAAjD,gBAAA,CAAAC,OAAA,EAAAgD,MAAA;IAChDA,MAAA,CAAKb,IAAI,GAAG,gCAAgC;IAC5Ca,MAAA,CAAKZ,UAAU,GAAGL,OAAO;IACzBiB,MAAA,CAAKX,KAAK,GAAG,IAAIC,KAAK,CAAC,CAAC,CAACD,KAAK;IAC9BW,MAAA,CAAKT,aAAa,GAAGX,kBAAkB;IACvCoB,MAAA,CAAKnB,WAAW,GAAGA,WAAW;IAAC,OAAAmB,MAAA;EACjC;EAAC,IAAAR,UAAA,CAAAxC,OAAA,EAAA8C,wBAAA,EAAAC,OAAA;EAAA,WAAAN,aAAA,CAAAzC,OAAA,EAAA8C,wBAAA;AAAA,mBAAAJ,iBAAA,CAAA1C,OAAA,EAlB2CsC,KAAK;AAqBnD;AACA;AACA;AAFA,IAGaW,yBAAyB,GAAAvB,OAAA,CAAAuB,yBAAA,0BAAAC,OAAA;EAOpC;AACF;AACA;AACA;AACA;AACA;AACA;EACE,SAAAD,0BACErB,kBAA2B,EAC3BuB,WAAoB,EAEpB;IAAA,IAAAC,MAAA;IAAA,IADArB,OAAe,GAAApC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAqC,SAAA,GAAArC,SAAA,MAAGoB,6BAA6B;IAAA,IAAAkB,gBAAA,CAAAjC,OAAA,QAAAiD,yBAAA;IAE/CG,MAAA,GAAAhD,UAAA,OAAA6C,yBAAA,MAAAf,MAAA,CAASH,OAAO,aAAAG,MAAA,CAAUN,kBAAkB;IAAI,IAAA7B,gBAAA,CAAAC,OAAA,EAAAoD,MAAA;IAAA,IAAArD,gBAAA,CAAAC,OAAA,EAAAoD,MAAA;IAAA,IAAArD,gBAAA,CAAAC,OAAA,EAAAoD,MAAA;IAAA,IAAArD,gBAAA,CAAAC,OAAA,EAAAoD,MAAA;IAAA,IAAArD,gBAAA,CAAAC,OAAA,EAAAoD,MAAA;IAAA,IAAArD,gBAAA,CAAAC,OAAA,EAAAoD,MAAA;IAChDA,MAAA,CAAKjB,IAAI,GAAG,4BAA4B;IACxCiB,MAAA,CAAKhB,UAAU,GAAGL,OAAO;IACzBqB,MAAA,CAAKf,KAAK,GAAG,IAAIC,KAAK,CAAC,CAAC,CAACD,KAAK;IAC9Be,MAAA,CAAKb,aAAa,GAAGX,kBAAkB;IACvCwB,MAAA,CAAKC,kBAAkB,GAAGjC,qCAAqC,CAACkC,QAAQ,CAAC1B,kBAAkB,CAAC;IAC5FwB,MAAA,CAAKG,wBAAwB,GAC3BlC,4CAA4C,CAACiC,QAAQ,CAAC1B,kBAAkB,CAAC;IAC3EwB,MAAA,CAAKD,WAAW,GAAGA,WAAW;IAAC,OAAAC,MAAA;EACjC;EAAC,IAAAZ,UAAA,CAAAxC,OAAA,EAAAiD,yBAAA,EAAAC,OAAA;EAAA,WAAAT,aAAA,CAAAzC,OAAA,EAAAiD,yBAAA;AAAA,mBAAAP,iBAAA,CAAA1C,OAAA,EA5B4CsC,KAAK;AA+BpD;AACA;AACA;AAFA,IAGakB,6BAA6B,GAAA9B,OAAA,CAAA8B,6BAAA,0BAAAC,OAAA;EAKxC;AACF;AACA;AACA;AACA;AACA;AACA;EACE,SAAAD,8BAAY5B,kBAA2B,EAAEC,WAAoB,EAAEE,OAAgB,EAAE;IAAA,IAAA2B,MAAA;IAAA,IAAAzB,gBAAA,CAAAjC,OAAA,QAAAwD,6BAAA;IAC/EE,MAAA,GAAAtD,UAAA,OAAAoD,6BAAA,MAAAtB,MAAA,CAASH,OAAO,aAAAG,MAAA,CAAUN,kBAAkB;IAAI,IAAA7B,gBAAA,CAAAC,OAAA,EAAA0D,MAAA;IAAA,IAAA3D,gBAAA,CAAAC,OAAA,EAAA0D,MAAA;IAAA,IAAA3D,gBAAA,CAAAC,OAAA,EAAA0D,MAAA;IAAA,IAAA3D,gBAAA,CAAAC,OAAA,EAAA0D,MAAA;IAChDA,MAAA,CAAKvB,IAAI,GAAG,+BAA+B;IAC3CuB,MAAA,CAAKtB,UAAU,GAAGL,OAAO;IACzB2B,MAAA,CAAKrB,KAAK,GAAG,IAAIC,KAAK,CAAC,CAAC,CAACD,KAAK;IAC9BqB,MAAA,CAAKnB,aAAa,GAAGX,kBAAkB;IACvC8B,MAAA,CAAK7B,WAAW,GAAGA,WAAW;IAAC,OAAA6B,MAAA;EACjC;EAAC,IAAAlB,UAAA,CAAAxC,OAAA,EAAAwD,6BAAA,EAAAC,OAAA;EAAA,WAAAhB,aAAA,CAAAzC,OAAA,EAAAwD,6BAAA;AAAA,mBAAAd,iBAAA,CAAA1C,OAAA,EAnBgDsC,KAAK;AAsBxD;AACA;AACA;AAFA,IAGaqB,+BAA+B,GAAAjC,OAAA,CAAAiC,+BAAA,0BAAAC,OAAA;EAK1C;AACF;AACA;AACA;AACA;AACA;AACA;EACE,SAAAD,gCAAY/B,kBAA2B,EAAEC,WAAoB,EAAEE,OAAgB,EAAE;IAAA,IAAA8B,MAAA;IAAA,IAAA5B,gBAAA,CAAAjC,OAAA,QAAA2D,+BAAA;IAC/EE,MAAA,GAAAzD,UAAA,OAAAuD,+BAAA,MAAAzB,MAAA,CAASH,OAAO,aAAAG,MAAA,CAAUN,kBAAkB;IAAI,IAAA7B,gBAAA,CAAAC,OAAA,EAAA6D,MAAA;IAAA,IAAA9D,gBAAA,CAAAC,OAAA,EAAA6D,MAAA;IAAA,IAAA9D,gBAAA,CAAAC,OAAA,EAAA6D,MAAA;IAAA,IAAA9D,gBAAA,CAAAC,OAAA,EAAA6D,MAAA;IAChDA,MAAA,CAAK1B,IAAI,GAAG,iCAAiC;IAC7C0B,MAAA,CAAKzB,UAAU,GAAGL,OAAO;IACzB8B,MAAA,CAAKxB,KAAK,GAAG,IAAIC,KAAK,CAAC,CAAC,CAACD,KAAK;IAC9BwB,MAAA,CAAKtB,aAAa,GAAGX,kBAAkB;IACvCiC,MAAA,CAAKhC,WAAW,GAAGA,WAAW;IAAC,OAAAgC,MAAA;EACjC;EAAC,IAAArB,UAAA,CAAAxC,OAAA,EAAA2D,+BAAA,EAAAC,OAAA;EAAA,WAAAnB,aAAA,CAAAzC,OAAA,EAAA2D,+BAAA;AAAA,mBAAAjB,iBAAA,CAAA1C,OAAA,EAnBkDsC,KAAK;AAsB1D;AACA;AACA;AAFA,IAGawB,wCAAwC,GAAApC,OAAA,CAAAoC,wCAAA,0BAAAC,OAAA;EAInD;AACF;AACA;AACA;AACA;AACA;EACE,SAAAD,yCAAYlC,kBAA2B,EAA+C;IAAA,IAAAoC,MAAA;IAAA,IAA7CjC,OAAe,GAAApC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAqC,SAAA,GAAArC,SAAA,MAAGwB,yBAAyB;IAAA,IAAAc,gBAAA,CAAAjC,OAAA,QAAA8D,wCAAA;IAClFE,MAAA,GAAA5D,UAAA,OAAA0D,wCAAA,MAAA5B,MAAA,CAASH,OAAO,aAAAG,MAAA,CAAUN,kBAAkB;IAAI,IAAA7B,gBAAA,CAAAC,OAAA,EAAAgE,MAAA;IAAA,IAAAjE,gBAAA,CAAAC,OAAA,EAAAgE,MAAA;IAAA,IAAAjE,gBAAA,CAAAC,OAAA,EAAAgE,MAAA;IAChDA,MAAA,CAAK7B,IAAI,GAAG,0CAA0C;IACtD6B,MAAA,CAAK5B,UAAU,GAAGL,OAAO;IACzBiC,MAAA,CAAK3B,KAAK,GAAG,IAAIC,KAAK,CAAC,CAAC,CAACD,KAAK;IAC9B2B,MAAA,CAAKzB,aAAa,GAAGX,kBAAkB;IAAC,OAAAoC,MAAA;EAC1C;EAAC,IAAAxB,UAAA,CAAAxC,OAAA,EAAA8D,wCAAA,EAAAC,OAAA;EAAA,WAAAtB,aAAA,CAAAzC,OAAA,EAAA8D,wCAAA;AAAA,mBAAApB,iBAAA,CAAA1C,OAAA,EAhB2DsC,KAAK;AAmBnE;AACA;AACA;AAFA,IAGa2B,qCAAqC,GAAAvC,OAAA,CAAAuC,qCAAA,0BAAAC,OAAA;EAIhD;AACF;AACA;AACA;AACA;AACA;AACA;EACE,SAAAD,sCACErC,kBAA2B,EAG3B;IAAA,IAAAuC,MAAA;IAAA,IAFApC,OAAO,GAAApC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAqC,SAAA,GAAArC,SAAA,MAAGsB,8BAA8B;IAAA,IACxCmD,MAAM,GAAAzE,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAqC,SAAA,GAAArC,SAAA,MAAG,KAAK;IAAA,IAAAsC,gBAAA,CAAAjC,OAAA,QAAAiE,qCAAA;IAEdE,MAAA,GAAA/D,UAAA,OAAA6D,qCAAA,MAAA/B,MAAA,CAASH,OAAO,aAAAG,MAAA,CAAUN,kBAAkB,eAAAM,MAAA,CAAYkC,MAAM;IAAI,IAAArE,gBAAA,CAAAC,OAAA,EAAAmE,MAAA;IAAA,IAAApE,gBAAA,CAAAC,OAAA,EAAAmE,MAAA;IAAA,IAAApE,gBAAA,CAAAC,OAAA,EAAAmE,MAAA;IAClEA,MAAA,CAAKhC,IAAI,GAAG,uCAAuC;IACnDgC,MAAA,CAAK/B,UAAU,GAAGL,OAAO;IACzBoC,MAAA,CAAK9B,KAAK,GAAG,IAAIC,KAAK,CAAC,CAAC,CAACD,KAAK;IAC9B8B,MAAA,CAAK5B,aAAa,GAAGX,kBAAkB;IAAC,OAAAuC,MAAA;EAC1C;EAAC,IAAA3B,UAAA,CAAAxC,OAAA,EAAAiE,qCAAA,EAAAC,OAAA;EAAA,WAAAzB,aAAA,CAAAzC,OAAA,EAAAiE,qCAAA;AAAA,mBAAAvB,iBAAA,CAAA1C,OAAA,EArBwDsC,KAAK;AAwBhE;AACA;AACA;AAFA,IAGa+B,2CAA2C,GAAA3C,OAAA,CAAA2C,2CAAA,0BAAAC,OAAA;EAItD;AACF;AACA;AACA;AACA;AACA;EACE,SAAAD,4CAAYzC,kBAA2B,EAAwD;IAAA,IAAA2C,MAAA;IAAA,IAAtDxC,OAAO,GAAApC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAqC,SAAA,GAAArC,SAAA,MAAGuB,0CAA0C;IAAA,IAAAe,gBAAA,CAAAjC,OAAA,QAAAqE,2CAAA;IAC3FE,MAAA,GAAAnE,UAAA,OAAAiE,2CAAA,MAAAnC,MAAA,CAASH,OAAO,aAAAG,MAAA,CAAUN,kBAAkB;IAAI,IAAA7B,gBAAA,CAAAC,OAAA,EAAAuE,MAAA;IAAA,IAAAxE,gBAAA,CAAAC,OAAA,EAAAuE,MAAA;IAAA,IAAAxE,gBAAA,CAAAC,OAAA,EAAAuE,MAAA;IAChDA,MAAA,CAAKpC,IAAI,GAAG,6CAA6C;IACzDoC,MAAA,CAAKnC,UAAU,GAAGL,OAAO;IACzBwC,MAAA,CAAKlC,KAAK,GAAG,IAAIC,KAAK,CAAC,CAAC,CAACD,KAAK;IAC9BkC,MAAA,CAAKhC,aAAa,GAAGX,kBAAkB;IAAC,OAAA2C,MAAA;EAC1C;EAAC,IAAA/B,UAAA,CAAAxC,OAAA,EAAAqE,2CAAA,EAAAC,OAAA;EAAA,WAAA7B,aAAA,CAAAzC,OAAA,EAAAqE,2CAAA;AAAA,mBAAA3B,iBAAA,CAAA1C,OAAA,EAhB8DsC,KAAK;AAmBtE;AACA;AACA;AAFA,IAGqBkC,aAAa,GAAA9C,OAAA,CAAA1B,OAAA;EAGhC;AACF;AACA;AACA;EACE,SAAAwE,cAAYC,KAAK,EAAE;IAAA,IAAAxC,gBAAA,CAAAjC,OAAA,QAAAwE,aAAA;IAAA,IAAAzE,gBAAA,CAAAC,OAAA;IAoBnB;AACF;AACA;AACA;AACA;IAJE,IAAAD,gBAAA,CAAAC,OAAA,6BAKoB,UAAC0E,GAAG,EAAK;MAAA,IAAAC,SAAA;MAC3B,IAAI,CAACD,GAAG,CAACE,IAAI,EAAE;QACb;MACF;MAEA,IAAItD,kBAAkB,CAACgC,QAAQ,EAAAqB,SAAA,GAACD,GAAG,CAACE,IAAI,cAAAD,SAAA,uBAARA,SAAA,CAAUE,IAAI,CAAC,EAAE;QAAA,IAAAC,UAAA,EAAAC,UAAA,EAAAC,UAAA,EAAAC,eAAA,EAAAC,UAAA;QAC/CC,gBAAO,CAACC,oBAAoB,CAACC,mBAAkB,CAACC,yBAAyB,EAAE;UACzET,IAAI,GAAAC,UAAA,GAAEJ,GAAG,CAACE,IAAI,cAAAE,UAAA,uBAARA,UAAA,CAAUD;QAClB,CAAC,CAAC;QAEF,MAAM,IAAI/B,wBAAwB,EAAAiC,UAAA,GAChCL,GAAG,CAACE,IAAI,cAAAG,UAAA,uBAARA,UAAA,CAAUF,IAAI,GAAAG,UAAA,GACdN,GAAG,CAACE,IAAI,cAAAI,UAAA,wBAAAC,eAAA,GAARD,UAAA,CAAUO,IAAI,cAAAN,eAAA,uBAAdA,eAAA,CAAgBpD,WAAW,GAAAqD,UAAA,GAC3BR,GAAG,CAACE,IAAI,cAAAM,UAAA,uBAARA,UAAA,CAAUnD,OACZ,CAAC;MACH;IACF,CAAC;IAED;AACF;AACA;AACA;AACA;IAJE,IAAAhC,gBAAA,CAAAC,OAAA,kCAKyB,UAAC0E,GAAG,EAAK;MAAA,IAAAc,UAAA;MAChC,IAAI,CAACd,GAAG,CAACE,IAAI,EAAE;QACb;MACF;MAEA,IAAIpD,wBAAwB,CAAC8B,QAAQ,EAAAkC,UAAA,GAACd,GAAG,CAACE,IAAI,cAAAY,UAAA,uBAARA,UAAA,CAAUX,IAAI,CAAC,EAAE;QAAA,IAAAY,UAAA,EAAAC,UAAA,EAAAC,UAAA,EAAAC,eAAA,EAAAC,UAAA;QACrDV,gBAAO,CAACC,oBAAoB,CAACC,mBAAkB,CAACS,kBAAkB,EAAE;UAClEjB,IAAI,GAAAY,UAAA,GAAEf,GAAG,CAACE,IAAI,cAAAa,UAAA,uBAARA,UAAA,CAAUZ;QAClB,CAAC,CAAC;QAEF,MAAM,IAAIrB,6BAA6B,EAAAkC,UAAA,GACrChB,GAAG,CAACE,IAAI,cAAAc,UAAA,uBAARA,UAAA,CAAUb,IAAI,GAAAc,UAAA,GACdjB,GAAG,CAACE,IAAI,cAAAe,UAAA,wBAAAC,eAAA,GAARD,UAAA,CAAUJ,IAAI,cAAAK,eAAA,uBAAdA,eAAA,CAAgB/D,WAAW,GAAAgE,UAAA,GAC3BnB,GAAG,CAACE,IAAI,cAAAiB,UAAA,uBAARA,UAAA,CAAU9D,OACZ,CAAC;MACH;IACF,CAAC;IAED;AACF;AACA;AACA;AACA;IAJE,IAAAhC,gBAAA,CAAAC,OAAA,gCAKuB,UAAC0E,GAAG,EAAK;MAAA,IAAAqB,UAAA;MAC9B,IAAI,CAACrB,GAAG,CAACE,IAAI,EAAE;QACb;MACF;MAEA,IAAIrD,oBAAoB,CAAC+B,QAAQ,EAAAyC,UAAA,GAACrB,GAAG,CAACE,IAAI,cAAAmB,UAAA,uBAARA,UAAA,CAAUlB,IAAI,CAAC,EAAE;QAAA,IAAAmB,WAAA,EAAAC,WAAA,EAAAC,WAAA,EAAAC,gBAAA,EAAAC,WAAA;QACjDjB,gBAAO,CAACC,oBAAoB,CAACC,mBAAkB,CAACgB,oBAAoB,EAAE;UACpExB,IAAI,GAAAmB,WAAA,GAAEtB,GAAG,CAACE,IAAI,cAAAoB,WAAA,uBAARA,WAAA,CAAUnB;QAClB,CAAC,CAAC;QAEF,MAAM,IAAIlB,+BAA+B,EAAAsC,WAAA,GACvCvB,GAAG,CAACE,IAAI,cAAAqB,WAAA,uBAARA,WAAA,CAAUpB,IAAI,GAAAqB,WAAA,GACdxB,GAAG,CAACE,IAAI,cAAAsB,WAAA,wBAAAC,gBAAA,GAARD,WAAA,CAAUX,IAAI,cAAAY,gBAAA,uBAAdA,gBAAA,CAAgBtE,WAAW,GAAAuE,WAAA,GAC3B1B,GAAG,CAACE,IAAI,cAAAwB,WAAA,uBAARA,WAAA,CAAUrE,OACZ,CAAC;MACH;IACF,CAAC;IAtFC,IAAI,CAAC0C,KAAK,GAAGA,KAAK;EACpB;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE,WAAAhC,aAAA,CAAAzC,OAAA,EAAAwE,aAAA;IAAA8B,GAAA;IAAAC,KAAA,EAQA,SAAAC,gBAAgBA,CAACC,WAAmB,EAAuB;MAAA,IAArBC,IAAY,GAAA/G,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAqC,SAAA,GAAArC,SAAA,MAAG,IAAI;MACvD,OAAOgH,cAAe,CAACC,kBAAkB,CAAC;QACxCH,WAAW,EAAXA,WAAW;QACXC,IAAI,EAAJA,IAAI;QACJjC,KAAK,EAAE,IAAI,CAACA;MACd,CAAC,CAAC;IACJ;EAAC;IAAA6B,GAAA;IAAAC,KAAA;IAuED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IATE;MAAA,IAAAM,iDAAA,OAAAC,kBAAA,CAAA9G,OAAA,eAAA+G,YAAA,CAAA/G,OAAA,CAAAgH,IAAA,CAUA,SAAAC,QACEC,eAAuB,EACvBC,cAAuB;QAAA,IAAAC,MAAA;QAAA,IAAAC,uBAAA;UAAAC,gBAAA;UAAAC,WAAA;UAAAC,KAAA,GAAA7H,SAAA;QAAA,OAAAoH,YAAA,CAAA/G,OAAA,CAAAyH,IAAA,WAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;YAAA;cAEvBP,uBAAuB,GAAAG,KAAA,CAAA5H,MAAA,QAAA4H,KAAA,QAAAxF,SAAA,GAAAwF,KAAA,MAAG,KAAK;cAC/BF,gBAAgB,GAAAE,KAAA,CAAA5H,MAAA,QAAA4H,KAAA,QAAAxF,SAAA,GAAAwF,KAAA,MAAGxF,SAAS;cAEtBuF,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAyB;gBAAA,IAArBM,WAAW,GAAAlI,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAqC,SAAA,GAAArC,SAAA,MAAG,EAAE;gBACnC,IAAMmI,QAAQ,GAAG,EAAE;gBAEnB,IAAID,WAAW,EAAE;kBACfA,WAAW,CAAC/H,OAAO,CAAC,UAACiI,WAAW,EAAK;oBACnCD,QAAQ,CAACtI,IAAI,CAAC;sBACZwI,KAAK,EAAED,WAAW,CAACE,YAAY;sBAC/BC,UAAU,EAAEH,WAAW,CAACI;oBAC1B,CAAC,CAAC;kBACJ,CAAC,CAAC;gBACJ;gBAEA,OAAOL,QAAQ;cACjB,CAAC;cAAA,OAAAJ,QAAA,CAAAU,MAAA,WAEM,IAAI,CAAC3D,KAAK,CACd4D,OAAO,CAAC;gBAACC,GAAG,EAAEpB,eAAe;gBAAEqB,EAAE,EAAE;kBAACC,mBAAmB,EAAE;gBAAI,CAAC;gBAAEC,gBAAgB,EAAE;cAAI,CAAC,CAAC,CACxFC,IAAI,CAAC,UAAAC,IAAA,EAA0B;gBAAA,IAAAC,qBAAA;gBAAA,IAAlBC,YAAY,GAAAF,IAAA,CAAlB/D,IAAI;gBACV,IAAMA,IAAI,GAAG;kBACXkE,KAAK,EAAED,YAAY,CAACE,WAAW;kBAC/BC,QAAQ,EAAEH,YAAY,CAACI,GAAG;kBAC1BC,MAAM,EAAEL,YAAY,CAACM,gBAAgB;kBACrCC,MAAM,EAAEP,YAAY,CAACQ,oBAAoB;kBACzCvB,QAAQ,EAAEP,WAAW,EAAAqB,qBAAA,GAACC,YAAY,CAACS,YAAY,cAAAV,qBAAA,uBAAzBA,qBAAA,CAA2BW,KAAK,CAAC;kBACvDpC,cAAc,EAAdA,cAAc;kBACdqC,QAAQ,EAAEnC,uBAAuB;kBACjCC,gBAAgB,EAAhBA;gBACF,CAAC;gBAED,IAAIH,cAAc,EAAE;kBAClBvC,IAAI,CAACuC,cAAc,GAAGA,cAAc;gBACtC;gBAEA,IAAMmB,GAAG,GAAGlB,MAAI,CAAC3C,KAAK,CAACgF,QAAQ,CAACC,kBAAkB,cAAAxH,MAAA,CACnCkF,MAAI,CAAC3C,KAAK,CAACgF,QAAQ,CAACC,kBAAkB,2CACjD,EAAE;gBAEN,OAAOtC,MAAI,CAAC3C,KAAK,CAAC4D,OAAO,CAAC;kBACxBsB,MAAM,EAAEC,qBAAU,CAACC,IAAI;kBACvBvB,GAAG,EAAHA,GAAG;kBACH1D,IAAI,EAAJA;gBACF,CAAC,CAAC;cACJ,CAAC,CAAC;YAAA;YAAA;cAAA,OAAA8C,QAAA,CAAAoC,IAAA;UAAA;QAAA,GAAA7C,OAAA;MAAA,CACL;MAAA,SAlDK8C,gDAAgDA,CAAAC,EAAA,EAAAC,GAAA;QAAA,OAAApD,iDAAA,CAAApH,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAhDoK,gDAAgD;IAAA;IAoDtD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IARE;EAAA;IAAAzD,GAAA;IAAAC,KAAA;MAAA,IAAA2D,wBAAA,OAAApD,kBAAA,CAAA9G,OAAA,eAAA+G,YAAA,CAAA/G,OAAA,CAAAgH,IAAA,CASA,SAAAmD,SACEjD,eAAuB,EACvBC,cAAuB,EACvBG,gBAAyB;QAAA,IAAA8C,MAAA;QAAA,OAAArD,YAAA,CAAA/G,OAAA,CAAAyH,IAAA,WAAA4C,SAAA;UAAA,kBAAAA,SAAA,CAAA1C,IAAA,GAAA0C,SAAA,CAAAzC,IAAA;YAAA;cAAA,IAEpB,IAAI,CAACnD,KAAK,CAACgF,QAAQ,CAACC,kBAAkB;gBAAAW,SAAA,CAAAzC,IAAA;gBAAA;cAAA;cAAA,MACnCtF,KAAK,CAAC,+BAA+B,CAAC;YAAA;cAAA,OAAA+H,SAAA,CAAAjC,MAAA,WAGvC,IAAI,CAAC2B,gDAAgD,CAC1D7C,eAAe,EACfC,cAAc,EACd,KAAK,EACLG,gBACF,CAAC,CACEoB,IAAI,CAAC,UAAC4B,aAAa,EAAK;gBACvBnF,gBAAO,CAACC,oBAAoB,CAACC,mBAAkB,CAACkF,qBAAqB,CAAC;gBAEtE,OAAOD,aAAa;cACtB,CAAC,CAAC,CACDE,KAAK,CAAC,UAAC9F,GAAG,EAAK;gBAAA,IAAA+F,WAAA,EAAAC,WAAA;gBACdN,MAAI,CAACO,iBAAiB,CAACjG,GAAG,CAAC;gBAC3B0F,MAAI,CAACQ,sBAAsB,CAAClG,GAAG,CAAC;gBAChC0F,MAAI,CAACS,oBAAoB,CAACnG,GAAG,CAAC;gBAE9BS,gBAAO,CAACC,oBAAoB,CAACC,mBAAkB,CAACyF,qBAAqB,EAAE;kBACrEC,MAAM,EAAErG,GAAG,CAAC3C,OAAO;kBACnBM,KAAK,EAAEqC,GAAG,CAACrC;gBACb,CAAC,CAAC;gBACF,MAAM,IAAIM,8BAA8B,EAAA8H,WAAA,GAAC/F,GAAG,CAACE,IAAI,cAAA6F,WAAA,uBAARA,WAAA,CAAU5F,IAAI,GAAA6F,WAAA,GAAEhG,GAAG,CAACE,IAAI,cAAA8F,WAAA,uBAARA,WAAA,CAAU3I,OAAO,CAAC;cAC7E,CAAC,CAAC;YAAA;YAAA;cAAA,OAAAsI,SAAA,CAAAP,IAAA;UAAA;QAAA,GAAAK,QAAA;MAAA,CACL;MAAA,SA/BKa,uBAAuBA,CAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA;QAAA,OAAAjB,wBAAA,CAAAzK,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAvBqL,uBAAuB;IAAA;IAiC7B;AACF;AACA;AACA;AACA;AACA;AACA;IANE;EAAA;IAAA1E,GAAA;IAAAC,KAAA;MAAA,IAAA6E,uBAAA,OAAAtE,kBAAA,CAAA9G,OAAA,eAAA+G,YAAA,CAAA/G,OAAA,CAAAgH,IAAA,CAOA,SAAAqE,SAA6BnE,eAAuB;QAAA,IAAAtC,IAAA,EAAA0D,GAAA;QAAA,OAAAvB,YAAA,CAAA/G,OAAA,CAAAyH,IAAA,WAAA6D,SAAA;UAAA,kBAAAA,SAAA,CAAA3D,IAAA,GAAA2D,SAAA,CAAA1D,IAAA;YAAA;cAAA,IAC7C,IAAI,CAACnD,KAAK,CAACgF,QAAQ,CAACC,kBAAkB;gBAAA4B,SAAA,CAAA1D,IAAA;gBAAA;cAAA;cAAA,MACnCtF,KAAK,CAAC,+BAA+B,CAAC;YAAA;cAGxCsC,IAAI,GAAG;gBACXoE,QAAQ,EAAE9B;cACZ,CAAC;cAEKoB,GAAG,GAAG,IAAI,CAAC7D,KAAK,CAACgF,QAAQ,CAACC,kBAAkB,cAAAxH,MAAA,CACnC,IAAI,CAACuC,KAAK,CAACgF,QAAQ,CAACC,kBAAkB,iDACjD,EAAE;cAAA,OAAA4B,SAAA,CAAAlD,MAAA,WAEC,IAAI,CAAC3D,KAAK,CACd4D,OAAO,CAAC;gBACPsB,MAAM,EAAEC,qBAAU,CAACC,IAAI;gBACvBvB,GAAG,EAAHA,GAAG;gBACH1D,IAAI,EAAJA;cACF,CAAC,CAAC,CACD8D,IAAI,CAAC,UAAC4B,aAAa,EAAK;gBACvBnF,gBAAO,CAACC,oBAAoB,CAACC,mBAAkB,CAACkG,iCAAiC,CAAC;gBAElF,OAAOjB,aAAa;cACtB,CAAC,CAAC,CACDE,KAAK,CAAC,UAAC9F,GAAG,EAAK;gBACd,IAAI,CAAAA,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAE8G,UAAU,MAAK,GAAG,EAAE;kBAAA,IAAAC,WAAA,EAAAC,WAAA;kBAC3BvG,gBAAO,CAACC,oBAAoB,CAACC,mBAAkB,CAACsG,iCAAiC,EAAE;oBACjFZ,MAAM,EAAErG,GAAG,CAAC3C,OAAO;oBACnBM,KAAK,EAAEqC,GAAG,CAACrC;kBACb,CAAC,CAAC;kBAEF,MAAM,IAAIyB,wCAAwC,EAAA2H,WAAA,GAAC/G,GAAG,CAACE,IAAI,cAAA6G,WAAA,uBAARA,WAAA,CAAU5G,IAAI,GAAA6G,WAAA,GAAEhH,GAAG,CAACE,IAAI,cAAA8G,WAAA,uBAARA,WAAA,CAAU3J,OAAO,CAAC;gBACvF;gBACAoD,gBAAO,CAACC,oBAAoB,CAACC,mBAAkB,CAACuG,iCAAiC,EAAE;kBACjFb,MAAM,EAAErG,GAAG,CAAC3C,OAAO;kBACnBM,KAAK,EAAEqC,GAAG,CAACrC;gBACb,CAAC,CAAC;gBAEF,MAAMqC,GAAG;cACX,CAAC,CAAC;YAAA;YAAA;cAAA,OAAA4G,SAAA,CAAAxB,IAAA;UAAA;QAAA,GAAAuB,QAAA;MAAA,CACL;MAAA,SAxCKQ,sBAAsBA,CAAAC,GAAA;QAAA,OAAAV,uBAAA,CAAA3L,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAtBkM,sBAAsB;IAAA;IA0C5B;AACF;AACA;AACA;AACA;AACA;AACA;IANE;EAAA;IAAAvF,GAAA;IAAAC,KAAA;MAAA,IAAAwF,wBAAA,OAAAjF,kBAAA,CAAA9G,OAAA,eAAA+G,YAAA,CAAA/G,OAAA,CAAAgH,IAAA,CAOA,SAAAgF,SAA8B9E,eAAuB;QAAA,OAAAH,YAAA,CAAA/G,OAAA,CAAAyH,IAAA,WAAAwE,SAAA;UAAA,kBAAAA,SAAA,CAAAtE,IAAA,GAAAsE,SAAA,CAAArE,IAAA;YAAA;cAAA,IAC9C,IAAI,CAACnD,KAAK,CAACgF,QAAQ,CAACC,kBAAkB;gBAAAuC,SAAA,CAAArE,IAAA;gBAAA;cAAA;cAAA,MACnCtF,KAAK,CAAC,+BAA+B,CAAC;YAAA;cAAA,OAAA2J,SAAA,CAAA7D,MAAA,WAGvC,IAAI,CAAC2B,gDAAgD,CAAC7C,eAAe,EAAElF,SAAS,EAAE,IAAI,CAAC,CAC3F0G,IAAI,CAAC,UAAC4B,aAAa,EAAK;gBACvBnF,gBAAO,CAACC,oBAAoB,CAACC,mBAAkB,CAAC6G,kCAAkC,CAAC;gBAEnF,OAAO5B,aAAa;cACtB,CAAC,CAAC,CACDE,KAAK,CAAC,UAAC9F,GAAG,EAAK;gBACd,IAAI,CAAAA,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAE8G,UAAU,MAAK,GAAG,EAAE;kBAAA,IAAAW,WAAA,EAAAC,WAAA;kBAC3BjH,gBAAO,CAACC,oBAAoB,CAACC,mBAAkB,CAACgH,4BAA4B,EAAE;oBAC5EtB,MAAM,EAAErG,GAAG,CAAC3C,OAAO;oBACnBM,KAAK,EAAEqC,GAAG,CAACrC;kBACb,CAAC,CAAC;kBAEF,MAAM,IAAI4B,qCAAqC,EAAAkI,WAAA,GAACzH,GAAG,CAACE,IAAI,cAAAuH,WAAA,uBAARA,WAAA,CAAUtH,IAAI,GAAAuH,WAAA,GAAE1H,GAAG,CAACE,IAAI,cAAAwH,WAAA,uBAARA,WAAA,CAAUrK,OAAO,EAAE,IAAI,CAAC;gBAC1F;gBAEA,IAAI,CAAA2C,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAE8G,UAAU,MAAK,GAAG,EAAE;kBAAA,IAAAc,WAAA,EAAAC,WAAA;kBAC3BpH,gBAAO,CAACC,oBAAoB,CAC1BC,mBAAkB,CAACmH,wCAAwC,EAC3D;oBACEzB,MAAM,EAAErG,GAAG,CAAC3C,OAAO;oBACnBM,KAAK,EAAEqC,GAAG,CAACrC;kBACb,CACF,CAAC;kBAED,MAAM,IAAIgC,2CAA2C,EAAAiI,WAAA,GAAC5H,GAAG,CAACE,IAAI,cAAA0H,WAAA,uBAARA,WAAA,CAAUzH,IAAI,GAAA0H,WAAA,GAAE7H,GAAG,CAACE,IAAI,cAAA2H,WAAA,uBAARA,WAAA,CAAUxK,OAAO,CAAC;gBAC1F;gBAEAoD,gBAAO,CAACC,oBAAoB,CAACC,mBAAkB,CAACoH,kCAAkC,EAAE;kBAClF1B,MAAM,EAAErG,GAAG,CAAC3C,OAAO;kBACnBM,KAAK,EAAEqC,GAAG,CAACrC;gBACb,CAAC,CAAC;gBAEF,MAAMqC,GAAG;cACX,CAAC,CAAC;YAAA;YAAA;cAAA,OAAAuH,SAAA,CAAAnC,IAAA;UAAA;QAAA,GAAAkC,QAAA;MAAA,CACL;MAAA,SAxCK3E,uBAAuBA,CAAAqF,GAAA;QAAA,OAAAX,wBAAA,CAAAtM,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAvB0H,uBAAuB;IAAA;IA0C7B;AACF;AACA;AACA;AACA;AACA;AACA;IANE;EAAA;IAAAf,GAAA;IAAAC,KAAA;MAAA,IAAAoG,yBAAA,OAAA7F,kBAAA,CAAA9G,OAAA,eAAA+G,YAAA,CAAA/G,OAAA,CAAAgH,IAAA,CAOA,SAAA4F,SAA+B1F,eAAuB;QAAA,IAAAtC,IAAA,EAAA0D,GAAA;QAAA,OAAAvB,YAAA,CAAA/G,OAAA,CAAAyH,IAAA,WAAAoF,SAAA;UAAA,kBAAAA,SAAA,CAAAlF,IAAA,GAAAkF,SAAA,CAAAjF,IAAA;YAAA;cAAA,IAC/C,IAAI,CAACnD,KAAK,CAACgF,QAAQ,CAACC,kBAAkB;gBAAAmD,SAAA,CAAAjF,IAAA;gBAAA;cAAA;cAAA,MACnCtF,KAAK,CAAC,+BAA+B,CAAC;YAAA;cAGxCsC,IAAI,GAAG;gBACXoE,QAAQ,EAAE9B;cACZ,CAAC;cAEKoB,GAAG,GAAG,IAAI,CAAC7D,KAAK,CAACgF,QAAQ,CAACC,kBAAkB,cAAAxH,MAAA,CACnC,IAAI,CAACuC,KAAK,CAACgF,QAAQ,CAACC,kBAAkB,mEACjD,EAAE;cAAA,OAAAmD,SAAA,CAAAzE,MAAA,WAEC,IAAI,CAAC3D,KAAK,CACd4D,OAAO,CAAC;gBACPsB,MAAM,EAAEC,qBAAU,CAACC,IAAI;gBACvBvB,GAAG,EAAHA,GAAG;gBACH1D,IAAI,EAAJA;cACF,CAAC,CAAC,CACD8D,IAAI,CAAC,UAAC4B,aAAa,EAAK;gBACvBnF,gBAAO,CAACC,oBAAoB,CAACC,mBAAkB,CAACyH,mCAAmC,CAAC;gBAEpF,OAAOxC,aAAa;cACtB,CAAC,CAAC,CACDE,KAAK,CAAC,UAAC9F,GAAG,EAAK;gBACd,IAAI,CAAAA,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAE8G,UAAU,MAAK,GAAG,EAAE;kBAAA,IAAAuB,WAAA,EAAAC,WAAA;kBAC3B7H,gBAAO,CAACC,oBAAoB,CAACC,mBAAkB,CAACgH,4BAA4B,EAAE;oBAC5EtB,MAAM,EAAErG,GAAG,CAAC3C,OAAO;oBACnBM,KAAK,EAAEqC,GAAG,CAACrC;kBACb,CAAC,CAAC;kBAEF,MAAM,IAAI4B,qCAAqC,EAAA8I,WAAA,GAACrI,GAAG,CAACE,IAAI,cAAAmI,WAAA,uBAARA,WAAA,CAAUlI,IAAI,GAAAmI,WAAA,GAAEtI,GAAG,CAACE,IAAI,cAAAoI,WAAA,uBAARA,WAAA,CAAUjL,OAAO,CAAC;gBACpF;gBACAoD,gBAAO,CAACC,oBAAoB,CAACC,mBAAkB,CAAC4H,mCAAmC,EAAE;kBACnFlC,MAAM,EAAErG,GAAG,CAAC3C,OAAO;kBACnBM,KAAK,EAAEqC,GAAG,CAACrC;gBACb,CAAC,CAAC;gBAEF,MAAMqC,GAAG;cACX,CAAC,CAAC;YAAA;YAAA;cAAA,OAAAmI,SAAA,CAAA/C,IAAA;UAAA;QAAA,GAAA8C,QAAA;MAAA,CACL;MAAA,SAxCKM,wBAAwBA,CAAAC,GAAA;QAAA,OAAAR,yBAAA,CAAAlN,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAxBuN,wBAAwB;IAAA;IA0C9B;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IAlBE;EAAA;IAAA5G,GAAA;IAAAC,KAAA;MAAA,IAAA6G,iBAAA,OAAAtG,kBAAA,CAAA9G,OAAA,eAAA+G,YAAA,CAAA/G,OAAA,CAAAgH,IAAA,CAmBA,SAAAqG,SACE5G,WAAmB;QAAA,IAAA6G,OAAA;QAAA,IAAA5G,IAAA;UAAA6G,QAAA;UAAApK,WAAA;UAAAgE,cAAA;UAAAqG,OAAA;UAAAC,WAAA;UAAAC,OAAA;UAAAC,cAAA;UAAAC,WAAA;UAAAtG,gBAAA;UAAAuG,SAAA;UAAAC,YAAA;UAAAC,eAAA;UAAAnJ,IAAA;UAAAoJ,qBAAA;UAAAC,sBAAA;UAAAvJ,GAAA;UAAAwJ,cAAA;UAAAC,SAAA;UAAAC,MAAA,GAAAzO,SAAA;QAAA,OAAAoH,YAAA,CAAA/G,OAAA,CAAAyH,IAAA,WAAA4G,SAAA;UAAA,kBAAAA,SAAA,CAAA1G,IAAA,GAAA0G,SAAA,CAAAzG,IAAA;YAAA;cACnBlB,IAAsB,GAAA0H,MAAA,CAAAxO,MAAA,QAAAwO,MAAA,QAAApM,SAAA,GAAAoM,MAAA,MAAG,IAAI;cAC7Bb,QAAgB,GAAAa,MAAA,CAAAxO,MAAA,QAAAwO,MAAA,QAAApM,SAAA,GAAAoM,MAAA,MAAG,IAAI;cACvBjL,WAGC,GAAAiL,MAAA,CAAAxO,MAAA,QAAAwO,MAAA,QAAApM,SAAA,GAAAoM,MAAA,MAAG,IAAI;cACRjH,cAAc,GAAAiH,MAAA,CAAAxO,MAAA,QAAAwO,MAAA,QAAApM,SAAA,GAAAoM,MAAA,MAAG,IAAI;cACrBZ,OAAO,GAAAY,MAAA,CAAAxO,MAAA,QAAAwO,MAAA,QAAApM,SAAA,GAAAoM,MAAA,MAAG,IAAI;cACdX,WAAmB,GAAAW,MAAA,CAAAxO,MAAA,QAAAwO,MAAA,QAAApM,SAAA,GAAAoM,MAAA,MAAG,CAAC,CAAC;cACxBV,OAAqD,GAAAU,MAAA,CAAAxO,MAAA,QAAAwO,MAAA,QAAApM,SAAA,GAAAoM,MAAA,MAAG,CAAC,CAAC;cAC1DT,cAAsB,GAAAS,MAAA,CAAAxO,MAAA,QAAAwO,MAAA,QAAApM,SAAA,GAAAoM,MAAA,MAAG,IAAI;cAC7BR,WAAmB,GAAAQ,MAAA,CAAAxO,MAAA,QAAAwO,MAAA,QAAApM,SAAA,GAAAoM,MAAA,MAAG,IAAI;cAC1B9G,gBAAwB,GAAA8G,MAAA,CAAAxO,MAAA,SAAAwO,MAAA,SAAApM,SAAA,GAAAoM,MAAA,OAAG,IAAI;cAExBP,SAAS,GAAkBH,OAAO,CAAlCG,SAAS,EAAEC,YAAY,GAAIJ,OAAO,CAAvBI,YAAY;cAAAO,SAAA,CAAAzG,IAAA;cAAA,OAEAjB,cAAe,CAACC,kBAAkB,CAAC;gBAC/DH,WAAW,EAAXA,WAAW;gBACXC,IAAI,EAAJA,IAAI;gBACJjC,KAAK,EAAE,IAAI,CAACA;cACd,CAAC,CAAC;YAAA;cAJIsJ,eAAe,GAAAM,SAAA,CAAAC,IAAA;cAAA,MAOnBP,eAAe,CAACrH,IAAI,KAAK6H,2BAAgB,CAACC,gBAAgB,IAC1D,IAAI,CAAC/J,KAAK,CAACgK,MAAM,CAAChF,QAAQ,CAACiF,YAAY,CAACC,mBAAmB,IAC3D,IAAI,CAAClK,KAAK,CAACgF,QAAQ,CAACC,kBAAkB;gBAAA2E,SAAA,CAAAzG,IAAA;gBAAA;cAAA;cAAA,OAAAyG,SAAA,CAAAjG,MAAA,WAE/B,IAAI,CAAC4C,uBAAuB,CACjC+C,eAAe,CAACtH,WAAW,EAC3BU,cAAc,EACdG,gBACF,CAAC;YAAA;cAAA+G,SAAA,CAAAzG,IAAA;cAAA,OAGgBjB,cAAe,CAACiI,cAAc,CAAAlP,aAAA,CAAAA,aAAA,KAC5CqO,eAAe;gBAClBR,QAAQ,EAARA,QAAQ;gBACRpK,WAAW,EAAXA,WAAW;gBACXgE,cAAc,EAAdA,cAAc;gBACdqG,OAAO,EAAPA,OAAO;gBACPC,WAAW,EAAXA,WAAW;gBACXE,cAAc,EAAdA,cAAc;gBACdkB,kBAAkB,EAAE;cAAI,EACzB,CAAC;YAAA;cATIjK,IAAI,GAAAyJ,SAAA,CAAAC,IAAA;cAAA,IAcPQ,eAAM,CAACC,UAAU,CAAC,IAAAC,KAAA,CAAAhP,OAAA,EAAY4E,IAAI,CAAC,EAAE,IAAAoK,KAAA,CAAAhP,OAAA,EAAYiP,4CAAiC,CAAC,CAAC,CAACrP,MAAM;gBAAAyO,SAAA,CAAAzG,IAAA;gBAAA;cAAA;cAEtFlD,GAAG,GAAG,IAAIpC,KAAK,CAAC,8CAA8C,CAAC;cACrE6C,gBAAO,CAACC,oBAAoB,CAACC,mBAAkB,CAAC6J,6BAA6B,EAAE;gBAC7EnE,MAAM,EAAErG,GAAG,CAAC3C,OAAO;gBACnBgM,eAAe,EAAEA,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAErH,IAAI;gBACtCyI,cAAc,EAAEpB,eAAe,aAAfA,eAAe,wBAAAC,qBAAA,GAAfD,eAAe,CAAEqB,IAAI,cAAApB,qBAAA,uBAArBA,qBAAA,CAAuBmB,cAAc;gBACrDE,MAAM,EAAEtB,eAAe,aAAfA,eAAe,wBAAAE,sBAAA,GAAfF,eAAe,CAAEqB,IAAI,cAAAnB,sBAAA,uBAArBA,sBAAA,CAAuBoB;cACjC,CAAC,CAAC;cAAC,MAEG3K,GAAG;YAAA;cAGLwJ,cAAmB,GAAG;gBAC1BvE,MAAM,EAAEC,qBAAU,CAACC,IAAI;gBACvBjF,IAAI,EAAJA;cACF,CAAC;cAAAyJ,SAAA,CAAAzG,IAAA;cAAA,OAEuBjB,cAAe,CAAC2I,uBAAuB,CAACvB,eAAe,CAAC;YAAA;cAA1EI,SAAS,GAAAE,SAAA,CAAAC,IAAA;cAEf,IAAIV,WAAW,EAAE;gBACfM,cAAc,CAAC5F,GAAG,cAAApG,MAAA,CAAc0L,WAAW,8BAA2B;cACxE,CAAC,MAAM,IAAIO,SAAS,EAAE;gBACpBD,cAAc,CAAC5F,GAAG,GAAG6F,SAAS;cAChC,CAAC,MAAM;gBACLD,cAAc,CAACqB,OAAO,GAAGC,4BAAiB;gBAC1CtB,cAAc,CAACuB,QAAQ,GAAG,aAAa;cACzC;cAEA,IAAI5B,SAAS,IAAIC,YAAY,EAAE;gBAC7B,IAAI,CAACrJ,KAAK,CAACiL,QAAQ,CAACC,UAAU,CAACC,mBAAmB,CAAC;kBACjDzN,IAAI,EAAE;gBACR,CAAC,CAAC;gBAEF,IAAI,CAACsC,KAAK,CAACiL,QAAQ,CAACC,UAAU,CAACE,iBAAiB,CAAC;kBAC/C1N,IAAI,EAAE,4BAA4B;kBAClCuL,OAAO,EAAE;oBACPG,SAAS,EAATA;kBACF;gBACF,CAAC,CAAC;cACJ;cAAC,OAAAQ,SAAA,CAAAjG,MAAA,WAEM,IAAI,CAAC3D,KAAK,CACd4D,OAAO,CAAC6F,cAAc,CAAC,CACvBxF,IAAI,CAAC,UAACoH,QAAQ,EAAK;gBAClB,IAAIjC,SAAS,IAAIC,YAAY,EAAE;kBAAA,IAAAiC,cAAA,EAAAC,eAAA,EAAAC,eAAA;kBAC7B3C,OAAI,CAAC7I,KAAK,CAACiL,QAAQ,CAACC,UAAU,CAACC,mBAAmB,CAAC;oBACjDzN,IAAI,EAAE;kBACR,CAAC,CAAC;kBAEFmL,OAAI,CAAC7I,KAAK,CAACiL,QAAQ,CAACC,UAAU,CAACE,iBAAiB,CAAC;oBAC/C1N,IAAI,EAAE,6BAA6B;oBACnC+N,OAAO,EAAE;sBACPC,WAAW,EAAE;wBACXC,gBAAgB,EAAEN,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAE7G;sBAC9B;oBACF,CAAC;oBACDyE,OAAO,EAAE;sBACPG,SAAS,EAATA,SAAS;sBACTwC,oBAAoB,EAAE,CAAAP,QAAQ,aAARA,QAAQ,wBAAAC,cAAA,GAARD,QAAQ,CAAElL,IAAI,cAAAmL,cAAA,uBAAdA,cAAA,CAAgBO,SAAS,MAAIR,QAAQ,aAARA,QAAQ,wBAAAE,eAAA,GAARF,QAAQ,CAAElL,IAAI,cAAAoL,eAAA,uBAAdA,eAAA,CAAgBO,MAAM;sBACzEC,eAAe,EAAEV,QAAQ,aAARA,QAAQ,wBAAAG,eAAA,GAARH,QAAQ,CAAElL,IAAI,cAAAqL,eAAA,uBAAdA,eAAA,CAAgBpC;oBACnC;kBACF,CAAC,CAAC;gBACJ;gBACA1I,gBAAO,CAACC,oBAAoB,CAACC,mBAAkB,CAACoL,6BAA6B,CAAC;gBAE9E,OAAOX,QAAQ;cACjB,CAAC,CAAC,CACDtF,KAAK,CAAC,UAAC9F,GAAG,EAAK;gBACd,IAAImJ,SAAS,IAAIC,YAAY,EAAE;kBAC7BR,OAAI,CAAC7I,KAAK,CAACiL,QAAQ,CAACC,UAAU,CAACC,mBAAmB,CAAC;oBACjDzN,IAAI,EAAE;kBACR,CAAC,CAAC;kBAEFmL,OAAI,CAAC7I,KAAK,CAACiL,QAAQ,CAACC,UAAU,CAACE,iBAAiB,CAAC;oBAC/C1N,IAAI,EAAE,6BAA6B;oBACnC+N,OAAO,EAAE;sBACPC,WAAW,EAAE;wBACXC,gBAAgB,EAAE1L,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEuE;sBACzB;oBACF,CAAC;oBACDyE,OAAO,EAAE;sBACPG,SAAS,EAATA,SAAS;sBACT6C,QAAQ,EAAEhM;oBACZ;kBACF,CAAC,CAAC;gBACJ;gBAEA,IAAI,CAAAA,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAE8G,UAAU,MAAK,GAAG,EAAE;kBAAA,IAAAmF,WAAA,EAAAC,WAAA,EAAAC,gBAAA;kBAC3BvD,OAAI,CAAC3C,iBAAiB,CAACjG,GAAG,CAAC;kBAC3B4I,OAAI,CAAC1C,sBAAsB,CAAClG,GAAG,CAAC;kBAChC4I,OAAI,CAACzC,oBAAoB,CAACnG,GAAG,CAAC;kBAE9BS,gBAAO,CAACC,oBAAoB,CAACC,mBAAkB,CAACyL,qBAAqB,EAAE;oBACrE/F,MAAM,EAAErG,GAAG,CAAC3C,OAAO;oBACnBM,KAAK,EAAEqC,GAAG,CAACrC;kBACb,CAAC,CAAC;kBAEF,MAAM,IAAIZ,0BAA0B,EAAAkP,WAAA,GAACjM,GAAG,CAACE,IAAI,cAAA+L,WAAA,uBAARA,WAAA,CAAU9L,IAAI,GAAA+L,WAAA,GAAElM,GAAG,CAACE,IAAI,cAAAgM,WAAA,wBAAAC,gBAAA,GAARD,WAAA,CAAUrL,IAAI,cAAAsL,gBAAA,uBAAdA,gBAAA,CAAgBhP,WAAW,CAAC;gBACnF;gBACA,IAAI,CAAA6C,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAE8G,UAAU,MAAK,GAAG,EAAE;kBAAA,IAAAuF,WAAA;kBAC3B5L,gBAAO,CAACC,oBAAoB,CAACC,mBAAkB,CAAC2L,oBAAoB,EAAE;oBACpEjG,MAAM,EAAErG,GAAG,CAAC3C,OAAO;oBACnBM,KAAK,EAAEqC,GAAG,CAACrC;kBACb,CAAC,CAAC;kBAEF,MAAM,IAAIY,yBAAyB,EAAA8N,WAAA,GAACrM,GAAG,CAACE,IAAI,cAAAmM,WAAA,uBAARA,WAAA,CAAUlM,IAAI,EAAE;oBAClDoM,SAAS,EAAEvM,GAAG,CAACE,IAAI,CAACsM,SAAS;oBAC7BC,oBAAoB,EAAEzM,GAAG,CAACE,IAAI,CAACuM,oBAAoB;oBACnDC,oBAAoB,EAAE1M,GAAG,CAACE,IAAI,CAACwM,oBAAoB;oBACnDC,UAAU,EAAE3M,GAAG,CAACE,IAAI,CAACyM;kBACvB,CAAC,CAAC;gBACJ;gBAEAlM,gBAAO,CAACC,oBAAoB,CAACC,mBAAkB,CAAC6J,6BAA6B,EAAE;kBAC7EnE,MAAM,EAAErG,GAAG,CAAC3C,OAAO;kBACnBM,KAAK,EAAEqC,GAAG,CAACrC;gBACb,CAAC,CAAC;gBACF,MAAMqC,GAAG;cACX,CAAC,CAAC;YAAA;YAAA;cAAA,OAAA2J,SAAA,CAAAvE,IAAA;UAAA;QAAA,GAAAuD,QAAA;MAAA,CACL;MAAA,SA1KKiE,gBAAgBA,CAAAC,GAAA;QAAA,OAAAnE,iBAAA,CAAA3N,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAhB2R,gBAAgB;IAAA;EAAA;AAAA","ignoreList":[]}
|
package/dist/webinar/index.js
CHANGED
package/package.json
CHANGED
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"@webex/event-dictionary-ts": "^1.0.2138",
|
|
45
45
|
"@webex/jest-config-legacy": "0.0.0",
|
|
46
46
|
"@webex/legacy-tools": "0.0.0",
|
|
47
|
-
"@webex/plugin-rooms": "3.12.0-next.
|
|
47
|
+
"@webex/plugin-rooms": "3.12.0-next.19",
|
|
48
48
|
"@webex/test-helper-chai": "3.12.0-next.2",
|
|
49
49
|
"@webex/test-helper-mocha": "3.12.0-next.2",
|
|
50
50
|
"@webex/test-helper-mock-webex": "3.12.0-next.2",
|
|
@@ -63,20 +63,20 @@
|
|
|
63
63
|
"dependencies": {
|
|
64
64
|
"@webex/common": "3.12.0-next.2",
|
|
65
65
|
"@webex/internal-media-core": "2.25.1",
|
|
66
|
-
"@webex/internal-plugin-conversation": "3.12.0-next.
|
|
67
|
-
"@webex/internal-plugin-device": "3.12.0-next.
|
|
68
|
-
"@webex/internal-plugin-llm": "3.12.0-next.
|
|
69
|
-
"@webex/internal-plugin-mercury": "3.12.0-next.
|
|
70
|
-
"@webex/internal-plugin-metrics": "3.12.0-next.
|
|
71
|
-
"@webex/internal-plugin-support": "3.12.0-next.
|
|
72
|
-
"@webex/internal-plugin-user": "3.12.0-next.
|
|
73
|
-
"@webex/internal-plugin-voicea": "3.12.0-next.
|
|
66
|
+
"@webex/internal-plugin-conversation": "3.12.0-next.19",
|
|
67
|
+
"@webex/internal-plugin-device": "3.12.0-next.17",
|
|
68
|
+
"@webex/internal-plugin-llm": "3.12.0-next.21",
|
|
69
|
+
"@webex/internal-plugin-mercury": "3.12.0-next.18",
|
|
70
|
+
"@webex/internal-plugin-metrics": "3.12.0-next.17",
|
|
71
|
+
"@webex/internal-plugin-support": "3.12.0-next.19",
|
|
72
|
+
"@webex/internal-plugin-user": "3.12.0-next.18",
|
|
73
|
+
"@webex/internal-plugin-voicea": "3.12.0-next.21",
|
|
74
74
|
"@webex/media-helpers": "3.12.0-next.5",
|
|
75
|
-
"@webex/plugin-people": "3.12.0-next.
|
|
76
|
-
"@webex/plugin-rooms": "3.12.0-next.
|
|
75
|
+
"@webex/plugin-people": "3.12.0-next.18",
|
|
76
|
+
"@webex/plugin-rooms": "3.12.0-next.19",
|
|
77
77
|
"@webex/ts-sdp": "^1.8.1",
|
|
78
78
|
"@webex/web-capabilities": "^1.10.0",
|
|
79
|
-
"@webex/webex-core": "3.12.0-next.
|
|
79
|
+
"@webex/webex-core": "3.12.0-next.17",
|
|
80
80
|
"ampersand-collection": "^2.0.2",
|
|
81
81
|
"bowser": "^2.11.0",
|
|
82
82
|
"btoa": "^1.2.1",
|
|
@@ -94,5 +94,5 @@
|
|
|
94
94
|
"//": [
|
|
95
95
|
"TODO: upgrade jwt-decode when moving to node 18"
|
|
96
96
|
],
|
|
97
|
-
"version": "3.12.0-next.
|
|
97
|
+
"version": "3.12.0-next.69"
|
|
98
98
|
}
|
package/src/meeting/muteState.ts
CHANGED
|
@@ -375,7 +375,16 @@ export class MuteState {
|
|
|
375
375
|
}
|
|
376
376
|
if (muted !== undefined) {
|
|
377
377
|
this.state.server.remoteMute = muted;
|
|
378
|
-
|
|
378
|
+
// BO->Main may replay a stale remoteMute=false from the locus cache.
|
|
379
|
+
// Only enforce the mute on muted=true (also locking client.localMute so a later stale
|
|
380
|
+
// false can't flip isMuted()), and never touch the stream on muted=false — the
|
|
381
|
+
// legitimate server-driven unmute path is LOCAL_UNMUTE_REQUIRED. Always sync client
|
|
382
|
+
// intent back so other participants' tiles still show the mute icon.
|
|
383
|
+
if (muted) {
|
|
384
|
+
this.state.client.localMute = true;
|
|
385
|
+
this.muteLocalStream(meeting, true, 'remotelyMuted');
|
|
386
|
+
}
|
|
387
|
+
this.applyClientStateToServer(meeting);
|
|
379
388
|
}
|
|
380
389
|
}
|
|
381
390
|
|
|
@@ -19,7 +19,7 @@ const ADHOC_MEETING_DEFAULT_ERROR =
|
|
|
19
19
|
const MEETING_IS_IN_PROGRESS_MESSAGE = 'Meeting is in progress';
|
|
20
20
|
const STATIC_MEETING_LINK_ALREADY_EXISTS_MESSAGE = 'Static meeting link already exists';
|
|
21
21
|
const FETCH_STATIC_MEETING_LINK = 'Meeting link does not exists for conversation';
|
|
22
|
-
const CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES = [423005, 423006];
|
|
22
|
+
const CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES = [423005, 423006, 423008];
|
|
23
23
|
const CAPTCHA_ERROR_REQUIRES_REGISTRATION_ID_CODES = [423007];
|
|
24
24
|
|
|
25
25
|
const POLICY_ERROR_CODES = [403049, 403104, 403103, 403048, 403102, 403101];
|
|
@@ -35,7 +35,9 @@ const JOIN_FORBIDDEN_CODES = [403003];
|
|
|
35
35
|
* 403137 - Registration ID verified failure
|
|
36
36
|
*
|
|
37
37
|
*/
|
|
38
|
-
const JOIN_WEBINAR_ERROR_CODES = [
|
|
38
|
+
const JOIN_WEBINAR_ERROR_CODES = [
|
|
39
|
+
403021, 403022, 403024, 403137, 423007, 403026, 403037, 403137, 403106,
|
|
40
|
+
];
|
|
39
41
|
|
|
40
42
|
/**
|
|
41
43
|
* Error to indicate that wbxappapi requires a password
|
|
@@ -112,6 +112,82 @@ describe('plugin-meetings', () => {
|
|
|
112
112
|
assert.isTrue(audio.isRemotelyMuted());
|
|
113
113
|
});
|
|
114
114
|
|
|
115
|
+
it('does not unmute the local stream when server clears remote mute while user is locally muted (breakout -> main regression)', async () => {
|
|
116
|
+
// Panelist is locally muted before joining a breakout.
|
|
117
|
+
meeting.mediaProperties.audioStream.userMuted = true;
|
|
118
|
+
audio.handleLocalStreamChange(meeting);
|
|
119
|
+
await testUtils.flushPromises();
|
|
120
|
+
|
|
121
|
+
// Server applied a remote mute at some point.
|
|
122
|
+
audio.handleServerRemoteMuteUpdate(meeting, true, true);
|
|
123
|
+
assert.isTrue(audio.isRemotelyMuted());
|
|
124
|
+
|
|
125
|
+
meeting.mediaProperties.audioStream.setServerMuted.resetHistory();
|
|
126
|
+
|
|
127
|
+
// Now the user returns from breakout to main, and Locus clears the remote mute.
|
|
128
|
+
audio.handleServerRemoteMuteUpdate(meeting, false, true);
|
|
129
|
+
|
|
130
|
+
// Stream must NOT be force-unmuted - user's local mute intent must be preserved.
|
|
131
|
+
// The stale remoteMute=false must not trigger setServerMuted again.
|
|
132
|
+
assert.notCalled(meeting.mediaProperties.audioStream.setServerMuted);
|
|
133
|
+
assert.isFalse(audio.isRemotelyMuted());
|
|
134
|
+
assert.isTrue(audio.isMuted());
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
it('does not touch the local stream when remote mute stays false (no transition)', async () => {
|
|
138
|
+
// No remote mute has been applied yet (initial state has server.remoteMute=false).
|
|
139
|
+
meeting.mediaProperties.audioStream.setServerMuted.resetHistory();
|
|
140
|
+
|
|
141
|
+
audio.handleServerRemoteMuteUpdate(meeting, false, true);
|
|
142
|
+
|
|
143
|
+
// setServerMuted must not be called - there is no remoteMute transition to act on.
|
|
144
|
+
assert.notCalled(meeting.mediaProperties.audioStream.setServerMuted);
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
it('keeps isMuted() true when a stale remoteMute=false replays after remote mute', async () => {
|
|
148
|
+
// User was unmuted by host (userMuted=false locally).
|
|
149
|
+
meeting.mediaProperties.audioStream.userMuted = false;
|
|
150
|
+
audio.handleLocalStreamChange(meeting);
|
|
151
|
+
await testUtils.flushPromises();
|
|
152
|
+
|
|
153
|
+
// Host then hard-mutes the user.
|
|
154
|
+
audio.handleServerRemoteMuteUpdate(meeting, true, true);
|
|
155
|
+
await testUtils.flushPromises();
|
|
156
|
+
assert.isTrue(audio.isMuted());
|
|
157
|
+
|
|
158
|
+
meeting.mediaProperties.audioStream.setServerMuted.resetHistory();
|
|
159
|
+
|
|
160
|
+
// BO -> main replays a stale remoteMute=false from the locus cache.
|
|
161
|
+
audio.handleServerRemoteMuteUpdate(meeting, false, true);
|
|
162
|
+
|
|
163
|
+
// isMuted() must remain true (client.localMute is the safety net),
|
|
164
|
+
// and the stream must not be force-unmuted.
|
|
165
|
+
assert.isTrue(audio.isMuted());
|
|
166
|
+
assert.isFalse(audio.isRemotelyMuted());
|
|
167
|
+
assert.notCalled(meeting.mediaProperties.audioStream.setServerMuted);
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
it('syncs client mute intent back to server on stale remoteMute=false', async () => {
|
|
171
|
+
// client wants mute (localMute=true) but server's
|
|
172
|
+
// local-mute is out of sync (=false) - e.g. an attendee promoted to panelist whose
|
|
173
|
+
// server-side mute state got mis-set during promotion. remoteMute is currently true.
|
|
174
|
+
audio.state.client.localMute = true;
|
|
175
|
+
audio.state.server.localMute = false;
|
|
176
|
+
audio.state.server.remoteMute = true;
|
|
177
|
+
|
|
178
|
+
MeetingUtil.remoteUpdateAudioVideo.resetHistory();
|
|
179
|
+
|
|
180
|
+
// Stale event after BO -> main clears remoteMute.
|
|
181
|
+
audio.handleServerRemoteMuteUpdate(meeting, false, true);
|
|
182
|
+
await testUtils.flushPromises();
|
|
183
|
+
|
|
184
|
+
// applyClientStateToServer must detect the mismatch and push local mute back
|
|
185
|
+
// to server, so server.controls.audio.muted stays true for other participants' tiles.
|
|
186
|
+
assert.calledOnce(MeetingUtil.remoteUpdateAudioVideo);
|
|
187
|
+
assert.calledWith(MeetingUtil.remoteUpdateAudioVideo, meeting, true, undefined);
|
|
188
|
+
assert.isTrue(audio.isMuted());
|
|
189
|
+
});
|
|
190
|
+
|
|
115
191
|
it('does local audio unmute if localAudioUnmuteRequired is received', async () => {
|
|
116
192
|
// first we need to have the local stream user muted
|
|
117
193
|
meeting.mediaProperties.audioStream.userMuted = true;
|
|
@@ -829,6 +905,8 @@ describe('plugin-meetings', () => {
|
|
|
829
905
|
it('does not do anything if current state is already the same', async () => {
|
|
830
906
|
// set it up so that we are remotely muted (so that a sync to server would do a remote unmute)
|
|
831
907
|
audio.handleServerRemoteMuteUpdate(meeting, true, true);
|
|
908
|
+
await testUtils.flushPromises();
|
|
909
|
+
resetStubHistory();
|
|
832
910
|
|
|
833
911
|
// audio is already enabled and we call to enable it again
|
|
834
912
|
audio.enable(meeting, true);
|
|
@@ -654,7 +654,7 @@ describe('plugin-meetings', () => {
|
|
|
654
654
|
meetingInfo.createAdhocSpaceMeeting,
|
|
655
655
|
'conversationUrl',
|
|
656
656
|
installedOrgID,
|
|
657
|
-
null
|
|
657
|
+
null
|
|
658
658
|
);
|
|
659
659
|
assert.notCalled(webex.request);
|
|
660
660
|
meetingInfo.createAdhocSpaceMeeting.restore();
|
|
@@ -1068,13 +1068,16 @@ describe('plugin-meetings', () => {
|
|
|
1068
1068
|
await runTest(423006, true);
|
|
1069
1069
|
});
|
|
1070
1070
|
|
|
1071
|
+
it('should throw MeetingInfoV2CaptchaError for 423 response (wbxappapi code 423008)', async () => {
|
|
1072
|
+
await runTest(423008, true);
|
|
1073
|
+
});
|
|
1074
|
+
|
|
1071
1075
|
it('should throw MeetingInfoV2CaptchaError for 423 response (wbxappapi code 423001)', async () => {
|
|
1072
1076
|
await runTest(423001, false);
|
|
1073
1077
|
});
|
|
1074
1078
|
});
|
|
1075
1079
|
|
|
1076
1080
|
describe('should stop call fetchMeetingInfo if siteFullUrl is empty for 404 response', () => {
|
|
1077
|
-
|
|
1078
1081
|
const runTest = async (wbxAppApiCode, expectedIsPasswordRequired) => {
|
|
1079
1082
|
webex.request = sinon.stub().rejects({
|
|
1080
1083
|
statusCode: 404,
|
|
@@ -1082,12 +1085,11 @@ describe('plugin-meetings', () => {
|
|
|
1082
1085
|
code: wbxAppApiCode,
|
|
1083
1086
|
message: 'Alternate Meeting Server',
|
|
1084
1087
|
data: {
|
|
1085
|
-
|
|
1086
|
-
}
|
|
1088
|
+
siteFullUrl: '',
|
|
1089
|
+
},
|
|
1087
1090
|
},
|
|
1088
1091
|
});
|
|
1089
1092
|
|
|
1090
|
-
|
|
1091
1093
|
try {
|
|
1092
1094
|
await meetingInfo.fetchMeetingInfo('1234323', DESTINATION_TYPE.MEETING_ID, 'abc', {
|
|
1093
1095
|
id: '999',
|
|
@@ -1097,7 +1099,7 @@ describe('plugin-meetings', () => {
|
|
|
1097
1099
|
} catch (err) {
|
|
1098
1100
|
assert(Metrics.sendBehavioralMetric.calledOnce);
|
|
1099
1101
|
assert.deepEqual(err.body.data, {
|
|
1100
|
-
siteFullUrl: ''
|
|
1102
|
+
siteFullUrl: '',
|
|
1101
1103
|
});
|
|
1102
1104
|
}
|
|
1103
1105
|
};
|
|
@@ -1107,7 +1109,6 @@ describe('plugin-meetings', () => {
|
|
|
1107
1109
|
});
|
|
1108
1110
|
});
|
|
1109
1111
|
|
|
1110
|
-
|
|
1111
1112
|
it('should throw an error and not fetch with an "empty" body', async () => {
|
|
1112
1113
|
const body = {supportHostKey: 'foo', supportCountryList: 'bar'};
|
|
1113
1114
|
const requestResponse = {statusCode: 200, body};
|
|
@@ -1176,7 +1177,11 @@ describe('plugin-meetings', () => {
|
|
|
1176
1177
|
body: conversation,
|
|
1177
1178
|
});
|
|
1178
1179
|
|
|
1179
|
-
const result = await meetingInfo.createAdhocSpaceMeeting(
|
|
1180
|
+
const result = await meetingInfo.createAdhocSpaceMeeting(
|
|
1181
|
+
conversationUrl,
|
|
1182
|
+
installedOrgID,
|
|
1183
|
+
classificationId
|
|
1184
|
+
);
|
|
1180
1185
|
|
|
1181
1186
|
assert.calledWith(webex.request, {
|
|
1182
1187
|
uri: conversationUrl,
|
|
@@ -1210,7 +1215,11 @@ describe('plugin-meetings', () => {
|
|
|
1210
1215
|
webex.request = sinon.stub().resolves({
|
|
1211
1216
|
body: conversation,
|
|
1212
1217
|
});
|
|
1213
|
-
await meetingInfo.createAdhocSpaceMeeting(
|
|
1218
|
+
await meetingInfo.createAdhocSpaceMeeting(
|
|
1219
|
+
conversationUrl,
|
|
1220
|
+
installedOrgID,
|
|
1221
|
+
classificationId
|
|
1222
|
+
);
|
|
1214
1223
|
|
|
1215
1224
|
assert.calledWith(webex.request, {
|
|
1216
1225
|
uri: conversationUrl,
|
|
@@ -1282,7 +1291,7 @@ describe('plugin-meetings', () => {
|
|
|
1282
1291
|
{errorCode: 423007},
|
|
1283
1292
|
{errorCode: 403026},
|
|
1284
1293
|
{errorCode: 403037},
|
|
1285
|
-
{errorCode:
|
|
1294
|
+
{errorCode: 403106},
|
|
1286
1295
|
],
|
|
1287
1296
|
({errorCode}) => {
|
|
1288
1297
|
it(`should throw a MeetingInfoV2JoinWebinarError for error code ${errorCode}`, async () => {
|