@webex/plugin-meetings 3.8.1 → 3.9.0-multipleLLM.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -13
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/constants.js +34 -3
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.js +1 -0
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/types.js.map +1 -1
- package/dist/controls-options-manager/util.js +26 -0
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/controlsUtils.js +11 -3
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +107 -95
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/parser.js +4 -1
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/media/index.js +2 -2
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +53 -5
- package/dist/media/properties.js.map +1 -1
- package/dist/meeting/brbState.js +17 -14
- package/dist/meeting/brbState.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +13 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +555 -296
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +2 -5
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +44 -0
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js.map +1 -1
- package/dist/{rtcMetrics/constants.js → meeting/type.js} +1 -5
- package/dist/meeting/type.js.map +1 -0
- package/dist/meeting/util.js +98 -13
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +29 -21
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meetings/index.js +18 -10
- package/dist/meetings/index.js.map +1 -1
- package/dist/member/types.js.map +1 -1
- package/dist/members/collection.js +13 -0
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +53 -29
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +3 -3
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.js +25 -8
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +3 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +1 -1
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +34 -5
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +42 -2
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +32 -2
- package/dist/multistream/sendSlotManager.js.map +1 -1
- package/dist/reachability/index.js +8 -13
- package/dist/reachability/index.js.map +1 -1
- package/dist/types/constants.d.ts +30 -0
- package/dist/types/controls-options-manager/enums.d.ts +2 -1
- package/dist/types/controls-options-manager/types.d.ts +4 -1
- package/dist/types/locus-info/index.d.ts +54 -10
- package/dist/types/media/properties.d.ts +21 -0
- package/dist/types/meeting/brbState.d.ts +0 -1
- package/dist/types/meeting/in-meeting-actions.d.ts +12 -0
- package/dist/types/meeting/index.d.ts +58 -20
- package/dist/types/meeting/request.d.ts +18 -1
- package/dist/types/meeting/request.type.d.ts +74 -0
- package/dist/types/meeting/type.d.ts +9 -0
- package/dist/types/meeting/util.d.ts +13 -3
- package/dist/types/meeting-info/meeting-info-v2.d.ts +6 -3
- package/dist/types/meetings/index.d.ts +3 -1
- package/dist/types/member/types.d.ts +1 -0
- package/dist/types/members/collection.d.ts +6 -0
- package/dist/types/members/index.d.ts +22 -9
- package/dist/types/members/request.d.ts +1 -1
- package/dist/types/members/util.d.ts +13 -6
- package/dist/types/metrics/constants.d.ts +2 -0
- package/dist/types/multistream/remoteMedia.d.ts +20 -1
- package/dist/types/multistream/remoteMediaGroup.d.ts +11 -0
- package/dist/types/multistream/sendSlotManager.d.ts +16 -0
- package/dist/types/reachability/index.d.ts +2 -2
- package/dist/webinar/index.js +1 -1
- package/package.json +24 -25
- package/src/constants.ts +34 -2
- package/src/controls-options-manager/enums.ts +1 -0
- package/src/controls-options-manager/types.ts +6 -1
- package/src/controls-options-manager/util.ts +31 -0
- package/src/locus-info/controlsUtils.ts +15 -0
- package/src/locus-info/index.ts +174 -96
- package/src/locus-info/parser.ts +5 -1
- package/src/media/index.ts +2 -2
- package/src/media/properties.ts +43 -0
- package/src/meeting/brbState.ts +13 -9
- package/src/meeting/in-meeting-actions.ts +25 -0
- package/src/meeting/index.ts +362 -75
- package/src/meeting/muteState.ts +2 -6
- package/src/meeting/request.ts +39 -0
- package/src/meeting/request.type.ts +64 -0
- package/src/meeting/type.ts +9 -0
- package/src/meeting/util.ts +114 -22
- package/src/meeting-info/meeting-info-v2.ts +24 -5
- package/src/meetings/index.ts +12 -5
- package/src/member/types.ts +1 -0
- package/src/members/collection.ts +11 -0
- package/src/members/index.ts +51 -15
- package/src/members/request.ts +2 -2
- package/src/members/util.ts +34 -6
- package/src/metrics/constants.ts +2 -0
- package/src/multistream/mediaRequestManager.ts +7 -7
- package/src/multistream/remoteMedia.ts +34 -4
- package/src/multistream/remoteMediaGroup.ts +37 -2
- package/src/multistream/sendSlotManager.ts +34 -2
- package/src/reachability/index.ts +8 -16
- package/test/unit/spec/controls-options-manager/util.js +58 -0
- package/test/unit/spec/locus-info/controlsUtils.js +52 -0
- package/test/unit/spec/locus-info/index.js +270 -97
- package/test/unit/spec/locus-info/parser.js +3 -2
- package/test/unit/spec/media/index.ts +107 -0
- package/test/unit/spec/media/properties.ts +137 -0
- package/test/unit/spec/meeting/brbState.ts +23 -4
- package/test/unit/spec/meeting/in-meeting-actions.ts +12 -0
- package/test/unit/spec/meeting/index.js +1194 -97
- package/test/unit/spec/meeting/muteState.js +32 -6
- package/test/unit/spec/meeting/request.js +92 -0
- package/test/unit/spec/meeting/utils.js +167 -17
- package/test/unit/spec/meeting-info/meetinginfov2.js +8 -3
- package/test/unit/spec/meetings/index.js +12 -1
- package/test/unit/spec/members/collection.js +120 -0
- package/test/unit/spec/members/index.js +140 -12
- package/test/unit/spec/members/request.js +57 -2
- package/test/unit/spec/members/utils.js +139 -17
- package/test/unit/spec/multistream/mediaRequestManager.ts +19 -6
- package/test/unit/spec/multistream/remoteMedia.ts +66 -2
- package/test/unit/spec/multistream/sendSlotManager.ts +59 -0
- package/test/unit/spec/reachability/index.ts +160 -9
- package/dist/annotation/annotation.types.d.ts +0 -42
- package/dist/annotation/constants.d.ts +0 -31
- package/dist/annotation/index.d.ts +0 -117
- package/dist/breakouts/breakout.d.ts +0 -8
- package/dist/breakouts/collection.d.ts +0 -5
- package/dist/breakouts/edit-lock-error.d.ts +0 -15
- package/dist/breakouts/events.d.ts +0 -8
- package/dist/breakouts/index.d.ts +0 -5
- package/dist/breakouts/request.d.ts +0 -22
- package/dist/breakouts/utils.d.ts +0 -15
- package/dist/common/browser-detection.d.ts +0 -9
- package/dist/common/collection.d.ts +0 -48
- package/dist/common/config.d.ts +0 -2
- package/dist/common/errors/captcha-error.d.ts +0 -15
- package/dist/common/errors/intent-to-join.d.ts +0 -16
- package/dist/common/errors/join-meeting.d.ts +0 -17
- package/dist/common/errors/media.d.ts +0 -15
- package/dist/common/errors/no-meeting-info.d.ts +0 -14
- package/dist/common/errors/parameter.d.ts +0 -15
- package/dist/common/errors/password-error.d.ts +0 -15
- package/dist/common/errors/permission.d.ts +0 -14
- package/dist/common/errors/reclaim-host-role-error.d.ts +0 -60
- package/dist/common/errors/reclaim-host-role-error.js +0 -158
- package/dist/common/errors/reclaim-host-role-error.js.map +0 -1
- package/dist/common/errors/reclaim-host-role-errors.d.ts +0 -60
- package/dist/common/errors/reconnection-in-progress.d.ts +0 -9
- package/dist/common/errors/reconnection-in-progress.js +0 -35
- package/dist/common/errors/reconnection-in-progress.js.map +0 -1
- package/dist/common/errors/reconnection.d.ts +0 -15
- package/dist/common/errors/stats.d.ts +0 -15
- package/dist/common/errors/webex-errors.d.ts +0 -81
- package/dist/common/errors/webex-meetings-error.d.ts +0 -20
- package/dist/common/events/events-scope.d.ts +0 -17
- package/dist/common/events/events.d.ts +0 -12
- package/dist/common/events/trigger-proxy.d.ts +0 -2
- package/dist/common/events/util.d.ts +0 -2
- package/dist/common/logs/logger-config.d.ts +0 -2
- package/dist/common/logs/logger-proxy.d.ts +0 -2
- package/dist/common/logs/request.d.ts +0 -34
- package/dist/common/queue.d.ts +0 -32
- package/dist/config.d.ts +0 -73
- package/dist/constants.d.ts +0 -952
- package/dist/controls-options-manager/constants.d.ts +0 -4
- package/dist/controls-options-manager/enums.d.ts +0 -5
- package/dist/controls-options-manager/index.d.ts +0 -120
- package/dist/controls-options-manager/types.d.ts +0 -43
- package/dist/controls-options-manager/util.d.ts +0 -7
- package/dist/index.d.ts +0 -4
- package/dist/interceptors/index.d.ts +0 -2
- package/dist/interceptors/locusRetry.d.ts +0 -27
- package/dist/interpretation/collection.d.ts +0 -5
- package/dist/interpretation/index.d.ts +0 -5
- package/dist/interpretation/siLanguage.d.ts +0 -5
- package/dist/locus-info/controlsUtils.d.ts +0 -2
- package/dist/locus-info/embeddedAppsUtils.d.ts +0 -2
- package/dist/locus-info/fullState.d.ts +0 -2
- package/dist/locus-info/hostUtils.d.ts +0 -2
- package/dist/locus-info/index.d.ts +0 -269
- package/dist/locus-info/infoUtils.d.ts +0 -2
- package/dist/locus-info/mediaSharesUtils.d.ts +0 -2
- package/dist/locus-info/parser.d.ts +0 -212
- package/dist/locus-info/selfUtils.d.ts +0 -2
- package/dist/media/index.d.ts +0 -32
- package/dist/media/properties.d.ts +0 -108
- package/dist/media/util.d.ts +0 -2
- package/dist/mediaQualityMetrics/config.d.ts +0 -233
- package/dist/mediaQualityMetrics/config.js +0 -513
- package/dist/mediaQualityMetrics/config.js.map +0 -1
- package/dist/meeting/effectsState.d.ts +0 -42
- package/dist/meeting/effectsState.js +0 -260
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/meeting/in-meeting-actions.d.ts +0 -79
- package/dist/meeting/index.d.ts +0 -1622
- package/dist/meeting/locusMediaRequest.d.ts +0 -74
- package/dist/meeting/muteState.d.ts +0 -116
- package/dist/meeting/request.d.ts +0 -257
- package/dist/meeting/request.type.d.ts +0 -11
- package/dist/meeting/state.d.ts +0 -9
- package/dist/meeting/util.d.ts +0 -2
- package/dist/meeting/voicea-meeting.d.ts +0 -16
- package/dist/meeting-info/collection.d.ts +0 -20
- package/dist/meeting-info/index.d.ts +0 -57
- package/dist/meeting-info/meeting-info-v2.d.ts +0 -93
- package/dist/meeting-info/request.d.ts +0 -22
- package/dist/meeting-info/util.d.ts +0 -2
- package/dist/meeting-info/utilv2.d.ts +0 -2
- package/dist/meetings/collection.d.ts +0 -23
- package/dist/meetings/index.d.ts +0 -296
- package/dist/meetings/meetings.types.d.ts +0 -4
- package/dist/meetings/request.d.ts +0 -27
- package/dist/meetings/util.d.ts +0 -18
- package/dist/member/index.d.ts +0 -148
- package/dist/member/member.types.d.ts +0 -11
- package/dist/member/member.types.js +0 -18
- package/dist/member/member.types.js.map +0 -1
- package/dist/member/types.d.ts +0 -32
- package/dist/member/util.d.ts +0 -2
- package/dist/members/collection.d.ts +0 -24
- package/dist/members/index.d.ts +0 -308
- package/dist/members/request.d.ts +0 -58
- package/dist/members/types.d.ts +0 -25
- package/dist/members/util.d.ts +0 -2
- package/dist/metrics/config.d.ts +0 -169
- package/dist/metrics/config.js +0 -289
- package/dist/metrics/config.js.map +0 -1
- package/dist/metrics/constants.d.ts +0 -59
- package/dist/metrics/index.d.ts +0 -152
- package/dist/multistream/mediaRequestManager.d.ts +0 -119
- package/dist/multistream/receiveSlot.d.ts +0 -68
- package/dist/multistream/receiveSlotManager.d.ts +0 -56
- package/dist/multistream/remoteMedia.d.ts +0 -72
- package/dist/multistream/remoteMediaGroup.d.ts +0 -49
- package/dist/multistream/remoteMediaManager.d.ts +0 -300
- package/dist/multistream/sendSlotManager.d.ts +0 -69
- package/dist/networkQualityMonitor/index.d.ts +0 -70
- package/dist/networkQualityMonitor/index.js +0 -226
- package/dist/networkQualityMonitor/index.js.map +0 -1
- package/dist/peer-connection-manager/index.d.ts +0 -6
- package/dist/peer-connection-manager/index.js +0 -671
- package/dist/peer-connection-manager/index.js.map +0 -1
- package/dist/peer-connection-manager/util.d.ts +0 -6
- package/dist/peer-connection-manager/util.js +0 -110
- package/dist/peer-connection-manager/util.js.map +0 -1
- package/dist/personal-meeting-room/index.d.ts +0 -47
- package/dist/personal-meeting-room/request.d.ts +0 -14
- package/dist/personal-meeting-room/util.d.ts +0 -2
- package/dist/reachability/clusterReachability.d.ts +0 -109
- package/dist/reachability/index.d.ts +0 -139
- package/dist/reachability/request.d.ts +0 -35
- package/dist/reachability/util.d.ts +0 -8
- package/dist/reactions/constants.d.ts +0 -3
- package/dist/reactions/reactions.d.ts +0 -4
- package/dist/reactions/reactions.type.d.ts +0 -32
- package/dist/reconnection-manager/index.d.ts +0 -112
- package/dist/recording-controller/enums.d.ts +0 -7
- package/dist/recording-controller/index.d.ts +0 -193
- package/dist/recording-controller/util.d.ts +0 -13
- package/dist/roap/collection.d.ts +0 -10
- package/dist/roap/collection.js +0 -63
- package/dist/roap/collection.js.map +0 -1
- package/dist/roap/handler.d.ts +0 -47
- package/dist/roap/handler.js +0 -279
- package/dist/roap/handler.js.map +0 -1
- package/dist/roap/index.d.ts +0 -116
- package/dist/roap/request.d.ts +0 -35
- package/dist/roap/state.d.ts +0 -9
- package/dist/roap/state.js +0 -127
- package/dist/roap/state.js.map +0 -1
- package/dist/roap/turnDiscovery.d.ts +0 -81
- package/dist/roap/util.d.ts +0 -2
- package/dist/roap/util.js +0 -76
- package/dist/roap/util.js.map +0 -1
- package/dist/rtcMetrics/constants.d.ts +0 -4
- package/dist/rtcMetrics/constants.js.map +0 -1
- package/dist/rtcMetrics/index.d.ts +0 -61
- package/dist/rtcMetrics/index.js +0 -197
- package/dist/rtcMetrics/index.js.map +0 -1
- package/dist/statsAnalyzer/global.d.ts +0 -118
- package/dist/statsAnalyzer/global.js +0 -127
- package/dist/statsAnalyzer/global.js.map +0 -1
- package/dist/statsAnalyzer/index.d.ts +0 -193
- package/dist/statsAnalyzer/index.js +0 -1019
- package/dist/statsAnalyzer/index.js.map +0 -1
- package/dist/statsAnalyzer/mqaUtil.d.ts +0 -22
- package/dist/statsAnalyzer/mqaUtil.js +0 -181
- package/dist/statsAnalyzer/mqaUtil.js.map +0 -1
- package/dist/transcription/index.d.ts +0 -64
- package/dist/types/common/errors/reconnection-in-progress.d.ts +0 -9
- package/dist/types/mediaQualityMetrics/config.d.ts +0 -241
- package/dist/types/networkQualityMonitor/index.d.ts +0 -70
- package/dist/types/rtcMetrics/constants.d.ts +0 -4
- package/dist/types/rtcMetrics/index.d.ts +0 -71
- package/dist/types/statsAnalyzer/global.d.ts +0 -36
- package/dist/types/statsAnalyzer/index.d.ts +0 -217
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +0 -48
- package/dist/webinar/collection.d.ts +0 -16
- package/dist/webinar/index.d.ts +0 -5
package/dist/members/request.js
CHANGED
@@ -269,13 +269,13 @@ var MembersRequest = exports.default = /*#__PURE__*/function (_StatelessWebexPlu
|
|
269
269
|
* @memberof MembersRequest
|
270
270
|
*/
|
271
271
|
}, {
|
272
|
-
key: "
|
273
|
-
value: function
|
272
|
+
key: "cancelInviteByMemberId",
|
273
|
+
value: function cancelInviteByMemberId(options) {
|
274
274
|
var _options$invitee2;
|
275
275
|
if (!(options !== null && options !== void 0 && (_options$invitee2 = options.invitee) !== null && _options$invitee2 !== void 0 && _options$invitee2.memberId) || !(options !== null && options !== void 0 && options.locusUrl)) {
|
276
276
|
throw new _parameter.default('invitee must be passed and the associated locus url for this meeting object must be defined.');
|
277
277
|
}
|
278
|
-
var requestParams = _util.default.
|
278
|
+
var requestParams = _util.default.generateCancelInviteByMemberIdRequestParams(options);
|
279
279
|
return this.locusDeltaRequest(requestParams);
|
280
280
|
}
|
281
281
|
}]);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_webexCore","require","_constants","_parameter","_interopRequireDefault","_util","_util2","_excluded","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","MembersRequest","exports","_StatelessWebexPlugin","_inherits2","_super","attrs","options","_this","_classCallCheck2","meeting","otherAttrs","_objectWithoutProperties2","_defineProperty2","_assertThisInitialized2","MEETINGS","locusDeltaRequest","MeetingUtil","generateLocusDeltaRequest","_createClass2","key","value","addMembers","invitee","emailAddress","email","phoneNumber","locusUrl","ParameterError","requestParams","MembersUtil","getAddMemberRequestParams","admitMember","memberIds","getAdmitMemberRequestParams","removeMember","memberId","getRemoveMemberRequestParams","muteMember","getMuteMemberRequestParams","assignRolesMember","getRoleAssignmentMemberRequestParams","moveToLobbyMember","body","getMoveMemberToLobbyRequestParams","raiseOrLowerHandMember","getRaiseHandMemberRequestParams","lowerAllHandsMember","requestingParticipantId","getLowerAllHandsMemberRequestParams","editDisplayNameMember","editDisplayNameMemberRequestParams","transferHostToMember","moderator","getTransferHostToMemberRequestParams","sendDialPadKey","url","tones","generateSendDTMFRequestParams","cancelPhoneInvite","_options$invitee","generateCancelInviteRequestParams","cancelSIPInvite","_options$invitee2","generateCancelSIPInviteRequestParams","StatelessWebexPlugin"],"sources":["request.ts"],"sourcesContent":["// @ts-ignore\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n\nimport {MEETINGS} from '../constants';\nimport ParameterError from '../common/errors/parameter';\n\nimport MembersUtil from './util';\nimport MeetingUtil from '../meeting/util';\n\n/**\n * @class MembersRequest\n */\nexport default class MembersRequest extends StatelessWebexPlugin {\n namespace = MEETINGS;\n locusDeltaRequest: (options: object) => Promise<any>;\n\n /**\n * Constructor\n * @param {Object} attrs\n * @param {Object} options\n */\n constructor(attrs: {meeting: any}, options: object) {\n const {meeting, ...otherAttrs} = attrs;\n super(otherAttrs, options);\n\n this.locusDeltaRequest = MeetingUtil.generateLocusDeltaRequest(meeting);\n }\n\n /**\n *\n * @param {Object} options with format of {invitee: string, locusUrl: string}\n * @returns {Promise}\n * @throws {Error} if the options are not valid and complete, must have invitee with emailAddress OR email AND locusUrl\n * @memberof MembersRequest\n */\n addMembers(options: any) {\n if (\n !(\n !options ||\n !options.invitee ||\n !options.invitee.emailAddress ||\n !options.invitee.email ||\n !options.invitee.phoneNumber ||\n !options.locusUrl\n )\n ) {\n throw new ParameterError(\n 'invitee must be passed and the associated locus url for this meeting object must be defined.'\n );\n }\n const requestParams = MembersUtil.getAddMemberRequestParams(options);\n\n return this.locusDeltaRequest(requestParams);\n }\n\n /**\n *\n * @param {Object} options\n * @returns {Promise}\n * @throws {Error} if the options are not valid and complete, must have memberIds AND locusUrl\n * @memberof MembersRequest\n */\n admitMember(options: any) {\n if (!options || !options.locusUrl || !options.memberIds) {\n throw new ParameterError(\n 'memberIds must be an array passed and the associated locus url for this meeting object must be defined.'\n );\n }\n const requestParams = MembersUtil.getAdmitMemberRequestParams(options);\n\n return this.locusDeltaRequest(requestParams);\n }\n\n /**\n * Sends a request to remove a member\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.memberId ID of member\n * @returns {Promise}\n */\n removeMember(options) {\n if (!options || !options.locusUrl || !options.memberId) {\n throw new ParameterError(\n 'memberId must be defined, and the associated locus url for this meeting object must be defined.'\n );\n }\n\n const requestParams = MembersUtil.getRemoveMemberRequestParams(options);\n\n return this.locusDeltaRequest(requestParams);\n }\n\n /**\n * Sends a request to mute a member\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.memberId ID of member\n * @returns {Promise}\n */\n muteMember(options) {\n if (!options || !options.locusUrl || !options.memberId) {\n throw new ParameterError(\n 'memberId must be defined, and the associated locus url for this meeting object must be defined.'\n );\n }\n\n const requestParams = MembersUtil.getMuteMemberRequestParams(options);\n\n // @ts-ignore\n return this.locusDeltaRequest(requestParams);\n }\n\n /**\n * Sends a request to the DTMF endpoint to send tones\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.memberId ID of PSTN user\n * @returns {Promise}\n */\n assignRolesMember(options: any) {\n if (!options || !options.locusUrl || !options.memberId) {\n throw new ParameterError(\n 'memberId must be defined, and the associated locus url for this meeting object must be defined.'\n );\n }\n\n const requestParams = MembersUtil.getRoleAssignmentMemberRequestParams(options);\n\n return this.locusDeltaRequest(requestParams);\n }\n\n /**\n * Sends a request to move a meeting member into the lobby.\n * *\n * @param {Object} options - Request options.\n * @param {string} options.locusUrl - The locus URL for the meeting.\n * @param {string} options.memberId - The ID of the member to move.\n * @param {Object} body - The request payload.\n * @param {Object} body.moveToLobby - Container for move‐to‐lobby data.\n * @param {string[]} body.moveToLobby.participantIds - Array of participant IDs to move.\n * @returns {Promise} - Resolves with the locus‐delta response.\n */\n moveToLobbyMember(\n options: {locusUrl: string; memberId: string},\n body: {moveToLobby: {participantIds: string[]}}\n ) {\n if (!options || !options.locusUrl || !options.memberId) {\n throw new ParameterError(\n 'memberId must be defined, and the associated locus url for this meeting object must be defined.'\n );\n }\n\n const requestParams = MembersUtil.getMoveMemberToLobbyRequestParams(options, body);\n\n return this.locusDeltaRequest(requestParams);\n }\n\n /**\n * Sends a request to raise or lower a member's hand\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.memberId ID of member\n * @returns {Promise}\n */\n raiseOrLowerHandMember(options) {\n if (!options || !options.locusUrl || !options.memberId) {\n throw new ParameterError(\n 'memberId must be defined, and the associated locus url for this meeting object must be defined.'\n );\n }\n\n const requestParams = MembersUtil.getRaiseHandMemberRequestParams(options);\n\n return this.locusDeltaRequest(requestParams);\n }\n\n /**\n * Sends a request to lower all hands\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.requestingParticipantId ID of requesting participant\n * @returns {Promise}\n */\n lowerAllHandsMember(options) {\n if (!options || !options.locusUrl || !options.requestingParticipantId) {\n throw new ParameterError(\n 'requestingParticipantId must be defined, and the associated locus url for this meeting object must be defined.'\n );\n }\n\n const requestParams = MembersUtil.getLowerAllHandsMemberRequestParams(options);\n\n return this.locusDeltaRequest(requestParams);\n }\n\n /**\n *\n * @param {Object} options with format of {locusUrl: string, requestingParticipantId: string}\n * @returns {Promise}\n * @throws {Error} if the options are not valid and complete, must have requestingParticipantId AND locusUrl\n * @memberof MembersRequest\n */\n editDisplayNameMember(options: {locusUrl: string; requestingParticipantId: string}) {\n if (!options || !options.locusUrl || !options.requestingParticipantId) {\n throw new ParameterError(\n 'requestingParticipantId must be defined, and the associated locus url for this meeting object must be defined.'\n );\n }\n\n const requestParams = MembersUtil.editDisplayNameMemberRequestParams(options);\n\n return this.locusDeltaRequest(requestParams);\n }\n\n /**\n * Sends a request to raise or lower a member's hand\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.memberId ID of member\n * @param {String} options.moderator ID of moderator\n * @returns {Promise}\n */\n transferHostToMember(options) {\n if (!options || !options.locusUrl || !options.memberId || !options.moderator) {\n throw new ParameterError(\n 'memberId must be defined, the associated locus url, and the moderator for this meeting object must be defined.'\n );\n }\n\n const requestParams = MembersUtil.getTransferHostToMemberRequestParams(options);\n\n return this.locusDeltaRequest(requestParams);\n }\n\n /**\n * Sends a request to the DTMF endpoint to send tones\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.url device url SIP user\n * @param {String} options.tones a string of one or more DTMF tones to send\n * @param {String} options.memberId ID of PSTN user\n * @returns {Promise}\n */\n sendDialPadKey(options: {locusUrl: string; url: string; tones: string; memberId: string}) {\n // @ts-ignore\n if (\n !options ||\n !options.locusUrl ||\n !options.memberId ||\n !options.url ||\n // @ts-ignore\n (!options.tones && options.tones !== 0)\n ) {\n throw new ParameterError(\n 'memberId must be defined, the associated locus url, the device url and DTMF tones for this meeting object must be defined.'\n );\n }\n\n const requestParams = MembersUtil.generateSendDTMFRequestParams(options);\n\n return this.locusDeltaRequest(requestParams);\n }\n\n /**\n * @param {Object} options with format of {invitee: string, locusUrl: string}\n * @returns {Promise}\n * @throws {Error} if the options are not valid and complete, must have invitee with emailAddress OR email AND locusUrl\n * @memberof MembersRequest\n */\n cancelPhoneInvite(options: any) {\n if (!(options?.invitee?.phoneNumber || options?.locusUrl)) {\n throw new ParameterError(\n 'invitee must be passed and the associated locus url for this meeting object must be defined.'\n );\n }\n\n const requestParams = MembersUtil.generateCancelInviteRequestParams(options);\n\n return this.locusDeltaRequest(requestParams);\n }\n\n /**\n * @param {Object} options with format of {invitee: object, locusUrl: string}\n * @returns {Promise}\n * @throws {Error} if the options are not valid and complete, must have invitee with memberId AND locusUrl\n * @memberof MembersRequest\n */\n cancelSIPInvite(options: any) {\n if (!options?.invitee?.memberId || !options?.locusUrl) {\n throw new ParameterError(\n 'invitee must be passed and the associated locus url for this meeting object must be defined.'\n );\n }\n\n const requestParams = MembersUtil.generateCancelSIPInviteRequestParams(options);\n\n return this.locusDeltaRequest(requestParams);\n }\n}\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["_webexCore","require","_constants","_parameter","_interopRequireDefault","_util","_util2","_excluded","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","MembersRequest","exports","_StatelessWebexPlugin","_inherits2","_super","attrs","options","_this","_classCallCheck2","meeting","otherAttrs","_objectWithoutProperties2","_defineProperty2","_assertThisInitialized2","MEETINGS","locusDeltaRequest","MeetingUtil","generateLocusDeltaRequest","_createClass2","key","value","addMembers","invitee","emailAddress","email","phoneNumber","locusUrl","ParameterError","requestParams","MembersUtil","getAddMemberRequestParams","admitMember","memberIds","getAdmitMemberRequestParams","removeMember","memberId","getRemoveMemberRequestParams","muteMember","getMuteMemberRequestParams","assignRolesMember","getRoleAssignmentMemberRequestParams","moveToLobbyMember","body","getMoveMemberToLobbyRequestParams","raiseOrLowerHandMember","getRaiseHandMemberRequestParams","lowerAllHandsMember","requestingParticipantId","getLowerAllHandsMemberRequestParams","editDisplayNameMember","editDisplayNameMemberRequestParams","transferHostToMember","moderator","getTransferHostToMemberRequestParams","sendDialPadKey","url","tones","generateSendDTMFRequestParams","cancelPhoneInvite","_options$invitee","generateCancelInviteRequestParams","cancelInviteByMemberId","_options$invitee2","generateCancelInviteByMemberIdRequestParams","StatelessWebexPlugin"],"sources":["request.ts"],"sourcesContent":["// @ts-ignore\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n\nimport {MEETINGS} from '../constants';\nimport ParameterError from '../common/errors/parameter';\n\nimport MembersUtil from './util';\nimport MeetingUtil from '../meeting/util';\n\n/**\n * @class MembersRequest\n */\nexport default class MembersRequest extends StatelessWebexPlugin {\n namespace = MEETINGS;\n locusDeltaRequest: (options: object) => Promise<any>;\n\n /**\n * Constructor\n * @param {Object} attrs\n * @param {Object} options\n */\n constructor(attrs: {meeting: any}, options: object) {\n const {meeting, ...otherAttrs} = attrs;\n super(otherAttrs, options);\n\n this.locusDeltaRequest = MeetingUtil.generateLocusDeltaRequest(meeting);\n }\n\n /**\n *\n * @param {Object} options with format of {invitee: string, locusUrl: string}\n * @returns {Promise}\n * @throws {Error} if the options are not valid and complete, must have invitee with emailAddress OR email AND locusUrl\n * @memberof MembersRequest\n */\n addMembers(options: any) {\n if (\n !(\n !options ||\n !options.invitee ||\n !options.invitee.emailAddress ||\n !options.invitee.email ||\n !options.invitee.phoneNumber ||\n !options.locusUrl\n )\n ) {\n throw new ParameterError(\n 'invitee must be passed and the associated locus url for this meeting object must be defined.'\n );\n }\n const requestParams = MembersUtil.getAddMemberRequestParams(options);\n\n return this.locusDeltaRequest(requestParams);\n }\n\n /**\n *\n * @param {Object} options\n * @returns {Promise}\n * @throws {Error} if the options are not valid and complete, must have memberIds AND locusUrl\n * @memberof MembersRequest\n */\n admitMember(options: any) {\n if (!options || !options.locusUrl || !options.memberIds) {\n throw new ParameterError(\n 'memberIds must be an array passed and the associated locus url for this meeting object must be defined.'\n );\n }\n const requestParams = MembersUtil.getAdmitMemberRequestParams(options);\n\n return this.locusDeltaRequest(requestParams);\n }\n\n /**\n * Sends a request to remove a member\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.memberId ID of member\n * @returns {Promise}\n */\n removeMember(options) {\n if (!options || !options.locusUrl || !options.memberId) {\n throw new ParameterError(\n 'memberId must be defined, and the associated locus url for this meeting object must be defined.'\n );\n }\n\n const requestParams = MembersUtil.getRemoveMemberRequestParams(options);\n\n return this.locusDeltaRequest(requestParams);\n }\n\n /**\n * Sends a request to mute a member\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.memberId ID of member\n * @returns {Promise}\n */\n muteMember(options) {\n if (!options || !options.locusUrl || !options.memberId) {\n throw new ParameterError(\n 'memberId must be defined, and the associated locus url for this meeting object must be defined.'\n );\n }\n\n const requestParams = MembersUtil.getMuteMemberRequestParams(options);\n\n // @ts-ignore\n return this.locusDeltaRequest(requestParams);\n }\n\n /**\n * Sends a request to the DTMF endpoint to send tones\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.memberId ID of PSTN user\n * @returns {Promise}\n */\n assignRolesMember(options: any) {\n if (!options || !options.locusUrl || !options.memberId) {\n throw new ParameterError(\n 'memberId must be defined, and the associated locus url for this meeting object must be defined.'\n );\n }\n\n const requestParams = MembersUtil.getRoleAssignmentMemberRequestParams(options);\n\n return this.locusDeltaRequest(requestParams);\n }\n\n /**\n * Sends a request to move a meeting member into the lobby.\n * *\n * @param {Object} options - Request options.\n * @param {string} options.locusUrl - The locus URL for the meeting.\n * @param {string} options.memberId - The ID of the member to move.\n * @param {Object} body - The request payload.\n * @param {Object} body.moveToLobby - Container for move‐to‐lobby data.\n * @param {string[]} body.moveToLobby.participantIds - Array of participant IDs to move.\n * @returns {Promise} - Resolves with the locus‐delta response.\n */\n moveToLobbyMember(\n options: {locusUrl: string; memberId: string},\n body: {moveToLobby: {participantIds: string[]}}\n ) {\n if (!options || !options.locusUrl || !options.memberId) {\n throw new ParameterError(\n 'memberId must be defined, and the associated locus url for this meeting object must be defined.'\n );\n }\n\n const requestParams = MembersUtil.getMoveMemberToLobbyRequestParams(options, body);\n\n return this.locusDeltaRequest(requestParams);\n }\n\n /**\n * Sends a request to raise or lower a member's hand\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.memberId ID of member\n * @returns {Promise}\n */\n raiseOrLowerHandMember(options) {\n if (!options || !options.locusUrl || !options.memberId) {\n throw new ParameterError(\n 'memberId must be defined, and the associated locus url for this meeting object must be defined.'\n );\n }\n\n const requestParams = MembersUtil.getRaiseHandMemberRequestParams(options);\n\n return this.locusDeltaRequest(requestParams);\n }\n\n /**\n * Sends a request to lower all hands\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.requestingParticipantId ID of requesting participant\n * @returns {Promise}\n */\n lowerAllHandsMember(options) {\n if (!options || !options.locusUrl || !options.requestingParticipantId) {\n throw new ParameterError(\n 'requestingParticipantId must be defined, and the associated locus url for this meeting object must be defined.'\n );\n }\n\n const requestParams = MembersUtil.getLowerAllHandsMemberRequestParams(options);\n\n return this.locusDeltaRequest(requestParams);\n }\n\n /**\n *\n * @param {Object} options with format of {locusUrl: string, requestingParticipantId: string}\n * @returns {Promise}\n * @throws {Error} if the options are not valid and complete, must have requestingParticipantId AND locusUrl\n * @memberof MembersRequest\n */\n editDisplayNameMember(options: {locusUrl: string; requestingParticipantId: string}) {\n if (!options || !options.locusUrl || !options.requestingParticipantId) {\n throw new ParameterError(\n 'requestingParticipantId must be defined, and the associated locus url for this meeting object must be defined.'\n );\n }\n\n const requestParams = MembersUtil.editDisplayNameMemberRequestParams(options);\n\n return this.locusDeltaRequest(requestParams);\n }\n\n /**\n * Sends a request to raise or lower a member's hand\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.memberId ID of member\n * @param {String} options.moderator ID of moderator\n * @returns {Promise}\n */\n transferHostToMember(options) {\n if (!options || !options.locusUrl || !options.memberId || !options.moderator) {\n throw new ParameterError(\n 'memberId must be defined, the associated locus url, and the moderator for this meeting object must be defined.'\n );\n }\n\n const requestParams = MembersUtil.getTransferHostToMemberRequestParams(options);\n\n return this.locusDeltaRequest(requestParams);\n }\n\n /**\n * Sends a request to the DTMF endpoint to send tones\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.url device url SIP user\n * @param {String} options.tones a string of one or more DTMF tones to send\n * @param {String} options.memberId ID of PSTN user\n * @returns {Promise}\n */\n sendDialPadKey(options: {locusUrl: string; url: string; tones: string; memberId: string}) {\n // @ts-ignore\n if (\n !options ||\n !options.locusUrl ||\n !options.memberId ||\n !options.url ||\n // @ts-ignore\n (!options.tones && options.tones !== 0)\n ) {\n throw new ParameterError(\n 'memberId must be defined, the associated locus url, the device url and DTMF tones for this meeting object must be defined.'\n );\n }\n\n const requestParams = MembersUtil.generateSendDTMFRequestParams(options);\n\n return this.locusDeltaRequest(requestParams);\n }\n\n /**\n * @param {Object} options with format of {invitee: string, locusUrl: string}\n * @returns {Promise}\n * @throws {Error} if the options are not valid and complete, must have invitee with emailAddress OR email AND locusUrl\n * @memberof MembersRequest\n */\n cancelPhoneInvite(options: any) {\n if (!(options?.invitee?.phoneNumber || options?.locusUrl)) {\n throw new ParameterError(\n 'invitee must be passed and the associated locus url for this meeting object must be defined.'\n );\n }\n\n const requestParams = MembersUtil.generateCancelInviteRequestParams(options);\n\n return this.locusDeltaRequest(requestParams);\n }\n\n /**\n * @param {Object} options with format of {invitee: object, locusUrl: string}\n * @returns {Promise}\n * @throws {Error} if the options are not valid and complete, must have invitee with memberId AND locusUrl\n * @memberof MembersRequest\n */\n cancelInviteByMemberId(options: any) {\n if (!options?.invitee?.memberId || !options?.locusUrl) {\n throw new ParameterError(\n 'invitee must be passed and the associated locus url for this meeting object must be defined.'\n );\n }\n\n const requestParams = MembersUtil.generateCancelInviteByMemberIdRequestParams(options);\n\n return this.locusDeltaRequest(requestParams);\n }\n}\n"],"mappings":"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"}
|
package/dist/members/util.js
CHANGED
@@ -13,6 +13,7 @@ _Object$defineProperty(exports, "__esModule", {
|
|
13
13
|
exports.default = void 0;
|
14
14
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
15
15
|
var _uuid = _interopRequireDefault(require("uuid"));
|
16
|
+
var _lodash = require("lodash");
|
16
17
|
var _constants = require("../constants");
|
17
18
|
function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
18
19
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
@@ -47,10 +48,12 @@ var MembersUtil = {
|
|
47
48
|
*/
|
48
49
|
getAddMemberBody: function getAddMemberBody(options) {
|
49
50
|
return {
|
50
|
-
invitees: [_objectSpread({
|
51
|
+
invitees: [_objectSpread(_objectSpread({
|
51
52
|
address: options.invitee.emailAddress || options.invitee.email || options.invitee.phoneNumber
|
52
53
|
}, options.invitee.roles ? {
|
53
54
|
roles: options.invitee.roles
|
55
|
+
} : {}), (0, _lodash.has)(options.invitee, 'isInternalNumber') ? {
|
56
|
+
isInternalNumber: options.invitee.isInternalNumber
|
54
57
|
} : {})],
|
55
58
|
alertIfActive: options.alertIfActive
|
56
59
|
};
|
@@ -110,6 +113,9 @@ var MembersUtil = {
|
|
110
113
|
return true;
|
111
114
|
}
|
112
115
|
if (invitee.phoneNumber) {
|
116
|
+
if (invitee.isInternalNumber) {
|
117
|
+
return !_constants.DIALER_REGEX.INTERNAL_NUMBER.test(invitee.phoneNumber);
|
118
|
+
}
|
113
119
|
return !_constants.DIALER_REGEX.E164_FORMAT.test(invitee.phoneNumber);
|
114
120
|
}
|
115
121
|
return !(_constants.VALID_EMAIL_ADDRESS.test(invitee.email || invitee.emailAddress) || _constants.DIALER_REGEX.SIP_ADDRESS.test(invitee.email || invitee.emailAddress));
|
@@ -180,14 +186,16 @@ var MembersUtil = {
|
|
180
186
|
* @param {String} requestingParticipantId id of the participant who is sending request (optional)
|
181
187
|
* @param {String} alias alias name
|
182
188
|
* @param {String} locusUrl url
|
189
|
+
* @param {String} suffix optional suffix
|
183
190
|
* @returns {Object} consists of {memberID: string, requestingParticipantId: string, alias: string, locusUrl: string}
|
184
191
|
*/
|
185
|
-
generateEditDisplayNameMemberOptions: function generateEditDisplayNameMemberOptions(memberId, requestingParticipantId, alias, locusUrl) {
|
192
|
+
generateEditDisplayNameMemberOptions: function generateEditDisplayNameMemberOptions(memberId, requestingParticipantId, alias, locusUrl, suffix) {
|
186
193
|
return {
|
187
194
|
memberId: memberId,
|
188
195
|
requestingParticipantId: requestingParticipantId,
|
189
196
|
alias: alias,
|
190
|
-
locusUrl: locusUrl
|
197
|
+
locusUrl: locusUrl,
|
198
|
+
suffix: suffix
|
191
199
|
};
|
192
200
|
},
|
193
201
|
getMuteMemberRequestParams: function getMuteMemberRequestParams(options) {
|
@@ -289,6 +297,9 @@ var MembersUtil = {
|
|
289
297
|
aliasValue: options.alias,
|
290
298
|
requestingParticipantId: options.requestingParticipantId
|
291
299
|
};
|
300
|
+
if (options.suffix !== undefined) {
|
301
|
+
body.suffixValue = options.suffix;
|
302
|
+
}
|
292
303
|
var uri = "".concat(options.locusUrl, "/").concat(_constants.PARTICIPANT, "/").concat(options.memberId, "/").concat(_constants.ALIAS);
|
293
304
|
return {
|
294
305
|
method: _constants.HTTP_VERBS.POST,
|
@@ -360,18 +371,24 @@ var MembersUtil = {
|
|
360
371
|
};
|
361
372
|
return requestParams;
|
362
373
|
},
|
363
|
-
|
374
|
+
cancelInviteByMemberIdOptions: function cancelInviteByMemberIdOptions(invitee, locusUrl) {
|
364
375
|
return {
|
365
376
|
invitee: invitee,
|
366
377
|
locusUrl: locusUrl
|
367
378
|
};
|
368
379
|
},
|
369
|
-
|
380
|
+
generateCancelInviteByMemberIdRequestParams: function generateCancelInviteByMemberIdRequestParams(options) {
|
381
|
+
var _options$invitee = options.invitee,
|
382
|
+
memberId = _options$invitee.memberId,
|
383
|
+
isInternalNumber = _options$invitee.isInternalNumber;
|
384
|
+
var hasIsInternalNumberProp = (0, _lodash.has)(options.invitee, 'isInternalNumber');
|
370
385
|
var body = {
|
371
386
|
actionType: _constants._REMOVE_,
|
372
|
-
invitees: [{
|
373
|
-
address:
|
374
|
-
}
|
387
|
+
invitees: [_objectSpread({
|
388
|
+
address: memberId
|
389
|
+
}, hasIsInternalNumberProp ? {
|
390
|
+
isInternalNumber: isInternalNumber
|
391
|
+
} : {})]
|
375
392
|
};
|
376
393
|
var requestParams = {
|
377
394
|
method: _constants.HTTP_VERBS.PUT,
|
package/dist/members/util.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_uuid","_interopRequireDefault","require","_constants","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","MembersUtil","generateAddMemberOptions","invitee","locusUrl","alertIfActive","generateAdmitMemberOptions","memberIds","getAddMemberBody","options","invitees","address","emailAddress","email","phoneNumber","roles","getAdmitMemberRequestBody","sessionLocusUrls","body","admit","participantIds","authorizingLocusUrl","getAdmitMemberRequestParams","format","baseUrl","mainLocusUrl","uri","concat","CONTROLS","method","HTTP_VERBS","PUT","getAddMemberRequestParams","requestParams","isInvalidInvitee","DIALER_REGEX","E164_FORMAT","test","VALID_EMAIL_ADDRESS","SIP_ADDRESS","getRemoveMemberRequestParams","reason","PARTICIPANT","memberId","LEAVE","generateTransferHostMemberOptions","transfer","moderator","generateRemoveMemberOptions","removal","_FORCED_","generateMuteMemberOptions","status","isAudio","muted","generateRaiseHandMemberOptions","raised","generateRoleAssignmentMemberOptions","generateLowerAllHandsMemberOptions","requestingParticipantId","undefined","generateEditDisplayNameMemberOptions","alias","getMuteMemberRequestParams","property","PATCH","getMoveMemberToLobbyRequestBody","moveToLobby","getMoveMemberToLobbyRequestParams","getAddedRoleShape","role","roleShape","type","hasRole","hostKey","getRoleAssignmentMemberRequestParams","getRaiseHandMemberRequestParams","hand","getLowerAllHandsMemberRequestParams","editDisplayNameMemberRequestParams","aliasValue","ALIAS","POST","getTransferHostToMemberRequestParams","genderateSendDTMFOptions","url","tones","generateSendDTMFRequestParams","_ref","device","dtmf","correlationId","uuid","v4","direction","SEND_DTMF_ENDPOINT","cancelPhoneInviteOptions","generateCancelInviteRequestParams","actionType","_REMOVE_","cancelSIPInviteOptions","generateCancelSIPInviteRequestParams","_default","exports"],"sources":["util.ts"],"sourcesContent":["import uuid from 'uuid';\nimport {\n HTTP_VERBS,\n CONTROLS,\n _FORCED_,\n LEAVE,\n PARTICIPANT,\n VALID_EMAIL_ADDRESS,\n DIALER_REGEX,\n SEND_DTMF_ENDPOINT,\n _REMOVE_,\n ALIAS,\n} from '../constants';\n\nimport {RoleAssignmentOptions, RoleAssignmentRequest, ServerRoleShape} from './types';\n\nconst MembersUtil = {\n /**\n * @param {Object} invitee with emailAddress, email or phoneNumber\n * @param {String} locusUrl\n * @param {Boolean} alertIfActive\n * @returns {Object} the format object\n */\n generateAddMemberOptions: (invitee: object, locusUrl: string, alertIfActive: boolean) => ({\n invitee,\n locusUrl,\n alertIfActive,\n }),\n\n /**\n * @param {Array} memberIds\n * @param {String} locusUrl\n * @returns {Object} the format object\n */\n generateAdmitMemberOptions: (memberIds: Array<any>, locusUrl: string) => ({\n locusUrl,\n memberIds,\n }),\n\n /**\n * @param {Object} options with {invitee: {emailAddress, email, phoneNumber}, alertIfActive}\n * @returns {Object} with {invitees: [{address}], alertIfActive}\n */\n getAddMemberBody: (options: any) => ({\n invitees: [\n {\n address:\n options.invitee.emailAddress || options.invitee.email || options.invitee.phoneNumber,\n ...(options.invitee.roles ? {roles: options.invitee.roles} : {}),\n },\n ],\n alertIfActive: options.alertIfActive,\n }),\n\n /**\n * @param {Object} options with {memberIds, authorizingLocusUrl}\n * @returns {Object} admit with {memberIds}\n */\n getAdmitMemberRequestBody: (options: any) => {\n const {memberIds, sessionLocusUrls} = options;\n const body: any = {admit: {participantIds: memberIds}};\n if (sessionLocusUrls) {\n const {authorizingLocusUrl} = sessionLocusUrls;\n\n return {authorizingLocusUrl, ...body};\n }\n\n return body;\n },\n\n /**\n * @param {Object} format with {memberIds, locusUrl, sessionLocusUrls}\n * @returns {Object} the request parameters (method, uri, body) needed to make a admitMember request\n * if a host/cohost is in a breakout session, the locus url should be the main session locus url\n */\n getAdmitMemberRequestParams: (format: any) => {\n const body = MembersUtil.getAdmitMemberRequestBody(format);\n const {locusUrl, sessionLocusUrls} = format;\n const baseUrl = sessionLocusUrls?.mainLocusUrl || locusUrl;\n const uri = `${baseUrl}/${CONTROLS}`;\n\n return {\n method: HTTP_VERBS.PUT,\n uri,\n body,\n };\n },\n\n /**\n * @param {Object} format with {invitee {emailAddress, email, phoneNumber}, locusUrl, alertIfActive}\n * @returns {Object} the request parameters (method, uri, body) needed to make a addMember request\n */\n getAddMemberRequestParams: (format: any) => {\n const body = MembersUtil.getAddMemberBody(format);\n const requestParams = {\n method: HTTP_VERBS.PUT,\n uri: format.locusUrl,\n body,\n };\n\n return requestParams;\n },\n\n isInvalidInvitee: (invitee) => {\n if (!(invitee && (invitee.email || invitee.emailAddress || invitee.phoneNumber))) {\n return true;\n }\n\n if (invitee.phoneNumber) {\n return !DIALER_REGEX.E164_FORMAT.test(invitee.phoneNumber);\n }\n\n return !(\n VALID_EMAIL_ADDRESS.test(invitee.email || invitee.emailAddress) ||\n DIALER_REGEX.SIP_ADDRESS.test(invitee.email || invitee.emailAddress)\n );\n },\n\n getRemoveMemberRequestParams: (options) => {\n const body = {\n reason: options.reason,\n };\n const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${LEAVE}`;\n\n return {\n method: HTTP_VERBS.PUT,\n uri,\n body,\n };\n },\n\n generateTransferHostMemberOptions: (transfer, moderator, locusUrl) => ({\n moderator,\n locusUrl,\n memberId: transfer,\n }),\n\n generateRemoveMemberOptions: (removal, locusUrl) => ({\n reason: _FORCED_,\n memberId: removal,\n locusUrl,\n }),\n\n generateMuteMemberOptions: (memberId, status, locusUrl, isAudio) => ({\n memberId,\n muted: status,\n locusUrl,\n isAudio,\n }),\n\n generateRaiseHandMemberOptions: (memberId, status, locusUrl) => ({\n memberId,\n raised: status,\n locusUrl,\n }),\n\n /**\n * @param {String} memberId\n * @param {[ServerRoleShape]} roles\n * @param {String} locusUrl\n * @returns {RoleAssignmentOptions}\n */\n generateRoleAssignmentMemberOptions: (\n memberId: string,\n roles: Array<ServerRoleShape>,\n locusUrl: string\n ): RoleAssignmentOptions => ({\n memberId,\n roles,\n locusUrl,\n }),\n\n generateLowerAllHandsMemberOptions: (requestingParticipantId, locusUrl, roles) => ({\n requestingParticipantId,\n locusUrl,\n ...(roles !== undefined && {roles}),\n }),\n\n /**\n * @param {String} memberId id of the participant who is receiving request\n * @param {String} requestingParticipantId id of the participant who is sending request (optional)\n * @param {String} alias alias name\n * @param {String} locusUrl url\n * @returns {Object} consists of {memberID: string, requestingParticipantId: string, alias: string, locusUrl: string}\n */\n generateEditDisplayNameMemberOptions: (memberId, requestingParticipantId, alias, locusUrl) => ({\n memberId,\n requestingParticipantId,\n alias,\n locusUrl,\n }),\n\n getMuteMemberRequestParams: (options) => {\n const property = options.isAudio === false ? 'video' : 'audio';\n const body = {\n [property]: {\n muted: options.muted,\n },\n };\n const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${CONTROLS}`;\n\n return {\n method: HTTP_VERBS.PATCH,\n uri,\n body,\n };\n },\n\n getMoveMemberToLobbyRequestBody: (memberId: string) => ({\n moveToLobby: {\n participantIds: [memberId],\n },\n }),\n\n getMoveMemberToLobbyRequestParams: (options: {memberId: string; locusUrl: string}, body) => {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${CONTROLS}`;\n\n return {\n method: HTTP_VERBS.PATCH,\n uri,\n body,\n };\n },\n\n /**\n * @param {ServerRoleShape} role\n * @returns {ServerRoleShape} the role shape to be added to the body\n */\n getAddedRoleShape: (role: ServerRoleShape): ServerRoleShape => {\n const roleShape: ServerRoleShape = {type: role.type, hasRole: role.hasRole};\n\n if (role.hostKey) {\n roleShape.hostKey = role.hostKey;\n }\n\n return roleShape;\n },\n\n /**\n * @param {RoleAssignmentOptions} options\n * @returns {RoleAssignmentRequest} the request parameters (method, uri, body) needed to make a addMember request\n */\n getRoleAssignmentMemberRequestParams: (options: RoleAssignmentOptions): RoleAssignmentRequest => {\n const body = {role: {roles: []}};\n options.roles.forEach((role) => {\n body.role.roles.push(MembersUtil.getAddedRoleShape(role));\n });\n\n const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${CONTROLS}`;\n\n return {\n method: HTTP_VERBS.PATCH,\n uri,\n body,\n };\n },\n\n getRaiseHandMemberRequestParams: (options) => {\n const body = {\n hand: {\n raised: options.raised,\n },\n };\n const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${CONTROLS}`;\n\n return {\n method: HTTP_VERBS.PATCH,\n uri,\n body,\n };\n },\n\n getLowerAllHandsMemberRequestParams: (options) => {\n const body = {\n hand: {\n raised: false,\n ...(options.roles !== undefined && {roles: options.roles}),\n },\n requestingParticipantId: options.requestingParticipantId,\n };\n const uri = `${options.locusUrl}/${CONTROLS}`;\n\n return {\n method: HTTP_VERBS.PATCH,\n uri,\n body,\n };\n },\n\n /**\n * @param {Object} options with format of {locusUrl: string, requestingParticipantId: string}\n * @returns {Object} request parameters (method, uri, body) needed to make a editDisplayName request\n */\n editDisplayNameMemberRequestParams: (options) => {\n const body = {\n aliasValue: options.alias,\n requestingParticipantId: options.requestingParticipantId,\n };\n const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${ALIAS}`;\n\n return {\n method: HTTP_VERBS.POST,\n uri,\n body,\n };\n },\n\n getTransferHostToMemberRequestParams: (options) => {\n const body = {\n role: {\n moderator: options.moderator,\n },\n };\n const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${CONTROLS}`;\n\n return {\n method: HTTP_VERBS.PATCH,\n uri,\n body,\n };\n },\n\n genderateSendDTMFOptions: (url, tones, memberId, locusUrl) => ({\n url,\n tones,\n memberId,\n locusUrl,\n }),\n\n generateSendDTMFRequestParams: ({url, tones, memberId, locusUrl}) => {\n const body = {\n device: {\n url,\n },\n memberId,\n dtmf: {\n correlationId: uuid.v4(),\n tones,\n direction: 'transmit',\n },\n };\n const uri = `${locusUrl}/${PARTICIPANT}/${memberId}/${SEND_DTMF_ENDPOINT}`;\n\n return {\n method: HTTP_VERBS.POST,\n uri,\n body,\n };\n },\n\n cancelPhoneInviteOptions: (invitee, locusUrl) => ({\n invitee,\n locusUrl,\n }),\n\n generateCancelInviteRequestParams: (options) => {\n const body = {\n actionType: _REMOVE_,\n invitees: [\n {\n address: options.invitee.phoneNumber,\n },\n ],\n };\n const requestParams = {\n method: HTTP_VERBS.PUT,\n uri: options.locusUrl,\n body,\n };\n\n return requestParams;\n },\n\n cancelSIPInviteOptions: (invitee, locusUrl) => ({\n invitee,\n locusUrl,\n }),\n\n generateCancelSIPInviteRequestParams: (options) => {\n const body = {\n actionType: _REMOVE_,\n invitees: [\n {\n address: options.invitee.memberId,\n },\n ],\n };\n const requestParams = {\n method: HTTP_VERBS.PUT,\n uri: options.locusUrl,\n body,\n };\n\n return requestParams;\n },\n};\n\nexport default MembersUtil;\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["_uuid","_interopRequireDefault","require","_lodash","_constants","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","MembersUtil","generateAddMemberOptions","invitee","locusUrl","alertIfActive","generateAdmitMemberOptions","memberIds","getAddMemberBody","options","invitees","address","emailAddress","email","phoneNumber","roles","has","isInternalNumber","getAdmitMemberRequestBody","sessionLocusUrls","body","admit","participantIds","authorizingLocusUrl","getAdmitMemberRequestParams","format","baseUrl","mainLocusUrl","uri","concat","CONTROLS","method","HTTP_VERBS","PUT","getAddMemberRequestParams","requestParams","isInvalidInvitee","DIALER_REGEX","INTERNAL_NUMBER","test","E164_FORMAT","VALID_EMAIL_ADDRESS","SIP_ADDRESS","getRemoveMemberRequestParams","reason","PARTICIPANT","memberId","LEAVE","generateTransferHostMemberOptions","transfer","moderator","generateRemoveMemberOptions","removal","_FORCED_","generateMuteMemberOptions","status","isAudio","muted","generateRaiseHandMemberOptions","raised","generateRoleAssignmentMemberOptions","generateLowerAllHandsMemberOptions","requestingParticipantId","undefined","generateEditDisplayNameMemberOptions","alias","suffix","getMuteMemberRequestParams","property","PATCH","getMoveMemberToLobbyRequestBody","moveToLobby","getMoveMemberToLobbyRequestParams","getAddedRoleShape","role","roleShape","type","hasRole","hostKey","getRoleAssignmentMemberRequestParams","getRaiseHandMemberRequestParams","hand","getLowerAllHandsMemberRequestParams","editDisplayNameMemberRequestParams","aliasValue","suffixValue","ALIAS","POST","getTransferHostToMemberRequestParams","genderateSendDTMFOptions","url","tones","generateSendDTMFRequestParams","_ref","device","dtmf","correlationId","uuid","v4","direction","SEND_DTMF_ENDPOINT","cancelPhoneInviteOptions","generateCancelInviteRequestParams","actionType","_REMOVE_","cancelInviteByMemberIdOptions","generateCancelInviteByMemberIdRequestParams","_options$invitee","hasIsInternalNumberProp","_default","exports"],"sources":["util.ts"],"sourcesContent":["import uuid from 'uuid';\nimport {has} from 'lodash';\nimport {\n HTTP_VERBS,\n CONTROLS,\n _FORCED_,\n LEAVE,\n PARTICIPANT,\n VALID_EMAIL_ADDRESS,\n DIALER_REGEX,\n SEND_DTMF_ENDPOINT,\n _REMOVE_,\n ALIAS,\n} from '../constants';\n\nimport {RoleAssignmentOptions, RoleAssignmentRequest, ServerRoleShape} from './types';\nimport {Invitee} from '../meeting/type';\n\nconst MembersUtil = {\n /**\n * @param {Object} invitee with emailAddress, email or phoneNumber\n * @param {String} locusUrl\n * @param {Boolean} alertIfActive\n * @returns {Object} the format object\n */\n generateAddMemberOptions: (invitee: object, locusUrl: string, alertIfActive: boolean) => ({\n invitee,\n locusUrl,\n alertIfActive,\n }),\n\n /**\n * @param {Array} memberIds\n * @param {String} locusUrl\n * @returns {Object} the format object\n */\n generateAdmitMemberOptions: (memberIds: Array<any>, locusUrl: string) => ({\n locusUrl,\n memberIds,\n }),\n\n /**\n * @param {Object} options with {invitee: {emailAddress, email, phoneNumber}, alertIfActive}\n * @returns {Object} with {invitees: [{address}], alertIfActive}\n */\n getAddMemberBody: (options: any) => ({\n invitees: [\n {\n address:\n options.invitee.emailAddress || options.invitee.email || options.invitee.phoneNumber,\n ...(options.invitee.roles ? {roles: options.invitee.roles} : {}),\n ...(has(options.invitee, 'isInternalNumber')\n ? {isInternalNumber: options.invitee.isInternalNumber}\n : {}),\n },\n ],\n alertIfActive: options.alertIfActive,\n }),\n\n /**\n * @param {Object} options with {memberIds, authorizingLocusUrl}\n * @returns {Object} admit with {memberIds}\n */\n getAdmitMemberRequestBody: (options: any) => {\n const {memberIds, sessionLocusUrls} = options;\n const body: any = {admit: {participantIds: memberIds}};\n if (sessionLocusUrls) {\n const {authorizingLocusUrl} = sessionLocusUrls;\n\n return {authorizingLocusUrl, ...body};\n }\n\n return body;\n },\n\n /**\n * @param {Object} format with {memberIds, locusUrl, sessionLocusUrls}\n * @returns {Object} the request parameters (method, uri, body) needed to make a admitMember request\n * if a host/cohost is in a breakout session, the locus url should be the main session locus url\n */\n getAdmitMemberRequestParams: (format: any) => {\n const body = MembersUtil.getAdmitMemberRequestBody(format);\n const {locusUrl, sessionLocusUrls} = format;\n const baseUrl = sessionLocusUrls?.mainLocusUrl || locusUrl;\n const uri = `${baseUrl}/${CONTROLS}`;\n\n return {\n method: HTTP_VERBS.PUT,\n uri,\n body,\n };\n },\n\n /**\n * @param {Object} format with {invitee {emailAddress, email, phoneNumber}, locusUrl, alertIfActive}\n * @returns {Object} the request parameters (method, uri, body) needed to make a addMember request\n */\n getAddMemberRequestParams: (format: any) => {\n const body = MembersUtil.getAddMemberBody(format);\n const requestParams = {\n method: HTTP_VERBS.PUT,\n uri: format.locusUrl,\n body,\n };\n\n return requestParams;\n },\n\n isInvalidInvitee: (invitee: Invitee) => {\n if (!(invitee && (invitee.email || invitee.emailAddress || invitee.phoneNumber))) {\n return true;\n }\n\n if (invitee.phoneNumber) {\n if (invitee.isInternalNumber) {\n return !DIALER_REGEX.INTERNAL_NUMBER.test(invitee.phoneNumber);\n }\n\n return !DIALER_REGEX.E164_FORMAT.test(invitee.phoneNumber);\n }\n\n return !(\n VALID_EMAIL_ADDRESS.test(invitee.email || invitee.emailAddress) ||\n DIALER_REGEX.SIP_ADDRESS.test(invitee.email || invitee.emailAddress)\n );\n },\n\n getRemoveMemberRequestParams: (options) => {\n const body = {\n reason: options.reason,\n };\n const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${LEAVE}`;\n\n return {\n method: HTTP_VERBS.PUT,\n uri,\n body,\n };\n },\n\n generateTransferHostMemberOptions: (transfer, moderator, locusUrl) => ({\n moderator,\n locusUrl,\n memberId: transfer,\n }),\n\n generateRemoveMemberOptions: (removal, locusUrl) => ({\n reason: _FORCED_,\n memberId: removal,\n locusUrl,\n }),\n\n generateMuteMemberOptions: (memberId, status, locusUrl, isAudio) => ({\n memberId,\n muted: status,\n locusUrl,\n isAudio,\n }),\n\n generateRaiseHandMemberOptions: (memberId, status, locusUrl) => ({\n memberId,\n raised: status,\n locusUrl,\n }),\n\n /**\n * @param {String} memberId\n * @param {[ServerRoleShape]} roles\n * @param {String} locusUrl\n * @returns {RoleAssignmentOptions}\n */\n generateRoleAssignmentMemberOptions: (\n memberId: string,\n roles: Array<ServerRoleShape>,\n locusUrl: string\n ): RoleAssignmentOptions => ({\n memberId,\n roles,\n locusUrl,\n }),\n\n generateLowerAllHandsMemberOptions: (requestingParticipantId, locusUrl, roles) => ({\n requestingParticipantId,\n locusUrl,\n ...(roles !== undefined && {roles}),\n }),\n\n /**\n * @param {String} memberId id of the participant who is receiving request\n * @param {String} requestingParticipantId id of the participant who is sending request (optional)\n * @param {String} alias alias name\n * @param {String} locusUrl url\n * @param {String} suffix optional suffix\n * @returns {Object} consists of {memberID: string, requestingParticipantId: string, alias: string, locusUrl: string}\n */\n generateEditDisplayNameMemberOptions: (\n memberId,\n requestingParticipantId,\n alias,\n locusUrl,\n suffix\n ) => ({\n memberId,\n requestingParticipantId,\n alias,\n locusUrl,\n suffix,\n }),\n\n getMuteMemberRequestParams: (options) => {\n const property = options.isAudio === false ? 'video' : 'audio';\n const body = {\n [property]: {\n muted: options.muted,\n },\n };\n const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${CONTROLS}`;\n\n return {\n method: HTTP_VERBS.PATCH,\n uri,\n body,\n };\n },\n\n getMoveMemberToLobbyRequestBody: (memberId: string) => ({\n moveToLobby: {\n participantIds: [memberId],\n },\n }),\n\n getMoveMemberToLobbyRequestParams: (options: {memberId: string; locusUrl: string}, body) => {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${CONTROLS}`;\n\n return {\n method: HTTP_VERBS.PATCH,\n uri,\n body,\n };\n },\n\n /**\n * @param {ServerRoleShape} role\n * @returns {ServerRoleShape} the role shape to be added to the body\n */\n getAddedRoleShape: (role: ServerRoleShape): ServerRoleShape => {\n const roleShape: ServerRoleShape = {type: role.type, hasRole: role.hasRole};\n\n if (role.hostKey) {\n roleShape.hostKey = role.hostKey;\n }\n\n return roleShape;\n },\n\n /**\n * @param {RoleAssignmentOptions} options\n * @returns {RoleAssignmentRequest} the request parameters (method, uri, body) needed to make a addMember request\n */\n getRoleAssignmentMemberRequestParams: (options: RoleAssignmentOptions): RoleAssignmentRequest => {\n const body = {role: {roles: []}};\n options.roles.forEach((role) => {\n body.role.roles.push(MembersUtil.getAddedRoleShape(role));\n });\n\n const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${CONTROLS}`;\n\n return {\n method: HTTP_VERBS.PATCH,\n uri,\n body,\n };\n },\n\n getRaiseHandMemberRequestParams: (options) => {\n const body = {\n hand: {\n raised: options.raised,\n },\n };\n const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${CONTROLS}`;\n\n return {\n method: HTTP_VERBS.PATCH,\n uri,\n body,\n };\n },\n\n getLowerAllHandsMemberRequestParams: (options) => {\n const body = {\n hand: {\n raised: false,\n ...(options.roles !== undefined && {roles: options.roles}),\n },\n requestingParticipantId: options.requestingParticipantId,\n };\n const uri = `${options.locusUrl}/${CONTROLS}`;\n\n return {\n method: HTTP_VERBS.PATCH,\n uri,\n body,\n };\n },\n\n /**\n * @param {Object} options with format of {locusUrl: string, requestingParticipantId: string}\n * @returns {Object} request parameters (method, uri, body) needed to make a editDisplayName request\n */\n editDisplayNameMemberRequestParams: (options) => {\n const body: {\n aliasValue: string;\n requestingParticipantId: string;\n suffixValue?: string;\n } = {\n aliasValue: options.alias,\n requestingParticipantId: options.requestingParticipantId,\n };\n\n if (options.suffix !== undefined) {\n body.suffixValue = options.suffix;\n }\n const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${ALIAS}`;\n\n return {\n method: HTTP_VERBS.POST,\n uri,\n body,\n };\n },\n\n getTransferHostToMemberRequestParams: (options) => {\n const body = {\n role: {\n moderator: options.moderator,\n },\n };\n const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${CONTROLS}`;\n\n return {\n method: HTTP_VERBS.PATCH,\n uri,\n body,\n };\n },\n\n genderateSendDTMFOptions: (url, tones, memberId, locusUrl) => ({\n url,\n tones,\n memberId,\n locusUrl,\n }),\n\n generateSendDTMFRequestParams: ({url, tones, memberId, locusUrl}) => {\n const body = {\n device: {\n url,\n },\n memberId,\n dtmf: {\n correlationId: uuid.v4(),\n tones,\n direction: 'transmit',\n },\n };\n const uri = `${locusUrl}/${PARTICIPANT}/${memberId}/${SEND_DTMF_ENDPOINT}`;\n\n return {\n method: HTTP_VERBS.POST,\n uri,\n body,\n };\n },\n\n cancelPhoneInviteOptions: (invitee, locusUrl) => ({\n invitee,\n locusUrl,\n }),\n\n generateCancelInviteRequestParams: (options) => {\n const body = {\n actionType: _REMOVE_,\n invitees: [\n {\n address: options.invitee.phoneNumber,\n },\n ],\n };\n const requestParams = {\n method: HTTP_VERBS.PUT,\n uri: options.locusUrl,\n body,\n };\n\n return requestParams;\n },\n\n cancelInviteByMemberIdOptions: (invitee, locusUrl) => ({\n invitee,\n locusUrl,\n }),\n\n generateCancelInviteByMemberIdRequestParams: (options) => {\n const {memberId, isInternalNumber} = options.invitee;\n const hasIsInternalNumberProp = has(options.invitee, 'isInternalNumber');\n const body = {\n actionType: _REMOVE_,\n invitees: [\n {\n address: memberId,\n ...(hasIsInternalNumberProp ? {isInternalNumber} : {}),\n },\n ],\n };\n const requestParams = {\n method: HTTP_VERBS.PUT,\n uri: options.locusUrl,\n body,\n };\n\n return requestParams;\n },\n};\n\nexport default MembersUtil;\n"],"mappings":"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"}
|
@@ -78,6 +78,7 @@ var BEHAVIORAL_METRICS = exports.default = {
|
|
78
78
|
MEETING_INFO_POLICY_ERROR: 'js_sdk_meeting_info_policy_error',
|
79
79
|
LOCUS_DELTA_SYNC_FAILED: 'js_sdk_locus_delta_sync_failed',
|
80
80
|
LOCUS_DELTA_OUT_OF_ORDER: 'js_sdk_locus_delta_ooo',
|
81
|
+
LOCUS_SYNC_HANDLING_FAILED: 'js_sdk_locus_sync_handling_failed',
|
81
82
|
PERMISSION_TOKEN_REFRESH: 'js_sdk_permission_token_refresh',
|
82
83
|
PERMISSION_TOKEN_REFRESH_ERROR: 'js_sdk_permission_token_refresh_error',
|
83
84
|
TURN_DISCOVERY_LATENCY: 'js_sdk_turn_discovery_latency',
|
@@ -90,6 +91,7 @@ var BEHAVIORAL_METRICS = exports.default = {
|
|
90
91
|
GUEST_EXITED_LOBBY: 'js_sdk_guest_exited_lobby',
|
91
92
|
VERIFY_REGISTRATION_ID_SUCCESS: 'js_sdk_verify_registrationId_success',
|
92
93
|
VERIFY_REGISTRATION_ID_ERROR: 'js_sdk_verify_registrationId_error',
|
93
|
-
JOIN_FORBIDDEN_ERROR: 'js_sdk_join_forbidden_error'
|
94
|
+
JOIN_FORBIDDEN_ERROR: 'js_sdk_join_forbidden_error',
|
95
|
+
MEDIA_ISSUE_DETECTED: 'js_sdk_media_issue_detected'
|
94
96
|
};
|
95
97
|
//# sourceMappingURL=constants.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["BEHAVIORAL_METRICS","exports","default","MEETINGS_REGISTRATION_FAILED","MEETINGS_REGISTRATION_SUCCESS","MEETINGS_REGISTRATION_STEP","MERCURY_CONNECTION_FAILURE","MERCURY_CONNECTION_RESTORED","JOIN_SUCCESS","JOIN_FAILURE","ADD_MEDIA_SUCCESS","ADD_MEDIA_FAILURE","ADD_MEDIA_RETRY","ROAP_MERCURY_EVENT_RECEIVED","CONNECTION_SUCCESS","CONNECTION_FAILURE","MEETING_LEAVE_FAILURE","MEETING_END_ALL_FAILURE","MEETING_END_ALL_INITIATED","GET_USER_MEDIA_FAILURE","GET_DISPLAY_MEDIA_FAILURE","JOIN_WITH_MEDIA_FAILURE","LLM_CONNECTION_AFTER_JOIN_FAILURE","RECEIVE_TRANSCRIPTION_AFTER_JOIN_FAILURE","DISCONNECT_DUE_TO_INACTIVITY","MEETING_MEDIA_INACTIVE","MEETING_RECONNECT_FAILURE","MEETING_MAX_REJOIN_FAILURE","MEETING_SHARE_SUCCESS","MEETING_SHARE_FAILURE","MEETING_START_WHITEBOARD_SHARE_FAILURE","MEETING_STOP_WHITEBOARD_SHARE_FAILURE","MEETING_SHARE_VIDEO_MUTE_STATE_CHANGE","MUTE_AUDIO_FAILURE","MUTE_VIDEO_FAILURE","SET_MEETING_QUALITY_FAILURE","STOP_FLOOR_REQUEST_FAILURE","ADD_DIAL_IN_FAILURE","ADD_DIAL_OUT_FAILURE","UPDATE_MEDIA_FAILURE","UNMUTE_AUDIO_FAILURE","UNMUTE_VIDEO_FAILURE","ROAP_ANSWER_FAILURE","ROAP_GLARE_CONDITION","PEERCONNECTION_FAILURE","INVALID_ICE_CANDIDATE","UPLOAD_LOGS_FAILURE","UPLOAD_LOGS_SUCCESS","RECEIVE_TRANSCRIPTION_FAILURE","MEETING_IS_IN_PROGRESS_ERROR","STATIC_MEETING_LINK_ALREADY_EXISTS_ERROR","FETCH_MEETING_INFO_V1_SUCCESS","FETCH_MEETING_INFO_V1_FAILURE","ENABLE_STATIC_METTING_LINK_SUCCESS","ENABLE_STATIC_METTING_LINK_FAILURE","DISABLE_STATIC_MEETING_LINK_SUCCESS","DISABLE_STATIC_MEETING_LINK_FAILURE","ADHOC_MEETING_SUCCESS","ADHOC_MEETING_FAILURE","FETCH_STATIC_MEETING_LINK_SUCCESS","FETCH_STATIC_MEETING_LINK_FAILURE","MEETING_LINK_DOES_NOT_EXIST_ERROR","VERIFY_PASSWORD_SUCCESS","VERIFY_PASSWORD_ERROR","VERIFY_CAPTCHA_ERROR","MOVE_TO_SUCCESS","MOVE_TO_FAILURE","MOVE_FROM_SUCCESS","MOVE_FROM_FAILURE","TURN_DISCOVERY_FAILURE","MEETING_INFO_POLICY_ERROR","LOCUS_DELTA_SYNC_FAILED","LOCUS_DELTA_OUT_OF_ORDER","PERMISSION_TOKEN_REFRESH","PERMISSION_TOKEN_REFRESH_ERROR","TURN_DISCOVERY_LATENCY","ROAP_OFFER_TO_ANSWER_LATENCY","ROAP_HTTP_RESPONSE_MISSING","TURN_DISCOVERY_REQUIRES_OK","REACHABILITY_COMPLETED","JOIN_WEBINAR_ERROR","GUEST_ENTERED_LOBBY","GUEST_EXITED_LOBBY","VERIFY_REGISTRATION_ID_SUCCESS","VERIFY_REGISTRATION_ID_ERROR","JOIN_FORBIDDEN_ERROR"],"sources":["constants.ts"],"sourcesContent":["// Metrics constants ----------------------------------------------------------\n\nconst BEHAVIORAL_METRICS = {\n MEETINGS_REGISTRATION_FAILED: 'js_sdk_meetings_registration_failed',\n MEETINGS_REGISTRATION_SUCCESS: 'js_sdk_meetings_registration_success',\n MEETINGS_REGISTRATION_STEP: 'meetings_registration_step',\n MERCURY_CONNECTION_FAILURE: 'js_sdk_mercury_connection_failure',\n MERCURY_CONNECTION_RESTORED: 'js_sdk_mercury_connection_restored',\n JOIN_SUCCESS: 'js_sdk_join_success',\n JOIN_FAILURE: 'js_sdk_join_failures',\n ADD_MEDIA_SUCCESS: 'js_sdk_add_media_success',\n ADD_MEDIA_FAILURE: 'js_sdk_add_media_failures',\n ADD_MEDIA_RETRY: 'js_sdk_add_media_retry',\n ROAP_MERCURY_EVENT_RECEIVED: 'js_sdk_roap_mercury_received',\n CONNECTION_SUCCESS: 'js_sdk_connection_success',\n CONNECTION_FAILURE: 'js_sdk_connection_failures',\n MEETING_LEAVE_FAILURE: 'js_sdk_meeting_leave_failure',\n MEETING_END_ALL_FAILURE: 'js_sdk_meeting_end_for_all_failure',\n MEETING_END_ALL_INITIATED: 'js_sdk_meeting_end_for_all_initiated',\n GET_USER_MEDIA_FAILURE: 'js_sdk_get_user_media_failures',\n GET_DISPLAY_MEDIA_FAILURE: 'js_sdk_get_display_media_failures',\n JOIN_WITH_MEDIA_FAILURE: 'js_sdk_join_with_media_failures',\n LLM_CONNECTION_AFTER_JOIN_FAILURE: 'js_sdk_llm_connection_after_join_failure',\n RECEIVE_TRANSCRIPTION_AFTER_JOIN_FAILURE: 'js_sdk_receive_transcription_after_join_failure',\n\n DISCONNECT_DUE_TO_INACTIVITY: 'js_sdk_disconnect_due_to_inactivity',\n MEETING_MEDIA_INACTIVE: 'js_sdk_meeting_media_inactive',\n MEETING_RECONNECT_FAILURE: 'js_sdk_meeting_reconnect_failures',\n MEETING_MAX_REJOIN_FAILURE: 'js_sdk_meeting_max_rejoin_failure',\n MEETING_SHARE_SUCCESS: 'js_sdk_meeting_share_success',\n MEETING_SHARE_FAILURE: 'js_sdk_meeting_share_failures',\n MEETING_START_WHITEBOARD_SHARE_FAILURE: 'js_sdk_meeting_start_whiteboard_share_failures',\n MEETING_STOP_WHITEBOARD_SHARE_FAILURE: 'js_sdk_meeting_stop_whiteboard_share_failures',\n MEETING_SHARE_VIDEO_MUTE_STATE_CHANGE: 'js_sdk_meeting_share_video_mute_state_change',\n MUTE_AUDIO_FAILURE: 'js_sdk_mute_audio_failures',\n MUTE_VIDEO_FAILURE: 'js_sdk_mute_video_failures',\n SET_MEETING_QUALITY_FAILURE: 'js_sdk_set_meeting_quality_failures',\n STOP_FLOOR_REQUEST_FAILURE: 'js_sdk_stop_floor_request_failures',\n ADD_DIAL_IN_FAILURE: 'js_sdk_add_dial_in_failure',\n ADD_DIAL_OUT_FAILURE: 'js_sdk_add_dial_out_failure',\n UPDATE_MEDIA_FAILURE: 'js_sdk_update_media_failures',\n UNMUTE_AUDIO_FAILURE: 'js_sdk_unmute_audio_failures',\n UNMUTE_VIDEO_FAILURE: 'js_sdk_unmute_video_failures',\n ROAP_ANSWER_FAILURE: 'js_sdk_roap_answer_failures',\n ROAP_GLARE_CONDITION: 'js_sdk_roap_glar_condition',\n PEERCONNECTION_FAILURE: 'js_sdk_peerConnection_failures',\n INVALID_ICE_CANDIDATE: 'js_sdk_invalid_ice_candidate',\n UPLOAD_LOGS_FAILURE: 'js_sdk_upload_logs_failure',\n UPLOAD_LOGS_SUCCESS: 'js_sdk_upload_logs_success',\n RECEIVE_TRANSCRIPTION_FAILURE: 'js_sdk_receive_transcription_failure',\n MEETING_IS_IN_PROGRESS_ERROR: 'js_sdk_meeting_is_in_progress_error',\n STATIC_MEETING_LINK_ALREADY_EXISTS_ERROR: 'js_sdk_static_meeting_link_already_exists_error',\n FETCH_MEETING_INFO_V1_SUCCESS: 'js_sdk_fetch_meeting_info_v1_success',\n FETCH_MEETING_INFO_V1_FAILURE: 'js_sdk_fetch_meeting_info_v1_failure',\n ENABLE_STATIC_METTING_LINK_SUCCESS: 'js_sdk_enable_static_meeting_link_success',\n ENABLE_STATIC_METTING_LINK_FAILURE: 'js_sdk_enable_static_meeting_link_failure',\n DISABLE_STATIC_MEETING_LINK_SUCCESS: 'js_sdk_disable_static_meeting_link_success',\n DISABLE_STATIC_MEETING_LINK_FAILURE: 'js_sdk_disable_static_meeting_link_failure',\n ADHOC_MEETING_SUCCESS: 'js_sdk_adhoc_meeting_success',\n ADHOC_MEETING_FAILURE: 'js_sdk_adhoc_meeting_failure',\n FETCH_STATIC_MEETING_LINK_SUCCESS: 'js_sdk_fetch_static_meeting_link_success',\n FETCH_STATIC_MEETING_LINK_FAILURE: 'js_sdk_fetch_static_meeting_link_failure',\n MEETING_LINK_DOES_NOT_EXIST_ERROR: 'js_sdk_meeting_link_does_not_exist_error',\n VERIFY_PASSWORD_SUCCESS: 'js_sdk_verify_password_success',\n VERIFY_PASSWORD_ERROR: 'js_sdk_verify_password_error',\n VERIFY_CAPTCHA_ERROR: 'js_sdk_verify_captcha_error',\n MOVE_TO_SUCCESS: 'js_sdk_move_to_success',\n MOVE_TO_FAILURE: 'js_sdk_move_to_failure',\n MOVE_FROM_SUCCESS: 'js_sdk_move_from_success',\n MOVE_FROM_FAILURE: 'js_sdk_move_from_failure',\n TURN_DISCOVERY_FAILURE: 'js_sdk_turn_discovery_failure',\n MEETING_INFO_POLICY_ERROR: 'js_sdk_meeting_info_policy_error',\n LOCUS_DELTA_SYNC_FAILED: 'js_sdk_locus_delta_sync_failed',\n LOCUS_DELTA_OUT_OF_ORDER: 'js_sdk_locus_delta_ooo',\n PERMISSION_TOKEN_REFRESH: 'js_sdk_permission_token_refresh',\n PERMISSION_TOKEN_REFRESH_ERROR: 'js_sdk_permission_token_refresh_error',\n TURN_DISCOVERY_LATENCY: 'js_sdk_turn_discovery_latency',\n ROAP_OFFER_TO_ANSWER_LATENCY: 'js_sdk_roap_offer_to_answer_latency',\n ROAP_HTTP_RESPONSE_MISSING: 'js_sdk_roap_http_response_missing',\n TURN_DISCOVERY_REQUIRES_OK: 'js_sdk_turn_discovery_requires_ok',\n REACHABILITY_COMPLETED: 'js_sdk_reachability_completed',\n JOIN_WEBINAR_ERROR: 'js_sdk_join_webinar_error',\n GUEST_ENTERED_LOBBY: 'js_sdk_guest_entered_lobby',\n GUEST_EXITED_LOBBY: 'js_sdk_guest_exited_lobby',\n VERIFY_REGISTRATION_ID_SUCCESS: 'js_sdk_verify_registrationId_success',\n VERIFY_REGISTRATION_ID_ERROR: 'js_sdk_verify_registrationId_error',\n JOIN_FORBIDDEN_ERROR: 'js_sdk_join_forbidden_error',\n};\n\nexport {BEHAVIORAL_METRICS as default};\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["BEHAVIORAL_METRICS","exports","default","MEETINGS_REGISTRATION_FAILED","MEETINGS_REGISTRATION_SUCCESS","MEETINGS_REGISTRATION_STEP","MERCURY_CONNECTION_FAILURE","MERCURY_CONNECTION_RESTORED","JOIN_SUCCESS","JOIN_FAILURE","ADD_MEDIA_SUCCESS","ADD_MEDIA_FAILURE","ADD_MEDIA_RETRY","ROAP_MERCURY_EVENT_RECEIVED","CONNECTION_SUCCESS","CONNECTION_FAILURE","MEETING_LEAVE_FAILURE","MEETING_END_ALL_FAILURE","MEETING_END_ALL_INITIATED","GET_USER_MEDIA_FAILURE","GET_DISPLAY_MEDIA_FAILURE","JOIN_WITH_MEDIA_FAILURE","LLM_CONNECTION_AFTER_JOIN_FAILURE","RECEIVE_TRANSCRIPTION_AFTER_JOIN_FAILURE","DISCONNECT_DUE_TO_INACTIVITY","MEETING_MEDIA_INACTIVE","MEETING_RECONNECT_FAILURE","MEETING_MAX_REJOIN_FAILURE","MEETING_SHARE_SUCCESS","MEETING_SHARE_FAILURE","MEETING_START_WHITEBOARD_SHARE_FAILURE","MEETING_STOP_WHITEBOARD_SHARE_FAILURE","MEETING_SHARE_VIDEO_MUTE_STATE_CHANGE","MUTE_AUDIO_FAILURE","MUTE_VIDEO_FAILURE","SET_MEETING_QUALITY_FAILURE","STOP_FLOOR_REQUEST_FAILURE","ADD_DIAL_IN_FAILURE","ADD_DIAL_OUT_FAILURE","UPDATE_MEDIA_FAILURE","UNMUTE_AUDIO_FAILURE","UNMUTE_VIDEO_FAILURE","ROAP_ANSWER_FAILURE","ROAP_GLARE_CONDITION","PEERCONNECTION_FAILURE","INVALID_ICE_CANDIDATE","UPLOAD_LOGS_FAILURE","UPLOAD_LOGS_SUCCESS","RECEIVE_TRANSCRIPTION_FAILURE","MEETING_IS_IN_PROGRESS_ERROR","STATIC_MEETING_LINK_ALREADY_EXISTS_ERROR","FETCH_MEETING_INFO_V1_SUCCESS","FETCH_MEETING_INFO_V1_FAILURE","ENABLE_STATIC_METTING_LINK_SUCCESS","ENABLE_STATIC_METTING_LINK_FAILURE","DISABLE_STATIC_MEETING_LINK_SUCCESS","DISABLE_STATIC_MEETING_LINK_FAILURE","ADHOC_MEETING_SUCCESS","ADHOC_MEETING_FAILURE","FETCH_STATIC_MEETING_LINK_SUCCESS","FETCH_STATIC_MEETING_LINK_FAILURE","MEETING_LINK_DOES_NOT_EXIST_ERROR","VERIFY_PASSWORD_SUCCESS","VERIFY_PASSWORD_ERROR","VERIFY_CAPTCHA_ERROR","MOVE_TO_SUCCESS","MOVE_TO_FAILURE","MOVE_FROM_SUCCESS","MOVE_FROM_FAILURE","TURN_DISCOVERY_FAILURE","MEETING_INFO_POLICY_ERROR","LOCUS_DELTA_SYNC_FAILED","LOCUS_DELTA_OUT_OF_ORDER","LOCUS_SYNC_HANDLING_FAILED","PERMISSION_TOKEN_REFRESH","PERMISSION_TOKEN_REFRESH_ERROR","TURN_DISCOVERY_LATENCY","ROAP_OFFER_TO_ANSWER_LATENCY","ROAP_HTTP_RESPONSE_MISSING","TURN_DISCOVERY_REQUIRES_OK","REACHABILITY_COMPLETED","JOIN_WEBINAR_ERROR","GUEST_ENTERED_LOBBY","GUEST_EXITED_LOBBY","VERIFY_REGISTRATION_ID_SUCCESS","VERIFY_REGISTRATION_ID_ERROR","JOIN_FORBIDDEN_ERROR","MEDIA_ISSUE_DETECTED"],"sources":["constants.ts"],"sourcesContent":["// Metrics constants ----------------------------------------------------------\n\nconst BEHAVIORAL_METRICS = {\n MEETINGS_REGISTRATION_FAILED: 'js_sdk_meetings_registration_failed',\n MEETINGS_REGISTRATION_SUCCESS: 'js_sdk_meetings_registration_success',\n MEETINGS_REGISTRATION_STEP: 'meetings_registration_step',\n MERCURY_CONNECTION_FAILURE: 'js_sdk_mercury_connection_failure',\n MERCURY_CONNECTION_RESTORED: 'js_sdk_mercury_connection_restored',\n JOIN_SUCCESS: 'js_sdk_join_success',\n JOIN_FAILURE: 'js_sdk_join_failures',\n ADD_MEDIA_SUCCESS: 'js_sdk_add_media_success',\n ADD_MEDIA_FAILURE: 'js_sdk_add_media_failures',\n ADD_MEDIA_RETRY: 'js_sdk_add_media_retry',\n ROAP_MERCURY_EVENT_RECEIVED: 'js_sdk_roap_mercury_received',\n CONNECTION_SUCCESS: 'js_sdk_connection_success',\n CONNECTION_FAILURE: 'js_sdk_connection_failures',\n MEETING_LEAVE_FAILURE: 'js_sdk_meeting_leave_failure',\n MEETING_END_ALL_FAILURE: 'js_sdk_meeting_end_for_all_failure',\n MEETING_END_ALL_INITIATED: 'js_sdk_meeting_end_for_all_initiated',\n GET_USER_MEDIA_FAILURE: 'js_sdk_get_user_media_failures',\n GET_DISPLAY_MEDIA_FAILURE: 'js_sdk_get_display_media_failures',\n JOIN_WITH_MEDIA_FAILURE: 'js_sdk_join_with_media_failures',\n LLM_CONNECTION_AFTER_JOIN_FAILURE: 'js_sdk_llm_connection_after_join_failure',\n RECEIVE_TRANSCRIPTION_AFTER_JOIN_FAILURE: 'js_sdk_receive_transcription_after_join_failure',\n\n DISCONNECT_DUE_TO_INACTIVITY: 'js_sdk_disconnect_due_to_inactivity',\n MEETING_MEDIA_INACTIVE: 'js_sdk_meeting_media_inactive',\n MEETING_RECONNECT_FAILURE: 'js_sdk_meeting_reconnect_failures',\n MEETING_MAX_REJOIN_FAILURE: 'js_sdk_meeting_max_rejoin_failure',\n MEETING_SHARE_SUCCESS: 'js_sdk_meeting_share_success',\n MEETING_SHARE_FAILURE: 'js_sdk_meeting_share_failures',\n MEETING_START_WHITEBOARD_SHARE_FAILURE: 'js_sdk_meeting_start_whiteboard_share_failures',\n MEETING_STOP_WHITEBOARD_SHARE_FAILURE: 'js_sdk_meeting_stop_whiteboard_share_failures',\n MEETING_SHARE_VIDEO_MUTE_STATE_CHANGE: 'js_sdk_meeting_share_video_mute_state_change',\n MUTE_AUDIO_FAILURE: 'js_sdk_mute_audio_failures',\n MUTE_VIDEO_FAILURE: 'js_sdk_mute_video_failures',\n SET_MEETING_QUALITY_FAILURE: 'js_sdk_set_meeting_quality_failures',\n STOP_FLOOR_REQUEST_FAILURE: 'js_sdk_stop_floor_request_failures',\n ADD_DIAL_IN_FAILURE: 'js_sdk_add_dial_in_failure',\n ADD_DIAL_OUT_FAILURE: 'js_sdk_add_dial_out_failure',\n UPDATE_MEDIA_FAILURE: 'js_sdk_update_media_failures',\n UNMUTE_AUDIO_FAILURE: 'js_sdk_unmute_audio_failures',\n UNMUTE_VIDEO_FAILURE: 'js_sdk_unmute_video_failures',\n ROAP_ANSWER_FAILURE: 'js_sdk_roap_answer_failures',\n ROAP_GLARE_CONDITION: 'js_sdk_roap_glar_condition',\n PEERCONNECTION_FAILURE: 'js_sdk_peerConnection_failures',\n INVALID_ICE_CANDIDATE: 'js_sdk_invalid_ice_candidate',\n UPLOAD_LOGS_FAILURE: 'js_sdk_upload_logs_failure',\n UPLOAD_LOGS_SUCCESS: 'js_sdk_upload_logs_success',\n RECEIVE_TRANSCRIPTION_FAILURE: 'js_sdk_receive_transcription_failure',\n MEETING_IS_IN_PROGRESS_ERROR: 'js_sdk_meeting_is_in_progress_error',\n STATIC_MEETING_LINK_ALREADY_EXISTS_ERROR: 'js_sdk_static_meeting_link_already_exists_error',\n FETCH_MEETING_INFO_V1_SUCCESS: 'js_sdk_fetch_meeting_info_v1_success',\n FETCH_MEETING_INFO_V1_FAILURE: 'js_sdk_fetch_meeting_info_v1_failure',\n ENABLE_STATIC_METTING_LINK_SUCCESS: 'js_sdk_enable_static_meeting_link_success',\n ENABLE_STATIC_METTING_LINK_FAILURE: 'js_sdk_enable_static_meeting_link_failure',\n DISABLE_STATIC_MEETING_LINK_SUCCESS: 'js_sdk_disable_static_meeting_link_success',\n DISABLE_STATIC_MEETING_LINK_FAILURE: 'js_sdk_disable_static_meeting_link_failure',\n ADHOC_MEETING_SUCCESS: 'js_sdk_adhoc_meeting_success',\n ADHOC_MEETING_FAILURE: 'js_sdk_adhoc_meeting_failure',\n FETCH_STATIC_MEETING_LINK_SUCCESS: 'js_sdk_fetch_static_meeting_link_success',\n FETCH_STATIC_MEETING_LINK_FAILURE: 'js_sdk_fetch_static_meeting_link_failure',\n MEETING_LINK_DOES_NOT_EXIST_ERROR: 'js_sdk_meeting_link_does_not_exist_error',\n VERIFY_PASSWORD_SUCCESS: 'js_sdk_verify_password_success',\n VERIFY_PASSWORD_ERROR: 'js_sdk_verify_password_error',\n VERIFY_CAPTCHA_ERROR: 'js_sdk_verify_captcha_error',\n MOVE_TO_SUCCESS: 'js_sdk_move_to_success',\n MOVE_TO_FAILURE: 'js_sdk_move_to_failure',\n MOVE_FROM_SUCCESS: 'js_sdk_move_from_success',\n MOVE_FROM_FAILURE: 'js_sdk_move_from_failure',\n TURN_DISCOVERY_FAILURE: 'js_sdk_turn_discovery_failure',\n MEETING_INFO_POLICY_ERROR: 'js_sdk_meeting_info_policy_error',\n LOCUS_DELTA_SYNC_FAILED: 'js_sdk_locus_delta_sync_failed',\n LOCUS_DELTA_OUT_OF_ORDER: 'js_sdk_locus_delta_ooo',\n LOCUS_SYNC_HANDLING_FAILED: 'js_sdk_locus_sync_handling_failed',\n PERMISSION_TOKEN_REFRESH: 'js_sdk_permission_token_refresh',\n PERMISSION_TOKEN_REFRESH_ERROR: 'js_sdk_permission_token_refresh_error',\n TURN_DISCOVERY_LATENCY: 'js_sdk_turn_discovery_latency',\n ROAP_OFFER_TO_ANSWER_LATENCY: 'js_sdk_roap_offer_to_answer_latency',\n ROAP_HTTP_RESPONSE_MISSING: 'js_sdk_roap_http_response_missing',\n TURN_DISCOVERY_REQUIRES_OK: 'js_sdk_turn_discovery_requires_ok',\n REACHABILITY_COMPLETED: 'js_sdk_reachability_completed',\n JOIN_WEBINAR_ERROR: 'js_sdk_join_webinar_error',\n GUEST_ENTERED_LOBBY: 'js_sdk_guest_entered_lobby',\n GUEST_EXITED_LOBBY: 'js_sdk_guest_exited_lobby',\n VERIFY_REGISTRATION_ID_SUCCESS: 'js_sdk_verify_registrationId_success',\n VERIFY_REGISTRATION_ID_ERROR: 'js_sdk_verify_registrationId_error',\n JOIN_FORBIDDEN_ERROR: 'js_sdk_join_forbidden_error',\n MEDIA_ISSUE_DETECTED: 'js_sdk_media_issue_detected',\n};\n\nexport {BEHAVIORAL_METRICS as default};\n"],"mappings":"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"}
|
@@ -64,7 +64,7 @@ var MediaRequestManager = exports.MediaRequestManager = /*#__PURE__*/function ()
|
|
64
64
|
key: "getDegradedClientRequests",
|
65
65
|
value: function getDegradedClientRequests(clientRequests) {
|
66
66
|
var _this = this;
|
67
|
-
var maxFsLimits = [
|
67
|
+
var maxFsLimits = [_remoteMedia.MAX_FS_VALUES['1080p'], _remoteMedia.MAX_FS_VALUES['720p'], _remoteMedia.MAX_FS_VALUES['540p'], _remoteMedia.MAX_FS_VALUES['360p'], _remoteMedia.MAX_FS_VALUES['180p'], _remoteMedia.MAX_FS_VALUES['90p']];
|
68
68
|
|
69
69
|
// reduce max-fs until total macroblocks is below limit
|
70
70
|
var _loop = function _loop(i) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_internalMediaCore","require","_lodash","_loggerProxy","_interopRequireDefault","_receiveSlot","_remoteMedia","CODEC_DEFAULTS","h264","maxFs","maxFps","maxMbps","DEBOUNCED_SOURCE_UPDATE_TIME","MediaRequestManager","exports","sendMediaRequestsCallback","options","_classCallCheck2","default","_defineProperty2","counter","numLiveSources","numTotalSources","clientRequests","degradationPreferences","kind","trimRequestsToNumOfSources","sourceUpdateListener","commit","bind","debouncedSourceUpdateListener","debounce","_createClass2","key","value","setDegradationPreferences","sendRequests","getDegradedClientRequests","_this","maxFsLimits","getMaxFs","_loop","i","totalMacroblocksRequested","_values","forEach","mr","codecInfo","Math","min","preferredMaxFs","slotsWithLiveSource","receiveSlots","filter","rs","sourceState","length","maxMacroblocksLimit","LoggerProxy","logger","warn","concat","isEqual","streamRequestA","streamRequestB","_stringify","_toJmpStreamRequest","checkIsNewRequestsEqualToPrev","newRequests","_this2","isEmpty","previousStreamRequests","every","req","idx","getMaxPayloadBitsPerSecond","mediaRequest","RecommendedOpusBitrates","FB_MONO_MUSIC","getRecommendedMaxBitrateForFrameSize","getH264MaxMbps","clearPreviousRequests","trimRequests","preferLiveVideo","getPreferLiveVideo","undefined","numStreamsAvailable","sort","a","b","policyInfo","policy","priority","request","trimmedCount","Error","cloneClientRequests","cloneDeepWith","_toConsumableArray2","_this3","streamRequests","push","StreamRequest","Policy","ActiveSpeaker","ReceiverSelected","ActiveSpeakerInfo","crossPriorityDuplication","crossPolicyDuplication","namedMediaGroups","ReceiverSelectedInfo","csi","map","receiveSlot","wcmeReceiveSlot","WcmeCodecInfo","H264Codec","maxWidth","maxHeight","info","addRequest","_this4","arguments","newId","eventHandler","_ref","handleMaxFs","on","ReceiveSlotEvents","SourceUpdate","MaxFsUpdate","cancelRequest","requestId","_this5","off","reset","setNumCurrentSources"],"sources":["mediaRequestManager.ts"],"sourcesContent":["/* eslint-disable require-jsdoc */\nimport {\n StreamRequest,\n Policy,\n ActiveSpeakerInfo,\n ReceiverSelectedInfo,\n CodecInfo as WcmeCodecInfo,\n H264Codec,\n getRecommendedMaxBitrateForFrameSize,\n RecommendedOpusBitrates,\n NamedMediaGroup,\n} from '@webex/internal-media-core';\nimport {cloneDeepWith, debounce, isEmpty} from 'lodash';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport {ReceiveSlot, ReceiveSlotEvents} from './receiveSlot';\nimport {getMaxFs} from './remoteMedia';\n\nexport interface ActiveSpeakerPolicyInfo {\n policy: 'active-speaker';\n priority: number;\n crossPriorityDuplication: boolean;\n crossPolicyDuplication: boolean;\n preferLiveVideo: boolean;\n namedMediaGroups?: NamedMediaGroup[];\n}\n\nexport interface ReceiverSelectedPolicyInfo {\n policy: 'receiver-selected';\n csi: number;\n}\n\nexport type PolicyInfo = ActiveSpeakerPolicyInfo | ReceiverSelectedPolicyInfo;\n\nexport interface H264CodecInfo {\n codec: 'h264';\n maxFs?: number;\n maxFps?: number;\n maxMbps?: number;\n maxWidth?: number;\n maxHeight?: number;\n}\n\nexport type CodecInfo = H264CodecInfo; // we'll add AV1 here in the future when it's available\n\nexport interface MediaRequest {\n policyInfo: PolicyInfo;\n receiveSlots: Array<ReceiveSlot>;\n codecInfo?: CodecInfo;\n preferredMaxFs?: number;\n handleMaxFs?: ({maxFs}: {maxFs: number}) => void;\n}\n\nexport type MediaRequestId = string;\n\nconst CODEC_DEFAULTS = {\n h264: {\n maxFs: 8192,\n maxFps: 3000,\n maxMbps: 245760,\n },\n};\n\nconst DEBOUNCED_SOURCE_UPDATE_TIME = 1000;\n\ntype DegradationPreferences = {\n maxMacroblocksLimit: number;\n};\n\ntype SendMediaRequestsCallback = (streamRequests: StreamRequest[]) => void;\ntype Kind = 'audio' | 'video';\n\ntype Options = {\n degradationPreferences: DegradationPreferences;\n kind: Kind;\n trimRequestsToNumOfSources: boolean; // if enabled, AS speaker requests will be trimmed based on the calls to setNumCurrentSources()\n};\n\ntype ClientRequestsMap = {[key: MediaRequestId]: MediaRequest};\n\nexport class MediaRequestManager {\n private sendMediaRequestsCallback: SendMediaRequestsCallback;\n\n private kind: Kind;\n\n private counter: number;\n\n private clientRequests: ClientRequestsMap;\n\n private degradationPreferences: DegradationPreferences;\n\n private sourceUpdateListener: () => void;\n\n private debouncedSourceUpdateListener: () => void;\n\n private previousStreamRequests: Array<StreamRequest> = [];\n\n private trimRequestsToNumOfSources: boolean;\n private numTotalSources: number;\n private numLiveSources: number;\n\n constructor(sendMediaRequestsCallback: SendMediaRequestsCallback, options: Options) {\n this.sendMediaRequestsCallback = sendMediaRequestsCallback;\n this.counter = 0;\n this.numLiveSources = 0;\n this.numTotalSources = 0;\n this.clientRequests = {};\n this.degradationPreferences = options.degradationPreferences;\n this.kind = options.kind;\n this.trimRequestsToNumOfSources = options.trimRequestsToNumOfSources;\n this.sourceUpdateListener = this.commit.bind(this);\n this.debouncedSourceUpdateListener = debounce(\n this.sourceUpdateListener,\n DEBOUNCED_SOURCE_UPDATE_TIME\n );\n }\n\n public setDegradationPreferences(degradationPreferences: DegradationPreferences) {\n this.degradationPreferences = degradationPreferences;\n this.sendRequests(); // re-send requests after preferences are set\n }\n\n private getDegradedClientRequests(clientRequests: ClientRequestsMap) {\n const maxFsLimits = [\n getMaxFs('best'),\n getMaxFs('large'),\n getMaxFs('medium'),\n getMaxFs('small'),\n getMaxFs('very small'),\n getMaxFs('thumbnail'),\n ];\n\n // reduce max-fs until total macroblocks is below limit\n for (let i = 0; i < maxFsLimits.length; i += 1) {\n let totalMacroblocksRequested = 0;\n Object.values(clientRequests).forEach((mr) => {\n if (mr.codecInfo) {\n mr.codecInfo.maxFs = Math.min(\n mr.preferredMaxFs || CODEC_DEFAULTS.h264.maxFs,\n mr.codecInfo.maxFs || CODEC_DEFAULTS.h264.maxFs,\n maxFsLimits[i]\n );\n // we only consider sources with \"live\" state\n const slotsWithLiveSource = mr.receiveSlots.filter((rs) => rs.sourceState === 'live');\n totalMacroblocksRequested += mr.codecInfo.maxFs * slotsWithLiveSource.length;\n }\n });\n if (totalMacroblocksRequested <= this.degradationPreferences.maxMacroblocksLimit) {\n if (i !== 0) {\n LoggerProxy.logger.warn(\n `multistream:mediaRequestManager --> too many streams with high max-fs, frame size will be limited to ${maxFsLimits[i]}`\n );\n }\n break;\n } else if (i === maxFsLimits.length - 1) {\n LoggerProxy.logger.warn(\n `multistream:mediaRequestManager --> even with frame size limited to ${maxFsLimits[i]} you are still requesting too many streams, consider reducing the number of requests`\n );\n }\n }\n }\n\n /**\n * Returns true if two stream requests are the same, false otherwise.\n *\n * @param {StreamRequest} streamRequestA - Stream request A for comparison.\n * @param {StreamRequest} streamRequestB - Stream request B for comparison.\n * @returns {boolean} - Whether they are equal.\n */\n // eslint-disable-next-line class-methods-use-this\n public isEqual(streamRequestA: StreamRequest, streamRequestB: StreamRequest) {\n return (\n JSON.stringify(streamRequestA._toJmpStreamRequest()) ===\n JSON.stringify(streamRequestB._toJmpStreamRequest())\n );\n }\n\n /**\n * Compares new stream requests to previous ones and determines\n * if they are the same.\n *\n * @param {StreamRequest[]} newRequests - Array with new requests.\n * @returns {boolean} - True if they are equal, false otherwise.\n */\n private checkIsNewRequestsEqualToPrev(newRequests: StreamRequest[]) {\n return (\n !isEmpty(this.previousStreamRequests) &&\n this.previousStreamRequests.length === newRequests.length &&\n this.previousStreamRequests.every((req, idx) => this.isEqual(req, newRequests[idx]))\n );\n }\n\n /**\n * Returns the maxPayloadBitsPerSecond per Stream\n *\n * If MediaRequestManager kind is \"audio\", a constant bitrate will be returned.\n * If MediaRequestManager kind is \"video\", the bitrate will be calculated based\n * on maxFs (default h264 maxFs as fallback if maxFs is not defined)\n *\n * @param {MediaRequest} mediaRequest - mediaRequest to take data from\n * @returns {number} maxPayloadBitsPerSecond\n */\n private getMaxPayloadBitsPerSecond(mediaRequest: MediaRequest): number {\n if (this.kind === 'audio') {\n // return mono_music bitrate default if the kind of mediarequest manager is audio:\n return RecommendedOpusBitrates.FB_MONO_MUSIC;\n }\n\n return getRecommendedMaxBitrateForFrameSize(\n mediaRequest.codecInfo.maxFs || CODEC_DEFAULTS.h264.maxFs\n );\n }\n\n /**\n * Returns the max Macro Blocks per second (maxMbps) per H264 Stream\n *\n * The maxMbps will be calculated based on maxFs and maxFps\n * (default h264 maxFps as fallback if maxFps is not defined)\n *\n * @param {MediaRequest} mediaRequest - mediaRequest to take data from\n * @returns {number} maxMbps\n */\n // eslint-disable-next-line class-methods-use-this\n private getH264MaxMbps(mediaRequest: MediaRequest): number {\n // fallback for maxFps (not needed for maxFs, since there is a fallback already in getDegradedClientRequests)\n const maxFps = mediaRequest.codecInfo.maxFps || CODEC_DEFAULTS.h264.maxFps;\n\n // divided by 100 since maxFps is 3000 (for 30 frames per seconds)\n return (mediaRequest.codecInfo.maxFs * maxFps) / 100;\n }\n\n /**\n * Clears the previous stream requests.\n *\n * @returns {void}\n */\n public clearPreviousRequests(): void {\n this.previousStreamRequests = [];\n }\n\n /** Modifies the passed in clientRequests and makes sure that in total they don't ask\n * for more streams than there are available.\n *\n * @param {Object} clientRequests\n * @returns {void}\n */\n private trimRequests(clientRequests: ClientRequestsMap) {\n const preferLiveVideo = this.getPreferLiveVideo();\n\n if (!this.trimRequestsToNumOfSources) {\n return;\n }\n\n // preferLiveVideo being undefined means that there are no active-speaker requests so we don't need to do any trimming\n if (preferLiveVideo === undefined) {\n return;\n }\n\n let numStreamsAvailable = preferLiveVideo ? this.numLiveSources : this.numTotalSources;\n\n Object.values(clientRequests)\n .sort((a, b) => {\n // we have to count how many streams we're asking for\n // and should not ask for more than numStreamsAvailable in total,\n // so we might need to trim active-speaker requests and first ones to trim should be\n // the ones with lowest priority\n\n // receiver-selected requests have priority over active-speakers\n if (a.policyInfo.policy === 'receiver-selected') {\n return -1;\n }\n if (b.policyInfo.policy === 'receiver-selected') {\n return 1;\n }\n\n // and active-speakers are sorted by descending priority\n return b.policyInfo.priority - a.policyInfo.priority;\n })\n .forEach((request) => {\n // we only trim active-speaker requests\n if (request.policyInfo.policy === 'active-speaker') {\n const trimmedCount = Math.min(numStreamsAvailable, request.receiveSlots.length);\n\n request.receiveSlots.length = trimmedCount;\n\n numStreamsAvailable -= trimmedCount;\n } else {\n numStreamsAvailable -= request.receiveSlots.length;\n }\n\n if (numStreamsAvailable < 0) {\n numStreamsAvailable = 0;\n }\n });\n }\n\n private getPreferLiveVideo(): boolean | undefined {\n let preferLiveVideo;\n\n Object.values(this.clientRequests).forEach((mr) => {\n if (mr.policyInfo.policy === 'active-speaker') {\n // take the value from first encountered active speaker request\n if (preferLiveVideo === undefined) {\n preferLiveVideo = mr.policyInfo.preferLiveVideo;\n }\n\n if (mr.policyInfo.preferLiveVideo !== preferLiveVideo) {\n throw new Error(\n 'a mix of active-speaker groups with different values for preferLiveVideo is not supported'\n );\n }\n }\n });\n\n return preferLiveVideo;\n }\n\n private cloneClientRequests(): ClientRequestsMap {\n // we clone the client requests but without cloning the ReceiveSlots that they reference\n return cloneDeepWith(this.clientRequests, (value, key) => {\n if (key === 'receiveSlots') {\n return [...value];\n }\n\n return undefined;\n });\n }\n\n private sendRequests() {\n const streamRequests: StreamRequest[] = [];\n\n // clone the requests so that any modifications we do to them don't affect the original ones\n const clientRequests = this.cloneClientRequests();\n\n this.trimRequests(clientRequests);\n this.getDegradedClientRequests(clientRequests);\n\n // map all the client media requests to wcme stream requests\n Object.values(clientRequests).forEach((mr) => {\n if (mr.receiveSlots.length > 0) {\n streamRequests.push(\n new StreamRequest(\n mr.policyInfo.policy === 'active-speaker'\n ? Policy.ActiveSpeaker\n : Policy.ReceiverSelected,\n mr.policyInfo.policy === 'active-speaker'\n ? new ActiveSpeakerInfo(\n mr.policyInfo.priority,\n mr.policyInfo.crossPriorityDuplication,\n mr.policyInfo.crossPolicyDuplication,\n mr.policyInfo.preferLiveVideo,\n mr.policyInfo.namedMediaGroups\n )\n : new ReceiverSelectedInfo(mr.policyInfo.csi),\n mr.receiveSlots.map((receiveSlot) => receiveSlot.wcmeReceiveSlot),\n this.getMaxPayloadBitsPerSecond(mr),\n mr.codecInfo && [\n new WcmeCodecInfo(\n 0x80,\n new H264Codec(\n mr.codecInfo.maxFs,\n mr.codecInfo.maxFps || CODEC_DEFAULTS.h264.maxFps,\n this.getH264MaxMbps(mr),\n mr.codecInfo.maxWidth,\n mr.codecInfo.maxHeight\n )\n ),\n ]\n )\n );\n }\n });\n\n //! IMPORTANT: this is only a temporary fix. This will soon be done in the jmp layer (@webex/json-multistream)\n // https://jira-eng-gpk2.cisco.com/jira/browse/WEBEX-326713\n if (!this.checkIsNewRequestsEqualToPrev(streamRequests)) {\n this.sendMediaRequestsCallback(streamRequests);\n this.previousStreamRequests = streamRequests;\n LoggerProxy.logger.info(`multistream:sendRequests --> media requests sent. `);\n } else {\n LoggerProxy.logger.info(\n `multistream:sendRequests --> detected duplicate WCME requests, skipping them... `\n );\n }\n }\n\n public addRequest(mediaRequest: MediaRequest, commit = true): MediaRequestId {\n // eslint-disable-next-line no-plusplus\n const newId = `${this.counter++}`;\n\n this.clientRequests[newId] = mediaRequest;\n\n const eventHandler = ({maxFs}) => {\n mediaRequest.preferredMaxFs = maxFs;\n this.debouncedSourceUpdateListener();\n };\n mediaRequest.handleMaxFs = eventHandler;\n\n mediaRequest.receiveSlots.forEach((rs) => {\n rs.on(ReceiveSlotEvents.SourceUpdate, this.sourceUpdateListener);\n rs.on(ReceiveSlotEvents.MaxFsUpdate, mediaRequest.handleMaxFs);\n });\n\n if (commit) {\n this.commit();\n }\n\n return newId;\n }\n\n public cancelRequest(requestId: MediaRequestId, commit = true) {\n const mediaRequest = this.clientRequests[requestId];\n\n mediaRequest?.receiveSlots.forEach((rs) => {\n rs.off(ReceiveSlotEvents.SourceUpdate, this.sourceUpdateListener);\n rs.off(ReceiveSlotEvents.MaxFsUpdate, mediaRequest.handleMaxFs);\n });\n\n delete this.clientRequests[requestId];\n\n if (commit) {\n this.commit();\n }\n }\n\n public commit() {\n return this.sendRequests();\n }\n\n public reset() {\n this.clientRequests = {};\n this.numTotalSources = 0;\n this.numLiveSources = 0;\n }\n\n public setNumCurrentSources(numTotalSources: number, numLiveSources: number) {\n this.numTotalSources = numTotalSources;\n this.numLiveSources = numLiveSources;\n\n this.sendRequests();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AACA,IAAAA,kBAAA,GAAAC,OAAA;AAWA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAAE,YAAA,GAAAC,sBAAA,CAAAH,OAAA;AAEA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AAjBA;;AA4CuC;;AAYvC,IAAMM,cAAc,GAAG;EACrBC,IAAI,EAAE;IACJC,KAAK,EAAE,IAAI;IACXC,MAAM,EAAE,IAAI;IACZC,OAAO,EAAE;EACX;AACF,CAAC;AAED,IAAMC,4BAA4B,GAAG,IAAI;AAAC,IAiB7BC,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA;EAqB9B,SAAAA,oBAAYE,yBAAoD,EAAEC,OAAgB,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAL,mBAAA;IAAA,IAAAM,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA,kCAN7B,EAAE;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAOvD,IAAI,CAACH,yBAAyB,GAAGA,yBAAyB;IAC1D,IAAI,CAACK,OAAO,GAAG,CAAC;IAChB,IAAI,CAACC,cAAc,GAAG,CAAC;IACvB,IAAI,CAACC,eAAe,GAAG,CAAC;IACxB,IAAI,CAACC,cAAc,GAAG,CAAC,CAAC;IACxB,IAAI,CAACC,sBAAsB,GAAGR,OAAO,CAACQ,sBAAsB;IAC5D,IAAI,CAACC,IAAI,GAAGT,OAAO,CAACS,IAAI;IACxB,IAAI,CAACC,0BAA0B,GAAGV,OAAO,CAACU,0BAA0B;IACpE,IAAI,CAACC,oBAAoB,GAAG,IAAI,CAACC,MAAM,CAACC,IAAI,CAAC,IAAI,CAAC;IAClD,IAAI,CAACC,6BAA6B,GAAG,IAAAC,gBAAQ,EAC3C,IAAI,CAACJ,oBAAoB,EACzBf,4BACF,CAAC;EACH;EAAC,IAAAoB,aAAA,CAAAd,OAAA,EAAAL,mBAAA;IAAAoB,GAAA;IAAAC,KAAA,EAED,SAAAC,0BAAiCX,sBAA8C,EAAE;MAC/E,IAAI,CAACA,sBAAsB,GAAGA,sBAAsB;MACpD,IAAI,CAACY,YAAY,CAAC,CAAC,CAAC,CAAC;IACvB;EAAC;IAAAH,GAAA;IAAAC,KAAA,EAED,SAAAG,0BAAkCd,cAAiC,EAAE;MAAA,IAAAe,KAAA;MACnE,IAAMC,WAAW,GAAG,CAClB,IAAAC,qBAAQ,EAAC,MAAM,CAAC,EAChB,IAAAA,qBAAQ,EAAC,OAAO,CAAC,EACjB,IAAAA,qBAAQ,EAAC,QAAQ,CAAC,EAClB,IAAAA,qBAAQ,EAAC,OAAO,CAAC,EACjB,IAAAA,qBAAQ,EAAC,YAAY,CAAC,EACtB,IAAAA,qBAAQ,EAAC,WAAW,CAAC,CACtB;;MAED;MAAA,IAAAC,KAAA,YAAAA,MAAAC,CAAA,EACgD;QAC9C,IAAIC,yBAAyB,GAAG,CAAC;QACjC,IAAAC,OAAA,CAAA1B,OAAA,EAAcK,cAAc,CAAC,CAACsB,OAAO,CAAC,UAACC,EAAE,EAAK;UAC5C,IAAIA,EAAE,CAACC,SAAS,EAAE;YAChBD,EAAE,CAACC,SAAS,CAACtC,KAAK,GAAGuC,IAAI,CAACC,GAAG,CAC3BH,EAAE,CAACI,cAAc,IAAI3C,cAAc,CAACC,IAAI,CAACC,KAAK,EAC9CqC,EAAE,CAACC,SAAS,CAACtC,KAAK,IAAIF,cAAc,CAACC,IAAI,CAACC,KAAK,EAC/C8B,WAAW,CAACG,CAAC,CACf,CAAC;YACD;YACA,IAAMS,mBAAmB,GAAGL,EAAE,CAACM,YAAY,CAACC,MAAM,CAAC,UAACC,EAAE;cAAA,OAAKA,EAAE,CAACC,WAAW,KAAK,MAAM;YAAA,EAAC;YACrFZ,yBAAyB,IAAIG,EAAE,CAACC,SAAS,CAACtC,KAAK,GAAG0C,mBAAmB,CAACK,MAAM;UAC9E;QACF,CAAC,CAAC;QACF,IAAIb,yBAAyB,IAAIL,KAAI,CAACd,sBAAsB,CAACiC,mBAAmB,EAAE;UAChF,IAAIf,CAAC,KAAK,CAAC,EAAE;YACXgB,oBAAW,CAACC,MAAM,CAACC,IAAI,yGAAAC,MAAA,CACmFtB,WAAW,CAACG,CAAC,CAAC,CACxH,CAAC;UACH;UAAC;QAEH,CAAC,MAAM,IAAIA,CAAC,KAAKH,WAAW,CAACiB,MAAM,GAAG,CAAC,EAAE;UACvCE,oBAAW,CAACC,MAAM,CAACC,IAAI,wEAAAC,MAAA,CACkDtB,WAAW,CAACG,CAAC,CAAC,yFACvF,CAAC;QACH;MACF,CAAC;MA1BD,KAAK,IAAIA,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,WAAW,CAACiB,MAAM,EAAEd,CAAC,IAAI,CAAC;QAAA,IAAAD,KAAA,CAAAC,CAAA,GAoB1C;MAAM;IAOZ;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;IACE;EAAA;IAAAT,GAAA;IAAAC,KAAA,EACA,SAAA4B,QAAeC,cAA6B,EAAEC,cAA6B,EAAE;MAC3E,OACE,IAAAC,UAAA,CAAA/C,OAAA,EAAe6C,cAAc,CAACG,mBAAmB,CAAC,CAAC,CAAC,KACpD,IAAAD,UAAA,CAAA/C,OAAA,EAAe8C,cAAc,CAACE,mBAAmB,CAAC,CAAC,CAAC;IAExD;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAAjC,GAAA;IAAAC,KAAA,EAOA,SAAAiC,8BAAsCC,WAA4B,EAAE;MAAA,IAAAC,MAAA;MAClE,OACE,CAAC,IAAAC,eAAO,EAAC,IAAI,CAACC,sBAAsB,CAAC,IACrC,IAAI,CAACA,sBAAsB,CAACf,MAAM,KAAKY,WAAW,CAACZ,MAAM,IACzD,IAAI,CAACe,sBAAsB,CAACC,KAAK,CAAC,UAACC,GAAG,EAAEC,GAAG;QAAA,OAAKL,MAAI,CAACP,OAAO,CAACW,GAAG,EAAEL,WAAW,CAACM,GAAG,CAAC,CAAC;MAAA,EAAC;IAExF;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EATE;IAAAzC,GAAA;IAAAC,KAAA,EAUA,SAAAyC,2BAAmCC,YAA0B,EAAU;MACrE,IAAI,IAAI,CAACnD,IAAI,KAAK,OAAO,EAAE;QACzB;QACA,OAAOoD,0CAAuB,CAACC,aAAa;MAC9C;MAEA,OAAO,IAAAC,uDAAoC,EACzCH,YAAY,CAAC7B,SAAS,CAACtC,KAAK,IAAIF,cAAc,CAACC,IAAI,CAACC,KACtD,CAAC;IACH;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACE;EAAA;IAAAwB,GAAA;IAAAC,KAAA,EACA,SAAA8C,eAAuBJ,YAA0B,EAAU;MACzD;MACA,IAAMlE,MAAM,GAAGkE,YAAY,CAAC7B,SAAS,CAACrC,MAAM,IAAIH,cAAc,CAACC,IAAI,CAACE,MAAM;;MAE1E;MACA,OAAQkE,YAAY,CAAC7B,SAAS,CAACtC,KAAK,GAAGC,MAAM,GAAI,GAAG;IACtD;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAAuB,GAAA;IAAAC,KAAA,EAKA,SAAA+C,sBAAA,EAAqC;MACnC,IAAI,CAACV,sBAAsB,GAAG,EAAE;IAClC;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAAtC,GAAA;IAAAC,KAAA,EAMA,SAAAgD,aAAqB3D,cAAiC,EAAE;MACtD,IAAM4D,eAAe,GAAG,IAAI,CAACC,kBAAkB,CAAC,CAAC;MAEjD,IAAI,CAAC,IAAI,CAAC1D,0BAA0B,EAAE;QACpC;MACF;;MAEA;MACA,IAAIyD,eAAe,KAAKE,SAAS,EAAE;QACjC;MACF;MAEA,IAAIC,mBAAmB,GAAGH,eAAe,GAAG,IAAI,CAAC9D,cAAc,GAAG,IAAI,CAACC,eAAe;MAEtF,IAAAsB,OAAA,CAAA1B,OAAA,EAAcK,cAAc,CAAC,CAC1BgE,IAAI,CAAC,UAACC,CAAC,EAAEC,CAAC,EAAK;QACd;QACA;QACA;QACA;;QAEA;QACA,IAAID,CAAC,CAACE,UAAU,CAACC,MAAM,KAAK,mBAAmB,EAAE;UAC/C,OAAO,CAAC,CAAC;QACX;QACA,IAAIF,CAAC,CAACC,UAAU,CAACC,MAAM,KAAK,mBAAmB,EAAE;UAC/C,OAAO,CAAC;QACV;;QAEA;QACA,OAAOF,CAAC,CAACC,UAAU,CAACE,QAAQ,GAAGJ,CAAC,CAACE,UAAU,CAACE,QAAQ;MACtD,CAAC,CAAC,CACD/C,OAAO,CAAC,UAACgD,OAAO,EAAK;QACpB;QACA,IAAIA,OAAO,CAACH,UAAU,CAACC,MAAM,KAAK,gBAAgB,EAAE;UAClD,IAAMG,YAAY,GAAG9C,IAAI,CAACC,GAAG,CAACqC,mBAAmB,EAAEO,OAAO,CAACzC,YAAY,CAACI,MAAM,CAAC;UAE/EqC,OAAO,CAACzC,YAAY,CAACI,MAAM,GAAGsC,YAAY;UAE1CR,mBAAmB,IAAIQ,YAAY;QACrC,CAAC,MAAM;UACLR,mBAAmB,IAAIO,OAAO,CAACzC,YAAY,CAACI,MAAM;QACpD;QAEA,IAAI8B,mBAAmB,GAAG,CAAC,EAAE;UAC3BA,mBAAmB,GAAG,CAAC;QACzB;MACF,CAAC,CAAC;IACN;EAAC;IAAArD,GAAA;IAAAC,KAAA,EAED,SAAAkD,mBAAA,EAAkD;MAChD,IAAID,eAAe;MAEnB,IAAAvC,OAAA,CAAA1B,OAAA,EAAc,IAAI,CAACK,cAAc,CAAC,CAACsB,OAAO,CAAC,UAACC,EAAE,EAAK;QACjD,IAAIA,EAAE,CAAC4C,UAAU,CAACC,MAAM,KAAK,gBAAgB,EAAE;UAC7C;UACA,IAAIR,eAAe,KAAKE,SAAS,EAAE;YACjCF,eAAe,GAAGrC,EAAE,CAAC4C,UAAU,CAACP,eAAe;UACjD;UAEA,IAAIrC,EAAE,CAAC4C,UAAU,CAACP,eAAe,KAAKA,eAAe,EAAE;YACrD,MAAM,IAAIY,KAAK,CACb,2FACF,CAAC;UACH;QACF;MACF,CAAC,CAAC;MAEF,OAAOZ,eAAe;IACxB;EAAC;IAAAlD,GAAA;IAAAC,KAAA,EAED,SAAA8D,oBAAA,EAAiD;MAC/C;MACA,OAAO,IAAAC,qBAAa,EAAC,IAAI,CAAC1E,cAAc,EAAE,UAACW,KAAK,EAAED,GAAG,EAAK;QACxD,IAAIA,GAAG,KAAK,cAAc,EAAE;UAC1B,WAAAiE,mBAAA,CAAAhF,OAAA,EAAWgB,KAAK;QAClB;QAEA,OAAOmD,SAAS;MAClB,CAAC,CAAC;IACJ;EAAC;IAAApD,GAAA;IAAAC,KAAA,EAED,SAAAE,aAAA,EAAuB;MAAA,IAAA+D,MAAA;MACrB,IAAMC,cAA+B,GAAG,EAAE;;MAE1C;MACA,IAAM7E,cAAc,GAAG,IAAI,CAACyE,mBAAmB,CAAC,CAAC;MAEjD,IAAI,CAACd,YAAY,CAAC3D,cAAc,CAAC;MACjC,IAAI,CAACc,yBAAyB,CAACd,cAAc,CAAC;;MAE9C;MACA,IAAAqB,OAAA,CAAA1B,OAAA,EAAcK,cAAc,CAAC,CAACsB,OAAO,CAAC,UAACC,EAAE,EAAK;QAC5C,IAAIA,EAAE,CAACM,YAAY,CAACI,MAAM,GAAG,CAAC,EAAE;UAC9B4C,cAAc,CAACC,IAAI,CACjB,IAAIC,gCAAa,CACfxD,EAAE,CAAC4C,UAAU,CAACC,MAAM,KAAK,gBAAgB,GACrCY,yBAAM,CAACC,aAAa,GACpBD,yBAAM,CAACE,gBAAgB,EAC3B3D,EAAE,CAAC4C,UAAU,CAACC,MAAM,KAAK,gBAAgB,GACrC,IAAIe,oCAAiB,CACnB5D,EAAE,CAAC4C,UAAU,CAACE,QAAQ,EACtB9C,EAAE,CAAC4C,UAAU,CAACiB,wBAAwB,EACtC7D,EAAE,CAAC4C,UAAU,CAACkB,sBAAsB,EACpC9D,EAAE,CAAC4C,UAAU,CAACP,eAAe,EAC7BrC,EAAE,CAAC4C,UAAU,CAACmB,gBAChB,CAAC,GACD,IAAIC,uCAAoB,CAAChE,EAAE,CAAC4C,UAAU,CAACqB,GAAG,CAAC,EAC/CjE,EAAE,CAACM,YAAY,CAAC4D,GAAG,CAAC,UAACC,WAAW;YAAA,OAAKA,WAAW,CAACC,eAAe;UAAA,EAAC,EACjEf,MAAI,CAACxB,0BAA0B,CAAC7B,EAAE,CAAC,EACnCA,EAAE,CAACC,SAAS,IAAI,CACd,IAAIoE,4BAAa,CACf,IAAI,EACJ,IAAIC,4BAAS,CACXtE,EAAE,CAACC,SAAS,CAACtC,KAAK,EAClBqC,EAAE,CAACC,SAAS,CAACrC,MAAM,IAAIH,cAAc,CAACC,IAAI,CAACE,MAAM,EACjDyF,MAAI,CAACnB,cAAc,CAAClC,EAAE,CAAC,EACvBA,EAAE,CAACC,SAAS,CAACsE,QAAQ,EACrBvE,EAAE,CAACC,SAAS,CAACuE,SACf,CACF,CAAC,CAEL,CACF,CAAC;QACH;MACF,CAAC,CAAC;;MAEF;MACA;MACA,IAAI,CAAC,IAAI,CAACnD,6BAA6B,CAACiC,cAAc,CAAC,EAAE;QACvD,IAAI,CAACrF,yBAAyB,CAACqF,cAAc,CAAC;QAC9C,IAAI,CAAC7B,sBAAsB,GAAG6B,cAAc;QAC5C1C,oBAAW,CAACC,MAAM,CAAC4D,IAAI,qDAAqD,CAAC;MAC/E,CAAC,MAAM;QACL7D,oBAAW,CAACC,MAAM,CAAC4D,IAAI,mFAEvB,CAAC;MACH;IACF;EAAC;IAAAtF,GAAA;IAAAC,KAAA,EAED,SAAAsF,WAAkB5C,YAA0B,EAAiC;MAAA,IAAA6C,MAAA;MAAA,IAA/B7F,MAAM,GAAA8F,SAAA,CAAAlE,MAAA,QAAAkE,SAAA,QAAArC,SAAA,GAAAqC,SAAA,MAAG,IAAI;MACzD;MACA,IAAMC,KAAK,MAAA9D,MAAA,CAAM,IAAI,CAACzC,OAAO,EAAE,CAAE;MAEjC,IAAI,CAACG,cAAc,CAACoG,KAAK,CAAC,GAAG/C,YAAY;MAEzC,IAAMgD,YAAY,GAAG,SAAfA,YAAYA,CAAAC,IAAA,EAAgB;QAAA,IAAXpH,KAAK,GAAAoH,IAAA,CAALpH,KAAK;QAC1BmE,YAAY,CAAC1B,cAAc,GAAGzC,KAAK;QACnCgH,MAAI,CAAC3F,6BAA6B,CAAC,CAAC;MACtC,CAAC;MACD8C,YAAY,CAACkD,WAAW,GAAGF,YAAY;MAEvChD,YAAY,CAACxB,YAAY,CAACP,OAAO,CAAC,UAACS,EAAE,EAAK;QACxCA,EAAE,CAACyE,EAAE,CAACC,8BAAiB,CAACC,YAAY,EAAER,MAAI,CAAC9F,oBAAoB,CAAC;QAChE2B,EAAE,CAACyE,EAAE,CAACC,8BAAiB,CAACE,WAAW,EAAEtD,YAAY,CAACkD,WAAW,CAAC;MAChE,CAAC,CAAC;MAEF,IAAIlG,MAAM,EAAE;QACV,IAAI,CAACA,MAAM,CAAC,CAAC;MACf;MAEA,OAAO+F,KAAK;IACd;EAAC;IAAA1F,GAAA;IAAAC,KAAA,EAED,SAAAiG,cAAqBC,SAAyB,EAAiB;MAAA,IAAAC,MAAA;MAAA,IAAfzG,MAAM,GAAA8F,SAAA,CAAAlE,MAAA,QAAAkE,SAAA,QAAArC,SAAA,GAAAqC,SAAA,MAAG,IAAI;MAC3D,IAAM9C,YAAY,GAAG,IAAI,CAACrD,cAAc,CAAC6G,SAAS,CAAC;MAEnDxD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAExB,YAAY,CAACP,OAAO,CAAC,UAACS,EAAE,EAAK;QACzCA,EAAE,CAACgF,GAAG,CAACN,8BAAiB,CAACC,YAAY,EAAEI,MAAI,CAAC1G,oBAAoB,CAAC;QACjE2B,EAAE,CAACgF,GAAG,CAACN,8BAAiB,CAACE,WAAW,EAAEtD,YAAY,CAACkD,WAAW,CAAC;MACjE,CAAC,CAAC;MAEF,OAAO,IAAI,CAACvG,cAAc,CAAC6G,SAAS,CAAC;MAErC,IAAIxG,MAAM,EAAE;QACV,IAAI,CAACA,MAAM,CAAC,CAAC;MACf;IACF;EAAC;IAAAK,GAAA;IAAAC,KAAA,EAED,SAAAN,OAAA,EAAgB;MACd,OAAO,IAAI,CAACQ,YAAY,CAAC,CAAC;IAC5B;EAAC;IAAAH,GAAA;IAAAC,KAAA,EAED,SAAAqG,MAAA,EAAe;MACb,IAAI,CAAChH,cAAc,GAAG,CAAC,CAAC;MACxB,IAAI,CAACD,eAAe,GAAG,CAAC;MACxB,IAAI,CAACD,cAAc,GAAG,CAAC;IACzB;EAAC;IAAAY,GAAA;IAAAC,KAAA,EAED,SAAAsG,qBAA4BlH,eAAuB,EAAED,cAAsB,EAAE;MAC3E,IAAI,CAACC,eAAe,GAAGA,eAAe;MACtC,IAAI,CAACD,cAAc,GAAGA,cAAc;MAEpC,IAAI,CAACe,YAAY,CAAC,CAAC;IACrB;EAAC;EAAA,OAAAvB,mBAAA;AAAA"}
|
1
|
+
{"version":3,"names":["_internalMediaCore","require","_lodash","_loggerProxy","_interopRequireDefault","_receiveSlot","_remoteMedia","CODEC_DEFAULTS","h264","maxFs","maxFps","maxMbps","DEBOUNCED_SOURCE_UPDATE_TIME","MediaRequestManager","exports","sendMediaRequestsCallback","options","_classCallCheck2","default","_defineProperty2","counter","numLiveSources","numTotalSources","clientRequests","degradationPreferences","kind","trimRequestsToNumOfSources","sourceUpdateListener","commit","bind","debouncedSourceUpdateListener","debounce","_createClass2","key","value","setDegradationPreferences","sendRequests","getDegradedClientRequests","_this","maxFsLimits","MAX_FS_VALUES","_loop","i","totalMacroblocksRequested","_values","forEach","mr","codecInfo","Math","min","preferredMaxFs","slotsWithLiveSource","receiveSlots","filter","rs","sourceState","length","maxMacroblocksLimit","LoggerProxy","logger","warn","concat","isEqual","streamRequestA","streamRequestB","_stringify","_toJmpStreamRequest","checkIsNewRequestsEqualToPrev","newRequests","_this2","isEmpty","previousStreamRequests","every","req","idx","getMaxPayloadBitsPerSecond","mediaRequest","RecommendedOpusBitrates","FB_MONO_MUSIC","getRecommendedMaxBitrateForFrameSize","getH264MaxMbps","clearPreviousRequests","trimRequests","preferLiveVideo","getPreferLiveVideo","undefined","numStreamsAvailable","sort","a","b","policyInfo","policy","priority","request","trimmedCount","Error","cloneClientRequests","cloneDeepWith","_toConsumableArray2","_this3","streamRequests","push","StreamRequest","Policy","ActiveSpeaker","ReceiverSelected","ActiveSpeakerInfo","crossPriorityDuplication","crossPolicyDuplication","namedMediaGroups","ReceiverSelectedInfo","csi","map","receiveSlot","wcmeReceiveSlot","WcmeCodecInfo","H264Codec","maxWidth","maxHeight","info","addRequest","_this4","arguments","newId","eventHandler","_ref","handleMaxFs","on","ReceiveSlotEvents","SourceUpdate","MaxFsUpdate","cancelRequest","requestId","_this5","off","reset","setNumCurrentSources"],"sources":["mediaRequestManager.ts"],"sourcesContent":["/* eslint-disable require-jsdoc */\nimport {\n StreamRequest,\n Policy,\n ActiveSpeakerInfo,\n ReceiverSelectedInfo,\n CodecInfo as WcmeCodecInfo,\n H264Codec,\n getRecommendedMaxBitrateForFrameSize,\n RecommendedOpusBitrates,\n NamedMediaGroup,\n} from '@webex/internal-media-core';\nimport {cloneDeepWith, debounce, isEmpty} from 'lodash';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport {ReceiveSlot, ReceiveSlotEvents} from './receiveSlot';\nimport {MAX_FS_VALUES} from './remoteMedia';\n\nexport interface ActiveSpeakerPolicyInfo {\n policy: 'active-speaker';\n priority: number;\n crossPriorityDuplication: boolean;\n crossPolicyDuplication: boolean;\n preferLiveVideo: boolean;\n namedMediaGroups?: NamedMediaGroup[];\n}\n\nexport interface ReceiverSelectedPolicyInfo {\n policy: 'receiver-selected';\n csi: number;\n}\n\nexport type PolicyInfo = ActiveSpeakerPolicyInfo | ReceiverSelectedPolicyInfo;\n\nexport interface H264CodecInfo {\n codec: 'h264';\n maxFs?: number;\n maxFps?: number;\n maxMbps?: number;\n maxWidth?: number;\n maxHeight?: number;\n}\n\nexport type CodecInfo = H264CodecInfo; // we'll add AV1 here in the future when it's available\n\nexport interface MediaRequest {\n policyInfo: PolicyInfo;\n receiveSlots: Array<ReceiveSlot>;\n codecInfo?: CodecInfo;\n preferredMaxFs?: number;\n handleMaxFs?: ({maxFs}: {maxFs: number}) => void;\n}\n\nexport type MediaRequestId = string;\n\nconst CODEC_DEFAULTS = {\n h264: {\n maxFs: 8192,\n maxFps: 3000,\n maxMbps: 245760,\n },\n};\n\nconst DEBOUNCED_SOURCE_UPDATE_TIME = 1000;\n\ntype DegradationPreferences = {\n maxMacroblocksLimit: number;\n};\n\ntype SendMediaRequestsCallback = (streamRequests: StreamRequest[]) => void;\ntype Kind = 'audio' | 'video';\n\ntype Options = {\n degradationPreferences: DegradationPreferences;\n kind: Kind;\n trimRequestsToNumOfSources: boolean; // if enabled, AS speaker requests will be trimmed based on the calls to setNumCurrentSources()\n};\n\ntype ClientRequestsMap = {[key: MediaRequestId]: MediaRequest};\n\nexport class MediaRequestManager {\n private sendMediaRequestsCallback: SendMediaRequestsCallback;\n\n private kind: Kind;\n\n private counter: number;\n\n private clientRequests: ClientRequestsMap;\n\n private degradationPreferences: DegradationPreferences;\n\n private sourceUpdateListener: () => void;\n\n private debouncedSourceUpdateListener: () => void;\n\n private previousStreamRequests: Array<StreamRequest> = [];\n\n private trimRequestsToNumOfSources: boolean;\n private numTotalSources: number;\n private numLiveSources: number;\n\n constructor(sendMediaRequestsCallback: SendMediaRequestsCallback, options: Options) {\n this.sendMediaRequestsCallback = sendMediaRequestsCallback;\n this.counter = 0;\n this.numLiveSources = 0;\n this.numTotalSources = 0;\n this.clientRequests = {};\n this.degradationPreferences = options.degradationPreferences;\n this.kind = options.kind;\n this.trimRequestsToNumOfSources = options.trimRequestsToNumOfSources;\n this.sourceUpdateListener = this.commit.bind(this);\n this.debouncedSourceUpdateListener = debounce(\n this.sourceUpdateListener,\n DEBOUNCED_SOURCE_UPDATE_TIME\n );\n }\n\n public setDegradationPreferences(degradationPreferences: DegradationPreferences) {\n this.degradationPreferences = degradationPreferences;\n this.sendRequests(); // re-send requests after preferences are set\n }\n\n private getDegradedClientRequests(clientRequests: ClientRequestsMap) {\n const maxFsLimits = [\n MAX_FS_VALUES['1080p'],\n MAX_FS_VALUES['720p'],\n MAX_FS_VALUES['540p'],\n MAX_FS_VALUES['360p'],\n MAX_FS_VALUES['180p'],\n MAX_FS_VALUES['90p'],\n ];\n\n // reduce max-fs until total macroblocks is below limit\n for (let i = 0; i < maxFsLimits.length; i += 1) {\n let totalMacroblocksRequested = 0;\n Object.values(clientRequests).forEach((mr) => {\n if (mr.codecInfo) {\n mr.codecInfo.maxFs = Math.min(\n mr.preferredMaxFs || CODEC_DEFAULTS.h264.maxFs,\n mr.codecInfo.maxFs || CODEC_DEFAULTS.h264.maxFs,\n maxFsLimits[i]\n );\n // we only consider sources with \"live\" state\n const slotsWithLiveSource = mr.receiveSlots.filter((rs) => rs.sourceState === 'live');\n totalMacroblocksRequested += mr.codecInfo.maxFs * slotsWithLiveSource.length;\n }\n });\n if (totalMacroblocksRequested <= this.degradationPreferences.maxMacroblocksLimit) {\n if (i !== 0) {\n LoggerProxy.logger.warn(\n `multistream:mediaRequestManager --> too many streams with high max-fs, frame size will be limited to ${maxFsLimits[i]}`\n );\n }\n break;\n } else if (i === maxFsLimits.length - 1) {\n LoggerProxy.logger.warn(\n `multistream:mediaRequestManager --> even with frame size limited to ${maxFsLimits[i]} you are still requesting too many streams, consider reducing the number of requests`\n );\n }\n }\n }\n\n /**\n * Returns true if two stream requests are the same, false otherwise.\n *\n * @param {StreamRequest} streamRequestA - Stream request A for comparison.\n * @param {StreamRequest} streamRequestB - Stream request B for comparison.\n * @returns {boolean} - Whether they are equal.\n */\n // eslint-disable-next-line class-methods-use-this\n public isEqual(streamRequestA: StreamRequest, streamRequestB: StreamRequest) {\n return (\n JSON.stringify(streamRequestA._toJmpStreamRequest()) ===\n JSON.stringify(streamRequestB._toJmpStreamRequest())\n );\n }\n\n /**\n * Compares new stream requests to previous ones and determines\n * if they are the same.\n *\n * @param {StreamRequest[]} newRequests - Array with new requests.\n * @returns {boolean} - True if they are equal, false otherwise.\n */\n private checkIsNewRequestsEqualToPrev(newRequests: StreamRequest[]) {\n return (\n !isEmpty(this.previousStreamRequests) &&\n this.previousStreamRequests.length === newRequests.length &&\n this.previousStreamRequests.every((req, idx) => this.isEqual(req, newRequests[idx]))\n );\n }\n\n /**\n * Returns the maxPayloadBitsPerSecond per Stream\n *\n * If MediaRequestManager kind is \"audio\", a constant bitrate will be returned.\n * If MediaRequestManager kind is \"video\", the bitrate will be calculated based\n * on maxFs (default h264 maxFs as fallback if maxFs is not defined)\n *\n * @param {MediaRequest} mediaRequest - mediaRequest to take data from\n * @returns {number} maxPayloadBitsPerSecond\n */\n private getMaxPayloadBitsPerSecond(mediaRequest: MediaRequest): number {\n if (this.kind === 'audio') {\n // return mono_music bitrate default if the kind of mediarequest manager is audio:\n return RecommendedOpusBitrates.FB_MONO_MUSIC;\n }\n\n return getRecommendedMaxBitrateForFrameSize(\n mediaRequest.codecInfo.maxFs || CODEC_DEFAULTS.h264.maxFs\n );\n }\n\n /**\n * Returns the max Macro Blocks per second (maxMbps) per H264 Stream\n *\n * The maxMbps will be calculated based on maxFs and maxFps\n * (default h264 maxFps as fallback if maxFps is not defined)\n *\n * @param {MediaRequest} mediaRequest - mediaRequest to take data from\n * @returns {number} maxMbps\n */\n // eslint-disable-next-line class-methods-use-this\n private getH264MaxMbps(mediaRequest: MediaRequest): number {\n // fallback for maxFps (not needed for maxFs, since there is a fallback already in getDegradedClientRequests)\n const maxFps = mediaRequest.codecInfo.maxFps || CODEC_DEFAULTS.h264.maxFps;\n\n // divided by 100 since maxFps is 3000 (for 30 frames per seconds)\n return (mediaRequest.codecInfo.maxFs * maxFps) / 100;\n }\n\n /**\n * Clears the previous stream requests.\n *\n * @returns {void}\n */\n public clearPreviousRequests(): void {\n this.previousStreamRequests = [];\n }\n\n /** Modifies the passed in clientRequests and makes sure that in total they don't ask\n * for more streams than there are available.\n *\n * @param {Object} clientRequests\n * @returns {void}\n */\n private trimRequests(clientRequests: ClientRequestsMap) {\n const preferLiveVideo = this.getPreferLiveVideo();\n\n if (!this.trimRequestsToNumOfSources) {\n return;\n }\n\n // preferLiveVideo being undefined means that there are no active-speaker requests so we don't need to do any trimming\n if (preferLiveVideo === undefined) {\n return;\n }\n\n let numStreamsAvailable = preferLiveVideo ? this.numLiveSources : this.numTotalSources;\n\n Object.values(clientRequests)\n .sort((a, b) => {\n // we have to count how many streams we're asking for\n // and should not ask for more than numStreamsAvailable in total,\n // so we might need to trim active-speaker requests and first ones to trim should be\n // the ones with lowest priority\n\n // receiver-selected requests have priority over active-speakers\n if (a.policyInfo.policy === 'receiver-selected') {\n return -1;\n }\n if (b.policyInfo.policy === 'receiver-selected') {\n return 1;\n }\n\n // and active-speakers are sorted by descending priority\n return b.policyInfo.priority - a.policyInfo.priority;\n })\n .forEach((request) => {\n // we only trim active-speaker requests\n if (request.policyInfo.policy === 'active-speaker') {\n const trimmedCount = Math.min(numStreamsAvailable, request.receiveSlots.length);\n\n request.receiveSlots.length = trimmedCount;\n\n numStreamsAvailable -= trimmedCount;\n } else {\n numStreamsAvailable -= request.receiveSlots.length;\n }\n\n if (numStreamsAvailable < 0) {\n numStreamsAvailable = 0;\n }\n });\n }\n\n private getPreferLiveVideo(): boolean | undefined {\n let preferLiveVideo;\n\n Object.values(this.clientRequests).forEach((mr) => {\n if (mr.policyInfo.policy === 'active-speaker') {\n // take the value from first encountered active speaker request\n if (preferLiveVideo === undefined) {\n preferLiveVideo = mr.policyInfo.preferLiveVideo;\n }\n\n if (mr.policyInfo.preferLiveVideo !== preferLiveVideo) {\n throw new Error(\n 'a mix of active-speaker groups with different values for preferLiveVideo is not supported'\n );\n }\n }\n });\n\n return preferLiveVideo;\n }\n\n private cloneClientRequests(): ClientRequestsMap {\n // we clone the client requests but without cloning the ReceiveSlots that they reference\n return cloneDeepWith(this.clientRequests, (value, key) => {\n if (key === 'receiveSlots') {\n return [...value];\n }\n\n return undefined;\n });\n }\n\n private sendRequests() {\n const streamRequests: StreamRequest[] = [];\n\n // clone the requests so that any modifications we do to them don't affect the original ones\n const clientRequests = this.cloneClientRequests();\n\n this.trimRequests(clientRequests);\n this.getDegradedClientRequests(clientRequests);\n\n // map all the client media requests to wcme stream requests\n Object.values(clientRequests).forEach((mr) => {\n if (mr.receiveSlots.length > 0) {\n streamRequests.push(\n new StreamRequest(\n mr.policyInfo.policy === 'active-speaker'\n ? Policy.ActiveSpeaker\n : Policy.ReceiverSelected,\n mr.policyInfo.policy === 'active-speaker'\n ? new ActiveSpeakerInfo(\n mr.policyInfo.priority,\n mr.policyInfo.crossPriorityDuplication,\n mr.policyInfo.crossPolicyDuplication,\n mr.policyInfo.preferLiveVideo,\n mr.policyInfo.namedMediaGroups\n )\n : new ReceiverSelectedInfo(mr.policyInfo.csi),\n mr.receiveSlots.map((receiveSlot) => receiveSlot.wcmeReceiveSlot),\n this.getMaxPayloadBitsPerSecond(mr),\n mr.codecInfo && [\n new WcmeCodecInfo(\n 0x80,\n new H264Codec(\n mr.codecInfo.maxFs,\n mr.codecInfo.maxFps || CODEC_DEFAULTS.h264.maxFps,\n this.getH264MaxMbps(mr),\n mr.codecInfo.maxWidth,\n mr.codecInfo.maxHeight\n )\n ),\n ]\n )\n );\n }\n });\n\n //! IMPORTANT: this is only a temporary fix. This will soon be done in the jmp layer (@webex/json-multistream)\n // https://jira-eng-gpk2.cisco.com/jira/browse/WEBEX-326713\n if (!this.checkIsNewRequestsEqualToPrev(streamRequests)) {\n this.sendMediaRequestsCallback(streamRequests);\n this.previousStreamRequests = streamRequests;\n LoggerProxy.logger.info(`multistream:sendRequests --> media requests sent. `);\n } else {\n LoggerProxy.logger.info(\n `multistream:sendRequests --> detected duplicate WCME requests, skipping them... `\n );\n }\n }\n\n public addRequest(mediaRequest: MediaRequest, commit = true): MediaRequestId {\n // eslint-disable-next-line no-plusplus\n const newId = `${this.counter++}`;\n\n this.clientRequests[newId] = mediaRequest;\n\n const eventHandler = ({maxFs}) => {\n mediaRequest.preferredMaxFs = maxFs;\n this.debouncedSourceUpdateListener();\n };\n mediaRequest.handleMaxFs = eventHandler;\n\n mediaRequest.receiveSlots.forEach((rs) => {\n rs.on(ReceiveSlotEvents.SourceUpdate, this.sourceUpdateListener);\n rs.on(ReceiveSlotEvents.MaxFsUpdate, mediaRequest.handleMaxFs);\n });\n\n if (commit) {\n this.commit();\n }\n\n return newId;\n }\n\n public cancelRequest(requestId: MediaRequestId, commit = true) {\n const mediaRequest = this.clientRequests[requestId];\n\n mediaRequest?.receiveSlots.forEach((rs) => {\n rs.off(ReceiveSlotEvents.SourceUpdate, this.sourceUpdateListener);\n rs.off(ReceiveSlotEvents.MaxFsUpdate, mediaRequest.handleMaxFs);\n });\n\n delete this.clientRequests[requestId];\n\n if (commit) {\n this.commit();\n }\n }\n\n public commit() {\n return this.sendRequests();\n }\n\n public reset() {\n this.clientRequests = {};\n this.numTotalSources = 0;\n this.numLiveSources = 0;\n }\n\n public setNumCurrentSources(numTotalSources: number, numLiveSources: number) {\n this.numTotalSources = numTotalSources;\n this.numLiveSources = numLiveSources;\n\n this.sendRequests();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AACA,IAAAA,kBAAA,GAAAC,OAAA;AAWA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAAE,YAAA,GAAAC,sBAAA,CAAAH,OAAA;AAEA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AAjBA;;AA4CuC;;AAYvC,IAAMM,cAAc,GAAG;EACrBC,IAAI,EAAE;IACJC,KAAK,EAAE,IAAI;IACXC,MAAM,EAAE,IAAI;IACZC,OAAO,EAAE;EACX;AACF,CAAC;AAED,IAAMC,4BAA4B,GAAG,IAAI;AAAC,IAiB7BC,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA;EAqB9B,SAAAA,oBAAYE,yBAAoD,EAAEC,OAAgB,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAL,mBAAA;IAAA,IAAAM,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA,kCAN7B,EAAE;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAOvD,IAAI,CAACH,yBAAyB,GAAGA,yBAAyB;IAC1D,IAAI,CAACK,OAAO,GAAG,CAAC;IAChB,IAAI,CAACC,cAAc,GAAG,CAAC;IACvB,IAAI,CAACC,eAAe,GAAG,CAAC;IACxB,IAAI,CAACC,cAAc,GAAG,CAAC,CAAC;IACxB,IAAI,CAACC,sBAAsB,GAAGR,OAAO,CAACQ,sBAAsB;IAC5D,IAAI,CAACC,IAAI,GAAGT,OAAO,CAACS,IAAI;IACxB,IAAI,CAACC,0BAA0B,GAAGV,OAAO,CAACU,0BAA0B;IACpE,IAAI,CAACC,oBAAoB,GAAG,IAAI,CAACC,MAAM,CAACC,IAAI,CAAC,IAAI,CAAC;IAClD,IAAI,CAACC,6BAA6B,GAAG,IAAAC,gBAAQ,EAC3C,IAAI,CAACJ,oBAAoB,EACzBf,4BACF,CAAC;EACH;EAAC,IAAAoB,aAAA,CAAAd,OAAA,EAAAL,mBAAA;IAAAoB,GAAA;IAAAC,KAAA,EAED,SAAAC,0BAAiCX,sBAA8C,EAAE;MAC/E,IAAI,CAACA,sBAAsB,GAAGA,sBAAsB;MACpD,IAAI,CAACY,YAAY,CAAC,CAAC,CAAC,CAAC;IACvB;EAAC;IAAAH,GAAA;IAAAC,KAAA,EAED,SAAAG,0BAAkCd,cAAiC,EAAE;MAAA,IAAAe,KAAA;MACnE,IAAMC,WAAW,GAAG,CAClBC,0BAAa,CAAC,OAAO,CAAC,EACtBA,0BAAa,CAAC,MAAM,CAAC,EACrBA,0BAAa,CAAC,MAAM,CAAC,EACrBA,0BAAa,CAAC,MAAM,CAAC,EACrBA,0BAAa,CAAC,MAAM,CAAC,EACrBA,0BAAa,CAAC,KAAK,CAAC,CACrB;;MAED;MAAA,IAAAC,KAAA,YAAAA,MAAAC,CAAA,EACgD;QAC9C,IAAIC,yBAAyB,GAAG,CAAC;QACjC,IAAAC,OAAA,CAAA1B,OAAA,EAAcK,cAAc,CAAC,CAACsB,OAAO,CAAC,UAACC,EAAE,EAAK;UAC5C,IAAIA,EAAE,CAACC,SAAS,EAAE;YAChBD,EAAE,CAACC,SAAS,CAACtC,KAAK,GAAGuC,IAAI,CAACC,GAAG,CAC3BH,EAAE,CAACI,cAAc,IAAI3C,cAAc,CAACC,IAAI,CAACC,KAAK,EAC9CqC,EAAE,CAACC,SAAS,CAACtC,KAAK,IAAIF,cAAc,CAACC,IAAI,CAACC,KAAK,EAC/C8B,WAAW,CAACG,CAAC,CACf,CAAC;YACD;YACA,IAAMS,mBAAmB,GAAGL,EAAE,CAACM,YAAY,CAACC,MAAM,CAAC,UAACC,EAAE;cAAA,OAAKA,EAAE,CAACC,WAAW,KAAK,MAAM;YAAA,EAAC;YACrFZ,yBAAyB,IAAIG,EAAE,CAACC,SAAS,CAACtC,KAAK,GAAG0C,mBAAmB,CAACK,MAAM;UAC9E;QACF,CAAC,CAAC;QACF,IAAIb,yBAAyB,IAAIL,KAAI,CAACd,sBAAsB,CAACiC,mBAAmB,EAAE;UAChF,IAAIf,CAAC,KAAK,CAAC,EAAE;YACXgB,oBAAW,CAACC,MAAM,CAACC,IAAI,yGAAAC,MAAA,CACmFtB,WAAW,CAACG,CAAC,CAAC,CACxH,CAAC;UACH;UAAC;QAEH,CAAC,MAAM,IAAIA,CAAC,KAAKH,WAAW,CAACiB,MAAM,GAAG,CAAC,EAAE;UACvCE,oBAAW,CAACC,MAAM,CAACC,IAAI,wEAAAC,MAAA,CACkDtB,WAAW,CAACG,CAAC,CAAC,yFACvF,CAAC;QACH;MACF,CAAC;MA1BD,KAAK,IAAIA,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,WAAW,CAACiB,MAAM,EAAEd,CAAC,IAAI,CAAC;QAAA,IAAAD,KAAA,CAAAC,CAAA,GAoB1C;MAAM;IAOZ;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;IACE;EAAA;IAAAT,GAAA;IAAAC,KAAA,EACA,SAAA4B,QAAeC,cAA6B,EAAEC,cAA6B,EAAE;MAC3E,OACE,IAAAC,UAAA,CAAA/C,OAAA,EAAe6C,cAAc,CAACG,mBAAmB,CAAC,CAAC,CAAC,KACpD,IAAAD,UAAA,CAAA/C,OAAA,EAAe8C,cAAc,CAACE,mBAAmB,CAAC,CAAC,CAAC;IAExD;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAAjC,GAAA;IAAAC,KAAA,EAOA,SAAAiC,8BAAsCC,WAA4B,EAAE;MAAA,IAAAC,MAAA;MAClE,OACE,CAAC,IAAAC,eAAO,EAAC,IAAI,CAACC,sBAAsB,CAAC,IACrC,IAAI,CAACA,sBAAsB,CAACf,MAAM,KAAKY,WAAW,CAACZ,MAAM,IACzD,IAAI,CAACe,sBAAsB,CAACC,KAAK,CAAC,UAACC,GAAG,EAAEC,GAAG;QAAA,OAAKL,MAAI,CAACP,OAAO,CAACW,GAAG,EAAEL,WAAW,CAACM,GAAG,CAAC,CAAC;MAAA,EAAC;IAExF;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EATE;IAAAzC,GAAA;IAAAC,KAAA,EAUA,SAAAyC,2BAAmCC,YAA0B,EAAU;MACrE,IAAI,IAAI,CAACnD,IAAI,KAAK,OAAO,EAAE;QACzB;QACA,OAAOoD,0CAAuB,CAACC,aAAa;MAC9C;MAEA,OAAO,IAAAC,uDAAoC,EACzCH,YAAY,CAAC7B,SAAS,CAACtC,KAAK,IAAIF,cAAc,CAACC,IAAI,CAACC,KACtD,CAAC;IACH;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACE;EAAA;IAAAwB,GAAA;IAAAC,KAAA,EACA,SAAA8C,eAAuBJ,YAA0B,EAAU;MACzD;MACA,IAAMlE,MAAM,GAAGkE,YAAY,CAAC7B,SAAS,CAACrC,MAAM,IAAIH,cAAc,CAACC,IAAI,CAACE,MAAM;;MAE1E;MACA,OAAQkE,YAAY,CAAC7B,SAAS,CAACtC,KAAK,GAAGC,MAAM,GAAI,GAAG;IACtD;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAAuB,GAAA;IAAAC,KAAA,EAKA,SAAA+C,sBAAA,EAAqC;MACnC,IAAI,CAACV,sBAAsB,GAAG,EAAE;IAClC;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAAtC,GAAA;IAAAC,KAAA,EAMA,SAAAgD,aAAqB3D,cAAiC,EAAE;MACtD,IAAM4D,eAAe,GAAG,IAAI,CAACC,kBAAkB,CAAC,CAAC;MAEjD,IAAI,CAAC,IAAI,CAAC1D,0BAA0B,EAAE;QACpC;MACF;;MAEA;MACA,IAAIyD,eAAe,KAAKE,SAAS,EAAE;QACjC;MACF;MAEA,IAAIC,mBAAmB,GAAGH,eAAe,GAAG,IAAI,CAAC9D,cAAc,GAAG,IAAI,CAACC,eAAe;MAEtF,IAAAsB,OAAA,CAAA1B,OAAA,EAAcK,cAAc,CAAC,CAC1BgE,IAAI,CAAC,UAACC,CAAC,EAAEC,CAAC,EAAK;QACd;QACA;QACA;QACA;;QAEA;QACA,IAAID,CAAC,CAACE,UAAU,CAACC,MAAM,KAAK,mBAAmB,EAAE;UAC/C,OAAO,CAAC,CAAC;QACX;QACA,IAAIF,CAAC,CAACC,UAAU,CAACC,MAAM,KAAK,mBAAmB,EAAE;UAC/C,OAAO,CAAC;QACV;;QAEA;QACA,OAAOF,CAAC,CAACC,UAAU,CAACE,QAAQ,GAAGJ,CAAC,CAACE,UAAU,CAACE,QAAQ;MACtD,CAAC,CAAC,CACD/C,OAAO,CAAC,UAACgD,OAAO,EAAK;QACpB;QACA,IAAIA,OAAO,CAACH,UAAU,CAACC,MAAM,KAAK,gBAAgB,EAAE;UAClD,IAAMG,YAAY,GAAG9C,IAAI,CAACC,GAAG,CAACqC,mBAAmB,EAAEO,OAAO,CAACzC,YAAY,CAACI,MAAM,CAAC;UAE/EqC,OAAO,CAACzC,YAAY,CAACI,MAAM,GAAGsC,YAAY;UAE1CR,mBAAmB,IAAIQ,YAAY;QACrC,CAAC,MAAM;UACLR,mBAAmB,IAAIO,OAAO,CAACzC,YAAY,CAACI,MAAM;QACpD;QAEA,IAAI8B,mBAAmB,GAAG,CAAC,EAAE;UAC3BA,mBAAmB,GAAG,CAAC;QACzB;MACF,CAAC,CAAC;IACN;EAAC;IAAArD,GAAA;IAAAC,KAAA,EAED,SAAAkD,mBAAA,EAAkD;MAChD,IAAID,eAAe;MAEnB,IAAAvC,OAAA,CAAA1B,OAAA,EAAc,IAAI,CAACK,cAAc,CAAC,CAACsB,OAAO,CAAC,UAACC,EAAE,EAAK;QACjD,IAAIA,EAAE,CAAC4C,UAAU,CAACC,MAAM,KAAK,gBAAgB,EAAE;UAC7C;UACA,IAAIR,eAAe,KAAKE,SAAS,EAAE;YACjCF,eAAe,GAAGrC,EAAE,CAAC4C,UAAU,CAACP,eAAe;UACjD;UAEA,IAAIrC,EAAE,CAAC4C,UAAU,CAACP,eAAe,KAAKA,eAAe,EAAE;YACrD,MAAM,IAAIY,KAAK,CACb,2FACF,CAAC;UACH;QACF;MACF,CAAC,CAAC;MAEF,OAAOZ,eAAe;IACxB;EAAC;IAAAlD,GAAA;IAAAC,KAAA,EAED,SAAA8D,oBAAA,EAAiD;MAC/C;MACA,OAAO,IAAAC,qBAAa,EAAC,IAAI,CAAC1E,cAAc,EAAE,UAACW,KAAK,EAAED,GAAG,EAAK;QACxD,IAAIA,GAAG,KAAK,cAAc,EAAE;UAC1B,WAAAiE,mBAAA,CAAAhF,OAAA,EAAWgB,KAAK;QAClB;QAEA,OAAOmD,SAAS;MAClB,CAAC,CAAC;IACJ;EAAC;IAAApD,GAAA;IAAAC,KAAA,EAED,SAAAE,aAAA,EAAuB;MAAA,IAAA+D,MAAA;MACrB,IAAMC,cAA+B,GAAG,EAAE;;MAE1C;MACA,IAAM7E,cAAc,GAAG,IAAI,CAACyE,mBAAmB,CAAC,CAAC;MAEjD,IAAI,CAACd,YAAY,CAAC3D,cAAc,CAAC;MACjC,IAAI,CAACc,yBAAyB,CAACd,cAAc,CAAC;;MAE9C;MACA,IAAAqB,OAAA,CAAA1B,OAAA,EAAcK,cAAc,CAAC,CAACsB,OAAO,CAAC,UAACC,EAAE,EAAK;QAC5C,IAAIA,EAAE,CAACM,YAAY,CAACI,MAAM,GAAG,CAAC,EAAE;UAC9B4C,cAAc,CAACC,IAAI,CACjB,IAAIC,gCAAa,CACfxD,EAAE,CAAC4C,UAAU,CAACC,MAAM,KAAK,gBAAgB,GACrCY,yBAAM,CAACC,aAAa,GACpBD,yBAAM,CAACE,gBAAgB,EAC3B3D,EAAE,CAAC4C,UAAU,CAACC,MAAM,KAAK,gBAAgB,GACrC,IAAIe,oCAAiB,CACnB5D,EAAE,CAAC4C,UAAU,CAACE,QAAQ,EACtB9C,EAAE,CAAC4C,UAAU,CAACiB,wBAAwB,EACtC7D,EAAE,CAAC4C,UAAU,CAACkB,sBAAsB,EACpC9D,EAAE,CAAC4C,UAAU,CAACP,eAAe,EAC7BrC,EAAE,CAAC4C,UAAU,CAACmB,gBAChB,CAAC,GACD,IAAIC,uCAAoB,CAAChE,EAAE,CAAC4C,UAAU,CAACqB,GAAG,CAAC,EAC/CjE,EAAE,CAACM,YAAY,CAAC4D,GAAG,CAAC,UAACC,WAAW;YAAA,OAAKA,WAAW,CAACC,eAAe;UAAA,EAAC,EACjEf,MAAI,CAACxB,0BAA0B,CAAC7B,EAAE,CAAC,EACnCA,EAAE,CAACC,SAAS,IAAI,CACd,IAAIoE,4BAAa,CACf,IAAI,EACJ,IAAIC,4BAAS,CACXtE,EAAE,CAACC,SAAS,CAACtC,KAAK,EAClBqC,EAAE,CAACC,SAAS,CAACrC,MAAM,IAAIH,cAAc,CAACC,IAAI,CAACE,MAAM,EACjDyF,MAAI,CAACnB,cAAc,CAAClC,EAAE,CAAC,EACvBA,EAAE,CAACC,SAAS,CAACsE,QAAQ,EACrBvE,EAAE,CAACC,SAAS,CAACuE,SACf,CACF,CAAC,CAEL,CACF,CAAC;QACH;MACF,CAAC,CAAC;;MAEF;MACA;MACA,IAAI,CAAC,IAAI,CAACnD,6BAA6B,CAACiC,cAAc,CAAC,EAAE;QACvD,IAAI,CAACrF,yBAAyB,CAACqF,cAAc,CAAC;QAC9C,IAAI,CAAC7B,sBAAsB,GAAG6B,cAAc;QAC5C1C,oBAAW,CAACC,MAAM,CAAC4D,IAAI,qDAAqD,CAAC;MAC/E,CAAC,MAAM;QACL7D,oBAAW,CAACC,MAAM,CAAC4D,IAAI,mFAEvB,CAAC;MACH;IACF;EAAC;IAAAtF,GAAA;IAAAC,KAAA,EAED,SAAAsF,WAAkB5C,YAA0B,EAAiC;MAAA,IAAA6C,MAAA;MAAA,IAA/B7F,MAAM,GAAA8F,SAAA,CAAAlE,MAAA,QAAAkE,SAAA,QAAArC,SAAA,GAAAqC,SAAA,MAAG,IAAI;MACzD;MACA,IAAMC,KAAK,MAAA9D,MAAA,CAAM,IAAI,CAACzC,OAAO,EAAE,CAAE;MAEjC,IAAI,CAACG,cAAc,CAACoG,KAAK,CAAC,GAAG/C,YAAY;MAEzC,IAAMgD,YAAY,GAAG,SAAfA,YAAYA,CAAAC,IAAA,EAAgB;QAAA,IAAXpH,KAAK,GAAAoH,IAAA,CAALpH,KAAK;QAC1BmE,YAAY,CAAC1B,cAAc,GAAGzC,KAAK;QACnCgH,MAAI,CAAC3F,6BAA6B,CAAC,CAAC;MACtC,CAAC;MACD8C,YAAY,CAACkD,WAAW,GAAGF,YAAY;MAEvChD,YAAY,CAACxB,YAAY,CAACP,OAAO,CAAC,UAACS,EAAE,EAAK;QACxCA,EAAE,CAACyE,EAAE,CAACC,8BAAiB,CAACC,YAAY,EAAER,MAAI,CAAC9F,oBAAoB,CAAC;QAChE2B,EAAE,CAACyE,EAAE,CAACC,8BAAiB,CAACE,WAAW,EAAEtD,YAAY,CAACkD,WAAW,CAAC;MAChE,CAAC,CAAC;MAEF,IAAIlG,MAAM,EAAE;QACV,IAAI,CAACA,MAAM,CAAC,CAAC;MACf;MAEA,OAAO+F,KAAK;IACd;EAAC;IAAA1F,GAAA;IAAAC,KAAA,EAED,SAAAiG,cAAqBC,SAAyB,EAAiB;MAAA,IAAAC,MAAA;MAAA,IAAfzG,MAAM,GAAA8F,SAAA,CAAAlE,MAAA,QAAAkE,SAAA,QAAArC,SAAA,GAAAqC,SAAA,MAAG,IAAI;MAC3D,IAAM9C,YAAY,GAAG,IAAI,CAACrD,cAAc,CAAC6G,SAAS,CAAC;MAEnDxD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAExB,YAAY,CAACP,OAAO,CAAC,UAACS,EAAE,EAAK;QACzCA,EAAE,CAACgF,GAAG,CAACN,8BAAiB,CAACC,YAAY,EAAEI,MAAI,CAAC1G,oBAAoB,CAAC;QACjE2B,EAAE,CAACgF,GAAG,CAACN,8BAAiB,CAACE,WAAW,EAAEtD,YAAY,CAACkD,WAAW,CAAC;MACjE,CAAC,CAAC;MAEF,OAAO,IAAI,CAACvG,cAAc,CAAC6G,SAAS,CAAC;MAErC,IAAIxG,MAAM,EAAE;QACV,IAAI,CAACA,MAAM,CAAC,CAAC;MACf;IACF;EAAC;IAAAK,GAAA;IAAAC,KAAA,EAED,SAAAN,OAAA,EAAgB;MACd,OAAO,IAAI,CAACQ,YAAY,CAAC,CAAC;IAC5B;EAAC;IAAAH,GAAA;IAAAC,KAAA,EAED,SAAAqG,MAAA,EAAe;MACb,IAAI,CAAChH,cAAc,GAAG,CAAC,CAAC;MACxB,IAAI,CAACD,eAAe,GAAG,CAAC;MACxB,IAAI,CAACD,cAAc,GAAG,CAAC;IACzB;EAAC;IAAAY,GAAA;IAAAC,KAAA,EAED,SAAAsG,qBAA4BlH,eAAuB,EAAED,cAAsB,EAAE;MAC3E,IAAI,CAACC,eAAe,GAAGA,eAAe;MACtC,IAAI,CAACD,cAAc,GAAGA,cAAc;MAEpC,IAAI,CAACe,YAAY,CAAC,CAAC;IACrB;EAAC;EAAA,OAAAvB,mBAAA;AAAA"}
|