@rongcloud/plugin-rtc 5.5.6 → 5.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +620 -49
- package/dist/index.esm.js +3 -2
- package/dist/index.js +3 -2
- package/dist/index.umd.js +2 -1
- package/package.json +3 -3
- package/dist/async-task-queue.d.ts +0 -9
- package/dist/core/Invoker.d.ts +0 -55
- package/dist/core/PolarisReporter.d.ts +0 -36
- package/dist/core/RCAudienceClient.d.ts +0 -90
- package/dist/core/RCMediaStreamCapture.d.ts +0 -124
- package/dist/core/RCRTCClient.d.ts +0 -148
- package/dist/core/Store.d.ts +0 -86
- package/dist/core/codec/RTCContext.d.ts +0 -76
- package/dist/core/codec/interface.d.ts +0 -168
- package/dist/core/codec/proto.d.ts +0 -94
- package/dist/core/codec/rtc-helper.d.ts +0 -17
- package/dist/core/command/AsyncCommand.d.ts +0 -55
- package/dist/core/command/AsyncSubscribeCommand.d.ts +0 -28
- package/dist/core/command/AsyncUnsubscribeCommand.d.ts +0 -28
- package/dist/core/command/AsyncUpdateSubscribeListCommand.d.ts +0 -25
- package/dist/core/command/BaseCommand.d.ts +0 -31
- package/dist/core/command/EnabelInnerCDNCommand.d.ts +0 -16
- package/dist/core/command/ExchangeCommand.d.ts +0 -18
- package/dist/core/command/ExchangeWithPushOtherRoomCommand.d.ts +0 -22
- package/dist/core/command/JoinRoomCommand.d.ts +0 -31
- package/dist/core/command/LeaveOtherRoomCommand.d.ts +0 -32
- package/dist/core/command/LocalTrackMuteCommand.d.ts +0 -18
- package/dist/core/command/MCUConfigFlushCommand.d.ts +0 -18
- package/dist/core/command/OnRemoteUserUnpubCommand.d.ts +0 -13
- package/dist/core/command/OnSignalReconnectedCommand.d.ts +0 -38
- package/dist/core/command/ParseRemoteResCommand.d.ts +0 -38
- package/dist/core/command/ParseUserStateCommand.d.ts +0 -57
- package/dist/core/command/PubCommand.d.ts +0 -34
- package/dist/core/command/PublishCommand.d.ts +0 -36
- package/dist/core/command/RTCIdentityChangeCommand.d.ts +0 -18
- package/dist/core/command/RetryExchangeCommand.d.ts +0 -18
- package/dist/core/command/SubscribeCommand.d.ts +0 -21
- package/dist/core/command/UnpublishCommand.d.ts +0 -22
- package/dist/core/command/UnpublishPrevCommand.d.ts +0 -11
- package/dist/core/command/UnsubscribeCommand.d.ts +0 -20
- package/dist/core/command/UpdateSubscribeListCommand.d.ts +0 -28
- package/dist/core/command/helper.d.ts +0 -27
- package/dist/core/constants.d.ts +0 -4
- package/dist/core/enums/BackgroundPictureFillMode.d.ts +0 -14
- package/dist/core/enums/MixLayoutMode.d.ts +0 -18
- package/dist/core/enums/MixVideoRenderMode.d.ts +0 -14
- package/dist/core/enums/RCBitrate.d.ts +0 -48
- package/dist/core/enums/RCCommandKind.d.ts +0 -12
- package/dist/core/enums/RCFrameRate.d.ts +0 -7
- package/dist/core/enums/RCInnerCDNBroadcast.d.ts +0 -5
- package/dist/core/enums/RCInnerCDNModel.d.ts +0 -5
- package/dist/core/enums/RCInnerCDNPullIsHttps.d.ts +0 -5
- package/dist/core/enums/RCInnerCDNPullKind.d.ts +0 -6
- package/dist/core/enums/RCInnerCDNPushMode.d.ts +0 -5
- package/dist/core/enums/RCKickType.d.ts +0 -11
- package/dist/core/enums/RCLinkedListPoint.d.ts +0 -6
- package/dist/core/enums/RCLivingType.d.ts +0 -14
- package/dist/core/enums/RCLoggerTag.d.ts +0 -649
- package/dist/core/enums/RCMediaType.d.ts +0 -18
- package/dist/core/enums/RCMixInputFilterMode.d.ts +0 -35
- package/dist/core/enums/RCRTCCode.d.ts +0 -93
- package/dist/core/enums/RCRTCLiveRole.d.ts +0 -14
- package/dist/core/enums/RCRTCPingResult.d.ts +0 -5
- package/dist/core/enums/RCRTCResolution.d.ts +0 -132
- package/dist/core/enums/RCResolution.d.ts +0 -21
- package/dist/core/enums/RTCJoinType.d.ts +0 -18
- package/dist/core/enums/RTCMode.d.ts +0 -22
- package/dist/core/enums/inner/LiveRole.d.ts +0 -11
- package/dist/core/enums/inner/LiveType.d.ts +0 -14
- package/dist/core/enums/inner/PolarisRole.d.ts +0 -14
- package/dist/core/enums/inner/R2Action.d.ts +0 -14
- package/dist/core/enums/inner/R2Status.d.ts +0 -11
- package/dist/core/enums/inner/RCRTCMessageType.d.ts +0 -70
- package/dist/core/enums/inner/RCStreamType.d.ts +0 -14
- package/dist/core/enums/inner/RTCApiType.d.ts +0 -5
- package/dist/core/enums/inner/RTCIdentityChangeType.d.ts +0 -5
- package/dist/core/enums/inner/TrackState.d.ts +0 -14
- package/dist/core/interfaces.d.ts +0 -942
- package/dist/core/room/Pinger.d.ts +0 -36
- package/dist/core/room/RCAbstractRoom.d.ts +0 -354
- package/dist/core/room/RCAudienceLivingRoom.d.ts +0 -334
- package/dist/core/room/RCAudioLevelReport.d.ts +0 -16
- package/dist/core/room/RCLivingPKHandler.d.ts +0 -165
- package/dist/core/room/RCLivingRoom.d.ts +0 -112
- package/dist/core/room/RCLocalMediaStream.d.ts +0 -8
- package/dist/core/room/RCMCUConfigBuilder.d.ts +0 -211
- package/dist/core/room/RCRTCRoom.d.ts +0 -17
- package/dist/core/service/RCMediaService.d.ts +0 -121
- package/dist/core/service/helper.d.ts +0 -18
- package/dist/core/service/index.d.ts +0 -6
- package/dist/core/service/interface.d.ts +0 -328
- package/dist/core/service/mcu-interface.d.ts +0 -293
- package/dist/core/tracks/RC3AnoiseTrack.d.ts +0 -27
- package/dist/core/tracks/RCLocalTrack.d.ts +0 -143
- package/dist/core/tracks/RCRemoteTrack.d.ts +0 -29
- package/dist/core/tracks/RCTrack.d.ts +0 -95
- package/dist/core/webrtc/RCRTCPeerCManager.d.ts +0 -161
- package/dist/core/webrtc/RCRTCPeerConnection.d.ts +0 -112
- package/dist/core/webrtc/helper.d.ts +0 -26
- package/dist/core/webrtc/sdp/ASdpBuilder.d.ts +0 -120
- package/dist/core/webrtc/sdp/ASdpStrategy.d.ts +0 -53
- package/dist/core/webrtc/sdp/PlanBSdpBuilder.d.ts +0 -20
- package/dist/core/webrtc/sdp/PlanBStrategy.d.ts +0 -26
- package/dist/core/webrtc/sdp/SDPUtils.d.ts +0 -60
- package/dist/core/webrtc/sdp/UnifiedPlanSdpBuilder.d.ts +0 -11
- package/dist/core/webrtc/sdp/UnifiedPlanStrategy.d.ts +0 -25
- package/dist/core/webrtc/stat-parser/AbstractStatParser.d.ts +0 -117
- package/dist/core/webrtc/stat-parser/ChromeStatParser.d.ts +0 -14
- package/dist/core/webrtc/stat-parser/FirefoxStatParser.d.ts +0 -14
- package/dist/core/webrtc/stat-parser/IStatParser.d.ts +0 -24
- package/dist/core/webrtc/stat-parser/SafariStatParser.d.ts +0 -14
- package/dist/device.d.ts +0 -6
- package/dist/helper.d.ts +0 -195
- package/dist/logger.d.ts +0 -4
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@rongcloud/engine");
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t,i,r=require("@rongcloud/engine");
|
|
2
2
|
/*! *****************************************************************************
|
|
3
3
|
Copyright (c) Microsoft Corporation.
|
|
4
4
|
|
|
@@ -12,4 +12,5 @@ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
|
12
12
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
13
13
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
14
14
|
PERFORMANCE OF THIS SOFTWARE.
|
|
15
|
-
***************************************************************************** */function t(e,t,r,o){return new(r||(r=Promise))((function(i,s){function n(e){try{c(o.next(e))}catch(e){s(e)}}function a(e){try{c(o.throw(e))}catch(e){s(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(n,a)}c((o=o.apply(e,t||[])).next())}))}const r=new e.Logger("RCRTC");var o,i,s;exports.RCRTCCode=void 0,(o=exports.RCRTCCode||(exports.RCRTCCode={}))[o.SUCCESS=1e4]="SUCCESS",o[o.SIGNAL_DISCONNECTED=5e4]="SIGNAL_DISCONNECTED",o[o.PARAMS_ERROR=50001]="PARAMS_ERROR",o[o.REPERT_JOIN_ROOM=50002]="REPERT_JOIN_ROOM",o[o.NOT_IN_ROOM=50003]="NOT_IN_ROOM",o[o.SERVICE_INVALID=50004]="SERVICE_INVALID",o[o.RTC_TOKEN_INVALID=50006]="RTC_TOKEN_INVALID",o[o.SIGNAL_ERROR=53001]="SIGNAL_ERROR",o[o.CREATE_OFFER_FAILED=53003]="CREATE_OFFER_FAILED",o[o.REQUEST_FAILED=53004]="REQUEST_FAILED",o[o.MCU_SERVER_NOT_FOUND=53005]="MCU_SERVER_NOT_FOUND",o[o.BROADCAST_SUB_LIST_NOT_EMPTY=53007]="BROADCAST_SUB_LIST_NOT_EMPTY",o[o.ROOM_HAS_BEEN_DESTROYED=53008]="ROOM_HAS_BEEN_DESTROYED",o[o.NOT_OPEN_VIDEO_AUDIO_SERVER=53009]="NOT_OPEN_VIDEO_AUDIO_SERVER",o[o.GET_USER_MEDIA_FAILED=53010]="GET_USER_MEDIA_FAILED",o[o.GET_DISPLAY_MEDIA_FAILED=53011]="GET_DISPLAY_MEDIA_FAILED",o[o.BROWSER_PERMISSION_DENIED=53012]="BROWSER_PERMISSION_DENIED",o[o.CREATE_CUSTOM_TRACK_FAILED=53013]="CREATE_CUSTOM_TRACK_FAILED",o[o.INVALID_TAGS=53014]="INVALID_TAGS",o[o.INVALID_USER_ID=53015]="INVALID_USER_ID",o[o.CREATE_FILE_TRACK_FAILED=53016]="CREATE_FILE_TRACK_FAILED",o[o.INVALID_FILE_INSTANCE=53017]="INVALID_FILE_INSTANCE",o[o.SET_REMOTE_DESCRIPTION_FAILED=53018]="SET_REMOTE_DESCRIPTION_FAILED",o[o.BROWSER_NOT_SUPPORT=53019]="BROWSER_NOT_SUPPORT",o[o.TRACK_NOT_READY=53020]="TRACK_NOT_READY",o[o.VIDEO_TRACK_MISS_MEDIA_ELEMENT=53021]="VIDEO_TRACK_MISS_MEDIA_ELEMENT",o[o.TRACK_PLAY_ERROR=53022]="TRACK_PLAY_ERROR",o[o.SIGNAL_AUDIENCE_JOIN_ROOM_FAILED=53023]="SIGNAL_AUDIENCE_JOIN_ROOM_FAILED",o[o.SIGNAL_ROOM_CHANGE_IDENTITY_FAILED=53024]="SIGNAL_ROOM_CHANGE_IDENTITY_FAILED",o[o.PACKAGE_ENVIRONMENT_ERROR=53025]="PACKAGE_ENVIRONMENT_ERROR",o[o.PUBLISH_TRACK_LIMIT_EXCEEDED=53026]="PUBLISH_TRACK_LIMIT_EXCEEDED",o[o.CDN_RESOURCE_IS_EMPTY=53027]="CDN_RESOURCE_IS_EMPTY",o[o.SIGNAL_JOIN_RTC_ROOM_REFUSED=53028]="SIGNAL_JOIN_RTC_ROOM_REFUSED",o[o.NO_PERMISSION_TO_USE_REQUESTED_DEVICE=53029]="NO_PERMISSION_TO_USE_REQUESTED_DEVICE",o[o.THE_FUNCTION_IS_DISABLED_IN_PKROOM=53030]="THE_FUNCTION_IS_DISABLED_IN_PKROOM",o[o.SOME_TRACKS_PUBLISH_FAILED=53031]="SOME_TRACKS_PUBLISH_FAILED",o[o.MAC_IN_ELECTRON_NOT_SUPPORT_SCREEN_SHARE_WITH_AUDIO=53032]="MAC_IN_ELECTRON_NOT_SUPPORT_SCREEN_SHARE_WITH_AUDIO",o[o.JWT_TIME_OUT=1004]="JWT_TIME_OUT",o[o.SYSTEM_PERMISSION_DENIED=53033]="SYSTEM_PERMISSION_DENIED",o[o.PUBLISH_TRACKS_IS_INVALID=53034]="PUBLISH_TRACKS_IS_INVALID",function(e){e.L_RTC_CLIENT_CONNECTION_STATE_S="L-rtc_client_connection_state-S",e.L_RTC_CLIENT_DISCONNECT_S="L-rtc_client_disconnect-S",e.L_RTC_CLIENT_MESSAGE_O="L-rtc_client_message-O",e.L_RTC_CLIENT_DESTROY_S="L-rtc_client_destroy-S",e.L_RTC_CLIENT_JOIN_RTC_ROOM_T="L-rtc_client_join_rtc_room-T",e.L_RTC_CLIENT_JOIN_RTC_ROOM_R="L-rtc_client_join_rtc_room-R",e.L_RTC_CLIENT_JOIN_LIVING_ROOM_T="L-rtc_client_join_living_room-T",e.L_RTC_CLIENT_JOIN_LIVING_ROOM_R="L-rtc_client_join_living_room-R",e.L_RTC_CLIENT_GET_AUDIENCE_CLIENT_O="L-rtc_client_get_audience_client-O",e.L_RTC_CLIENT_LEAVE_ROOM_T="L-rtc_client_leave_room-T",e.L_RTC_CLIENT_LEAVE_ROOM_R="L-rtc_client_leave-room-R",e.L_RTC_CLIENT_CREATE_MICROPHONE_AUDIO_TRACK_O="L-rtc_client_create_microphone_audio_track-O",e.L_RTC_CLIENT_CREATE_CAMERA_VIDEO_TRACK_O="L-rtc_client_create_camera_video_track-O",e.L_RTC_CLIENT_CREATE_MICROPHONE_AND_CAMERA_TRACKS_O="L-rtc_client_create_microphone_and_camera_tracks-O",e.L_RTC_CLIENT_CREATE_SCREEN_VIDEO_TRACK_O="L-rtc_client_create_screen_video_track-O",e.L_RTC_CLIENT_CREATE_SCREEN_VIDEO_AND_AUDIO_TRACKS_O="L-rtc_client_create_screen_video_and_audio_tracks-O",e.L_RTC_CLIENT_CREATE_LOCAL_AUDIO_TRACK_O="L-rtc_client_create_local_audio_track-O",e.L_RTC_CLIENT_CREATE_LOCAL_VIDEO_TRACK_O="L-rtc_client_create_local_video_track-O",e.L_RTC_CLIENT_CREATE_LOCAL_FILE_TRACKS_O="L-rtc_client_create_local_file_tracks-O",e.L_RTC_CLIENT_CREATE_LOCAL_TRACKS_O="L-rtc_client_create_local_tracks-O",e.L_RTC_CLIENT_JOIN_LIVING_ROOM_AS_AUDIENCE_T="L-rtc_client_join_living_room_as_audience-T",e.L_RTC_CLIENT_JOIN_LIVING_ROOM_AS_AUDIENCE_R="L-tcclient_join_living_room_as_audience_R",e.L_RTC_CLIENT_LEAVE_LIVING_ROOM_AS_AUDIENCE_T="L-rtc_client_leave_living_room_as_audience-T",e.L_RTC_CLIENT_LEAVE_LIVING_ROOM_AS_AUDIENCE_R="L-rtc_client_leave_living_room_as_audience-R",e.L_RTC_CLIENT_UPGRADE_TO_ANCHOR_ROOM_T="L-rtc_client_upgrade_to_anchor_room-T",e.L_RTC_CLIENT_UPGRADE_TO_ANCHOR_ROOM_R="L-rtc_client_upgrade_to_anchor_room-R",e.L_RTC_CLIENT_DOWNGRADE_TO_AUDIENCE_ROOM_T="L-rtc_client_downgrade_to_audience_room-T",e.L_RTC_CLIENT_DOWNGRADE_TO_AUDIENCE_ROOM_R="L-rtc_client_downgrade_to_audience_room-R",e.L_RTC_CLIENT_GET_JOINED_ROOM_INFO_O="L-rtc_client_get_joined_room_info-O",e.L_AUDIENCE_CLIENT_SUBSCRIBE_T="L-audinence_client_subscribe-T",e.L_AUDIENCE_CLIENT_SUBSCRIBE_R="L-audinence_client_subscribe-R",e.L_AUDIENCE_CLIENT_UNSUBSCRIBE_T="L-audinence_client_unsubscribe-T",e.L_AUDIENCE_CLIENT_UNSUBSCRIBE_R="L-audinence_client_unsubscribe-R",e.L_PINGER_START_O="L-pinger_start-O",e.L_PINGER_STOP_O="L-pinger_stop-O",e.L_PINGER_TIMEOUT_O="L-pinger_timeout-O",e.L_ABSTRACT_ROOM_SEND_MESSAGE_T="L-abstract_room_send_message-T",e.L_ABSTRACT_ROOM_SEND_MESSAGE_R="L-abstract_room_send_message-R",e.L_ABSTRACT_ROOM_SET_ROOM_ATTRIBUTE_T="L-abstract_room_set_room_attribute-T",e.L_ABSTRACT_ROOM_SET_ROOM_ATTRIBUTE_R="L-abstract_room_set_room_attribute_R",e.L_ABSTRACT_ROOM_DELETE_ROOM_ATTRIBUTE_T="L-abstract_room_delete_room_attribute_T",e.L_ABSTRACT_ROOM_DELETE_ROOM_ATTRIBUTE_R="L-abstract_room_delete_room_attribute_R",e.L_ABSTRACT_ROOM_PUBLISH_T="L-abstract_room_publish-T",e.L_ABSTRACT_ROOM_PUBLISH_R="L-abstract_room_publish-R",e.L_ABSTRACT_ROOM_UNPUBLISH_T="L-abstract_room_unpublish-T",e.L_ABSTRACT_ROOM_UNPUBLISH_R="L-abstract_room_unpublish-R",e.L_ABSTRACT_ROOM_SUBSCRIBE_T="L-abstract_room_subscribe-T",e.L_ABSTRACT_ROOM_SUBSCRIBE_R="L-abstract_room_subscribe-R",e.L_ABSTRACT_ROOM_UNSUBSCRIBE_T="L-abstract_room_unsubscribe-T",e.L_ABSTRACT_ROOM_UNSUBSCRIBE_R="L-abstract_room_unsubscribe-R",e.L_ABSTRACT_ROOM_REGISTER_ROOM_EVENT_LISTENER_O="L-abstract_room_register_room_event_listener-O",e.L_ABSTRACT_ROOM_REGISTER_REPORT_LISTENER_O="L-abstract_room_register_report_listener-O",e.L_ABSTRACT_ROOM_AUDIO_LEVEL_O="L-abstract_room_audio_level-O",e.L_ABSTRACT_ROOM_RECONNECTED_T="L-abstract_room_reconnected-T",e.L_ABSTRACT_ROOM_RECONNECTED_R="L-abstract_room_reconnected-R",e.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O="L-abstract_room_call_app_listener-O",e.L_LIVING_ROOM_RECONNECTED_T="L-living_room_reconnected-T",e.L_LIVING_ROOM_RECONNECTED_R="L-living_room_reconnected-R",e.L_LIVING_ROOM_ENABLE_INNER_CDN_T="L-living_room_enable_inner_cdn-T",e.L_LIVING_ROOM_ENABLE_INNER_CDN_R="L-living_room_enable_inner_cdn-R",e.L_LIVING_ROOM_SPREAD_CDN_INFO_T="L-living_room_spread_cdn_info-T",e.L_LIVING_ROOM_SPREAD_CDN_INFO_R="L-living_room_spread_cdn_info-R",e.L_LIVING_ROOM_JOINED_PK_ROOM_T="L-living_room_joined_pk_room-T",e.L_LIVING_ROOM_JOINED_PK_ROOM_R="L-living_room_joined_pk_room-R",e.L_LIVING_ROOM_LEAVE_PK_ROOM_T="L-living_room_leave_pk_room-T",e.L_LIVING_ROOM_LEAVE_PK_ROOM_R="L-living_room_leave_pk_room-R",e.L_LIVING_ROOM_GET_ROOM_PK_HANDLER_O="L-living_room_get_room_pk_handler-O",e.L_LIVING_ROOM_QUIT_ALL_PK_ROOM_O="L-living_room_quit_all_pk_room-O",e.L_LIVING_PK_HANDLER_REGISTER_ROOM_PK_EVENT_LISTENER_O="L-living_pk_handler_register_room_pk_event_listener-O",e.L_LIVING_PK_HANDLER_REQUEST_JOIN_OTHER_ROOM_T="L-living_pk_handler_request_join_other_room-T",e.L_LIVING_PK_HANDLER_REQUEST_JOIN_OTHER_ROOM_R="L-living_pk_handler_request_join_other_room-R",e.L_LIVING_PK_HANDLER_CANCEL_REQUEST_JOIN_OTHER_ROOM_T="L-living_pk_handler_cancel_request_join_other_room-T",e.L_LIVING_PK_HANDLER_CANCEL_REQUEST_JOIN_OTHER_ROOM_R="L-living_pk_handler_cancel_request_join_other_room-R",e.L_LIVING_PK_HANDLER_RESPONSE_JOIN_OTHER_ROOM_T="L-living_pk_handler_response_join_other_room-T",e.L_LIVING_PK_HANDLER_RESPONSE_JOIN_OTHER_ROOM_R="L-living_pk_handler_response_join_other_room-R",e.L_LIVING_PK_HANDLER_JOIN_OTHER_ROOM_T="L-living_pk_handler_join_other_room-T",e.L_LIVING_PK_HANDLER_JOIN_OTHER_ROOM_R="L-living_pk_handler_join_other_room-R",e.L_LIVING_PK_HANDLER_LEAVE_OTHER_ROOM_T="L-living_pk_handler_leave_other_room-T",e.L_LIVING_PK_HANDLER_LEAVE_OTHER_ROOM_R="L-living_pk_handler_leave_other_room-R",e.L_AUDIENCE_LIVING_ROOM_SINGAL_DATA_CHANGE_T="L-audience_living_room_singal_data_change-T",e.L_AUDIENCE_LIVING_ROOM_SINGAL_DATA_CHANGE_R="L-audience_living_room_singal_data_change-R",e.L_AUDIENCE_LIVING_ROOM_GET_CDN_PLAY_URL_T="L-audience_living_room_get_cdn_play_url-T",e.L_AUDIENCE_LIVING_ROOM_GET_CDN_PLAY_URL_R="L-audience_living_room_get_cdn_play_url-R",e.L_AUDIENCE_LIVING_ROOM_SUBSCRIBE_T="L-audience_living_room_subscribe-T",e.L_AUDIENCE_LIVING_ROOM_SUBSCRIBE_R="L-audience_living_room_subscribe-R",e.L_AUDIENCE_LIVING_ROOM_UNSUBSCRIBE_T="L-audience_living_room_unsubscribe-T",e.L_AUDIENCE_LIVING_ROOM_UNSUBSCRIBE_R="L-audience_living_room_unsubscribe-R",e.L_AUDIENCE_LIVING_ROOM_AUDIO_LEVEL_CHANGE_O="L-audience_living_room_audio_level_change-O",e.L_MCU_CONFIG_BUILDER_SET_HOST_VIDEO_TRACK_O="L-mcu_config_builder_set_host_video_track-O",e.L_MCU_CONFIG_BUILDER_SET_MIX_LAYOUT_MODE_O="L-mcu_config_builder_set_mix_layout_mode-O",e.L_MCU_CONFIG_BUILDER_SET_OUTPUT_VIDEO_RESOLUTION_O="L-mcu_config_builder_set_output_video_resolution-O",e.L_MCU_CONFIG_BUILDER_SET_OUTPUT_VIDEO_FPS_O="L-mcu_config_builder_set_output_video_fps-O",e.L_MCU_CONFIG_BUILDER_SET_OUTPUT_VIDEO_BITRATE_O="L-mcu_config_builder_set_output_video_bitrate-O",e.L_MCU_CONFIG_BUILDER_SET_OUTPUT_TINY_VIDEO_RESOLUTION_O="L-mcu_config_builder_set_output_tiny_video_resolution-O",e.L_MCU_CONFIG_BUILDER_SET_OUTPUT_TINY_VIDEO_FPS_O="L-mcu_config_builder_set_output_tiny_video_fps-O",e.L_MCU_CONFIG_BUILDER_SET_OUTPUT_TINY_VIDEO_BITRATE_O="L-mcu_config_builder_set_output_tiny_video_bitrate-O",e.L_MCU_CONFIG_BUILDER_SET_OUTPUT_VIDEO_RENDER_MODE_O="L-mcu_config_builder_set_output_video_render_mode-O",e.L_MCU_CONFIG_BUILDER_SET_OUTPUT_AUDIO_BITRATE_O="L-mcu_config_builder_set_output_audio_bitrate-O",e.L_MCU_CONFIG_BUILDER_SET_OUTPUT_BACKGROUND_COLOR_O="L-mcu_config_builder_set_output_background_color-O",e.L_MCU_CONFIG_BUILDER_SET_OUTPUT_BACKGROUND_PICTURE_O="L-mcu_config_builder_add_output_background_picture-O",e.L_MCU_CONFIG_BUILDER_REMOVE_OUTPUT_BACKGROUND_PICTURE_O="L-mcu_config_builder_remove_output_background_picture-O",e.L_MCU_CONFIG_BUILDER_CLEAR_OUTPUT_BACKGROUND_PICTURE_O="L-mcu_config_builder_clear_output_background_picture-O",e.L_MCU_CONFIG_BUILDER_SET_OUTPUT_BACKGROUND_PICTURE_FILL_MODE_O="L-mcu_config_builder_set_output_background_picture-fill-mode-O",e.L_MCU_CONFIG_BUILDER_ADD_PUBLISH_STREAM_URLS_O="L-mcu_config_builder_add_publish_stream_urls-O",e.L_MCU_CONFIG_BUILDER_REMOVE_PUBLISH_STREAM_URLS_O="L-mcu_config_builder_remove_publish_stream_urls-O",e.L_MCU_CONFIG_BUILDER_CLEAR_PUBLISH_STREAM_URLS_O="L-mcu_config_builder_clear_publish_stream_urls-O",e.L_MCU_CONFIG_BUILDER_ADD_CUSTOMIZE_LAYOUT_VIDEO_O="L-mcu_config_builder_add_customize_layout_video-O",e.L_MCU_CONFIG_BUILDER_REMOVE_CUSTOMIZE_LAYOUT_VIDEO_O="L-mcu_config_builder_remove_customize_layout_video-O",e.L_MCU_CONFIG_BUILDER_CLEAR_CUSTOMIZE_LAYOUT_VIDEO_O="L-mcu_config_builder_clear_customize_layout_video-O",e.L_MCU_CONFIG_BUILDER_SET_CUSTOMIZE_INPUT_AUDIO_O="L-mcu_config_builder_set_customize_input_audio-O",e.L_MCU_CONFIG_BUILDER_ADD_CUSTOMIZE_INPUT_AUDIO_O="L-mcu_config_builder_add_customize_input_audio-O",e.L_MCU_CONFIG_BUILDER_REMOVE_CUSTOMIZE_INPUT_AUDIO_O="L-mcu_config_builder_remove_customize_input_audio-O",e.L_MCU_CONFIG_BUILDER_CLEAR_CUSTOMIZE_INPUT_AUDIO_O="L-mcu_config_builder_clear_customize_input_audio-O",e.L_MCU_CONFIG_BUILDER_RESET_O="L-mcu_config_builder_reset-O",e.L_MCU_CONFIG_BUILDER_FLUSH_O="L-mcu_config_builder_flush-O",e.L_MCU_CONFIG_BUILDER_ADD_SINGLE_WATER_MARK_O="L-mcu_config_builder_add_single_water_mark-O",e.L_MCU_CONFIG_BUILDER_REMOVE_SINGLE_WATER_MARK_O="L-mcu_config_builder_remove_single_water_mark-O",e.L_MCU_CONFIG_BUILDER_CLEAR_SINGLE_WATER_MARK_O="L-mcu_config_builder_clear_single_water_mark-O",e.L_MEDIA_SERVICE_SET_MCU_CONFIG_T="L-media_service_set_mcu_config-T",e.L_MEDIA_SERVICE_SET_MCU_CONFIG_R="L-media_service_set_mcu_config-R",e.L_MEDIA_SERVICE_GET_CDN_RESOURCE_INFO_T="L-media_service_get_cnd_resource_info-T",e.L_MEDIA_SERVICE_GET_CDN_RESOURCE_INFO_R="L-media_service_get_cnd_resource_info-R",e.L_MEDIA_SERVICE_REQUEST_T="L-media_service_request-T",e.L_MEDIA_SERVICE_REQUEST_R="L-media_service_request-R",e.L_LOCAL_TRACK_INNER_SET_PUBLISHED_O="L-loacl_track_inner_set_published-O",e.L_LOCAL_TRACK_DESTROY_O="L-loacl_track_destroy-O",e.L_LOCAL_TRACK_SET_BITRATE_O="L-loacl_track_set_bitrate-O",e.L_LOCAL_TRACK_SET_LOCAL_MUTED_O="L-loacl_track_set_local_muted-O",e.L_TRACK_PLAY_T="L-track_play-T",e.L_TRACK_PLAY_R="L-track_play-R",e.L_TRACK_MUTE_O="L-track_mute-O",e.L_TRACK_UNMUTE_O="L-track_unmute-O",e.L_REMOTE_TRACK_INNER_SET_SUBSCRIBED_O="L-remote_track_inner_set_subscribed-O",e.L_ABSTRACT_STAT_PARSER_FORMAT_RTC_STATE_REPORT_O="L-abstract_stat_parser_format_rtc_state_report-O",e.L_A_SDP_STRATEGY_SET_SDP_SEMANTICS_O="L-a_sdp_strategy_set_sdp_semantics-O",e.L_A_SDP_STRATEGY_SET_REMOTE_ANSWER_O="L-a_sdp_strategy_set_remote_answer-O",e.L_RTC_PEER_CONNECTION_GET_STATS_DATA_O="L-rtc_peer_connection_get_stats_data-O",e.L_RTC_PEER_CONNECTION_ADD_LOCAL_TRACK_O="L-rtc_peer_connection_add_local_track-O",e.L_RTC_PEER_CONNECTION_GET_LOCAL_TRACKS_O="L-rtc_peer_connection_get_local_tracks-O",e.L_RTC_PEER_CONNECTION_ICE_CONNECTION_STATE_S="L-rtc_peer_connection_ice_connection_state-S",e.L_RTC_PEER_CONNECTION_CONNECTION_STATE_S="L-rtc_peer_connection_connection_state-S",e.L_RTC_PEER_CONNECTION_SET_BITRATE_O="L-rtc_peer_connection_set_bitrate-O",e.L_RTC_PEER_CONNECTION_CREATE_OFFER_O="L-rtc_peer_connection_create_offer-O",e.L_RTC_PEER_CONNECTION_SET_REMOTE_ANSWER_O="L-rtc_peer_connection_set_remote_answer-O",e.L_RTC_PEER_CONNECTION_REMOVE_LOCAL_TRACK_BY_ID_O="L-rtc_peer_connection_remove_local_track_by_id-O",e.L_RTC_PEER_CONNECTION_REMOVE_ALL_LOCAL_TRACK_O="L-rtc_peer_connection_remove_all_local_track-O",e.L_RTC_PEER_CONNECTION_REMOVE_LOCAL_TRACK_O="L-rtc_peer_connection_remove_local_track-O",e.L_RTC_PEER_CONNECTION_UPDATE_SUB_REMOTE_TRACKS_O="L-rtc_peer_connection_update_sub_remote_tracks-O",e.L_RTC_PEER_CONNECTION_LOCAL_TRACK_MUTED_O="L-rtc_peer_connection_local_track_muted-O",e.L_RTC_PEER_CONNECTION_DESTROY_O="L-rtc_peer_connection_destroy-O",e.L_RTC_SET_RECOMMEND_BITRATE_O="L_rtc_set_recommend_bitrate_O",e.L_RTC_SDP_BITRATE_O="L_rtc_sdp_bitrate_O",e.L_RTC_3ANOISE_NODE_O="L_RTC_AAAnoiseNode_O",e.L_RTC_3ANOISE_NODE_E="L_RTC_AAAnoiseNode_E",e.L_RTC_3ANOISE_NODE_STOP_O="L_RTC_AAAnoiseNode_Stop_O",e.L_RTC_CLIENT_JOIN_CROSS_RTC_ROOM_T="L_rtc_client_join_cross_rtc_room_T",e.L_RTC_CLIENT_JOIN_CROSS_RTC_ROOM_R="L_rtc_client_join_cross_rtc_room_R"}(i||(i={})),function(e){e.FAILED="fail",e.SUCCESSED="success",e.TIMEOUT="timeout",e.INFO="info"}(s||(s={}));let n=!0,a=!0;function c(e,t,r){const o=e.match(t);return o&&o.length>=r&&parseInt(o[r],10)}function d(e,t,r){if(!e.RTCPeerConnection)return;const o=e.RTCPeerConnection.prototype,i=o.addEventListener;o.addEventListener=function(e,o){if(e!==t)return i.apply(this,arguments);const s=e=>{const t=r(e);t&&(o.handleEvent?o.handleEvent(t):o(t))};return this._eventMap=this._eventMap||{},this._eventMap[t]||(this._eventMap[t]=new Map),this._eventMap[t].set(o,s),i.apply(this,[e,s])};const s=o.removeEventListener;o.removeEventListener=function(e,r){if(e!==t||!this._eventMap||!this._eventMap[t])return s.apply(this,arguments);if(!this._eventMap[t].has(r))return s.apply(this,arguments);const o=this._eventMap[t].get(r);return this._eventMap[t].delete(r),0===this._eventMap[t].size&&delete this._eventMap[t],0===Object.keys(this._eventMap).length&&delete this._eventMap,s.apply(this,[e,o])},Object.defineProperty(o,"on"+t,{get(){return this["_on"+t]},set(e){this["_on"+t]&&(this.removeEventListener(t,this["_on"+t]),delete this["_on"+t]),e&&this.addEventListener(t,this["_on"+t]=e)},enumerable:!0,configurable:!0})}function u(e){return"boolean"!=typeof e?new Error("Argument type: "+typeof e+". Please use a boolean."):(n=e,e?"adapter.js logging disabled":"adapter.js logging enabled")}function _(e){return"boolean"!=typeof e?new Error("Argument type: "+typeof e+". Please use a boolean."):(a=!e,"adapter.js deprecation warnings "+(e?"disabled":"enabled"))}function l(){if("object"==typeof window){if(n)return;"undefined"!=typeof console&&"function"==typeof console.log&&console.log.apply(console,arguments)}}function R(e,t){a&&console.warn(e+" is deprecated, please use "+t+" instead.")}function C(e){return"[object Object]"===Object.prototype.toString.call(e)}function p(e){return C(e)?Object.keys(e).reduce((function(t,r){const o=C(e[r]),i=o?p(e[r]):e[r],s=o&&!Object.keys(i).length;return void 0===i||s?t:Object.assign(t,{[r]:i})}),{}):e}function h(e,t,r){t&&!r.has(t.id)&&(r.set(t.id,t),Object.keys(t).forEach((o=>{o.endsWith("Id")?h(e,e.get(t[o]),r):o.endsWith("Ids")&&t[o].forEach((t=>{h(e,e.get(t),r)}))})))}function g(e,t,r){const o=r?"outbound-rtp":"inbound-rtp",i=new Map;if(null===t)return i;const s=[];return e.forEach((e=>{"track"===e.type&&e.trackIdentifier===t.id&&s.push(e)})),s.forEach((t=>{e.forEach((r=>{r.type===o&&r.trackId===t.id&&h(e,r,i)}))})),i}const T=l;function m(e,t){const r=e&&e.navigator;if(!r.mediaDevices)return;const o=function(e){if("object"!=typeof e||e.mandatory||e.optional)return e;const t={};return Object.keys(e).forEach((r=>{if("require"===r||"advanced"===r||"mediaSource"===r)return;const o="object"==typeof e[r]?e[r]:{ideal:e[r]};void 0!==o.exact&&"number"==typeof o.exact&&(o.min=o.max=o.exact);const i=function(e,t){return e?e+t.charAt(0).toUpperCase()+t.slice(1):"deviceId"===t?"sourceId":t};if(void 0!==o.ideal){t.optional=t.optional||[];let e={};"number"==typeof o.ideal?(e[i("min",r)]=o.ideal,t.optional.push(e),e={},e[i("max",r)]=o.ideal,t.optional.push(e)):(e[i("",r)]=o.ideal,t.optional.push(e))}void 0!==o.exact&&"number"!=typeof o.exact?(t.mandatory=t.mandatory||{},t.mandatory[i("",r)]=o.exact):["min","max"].forEach((e=>{void 0!==o[e]&&(t.mandatory=t.mandatory||{},t.mandatory[i(e,r)]=o[e])}))})),e.advanced&&(t.optional=(t.optional||[]).concat(e.advanced)),t},i=function(e,i){if(t.version>=61)return i(e);if((e=JSON.parse(JSON.stringify(e)))&&"object"==typeof e.audio){const t=function(e,t,r){t in e&&!(r in e)&&(e[r]=e[t],delete e[t])};t((e=JSON.parse(JSON.stringify(e))).audio,"autoGainControl","googAutoGainControl"),t(e.audio,"noiseSuppression","googNoiseSuppression"),e.audio=o(e.audio)}if(e&&"object"==typeof e.video){let s=e.video.facingMode;s=s&&("object"==typeof s?s:{ideal:s});const n=t.version<66;if(s&&("user"===s.exact||"environment"===s.exact||"user"===s.ideal||"environment"===s.ideal)&&(!r.mediaDevices.getSupportedConstraints||!r.mediaDevices.getSupportedConstraints().facingMode||n)){let t;if(delete e.video.facingMode,"environment"===s.exact||"environment"===s.ideal?t=["back","rear"]:"user"!==s.exact&&"user"!==s.ideal||(t=["front"]),t)return r.mediaDevices.enumerateDevices().then((r=>{let n=(r=r.filter((e=>"videoinput"===e.kind))).find((e=>t.some((t=>e.label.toLowerCase().includes(t)))));return!n&&r.length&&t.includes("back")&&(n=r[r.length-1]),n&&(e.video.deviceId=s.exact?{exact:n.deviceId}:{ideal:n.deviceId}),e.video=o(e.video),T("chrome: "+JSON.stringify(e)),i(e)}))}e.video=o(e.video)}return T("chrome: "+JSON.stringify(e)),i(e)},s=function(e){return t.version>=64?e:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[e.name]||e.name,message:e.message,constraint:e.constraint||e.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}};if(r.getUserMedia=function(e,t,o){i(e,(e=>{r.webkitGetUserMedia(e,t,(e=>{o&&o(s(e))}))}))}.bind(r),r.mediaDevices.getUserMedia){const e=r.mediaDevices.getUserMedia.bind(r.mediaDevices);r.mediaDevices.getUserMedia=function(t){return i(t,(t=>e(t).then((e=>{if(t.audio&&!e.getAudioTracks().length||t.video&&!e.getVideoTracks().length)throw e.getTracks().forEach((e=>{e.stop()})),new DOMException("","NotFoundError");return e}),(e=>Promise.reject(s(e))))))}}}function S(e){e.MediaStream=e.MediaStream||e.webkitMediaStream}function I(e){if("object"==typeof e&&e.RTCPeerConnection&&!("ontrack"in e.RTCPeerConnection.prototype)){Object.defineProperty(e.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(e){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=e)},enumerable:!0,configurable:!0});const t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=t=>{t.stream.addEventListener("addtrack",(r=>{let o;o=e.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find((e=>e.track&&e.track.id===r.track.id)):{track:r.track};const i=new Event("track");i.track=r.track,i.receiver=o,i.transceiver={receiver:o},i.streams=[t.stream],this.dispatchEvent(i)})),t.stream.getTracks().forEach((r=>{let o;o=e.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find((e=>e.track&&e.track.id===r.id)):{track:r};const i=new Event("track");i.track=r,i.receiver=o,i.transceiver={receiver:o},i.streams=[t.stream],this.dispatchEvent(i)}))},this.addEventListener("addstream",this._ontrackpoly)),t.apply(this,arguments)}}else d(e,"track",(e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e)))}function E(e){if("object"==typeof e&&e.RTCPeerConnection&&!("getSenders"in e.RTCPeerConnection.prototype)&&"createDTMFSender"in e.RTCPeerConnection.prototype){const t=function(e,t){return{track:t,get dtmf(){return void 0===this._dtmf&&("audio"===t.kind?this._dtmf=e.createDTMFSender(t):this._dtmf=null),this._dtmf},_pc:e}};if(!e.RTCPeerConnection.prototype.getSenders){e.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};const r=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,o){let i=r.apply(this,arguments);return i||(i=t(this,e),this._senders.push(i)),i};const o=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){o.apply(this,arguments);const t=this._senders.indexOf(e);-1!==t&&this._senders.splice(t,1)}}const r=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._senders=this._senders||[],r.apply(this,[e]),e.getTracks().forEach((e=>{this._senders.push(t(this,e))}))};const o=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){this._senders=this._senders||[],o.apply(this,[e]),e.getTracks().forEach((e=>{const t=this._senders.find((t=>t.track===e));t&&this._senders.splice(this._senders.indexOf(t),1)}))}}else if("object"==typeof e&&e.RTCPeerConnection&&"getSenders"in e.RTCPeerConnection.prototype&&"createDTMFSender"in e.RTCPeerConnection.prototype&&e.RTCRtpSender&&!("dtmf"in e.RTCRtpSender.prototype)){const t=e.RTCPeerConnection.prototype.getSenders;e.RTCPeerConnection.prototype.getSenders=function(){const e=t.apply(this,[]);return e.forEach((e=>e._pc=this)),e},Object.defineProperty(e.RTCRtpSender.prototype,"dtmf",{get(){return void 0===this._dtmf&&("audio"===this.track.kind?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function f(e){if(!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){const[e,r,o]=arguments;if(arguments.length>0&&"function"==typeof e)return t.apply(this,arguments);if(0===t.length&&(0===arguments.length||"function"!=typeof e))return t.apply(this,[]);const i=function(e){const t={};return e.result().forEach((e=>{const r={id:e.id,timestamp:e.timestamp,type:{localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[e.type]||e.type};e.names().forEach((t=>{r[t]=e.stat(t)})),t[r.id]=r})),t},s=function(e){return new Map(Object.keys(e).map((t=>[t,e[t]])))};if(arguments.length>=2){const o=function(e){r(s(i(e)))};return t.apply(this,[o,e])}return new Promise(((e,r)=>{t.apply(this,[function(t){e(s(i(t)))},r])})).then(r,o)}}function L(e){if(!("object"==typeof e&&e.RTCPeerConnection&&e.RTCRtpSender&&e.RTCRtpReceiver))return;if(!("getStats"in e.RTCRtpSender.prototype)){const t=e.RTCPeerConnection.prototype.getSenders;t&&(e.RTCPeerConnection.prototype.getSenders=function(){const e=t.apply(this,[]);return e.forEach((e=>e._pc=this)),e});const r=e.RTCPeerConnection.prototype.addTrack;r&&(e.RTCPeerConnection.prototype.addTrack=function(){const e=r.apply(this,arguments);return e._pc=this,e}),e.RTCRtpSender.prototype.getStats=function(){const e=this;return this._pc.getStats().then((t=>g(t,e.track,!0)))}}if(!("getStats"in e.RTCRtpReceiver.prototype)){const t=e.RTCPeerConnection.prototype.getReceivers;t&&(e.RTCPeerConnection.prototype.getReceivers=function(){const e=t.apply(this,[]);return e.forEach((e=>e._pc=this)),e}),d(e,"track",(e=>(e.receiver._pc=e.srcElement,e))),e.RTCRtpReceiver.prototype.getStats=function(){const e=this;return this._pc.getStats().then((t=>g(t,e.track,!1)))}}if(!("getStats"in e.RTCRtpSender.prototype)||!("getStats"in e.RTCRtpReceiver.prototype))return;const t=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof e.MediaStreamTrack){const e=arguments[0];let t,r,o;return this.getSenders().forEach((r=>{r.track===e&&(t?o=!0:t=r)})),this.getReceivers().forEach((t=>(t.track===e&&(r?o=!0:r=t),t.track===e))),o||t&&r?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):t?t.getStats():r?r.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return t.apply(this,arguments)}}function v(e){e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map((e=>this._shimmedLocalStreams[e][0]))};const t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,r){if(!r)return t.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};const o=t.apply(this,arguments);return this._shimmedLocalStreams[r.id]?-1===this._shimmedLocalStreams[r.id].indexOf(o)&&this._shimmedLocalStreams[r.id].push(o):this._shimmedLocalStreams[r.id]=[r,o],o};const r=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._shimmedLocalStreams=this._shimmedLocalStreams||{},e.getTracks().forEach((e=>{if(this.getSenders().find((t=>t.track===e)))throw new DOMException("Track already exists.","InvalidAccessError")}));const t=this.getSenders();r.apply(this,arguments);const o=this.getSenders().filter((e=>-1===t.indexOf(e)));this._shimmedLocalStreams[e.id]=[e].concat(o)};const o=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[e.id],o.apply(this,arguments)};const i=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},e&&Object.keys(this._shimmedLocalStreams).forEach((t=>{const r=this._shimmedLocalStreams[t].indexOf(e);-1!==r&&this._shimmedLocalStreams[t].splice(r,1),1===this._shimmedLocalStreams[t].length&&delete this._shimmedLocalStreams[t]})),i.apply(this,arguments)}}function O(e,t){if(!e.RTCPeerConnection)return;if(e.RTCPeerConnection.prototype.addTrack&&t.version>=65)return v(e);const r=e.RTCPeerConnection.prototype.getLocalStreams;e.RTCPeerConnection.prototype.getLocalStreams=function(){const e=r.apply(this);return this._reverseStreams=this._reverseStreams||{},e.map((e=>this._reverseStreams[e.id]))};const o=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(t){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},t.getTracks().forEach((e=>{if(this.getSenders().find((t=>t.track===e)))throw new DOMException("Track already exists.","InvalidAccessError")})),!this._reverseStreams[t.id]){const r=new e.MediaStream(t.getTracks());this._streams[t.id]=r,this._reverseStreams[r.id]=t,t=r}o.apply(this,[t])};const i=e.RTCPeerConnection.prototype.removeStream;function s(e,t){let r=t.sdp;return Object.keys(e._reverseStreams||[]).forEach((t=>{const o=e._reverseStreams[t],i=e._streams[o.id];r=r.replace(new RegExp(i.id,"g"),o.id)})),new RTCSessionDescription({type:t.type,sdp:r})}function n(e,t){let r=t.sdp;return Object.keys(e._reverseStreams||[]).forEach((t=>{const o=e._reverseStreams[t],i=e._streams[o.id];r=r.replace(new RegExp(o.id,"g"),i.id)})),new RTCSessionDescription({type:t.type,sdp:r})}e.RTCPeerConnection.prototype.removeStream=function(e){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},i.apply(this,[this._streams[e.id]||e]),delete this._reverseStreams[this._streams[e.id]?this._streams[e.id].id:e.id],delete this._streams[e.id]},e.RTCPeerConnection.prototype.addTrack=function(t,r){if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");const o=[].slice.call(arguments,1);if(1!==o.length||!o[0].getTracks().find((e=>e===t)))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");const i=this.getSenders().find((e=>e.track===t));if(i)throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};const s=this._streams[r.id];if(s)s.addTrack(t),Promise.resolve().then((()=>{this.dispatchEvent(new Event("negotiationneeded"))}));else{const o=new e.MediaStream([t]);this._streams[r.id]=o,this._reverseStreams[o.id]=r,this.addStream(o)}return this.getSenders().find((e=>e.track===t))},["createOffer","createAnswer"].forEach((function(t){const r=e.RTCPeerConnection.prototype[t],o={[t](){const e=arguments;return arguments.length&&"function"==typeof arguments[0]?r.apply(this,[t=>{const r=s(this,t);e[0].apply(null,[r])},t=>{e[1]&&e[1].apply(null,t)},arguments[2]]):r.apply(this,arguments).then((e=>s(this,e)))}};e.RTCPeerConnection.prototype[t]=o[t]}));const a=e.RTCPeerConnection.prototype.setLocalDescription;e.RTCPeerConnection.prototype.setLocalDescription=function(){return arguments.length&&arguments[0].type?(arguments[0]=n(this,arguments[0]),a.apply(this,arguments)):a.apply(this,arguments)};const c=Object.getOwnPropertyDescriptor(e.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(e.RTCPeerConnection.prototype,"localDescription",{get(){const e=c.get.apply(this);return""===e.type?e:s(this,e)}}),e.RTCPeerConnection.prototype.removeTrack=function(e){if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!e._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(!(e._pc===this))throw new DOMException("Sender was not created by this connection.","InvalidAccessError");let t;this._streams=this._streams||{},Object.keys(this._streams).forEach((r=>{this._streams[r].getTracks().find((t=>e.track===t))&&(t=this._streams[r])})),t&&(1===t.getTracks().length?this.removeStream(this._reverseStreams[t.id]):t.removeTrack(e.track),this.dispatchEvent(new Event("negotiationneeded")))}}function A(e,t){!e.RTCPeerConnection&&e.webkitRTCPeerConnection&&(e.RTCPeerConnection=e.webkitRTCPeerConnection),e.RTCPeerConnection&&t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach((function(t){const r=e.RTCPeerConnection.prototype[t],o={[t](){return arguments[0]=new("addIceCandidate"===t?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),r.apply(this,arguments)}};e.RTCPeerConnection.prototype[t]=o[t]}))}function N(e,t){d(e,"negotiationneeded",(e=>{const r=e.target;if(!(t.version<72||r.getConfiguration&&"plan-b"===r.getConfiguration().sdpSemantics)||"stable"===r.signalingState)return e}))}var D=Object.freeze({__proto__:null,shimMediaStream:S,shimOnTrack:I,shimGetSendersWithDtmf:E,shimGetStats:f,shimSenderReceiverGetStats:L,shimAddTrackRemoveTrackWithNative:v,shimAddTrackRemoveTrack:O,shimPeerConnection:A,fixNegotiationNeeded:N,shimGetUserMedia:m,shimGetDisplayMedia:function(e,t){e.navigator.mediaDevices&&"getDisplayMedia"in e.navigator.mediaDevices||e.navigator.mediaDevices&&("function"==typeof t?e.navigator.mediaDevices.getDisplayMedia=function(r){return t(r).then((t=>{const o=r.video&&r.video.width,i=r.video&&r.video.height,s=r.video&&r.video.frameRate;return r.video={mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:t,maxFrameRate:s||3}},o&&(r.video.mandatory.maxWidth=o),i&&(r.video.mandatory.maxHeight=i),e.navigator.mediaDevices.getUserMedia(r)}))}:console.error("shimGetDisplayMedia: getSourceId argument is not a function"))}});var k,y,b=(k=function(e){var t={generateIdentifier:function(){return Math.random().toString(36).substr(2,10)}};t.localCName=t.generateIdentifier(),t.splitLines=function(e){return e.trim().split("\n").map((function(e){return e.trim()}))},t.splitSections=function(e){return e.split("\nm=").map((function(e,t){return(t>0?"m="+e:e).trim()+"\r\n"}))},t.getDescription=function(e){var r=t.splitSections(e);return r&&r[0]},t.getMediaSections=function(e){var r=t.splitSections(e);return r.shift(),r},t.matchPrefix=function(e,r){return t.splitLines(e).filter((function(e){return 0===e.indexOf(r)}))},t.parseCandidate=function(e){for(var t,r={foundation:(t=0===e.indexOf("a=candidate:")?e.substring(12).split(" "):e.substring(10).split(" "))[0],component:parseInt(t[1],10),protocol:t[2].toLowerCase(),priority:parseInt(t[3],10),ip:t[4],address:t[4],port:parseInt(t[5],10),type:t[7]},o=8;o<t.length;o+=2)switch(t[o]){case"raddr":r.relatedAddress=t[o+1];break;case"rport":r.relatedPort=parseInt(t[o+1],10);break;case"tcptype":r.tcpType=t[o+1];break;case"ufrag":r.ufrag=t[o+1],r.usernameFragment=t[o+1];break;default:r[t[o]]=t[o+1]}return r},t.writeCandidate=function(e){var t=[];t.push(e.foundation),t.push(e.component),t.push(e.protocol.toUpperCase()),t.push(e.priority),t.push(e.address||e.ip),t.push(e.port);var r=e.type;return t.push("typ"),t.push(r),"host"!==r&&e.relatedAddress&&e.relatedPort&&(t.push("raddr"),t.push(e.relatedAddress),t.push("rport"),t.push(e.relatedPort)),e.tcpType&&"tcp"===e.protocol.toLowerCase()&&(t.push("tcptype"),t.push(e.tcpType)),(e.usernameFragment||e.ufrag)&&(t.push("ufrag"),t.push(e.usernameFragment||e.ufrag)),"candidate:"+t.join(" ")},t.parseIceOptions=function(e){return e.substr(14).split(" ")},t.parseRtpMap=function(e){var t=e.substr(9).split(" "),r={payloadType:parseInt(t.shift(),10)};return t=t[0].split("/"),r.name=t[0],r.clockRate=parseInt(t[1],10),r.channels=3===t.length?parseInt(t[2],10):1,r.numChannels=r.channels,r},t.writeRtpMap=function(e){var t=e.payloadType;void 0!==e.preferredPayloadType&&(t=e.preferredPayloadType);var r=e.channels||e.numChannels||1;return"a=rtpmap:"+t+" "+e.name+"/"+e.clockRate+(1!==r?"/"+r:"")+"\r\n"},t.parseExtmap=function(e){var t=e.substr(9).split(" ");return{id:parseInt(t[0],10),direction:t[0].indexOf("/")>0?t[0].split("/")[1]:"sendrecv",uri:t[1]}},t.writeExtmap=function(e){return"a=extmap:"+(e.id||e.preferredId)+(e.direction&&"sendrecv"!==e.direction?"/"+e.direction:"")+" "+e.uri+"\r\n"},t.parseFmtp=function(e){for(var t,r={},o=e.substr(e.indexOf(" ")+1).split(";"),i=0;i<o.length;i++)r[(t=o[i].trim().split("="))[0].trim()]=t[1];return r},t.writeFmtp=function(e){var t="",r=e.payloadType;if(void 0!==e.preferredPayloadType&&(r=e.preferredPayloadType),e.parameters&&Object.keys(e.parameters).length){var o=[];Object.keys(e.parameters).forEach((function(t){e.parameters[t]?o.push(t+"="+e.parameters[t]):o.push(t)})),t+="a=fmtp:"+r+" "+o.join(";")+"\r\n"}return t},t.parseRtcpFb=function(e){var t=e.substr(e.indexOf(" ")+1).split(" ");return{type:t.shift(),parameter:t.join(" ")}},t.writeRtcpFb=function(e){var t="",r=e.payloadType;return void 0!==e.preferredPayloadType&&(r=e.preferredPayloadType),e.rtcpFeedback&&e.rtcpFeedback.length&&e.rtcpFeedback.forEach((function(e){t+="a=rtcp-fb:"+r+" "+e.type+(e.parameter&&e.parameter.length?" "+e.parameter:"")+"\r\n"})),t},t.parseSsrcMedia=function(e){var t=e.indexOf(" "),r={ssrc:parseInt(e.substr(7,t-7),10)},o=e.indexOf(":",t);return o>-1?(r.attribute=e.substr(t+1,o-t-1),r.value=e.substr(o+1)):r.attribute=e.substr(t+1),r},t.parseSsrcGroup=function(e){var t=e.substr(13).split(" ");return{semantics:t.shift(),ssrcs:t.map((function(e){return parseInt(e,10)}))}},t.getMid=function(e){var r=t.matchPrefix(e,"a=mid:")[0];if(r)return r.substr(6)},t.parseFingerprint=function(e){var t=e.substr(14).split(" ");return{algorithm:t[0].toLowerCase(),value:t[1]}},t.getDtlsParameters=function(e,r){return{role:"auto",fingerprints:t.matchPrefix(e+r,"a=fingerprint:").map(t.parseFingerprint)}},t.writeDtlsParameters=function(e,t){var r="a=setup:"+t+"\r\n";return e.fingerprints.forEach((function(e){r+="a=fingerprint:"+e.algorithm+" "+e.value+"\r\n"})),r},t.parseCryptoLine=function(e){var t=e.substr(9).split(" ");return{tag:parseInt(t[0],10),cryptoSuite:t[1],keyParams:t[2],sessionParams:t.slice(3)}},t.writeCryptoLine=function(e){return"a=crypto:"+e.tag+" "+e.cryptoSuite+" "+("object"==typeof e.keyParams?t.writeCryptoKeyParams(e.keyParams):e.keyParams)+(e.sessionParams?" "+e.sessionParams.join(" "):"")+"\r\n"},t.parseCryptoKeyParams=function(e){if(0!==e.indexOf("inline:"))return null;var t=e.substr(7).split("|");return{keyMethod:"inline",keySalt:t[0],lifeTime:t[1],mkiValue:t[2]?t[2].split(":")[0]:void 0,mkiLength:t[2]?t[2].split(":")[1]:void 0}},t.writeCryptoKeyParams=function(e){return e.keyMethod+":"+e.keySalt+(e.lifeTime?"|"+e.lifeTime:"")+(e.mkiValue&&e.mkiLength?"|"+e.mkiValue+":"+e.mkiLength:"")},t.getCryptoParameters=function(e,r){return t.matchPrefix(e+r,"a=crypto:").map(t.parseCryptoLine)},t.getIceParameters=function(e,r){var o=t.matchPrefix(e+r,"a=ice-ufrag:")[0],i=t.matchPrefix(e+r,"a=ice-pwd:")[0];return o&&i?{usernameFragment:o.substr(12),password:i.substr(10)}:null},t.writeIceParameters=function(e){return"a=ice-ufrag:"+e.usernameFragment+"\r\na=ice-pwd:"+e.password+"\r\n"},t.parseRtpParameters=function(e){for(var r={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},o=t.splitLines(e)[0].split(" "),i=3;i<o.length;i++){var s=o[i],n=t.matchPrefix(e,"a=rtpmap:"+s+" ")[0];if(n){var a=t.parseRtpMap(n),c=t.matchPrefix(e,"a=fmtp:"+s+" ");switch(a.parameters=c.length?t.parseFmtp(c[0]):{},a.rtcpFeedback=t.matchPrefix(e,"a=rtcp-fb:"+s+" ").map(t.parseRtcpFb),r.codecs.push(a),a.name.toUpperCase()){case"RED":case"ULPFEC":r.fecMechanisms.push(a.name.toUpperCase())}}}return t.matchPrefix(e,"a=extmap:").forEach((function(e){r.headerExtensions.push(t.parseExtmap(e))})),r},t.writeRtpDescription=function(e,r){var o="";o+="m="+e+" ",o+=r.codecs.length>0?"9":"0",o+=" UDP/TLS/RTP/SAVPF ",o+=r.codecs.map((function(e){return void 0!==e.preferredPayloadType?e.preferredPayloadType:e.payloadType})).join(" ")+"\r\n",o+="c=IN IP4 0.0.0.0\r\n",o+="a=rtcp:9 IN IP4 0.0.0.0\r\n",r.codecs.forEach((function(e){o+=t.writeRtpMap(e),o+=t.writeFmtp(e),o+=t.writeRtcpFb(e)}));var i=0;return r.codecs.forEach((function(e){e.maxptime>i&&(i=e.maxptime)})),i>0&&(o+="a=maxptime:"+i+"\r\n"),o+="a=rtcp-mux\r\n",r.headerExtensions&&r.headerExtensions.forEach((function(e){o+=t.writeExtmap(e)})),o},t.parseRtpEncodingParameters=function(e){var r,o=[],i=t.parseRtpParameters(e),s=-1!==i.fecMechanisms.indexOf("RED"),n=-1!==i.fecMechanisms.indexOf("ULPFEC"),a=t.matchPrefix(e,"a=ssrc:").map((function(e){return t.parseSsrcMedia(e)})).filter((function(e){return"cname"===e.attribute})),c=a.length>0&&a[0].ssrc,d=t.matchPrefix(e,"a=ssrc-group:FID").map((function(e){return e.substr(17).split(" ").map((function(e){return parseInt(e,10)}))}));d.length>0&&d[0].length>1&&d[0][0]===c&&(r=d[0][1]),i.codecs.forEach((function(e){if("RTX"===e.name.toUpperCase()&&e.parameters.apt){var t={ssrc:c,codecPayloadType:parseInt(e.parameters.apt,10)};c&&r&&(t.rtx={ssrc:r}),o.push(t),s&&((t=JSON.parse(JSON.stringify(t))).fec={ssrc:c,mechanism:n?"red+ulpfec":"red"},o.push(t))}})),0===o.length&&c&&o.push({ssrc:c});var u=t.matchPrefix(e,"b=");return u.length&&(u=0===u[0].indexOf("b=TIAS:")?parseInt(u[0].substr(7),10):0===u[0].indexOf("b=AS:")?1e3*parseInt(u[0].substr(5),10)*.95-16e3:void 0,o.forEach((function(e){e.maxBitrate=u}))),o},t.parseRtcpParameters=function(e){var r={},o=t.matchPrefix(e,"a=ssrc:").map((function(e){return t.parseSsrcMedia(e)})).filter((function(e){return"cname"===e.attribute}))[0];o&&(r.cname=o.value,r.ssrc=o.ssrc);var i=t.matchPrefix(e,"a=rtcp-rsize");r.reducedSize=i.length>0,r.compound=0===i.length;var s=t.matchPrefix(e,"a=rtcp-mux");return r.mux=s.length>0,r},t.parseMsid=function(e){var r,o=t.matchPrefix(e,"a=msid:");if(1===o.length)return{stream:(r=o[0].substr(7).split(" "))[0],track:r[1]};var i=t.matchPrefix(e,"a=ssrc:").map((function(e){return t.parseSsrcMedia(e)})).filter((function(e){return"msid"===e.attribute}));return i.length>0?{stream:(r=i[0].value.split(" "))[0],track:r[1]}:void 0},t.parseSctpDescription=function(e){var r,o=t.parseMLine(e),i=t.matchPrefix(e,"a=max-message-size:");i.length>0&&(r=parseInt(i[0].substr(19),10)),isNaN(r)&&(r=65536);var s=t.matchPrefix(e,"a=sctp-port:");if(s.length>0)return{port:parseInt(s[0].substr(12),10),protocol:o.fmt,maxMessageSize:r};if(t.matchPrefix(e,"a=sctpmap:").length>0){var n=t.matchPrefix(e,"a=sctpmap:")[0].substr(10).split(" ");return{port:parseInt(n[0],10),protocol:n[1],maxMessageSize:r}}},t.writeSctpDescription=function(e,t){var r=[];return r="DTLS/SCTP"!==e.protocol?["m="+e.kind+" 9 "+e.protocol+" "+t.protocol+"\r\n","c=IN IP4 0.0.0.0\r\n","a=sctp-port:"+t.port+"\r\n"]:["m="+e.kind+" 9 "+e.protocol+" "+t.port+"\r\n","c=IN IP4 0.0.0.0\r\n","a=sctpmap:"+t.port+" "+t.protocol+" 65535\r\n"],void 0!==t.maxMessageSize&&r.push("a=max-message-size:"+t.maxMessageSize+"\r\n"),r.join("")},t.generateSessionId=function(){return Math.random().toString().substr(2,21)},t.writeSessionBoilerplate=function(e,r,o){var i=void 0!==r?r:2;return"v=0\r\no="+(o||"thisisadapterortc")+" "+(e||t.generateSessionId())+" "+i+" IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\n"},t.writeMediaSection=function(e,r,o,i){var s=t.writeRtpDescription(e.kind,r);if(s+=t.writeIceParameters(e.iceGatherer.getLocalParameters()),s+=t.writeDtlsParameters(e.dtlsTransport.getLocalParameters(),"offer"===o?"actpass":"active"),s+="a=mid:"+e.mid+"\r\n",e.direction?s+="a="+e.direction+"\r\n":e.rtpSender&&e.rtpReceiver?s+="a=sendrecv\r\n":e.rtpSender?s+="a=sendonly\r\n":e.rtpReceiver?s+="a=recvonly\r\n":s+="a=inactive\r\n",e.rtpSender){var n="msid:"+i.id+" "+e.rtpSender.track.id+"\r\n";s+="a="+n,s+="a=ssrc:"+e.sendEncodingParameters[0].ssrc+" "+n,e.sendEncodingParameters[0].rtx&&(s+="a=ssrc:"+e.sendEncodingParameters[0].rtx.ssrc+" "+n,s+="a=ssrc-group:FID "+e.sendEncodingParameters[0].ssrc+" "+e.sendEncodingParameters[0].rtx.ssrc+"\r\n")}return s+="a=ssrc:"+e.sendEncodingParameters[0].ssrc+" cname:"+t.localCName+"\r\n",e.rtpSender&&e.sendEncodingParameters[0].rtx&&(s+="a=ssrc:"+e.sendEncodingParameters[0].rtx.ssrc+" cname:"+t.localCName+"\r\n"),s},t.getDirection=function(e,r){for(var o=t.splitLines(e),i=0;i<o.length;i++)switch(o[i]){case"a=sendrecv":case"a=sendonly":case"a=recvonly":case"a=inactive":return o[i].substr(2)}return r?t.getDirection(r):"sendrecv"},t.getKind=function(e){return t.splitLines(e)[0].split(" ")[0].substr(2)},t.isRejected=function(e){return"0"===e.split(" ",2)[1]},t.parseMLine=function(e){var r=t.splitLines(e)[0].substr(2).split(" ");return{kind:r[0],port:parseInt(r[1],10),protocol:r[2],fmt:r.slice(3).join(" ")}},t.parseOLine=function(e){var r=t.matchPrefix(e,"o=")[0].substr(2).split(" ");return{username:r[0],sessionId:r[1],sessionVersion:parseInt(r[2],10),netType:r[3],addressType:r[4],address:r[5]}},t.isValidSDP=function(e){if("string"!=typeof e||0===e.length)return!1;for(var r=t.splitLines(e),o=0;o<r.length;o++)if(r[o].length<2||"="!==r[o].charAt(1))return!1;return!0},e.exports=t},k(y={exports:{}},y.exports),y.exports);function U(e,t,r,o,i){var s=b.writeRtpDescription(e.kind,t);if(s+=b.writeIceParameters(e.iceGatherer.getLocalParameters()),s+=b.writeDtlsParameters(e.dtlsTransport.getLocalParameters(),"offer"===r?"actpass":i||"active"),s+="a=mid:"+e.mid+"\r\n",e.rtpSender&&e.rtpReceiver?s+="a=sendrecv\r\n":e.rtpSender?s+="a=sendonly\r\n":e.rtpReceiver?s+="a=recvonly\r\n":s+="a=inactive\r\n",e.rtpSender){var n=e.rtpSender._initialTrackId||e.rtpSender.track.id;e.rtpSender._initialTrackId=n;var a="msid:"+(o?o.id:"-")+" "+n+"\r\n";s+="a="+a,s+="a=ssrc:"+e.sendEncodingParameters[0].ssrc+" "+a,e.sendEncodingParameters[0].rtx&&(s+="a=ssrc:"+e.sendEncodingParameters[0].rtx.ssrc+" "+a,s+="a=ssrc-group:FID "+e.sendEncodingParameters[0].ssrc+" "+e.sendEncodingParameters[0].rtx.ssrc+"\r\n")}return s+="a=ssrc:"+e.sendEncodingParameters[0].ssrc+" cname:"+b.localCName+"\r\n",e.rtpSender&&e.sendEncodingParameters[0].rtx&&(s+="a=ssrc:"+e.sendEncodingParameters[0].rtx.ssrc+" cname:"+b.localCName+"\r\n"),s}function P(e,t){var r={codecs:[],headerExtensions:[],fecMechanisms:[]},o=function(e,t){e=parseInt(e,10);for(var r=0;r<t.length;r++)if(t[r].payloadType===e||t[r].preferredPayloadType===e)return t[r]},i=function(e,t,r,i){var s=o(e.parameters.apt,r),n=o(t.parameters.apt,i);return s&&n&&s.name.toLowerCase()===n.name.toLowerCase()};return e.codecs.forEach((function(o){for(var s=0;s<t.codecs.length;s++){var n=t.codecs[s];if(o.name.toLowerCase()===n.name.toLowerCase()&&o.clockRate===n.clockRate){if("rtx"===o.name.toLowerCase()&&o.parameters&&n.parameters.apt&&!i(o,n,e.codecs,t.codecs))continue;(n=JSON.parse(JSON.stringify(n))).numChannels=Math.min(o.numChannels,n.numChannels),r.codecs.push(n),n.rtcpFeedback=n.rtcpFeedback.filter((function(e){for(var t=0;t<o.rtcpFeedback.length;t++)if(o.rtcpFeedback[t].type===e.type&&o.rtcpFeedback[t].parameter===e.parameter)return!0;return!1}));break}}})),e.headerExtensions.forEach((function(e){for(var o=0;o<t.headerExtensions.length;o++){var i=t.headerExtensions[o];if(e.uri===i.uri){r.headerExtensions.push(i);break}}})),r}function M(e,t,r){return-1!=={offer:{setLocalDescription:["stable","have-local-offer"],setRemoteDescription:["stable","have-remote-offer"]},answer:{setLocalDescription:["have-remote-offer","have-local-pranswer"],setRemoteDescription:["have-local-offer","have-remote-pranswer"]}}[t][e].indexOf(r)}function x(e,t){var r=e.getRemoteCandidates().find((function(e){return t.foundation===e.foundation&&t.ip===e.ip&&t.port===e.port&&t.priority===e.priority&&t.protocol===e.protocol&&t.type===e.type}));return r||e.addRemoteCandidate(t),!r}function w(e,t){var r=new Error(t);return r.name=e,r.code={NotSupportedError:9,InvalidStateError:11,InvalidAccessError:15,TypeError:void 0,OperationError:void 0}[e],r}var B=function(e,t){function r(t,r){r.addTrack(t),r.dispatchEvent(new e.MediaStreamTrackEvent("addtrack",{track:t}))}function o(t,r,o,i){var s=new Event("track");s.track=r,s.receiver=o,s.transceiver={receiver:o},s.streams=i,e.setTimeout((function(){t._dispatchEvent("track",s)}))}var i=function(r){var o=this,i=document.createDocumentFragment();if(["addEventListener","removeEventListener","dispatchEvent"].forEach((function(e){o[e]=i[e].bind(i)})),this.canTrickleIceCandidates=null,this.needNegotiation=!1,this.localStreams=[],this.remoteStreams=[],this._localDescription=null,this._remoteDescription=null,this.signalingState="stable",this.iceConnectionState="new",this.connectionState="new",this.iceGatheringState="new",r=JSON.parse(JSON.stringify(r||{})),this.usingBundle="max-bundle"===r.bundlePolicy,"negotiate"===r.rtcpMuxPolicy)throw w("NotSupportedError","rtcpMuxPolicy 'negotiate' is not supported");switch(r.rtcpMuxPolicy||(r.rtcpMuxPolicy="require"),r.iceTransportPolicy){case"all":case"relay":break;default:r.iceTransportPolicy="all"}switch(r.bundlePolicy){case"balanced":case"max-compat":case"max-bundle":break;default:r.bundlePolicy="balanced"}if(r.iceServers=function(e,t){var r=!1;return(e=JSON.parse(JSON.stringify(e))).filter((function(e){if(e&&(e.urls||e.url)){var o=e.urls||e.url;e.url&&!e.urls&&console.warn("RTCIceServer.url is deprecated! Use urls instead.");var i="string"==typeof o;return i&&(o=[o]),o=o.filter((function(e){return 0!==e.indexOf("turn:")||-1===e.indexOf("transport=udp")||-1!==e.indexOf("turn:[")||r?0===e.indexOf("stun:")&&t>=14393&&-1===e.indexOf("?transport=udp"):(r=!0,!0)})),delete e.url,e.urls=i?o[0]:o,!!o.length}}))}(r.iceServers||[],t),this._iceGatherers=[],r.iceCandidatePoolSize)for(var s=r.iceCandidatePoolSize;s>0;s--)this._iceGatherers.push(new e.RTCIceGatherer({iceServers:r.iceServers,gatherPolicy:r.iceTransportPolicy}));else r.iceCandidatePoolSize=0;this._config=r,this.transceivers=[],this._sdpSessionId=b.generateSessionId(),this._sdpSessionVersion=0,this._dtlsRole=void 0,this._isClosed=!1};Object.defineProperty(i.prototype,"localDescription",{configurable:!0,get:function(){return this._localDescription}}),Object.defineProperty(i.prototype,"remoteDescription",{configurable:!0,get:function(){return this._remoteDescription}}),i.prototype.onicecandidate=null,i.prototype.onaddstream=null,i.prototype.ontrack=null,i.prototype.onremovestream=null,i.prototype.onsignalingstatechange=null,i.prototype.oniceconnectionstatechange=null,i.prototype.onconnectionstatechange=null,i.prototype.onicegatheringstatechange=null,i.prototype.onnegotiationneeded=null,i.prototype.ondatachannel=null,i.prototype._dispatchEvent=function(e,t){this._isClosed||(this.dispatchEvent(t),"function"==typeof this["on"+e]&&this["on"+e](t))},i.prototype._emitGatheringStateChange=function(){var e=new Event("icegatheringstatechange");this._dispatchEvent("icegatheringstatechange",e)},i.prototype.getConfiguration=function(){return this._config},i.prototype.getLocalStreams=function(){return this.localStreams},i.prototype.getRemoteStreams=function(){return this.remoteStreams},i.prototype._createTransceiver=function(e,t){var r=this.transceivers.length>0,o={track:null,iceGatherer:null,iceTransport:null,dtlsTransport:null,localCapabilities:null,remoteCapabilities:null,rtpSender:null,rtpReceiver:null,kind:e,mid:null,sendEncodingParameters:null,recvEncodingParameters:null,stream:null,associatedRemoteMediaStreams:[],wantReceive:!0};if(this.usingBundle&&r)o.iceTransport=this.transceivers[0].iceTransport,o.dtlsTransport=this.transceivers[0].dtlsTransport;else{var i=this._createIceAndDtlsTransports();o.iceTransport=i.iceTransport,o.dtlsTransport=i.dtlsTransport}return t||this.transceivers.push(o),o},i.prototype.addTrack=function(t,r){if(this._isClosed)throw w("InvalidStateError","Attempted to call addTrack on a closed peerconnection.");var o;if(this.transceivers.find((function(e){return e.track===t})))throw w("InvalidAccessError","Track already exists.");for(var i=0;i<this.transceivers.length;i++)this.transceivers[i].track||this.transceivers[i].kind!==t.kind||(o=this.transceivers[i]);return o||(o=this._createTransceiver(t.kind)),this._maybeFireNegotiationNeeded(),-1===this.localStreams.indexOf(r)&&this.localStreams.push(r),o.track=t,o.stream=r,o.rtpSender=new e.RTCRtpSender(t,o.dtlsTransport),o.rtpSender},i.prototype.addStream=function(e){var r=this;if(t>=15025)e.getTracks().forEach((function(t){r.addTrack(t,e)}));else{var o=e.clone();e.getTracks().forEach((function(e,t){var r=o.getTracks()[t];e.addEventListener("enabled",(function(e){r.enabled=e.enabled}))})),o.getTracks().forEach((function(e){r.addTrack(e,o)}))}},i.prototype.removeTrack=function(t){if(this._isClosed)throw w("InvalidStateError","Attempted to call removeTrack on a closed peerconnection.");if(!(t instanceof e.RTCRtpSender))throw new TypeError("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.");var r=this.transceivers.find((function(e){return e.rtpSender===t}));if(!r)throw w("InvalidAccessError","Sender was not created by this connection.");var o=r.stream;r.rtpSender.stop(),r.rtpSender=null,r.track=null,r.stream=null,-1===this.transceivers.map((function(e){return e.stream})).indexOf(o)&&this.localStreams.indexOf(o)>-1&&this.localStreams.splice(this.localStreams.indexOf(o),1),this._maybeFireNegotiationNeeded()},i.prototype.removeStream=function(e){var t=this;e.getTracks().forEach((function(e){var r=t.getSenders().find((function(t){return t.track===e}));r&&t.removeTrack(r)}))},i.prototype.getSenders=function(){return this.transceivers.filter((function(e){return!!e.rtpSender})).map((function(e){return e.rtpSender}))},i.prototype.getReceivers=function(){return this.transceivers.filter((function(e){return!!e.rtpReceiver})).map((function(e){return e.rtpReceiver}))},i.prototype._createIceGatherer=function(t,r){var o=this;if(r&&t>0)return this.transceivers[0].iceGatherer;if(this._iceGatherers.length)return this._iceGatherers.shift();var i=new e.RTCIceGatherer({iceServers:this._config.iceServers,gatherPolicy:this._config.iceTransportPolicy});return Object.defineProperty(i,"state",{value:"new",writable:!0}),this.transceivers[t].bufferedCandidateEvents=[],this.transceivers[t].bufferCandidates=function(e){var r=!e.candidate||0===Object.keys(e.candidate).length;i.state=r?"completed":"gathering",null!==o.transceivers[t].bufferedCandidateEvents&&o.transceivers[t].bufferedCandidateEvents.push(e)},i.addEventListener("localcandidate",this.transceivers[t].bufferCandidates),i},i.prototype._gather=function(t,r){var o=this,i=this.transceivers[r].iceGatherer;if(!i.onlocalcandidate){var s=this.transceivers[r].bufferedCandidateEvents;this.transceivers[r].bufferedCandidateEvents=null,i.removeEventListener("localcandidate",this.transceivers[r].bufferCandidates),i.onlocalcandidate=function(e){if(!(o.usingBundle&&r>0)){var s=new Event("icecandidate");s.candidate={sdpMid:t,sdpMLineIndex:r};var n=e.candidate,a=!n||0===Object.keys(n).length;if(a)"new"!==i.state&&"gathering"!==i.state||(i.state="completed");else{"new"===i.state&&(i.state="gathering"),n.component=1,n.ufrag=i.getLocalParameters().usernameFragment;var c=b.writeCandidate(n);s.candidate=Object.assign(s.candidate,b.parseCandidate(c)),s.candidate.candidate=c,s.candidate.toJSON=function(){return{candidate:s.candidate.candidate,sdpMid:s.candidate.sdpMid,sdpMLineIndex:s.candidate.sdpMLineIndex,usernameFragment:s.candidate.usernameFragment}}}var d=b.getMediaSections(o._localDescription.sdp);d[s.candidate.sdpMLineIndex]+=a?"a=end-of-candidates\r\n":"a="+s.candidate.candidate+"\r\n",o._localDescription.sdp=b.getDescription(o._localDescription.sdp)+d.join("");var u=o.transceivers.every((function(e){return e.iceGatherer&&"completed"===e.iceGatherer.state}));"gathering"!==o.iceGatheringState&&(o.iceGatheringState="gathering",o._emitGatheringStateChange()),a||o._dispatchEvent("icecandidate",s),u&&(o._dispatchEvent("icecandidate",new Event("icecandidate")),o.iceGatheringState="complete",o._emitGatheringStateChange())}},e.setTimeout((function(){s.forEach((function(e){i.onlocalcandidate(e)}))}),0)}},i.prototype._createIceAndDtlsTransports=function(){var t=this,r=new e.RTCIceTransport(null);r.onicestatechange=function(){t._updateIceConnectionState(),t._updateConnectionState()};var o=new e.RTCDtlsTransport(r);return o.ondtlsstatechange=function(){t._updateConnectionState()},o.onerror=function(){Object.defineProperty(o,"state",{value:"failed",writable:!0}),t._updateConnectionState()},{iceTransport:r,dtlsTransport:o}},i.prototype._disposeIceAndDtlsTransports=function(e){var t=this.transceivers[e].iceGatherer;t&&(delete t.onlocalcandidate,delete this.transceivers[e].iceGatherer);var r=this.transceivers[e].iceTransport;r&&(delete r.onicestatechange,delete this.transceivers[e].iceTransport);var o=this.transceivers[e].dtlsTransport;o&&(delete o.ondtlsstatechange,delete o.onerror,delete this.transceivers[e].dtlsTransport)},i.prototype._transceive=function(e,r,o){var i=P(e.localCapabilities,e.remoteCapabilities);r&&e.rtpSender&&(i.encodings=e.sendEncodingParameters,i.rtcp={cname:b.localCName,compound:e.rtcpParameters.compound},e.recvEncodingParameters.length&&(i.rtcp.ssrc=e.recvEncodingParameters[0].ssrc),e.rtpSender.send(i)),o&&e.rtpReceiver&&i.codecs.length>0&&("video"===e.kind&&e.recvEncodingParameters&&t<15019&&e.recvEncodingParameters.forEach((function(e){delete e.rtx})),e.recvEncodingParameters.length?i.encodings=e.recvEncodingParameters:i.encodings=[{}],i.rtcp={compound:e.rtcpParameters.compound},e.rtcpParameters.cname&&(i.rtcp.cname=e.rtcpParameters.cname),e.sendEncodingParameters.length&&(i.rtcp.ssrc=e.sendEncodingParameters[0].ssrc),e.rtpReceiver.receive(i))},i.prototype.setLocalDescription=function(e){var t,r,o=this;if(-1===["offer","answer"].indexOf(e.type))return Promise.reject(w("TypeError",'Unsupported type "'+e.type+'"'));if(!M("setLocalDescription",e.type,o.signalingState)||o._isClosed)return Promise.reject(w("InvalidStateError","Can not set local "+e.type+" in state "+o.signalingState));if("offer"===e.type)t=b.splitSections(e.sdp),r=t.shift(),t.forEach((function(e,t){var r=b.parseRtpParameters(e);o.transceivers[t].localCapabilities=r})),o.transceivers.forEach((function(e,t){o._gather(e.mid,t)}));else if("answer"===e.type){t=b.splitSections(o._remoteDescription.sdp),r=t.shift();var i=b.matchPrefix(r,"a=ice-lite").length>0;t.forEach((function(e,t){var s=o.transceivers[t],n=s.iceGatherer,a=s.iceTransport,c=s.dtlsTransport,d=s.localCapabilities,u=s.remoteCapabilities;if(!(b.isRejected(e)&&0===b.matchPrefix(e,"a=bundle-only").length)&&!s.rejected){var _=b.getIceParameters(e,r),l=b.getDtlsParameters(e,r);i&&(l.role="server"),o.usingBundle&&0!==t||(o._gather(s.mid,t),"new"===a.state&&a.start(n,_,i?"controlling":"controlled"),"new"===c.state&&c.start(l));var R=P(d,u);o._transceive(s,R.codecs.length>0,!1)}}))}return o._localDescription={type:e.type,sdp:e.sdp},"offer"===e.type?o._updateSignalingState("have-local-offer"):o._updateSignalingState("stable"),Promise.resolve()},i.prototype.setRemoteDescription=function(i){var s=this;if(-1===["offer","answer"].indexOf(i.type))return Promise.reject(w("TypeError",'Unsupported type "'+i.type+'"'));if(!M("setRemoteDescription",i.type,s.signalingState)||s._isClosed)return Promise.reject(w("InvalidStateError","Can not set remote "+i.type+" in state "+s.signalingState));var n={};s.remoteStreams.forEach((function(e){n[e.id]=e}));var a=[],c=b.splitSections(i.sdp),d=c.shift(),u=b.matchPrefix(d,"a=ice-lite").length>0,_=b.matchPrefix(d,"a=group:BUNDLE ").length>0;s.usingBundle=_;var l=b.matchPrefix(d,"a=ice-options:")[0];return s.canTrickleIceCandidates=!!l&&l.substr(14).split(" ").indexOf("trickle")>=0,c.forEach((function(o,c){var l=b.splitLines(o),R=b.getKind(o),C=b.isRejected(o)&&0===b.matchPrefix(o,"a=bundle-only").length,p=l[0].substr(2).split(" ")[2],h=b.getDirection(o,d),g=b.parseMsid(o),T=b.getMid(o)||b.generateIdentifier();if(C||"application"===R&&("DTLS/SCTP"===p||"UDP/DTLS/SCTP"===p))s.transceivers[c]={mid:T,kind:R,protocol:p,rejected:!0};else{var m,S,I,E,f,L,v,O,A;!C&&s.transceivers[c]&&s.transceivers[c].rejected&&(s.transceivers[c]=s._createTransceiver(R,!0));var N,D,k=b.parseRtpParameters(o);C||(N=b.getIceParameters(o,d),(D=b.getDtlsParameters(o,d)).role="client"),v=b.parseRtpEncodingParameters(o);var y=b.parseRtcpParameters(o),U=b.matchPrefix(o,"a=end-of-candidates",d).length>0,M=b.matchPrefix(o,"a=candidate:").map((function(e){return b.parseCandidate(e)})).filter((function(e){return 1===e.component}));if(("offer"===i.type||"answer"===i.type)&&!C&&_&&c>0&&s.transceivers[c]&&(s._disposeIceAndDtlsTransports(c),s.transceivers[c].iceGatherer=s.transceivers[0].iceGatherer,s.transceivers[c].iceTransport=s.transceivers[0].iceTransport,s.transceivers[c].dtlsTransport=s.transceivers[0].dtlsTransport,s.transceivers[c].rtpSender&&s.transceivers[c].rtpSender.setTransport(s.transceivers[0].dtlsTransport),s.transceivers[c].rtpReceiver&&s.transceivers[c].rtpReceiver.setTransport(s.transceivers[0].dtlsTransport)),"offer"!==i.type||C){if("answer"===i.type&&!C){S=(m=s.transceivers[c]).iceGatherer,I=m.iceTransport,E=m.dtlsTransport,f=m.rtpReceiver,L=m.sendEncodingParameters,O=m.localCapabilities,s.transceivers[c].recvEncodingParameters=v,s.transceivers[c].remoteCapabilities=k,s.transceivers[c].rtcpParameters=y,M.length&&"new"===I.state&&(!u&&!U||_&&0!==c?M.forEach((function(e){x(m.iceTransport,e)})):I.setRemoteCandidates(M)),_&&0!==c||("new"===I.state&&I.start(S,N,"controlling"),"new"===E.state&&E.start(D)),!P(m.localCapabilities,m.remoteCapabilities).codecs.filter((function(e){return"rtx"===e.name.toLowerCase()})).length&&m.sendEncodingParameters[0].rtx&&delete m.sendEncodingParameters[0].rtx,s._transceive(m,"sendrecv"===h||"recvonly"===h,"sendrecv"===h||"sendonly"===h),!f||"sendrecv"!==h&&"sendonly"!==h?delete m.rtpReceiver:(A=f.track,g?(n[g.stream]||(n[g.stream]=new e.MediaStream),r(A,n[g.stream]),a.push([A,f,n[g.stream]])):(n.default||(n.default=new e.MediaStream),r(A,n.default),a.push([A,f,n.default])))}}else{(m=s.transceivers[c]||s._createTransceiver(R)).mid=T,m.iceGatherer||(m.iceGatherer=s._createIceGatherer(c,_)),M.length&&"new"===m.iceTransport.state&&(!U||_&&0!==c?M.forEach((function(e){x(m.iceTransport,e)})):m.iceTransport.setRemoteCandidates(M)),O=e.RTCRtpReceiver.getCapabilities(R),t<15019&&(O.codecs=O.codecs.filter((function(e){return"rtx"!==e.name}))),L=m.sendEncodingParameters||[{ssrc:1001*(2*c+2)}];var w,B=!1;if("sendrecv"===h||"sendonly"===h){if(B=!m.rtpReceiver,f=m.rtpReceiver||new e.RTCRtpReceiver(m.dtlsTransport,R),B)A=f.track,g&&"-"===g.stream||(g?(n[g.stream]||(n[g.stream]=new e.MediaStream,Object.defineProperty(n[g.stream],"id",{get:function(){return g.stream}})),Object.defineProperty(A,"id",{get:function(){return g.track}}),w=n[g.stream]):(n.default||(n.default=new e.MediaStream),w=n.default)),w&&(r(A,w),m.associatedRemoteMediaStreams.push(w)),a.push([A,f,w])}else m.rtpReceiver&&m.rtpReceiver.track&&(m.associatedRemoteMediaStreams.forEach((function(t){var r=t.getTracks().find((function(e){return e.id===m.rtpReceiver.track.id}));r&&function(t,r){r.removeTrack(t),r.dispatchEvent(new e.MediaStreamTrackEvent("removetrack",{track:t}))}(r,t)})),m.associatedRemoteMediaStreams=[]);m.localCapabilities=O,m.remoteCapabilities=k,m.rtpReceiver=f,m.rtcpParameters=y,m.sendEncodingParameters=L,m.recvEncodingParameters=v,s._transceive(s.transceivers[c],!1,B)}}})),void 0===s._dtlsRole&&(s._dtlsRole="offer"===i.type?"active":"passive"),s._remoteDescription={type:i.type,sdp:i.sdp},"offer"===i.type?s._updateSignalingState("have-remote-offer"):s._updateSignalingState("stable"),Object.keys(n).forEach((function(t){var r=n[t];if(r.getTracks().length){if(-1===s.remoteStreams.indexOf(r)){s.remoteStreams.push(r);var i=new Event("addstream");i.stream=r,e.setTimeout((function(){s._dispatchEvent("addstream",i)}))}a.forEach((function(e){var t=e[0],i=e[1];r.id===e[2].id&&o(s,t,i,[r])}))}})),a.forEach((function(e){e[2]||o(s,e[0],e[1],[])})),e.setTimeout((function(){s&&s.transceivers&&s.transceivers.forEach((function(e){e.iceTransport&&"new"===e.iceTransport.state&&e.iceTransport.getRemoteCandidates().length>0&&(console.warn("Timeout for addRemoteCandidate. Consider sending an end-of-candidates notification"),e.iceTransport.addRemoteCandidate({}))}))}),4e3),Promise.resolve()},i.prototype.close=function(){this.transceivers.forEach((function(e){e.iceTransport&&e.iceTransport.stop(),e.dtlsTransport&&e.dtlsTransport.stop(),e.rtpSender&&e.rtpSender.stop(),e.rtpReceiver&&e.rtpReceiver.stop()})),this._isClosed=!0,this._updateSignalingState("closed")},i.prototype._updateSignalingState=function(e){this.signalingState=e;var t=new Event("signalingstatechange");this._dispatchEvent("signalingstatechange",t)},i.prototype._maybeFireNegotiationNeeded=function(){var t=this;"stable"===this.signalingState&&!0!==this.needNegotiation&&(this.needNegotiation=!0,e.setTimeout((function(){if(t.needNegotiation){t.needNegotiation=!1;var e=new Event("negotiationneeded");t._dispatchEvent("negotiationneeded",e)}}),0))},i.prototype._updateIceConnectionState=function(){var e,t={new:0,closed:0,checking:0,connected:0,completed:0,disconnected:0,failed:0};if(this.transceivers.forEach((function(e){e.iceTransport&&!e.rejected&&t[e.iceTransport.state]++})),e="new",t.failed>0?e="failed":t.checking>0?e="checking":t.disconnected>0?e="disconnected":t.new>0?e="new":t.connected>0?e="connected":t.completed>0&&(e="completed"),e!==this.iceConnectionState){this.iceConnectionState=e;var r=new Event("iceconnectionstatechange");this._dispatchEvent("iceconnectionstatechange",r)}},i.prototype._updateConnectionState=function(){var e,t={new:0,closed:0,connecting:0,connected:0,completed:0,disconnected:0,failed:0};if(this.transceivers.forEach((function(e){e.iceTransport&&e.dtlsTransport&&!e.rejected&&(t[e.iceTransport.state]++,t[e.dtlsTransport.state]++)})),t.connected+=t.completed,e="new",t.failed>0?e="failed":t.connecting>0?e="connecting":t.disconnected>0?e="disconnected":t.new>0?e="new":t.connected>0&&(e="connected"),e!==this.connectionState){this.connectionState=e;var r=new Event("connectionstatechange");this._dispatchEvent("connectionstatechange",r)}},i.prototype.createOffer=function(){var r=this;if(r._isClosed)return Promise.reject(w("InvalidStateError","Can not call createOffer after close"));var o=r.transceivers.filter((function(e){return"audio"===e.kind})).length,i=r.transceivers.filter((function(e){return"video"===e.kind})).length,s=arguments[0];if(s){if(s.mandatory||s.optional)throw new TypeError("Legacy mandatory/optional constraints not supported.");void 0!==s.offerToReceiveAudio&&(o=!0===s.offerToReceiveAudio?1:!1===s.offerToReceiveAudio?0:s.offerToReceiveAudio),void 0!==s.offerToReceiveVideo&&(i=!0===s.offerToReceiveVideo?1:!1===s.offerToReceiveVideo?0:s.offerToReceiveVideo)}for(r.transceivers.forEach((function(e){"audio"===e.kind?--o<0&&(e.wantReceive=!1):"video"===e.kind&&--i<0&&(e.wantReceive=!1)}));o>0||i>0;)o>0&&(r._createTransceiver("audio"),o--),i>0&&(r._createTransceiver("video"),i--);var n=b.writeSessionBoilerplate(r._sdpSessionId,r._sdpSessionVersion++);r.transceivers.forEach((function(o,i){var s=o.track,n=o.kind,a=o.mid||b.generateIdentifier();o.mid=a,o.iceGatherer||(o.iceGatherer=r._createIceGatherer(i,r.usingBundle));var c=e.RTCRtpSender.getCapabilities(n);t<15019&&(c.codecs=c.codecs.filter((function(e){return"rtx"!==e.name}))),c.codecs.forEach((function(e){"H264"===e.name&&void 0===e.parameters["level-asymmetry-allowed"]&&(e.parameters["level-asymmetry-allowed"]="1"),o.remoteCapabilities&&o.remoteCapabilities.codecs&&o.remoteCapabilities.codecs.forEach((function(t){e.name.toLowerCase()===t.name.toLowerCase()&&e.clockRate===t.clockRate&&(e.preferredPayloadType=t.payloadType)}))})),c.headerExtensions.forEach((function(e){(o.remoteCapabilities&&o.remoteCapabilities.headerExtensions||[]).forEach((function(t){e.uri===t.uri&&(e.id=t.id)}))}));var d=o.sendEncodingParameters||[{ssrc:1001*(2*i+1)}];s&&t>=15019&&"video"===n&&!d[0].rtx&&(d[0].rtx={ssrc:d[0].ssrc+1}),o.wantReceive&&(o.rtpReceiver=new e.RTCRtpReceiver(o.dtlsTransport,n)),o.localCapabilities=c,o.sendEncodingParameters=d})),"max-compat"!==r._config.bundlePolicy&&(n+="a=group:BUNDLE "+r.transceivers.map((function(e){return e.mid})).join(" ")+"\r\n"),n+="a=ice-options:trickle\r\n",r.transceivers.forEach((function(e,t){n+=U(e,e.localCapabilities,"offer",e.stream,r._dtlsRole),n+="a=rtcp-rsize\r\n",!e.iceGatherer||"new"===r.iceGatheringState||0!==t&&r.usingBundle||(e.iceGatherer.getLocalCandidates().forEach((function(e){e.component=1,n+="a="+b.writeCandidate(e)+"\r\n"})),"completed"===e.iceGatherer.state&&(n+="a=end-of-candidates\r\n"))}));var a=new e.RTCSessionDescription({type:"offer",sdp:n});return Promise.resolve(a)},i.prototype.createAnswer=function(){var r=this;if(r._isClosed)return Promise.reject(w("InvalidStateError","Can not call createAnswer after close"));if("have-remote-offer"!==r.signalingState&&"have-local-pranswer"!==r.signalingState)return Promise.reject(w("InvalidStateError","Can not call createAnswer in signalingState "+r.signalingState));var o=b.writeSessionBoilerplate(r._sdpSessionId,r._sdpSessionVersion++);r.usingBundle&&(o+="a=group:BUNDLE "+r.transceivers.map((function(e){return e.mid})).join(" ")+"\r\n"),o+="a=ice-options:trickle\r\n";var i=b.getMediaSections(r._remoteDescription.sdp).length;r.transceivers.forEach((function(e,s){if(!(s+1>i)){if(e.rejected)return"application"===e.kind?"DTLS/SCTP"===e.protocol?o+="m=application 0 DTLS/SCTP 5000\r\n":o+="m=application 0 "+e.protocol+" webrtc-datachannel\r\n":"audio"===e.kind?o+="m=audio 0 UDP/TLS/RTP/SAVPF 0\r\na=rtpmap:0 PCMU/8000\r\n":"video"===e.kind&&(o+="m=video 0 UDP/TLS/RTP/SAVPF 120\r\na=rtpmap:120 VP8/90000\r\n"),void(o+="c=IN IP4 0.0.0.0\r\na=inactive\r\na=mid:"+e.mid+"\r\n");var n;if(e.stream)"audio"===e.kind?n=e.stream.getAudioTracks()[0]:"video"===e.kind&&(n=e.stream.getVideoTracks()[0]),n&&t>=15019&&"video"===e.kind&&!e.sendEncodingParameters[0].rtx&&(e.sendEncodingParameters[0].rtx={ssrc:e.sendEncodingParameters[0].ssrc+1});var a=P(e.localCapabilities,e.remoteCapabilities);!a.codecs.filter((function(e){return"rtx"===e.name.toLowerCase()})).length&&e.sendEncodingParameters[0].rtx&&delete e.sendEncodingParameters[0].rtx,o+=U(e,a,"answer",e.stream,r._dtlsRole),e.rtcpParameters&&e.rtcpParameters.reducedSize&&(o+="a=rtcp-rsize\r\n")}}));var s=new e.RTCSessionDescription({type:"answer",sdp:o});return Promise.resolve(s)},i.prototype.addIceCandidate=function(e){var t,r=this;return e&&void 0===e.sdpMLineIndex&&!e.sdpMid?Promise.reject(new TypeError("sdpMLineIndex or sdpMid required")):new Promise((function(o,i){if(!r._remoteDescription)return i(w("InvalidStateError","Can not add ICE candidate without a remote description"));if(e&&""!==e.candidate){var s=e.sdpMLineIndex;if(e.sdpMid)for(var n=0;n<r.transceivers.length;n++)if(r.transceivers[n].mid===e.sdpMid){s=n;break}var a=r.transceivers[s];if(!a)return i(w("OperationError","Can not add ICE candidate"));if(a.rejected)return o();var c=Object.keys(e.candidate).length>0?b.parseCandidate(e.candidate):{};if("tcp"===c.protocol&&(0===c.port||9===c.port))return o();if(c.component&&1!==c.component)return o();if((0===s||s>0&&a.iceTransport!==r.transceivers[0].iceTransport)&&!x(a.iceTransport,c))return i(w("OperationError","Can not add ICE candidate"));var d=e.candidate.trim();0===d.indexOf("a=")&&(d=d.substr(2)),(t=b.getMediaSections(r._remoteDescription.sdp))[s]+="a="+(c.type?d:"end-of-candidates")+"\r\n",r._remoteDescription.sdp=b.getDescription(r._remoteDescription.sdp)+t.join("")}else for(var u=0;u<r.transceivers.length&&(r.transceivers[u].rejected||(r.transceivers[u].iceTransport.addRemoteCandidate({}),(t=b.getMediaSections(r._remoteDescription.sdp))[u]+="a=end-of-candidates\r\n",r._remoteDescription.sdp=b.getDescription(r._remoteDescription.sdp)+t.join(""),!r.usingBundle));u++);o()}))},i.prototype.getStats=function(t){if(t&&t instanceof e.MediaStreamTrack){var r=null;if(this.transceivers.forEach((function(e){e.rtpSender&&e.rtpSender.track===t?r=e.rtpSender:e.rtpReceiver&&e.rtpReceiver.track===t&&(r=e.rtpReceiver)})),!r)throw w("InvalidAccessError","Invalid selector.");return r.getStats()}var o=[];return this.transceivers.forEach((function(e){["rtpSender","rtpReceiver","iceGatherer","iceTransport","dtlsTransport"].forEach((function(t){e[t]&&o.push(e[t].getStats())}))})),Promise.all(o).then((function(e){var t=new Map;return e.forEach((function(e){e.forEach((function(e){t.set(e.id,e)}))})),t}))};["RTCRtpSender","RTCRtpReceiver","RTCIceGatherer","RTCIceTransport","RTCDtlsTransport"].forEach((function(t){var r=e[t];if(r&&r.prototype&&r.prototype.getStats){var o=r.prototype.getStats;r.prototype.getStats=function(){return o.apply(this).then((function(e){var t=new Map;return Object.keys(e).forEach((function(r){var o;e[r].type={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[(o=e[r]).type]||o.type,t.set(r,e[r])})),t}))}}}));var s=["createOffer","createAnswer"];return s.forEach((function(e){var t=i.prototype[e];i.prototype[e]=function(){var e=arguments;return"function"==typeof e[0]||"function"==typeof e[1]?t.apply(this,[arguments[2]]).then((function(t){"function"==typeof e[0]&&e[0].apply(null,[t])}),(function(t){"function"==typeof e[1]&&e[1].apply(null,[t])})):t.apply(this,arguments)}})),(s=["setLocalDescription","setRemoteDescription","addIceCandidate"]).forEach((function(e){var t=i.prototype[e];i.prototype[e]=function(){var e=arguments;return"function"==typeof e[1]||"function"==typeof e[2]?t.apply(this,arguments).then((function(){"function"==typeof e[1]&&e[1].apply(null)}),(function(t){"function"==typeof e[2]&&e[2].apply(null,[t])})):t.apply(this,arguments)}})),["getStats"].forEach((function(e){var t=i.prototype[e];i.prototype[e]=function(){var e=arguments;return"function"==typeof e[1]?t.apply(this,arguments).then((function(){"function"==typeof e[1]&&e[1].apply(null)})):t.apply(this,arguments)}})),i};function V(e){const t=e&&e.navigator,r=t.mediaDevices.getUserMedia.bind(t.mediaDevices);t.mediaDevices.getUserMedia=function(e){return r(e).catch((e=>Promise.reject(function(e){return{name:{PermissionDeniedError:"NotAllowedError"}[e.name]||e.name,message:e.message,constraint:e.constraint,toString(){return this.name}}}(e))))}}function $(e){"getDisplayMedia"in e.navigator&&e.navigator.mediaDevices&&(e.navigator.mediaDevices&&"getDisplayMedia"in e.navigator.mediaDevices||(e.navigator.mediaDevices.getDisplayMedia=e.navigator.getDisplayMedia.bind(e.navigator)))}function F(e,t){if(e.RTCIceGatherer&&(e.RTCIceCandidate||(e.RTCIceCandidate=function(e){return e}),e.RTCSessionDescription||(e.RTCSessionDescription=function(e){return e}),t.version<15025)){const t=Object.getOwnPropertyDescriptor(e.MediaStreamTrack.prototype,"enabled");Object.defineProperty(e.MediaStreamTrack.prototype,"enabled",{set(e){t.set.call(this,e);const r=new Event("enabled");r.enabled=e,this.dispatchEvent(r)}})}e.RTCRtpSender&&!("dtmf"in e.RTCRtpSender.prototype)&&Object.defineProperty(e.RTCRtpSender.prototype,"dtmf",{get(){return void 0===this._dtmf&&("audio"===this.track.kind?this._dtmf=new e.RTCDtmfSender(this):"video"===this.track.kind&&(this._dtmf=null)),this._dtmf}}),e.RTCDtmfSender&&!e.RTCDTMFSender&&(e.RTCDTMFSender=e.RTCDtmfSender);const r=B(e,t.version);e.RTCPeerConnection=function(e){return e&&e.iceServers&&(e.iceServers=function(e,t){let r=!1;return(e=JSON.parse(JSON.stringify(e))).filter((e=>{if(e&&(e.urls||e.url)){let t=e.urls||e.url;e.url&&!e.urls&&R("RTCIceServer.url","RTCIceServer.urls");const o="string"==typeof t;return o&&(t=[t]),t=t.filter((e=>{if(0===e.indexOf("stun:"))return!1;const t=e.startsWith("turn")&&!e.startsWith("turn:[")&&e.includes("transport=udp");return t&&!r?(r=!0,!0):t&&!r})),delete e.url,e.urls=o?t[0]:t,!!t.length}}))}(e.iceServers,t.version),l("ICE servers after filtering:",e.iceServers)),new r(e)},e.RTCPeerConnection.prototype=r.prototype}function G(e){e.RTCRtpSender&&!("replaceTrack"in e.RTCRtpSender.prototype)&&(e.RTCRtpSender.prototype.replaceTrack=e.RTCRtpSender.prototype.setTrack)}var K=Object.freeze({__proto__:null,shimPeerConnection:F,shimReplaceTrack:G,shimGetUserMedia:V,shimGetDisplayMedia:$});function H(e,t){const r=e&&e.navigator,o=e&&e.MediaStreamTrack;if(r.getUserMedia=function(e,t,o){R("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),r.mediaDevices.getUserMedia(e).then(t,o)},!(t.version>55&&"autoGainControl"in r.mediaDevices.getSupportedConstraints())){const e=function(e,t,r){t in e&&!(r in e)&&(e[r]=e[t],delete e[t])},t=r.mediaDevices.getUserMedia.bind(r.mediaDevices);if(r.mediaDevices.getUserMedia=function(r){return"object"==typeof r&&"object"==typeof r.audio&&(r=JSON.parse(JSON.stringify(r)),e(r.audio,"autoGainControl","mozAutoGainControl"),e(r.audio,"noiseSuppression","mozNoiseSuppression")),t(r)},o&&o.prototype.getSettings){const t=o.prototype.getSettings;o.prototype.getSettings=function(){const r=t.apply(this,arguments);return e(r,"mozAutoGainControl","autoGainControl"),e(r,"mozNoiseSuppression","noiseSuppression"),r}}if(o&&o.prototype.applyConstraints){const t=o.prototype.applyConstraints;o.prototype.applyConstraints=function(r){return"audio"===this.kind&&"object"==typeof r&&(r=JSON.parse(JSON.stringify(r)),e(r,"autoGainControl","mozAutoGainControl"),e(r,"noiseSuppression","mozNoiseSuppression")),t.apply(this,[r])}}}}function j(e){"object"==typeof e&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function J(e,t){if("object"!=typeof e||!e.RTCPeerConnection&&!e.mozRTCPeerConnection)return;!e.RTCPeerConnection&&e.mozRTCPeerConnection&&(e.RTCPeerConnection=e.mozRTCPeerConnection),t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach((function(t){const r=e.RTCPeerConnection.prototype[t],o={[t](){return arguments[0]=new("addIceCandidate"===t?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),r.apply(this,arguments)}};e.RTCPeerConnection.prototype[t]=o[t]}));const r={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},o=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){const[e,i,s]=arguments;return o.apply(this,[e||null]).then((e=>{if(t.version<53&&!i)try{e.forEach((e=>{e.type=r[e.type]||e.type}))}catch(t){if("TypeError"!==t.name)throw t;e.forEach(((t,o)=>{e.set(o,Object.assign({},t,{type:r[t.type]||t.type}))}))}return e})).then(i,s)}}function W(e){if("object"!=typeof e||!e.RTCPeerConnection||!e.RTCRtpSender)return;if(e.RTCRtpSender&&"getStats"in e.RTCRtpSender.prototype)return;const t=e.RTCPeerConnection.prototype.getSenders;t&&(e.RTCPeerConnection.prototype.getSenders=function(){const e=t.apply(this,[]);return e.forEach((e=>e._pc=this)),e});const r=e.RTCPeerConnection.prototype.addTrack;r&&(e.RTCPeerConnection.prototype.addTrack=function(){const e=r.apply(this,arguments);return e._pc=this,e}),e.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}}function q(e){if("object"!=typeof e||!e.RTCPeerConnection||!e.RTCRtpSender)return;if(e.RTCRtpSender&&"getStats"in e.RTCRtpReceiver.prototype)return;const t=e.RTCPeerConnection.prototype.getReceivers;t&&(e.RTCPeerConnection.prototype.getReceivers=function(){const e=t.apply(this,[]);return e.forEach((e=>e._pc=this)),e}),d(e,"track",(e=>(e.receiver._pc=e.srcElement,e))),e.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function Y(e){e.RTCPeerConnection&&!("removeStream"in e.RTCPeerConnection.prototype)&&(e.RTCPeerConnection.prototype.removeStream=function(e){R("removeStream","removeTrack"),this.getSenders().forEach((t=>{t.track&&e.getTracks().includes(t.track)&&this.removeTrack(t)}))})}function z(e){e.DataChannel&&!e.RTCDataChannel&&(e.RTCDataChannel=e.DataChannel)}function Q(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype.addTransceiver;t&&(e.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];const e=arguments[1],r=e&&"sendEncodings"in e;r&&e.sendEncodings.forEach((e=>{if("rid"in e){if(!/^[a-z0-9]{0,16}$/i.test(e.rid))throw new TypeError("Invalid RID value provided.")}if("scaleResolutionDownBy"in e&&!(parseFloat(e.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in e&&!(parseFloat(e.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")}));const o=t.apply(this,arguments);if(r){const{sender:t}=o,r=t.getParameters();(!("encodings"in r)||1===r.encodings.length&&0===Object.keys(r.encodings[0]).length)&&(r.encodings=e.sendEncodings,t.sendEncodings=e.sendEncodings,this.setParametersPromises.push(t.setParameters(r).then((()=>{delete t.sendEncodings})).catch((()=>{delete t.sendEncodings}))))}return o})}function Z(e){if("object"!=typeof e||!e.RTCRtpSender)return;const t=e.RTCRtpSender.prototype.getParameters;t&&(e.RTCRtpSender.prototype.getParameters=function(){const e=t.apply(this,arguments);return"encodings"in e||(e.encodings=[].concat(this.sendEncodings||[{}])),e})}function X(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then((()=>t.apply(this,arguments))).finally((()=>{this.setParametersPromises=[]})):t.apply(this,arguments)}}function ee(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype.createAnswer;e.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then((()=>t.apply(this,arguments))).finally((()=>{this.setParametersPromises=[]})):t.apply(this,arguments)}}var te=Object.freeze({__proto__:null,shimOnTrack:j,shimPeerConnection:J,shimSenderGetStats:W,shimReceiverGetStats:q,shimRemoveStream:Y,shimRTCDataChannel:z,shimAddTransceiver:Q,shimGetParameters:Z,shimCreateOffer:X,shimCreateAnswer:ee,shimGetUserMedia:H,shimGetDisplayMedia:function(e,t){e.navigator.mediaDevices&&"getDisplayMedia"in e.navigator.mediaDevices||e.navigator.mediaDevices&&(e.navigator.mediaDevices.getDisplayMedia=function(r){if(!r||!r.video){const e=new DOMException("getDisplayMedia without video constraints is undefined");return e.name="NotFoundError",e.code=8,Promise.reject(e)}return!0===r.video?r.video={mediaSource:t}:r.video.mediaSource=t,e.navigator.mediaDevices.getUserMedia(r)})}});function re(e){if("object"==typeof e&&e.RTCPeerConnection){if("getLocalStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in e.RTCPeerConnection.prototype)){const t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addStream=function(e){this._localStreams||(this._localStreams=[]),this._localStreams.includes(e)||this._localStreams.push(e),e.getAudioTracks().forEach((r=>t.call(this,r,e))),e.getVideoTracks().forEach((r=>t.call(this,r,e)))},e.RTCPeerConnection.prototype.addTrack=function(e,...r){return r&&r.forEach((e=>{this._localStreams?this._localStreams.includes(e)||this._localStreams.push(e):this._localStreams=[e]})),t.apply(this,arguments)}}"removeStream"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(e){this._localStreams||(this._localStreams=[]);const t=this._localStreams.indexOf(e);if(-1===t)return;this._localStreams.splice(t,1);const r=e.getTracks();this.getSenders().forEach((e=>{r.includes(e.track)&&this.removeTrack(e)}))})}}function oe(e){if("object"==typeof e&&e.RTCPeerConnection&&("getRemoteStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in e.RTCPeerConnection.prototype))){Object.defineProperty(e.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(e){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=e),this.addEventListener("track",this._onaddstreampoly=e=>{e.streams.forEach((e=>{if(this._remoteStreams||(this._remoteStreams=[]),this._remoteStreams.includes(e))return;this._remoteStreams.push(e);const t=new Event("addstream");t.stream=e,this.dispatchEvent(t)}))})}});const t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){const e=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(t){t.streams.forEach((t=>{if(e._remoteStreams||(e._remoteStreams=[]),e._remoteStreams.indexOf(t)>=0)return;e._remoteStreams.push(t);const r=new Event("addstream");r.stream=t,e.dispatchEvent(r)}))}),t.apply(e,arguments)}}}function ie(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype,r=t.createOffer,o=t.createAnswer,i=t.setLocalDescription,s=t.setRemoteDescription,n=t.addIceCandidate;t.createOffer=function(e,t){const o=arguments.length>=2?arguments[2]:arguments[0],i=r.apply(this,[o]);return t?(i.then(e,t),Promise.resolve()):i},t.createAnswer=function(e,t){const r=arguments.length>=2?arguments[2]:arguments[0],i=o.apply(this,[r]);return t?(i.then(e,t),Promise.resolve()):i};let a=function(e,t,r){const o=i.apply(this,[e]);return r?(o.then(t,r),Promise.resolve()):o};t.setLocalDescription=a,a=function(e,t,r){const o=s.apply(this,[e]);return r?(o.then(t,r),Promise.resolve()):o},t.setRemoteDescription=a,a=function(e,t,r){const o=n.apply(this,[e]);return r?(o.then(t,r),Promise.resolve()):o},t.addIceCandidate=a}function se(e){const t=e&&e.navigator;if(t.mediaDevices&&t.mediaDevices.getUserMedia){const e=t.mediaDevices,r=e.getUserMedia.bind(e);t.mediaDevices.getUserMedia=e=>r(ne(e))}!t.getUserMedia&&t.mediaDevices&&t.mediaDevices.getUserMedia&&(t.getUserMedia=function(e,r,o){t.mediaDevices.getUserMedia(e).then(r,o)}.bind(t))}function ne(e){return e&&void 0!==e.video?Object.assign({},e,{video:p(e.video)}):e}function ae(e){if(!e.RTCPeerConnection)return;const t=e.RTCPeerConnection;e.RTCPeerConnection=function(e,r){if(e&&e.iceServers){const t=[];for(let r=0;r<e.iceServers.length;r++){let o=e.iceServers[r];!o.hasOwnProperty("urls")&&o.hasOwnProperty("url")?(R("RTCIceServer.url","RTCIceServer.urls"),o=JSON.parse(JSON.stringify(o)),o.urls=o.url,delete o.url,t.push(o)):t.push(e.iceServers[r])}e.iceServers=t}return new t(e,r)},e.RTCPeerConnection.prototype=t.prototype,"generateCertificate"in t&&Object.defineProperty(e.RTCPeerConnection,"generateCertificate",{get:()=>t.generateCertificate})}function ce(e){"object"==typeof e&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function de(e){const t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(e){if(e){void 0!==e.offerToReceiveAudio&&(e.offerToReceiveAudio=!!e.offerToReceiveAudio);const t=this.getTransceivers().find((e=>"audio"===e.receiver.track.kind));!1===e.offerToReceiveAudio&&t?"sendrecv"===t.direction?t.setDirection?t.setDirection("sendonly"):t.direction="sendonly":"recvonly"===t.direction&&(t.setDirection?t.setDirection("inactive"):t.direction="inactive"):!0!==e.offerToReceiveAudio||t||this.addTransceiver("audio"),void 0!==e.offerToReceiveVideo&&(e.offerToReceiveVideo=!!e.offerToReceiveVideo);const r=this.getTransceivers().find((e=>"video"===e.receiver.track.kind));!1===e.offerToReceiveVideo&&r?"sendrecv"===r.direction?r.setDirection?r.setDirection("sendonly"):r.direction="sendonly":"recvonly"===r.direction&&(r.setDirection?r.setDirection("inactive"):r.direction="inactive"):!0!==e.offerToReceiveVideo||r||this.addTransceiver("video")}return t.apply(this,arguments)}}function ue(e){"object"!=typeof e||e.AudioContext||(e.AudioContext=e.webkitAudioContext)}var _e=Object.freeze({__proto__:null,shimLocalStreamsAPI:re,shimRemoteStreamsAPI:oe,shimCallbacksAPI:ie,shimGetUserMedia:se,shimConstraints:ne,shimRTCIceServerUrls:ae,shimTrackEventTransceiver:ce,shimCreateOfferLegacy:de,shimAudioContext:ue});function le(e){if(!e.RTCIceCandidate||e.RTCIceCandidate&&"foundation"in e.RTCIceCandidate.prototype)return;const t=e.RTCIceCandidate;e.RTCIceCandidate=function(e){if("object"==typeof e&&e.candidate&&0===e.candidate.indexOf("a=")&&((e=JSON.parse(JSON.stringify(e))).candidate=e.candidate.substr(2)),e.candidate&&e.candidate.length){const r=new t(e),o=b.parseCandidate(e.candidate),i=Object.assign(r,o);return i.toJSON=function(){return{candidate:i.candidate,sdpMid:i.sdpMid,sdpMLineIndex:i.sdpMLineIndex,usernameFragment:i.usernameFragment}},i}return new t(e)},e.RTCIceCandidate.prototype=t.prototype,d(e,"icecandidate",(t=>(t.candidate&&Object.defineProperty(t,"candidate",{value:new e.RTCIceCandidate(t.candidate),writable:"false"}),t)))}function Re(e,t){if(!e.RTCPeerConnection)return;"sctp"in e.RTCPeerConnection.prototype||Object.defineProperty(e.RTCPeerConnection.prototype,"sctp",{get(){return void 0===this._sctp?null:this._sctp}});const r=function(e){if(!e||!e.sdp)return!1;const t=b.splitSections(e.sdp);return t.shift(),t.some((e=>{const t=b.parseMLine(e);return t&&"application"===t.kind&&-1!==t.protocol.indexOf("SCTP")}))},o=function(e){const t=e.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(null===t||t.length<2)return-1;const r=parseInt(t[1],10);return r!=r?-1:r},i=function(e){let r=65536;return"firefox"===t.browser&&(r=t.version<57?-1===e?16384:2147483637:t.version<60?57===t.version?65535:65536:2147483637),r},s=function(e,r){let o=65536;"firefox"===t.browser&&57===t.version&&(o=65535);const i=b.matchPrefix(e.sdp,"a=max-message-size:");return i.length>0?o=parseInt(i[0].substr(19),10):"firefox"===t.browser&&-1!==r&&(o=2147483637),o},n=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,"chrome"===t.browser&&t.version>=76){const{sdpSemantics:e}=this.getConfiguration();"plan-b"===e&&Object.defineProperty(this,"sctp",{get(){return void 0===this._sctp?null:this._sctp},enumerable:!0,configurable:!0})}if(r(arguments[0])){const e=o(arguments[0]),t=i(e),r=s(arguments[0],e);let n;n=0===t&&0===r?Number.POSITIVE_INFINITY:0===t||0===r?Math.max(t,r):Math.min(t,r);const a={};Object.defineProperty(a,"maxMessageSize",{get:()=>n}),this._sctp=a}return n.apply(this,arguments)}}function Ce(e){if(!e.RTCPeerConnection||!("createDataChannel"in e.RTCPeerConnection.prototype))return;function t(e,t){const r=e.send;e.send=function(){const o=arguments[0],i=o.length||o.size||o.byteLength;if("open"===e.readyState&&t.sctp&&i>t.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+t.sctp.maxMessageSize+" bytes)");return r.apply(e,arguments)}}const r=e.RTCPeerConnection.prototype.createDataChannel;e.RTCPeerConnection.prototype.createDataChannel=function(){const e=r.apply(this,arguments);return t(e,this),e},d(e,"datachannel",(e=>(t(e.channel,e.target),e)))}function pe(e){if(!e.RTCPeerConnection||"connectionState"in e.RTCPeerConnection.prototype)return;const t=e.RTCPeerConnection.prototype;Object.defineProperty(t,"connectionState",{get(){return{completed:"connected",checking:"connecting"}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(t,"onconnectionstatechange",{get(){return this._onconnectionstatechange||null},set(e){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),e&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=e)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach((e=>{const r=t[e];t[e]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=e=>{const t=e.target;if(t._lastConnectionState!==t.connectionState){t._lastConnectionState=t.connectionState;const r=new Event("connectionstatechange",e);t.dispatchEvent(r)}return e},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),r.apply(this,arguments)}}))}function he(e,t){if(!e.RTCPeerConnection)return;if("chrome"===t.browser&&t.version>=71)return;if("safari"===t.browser&&t.version>=605)return;const r=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(t){if(t&&t.sdp&&-1!==t.sdp.indexOf("\na=extmap-allow-mixed")){const r=t.sdp.split("\n").filter((e=>"a=extmap-allow-mixed"!==e.trim())).join("\n");e.RTCSessionDescription&&t instanceof e.RTCSessionDescription?arguments[0]=new e.RTCSessionDescription({type:t.type,sdp:r}):t.sdp=r}return r.apply(this,arguments)}}function ge(e,t){if(!e.RTCPeerConnection||!e.RTCPeerConnection.prototype)return;const r=e.RTCPeerConnection.prototype.addIceCandidate;r&&0!==r.length&&(e.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?("chrome"===t.browser&&t.version<78||"firefox"===t.browser&&t.version<68||"safari"===t.browser)&&arguments[0]&&""===arguments[0].candidate?Promise.resolve():r.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})}var Te=Object.freeze({__proto__:null,shimRTCIceCandidate:le,shimMaxMessageSize:Re,shimSendThrowTypeError:Ce,shimConnectionState:pe,removeExtmapAllowMixed:he,shimAddIceCandidateNullOrEmpty:ge});const me=function({window:e}={},t={shimChrome:!0,shimFirefox:!0,shimEdge:!0,shimSafari:!0}){const r=l,o=function(e){const t={browser:null,version:null};if(void 0===e||!e.navigator)return t.browser="Not a browser.",t;const{navigator:r}=e;if(r.mozGetUserMedia)t.browser="firefox",t.version=c(r.userAgent,/Firefox\/(\d+)\./,1);else if(r.webkitGetUserMedia||!1===e.isSecureContext&&e.webkitRTCPeerConnection&&!e.RTCIceGatherer)t.browser="chrome",t.version=c(r.userAgent,/Chrom(e|ium)\/(\d+)\./,2);else if(r.mediaDevices&&r.userAgent.match(/Edge\/(\d+).(\d+)$/))t.browser="edge",t.version=c(r.userAgent,/Edge\/(\d+).(\d+)$/,2);else{if(!e.RTCPeerConnection||!r.userAgent.match(/AppleWebKit\/(\d+)\./))return t.browser="Not a supported browser.",t;t.browser="safari",t.version=c(r.userAgent,/AppleWebKit\/(\d+)\./,1),t.supportsUnifiedPlan=e.RTCRtpTransceiver&&"currentDirection"in e.RTCRtpTransceiver.prototype}return t}(e),i={browserDetails:o,commonShim:Te,extractVersion:c,disableLog:u,disableWarnings:_};switch(o.browser){case"chrome":if(!D||!A||!t.shimChrome)return r("Chrome shim is not included in this adapter release."),i;if(null===o.version)return r("Chrome shim can not determine version, not shimming."),i;r("adapter.js shimming chrome."),i.browserShim=D,ge(e,o),m(e,o),S(e),A(e,o),I(e),O(e,o),E(e),f(e),L(e),N(e,o),le(e),pe(e),Re(e,o),Ce(e),he(e,o);break;case"firefox":if(!te||!J||!t.shimFirefox)return r("Firefox shim is not included in this adapter release."),i;r("adapter.js shimming firefox."),i.browserShim=te,ge(e,o),H(e,o),J(e,o),j(e),Y(e),W(e),q(e),z(e),Q(e),Z(e),X(e),ee(e),le(e),pe(e),Re(e,o),Ce(e);break;case"edge":if(!K||!F||!t.shimEdge)return r("MS edge shim is not included in this adapter release."),i;r("adapter.js shimming edge."),i.browserShim=K,V(e),$(e),F(e,o),G(e),Re(e,o),Ce(e);break;case"safari":if(!_e||!t.shimSafari)return r("Safari shim is not included in this adapter release."),i;r("adapter.js shimming safari."),i.browserShim=_e,ge(e,o),ae(e),de(e),ie(e),re(e),oe(e),ce(e),se(e),ue(e),le(e),Re(e,o),Ce(e),he(e,o);break;default:r("Unsupported browser!")}return i}({window:"undefined"==typeof window?void 0:window});var Se,Ie,Ee;exports.RCFrameRate=void 0,(Se=exports.RCFrameRate||(exports.RCFrameRate={})).FPS_10="FPS_10",Se.FPS_15="FPS_15",Se.FPS_24="FPS_24",Se.FPS_30="FPS_30",exports.RCResolution=void 0,(Ie=exports.RCResolution||(exports.RCResolution={})).W176_H132="W176_H132",Ie.W176_H144="W176_H144",Ie.W180_H180="W180_H180",Ie.W240_H180="W240_H180",Ie.W240_H240="W240_H240",Ie.W256_H144="W256_H144",Ie.W320_H180="W320_H180",Ie.W320_H240="W320_H240",Ie.W360_H360="W360_H360",Ie.W480_H360="W480_H360",Ie.W480_H480="W480_H480",Ie.W640_H360="W640_H360",Ie.W640_H480="W640_H480",Ie.W720_H480="W720_H480",Ie.W848_H480="W848_H480",Ie.W960_H720="W960_H720",Ie.W1280_H720="W1280_H720",Ie.W1920_H1080="W1920_H1080",exports.RCMediaType=void 0,(Ee=exports.RCMediaType||(exports.RCMediaType={}))[Ee.AUDIO_ONLY=0]="AUDIO_ONLY",Ee[Ee.VIDEO_ONLY=1]="VIDEO_ONLY",Ee[Ee.AUDIO_VIDEO=2]="AUDIO_VIDEO";const fe={[exports.RCResolution.W176_H132]:{width:176,height:132,maxBitrate:150,minBitrate:80},[exports.RCResolution.W176_H144]:{width:176,height:144,maxBitrate:150,minBitrate:80},[exports.RCResolution.W180_H180]:{width:180,height:180,maxBitrate:200,minBitrate:100},[exports.RCResolution.W240_H180]:{width:240,height:180,maxBitrate:240,minBitrate:120},[exports.RCResolution.W240_H240]:{width:240,height:240,maxBitrate:280,minBitrate:120},[exports.RCResolution.W256_H144]:{width:256,height:144,maxBitrate:240,minBitrate:120},[exports.RCResolution.W320_H180]:{width:320,height:180,maxBitrate:280,minBitrate:120},[exports.RCResolution.W320_H240]:{width:320,height:240,maxBitrate:400,minBitrate:120},[exports.RCResolution.W360_H360]:{width:360,height:360,maxBitrate:520,minBitrate:140},[exports.RCResolution.W480_H360]:{width:480,height:360,maxBitrate:650,minBitrate:150},[exports.RCResolution.W480_H480]:{width:480,height:480,maxBitrate:800,minBitrate:180},[exports.RCResolution.W640_H360]:{width:640,height:360,maxBitrate:800,minBitrate:180},[exports.RCResolution.W640_H480]:{width:640,height:480,maxBitrate:900,minBitrate:200},[exports.RCResolution.W720_H480]:{width:720,height:480,maxBitrate:1e3,minBitrate:200},[exports.RCResolution.W848_H480]:{width:848,height:480,maxBitrate:1860,minBitrate:200},[exports.RCResolution.W960_H720]:{width:960,height:720,maxBitrate:2e3,minBitrate:250},[exports.RCResolution.W1280_H720]:{width:1280,height:720,maxBitrate:2200,minBitrate:250},[exports.RCResolution.W1920_H1080]:{width:1920,height:1080,maxBitrate:4e3,minBitrate:400}},Le=e=>{const t={192:180,368:360,1088:1080};return t[e]?t[e]:e},ve=(e,t)=>{e=Le(e),t=Le(t);const r=fe[`W${e}_H${t}`];if(r)return r;const o=e*t;return Object.keys(fe).map((e=>fe[e])).sort(((e,t)=>e.height*e.width-t.width*t.height)).filter((e=>e.height*e.width>=o))[0]||fe.W1920_H1080},Oe={10:1,15:1,24:1.5,30:1.5},Ae=e=>{let t=Number.MAX_VALUE,r=1;for(const o in Oe){const i=Math.abs(e-parseInt(o));i<t&&(t=i,r=Oe[o])}return r},Ne={getCameras:()=>t(void 0,void 0,void 0,(function*(){return(yield navigator.mediaDevices.enumerateDevices()).filter((e=>"videoinput"===e.kind))})),getMicrophones:()=>t(void 0,void 0,void 0,(function*(){return(yield navigator.mediaDevices.enumerateDevices()).filter((e=>"audioinput"===e.kind))})),getSpeakers:()=>t(void 0,void 0,void 0,(function*(){return(yield navigator.mediaDevices.enumerateDevices()).filter((e=>"audiooutput"===e.kind))}))};var De,ke;!function(e){e.AUDIO="audio",e.VIDEO="video"}(De||(De={}));class ye extends e.EventEmitter{constructor(e,t,r,o,i){super(),this._tag=e,this._userId=t,this._kind=r,this._isLocalTrack=o,this._roomId=i,this._localMuted=!1,this._remoteMuted=!1,this._streamId=[this._userId||this._roomId,this._tag].join("_"),this._id=[this._streamId,this.isAudioTrack()?0:1].join("_")}getStreamId(){return this._streamId}getTrackId(){return this._id}getUserId(){return this._userId}__innerGetMediaStreamTrack(){return this._msTrack}get streamTrack(){return this._msTrack}getTag(){return this._tag}isLocalTrack(){return this._isLocalTrack}isVideoTrack(){return"video"===this._kind}isAudioTrack(){return"audio"===this._kind}isReady(){var e;return"live"===(null===(e=this._msTrack)||void 0===e?void 0:e.readyState)}__innerSetMediaStreamTrack(e){this._msTrack=e,this._setLocalMuted(this._localMuted);const t=this._msStream=this._msStream||new MediaStream,r=t.getTracks()[0];r&&t.removeTrack(r),e?t.addTrack(e):this._element&&(this._element.pause(),this._element.srcObject=null)}_setLocalMuted(e){this._msTrack&&(this._msTrack.enabled=!e),this._localMuted=e}mute(){return r.info(`set ${this._id} enabled: false`),e.logger.info(i.L_TRACK_MUTE_O,{status:s.SUCCESSED,id:this._id},{logSource:e.LogSource.RTC}),this._setLocalMuted(!0)}unmute(){return r.info(`set ${this._id} enabled: true`),e.logger.info(i.L_TRACK_UNMUTE_O,{status:s.SUCCESSED,id:this._id},{logSource:e.LogSource.RTC}),this._setLocalMuted(!1)}isLocalMuted(){return this._localMuted}isMCUTrack(){return Boolean(this._roomId)}isOwnerMuted(){return this._remoteMuted}play(o,n){return t(this,void 0,void 0,(function*(){if(e.logger.info(i.L_TRACK_PLAY_T,{element:o,options:n},{logSource:e.LogSource.RTC}),!this._msTrack)return r.warn(`the track is not ready to play -> id: ${this._id}`),e.logger.error(i.L_TRACK_PLAY_R,{status:s.FAILED,code:exports.RCRTCCode.TRACK_NOT_READY,msg:`play error -> id: ${this._id}`},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.TRACK_NOT_READY};if("ended"===this._msTrack.readyState&&(r.warn(`the track's readyState is 'ended' -> id: ${this._id}`),e.logger.error(i.L_TRACK_PLAY_R,{status:s.FAILED,code:"",msg:`the track's readyState is ended -> id: ${this._id}`},{logSource:e.LogSource.RTC})),null==n?void 0:n.volume){if(!e.isNumber(null==n?void 0:n.volume))return r.error(`${null==n?void 0:n.volume} is not a number, the valid range of options.volume is 0-100`),e.logger.error(i.L_TRACK_PLAY_R,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> options.volume不是数字"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR};(null==n?void 0:n.volume)<0&&(n.volume=0,r.warn("the valid range of options.volume is 0-100, the value of volume has been set 0"),e.logger.warn(i.L_TRACK_PLAY_R,{status:s.FAILED,code:"",msg:"params error -> options.volume < 0"},{logSource:e.LogSource.RTC})),(null==n?void 0:n.volume)>100&&(n.volume=100,r.warn("the valid range of options.volume is 0-100, the value of volume has been set 100"),e.logger.warn(i.L_TRACK_PLAY_R,{status:s.FAILED,code:"",msg:"params error -> options.volume > 100"},{logSource:e.LogSource.RTC}))}if(null==n?void 0:n.audioDeviceId){if(!(yield Ne.getSpeakers()).map((e=>e.deviceId)).includes(n.audioDeviceId))return r.error(`the options.audioDeviceId is invalid --\x3e ${n.audioDeviceId}`),e.logger.error(i.L_TRACK_PLAY_R,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> options.audioDeviceId"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR}}const a=this.isVideoTrack();return!a||o&&(o instanceof HTMLVideoElement||this.__validateVideoNodeName(o))?(this._element=a?o:this._element||new Audio,this._localMuted&&this._setLocalMuted(!1),this._element.srcObject&&this._element.srcObject===this._msStream||this._element.pause(),this._element.onloadstart=t=>{var o,n;r.debug(`HTMLMediaElement onloadstart -> id: ${null===(o=t.target)||void 0===o?void 0:o.id}, trackId: ${this._id}`),e.logger.info(i.L_TRACK_PLAY_R,{status:s.INFO,msg:`HTMLMediaElement onloadstart -> id: ${null===(n=t.target)||void 0===n?void 0:n.id}, trackId: ${this._id}`},{logSource:e.LogSource.RTC})},this._element.ondurationchange=t=>{var o,n;r.debug(`HTMLMediaElement ondurationchange -> id: ${null===(o=t.target)||void 0===o?void 0:o.id}, trackId: ${this._id}`),e.logger.info(i.L_TRACK_PLAY_R,{status:s.INFO,msg:`HTMLMediaElement ondurationchange -> id: ${null===(n=t.target)||void 0===n?void 0:n.id}, trackId: ${this._id}`},{logSource:e.LogSource.RTC})},this._element.onloadedmetadata=t=>{var o,n;r.debug(`HTMLMediaElement onloadedmetadata -> id: ${null===(o=t.target)||void 0===o?void 0:o.id}, trackId: ${this._id}`),e.logger.info(i.L_TRACK_PLAY_R,{status:s.INFO,msg:`HTMLMediaElement onloadedmetadata -> id: ${null===(n=t.target)||void 0===n?void 0:n.id}, trackId: ${this._id}`},{logSource:e.LogSource.RTC})},this._element.onloadeddata=t=>{var o,n;r.debug(`HTMLMediaElement onloadeddata -> id: ${null===(o=t.target)||void 0===o?void 0:o.id}, trackId: ${this._id}`),e.logger.info(i.L_TRACK_PLAY_R,{status:s.INFO,msg:`HTMLMediaElement onloadeddata -> id: ${null===(n=t.target)||void 0===n?void 0:n.id}, trackId: ${this._id}`},{logSource:e.LogSource.RTC})},this._element.onabort=t=>{var o,n;r.info(`HTMLMediaElement onabort -> id: ${null===(o=t.target)||void 0===o?void 0:o.id}, trackId: ${this._id}`),e.logger.info(i.L_TRACK_PLAY_R,{status:s.INFO,msg:`HTMLMediaElement onabort -> id: ${null===(n=t.target)||void 0===n?void 0:n.id}, trackId: ${this._id}`},{logSource:e.LogSource.RTC})},this._element.oncanplay=o=>t(this,void 0,void 0,(function*(){var t,c,d;r.info(`HTMLMediaElement oncanplay -> id: ${null===(t=o.target)||void 0===t?void 0:t.id}, trackId: ${this._id}`),e.logger.info(i.L_TRACK_PLAY_R,{status:s.INFO,msg:`HTMLMediaElement oncanplay -> id: ${null===(c=o.target)||void 0===c?void 0:c.id}, trackId: ${this._id}`},{logSource:e.LogSource.RTC});try{yield null===(d=this._element)||void 0===d?void 0:d.play(),(null==n?void 0:n.audioDeviceId)&&!a&&(yield this._element.setSinkId(n.audioDeviceId))}catch(t){if("No permission to use requested device"===t.message)return r.error(`setSinkId failed -> ${t.message}`),void e.logger.error(i.L_TRACK_PLAY_R,{status:s.FAILED,code:exports.RCRTCCode.NO_PERMISSION_TO_USE_REQUESTED_DEVICE,msg:"No permission"},{logSource:e.LogSource.RTC});r.error(t),e.logger.error(i.L_TRACK_PLAY_R,{status:s.FAILED,code:exports.RCRTCCode.TRACK_PLAY_ERROR,msg:"play error"},{logSource:e.LogSource.RTC})}})),this._element.onvolumechange=t=>{var o,n;const a=Math.floor(100*(null===(o=t.target)||void 0===o?void 0:o.volume));r.info(`HTMLMediaElement onvolumechange -> volume: ${a}, trackId: ${this._id}`),e.logger.info(i.L_TRACK_PLAY_R,{status:s.INFO,msg:`HTMLMediaElement onvolumechange -> id: ${null===(n=t.target)||void 0===n?void 0:n.id}, trackId: ${this._id}`},{logSource:e.LogSource.RTC})},this._element.srcObject=this._msStream,this._element.autoplay=!0,a&&(this._element.playsInline=!0,this._element.x5PlaysInline=!0,this._element.webkitPlaysInline=!0),a||!(null==n?void 0:n.volume)&&0!==(null==n?void 0:n.volume)||(this._element.volume=(null==n?void 0:n.volume)/100),e.logger.info(i.L_TRACK_PLAY_R,{status:s.SUCCESSED,element:o,options:n},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SUCCESS}):(r.error(`the video track need an <video> to play -> id: ${this._id}`),e.logger.error(i.L_TRACK_PLAY_R,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> element不是一个video标签"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.VIDEO_TRACK_MISS_MEDIA_ELEMENT})}))}__innerDestroy(){this.__innerSetMediaStreamTrack(void 0)}__releaseMediaElement(){this._element&&(this._element.remove(),this._element.srcObject=null)}__validateVideoNodeName(e){return e&&e.nodeName&&"VIDEO"===e.nodeName.toUpperCase()}}exports.RCAudioBitrate=void 0,(ke=exports.RCAudioBitrate||(exports.RCAudioBitrate={})).Speech="Speech",ke.Music="Music",ke.MusicHigh="MusicHigh";const be={[exports.RCAudioBitrate.Music]:{max:64,min:64},[exports.RCAudioBitrate.MusicHigh]:{max:128,min:128},[exports.RCAudioBitrate.Speech]:{max:32,min:32}};var Ue;exports.RCVideoBitrate=void 0,(Ue=exports.RCVideoBitrate||(exports.RCVideoBitrate={})).LEVEL0="LEVEL0",Ue.LEVEL1="LEVEL1",Ue.LEVEL2="LEVEL2",Ue.LEVEL3="LEVEL3",Ue.LEVEL4="LEVEL4",Ue.LEVEL5="LEVEL5";const Pe={[exports.RCVideoBitrate.LEVEL0]:{max:150,min:80},[exports.RCVideoBitrate.LEVEL1]:{max:280,min:120},[exports.RCVideoBitrate.LEVEL2]:{max:650,min:150},[exports.RCVideoBitrate.LEVEL3]:{max:1e3,min:200},[exports.RCVideoBitrate.LEVEL4]:{max:2200,min:250},[exports.RCVideoBitrate.LEVEL5]:{max:4e3,min:400}};class Me{static setStatus(e=!0){Me.isOpen=e}static setWroklet(e,t){Me.workletModule=e,Me.workletModule=t}static transformStreamTrack(o){var n;return t(this,void 0,void 0,(function*(){if(!Me.isOpen)return new Promise((e=>{e({track:null==o?void 0:o.getAudioTracks()[0],stop:()=>{}})}));let t=new AudioContext({sampleRate:44100}),a=t.createMediaStreamSource(o),c=t.createMediaStreamDestination(),d=null,u=null;if(d=yield t.audioWorklet.addModule(Me.workletModule).then((()=>(r.info(i.L_RTC_3ANOISE_NODE_O,{status:s.SUCCESSED,message:{msg:"addModule RC3AnoiseTrack.workletModule success"}},{logSource:e.LogSource.RTC}),fetch(Me.workletWasm,{cache:"force-cache",credentials:"same-origin"}).then((function(e){return e.arrayBuffer()})).catch((e=>{throw new Error(e.message)}))))).then((e=>(u=new AudioWorkletNode(t,"process-worklet",{numberOfInputs:1,numberOfOutputs:1,outputChannelCount:[1],processorOptions:{binary:e}}),u))).catch((t=>{r.info(i.L_RTC_3ANOISE_NODE_E,{status:s.FAILED,message:{msg:t.message}},{logSource:e.LogSource.RTC})})),!d)return new Promise((e=>{e({track:null==o?void 0:o.getAudioTracks()[0],stop:()=>{}})}));a.connect(d).connect(c);let _=null===(n=null==c?void 0:c.stream)||void 0===n?void 0:n.getAudioTracks()[0],l=()=>{r.info(i.L_RTC_3ANOISE_NODE_STOP_O,{status:s.SUCCESSED,message:{msg:"call stop RC3AnoiseTrack.workletModule"}},{logSource:e.LogSource.RTC}),null==d||d.port.postMessage({type:"stop",msg:""}),setTimeout((()=>{const e=null==o?void 0:o.getAudioTracks()[0];null==e||e.stop(),t.suspend(),t.close(),c.disconnect(),d.disconnect(),a.disconnect(),t=null,d=null,c=null,a=null,u=null,o=null,null==_||_.stop(),_=null,l=null}),200)};return{track:_,stop:l}}))}}Me.workletModule="https://cdn.ronghub.com/plugin-rtc/wasm/5.0.0-alpha.2/process-worklet.js",Me.workletWasm="https://cdn.ronghub.com/plugin-rtc/wasm/5.0.0-alpha.2/AudioProcessing.wasm",Me.isOpen=!1;class xe extends ye{constructor(e,t,r,o){super(e,t,r,!0),this._isDestroyed=!1,this._isPublished=!1,this.__innerSetMediaStreamTrack(o),o.onended=()=>{o.onended=null,this.emit(xe.EVENT_LOCAL_TRACK_END,this),this.removeAll(xe.EVENT_LOCAL_TRACK_END)}}_setLocalMuted(t){return new Promise(((r,o)=>{const n=this._localMuted!==t;super._setLocalMuted(t),this._remoteMuted=this._localMuted,n&&this.emit(xe.__INNER_EVENT_MUTED_CHANGE__,this,r),e.logger.info(i.L_LOCAL_TRACK_SET_LOCAL_MUTED_O,{status:s.SUCCESSED,bool:t},{logSource:e.LogSource.RTC})}))}__innerSetPublished(t){e.logger.info(i.L_LOCAL_TRACK_INNER_SET_PUBLISHED_O,{status:s.SUCCESSED,bool:t},{logSource:e.LogSource.RTC}),this._isPublished=t}isPublished(){return this._isPublished}destroy(){var t;r.info(`track is destroyed -> trackId: ${this.getTrackId()}`),this._isDestroyed=!0,null===(t=this._msTrack)||void 0===t||t.stop(),super.__innerDestroy(),this.isAudioTrack()&&super.__releaseMediaElement(),this.emit(xe.__INNER_EVENT_DESTROY__,this),e.logger.info(i.L_LOCAL_TRACK_DESTROY_O,{status:s.SUCCESSED},{logSource:e.LogSource.RTC})}isDestroyed(){return this._isDestroyed}setBitrate(t=0,o=0,n=0){if(!e.isNumber(t)||!e.isNumber(o)||!e.isNumber(n)||t<=0||o<=0||t<o)return r.error("setBitrate params error ->"),void e.logger.error(i.L_LOCAL_TRACK_SET_BITRATE_O,{status:s.FAILED,code:"",msg:`params error -> max: ${t},min: ${o}, start: ${n}`},{logSource:e.LogSource.RTC});e.logger.info(i.L_LOCAL_TRACK_SET_BITRATE_O,{status:s.SUCCESSED,max:t,min:o,start:n},{logSource:e.LogSource.RTC}),this._bitrateInfo={max:t,min:o,start:n}}getBitrate(){var e,t,r,o,i,s,n;let{min:a,max:c,start:d}={min:0,max:0,start:0};return(null===(e=this._msTrack)||void 0===e?void 0:e.kind)===De.VIDEO?({min:a,max:c}=tt(this._msTrack)):(null===(t=this._msTrack)||void 0===t?void 0:t.kind)===De.AUDIO&&({min:a,max:c}={min:32,max:32}),(null===(r=this._bitrateInfo)||void 0===r?void 0:r.max)&&(d=.7*(null===(o=this._bitrateInfo)||void 0===o?void 0:o.max)),{min:(null===(i=this._bitrateInfo)||void 0===i?void 0:i.min)||a,max:(null===(s=this._bitrateInfo)||void 0===s?void 0:s.max)||c,start:(null===(n=this._bitrateInfo)||void 0===n?void 0:n.start)||d}}}xe.EVENT_LOCAL_TRACK_END="local-track-end",xe.__INNER_EVENT_MUTED_CHANGE__="inner-muted-change",xe.__INNER_EVENT_DESTROY__="inner-destroy";class we extends xe{constructor(e,t,r){super(e,t,"audio",r),this._stopProcess=()=>{}}setRecommendBitrate(t){if(!e.validate("livingType",t,(e=>e in exports.RCAudioBitrate)))return void e.logger.warn(i.L_RTC_SET_RECOMMEND_BITRATE_O,{status:s.FAILED,msg:"params error -> setRecommendBitrate Audio"},{logSource:e.LogSource.RTC});const r=be[t];this.setBitrate(r.max,r.min,r.start||.7*r.max)}setBitrate(e,...t){const[r=1,o=.7*e||1]=t;super.setBitrate(e,r,o)}__innerSetMediaStreamTrack(e){if(e)if(Me.isOpen){const t=new MediaStream([e]);Me.transformStreamTrack(t).then((({track:e,stop:t})=>{super.__innerSetMediaStreamTrack(e),this._stopProcess=t}))}else super.__innerSetMediaStreamTrack(e);else super.__innerSetMediaStreamTrack(e),this._stopProcess()}}class Be extends xe{constructor(e,t,r,o=!1){super(e,t,"video",r),this._isTiny=o}__isTiny(){return this._isTiny}getStreamId(){const e=super.getStreamId();return this._isTiny?`${e}_tiny`:e}getTrackId(){const e=super.getTrackId();return this._isTiny?`${e}_tiny`:e}setRecommendBitrate(t){if(!e.validate("livingType",t,(e=>e in exports.RCVideoBitrate)))return void e.logger.warn(i.L_RTC_SET_RECOMMEND_BITRATE_O,{status:s.FAILED,msg:"params error -> setRecommendBitrate Video"},{logSource:e.LogSource.RTC});const r=Pe[t];this.setBitrate(r.max,r.min,r.start||.7*r.max)}setBitrate(e,...t){const[r=1,o=.7*e||1]=t;super.setBitrate(e,r,o)}}class Ve extends xe{constructor(e,t,r,o,i){super(e,t,r,o),this._resource=i,Ve.__innerSetMapping(this.getTrackId(),i)}static __innerSetMapping(e,t){const r=this._mapping.get(t)||[];r.push(e),this._mapping.set(t,r)}static __innerRemoveMapping(e,t){var r,o;const i=null===(r=this._mapping.get(t))||void 0===r?void 0:r.filter((t=>t!==e));i&&i.length>0?this._mapping.set(t,i):(this._mapping.delete(t),t.pause(),t.src="",null===(o=t.parentNode)||void 0===o||o.removeChild(t))}destroy(){this.isAudioTrack()&&this.mute(),Ve.__innerRemoveMapping(this.getTrackId(),this._resource),super.destroy()}}Ve._mapping=new Map;class $e extends Ve{constructor(e,t,r,o){super(e,t,"video",r,o)}}class Fe extends Ve{constructor(e,t,r,o){super(e,t,"audio",r,o),this._stopProcess=()=>{}}_setLocalMuted(e){const r=Object.create(null,{_setLocalMuted:{get:()=>super._setLocalMuted}});return t(this,void 0,void 0,(function*(){return this._resource&&(this._resource.muted=e),r._setLocalMuted.call(this,e)}))}play(){return this._setLocalMuted(!1),Promise.resolve({code:exports.RCRTCCode.SUCCESS})}__innerSetMediaStreamTrack(e){if(e)if(Me.isOpen){const t=new MediaStream([e]);Me.transformStreamTrack(t).then((({track:e,stop:t})=>{super.__innerSetMediaStreamTrack(e),this._stopProcess=t}))}else super.__innerSetMediaStreamTrack(e);else super.__innerSetMediaStreamTrack(e),this._stopProcess()}}class Ge extends we{}class Ke extends Be{}class He extends Be{}class je extends we{}class Je extends ye{constructor(e,t,r,o){super(e,t,r,!1,o),this._isSubscribed=!1}__innerSetRemoteMuted(e){this._remoteMuted=e}__innerSetSubscribed(t){this._isSubscribed=t,e.logger.info(i.L_REMOTE_TRACK_INNER_SET_SUBSCRIBED_O,{status:s.SUCCESSED,bool:t},{logSource:e.LogSource.RTC})}isSubscribed(){return this._isSubscribed}}class We extends Je{constructor(e,t,r){super(e,t,"audio",r)}}class qe extends Je{constructor(e,t,r){super(e,t,"video",r),this._isSubTiny=!1}__innerSetIsTinyTrack(e){this._isSubTiny=e}isSubTiny(){return this._isSubTiny}}const Ye=(e,t)=>({name:e,content:JSON.stringify({uris:t,ignore:!0})}),ze=e=>JSON.stringify(e),Qe=e=>/^[a-zA-Z\d-=]+$/g.test(e),Ze="http:"!==location.protocol||["localhost","127.0.0.1"].includes(location.hostname),Xe=t=>{if(void 0===t)return 0;if(e.isNumber(t))return t;const r=t;return r.exact||r.ideal||r.max||0},et=e=>{const t=e.getSettings(),r=e.getConstraints();return{width:Xe(r.width)||t.width||0,height:Xe(r.height)||t.height||0,frameRate:t.frameRate||Xe(r.frameRate)}},tt=e=>{const{width:t,height:r,frameRate:o}=et(e),i=ve(t||1920,r||1080),s=Ae(o);return{min:i.minBitrate*s,max:i.maxBitrate*s}},rt=e=>[e.msid,e.mediaType].join("_"),ot=e=>{const t=e.split("_");return{mediaType:parseInt(t.pop()),tag:t.pop(),userId:t.join("_")}},it=(e,t)=>[e,t].join("_"),st=e=>e.map((e=>Object.assign({},e))),nt=(e,t,r=!1)=>{e=e.slice();const o=[],i=[],s=[];return t.forEach((t=>{const i=rt(t);let n=e.findIndex((e=>rt(e)===i));if(r&&(n=e.findIndex((e=>e.uri===t.uri))),-1===n)return void o.push(t);const a=e[n];a.uri!==t.uri?o.push(t):a.state!==t.state&&s.push(t),e.splice(n,1)})),i.push(...e),{publishedList:o,unpublishedList:i,modifiedList:s}},at=()=>{let e="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}));return e=e.replace(/-/g,"")+"0",e=parseInt(e,16),e=(e=>{const t="0123456789abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ+/".split(""),r=t.length+1;let o=+e;const i=[];do{const e=o%r;o=(o-e)/r,i.unshift(t[e])}while(o);return i.join("")})(e),e.length>22&&(e=e.slice(0,22)),e},ct=e=>{if(fe[e]){const{width:t,height:r}=fe[e];return{width:t,height:r}}const[t,r]=e.split("_").map((e=>parseInt(e.replace(/[^\d]/g,""))));return{width:t,height:r}},dt=e=>!!exports.RCResolution[e],ut=e=>!!exports.RCFrameRate[e],_t=e=>parseInt(e.replace("FPS_","")),lt=(()=>{const{browser:e,version:t,supportsUnifiedPlan:r}=me.browserDetails;return{browser:e,version:t,supportsUnifiedPlan:!1!==r}})();function Rt(){return"captureStream"in HTMLMediaElement.prototype||"mozCaptureStream"in HTMLMediaElement.prototype}function Ct(){return"mediaDevices"in navigator&&"getDisplayMedia"in navigator.mediaDevices}const pt=e=>"[object Null]"===Object.prototype.toString.call(e),ht=e=>1===e.type,gt=(e,t)=>{const o={},i=Object.keys(e.users);return i.length&&i.forEach((i=>{const s=[],n=e.users[i];if(n.extra){const e=JSON.parse(n.extra).roomId;if(t!==e)return}if(n.uris)try{s.push(...JSON.parse(n.uris))}catch(e){r.warn(`invalid user data -> userId: ${i}, userData: ${n}`)}o[i]=s})),o},Tt=e=>e instanceof ye?e.getTrackId():e.track.getTrackId(),mt=t=>{if(!e.isObject(t)||void 0===t.low||void 0===t.high)return t;let r=t.low;r<0&&(r+=4294967296),r=r.toString(16);return parseInt(t.high.toString(16)+"00000000".replace(new RegExp("0{"+r.length+"}$"),r),16)};var St,It;!function(e){e.PUBLISH="RCRTC:PublishResource",e.UNPUBLISH="RCRTC:UnpublishResource",e.MODIFY="RCRTC:ModifyResource",e.TOTAL_CONTENT_RESOURCE="RCRTC:TotalContentResources",e.STATE="RCRTC:state",e.ROOM_NOTIFY="RCRTC:RoomNtf",e.USER_NOTIFY="RCRTC:UserNtf",e.KICK="RCRTC:kick",e.PK_INVITE="RCRTC:invite",e.PK_INVITE_TIMEOUT="RCRTC:inviteTimeout",e.PK_CANCEL_INVITE="RCRTC:cancelInvite",e.PK_INVITE_ANSWER="RCRTC:answerInvite",e.PK_END="RCRTC:endInvite",e.OTHER_ROOM_OFFLINE="RCRTC:otherRoomOffline",e.ROOM_TASK_FINISH="RCRTC:roomTaskFinish"}(St||(St={})),exports.RCRTCPingResult=void 0,(It=exports.RCRTCPingResult||(exports.RCRTCPingResult={})).SUCCESS="Success",It.FAIL="Fail";class Et{constructor(e,t,r,o=5e3,i=6e4){this._roomId=e,this._roomMode=t,this._context=r,this._gap=o,this._offlineKickTime=i,this._latestTimestamp=Date.now(),this._started=!1,this._timer=null}start(){this._started||(r.info("rtcping start ->"),e.logger.info(i.L_PINGER_START_O,{status:s.SUCCESSED,interval:this._gap},{logSource:e.LogSource.RTC}),this._started=!0,this._checkAlive())}_sendPing(){return new Promise((t=>{this._context.rtcPing(this._roomId,this._roomMode).then(t).catch((o=>{r.error(`rtcping receive unknown error -> ${o}`),t(e.ErrorCode.UNKNOWN)})),setTimeout(t,5e3,e.ErrorCode.TIMEOUT)}))}_checkAlive(){var o,n,a;return t(this,void 0,void 0,(function*(){r.info("rtcping ->");const t=yield this._sendPing(),c=Date.now();return t===e.ErrorCode.SUCCESS?(r.info("rtcping success ->"),this._latestTimestamp=c,null===(o=this.onPingResult)||void 0===o||o.call(this,exports.RCRTCPingResult.SUCCESS),void(this._timer=setTimeout((()=>this._checkAlive()),this._gap))):(t===e.ErrorCode.TIMEOUT&&e.logger.error(i.L_PINGER_TIMEOUT_O,{status:s.TIMEOUT},{logSource:e.LogSource.RTC}),r.warn(`rtcping failed -> code: ${t}`),null===(n=this.onPingResult)||void 0===n||n.call(this,exports.RCRTCPingResult.FAIL),40003===t||c-this._latestTimestamp>this._offlineKickTime?(this.stop(),void(null===(a=this.onFailed)||void 0===a||a.call(this,40003===t))):void(this._timer=setTimeout((()=>this._checkAlive()),500)))}))}stop(){this._started&&(r.info("rtcping stop ->"),e.logger.info(i.L_PINGER_STOP_O,{status:s.SUCCESSED},{logSource:e.LogSource.RTC}),this._started=!1,this._timer&&(clearTimeout(this._timer),this._timer=null))}}const ft=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})),Lt=(o,i,s)=>t(void 0,void 0,void 0,(function*(){const n=[];return yield Promise.any(o.map((o=>t(void 0,void 0,void 0,(function*(){const t=`${o.detectorAddr.replace(/^(https?:\/\/)?/,"https://")}/rtc/detector/ping?t=${a=1e3,c=9999,a+Math.floor(Math.random()*(c-a))}`;var a,c;const d={jwt:s},u=yield i.httpReq({url:t,body:JSON.stringify(d),timeout:e.PING_REQ_TIMEOUT,method:e.HttpMethod.POST});if(r.info(`ping res => ${JSON.stringify({status:u.status,host:o})}`),200!==u.status)return Promise.reject();n.push(o.clusterId)}))))),n})),vt=(o,i)=>t(void 0,void 0,void 0,(function*(){const t=(e=>{var t;if(!e)return"";let o;try{o=JSON.parse(e.voipCallInfo||'{ "strategy": 0 }')}catch(t){return r.warn("parse `voipCallInfo` of navi failed: "+e.voipCallInfo),""}if(0===o.strategy)return"";const i=null===(t=o.callEngine)||void 0===t?void 0:t.filter((e=>4===e.engineType));if(!i||0===i.length)return"";const s=i[0];return s.detectorManager?s.detectorManager:""})(i),s=(n=i)&&n.jwt||"";var n;let a=null,c=120,d=0;const u={jwt:s};if(t&&s){const r=yield o.httpReq({url:`${t}/rtc/detector/servers`,body:JSON.stringify(u),headers:{"Content-Type":"application/json;charset=UTF-8","Cache-Control":"no-cache",ClientType:`web|${lt.browser}|${lt.version}`,ClientVersion:"5.5.6","Client-Session-Id":ft(),"Request-Id":Date.now().toString()},method:e.HttpMethod.POST}),i=r.data&&JSON.parse(r.data).detectorAddrs;c=r.data&&JSON.parse(r.data).clientDetectMinute,d=r.data&&JSON.parse(r.data).resultCode,i&&e.isArray(i)&&(a=yield Lt(i,o,s))}return{fastMediaUrl:a,clientDetectMinute:c,status:d}})),Ot=()=>({"Content-Type":"application/json;charset=UTF-8","Cache-Control":"no-cache",ClientType:`web|${lt.browser}|${lt.version}`,ClientVersion:"5.5.6","Client-Session-Id":ft(),"Request-Id":Date.now().toString()});class At{constructor(t,r,o,i=5e3){this._runtime=t,this._context=r,this._msUrl=o,this._timeout=i,this._msInNavi=[],this._failedMs=[],this._rtcFinger=void 0,this._clusterId="",this._configUrl="",this._msList=[],At.isDetector||r.getConnectionStatus()!==e.ConnectionStatus.CONNECTED||this.detectorMediaSever()}detectorMediaSever(){if(this._msUrl)return;const t=Date.now(),r=At.detectValidMinute+At.detectorTime>t;At.isDetector=r,e.logger.info(`set msInDetector => ${JSON.stringify(At.msInDetector)}`);const o=this._context.getNaviInfo();!r&&o&&e.notEmptyObject(o)&&(this._msList=[],this._getDetectorUrls(o))}_getDetectorUrls(e){return t(this,void 0,void 0,(function*(){if(At.isDetector)return;At.isDetector=!0;const{fastMediaUrl:t,clientDetectMinute:o,status:i}=yield vt(this._runtime,e);if(i===exports.RCRTCCode.JWT_TIME_OUT&&At.naviRefetchCount<5){this._context.getPluginContext().refetchNaviInfo().then((()=>{this.detectorMediaSever()})),++At.naviRefetchCount,r.info(`RCMediaService refetch navi count => ${At.naviRefetchCount}`)}At.msInDetector=t||[],At.detectorTime=Date.now(),At.detectValidMinute=60*o*1e3,r.info(`RCMediaService detectorTime => ${At.detectorTime}`),r.info(`RCMediaService detectValidMinute => ${At.detectValidMinute}`)}))}getNaviMS(){return this._msUrl?[this._msUrl]:(e.notEmptyArray(this._msList)&&!this._clusterId||(this._msList=this.setMediaServiceList()),this._msList)}setMediaServiceList(){let t=[],o=[];return this._clusterId&&(this._clusterId=this._clusterId.replace(/^(https?:\/\/)?/,"https://"),this._msList.push(this._clusterId)),r.info(`MediaServiceList _clusterId -> ${this._clusterId}`),e.notEmptyArray(At.msInDetector)&&(At.msInDetector=At.msInDetector.map((e=>e.replace(/^(https?:\/\/)?/,"https://"))),this._msList.push(At.msInDetector[0]),t=At.msInDetector.concat().splice(1,At.msInDetector.length-1)),r.info(`MediaServiceList msInDetector ->${JSON.stringify(At.msInDetector)}`),0===this._msInNavi.length&&(0===this._failedMs.length?this._msInNavi.push(...(e=>{var t;if(!e)return[];let o;try{o=JSON.parse(e.voipCallInfo||'{ "strategy": 0 }')}catch(t){return r.warn("parse `voipCallInfo` of navi failed: "+e.voipCallInfo),[]}if(0===o.strategy)return[];const i=null===(t=o.callEngine)||void 0===t?void 0:t.filter((e=>4===e.engineType));if(!i||0===i.length)return[];const s=i[0],n=[];return s.mediaServer&&n.push(s.mediaServer.replace(/^(https?:\/\/)?/,"https://")),s.backupMediaServer&&s.backupMediaServer.forEach((e=>{n.push(e.replace(/^(https?:\/\/)?/,"https://"))})),n})(this._context.getNaviInfo())):(this._msInNavi.push(...this._failedMs),this._failedMs.length=0)),r.info(`MediaServiceList _msInNavi-> ${JSON.stringify(this._msInNavi)}`),o=this._msInNavi.concat().splice(1,this._msInNavi.length-1),this._msList.push(this._msInNavi[0]),this._msList=[...this._msList,...t,...o],this._msList=[...new Set(this._msList)],r.info(`MediaServiceList msList -> ${JSON.stringify(this._msList)}`),this._msList}_request(o,n,a){return t(this,void 0,void 0,(function*(){const t=this.getNaviMS();if(0===t.length)return r.warn(`request '${o}' failed -> have no valid service address.`),e.logger.error(i.L_MEDIA_SERVICE_REQUEST_R,{status:s.FAILED,code:exports.RCRTCCode.NOT_OPEN_VIDEO_AUDIO_SERVER,msg:"invalid navi_url"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.NOT_OPEN_VIDEO_AUDIO_SERVER};this._rtcFinger&&(a.rtcFinger=this._rtcFinger);for(let c=0;c<t.length;c+=1){const d=`${t[c]}${o}`,u=Ot(),_=Object.assign(Object.assign({},u),n),l=JSON.stringify(a),R=u["Request-Id"];e.logger.info(i.L_MEDIA_SERVICE_REQUEST_T,{path:o,headers:n,body:a,reqId:R},{logSource:e.LogSource.RTC}),r.info(`request -> Request-Id: ${R}, url: ${d}, headers: ${JSON.stringify(_)}, body: ${l}, timeout: ${this._timeout}`);const{status:C,data:p}=yield this._runtime.httpReq({url:d,body:l,headers:_,method:e.HttpMethod.POST,timeout:this._timeout});if(200===C){const t=JSON.parse(p);return t.rtcFinger&&(this._rtcFinger=t.rtcFinger),t.clusterId&&(this._clusterId=t.clusterId),r.info(`request success -> Request-Id: ${R}`),e.logger.info(i.L_MEDIA_SERVICE_REQUEST_R,{status:s.SUCCESSED,url:d,reqId:R},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SUCCESS,data:t}}r.warn(`request failed -> Request-Id: ${R}, status: ${C}, url: ${d}`),this._failedMs.push(...this._msInNavi.splice(c,1)),e.logger.error(i.L_MEDIA_SERVICE_REQUEST_R,{status:s.FAILED,code:"",reqId:R,url:d,msg:`request error -> Request-Id: ${R}, status: ${C}, url: ${d}`},{logSource:e.LogSource.RTC})}return{code:exports.RCRTCCode.REQUEST_FAILED}}))}exchange(e,r){var o;return t(this,void 0,void 0,(function*(){const t=yield this._request("/exchange",e,r);if(t.code===exports.RCRTCCode.SUCCESS&&(null===(o=t.data)||void 0===o?void 0:o.resultCode)===exports.RCRTCCode.SUCCESS){const e=t.data.urls;e&&(this._configUrl=e.configUrl)}return t}))}exit(e){return t(this,void 0,void 0,(function*(){const{code:t}=yield this._request("/exit",e,{});return t}))}broadcastSubscribe(e,t){return this._request("/broadcast/subscribe",e,t)}broadcastExit(e){return t(this,void 0,void 0,(function*(){const{code:t}=yield this._request("/broadcast/exit",e,{});return{code:t}}))}setMcuConfig(o,n){return t(this,void 0,void 0,(function*(){if(e.logger.info(i.L_MEDIA_SERVICE_SET_MCU_CONFIG_T,{headers:o,body:n},{logSource:e.LogSource.RTC}),!this._configUrl)return r.warn("RCMediaService.setMcuConfig failed -> RCRTCCode.MCU_SERVER_NOT_FOUND"),e.logger.error(i.L_MEDIA_SERVICE_SET_MCU_CONFIG_R,{status:s.FAILED,code:exports.RCRTCCode.MCU_SERVER_NOT_FOUND,msg:"MCU not found"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.MCU_SERVER_NOT_FOUND};const t=`${this._configUrl.replace(/^(https?:\/\/)?/,"https://")}/server/mcu/config`,a=Ot(),c=Object.assign(Object.assign({},a),o),d=JSON.stringify(n),u=a["Request-Id"];r.info(`request -> Request-Id: ${u}, url: ${t}, headers: ${JSON.stringify(c)}, body: ${d}`);const{status:_,data:l}=yield this._runtime.httpReq({url:t,headers:c,body:d,method:e.HttpMethod.POST});if(200===_){r.info(`request success -> Request-Id: ${u}`);const t=JSON.parse(l);return e.logger.info(i.L_MEDIA_SERVICE_SET_MCU_CONFIG_R,{status:s.SUCCESSED,reqId:u},{logSource:e.LogSource.RTC}),{code:t.resultCode,res:t}}return r.warn(`request failed -> Request-Id: ${u}, status: ${_}, url: ${t}`),e.logger.error(i.L_MEDIA_SERVICE_SET_MCU_CONFIG_R,{status:s.FAILED,code:exports.RCRTCCode.REQUEST_FAILED,msg:`request error -> Request-Id: ${u}, status: ${_}, url: ${t}`},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.REQUEST_FAILED}}))}getCDNResourceInfo(o,n){return t(this,void 0,void 0,(function*(){e.logger.info(i.L_MEDIA_SERVICE_GET_CDN_RESOURCE_INFO_T,{headers:o,url:n},{logSource:e.LogSource.RTC});const t=Ot(),a=Object.assign(Object.assign({},t),o),c=t["Request-Id"];r.info(`request -> Request-Id: ${c}, url: ${n}, headers: ${JSON.stringify(a)}`);const{status:d,data:u}=yield this._runtime.httpReq({url:n,headers:a,method:e.HttpMethod.GET});if(200===d){r.info(`request success -> Request-Id: ${t["Request-Id"]}`);const o=JSON.parse(u);return e.logger.info(i.L_MEDIA_SERVICE_GET_CDN_RESOURCE_INFO_R,{status:s.SUCCESSED,reqId:t["Request-Id"]},{logSource:e.LogSource.RTC}),{code:o.resultCode,res:o}}return r.warn(`request failed -> Request-Id: ${t["Request-Id"]}, status: ${d}, url: ${n}`),e.logger.info(i.L_MEDIA_SERVICE_GET_CDN_RESOURCE_INFO_R,{status:s.FAILED,code:exports.RCRTCCode.REQUEST_FAILED,msg:`request error -> Request-Id: ${t["Request-Id"]}, status: ${d}, url: ${n}`},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.REQUEST_FAILED}}))}}var Nt;At.isDetector=!1,At.msInDetector=[],At.detectorTime=0,At.detectValidMinute=72e5,At.naviRefetchCount=0,function(e){e[e.NORMAL=1]="NORMAL",e[e.TINY=2]="TINY"}(Nt||(Nt={}));const Dt=(e,t)=>Math.round(8*t/e),kt=(e,t=2)=>{const r=10**t;return Math.round(e*r)/r},yt=(e,t=2)=>{e>1&&(e/=32767);const r=10**t;return Math.round(e*r)},bt=(e,t,r,o)=>{if(0===t)return 0;if(!r||!o)return kt(e/t,3);const i=t-o;if(0===i)return 0;const s=e-r;return s<0||i<0?0:kt(s/i,3)},Ut=e=>{const{jitter:t,rtt:r,packetsLostRate:o}=e;return!pt(t)||!pt(r)||0!==o};class Pt{constructor(e,t,r){this._rtcPeerConn=e,this._sdpSemantics=t,this._currentUserId=r,this._latestPacketsSent={},this._latestBytesSent={},this._latestBytesRecv={},this._latestPacketsRecv={}}updateBytesSent(e,t,r){let o,i;if(this._latestBytesSent[e]&&t<this._latestBytesSent[e].bytesSent&&this.clearLatestpacketsSent([e]),this._latestBytesSent[e]){const{bytesSent:s,timestamp:n}=this._latestBytesSent[e];o=t-s,i=r-n,this._latestBytesSent[e]={bytesSent:t,timestamp:r}}else o=t,i=1e3,this._latestBytesSent[e]={bytesSent:t,timestamp:r};return Dt(i,o)}updateBytesRecv(e,t,r){let o,i;if(this._latestBytesRecv[e]&&t<this._latestBytesRecv[e].bytesRecv&&this.clearLatestPacketsRecv([e]),this._latestBytesRecv[e]){const{bytesRecv:s,timestamp:n}=this._latestBytesRecv[e];o=t-s,i=r-n,this._latestBytesRecv[e]={bytesRecv:t,timestamp:r}}else o=t,i=1e3,this._latestBytesRecv[e]={bytesRecv:t,timestamp:r};return Dt(i,o)}updateSenderPacketsLost(e,t,r){let o;if(Object.prototype.hasOwnProperty.call(this._latestPacketsSent[e],"packetsSent")){const{packetsLost:i,packetsSent:s}=this._latestPacketsSent[e];o=bt(t,r,i,s),this._latestPacketsSent[e].packetsLost=t,this._latestPacketsSent[e].packetsSent=i===t?s:r}else o=bt(t,r),this._latestPacketsSent[e].packetsLost=t,this._latestPacketsSent[e].packetsSent=r;return o}updateReceiverPacketsLost(e,t,r){let o;if(this._latestPacketsRecv[e]){const{packetsLost:i,packetsRecv:s}=this._latestPacketsRecv[e];o=bt(t,r+t,i,s+i)}else o=bt(t,r);return this._latestPacketsRecv[e]={packetsLost:t,packetsRecv:r},o}clearLatestpacketsSent(e){e.forEach((e=>{if(parseInt(e.split("_").pop())===exports.RCMediaType.VIDEO_ONLY){const t=`${e}_tiny`;delete this._latestPacketsSent[t],delete this._latestBytesSent[t]}delete this._latestPacketsSent[e],delete this._latestBytesSent[e]}))}clearLatestPacketsRecv(e){e.forEach((e=>{delete this._latestPacketsRecv[e],delete this._latestBytesRecv[e]}))}parseRTCStatsReport(e){const t=e.keys(),r={};let o=t.next();for(;!o.done;){const i=o.value,s=e.get(i);/^RTCCodec_/.test(i)||(r[i]=s),o=t.next()}return r}formatRCRTCStateReport(t){const r={senders:[],receivers:[]};return e.logger.info(i.L_ABSTRACT_STAT_PARSER_FORMAT_RTC_STATE_REPORT_O,{status:s.SUCCESSED,stats:t,reports:r},{logSource:e.LogSource.RTC}),r}getAudioLevelList(e){return[]}getResourceIdByParseSdp(e){var t,r;const o=e.ssrc,i=e.kind||e.mediaType,s=null===(t=this._rtcPeerConn.currentLocalDescription)||void 0===t?void 0:t.sdp,n=null===(r=this._rtcPeerConn.currentRemoteDescription)||void 0===r?void 0:r.sdp;let a;a="unified-plan"===this._sdpSemantics?new RegExp("a=msid:(.*?) "):new RegExp(`a=ssrc:${o} msid:(.*?) `);const c=null==s?void 0:s.split("\r\nm="),d=null==c?void 0:c.filter((e=>e.includes(`a=ssrc:${o}`)))[0],u=null==d?void 0:d.match(a);let _=u?u[1]:"";if(_){if("audio"===i)return`${_}_0`;const e=_.replace(`${this._currentUserId}_`,"").split("_");return e.length>1&&"tiny"===e[1]?`${this._currentUserId}_${e[0]}_1_tiny`:`${_}_1`}const l=null==n?void 0:n.split("\r\nm="),R=null==l?void 0:l.filter((e=>e.includes(`a=ssrc:${o}`)))[0],C=null==R?void 0:R.match(a);return _=C?C[1]:"",_?`${_}_${"video"===i?1:0}`:""}isValidSender(e){var t;const r=null===(t=this._rtcPeerConn.currentLocalDescription)||void 0===t?void 0:t.sdp,{ssrc:o}=e;return!(null==r?void 0:r.split("\r\nm=").some((e=>e.includes(o)&&e.includes("a=inactive"))))}isValidReceiver(e){var t;const r=null===(t=this._rtcPeerConn.currentRemoteDescription)||void 0===t?void 0:t.sdp,{ssrc:o}=e;return!(null==r?void 0:r.split("\r\nm=").some((e=>e.includes(o)&&e.includes("a=inactive"))))}}class Mt extends Pt{formatRCRTCStateReport(e){const t={senders:[],receivers:[]},r=Math.floor(e.RTCPeerConnection.timestamp);t.timestamp=r;const o=Object.keys(e);let i=0,s=0;o.filter((e=>/^RTCOutboundRTP(Video|Audio)Stream_/.test(e))).forEach((o=>{const n=e[o];if("unified-plan"===this._sdpSemantics&&!this.isValidSender(n))return;const{id:a,kind:c,transportId:d,mediaSourceId:u,remoteId:_,packetsSent:l,bytesSent:R,trackId:C,encoderImplementation:p,pliCount:h,nackCount:g,firCount:T}=n;if(!C)return;let{framesPerSecond:m,frameWidth:S,frameHeight:I}=n;"video"!==c||S||I||m||(S=e[C].frameWidth,I=e[C].frameHeight,m=u?e[u].framesPerSecond:null);const E=e[_];let f=null,L=null,v=0;E&&(f=E.jitter,L=E.roundTripTime,v=E.packetsLost),i+=v;const O=this.getResourceIdByParseSdp(n);if(!O)return;const A=u?e[u].audioLevel:e[C].audioLevel;let N=null;!this._latestPacketsSent[O]&&(this._latestPacketsSent[O]={}),E?N=this.updateSenderPacketsLost(O,v,l):this._latestPacketsSent[O].crtPacketsSent=l;let D=this.updateBytesSent(O,R,r);D<0&&(D=0),s+=D,t.senders.push({id:a,trackId:O,kind:c,packetsLostRate:N,remoteResource:!1,audioLevel:A||0===A?yt(A):null,frameWidth:S,frameHeight:I,frameRate:m,bitrate:D,jitter:f?Math.round(1e3*f):f,rtt:L,encoderImplementation:p,pliCount:h,nackCount:g,googFirsSent:-1,samplingRate:-1,googRenderDelayMs:-1,trackState:-1})}));o.filter((e=>/RTCRemoteInboundRtp(Video|Audio)Stream_/.test(e))).forEach((r=>{const{localId:o,jitter:i,roundTripTime:s,packetsLost:n}=e[r],a=t.senders.filter((e=>e.id===o))[0];if(a&&!Ut(a)){const t=this.getResourceIdByParseSdp(e[a.id]);a.jitter=Math.round(1e3*i),a.rtt=s;const r=this._latestPacketsSent[t].crtPacketsSent;a.packetsLostRate=this.updateSenderPacketsLost(t,n,r)}}));let n=0;o.filter((e=>/^RTCInboundRTP(Video|Audio)Stream_/.test(e))).forEach((o=>{const s=e[o];if("unified-plan"===this._sdpSemantics&&!this.isValidReceiver(s))return;const{trackId:a,packetsLost:c,packetsReceived:d,jitter:u,bytesReceived:_,framesPerSecond:l,kind:R,codecImplementationName:C,nackCount:p,pliCount:h}=s;if(!a)return;let{frameWidth:g,frameHeight:T,audioLevel:m}=s;"video"===R?g||T||(g=e[a].frameWidth,T=e[a].frameHeight):m||(m=e[a].audioLevel),i+=c;const S=this.getResourceIdByParseSdp(s),I=this.updateReceiverPacketsLost(S,c,d);let E=this.updateBytesRecv(S,_,r);E<0&&(E=0),n+=E,t.receivers.push({trackId:S,kind:R,packetsLostRate:I,remoteResource:!0,audioLevel:m||0===m?yt(m):null,frameWidth:g,frameHeight:T,frameRate:l,bitrate:E,jitter:u?Math.round(1e3*u):0,codecImplementationName:C,nackCount:p,pliCount:h,rtt:null,samplingRate:-1,googFirsReceived:-1,googRenderDelayMs:-1,trackState:-1})}));const a=o.filter((e=>/^RTCTransport_/.test(e)))[0];if(a){const r=e[a],{selectedCandidatePairId:o}=r;if(o){const r=e[o],{availableOutgoingBitrate:a,availableIncomingBitrate:c,currentRoundTripTime:d,localCandidateId:u,remoteCandidateId:_}=r,l=e[u],{ip:R,port:C,networkType:p}=l,h=e[_],{ip:g,port:T,protocol:m}=h;t.iceCandidatePair={IP:R,port:C,networkType:p,remoteIP:g,remotePort:T,protocol:m,bitrateRecv:n,bitrateSend:s,rtt:1e3*d,availableOutgoingBitrate:a,availableIncomingBitrate:c,totalPacketsLost:i},t.receivers.forEach((e=>{e.rtt=d}))}}return t}getAudioLevelList(e){const t=[],r=Object.keys(e);r.filter((e=>/^RTCOutboundRTPAudioStream_/.test(e))).forEach((r=>{var o;const i=e[r];if("unified-plan"===this._sdpSemantics&&!this.isValidSender(i))return;const{mediaSourceId:s,trackId:n}=i,a=this.getResourceIdByParseSdp(i),c=s&&e[s]?e[s].audioLevel:(null===(o=e[n])||void 0===o?void 0:o.audioLevel)||null;t.push({trackId:a,audioLevel:c||0===c?yt(c):null})}));return r.filter((e=>/^RTCInboundRTPAudioStream_/.test(e))).forEach((r=>{const o=e[r];if("unified-plan"===this._sdpSemantics&&!this.isValidReceiver(o))return;const{trackId:i}=o,s=o.audioLevel||e[i].audioLevel,n=this.getResourceIdByParseSdp(o);t.push({trackId:n,audioLevel:s||0===s?yt(s):null})})),t}}class xt extends Pt{formatRCRTCStateReport(e){const t=+new Date,r={senders:[],receivers:[],timestamp:t};let o=0,i=0,s=0;for(const n in e){const a=e[n],c=a.type;if("outbound-rtp"===c){if("unified-plan"===this._sdpSemantics&&!this.isValidSender(a))continue;const{id:s,kind:n,bytesSent:c,packetsSent:d,bitrateMean:u,framerateMean:_,nackCount:l,pliCount:R,remoteId:C}=a,{jitter:p,roundTripTime:h,packetsLost:g}=C?e[C]:{jitter:null,roundTripTime:null,packetsLost:0},T=this.getResourceIdByParseSdp(a);o+=g;let m=null;!this._latestPacketsSent[T]&&(this._latestPacketsSent[T]={}),C?m=this.updateSenderPacketsLost(T,g,d):this._latestPacketsSent[T].crtPacketsSent=d;let S=0;"video"===n?u&&(S=Math.floor(u/1e3)):S=this.updateBytesSent(T,c,t),S<0&&(S=0),i+=S,r.senders.push({trackId:T,kind:n,packetsLostRate:m,remoteResource:!1,audioLevel:null,frameWidth:null,frameHeight:null,frameRate:Math.floor(_),bitrate:S,jitter:p?Math.round(1e3*p):null,rtt:h,encoderImplementation:null,pliCount:R,nackCount:l,googFirsSent:-1,samplingRate:-1,googRenderDelayMs:-1,trackState:-1})}if("remote-inbound-rtp"===c){const{localId:t}=a,o=this.getResourceIdByParseSdp(e[t]),i=r.senders.filter((e=>e.trackId===o))[0];i&&Ut(i)&&(i.jitter=Math.round(1e3*a.jitter),i.rtt=a.rtt,i.packetsLostRate=this.updateSenderPacketsLost(o,a.packetsLost,this._latestPacketsSent[o].crtPacketsSent))}if("inbound-rtp"===c){if("unified-plan"===this._sdpSemantics&&!this.isValidReceiver(a))continue;const{id:e,packetsLost:i,bytesReceived:n,packetsReceived:c,jitter:d,framerateMean:u,kind:_,bitrateMean:l,nackCount:R,pliCount:C}=a,p=this.getResourceIdByParseSdp(a);o+=i;const h=this.updateReceiverPacketsLost(p,i,c);let g=0;"video"===_?l&&(g=Math.floor(l/1e3)):g=this.updateBytesRecv(p,n,t),g<0&&(g=0),s+=g,r.receivers.push({trackId:p,kind:_,packetsLostRate:h,remoteResource:!0,audioLevel:null,frameWidth:null,frameHeight:null,frameRate:Math.floor(u),bitrate:g,jitter:d?Math.round(1e3*d):null,codecImplementationName:null,nackCount:R,pliCount:C,rtt:null,samplingRate:-1,googFirsReceived:-1,googRenderDelayMs:-1,trackState:-1})}if("candidate-pair"===c&&"succeeded"===a.state){const t=e[a.localCandidateId],{address:n,port:c}=t,d=e[a.remoteCandidateId],{address:u,port:_,protocol:l}=d;r.iceCandidatePair={IP:n,port:c,networkType:null,remoteIP:u,remotePort:_,protocol:l,bitrateRecv:s,bitrateSend:i,rtt:null,availableOutgoingBitrate:null,availableIncomingBitrate:null,totalPacketsLost:o}}}return r.iceCandidatePair&&(r.iceCandidatePair.bitrateSend=i),r.iceCandidatePair&&(r.iceCandidatePair.bitrateRecv=s),r}getAudioLevelList(e){const t=[];for(const r in e){const o=e[r],i=o.type;if("outbound-rtp"===i){if("unified-plan"===this._sdpSemantics&&!this.isValidSender(o))continue;const{kind:e}=o;if("video"===e)continue;const r=this.getResourceIdByParseSdp(o);t.push({trackId:r,audioLevel:null})}if("inbound-rtp"===i){if("unified-plan"===this._sdpSemantics&&!this.isValidReceiver(o))continue;const{kind:e}=o;if("video"===e)continue;const r=this.getResourceIdByParseSdp(o);t.push({trackId:r,audioLevel:null})}}return t}}class wt extends Pt{formatRCRTCStateReport(e){const t={senders:[],receivers:[]},r=Math.floor(e.RTCPeerConnection.timestamp);t.timestamp=r;const o=Object.keys(e);let i=0,s=0;o.filter((e=>/^RTCOutboundRTP(Video|Audio)Stream_/.test(e))).forEach((o=>{const i=e[o];if("unified-plan"===this._sdpSemantics&&!this.isValidSender(i))return;const n=this.getResourceIdByParseSdp(i),{mediaType:a,transportId:c,remoteId:d,packetsSent:u,bytesSent:_,trackId:l,encoderImplementation:R,pliCount:C,nackCount:p,firCount:h}=i;if(!l)return;const{audioLevel:g,frameHeight:T,frameWidth:m}=e[l];let S=this.updateBytesSent(n,_,r);S<0&&(S=0),s+=S,t.senders.push({trackId:n,kind:a,packetsLostRate:null,remoteResource:!1,audioLevel:g||0===g?yt(g):null,frameWidth:m,frameHeight:T,frameRate:null,bitrate:S,jitter:null,rtt:null,encoderImplementation:R,pliCount:C,nackCount:p,googFirsSent:-1,samplingRate:-1,googRenderDelayMs:-1,trackState:-1})}));let n=0;o.filter((e=>/^RTCInboundRTP(Video|Audio)Stream_/.test(e))).forEach((o=>{const s=e[o];if("unified-plan"===this._sdpSemantics&&!this.isValidReceiver(s))return;const{trackId:a,packetsLost:c,packetsReceived:d,jitter:u,bytesReceived:_,mediaType:l,nackCount:R,pliCount:C}=s,p=this.getResourceIdByParseSdp(s);if(!a)return;const{frameHeight:h,frameWidth:g,audioLevel:T}=e[a];i+=c;const m=this.updateReceiverPacketsLost(p,c,d);let S=this.updateBytesRecv(p,_,r);S<0&&(S=0),n+=S,t.receivers.push({trackId:p,kind:l,packetsLostRate:m,remoteResource:!0,audioLevel:T||0===T?yt(T):null,frameWidth:g,frameHeight:h,frameRate:null,bitrate:S,jitter:u,codecImplementationName:null,nackCount:R,pliCount:C,rtt:null,samplingRate:-1,googFirsReceived:-1,googRenderDelayMs:-1,trackState:-1})}));const a=o.filter((e=>/^RTCTransport_/.test(e)))[0];if(a){const r=e[a],{selectedCandidatePairId:o}=r;if(o){const r=e[o],{availableOutgoingBitrate:a,availableIncomingBitrate:c,currentRoundTripTime:d,localCandidateId:u,remoteCandidateId:_}=r,l=e[u],{address:R,port:C}=l,p=e[_],{address:h,port:g,protocol:T}=p;t.iceCandidatePair={IP:R||null,port:C,networkType:null,remoteIP:h,remotePort:g,protocol:T,bitrateRecv:n,bitrateSend:s,rtt:1e3*d,availableOutgoingBitrate:a,availableIncomingBitrate:c,totalPacketsLost:i},t.receivers.forEach((e=>{e.rtt=d}))}}return t}getAudioLevelList(e){const t=[],r=Object.keys(e);r.filter((e=>/^RTCOutboundRTP(Video|Audio)Stream_/.test(e))).forEach((r=>{const o=e[r];if("unified-plan"===this._sdpSemantics&&!this.isValidSender(o))return;const{trackId:i,mediaType:s}=o;if("video"===s)return;const n=this.getResourceIdByParseSdp(o),a=e[i];t.push({trackId:n,audioLevel:a||0===a?yt(a):null})}));return r.filter((e=>/^RTCInboundRTP(Video|Audio)Stream_/.test(e))).forEach((r=>{const o=e[r];if("unified-plan"===this._sdpSemantics&&!this.isValidReceiver(o))return;const{trackId:i,mediaType:s}=o;if(!i||"video"===s)return;const{audioLevel:n}=e[i],a=this.getResourceIdByParseSdp(o);t.push({trackId:a,audioLevel:n||0===n?yt(n):null})})),t}}class Bt{constructor(e,t){this.SDP=e,this.type=t,this.SDPHeader="",this.videoStreams=[],this.audioStreams=[];const r=this.getStreamIndex();this.spliteStreams(r)}get videoSdps(){return this.videoStreams.slice()}get audioSdps(){return this.audioStreams.slice()}static trimBlankLine(e){return e.replace(/\n\r\s*\r\n/g,"\r\n").replace(/\s+\r\n/g,"\r\n")}getStreamIndex(){const e=RegExp("m=(?:video|audio)","img"),t=new Set([0]);let r;for(;null!==(r=e.exec(this.SDP));)t.add(r.index);return t.add(this.SDP.length),[...t]}spliteStreams(e){this.SDPHeader=this.SDP.substring(e[0],e[1]).replace(/\r\ns=-/g,`\r\ns=${(new Date).valueOf()}`);for(let t=1;t<e.length;t++){const r=this.SDP.substring(e[t],e[t+1]);/^\bm=video\b/.test(r)?this.videoStreams.push(r):this.audioStreams.push(r)}}static clearInactiveOrRecvonly(e){return/\ba=(recvonly|inactive)\b/.test(e)?e.replace(/\r\na=(ssrc|msid)[^\r\n]+/gi,""):e}setHeaderBitrate(e){this.SDPHeader=this.SDPHeader.replace(/(\r\ns=[^\r\n]+)/gi,`$1\r\nc=IN IP4 0.0.0.0\r\nb=AS:${e*Bt.KBitrate}\r\nb=TIAS:${e*Bt.KBitrate*850}`)}setAudiosBitrate(t){return r.info(i.L_RTC_SDP_BITRATE_O,{bitrate:t,msg:"SDP setAudiosBitrate"},{logSource:e.LogSource.RTC}),this.audioStreams=this.audioStreams.map((e=>this.setAudioItemBitrate(e,t))),this}setAudioBitrateWithStreamId(t,o){return r.info(i.L_RTC_SDP_BITRATE_O,{bitrate:t,streamId:o,msg:"SDP setAudioBitrateWithStreamId"},{logSource:e.LogSource.RTC}),this.audioStreams=this.audioStreams.map((e=>new RegExp(`\\bmsid:${o}\\b`,"ig").test(e)?this.setAudioItemBitrate(e,t):e)),this}setAudioBitrateWithMid(t,o){return r.info(i.L_RTC_SDP_BITRATE_O,{bitrate:t,mid:o,msg:"SDP setAudioBitrateWithMid"},{logSource:e.LogSource.RTC}),this.audioStreams=this.audioStreams.map((e=>new RegExp(`\\bmid:${o}\\b`,"ig").test(e)?this.setAudioItemBitrate(e,t):e)),this}setAudioItemBitrate(e,t){if(0===t.max&&/\ba=inactive\b/gi.test(e))return e;if(!/\bmaxaveragebitrate\b/gi.test(e)){const r=["$1","maxaveragebitrate="+t.max*Bt.KBitrate];e=e.replace(/(\buseinbandfec=[^\r\n]+)/gi,r.join(";"))}return this.addAudioBlineAS(e,t)}addAudioBlineAS(e,t){return/\bb=AS:\d+\b/gi.test(e)?e:e.replace(/(\bc=IN[^\r\n]+)/gi,`$1\r\nb=AS:${t.max*Bt.KBitrate}\r\nb=TIAS:${t.max*Bt.KBitrate*850}`)}setVideosBitrate(t){return r.info(i.L_RTC_SDP_BITRATE_O,{bitrate:t,msg:"SDP setVideosBitrate"},{logSource:e.LogSource.RTC}),this.videoStreams=this.videoStreams.map((e=>this.setVideoItemBitrate(e,t))),this}setVideoBitrateWithStreamId(t,o){return r.info(i.L_RTC_SDP_BITRATE_O,{bitrate:t,streamId:o,msg:"SDP setVideoBitrateWithStreamId"},{logSource:e.LogSource.RTC}),this.videoStreams=this.videoStreams.map((e=>new RegExp(`\\bmsid:${o}\\b`,"ig").test(e)?this.setVideoItemBitrate(e,t):e)),this}setVideoBitrateWithMid(t,o){return r.info(i.L_RTC_SDP_BITRATE_O,{bitrate:t,mid:o,msg:"SDP setVideoBitrateWithMid"},{logSource:e.LogSource.RTC}),this.videoStreams=this.videoStreams.map((e=>new RegExp(`\\bmid:${o}\\b`,"ig").test(e)?this.setVideoItemBitrate(e,t):e)),this}setVideoItemBitrate(e,t){if(0===t.max&&/\ba=inactive\b/gi.test(e))return e;if(!/\bx-google-max-bitrate\b/.test(e)){console.log("old:",e);const r=["$1","x-google-max-bitrate="+t.max*Bt.KBitrate,"x-google-min-bitrate="+t.min*Bt.KBitrate,`x-google-start-bitrate=${t.start||t.max*Bt.KBitrate*.7}`];e=e.replace(/(\bprofile-level-id=42[e0]01f\b)/gi,r.join(";"))}return this.addVideoBlineAS(e,t)}addVideoBlineAS(e,t){return/\bb=AS:\d+\b/gi.test(e)?e:e.replace(/(\bc=IN[^\r\n]+)/gi,`$1\r\nb=AS:${t.max*Bt.KBitrate}\r\nb=TIAS:${t.max*Bt.KBitrate*850}`)}clearnSsrcWithMid(t,o){return r.info(i.L_RTC_SDP_BITRATE_O,{mid:t,msg:"SDP clearnSsrcWithMid"},{logSource:e.LogSource.RTC}),this.audioStreams=this.audioStreams.map((e=>new RegExp(`\\bmid:${t}\\b`,"ig").test(e)?this.clearSSRC(e,o):e)),this.videoStreams=this.videoStreams.map((e=>new RegExp(`\\bmid:${t}\\b`,"ig").test(e)?this.clearSSRC(e,o):e)),this}clearSSRC(e,t){if(t===$t.SENDONLY){if(/\ba=sendonly\b/.test(e))return e.replace(/\r\na=(ssrc|msid)[^\r\n]+/gi,"")}if(t===$t.RECVONLY){if(/\ba=recvonly\b/.test(e))return e.replace(/\r\na=(ssrc|msid)[^\r\n]+/gi,"")}if(t===$t.INACTIVE){if(/\ba=inactive\b/.test(e))return e.replace(/\r\na=(ssrc|msid)[^\r\n]+/gi,"")}return e}}var Vt,$t,Ft,Gt,Kt,Ht,jt,Jt,Wt,qt,Yt,zt,Qt,Zt,Xt;Bt.KBitrate=1,function(e){e.PLANB="plan-b",e.UNIFIEDPLAN="unified-plan"}(Vt||(Vt={})),function(e){e.SENDONLY="sendonly",e.RECVONLY="recvonly",e.INACTIVE="inactive"}($t||($t={}));class er{constructor(e){this._peer=e,this._outboundStreams={}}static setSdpSemantics(t){e.logger.info(i.L_A_SDP_STRATEGY_SET_SDP_SEMANTICS_O,{status:s.SUCCESSED,sdpSemantics:t},{logSource:e.LogSource.RTC});const{browser:r,version:o,supportsUnifiedPlan:n}=lt;e.logger.debug(`sdpSemantics, browser: ${r}, version: ${o}, supportsUnifiedPlan: ${n}`),n?/chrome/i.test(r)?this._sdpSemantics=o>92?"unified-plan":o<72?"plan-b":t:/firefox/i.test(r)?this._sdpSemantics="unified-plan":/safari/i.test(r)?this._sdpSemantics=o<12?"plan-b":"unified-plan":this._sdpSemantics="unified-plan":this._sdpSemantics="plan-b"}static getSdpSemantics(){return er._sdpSemantics}getOutboundVideoInfo(){const e=[];for(const t in this._outboundStreams){const r=this._outboundStreams[t].getVideoTracks()[0];if(!r)continue;const o=/_tiny$/.test(t),{width:i,height:s}=et(r);e.push({trackId:r.id,simulcast:o?Nt.TINY:Nt.NORMAL,resolution:`${i}x${s}`})}return e}setRemoteAnswer(o){return t(this,void 0,void 0,(function*(){o=Bt.trimBlankLine(o),e.logger.info(`set remote answer -> ${o}`);try{yield this._peer.setRemoteDescription({type:"answer",sdp:o})}catch(t){return r.error(t),e.logger.info(i.L_A_SDP_STRATEGY_SET_REMOTE_ANSWER_O,{status:s.FAILED,code:"",msg:t},{logSource:e.LogSource.RTC}),exports.RCRTCCode.SET_REMOTE_DESCRIPTION_FAILED}return e.logger.info(i.L_A_SDP_STRATEGY_SET_REMOTE_ANSWER_O,{status:s.SUCCESSED,sdp:o},{logSource:e.LogSource.RTC}),exports.RCRTCCode.SUCCESS}))}getStatParsr(e,t,r){return/chrome/i.test(lt.browser)?new Mt(e,t,r):/Firefox/i.test(lt.browser)?new xt(e,t,r):/Safari/i.test(lt.browser)?new wt(e,t,r):null}resetSdp(e){return Bt.trimBlankLine(e)}}class tr extends Bt{constructor(e){super(e,Vt.PLANB),this.SDP=e}stringify(){const e=[this.SDPHeader];[...this.audioStreams,...this.videoStreams].forEach((t=>{const r=t.match(/\ba=mid:(video|audio)\b/),o=Bt.clearInactiveOrRecvonly(t);r&&r[1]===De.AUDIO&&(e[1]=o),r&&r[1]===De.VIDEO&&(e[2]=o)}));const t=e.join("");return Bt.trimBlankLine(t)}setAudioBitrateWithStreamId(e,t){return r.warn("plan-b not support set Audio Bitrate With Stream Id"),this}setVideoBitrateWithStreamId(e,t){return r.warn("plan-b not support set Video Bitrate With Stream Id"),this}}class rr extends er{constructor(){super(...arguments),this.senders={},this._localTracks=[]}addLocalTrack(e){this._localTracks.includes(e)||this._localTracks.push(e);const t=e.getStreamId(),r=e.__innerGetMediaStreamTrack(),o=this._outboundStreams[t]||(this._outboundStreams[t]=new MediaStream);o.getTracks().forEach((e=>{e.kind===r.kind&&o.removeTrack(e)})),o.addTrack(r);const i=e.getTrackId(),s=this.senders[i];s?s.replaceTrack(r):this.senders[i]=this._peer.addTrack(r,o)}removeLocalTrack(e){const t=this._localTracks.findIndex((t=>t===e));t>=0&&this._localTracks.splice(t,1);const r=e.getTrackId(),o=this.senders[r];o&&(o.replaceTrack(null),this._peer.removeTrack(o),delete this.senders[r])}updateSubRemoteTracks(e){}updateRecvTransceiverMap(e,t){}setBitrate(e,t,r){this._maxBitrate=e,this._minBitrate=t,this._startBitrate=r||.7*e}createOffer(e){return t(this,void 0,void 0,(function*(){const t=yield this._peer.createOffer({iceRestart:e,offerToReceiveAudio:!0,offerToReceiveVideo:!0});for(const e in this._outboundStreams){const r=this._outboundStreams[e].id;t.sdp=t.sdp.replace(new RegExp(r,"g"),e)}return t.sdp&&(t.sdp=Bt.clearInactiveOrRecvonly(t.sdp)),yield this._peer.setLocalDescription(t),{type:"offer",semantics:"plan-b",sdp:t.sdp}}))}setRemoteAnswer(e){return e=this.resetSdp(e),super.setRemoteAnswer(e)}resetSdp(e){const t=new tr(e),r={max:0,min:0},o={max:0,min:0};return this._localTracks.forEach((e=>{const{min:t,max:i,start:s}=e.getBitrate();e.isAudioTrack()&&(o.max=o.max<i?i:o.max,o.min=o.min>t?t:o.min,o.max===i?o.start=s:o.start=.7*o.max),e.isVideoTrack()&&(r.max=r.max<i?i:r.max,r.min=r.min>t?t:r.min,r.max===i?r.start=s:r.start=.7*r.max)})),t.setAudiosBitrate(o),t.setVideosBitrate(r),t.stringify()}}class or extends Bt{constructor(e){super(e,Vt.UNIFIEDPLAN),this.SDP=e}stringify(){const e=[this.SDPHeader];[...this.audioStreams,...this.videoStreams].forEach((t=>{const r=t.match(/\ba=mid:(\d+)\b/);r&&r[1]&&(e[+r[1]+1]=t)})),this.SDPHeader="",this.videoStreams=[],this.audioStreams=[];const t=e.join("");return Bt.trimBlankLine(t)}}class ir{static splitSections(e){return e.split("\nm=").map(((e,t)=>(t>0?"m="+e:e).trim()+"\r\n"))}static getMediaSections(e){const t=ir.splitSections(e);return t.shift(),t}static parseExtmap(e){const t=e.substr(9).split(" ");return{id:parseInt(t[0],10),direction:t[0].indexOf("/")>0?t[0].split("/")[1]:"sendrecv",uri:t[1]}}static splitLines(e){return e.trim().split("\n").map((e=>e.trim()))}static parseMLine(e){const t=ir.splitLines(e)[0].substr(2).split(" ");return{kind:t[0],port:parseInt(t[1],10),protocol:t[2],fmt:t.slice(3).join(" ")}}static matchPrefix(e,t){return ir.splitLines(e).filter((e=>0===e.indexOf(t)))}static parseMsid(e){let t;const r=ir.matchPrefix(e,"a=msid:");if(1===r.length)return t=r[0].substr(7).split(" "),{stream:t[0],track:t[1]};const o=ir.matchPrefix(e,"a=ssrc:").map((e=>ir.parseSsrcMedia(e))).filter((e=>"msid"===e.attribute));return o.length>0&&o[0].value?(t=o[0].value.split(" "),{stream:t[0],track:t[1]}):{stream:"",track:""}}static parseSsrcMedia(e){const t=e.indexOf(" "),r={ssrc:parseInt(e.substr(7,t-7),10)},o=e.indexOf(":",t);return o>-1?(r.attribute=e.substr(t+1,o-t-1),r.value=e.substr(o+1)):r.attribute=e.substr(t+1),r}static getMid(e){const t=ir.matchPrefix(e,"a=mid:")[0];if(t)return t.substr(6)}}class sr extends er{constructor(){super(...arguments),this._sendTransceiver={},this._localTracks={},this._recvAudio=[],this._recvVideo=[],this._recvTransceiver={},this._subedTracks=[],this.midMsid={}}setBitrate(e,t,o){r.warn("the interface named `setBitrate` is invalid while sdpSemantics value is `unified-plan`")}addLocalTrack(e){const t=e.getTrackId(),r=e.getStreamId(),o=e.__innerGetMediaStreamTrack();this._localTracks[t]=e;const i=this._outboundStreams[r]||(this._outboundStreams[r]=new MediaStream);i.getTracks().forEach((e=>{e.kind===o.kind&&i.removeTrack(e)})),i.addTrack(o);const s=this._sendTransceiver[t];s?(s.sender.replaceTrack(o),s.direction="sendonly"):this._sendTransceiver[t]=this._peer.addTransceiver(o,{direction:"sendonly",streams:[i]})}removeLocalTrack(e){const t=e.getTrackId(),r=e.getStreamId();e.__innerGetMediaStreamTrack(),delete this._localTracks[t];const o=this._sendTransceiver[t];if(!o)return;o.direction="inactive",this._peer.removeTrack(o.sender),o.sender.replaceTrack(null);const i=this._outboundStreams[r];(e.isAudioTrack()?i.getAudioTracks():i.getVideoTracks()).forEach((e=>i.removeTrack(e)));const s=this._sendTransceiver[`${t}_tiny`];if(!s||"inactive"===s.direction)return;s.direction="inactive";const n=s.sender,a=n.track;this._peer.removeTrack(n),n.replaceTrack(null);this._outboundStreams[`${r}_tiny`].removeTrack(a),a.stop()}updateRecvTransceiverMap(e,t){const{mediaType:r}=ot(e);this._recvTransceiver[e]=t;const o=r===exports.RCMediaType.AUDIO_ONLY?this._recvAudio:this._recvVideo,i=o.findIndex((e=>e===t));i>=0&&o.splice(i,1)}updateSubRemoteTracks(e){const t=e.slice(),r=this._subedTracks.slice();this._subedTracks=e.slice();for(let e=t.length-1;e>=0;e-=1){const o=t[e],i=r.findIndex((e=>e===o));i>=0&&(t.splice(e,1),r.splice(i,1))}r.length&&r.forEach((e=>{const t=e.getTrackId();e.__innerSetMediaStreamTrack(void 0);const r=this._recvTransceiver[t];r&&(r.direction="inactive")}));const o={audio:0,video:0};t.length&&t.forEach((e=>{const t=e.isAudioTrack()?"audio":"video",r=this._recvTransceiver[e.getTrackId()];r?r.direction="recvonly":o[t]+=1}));for(let e=this._recvAudio.length;e<o.audio;e+=1)this._recvAudio.push(this._peer.addTransceiver("audio",{direction:"recvonly"}));for(let e=this._recvVideo.length;e<o.video;e+=1)this._recvVideo.push(this._peer.addTransceiver("video",{direction:"recvonly"}))}createOffer(e){return t(this,void 0,void 0,(function*(){const t=yield this._peer.createOffer({iceRestart:e});let r=t.sdp;for(const e in this._outboundStreams){const t=this._outboundStreams[e].id;r=r.replace(new RegExp(t,"g"),e)}return r=this.resetOfferSdp(r),r=r.replace(/(a=ice-options:trickle)/g,"$1\r\na=ice-options:renomination"),t.sdp=r,yield this._peer.setLocalDescription(t),{type:"offer",semantics:"unified-plan",sdp:r}}))}setRemoteAnswer(e){e=this.resetAnswerSdp(e);const t=/[\r\n]+\r\n[\r\n]+/g;return t.test(e)&&(r.warn(`answer sdp invalid -> ${JSON.stringify(e)}`),e=e.replace(t,"\r\n")),super.setRemoteAnswer(e)}resetOfferSdp(e){var t;const r=new or(e);for(const o in this._sendTransceiver){const i=this._sendTransceiver[o],s=null===(t=i.sender.track)||void 0===t?void 0:t.kind;let{direction:n,mid:a}=i;if(!a){ir.getMediaSections(e).forEach((e=>{ir.parseExtmap(e);const{kind:t}=ir.parseMLine(e);let{stream:r}=ir.parseMsid(e);const i=ir.getMid(e);"video"===s?/tiny$/.test(r)?r=r.replace(/tiny$/gi,"1_tiny"):r+="_1":r+="_0",r===o&&s===t&&i&&(a=i)}))}if(a){if(n===$t.SENDONLY){const e=this._localTracks[o],t=null==e?void 0:e.getBitrate();s===De.AUDIO&&t&&r.setAudioBitrateWithMid(t,a),s===De.VIDEO&&t&&r.setVideoBitrateWithMid(t,a)}n===$t.INACTIVE&&r.clearnSsrcWithMid(a,$t.INACTIVE)}}for(const e in this._recvTransceiver){const t=this._recvTransceiver[e],{direction:o,mid:i}=t;i&&($t.RECVONLY,o===$t.INACTIVE&&r.clearnSsrcWithMid(i,$t.RECVONLY))}return r.stringify()}resetAnswerSdp(e){var t;const r=new or(e);for(const e in this._sendTransceiver){const o=this._sendTransceiver[e],{mid:i}=o;if(i){const s=this._localTracks[e],n=null==s?void 0:s.getBitrate(),a=null===(t=o.sender.track)||void 0===t?void 0:t.kind;a===De.AUDIO&&n&&r.setAudioBitrateWithMid(n,i),a===De.VIDEO&&n&&r.setVideoBitrateWithMid(n,i)}}return r.stringify()}}class nr extends e.EventEmitter{constructor(e,t,r,o){super(),this._pcName=e,this._reTryExchange=t,this._currentUserId=r,this._polarisReport=o,this.pubLocalTracks={},this._reTryExchangeTimer=null,this._reportStatsTimer=null,this._reportR3R4ToPolarisTimer=null,this._isDestroyed=!1,this._reportListener=null;const i=er.getSdpSemantics(),s=this._rtcPeerConn=new RTCPeerConnection({sdpSemantics:i});this._sdpStrategy="plan-b"===i?new rr(s):new sr(s),this._rtcPeerConn.oniceconnectionstatechange=this._onICEConnectionStateChange.bind(this),this._rtcPeerConn.onconnectionstatechange=this._onConnectionStateChange.bind(this),this._rtcPeerConn.ontrack=this._onTrackReady.bind(this),this.reportParser=this._sdpStrategy.getStatParsr(this._rtcPeerConn,i,this._currentUserId)}getName(){return this._pcName}getLocalTracks(){return e.logger.info(i.L_RTC_PEER_CONNECTION_GET_LOCAL_TRACKS_O,{status:s.SUCCESSED,trackIds:Object.keys(this.pubLocalTracks)},{logSource:e.LogSource.RTC}),Object.values(this.pubLocalTracks)}_onConnectionStateChange(){r.info(`onconnectionstatechange -> ${this._rtcPeerConn.connectionState}, ${this._pcName}`),e.logger.info(i.L_RTC_PEER_CONNECTION_CONNECTION_STATE_S,{status:s.SUCCESSED,connectionState:this._rtcPeerConn.connectionState,pcName:this._pcName},{logSource:e.LogSource.RTC})}_onICEConnectionStateChange(){var t,o;r.info(`oniceconnectionstatechange -> ${this._rtcPeerConn.iceConnectionState}, ${this._pcName}`),"connected"===this._rtcPeerConn.iceConnectionState&&(this._reportStatsTimer&&clearInterval(this._reportStatsTimer),this._reportStatsTimer=setInterval(this._reportHandle.bind(this),1e3)),"failed"!==this._rtcPeerConn.iceConnectionState&&"disconnected"!==this._rtcPeerConn.iceConnectionState||(r.warn(`${this._pcName} iceconenction state is failed, exchange SDP to try again.`),e.logger.error(i.L_RTC_PEER_CONNECTION_ICE_CONNECTION_STATE_S,{status:s.FAILED,code:"",msg:`${this._pcName} iceconenction state is failed, exchange SDP to try again.`},{logSource:e.LogSource.RTC}),this._reTryExchange(),this._reTryExchangeTimer=setInterval(this._reTryExchange,15e3));try{null===(o=null===(t=this._reportListener)||void 0===t?void 0:t.onICEConnectionStateChange)||void 0===o||o.call(t,this._rtcPeerConn.iceConnectionState,this._pcName)}catch(t){r.error("onICEConnectionStateChange error",t,this._pcName),e.logger.error(i.L_RTC_PEER_CONNECTION_ICE_CONNECTION_STATE_S,{status:s.FAILED,code:"",msg:`${this._pcName}, ${t}`},{logSource:e.LogSource.RTC})}e.logger.info(i.L_RTC_PEER_CONNECTION_ICE_CONNECTION_STATE_S,{status:s.SUCCESSED,connectionState:this._rtcPeerConn.connectionState,pcName:this._pcName},{logSource:e.LogSource.RTC})}_onTrackReady(e){if(!e.streams.length)return;const t=[e.streams[0].id,"audio"===e.receiver.track.kind?exports.RCMediaType.AUDIO_ONLY:exports.RCMediaType.VIDEO_ONLY].join("_");this._updateRecvTransceiverMap(t,e.transceiver),this.emit(nr.__INNER_EVENT_TRACK_READY__,e)}setBitrate(r,o,n){return t(this,void 0,void 0,(function*(){this._sdpStrategy.setBitrate(r,o,n),e.logger.info(i.L_RTC_PEER_CONNECTION_SET_BITRATE_O,{status:s.SUCCESSED,max:r,min:o,start:n},{logSource:e.LogSource.RTC})}))}createOffer(o){return t(this,void 0,void 0,(function*(){const t=yield this._sdpStrategy.createOffer(o);return r.debug(`offer -> ${JSON.stringify(t.sdp)}`),e.logger.info(i.L_RTC_PEER_CONNECTION_CREATE_OFFER_O,{status:s.SUCCESSED,offerSDP:t.sdp},{logSource:e.LogSource.RTC}),t}))}setRemoteAnswer(o){return t(this,void 0,void 0,(function*(){return r.debug(`answer -> ${JSON.stringify(o)}`),e.logger.info(i.L_RTC_PEER_CONNECTION_SET_REMOTE_ANSWER_O,{status:s.SUCCESSED,answer:o},{logSource:e.LogSource.RTC}),this._sdpStrategy.setRemoteAnswer(o)}))}getLocalTrack(e){return this.pubLocalTracks[e]||null}addLocalTrack(t){this.pubLocalTracks[t.getTrackId()]=t,this._sdpStrategy.addLocalTrack(t),t.off(xe.__INNER_EVENT_MUTED_CHANGE__,this._onLocalTrackMuted,this),t.off(xe.__INNER_EVENT_DESTROY__,this._onLocalTrackDestroied,this),t.on(xe.__INNER_EVENT_MUTED_CHANGE__,this._onLocalTrackMuted,this),t.on(xe.__INNER_EVENT_DESTROY__,this._onLocalTrackDestroied,this),e.logger.info(i.L_RTC_PEER_CONNECTION_ADD_LOCAL_TRACK_O,{status:s.SUCCESSED,trackId:t.getTrackId()},{logSource:e.LogSource.RTC})}removeLocalTrackById(t){const r=this.getLocalTrack(t);r?(e.logger.info(i.L_RTC_PEER_CONNECTION_REMOVE_LOCAL_TRACK_BY_ID_O,{status:s.SUCCESSED,trackId:t},{logSource:e.LogSource.RTC}),this.removeLocalTrack(r)):e.logger.warn(i.L_RTC_PEER_CONNECTION_REMOVE_LOCAL_TRACK_BY_ID_O,{status:s.FAILED,code:"",msg:"track not found"},{logSource:e.LogSource.RTC})}removeAllLocalTrack(){Object.keys(this.pubLocalTracks).forEach((e=>{/_tiny$/.test(e)||this.removeLocalTrackById(e)})),e.logger.info(i.L_RTC_PEER_CONNECTION_REMOVE_ALL_LOCAL_TRACK_O,{status:s.SUCCESSED},{logSource:e.LogSource.RTC})}removeLocalTrack(t){const r=t.getTrackId();delete this.pubLocalTracks[r],this._sdpStrategy.removeLocalTrack(t),t.__innerSetPublished(!1),t.off(xe.__INNER_EVENT_MUTED_CHANGE__,this._onLocalTrackMuted,this),t.off(xe.__INNER_EVENT_DESTROY__,this._onLocalTrackDestroied,this);const o=`${r}_tiny`,n=this.getLocalTrack(o);n&&(this._sdpStrategy.removeLocalTrack(n),delete this.pubLocalTracks[o],n.destroy()),e.logger.info(i.L_RTC_PEER_CONNECTION_REMOVE_LOCAL_TRACK_O,{status:s.SUCCESSED,trackId:r},{logSource:e.LogSource.RTC})}_updateRecvTransceiverMap(e,t){this._sdpStrategy.updateRecvTransceiverMap(e,t)}updateSubRemoteTracks(t){this._sdpStrategy.updateSubRemoteTracks(t),e.logger.info(i.L_RTC_PEER_CONNECTION_UPDATE_SUB_REMOTE_TRACKS_O,{status:s.SUCCESSED,trackIds:t.map((e=>e.getTrackId()))},{logSource:e.LogSource.RTC})}getOutboundVideoInfo(){return this._sdpStrategy.getOutboundVideoInfo()}_onLocalTrackMuted(t,r){const o=this.getLocalTrack(`${t.getTrackId()}_tiny`);o&&(o.__innerGetMediaStreamTrack().enabled=!t.isLocalMuted()),this.emit(xe.__INNER_EVENT_MUTED_CHANGE__,t,r),e.logger.info(i.L_RTC_PEER_CONNECTION_LOCAL_TRACK_MUTED_O,{status:s.SUCCESSED,trackId:t.getTrackId()},{logSource:e.LogSource.RTC})}_onLocalTrackDestroied(e){this.emit(xe.__INNER_EVENT_DESTROY__,e)}registerReportListener(e){this._reportListener=e}_createRCRTCStateReport(e){const{timestamp:t,iceCandidatePair:r,senders:o,receivers:i}=JSON.parse(JSON.stringify(e));null==r||delete r.totalPacketsLost;for(const e in r)pt(r[e])&&delete r[e];return{timestamp:t,iceCandidatePair:r,senders:o.map((e=>{const t={};return e.trackId&&(t.trackId=e.trackId),e.kind&&(t.kind=e.kind),(e.packetsLostRate||0===e.packetsLostRate)&&(t.packetsLostRate=e.packetsLostRate),t.remoteResource=e.remoteResource,(e.audioLevel||0===e.audioLevel)&&(t.audioLevel=e.audioLevel),e.frameWidth&&(t.frameWidth=e.frameWidth),e.frameHeight&&(t.frameHeight=e.frameHeight),e.frameRate&&(t.frameRate=e.frameRate),(e.bitrate||0===e.bitrate)&&(t.bitrate=e.bitrate),e.jitter&&(t.jitter=e.jitter),t})),receivers:i.map((e=>{const t={};return e.trackId&&(t.trackId=e.trackId),e.kind&&(t.kind=e.kind),(e.packetsLostRate||0===e.packetsLostRate)&&(t.packetsLostRate=e.packetsLostRate),t.remoteResource=e.remoteResource,(e.audioLevel||0===e.audioLevel)&&(t.audioLevel=e.audioLevel),e.frameWidth&&(t.frameWidth=e.frameWidth),e.frameHeight&&(t.frameHeight=e.frameHeight),e.frameRate&&(t.frameRate=e.frameRate),(e.bitrate||0===e.bitrate)&&(t.bitrate=e.bitrate),e.jitter&&(t.jitter=e.jitter),t})),pcName:this._pcName}}_getStatsData(){var e,r;return t(this,void 0,void 0,(function*(){const t=yield this._rtcPeerConn.getStats(),o=null===(e=this.reportParser)||void 0===e?void 0:e.parseRTCStatsReport(t);return null===(r=this.reportParser)||void 0===r?void 0:r.formatRCRTCStateReport(o)}))}getAudioLevelReportData(){var e,r;return t(this,void 0,void 0,(function*(){const t=yield this._rtcPeerConn.getStats(),o=null===(e=this.reportParser)||void 0===e?void 0:e.parseRTCStatsReport(t);if(!o)return[];return null===(r=this.reportParser)||void 0===r?void 0:r.getAudioLevelList(o)}))}_reportHandle(){var e,r;return t(this,void 0,void 0,(function*(){const t=yield this._getStatsData();if(!t)return;const o=this._createRCRTCStateReport(t);null===(r=null===(e=this._reportListener)||void 0===e?void 0:e.onStateReport)||void 0===r||r.call(e,o)}))}_sendR3R4Data(){var e;return t(this,void 0,void 0,(function*(){const t=yield this._getStatsData();return!t||(t.senders.length||t.receivers.length?yield null===(e=this._polarisReport)||void 0===e?void 0:e.sendR3R4Data(t):void 0)}))}__reportR3R4ToPolaris(){return t(this,void 0,void 0,(function*(){clearTimeout(this._reportR3R4ToPolarisTimer),yield this._sendR3R4Data(),this._reportR3R4ToPolarisTimer=setTimeout(this.__reportR3R4ToPolaris.bind(this),2e3)}))}getRTCPeerConn(){return this._rtcPeerConn}destroy(){this.clear(),this.clearReTryExchangeTimer(),clearTimeout(this._reportR3R4ToPolarisTimer),this._reportStatsTimer&&(clearInterval(this._reportStatsTimer),this._reportStatsTimer=null),this.registerReportListener(null),this._rtcPeerConn.close(),this._isDestroyed=!0,this.reportParser=null,e.logger.info(i.L_RTC_PEER_CONNECTION_DESTROY_O,{status:s.SUCCESSED},{logSource:e.LogSource.RTC})}clearReTryExchangeTimer(){clearInterval(this._reTryExchangeTimer),this._reTryExchangeTimer=null}isDestroyed(){return this._isDestroyed}}nr.__INNER_EVENT_TRACK_READY__="inner-track-ready",function(e){e[e.DISABLE=0]="DISABLE",e[e.ENABLE=1]="ENABLE"}(Ft||(Ft={})),function(e){e[e.MeetingOrAnchor=1]="MeetingOrAnchor",e[e.Audience=2]="Audience"}(Gt||(Gt={}));class ar{constructor(e,t,r,o,i=Gt.MeetingOrAnchor){this._context=e,this._runtime=t,this._roomId=r,this._crtRTCRoom=o,this._userRole=i}_send(r){return t(this,void 0,void 0,(function*(){let t=!1;if(this._context.getConnectionStatus()!==e.ConnectionStatus.CONNECTED)return t;return t=(yield this._context.setRTCState(this._roomId,r))===e.ErrorCode.SUCCESS,t}))}_getClientID(){const e="uuid";let t=this._runtime.localStorage.getItem(e);return t||(t=at(),this._runtime.localStorage.setItem(e,t)),t}_getRealResourceId(e){let t=e;const r=e.indexOf("_tiny");return r>-1&&(t=e.slice(0,r)),t}_getPolarisTrackId(e){let t="";const r=e.split("_");if(e.includes("_tiny")){const e=r.pop(),o=parseInt(r.pop())===exports.RCMediaType.AUDIO_ONLY?"audio":"video",i=r.pop();t=[r.join("_"),i,e,o].join("_")}else{const e=parseInt(r.pop())===exports.RCMediaType.AUDIO_ONLY?"audio":"video",o=r.pop();t=[r.join("_"),o,e].join("_")}return t}sendR3R4Data(e){return t(this,void 0,void 0,(function*(){const{iceCandidatePair:t,senders:r,receivers:o}=e,i=(null==t?void 0:t.bitrateSend)||-1,s=(null==t?void 0:t.bitrateRecv)||-1,n=(null==t?void 0:t.networkType)||"unknown",a=(null==t?void 0:t.rtt)||-1,c=`${(null==t?void 0:t.IP)||-1}:${null==t?void 0:t.port}`,d=(null==t||t.remoteIP,null==t||t.remotePort,(null==t?void 0:t.availableIncomingBitrate)||-1),u=(null==t?void 0:t.availableOutgoingBitrate)||-1,_=(null==t?void 0:t.totalPacketsLost)||-1,l=this._context.getCurrentId();let R=`R3\t${i}\t-1\t-1\t-1\t${n}\t${a}\t${c}\t${d}\t${u}\t${_}\t${l}\r`,C=`R4\t${s}\t-1\t-1\t-1\t${n}\t${a}\t${c}\t${d}\t${u}\t${_}\t${l}\r`;const p=r.map((e=>{var t;const{trackId:r,audioLevel:o,samplingRate:i,bitrate:s,packetsLostRate:n,frameRate:a,frameWidth:c,frameHeight:d,googRenderDelayMs:u,jitter:_,nackCount:l,pliCount:R,rtt:C,googFirsSent:p,encoderImplementation:h}=e,g=this._getPolarisTrackId(r),T=this._getRealResourceId(r);return{trackId:g,googCodecName:h||String(-1),audioLevel:o||0===o?o:-1,bitrate:s||0===s?s:-1,packetsLostRate:n||0===n?n:-1,frameRate:a||-1,resolution:c&&d?`${c} * ${d}`:"-1",jitter:_||-1,nackCount:l||0===l?l:-1,pliCount:R||0===R?R:-1,rtt:C||-1,googFirsSent:p,samplingRate:i,googRenderDelayMs:u,encoderImplementation:h||String(-1),trackState:(null===(t=this._crtRTCRoom.getLocalTrack(T))||void 0===t?void 0:t.isLocalMuted())?Ft.DISABLE:Ft.ENABLE}})),h=o.filter((e=>!!e.trackId)).map((e=>{var t;const{trackId:r,audioLevel:o,samplingRate:i,bitrate:s,packetsLostRate:n,frameRate:a,frameWidth:c,frameHeight:d,googRenderDelayMs:u,jitter:_,nackCount:l,pliCount:R,rtt:C,googFirsReceived:p,codecImplementationName:h}=e,g=this._getPolarisTrackId(r),T=this._getRealResourceId(r);return{trackId:g,googCodecName:h||String(-1),audioLevel:o||0===o?o:-1,bitrate:s||0===s?s:-1,packetsLostRate:n||0===n?n:-1,frameRate:a||-1,resolution:c&&d?`${c} * ${d}`:"-1",jitter:_||-1,nackCount:l||0===l?l:-1,pliCount:R||0===R?R:-1,rtt:C||-1,googFirsReceived:p,samplingRate:i,googRenderDelayMs:u,codecImplementationName:h||String(-1),trackState:(null===(t=this._crtRTCRoom.getRemoteTrack(T))||void 0===t?void 0:t.isLocalMuted())?Ft.DISABLE:Ft.ENABLE}}));let g=!1;R+=p.map((e=>`${e.trackId}\t${e.googCodecName}\t${e.audioLevel}\t${e.samplingRate}\t${e.bitrate}\t${e.packetsLostRate}\t${e.frameRate}\t${e.resolution}\t${e.googRenderDelayMs}\t${e.jitter}\t${e.nackCount}\t${e.pliCount}\t${e.rtt}\t${e.googFirsSent}\t${e.encoderImplementation}\t${e.trackState}`)).join("\n"),e.senders.length&&(g=yield this._send(R+`\r${this._userRole}`));let T=!1;return C+=h.map((e=>`${e.trackId}\t${e.googCodecName}\t${e.audioLevel}\t${e.samplingRate}\t${e.bitrate}\t${e.packetsLostRate}\t${e.frameRate}\t${e.resolution}\t${e.googRenderDelayMs}\t${e.jitter}\t${e.nackCount}\t${e.pliCount}\t${e.rtt}\t${e.googFirsReceived}\t${e.codecImplementationName}\t${e.trackState}`)).join("\n"),e.receivers.length&&(T=yield this._send(C+`\r${this._userRole}`)),!(!g&&!T)}))}sendR1(){const e=`R1\t5.5.6\t${this._context.getCoreVersion()}\tweb\t${navigator.platform}\t-1\t${lt.browser}\t${lt.version}\t${this._getClientID()}\t${this._userRole}`;this._send(e)}sendR2(e,t,r){const o=`R2\t${e}\t${t}\t${this._getClientID()}\r${r.join("\t")}\r${this._userRole}`;this._send(o)}}class cr{constructor(e){this._room=e,this._audioLevelChangeHandler=null,this._timer=null}_audioLevelReport(){return t(this,void 0,void 0,(function*(){if(!this._audioLevelChangeHandler)return;const e=[],t=this._room.__getPC();for(let r=0;r<t.length;r++){const o=t[r];if("new"===o.getRTCPeerConn().iceConnectionState)return;const i=(yield o.getAudioLevelReportData()).map((e=>{const{userId:t}=ot(e.trackId);return{track:this._room.getCrtUserId()===t?this._room.getLocalTrack(e.trackId):this._room.getRemoteTrack(e.trackId),audioLevel:e.audioLevel||0}})).filter((e=>e.track));e.push(...i)}this._audioLevelChangeHandler(e)}))}onAudioLevelChange(e,t){t<300||t>1e3?r.error('the valid range of onAudioLevelChange params "gap" is: > 300 && < 1000'):e?(this._audioLevelChangeHandler=e,this._timer=setInterval(this._audioLevelReport.bind(this),t)):this._audioLevelChangeHandler=null}clearAudioLevelReportTimer(){this._timer&&(clearInterval(this._timer),this._timer=null)}}exports.RCRTCLiveRole=void 0,(Kt=exports.RCRTCLiveRole||(exports.RCRTCLiveRole={}))[Kt.ANCHOR=1]="ANCHOR",Kt[Kt.AUDIENCE=2]="AUDIENCE";class dr{constructor(e=!1,t,r,o,i){this._useMutilPeerC=e,this._roomId=t,this._reTryExchange=r,this._currentUserId=o,this._polarisReport=i,this._mutilPeerC={}}get useMutilPeerC(){return this._useMutilPeerC}_isPub(e){if(!e.length)return!1;const{track:t}=e[0]instanceof xe||e[0]instanceof Je?{track:e[0]}:e[0];return t.isLocalTrack()}_groupTracksByTag(e){const t={};return e.map((e=>{const{track:r}=e instanceof xe?{track:e}:e,o=r.getTag();t[o]?t[o].push(e):t[o]=[e]})),t}_genPCName(e,t){let r=null;return r=e?this._useMutilPeerC?`${this._roomId}_${t}`:`${this._roomId}_pub`:`${this._roomId}_sub`,r}_createOnePeerCItem(e,t){if(this._mutilPeerC[e]&&!this._mutilPeerC[e].pc.isDestroyed())this._mutilPeerC[e].tracks=t;else{const r=this._isPub(t),o=new nr(e,(()=>this._reTryExchange(e,r)),this._currentUserId,this._polarisReport);this._mutilPeerC[e]={pc:o,tracks:t,isPub:r}}return Object.assign({},this._mutilPeerC[e],{pcName:e})}createPeerCList(e){const t=[],r=this._isPub(e);if(!this._useMutilPeerC){const r=this._genPCName(!0);return t.push(this._createOnePeerCItem(r,e)),t}if(this._useMutilPeerC&&!r){const r=this._genPCName(!1);return t.push(this._createOnePeerCItem(r,e)),t}const o=this._groupTracksByTag(e);for(const e in o){const i=this._genPCName(r,e),s=o[e];t.push(this._createOnePeerCItem(i,s))}return t}_removeAllLocalTrack(){this.getPCList().forEach((e=>e.removeAllLocalTrack()))}destroyPeerC(e){this._mutilPeerC[e].pc.destroy()}_destroyAllPeerC(){this.getPCList().forEach((e=>e.destroy()))}getPCItemByPCName(e){return this._mutilPeerC[e]}getPCByTrackId(e,t=!0){const{tag:r}=ot(e),o=this._genPCName(t,r);return this._mutilPeerC[o].pc}getPCList(){const e=[];for(const t in this._mutilPeerC)e.push(this._mutilPeerC[t].pc);return e}getMutilPeerCData(){return this._mutilPeerC}setPeerCData(e,t,r){}clear(){this._removeAllLocalTrack(),this._destroyAllPeerC()}}!function(e){e[e.Unknow=0]="Unknow",e[e.Publish=1]="Publish",e[e.UnPublish=2]="UnPublish",e[e.JoinRoom=3]="JoinRoom",e[e.LeaveRoom=4]="LeaveRoom",e[e.UpdateSubscribeTask=5]="UpdateSubscribeTask",e[e.SubscribedTask=6]="SubscribedTask",e[e.UnSubscribedTask=7]="UnSubscribedTask",e.AsyncCommand="AsyncCommand"}(Ht||(Ht={})),function(e){e.NORMAL="normal",e.MIDDLE="middle",e.TAIL="tail"}(jt||(jt={})),function(e){e[e.LOW=0]="LOW",e[e.NORMAL=1]="NORMAL",e[e.HIGH=2]="HIGH"}(Jt||(Jt={})),function(e){e[e.Destroy=40400]="Destroy"}(Wt||(Wt={}));class ur{get priority(){return Jt.LOW}get kind(){return Ht.Unknow}}class _r extends ur{constructor(e=jt.NORMAL){super(),this.state=e}get kind(){return Ht.AsyncCommand}setState(e){this.state=e}pickoutSubscribed(e,t){const{unsubscribe:r,subscribe:o}=this.calcSubscribeList(e,t);return _r.AsyncSubscribeTasks=[],_r.AsyncUnsubscribeTasks=[],_r.AsyncUpdateSubscribeTasks=[],{subscribe:o,unsubscribe:r}}calcSubscribeList(e,t){const r=[],o=new Set,i=[],s=new Set,n=this.formateTrack(e),a=this.formateTrack(t);return a.forEach((e=>{const t=`${e.track.getTrackId()}_SUB_${e.subTiny?"0":"1"}`;this.trackInSubscribeList(e,n)||o.has(t)||(r.push(e),o.add(t))})),n.forEach((e=>{const t=`${e.track.getTrackId()}_SUB_${e.subTiny?"0":"1"}`;this.trackInSubscribeList(e,a)||s.has(t)||(i.push(e),s.add(t))})),{unsubscribe:r,subscribe:i}}formateTrack(e){return e.map((e=>e instanceof Je?{track:e,subTiny:!1}:Object.assign({subTiny:!1},e)))}trackInSubscribeList(e,t){if(0===t.length)return!1;return t.findIndex((t=>t.track.getTrackId()===e.track.getTrackId()&&t.subTiny===e.subTiny))>-1}}_r.AsyncSubscribeTasks=[],_r.AsyncUnsubscribeTasks=[],_r.AsyncUpdateSubscribeTasks=[];class lr{constructor(e,t,r,o,i,s,n,a,c){this.context=e,this.service=t,this.peerMgr=r,this.roomId=o,this.crtUserId=i,this.roomMode=s,this.polarisReport=n,this.isUpgrade=a,this.isMainRoom=c,this._remoteTracks={},this._subscribedList=[],this._collectSubscribeList=[],this._CDNUris=null,this._CDNEnable=!1,this._destroyed=!1}get useMutilPeerC(){return this.peerMgr.useMutilPeerC}getResourcesByUserId(e){return this._roomResources[e]}getRemoteTrack(e){return this._remoteTracks[e]}getRemoteTracksByUserId(e){const t=[];for(const r in this._remoteTracks){const o=this._remoteTracks[r];o.getUserId()===e&&t.push(o)}return t}getRemoteTracks(){return this._remoteTracks}getSessionId(){return this._sessionId}getAllUserIds(){return Object.keys(this._roomResources)}getRemoteUserIds(){return this.getAllUserIds().filter((e=>e!==this.crtUserId))}getSubscribedList(){return this._subscribedList}getCollectSubscribeList(){return this._collectSubscribeList}getPublishedResourceByTrackId(e){const{userId:t}=ot(e);return this._roomResources[t].find((t=>rt(t)===e))}getToken(){return this._token}getLocalTrack(e){return this.peerMgr.getPCByTrackId(e).getLocalTrack(e)}getLocalTracks(){const e=[];return this.peerMgr.getPCList().forEach((t=>{e.push(...t.getLocalTracks())})),e}getTrackState(e){var t;return(null===(t=this.getLocalTrack(e))||void 0===t?void 0:t.isLocalMuted())?0:1}getCDNEnable(){return this._CDNEnable}getCDNUris(){return this._CDNUris}}class Rr extends lr{_initRemoteTracks(){for(const e in this._roomResources){const t=this._roomResources[e];e!==this.crtUserId&&0!==t.length&&t.forEach((e=>{const t=rt(e),{tag:r,userId:o,mediaType:i}=ot(t),s=i===exports.RCMediaType.AUDIO_ONLY?new We(r,o):new qe(r,o);s.__innerSetRemoteMuted(0===e.state),this._remoteTracks[t]=s}))}}initWithRoomData(e){this._sessionId=e.sessionId,this._token=e.token,this.isUpgrade?this._roomResources={}:this._roomResources=gt(e,this.roomId),this._initRemoteTracks(),this.setResourcesByUserId(this.crtUserId,this.getResourcesByUserId(this.crtUserId)||[]),r.info(`room data -> ${JSON.stringify(this._roomResources)}`)}assignRoomData(e){Object.assign(this._roomResources,e)}setResourcesByUserId(e,t){this._roomResources[e]=t}removeRemoteTrack(e){delete this._remoteTracks[e]}removeResourcesByUserId(e){delete this._roomResources[e]}addRemoteTrack(e){this._remoteTracks[e.getTrackId()]=e}removeRemoteTracks(){const e=Object.values(this._remoteTracks);e.length&&(e.forEach((e=>{e.isAudioTrack()&&e.__releaseMediaElement()})),this._remoteTracks={})}setCDNEnabel(e){this._CDNEnable=e}setCDNUris(e){this._CDNUris=e}resetSubscribedList(e){this._subscribedList.splice(0,this._subscribedList.length,...e),this.resetCollectSubscribeList(e)}resetCollectSubscribeList(e){this._collectSubscribeList.splice(0,this._collectSubscribeList.length,...e)}}class Cr{constructor(e,t){this._store=e,this.abortCode=t,this._queue=[],this._busy=!1,this._isDestroyed=!1}_next(){this._busy=!1,this._execute()}_execute(){return t(this,void 0,void 0,(function*(){if(this._isDestroyed||this._busy||0===this._queue.length)return;this._busy=!0;const{command:e,resolve:t,reject:r}=this._queue.shift();let o;try{o=yield e.execute(this._store,this)}catch(e){return r(e),void this._next()}t(o),this._next()}))}push(e){return new Promise(((t,r)=>{if(this._isDestroyed)return;const o=e.kind;this._queue.length>0&&o===Ht.AsyncCommand&&({command:e,resolve:t,reject:r}=this.commandOffset(e,t,r));const i=e.priority;if(i===Jt.LOW)this._queue.push({command:e,resolve:t,reject:r});else{const o=this._queue.findIndex((e=>e.command.priority<i)),s=-1===o?this._queue.length-1:o;this._queue.splice(s,0,{command:e,resolve:t,reject:r})}Promise.resolve().then((()=>{this._execute()}))}))}commandOffset(e,r,o){const i=this._queue.length-1;if(!(this._queue[i].command.kind===Ht.AsyncCommand))return{command:e,resolve:r,reject:o};const[s]=this._queue.splice(i,1);s.command instanceof _r&&(s.command.setState(jt.MIDDLE),e instanceof _r&&e.setState(jt.TAIL));const n=e.execute;return e.execute=function(r,o){return t(this,void 0,void 0,(function*(){return s.command.execute.call(s.command,r,o),n.call(e,r,o)}))},{command:e,resolve:e=>{s.resolve.call(s,e),r(e)},reject:e=>{s.reject.call(s,e),o(e)}}}isDestroyed(){return this._isDestroyed}destroy(){this._isDestroyed||(this._isDestroyed=!0,this._queue.forEach((e=>{e.resolve({code:this.abortCode})})),this._queue.length=0)}}class pr extends Cr{constructor(e,t,r,o,i,s,n,a,c){super(new Rr(e,t,r,o,i,s,n,a,c),exports.RCRTCCode.ROOM_HAS_BEEN_DESTROYED)}get store(){return this._store}destroy(){super.destroy(),this._store.removeRemoteTracks()}}class hr extends ur{execute(o){return t(this,void 0,void 0,(function*(){const t=o.getResourcesByUserId(o.crtUserId),i=t.slice();t.length=0,r.info(`unpublish uris before rejoin -> ${JSON.stringify(i)}`);const s=yield o.context.setRTCTotalRes(o.roomId,Ye(St.UNPUBLISH,i),ze([]),St.TOTAL_CONTENT_RESOURCE,ze([]));s!==e.ErrorCode.SUCCESS?r.error(`unpublish uris before rejoin failed -> code: ${s}`):r.info("unpublish uris before rejoin success")}))}}!function(e){e[e.RTC=0]="RTC",e[e.LIVE=2]="LIVE",e[e.CROSS_MUTI=7]="CROSS_MUTI",e[e.CROSS_LIVE=8]="CROSS_LIVE"}(qt||(qt={})),exports.RTCJoinType=void 0,(Yt=exports.RTCJoinType||(exports.RTCJoinType={}))[Yt.KICK=0]="KICK",Yt[Yt.REFUSE=1]="REFUSE",Yt[Yt.COEXIST=2]="COEXIST";class gr extends ur{constructor(e,t,r,o,i,s){super(),this.roomId=e,this.roomType=t,this.joinType=r,this.livingType=o,this.innerUserDatas=i,this.outerUserDatas=s}get kind(){return Ht.JoinRoom}execute(o,n){var a;return t(this,void 0,void 0,(function*(){const{context:t,service:c}=o;let d=i.L_RTC_CLIENT_JOIN_RTC_ROOM_R;if(this.roomType===qt.LIVE?d=i.L_RTC_CLIENT_JOIN_LIVING_ROOM_R:this.roomType===qt.CROSS_MUTI&&(d=i.L_RTC_CLIENT_JOIN_CROSS_RTC_ROOM_R),t.getConnectionStatus()!==e.ConnectionStatus.CONNECTED)return e.logger.error(d,{status:s.FAILED,code:exports.RCRTCCode.SIGNAL_DISCONNECTED,msg:"im not connected"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SIGNAL_DISCONNECTED};if(c.detectorMediaSever(),ht(t.getNaviInfo()))return e.logger.error(d,{status:s.FAILED,code:exports.RCRTCCode.PACKAGE_ENVIRONMENT_ERROR,msg:"navi_usl error"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PACKAGE_ENVIRONMENT_ERROR};if(!e.validate("roomId",this.roomId,e.notEmptyString,!0))return e.logger.error(d,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> roomId"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR};if(!e.validate("roomType",this.roomType,(e=>void 0!==qt[e])))return e.logger.error(d,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> roomType"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR};if(!e.validate("outerUserDatas",this.outerUserDatas,e.isObject,!1))return e.logger.error(d,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> outerUserDatas"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR};if(this.outerUserDatas){if(!Object.keys(this.outerUserDatas).every((t=>e.validate(`outerUserDatas.${t}`,this.outerUserDatas[t],e.isString,!0))))return e.logger.error(d,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> outerUserDatas"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR}}if(!c.getNaviMS().length)return e.logger.error(d,{status:s.FAILED,code:exports.RCRTCCode.NOT_OPEN_VIDEO_AUDIO_SERVER,msg:"No audio / video server address available"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.NOT_OPEN_VIDEO_AUDIO_SERVER};r.info(`joinRoom -> roomId: ${this.roomId}; joinType: ${this.joinType||exports.RTCJoinType.KICK}`);const{code:u,data:_}=yield t.joinRTCRoom(this.roomId,this.roomType,this.livingType,this.joinType,this.innerUserDatas,this.outerUserDatas);if(u!==e.ErrorCode.SUCCESS||!_){r.warn(`joinRoom failed -> code: ${u}`);const t=40032===u?exports.RCRTCCode.SIGNAL_JOIN_RTC_ROOM_REFUSED:u;return e.logger.error(d,{status:s.FAILED,code:t,msg:`joinRoom failed -> code: ${u}`},{logSource:e.LogSource.RTC}),{code:t}}r.info(`joinRoom success -> userId: ${t.getCurrentId()}, roomId: ${this.roomId}, data: ${JSON.stringify(_)}`),o.initWithRoomData(_);o.getResourcesByUserId(o.crtUserId).length>0&&n.push(new hr);const l=null===(a=_.roomInfo.filter((e=>"cdn_uris"===e.key))[0])||void 0===a?void 0:a.value;return l&&o.setCDNUris(JSON.parse(l)[0]),e.logger.info(d,{status:s.SUCCESSED,userId:o.crtUserId,roomId:this.roomId,data:_},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SUCCESS,data:_}}))}}function Tr(e,r,o,i){return t(this,void 0,void 0,(function*(){return{sdp:yield o.createOffer(r),extend:JSON.stringify({resolutionInfo:o.getOutboundVideoInfo()}),subscribeList:e.filter((e=>{const t=e.track.getTrackId(),{userId:r}=ot(t),o=i.getResourcesByUserId(r);if(!o)return!1;const s=o.filter((e=>t===`${e.msid}_${e.mediaType}`)).length;return s})).map((e=>({simulcast:e.subTiny?Nt.TINY:Nt.NORMAL,resolution:"",uri:i.getPublishedResourceByTrackId(e.track.getTrackId()).uri}))),switchstream:!1}}))}function mr(o,i,s){return t(this,void 0,void 0,(function*(){const t=yield o.setRTCCDNUris(i,St.TOTAL_CONTENT_RESOURCE,JSON.stringify([s]));return t!==e.ErrorCode.SUCCESS?(r.error(`spreadCDNInfo failed -> code: ${t}`),{code:exports.RCRTCCode.SIGNAL_ERROR}):(r.info("spreadCDNInfo succeed"),{code:exports.RCRTCCode.SUCCESS})}))}function Sr(o,i,s){return t(this,void 0,void 0,(function*(){const t=yield o.setRTCData(i,"cdn_uris",JSON.stringify([s]),!0,Xt.ROOM);return t!==e.ErrorCode.SUCCESS?(r.error(`setRoomCDNInfo failed -> code: ${t}`),{code:exports.RCRTCCode.SIGNAL_ERROR}):(r.info("setRoomCDNInfo succeed"),{code:exports.RCRTCCode.SUCCESS})}))}function Ir(r){return t(this,void 0,void 0,(function*(){const t=r.context,o=r.roomId,n=Object.assign({},r.getCDNUris(),{enableInnerCDN:r.getCDNEnable()});e.logger.info(i.L_LIVING_ROOM_SPREAD_CDN_INFO_T,{roomId:o,CDNUris:n},{logSource:e.LogSource.RTC});const a=(yield Promise.all([mr(t,o,n),Sr(t,o,n)])).every((e=>e.code===exports.RCRTCCode.SUCCESS));return a?e.logger.info(i.L_LIVING_ROOM_SPREAD_CDN_INFO_R,{status:s.SUCCESSED,CDNUris:n},{logSource:e.LogSource.RTC}):e.logger.error(i.L_LIVING_ROOM_SPREAD_CDN_INFO_R,{status:s.FAILED,code:exports.RCRTCCode.SIGNAL_ERROR,msg:"signal error"},{logSource:e.LogSource.RTC}),a?{code:exports.RCRTCCode.SUCCESS}:{code:exports.RCRTCCode.SIGNAL_ERROR}}))}!function(e){e.PUBLISH="publish",e.SUBSCRIBE="subscribe"}(zt||(zt={})),function(e){e.BEGIN="begin",e.END="end"}(Qt||(Qt={})),function(e){e[e.SPREAD=0]="SPREAD",e[e.NO_SPREAD=-1]="NO_SPREAD"}(Zt||(Zt={})),function(e){e[e.ROOM=1]="ROOM",e[e.PERSON=2]="PERSON"}(Xt||(Xt={}));class Er extends ur{constructor(e,t){super(),this.headers=e,this.reqBody=t}execute(e,r){var o,i;return t(this,void 0,void 0,(function*(){const t=yield e.service.exchange(this.headers,this.reqBody);if(e.roomMode!==qt.LIVE)return t;const r=null===(i=null===(o=t.data)||void 0===o?void 0:o.urls)||void 0===i?void 0:i.pull_url;if(t.code!==exports.RCRTCCode.SUCCESS||!r)return t;const s=JSON.parse(r);if(e.setCDNUris(s),(null==s?void 0:s.broadcast)===Zt.SPREAD){e.setCDNEnabel(!0);const t=Object.assign({},s,{enableInnerCDN:!0});Sr(e.context,e.roomId,t)}return t}))}}class fr extends ur{constructor(e,t,r){super(),this.tracks=e,this.subhook=t,this.forceReq=r}execute(o,i){return t(this,void 0,void 0,(function*(){const{tracks:t,forceReq:s}=this,n=o.roomId;if(!e.validate("tracks",t,(()=>e.isArray(t)&&t.every((e=>e instanceof Je||e.track instanceof Je))),!0))return r.warn(`update sublist failed, tracks is invalid -> roomId: ${n}`),{code:exports.RCRTCCode.PARAMS_ERROR};r.info(`update subscribe list -> roomId: ${n}, forceReq: ${s}, tracks: ${t.map(Tt)}`);let a=t.map((e=>e instanceof Je?{track:e}:Object.assign({},e)));const c={};a=a.filter((e=>{const t=e.track.getTrackId();return o.getRemoteTrack(t)?!c[t]&&(c[t]=!0):(r.warn(`track cannot found in room -> trackId: ${t}`),!1)})).map((e=>Object.assign({},e)));const d=o.getSubscribedList().map((e=>Object.assign({},e)));if(!s){let e=!1;if(a.forEach((t=>{const r=d.findIndex((e=>e.track===t.track));if(-1===r)return void(e=!0);d.splice(r,1)[0].subTiny!==t.subTiny&&(e=!0)})),d.length&&(e=!0),!e)return{code:exports.RCRTCCode.SUCCESS}}const{pc:u,pushOtherRooms:_,headers:l}=this.subhook(t);u.updateSubRemoteTracks(a.map((e=>e.track)));const R=yield Tr(a,!1,u,o);_&&(R.pushOtherRooms=_);const C=yield new Er(l,R).execute(o,i),p=a.map((e=>e.track.getTrackId()));if(C.code!==exports.RCRTCCode.SUCCESS)return{code:C.code};const{sdp:h,resultCode:g,message:T,subscribedList:m}=C.data;if(g!==exports.RCRTCCode.SUCCESS)return r.error(`change subscribe list failed: ${g}`),{code:g};r.debug(`subscribe success: ${p.join(",")}`);const S=yield u.setRemoteAnswer(h.sdp);if(S!==exports.RCRTCCode.SUCCESS)return{code:S};const I=null==m?void 0:m.map((e=>`${e.msid}_${e.mediaType}`)),E=a.filter((e=>null==I?void 0:I.includes(e.track.getTrackId()))),f=a.filter((e=>!(null==I?void 0:I.includes(e.track.getTrackId())))),L=o.getRemoteTracks();for(const e in L){const t=E.some((t=>t.track.getTrackId()===e));L[e].__innerSetSubscribed(t);const r=E.some((t=>t.track.getTrackId()===e&&t.subTiny));L[e].isVideoTrack()&&L[e].__innerSetIsTinyTrack(r)}return o.resetSubscribedList(E),f.length?{code:exports.RCRTCCode.SUCCESS,failedList:f}:{code:exports.RCRTCCode.SUCCESS}}))}}class Lr extends ur{constructor(e,t){super(),this.tracks=e,this.subhook=t}execute(o,n){return t(this,void 0,void 0,(function*(){const t=this.tracks,a=o.roomId;if(e.logger.info(i.L_ABSTRACT_ROOM_UNSUBSCRIBE_T,{trackIds:t.map(Tt)},{logSource:e.LogSource.RTC}),!e.validate("tracks",t,(()=>e.isArray(t)&&t.length>0&&t.every((e=>e instanceof Je))),!0))return r.warn(`unsubscribe failed, tracks is invalid -> roomId: ${a}`),e.logger.warn(i.L_ABSTRACT_ROOM_UNSUBSCRIBE_R,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> tracks"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR};r.info(`unsubscribe -> roomId: ${a}, tracks: ${t.map(Tt)}`);const c=o.getSubscribedList().map((e=>Object.assign({},e))).filter((e=>!t.includes(e.track)));return o.polarisReport.sendR2(zt.SUBSCRIBE,Qt.END,t.map((e=>e.getTrackId()))),e.logger.info(i.L_ABSTRACT_ROOM_UNSUBSCRIBE_R,{trackIds:t.map(Tt),roomId:a},{logSource:e.LogSource.RTC}),new fr(c,this.subhook,!1).execute(o,n)}))}}class vr extends ur{constructor(e,t){super(),this.msgContent=e,this.subhook=t}get priority(){return Jt.NORMAL}execute(e,o){return t(this,void 0,void 0,(function*(){const t=[],i=[],s=[],n=[],a={joined:t,left:i,upgrade:s,downgrade:n},{users:c}=this.msgContent;if(0===c.length)return a;for(let t=0;t<c.length;t++){const r=c[t];if(r.extra&&r.extra.roomId!==e.roomId)return a;if(1==+r.state&&!e.getRemoteUserIds().includes(r.userId))return a}c.forEach((o=>{const a=o.userId;if(0==+o.state){r.debug(`user joined -> ${a}`);const i=e.getResourcesByUserId(a);i||(o.switchRoleType?s.push(a):t.push(a)),e.setResourcesByUserId(a,i||[])}else r.debug(`user left -> ${a}`),o.switchRoleType?n.push(a):i.push(a)}));const d=[...i,...n];if(d.length){const t=[],r=[];d.forEach((o=>{t.push(...e.getRemoteTracksByUserId(o)),r.push(o)})),t.length&&(yield new Lr(t,this.subhook).execute(e,o),t.forEach((t=>e.removeRemoteTrack(t.getTrackId())))),r.length&&r.forEach((t=>e.removeResourcesByUserId(t)))}return a}))}}class Or extends ur{constructor(e,t,r){super(),this.subhook=e,this.tracks=t,this.onTrackUnpublish=r}execute(e,r){return t(this,void 0,void 0,(function*(){const t=this.tracks;yield new Lr(t,this.subhook).execute(e,r),t.forEach((t=>{t.__innerDestroy(),e.removeRemoteTrack(t.getTrackId())})),this.onTrackUnpublish(t)}))}}class Ar extends ur{constructor(e,t,r,o,i){super(),this.msgContent=e,this.messageType=t,this.senderId=r,this.subhook=o,this.callback=i}get priority(){return Jt.NORMAL}execute(e,o){var i,s;return t(this,void 0,void 0,(function*(){const{uris:t}=this.msgContent,n=[],a=[],c=[];let d;const u=this.senderId,_=this.messageType,l=e.getResourcesByUserId(u)||[];switch(e.setResourcesByUserId(u,l),_){case St.MODIFY:c.push(...t);break;case St.PUBLISH:n.push(...t);break;case St.UNPUBLISH:a.push(...t);break;case St.TOTAL_CONTENT_RESOURCE:d=nt(l,t),n.push(...d.publishedList),a.push(...d.unpublishedList),c.push(...d.modifiedList)}if(n.length>0){const t=l.map(rt),i=[],s=[];if(n.forEach((r=>{const o=rt(r),n=t.indexOf(o),{userId:a,tag:c,mediaType:d}=ot(o);n>-1?l[n]=r:l.push(r);let u=e.getRemoteTrack(o);u?u.isSubscribed()&&i.push(u):(u=d===exports.RCMediaType.AUDIO_ONLY?new We(c,a):new qe(c,a),e.addRemoteTrack(u),s.push(u)),u.__innerSetRemoteMuted(0===r.state)})),i.length){const t=i.map((e=>e.getTrackId()));r.debug(`resub tracks -> ${JSON.stringify(t)}`);const{code:s}=yield new fr(i,this.subhook).execute(e,o);s!==exports.RCRTCCode.SUCCESS&&r.error(`resub tracks failed -> code: ${s}, ids: ${JSON.stringify(t)}`)}this.callback.onTrackPublish(s)}if(a.length>0){const t=a.map(rt);for(let e=l.length-1;e>=0;e-=1){const r=l[e];t.includes(rt(r))&&l.splice(e,1)}const r=a.map((t=>{const r=rt(t);return e.getRemoteTrack(r)}));yield new Or(this.subhook,r,this.callback.onTrackUnublish).execute(e,o)}if(c.length>0){const t=l.map(rt);for(let r=0;r<c.length;r+=1){const o=c[r],i=rt(o),s=t.indexOf(i);l[s].state=o.state;const n=e.getRemoteTrack(i);n.__innerSetRemoteMuted(0===o.state),n.isAudioTrack()?this.callback.onAudioMute(n):this.callback.onVideoMute(n)}}if(e.roomMode!==qt.LIVE)return;const R=this.msgContent;if(!R.cdn_uris)return;const C=(null===(i=e.getCDNUris())||void 0===i?void 0:i.enableInnerCDN)!==R.cdn_uris[0].enableInnerCDN;e.setCDNUris(R.cdn_uris[0]),C&&this.callback.onCDNEnableChange(!!(null===(s=e.getCDNUris())||void 0===s?void 0:s.enableInnerCDN))}))}}class Nr extends ur{constructor(e,t,r){super(),this.tracks=e,this.subhook=t,this.forceReq=r}execute(o,n){return t(this,void 0,void 0,(function*(){const{tracks:t,forceReq:a}=this,c=o.roomId;if(e.logger.info(i.L_ABSTRACT_ROOM_SUBSCRIBE_T,{trackIds:t.map(Tt),forceReq:a},{logSource:e.LogSource.RTC}),!e.validate("tracks",t,(()=>e.isArray(t)&&t.length>0&&t.every((e=>e instanceof Je||e.track instanceof Je))),!0))return r.warn(`subscribe failed, tracks is invalid -> roomId: ${c}`),e.logger.error(i.L_ABSTRACT_ROOM_SUBSCRIBE_R,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> tracks"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR};r.info(`subscribe -> roomId: ${c}, tracks: ${t.map(Tt)}`);const d=o.getSubscribedList().map((e=>Object.assign({},e))),u=t.map((e=>e instanceof Je?{track:e}:e));let _=!1;const l=[];return u.forEach((e=>{const t=e.track.getTrackId();l.push(t);const r=d.find((e=>e.track.getTrackId()===t));r&&r.subTiny===e.subTiny||(r?r.subTiny=e.subTiny:d.push(e),_=!0)})),_||a?(o.polarisReport.sendR2(zt.SUBSCRIBE,Qt.BEGIN,l),e.logger.info(i.L_ABSTRACT_ROOM_SUBSCRIBE_R,{trackIds:t.map(Tt),roomId:c},{logSource:e.LogSource.RTC}),new fr(d,this.subhook,!0).execute(o,n)):(e.logger.warn(i.L_ABSTRACT_ROOM_SUBSCRIBE_R,{status:s.FAILED,code:"",msg:"repeat subscribe"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SUCCESS})}))}}class Dr extends ur{constructor(e,t){super(),this.tracks=e,this.pubhook=t}get kind(){return Ht.Publish}_removePubFailedTracks(e,t){e.forEach((e=>{const o=e instanceof xe?e:e.track;r.debug(`remove pub failed track from peerconnection -> trackId: ${o.getTrackId()}`),t.removeLocalTrackById(o.getTrackId())}))}__publish(e,o,i,s,n){return t(this,void 0,void 0,(function*(){const{pcName:t,pc:a,headers:c}=o,d=e.roomId,u=[];i.forEach((e=>{const{track:t}=e instanceof xe?{track:e}:e;u.push(t)})),i.sort(((e,t)=>{const{track:r}=e instanceof xe?{track:e}:e,{max:o}=r.getBitrate(),{track:i}=t instanceof xe?{track:t}:t,{max:s}=i.getBitrate();return o-s}));if(a.getLocalTracks().length+((e,t)=>{let r=0;return e.forEach((e=>{const o=e instanceof xe?e.getTrackId():e.track.getTrackId();t.getLocalTrack(o)||(e instanceof xe?r++:e.pubTiny&&e.track.isVideoTrack()&&(r+=2))})),r})(i,a)>10)return r.error(`publish failed, tracks limit exceeded -> roomId: ${d}`),{code:exports.RCRTCCode.PUBLISH_TRACK_LIMIT_EXCEEDED,tracks:u};r.debug(`publish tracks -> roomId: ${d}, tracks: ${i.map(Tt)}`);for(let e=0;e<i.length;e++){const t=i[e],{track:o,pubTiny:s}=t instanceof xe?{pubTiny:!1,track:t}:t;if(o.isVideoTrack()&&s){let e;try{e=o.__innerGetMediaStreamTrack().clone();const t=s.frameRate||exports.RCFrameRate.FPS_15,r=s.resolution||exports.RCResolution.W176_H144,{width:i,height:n}=ct(r),a=_t(t);yield e.applyConstraints({width:i,height:n,frameRate:a})}catch(t){null==e||e.stop(),r.warn(`pubTiny failed -> id: ${o.getTrackId()}, msg: ${t.message}`);break}a.addLocalTrack(new Be(o.getTag(),o.getUserId(),e,!0))}a.addLocalTrack(o)}a.clearReTryExchangeTimer();const _=e.useMutilPeerC?[]:e.getSubscribedList(),l=yield Tr(_,!1,a,e);s&&(l.pushOtherRooms=s);const R=yield new Er(c,l).execute(e,n);if(R.code!==exports.RCRTCCode.SUCCESS)return r.error(`publish failed -> roomId: ${d}, code: ${R.code}`),this._removePubFailedTracks(i,a),{code:R.code,tracks:u};const{sdp:C,resultCode:p,message:h}=R.data;if(p!==exports.RCRTCCode.SUCCESS)return r.error(`publish failed -> roomId: ${d}, code: ${p}, msg: ${h}`),this._removePubFailedTracks(i,a),{code:p,tracks:u};const g=yield a.setRemoteAnswer(C.sdp);return g!==exports.RCRTCCode.SUCCESS?{code:g,tracks:u}:Object.assign({},R,{tracks:u})}))}_mergePublishRes(o,i){return t(this,void 0,void 0,(function*(){const t=i.crtUserId,s=i.roomId;let n="";const a=[],c=i.getResourcesByUserId(t),d=[...c];let u=[];o.forEach((e=>{if(e.code!==exports.RCRTCCode.SUCCESS){const{tracks:t}=e;return void a.push({code:e.code,tracks:t})}const{publishList:t,urls:r,mcuPublishList:o}=e.data;n=null==r?void 0:r.liveUrl;t.map((e=>Object.assign({tag:e.msid.split("_").pop(),state:i.getTrackState(rt(e))},e))).forEach((e=>{const{isInclude:t,index:r}=((e,t)=>{let r=!1,o=0;for(let i=0;i<t.length;i++){const s=t[i];if(`${e.msid}_${e.mediaType}`==`${s.msid}_${s.mediaType}`){r=!0,o=i;break}}return{isInclude:r,index:o}})(e,d);t?d.splice(r,1,e):d.push(e)}));const s=(null==o?void 0:o.map((e=>Object.assign({tag:e.msid.split("_").pop(),state:1},e))))||[];u=s}));const{publishedList:_}=nt(c,d),l=Object.assign({},i.getCDNUris(),{enableInnerCDN:i.getCDNEnable()}),R=l&&l.broadcast===Zt.SPREAD?JSON.stringify([l]):"",C=yield i.context.setRTCTotalRes(s,Ye(St.PUBLISH,_),ze(d),St.TOTAL_CONTENT_RESOURCE,ze(u),R);if(C!==e.ErrorCode.SUCCESS)return r.error(`send publish streams notification failed: ${C}`),{code:exports.RCRTCCode.SIGNAL_ERROR};i.setResourcesByUserId(t,d);const p=_.map((e=>rt(e)));i.polarisReport&&i.polarisReport.sendR2(zt.PUBLISH,Qt.BEGIN,p),_.forEach((e=>{const t=i.useMutilPeerC?`${s}_${(e=>{const t=e.split("_");return{tag:t.pop(),userId:t.join("_")}})(e.msid).tag}`:`${s}_pub`,{pc:r}=i.peerMgr.getPCItemByPCName(t);r.getLocalTrack(`${e.msid}_${e.mediaType}`).__innerSetPublished(!0)})),r.debug(`publish success: ${p.join(",")}`);const h={code:exports.RCRTCCode.SUCCESS};return n&&(h.liveUrl=n),a.length&&(h.failedTracks=a,h.code=exports.RCRTCCode.SOME_TRACKS_PUBLISH_FAILED),h}))}execute(o,n){return t(this,void 0,void 0,(function*(){let t=this.tracks;const a=o.roomId;if(e.logger.info(i.L_ABSTRACT_ROOM_PUBLISH_T,{trackIds:t.map(Tt)},{logSource:e.LogSource.RTC}),!e.validate("tracks",t,(()=>e.isArray(t)&&t.length>0&&t.every((e=>e instanceof xe||e.track instanceof xe))),!0))return r.warn(`publish failed, tracks is invalid -> roomId: ${a}`),e.logger.error(i.L_ABSTRACT_ROOM_PUBLISH_R,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> tracks"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR};if(t=t.filter((t=>{const{track:r}=t instanceof xe?{track:t}:t,o=r.isDestroyed();return o&&e.logger.warn(i.L_ABSTRACT_ROOM_PUBLISH_R,{status:s.FAILED,msg:`track -> ${r.getTrackId()} has beem destroyed`}),!o})),!t.length)return{code:exports.RCRTCCode.PUBLISH_TRACKS_IS_INVALID};const c=[],{plist:d,pushOtherRooms:u}=this.pubhook(t);for(let e=0;e<d.length;e++){const t=d[e];c.push(this.__publish(o,t,t.tracks,u,n))}const _=yield Promise.all(c),l=yield this._mergePublishRes(_,o);return e.logger.info(i.L_ABSTRACT_ROOM_PUBLISH_R,{status:s.SUCCESSED,roomId:a,trackIds:t.map(Tt)},{logSource:e.LogSource.RTC}),l}))}}class kr extends ur{constructor(e,t){super(),this.tracks=e,this.unpubhook=t}get kind(){return Ht.UnPublish}__unpublish(e,o,i,s){return t(this,void 0,void 0,(function*(){const{pcName:t,pc:n}=i;e.roomId;const a=s.map((e=>e.getTrackId()));if(0===a.map(e.getPublishedResourceByTrackId.bind(e)).filter((e=>!!e)).length)return{code:exports.RCRTCCode.SUCCESS,tracks:s};a.forEach((e=>n.removeLocalTrackById(e))),e.polarisReport.sendR2(zt.PUBLISH,Qt.END,a),n.clearReTryExchangeTimer();const c=e.useMutilPeerC?[]:e.getSubscribedList(),d=yield Tr(c,!1,n,e),{pushOtherRooms:u,headers:_}=this.unpubhook(s,t);u&&(d.pushOtherRooms=u);const l=yield new Er(_,d).execute(e,o);return l.code!==exports.RCRTCCode.SUCCESS?(r.error(`exchange failed -> code: ${l.code}`),{code:l.code,tracks:s}):Object.assign({},l,{tracks:s})}))}_mergeUnpublishRes(o,i){return t(this,void 0,void 0,(function*(){const s=o.context.getCurrentId(),n=o.roomId,a=[],c=[],d=[],u=[];let _=[];for(let e=0;e<i.length;e++){const t=i[e];if(t.code!==exports.RCRTCCode.SUCCESS){const{tracks:e}=t;c.push({code:t.code,tracks:e});continue}const{resultCode:s,message:n,mcuPublishList:l}=t.data;s!==exports.RCRTCCode.SUCCESS&&r.error(`unpublish streams failed -> code: ${s}, msg: ${n}`);const R=t.tracks.map((e=>e.getTrackId()));u.push(...R);const C=R.map(o.getPublishedResourceByTrackId.bind(o)).filter((e=>!!e));d.push(...C),a.push(t);const p=l?l.map((e=>Object.assign({tag:e.msid.split("_").pop(),state:1},e))):[];_=p}const l=o.getResourcesByUserId(s).filter((e=>!d.includes(e))),R=yield o.context.setRTCTotalRes(n,Ye(St.UNPUBLISH,d),ze(l),St.TOTAL_CONTENT_RESOURCE,ze(_));if(R!==e.ErrorCode.SUCCESS)return r.error("send unpublish notification failed:",R),{code:exports.RCRTCCode.SIGNAL_ERROR};r.debug(`unpublish success -> tracks: ${u.join(",")}`),a.forEach((e=>t(this,void 0,void 0,(function*(){const{sdp:t}=e.data,{tracks:r}=e,i=o.peerMgr.getPCByTrackId(r[0].getTrackId());yield i.setRemoteAnswer(t.sdp)})))),o.setResourcesByUserId(s,l);const C={code:exports.RCRTCCode.SUCCESS};return c.length&&(C.failedTracks=c,C.code=exports.RCRTCCode.SOME_TRACKS_PUBLISH_FAILED),C}))}execute(o,n){return t(this,void 0,void 0,(function*(){const{crtUserId:t,roomId:a}=o,c=this.tracks;e.logger.info(i.L_ABSTRACT_ROOM_UNPUBLISH_T,{trackIds:c.map(Tt)},{logSource:e.LogSource.RTC});if(!e.validate("tracks",c,(()=>c.every((e=>e.getUserId()===t&&e instanceof xe))),!0))return r.warn(`unpublish failed, tracks is invalid -> roomId: ${a}, tracks: ${c.map(Tt)}`),e.logger.error(i.L_ABSTRACT_ROOM_UNPUBLISH_R,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> tracks"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR};const d=o.peerMgr.createPeerCList(c),u=[];for(let e=0;e<d.length;e++){const{tracks:t}=d[e];u.push(this.__unpublish(o,n,d[e],t))}const _=yield Promise.all(u);let l=_.length;if(_.forEach((e=>{e.code!==exports.RCRTCCode.SUCCESS||e.data||(l-=1)})),0===l)return{code:exports.RCRTCCode.SUCCESS};const R=yield this._mergeUnpublishRes(o,_);return e.logger.info(i.L_ABSTRACT_ROOM_UNPUBLISH_R,{status:s.SUCCESSED,roomId:a,trackIds:c.map(Tt)},{logSource:e.LogSource.RTC}),R}))}}class yr extends ur{constructor(e,t){super(),this.localTrack=e,this._recvSignalResultFn=t}execute(o,i){return t(this,void 0,void 0,(function*(){const{localTrack:t}=this,i=t.getTrackId(),{crtUserId:s,roomId:n}=o,a=[{resourceId:i,enabled:!t.isLocalMuted()}],c=o.getResourcesByUserId(s),d=[];for(let e=0;e<c.length;e+=1){const t=c[e],r=rt(t),o=a.findIndex((e=>e.resourceId===r));if(o>=0){const{enabled:e}=a[o];t.state=e?1:0,d.push(t);break}}const u=yield o.context.setRTCTotalRes(n,Ye(St.MODIFY,d),ze(c),St.TOTAL_CONTENT_RESOURCE);this._recvSignalResultFn(u),u!==e.ErrorCode.SUCCESS&&r.error("notice `track.enabled` change failed -> code: "+u)}))}}class br extends ur{constructor(e,t,r){super(),this.pcName=e,this.isPub=t,this.retryHook=r}get priority(){return Jt.HIGH}execute(e,o){return t(this,void 0,void 0,(function*(){const{pcName:t,isPub:i}=this,{useMutilPeerC:s}=e,{pc:n}=e.peerMgr.getPCItemByPCName(t),a=i&&s?[]:e.getSubscribedList(),c=yield Tr(a,!0,n,e),{pushOtherRooms:d,headers:u}=this.retryHook(t);d&&(c.pushOtherRooms=d);const _=yield new Er(u,c).execute(e,o);if(_.code!==exports.RCRTCCode.SUCCESS)return void r.error(`reTryExchange failed: ${_.code}, pcName: ${t}`);const{sdp:l,resultCode:R}=_.data;R===exports.RCRTCCode.SUCCESS?(n.clearReTryExchangeTimer(),yield n.setRemoteAnswer(l.sdp)):r.error(`reTryExchange failed: ${R}, pcName: ${t}`)}))}}class Ur extends ur{constructor(e,t,r){super(),this.subhook=e,this.callbacks=t,this.livingType=r}get priority(){return Jt.HIGH}execute(o,n){return t(this,void 0,void 0,(function*(){const{livingType:t}=this,{roomId:a,crtUserId:c,roomMode:d}=o;e.logger.info(i.L_ABSTRACT_ROOM_RECONNECTED_T,{livingType:t},{logSource:e.LogSource.RTC});if(o.peerMgr.getPCList().some((e=>"closed"===e.getRTCPeerConn().connectionState)))return r.warn("RTCPeerConnection closed. Please rejoin room to restore services."),e.logger.error(i.L_ABSTRACT_ROOM_RECONNECTED_R,{status:s.FAILED,code:"",msg:"RTCPeerConnection disconnected"},{logSource:e.LogSource.RTC}),void this.callbacks.onPeerClosed();const{code:u,data:_}=yield o.context.joinRTCRoom(a,d,t);if(u!==e.ErrorCode.SUCCESS)return r.error(`RTC __onReconnected getRTCRoomInfo failed: ${u}`),void e.logger.error(i.L_ABSTRACT_ROOM_RECONNECTED_R,{status:s.FAILED,code:u,msg:""},{logSource:e.LogSource.RTC});r.debug(`RTC __onReconnected getRTCRoomInfo success: ${JSON.stringify(_)}`);const l=[],R={},C={},p={},h=gt(_,a),g=Object.keys(h),T=o.getAllUserIds();for(let e=g.length-1;e>=0;e-=1){const t=g[e],r=T.indexOf(t);if(-1===r){l.push(t),R[t]=st(h[t]);continue}const i=o.getResourcesByUserId(t),s=h[t],{publishedList:n,modifiedList:a,unpublishedList:c}=nt(i,s,!0);R[t]=st(n),C[t]=st(c),p[t]=st(a),T.splice(r,1)}T.length&&T.forEach((e=>{o.removeResourcesByUserId(e)})),o.assignRoomData(h),T.length&&this.callbacks.onUserLeave(T),l.length&&this.callbacks.onUserJoin(l);for(const e in C){if(e===c)continue;const t=C[e];if(t.length){const e=t.map((e=>o.getRemoteTrack(rt(e))));yield new Or(this.subhook,e,this.callbacks.onTrackUnpublish).execute(o,n)}}return Object.keys(R).forEach((e=>{const t=R[e];if(0===t.length)return;const r=t.map((e=>{const t=rt(e),{userId:r,tag:i,mediaType:s}=ot(t),n=s===exports.RCMediaType.AUDIO_ONLY?new We(i,r):new qe(i,r);return o.addRemoteTrack(n),n.__innerSetRemoteMuted(0===e.state),n}));this.callbacks.onTrackPublish(r)})),Object.keys(p).forEach((e=>{p[e].forEach((e=>{const t=rt(e),r=o.getRemoteTrack(t);r.__innerSetRemoteMuted(0===e.state),r.isAudioTrack()?this.callbacks.onAudioMuteChange(r):this.callbacks.onVideoMuteChange(r)}))})),o.roomMode===qt.LIVE&&this.executeInLivingRoom(o,_),e.logger.info(i.L_ABSTRACT_ROOM_RECONNECTED_R,{status:s.SUCCESSED,roomData:_},{logSource:e.LogSource.RTC}),{data:_}}))}executeInLivingRoom(t,r){var o,n;if(e.logger.error(i.L_LIVING_ROOM_RECONNECTED_T,{roomData:r},{logSource:e.LogSource.RTC}),!r)return void e.logger.info(i.L_LIVING_ROOM_RECONNECTED_R,{status:s.FAILED,code:"",msg:"room not fond"},{logSource:e.LogSource.RTC});const a=null===(o=r.roomInfo.filter((e=>"cdn_uris"===e.key))[0])||void 0===o?void 0:o.value;if(!a)return void e.logger.error(i.L_LIVING_ROOM_RECONNECTED_R,{status:s.FAILED,code:"",msg:"cdn_uris not found"},{logSource:e.LogSource.RTC});const c=JSON.parse(a),d=(null===(n=t.getCDNUris())||void 0===n?void 0:n.enableInnerCDN)!==c.enableInnerCDN;t.setCDNUris(c),e.logger.info(i.L_LIVING_ROOM_RECONNECTED_R,{status:s.SUCCESSED,roomData:r},{logSource:e.LogSource.RTC}),d&&this.callbacks.onCDNEnableChange(c.enableInnerCDN)}}class Pr extends _r{constructor(e,t,r,o=jt.NORMAL){super(o),this.tracks=e,this.subhook=t,this.callbacks=r}execute(e,o){var i,s,n;return t(this,void 0,void 0,(function*(){const{tracks:t}=this,a=e.roomId;if(r.info(`unsubscribe -> roomId: ${a}, tracks: ${t.map(Tt)}`),this.state===jt.NORMAL){const r=e.getSubscribedList().slice(),{code:s,failedList:n}=yield new fr(t,this.subhook).execute(e,o),a=e.getSubscribedList().slice(),{subscribe:c,unsubscribe:d}=this.pickoutSubscribed(a,r);return null===(i=this.callbacks)||void 0===i||i.onTaskCompleted({code:s,subscribe:c,unsubscribe:d,failedList:n}),{code:s,failedList:n}}if(this.state===jt.TAIL){const{code:t}=yield new Pr(this.tracks,this.subhook,this.callbacks,jt.MIDDLE).execute(e,o);if(t===exports.RCRTCCode.SUCCESS){const t=e.getCollectSubscribeList().slice(0),r=e.getSubscribedList().slice(),{code:i,failedList:a}=yield new fr(t,this.subhook).execute(e,o);if(i!==exports.RCRTCCode.SUCCESS)return null===(s=this.callbacks)||void 0===s||s.onTaskCompleted({code:i,subscribe:[],unsubscribe:[],failedList:a}),{code:i,failedList:a};const c=e.getSubscribedList().slice(0),{subscribe:d,unsubscribe:u}=this.pickoutSubscribed(c,r);return null===(n=this.callbacks)||void 0===n||n.onTaskCompleted({code:i,subscribe:d,unsubscribe:u,failedList:a}),{code:i,failedList:a}}return{code:t}}return _r.AsyncUpdateSubscribeTasks.splice(_r.AsyncUpdateSubscribeTasks.length,0,...this.tracks),new Promise((r=>{const o=this.formateTrack(t);e.resetCollectSubscribeList(o),r({code:exports.RCRTCCode.SUCCESS})}))}))}}class Mr extends _r{constructor(e,t,r,o=jt.NORMAL){super(o),this.tracks=e,this.subhook=t,this.callbacks=r}execute(o,n){var a;return t(this,void 0,void 0,(function*(){const{tracks:t}=this,c=o.roomId;if(this.state===jt.NORMAL){const e=o.getSubscribedList().slice(),{code:r,failedList:i}=yield new Nr(t,this.subhook).execute(o,n),s=o.getSubscribedList().slice(),{subscribe:c,unsubscribe:d}=this.pickoutSubscribed(s,e);return null===(a=this.callbacks)||void 0===a||a.onTaskCompleted({code:r,subscribe:c,unsubscribe:d,failedList:i}),{code:r,failedList:i}}if(e.logger.info(i.L_ABSTRACT_ROOM_SUBSCRIBE_T,{trackIds:t.map(Tt)},{logSource:e.LogSource.RTC}),!e.validate("tracks",t,(()=>e.isArray(t)&&t.length>0&&t.every((e=>e instanceof Je||e.track instanceof Je))),!0))return r.warn(`subscribe failed, tracks is invalid -> roomId: ${c}`),e.logger.error(i.L_ABSTRACT_ROOM_SUBSCRIBE_R,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> tracks"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR};r.info(`subscribe -> roomId: ${c}, tracks: ${t.map(Tt)}`);const d=this.getSubscribedList(o).map((e=>Object.assign({},e))),u=t.map((e=>e instanceof Je?{track:e}:e)),_=[];if(u.forEach((e=>{const t=e.track.getTrackId();_.push(t);const r=d.find((e=>e.track.getTrackId()===t));if(r){if(r.subTiny===e.subTiny)return;r.subTiny=e.subTiny}else d.push(e)})),o.polarisReport.sendR2(zt.SUBSCRIBE,Qt.BEGIN,_),e.logger.info(i.L_ABSTRACT_ROOM_SUBSCRIBE_R,{trackIds:t.map(Tt),roomId:c},{logSource:e.LogSource.RTC}),this.state===jt.TAIL){const{code:e}=yield new Mr(this.tracks,this.subhook,this.callbacks,jt.MIDDLE).execute(o,n);if(e===exports.RCRTCCode.SUCCESS){const e=o.getCollectSubscribeList().slice(0);return new Pr(e,this.subhook,this.callbacks).execute(o,n)}return{code:e}}return _r.AsyncSubscribeTasks.splice(_r.AsyncSubscribeTasks.length,0,...this.tracks),new Promise((e=>{o.resetCollectSubscribeList(d),e({code:exports.RCRTCCode.SUCCESS})}))}))}getSubscribedList(e){return this.state===jt.MIDDLE?e.getCollectSubscribeList():e.getSubscribedList()}}class xr extends _r{constructor(e,t,r,o=jt.NORMAL){super(o),this.tracks=e,this.subhook=t,this.callbacks=r}execute(o,n){var a;return t(this,void 0,void 0,(function*(){const t=this.tracks,c=o.roomId;if(this.state===jt.NORMAL){const e=o.getSubscribedList().slice(),{code:r,failedList:i}=yield new Lr(t,this.subhook).execute(o,n),s=o.getSubscribedList().slice(),{subscribe:c,unsubscribe:d}=this.pickoutSubscribed(s,e);return null===(a=this.callbacks)||void 0===a||a.onTaskCompleted({code:r,subscribe:c,unsubscribe:d,failedList:i}),{code:r,failedList:i}}if(e.logger.info(i.L_ABSTRACT_ROOM_UNSUBSCRIBE_T,{trackIds:t.map(Tt)},{logSource:e.LogSource.RTC}),!e.validate("tracks",t,(()=>e.isArray(t)&&t.length>0&&t.every((e=>e instanceof Je))),!0))return r.warn(`unsubscribe failed, tracks is invalid -> roomId: ${c}`),e.logger.warn(i.L_ABSTRACT_ROOM_UNSUBSCRIBE_R,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> tracks"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR};r.info(`unsubscribe -> roomId: ${c}, tracks: ${t.map(Tt)}`);const d=this.getSubscribedList(o).map((e=>Object.assign({},e))).filter((e=>!t.includes(e.track)));if(o.polarisReport.sendR2(zt.SUBSCRIBE,Qt.END,t.map((e=>e.getTrackId()))),e.logger.info(i.L_ABSTRACT_ROOM_UNSUBSCRIBE_R,{trackIds:t.map(Tt),roomId:c},{logSource:e.LogSource.RTC}),this.state===jt.TAIL){const{code:e}=yield new xr(this.tracks,this.subhook,this.callbacks,jt.MIDDLE).execute(o,n);if(e===exports.RCRTCCode.SUCCESS){const e=o.getCollectSubscribeList().slice(0).map((e=>e.track));return new Pr(e,this.subhook,this.callbacks).execute(o,n)}return{code:e}}return _r.AsyncUnsubscribeTasks.splice(_r.AsyncUnsubscribeTasks.length,0,...this.tracks),new Promise((e=>{o.resetCollectSubscribeList(d),e({code:exports.RCRTCCode.SUCCESS})}))}))}getSubscribedList(e){return this.state===jt.MIDDLE?e.getCollectSubscribeList():e.getSubscribedList()}}const wr="evt-leave";class Br extends e.EventEmitter{constructor(e,t,r,o,i,s,n,a,c,d=ft()){super(),this._context=e,this._runtime=t,this._roomId=r,this._service=i,this._initOptions=s,this._useMutilPeerC=c,this._clientSessionId=d,this._appListener=null,this._reportListener=null,this._onRecvPKMsg=null,this._polarisReport=new ar(this._context,this._runtime,this._roomId,this),this._peerCManager=new dr(this._useMutilPeerC,this._roomId,this._reTryExchange.bind(this),this._context.getCurrentId(),this._polarisReport),this._invoker=new pr(this._context,this._service,this._peerCManager,r,this._context.getCurrentId(),o,this._polarisReport,n,a),this._store=this._invoker.store}__innerInit(e,r,o,i,s){return t(this,void 0,void 0,(function*(){const{code:t,data:n}=yield this._invoker.push(new gr(this._roomId,e,r,o,i,s));return t!==exports.RCRTCCode.SUCCESS?{code:t}:(this._initWithRoomData(n.offlineKickTime),{code:t,data:n})}))}_initWithRoomData(e){var t;this._pinger=new Et(this._store.roomId,this._store.roomMode,this._context,this._initOptions.pingGap,1e3*e),this._pinger.onFailed=this._kickoff.bind(this),this._pinger.onPingResult=this._handlePingResult.bind(this),this._pinger.start(),null===(t=this._polarisReport)||void 0===t||t.sendR1()}_handlePingResult(e){this._callAppListener("onPing",e)}setBitrate(t,o,i){if(this._useMutilPeerC)return void r.error("`RCAbstractRoom.setBitrate` is disabled, use `RCLocalTrack.setBitrate` instead.");r.warn("`RCAbstractRoom.setBitrate` will be deprecated, use `RCLocalTrack.setBitrate` instead."),e.assert("max",t,(t=>e.isNumber(t)&&t>Math.max(o||1,200)),!0),e.assert("min",o,(r=>e.isNumber(r)&&r>=1&&(!e.isNumber(t)||r<t)),!0),e.assert("start",i,(r=>e.isNumber(r)&&r>o&&r<=t));this._peerCManager.getPCList().forEach((e=>{e.setBitrate(t,o,i)}))}_onTrackReady(e){const t=e.streams[0].id,o=e.receiver.track,i=[t,"audio"===o.kind?exports.RCMediaType.AUDIO_ONLY:exports.RCMediaType.VIDEO_ONLY].join("_"),s=this._store.getRemoteTrack(i);s?(s.__innerSetMediaStreamTrack(o),this._callAppListener("onTrackReady",s)):r.warn(`cannot found remote track ${o.id}`)}_callAppListener(t,...o){var n;"onPing"!==t&&e.logger.info(i.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,{status:s.SUCCESSED,eventType:t,attrs:o},{logSource:e.LogSource.RTC}),"onPing"!==t&&r.info(`${t} callback ->`,...o);const a=null===(n=this._appListener)||void 0===n?void 0:n[t];if(a)try{a(...o)}catch(e){r.error(e)}}_onTrackUnpublish(e){this._callAppListener("onTrackUnpublish",e)}__parseInnerMessage(t){const{targetId:o,conversationType:i}=t;if(i!==e.ConversationType.RTC_ROOM)return!1;if(o!==this._roomId)return!0;r.info(`recv inner msg -> message: ${JSON.stringify(t)} | roomid: ${this._roomId}`);const s=t.content;switch(t.messageType){case St.KICK:this._kickoff(!0,s);break;case St.STATE:this._stateHandle(s);break;case St.MODIFY:case St.PUBLISH:case St.UNPUBLISH:case St.TOTAL_CONTENT_RESOURCE:this._resourceHandle(s,t.messageType,t.senderUserId);break;case St.ROOM_NOTIFY:this._callAppListener("onRoomAttributeChange",t.messageType,t.content);break;case St.USER_NOTIFY:r.warn(`TODO: ${St.USER_NOTIFY}`);break;case St.PK_INVITE:case St.PK_CANCEL_INVITE:case St.PK_INVITE_TIMEOUT:case St.PK_INVITE_ANSWER:case St.PK_END:this._onRecvPKMsg&&this._onRecvPKMsg(t);break;case St.OTHER_ROOM_OFFLINE:break;default:this._callAppListener("onMessageReceive",t.messageType,s,t.senderUserId,t.messageUId)}return!0}_kickoff(e,o){return t(this,void 0,void 0,(function*(){if(this._invoker.isDestroyed())return;let t,i;r.warn(`onKickOff -> byServer: ${e}`),this.emit(wr),this._leaveHandle(!e),e&&((null==o?void 0:o.users)||[]).forEach((e=>{e.userId===this._context.getCurrentId()&&(i=e.type,t=e.kickExtra)})),this._callAppListener("onKickOff",e,i,t)}))}_rtcpeerClosed(){this.emit(wr),this._leaveHandle(!0),this._callAppListener("onRTCPeerConnectionCloseByException")}_resourceHandle(e,r,o){return t(this,void 0,void 0,(function*(){const{uris:t,ignore:i}=e;!i&&t&&this._invoker.push(new Ar(e,r,o,this._subhook.bind(this),{onAudioMute:this._onAudioMuteChange.bind(this),onVideoMute:this._onVideoMuteChange.bind(this),onTrackPublish:this._onTrackPublish.bind(this),onTrackUnublish:this._onTrackUnpublish.bind(this),onCDNEnableChange:this._callAppListener.bind(this,"onCDNEnableChange")}))}))}_onTrackPublish(e){this._callAppListener("onTrackPublish",e)}_stateHandle(e){var r;return t(this,void 0,void 0,(function*(){const{left:t,joined:o,upgrade:i,downgrade:s}=yield this._invoker.push(new vr(e,this._subhook.bind(this)));if(null===(r=this._appListener)||void 0===r?void 0:r.onSwitchRole)return i.length&&i.forEach((e=>this._callAppListener("onSwitchRole",e,exports.RCRTCLiveRole.ANCHOR))),s.length&&s.forEach((e=>this._callAppListener("onSwitchRole",e,exports.RCRTCLiveRole.AUDIENCE))),o.length&&this._callAppListener("onUserJoin",o),void(t.length&&this._callAppListener("onUserLeave",t));const n=[...o,...i],a=[...t,...s];n.length&&this._callAppListener("onUserJoin",n),a.length&&this._callAppListener("onUserLeave",a)}))}getRoomId(){return this._roomId}getCrtUserId(){return this._context.getCurrentId()}__getPC(){return this._store.peerMgr.getPCList()}getRemoteUserIds(){return this._store.getRemoteUserIds()}getRemoteTracks(){const e=[];return this.getRemoteUserIds().forEach((t=>{e.push(...this.getRemoteTracksByUserId(t))})),e}getRemoteTracksByUserId(e){return this._store.getRemoteTracksByUserId(e)}getSessionId(){return this._store.getSessionId()}sendMessage(o,n){return t(this,void 0,void 0,(function*(){e.logger.info(i.L_ABSTRACT_ROOM_SEND_MESSAGE_T,{name:o,content:n},{logSource:e.LogSource.RTC});const{code:t}=yield this._context.sendMessage(e.ConversationType.RTC_ROOM,this._roomId,{messageType:o,content:n,isStatusMessage:!0});return t!==e.ErrorCode.SUCCESS?(r.error(`send message failed -> code: ${t}`),e.logger.error(i.L_ABSTRACT_ROOM_SEND_MESSAGE_R,{status:s.FAILED,code:t,msg:""},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SIGNAL_ERROR}):(e.logger.info(i.L_ABSTRACT_ROOM_SEND_MESSAGE_R,{status:s.SUCCESSED,name:o,content:n},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SUCCESS})}))}setRoomAttribute(o,n,a,c=!1){return t(this,void 0,void 0,(function*(){e.logger.info(i.L_ABSTRACT_ROOM_SET_ROOM_ATTRIBUTE_T,{roomId:this._roomId,key:o,value:n,message:a,isInner:c},{logSource:e.LogSource.RTC});const t=yield this._context.setRTCData(this._roomId,o,n,c,Xt.ROOM,a);return t!==e.ErrorCode.SUCCESS?(r.error(`SetRoomAttributeValue Failed: ${t}`),e.logger.error(i.L_ABSTRACT_ROOM_SET_ROOM_ATTRIBUTE_R,{status:s.FAILED,code:t,msg:""},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SIGNAL_ERROR}):(e.logger.info(i.L_ABSTRACT_ROOM_SET_ROOM_ATTRIBUTE_R,{status:s.SUCCESSED,roomId:this._roomId,key:o,value:n,message:a,isInner:c},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SUCCESS})}))}deleteRoomAttributes(o,n,a=!1){return t(this,void 0,void 0,(function*(){e.logger.info(i.L_ABSTRACT_ROOM_DELETE_ROOM_ATTRIBUTE_T,{roomId:this._roomId,keys:o,message:n,isInner:a},{logSource:e.LogSource.RTC});const t=yield this._context.removeRTCData(this._roomId,o,a,Xt.ROOM,n);return t!==e.ErrorCode.SUCCESS?(r.error(`DeleteRoomAttribute Failed: ${t}`),e.logger.error(i.L_ABSTRACT_ROOM_DELETE_ROOM_ATTRIBUTE_R,{status:s.FAILED,code:t,msg:""},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SIGNAL_ERROR}):(e.logger.info(i.L_ABSTRACT_ROOM_DELETE_ROOM_ATTRIBUTE_R,{status:s.SUCCESSED,roomId:this._roomId,keys:o,message:n,isInner:a},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SUCCESS})}))}getRoomAttributes(o=[],i=!1){return t(this,void 0,void 0,(function*(){const{code:t,data:s}=yield this._context.getRTCData(this._roomId,o,i,Xt.ROOM);return t!==e.ErrorCode.SUCCESS?(r.error(`GetRoomAttributes Failed: ${t}`),{code:exports.RCRTCCode.SIGNAL_ERROR}):{code:exports.RCRTCCode.SUCCESS,data:s}}))}_setUserAttributeValue(e,t,r){return this._context.setRTCData(this._roomId,e,t,!1,Xt.PERSON,r)}_deleteUserAttributes(e,t){return this._context.removeRTCData(this._roomId,e,!1,Xt.PERSON,t)}_getUserAttributes(e){return this._context.getRTCData(this._roomId,e,!1,Xt.PERSON)}isDestroyed(){return this._invoker.isDestroyed()}__destroy(e){return this._leaveHandle(e)}_muteRemoteTracksBeforeQuit(){const e=Object.values(this._store.getRemoteTracks());e.length&&e.forEach((e=>e.mute()))}_leaveHandle(e){var r;return t(this,void 0,void 0,(function*(){if(this._invoker.isDestroyed())return;this._invoker.destroy(),this._muteRemoteTracksBeforeQuit(),this._muteRemoteTracksBeforeQuit(),null===(r=this._audioLevelReport)||void 0===r||r.clearAudioLevelReportTimer(),e&&(yield this._context.quitRTCRoom(this._roomId)),this._store.isMainRoom&&(yield this._quitAllPKRoom()),this._pinger.stop();const t=[];Object.keys(this._peerCManager.getMutilPeerCData()).forEach((e=>{t.push(this._service.exit(this._getRTCReqestHeaders(e)))})),yield Promise.all(t),this._releasePCManager(),this._polarisReport=null}))}_releasePCManager(){const e=this._peerCManager.getPCList();null==e||e.forEach((e=>{e.off(xe.__INNER_EVENT_MUTED_CHANGE__,this._onLocalTrackMuted,this),e.off(xe.__INNER_EVENT_DESTROY__,this._onLocalTrackDestroied,this)})),this._peerCManager.clear(),this._peerCManager=null}_onLocalTrackDestroied(e){e instanceof Be&&e.__isTiny()||this.unpublish([e])}_onLocalTrackMuted(e,r){return t(this,void 0,void 0,(function*(){this._invoker.push(new yr(e,r))}))}publish(e){return t(this,void 0,void 0,(function*(){return this._invoker.push(new Dr(e,this._pubhook.bind(this)))}))}_getPushOtherRoomsParams(){return[]}_reTryExchange(e,r){return t(this,void 0,void 0,(function*(){this._invoker.push(new br(e,r,(e=>({pushOtherRooms:this._getPushOtherRoomsParams(),headers:this._getRTCReqestHeaders(e)}))))}))}_getRTCReqestHeaders(e){return{"App-Key":this._context.getAppkey(),RoomId:this._roomId,Token:this._store.getToken(),RoomType:this._store.roomMode,UserId:this._context.getCurrentId(),"Client-Session-Id":this._clientSessionId,"Peer-Connection-Id":e}}unpublish(e){return t(this,void 0,void 0,(function*(){return this._invoker.push(new kr(e,((e,t)=>({pushOtherRooms:this._getPushOtherRoomsParams(),headers:this._getRTCReqestHeaders(t)}))))}))}_getResourceById(e){return this._store.getPublishedResourceByTrackId(e)}_isValidResourceId(e){var t;const{userId:r}=ot(e);return!!(null===(t=this._store.getResourcesByUserId(r))||void 0===t?void 0:t.find((t=>rt(t)===e)))}_subhook(e){const{pc:t,pcName:r}=this._peerCManager.createPeerCList(e)[0];return t.on(nr.__INNER_EVENT_TRACK_READY__,this._onTrackReady,this),t.__reportR3R4ToPolaris(),t.registerReportListener(this._reportListener),t.clearReTryExchangeTimer(),{pc:t,pushOtherRooms:this._getPushOtherRoomsParams(),headers:this._getRTCReqestHeaders(r)}}_pubhook(e){return{plist:this._peerCManager.createPeerCList(e).map((e=>{const{pc:t,pcName:r}=e;return t.on(xe.__INNER_EVENT_MUTED_CHANGE__,this._onLocalTrackMuted,this),t.on(xe.__INNER_EVENT_DESTROY__,this._onLocalTrackDestroied,this),t.registerReportListener(this._reportListener),t.__reportR3R4ToPolaris(),Object.assign(Object.assign({},e),{headers:this._getRTCReqestHeaders(r)})})),pushOtherRooms:this._getPushOtherRoomsParams()}}subscribe(e){return t(this,void 0,void 0,(function*(){return this._invoker.push(new Nr(e,this._subhook.bind(this)))}))}addSubscribeTask(e){this._invoker.push(new Mr(e,this._subhook.bind(this),{onTaskCompleted:this._onTaskCompleted.bind(this)}))}unsubscribe(e){return t(this,void 0,void 0,(function*(){return this._invoker.push(new Lr(e,this._subhook.bind(this)))}))}addUnsubscribeTask(e){this._invoker.push(new xr(e,this._subhook.bind(this),{onTaskCompleted:this._onTaskCompleted.bind(this)}))}updateSubList(e){return t(this,void 0,void 0,(function*(){return this._invoker.push(new fr(e,this._subhook.bind(this)))}))}addUpdateSubscribeListTask(e){this._invoker.push(new Pr(e,this._subhook.bind(this),{onTaskCompleted:this._onTaskCompleted.bind(this)}))}_onTaskCompleted(e){this._callAppListener("onTaskCompleted",e.code,e.subscribe,e.unsubscribe,e.failedList)}getLocalTrack(e){return this._store.getLocalTrack(e)}getLocalTracks(){return this._store.getLocalTracks()}getRemoteTrack(e){return this._store.getRemoteTrack(e)||null}get subscribedTracks(){return this._store.getSubscribedList().slice()}registerRoomEventListener(t){e.logger.info(i.L_ABSTRACT_ROOM_REGISTER_ROOM_EVENT_LISTENER_O,{status:s.SUCCESSED,listener:t&&Object.keys(t)},{logSource:e.LogSource.RTC}),this._appListener=t}registerReportListener(t){e.logger.info(i.L_ABSTRACT_ROOM_REGISTER_REPORT_LISTENER_O,{status:s.SUCCESSED,listener:t&&Object.keys(t)},{logSource:e.LogSource.RTC}),this._reportListener=t}onAudioLevelChange(t,r){var o;e.logger.info(i.L_ABSTRACT_ROOM_AUDIO_LEVEL_O,{status:s.SUCCESSED,handler:null==t?void 0:t.name,gap:r},{logSource:e.LogSource.RTC}),null===(o=this._audioLevelReport)||void 0===o||o.clearAudioLevelReportTimer(),this._audioLevelReport=new cr(this),this._audioLevelReport.onAudioLevelChange(t,r||1e3)}__onReconnected(e){return t(this,void 0,void 0,(function*(){return this._invoker.push(new Ur(this._subhook.bind(this),{onPeerClosed:this._rtcpeerClosed.bind(this),onAudioMuteChange:this._onAudioMuteChange.bind(this),onVideoMuteChange:this._onVideoMuteChange.bind(this),onUserJoin:this._callAppListener.bind(this,"onUserJoin"),onUserLeave:this._callAppListener.bind(this,"onUserLeave"),onTrackPublish:this._onTrackPublish.bind(this),onTrackUnpublish:this._onTrackUnpublish.bind(this),onCDNEnableChange:this._callAppListener.bind(this,"onCDNEnableChange")},e))}))}_onAudioMuteChange(e){this._callAppListener("onAudioMuteChange",e)}_onVideoMuteChange(e){this._callAppListener("onVideoMuteChange",e)}_registerPKMsgListener(e){this._onRecvPKMsg=e}_quitAllPKRoom(){}getClientSessionId(){return this._clientSessionId}}class Vr extends ur{constructor(e,t){super(),this.data=e,this.cdnValues=t}execute(e,o){var i,s,n,a;return t(this,void 0,void 0,(function*(){const t={"App-Key":e.context.getAppkey(),Token:e.getToken(),RoomId:e.roomId,UserId:e.context.getCurrentId(),SessionId:e.getSessionId()},{code:o,res:c}=yield e.service.setMcuConfig(t,this.data);if(o!==exports.RCRTCCode.SUCCESS)return r.error(`set MCU config failed: ${o}`),{code:o};r.info("set MCU config success"),c.pull_url&&e.setCDNUris(JSON.parse(c.pull_url));const d=this.cdnValues;return o===exports.RCRTCCode.SUCCESS&&((null===(s=null===(i=d.output)||void 0===i?void 0:i.video.normal)||void 0===s?void 0:s.width)||(null===(a=null===(n=d.output)||void 0===n?void 0:n.video.normal)||void 0===a?void 0:a.fps))&&Ir(e),{code:o,res:c}}))}}var $r,Fr,Gr,Kr;exports.BackgroundPictureFillMode=void 0,($r=exports.BackgroundPictureFillMode||(exports.BackgroundPictureFillMode={}))[$r.CROP=1]="CROP",$r[$r.WHOLE=2]="WHOLE",exports.MixLayoutMode=void 0,(Fr=exports.MixLayoutMode||(exports.MixLayoutMode={}))[Fr.CUSTOMIZE=1]="CUSTOMIZE",Fr[Fr.SUSPENSION=2]="SUSPENSION",Fr[Fr.ADAPTATION=3]="ADAPTATION",exports.MixVideoRenderMode=void 0,(Gr=exports.MixVideoRenderMode||(exports.MixVideoRenderMode={}))[Gr.CROP=1]="CROP",Gr[Gr.WHOLE=2]="WHOLE",function(e){e[e.AUDIO_VIDEO_ALL=0]="AUDIO_VIDEO_ALL",e[e.AUDIO_VIDEO_NO=1]="AUDIO_VIDEO_NO",e[e.AUDIO_ALL_VIDEO_NO=2]="AUDIO_ALL_VIDEO_NO",e[e.AUDIO_NO_VIDEO_ALL=3]="AUDIO_NO_VIDEO_ALL",e[e.AUDIO_VIDEO_INPUT=4]="AUDIO_VIDEO_INPUT",e[e.AUDIO_ALL_VIDEO_INPUT=5]="AUDIO_ALL_VIDEO_INPUT",e[e.AUDIO_NO_VIDEO_INPUT=6]="AUDIO_NO_VIDEO_INPUT",e[e.AUDIO_INPUT_VIDEO_ALL=7]="AUDIO_INPUT_VIDEO_ALL",e[e.AUDIO_INPUT_VIDEO_NO=8]="AUDIO_INPUT_VIDEO_NO",e[e.ROOM_AUDIO_VIDEO_APPEND=9]="ROOM_AUDIO_VIDEO_APPEND",e[e.ROOM_AUDIO_VIDEO_NOT_APPEND=10]="ROOM_AUDIO_VIDEO_NOT_APPEND",e[e.ROOM_AUDIO_APPEND=11]="ROOM_AUDIO_APPEND",e[e.ROOM_AUDIO_NOT_APPEND=12]="ROOM_AUDIO_NOT_APPEND",e[e.ROOM_VIDEO_APPEND=13]="ROOM_VIDEO_APPEND",e[e.ROOM_VIDEO_NOT_APPEND=14]="ROOM_VIDEO_NOT_APPEND"}(Kr||(Kr={}));const Hr=()=>({version:2,mode:exports.MixLayoutMode.SUSPENSION});class jr{constructor(e,t){this._invoker=e,this._isValidTrackId=t,this._values=Hr()}setHostVideoTrack(t){if(r.info(`setHostVideoTrack -> videoTrackId: ${t}`),!this._isValidTrackId(t))return r.error(`setHostVideoTrack failed -> videoTrackId is invalid: ${t}`),e.logger.error(i.L_MCU_CONFIG_BUILDER_SET_HOST_VIDEO_TRACK_O,{status:s.FAILED,code:"",msg:"params error -> videoTrackId"},{logSource:e.LogSource.RTC}),this;const{mediaType:o,tag:n,userId:a}=ot(t);return o!==exports.RCMediaType.VIDEO_ONLY?(r.error(`setHostVideoTrack failed -> kind of resource is not 'video' -> ${t}`),e.logger.error(i.L_MCU_CONFIG_BUILDER_SET_HOST_VIDEO_TRACK_O,{status:s.FAILED,code:"",msg:"not video"},{logSource:e.LogSource.RTC}),this):(this._values.host_stream_id=it(a,n),e.logger.info(i.L_MCU_CONFIG_BUILDER_SET_HOST_VIDEO_TRACK_O,{status:s.SUCCESSED,videoTrackId:t},{logSource:e.LogSource.RTC}),this)}setMixLayoutMode(t){r.info(`setMixLayoutMode -> mode: ${t}`);return[exports.MixLayoutMode.CUSTOMIZE,exports.MixLayoutMode.SUSPENSION,exports.MixLayoutMode.ADAPTATION].includes(t)?(this._values.mode=t,e.logger.info(i.L_MCU_CONFIG_BUILDER_SET_MIX_LAYOUT_MODE_O,{status:s.SUCCESSED,mode:t},{logSource:e.LogSource.RTC}),this):(r.error(`setMixLayoutMode failed -> mode is invalid: ${t}`),e.logger.error(i.L_MCU_CONFIG_BUILDER_SET_MIX_LAYOUT_MODE_O,{status:s.SUCCESSED,code:"",msg:`params error -> mode: ${t}`},{logSource:e.LogSource.RTC}),this)}_addOutputValue(e,t,r="normal"){const o=this._values.output||(this._values.output={video:{normal:{width:640,height:480}}});if("cdn"===e)return void(o.cdn=t);if("audio"===e)return void(o.audio={bitrate:t});const i=o.video;if("normal"!==r&&"tiny"!==r)if("backgroundColor"!==r)if("exparams"!==r){if("backgroundPicture"===r){const e=i.backgroundPicture||(i.backgroundPicture={fillMode:exports.BackgroundPictureFillMode.CROP,picture:[]});Object.assign(e,t)}}else i.exparams={renderMode:t};else i.backgroundColor=t;else{const e=i[r]||(i[r]={});Object.assign(e,t)}}setOutputVideoResolution(t){if(r.info(`setOutputVideoResolution -> resolution: ${t}`),!dt(t))return r.error(`setOutputVideoResolution failed -> resolution is invalid: ${t}`),e.logger.error(i.L_MCU_CONFIG_BUILDER_SET_OUTPUT_VIDEO_RESOLUTION_O,{status:s.FAILED,code:"",msg:`params error -> resolution: ${t}`},{logSource:e.LogSource.RTC}),this;const{width:o,height:n}=ct(t);return this._addOutputValue("video",{width:o,height:n},"normal"),e.logger.info(i.L_MCU_CONFIG_BUILDER_SET_OUTPUT_VIDEO_RESOLUTION_O,{status:s.SUCCESSED,resolution:t},{logSource:e.LogSource.RTC}),this}setOutputVideoFPS(t){if(r.info(`setOutputVideoFPS -> fps: ${t}`),!ut(t))return r.error(`setOutputVideoFPS failed -> fps is invalid: ${t}`),e.logger.error(i.L_MCU_CONFIG_BUILDER_SET_OUTPUT_VIDEO_FPS_O,{status:s.FAILED,code:"",msg:`params error -> fps: ${t}`},{logSource:e.LogSource.RTC}),this;const o=_t(t);return this._addOutputValue("video",{fps:o},"normal"),e.logger.info(i.L_MCU_CONFIG_BUILDER_SET_OUTPUT_VIDEO_FPS_O,{status:s.SUCCESSED,fps:t},{logSource:e.LogSource.RTC}),this}setOutputVideoBitrate(t){return r.info(`setOutputVideoBitrate -> bitrate: ${t}`),!e.isNumber(t)||t<=0?(r.error(`setOutputVideoBitrate failed -> bitrate is invalid: ${t}`),e.logger.error(i.L_MCU_CONFIG_BUILDER_SET_OUTPUT_VIDEO_BITRATE_O,{status:s.FAILED,code:"",msg:`params error -> bitrate: ${t}`},{logSource:e.LogSource.RTC})):this._addOutputValue("video",{bitrate:t},"normal"),e.logger.info(i.L_MCU_CONFIG_BUILDER_SET_OUTPUT_VIDEO_BITRATE_O,{status:s.SUCCESSED,bitrate:t},{logSource:e.LogSource.RTC}),this}setOutputTinyVideoResolution(t){if(r.info(`setOutputTinyVideoResolution -> resolution: ${t}`),!dt(t))return r.error(`setOutputTinyVideoResolution failed -> resolution is invalid: ${t}`),e.logger.error(i.L_MCU_CONFIG_BUILDER_SET_OUTPUT_TINY_VIDEO_RESOLUTION_O,{status:s.FAILED,code:"",msg:`params error -> resolution: ${t}`},{logSource:e.LogSource.RTC}),this;const{width:o,height:n}=ct(t);return this._addOutputValue("video",{width:o,height:n},"tiny"),e.logger.info(i.L_MCU_CONFIG_BUILDER_SET_OUTPUT_TINY_VIDEO_RESOLUTION_O,{status:s.SUCCESSED,resolution:t},{logSource:e.LogSource.RTC}),this}setOutputTinyVideoFPS(t){if(r.info(`setOutputTinyVideoFPS -> fps: ${t}`),!ut(t))return r.error(`setOutputTinyVideoFPS failed -> fps is invalid: ${t}`),e.logger.error(i.L_MCU_CONFIG_BUILDER_SET_OUTPUT_TINY_VIDEO_FPS_O,{status:s.FAILED,code:"",msg:`params error -> fps: ${t}`},{logSource:e.LogSource.RTC}),this;const o=_t(t);return this._addOutputValue("video",{fps:o},"tiny"),e.logger.info(i.L_MCU_CONFIG_BUILDER_SET_OUTPUT_TINY_VIDEO_FPS_O,{status:s.SUCCESSED,fps:t},{logSource:e.LogSource.RTC}),this}setOutputTinyVideoBitrate(t){return r.info(`setOutputTinyVideoBitrate -> bitrate: ${t}`),!e.isNumber(t)||t<=0?(r.error(`setOutputTinyVideoBitrate failed -> bitrate is invalid: ${t}`),e.logger.error(i.L_MCU_CONFIG_BUILDER_SET_OUTPUT_TINY_VIDEO_BITRATE_O,{status:s.FAILED,code:"",msg:`params error -> bitrate: ${t}`},{logSource:e.LogSource.RTC})):this._addOutputValue("video",{bitrate:t},"tiny"),e.logger.info(i.L_MCU_CONFIG_BUILDER_SET_OUTPUT_TINY_VIDEO_BITRATE_O,{status:s.SUCCESSED,bitrate:t},{logSource:e.LogSource.RTC}),this}setOutputVideoRenderMode(t){return r.info(`setOutputVideoRenderMode -> renderMode: ${t}`),[exports.MixVideoRenderMode.CROP,exports.MixVideoRenderMode.WHOLE].includes(t)?this._addOutputValue("video",t,"exparams"):(r.error(`setOutputVideoRenderMode failed -> renderMode is invalid: ${t}`),e.logger.error(i.L_MCU_CONFIG_BUILDER_SET_OUTPUT_VIDEO_RENDER_MODE_O,{status:s.FAILED,code:"",msg:`params error -> renderMode: ${t}`},{logSource:e.LogSource.RTC})),e.logger.info(i.L_MCU_CONFIG_BUILDER_SET_OUTPUT_VIDEO_RENDER_MODE_O,{status:s.SUCCESSED,renderMode:t},{logSource:e.LogSource.RTC}),this}setOutputAudioBitrate(t){return r.info(`setOutputAudioBitrate -> bitrate: ${t}`),e.isNumber(t)&&t>0?this._addOutputValue("audio",t):(r.error(`setOutputAudioBitrate failed -> bitrate is invalid: ${t}`),e.logger.error(i.L_MCU_CONFIG_BUILDER_SET_OUTPUT_AUDIO_BITRATE_O,{status:s.FAILED,code:"",msg:`params error -> bitrate: ${t}`},{logSource:e.LogSource.RTC})),e.logger.info(i.L_MCU_CONFIG_BUILDER_SET_OUTPUT_AUDIO_BITRATE_O,{status:s.SUCCESSED,bitrate:t},{logSource:e.LogSource.RTC}),this}setOutputBackgroundColor(t){return r.info(`setOutputBackgroundColor -> color: ${t}`),/^0x[a-fA-F0-9]{6}$/.test(t)?this._addOutputValue("video",t,"backgroundColor"):(r.error(`setOutputBackgroundColor failed -> color is invalid: ${t}`),e.logger.error(i.L_MCU_CONFIG_BUILDER_SET_OUTPUT_BACKGROUND_COLOR_O,{status:s.FAILED,code:"",msg:`params error -> color: ${t}`},{logSource:e.LogSource.RTC})),e.logger.info(i.L_MCU_CONFIG_BUILDER_SET_OUTPUT_BACKGROUND_COLOR_O,{status:s.SUCCESSED,color:t},{logSource:e.LogSource.RTC}),this}addOutputBackgroundPicture(t,o,n,a,c){var d,u,_;if(r.info(`addOutputBackgroundPicture -> uri: ${t}, x: ${o}, y: ${n}, w: ${a}, h: ${c}`),!e.isHttpUrl(t))return r.error(`addOutputBackgroundPicture failed -> uri is invalid: ${t}`),e.logger.error(i.L_MCU_CONFIG_BUILDER_SET_OUTPUT_BACKGROUND_PICTURE_O,{status:s.FAILED,code:"",msg:`params error -> uri: ${t}`},{logSource:e.LogSource.RTC}),this;if([o,n,a,c].some((t=>!e.isNumber(t)||t<0||t>1)))return r.error(`addOutputBackgroundPicture failed -> some attrs of (x, y, w, h) is invalid: ${o}, ${n}, ${a}, ${c}`),e.logger.error(i.L_MCU_CONFIG_BUILDER_SET_OUTPUT_BACKGROUND_PICTURE_O,{status:s.FAILED,code:"",msg:`params error -> x: ${o}, y: ${n}, w: ${a}, h: ${c}`},{logSource:e.LogSource.RTC}),this;const l=(null===(_=null===(u=null===(d=this._values.output)||void 0===d?void 0:d.video)||void 0===u?void 0:u.backgroundPicture)||void 0===_?void 0:_.picture)||[];return l.push({uri:t,w:a,h:c,x:o,y:n}),this._addOutputValue("video",{picture:l},"backgroundPicture"),e.logger.info(i.L_MCU_CONFIG_BUILDER_SET_OUTPUT_BACKGROUND_PICTURE_O,{status:s.SUCCESSED,uri:t,x:o,y:n,w:a,h:c},{logSource:e.LogSource.RTC}),this}removeOutputBackgroundPicture(t){var o,n,a;if(r.info(`removeOutputBackgroundPicture -> uri: ${t}`),!e.isHttpUrl(t))return r.error(`removeOutputBackgroundPicture failed -> uri is invalid: ${t}`),e.logger.error(i.L_MCU_CONFIG_BUILDER_REMOVE_OUTPUT_BACKGROUND_PICTURE_O,{status:s.FAILED,code:"",msg:`params error -> uri: ${t}`},{logSource:e.LogSource.RTC}),this;let c=null===(a=null===(n=null===(o=this._values.output)||void 0===o?void 0:o.video)||void 0===n?void 0:n.backgroundPicture)||void 0===a?void 0:a.picture;return c&&(c=c.filter((e=>e.uri!==t)),this._addOutputValue("video",{pictures:c},"backgroundPicture")),e.logger.info(i.L_MCU_CONFIG_BUILDER_REMOVE_OUTPUT_BACKGROUND_PICTURE_O,{status:s.SUCCESSED,uri:t},{logSource:e.LogSource.RTC}),this}clearOutputBackgroundPicture(){return r.info("clearOutputBackgroundPicture ->"),this._addOutputValue("video",{pictures:[]},"backgroundPicture"),e.logger.info(i.L_MCU_CONFIG_BUILDER_CLEAR_OUTPUT_BACKGROUND_PICTURE_O,{status:s.SUCCESSED},{logSource:e.LogSource.RTC}),this}setOutputBackgroundPictureFillMode(t){return r.info(`setOutputBackgroundPictureFillMode -> fillMode: ${t}`),[exports.BackgroundPictureFillMode.CROP,exports.BackgroundPictureFillMode.WHOLE].includes(t)?this._addOutputValue("video",{fillMode:t},"backgroundPicture"):(r.error(`setOutputBackgroundPictureFillMode failed -> fillMode is invalid: ${t}`),e.logger.error(i.L_MCU_CONFIG_BUILDER_SET_OUTPUT_BACKGROUND_PICTURE_FILL_MODE_O,{status:s.FAILED,code:"",msg:`params error -> fillMode: ${t}`},{logSource:e.LogSource.RTC})),e.logger.info(i.L_MCU_CONFIG_BUILDER_SET_OUTPUT_BACKGROUND_PICTURE_FILL_MODE_O,{status:s.SUCCESSED,fillMode:t},{logSource:e.LogSource.RTC}),this}addPublishStreamUrls(t){var o,n;r.info(`addPublishStreamUrls -> urls: ${t.join(",")}`);const a=/^rtmp:\/\/.+/;if(!e.isArray(t)||0===t.length||t.some((e=>!a.test(e))))return r.error(`addPublishStreamUrls failed -> urls is invalid: ${t.join(",")}`),e.logger.error(i.L_MCU_CONFIG_BUILDER_SET_OUTPUT_BACKGROUND_PICTURE_FILL_MODE_O,{status:s.FAILED,code:"",msg:`params error -> urls: ${t.join(",")}`},{logSource:e.LogSource.RTC}),this;const c=(null===(n=null===(o=this._values.output)||void 0===o?void 0:o.cdn)||void 0===n?void 0:n.concat())||[];let d=!1;return t.forEach((e=>{c.some((t=>t.pushurl===e))||(d=!0,c.push({pushurl:e}))})),c.length>5?(r.error("addPublishStreamUrls failed -> publish stream urls no more than 5!"),e.logger.error(i.L_MCU_CONFIG_BUILDER_SET_OUTPUT_BACKGROUND_PICTURE_FILL_MODE_O,{status:s.FAILED,code:"",msg:`params error -> publish stream urls no more than 5, length: ${t.length}`},{logSource:e.LogSource.RTC}),this):(d&&this._addOutputValue("cdn",c),e.logger.info(i.L_MCU_CONFIG_BUILDER_ADD_PUBLISH_STREAM_URLS_O,{status:s.SUCCESSED,urls:t},{logSource:e.LogSource.RTC}),this)}removePublishStreamUrls(t){var o,n;r.info(`removePublishStreamUrls -> urls: ${t.join(",")}`);const a=/^rtmp:\/\/.+/;if(!e.isArray(t)||0===t.length||t.some((e=>!a.test(e))))return r.error(`removePublishStreamUrls failed -> urls contain invalid items: ${t.join(",")}`),e.logger.error(i.L_MCU_CONFIG_BUILDER_REMOVE_PUBLISH_STREAM_URLS_O,{status:s.FAILED,code:"",msg:`params error -> urls: ${t.join(",")}`},{logSource:e.LogSource.RTC}),this;const c=(null===(n=null===(o=this._values.output)||void 0===o?void 0:o.cdn)||void 0===n?void 0:n.concat())||[];for(let e=c.length-1;e>=0;e-=1){const{pushurl:r}=c[e],o=t.indexOf(r);o>=0&&(t.splice(o,1),c.splice(e,1))}return this._addOutputValue("cdn",c),e.logger.info(i.L_MCU_CONFIG_BUILDER_REMOVE_PUBLISH_STREAM_URLS_O,{status:s.SUCCESSED,urls:t},{logSource:e.LogSource.RTC}),this}clearPublishStreamUrls(){return r.info("clearPublishStreamUrls ->"),this._addOutputValue("cdn",[]),e.logger.info(i.L_MCU_CONFIG_BUILDER_CLEAR_PUBLISH_STREAM_URLS_O,{status:s.SUCCESSED},{logSource:e.LogSource.RTC}),this}addCustomizeLayoutVideo(t,o,n,a,c){if(r.info(`addCustomizeLayoutVideo -> trackId: ${t}, x: ${o}, y: ${n}, width: ${a}, height: ${c}`),!e.notEmptyString(t)||!this._isValidTrackId(t))return r.error(`addCustomizeLayoutVideo failed -> trackId is invalid: ${t}`),e.logger.error(i.L_MCU_CONFIG_BUILDER_ADD_CUSTOMIZE_LAYOUT_VIDEO_O,{status:s.FAILED,code:"",msg:`params error -> trackId: ${t}`},{logSource:e.LogSource.RTC}),this;if(!e.isNumber(o)||!e.isNumber(n))return r.error(`addCustomizeLayoutVideo failed -> some attrs of (x, y) is invalid: ${o}, ${n}`),e.logger.error(i.L_MCU_CONFIG_BUILDER_ADD_CUSTOMIZE_LAYOUT_VIDEO_O,{status:s.FAILED,code:"",msg:`params error -> x: ${o}, y: ${n}`},{logSource:e.LogSource.RTC}),this;if([a,c].some((t=>!e.isNumber(t)||t<0)))return r.error(`addCustomizeLayoutVideo failed -> some attrs of (width, height) is invalid: ${a}, ${c}`),e.logger.error(i.L_MCU_CONFIG_BUILDER_ADD_CUSTOMIZE_LAYOUT_VIDEO_O,{status:s.FAILED,code:"",msg:`params error -> width: ${a}, height: ${c}`},{logSource:e.LogSource.RTC}),this;const{userId:d,tag:u,mediaType:_}=ot(t);if(_!==exports.RCMediaType.VIDEO_ONLY)return r.error(`addCustomizeLayoutVideo failed -> kind of trackId is not 'video': ${t}`),e.logger.error(i.L_MCU_CONFIG_BUILDER_ADD_CUSTOMIZE_LAYOUT_VIDEO_O,{status:s.FAILED,code:"",msg:`params error -> trackId: ${t}的资源不是视频`},{logSource:e.LogSource.RTC}),this;const l=it(d,u),R=this._values.input||(this._values.input={}),C=R.video||(R.video=[]);return C.some((e=>e.height===c&&e.width===a&&e.stream_id===l&&e.user_id===d&&e.x===o&&e.y===n))?(e.logger.warn(i.L_MCU_CONFIG_BUILDER_ADD_CUSTOMIZE_LAYOUT_VIDEO_O,{status:s.FAILED,code:"",msg:"Duplicate configuration item ignored"},{logSource:e.LogSource.RTC}),this):(C.push({user_id:d,stream_id:l,x:o,y:n,width:a,height:c}),e.logger.info(i.L_MCU_CONFIG_BUILDER_ADD_CUSTOMIZE_LAYOUT_VIDEO_O,{status:s.SUCCESSED,trackId:t,x:o,y:n,width:a,height:c},{logSource:e.LogSource.RTC}),this)}removeCustomizeLayoutVideo(t){if(r.info(`clearCustomizeInputAudio -> trackId: ${t}`),!this._isValidTrackId(t))return r.error(`clearCustomizeInputAudio failed -> trackId is invalid: ${t}`),e.logger.error(i.L_MCU_CONFIG_BUILDER_REMOVE_CUSTOMIZE_LAYOUT_VIDEO_O,{status:s.FAILED,code:"",msg:`params error -> trackId: ${t}`},{logSource:e.LogSource.RTC}),this;const{userId:o,tag:n,mediaType:a}=ot(t);if(a!==exports.RCMediaType.VIDEO_ONLY)return r.error(`clearCustomizeInputAudio failed -> kind of trackId is not 'video': ${t}`),e.logger.error(i.L_MCU_CONFIG_BUILDER_REMOVE_CUSTOMIZE_LAYOUT_VIDEO_O,{status:s.FAILED,code:"",msg:`params error -> trackId: ${t}的资源不是视频`},{logSource:e.LogSource.RTC}),this;const c=it(o,n),d=this._values.input;return(null==d?void 0:d.video)&&d.video.length>0&&(d.video=d.video.filter((e=>e.stream_id===c))),e.logger.info(i.L_MCU_CONFIG_BUILDER_REMOVE_CUSTOMIZE_LAYOUT_VIDEO_O,{status:s.SUCCESSED,trackId:t},{logSource:e.LogSource.RTC}),this}clearCustomizeLayoutVideo(){r.info("clearCustomizeLayoutVideo ->");const t=this._values.input;return null==t||delete t.video,e.logger.info(i.L_MCU_CONFIG_BUILDER_CLEAR_CUSTOMIZE_LAYOUT_VIDEO_O,{status:s.SUCCESSED},{logSource:e.LogSource.RTC}),this}setCustomizeInputAudio(t){if(r.info(`setCustomizeInputAudio -> trackIds: ${t.join(",")}`),t.some((e=>this._isValidTrackId(e))))return r.warn(`setCustomizeInputAudio failed -> trackIds contain invalid items: $${t.join(",")}`),e.logger.error(i.L_MCU_CONFIG_BUILDER_SET_CUSTOMIZE_INPUT_AUDIO_O,{status:s.FAILED,code:"",msg:`params error -> trackIds: ${t.join(",")}`},{logSource:e.LogSource.RTC}),this;return(this._values.input||(this._values.input={})).audio=t.map((e=>{const{userId:t,tag:r}=ot(e);return{stream_id:it(t,r),user_id:t}})),this._values.inputFilterMode=Kr.AUDIO_INPUT_VIDEO_ALL,e.logger.info(i.L_MCU_CONFIG_BUILDER_SET_CUSTOMIZE_INPUT_AUDIO_O,{status:s.SUCCESSED,trackIds:t},{logSource:e.LogSource.RTC}),this}addCustomizeInputAudio(t){if(r.info(`addCustomizeInputAudio -> trackId: ${t}`),!this._isValidTrackId(t))return r.warn(`addCustomizeInputAudio failed -> trackId is invalid: ${t}`),e.logger.error(i.L_MCU_CONFIG_BUILDER_ADD_CUSTOMIZE_INPUT_AUDIO_O,{status:s.FAILED,code:"",msg:`params error -> trackId: ${t}`},{logSource:e.LogSource.RTC}),this;const o=this._values.input||(this._values.input={}),n=o.audio||(o.audio=[]),{userId:a,tag:c}=ot(t),d=it(a,c);return n.some((e=>e.stream_id===d&&e.user_id===a))?(e.logger.warn(i.L_MCU_CONFIG_BUILDER_ADD_CUSTOMIZE_INPUT_AUDIO_O,{status:s.FAILED,code:"",msg:`trackId:${t} is exist`},{logSource:e.LogSource.RTC}),this):(n.push({user_id:a,stream_id:d}),this._values.inputFilterMode=Kr.AUDIO_INPUT_VIDEO_ALL,e.logger.info(i.L_MCU_CONFIG_BUILDER_ADD_CUSTOMIZE_INPUT_AUDIO_O,{status:s.SUCCESSED,trackId:t},{logSource:e.LogSource.RTC}),this)}removeCustomizeInputAudio(t){if(r.info(`removeCustomizeInputAudio -> trackId: ${t}`),!this._isValidTrackId(t))return r.error(`removeCustomizeInputAudio failed -> trackId is invalid: ${t}`),e.logger.error(i.L_MCU_CONFIG_BUILDER_REMOVE_CUSTOMIZE_INPUT_AUDIO_O,{status:s.FAILED,code:"",msg:`params error -> trackId: ${t}`},{logSource:e.LogSource.RTC}),this;const o=this._values.input;if(!(null==o?void 0:o.audio)||0===o.audio.length)return e.logger.error(i.L_MCU_CONFIG_BUILDER_REMOVE_CUSTOMIZE_INPUT_AUDIO_O,{status:s.FAILED,code:"",msg:"not audio"},{logSource:e.LogSource.RTC}),this;const{userId:n,tag:a}=ot(t),c=it(n,a);return o.audio=o.audio.filter((e=>n!==e.user_id||c!==e.stream_id)),e.logger.info(i.L_MCU_CONFIG_BUILDER_REMOVE_CUSTOMIZE_INPUT_AUDIO_O,{status:s.SUCCESSED,trackId:t},{logSource:e.LogSource.RTC}),this}clearCustomizeInputAudio(){r.info("clearCustomizeInputAudio ->");const t=this._values.input;return(null==t?void 0:t.audio)&&delete t.audio,this._values.inputFilterMode=Kr.AUDIO_VIDEO_ALL,e.logger.info(i.L_MCU_CONFIG_BUILDER_CLEAR_CUSTOMIZE_INPUT_AUDIO_O,{status:s.SUCCESSED},{logSource:e.LogSource.RTC}),this}addPictureWaterMark(t,o,n,a,c,d){if(r.info(`addPictureWaterMark -> trackId: ${t} uri: ${o}, x: ${n}, y: ${a}, w: ${c}, h: ${d}`),!this._isValidTrackId(t))return r.warn(`addPictureWaterMark failed -> trackId is invalid: ${t}`),e.logger.error(i.L_MCU_CONFIG_BUILDER_ADD_SINGLE_WATER_MARK_O,{status:s.FAILED,code:"",msg:`params error -> trackId: ${t}`},{logSource:e.LogSource.RTC}),this;if(!e.isHttpUrl(o))return r.error(`addPictureWaterMark failed -> uri is invalid: ${o}`),e.logger.error(i.L_MCU_CONFIG_BUILDER_ADD_SINGLE_WATER_MARK_O,{status:s.FAILED,code:"",msg:`params error -> uri: ${o}`},{logSource:e.LogSource.RTC}),this;if([n,a,c,d].some((t=>!e.isNumber(t)||t<0||t>1)))return r.error(`addPictureWaterMark failed -> some attrs of (x, y, w, h) is invalid: ${n}, ${a}, ${c}, ${d}`),e.logger.error(i.L_MCU_CONFIG_BUILDER_ADD_SINGLE_WATER_MARK_O,{status:s.FAILED,code:"",msg:`params error -> x: ${n}, y: ${a}, w: ${c}, h: ${d}`},{logSource:e.LogSource.RTC}),this;const{userId:u,tag:_}=ot(t),l=it(u,_),R=(this._values.waterMark||(this._values.waterMark={enable:"on",singleScreen:[]})).singleScreen;r.info(`addPictureWaterMark singleScreen-> : ${JSON.stringify(R)}`);const C=R.filter((e=>e.streamId===l))[0];return r.info(`addPictureWaterMark target-> : ${C}`),C?C.picture.push({uri:o,w:c,h:d,x:n,y:a}):R.push({streamId:l,picture:[{uri:o,w:c,h:d,x:n,y:a}]}),r.info(`addPictureWaterMark singleScreen-> : ${JSON.stringify(R)}`),this._values.waterMark.singleScreen=R,r.info(`addPictureWaterMark this._values.waterMark.singleScreen-> : ${JSON.stringify(this._values.waterMark.singleScreen)}`),e.logger.info(i.L_MCU_CONFIG_BUILDER_SET_OUTPUT_BACKGROUND_PICTURE_O,{status:s.SUCCESSED,trackId:t,uri:o,x:n,y:a,w:c,h:d},{logSource:e.LogSource.RTC}),this}clearPictureWaterMark(){r.info("clearOutputBackgroundPicture ->");return(this._values.waterMark||(this._values.waterMark={enable:"on",singleScreen:[]})).singleScreen=[],e.logger.info(i.L_MCU_CONFIG_BUILDER_CLEAR_OUTPUT_BACKGROUND_PICTURE_O,{status:s.SUCCESSED},{logSource:e.LogSource.RTC}),this}removePictureWaterMark(t,r){if(!e.notEmptyString(t)||!this._isValidTrackId(t))return e.logger.error(i.L_MCU_CONFIG_BUILDER_REMOVE_SINGLE_WATER_MARK_O,{status:s.FAILED,code:"",msg:`params error -> trackId: ${t}`},{logSource:e.LogSource.RTC}),this;const{userId:o,tag:n}=ot(t),a=it(o,n);return(this._values.waterMark||(this._values.waterMark={enable:"on",singleScreen:[]})).singleScreen.forEach((e=>{e.streamId===a&&(e.picture=e.picture.filter((e=>e.uri!==r)))})),e.logger.info(i.L_MCU_CONFIG_BUILDER_REMOVE_SINGLE_WATER_MARK_O,{status:s.SUCCESSED,trackId:t,uri:r},{logSource:e.LogSource.RTC}),this}reset(){return r.info("MCUConfigBuilder.reset ->"),this._values=Hr(),e.logger.info(i.L_MCU_CONFIG_BUILDER_RESET_O,{status:s.SUCCESSED},{logSource:e.LogSource.RTC}),this}flush(r=!0){return t(this,void 0,void 0,(function*(){const t=JSON.parse(JSON.stringify(this._values)),{code:o}=yield this._invoker.push(new Vr(t,this._values));return r&&(this._values=Hr()),e.logger.info(i.L_MCU_CONFIG_BUILDER_FLUSH_O,{status:s.SUCCESSED},{logSource:e.LogSource.RTC}),{code:o}}))}__innerGetValues(){return JSON.parse(JSON.stringify(this._values))}}var Jr,Wr,qr,Yr;exports.RCLivingType=void 0,(Jr=exports.RCLivingType||(exports.RCLivingType={}))[Jr.VIDEO=0]="VIDEO",Jr[Jr.AUDIO=1]="AUDIO",function(e){e[e.AUTOMATIC=0]="AUTOMATIC",e[e.MANUAL=1]="MANUAL"}(Wr||(Wr={}));class zr extends ur{constructor(e,t,r){super(),this.roomId=e,this.hooks=t,this.roomPKHandler=r}_exchangeWithPushOtherRoom(e,o){return t(this,void 0,void 0,(function*(){if(!e.getLocalTracks().length)return;const t=Object.values(e.peerMgr.getMutilPeerCData()),i=Object.keys(e.peerMgr.getMutilPeerCData());for(let s=0;s<t.length;s++){const{pc:n,isPub:a}=t[s],c=a&&e.useMutilPeerC?[]:e.getSubscribedList(),d=yield Tr(c,!1,n,e),{pushOtherRooms:u,headers:_}=this.hooks(i[s]);d.pushOtherRooms=u;const l=yield new Er(_,d).execute(e,o);if(l.code!==exports.RCRTCCode.SUCCESS)return void r.error(`exchange with pushOtherRoom failed: ${l.code}`);const{sdp:R,resultCode:C}=l.data;if(C!==exports.RCRTCCode.SUCCESS)return void r.error(`exchange with pushOtherRoom failed: ${C}`);n.setRemoteAnswer(R.sdp)}}))}execute(o,n){return t(this,void 0,void 0,(function*(){const{roomId:t}=this;if(e.logger.info(i.L_LIVING_ROOM_JOINED_PK_ROOM_T,{roomId:t,userId:o.crtUserId},{logSource:e.LogSource.RTC}),!this.roomPKHandler)return void e.logger.error(i.L_LIVING_ROOM_JOINED_PK_ROOM_R,{status:s.FAILED,code:"",msg:"_roomPKHandler not exist"},{logSource:e.LogSource.RTC});const a=this.roomPKHandler.getPKInfo(t);if(!a)return r.warn(`exchange to update pushOtherRoom cancel, pkInfo lost -> roomId: ${t}`),void e.logger.error(i.L_LIVING_ROOM_JOINED_PK_ROOM_R,{status:s.FAILED,code:"",msg:"PKInfo not exist"},{logSource:e.LogSource.RTC});yield this._exchangeWithPushOtherRoom(o,n),e.logger.info(i.L_LIVING_ROOM_JOINED_PK_ROOM_T,{status:s.SUCCESSED,roomId:t,userId:o.crtUserId,PKInfo:a},{logSource:e.LogSource.RTC})}))}}class Qr extends ur{constructor(e,t,r,o,i,s){super(),this.pkHandler=e,this.room=t,this._PKInfo=r,this.hooks=o,this._joinedPKRooms=i,this.isQuitPK=s}get kind(){return Ht.LeaveRoom}quitRoomPK(o,i){return t(this,void 0,void 0,(function*(){if(!this._PKInfo[o])return;const{inviterRoomId:t,inviteeRoomId:s,inviterUserId:n,inviteSessionId:a}=this._PKInfo[o],c={inviteeRoomId:s,inviterRoomId:t,userId:i.crtUserId},d={roomId:i.roomId,endRoomId:o,sessionId:a,content:JSON.stringify(c),keys:[`${t}|${n}`]};r.info(`quitRoomPK -> params: ${JSON.stringify(d)}`);const u=yield i.context.endRoomPK(d);return u!==e.ErrorCode.SUCCESS?(r.error(`quitRoomPK failed: ${u}`),{code:exports.RCRTCCode.SIGNAL_ERROR}):(r.info("quitRoomPK success"),delete this._PKInfo[o],{code:exports.RCRTCCode.SUCCESS})}))}execute(o,n){return t(this,void 0,void 0,(function*(){const{room:t,isQuitPK:a}=this,c=t.getRoomId();return r.info(`leavePKRoom -> userId: ${o.crtUserId} , roomId: ${c}`),e.logger.info(i.L_LIVING_ROOM_LEAVE_PK_ROOM_T,{roomId:c,userId:o.crtUserId,isQuitPK:a},{logSource:e.LogSource.RTC}),yield t.__destroy(!0),delete this._joinedPKRooms[c],yield new zr(c,this.hooks,this.pkHandler).execute(o,n),a&&this.quitRoomPK(c,o),e.logger.info(i.L_LIVING_ROOM_LEAVE_PK_ROOM_R,{status:s.SUCCESSED,roomId:c,userId:o.crtUserId,isQuitPK:a},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SUCCESS}}))}}class Zr{constructor(e,t,r,o,i,s,n,a,c,d,u){this._invoker=e,this._PKInfo=t,this._hooks=r,this._context=o,this._runtime=i,this._service=s,this._initOptions=n,this._mainLivingRoom=a,this._registerPKMsgListener=c,this._onJoinedPKRoom=d,this._clientSessionId=u,this._inviteTimeout=30,this._appListener=null,this._joinedPKRooms={},this._registerPKMsgListener(this._onRecvPKMsg.bind(this)),this._mainRoomId=this._mainLivingRoom.getRoomId()}_callAppListener(e,...t){var o;r.info(`${e} callback ->`,...t);const i=null===(o=this._appListener)||void 0===o?void 0:o[e];if(i)try{i(...t)}catch(e){r.error(e)}}_onInvite(e){const t=e.inviteInfo||{},{inviterRoomId:r,inviterUserId:o,extra:i}=t,s={inviterRoomId:r,inviterUserId:o,extra:i};this._PKInfo[r]=t,this._callAppListener("onRequestJoinOtherRoom",s)}_onCancelInvite(e){const{inviterRoomId:t,inviterUserId:r,extra:o}=e.inviteInfo||{},i={inviterRoomId:t,inviterUserId:r,extra:o};delete this._PKInfo[t],this._callAppListener("onCancelRequestOtherRoom",i)}_onInviteTimeout(e){}_onInviteAnswer(e){const{answerCode:t,inviteContent:r}=e,{inviteSessionId:o,inviterUserId:i,inviterRoomId:s,inviteeUserId:n,inviterUserAutoMix:a,inviteeUserAutoMix:c,inviteeRoomId:d,extra:u}=r,_={agree:1===t,inviterRoomId:s,inviterUserId:i,inviteeRoomId:d,inviteeUserId:n,extra:u};this._PKInfo[d]=this._PKInfo[d]||{inviteSessionId:o,inviterRoomId:s,inviterUserId:i,inviterUserAutoMix:a,inviteeRoomId:d},this._PKInfo[d].inviteeUserAutoMix=c,this._callAppListener("onResponseJoinOtherRoom",_)}createLeaveOtherRoomCommand(e,t){return new Qr(this,e,this._PKInfo,this._hooks,this._joinedPKRooms,t)}_onPKEnd(e){return t(this,void 0,void 0,(function*(){const{inviteeRoomId:t,inviterRoomId:r,userId:o}=e.inviteInfo,i=r===this._mainRoomId?t:r,s={endRoomId:i,endUserId:o},n=this._joinedPKRooms[i];n&&(yield this._invoker.push(this.createLeaveOtherRoomCommand(n))),delete this._PKInfo[i],this._callAppListener("onFinishOtherRoom",s)}))}_onRecvPKMsg(e){const{targetId:t,content:r,messageType:o}=e;switch(o){case St.PK_INVITE:this._onInvite(r);break;case St.PK_CANCEL_INVITE:this._onCancelInvite(r);break;case St.PK_INVITE_TIMEOUT:this._onInviteTimeout(r);break;case St.PK_INVITE_ANSWER:this._onInviteAnswer(r);break;case St.PK_END:this._onPKEnd(r)}}registerRoomPKEventListener(t){e.logger.info(i.L_LIVING_PK_HANDLER_REGISTER_ROOM_PK_EVENT_LISTENER_O,{status:s.SUCCESSED,listener:t&&Object.keys(t)},{logSource:e.LogSource.RTC}),this._appListener=t}requestJoinOtherRoom(o,n,a){return t(this,void 0,void 0,(function*(){if(e.logger.info(i.L_LIVING_PK_HANDLER_REQUEST_JOIN_OTHER_ROOM_T,{inviteeRoomId:o,inviteeUserId:n,options:a},{logSource:e.LogSource.RTC}),!e.validate("inviteeRoomId",o,e.notEmptyString,!0)||!e.validate("inviteeUserId",n,e.notEmptyString,!0))return e.logger.error(i.L_LIVING_PK_HANDLER_REQUEST_JOIN_OTHER_ROOM_R,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> inviteeRoomId 或 inviteeUserId"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR};r.info(`requestRoomPK -> inviteeRoomId: ${o}; inviteeUserId: ${n}; options: ${JSON.stringify(a||{})}`);const t=ft(),c=!e.isBoolean(null==a?void 0:a.autoMix)||(null==a?void 0:a.autoMix),d={inviteSessionId:t,inviterRoomId:this._mainRoomId,inviterUserId:this._context.getCurrentId(),inviterUserAutoMix:c,inviteeRoomId:o,inviteeUserId:n,inviteeTimeoutTime:this._inviteTimeout,extra:(null==a?void 0:a.extra)||""},u={roomId:this._mainRoomId,invitedRoomId:o,invitedUserId:n,inviteTimeout:this._inviteTimeout,inviteInfo:JSON.stringify(d),inviteSessionId:t};r.info(`requestRoomPK -> params: ${JSON.stringify(u)}`);const _=yield this._context.requestRoomPK(u);return _!==e.ErrorCode.SUCCESS?(r.error(`requestRoomPK failed: ${_}`),e.logger.error(i.L_LIVING_PK_HANDLER_REQUEST_JOIN_OTHER_ROOM_R,{status:s.FAILED,code:_,msg:""},{logSource:e.LogSource.RTC}),{code:_}):(r.info("requestRoomPK success"),this._PKInfo[o]={inviteSessionId:t,inviterRoomId:this._mainRoomId,inviterUserId:this._context.getCurrentId(),inviterUserAutoMix:c,inviteeRoomId:o},e.logger.info(i.L_LIVING_PK_HANDLER_REQUEST_JOIN_OTHER_ROOM_R,{inviteeRoomId:o,inviteeUserId:n,options:a},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SUCCESS})}))}cancelRequestJoinOtherRoom(o,n,a){return t(this,void 0,void 0,(function*(){if(e.logger.info(i.L_LIVING_PK_HANDLER_CANCEL_REQUEST_JOIN_OTHER_ROOM_T,{inviteeRoomId:o,inviteeUserId:n,extra:a,userId:this._context.getCurrentId(),roomId:this._mainRoomId},{logSource:e.LogSource.RTC}),!e.validate("inviteeRoomId",o,e.notEmptyString,!0)||!e.validate("inviteeUserId",n,e.notEmptyString,!0))return e.logger.error(i.L_LIVING_PK_HANDLER_CANCEL_REQUEST_JOIN_OTHER_ROOM_R,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> inviteeRoomId or inviteeUserId"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR};if(!this._PKInfo[o])return r.error(`The request to connect with ${n} user in room ${o} is not initiated`),e.logger.error(i.L_LIVING_PK_HANDLER_CANCEL_REQUEST_JOIN_OTHER_ROOM_R,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:`The request to connect with ${n} user in room ${o} is not initiated`},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR};r.info(`canceRequestJoinPK -> inviteeRoomId: ${o}; inviteeUserId: ${n}; extra: ${a}`);const t={inviterRoomId:this._mainRoomId,inviterUserId:this._context.getCurrentId(),inviteeRoomId:o,inviteeUserId:n,extra:a||""},c={roomId:this._mainRoomId,invitedRoomId:o,invitedUserId:n,inviteSessionId:this._PKInfo[o].inviteSessionId,inviteInfo:JSON.stringify(t)};r.info(`canceRequestJoinPK -> params: ${JSON.stringify(c)}`);const d=yield this._context.cancelRoomPK(c);return d!==e.ErrorCode.SUCCESS?(r.error(`canceRequestJoinPK failed: ${d}`),e.logger.error(i.L_LIVING_PK_HANDLER_CANCEL_REQUEST_JOIN_OTHER_ROOM_R,{status:s.FAILED,code:d,msg:`The request to connect with ${n} user in room ${o} is not initiated`},{logSource:e.LogSource.RTC}),{code:d}):(r.info("canceRequestJoinPK success"),e.logger.info(i.L_LIVING_PK_HANDLER_CANCEL_REQUEST_JOIN_OTHER_ROOM_R,{status:s.SUCCESSED,inviteeRoomId:o,inviteeUserId:n,extra:a},{logSource:e.LogSource.RTC}),delete this._PKInfo[o],{code:exports.RCRTCCode.SUCCESS})}))}responseJoinOtherRoom(o,n,a,c){return t(this,void 0,void 0,(function*(){if(e.logger.info(i.L_LIVING_PK_HANDLER_RESPONSE_JOIN_OTHER_ROOM_T,{inviterRoomId:o,inviterUserId:n,agree:a,options:c,userId:this._context.getCurrentId(),roomId:this._mainRoomId},{logSource:e.LogSource.RTC}),!e.validate("inviterRoomId",o,e.notEmptyString,!0)||!e.validate("inviterUserId",n,e.notEmptyString,!0))return e.logger.error(i.L_LIVING_PK_HANDLER_RESPONSE_JOIN_OTHER_ROOM_R,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> inviterRoomId or inviterUserId"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR};if(!this._PKInfo[o])return r.error(`User ${n} in room ${o} did not send a request for connection`),e.logger.error(i.L_LIVING_PK_HANDLER_RESPONSE_JOIN_OTHER_ROOM_R,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:`User ${n} in room ${o} did not send a request for connection`},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR};r.info(`responseRoomPK -> inviterRoomId: ${o}; inviterUserId: ${n}; agree: ${a}; options: ${JSON.stringify(c||{})}`);const{inviteSessionId:t,inviterUserAutoMix:d}=this._PKInfo[o],u=!e.isBoolean(null==c?void 0:c.autoMix)||(null==c?void 0:c.autoMix),_={inviteSessionId:t,inviterRoomId:o,inviterUserId:n,inviterUserAutoMix:d,inviteeRoomId:this._mainRoomId,inviteeUserId:this._context.getCurrentId(),inviteeUserAutoMix:u},l=Object.assign(_,{inviterUserAutoMix:d}),R=a?Object.assign(_,{MultiRoomKey:`${o}|${this._mainRoomId}`,MultiRoomValue:JSON.stringify(l)}):_;!e.isUndefined(null==c?void 0:c.extra)&&Object.assign(R,{extra:c.extra});const C={agree:a,roomId:this._mainRoomId,inviteSessionId:t,inviteRoomId:o,inviteUserId:n,content:JSON.stringify(R),key:`${o}|${this._mainRoomId}`,value:JSON.stringify(_)};r.info(`responseRoomPK -> params: ${JSON.stringify(C)}`);const p=yield this._context.responseRoomPK(C);return p!==e.ErrorCode.SUCCESS?(r.error(`responseRoomPK failed: ${p}`),e.logger.error(i.L_LIVING_PK_HANDLER_RESPONSE_JOIN_OTHER_ROOM_R,{status:s.FAILED,code:p,msg:""},{logSource:e.LogSource.RTC}),{code:p}):(r.info("responseRoomPK success"),e.logger.info(i.L_LIVING_PK_HANDLER_RESPONSE_JOIN_OTHER_ROOM_R,{status:s.SUCCESSED,inviterRoomId:o,inviterUserId:n,agree:a,options:c,userId:this._context.getCurrentId(),roomId:this._mainRoomId},{logSource:e.LogSource.RTC}),this._PKInfo[o].inviteeUserAutoMix=u,{code:exports.RCRTCCode.SUCCESS})}))}joinOtherRoom(o){return t(this,void 0,void 0,(function*(){if(e.logger.info(i.L_LIVING_PK_HANDLER_JOIN_OTHER_ROOM_T,{roomId:o,userId:this._context.getCurrentId()},{logSource:e.LogSource.RTC}),!e.validate("roomId",o,e.notEmptyString,!0))return e.logger.error(i.L_LIVING_PK_HANDLER_JOIN_OTHER_ROOM_R,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> roomId"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR};if(this._context.getConnectionStatus()!==e.ConnectionStatus.CONNECTED)return e.logger.error(i.L_LIVING_PK_HANDLER_JOIN_OTHER_ROOM_R,{status:s.FAILED,code:exports.RCRTCCode.SIGNAL_DISCONNECTED,msg:"IM disconnected"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SIGNAL_DISCONNECTED};if(r.info(`JoinPKRoom, roomId: ${o}`),this._joinedPKRooms[o])return e.logger.warn(i.L_LIVING_PK_HANDLER_JOIN_OTHER_ROOM_R,{status:s.FAILED,code:exports.RCRTCCode.REPERT_JOIN_ROOM,msg:"Join the room repeatedly"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.REPERT_JOIN_ROOM};const t=exports.RCLivingType.VIDEO,n={extra:`{"roomId": "${this._mainRoomId}"}`},a=new to(this._context,this._runtime,o,this._service,this._initOptions,t,!1,!1,!1,this._clientSessionId),{code:c,data:d}=yield a.__innerInit(qt.LIVE,void 0,t,n);return c!==exports.RCRTCCode.SUCCESS?(r.error(`JoinPKRoom failed -> code: ${c}`),e.logger.error(i.L_LIVING_PK_HANDLER_JOIN_OTHER_ROOM_R,{status:s.FAILED,code:c,msg:""},{logSource:e.LogSource.RTC}),{code:c}):(r.info(`JoinPKRoom success -> userId: ${this._context.getCurrentId()}, roomId: ${o}, data: ${JSON.stringify(d)}`),this._joinedPKRooms[o]=a,yield this._onJoinedPKRoom(o,a),e.logger.info(i.L_LIVING_PK_HANDLER_JOIN_OTHER_ROOM_R,{status:s.SUCCESSED,roomId:o,userId:this._context.getCurrentId()},{logSource:e.LogSource.RTC}),{room:a,code:exports.RCRTCCode.SUCCESS,userIds:a.getRemoteUserIds(),tracks:a.getRemoteTracks()})}))}leaveOtherRoom(e,r){return t(this,void 0,void 0,(function*(){return this._invoker.push(this.createLeaveOtherRoomCommand(e,r))}))}getPKInfo(e){return this._PKInfo[e]}getAllPKInfo(){return this._PKInfo}getJoinedPKRooms(){return this._joinedPKRooms}}!function(e){e[e.OPEN=1]="OPEN",e[e.STOP=2]="STOP"}(qr||(qr={}));class Xr extends ur{constructor(e,t){super(),this.cdnValues=e,this.enable=t}execute(o,n){return t(this,void 0,void 0,(function*(){const{enable:t}=this;if(e.logger.info(i.L_LIVING_ROOM_ENABLE_INNER_CDN_T,{roomId:o.roomId,enable:t},{logSource:e.LogSource.RTC}),!o.isMainRoom)return r.error("the `enableInnerCDN` is disabled in PK room"),e.logger.error(i.L_LIVING_ROOM_ENABLE_INNER_CDN_R,{status:s.FAILED,code:exports.RCRTCCode.THE_FUNCTION_IS_DISABLED_IN_PKROOM,msg:"method not available in room"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.THE_FUNCTION_IS_DISABLED_IN_PKROOM};if(!e.isBoolean(t))return r.error("`enable` is invalid"),e.logger.error(i.L_LIVING_ROOM_ENABLE_INNER_CDN_R,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> enable"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR};o.setCDNEnabel(t);const a={version:2,output:{inCDNModel:t?qr.OPEN:qr.STOP}},{code:c}=yield new Vr(a,this.cdnValues).execute(o,n);if(c!==exports.RCRTCCode.SUCCESS)return r.error(`enableInnerCDN failed -> code: ${c}`),e.logger.error(i.L_LIVING_ROOM_ENABLE_INNER_CDN_R,{status:s.FAILED,code:c,msg:"signal error"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SIGNAL_ERROR};const d=o.getCDNUris();if(d&&d.broadcast!==Zt.SPREAD)return r.info("enableInnerCDN succeed"),e.logger.info(i.L_LIVING_ROOM_ENABLE_INNER_CDN_R,{status:s.SUCCESSED,enable:t},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SUCCESS};const{code:u}=yield Ir(o);return u===exports.RCRTCCode.SUCCESS?(r.info("enableInnerCDN succeed"),e.logger.info(i.L_LIVING_ROOM_ENABLE_INNER_CDN_R,{status:s.SUCCESSED,enable:t},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SUCCESS}):(r.error(`enableInnerCDN failed -> code: ${u}`),e.logger.error(i.L_LIVING_ROOM_ENABLE_INNER_CDN_R,{status:s.FAILED,code:u,msg:""},{logSource:e.LogSource.RTC}),{code:u})}))}}!function(e){e[e.AnchorToViewer=1]="AnchorToViewer",e[e.ViewerToAnchor=2]="ViewerToAnchor"}(Yr||(Yr={}));class eo extends ur{constructor(e){super(),this.livingType=e}execute(r,o){var i;return t(this,void 0,void 0,(function*(){const{code:t,data:s}=yield r.context.rtcIdentityChange(r.roomId,Yr.ViewerToAnchor,this.livingType);if(t!==e.ErrorCode.SUCCESS||!s)return{code:t};r.initWithRoomData(s);r.getResourcesByUserId(r.crtUserId).length>0&&o.push(new hr);const n=null===(i=s.roomInfo.filter((e=>"cdn_uris"===e.key))[0])||void 0===i?void 0:i.value;return n&&r.setCDNUris(JSON.parse(n)[0]),{code:t,data:s}}))}}class to extends Br{constructor(e,t,r,o,i,s,n,a,c,d){super(e,t,r,qt.LIVE,o,i,n,a,c,d),this._livingType=s,this._mcuConfigBuilder=new jr(this._invoker,this._isValidResourceId.bind(this))}_initAfterCatchRoomData(e){if(this._store.isUpgrade&&this._afterChangedRole(e),this._store.isMainRoom){const t=((e,t)=>{const r={};return t.forEach((t=>{const o=JSON.parse(t.value),{inviterRoomId:i,inviteeRoomId:s}=o;r[e===i?s:i]=JSON.parse(t.value)})),r})(this._roomId,e.roomInfo);this._roomPKHandler=new Zr(this._invoker,t,(e=>({headers:this._getRTCReqestHeaders(e),pushOtherRooms:this._getPushOtherRoomsParams()})),this._context,this._runtime,this._service,this._initOptions,this,super._registerPKMsgListener.bind(this),this._onJoinedPKRoom.bind(this),this._clientSessionId)}}__innerInit(r,o,n,a,c){const d=Object.create(null,{__innerInit:{get:()=>super.__innerInit}});return t(this,void 0,void 0,(function*(){if(!e.validate("livingType",n,(e=>e===exports.RCLivingType.AUDIO||e===exports.RCLivingType.VIDEO)))return e.logger.error(i.L_RTC_CLIENT_JOIN_LIVING_ROOM_R,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> livingType"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR};const{code:t,data:u}=yield d.__innerInit.call(this,r,o,n,a,c);return t===exports.RCRTCCode.SUCCESS&&u&&this._initAfterCatchRoomData(u),{code:t,data:u}}))}__innerInitByIdentityChange(){return t(this,void 0,void 0,(function*(){const{code:t,data:r}=yield this._invoker.push(new eo(this._livingType));return t===e.ErrorCode.SUCCESS&&r&&(this._initAfterCatchRoomData(r),this._initWithRoomData(r.offlineKickTime),e.logger.info(i.L_RTC_CLIENT_UPGRADE_TO_ANCHOR_ROOM_R,{status:s.SUCCESSED,roomData:r},{logSource:e.LogSource.RTC})),t}))}publish(o){const n=Object.create(null,{publish:{get:()=>super.publish}});return t(this,void 0,void 0,(function*(){return this._store.isMainRoom?n.publish.call(this,o):(r.warn("the `publish` is disabled in PK room "),e.logger.error(i.L_ABSTRACT_ROOM_PUBLISH_R,{status:s.FAILED,code:exports.RCRTCCode.THE_FUNCTION_IS_DISABLED_IN_PKROOM,msg:"method not available in room"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.THE_FUNCTION_IS_DISABLED_IN_PKROOM})}))}unpublish(o){const n=Object.create(null,{unpublish:{get:()=>super.unpublish}});return t(this,void 0,void 0,(function*(){return this._store.isMainRoom?n.unpublish.call(this,o):(r.warn("the `unpublish` is disabled in PK room "),e.logger.error(i.L_ABSTRACT_ROOM_UNPUBLISH_R,{status:s.FAILED,code:exports.RCRTCCode.THE_FUNCTION_IS_DISABLED_IN_PKROOM,msg:"method not available in room"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.THE_FUNCTION_IS_DISABLED_IN_PKROOM})}))}_isValidResourceId(e){var t;const{userId:r}=ot(e),o=!!(null===(t=this._store.getResourcesByUserId(r))||void 0===t?void 0:t.find((t=>rt(t)===e)));let i=!1;const{code:s,roomPKHandler:n}=this.getRoomPKHandler();if(s!==exports.RCRTCCode.SUCCESS||!n)return o;const a=n.getJoinedPKRooms(),c=[];return Object.values(a).map((e=>{c.push(...e.getRemoteTracks())})),i=c.some((t=>e===t.getTrackId())),o||i}getLivingType(){return this._livingType}getMCUConfigBuilder(){return this._store.isMainRoom?this._mcuConfigBuilder:(r.error("the `getMCUConfigBuilder` is disabled in PK room"),{code:exports.RCRTCCode.THE_FUNCTION_IS_DISABLED_IN_PKROOM})}enableInnerCDN(e){return t(this,void 0,void 0,(function*(){return this._invoker.push(new Xr(this._mcuConfigBuilder.__innerGetValues(),e))}))}_resourceHandle(e,r,o){const i=Object.create(null,{_resourceHandle:{get:()=>super._resourceHandle}});return t(this,void 0,void 0,(function*(){i._resourceHandle.call(this,e,r,o)}))}_afterChangedRole(e){const t=gt(e,this._roomId),r=this._context.getCurrentId(),o=Object.keys(t);setTimeout((()=>{var i;const s=o.filter((e=>e!==r));s.length>0&&this._callAppListener("onUserJoin",s);for(const e in t)e!==r&&this._resourceHandle({uris:t[e]},St.TOTAL_CONTENT_RESOURCE,e);if(!(null===(i=e.roomInfo.filter((e=>"cdn_uris"===e.key))[0])||void 0===i?void 0:i.value))return;const n=this._store.getCDNUris();(null==n?void 0:n.push_mode)===Wr.MANUAL&&this._callAppListener("onCDNEnableChange",null==n?void 0:n.enableInnerCDN)}))}__getCDNEnable(){var e;return!!(null===(e=this._store.getCDNUris())||void 0===e?void 0:e.enableInnerCDN)}__getCDNPushMode(){var e;return null===(e=this._store.getCDNUris())||void 0===e?void 0:e.push_mode}_onJoinedPKRoom(e,r){return t(this,void 0,void 0,(function*(){this._invoker.push(new zr(e,(e=>({pushOtherRooms:this._getPushOtherRoomsParams(),headers:this._getRTCReqestHeaders(e)})),this._roomPKHandler))}))}_getPushOtherRoomsParams(){const e=[];if(!this.isMainRoom()||!this._roomPKHandler)return e;const t=this._roomPKHandler.getJoinedPKRooms();for(const r in t){const o=t[r].getSessionId(),i=this._roomPKHandler.getPKInfo(r);if(!i)continue;const{inviterUserAutoMix:s,inviteeUserAutoMix:n,inviterUserId:a}=i,c=this._context.getCurrentId()===a;e.push({roomId:r,sessionId:o,autoMix:c?!!s:!!n})}return e}getRoomPKHandler(){return this._store.isMainRoom?(e.logger.info(i.L_LIVING_ROOM_GET_ROOM_PK_HANDLER_O,{status:s.SUCCESSED},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SUCCESS,roomPKHandler:this._roomPKHandler}):(r.error("the `getRoomPKHandler` is disabled in PK room"),e.logger.error(i.L_LIVING_ROOM_GET_ROOM_PK_HANDLER_O,{status:s.SUCCESSED,code:exports.RCRTCCode.THE_FUNCTION_IS_DISABLED_IN_PKROOM,msg:"method not available in room"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.THE_FUNCTION_IS_DISABLED_IN_PKROOM})}_quitAllPKRoom(){return t(this,void 0,void 0,(function*(){const t=this._roomPKHandler.getJoinedPKRooms();for(const e in t)this._roomPKHandler.leaveOtherRoom(t[e]);e.logger.info(i.L_LIVING_ROOM_QUIT_ALL_PK_ROOM_O,{status:s.SUCCESSED,roomIds:Object.keys(t)},{logSource:e.LogSource.RTC})}))}isMainRoom(){return this._store.isMainRoom}}class ro extends Br{constructor(e,t,r,o,i,s,n,a,c,d=qt.RTC){super(e,t,r,d,o,i,s,n,a,c)}}const oo=new class{constructor(){this.queue=[],this.locked=!1,this.taskCount=0}checkToStart(){return t(this,void 0,void 0,(function*(){if(0===this.queue.length||this.locked)return;this.locked=!0;const{resolve:e,task:t,reject:r}=this.queue.shift();let o;try{o=yield t(),e(o)}catch(e){r(e)}this.locked=!1,this.checkToStart()}))}push(e,t=""){const r=new Promise(((t,r)=>{this.queue.push({resolve:t,task:e,reject:r})}));return this.checkToStart(),r}},io=(e,t="")=>oo.push(e,t);class so{constructor(e,t,r,o){this._context=e,this._useMutilPeerC=o,this._rtcToken="",this._liveUrl="",this._subTracks=[],this._clientSessionId=ft(),this._livingType=null,this._mediaType=null,this._subTiny=!1,this._fromRetry=!1,this._appListener=null,this._service=new At(t,e,r.mediaServer),this._peerCManager=new dr(this._useMutilPeerC,this._context.getCurrentId(),this._reTryExchange.bind(this),this._context.getCurrentId())}_getReqHeaders(o){return t(this,void 0,void 0,(function*(){const t=this._context.getCurrentId(),i=t;if(!this._rtcToken){const{code:t,data:s}=yield this._context.getRTCToken(i,qt.LIVE,o);if(t!==e.ErrorCode.SUCCESS)return r.error(`getRTCToken failed: ${t}`),{code:exports.RCRTCCode.SIGNAL_ERROR};this._rtcToken=s.rtcToken}return{code:exports.RCRTCCode.SUCCESS,headers:{"App-Key":this._context.getAppkey(),UserId:t,RoomId:i,RoomType:qt.LIVE,Token:this._rtcToken,"Peer-Connection-Id":this._pcName,"Client-Session-Id":this._clientSessionId}}}))}_clearSubscribeInfo(){var e;this._liveUrl="",this._livingType=null,this._mediaType=null,this._subTiny=!1,this._subTracks.length=0,null===(e=this._pc)||void 0===e||e.destroy(),this._pc=null}_reTryExchange(){var e;return t(this,void 0,void 0,(function*(){this._fromRetry=!0;const{code:t}=yield this.subscribe(this._liveUrl,this._livingType,this._mediaType,this._subTiny);t===exports.RCRTCCode.SUCCESS&&(null===(e=this._pc)||void 0===e||e.clearReTryExchangeTimer())}))}subscribe(e,r,o,i=!1){return t(this,void 0,void 0,(function*(){return io((()=>this.__subscribe(e,r,o,i)),"audience-client-sub")}))}__subscribe(o,n,a,c=!1){var d;return t(this,void 0,void 0,(function*(){e.logger.info(i.L_AUDIENCE_CLIENT_SUBSCRIBE_T,{liveUrl:o,livingType:n,mediaType:a,subTiny:c},{logSource:e.LogSource.RTC});const t=[];if(ht(this._context.getNaviInfo()))return e.logger.error(i.L_AUDIENCE_CLIENT_SUBSCRIBE_R,{status:s.FAILED,code:exports.RCRTCCode.PACKAGE_ENVIRONMENT_ERROR,msg:"navi_url error"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PACKAGE_ENVIRONMENT_ERROR,tracks:t};if(!this._fromRetry&&(null===(d=this._pc)||void 0===d||d.clearReTryExchangeTimer()),this._fromRetry=!1,!e.isString(o))return r.error(`liveUrl is invalid: ${o}`),e.logger.error(i.L_AUDIENCE_CLIENT_SUBSCRIBE_R,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:`params error -> liveUrl: ${o}`},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR,tracks:t};if(![exports.RCLivingType.AUDIO,exports.RCLivingType.VIDEO].includes(n))return r.error(`livingType is invalid: ${n}`),e.logger.error(i.L_AUDIENCE_CLIENT_SUBSCRIBE_R,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:`params error -> livingType: ${n}`},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR,tracks:t};if(![exports.RCMediaType.AUDIO_ONLY,exports.RCMediaType.VIDEO_ONLY,exports.RCMediaType.AUDIO_VIDEO].includes(a))return r.error(`mediaType is invalid: ${a}`),e.logger.error(i.L_AUDIENCE_CLIENT_SUBSCRIBE_R,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:`params error -> -> mediaType: ${a}`},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR,tracks:t};if(this._liveUrl&&this._liveUrl!==o)return e.logger.error(i.L_AUDIENCE_CLIENT_SUBSCRIBE_R,{status:s.FAILED,code:exports.RCRTCCode.BROADCAST_SUB_LIST_NOT_EMPTY,msg:"repeat subscribe"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.BROADCAST_SUB_LIST_NOT_EMPTY,tracks:t};if(!this._pc){const{pcName:e,pc:r}=this._peerCManager.createPeerCList(t)[0];this._pc=r,this._pcName=e,this._pc.on(nr.__INNER_EVENT_TRACK_READY__,this._onTrackReady,this),this._pc.registerReportListener(this._reportListener),this._pc.__reportR3R4ToPolaris()}this._liveUrl=o;const{code:u,headers:_}=yield this._getReqHeaders(n);if(u!==exports.RCRTCCode.SUCCESS)return e.logger.error(i.L_AUDIENCE_CLIENT_SUBSCRIBE_R,{status:s.FAILED,code:u,msg:""},{logSource:e.LogSource.RTC}),{code:u,tracks:t};const l=`rc_mcu_${Date.now()}`,R="RongCloudRTC";0===this._subTracks.length&&(this._subTracks.push(new We(R,l),new qe(R,l)),this._pc.updateSubRemoteTracks(this._subTracks.slice()));const C={sdp:yield this._pc.createOffer(!0),liveUrl:o,mediaType:a,simulcast:c?Nt.TINY:Nt.NORMAL,switchstream:!1},p=yield this._service.broadcastSubscribe(_,C);if(p.code!==exports.RCRTCCode.SUCCESS)return r.error(`andience subscribe failed: ${p.code}`),e.logger.error(i.L_AUDIENCE_CLIENT_SUBSCRIBE_R,{status:s.FAILED,code:p.code,msg:""},{logSource:e.LogSource.RTC}),{code:p.code,tracks:t};const h=p.data;if(h.resultCode!==exports.RCRTCCode.SUCCESS)return r.error(`andience subscribe failed! code: ${h.resultCode}; message: ${h.message}`),e.logger.error(i.L_AUDIENCE_CLIENT_SUBSCRIBE_R,{status:s.FAILED,code:h.resultCode,msg:""},{logSource:e.LogSource.RTC}),{code:h.resultCode,tracks:t};r.debug(`andience subscribe success: ${o}`),this._livingType=n,this._mediaType=a,this._subTiny=c;const{sdp:g,subscribedList:T}=h,m=[];return T.forEach((e=>{const{mediaType:t}=e,r=this._subTracks[t];m.push(r),r.__innerSetRemoteMuted(!0)})),this._pc.setRemoteAnswer(g.sdp),e.logger.info(i.L_AUDIENCE_CLIENT_SUBSCRIBE_R,{status:s.SUCCESSED,liveUrl:o},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SUCCESS,tracks:m}}))}unsubscribe(){return t(this,void 0,void 0,(function*(){return io((()=>this.__unsubscribe()),"audience-client-unsub")}))}__unsubscribe(){var o;return t(this,void 0,void 0,(function*(){if(e.logger.info(i.L_AUDIENCE_CLIENT_UNSUBSCRIBE_T,{liveUrl:this._liveUrl},{logSource:e.LogSource.RTC}),null===(o=this._pc)||void 0===o||o.clearReTryExchangeTimer(),!this._rtcToken||!this._liveUrl)return e.logger.warn(i.L_AUDIENCE_CLIENT_UNSUBSCRIBE_R,{status:s.FAILED,code:"",msg:"Address does not exist, without unsubscribe"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SUCCESS};const{headers:t}=yield this._getReqHeaders(),{code:n}=yield this._service.broadcastExit(t);return n!==exports.RCRTCCode.SUCCESS?(r.error(`broadcast unsubscribe failed: ${n}`),e.logger.error(i.L_AUDIENCE_CLIENT_UNSUBSCRIBE_R,{status:s.FAILED,code:n,msg:""},{logSource:e.LogSource.RTC})):(r.debug("broadcast unsubscribe success"),e.logger.info(i.L_AUDIENCE_CLIENT_UNSUBSCRIBE_R,{status:s.SUCCESSED,liveUrl:this._liveUrl},{logSource:e.LogSource.RTC})),this._clearSubscribeInfo(),{code:n}}))}registerReportListener(e){this._reportListener=e}registerTrackEventListener(e){this._appListener=e}_onTrackReady(e){var t,o;const i=e.receiver.track,s="audio"===i.kind?exports.RCMediaType.AUDIO_ONLY:exports.RCMediaType.VIDEO_ONLY,n=this._subTracks[s];n.__innerSetMediaStreamTrack(i);try{null===(o=null===(t=this._appListener)||void 0===t?void 0:t.onTrackReady)||void 0===o||o.call(t,n)}catch(e){r.error(e)}}}var no,ao;exports.RCInnerCDNPullKind=void 0,(no=exports.RCInnerCDNPullKind||(exports.RCInnerCDNPullKind={})).RTMP="rtmp",no.FLV="flv",no.HLS="hls",exports.RCInnerCDNPullIsHttps=void 0,(ao=exports.RCInnerCDNPullIsHttps||(exports.RCInnerCDNPullIsHttps={}))[ao.NOT_HTTPS=0]="NOT_HTTPS",ao[ao.HTTPS=1]="HTTPS";const co=Object.assign(Object.assign({},ct(exports.RCResolution.W176_H144)),{frameRate:_t(exports.RCFrameRate.FPS_15)});class uo{constructor(e,o,i,s,n,a,c,d=ft()){this._context=e,this._runtime=o,this._initOptions=i,this._roomId=s,this._joinResData=n,this.livingType=a,this._useMutilPeerC=c,this._clientSessionId=d,this._roomAnchorList=[],this._roomRes={},this._roomAnchorRes={},this._remoteTracks={},this._appListener=null,this._pc=null,this._subscribedList=[],this._sessionId="",this._destroyed=!1,this._isPulling=!1,this._pullTime=0,this._reportListener=null,this._setInitData(),this._service=new At(this._runtime,this._context,this._initOptions.mediaServer,this._initOptions.timeout),this._polarisReport=new ar(this._context,this._runtime,this._roomId,this,Gt.Audience),this._polarisReport.sendR1(),this._peerCManager=new dr(this._useMutilPeerC,this._roomId,this._reTryExchange.bind(this),this._context.getCurrentId(),this._polarisReport),this._context.registerRTCSignalListener((e=>t(this,void 0,void 0,(function*(){const{time:t,type:o,roomId:i}=this._context.decodeRtcNotify(e);if(r.warn(`registerRTCSignalListener -> ${JSON.stringify({time:t,type:o,roomId:i})}`),1===o)this._startPull(i,t)}))))}_startPull(o,i){return t(this,void 0,void 0,(function*(){if(this._isPulling)return;this._isPulling=!0;if(this._pullTime>i)return void(this._isPulling=!1);const{code:t,data:s}=yield this._context.pullRTCRoomEntry(o);if(t===e.ErrorCode.SUCCESS){this._isPulling=!1,this._pullTime=s.syncTime||0;const e=(null==s?void 0:s.kvEntries)||[];r.info(`_startPull -> ${JSON.stringify(e)}`),this.singalDataChange(e,o)}}))}_setInitData(){const{sessionId:e,remoteUserIds:t,remoteRTCUris:r,remoteMUCUris:o,remoteTracks:i,CDNUris:s}=((e,t)=>{const r=t.filter((e=>"RC_RTC_SESSIONID"===e.key))[0],o=r?r.value:"",i=t.filter((e=>"RC_ANCHOR_LIST"===e.key)).map((e=>JSON.parse(e.value||"[]")))[0],s=t.filter((e=>e.key.includes("RC_RES_"))).map((e=>JSON.parse(e.value||"{}"))),n=s.length?JSON.parse(s[0].mcu_uris||"[]"):[],a=[];n.forEach((t=>{const{mediaType:r,tag:o}=t,i=r===exports.RCMediaType.AUDIO_ONLY?new We(o,"",e):new qe(o,"",e);a.push(i)}));const c=[],d=[];s.forEach((e=>{const t=JSON.parse(e.uris||"[]");c.push(...t),t.forEach((e=>{const{mediaType:t,tag:r,msid:o}=e,i=o.split("_")[0],s=t===exports.RCMediaType.AUDIO_ONLY?new We(r,i):new qe(r,i);d.push(s)}))}));const u=t.filter((e=>"RC_CDN"===e.key)).map((e=>{const t=JSON.parse(e.value||"[]");return JSON.parse(t.cdn_uris)[0]}))[0];return{sessionId:o,remoteUserIds:i||[],remoteRTCUris:c,remoteMUCUris:n,remoteRTCTracks:d,remoteMCUTracks:a,remoteTracks:[...d,...a],CDNUris:u||{}}})(this._roomId,this._joinResData.kvEntries);this._sessionId=e,this._roomAnchorList=t,i.forEach((e=>{this._remoteTracks[e.getTrackId()]=e})),this._CDNUris=s,r.forEach((e=>{const t=e.msid.split("_")[0];this._roomAnchorRes[t]?this._roomAnchorRes[t].push(e):this._roomAnchorRes[t]=[e]})),o.forEach((e=>{const{mediaType:t,tag:r}=e,o=[this._roomId,r,t].join("_");this._roomRes[o]=e})),r.forEach((e=>{const t=rt(e);this._roomRes[t]=e}))}_assertRoomDestroyed(){if(this._destroyed){const e="This room has been destroyed. Please use `RCRTCClient.joinLivingRoomAsAudience` to catch another instance.";return r.warn(e),exports.RCRTCCode.ROOM_HAS_BEEN_DESTROYED}}singalDataChange(t,o){var n;if(e.logger.info(i.L_AUDIENCE_LIVING_ROOM_SINGAL_DATA_CHANGE_T,{singalData:t,roomId:o,userId:this._context.getCurrentId()},{logSource:e.LogSource.RTC}),o!==this._roomId)return r.warn(`singalDataChange -> not the current room data: data roomId: ${o}, current roomId: ${this._roomId}`),void e.logger.error(i.L_AUDIENCE_LIVING_ROOM_SINGAL_DATA_CHANGE_R,{status:s.FAILED,code:"",msg:`id inconsistency -> params id:${o},current id:${this._roomId}`},{logSource:e.LogSource.RTC});r.debug("singalDataChange -> singalData:",JSON.stringify(t||{}));const a=[],c=null===(n=t.filter((e=>"RC_CDN"===e.key))[0])||void 0===n?void 0:n.value;c&&this._diffCDNUris(JSON.parse(JSON.parse(c).cdn_uris)[0]),t.forEach((e=>{const{key:t,value:r,timestamp:o,uid:i}=e;if(-1!==t.indexOf("RC_RES_")){const e=JSON.parse(r||"{}"),t=JSON.parse(e.mcu_uris||"[]"),o=JSON.parse(e.uris||"[]");return a.push(...t),void this._diffAnchorResource(o,i)}if("RC_ANCHOR_LIST"===t){const e=JSON.parse(r||"[]"),{joinUserIds:t,leftUserIds:o}=this._diffAnchorList(e);t.length>0&&this._handleNewJoinedAnchor(t),o.length>0&&this._handleLeftedAnchor(o)}})),this._diffRoomResource(a),e.logger.info(i.L_AUDIENCE_LIVING_ROOM_SINGAL_DATA_CHANGE_R,{status:s.SUCCESSED,singalData:t,roomId:o,userId:this._context.getCurrentId()},{logSource:e.LogSource.RTC})}_diffAnchorList(e){const t=e.filter((e=>this._roomAnchorList.indexOf(e)<0));return{leftUserIds:this._roomAnchorList.filter((t=>e.indexOf(t)<0)),joinUserIds:t}}_handleNewJoinedAnchor(e){this._roomAnchorList.push(...e),this._callAppListener("onAnchorJoin",e)}_handleLeftedAnchor(e){return t(this,void 0,void 0,(function*(){this._roomAnchorList=this._roomAnchorList.filter((t=>!(e.indexOf(t)>-1)));const t=[];e.forEach((e=>{t.push(...this.getRemoteTracksByUserId(e)),delete this._roomAnchorRes[e]})),t.length&&(yield this.unsubscribe(t),t.forEach((e=>delete this._remoteTracks[e.getTrackId()]))),this._callAppListener("onAnchorLeave",e)}))}_diffRoomResource(e){return t(this,void 0,void 0,(function*(){const t=[],r=[],o=[];e.forEach((e=>{const r=rt(e),{userId:i,tag:s,mediaType:n}=ot(r),a=[this._roomId,s,n].join("_");if(!this._remoteTracks[a]){const r=n===exports.RCMediaType.AUDIO_ONLY?new We(s,"",this._roomId):new qe(s,"",this._roomId);t.push(r),this._remoteTracks[a]=r,this._roomRes[r.getTrackId()]=e}o.push(a)})),Object.keys(this._remoteTracks).forEach((e=>{o.indexOf(e)<0&&this._remoteTracks[e].isMCUTrack()&&r.push(this._remoteTracks[e])})),t.length>0&&this._callAppListener("onTrackPublish",t),r.length>0&&this._onUserUnpublish(r,"onTrackUnpublish")}))}_diffAnchorResource(e,o){return t(this,void 0,void 0,(function*(){const t=this._roomAnchorRes[o]||(this._roomAnchorRes[o]=[]),{publishedList:i,unpublishedList:s,modifiedList:n}=nt(t,e);if(i.length){const e=t.map(rt),o=[],s=[];if(i.forEach((r=>{const i=rt(r),n=e.indexOf(i),{userId:a,tag:c,mediaType:d}=ot(i);n>-1?t[n]=r:t.push(r);let u=this._remoteTracks[i];this._roomRes[i]=r,u?u.isSubscribed()&&o.push(u):(u=d===exports.RCMediaType.AUDIO_ONLY?new We(c,a):new qe(c,a),this._remoteTracks[i]=u,s.push(u)),u.__innerSetRemoteMuted(0===r.state)})),o.length){const e=o.map((e=>e.getTrackId()));r.debug(`resub tracks -> ${JSON.stringify(e)}`);const{code:t}=yield io((()=>this._subscribeHandle(o,!0)));t!==exports.RCRTCCode.SUCCESS&&r.error(`resub tracks failed -> code: ${t}, ids: ${JSON.stringify(e)}`)}this._callAppListener("onAnchorTrackPublish",s)}if(s.length){const e=s.map(rt);for(let r=t.length-1;r>=0;r-=1){const o=t[r];e.includes(rt(o))&&t.splice(r,1)}const r=s.map((e=>{const t=rt(e);return this._remoteTracks[t]}));yield this._onUserUnpublish(r,"onAnchorTrackUnpublish")}if(n.length){const e=t.map(rt);for(let r=0;r<n.length;r++){const o=n[r],i=rt(o),s=e.indexOf(i);t[s].state=o.state;const a=this._remoteTracks[i];a.__innerSetRemoteMuted(0===o.state),a.isAudioTrack()?this._callAppListener("onAudioMuteChange",a):this._callAppListener("onVideoMuteChange",a)}}}))}_onUserUnpublish(e,r){return t(this,void 0,void 0,(function*(){yield this.unsubscribe(e),e.forEach((e=>{this._subscribedList=this._subscribedList.filter((t=>t.track.getTrackId()!==e.getTrackId())),delete this._roomRes[e.getTrackId()],e.__innerDestroy(),delete this._remoteTracks[e.getTrackId()]})),this._callAppListener(r,e)}))}_callAppListener(e,...t){var o;r.info(`${e} callback ->`,...t);const i=null===(o=this._appListener)||void 0===o?void 0:o[e];if(i)try{i(...t)}catch(e){r.error(e)}}_reTryExchange(){return t(this,void 0,void 0,(function*(){io((()=>t(this,void 0,void 0,(function*(){var e;const{reqBody:t}=yield this._createSubscribeParams(this._subscribedList,{},!0),o=yield this._exchangeHandle(t);if(o.code!==exports.RCRTCCode.SUCCESS)return r.error(`reTryExchange failed: ${o.code}`),{code:o.code};const{sdp:i,resultCode:s}=o.data;if(s!==exports.RCRTCCode.SUCCESS)return r.error(`reTryExchange failed: ${s}`),{code:s};this._pc.clearReTryExchangeTimer();const n=this._subscribedList.filter((e=>e.track.isMCUTrack()));if(n.length>0){const t=n[0].track.getTrackId(),r=null===(e=this._roomRes[t])||void 0===e?void 0:e.msid,o=[this._roomId,"RongCloudRTC"].join("_");i.sdp=i.sdp.replace(new RegExp(r,"g"),o)}const a=yield this._pc.setRemoteAnswer(i.sdp);return a!==exports.RCRTCCode.SUCCESS?{code:a}:void 0}))),"audience-retry-exchange")}))}_createSubscribeParams(e,r,o){return t(this,void 0,void 0,(function*(){const t=yield this._pc.createOffer(o),i={resolutionInfo:[]},s={min:0,max:0};Object.keys(r).forEach((e=>{const{mediaStream:o,tinyStream:n}=r[e];[o,n].forEach(((r,o)=>{var n;const a=1===o?[e,"tiny"].join("_"):e;t.sdp=null===(n=t.sdp)||void 0===n?void 0:n.replace(new RegExp(r.id,"g"),a);const c=r.getVideoTracks()[0];if(!c)return;const d=0===o,{width:u,height:_,frameRate:l}=d?et(c):co;i.resolutionInfo.push({trackId:c.id,simulcast:d?Nt.NORMAL:Nt.TINY,resolution:`${u}x${_}`});const R=ve(u,_),C=Ae(l);s.min+=R.minBitrate*C,s.max+=R.maxBitrate*C}))}));return{reqBody:{sdp:t,switchstream:!1,newVersionFlag:!0,subscribeList:e.map((e=>({simulcast:e.subTiny?Nt.TINY:Nt.NORMAL,resolution:"",uri:this._roomRes[e.track.getTrackId()].uri})))},dynamicBitrate:s,offer:t}}))}_subscribeHandle(r,o=!1){var n;return t(this,void 0,void 0,(function*(){e.logger.info(i.L_AUDIENCE_LIVING_ROOM_SUBSCRIBE_T,{trackIds:r.map(Tt),roomId:this._roomId,userId:this._context.getCurrentId(),forceReq:o},{logSource:e.LogSource.RTC});if(this._assertRoomDestroyed())return e.logger.error(i.L_AUDIENCE_LIVING_ROOM_SUBSCRIBE_R,{status:s.FAILED,code:exports.RCRTCCode.ROOM_HAS_BEEN_DESTROYED,msg:"room destroyed"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.ROOM_HAS_BEEN_DESTROYED};if(!e.validate("tracks",r,(()=>e.isArray(r)&&r.length>0&&r.every((e=>e instanceof Je||e.track instanceof Je))),!0))return e.logger.error(i.L_AUDIENCE_LIVING_ROOM_SUBSCRIBE_R,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> tracks"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR};const{pc:t,pcName:a}=this._peerCManager.createPeerCList(r)[0];this._pc=t,this._pc.__reportR3R4ToPolaris(),this._pcName=a,this._pc.registerReportListener(this._reportListener),this._addPeerCEvent();const c=this._subscribedList.map((e=>Object.assign({},e))),d=r.map((e=>e instanceof Je?{track:e}:e));let u=!1;const _=[];return d.forEach((e=>{const t=e.track.getTrackId();_.push(t);const r=c.find((e=>e.track.getTrackId()===t));r&&r.subTiny===e.subTiny||(r?r.subTiny=e.subTiny:c.push(e),u=!0)})),u||o?(null===(n=this._polarisReport)||void 0===n||n.sendR2(zt.SUBSCRIBE,Qt.BEGIN,_),e.logger.info(i.L_AUDIENCE_LIVING_ROOM_SUBSCRIBE_R,{status:s.SUCCESSED,trackIds:r.map(Tt),roomId:this._roomId,userId:this._context.getCurrentId(),forceReq:o},{logSource:e.LogSource.RTC}),this._updateSubListHandle(c,!0)):(e.logger.warn(i.L_AUDIENCE_LIVING_ROOM_SUBSCRIBE_R,{status:s.FAILED,code:"",msg:"repeat subscribe"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SUCCESS})}))}_addPeerCEvent(){this._pc.on(nr.__INNER_EVENT_TRACK_READY__,(e=>{const t=e.streams[0].id,o=e.receiver.track,i=[t,"audio"===o.kind?exports.RCMediaType.AUDIO_ONLY:exports.RCMediaType.VIDEO_ONLY].join("_"),s=this._remoteTracks[i];s?(s.__innerSetMediaStreamTrack(o),this._callAppListener("onTrackReady",s)):r.warn("cannot found RCRemoteTrack:",o.id)}))}_getReqHeaders(){const e=this._context.getCurrentId();return{"App-Key":this._context.getAppkey(),RoomId:e,Token:this._joinResData.token,RoomType:qt.LIVE,UserId:e,"Session-Id":this._sessionId,"Peer-Connection-Id":this._pcName,"Client-Session-Id":this._clientSessionId}}_exchangeHandle(e){return this._service.broadcastSubscribe(this._getReqHeaders(),e)}_updateSubListHandle(o,i=!1){var s;return t(this,void 0,void 0,(function*(){if(this._assertRoomDestroyed())return{code:exports.RCRTCCode.ROOM_HAS_BEEN_DESTROYED};if(!e.validate("resources",o,(()=>e.isArray(o)&&o.every((e=>e instanceof Je||e.track instanceof Je))),!0))return{code:exports.RCRTCCode.PARAMS_ERROR};let t=o.map((e=>e instanceof Je?{track:e}:Object.assign({},e)));const n={};t=t.filter((e=>{const t=e.track.getTrackId();return!n[t]&&(n[t]=!0)})).map((e=>Object.assign({},e)));const a=this._subscribedList.map((e=>Object.assign({},e)));if(!i){let e=!1;if(t.forEach((t=>{const r=a.findIndex((e=>e.track===t.track));if(-1===r)return void(e=!0);a.splice(r,1)[0].subTiny!==t.subTiny&&(e=!0)})),a.length&&(e=!0),!e)return{code:exports.RCRTCCode.SUCCESS}}this._pc.clearReTryExchangeTimer(),this._pc.updateSubRemoteTracks(t.map((e=>e.track)));const{reqBody:c}=yield this._createSubscribeParams(t,{},!1),d=yield this._exchangeHandle(c);if(a.length){const e=[];a.forEach((t=>{e.push(t.track.getTrackId())})),null===(s=this._pc.reportParser)||void 0===s||s.clearLatestPacketsRecv(e)}if(d.code!==exports.RCRTCCode.SUCCESS)return{code:d.code};const{sdp:u,resultCode:_,message:l,subscribedList:R}=d.data;if(_!==exports.RCRTCCode.SUCCESS)return r.error("change subscribe list failed:",l,_),{code:_};t.forEach((e=>{const{track:t}=e;if(t.isMCUTrack()){const e=this._roomRes[t.getTrackId()].msid,{tag:r,userId:o}=ot(t.getTrackId()),i=[o,r].join("_");u.sdp=u.sdp.replace(new RegExp(e,"g"),i)}}));const C=yield this._pc.setRemoteAnswer(u.sdp);if(C!==exports.RCRTCCode.SUCCESS)return{code:C};const p=null==R?void 0:R.map((e=>`${e.msid}_${e.mediaType}`)),h=t.filter((e=>{if(e.track.isMCUTrack()){const t=this._roomRes[e.track.getTrackId()],r=`${t.msid}_${t.mediaType}`;return p.includes(r)}return null==p?void 0:p.includes(e.track.getTrackId())})),g=null==h?void 0:h.map((e=>`${e.track.getTrackId()}`)),T=t.filter((e=>!(null==g?void 0:g.includes(e.track.getTrackId()))));for(const e in this._remoteTracks){const t=h.some((t=>t.track.getTrackId()===e));this._remoteTracks[e].__innerSetSubscribed(t)}return this._subscribedList.splice(0,this._subscribedList.length,...h),T.length?{code:exports.RCRTCCode.SUCCESS,failedList:T}:{code:exports.RCRTCCode.SUCCESS}}))}_diffCDNUris(e){return t(this,void 0,void 0,(function*(){if(this._CDNUris.url&&!e.url)return this._callAppListener("onCDNInfoDisable"),void(this._CDNUris=e);(!this._CDNUris||!this._CDNUris.url&&e.url)&&this._callAppListener("onCDNInfoEnable",{resolution:`W${e.w}_H${e.h}`,fps:`FPS_${e.fps}`});const t=this._CDNUris.w&&e.w&&this._CDNUris.w!==e.w,r=this._CDNUris.h&&e.h&&this._CDNUris.h!==e.h,o=this._CDNUris.fps&&e.fps&&this._CDNUris.fps!==e.fps;(t||r||o)&&this._callAppListener("onCDNInfoChange",{resolution:`W${e.w}_H${e.h}`,fps:`FPS_${e.fps}`}),this._CDNUris=e}))}_getCDNPlayUrl(e){return t(this,void 0,void 0,(function*(){const{w:t,h:o,fps:i}=e,s=this._initOptions.pullInnerCDNProtocol||exports.RCInnerCDNPullKind.FLV,n=this._initOptions.pullInnerCDNUseHttps===exports.RCInnerCDNPullIsHttps.NOT_HTTPS?exports.RCInnerCDNPullIsHttps.NOT_HTTPS:exports.RCInnerCDNPullIsHttps.HTTPS;if(!this._CDNUris.url)return r.error(`cdn_uris url is empty, the anchor need to open or push CDN, code: ${exports.RCRTCCode.CDN_RESOURCE_IS_EMPTY}`),{code:exports.RCRTCCode.CDN_RESOURCE_IS_EMPTY};const a={"App-Key":this._context.getAppkey(),Token:this._joinResData.token,RoomId:this.getRoomId(),UserId:this._context.getCurrentId(),SessionId:this.getSessionId()},c=[];t&&c.push(`w=${t}`),o&&c.push(`h=${o}`),i&&c.push(`fps=${i}`),c.push(`kind=${s}`),c.push(`is_https=${n}`);const d=c.join("&");let u=`${this._CDNUris.url}?`;d&&(u+=d);const{code:_,res:l}=yield this._service.getCDNResourceInfo(a,u);return _!==exports.RCRTCCode.SUCCESS?(r.error(`getCDNPlayUrl failed: ${_}`),{code:_}):(r.info(`getCDNPlayUrl success: ${null==l?void 0:l.data.pull_url}`),{code:_,CDNPlayUrl:null==l?void 0:l.data.pull_url})}))}getCDNPlayUrl(o,n){return t(this,void 0,void 0,(function*(){if(e.logger.info(i.L_AUDIENCE_LIVING_ROOM_GET_CDN_PLAY_URL_T,{resolution:o,fps:n},{logSource:e.LogSource.RTC}),o&&!dt(o))return r.error("`resolution` is invalid"),e.logger.error(i.L_AUDIENCE_LIVING_ROOM_GET_CDN_PLAY_URL_R,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> resolution"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR};if(n&&!ut(n))return r.error("`fps` is invalid"),e.logger.error(i.L_AUDIENCE_LIVING_ROOM_GET_CDN_PLAY_URL_R,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> fps"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR};const{width:t,height:a}=o?ct(o):{width:null,height:null},c=n?_t(n):null,d={};return t&&(d.w=t),a&&(d.h=a),c&&(d.fps=c),e.logger.info(i.L_AUDIENCE_LIVING_ROOM_GET_CDN_PLAY_URL_R,{status:s.SUCCESSED,resolution:o,fps:n},{logSource:e.LogSource.RTC}),this._getCDNPlayUrl(d)}))}subscribe(e){return t(this,void 0,void 0,(function*(){return io((()=>this._subscribeHandle(e,!1)),"audience-sub")}))}addSubscribeTask(e){return t(this,void 0,void 0,(function*(){return io((()=>this._subscribeHandle(e,!1)),"audience-sub")}))}__unsubscribe(o){var n;return t(this,void 0,void 0,(function*(){if(e.logger.info(i.L_AUDIENCE_LIVING_ROOM_UNSUBSCRIBE_T,{trackIds:o.map((e=>e.getTrackId())),roomId:this._roomId,userId:this._context.getCurrentId()},{logSource:e.LogSource.RTC}),!e.validate("tracks",o,(()=>e.isArray(o)&&o.length>0&&o.every((e=>e instanceof Je))),!0))return r.error(`unsubscribe failed, tracks is invalid -> roomId: ${this._roomId}`),e.logger.error(i.L_AUDIENCE_LIVING_ROOM_UNSUBSCRIBE_R,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> tracks"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR};const t=this._subscribedList.map((e=>Object.assign({},e))).filter((e=>!o.includes(e.track)));return null===(n=this._polarisReport)||void 0===n||n.sendR2(zt.SUBSCRIBE,Qt.END,o.map((e=>e.getTrackId()))),e.logger.info(i.L_AUDIENCE_LIVING_ROOM_UNSUBSCRIBE_R,{status:s.SUCCESSED,trackIds:o.map((e=>e.getTrackId())),roomId:this._roomId,userId:this._context.getCurrentId()},{logSource:e.LogSource.RTC}),this._updateSubListHandle(t,!1)}))}unsubscribe(e){return t(this,void 0,void 0,(function*(){return io((()=>this.__unsubscribe(e)),"audience-unsub")}))}addUnsubscribeTask(e){return t(this,void 0,void 0,(function*(){return io((()=>this.__unsubscribe(e)),"audience-unsub")}))}__destroy(e){var r,o;return t(this,void 0,void 0,(function*(){this._destroyed||(this._destroyed=!0,null===(r=this._audioLevelReport)||void 0===r||r.clearAudioLevelReportTimer(),e&&(yield this._context.quitLivingRoomAsAudience(this._roomId)),yield this._service.broadcastExit(this._getReqHeaders()),null===(o=this._pc)||void 0===o||o.destroy(),this._polarisReport=null,this._context.registerRTCSignalListener(void 0))}))}getRemoteTrack(e){return this._remoteTracks[e]}__getPC(){return this._peerCManager.getPCList()}getLocalTrack(e){return{}}__onReconnected(){return t(this,void 0,void 0,(function*(){const{code:t}=yield this._context.joinLivingRoomAsAudience(this._roomId,qt.LIVE);t!==e.ErrorCode.SUCCESS&&r.error("join living room error when on reconnected")}))}registerRoomEventListener(e){this._appListener=e}onAudioLevelChange(t,r){var o;null===(o=this._audioLevelReport)||void 0===o||o.clearAudioLevelReportTimer(),this._audioLevelReport=new cr(this),this._audioLevelReport.onAudioLevelChange(t,r||1e3),e.logger.info(i.L_AUDIENCE_LIVING_ROOM_AUDIO_LEVEL_CHANGE_O,{status:s.SUCCESSED,handler:null==t?void 0:t.name,gap:r},{logSource:e.LogSource.RTC})}registerReportListener(e){this._reportListener=e}getRoomId(){return this._roomId}getCrtUserId(){return this._context.getCurrentId()}getSessionId(){return this._sessionId}getRemoteUserIds(){return this._roomAnchorList}getRemoteTracksByUserId(e){const t=[];for(const r in this._remoteTracks){const o=this._remoteTracks[r];o.getUserId()===e&&t.push(o)}return t}getRemoteTracks(){const e=[],t=[];for(const e in this._remoteTracks){if(2===t.length)break;const r=this._remoteTracks[e];r.isMCUTrack()&&t.push(r)}return this._roomAnchorList.forEach((t=>{e.push(...this.getRemoteTracksByUserId(t))})),[...t,...e]}getRemoteRTCTracks(){const e=[];for(const t in this._remoteTracks){const r=this._remoteTracks[t];r.isMCUTrack()||e.push(r)}return e}getRemoteMCUTracks(){const e=[];for(const t in this._remoteTracks){const r=this._remoteTracks[t];r.isMCUTrack()&&e.push(r)}return e}getCDNInfo(){return this._CDNUris.w?{resolution:`W${this._CDNUris.w}_H${this._CDNUris.h}`,fps:`FPS_${this._CDNUris.fps}`,CDNEnable:this._CDNUris.enableInnerCDN}:{CDNEnable:!1}}getClientSessionId(){return this._clientSessionId}}class _o{constructor(e){this._context=e,this._isElectron=/Electron/.test(navigator.userAgent)}_getMediaStream(e,o="getUserMedia"){return t(this,void 0,void 0,(function*(){try{const t=this.setConstraintsConfig(e),r=yield navigator.mediaDevices[o](t);return{code:exports.RCRTCCode.SUCCESS,stream:r}}catch(e){if("Permission denied"===e.message)return{code:exports.RCRTCCode.BROWSER_PERMISSION_DENIED};if("Permission denied by system"===e.message)return{code:exports.RCRTCCode.SYSTEM_PERMISSION_DENIED};r.error(`get user media failed -> ${e.message}`)}return{code:"getUserMedia"===o?exports.RCRTCCode.GET_USER_MEDIA_FAILED:exports.RCRTCCode.GET_DISPLAY_MEDIA_FAILED}}))}setConstraintsConfig(e){if((null==e?void 0:e.audio)&&!this._isElectron){"boolean"==typeof e.audio&&(e.audio={});const t=navigator.mediaDevices.getSupportedConstraints();t.noiseSuppression&&(e.audio.noiseSuppression=!!t.noiseSuppression),t.autoGainControl&&(e.audio.autoGainControl=!!t.autoGainControl),t.echoCancellation&&(e.audio.echoCancellation=!!t.echoCancellation),r.info(`browser supported -> ${JSON.stringify(t)}`)}return e}createMicrophoneAudioTrack(r="RongCloudRTC",o){return t(this,void 0,void 0,(function*(){if(!Qe(r))return e.logger.error(i.L_RTC_CLIENT_CREATE_MICROPHONE_AUDIO_TRACK_O,{status:s.FAILED,code:exports.RCRTCCode.INVALID_TAGS,msg:"invalid tag"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.INVALID_TAGS};const t=this._context.getCurrentId();if(!t)return e.logger.error(i.L_RTC_CLIENT_CREATE_MICROPHONE_AUDIO_TRACK_O,{status:s.FAILED,code:exports.RCRTCCode.INVALID_USER_ID,msg:"invalid IM connection,invalid userId"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.INVALID_USER_ID};const{stream:n,code:a}=yield this._getMediaStream({audio:{deviceId:null==o?void 0:o.micphoneId,sampleRate:null==o?void 0:o.sampleRate}});if(a!==exports.RCRTCCode.SUCCESS)return e.logger.error(i.L_RTC_CLIENT_CREATE_MICROPHONE_AUDIO_TRACK_O,{status:s.FAILED,code:a,msg:"Failed to get microphone audio stream"},{logSource:e.LogSource.RTC}),{code:a};const c=n.getAudioTracks()[0],d=new Ge(r,t,c);return e.logger.info(i.L_RTC_CLIENT_CREATE_MICROPHONE_AUDIO_TRACK_O,{status:s.SUCCESSED,trackId:d.getTrackId()},{logSource:e.LogSource.RTC}),{code:a,track:d}}))}createCameraVideoTrack(r="RongCloudRTC",o){return t(this,void 0,void 0,(function*(){if(!Qe(r))return e.logger.error(i.L_RTC_CLIENT_CREATE_CAMERA_VIDEO_TRACK_O,{status:s.FAILED,code:exports.RCRTCCode.INVALID_TAGS,msg:"invalid tag"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.INVALID_TAGS};const t=this._context.getCurrentId();if(!t)return e.logger.error(i.L_RTC_CLIENT_CREATE_CAMERA_VIDEO_TRACK_O,{status:s.FAILED,code:exports.RCRTCCode.INVALID_TAGS,msg:"invalid IM connection,invalid userId"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.INVALID_USER_ID};const n=dt(null==o?void 0:o.resolution)?o.resolution:exports.RCResolution.W640_H480,{width:a,height:c}=ct(n),{stream:d,code:u}=yield this._getMediaStream({video:{deviceId:null==o?void 0:o.cameraId,frameRate:_t((null==o?void 0:o.frameRate)||exports.RCFrameRate.FPS_15),width:a,height:c,facingMode:null==o?void 0:o.faceMode}});if(u!==exports.RCRTCCode.SUCCESS)return e.logger.error(i.L_RTC_CLIENT_CREATE_CAMERA_VIDEO_TRACK_O,{status:s.FAILED,code:exports.RCRTCCode.INVALID_TAGS,msg:"Failed to get camera video stream"},{logSource:e.LogSource.RTC}),{code:u};const _=d.getVideoTracks()[0],l=new Ke(r,t,_);return e.logger.info(i.L_RTC_CLIENT_CREATE_CAMERA_VIDEO_TRACK_O,{status:s.SUCCESSED,trackId:l.getTrackId()},{logSource:e.LogSource.RTC}),{code:u,track:l}}))}createMicrophoneAndCameraTracks(r="RongCloudRTC",o){var n,a,c,d,u,_;return t(this,void 0,void 0,(function*(){const t=[];if(!Qe(r))return e.logger.error(i.L_RTC_CLIENT_CREATE_MICROPHONE_AND_CAMERA_TRACKS_O,{status:s.FAILED,code:exports.RCRTCCode.INVALID_TAGS,msg:"invalid tag"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.INVALID_TAGS,tracks:t};const l=this._context.getCurrentId();if(!l)return e.logger.error(i.L_RTC_CLIENT_CREATE_MICROPHONE_AND_CAMERA_TRACKS_O,{status:s.FAILED,code:exports.RCRTCCode.INVALID_USER_ID,msg:"invalid IM connection,invalid userId"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.INVALID_USER_ID,tracks:t};const R=dt(null===(n=null==o?void 0:o.video)||void 0===n?void 0:n.resolution)?o.video.resolution:exports.RCResolution.W640_H480,{width:C,height:p}=ct(R),{stream:h,code:g}=yield this._getMediaStream({video:{deviceId:null===(a=null==o?void 0:o.video)||void 0===a?void 0:a.cameraId,frameRate:_t((null===(c=null==o?void 0:o.video)||void 0===c?void 0:c.frameRate)||exports.RCFrameRate.FPS_15),width:C,height:p,facingMode:null===(d=null==o?void 0:o.video)||void 0===d?void 0:d.faceMode},audio:{deviceId:null===(u=null==o?void 0:o.audio)||void 0===u?void 0:u.micphoneId,sampleRate:null===(_=null==o?void 0:o.audio)||void 0===_?void 0:_.sampleRate}});return g!==exports.RCRTCCode.SUCCESS?(e.logger.error(i.L_RTC_CLIENT_CREATE_MICROPHONE_AND_CAMERA_TRACKS_O,{status:s.FAILED,code:g,msg:"Failed to get audio and video stream of camera and microphone"},{logSource:e.LogSource.RTC}),{code:g,tracks:t}):(h.getTracks().forEach((e=>{"video"===e.kind?t.push(new Ke(r,l,e)):t.unshift(new Ge(r,l,e))})),e.logger.info(i.L_RTC_CLIENT_CREATE_MICROPHONE_AND_CAMERA_TRACKS_O,{status:s.SUCCESSED,trackIds:t.map((e=>e.getTrackId()))},{logSource:e.LogSource.RTC}),{code:g,tracks:t})}))}createScreenVideoTrack(e="screenshare",r){return t(this,void 0,void 0,(function*(){const t=yield this._createScreenTracks(e,!1,i.L_RTC_CLIENT_CREATE_SCREEN_VIDEO_TRACK_O,r);return t.code===exports.RCRTCCode.SUCCESS?{code:t.code,track:t.tracks[0]}:t}))}createScreenWithAudioTracks(e="screenshare",r){return t(this,void 0,void 0,(function*(){return this._createScreenTracks(e,!0,i.L_RTC_CLIENT_CREATE_SCREEN_VIDEO_AND_AUDIO_TRACKS_O,r)}))}_createScreenTracks(r,o,n,a){var c,d;return t(this,void 0,void 0,(function*(){if(!Qe(r))return e.logger.error(n,{status:s.FAILED,code:exports.RCRTCCode.INVALID_TAGS,msg:"invalid tag"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.INVALID_TAGS};const t=this._context.getCurrentId();if(!t)return e.logger.error(n,{status:s.FAILED,code:exports.RCRTCCode.INVALID_USER_ID,msg:"invalid IM connection,invalid userId"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.INVALID_USER_ID};if(!Ct())return e.logger.error(i.L_RTC_CLIENT_CREATE_SCREEN_VIDEO_TRACK_O,{status:s.FAILED,code:exports.RCRTCCode.BROWSER_NOT_SUPPORT,msg:"browser not support"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.BROWSER_NOT_SUPPORT};const u=/macintosh|mac os x/i.test(navigator.userAgent);this._isElectron&&u&&o&&e.logger.warn(n,{status:s.INFO,code:exports.RCRTCCode.MAC_IN_ELECTRON_NOT_SUPPORT_SCREEN_SHARE_WITH_AUDIO,msg:"mac in electron not support screen share with audio"});const _=(!this._isElectron||!u)&&o;if(this._isElectron&&!e.isUndefined(null==a?void 0:a.chromeMediaSourceId)&&!e.isString(null==a?void 0:a.chromeMediaSourceId))return e.logger.error(n,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> options.chromeMediaSourceId type is string"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR};const l=dt(null==a?void 0:a.resolution)?a.resolution:exports.RCResolution.W1280_H720,{width:R,height:C}=ct(l),p=this._isElectron?{mandatory:{chromeMediaSourceId:null==a?void 0:a.chromeMediaSourceId,chromeMediaSource:"desktop",minWidth:R,maxWidth:R,minHeight:C,maxHeight:C}}:{frameRate:_t((null==a?void 0:a.frameRate)||exports.RCFrameRate.FPS_15),width:R,height:C};!(null==a?void 0:a.chromeMediaSourceId)&&this._isElectron&&(null===(c=p.mandatory)||void 0===c||delete c.chromeMediaSourceId);let h=null;_&&this._isElectron&&(null===(d=p.mandatory)||void 0===d||delete d.chromeMediaSourceId,h={mandatory:{chromeMediaSource:"desktop"}});const{stream:g,code:T}=yield this._getMediaStream({video:p,audio:h||_},this._isElectron?"getUserMedia":"getDisplayMedia");if(T!==exports.RCRTCCode.SUCCESS)return e.logger.error(n,{status:s.FAILED,code:T,msg:"Failed to get shared screen video stream"},{logSource:e.LogSource.RTC}),{code:T};const m=g.getVideoTracks()[0],S=[new He(r,t,m)];if(_){const e=g.getAudioTracks()[0];e&&S.push(new je(r,t,e))}return e.logger.info(n,{status:s.SUCCESSED,trackIds:S.map((e=>e.getTrackId()))},{logSource:e.LogSource.RTC}),{code:T,tracks:S}}))}createLocalAudioTrack(r,o){return t(this,void 0,void 0,(function*(){if(!Qe(r))return e.logger.error(i.L_RTC_CLIENT_CREATE_LOCAL_AUDIO_TRACK_O,{status:s.FAILED,code:exports.RCRTCCode.INVALID_TAGS,msg:"invalid tag"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.INVALID_TAGS};if(!o||"[object MediaStreamTrack]"!==o.toString()||"audio"!==o.kind)return e.logger.error(i.L_RTC_CLIENT_CREATE_LOCAL_AUDIO_TRACK_O,{status:s.FAILED,code:exports.RCRTCCode.INVALID_USER_ID,msg:"Failed to create custom stream"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.CREATE_CUSTOM_TRACK_FAILED};const t=this._context.getCurrentId();if(!t)return e.logger.error(i.L_RTC_CLIENT_CREATE_LOCAL_AUDIO_TRACK_O,{status:s.FAILED,code:exports.RCRTCCode.INVALID_USER_ID,msg:"invalid IM connection,invalid userId"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.INVALID_USER_ID};const n=new we(r,t,o);return e.logger.info(i.L_RTC_CLIENT_CREATE_LOCAL_AUDIO_TRACK_O,{status:s.SUCCESSED,trackId:n.getTrackId()},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SUCCESS,track:n}}))}createLocalVideoTrack(r,o){return t(this,void 0,void 0,(function*(){if(!Qe(r))return e.logger.error(i.L_RTC_CLIENT_CREATE_LOCAL_VIDEO_TRACK_O,{status:s.FAILED,code:exports.RCRTCCode.INVALID_TAGS,msg:"invalid tag"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.INVALID_TAGS};if(!o||"[object MediaStreamTrack]"!==o.toString()||"video"!==o.kind)return e.logger.error(i.L_RTC_CLIENT_CREATE_LOCAL_VIDEO_TRACK_O,{status:s.FAILED,code:exports.RCRTCCode.CREATE_CUSTOM_TRACK_FAILED,msg:"Failed to create custom stream"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.CREATE_CUSTOM_TRACK_FAILED};const t=this._context.getCurrentId();if(!t)return e.logger.error(i.L_RTC_CLIENT_CREATE_LOCAL_VIDEO_TRACK_O,{status:s.FAILED,code:exports.RCRTCCode.INVALID_USER_ID,msg:"invalid IM connection,invalid userId"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.INVALID_USER_ID};const n=new Be(r,t,o);return e.logger.info(i.L_RTC_CLIENT_CREATE_LOCAL_VIDEO_TRACK_O,{status:s.SUCCESSED,trackId:n.getTrackId()},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SUCCESS,track:n}}))}createLocalFileTracks(o,n,a){return t(this,void 0,void 0,(function*(){if(!Qe(o))return e.logger.error(i.L_RTC_CLIENT_CREATE_LOCAL_FILE_TRACKS_O,{status:s.FAILED,code:exports.RCRTCCode.INVALID_TAGS,msg:"invalid tag"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.INVALID_TAGS,tracks:[]};if(!Rt())return e.logger.error(i.L_RTC_CLIENT_CREATE_LOCAL_FILE_TRACKS_O,{status:s.FAILED,code:exports.RCRTCCode.BROWSER_NOT_SUPPORT,msg:"browser not support"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.BROWSER_NOT_SUPPORT,tracks:[]};const t=n instanceof File?URL.createObjectURL(n):n;if(!e.isHttpUrl(t)&&!/^blob:/.test(t))return r.warn(`createLocalFileTracks failed: params error -> url: ${t}`),e.logger.error(i.L_RTC_CLIENT_CREATE_LOCAL_FILE_TRACKS_O,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> file"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR,tracks:[]};const c=this._context.getCurrentId();return c?new Promise((n=>{const d=document.createElement("video");(null==a?void 0:a.withoutAudio)&&(d.muted=!0),d.onloadedmetadata=()=>{const u=[];let _;try{const e=d.mozCaptureStream?"mozCaptureStream":"captureStream";_=d[e]()}catch(o){r.error(`create RCLocalFileTrack failed, captureSteam error. -> url: ${t}`),r.error(o),e.logger.error(i.L_RTC_CLIENT_CREATE_LOCAL_FILE_TRACKS_O,{status:s.FAILED,code:exports.RCRTCCode.CREATE_FILE_TRACK_FAILED,msg:"Failed to create file stream"},{logSource:e.LogSource.RTC}),n({code:exports.RCRTCCode.CREATE_FILE_TRACK_FAILED,tracks:u})}const[l,R]=_o.getTracksWithOptions(_,a);l&&u.push(new Fe(o,c,l,d)),R&&u.push(new $e(o,c,R,d)),0===u.length&&(d.pause(),d.src=""),d.onerror=null,e.logger.info(i.L_RTC_CLIENT_CREATE_LOCAL_FILE_TRACKS_O,{status:s.SUCCESSED,trackIds:u.map((e=>e.getTrackId()))},{logSource:e.LogSource.RTC}),n({code:exports.RCRTCCode.SUCCESS,tracks:u})},d.onerror=()=>{r.error(`create RCLocalFileTrack failed -> url: ${t}`),e.logger.error(i.L_RTC_CLIENT_CREATE_LOCAL_FILE_TRACKS_O,{status:s.FAILED,code:exports.RCRTCCode.CREATE_FILE_TRACK_FAILED,msg:"Failed to create file stream"},{logSource:e.LogSource.RTC}),n({code:exports.RCRTCCode.CREATE_FILE_TRACK_FAILED,tracks:[]})},d.src=t,d.loop=!0,d.play()})):(e.logger.error(i.L_RTC_CLIENT_CREATE_LOCAL_FILE_TRACKS_O,{status:s.FAILED,code:exports.RCRTCCode.INVALID_USER_ID,msg:"invalid IM connection,invalid userId"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.INVALID_USER_ID,tracks:[]})}))}createLocalTracks(r,o,n){return t(this,void 0,void 0,(function*(){const t=[];if(!Qe(r))return e.logger.error(i.L_RTC_CLIENT_CREATE_LOCAL_TRACKS_O,{status:s.FAILED,code:exports.RCRTCCode.INVALID_TAGS,msg:"invalid tag"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.INVALID_TAGS,tracks:t};if(!(o instanceof MediaStream))return e.logger.error(i.L_RTC_CLIENT_CREATE_LOCAL_TRACKS_O,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> stream"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR,tracks:t};const a=this._context.getCurrentId();if(!a)return e.logger.error(i.L_RTC_CLIENT_CREATE_LOCAL_TRACKS_O,{status:s.FAILED,code:exports.RCRTCCode.INVALID_USER_ID,msg:"invalid IM connection,invalid userId"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.INVALID_USER_ID,tracks:t};const[c,d]=_o.getTracksWithOptions(o,n);return c&&t.push(new we(r,a,c)),d&&t.push(new Be(r,a,d)),e.logger.info(i.L_RTC_CLIENT_CREATE_LOCAL_TRACKS_O,{status:s.SUCCESSED,trackIds:t.map((e=>e.getTrackId()))},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SUCCESS,tracks:t}}))}static getTracksWithOptions(e,t){const r=[];return r[0]=(null==t?void 0:t.withoutAudio)?void 0:e.getAudioTracks()[0],r[1]=(null==t?void 0:t.withoutVideo)?void 0:e.getVideoTracks()[0],r}}class lo extends _o{constructor(e,t,r){super(e),this._context=e,this._runtime=t,this._options=r,this._crtRoom=null,this._audience=null,this._crtAudienceLivingRoom=null,er.setSdpSemantics(r.sdpSemantics||"plan-b"),this._service=new At(this._runtime,this._context,this._options.mediaServer,this._options.timeout),this._context.registerConnectionStateChangeListener(this._onIMStatusChange.bind(this)),this._context.registerDisconnectListener(this._onIMDisconnect.bind(this)),this._context.registerDestroyListener(this._onIMUninit.bind(this)),this._context.registerMessageListener(this._handleMessage.bind(this)),this._context.getPluginContext().onnavidatachange=this.naviDataChange.bind(this)}_handleMessage(t){var r;if(t.conversationType!==e.ConversationType.RTC_ROOM)return!1;if(this._crtRoom instanceof to){this._getJoinedPKRoomList().forEach((e=>{e.__parseInnerMessage(t)}))}return null===(r=this._crtRoom)||void 0===r||r.__parseInnerMessage(t),e.logger.info(i.L_RTC_CLIENT_MESSAGE_O,{status:s.SUCCESSED,message:Object.assign(t,{content:"内容涉及隐私不予显示"})},{logSource:e.LogSource.RTC}),!0}naviDataChange(t){e.logger.info(`on navi change data => ${JSON.stringify(t)}`),this._service.detectorMediaSever()}_getJoinedPKRoomList(){const{code:e,roomPKHandler:t}=this._crtRoom.getRoomPKHandler();if(e===exports.RCRTCCode.SUCCESS&&t){const e=t.getJoinedPKRooms()||{};return Object.values(e)}return[]}getCurrentId(){return this._context.getCurrentId()}joinRTCRoom(r,o,n,a,c=qt.RTC){return t(this,void 0,void 0,(function*(){if(e.logger.info(i.L_RTC_CLIENT_JOIN_RTC_ROOM_T,{roomId:r,joinType:o,outerUserDatas:n,useMutilPeerC:a,roomType:c},{logSource:e.LogSource.RTC}),this._crtRoom)return e.logger.error(i.L_RTC_CLIENT_JOIN_RTC_ROOM_R,{status:s.FAILED,code:exports.RCRTCCode.REPERT_JOIN_ROOM,msg:"Join the room repeatedly"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.REPERT_JOIN_ROOM};const t=this._crtRoom=new ro(this._context,this._runtime,r,this._service,this._options,!1,!1,a,ft()),{code:d}=yield t.__innerInit(c,o,void 0,void 0,n);return d!==exports.RCRTCCode.SUCCESS?(this._crtRoom=null,{code:d}):(t.once(wr,(()=>{this._crtRoom=null})),{code:d,room:t,userIds:t.getRemoteUserIds(),tracks:t.getRemoteTracks()})}))}joinCrossRTCRoom(r,o,n,a,c=qt.CROSS_MUTI){return t(this,void 0,void 0,(function*(){if(e.logger.info(i.L_RTC_CLIENT_JOIN_CROSS_RTC_ROOM_T,{roomId:r,joinType:o,outerUserDatas:n,useMutilPeerC:a,roomType:c},{logSource:e.LogSource.RTC}),this._crtRoom)return e.logger.error(i.L_RTC_CLIENT_JOIN_CROSS_RTC_ROOM_R,{status:s.FAILED,code:exports.RCRTCCode.REPERT_JOIN_ROOM,msg:"Join the room repeatedly"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.REPERT_JOIN_ROOM};const t=this._crtRoom=new ro(this._context,this._runtime,r,this._service,this._options,!1,!1,a,ft(),c),{code:d}=yield t.__innerInit(c,o,void 0,void 0,n);return d!==exports.RCRTCCode.SUCCESS?(this._crtRoom=null,{code:d}):(t.once(wr,(()=>{this._crtRoom=null})),{code:d,room:t,userIds:t.getRemoteUserIds(),tracks:t.getRemoteTracks()})}))}joinLivingRoom(r,o,n,a,c){return t(this,void 0,void 0,(function*(){if(e.logger.info(i.L_RTC_CLIENT_JOIN_LIVING_ROOM_T,{roomId:r,livingType:o,joinType:n,outerUserDatas:a,useMutilPeerC:c},{logSource:e.LogSource.RTC}),this._crtRoom)return e.logger.error(i.L_RTC_CLIENT_JOIN_LIVING_ROOM_R,{status:s.FAILED,code:exports.RCRTCCode.REPERT_JOIN_ROOM,msg:`Join the room repeatedly -> roomId: ${r}`},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.REPERT_JOIN_ROOM};const t=this._crtRoom=new to(this._context,this._runtime,r,this._service,this._options,o,!1,!0,c),{code:d}=yield t.__innerInit(qt.LIVE,n,o,void 0,a);if(d!==exports.RCRTCCode.SUCCESS)return this._crtRoom=null,{code:d};t.once(wr,(()=>{this._crtRoom=null}));const u={code:d,room:t,userIds:t.getRemoteUserIds(),tracks:t.getRemoteTracks()};return t.__getCDNPushMode()===Wr.MANUAL&&Object.assign(u,{CDNEnable:t.__getCDNEnable()}),u}))}getAudienceClient(t){return this._audience||(this._audience=new so(this._context,this._runtime,this._options,t)),e.logger.info(i.L_RTC_CLIENT_GET_AUDIENCE_CLIENT_O,{status:s.SUCCESSED},{logSource:e.LogSource.RTC}),this._audience}_onIMStatusChange(t){if(r.debug(`signal server connection state change: ${t}`),e.logger.info(i.L_RTC_CLIENT_CONNECTION_STATE_S,{status:s.SUCCESSED,data:t},{logSource:e.LogSource.RTC}),t===e.ConnectionStatus.CONNECTED){if(this._service.detectorMediaSever(),this._crtRoom instanceof to){this._getJoinedPKRoomList().forEach((e=>{e.__onReconnected()}))}this._crtRoom&&this._crtRoom.__onReconnected()}}_onIMDisconnect(){e.logger.info(i.L_RTC_CLIENT_DISCONNECT_S,{status:s.SUCCESSED},{logSource:e.LogSource.RTC}),r.debug("TODO -> on IM disconnect")}_onIMUninit(){e.logger.info(i.L_RTC_CLIENT_DESTROY_S,{status:s.SUCCESSED},{logSource:e.LogSource.RTC}),r.debug("TODO -> on IM client ondestroy")}leaveRoom(o){var n,a;return t(this,void 0,void 0,(function*(){return e.logger.info(i.L_RTC_CLIENT_LEAVE_ROOM_T,{userId:this._context.getCurrentId(),roomId:null===(n=this._crtRoom)||void 0===n?void 0:n.getRoomId()},{logSource:e.LogSource.RTC}),this._crtRoom?(yield this._crtRoom.__destroy(!0),r.debug(`quitRTCRoom -> userId: ${this._context.getCurrentId()} , roomId: ${this._crtRoom.getRoomId()}`),this._service.detectorMediaSever(),e.logger.info(i.L_RTC_CLIENT_LEAVE_ROOM_R,{status:s.SUCCESSED,userId:this._context.getCurrentId(),roomId:null===(a=this._crtRoom)||void 0===a?void 0:a.getRoomId()},{logSource:e.LogSource.RTC}),this._crtRoom=null,{code:exports.RCRTCCode.SUCCESS}):(e.logger.warn(i.L_RTC_CLIENT_LEAVE_ROOM_R,{status:s.FAILED,code:"",msg:"Room does not exist, whiout leave"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SUCCESS})}))}joinLivingRoomAsAudience(o,n,a){return t(this,void 0,void 0,(function*(){if(e.logger.info(i.L_RTC_CLIENT_JOIN_LIVING_ROOM_AS_AUDIENCE_T,{roomId:o,livingType:n,useMutilPeerC:a},{logSource:e.LogSource.RTC}),this._service.detectorMediaSever(),ht(this._context.getNaviInfo()))return e.logger.error(i.L_RTC_CLIENT_JOIN_LIVING_ROOM_AS_AUDIENCE_R,{status:s.FAILED,code:exports.RCRTCCode.PACKAGE_ENVIRONMENT_ERROR,msg:"navi_url error"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PACKAGE_ENVIRONMENT_ERROR};if(!e.validate("roomId",o,e.notEmptyString,!0)||!e.validate("livingType",n,(e=>e===exports.RCLivingType.AUDIO||e===exports.RCLivingType.VIDEO)))return e.logger.error(i.L_RTC_CLIENT_JOIN_LIVING_ROOM_AS_AUDIENCE_R,{status:s.FAILED,code:exports.RCRTCCode.PACKAGE_ENVIRONMENT_ERROR,msg:"params error -> roomId or livingType"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR};if(this._crtAudienceLivingRoom)return e.logger.error(i.L_RTC_CLIENT_JOIN_LIVING_ROOM_AS_AUDIENCE_R,{status:s.FAILED,code:exports.RCRTCCode.REPERT_JOIN_ROOM,msg:"Join the room repeatedly"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.REPERT_JOIN_ROOM};if(!this._service.getNaviMS().length)return e.logger.error(i.L_RTC_CLIENT_JOIN_LIVING_ROOM_AS_AUDIENCE_R,{status:s.FAILED,code:exports.RCRTCCode.NOT_OPEN_VIDEO_AUDIO_SERVER,msg:"No audio / video server address available"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.NOT_OPEN_VIDEO_AUDIO_SERVER};const{code:t,data:c}=yield this._context.joinLivingRoomAsAudience(o,qt.LIVE,n);if(t!==e.ErrorCode.SUCCESS)return r.error("audienceJoinLivingRoomError:",t),e.logger.error(i.L_RTC_CLIENT_JOIN_LIVING_ROOM_AS_AUDIENCE_R,{status:s.FAILED,code:exports.RCRTCCode.SIGNAL_AUDIENCE_JOIN_ROOM_FAILED,msg:"signal error -> audience join room"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SIGNAL_AUDIENCE_JOIN_ROOM_FAILED};r.info(`joinLivingRoomAsAudience success, room data: ${JSON.stringify(c)}`);const d=ft(),u=new uo(this._context,this._runtime,this._options,o,c,n,a,d);return this._crtAudienceLivingRoom=u,e.logger.info(i.L_RTC_CLIENT_JOIN_LIVING_ROOM_AS_AUDIENCE_R,{status:s.SUCCESSED,roomData:c},{logSource:e.LogSource.RTC}),{room:u,code:exports.RCRTCCode.SUCCESS,userIds:u.getRemoteUserIds(),RTCTracks:u.getRemoteRTCTracks(),MCUTracks:u.getRemoteMCUTracks(),CDNUris:u.getCDNInfo()}}))}leaveLivingRoomAsAudience(r){return t(this,void 0,void 0,(function*(){return e.logger.info(i.L_RTC_CLIENT_LEAVE_LIVING_ROOM_AS_AUDIENCE_T,{roomId:r.getRoomId(),userId:this._context.getCurrentId()},{logSource:e.LogSource.RTC}),this._crtAudienceLivingRoom?this._crtAudienceLivingRoom!==r?(e.logger.error(i.L_RTC_CLIENT_LEAVE_LIVING_ROOM_AS_AUDIENCE_R,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> room"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR}):(yield this._crtAudienceLivingRoom.__destroy(!0),this._crtAudienceLivingRoom=null,e.logger.info(i.L_RTC_CLIENT_LEAVE_LIVING_ROOM_AS_AUDIENCE_R,{status:s.SUCCESSED,roomId:r.getRoomId(),userId:this._context.getCurrentId()},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SUCCESS}):(e.logger.warn(i.L_RTC_CLIENT_LEAVE_LIVING_ROOM_AS_AUDIENCE_R,{status:s.FAILED,code:"",msg:"Room does not exist, whiout leave"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SUCCESS})}))}upgradeToAnchorRoom(o){return t(this,void 0,void 0,(function*(){if(!e.validate("room",o,(()=>o instanceof uo),!0))return e.logger.error(i.L_RTC_CLIENT_UPGRADE_TO_ANCHOR_ROOM_R,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> room"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR};if(e.logger.info(i.L_RTC_CLIENT_UPGRADE_TO_ANCHOR_ROOM_T,{roomId:o.getRoomId(),userId:this._context.getCurrentId()},{logSource:e.LogSource.RTC}),this._crtRoom)return e.logger.error(i.L_RTC_CLIENT_UPGRADE_TO_ANCHOR_ROOM_R,{status:s.FAILED,code:exports.RCRTCCode.REPERT_JOIN_ROOM,msg:"Join the room repeatedly"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.REPERT_JOIN_ROOM};const t=o.getRoomId(),n=this._crtRoom=new to(this._context,this._runtime,t,this._service,this._options,o.livingType,!0,!0,!1,o.getClientSessionId()),a=yield n.__innerInitByIdentityChange();return a!==e.ErrorCode.SUCCESS?(r.warn(`change room identity failed -> code: ${a}`),this._crtRoom=null,e.logger.error(i.L_RTC_CLIENT_UPGRADE_TO_ANCHOR_ROOM_R,{status:s.FAILED,code:exports.RCRTCCode.SIGNAL_ROOM_CHANGE_IDENTITY_FAILED,msg:"Switch identity error"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SIGNAL_ROOM_CHANGE_IDENTITY_FAILED}):(n.once(wr,(()=>{this._crtRoom=null})),yield this._crtAudienceLivingRoom.__destroy(!1),this._crtAudienceLivingRoom=null,{room:n,code:exports.RCRTCCode.SUCCESS,userIds:n.getRemoteUserIds(),tracks:n.getRemoteTracks()})}))}downgradeToAudienceRoom(o){return t(this,void 0,void 0,(function*(){if(e.logger.info(i.L_RTC_CLIENT_DOWNGRADE_TO_AUDIENCE_ROOM_T,{roomId:o._roomId,userId:this._context.getCurrentId()},{logSource:e.LogSource.RTC}),!o.isMainRoom())return r.error("the `downgradeToAudienceRoom` is disabled in PK room"),e.logger.error(i.L_RTC_CLIENT_DOWNGRADE_TO_AUDIENCE_ROOM_R,{status:s.FAILED,code:exports.RCRTCCode.THE_FUNCTION_IS_DISABLED_IN_PKROOM,msg:"method not available in room"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.THE_FUNCTION_IS_DISABLED_IN_PKROOM};if(!e.validate("room._roomId",o._roomId,e.notEmptyString,!0))return e.logger.error(i.L_RTC_CLIENT_DOWNGRADE_TO_AUDIENCE_ROOM_R,{status:s.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> room._roomId"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.PARAMS_ERROR};if(this._crtAudienceLivingRoom)return e.logger.error(i.L_RTC_CLIENT_DOWNGRADE_TO_AUDIENCE_ROOM_R,{status:s.FAILED,code:exports.RCRTCCode.REPERT_JOIN_ROOM,msg:"Join the room repeatedly"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.REPERT_JOIN_ROOM};const{code:t,data:n}=yield this._context.rtcIdentityChange(o._roomId,Yr.AnchorToViewer,o.getLivingType());if(t!==e.ErrorCode.SUCCESS)return r.error("change room identity error",t),e.logger.error(i.L_RTC_CLIENT_DOWNGRADE_TO_AUDIENCE_ROOM_R,{status:s.FAILED,code:exports.RCRTCCode.SIGNAL_ROOM_CHANGE_IDENTITY_FAILED,msg:"Switch identity error"},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SIGNAL_ROOM_CHANGE_IDENTITY_FAILED};r.info(`downgradeToAudienceRoom success, room data: ${JSON.stringify(n)}`),e.logger.info(i.L_RTC_CLIENT_DOWNGRADE_TO_AUDIENCE_ROOM_R,{status:s.SUCCESSED,roomData:n},{logSource:e.LogSource.RTC});const a=o.getClientSessionId(),c=new uo(this._context,this._runtime,this._options,o._roomId,n,o.getLivingType(),!1,a);return this._crtAudienceLivingRoom=c,this._crtRoom.__destroy(!1),this._crtRoom=null,{room:c,code:exports.RCRTCCode.SUCCESS,userIds:c.getRemoteUserIds(),RTCTracks:c.getRemoteRTCTracks(),MCUTracks:c.getRemoteMCUTracks(),CDNUris:c.getCDNInfo()}}))}getJoinedRoomInfo(){return t(this,void 0,void 0,(function*(){const{code:t,data:o}=yield this._context.getRTCJoinedUserInfo(this._context.getCurrentId());return t!==e.ErrorCode.SUCCESS?(r.error("getJoinedUserInfo error",t),e.logger.error(i.L_RTC_CLIENT_GET_JOINED_ROOM_INFO_O,{status:s.FAILED,code:t,msg:"Switch identity error"},{logSource:e.LogSource.RTC}),{code:t}):(e.logger.info(i.L_RTC_CLIENT_GET_JOINED_ROOM_INFO_O,{status:s.SUCCESSED,roomInfo:o},{logSource:e.LogSource.RTC}),{code:exports.RCRTCCode.SUCCESS,data:o})}))}}var Ro;exports.RCKickReason=void 0,(Ro=exports.RCKickReason||(exports.RCKickReason={}))[Ro.SERVER_KICK=1]="SERVER_KICK",Ro[Ro.OTHER_KICK=2]="OTHER_KICK";const Co="rtcRJoin_data",po="rtcRExit",ho="rtcRInfo",go="rtcUData",To="rtcUDel",mo="rtcSetData",So="userSetData",Io="rtcQryData",Eo="rtcDelData",fo="rtcToken",Lo="rtcUserState",vo="rtcUList",Oo="viewerJoinR",Ao="viewerExitR",No="rtcPullKv",Do="rtcIdentityChange",ko="rtcInvite",yo="rtcCancelInvite",bo="rtcInviteAnswer",Uo="rtcEndInvite",Po="rtcQueryJoined";var Mo;!function(e){e.RtcInput="RtcInput",e.RtcUserListOutput="RtcUserListOutput",e.SetUserStatusInput="SetUserStatusInput",e.RtcSetDataInput="RtcSetDataInput",e.RtcUserSetDataInput="RtcUserSetDataInput",e.RtcDataInput="RtcDataInput",e.RtcSetOutDataInput="RtcSetOutDataInput",e.MCFollowInput="MCFollowInput",e.RtcTokenOutput="RtcTokenOutput",e.RtcQryOutput="RtcQryOutput",e.RtcQryUserOutDataInput="RtcQryUserOutDataInput",e.RtcUserOutDataOutput="RtcUserOutDataOutput",e.RtcQueryListInput="RtcQueryListInput",e.RtcRoomInfoOutput="RtcRoomInfoOutput",e.RtcValueInfo="RtcValueInfo",e.RtcKeyDeleteInput="RtcKeyDeleteInput",e.RtcNotifyMsg="RtcNotifyMsg",e.RtcPullKV="RtcPullKV",e.RtcKVOutput="RtcKVOutput",e.RtcQueryUserJoinedInput="RtcQueryUserJoinedInput",e.RtcQueryUserJoinedOutput="RtcQueryUserJoinedOutput",e.RtcViewerJoinedOutput="RtcViewerJoinedOutput",e.RtcInviteInput="RtcInviteInput",e.RtcCancelInviteInput="RtcCancelInviteInput",e.RtcInviteAnswerInput="RtcInviteAnswerInput",e.RtcEndInviteInput="RtcEndInviteInput"}(Mo||(Mo={}));const xo={[Mo.RtcInput]:["roomType","broadcastType","extraInnerData","needSysChatroom","identityChangeType","joinType","innerDatas","outerDatas"],[Mo.RtcUserListOutput]:["users","token","sessionId","roomInfo"],[Mo.SetUserStatusInput]:["status"],[Mo.RtcSetDataInput]:["interior","target","key","value","objectName","content"],[Mo.RtcUserSetDataInput]:["valueInfo","objectName","content"],[Mo.RtcDataInput]:["interior","target","key","objectName","content"],[Mo.RtcSetOutDataInput]:["target","valueInfo","objectName","content"],[Mo.MCFollowInput]:["state"],[Mo.RtcTokenOutput]:["rtcToken"],[Mo.RtcQryOutput]:["outInfo"],[Mo.RtcQryUserOutDataInput]:["userId"],[Mo.RtcUserOutDataOutput]:["user"],[Mo.RtcQueryListInput]:["order"],[Mo.RtcRoomInfoOutput]:["roomId","roomData","userCount","list"],[Mo.RtcValueInfo]:["key","value"],[Mo.RtcKeyDeleteInput]:["key"],[Mo.RtcNotifyMsg]:["type","time","roomId"],[Mo.RtcPullKV]:["timestamp","roomId"],[Mo.RtcKVOutput]:["entries","bFullUpdate","syncTime"],[Mo.RtcQueryUserJoinedInput]:["userId"],[Mo.RtcQueryUserJoinedOutput]:["info"],[Mo.RtcInviteInput]:["invitedUserId","timeoutTime","invitedRoomId","inviteInfo","inviteSessionId"],[Mo.RtcCancelInviteInput]:["invitedUserId","invitedRoomId","inviteInfo","inviteSessionId"],[Mo.RtcInviteAnswerInput]:["inviteUserId","answerCode","inviteRoomId","inviteSessionId","content","key","value"],[Mo.RtcEndInviteInput]:["inviteRoomId","inviteSessionId","inviteContent","inviteRoomKeys"]},wo=`\npackage Modules;\nmessage probuf {\n enum JoinType {\n KICK = 0; //踢前一个设备\n REFUSE = 1; //当前加入拒绝\n COEXIST = 2; //两个设备共存\n }\n enum targetType {\n ROOM =1 ;\n PERSON = 2;\n }\n message ${Mo.SetUserStatusInput}\n {\n optional int32 status=1;\n }\n message ${Mo.MCFollowInput}\n {\n required string state = 1;\n }\n message ${Mo.RtcQueryListInput}{\n optional int32 order=1;\n }\n message ${Mo.RtcKeyDeleteInput}{\n repeated string key=1;\n }\n message ${Mo.RtcValueInfo}{\n required string key=1;\n required string value=2;\n }\n message RtcUserInfo{\n required string userId=1;\n repeated ${Mo.RtcValueInfo} userData=2; //用户资源信息\n }\n message ${Mo.RtcUserListOutput}{\n repeated RtcUserInfo users=1;\n optional string token=2;\n optional string sessionId=3;\n repeated RtcValueInfo roomInfo = 4; //房间key value\n repeated RtcKVEntity entries = 5;//直播KV属性对象集合\n optional int64 syncTime = 6;//所有属性的最大时间戳(下次拉取KV时用)。\n optional int32 offlineKickTime = 7;//server超时踢人时间,默认60s\n }\n message RtcRoomInfoOutput{\n optional string roomId = 1;\n repeated ${Mo.RtcValueInfo} roomData = 2;\n optional int32 userCount = 3;\n repeated RtcUserInfo list=4;\n }\n message ${Mo.RtcInput}{\n required int32 roomType=1;\n optional int32 broadcastType=2;\n optional RtcValueInfo extraInnerData = 3;\n optional bool needSysChatroom = 4; //是否需要同步聊天室\n optional IdentityChangeType identityChangeType = 5; //身份变更类型\n optional JoinType joinType = 6; // 加入房间类型\n repeated ${Mo.RtcValueInfo} innerDatas = 7; //用户内部inner数据,角色或者连麦信息等\n repeated ${Mo.RtcValueInfo} outerDatas = 8; //用户内部outer数据,自定义数据结构RtcInput。\n }\n message ${Mo.RtcQryOutput}{\n repeated ${Mo.RtcValueInfo} outInfo=1;\n }\n message ${Mo.RtcDataInput}{\n required bool interior=1;\n required targetType target=2;\n repeated string key=3;\n optional string objectName=4;\n optional string content=5;\n }\n message ${Mo.RtcSetDataInput}{\n required bool interior=1;\n required targetType target=2;\n required string key=3;\n required string value=4;\n optional string objectName=5;\n optional string content=6;\n }\n message ${Mo.RtcUserSetDataInput} {\n repeated ${Mo.RtcValueInfo} valueInfo = 1;\n required string objectName = 2;\n repeated ${Mo.RtcValueInfo} content = 3;\n }\n message RtcQryInput{\n required bool isInterior=1;\n required targetType target=2;\n repeated string key=3;\n }\n message RtcDelDataInput{\n repeated string key=1;\n required bool isInterior=2;\n required targetType target=3;\n }\n message RtcOutput\n {\n optional int32 nothing=1;\n }\n message ${Mo.RtcTokenOutput}{\n required string rtcToken=1;\n }\n message ${Mo.RtcSetOutDataInput}{\n required targetType target=1;\n repeated ${Mo.RtcValueInfo} valueInfo=2;\n optional string objectName=3;\n optional string content=4;\n }\n message ${Mo.RtcQryUserOutDataInput}{\n repeated string userId = 1;\n }\n message ${Mo.RtcUserOutDataOutput}{\n repeated RtcUserInfo user = 1;\n }\n message ${Mo.RtcNotifyMsg} \n {\n required int32 type= 1; //(通知类型 1:rtc房间状态KV变更通知)\n optional int64 time= 2; //消息产生时间\n optional string roomId=3; //主播房间id\n }\n message ${Mo.RtcPullKV}\n {\n required int64 timestamp = 1;\n required string roomId = 2;\n }\n message RtcKVEntity \n {\n required string key = 1;\n required string value = 2;\n optional int32 status = 3;\n optional int64 timestamp = 4;\n optional string uid = 5;\n }\n message ${Mo.RtcKVOutput}\n {\n repeated RtcKVEntity entries = 1;\n optional bool bFullUpdate = 2;\n optional int64 syncTime = 3; \n }\n enum IdentityChangeType \n {\n AnchorToViewer = 1; //1为主播变观众\n ViewerToAnchor = 2; //2为观众变主播\n }\n message ${Mo.RtcQueryUserJoinedInput}\n {\n required string userId = 1;\n }\n message RtcJoinedInfo\n {\n required string deviceId = 1; //设备ID\n required string roomId = 2; //加入的房间ID\n optional int64 joinTime = 3; //加入的时间\n }\n message ${Mo.RtcQueryUserJoinedOutput}\n {\n repeated RtcJoinedInfo info = 1;\n }\n message ${Mo.RtcViewerJoinedOutput}\n {\n required string rtcToken=1;\n repeated RtcKVEntity entries = 2;//KV属性对象集合\n optional int64 syncTime = 3;//所有属性的最大时间戳(下次拉取KV时用)。\n }\n message ${Mo.RtcInviteInput}\n {\n required string invitedUserId=1; //被邀请的人的uid\n optional int32 timeoutTime=2; //邀请超时时间(秒),默认三十秒\n required string invitedRoomId=3; //被邀请的房间\n required string inviteInfo=4; //邀请的信息(包含邀请人,被邀请人,各自userid)客户端定义好.协议栈和server透传\n required string inviteSessionId= 5; //客户端保证唯一性(建议roomid_userid_时间戳_随机数)\n }\n message ${Mo.RtcCancelInviteInput}\n {\n required string invitedUserId=1; //被邀请的人的uid\n required string invitedRoomId=2; //被邀请的房间\n required string inviteInfo=3; //取消邀请的信息(包含邀请人,被邀请人,各自userid)客户端定义好.协议栈和server透传\n required string inviteSessionId=4; //邀请的sessionId,客户端发起邀请时产生\n }\n message ${Mo.RtcInviteAnswerInput}\n {\n required string inviteUserId=1; //邀请的人的uid\n required int32 answerCode=2; //是否接受连麦邀请.0为拒绝,1为接受\n required string inviteRoomId=3; //邀请的房间\n required string inviteSessionId=4; //邀请的sessionId\n required string content=5; //需要转发的content\n optional string key=6; //如果接受的话,需要加这个字段,放在room级别的k和v,新加入房间的能拉取到\n optional string value=7; //如果接受的话,需要加这个字段,放在room级别的k和v,新加入房间的能拉取到\n }\n message ${Mo.RtcEndInviteInput}\n {\n required string inviteRoomId=1; //邀请的房间\n required string inviteSessionId=2; //邀请的sessionId\n required string inviteContent=3; //结束连麦的信息(需要透传给房间内其他人)\n repeated string inviteRoomKeys=4; //需要删除连麦的信息的key\n }\n}\n`,Bo=(e,t,r,o,i,s)=>{const n=i?Object.keys(i).map((t=>e.encode(Mo.RtcValueInfo,{key:t,value:i[t]},!0))):void 0,a=s?Object.keys(s).map((t=>e.encode(Mo.RtcValueInfo,{key:t,value:s[t]},!0))):void 0;return e.encode(Mo.RtcInput,{roomType:t,broadcastType:r,joinType:o,innerDatas:n,outerDatas:a})},Vo=(t,r)=>{const o=t.decode(Mo.RtcUserListOutput,r),{users:i,token:s,sessionId:n,roomInfo:a,entries:c,offlineKickTime:d}=o,u={};return e.forEach(i,(t=>{const{userId:r,userData:o}=t,i={};e.forEach(o,(e=>{const{key:t,value:r}=e;i[t]=r})),u[r]=i})),{users:u,token:s,sessionId:n,roomInfo:a,kvEntries:c,offlineKickTime:d}};class $o{constructor(e,t){this.context=e,this.codec=t}joinRTCRoom(r,o,i,s,n,a){return t(this,void 0,void 0,(function*(){const t=Bo(this.codec,o,i,s,n,a),{code:c,buffer:d}=yield this.context.rtcSignaling(r,Co,!0,t);let u;return c===e.ErrorCode.SUCCESS&&d&&(u=Vo(this.codec,d)),{code:c,data:u}}))}quitRTCRoom(e){return t(this,void 0,void 0,(function*(){const t=this.codec.encode(Mo.SetUserStatusInput,{status:0}),{code:r}=yield this.context.rtcSignaling(e,po,!0,t);return r}))}getRTCRoomInfo(r){return t(this,void 0,void 0,(function*(){const t=this.codec.encode(Mo.RtcQueryListInput,{order:2}),{code:o,buffer:i}=yield this.context.rtcSignaling(r,ho,!0,t);let s;return o===e.ErrorCode.SUCCESS&&i&&(s=this.codec.decode(Mo.RtcRoomInfoOutput,i)),{code:o,data:s}}))}getRTCUserInfoList(r){return t(this,void 0,void 0,(function*(){const t=this.codec.encode(Mo.RtcQueryListInput,{order:2}),{code:o,buffer:i}=yield this.context.rtcSignaling(r,go,!0,t);let s;if(o===e.ErrorCode.SUCCESS&&i){s={users:Vo(this.codec,i).users}}return{code:o,data:s}}))}getRTCUserInfo(e){throw new Error("Method not implemented.")}removeRTCUserInfo(e,r){return t(this,void 0,void 0,(function*(){const t=this.codec.encode(Mo.RtcKeyDeleteInput,{key:r}),{code:o}=yield this.context.rtcSignaling(e,To,!1,t);return o}))}setRTCData(e,r,o,i,s,n){return t(this,void 0,void 0,(function*(){const t=this.codec.encode(Mo.RtcSetDataInput,{interior:i,target:s,key:r,value:o,objectName:null==n?void 0:n.name,content:null==n?void 0:n.content}),{code:a}=yield this.context.rtcSignaling(e,mo,!1,t);return a}))}setRTCTotalRes(e,r,o,i,s,n){return t(this,void 0,void 0,(function*(){const t={objectName:i,content:this.codec.encode(Mo.RtcValueInfo,{key:r.name,value:r.content},!0),valueInfo:[this.codec.encode(Mo.RtcValueInfo,{key:"uris",value:o},!0)]};s&&t.valueInfo.push(this.codec.encode(Mo.RtcValueInfo,{key:"mcu_uris",value:s},!0)),n&&t.valueInfo.push(this.codec.encode(Mo.RtcValueInfo,{key:"cdn_uris",value:n},!0));const a=this.codec.encode(Mo.RtcUserSetDataInput,t),{code:c}=yield this.context.rtcSignaling(e,So,!0,a);return c}))}setRTCCDNUris(e,r,o){return t(this,void 0,void 0,(function*(){const t=this.codec.encode(Mo.RtcUserSetDataInput,{objectName:r,valueInfo:this.codec.encode(Mo.RtcValueInfo,{key:"cdn_uris",value:o},!0)}),{code:i}=yield this.context.rtcSignaling(e,So,!0,t);return i}))}getRTCData(r,o,i,s){return t(this,void 0,void 0,(function*(){const t=this.codec.encode(Mo.RtcDataInput,{interior:i,target:s,key:o}),{code:n,buffer:a}=yield this.context.rtcSignaling(r,Io,!0,t);if(n!==e.ErrorCode.SUCCESS||!a)return{code:n};const{outInfo:c}=this.codec.decode(Mo.RtcQryOutput,a),d={};return c.forEach((e=>{d[e.key]=e.value})),{code:n,data:d}}))}removeRTCData(e,r,o,i,s){return t(this,void 0,void 0,(function*(){const t=this.codec.encode(Mo.RtcDataInput,{interior:o,target:i,key:r,objectName:null==s?void 0:s.name,content:null==s?void 0:s.content}),{code:n}=yield this.context.rtcSignaling(e,Eo,!1,t);return n}))}setRTCOutData(e,r,o,i){return t(this,void 0,void 0,(function*(){throw new Error("JSEngine's method not implemented.")}))}getRTCOutData(e,r){return t(this,void 0,void 0,(function*(){throw new Error("JSEngine's method not implemented.")}))}getRTCToken(r,o,i){return t(this,void 0,void 0,(function*(){const t=Bo(this.codec,o,i),{code:s,buffer:n}=yield this.context.rtcSignaling(r,fo,!0,t);if(s!==e.ErrorCode.SUCCESS||!n)return{code:s};const{rtcToken:a}=this.codec.decode(Mo.RtcTokenOutput,n);return{code:s,data:{rtcToken:a}}}))}setRTCState(e,r){return t(this,void 0,void 0,(function*(){const t=this.codec.encode(Mo.MCFollowInput,{state:r}),{code:o}=yield this.context.rtcSignaling(e,Lo,!0,t);return o}))}getRTCUserList(r){return t(this,void 0,void 0,(function*(){const t=this.codec.encode(Mo.RtcQueryListInput,{order:2}),{code:o,buffer:i}=yield this.context.rtcSignaling(r,vo,!0,t);if(o!==e.ErrorCode.SUCCESS||!i)return{code:o};return{code:o,data:Vo(this.codec,i)}}))}joinLivingRoomAsAudience(r,o,i){return t(this,void 0,void 0,(function*(){const t=Bo(this.codec,o,i),{code:s,buffer:n}=yield this.context.rtcSignaling(r,Oo,!0,t);if(s!==e.ErrorCode.SUCCESS||!n)return{code:s};const{rtcToken:a,entries:c}=this.codec.decode(Mo.RtcViewerJoinedOutput,n);return{code:s,data:{token:a,kvEntries:c}}}))}quitLivingRoomAsAudience(e){return t(this,void 0,void 0,(function*(){const t=this.codec.encode(Mo.SetUserStatusInput,{status:0}),{code:r}=yield this.context.rtcSignaling(e,Ao,!0,t);return r}))}rtcIdentityChange(r,o,i){return t(this,void 0,void 0,(function*(){const t=this.codec.encode(Mo.RtcInput,{roomType:qt.LIVE,broadcastType:i,identityChangeType:o,needSysChatroom:!1}),{code:s,buffer:n}=yield this.context.rtcSignaling(r,Do,!0,t);if(s!==e.ErrorCode.SUCCESS||!n)return{code:s};return{code:s,data:Vo(this.codec,n)}}))}requestRoomPK(e){return t(this,void 0,void 0,(function*(){const{invitedRoomId:t,invitedUserId:r,inviteSessionId:o,inviteTimeout:i,inviteInfo:s,roomId:n}=e,a=this.codec.encode(Mo.RtcInviteInput,{invitedRoomId:t,invitedUserId:r,inviteSessionId:o,timeoutTime:i,inviteInfo:s}),{code:c}=yield this.context.rtcSignaling(n,ko,!0,a);return c}))}cancelRoomPK(e){return t(this,void 0,void 0,(function*(){const{invitedRoomId:t,invitedUserId:r,inviteSessionId:o,inviteInfo:i,roomId:s}=e,n=this.codec.encode(Mo.RtcCancelInviteInput,{invitedRoomId:t,invitedUserId:r,inviteSessionId:o,inviteInfo:i}),{code:a}=yield this.context.rtcSignaling(s,yo,!0,n);return a}))}responseRoomPK(e){return t(this,void 0,void 0,(function*(){const{inviteUserId:t,inviteRoomId:r,inviteSessionId:o,content:i,key:s,value:n,agree:a,roomId:c}=e,d=this.codec.encode(Mo.RtcInviteAnswerInput,{inviteUserId:t,inviteRoomId:r,inviteSessionId:o,content:i,key:s,value:n,answerCode:a?1:0}),{code:u}=yield this.context.rtcSignaling(c,bo,!0,d);return u}))}endRoomPK(e){return t(this,void 0,void 0,(function*(){const{endRoomId:t,sessionId:r,content:o,keys:i,roomId:s}=e,n=this.codec.encode(Mo.RtcEndInviteInput,{inviteRoomId:t,inviteSessionId:r,inviteContent:o,inviteRoomKeys:i}),{code:a}=yield this.context.rtcSignaling(s,Uo,!0,n);return a}))}getRTCJoinedUserInfo(r){return t(this,void 0,void 0,(function*(){const t=this.codec.encode(Mo.RtcQueryUserJoinedInput,{userId:r}),{code:o,buffer:i}=yield this.context.rtcSignaling("",Po,!0,t);if(o!==e.ErrorCode.SUCCESS||!i)return{code:o};return{code:o,data:(this.codec.decode(Mo.RtcQueryUserJoinedOutput,i).info||[]).map((e=>({deviceId:e.deviceId,roomId:e.roomId,joinTime:mt(e.joinTime)})))}}))}pullRTCRoomEntry(r){return t(this,void 0,void 0,(function*(){const t=this.codec.encode(Mo.RtcPullKV,{timestamp:0,roomId:r}),{code:o,buffer:i}=yield this.context.rtcSignaling(r,No,!0,t);if(o!==e.ErrorCode.SUCCESS)return{code:o};const s=this.codec.decode(Mo.RtcKVOutput,i);let{entries:n,syncTime:a}=s;return n=(n||[]).map((e=>Object.assign(Object.assign({},e),{timestamp:mt(e.timestamp)}))),{code:o,data:{kvEntries:n,syncTime:mt(a)}}}))}decodeRtcNotify(e){const{time:t,type:r,roomId:o}=this.codec.decode(Mo.RtcNotifyMsg,e);return{time:mt(t),type:r,roomId:o}}getCurrentId(){return this.context.getCurrentId()}getNaviInfo(){return this.context.getNaviInfo()}getConnectionStatus(){return this.context.getConnectionStatus()}getAppkey(){return this.context.getAppkey()}rtcPing(e,t,r){return this.context.rtcPing(e,t,r)}sendMessage(e,t,r){return this.context.sendMessage(e,t,r)}registerRTCSignalListener(e){this.context.registerRTCSignalListener(e)}registerConnectionStateChangeListener(e){this.context.onconnectionstatechange=e}registerDisconnectListener(e){this.context.ondisconnect=e}registerDestroyListener(e){this.context.ondestroy=e}registerMessageListener(e){this.context.onmessage=e}getCoreVersion(){return this.context.getCoreVersion()}getPluginContext(){return this.context}}const Fo={tag:"RCRTC",verify:t=>"browser"!==t.tag?(r.error(`RCRTC Plugin is not support the runtime '${t.tag}'`),!1):Ze?(e.VersionManage.add("plugin-rtc","5.5.6"),!!e.VersionManage.validEngine("^5.5.1")||(r.error(`The current engine version '${e.VersionManage.getInfo().engine}' error, plugin-rtc required engine version at least '^5.5.1'.`),!1)):(r.error("Please use the https protocol or use `http://localhost` to open the page!"),!1),setup(t,o,i={}){var s,n,a,c,d,u,_,l;return r.setLogLevel(i.logLevel),r.setLogStdout(i.logStdout),r.warn("RCRTC Version: 5.5.6, Commit: bdde7363c1a0707e32aa8e4383c0ab3796755c6c"),r.warn(`browserInfo.browser -> ${lt.browser}`),r.warn(`browserInfo.supportsUnifiedPlan -> ${lt.supportsUnifiedPlan}`),r.warn(`browserInfo.version -> ${lt.version}`),e.assert("options.mediaServer",i.mediaServer,(t=>!(!e.isHttpUrl(t)||"https:"===location.protocol&&!/^https/.test(t)))),e.assert("options.timeout",i.timeout,(t=>e.isNumber(t)&&t>=5e3&&t<=3e4)),e.assert("options.pingGap",i.pingGap,(t=>e.isNumber(t)&&t>=3e3&&t<=1e4)),(null==i?void 0:i.audio)&&((null===(s=i.audio)||void 0===s?void 0:s.workletModule)&&(Me.workletModule=null===(n=i.audio)||void 0===n?void 0:n.workletModule),(null===(a=i.audio)||void 0===a?void 0:a.workletWasm)&&(Me.workletWasm=null===(c=i.audio)||void 0===c?void 0:c.workletWasm),(null===(d=i.audio)||void 0===d?void 0:d.workletModule)&&(null===(u=i.audio)||void 0===u?void 0:u.workletWasm)&&(Me.isOpen=!0),void 0!==(null===(_=i.audio)||void 0===_?void 0:_.isOpen)&&(Me.isOpen=null===(l=i.audio)||void 0===l?void 0:l.isOpen)),new lo(new $o(t,t.createCodec(xo,wo)),o,i)}},Go={transResolution:ct,transFrameRate:_t,parseTrackId:ot,ifSupportLocalFileTrack:Rt,ifSupportScreenShare:Ct};exports.RCAbstractRoom=Br,exports.RCAudienceClient=so,exports.RCAudienceLivingRoom=uo,exports.RCCameraVideoTrack=Ke,exports.RCLivingRoom=to,exports.RCLocalAudioTrack=we,exports.RCLocalFileAudioTrack=Fe,exports.RCLocalFileTrack=Ve,exports.RCLocalFileVideoTrack=$e,exports.RCLocalTrack=xe,exports.RCLocalVideoTrack=Be,exports.RCMCUConfigBuilder=jr,exports.RCMediaStreamCapture=_o,exports.RCMicphoneAudioTrack=Ge,exports.RCRTCClient=lo,exports.RCRTCRoom=ro,exports.RCRemoteAudioTrack=We,exports.RCRemoteTrack=Je,exports.RCRemoteVideoTrack=qe,exports.RCScreenAudioTrack=je,exports.RCScreenVideoTrack=He,exports.RCTag={DEFAULT:"RongCloudRTC"},exports.RCTrack=ye,exports.device=Ne,exports.helper=Go,exports.installer=Fo;
|
|
15
|
+
***************************************************************************** */function o(e,t,i,r){return new(i||(i=Promise))((function(o,n){function s(e){try{d(r.next(e))}catch(e){n(e)}}function a(e){try{d(r.throw(e))}catch(e){n(e)}}function d(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(s,a)}d((r=r.apply(e,t||[])).next())}))}exports.RCRTCCode=void 0,(e=exports.RCRTCCode||(exports.RCRTCCode={}))[e.SUCCESS=1e4]="SUCCESS",e[e.PB_ERROR=40001]="PB_ERROR",e[e.SIGNAL_DISCONNECTED=5e4]="SIGNAL_DISCONNECTED",e[e.PARAMS_ERROR=50001]="PARAMS_ERROR",e[e.REPERT_JOIN_ROOM=50002]="REPERT_JOIN_ROOM",e[e.NOT_IN_ROOM=50003]="NOT_IN_ROOM",e[e.SERVICE_INVALID=50004]="SERVICE_INVALID",e[e.RTC_TOKEN_INVALID=50006]="RTC_TOKEN_INVALID",e[e.SIGNAL_ERROR=53001]="SIGNAL_ERROR",e[e.CREATE_OFFER_FAILED=53003]="CREATE_OFFER_FAILED",e[e.REQUEST_FAILED=53004]="REQUEST_FAILED",e[e.MCU_SERVER_NOT_FOUND=53005]="MCU_SERVER_NOT_FOUND",e[e.BROADCAST_SUB_LIST_NOT_EMPTY=53007]="BROADCAST_SUB_LIST_NOT_EMPTY",e[e.ROOM_HAS_BEEN_DESTROYED=53008]="ROOM_HAS_BEEN_DESTROYED",e[e.NOT_OPEN_VIDEO_AUDIO_SERVER=53009]="NOT_OPEN_VIDEO_AUDIO_SERVER",e[e.GET_USER_MEDIA_FAILED=53010]="GET_USER_MEDIA_FAILED",e[e.GET_DISPLAY_MEDIA_FAILED=53011]="GET_DISPLAY_MEDIA_FAILED",e[e.BROWSER_PERMISSION_DENIED=53012]="BROWSER_PERMISSION_DENIED",e[e.CREATE_CUSTOM_TRACK_FAILED=53013]="CREATE_CUSTOM_TRACK_FAILED",e[e.INVALID_TAGS=53014]="INVALID_TAGS",e[e.INVALID_USER_ID=53015]="INVALID_USER_ID",e[e.CREATE_FILE_TRACK_FAILED=53016]="CREATE_FILE_TRACK_FAILED",e[e.INVALID_FILE_INSTANCE=53017]="INVALID_FILE_INSTANCE",e[e.SET_REMOTE_DESCRIPTION_FAILED=53018]="SET_REMOTE_DESCRIPTION_FAILED",e[e.BROWSER_NOT_SUPPORT=53019]="BROWSER_NOT_SUPPORT",e[e.TRACK_NOT_READY=53020]="TRACK_NOT_READY",e[e.VIDEO_TRACK_MISS_MEDIA_ELEMENT=53021]="VIDEO_TRACK_MISS_MEDIA_ELEMENT",e[e.TRACK_PLAY_ERROR=53022]="TRACK_PLAY_ERROR",e[e.SIGNAL_AUDIENCE_JOIN_ROOM_FAILED=53023]="SIGNAL_AUDIENCE_JOIN_ROOM_FAILED",e[e.SIGNAL_ROOM_CHANGE_IDENTITY_FAILED=53024]="SIGNAL_ROOM_CHANGE_IDENTITY_FAILED",e[e.PACKAGE_ENVIRONMENT_ERROR=53025]="PACKAGE_ENVIRONMENT_ERROR",e[e.PUBLISH_TRACK_LIMIT_EXCEEDED=53026]="PUBLISH_TRACK_LIMIT_EXCEEDED",e[e.CDN_RESOURCE_IS_EMPTY=53027]="CDN_RESOURCE_IS_EMPTY",e[e.SIGNAL_JOIN_RTC_ROOM_REFUSED=53028]="SIGNAL_JOIN_RTC_ROOM_REFUSED",e[e.NO_PERMISSION_TO_USE_REQUESTED_DEVICE=53029]="NO_PERMISSION_TO_USE_REQUESTED_DEVICE",e[e.THE_FUNCTION_IS_DISABLED_IN_PKROOM=53030]="THE_FUNCTION_IS_DISABLED_IN_PKROOM",e[e.SOME_TRACKS_PUBLISH_FAILED=53031]="SOME_TRACKS_PUBLISH_FAILED",e[e.MAC_IN_ELECTRON_NOT_SUPPORT_SCREEN_SHARE_WITH_AUDIO=53032]="MAC_IN_ELECTRON_NOT_SUPPORT_SCREEN_SHARE_WITH_AUDIO",e[e.JWT_TIME_OUT=1004]="JWT_TIME_OUT",e[e.SYSTEM_PERMISSION_DENIED=53033]="SYSTEM_PERMISSION_DENIED",e[e.PUBLISH_TRACKS_IS_INVALID=53034]="PUBLISH_TRACKS_IS_INVALID",function(e){e.L_INDEX_INSTALL_RTC_PLUGIN_O="L-index_install_rtc_plugin-O",e.L_RTC_CLIENT_IM_CONNECTION_STATE_S="L-rtc_client_im_connection_state-S",e.L_RTC_CLIENT_IM_DISCONNECT_S="L-rtc_client_im_disconnect-S",e.L_RTC_CLIENT_MESSAGE_O="L-rtc_client_message-O",e.L_RTC_CLIENT_DESTROY_S="L-rtc_client_destroy-S",e.L_RTC_CLIENT_JOIN_RTC_ROOM_T="L-rtc_client_join_rtc_room-T",e.L_RTC_CLIENT_JOIN_RTC_ROOM_R="L-rtc_client_join_rtc_room-R",e.L_RTC_CLIENT_JOIN_LIVING_ROOM_T="L-rtc_client_join_living_room-T",e.L_RTC_CLIENT_JOIN_LIVING_ROOM_R="L-rtc_client_join_living_room-R",e.L_RTC_CLIENT_GET_AUDIENCE_CLIENT_O="L-rtc_client_get_audience_client-O",e.L_RTC_CLIENT_LEAVE_ROOM_T="L-rtc_client_leave_room-T",e.L_RTC_CLIENT_LEAVE_ROOM_R="L-rtc_client_leave_room-R",e.L_RTC_CLIENT_CREATE_MICROPHONE_AUDIO_TRACK_O="L-rtc_client_create_microphone_audio_track-O",e.L_RTC_CLIENT_CREATE_CAMERA_VIDEO_TRACK_O="L-rtc_client_create_camera_video_track-O",e.L_RTC_CLIENT_CREATE_MICROPHONE_AND_CAMERA_TRACKS_O="L-rtc_client_create_microphone_and_camera_tracks-O",e.L_RTC_CLIENT_CREATE_SCREEN_VIDEO_TRACK_O="L-rtc_client_create_screen_video_track-O",e.L_RTC_CLIENT_CREATE_SCREEN_VIDEO_AND_AUDIO_TRACKS_O="L-rtc_client_create_screen_video_and_audio_tracks-O",e.L_RTC_CLIENT_CREATE_LOCAL_AUDIO_TRACK_O="L-rtc_client_create_local_audio_track-O",e.L_RTC_CLIENT_CREATE_LOCAL_VIDEO_TRACK_O="L-rtc_client_create_local_video_track-O",e.L_RTC_CLIENT_CREATE_LOCAL_FILE_TRACKS_O="L-rtc_client_create_local_file_tracks-O",e.L_RTC_CLIENT_CREATE_LOCAL_TRACKS_O="L-rtc_client_create_local_tracks-O",e.L_RTC_CLIENT_JOIN_LIVING_ROOM_AS_AUDIENCE_T="L-rtc_client_join_living_room_as_audience-T",e.L_RTC_CLIENT_JOIN_LIVING_ROOM_AS_AUDIENCE_R="L-rtc_client_join_living_room_as_audience_R",e.L_RTC_CLIENT_LEAVE_LIVING_ROOM_AS_AUDIENCE_T="L-rtc_client_leave_living_room_as_audience-T",e.L_RTC_CLIENT_LEAVE_LIVING_ROOM_AS_AUDIENCE_R="L-rtc_client_leave_living_room_as_audience-R",e.L_RTC_CLIENT_UPGRADE_TO_ANCHOR_ROOM_T="L-rtc_client_upgrade_to_anchor_room-T",e.L_RTC_CLIENT_UPGRADE_TO_ANCHOR_ROOM_R="L-rtc_client_upgrade_to_anchor_room-R",e.L_RTC_CLIENT_DOWNGRADE_TO_AUDIENCE_ROOM_T="L-rtc_client_downgrade_to_audience_room-T",e.L_RTC_CLIENT_DOWNGRADE_TO_AUDIENCE_ROOM_R="L-rtc_client_downgrade_to_audience_room-R",e.L_RTC_CLIENT_GET_JOINED_ROOM_INFO_T="L-rtc_client_get_joined_room_info-T",e.L_RTC_CLIENT_GET_JOINED_ROOM_INFO_R="L-rtc_client_get_joined_room_info-R",e.L_AUDIENCE_CLIENT_SUBSCRIBE_T="L-audinence_client_subscribe-T",e.L_AUDIENCE_CLIENT_SUBSCRIBE_R="L-audinence_client_subscribe-R",e.L_AUDIENCE_CLIENT_UNSUBSCRIBE_T="L-audinence_client_unsubscribe-T",e.L_AUDIENCE_CLIENT_UNSUBSCRIBE_R="L-audinence_client_unsubscribe-R",e.L_PINGER_START_O="L-pinger_start-O",e.L_PINGER_STOP_O="L-pinger_stop-O",e.L_PINGER_SEND_RTCPING_T="L-pinger_send_rtcping-T",e.L_PINGER_SEND_RTCPING_R="L-pinger_send_rtcping-R",e.L_ABSTRACT_ROOM_SEND_MESSAGE_T="L-abstract_room_send_message-T",e.L_ABSTRACT_ROOM_SEND_MESSAGE_R="L-abstract_room_send_message-R",e.L_ABSTRACT_ROOM_SET_ROOM_ATTRIBUTE_T="L-abstract_room_set_room_attribute-T",e.L_ABSTRACT_ROOM_SET_ROOM_ATTRIBUTE_R="L-abstract_room_set_room_attribute_R",e.L_ABSTRACT_ROOM_DELETE_ROOM_ATTRIBUTE_T="L-abstract_room_delete_room_attribute_T",e.L_ABSTRACT_ROOM_DELETE_ROOM_ATTRIBUTE_R="L-abstract_room_delete_room_attribute_R",e.L_ABSTRACT_ROOM_GET_ROOM_ATTRIBUTE_T="L-abstract_room_get_room_attribute_T",e.L_ABSTRACT_ROOM_GET_ROOM_ATTRIBUTE_R="L-abstract_room_get_room_attribute_R",e.L_ABSTRACT_ROOM_PUBLISH_T="L-abstract_room_publish-T",e.L_ABSTRACT_ROOM_PUBLISH_R="L-abstract_room_publish-R",e.L_ABSTRACT_ROOM_PUBLISH_P="L-abstract_room_publish-P",e.L_ABSTRACT_ROOM_UNPUBLISH_T="L-abstract_room_unpublish-T",e.L_ABSTRACT_ROOM_UNPUBLISH_R="L-abstract_room_unpublish-R",e.L_ABSTRACT_ROOM_UNPUBLISH_P="L-abstract_room_unpublish-P",e.L_ABSTRACT_ROOM_SUBSCRIBE_T="L-abstract_room_subscribe-T",e.L_ABSTRACT_ROOM_SUBSCRIBE_R="L-abstract_room_subscribe-R",e.L_ABSTRACT_ROOM_UNSUBSCRIBE_T="L-abstract_room_unsubscribe-T",e.L_ABSTRACT_ROOM_UNSUBSCRIBE_R="L-abstract_room_unsubscribe-R",e.L_APP_CALL_UNSUBSCRIBE_O="L-app_call_unsubscribe-O",e.L_USER_LEFT_UNSUBSCRIBE_O="L-user_left_unsubscribe-O",e.L_RES_UNPUB_UNSUBSCRIBE_O="L-res_unpub_unsubscribe-O",e.L_ABSTRACT_ROOM_REGISTER_ROOM_EVENT_LISTENER_O="L-abstract_room_register_room_event_listener-O",e.L_ABSTRACT_ROOM_REGISTER_REPORT_LISTENER_O="L-abstract_room_register_report_listener-O",e.L_ABSTRACT_ROOM_AUDIO_LEVEL_O="L-abstract_room_audio_level-O",e.L_ABSTRACT_ROOM_IM_RECONNECTED_T="L-abstract_room_im_reconnected-T",e.L_ABSTRACT_ROOM_IM_RECONNECTED_R="L-abstract_room_im_reconnected-R",e.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O="L-abstract_room_call_app_listener-O",e.L_ABSTRACT_ROOM_SETBITRATE_O="L-abstract_room_setBitrate-O",e.L_ABSTRACT_ROOM_ONTRACKREADY_O="L-abstract_room_onTrackReady-O",e.L_ABSTRACT_ROOM_RECEIVE_MESSAGE_O="L-abstract_room_receive_message-O",e.L_ABSTRACT_ROOM_ONKICKOFF_O="L-abstract_room_onKickoff-O",e.L_LIVING_ROOM_RECONNECTED_T="L-living_room_reconnected-T",e.L_LIVING_ROOM_RECONNECTED_R="L-living_room_reconnected-R",e.L_LIVING_ROOM_ENABLE_INNER_CDN_T="L-living_room_enable_inner_cdn-T",e.L_LIVING_ROOM_ENABLE_INNER_CDN_R="L-living_room_enable_inner_cdn-R",e.L_LIVING_ROOM_SPREAD_CDN_INFO_T="L-living_room_spread_cdn_info-T",e.L_LIVING_ROOM_SPREAD_CDN_INFO_R="L-living_room_spread_cdn_info-R",e.L_LIVING_ROOM_JOINED_PK_ROOM_T="L-living_room_joined_pk_room-T",e.L_LIVING_ROOM_JOINED_PK_ROOM_R="L-living_room_joined_pk_room-R",e.L_LIVING_ROOM_LEAVE_PK_ROOM_T="L-living_room_leave_pk_room-T",e.L_LIVING_ROOM_LEAVE_PK_ROOM_R="L-living_room_leave_pk_room-R",e.L_LIVING_ROOM_GET_ROOM_PK_HANDLER_O="L-living_room_get_room_pk_handler-O",e.L_LIVING_ROOM_QUIT_ALL_PK_ROOM_O="L-living_room_quit_all_pk_room-O",e.L_LIVING_PK_HANDLER_REGISTER_ROOM_PK_EVENT_LISTENER_O="L-living_pk_handler_register_room_pk_event_listener-O",e.L_LIVING_PK_HANDLER_REQUEST_JOIN_OTHER_ROOM_T="L-living_pk_handler_request_join_other_room-T",e.L_LIVING_PK_HANDLER_REQUEST_JOIN_OTHER_ROOM_R="L-living_pk_handler_request_join_other_room-R",e.L_LIVING_PK_HANDLER_CANCEL_REQUEST_JOIN_OTHER_ROOM_T="L-living_pk_handler_cancel_request_join_other_room-T",e.L_LIVING_PK_HANDLER_CANCEL_REQUEST_JOIN_OTHER_ROOM_R="L-living_pk_handler_cancel_request_join_other_room-R",e.L_LIVING_PK_HANDLER_RESPONSE_JOIN_OTHER_ROOM_T="L-living_pk_handler_response_join_other_room-T",e.L_LIVING_PK_HANDLER_RESPONSE_JOIN_OTHER_ROOM_R="L-living_pk_handler_response_join_other_room-R",e.L_LIVING_PK_HANDLER_JOIN_OTHER_ROOM_T="L-living_pk_handler_join_other_room-T",e.L_LIVING_PK_HANDLER_JOIN_OTHER_ROOM_R="L-living_pk_handler_join_other_room-R",e.L_LIVING_PK_HANDLER_LEAVE_OTHER_ROOM_T="L-living_pk_handler_leave_other_room-T",e.L_LIVING_PK_HANDLER_LEAVE_OTHER_ROOM_R="L-living_pk_handler_leave_other_room-R",e.L_AUDIENCE_LIVING_ROOM_SINGAL_DATA_CHANGE_T="L-audience_living_room_singal_data_change-T",e.L_AUDIENCE_LIVING_ROOM_SINGAL_DATA_CHANGE_R="L-audience_living_room_singal_data_change-R",e.L_AUDIENCE_LIVING_ROOM_GET_CDN_PLAY_URL_T="L-audience_living_room_get_cdn_play_url-T",e.L_AUDIENCE_LIVING_ROOM_GET_CDN_PLAY_URL_R="L-audience_living_room_get_cdn_play_url-R",e.L_AUDIENCE_LIVING_ROOM_SUBSCRIBE_T="L-audience_living_room_subscribe-T",e.L_AUDIENCE_LIVING_ROOM_SUBSCRIBE_R="L-audience_living_room_subscribe-R",e.L_AUDIENCE_LIVING_ROOM_UNSUBSCRIBE_T="L-audience_living_room_unsubscribe-T",e.L_AUDIENCE_LIVING_ROOM_UNSUBSCRIBE_R="L-audience_living_room_unsubscribe-R",e.L_AUDIENCE_LIVING_ROOM_AUDIO_LEVEL_CHANGE_O="L-audience_living_room_audio_level_change-O",e.L_MCU_CONFIG_BUILDER_SET_HOST_VIDEO_TRACK_O="L-mcu_config_builder_set_host_video_track-O",e.L_MCU_CONFIG_BUILDER_SET_MIX_LAYOUT_MODE_O="L-mcu_config_builder_set_mix_layout_mode-O",e.L_MCU_CONFIG_BUILDER_SET_OUTPUT_VIDEO_RESOLUTION_O="L-mcu_config_builder_set_output_video_resolution-O",e.L_MCU_CONFIG_BUILDER_SET_OUTPUT_VIDEO_FPS_O="L-mcu_config_builder_set_output_video_fps-O",e.L_MCU_CONFIG_BUILDER_SET_OUTPUT_VIDEO_BITRATE_O="L-mcu_config_builder_set_output_video_bitrate-O",e.L_MCU_CONFIG_BUILDER_SET_OUTPUT_TINY_VIDEO_RESOLUTION_O="L-mcu_config_builder_set_output_tiny_video_resolution-O",e.L_MCU_CONFIG_BUILDER_SET_OUTPUT_TINY_VIDEO_FPS_O="L-mcu_config_builder_set_output_tiny_video_fps-O",e.L_MCU_CONFIG_BUILDER_SET_OUTPUT_TINY_VIDEO_BITRATE_O="L-mcu_config_builder_set_output_tiny_video_bitrate-O",e.L_MCU_CONFIG_BUILDER_SET_OUTPUT_VIDEO_RENDER_MODE_O="L-mcu_config_builder_set_output_video_render_mode-O",e.L_MCU_CONFIG_BUILDER_SET_OUTPUT_AUDIO_BITRATE_O="L-mcu_config_builder_set_output_audio_bitrate-O",e.L_MCU_CONFIG_BUILDER_SET_OUTPUT_BACKGROUND_COLOR_O="L-mcu_config_builder_set_output_background_color-O",e.L_MCU_CONFIG_BUILDER_SET_OUTPUT_BACKGROUND_PICTURE_O="L-mcu_config_builder_add_output_background_picture-O",e.L_MCU_CONFIG_BUILDER_REMOVE_OUTPUT_BACKGROUND_PICTURE_O="L-mcu_config_builder_remove_output_background_picture-O",e.L_MCU_CONFIG_BUILDER_CLEAR_OUTPUT_BACKGROUND_PICTURE_O="L-mcu_config_builder_clear_output_background_picture-O",e.L_MCU_CONFIG_BUILDER_SET_OUTPUT_BACKGROUND_PICTURE_FILL_MODE_O="L-mcu_config_builder_set_output_background_picture-fill-mode-O",e.L_MCU_CONFIG_BUILDER_ADD_PUBLISH_STREAM_URLS_O="L-mcu_config_builder_add_publish_stream_urls-O",e.L_MCU_CONFIG_BUILDER_REMOVE_PUBLISH_STREAM_URLS_O="L-mcu_config_builder_remove_publish_stream_urls-O",e.L_MCU_CONFIG_BUILDER_CLEAR_PUBLISH_STREAM_URLS_O="L-mcu_config_builder_clear_publish_stream_urls-O",e.L_MCU_CONFIG_BUILDER_ADD_CUSTOMIZE_LAYOUT_VIDEO_O="L-mcu_config_builder_add_customize_layout_video-O",e.L_MCU_CONFIG_BUILDER_REMOVE_CUSTOMIZE_LAYOUT_VIDEO_O="L-mcu_config_builder_remove_customize_layout_video-O",e.L_MCU_CONFIG_BUILDER_CLEAR_CUSTOMIZE_LAYOUT_VIDEO_O="L-mcu_config_builder_clear_customize_layout_video-O",e.L_MCU_CONFIG_BUILDER_SET_CUSTOMIZE_INPUT_AUDIO_O="L-mcu_config_builder_set_customize_input_audio-O",e.L_MCU_CONFIG_BUILDER_ADD_CUSTOMIZE_INPUT_AUDIO_O="L-mcu_config_builder_add_customize_input_audio-O",e.L_MCU_CONFIG_BUILDER_REMOVE_CUSTOMIZE_INPUT_AUDIO_O="L-mcu_config_builder_remove_customize_input_audio-O",e.L_MCU_CONFIG_BUILDER_CLEAR_CUSTOMIZE_INPUT_AUDIO_O="L-mcu_config_builder_clear_customize_input_audio-O",e.L_MCU_CONFIG_BUILDER_RESET_O="L-mcu_config_builder_reset-O",e.L_MCU_CONFIG_BUILDER_ADD_SINGLE_WATER_MARK_O="L-mcu_config_builder_add_single_water_mark-O",e.L_MCU_CONFIG_BUILDER_REMOVE_SINGLE_WATER_MARK_O="L-mcu_config_builder_remove_single_water_mark-O",e.L_MCU_CONFIG_BUILDER_CLEAR_SINGLE_WATER_MARK_O="L-mcu_config_builder_clear_single_water_mark-O",e.L_MEDIA_SERVICE_SET_MCU_CONFIG_T="L-media_service_set_mcu_config-T",e.L_MEDIA_SERVICE_SET_MCU_CONFIG_R="L-media_service_set_mcu_config-R",e.L_MEDIA_SERVICE_GET_CDN_RESOURCE_INFO_T="L-media_service_get_cnd_resource_info-T",e.L_MEDIA_SERVICE_GET_CDN_RESOURCE_INFO_R="L-media_service_get_cnd_resource_info-R",e.L_MEDIA_SERVICE_REQUEST_T="L-media_service_request-T",e.L_MEDIA_SERVICE_REQUEST_R="L-media_service_request-R",e.L_LOCAL_TRACK_INNER_SET_PUBLISHED_O="L-loacl_track_inner_set_published-O",e.L_LOCAL_TRACK_DESTROY_O="L-loacl_track_destroy-O",e.L_LOCAL_TRACK_SET_BITRATE_O="L-loacl_track_set_bitrate-O",e.L_LOCAL_TRACK_SET_LOCAL_MUTED_O="L-loacl_track_set_local_muted-O",e.L_LOCAL_TRACK_SET_LOCAL_MUTED_R="L-loacl_track_set_local_muted-R",e.L_TRACK_PLAY_O="L-track_play-O",e.L_TRACK_PLAY_E="L-track_play-E",e.L_TRACK_LOAD_START_O="L-track_load_start-O",e.L_TRACK_DURATION_CHANGE_O="L-track_duration_change-O",e.L_TRACK_LOADED_META_DATA_O="L-track_loaded_meta_data-O",e.L_TRACK_LOADED_DATA_O="L-track_loaded_data-O",e.L_TRACK_ABORT_O="L-track_abort-O",e.L_TRACK_VOLUME_CHANGE_O="L-track_volume_change-O",e.L_TRACK_CANPLAY_O="L-track_canplay-O",e.L_TRACK_MUTE_O="L-track_mute-O",e.L_TRACK_UNMUTE_O="L-track_unmute-O",e.L_ABSTRACT_STAT_PARSER_FORMAT_RTC_STATE_REPORT_O="L-abstract_stat_parser_format_rtc_state_report-O",e.L_A_SDP_STRATEGY_SET_SDP_SEMANTICS_O="L-a_sdp_strategy_set_sdp_semantics-O",e.L_A_SDP_STRATEGY_SET_REMOTE_ANSWER_O="L-a_sdp_strategy_set_remote_answer-O",e.L_RTC_PEER_CONNECTION_GET_STATS_DATA_O="L-rtc_peer_connection_get_stats_data-O",e.L_RTC_PEER_CONNECTION_ADD_LOCAL_TRACK_O="L-rtc_peer_connection_add_local_track-O",e.L_RTC_PEER_CONNECTION_GET_LOCAL_TRACKS_O="L-rtc_peer_connection_get_local_tracks-O",e.L_RTC_PEER_CONNECTION_ICE_CONNECTION_STATE_S="L-rtc_peer_connection_ice_connection_state-S",e.L_RTC_PEER_CONNECTION_ICE_CONNECTION_STATE_REPORT_R="L-rtc_peer_connection_ice_connection_state_report-R",e.L_RTC_PEER_CONNECTION_CONNECTION_STATE_S="L-rtc_peer_connection_connection_state-S",e.L_RTC_PEER_CONNECTION_SET_BITRATE_O="L-rtc_peer_connection_set_bitrate-O",e.L_RTC_PEER_CONNECTION_CREATE_OFFER_O="L-rtc_peer_connection_create_offer-O",e.L_RTC_PEER_CONNECTION_REMOVE_LOCAL_TRACK_BY_ID_O="L-rtc_peer_connection_remove_local_track_by_id-O",e.L_RTC_PEER_CONNECTION_REMOVE_ALL_LOCAL_TRACK_O="L-rtc_peer_connection_remove_all_local_track-O",e.L_RTC_PEER_CONNECTION_REMOVE_LOCAL_TRACK_O="L-rtc_peer_connection_remove_local_track-O",e.L_RTC_PEER_CONNECTION_UPDATE_SUB_REMOTE_TRACKS_O="L-rtc_peer_connection_update_sub_remote_tracks-O",e.L_RTC_PEER_CONNECTION_LOCAL_TRACK_MUTED_O="L-rtc_peer_connection_local_track_muted-O",e.L_RTC_PEER_CONNECTION_DESTROY_O="L-rtc_peer_connection_destroy-O",e.L_RTC_SET_RECOMMEND_BITRATE_O="L_rtc_set_recommend_bitrate_O",e.L_RTC_SDP_BITRATE_O="L_rtc_sdp_bitrate_O",e.L_RTC_3ANOISE_NODE_O="L_RTC_AAAnoiseNode_O",e.L_RTC_3ANOISE_NODE_E="L_RTC_AAAnoiseNode_E",e.L_RTC_3ANOISE_NODE_STOP_O="L_RTC_AAAnoiseNode_Stop_O",e.L_RTC_CLIENT_JOIN_CROSS_RTC_ROOM_T="L_rtc_client_join_cross_rtc_room_T",e.L_RTC_CLIENT_JOIN_CROSS_RTC_ROOM_R="L_rtc_client_join_cross_rtc_room_R",e.L_QS_JOIN_ROOM_S="RTC-joinRoomRtc-S",e.L_QS_SUBSCRIBE_S="RTC-subscribe-S",e.L_QS_UNSUBSCRIBE_S="RTC-unsubscribe-S",e.L_QS_PUBLISH_S="RTC-publishRtc-S",e.L_QS_UNPUBLISH_S="RTC-unpublishRtc-S",e.L_QS_ICE_STATUS_S="RTC-iceStatus-S",e.L_QS_KICKED_S="RTC-forcedOffline-S",e.L_QS_PUB_ICE_STATUS_S="RTC-pubIceConnected-S",e.L_QS_SUB_ICE_STATUS_S="RTC-subIceConnected-S",e.L_QS_RECV_PUB_MSG_S="RTC-recvPubMsg-S",e.L_SET_ENCODER_PREFERENCES_S="RTC-set_Encoder_Preferences-S",e.L_RTCNTF_PULL_ROOM_STATUS_O="L-rtcntf_pull_room_status-O",e.L_RTCPING_PULL_ROOM_STATUS_O="L-rtcping_pull_room_status-O",e.L_PULL_ROOM_STATUS_T="L-pull_room_status-T",e.L_PULL_ROOM_STATUS_R="L-pull_room_status-R",e.L_OLD_DAILY_RECORD_O="L-old_daily_record-O",e.L_REMOTE_USER_JOINED_RESOURCES_O="L-remote_user_joined_resources-O",e.L_REMOTE_USER_STATE_HANDLE_O="L-remote_user_state_handle-O",e.L_HTTP_POLARIS_REPORT_FAIL_O="L-http_polaris_report_fail-O",e.L_UPDATE_SUBSCRIBELIST_COMMAND_T="L-update_subscribeList_command-T",e.L_UPDATE_SUBSCRIBELIST_COMMAND_P="L-update_subscribeList_command-P",e.L_UPDATE_SUBSCRIBELIST_COMMAND_R="L-update_subscribeList_command-R",e.L_RTC_CLIENT_NAVI_CHANGE_O="L-rtc_client_navi_change-O",e.L_UNPUBLISH_PREV_COMMAND_T="L-unpublish_prev_command-T",e.L_UNPUBLISH_PREV_COMMAND_R="L-unpublish_prev_command-R",e.L_RETRY_EXCHANGE_COMMAND_T="L-retry_exchange_command-T",e.L_RETRY_EXCHANGE_COMMAND_R="L-retry_exchange_command-R",e.L_PARSE_USERSTATE_COMMAND_R="L-parse_userstate_command-R",e.L_RESUB_REPUB_RES_R="L-resub_repub_res-R",e.L_PARSE_ROOMDATA_URIS_R="L-parse_roomdata_uris-R",e.L_SET_AUDIO_CONSTRAINTS_O="L-set_audio_constraints-O"}(t||(t={})),function(e){e.FAILED="fail",e.SUCCESSED="success",e.TIMEOUT="timeout",e.INFO="info"}(i||(i={}));let n=!0,s=!0;function a(e,t,i){const r=e.match(t);return r&&r.length>=i&&parseInt(r[i],10)}function d(e,t,i){if(!e.RTCPeerConnection)return;const r=e.RTCPeerConnection.prototype,o=r.addEventListener;r.addEventListener=function(e,r){if(e!==t)return o.apply(this,arguments);const n=e=>{const t=i(e);t&&(r.handleEvent?r.handleEvent(t):r(t))};return this._eventMap=this._eventMap||{},this._eventMap[t]||(this._eventMap[t]=new Map),this._eventMap[t].set(r,n),o.apply(this,[e,n])};const n=r.removeEventListener;r.removeEventListener=function(e,i){if(e!==t||!this._eventMap||!this._eventMap[t])return n.apply(this,arguments);if(!this._eventMap[t].has(i))return n.apply(this,arguments);const r=this._eventMap[t].get(i);return this._eventMap[t].delete(i),0===this._eventMap[t].size&&delete this._eventMap[t],0===Object.keys(this._eventMap).length&&delete this._eventMap,n.apply(this,[e,r])},Object.defineProperty(r,"on"+t,{get(){return this["_on"+t]},set(e){this["_on"+t]&&(this.removeEventListener(t,this["_on"+t]),delete this["_on"+t]),e&&this.addEventListener(t,this["_on"+t]=e)},enumerable:!0,configurable:!0})}function c(e){return"boolean"!=typeof e?new Error("Argument type: "+typeof e+". Please use a boolean."):(n=e,e?"adapter.js logging disabled":"adapter.js logging enabled")}function _(e){return"boolean"!=typeof e?new Error("Argument type: "+typeof e+". Please use a boolean."):(s=!e,"adapter.js deprecation warnings "+(e?"disabled":"enabled"))}function l(){if("object"==typeof window){if(n)return;"undefined"!=typeof console&&"function"==typeof console.log&&console.log.apply(console,arguments)}}function u(e,t){s&&console.warn(e+" is deprecated, please use "+t+" instead.")}function h(e){return"[object Object]"===Object.prototype.toString.call(e)}function R(e){return h(e)?Object.keys(e).reduce((function(t,i){const r=h(e[i]),o=r?R(e[i]):e[i],n=r&&!Object.keys(o).length;return void 0===o||n?t:Object.assign(t,{[i]:o})}),{}):e}function p(e,t,i){t&&!i.has(t.id)&&(i.set(t.id,t),Object.keys(t).forEach((r=>{r.endsWith("Id")?p(e,e.get(t[r]),i):r.endsWith("Ids")&&t[r].forEach((t=>{p(e,e.get(t),i)}))})))}function v(e,t,i){const r=i?"outbound-rtp":"inbound-rtp",o=new Map;if(null===t)return o;const n=[];return e.forEach((e=>{"track"===e.type&&e.trackIdentifier===t.id&&n.push(e)})),n.forEach((t=>{e.forEach((i=>{i.type===r&&i.trackId===t.id&&p(e,i,o)}))})),o}const C=l;function g(e,t){const i=e&&e.navigator;if(!i.mediaDevices)return;const r=function(e){if("object"!=typeof e||e.mandatory||e.optional)return e;const t={};return Object.keys(e).forEach((i=>{if("require"===i||"advanced"===i||"mediaSource"===i)return;const r="object"==typeof e[i]?e[i]:{ideal:e[i]};void 0!==r.exact&&"number"==typeof r.exact&&(r.min=r.max=r.exact);const o=function(e,t){return e?e+t.charAt(0).toUpperCase()+t.slice(1):"deviceId"===t?"sourceId":t};if(void 0!==r.ideal){t.optional=t.optional||[];let e={};"number"==typeof r.ideal?(e[o("min",i)]=r.ideal,t.optional.push(e),e={},e[o("max",i)]=r.ideal,t.optional.push(e)):(e[o("",i)]=r.ideal,t.optional.push(e))}void 0!==r.exact&&"number"!=typeof r.exact?(t.mandatory=t.mandatory||{},t.mandatory[o("",i)]=r.exact):["min","max"].forEach((e=>{void 0!==r[e]&&(t.mandatory=t.mandatory||{},t.mandatory[o(e,i)]=r[e])}))})),e.advanced&&(t.optional=(t.optional||[]).concat(e.advanced)),t},o=function(e,o){if(t.version>=61)return o(e);if((e=JSON.parse(JSON.stringify(e)))&&"object"==typeof e.audio){const t=function(e,t,i){t in e&&!(i in e)&&(e[i]=e[t],delete e[t])};t((e=JSON.parse(JSON.stringify(e))).audio,"autoGainControl","googAutoGainControl"),t(e.audio,"noiseSuppression","googNoiseSuppression"),e.audio=r(e.audio)}if(e&&"object"==typeof e.video){let n=e.video.facingMode;n=n&&("object"==typeof n?n:{ideal:n});const s=t.version<66;if(n&&("user"===n.exact||"environment"===n.exact||"user"===n.ideal||"environment"===n.ideal)&&(!i.mediaDevices.getSupportedConstraints||!i.mediaDevices.getSupportedConstraints().facingMode||s)){let t;if(delete e.video.facingMode,"environment"===n.exact||"environment"===n.ideal?t=["back","rear"]:"user"!==n.exact&&"user"!==n.ideal||(t=["front"]),t)return i.mediaDevices.enumerateDevices().then((i=>{let s=(i=i.filter((e=>"videoinput"===e.kind))).find((e=>t.some((t=>e.label.toLowerCase().includes(t)))));return!s&&i.length&&t.includes("back")&&(s=i[i.length-1]),s&&(e.video.deviceId=n.exact?{exact:s.deviceId}:{ideal:s.deviceId}),e.video=r(e.video),C("chrome: "+JSON.stringify(e)),o(e)}))}e.video=r(e.video)}return C("chrome: "+JSON.stringify(e)),o(e)},n=function(e){return t.version>=64?e:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[e.name]||e.name,message:e.message,constraint:e.constraint||e.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}};if(i.getUserMedia=function(e,t,r){o(e,(e=>{i.webkitGetUserMedia(e,t,(e=>{r&&r(n(e))}))}))}.bind(i),i.mediaDevices.getUserMedia){const e=i.mediaDevices.getUserMedia.bind(i.mediaDevices);i.mediaDevices.getUserMedia=function(t){return o(t,(t=>e(t).then((e=>{if(t.audio&&!e.getAudioTracks().length||t.video&&!e.getVideoTracks().length)throw e.getTracks().forEach((e=>{e.stop()})),new DOMException("","NotFoundError");return e}),(e=>Promise.reject(n(e))))))}}}function m(e){e.MediaStream=e.MediaStream||e.webkitMediaStream}function T(e){if("object"==typeof e&&e.RTCPeerConnection&&!("ontrack"in e.RTCPeerConnection.prototype)){Object.defineProperty(e.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(e){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=e)},enumerable:!0,configurable:!0});const t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=t=>{t.stream.addEventListener("addtrack",(i=>{let r;r=e.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find((e=>e.track&&e.track.id===i.track.id)):{track:i.track};const o=new Event("track");o.track=i.track,o.receiver=r,o.transceiver={receiver:r},o.streams=[t.stream],this.dispatchEvent(o)})),t.stream.getTracks().forEach((i=>{let r;r=e.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find((e=>e.track&&e.track.id===i.id)):{track:i};const o=new Event("track");o.track=i,o.receiver=r,o.transceiver={receiver:r},o.streams=[t.stream],this.dispatchEvent(o)}))},this.addEventListener("addstream",this._ontrackpoly)),t.apply(this,arguments)}}else d(e,"track",(e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e)))}function I(e){if("object"==typeof e&&e.RTCPeerConnection&&!("getSenders"in e.RTCPeerConnection.prototype)&&"createDTMFSender"in e.RTCPeerConnection.prototype){const t=function(e,t){return{track:t,get dtmf(){return void 0===this._dtmf&&("audio"===t.kind?this._dtmf=e.createDTMFSender(t):this._dtmf=null),this._dtmf},_pc:e}};if(!e.RTCPeerConnection.prototype.getSenders){e.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};const i=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,r){let o=i.apply(this,arguments);return o||(o=t(this,e),this._senders.push(o)),o};const r=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){r.apply(this,arguments);const t=this._senders.indexOf(e);-1!==t&&this._senders.splice(t,1)}}const i=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._senders=this._senders||[],i.apply(this,[e]),e.getTracks().forEach((e=>{this._senders.push(t(this,e))}))};const r=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){this._senders=this._senders||[],r.apply(this,[e]),e.getTracks().forEach((e=>{const t=this._senders.find((t=>t.track===e));t&&this._senders.splice(this._senders.indexOf(t),1)}))}}else if("object"==typeof e&&e.RTCPeerConnection&&"getSenders"in e.RTCPeerConnection.prototype&&"createDTMFSender"in e.RTCPeerConnection.prototype&&e.RTCRtpSender&&!("dtmf"in e.RTCRtpSender.prototype)){const t=e.RTCPeerConnection.prototype.getSenders;e.RTCPeerConnection.prototype.getSenders=function(){const e=t.apply(this,[]);return e.forEach((e=>e._pc=this)),e},Object.defineProperty(e.RTCRtpSender.prototype,"dtmf",{get(){return void 0===this._dtmf&&("audio"===this.track.kind?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function S(e){if(!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){const[e,i,r]=arguments;if(arguments.length>0&&"function"==typeof e)return t.apply(this,arguments);if(0===t.length&&(0===arguments.length||"function"!=typeof e))return t.apply(this,[]);const o=function(e){const t={};return e.result().forEach((e=>{const i={id:e.id,timestamp:e.timestamp,type:{localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[e.type]||e.type};e.names().forEach((t=>{i[t]=e.stat(t)})),t[i.id]=i})),t},n=function(e){return new Map(Object.keys(e).map((t=>[t,e[t]])))};if(arguments.length>=2){const r=function(e){i(n(o(e)))};return t.apply(this,[r,e])}return new Promise(((e,i)=>{t.apply(this,[function(t){e(n(o(t)))},i])})).then(i,r)}}function E(e){if(!("object"==typeof e&&e.RTCPeerConnection&&e.RTCRtpSender&&e.RTCRtpReceiver))return;if(!("getStats"in e.RTCRtpSender.prototype)){const t=e.RTCPeerConnection.prototype.getSenders;t&&(e.RTCPeerConnection.prototype.getSenders=function(){const e=t.apply(this,[]);return e.forEach((e=>e._pc=this)),e});const i=e.RTCPeerConnection.prototype.addTrack;i&&(e.RTCPeerConnection.prototype.addTrack=function(){const e=i.apply(this,arguments);return e._pc=this,e}),e.RTCRtpSender.prototype.getStats=function(){const e=this;return this._pc.getStats().then((t=>v(t,e.track,!0)))}}if(!("getStats"in e.RTCRtpReceiver.prototype)){const t=e.RTCPeerConnection.prototype.getReceivers;t&&(e.RTCPeerConnection.prototype.getReceivers=function(){const e=t.apply(this,[]);return e.forEach((e=>e._pc=this)),e}),d(e,"track",(e=>(e.receiver._pc=e.srcElement,e))),e.RTCRtpReceiver.prototype.getStats=function(){const e=this;return this._pc.getStats().then((t=>v(t,e.track,!1)))}}if(!("getStats"in e.RTCRtpSender.prototype)||!("getStats"in e.RTCRtpReceiver.prototype))return;const t=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof e.MediaStreamTrack){const e=arguments[0];let t,i,r;return this.getSenders().forEach((i=>{i.track===e&&(t?r=!0:t=i)})),this.getReceivers().forEach((t=>(t.track===e&&(i?r=!0:i=t),t.track===e))),r||t&&i?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):t?t.getStats():i?i.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return t.apply(this,arguments)}}function f(e){e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map((e=>this._shimmedLocalStreams[e][0]))};const t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,i){if(!i)return t.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};const r=t.apply(this,arguments);return this._shimmedLocalStreams[i.id]?-1===this._shimmedLocalStreams[i.id].indexOf(r)&&this._shimmedLocalStreams[i.id].push(r):this._shimmedLocalStreams[i.id]=[i,r],r};const i=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._shimmedLocalStreams=this._shimmedLocalStreams||{},e.getTracks().forEach((e=>{if(this.getSenders().find((t=>t.track===e)))throw new DOMException("Track already exists.","InvalidAccessError")}));const t=this.getSenders();i.apply(this,arguments);const r=this.getSenders().filter((e=>-1===t.indexOf(e)));this._shimmedLocalStreams[e.id]=[e].concat(r)};const r=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[e.id],r.apply(this,arguments)};const o=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},e&&Object.keys(this._shimmedLocalStreams).forEach((t=>{const i=this._shimmedLocalStreams[t].indexOf(e);-1!==i&&this._shimmedLocalStreams[t].splice(i,1),1===this._shimmedLocalStreams[t].length&&delete this._shimmedLocalStreams[t]})),o.apply(this,arguments)}}function O(e,t){if(!e.RTCPeerConnection)return;if(e.RTCPeerConnection.prototype.addTrack&&t.version>=65)return f(e);const i=e.RTCPeerConnection.prototype.getLocalStreams;e.RTCPeerConnection.prototype.getLocalStreams=function(){const e=i.apply(this);return this._reverseStreams=this._reverseStreams||{},e.map((e=>this._reverseStreams[e.id]))};const r=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(t){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},t.getTracks().forEach((e=>{if(this.getSenders().find((t=>t.track===e)))throw new DOMException("Track already exists.","InvalidAccessError")})),!this._reverseStreams[t.id]){const i=new e.MediaStream(t.getTracks());this._streams[t.id]=i,this._reverseStreams[i.id]=t,t=i}r.apply(this,[t])};const o=e.RTCPeerConnection.prototype.removeStream;function n(e,t){let i=t.sdp;return Object.keys(e._reverseStreams||[]).forEach((t=>{const r=e._reverseStreams[t],o=e._streams[r.id];i=i.replace(new RegExp(o.id,"g"),r.id)})),new RTCSessionDescription({type:t.type,sdp:i})}function s(e,t){let i=t.sdp;return Object.keys(e._reverseStreams||[]).forEach((t=>{const r=e._reverseStreams[t],o=e._streams[r.id];i=i.replace(new RegExp(r.id,"g"),o.id)})),new RTCSessionDescription({type:t.type,sdp:i})}e.RTCPeerConnection.prototype.removeStream=function(e){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},o.apply(this,[this._streams[e.id]||e]),delete this._reverseStreams[this._streams[e.id]?this._streams[e.id].id:e.id],delete this._streams[e.id]},e.RTCPeerConnection.prototype.addTrack=function(t,i){if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");const r=[].slice.call(arguments,1);if(1!==r.length||!r[0].getTracks().find((e=>e===t)))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");const o=this.getSenders().find((e=>e.track===t));if(o)throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};const n=this._streams[i.id];if(n)n.addTrack(t),Promise.resolve().then((()=>{this.dispatchEvent(new Event("negotiationneeded"))}));else{const r=new e.MediaStream([t]);this._streams[i.id]=r,this._reverseStreams[r.id]=i,this.addStream(r)}return this.getSenders().find((e=>e.track===t))},["createOffer","createAnswer"].forEach((function(t){const i=e.RTCPeerConnection.prototype[t],r={[t](){const e=arguments;return arguments.length&&"function"==typeof arguments[0]?i.apply(this,[t=>{const i=n(this,t);e[0].apply(null,[i])},t=>{e[1]&&e[1].apply(null,t)},arguments[2]]):i.apply(this,arguments).then((e=>n(this,e)))}};e.RTCPeerConnection.prototype[t]=r[t]}));const a=e.RTCPeerConnection.prototype.setLocalDescription;e.RTCPeerConnection.prototype.setLocalDescription=function(){return arguments.length&&arguments[0].type?(arguments[0]=s(this,arguments[0]),a.apply(this,arguments)):a.apply(this,arguments)};const d=Object.getOwnPropertyDescriptor(e.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(e.RTCPeerConnection.prototype,"localDescription",{get(){const e=d.get.apply(this);return""===e.type?e:n(this,e)}}),e.RTCPeerConnection.prototype.removeTrack=function(e){if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!e._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(!(e._pc===this))throw new DOMException("Sender was not created by this connection.","InvalidAccessError");let t;this._streams=this._streams||{},Object.keys(this._streams).forEach((i=>{this._streams[i].getTracks().find((t=>e.track===t))&&(t=this._streams[i])})),t&&(1===t.getTracks().length?this.removeStream(this._reverseStreams[t.id]):t.removeTrack(e.track),this.dispatchEvent(new Event("negotiationneeded")))}}function L(e,t){!e.RTCPeerConnection&&e.webkitRTCPeerConnection&&(e.RTCPeerConnection=e.webkitRTCPeerConnection),e.RTCPeerConnection&&t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach((function(t){const i=e.RTCPeerConnection.prototype[t],r={[t](){return arguments[0]=new("addIceCandidate"===t?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),i.apply(this,arguments)}};e.RTCPeerConnection.prototype[t]=r[t]}))}function A(e,t){d(e,"negotiationneeded",(e=>{const i=e.target;if(!(t.version<72||i.getConfiguration&&"plan-b"===i.getConfiguration().sdpSemantics)||"stable"===i.signalingState)return e}))}var N=Object.freeze({__proto__:null,shimMediaStream:m,shimOnTrack:T,shimGetSendersWithDtmf:I,shimGetStats:S,shimSenderReceiverGetStats:E,shimAddTrackRemoveTrackWithNative:f,shimAddTrackRemoveTrack:O,shimPeerConnection:L,fixNegotiationNeeded:A,shimGetUserMedia:g,shimGetDisplayMedia:function(e,t){e.navigator.mediaDevices&&"getDisplayMedia"in e.navigator.mediaDevices||e.navigator.mediaDevices&&("function"==typeof t?e.navigator.mediaDevices.getDisplayMedia=function(i){return t(i).then((t=>{const r=i.video&&i.video.width,o=i.video&&i.video.height,n=i.video&&i.video.frameRate;return i.video={mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:t,maxFrameRate:n||3}},r&&(i.video.mandatory.maxWidth=r),o&&(i.video.mandatory.maxHeight=o),e.navigator.mediaDevices.getUserMedia(i)}))}:console.error("shimGetDisplayMedia: getSourceId argument is not a function"))}});var y,D,k=(y=function(e){var t={generateIdentifier:function(){return Math.random().toString(36).substr(2,10)}};t.localCName=t.generateIdentifier(),t.splitLines=function(e){return e.trim().split("\n").map((function(e){return e.trim()}))},t.splitSections=function(e){return e.split("\nm=").map((function(e,t){return(t>0?"m="+e:e).trim()+"\r\n"}))},t.getDescription=function(e){var i=t.splitSections(e);return i&&i[0]},t.getMediaSections=function(e){var i=t.splitSections(e);return i.shift(),i},t.matchPrefix=function(e,i){return t.splitLines(e).filter((function(e){return 0===e.indexOf(i)}))},t.parseCandidate=function(e){for(var t,i={foundation:(t=0===e.indexOf("a=candidate:")?e.substring(12).split(" "):e.substring(10).split(" "))[0],component:parseInt(t[1],10),protocol:t[2].toLowerCase(),priority:parseInt(t[3],10),ip:t[4],address:t[4],port:parseInt(t[5],10),type:t[7]},r=8;r<t.length;r+=2)switch(t[r]){case"raddr":i.relatedAddress=t[r+1];break;case"rport":i.relatedPort=parseInt(t[r+1],10);break;case"tcptype":i.tcpType=t[r+1];break;case"ufrag":i.ufrag=t[r+1],i.usernameFragment=t[r+1];break;default:i[t[r]]=t[r+1]}return i},t.writeCandidate=function(e){var t=[];t.push(e.foundation),t.push(e.component),t.push(e.protocol.toUpperCase()),t.push(e.priority),t.push(e.address||e.ip),t.push(e.port);var i=e.type;return t.push("typ"),t.push(i),"host"!==i&&e.relatedAddress&&e.relatedPort&&(t.push("raddr"),t.push(e.relatedAddress),t.push("rport"),t.push(e.relatedPort)),e.tcpType&&"tcp"===e.protocol.toLowerCase()&&(t.push("tcptype"),t.push(e.tcpType)),(e.usernameFragment||e.ufrag)&&(t.push("ufrag"),t.push(e.usernameFragment||e.ufrag)),"candidate:"+t.join(" ")},t.parseIceOptions=function(e){return e.substr(14).split(" ")},t.parseRtpMap=function(e){var t=e.substr(9).split(" "),i={payloadType:parseInt(t.shift(),10)};return t=t[0].split("/"),i.name=t[0],i.clockRate=parseInt(t[1],10),i.channels=3===t.length?parseInt(t[2],10):1,i.numChannels=i.channels,i},t.writeRtpMap=function(e){var t=e.payloadType;void 0!==e.preferredPayloadType&&(t=e.preferredPayloadType);var i=e.channels||e.numChannels||1;return"a=rtpmap:"+t+" "+e.name+"/"+e.clockRate+(1!==i?"/"+i:"")+"\r\n"},t.parseExtmap=function(e){var t=e.substr(9).split(" ");return{id:parseInt(t[0],10),direction:t[0].indexOf("/")>0?t[0].split("/")[1]:"sendrecv",uri:t[1]}},t.writeExtmap=function(e){return"a=extmap:"+(e.id||e.preferredId)+(e.direction&&"sendrecv"!==e.direction?"/"+e.direction:"")+" "+e.uri+"\r\n"},t.parseFmtp=function(e){for(var t,i={},r=e.substr(e.indexOf(" ")+1).split(";"),o=0;o<r.length;o++)i[(t=r[o].trim().split("="))[0].trim()]=t[1];return i},t.writeFmtp=function(e){var t="",i=e.payloadType;if(void 0!==e.preferredPayloadType&&(i=e.preferredPayloadType),e.parameters&&Object.keys(e.parameters).length){var r=[];Object.keys(e.parameters).forEach((function(t){e.parameters[t]?r.push(t+"="+e.parameters[t]):r.push(t)})),t+="a=fmtp:"+i+" "+r.join(";")+"\r\n"}return t},t.parseRtcpFb=function(e){var t=e.substr(e.indexOf(" ")+1).split(" ");return{type:t.shift(),parameter:t.join(" ")}},t.writeRtcpFb=function(e){var t="",i=e.payloadType;return void 0!==e.preferredPayloadType&&(i=e.preferredPayloadType),e.rtcpFeedback&&e.rtcpFeedback.length&&e.rtcpFeedback.forEach((function(e){t+="a=rtcp-fb:"+i+" "+e.type+(e.parameter&&e.parameter.length?" "+e.parameter:"")+"\r\n"})),t},t.parseSsrcMedia=function(e){var t=e.indexOf(" "),i={ssrc:parseInt(e.substr(7,t-7),10)},r=e.indexOf(":",t);return r>-1?(i.attribute=e.substr(t+1,r-t-1),i.value=e.substr(r+1)):i.attribute=e.substr(t+1),i},t.parseSsrcGroup=function(e){var t=e.substr(13).split(" ");return{semantics:t.shift(),ssrcs:t.map((function(e){return parseInt(e,10)}))}},t.getMid=function(e){var i=t.matchPrefix(e,"a=mid:")[0];if(i)return i.substr(6)},t.parseFingerprint=function(e){var t=e.substr(14).split(" ");return{algorithm:t[0].toLowerCase(),value:t[1]}},t.getDtlsParameters=function(e,i){return{role:"auto",fingerprints:t.matchPrefix(e+i,"a=fingerprint:").map(t.parseFingerprint)}},t.writeDtlsParameters=function(e,t){var i="a=setup:"+t+"\r\n";return e.fingerprints.forEach((function(e){i+="a=fingerprint:"+e.algorithm+" "+e.value+"\r\n"})),i},t.parseCryptoLine=function(e){var t=e.substr(9).split(" ");return{tag:parseInt(t[0],10),cryptoSuite:t[1],keyParams:t[2],sessionParams:t.slice(3)}},t.writeCryptoLine=function(e){return"a=crypto:"+e.tag+" "+e.cryptoSuite+" "+("object"==typeof e.keyParams?t.writeCryptoKeyParams(e.keyParams):e.keyParams)+(e.sessionParams?" "+e.sessionParams.join(" "):"")+"\r\n"},t.parseCryptoKeyParams=function(e){if(0!==e.indexOf("inline:"))return null;var t=e.substr(7).split("|");return{keyMethod:"inline",keySalt:t[0],lifeTime:t[1],mkiValue:t[2]?t[2].split(":")[0]:void 0,mkiLength:t[2]?t[2].split(":")[1]:void 0}},t.writeCryptoKeyParams=function(e){return e.keyMethod+":"+e.keySalt+(e.lifeTime?"|"+e.lifeTime:"")+(e.mkiValue&&e.mkiLength?"|"+e.mkiValue+":"+e.mkiLength:"")},t.getCryptoParameters=function(e,i){return t.matchPrefix(e+i,"a=crypto:").map(t.parseCryptoLine)},t.getIceParameters=function(e,i){var r=t.matchPrefix(e+i,"a=ice-ufrag:")[0],o=t.matchPrefix(e+i,"a=ice-pwd:")[0];return r&&o?{usernameFragment:r.substr(12),password:o.substr(10)}:null},t.writeIceParameters=function(e){return"a=ice-ufrag:"+e.usernameFragment+"\r\na=ice-pwd:"+e.password+"\r\n"},t.parseRtpParameters=function(e){for(var i={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},r=t.splitLines(e)[0].split(" "),o=3;o<r.length;o++){var n=r[o],s=t.matchPrefix(e,"a=rtpmap:"+n+" ")[0];if(s){var a=t.parseRtpMap(s),d=t.matchPrefix(e,"a=fmtp:"+n+" ");switch(a.parameters=d.length?t.parseFmtp(d[0]):{},a.rtcpFeedback=t.matchPrefix(e,"a=rtcp-fb:"+n+" ").map(t.parseRtcpFb),i.codecs.push(a),a.name.toUpperCase()){case"RED":case"ULPFEC":i.fecMechanisms.push(a.name.toUpperCase())}}}return t.matchPrefix(e,"a=extmap:").forEach((function(e){i.headerExtensions.push(t.parseExtmap(e))})),i},t.writeRtpDescription=function(e,i){var r="";r+="m="+e+" ",r+=i.codecs.length>0?"9":"0",r+=" UDP/TLS/RTP/SAVPF ",r+=i.codecs.map((function(e){return void 0!==e.preferredPayloadType?e.preferredPayloadType:e.payloadType})).join(" ")+"\r\n",r+="c=IN IP4 0.0.0.0\r\n",r+="a=rtcp:9 IN IP4 0.0.0.0\r\n",i.codecs.forEach((function(e){r+=t.writeRtpMap(e),r+=t.writeFmtp(e),r+=t.writeRtcpFb(e)}));var o=0;return i.codecs.forEach((function(e){e.maxptime>o&&(o=e.maxptime)})),o>0&&(r+="a=maxptime:"+o+"\r\n"),r+="a=rtcp-mux\r\n",i.headerExtensions&&i.headerExtensions.forEach((function(e){r+=t.writeExtmap(e)})),r},t.parseRtpEncodingParameters=function(e){var i,r=[],o=t.parseRtpParameters(e),n=-1!==o.fecMechanisms.indexOf("RED"),s=-1!==o.fecMechanisms.indexOf("ULPFEC"),a=t.matchPrefix(e,"a=ssrc:").map((function(e){return t.parseSsrcMedia(e)})).filter((function(e){return"cname"===e.attribute})),d=a.length>0&&a[0].ssrc,c=t.matchPrefix(e,"a=ssrc-group:FID").map((function(e){return e.substr(17).split(" ").map((function(e){return parseInt(e,10)}))}));c.length>0&&c[0].length>1&&c[0][0]===d&&(i=c[0][1]),o.codecs.forEach((function(e){if("RTX"===e.name.toUpperCase()&&e.parameters.apt){var t={ssrc:d,codecPayloadType:parseInt(e.parameters.apt,10)};d&&i&&(t.rtx={ssrc:i}),r.push(t),n&&((t=JSON.parse(JSON.stringify(t))).fec={ssrc:d,mechanism:s?"red+ulpfec":"red"},r.push(t))}})),0===r.length&&d&&r.push({ssrc:d});var _=t.matchPrefix(e,"b=");return _.length&&(_=0===_[0].indexOf("b=TIAS:")?parseInt(_[0].substr(7),10):0===_[0].indexOf("b=AS:")?1e3*parseInt(_[0].substr(5),10)*.95-16e3:void 0,r.forEach((function(e){e.maxBitrate=_}))),r},t.parseRtcpParameters=function(e){var i={},r=t.matchPrefix(e,"a=ssrc:").map((function(e){return t.parseSsrcMedia(e)})).filter((function(e){return"cname"===e.attribute}))[0];r&&(i.cname=r.value,i.ssrc=r.ssrc);var o=t.matchPrefix(e,"a=rtcp-rsize");i.reducedSize=o.length>0,i.compound=0===o.length;var n=t.matchPrefix(e,"a=rtcp-mux");return i.mux=n.length>0,i},t.parseMsid=function(e){var i,r=t.matchPrefix(e,"a=msid:");if(1===r.length)return{stream:(i=r[0].substr(7).split(" "))[0],track:i[1]};var o=t.matchPrefix(e,"a=ssrc:").map((function(e){return t.parseSsrcMedia(e)})).filter((function(e){return"msid"===e.attribute}));return o.length>0?{stream:(i=o[0].value.split(" "))[0],track:i[1]}:void 0},t.parseSctpDescription=function(e){var i,r=t.parseMLine(e),o=t.matchPrefix(e,"a=max-message-size:");o.length>0&&(i=parseInt(o[0].substr(19),10)),isNaN(i)&&(i=65536);var n=t.matchPrefix(e,"a=sctp-port:");if(n.length>0)return{port:parseInt(n[0].substr(12),10),protocol:r.fmt,maxMessageSize:i};if(t.matchPrefix(e,"a=sctpmap:").length>0){var s=t.matchPrefix(e,"a=sctpmap:")[0].substr(10).split(" ");return{port:parseInt(s[0],10),protocol:s[1],maxMessageSize:i}}},t.writeSctpDescription=function(e,t){var i=[];return i="DTLS/SCTP"!==e.protocol?["m="+e.kind+" 9 "+e.protocol+" "+t.protocol+"\r\n","c=IN IP4 0.0.0.0\r\n","a=sctp-port:"+t.port+"\r\n"]:["m="+e.kind+" 9 "+e.protocol+" "+t.port+"\r\n","c=IN IP4 0.0.0.0\r\n","a=sctpmap:"+t.port+" "+t.protocol+" 65535\r\n"],void 0!==t.maxMessageSize&&i.push("a=max-message-size:"+t.maxMessageSize+"\r\n"),i.join("")},t.generateSessionId=function(){return Math.random().toString().substr(2,21)},t.writeSessionBoilerplate=function(e,i,r){var o=void 0!==i?i:2;return"v=0\r\no="+(r||"thisisadapterortc")+" "+(e||t.generateSessionId())+" "+o+" IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\n"},t.writeMediaSection=function(e,i,r,o){var n=t.writeRtpDescription(e.kind,i);if(n+=t.writeIceParameters(e.iceGatherer.getLocalParameters()),n+=t.writeDtlsParameters(e.dtlsTransport.getLocalParameters(),"offer"===r?"actpass":"active"),n+="a=mid:"+e.mid+"\r\n",e.direction?n+="a="+e.direction+"\r\n":e.rtpSender&&e.rtpReceiver?n+="a=sendrecv\r\n":e.rtpSender?n+="a=sendonly\r\n":e.rtpReceiver?n+="a=recvonly\r\n":n+="a=inactive\r\n",e.rtpSender){var s="msid:"+o.id+" "+e.rtpSender.track.id+"\r\n";n+="a="+s,n+="a=ssrc:"+e.sendEncodingParameters[0].ssrc+" "+s,e.sendEncodingParameters[0].rtx&&(n+="a=ssrc:"+e.sendEncodingParameters[0].rtx.ssrc+" "+s,n+="a=ssrc-group:FID "+e.sendEncodingParameters[0].ssrc+" "+e.sendEncodingParameters[0].rtx.ssrc+"\r\n")}return n+="a=ssrc:"+e.sendEncodingParameters[0].ssrc+" cname:"+t.localCName+"\r\n",e.rtpSender&&e.sendEncodingParameters[0].rtx&&(n+="a=ssrc:"+e.sendEncodingParameters[0].rtx.ssrc+" cname:"+t.localCName+"\r\n"),n},t.getDirection=function(e,i){for(var r=t.splitLines(e),o=0;o<r.length;o++)switch(r[o]){case"a=sendrecv":case"a=sendonly":case"a=recvonly":case"a=inactive":return r[o].substr(2)}return i?t.getDirection(i):"sendrecv"},t.getKind=function(e){return t.splitLines(e)[0].split(" ")[0].substr(2)},t.isRejected=function(e){return"0"===e.split(" ",2)[1]},t.parseMLine=function(e){var i=t.splitLines(e)[0].substr(2).split(" ");return{kind:i[0],port:parseInt(i[1],10),protocol:i[2],fmt:i.slice(3).join(" ")}},t.parseOLine=function(e){var i=t.matchPrefix(e,"o=")[0].substr(2).split(" ");return{username:i[0],sessionId:i[1],sessionVersion:parseInt(i[2],10),netType:i[3],addressType:i[4],address:i[5]}},t.isValidSDP=function(e){if("string"!=typeof e||0===e.length)return!1;for(var i=t.splitLines(e),r=0;r<i.length;r++)if(i[r].length<2||"="!==i[r].charAt(1))return!1;return!0},e.exports=t},y(D={exports:{}},D.exports),D.exports);function b(e,t,i,r,o){var n=k.writeRtpDescription(e.kind,t);if(n+=k.writeIceParameters(e.iceGatherer.getLocalParameters()),n+=k.writeDtlsParameters(e.dtlsTransport.getLocalParameters(),"offer"===i?"actpass":o||"active"),n+="a=mid:"+e.mid+"\r\n",e.rtpSender&&e.rtpReceiver?n+="a=sendrecv\r\n":e.rtpSender?n+="a=sendonly\r\n":e.rtpReceiver?n+="a=recvonly\r\n":n+="a=inactive\r\n",e.rtpSender){var s=e.rtpSender._initialTrackId||e.rtpSender.track.id;e.rtpSender._initialTrackId=s;var a="msid:"+(r?r.id:"-")+" "+s+"\r\n";n+="a="+a,n+="a=ssrc:"+e.sendEncodingParameters[0].ssrc+" "+a,e.sendEncodingParameters[0].rtx&&(n+="a=ssrc:"+e.sendEncodingParameters[0].rtx.ssrc+" "+a,n+="a=ssrc-group:FID "+e.sendEncodingParameters[0].ssrc+" "+e.sendEncodingParameters[0].rtx.ssrc+"\r\n")}return n+="a=ssrc:"+e.sendEncodingParameters[0].ssrc+" cname:"+k.localCName+"\r\n",e.rtpSender&&e.sendEncodingParameters[0].rtx&&(n+="a=ssrc:"+e.sendEncodingParameters[0].rtx.ssrc+" cname:"+k.localCName+"\r\n"),n}function x(e,t){var i={codecs:[],headerExtensions:[],fecMechanisms:[]},r=function(e,t){e=parseInt(e,10);for(var i=0;i<t.length;i++)if(t[i].payloadType===e||t[i].preferredPayloadType===e)return t[i]},o=function(e,t,i,o){var n=r(e.parameters.apt,i),s=r(t.parameters.apt,o);return n&&s&&n.name.toLowerCase()===s.name.toLowerCase()};return e.codecs.forEach((function(r){for(var n=0;n<t.codecs.length;n++){var s=t.codecs[n];if(r.name.toLowerCase()===s.name.toLowerCase()&&r.clockRate===s.clockRate){if("rtx"===r.name.toLowerCase()&&r.parameters&&s.parameters.apt&&!o(r,s,e.codecs,t.codecs))continue;(s=JSON.parse(JSON.stringify(s))).numChannels=Math.min(r.numChannels,s.numChannels),i.codecs.push(s),s.rtcpFeedback=s.rtcpFeedback.filter((function(e){for(var t=0;t<r.rtcpFeedback.length;t++)if(r.rtcpFeedback[t].type===e.type&&r.rtcpFeedback[t].parameter===e.parameter)return!0;return!1}));break}}})),e.headerExtensions.forEach((function(e){for(var r=0;r<t.headerExtensions.length;r++){var o=t.headerExtensions[r];if(e.uri===o.uri){i.headerExtensions.push(o);break}}})),i}function U(e,t,i){return-1!=={offer:{setLocalDescription:["stable","have-local-offer"],setRemoteDescription:["stable","have-remote-offer"]},answer:{setLocalDescription:["have-remote-offer","have-local-pranswer"],setRemoteDescription:["have-local-offer","have-remote-pranswer"]}}[t][e].indexOf(i)}function P(e,t){var i=e.getRemoteCandidates().find((function(e){return t.foundation===e.foundation&&t.ip===e.ip&&t.port===e.port&&t.priority===e.priority&&t.protocol===e.protocol&&t.type===e.type}));return i||e.addRemoteCandidate(t),!i}function M(e,t){var i=new Error(t);return i.name=e,i.code={NotSupportedError:9,InvalidStateError:11,InvalidAccessError:15,TypeError:void 0,OperationError:void 0}[e],i}var w=function(e,t){function i(t,i){i.addTrack(t),i.dispatchEvent(new e.MediaStreamTrackEvent("addtrack",{track:t}))}function r(t,i,r,o){var n=new Event("track");n.track=i,n.receiver=r,n.transceiver={receiver:r},n.streams=o,e.setTimeout((function(){t._dispatchEvent("track",n)}))}var o=function(i){var r=this,o=document.createDocumentFragment();if(["addEventListener","removeEventListener","dispatchEvent"].forEach((function(e){r[e]=o[e].bind(o)})),this.canTrickleIceCandidates=null,this.needNegotiation=!1,this.localStreams=[],this.remoteStreams=[],this._localDescription=null,this._remoteDescription=null,this.signalingState="stable",this.iceConnectionState="new",this.connectionState="new",this.iceGatheringState="new",i=JSON.parse(JSON.stringify(i||{})),this.usingBundle="max-bundle"===i.bundlePolicy,"negotiate"===i.rtcpMuxPolicy)throw M("NotSupportedError","rtcpMuxPolicy 'negotiate' is not supported");switch(i.rtcpMuxPolicy||(i.rtcpMuxPolicy="require"),i.iceTransportPolicy){case"all":case"relay":break;default:i.iceTransportPolicy="all"}switch(i.bundlePolicy){case"balanced":case"max-compat":case"max-bundle":break;default:i.bundlePolicy="balanced"}if(i.iceServers=function(e,t){var i=!1;return(e=JSON.parse(JSON.stringify(e))).filter((function(e){if(e&&(e.urls||e.url)){var r=e.urls||e.url;e.url&&!e.urls&&console.warn("RTCIceServer.url is deprecated! Use urls instead.");var o="string"==typeof r;return o&&(r=[r]),r=r.filter((function(e){return 0!==e.indexOf("turn:")||-1===e.indexOf("transport=udp")||-1!==e.indexOf("turn:[")||i?0===e.indexOf("stun:")&&t>=14393&&-1===e.indexOf("?transport=udp"):(i=!0,!0)})),delete e.url,e.urls=o?r[0]:r,!!r.length}}))}(i.iceServers||[],t),this._iceGatherers=[],i.iceCandidatePoolSize)for(var n=i.iceCandidatePoolSize;n>0;n--)this._iceGatherers.push(new e.RTCIceGatherer({iceServers:i.iceServers,gatherPolicy:i.iceTransportPolicy}));else i.iceCandidatePoolSize=0;this._config=i,this.transceivers=[],this._sdpSessionId=k.generateSessionId(),this._sdpSessionVersion=0,this._dtlsRole=void 0,this._isClosed=!1};Object.defineProperty(o.prototype,"localDescription",{configurable:!0,get:function(){return this._localDescription}}),Object.defineProperty(o.prototype,"remoteDescription",{configurable:!0,get:function(){return this._remoteDescription}}),o.prototype.onicecandidate=null,o.prototype.onaddstream=null,o.prototype.ontrack=null,o.prototype.onremovestream=null,o.prototype.onsignalingstatechange=null,o.prototype.oniceconnectionstatechange=null,o.prototype.onconnectionstatechange=null,o.prototype.onicegatheringstatechange=null,o.prototype.onnegotiationneeded=null,o.prototype.ondatachannel=null,o.prototype._dispatchEvent=function(e,t){this._isClosed||(this.dispatchEvent(t),"function"==typeof this["on"+e]&&this["on"+e](t))},o.prototype._emitGatheringStateChange=function(){var e=new Event("icegatheringstatechange");this._dispatchEvent("icegatheringstatechange",e)},o.prototype.getConfiguration=function(){return this._config},o.prototype.getLocalStreams=function(){return this.localStreams},o.prototype.getRemoteStreams=function(){return this.remoteStreams},o.prototype._createTransceiver=function(e,t){var i=this.transceivers.length>0,r={track:null,iceGatherer:null,iceTransport:null,dtlsTransport:null,localCapabilities:null,remoteCapabilities:null,rtpSender:null,rtpReceiver:null,kind:e,mid:null,sendEncodingParameters:null,recvEncodingParameters:null,stream:null,associatedRemoteMediaStreams:[],wantReceive:!0};if(this.usingBundle&&i)r.iceTransport=this.transceivers[0].iceTransport,r.dtlsTransport=this.transceivers[0].dtlsTransport;else{var o=this._createIceAndDtlsTransports();r.iceTransport=o.iceTransport,r.dtlsTransport=o.dtlsTransport}return t||this.transceivers.push(r),r},o.prototype.addTrack=function(t,i){if(this._isClosed)throw M("InvalidStateError","Attempted to call addTrack on a closed peerconnection.");var r;if(this.transceivers.find((function(e){return e.track===t})))throw M("InvalidAccessError","Track already exists.");for(var o=0;o<this.transceivers.length;o++)this.transceivers[o].track||this.transceivers[o].kind!==t.kind||(r=this.transceivers[o]);return r||(r=this._createTransceiver(t.kind)),this._maybeFireNegotiationNeeded(),-1===this.localStreams.indexOf(i)&&this.localStreams.push(i),r.track=t,r.stream=i,r.rtpSender=new e.RTCRtpSender(t,r.dtlsTransport),r.rtpSender},o.prototype.addStream=function(e){var i=this;if(t>=15025)e.getTracks().forEach((function(t){i.addTrack(t,e)}));else{var r=e.clone();e.getTracks().forEach((function(e,t){var i=r.getTracks()[t];e.addEventListener("enabled",(function(e){i.enabled=e.enabled}))})),r.getTracks().forEach((function(e){i.addTrack(e,r)}))}},o.prototype.removeTrack=function(t){if(this._isClosed)throw M("InvalidStateError","Attempted to call removeTrack on a closed peerconnection.");if(!(t instanceof e.RTCRtpSender))throw new TypeError("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.");var i=this.transceivers.find((function(e){return e.rtpSender===t}));if(!i)throw M("InvalidAccessError","Sender was not created by this connection.");var r=i.stream;i.rtpSender.stop(),i.rtpSender=null,i.track=null,i.stream=null,-1===this.transceivers.map((function(e){return e.stream})).indexOf(r)&&this.localStreams.indexOf(r)>-1&&this.localStreams.splice(this.localStreams.indexOf(r),1),this._maybeFireNegotiationNeeded()},o.prototype.removeStream=function(e){var t=this;e.getTracks().forEach((function(e){var i=t.getSenders().find((function(t){return t.track===e}));i&&t.removeTrack(i)}))},o.prototype.getSenders=function(){return this.transceivers.filter((function(e){return!!e.rtpSender})).map((function(e){return e.rtpSender}))},o.prototype.getReceivers=function(){return this.transceivers.filter((function(e){return!!e.rtpReceiver})).map((function(e){return e.rtpReceiver}))},o.prototype._createIceGatherer=function(t,i){var r=this;if(i&&t>0)return this.transceivers[0].iceGatherer;if(this._iceGatherers.length)return this._iceGatherers.shift();var o=new e.RTCIceGatherer({iceServers:this._config.iceServers,gatherPolicy:this._config.iceTransportPolicy});return Object.defineProperty(o,"state",{value:"new",writable:!0}),this.transceivers[t].bufferedCandidateEvents=[],this.transceivers[t].bufferCandidates=function(e){var i=!e.candidate||0===Object.keys(e.candidate).length;o.state=i?"completed":"gathering",null!==r.transceivers[t].bufferedCandidateEvents&&r.transceivers[t].bufferedCandidateEvents.push(e)},o.addEventListener("localcandidate",this.transceivers[t].bufferCandidates),o},o.prototype._gather=function(t,i){var r=this,o=this.transceivers[i].iceGatherer;if(!o.onlocalcandidate){var n=this.transceivers[i].bufferedCandidateEvents;this.transceivers[i].bufferedCandidateEvents=null,o.removeEventListener("localcandidate",this.transceivers[i].bufferCandidates),o.onlocalcandidate=function(e){if(!(r.usingBundle&&i>0)){var n=new Event("icecandidate");n.candidate={sdpMid:t,sdpMLineIndex:i};var s=e.candidate,a=!s||0===Object.keys(s).length;if(a)"new"!==o.state&&"gathering"!==o.state||(o.state="completed");else{"new"===o.state&&(o.state="gathering"),s.component=1,s.ufrag=o.getLocalParameters().usernameFragment;var d=k.writeCandidate(s);n.candidate=Object.assign(n.candidate,k.parseCandidate(d)),n.candidate.candidate=d,n.candidate.toJSON=function(){return{candidate:n.candidate.candidate,sdpMid:n.candidate.sdpMid,sdpMLineIndex:n.candidate.sdpMLineIndex,usernameFragment:n.candidate.usernameFragment}}}var c=k.getMediaSections(r._localDescription.sdp);c[n.candidate.sdpMLineIndex]+=a?"a=end-of-candidates\r\n":"a="+n.candidate.candidate+"\r\n",r._localDescription.sdp=k.getDescription(r._localDescription.sdp)+c.join("");var _=r.transceivers.every((function(e){return e.iceGatherer&&"completed"===e.iceGatherer.state}));"gathering"!==r.iceGatheringState&&(r.iceGatheringState="gathering",r._emitGatheringStateChange()),a||r._dispatchEvent("icecandidate",n),_&&(r._dispatchEvent("icecandidate",new Event("icecandidate")),r.iceGatheringState="complete",r._emitGatheringStateChange())}},e.setTimeout((function(){n.forEach((function(e){o.onlocalcandidate(e)}))}),0)}},o.prototype._createIceAndDtlsTransports=function(){var t=this,i=new e.RTCIceTransport(null);i.onicestatechange=function(){t._updateIceConnectionState(),t._updateConnectionState()};var r=new e.RTCDtlsTransport(i);return r.ondtlsstatechange=function(){t._updateConnectionState()},r.onerror=function(){Object.defineProperty(r,"state",{value:"failed",writable:!0}),t._updateConnectionState()},{iceTransport:i,dtlsTransport:r}},o.prototype._disposeIceAndDtlsTransports=function(e){var t=this.transceivers[e].iceGatherer;t&&(delete t.onlocalcandidate,delete this.transceivers[e].iceGatherer);var i=this.transceivers[e].iceTransport;i&&(delete i.onicestatechange,delete this.transceivers[e].iceTransport);var r=this.transceivers[e].dtlsTransport;r&&(delete r.ondtlsstatechange,delete r.onerror,delete this.transceivers[e].dtlsTransport)},o.prototype._transceive=function(e,i,r){var o=x(e.localCapabilities,e.remoteCapabilities);i&&e.rtpSender&&(o.encodings=e.sendEncodingParameters,o.rtcp={cname:k.localCName,compound:e.rtcpParameters.compound},e.recvEncodingParameters.length&&(o.rtcp.ssrc=e.recvEncodingParameters[0].ssrc),e.rtpSender.send(o)),r&&e.rtpReceiver&&o.codecs.length>0&&("video"===e.kind&&e.recvEncodingParameters&&t<15019&&e.recvEncodingParameters.forEach((function(e){delete e.rtx})),e.recvEncodingParameters.length?o.encodings=e.recvEncodingParameters:o.encodings=[{}],o.rtcp={compound:e.rtcpParameters.compound},e.rtcpParameters.cname&&(o.rtcp.cname=e.rtcpParameters.cname),e.sendEncodingParameters.length&&(o.rtcp.ssrc=e.sendEncodingParameters[0].ssrc),e.rtpReceiver.receive(o))},o.prototype.setLocalDescription=function(e){var t,i,r=this;if(-1===["offer","answer"].indexOf(e.type))return Promise.reject(M("TypeError",'Unsupported type "'+e.type+'"'));if(!U("setLocalDescription",e.type,r.signalingState)||r._isClosed)return Promise.reject(M("InvalidStateError","Can not set local "+e.type+" in state "+r.signalingState));if("offer"===e.type)t=k.splitSections(e.sdp),i=t.shift(),t.forEach((function(e,t){var i=k.parseRtpParameters(e);r.transceivers[t].localCapabilities=i})),r.transceivers.forEach((function(e,t){r._gather(e.mid,t)}));else if("answer"===e.type){t=k.splitSections(r._remoteDescription.sdp),i=t.shift();var o=k.matchPrefix(i,"a=ice-lite").length>0;t.forEach((function(e,t){var n=r.transceivers[t],s=n.iceGatherer,a=n.iceTransport,d=n.dtlsTransport,c=n.localCapabilities,_=n.remoteCapabilities;if(!(k.isRejected(e)&&0===k.matchPrefix(e,"a=bundle-only").length)&&!n.rejected){var l=k.getIceParameters(e,i),u=k.getDtlsParameters(e,i);o&&(u.role="server"),r.usingBundle&&0!==t||(r._gather(n.mid,t),"new"===a.state&&a.start(s,l,o?"controlling":"controlled"),"new"===d.state&&d.start(u));var h=x(c,_);r._transceive(n,h.codecs.length>0,!1)}}))}return r._localDescription={type:e.type,sdp:e.sdp},"offer"===e.type?r._updateSignalingState("have-local-offer"):r._updateSignalingState("stable"),Promise.resolve()},o.prototype.setRemoteDescription=function(o){var n=this;if(-1===["offer","answer"].indexOf(o.type))return Promise.reject(M("TypeError",'Unsupported type "'+o.type+'"'));if(!U("setRemoteDescription",o.type,n.signalingState)||n._isClosed)return Promise.reject(M("InvalidStateError","Can not set remote "+o.type+" in state "+n.signalingState));var s={};n.remoteStreams.forEach((function(e){s[e.id]=e}));var a=[],d=k.splitSections(o.sdp),c=d.shift(),_=k.matchPrefix(c,"a=ice-lite").length>0,l=k.matchPrefix(c,"a=group:BUNDLE ").length>0;n.usingBundle=l;var u=k.matchPrefix(c,"a=ice-options:")[0];return n.canTrickleIceCandidates=!!u&&u.substr(14).split(" ").indexOf("trickle")>=0,d.forEach((function(r,d){var u=k.splitLines(r),h=k.getKind(r),R=k.isRejected(r)&&0===k.matchPrefix(r,"a=bundle-only").length,p=u[0].substr(2).split(" ")[2],v=k.getDirection(r,c),C=k.parseMsid(r),g=k.getMid(r)||k.generateIdentifier();if(R||"application"===h&&("DTLS/SCTP"===p||"UDP/DTLS/SCTP"===p))n.transceivers[d]={mid:g,kind:h,protocol:p,rejected:!0};else{var m,T,I,S,E,f,O,L,A;!R&&n.transceivers[d]&&n.transceivers[d].rejected&&(n.transceivers[d]=n._createTransceiver(h,!0));var N,y,D=k.parseRtpParameters(r);R||(N=k.getIceParameters(r,c),(y=k.getDtlsParameters(r,c)).role="client"),O=k.parseRtpEncodingParameters(r);var b=k.parseRtcpParameters(r),U=k.matchPrefix(r,"a=end-of-candidates",c).length>0,M=k.matchPrefix(r,"a=candidate:").map((function(e){return k.parseCandidate(e)})).filter((function(e){return 1===e.component}));if(("offer"===o.type||"answer"===o.type)&&!R&&l&&d>0&&n.transceivers[d]&&(n._disposeIceAndDtlsTransports(d),n.transceivers[d].iceGatherer=n.transceivers[0].iceGatherer,n.transceivers[d].iceTransport=n.transceivers[0].iceTransport,n.transceivers[d].dtlsTransport=n.transceivers[0].dtlsTransport,n.transceivers[d].rtpSender&&n.transceivers[d].rtpSender.setTransport(n.transceivers[0].dtlsTransport),n.transceivers[d].rtpReceiver&&n.transceivers[d].rtpReceiver.setTransport(n.transceivers[0].dtlsTransport)),"offer"!==o.type||R){if("answer"===o.type&&!R){T=(m=n.transceivers[d]).iceGatherer,I=m.iceTransport,S=m.dtlsTransport,E=m.rtpReceiver,f=m.sendEncodingParameters,L=m.localCapabilities,n.transceivers[d].recvEncodingParameters=O,n.transceivers[d].remoteCapabilities=D,n.transceivers[d].rtcpParameters=b,M.length&&"new"===I.state&&(!_&&!U||l&&0!==d?M.forEach((function(e){P(m.iceTransport,e)})):I.setRemoteCandidates(M)),l&&0!==d||("new"===I.state&&I.start(T,N,"controlling"),"new"===S.state&&S.start(y)),!x(m.localCapabilities,m.remoteCapabilities).codecs.filter((function(e){return"rtx"===e.name.toLowerCase()})).length&&m.sendEncodingParameters[0].rtx&&delete m.sendEncodingParameters[0].rtx,n._transceive(m,"sendrecv"===v||"recvonly"===v,"sendrecv"===v||"sendonly"===v),!E||"sendrecv"!==v&&"sendonly"!==v?delete m.rtpReceiver:(A=E.track,C?(s[C.stream]||(s[C.stream]=new e.MediaStream),i(A,s[C.stream]),a.push([A,E,s[C.stream]])):(s.default||(s.default=new e.MediaStream),i(A,s.default),a.push([A,E,s.default])))}}else{(m=n.transceivers[d]||n._createTransceiver(h)).mid=g,m.iceGatherer||(m.iceGatherer=n._createIceGatherer(d,l)),M.length&&"new"===m.iceTransport.state&&(!U||l&&0!==d?M.forEach((function(e){P(m.iceTransport,e)})):m.iceTransport.setRemoteCandidates(M)),L=e.RTCRtpReceiver.getCapabilities(h),t<15019&&(L.codecs=L.codecs.filter((function(e){return"rtx"!==e.name}))),f=m.sendEncodingParameters||[{ssrc:1001*(2*d+2)}];var w,B=!1;if("sendrecv"===v||"sendonly"===v){if(B=!m.rtpReceiver,E=m.rtpReceiver||new e.RTCRtpReceiver(m.dtlsTransport,h),B)A=E.track,C&&"-"===C.stream||(C?(s[C.stream]||(s[C.stream]=new e.MediaStream,Object.defineProperty(s[C.stream],"id",{get:function(){return C.stream}})),Object.defineProperty(A,"id",{get:function(){return C.track}}),w=s[C.stream]):(s.default||(s.default=new e.MediaStream),w=s.default)),w&&(i(A,w),m.associatedRemoteMediaStreams.push(w)),a.push([A,E,w])}else m.rtpReceiver&&m.rtpReceiver.track&&(m.associatedRemoteMediaStreams.forEach((function(t){var i=t.getTracks().find((function(e){return e.id===m.rtpReceiver.track.id}));i&&function(t,i){i.removeTrack(t),i.dispatchEvent(new e.MediaStreamTrackEvent("removetrack",{track:t}))}(i,t)})),m.associatedRemoteMediaStreams=[]);m.localCapabilities=L,m.remoteCapabilities=D,m.rtpReceiver=E,m.rtcpParameters=b,m.sendEncodingParameters=f,m.recvEncodingParameters=O,n._transceive(n.transceivers[d],!1,B)}}})),void 0===n._dtlsRole&&(n._dtlsRole="offer"===o.type?"active":"passive"),n._remoteDescription={type:o.type,sdp:o.sdp},"offer"===o.type?n._updateSignalingState("have-remote-offer"):n._updateSignalingState("stable"),Object.keys(s).forEach((function(t){var i=s[t];if(i.getTracks().length){if(-1===n.remoteStreams.indexOf(i)){n.remoteStreams.push(i);var o=new Event("addstream");o.stream=i,e.setTimeout((function(){n._dispatchEvent("addstream",o)}))}a.forEach((function(e){var t=e[0],o=e[1];i.id===e[2].id&&r(n,t,o,[i])}))}})),a.forEach((function(e){e[2]||r(n,e[0],e[1],[])})),e.setTimeout((function(){n&&n.transceivers&&n.transceivers.forEach((function(e){e.iceTransport&&"new"===e.iceTransport.state&&e.iceTransport.getRemoteCandidates().length>0&&(console.warn("Timeout for addRemoteCandidate. Consider sending an end-of-candidates notification"),e.iceTransport.addRemoteCandidate({}))}))}),4e3),Promise.resolve()},o.prototype.close=function(){this.transceivers.forEach((function(e){e.iceTransport&&e.iceTransport.stop(),e.dtlsTransport&&e.dtlsTransport.stop(),e.rtpSender&&e.rtpSender.stop(),e.rtpReceiver&&e.rtpReceiver.stop()})),this._isClosed=!0,this._updateSignalingState("closed")},o.prototype._updateSignalingState=function(e){this.signalingState=e;var t=new Event("signalingstatechange");this._dispatchEvent("signalingstatechange",t)},o.prototype._maybeFireNegotiationNeeded=function(){var t=this;"stable"===this.signalingState&&!0!==this.needNegotiation&&(this.needNegotiation=!0,e.setTimeout((function(){if(t.needNegotiation){t.needNegotiation=!1;var e=new Event("negotiationneeded");t._dispatchEvent("negotiationneeded",e)}}),0))},o.prototype._updateIceConnectionState=function(){var e,t={new:0,closed:0,checking:0,connected:0,completed:0,disconnected:0,failed:0};if(this.transceivers.forEach((function(e){e.iceTransport&&!e.rejected&&t[e.iceTransport.state]++})),e="new",t.failed>0?e="failed":t.checking>0?e="checking":t.disconnected>0?e="disconnected":t.new>0?e="new":t.connected>0?e="connected":t.completed>0&&(e="completed"),e!==this.iceConnectionState){this.iceConnectionState=e;var i=new Event("iceconnectionstatechange");this._dispatchEvent("iceconnectionstatechange",i)}},o.prototype._updateConnectionState=function(){var e,t={new:0,closed:0,connecting:0,connected:0,completed:0,disconnected:0,failed:0};if(this.transceivers.forEach((function(e){e.iceTransport&&e.dtlsTransport&&!e.rejected&&(t[e.iceTransport.state]++,t[e.dtlsTransport.state]++)})),t.connected+=t.completed,e="new",t.failed>0?e="failed":t.connecting>0?e="connecting":t.disconnected>0?e="disconnected":t.new>0?e="new":t.connected>0&&(e="connected"),e!==this.connectionState){this.connectionState=e;var i=new Event("connectionstatechange");this._dispatchEvent("connectionstatechange",i)}},o.prototype.createOffer=function(){var i=this;if(i._isClosed)return Promise.reject(M("InvalidStateError","Can not call createOffer after close"));var r=i.transceivers.filter((function(e){return"audio"===e.kind})).length,o=i.transceivers.filter((function(e){return"video"===e.kind})).length,n=arguments[0];if(n){if(n.mandatory||n.optional)throw new TypeError("Legacy mandatory/optional constraints not supported.");void 0!==n.offerToReceiveAudio&&(r=!0===n.offerToReceiveAudio?1:!1===n.offerToReceiveAudio?0:n.offerToReceiveAudio),void 0!==n.offerToReceiveVideo&&(o=!0===n.offerToReceiveVideo?1:!1===n.offerToReceiveVideo?0:n.offerToReceiveVideo)}for(i.transceivers.forEach((function(e){"audio"===e.kind?--r<0&&(e.wantReceive=!1):"video"===e.kind&&--o<0&&(e.wantReceive=!1)}));r>0||o>0;)r>0&&(i._createTransceiver("audio"),r--),o>0&&(i._createTransceiver("video"),o--);var s=k.writeSessionBoilerplate(i._sdpSessionId,i._sdpSessionVersion++);i.transceivers.forEach((function(r,o){var n=r.track,s=r.kind,a=r.mid||k.generateIdentifier();r.mid=a,r.iceGatherer||(r.iceGatherer=i._createIceGatherer(o,i.usingBundle));var d=e.RTCRtpSender.getCapabilities(s);t<15019&&(d.codecs=d.codecs.filter((function(e){return"rtx"!==e.name}))),d.codecs.forEach((function(e){"H264"===e.name&&void 0===e.parameters["level-asymmetry-allowed"]&&(e.parameters["level-asymmetry-allowed"]="1"),r.remoteCapabilities&&r.remoteCapabilities.codecs&&r.remoteCapabilities.codecs.forEach((function(t){e.name.toLowerCase()===t.name.toLowerCase()&&e.clockRate===t.clockRate&&(e.preferredPayloadType=t.payloadType)}))})),d.headerExtensions.forEach((function(e){(r.remoteCapabilities&&r.remoteCapabilities.headerExtensions||[]).forEach((function(t){e.uri===t.uri&&(e.id=t.id)}))}));var c=r.sendEncodingParameters||[{ssrc:1001*(2*o+1)}];n&&t>=15019&&"video"===s&&!c[0].rtx&&(c[0].rtx={ssrc:c[0].ssrc+1}),r.wantReceive&&(r.rtpReceiver=new e.RTCRtpReceiver(r.dtlsTransport,s)),r.localCapabilities=d,r.sendEncodingParameters=c})),"max-compat"!==i._config.bundlePolicy&&(s+="a=group:BUNDLE "+i.transceivers.map((function(e){return e.mid})).join(" ")+"\r\n"),s+="a=ice-options:trickle\r\n",i.transceivers.forEach((function(e,t){s+=b(e,e.localCapabilities,"offer",e.stream,i._dtlsRole),s+="a=rtcp-rsize\r\n",!e.iceGatherer||"new"===i.iceGatheringState||0!==t&&i.usingBundle||(e.iceGatherer.getLocalCandidates().forEach((function(e){e.component=1,s+="a="+k.writeCandidate(e)+"\r\n"})),"completed"===e.iceGatherer.state&&(s+="a=end-of-candidates\r\n"))}));var a=new e.RTCSessionDescription({type:"offer",sdp:s});return Promise.resolve(a)},o.prototype.createAnswer=function(){var i=this;if(i._isClosed)return Promise.reject(M("InvalidStateError","Can not call createAnswer after close"));if("have-remote-offer"!==i.signalingState&&"have-local-pranswer"!==i.signalingState)return Promise.reject(M("InvalidStateError","Can not call createAnswer in signalingState "+i.signalingState));var r=k.writeSessionBoilerplate(i._sdpSessionId,i._sdpSessionVersion++);i.usingBundle&&(r+="a=group:BUNDLE "+i.transceivers.map((function(e){return e.mid})).join(" ")+"\r\n"),r+="a=ice-options:trickle\r\n";var o=k.getMediaSections(i._remoteDescription.sdp).length;i.transceivers.forEach((function(e,n){if(!(n+1>o)){if(e.rejected)return"application"===e.kind?"DTLS/SCTP"===e.protocol?r+="m=application 0 DTLS/SCTP 5000\r\n":r+="m=application 0 "+e.protocol+" webrtc-datachannel\r\n":"audio"===e.kind?r+="m=audio 0 UDP/TLS/RTP/SAVPF 0\r\na=rtpmap:0 PCMU/8000\r\n":"video"===e.kind&&(r+="m=video 0 UDP/TLS/RTP/SAVPF 120\r\na=rtpmap:120 VP8/90000\r\n"),void(r+="c=IN IP4 0.0.0.0\r\na=inactive\r\na=mid:"+e.mid+"\r\n");var s;if(e.stream)"audio"===e.kind?s=e.stream.getAudioTracks()[0]:"video"===e.kind&&(s=e.stream.getVideoTracks()[0]),s&&t>=15019&&"video"===e.kind&&!e.sendEncodingParameters[0].rtx&&(e.sendEncodingParameters[0].rtx={ssrc:e.sendEncodingParameters[0].ssrc+1});var a=x(e.localCapabilities,e.remoteCapabilities);!a.codecs.filter((function(e){return"rtx"===e.name.toLowerCase()})).length&&e.sendEncodingParameters[0].rtx&&delete e.sendEncodingParameters[0].rtx,r+=b(e,a,"answer",e.stream,i._dtlsRole),e.rtcpParameters&&e.rtcpParameters.reducedSize&&(r+="a=rtcp-rsize\r\n")}}));var n=new e.RTCSessionDescription({type:"answer",sdp:r});return Promise.resolve(n)},o.prototype.addIceCandidate=function(e){var t,i=this;return e&&void 0===e.sdpMLineIndex&&!e.sdpMid?Promise.reject(new TypeError("sdpMLineIndex or sdpMid required")):new Promise((function(r,o){if(!i._remoteDescription)return o(M("InvalidStateError","Can not add ICE candidate without a remote description"));if(e&&""!==e.candidate){var n=e.sdpMLineIndex;if(e.sdpMid)for(var s=0;s<i.transceivers.length;s++)if(i.transceivers[s].mid===e.sdpMid){n=s;break}var a=i.transceivers[n];if(!a)return o(M("OperationError","Can not add ICE candidate"));if(a.rejected)return r();var d=Object.keys(e.candidate).length>0?k.parseCandidate(e.candidate):{};if("tcp"===d.protocol&&(0===d.port||9===d.port))return r();if(d.component&&1!==d.component)return r();if((0===n||n>0&&a.iceTransport!==i.transceivers[0].iceTransport)&&!P(a.iceTransport,d))return o(M("OperationError","Can not add ICE candidate"));var c=e.candidate.trim();0===c.indexOf("a=")&&(c=c.substr(2)),(t=k.getMediaSections(i._remoteDescription.sdp))[n]+="a="+(d.type?c:"end-of-candidates")+"\r\n",i._remoteDescription.sdp=k.getDescription(i._remoteDescription.sdp)+t.join("")}else for(var _=0;_<i.transceivers.length&&(i.transceivers[_].rejected||(i.transceivers[_].iceTransport.addRemoteCandidate({}),(t=k.getMediaSections(i._remoteDescription.sdp))[_]+="a=end-of-candidates\r\n",i._remoteDescription.sdp=k.getDescription(i._remoteDescription.sdp)+t.join(""),!i.usingBundle));_++);r()}))},o.prototype.getStats=function(t){if(t&&t instanceof e.MediaStreamTrack){var i=null;if(this.transceivers.forEach((function(e){e.rtpSender&&e.rtpSender.track===t?i=e.rtpSender:e.rtpReceiver&&e.rtpReceiver.track===t&&(i=e.rtpReceiver)})),!i)throw M("InvalidAccessError","Invalid selector.");return i.getStats()}var r=[];return this.transceivers.forEach((function(e){["rtpSender","rtpReceiver","iceGatherer","iceTransport","dtlsTransport"].forEach((function(t){e[t]&&r.push(e[t].getStats())}))})),Promise.all(r).then((function(e){var t=new Map;return e.forEach((function(e){e.forEach((function(e){t.set(e.id,e)}))})),t}))};["RTCRtpSender","RTCRtpReceiver","RTCIceGatherer","RTCIceTransport","RTCDtlsTransport"].forEach((function(t){var i=e[t];if(i&&i.prototype&&i.prototype.getStats){var r=i.prototype.getStats;i.prototype.getStats=function(){return r.apply(this).then((function(e){var t=new Map;return Object.keys(e).forEach((function(i){var r;e[i].type={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[(r=e[i]).type]||r.type,t.set(i,e[i])})),t}))}}}));var n=["createOffer","createAnswer"];return n.forEach((function(e){var t=o.prototype[e];o.prototype[e]=function(){var e=arguments;return"function"==typeof e[0]||"function"==typeof e[1]?t.apply(this,[arguments[2]]).then((function(t){"function"==typeof e[0]&&e[0].apply(null,[t])}),(function(t){"function"==typeof e[1]&&e[1].apply(null,[t])})):t.apply(this,arguments)}})),(n=["setLocalDescription","setRemoteDescription","addIceCandidate"]).forEach((function(e){var t=o.prototype[e];o.prototype[e]=function(){var e=arguments;return"function"==typeof e[1]||"function"==typeof e[2]?t.apply(this,arguments).then((function(){"function"==typeof e[1]&&e[1].apply(null)}),(function(t){"function"==typeof e[2]&&e[2].apply(null,[t])})):t.apply(this,arguments)}})),["getStats"].forEach((function(e){var t=o.prototype[e];o.prototype[e]=function(){var e=arguments;return"function"==typeof e[1]?t.apply(this,arguments).then((function(){"function"==typeof e[1]&&e[1].apply(null)})):t.apply(this,arguments)}})),o};function B(e){const t=e&&e.navigator,i=t.mediaDevices.getUserMedia.bind(t.mediaDevices);t.mediaDevices.getUserMedia=function(e){return i(e).catch((e=>Promise.reject(function(e){return{name:{PermissionDeniedError:"NotAllowedError"}[e.name]||e.name,message:e.message,constraint:e.constraint,toString(){return this.name}}}(e))))}}function V(e){"getDisplayMedia"in e.navigator&&e.navigator.mediaDevices&&(e.navigator.mediaDevices&&"getDisplayMedia"in e.navigator.mediaDevices||(e.navigator.mediaDevices.getDisplayMedia=e.navigator.getDisplayMedia.bind(e.navigator)))}function F(e,t){if(e.RTCIceGatherer&&(e.RTCIceCandidate||(e.RTCIceCandidate=function(e){return e}),e.RTCSessionDescription||(e.RTCSessionDescription=function(e){return e}),t.version<15025)){const t=Object.getOwnPropertyDescriptor(e.MediaStreamTrack.prototype,"enabled");Object.defineProperty(e.MediaStreamTrack.prototype,"enabled",{set(e){t.set.call(this,e);const i=new Event("enabled");i.enabled=e,this.dispatchEvent(i)}})}e.RTCRtpSender&&!("dtmf"in e.RTCRtpSender.prototype)&&Object.defineProperty(e.RTCRtpSender.prototype,"dtmf",{get(){return void 0===this._dtmf&&("audio"===this.track.kind?this._dtmf=new e.RTCDtmfSender(this):"video"===this.track.kind&&(this._dtmf=null)),this._dtmf}}),e.RTCDtmfSender&&!e.RTCDTMFSender&&(e.RTCDTMFSender=e.RTCDtmfSender);const i=w(e,t.version);e.RTCPeerConnection=function(e){return e&&e.iceServers&&(e.iceServers=function(e,t){let i=!1;return(e=JSON.parse(JSON.stringify(e))).filter((e=>{if(e&&(e.urls||e.url)){let t=e.urls||e.url;e.url&&!e.urls&&u("RTCIceServer.url","RTCIceServer.urls");const r="string"==typeof t;return r&&(t=[t]),t=t.filter((e=>{if(0===e.indexOf("stun:"))return!1;const t=e.startsWith("turn")&&!e.startsWith("turn:[")&&e.includes("transport=udp");return t&&!i?(i=!0,!0):t&&!i})),delete e.url,e.urls=r?t[0]:t,!!t.length}}))}(e.iceServers,t.version),l("ICE servers after filtering:",e.iceServers)),new i(e)},e.RTCPeerConnection.prototype=i.prototype}function J(e){e.RTCRtpSender&&!("replaceTrack"in e.RTCRtpSender.prototype)&&(e.RTCRtpSender.prototype.replaceTrack=e.RTCRtpSender.prototype.setTrack)}var G=Object.freeze({__proto__:null,shimPeerConnection:F,shimReplaceTrack:J,shimGetUserMedia:B,shimGetDisplayMedia:V});function K(e,t){const i=e&&e.navigator,r=e&&e.MediaStreamTrack;if(i.getUserMedia=function(e,t,r){u("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),i.mediaDevices.getUserMedia(e).then(t,r)},!(t.version>55&&"autoGainControl"in i.mediaDevices.getSupportedConstraints())){const e=function(e,t,i){t in e&&!(i in e)&&(e[i]=e[t],delete e[t])},t=i.mediaDevices.getUserMedia.bind(i.mediaDevices);if(i.mediaDevices.getUserMedia=function(i){return"object"==typeof i&&"object"==typeof i.audio&&(i=JSON.parse(JSON.stringify(i)),e(i.audio,"autoGainControl","mozAutoGainControl"),e(i.audio,"noiseSuppression","mozNoiseSuppression")),t(i)},r&&r.prototype.getSettings){const t=r.prototype.getSettings;r.prototype.getSettings=function(){const i=t.apply(this,arguments);return e(i,"mozAutoGainControl","autoGainControl"),e(i,"mozNoiseSuppression","noiseSuppression"),i}}if(r&&r.prototype.applyConstraints){const t=r.prototype.applyConstraints;r.prototype.applyConstraints=function(i){return"audio"===this.kind&&"object"==typeof i&&(i=JSON.parse(JSON.stringify(i)),e(i,"autoGainControl","mozAutoGainControl"),e(i,"noiseSuppression","mozNoiseSuppression")),t.apply(this,[i])}}}}function H(e){"object"==typeof e&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function j(e,t){if("object"!=typeof e||!e.RTCPeerConnection&&!e.mozRTCPeerConnection)return;!e.RTCPeerConnection&&e.mozRTCPeerConnection&&(e.RTCPeerConnection=e.mozRTCPeerConnection),t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach((function(t){const i=e.RTCPeerConnection.prototype[t],r={[t](){return arguments[0]=new("addIceCandidate"===t?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),i.apply(this,arguments)}};e.RTCPeerConnection.prototype[t]=r[t]}));const i={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},r=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){const[e,o,n]=arguments;return r.apply(this,[e||null]).then((e=>{if(t.version<53&&!o)try{e.forEach((e=>{e.type=i[e.type]||e.type}))}catch(t){if("TypeError"!==t.name)throw t;e.forEach(((t,r)=>{e.set(r,Object.assign({},t,{type:i[t.type]||t.type}))}))}return e})).then(o,n)}}function $(e){if("object"!=typeof e||!e.RTCPeerConnection||!e.RTCRtpSender)return;if(e.RTCRtpSender&&"getStats"in e.RTCRtpSender.prototype)return;const t=e.RTCPeerConnection.prototype.getSenders;t&&(e.RTCPeerConnection.prototype.getSenders=function(){const e=t.apply(this,[]);return e.forEach((e=>e._pc=this)),e});const i=e.RTCPeerConnection.prototype.addTrack;i&&(e.RTCPeerConnection.prototype.addTrack=function(){const e=i.apply(this,arguments);return e._pc=this,e}),e.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}}function Y(e){if("object"!=typeof e||!e.RTCPeerConnection||!e.RTCRtpSender)return;if(e.RTCRtpSender&&"getStats"in e.RTCRtpReceiver.prototype)return;const t=e.RTCPeerConnection.prototype.getReceivers;t&&(e.RTCPeerConnection.prototype.getReceivers=function(){const e=t.apply(this,[]);return e.forEach((e=>e._pc=this)),e}),d(e,"track",(e=>(e.receiver._pc=e.srcElement,e))),e.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function q(e){e.RTCPeerConnection&&!("removeStream"in e.RTCPeerConnection.prototype)&&(e.RTCPeerConnection.prototype.removeStream=function(e){u("removeStream","removeTrack"),this.getSenders().forEach((t=>{t.track&&e.getTracks().includes(t.track)&&this.removeTrack(t)}))})}function W(e){e.DataChannel&&!e.RTCDataChannel&&(e.RTCDataChannel=e.DataChannel)}function z(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype.addTransceiver;t&&(e.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];const e=arguments[1],i=e&&"sendEncodings"in e;i&&e.sendEncodings.forEach((e=>{if("rid"in e){if(!/^[a-z0-9]{0,16}$/i.test(e.rid))throw new TypeError("Invalid RID value provided.")}if("scaleResolutionDownBy"in e&&!(parseFloat(e.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in e&&!(parseFloat(e.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")}));const r=t.apply(this,arguments);if(i){const{sender:t}=r,i=t.getParameters();(!("encodings"in i)||1===i.encodings.length&&0===Object.keys(i.encodings[0]).length)&&(i.encodings=e.sendEncodings,t.sendEncodings=e.sendEncodings,this.setParametersPromises.push(t.setParameters(i).then((()=>{delete t.sendEncodings})).catch((()=>{delete t.sendEncodings}))))}return r})}function Z(e){if("object"!=typeof e||!e.RTCRtpSender)return;const t=e.RTCRtpSender.prototype.getParameters;t&&(e.RTCRtpSender.prototype.getParameters=function(){const e=t.apply(this,arguments);return"encodings"in e||(e.encodings=[].concat(this.sendEncodings||[{}])),e})}function Q(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then((()=>t.apply(this,arguments))).finally((()=>{this.setParametersPromises=[]})):t.apply(this,arguments)}}function X(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype.createAnswer;e.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then((()=>t.apply(this,arguments))).finally((()=>{this.setParametersPromises=[]})):t.apply(this,arguments)}}var ee=Object.freeze({__proto__:null,shimOnTrack:H,shimPeerConnection:j,shimSenderGetStats:$,shimReceiverGetStats:Y,shimRemoveStream:q,shimRTCDataChannel:W,shimAddTransceiver:z,shimGetParameters:Z,shimCreateOffer:Q,shimCreateAnswer:X,shimGetUserMedia:K,shimGetDisplayMedia:function(e,t){e.navigator.mediaDevices&&"getDisplayMedia"in e.navigator.mediaDevices||e.navigator.mediaDevices&&(e.navigator.mediaDevices.getDisplayMedia=function(i){if(!i||!i.video){const e=new DOMException("getDisplayMedia without video constraints is undefined");return e.name="NotFoundError",e.code=8,Promise.reject(e)}return!0===i.video?i.video={mediaSource:t}:i.video.mediaSource=t,e.navigator.mediaDevices.getUserMedia(i)})}});function te(e){if("object"==typeof e&&e.RTCPeerConnection){if("getLocalStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in e.RTCPeerConnection.prototype)){const t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addStream=function(e){this._localStreams||(this._localStreams=[]),this._localStreams.includes(e)||this._localStreams.push(e),e.getAudioTracks().forEach((i=>t.call(this,i,e))),e.getVideoTracks().forEach((i=>t.call(this,i,e)))},e.RTCPeerConnection.prototype.addTrack=function(e,...i){return i&&i.forEach((e=>{this._localStreams?this._localStreams.includes(e)||this._localStreams.push(e):this._localStreams=[e]})),t.apply(this,arguments)}}"removeStream"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(e){this._localStreams||(this._localStreams=[]);const t=this._localStreams.indexOf(e);if(-1===t)return;this._localStreams.splice(t,1);const i=e.getTracks();this.getSenders().forEach((e=>{i.includes(e.track)&&this.removeTrack(e)}))})}}function ie(e){if("object"==typeof e&&e.RTCPeerConnection&&("getRemoteStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in e.RTCPeerConnection.prototype))){Object.defineProperty(e.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(e){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=e),this.addEventListener("track",this._onaddstreampoly=e=>{e.streams.forEach((e=>{if(this._remoteStreams||(this._remoteStreams=[]),this._remoteStreams.includes(e))return;this._remoteStreams.push(e);const t=new Event("addstream");t.stream=e,this.dispatchEvent(t)}))})}});const t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){const e=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(t){t.streams.forEach((t=>{if(e._remoteStreams||(e._remoteStreams=[]),e._remoteStreams.indexOf(t)>=0)return;e._remoteStreams.push(t);const i=new Event("addstream");i.stream=t,e.dispatchEvent(i)}))}),t.apply(e,arguments)}}}function re(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype,i=t.createOffer,r=t.createAnswer,o=t.setLocalDescription,n=t.setRemoteDescription,s=t.addIceCandidate;t.createOffer=function(e,t){const r=arguments.length>=2?arguments[2]:arguments[0],o=i.apply(this,[r]);return t?(o.then(e,t),Promise.resolve()):o},t.createAnswer=function(e,t){const i=arguments.length>=2?arguments[2]:arguments[0],o=r.apply(this,[i]);return t?(o.then(e,t),Promise.resolve()):o};let a=function(e,t,i){const r=o.apply(this,[e]);return i?(r.then(t,i),Promise.resolve()):r};t.setLocalDescription=a,a=function(e,t,i){const r=n.apply(this,[e]);return i?(r.then(t,i),Promise.resolve()):r},t.setRemoteDescription=a,a=function(e,t,i){const r=s.apply(this,[e]);return i?(r.then(t,i),Promise.resolve()):r},t.addIceCandidate=a}function oe(e){const t=e&&e.navigator;if(t.mediaDevices&&t.mediaDevices.getUserMedia){const e=t.mediaDevices,i=e.getUserMedia.bind(e);t.mediaDevices.getUserMedia=e=>i(ne(e))}!t.getUserMedia&&t.mediaDevices&&t.mediaDevices.getUserMedia&&(t.getUserMedia=function(e,i,r){t.mediaDevices.getUserMedia(e).then(i,r)}.bind(t))}function ne(e){return e&&void 0!==e.video?Object.assign({},e,{video:R(e.video)}):e}function se(e){if(!e.RTCPeerConnection)return;const t=e.RTCPeerConnection;e.RTCPeerConnection=function(e,i){if(e&&e.iceServers){const t=[];for(let i=0;i<e.iceServers.length;i++){let r=e.iceServers[i];!r.hasOwnProperty("urls")&&r.hasOwnProperty("url")?(u("RTCIceServer.url","RTCIceServer.urls"),r=JSON.parse(JSON.stringify(r)),r.urls=r.url,delete r.url,t.push(r)):t.push(e.iceServers[i])}e.iceServers=t}return new t(e,i)},e.RTCPeerConnection.prototype=t.prototype,"generateCertificate"in t&&Object.defineProperty(e.RTCPeerConnection,"generateCertificate",{get:()=>t.generateCertificate})}function ae(e){"object"==typeof e&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function de(e){const t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(e){if(e){void 0!==e.offerToReceiveAudio&&(e.offerToReceiveAudio=!!e.offerToReceiveAudio);const t=this.getTransceivers().find((e=>"audio"===e.receiver.track.kind));!1===e.offerToReceiveAudio&&t?"sendrecv"===t.direction?t.setDirection?t.setDirection("sendonly"):t.direction="sendonly":"recvonly"===t.direction&&(t.setDirection?t.setDirection("inactive"):t.direction="inactive"):!0!==e.offerToReceiveAudio||t||this.addTransceiver("audio"),void 0!==e.offerToReceiveVideo&&(e.offerToReceiveVideo=!!e.offerToReceiveVideo);const i=this.getTransceivers().find((e=>"video"===e.receiver.track.kind));!1===e.offerToReceiveVideo&&i?"sendrecv"===i.direction?i.setDirection?i.setDirection("sendonly"):i.direction="sendonly":"recvonly"===i.direction&&(i.setDirection?i.setDirection("inactive"):i.direction="inactive"):!0!==e.offerToReceiveVideo||i||this.addTransceiver("video")}return t.apply(this,arguments)}}function ce(e){"object"!=typeof e||e.AudioContext||(e.AudioContext=e.webkitAudioContext)}var _e=Object.freeze({__proto__:null,shimLocalStreamsAPI:te,shimRemoteStreamsAPI:ie,shimCallbacksAPI:re,shimGetUserMedia:oe,shimConstraints:ne,shimRTCIceServerUrls:se,shimTrackEventTransceiver:ae,shimCreateOfferLegacy:de,shimAudioContext:ce});function le(e){if(!e.RTCIceCandidate||e.RTCIceCandidate&&"foundation"in e.RTCIceCandidate.prototype)return;const t=e.RTCIceCandidate;e.RTCIceCandidate=function(e){if("object"==typeof e&&e.candidate&&0===e.candidate.indexOf("a=")&&((e=JSON.parse(JSON.stringify(e))).candidate=e.candidate.substr(2)),e.candidate&&e.candidate.length){const i=new t(e),r=k.parseCandidate(e.candidate),o=Object.assign(i,r);return o.toJSON=function(){return{candidate:o.candidate,sdpMid:o.sdpMid,sdpMLineIndex:o.sdpMLineIndex,usernameFragment:o.usernameFragment}},o}return new t(e)},e.RTCIceCandidate.prototype=t.prototype,d(e,"icecandidate",(t=>(t.candidate&&Object.defineProperty(t,"candidate",{value:new e.RTCIceCandidate(t.candidate),writable:"false"}),t)))}function ue(e,t){if(!e.RTCPeerConnection)return;"sctp"in e.RTCPeerConnection.prototype||Object.defineProperty(e.RTCPeerConnection.prototype,"sctp",{get(){return void 0===this._sctp?null:this._sctp}});const i=function(e){if(!e||!e.sdp)return!1;const t=k.splitSections(e.sdp);return t.shift(),t.some((e=>{const t=k.parseMLine(e);return t&&"application"===t.kind&&-1!==t.protocol.indexOf("SCTP")}))},r=function(e){const t=e.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(null===t||t.length<2)return-1;const i=parseInt(t[1],10);return i!=i?-1:i},o=function(e){let i=65536;return"firefox"===t.browser&&(i=t.version<57?-1===e?16384:2147483637:t.version<60?57===t.version?65535:65536:2147483637),i},n=function(e,i){let r=65536;"firefox"===t.browser&&57===t.version&&(r=65535);const o=k.matchPrefix(e.sdp,"a=max-message-size:");return o.length>0?r=parseInt(o[0].substr(19),10):"firefox"===t.browser&&-1!==i&&(r=2147483637),r},s=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,"chrome"===t.browser&&t.version>=76){const{sdpSemantics:e}=this.getConfiguration();"plan-b"===e&&Object.defineProperty(this,"sctp",{get(){return void 0===this._sctp?null:this._sctp},enumerable:!0,configurable:!0})}if(i(arguments[0])){const e=r(arguments[0]),t=o(e),i=n(arguments[0],e);let s;s=0===t&&0===i?Number.POSITIVE_INFINITY:0===t||0===i?Math.max(t,i):Math.min(t,i);const a={};Object.defineProperty(a,"maxMessageSize",{get:()=>s}),this._sctp=a}return s.apply(this,arguments)}}function he(e){if(!e.RTCPeerConnection||!("createDataChannel"in e.RTCPeerConnection.prototype))return;function t(e,t){const i=e.send;e.send=function(){const r=arguments[0],o=r.length||r.size||r.byteLength;if("open"===e.readyState&&t.sctp&&o>t.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+t.sctp.maxMessageSize+" bytes)");return i.apply(e,arguments)}}const i=e.RTCPeerConnection.prototype.createDataChannel;e.RTCPeerConnection.prototype.createDataChannel=function(){const e=i.apply(this,arguments);return t(e,this),e},d(e,"datachannel",(e=>(t(e.channel,e.target),e)))}function Re(e){if(!e.RTCPeerConnection||"connectionState"in e.RTCPeerConnection.prototype)return;const t=e.RTCPeerConnection.prototype;Object.defineProperty(t,"connectionState",{get(){return{completed:"connected",checking:"connecting"}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(t,"onconnectionstatechange",{get(){return this._onconnectionstatechange||null},set(e){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),e&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=e)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach((e=>{const i=t[e];t[e]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=e=>{const t=e.target;if(t._lastConnectionState!==t.connectionState){t._lastConnectionState=t.connectionState;const i=new Event("connectionstatechange",e);t.dispatchEvent(i)}return e},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),i.apply(this,arguments)}}))}function pe(e,t){if(!e.RTCPeerConnection)return;if("chrome"===t.browser&&t.version>=71)return;if("safari"===t.browser&&t.version>=605)return;const i=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(t){if(t&&t.sdp&&-1!==t.sdp.indexOf("\na=extmap-allow-mixed")){const i=t.sdp.split("\n").filter((e=>"a=extmap-allow-mixed"!==e.trim())).join("\n");e.RTCSessionDescription&&t instanceof e.RTCSessionDescription?arguments[0]=new e.RTCSessionDescription({type:t.type,sdp:i}):t.sdp=i}return i.apply(this,arguments)}}function ve(e,t){if(!e.RTCPeerConnection||!e.RTCPeerConnection.prototype)return;const i=e.RTCPeerConnection.prototype.addIceCandidate;i&&0!==i.length&&(e.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?("chrome"===t.browser&&t.version<78||"firefox"===t.browser&&t.version<68||"safari"===t.browser)&&arguments[0]&&""===arguments[0].candidate?Promise.resolve():i.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})}var Ce=Object.freeze({__proto__:null,shimRTCIceCandidate:le,shimMaxMessageSize:ue,shimSendThrowTypeError:he,shimConnectionState:Re,removeExtmapAllowMixed:pe,shimAddIceCandidateNullOrEmpty:ve});const ge=function({window:e}={},t={shimChrome:!0,shimFirefox:!0,shimEdge:!0,shimSafari:!0}){const i=l,r=function(e){const t={browser:null,version:null};if(void 0===e||!e.navigator)return t.browser="Not a browser.",t;const{navigator:i}=e;if(i.mozGetUserMedia)t.browser="firefox",t.version=a(i.userAgent,/Firefox\/(\d+)\./,1);else if(i.webkitGetUserMedia||!1===e.isSecureContext&&e.webkitRTCPeerConnection&&!e.RTCIceGatherer)t.browser="chrome",t.version=a(i.userAgent,/Chrom(e|ium)\/(\d+)\./,2);else if(i.mediaDevices&&i.userAgent.match(/Edge\/(\d+).(\d+)$/))t.browser="edge",t.version=a(i.userAgent,/Edge\/(\d+).(\d+)$/,2);else{if(!e.RTCPeerConnection||!i.userAgent.match(/AppleWebKit\/(\d+)\./))return t.browser="Not a supported browser.",t;t.browser="safari",t.version=a(i.userAgent,/AppleWebKit\/(\d+)\./,1),t.supportsUnifiedPlan=e.RTCRtpTransceiver&&"currentDirection"in e.RTCRtpTransceiver.prototype}return t}(e),o={browserDetails:r,commonShim:Ce,extractVersion:a,disableLog:c,disableWarnings:_};switch(r.browser){case"chrome":if(!N||!L||!t.shimChrome)return i("Chrome shim is not included in this adapter release."),o;if(null===r.version)return i("Chrome shim can not determine version, not shimming."),o;i("adapter.js shimming chrome."),o.browserShim=N,ve(e,r),g(e,r),m(e),L(e,r),T(e),O(e,r),I(e),S(e),E(e),A(e,r),le(e),Re(e),ue(e,r),he(e),pe(e,r);break;case"firefox":if(!ee||!j||!t.shimFirefox)return i("Firefox shim is not included in this adapter release."),o;i("adapter.js shimming firefox."),o.browserShim=ee,ve(e,r),K(e,r),j(e,r),H(e),q(e),$(e),Y(e),W(e),z(e),Z(e),Q(e),X(e),le(e),Re(e),ue(e,r),he(e);break;case"edge":if(!G||!F||!t.shimEdge)return i("MS edge shim is not included in this adapter release."),o;i("adapter.js shimming edge."),o.browserShim=G,B(e),V(e),F(e,r),J(e),ue(e,r),he(e);break;case"safari":if(!_e||!t.shimSafari)return i("Safari shim is not included in this adapter release."),o;i("adapter.js shimming safari."),o.browserShim=_e,ve(e,r),se(e),de(e),re(e),te(e),ie(e),ae(e),oe(e),ce(e),le(e),ue(e,r),he(e),pe(e,r);break;default:i("Unsupported browser!")}return o}({window:"undefined"==typeof window?void 0:window});var me,Te,Ie;exports.RCFrameRate=void 0,(me=exports.RCFrameRate||(exports.RCFrameRate={})).FPS_10="FPS_10",me.FPS_15="FPS_15",me.FPS_24="FPS_24",me.FPS_30="FPS_30",exports.RCResolution=void 0,(Te=exports.RCResolution||(exports.RCResolution={})).W176_H132="W176_H132",Te.W176_H144="W176_H144",Te.W180_H180="W180_H180",Te.W240_H180="W240_H180",Te.W240_H240="W240_H240",Te.W256_H144="W256_H144",Te.W320_H180="W320_H180",Te.W320_H240="W320_H240",Te.W360_H360="W360_H360",Te.W480_H360="W480_H360",Te.W480_H480="W480_H480",Te.W640_H360="W640_H360",Te.W640_H480="W640_H480",Te.W720_H480="W720_H480",Te.W848_H480="W848_H480",Te.W960_H720="W960_H720",Te.W1280_H720="W1280_H720",Te.W1920_H1080="W1920_H1080",exports.RCMediaType=void 0,(Ie=exports.RCMediaType||(exports.RCMediaType={}))[Ie.AUDIO_ONLY=0]="AUDIO_ONLY",Ie[Ie.VIDEO_ONLY=1]="VIDEO_ONLY",Ie[Ie.AUDIO_VIDEO=2]="AUDIO_VIDEO";const Se={[exports.RCResolution.W176_H132]:{width:176,height:132,maxBitrate:150,minBitrate:80},[exports.RCResolution.W176_H144]:{width:176,height:144,maxBitrate:150,minBitrate:80},[exports.RCResolution.W180_H180]:{width:180,height:180,maxBitrate:200,minBitrate:100},[exports.RCResolution.W240_H180]:{width:240,height:180,maxBitrate:240,minBitrate:120},[exports.RCResolution.W240_H240]:{width:240,height:240,maxBitrate:280,minBitrate:120},[exports.RCResolution.W256_H144]:{width:256,height:144,maxBitrate:240,minBitrate:120},[exports.RCResolution.W320_H180]:{width:320,height:180,maxBitrate:280,minBitrate:120},[exports.RCResolution.W320_H240]:{width:320,height:240,maxBitrate:400,minBitrate:120},[exports.RCResolution.W360_H360]:{width:360,height:360,maxBitrate:520,minBitrate:140},[exports.RCResolution.W480_H360]:{width:480,height:360,maxBitrate:650,minBitrate:150},[exports.RCResolution.W480_H480]:{width:480,height:480,maxBitrate:800,minBitrate:180},[exports.RCResolution.W640_H360]:{width:640,height:360,maxBitrate:800,minBitrate:180},[exports.RCResolution.W640_H480]:{width:640,height:480,maxBitrate:900,minBitrate:200},[exports.RCResolution.W720_H480]:{width:720,height:480,maxBitrate:1e3,minBitrate:200},[exports.RCResolution.W848_H480]:{width:848,height:480,maxBitrate:1860,minBitrate:200},[exports.RCResolution.W960_H720]:{width:960,height:720,maxBitrate:2e3,minBitrate:250},[exports.RCResolution.W1280_H720]:{width:1280,height:720,maxBitrate:2200,minBitrate:250},[exports.RCResolution.W1920_H1080]:{width:1920,height:1080,maxBitrate:4e3,minBitrate:400}},Ee=e=>{const t={192:180,368:360,1088:1080};return t[e]?t[e]:e},fe=(e,t)=>{e=Ee(e),t=Ee(t);const i=Se[`W${e}_H${t}`];if(i)return i;const r=e*t;return Object.keys(Se).map((e=>Se[e])).sort(((e,t)=>e.height*e.width-t.width*t.height)).filter((e=>e.height*e.width>=r))[0]||Se.W1920_H1080},Oe={10:1,15:1,24:1.5,30:1.5},Le=e=>{let t=Number.MAX_VALUE,i=1;for(const r in Oe){const o=Math.abs(e-parseInt(r));o<t&&(t=o,i=Oe[r])}return i};class Ae{constructor(){this._logger=null}setLogger(e){this._logger=e}getLogger(){return this._logger}createTraceId(){var e;return(null===(e=this._logger)||void 0===e?void 0:e.createTraceId())||`${Date.now()}`}debug(e,t,i){var r;null===(r=this._logger)||void 0===r||r.debug(e,t,i)}info(e,t,i){var r;null===(r=this._logger)||void 0===r||r.info(e,t,i)}warn(e,t,i){var r;null===(r=this._logger)||void 0===r||r.warn(e,t,i)}error(e,t,i){var r;null===(r=this._logger)||void 0===r||r.error(e,t,i)}__statistics(e,t,i){var r;null===(r=this._logger)||void 0===r||r.__statistics(e,t,i)}static setLogger(e){this._logger=e}static getLogger(){return this._logger}}Ae._logger=null;const Ne=new Ae,ye={getCameras:()=>o(void 0,void 0,void 0,(function*(){return(yield navigator.mediaDevices.enumerateDevices()).filter((e=>"videoinput"===e.kind))})),getMicrophones:()=>o(void 0,void 0,void 0,(function*(){return(yield navigator.mediaDevices.enumerateDevices()).filter((e=>"audioinput"===e.kind))})),getSpeakers:()=>o(void 0,void 0,void 0,(function*(){return(yield navigator.mediaDevices.enumerateDevices()).filter((e=>"audiooutput"===e.kind))}))};var De,ke;!function(e){e.AUDIO="audio",e.VIDEO="video"}(De||(De={}));class be extends r.EventEmitter{constructor(e,t,i,r,o){super(),this._tag=e,this._userId=t,this._kind=i,this._isLocalTrack=r,this._roomId=o,this._localMuted=!1,this._remoteMuted=!1,this._logger=null,this.DataTrackId="data-track-id",this._streamId=[this._userId||this._roomId,this._tag].join("_"),this._id=[this._streamId,this.isAudioTrack()?0:1].join("_"),this._logger=Ae.getLogger()}getStreamId(){return this._streamId}getTrackId(){return this._id}getUserId(){return this._userId}__innerGetMediaStreamTrack(){return this._msTrack}get streamTrack(){return this._msTrack}getTag(){return this._tag}isLocalTrack(){return this._isLocalTrack}isVideoTrack(){return"video"===this._kind}isAudioTrack(){return"audio"===this._kind}isReady(){var e;return"live"===(null===(e=this._msTrack)||void 0===e?void 0:e.readyState)}__innerSetMediaStreamTrack(e){this._msTrack=e,this._setLocalMuted(this._localMuted);const t=this._msStream=this._msStream||new MediaStream,i=t.getTracks()[0];i&&t.removeTrack(i),e?t.addTrack(e):this._element&&this._element.getAttribute(this.DataTrackId)===this.getTrackId()&&(this._element.pause(),this._element.srcObject=null)}_setLocalMuted(e){this._msTrack&&(this._msTrack.enabled=!e),this._localMuted=e}mute(){return this._setLocalMuted(!0)}unmute(){return this._setLocalMuted(!1)}isLocalMuted(){return this._localMuted}isMCUTrack(){return Boolean(this._roomId)}isOwnerMuted(){return this._remoteMuted}play(e,n){var s,a,d,c,_,l,u,h,R;return o(this,void 0,void 0,(function*(){if(null===(s=this._logger)||void 0===s||s.info(t.L_TRACK_PLAY_O,JSON.stringify({element:e,options:n,msg:`start play trackId: ${this._id}`})),!this._msTrack)return null===(a=this._logger)||void 0===a||a.error(t.L_TRACK_PLAY_E,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.TRACK_NOT_READY,msg:`the track is not ready to play -> id: ${this._id}`})),{code:exports.RCRTCCode.TRACK_NOT_READY};if("ended"===this._msTrack.readyState&&(null===(d=this._logger)||void 0===d||d.error(t.L_TRACK_PLAY_E,JSON.stringify({status:i.FAILED,msg:`the track's readyState is ended -> id: ${this._id}`}))),null==n?void 0:n.volume){if(!r.isNumber(null==n?void 0:n.volume))return null===(c=this._logger)||void 0===c||c.error(t.L_TRACK_PLAY_E,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> options.volume not a number"})),{code:exports.RCRTCCode.PARAMS_ERROR};(null==n?void 0:n.volume)<0&&(n.volume=0,null===(_=this._logger)||void 0===_||_.warn(t.L_TRACK_PLAY_E,JSON.stringify({status:i.FAILED,msg:"params error -> options.volume < 0",tips:"the valid range of options.volume is 0-100, the value of volume has been set 0"}))),(null==n?void 0:n.volume)>100&&(n.volume=100,null===(l=this._logger)||void 0===l||l.warn(t.L_TRACK_PLAY_E,JSON.stringify({status:i.FAILED,msg:"params error -> options.volume > 100",tips:"the valid range of options.volume is 0-100, the value of volume has been set 100"})))}if(null==n?void 0:n.audioDeviceId){if(!(yield ye.getSpeakers()).map((e=>e.deviceId)).includes(n.audioDeviceId))return null===(u=this._logger)||void 0===u||u.error(t.L_TRACK_PLAY_E,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> options.audioDeviceId"})),{code:exports.RCRTCCode.PARAMS_ERROR}}const p=this.isVideoTrack();return!p||e&&(e instanceof HTMLVideoElement||this.__validateVideoNodeName(e))?(this._element=p?e:this._element||new Audio,this._localMuted&&this._setLocalMuted(!1),this._element.srcObject&&this._element.srcObject===this._msStream||this._element.pause(),this._element.onloadstart=e=>{var r,o;null===(r=this._logger)||void 0===r||r.info(t.L_TRACK_LOAD_START_O,JSON.stringify({status:i.INFO,msg:`HTMLMediaElement onloadstart -> id: ${null===(o=e.target)||void 0===o?void 0:o.id}, trackId: ${this._id}`}))},this._element.ondurationchange=e=>{var r,o;null===(r=this._logger)||void 0===r||r.info(t.L_TRACK_DURATION_CHANGE_O,JSON.stringify({status:i.INFO,msg:`HTMLMediaElement ondurationchange -> id: ${null===(o=e.target)||void 0===o?void 0:o.id}, trackId: ${this._id}`}))},this._element.onloadedmetadata=e=>{var r,o;null===(r=this._logger)||void 0===r||r.info(t.L_TRACK_LOADED_META_DATA_O,JSON.stringify({status:i.INFO,msg:`HTMLMediaElement onloadedmetadata -> id: ${null===(o=e.target)||void 0===o?void 0:o.id}, trackId: ${this._id}`}))},this._element.onloadeddata=e=>{var r,o;null===(r=this._logger)||void 0===r||r.info(t.L_TRACK_LOADED_DATA_O,JSON.stringify({status:i.INFO,msg:`HTMLMediaElement onloadeddata -> id: ${null===(o=e.target)||void 0===o?void 0:o.id}, trackId: ${this._id}`}))},this._element.onabort=e=>{var r,o;null===(r=this._logger)||void 0===r||r.info(t.L_TRACK_ABORT_O,JSON.stringify({status:i.INFO,msg:`HTMLMediaElement onabort -> id: ${null===(o=e.target)||void 0===o?void 0:o.id}, trackId: ${this._id}`}))},this._element.oncanplay=e=>o(this,void 0,void 0,(function*(){var r,o,s,a,d;null===(r=this._logger)||void 0===r||r.info(t.L_TRACK_CANPLAY_O,JSON.stringify({status:i.INFO,msg:`HTMLMediaElement oncanplay -> id: ${null===(o=e.target)||void 0===o?void 0:o.id}, trackId: ${this._id}`}));try{yield null===(s=this._element)||void 0===s?void 0:s.play(),(null==n?void 0:n.audioDeviceId)&&!p&&(yield this._element.setSinkId(n.audioDeviceId))}catch(e){if("No permission to use requested device"===e.message)return void(null===(a=this._logger)||void 0===a||a.error(t.L_TRACK_PLAY_E,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.NO_PERMISSION_TO_USE_REQUESTED_DEVICE,msg:`setSinkId failed, error msg: ${e.message}`})));null===(d=this._logger)||void 0===d||d.error(t.L_TRACK_PLAY_E,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.TRACK_PLAY_ERROR,msg:`play error, error msg: ${e.message}`}))}})),this._element.onvolumechange=e=>{var r,o,n;const s=Math.floor(100*(null===(r=e.target)||void 0===r?void 0:r.volume));null===(o=this._logger)||void 0===o||o.info(t.L_TRACK_VOLUME_CHANGE_O,JSON.stringify({status:i.INFO,msg:`HTMLMediaElement onvolumechange -> id: ${null===(n=e.target)||void 0===n?void 0:n.id}, volume: ${s}, trackId: ${this._id}`}))},this._element.srcObject=this._msStream,this._element.autoplay=!0,p&&(this._element.playsInline=!0,this._element.x5PlaysInline=!0,this._element.webkitPlaysInline=!0),p||!(null==n?void 0:n.volume)&&0!==(null==n?void 0:n.volume)||(this._element.volume=(null==n?void 0:n.volume)/100),null===(R=this._element)||void 0===R||R.setAttribute(this.DataTrackId,this.getTrackId()),{code:exports.RCRTCCode.SUCCESS}):(null===(h=this._logger)||void 0===h||h.error(t.L_TRACK_PLAY_E,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.VIDEO_TRACK_MISS_MEDIA_ELEMENT,msg:"params element is not a HTMLVideoElement"})),{code:exports.RCRTCCode.VIDEO_TRACK_MISS_MEDIA_ELEMENT})}))}__innerDestroy(){this.__innerSetMediaStreamTrack(void 0)}__releaseMediaElement(){this._element&&this._element.getAttribute(this.DataTrackId)===this.getTrackId()&&(this._element.remove(),this._element.srcObject=null)}__validateVideoNodeName(e){return e&&e.nodeName&&"VIDEO"===e.nodeName.toUpperCase()}}exports.RCAudioBitrate=void 0,(ke=exports.RCAudioBitrate||(exports.RCAudioBitrate={})).Speech="Speech",ke.Music="Music",ke.MusicHigh="MusicHigh";const xe={[exports.RCAudioBitrate.Music]:{max:64,min:64},[exports.RCAudioBitrate.MusicHigh]:{max:128,min:128},[exports.RCAudioBitrate.Speech]:{max:32,min:32}};var Ue;exports.RCVideoBitrate=void 0,(Ue=exports.RCVideoBitrate||(exports.RCVideoBitrate={})).LEVEL0="LEVEL0",Ue.LEVEL1="LEVEL1",Ue.LEVEL2="LEVEL2",Ue.LEVEL3="LEVEL3",Ue.LEVEL4="LEVEL4",Ue.LEVEL5="LEVEL5";const Pe={[exports.RCVideoBitrate.LEVEL0]:{max:150,min:80},[exports.RCVideoBitrate.LEVEL1]:{max:280,min:120},[exports.RCVideoBitrate.LEVEL2]:{max:650,min:150},[exports.RCVideoBitrate.LEVEL3]:{max:1e3,min:200},[exports.RCVideoBitrate.LEVEL4]:{max:2200,min:250},[exports.RCVideoBitrate.LEVEL5]:{max:4e3,min:400}};class Me{static setStatus(e=!0){Me.isOpen=e}static setWroklet(e,t){Me.workletModule=e,Me.workletModule=t}static transformStreamTrack(e){var r;return o(this,void 0,void 0,(function*(){const o=Ae.getLogger();if(!Me.isOpen)return new Promise((t=>{t({track:null==e?void 0:e.getAudioTracks()[0],stop:()=>{}})}));let n=new AudioContext({sampleRate:44100}),s=n.createMediaStreamSource(e),a=n.createMediaStreamDestination(),d=null,c=null;if(d=yield n.audioWorklet.addModule(Me.workletModule).then((()=>(null==o||o.info(t.L_RTC_3ANOISE_NODE_O,JSON.stringify({status:i.SUCCESSED,message:{msg:"addModule RC3AnoiseTrack.workletModule success"}})),fetch(Me.workletWasm,{cache:"force-cache",credentials:"same-origin"}).then((e=>e.arrayBuffer())).catch((e=>{throw new Error(e.message)}))))).then((e=>(c=new AudioWorkletNode(n,"process-worklet",{numberOfInputs:1,numberOfOutputs:1,outputChannelCount:[1],processorOptions:{binary:e}}),c))).catch((e=>{null==o||o.info(t.L_RTC_3ANOISE_NODE_E,JSON.stringify({status:i.FAILED,message:{msg:e.message}}))})),!d)return new Promise((t=>{t({track:null==e?void 0:e.getAudioTracks()[0],stop:()=>{}})}));s.connect(d).connect(a);let _=null===(r=null==a?void 0:a.stream)||void 0===r?void 0:r.getAudioTracks()[0],l=()=>{null==o||o.info(t.L_RTC_3ANOISE_NODE_STOP_O,JSON.stringify({status:i.SUCCESSED,message:{msg:"call stop RC3AnoiseTrack.workletModule"}})),null==d||d.port.postMessage({type:"stop",msg:""}),setTimeout((()=>{const t=null==e?void 0:e.getAudioTracks()[0];null==t||t.stop(),null==n||n.suspend(),null==n||n.close(),null==a||a.disconnect(),null==d||d.disconnect(),null==s||s.disconnect(),n=null,d=null,a=null,s=null,c=null,e=null,null==_||_.stop(),_=null,l=null}),200)};return{track:_,stop:l}}))}}Me.workletModule="https://cdn.ronghub.com/plugin-rtc/wasm/5.0.0-alpha.2/process-worklet.js",Me.workletWasm="https://cdn.ronghub.com/plugin-rtc/wasm/5.0.0-alpha.2/AudioProcessing.wasm",Me.isOpen=!1;class we extends be{constructor(e,t,i,r){super(e,t,i,!0),this._isDestroyed=!1,this._isPublished=!1,this.__innerSetMediaStreamTrack(r),r.onended=()=>{r.onended=null,this.emit(we.EVENT_LOCAL_TRACK_END,this),this.removeAll(we.EVENT_LOCAL_TRACK_END)}}_setLocalMuted(e){return new Promise(((r,o)=>{var n;const s=this._localMuted!==e;super._setLocalMuted(e),this._remoteMuted=this._localMuted,s&&this.emit(we.__INNER_EVENT_MUTED_CHANGE__,this,r),null===(n=this._logger)||void 0===n||n.info(t.L_LOCAL_TRACK_SET_LOCAL_MUTED_O,JSON.stringify({status:i.SUCCESSED,enable:e,trackId:this._id}))}))}__innerSetPublished(e){this._isPublished=e}isPublished(){return this._isPublished}destroy(){var e,r;this._isDestroyed=!0,null===(e=this._msTrack)||void 0===e||e.stop(),super.__innerDestroy(),this.isAudioTrack()&&super.__releaseMediaElement(),this.emit(we.__INNER_EVENT_DESTROY__,this),null===(r=this._logger)||void 0===r||r.info(t.L_LOCAL_TRACK_DESTROY_O,JSON.stringify({status:i.SUCCESSED,trackId:this._id}))}isDestroyed(){return this._isDestroyed}setBitrate(e=0,o=0,n=0){var s,a;!r.isNumber(e)||!r.isNumber(o)||!r.isNumber(n)||e<=0||o<=0||e<o?null===(s=this._logger)||void 0===s||s.error(t.L_LOCAL_TRACK_SET_BITRATE_O,JSON.stringify({status:i.FAILED,msg:`params error -> max: ${e},min: ${o}, start: ${n}`,trackId:this._id})):(null===(a=this._logger)||void 0===a||a.info(t.L_LOCAL_TRACK_SET_BITRATE_O,JSON.stringify({status:i.SUCCESSED,max:e,min:o,start:n,trackId:this._id})),this._bitrateInfo={max:e,min:o,start:n})}getBitrate(){var e,t,i,r,o,n,s;let{min:a,max:d,start:c}={min:0,max:0,start:0};return(null===(e=this._msTrack)||void 0===e?void 0:e.kind)===De.VIDEO?({min:a,max:d}=it(this._msTrack)):(null===(t=this._msTrack)||void 0===t?void 0:t.kind)===De.AUDIO&&({min:a,max:d}={min:32,max:32}),(null===(i=this._bitrateInfo)||void 0===i?void 0:i.max)&&(c=.7*(null===(r=this._bitrateInfo)||void 0===r?void 0:r.max)),{min:(null===(o=this._bitrateInfo)||void 0===o?void 0:o.min)||a,max:(null===(n=this._bitrateInfo)||void 0===n?void 0:n.max)||d,start:(null===(s=this._bitrateInfo)||void 0===s?void 0:s.start)||c}}}we.EVENT_LOCAL_TRACK_END="local-track-end",we.__INNER_EVENT_MUTED_CHANGE__="inner-muted-change",we.__INNER_EVENT_DESTROY__="inner-destroy";class Be extends we{constructor(e,t,i){super(e,t,"audio",i),this._stopProcess=()=>{}}setRecommendBitrate(e){const o=Ae.getLogger();if(!r.validate("audioBitrate",e,(e=>e in exports.RCAudioBitrate)))return void(null==o||o.warn(t.L_RTC_SET_RECOMMEND_BITRATE_O,JSON.stringify({status:i.FAILED,msg:"params error -> params type is RCAudioBitrate"})));const n=xe[e];this.setBitrate(n.max,n.min,n.start||.7*n.max)}setBitrate(e,...t){const[i=1,r=.7*e||1]=t;super.setBitrate(e,i,r)}__innerSetMediaStreamTrack(e){if(e)if(Me.isOpen){const t=new MediaStream([e]);Me.transformStreamTrack(t).then((({track:e,stop:t})=>{super.__innerSetMediaStreamTrack(e),this._stopProcess=t}))}else super.__innerSetMediaStreamTrack(e);else super.__innerSetMediaStreamTrack(e),this._stopProcess()}}class Ve extends we{constructor(e,t,i,r=!1){super(e,t,"video",i),this._isTiny=r}__isTiny(){return this._isTiny}getStreamId(){const e=super.getStreamId();return this._isTiny?`${e}_tiny`:e}getTrackId(){const e=super.getTrackId();return this._isTiny?`${e}_tiny`:e}setRecommendBitrate(e){const o=Ae.getLogger();if(!r.validate("videoBitrate",e,(e=>e in exports.RCVideoBitrate)))return void(null==o||o.warn(t.L_RTC_SET_RECOMMEND_BITRATE_O,JSON.stringify({status:i.FAILED,msg:"params error -> params type is RCVideoBitrate"})));const n=Pe[e];this.setBitrate(n.max,n.min,n.start||.7*n.max)}setBitrate(e,...t){const[i=1,r=.7*e||1]=t;super.setBitrate(e,i,r)}}class Fe extends we{constructor(e,t,i,r,o){super(e,t,i,r),this._resource=o,Fe.__innerSetMapping(this.getTrackId(),o)}static __innerSetMapping(e,t){const i=this._mapping.get(t)||[];i.push(e),this._mapping.set(t,i)}static __innerRemoveMapping(e,t){var i,r;const o=null===(i=this._mapping.get(t))||void 0===i?void 0:i.filter((t=>t!==e));o&&o.length>0?this._mapping.set(t,o):(this._mapping.delete(t),t.pause(),t.src="",null===(r=t.parentNode)||void 0===r||r.removeChild(t))}destroy(){this.isAudioTrack()&&this.mute(),Fe.__innerRemoveMapping(this.getTrackId(),this._resource),super.destroy()}}Fe._mapping=new Map;class Je extends Fe{constructor(e,t,i,r){super(e,t,"video",i,r)}}class Ge extends Fe{constructor(e,t,i,r){super(e,t,"audio",i,r),this._stopProcess=()=>{}}_setLocalMuted(e){const t=Object.create(null,{_setLocalMuted:{get:()=>super._setLocalMuted}});return o(this,void 0,void 0,(function*(){return this._resource&&(this._resource.muted=e),t._setLocalMuted.call(this,e)}))}play(){return this._setLocalMuted(!1),Promise.resolve({code:exports.RCRTCCode.SUCCESS})}__innerSetMediaStreamTrack(e){if(e)if(Me.isOpen){const t=new MediaStream([e]);Me.transformStreamTrack(t).then((({track:e,stop:t})=>{super.__innerSetMediaStreamTrack(e),this._stopProcess=t}))}else super.__innerSetMediaStreamTrack(e);else super.__innerSetMediaStreamTrack(e),this._stopProcess()}}class Ke extends Be{}class He extends Ve{}class je extends Ve{}class $e extends Be{}class Ye extends be{constructor(e,t,i,r){super(e,t,i,!1,r),this._isSubscribed=!1}__innerSetRemoteMuted(e){this._remoteMuted=e}__innerSetSubscribed(e){this._isSubscribed=e}isSubscribed(){return this._isSubscribed}}class qe extends Ye{constructor(e,t,i){super(e,t,"audio",i)}}class We extends Ye{constructor(e,t,i){super(e,t,"video",i),this._isSubTiny=!1}__innerSetIsTinyTrack(e){this._isSubTiny=e}isSubTiny(){return this._isSubTiny}}const ze=(e,t)=>({name:e,content:JSON.stringify({uris:t,ignore:!0})}),Ze=e=>JSON.stringify(e),Qe=e=>/^[a-zA-Z\d-=]+$/g.test(e),Xe="http:"!==location.protocol||["localhost","127.0.0.1"].includes(location.hostname),et=e=>{if(void 0===e)return 0;if(r.isNumber(e))return e;const t=e;return t.exact||t.ideal||t.max||0},tt=e=>{const t=e.getSettings(),i=e.getConstraints();return{width:et(i.width)||t.width||0,height:et(i.height)||t.height||0,frameRate:t.frameRate||et(i.frameRate)}},it=e=>{const{width:t,height:i,frameRate:r}=tt(e),o=fe(t||1920,i||1080),n=Le(r);return{min:o.minBitrate*n,max:o.maxBitrate*n}},rt=e=>[e.msid,e.mediaType].join("_"),ot=e=>{const t=e.split("_");return{mediaType:parseInt(t.pop()),tag:t.pop(),userId:t.join("_")}},nt=(e,t)=>[e,t].join("_"),st=e=>e.map((e=>Object.assign({},e))),at=(e,t,i=!1)=>{e=e.slice();const r=[],o=[],n=[];return t.forEach((t=>{const o=rt(t);let s=e.findIndex((e=>rt(e)===o));if(i&&(s=e.findIndex((e=>e.uri===t.uri))),-1===s)return void r.push(t);const a=e[s];a.uri!==t.uri?r.push(t):a.state!==t.state&&n.push(t),e.splice(s,1)})),o.push(...e),{publishedList:r,unpublishedList:o,modifiedList:n}},dt=()=>{let e="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}));return e=`${e.replace(/-/g,"")}0`,e=parseInt(e,16),e=(e=>{const t="0123456789abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ+/".split(""),i=t.length+1;let r=+e;const o=[];do{const e=r%i;r=(r-e)/i,o.unshift(t[e])}while(r);return o.join("")})(e),e.length>22&&(e=e.slice(0,22)),e},ct=e=>{if(Se[e]){const{width:t,height:i}=Se[e];return{width:t,height:i}}const[t,i]=e.split("_").map((e=>parseInt(e.replace(/[^\d]/g,""))));return{width:t,height:i}},_t=e=>!!exports.RCResolution[e],lt=e=>!!exports.RCFrameRate[e],ut=e=>parseInt(e.replace("FPS_","")),ht=(()=>{const{browser:e,version:t,supportsUnifiedPlan:i}=ge.browserDetails;return{browser:e,version:t,supportsUnifiedPlan:!1!==i}})();function Rt(){return"captureStream"in HTMLMediaElement.prototype||"mozCaptureStream"in HTMLMediaElement.prototype}function pt(){return"mediaDevices"in navigator&&"getDisplayMedia"in navigator.mediaDevices}const vt=e=>"[object Null]"===Object.prototype.toString.call(e),Ct=e=>1===e.type,gt=(e,i,r)=>{const o={},n=Object.keys(e.users);return n.length&&n.forEach((n=>{const s=[],a=e.users[n];if(a.extra){const{roomId:e}=JSON.parse(a.extra);if(i!==e)return}if(a.uris)try{s.push(...JSON.parse(a.uris))}catch(e){const i=Ae.getLogger();null==i||i.warn(t.L_PARSE_ROOMDATA_URIS_R,`invalid user data -> userId: ${n}, userData: ${a}`,r)}o[n]=s})),o},mt=(e,t)=>{const i=t.filter((e=>"RC_RTC_SESSIONID"===e.key))[0],r=i?i.value:"",o=t.filter((e=>"RC_ANCHOR_LIST"===e.key)).map((e=>JSON.parse(e.value||"[]")))[0],n=t.filter((e=>e.key.includes("RC_RES_"))).map((e=>JSON.parse(e.value||"{}"))),s=n.length?JSON.parse(n[0].mcu_uris||"[]"):[],a=[];s.forEach((t=>{const{mediaType:i,tag:r}=t,o=i===exports.RCMediaType.AUDIO_ONLY?new qe(r,"",e):new We(r,"",e);a.push(o)}));const d=[],c=[];n.forEach((e=>{const t=JSON.parse(e.uris||"[]");d.push(...t),t.forEach((e=>{const{mediaType:t,tag:i,msid:r}=e,o=r.split("_")[0],n=t===exports.RCMediaType.AUDIO_ONLY?new qe(i,o):new We(i,o);c.push(n)}))}));const _=t.filter((e=>"RC_CDN"===e.key)).map((e=>{const t=JSON.parse(e.value||"[]");return JSON.parse(t.cdn_uris)[0]}))[0];return{sessionId:r,remoteUserIds:o||[],remoteRTCUris:d,remoteMUCUris:s,remoteRTCTracks:c,remoteMCUTracks:a,remoteTracks:[...c,...a],CDNUris:_||{}}},Tt=e=>e instanceof be?e.getTrackId():e.track.getTrackId(),It=e=>{if(!r.isObject(e)||void 0===e.low||void 0===e.high)return e;let{low:t}=e;t<0&&(t+=4294967296),t=t.toString(16);return parseInt(e.high.toString(16)+"00000000".replace(new RegExp(`0{${t.length}}$`),t),16)};var St,Et;!function(e){e.PUBLISH="RCRTC:PublishResource",e.UNPUBLISH="RCRTC:UnpublishResource",e.MODIFY="RCRTC:ModifyResource",e.TOTAL_CONTENT_RESOURCE="RCRTC:TotalContentResources",e.STATE="RCRTC:state",e.ROOM_NOTIFY="RCRTC:RoomNtf",e.USER_NOTIFY="RCRTC:UserNtf",e.KICK="RCRTC:kick",e.PK_INVITE="RCRTC:invite",e.PK_INVITE_TIMEOUT="RCRTC:inviteTimeout",e.PK_CANCEL_INVITE="RCRTC:cancelInvite",e.PK_INVITE_ANSWER="RCRTC:answerInvite",e.PK_END="RCRTC:endInvite",e.OTHER_ROOM_OFFLINE="RCRTC:otherRoomOffline",e.ROOM_TASK_FINISH="RCRTC:roomTaskFinish"}(St||(St={})),exports.RCRTCPingResult=void 0,(Et=exports.RCRTCPingResult||(exports.RCRTCPingResult={})).SUCCESS="Success",Et.FAIL="Fail";class ft{constructor(e,t,i=5e3,r=6e4){this._store=e,this._context=t,this._gap=i,this._offlineKickTime=r,this._latestTimestamp=Date.now(),this._started=!1,this._timer=null,this._pullRTCRoomStatus=(e,t)=>{};const{roomId:o,roomMode:n}=this._store;this._roomId=o,this._roomMode=n,this._offlineKickTime<15e3&&(this._offlineKickTime=15e3)}start(e){var i,r;this._pullRTCRoomStatus=e,this._started||(null===(r=null===(i=this._context)||void 0===i?void 0:i.logger)||void 0===r||r.info(t.L_PINGER_START_O,JSON.stringify({interval:this._gap,offlineKickTime:this._offlineKickTime})),this._started=!0,this._checkAlive())}_sendPing(e){return new Promise((o=>{this._context.rtcPing(this._roomId,this._roomMode).then(o).catch((n=>{var s,a;null===(a=null===(s=this._context)||void 0===s?void 0:s.logger)||void 0===a||a.error(t.L_PINGER_SEND_RTCPING_R,JSON.stringify({status:i.FAILED,msg:n}),e),o({code:r.ErrorCode.UNKNOWN})})),setTimeout(o,5e3,r.ErrorCode.TIMEOUT)}))}_diffPullRTCRoomStatus(e){var i,r,o,n;if(e>this._store.getRoomStatusVersion()){const s=null===(r=null===(i=this._context)||void 0===i?void 0:i.logger)||void 0===r?void 0:r.createTraceId();null===(n=null===(o=this._context)||void 0===o?void 0:o.logger)||void 0===n||n.info(t.L_RTCPING_PULL_ROOM_STATUS_O,JSON.stringify({pingerVersion:e}),s),this._pullRTCRoomStatus(this._roomId,s)}}_checkAlive(){var e,n,s,a,d,c,_,l,u,h,R;return o(this,void 0,void 0,(function*(){const o=null===(n=null===(e=this._context)||void 0===e?void 0:e.logger)||void 0===n?void 0:n.createTraceId();null===(a=null===(s=this._context)||void 0===s?void 0:s.logger)||void 0===a||a.info(t.L_PINGER_SEND_RTCPING_T,JSON.stringify({roomId:this._roomId}),o);const{code:p,data:v}=yield this._sendPing(o),C=Date.now();return p===r.ErrorCode.SUCCESS?(this._diffPullRTCRoomStatus(v.version),null===(c=null===(d=this._context)||void 0===d?void 0:d.logger)||void 0===c||c.info(t.L_PINGER_SEND_RTCPING_R,JSON.stringify({roomId:this._roomId,status:i.SUCCESSED}),o),this._latestTimestamp=C,null===(_=this.onPingResult)||void 0===_||_.call(this,exports.RCRTCPingResult.SUCCESS),void(this._timer=setTimeout((()=>this._checkAlive()),this._gap))):(null===(u=null===(l=this._context)||void 0===l?void 0:l.logger)||void 0===u||u.info(t.L_PINGER_SEND_RTCPING_R,JSON.stringify({roomId:this._roomId,status:i.FAILED,code:p}),o),null===(h=this.onPingResult)||void 0===h||h.call(this,exports.RCRTCPingResult.FAIL),40003===p||C-this._latestTimestamp>this._offlineKickTime?(this.stop(),void(null===(R=this.onFailed)||void 0===R||R.call(this,40003===p))):void(this._timer=setTimeout((()=>this._checkAlive()),500)))}))}stop(){var e,i;this._started&&(null===(i=null===(e=this._context)||void 0===e?void 0:e.logger)||void 0===i||i.info(t.L_PINGER_STOP_O),this._started=!1,this._timer&&(clearTimeout(this._timer),this._timer=null))}}
|
|
16
|
+
/*! pako 2.0.4 https://github.com/nodeca/pako @license (MIT AND Zlib) */function Ot(e){let t=e.length;for(;--t>=0;)e[t]=0}const Lt=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),At=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),Nt=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),yt=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Dt=new Array(576);Ot(Dt);const kt=new Array(60);Ot(kt);const bt=new Array(512);Ot(bt);const xt=new Array(256);Ot(xt);const Ut=new Array(29);Ot(Ut);const Pt=new Array(30);function Mt(e,t,i,r,o){this.static_tree=e,this.extra_bits=t,this.extra_base=i,this.elems=r,this.max_length=o,this.has_stree=e&&e.length}let wt,Bt,Vt;function Ft(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}Ot(Pt);const Jt=e=>e<256?bt[e]:bt[256+(e>>>7)],Gt=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},Kt=(e,t,i)=>{e.bi_valid>16-i?(e.bi_buf|=t<<e.bi_valid&65535,Gt(e,e.bi_buf),e.bi_buf=t>>16-e.bi_valid,e.bi_valid+=i-16):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=i)},Ht=(e,t,i)=>{Kt(e,i[2*t],i[2*t+1])},jt=(e,t)=>{let i=0;do{i|=1&e,e>>>=1,i<<=1}while(--t>0);return i>>>1},$t=(e,t,i)=>{const r=new Array(16);let o,n,s=0;for(o=1;o<=15;o++)r[o]=s=s+i[o-1]<<1;for(n=0;n<=t;n++){let t=e[2*n+1];0!==t&&(e[2*n]=jt(r[t]++,t))}},Yt=e=>{let t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0},qt=e=>{e.bi_valid>8?Gt(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Wt=(e,t,i,r)=>{const o=2*t,n=2*i;return e[o]<e[n]||e[o]===e[n]&&r[t]<=r[i]},zt=(e,t,i)=>{const r=e.heap[i];let o=i<<1;for(;o<=e.heap_len&&(o<e.heap_len&&Wt(t,e.heap[o+1],e.heap[o],e.depth)&&o++,!Wt(t,r,e.heap[o],e.depth));)e.heap[i]=e.heap[o],i=o,o<<=1;e.heap[i]=r},Zt=(e,t,i)=>{let r,o,n,s,a=0;if(0!==e.last_lit)do{r=e.pending_buf[e.d_buf+2*a]<<8|e.pending_buf[e.d_buf+2*a+1],o=e.pending_buf[e.l_buf+a],a++,0===r?Ht(e,o,t):(n=xt[o],Ht(e,n+256+1,t),s=Lt[n],0!==s&&(o-=Ut[n],Kt(e,o,s)),r--,n=Jt(r),Ht(e,n,i),s=At[n],0!==s&&(r-=Pt[n],Kt(e,r,s)))}while(a<e.last_lit);Ht(e,256,t)},Qt=(e,t)=>{const i=t.dyn_tree,r=t.stat_desc.static_tree,o=t.stat_desc.has_stree,n=t.stat_desc.elems;let s,a,d,c=-1;for(e.heap_len=0,e.heap_max=573,s=0;s<n;s++)0!==i[2*s]?(e.heap[++e.heap_len]=c=s,e.depth[s]=0):i[2*s+1]=0;for(;e.heap_len<2;)d=e.heap[++e.heap_len]=c<2?++c:0,i[2*d]=1,e.depth[d]=0,e.opt_len--,o&&(e.static_len-=r[2*d+1]);for(t.max_code=c,s=e.heap_len>>1;s>=1;s--)zt(e,i,s);d=n;do{s=e.heap[1],e.heap[1]=e.heap[e.heap_len--],zt(e,i,1),a=e.heap[1],e.heap[--e.heap_max]=s,e.heap[--e.heap_max]=a,i[2*d]=i[2*s]+i[2*a],e.depth[d]=(e.depth[s]>=e.depth[a]?e.depth[s]:e.depth[a])+1,i[2*s+1]=i[2*a+1]=d,e.heap[1]=d++,zt(e,i,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((e,t)=>{const i=t.dyn_tree,r=t.max_code,o=t.stat_desc.static_tree,n=t.stat_desc.has_stree,s=t.stat_desc.extra_bits,a=t.stat_desc.extra_base,d=t.stat_desc.max_length;let c,_,l,u,h,R,p=0;for(u=0;u<=15;u++)e.bl_count[u]=0;for(i[2*e.heap[e.heap_max]+1]=0,c=e.heap_max+1;c<573;c++)_=e.heap[c],u=i[2*i[2*_+1]+1]+1,u>d&&(u=d,p++),i[2*_+1]=u,_>r||(e.bl_count[u]++,h=0,_>=a&&(h=s[_-a]),R=i[2*_],e.opt_len+=R*(u+h),n&&(e.static_len+=R*(o[2*_+1]+h)));if(0!==p){do{for(u=d-1;0===e.bl_count[u];)u--;e.bl_count[u]--,e.bl_count[u+1]+=2,e.bl_count[d]--,p-=2}while(p>0);for(u=d;0!==u;u--)for(_=e.bl_count[u];0!==_;)l=e.heap[--c],l>r||(i[2*l+1]!==u&&(e.opt_len+=(u-i[2*l+1])*i[2*l],i[2*l+1]=u),_--)}})(e,t),$t(i,c,e.bl_count)},Xt=(e,t,i)=>{let r,o,n=-1,s=t[1],a=0,d=7,c=4;for(0===s&&(d=138,c=3),t[2*(i+1)+1]=65535,r=0;r<=i;r++)o=s,s=t[2*(r+1)+1],++a<d&&o===s||(a<c?e.bl_tree[2*o]+=a:0!==o?(o!==n&&e.bl_tree[2*o]++,e.bl_tree[32]++):a<=10?e.bl_tree[34]++:e.bl_tree[36]++,a=0,n=o,0===s?(d=138,c=3):o===s?(d=6,c=3):(d=7,c=4))},ei=(e,t,i)=>{let r,o,n=-1,s=t[1],a=0,d=7,c=4;for(0===s&&(d=138,c=3),r=0;r<=i;r++)if(o=s,s=t[2*(r+1)+1],!(++a<d&&o===s)){if(a<c)do{Ht(e,o,e.bl_tree)}while(0!=--a);else 0!==o?(o!==n&&(Ht(e,o,e.bl_tree),a--),Ht(e,16,e.bl_tree),Kt(e,a-3,2)):a<=10?(Ht(e,17,e.bl_tree),Kt(e,a-3,3)):(Ht(e,18,e.bl_tree),Kt(e,a-11,7));a=0,n=o,0===s?(d=138,c=3):o===s?(d=6,c=3):(d=7,c=4)}};let ti=!1;const ii=(e,t,i,r)=>{Kt(e,0+(r?1:0),3),((e,t,i,r)=>{qt(e),r&&(Gt(e,i),Gt(e,~i)),e.pending_buf.set(e.window.subarray(t,t+i),e.pending),e.pending+=i})(e,t,i,!0)};var ri=(e,t,i,r)=>{let o,n,s=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=(e=>{let t,i=4093624447;for(t=0;t<=31;t++,i>>>=1)if(1&i&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0})(e)),Qt(e,e.l_desc),Qt(e,e.d_desc),s=(e=>{let t;for(Xt(e,e.dyn_ltree,e.l_desc.max_code),Xt(e,e.dyn_dtree,e.d_desc.max_code),Qt(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*yt[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t})(e),o=e.opt_len+3+7>>>3,n=e.static_len+3+7>>>3,n<=o&&(o=n)):o=n=i+5,i+4<=o&&-1!==t?ii(e,t,i,r):4===e.strategy||n===o?(Kt(e,2+(r?1:0),3),Zt(e,Dt,kt)):(Kt(e,4+(r?1:0),3),((e,t,i,r)=>{let o;for(Kt(e,t-257,5),Kt(e,i-1,5),Kt(e,r-4,4),o=0;o<r;o++)Kt(e,e.bl_tree[2*yt[o]+1],3);ei(e,e.dyn_ltree,t-1),ei(e,e.dyn_dtree,i-1)})(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),Zt(e,e.dyn_ltree,e.dyn_dtree)),Yt(e),r&&qt(e)},oi={_tr_init:e=>{ti||((()=>{let e,t,i,r,o;const n=new Array(16);for(i=0,r=0;r<28;r++)for(Ut[r]=i,e=0;e<1<<Lt[r];e++)xt[i++]=r;for(xt[i-1]=r,o=0,r=0;r<16;r++)for(Pt[r]=o,e=0;e<1<<At[r];e++)bt[o++]=r;for(o>>=7;r<30;r++)for(Pt[r]=o<<7,e=0;e<1<<At[r]-7;e++)bt[256+o++]=r;for(t=0;t<=15;t++)n[t]=0;for(e=0;e<=143;)Dt[2*e+1]=8,e++,n[8]++;for(;e<=255;)Dt[2*e+1]=9,e++,n[9]++;for(;e<=279;)Dt[2*e+1]=7,e++,n[7]++;for(;e<=287;)Dt[2*e+1]=8,e++,n[8]++;for($t(Dt,287,n),e=0;e<30;e++)kt[2*e+1]=5,kt[2*e]=jt(e,5);wt=new Mt(Dt,Lt,257,286,15),Bt=new Mt(kt,At,0,30,15),Vt=new Mt(new Array(0),Nt,0,19,7)})(),ti=!0),e.l_desc=new Ft(e.dyn_ltree,wt),e.d_desc=new Ft(e.dyn_dtree,Bt),e.bl_desc=new Ft(e.bl_tree,Vt),e.bi_buf=0,e.bi_valid=0,Yt(e)},_tr_stored_block:ii,_tr_flush_block:ri,_tr_tally:(e,t,i)=>(e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&i,e.last_lit++,0===t?e.dyn_ltree[2*i]++:(e.matches++,t--,e.dyn_ltree[2*(xt[i]+256+1)]++,e.dyn_dtree[2*Jt(t)]++),e.last_lit===e.lit_bufsize-1),_tr_align:e=>{Kt(e,2,3),Ht(e,256,Dt),(e=>{16===e.bi_valid?(Gt(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)})(e)}};var ni=(e,t,i,r)=>{let o=65535&e|0,n=e>>>16&65535|0,s=0;for(;0!==i;){s=i>2e3?2e3:i,i-=s;do{o=o+t[r++]|0,n=n+o|0}while(--s);o%=65521,n%=65521}return o|n<<16|0};const si=new Uint32Array((()=>{let e,t=[];for(var i=0;i<256;i++){e=i;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;t[i]=e}return t})());var ai=(e,t,i,r)=>{const o=si,n=r+i;e^=-1;for(let i=r;i<n;i++)e=e>>>8^o[255&(e^t[i])];return-1^e},di={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},ci={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:_i,_tr_stored_block:li,_tr_flush_block:ui,_tr_tally:hi,_tr_align:Ri}=oi,{Z_NO_FLUSH:pi,Z_PARTIAL_FLUSH:vi,Z_FULL_FLUSH:Ci,Z_FINISH:gi,Z_BLOCK:mi,Z_OK:Ti,Z_STREAM_END:Ii,Z_STREAM_ERROR:Si,Z_DATA_ERROR:Ei,Z_BUF_ERROR:fi,Z_DEFAULT_COMPRESSION:Oi,Z_FILTERED:Li,Z_HUFFMAN_ONLY:Ai,Z_RLE:Ni,Z_FIXED:yi,Z_DEFAULT_STRATEGY:Di,Z_UNKNOWN:ki,Z_DEFLATED:bi}=ci,xi=(e,t)=>(e.msg=di[t],t),Ui=e=>(e<<1)-(e>4?9:0),Pi=e=>{let t=e.length;for(;--t>=0;)e[t]=0};let Mi=(e,t,i)=>(t<<e.hash_shift^i)&e.hash_mask;const wi=e=>{const t=e.state;let i=t.pending;i>e.avail_out&&(i=e.avail_out),0!==i&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+i),e.next_out),e.next_out+=i,t.pending_out+=i,e.total_out+=i,e.avail_out-=i,t.pending-=i,0===t.pending&&(t.pending_out=0))},Bi=(e,t)=>{ui(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,wi(e.strm)},Vi=(e,t)=>{e.pending_buf[e.pending++]=t},Fi=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},Ji=(e,t,i,r)=>{let o=e.avail_in;return o>r&&(o=r),0===o?0:(e.avail_in-=o,t.set(e.input.subarray(e.next_in,e.next_in+o),i),1===e.state.wrap?e.adler=ni(e.adler,t,o,i):2===e.state.wrap&&(e.adler=ai(e.adler,t,o,i)),e.next_in+=o,e.total_in+=o,o)},Gi=(e,t)=>{let i,r,o=e.max_chain_length,n=e.strstart,s=e.prev_length,a=e.nice_match;const d=e.strstart>e.w_size-262?e.strstart-(e.w_size-262):0,c=e.window,_=e.w_mask,l=e.prev,u=e.strstart+258;let h=c[n+s-1],R=c[n+s];e.prev_length>=e.good_match&&(o>>=2),a>e.lookahead&&(a=e.lookahead);do{if(i=t,c[i+s]===R&&c[i+s-1]===h&&c[i]===c[n]&&c[++i]===c[n+1]){n+=2,i++;do{}while(c[++n]===c[++i]&&c[++n]===c[++i]&&c[++n]===c[++i]&&c[++n]===c[++i]&&c[++n]===c[++i]&&c[++n]===c[++i]&&c[++n]===c[++i]&&c[++n]===c[++i]&&n<u);if(r=258-(u-n),n=u-258,r>s){if(e.match_start=t,s=r,r>=a)break;h=c[n+s-1],R=c[n+s]}}}while((t=l[t&_])>d&&0!=--o);return s<=e.lookahead?s:e.lookahead},Ki=e=>{const t=e.w_size;let i,r,o,n,s;do{if(n=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-262)){e.window.set(e.window.subarray(t,t+t),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,r=e.hash_size,i=r;do{o=e.head[--i],e.head[i]=o>=t?o-t:0}while(--r);r=t,i=r;do{o=e.prev[--i],e.prev[i]=o>=t?o-t:0}while(--r);n+=t}if(0===e.strm.avail_in)break;if(r=Ji(e.strm,e.window,e.strstart+e.lookahead,n),e.lookahead+=r,e.lookahead+e.insert>=3)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=Mi(e,e.ins_h,e.window[s+1]);e.insert&&(e.ins_h=Mi(e,e.ins_h,e.window[s+3-1]),e.prev[s&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=s,s++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<262&&0!==e.strm.avail_in)},Hi=(e,t)=>{let i,r;for(;;){if(e.lookahead<262){if(Ki(e),e.lookahead<262&&t===pi)return 1;if(0===e.lookahead)break}if(i=0,e.lookahead>=3&&(e.ins_h=Mi(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==i&&e.strstart-i<=e.w_size-262&&(e.match_length=Gi(e,i)),e.match_length>=3)if(r=hi(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=Mi(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=Mi(e,e.ins_h,e.window[e.strstart+1]);else r=hi(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(Bi(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===gi?(Bi(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Bi(e,!1),0===e.strm.avail_out)?1:2},ji=(e,t)=>{let i,r,o;for(;;){if(e.lookahead<262){if(Ki(e),e.lookahead<262&&t===pi)return 1;if(0===e.lookahead)break}if(i=0,e.lookahead>=3&&(e.ins_h=Mi(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==i&&e.prev_length<e.max_lazy_match&&e.strstart-i<=e.w_size-262&&(e.match_length=Gi(e,i),e.match_length<=5&&(e.strategy===Li||3===e.match_length&&e.strstart-e.match_start>4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){o=e.strstart+e.lookahead-3,r=hi(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=o&&(e.ins_h=Mi(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,r&&(Bi(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(r=hi(e,0,e.window[e.strstart-1]),r&&Bi(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=hi(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===gi?(Bi(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Bi(e,!1),0===e.strm.avail_out)?1:2};function $i(e,t,i,r,o){this.good_length=e,this.max_lazy=t,this.nice_length=i,this.max_chain=r,this.func=o}const Yi=[new $i(0,0,0,0,((e,t)=>{let i=65535;for(i>e.pending_buf_size-5&&(i=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Ki(e),0===e.lookahead&&t===pi)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;const r=e.block_start+i;if((0===e.strstart||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,Bi(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-262&&(Bi(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===gi?(Bi(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(Bi(e,!1),e.strm.avail_out),1)})),new $i(4,4,8,4,Hi),new $i(4,5,16,8,Hi),new $i(4,6,32,32,Hi),new $i(4,4,16,16,ji),new $i(8,16,32,32,ji),new $i(8,16,128,128,ji),new $i(8,32,128,256,ji),new $i(32,128,258,1024,ji),new $i(32,258,258,4096,ji)];function qi(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=bi,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),Pi(this.dyn_ltree),Pi(this.dyn_dtree),Pi(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),Pi(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),Pi(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Wi=e=>{if(!e||!e.state)return xi(e,Si);e.total_in=e.total_out=0,e.data_type=ki;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?42:113,e.adler=2===t.wrap?0:1,t.last_flush=pi,_i(t),Ti},zi=e=>{const t=Wi(e);var i;return t===Ti&&((i=e.state).window_size=2*i.w_size,Pi(i.head),i.max_lazy_match=Yi[i.level].max_lazy,i.good_match=Yi[i.level].good_length,i.nice_match=Yi[i.level].nice_length,i.max_chain_length=Yi[i.level].max_chain,i.strstart=0,i.block_start=0,i.lookahead=0,i.insert=0,i.match_length=i.prev_length=2,i.match_available=0,i.ins_h=0),t},Zi=(e,t,i,r,o,n)=>{if(!e)return Si;let s=1;if(t===Oi&&(t=6),r<0?(s=0,r=-r):r>15&&(s=2,r-=16),o<1||o>9||i!==bi||r<8||r>15||t<0||t>9||n<0||n>yi)return xi(e,Si);8===r&&(r=9);const a=new qi;return e.state=a,a.strm=e,a.wrap=s,a.gzhead=null,a.w_bits=r,a.w_size=1<<a.w_bits,a.w_mask=a.w_size-1,a.hash_bits=o+7,a.hash_size=1<<a.hash_bits,a.hash_mask=a.hash_size-1,a.hash_shift=~~((a.hash_bits+3-1)/3),a.window=new Uint8Array(2*a.w_size),a.head=new Uint16Array(a.hash_size),a.prev=new Uint16Array(a.w_size),a.lit_bufsize=1<<o+6,a.pending_buf_size=4*a.lit_bufsize,a.pending_buf=new Uint8Array(a.pending_buf_size),a.d_buf=1*a.lit_bufsize,a.l_buf=3*a.lit_bufsize,a.level=t,a.strategy=n,a.method=i,zi(e)};var Qi={deflateInit:(e,t)=>Zi(e,t,bi,15,8,Di),deflateInit2:Zi,deflateReset:zi,deflateResetKeep:Wi,deflateSetHeader:(e,t)=>e&&e.state?2!==e.state.wrap?Si:(e.state.gzhead=t,Ti):Si,deflate:(e,t)=>{let i,r;if(!e||!e.state||t>mi||t<0)return e?xi(e,Si):Si;const o=e.state;if(!e.output||!e.input&&0!==e.avail_in||666===o.status&&t!==gi)return xi(e,0===e.avail_out?fi:Si);o.strm=e;const n=o.last_flush;if(o.last_flush=t,42===o.status)if(2===o.wrap)e.adler=0,Vi(o,31),Vi(o,139),Vi(o,8),o.gzhead?(Vi(o,(o.gzhead.text?1:0)+(o.gzhead.hcrc?2:0)+(o.gzhead.extra?4:0)+(o.gzhead.name?8:0)+(o.gzhead.comment?16:0)),Vi(o,255&o.gzhead.time),Vi(o,o.gzhead.time>>8&255),Vi(o,o.gzhead.time>>16&255),Vi(o,o.gzhead.time>>24&255),Vi(o,9===o.level?2:o.strategy>=Ai||o.level<2?4:0),Vi(o,255&o.gzhead.os),o.gzhead.extra&&o.gzhead.extra.length&&(Vi(o,255&o.gzhead.extra.length),Vi(o,o.gzhead.extra.length>>8&255)),o.gzhead.hcrc&&(e.adler=ai(e.adler,o.pending_buf,o.pending,0)),o.gzindex=0,o.status=69):(Vi(o,0),Vi(o,0),Vi(o,0),Vi(o,0),Vi(o,0),Vi(o,9===o.level?2:o.strategy>=Ai||o.level<2?4:0),Vi(o,3),o.status=113);else{let t=bi+(o.w_bits-8<<4)<<8,i=-1;i=o.strategy>=Ai||o.level<2?0:o.level<6?1:6===o.level?2:3,t|=i<<6,0!==o.strstart&&(t|=32),t+=31-t%31,o.status=113,Fi(o,t),0!==o.strstart&&(Fi(o,e.adler>>>16),Fi(o,65535&e.adler)),e.adler=1}if(69===o.status)if(o.gzhead.extra){for(i=o.pending;o.gzindex<(65535&o.gzhead.extra.length)&&(o.pending!==o.pending_buf_size||(o.gzhead.hcrc&&o.pending>i&&(e.adler=ai(e.adler,o.pending_buf,o.pending-i,i)),wi(e),i=o.pending,o.pending!==o.pending_buf_size));)Vi(o,255&o.gzhead.extra[o.gzindex]),o.gzindex++;o.gzhead.hcrc&&o.pending>i&&(e.adler=ai(e.adler,o.pending_buf,o.pending-i,i)),o.gzindex===o.gzhead.extra.length&&(o.gzindex=0,o.status=73)}else o.status=73;if(73===o.status)if(o.gzhead.name){i=o.pending;do{if(o.pending===o.pending_buf_size&&(o.gzhead.hcrc&&o.pending>i&&(e.adler=ai(e.adler,o.pending_buf,o.pending-i,i)),wi(e),i=o.pending,o.pending===o.pending_buf_size)){r=1;break}r=o.gzindex<o.gzhead.name.length?255&o.gzhead.name.charCodeAt(o.gzindex++):0,Vi(o,r)}while(0!==r);o.gzhead.hcrc&&o.pending>i&&(e.adler=ai(e.adler,o.pending_buf,o.pending-i,i)),0===r&&(o.gzindex=0,o.status=91)}else o.status=91;if(91===o.status)if(o.gzhead.comment){i=o.pending;do{if(o.pending===o.pending_buf_size&&(o.gzhead.hcrc&&o.pending>i&&(e.adler=ai(e.adler,o.pending_buf,o.pending-i,i)),wi(e),i=o.pending,o.pending===o.pending_buf_size)){r=1;break}r=o.gzindex<o.gzhead.comment.length?255&o.gzhead.comment.charCodeAt(o.gzindex++):0,Vi(o,r)}while(0!==r);o.gzhead.hcrc&&o.pending>i&&(e.adler=ai(e.adler,o.pending_buf,o.pending-i,i)),0===r&&(o.status=103)}else o.status=103;if(103===o.status&&(o.gzhead.hcrc?(o.pending+2>o.pending_buf_size&&wi(e),o.pending+2<=o.pending_buf_size&&(Vi(o,255&e.adler),Vi(o,e.adler>>8&255),e.adler=0,o.status=113)):o.status=113),0!==o.pending){if(wi(e),0===e.avail_out)return o.last_flush=-1,Ti}else if(0===e.avail_in&&Ui(t)<=Ui(n)&&t!==gi)return xi(e,fi);if(666===o.status&&0!==e.avail_in)return xi(e,fi);if(0!==e.avail_in||0!==o.lookahead||t!==pi&&666!==o.status){let i=o.strategy===Ai?((e,t)=>{let i;for(;;){if(0===e.lookahead&&(Ki(e),0===e.lookahead)){if(t===pi)return 1;break}if(e.match_length=0,i=hi(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,i&&(Bi(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===gi?(Bi(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Bi(e,!1),0===e.strm.avail_out)?1:2})(o,t):o.strategy===Ni?((e,t)=>{let i,r,o,n;const s=e.window;for(;;){if(e.lookahead<=258){if(Ki(e),e.lookahead<=258&&t===pi)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(o=e.strstart-1,r=s[o],r===s[++o]&&r===s[++o]&&r===s[++o])){n=e.strstart+258;do{}while(r===s[++o]&&r===s[++o]&&r===s[++o]&&r===s[++o]&&r===s[++o]&&r===s[++o]&&r===s[++o]&&r===s[++o]&&o<n);e.match_length=258-(n-o),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(i=hi(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(i=hi(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),i&&(Bi(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===gi?(Bi(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Bi(e,!1),0===e.strm.avail_out)?1:2})(o,t):Yi[o.level].func(o,t);if(3!==i&&4!==i||(o.status=666),1===i||3===i)return 0===e.avail_out&&(o.last_flush=-1),Ti;if(2===i&&(t===vi?Ri(o):t!==mi&&(li(o,0,0,!1),t===Ci&&(Pi(o.head),0===o.lookahead&&(o.strstart=0,o.block_start=0,o.insert=0))),wi(e),0===e.avail_out))return o.last_flush=-1,Ti}return t!==gi?Ti:o.wrap<=0?Ii:(2===o.wrap?(Vi(o,255&e.adler),Vi(o,e.adler>>8&255),Vi(o,e.adler>>16&255),Vi(o,e.adler>>24&255),Vi(o,255&e.total_in),Vi(o,e.total_in>>8&255),Vi(o,e.total_in>>16&255),Vi(o,e.total_in>>24&255)):(Fi(o,e.adler>>>16),Fi(o,65535&e.adler)),wi(e),o.wrap>0&&(o.wrap=-o.wrap),0!==o.pending?Ti:Ii)},deflateEnd:e=>{if(!e||!e.state)return Si;const t=e.state.status;return 42!==t&&69!==t&&73!==t&&91!==t&&103!==t&&113!==t&&666!==t?xi(e,Si):(e.state=null,113===t?xi(e,Ei):Ti)},deflateSetDictionary:(e,t)=>{let i=t.length;if(!e||!e.state)return Si;const r=e.state,o=r.wrap;if(2===o||1===o&&42!==r.status||r.lookahead)return Si;if(1===o&&(e.adler=ni(e.adler,t,i,0)),r.wrap=0,i>=r.w_size){0===o&&(Pi(r.head),r.strstart=0,r.block_start=0,r.insert=0);let e=new Uint8Array(r.w_size);e.set(t.subarray(i-r.w_size,i),0),t=e,i=r.w_size}const n=e.avail_in,s=e.next_in,a=e.input;for(e.avail_in=i,e.next_in=0,e.input=t,Ki(r);r.lookahead>=3;){let e=r.strstart,t=r.lookahead-2;do{r.ins_h=Mi(r,r.ins_h,r.window[e+3-1]),r.prev[e&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=e,e++}while(--t);r.strstart=e,r.lookahead=2,Ki(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=2,r.match_available=0,e.next_in=s,e.input=a,e.avail_in=n,r.wrap=o,Ti},deflateInfo:"pako deflate (from Nodeca project)"};const Xi=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var er=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const i=t.shift();if(i){if("object"!=typeof i)throw new TypeError(i+"must be non-object");for(const t in i)Xi(i,t)&&(e[t]=i[t])}}return e},tr=e=>{let t=0;for(let i=0,r=e.length;i<r;i++)t+=e[i].length;const i=new Uint8Array(t);for(let t=0,r=0,o=e.length;t<o;t++){let o=e[t];i.set(o,r),r+=o.length}return i};let ir=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){ir=!1}const rr=new Uint8Array(256);for(let e=0;e<256;e++)rr[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;rr[254]=rr[254]=1;var or=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,i,r,o,n,s=e.length,a=0;for(o=0;o<s;o++)i=e.charCodeAt(o),55296==(64512&i)&&o+1<s&&(r=e.charCodeAt(o+1),56320==(64512&r)&&(i=65536+(i-55296<<10)+(r-56320),o++)),a+=i<128?1:i<2048?2:i<65536?3:4;for(t=new Uint8Array(a),n=0,o=0;n<a;o++)i=e.charCodeAt(o),55296==(64512&i)&&o+1<s&&(r=e.charCodeAt(o+1),56320==(64512&r)&&(i=65536+(i-55296<<10)+(r-56320),o++)),i<128?t[n++]=i:i<2048?(t[n++]=192|i>>>6,t[n++]=128|63&i):i<65536?(t[n++]=224|i>>>12,t[n++]=128|i>>>6&63,t[n++]=128|63&i):(t[n++]=240|i>>>18,t[n++]=128|i>>>12&63,t[n++]=128|i>>>6&63,t[n++]=128|63&i);return t},nr=(e,t)=>{const i=t||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,t));let r,o;const n=new Array(2*i);for(o=0,r=0;r<i;){let t=e[r++];if(t<128){n[o++]=t;continue}let s=rr[t];if(s>4)n[o++]=65533,r+=s-1;else{for(t&=2===s?31:3===s?15:7;s>1&&r<i;)t=t<<6|63&e[r++],s--;s>1?n[o++]=65533:t<65536?n[o++]=t:(t-=65536,n[o++]=55296|t>>10&1023,n[o++]=56320|1023&t)}}return((e,t)=>{if(t<65534&&e.subarray&&ir)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let i="";for(let r=0;r<t;r++)i+=String.fromCharCode(e[r]);return i})(n,o)},sr=(e,t)=>{(t=t||e.length)>e.length&&(t=e.length);let i=t-1;for(;i>=0&&128==(192&e[i]);)i--;return i<0||0===i?t:i+rr[e[i]]>t?i:t};var ar=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const dr=Object.prototype.toString,{Z_NO_FLUSH:cr,Z_SYNC_FLUSH:_r,Z_FULL_FLUSH:lr,Z_FINISH:ur,Z_OK:hr,Z_STREAM_END:Rr,Z_DEFAULT_COMPRESSION:pr,Z_DEFAULT_STRATEGY:vr,Z_DEFLATED:Cr}=ci;function gr(e){this.options=er({level:pr,method:Cr,chunkSize:16384,windowBits:15,memLevel:8,strategy:vr},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new ar,this.strm.avail_out=0;let i=Qi.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(i!==hr)throw new Error(di[i]);if(t.header&&Qi.deflateSetHeader(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?or(t.dictionary):"[object ArrayBuffer]"===dr.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,i=Qi.deflateSetDictionary(this.strm,e),i!==hr)throw new Error(di[i]);this._dict_set=!0}}function mr(e,t){const i=new gr(t);if(i.push(e,!0),i.err)throw i.msg||di[i.err];return i.result}gr.prototype.push=function(e,t){const i=this.strm,r=this.options.chunkSize;let o,n;if(this.ended)return!1;for(n=t===~~t?t:!0===t?ur:cr,"string"==typeof e?i.input=or(e):"[object ArrayBuffer]"===dr.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;;)if(0===i.avail_out&&(i.output=new Uint8Array(r),i.next_out=0,i.avail_out=r),(n===_r||n===lr)&&i.avail_out<=6)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else{if(o=Qi.deflate(i,n),o===Rr)return i.next_out>0&&this.onData(i.output.subarray(0,i.next_out)),o=Qi.deflateEnd(this.strm),this.onEnd(o),this.ended=!0,o===hr;if(0!==i.avail_out){if(n>0&&i.next_out>0)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else if(0===i.avail_in)break}else this.onData(i.output)}return!0},gr.prototype.onData=function(e){this.chunks.push(e)},gr.prototype.onEnd=function(e){e===hr&&(this.result=tr(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var Tr={Deflate:gr,deflate:mr,deflateRaw:function(e,t){return(t=t||{}).raw=!0,mr(e,t)},gzip:function(e,t){return(t=t||{}).gzip=!0,mr(e,t)},constants:ci};var Ir=function(e,t){let i,r,o,n,s,a,d,c,_,l,u,h,R,p,v,C,g,m,T,I,S,E,f,O;const L=e.state;i=e.next_in,f=e.input,r=i+(e.avail_in-5),o=e.next_out,O=e.output,n=o-(t-e.avail_out),s=o+(e.avail_out-257),a=L.dmax,d=L.wsize,c=L.whave,_=L.wnext,l=L.window,u=L.hold,h=L.bits,R=L.lencode,p=L.distcode,v=(1<<L.lenbits)-1,C=(1<<L.distbits)-1;e:do{h<15&&(u+=f[i++]<<h,h+=8,u+=f[i++]<<h,h+=8),g=R[u&v];t:for(;;){if(m=g>>>24,u>>>=m,h-=m,m=g>>>16&255,0===m)O[o++]=65535&g;else{if(!(16&m)){if(0==(64&m)){g=R[(65535&g)+(u&(1<<m)-1)];continue t}if(32&m){L.mode=12;break e}e.msg="invalid literal/length code",L.mode=30;break e}T=65535&g,m&=15,m&&(h<m&&(u+=f[i++]<<h,h+=8),T+=u&(1<<m)-1,u>>>=m,h-=m),h<15&&(u+=f[i++]<<h,h+=8,u+=f[i++]<<h,h+=8),g=p[u&C];i:for(;;){if(m=g>>>24,u>>>=m,h-=m,m=g>>>16&255,!(16&m)){if(0==(64&m)){g=p[(65535&g)+(u&(1<<m)-1)];continue i}e.msg="invalid distance code",L.mode=30;break e}if(I=65535&g,m&=15,h<m&&(u+=f[i++]<<h,h+=8,h<m&&(u+=f[i++]<<h,h+=8)),I+=u&(1<<m)-1,I>a){e.msg="invalid distance too far back",L.mode=30;break e}if(u>>>=m,h-=m,m=o-n,I>m){if(m=I-m,m>c&&L.sane){e.msg="invalid distance too far back",L.mode=30;break e}if(S=0,E=l,0===_){if(S+=d-m,m<T){T-=m;do{O[o++]=l[S++]}while(--m);S=o-I,E=O}}else if(_<m){if(S+=d+_-m,m-=_,m<T){T-=m;do{O[o++]=l[S++]}while(--m);if(S=0,_<T){m=_,T-=m;do{O[o++]=l[S++]}while(--m);S=o-I,E=O}}}else if(S+=_-m,m<T){T-=m;do{O[o++]=l[S++]}while(--m);S=o-I,E=O}for(;T>2;)O[o++]=E[S++],O[o++]=E[S++],O[o++]=E[S++],T-=3;T&&(O[o++]=E[S++],T>1&&(O[o++]=E[S++]))}else{S=o-I;do{O[o++]=O[S++],O[o++]=O[S++],O[o++]=O[S++],T-=3}while(T>2);T&&(O[o++]=O[S++],T>1&&(O[o++]=O[S++]))}break}}break}}while(i<r&&o<s);T=h>>3,i-=T,h-=T<<3,u&=(1<<h)-1,e.next_in=i,e.next_out=o,e.avail_in=i<r?r-i+5:5-(i-r),e.avail_out=o<s?s-o+257:257-(o-s),L.hold=u,L.bits=h};const Sr=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),Er=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),fr=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),Or=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var Lr=(e,t,i,r,o,n,s,a)=>{const d=a.bits;let c,_,l,u,h,R,p=0,v=0,C=0,g=0,m=0,T=0,I=0,S=0,E=0,f=0,O=null,L=0;const A=new Uint16Array(16),N=new Uint16Array(16);let y,D,k,b=null,x=0;for(p=0;p<=15;p++)A[p]=0;for(v=0;v<r;v++)A[t[i+v]]++;for(m=d,g=15;g>=1&&0===A[g];g--);if(m>g&&(m=g),0===g)return o[n++]=20971520,o[n++]=20971520,a.bits=1,0;for(C=1;C<g&&0===A[C];C++);for(m<C&&(m=C),S=1,p=1;p<=15;p++)if(S<<=1,S-=A[p],S<0)return-1;if(S>0&&(0===e||1!==g))return-1;for(N[1]=0,p=1;p<15;p++)N[p+1]=N[p]+A[p];for(v=0;v<r;v++)0!==t[i+v]&&(s[N[t[i+v]]++]=v);if(0===e?(O=b=s,R=19):1===e?(O=Sr,L-=257,b=Er,x-=257,R=256):(O=fr,b=Or,R=-1),f=0,v=0,p=C,h=n,T=m,I=0,l=-1,E=1<<m,u=E-1,1===e&&E>852||2===e&&E>592)return 1;for(;;){y=p-I,s[v]<R?(D=0,k=s[v]):s[v]>R?(D=b[x+s[v]],k=O[L+s[v]]):(D=96,k=0),c=1<<p-I,_=1<<T,C=_;do{_-=c,o[h+(f>>I)+_]=y<<24|D<<16|k|0}while(0!==_);for(c=1<<p-1;f&c;)c>>=1;if(0!==c?(f&=c-1,f+=c):f=0,v++,0==--A[p]){if(p===g)break;p=t[i+s[v]]}if(p>m&&(f&u)!==l){for(0===I&&(I=m),h+=C,T=p-I,S=1<<T;T+I<g&&(S-=A[T+I],!(S<=0));)T++,S<<=1;if(E+=1<<T,1===e&&E>852||2===e&&E>592)return 1;l=f&u,o[l]=m<<24|T<<16|h-n|0}}return 0!==f&&(o[h+f]=p-I<<24|64<<16|0),a.bits=m,0};const{Z_FINISH:Ar,Z_BLOCK:Nr,Z_TREES:yr,Z_OK:Dr,Z_STREAM_END:kr,Z_NEED_DICT:br,Z_STREAM_ERROR:xr,Z_DATA_ERROR:Ur,Z_MEM_ERROR:Pr,Z_BUF_ERROR:Mr,Z_DEFLATED:wr}=ci,Br=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function Vr(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Fr=e=>{if(!e||!e.state)return xr;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,Dr},Jr=e=>{if(!e||!e.state)return xr;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Fr(e)},Gr=(e,t)=>{let i;if(!e||!e.state)return xr;const r=e.state;return t<0?(i=0,t=-t):(i=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?xr:(null!==r.window&&r.wbits!==t&&(r.window=null),r.wrap=i,r.wbits=t,Jr(e))},Kr=(e,t)=>{if(!e)return xr;const i=new Vr;e.state=i,i.window=null;const r=Gr(e,t);return r!==Dr&&(e.state=null),r};let Hr,jr,$r=!0;const Yr=e=>{if($r){Hr=new Int32Array(512),jr=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(Lr(1,e.lens,0,288,Hr,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Lr(2,e.lens,0,32,jr,0,e.work,{bits:5}),$r=!1}e.lencode=Hr,e.lenbits=9,e.distcode=jr,e.distbits=5},qr=(e,t,i,r)=>{let o;const n=e.state;return null===n.window&&(n.wsize=1<<n.wbits,n.wnext=0,n.whave=0,n.window=new Uint8Array(n.wsize)),r>=n.wsize?(n.window.set(t.subarray(i-n.wsize,i),0),n.wnext=0,n.whave=n.wsize):(o=n.wsize-n.wnext,o>r&&(o=r),n.window.set(t.subarray(i-r,i-r+o),n.wnext),(r-=o)?(n.window.set(t.subarray(i-r,i),0),n.wnext=r,n.whave=n.wsize):(n.wnext+=o,n.wnext===n.wsize&&(n.wnext=0),n.whave<n.wsize&&(n.whave+=o))),0};var Wr={inflateReset:Jr,inflateReset2:Gr,inflateResetKeep:Fr,inflateInit:e=>Kr(e,15),inflateInit2:Kr,inflate:(e,t)=>{let i,r,o,n,s,a,d,c,_,l,u,h,R,p,v,C,g,m,T,I,S,E,f=0;const O=new Uint8Array(4);let L,A;const N=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return xr;i=e.state,12===i.mode&&(i.mode=13),s=e.next_out,o=e.output,d=e.avail_out,n=e.next_in,r=e.input,a=e.avail_in,c=i.hold,_=i.bits,l=a,u=d,E=Dr;e:for(;;)switch(i.mode){case 1:if(0===i.wrap){i.mode=13;break}for(;_<16;){if(0===a)break e;a--,c+=r[n++]<<_,_+=8}if(2&i.wrap&&35615===c){i.check=0,O[0]=255&c,O[1]=c>>>8&255,i.check=ai(i.check,O,2,0),c=0,_=0,i.mode=2;break}if(i.flags=0,i.head&&(i.head.done=!1),!(1&i.wrap)||(((255&c)<<8)+(c>>8))%31){e.msg="incorrect header check",i.mode=30;break}if((15&c)!==wr){e.msg="unknown compression method",i.mode=30;break}if(c>>>=4,_-=4,S=8+(15&c),0===i.wbits)i.wbits=S;else if(S>i.wbits){e.msg="invalid window size",i.mode=30;break}i.dmax=1<<i.wbits,e.adler=i.check=1,i.mode=512&c?10:12,c=0,_=0;break;case 2:for(;_<16;){if(0===a)break e;a--,c+=r[n++]<<_,_+=8}if(i.flags=c,(255&i.flags)!==wr){e.msg="unknown compression method",i.mode=30;break}if(57344&i.flags){e.msg="unknown header flags set",i.mode=30;break}i.head&&(i.head.text=c>>8&1),512&i.flags&&(O[0]=255&c,O[1]=c>>>8&255,i.check=ai(i.check,O,2,0)),c=0,_=0,i.mode=3;case 3:for(;_<32;){if(0===a)break e;a--,c+=r[n++]<<_,_+=8}i.head&&(i.head.time=c),512&i.flags&&(O[0]=255&c,O[1]=c>>>8&255,O[2]=c>>>16&255,O[3]=c>>>24&255,i.check=ai(i.check,O,4,0)),c=0,_=0,i.mode=4;case 4:for(;_<16;){if(0===a)break e;a--,c+=r[n++]<<_,_+=8}i.head&&(i.head.xflags=255&c,i.head.os=c>>8),512&i.flags&&(O[0]=255&c,O[1]=c>>>8&255,i.check=ai(i.check,O,2,0)),c=0,_=0,i.mode=5;case 5:if(1024&i.flags){for(;_<16;){if(0===a)break e;a--,c+=r[n++]<<_,_+=8}i.length=c,i.head&&(i.head.extra_len=c),512&i.flags&&(O[0]=255&c,O[1]=c>>>8&255,i.check=ai(i.check,O,2,0)),c=0,_=0}else i.head&&(i.head.extra=null);i.mode=6;case 6:if(1024&i.flags&&(h=i.length,h>a&&(h=a),h&&(i.head&&(S=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Uint8Array(i.head.extra_len)),i.head.extra.set(r.subarray(n,n+h),S)),512&i.flags&&(i.check=ai(i.check,r,h,n)),a-=h,n+=h,i.length-=h),i.length))break e;i.length=0,i.mode=7;case 7:if(2048&i.flags){if(0===a)break e;h=0;do{S=r[n+h++],i.head&&S&&i.length<65536&&(i.head.name+=String.fromCharCode(S))}while(S&&h<a);if(512&i.flags&&(i.check=ai(i.check,r,h,n)),a-=h,n+=h,S)break e}else i.head&&(i.head.name=null);i.length=0,i.mode=8;case 8:if(4096&i.flags){if(0===a)break e;h=0;do{S=r[n+h++],i.head&&S&&i.length<65536&&(i.head.comment+=String.fromCharCode(S))}while(S&&h<a);if(512&i.flags&&(i.check=ai(i.check,r,h,n)),a-=h,n+=h,S)break e}else i.head&&(i.head.comment=null);i.mode=9;case 9:if(512&i.flags){for(;_<16;){if(0===a)break e;a--,c+=r[n++]<<_,_+=8}if(c!==(65535&i.check)){e.msg="header crc mismatch",i.mode=30;break}c=0,_=0}i.head&&(i.head.hcrc=i.flags>>9&1,i.head.done=!0),e.adler=i.check=0,i.mode=12;break;case 10:for(;_<32;){if(0===a)break e;a--,c+=r[n++]<<_,_+=8}e.adler=i.check=Br(c),c=0,_=0,i.mode=11;case 11:if(0===i.havedict)return e.next_out=s,e.avail_out=d,e.next_in=n,e.avail_in=a,i.hold=c,i.bits=_,br;e.adler=i.check=1,i.mode=12;case 12:if(t===Nr||t===yr)break e;case 13:if(i.last){c>>>=7&_,_-=7&_,i.mode=27;break}for(;_<3;){if(0===a)break e;a--,c+=r[n++]<<_,_+=8}switch(i.last=1&c,c>>>=1,_-=1,3&c){case 0:i.mode=14;break;case 1:if(Yr(i),i.mode=20,t===yr){c>>>=2,_-=2;break e}break;case 2:i.mode=17;break;case 3:e.msg="invalid block type",i.mode=30}c>>>=2,_-=2;break;case 14:for(c>>>=7&_,_-=7&_;_<32;){if(0===a)break e;a--,c+=r[n++]<<_,_+=8}if((65535&c)!=(c>>>16^65535)){e.msg="invalid stored block lengths",i.mode=30;break}if(i.length=65535&c,c=0,_=0,i.mode=15,t===yr)break e;case 15:i.mode=16;case 16:if(h=i.length,h){if(h>a&&(h=a),h>d&&(h=d),0===h)break e;o.set(r.subarray(n,n+h),s),a-=h,n+=h,d-=h,s+=h,i.length-=h;break}i.mode=12;break;case 17:for(;_<14;){if(0===a)break e;a--,c+=r[n++]<<_,_+=8}if(i.nlen=257+(31&c),c>>>=5,_-=5,i.ndist=1+(31&c),c>>>=5,_-=5,i.ncode=4+(15&c),c>>>=4,_-=4,i.nlen>286||i.ndist>30){e.msg="too many length or distance symbols",i.mode=30;break}i.have=0,i.mode=18;case 18:for(;i.have<i.ncode;){for(;_<3;){if(0===a)break e;a--,c+=r[n++]<<_,_+=8}i.lens[N[i.have++]]=7&c,c>>>=3,_-=3}for(;i.have<19;)i.lens[N[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,L={bits:i.lenbits},E=Lr(0,i.lens,0,19,i.lencode,0,i.work,L),i.lenbits=L.bits,E){e.msg="invalid code lengths set",i.mode=30;break}i.have=0,i.mode=19;case 19:for(;i.have<i.nlen+i.ndist;){for(;f=i.lencode[c&(1<<i.lenbits)-1],v=f>>>24,C=f>>>16&255,g=65535&f,!(v<=_);){if(0===a)break e;a--,c+=r[n++]<<_,_+=8}if(g<16)c>>>=v,_-=v,i.lens[i.have++]=g;else{if(16===g){for(A=v+2;_<A;){if(0===a)break e;a--,c+=r[n++]<<_,_+=8}if(c>>>=v,_-=v,0===i.have){e.msg="invalid bit length repeat",i.mode=30;break}S=i.lens[i.have-1],h=3+(3&c),c>>>=2,_-=2}else if(17===g){for(A=v+3;_<A;){if(0===a)break e;a--,c+=r[n++]<<_,_+=8}c>>>=v,_-=v,S=0,h=3+(7&c),c>>>=3,_-=3}else{for(A=v+7;_<A;){if(0===a)break e;a--,c+=r[n++]<<_,_+=8}c>>>=v,_-=v,S=0,h=11+(127&c),c>>>=7,_-=7}if(i.have+h>i.nlen+i.ndist){e.msg="invalid bit length repeat",i.mode=30;break}for(;h--;)i.lens[i.have++]=S}}if(30===i.mode)break;if(0===i.lens[256]){e.msg="invalid code -- missing end-of-block",i.mode=30;break}if(i.lenbits=9,L={bits:i.lenbits},E=Lr(1,i.lens,0,i.nlen,i.lencode,0,i.work,L),i.lenbits=L.bits,E){e.msg="invalid literal/lengths set",i.mode=30;break}if(i.distbits=6,i.distcode=i.distdyn,L={bits:i.distbits},E=Lr(2,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,L),i.distbits=L.bits,E){e.msg="invalid distances set",i.mode=30;break}if(i.mode=20,t===yr)break e;case 20:i.mode=21;case 21:if(a>=6&&d>=258){e.next_out=s,e.avail_out=d,e.next_in=n,e.avail_in=a,i.hold=c,i.bits=_,Ir(e,u),s=e.next_out,o=e.output,d=e.avail_out,n=e.next_in,r=e.input,a=e.avail_in,c=i.hold,_=i.bits,12===i.mode&&(i.back=-1);break}for(i.back=0;f=i.lencode[c&(1<<i.lenbits)-1],v=f>>>24,C=f>>>16&255,g=65535&f,!(v<=_);){if(0===a)break e;a--,c+=r[n++]<<_,_+=8}if(C&&0==(240&C)){for(m=v,T=C,I=g;f=i.lencode[I+((c&(1<<m+T)-1)>>m)],v=f>>>24,C=f>>>16&255,g=65535&f,!(m+v<=_);){if(0===a)break e;a--,c+=r[n++]<<_,_+=8}c>>>=m,_-=m,i.back+=m}if(c>>>=v,_-=v,i.back+=v,i.length=g,0===C){i.mode=26;break}if(32&C){i.back=-1,i.mode=12;break}if(64&C){e.msg="invalid literal/length code",i.mode=30;break}i.extra=15&C,i.mode=22;case 22:if(i.extra){for(A=i.extra;_<A;){if(0===a)break e;a--,c+=r[n++]<<_,_+=8}i.length+=c&(1<<i.extra)-1,c>>>=i.extra,_-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=23;case 23:for(;f=i.distcode[c&(1<<i.distbits)-1],v=f>>>24,C=f>>>16&255,g=65535&f,!(v<=_);){if(0===a)break e;a--,c+=r[n++]<<_,_+=8}if(0==(240&C)){for(m=v,T=C,I=g;f=i.distcode[I+((c&(1<<m+T)-1)>>m)],v=f>>>24,C=f>>>16&255,g=65535&f,!(m+v<=_);){if(0===a)break e;a--,c+=r[n++]<<_,_+=8}c>>>=m,_-=m,i.back+=m}if(c>>>=v,_-=v,i.back+=v,64&C){e.msg="invalid distance code",i.mode=30;break}i.offset=g,i.extra=15&C,i.mode=24;case 24:if(i.extra){for(A=i.extra;_<A;){if(0===a)break e;a--,c+=r[n++]<<_,_+=8}i.offset+=c&(1<<i.extra)-1,c>>>=i.extra,_-=i.extra,i.back+=i.extra}if(i.offset>i.dmax){e.msg="invalid distance too far back",i.mode=30;break}i.mode=25;case 25:if(0===d)break e;if(h=u-d,i.offset>h){if(h=i.offset-h,h>i.whave&&i.sane){e.msg="invalid distance too far back",i.mode=30;break}h>i.wnext?(h-=i.wnext,R=i.wsize-h):R=i.wnext-h,h>i.length&&(h=i.length),p=i.window}else p=o,R=s-i.offset,h=i.length;h>d&&(h=d),d-=h,i.length-=h;do{o[s++]=p[R++]}while(--h);0===i.length&&(i.mode=21);break;case 26:if(0===d)break e;o[s++]=i.length,d--,i.mode=21;break;case 27:if(i.wrap){for(;_<32;){if(0===a)break e;a--,c|=r[n++]<<_,_+=8}if(u-=d,e.total_out+=u,i.total+=u,u&&(e.adler=i.check=i.flags?ai(i.check,o,u,s-u):ni(i.check,o,u,s-u)),u=d,(i.flags?c:Br(c))!==i.check){e.msg="incorrect data check",i.mode=30;break}c=0,_=0}i.mode=28;case 28:if(i.wrap&&i.flags){for(;_<32;){if(0===a)break e;a--,c+=r[n++]<<_,_+=8}if(c!==(4294967295&i.total)){e.msg="incorrect length check",i.mode=30;break}c=0,_=0}i.mode=29;case 29:E=kr;break e;case 30:E=Ur;break e;case 31:return Pr;default:return xr}return e.next_out=s,e.avail_out=d,e.next_in=n,e.avail_in=a,i.hold=c,i.bits=_,(i.wsize||u!==e.avail_out&&i.mode<30&&(i.mode<27||t!==Ar))&&qr(e,e.output,e.next_out,u-e.avail_out),l-=e.avail_in,u-=e.avail_out,e.total_in+=l,e.total_out+=u,i.total+=u,i.wrap&&u&&(e.adler=i.check=i.flags?ai(i.check,o,u,e.next_out-u):ni(i.check,o,u,e.next_out-u)),e.data_type=i.bits+(i.last?64:0)+(12===i.mode?128:0)+(20===i.mode||15===i.mode?256:0),(0===l&&0===u||t===Ar)&&E===Dr&&(E=Mr),E},inflateEnd:e=>{if(!e||!e.state)return xr;let t=e.state;return t.window&&(t.window=null),e.state=null,Dr},inflateGetHeader:(e,t)=>{if(!e||!e.state)return xr;const i=e.state;return 0==(2&i.wrap)?xr:(i.head=t,t.done=!1,Dr)},inflateSetDictionary:(e,t)=>{const i=t.length;let r,o,n;return e&&e.state?(r=e.state,0!==r.wrap&&11!==r.mode?xr:11===r.mode&&(o=1,o=ni(o,t,i,0),o!==r.check)?Ur:(n=qr(e,t,i,i),n?(r.mode=31,Pr):(r.havedict=1,Dr))):xr},inflateInfo:"pako inflate (from Nodeca project)"};var zr=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const Zr=Object.prototype.toString,{Z_NO_FLUSH:Qr,Z_FINISH:Xr,Z_OK:eo,Z_STREAM_END:to,Z_NEED_DICT:io,Z_STREAM_ERROR:ro,Z_DATA_ERROR:oo,Z_MEM_ERROR:no}=ci;function so(e){this.options=er({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new ar,this.strm.avail_out=0;let i=Wr.inflateInit2(this.strm,t.windowBits);if(i!==eo)throw new Error(di[i]);if(this.header=new zr,Wr.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=or(t.dictionary):"[object ArrayBuffer]"===Zr.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(i=Wr.inflateSetDictionary(this.strm,t.dictionary),i!==eo)))throw new Error(di[i])}so.prototype.push=function(e,t){const i=this.strm,r=this.options.chunkSize,o=this.options.dictionary;let n,s,a;if(this.ended)return!1;for(s=t===~~t?t:!0===t?Xr:Qr,"[object ArrayBuffer]"===Zr.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;;){for(0===i.avail_out&&(i.output=new Uint8Array(r),i.next_out=0,i.avail_out=r),n=Wr.inflate(i,s),n===io&&o&&(n=Wr.inflateSetDictionary(i,o),n===eo?n=Wr.inflate(i,s):n===oo&&(n=io));i.avail_in>0&&n===to&&i.state.wrap>0&&0!==e[i.next_in];)Wr.inflateReset(i),n=Wr.inflate(i,s);switch(n){case ro:case oo:case io:case no:return this.onEnd(n),this.ended=!0,!1}if(a=i.avail_out,i.next_out&&(0===i.avail_out||n===to))if("string"===this.options.to){let e=sr(i.output,i.next_out),t=i.next_out-e,o=nr(i.output,e);i.next_out=t,i.avail_out=r-t,t&&i.output.set(i.output.subarray(e,e+t),0),this.onData(o)}else this.onData(i.output.length===i.next_out?i.output:i.output.subarray(0,i.next_out));if(n!==eo||0!==a){if(n===to)return n=Wr.inflateEnd(this.strm),this.onEnd(n),this.ended=!0,!0;if(0===i.avail_in)break}}return!0},so.prototype.onData=function(e){this.chunks.push(e)},so.prototype.onEnd=function(e){e===eo&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=tr(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};const{Deflate:ao,deflate:co,deflateRaw:_o,gzip:lo}=Tr;var uo=lo;const ho=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})),Ro=(e,i,n)=>o(void 0,void 0,void 0,(function*(){const s=[];return yield Promise.any(e.map((e=>o(void 0,void 0,void 0,(function*(){const o=`${e.detectorAddr.replace(/^(https?:\/\/)?/,"https://")}/rtc/detector/ping?t=${a=1e3,d=9999,a+Math.floor(Math.random()*(d-a))}`;var a,d;const c={jwt:n},_=yield i.httpReq({url:o,body:JSON.stringify(c),timeout:5e3,method:r.HttpMethod.POST}),l=Ae.getLogger();if(null==l||l.info(t.L_OLD_DAILY_RECORD_O,`ping res => ${JSON.stringify({status:_.status,host:e})}`),200!==_.status)return Promise.reject();s.push(e.clusterId)}))))),s})),po=e=>{if(!e)return"";return e.jwt||""},vo=(e,i)=>o(void 0,void 0,void 0,(function*(){const o=(e=>{var i;if(!e)return"";let r;try{r=JSON.parse(e.voipCallInfo||'{ "strategy": 0 }')}catch(i){const r=Ae.getLogger();return null==r||r.warn(t.L_OLD_DAILY_RECORD_O,`parse \`voipCallInfo\` of navi failed: ${e.voipCallInfo}`),""}if(0===r.strategy)return"";const o=null===(i=r.callEngine)||void 0===i?void 0:i.filter((e=>4===e.engineType));if(!o||0===o.length)return"";const n=o[0];return n.detectorManager?n.detectorManager:""})(i),n=po(i);let s=null,a=120,d=0;const c={jwt:n};if(o&&n){const t=yield e.httpReq({url:`${o}/rtc/detector/servers`,body:JSON.stringify(c),headers:{"Content-Type":"application/json;charset=UTF-8","Cache-Control":"no-cache",ClientType:`web|${ht.browser}|${ht.version}`,ClientVersion:"5.6.2","Client-Session-Id":ho(),"Request-Id":Date.now().toString()},method:r.HttpMethod.POST}),i=t.data&&JSON.parse(t.data).detectorAddrs;a=t.data&&JSON.parse(t.data).clientDetectMinute,d=t.data&&JSON.parse(t.data).resultCode,i&&r.isArray(i)&&(s=yield Ro(i,e,n))}return{fastMediaUrl:s,clientDetectMinute:a,status:d}}));var Co;exports.RCKickReason=void 0,(Co=exports.RCKickReason||(exports.RCKickReason={}))[Co.SERVER_KICK=1]="SERVER_KICK",Co[Co.OTHER_KICK=2]="OTHER_KICK";const go={[String(exports.RCKickReason.SERVER_KICK)]:1,[String(exports.RCKickReason.OTHER_KICK)]:5};class mo{constructor(){}static getMemo(){return this._memo||(this._memo={}),window.__memo__=this._memo,this._memo}static destroy(){this._memo={}}}var To;mo._memo={},function(e){e[e.new=0]="new",e[e.checking=1]="checking",e[e.connected=2]="connected",e[e.completed=3]="completed",e[e.failed=4]="failed",e[e.disconnected=5]="disconnected",e[e.closed=6]="closed"}(To||(To={}));const Io=(e,t,i)=>{var r;const o=mo.getMemo(),n={dur:0,cod:0,rid:e,csnid:t||(null===(r=o.clientData)||void 0===r?void 0:r.clientSessionId)||"",snid:i,rsid:"",msa:"",msas:[],time:0,resid:"",mtp:0,smct:1,cr:"unknown",net:"unknown",uid:"",stp:0};o.qualitySubscribeReportData=n,o.subscribeData={start:Date.now()}},So=(e,t,i)=>{var r;const o=mo.getMemo(),n={dur:0,cod:0,rid:e,csnid:t||(null===(r=o.clientData)||void 0===r?void 0:r.clientSessionId)||"",snid:i,rsid:"",msa:"",msas:[],time:0,resid:"",mtp:0,smct:1,uid:"",stp:0};o.qualityUnsubscribeReportData=n,o.unsubscribeData={start:Date.now()}},Eo=e=>{const t=mo.getMemo();t.mediaService||(t.mediaService=[]),t.mediaService.push(e)},fo=(e,i)=>{var r;const o=mo.getMemo();let n=[],s=Date.now();null===(r=o.mediaService)||void 0===r||r.forEach((e=>{n.push({rsid:e.reqId,rsdur:e.end-e.start,msa:e.url,rscod:e.status})})),o.subscribeCommand&&(o.subscribeCommand=!1,e.forEach((e=>{var r,a;const d=JSON.stringify(Object.assign(Object.assign({},o.qualitySubscribeReportData),{dur:s-((null===(r=o.subscribeData)||void 0===r?void 0:r.start)||0),cod:i,msas:n,time:s,resid:e.track.getTrackId(),mtp:ot(e.track.getTrackId()).mediaType,smct:e.track instanceof Ve&&(null===(a=e.track)||void 0===a?void 0:a.__isTiny())?2:1}));Ne.__statistics(t.L_QS_SUBSCRIBE_S,d)}))),o.unsubscribeCommand&&(o.unsubscribeCommand=!1,e.forEach((e=>{var r,a;const d=JSON.stringify(Object.assign(Object.assign({},o.qualityUnsubscribeReportData),{dur:s-((null===(r=o.unsubscribeData)||void 0===r?void 0:r.start)||0),cod:i,time:s,msas:n,resid:e.track.getTrackId(),mtp:ot(e.track.getTrackId()).mediaType,smct:e.track instanceof Ve&&(null===(a=e.track)||void 0===a?void 0:a.__isTiny())?2:1}));Ne.__statistics(t.L_QS_UNSUBSCRIBE_S,d)})))},Oo=e=>{var t,i,r,o,n;const s=mo.getMemo(),a=e.subscribe||(null===(t=s.iceStatusData)||void 0===t?void 0:t.subscribe),d=e.publish||(null===(i=s.iceStatusData)||void 0===i?void 0:i.publish),c=e.publishNotReport||(null===(r=s.iceStatusData)||void 0===r?void 0:r.publishNotReport),_=e.subscribeNotReport||(null===(o=s.iceStatusData)||void 0===o?void 0:o.subscribeNotReport),l=e.notFirst||(null===(n=s.iceStatusData)||void 0===n?void 0:n.notFirst);s.iceStatusData={publish:d,subscribe:a,publishNotReport:c,subscribeNotReport:_,notFirst:l},s.iceNewStatusData&&(s.iceOldStatusData=s.iceNewStatusData),e.iceNewStatusData&&(s.iceNewStatusData=e.iceNewStatusData)},Lo=(e,i,r,o)=>{var n,s;const a=mo.getMemo(),d=Date.now(),c=JSON.stringify(Object.assign(Object.assign({},a.qualityJoinRoomReportData),{dur:d-((null===(n=a.joinRoomData)||void 0===n?void 0:n.start)||0),cod:i,rid:e,csnid:null===(s=a.clientData)||void 0===s?void 0:s.clientSessionId,snid:r,time:d,uid:o}));Ne.__statistics(t.L_QS_JOIN_ROOM_S,c)},Ao=e=>{const t={dur:0,cod:0,rid:"",rtp:e,csnid:"",snid:"",time:0,cr:"unknown",net:"unknown",uid:""};mo.getMemo().qualityJoinRoomReportData=t},No=e=>{var t;const i=mo.getMemo(),r=(null===(t=i.joinRoomData)||void 0===t?void 0:t.start)||Date.now();i.joinRoomData={start:r,roomId:e}},yo=(e,i)=>{var r;const o=mo.getMemo(),n=Date.now();let s=[];null===(r=o.mediaService)||void 0===r||r.forEach((e=>{s.push({rsid:e.reqId,rsdur:e.end-e.start,msa:e.url,rscod:e.status})})),e.forEach((e=>{var r;const a=JSON.stringify(Object.assign(Object.assign({},o.qualityPublishReportData),{dur:n-((null===(r=o.publish)||void 0===r?void 0:r.start)||0),cod:i,msas:s,time:n,resid:e.getTrackId(),mtp:ot(e.getTrackId()).mediaType,smct:e instanceof Ve&&e.__isTiny()?2:1}));Ne.__statistics(t.L_QS_PUBLISH_S,a)}))},Do=(e,i)=>{var r,o;const n=mo.getMemo(),s=Date.now();let a=[];null===(r=n.mediaService)||void 0===r||r.forEach((e=>{a.push({rsid:e.reqId,rsdur:e.end-e.start,msa:e.url,rscod:e.status})}));const d=[];d.push({dur:Date.now()-((null===(o=n.publishSignalTotal)||void 0===o?void 0:o.start)||0),cod:i}),e.forEach((e=>{var r;const o=JSON.stringify(Object.assign(Object.assign({},n.qualityPublishReportData),{dur:s-((null===(r=n.publish)||void 0===r?void 0:r.start)||0),cod:i,msas:a,sigs:d,time:s,resid:rt(e),mtp:e.mediaType,smct:e.simulcast}));Ne.__statistics(t.L_QS_PUBLISH_S,o)}))},ko=(e,i)=>{var r,o;const n=mo.getMemo(),s=Date.now();let a=[];null===(r=n.mediaService)||void 0===r||r.forEach((e=>{a.push({rsid:e.reqId,rsdur:e.end-e.start,msa:e.url,rscod:e.status})}));const d=[];d.push({dur:Date.now()-((null===(o=n.unpublishSignalTotal)||void 0===o?void 0:o.start)||0),cod:i}),e.forEach((e=>{var r;const o=e.getTrackId(),c=JSON.stringify(Object.assign(Object.assign({},n.qualityUnpublishReportData),{dur:s-((null===(r=n.unpublish)||void 0===r?void 0:r.start)||0),cod:i,msas:a,sigs:d,time:s,resid:o,mtp:ot(o).mediaType,smct:e instanceof Ve&&e.__isTiny()?2:1}));Ne.__statistics(t.L_QS_UNPUBLISH_S,c)}))},bo=(e,i)=>{var r,o;const n=mo.getMemo(),s=Date.now();let a=[];null===(r=n.mediaService)||void 0===r||r.forEach((e=>{a.push({rsid:e.reqId,rsdur:e.end-e.start,msa:e.url,rscod:e.status})}));const d=[];d.push({dur:Date.now()-((null===(o=n.unpublishSignalTotal)||void 0===o?void 0:o.start)||0),cod:i}),e.forEach((e=>{var r;if(e){const o=JSON.stringify(Object.assign(Object.assign({},n.qualityUnpublishReportData),{dur:s-((null===(r=n.publish)||void 0===r?void 0:r.start)||0),cod:i,msas:a,sigs:d,time:s,resid:rt(e),mtp:e.mediaType,smct:e.simulcast}));Ne.__statistics(t.L_QS_UNPUBLISH_S,o)}}))},xo=()=>{var e,i,r,o;const n=mo.getMemo(),s=JSON.stringify(Object.assign(Object.assign({},n.qualityIceStatusReportData),{dur:((null===(e=n.iceNewStatusData)||void 0===e?void 0:e.start)||0)-((null===(i=n.iceOldStatusData)||void 0===i?void 0:i.start)||0),pices:To[(null===(r=n.iceOldStatusData)||void 0===r?void 0:r.status)||0],ices:To[(null===(o=n.iceNewStatusData)||void 0===o?void 0:o.status)||0],time:Date.now(),cncdts:[]}));Ne.__statistics(t.L_QS_ICE_STATUS_S,s)},Uo=e=>{mo.getMemo().subscribeCommand=e},Po=e=>{mo.getMemo().unsubscribeCommand=e},Mo=()=>({"Content-Type":"application/json;charset=UTF-8","Cache-Control":"no-cache",ClientType:`web|${ht.browser}|${ht.version}`,ClientVersion:"5.6.2","Client-Session-Id":ho(),"Request-Id":Date.now().toString()});class wo{constructor(e,t,i,o=5e3){this._runtime=e,this._context=t,this._msUrl=i,this._timeout=o,this._msInNavi=[],this._failedMs=[],this._rtcFinger=void 0,this._clusterId="",this._configUrl="",this._msList=[],wo.isDetector||t.getConnectionStatus()!==r.ConnectionStatus.CONNECTED||this.detectorMediaSever()}detectorMediaSever(){var e,i;const o=this._context.getNaviInfo();if(wo.jwtToken=(null==o?void 0:o.jwt)||"",this._msUrl)return;const n=Date.now(),s=wo.detectValidMinute+wo.detectorTime>n;wo.isDetector=s,null===(i=null===(e=this._context)||void 0===e?void 0:e.logger)||void 0===i||i.info(t.L_OLD_DAILY_RECORD_O,`set msInDetector => ${JSON.stringify(wo.msInDetector)}`),!s&&o&&r.notEmptyObject(o)&&(this._msList=[],this._getDetectorUrls(o))}_getDetectorUrls(e){var i,r,n,s;return o(this,void 0,void 0,(function*(){if(wo.isDetector)return;wo.isDetector=!0;const{fastMediaUrl:o,clientDetectMinute:a,status:d}=yield vo(this._runtime,e);if(d===exports.RCRTCCode.JWT_TIME_OUT){const e=this._context.getPluginContext();yield e.refetchNaviInfo(),this.detectorMediaSever()}wo.msInDetector=o||[],wo.detectorTime=Date.now(),wo.detectValidMinute=60*a*1e3,null===(r=null===(i=this._context)||void 0===i?void 0:i.logger)||void 0===r||r.info(t.L_OLD_DAILY_RECORD_O,`RCMediaService detectorTime => ${wo.detectorTime}`),null===(s=null===(n=this._context)||void 0===n?void 0:n.logger)||void 0===s||s.info(t.L_OLD_DAILY_RECORD_O,`RCMediaService detectValidMinute => ${wo.detectValidMinute}`)}))}getNaviMS(){return this._msUrl?[this._msUrl]:(r.notEmptyArray(this._msList)&&!this._clusterId||(this._msList=this.setMediaServiceList()),this._msList)}setMediaServiceList(){var e,i,o,n,s,a,d,c;let _=[],l=[];return this._clusterId&&(this._clusterId=this._clusterId.replace(/^(https?:\/\/)?/,"https://"),this._msList.push(this._clusterId)),null===(i=null===(e=this._context)||void 0===e?void 0:e.logger)||void 0===i||i.info(t.L_OLD_DAILY_RECORD_O,`MediaServiceList _clusterId -> ${this._clusterId}`),r.notEmptyArray(wo.msInDetector)&&(wo.msInDetector=wo.msInDetector.map((e=>e.replace(/^(https?:\/\/)?/,"https://"))),this._msList.push(wo.msInDetector[0]),_=wo.msInDetector.concat().splice(1,wo.msInDetector.length-1)),null===(n=null===(o=this._context)||void 0===o?void 0:o.logger)||void 0===n||n.info(t.L_OLD_DAILY_RECORD_O,`MediaServiceList msInDetector ->${JSON.stringify(wo.msInDetector)}`),0===this._msInNavi.length&&(0===this._failedMs.length?this._msInNavi.push(...(e=>{var t;if(!e)return[];let i;try{i=JSON.parse(e.voipCallInfo||'{ "strategy": 0 }')}catch(t){const i=Ae.getLogger();return null==i||i.warn(`parse \`voipCallInfo\` of navi failed: ${e.voipCallInfo}`),[]}if(0===i.strategy)return[];const r=null===(t=i.callEngine)||void 0===t?void 0:t.filter((e=>4===e.engineType));if(!r||0===r.length)return[];const o=r[0],n=[];return o.mediaServer&&n.push(o.mediaServer.replace(/^(https?:\/\/)?/,"https://")),o.backupMediaServer&&o.backupMediaServer.forEach((e=>{n.push(e.replace(/^(https?:\/\/)?/,"https://"))})),n})(this._context.getNaviInfo())):(this._msInNavi.push(...this._failedMs),this._failedMs.length=0)),null===(a=null===(s=this._context)||void 0===s?void 0:s.logger)||void 0===a||a.info(t.L_OLD_DAILY_RECORD_O,`MediaServiceList _msInNavi-> ${JSON.stringify(this._msInNavi)}`),l=this._msInNavi.concat().splice(1,this._msInNavi.length-1),this._msList.push(this._msInNavi[0]),this._msList=[...this._msList,..._,...l],this._msList=[...new Set(this._msList)],null===(c=null===(d=this._context)||void 0===d?void 0:d.logger)||void 0===c||c.info(t.L_OLD_DAILY_RECORD_O,`MediaServiceList msList -> ${JSON.stringify(this._msList)}`),this._msList}_request(e,n,s,a){var d,c,_,l,u,h,R,p,v;return o(this,void 0,void 0,(function*(){if((null===(d=this._context.getNaviInfo())||void 0===d?void 0:d.openGzip)||!1){const e=JSON.stringify(s),t=e.length,i=new Uint8Array(t);for(let r=0;r<t;r++)i[r]=e.charCodeAt(r);const r={"Content-Encoding":"gzip","Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"};n=Object.assign(Object.assign({},n),r),s=uo(i,o)}var o;const C=this.getNaviMS();if(0===C.length)return null===(_=null===(c=this._context)||void 0===c?void 0:c.logger)||void 0===_||_.error(t.L_MEDIA_SERVICE_REQUEST_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.NOT_OPEN_VIDEO_AUDIO_SERVER,msg:"have no valid service address"}),a),{code:exports.RCRTCCode.NOT_OPEN_VIDEO_AUDIO_SERVER};this._rtcFinger&&(s.rtcFinger=this._rtcFinger);for(let o=0;o<C.length;o+=1){const d=Date.now(),c=`${C[o]}${e}`,_=Mo(),g=Object.assign(Object.assign({},_),n),m=/x-www-form-urlencoded/.test(g["Content-Type"])?s:JSON.stringify(s),T=_["Request-Id"];null===(u=null===(l=this._context)||void 0===l?void 0:l.logger)||void 0===u||u.info(t.L_MEDIA_SERVICE_REQUEST_T,JSON.stringify({url:e,"Request-Id":T,timeout:this._timeout}),a);const{status:I,data:S}=yield this._runtime.httpReq({url:c,body:m,headers:g,method:r.HttpMethod.POST,timeout:this._timeout});if(Eo({start:d,end:Date.now(),reqId:T,status:I,url:c}),200===I){const e=JSON.parse(S);return e.rtcFinger&&(this._rtcFinger=e.rtcFinger),e.clusterId&&(this._clusterId=e.clusterId),null===(R=null===(h=this._context)||void 0===h?void 0:h.logger)||void 0===R||R.info(t.L_MEDIA_SERVICE_REQUEST_R,JSON.stringify({status:i.SUCCESSED,url:c,reqId:T}),a),{code:exports.RCRTCCode.SUCCESS,data:e}}this._failedMs.push(...this._msInNavi.splice(o,1)),null===(v=null===(p=this._context)||void 0===p?void 0:p.logger)||void 0===v||v.error(t.L_MEDIA_SERVICE_REQUEST_R,JSON.stringify({status:i.FAILED,msg:`request error -> Request-Id: ${T}, status: ${I}, url: ${c}`}),a)}return{code:exports.RCRTCCode.REQUEST_FAILED}}))}exchange(e,t,i){var r;return o(this,void 0,void 0,(function*(){const o=yield this._request("/exchange",e,t,i);if(o.code===exports.RCRTCCode.SUCCESS&&(null===(r=o.data)||void 0===r?void 0:r.resultCode)===exports.RCRTCCode.SUCCESS){const{urls:e}=o.data;e&&(this._configUrl=e.configUrl)}return o}))}exit(e){return o(this,void 0,void 0,(function*(){const{code:t}=yield this._request("/exit",e,{});return t}))}broadcastSubscribe(e,t){return this._request("/broadcast/subscribe",e,t)}broadcastExit(e){return o(this,void 0,void 0,(function*(){const{code:t}=yield this._request("/broadcast/exit",e,{});return{code:t}}))}setMcuConfig(e,n){var s,a,d,c,_,l,u,h,R,p;return o(this,void 0,void 0,(function*(){const o=null===(a=null===(s=this._context)||void 0===s?void 0:s.logger)||void 0===a?void 0:a.createTraceId();if(null===(c=null===(d=this._context)||void 0===d?void 0:d.logger)||void 0===c||c.info(t.L_MEDIA_SERVICE_SET_MCU_CONFIG_T,JSON.stringify({body:n}),o),!this._configUrl)return null===(l=null===(_=this._context)||void 0===_?void 0:_.logger)||void 0===l||l.error(t.L_MEDIA_SERVICE_SET_MCU_CONFIG_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.MCU_SERVER_NOT_FOUND,msg:"MCU server not found"}),o),{code:exports.RCRTCCode.MCU_SERVER_NOT_FOUND};const v=`${this._configUrl.replace(/^(https?:\/\/)?/,"https://")}/server/mcu/config`,C=Mo(),g=Object.assign(Object.assign({},C),e),m=JSON.stringify(n),T=C["Request-Id"],{status:I,data:S}=yield this._runtime.httpReq({url:v,headers:g,body:m,method:r.HttpMethod.POST});if(200===I){const e=JSON.parse(S);return null===(h=null===(u=this._context)||void 0===u?void 0:u.logger)||void 0===h||h.info(t.L_MEDIA_SERVICE_SET_MCU_CONFIG_R,JSON.stringify({status:i.SUCCESSED,"Request-Id":T}),o),{code:e.resultCode,res:e}}return null===(p=null===(R=this._context)||void 0===R?void 0:R.logger)||void 0===p||p.error(t.L_MEDIA_SERVICE_SET_MCU_CONFIG_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.REQUEST_FAILED,msg:`request error -> Request-Id: ${T}, status: ${I}, url: ${v}`}),o),{code:exports.RCRTCCode.REQUEST_FAILED}}))}getCDNResourceInfo(e,n){var s,a,d,c,_,l;return o(this,void 0,void 0,(function*(){const o=Mo(),u=Object.assign(Object.assign({},o),e),h=o["Request-Id"];null===(a=null===(s=this._context)||void 0===s?void 0:s.logger)||void 0===a||a.info(t.L_MEDIA_SERVICE_GET_CDN_RESOURCE_INFO_T,`request -> Request-Id: ${h}, url: ${n}, headers: ${JSON.stringify(u)}`);const{status:R,data:p}=yield this._runtime.httpReq({url:n,headers:u,method:r.HttpMethod.GET});if(200===R){const e=JSON.parse(p);return null===(c=null===(d=this._context)||void 0===d?void 0:d.logger)||void 0===c||c.info(t.L_MEDIA_SERVICE_GET_CDN_RESOURCE_INFO_R,JSON.stringify({status:i.SUCCESSED,reqId:o["Request-Id"]})),{code:e.resultCode,res:e}}return null===(l=null===(_=this._context)||void 0===_?void 0:_.logger)||void 0===l||l.info(t.L_MEDIA_SERVICE_GET_CDN_RESOURCE_INFO_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.REQUEST_FAILED,msg:`request error -> Request-Id: ${o["Request-Id"]}, status: ${R}, url: ${n}`})),{code:exports.RCRTCCode.REQUEST_FAILED}}))}}var Bo;wo.isDetector=!1,wo.msInDetector=[],wo.detectorTime=0,wo.detectValidMinute=72e5,wo.jwtToken="",function(e){e[e.NORMAL=1]="NORMAL",e[e.TINY=2]="TINY"}(Bo||(Bo={}));const Vo=(e,t)=>Math.round(8*t/e),Fo=(e,t=2)=>{const i=10**t;return Math.round(e*i)/i},Jo=(e,t=2)=>{e>1&&(e/=32767);const i=10**t;return Math.round(e*i)},Go=(e,t,i,r)=>{if(0===t)return 0;if(!i||!r)return Fo(e/t,3);const o=t-r;if(0===o)return 0;const n=e-i;return n<0||o<0?0:Fo(n/o,3)},Ko=e=>{const{jitter:t,rtt:i,packetsLostRate:r}=e;return!vt(t)||!vt(i)||0!==r};class Ho{constructor(){this.__streams=new Map}static getInstance(){return Ho.instance||(Ho.instance=new Ho),Ho.instance}push(e,t){return this.__streams.set(e,t),t}pickup(e){return this.__streams.get(e)}delete(e){return this.__streams.delete(e)}get streams(){const e=new Map;for(const t of this.__streams.keys())e.set(t,this.pickup(t));return e}}class jo{constructor(){}static getInstance(){return this._instance||(this._instance=new Map([["sourceIdForPublishMap",new Map],["sourceIdForSubscribeMap",new Map]])),this._instance}static destroy(){this._instance=new Map([["sourceIdForPublishMap",new Map],["sourceIdForSubscribeMap",new Map]])}}var $o,Yo,qo,Wo,zo,Zo,Qo,Xo,en,tn,rn,on,nn,sn,an,dn,cn,_n;jo._instance=new Map([["sourceIdForPublishMap",new Map],["sourceIdForSubscribeMap",new Map]]),function(e){e.TRACK="track",e.STREAM="stream",e.MEDIASOURCE="media-source",e.INBOUNDRTP="inbound-rtp",e.OUTBOUNDRTP="outbound-rtp",e.REMOTEINBOUNDRTP="remote-inbound-rtp",e.PEERCONNECTION="peer-connection",e.TRANSPORT="transport",e.CERTIFICATE="certificate",e.CANDIDATEPAIR="candidate-pair",e.REMOTECANDIDATE="remote-candidate",e.LOCALCANDIDATE="local-candidate"}($o||($o={}));class ln{constructor(e,t,i){this._rtcPeerConn=e,this._sdpSemantics=t,this._currentUserId=i,this._logger=null,this._latestPacketsSent={},this._latestBytesSent={},this._latestBytesRecv={},this._latestPacketsRecv={},this._logger=Ae.getLogger()}updateBytesSent(e,t,i){let r,o;if(this._latestBytesSent[e]&&t<this._latestBytesSent[e].bytesSent&&this.clearLatestpacketsSent([e]),this._latestBytesSent[e]){const{bytesSent:n,timestamp:s}=this._latestBytesSent[e];r=t-n,o=i-s,this._latestBytesSent[e]={bytesSent:t,timestamp:i}}else r=t,o=1e3,this._latestBytesSent[e]={bytesSent:t,timestamp:i};return Vo(o,r)}updateBytesRecv(e,t,i){let r,o;if(this._latestBytesRecv[e]&&t<this._latestBytesRecv[e].bytesRecv&&this.clearLatestPacketsRecv([e]),this._latestBytesRecv[e]){const{bytesRecv:n,timestamp:s}=this._latestBytesRecv[e];r=t-n,o=i-s,this._latestBytesRecv[e]={bytesRecv:t,timestamp:i}}else r=t,o=1e3,this._latestBytesRecv[e]={bytesRecv:t,timestamp:i};return Vo(o,r)}updateSenderPacketsLost(e,t,i){let r;if(Object.prototype.hasOwnProperty.call(this._latestPacketsSent[e],"packetsSent")){const{packetsLost:o,packetsSent:n}=this._latestPacketsSent[e];r=Go(t,i,o,n),this._latestPacketsSent[e].packetsLost=t,this._latestPacketsSent[e].packetsSent=o===t?n:i}else r=Go(t,i),this._latestPacketsSent[e].packetsLost=t,this._latestPacketsSent[e].packetsSent=i;return r}updateReceiverPacketsLost(e,t,i){let r;if(this._latestPacketsRecv[e]){const{packetsLost:o,packetsRecv:n}=this._latestPacketsRecv[e];r=Go(t,i+t,o,n+o)}else r=Go(t,i);return this._latestPacketsRecv[e]={packetsLost:t,packetsRecv:i},r}clearLatestpacketsSent(e){e.forEach((e=>{if(parseInt(e.split("_").pop())===exports.RCMediaType.VIDEO_ONLY){const t=`${e}_tiny`;delete this._latestPacketsSent[t],delete this._latestBytesSent[t]}delete this._latestPacketsSent[e],delete this._latestBytesSent[e]}))}clearLatestPacketsRecv(e){e.forEach((e=>{delete this._latestPacketsRecv[e],delete this._latestBytesRecv[e]}))}parseRTCStatsReport(e){const t={};for(const i of e.keys())i.includes("RTCCodec_")||(t[i]=e.get(i));return t}formatRCRTCStateReport(e){var r;const o={senders:[],receivers:[]};return null===(r=this._logger)||void 0===r||r.info(t.L_ABSTRACT_STAT_PARSER_FORMAT_RTC_STATE_REPORT_O,JSON.stringify({status:i.SUCCESSED,stats:e,reports:o})),o}getAudioLevelList(e){return[]}getResourceIdByParseSdp(e){const{ssrc:t}=e,i=e.kind||e.mediaType,r=jo.getInstance(),o=r.get("sourceIdForPublishMap"),n=r.get("sourceIdForSubscribeMap");let s=null==o?void 0:o.get(String(t));if(s){if("audio"===i)return`${s}_0`;const e=s.replace(`${this._currentUserId}_`,"").split("_");return e.length>1&&"tiny"===e[1]?`${this._currentUserId}_${e[0]}_1_tiny`:`${s}_1`}let a=null==n?void 0:n.get(String(t));return a?`${a}_${"video"===i?1:0}`:""}isValidSender(e){var t;const i=null===(t=this._rtcPeerConn.currentLocalDescription)||void 0===t?void 0:t.sdp,{ssrc:r}=e;return!(null==i?void 0:i.split("\r\nm=").some((e=>e.includes(r)&&e.includes("a=inactive"))))}isValidReceiver(e){var t;const i=null===(t=this._rtcPeerConn.currentRemoteDescription)||void 0===t?void 0:t.sdp,{ssrc:r}=e;return!(null==i?void 0:i.split("\r\nm=").some((e=>e.includes(r)&&e.includes("a=inactive"))))}formatStateData(e){return Object.values(e).reduce(((e,t)=>t.type===$o.REMOTEINBOUNDRTP?(e.remoteInbound.push(t),e):t.type===$o.INBOUNDRTP?(e.inbound.push(t),e):t.type===$o.OUTBOUNDRTP?(e.outbound.push(t),e):t.type===$o.TRANSPORT?(e.transport.push(t),e):t.type===$o.PEERCONNECTION?(e.connection.push(t),e):e),{outbound:[],remoteInbound:[],inbound:[],transport:[],connection:[]})}}ln.formatSourceIdMapFromSdp=(e,t)=>{const i=jo.getInstance(),r=null==e?void 0:e.match(/a=ssrc:(.*) msid:(.*?) /gi);if(r){if("publish"===t){const e=i.get("sourceIdForPublishMap");null==e||e.clear(),r.forEach((t=>{const[i,r]=t.split(" ").map((e=>e.split(":")[1]));null==e||e.set(i,r)}))}if("subscribe"===t){const e=i.get("sourceIdForSubscribeMap");null==e||e.clear(),r.forEach((t=>{const[i,r]=t.split(" ").map((e=>e.split(":")[1]));null==e||e.set(i,r)}))}}};class un extends ln{formatRCRTCStateReport(e){const{outbound:t,remoteInbound:i,inbound:r,transport:o,connection:n}=this.formatStateData(e),s={senders:[],receivers:[]},a=Math.floor(n[0].timestamp);s.timestamp=a;let d=0,c=0;({totalPacketsLost:d,bitrateSend:c,senders:s.senders}=this.pickOutbound(t,e,d,a,c)),i.length>0&&s.senders.length>0&&this.pickRemoteInbound(i,s.senders,e);let _=0;if(({totalPacketsLost:d,bitrateRecv:_,receivers:s.receivers}=this.pickInbound(r,e,d,a,_)),o.length>0){const t=o[0];this.pickRtcTransport(t,e,s,_,c,d)}return s}pickRtcTransport(e,t,i,r,o,n){const{selectedCandidatePairId:s}=e;if(s){const e=t[s],{availableOutgoingBitrate:a,availableIncomingBitrate:d,currentRoundTripTime:c,localCandidateId:_,remoteCandidateId:l}=e,u=t[_],{ip:h,port:R,networkType:p}=u,v=t[l],{ip:C,port:g,protocol:m}=v;i.iceCandidatePair={IP:h,port:R,networkType:p,remoteIP:C,remotePort:g,protocol:m,bitrateRecv:r,bitrateSend:o,rtt:1e3*c,availableOutgoingBitrate:a,availableIncomingBitrate:d,totalPacketsLost:n},i.receivers.forEach((e=>{e.rtt=c}))}}pickRemoteInbound(e,t,i){e.forEach((e=>{const{localId:r,jitter:o,roundTripTime:n,packetsLost:s}=e,a=t.filter((e=>e.id===r))[0];if(a&&!Ko(a)){const e=this.getResourceIdByParseSdp(i[a.id]);a.jitter=Math.round(1e3*o),a.rtt=n;const t=this._latestPacketsSent[e].crtPacketsSent;a.packetsLostRate=this.updateSenderPacketsLost(e,s,t)}}))}pickOutbound(e,t,i,r,o){const n=[];return e.forEach((e=>{var s;if("unified-plan"===this._sdpSemantics&&!this.isValidSender(e))return;const{id:a,kind:d,transportId:c,mediaSourceId:_,remoteId:l,packetsSent:u,bytesSent:h,trackId:R,encoderImplementation:p,pliCount:v,nackCount:C,firCount:g}=e;if(!R)return;let{framesPerSecond:m,frameWidth:T,frameHeight:I}=e;"video"!==d||T||I||m||(T=t[R].frameWidth,I=t[R].frameHeight,m=_?t[_].framesPerSecond:null);const S=t[l];let E=null,f=null,O=0;S&&(E=S.jitter,f=S.roundTripTime,O=S.packetsLost),i+=O;const L=Ho.getInstance().streams;let A="";for(const i of L.keys()){const r=L.get(i);if(r){const o=null===(s=t[`RTCMediaStream_${r.msid}`])||void 0===s?void 0:s.trackIds;o&&o.includes(e.trackId)&&d===r.kind&&(A=i)}}if(A||(A=this.getResourceIdByParseSdp(e)),!A)return;const N=_?t[_].audioLevel:t[R].audioLevel;let y=null;!this._latestPacketsSent[A]&&(this._latestPacketsSent[A]={}),S?y=this.updateSenderPacketsLost(A,O,u):this._latestPacketsSent[A].crtPacketsSent=u;let D=this.updateBytesSent(A,h,r);D<0&&(D=0),o+=D,n.push({id:a,trackId:A,kind:d,packetsLostRate:y,remoteResource:!1,audioLevel:N||0===N?Jo(N):null,frameWidth:T,frameHeight:I,frameRate:m,bitrate:D,jitter:E?Math.round(1e3*E):E,rtt:f,encoderImplementation:p,pliCount:v,nackCount:C,googFirsSent:-1,samplingRate:-1,googRenderDelayMs:-1,trackState:-1})})),{totalPacketsLost:i,bitrateSend:o,senders:n}}pickInbound(e,t,i,r,o){let n=[];return e.forEach((e=>{if("unified-plan"===this._sdpSemantics&&!this.isValidReceiver(e))return;const{trackId:s,packetsLost:a,packetsReceived:d,jitter:c,bytesReceived:_,framesPerSecond:l,kind:u,codecImplementationName:h,nackCount:R,pliCount:p}=e;if(!s)return;let{frameWidth:v,frameHeight:C,audioLevel:g}=e;"video"===u?v||C||(v=t[s].frameWidth,C=t[s].frameHeight):g||(g=t[s].audioLevel),i+=a;const m=this.getResourceIdByParseSdp(e),T=this.updateReceiverPacketsLost(m,a,d);let I=this.updateBytesRecv(m,_,r);I<0&&(I=0),o+=I,n.push({trackId:m,kind:u,packetsLostRate:T,remoteResource:!0,audioLevel:g||0===g?Jo(g):null,frameWidth:v,frameHeight:C,frameRate:l,bitrate:I,jitter:c?Math.round(1e3*c):0,codecImplementationName:h,nackCount:R,pliCount:p,rtt:null,samplingRate:-1,googFirsReceived:-1,googRenderDelayMs:-1,trackState:-1})})),{totalPacketsLost:i,bitrateRecv:o,receivers:n}}getAudioLevelList(e){const t=[],{outbound:i,inbound:r}=this.formatStateData(e);i.filter((e=>"audio"===(null==e?void 0:e.kind))).forEach((i=>{var r;if("unified-plan"===this._sdpSemantics&&!this.isValidSender(i))return;const{mediaSourceId:o,trackId:n,kind:s}=i,a=this.getResourceIdByParseSdp(i),d=o&&e[o]?e[o].audioLevel:(null===(r=e[n])||void 0===r?void 0:r.audioLevel)||null;t.push({trackId:a,audioLevel:d||0===d?Jo(d):null})}));return r.filter((e=>"audio"===(null==e?void 0:e.kind))).forEach((i=>{if("unified-plan"===this._sdpSemantics&&!this.isValidReceiver(i))return;const{trackId:r}=i,o=i.audioLevel||e[r].audioLevel,n=this.getResourceIdByParseSdp(i);t.push({trackId:n,audioLevel:o||0===o?Jo(o):null})})),t}}class hn extends ln{formatRCRTCStateReport(e){const t=+new Date,i={senders:[],receivers:[],timestamp:t};let r=0,o=0,n=0;for(const s in e){const a=e[s],{type:d}=a;if("outbound-rtp"===d){if("unified-plan"===this._sdpSemantics&&!this.isValidSender(a))continue;const{id:n,kind:s,bytesSent:d,packetsSent:c,bitrateMean:_,framerateMean:l,nackCount:u,pliCount:h,remoteId:R}=a,{jitter:p,roundTripTime:v,packetsLost:C}=R?e[R]:{jitter:null,roundTripTime:null,packetsLost:0},g=this.getResourceIdByParseSdp(a);r+=C;let m=null;!this._latestPacketsSent[g]&&(this._latestPacketsSent[g]={}),R?m=this.updateSenderPacketsLost(g,C,c):this._latestPacketsSent[g].crtPacketsSent=c;let T=0;"video"===s?_&&(T=Math.floor(_/1e3)):T=this.updateBytesSent(g,d,t),T<0&&(T=0),o+=T,i.senders.push({trackId:g,kind:s,packetsLostRate:m,remoteResource:!1,audioLevel:null,frameWidth:null,frameHeight:null,frameRate:Math.floor(l),bitrate:T,jitter:p?Math.round(1e3*p):null,rtt:v,encoderImplementation:null,pliCount:h,nackCount:u,googFirsSent:-1,samplingRate:-1,googRenderDelayMs:-1,trackState:-1})}if("remote-inbound-rtp"===d){const{localId:t}=a,r=this.getResourceIdByParseSdp(e[t]),o=i.senders.filter((e=>e.trackId===r))[0];o&&Ko(o)&&(o.jitter=Math.round(1e3*a.jitter),o.rtt=a.rtt,o.packetsLostRate=this.updateSenderPacketsLost(r,a.packetsLost,this._latestPacketsSent[r].crtPacketsSent))}if("inbound-rtp"===d){if("unified-plan"===this._sdpSemantics&&!this.isValidReceiver(a))continue;const{id:e,packetsLost:o,bytesReceived:s,packetsReceived:d,jitter:c,framerateMean:_,kind:l,bitrateMean:u,nackCount:h,pliCount:R}=a,p=this.getResourceIdByParseSdp(a);r+=o;const v=this.updateReceiverPacketsLost(p,o,d);let C=0;"video"===l?u&&(C=Math.floor(u/1e3)):C=this.updateBytesRecv(p,s,t),C<0&&(C=0),n+=C,i.receivers.push({trackId:p,kind:l,packetsLostRate:v,remoteResource:!0,audioLevel:null,frameWidth:null,frameHeight:null,frameRate:Math.floor(_),bitrate:C,jitter:c?Math.round(1e3*c):null,codecImplementationName:null,nackCount:h,pliCount:R,rtt:null,samplingRate:-1,googFirsReceived:-1,googRenderDelayMs:-1,trackState:-1})}if("candidate-pair"===d&&"succeeded"===a.state){const t=e[a.localCandidateId],{address:s,port:d}=t,c=e[a.remoteCandidateId],{address:_,port:l,protocol:u}=c;i.iceCandidatePair={IP:s,port:d,networkType:null,remoteIP:_,remotePort:l,protocol:u,bitrateRecv:n,bitrateSend:o,rtt:null,availableOutgoingBitrate:null,availableIncomingBitrate:null,totalPacketsLost:r}}}return i.iceCandidatePair&&(i.iceCandidatePair.bitrateSend=o),i.iceCandidatePair&&(i.iceCandidatePair.bitrateRecv=n),i}getAudioLevelList(e){const t=[];for(const i in e){const r=e[i],{type:o}=r;if("outbound-rtp"===o){if("unified-plan"===this._sdpSemantics&&!this.isValidSender(r))continue;const{kind:e}=r;if("video"===e)continue;const i=this.getResourceIdByParseSdp(r);t.push({trackId:i,audioLevel:null})}if("inbound-rtp"===o){if("unified-plan"===this._sdpSemantics&&!this.isValidReceiver(r))continue;const{kind:e}=r;if("video"===e)continue;const i=this.getResourceIdByParseSdp(r);t.push({trackId:i,audioLevel:null})}}return t}}class Rn extends ln{formatRCRTCStateReport(e){const t={senders:[],receivers:[]},i=Math.floor(e.RTCPeerConnection.timestamp);t.timestamp=i;const r=Object.keys(e);let o=0,n=0;r.filter((e=>/^RTCOutboundRTP(Video|Audio)Stream_/.test(e))).forEach((r=>{const o=e[r];if("unified-plan"===this._sdpSemantics&&!this.isValidSender(o))return;const s=this.getResourceIdByParseSdp(o),{mediaType:a,transportId:d,remoteId:c,packetsSent:_,bytesSent:l,trackId:u,encoderImplementation:h,pliCount:R,nackCount:p,firCount:v}=o;if(!u)return;const{audioLevel:C,frameHeight:g,frameWidth:m}=e[u];let T=this.updateBytesSent(s,l,i);T<0&&(T=0),n+=T,t.senders.push({trackId:s,kind:a,packetsLostRate:null,remoteResource:!1,audioLevel:C||0===C?Jo(C):null,frameWidth:m,frameHeight:g,frameRate:null,bitrate:T,jitter:null,rtt:null,encoderImplementation:h,pliCount:R,nackCount:p,googFirsSent:-1,samplingRate:-1,googRenderDelayMs:-1,trackState:-1})}));let s=0;r.filter((e=>/^RTCInboundRTP(Video|Audio)Stream_/.test(e))).forEach((r=>{const n=e[r];if("unified-plan"===this._sdpSemantics&&!this.isValidReceiver(n))return;const{trackId:a,packetsLost:d,packetsReceived:c,jitter:_,bytesReceived:l,mediaType:u,nackCount:h,pliCount:R}=n,p=this.getResourceIdByParseSdp(n);if(!a)return;const{frameHeight:v,frameWidth:C,audioLevel:g}=e[a];o+=d;const m=this.updateReceiverPacketsLost(p,d,c);let T=this.updateBytesRecv(p,l,i);T<0&&(T=0),s+=T,t.receivers.push({trackId:p,kind:u,packetsLostRate:m,remoteResource:!0,audioLevel:g||0===g?Jo(g):null,frameWidth:C,frameHeight:v,frameRate:null,bitrate:T,jitter:_,codecImplementationName:null,nackCount:h,pliCount:R,rtt:null,samplingRate:-1,googFirsReceived:-1,googRenderDelayMs:-1,trackState:-1})}));const a=r.filter((e=>/^RTCTransport_/.test(e)))[0];if(a){const i=e[a],{selectedCandidatePairId:r}=i;if(r){const i=e[r],{availableOutgoingBitrate:a,availableIncomingBitrate:d,currentRoundTripTime:c,localCandidateId:_,remoteCandidateId:l}=i,u=e[_],{address:h,port:R}=u,p=e[l],{address:v,port:C,protocol:g}=p;t.iceCandidatePair={IP:h||null,port:R,networkType:null,remoteIP:v,remotePort:C,protocol:g,bitrateRecv:s,bitrateSend:n,rtt:1e3*c,availableOutgoingBitrate:a,availableIncomingBitrate:d,totalPacketsLost:o},t.receivers.forEach((e=>{e.rtt=c}))}}return t}getAudioLevelList(e){const t=[],i=Object.keys(e);i.filter((e=>/^RTCOutboundRTP(Video|Audio)Stream_/.test(e))).forEach((i=>{const r=e[i];if("unified-plan"===this._sdpSemantics&&!this.isValidSender(r))return;const{trackId:o,mediaType:n}=r;if("video"===n)return;const s=this.getResourceIdByParseSdp(r),a=e[o];t.push({trackId:s,audioLevel:a||0===a?Jo(a):null})}));return i.filter((e=>/^RTCInboundRTP(Video|Audio)Stream_/.test(e))).forEach((i=>{const r=e[i];if("unified-plan"===this._sdpSemantics&&!this.isValidReceiver(r))return;const{trackId:o,mediaType:n}=r;if(!o||"video"===n)return;const{audioLevel:s}=e[o],a=this.getResourceIdByParseSdp(r);t.push({trackId:a,audioLevel:s||0===s?Jo(s):null})})),t}}class pn{constructor(e,t){this.SDP=e,this.type=t,this.SDPHeader="",this.videoStreams=[],this.audioStreams=[],this._logger=null;const i=this.getStreamIndex();this.spliteStreams(i),this._logger=Ae.getLogger()}get videoSdps(){return this.videoStreams.slice()}get audioSdps(){return this.audioStreams.slice()}static trimBlankLine(e){return e.replace(/\n\r\s*\r\n/g,"\r\n").replace(/\s+\r\n/g,"\r\n")}getStreamIndex(){const e=new RegExp("m=(?:video|audio)","img"),t=new Set([0]);let i=e.exec(this.SDP);for(;null!==i;)t.add(null==i?void 0:i.index),i=e.exec(this.SDP);return t.add(this.SDP.length),[...t]}spliteStreams(e){this.SDPHeader=this.SDP.substring(e[0],e[1]).replace(/\r\ns=-/g,`\r\ns=${(new Date).valueOf()}`);for(let t=1;t<e.length;t++){const i=this.SDP.substring(e[t],e[t+1]);/^\bm=video\b/.test(i)?this.videoStreams.push(i):this.audioStreams.push(i)}}static clearInactiveOrRecvonly(e){return/\ba=(recvonly|inactive)\b/.test(e)?e.replace(/\r\na=(ssrc|msid)[^\r\n]+/gi,""):e}setHeaderBitrate(e){this.SDPHeader=this.SDPHeader.replace(/(\r\ns=[^\r\n]+)/gi,`$1\r\nc=IN IP4 0.0.0.0\r\nb=AS:${e*pn.KBitrate}\r\nb=TIAS:${e*pn.KBitrate*850}`)}setAudiosBitrate(e){var i;return null===(i=this._logger)||void 0===i||i.info(t.L_RTC_SDP_BITRATE_O,JSON.stringify({bitrate:e,msg:"SDP setAudiosBitrate"})),this.audioStreams=this.audioStreams.map((t=>this.setAudioItemBitrate(t,e))),this}setAudioBitrateWithStreamId(e,i){var r;return null===(r=this._logger)||void 0===r||r.info(t.L_RTC_SDP_BITRATE_O,JSON.stringify({bitrate:e,streamId:i,msg:"SDP setAudioBitrateWithStreamId"})),this.audioStreams=this.audioStreams.map((t=>new RegExp(`\\bmsid:${i}\\b`,"ig").test(t)?this.setAudioItemBitrate(t,e):t)),this}setAudioBitrateWithMid(e,i){var r;return null===(r=this._logger)||void 0===r||r.info(t.L_RTC_SDP_BITRATE_O,JSON.stringify({bitrate:e,mid:i,msg:"SDP setAudioBitrateWithMid"})),this.audioStreams=this.audioStreams.map((t=>new RegExp(`\\bmid:${i}\\b`,"ig").test(t)?this.setAudioItemBitrate(t,e):t)),this}setAudioItemBitrate(e,t){if(0===t.max&&/\ba=inactive\b/gi.test(e))return e;if(!/\bmaxaveragebitrate\b/gi.test(e)){const i=["$1","maxaveragebitrate="+t.max*pn.KBitrate];e=e.replace(/(\buseinbandfec=[^\r\n]+)/gi,i.join(";"))}return this.addAudioBlineAS(e,t)}addAudioBlineAS(e,t){return/\bb=AS:\d+\b/gi.test(e)?e:e.replace(/(\bc=IN[^\r\n]+)/gi,`$1\r\nb=AS:${t.max*pn.KBitrate}\r\nb=TIAS:${t.max*pn.KBitrate*850}`)}setVideosBitrate(e){var i;return null===(i=this._logger)||void 0===i||i.info(t.L_RTC_SDP_BITRATE_O,JSON.stringify({bitrate:e,msg:"SDP setVideosBitrate"})),this.videoStreams=this.videoStreams.map((t=>this.setVideoItemBitrate(t,e))),this}setVideoBitrateWithStreamId(e,i){var r;return null===(r=this._logger)||void 0===r||r.info(t.L_RTC_SDP_BITRATE_O,JSON.stringify({bitrate:e,streamId:i,msg:"SDP setVideoBitrateWithStreamId"})),this.videoStreams=this.videoStreams.map((t=>new RegExp(`\\bmsid:${i}\\b`,"ig").test(t)?this.setVideoItemBitrate(t,e):t)),this}setVideoBitrateWithMid(e,i){var r;return null===(r=this._logger)||void 0===r||r.info(t.L_RTC_SDP_BITRATE_O,JSON.stringify({bitrate:e,mid:i,msg:"SDP setVideoBitrateWithMid"})),this.videoStreams=this.videoStreams.map((t=>new RegExp(`\\bmid:${i}\\b`,"ig").test(t)?this.setVideoItemBitrate(t,e):t)),this}setVideoItemBitrate(e,t){if(0===t.max&&/\ba=inactive\b/gi.test(e))return e;if(!/\bx-google-max-bitrate\b/.test(e)){const i=["$1","x-google-max-bitrate="+t.max*pn.KBitrate,"x-google-min-bitrate="+t.min*pn.KBitrate,`x-google-start-bitrate=${t.start||t.max*pn.KBitrate*.7}`];e=e.replace(/(\bprofile-level-id=42[e0]01f\b)/gi,i.join(";"))}return this.addVideoBlineAS(e,t)}addVideoBlineAS(e,t){return/\bb=AS:\d+\b/gi.test(e)?e:e.replace(/(\bc=IN[^\r\n]+)/gi,`$1\r\nb=AS:${t.max*pn.KBitrate}\r\nb=TIAS:${t.max*pn.KBitrate*850}`)}clearnSsrcWithMid(e,t){return this.audioStreams=this.audioStreams.map((i=>new RegExp(`\\bmid:${e}\\b`,"ig").test(i)?this.clearSSRC(i,t):i)),this.videoStreams=this.videoStreams.map((i=>new RegExp(`\\bmid:${e}\\b`,"ig").test(i)?this.clearSSRC(i,t):i)),this}clearSSRC(e,t){if(t===qo.SENDONLY){if(/\ba=sendonly\b/.test(e))return e.replace(/\r\na=(ssrc|msid)[^\r\n]+/gi,"")}if(t===qo.RECVONLY){if(/\ba=recvonly\b/.test(e))return e.replace(/\r\na=(ssrc|msid)[^\r\n]+/gi,"")}if(t===qo.INACTIVE){if(/\ba=inactive\b/.test(e))return e.replace(/\r\na=(ssrc|msid)[^\r\n]+/gi,"")}return e}}pn.KBitrate=1,function(e){e.PLANB="plan-b",e.UNIFIEDPLAN="unified-plan"}(Yo||(Yo={})),function(e){e.SENDONLY="sendonly",e.RECVONLY="recvonly",e.INACTIVE="inactive"}(qo||(qo={}));class vn{constructor(e){this._peer=e,this._outboundStreams={},this._logger=null,this._logger=Ae.getLogger()}static setSdpSemantics(e){const i=Ae.getLogger(),{browser:r,version:o,supportsUnifiedPlan:n}=ht;null==i||i.info(t.L_A_SDP_STRATEGY_SET_SDP_SEMANTICS_O,JSON.stringify({sdpSemantics:e,supportsUnifiedPlan:n,browser:r,version:o})),n?/chrome/i.test(r)?this._sdpSemantics=o>92?"unified-plan":o<72?"plan-b":e:/firefox/i.test(r)?this._sdpSemantics="unified-plan":/safari/i.test(r)?this._sdpSemantics=o<12?"plan-b":"unified-plan":this._sdpSemantics="unified-plan":this._sdpSemantics="plan-b"}static getSdpSemantics(){return vn._sdpSemantics}getOutboundVideoInfo(){const e=[];for(const t in this._outboundStreams){const i=this._outboundStreams[t].getVideoTracks()[0];if(!i)continue;const r=/_tiny$/.test(t),{width:o,height:n}=tt(i);e.push({trackId:i.id,simulcast:r?Bo.TINY:Bo.NORMAL,resolution:`${o}x${n}`})}return e}setRemoteAnswer(e){var r,n;return o(this,void 0,void 0,(function*(){if(e=pn.trimBlankLine(e),"disconnected"===this._peer.connectionState||"closed"===this._peer.connectionState)return exports.RCRTCCode.SET_REMOTE_DESCRIPTION_FAILED;try{yield this._peer.setRemoteDescription({type:"answer",sdp:e})}catch(e){return null===(r=this._logger)||void 0===r||r.info(t.L_A_SDP_STRATEGY_SET_REMOTE_ANSWER_O,JSON.stringify({status:i.FAILED,msg:e})),exports.RCRTCCode.SET_REMOTE_DESCRIPTION_FAILED}return null===(n=this._logger)||void 0===n||n.info(t.L_A_SDP_STRATEGY_SET_REMOTE_ANSWER_O,JSON.stringify({status:i.SUCCESSED,sdp:e})),exports.RCRTCCode.SUCCESS}))}getStatParsr(e,t,i){return/chrome/i.test(ht.browser)?new un(e,t,i):/Firefox/i.test(ht.browser)?new hn(e,t,i):/Safari/i.test(ht.browser)?new Rn(e,t,i):null}resetSdp(e){return pn.trimBlankLine(e)}}class Cn extends pn{constructor(e){super(e,Yo.PLANB),this.SDP=e}stringify(){const e=[this.SDPHeader];[...this.audioStreams,...this.videoStreams].forEach((t=>{const i=t.match(/\ba=mid:(video|audio)\b/),r=pn.clearInactiveOrRecvonly(t);i&&i[1]===De.AUDIO&&(e[1]=r),i&&i[1]===De.VIDEO&&(e[2]=r)}));const t=e.join("");return pn.trimBlankLine(t)}setAudioBitrateWithStreamId(e,i){var r;return null===(r=this._logger)||void 0===r||r.warn(t.L_OLD_DAILY_RECORD_O,"plan-b not support set Audio Bitrate With Stream Id"),this}setVideoBitrateWithStreamId(e,i){var r;return null===(r=this._logger)||void 0===r||r.warn(t.L_OLD_DAILY_RECORD_O,"plan-b not support set Video Bitrate With Stream Id"),this}}class gn extends vn{constructor(){super(...arguments),this.senders={},this._localTracks=[]}addLocalTrack(e){this._localTracks.includes(e)||this._localTracks.push(e);const t=e.getStreamId(),i=e.__innerGetMediaStreamTrack(),r=this._outboundStreams[t]||(this._outboundStreams[t]=new MediaStream);r.getTracks().forEach((e=>{e.kind===i.kind&&r.removeTrack(e)})),r.addTrack(i);const o=e.getTrackId(),n=this.senders[o];n?n.replaceTrack(i):this.senders[o]=this._peer.addTrack(i,r)}removeLocalTrack(e){const t=this._localTracks.findIndex((t=>t===e));t>=0&&this._localTracks.splice(t,1);const i=e.getTrackId(),r=this.senders[i];r&&(r.replaceTrack(null),this._peer.removeTrack(r),delete this.senders[i])}updateSubRemoteTracks(e){}updateRecvTransceiverMap(e,t){}setBitrate(e,t,i){this._maxBitrate=e,this._minBitrate=t,this._startBitrate=i||.7*e}createOffer(e){return o(this,void 0,void 0,(function*(){const t=yield this._peer.createOffer({iceRestart:e,offerToReceiveAudio:!0,offerToReceiveVideo:!0});for(const e in this._outboundStreams){const i=this._outboundStreams[e].id;t.sdp=t.sdp.replace(new RegExp(i,"g"),e)}return t.sdp&&(t.sdp=pn.clearInactiveOrRecvonly(t.sdp)),yield this._peer.setLocalDescription(t),{type:"offer",semantics:"plan-b",sdp:t.sdp}}))}setRemoteAnswer(e){return e=this.resetSdp(e),super.setRemoteAnswer(e)}resetSdp(e){const t=new Cn(e),i={max:0,min:0},r={max:0,min:0};return this._localTracks.forEach((e=>{const{min:t,max:o,start:n}=e.getBitrate();e.isAudioTrack()&&(r.max=r.max<o?o:r.max,r.min=r.min>t?t:r.min,r.max===o?r.start=n:r.start=.7*r.max),e.isVideoTrack()&&(i.max=i.max<o?o:i.max,i.min=i.min>t?t:i.min,i.max===o?i.start=n:i.start=.7*i.max)})),t.setAudiosBitrate(r),t.setVideosBitrate(i),t.stringify()}}class mn extends pn{constructor(e){super(e,Yo.UNIFIEDPLAN),this.SDP=e}stringify(){const e=[this.SDPHeader];[...this.audioStreams,...this.videoStreams].forEach((t=>{const i=t.match(/\ba=mid:(\d+)\b/);i&&i[1]&&(e[+i[1]+1]=t)})),this.SDPHeader="",this.videoStreams=[],this.audioStreams=[];const t=e.join("");return pn.trimBlankLine(t)}}class Tn{static splitSections(e){return e.split("\nm=").map(((e,t)=>`${(t>0?`m=${e}`:e).trim()}\r\n`))}static getMediaSections(e){const t=Tn.splitSections(e);return t.shift(),t}static parseExtmap(e){const t=e.substr(9).split(" ");return{id:parseInt(t[0],10),direction:t[0].indexOf("/")>0?t[0].split("/")[1]:"sendrecv",uri:t[1]}}static splitLines(e){return e.trim().split("\n").map((e=>e.trim()))}static parseMLine(e){const t=Tn.splitLines(e)[0].substr(2).split(" ");return{kind:t[0],port:parseInt(t[1],10),protocol:t[2],fmt:t.slice(3).join(" ")}}static matchPrefix(e,t){return Tn.splitLines(e).filter((e=>0===e.indexOf(t)))}static parseMsid(e){let t;const i=Tn.matchPrefix(e,"a=msid:");if(1===i.length)return t=i[0].substr(7).split(" "),{stream:t[0],track:t[1]};const r=Tn.matchPrefix(e,"a=ssrc:").map((e=>Tn.parseSsrcMedia(e))).filter((e=>"msid"===e.attribute));return r.length>0&&r[0].value?(t=r[0].value.split(" "),{stream:t[0],track:t[1]}):{stream:"",track:""}}static parseSsrcMedia(e){const t=e.indexOf(" "),i={ssrc:parseInt(e.substr(7,t-7),10)},r=e.indexOf(":",t);return r>-1?(i.attribute=e.substr(t+1,r-t-1),i.value=e.substr(r+1)):i.attribute=e.substr(t+1),i}static getMid(e){const t=Tn.matchPrefix(e,"a=mid:")[0];if(t)return t.substr(6)}}class In extends vn{constructor(){super(...arguments),this._sendTransceiver={},this._localTracks={},this._recvAudio=[],this._recvVideo=[],this._recvTransceiver={},this._subedTracks=[],this.midMsid={}}setBitrate(e,i,r){var o;null===(o=this._logger)||void 0===o||o.warn(t.L_OLD_DAILY_RECORD_O,"the interface named `setBitrate` is invalid while sdpSemantics value is `unified-plan`")}addLocalTrack(e){var t;const i=e.getTrackId(),r=e.getStreamId(),o=e.__innerGetMediaStreamTrack();this._localTracks[i]=e;const n=this._outboundStreams[r]||(this._outboundStreams[r]=new MediaStream);n.getTracks().forEach((e=>{e.kind===o.kind&&n.removeTrack(e)})),n.addTrack(o);const s=this._sendTransceiver[i];s?(s.sender.replaceTrack(o),s.direction="sendonly"):this._sendTransceiver[i]=this._peer.addTransceiver(o,{direction:"sendonly",streams:[n]});Ho.getInstance().push(i,{msid:r,id:this._outboundStreams[r].id,kind:null===(t=e.streamTrack)||void 0===t?void 0:t.kind})}removeLocalTrack(e){const t=e.getTrackId(),i=e.getStreamId();e.__innerGetMediaStreamTrack(),delete this._localTracks[t];const r=this._sendTransceiver[t];if(!r)return;"closed"!==this._peer.connectionState&&(r.direction="inactive",this._peer.removeTrack(r.sender),r.sender.replaceTrack(null));const o=this._outboundStreams[i];(e.isAudioTrack()?o.getAudioTracks():o.getVideoTracks()).forEach((e=>o.removeTrack(e)));const n=this._sendTransceiver[`${t}_tiny`];if(n&&"inactive"!==n.direction&&"closed"!==this._peer.connectionState){n.direction="inactive";const{sender:e}=n,t=e.track;this._peer.removeTrack(e),e.replaceTrack(null);this._outboundStreams[`${i}_tiny`].removeTrack(t),t.stop()}}updateRecvTransceiverMap(e,t){const{mediaType:i}=ot(e);this._recvTransceiver[e]=t;const r=i===exports.RCMediaType.AUDIO_ONLY?this._recvAudio:this._recvVideo,o=r.findIndex((e=>e===t));o>=0&&r.splice(o,1)}updateSubRemoteTracks(e){const t=e.slice(),i=this._subedTracks.slice();this._subedTracks=e.slice();for(let e=t.length-1;e>=0;e-=1){const r=t[e],o=i.findIndex((e=>e===r));o>=0&&(t.splice(e,1),i.splice(o,1))}i.length&&i.forEach((e=>{const t=e.getTrackId();e.__innerSetMediaStreamTrack(void 0);const i=this._recvTransceiver[t];i&&(i.direction="inactive")}));const r={audio:0,video:0};t.length&&t.forEach((e=>{const t=e.isAudioTrack()?"audio":"video",i=this._recvTransceiver[e.getTrackId()];i?i.direction="recvonly":r[t]+=1}));for(let e=this._recvAudio.length;e<r.audio;e+=1)this._recvAudio.push(this._peer.addTransceiver("audio",{direction:"recvonly"}));for(let e=this._recvVideo.length;e<r.video;e+=1)this._recvVideo.push(this._peer.addTransceiver("video",{direction:"recvonly"}))}createOffer(e){return o(this,void 0,void 0,(function*(){const t=yield this._peer.createOffer({iceRestart:e});let i=t.sdp;for(const e in this._outboundStreams){const t=this._outboundStreams[e].id;i=i.replace(new RegExp(t,"g"),e)}return i=this.resetOfferSdp(i),i=i.replace(/(a=ice-options:trickle)/g,"$1\r\na=ice-options:renomination"),t.sdp=i,yield this._peer.setLocalDescription(t),{type:"offer",semantics:"unified-plan",sdp:i}}))}setRemoteAnswer(e){e=this.resetAnswerSdp(e);const t=/[\r\n]+\r\n[\r\n]+/g;return t.test(e)&&(e=e.replace(t,"\r\n")),super.setRemoteAnswer(e)}resetOfferSdp(e){var t;const i=new mn(e);for(const r in this._sendTransceiver){const o=this._sendTransceiver[r],n=null===(t=o.sender.track)||void 0===t?void 0:t.kind;let{direction:s,mid:a}=o;if(!a){Tn.getMediaSections(e).forEach((e=>{Tn.parseExtmap(e);const{kind:t}=Tn.parseMLine(e);let{stream:i}=Tn.parseMsid(e);const o=Tn.getMid(e);"video"===n?/tiny$/.test(i)?i=i.replace(/tiny$/gi,"1_tiny"):i+="_1":i+="_0",i===r&&n===t&&o&&(a=o)}))}if(a){if(s===qo.SENDONLY){const e=this._localTracks[r],t=null==e?void 0:e.getBitrate();n===De.AUDIO&&t&&i.setAudioBitrateWithMid(t,a),n===De.VIDEO&&t&&i.setVideoBitrateWithMid(t,a)}s===qo.INACTIVE&&i.clearnSsrcWithMid(a,qo.INACTIVE)}}for(const e in this._recvTransceiver){const t=this._recvTransceiver[e],{direction:r,mid:o}=t;o&&r===qo.INACTIVE&&i.clearnSsrcWithMid(o,qo.RECVONLY)}return i.stringify()}resetAnswerSdp(e){var t;const i=new mn(e);for(const e in this._sendTransceiver){const r=this._sendTransceiver[e],{mid:o}=r;if(o){const n=this._localTracks[e],s=null==n?void 0:n.getBitrate(),a=null===(t=r.sender.track)||void 0===t?void 0:t.kind;a===De.AUDIO&&s&&i.setAudioBitrateWithMid(s,o),a===De.VIDEO&&s&&i.setVideoBitrateWithMid(s,o)}}return i.stringify()}}!function(e){e.VP8="VP8",e.VP9="VP9",e.H264="H264"}(Wo||(Wo={}));class Sn extends r.EventEmitter{constructor(e,t,i,r,o){super(),this._pcName=e,this._reTryExchange=t,this._currentUserId=i,this._polarisReport=r,this.onTrackTrouble=o,this.pubLocalTracks={},this._reTryExchangeTimer=null,this._reportStatsTimer=null,this._reportR3R4ToPolarisTimer=null,this._isDestroyed=!1,this._reportStatsData=null,this._originReportStatsData=null,this._logger=null,this._reportListener=null,this.troubleTracksCollection=new Map;const n=vn.getSdpSemantics(),s=this._rtcPeerConn=new RTCPeerConnection({sdpSemantics:n});this._sdpStrategy="plan-b"===n?new gn(s):new In(s),this._rtcPeerConn.oniceconnectionstatechange=this._onICEConnectionStateChange.bind(this),this._rtcPeerConn.onconnectionstatechange=this._onConnectionStateChange.bind(this),this._rtcPeerConn.ontrack=this._onTrackReady.bind(this),this.reportParser=this._sdpStrategy.getStatParsr(this._rtcPeerConn,n,this._currentUserId),this._logger=Ae.getLogger()}getName(){return this._pcName}getLocalTracks(){return Object.values(this.pubLocalTracks)}_onConnectionStateChange(){var e;null===(e=this._logger)||void 0===e||e.info(t.L_RTC_PEER_CONNECTION_CONNECTION_STATE_S,JSON.stringify({connectionState:this._rtcPeerConn.connectionState,pcName:this._pcName}))}startAutoExecute(e=1e3){this.stopAutoExecute(),this._reportStatsTimer=setTimeout((()=>{this._reportHandle(e),this.startAutoExecute()}),e)}stopAutoExecute(){clearTimeout(this._reportStatsTimer)}_onICEConnectionStateChange(){var e,r,o,n;Oo({iceNewStatusData:{start:Date.now(),status:this._rtcPeerConn.iceConnectionState}}),(e=>{var t,i;const r=mo.getMemo(),o={dur:0,pices:0,ices:0,rid:(null===(t=r.joinRoomData)||void 0===t?void 0:t.roomId)||"",csnid:(null===(i=r.clientData)||void 0===i?void 0:i.clientSessionId)||"",snid:"",time:0,rcdts:[],lcdts:[],cncdts:void 0,cr:"unknown",net:"unknown",uid:e};r.qualityIceStatusReportData=o})(this._currentUserId),null===(e=this._logger)||void 0===e||e.info(t.L_RTC_PEER_CONNECTION_ICE_CONNECTION_STATE_S,JSON.stringify({connectionState:this._rtcPeerConn.connectionState,pcName:this._pcName})),"connected"===this._rtcPeerConn.iceConnectionState&&((()=>{var e,i,r,o,n,s,a,d,c,_,l,u,h,R;const p=mo.getMemo(),v=Date.now();if(!(null===(e=p.iceStatusData)||void 0===e?void 0:e.subscribeNotReport)&&(null===(i=p.iceStatusData)||void 0===i?void 0:i.subscribe)){Oo({subscribeNotReport:!0});const e=p.iceStatusData.notFirst?0:((null===(r=p.iceNewStatusData)||void 0===r?void 0:r.start)||0)-((null===(n=null===(o=p.iceStatusData)||void 0===o?void 0:o.subscribe)||void 0===n?void 0:n.time)||0),i=JSON.stringify(Object.assign(Object.assign({},p.qualityIceStatusReportData),{dur:e,pices:To[(null===(s=p.iceOldStatusData)||void 0===s?void 0:s.status)||0],ices:To[(null===(a=p.iceNewStatusData)||void 0===a?void 0:a.status)||0],rcdts:void 0,lcdts:void 0,cncdts:void 0,time:v}));Ne.__statistics(t.L_QS_SUB_ICE_STATUS_S,i)}if(!(null===(d=p.iceStatusData)||void 0===d?void 0:d.publishNotReport)&&(null===(c=p.iceStatusData)||void 0===c?void 0:c.publish)){Oo({publishNotReport:!0});const e=p.iceStatusData.notFirst?0:((null===(_=p.iceNewStatusData)||void 0===_?void 0:_.start)||0)-((null===(u=null===(l=p.iceStatusData)||void 0===l?void 0:l.publish)||void 0===u?void 0:u.time)||0),i=JSON.stringify(Object.assign(Object.assign({},p.qualityIceStatusReportData),{dur:e,pices:To[(null===(h=p.iceOldStatusData)||void 0===h?void 0:h.status)||0],ices:To[(null===(R=p.iceNewStatusData)||void 0===R?void 0:R.status)||0],rcdts:void 0,lcdts:void 0,cncdts:void 0,time:v}));Ne.__statistics(t.L_QS_PUB_ICE_STATUS_S,i)}Oo({notFirst:!0})})(),xo(),this.stopAutoExecute(),this.startAutoExecute()),"failed"!==this._rtcPeerConn.iceConnectionState&&"disconnected"!==this._rtcPeerConn.iceConnectionState||(xo(),this._reTryExchange(),this._reTryExchangeTimer=setInterval(this._reTryExchange,15e3));try{null===(o=null===(r=this._reportListener)||void 0===r?void 0:r.onICEConnectionStateChange)||void 0===o||o.call(r,this._rtcPeerConn.iceConnectionState,this._pcName)}catch(e){null===(n=this._logger)||void 0===n||n.error(t.L_RTC_PEER_CONNECTION_ICE_CONNECTION_STATE_REPORT_R,JSON.stringify({status:i.FAILED,pcName:this._pcName,mag:e}))}}_onTrackReady(e){if(!e.streams.length)return;const t=e.streams[0].id,{track:i}=e.receiver,r=[t,"audio"===i.kind?exports.RCMediaType.AUDIO_ONLY:exports.RCMediaType.VIDEO_ONLY].join("_");this._updateRecvTransceiverMap(r,e.transceiver),this.emit(Sn.__INNER_EVENT_TRACK_READY__,e)}setBitrate(e,r,n){var s;return o(this,void 0,void 0,(function*(){this._sdpStrategy.setBitrate(e,r,n),null===(s=this._logger)||void 0===s||s.info(t.L_RTC_PEER_CONNECTION_SET_BITRATE_O,JSON.stringify({status:i.SUCCESSED,max:e,min:r,start:n}))}))}createOffer(e){var i;return o(this,void 0,void 0,(function*(){const r=yield this._sdpStrategy.createOffer(e);return null===(i=this._logger)||void 0===i||i.info(t.L_RTC_PEER_CONNECTION_CREATE_OFFER_O,JSON.stringify({offerSDP:r.sdp,sdpDemantics:r.semantics})),r}))}setRemoteAnswer(e){return o(this,void 0,void 0,(function*(){return this._sdpStrategy.setRemoteAnswer(e)}))}getLocalTrack(e){return this.pubLocalTracks[e]||null}addLocalTrack(e){var i;this.pubLocalTracks[e.getTrackId()]=e,this._sdpStrategy.addLocalTrack(e),e.off(we.__INNER_EVENT_MUTED_CHANGE__,this._onLocalTrackMuted,this),e.off(we.__INNER_EVENT_DESTROY__,this._onLocalTrackDestroied,this),e.on(we.__INNER_EVENT_MUTED_CHANGE__,this._onLocalTrackMuted,this),e.on(we.__INNER_EVENT_DESTROY__,this._onLocalTrackDestroied,this),null===(i=this._logger)||void 0===i||i.info(t.L_RTC_PEER_CONNECTION_ADD_LOCAL_TRACK_O,JSON.stringify({trackId:e.getTrackId()}))}removeLocalTrackById(e){var r,o;const n=this.getLocalTrack(e);n?(null===(o=this._logger)||void 0===o||o.info(t.L_RTC_PEER_CONNECTION_REMOVE_LOCAL_TRACK_BY_ID_O,JSON.stringify({status:i.SUCCESSED,trackId:e})),this.removeLocalTrack(n)):null===(r=this._logger)||void 0===r||r.warn(t.L_RTC_PEER_CONNECTION_REMOVE_LOCAL_TRACK_BY_ID_O,JSON.stringify({status:i.FAILED,msg:"track not found",trackId:e}))}removeAllLocalTrack(){Object.keys(this.pubLocalTracks).forEach((e=>{/_tiny$/.test(e)||this.removeLocalTrackById(e)}))}removeLocalTrack(e){var i;const r=e.getTrackId();delete this.pubLocalTracks[r],this._sdpStrategy.removeLocalTrack(e),e.__innerSetPublished(!1),e.off(we.__INNER_EVENT_MUTED_CHANGE__,this._onLocalTrackMuted,this),e.off(we.__INNER_EVENT_DESTROY__,this._onLocalTrackDestroied,this);const o=`${r}_tiny`,n=this.getLocalTrack(o);n&&(this._sdpStrategy.removeLocalTrack(n),delete this.pubLocalTracks[o],n.destroy()),null===(i=this._logger)||void 0===i||i.info(t.L_RTC_PEER_CONNECTION_REMOVE_LOCAL_TRACK_O,JSON.stringify({trackId:r}))}_updateRecvTransceiverMap(e,t){this._sdpStrategy.updateRecvTransceiverMap(e,t)}updateSubRemoteTracks(e){this._sdpStrategy.updateSubRemoteTracks(e)}getOutboundVideoInfo(){return this._sdpStrategy.getOutboundVideoInfo()}_onLocalTrackMuted(e,i){var r;const o=this.getLocalTrack(`${e.getTrackId()}_tiny`);o&&(o.__innerGetMediaStreamTrack().enabled=!e.isLocalMuted()),this.emit(we.__INNER_EVENT_MUTED_CHANGE__,e,i),null===(r=this._logger)||void 0===r||r.info(t.L_RTC_PEER_CONNECTION_LOCAL_TRACK_MUTED_O,JSON.stringify({trackId:e.getTrackId()}))}_onLocalTrackDestroied(e){this.emit(we.__INNER_EVENT_DESTROY__,e)}registerReportListener(e){this._reportListener=e}_createRCRTCStateReport(e){const{timestamp:t,iceCandidatePair:i,senders:r,receivers:o}=JSON.parse(JSON.stringify(e));null==i||delete i.totalPacketsLost;for(const e in i)vt(i[e])&&delete i[e];const n=r.map((e=>{const t={};return e.trackId&&(t.trackId=e.trackId),e.kind&&(t.kind=e.kind),(e.packetsLostRate||0===e.packetsLostRate)&&(t.packetsLostRate=e.packetsLostRate),t.remoteResource=e.remoteResource,(e.audioLevel||0===e.audioLevel)&&(t.audioLevel=e.audioLevel),e.frameWidth&&(t.frameWidth=e.frameWidth),e.frameHeight&&(t.frameHeight=e.frameHeight),e.frameRate&&(t.frameRate=e.frameRate),(e.bitrate||0===e.bitrate)&&(t.bitrate=e.bitrate),e.jitter&&(t.jitter=e.jitter),t})),s=o.map((e=>{const t={};return e.trackId&&(t.trackId=e.trackId),e.kind&&(t.kind=e.kind),(e.packetsLostRate||0===e.packetsLostRate)&&(t.packetsLostRate=e.packetsLostRate),t.remoteResource=e.remoteResource,(e.audioLevel||0===e.audioLevel)&&(t.audioLevel=e.audioLevel),e.frameWidth&&(t.frameWidth=e.frameWidth),e.frameHeight&&(t.frameHeight=e.frameHeight),e.frameRate&&(t.frameRate=e.frameRate),(e.bitrate||0===e.bitrate)&&(t.bitrate=e.bitrate),e.jitter&&(t.jitter=e.jitter),t}));return{timestamp:t,iceCandidatePair:i,senders:n.filter((e=>e.trackId)),receivers:s.filter((e=>e.trackId)),pcName:this._pcName}}_getStatsData(e=1e3){var t,i,r;return o(this,void 0,void 0,(function*(){let o=null;if((null===(t=this._originReportStatsData)||void 0===t?void 0:t.timestamp)&&this._originReportStatsData.timestamp>Date.now()-e)o=this._originReportStatsData.data;else{const e=yield this._rtcPeerConn.getStats();o=null===(i=this.reportParser)||void 0===i?void 0:i.parseRTCStatsReport(e),this._originReportStatsData={data:o,timestamp:Date.now()}}return null===(r=this.reportParser)||void 0===r?void 0:r.formatRCRTCStateReport(o)}))}getAudioLevelReportData(e=1e3){var t,i,r;return o(this,void 0,void 0,(function*(){let o=null;if((null===(t=this._originReportStatsData)||void 0===t?void 0:t.timestamp)&&this._originReportStatsData.timestamp>Date.now()-e)o=this._originReportStatsData.data;else{const e=yield this._rtcPeerConn.getStats();o=null===(i=this.reportParser)||void 0===i?void 0:i.parseRTCStatsReport(e),this._originReportStatsData={data:o,timestamp:Date.now()}}if(!o)return[];return null===(r=this.reportParser)||void 0===r?void 0:r.getAudioLevelList(o)}))}_reportHandle(e){var t,i;return o(this,void 0,void 0,(function*(){const r=yield this._getStatsData(e);if(!r)return;this._reportStatsData=r;const o=this._createRCRTCStateReport(r);null===(i=null===(t=this._reportListener)||void 0===t?void 0:t.onStateReport)||void 0===i||i.call(t,o)}))}_getCacheStatsData(){return this._reportStatsData}_sendR3R4Data(){var e;return o(this,void 0,void 0,(function*(){const t=this._getCacheStatsData();if(!t)return!0;if(t.senders.length||t.receivers.length){const i=yield null===(e=this._polarisReport)||void 0===e?void 0:e.sendR3R4Data(t);return t.senders.length>0&&t.senders.forEach((e=>{const{encoderImplementation:t,frameRate:i,frameWidth:r,frameHeight:o}=e;let n=0;"unknown"!==(null==t?void 0:t.toLowerCase())&&i&&r&&o||(n=1),this.setTroubleTrack(e.trackId,n)})),i}}))}__reportR3R4ToPolaris(){return o(this,void 0,void 0,(function*(){clearTimeout(this._reportR3R4ToPolarisTimer),yield this._sendR3R4Data(),this._reportR3R4ToPolarisTimer=setTimeout((()=>{this.__reportR3R4ToPolaris()}),2e3)}))}getRTCPeerConn(){return this._rtcPeerConn}getCapabilitiesCodes(e=Wo.H264){var t;let i=null===(t=RTCRtpSender.getCapabilities("video"))||void 0===t?void 0:t.codecs,r=null;switch(e){case Wo.VP8:case Wo.VP9:r=i.find((t=>t.mimeType.match(e)));break;case Wo.H264:r=i.find((t=>{var i;return t.mimeType.match(e)&&(null===(i=t.sdpFmtpLine)||void 0===i?void 0:i.match("42e01f"))}))}return i=i.filter((e=>e!==r)),i=[r,...i],i}setEncoderPreferences(e){var r;return o(this,void 0,void 0,(function*(){const o=this.getRTCPeerConn(),n=this.getCapabilitiesCodes(e);null===(r=this._logger)||void 0===r||r.info(t.L_SET_ENCODER_PREFERENCES_S,JSON.stringify({status:i.SUCCESSED,codecCap:n})),o.getTransceivers().forEach((e=>{var t;"video"===(null===(t=e.sender.track)||void 0===t?void 0:t.kind)&&e.setCodecPreferences(n)}))}))}destroy(){var e;this.clear(),this.clearReTryExchangeTimer(),clearTimeout(this._reportR3R4ToPolarisTimer),this.stopAutoExecute(),this.registerReportListener(null),this._rtcPeerConn.close(),this._isDestroyed=!0,this.reportParser=null,null===(e=this._logger)||void 0===e||e.info(t.L_RTC_PEER_CONNECTION_DESTROY_O,JSON.stringify({status:i.SUCCESSED}))}clearReTryExchangeTimer(){clearInterval(this._reTryExchangeTimer),this._reTryExchangeTimer=null}isDestroyed(){return this._isDestroyed}setTroubleTrack(e,t=0){let i=this.troubleTracksCollection.get(e);if(0!==t&&i){if(this.troubleTracksCollection.set(e,i+1),i+1>5&&this.onTrackTrouble){let e=[];for(const t of this.troubleTracksCollection.keys()){const i=this.troubleTracksCollection.get(t);i&&i>5&&this.pubLocalTracks[t]&&e.push(this.pubLocalTracks[t])}e.length>0&&this.onTrackTrouble(e)}}else this.troubleTracksCollection.set(e,0)}}Sn.__INNER_EVENT_TRACK_READY__="inner-track-ready",function(e){e[e.DISABLE=0]="DISABLE",e[e.ENABLE=1]="ENABLE"}(zo||(zo={})),function(e){e[e.MeetingOrAnchor=1]="MeetingOrAnchor",e[e.Audience=2]="Audience"}(Zo||(Zo={})),function(e){e[e.NOT_REPORT=-1]="NOT_REPORT",e[e.REPORT_SUCCESS=1e4]="REPORT_SUCCESS",e[e.REPORT_FAIL=0]="REPORT_FAIL",e[e.PB_ERROR=40001]="PB_ERROR"}(Qo||(Qo={})),function(e){e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4"}(Xo||(Xo={}));class En{constructor(e,t,i,r,o=Zo.MeetingOrAnchor){this._context=e,this._runtime=t,this._roomId=i,this._crtRTCRoom=r,this._userRole=o}_send(e){return o(this,void 0,void 0,(function*(){if(this._context.getConnectionStatus()!==r.ConnectionStatus.CONNECTED)return Qo.NOT_REPORT;return(yield this._context.setRTCState(this._roomId,e))===r.ErrorCode.SUCCESS?Qo.REPORT_SUCCESS:Qo.REPORT_FAIL}))}_getClientID(){const e="uuid";let t=this._runtime.localStorage.getItem(e);return t||(t=dt(),this._runtime.localStorage.setItem(e,t)),t}_getRealResourceId(e){let t=e;const i=e.indexOf("_tiny");return i>-1&&(t=e.slice(0,i)),t}_getPolarisTrackId(e){let t="";const i=e.split("_");if(e.includes("_tiny")){const e=i.pop(),r=parseInt(i.pop())===exports.RCMediaType.AUDIO_ONLY?"audio":"video",o=i.pop();t=[i.join("_"),o,e,r].join("_")}else{const e=parseInt(i.pop())===exports.RCMediaType.AUDIO_ONLY?"audio":"video",r=i.pop();t=[i.join("_"),r,e].join("_")}return t}sendR3R4Data(e){return o(this,void 0,void 0,(function*(){const{iceCandidatePair:t,senders:i,receivers:r}=e,o=(null==t?void 0:t.bitrateSend)||-1,n=(null==t?void 0:t.bitrateRecv)||-1,s=(null==t?void 0:t.networkType)||"unknown",a=(null==t?void 0:t.rtt)||-1,d=`${(null==t?void 0:t.IP)||-1}:${null==t?void 0:t.port}`,c=(null==t||t.remoteIP,null==t||t.remotePort,(null==t?void 0:t.availableIncomingBitrate)||-1),_=(null==t?void 0:t.availableOutgoingBitrate)||-1,l=(null==t?void 0:t.totalPacketsLost)||-1,u=this._context.getCurrentId();let h=`R3\t${o}\t-1\t-1\t-1\t${s}\t${a}\t${d}\t${c}\t${_}\t${l}\t${u}\r`,R=`R4\t${n}\t-1\t-1\t-1\t${s}\t${a}\t${d}\t${c}\t${_}\t${l}\t${u}\r`;const p=i.map((e=>{var t;const{trackId:i,audioLevel:r,samplingRate:o,bitrate:n,packetsLostRate:s,frameRate:a,frameWidth:d,frameHeight:c,googRenderDelayMs:_,jitter:l,nackCount:u,pliCount:h,rtt:R,googFirsSent:p,encoderImplementation:v}=e,C=this._getPolarisTrackId(i),g=this._getRealResourceId(i);return{trackId:C,googCodecName:v||String(-1),audioLevel:r||0===r?r:-1,bitrate:n||0===n?n:-1,packetsLostRate:s||0===s?s:-1,frameRate:a||-1,resolution:d&&c?`${d} * ${c}`:"-1",jitter:l||-1,nackCount:u||0===u?u:-1,pliCount:h||0===h?h:-1,rtt:R||-1,googFirsSent:p,samplingRate:o,googRenderDelayMs:_,encoderImplementation:v||String(-1),trackState:(null===(t=this._crtRTCRoom.getLocalTrack(g))||void 0===t?void 0:t.isLocalMuted())?zo.DISABLE:zo.ENABLE}})),v=r.filter((e=>!!e.trackId)).map((e=>{var t;const{trackId:i,audioLevel:r,samplingRate:o,bitrate:n,packetsLostRate:s,frameRate:a,frameWidth:d,frameHeight:c,googRenderDelayMs:_,jitter:l,nackCount:u,pliCount:h,rtt:R,googFirsReceived:p,codecImplementationName:v}=e,C=this._getPolarisTrackId(i),g=this._getRealResourceId(i);return{trackId:C,googCodecName:v||String(-1),audioLevel:r||0===r?r:-1,bitrate:n||0===n?n:-1,packetsLostRate:s||0===s?s:-1,frameRate:a||-1,resolution:d&&c?`${d} * ${c}`:"-1",jitter:l||-1,nackCount:u||0===u?u:-1,pliCount:h||0===h?h:-1,rtt:R||-1,googFirsReceived:p,samplingRate:o,googRenderDelayMs:_,codecImplementationName:v||String(-1),trackState:(null===(t=this._crtRTCRoom.getRemoteTrack(g))||void 0===t?void 0:t.isLocalMuted())?zo.DISABLE:zo.ENABLE}}));let C=Qo.REPORT_FAIL;h+=p.map((e=>`${e.trackId}\t${e.googCodecName}\t${e.audioLevel}\t${e.samplingRate}\t${e.bitrate}\t${e.packetsLostRate}\t${e.frameRate}\t${e.resolution}\t${e.googRenderDelayMs}\t${e.jitter}\t${e.nackCount}\t${e.pliCount}\t${e.rtt}\t${e.googFirsSent}\t${e.encoderImplementation}\t${e.trackState}`)).join("\n"),e.senders.length&&(C=yield this._send(`${h}\r${this._userRole}`));let g=Qo.REPORT_FAIL;return R+=v.map((e=>`${e.trackId}\t${e.googCodecName}\t${e.audioLevel}\t${e.samplingRate}\t${e.bitrate}\t${e.packetsLostRate}\t${e.frameRate}\t${e.resolution}\t${e.googRenderDelayMs}\t${e.jitter}\t${e.nackCount}\t${e.pliCount}\t${e.rtt}\t${e.googFirsReceived}\t${e.codecImplementationName}\t${e.trackState}`)).join("\n"),e.receivers.length&&(g=yield this._send(`${R}\r${this._userRole}`)),C!==Qo.REPORT_SUCCESS&&g!==Qo.REPORT_SUCCESS?Qo.REPORT_FAIL:Qo.REPORT_SUCCESS}))}sendR1(){const e=`R1\t5.6.2\t${this._context.getCoreVersion()}\tweb\t${navigator.platform}\t-1\t${ht.browser}\t${ht.version}\t${this._getClientID()}\t${this._userRole}`;this._send(e)}sendR2(e,t,i){const r=`R2\t${e}\t${t}\t${this._getClientID()}\r${i.join("\t")}\r${this._userRole}`;this._send(r)}}class fn{constructor(e,t,i,r,o=Zo.MeetingOrAnchor){this._context=e,this._runtime=t,this._roomId=i,this._crtRTCRoom=r,this._userRole=o,this._useHttp=!0;const n=this._context.getNaviInfo();fn.logServer=null==n?void 0:n.logServer,fn.dc=null==n?void 0:n.dc,this._polarisSignalReporter=new En(e,t,i,r,o)}_send(e,i){var n,s;return o(this,void 0,void 0,(function*(){if(this._context.getConnectionStatus()!==r.ConnectionStatus.CONNECTED)return Qo.NOT_REPORT;const{logServer:o}=fn;if(!o||!this._useHttp||!wo.jwtToken)return Qo.REPORT_FAIL;const a=yield this._context.setRTCStateByHttp(o,this._runtime,e,i);return a===Qo.REPORT_SUCCESS?Qo.REPORT_SUCCESS:a===exports.RCRTCCode.JWT_TIME_OUT?(this._refetchNaviInfo(),Qo.REPORT_FAIL):a===Qo.REPORT_FAIL||a===Qo.PB_ERROR?(null===(s=null===(n=this._context)||void 0===n?void 0:n.logger)||void 0===s||s.info(t.L_HTTP_POLARIS_REPORT_FAIL_O,`send data fail -> code: ${a}`),this._useHttp=!1,Qo.REPORT_FAIL):Qo.REPORT_FAIL}))}_refetchNaviInfo(){return o(this,void 0,void 0,(function*(){const{jwt:e,naviInfo:t}=yield(i=this._context,o(void 0,void 0,void 0,(function*(){const e=i.getPluginContext();yield e.refetchNaviInfo();const t=i.getNaviInfo();return{naviInfo:t,jwt:po(t)}})));var i;wo.jwtToken=e,fn.logServer=null==t?void 0:t.logServer,fn.dc=null==t?void 0:t.dc}))}_getRealResourceId(e){let t=e;const i=e.indexOf("_tiny");return i>-1&&(t=e.slice(0,i)),t}_getPolarisTrackId(e){let t="";const i=e.split("_");if(e.includes("_tiny")){const e=i.pop(),r=parseInt(i.pop())===exports.RCMediaType.AUDIO_ONLY?"audio":"video",o=i.pop();t=[i.join("_"),o,e,r].join("_")}else{const e=parseInt(i.pop())===exports.RCMediaType.AUDIO_ONLY?"audio":"video",r=i.pop();t=[i.join("_"),r,e].join("_")}return t}_formatReportBaseData(e){return{type:e,appKey:this._context.getAppkey(),sessionId:this._crtRTCRoom.getSessionId(),roomId:this._roomId,roomCreateTime:this._context.roomCreateTime||0,userId:this._context.getCurrentId(),userRole:this._userRole,joinTime:this._context.userJoinTime||0,signalDataCenter:fn.dc||""}}_formatReportData(e,t){let i=this._formatReportBaseData(e),r={};switch(e){case Xo.R1:r=this._formatR1Data();break;case Xo.R2:r=this._formatR2Data(t);break;case Xo.R3:case Xo.R4:r=this._formatR3R4Data(e,t)}return Object.assign(Object.assign({},i),{[{R1:"r1Info",R2:"r2Info",R3:"r3Info",R4:"r4Info"}[e]]:r})}_formatR1Data(){return{joinTime:this._context.userJoinTime||0,rtcVersion:"5.6.2",imVersion:this._context.getCoreVersion(),platform:"web",device:navigator.platform,os:String(-1),browserName:ht.browser,browserVersion:String(ht.version),receiveTime:Date.now()}}_formatR2Data(e){const{action:t,status:i,trackIds:r}=e;return{joinTime:this._context.userJoinTime||0,sendTime:Date.now(),rtcActionType:t,rtcActionStatus:i,trackId:r,receiveTime:Date.now()}}_formatR3R4Data(e,t){const{iceCandidatePair:i,senders:r,receivers:o}=t;let n=0,s=[];return e===Xo.R3?(n=(null==i?void 0:i.bitrateSend)||-1,s=r.map((e=>{var t;const{trackId:i,audioLevel:r,samplingRate:o,bitrate:n,packetsLostRate:s,frameRate:a,frameWidth:d,frameHeight:c,googRenderDelayMs:_,jitter:l,nackCount:u,pliCount:h,rtt:R,googFirsSent:p,encoderImplementation:v}=e,C=this._getPolarisTrackId(i),g=this._getRealResourceId(i);return{trackId:C,codeName:v||String(-1),volume:String(r||0===r?r:-1),samplingRate:o||-1,bitRate:n||0===n?n:-1,packetLossRate:s||0===s?s:-1,frameRate:a||-1,resolution:d&&c?`${d} * ${c}`:"-1",blockTime:_,jitterData:l||-1,nAckCount:String(u||0===u?u:-1),pliCount:String(h||0===h?h:-1),googleRTTTotalTime:R||-1,isReceiveFirstFrameRate:p,codeType:v||String(-1),isEnabled:(null===(t=this._crtRTCRoom.getLocalTrack(g))||void 0===t?void 0:t.isLocalMuted())?zo.DISABLE:zo.ENABLE}}))):e===Xo.R4&&(n=(null==i?void 0:i.bitrateRecv)||-1,s=o.filter((e=>!!e.trackId)).map((e=>{var t;const{trackId:i,audioLevel:r,samplingRate:o,bitrate:n,packetsLostRate:s,frameRate:a,frameWidth:d,frameHeight:c,googRenderDelayMs:_,jitter:l,nackCount:u,pliCount:h,rtt:R,googFirsReceived:p,codecImplementationName:v}=e,C=this._getPolarisTrackId(i),g=this._getRealResourceId(i);return{trackId:C,codeName:v||String(-1),volume:String(r||0===r?r:-1),samplingRate:o||-1,bitRate:n||0===n?n:-1,packetLossRate:s||0===s?s:-1,frameRate:a||-1,resolution:d&&c?`${d} * ${c}`:"-1",blockTime:_,jitterData:l||-1,nAckCount:String(u||0===u?u:-1),pliCount:String(h||0===h?h:-1),googleRTTTotalTime:R||-1,isReceiveFirstFrameRate:p,codeType:v||String(-1),isEnabled:(null===(t=this._crtRTCRoom.getRemoteTrack(g))||void 0===t?void 0:t.isLocalMuted())?zo.DISABLE:zo.ENABLE}}))),{info:{joinTime:this._context.userJoinTime||0,receiveTime:Date.now(),totalBitRate:n,appCPUUsage:-1,systemCPUUsage:-1,systemCPUFrequency:-1,networkStatus:(null==i?void 0:i.networkType)||"unknown",googleRTTNetwork:(null==i?void 0:i.rtt)||-1,ipAddress:`${(null==i?void 0:i.IP)||-1}:${null==i?void 0:i.port}`,useReceiveBroadBand:String((null==i?void 0:i.availableIncomingBitrate)||-1),useSendBroadBand:String((null==i?void 0:i.availableOutgoingBitrate)||-1),packetLossCount:String((null==i?void 0:i.totalPacketsLost)||-1),streams:s}}}sendR3R4Data(e){return o(this,void 0,void 0,(function*(){let t=Qo.REPORT_FAIL;if(e.senders.length){const i=this._formatReportData(Xo.R3,e);t=yield this._send(i,Xo.R3),t===Qo.REPORT_FAIL&&(t=yield this._polarisSignalReporter.sendR3R4Data(e))}let i=Qo.REPORT_FAIL;if(e.receivers.length){const t=this._formatReportData(Xo.R4,e);i=yield this._send(t,Xo.R4),i===Qo.REPORT_FAIL&&(i=yield this._polarisSignalReporter.sendR3R4Data(e))}return t!==Qo.REPORT_SUCCESS&&i!==Qo.REPORT_SUCCESS?Qo.REPORT_FAIL:Qo.REPORT_SUCCESS}))}sendR1(){var e;return o(this,void 0,void 0,(function*(){const t=this._formatReportData(Xo.R1);(yield this._send(t,Xo.R1))===Qo.REPORT_FAIL&&(null===(e=this._polarisSignalReporter)||void 0===e||e.sendR1())}))}sendR2(e,t,i){var r;return o(this,void 0,void 0,(function*(){const o=this._formatReportData(Xo.R2,{action:e,status:t,trackIds:i});(yield this._send(o,Xo.R2))===Qo.REPORT_FAIL&&(null===(r=this._polarisSignalReporter)||void 0===r||r.sendR2(e,t,i))}))}}class On{constructor(e){this._room=e,this._audioLevelChangeHandler=null,this._timer=null}_audioLevelReport(e){return o(this,void 0,void 0,(function*(){if(!this._audioLevelChangeHandler)return;const t=[],i=this._room.__getPC();for(let r=0;r<i.length;r++){const o=i[r];if("new"===o.getRTCPeerConn().iceConnectionState)return;const n=yield o.getAudioLevelReportData(e);null==n||n.forEach((e=>{const{userId:i}=ot(e.trackId),r=this._room.getCrtUserId()===i?this._room.getLocalTrack(e.trackId):this._room.getRemoteTrack(e.trackId);r&&t.push({track:r,audioLevel:e.audioLevel||0})}))}this._audioLevelChangeHandler(t)}))}startAutoExecute(e=1e3){this.stopAutoExecute(),this._timer=setTimeout((()=>{this._audioLevelReport(e),this.startAutoExecute(e)}),e)}stopAutoExecute(){clearTimeout(this._timer)}onAudioLevelChange(e,t){if(t<300||t>1e3){const e=Ae.getLogger();null==e||e.error('the valid range of onAudioLevelChange params "gap" is: > 300 && < 1000')}else e?(this._audioLevelChangeHandler=e,this.startAutoExecute(t)):this._audioLevelChangeHandler=null}clearAudioLevelReportTimer(){this.stopAutoExecute()}}exports.RCRTCLiveRole=void 0,(en=exports.RCRTCLiveRole||(exports.RCRTCLiveRole={}))[en.ANCHOR=1]="ANCHOR",en[en.AUDIENCE=2]="AUDIENCE";class Ln{constructor(e=!1,t,i,r,o){this._useMutilPeerC=e,this._roomId=t,this._reTryExchange=i,this._currentUserId=r,this._polarisReport=o,this._mutilPeerC={}}get useMutilPeerC(){return this._useMutilPeerC}_isPub(e){if(!e.length)return!1;const{track:t}=e[0]instanceof we||e[0]instanceof Ye?{track:e[0]}:e[0];return t.isLocalTrack()}_groupTracksByTag(e){const t={};return e.forEach((e=>{const{track:i}=e instanceof we?{track:e}:e,r=i.getTag();t[r]?t[r].push(e):t[r]=[e]})),t}_genPCName(e,t){let i=null;return i=e?this._useMutilPeerC?`${this._roomId}_${t}`:`${this._roomId}_pub`:`${this._roomId}_sub`,i}_createOnePeerCItem(e,t){if(this._mutilPeerC[e]&&!this._mutilPeerC[e].pc.isDestroyed())this._mutilPeerC[e].tracks=t;else{const i=this._isPub(t),r=new Sn(e,(()=>this._reTryExchange(e,i)),this._currentUserId,this._polarisReport,this.onTrackTrouble);this._mutilPeerC[e]={pc:r,tracks:t,isPub:i}}return Object.assign(Object.assign({},this._mutilPeerC[e]),{pcName:e})}createPeerCList(e){const t=[],i=this._isPub(e);if(!this._useMutilPeerC){const i=this._genPCName(!0);return t.push(this._createOnePeerCItem(i,e)),t}if(this._useMutilPeerC&&!i){const i=this._genPCName(!1);return t.push(this._createOnePeerCItem(i,e)),t}const r=this._groupTracksByTag(e);for(const e in r){const o=this._genPCName(i,e),n=r[e];t.push(this._createOnePeerCItem(o,n))}return t}_removeAllLocalTrack(){this.getPCList().forEach((e=>e.removeAllLocalTrack()))}destroyPeerC(e){this._mutilPeerC[e].pc.destroy()}_destroyAllPeerC(){this.getPCList().forEach((e=>e.destroy()))}getPCItemByPCName(e){return this._mutilPeerC[e]}getPCByTrackId(e,t=!0){const{tag:i}=ot(e),r=this._genPCName(t,i);return this._mutilPeerC[r].pc}getPCList(){const e=[];for(const t in this._mutilPeerC)e.push(this._mutilPeerC[t].pc);return e}getMutilPeerCData(){return this._mutilPeerC}setPeerCData(e,t,i){}clear(){this._removeAllLocalTrack(),this._destroyAllPeerC()}}!function(e){e[e.Unknow=0]="Unknow",e[e.Publish=1]="Publish",e[e.UnPublish=2]="UnPublish",e[e.JoinRoom=3]="JoinRoom",e[e.LeaveRoom=4]="LeaveRoom",e[e.UpdateSubscribeTask=5]="UpdateSubscribeTask",e[e.SubscribedTask=6]="SubscribedTask",e[e.UnSubscribedTask=7]="UnSubscribedTask",e.AsyncCommand="AsyncCommand"}(tn||(tn={})),function(e){e.NORMAL="normal",e.MIDDLE="middle",e.TAIL="tail"}(rn||(rn={})),function(e){e[e.LOW=0]="LOW",e[e.NORMAL=1]="NORMAL",e[e.HIGH=2]="HIGH"}(on||(on={})),function(e){e[e.Destroy=40400]="Destroy"}(nn||(nn={}));class An{get priority(){return on.LOW}get kind(){return tn.Unknow}}class Nn extends An{constructor(e=rn.NORMAL){super(),this.state=e}get kind(){return tn.AsyncCommand}setState(e){this.state=e}pickoutSubscribed(e,t){const{unsubscribe:i,subscribe:r}=this.calcSubscribeList(e,t);return Nn.AsyncSubscribeTasks=[],Nn.AsyncUnsubscribeTasks=[],Nn.AsyncUpdateSubscribeTasks=[],{subscribe:r,unsubscribe:i}}calcSubscribeList(e,t){const i=[],r=new Set,o=[],n=new Set,s=this.formateTrack(e),a=this.formateTrack(t);return a.forEach((e=>{const t=`${e.track.getTrackId()}_SUB_${e.subTiny?"0":"1"}`;this.trackInSubscribeList(e,s)||r.has(t)||(i.push(e),r.add(t))})),s.forEach((e=>{const t=`${e.track.getTrackId()}_SUB_${e.subTiny?"0":"1"}`;this.trackInSubscribeList(e,a)||n.has(t)||(o.push(e),n.add(t))})),{unsubscribe:i,subscribe:o}}formateTrack(e){return e.map((e=>e instanceof Ye?{track:e,subTiny:!1}:Object.assign({subTiny:!1},e)))}trackInSubscribeList(e,t){if(0===t.length)return!1;return t.findIndex((t=>t.track.getTrackId()===e.track.getTrackId()&&t.subTiny===e.subTiny))>-1}}Nn.AsyncSubscribeTasks=[],Nn.AsyncUnsubscribeTasks=[],Nn.AsyncUpdateSubscribeTasks=[];class yn{constructor(e,t,i,r,o,n,s,a,d){this.context=e,this.service=t,this.peerMgr=i,this.roomId=r,this.crtUserId=o,this.roomMode=n,this.polarisReport=s,this.isUpgrade=a,this.isMainRoom=d,this._roomResources={},this._remoteTracks={},this._subscribedList=[],this._collectSubscribeList=[],this._CDNUris=null,this._CDNEnable=!1,this._destroyed=!1,this._roomStatusVersion=0}get useMutilPeerC(){return this.peerMgr.useMutilPeerC}getResourcesByUserId(e){return this._roomResources[e]}getRemoteTrack(e){return this._remoteTracks[e]}getRemoteTracksByUserId(e){const t=[];for(const i in this._remoteTracks){const r=this._remoteTracks[i];r.getUserId()===e&&t.push(r)}return t}getRemoteTracks(){return this._remoteTracks}getSessionId(){return this._sessionId}getAllUserIds(){return Object.keys(this._roomResources)}getRemoteUserIds(){return this.getAllUserIds().filter((e=>e!==this.crtUserId))}getSubscribedList(){return this._subscribedList}getCollectSubscribeList(){return this._collectSubscribeList}getPublishedResourceByTrackId(e){const{userId:t}=ot(e);return this._roomResources[t].find((t=>rt(t)===e))}getToken(){return this._token}getLocalTrack(e){return this.peerMgr.getPCByTrackId(e).getLocalTrack(e)}getLocalTracks(){const e=[];return this.peerMgr.getPCList().forEach((t=>{e.push(...t.getLocalTracks())})),e}getTrackState(e){var t;return(null===(t=this.getLocalTrack(e))||void 0===t?void 0:t.isLocalMuted())?0:1}getCDNEnable(){return this._CDNEnable}getCDNUris(){return this._CDNUris}getRoomStatusVersion(){return this._roomStatusVersion}}class Dn extends yn{_initRemoteTracks(){for(const e in this._roomResources){const t=this._roomResources[e];e!==this.crtUserId&&0!==t.length&&t.forEach((e=>{const t=rt(e),{tag:i,userId:r,mediaType:o}=ot(t),n=o===exports.RCMediaType.AUDIO_ONLY?new qe(i,r):new We(i,r);n.__innerSetRemoteMuted(0===e.state),this._remoteTracks[t]=n}))}}initWithRoomData(e,i){this._sessionId=e.sessionId,this._token=e.token,this._roomStatusVersion=It(e.version),this.isUpgrade?this._roomResources={}:this._roomResources=gt(e,this.roomId,i),this._initRemoteTracks(),this.setResourcesByUserId(this.crtUserId,this.getResourcesByUserId(this.crtUserId)||[]);const r=Ae.getLogger();null==r||r.info(t.L_PARSE_ROOMDATA_URIS_R,`room data -> ${JSON.stringify(this._roomResources)}`,i)}assignRoomData(e){Object.assign(this._roomResources,e)}setResourcesByUserId(e,t){this._roomResources[e]=t}removeRemoteTrack(e){delete this._remoteTracks[e]}removeResourcesByUserId(e){delete this._roomResources[e]}addRemoteTrack(e){this._remoteTracks[e.getTrackId()]=e}removeRemoteTracks(){const e=Object.values(this._remoteTracks);e.length&&(e.forEach((e=>{e.isAudioTrack()&&e.__releaseMediaElement()})),this._remoteTracks={})}setCDNEnabel(e){this._CDNEnable=e}setCDNUris(e){this._CDNUris=e}resetSubscribedList(e){this._subscribedList.splice(0,this._subscribedList.length,...e),this.resetCollectSubscribeList(e)}resetCollectSubscribeList(e){this._collectSubscribeList.splice(0,this._collectSubscribeList.length,...e)}setRoomStatusVersion(e){this._roomStatusVersion=It(e)}}class kn{constructor(e,t){this._store=e,this.abortCode=t,this._queue=[],this._busy=!1,this._isDestroyed=!1}_next(){this._busy=!1,this._execute()}_execute(){return o(this,void 0,void 0,(function*(){if(this._isDestroyed||this._busy||0===this._queue.length)return;this._busy=!0;const{command:e,resolve:t,reject:i}=this._queue.shift();let r;try{r=yield e.execute(this._store,this)}catch(e){return i(e),void this._next()}t(r),this._next()}))}push(e){return new Promise(((t,i)=>{if(this._isDestroyed)return void i({code:exports.RCRTCCode.NOT_IN_ROOM});const{kind:r}=e;this._queue.length>0&&r===tn.AsyncCommand&&({command:e,resolve:t,reject:i}=this.commandOffset(e,t,i));const{priority:o}=e;if(o===on.LOW)this._queue.push({command:e,resolve:t,reject:i});else{const r=this._queue.findIndex((e=>e.command.priority<o)),n=-1===r?this._queue.length-1:r;this._queue.splice(n,0,{command:e,resolve:t,reject:i})}Promise.resolve().then((()=>{this._execute()}))}))}commandOffset(e,t,i){const r=this._queue.length-1;if(!(this._queue[r].command.kind===tn.AsyncCommand))return{command:e,resolve:t,reject:i};const[n]=this._queue.splice(r,1);n.command instanceof Nn&&(n.command.setState(rn.MIDDLE),e instanceof Nn&&e.setState(rn.TAIL));const s=e.execute;return e.execute=function(t,i){return o(this,void 0,void 0,(function*(){return n.command.execute.call(n.command,t,i),s.call(e,t,i)}))},{command:e,resolve:e=>{n.resolve.call(n,e),t(e)},reject:e=>{n.reject.call(n,e),i(e)}}}isDestroyed(){return this._isDestroyed}destroy(){this._isDestroyed||(this._isDestroyed=!0,this._queue.forEach((e=>{e.resolve({code:this.abortCode})})),this._queue.length=0)}}class bn extends kn{constructor(e,t,i,r,o,n,s,a,d){super(new Dn(e,t,i,r,o,n,s,a,d),exports.RCRTCCode.ROOM_HAS_BEEN_DESTROYED)}get store(){return this._store}destroy(){super.destroy(),this._store.removeRemoteTracks()}}class xn extends An{execute(e){var n,s,a,d,c,_,l,u;return o(this,void 0,void 0,(function*(){const o=e.getResourcesByUserId(e.crtUserId),h=o.slice();o.length=0;const R=null===(s=null===(n=e.context)||void 0===n?void 0:n.logger)||void 0===s?void 0:s.createTraceId();null===(d=null===(a=e.context)||void 0===a?void 0:a.logger)||void 0===d||d.info(t.L_UNPUBLISH_PREV_COMMAND_T,JSON.stringify({resource:h}),R);const p=yield e.context.setRTCTotalRes(e.roomId,ze(St.UNPUBLISH,h),Ze([]),St.TOTAL_CONTENT_RESOURCE,Ze([]));p!==r.ErrorCode.SUCCESS?null===(_=null===(c=e.context)||void 0===c?void 0:c.logger)||void 0===_||_.error(t.L_UNPUBLISH_PREV_COMMAND_R,JSON.stringify({status:i.FAILED,code:p}),R):null===(u=null===(l=e.context)||void 0===l?void 0:l.logger)||void 0===u||u.info(t.L_UNPUBLISH_PREV_COMMAND_R,JSON.stringify({status:i.SUCCESSED}),R)}))}}!function(e){e[e.RTC=0]="RTC",e[e.LIVE=2]="LIVE",e[e.CROSS_MUTI=7]="CROSS_MUTI",e[e.CROSS_LIVE=8]="CROSS_LIVE",e[e.SIP=4]="SIP",e[e.CALL=5]="CALL",e[e.MEETING=6]="MEETING"}(sn||(sn={}));class Un extends An{constructor(e,t,i,r,o,n,s,a){super(),this.roomId=e,this.roomType=t,this.context=i,this.joinType=r,this.livingType=o,this.innerUserDatas=n,this.outerUserDatas=s,this.traceId=a}get kind(){return tn.JoinRoom}execute(e,n){var s,a,d,c,_,l,u,h,R,p,v,C,g,m,T,I,S,E,f;return o(this,void 0,void 0,(function*(){No(),Ao(this.roomType);const{context:o,service:O}=e;let L=t.L_RTC_CLIENT_JOIN_RTC_ROOM_R;if(this.roomType===sn.LIVE?L=t.L_RTC_CLIENT_JOIN_LIVING_ROOM_R:this.roomType===sn.CROSS_MUTI&&(L=t.L_RTC_CLIENT_JOIN_CROSS_RTC_ROOM_R),o.getConnectionStatus()!==r.ConnectionStatus.CONNECTED)return null===(a=null===(s=e.context)||void 0===s?void 0:s.logger)||void 0===a||a.error(L,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.SIGNAL_DISCONNECTED,msg:"im not connected"}),this.traceId),{code:exports.RCRTCCode.SIGNAL_DISCONNECTED};if(O.detectorMediaSever(),Ct(o.getNaviInfo()))return null===(c=null===(d=e.context)||void 0===d?void 0:d.logger)||void 0===c||c.error(L,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PACKAGE_ENVIRONMENT_ERROR,msg:"package environment error"}),this.traceId),{code:exports.RCRTCCode.PACKAGE_ENVIRONMENT_ERROR};if(!r.validate("roomId",this.roomId,r.notEmptyString,!0))return null===(l=null===(_=e.context)||void 0===_?void 0:_.logger)||void 0===l||l.error(L,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> roomId"}),this.traceId),{code:exports.RCRTCCode.PARAMS_ERROR};if(!r.validate("roomType",this.roomType,(e=>void 0!==sn[e])))return null===(h=null===(u=e.context)||void 0===u?void 0:u.logger)||void 0===h||h.error(L,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> roomType"}),this.traceId),{code:exports.RCRTCCode.PARAMS_ERROR};if(!r.validate("outerUserDatas",this.outerUserDatas,r.isObject,!1))return null===(p=null===(R=e.context)||void 0===R?void 0:R.logger)||void 0===p||p.error(L,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> outerUserDatas"}),this.traceId),{code:exports.RCRTCCode.PARAMS_ERROR};if(this.outerUserDatas){if(!Object.keys(this.outerUserDatas).every((e=>r.validate(`outerUserDatas.${e}`,this.outerUserDatas[e],r.isString,!0))))return null===(C=null===(v=e.context)||void 0===v?void 0:v.logger)||void 0===C||C.error(L,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> outerUserDatas"}),this.traceId),{code:exports.RCRTCCode.PARAMS_ERROR}}if(!O.getNaviMS().length)return null===(m=null===(g=e.context)||void 0===g?void 0:g.logger)||void 0===m||m.error(L,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.NOT_OPEN_VIDEO_AUDIO_SERVER,msg:"No audio / video server address available"}),this.traceId),{code:exports.RCRTCCode.NOT_OPEN_VIDEO_AUDIO_SERVER};const{code:A,data:N}=yield o.joinRTCRoom(this.roomId,this.roomType,this.livingType,this.joinType,this.innerUserDatas,this.outerUserDatas);if(A!==r.ErrorCode.SUCCESS||!N){Lo(this.roomId,A,e.getSessionId(),e.crtUserId);const t=40032===A?exports.RCRTCCode.SIGNAL_JOIN_RTC_ROOM_REFUSED:A;return null===(I=null===(T=e.context)||void 0===T?void 0:T.logger)||void 0===I||I.error(L,JSON.stringify({status:i.FAILED,code:t,msg:"joinRoom failed"}),this.traceId),{code:t}}Lo(this.roomId,A,e.getSessionId(),e.crtUserId),No(this.roomId),e.initWithRoomData(N,this.traceId);e.getResourcesByUserId(e.crtUserId).length>0&&n.push(new xn);const y=null===(S=N.roomInfo.filter((e=>"cdn_uris"===e.key))[0])||void 0===S?void 0:S.value;return y&&e.setCDNUris(JSON.parse(y)[0]),null===(f=null===(E=e.context)||void 0===E?void 0:E.logger)||void 0===f||f.info(L,JSON.stringify({status:i.SUCCESSED,userId:e.crtUserId,roomId:this.roomId}),this.traceId),{code:exports.RCRTCCode.SUCCESS,data:N}}))}}!function(e){e[e.ROOM=1]="ROOM",e[e.PERSON=2]="PERSON"}(an||(an={})),function(e){e.PUBLISH="publish",e.SUBSCRIBE="subscribe"}(dn||(dn={})),function(e){e.BEGIN="begin",e.END="end"}(cn||(cn={})),function(e){e[e.SPREAD=0]="SPREAD",e[e.NO_SPREAD=-1]="NO_SPREAD"}(_n||(_n={}));class Pn extends An{constructor(e,t,i){super(),this.headers=e,this.reqBody=t,this.traceId=i}execute(e,t){var i,r;return o(this,void 0,void 0,(function*(){const t=yield e.service.exchange(this.headers,this.reqBody,this.traceId);if(e.roomMode!==sn.LIVE)return t;const o=null===(r=null===(i=t.data)||void 0===i?void 0:i.urls)||void 0===r?void 0:r.pull_url;if(t.code!==exports.RCRTCCode.SUCCESS||!o)return t;const n=JSON.parse(o);if(e.setCDNUris(n),(null==n?void 0:n.broadcast)===_n.SPREAD){e.setCDNEnabel(!0);const t=Object.assign(Object.assign({},n),{enableInnerCDN:!0});Jn(e.context,e.roomId,t)}return t}))}}class Mn extends An{constructor(e,t,i,r){super(),this.tracks=e,this.subhook=t,this.forceReq=i,this.traceId=r}execute(e,n){var s,a,d,c,_,l,u,h,R,p,v,C;return o(this,void 0,void 0,(function*(){const{tracks:o,forceReq:g}=this,{roomId:m}=e;if(null===(a=null===(s=e.context)||void 0===s?void 0:s.logger)||void 0===a||a.info(t.L_UPDATE_SUBSCRIBELIST_COMMAND_T,`roomId: ${m}, forceReq: ${g}, trackIds: ${o.map(Tt)}`,this.traceId),!r.validate("tracks",o,(()=>r.isArray(o)&&o.every((e=>e instanceof Ye||e.track instanceof Ye))),!0))return null===(c=null===(d=e.context)||void 0===d?void 0:d.logger)||void 0===c||c.warn(t.L_UPDATE_SUBSCRIBELIST_COMMAND_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"tracks is invalid"}),this.traceId),{code:exports.RCRTCCode.PARAMS_ERROR};let T=o.map((e=>e instanceof Ye?{track:e}:Object.assign({},e)));const I={};T=T.filter((i=>{var r,o;const n=i.track.getTrackId();return e.getRemoteTrack(n)?!I[n]&&(I[n]=!0,!0):(null===(o=null===(r=e.context)||void 0===r?void 0:r.logger)||void 0===o||o.warn(t.L_UPDATE_SUBSCRIBELIST_COMMAND_P,`track cannot found in room -> trackId: ${n}`,this.traceId),!1)})).map((e=>Object.assign({},e)));const S=e.getSubscribedList().map((e=>Object.assign({},e)));if(!g){let r=!1;if(T.forEach((e=>{const t=S.findIndex((t=>t.track===e.track));if(-1===t)return void(r=!0);S.splice(t,1)[0].subTiny!==e.subTiny&&(r=!0)})),S.length&&(r=!0),!r)return null===(l=null===(_=e.context)||void 0===_?void 0:_.logger)||void 0===l||l.warn(t.L_UPDATE_SUBSCRIBELIST_COMMAND_R,JSON.stringify({status:i.SUCCESSED,msg:"subscribe list unchanged"}),this.traceId),{code:exports.RCRTCCode.SUCCESS}}const{pc:E,pushOtherRooms:f,headers:O}=this.subhook(o);E.updateSubRemoteTracks(T.map((e=>e.track))),Io(e.roomId,"",e.getSessionId()),So(e.roomId,"",e.getSessionId());const L=yield Vn(T,!1,E,e);f&&(L.pushOtherRooms=f);const A=yield new Pn(O,L,this.traceId).execute(e,n);if(T.map((e=>e.track.getTrackId())),A.code!==exports.RCRTCCode.SUCCESS)return fo(T,A.code),null===(h=null===(u=e.context)||void 0===u?void 0:u.logger)||void 0===h||h.error(t.L_UPDATE_SUBSCRIBELIST_COMMAND_R,JSON.stringify({status:i.FAILED,code:A.code}),this.traceId),{code:A.code};const{sdp:N,resultCode:y,message:D,subscribedList:k}=A.data;if(y!==exports.RCRTCCode.SUCCESS)return fo(T,y),null===(p=null===(R=e.context)||void 0===R?void 0:R.logger)||void 0===p||p.error(t.L_UPDATE_SUBSCRIBELIST_COMMAND_R,JSON.stringify({status:i.FAILED,code:y}),this.traceId),{code:y};const b=yield E.setRemoteAnswer(N.sdp);if(b!==exports.RCRTCCode.SUCCESS)return fo(T,b),{code:b};ln.formatSourceIdMapFromSdp(N.sdp,"subscribe"),fo(T,b),Oo({subscribe:{time:Date.now()}});const x=null==k?void 0:k.map((e=>`${e.msid}_${e.mediaType}`)),U=T.filter((e=>null==x?void 0:x.includes(e.track.getTrackId()))),P=T.filter((e=>!(null==x?void 0:x.includes(e.track.getTrackId()))));null===(C=null===(v=e.context)||void 0===v?void 0:v.logger)||void 0===C||C.info(t.L_ABSTRACT_ROOM_SUBSCRIBE_R,JSON.stringify({status:i.SUCCESSED,subSuccessTrackIds:x,failedList:P}),this.traceId);const M=e.getRemoteTracks();for(const e in M){const t=U.some((t=>t.track.getTrackId()===e));M[e].__innerSetSubscribed(t);const i=U.some((t=>t.track.getTrackId()===e&&t.subTiny));M[e].isVideoTrack()&&M[e].__innerSetIsTinyTrack(i)}return e.resetSubscribedList(U),P.length?{code:exports.RCRTCCode.SUCCESS,failedList:P}:{code:exports.RCRTCCode.SUCCESS}}))}}class wn extends An{constructor(e,t,i){super(),this.tracks=e,this.subhook=t,this.traceId=i}execute(e,n){var s,a,d,c;return o(this,void 0,void 0,(function*(){const{tracks:o}=this;if(null===(a=null===(s=e.context)||void 0===s?void 0:s.logger)||void 0===a||a.info(t.L_ABSTRACT_ROOM_UNSUBSCRIBE_T,JSON.stringify({unSubscribeTrackIds:o.map(Tt)}),this.traceId),!r.validate("tracks",o,(()=>r.isArray(o)&&o.length>0&&o.every((e=>e instanceof Ye))),!0))return null===(c=null===(d=e.context)||void 0===d?void 0:d.logger)||void 0===c||c.warn(t.L_ABSTRACT_ROOM_UNSUBSCRIBE_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> tracks"}),this.traceId),{code:exports.RCRTCCode.PARAMS_ERROR};const _=e.getSubscribedList().map((e=>Object.assign({},e))).filter((e=>!o.includes(e.track)));return e.polarisReport.sendR2(dn.SUBSCRIBE,cn.END,o.map((e=>e.getTrackId()))),Po(!0),new Mn(_,this.subhook,!1,this.traceId).execute(e,n)}))}}class Bn extends An{constructor(e,t,i){super(),this.subhook=e,this.tracks=t,this.onTrackUnpublish=i}execute(e,i){var r,n;return o(this,void 0,void 0,(function*(){const{tracks:o}=this,s=null===(r=e.context.logger)||void 0===r?void 0:r.createTraceId();null===(n=e.context.logger)||void 0===n||n.info(t.L_USER_LEFT_UNSUBSCRIBE_O,void 0,s),yield new wn(o,this.subhook,s).execute(e,i),o.forEach((t=>{t.__innerDestroy(),e.removeRemoteTrack(t.getTrackId())})),this.onTrackUnpublish(o)}))}}function Vn(e,t,i,r){return o(this,void 0,void 0,(function*(){return{sdp:yield i.createOffer(t),extend:JSON.stringify({resolutionInfo:i.getOutboundVideoInfo()}),subscribeList:e.filter((e=>{const t=e.track.getTrackId(),{userId:i}=ot(t),o=r.getResourcesByUserId(i);if(!o)return!1;const n=o.filter((e=>t===`${e.msid}_${e.mediaType}`)).length;return n})).map((e=>({simulcast:e.subTiny?Bo.TINY:Bo.NORMAL,resolution:"",uri:r.getPublishedResourceByTrackId(e.track.getTrackId()).uri}))),switchstream:!1}}))}function Fn(e,i,n){var s,a;return o(this,void 0,void 0,(function*(){const o=yield e.setRTCCDNUris(i,St.TOTAL_CONTENT_RESOURCE,JSON.stringify([n]));return o!==r.ErrorCode.SUCCESS?(null===(s=null==e?void 0:e.logger)||void 0===s||s.error(t.L_OLD_DAILY_RECORD_O,`spreadCDNInfo failed -> code: ${o}`),{code:exports.RCRTCCode.SIGNAL_ERROR}):(null===(a=null==e?void 0:e.logger)||void 0===a||a.info(t.L_OLD_DAILY_RECORD_O,"spreadCDNInfo succeed"),{code:exports.RCRTCCode.SUCCESS})}))}function Jn(e,i,n){var s,a;return o(this,void 0,void 0,(function*(){const o=yield e.setRTCData(i,"cdn_uris",JSON.stringify([n]),!0,an.ROOM);return o!==r.ErrorCode.SUCCESS?(null===(s=null==e?void 0:e.logger)||void 0===s||s.error(t.L_OLD_DAILY_RECORD_O,`setRoomCDNInfo failed -> code: ${o}`),{code:exports.RCRTCCode.SIGNAL_ERROR}):(null===(a=null==e?void 0:e.logger)||void 0===a||a.info(t.L_OLD_DAILY_RECORD_O,"setRoomCDNInfo succeed"),{code:exports.RCRTCCode.SUCCESS})}))}function Gn(e){var r,n,s,a,d,c;return o(this,void 0,void 0,(function*(){const{context:o}=e,{roomId:_}=e,l=Object.assign({},e.getCDNUris(),{enableInnerCDN:e.getCDNEnable()});null===(n=null===(r=e.context)||void 0===r?void 0:r.logger)||void 0===n||n.info(t.L_LIVING_ROOM_SPREAD_CDN_INFO_T,JSON.stringify({roomId:_,CDNUris:l}));const u=(yield Promise.all([Fn(o,_,l),Jn(o,_,l)])).every((e=>e.code===exports.RCRTCCode.SUCCESS));return u?null===(a=null===(s=e.context)||void 0===s?void 0:s.logger)||void 0===a||a.info(t.L_LIVING_ROOM_SPREAD_CDN_INFO_R,JSON.stringify({status:i.SUCCESSED,CDNUris:l})):null===(c=null===(d=e.context)||void 0===d?void 0:d.logger)||void 0===c||c.error(t.L_LIVING_ROOM_SPREAD_CDN_INFO_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.SIGNAL_ERROR,msg:"signal error"})),u?{code:exports.RCRTCCode.SUCCESS}:{code:exports.RCRTCCode.SIGNAL_ERROR}}))}function Kn(e,n,s,a,d,c,_){return o(this,void 0,void 0,(function*(){const{roomId:o,crtUserId:l,roomMode:u}=n,h=[],R={},p={},v={},C=gt(e,o,_),g=Object.keys(C),m=n.getAllUserIds();for(let e=g.length-1;e>=0;e-=1){const t=g[e],i=m.indexOf(t);if(-1===i){h.push(t),R[t]=st(C[t]);continue}const r=n.getResourcesByUserId(t),o=C[t],{publishedList:s,modifiedList:a,unpublishedList:d}=at(r,o,!0);R[t]=st(s),p[t]=st(d),v[t]=st(a),m.splice(i,1)}m.length&&m.forEach((e=>{n.removeResourcesByUserId(e)})),n.assignRoomData(C),m.length&&(yield Hn(m,n,d,a,_),s.onUserLeave(m)),h.length&&s.onUserJoin(h);for(const e in p){if(e===l)continue;const t=p[e];if(t.length){const e=t.map((e=>n.getRemoteTrack(rt(e))));yield new Bn(d,e,s.onTrackUnpublish).execute(n,a)}}Object.keys(R).forEach((e=>{const t=R[e];if(0===t.length)return;const i=t.map((e=>{const t=rt(e),{userId:i,tag:r,mediaType:o}=ot(t),s=o===exports.RCMediaType.AUDIO_ONLY?new qe(r,i):new We(r,i);return n.addRemoteTrack(s),s.__innerSetRemoteMuted(0===e.state),s}));s.onTrackPublish(i)})),Object.keys(v).forEach((e=>{v[e].forEach((e=>{const t=rt(e),i=n.getRemoteTrack(t);i.__innerSetRemoteMuted(0===e.state),i.isAudioTrack()?s.onAudioMuteChange(i):s.onVideoMuteChange(i)}))})),u===r.RTCMode.LIVE&&function(e,r,o){var n,s,a;if(!o)return void(null===(s=null===(n=r.context)||void 0===n?void 0:n.logger)||void 0===s||s.info(t.L_LIVING_ROOM_RECONNECTED_R,JSON.stringify({status:i.FAILED,code:"",msg:"cdn_uris not found"})));const d=JSON.parse(o),c=(null===(a=r.getCDNUris())||void 0===a?void 0:a.enableInnerCDN)!==d.enableInnerCDN;r.setCDNUris(d),c&&e.onCDNEnableChange(d.enableInnerCDN)}(s,n,c)}))}function Hn(e,i,r,n,s){var a;return o(this,void 0,void 0,(function*(){const o=[],d=[];e.forEach((e=>{o.push(...i.getRemoteTracksByUserId(e)),d.push(e)})),o.length&&(null===(a=i.context.logger)||void 0===a||a.info(t.L_RES_UNPUB_UNSUBSCRIBE_O,void 0,s),yield new wn(o,r,s).execute(i,n),o.forEach((e=>i.removeRemoteTrack(e.getTrackId())))),d.length&&d.forEach((e=>i.removeResourcesByUserId(e)))}))}function jn(e){var t;const{userId:i,userData:r,event:o,switchRoleType:n}=e;return{users:[{userId:i,extra:null===(t=r.filter((e=>"extra"===e.key))[0])||void 0===t?void 0:t.value,state:o,switchRoleType:n}]}}function $n(e){var t,i;const{userId:r,userData:o}=e,n=(e=>e.some((e=>"uris"===e.key||"cdn_uris"===e.key)))(o);if(!n)return;const s=null===(t=o.filter((e=>"uris"===e.key))[0])||void 0===t?void 0:t.value,a=null===(i=o.filter((e=>"cdn_uris"===e.key))[0])||void 0===i?void 0:i.value;return{userId:r,content:{uris:s?JSON.parse(s):[],cdn_uris:a&&JSON.parse(a)}}}class Yn extends An{constructor(e,t,i){super(),this.msgContent=e,this.subhook=t,this.traceId=i}get priority(){return on.NORMAL}execute(e,i){return o(this,void 0,void 0,(function*(){const r=[],o=[],n=[],s=[],a={joined:r,left:o,upgrade:n,downgrade:s},{users:d}=this.msgContent;if(0===d.length)return a;for(let t=0;t<d.length;t++){const i=d[t];if(i.extra&&i.extra.roomId!==e.roomId)return a;if(1===Number(i.state)&&!e.getRemoteUserIds().includes(i.userId))return a}d.forEach((i=>{var a,d,c,_;const{userId:l}=i;if(0===Number(i.state)){const o=e.getResourcesByUserId(l);o||(i.switchRoleType?n.push(l):r.push(l),null===(d=null===(a=e.context)||void 0===a?void 0:a.logger)||void 0===d||d.info(t.L_PARSE_USERSTATE_COMMAND_R,JSON.stringify({userId:l,msg:"user "+(i.switchRoleType?"upgrade":"joined")}),this.traceId)),e.setResourcesByUserId(l,o||[])}else null===(_=null===(c=e.context)||void 0===c?void 0:c.logger)||void 0===_||_.info(t.L_PARSE_USERSTATE_COMMAND_R,JSON.stringify({userId:l,msg:"user "+(i.switchRoleType?"downgrade":"left")}),this.traceId),i.switchRoleType?s.push(l):o.push(l)}));const c=[...o,...s];return c.length&&(yield Hn(c,e,this.subhook,i,this.traceId)),a}))}}class qn extends An{constructor(e,t,i,r,o,n){super(),this.msgContent=e,this.messageType=t,this.senderId=i,this.subhook=r,this.callback=o,this.traceId=n}get priority(){return on.NORMAL}execute(e,r){var n,s,a,d;return o(this,void 0,void 0,(function*(){const{uris:o}=this.msgContent,c=[],_=[],l=[];let u;const h=this.senderId,{messageType:R}=this,p=e.getResourcesByUserId(h)||[];switch(e.setResourcesByUserId(h,p),R){case St.MODIFY:l.push(...o);break;case St.PUBLISH:c.push(...o);break;case St.UNPUBLISH:_.push(...o);break;case St.TOTAL_CONTENT_RESOURCE:u=at(p,o),c.push(...u.publishedList),_.push(...u.unpublishedList),l.push(...u.modifiedList)}if(c.length>0){const o=p.map(rt),a=[],d=[];if(c.forEach((t=>{const i=rt(t),r=o.indexOf(i),{userId:n,tag:s,mediaType:c}=ot(i);r>-1?p[r]=t:p.push(t);let _=e.getRemoteTrack(i);_?_.isSubscribed()&&a.push(_):(_=c===exports.RCMediaType.AUDIO_ONLY?new qe(s,n):new We(s,n),e.addRemoteTrack(_),d.push(_)),_.__innerSetRemoteMuted(0===t.state)})),a.length){const o=a.map((e=>e.getTrackId())),{code:d}=yield new Mn(a,this.subhook,!0,this.traceId).execute(e,r);d!==exports.RCRTCCode.SUCCESS&&(null===(s=null===(n=e.context)||void 0===n?void 0:n.logger)||void 0===s||s.error(t.L_RESUB_REPUB_RES_R,JSON.stringify({status:i.FAILED,trackIds:o,code:d}),this.traceId))}this.callback.onTrackPublish(d)}if(_.length>0){const t=_.map(rt);for(let e=p.length-1;e>=0;e-=1){const i=p[e];t.includes(rt(i))&&p.splice(e,1)}const i=_.map((t=>{const i=rt(t);return e.getRemoteTrack(i)}));yield new Bn(this.subhook,i,this.callback.onTrackUnpublish).execute(e,r)}if(l.length>0){const t=p.map(rt);for(let i=0;i<l.length;i+=1){const r=l[i],o=rt(r),n=t.indexOf(o);p[n].state=r.state;const s=e.getRemoteTrack(o);s.__innerSetRemoteMuted(0===r.state),s.isAudioTrack()?this.callback.onAudioMuteChange(s):this.callback.onVideoMuteChange(s)}}if(e.roomMode!==sn.LIVE)return;const v=this.msgContent;if(!v.cdn_uris)return;const C=(null===(a=e.getCDNUris())||void 0===a?void 0:a.enableInnerCDN)!==v.cdn_uris[0].enableInnerCDN;e.setCDNUris(v.cdn_uris[0]),C&&this.callback.onCDNEnableChange(!!(null===(d=e.getCDNUris())||void 0===d?void 0:d.enableInnerCDN))}))}}class Wn extends An{constructor(e,t,i){super(),this.tracks=e,this.subhook=t,this.forceReq=i}execute(e,n){var s,a,d,c,_,l,u,h;return o(this,void 0,void 0,(function*(){const{tracks:o,forceReq:R}=this,p=null===(a=null===(s=e.context)||void 0===s?void 0:s.logger)||void 0===a?void 0:a.createTraceId();if(null===(c=null===(d=e.context)||void 0===d?void 0:d.logger)||void 0===c||c.info(t.L_ABSTRACT_ROOM_SUBSCRIBE_T,JSON.stringify({trackIds:o.map(Tt),forceReq:R}),p),!r.validate("tracks",o,(()=>r.isArray(o)&&o.length>0&&o.every((e=>e instanceof Ye||e.track instanceof Ye))),!0))return null===(l=null===(_=e.context)||void 0===_?void 0:_.logger)||void 0===l||l.error(t.L_ABSTRACT_ROOM_SUBSCRIBE_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> tracks"}),p),{code:exports.RCRTCCode.PARAMS_ERROR};const v=e.getSubscribedList().map((e=>Object.assign({},e))),C=o.map((e=>e instanceof Ye?{track:e}:e));let g=!1;const m=[];return C.forEach((e=>{const t=e.track.getTrackId();m.push(t);const i=v.find((e=>e.track.getTrackId()===t));i&&i.subTiny===e.subTiny||(i?i.subTiny=e.subTiny:v.push(e),g=!0)})),g||R?(e.polarisReport.sendR2(dn.SUBSCRIBE,cn.BEGIN,m),Uo(!0),new Mn(v,this.subhook,!0,p).execute(e,n)):(null===(h=null===(u=e.context)||void 0===u?void 0:u.logger)||void 0===h||h.warn(t.L_ABSTRACT_ROOM_SUBSCRIBE_R,JSON.stringify({status:i.SUCCESSED,msg:"repeat subscribe"}),p),{code:exports.RCRTCCode.SUCCESS})}))}}class zn{constructor(){this.tasks=[]}static handler(){return this.retryHandler||(this.retryHandler=new zn),this.retryHandler}execute(){for(const e of this.tasks)e();this.destroy()}task(e){return o(this,void 0,void 0,(function*(){return new Promise((t=>{this.tasks.push((()=>{t(e())}))}))}))}destroy(){this.tasks=[]}}class Zn extends An{constructor(e,t,i=3e4){var r;super(),this.tracks=e,this.pubhook=t,this.signalRetryTime=i,this._logger=null,this._logger=Ae.getLogger(),this._traceId=null===(r=this._logger)||void 0===r?void 0:r.createTraceId()}get kind(){return tn.Publish}_removePubFailedTracks(e,i){e.forEach((e=>{var r;const o=e instanceof we?e:e.track;null===(r=this._logger)||void 0===r||r.debug(t.L_ABSTRACT_ROOM_PUBLISH_P,`remove pub failed track from peerconnection -> trackId: ${o.getTrackId()}`,this._traceId),i.removeLocalTrackById(o.getTrackId())}))}__publish(e,r,n,s,a){var d,c,_,l,u,h;return o(this,void 0,void 0,(function*(){const{pcName:o,pc:R,headers:p}=r,{roomId:v}=e,C=[];n.forEach((e=>{const{track:t}=e instanceof we?{track:e}:e;C.push(t)})),n.sort(((e,t)=>{const{track:i}=e instanceof we?{track:e}:e,{max:r}=i.getBitrate(),{track:o}=t instanceof we?{track:t}:t,{max:n}=o.getBitrate();return r-n}));if(R.getLocalTracks().length+((e,t)=>{let i=0;return e.forEach((e=>{const r=e instanceof we?e.getTrackId():e.track.getTrackId();t.getLocalTrack(r)||(e instanceof we?i++:e.pubTiny&&e.track.isVideoTrack()&&(i+=2))})),i})(n,R)>10)return null===(d=this._logger)||void 0===d||d.error(t.L_ABSTRACT_ROOM_PUBLISH_P,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PUBLISH_TRACK_LIMIT_EXCEEDED,trackIds:n.map(Tt),msg:`pcName: ${o} publish track limit exceeded`}),this._traceId),{code:exports.RCRTCCode.PUBLISH_TRACK_LIMIT_EXCEEDED,tracks:C};null===(c=this._logger)||void 0===c||c.info(t.L_ABSTRACT_ROOM_PUBLISH_P,`publish tracks -> roomId: ${v}, tracks: ${n.map(Tt)}`,this._traceId);for(let e=0;e<n.length;e++){const i=n[e],{track:r,pubTiny:o}=i instanceof we?{pubTiny:!1,track:i}:i;if(r.isVideoTrack()&&o){let e;try{e=r.__innerGetMediaStreamTrack().clone();const t=o.frameRate||exports.RCFrameRate.FPS_15,i=o.resolution||exports.RCResolution.W176_H144,{width:n,height:s}=ct(i),a=ut(t);yield e.applyConstraints({width:n,height:s,frameRate:a})}catch(i){null==e||e.stop(),null===(_=this._logger)||void 0===_||_.warn(t.L_ABSTRACT_ROOM_PUBLISH_P,`pubTiny failed -> id: ${r.getTrackId()}, msg: ${i.message}`,this._traceId);break}R.addLocalTrack(new Ve(r.getTag(),r.getUserId(),e,!0))}R.addLocalTrack(r)}R.clearReTryExchangeTimer();const g=e.useMutilPeerC?[]:e.getSubscribedList();((e,t,i)=>{var r;const o=mo.getMemo(),n={dur:0,cod:0,rid:e,csnid:(null===(r=o.clientData)||void 0===r?void 0:r.clientSessionId)||"",snid:t,rsid:"",msa:"",msas:[],sigs:[],time:0,resid:"",mtp:0,smct:1,cr:"unknown",net:"unknown",uid:i,stp:0};o.qualityPublishReportData=n,o.publish={start:Date.now()}})(e.roomId,e.getSessionId(),e.crtUserId);const m=yield Vn(g,!1,R,e);s&&(m.pushOtherRooms=s),ln.formatSourceIdMapFromSdp(m.sdp.sdp,"publish");const T=yield new Pn(p,m).execute(e,a);if(T.code!==exports.RCRTCCode.SUCCESS)return yo(C,T.code),null===(l=this._logger)||void 0===l||l.error(t.L_ABSTRACT_ROOM_PUBLISH_P,JSON.stringify({status:i.FAILED,tracks:n.map(Tt),code:T.code,msg:"exchange failed"}),this._traceId),this._removePubFailedTracks(n,R),{code:T.code,tracks:C};const{sdp:I,resultCode:S,message:E}=T.data;if(S!==exports.RCRTCCode.SUCCESS)return yo(C,S),null===(u=this._logger)||void 0===u||u.error(t.L_ABSTRACT_ROOM_PUBLISH_P,JSON.stringify({status:i.FAILED,trackIds:n.map(Tt),code:S,msg:`exchange inner failed: ${E}`}),this._traceId),this._removePubFailedTracks(n,R),{code:S,tracks:C};const f=yield R.setRemoteAnswer(I.sdp);return f!==exports.RCRTCCode.SUCCESS?(yo(C,f),null===(h=this._logger)||void 0===h||h.error(t.L_ABSTRACT_ROOM_PUBLISH_P,JSON.stringify({status:i.FAILED,trackIds:n.map(Tt),code:f,msg:"set remote answer error"}),this._traceId),{code:f,tracks:C}):Object.assign(Object.assign({},T),{tracks:C})}))}_mergePublishRes(e,n){var s,a;return o(this,void 0,void 0,(function*(){const d=n.crtUserId,{roomId:c}=n;let _="";const l=[],u=n.getResourcesByUserId(d),h=[...u];let R=[];e.forEach((e=>{if(e.code!==exports.RCRTCCode.SUCCESS){const{tracks:t}=e;return void l.push({code:e.code,tracks:t})}const{publishList:t,urls:i,mcuPublishList:r}=e.data;_=null==i?void 0:i.liveUrl;t.map((e=>Object.assign({tag:e.msid.split("_").pop(),state:n.getTrackState(rt(e))},e))).forEach((e=>{const{isInclude:t,index:i}=((e,t)=>{let i=!1,r=0;for(let o=0;o<t.length;o++){const n=t[o];if(`${e.msid}_${e.mediaType}`==`${n.msid}_${n.mediaType}`){i=!0,r=o;break}}return{isInclude:i,index:r}})(e,h);t?h.splice(i,1,e):h.push(e)}));const o=(null==r?void 0:r.map((e=>Object.assign({tag:e.msid.split("_").pop(),state:1},e))))||[];R=o}));const{publishedList:p}=at(u,h),v=Object.assign(Object.assign({},n.getCDNUris()),{enableInnerCDN:n.getCDNEnable()}),C=v&&v.broadcast===_n.SPREAD?JSON.stringify([v]):"";mo.getMemo().publishSignalTotal={start:Date.now()};let g=yield n.context.setRTCTotalRes(c,ze(St.PUBLISH,p),Ze(h),St.TOTAL_CONTENT_RESOURCE,Ze(R),C);if(g!==r.ErrorCode.SUCCESS){const e=zn.handler(),t=(new Date).valueOf(),i=()=>o(this,void 0,void 0,(function*(){if((new Date).valueOf()-t>this.signalRetryTime)return g;const o=yield n.context.setRTCTotalRes(c,ze(St.PUBLISH,p),Ze(h),St.TOTAL_CONTENT_RESOURCE,Ze(R));return o!==r.ErrorCode.SUCCESS&&(yield e.task(i)),o}));g=yield e.task(i)}if(g!==r.ErrorCode.SUCCESS)return Do(h,g),null===(s=this._logger)||void 0===s||s.error(t.L_ABSTRACT_ROOM_PUBLISH_R,JSON.stringify({status:i.FAILED,code:g,msg:"send publish streams notification failed"}),this._traceId),{code:exports.RCRTCCode.SIGNAL_ERROR};Do(h,g),Oo({publish:{time:Date.now()}}),n.setResourcesByUserId(d,h);const m=p.map((e=>rt(e)));n.polarisReport&&n.polarisReport.sendR2(dn.PUBLISH,cn.BEGIN,m),p.forEach((e=>{const t=n.useMutilPeerC?`${c}_${(e=>{const t=e.split("_");return{tag:t.pop(),userId:t.join("_")}})(e.msid).tag}`:`${c}_pub`,{pc:i}=n.peerMgr.getPCItemByPCName(t);i.getLocalTrack(`${e.msid}_${e.mediaType}`).__innerSetPublished(!0)})),null===(a=this._logger)||void 0===a||a.info(t.L_ABSTRACT_ROOM_PUBLISH_R,JSON.stringify({status:i.SUCCESSED,code:l.length?exports.RCRTCCode.SOME_TRACKS_PUBLISH_FAILED:exports.RCRTCCode.SUCCESS,pubSuccessTrackIds:m}),this._traceId);const T={code:exports.RCRTCCode.SUCCESS};return _&&(T.liveUrl=_),l.length&&(T.failedTracks=l,T.code=exports.RCRTCCode.SOME_TRACKS_PUBLISH_FAILED),T}))}execute(e,n){var s,a,d,c,_,l;return o(this,void 0,void 0,(function*(){let{tracks:o}=this;if(null===(a=null===(s=e.context)||void 0===s?void 0:s.logger)||void 0===a||a.info(t.L_ABSTRACT_ROOM_PUBLISH_T,JSON.stringify({trackIds:o.map(Tt)})),!r.validate("tracks",o,(()=>r.isArray(o)&&o.length>0&&o.every((e=>e instanceof we||e.track instanceof we))),!0))return null===(c=null===(d=e.context)||void 0===d?void 0:d.logger)||void 0===c||c.error(t.L_ABSTRACT_ROOM_PUBLISH_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> tracks"}),this._traceId),{code:exports.RCRTCCode.PARAMS_ERROR};if(o=o.filter((i=>{var r,o;const{track:n}=i instanceof we?{track:i}:i,s=n.isDestroyed();return s&&(null===(o=null===(r=e.context)||void 0===r?void 0:r.logger)||void 0===o||o.warn(t.L_ABSTRACT_ROOM_PUBLISH_P,JSON.stringify({msg:`track -> ${n.getTrackId()} has beem destroyed`}),this._traceId)),!s})),!o.length)return null===(l=null===(_=e.context)||void 0===_?void 0:_.logger)||void 0===l||l.error(t.L_ABSTRACT_ROOM_PUBLISH_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PUBLISH_TRACKS_IS_INVALID,msg:"params tracks is invalid"}),this._traceId),{code:exports.RCRTCCode.PUBLISH_TRACKS_IS_INVALID};const u=[],{plist:h,pushOtherRooms:R}=this.pubhook(o);for(let t=0;t<h.length;t++){const i=h[t];u.push(this.__publish(e,i,i.tracks,R,n))}const p=yield Promise.all(u);return yield this._mergePublishRes(p,e)}))}}class Qn extends An{constructor(e,t){super(),this.tracks=e,this.unpubhook=t}get kind(){return tn.UnPublish}__unpublish(e,r,n,s){var a,d,c,_;return o(this,void 0,void 0,(function*(){const{pcName:o,pc:l}=n,u=s.map((e=>e.getTrackId()));if(0===u.map(e.getPublishedResourceByTrackId.bind(e)).filter((e=>!!e)).length)return{code:exports.RCRTCCode.SUCCESS,tracks:s};u.forEach((e=>l.removeLocalTrackById(e))),e.polarisReport.sendR2(dn.PUBLISH,cn.END,u),l.clearReTryExchangeTimer();const h=e.useMutilPeerC?[]:e.getSubscribedList();((e,t,i)=>{var r;const o=mo.getMemo(),n={dur:0,cod:0,rid:e,csnid:(null===(r=o.clientData)||void 0===r?void 0:r.clientSessionId)||"",snid:t,rsid:"",msa:"",msas:[],sigs:[],time:0,resid:"",mtp:0,smct:1,uid:i,stp:0};o.qualityUnpublishReportData=n,o.unpublish={start:Date.now()}})(e.roomId,e.getSessionId(),e.crtUserId);const R=yield Vn(h,!1,l,e),{pushOtherRooms:p,headers:v}=this.unpubhook(s,o);p&&(R.pushOtherRooms=p);const C=yield new Pn(v,R,this._traceId).execute(e,r);if(C.code!==exports.RCRTCCode.SUCCESS)return ko(s,C.code),null===(d=null===(a=e.context)||void 0===a?void 0:a.logger)||void 0===d||d.error(t.L_ABSTRACT_ROOM_UNPUBLISH_P,JSON.stringify({status:i.FAILED,code:C.code,trackIds:s.map(Tt),msg:"exchange failed"}),this._traceId),{code:C.code,tracks:s};const{resultCode:g,message:m}=C.data;return g!==exports.RCRTCCode.SUCCESS?(ko(s,C.data.resultCode),null===(_=null===(c=e.context)||void 0===c?void 0:c.logger)||void 0===_||_.error(t.L_ABSTRACT_ROOM_UNPUBLISH_P,JSON.stringify({status:i.FAILED,code:g,trackIds:s.map(Tt),msg:`exchange inner failed: ${m}`}),this._traceId),{code:g,tracks:s}):Object.assign(Object.assign({},C),{tracks:s})}))}_mergeUnpublishRes(e,n){var s,a,d,c;return o(this,void 0,void 0,(function*(){const _=e.context.getCurrentId(),{roomId:l}=e,u=[],h=[],R=[],p=[];let v=[];for(let t=0;t<n.length;t++){const i=n[t],{tracks:r}=i;if(i.code!==exports.RCRTCCode.SUCCESS){h.push({code:i.code,tracks:r});continue}const{mcuPublishList:o}=i.data,s=i.tracks.map((e=>e.getTrackId()));p.push(...s);const a=s.map(e.getPublishedResourceByTrackId.bind(e)).filter((e=>!!e));R.push(...a),u.push(i);const d=o?o.map((e=>Object.assign({tag:e.msid.split("_").pop(),state:1},e))):[];v=d}const C=e.getResourcesByUserId(_),g=C.filter((e=>!R.includes(e)));mo.getMemo().unpublishSignalTotal={start:Date.now()};const m=yield e.context.setRTCTotalRes(l,ze(St.UNPUBLISH,R),Ze(g),St.TOTAL_CONTENT_RESOURCE,Ze(v));if(m!==r.ErrorCode.SUCCESS)return bo(C,m),null===(a=null===(s=e.context)||void 0===s?void 0:s.logger)||void 0===a||a.error(t.L_ABSTRACT_ROOM_UNPUBLISH_R,JSON.stringify({status:i.FAILED,code:m,msg:"send unpublish notification failed"}),this._traceId),{code:exports.RCRTCCode.SIGNAL_ERROR};null===(c=null===(d=e.context)||void 0===d?void 0:d.logger)||void 0===c||c.info(t.L_ABSTRACT_ROOM_UNPUBLISH_R,JSON.stringify({status:i.SUCCESSED,code:h.length?exports.RCRTCCode.SOME_TRACKS_PUBLISH_FAILED:exports.RCRTCCode.SUCCESS,msg:"unpublish success",unPubResourceIds:p}),this._traceId),bo(C,m),u.forEach((t=>o(this,void 0,void 0,(function*(){const{sdp:i}=t.data,{tracks:r}=t,o=e.peerMgr.getPCByTrackId(r[0].getTrackId());yield o.setRemoteAnswer(i.sdp)})))),e.setResourcesByUserId(_,g);const T={code:exports.RCRTCCode.SUCCESS};return h.length&&(T.failedTracks=h,T.code=exports.RCRTCCode.SOME_TRACKS_PUBLISH_FAILED),T}))}execute(e,n){var s,a,d,c,_;return o(this,void 0,void 0,(function*(){const{crtUserId:o,roomId:l}=e,{tracks:u}=this;this._traceId=null===(s=e.context.logger)||void 0===s?void 0:s.createTraceId(),null===(d=null===(a=e.context)||void 0===a?void 0:a.logger)||void 0===d||d.info(t.L_ABSTRACT_ROOM_UNPUBLISH_T,JSON.stringify({trackIds:u.map(Tt)}));if(!r.validate("tracks",u,(()=>u.every((e=>e.getUserId()===o&&e instanceof we))),!0))return null===(_=null===(c=e.context)||void 0===c?void 0:c.logger)||void 0===_||_.error(t.L_ABSTRACT_ROOM_UNPUBLISH_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> tracks"})),{code:exports.RCRTCCode.PARAMS_ERROR};const h=e.peerMgr.createPeerCList(u),R=[];for(let t=0;t<h.length;t++){const{tracks:i}=h[t];R.push(this.__unpublish(e,n,h[t],i))}const p=yield Promise.all(R);let v=p.length;if(p.forEach((e=>{e.code!==exports.RCRTCCode.SUCCESS||e.data||(v-=1)})),0===v)return{code:exports.RCRTCCode.SUCCESS};return yield this._mergeUnpublishRes(e,p)}))}}class Xn extends An{constructor(e,t){super(),this.localTrack=e,this._recvSignalResultFn=t}execute(e,n){var s,a,d,c;return o(this,void 0,void 0,(function*(){const{localTrack:o}=this,n=o.getTrackId(),{crtUserId:_,roomId:l}=e,u=!o.isLocalMuted(),h=[{resourceId:n,enabled:u}],R=e.getResourcesByUserId(_),p=[];for(let e=0;e<R.length;e+=1){const t=R[e],i=rt(t),r=h.findIndex((e=>e.resourceId===i));if(r>=0){const{enabled:e}=h[r];t.state=e?1:0,p.push(t);break}}const v=yield e.context.setRTCTotalRes(l,ze(St.MODIFY,p),Ze(R),St.TOTAL_CONTENT_RESOURCE);this._recvSignalResultFn(v),v!==r.ErrorCode.SUCCESS&&(null===(a=null===(s=e.context)||void 0===s?void 0:s.logger)||void 0===a||a.error(t.L_LOCAL_TRACK_SET_LOCAL_MUTED_R,JSON.stringify({status:i.FAILED,code:v,enabled:u,trackId:this.localTrack.getTrackId(),msg:"signal error"}))),null===(c=null===(d=e.context)||void 0===d?void 0:d.logger)||void 0===c||c.info(t.L_LOCAL_TRACK_SET_LOCAL_MUTED_R,JSON.stringify({status:i.SUCCESSED,enabled:u,trackId:this.localTrack.getTrackId()}))}))}}class es extends An{constructor(e,t,i){super(),this.pcName=e,this.isPub=t,this.retryHook=i}get priority(){return on.HIGH}execute(e,i){var r,n;return o(this,void 0,void 0,(function*(){null===(n=null===(r=e.context)||void 0===r?void 0:r.logger)||void 0===n||n.info(t.L_RETRY_EXCHANGE_COMMAND_T);const{pcName:o,isPub:s}=this,{useMutilPeerC:a}=e,{pc:d}=e.peerMgr.getPCItemByPCName(o),c=s&&a?[]:e.getSubscribedList(),_=yield Vn(c,!0,d,e),{pushOtherRooms:l,headers:u}=this.retryHook(o);l&&(_.pushOtherRooms=l);const h=yield new Pn(u,_).execute(e,i);if(h.code!==exports.RCRTCCode.SUCCESS)return;const{sdp:R,resultCode:p}=h.data;p===exports.RCRTCCode.SUCCESS&&(d.clearReTryExchangeTimer(),yield d.setRemoteAnswer(R.sdp))}))}}class ts extends An{constructor(e,t,i){super(),this.subhook=e,this.callbacks=t,this.livingType=i}get priority(){return on.HIGH}execute(e,n){var s,a,d,c,_,l,u,h,R,p,v,C,g;return o(this,void 0,void 0,(function*(){const{livingType:o}=this,{roomId:m,roomMode:T}=e,I=null===(a=null===(s=e.context)||void 0===s?void 0:s.logger)||void 0===a?void 0:a.createTraceId();null===(c=null===(d=e.context)||void 0===d?void 0:d.logger)||void 0===c||c.info(t.L_ABSTRACT_ROOM_IM_RECONNECTED_T,void 0,I);if(e.peerMgr.getPCList().some((e=>"closed"===e.getRTCPeerConn().connectionState)))return null===(l=null===(_=e.context)||void 0===_?void 0:_.logger)||void 0===l||l.error(t.L_ABSTRACT_ROOM_IM_RECONNECTED_R,JSON.stringify({status:i.FAILED,msg:"RTCPeerConnection closed. Please rejoin room to restore services"}),I),void(this.callbacks.onPeerClosed&&this.callbacks.onPeerClosed());const{code:S,data:E}=yield e.context.joinRTCRoom(m,T,o);if(S!==r.ErrorCode.SUCCESS)return void(null===(h=null===(u=e.context)||void 0===u?void 0:u.logger)||void 0===h||h.error(t.L_ABSTRACT_ROOM_IM_RECONNECTED_R,JSON.stringify({status:i.FAILED,code:S,msg:"im reconnect joinRTCRoom failed"}),I));if(!E)return void(null===(p=null===(R=e.context)||void 0===R?void 0:R.logger)||void 0===p||p.info(t.L_LIVING_ROOM_RECONNECTED_R,JSON.stringify({status:i.FAILED,msg:"im reconnect joinRTCRoom, roomData is empty"}),I));const f=null===(v=E.roomInfo.filter((e=>"cdn_uris"===e.key))[0])||void 0===v?void 0:v.value;return Kn(E,e,this.callbacks,n,this.subhook,f,I),null===(g=null===(C=e.context)||void 0===C?void 0:C.logger)||void 0===g||g.info(t.L_ABSTRACT_ROOM_IM_RECONNECTED_R,JSON.stringify({status:i.SUCCESSED,roomData:E}),I),{data:E}}))}}class is extends Nn{constructor(e,t,i,r=rn.NORMAL,o){super(r),this.tracks=e,this.subhook=t,this.callbacks=i,this.traceId=o,this._logger=null,this._logger=Ae.getLogger()}execute(e,i){var r,n,s,a;return o(this,void 0,void 0,(function*(){const{tracks:o}=this,{roomId:d}=e;if(null===(r=this._logger)||void 0===r||r.info(t.L_OLD_DAILY_RECORD_O,`unsubscribe -> roomId: ${d}, tracks: ${o.map(Tt)}`),this.state===rn.NORMAL){const t=e.getSubscribedList().slice(),{code:r,failedList:s}=yield new Mn(o,this.subhook,!0,this.traceId).execute(e,i),a=e.getSubscribedList().slice(),{subscribe:d,unsubscribe:c}=this.pickoutSubscribed(a,t);return null===(n=this.callbacks)||void 0===n||n.onTaskCompleted({code:r,subscribe:d,unsubscribe:c,failedList:s}),{code:r,failedList:s}}if(this.state===rn.TAIL){const{code:t}=yield new is(this.tracks,this.subhook,this.callbacks,rn.MIDDLE,this.traceId).execute(e,i);if(t===exports.RCRTCCode.SUCCESS){const t=e.getCollectSubscribeList().slice(0),r=e.getSubscribedList().slice(),{code:o,failedList:n}=yield new Mn(t,this.subhook,!0).execute(e,i);if(o!==exports.RCRTCCode.SUCCESS)return null===(s=this.callbacks)||void 0===s||s.onTaskCompleted({code:o,subscribe:[],unsubscribe:[],failedList:n}),{code:o,failedList:n};const d=e.getSubscribedList().slice(0),{subscribe:c,unsubscribe:_}=this.pickoutSubscribed(d,r);return null===(a=this.callbacks)||void 0===a||a.onTaskCompleted({code:o,subscribe:c,unsubscribe:_,failedList:n}),{code:o,failedList:n}}return{code:t}}return Nn.AsyncUpdateSubscribeTasks.splice(Nn.AsyncUpdateSubscribeTasks.length,0,...this.tracks),new Promise((t=>{const i=this.formateTrack(o);e.resetCollectSubscribeList(i),t({code:exports.RCRTCCode.SUCCESS})}))}))}}class rs extends Nn{constructor(e,t,i,r=rn.NORMAL){super(r),this.tracks=e,this.subhook=t,this.callbacks=i}execute(e,n){var s,a,d,c,_,l,u,h,R;return o(this,void 0,void 0,(function*(){const{tracks:o}=this,{roomId:p}=e;if(this.state===rn.NORMAL){const t=e.getSubscribedList().slice(),{code:i,failedList:r}=yield new Wn(o,this.subhook).execute(e,n),a=e.getSubscribedList().slice(),{subscribe:d,unsubscribe:c}=this.pickoutSubscribed(a,t);return null===(s=this.callbacks)||void 0===s||s.onTaskCompleted({code:i,subscribe:d,unsubscribe:c,failedList:r}),{code:i,failedList:r}}const v=null===(d=null===(a=e.context)||void 0===a?void 0:a.logger)||void 0===d?void 0:d.createTraceId();if(null===(_=null===(c=e.context)||void 0===c?void 0:c.logger)||void 0===_||_.info(t.L_ABSTRACT_ROOM_SUBSCRIBE_T,JSON.stringify({trackIds:o.map(Tt)}),v),!r.validate("tracks",o,(()=>r.isArray(o)&&o.length>0&&o.every((e=>e instanceof Ye||e.track instanceof Ye))),!0))return null===(u=null===(l=e.context)||void 0===l?void 0:l.logger)||void 0===u||u.error(t.L_ABSTRACT_ROOM_SUBSCRIBE_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> tracks"})),{code:exports.RCRTCCode.PARAMS_ERROR};const C=this.getSubscribedList(e).map((e=>Object.assign({},e))),g=o.map((e=>e instanceof Ye?{track:e}:e)),m=[];if(g.forEach((e=>{const t=e.track.getTrackId();m.push(t);const i=C.find((e=>e.track.getTrackId()===t));if(i){if(i.subTiny===e.subTiny)return;i.subTiny=e.subTiny}else C.push(e)})),e.polarisReport.sendR2(dn.SUBSCRIBE,cn.BEGIN,m),null===(R=null===(h=e.context)||void 0===h?void 0:h.logger)||void 0===R||R.info(t.L_ABSTRACT_ROOM_SUBSCRIBE_R,JSON.stringify({trackIds:o.map(Tt),roomId:p})),this.state===rn.TAIL){const{code:t}=yield new rs(this.tracks,this.subhook,this.callbacks,rn.MIDDLE).execute(e,n);if(t===exports.RCRTCCode.SUCCESS){const t=e.getCollectSubscribeList().slice(0);return new is(t,this.subhook,this.callbacks,rn.NORMAL,v).execute(e,n)}return{code:t}}return Nn.AsyncSubscribeTasks.splice(Nn.AsyncSubscribeTasks.length,0,...this.tracks),new Promise((t=>{e.resetCollectSubscribeList(C),t({code:exports.RCRTCCode.SUCCESS})}))}))}getSubscribedList(e){return this.state===rn.MIDDLE?e.getCollectSubscribeList():e.getSubscribedList()}}class os extends Nn{constructor(e,t,i,r=rn.NORMAL){super(r),this.tracks=e,this.subhook=t,this.callbacks=i}execute(e,n){var s,a,d,c,_,l,u,h,R;return o(this,void 0,void 0,(function*(){const{tracks:o}=this,{roomId:p}=e,v=null===(a=null===(s=e.context)||void 0===s?void 0:s.logger)||void 0===a?void 0:a.createTraceId();if(this.state===rn.NORMAL){const t=e.getSubscribedList().slice(),{code:i,failedList:r}=yield new wn(o,this.subhook,v).execute(e,n),s=e.getSubscribedList().slice(),{subscribe:a,unsubscribe:c}=this.pickoutSubscribed(s,t);return null===(d=this.callbacks)||void 0===d||d.onTaskCompleted({code:i,subscribe:a,unsubscribe:c,failedList:r}),{code:i,failedList:r}}if(null===(_=null===(c=e.context)||void 0===c?void 0:c.logger)||void 0===_||_.info(t.L_ABSTRACT_ROOM_UNSUBSCRIBE_T,JSON.stringify({trackIds:o.map(Tt)})),!r.validate("tracks",o,(()=>r.isArray(o)&&o.length>0&&o.every((e=>e instanceof Ye))),!0))return null===(u=null===(l=e.context)||void 0===l?void 0:l.logger)||void 0===u||u.warn(t.L_ABSTRACT_ROOM_UNSUBSCRIBE_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> tracks"})),{code:exports.RCRTCCode.PARAMS_ERROR};const C=this.getSubscribedList(e).map((e=>Object.assign({},e))).filter((e=>!o.includes(e.track)));if(e.polarisReport.sendR2(dn.SUBSCRIBE,cn.END,o.map((e=>e.getTrackId()))),null===(R=null===(h=e.context)||void 0===h?void 0:h.logger)||void 0===R||R.info(t.L_ABSTRACT_ROOM_UNSUBSCRIBE_R,JSON.stringify({trackIds:o.map(Tt),roomId:p})),this.state===rn.TAIL){const{code:t}=yield new os(this.tracks,this.subhook,this.callbacks,rn.MIDDLE).execute(e,n);if(t===exports.RCRTCCode.SUCCESS){const t=e.getCollectSubscribeList().slice(0).map((e=>e.track));return new is(t,this.subhook,this.callbacks,rn.NORMAL,v).execute(e,n)}return{code:t}}return Nn.AsyncUnsubscribeTasks.splice(Nn.AsyncUnsubscribeTasks.length,0,...this.tracks),new Promise((t=>{e.resetCollectSubscribeList(C),t({code:exports.RCRTCCode.SUCCESS})}))}))}getSubscribedList(e){return this.state===rn.MIDDLE?e.getCollectSubscribeList():e.getSubscribedList()}}var ns;!function(e){e[e.JOIN=0]="JOIN",e[e.LEAVE=1]="LEAVE",e[e.OFFLINE=2]="OFFLINE",e[e.RESOURCECHANGE=3]="RESOURCECHANGE"}(ns||(ns={}));class ss extends An{constructor(e,t,i,r,o,n){super(),this._roomId=e,this._traceId=t,this._context=i,this._callbacks=r,this._subhook=o,this._dealUserAppListener=n}execute(e,i){var n,s;return o(this,void 0,void 0,(function*(){const o=e.getRoomStatusVersion();null===(n=this._context.logger)||void 0===n||n.info(t.L_PULL_ROOM_STATUS_T,JSON.stringify({roomId:this._roomId,version:o}),this._traceId);const{code:a,data:d}=yield this._context.pullRTCRoomStatus(this._roomId,o);if(a!==r.ErrorCode.SUCCESS)return{code:a};const{bFullStatus:c,version:_,usersData:l,roomStatus:u}=d;if(null===(s=this._context.logger)||void 0===s||s.info(t.L_PULL_ROOM_STATUS_R,JSON.stringify({bFullStatus:c,version:It(_),usersData:l,roomStatus:u}),this._traceId),e.setRoomStatusVersion(_),c){const{urisData:t,CDNUris:r}=function(e){const t={users:{}};let i="";return e.forEach((e=>{var r,o;const{userId:n,userData:s}=e;t.users[n]={};const a=null===(r=s.filter((e=>"uris"===e.key))[0])||void 0===r?void 0:r.value,d=null===(o=s.filter((e=>"cdn_uris"===e.key))[0])||void 0===o?void 0:o.value;i=d||i,t.users[n]={uris:a}})),{urisData:t,CDNUris:i&&JSON.stringify(JSON.parse(i)[0])}}(l);return Kn(t,e,this._callbacks,i,this._subhook,r,this._traceId),{code:a}}for(let t=0;t<u.length;t++){const r=u[t];if(r.event===ns.RESOURCECHANGE){const t=$n(r);if(!t)continue;const{content:o,userId:n}=t;if(n===e.crtUserId)continue;yield new qn(o,St.TOTAL_CONTENT_RESOURCE,n,this._subhook.bind(this),this._callbacks,this._traceId).execute(e,i)}else{const t=jn(r),o=yield new Yn(t,this._subhook.bind(this),this._traceId).execute(e,i);this._dealUserAppListener(o)}}return{code:a}}))}}const as="evt-leave";class ds extends r.EventEmitter{constructor(e,i,r,n,s,a,d,c,_,l=ho(),u=3e4){super(),this._context=e,this._runtime=i,this._roomId=r,this._service=s,this._initOptions=a,this._useMutilPeerC=_,this._clientSessionId=l,this.signalRetryTime=u,this._appListener=null,this._reportListener=null,this._onRecvPKMsg=null,this._polarisReport=new fn(this._context,this._runtime,this._roomId,this),this._peerCManager=new Ln(this._useMutilPeerC,this._roomId,this._reTryExchange.bind(this),this._context.getCurrentId(),this._polarisReport),this._invoker=new bn(this._context,this._service,this._peerCManager,r,this._context.getCurrentId(),n,this._polarisReport,d,c),this._store=this._invoker.store,this._context.registerRTCSignalListener((e=>o(this,void 0,void 0,(function*(){var i,r,o,n;const{time:s,type:a,roomId:d}=this._context.decodeRtcNotify(e);if(2===a){if(d!==this._roomId)return;const e=null===(r=null===(i=this._context)||void 0===i?void 0:i.logger)||void 0===r?void 0:r.createTraceId();null===(n=null===(o=this._context)||void 0===o?void 0:o.logger)||void 0===n||n.info(t.L_RTCNTF_PULL_ROOM_STATUS_O,null,e),this._startPullRTCRoomStatus(d,e)}}))))}_startPullRTCRoomStatus(e,t){return o(this,void 0,void 0,(function*(){yield this._invoker.push(new ss(e,t,this._context,{onUserJoin:this._callAppListener.bind(this,"onUserJoin"),onUserLeave:this._callAppListener.bind(this,"onUserLeave"),onAudioMuteChange:this._onAudioMuteChange.bind(this),onVideoMuteChange:this._onVideoMuteChange.bind(this),onTrackPublish:this._onTrackPublish.bind(this),onTrackUnpublish:this._onTrackUnpublish.bind(this),onCDNEnableChange:this._callAppListener.bind(this,"onCDNEnableChange")},this._subhook.bind(this),this._dealUserAppListener.bind(this)))}))}__innerInit(e,t,i,r,n,s){return o(this,void 0,void 0,(function*(){const{code:o,data:a}=yield this._invoker.push(new Un(this._roomId,e,this._context,t,i,r,n,s));return o!==exports.RCRTCCode.SUCCESS?{code:o}:(this._initWithRoomData(a.offlineKickTime),{code:o,data:a})}))}_initWithRoomData(e){var t;const i=this._invoker.store;this._pinger=new ft(i,this._context,this._initOptions.pingGap,1e3*e),this._pinger.onFailed=this._kickoff.bind(this),this._pinger.onPingResult=this._handlePingResult.bind(this),this._pinger.start(this._startPullRTCRoomStatus.bind(this)),null===(t=this._polarisReport)||void 0===t||t.sendR1()}_handlePingResult(e){this._callAppListener("onPing",e)}setBitrate(e,i,o){var n,s,a,d;if(this._useMutilPeerC)return void(null===(s=null===(n=this._context)||void 0===n?void 0:n.logger)||void 0===s||s.error(t.L_ABSTRACT_ROOM_SETBITRATE_O,"`RCAbstractRoom.setBitrate` is disabled, use `RCLocalTrack.setBitrate` instead."));null===(d=null===(a=this._context)||void 0===a?void 0:a.logger)||void 0===d||d.warn(t.L_ABSTRACT_ROOM_SETBITRATE_O,"`RCAbstractRoom.setBitrate` will be deprecated, use `RCLocalTrack.setBitrate` instead."),r.assert("max",e,(e=>r.isNumber(e)&&e>Math.max(i||1,200)),!0),r.assert("min",i,(t=>r.isNumber(t)&&t>=1&&(!r.isNumber(e)||t<e)),!0),r.assert("start",o,(t=>r.isNumber(t)&&t>i&&t<=e));this._peerCManager.getPCList().forEach((t=>{t.setBitrate(e,i,o)}))}_onTrackReady(e){var r,o,n,s;const a=e.streams[0].id,{track:d}=e.receiver,c=[a,"audio"===d.kind?exports.RCMediaType.AUDIO_ONLY:exports.RCMediaType.VIDEO_ONLY].join("_"),_=this._store.getRemoteTrack(c);_?(_.__innerSetMediaStreamTrack(d),null===(s=null===(n=this._context)||void 0===n?void 0:n.logger)||void 0===s||s.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onTrackReady",trackId:_.getTrackId()})),this._callAppListener("onTrackReady",_)):null===(o=null===(r=this._context)||void 0===r?void 0:r.logger)||void 0===o||o.warn(t.L_ABSTRACT_ROOM_ONTRACKREADY_O,`cannot found remote track ${d.id}`)}_callAppListener(e,...i){var r,o,n;const s=null===(r=this._appListener)||void 0===r?void 0:r[e];if(s)try{s(...i)}catch(e){null===(n=null===(o=this._context)||void 0===o?void 0:o.logger)||void 0===n||n.error(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify(e))}}_onTrackUnpublish(e){var r,o;null===(o=null===(r=this._context)||void 0===r?void 0:r.logger)||void 0===o||o.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onTrackUnpublish",trackIds:null==e?void 0:e.map((e=>e.getTrackId()))})),this._callAppListener("onTrackUnpublish",e)}__parseInnerMessage(e,r){var o,n,s,a,d,c,_,l,u,h;const{targetId:R,conversationType:p}=e;if(R!==this._roomId)return null===(n=null===(o=this._context)||void 0===o?void 0:o.logger)||void 0===n||n.warn(t.L_ABSTRACT_ROOM_RECEIVE_MESSAGE_O,JSON.stringify({status:i.FAILED,message:`roomId is different, msg roomId-> ${R}, this._roomId-> ${this._roomId} `}),r),!0;null===(a=null===(s=this._context)||void 0===s?void 0:s.logger)||void 0===a||a.info(t.L_ABSTRACT_ROOM_RECEIVE_MESSAGE_O,`recv inner msg -> message: ${JSON.stringify(e)} | roomid: ${this._roomId}`,r);const{content:v}=e;switch(e.messageType){case St.KICK:this._kickoff(!0,v);break;case St.STATE:this._stateHandle(v,r);break;case St.MODIFY:case St.PUBLISH:case St.UNPUBLISH:case St.TOTAL_CONTENT_RESOURCE:((e,i,r,o,n)=>{var s;const a=mo.getMemo();if(!a.isReportRecvPubMsg){a.isReportRecvPubMsg=!0;const d=Date.now(),c={dur:d-o,puid:n,rid:e,csnid:(null===(s=a.clientData)||void 0===s?void 0:s.clientSessionId)||"",snid:i,time:d,cr:"unknown",net:"unknown",uid:r},_=JSON.stringify(c);Ne.__statistics(t.L_QS_RECV_PUB_MSG_S,_)}})(this._roomId,this.getSessionId(),this.getCrtUserId(),e.sentTime,e.senderUserId),this._resourceHandle(v,e.messageType,e.senderUserId,r);break;case St.ROOM_NOTIFY:null===(c=null===(d=this._context)||void 0===d?void 0:d.logger)||void 0===c||c.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onRoomAttributeChange",messageType:e.messageType,messageContent:e.content})),this._callAppListener("onRoomAttributeChange",e.messageType,e.content);break;case St.USER_NOTIFY:null===(l=null===(_=this._context)||void 0===_?void 0:_.logger)||void 0===l||l.warn(t.L_OLD_DAILY_RECORD_O,`TODO: ${St.USER_NOTIFY}`);break;case St.PK_INVITE:case St.PK_CANCEL_INVITE:case St.PK_INVITE_TIMEOUT:case St.PK_INVITE_ANSWER:case St.PK_END:this._onRecvPKMsg&&this._onRecvPKMsg(e);break;case St.OTHER_ROOM_OFFLINE:break;default:null===(h=null===(u=this._context)||void 0===u?void 0:u.logger)||void 0===h||h.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onMessageReceive",messageType:e.messageType,messageContent:e.content,senderUserId:e.senderUserId,messageUId:e.messageUId})),this._callAppListener("onMessageReceive",e.messageType,v,e.senderUserId,e.messageUId)}return!0}_kickoff(e,r){var n,s,a,d;return o(this,void 0,void 0,(function*(){if(this._invoker.isDestroyed())return;let o,c;null===(s=null===(n=this._context)||void 0===n?void 0:n.logger)||void 0===s||s.warn(t.L_ABSTRACT_ROOM_ONKICKOFF_O,`onKickOff -> byServer: ${e}, kickContent: ${JSON.stringify(r)}`),this.emit(as),this._leaveHandle(!e),e&&(((null==r?void 0:r.users)||[]).forEach((e=>{e.userId===this._context.getCurrentId()&&(c=e.type,o=e.kickExtra)})),((e=1,i,r,o,n)=>{const s=Date.now(),a={cod:go[String(e)],rid:i,csnid:r,snid:o,time:s,cr:"unknown",net:"unknown",uid:n},d=JSON.stringify(a);Ne.__statistics(t.L_QS_KICKED_S,d)})(c,this._roomId,this.getClientSessionId(),this.getSessionId(),this.getCrtUserId())),null===(d=null===(a=this._context)||void 0===a?void 0:a.logger)||void 0===d||d.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onKickOff",byServer:e,kickType:c,kickExtra:o})),this._callAppListener("onKickOff",e,c,o)}))}_rtcpeerClosed(){var e,r;this.emit(as),this._leaveHandle(!0),null===(r=null===(e=this._context)||void 0===e?void 0:e.logger)||void 0===r||r.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onRTCPeerConnectionCloseByException"})),this._callAppListener("onRTCPeerConnectionCloseByException")}_resourceHandle(e,t,i,r){return o(this,void 0,void 0,(function*(){const{uris:o,ignore:n}=e;!n&&o&&this._invoker.push(new qn(e,t,i,this._subhook.bind(this),{onAudioMuteChange:this._onAudioMuteChange.bind(this),onVideoMuteChange:this._onVideoMuteChange.bind(this),onTrackPublish:this._onTrackPublish.bind(this),onTrackUnpublish:this._onTrackUnpublish.bind(this),onCDNEnableChange:this._callAppListener.bind(this,"onCDNEnableChange")},r))}))}_onTrackPublish(e){var r,o;null===(o=null===(r=this._context)||void 0===r?void 0:r.logger)||void 0===o||o.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onTrackPublish",trackIds:null==e?void 0:e.map((e=>e.getTrackId()))})),this._callAppListener("onTrackPublish",e)}_stateHandle(e,t){return o(this,void 0,void 0,(function*(){const i=yield this._invoker.push(new Yn(e,this._subhook.bind(this),t));this._dealUserAppListener(i)}))}_dealUserAppListener(e){var r,o,n,s,a,d,c,_,l;const{left:u,joined:h,upgrade:R,downgrade:p}=e;if(null===(r=this._appListener)||void 0===r?void 0:r.onSwitchRole)return null==R||R.forEach((e=>{var r,o;null===(o=null===(r=this._context)||void 0===r?void 0:r.logger)||void 0===o||o.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onSwitchRole",userId:e,role:exports.RCRTCLiveRole.ANCHOR})),this._callAppListener("onSwitchRole",e,exports.RCRTCLiveRole.ANCHOR)})),null==p||p.forEach((e=>{var r,o;null===(o=null===(r=this._context)||void 0===r?void 0:r.logger)||void 0===o||o.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onSwitchRole",userId:e,role:exports.RCRTCLiveRole.AUDIENCE})),this._callAppListener("onSwitchRole",e,exports.RCRTCLiveRole.AUDIENCE)})),h.length>0&&(null===(n=null===(o=this._context)||void 0===o?void 0:o.logger)||void 0===n||n.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onUserJoin",joined:h})),this._callAppListener("onUserJoin",h)),void(u.length>0&&(null===(a=null===(s=this._context)||void 0===s?void 0:s.logger)||void 0===a||a.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onUserLeave",left:u})),this._callAppListener("onUserLeave",u)));const v=[...h,...R],C=[...u,...p];v.length>0&&(null===(c=null===(d=this._context)||void 0===d?void 0:d.logger)||void 0===c||c.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onUserJoin",allJoined:v})),this._callAppListener("onUserJoin",v)),C.length>0&&(C.length&&(null===(l=null===(_=this._context)||void 0===_?void 0:_.logger)||void 0===l||l.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onUserLeave",allLeft:C}))),this._callAppListener("onUserLeave",C))}getRoomId(){return this._roomId}getCrtUserId(){return this._context.getCurrentId()}__getPC(){return this._store.peerMgr.getPCList()}getRemoteUserIds(){return this._store.getRemoteUserIds()}getRemoteTracks(){const e=[];return this.getRemoteUserIds().forEach((t=>{e.push(...this.getRemoteTracksByUserId(t))})),e}getRemoteTracksByUserId(e){return this._store.getRemoteTracksByUserId(e)}getSessionId(){return this._store.getSessionId()}sendMessage(e,n){var s,a,d,c,_,l,u,h;return o(this,void 0,void 0,(function*(){const o=null===(a=null===(s=this._context)||void 0===s?void 0:s.logger)||void 0===a?void 0:a.createTraceId();null===(c=null===(d=this._context)||void 0===d?void 0:d.logger)||void 0===c||c.info(t.L_ABSTRACT_ROOM_SEND_MESSAGE_T,JSON.stringify({name:e,content:n}),o);const{code:R}=yield this._context.sendMessage(r.ConversationType.RTC_ROOM,this._roomId,{messageType:e,content:n,isStatusMessage:!0});return R!==r.ErrorCode.SUCCESS?(null===(l=null===(_=this._context)||void 0===_?void 0:_.logger)||void 0===l||l.error(t.L_ABSTRACT_ROOM_SEND_MESSAGE_R,JSON.stringify({status:i.FAILED,code:R}),o),{code:exports.RCRTCCode.SIGNAL_ERROR}):(null===(h=null===(u=this._context)||void 0===u?void 0:u.logger)||void 0===h||h.info(t.L_ABSTRACT_ROOM_SEND_MESSAGE_R,JSON.stringify({status:i.SUCCESSED,name:e,content:n}),o),{code:exports.RCRTCCode.SUCCESS})}))}setRoomAttribute(e,n,s,a=!1){var d,c,_,l,u,h,R,p;return o(this,void 0,void 0,(function*(){const o=null===(c=null===(d=this._context)||void 0===d?void 0:d.logger)||void 0===c?void 0:c.createTraceId();null===(l=null===(_=this._context)||void 0===_?void 0:_.logger)||void 0===l||l.info(t.L_ABSTRACT_ROOM_SET_ROOM_ATTRIBUTE_T,JSON.stringify({roomId:this._roomId,key:e,value:n,message:s,isInner:a}),o);const v=yield this._context.setRTCData(this._roomId,e,n,a,an.ROOM,s);return v!==r.ErrorCode.SUCCESS?(null===(h=null===(u=this._context)||void 0===u?void 0:u.logger)||void 0===h||h.error(t.L_ABSTRACT_ROOM_SET_ROOM_ATTRIBUTE_R,JSON.stringify({status:i.FAILED,code:v}),o),{code:exports.RCRTCCode.SIGNAL_ERROR}):(null===(p=null===(R=this._context)||void 0===R?void 0:R.logger)||void 0===p||p.info(t.L_ABSTRACT_ROOM_SET_ROOM_ATTRIBUTE_R,JSON.stringify({status:i.SUCCESSED,roomId:this._roomId,key:e,value:n,message:s,isInner:a}),o),{code:exports.RCRTCCode.SUCCESS})}))}deleteRoomAttributes(e,n,s=!1){var a,d,c,_,l,u,h,R;return o(this,void 0,void 0,(function*(){const o=null===(d=null===(a=this._context)||void 0===a?void 0:a.logger)||void 0===d?void 0:d.createTraceId();null===(_=null===(c=this._context)||void 0===c?void 0:c.logger)||void 0===_||_.info(t.L_ABSTRACT_ROOM_DELETE_ROOM_ATTRIBUTE_T,JSON.stringify({roomId:this._roomId,keys:e,message:n,isInner:s}),o);const p=yield this._context.removeRTCData(this._roomId,e,s,an.ROOM,n);return p!==r.ErrorCode.SUCCESS?(null===(u=null===(l=this._context)||void 0===l?void 0:l.logger)||void 0===u||u.error(t.L_ABSTRACT_ROOM_DELETE_ROOM_ATTRIBUTE_R,JSON.stringify({status:i.FAILED,code:p}),o),{code:exports.RCRTCCode.SIGNAL_ERROR}):(null===(R=null===(h=this._context)||void 0===h?void 0:h.logger)||void 0===R||R.info(t.L_ABSTRACT_ROOM_DELETE_ROOM_ATTRIBUTE_R,JSON.stringify({status:i.SUCCESSED,roomId:this._roomId,keys:e,message:n,isInner:s}),o),{code:exports.RCRTCCode.SUCCESS})}))}getRoomAttributes(e=[],n=!1){var s,a,d,c,_,l,u,h;return o(this,void 0,void 0,(function*(){const o=null===(a=null===(s=this._context)||void 0===s?void 0:s.logger)||void 0===a?void 0:a.createTraceId();null===(c=null===(d=this._context)||void 0===d?void 0:d.logger)||void 0===c||c.info(t.L_ABSTRACT_ROOM_GET_ROOM_ATTRIBUTE_T,JSON.stringify({roomId:this._roomId,keys:e,isInner:n}),o);const{code:R,data:p}=yield this._context.getRTCData(this._roomId,e,n,an.ROOM);return R!==r.ErrorCode.SUCCESS?(null===(l=null===(_=this._context)||void 0===_?void 0:_.logger)||void 0===l||l.error(t.L_ABSTRACT_ROOM_GET_ROOM_ATTRIBUTE_R,`GetRoomAttributes Failed: ${R}`,o),{code:exports.RCRTCCode.SIGNAL_ERROR}):(null===(h=null===(u=this._context)||void 0===u?void 0:u.logger)||void 0===h||h.info(t.L_ABSTRACT_ROOM_DELETE_ROOM_ATTRIBUTE_R,JSON.stringify({status:i.SUCCESSED,data:p}),o),{code:exports.RCRTCCode.SUCCESS,data:p})}))}_setUserAttributeValue(e,t,i){return this._context.setRTCData(this._roomId,e,t,!1,an.PERSON,i)}_deleteUserAttributes(e,t){return this._context.removeRTCData(this._roomId,e,!1,an.PERSON,t)}_getUserAttributes(e){return this._context.getRTCData(this._roomId,e,!1,an.PERSON)}isDestroyed(){return this._invoker.isDestroyed()}__destroy(e){return this._leaveHandle(e)}_muteRemoteTracksBeforeQuit(){const e=Object.values(this._store.getRemoteTracks());e.length&&e.forEach((e=>e.mute()))}_leaveHandle(e){var t;return o(this,void 0,void 0,(function*(){if(this._invoker.isDestroyed())return;mo.destroy(),this._invoker.destroy(),this._muteRemoteTracksBeforeQuit(),this._muteRemoteTracksBeforeQuit(),null===(t=this._audioLevelReport)||void 0===t||t.clearAudioLevelReportTimer(),e&&(yield this._context.quitRTCRoom(this._roomId)),this._store.isMainRoom&&(yield this._quitAllPKRoom()),this._pinger.stop();const i=[];Object.keys(this._peerCManager.getMutilPeerCData()).forEach((e=>{i.push(this._service.exit(this._getRTCReqestHeaders(e)))})),yield Promise.all(i),this._releasePCManager(),this._polarisReport=null}))}_releasePCManager(){const e=this._peerCManager.getPCList();null==e||e.forEach((e=>{e.off(we.__INNER_EVENT_MUTED_CHANGE__,this._onLocalTrackMuted,this),e.off(we.__INNER_EVENT_DESTROY__,this._onLocalTrackDestroied,this)})),this._peerCManager.clear(),this._peerCManager=null}_onLocalTrackDestroied(e){e instanceof Ve&&e.__isTiny()||this.unpublish([e])}_onLocalTrackMuted(e,t){return o(this,void 0,void 0,(function*(){this._invoker.push(new Xn(e,t))}))}publish(e){return o(this,void 0,void 0,(function*(){return this._invoker.push(new Zn(e,this._pubhook.bind(this),this.signalRetryTime))}))}_getPushOtherRoomsParams(){return[]}_reTryExchange(e,t){return o(this,void 0,void 0,(function*(){this._invoker.push(new es(e,t,(e=>({pushOtherRooms:this._getPushOtherRoomsParams(),headers:this._getRTCReqestHeaders(e)}))))}))}_getRTCReqestHeaders(e){return{"App-Key":this._context.getAppkey(),RoomId:this._roomId,Token:this._store.getToken(),RoomType:this._store.roomMode,UserId:this._context.getCurrentId(),"Client-Session-Id":this._clientSessionId,"Peer-Connection-Id":e}}unpublish(e){return o(this,void 0,void 0,(function*(){return this._invoker.push(new Qn(e,((e,t)=>({pushOtherRooms:this._getPushOtherRoomsParams(),headers:this._getRTCReqestHeaders(t)}))))}))}_getResourceById(e){return this._store.getPublishedResourceByTrackId(e)}_isValidResourceId(e){var t;const{userId:i}=ot(e);return!!(null===(t=this._store.getResourcesByUserId(i))||void 0===t?void 0:t.find((t=>rt(t)===e)))}_subhook(e){const{pc:t,pcName:i}=this._peerCManager.createPeerCList(e)[0];return t.on(Sn.__INNER_EVENT_TRACK_READY__,this._onTrackReady,this),t.__reportR3R4ToPolaris(),t.registerReportListener(this._reportListener),t.clearReTryExchangeTimer(),{pc:t,pushOtherRooms:this._getPushOtherRoomsParams(),headers:this._getRTCReqestHeaders(i)}}_pubhook(e){return{plist:this._peerCManager.createPeerCList(e).map((e=>{const{pc:t,pcName:i}=e;return t.on(we.__INNER_EVENT_MUTED_CHANGE__,this._onLocalTrackMuted,this),t.on(we.__INNER_EVENT_DESTROY__,this._onLocalTrackDestroied,this),t.registerReportListener(this._reportListener),t.__reportR3R4ToPolaris(),Object.assign(Object.assign({},e),{headers:this._getRTCReqestHeaders(i)})})),pushOtherRooms:this._getPushOtherRoomsParams()}}subscribe(e){return o(this,void 0,void 0,(function*(){return this._invoker.push(new Wn(e,this._subhook.bind(this)))}))}addSubscribeTask(e){this._invoker.push(new rs(e,this._subhook.bind(this),{onTaskCompleted:this._onTaskCompleted.bind(this)}))}unsubscribe(e){var i,r;return o(this,void 0,void 0,(function*(){const o=null===(i=this._context.logger)||void 0===i?void 0:i.createTraceId();return null===(r=this._context.logger)||void 0===r||r.info(t.L_APP_CALL_UNSUBSCRIBE_O,void 0,o),this._invoker.push(new wn(e,this._subhook.bind(this),o))}))}addUnsubscribeTask(e){this._invoker.push(new os(e,this._subhook.bind(this),{onTaskCompleted:this._onTaskCompleted.bind(this)}))}updateSubList(e){var t,i;return o(this,void 0,void 0,(function*(){return this._invoker.push(new Mn(e,this._subhook.bind(this),!0,null===(i=null===(t=this._context)||void 0===t?void 0:t.logger)||void 0===i?void 0:i.createTraceId()))}))}addUpdateSubscribeListTask(e){var t;const i=null===(t=this._context.logger)||void 0===t?void 0:t.createTraceId();this._invoker.push(new is(e,this._subhook.bind(this),{onTaskCompleted:this._onTaskCompleted.bind(this)},rn.NORMAL,i))}_onTaskCompleted(e){var r,o;null===(o=null===(r=this._context)||void 0===r?void 0:r.logger)||void 0===o||o.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onTaskCompleted",code:e.code,subscribe:e.subscribe,unsubscribe:e.unsubscribe,failedList:e.failedList})),this._callAppListener("onTaskCompleted",e.code,e.subscribe,e.unsubscribe,e.failedList)}getLocalTrack(e){return this._store.getLocalTrack(e)}getLocalTracks(){return this._store.getLocalTracks()}getRemoteTrack(e){return this._store.getRemoteTrack(e)||null}get subscribedTracks(){return this._store.getSubscribedList().slice()}registerRoomEventListener(e){var r,o;null===(o=null===(r=this._context)||void 0===r?void 0:r.logger)||void 0===o||o.info(t.L_ABSTRACT_ROOM_REGISTER_ROOM_EVENT_LISTENER_O,JSON.stringify({status:i.SUCCESSED,listener:e&&Object.keys(e)})),this._appListener=e,(null==e?void 0:e.onTrackTrouble)&&this._peerCManager&&(this._peerCManager.onTrackTrouble=null==e?void 0:e.onTrackTrouble.bind(this))}registerReportListener(e){var r,o;null===(o=null===(r=this._context)||void 0===r?void 0:r.logger)||void 0===o||o.info(t.L_ABSTRACT_ROOM_REGISTER_REPORT_LISTENER_O,JSON.stringify({status:i.SUCCESSED,listener:e&&Object.keys(e)})),this._reportListener=e}onAudioLevelChange(e,r){var o,n,s;null===(n=null===(o=this._context)||void 0===o?void 0:o.logger)||void 0===n||n.info(t.L_ABSTRACT_ROOM_AUDIO_LEVEL_O,JSON.stringify({status:i.SUCCESSED,handler:null==e?void 0:e.name,gap:r})),null===(s=this._audioLevelReport)||void 0===s||s.clearAudioLevelReportTimer(),this._audioLevelReport=new On(this),this._audioLevelReport.onAudioLevelChange(e,r||1e3)}__onReconnected(e){return o(this,void 0,void 0,(function*(){return this._invoker.push(new ts(this._subhook.bind(this),{onPeerClosed:this._rtcpeerClosed.bind(this),onAudioMuteChange:this._onAudioMuteChange.bind(this),onVideoMuteChange:this._onVideoMuteChange.bind(this),onUserJoin:this._callAppListener.bind(this,"onUserJoin"),onUserLeave:this._callAppListener.bind(this,"onUserLeave"),onTrackPublish:this._onTrackPublish.bind(this),onTrackUnpublish:this._onTrackUnpublish.bind(this),onCDNEnableChange:this._callAppListener.bind(this,"onCDNEnableChange")},e))}))}_onAudioMuteChange(e){var r,o;null===(o=null===(r=this._context)||void 0===r?void 0:r.logger)||void 0===o||o.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onAudioMuteChange",trackId:e.getTrackId()})),this._callAppListener("onAudioMuteChange",e)}_onVideoMuteChange(e){var r,o;null===(o=null===(r=this._context)||void 0===r?void 0:r.logger)||void 0===o||o.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onVideoMuteChange",trackId:e.getTrackId()})),this._callAppListener("onVideoMuteChange",e)}_registerPKMsgListener(e){this._onRecvPKMsg=e}_quitAllPKRoom(){}getClientSessionId(){return this._clientSessionId}}class cs extends An{constructor(e,t){super(),this.data=e,this.cdnValues=t}execute(e,t){var i,r,n,s;return o(this,void 0,void 0,(function*(){const t={"App-Key":e.context.getAppkey(),Token:e.getToken(),RoomId:e.roomId,UserId:e.context.getCurrentId(),SessionId:e.getSessionId()},{code:o,res:a}=yield e.service.setMcuConfig(t,this.data);if(o!==exports.RCRTCCode.SUCCESS)return{code:o};a.pull_url&&e.setCDNUris(JSON.parse(a.pull_url));const d=this.cdnValues;return o===exports.RCRTCCode.SUCCESS&&((null===(r=null===(i=d.output)||void 0===i?void 0:i.video.normal)||void 0===r?void 0:r.width)||(null===(s=null===(n=d.output)||void 0===n?void 0:n.video.normal)||void 0===s?void 0:s.fps))&&Gn(e),{code:o,res:a}}))}}var _s,ls,us,hs;exports.BackgroundPictureFillMode=void 0,(_s=exports.BackgroundPictureFillMode||(exports.BackgroundPictureFillMode={}))[_s.CROP=1]="CROP",_s[_s.WHOLE=2]="WHOLE",exports.MixLayoutMode=void 0,(ls=exports.MixLayoutMode||(exports.MixLayoutMode={}))[ls.CUSTOMIZE=1]="CUSTOMIZE",ls[ls.SUSPENSION=2]="SUSPENSION",ls[ls.ADAPTATION=3]="ADAPTATION",exports.MixVideoRenderMode=void 0,(us=exports.MixVideoRenderMode||(exports.MixVideoRenderMode={}))[us.CROP=1]="CROP",us[us.WHOLE=2]="WHOLE",function(e){e[e.AUDIO_VIDEO_ALL=0]="AUDIO_VIDEO_ALL",e[e.AUDIO_VIDEO_NO=1]="AUDIO_VIDEO_NO",e[e.AUDIO_ALL_VIDEO_NO=2]="AUDIO_ALL_VIDEO_NO",e[e.AUDIO_NO_VIDEO_ALL=3]="AUDIO_NO_VIDEO_ALL",e[e.AUDIO_VIDEO_INPUT=4]="AUDIO_VIDEO_INPUT",e[e.AUDIO_ALL_VIDEO_INPUT=5]="AUDIO_ALL_VIDEO_INPUT",e[e.AUDIO_NO_VIDEO_INPUT=6]="AUDIO_NO_VIDEO_INPUT",e[e.AUDIO_INPUT_VIDEO_ALL=7]="AUDIO_INPUT_VIDEO_ALL",e[e.AUDIO_INPUT_VIDEO_NO=8]="AUDIO_INPUT_VIDEO_NO",e[e.ROOM_AUDIO_VIDEO_APPEND=9]="ROOM_AUDIO_VIDEO_APPEND",e[e.ROOM_AUDIO_VIDEO_NOT_APPEND=10]="ROOM_AUDIO_VIDEO_NOT_APPEND",e[e.ROOM_AUDIO_APPEND=11]="ROOM_AUDIO_APPEND",e[e.ROOM_AUDIO_NOT_APPEND=12]="ROOM_AUDIO_NOT_APPEND",e[e.ROOM_VIDEO_APPEND=13]="ROOM_VIDEO_APPEND",e[e.ROOM_VIDEO_NOT_APPEND=14]="ROOM_VIDEO_NOT_APPEND"}(hs||(hs={}));const Rs=()=>({version:2,mode:exports.MixLayoutMode.SUSPENSION});class ps{constructor(e,t){this._invoker=e,this._isValidTrackId=t,this._values=Rs()}setHostVideoTrack(e){var r,o,n,s,a,d,c,_,l;if(!this._isValidTrackId(e))return null===(n=null===(o=null===(r=this._invoker.store)||void 0===r?void 0:r.context)||void 0===o?void 0:o.logger)||void 0===n||n.error(t.L_MCU_CONFIG_BUILDER_SET_HOST_VIDEO_TRACK_O,JSON.stringify({status:i.FAILED,msg:`videoTrackId: ${e} is invalid`})),this;const{mediaType:u,tag:h,userId:R}=ot(e);return u!==exports.RCMediaType.VIDEO_ONLY?(null===(d=null===(a=null===(s=this._invoker.store)||void 0===s?void 0:s.context)||void 0===a?void 0:a.logger)||void 0===d||d.error(t.L_MCU_CONFIG_BUILDER_SET_HOST_VIDEO_TRACK_O,JSON.stringify({status:i.FAILED,msg:`kind of ${e} is not video`})),this):(this._values.host_stream_id=nt(R,h),null===(l=null===(_=null===(c=this._invoker.store)||void 0===c?void 0:c.context)||void 0===_?void 0:_.logger)||void 0===l||l.info(t.L_MCU_CONFIG_BUILDER_SET_HOST_VIDEO_TRACK_O,JSON.stringify({status:i.SUCCESSED,videoTrackId:e})),this)}setMixLayoutMode(e){var r,o,n,s,a,d;return[exports.MixLayoutMode.CUSTOMIZE,exports.MixLayoutMode.SUSPENSION,exports.MixLayoutMode.ADAPTATION].includes(e)?(this._values.mode=e,null===(d=null===(a=null===(s=this._invoker.store)||void 0===s?void 0:s.context)||void 0===a?void 0:a.logger)||void 0===d||d.info(t.L_MCU_CONFIG_BUILDER_SET_MIX_LAYOUT_MODE_O,JSON.stringify({status:i.SUCCESSED,mode:e})),this):(null===(n=null===(o=null===(r=this._invoker.store)||void 0===r?void 0:r.context)||void 0===o?void 0:o.logger)||void 0===n||n.error(t.L_MCU_CONFIG_BUILDER_SET_MIX_LAYOUT_MODE_O,JSON.stringify({status:i.SUCCESSED,msg:`mode: ${e} is invalid`})),this)}_addOutputValue(e,t,i="normal"){const r=this._values.output||(this._values.output={video:{normal:{width:640,height:480}}});if("cdn"===e)return void(r.cdn=t);if("audio"===e)return void(r.audio={bitrate:t});const{video:o}=r;if("normal"!==i&&"tiny"!==i)if("backgroundColor"!==i)if("exparams"!==i){if("backgroundPicture"===i){const e=o.backgroundPicture||(o.backgroundPicture={fillMode:exports.BackgroundPictureFillMode.CROP,picture:[]});Object.assign(e,t)}}else o.exparams={renderMode:t};else o.backgroundColor=t;else{const e=o[i]||(o[i]={});Object.assign(e,t)}}setOutputVideoResolution(e){var r,o,n,s,a,d;if(!_t(e))return null===(n=null===(o=null===(r=this._invoker.store)||void 0===r?void 0:r.context)||void 0===o?void 0:o.logger)||void 0===n||n.error(t.L_MCU_CONFIG_BUILDER_SET_OUTPUT_VIDEO_RESOLUTION_O,JSON.stringify({status:i.FAILED,msg:`params error -> resolution: ${e}`})),this;const{width:c,height:_}=ct(e);return this._addOutputValue("video",{width:c,height:_},"normal"),null===(d=null===(a=null===(s=this._invoker.store)||void 0===s?void 0:s.context)||void 0===a?void 0:a.logger)||void 0===d||d.info(t.L_MCU_CONFIG_BUILDER_SET_OUTPUT_VIDEO_RESOLUTION_O,JSON.stringify({status:i.SUCCESSED,resolution:e})),this}setOutputVideoFPS(e){var r,o,n,s,a,d;if(!lt(e))return null===(n=null===(o=null===(r=this._invoker.store)||void 0===r?void 0:r.context)||void 0===o?void 0:o.logger)||void 0===n||n.error(t.L_MCU_CONFIG_BUILDER_SET_OUTPUT_VIDEO_FPS_O,JSON.stringify({status:i.FAILED,msg:`params error -> fps: ${e}`})),this;const c=ut(e);return this._addOutputValue("video",{fps:c},"normal"),null===(d=null===(a=null===(s=this._invoker.store)||void 0===s?void 0:s.context)||void 0===a?void 0:a.logger)||void 0===d||d.info(t.L_MCU_CONFIG_BUILDER_SET_OUTPUT_VIDEO_FPS_O,JSON.stringify({status:i.SUCCESSED,fps:e})),this}setOutputVideoBitrate(e){var o,n,s,a,d,c;return!r.isNumber(e)||e<=0?(null===(s=null===(n=null===(o=this._invoker.store)||void 0===o?void 0:o.context)||void 0===n?void 0:n.logger)||void 0===s||s.error(t.L_MCU_CONFIG_BUILDER_SET_OUTPUT_VIDEO_BITRATE_O,JSON.stringify({status:i.FAILED,msg:`params error -> bitrate: ${e}`})),this):(this._addOutputValue("video",{bitrate:e},"normal"),null===(c=null===(d=null===(a=this._invoker.store)||void 0===a?void 0:a.context)||void 0===d?void 0:d.logger)||void 0===c||c.info(t.L_MCU_CONFIG_BUILDER_SET_OUTPUT_VIDEO_BITRATE_O,JSON.stringify({status:i.SUCCESSED,bitrate:e})),this)}setOutputTinyVideoResolution(e){var r,o,n,s,a,d;if(!_t(e))return null===(n=null===(o=null===(r=this._invoker.store)||void 0===r?void 0:r.context)||void 0===o?void 0:o.logger)||void 0===n||n.error(t.L_MCU_CONFIG_BUILDER_SET_OUTPUT_TINY_VIDEO_RESOLUTION_O,JSON.stringify({status:i.FAILED,msg:`params error -> resolution: ${e}`})),this;const{width:c,height:_}=ct(e);return this._addOutputValue("video",{width:c,height:_},"tiny"),null===(d=null===(a=null===(s=this._invoker.store)||void 0===s?void 0:s.context)||void 0===a?void 0:a.logger)||void 0===d||d.info(t.L_MCU_CONFIG_BUILDER_SET_OUTPUT_TINY_VIDEO_RESOLUTION_O,JSON.stringify({status:i.SUCCESSED,resolution:e})),this}setOutputTinyVideoFPS(e){var r,o,n,s,a,d;if(!lt(e))return null===(n=null===(o=null===(r=this._invoker.store)||void 0===r?void 0:r.context)||void 0===o?void 0:o.logger)||void 0===n||n.error(t.L_MCU_CONFIG_BUILDER_SET_OUTPUT_TINY_VIDEO_FPS_O,JSON.stringify({status:i.FAILED,msg:`params error -> fps: ${e}`})),this;const c=ut(e);return this._addOutputValue("video",{fps:c},"tiny"),null===(d=null===(a=null===(s=this._invoker.store)||void 0===s?void 0:s.context)||void 0===a?void 0:a.logger)||void 0===d||d.info(t.L_MCU_CONFIG_BUILDER_SET_OUTPUT_TINY_VIDEO_FPS_O,JSON.stringify({status:i.SUCCESSED,fps:e})),this}setOutputTinyVideoBitrate(e){var o,n,s,a,d,c;return!r.isNumber(e)||e<=0?(null===(s=null===(n=null===(o=this._invoker.store)||void 0===o?void 0:o.context)||void 0===n?void 0:n.logger)||void 0===s||s.error(t.L_MCU_CONFIG_BUILDER_SET_OUTPUT_TINY_VIDEO_BITRATE_O,JSON.stringify({status:i.FAILED,msg:`params error -> bitrate: ${e}`})),this):(this._addOutputValue("video",{bitrate:e},"tiny"),null===(c=null===(d=null===(a=this._invoker.store)||void 0===a?void 0:a.context)||void 0===d?void 0:d.logger)||void 0===c||c.info(t.L_MCU_CONFIG_BUILDER_SET_OUTPUT_TINY_VIDEO_BITRATE_O,JSON.stringify({status:i.SUCCESSED,bitrate:e})),this)}setOutputVideoRenderMode(e){var r,o,n,s,a,d;return[exports.MixVideoRenderMode.CROP,exports.MixVideoRenderMode.WHOLE].includes(e)?(this._addOutputValue("video",e,"exparams"),null===(d=null===(a=null===(s=this._invoker.store)||void 0===s?void 0:s.context)||void 0===a?void 0:a.logger)||void 0===d||d.info(t.L_MCU_CONFIG_BUILDER_SET_OUTPUT_VIDEO_RENDER_MODE_O,JSON.stringify({status:i.SUCCESSED,renderMode:e})),this):(null===(n=null===(o=null===(r=this._invoker.store)||void 0===r?void 0:r.context)||void 0===o?void 0:o.logger)||void 0===n||n.error(t.L_MCU_CONFIG_BUILDER_SET_OUTPUT_VIDEO_RENDER_MODE_O,JSON.stringify({status:i.FAILED,msg:`params error -> renderMode: ${e}`})),this)}setOutputAudioBitrate(e){var o,n,s,a,d,c;return r.isNumber(e)&&e>0?(this._addOutputValue("audio",e),null===(s=null===(n=null===(o=this._invoker.store)||void 0===o?void 0:o.context)||void 0===n?void 0:n.logger)||void 0===s||s.info(t.L_MCU_CONFIG_BUILDER_SET_OUTPUT_AUDIO_BITRATE_O,JSON.stringify({status:i.SUCCESSED,bitrate:e})),this):(null===(c=null===(d=null===(a=this._invoker.store)||void 0===a?void 0:a.context)||void 0===d?void 0:d.logger)||void 0===c||c.error(t.L_MCU_CONFIG_BUILDER_SET_OUTPUT_AUDIO_BITRATE_O,JSON.stringify({status:i.FAILED,msg:`params error -> bitrate: ${e}`})),this)}setOutputBackgroundColor(e){var r,o,n,s,a,d;return/^0x[a-fA-F0-9]{6}$/.test(e)?(this._addOutputValue("video",e,"backgroundColor"),null===(d=null===(a=null===(s=this._invoker.store)||void 0===s?void 0:s.context)||void 0===a?void 0:a.logger)||void 0===d||d.info(t.L_MCU_CONFIG_BUILDER_SET_OUTPUT_BACKGROUND_COLOR_O,JSON.stringify({status:i.SUCCESSED,color:e})),this):(null===(n=null===(o=null===(r=this._invoker.store)||void 0===r?void 0:r.context)||void 0===o?void 0:o.logger)||void 0===n||n.error(t.L_MCU_CONFIG_BUILDER_SET_OUTPUT_BACKGROUND_COLOR_O,JSON.stringify({status:i.FAILED,msg:`params error -> color: ${e}`})),this)}addOutputBackgroundPicture(e,o,n,s,a){var d,c,_,l,u,h,R,p,v,C,g,m;if(!r.isHttpUrl(e))return null===(_=null===(c=null===(d=this._invoker.store)||void 0===d?void 0:d.context)||void 0===c?void 0:c.logger)||void 0===_||_.error(t.L_MCU_CONFIG_BUILDER_SET_OUTPUT_BACKGROUND_PICTURE_O,JSON.stringify({status:i.FAILED,msg:`params error -> uri: ${e}`})),this;if([o,n,s,a].some((e=>!r.isNumber(e)||e<0||e>1)))return null===(h=null===(u=null===(l=this._invoker.store)||void 0===l?void 0:l.context)||void 0===u?void 0:u.logger)||void 0===h||h.error(t.L_MCU_CONFIG_BUILDER_SET_OUTPUT_BACKGROUND_PICTURE_O,JSON.stringify({status:i.FAILED,msg:`params of (x, y, w, h) error -> x: ${o}, y: ${n}, w: ${s}, h: ${a}`})),this;const T=(null===(v=null===(p=null===(R=this._values.output)||void 0===R?void 0:R.video)||void 0===p?void 0:p.backgroundPicture)||void 0===v?void 0:v.picture)||[];return T.push({uri:e,w:s,h:a,x:o,y:n}),this._addOutputValue("video",{picture:T},"backgroundPicture"),null===(m=null===(g=null===(C=this._invoker.store)||void 0===C?void 0:C.context)||void 0===g?void 0:g.logger)||void 0===m||m.info(t.L_MCU_CONFIG_BUILDER_SET_OUTPUT_BACKGROUND_PICTURE_O,JSON.stringify({status:i.SUCCESSED,uri:e,x:o,y:n,w:s,h:a})),this}removeOutputBackgroundPicture(e){var o,n,s,a,d,c,_,l,u;if(!r.isHttpUrl(e))return null===(s=null===(n=null===(o=this._invoker.store)||void 0===o?void 0:o.context)||void 0===n?void 0:n.logger)||void 0===s||s.error(t.L_MCU_CONFIG_BUILDER_REMOVE_OUTPUT_BACKGROUND_PICTURE_O,JSON.stringify({status:i.FAILED,msg:`params error -> uri: ${e}`})),this;let h=null===(c=null===(d=null===(a=this._values.output)||void 0===a?void 0:a.video)||void 0===d?void 0:d.backgroundPicture)||void 0===c?void 0:c.picture;return h&&(h=h.filter((t=>t.uri!==e)),this._addOutputValue("video",{pictures:h},"backgroundPicture")),null===(u=null===(l=null===(_=this._invoker.store)||void 0===_?void 0:_.context)||void 0===l?void 0:l.logger)||void 0===u||u.info(t.L_MCU_CONFIG_BUILDER_REMOVE_OUTPUT_BACKGROUND_PICTURE_O,JSON.stringify({status:i.SUCCESSED,uri:e})),this}clearOutputBackgroundPicture(){var e,i,r;return this._addOutputValue("video",{pictures:[]},"backgroundPicture"),null===(r=null===(i=null===(e=this._invoker.store)||void 0===e?void 0:e.context)||void 0===i?void 0:i.logger)||void 0===r||r.info(t.L_MCU_CONFIG_BUILDER_CLEAR_OUTPUT_BACKGROUND_PICTURE_O),this}setOutputBackgroundPictureFillMode(e){var r,o,n,s,a,d;return[exports.BackgroundPictureFillMode.CROP,exports.BackgroundPictureFillMode.WHOLE].includes(e)?(this._addOutputValue("video",{fillMode:e},"backgroundPicture"),null===(d=null===(a=null===(s=this._invoker.store)||void 0===s?void 0:s.context)||void 0===a?void 0:a.logger)||void 0===d||d.info(t.L_MCU_CONFIG_BUILDER_SET_OUTPUT_BACKGROUND_PICTURE_FILL_MODE_O,JSON.stringify({status:i.SUCCESSED,fillMode:e})),this):(null===(n=null===(o=null===(r=this._invoker.store)||void 0===r?void 0:r.context)||void 0===o?void 0:o.logger)||void 0===n||n.error(t.L_MCU_CONFIG_BUILDER_SET_OUTPUT_BACKGROUND_PICTURE_FILL_MODE_O,JSON.stringify({status:i.FAILED,msg:`params error -> fillMode: ${e}`})),this)}addPublishStreamUrls(e){var o,n,s,a,d,c,_,l,u,h,R;const p=/^rtmp:\/\/.+/;if(!r.isArray(e)||0===e.length||e.some((e=>!p.test(e))))return null===(s=null===(n=null===(o=this._invoker.store)||void 0===o?void 0:o.context)||void 0===n?void 0:n.logger)||void 0===s||s.error(t.L_MCU_CONFIG_BUILDER_SET_OUTPUT_BACKGROUND_PICTURE_FILL_MODE_O,JSON.stringify({status:i.FAILED,msg:`params error -> urls: ${e.join(",")}`})),this;const v=(null===(d=null===(a=this._values.output)||void 0===a?void 0:a.cdn)||void 0===d?void 0:d.concat())||[];let C=!1;return e.forEach((e=>{v.some((t=>t.pushurl===e))||(C=!0,v.push({pushurl:e}))})),v.length>5?(null===(l=null===(_=null===(c=this._invoker.store)||void 0===c?void 0:c.context)||void 0===_?void 0:_.logger)||void 0===l||l.error(t.L_MCU_CONFIG_BUILDER_SET_OUTPUT_BACKGROUND_PICTURE_FILL_MODE_O,JSON.stringify({status:i.FAILED,msg:`params error -> publish stream urls no more than 5, length: ${e.length}`})),this):(C&&this._addOutputValue("cdn",v),null===(R=null===(h=null===(u=this._invoker.store)||void 0===u?void 0:u.context)||void 0===h?void 0:h.logger)||void 0===R||R.info(t.L_MCU_CONFIG_BUILDER_ADD_PUBLISH_STREAM_URLS_O,JSON.stringify({status:i.SUCCESSED,urls:e})),this)}removePublishStreamUrls(e){var o,n,s,a,d,c,_,l;const u=/^rtmp:\/\/.+/;if(!r.isArray(e)||0===e.length||e.some((e=>!u.test(e))))return null===(s=null===(n=null===(o=this._invoker.store)||void 0===o?void 0:o.context)||void 0===n?void 0:n.logger)||void 0===s||s.error(t.L_MCU_CONFIG_BUILDER_REMOVE_PUBLISH_STREAM_URLS_O,JSON.stringify({status:i.FAILED,msg:`params error -> urls: ${e.join(",")}`})),this;const h=(null===(d=null===(a=this._values.output)||void 0===a?void 0:a.cdn)||void 0===d?void 0:d.concat())||[];for(let t=h.length-1;t>=0;t-=1){const{pushurl:i}=h[t],r=e.indexOf(i);r>=0&&(e.splice(r,1),h.splice(t,1))}return this._addOutputValue("cdn",h),null===(l=null===(_=null===(c=this._invoker.store)||void 0===c?void 0:c.context)||void 0===_?void 0:_.logger)||void 0===l||l.info(t.L_MCU_CONFIG_BUILDER_REMOVE_PUBLISH_STREAM_URLS_O,JSON.stringify({status:i.SUCCESSED,urls:e})),this}clearPublishStreamUrls(){var e,i,r;return this._addOutputValue("cdn",[]),null===(r=null===(i=null===(e=this._invoker.store)||void 0===e?void 0:e.context)||void 0===i?void 0:i.logger)||void 0===r||r.info(t.L_MCU_CONFIG_BUILDER_CLEAR_PUBLISH_STREAM_URLS_O),this}addCustomizeLayoutVideo(e,o,n,s,a){var d,c,_,l,u,h,R,p,v,C,g,m,T,I,S,E,f,O;if(!r.notEmptyString(e)||!this._isValidTrackId(e))return null===(_=null===(c=null===(d=this._invoker.store)||void 0===d?void 0:d.context)||void 0===c?void 0:c.logger)||void 0===_||_.error(t.L_MCU_CONFIG_BUILDER_ADD_CUSTOMIZE_LAYOUT_VIDEO_O,JSON.stringify({status:i.FAILED,msg:`params error -> trackId: ${e}`})),this;if(!r.isNumber(o)||!r.isNumber(n))return null===(h=null===(u=null===(l=this._invoker.store)||void 0===l?void 0:l.context)||void 0===u?void 0:u.logger)||void 0===h||h.error(t.L_MCU_CONFIG_BUILDER_ADD_CUSTOMIZE_LAYOUT_VIDEO_O,JSON.stringify({status:i.FAILED,msg:`params x or y is error -> x: ${o}, y: ${n}`})),this;if([s,a].some((e=>!r.isNumber(e)||e<0)))return null===(v=null===(p=null===(R=this._invoker.store)||void 0===R?void 0:R.context)||void 0===p?void 0:p.logger)||void 0===v||v.error(t.L_MCU_CONFIG_BUILDER_ADD_CUSTOMIZE_LAYOUT_VIDEO_O,JSON.stringify({status:i.FAILED,msg:`params width or height error -> width: ${s}, height: ${a}`})),this;const{userId:L,tag:A,mediaType:N}=ot(e);if(N!==exports.RCMediaType.VIDEO_ONLY)return null===(m=null===(g=null===(C=this._invoker.store)||void 0===C?void 0:C.context)||void 0===g?void 0:g.logger)||void 0===m||m.error(t.L_MCU_CONFIG_BUILDER_ADD_CUSTOMIZE_LAYOUT_VIDEO_O,JSON.stringify({status:i.FAILED,msg:`type of trackId: ${e} is not video`})),this;const y=nt(L,A),D=this._values.input||(this._values.input={}),k=D.video||(D.video=[]);return k.some((e=>e.height===a&&e.width===s&&e.stream_id===y&&e.user_id===L&&e.x===o&&e.y===n))?(null===(S=null===(I=null===(T=this._invoker.store)||void 0===T?void 0:T.context)||void 0===I?void 0:I.logger)||void 0===S||S.warn(t.L_MCU_CONFIG_BUILDER_ADD_CUSTOMIZE_LAYOUT_VIDEO_O,JSON.stringify({status:i.FAILED,msg:"Duplicate configuration item place ignored"})),this):(k.push({user_id:L,stream_id:y,x:o,y:n,width:s,height:a}),null===(O=null===(f=null===(E=this._invoker.store)||void 0===E?void 0:E.context)||void 0===f?void 0:f.logger)||void 0===O||O.info(t.L_MCU_CONFIG_BUILDER_ADD_CUSTOMIZE_LAYOUT_VIDEO_O,JSON.stringify({status:i.SUCCESSED,trackId:e,x:o,y:n,width:s,height:a})),this)}removeCustomizeLayoutVideo(e){var r,o,n,s,a,d,c,_,l;if(!this._isValidTrackId(e))return null===(n=null===(o=null===(r=this._invoker.store)||void 0===r?void 0:r.context)||void 0===o?void 0:o.logger)||void 0===n||n.error(t.L_MCU_CONFIG_BUILDER_REMOVE_CUSTOMIZE_LAYOUT_VIDEO_O,JSON.stringify({status:i.FAILED,msg:`params error -> trackId: ${e}`})),this;const{userId:u,tag:h,mediaType:R}=ot(e);if(R!==exports.RCMediaType.VIDEO_ONLY)return null===(d=null===(a=null===(s=this._invoker.store)||void 0===s?void 0:s.context)||void 0===a?void 0:a.logger)||void 0===d||d.error(t.L_MCU_CONFIG_BUILDER_REMOVE_CUSTOMIZE_LAYOUT_VIDEO_O,JSON.stringify({status:i.FAILED,msg:`type of trackId: ${e} is not video`})),this;const p=nt(u,h),{input:v}=this._values;return(null==v?void 0:v.video)&&v.video.length>0&&(v.video=v.video.filter((e=>e.stream_id===p))),null===(l=null===(_=null===(c=this._invoker.store)||void 0===c?void 0:c.context)||void 0===_?void 0:_.logger)||void 0===l||l.info(t.L_MCU_CONFIG_BUILDER_REMOVE_CUSTOMIZE_LAYOUT_VIDEO_O,JSON.stringify({status:i.SUCCESSED,trackId:e})),this}clearCustomizeLayoutVideo(){var e,i,r;const{input:o}=this._values;return null==o||delete o.video,null===(r=null===(i=null===(e=this._invoker.store)||void 0===e?void 0:e.context)||void 0===i?void 0:i.logger)||void 0===r||r.info(t.L_MCU_CONFIG_BUILDER_CLEAR_CUSTOMIZE_LAYOUT_VIDEO_O),this}setCustomizeInputAudio(e){var r,o,n,s,a,d;if(e.some((e=>this._isValidTrackId(e))))return null===(n=null===(o=null===(r=this._invoker.store)||void 0===r?void 0:r.context)||void 0===o?void 0:o.logger)||void 0===n||n.error(t.L_MCU_CONFIG_BUILDER_SET_CUSTOMIZE_INPUT_AUDIO_O,JSON.stringify({status:i.FAILED,msg:`trackIds contain invalid item -> trackIds: ${e.join(",")}`})),this;return(this._values.input||(this._values.input={})).audio=e.map((e=>{const{userId:t,tag:i}=ot(e);return{stream_id:nt(t,i),user_id:t}})),this._values.inputFilterMode=hs.AUDIO_INPUT_VIDEO_ALL,null===(d=null===(a=null===(s=this._invoker.store)||void 0===s?void 0:s.context)||void 0===a?void 0:a.logger)||void 0===d||d.info(t.L_MCU_CONFIG_BUILDER_SET_CUSTOMIZE_INPUT_AUDIO_O,JSON.stringify({status:i.SUCCESSED,trackIds:e})),this}addCustomizeInputAudio(e){var r,o,n,s,a,d,c,_,l;if(!this._isValidTrackId(e))return null===(n=null===(o=null===(r=this._invoker.store)||void 0===r?void 0:r.context)||void 0===o?void 0:o.logger)||void 0===n||n.error(t.L_MCU_CONFIG_BUILDER_ADD_CUSTOMIZE_INPUT_AUDIO_O,JSON.stringify({status:i.FAILED,msg:`params error -> trackId: ${e}`})),this;const u=this._values.input||(this._values.input={}),h=u.audio||(u.audio=[]),{userId:R,tag:p}=ot(e),v=nt(R,p);return h.some((e=>e.stream_id===v&&e.user_id===R))?(null===(d=null===(a=null===(s=this._invoker.store)||void 0===s?void 0:s.context)||void 0===a?void 0:a.logger)||void 0===d||d.warn(t.L_MCU_CONFIG_BUILDER_ADD_CUSTOMIZE_INPUT_AUDIO_O,JSON.stringify({status:i.FAILED,msg:`trackId: ${e} is exist`})),this):(h.push({user_id:R,stream_id:v}),this._values.inputFilterMode=hs.AUDIO_INPUT_VIDEO_ALL,null===(l=null===(_=null===(c=this._invoker.store)||void 0===c?void 0:c.context)||void 0===_?void 0:_.logger)||void 0===l||l.info(t.L_MCU_CONFIG_BUILDER_ADD_CUSTOMIZE_INPUT_AUDIO_O,JSON.stringify({status:i.SUCCESSED,trackId:e})),this)}removeCustomizeInputAudio(e){var r,o,n,s,a,d,c,_,l;if(!this._isValidTrackId(e))return null===(n=null===(o=null===(r=this._invoker.store)||void 0===r?void 0:r.context)||void 0===o?void 0:o.logger)||void 0===n||n.error(t.L_MCU_CONFIG_BUILDER_REMOVE_CUSTOMIZE_INPUT_AUDIO_O,JSON.stringify({status:i.FAILED,msg:`params error -> trackId: ${e}`})),this;const{input:u}=this._values;if(!(null==u?void 0:u.audio)||0===u.audio.length)return null===(d=null===(a=null===(s=this._invoker.store)||void 0===s?void 0:s.context)||void 0===a?void 0:a.logger)||void 0===d||d.error(t.L_MCU_CONFIG_BUILDER_REMOVE_CUSTOMIZE_INPUT_AUDIO_O,JSON.stringify({status:i.FAILED,msg:`type of trackId: ${e} is not audio`})),this;const{userId:h,tag:R}=ot(e),p=nt(h,R);return u.audio=u.audio.filter((e=>h!==e.user_id||p!==e.stream_id)),null===(l=null===(_=null===(c=this._invoker.store)||void 0===c?void 0:c.context)||void 0===_?void 0:_.logger)||void 0===l||l.info(t.L_MCU_CONFIG_BUILDER_REMOVE_CUSTOMIZE_INPUT_AUDIO_O,JSON.stringify({status:i.SUCCESSED,trackId:e})),this}clearCustomizeInputAudio(){var e,i,r;const{input:o}=this._values;return(null==o?void 0:o.audio)&&delete o.audio,this._values.inputFilterMode=hs.AUDIO_VIDEO_ALL,null===(r=null===(i=null===(e=this._invoker.store)||void 0===e?void 0:e.context)||void 0===i?void 0:i.logger)||void 0===r||r.info(t.L_MCU_CONFIG_BUILDER_CLEAR_CUSTOMIZE_INPUT_AUDIO_O),this}addPictureWaterMark(e,o,n,s,a,d){var c,_,l,u,h,R,p,v,C,g,m,T;if(!this._isValidTrackId(e))return null===(l=null===(_=null===(c=this._invoker.store)||void 0===c?void 0:c.context)||void 0===_?void 0:_.logger)||void 0===l||l.error(t.L_MCU_CONFIG_BUILDER_ADD_SINGLE_WATER_MARK_O,JSON.stringify({status:i.FAILED,msg:`params error -> trackId: ${e}`})),this;if(!r.isHttpUrl(o))return null===(R=null===(h=null===(u=this._invoker.store)||void 0===u?void 0:u.context)||void 0===h?void 0:h.logger)||void 0===R||R.error(t.L_MCU_CONFIG_BUILDER_ADD_SINGLE_WATER_MARK_O,JSON.stringify({status:i.FAILED,msg:`params error -> uri: ${o}`})),this;if([n,s,a,d].some((e=>!r.isNumber(e)||e<0||e>1)))return null===(C=null===(v=null===(p=this._invoker.store)||void 0===p?void 0:p.context)||void 0===v?void 0:v.logger)||void 0===C||C.error(t.L_MCU_CONFIG_BUILDER_ADD_SINGLE_WATER_MARK_O,JSON.stringify({status:i.FAILED,msg:`some attrs of (x, y, w, h) is invalid -> x: ${n}, y: ${s}, w: ${a}, h: ${d}`})),this;const{userId:I,tag:S}=ot(e),E=nt(I,S),f=this._values.waterMark||(this._values.waterMark={enable:"on",singleScreen:[]}),{singleScreen:O}=f,L=O.filter((e=>e.streamId===E))[0];return L?L.picture.push({uri:o,w:a,h:d,x:n,y:s}):O.push({streamId:E,picture:[{uri:o,w:a,h:d,x:n,y:s}]}),this._values.waterMark.singleScreen=O,null===(T=null===(m=null===(g=this._invoker.store)||void 0===g?void 0:g.context)||void 0===m?void 0:m.logger)||void 0===T||T.info(t.L_MCU_CONFIG_BUILDER_SET_OUTPUT_BACKGROUND_PICTURE_O,JSON.stringify({status:i.SUCCESSED,trackId:e,uri:o,x:n,y:s,w:a,h:d,singleScreen:O})),this}clearPictureWaterMark(){var e,i,r;return(this._values.waterMark||(this._values.waterMark={enable:"on",singleScreen:[]})).singleScreen=[],null===(r=null===(i=null===(e=this._invoker.store)||void 0===e?void 0:e.context)||void 0===i?void 0:i.logger)||void 0===r||r.info(t.L_MCU_CONFIG_BUILDER_CLEAR_OUTPUT_BACKGROUND_PICTURE_O),this}removePictureWaterMark(e,o){var n,s,a,d,c,_;if(!r.notEmptyString(e)||!this._isValidTrackId(e))return null===(a=null===(s=null===(n=this._invoker.store)||void 0===n?void 0:n.context)||void 0===s?void 0:s.logger)||void 0===a||a.error(t.L_MCU_CONFIG_BUILDER_REMOVE_SINGLE_WATER_MARK_O,JSON.stringify({status:i.FAILED,msg:`params error -> trackId: ${e}`})),this;const{userId:l,tag:u}=ot(e),h=nt(l,u),R=this._values.waterMark||(this._values.waterMark={enable:"on",singleScreen:[]}),{singleScreen:p}=R;return p.forEach((e=>{e.streamId===h&&(e.picture=e.picture.filter((e=>e.uri!==o)))})),null===(_=null===(c=null===(d=this._invoker.store)||void 0===d?void 0:d.context)||void 0===c?void 0:c.logger)||void 0===_||_.info(t.L_MCU_CONFIG_BUILDER_REMOVE_SINGLE_WATER_MARK_O,JSON.stringify({status:i.SUCCESSED,trackId:e,uri:o})),this}reset(){var e,i,r;return this._values=Rs(),null===(r=null===(i=null===(e=this._invoker.store)||void 0===e?void 0:e.context)||void 0===i?void 0:i.logger)||void 0===r||r.info(t.L_MCU_CONFIG_BUILDER_RESET_O),this}flush(e=!0){return o(this,void 0,void 0,(function*(){const t=JSON.parse(JSON.stringify(this._values)),{code:i}=yield this._invoker.push(new cs(t,this._values));return e&&(this._values=Rs()),{code:i}}))}__innerGetValues(){return JSON.parse(JSON.stringify(this._values))}}var vs,Cs,gs,ms;exports.RCLivingType=void 0,(vs=exports.RCLivingType||(exports.RCLivingType={}))[vs.VIDEO=0]="VIDEO",vs[vs.AUDIO=1]="AUDIO",function(e){e[e.AUTOMATIC=0]="AUTOMATIC",e[e.MANUAL=1]="MANUAL"}(Cs||(Cs={}));class Ts extends An{constructor(e,t,i){super(),this.roomId=e,this.hooks=t,this.roomPKHandler=i}_exchangeWithPushOtherRoom(e,i){var r,n,s,a;return o(this,void 0,void 0,(function*(){if(!e.getLocalTracks().length)return;const o=Object.values(e.peerMgr.getMutilPeerCData()),d=Object.keys(e.peerMgr.getMutilPeerCData());for(let c=0;c<o.length;c++){const{pc:_,isPub:l}=o[c],u=l&&e.useMutilPeerC?[]:e.getSubscribedList(),h=yield Vn(u,!1,_,e),{pushOtherRooms:R,headers:p}=this.hooks(d[c]);h.pushOtherRooms=R;const v=yield new Pn(p,h).execute(e,i);if(v.code!==exports.RCRTCCode.SUCCESS)return void(null===(n=null===(r=e.context)||void 0===r?void 0:r.logger)||void 0===n||n.error(t.L_OLD_DAILY_RECORD_O,`exchange with pushOtherRoom failed: ${v.code}`));const{sdp:C,resultCode:g}=v.data;if(g!==exports.RCRTCCode.SUCCESS)return void(null===(a=null===(s=e.context)||void 0===s?void 0:s.logger)||void 0===a||a.error(t.L_OLD_DAILY_RECORD_O,`exchange with pushOtherRoom failed: ${g}`));_.setRemoteAnswer(C.sdp)}}))}execute(e,r){var n,s,a,d,c,_,l,u,h,R;return o(this,void 0,void 0,(function*(){const{roomId:o}=this;if(null===(s=null===(n=e.context)||void 0===n?void 0:n.logger)||void 0===s||s.info(t.L_LIVING_ROOM_JOINED_PK_ROOM_T,JSON.stringify({roomId:o,userId:e.crtUserId})),!this.roomPKHandler)return void(null===(d=null===(a=e.context)||void 0===a?void 0:a.logger)||void 0===d||d.error(t.L_LIVING_ROOM_JOINED_PK_ROOM_R,JSON.stringify({status:i.FAILED,code:"",msg:"_roomPKHandler not exist"})));const p=this.roomPKHandler.getPKInfo(o);if(!p)return null===(_=null===(c=e.context)||void 0===c?void 0:c.logger)||void 0===_||_.warn(t.L_OLD_DAILY_RECORD_O,`exchange to update pushOtherRoom cancel, pkInfo lost -> roomId: ${o}`),void(null===(u=null===(l=e.context)||void 0===l?void 0:l.logger)||void 0===u||u.error(t.L_LIVING_ROOM_JOINED_PK_ROOM_R,JSON.stringify({status:i.FAILED,code:"",msg:"PKInfo not exist"})));yield this._exchangeWithPushOtherRoom(e,r),null===(R=null===(h=e.context)||void 0===h?void 0:h.logger)||void 0===R||R.info(t.L_LIVING_ROOM_JOINED_PK_ROOM_T,JSON.stringify({status:i.SUCCESSED,roomId:o,userId:e.crtUserId,PKInfo:p}))}))}}class Is extends An{constructor(e,t,i,r,o,n){super(),this.pkHandler=e,this.room=t,this._PKInfo=i,this.hooks=r,this._joinedPKRooms=o,this.isQuitPK=n}get kind(){return tn.LeaveRoom}quitRoomPK(e,i){var n,s,a,d,c,_;return o(this,void 0,void 0,(function*(){if(!this._PKInfo[e])return;const{inviterRoomId:o,inviteeRoomId:l,inviterUserId:u,inviteSessionId:h}=this._PKInfo[e],R={inviteeRoomId:l,inviterRoomId:o,userId:i.crtUserId},p={roomId:i.roomId,endRoomId:e,sessionId:h,content:JSON.stringify(R),keys:[`${o}|${u}`]};null===(s=null===(n=null==i?void 0:i.context)||void 0===n?void 0:n.logger)||void 0===s||s.info(t.L_OLD_DAILY_RECORD_O,`quitRoomPK -> params: ${JSON.stringify(p)}`);const v=yield i.context.endRoomPK(p);return v!==r.ErrorCode.SUCCESS?(null===(d=null===(a=null==i?void 0:i.context)||void 0===a?void 0:a.logger)||void 0===d||d.error(`quitRoomPK failed: ${v}`),{code:exports.RCRTCCode.SIGNAL_ERROR}):(null===(_=null===(c=null==i?void 0:i.context)||void 0===c?void 0:c.logger)||void 0===_||_.info("quitRoomPK success"),delete this._PKInfo[e],{code:exports.RCRTCCode.SUCCESS})}))}execute(e,r){var n,s,a,d,c,_;return o(this,void 0,void 0,(function*(){const{room:o,isQuitPK:l}=this,u=o.getRoomId();return null===(s=null===(n=null==e?void 0:e.context)||void 0===n?void 0:n.logger)||void 0===s||s.info(t.L_OLD_DAILY_RECORD_O,`leavePKRoom -> userId: ${e.crtUserId} , roomId: ${u}`),null===(d=null===(a=e.context)||void 0===a?void 0:a.logger)||void 0===d||d.info(t.L_LIVING_ROOM_LEAVE_PK_ROOM_T,JSON.stringify({roomId:u,userId:e.crtUserId,isQuitPK:l})),yield o.__destroy(!0),delete this._joinedPKRooms[u],yield new Ts(u,this.hooks,this.pkHandler).execute(e,r),l&&this.quitRoomPK(u,e),null===(_=null===(c=e.context)||void 0===c?void 0:c.logger)||void 0===_||_.info(t.L_LIVING_ROOM_LEAVE_PK_ROOM_R,JSON.stringify({status:i.SUCCESSED,roomId:u,userId:e.crtUserId,isQuitPK:l})),{code:exports.RCRTCCode.SUCCESS}}))}}class Ss{constructor(e,t,i,r,o,n,s,a,d,c,_){this._invoker=e,this._PKInfo=t,this._hooks=i,this._context=r,this._runtime=o,this._service=n,this._initOptions=s,this._mainLivingRoom=a,this._registerPKMsgListener=d,this._onJoinedPKRoom=c,this._clientSessionId=_,this._inviteTimeout=30,this._appListener=null,this._joinedPKRooms={},this._registerPKMsgListener(this._onRecvPKMsg.bind(this)),this._mainRoomId=this._mainLivingRoom.getRoomId()}_callAppListener(e,...i){var r,o,n,s,a;null===(o=null===(r=this._context)||void 0===r?void 0:r.logger)||void 0===o||o.info(t.L_OLD_DAILY_RECORD_O,`${e} callback -> ${JSON.stringify(i)}`);const d=null===(n=this._appListener)||void 0===n?void 0:n[e];if(d)try{d(...i)}catch(e){null===(a=null===(s=this._context)||void 0===s?void 0:s.logger)||void 0===a||a.error(t.L_OLD_DAILY_RECORD_O,JSON.stringify(e))}}_onInvite(e){var r,o;const n=e.inviteInfo||{},{inviterRoomId:s,inviterUserId:a,extra:d}=n,c={inviterRoomId:s,inviterUserId:a,extra:d};this._PKInfo[s]=n,null===(o=null===(r=this._context)||void 0===r?void 0:r.logger)||void 0===o||o.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onRequestJoinOtherRoom",info:c})),this._callAppListener("onRequestJoinOtherRoom",c)}_onCancelInvite(e){var r,o;const{inviterRoomId:n,inviterUserId:s,extra:a}=e.inviteInfo||{},d={inviterRoomId:n,inviterUserId:s,extra:a};delete this._PKInfo[n],null===(o=null===(r=this._context)||void 0===r?void 0:r.logger)||void 0===o||o.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onCancelRequestOtherRoom",cancelInfo:d})),this._callAppListener("onCancelRequestOtherRoom",d)}_onInviteTimeout(e){}_onInviteAnswer(e){var r,o;const{answerCode:n,inviteContent:s}=e,{inviteSessionId:a,inviterUserId:d,inviterRoomId:c,inviteeUserId:_,inviterUserAutoMix:l,inviteeUserAutoMix:u,inviteeRoomId:h,extra:R}=s,p={agree:1===n,inviterRoomId:c,inviterUserId:d,inviteeRoomId:h,inviteeUserId:_,extra:R};this._PKInfo[h]=this._PKInfo[h]||{inviteSessionId:a,inviterRoomId:c,inviterUserId:d,inviterUserAutoMix:l,inviteeRoomId:h},this._PKInfo[h].inviteeUserAutoMix=u,null===(o=null===(r=this._context)||void 0===r?void 0:r.logger)||void 0===o||o.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onResponseJoinOtherRoom",answerInfo:p})),this._callAppListener("onResponseJoinOtherRoom",p)}createLeaveOtherRoomCommand(e,t){return new Is(this,e,this._PKInfo,this._hooks,this._joinedPKRooms,t)}_onPKEnd(e){var r,n;return o(this,void 0,void 0,(function*(){const{inviteeRoomId:o,inviterRoomId:s,userId:a}=e.inviteInfo,d=s===this._mainRoomId?o:s,c={endRoomId:d,endUserId:a},_=this._joinedPKRooms[d];_&&(yield this._invoker.push(this.createLeaveOtherRoomCommand(_))),delete this._PKInfo[d],null===(n=null===(r=this._context)||void 0===r?void 0:r.logger)||void 0===n||n.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onFinishOtherRoom",endInfo:c})),this._callAppListener("onFinishOtherRoom",c)}))}_onRecvPKMsg(e){const{targetId:t,content:i,messageType:r}=e;switch(r){case St.PK_INVITE:this._onInvite(i);break;case St.PK_CANCEL_INVITE:this._onCancelInvite(i);break;case St.PK_INVITE_TIMEOUT:this._onInviteTimeout(i);break;case St.PK_INVITE_ANSWER:this._onInviteAnswer(i);break;case St.PK_END:this._onPKEnd(i)}}registerRoomPKEventListener(e){var r,o;null===(o=null===(r=this._context)||void 0===r?void 0:r.logger)||void 0===o||o.info(t.L_LIVING_PK_HANDLER_REGISTER_ROOM_PK_EVENT_LISTENER_O,JSON.stringify({status:i.SUCCESSED,listener:e&&Object.keys(e)})),this._appListener=e}requestJoinOtherRoom(e,n,s){var a,d,c,_,l,u,h,R,p,v,C,g,m,T,I,S;return o(this,void 0,void 0,(function*(){if(null===(d=null===(a=this._context)||void 0===a?void 0:a.logger)||void 0===d||d.info(t.L_LIVING_PK_HANDLER_REQUEST_JOIN_OTHER_ROOM_T,JSON.stringify({inviteeRoomId:e,inviteeUserId:n,options:s})),!r.validate("inviteeRoomId",e,r.notEmptyString,!0)||!r.validate("inviteeUserId",n,r.notEmptyString,!0))return null===(_=null===(c=this._context)||void 0===c?void 0:c.logger)||void 0===_||_.error(t.L_LIVING_PK_HANDLER_REQUEST_JOIN_OTHER_ROOM_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> inviteeRoomId 或 inviteeUserId"})),{code:exports.RCRTCCode.PARAMS_ERROR};null===(u=null===(l=this._context)||void 0===l?void 0:l.logger)||void 0===u||u.info(t.L_OLD_DAILY_RECORD_O,`requestRoomPK -> inviteeRoomId: ${e}; inviteeUserId: ${n}; options: ${JSON.stringify(s||{})}`);const o=ho(),E=!r.isBoolean(null==s?void 0:s.autoMix)||(null==s?void 0:s.autoMix),f={inviteSessionId:o,inviterRoomId:this._mainRoomId,inviterUserId:this._context.getCurrentId(),inviterUserAutoMix:E,inviteeRoomId:e,inviteeUserId:n,inviteeTimeoutTime:this._inviteTimeout,extra:(null==s?void 0:s.extra)||""},O={roomId:this._mainRoomId,invitedRoomId:e,invitedUserId:n,inviteTimeout:this._inviteTimeout,inviteInfo:JSON.stringify(f),inviteSessionId:o};null===(R=null===(h=this._context)||void 0===h?void 0:h.logger)||void 0===R||R.info(t.L_OLD_DAILY_RECORD_O,`requestRoomPK -> params: ${JSON.stringify(O)}`);const L=yield this._context.requestRoomPK(O);return L!==r.ErrorCode.SUCCESS?(null===(v=null===(p=this._context)||void 0===p?void 0:p.logger)||void 0===v||v.error(t.L_OLD_DAILY_RECORD_O,`requestRoomPK failed: ${L}`),null===(g=null===(C=this._context)||void 0===C?void 0:C.logger)||void 0===g||g.error(t.L_LIVING_PK_HANDLER_REQUEST_JOIN_OTHER_ROOM_R,JSON.stringify({status:i.FAILED,code:L,msg:""})),{code:L}):(null===(T=null===(m=this._context)||void 0===m?void 0:m.logger)||void 0===T||T.info(t.L_OLD_DAILY_RECORD_O,"requestRoomPK success"),this._PKInfo[e]={inviteSessionId:o,inviterRoomId:this._mainRoomId,inviterUserId:this._context.getCurrentId(),inviterUserAutoMix:E,inviteeRoomId:e},null===(S=null===(I=this._context)||void 0===I?void 0:I.logger)||void 0===S||S.info(t.L_LIVING_PK_HANDLER_REQUEST_JOIN_OTHER_ROOM_R,JSON.stringify({inviteeRoomId:e,inviteeUserId:n,options:s})),{code:exports.RCRTCCode.SUCCESS})}))}cancelRequestJoinOtherRoom(e,n,s){var a,d,c,_,l,u,h,R,p,v,C,g,m,T,I,S,E,f,O,L;return o(this,void 0,void 0,(function*(){if(null===(d=null===(a=this._context)||void 0===a?void 0:a.logger)||void 0===d||d.info(t.L_LIVING_PK_HANDLER_CANCEL_REQUEST_JOIN_OTHER_ROOM_T,JSON.stringify({inviteeRoomId:e,inviteeUserId:n,extra:s,userId:this._context.getCurrentId(),roomId:this._mainRoomId})),!r.validate("inviteeRoomId",e,r.notEmptyString,!0)||!r.validate("inviteeUserId",n,r.notEmptyString,!0))return null===(_=null===(c=this._context)||void 0===c?void 0:c.logger)||void 0===_||_.error(t.L_LIVING_PK_HANDLER_CANCEL_REQUEST_JOIN_OTHER_ROOM_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> inviteeRoomId or inviteeUserId"})),{code:exports.RCRTCCode.PARAMS_ERROR};if(!this._PKInfo[e])return null===(u=null===(l=this._context)||void 0===l?void 0:l.logger)||void 0===u||u.error(t.L_OLD_DAILY_RECORD_O,`The request to connect with ${n} user in room ${e} is not initiated`),null===(R=null===(h=this._context)||void 0===h?void 0:h.logger)||void 0===R||R.error(t.L_LIVING_PK_HANDLER_CANCEL_REQUEST_JOIN_OTHER_ROOM_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:`The request to connect with ${n} user in room ${e} is not initiated`})),{code:exports.RCRTCCode.PARAMS_ERROR};null===(v=null===(p=this._context)||void 0===p?void 0:p.logger)||void 0===v||v.info(t.L_OLD_DAILY_RECORD_O,`canceRequestJoinPK -> inviteeRoomId: ${e}; inviteeUserId: ${n}; extra: ${s}`);const o={inviterRoomId:this._mainRoomId,inviterUserId:this._context.getCurrentId(),inviteeRoomId:e,inviteeUserId:n,extra:s||""},A={roomId:this._mainRoomId,invitedRoomId:e,invitedUserId:n,inviteSessionId:this._PKInfo[e].inviteSessionId,inviteInfo:JSON.stringify(o)};null===(g=null===(C=this._context)||void 0===C?void 0:C.logger)||void 0===g||g.info(t.L_OLD_DAILY_RECORD_O,`canceRequestJoinPK -> params: ${JSON.stringify(A)}`);const N=yield this._context.cancelRoomPK(A);return N!==r.ErrorCode.SUCCESS?(null===(T=null===(m=this._context)||void 0===m?void 0:m.logger)||void 0===T||T.error(t.L_OLD_DAILY_RECORD_O,`canceRequestJoinPK failed: ${N}`),null===(S=null===(I=this._context)||void 0===I?void 0:I.logger)||void 0===S||S.error(t.L_LIVING_PK_HANDLER_CANCEL_REQUEST_JOIN_OTHER_ROOM_R,JSON.stringify({status:i.FAILED,code:N,msg:`The request to connect with ${n} user in room ${e} is not initiated`})),{code:N}):(null===(f=null===(E=this._context)||void 0===E?void 0:E.logger)||void 0===f||f.info(t.L_OLD_DAILY_RECORD_O,"canceRequestJoinPK success"),null===(L=null===(O=this._context)||void 0===O?void 0:O.logger)||void 0===L||L.info(t.L_LIVING_PK_HANDLER_CANCEL_REQUEST_JOIN_OTHER_ROOM_R,JSON.stringify({status:i.SUCCESSED,inviteeRoomId:e,inviteeUserId:n,extra:s})),delete this._PKInfo[e],{code:exports.RCRTCCode.SUCCESS})}))}responseJoinOtherRoom(e,n,s,a){var d,c,_,l,u,h,R,p,v,C,g,m,T,I,S,E,f,O,L,A;return o(this,void 0,void 0,(function*(){if(null===(c=null===(d=this._context)||void 0===d?void 0:d.logger)||void 0===c||c.info(t.L_LIVING_PK_HANDLER_RESPONSE_JOIN_OTHER_ROOM_T,JSON.stringify({inviterRoomId:e,inviterUserId:n,agree:s,options:a,userId:this._context.getCurrentId(),roomId:this._mainRoomId})),!r.validate("inviterRoomId",e,r.notEmptyString,!0)||!r.validate("inviterUserId",n,r.notEmptyString,!0))return null===(l=null===(_=this._context)||void 0===_?void 0:_.logger)||void 0===l||l.error(t.L_LIVING_PK_HANDLER_RESPONSE_JOIN_OTHER_ROOM_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> inviterRoomId or inviterUserId"})),{code:exports.RCRTCCode.PARAMS_ERROR};if(!this._PKInfo[e])return null===(h=null===(u=this._context)||void 0===u?void 0:u.logger)||void 0===h||h.error(t.L_OLD_DAILY_RECORD_O,`User ${n} in room ${e} did not send a request for connection`),null===(p=null===(R=this._context)||void 0===R?void 0:R.logger)||void 0===p||p.error(t.L_LIVING_PK_HANDLER_RESPONSE_JOIN_OTHER_ROOM_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:`User ${n} in room ${e} did not send a request for connection`})),{code:exports.RCRTCCode.PARAMS_ERROR};null===(C=null===(v=this._context)||void 0===v?void 0:v.logger)||void 0===C||C.info(t.L_OLD_DAILY_RECORD_O,`responseRoomPK -> inviterRoomId: ${e}; inviterUserId: ${n}; agree: ${s}; options: ${JSON.stringify(a||{})}`);const{inviteSessionId:o,inviterUserAutoMix:N}=this._PKInfo[e],y=!r.isBoolean(null==a?void 0:a.autoMix)||(null==a?void 0:a.autoMix),D={inviteSessionId:o,inviterRoomId:e,inviterUserId:n,inviterUserAutoMix:N,inviteeRoomId:this._mainRoomId,inviteeUserId:this._context.getCurrentId(),inviteeUserAutoMix:y},k=Object.assign(D,{inviterUserAutoMix:N}),b=s?Object.assign(D,{MultiRoomKey:`${e}|${this._mainRoomId}`,MultiRoomValue:JSON.stringify(k)}):D;!r.isUndefined(null==a?void 0:a.extra)&&Object.assign(b,{extra:a.extra});const x={agree:s,roomId:this._mainRoomId,inviteSessionId:o,inviteRoomId:e,inviteUserId:n,content:JSON.stringify(b),key:`${e}|${this._mainRoomId}`,value:JSON.stringify(D)};null===(m=null===(g=this._context)||void 0===g?void 0:g.logger)||void 0===m||m.info(t.L_OLD_DAILY_RECORD_O,`responseRoomPK -> params: ${JSON.stringify(x)}`);const U=yield this._context.responseRoomPK(x);return U!==r.ErrorCode.SUCCESS?(null===(I=null===(T=this._context)||void 0===T?void 0:T.logger)||void 0===I||I.error(t.L_OLD_DAILY_RECORD_O,`responseRoomPK failed: ${U}`),null===(E=null===(S=this._context)||void 0===S?void 0:S.logger)||void 0===E||E.error(t.L_LIVING_PK_HANDLER_RESPONSE_JOIN_OTHER_ROOM_R,JSON.stringify({status:i.FAILED,code:U,msg:""})),{code:U}):(null===(O=null===(f=this._context)||void 0===f?void 0:f.logger)||void 0===O||O.info(t.L_OLD_DAILY_RECORD_O,"responseRoomPK success"),null===(A=null===(L=this._context)||void 0===L?void 0:L.logger)||void 0===A||A.info(t.L_LIVING_PK_HANDLER_RESPONSE_JOIN_OTHER_ROOM_R,JSON.stringify({status:i.SUCCESSED,inviterRoomId:e,inviterUserId:n,agree:s,options:a,userId:this._context.getCurrentId(),roomId:this._mainRoomId})),this._PKInfo[e].inviteeUserAutoMix=y,{code:exports.RCRTCCode.SUCCESS})}))}joinOtherRoom(e){var n,s,a,d,c,_,l,u,h,R,p,v,C,g,m,T,I,S;return o(this,void 0,void 0,(function*(){if(null===(s=null===(n=this._context)||void 0===n?void 0:n.logger)||void 0===s||s.info(t.L_LIVING_PK_HANDLER_JOIN_OTHER_ROOM_T,JSON.stringify({roomId:e,userId:this._context.getCurrentId()})),!r.validate("roomId",e,r.notEmptyString,!0))return null===(d=null===(a=this._context)||void 0===a?void 0:a.logger)||void 0===d||d.error(t.L_LIVING_PK_HANDLER_JOIN_OTHER_ROOM_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> roomId"})),{code:exports.RCRTCCode.PARAMS_ERROR};if(this._context.getConnectionStatus()!==r.ConnectionStatus.CONNECTED)return null===(_=null===(c=this._context)||void 0===c?void 0:c.logger)||void 0===_||_.error(t.L_LIVING_PK_HANDLER_JOIN_OTHER_ROOM_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.SIGNAL_DISCONNECTED,msg:"IM disconnected"})),{code:exports.RCRTCCode.SIGNAL_DISCONNECTED};if(null===(u=null===(l=this._context)||void 0===l?void 0:l.logger)||void 0===u||u.info(t.L_OLD_DAILY_RECORD_O,`JoinPKRoom, roomId: ${e}`),this._joinedPKRooms[e])return null===(R=null===(h=this._context)||void 0===h?void 0:h.logger)||void 0===R||R.warn(t.L_LIVING_PK_HANDLER_JOIN_OTHER_ROOM_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.REPERT_JOIN_ROOM,msg:"Join the room repeatedly"})),{code:exports.RCRTCCode.REPERT_JOIN_ROOM};const o=exports.RCLivingType.VIDEO,E={extra:`{"roomId": "${this._mainRoomId}"}`},f=new Os(this._context,this._runtime,e,this._service,this._initOptions,o,!1,!1,!1,this._clientSessionId),{code:O,data:L}=yield f.__innerInit(sn.LIVE,void 0,o,E);return O!==exports.RCRTCCode.SUCCESS?(null===(v=null===(p=this._context)||void 0===p?void 0:p.logger)||void 0===v||v.error(t.L_OLD_DAILY_RECORD_O,`JoinPKRoom failed -> code: ${O}`),null===(g=null===(C=this._context)||void 0===C?void 0:C.logger)||void 0===g||g.error(t.L_LIVING_PK_HANDLER_JOIN_OTHER_ROOM_R,JSON.stringify({status:i.FAILED,code:O,msg:""})),{code:O}):(null===(T=null===(m=this._context)||void 0===m?void 0:m.logger)||void 0===T||T.info(t.L_OLD_DAILY_RECORD_O,`JoinPKRoom success -> userId: ${this._context.getCurrentId()}, roomId: ${e}, data: ${JSON.stringify(L)}`),this._joinedPKRooms[e]=f,yield this._onJoinedPKRoom(e,f),null===(S=null===(I=this._context)||void 0===I?void 0:I.logger)||void 0===S||S.info(t.L_LIVING_PK_HANDLER_JOIN_OTHER_ROOM_R,JSON.stringify({status:i.SUCCESSED,roomId:e,userId:this._context.getCurrentId()})),{room:f,code:exports.RCRTCCode.SUCCESS,userIds:f.getRemoteUserIds(),tracks:f.getRemoteTracks()})}))}leaveOtherRoom(e,t){return o(this,void 0,void 0,(function*(){return this._invoker.push(this.createLeaveOtherRoomCommand(e,t))}))}getPKInfo(e){return this._PKInfo[e]}getAllPKInfo(){return this._PKInfo}getJoinedPKRooms(){return this._joinedPKRooms}}!function(e){e[e.OPEN=1]="OPEN",e[e.STOP=2]="STOP"}(gs||(gs={}));class Es extends An{constructor(e,t){super(),this.cdnValues=e,this.enable=t}execute(e,n){var s,a,d,c,_,l,u,h,R,p,v,C,g,m;return o(this,void 0,void 0,(function*(){const{enable:o}=this;if(null===(a=null===(s=e.context)||void 0===s?void 0:s.logger)||void 0===a||a.info(t.L_LIVING_ROOM_ENABLE_INNER_CDN_T,JSON.stringify({roomId:e.roomId,enable:o})),!e.isMainRoom)return null===(c=null===(d=e.context)||void 0===d?void 0:d.logger)||void 0===c||c.error(t.L_LIVING_ROOM_ENABLE_INNER_CDN_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.THE_FUNCTION_IS_DISABLED_IN_PKROOM,msg:"method not available in PK room"})),{code:exports.RCRTCCode.THE_FUNCTION_IS_DISABLED_IN_PKROOM};if(!r.isBoolean(o))return null===(l=null===(_=e.context)||void 0===_?void 0:_.logger)||void 0===l||l.error(t.L_LIVING_ROOM_ENABLE_INNER_CDN_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> enable"})),{code:exports.RCRTCCode.PARAMS_ERROR};e.setCDNEnabel(o);const T={version:2,output:{inCDNModel:o?gs.OPEN:gs.STOP}},{code:I}=yield new cs(T,this.cdnValues).execute(e,n);if(I!==exports.RCRTCCode.SUCCESS)return null===(h=null===(u=e.context)||void 0===u?void 0:u.logger)||void 0===h||h.error(t.L_LIVING_ROOM_ENABLE_INNER_CDN_R,JSON.stringify({status:i.FAILED,code:I,msg:"signal error"})),{code:exports.RCRTCCode.SIGNAL_ERROR};const S=e.getCDNUris();if(S&&S.broadcast!==_n.SPREAD)return null===(p=null===(R=e.context)||void 0===R?void 0:R.logger)||void 0===p||p.info(t.L_LIVING_ROOM_ENABLE_INNER_CDN_R,JSON.stringify({status:i.SUCCESSED,enable:o})),{code:exports.RCRTCCode.SUCCESS};const{code:E}=yield Gn(e);return E===exports.RCRTCCode.SUCCESS?(null===(C=null===(v=e.context)||void 0===v?void 0:v.logger)||void 0===C||C.info(t.L_LIVING_ROOM_ENABLE_INNER_CDN_R,JSON.stringify({status:i.SUCCESSED,enable:o})),{code:exports.RCRTCCode.SUCCESS}):(null===(m=null===(g=e.context)||void 0===g?void 0:g.logger)||void 0===m||m.error(t.L_LIVING_ROOM_ENABLE_INNER_CDN_R,JSON.stringify({status:i.FAILED,code:E})),{code:E})}))}}!function(e){e[e.AnchorToViewer=1]="AnchorToViewer",e[e.ViewerToAnchor=2]="ViewerToAnchor"}(ms||(ms={}));class fs extends An{constructor(e,t){super(),this.livingType=e,this.traceId=t}execute(e,t){var i;return o(this,void 0,void 0,(function*(){const{code:o,data:n}=yield e.context.rtcIdentityChange(e.roomId,ms.ViewerToAnchor,this.livingType);if(o!==r.ErrorCode.SUCCESS||!n)return{code:o};e.initWithRoomData(n,this.traceId);e.getResourcesByUserId(e.crtUserId).length>0&&t.push(new xn);const s=null===(i=n.roomInfo.filter((e=>"cdn_uris"===e.key))[0])||void 0===i?void 0:i.value;return s&&e.setCDNUris(JSON.parse(s)[0]),{code:o,data:n}}))}}class Os extends ds{constructor(e,t,i,r,o,n,s,a,d,c){super(e,t,i,sn.LIVE,r,o,s,a,d,c),this._livingType=n,this._mcuConfigBuilder=new ps(this._invoker,this._isValidResourceId.bind(this))}_initAfterCatchRoomData(e,t){if(this._store.isUpgrade&&this._afterChangedRole(e,t),this._store.isMainRoom){const t=((e,t)=>{const i={};return t.forEach((t=>{const r=JSON.parse(t.value),{inviterRoomId:o,inviteeRoomId:n}=r;i[e===o?n:o]=JSON.parse(t.value)})),i})(this._roomId,e.roomInfo);this._roomPKHandler=new Ss(this._invoker,t,(e=>({headers:this._getRTCReqestHeaders(e),pushOtherRooms:this._getPushOtherRoomsParams()})),this._context,this._runtime,this._service,this._initOptions,this,super._registerPKMsgListener.bind(this),this._onJoinedPKRoom.bind(this),this._clientSessionId)}}__innerInit(e,n,s,a,d,c){const _=Object.create(null,{__innerInit:{get:()=>super.__innerInit}});var l,u;return o(this,void 0,void 0,(function*(){if(!r.validate("livingType",s,(e=>e===exports.RCLivingType.AUDIO||e===exports.RCLivingType.VIDEO)))return null===(u=null===(l=this._context)||void 0===l?void 0:l.logger)||void 0===u||u.error(t.L_RTC_CLIENT_JOIN_LIVING_ROOM_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> livingType"}),c),{code:exports.RCRTCCode.PARAMS_ERROR};const{code:o,data:h}=yield _.__innerInit.call(this,e,n,s,a,d,c);return o===exports.RCRTCCode.SUCCESS&&h&&this._initAfterCatchRoomData(h),{code:o,data:h}}))}__innerInitByIdentityChange(e){var n,s,a,d;return o(this,void 0,void 0,(function*(){const{code:o,data:c}=yield this._invoker.push(new fs(this._livingType,e));return o===r.ErrorCode.SUCCESS&&c?(this._initAfterCatchRoomData(c,e),this._initWithRoomData(c.offlineKickTime),null===(s=null===(n=this._context)||void 0===n?void 0:n.logger)||void 0===s||s.info(t.L_RTC_CLIENT_UPGRADE_TO_ANCHOR_ROOM_R,JSON.stringify({status:i.SUCCESSED,roomData:c}),e)):null===(d=null===(a=this._context)||void 0===a?void 0:a.logger)||void 0===d||d.error(t.L_RTC_CLIENT_UPGRADE_TO_ANCHOR_ROOM_R,JSON.stringify({status:i.FAILED,code:o}),e),o}))}publish(e){const r=Object.create(null,{publish:{get:()=>super.publish}});var n,s;return o(this,void 0,void 0,(function*(){return this._store.isMainRoom?r.publish.call(this,e):(null===(s=null===(n=this._context)||void 0===n?void 0:n.logger)||void 0===s||s.error(t.L_ABSTRACT_ROOM_PUBLISH_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.THE_FUNCTION_IS_DISABLED_IN_PKROOM,msg:"method not available in PK room"})),{code:exports.RCRTCCode.THE_FUNCTION_IS_DISABLED_IN_PKROOM})}))}unpublish(e){const r=Object.create(null,{unpublish:{get:()=>super.unpublish}});var n,s;return o(this,void 0,void 0,(function*(){return this._store.isMainRoom?r.unpublish.call(this,e):(null===(s=null===(n=this._context)||void 0===n?void 0:n.logger)||void 0===s||s.error(t.L_ABSTRACT_ROOM_UNPUBLISH_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.THE_FUNCTION_IS_DISABLED_IN_PKROOM,msg:"method not available in PK room"})),{code:exports.RCRTCCode.THE_FUNCTION_IS_DISABLED_IN_PKROOM})}))}_isValidResourceId(e){var t;const{userId:i}=ot(e),r=!!(null===(t=this._store.getResourcesByUserId(i))||void 0===t?void 0:t.find((t=>rt(t)===e)));let o=!1;const{code:n,roomPKHandler:s}=this.getRoomPKHandler();if(n!==exports.RCRTCCode.SUCCESS||!s)return r;const a=s.getJoinedPKRooms(),d=[];return Object.values(a).forEach((e=>{d.push(...e.getRemoteTracks())})),o=d.some((t=>e===t.getTrackId())),r||o}getLivingType(){return this._livingType}getMCUConfigBuilder(){var e,i;return this._store.isMainRoom?this._mcuConfigBuilder:(null===(i=null===(e=this._context)||void 0===e?void 0:e.logger)||void 0===i||i.error(t.L_OLD_DAILY_RECORD_O,"the `getMCUConfigBuilder` is disabled in PK room"),{code:exports.RCRTCCode.THE_FUNCTION_IS_DISABLED_IN_PKROOM})}enableInnerCDN(e){return o(this,void 0,void 0,(function*(){return this._invoker.push(new Es(this._mcuConfigBuilder.__innerGetValues(),e))}))}_resourceHandle(e,t,i,r){const n=Object.create(null,{_resourceHandle:{get:()=>super._resourceHandle}});return o(this,void 0,void 0,(function*(){n._resourceHandle.call(this,e,t,i,r)}))}_afterChangedRole(e,r){const o=gt(e,this._roomId,r),n=this._context.getCurrentId(),s=Object.keys(o);setTimeout((()=>{var a,d,c,_,l;const u=s.filter((e=>e!==n));u.length>0&&(null===(d=null===(a=this._context)||void 0===a?void 0:a.logger)||void 0===d||d.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onUserJoin",needNoticeUserIds:u})),this._callAppListener("onUserJoin",u));for(const e in o)e!==n&&this._resourceHandle({uris:o[e]},St.TOTAL_CONTENT_RESOURCE,e,r);if(!(null===(c=e.roomInfo.filter((e=>"cdn_uris"===e.key))[0])||void 0===c?void 0:c.value))return;const h=this._store.getCDNUris();(null==h?void 0:h.push_mode)===Cs.MANUAL&&(null===(l=null===(_=this._context)||void 0===_?void 0:_.logger)||void 0===l||l.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onUserJoin",enableInnerCDN:null==h?void 0:h.enableInnerCDN})),this._callAppListener("onCDNEnableChange",null==h?void 0:h.enableInnerCDN))}))}__getCDNEnable(){var e;return!!(null===(e=this._store.getCDNUris())||void 0===e?void 0:e.enableInnerCDN)}__getCDNPushMode(){var e;return null===(e=this._store.getCDNUris())||void 0===e?void 0:e.push_mode}_onJoinedPKRoom(e,t){return o(this,void 0,void 0,(function*(){this._invoker.push(new Ts(e,(e=>({pushOtherRooms:this._getPushOtherRoomsParams(),headers:this._getRTCReqestHeaders(e)})),this._roomPKHandler))}))}_getPushOtherRoomsParams(){const e=[];if(!this.isMainRoom()||!this._roomPKHandler)return e;const t=this._roomPKHandler.getJoinedPKRooms();for(const i in t){const r=t[i].getSessionId(),o=this._roomPKHandler.getPKInfo(i);if(!o)continue;const{inviterUserAutoMix:n,inviteeUserAutoMix:s,inviterUserId:a}=o,d=this._context.getCurrentId()===a;e.push({roomId:i,sessionId:r,autoMix:d?!!n:!!s})}return e}getRoomPKHandler(){var e,r,o,n;return this._store.isMainRoom?(null===(n=null===(o=this._context)||void 0===o?void 0:o.logger)||void 0===n||n.info(t.L_LIVING_ROOM_GET_ROOM_PK_HANDLER_O,JSON.stringify({status:i.SUCCESSED})),{code:exports.RCRTCCode.SUCCESS,roomPKHandler:this._roomPKHandler}):(null===(r=null===(e=this._context)||void 0===e?void 0:e.logger)||void 0===r||r.error(t.L_LIVING_ROOM_GET_ROOM_PK_HANDLER_O,JSON.stringify({status:i.SUCCESSED,code:exports.RCRTCCode.THE_FUNCTION_IS_DISABLED_IN_PKROOM,msg:"method not available in PK room"})),{code:exports.RCRTCCode.THE_FUNCTION_IS_DISABLED_IN_PKROOM})}_quitAllPKRoom(){var e,r;return o(this,void 0,void 0,(function*(){const o=this._roomPKHandler.getJoinedPKRooms();for(const e in o)this._roomPKHandler.leaveOtherRoom(o[e]);null===(r=null===(e=this._context)||void 0===e?void 0:e.logger)||void 0===r||r.info(t.L_LIVING_ROOM_QUIT_ALL_PK_ROOM_O,JSON.stringify({status:i.SUCCESSED,roomIds:Object.keys(o)}))}))}isMainRoom(){return this._store.isMainRoom}}class Ls extends ds{constructor(e,t,i,r,o,n,s,a,d,c=sn.RTC,_=3e4){super(e,t,i,c,r,o,n,s,a,d,_)}}const As=new class{constructor(){this.queue=[],this.locked=!1,this.taskCount=0}checkToStart(){return o(this,void 0,void 0,(function*(){if(0===this.queue.length||this.locked)return;this.locked=!0;const{resolve:e,task:t,reject:i}=this.queue.shift();let r;try{r=yield t(),e(r)}catch(e){i(e)}this.locked=!1,this.checkToStart()}))}push(e,t=""){const i=new Promise(((t,i)=>{this.queue.push({resolve:t,task:e,reject:i})}));return this.checkToStart(),i}},Ns=(e,t="")=>As.push(e,t);class ys{constructor(e,t,i,r){this._context=e,this._useMutilPeerC=r,this._rtcToken="",this._liveUrl="",this._subTracks=[],this._clientSessionId=ho(),this._livingType=null,this._mediaType=null,this._subTiny=!1,this._fromRetry=!1,this._appListener=null,this._service=new wo(t,e,i.mediaServer),this._peerCManager=new Ln(this._useMutilPeerC,this._context.getCurrentId(),this._reTryExchange.bind(this),this._context.getCurrentId())}_getReqHeaders(e){var i,n;return o(this,void 0,void 0,(function*(){const o=this._context.getCurrentId(),s=o;if(!this._rtcToken){const{code:o,data:a}=yield this._context.getRTCToken(s,sn.LIVE,e);if(o!==r.ErrorCode.SUCCESS)return null===(n=null===(i=this._context)||void 0===i?void 0:i.logger)||void 0===n||n.error(t.L_OLD_DAILY_RECORD_O,`getRTCToken failed: ${o}`),{code:exports.RCRTCCode.SIGNAL_ERROR};this._rtcToken=a.rtcToken}return{code:exports.RCRTCCode.SUCCESS,headers:{"App-Key":this._context.getAppkey(),UserId:o,RoomId:s,RoomType:sn.LIVE,Token:this._rtcToken,"Peer-Connection-Id":this._pcName,"Client-Session-Id":this._clientSessionId}}}))}_clearSubscribeInfo(){var e;this._liveUrl="",this._livingType=null,this._mediaType=null,this._subTiny=!1,this._subTracks.length=0,null===(e=this._pc)||void 0===e||e.destroy(),this._pc=null}_reTryExchange(){var e;return o(this,void 0,void 0,(function*(){this._fromRetry=!0;const{code:t}=yield this.subscribe(this._liveUrl,this._livingType,this._mediaType,this._subTiny);t===exports.RCRTCCode.SUCCESS&&(null===(e=this._pc)||void 0===e||e.clearReTryExchangeTimer())}))}subscribe(e,t,i,r=!1){return o(this,void 0,void 0,(function*(){return Ns((()=>this.__subscribe(e,t,i,r)),"audience-client-sub")}))}__subscribe(e,n,s,a=!1){var d,c,_,l,u,h,R,p,v,C,g,m,T,I,S,E,f,O,L,A,N,y,D,k,b,x,U,P,M,w,B,V,F;return o(this,void 0,void 0,(function*(){null===(c=null===(d=this._context)||void 0===d?void 0:d.logger)||void 0===c||c.info(t.L_AUDIENCE_CLIENT_SUBSCRIBE_T,JSON.stringify({liveUrl:e,livingType:n,mediaType:s,subTiny:a}));const o=[];if(Ct(this._context.getNaviInfo()))return null===(l=null===(_=this._context)||void 0===_?void 0:_.logger)||void 0===l||l.error(t.L_AUDIENCE_CLIENT_SUBSCRIBE_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PACKAGE_ENVIRONMENT_ERROR,msg:"package environment error"})),{code:exports.RCRTCCode.PACKAGE_ENVIRONMENT_ERROR,tracks:o};if(!this._fromRetry&&(null===(u=this._pc)||void 0===u||u.clearReTryExchangeTimer()),this._fromRetry=!1,!r.isString(e))return null===(R=null===(h=this._context)||void 0===h?void 0:h.logger)||void 0===R||R.error(t.L_OLD_DAILY_RECORD_O,`liveUrl is invalid: ${e}`),null===(v=null===(p=this._context)||void 0===p?void 0:p.logger)||void 0===v||v.error(t.L_AUDIENCE_CLIENT_SUBSCRIBE_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:`params error -> liveUrl: ${e}`})),{code:exports.RCRTCCode.PARAMS_ERROR,tracks:o};if(![exports.RCLivingType.AUDIO,exports.RCLivingType.VIDEO].includes(n))return null===(g=null===(C=this._context)||void 0===C?void 0:C.logger)||void 0===g||g.error(`livingType is invalid: ${n}`),null===(T=null===(m=this._context)||void 0===m?void 0:m.logger)||void 0===T||T.error(t.L_AUDIENCE_CLIENT_SUBSCRIBE_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:`params error -> livingType: ${n}`})),{code:exports.RCRTCCode.PARAMS_ERROR,tracks:o};if(![exports.RCMediaType.AUDIO_ONLY,exports.RCMediaType.VIDEO_ONLY,exports.RCMediaType.AUDIO_VIDEO].includes(s))return null===(S=null===(I=this._context)||void 0===I?void 0:I.logger)||void 0===S||S.error(t.L_OLD_DAILY_RECORD_O,`mediaType is invalid: ${s}`),null===(f=null===(E=this._context)||void 0===E?void 0:E.logger)||void 0===f||f.error(t.L_AUDIENCE_CLIENT_SUBSCRIBE_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:`params error -> -> mediaType: ${s}`})),{code:exports.RCRTCCode.PARAMS_ERROR,tracks:o};if(this._liveUrl&&this._liveUrl!==e)return null===(L=null===(O=this._context)||void 0===O?void 0:O.logger)||void 0===L||L.error(t.L_AUDIENCE_CLIENT_SUBSCRIBE_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.BROADCAST_SUB_LIST_NOT_EMPTY,msg:"repeat subscribe"})),{code:exports.RCRTCCode.BROADCAST_SUB_LIST_NOT_EMPTY,tracks:o};if(!this._pc){const{pcName:e,pc:t}=this._peerCManager.createPeerCList(o)[0];this._pc=t,this._pcName=e,this._pc.on(Sn.__INNER_EVENT_TRACK_READY__,this._onTrackReady,this),this._pc.registerReportListener(this._reportListener),this._pc.__reportR3R4ToPolaris()}this._liveUrl=e;const{code:J,headers:G}=yield this._getReqHeaders(n);if(J!==exports.RCRTCCode.SUCCESS)return null===(N=null===(A=this._context)||void 0===A?void 0:A.logger)||void 0===N||N.error(t.L_AUDIENCE_CLIENT_SUBSCRIBE_R,JSON.stringify({status:i.FAILED,code:J,msg:""})),{code:J,tracks:o};const K=`rc_mcu_${Date.now()}`,H="RongCloudRTC";0===this._subTracks.length&&(this._subTracks.push(new qe(H,K),new We(H,K)),this._pc.updateSubRemoteTracks(this._subTracks.slice()));const j={sdp:yield this._pc.createOffer(!0),liveUrl:e,mediaType:s,simulcast:a?Bo.TINY:Bo.NORMAL,switchstream:!1},$=yield this._service.broadcastSubscribe(G,j);if($.code!==exports.RCRTCCode.SUCCESS)return null===(D=null===(y=this._context)||void 0===y?void 0:y.logger)||void 0===D||D.error(t.L_OLD_DAILY_RECORD_O,`andience subscribe failed: ${$.code}`),null===(b=null===(k=this._context)||void 0===k?void 0:k.logger)||void 0===b||b.error(t.L_AUDIENCE_CLIENT_SUBSCRIBE_R,JSON.stringify({status:i.FAILED,code:$.code,msg:`andience subscribe failed: ${$.code}`})),{code:$.code,tracks:o};const Y=$.data;if(Y.resultCode!==exports.RCRTCCode.SUCCESS)return null===(U=null===(x=this._context)||void 0===x?void 0:x.logger)||void 0===U||U.error(t.L_OLD_DAILY_RECORD_O,`andience subscribe failed! code: ${Y.resultCode}; message: ${Y.message}`),null===(M=null===(P=this._context)||void 0===P?void 0:P.logger)||void 0===M||M.error(t.L_AUDIENCE_CLIENT_SUBSCRIBE_R,JSON.stringify({status:i.FAILED,code:Y.resultCode,msg:`andience subscribe failed! code: ${Y.resultCode}; message: ${Y.message}`})),{code:Y.resultCode,tracks:o};null===(B=null===(w=this._context)||void 0===w?void 0:w.logger)||void 0===B||B.debug(t.L_OLD_DAILY_RECORD_O,`andience subscribe success: ${e}`),this._livingType=n,this._mediaType=s,this._subTiny=a;const{sdp:q,subscribedList:W}=Y,z=[];return W.forEach((e=>{const{mediaType:t}=e,i=this._subTracks[t];z.push(i),i.__innerSetRemoteMuted(!0)})),this._pc.setRemoteAnswer(q.sdp),ln.formatSourceIdMapFromSdp(q.sdp,"subscribe"),null===(F=null===(V=this._context)||void 0===V?void 0:V.logger)||void 0===F||F.info(t.L_AUDIENCE_CLIENT_SUBSCRIBE_R,JSON.stringify({status:i.SUCCESSED,liveUrl:e})),{code:exports.RCRTCCode.SUCCESS,tracks:z}}))}unsubscribe(){return o(this,void 0,void 0,(function*(){return Ns((()=>this.__unsubscribe()),"audience-client-unsub")}))}__unsubscribe(){var e,r,n,s,a,d,c,_,l,u,h,R,p;return o(this,void 0,void 0,(function*(){if(null===(r=null===(e=this._context)||void 0===e?void 0:e.logger)||void 0===r||r.info(t.L_AUDIENCE_CLIENT_UNSUBSCRIBE_T,JSON.stringify({liveUrl:this._liveUrl})),null===(n=this._pc)||void 0===n||n.clearReTryExchangeTimer(),!this._rtcToken||!this._liveUrl)return null===(a=null===(s=this._context)||void 0===s?void 0:s.logger)||void 0===a||a.warn(t.L_AUDIENCE_CLIENT_UNSUBSCRIBE_R,JSON.stringify({status:i.FAILED,code:"",msg:"Address does not exist, without unsubscribe"})),{code:exports.RCRTCCode.SUCCESS};const{headers:o}=yield this._getReqHeaders(),{code:v}=yield this._service.broadcastExit(o);return v!==exports.RCRTCCode.SUCCESS?(null===(c=null===(d=this._context)||void 0===d?void 0:d.logger)||void 0===c||c.error(t.L_OLD_DAILY_RECORD_O,`broadcast unsubscribe failed: ${v}`),null===(l=null===(_=this._context)||void 0===_?void 0:_.logger)||void 0===l||l.error(t.L_AUDIENCE_CLIENT_UNSUBSCRIBE_R,JSON.stringify({status:i.FAILED,code:v,msg:`broadcast unsubscribe failed: ${v}`}))):(null===(h=null===(u=this._context)||void 0===u?void 0:u.logger)||void 0===h||h.debug(t.L_OLD_DAILY_RECORD_O,"broadcast unsubscribe success"),null===(p=null===(R=this._context)||void 0===R?void 0:R.logger)||void 0===p||p.info(t.L_AUDIENCE_CLIENT_UNSUBSCRIBE_R,JSON.stringify({status:i.SUCCESSED,liveUrl:this._liveUrl,msg:"broadcast unsubscribe success"}))),this._clearSubscribeInfo(),{code:v}}))}registerReportListener(e){this._reportListener=e}registerTrackEventListener(e){this._appListener=e}_onTrackReady(e){var i,r,o,n;const{track:s}=e.receiver,a="audio"===s.kind?exports.RCMediaType.AUDIO_ONLY:exports.RCMediaType.VIDEO_ONLY,d=this._subTracks[a];d.__innerSetMediaStreamTrack(s);try{null===(r=null===(i=this._appListener)||void 0===i?void 0:i.onTrackReady)||void 0===r||r.call(i,d)}catch(e){null===(n=null===(o=this._context)||void 0===o?void 0:o.logger)||void 0===n||n.error(t.L_OLD_DAILY_RECORD_O,JSON.stringify(e))}}}var Ds,ks;exports.RCInnerCDNPullKind=void 0,(Ds=exports.RCInnerCDNPullKind||(exports.RCInnerCDNPullKind={})).RTMP="rtmp",Ds.FLV="flv",Ds.HLS="hls",exports.RCInnerCDNPullIsHttps=void 0,(ks=exports.RCInnerCDNPullIsHttps||(exports.RCInnerCDNPullIsHttps={}))[ks.NOT_HTTPS=0]="NOT_HTTPS",ks[ks.HTTPS=1]="HTTPS";const bs=Object.assign(Object.assign({},ct(exports.RCResolution.W176_H144)),{frameRate:ut(exports.RCFrameRate.FPS_15)});class xs{constructor(e,i,r,n,s,a,d,c=ho()){this._context=e,this._runtime=i,this._initOptions=r,this._roomId=n,this._joinResData=s,this.livingType=a,this._useMutilPeerC=d,this._clientSessionId=c,this._roomAnchorList=[],this._roomRes={},this._roomAnchorRes={},this._remoteTracks={},this._appListener=null,this._pc=null,this._subscribedList=[],this._sessionId="",this._destroyed=!1,this._isPulling=!1,this._pullTime=0,this._reportListener=null,this._setInitData(),this._service=new wo(this._runtime,this._context,this._initOptions.mediaServer,this._initOptions.timeout),this._polarisReport=new fn(this._context,this._runtime,this._roomId,this,Zo.Audience),this._polarisReport.sendR1(),this._peerCManager=new Ln(this._useMutilPeerC,this._roomId,this._reTryExchange.bind(this),this._context.getCurrentId(),this._polarisReport),this._context.registerRTCSignalListener((e=>o(this,void 0,void 0,(function*(){var i,r;const{time:o,type:n,roomId:s}=this._context.decodeRtcNotify(e);if(null===(r=null===(i=this._context)||void 0===i?void 0:i.logger)||void 0===r||r.warn(t.L_OLD_DAILY_RECORD_O,`registerRTCSignalListener -> ${JSON.stringify({time:o,type:n,roomId:s})}`),1===n)this._startPull(s,o)}))))}_startPull(e,i){var n,s;return o(this,void 0,void 0,(function*(){if(this._isPulling)return;this._isPulling=!0;if(this._pullTime>i)return void(this._isPulling=!1);const{code:o,data:a}=yield this._context.pullRTCRoomEntry(e);if(o===r.ErrorCode.SUCCESS){this._isPulling=!1,this._pullTime=a.syncTime||0;const i=(null==a?void 0:a.kvEntries)||[];null===(s=null===(n=this._context)||void 0===n?void 0:n.logger)||void 0===s||s.info(t.L_OLD_DAILY_RECORD_O,`_startPull -> ${JSON.stringify(i)}`),this.singalDataChange(i,e)}}))}_setInitData(){const{sessionId:e,remoteUserIds:t,remoteRTCUris:i,remoteMUCUris:r,remoteTracks:o,CDNUris:n}=mt(this._roomId,this._joinResData.kvEntries);this._sessionId=e,this._roomAnchorList=t,o.forEach((e=>{this._remoteTracks[e.getTrackId()]=e})),this._CDNUris=n,i.forEach((e=>{const t=e.msid.split("_")[0];this._roomAnchorRes[t]?this._roomAnchorRes[t].push(e):this._roomAnchorRes[t]=[e]})),r.forEach((e=>{const{mediaType:t,tag:i}=e,r=[this._roomId,i,t].join("_");this._roomRes[r]=e})),i.forEach((e=>{const t=rt(e);this._roomRes[t]=e}))}_assertRoomDestroyed(){var e,i;if(this._destroyed){const r="This room has been destroyed. Please use `RCRTCClient.joinLivingRoomAsAudience` to catch another instance.";return null===(i=null===(e=this._context)||void 0===e?void 0:e.logger)||void 0===i||i.warn(t.L_OLD_DAILY_RECORD_O,r),exports.RCRTCCode.ROOM_HAS_BEEN_DESTROYED}}singalDataChange(e,r){var o,n,s,a,d,c,_,l,u,h,R;if(null===(n=null===(o=this._context)||void 0===o?void 0:o.logger)||void 0===n||n.info(t.L_AUDIENCE_LIVING_ROOM_SINGAL_DATA_CHANGE_T,JSON.stringify({singalData:e,roomId:r,userId:this._context.getCurrentId()})),r!==this._roomId)return null===(a=null===(s=this._context)||void 0===s?void 0:s.logger)||void 0===a||a.warn(t.L_OLD_DAILY_RECORD_O,`singalDataChange -> not the current room data: data roomId: ${r}, current roomId: ${this._roomId}`),void(null===(c=null===(d=this._context)||void 0===d?void 0:d.logger)||void 0===c||c.error(t.L_AUDIENCE_LIVING_ROOM_SINGAL_DATA_CHANGE_R,JSON.stringify({status:i.FAILED,code:"",msg:`id inconsistency -> params id:${r},current id:${this._roomId}`})));null===(l=null===(_=this._context)||void 0===_?void 0:_.logger)||void 0===l||l.debug(t.L_OLD_DAILY_RECORD_O,`singalDataChange -> singalData: ${JSON.stringify(e||{})}`);const p=[],v=null===(u=e.filter((e=>"RC_CDN"===e.key))[0])||void 0===u?void 0:u.value;v&&this._diffCDNUris(JSON.parse(JSON.parse(v).cdn_uris)[0]),e.forEach((e=>{const{key:t,value:i,timestamp:r,uid:o}=e;if(-1!==t.indexOf("RC_RES_")){const e=JSON.parse(i||"{}"),t=JSON.parse(e.mcu_uris||"[]"),r=JSON.parse(e.uris||"[]");return p.push(...t),void this._diffAnchorResource(r,o)}if("RC_ANCHOR_LIST"===t){const e=JSON.parse(i||"[]"),{joinUserIds:t,leftUserIds:r}=this._diffAnchorList(e);t.length>0&&this._handleNewJoinedAnchor(t),r.length>0&&this._handleLeftedAnchor(r)}})),this._diffRoomResource(p),null===(R=null===(h=this._context)||void 0===h?void 0:h.logger)||void 0===R||R.info(t.L_AUDIENCE_LIVING_ROOM_SINGAL_DATA_CHANGE_R,JSON.stringify({status:i.SUCCESSED,singalData:e,roomId:r,userId:this._context.getCurrentId()}))}_diffAnchorList(e){const t=e.filter((e=>this._roomAnchorList.indexOf(e)<0));return{leftUserIds:this._roomAnchorList.filter((t=>e.indexOf(t)<0)),joinUserIds:t}}_handleNewJoinedAnchor(e){var r,o;this._roomAnchorList.push(...e),null===(o=null===(r=this._context)||void 0===r?void 0:r.logger)||void 0===o||o.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onAnchorJoin",list:e})),this._callAppListener("onAnchorJoin",e)}_handleLeftedAnchor(e){var r,n;return o(this,void 0,void 0,(function*(){this._roomAnchorList=this._roomAnchorList.filter((t=>!(e.indexOf(t)>-1)));const o=[];e.forEach((e=>{o.push(...this.getRemoteTracksByUserId(e)),delete this._roomAnchorRes[e]})),o.length&&(yield this.unsubscribe(o),o.forEach((e=>delete this._remoteTracks[e.getTrackId()]))),null===(n=null===(r=this._context)||void 0===r?void 0:r.logger)||void 0===n||n.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onAnchorLeave",list:e})),this._callAppListener("onAnchorLeave",e)}))}_diffRoomResource(e){var r,n;return o(this,void 0,void 0,(function*(){const o=[],s=[],a=[];e.forEach((e=>{const t=rt(e),{userId:i,tag:r,mediaType:n}=ot(t),s=[this._roomId,r,n].join("_");if(!this._remoteTracks[s]){const t=n===exports.RCMediaType.AUDIO_ONLY?new qe(r,"",this._roomId):new We(r,"",this._roomId);o.push(t),this._remoteTracks[s]=t,this._roomRes[t.getTrackId()]=e}a.push(s)})),Object.keys(this._remoteTracks).forEach((e=>{a.indexOf(e)<0&&this._remoteTracks[e].isMCUTrack()&&s.push(this._remoteTracks[e])})),o.length>0&&(null===(n=null===(r=this._context)||void 0===r?void 0:r.logger)||void 0===n||n.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onTrackPublish",trackIds:o.map((e=>e.getTrackId()))})),this._callAppListener("onTrackPublish",o)),s.length>0&&this._onUserUnpublish(s,"onTrackUnpublish")}))}_diffAnchorResource(e,r){var n,s,a,d,c,_,l,u,h,R;return o(this,void 0,void 0,(function*(){const o=this._roomAnchorRes[r]||(this._roomAnchorRes[r]=[]),{publishedList:p,unpublishedList:v,modifiedList:C}=at(o,e);if(p.length){const e=o.map(rt),r=[],l=[];if(p.forEach((t=>{const i=rt(t),n=e.indexOf(i),{userId:s,tag:a,mediaType:d}=ot(i);n>-1?o[n]=t:o.push(t);let c=this._remoteTracks[i];this._roomRes[i]=t,c?c.isSubscribed()&&r.push(c):(c=d===exports.RCMediaType.AUDIO_ONLY?new qe(a,s):new We(a,s),this._remoteTracks[i]=c,l.push(c)),c.__innerSetRemoteMuted(0===t.state)})),r.length){const e=r.map((e=>e.getTrackId()));null===(s=null===(n=this._context)||void 0===n?void 0:n.logger)||void 0===s||s.debug(t.L_OLD_DAILY_RECORD_O,`resub tracks -> ${JSON.stringify(e)}`);const{code:i}=yield Ns((()=>this._subscribeHandle(r,!0)));i!==exports.RCRTCCode.SUCCESS&&(null===(d=null===(a=this._context)||void 0===a?void 0:a.logger)||void 0===d||d.error(t.L_OLD_DAILY_RECORD_O,`resub tracks failed -> code: ${i}, ids: ${JSON.stringify(e)}`))}null===(_=null===(c=this._context)||void 0===c?void 0:c.logger)||void 0===_||_.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onAnchorTrackPublish",trackIds:l.map((e=>e.getTrackId()))})),this._callAppListener("onAnchorTrackPublish",l)}if(v.length){const e=v.map(rt);for(let t=o.length-1;t>=0;t-=1){const i=o[t];e.includes(rt(i))&&o.splice(t,1)}const t=v.map((e=>{const t=rt(e);return this._remoteTracks[t]}));yield this._onUserUnpublish(t,"onAnchorTrackUnpublish")}if(C.length){const e=o.map(rt);for(let r=0;r<C.length;r++){const n=C[r],s=rt(n),a=e.indexOf(s);o[a].state=n.state;const d=this._remoteTracks[s];d.__innerSetRemoteMuted(0===n.state),d.isAudioTrack()?(null===(u=null===(l=this._context)||void 0===l?void 0:l.logger)||void 0===u||u.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onAudioMuteChange",trackId:d.getTrackId()})),this._callAppListener("onAudioMuteChange",d)):(null===(R=null===(h=this._context)||void 0===h?void 0:h.logger)||void 0===R||R.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onVideoMuteChange",trackId:d.getTrackId()})),this._callAppListener("onVideoMuteChange",d))}}}))}_onUserUnpublish(e,r){var n,s;return o(this,void 0,void 0,(function*(){yield this.unsubscribe(e),e.forEach((e=>{this._subscribedList=this._subscribedList.filter((t=>t.track.getTrackId()!==e.getTrackId())),delete this._roomRes[e.getTrackId()],e.__innerDestroy(),delete this._remoteTracks[e.getTrackId()]})),null===(s=null===(n=this._context)||void 0===n?void 0:n.logger)||void 0===s||s.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:r,trackIds:e.map((e=>e.getTrackId()))})),this._callAppListener(r,e)}))}_callAppListener(e,...i){var r,o,n,s,a;null===(o=null===(r=this._context)||void 0===r?void 0:r.logger)||void 0===o||o.info(t.L_OLD_DAILY_RECORD_O,`${e} callback -> ${JSON.stringify(i)}`);const d=null===(n=this._appListener)||void 0===n?void 0:n[e];if(d)try{d(...i)}catch(e){null===(a=null===(s=this._context)||void 0===s?void 0:s.logger)||void 0===a||a.error(t.L_OLD_DAILY_RECORD_O,JSON.stringify(e))}}_reTryExchange(){return o(this,void 0,void 0,(function*(){Ns((()=>o(this,void 0,void 0,(function*(){var e,i,r,o,n;const{reqBody:s}=yield this._createSubscribeParams(this._subscribedList,{},!0),a=yield this._exchangeHandle(s);if(a.code!==exports.RCRTCCode.SUCCESS)return null===(i=null===(e=this._context)||void 0===e?void 0:e.logger)||void 0===i||i.error(t.L_OLD_DAILY_RECORD_O,`reTryExchange failed: ${a.code}`),{code:a.code};const{sdp:d,resultCode:c}=a.data;if(c!==exports.RCRTCCode.SUCCESS)return null===(o=null===(r=this._context)||void 0===r?void 0:r.logger)||void 0===o||o.error(t.L_OLD_DAILY_RECORD_O,`reTryExchange failed: ${c}`),{code:c};this._pc.clearReTryExchangeTimer();const _=this._subscribedList.filter((e=>e.track.isMCUTrack()));if(_.length>0){const e=_[0].track.getTrackId(),t=null===(n=this._roomRes[e])||void 0===n?void 0:n.msid,i=[this._roomId,"RongCloudRTC"].join("_");d.sdp=d.sdp.replace(new RegExp(t,"g"),i)}const l=yield this._pc.setRemoteAnswer(d.sdp);return l!==exports.RCRTCCode.SUCCESS?{code:l}:void 0}))),"audience-retry-exchange")}))}_createSubscribeParams(e,t,i){return o(this,void 0,void 0,(function*(){const r=yield this._pc.createOffer(i),o={resolutionInfo:[]},n={min:0,max:0};Object.keys(t).forEach((e=>{const{mediaStream:i,tinyStream:s}=t[e];[i,s].forEach(((t,i)=>{var s;const a=1===i?[e,"tiny"].join("_"):e;r.sdp=null===(s=r.sdp)||void 0===s?void 0:s.replace(new RegExp(t.id,"g"),a);const d=t.getVideoTracks()[0];if(!d)return;const c=0===i,{width:_,height:l,frameRate:u}=c?tt(d):bs;o.resolutionInfo.push({trackId:d.id,simulcast:c?Bo.NORMAL:Bo.TINY,resolution:`${_}x${l}`});const h=fe(_,l),R=Le(u);n.min+=h.minBitrate*R,n.max+=h.maxBitrate*R}))}));return{reqBody:{sdp:r,switchstream:!1,newVersionFlag:!0,subscribeList:e.map((e=>({simulcast:e.subTiny?Bo.TINY:Bo.NORMAL,resolution:"",uri:this._roomRes[e.track.getTrackId()].uri})))},dynamicBitrate:n,offer:r}}))}_subscribeHandle(e,n=!1){var s,a,d,c,_,l,u,h,R;return o(this,void 0,void 0,(function*(){if(this._assertRoomDestroyed())return null===(a=null===(s=this._context)||void 0===s?void 0:s.logger)||void 0===a||a.error(t.L_AUDIENCE_LIVING_ROOM_SUBSCRIBE_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.ROOM_HAS_BEEN_DESTROYED,msg:"room destroyed"})),{code:exports.RCRTCCode.ROOM_HAS_BEEN_DESTROYED};if(!r.validate("tracks",e,(()=>r.isArray(e)&&e.length>0&&e.every((e=>e instanceof Ye||e.track instanceof Ye))),!0))return null===(c=null===(d=this._context)||void 0===d?void 0:d.logger)||void 0===c||c.error(t.L_AUDIENCE_LIVING_ROOM_SUBSCRIBE_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> tracks"})),{code:exports.RCRTCCode.PARAMS_ERROR};const{pc:o,pcName:p}=this._peerCManager.createPeerCList(e)[0];this._pc=o,this._pc.__reportR3R4ToPolaris(),this._pcName=p,this._pc.registerReportListener(this._reportListener),this._addPeerCEvent();const v=this._subscribedList.map((e=>Object.assign({},e))),C=e.map((e=>e instanceof Ye?{track:e}:e));let g=!1;const m=[];return C.forEach((e=>{const t=e.track.getTrackId();m.push(t);const i=v.find((e=>e.track.getTrackId()===t));i&&i.subTiny===e.subTiny||(i?i.subTiny=e.subTiny:v.push(e),g=!0)})),g||n?(null===(u=this._polarisReport)||void 0===u||u.sendR2(dn.SUBSCRIBE,cn.BEGIN,m),null===(R=null===(h=this._context)||void 0===h?void 0:h.logger)||void 0===R||R.info(t.L_AUDIENCE_LIVING_ROOM_SUBSCRIBE_R,JSON.stringify({status:i.SUCCESSED,trackIds:e.map(Tt),roomId:this._roomId,userId:this._context.getCurrentId(),forceReq:n})),this._updateSubListHandle(v,!0)):(null===(l=null===(_=this._context)||void 0===_?void 0:_.logger)||void 0===l||l.warn(t.L_AUDIENCE_LIVING_ROOM_SUBSCRIBE_R,JSON.stringify({status:i.FAILED,code:"",msg:"repeat subscribe"})),{code:exports.RCRTCCode.SUCCESS})}))}_addPeerCEvent(){this._pc.on(Sn.__INNER_EVENT_TRACK_READY__,(e=>{var r,o,n,s;const a=e.streams[0].id,{track:d}=e.receiver,c=[a,"audio"===d.kind?exports.RCMediaType.AUDIO_ONLY:exports.RCMediaType.VIDEO_ONLY].join("_"),_=this._remoteTracks[c];_?(_.__innerSetMediaStreamTrack(d),null===(s=null===(n=this._context)||void 0===n?void 0:n.logger)||void 0===s||s.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onTrackReady",trackId:_.getTrackId()})),this._callAppListener("onTrackReady",_)):null===(o=null===(r=this._context)||void 0===r?void 0:r.logger)||void 0===o||o.warn(t.L_OLD_DAILY_RECORD_O,`cannot found RCRemoteTrack: ${d.id}`)}))}_getReqHeaders(){const e=this._context.getCurrentId();return{"App-Key":this._context.getAppkey(),RoomId:e,Token:this._joinResData.token,RoomType:sn.LIVE,UserId:e,"Session-Id":this._sessionId,"Peer-Connection-Id":this._pcName,"Client-Session-Id":this._clientSessionId}}_exchangeHandle(e){return this._service.broadcastSubscribe(this._getReqHeaders(),e)}_updateSubListHandle(e,i=!1){var n,s,a,d,c;return o(this,void 0,void 0,(function*(){if(this._assertRoomDestroyed())return{code:exports.RCRTCCode.ROOM_HAS_BEEN_DESTROYED};if(!r.validate("resources",e,(()=>r.isArray(e)&&e.every((e=>e instanceof Ye||e.track instanceof Ye))),!0))return{code:exports.RCRTCCode.PARAMS_ERROR};let o=e.map((e=>e instanceof Ye?{track:e}:Object.assign({},e)));const _={};o=o.filter((e=>{const t=e.track.getTrackId();return!_[t]&&(_[t]=!0,!0)})).map((e=>Object.assign({},e)));const l=this._subscribedList.map((e=>Object.assign({},e)));if(!i){let e=!1;if(o.forEach((t=>{const i=l.findIndex((e=>e.track===t.track));if(-1===i)return void(e=!0);l.splice(i,1)[0].subTiny!==t.subTiny&&(e=!0)})),l.length&&(e=!0),!e)return{code:exports.RCRTCCode.SUCCESS}}this._pc.clearReTryExchangeTimer(),this._pc.updateSubRemoteTracks(o.map((e=>e.track))),Io(this._roomId,this._clientSessionId,this._sessionId),So(this._roomId,this._clientSessionId,this._sessionId),null===(s=null===(n=this._context)||void 0===n?void 0:n.logger)||void 0===s||s.info(t.L_AUDIENCE_LIVING_ROOM_SUBSCRIBE_T,JSON.stringify({trackIds:e.map(Tt),roomId:this._roomId,userId:this._context.getCurrentId(),forceReq:i}));const{reqBody:u}=yield this._createSubscribeParams(o,{},!1),h=yield this._exchangeHandle(u);if(l.length){const e=[];l.forEach((t=>{e.push(t.track.getTrackId())})),null===(a=this._pc.reportParser)||void 0===a||a.clearLatestPacketsRecv(e)}if(h.code!==exports.RCRTCCode.SUCCESS)return fo(o,h.code),{code:h.code};const{sdp:R,resultCode:p,message:v,subscribedList:C}=h.data;if(p!==exports.RCRTCCode.SUCCESS)return fo(o,p),null===(c=null===(d=this._context)||void 0===d?void 0:d.logger)||void 0===c||c.error(t.L_OLD_DAILY_RECORD_O,`change subscribe list failed: ${v}, ${p}`),{code:p};o.forEach((e=>{const{track:t}=e;if(t.isMCUTrack()){const e=this._roomRes[t.getTrackId()].msid,{tag:i,userId:r}=ot(t.getTrackId()),o=[r,i].join("_");R.sdp=R.sdp.replace(new RegExp(e,"g"),o)}}));const g=yield this._pc.setRemoteAnswer(R.sdp);if(g!==exports.RCRTCCode.SUCCESS)return fo(o,g),{code:g};fo(o,g);const m=null==C?void 0:C.map((e=>`${e.msid}_${e.mediaType}`)),T=o.filter((e=>{if(e.track.isMCUTrack()){const t=this._roomRes[e.track.getTrackId()],i=`${t.msid}_${t.mediaType}`;return m.includes(i)}return null==m?void 0:m.includes(e.track.getTrackId())})),I=null==T?void 0:T.map((e=>`${e.track.getTrackId()}`)),S=o.filter((e=>!(null==I?void 0:I.includes(e.track.getTrackId()))));for(const e in this._remoteTracks){const t=T.some((t=>t.track.getTrackId()===e));this._remoteTracks[e].__innerSetSubscribed(t)}return this._subscribedList.splice(0,this._subscribedList.length,...T),S.length?{code:exports.RCRTCCode.SUCCESS,failedList:S}:{code:exports.RCRTCCode.SUCCESS}}))}_diffCDNUris(e){var r,n,s,a,d,c;return o(this,void 0,void 0,(function*(){if(this._CDNUris.url&&!e.url)return null===(n=null===(r=this._context)||void 0===r?void 0:r.logger)||void 0===n||n.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onCDNInfoDisable"})),this._callAppListener("onCDNInfoDisable"),void(this._CDNUris=e);(!this._CDNUris||!this._CDNUris.url&&e.url)&&(null===(a=null===(s=this._context)||void 0===s?void 0:s.logger)||void 0===a||a.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onCDNInfoEnable",resolution:`W${e.w}_H${e.h}`,fps:`FPS_${e.fps}`})),this._callAppListener("onCDNInfoEnable",{resolution:`W${e.w}_H${e.h}`,fps:`FPS_${e.fps}`}));const o=this._CDNUris.w&&e.w&&this._CDNUris.w!==e.w,_=this._CDNUris.h&&e.h&&this._CDNUris.h!==e.h,l=this._CDNUris.fps&&e.fps&&this._CDNUris.fps!==e.fps;(o||_||l)&&(null===(c=null===(d=this._context)||void 0===d?void 0:d.logger)||void 0===c||c.info(t.L_ABSTRACT_ROOM_CALL_APP_LISTENER_O,JSON.stringify({status:i.SUCCESSED,eventType:"onCDNInfoChange",resolution:`W${e.w}_H${e.h}`,fps:`FPS_${e.fps}`})),this._callAppListener("onCDNInfoChange",{resolution:`W${e.w}_H${e.h}`,fps:`FPS_${e.fps}`})),this._CDNUris=e}))}_getCDNPlayUrl(e){var i,r,n,s,a,d;return o(this,void 0,void 0,(function*(){const{w:o,h:c,fps:_}=e,l=this._initOptions.pullInnerCDNProtocol||exports.RCInnerCDNPullKind.FLV,u=this._initOptions.pullInnerCDNUseHttps===exports.RCInnerCDNPullIsHttps.NOT_HTTPS?exports.RCInnerCDNPullIsHttps.NOT_HTTPS:exports.RCInnerCDNPullIsHttps.HTTPS;if(!this._CDNUris.url)return null===(r=null===(i=this._context)||void 0===i?void 0:i.logger)||void 0===r||r.error(t.L_OLD_DAILY_RECORD_O,`cdn_uris url is empty, the anchor need to open or push CDN, code: ${exports.RCRTCCode.CDN_RESOURCE_IS_EMPTY}`),{code:exports.RCRTCCode.CDN_RESOURCE_IS_EMPTY};const h={"App-Key":this._context.getAppkey(),Token:this._joinResData.token,RoomId:this.getRoomId(),UserId:this._context.getCurrentId(),SessionId:this.getSessionId()},R=[],{w:p=0,h:v=1}=this._CDNUris;p/v>1?(o&&R.push(`w=${o}`),c&&R.push(`h=${c}`)):(o&&R.push(`h=${o}`),c&&R.push(`w=${c}`)),_&&R.push(`fps=${_}`),R.push(`kind=${l}`),R.push(`is_https=${u}`);const C=R.join("&");let g=`${this._CDNUris.url}?`;C&&(g+=C);const{code:m,res:T}=yield this._service.getCDNResourceInfo(h,g);return m!==exports.RCRTCCode.SUCCESS?(null===(s=null===(n=this._context)||void 0===n?void 0:n.logger)||void 0===s||s.error(t.L_OLD_DAILY_RECORD_O,`getCDNPlayUrl failed: ${m}`),{code:m}):(null===(d=null===(a=this._context)||void 0===a?void 0:a.logger)||void 0===d||d.info(t.L_OLD_DAILY_RECORD_O,`getCDNPlayUrl success: ${null==T?void 0:T.data.pull_url}`),{code:m,CDNPlayUrl:null==T?void 0:T.data.pull_url})}))}getCDNPlayUrl(e,r){var n,s,a,d,c,_,l,u,h,R,p,v;return o(this,void 0,void 0,(function*(){if(null===(s=null===(n=this._context)||void 0===n?void 0:n.logger)||void 0===s||s.info(t.L_AUDIENCE_LIVING_ROOM_GET_CDN_PLAY_URL_T,JSON.stringify({resolution:e,fps:r})),e&&!_t(e))return null===(d=null===(a=this._context)||void 0===a?void 0:a.logger)||void 0===d||d.error(t.L_OLD_DAILY_RECORD_O,"`resolution` is invalid"),null===(_=null===(c=this._context)||void 0===c?void 0:c.logger)||void 0===_||_.error(t.L_AUDIENCE_LIVING_ROOM_GET_CDN_PLAY_URL_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> resolution"})),{code:exports.RCRTCCode.PARAMS_ERROR};if(r&&!lt(r))return null===(u=null===(l=this._context)||void 0===l?void 0:l.logger)||void 0===u||u.error(t.L_OLD_DAILY_RECORD_O,"`fps` is invalid"),null===(R=null===(h=this._context)||void 0===h?void 0:h.logger)||void 0===R||R.error(t.L_AUDIENCE_LIVING_ROOM_GET_CDN_PLAY_URL_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> fps"})),{code:exports.RCRTCCode.PARAMS_ERROR};const{width:o,height:C}=e?ct(e):{width:null,height:null},g=r?ut(r):null,m={};return o&&(m.w=o),C&&(m.h=C),g&&(m.fps=g),null===(v=null===(p=this._context)||void 0===p?void 0:p.logger)||void 0===v||v.info(t.L_AUDIENCE_LIVING_ROOM_GET_CDN_PLAY_URL_R,JSON.stringify({status:i.SUCCESSED,resolution:e,fps:r})),this._getCDNPlayUrl(m)}))}subscribe(e){return o(this,void 0,void 0,(function*(){return Uo(!0),Ns((()=>this._subscribeHandle(e,!1)),"audience-sub")}))}addSubscribeTask(e){return o(this,void 0,void 0,(function*(){return Uo(!0),Ns((()=>this._subscribeHandle(e,!1)),"audience-sub")}))}__unsubscribe(e){var n,s,a,d,c,_,l,u,h;return o(this,void 0,void 0,(function*(){if(null===(s=null===(n=this._context)||void 0===n?void 0:n.logger)||void 0===s||s.info(t.L_AUDIENCE_LIVING_ROOM_UNSUBSCRIBE_T,JSON.stringify({trackIds:e.map((e=>e.getTrackId())),roomId:this._roomId,userId:this._context.getCurrentId()})),!r.validate("tracks",e,(()=>r.isArray(e)&&e.length>0&&e.every((e=>e instanceof Ye))),!0))return null===(d=null===(a=this._context)||void 0===a?void 0:a.logger)||void 0===d||d.error(t.L_OLD_DAILY_RECORD_O,`unsubscribe failed, tracks is invalid -> roomId: ${this._roomId}`),null===(_=null===(c=this._context)||void 0===c?void 0:c.logger)||void 0===_||_.error(t.L_AUDIENCE_LIVING_ROOM_UNSUBSCRIBE_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> tracks"})),{code:exports.RCRTCCode.PARAMS_ERROR};const o=this._subscribedList.map((e=>Object.assign({},e))).filter((t=>!e.includes(t.track)));return null===(l=this._polarisReport)||void 0===l||l.sendR2(dn.SUBSCRIBE,cn.END,e.map((e=>e.getTrackId()))),null===(h=null===(u=this._context)||void 0===u?void 0:u.logger)||void 0===h||h.info(t.L_AUDIENCE_LIVING_ROOM_UNSUBSCRIBE_R,JSON.stringify({status:i.SUCCESSED,trackIds:e.map((e=>e.getTrackId())),roomId:this._roomId,userId:this._context.getCurrentId()})),Po(!0),this._updateSubListHandle(o,!1)}))}unsubscribe(e){return o(this,void 0,void 0,(function*(){return Ns((()=>this.__unsubscribe(e)),"audience-unsub")}))}addUnsubscribeTask(e){return o(this,void 0,void 0,(function*(){return Ns((()=>this.__unsubscribe(e)),"audience-unsub")}))}__destroy(e){var t,i;return o(this,void 0,void 0,(function*(){this._destroyed||(this._destroyed=!0,null===(t=this._audioLevelReport)||void 0===t||t.clearAudioLevelReportTimer(),e&&(yield this._context.quitLivingRoomAsAudience(this._roomId)),yield this._service.broadcastExit(this._getReqHeaders()),null===(i=this._pc)||void 0===i||i.destroy(),mo.destroy(),this._polarisReport=null,this._context.registerRTCSignalListener(void 0))}))}getRemoteTrack(e){return this._remoteTracks[e]}__getPC(){return this._peerCManager.getPCList()}getLocalTrack(e){return{}}__onReconnected(){var e,i;return o(this,void 0,void 0,(function*(){const{code:o}=yield this._context.joinLivingRoomAsAudience(this._roomId,sn.LIVE);o!==r.ErrorCode.SUCCESS&&(null===(i=null===(e=this._context)||void 0===e?void 0:e.logger)||void 0===i||i.error(t.L_OLD_DAILY_RECORD_O,"join living room error when on reconnected"))}))}registerRoomEventListener(e){this._appListener=e}onAudioLevelChange(e,r){var o,n,s;null===(o=this._audioLevelReport)||void 0===o||o.clearAudioLevelReportTimer(),this._audioLevelReport=new On(this),this._audioLevelReport.onAudioLevelChange(e,r||1e3),null===(s=null===(n=this._context)||void 0===n?void 0:n.logger)||void 0===s||s.info(t.L_AUDIENCE_LIVING_ROOM_AUDIO_LEVEL_CHANGE_O,JSON.stringify({status:i.SUCCESSED,handler:null==e?void 0:e.name,gap:r}))}registerReportListener(e){this._reportListener=e}getRoomId(){return this._roomId}getCrtUserId(){return this._context.getCurrentId()}getSessionId(){return this._sessionId}getRemoteUserIds(){return this._roomAnchorList}getRemoteTracksByUserId(e){const t=[];for(const i in this._remoteTracks){const r=this._remoteTracks[i];r.getUserId()===e&&t.push(r)}return t}getRemoteTracks(){const e=[],t=[];for(const e in this._remoteTracks){if(2===t.length)break;const i=this._remoteTracks[e];i.isMCUTrack()&&t.push(i)}return this._roomAnchorList.forEach((t=>{e.push(...this.getRemoteTracksByUserId(t))})),[...t,...e]}getRemoteRTCTracks(){const e=[];for(const t in this._remoteTracks){const i=this._remoteTracks[t];i.isMCUTrack()||e.push(i)}return e}getRemoteMCUTracks(){const e=[];for(const t in this._remoteTracks){const i=this._remoteTracks[t];i.isMCUTrack()&&e.push(i)}return e}getCDNInfo(){return this._CDNUris.w?{resolution:`W${this._CDNUris.w}_H${this._CDNUris.h}`,fps:`FPS_${this._CDNUris.fps}`,CDNEnable:this._CDNUris.enableInnerCDN}:{CDNEnable:!1}}getClientSessionId(){return this._clientSessionId}}class Us{constructor(e){this._context=e,this._isElectron=/Electron/.test(navigator.userAgent)}_getMediaStream(e,t="getUserMedia"){return o(this,void 0,void 0,(function*(){try{const i=this.setConstraintsConfig(e),r=yield navigator.mediaDevices[t](i);return{code:exports.RCRTCCode.SUCCESS,stream:r}}catch(e){if("Permission denied"===e.message)return{code:exports.RCRTCCode.BROWSER_PERMISSION_DENIED};if("Permission denied by system"===e.message)return{code:exports.RCRTCCode.SYSTEM_PERMISSION_DENIED}}return{code:"getUserMedia"===t?exports.RCRTCCode.GET_USER_MEDIA_FAILED:exports.RCRTCCode.GET_DISPLAY_MEDIA_FAILED}}))}_getMediaStreamErrorReason(e){let t="";return e===exports.RCRTCCode.BROWSER_PERMISSION_DENIED&&(t="Permission denied"),e===exports.RCRTCCode.SYSTEM_PERMISSION_DENIED&&(t="Permission denied by system"),t}setConstraintsConfig(e){var i,r;if((null==e?void 0:e.audio)&&!this._isElectron){"boolean"==typeof e.audio&&(e.audio={});const o=navigator.mediaDevices.getSupportedConstraints();o.noiseSuppression&&(e.audio.noiseSuppression=!!o.noiseSuppression),o.autoGainControl&&(e.audio.autoGainControl=!!o.autoGainControl),o.echoCancellation&&(e.audio.echoCancellation=!!o.echoCancellation),null===(r=null===(i=this._context)||void 0===i?void 0:i.logger)||void 0===r||r.info(t.L_SET_AUDIO_CONSTRAINTS_O,`browser supported -> ${JSON.stringify(o)}`)}return e}createMicrophoneAudioTrack(e="RongCloudRTC",r){var n,s,a,d,c,_,l,u;return o(this,void 0,void 0,(function*(){if(!Qe(e))return null===(s=null===(n=this._context)||void 0===n?void 0:n.logger)||void 0===s||s.error(t.L_RTC_CLIENT_CREATE_MICROPHONE_AUDIO_TRACK_O,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.INVALID_TAGS,msg:"invalid tag"})),{code:exports.RCRTCCode.INVALID_TAGS};const o=this._context.getCurrentId();if(!o)return null===(d=null===(a=this._context)||void 0===a?void 0:a.logger)||void 0===d||d.error(t.L_RTC_CLIENT_CREATE_MICROPHONE_AUDIO_TRACK_O,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.INVALID_USER_ID,msg:"invalid IM connection,invalid userId"})),{code:exports.RCRTCCode.INVALID_USER_ID};const{stream:h,code:R}=yield this._getMediaStream({audio:{deviceId:null==r?void 0:r.micphoneId,sampleRate:null==r?void 0:r.sampleRate}});if(R!==exports.RCRTCCode.SUCCESS)return null===(_=null===(c=this._context)||void 0===c?void 0:c.logger)||void 0===_||_.error(t.L_RTC_CLIENT_CREATE_MICROPHONE_AUDIO_TRACK_O,JSON.stringify({status:i.FAILED,code:R,msg:this._getMediaStreamErrorReason(R)})),{code:R};const p=h.getAudioTracks()[0],v=new Ke(e,o,p);return null===(u=null===(l=this._context)||void 0===l?void 0:l.logger)||void 0===u||u.info(t.L_RTC_CLIENT_CREATE_MICROPHONE_AUDIO_TRACK_O,JSON.stringify({status:i.SUCCESSED,trackId:v.getTrackId()})),{code:R,track:v}}))}createCameraVideoTrack(e="RongCloudRTC",r){var n,s,a,d,c,_,l,u;return o(this,void 0,void 0,(function*(){if(!Qe(e))return null===(s=null===(n=this._context)||void 0===n?void 0:n.logger)||void 0===s||s.error(t.L_RTC_CLIENT_CREATE_CAMERA_VIDEO_TRACK_O,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.INVALID_TAGS,msg:"invalid tag"})),{code:exports.RCRTCCode.INVALID_TAGS};const o=this._context.getCurrentId();if(!o)return null===(d=null===(a=this._context)||void 0===a?void 0:a.logger)||void 0===d||d.error(t.L_RTC_CLIENT_CREATE_CAMERA_VIDEO_TRACK_O,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.INVALID_TAGS,msg:"invalid IM connection,invalid userId"})),{code:exports.RCRTCCode.INVALID_USER_ID};const h=_t(null==r?void 0:r.resolution)?r.resolution:exports.RCResolution.W640_H480,{width:R,height:p}=ct(h),{stream:v,code:C}=yield this._getMediaStream({video:{deviceId:null==r?void 0:r.cameraId,frameRate:ut((null==r?void 0:r.frameRate)||exports.RCFrameRate.FPS_15),width:R,height:p,facingMode:null==r?void 0:r.faceMode}});if(C!==exports.RCRTCCode.SUCCESS)return null===(_=null===(c=this._context)||void 0===c?void 0:c.logger)||void 0===_||_.error(t.L_RTC_CLIENT_CREATE_CAMERA_VIDEO_TRACK_O,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.INVALID_TAGS,msg:this._getMediaStreamErrorReason(C)})),{code:C};const g=v.getVideoTracks()[0],m=new He(e,o,g);return null===(u=null===(l=this._context)||void 0===l?void 0:l.logger)||void 0===u||u.info(t.L_RTC_CLIENT_CREATE_CAMERA_VIDEO_TRACK_O,JSON.stringify({status:i.SUCCESSED,trackId:m.getTrackId()})),{code:C,track:m}}))}createMicrophoneAndCameraTracks(e="RongCloudRTC",r){var n,s,a,d,c,_,l,u,h,R,p,v,C,g;return o(this,void 0,void 0,(function*(){const o=[];if(!Qe(e))return null===(s=null===(n=this._context)||void 0===n?void 0:n.logger)||void 0===s||s.error(t.L_RTC_CLIENT_CREATE_MICROPHONE_AND_CAMERA_TRACKS_O,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.INVALID_TAGS,msg:"invalid tag"})),{code:exports.RCRTCCode.INVALID_TAGS,tracks:o};const m=this._context.getCurrentId();if(!m)return null===(d=null===(a=this._context)||void 0===a?void 0:a.logger)||void 0===d||d.error(t.L_RTC_CLIENT_CREATE_MICROPHONE_AND_CAMERA_TRACKS_O,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.INVALID_USER_ID,msg:"invalid IM connection,invalid userId"})),{code:exports.RCRTCCode.INVALID_USER_ID,tracks:o};const T=_t(null===(c=null==r?void 0:r.video)||void 0===c?void 0:c.resolution)?r.video.resolution:exports.RCResolution.W640_H480,{width:I,height:S}=ct(T),{stream:E,code:f}=yield this._getMediaStream({video:{deviceId:null===(_=null==r?void 0:r.video)||void 0===_?void 0:_.cameraId,frameRate:ut((null===(l=null==r?void 0:r.video)||void 0===l?void 0:l.frameRate)||exports.RCFrameRate.FPS_15),width:I,height:S,facingMode:null===(u=null==r?void 0:r.video)||void 0===u?void 0:u.faceMode},audio:{deviceId:null===(h=null==r?void 0:r.audio)||void 0===h?void 0:h.micphoneId,sampleRate:null===(R=null==r?void 0:r.audio)||void 0===R?void 0:R.sampleRate}});return f!==exports.RCRTCCode.SUCCESS?(null===(v=null===(p=this._context)||void 0===p?void 0:p.logger)||void 0===v||v.error(t.L_RTC_CLIENT_CREATE_MICROPHONE_AND_CAMERA_TRACKS_O,JSON.stringify({status:i.FAILED,code:f,msg:this._getMediaStreamErrorReason(f)})),{code:f,tracks:o}):(E.getTracks().forEach((t=>{"video"===t.kind?o.push(new He(e,m,t)):o.unshift(new Ke(e,m,t))})),null===(g=null===(C=this._context)||void 0===C?void 0:C.logger)||void 0===g||g.info(t.L_RTC_CLIENT_CREATE_MICROPHONE_AND_CAMERA_TRACKS_O,JSON.stringify({status:i.SUCCESSED,trackIds:o.map((e=>e.getTrackId()))})),{code:f,tracks:o})}))}createScreenVideoTrack(e="screenshare",i){return o(this,void 0,void 0,(function*(){const r=yield this._createScreenTracks(e,!1,t.L_RTC_CLIENT_CREATE_SCREEN_VIDEO_TRACK_O,i);return r.code===exports.RCRTCCode.SUCCESS?{code:r.code,track:r.tracks[0]}:r}))}createScreenWithAudioTracks(e="screenshare",i){return o(this,void 0,void 0,(function*(){return this._createScreenTracks(e,!0,t.L_RTC_CLIENT_CREATE_SCREEN_VIDEO_AND_AUDIO_TRACKS_O,i)}))}_createScreenTracks(e,n,s,a){var d,c,_,l,u,h,R,p,v,C,g,m,T,I,S,E;return o(this,void 0,void 0,(function*(){if(!Qe(e))return null===(c=null===(d=this._context)||void 0===d?void 0:d.logger)||void 0===c||c.error(s,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.INVALID_TAGS,msg:"invalid tag"})),{code:exports.RCRTCCode.INVALID_TAGS};const o=this._context.getCurrentId();if(!o)return null===(l=null===(_=this._context)||void 0===_?void 0:_.logger)||void 0===l||l.error(s,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.INVALID_USER_ID,msg:"invalid IM connection,invalid userId"})),{code:exports.RCRTCCode.INVALID_USER_ID};if(!pt())return null===(h=null===(u=this._context)||void 0===u?void 0:u.logger)||void 0===h||h.error(t.L_RTC_CLIENT_CREATE_SCREEN_VIDEO_TRACK_O,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.BROWSER_NOT_SUPPORT,msg:"browser not support"})),{code:exports.RCRTCCode.BROWSER_NOT_SUPPORT};const f=/macintosh|mac os x/i.test(navigator.userAgent);this._isElectron&&f&&n&&(null===(p=null===(R=this._context)||void 0===R?void 0:R.logger)||void 0===p||p.warn(s,JSON.stringify({status:i.INFO,code:exports.RCRTCCode.MAC_IN_ELECTRON_NOT_SUPPORT_SCREEN_SHARE_WITH_AUDIO,msg:"mac in electron not support screen share with audio"})));const O=(!this._isElectron||!f)&&n;if(this._isElectron&&!r.isUndefined(null==a?void 0:a.chromeMediaSourceId)&&!r.isString(null==a?void 0:a.chromeMediaSourceId))return null===(C=null===(v=this._context)||void 0===v?void 0:v.logger)||void 0===C||C.error(s,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> options.chromeMediaSourceId type is string"})),{code:exports.RCRTCCode.PARAMS_ERROR};const L=_t(null==a?void 0:a.resolution)?a.resolution:exports.RCResolution.W1280_H720,{width:A,height:N}=ct(L),y=this._isElectron?{mandatory:{chromeMediaSourceId:null==a?void 0:a.chromeMediaSourceId,chromeMediaSource:"desktop",minWidth:A,maxWidth:A,minHeight:N,maxHeight:N}}:{frameRate:ut((null==a?void 0:a.frameRate)||exports.RCFrameRate.FPS_15),width:A,height:N};!(null==a?void 0:a.chromeMediaSourceId)&&this._isElectron&&(null===(g=y.mandatory)||void 0===g||delete g.chromeMediaSourceId);let D=null;O&&this._isElectron&&(null===(m=y.mandatory)||void 0===m||delete m.chromeMediaSourceId,D={mandatory:{chromeMediaSource:"desktop"}});const{stream:k,code:b}=yield this._getMediaStream({video:y,audio:D||O},this._isElectron?"getUserMedia":"getDisplayMedia");if(b!==exports.RCRTCCode.SUCCESS)return null===(I=null===(T=this._context)||void 0===T?void 0:T.logger)||void 0===I||I.error(s,JSON.stringify({status:i.FAILED,code:b,msg:this._getMediaStreamErrorReason(b)})),{code:b};const x=k.getVideoTracks()[0],U=[new je(e,o,x)];if(O){const t=k.getAudioTracks()[0];t&&U.push(new $e(e,o,t))}return null===(E=null===(S=this._context)||void 0===S?void 0:S.logger)||void 0===E||E.info(s,JSON.stringify({status:i.SUCCESSED,trackIds:U.map((e=>e.getTrackId()))})),{code:b,tracks:U}}))}createLocalAudioTrack(e,r){var n,s,a,d,c,_,l,u;return o(this,void 0,void 0,(function*(){if(!Qe(e))return null===(s=null===(n=this._context)||void 0===n?void 0:n.logger)||void 0===s||s.error(t.L_RTC_CLIENT_CREATE_LOCAL_AUDIO_TRACK_O,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.INVALID_TAGS,msg:"invalid tag"})),{code:exports.RCRTCCode.INVALID_TAGS};if(!r||"[object MediaStreamTrack]"!==r.toString()||"audio"!==r.kind)return null===(d=null===(a=this._context)||void 0===a?void 0:a.logger)||void 0===d||d.error(t.L_RTC_CLIENT_CREATE_LOCAL_AUDIO_TRACK_O,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.CREATE_CUSTOM_TRACK_FAILED,msg:"params track is not MediaStreamTrack or kind is not audio"})),{code:exports.RCRTCCode.CREATE_CUSTOM_TRACK_FAILED};const o=this._context.getCurrentId();if(!o)return null===(_=null===(c=this._context)||void 0===c?void 0:c.logger)||void 0===_||_.error(t.L_RTC_CLIENT_CREATE_LOCAL_AUDIO_TRACK_O,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.INVALID_USER_ID,msg:"invalid IM connection,invalid userId"})),{code:exports.RCRTCCode.INVALID_USER_ID};const h=new Be(e,o,r);return null===(u=null===(l=this._context)||void 0===l?void 0:l.logger)||void 0===u||u.info(t.L_RTC_CLIENT_CREATE_LOCAL_AUDIO_TRACK_O,JSON.stringify({status:i.SUCCESSED,trackId:h.getTrackId()})),{code:exports.RCRTCCode.SUCCESS,track:h}}))}createLocalVideoTrack(e,r){var n,s,a,d,c,_,l,u;return o(this,void 0,void 0,(function*(){if(!Qe(e))return null===(s=null===(n=this._context)||void 0===n?void 0:n.logger)||void 0===s||s.error(t.L_RTC_CLIENT_CREATE_LOCAL_VIDEO_TRACK_O,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.INVALID_TAGS,msg:"invalid tag"})),{code:exports.RCRTCCode.INVALID_TAGS};if(!(r&&r instanceof MediaStreamTrack&&"video"===r.kind))return null===(d=null===(a=this._context)||void 0===a?void 0:a.logger)||void 0===d||d.error(t.L_RTC_CLIENT_CREATE_LOCAL_VIDEO_TRACK_O,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.CREATE_CUSTOM_TRACK_FAILED,msg:"params track is not MediaStreamTrack or kind is not video"})),{code:exports.RCRTCCode.CREATE_CUSTOM_TRACK_FAILED};const o=this._context.getCurrentId();if(!o)return null===(_=null===(c=this._context)||void 0===c?void 0:c.logger)||void 0===_||_.error(t.L_RTC_CLIENT_CREATE_LOCAL_VIDEO_TRACK_O,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.INVALID_USER_ID,msg:"invalid IM connection,invalid userId"})),{code:exports.RCRTCCode.INVALID_USER_ID};const h=new Ve(e,o,r);return null===(u=null===(l=this._context)||void 0===l?void 0:l.logger)||void 0===u||u.info(t.L_RTC_CLIENT_CREATE_LOCAL_VIDEO_TRACK_O,JSON.stringify({status:i.SUCCESSED,trackId:h.getTrackId()})),{code:exports.RCRTCCode.SUCCESS,track:h}}))}createLocalFileTracks(e,n,s){var a,d,c,_,l,u,h,R;return o(this,void 0,void 0,(function*(){if(!Qe(e))return null===(d=null===(a=this._context)||void 0===a?void 0:a.logger)||void 0===d||d.error(t.L_RTC_CLIENT_CREATE_LOCAL_FILE_TRACKS_O,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.INVALID_TAGS,msg:"invalid tag"})),{code:exports.RCRTCCode.INVALID_TAGS,tracks:[]};if(!Rt())return null===(_=null===(c=this._context)||void 0===c?void 0:c.logger)||void 0===_||_.error(t.L_RTC_CLIENT_CREATE_LOCAL_FILE_TRACKS_O,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.BROWSER_NOT_SUPPORT,msg:"browser not support"})),{code:exports.RCRTCCode.BROWSER_NOT_SUPPORT,tracks:[]};const o=n instanceof File?URL.createObjectURL(n):n;if(!r.isHttpUrl(o)&&!/^blob:/.test(o))return null===(u=null===(l=this._context)||void 0===l?void 0:l.logger)||void 0===u||u.error(t.L_RTC_CLIENT_CREATE_LOCAL_FILE_TRACKS_O,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> file"})),{code:exports.RCRTCCode.PARAMS_ERROR,tracks:[]};const p=this._context.getCurrentId();return p?new Promise((r=>{const n=document.createElement("video");(null==s?void 0:s.withoutAudio)&&(n.muted=!0),n.onloadedmetadata=()=>{var o,a,d,c;const _=[];let l;try{const e=n.mozCaptureStream?"mozCaptureStream":"captureStream";l=n[e]()}catch(e){null===(a=null===(o=this._context)||void 0===o?void 0:o.logger)||void 0===a||a.error(t.L_RTC_CLIENT_CREATE_LOCAL_FILE_TRACKS_O,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.CREATE_FILE_TRACK_FAILED,msg:`captureSteam error -> ${JSON.stringify(e)}`})),r({code:exports.RCRTCCode.CREATE_FILE_TRACK_FAILED,tracks:_})}const[u,h]=Us.getTracksWithOptions(l,s);u&&_.push(new Ge(e,p,u,n)),h&&_.push(new Je(e,p,h,n)),0===_.length&&(n.pause(),n.src=""),n.onerror=null,null===(c=null===(d=this._context)||void 0===d?void 0:d.logger)||void 0===c||c.info(t.L_RTC_CLIENT_CREATE_LOCAL_FILE_TRACKS_O,JSON.stringify({status:i.SUCCESSED,trackIds:_.map((e=>e.getTrackId()))})),r({code:exports.RCRTCCode.SUCCESS,tracks:_})},n.onerror=()=>{var e,o;null===(o=null===(e=this._context)||void 0===e?void 0:e.logger)||void 0===o||o.error(t.L_RTC_CLIENT_CREATE_LOCAL_FILE_TRACKS_O,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.CREATE_FILE_TRACK_FAILED,msg:"Failed to create file stream, video onerror"})),r({code:exports.RCRTCCode.CREATE_FILE_TRACK_FAILED,tracks:[]})},n.src=o,n.loop=!0,n.play()})):(null===(R=null===(h=this._context)||void 0===h?void 0:h.logger)||void 0===R||R.error(t.L_RTC_CLIENT_CREATE_LOCAL_FILE_TRACKS_O,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.INVALID_USER_ID,msg:"invalid IM connection,invalid userId"})),{code:exports.RCRTCCode.INVALID_USER_ID,tracks:[]})}))}createLocalTracks(e,r,n){var s,a,d,c,_,l,u,h;return o(this,void 0,void 0,(function*(){const o=[];if(!Qe(e))return null===(a=null===(s=this._context)||void 0===s?void 0:s.logger)||void 0===a||a.error(t.L_RTC_CLIENT_CREATE_LOCAL_TRACKS_O,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.INVALID_TAGS,msg:"invalid tag"})),{code:exports.RCRTCCode.INVALID_TAGS,tracks:o};if(!(r instanceof MediaStream))return null===(c=null===(d=this._context)||void 0===d?void 0:d.logger)||void 0===c||c.error(t.L_RTC_CLIENT_CREATE_LOCAL_TRACKS_O,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> stream"})),{code:exports.RCRTCCode.PARAMS_ERROR,tracks:o};const R=this._context.getCurrentId();if(!R)return null===(l=null===(_=this._context)||void 0===_?void 0:_.logger)||void 0===l||l.error(t.L_RTC_CLIENT_CREATE_LOCAL_TRACKS_O,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.INVALID_USER_ID,msg:"invalid IM connection,invalid userId"})),{code:exports.RCRTCCode.INVALID_USER_ID,tracks:o};const[p,v]=Us.getTracksWithOptions(r,n);return p&&o.push(new Be(e,R,p)),v&&o.push(new Ve(e,R,v)),null===(h=null===(u=this._context)||void 0===u?void 0:u.logger)||void 0===h||h.info(t.L_RTC_CLIENT_CREATE_LOCAL_TRACKS_O,JSON.stringify({status:i.SUCCESSED,trackIds:o.map((e=>e.getTrackId()))})),{code:exports.RCRTCCode.SUCCESS,tracks:o}}))}static getTracksWithOptions(e,t){const i=[];return i[0]=(null==t?void 0:t.withoutAudio)?void 0:e.getAudioTracks()[0],i[1]=(null==t?void 0:t.withoutVideo)?void 0:e.getVideoTracks()[0],i}}class Ps extends Us{constructor(e,t,i){super(e),this._context=e,this._runtime=t,this._options=i,this._crtRoom=null,this._audience=null,this._crtAudienceLivingRoom=null,vn.setSdpSemantics(i.sdpSemantics||"plan-b"),this._service=new wo(this._runtime,this._context,this._options.mediaServer,this._options.timeout),this._context.registerConnectionStateChangeListener(this._onIMStatusChange.bind(this)),this._context.registerDisconnectListener(this._onIMDisconnect.bind(this)),this._context.registerDestroyListener(this._onIMUninit.bind(this)),this._context.registerMessageListener(this._handleMessage.bind(this)),this._context.getPluginContext().onnavidatachange=this.naviDataChange.bind(this)}_handleMessage(e){var o,n,s,a,d,c;if(e.conversationType!==r.ConversationType.RTC_ROOM)return!1;const _=null===(n=null===(o=this._context)||void 0===o?void 0:o.logger)||void 0===n?void 0:n.createTraceId();if(this._crtRoom instanceof Os){this._getJoinedPKRoomList().forEach((t=>{t.__parseInnerMessage(e,_)}))}return null===(a=null===(s=this._context)||void 0===s?void 0:s.logger)||void 0===a||a.info(t.L_RTC_CLIENT_MESSAGE_O,JSON.stringify({status:i.SUCCESSED,message:e}),_),this._crtRoom?(this._crtRoom.__parseInnerMessage(e,_),!0):(null===(c=null===(d=this._context)||void 0===d?void 0:d.logger)||void 0===c||c.warn(t.L_RTC_CLIENT_MESSAGE_O,JSON.stringify({status:i.FAILED,message:"the crtRoom is empty"}),_),!0)}naviDataChange(e){var i,r;null===(r=null===(i=this._context)||void 0===i?void 0:i.logger)||void 0===r||r.info(t.L_RTC_CLIENT_NAVI_CHANGE_O,`on navi change data => ${JSON.stringify(e)}`),this._service.detectorMediaSever(),fn.logServer=null==e?void 0:e.logServer,fn.dc=null==e?void 0:e.dc}_getJoinedPKRoomList(){const{code:e,roomPKHandler:t}=this._crtRoom.getRoomPKHandler();if(e===exports.RCRTCCode.SUCCESS&&t){const e=t.getJoinedPKRooms()||{};return Object.values(e)}return[]}getCurrentId(){return this._context.getCurrentId()}joinRTCRoom(e,r,n,s,a=sn.RTC,d){var c,_,l,u,h,R;return o(this,void 0,void 0,(function*(){const o=null===(_=null===(c=this._context)||void 0===c?void 0:c.logger)||void 0===_?void 0:_.createTraceId();if(null===(u=null===(l=this._context)||void 0===l?void 0:l.logger)||void 0===u||u.info(t.L_RTC_CLIENT_JOIN_RTC_ROOM_T,JSON.stringify({roomId:e,joinType:r,outerUserDatas:n,useMutilPeerC:s,roomType:a}),o),this._crtRoom)return null===(R=null===(h=this._context)||void 0===h?void 0:h.logger)||void 0===R||R.error(t.L_RTC_CLIENT_JOIN_RTC_ROOM_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.REPERT_JOIN_ROOM,msg:"Join the room repeatedly"}),o),{code:exports.RCRTCCode.REPERT_JOIN_ROOM};const p=this._crtRoom=new Ls(this._context,this._runtime,e,this._service,this._options,!1,!1,s,ho(),d),{code:v}=yield p.__innerInit(a,r,void 0,void 0,n,o);return v!==exports.RCRTCCode.SUCCESS?(this._crtRoom=null,{code:v}):(p.once(as,(()=>{this._crtRoom=null})),{code:v,room:p,userIds:p.getRemoteUserIds(),tracks:p.getRemoteTracks()})}))}joinCrossRTCRoom(e,r,n,s,a=sn.CROSS_MUTI){var d,c,_,l,u,h;return o(this,void 0,void 0,(function*(){const o=null===(c=null===(d=this._context)||void 0===d?void 0:d.logger)||void 0===c?void 0:c.createTraceId();if(null===(l=null===(_=this._context)||void 0===_?void 0:_.logger)||void 0===l||l.info(t.L_RTC_CLIENT_JOIN_CROSS_RTC_ROOM_T,JSON.stringify({roomId:e,joinType:r,outerUserDatas:n,useMutilPeerC:s,roomType:a}),o),this._crtRoom)return null===(h=null===(u=this._context)||void 0===u?void 0:u.logger)||void 0===h||h.error(t.L_RTC_CLIENT_JOIN_CROSS_RTC_ROOM_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.REPERT_JOIN_ROOM,msg:"Join the room repeatedly"}),o),{code:exports.RCRTCCode.REPERT_JOIN_ROOM};const R=this._crtRoom=new Ls(this._context,this._runtime,e,this._service,this._options,!1,!1,s,ho(),a),{code:p}=yield R.__innerInit(a,r,void 0,void 0,n,o);return p!==exports.RCRTCCode.SUCCESS?(this._crtRoom=null,{code:p}):(R.once(as,(()=>{this._crtRoom=null})),{code:p,room:R,userIds:R.getRemoteUserIds(),tracks:R.getRemoteTracks()})}))}joinLivingRoom(e,r,n,s,a){var d,c,_,l,u,h;return o(this,void 0,void 0,(function*(){const o=null===(c=null===(d=this._context)||void 0===d?void 0:d.logger)||void 0===c?void 0:c.createTraceId();if(null===(l=null===(_=this._context)||void 0===_?void 0:_.logger)||void 0===l||l.info(t.L_RTC_CLIENT_JOIN_LIVING_ROOM_T,JSON.stringify({roomId:e,livingType:r,joinType:n,outerUserDatas:s,useMutilPeerC:a}),o),this._crtRoom)return null===(h=null===(u=this._context)||void 0===u?void 0:u.logger)||void 0===h||h.error(t.L_RTC_CLIENT_JOIN_LIVING_ROOM_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.REPERT_JOIN_ROOM,msg:`Join the room repeatedly -> roomId: ${e}`}),o),{code:exports.RCRTCCode.REPERT_JOIN_ROOM};const R=this._crtRoom=new Os(this._context,this._runtime,e,this._service,this._options,r,!1,!0,a),{code:p}=yield R.__innerInit(sn.LIVE,n,r,void 0,s,o);if(p!==exports.RCRTCCode.SUCCESS)return this._crtRoom=null,{code:p};R.once(as,(()=>{this._crtRoom=null}));const v={code:p,room:R,userIds:R.getRemoteUserIds(),tracks:R.getRemoteTracks()};return R.__getCDNPushMode()===Cs.MANUAL&&Object.assign(v,{CDNEnable:R.__getCDNEnable()}),v}))}getAudienceClient(e){var i,r;return this._audience||(this._audience=new ys(this._context,this._runtime,this._options,e)),null===(r=null===(i=this._context)||void 0===i?void 0:i.logger)||void 0===r||r.info(t.L_RTC_CLIENT_GET_AUDIENCE_CLIENT_O,JSON.stringify({useMutilPeerC:e})),this._audience}_onIMStatusChange(e){var i,o;if(null===(o=null===(i=this._context)||void 0===i?void 0:i.logger)||void 0===o||o.info(t.L_RTC_CLIENT_IM_CONNECTION_STATE_S,JSON.stringify({status:e})),e===r.ConnectionStatus.CONNECTED){if(this._service.detectorMediaSever(),this._crtRoom instanceof Os){this._getJoinedPKRoomList().forEach((e=>{e.__onReconnected()}))}this._crtRoom&&this._crtRoom.__onReconnected().then((e=>{if(e&&e.data&&e.data.sessionId){zn.handler().execute()}}))}}_onIMDisconnect(){var e,i;null===(i=null===(e=this._context)||void 0===e?void 0:e.logger)||void 0===i||i.info(t.L_RTC_CLIENT_IM_DISCONNECT_S,JSON.stringify({msg:"TODO -> on IM disconnect"}))}_onIMUninit(){var e,i,r;null===(i=null===(e=this._context)||void 0===e?void 0:e.logger)||void 0===i||i.info(t.L_RTC_CLIENT_DESTROY_S,JSON.stringify({msg:"TODO -> on IM client ondestroy"})),null===(r=this._crtRoom)||void 0===r||r.__destroy(!0)}leaveRoom(e){var r,n,s,a,d,c,_,l,u;return o(this,void 0,void 0,(function*(){const o=null===(n=null===(r=this._context)||void 0===r?void 0:r.logger)||void 0===n?void 0:n.createTraceId();return null===(a=null===(s=this._context)||void 0===s?void 0:s.logger)||void 0===a||a.info(t.L_RTC_CLIENT_LEAVE_ROOM_T,JSON.stringify({roomId:e.getRoomId()}),o),this._crtRoom?(yield this._crtRoom.__destroy(!0),this._service.detectorMediaSever(),null===(l=null===(_=this._context)||void 0===_?void 0:_.logger)||void 0===l||l.info(t.L_RTC_CLIENT_LEAVE_ROOM_R,JSON.stringify({status:i.SUCCESSED,roomId:null===(u=this._crtRoom)||void 0===u?void 0:u.getRoomId()}),o),this._crtRoom=null,{code:exports.RCRTCCode.SUCCESS}):(null===(c=null===(d=this._context)||void 0===d?void 0:d.logger)||void 0===c||c.warn(t.L_RTC_CLIENT_LEAVE_ROOM_R,JSON.stringify({status:i.FAILED,msg:"Room does not exist, without leave"}),o),{code:exports.RCRTCCode.SUCCESS})}))}joinLivingRoomAsAudience(e,n,s){var a,d,c,_,l,u,h,R,p,v,C,g,m,T,I,S;return o(this,void 0,void 0,(function*(){const o=null===(d=null===(a=this._context)||void 0===a?void 0:a.logger)||void 0===d?void 0:d.createTraceId();if(null===(_=null===(c=this._context)||void 0===c?void 0:c.logger)||void 0===_||_.info(t.L_RTC_CLIENT_JOIN_LIVING_ROOM_AS_AUDIENCE_T,JSON.stringify({roomId:e,livingType:n,useMutilPeerC:s}),o),this._service.detectorMediaSever(),Ct(this._context.getNaviInfo()))return null===(u=null===(l=this._context)||void 0===l?void 0:l.logger)||void 0===u||u.error(t.L_RTC_CLIENT_JOIN_LIVING_ROOM_AS_AUDIENCE_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PACKAGE_ENVIRONMENT_ERROR,msg:"package environment error"}),o),{code:exports.RCRTCCode.PACKAGE_ENVIRONMENT_ERROR};if(!r.validate("roomId",e,r.notEmptyString,!0)||!r.validate("livingType",n,(e=>e===exports.RCLivingType.AUDIO||e===exports.RCLivingType.VIDEO)))return null===(R=null===(h=this._context)||void 0===h?void 0:h.logger)||void 0===R||R.error(t.L_RTC_CLIENT_JOIN_LIVING_ROOM_AS_AUDIENCE_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> roomId or livingType"}),o),{code:exports.RCRTCCode.PARAMS_ERROR};if(this._crtAudienceLivingRoom)return null===(v=null===(p=this._context)||void 0===p?void 0:p.logger)||void 0===v||v.error(t.L_RTC_CLIENT_JOIN_LIVING_ROOM_AS_AUDIENCE_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.REPERT_JOIN_ROOM,msg:"Join the room repeatedly"}),o),{code:exports.RCRTCCode.REPERT_JOIN_ROOM};if(!this._service.getNaviMS().length)return null===(g=null===(C=this._context)||void 0===C?void 0:C.logger)||void 0===g||g.error(t.L_RTC_CLIENT_JOIN_LIVING_ROOM_AS_AUDIENCE_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.NOT_OPEN_VIDEO_AUDIO_SERVER,msg:"No audio / video server address available"}),o),{code:exports.RCRTCCode.NOT_OPEN_VIDEO_AUDIO_SERVER};const{code:E,data:f}=yield this._context.joinLivingRoomAsAudience(e,sn.LIVE,n);if(E!==r.ErrorCode.SUCCESS)return null===(T=null===(m=this._context)||void 0===m?void 0:m.logger)||void 0===T||T.error(t.L_RTC_CLIENT_JOIN_LIVING_ROOM_AS_AUDIENCE_R,JSON.stringify({status:i.FAILED,code:E,msg:"signal error -> audience join room"}),o),{code:exports.RCRTCCode.SIGNAL_AUDIENCE_JOIN_ROOM_FAILED};const O=ho();(e=>{mo.getMemo().clientData={clientSessionId:e}})(O);const L=new xs(this._context,this._runtime,this._options,e,f,n,s,O);return this._crtAudienceLivingRoom=L,null===(S=null===(I=this._context)||void 0===I?void 0:I.logger)||void 0===S||S.info(t.L_RTC_CLIENT_JOIN_LIVING_ROOM_AS_AUDIENCE_R,JSON.stringify({status:i.SUCCESSED,roomData:f}),o),{room:L,code:exports.RCRTCCode.SUCCESS,userIds:L.getRemoteUserIds(),RTCTracks:L.getRemoteRTCTracks(),MCUTracks:L.getRemoteMCUTracks(),CDNUris:L.getCDNInfo()}}))}leaveLivingRoomAsAudience(e){var r,n,s,a,d,c,_,l,u,h;return o(this,void 0,void 0,(function*(){const o=null===(n=null===(r=this._context)||void 0===r?void 0:r.logger)||void 0===n?void 0:n.createTraceId();return null===(a=null===(s=this._context)||void 0===s?void 0:s.logger)||void 0===a||a.info(t.L_RTC_CLIENT_LEAVE_LIVING_ROOM_AS_AUDIENCE_T,JSON.stringify({roomId:e.getRoomId(),userId:this._context.getCurrentId()}),o),this._crtAudienceLivingRoom?this._crtAudienceLivingRoom!==e?(null===(l=null===(_=this._context)||void 0===_?void 0:_.logger)||void 0===l||l.error(t.L_RTC_CLIENT_LEAVE_LIVING_ROOM_AS_AUDIENCE_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> room"}),o),{code:exports.RCRTCCode.PARAMS_ERROR}):(yield this._crtAudienceLivingRoom.__destroy(!0),this._crtAudienceLivingRoom=null,null===(h=null===(u=this._context)||void 0===u?void 0:u.logger)||void 0===h||h.info(t.L_RTC_CLIENT_LEAVE_LIVING_ROOM_AS_AUDIENCE_R,JSON.stringify({status:i.SUCCESSED}),o),{code:exports.RCRTCCode.SUCCESS}):(null===(c=null===(d=this._context)||void 0===d?void 0:d.logger)||void 0===c||c.warn(t.L_RTC_CLIENT_LEAVE_LIVING_ROOM_AS_AUDIENCE_R,JSON.stringify({status:i.FAILED,msg:"Room does not exist, without leave"}),o),{code:exports.RCRTCCode.SUCCESS})}))}upgradeToAnchorRoom(e){var n,s,a,d,c,_,l,u;return o(this,void 0,void 0,(function*(){const o=null===(s=null===(n=this._context)||void 0===n?void 0:n.logger)||void 0===s?void 0:s.createTraceId();if(null===(d=null===(a=this._context)||void 0===a?void 0:a.logger)||void 0===d||d.info(t.L_RTC_CLIENT_UPGRADE_TO_ANCHOR_ROOM_T,void 0,o),!r.validate("room",e,(()=>e instanceof xs),!0))return null===(_=null===(c=this._context)||void 0===c?void 0:c.logger)||void 0===_||_.error(t.L_RTC_CLIENT_UPGRADE_TO_ANCHOR_ROOM_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> room"}),o),{code:exports.RCRTCCode.PARAMS_ERROR};const h=e.getRoomId();if(this._crtRoom)return null===(u=null===(l=this._context)||void 0===l?void 0:l.logger)||void 0===u||u.error(t.L_RTC_CLIENT_UPGRADE_TO_ANCHOR_ROOM_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.REPERT_JOIN_ROOM,msg:"Join the room repeatedly",roomId:h}),o),{code:exports.RCRTCCode.REPERT_JOIN_ROOM};const R=this._crtRoom=new Os(this._context,this._runtime,h,this._service,this._options,e.livingType,!0,!0,!1,e.getClientSessionId());return(yield R.__innerInitByIdentityChange(o))!==r.ErrorCode.SUCCESS?(this._crtRoom=null,{code:exports.RCRTCCode.SIGNAL_ROOM_CHANGE_IDENTITY_FAILED}):(R.once(as,(()=>{this._crtRoom=null})),yield this._crtAudienceLivingRoom.__destroy(!1),this._crtAudienceLivingRoom=null,{room:R,code:exports.RCRTCCode.SUCCESS,userIds:R.getRemoteUserIds(),tracks:R.getRemoteTracks()})}))}downgradeToAudienceRoom(e){var n,s,a,d,c,_,l,u,h,R,p,v,C,g;return o(this,void 0,void 0,(function*(){const o=null===(s=null===(n=this._context)||void 0===n?void 0:n.logger)||void 0===s?void 0:s.createTraceId();if(null===(d=null===(a=this._context)||void 0===a?void 0:a.logger)||void 0===d||d.info(t.L_RTC_CLIENT_DOWNGRADE_TO_AUDIENCE_ROOM_T,JSON.stringify({roomId:e._roomId,userId:this._context.getCurrentId()}),o),!e.isMainRoom())return null===(_=null===(c=this._context)||void 0===c?void 0:c.logger)||void 0===_||_.error(t.L_RTC_CLIENT_DOWNGRADE_TO_AUDIENCE_ROOM_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.THE_FUNCTION_IS_DISABLED_IN_PKROOM,msg:"the `downgradeToAudienceRoom` is disabled in PK room"}),o),{code:exports.RCRTCCode.THE_FUNCTION_IS_DISABLED_IN_PKROOM};if(!r.validate("room",e,(()=>e instanceof Os),!0))return null===(u=null===(l=this._context)||void 0===l?void 0:l.logger)||void 0===u||u.error(t.L_RTC_CLIENT_DOWNGRADE_TO_AUDIENCE_ROOM_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.PARAMS_ERROR,msg:"params error -> room"}),o),{code:exports.RCRTCCode.PARAMS_ERROR};if(this._crtAudienceLivingRoom)return null===(R=null===(h=this._context)||void 0===h?void 0:h.logger)||void 0===R||R.error(t.L_RTC_CLIENT_DOWNGRADE_TO_AUDIENCE_ROOM_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.REPERT_JOIN_ROOM,msg:"Join the room repeatedly"}),o),{code:exports.RCRTCCode.REPERT_JOIN_ROOM};const{code:m,data:T}=yield this._context.rtcIdentityChange(e._roomId,ms.AnchorToViewer,e.getLivingType());if(m!==r.ErrorCode.SUCCESS)return null===(v=null===(p=this._context)||void 0===p?void 0:p.logger)||void 0===v||v.error(t.L_RTC_CLIENT_DOWNGRADE_TO_AUDIENCE_ROOM_R,JSON.stringify({status:i.FAILED,code:exports.RCRTCCode.SIGNAL_ROOM_CHANGE_IDENTITY_FAILED}),o),{code:exports.RCRTCCode.SIGNAL_ROOM_CHANGE_IDENTITY_FAILED};null===(g=null===(C=this._context)||void 0===C?void 0:C.logger)||void 0===g||g.info(t.L_RTC_CLIENT_DOWNGRADE_TO_AUDIENCE_ROOM_R,JSON.stringify({status:i.SUCCESSED,roomData:T}),o);const I=e.getClientSessionId(),S=new xs(this._context,this._runtime,this._options,e._roomId,T,e.getLivingType(),!1,I);return this._crtAudienceLivingRoom=S,this._crtRoom.__destroy(!1),this._crtRoom=null,{room:S,code:exports.RCRTCCode.SUCCESS,userIds:S.getRemoteUserIds(),RTCTracks:S.getRemoteRTCTracks(),MCUTracks:S.getRemoteMCUTracks(),CDNUris:S.getCDNInfo()}}))}getJoinedRoomInfo(){var e,n,s,a,d,c,_,l;return o(this,void 0,void 0,(function*(){const o=null===(n=null===(e=this._context)||void 0===e?void 0:e.logger)||void 0===n?void 0:n.createTraceId(),u=this._context.getCurrentId();null===(a=null===(s=this._context)||void 0===s?void 0:s.logger)||void 0===a||a.error(t.L_RTC_CLIENT_GET_JOINED_ROOM_INFO_T,JSON.stringify({userId:u}),o);const{code:h,data:R}=yield this._context.getRTCJoinedUserInfo(u);return h!==r.ErrorCode.SUCCESS?(null===(c=null===(d=this._context)||void 0===d?void 0:d.logger)||void 0===c||c.error(t.L_RTC_CLIENT_GET_JOINED_ROOM_INFO_R,JSON.stringify({status:i.FAILED,code:h}),o),{code:h}):(null===(l=null===(_=this._context)||void 0===_?void 0:_.logger)||void 0===l||l.info(t.L_RTC_CLIENT_GET_JOINED_ROOM_INFO_R,JSON.stringify({status:i.SUCCESSED,roomInfo:R}),o),{code:exports.RCRTCCode.SUCCESS,data:R})}))}reportSDKInfo(){this._context.reportSDKInfo({"plugin-rtc":"5.6.2"})}}var Ms;exports.RTCJoinType=void 0,(Ms=exports.RTCJoinType||(exports.RTCJoinType={}))[Ms.KICK=0]="KICK",Ms[Ms.REFUSE=1]="REFUSE",Ms[Ms.COEXIST=2]="COEXIST";const ws="rtcRJoin_data",Bs="rtcRExit",Vs="rtcRInfo",Fs="rtcUData",Js="rtcUDel",Gs="rtcSetData",Ks="userSetData",Hs="rtcQryData",js="rtcDelData",$s="rtcToken",Ys="rtcUserState",qs="rtcUList",Ws="viewerJoinR",zs="viewerExitR",Zs="rtcPullKv",Qs="rtcIdentityChange",Xs="rtcInvite",ea="rtcCancelInvite",ta="rtcInviteAnswer",ia="rtcEndInvite",ra="rtcQueryJoined",oa="rtcPullRoomStatus",na="reportsdk",sa="rtcPing";var aa;!function(e){e.RtcInput="RtcInput",e.RtcOutput="RtcOutput",e.RtcUserListOutput="RtcUserListOutput",e.SetUserStatusInput="SetUserStatusInput",e.RtcSetDataInput="RtcSetDataInput",e.RtcUserSetDataInput="RtcUserSetDataInput",e.RtcDataInput="RtcDataInput",e.RtcSetOutDataInput="RtcSetOutDataInput",e.MCFollowInput="MCFollowInput",e.RtcTokenOutput="RtcTokenOutput",e.RtcQryOutput="RtcQryOutput",e.RtcQryUserOutDataInput="RtcQryUserOutDataInput",e.RtcUserOutDataOutput="RtcUserOutDataOutput",e.RtcQueryListInput="RtcQueryListInput",e.RtcRoomInfoOutput="RtcRoomInfoOutput",e.RtcValueInfo="RtcValueInfo",e.RtcKeyDeleteInput="RtcKeyDeleteInput",e.RtcNotifyMsg="RtcNotifyMsg",e.RtcPullKV="RtcPullKV",e.RtcKVOutput="RtcKVOutput",e.RtcQueryUserJoinedInput="RtcQueryUserJoinedInput",e.RtcQueryUserJoinedOutput="RtcQueryUserJoinedOutput",e.RtcViewerJoinedOutput="RtcViewerJoinedOutput",e.RtcInviteInput="RtcInviteInput",e.RtcCancelInviteInput="RtcCancelInviteInput",e.RtcInviteAnswerInput="RtcInviteAnswerInput",e.RtcEndInviteInput="RtcEndInviteInput",e.RtcRoomStatusInput="RtcRoomStatusInput",e.RtcRoomStatusOutput="RtcRoomStatusOutput",e.RtcReportSDKInput="RtcReportSDKInput",e.RtcPBPolaris="RCRTCPBPolaris",e.RtcPBR1Info="RCRTCPBR1Info",e.RtcPBR2Info="RCRTCPBR2Info",e.RtcPBR3Info="RCRTCPBR3Info",e.RtcPBR4Info="RCRTCPBR4Info",e.RtcPBStatusInfo="RCRTCPBStatusInfo",e.RtcPBStreamInfo="RCRTCPBStreamInfo"}(aa||(aa={}));const da={[aa.RtcInput]:["roomType","broadcastType","extraInnerData","needSysChatroom","identityChangeType","joinType","innerDatas","outerDatas","supportNtf"],[aa.RtcOutput]:["version"],[aa.RtcUserListOutput]:["users","token","sessionId","roomInfo","version"],[aa.SetUserStatusInput]:["status"],[aa.RtcSetDataInput]:["interior","target","key","value","objectName","content"],[aa.RtcUserSetDataInput]:["valueInfo","objectName","content"],[aa.RtcDataInput]:["interior","target","key","objectName","content"],[aa.RtcSetOutDataInput]:["target","valueInfo","objectName","content"],[aa.MCFollowInput]:["state"],[aa.RtcTokenOutput]:["rtcToken"],[aa.RtcQryOutput]:["outInfo"],[aa.RtcQryUserOutDataInput]:["userId"],[aa.RtcUserOutDataOutput]:["user"],[aa.RtcQueryListInput]:["order"],[aa.RtcRoomInfoOutput]:["roomId","roomData","userCount","list"],[aa.RtcValueInfo]:["key","value"],[aa.RtcKeyDeleteInput]:["key"],[aa.RtcNotifyMsg]:["type","time","roomId"],[aa.RtcPullKV]:["timestamp","roomId"],[aa.RtcKVOutput]:["entries","bFullUpdate","syncTime"],[aa.RtcQueryUserJoinedInput]:["userId"],[aa.RtcQueryUserJoinedOutput]:["info"],[aa.RtcInviteInput]:["invitedUserId","timeoutTime","invitedRoomId","inviteInfo","inviteSessionId"],[aa.RtcCancelInviteInput]:["invitedUserId","invitedRoomId","inviteInfo","inviteSessionId"],[aa.RtcInviteAnswerInput]:["inviteUserId","answerCode","inviteRoomId","inviteSessionId","content","key","value"],[aa.RtcEndInviteInput]:["inviteRoomId","inviteSessionId","inviteContent","inviteRoomKeys"],[aa.RtcRoomStatusInput]:["version"],[aa.RtcRoomStatusOutput]:["bFullStatus","version","usersData","roomStatus"],[aa.RtcReportSDKInput]:["sdkInfo"],[aa.RtcPBPolaris]:["type","appKey","sessionId","roomId","roomCreateTime","userId","userRole","joinTime","signalDataCenter","r1Info","r2Info","r3Info","r4Info"],[aa.RtcPBR1Info]:["joinTime","rtcVersion","imVersion","platform","device","os","browserName","browserVersion"],[aa.RtcPBR2Info]:["joinTime","sendTime","rtcActionType","rtcActionStatus","trackId"],[aa.RtcPBR3Info]:["info"],[aa.RtcPBR4Info]:["info"],[aa.RtcPBStatusInfo]:["joinTime","receiveTime","totalBitRate","appCPUUsage","systemCPUUsage","systemCPUFrequency","networkStatus","googleRTTNetwork","ipAddress","useReceiveBroadBand","useSendBroadBand","packetLossCount","streams"],[aa.RtcPBStreamInfo]:["trackId","codeName","volume","samplingRate","bitRate","packetLossRate","frameRate","resolution","blockTime","jitterData","nAckCount","pliCount","googleRTTTotalTime","isReceiveFirstFrameRate","codeType","isEnabled"]},ca=`\npackage Modules;\nmessage probuf {\n enum JoinType {\n KICK = 0; //踢前一个设备\n REFUSE = 1; //当前加入拒绝\n COEXIST = 2; //两个设备共存\n }\n enum targetType {\n ROOM =1 ;\n PERSON = 2;\n }\n message ${aa.SetUserStatusInput}\n {\n optional int32 status=1;\n }\n message ${aa.MCFollowInput}\n {\n required string state = 1;\n }\n message ${aa.RtcQueryListInput}{\n optional int32 order=1;\n }\n message ${aa.RtcKeyDeleteInput}{\n repeated string key=1;\n }\n message ${aa.RtcValueInfo}{\n required string key=1;\n required string value=2;\n }\n message RtcUserInfo{\n required string userId=1;\n repeated ${aa.RtcValueInfo} userData=2; //用户资源信息\n }\n message ${aa.RtcRoomStatusInput}{ // rtc 和 living room 拉房间资源状态使用的参数\n required int64 version =1; //当前客户端最大的房间状态的version\n }\n message ${aa.RtcRoomStatusOutput}{ // rtc 和 living room 拉房间资源状态返回的数据\n required bool bFullStatus =1; //标识此次给的数据是否是全量数据\n required int64 version =2; //当前获取后房间的最大版本号\n repeated RtcUserInfo usersData=3;//如果是全量数据,这个不为空,给的是房间全部的人以及发布的资源\n repeated RtcRoomStatus roomStatus=4;//房间增量数据\n }\n message RtcRoomStatus{ //房间状态变动\n required string userId = 1;//用户ID\n required int32 event = 2;//房间状态变更的event(人员加入/退出/离线/发布资源) (0:加入;1:离开;2:离线;3:资源变动) \n required int64 time = 3;//本次变更的版本号\n repeated RtcValueInfo userData = 4;//用户变更的资源(event为0或者3时可能有值)\n optional int32 switchRoleType = 5;//如果是切换角色导致的加入房间或退出房间的类型\n optional string extra = 6;\n }\n message ${aa.RtcUserListOutput}{\n repeated RtcUserInfo users=1;\n optional string token=2;\n optional string sessionId=3;\n repeated RtcValueInfo roomInfo = 4; //房间key value\n repeated RtcKVEntity entries = 5;//直播KV属性对象集合\n optional int64 syncTime = 6;//所有属性的最大时间戳(下次拉取KV时用)。\n optional int32 offlineKickTime = 7;//server超时踢人时间,默认60s\n repeated string codeFormat = 8; //当前房间用户支持的编码交集\n optional int64 roomCreateTime = 9;//房间创建时间\n optional int64 userJoinTime = 10;//用户加入房间\n optional int64 version = 11;//当前房间的版本号\n }\n message RtcRoomInfoOutput{\n optional string roomId = 1;\n repeated ${aa.RtcValueInfo} roomData = 2;\n optional int32 userCount = 3;\n repeated RtcUserInfo list=4;\n }\n message ${aa.RtcInput}{\n required int32 roomType=1;\n optional int32 broadcastType=2;\n optional RtcValueInfo extraInnerData = 3;\n optional bool needSysChatroom = 4; //是否需要同步聊天室\n optional IdentityChangeType identityChangeType = 5; //身份变更类型\n optional JoinType joinType = 6; // 加入房间类型\n repeated ${aa.RtcValueInfo} innerDatas = 7; //用户内部inner数据,角色或者连麦信息等\n repeated ${aa.RtcValueInfo} outerDatas = 8; //用户内部outer数据,自定义数据结构RtcInput。\n optional bool supportNtf = 9; //是否支持房间状态的变更通过通知拉取的方式获取\n }\n message ${aa.RtcQryOutput}{\n repeated ${aa.RtcValueInfo} outInfo=1;\n }\n message ${aa.RtcDataInput}{\n required bool interior=1;\n required targetType target=2;\n repeated string key=3;\n optional string objectName=4;\n optional string content=5;\n }\n message ${aa.RtcSetDataInput}{\n required bool interior=1;\n required targetType target=2;\n required string key=3;\n required string value=4;\n optional string objectName=5;\n optional string content=6;\n }\n message ${aa.RtcUserSetDataInput} {\n repeated ${aa.RtcValueInfo} valueInfo = 1;\n required string objectName = 2;\n repeated ${aa.RtcValueInfo} content = 3;\n }\n message RtcQryInput{\n required bool isInterior=1;\n required targetType target=2;\n repeated string key=3;\n }\n message RtcDelDataInput{\n repeated string key=1;\n required bool isInterior=2;\n required targetType target=3;\n }\n message RtcOutput\n {\n optional int32 nothing=1;\n optional int64 version=2;\n }\n message ${aa.RtcTokenOutput}{\n required string rtcToken=1;\n }\n message ${aa.RtcSetOutDataInput}{\n required targetType target=1;\n repeated ${aa.RtcValueInfo} valueInfo=2;\n optional string objectName=3;\n optional string content=4;\n }\n message ${aa.RtcQryUserOutDataInput}{\n repeated string userId = 1;\n }\n message ${aa.RtcUserOutDataOutput}{\n repeated RtcUserInfo user = 1;\n }\n message ${aa.RtcNotifyMsg} \n {\n required int32 type= 1; //(通知类型 1:rtc房间状态KV变更通知)\n optional int64 time= 2; //消息产生时间\n optional string roomId=3; //主播房间id\n }\n message ${aa.RtcPullKV}\n {\n required int64 timestamp = 1;\n required string roomId = 2;\n }\n message RtcKVEntity \n {\n required string key = 1;\n required string value = 2;\n optional int32 status = 3;\n optional int64 timestamp = 4;\n optional string uid = 5;\n }\n message ${aa.RtcKVOutput}\n {\n repeated RtcKVEntity entries = 1;\n optional bool bFullUpdate = 2;\n optional int64 syncTime = 3; \n }\n enum IdentityChangeType \n {\n AnchorToViewer = 1; //1为主播变观众\n ViewerToAnchor = 2; //2为观众变主播\n }\n message ${aa.RtcQueryUserJoinedInput}\n {\n required string userId = 1;\n }\n message RtcJoinedInfo\n {\n required string deviceId = 1; //设备ID\n required string roomId = 2; //加入的房间ID\n optional int64 joinTime = 3; //加入的时间\n }\n message ${aa.RtcQueryUserJoinedOutput}\n {\n repeated RtcJoinedInfo info = 1;\n }\n message ${aa.RtcViewerJoinedOutput}\n {\n required string rtcToken=1;\n repeated RtcKVEntity entries = 2;//KV属性对象集合\n optional int64 syncTime = 3;//所有属性的最大时间戳(下次拉取KV时用)。\n optional string sessionId=4;\n optional int64 roomCreateTime = 5;//房间创建时间\n optional int64 userJoinTime = 6;//用户加入房间\n }\n message ${aa.RtcInviteInput}\n {\n required string invitedUserId=1; //被邀请的人的uid\n optional int32 timeoutTime=2; //邀请超时时间(秒),默认三十秒\n required string invitedRoomId=3; //被邀请的房间\n required string inviteInfo=4; //邀请的信息(包含邀请人,被邀请人,各自userid)客户端定义好.协议栈和server透传\n required string inviteSessionId= 5; //客户端保证唯一性(建议roomid_userid_时间戳_随机数)\n }\n message ${aa.RtcCancelInviteInput}\n {\n required string invitedUserId=1; //被邀请的人的uid\n required string invitedRoomId=2; //被邀请的房间\n required string inviteInfo=3; //取消邀请的信息(包含邀请人,被邀请人,各自userid)客户端定义好.协议栈和server透传\n required string inviteSessionId=4; //邀请的sessionId,客户端发起邀请时产生\n }\n message ${aa.RtcInviteAnswerInput}\n {\n required string inviteUserId=1; //邀请的人的uid\n required int32 answerCode=2; //是否接受连麦邀请.0为拒绝,1为接受\n required string inviteRoomId=3; //邀请的房间\n required string inviteSessionId=4; //邀请的sessionId\n required string content=5; //需要转发的content\n optional string key=6; //如果接受的话,需要加这个字段,放在room级别的k和v,新加入房间的能拉取到\n optional string value=7; //如果接受的话,需要加这个字段,放在room级别的k和v,新加入房间的能拉取到\n }\n message ${aa.RtcEndInviteInput}\n {\n required string inviteRoomId=1; //邀请的房间\n required string inviteSessionId=2; //邀请的sessionId\n required string inviteContent=3; //结束连麦的信息(需要透传给房间内其他人)\n repeated string inviteRoomKeys=4; //需要删除连麦的信息的key\n }\n message ${aa.RtcReportSDKInput} {\n required string sdkInfo=1; // 用户集成的 sdk 信息,json 格式 {"web-rtc": "4.0.3.7"}\n }\n // ---- 北极星数据上报 -------\n message ${aa.RtcPBPolaris} {\n required string type = 1;//上报数据类型 R1-R4\n required string appKey = 2;\n required string sessionId = 3;//房间通话id\n required string roomId = 4;\n required int64 roomCreateTime = 5;//房间创建时间\n required string userId = 6;\n required int32 userRole = 7;\n required int64 joinTime = 8;\n required string signalDataCenter = 9;//signal数据中心\n optional ${aa.RtcPBR1Info} r1Info = 10;\n optional ${aa.RtcPBR2Info} r2Info = 11;\n optional ${aa.RtcPBR3Info} r3Info = 12;\n optional ${aa.RtcPBR4Info} r4Info = 13;\n }\n message ${aa.RtcPBR1Info} {\n required int64 joinTime = 1;//用户加入房间的时间\n required string rtcVersion = 2;//Rtc版本号\n required string imVersion = 3;//IM SDK 版本\n required string platform = 4;//平台(如:Android、iOS、Web)\n required string device = 5; //设备信息(手机名称+型号)\n required string os = 6;//系统版本(手机系统版本)\n optional string browserName = 7; //浏览器名称, 没有用 -1 表示\n optional string browserVersion = 8;//浏览器版本, 没有用 -1 表示\n optional int64 receiveTime = 9; // 发送数据的时间\n }\n message ${aa.RtcPBR2Info} {\n required int64 joinTime = 1;\n required int64 sendTime = 2;\n required string rtcActionType = 3;//发布类型 subscribe : 订阅 publish : 发布\n required string rtcActionStatus = 4;//发布状态 begin : 开始 tend : 结束\n repeated string trackId = 5;\n optional int64 receiveTime = 6; // 发送数据的时间\n }\n message ${aa.RtcPBR3Info} {\n required ${aa.RtcPBStatusInfo} info = 1;\n }\n message ${aa.RtcPBR4Info} {\n required ${aa.RtcPBStatusInfo} info = 1;\n }\n message ${aa.RtcPBStatusInfo} {\n optional int64 joinTime = 1;//用户加入房间的时间\n optional int64 receiveTime = 2;//用户发布数据流的时间(毫秒),暂时由客户端生成,后期如果有问题服务端做兜底处理\n optional int64 totalBitRate = 3;//总码率\n optional float appCPUUsage = 4;//APP CPU占用率\n optional float systemCPUUsage = 5;////系统 CPU占用率\n optional float systemCPUFrequency = 6;//系统CPU频率 (安卓8.0以上)\n optional string networkStatus = 7;//实时网络状态(2g、3g、4g、wifi)\n optional int32 googleRTTNetwork = 8;//Goog rtt 网络延迟\n optional string ipAddress = 9;//ip地址\n optional string useReceiveBroadBand = 10; //可接收带宽(单位: bit)\n optional string useSendBroadBand = 11;//可用发送带宽(单位: bit)\n optional string packetLossCount = 12;//丢包数\n repeated ${aa.RtcPBStreamInfo} streams = 13;\n }\n message ${aa.RtcPBStreamInfo} {\n required string trackId = 1;\n optional string codeName = 2;//编解码名称\n optional string volume = 3;//音频播放音量\n optional int32 samplingRate = 4; //音频采样率\n optional float bitRate = 5;//下行码率\n optional float packetLossRate = 6;\n optional int32 frameRate = 7;//视频接收帧率(单位:fps)\n optional string resolution = 8;//视频分辨率(格式:640*480)\n optional int64 blockTime = 9;//接收卡顿(间隔时间, 单位: ms)\n optional int32 jitterData = 10;//jitter数据抖动\n optional string nAckCount = 11;//nack数量\n optional string pliCount = 12; //PLI请求数\n optional int64 googleRTTTotalTime = 13; //googRtt往返时长\n optional int32 isReceiveFirstFrameRate = 14;//第一个关键帧是否正常收到\n optional string codeType = 15;//编码方式\n optional int32 isEnabled = 16; //当前流的状态是否可用\n }\n // ---- 北极星数据上报 -------\n}\n`,_a=(e,t,i,r,o,n,s)=>{const a=o?Object.keys(o).map((t=>e.encode(aa.RtcValueInfo,{key:t,value:o[t]},!0))):void 0,d=n?Object.keys(n).map((t=>e.encode(aa.RtcValueInfo,{key:t,value:n[t]},!0))):void 0;return e.encode(aa.RtcInput,{roomType:t,broadcastType:i,joinType:r,innerDatas:a,outerDatas:d,supportNtf:s})},la=(e,t)=>{const i=e.decode(aa.RtcUserListOutput,t),{users:o,token:n,sessionId:s,roomInfo:a,entries:d,offlineKickTime:c=60,codeFormat:_,roomCreateTime:l,userJoinTime:u,version:h}=i,R={};return r.forEach(o,(e=>{const{userId:t,userData:i}=e,o={};r.forEach(i,(e=>{const{key:t,value:i}=e;o[t]=i})),R[t]=o})),{users:R,token:n,sessionId:s,roomInfo:a,kvEntries:d,offlineKickTime:c,codeFormat:_,roomCreateTime:It(l),userJoinTime:It(u),version:h}};class ua{constructor(e,t){this.context=e,this.codec=t,this.roomCreateTime=0,this.userJoinTime=0,this.logger=null,this.logger=Ae.getLogger()}joinRTCRoom(e,t,i,n,s,a){return o(this,void 0,void 0,(function*(){const o=_a(this.codec,t,i,n,s,a,!0),{code:d,buffer:c}=yield this.context.rtcSignaling(e,ws,!0,o);let _;if(d===r.ErrorCode.SUCCESS&&c){_=la(this.codec,c);const{users:e,token:t,sessionId:i,roomInfo:r,kvEntries:o,offlineKickTime:n,roomCreateTime:s,userJoinTime:a,version:l}=_;return this.roomCreateTime=s,this.userJoinTime=a,{code:d,data:{users:e,token:t,sessionId:i,roomInfo:r,kvEntries:o,offlineKickTime:n,version:l}}}return{code:d,data:_}}))}quitRTCRoom(e){return o(this,void 0,void 0,(function*(){const t=this.codec.encode(aa.SetUserStatusInput,{status:0}),{code:i}=yield this.context.rtcSignaling(e,Bs,!0,t);return i}))}getRTCRoomInfo(e){return o(this,void 0,void 0,(function*(){const t=this.codec.encode(aa.RtcQueryListInput,{order:2}),{code:i,buffer:o}=yield this.context.rtcSignaling(e,Vs,!0,t);let n;return i===r.ErrorCode.SUCCESS&&o&&(n=this.codec.decode(aa.RtcRoomInfoOutput,o)),{code:i,data:n}}))}getRTCUserInfoList(e){return o(this,void 0,void 0,(function*(){const t=this.codec.encode(aa.RtcQueryListInput,{order:2}),{code:i,buffer:o}=yield this.context.rtcSignaling(e,Fs,!0,t);let n;if(i===r.ErrorCode.SUCCESS&&o){n={users:la(this.codec,o).users}}return{code:i,data:n}}))}getRTCUserInfo(e){throw new Error("Method not implemented.")}removeRTCUserInfo(e,t){return o(this,void 0,void 0,(function*(){const i=this.codec.encode(aa.RtcKeyDeleteInput,{key:t}),{code:r}=yield this.context.rtcSignaling(e,Js,!1,i);return r}))}setRTCData(e,t,i,r,n,s){return o(this,void 0,void 0,(function*(){const o=this.codec.encode(aa.RtcSetDataInput,{interior:r,target:n,key:t,value:i,objectName:null==s?void 0:s.name,content:null==s?void 0:s.content}),{code:a}=yield this.context.rtcSignaling(e,Gs,!1,o);return a}))}setRTCTotalRes(e,t,i,r,n,s){return o(this,void 0,void 0,(function*(){const o={objectName:r,content:this.codec.encode(aa.RtcValueInfo,{key:t.name,value:t.content},!0),valueInfo:[this.codec.encode(aa.RtcValueInfo,{key:"uris",value:i},!0)]};n&&o.valueInfo.push(this.codec.encode(aa.RtcValueInfo,{key:"mcu_uris",value:n},!0)),s&&o.valueInfo.push(this.codec.encode(aa.RtcValueInfo,{key:"cdn_uris",value:s},!0));const a=this.codec.encode(aa.RtcUserSetDataInput,o),{code:d}=yield this.context.rtcSignaling(e,Ks,!0,a);return d}))}setRTCCDNUris(e,t,i){return o(this,void 0,void 0,(function*(){const r=this.codec.encode(aa.RtcUserSetDataInput,{objectName:t,valueInfo:this.codec.encode(aa.RtcValueInfo,{key:"cdn_uris",value:i},!0)}),{code:o}=yield this.context.rtcSignaling(e,Ks,!0,r);return o}))}getRTCData(e,t,i,n){return o(this,void 0,void 0,(function*(){const o=this.codec.encode(aa.RtcDataInput,{interior:i,target:n,key:t}),{code:s,buffer:a}=yield this.context.rtcSignaling(e,Hs,!0,o);if(s!==r.ErrorCode.SUCCESS||!a)return{code:s};const{outInfo:d}=this.codec.decode(aa.RtcQryOutput,a),c={};return d.forEach((e=>{c[e.key]=e.value})),{code:s,data:c}}))}removeRTCData(e,t,i,r,n){return o(this,void 0,void 0,(function*(){const o=this.codec.encode(aa.RtcDataInput,{interior:i,target:r,key:t,objectName:(null==n?void 0:n.name)||"",content:(null==n?void 0:n.content)||""}),{code:s}=yield this.context.rtcSignaling(e,js,!1,o);return s}))}setRTCOutData(e,t,i,r){return o(this,void 0,void 0,(function*(){throw new Error("JSEngine's method not implemented.")}))}getRTCOutData(e,t){return o(this,void 0,void 0,(function*(){throw new Error("JSEngine's method not implemented.")}))}getRTCToken(e,t,i){return o(this,void 0,void 0,(function*(){const o=_a(this.codec,t,i),{code:n,buffer:s}=yield this.context.rtcSignaling(e,$s,!0,o);if(n!==r.ErrorCode.SUCCESS||!s)return{code:n};const{rtcToken:a}=this.codec.decode(aa.RtcTokenOutput,s);return{code:n,data:{rtcToken:a}}}))}setRTCState(e,t){return o(this,void 0,void 0,(function*(){const i=this.codec.encode(aa.MCFollowInput,{state:t}),{code:r}=yield this.context.rtcSignaling(e,Ys,!0,i);return r}))}setRTCStateByHttp(e,t,i,n){return o(this,void 0,void 0,(function*(){const o=((e,t,i)=>{const{type:r,appKey:o,sessionId:n,roomId:s,roomCreateTime:a,userId:d,userRole:c,joinTime:_,signalDataCenter:l,r1Info:u,r2Info:h,r3Info:R,r4Info:p}=t,v={type:r,appKey:o,sessionId:n,roomId:s,roomCreateTime:a,userId:d,userRole:c,joinTime:_,signalDataCenter:l};if(i===Xo.R1&&u){const t=e.encode(aa.RtcPBR1Info,u,!0);return e.encode(aa.RtcPBPolaris,Object.assign(Object.assign({},v),{r1Info:t}))}if(i===Xo.R2&&h){const t=e.encode(aa.RtcPBR2Info,h,!0);return e.encode(aa.RtcPBPolaris,Object.assign(Object.assign({},v),{r2Info:t}))}if(i===Xo.R3&&R){const{info:t}=R,{streams:i}=t;let r=Array.isArray(i)&&i.map((t=>t&&e.encode(aa.RtcPBStreamInfo,t,!0))),o=e.encode(aa.RtcPBStatusInfo,Object.assign(Object.assign({},t),{streams:r}),!0),n=e.encode(aa.RtcPBR3Info,{info:o},!0);return e.encode(aa.RtcPBPolaris,Object.assign(Object.assign({},v),{r3Info:n}))}if(i===Xo.R4&&p){const{info:t}=p,{streams:i}=t;let r=Array.isArray(i)&&i.map((t=>t&&e.encode(aa.RtcPBStreamInfo,t,!0))),o=e.encode(aa.RtcPBStatusInfo,Object.assign(Object.assign({},t),{streams:r}),!0),n=e.encode(aa.RtcPBR4Info,{info:o},!0);return e.encode(aa.RtcPBPolaris,Object.assign(Object.assign({},v),{r4Info:n}))}return{}})(this.codec,i,n);let s=e;/^https:\/\//.test(e)||(s=`https://${e}`);try{const e=yield t.httpReq({url:`${s}/rtc/logserver/polaris`,body:o,method:r.HttpMethod.POST,headers:{jwt:wo.jwtToken},timeout:2e3});if(!e.data)throw new Error("http request fail");return JSON.parse(e.data).resultCode}catch(e){return Qo.REPORT_FAIL}}))}getRTCUserList(e){return o(this,void 0,void 0,(function*(){const t=this.codec.encode(aa.RtcQueryListInput,{order:2}),{code:i,buffer:o}=yield this.context.rtcSignaling(e,qs,!0,t);if(i!==r.ErrorCode.SUCCESS||!o)return{code:i};return{code:i,data:la(this.codec,o)}}))}joinLivingRoomAsAudience(e,t,i){return o(this,void 0,void 0,(function*(){const o=_a(this.codec,t,i);No(),Ao(t);const{code:n,buffer:s}=yield this.context.rtcSignaling(e,Ws,!0,o);if(n!==r.ErrorCode.SUCCESS||!s)return{code:n};const{rtcToken:a,entries:d,roomCreateTime:c,userJoinTime:_}=this.codec.decode(aa.RtcViewerJoinedOutput,s);return Lo(e,n,mt(e,d).sessionId,this.context.getCurrentId()),this.roomCreateTime=It(c),this.userJoinTime=It(_),{code:n,data:{token:a,kvEntries:d}}}))}quitLivingRoomAsAudience(e){return o(this,void 0,void 0,(function*(){const t=this.codec.encode(aa.SetUserStatusInput,{status:0}),{code:i}=yield this.context.rtcSignaling(e,zs,!0,t);return i}))}rtcIdentityChange(e,t,i){return o(this,void 0,void 0,(function*(){const o=this.codec.encode(aa.RtcInput,{roomType:sn.LIVE,broadcastType:i,identityChangeType:t,needSysChatroom:!1}),{code:n,buffer:s}=yield this.context.rtcSignaling(e,Qs,!0,o);if(n!==r.ErrorCode.SUCCESS||!s)return{code:n};return{code:n,data:la(this.codec,s)}}))}requestRoomPK(e){return o(this,void 0,void 0,(function*(){const{invitedRoomId:t,invitedUserId:i,inviteSessionId:r,inviteTimeout:o,inviteInfo:n,roomId:s}=e,a=this.codec.encode(aa.RtcInviteInput,{invitedRoomId:t,invitedUserId:i,inviteSessionId:r,timeoutTime:o,inviteInfo:n}),{code:d}=yield this.context.rtcSignaling(s,Xs,!0,a);return d}))}cancelRoomPK(e){return o(this,void 0,void 0,(function*(){const{invitedRoomId:t,invitedUserId:i,inviteSessionId:r,inviteInfo:o,roomId:n}=e,s=this.codec.encode(aa.RtcCancelInviteInput,{invitedRoomId:t,invitedUserId:i,inviteSessionId:r,inviteInfo:o}),{code:a}=yield this.context.rtcSignaling(n,ea,!0,s);return a}))}responseRoomPK(e){return o(this,void 0,void 0,(function*(){const{inviteUserId:t,inviteRoomId:i,inviteSessionId:r,content:o,key:n,value:s,agree:a,roomId:d}=e,c=this.codec.encode(aa.RtcInviteAnswerInput,{inviteUserId:t,inviteRoomId:i,inviteSessionId:r,content:o,key:n,value:s,answerCode:a?1:0}),{code:_}=yield this.context.rtcSignaling(d,ta,!0,c);return _}))}endRoomPK(e){return o(this,void 0,void 0,(function*(){const{endRoomId:t,sessionId:i,content:r,keys:o,roomId:n}=e,s=this.codec.encode(aa.RtcEndInviteInput,{inviteRoomId:t,inviteSessionId:i,inviteContent:r,inviteRoomKeys:o}),{code:a}=yield this.context.rtcSignaling(n,ia,!0,s);return a}))}getRTCJoinedUserInfo(e){return o(this,void 0,void 0,(function*(){const t=this.codec.encode(aa.RtcQueryUserJoinedInput,{userId:e}),{code:i,buffer:o}=yield this.context.rtcSignaling("",ra,!0,t);if(i!==r.ErrorCode.SUCCESS||!o)return{code:i};return{code:i,data:(this.codec.decode(aa.RtcQueryUserJoinedOutput,o).info||[]).map((e=>({deviceId:e.deviceId,roomId:e.roomId,joinTime:It(e.joinTime)})))}}))}pullRTCRoomEntry(e){return o(this,void 0,void 0,(function*(){const t=this.codec.encode(aa.RtcPullKV,{timestamp:0,roomId:e}),{code:i,buffer:o}=yield this.context.rtcSignaling(e,Zs,!0,t);if(i!==r.ErrorCode.SUCCESS)return{code:i};const n=this.codec.decode(aa.RtcKVOutput,o);let{entries:s,syncTime:a}=n;return s=(s||[]).map((e=>Object.assign(Object.assign({},e),{timestamp:It(e.timestamp)}))),{code:i,data:{kvEntries:s,syncTime:It(a)}}}))}pullRTCRoomStatus(e,t){return o(this,void 0,void 0,(function*(){const i=this.codec.encode(aa.RtcRoomStatusInput,{version:t}),{code:o,buffer:n}=yield this.context.rtcSignaling(e,oa,!0,i);if(o!==r.ErrorCode.SUCCESS)return{code:o};return{code:o,data:this.codec.decode(aa.RtcRoomStatusOutput,n)}}))}decodeRtcNotify(e){const{time:t,type:i,roomId:r}=this.codec.decode(aa.RtcNotifyMsg,e);return{time:It(t),type:i,roomId:r}}getCurrentId(){return this.context.getCurrentId()}getNaviInfo(){return this.context.getNaviInfo()}getConnectionStatus(){return this.context.getConnectionStatus()}getAppkey(){return this.context.getAppkey()}webRtcPing(e,t,i){return o(this,void 0,void 0,(function*(){const o=this.codec.encode(aa.RtcInput,{roomType:t,broadcastType:i}),{code:n,buffer:s}=yield this.context.rtcSignaling(e,sa,!0,o);if(n!==r.ErrorCode.SUCCESS)return{code:n};const a=this.codec.decode(aa.RtcOutput,s);return a.version=It(a.version),{code:n,data:a}}))}rtcPing(e,t,i){return/Electron/.test(navigator.userAgent)?this.context.rtcPingResVersion(e,t,i):this.webRtcPing(e,t,i)}sendMessage(e,t,i){return this.context.sendMessage(e,t,i)}registerRTCSignalListener(e){this.context.registerRTCSignalListener(e)}registerConnectionStateChangeListener(e){this.context.onconnectionstatechange=e}registerDisconnectListener(e){this.context.ondisconnect=e}registerDestroyListener(e){this.context.ondestroy=e}registerMessageListener(e){this.context.onmessage=e}getCoreVersion(){return this.context.getCoreVersion()}getPluginContext(){return this.context}reportSDKInfo(e){const t=this.codec.encode(aa.RtcReportSDKInput,{sdkInfo:JSON.stringify(e)});this.context.rtcSignaling("",na,!0,t)}}var ha;!function(e){e.RTC="RTC"}(ha||(ha={}));const Ra={tag:"RCRTC",verify:e=>"browser"!==e.tag?(console.error(`RCRTC Plugin is not support the runtime '${e.tag}'`),!1):Xe?(r.VersionManage.add("plugin-rtc","5.6.2"),!!r.VersionManage.validEngine("^5.6.0")||(console.error(`The current engine version '${r.VersionManage.getInfo().engine}' error, plugin-rtc required engine version at least '^5.6.0'.`),!1)):(console.error("Please use the https protocol or use `http://localhost` to open the page!"),!1),setup(e,i,o={}){var n,s,a,d,c,_,l,u;const h=e.createLogger("RCRTC",ha.RTC);return h.setOutputLevel(o.logLevel||r.LogL.DEBUG),Ae.setLogger(h),Ne.setLogger(h),h.warn(t.L_INDEX_INSTALL_RTC_PLUGIN_O,JSON.stringify({"RCRTC Version":"5.6.2",Commit:"01c6e10cd9bac08641a2fd6ef2677ea9df3338b0","browserInfo.browser":ht.browser,"browserInfo.supportsUnifiedPlan":ht.supportsUnifiedPlan,"browserInfo.version":ht.version})),r.assert("options.mediaServer",o.mediaServer,(e=>!(!r.isHttpUrl(e)||"https:"===location.protocol&&!/^https/.test(e)))),r.assert("options.timeout",o.timeout,(e=>r.isNumber(e)&&e>=5e3&&e<=3e4)),r.assert("options.pingGap",o.pingGap,(e=>r.isNumber(e)&&e>=3e3&&e<=1e4)),(null==o?void 0:o.audio)&&((null===(n=o.audio)||void 0===n?void 0:n.workletModule)&&(Me.workletModule=null===(s=o.audio)||void 0===s?void 0:s.workletModule),(null===(a=o.audio)||void 0===a?void 0:a.workletWasm)&&(Me.workletWasm=null===(d=o.audio)||void 0===d?void 0:d.workletWasm),(null===(c=o.audio)||void 0===c?void 0:c.workletModule)&&(null===(_=o.audio)||void 0===_?void 0:_.workletWasm)&&(Me.isOpen=!0),void 0!==(null===(l=o.audio)||void 0===l?void 0:l.isOpen)&&(Me.isOpen=null===(u=o.audio)||void 0===u?void 0:u.isOpen)),new Ps(new ua(e,e.createCodec(da,ca)),i,o)}},pa={transResolution:ct,transFrameRate:ut,parseTrackId:ot,ifSupportLocalFileTrack:Rt,ifSupportScreenShare:pt};exports.RCAbstractRoom=ds,exports.RCAudienceClient=ys,exports.RCAudienceLivingRoom=xs,exports.RCCameraVideoTrack=He,exports.RCLivingRoom=Os,exports.RCLocalAudioTrack=Be,exports.RCLocalFileAudioTrack=Ge,exports.RCLocalFileTrack=Fe,exports.RCLocalFileVideoTrack=Je,exports.RCLocalTrack=we,exports.RCLocalVideoTrack=Ve,exports.RCMCUConfigBuilder=ps,exports.RCMediaStreamCapture=Us,exports.RCMicphoneAudioTrack=Ke,exports.RCRTCClient=Ps,exports.RCRTCRoom=Ls,exports.RCRemoteAudioTrack=qe,exports.RCRemoteTrack=Ye,exports.RCRemoteVideoTrack=We,exports.RCScreenAudioTrack=$e,exports.RCScreenVideoTrack=je,exports.RCTag={DEFAULT:"RongCloudRTC"},exports.RCTrack=be,exports.device=ye,exports.helper=pa,exports.installer=Ra;
|