@webex/plugin-meetings 3.0.0-beta.9 → 3.0.0-bnr.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/UPGRADING.md +9 -9
- package/browsers.js +19 -24
- package/dist/breakouts/breakout.js +178 -0
- package/dist/breakouts/breakout.js.map +1 -0
- package/dist/breakouts/collection.js +23 -0
- package/dist/breakouts/collection.js.map +1 -0
- package/dist/breakouts/edit-lock-error.js +52 -0
- package/dist/breakouts/edit-lock-error.js.map +1 -0
- package/dist/breakouts/index.js +843 -0
- package/dist/breakouts/index.js.map +1 -0
- package/dist/breakouts/request.js +78 -0
- package/dist/breakouts/request.js.map +1 -0
- package/dist/breakouts/utils.js +56 -0
- package/dist/breakouts/utils.js.map +1 -0
- package/dist/common/browser-detection.d.ts +9 -0
- package/dist/common/browser-detection.js +1 -20
- package/dist/common/browser-detection.js.map +1 -1
- package/dist/common/collection.d.ts +48 -0
- package/dist/common/collection.js +5 -20
- package/dist/common/collection.js.map +1 -1
- package/dist/common/config.d.ts +2 -0
- package/dist/common/config.js +0 -7
- package/dist/common/config.js.map +1 -1
- package/dist/common/errors/captcha-error.d.ts +15 -0
- package/dist/common/errors/captcha-error.js +5 -26
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.d.ts +16 -0
- package/dist/common/errors/intent-to-join.js +5 -26
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.d.ts +17 -0
- package/dist/common/errors/join-meeting.js +6 -27
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.d.ts +15 -0
- package/dist/common/errors/media.js +5 -26
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/parameter.d.ts +15 -0
- package/dist/common/errors/parameter.js +5 -33
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.d.ts +15 -0
- package/dist/common/errors/password-error.js +5 -26
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.d.ts +14 -0
- package/dist/common/errors/permission.js +4 -25
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/reconnection-in-progress.d.ts +9 -0
- package/dist/common/errors/reconnection-in-progress.js +0 -17
- package/dist/common/errors/reconnection-in-progress.js.map +1 -1
- package/dist/common/errors/reconnection.d.ts +15 -0
- package/dist/common/errors/reconnection.js +5 -26
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.d.ts +15 -0
- package/dist/common/errors/stats.js +5 -26
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.d.ts +81 -0
- package/dist/common/errors/webex-errors.js +6 -41
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.d.ts +20 -0
- package/dist/common/errors/webex-meetings-error.js +1 -24
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.d.ts +17 -0
- package/dist/common/events/events-scope.js +0 -22
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.d.ts +12 -0
- package/dist/common/events/events.js +0 -23
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.d.ts +2 -0
- package/dist/common/events/trigger-proxy.js +0 -12
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.d.ts +2 -0
- package/dist/common/events/util.js +0 -15
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-config.d.ts +2 -0
- package/dist/common/logs/logger-config.js +0 -4
- package/dist/common/logs/logger-config.js.map +1 -1
- package/dist/common/logs/logger-proxy.d.ts +2 -0
- package/dist/common/logs/logger-proxy.js +1 -8
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.d.ts +34 -0
- package/dist/common/logs/request.js +35 -61
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.d.ts +32 -0
- package/dist/common/queue.js +4 -14
- package/dist/common/queue.js.map +1 -1
- package/dist/config.d.ts +73 -0
- package/dist/config.js +6 -6
- package/dist/config.js.map +1 -1
- package/dist/constants.d.ts +924 -0
- package/dist/constants.js +143 -52
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.d.ts +4 -0
- package/dist/controls-options-manager/constants.js +14 -0
- package/dist/controls-options-manager/constants.js.map +1 -0
- package/dist/controls-options-manager/enums.d.ts +5 -0
- package/dist/controls-options-manager/enums.js +16 -0
- package/dist/controls-options-manager/enums.js.map +1 -0
- package/dist/controls-options-manager/index.d.ts +120 -0
- package/dist/controls-options-manager/index.js +261 -0
- package/dist/controls-options-manager/index.js.map +1 -0
- package/dist/controls-options-manager/util.d.ts +7 -0
- package/dist/controls-options-manager/util.js +39 -0
- package/dist/controls-options-manager/util.js.map +1 -0
- package/dist/docs/markdown/index.md +12 -0
- package/dist/docs/markdown/plugin-meetings.constants._active_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._answer_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._call_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._conflict_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._conversation_url_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._created_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._error_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._forced_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._id_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._idle_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._in_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._in_lobby_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._in_meeting_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._inactive_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._incoming_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._join_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._joined_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._left_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._locus_id_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._meeting_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._meeting_center_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._meeting_id_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._meeting_link_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._meeting_uuid_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._move_media_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._none_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._not_in_meeting_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._observe_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._people_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._personal_room_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._receive_only_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._remove_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._requested_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._resource_room_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._room_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._s_line.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._send_only_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._send_receive_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._sip_bridge_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._sip_uri_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._slides_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._unknown_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._user_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._wait_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants._webex_meeting_.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.alert.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.alternate_redirect_true.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.answer.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.api.md +14 -0
- package/dist/docs/markdown/plugin-meetings.constants.audio.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.audio_input.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.audio_status.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.available_resolutions.md +60 -0
- package/dist/docs/markdown/plugin-meetings.constants.bnr_status.md +16 -0
- package/dist/docs/markdown/plugin-meetings.constants.breakouts.md +51 -0
- package/dist/docs/markdown/plugin-meetings.constants.calendar.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.calendar_events.md +17 -0
- package/dist/docs/markdown/plugin-meetings.constants.calendar_events_api.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.call.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.call_removed_reason.md +15 -0
- package/dist/docs/markdown/plugin-meetings.constants.claim.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.cmr_meetings.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.complete.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.connection_state.md +18 -0
- package/dist/docs/markdown/plugin-meetings.constants.content.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.controls.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.conversation_service.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.conversation_url.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.correlation_id.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.decline.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.default_excluded_stats.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.default_get_stats_filter.md +13 -0
- package/dist/docs/markdown/plugin-meetings.constants.development.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.dialer_regex.md +15 -0
- package/dist/docs/markdown/plugin-meetings.constants.display_hints.md +51 -0
- package/dist/docs/markdown/plugin-meetings.constants.embedded_app_types.md +14 -0
- package/dist/docs/markdown/plugin-meetings.constants.end.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.ended.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.error.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.error_dictionary.md +62 -0
- package/dist/docs/markdown/plugin-meetings.constants.event_triggers.md +82 -0
- package/dist/docs/markdown/plugin-meetings.constants.event_types.md +21 -0
- package/dist/docs/markdown/plugin-meetings.constants.events.md +26 -0
- package/dist/docs/markdown/plugin-meetings.constants.floor_action.md +15 -0
- package/dist/docs/markdown/plugin-meetings.constants.full_state.md +17 -0
- package/dist/docs/markdown/plugin-meetings.constants.gathering.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.hecate.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.host.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.http_verbs.md +17 -0
- package/dist/docs/markdown/plugin-meetings.constants.https_protocol.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.ice_fail_timeout.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.ice_gathering_state.md +15 -0
- package/dist/docs/markdown/plugin-meetings.constants.ice_state.md +18 -0
- package/dist/docs/markdown/plugin-meetings.constants.ice_timeout.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.intent_to_join.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.ipv4_regex.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.join.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.layout_types.md +13 -0
- package/dist/docs/markdown/plugin-meetings.constants.leave.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.live.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.local.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.loci.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.locus.md +26 -0
- package/dist/docs/markdown/plugin-meetings.constants.locus_url.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.locusevent.md +33 -0
- package/dist/docs/markdown/plugin-meetings.constants.locusinfo.md +43 -0
- package/dist/docs/markdown/plugin-meetings.constants.max_random_delay_for_meeting_info.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.md +186 -0
- package/dist/docs/markdown/plugin-meetings.constants.media.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.media_devices.md +15 -0
- package/dist/docs/markdown/plugin-meetings.constants.media_peer_connection_name.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.media_state.md +14 -0
- package/dist/docs/markdown/plugin-meetings.constants.media_track_constraint.md +17 -0
- package/dist/docs/markdown/plugin-meetings.constants.mediacontent.md +14 -0
- package/dist/docs/markdown/plugin-meetings.constants.meet.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.meet_m.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.meeting_audio_state_machine.md +20 -0
- package/dist/docs/markdown/plugin-meetings.constants.meeting_end_reason.md +14 -0
- package/dist/docs/markdown/plugin-meetings.constants.meeting_errors.md +102 -0
- package/dist/docs/markdown/plugin-meetings.constants.meeting_info_failure_reason.md +16 -0
- package/dist/docs/markdown/plugin-meetings.constants.meeting_removed_reason.md +19 -0
- package/dist/docs/markdown/plugin-meetings.constants.meeting_state.md +25 -0
- package/dist/docs/markdown/plugin-meetings.constants.meeting_state_machine.md +31 -0
- package/dist/docs/markdown/plugin-meetings.constants.meeting_video_state_machine.md +20 -0
- package/dist/docs/markdown/plugin-meetings.constants.meetinginfo.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.meetings.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.metrics_join_times_max_duration.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.moderator_false.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.moderator_true.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.mqa_inteval.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.mqa_stats.md +82 -0
- package/dist/docs/markdown/plugin-meetings.constants.network_status.md +15 -0
- package/dist/docs/markdown/plugin-meetings.constants.network_type.md +16 -0
- package/dist/docs/markdown/plugin-meetings.constants.offline.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.online.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.participant.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.participant_deltas.md +22 -0
- package/dist/docs/markdown/plugin-meetings.constants.password_status.md +16 -0
- package/dist/docs/markdown/plugin-meetings.constants.pc_bail_timeout.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.peer_connection_state.md +14 -0
- package/dist/docs/markdown/plugin-meetings.constants.provisional_type_dial_in.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.provisional_type_dial_out.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.pstn_status.md +18 -0
- package/dist/docs/markdown/plugin-meetings.constants.quality_levels.md +19 -0
- package/dist/docs/markdown/plugin-meetings.constants.reachability.md +15 -0
- package/dist/docs/markdown/plugin-meetings.constants.ready.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.reconnection.md +19 -0
- package/dist/docs/markdown/plugin-meetings.constants.recording_state.md +16 -0
- package/dist/docs/markdown/plugin-meetings.constants.remote.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.resource.md +15 -0
- package/dist/docs/markdown/plugin-meetings.constants.retry_timeout.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.roap.md +22 -0
- package/dist/docs/markdown/plugin-meetings.constants.self_roles.md +14 -0
- package/dist/docs/markdown/plugin-meetings.constants.send_dtmf_endpoint.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.sendrecv.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.share.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.share_peer_connection_name.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.share_status.md +16 -0
- package/dist/docs/markdown/plugin-meetings.constants.share_stopped_reason.md +14 -0
- package/dist/docs/markdown/plugin-meetings.constants.sip_uri.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.stats.md +16 -0
- package/dist/docs/markdown/plugin-meetings.constants.type.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.use_uri_lookup_false.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.uuid_reg.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.valid_email_address.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.valid_pin.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.valid_pmr_address.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.valid_pmr_link.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.video.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.video_input.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.video_resolutions.md +24 -0
- package/dist/docs/markdown/plugin-meetings.constants.video_status.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.wbxappapi_service.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.webex_dot_com.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.whiteboard.md +11 -0
- package/dist/docs/markdown/plugin-meetings.constants.www_dot.md +11 -0
- package/dist/docs/markdown/plugin-meetings.md +28 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default._constructor_.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.acknowledge.md +28 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.addmedia.md +28 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.admit.md +32 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.attrs.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.audio.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.breakouts.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.callevents.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.cancelphoneinvite.md +30 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.canupdatemedia.md +19 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.changevideolayout.md +38 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.clearmeetingdata.md +13 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.closelocalshare.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.closelocalstream.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.closepeerconnections.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.closeremotestream.md +26 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.closeremotetracks.md +19 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.controlsoptionsmanager.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.conversationurl.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.correlationid.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.createmediaconnection.md +26 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.decline.md +28 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.deferjoin.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.destination.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.destinationtype.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.deviceurl.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.dialindevicestatus.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.dialinurl.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.dialoutdevicestatus.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.dialouturl.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.disconnectphoneaudio.md +19 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.endcallinitiatejoinreq.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.endjoinreqresp.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.endlocalsdpgenremotesdprecvdelay.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.endmeetingforall.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.fetchmeetinginfo.md +29 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.fetchmeetinginfotimeoutid.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.floorgrantpending.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.forwardevent.md +29 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.getanalyzermetricsprepayload.md +32 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.getcallinitiatejoinreq.md +17 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.getdevices.md +13 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.getjoinreqresp.md +17 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.getlocalsdpgenremotesdprecvdelay.md +17 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.getmediaconnectiondebugid.md +15 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.getmediastreams.md +15 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.getmembers.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.getsendingmediadelayduration.md +24 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.getsetupdelayduration.md +24 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.getsupporteddevices.md +16 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.gettotaljmt.md +17 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.guest.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.handledatachannelurlchange.md +26 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.handleroapfailure.md +13 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.hasjoinedonce.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.haswebsocketconnected.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.hostid.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.id.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.inmeetingactions.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.invite.md +33 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.isaudioconnected.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.isaudiomuted.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.isaudioself.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.islocalsharelive.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.ismultistream.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.isreactionssupported.md +19 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.isroapinprogress.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.issharing.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.istranscriptionsupported.md +23 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.isvideoconnected.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.isvideomuted.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.isvideoself.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.join.md +28 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.joinedwith.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.joinwithmedia.md +36 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.keepalivetimerid.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.lastvideolayoutinfo.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.leave.md +31 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.lockmeeting.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.locusid.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.locusinfo.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.locusurl.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.md +227 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.mediaconnections.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.mediaid.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.medianegotiatedevent.md +13 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.mediaproperties.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.mediarequestmanagers.md +16 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.meetingfinitestatemachine.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.meetinginfo.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.meetinginfofailurereason.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.meetingjoinurl.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.meetingnumber.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.meetingrequest.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.meetingstate.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.members.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.movefrom.md +28 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.moveto.md +28 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.mute.md +29 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.muteaudio.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.mutevideo.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.namespace.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.networkqualitymonitor.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.networkstatus.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.options.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.orgid.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.owner.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.parsemeetinginfo.md +34 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.partner.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.passwordstatus.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.pauserecording.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.permissiontoken.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.policy.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.processnextqueuedmediaupdate.md +13 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.publishtracks.md +33 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.queuedmediaupdates.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.receiveslotmanager.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.reconnect.md +28 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.reconnectionmanager.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.recording.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.recordingcontroller.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.refreshcaptcha.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.remotemediamanager.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.remove.md +28 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.requiredcaptcha.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.resource.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.resourceid.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.resourceurl.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.resumerecording.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.roap.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.roapseq.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.selfid.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.senddtmf.md +28 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.sendreaction.md +29 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.setdisallowunmute.md +26 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.setendcallinitiatejoinreq.md +17 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.setendjoinreqresp.md +17 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.setendlocalsdpgenremotesdprecvdelay.md +17 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.setendsendingmediadelay.md +24 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.setendsetupdelay.md +24 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.setlocalsharetrack.md +28 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.setlocaltracks.md +28 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.setlocalvideoquality.md +26 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.setmeetingquality.md +31 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.setmercurylistener.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.setmuteall.md +28 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.setmuteonentry.md +26 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.setremotequalitylevel.md +26 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.setsipuri.md +26 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.setstartcallinitiatejoinreq.md +17 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.setstartjoinreqresp.md +17 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.setstartlocalsdpgenremotesdprecvdelay.md +17 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.setstartsendingmediadelay.md +24 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.setstartsetupdelay.md +24 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.setupbreakoutslistener.md +19 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.setupmediaconnectionlisteners.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.setupstatsanalyzereventhandlers.md +13 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.sharescreen.md +32 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.sharestatus.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.sipuri.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.startcallinitiatejoinreq.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.startjoinreqresp.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.startkeepalive.md +13 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.startlocalsdpgenremotesdprecvdelay.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.startrecording.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.startwhiteboardshare.md +29 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.state.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.statsanalyzer.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.stopkeepalive.md +13 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.stopreceivingtranscription.md +19 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.stoprecording.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.stopshare.md +28 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.stopwhiteboardshare.md +28 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.togglereactions.md +28 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.transcription.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.transfer.md +29 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.type.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.unlockmeeting.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.unmuteaudio.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.unmutevideo.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.unpublishtracks.md +26 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.unsetlocalsharetrack.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.unsetlocalvideotrack.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.unsetpeerconnections.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.unsetremotestream.md +26 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.unsetremotetracks.md +19 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.updateaudio.md +34 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.updatellmconnection.md +19 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.updatemedia.md +32 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.updatemediaconnections.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.updateshare.md +35 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.updatevideo.md +34 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.uploadlogs.md +28 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.usephoneaudio.md +28 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.userid.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.verifypassword.md +35 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.video.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.default.wirelessshare.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meeting.md +18 -0
- package/dist/docs/markdown/plugin-meetings.meeting.media_update_type.md +17 -0
- package/dist/docs/markdown/plugin-meetings.meetings._constructor_.md +22 -0
- package/dist/docs/markdown/plugin-meetings.meetings.create.md +30 -0
- package/dist/docs/markdown/plugin-meetings.meetings.fetchuserpreferredwebexsite.md +19 -0
- package/dist/docs/markdown/plugin-meetings.meetings.geohintinfo.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meetings.getallmeetings.md +31 -0
- package/dist/docs/markdown/plugin-meetings.meetings.getgeohint.md +19 -0
- package/dist/docs/markdown/plugin-meetings.meetings.getlogger.md +19 -0
- package/dist/docs/markdown/plugin-meetings.meetings.getmeetingbytype.md +29 -0
- package/dist/docs/markdown/plugin-meetings.meetings.getpersonalmeetingroom.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meetings.getreachability.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meetings.getscheduledmeetings.md +19 -0
- package/dist/docs/markdown/plugin-meetings.meetings.loggerrequest.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meetings.md +57 -0
- package/dist/docs/markdown/plugin-meetings.meetings.media.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meetings.meetingcollection.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meetings.meetinginfo.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meetings.namespace.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meetings.personalmeetingroom.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meetings.preferredwebexsite.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meetings.reachability.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meetings.register.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meetings.registered.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meetings.request.md +11 -0
- package/dist/docs/markdown/plugin-meetings.meetings.setreachability.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meetings.startreachability.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meetings.syncmeetings.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meetings.unregister.md +21 -0
- package/dist/docs/markdown/plugin-meetings.meetings.uploadlogs.md +34 -0
- package/dist/docs/markdown/plugin-meetings.reactions.md +13 -0
- package/dist/docs/markdown/plugin-meetings.reactions.reactions.md +11 -0
- package/dist/docs/markdown/plugin-meetings.reactions.skintones.md +11 -0
- package/dist/docs/markdown/plugin-meetings.remotemedia.getmaxfs.md +26 -0
- package/dist/docs/markdown/plugin-meetings.remotemedia.md +31 -0
- package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia._constructor_.md +22 -0
- package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.csi.md +13 -0
- package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.id.md +11 -0
- package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.md +40 -0
- package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.mediatype.md +13 -0
- package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.memberid.md +13 -0
- package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.setsizehint.md +25 -0
- package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.sourcestate.md +13 -0
- package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.stream.md +13 -0
- package/dist/docs/markdown/plugin-meetings.remotemedia.remotemediaevents.md +14 -0
- package/dist/docs/markdown/plugin-meetings.remotemedia.remotemediaid.md +11 -0
- package/dist/docs/markdown/plugin-meetings.remotemedia.remotevideoresolution.md +11 -0
- package/dist/docs/markdown/plugin-meetings.remotemediagroup.md +12 -0
- package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup._constructor_.md +24 -0
- package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup.getremotemedia.md +26 -0
- package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup.includes.md +27 -0
- package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup.ispinned.md +22 -0
- package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup.md +28 -0
- package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup.pin.md +25 -0
- package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup.unpin.md +24 -0
- package/dist/docs/markdown/plugin-meetings.triggerproxy.md +11 -0
- package/dist/docs/metadata/index.api.json +14144 -0
- package/dist/docs/metadata/index.api.md +2075 -0
- package/dist/docs/metadata/index.d.ts +5594 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +72 -17
- package/dist/index.js.map +1 -1
- package/dist/locus-info/controlsUtils.d.ts +2 -0
- package/dist/locus-info/controlsUtils.js +31 -29
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.d.ts +2 -0
- package/dist/locus-info/embeddedAppsUtils.js +3 -26
- package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
- package/dist/locus-info/fullState.d.ts +2 -0
- package/dist/locus-info/fullState.js +0 -15
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.d.ts +2 -0
- package/dist/locus-info/hostUtils.js +4 -12
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/locus-info/index.d.ts +269 -0
- package/dist/locus-info/index.js +202 -201
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.d.ts +2 -0
- package/dist/locus-info/infoUtils.js +3 -37
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.d.ts +2 -0
- package/dist/locus-info/mediaSharesUtils.js +12 -38
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.d.ts +212 -0
- package/dist/locus-info/parser.js +88 -123
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.d.ts +2 -0
- package/dist/locus-info/selfUtils.js +80 -89
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.d.ts +32 -0
- package/dist/media/index.js +56 -146
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.d.ts +108 -0
- package/dist/media/properties.js +71 -117
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.d.ts +2 -0
- package/dist/media/util.js +2 -9
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.d.ts +233 -0
- package/dist/mediaQualityMetrics/config.js +505 -495
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/effectsState.d.ts +42 -0
- package/dist/meeting/effectsState.js +118 -192
- package/dist/meeting/effectsState.js.map +1 -1
- package/dist/meeting/in-meeting-actions.d.ts +79 -0
- package/dist/meeting/in-meeting-actions.js +31 -14
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.d.ts +1621 -0
- package/dist/meeting/index.js +2175 -2266
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.d.ts +116 -0
- package/dist/meeting/muteState.js +252 -113
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.d.ts +255 -0
- package/dist/meeting/request.js +297 -283
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js +7 -0
- package/dist/meeting/request.type.js.map +1 -0
- package/dist/meeting/state.d.ts +9 -0
- package/dist/meeting/state.js +21 -31
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.d.ts +2 -0
- package/dist/meeting/util.js +63 -217
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.d.ts +20 -0
- package/dist/meeting-info/collection.js +3 -25
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.d.ts +57 -0
- package/dist/meeting-info/index.js +10 -33
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.d.ts +93 -0
- package/dist/meeting-info/meeting-info-v2.js +181 -268
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.d.ts +22 -0
- package/dist/meeting-info/request.js +1 -16
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.d.ts +2 -0
- package/dist/meeting-info/util.js +98 -183
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.d.ts +2 -0
- package/dist/meeting-info/utilv2.js +137 -228
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.d.ts +23 -0
- package/dist/meetings/collection.js +24 -20
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.d.ts +297 -0
- package/dist/meetings/index.js +566 -587
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/request.d.ts +27 -0
- package/dist/meetings/request.js +23 -42
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.d.ts +18 -0
- package/dist/meetings/util.js +151 -155
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.d.ts +145 -0
- package/dist/member/index.js +80 -88
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +15 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.d.ts +2 -0
- package/dist/member/util.js +90 -69
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.d.ts +24 -0
- package/dist/members/collection.js +12 -12
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.d.ts +298 -0
- package/dist/members/index.js +139 -204
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.d.ts +50 -0
- package/dist/members/request.js +41 -55
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +15 -0
- package/dist/members/types.js.map +1 -0
- package/dist/members/util.d.ts +2 -0
- package/dist/members/util.js +76 -46
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/config.d.ts +169 -0
- package/dist/metrics/config.js +4 -14
- package/dist/metrics/config.js.map +1 -1
- package/dist/metrics/constants.d.ts +57 -0
- package/dist/metrics/constants.js +1 -6
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.d.ts +152 -0
- package/dist/metrics/index.js +53 -158
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +116 -52
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +58 -65
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +58 -93
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +55 -74
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +6 -40
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +466 -442
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/networkQualityMonitor/index.d.ts +70 -0
- package/dist/networkQualityMonitor/index.js +32 -59
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/peer-connection-manager/index.d.ts +6 -0
- package/dist/peer-connection-manager/index.js +671 -0
- package/dist/peer-connection-manager/index.js.map +1 -0
- package/dist/peer-connection-manager/util.d.ts +6 -0
- package/dist/peer-connection-manager/util.js +110 -0
- package/dist/peer-connection-manager/util.js.map +1 -0
- package/dist/personal-meeting-room/index.d.ts +47 -0
- package/dist/personal-meeting-room/index.js +10 -45
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.d.ts +14 -0
- package/dist/personal-meeting-room/request.js +2 -33
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.d.ts +2 -0
- package/dist/personal-meeting-room/util.js +0 -13
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/plugin-meetings.d.ts +5399 -0
- package/dist/reachability/index.d.ts +139 -0
- package/dist/reachability/index.js +190 -199
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.d.ts +35 -0
- package/dist/reachability/request.js +14 -23
- package/dist/reachability/request.js.map +1 -1
- package/dist/reactions/constants.js +13 -0
- package/dist/reactions/constants.js.map +1 -0
- package/dist/reactions/reactions.d.ts +4 -0
- package/dist/reactions/reactions.js +109 -0
- package/dist/reactions/reactions.js.map +1 -0
- package/dist/reactions/reactions.type.d.ts +32 -0
- package/dist/reactions/reactions.type.js +36 -0
- package/dist/reactions/reactions.type.js.map +1 -0
- package/dist/reconnection-manager/index.d.ts +112 -0
- package/dist/reconnection-manager/index.js +328 -465
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/enums.d.ts +7 -0
- package/dist/recording-controller/enums.js +17 -0
- package/dist/recording-controller/enums.js.map +1 -0
- package/dist/recording-controller/index.d.ts +193 -0
- package/dist/recording-controller/index.js +343 -0
- package/dist/recording-controller/index.js.map +1 -0
- package/dist/recording-controller/util.d.ts +13 -0
- package/dist/recording-controller/util.js +63 -0
- package/dist/recording-controller/util.js.map +1 -0
- package/dist/roap/collection.d.ts +10 -0
- package/dist/roap/collection.js +63 -0
- package/dist/roap/collection.js.map +1 -0
- package/dist/roap/handler.d.ts +47 -0
- package/dist/roap/handler.js +279 -0
- package/dist/roap/handler.js.map +1 -0
- package/dist/roap/index.d.ts +116 -0
- package/dist/roap/index.js +27 -59
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.d.ts +35 -0
- package/dist/roap/request.js +143 -134
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/state.d.ts +9 -0
- package/dist/roap/state.js +127 -0
- package/dist/roap/state.js.map +1 -0
- package/dist/roap/turnDiscovery.d.ts +67 -0
- package/dist/roap/turnDiscovery.js +86 -101
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/roap/util.d.ts +2 -0
- package/dist/roap/util.js +76 -0
- package/dist/roap/util.js.map +1 -0
- package/dist/statsAnalyzer/global.d.ts +126 -0
- package/dist/statsAnalyzer/global.js +1 -95
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.d.ts +190 -0
- package/dist/statsAnalyzer/index.js +356 -457
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.d.ts +22 -0
- package/dist/statsAnalyzer/mqaUtil.js +144 -94
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.d.ts +64 -0
- package/dist/transcription/index.js +13 -45
- package/dist/transcription/index.js.map +1 -1
- package/dist/types/breakouts/breakout.d.ts +8 -0
- package/dist/types/breakouts/collection.d.ts +5 -0
- package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/types/breakouts/index.d.ts +5 -0
- package/dist/types/breakouts/request.d.ts +22 -0
- package/dist/types/breakouts/utils.d.ts +8 -0
- package/dist/types/common/browser-detection.d.ts +9 -0
- package/dist/types/common/collection.d.ts +48 -0
- package/dist/types/common/config.d.ts +2 -0
- package/dist/types/common/errors/captcha-error.d.ts +15 -0
- package/dist/types/common/errors/intent-to-join.d.ts +16 -0
- package/dist/types/common/errors/join-meeting.d.ts +17 -0
- package/dist/types/common/errors/media.d.ts +15 -0
- package/dist/types/common/errors/parameter.d.ts +15 -0
- package/dist/types/common/errors/password-error.d.ts +15 -0
- package/dist/types/common/errors/permission.d.ts +14 -0
- package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
- package/dist/types/common/errors/reconnection.d.ts +15 -0
- package/dist/types/common/errors/stats.d.ts +15 -0
- package/dist/types/common/errors/webex-errors.d.ts +69 -0
- package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
- package/dist/types/common/events/events-scope.d.ts +17 -0
- package/dist/types/common/events/events.d.ts +12 -0
- package/dist/types/common/events/trigger-proxy.d.ts +2 -0
- package/dist/types/common/events/util.d.ts +2 -0
- package/dist/types/common/logs/logger-config.d.ts +2 -0
- package/dist/types/common/logs/logger-proxy.d.ts +2 -0
- package/dist/types/common/logs/request.d.ts +34 -0
- package/dist/types/common/queue.d.ts +32 -0
- package/dist/types/config.d.ts +77 -0
- package/dist/types/constants.d.ts +944 -0
- package/dist/types/controls-options-manager/constants.d.ts +4 -0
- package/dist/types/controls-options-manager/enums.d.ts +6 -0
- package/dist/types/controls-options-manager/index.d.ts +128 -0
- package/dist/types/controls-options-manager/util.d.ts +9 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/locus-info/controlsUtils.d.ts +2 -0
- package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
- package/dist/types/locus-info/fullState.d.ts +2 -0
- package/dist/types/locus-info/hostUtils.d.ts +2 -0
- package/dist/types/locus-info/index.d.ts +276 -0
- package/dist/types/locus-info/infoUtils.d.ts +2 -0
- package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
- package/dist/types/locus-info/parser.d.ts +212 -0
- package/dist/types/locus-info/selfUtils.d.ts +2 -0
- package/dist/types/media/index.d.ts +32 -0
- package/dist/types/media/properties.d.ts +108 -0
- package/dist/types/media/util.d.ts +2 -0
- package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
- package/dist/types/meeting/effectsState.d.ts +42 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +101 -0
- package/dist/types/meeting/index.d.ts +1723 -0
- package/dist/types/meeting/muteState.d.ts +185 -0
- package/dist/types/meeting/request.d.ts +271 -0
- package/dist/types/meeting/request.type.d.ts +11 -0
- package/dist/types/meeting/state.d.ts +9 -0
- package/dist/types/meeting/util.d.ts +2 -0
- package/dist/types/meeting-info/collection.d.ts +20 -0
- package/dist/types/meeting-info/index.d.ts +57 -0
- package/dist/types/meeting-info/meeting-info-v2.d.ts +93 -0
- package/dist/types/meeting-info/request.d.ts +22 -0
- package/dist/types/meeting-info/util.d.ts +2 -0
- package/dist/types/meeting-info/utilv2.d.ts +2 -0
- package/dist/types/meetings/collection.d.ts +31 -0
- package/dist/types/meetings/index.d.ts +316 -0
- package/dist/types/meetings/request.d.ts +27 -0
- package/dist/types/meetings/util.d.ts +18 -0
- package/dist/types/member/index.d.ts +156 -0
- package/dist/types/member/types.d.ts +21 -0
- package/dist/types/member/util.d.ts +2 -0
- package/dist/types/members/collection.d.ts +29 -0
- package/dist/types/members/index.d.ts +343 -0
- package/dist/types/members/request.d.ts +58 -0
- package/dist/types/members/types.d.ts +24 -0
- package/dist/types/members/util.d.ts +2 -0
- package/dist/types/metrics/config.d.ts +171 -0
- package/dist/types/metrics/constants.d.ts +53 -0
- package/dist/types/metrics/index.d.ts +152 -0
- package/dist/types/multistream/mediaRequestManager.d.ts +68 -0
- package/dist/types/multistream/receiveSlot.d.ts +68 -0
- package/dist/types/multistream/receiveSlotManager.d.ts +49 -0
- package/dist/types/multistream/remoteMedia.d.ts +72 -0
- package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
- package/dist/types/multistream/remoteMediaManager.d.ts +263 -0
- package/dist/types/networkQualityMonitor/index.d.ts +70 -0
- package/dist/types/personal-meeting-room/index.d.ts +47 -0
- package/dist/types/personal-meeting-room/request.d.ts +14 -0
- package/dist/types/personal-meeting-room/util.d.ts +2 -0
- package/dist/types/reachability/index.d.ts +152 -0
- package/dist/types/reachability/request.d.ts +37 -0
- package/dist/types/reactions/constants.d.ts +3 -0
- package/dist/types/reactions/reactions.d.ts +4 -0
- package/dist/types/reactions/reactions.type.d.ts +52 -0
- package/dist/types/reconnection-manager/index.d.ts +126 -0
- package/dist/types/recording-controller/enums.d.ts +7 -0
- package/dist/types/recording-controller/index.d.ts +193 -0
- package/dist/types/recording-controller/util.d.ts +13 -0
- package/dist/types/roap/index.d.ts +77 -0
- package/dist/types/roap/request.d.ts +38 -0
- package/dist/types/roap/turnDiscovery.d.ts +74 -0
- package/dist/types/statsAnalyzer/global.d.ts +36 -0
- package/dist/types/statsAnalyzer/index.d.ts +195 -0
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
- package/dist/types/transcription/index.d.ts +64 -0
- package/dist/types/tsdoc-metadata.json +11 -0
- package/internal-README.md +7 -6
- package/package.json +28 -20
- package/src/breakouts/README.md +219 -0
- package/src/breakouts/breakout.ts +153 -0
- package/src/breakouts/collection.ts +19 -0
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/index.ts +745 -0
- package/src/breakouts/request.ts +55 -0
- package/src/breakouts/utils.ts +44 -0
- package/src/common/browser-detection.ts +9 -6
- package/src/common/collection.ts +3 -1
- package/src/common/errors/captcha-error.ts +6 -6
- package/src/common/errors/intent-to-join.ts +6 -6
- package/src/common/errors/join-meeting.ts +12 -8
- package/src/common/errors/media.ts +6 -6
- package/src/common/errors/parameter.ts +9 -6
- package/src/common/errors/password-error.ts +6 -6
- package/src/common/errors/permission.ts +5 -5
- package/src/common/errors/reconnection.ts +6 -6
- package/src/common/errors/stats.ts +6 -6
- package/src/common/errors/webex-errors.ts +7 -5
- package/src/common/errors/webex-meetings-error.ts +1 -1
- package/src/common/events/events-scope.ts +5 -1
- package/src/common/events/events.ts +5 -1
- package/src/common/events/trigger-proxy.ts +8 -3
- package/src/common/events/util.ts +1 -2
- package/src/common/logs/logger-proxy.ts +21 -10
- package/src/common/logs/request.ts +11 -8
- package/src/config.ts +16 -12
- package/src/constants.ts +92 -6
- package/src/controls-options-manager/constants.ts +5 -0
- package/src/controls-options-manager/enums.ts +7 -0
- package/src/controls-options-manager/index.ts +240 -0
- package/src/controls-options-manager/util.ts +30 -0
- package/src/index.ts +33 -0
- package/src/locus-info/controlsUtils.ts +63 -24
- package/src/locus-info/fullState.ts +15 -11
- package/src/locus-info/hostUtils.ts +4 -3
- package/src/locus-info/index.ts +148 -43
- package/src/locus-info/infoUtils.ts +16 -4
- package/src/locus-info/mediaSharesUtils.ts +4 -4
- package/src/locus-info/parser.ts +46 -68
- package/src/locus-info/selfUtils.ts +174 -56
- package/src/media/index.ts +131 -179
- package/src/media/properties.ts +43 -36
- package/src/media/util.ts +1 -1
- package/src/mediaQualityMetrics/config.ts +380 -378
- package/src/meeting/in-meeting-actions.ts +67 -3
- package/src/meeting/index.ts +2395 -1523
- package/src/meeting/muteState.ts +271 -68
- package/src/meeting/request.ts +228 -132
- package/src/meeting/request.type.ts +13 -0
- package/src/meeting/state.ts +45 -30
- package/src/meeting/util.ts +127 -111
- package/src/meeting-info/collection.ts +2 -1
- package/src/meeting-info/index.ts +32 -30
- package/src/meeting-info/meeting-info-v2.ts +108 -108
- package/src/meeting-info/request.ts +9 -3
- package/src/meeting-info/util.ts +54 -46
- package/src/meeting-info/utilv2.ts +59 -53
- package/src/meetings/collection.ts +21 -1
- package/src/meetings/index.ts +673 -466
- package/src/meetings/request.ts +29 -25
- package/src/meetings/util.ts +94 -30
- package/src/member/index.ts +86 -49
- package/src/member/types.ts +24 -0
- package/src/member/util.ts +92 -13
- package/src/members/collection.ts +8 -1
- package/src/members/index.ts +246 -129
- package/src/members/request.ts +67 -14
- package/src/members/types.ts +28 -0
- package/src/members/util.ts +103 -50
- package/src/metrics/config.ts +255 -90
- package/src/metrics/constants.ts +0 -6
- package/src/metrics/index.ts +90 -93
- package/src/multistream/mediaRequestManager.ts +144 -40
- package/src/multistream/receiveSlot.ts +69 -26
- package/src/multistream/receiveSlotManager.ts +50 -38
- package/src/multistream/remoteMedia.ts +30 -4
- package/src/multistream/remoteMediaGroup.ts +4 -3
- package/src/multistream/remoteMediaManager.ts +230 -66
- package/src/networkQualityMonitor/index.ts +24 -27
- package/src/personal-meeting-room/index.ts +12 -16
- package/src/personal-meeting-room/request.ts +10 -3
- package/src/personal-meeting-room/util.ts +3 -3
- package/src/reachability/index.ts +131 -79
- package/src/reachability/request.ts +43 -34
- package/src/reactions/constants.ts +4 -0
- package/src/reactions/reactions.ts +104 -0
- package/src/reactions/reactions.type.ts +62 -0
- package/src/reconnection-manager/index.ts +190 -111
- package/src/recording-controller/enums.ts +8 -0
- package/src/recording-controller/index.ts +315 -0
- package/src/recording-controller/util.ts +58 -0
- package/src/roap/index.ts +50 -42
- package/src/roap/request.ts +86 -53
- package/src/roap/turnDiscovery.ts +69 -38
- package/src/statsAnalyzer/global.ts +8 -104
- package/src/statsAnalyzer/index.ts +593 -376
- package/src/statsAnalyzer/mqaUtil.ts +203 -90
- package/src/transcription/index.ts +34 -32
- package/test/integration/spec/converged-space-meetings.js +176 -0
- package/test/integration/spec/journey.js +665 -464
- package/test/integration/spec/space-meeting.js +319 -204
- package/test/integration/spec/transcription.js +7 -8
- package/test/unit/spec/breakouts/breakout.ts +178 -0
- package/test/unit/spec/breakouts/collection.ts +15 -0
- package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
- package/test/unit/spec/breakouts/index.ts +1252 -0
- package/test/unit/spec/breakouts/request.ts +104 -0
- package/test/unit/spec/breakouts/utils.js +54 -0
- package/test/unit/spec/common/browser-detection.js +9 -28
- package/test/unit/spec/controls-options-manager/index.js +204 -0
- package/test/unit/spec/controls-options-manager/util.js +86 -0
- package/test/unit/spec/fixture/locus.js +92 -90
- package/test/unit/spec/locus-info/controlsUtils.js +133 -34
- package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
- package/test/unit/spec/locus-info/index.js +303 -2
- package/test/unit/spec/locus-info/infoUtils.js +41 -32
- package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
- package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
- package/test/unit/spec/locus-info/parser.js +3 -9
- package/test/unit/spec/locus-info/selfConstant.js +101 -103
- package/test/unit/spec/locus-info/selfUtils.js +165 -12
- package/test/unit/spec/media/index.ts +72 -8
- package/test/unit/spec/media/properties.ts +9 -9
- package/test/unit/spec/meeting/in-meeting-actions.ts +29 -2
- package/test/unit/spec/meeting/index.js +2479 -794
- package/test/unit/spec/meeting/muteState.js +164 -70
- package/test/unit/spec/meeting/request.js +141 -43
- package/test/unit/spec/meeting/utils.js +135 -164
- package/test/unit/spec/meeting-info/meetinginfov2.js +100 -73
- package/test/unit/spec/meeting-info/request.js +7 -9
- package/test/unit/spec/meeting-info/util.js +11 -12
- package/test/unit/spec/meeting-info/utilv2.js +110 -74
- package/test/unit/spec/meetings/collection.js +15 -1
- package/test/unit/spec/meetings/index.js +622 -263
- package/test/unit/spec/meetings/utils.js +65 -14
- package/test/unit/spec/member/index.js +24 -1
- package/test/unit/spec/member/util.js +359 -32
- package/test/unit/spec/members/index.js +294 -54
- package/test/unit/spec/members/request.js +50 -20
- package/test/unit/spec/members/utils.js +147 -4
- package/test/unit/spec/metrics/index.js +16 -21
- package/test/unit/spec/multistream/mediaRequestManager.ts +369 -68
- package/test/unit/spec/multistream/receiveSlot.ts +76 -17
- package/test/unit/spec/multistream/receiveSlotManager.ts +60 -38
- package/test/unit/spec/multistream/remoteMedia.ts +32 -2
- package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
- package/test/unit/spec/multistream/remoteMediaManager.ts +549 -65
- package/test/unit/spec/networkQualityMonitor/index.js +24 -18
- package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
- package/test/unit/spec/reachability/index.ts +176 -27
- package/test/unit/spec/reachability/request.js +66 -0
- package/test/unit/spec/reconnection-manager/index.js +58 -31
- package/test/unit/spec/recording-controller/index.js +231 -0
- package/test/unit/spec/recording-controller/util.js +102 -0
- package/test/unit/spec/roap/index.ts +12 -8
- package/test/unit/spec/roap/request.ts +217 -0
- package/test/unit/spec/roap/turnDiscovery.ts +72 -49
- package/test/unit/spec/stats-analyzer/index.js +108 -57
- package/test/utils/cmr.js +44 -42
- package/test/utils/constants.js +9 -0
- package/test/utils/testUtils.js +98 -77
- package/test/utils/webex-config.js +22 -18
- package/test/utils/webex-test-users.js +57 -50
- package/tsconfig.json +6 -0
- package/dist/media/internal-media-core-wrapper.js +0 -22
- package/dist/media/internal-media-core-wrapper.js.map +0 -1
- package/dist/multistream/multistreamMedia.js +0 -116
- package/dist/multistream/multistreamMedia.js.map +0 -1
- package/src/index.js +0 -15
- package/src/media/internal-media-core-wrapper.ts +0 -9
- package/src/meeting/effectsState.ts +0 -211
- package/src/multistream/multistreamMedia.ts +0 -92
- package/test/unit/spec/meeting/effectsState.js +0 -291
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MeetingRequest","attrs","options","changeVideoLayoutDebounced","changeVideoLayout","leading","trailing","asResourceOccupant","inviteeAddress","meetingNumber","permissionToken","deviceUrl","locusUrl","resourceId","correlationId","ensureConversation","moderator","pin","moveToResource","roapMessage","preferTranscoding","LoggerProxy","logger","info","url","body","device","deviceType","config","meetings","usingResource","moveMediaToResource","respOnlySdp","allowMultiDevice","supportsNativeLobby","clientMediaPreferences","webex","clientRegion","countryCode","regionCode","undefined","PARTICIPANT","internal","services","waitForCatalog","get","LOCI","CALL","invitee","address","error","concat","ALTERNATE_REDIRECT_TRUE","callPreferences","requestedMedia","_SLIDES_","localMedias","request","method","HTTP_VERBS","POST","uri","captchaRefreshUrl","captchaId","catch","err","dialInUrl","clientUrl","PROVISIONAL","provisionalType","PROVISIONAL_TYPE_DIAL_IN","dialOutUrl","phoneNumber","PROVISIONAL_TYPE_DIAL_OUT","dialoutAddress","desync","syncUrl","split","LOCUS","SYNCDEBUG","GET","reject","phoneUrl","selfId","LEAVE","PUT","ALERT","CONTROLS","record","recording","paused","PATCH","lock","locked","DECLINE","reason","MEDIA","floorReq","disposition","FLOOR_ACTION","GRANTED","beneficiary","personUrl","devices","requester","floor","resourceUrl","resourceToken","tones","SEND_DTMF_ENDPOINT","dtmf","uuid","v4","layoutType","main","content","width","height","Error","renderInfoMain","renderInfoContent","layoutParams","renderInfo","layout","type","END","keepAliveUrl","StatelessWebexPlugin"],"sources":["request.ts"],"sourcesContent":["import uuid from 'uuid';\nimport {debounce} from 'lodash';\n// @ts-ignore\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n// @ts-ignore\nimport {deviceType} from '@webex/common';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {\n ALERT,\n ALTERNATE_REDIRECT_TRUE,\n CALL,\n CONTROLS,\n DECLINE,\n END,\n FLOOR_ACTION,\n HTTP_VERBS,\n LEAVE,\n LOCI,\n LOCUS,\n MEDIA,\n PARTICIPANT,\n PROVISIONAL_TYPE_DIAL_IN,\n PROVISIONAL_TYPE_DIAL_OUT,\n SEND_DTMF_ENDPOINT,\n _SLIDES_\n} from '../constants';\n\n/**\n * @class MeetingRequest\n */\nexport default class MeetingRequest extends StatelessWebexPlugin {\n changeVideoLayoutDebounced: any;\n\n constructor(attrs: any, options: any) {\n super(attrs, options);\n this.changeVideoLayoutDebounced = debounce(this.changeVideoLayout, 2000, {leading: true, trailing: true});\n }\n\n /**\n * Make a network request to join a meeting\n * @param {Object} options\n * @param {String} options.sipUri\n * @param {String} options.deviceUrl\n * @param {String} options.locusUrl\n * @param {String} options.resourceId,\n * @param {String} options.correlationId\n * @param {boolean} options.ensureConversation\n * @param {boolean} options.moderator\n * @param {boolean} options.pin\n * @param {boolean} options.moveToResource\n * @param {Object} options.roapMessage\n * @returns {Promise}\n */\n async joinMeeting(options: {\n sipUri: string;\n deviceUrl: string;\n locusUrl: string;\n resourceId: string;\n correlationId: string;\n ensureConversation: boolean;\n moderator: boolean;\n pin: boolean;\n moveToResource: boolean;\n roapMessage: any;\n asResourceOccupant: any;\n inviteeAddress: any;\n meetingNumber: any;\n permissionToken: any;\n preferTranscoding: any;\n }) {\n const {\n asResourceOccupant,\n inviteeAddress,\n meetingNumber,\n permissionToken,\n deviceUrl,\n locusUrl,\n resourceId,\n correlationId,\n ensureConversation,\n moderator,\n pin,\n moveToResource,\n roapMessage,\n preferTranscoding\n } = options;\n\n LoggerProxy.logger.info(\n 'Meeting:request#joinMeeting --> Joining a meeting',\n correlationId\n );\n\n let url = '';\n\n const body: any = {\n asResourceOccupant,\n device: {\n url: deviceUrl,\n // @ts-ignore - config comes from registerPlugin\n deviceType: this.config.meetings.deviceType\n },\n usingResource: resourceId || null,\n moveMediaToResource: resourceId && moveToResource || false,\n correlationId,\n respOnlySdp: true,\n allowMultiDevice: true,\n ensureConversation: ensureConversation || false,\n supportsNativeLobby: 1,\n clientMediaPreferences: {\n preferTranscoding: preferTranscoding ?? true\n }\n };\n\n // @ts-ignore\n if (this.webex.meetings.clientRegion) {\n // @ts-ignore\n body.device.countryCode = this.webex.meetings.clientRegion.countryCode;\n // @ts-ignore\n body.device.regionCode = this.webex.meetings.clientRegion.regionCode;\n }\n\n if (moderator !== undefined) {\n body.moderator = moderator;\n }\n\n if (permissionToken) {\n body.permissionToken = permissionToken;\n }\n\n if (pin !== undefined) {\n body.pin = pin;\n }\n\n if (locusUrl) {\n url = `${locusUrl}/${PARTICIPANT}`;\n }\n else if (inviteeAddress || meetingNumber) {\n try {\n // @ts-ignore\n await this.webex.internal.services.waitForCatalog('postauth');\n // @ts-ignore\n url = `${this.webex.internal.services.get('locus')}/${LOCI}/${CALL}`;\n body.invitee = {\n address: inviteeAddress || `wbxmn:${meetingNumber}`\n };\n }\n catch (e) {\n LoggerProxy.logger.error(`Meeting:request#joinMeeting Error Joining ${inviteeAddress || meetingNumber} --> ${e}`);\n throw (e);\n }\n }\n\n\n // TODO: -- this will be resolved in SDK request\n url = url.concat(`?${ALTERNATE_REDIRECT_TRUE}`);\n\n if (resourceId === inviteeAddress) {\n body.callPreferences = {\n requestedMedia: [_SLIDES_]\n };\n }\n\n if (roapMessage) {\n body.localMedias = roapMessage.localMedias;\n }\n\n /// @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri: url,\n body\n });\n }\n\n /**\n * Send a request to refresh the captcha\n * @param {Object} options\n * @param {String} options.captchaRefreshUrl\n * @param {String} options.captchaId\n * @returns {Promise}\n * @private\n */\n private refreshCaptcha({ captchaRefreshUrl, captchaId }: { captchaRefreshUrl: string; captchaId: string }) {\n const body = {\n captchaId\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri: captchaRefreshUrl,\n body\n }).catch((err) => {\n LoggerProxy.logger.error(`Meeting:request#refreshCaptcha --> Error: ${err}`);\n\n throw err;\n });\n }\n\n /**\n * Make a network request to add a dial in device\n * @param {Object} options\n * @param {String} options.correlationId\n * @param {String} options.locusUrl url for the meeting\n * @param {String} options.dialInUrl identifier for the to-be provisioned device\n * @param {String} options.clientUrl identifier for the web device\n * @returns {Promise}\n * @private\n */\n private dialIn({\n locusUrl,\n dialInUrl,\n clientUrl,\n correlationId,\n }: {\n correlationId: string;\n locusUrl: string;\n dialInUrl: string;\n clientUrl: string;\n }) {\n LoggerProxy.logger.info(\n 'Meeting:request#dialIn --> Provisioning a dial in device',\n correlationId\n );\n const uri = `${locusUrl}/${PARTICIPANT}`;\n\n const body = {\n device: {\n deviceType: deviceType.PROVISIONAL,\n provisionalType: PROVISIONAL_TYPE_DIAL_IN,\n url: dialInUrl,\n clientUrl\n },\n correlationId\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri,\n body\n }).catch((err) => {\n LoggerProxy.logger.error(`Meeting:request#dialIn --> Error provisioning a dial in device, error ${err}`);\n\n throw err;\n });\n }\n\n /**\n * Make a network request to add a dial out device\n * @param {Object} options\n * @param {String} options.correlationId\n * @param {String} options.locusUrl url for the meeting\n * @param {String} options.dialOutUrl identifier for the to-be provisioned device\n * @param {String} options.phoneNumber phone number to dial out to\n * @param {String} options.clientUrl identifier for the web device\n * @returns {Promise}\n * @private\n */\n private dialOut({\n locusUrl,\n dialOutUrl,\n phoneNumber,\n clientUrl,\n correlationId,\n }: {\n correlationId: string;\n locusUrl: string;\n dialOutUrl: string;\n phoneNumber: string;\n clientUrl: string;\n }) {\n LoggerProxy.logger.info(\n 'Meeting:request#dialOut --> Provisioning a dial out device',\n correlationId\n );\n const uri = `${locusUrl}/${PARTICIPANT}`;\n\n const body = {\n device: {\n deviceType: deviceType.PROVISIONAL,\n provisionalType: PROVISIONAL_TYPE_DIAL_OUT,\n url: dialOutUrl,\n dialoutAddress: phoneNumber,\n clientUrl\n },\n correlationId\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri,\n body\n }).catch((err) => {\n LoggerProxy.logger.error(`Meeting:request#dialOut --> Error provisioning a dial out device, error ${err}`);\n\n throw err;\n });\n }\n\n /**\n * Syns the missed delta event\n * @param {Object} options\n * @param {boolean} options.desync flag to get partial or whole locus object\n * @param {String} options.syncUrl sync url to get ht elatest locus delta\n * @returns {Promise}\n */\n syncMeeting(options: { desync: boolean; syncUrl: string }) {\n /* eslint-disable no-else-return */\n const {desync} = options;\n let {syncUrl} = options;\n\n /* istanbul ignore else */\n if (desync) {\n // check for existing URL parameters\n syncUrl = syncUrl.concat(syncUrl.split('?')[1] ? '&' : '?').concat(`${LOCUS.SYNCDEBUG}=${desync}`);\n }\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.GET,\n uri: syncUrl\n }) // TODO: Handle if delta sync failed . Get the full locus object\n .catch((err) => {\n LoggerProxy.logger.error(`Meeting:request#syncMeeting --> Error syncing meeting, error ${err}`);\n\n return err;\n });\n }\n\n /**\n * Request to get the complete locus object\n * @param {Object} options\n * @param {boolean} options.desync flag to get partial or whole locus object\n * @param {String} options.locusUrl sync url to get ht elatest locus delta\n * @returns {Promise}\n */\n getFullLocus(options: { desync: boolean; locusUrl: string }) {\n let {locusUrl} = options;\n const {desync} = options;\n\n if (locusUrl) {\n if (desync) {\n locusUrl += `?${LOCUS.SYNCDEBUG}=${desync}`;\n }\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.GET,\n uri: locusUrl\n }).catch((err) => {\n LoggerProxy.logger.error(`Meeting:request#getFullLocus --> Error getting full locus, error ${err}`);\n\n return err;\n });\n }\n\n return Promise.reject();\n }\n\n /**\n * Make a network request to make a provisioned phone leave the meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.phoneUrl\n * @param {String} options.correlationId\n * @param {String} options.selfId\n * @returns {Promise}\n * @private\n */\n private disconnectPhoneAudio({\n locusUrl,\n phoneUrl,\n correlationId,\n selfId,\n }: {\n locusUrl: string;\n phoneUrl: string;\n correlationId: string;\n selfId: string;\n }) {\n LoggerProxy.logger.info(\n `Meeting:request#disconnectPhoneAudio --> request phone ${phoneUrl} to leave`,\n correlationId\n );\n const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;\n\n const body = {\n device: {\n deviceType: deviceType.PROVISIONAL,\n url: phoneUrl\n },\n correlationId\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body\n }).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#disconnectPhoneAudio --> Error when requesting phone ${phoneUrl} to leave, error ${err}`\n );\n\n throw err;\n });\n }\n\n /**\n * Make a network request to leave a meeting\n * @param {Object} options\n * @param {Url} options.locusUrl\n * @param {String} options.selfId\n * @param {Url} options.deviceUrl\n * @param {String} options.resourceId,\n * @param {String} options.correlationId\n * @returns {Promise}\n */\n leaveMeeting({\n locusUrl,\n selfId,\n deviceUrl: url,\n resourceId,\n correlationId,\n }: {\n locusUrl: string;\n selfId: string;\n deviceUrl: string;\n resourceId: string;\n correlationId: string;\n }) {\n LoggerProxy.logger.info(\n 'Meeting:request#leaveMeeting --> Leaving a meeting',\n correlationId\n );\n\n const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url\n },\n usingResource: resourceId || null,\n correlationId\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body\n });\n }\n\n /**\n * Make a network request to acknowledge a meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.correlationId\n * @returns {Promise}\n */\n acknowledgeMeeting(options: { locusUrl: string; deviceUrl: string; correlationId: string }) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${ALERT}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl\n },\n correlationId: options.correlationId\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body\n });\n }\n\n /**\n * Make a network request to acknowledge a meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.id\n * @returns {Promise}\n */\n recordMeeting(options: { locusUrl: string; deviceUrl: string; id: string, recording: any, paused: any }) {\n const uri = `${options.locusUrl}/${CONTROLS}`;\n const body = {\n record: {\n recording: options.recording,\n paused: options.paused\n }\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PATCH,\n uri,\n body\n });\n }\n\n lockMeeting(options) {\n const uri = `${options.locusUrl}/${CONTROLS}`;\n const body = {\n lock: {\n locked: options.lock\n }\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PATCH,\n uri,\n body\n });\n }\n\n /**\n * Make a network request to decline a meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.reason\n * @returns {Promise}\n */\n declineMeeting(options: { locusUrl: string; deviceUrl: string; reason: string }) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${DECLINE}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl\n },\n ...(options.reason && {reason: options.reason}),\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body\n });\n }\n\n /**\n * Toggle remote audio and/or video\n * @param {Object} options options for toggling\n * @param {String} options.selfId Locus self id??\n * @param {String} options.locusUrl Locus url\n * @param {String} options.deviceUrl Url of a device\n * @param {String} options.resourceId Populated if you are paired to a device\n * @param {String} options.localMedias local sdps\n * @param {Boolean} options.preferTranscoding false for multistream (Homer), true for transcoded media (Edonus)\n * @returns {Promise}\n */\n remoteAudioVideoToggle(options: {\n selfId: string;\n locusUrl: string;\n deviceUrl: string;\n resourceId: string;\n localMedias: string;\n } | any) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${options.selfId}/${MEDIA}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl\n },\n usingResource: options.resourceId || null,\n correlationId: options.correlationId,\n respOnlySdp: true,\n localMedias: options.localMedias,\n clientMediaPreferences: {\n preferTranscoding: options.preferTranscoding ?? true\n }\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body\n });\n }\n\n /**\n * change the content floor grant\n * @param {Object} options options for floor grant\n * @param {String} options.disposition floor action (granted/released)\n * @param {String} options.personUrl personUrl who is requesting floor\n * @param {String} options.deviceUrl Url of a device\n * @param {String} options.resourceId Populated if you are paired to a device\n * @param {String} options.uri floor grant uri\n * @returns {Promise}\n */\n changeMeetingFloor(options: {\n disposition: string;\n personUrl: string;\n deviceUrl: string;\n resourceId: string;\n uri: string;\n } | any) {\n let floorReq: any = {disposition: options.disposition};\n\n /* istanbul ignore else */\n if (options.disposition === FLOOR_ACTION.GRANTED) {\n floorReq = {\n beneficiary: {\n url: options.personUrl,\n devices: [\n {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl\n }\n ]\n },\n disposition: options.disposition,\n requester: {\n url: options.personUrl\n }\n };\n }\n\n const body: any = {\n floor: floorReq,\n resourceUrl: options.resourceUrl\n };\n\n if (options?.resourceToken) {\n body.resourceToken = options?.resourceToken;\n }\n\n // @ts-ignore\n return this.request({\n uri: options.uri,\n method: HTTP_VERBS.PUT,\n body\n });\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.deviceUrl\n * @param {String} options.tones a string of one or more DTMF tones to send\n * @returns {Promise}\n */\n sendDTMF({ locusUrl, deviceUrl, tones }: { locusUrl: string; deviceUrl: string; tones: string }) {\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri: `${locusUrl}/${SEND_DTMF_ENDPOINT}`,\n body: {\n deviceUrl,\n dtmf: {\n correlationId: uuid.v4(),\n tones\n }\n }\n });\n }\n\n /**\n * Sends a request to the controls endpoint to set the video layout\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.layoutType a layout type that should be available in meeting constants {@link #layout_types}\n * @param {Object} options.main preferred dimensions for the remote main video stream\n * @param {Number} options.main.width preferred width of main video stream\n * @param {Number} options.main.height preferred height of main video stream\n * @param {Object} options.content preferred dimensions for the remote content share stream\n * @param {Number} options.content.width preferred width of content share stream\n * @param {Number} options.content.height preferred height of content share stream\n * @returns {Promise}\n */\n changeVideoLayout({\n locusUrl,\n deviceUrl,\n layoutType,\n main,\n content,\n }: {\n locusUrl: string;\n deviceUrl: string;\n layoutType: string;\n main: {\n width: number;\n height: number;\n };\n content: {\n width: number;\n height: number;\n };\n }) {\n // send main/content renderInfo only if both width and height are specified\n if (main && (!main.width || !main.height)) {\n return Promise.reject(new Error(`Both width and height must be specified. One of them is missing for main: ${JSON.stringify(main)}`));\n }\n\n if (content && (!content.width || !content.height)) {\n return Promise.reject(new Error(`Both width and height must be specified. One of them is missing for content: ${JSON.stringify(content)}`));\n }\n\n const renderInfoMain = (main) ? {width: main.width, height: main.height} : undefined;\n const renderInfoContent = (content) ? {width: content.width, height: content.height} : undefined;\n\n const layoutParams = (renderInfoMain || renderInfoContent) ?\n {\n renderInfo:\n {\n main: renderInfoMain,\n content: renderInfoContent\n }\n } : undefined;\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${locusUrl}/${CONTROLS}`,\n body: {\n layout: {\n deviceUrl,\n type: layoutType,\n layoutParams\n }\n }\n });\n }\n\n /**\n * Make a network request to end meeting for all\n * @param {Object} options\n * @param {Url} options.locusUrl\n * @returns {Promise}\n */\n endMeetingForAll({ locusUrl }: { locusUrl: string }) {\n const uri = `${locusUrl}/${END}`;\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri\n });\n }\n\n /**\n * Send a locus keepAlive (used in lobby)\n * @param {Object} options\n * @param {Url} options.keepAliveUrl\n * @returns {Promise}\n */\n keepAlive({ keepAliveUrl }: { keepAliveUrl: string }) {\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.GET,\n uri: keepAliveUrl\n });\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["MeetingRequest","attrs","options","webex","boundedStorage","get","REACHABILITY","namespace","localStorageJoinCookie","catch","joinCookieRaw","joinCookie","JSON","parse","LoggerProxy","logger","error","changeVideoLayoutDebounced","changeVideoLayout","leading","trailing","asResourceOccupant","inviteeAddress","meetingNumber","permissionToken","deviceUrl","locusUrl","resourceId","correlationId","ensureConversation","moderator","pin","moveToResource","roapMessage","preferTranscoding","breakoutsSupported","info","url","getJoinCookie","body","device","deviceType","config","meetings","usingResource","moveMediaToResource","respOnlySdp","allowMultiDevice","supportsNativeLobby","clientMediaPreferences","deviceCapabilities","BREAKOUTS","BREAKOUTS_SUPPORTED","clientRegion","countryCode","regionCode","undefined","PARTICIPANT","internal","services","waitForCatalog","LOCI","CALL","invitee","address","concat","ALTERNATE_REDIRECT_TRUE","callPreferences","requestedMedia","_SLIDES_","localMedias","request","method","HTTP_VERBS","POST","uri","captchaRefreshUrl","captchaId","err","dialInUrl","clientUrl","PROVISIONAL","provisionalType","PROVISIONAL_TYPE_DIAL_IN","dialOutUrl","phoneNumber","PROVISIONAL_TYPE_DIAL_OUT","dialoutAddress","desync","syncUrl","split","LOCUS","SYNCDEBUG","GET","reject","phoneUrl","selfId","LEAVE","PUT","ALERT","CONTROLS","lock","locked","PATCH","DECLINE","reason","MEDIA","floorReq","disposition","FLOOR_ACTION","GRANTED","beneficiary","personUrl","devices","requester","floor","resourceUrl","resourceToken","tones","SEND_DTMF_ENDPOINT","dtmf","uuid","v4","layoutType","main","content","width","height","Error","renderInfoMain","renderInfoContent","layoutParams","renderInfo","layout","type","END","keepAliveUrl","reactionChannelUrl","reaction","participantId","sender","enable","requestingParticipantId","reactions","enabled","StatelessWebexPlugin"],"sources":["request.ts"],"sourcesContent":["import uuid from 'uuid';\nimport {debounce} from 'lodash';\n// @ts-ignore\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n// @ts-ignore\nimport {deviceType} from '@webex/common';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {\n ALERT,\n ALTERNATE_REDIRECT_TRUE,\n BREAKOUTS,\n CALL,\n CONTROLS,\n DECLINE,\n END,\n FLOOR_ACTION,\n HTTP_VERBS,\n LEAVE,\n LOCI,\n LOCUS,\n MEDIA,\n PARTICIPANT,\n PROVISIONAL_TYPE_DIAL_IN,\n PROVISIONAL_TYPE_DIAL_OUT,\n REACHABILITY,\n SEND_DTMF_ENDPOINT,\n _SLIDES_,\n} from '../constants';\nimport {SendReactionOptions, ToggleReactionsOptions} from './request.type';\n\n/**\n * @class MeetingRequest\n */\nexport default class MeetingRequest extends StatelessWebexPlugin {\n changeVideoLayoutDebounced: any;\n\n /**\n * Constructor\n * @param {Object} attrs\n * @param {Object} options\n */\n constructor(attrs: any, options: any) {\n super(attrs, options);\n this.changeVideoLayoutDebounced = debounce(this.changeVideoLayout, 2000, {\n leading: true,\n trailing: true,\n });\n }\n\n /**\n * Returns joinCookie from boundedStorage if present.\n * @returns {Object} joinCookie\n */\n private getJoinCookie = async () => {\n // @ts-ignore\n const joinCookieRaw = await this.webex.boundedStorage\n .get(REACHABILITY.namespace, REACHABILITY.localStorageJoinCookie)\n .catch(() => {});\n\n if (joinCookieRaw) {\n try {\n const joinCookie = JSON.parse(joinCookieRaw);\n if (joinCookie) {\n return joinCookie;\n }\n } catch (e) {\n LoggerProxy.logger.error(\n `MeetingRequest#constructor --> Error in parsing join cookie data: ${e}`\n );\n }\n }\n\n return null;\n };\n\n /**\n * Make a network request to join a meeting\n * @param {Object} options\n * @param {String} options.sipUri\n * @param {String} options.deviceUrl\n * @param {String} options.locusUrl\n * @param {String} options.resourceId,\n * @param {String} options.correlationId\n * @param {boolean} options.ensureConversation\n * @param {boolean} options.moderator\n * @param {boolean} options.pin\n * @param {boolean} options.moveToResource\n * @param {Object} options.roapMessage\n * @param {boolean} options.breakoutsSupported\n * @returns {Promise}\n */\n async joinMeeting(options: {\n sipUri: string;\n deviceUrl: string;\n locusUrl: string;\n resourceId: string;\n correlationId: string;\n ensureConversation: boolean;\n moderator: boolean;\n pin: boolean;\n moveToResource: boolean;\n roapMessage: any;\n asResourceOccupant: any;\n inviteeAddress: any;\n meetingNumber: any;\n permissionToken: any;\n preferTranscoding: any;\n breakoutsSupported: boolean;\n }) {\n const {\n asResourceOccupant,\n inviteeAddress,\n meetingNumber,\n permissionToken,\n deviceUrl,\n locusUrl,\n resourceId,\n correlationId,\n ensureConversation,\n moderator,\n pin,\n moveToResource,\n roapMessage,\n preferTranscoding,\n breakoutsSupported,\n } = options;\n\n LoggerProxy.logger.info('Meeting:request#joinMeeting --> Joining a meeting', correlationId);\n\n let url = '';\n\n const joinCookie = await this.getJoinCookie();\n\n const body: any = {\n asResourceOccupant,\n device: {\n url: deviceUrl,\n // @ts-ignore - config comes from registerPlugin\n deviceType: this.config.meetings.deviceType,\n },\n usingResource: resourceId || null,\n moveMediaToResource: (resourceId && moveToResource) || false,\n correlationId,\n respOnlySdp: true,\n allowMultiDevice: true,\n ensureConversation: ensureConversation || false,\n supportsNativeLobby: 1,\n clientMediaPreferences: {\n preferTranscoding: preferTranscoding ?? true,\n joinCookie,\n },\n };\n\n if (breakoutsSupported) {\n body.deviceCapabilities = [BREAKOUTS.BREAKOUTS_SUPPORTED];\n }\n\n // @ts-ignore\n if (this.webex.meetings.clientRegion) {\n // @ts-ignore\n body.device.countryCode = this.webex.meetings.clientRegion.countryCode;\n // @ts-ignore\n body.device.regionCode = this.webex.meetings.clientRegion.regionCode;\n }\n\n if (moderator !== undefined) {\n body.moderator = moderator;\n }\n\n if (permissionToken) {\n body.permissionToken = permissionToken;\n }\n\n if (pin !== undefined) {\n body.pin = pin;\n }\n\n if (locusUrl) {\n url = `${locusUrl}/${PARTICIPANT}`;\n } else if (inviteeAddress || meetingNumber) {\n try {\n // @ts-ignore\n await this.webex.internal.services.waitForCatalog('postauth');\n // @ts-ignore\n url = `${this.webex.internal.services.get('locus')}/${LOCI}/${CALL}`;\n body.invitee = {\n address: inviteeAddress || `wbxmn:${meetingNumber}`,\n };\n } catch (e) {\n LoggerProxy.logger.error(\n `Meeting:request#joinMeeting Error Joining ${inviteeAddress || meetingNumber} --> ${e}`\n );\n throw e;\n }\n }\n\n // TODO: -- this will be resolved in SDK request\n url = url.concat(`?${ALTERNATE_REDIRECT_TRUE}`);\n\n if (resourceId === inviteeAddress) {\n body.callPreferences = {\n requestedMedia: [_SLIDES_],\n };\n }\n\n if (roapMessage) {\n body.localMedias = roapMessage.localMedias;\n }\n\n /// @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri: url,\n body,\n });\n }\n\n /**\n * Send a request to refresh the captcha\n * @param {Object} options\n * @param {String} options.captchaRefreshUrl\n * @param {String} options.captchaId\n * @returns {Promise}\n * @private\n */\n private refreshCaptcha({\n captchaRefreshUrl,\n captchaId,\n }: {\n captchaRefreshUrl: string;\n captchaId: string;\n }) {\n const body = {\n captchaId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri: captchaRefreshUrl,\n body,\n }).catch((err) => {\n LoggerProxy.logger.error(`Meeting:request#refreshCaptcha --> Error: ${err}`);\n\n throw err;\n });\n }\n\n /**\n * Make a network request to add a dial in device\n * @param {Object} options\n * @param {String} options.correlationId\n * @param {String} options.locusUrl url for the meeting\n * @param {String} options.dialInUrl identifier for the to-be provisioned device\n * @param {String} options.clientUrl identifier for the web device\n * @returns {Promise}\n * @private\n */\n private dialIn({\n locusUrl,\n dialInUrl,\n clientUrl,\n correlationId,\n }: {\n correlationId: string;\n locusUrl: string;\n dialInUrl: string;\n clientUrl: string;\n }) {\n LoggerProxy.logger.info(\n 'Meeting:request#dialIn --> Provisioning a dial in device',\n correlationId\n );\n const uri = `${locusUrl}/${PARTICIPANT}`;\n\n const body = {\n device: {\n deviceType: deviceType.PROVISIONAL,\n provisionalType: PROVISIONAL_TYPE_DIAL_IN,\n url: dialInUrl,\n clientUrl,\n },\n correlationId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri,\n body,\n }).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#dialIn --> Error provisioning a dial in device, error ${err}`\n );\n\n throw err;\n });\n }\n\n /**\n * Make a network request to add a dial out device\n * @param {Object} options\n * @param {String} options.correlationId\n * @param {String} options.locusUrl url for the meeting\n * @param {String} options.dialOutUrl identifier for the to-be provisioned device\n * @param {String} options.phoneNumber phone number to dial out to\n * @param {String} options.clientUrl identifier for the web device\n * @returns {Promise}\n * @private\n */\n private dialOut({\n locusUrl,\n dialOutUrl,\n phoneNumber,\n clientUrl,\n correlationId,\n }: {\n correlationId: string;\n locusUrl: string;\n dialOutUrl: string;\n phoneNumber: string;\n clientUrl: string;\n }) {\n LoggerProxy.logger.info(\n 'Meeting:request#dialOut --> Provisioning a dial out device',\n correlationId\n );\n const uri = `${locusUrl}/${PARTICIPANT}`;\n\n const body = {\n device: {\n deviceType: deviceType.PROVISIONAL,\n provisionalType: PROVISIONAL_TYPE_DIAL_OUT,\n url: dialOutUrl,\n dialoutAddress: phoneNumber,\n clientUrl,\n },\n correlationId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri,\n body,\n }).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#dialOut --> Error provisioning a dial out device, error ${err}`\n );\n\n throw err;\n });\n }\n\n /**\n * Syns the missed delta event\n * @param {Object} options\n * @param {boolean} options.desync flag to get partial or whole locus object\n * @param {String} options.syncUrl sync url to get ht elatest locus delta\n * @returns {Promise}\n */\n syncMeeting(options: {desync: boolean; syncUrl: string}) {\n /* eslint-disable no-else-return */\n const {desync} = options;\n let {syncUrl} = options;\n\n /* istanbul ignore else */\n if (desync) {\n // check for existing URL parameters\n syncUrl = syncUrl\n .concat(syncUrl.split('?')[1] ? '&' : '?')\n .concat(`${LOCUS.SYNCDEBUG}=${desync}`);\n }\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.GET,\n uri: syncUrl,\n }) // TODO: Handle if delta sync failed . Get the full locus object\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#syncMeeting --> Error syncing meeting, error ${err}`\n );\n\n return err;\n });\n }\n\n /**\n * Request to get the complete locus object\n * @param {Object} options\n * @param {boolean} options.desync flag to get partial or whole locus object\n * @param {String} options.locusUrl sync url to get ht elatest locus delta\n * @returns {Promise}\n */\n getFullLocus(options: {desync: boolean; locusUrl: string}) {\n let {locusUrl} = options;\n const {desync} = options;\n\n if (locusUrl) {\n if (desync) {\n locusUrl += `?${LOCUS.SYNCDEBUG}=${desync}`;\n }\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.GET,\n uri: locusUrl,\n }).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#getFullLocus --> Error getting full locus, error ${err}`\n );\n\n return err;\n });\n }\n\n return Promise.reject();\n }\n\n /**\n * Make a network request to make a provisioned phone leave the meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.phoneUrl\n * @param {String} options.correlationId\n * @param {String} options.selfId\n * @returns {Promise}\n * @private\n */\n private disconnectPhoneAudio({\n locusUrl,\n phoneUrl,\n correlationId,\n selfId,\n }: {\n locusUrl: string;\n phoneUrl: string;\n correlationId: string;\n selfId: string;\n }) {\n LoggerProxy.logger.info(\n `Meeting:request#disconnectPhoneAudio --> request phone ${phoneUrl} to leave`,\n correlationId\n );\n const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;\n\n const body = {\n device: {\n deviceType: deviceType.PROVISIONAL,\n url: phoneUrl,\n },\n correlationId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n }).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#disconnectPhoneAudio --> Error when requesting phone ${phoneUrl} to leave, error ${err}`\n );\n\n throw err;\n });\n }\n\n /**\n * Make a network request to leave a meeting\n * @param {Object} options\n * @param {Url} options.locusUrl\n * @param {String} options.selfId\n * @param {Url} options.deviceUrl\n * @param {String} options.resourceId,\n * @param {String} options.correlationId\n * @returns {Promise}\n */\n leaveMeeting({\n locusUrl,\n selfId,\n deviceUrl: url,\n resourceId,\n correlationId,\n }: {\n locusUrl: string;\n selfId: string;\n deviceUrl: string;\n resourceId: string;\n correlationId: string;\n }) {\n LoggerProxy.logger.info('Meeting:request#leaveMeeting --> Leaving a meeting', correlationId);\n\n const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url,\n },\n usingResource: resourceId || null,\n correlationId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n });\n }\n\n /**\n * Make a network request to acknowledge a meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.correlationId\n * @returns {Promise}\n */\n acknowledgeMeeting(options: {locusUrl: string; deviceUrl: string; correlationId: string}) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${ALERT}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl,\n },\n correlationId: options.correlationId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n });\n }\n\n lockMeeting(options) {\n const uri = `${options.locusUrl}/${CONTROLS}`;\n const body = {\n lock: {\n locked: options.lock,\n },\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PATCH,\n uri,\n body,\n });\n }\n\n /**\n * Make a network request to decline a meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.reason\n * @returns {Promise}\n */\n declineMeeting(options: {locusUrl: string; deviceUrl: string; reason: string}) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${DECLINE}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl,\n },\n ...(options.reason && {reason: options.reason}),\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n });\n }\n\n /**\n * Toggle remote audio and/or video\n * @param {Object} options options for toggling\n * @param {String} options.selfId Locus self id??\n * @param {String} options.locusUrl Locus url\n * @param {String} options.deviceUrl Url of a device\n * @param {String} options.resourceId Populated if you are paired to a device\n * @param {String} options.localMedias local sdps\n * @param {Boolean} options.preferTranscoding false for multistream (Homer), true for transcoded media (Edonus)\n * @returns {Promise}\n */\n remoteAudioVideoToggle(\n options:\n | {\n selfId: string;\n locusUrl: string;\n deviceUrl: string;\n resourceId: string;\n localMedias: string;\n }\n | any\n ) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${options.selfId}/${MEDIA}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl,\n },\n usingResource: options.resourceId || null,\n correlationId: options.correlationId,\n respOnlySdp: true,\n localMedias: options.localMedias,\n clientMediaPreferences: {\n preferTranscoding: options.preferTranscoding ?? true,\n },\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n });\n }\n\n /**\n * change the content floor grant\n * @param {Object} options options for floor grant\n * @param {String} options.disposition floor action (granted/released)\n * @param {String} options.personUrl personUrl who is requesting floor\n * @param {String} options.deviceUrl Url of a device\n * @param {String} options.resourceId Populated if you are paired to a device\n * @param {String} options.uri floor grant uri\n * @returns {Promise}\n */\n changeMeetingFloor(\n options:\n | {\n disposition: string;\n personUrl: string;\n deviceUrl: string;\n resourceId: string;\n uri: string;\n }\n | any\n ) {\n let floorReq: any = {disposition: options.disposition};\n\n /* istanbul ignore else */\n if (options.disposition === FLOOR_ACTION.GRANTED) {\n floorReq = {\n beneficiary: {\n url: options.personUrl,\n devices: [\n {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl,\n },\n ],\n },\n disposition: options.disposition,\n requester: {\n url: options.personUrl,\n },\n };\n }\n\n const body: any = {\n floor: floorReq,\n resourceUrl: options.resourceUrl,\n };\n\n if (options?.resourceToken) {\n body.resourceToken = options?.resourceToken;\n }\n\n // @ts-ignore\n return this.request({\n uri: options.uri,\n method: HTTP_VERBS.PUT,\n body,\n });\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.deviceUrl\n * @param {String} options.tones a string of one or more DTMF tones to send\n * @returns {Promise}\n */\n sendDTMF({locusUrl, deviceUrl, tones}: {locusUrl: string; deviceUrl: string; tones: string}) {\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri: `${locusUrl}/${SEND_DTMF_ENDPOINT}`,\n body: {\n deviceUrl,\n dtmf: {\n correlationId: uuid.v4(),\n tones,\n },\n },\n });\n }\n\n /**\n * Sends a request to the controls endpoint to set the video layout\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.layoutType a layout type that should be available in meeting constants {@link #layout_types}\n * @param {Object} options.main preferred dimensions for the remote main video stream\n * @param {Number} options.main.width preferred width of main video stream\n * @param {Number} options.main.height preferred height of main video stream\n * @param {Object} options.content preferred dimensions for the remote content share stream\n * @param {Number} options.content.width preferred width of content share stream\n * @param {Number} options.content.height preferred height of content share stream\n * @returns {Promise}\n */\n changeVideoLayout({\n locusUrl,\n deviceUrl,\n layoutType,\n main,\n content,\n }: {\n locusUrl: string;\n deviceUrl: string;\n layoutType: string;\n main: {\n width: number;\n height: number;\n };\n content: {\n width: number;\n height: number;\n };\n }) {\n // send main/content renderInfo only if both width and height are specified\n if (main && (!main.width || !main.height)) {\n return Promise.reject(\n new Error(\n `Both width and height must be specified. One of them is missing for main: ${JSON.stringify(\n main\n )}`\n )\n );\n }\n\n if (content && (!content.width || !content.height)) {\n return Promise.reject(\n new Error(\n `Both width and height must be specified. One of them is missing for content: ${JSON.stringify(\n content\n )}`\n )\n );\n }\n\n const renderInfoMain = main ? {width: main.width, height: main.height} : undefined;\n const renderInfoContent = content ? {width: content.width, height: content.height} : undefined;\n\n const layoutParams =\n renderInfoMain || renderInfoContent\n ? {\n renderInfo: {\n main: renderInfoMain,\n content: renderInfoContent,\n },\n }\n : undefined;\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${locusUrl}/${CONTROLS}`,\n body: {\n layout: {\n deviceUrl,\n type: layoutType,\n layoutParams,\n },\n },\n });\n }\n\n /**\n * Make a network request to end meeting for all\n * @param {Object} options\n * @param {Url} options.locusUrl\n * @returns {Promise}\n */\n endMeetingForAll({locusUrl}: {locusUrl: string}) {\n const uri = `${locusUrl}/${END}`;\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri,\n });\n }\n\n /**\n * Send a locus keepAlive (used in lobby)\n * @param {Object} options\n * @param {Url} options.keepAliveUrl\n * @returns {Promise}\n */\n keepAlive({keepAliveUrl}: {keepAliveUrl: string}) {\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.GET,\n uri: keepAliveUrl,\n });\n }\n\n /**\n * Make a network request to send a reaction.\n * @param {Object} options\n * @param {Url} options.reactionChannelUrl\n * @param {Reaction} options.reaction\n * @param {string} options.senderID\n * @returns {Promise}\n */\n sendReaction({reactionChannelUrl, reaction, participantId}: SendReactionOptions) {\n const uri = reactionChannelUrl;\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri,\n body: {\n sender: {participantId},\n reaction,\n },\n });\n }\n\n /**\n * Make a network request to enable or disable reactions.\n * @param {boolean} options.enable - determines if we need to enable or disable.\n * @param {locusUrl} options.locusUrl\n * @returns {Promise}\n */\n toggleReactions({enable, locusUrl, requestingParticipantId}: ToggleReactionsOptions) {\n const uri = `${locusUrl}/${CONTROLS}`;\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body: {\n reactions: {\n enabled: enable,\n },\n requestingParticipantId,\n },\n });\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["request.type.ts"],"sourcesContent":["import {Reaction} from '../reactions/reactions.type';\n\nexport type SendReactionOptions = {\n reactionChannelUrl: string;\n reaction: Reaction;\n participantId: string;\n};\n\nexport type ToggleReactionsOptions = {\n enable: boolean;\n locusUrl: string;\n requestingParticipantId: string;\n};\n"],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
declare const MeetingStateMachine: {
|
|
2
|
+
/**
|
|
3
|
+
* Initializes the StateMachine for the meeting
|
|
4
|
+
* @param {Meeting} meetingRef A reference to a meeting instance
|
|
5
|
+
* @returns {StateMachine}
|
|
6
|
+
*/
|
|
7
|
+
create(meetingRef: any): any;
|
|
8
|
+
};
|
|
9
|
+
export default MeetingStateMachine;
|
package/dist/meeting/state.js
CHANGED
|
@@ -1,27 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
-
|
|
5
4
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
6
|
-
|
|
7
5
|
_Object$defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
|
-
|
|
11
8
|
exports.default = void 0;
|
|
12
|
-
|
|
13
9
|
var _javascriptStateMachine = _interopRequireDefault(require("javascript-state-machine"));
|
|
14
|
-
|
|
15
10
|
var _history = _interopRequireDefault(require("javascript-state-machine/lib/history"));
|
|
16
|
-
|
|
17
11
|
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
|
18
|
-
|
|
19
12
|
var _triggerProxy = _interopRequireDefault(require("../common/events/trigger-proxy"));
|
|
20
|
-
|
|
21
13
|
var _constants = require("../constants");
|
|
22
|
-
|
|
23
14
|
var _parameter = _interopRequireDefault(require("../common/errors/parameter"));
|
|
24
|
-
|
|
25
15
|
// TODO: ensure that meeting can be destroyed when in an error state
|
|
26
16
|
var MeetingStateMachine = {
|
|
27
17
|
/**
|
|
@@ -33,46 +23,47 @@ var MeetingStateMachine = {
|
|
|
33
23
|
if (!meetingRef) {
|
|
34
24
|
throw new _parameter.default('You must initialize the meeting state machine with a meeting reference.');
|
|
35
25
|
}
|
|
36
|
-
|
|
37
26
|
return new _javascriptStateMachine.default({
|
|
38
27
|
init: _constants.MEETING_STATE_MACHINE.STATES.IDLE,
|
|
39
|
-
transitions: [
|
|
28
|
+
transitions: [
|
|
29
|
+
// when ringing a meeting, it must be first IDLE, because all other states are invalid, it transitions to the RINGING state
|
|
40
30
|
{
|
|
41
31
|
name: _constants.MEETING_STATE_MACHINE.TRANSITIONS.RING,
|
|
42
32
|
from: [_constants.MEETING_STATE_MACHINE.STATES.IDLE, _constants.MEETING_STATE_MACHINE.STATES.ERROR, _constants.MEETING_STATE_MACHINE.STATES.JOINED],
|
|
43
33
|
to: _constants.MEETING_STATE_MACHINE.STATES.RINGING
|
|
44
|
-
},
|
|
34
|
+
},
|
|
35
|
+
// when joining a meeting, it must be from the RINGING or IDLE state, transitions to JOINED state, 1:1 will go to RINGING,
|
|
45
36
|
// others will go straight to JOINED with this transition
|
|
46
37
|
{
|
|
47
38
|
name: _constants.MEETING_STATE_MACHINE.TRANSITIONS.JOIN,
|
|
48
39
|
from: [_constants.MEETING_STATE_MACHINE.STATES.JOINED, _constants.MEETING_STATE_MACHINE.STATES.IDLE, _constants.MEETING_STATE_MACHINE.STATES.RINGING, _constants.MEETING_STATE_MACHINE.STATES.ERROR],
|
|
49
40
|
to: _constants.MEETING_STATE_MACHINE.STATES.JOINED
|
|
50
|
-
},
|
|
41
|
+
},
|
|
42
|
+
// signify that ringing has stopped and somebody else answered, move state to DECLINED, ANSWERED
|
|
51
43
|
{
|
|
52
44
|
name: _constants.MEETING_STATE_MACHINE.TRANSITIONS.REMOTE,
|
|
53
45
|
from: [_constants.MEETING_STATE_MACHINE.STATES.JOINED, _constants.MEETING_STATE_MACHINE.STATES.ERROR],
|
|
54
|
-
|
|
55
46
|
/**
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
47
|
+
* @param {Object} remote
|
|
48
|
+
* @param {Boolean} remote.remoteAnswered
|
|
49
|
+
* @param {Boolean} remote.remoteDeclined
|
|
50
|
+
* @returns {String}
|
|
51
|
+
*/
|
|
61
52
|
to: function to(remote) {
|
|
62
53
|
// other user answered the call
|
|
63
54
|
if (remote.remoteAnswered) {
|
|
64
55
|
return _constants.MEETING_STATE_MACHINE.STATES.ANSWERED;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
|
|
56
|
+
}
|
|
57
|
+
// other user declined the call
|
|
68
58
|
if (remote.remoteDeclined) {
|
|
69
59
|
return _constants.MEETING_STATE_MACHINE.STATES.DECLINED;
|
|
70
|
-
}
|
|
71
|
-
|
|
60
|
+
}
|
|
72
61
|
|
|
62
|
+
// default
|
|
73
63
|
return _constants.MEETING_STATE_MACHINE.STATES.ERROR;
|
|
74
64
|
}
|
|
75
|
-
},
|
|
65
|
+
},
|
|
66
|
+
// when leaving a meeting it must be from either the RINGING, JOINED, or ERROR states, and transitions it to the ENDED state
|
|
76
67
|
{
|
|
77
68
|
name: _constants.MEETING_STATE_MACHINE.TRANSITIONS.LEAVE,
|
|
78
69
|
from: [_constants.MEETING_STATE_MACHINE.STATES.IDLE, _constants.MEETING_STATE_MACHINE.STATES.RINGING, _constants.MEETING_STATE_MACHINE.STATES.JOINED, _constants.MEETING_STATE_MACHINE.STATES.ANSWERED, _constants.MEETING_STATE_MACHINE.STATES.DECLINED, _constants.MEETING_STATE_MACHINE.STATES.ERROR],
|
|
@@ -85,12 +76,14 @@ var MeetingStateMachine = {
|
|
|
85
76
|
name: _constants.MEETING_STATE_MACHINE.TRANSITIONS.DECLINE,
|
|
86
77
|
from: [_constants.MEETING_STATE_MACHINE.STATES.RINGING, _constants.MEETING_STATE_MACHINE.STATES.ERROR],
|
|
87
78
|
to: _constants.MEETING_STATE_MACHINE.STATES.ENDED
|
|
88
|
-
},
|
|
79
|
+
},
|
|
80
|
+
// transition from ANY state to ERROR state
|
|
89
81
|
{
|
|
90
82
|
name: _constants.MEETING_STATE_MACHINE.TRANSITIONS.FAIL,
|
|
91
83
|
from: '*',
|
|
92
84
|
to: _constants.MEETING_STATE_MACHINE.STATES.ERROR
|
|
93
|
-
},
|
|
85
|
+
},
|
|
86
|
+
// fail safe, transition from ANY state to IDLE state
|
|
94
87
|
{
|
|
95
88
|
name: _constants.MEETING_STATE_MACHINE.TRANSITIONS.RESET,
|
|
96
89
|
from: '*',
|
|
@@ -120,7 +113,6 @@ var MeetingStateMachine = {
|
|
|
120
113
|
});
|
|
121
114
|
}
|
|
122
115
|
},
|
|
123
|
-
|
|
124
116
|
/**
|
|
125
117
|
* Ring transition, to cause the ring event for the meeting, and transition the state to RINGING, for both incoming, and outgoing meetings
|
|
126
118
|
* @param {Object} transition -- FiniteStateMachine automatically passed, not used
|
|
@@ -138,7 +130,6 @@ var MeetingStateMachine = {
|
|
|
138
130
|
});
|
|
139
131
|
}
|
|
140
132
|
},
|
|
141
|
-
|
|
142
133
|
/**
|
|
143
134
|
* handle the entry to error state
|
|
144
135
|
* @param {Object} transition
|
|
@@ -148,7 +139,6 @@ var MeetingStateMachine = {
|
|
|
148
139
|
onEnterError: function onEnterError(transition, error) {
|
|
149
140
|
_loggerProxy.default.logger.error("Meeting:state#onEnterError --> state->onEnterError#meeting.id: ".concat(this.meeting.id, " | Transition '").concat(transition === null || transition === void 0 ? void 0 : transition.transition, "' : ").concat(transition === null || transition === void 0 ? void 0 : transition.from, " -> ").concat(transition === null || transition === void 0 ? void 0 : transition.to, ", with error ").concat(error, ". Last states: ").concat(this.history));
|
|
150
141
|
},
|
|
151
|
-
|
|
152
142
|
/**
|
|
153
143
|
* After ANY transition occurs, we want to know what state the meeting moved to for debugging
|
|
154
144
|
* @param {Object} transition
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MeetingStateMachine","create","meetingRef","ParameterError","StateMachine","init","MEETING_STATE_MACHINE","STATES","IDLE","transitions","name","TRANSITIONS","RING","from","ERROR","JOINED","to","RINGING","JOIN","REMOTE","remote","remoteAnswered","ANSWERED","remoteDeclined","DECLINED","LEAVE","ENDED","END","DECLINE","FAIL","RESET","data","meeting","methods","onRemote","transition","stop","Trigger","trigger","file","function","EVENT_TRIGGERS","MEETING_RINGING_STOP","id","type","onRing","MEETING_RINGING","onEnterError","error","LoggerProxy","logger","history","onAfterTransition","log","plugins","StateMachineHistory","max"],"sources":["state.ts"],"sourcesContent":["import StateMachine from 'javascript-state-machine';\nimport StateMachineHistory from 'javascript-state-machine/lib/history';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport Trigger from '../common/events/trigger-proxy';\nimport {MEETING_STATE_MACHINE, EVENT_TRIGGERS} from '../constants';\nimport ParameterError from '../common/errors/parameter';\n\n// TODO: ensure that meeting can be destroyed when in an error state\nconst MeetingStateMachine = {\n /**\n * Initializes the StateMachine for the meeting\n * @param {Meeting} meetingRef A reference to a meeting instance\n * @returns {StateMachine}\n */\n create(meetingRef: any) {\n if (!meetingRef) {\n throw new ParameterError('You must initialize the meeting state machine with a meeting reference.');\n }\n\n return new StateMachine({\n init: MEETING_STATE_MACHINE.STATES.IDLE,\n transitions: [\n // when ringing a meeting, it must be first IDLE, because all other states are invalid, it transitions to the RINGING state\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.RING,\n from: [MEETING_STATE_MACHINE.STATES.IDLE, MEETING_STATE_MACHINE.STATES.ERROR, MEETING_STATE_MACHINE.STATES.JOINED],\n to: MEETING_STATE_MACHINE.STATES.RINGING\n },\n // when joining a meeting, it must be from the RINGING or IDLE state, transitions to JOINED state, 1:1 will go to RINGING,\n // others will go straight to JOINED with this transition\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.JOIN,\n from: [MEETING_STATE_MACHINE.STATES.JOINED, MEETING_STATE_MACHINE.STATES.IDLE, MEETING_STATE_MACHINE.STATES.RINGING, MEETING_STATE_MACHINE.STATES.ERROR],\n to: MEETING_STATE_MACHINE.STATES.JOINED\n },\n // signify that ringing has stopped and somebody else answered, move state to DECLINED, ANSWERED\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.REMOTE,\n from: [MEETING_STATE_MACHINE.STATES.JOINED, MEETING_STATE_MACHINE.STATES.ERROR],\n /**\n * @param {Object} remote\n * @param {Boolean} remote.remoteAnswered\n * @param {Boolean} remote.remoteDeclined\n * @returns {String}\n */\n to(remote: { remoteAnswered: boolean; remoteDeclined: boolean }) {\n // other user answered the call\n if (remote.remoteAnswered) {\n return MEETING_STATE_MACHINE.STATES.ANSWERED;\n }\n // other user declined the call\n if (remote.remoteDeclined) {\n return MEETING_STATE_MACHINE.STATES.DECLINED;\n }\n\n // default\n return MEETING_STATE_MACHINE.STATES.ERROR;\n }\n },\n // when leaving a meeting it must be from either the RINGING, JOINED, or ERROR states, and transitions it to the ENDED state\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.LEAVE,\n from: [\n MEETING_STATE_MACHINE.STATES.IDLE,\n MEETING_STATE_MACHINE.STATES.RINGING,\n MEETING_STATE_MACHINE.STATES.JOINED,\n MEETING_STATE_MACHINE.STATES.ANSWERED,\n MEETING_STATE_MACHINE.STATES.DECLINED,\n MEETING_STATE_MACHINE.STATES.ERROR\n ],\n to: MEETING_STATE_MACHINE.STATES.ENDED\n },\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.END,\n from: [\n MEETING_STATE_MACHINE.STATES.IDLE,\n MEETING_STATE_MACHINE.STATES.RINGING,\n MEETING_STATE_MACHINE.STATES.JOINED,\n MEETING_STATE_MACHINE.STATES.ANSWERED,\n MEETING_STATE_MACHINE.STATES.DECLINED,\n MEETING_STATE_MACHINE.STATES.ERROR\n ],\n to: MEETING_STATE_MACHINE.STATES.ENDED\n },\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.DECLINE,\n from: [MEETING_STATE_MACHINE.STATES.RINGING, MEETING_STATE_MACHINE.STATES.ERROR],\n to: MEETING_STATE_MACHINE.STATES.ENDED\n },\n // transition from ANY state to ERROR state\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.FAIL,\n from: '*',\n to: MEETING_STATE_MACHINE.STATES.ERROR\n },\n // fail safe, transition from ANY state to IDLE state\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.RESET,\n from: '*',\n to: MEETING_STATE_MACHINE.STATES.IDLE\n }\n ],\n data: {\n /**\n * The meeting instance to execute all state changes on\n */\n meeting: meetingRef\n },\n methods: {\n /**\n * Ring stop transition, to end the ring event for the meeting, and transition the state to ANSWERED OR DECLINED, only for outgoing meetings\n * @param {Object} transition -- FiniteStateMachine automatically passed, not used\n * @param {Object} stop -- {remoteAnswered: {Boolean}, remoteDeclined: {Boolean}}\n * @returns {Boolean}\n */\n onRemote(transition: object, stop: object) {\n if (this.meeting) {\n Trigger.trigger(\n this.meeting,\n {\n file: 'meeting/state',\n function: 'onRemote'\n },\n EVENT_TRIGGERS.MEETING_RINGING_STOP,\n {\n id: this.meeting.id,\n type: stop\n }\n );\n }\n },\n /**\n * Ring transition, to cause the ring event for the meeting, and transition the state to RINGING, for both incoming, and outgoing meetings\n * @param {Object} transition -- FiniteStateMachine automatically passed, not used\n * @param {String} type -- incoming call === INCOMING / or other meetings have a ring type of JOIN\n * @returns {Boolean}\n */\n onRing(transition: object, type: string) {\n if (this.meeting) {\n Trigger.trigger(\n this.meeting,\n {\n file: 'meeting/state',\n function: 'onRing'\n },\n EVENT_TRIGGERS.MEETING_RINGING,\n {\n type,\n id: this.meeting.id\n }\n );\n }\n },\n /**\n * handle the entry to error state\n * @param {Object} transition\n * @param {Error} error\n * @returns {Boolean}\n */\n onEnterError(transition: any, error: Error) {\n LoggerProxy.logger.error(`Meeting:state#onEnterError --> state->onEnterError#meeting.id: ${this.meeting.id} | Transition '${transition?.transition}' : ${transition?.from} -> ${transition?.to}, with error ${error}. Last states: ${this.history}`);\n },\n /**\n * After ANY transition occurs, we want to know what state the meeting moved to for debugging\n * @param {Object} transition\n * @returns {Boolean}\n */\n onAfterTransition(transition: any) {\n LoggerProxy.logger.log(`Meeting:state#onAfterTransition --> state->onAfterTransition#meeting.id: ${this.meeting.id} | Transition '${transition.transition}' : ${transition.from} -> ${transition.to} executed. Last states: ${this.history}`);\n }\n },\n // track the last 25 states entered\n plugins: [new StateMachineHistory({max: 25})]\n });\n }\n};\n\nexport default MeetingStateMachine;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["MeetingStateMachine","create","meetingRef","ParameterError","StateMachine","init","MEETING_STATE_MACHINE","STATES","IDLE","transitions","name","TRANSITIONS","RING","from","ERROR","JOINED","to","RINGING","JOIN","REMOTE","remote","remoteAnswered","ANSWERED","remoteDeclined","DECLINED","LEAVE","ENDED","END","DECLINE","FAIL","RESET","data","meeting","methods","onRemote","transition","stop","Trigger","trigger","file","function","EVENT_TRIGGERS","MEETING_RINGING_STOP","id","type","onRing","MEETING_RINGING","onEnterError","error","LoggerProxy","logger","history","onAfterTransition","log","plugins","StateMachineHistory","max"],"sources":["state.ts"],"sourcesContent":["import StateMachine from 'javascript-state-machine';\nimport StateMachineHistory from 'javascript-state-machine/lib/history';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport Trigger from '../common/events/trigger-proxy';\nimport {MEETING_STATE_MACHINE, EVENT_TRIGGERS} from '../constants';\nimport ParameterError from '../common/errors/parameter';\n\n// TODO: ensure that meeting can be destroyed when in an error state\nconst MeetingStateMachine = {\n /**\n * Initializes the StateMachine for the meeting\n * @param {Meeting} meetingRef A reference to a meeting instance\n * @returns {StateMachine}\n */\n create(meetingRef: any) {\n if (!meetingRef) {\n throw new ParameterError(\n 'You must initialize the meeting state machine with a meeting reference.'\n );\n }\n\n return new StateMachine({\n init: MEETING_STATE_MACHINE.STATES.IDLE,\n transitions: [\n // when ringing a meeting, it must be first IDLE, because all other states are invalid, it transitions to the RINGING state\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.RING,\n from: [\n MEETING_STATE_MACHINE.STATES.IDLE,\n MEETING_STATE_MACHINE.STATES.ERROR,\n MEETING_STATE_MACHINE.STATES.JOINED,\n ],\n to: MEETING_STATE_MACHINE.STATES.RINGING,\n },\n // when joining a meeting, it must be from the RINGING or IDLE state, transitions to JOINED state, 1:1 will go to RINGING,\n // others will go straight to JOINED with this transition\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.JOIN,\n from: [\n MEETING_STATE_MACHINE.STATES.JOINED,\n MEETING_STATE_MACHINE.STATES.IDLE,\n MEETING_STATE_MACHINE.STATES.RINGING,\n MEETING_STATE_MACHINE.STATES.ERROR,\n ],\n to: MEETING_STATE_MACHINE.STATES.JOINED,\n },\n // signify that ringing has stopped and somebody else answered, move state to DECLINED, ANSWERED\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.REMOTE,\n from: [MEETING_STATE_MACHINE.STATES.JOINED, MEETING_STATE_MACHINE.STATES.ERROR],\n /**\n * @param {Object} remote\n * @param {Boolean} remote.remoteAnswered\n * @param {Boolean} remote.remoteDeclined\n * @returns {String}\n */\n to(remote: {remoteAnswered: boolean; remoteDeclined: boolean}) {\n // other user answered the call\n if (remote.remoteAnswered) {\n return MEETING_STATE_MACHINE.STATES.ANSWERED;\n }\n // other user declined the call\n if (remote.remoteDeclined) {\n return MEETING_STATE_MACHINE.STATES.DECLINED;\n }\n\n // default\n return MEETING_STATE_MACHINE.STATES.ERROR;\n },\n },\n // when leaving a meeting it must be from either the RINGING, JOINED, or ERROR states, and transitions it to the ENDED state\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.LEAVE,\n from: [\n MEETING_STATE_MACHINE.STATES.IDLE,\n MEETING_STATE_MACHINE.STATES.RINGING,\n MEETING_STATE_MACHINE.STATES.JOINED,\n MEETING_STATE_MACHINE.STATES.ANSWERED,\n MEETING_STATE_MACHINE.STATES.DECLINED,\n MEETING_STATE_MACHINE.STATES.ERROR,\n ],\n to: MEETING_STATE_MACHINE.STATES.ENDED,\n },\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.END,\n from: [\n MEETING_STATE_MACHINE.STATES.IDLE,\n MEETING_STATE_MACHINE.STATES.RINGING,\n MEETING_STATE_MACHINE.STATES.JOINED,\n MEETING_STATE_MACHINE.STATES.ANSWERED,\n MEETING_STATE_MACHINE.STATES.DECLINED,\n MEETING_STATE_MACHINE.STATES.ERROR,\n ],\n to: MEETING_STATE_MACHINE.STATES.ENDED,\n },\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.DECLINE,\n from: [MEETING_STATE_MACHINE.STATES.RINGING, MEETING_STATE_MACHINE.STATES.ERROR],\n to: MEETING_STATE_MACHINE.STATES.ENDED,\n },\n // transition from ANY state to ERROR state\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.FAIL,\n from: '*',\n to: MEETING_STATE_MACHINE.STATES.ERROR,\n },\n // fail safe, transition from ANY state to IDLE state\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.RESET,\n from: '*',\n to: MEETING_STATE_MACHINE.STATES.IDLE,\n },\n ],\n data: {\n /**\n * The meeting instance to execute all state changes on\n */\n meeting: meetingRef,\n },\n methods: {\n /**\n * Ring stop transition, to end the ring event for the meeting, and transition the state to ANSWERED OR DECLINED, only for outgoing meetings\n * @param {Object} transition -- FiniteStateMachine automatically passed, not used\n * @param {Object} stop -- {remoteAnswered: {Boolean}, remoteDeclined: {Boolean}}\n * @returns {Boolean}\n */\n onRemote(transition: object, stop: object) {\n if (this.meeting) {\n Trigger.trigger(\n this.meeting,\n {\n file: 'meeting/state',\n function: 'onRemote',\n },\n EVENT_TRIGGERS.MEETING_RINGING_STOP,\n {\n id: this.meeting.id,\n type: stop,\n }\n );\n }\n },\n /**\n * Ring transition, to cause the ring event for the meeting, and transition the state to RINGING, for both incoming, and outgoing meetings\n * @param {Object} transition -- FiniteStateMachine automatically passed, not used\n * @param {String} type -- incoming call === INCOMING / or other meetings have a ring type of JOIN\n * @returns {Boolean}\n */\n onRing(transition: object, type: string) {\n if (this.meeting) {\n Trigger.trigger(\n this.meeting,\n {\n file: 'meeting/state',\n function: 'onRing',\n },\n EVENT_TRIGGERS.MEETING_RINGING,\n {\n type,\n id: this.meeting.id,\n }\n );\n }\n },\n /**\n * handle the entry to error state\n * @param {Object} transition\n * @param {Error} error\n * @returns {Boolean}\n */\n onEnterError(transition: any, error: Error) {\n LoggerProxy.logger.error(\n `Meeting:state#onEnterError --> state->onEnterError#meeting.id: ${this.meeting.id} | Transition '${transition?.transition}' : ${transition?.from} -> ${transition?.to}, with error ${error}. Last states: ${this.history}`\n );\n },\n /**\n * After ANY transition occurs, we want to know what state the meeting moved to for debugging\n * @param {Object} transition\n * @returns {Boolean}\n */\n onAfterTransition(transition: any) {\n LoggerProxy.logger.log(\n `Meeting:state#onAfterTransition --> state->onAfterTransition#meeting.id: ${this.meeting.id} | Transition '${transition.transition}' : ${transition.from} -> ${transition.to} executed. Last states: ${this.history}`\n );\n },\n },\n // track the last 25 states entered\n plugins: [new StateMachineHistory({max: 25})],\n });\n },\n};\n\nexport default MeetingStateMachine;\n"],"mappings":"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"}
|