dingrtc 3.9.25 → 3.9.26

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.esm.js CHANGED
@@ -1,3 +1,3 @@
1
1
  import"webrtc-adapter";import{Environment as e,getReporter as t,SystemType as r,BrowserType as i,DingRTCError as n,ErrorCode as a,setGslb as o,isString as s,EventEmitter as c,parseAudioDeviceError as u,parseVideoDeviceError as l,addTimer as d,isObject as p,isNumber as f,Debouncer as v,removeTimer as m,getPlainMediaStreamInfo as h,tryJsonStringify as g,EventBus as b,createUuid as y,getPlainMediaTrackInfo as k,parseScreenShareError as S,getProtobufRoot as P,isPrivateIP as w,SdkType as T,uniqBy as M,VideoSourceInfo as O,TraceEvent as E,registerReporter as I,setLogLevel as A}from"@dingrtc/shared";export{ErrorCodeAndMsgMap}from"@dingrtc/shared";import R from"sdp-transform";import{DingRTCChannel as _}from"@dingrtc/channel";function x(e,t,r,i,n,a,o){try{var s=e[a](o),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(i,n)}function C(e){return function(){var t=this,r=arguments;return new Promise(function(i,n){var a=e.apply(t,r);function o(e){x(a,i,n,o,s,"next",e)}function s(e){x(a,i,n,o,s,"throw",e)}o(void 0)})}}function j(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function D(e){return D="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},D(e)}function L(e){var t=function(e,t){if("object"!=D(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t);if("object"!=D(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e,"string");return"symbol"==D(t)?t:t+""}function N(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,L(i.key),i)}}function F(e,t,r){return t&&N(e.prototype,t),r&&N(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function U(e,t){if(t&&("object"==D(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function G(e){return G=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},G(e)}function V(e,t){return V=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},V(e,t)}function B(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&V(e,t)}function H(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var q,W={exports:{}},Y={exports:{}};(q=Y).exports=function(e,t){this.v=e,this.k=t},q.exports.__esModule=!0,q.exports.default=q.exports;var Q=Y.exports,J={exports:{}},K={exports:{}};!function(e){function t(r,i,n,a){var o=Object.defineProperty;try{o({},"",{})}catch(r){o=0}e.exports=t=function(e,r,i,n){function a(r,i){t(e,r,function(e){return this._invoke(r,i,e)})}r?o?o(e,r,{value:i,enumerable:!n,configurable:!n,writable:!n}):e[r]=i:(a("next",0),a("throw",1),a("return",2))},e.exports.__esModule=!0,e.exports.default=e.exports,t(r,i,n,a)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(K);var z=K.exports;!function(e){var t=z;function r(){
2
2
  /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
3
- var i,n,a="function"==typeof Symbol?Symbol:{},o=a.iterator||"@@iterator",s=a.toStringTag||"@@toStringTag";function c(e,r,a,o){var s=r&&r.prototype instanceof l?r:l,c=Object.create(s.prototype);return t(c,"_invoke",function(e,t,r){var a,o,s,c=0,l=r||[],d=!1,p={p:0,n:0,v:i,a:f,f:f.bind(i,4),d:function(e,t){return a=e,o=0,s=i,p.n=t,u}};function f(e,t){for(o=e,s=t,n=0;!d&&c&&!r&&n<l.length;n++){var r,a=l[n],f=p.p,v=a[2];e>3?(r=v===t)&&(s=a[(o=a[4])?5:(o=3,3)],a[4]=a[5]=i):a[0]<=f&&((r=e<2&&f<a[1])?(o=0,p.v=t,p.n=a[1]):f<v&&(r=e<3||a[0]>t||t>v)&&(a[4]=e,a[5]=t,p.n=v,o=0))}if(r||e>1)return u;throw d=!0,t}return function(r,l,v){if(c>1)throw TypeError("Generator is already running");for(d&&1===l&&f(l,v),o=l,s=v;(n=o<2?i:s)||!d;){a||(o?o<3?(o>1&&(p.n=-1),f(o,s)):p.n=s:p.v=s);try{if(c=2,a){if(o||(r="next"),n=a[r]){if(!(n=n.call(a,s)))throw TypeError("iterator result is not an object");if(!n.done)return n;s=n.value,o<2&&(o=0)}else 1===o&&(n=a.return)&&n.call(a),o<2&&(s=TypeError("The iterator does not provide a '"+r+"' method"),o=1);a=i}else if((n=(d=p.n<0)?s:e.call(t,p))!==u)break}catch(e){a=i,o=1,s=e}finally{c=1}}return{value:n,done:d}}}(e,a,o),!0),c}var u={};function l(){}function d(){}function p(){}n=Object.getPrototypeOf;var f=[][o]?n(n([][o]())):(t(n={},o,function(){return this}),n),v=p.prototype=l.prototype=Object.create(f);function m(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,t(e,s,"GeneratorFunction")),e.prototype=Object.create(v),e}return d.prototype=p,t(v,"constructor",p),t(p,"constructor",d),d.displayName="GeneratorFunction",t(p,s,"GeneratorFunction"),t(v),t(v,s,"Generator"),t(v,o,function(){return this}),t(v,"toString",function(){return"[object Generator]"}),(e.exports=r=function(){return{w:c,m:m}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports}(J);var $=J.exports,X={exports:{}},Z={exports:{}},ee={exports:{}};!function(e){var t=Q,r=z;e.exports=function e(i,n){function a(e,r,o,s){try{var c=i[e](r),u=c.value;return u instanceof t?n.resolve(u.v).then(function(e){a("next",e,o,s)},function(e){a("throw",e,o,s)}):n.resolve(u).then(function(e){c.value=e,o(c)},function(e){return a("throw",e,o,s)})}catch(e){s(e)}}var o;this.next||(r(e.prototype),r(e.prototype,"function"==typeof Symbol&&Symbol.asyncIterator||"@asyncIterator",function(){return this})),r(this,"_invoke",function(e,t,r){function i(){return new n(function(t,i){a(e,r,t,i)})}return o=o?o.then(i,i):i()},!0)},e.exports.__esModule=!0,e.exports.default=e.exports}(ee);var te=ee.exports;!function(e){var t=$,r=te;e.exports=function(e,i,n,a,o){return new r(t().w(e,i,n,a),o||Promise)},e.exports.__esModule=!0,e.exports.default=e.exports}(Z);var re=Z.exports;!function(e){var t=re;e.exports=function(e,r,i,n,a){var o=t(e,r,i,n,a);return o.next().then(function(e){return e.done?e.value:o.next()})},e.exports.__esModule=!0,e.exports.default=e.exports}(X);var ie=X.exports,ne={exports:{}};!function(e){e.exports=function(e){var t=Object(e),r=[];for(var i in t)r.unshift(i);return function e(){for(;r.length;)if((i=r.pop())in t)return e.value=i,e.done=!1,e;return e.done=!0,e}},e.exports.__esModule=!0,e.exports.default=e.exports}(ne);var ae=ne.exports,oe={exports:{}},se={exports:{}};!function(e){function t(r){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(se);var ce=se.exports;!function(e){var t=ce.default;e.exports=function(e){if(null!=e){var r=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],i=0;if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}}}throw new TypeError(t(e)+" is not iterable")},e.exports.__esModule=!0,e.exports.default=e.exports}(oe);var ue=oe.exports;!function(e){var t=Q,r=$,i=ie,n=re,a=te,o=ae,s=ue;function c(){var u=r(),l=u.m(c),d=(Object.getPrototypeOf?Object.getPrototypeOf(l):l.__proto__).constructor;function p(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===d||"GeneratorFunction"===(t.displayName||t.name))}var f={throw:1,return:2,break:3,continue:3};function v(e){var t,r;return function(i){t||(t={stop:function(){return r(i.a,2)},catch:function(){return i.v},abrupt:function(e,t){return r(i.a,f[e],t)},delegateYield:function(e,n,a){return t.resultName=n,r(i.d,s(e),a)},finish:function(e){return r(i.f,e)}},r=function(e,r,n){i.p=t.prev,i.n=t.next;try{return e(r,n)}finally{t.next=i.n}}),t.resultName&&(t[t.resultName]=i.v,t.resultName=void 0),t.sent=i.v,t.next=i.n;try{return e.call(this,t)}finally{i.p=t.prev,i.n=t.next}}}return(e.exports=c=function(){return{wrap:function(e,t,r,i){return u.w(v(e),t,r,i&&i.reverse())},isGeneratorFunction:p,mark:u.m,awrap:function(e,r){return new t(e,r)},AsyncIterator:a,async:function(e,t,r,a,o){return(p(t)?n:i)(v(e),t,r,a,o)},keys:o,values:s}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=c,e.exports.__esModule=!0,e.exports.default=e.exports}(W);var le=(0,W.exports)(),de=le;try{regeneratorRuntime=le}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=le:Function("r","regeneratorRuntime = r")(le)}var pe,fe,ve,me,he,ge,be,ye,ke,Se,Pe,we,Te,Me,Oe=H(de);function Ee(e,t,r){return(t=L(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ie(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function Ae(e,t){if(e){if("string"==typeof e)return Ie(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ie(e,t):void 0}}function Re(e){return function(e){if(Array.isArray(e))return Ie(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Ae(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _e(){return _e="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var i=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=G(e)););return e}(e,t);if(i){var n=Object.getOwnPropertyDescriptor(i,t);return n.get?n.get.call(arguments.length<3?e:r):n.value}},_e.apply(null,arguments)}!function(e){e.PCMU="pcmu",e.PCMA="pcma",e.OPUS="opus",e.G722="g722",e.ISAC="iSAC",e.ILBC="iLBC",e.AAC="aac",e.AC3="ac3",e.NELLYMOSER="nellymoser"}(pe||(pe={})),function(e){e.VP8="vp8",e.VP9="vp9",e.H264="h264",e.H265="h265",e.AV1="av1",e.AV1X="av1x"}(fe||(fe={})),function(e){e.MIC="mic",e.SCREENCAST="screen-cast",e.MIXED="mixed"}(ve||(ve={})),function(e){e.CAMERA="camera",e.SCREENCAST="screen-cast",e.MIXED="mixed"}(me||(me={})),function(e){e.PUBLISH="publish",e.SUBSCRIBE="subscribe"}(he||(he={})),function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.GREAT=1]="GREAT",e[e.GOOD=2]="GOOD",e[e.NORMAL=3]="NORMAL",e[e.POOR=4]="POOR",e[e.BAD=5]="BAD",e[e.DISCONNECTED=6]="DISCONNECTED"}(ge||(ge={})),function(e){e[e.Native=1]="Native",e[e.Web=2]="Web",e[e.MiniProgram=3]="MiniProgram"}(be||(be={})),function(e){e[e.Windows=1]="Windows",e[e.Android=2]="Android",e[e.Mac=3]="Mac",e[e.iOS=4]="iOS",e[e.Linux=5]="Linux",e[e.Others=6]="Others"}(ye||(ye={})),function(e){e[e.UserKickOut=2011]="UserKickOut",e[e.UserReplaced=2012]="UserReplaced"}(ke||(ke={})),function(e){e[e.Idle=0]="Idle",e[e.Processing=1]="Processing",e[e.End=2]="End"}(Se||(Se={})),function(e){e[e.New=0]="New",e[e.Idle=1]="Idle",e[e.Processing=2]="Processing",e[e.Ended=3]="Ended"}(Pe||(Pe={})),function(e){e.QuotaLimit="task exceed limit",e.PCNotExisted="connection does NOT exist",e.RoomClosed="room_already_closed:30107",e.RoomNotExisted="room does not exist",e.RoomBusy="RoomBusy",e.RoomNotJoined="participant has not joined",e.FailOver="Session has been aborted"}(we||(we={})),function(e){e[e.MIC_OPEN=0]="MIC_OPEN",e[e.MIC_INTERRUPTED=1]="MIC_INTERRUPTED",e[e.CAMERA_OPEN=2]="CAMERA_OPEN",e[e.BACKGROUND_MODE=3]="BACKGROUND_MODE",e[e.DOWNLINK=4]="DOWNLINK",e[e.UPLINK=5]="UPLINK"}(Te||(Te={})),function(e){e[e.None=0]="None",e[e.LD=2]="LD",e[e.SD=4]="SD",e[e.HD=8]="HD",e[e.FHD=16]="FHD",e[e.QHD=32]="QHD",e[e.UHD=64]="UHD"}(Me||(Me={}));var xe,Ce="3.9.25",je={VD_120x120:[120,120],VD_160x120:[160,120],VD_180x180:[180,180],VD_240x180:[240,180],VD_320x180:[320,180],VD_240x240:[240,240],VD_320x240:[320,240],VD_424x240:[424,240],VD_360x360:[360,360],VD_480x360:[480,360],VD_640x360:[640,360],VD_480x480:[480,480],VD_640x480:[640,480],VD_840x480:[840,480],VD_960x540:[960,540],VD_960x720:[960,720],VD_1280x720:[1280,720],VD_1920x1080:[1920,1080],VD_2560x1440:[2560,1440]};!function(e){e.Playing="playing",e.Paused="paused",e.Stopped="stopped"}(xe||(xe={}));var De=Ce,Le=-999,Ne="rtc-label";JSON.stringify({needPersonalityAudioStream:!0,outPeerConnectionNotReuse:!0}),e.browserType,e.browserVersion,e.system,e.systemVersion;var Fe="onertc_state_sync",Ue="onertc_internal_track_event",Ge="rtc_sdk_el_data",Ve="rtc_sdk_player_container_label",Be=t().getLoggerWithPrefix("rtc-support"),He=new(function(){return F(function t(){j(this,t),Object.defineProperty(this,"system",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"browser",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"browserVersion",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.system=e.system,this.browser=e.browserType,this.browserVersion=e.browserVersion},[{key:"getSupportedCodec",value:(t=C(Oe.mark(function e(){var t,r,i;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t={audio:[],video:[]},e.prev=1,(r=new RTCPeerConnection).addTransceiver("video",{direction:"recvonly"}),r.addTransceiver("audio",{direction:"recvonly"}),e.next=2,r.createOffer();case 2:if(i=e.sent.sdp){e.next=3;break}return e.abrupt("return",t);case 3:return r.close(),r=null,i.match(/ VP8/i)&&t.video.push("VP8"),i.match(/ VP9/i)&&t.video.push("VP9"),i.match(/ AV1/i)&&t.video.push("AV1"),i.match(/ H264/i)&&t.video.push("H264"),i.match(/ H265/i)&&t.video.push("H265"),i.match(/ opus/i)&&t.audio.push("OPUS"),i.match(/ PCMU/i)&&t.audio.push("PCMU"),i.match(/ PCMA/i)&&t.audio.push("PCMA"),i.match(/ G722/i)&&t.audio.push("G722"),e.abrupt("return",t);case 4:throw e.prev=4,e.catch(1),Be.error("get supportedCodecs failed"),new n(a.IceConnectionSetLocalDescFail,"get supportedCodecs failed");case 5:case"end":return e.stop()}},e,null,[[1,4]])})),function(){return t.apply(this,arguments)})},{key:"checkSupported",value:function(){var t=!1;try{var r=window.RTCPeerConnection,i=navigator.mediaDevices&&navigator.mediaDevices.getUserMedia,n=window.WebSocket;t=!!(r&&i&&n)}catch(e){return Be.error("checkSystemRequirements error",e),!1}var a=!1;a=e.isChrome()||e.isFirefox()?parseInt(e.browserVersion,10)>=69:e.isOpera()?parseInt(e.browserVersion,10)>=45:e.isSafari()?parseInt(e.browserVersion,10)>=11:(e.isWeixin()||e.isQQBrowser(),!0);var o=t&&a;return Be.info("checkSystemRequirements, api:",t,"browser",a),o}},{key:"isSupportScreenShare",value:function(){return!this.system.includes(r.ANDROID)&&this.system!==r.IOS&&(!(this.browser===i.SAFARI&&parseInt(this.browserVersion)<13)&&(!(this.browser===i.FIREFOX&&parseInt(this.browserVersion)<66)&&!!(navigator&&navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)))}}]);var t}()),qe=function(){var t,r=(null===(t=window.RTCRtpSender)||void 0===t?void 0:t.prototype)||{},i=r.setParameters,n=r.getParameters;return!(!i||!n)&&(!e.isFirefox()&&(e.isSafari()?parseInt(e.browserVersion)>=14:e.isChrome()?parseInt(e.browserVersion)>=81:!e.isAndroid()))};function We(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(We=function(){return!!e})()}var Ye=t().getLoggerWithPrefix("[rtc-config]"),Qe=new(function(){function e(){var t,r,i,n;return j(this,e),r=this,i=G(i=e),t=U(r,We()?Reflect.construct(i,[],G(r).constructor):i.apply(r,n)),Object.defineProperty(t,"gslb",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(t,"simulcast",{enumerable:!0,configurable:!0,writable:!0,value:qe()}),Object.defineProperty(t,"audioSFU",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(t,"republish",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(t,"disableTransportCC",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(t,"preferH264CbProfile",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(t,"downlinkForbidHighProfile",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(t,"highStartBitrate",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(t,"_holdVideoLastFrame",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(t,"_consoleLogLevel",{enumerable:!0,configurable:!0,writable:!0,value:"warn"}),Object.defineProperty(t,"connectPcTimeoutMs",{enumerable:!0,configurable:!0,writable:!0,value:4e3}),t.setClientConfig({gslb:["https://gslb.dingrtc.com"]}),t}return B(e,c),F(e,[{key:"setClientConfig",value:function(e){Ye.info("setClientConfig",e);var t=e||{},r=t.gslb,i=t.simulcast,n=t.audioSFU,a=t.republish,c=t.disableTransportCC,u=t.highStartBitrate;"string"==typeof r&&(this.gslb=[r],o(r)),Array.isArray(r)&&s(r[0])&&(this.gslb=r,o(r[0])),null!=i&&qe()&&(this.simulcast=Boolean(i)),null!=n&&(this.audioSFU=Boolean(n)),null!=c&&(this.disableTransportCC=Boolean(c)),null!=a&&(this.republish=Boolean(a)),null!=u&&(this.highStartBitrate=!!u),null!=e&&e._consoleLogLevel&&(this._consoleLogLevel=null==e?void 0:e._consoleLogLevel),"boolean"==typeof(null==e?void 0:e.preferH264CbProfile)&&(this.preferH264CbProfile=e.preferH264CbProfile),(null==e?void 0:e.connectPcTimeoutMs)>=0&&e.connectPcTimeoutMs<=Number.MAX_SAFE_INTEGER?this.connectPcTimeoutMs=e.connectPcTimeoutMs:void 0!==(null==e?void 0:e.connectPcTimeoutMs)&&null!==(null==e?void 0:e.connectPcTimeoutMs)&&console.error("connectPcTimeoutMs should be a non-negative number")}}])}()),Je=function(e,t){return e.width!==t.width?e.width-t.width:e.height-t.height},Ke=function(e){var t;if(!e)return[];var r=e.media.video;if(!r)return[];var i=[],n=r.optional,a=r.parameters;return null!=a&&a.resolution&&i.push(a.resolution),null!=n&&null!==(t=n.parameters)&&void 0!==t&&null!==(t=t.resolution)&&void 0!==t&&t.length&&i.push.apply(i,Re(n.parameters.resolution)),i.sort(Je),i},ze=function(e,t,r){var i,o=e.media.video;if(t===we.QuotaLimit)return i=new n(a.QuotaLimitExceed);if("audio"===r)i=new n(a.SubscribeAudioStreamFailed,t);else if("video"===r){var s=o.source;s===me.CAMERA?i=new n(a.SubscribeVideoStreamFailed,t):s===me.SCREENCAST&&(i=new n(a.SubscribeScreenShareFailed,t))}return i},$e=function(e,t){var r,i=e.trackMediaType;if(t===we.QuotaLimit)return r=new n(a.QuotaLimitExceed);if("audio"===i)r=new n(a.PublishAudioStreamFailed,t);else{var o=e.source;o===me.CAMERA?r=new n(a.PublishVideoStreamFailed,t):o===me.SCREENCAST&&(r=new n(a.PublishScreenShareFailed,t))}return r},Xe=function(e,t,r,i){var n=i,a=e.getVideoTracks(),o=e.getAudioTracks();return"audio"===t&&o.length?Qe.audioSFU?i?i.replaceStream(e):n=new Hr(null,r,e):i?i.replaceTrack(o[0]):n=new Hr(o[0],r):"video"===t&&a.length&&(i?i.replaceTrack(a[0]):n=new qr(a[0],r)),n},Ze=function(e){return"object"===D(e.video)&&e.video.source===me.SCREENCAST};function et(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,i)}return r}function tt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?et(Object(r),!0).forEach(function(t){Ee(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):et(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function rt(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return it(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?it(e,t):void 0}}(e))||t){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function it(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function nt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(nt=function(){return!!e})()}var at=t().getLoggerWithPrefix("[rtc-device]"),ot=function(){function t(){var e,r,i,n,a;return j(this,t),r=this,i=G(i=t),e=U(r,nt()?Reflect.construct(i,[],G(r).constructor):i.apply(r,n)),Object.defineProperty(e,"deviceList",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(e,"checking",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(e,"checkDeviceUpdate",{enumerable:!0,configurable:!0,writable:!0,value:(a=C(Oe.mark(function r(){var i;return Oe.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:if(!e.checking){r.next=1;break}return r.abrupt("return");case 1:return e.checking=!0,r.next=2,t.getDevices();case 2:i=r.sent,e.compareDevices(i,"audiooutput"),e.compareDevices(i,"videoinput"),e.compareDevices(i,"audioinput"),e.deviceList=i,e.checking=!1;case 3:case"end":return r.stop()}},r)})),function(){return a.apply(this,arguments)})}),Object.defineProperty(e,"compareDevices",{enumerable:!0,configurable:!0,writable:!0,value:function(t,r){var i,n=t.filter(function(e){return e.kind===r}),a=e.deviceList.filter(function(e){return e.kind===r}),o=n.map(function(e){return e.deviceId}),s=a.map(function(e){return e.deviceId}),c=n.filter(function(e){var t=e.deviceId;return!s.includes(t)}),u=a.filter(function(e){var t=e.deviceId;return!o.includes(t)}),l={audioinput:"microphone-changed",audiooutput:"playback-device-changed",videoinput:"camera-changed"},d=rt(c);try{for(d.s();!(i=d.n()).done;){var p=i.value;e.emit(l[r],{device:p,state:"active"})}}catch(e){d.e(e)}finally{d.f()}var f,v=rt(u);try{for(v.s();!(f=v.n()).done;){var m=f.value;e.emit(l[r],{device:m,state:"inactive"})}}catch(e){v.e(e)}finally{v.f()}}}),t._instance?U(e,t._instance):(e.deviceList=[],He.checkSupported()?(t.getDevices({audio:!0,video:!0},!0).then(function(t){e.deviceList=t,e.addEventListeners()}),e):U(e))}return B(t,c),F(t,[{key:"addEventListeners",value:function(){"ondevicechange"in navigator.mediaDevices?navigator.mediaDevices.addEventListener("devicechange",this.checkDeviceUpdate):d(this.checkDeviceUpdate,1e3,"interval")}}],[{key:"getInstance",value:function(){return t._instance}},{key:"getMedias",value:(r=C(Oe.mark(function r(i,o){var s,c,u,l,d,p,f,v,m,h,g;return Oe.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:if(t.accGetMedia++,s=t.accGetMedia,!Ze(i)){r.next=6;break}if(at.info("getDisplayMedia with",s,i,o),!e.isElectron()){r.next=3;break}if(o.video){r.next=1;break}throw new n(a.ScreenShareOpenFail,"only video screen cast is supported, but got no video parameters");case 1:return r.next=2,navigator.mediaDevices.getUserMedia({audio:!1,video:{mandatory:{chromeMediaSource:"screen",minWidth:(null===(u=o.video)||void 0===u?void 0:u.width)||1280,maxWidth:(null===(l=o.video)||void 0===l?void 0:l.width)||1280,minHeight:(null===(d=o.video)||void 0===d?void 0:d.height)||720,maxHeight:(null===(p=o.video)||void 0===p?void 0:p.height)||720,minFrameRate:(null===(f=o.video)||void 0===f?void 0:f.frameRate)||5,maxFrameRate:(null===(v=o.video)||void 0===v?void 0:v.frameRate)||5}}});case 2:c=r.sent,r.next=5;break;case 3:return r.next=4,null===(m=navigator.mediaDevices)||void 0===m?void 0:m.getDisplayMedia(o);case 4:c=r.sent;case 5:return at.info("succ getDisplayMedia with",s),r.abrupt("return",c);case 6:return at.info("getUserMedia with",s,i,o),r.next=7,null===(h=navigator.mediaDevices)||void 0===h?void 0:h.getUserMedia(o);case 7:return g=r.sent,at.info("succ getUserMedia with",s),i.audio&&(this.audioPermitted=!0),i.video&&(this.videoPermitted=!0),r.abrupt("return",g);case 8:case"end":return r.stop()}},r,this)})),function(e,t){return r.apply(this,arguments)})},{key:"getDevices",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{audio:!0,video:!0},r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return new Promise(function(i,o){var s;if(null!==(s=navigator.mediaDevices)&&void 0!==s&&s.enumerateDevices){var c=!1;t.audio&&t.video?c=e.audioPermitted&&e.videoPermitted:t.audio?c=e.audioPermitted:t.video&&(c=e.videoPermitted),navigator.mediaDevices.enumerateDevices().then(function(n){var a=n.filter(function(e){return e.deviceId}),s=a.filter(function(e){return"videoinput"===e.kind}),u=a.filter(function(e){return"audioinput"===e.kind}),l=a.filter(function(e){return"audiooutput"===e.kind}),d=[];t.audio&&(d=d.concat(u,l)),t.video&&(d=d.concat(s)),0!==d.length||c||r?d.length?(t.audio&&(e.audioPermitted=!0),t.video&&(e.videoPermitted=!0),i(d)):i(d):(at.info("getUserMedia with",t),navigator.mediaDevices.getUserMedia(t).then(function(r){t.audio&&(e.audioPermitted=!0),t.video&&(e.videoPermitted=!0),r.getTracks().forEach(function(e){e.stop()}),navigator.mediaDevices.enumerateDevices().then(function(e){i(e)},o)},o)),i(a)})}else o(new n(a.BrowserNotSupported,"enumerateDevices is not supported"))})}}]);var r}();Object.defineProperty(ot,"videoPermitted",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(ot,"audioPermitted",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(ot,"_instance",{enumerable:!0,configurable:!0,writable:!0,value:new ot}),Object.defineProperty(ot,"accGetMedia",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(ot,"getPlaybackDevices",{enumerable:!0,configurable:!0,writable:!0,value:function(){return ot.getDevices({audio:!0}).then(function(e){return e.filter(function(e){return"audiooutput"===e.kind})}).catch(function(e){throw u(e)})}}),Object.defineProperty(ot,"getCameras",{enumerable:!0,configurable:!0,writable:!0,value:function(){return ot.getDevices({video:!0}).then(function(e){return at.info("getCameras",e),e.filter(function(e){return"videoinput"===e.kind}).map(function(e,t){var r={deviceId:e.deviceId,kind:e.kind,groupId:e.groupId,label:e.label||"camera ".concat(t)};return tt(tt({},r),{},{toJSON:function(){return r}})})}).catch(function(e){throw at.error("getCameras error",e),l(e)})}}),Object.defineProperty(ot,"getMicrophones",{enumerable:!0,configurable:!0,writable:!0,value:function(){return ot.getDevices({audio:!0}).then(function(e){return at.info("getMicrophones",e),e.filter(function(e){return"audioinput"===e.kind})}).catch(function(e){throw at.error("getMicrophones error",e),u(e)})}});var st,ct,ut=function(e){return{width:je[e][0],height:je[e][1]}},lt=function(t){var r,i=Object.create({}),n={};null!==(r=navigator)&&void 0!==r&&null!==(r=r.mediaDevices)&&void 0!==r&&r.getSupportedConstraints&&(n=navigator.mediaDevices.getSupportedConstraints(),console.log(n));var a=t.AEC,o=t.AGC,s=t.ANS;return t.deviceId&&(e.isSafari()?i.deviceId=t.deviceId:i.deviceId={exact:t.deviceId}),n.autoGainControl&&(i.autoGainControl={ideal:null==o||o}),n.echoCancellation&&(i.echoCancellation={ideal:null==a||a}),n.noiseSuppression&&(i.noiseSuppression={ideal:null==s||s}),i},dt=function(t){if(!p(t)||!t.audio&&!t.video)return Promise.reject(new TypeError("Invalid constrains"));var r=t.audio,i=t.video;if(!Ze(t)&&"object"===D(r)&&r.source===ve.SCREENCAST)return Promise.reject(new TypeError("Cannot share screen without video."));if(Ze(t)&&"object"===D(r)&&r.source!==ve.SCREENCAST)return Promise.reject(new TypeError("Cannot capture video from screen cast while capture audio from other source."));if(!r&&!i)return Promise.reject(new TypeError("At least one of audio and video must be requested."));var n={};if("object"===D(r)&&r.source===ve.MIC||"object"===D(r)&&r.source===ve.SCREENCAST?n.audio=lt(r):n.audio=t.audio,"object"===D(i)){var a,o=i.frameRate,c=i.deviceId,u=i.source,l=i.facingMode,d=i.displaySurface,v=i.dimension;n.video={},f(o)&&(n.video.frameRate=Math.min(i.frameRate,30)),v&&(a=ut(v)),a&&a.width&&a.height&&(u===me.SCREENCAST||e.isFirefox()?(n.video.width=a.width,n.video.height=a.height):(n.video.width={ideal:a.width,max:a.width},n.video.height={ideal:a.height,max:a.height})),s(c)&&c&&(n.video.deviceId={exact:c}),u===me.SCREENCAST&&(e.isFirefox()&&(n.video.mediaSource="screen"),d&&["browser","window","monitor"].includes(d)&&(n.video.displaySurface=d)),l&&["user","environment"].includes(l)&&(n.video.facingMode=l)}else n.video=i;return ot.getMedias(t,n)},pt=function(e){if(!e)return!1;var t=e.getVideoTracks()[0];return t&&t.enabled&&!t.muted},ft=function(e,t){var r=(e.timestamp-((null==t?void 0:t.timestamp)||e.timestamp))/1e3;return r<=0&&(r=1),r},vt=function(e,t){return null!=e?[2,4,6,0][e]:null!==t?[3,0,0,0,1,1,2][t]:void 0},mt=function(e,t){isNaN(e)&&(e=0),isNaN(t)&&(t=0);var r=e-t;return r<0&&(r=e),r},ht=function(e){var t=e.fn,r=e.times,i=e.interval,n=void 0===i?0:i,a=e.resolve,o=e.reject,s=function(){var e=C(Oe.mark(function e(){var i,s,c;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:s=0;case 1:if(!(s<r)){e.next=7;break}return e.prev=2,e.next=3,t();case 3:return i=e.sent,null==a||a(i),e.abrupt("continue",7);case 4:if(e.prev=4,c=e.catch(2),s!==r-1){e.next=5;break}return null==o||o(c),e.abrupt("return",c);case 5:return e.next=6,gt(n);case 6:s++,e.next=1;break;case 7:return e.abrupt("return",i);case 8:case"end":return e.stop()}},e,null,[[2,4]])}));return function(){return e.apply(this,arguments)}}();return s()},gt=function(){var e=C(Oe.mark(function e(t){return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!(t>0)){e.next=1;break}return e.next=1,new Promise(function(e){setTimeout(e,t)});case 1:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}(),bt=function(e){return new Promise(function(t){d(t,1e3*e)})},yt=t().getLoggerWithPrefix("[rtc-mediaElPool]"),kt="rtc-intersecting",St="visible",Pt="invisible",wt=["abort","canplay","canplaythrough","durationchange","emptied","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","ratechange","seeked","seeking","stalled","suspend","volumechange","waiting"],Tt=function(e){return"".concat(null==e?void 0:e.getAttribute(Ne),"-").concat(null==e?void 0:e.rtcPurpose)},Mt=function(){return F(function e(t,r){var i=this;j(this,e),Object.defineProperty(this,"mediaElementCount",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"mediaElementPool",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"mediaElementsInUse",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"allElements",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(this,"hasActivated",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"mediaKind",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"mediaPlaybackCheckInterval",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"debouncer",{enumerable:!0,configurable:!0,writable:!0,value:new v}),Object.defineProperty(this,"currentTimeOfLastCheckMap",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"observer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_activatedListener",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"destroy",{enumerable:!0,configurable:!0,writable:!0,value:function(){i.mediaElementPool.forEach(function(e){return i._resetMediaElement(e)}),i.mediaElementPool=[],i.allElements.clear(),i.mediaElementsInUse.forEach(function(e){return i._resetMediaElement(e)}),i.mediaElementsInUse=[],document.removeEventListener("click",i._onUserInteraction),document.removeEventListener("touchstart",i._onUserInteraction),document.removeEventListener("visibilitychange",i._tryReloadOnPauseAndErrorWhenVisibleTriggerByVisible),i.mediaPlaybackCheckInterval&&(m(i.mediaPlaybackCheckInterval,"interval"),i.mediaPlaybackCheckInterval=null),[].concat(Re(i.mediaElementPool),Re(i.mediaElementsInUse)).forEach(function(e){var t;return null===(t=i.observer)||void 0===t?void 0:t.unobserve(e)})}}),Object.defineProperty(this,"_tryReloadOnPauseAndErrorWhenVisible",{enumerable:!0,configurable:!0,writable:!0,value:function(e){i.mediaElementsInUse.forEach(function(t){if(t.srcObject){var r=t.srcObject;if(t.error&&(yt.debug("".concat(e,": tag=").concat(t.tagName," ").concat(Tt(t)," has error, error=").concat(t.error,", doc.visibilityState=").concat(document.visibilityState,", mediaStream="),h(r)),"visible"===document.visibilityState&&pt(r)&&t.load()),t.paused){var n=!1;if(i.hasActivated&&"video"===i.mediaKind?function(e){return e&&e.getAttribute(kt)===St}(t)&&"visible"===document.visibilityState&&"visible"===getComputedStyle(t).visibility&&(n=!0):n=!0,n){var a="".concat(e,": ").concat(Tt(t)," paused, doc.visibilityState=").concat(document.visibilityState,", intersecting=").concat(t.getAttribute(kt),", mediaStream="),o=h(r);yt.error(a,o),pt(r)&&t.load(),t.paused&&t.play().catch(function(e){console.error("inPoll",e)})}}}}),i.debouncer.debounce(i._tryReloadOnCurrentTimeFreeze.bind(i,e),1e3)}}),Object.defineProperty(this,"_tryReloadOnCurrentTimeFreeze",{enumerable:!0,configurable:!0,writable:!0,value:function(e){i.mediaElementsInUse.forEach(function(t){if(t.srcObject){var r=t.srcObject,n="video"===i.mediaKind?r.getVideoTracks()[0]:void 0;if(!t.paused&&i.currentTimeOfLastCheckMap.get(t)===t.currentTime&&"video"===i.mediaKind&&!0!==(null==n?void 0:n.muted))return yt.error("".concat(e,": tag=").concat(t.tagName," label=").concat(Tt(t),", currentTime Stop, doc.visibilityState=").concat(document.visibilityState,", curTime=").concat(t.currentTime,", mediaStream="),h(r)),void("visible"===document.visibilityState&&pt(r)&&t.load());i.currentTimeOfLastCheckMap.set(t,t.currentTime)}})}}),Object.defineProperty(this,"_tryReloadOnPauseAndErrorWhenVisibleTriggerByVisible",{enumerable:!0,configurable:!0,writable:!0,value:function(){i._tryReloadOnPauseAndErrorWhenVisible("visibilityChange")}}),Object.defineProperty(this,"_elementDefaultErrorHandler",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=e.target,r="error event on ".concat(i.mediaKind," playback, mediaStream="),n=h(null==t?void 0:t.srcObject),a=null==t?void 0:t.error;yt.error(r,n,a&&{code:null==a?void 0:a.code,message:null==a?void 0:a.message})}}),Object.defineProperty(this,"_elementDefaultPauseHandler",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=e.target,r="pause event on ".concat(i.mediaKind," playback, mediaStream="),n=h(null==t?void 0:t.srcObject),a=null==t?void 0:t.error;yt.debug(r,n,a&&{code:null==a?void 0:a.code,message:null==a?void 0:a.message})}}),Object.defineProperty(this,"_elementDefaultPlayHandler",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=e.target,r="play event on ".concat(i.mediaKind," playback, mediaStream="),n=h(null==t?void 0:t.srcObject);yt.debug(r,n)}}),Object.defineProperty(this,"_onUserInteraction",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e=[].concat(Re(i.mediaElementPool),Re(i.mediaElementsInUse));if(!i.hasActivated){i.hasActivated=!0;var t="".concat(i.mediaKind," good! media elements activated by click");if(yt.debug(t),e.forEach(function(e){e.load()}),yt.info("load all for activate"),i._activatedListener)try{i._activatedListener()}catch(e){yt.error("error occurred when exec activatedListener",g(e))}else yt.debug("ignore activatedListener for there is no one")}i._tryReloadOnPauseAndErrorWhenVisible("userInteract")}}),yt.debug("build ".concat(t," pool size"),r),this.mediaElementCount=r,this.mediaElementsInUse=[],this.mediaElementPool=[],this.mediaKind=t,window.IntersectionObserver&&(this.observer=new IntersectionObserver(function(e){e.forEach(function(e){var t,r;e.isIntersecting?null===(t=e.target)||void 0===t||t.setAttribute(kt,St):null===(r=e.target)||void 0===r||r.setAttribute(kt,Pt)})}));for(var n=1;n<=r;n++){var a=this._createElement("".concat(t,"-").concat(n));this.mediaElementPool.push(a),this.allElements.add(a)}document.addEventListener("click",this._onUserInteraction,!0),document.addEventListener("touchstart",this._onUserInteraction,!0),document.addEventListener("visibilitychange",this._tryReloadOnPauseAndErrorWhenVisibleTriggerByVisible,!0),this.mediaPlaybackCheckInterval=d(function(){i.hasActivated&&i._tryReloadOnPauseAndErrorWhenVisible("intervalCheck")},4e3,"interval")},[{key:"addAtttribute",value:function(e){if(e.autoplay=!0,e.setAttribute(Ne,"toReused"),e instanceof HTMLVideoElement)e.muted=!0,e.playsInline=!0,e.controls=!1,e.setAttribute("webkit-playsinline","true"),e.setAttribute("x5-video-player-type","h5"),e.setAttribute("x5-playsinline","true");else{var t,r=e;r.volume=1,null===(t=r.setSinkId)||void 0===t||t.call(r,"")}}},{key:"popElement",value:function(e){var t;return(t=this.mediaElementPool.shift())?yt.info("".concat(this.mediaKind," pop label=").concat(Tt(t)," for ").concat(e)):(t=this._createElement("".concat(this.mediaKind,"-").concat(++this.mediaElementCount)),yt.info("".concat(this.mediaKind," create new videoEl for no more video element in pool"))),this.mediaElementsInUse.push(t),this._resetMediaElement(t),t.addEventListener("error",this._elementDefaultErrorHandler),t.addEventListener("pause",this._elementDefaultPauseHandler),t.addEventListener("play",this._elementDefaultPlayHandler),t.rtcPurpose=e||"",t}},{key:"pushElement",value:function(e){if(this.allElements.has(e)){var t=this.mediaElementsInUse;this.mediaElementsInUse=this.mediaElementsInUse.filter(function(t){return t!==e}),t.length!==this.mediaElementsInUse.length&&(yt.debug("".concat(this.mediaKind," pushed"),Tt(e)),this.mediaElementPool.push(e),this._resetMediaElement(e))}}},{key:"isMediaElementActivated",value:function(){return this.hasActivated}},{key:"setActivateListener",value:function(e){this._activatedListener=e}},{key:"_createElement",value:function(e){var t,r=document.createElement(this.mediaKind);return null===(t=this.observer)||void 0===t||t.observe(r),this.addAtttribute(r),r.setAttribute(Ne,e),r}},{key:"_resetMediaElement",value:function(e){wt.forEach(function(t){e["on".concat(t)]=null}),e.removeEventListener("error",this._elementDefaultErrorHandler),e.removeEventListener("pause",this._elementDefaultPauseHandler),e.removeEventListener("play",this._elementDefaultPlayHandler),e.style.cssText="",e.className="",this.addAtttribute(e),e.srcObject=null}}])}(),Ot=function(){return st||At(),st},Et=function(){return ct||At(),ct};window.getAudioElementPool=Ot,window.getVideoElementPool=Et;var It=e.isIOS()||e.isAndroid()?9:25,At=function(){st||(st=new Mt("audio",2)),ct||(ct=new Mt("video",It))},Rt=t().getLoggerWithPrefix("[rtc-actx]"),_t=null,xt=function(){if(_t||(_t=new AudioContext),"running"!==_t.state){var e=setTimeout(function(){var e="timeout for resume audioContext, probably page still has no user gesture like click or touch";console.error(e),Rt.error(e)},2e3);_t.resume().finally(function(){clearTimeout(e)})}return _t},Ct=function(e){var t=e.getAudioTracks(),r=xt().createMediaStreamDestination();return t.forEach(function(e){xt().createMediaStreamSource(new MediaStream([e])).connect(r)}),r.stream.getAudioTracks()[0]},jt=function(e,t){t.connect(e),e.fftSize=2048,e.smoothingTimeConstant=.4;var r=new Float32Array(e.fftSize);if(e.getFloatTimeDomainData)e.getFloatTimeDomainData(r);else{var i=new Uint8Array(e.fftSize);e.getByteTimeDomainData(i);for(var n=0;n<r.length;++n)r[n]=i[n]/128-1}for(var a=0,o=0;o<r.length;o++)a+=r[o]*r[o];return Math.max(10*Math.log10(a/r.length)+100,0)/100},Dt=function(e){var t=document.createElement("canvas"),r=t.getContext("2d"),i=e.videoHeight,n=e.videoWidth;return t.width=n,t.height=i,r.drawImage(e,0,0,n,i),t.toDataURL("image/png")},Lt=Ot(),Nt=Et(),Ft=t().getLoggerWithPrefix("[rtc-playerMgr]"),Ut=F(function e(t,r,i,n){var a=this;j(this,e),Object.defineProperty(this,"mediaEl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"playerConfig",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"mediaWrapperEl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"track",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"snapshotMediaStream",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"canvas",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"snapshotInterval",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"checkSwitchSnapshotInterval",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"lastCheckResult",{enumerable:!0,configurable:!0,writable:!0,value:{msTrackPlayable:!1,elPlaying:!1}}),Object.defineProperty(this,"isPlayerPlaying",{enumerable:!0,configurable:!0,writable:!0,value:function(){return a.mediaEl&&a.mediaEl.currentTime>0&&!a.mediaEl.paused&&!a.mediaEl.ended&&a.mediaEl.readyState>=2}}),Object.defineProperty(this,"snapshot",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e,t,r=a.track.getMediaStreamTrack(),i="live"===(null==r?void 0:r.readyState)&&(null==r?void 0:r.enabled)&&!(null!=r&&r.muted);if(Qe._holdVideoLastFrame&&(i&&(null===(e=a.mediaEl)||void 0===e||null===(e=e.srcObject)||void 0===e||null===(t=e.getVideoTracks)||void 0===t||null===(t=t.call(e))||void 0===t?void 0:t[0])===r)){var n=a.canvas.getContext("2d");n.clearRect(0,0,a.canvas.width,a.canvas.height);var o=a.mediaEl.videoHeight,s=a.mediaEl.videoWidth;a.canvas.width===s&&a.canvas.height===o||(a.canvas.width=s,a.canvas.height=o),n.drawImage(a.mediaEl,0,0,s,o)}}}),Object.defineProperty(this,"checkSwitchSnapshot",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e,t,r,i,n,o,s=a.track.getMediaStreamTrack(),c="live"===(null==s?void 0:s.readyState)&&(null==s?void 0:s.enabled)&&!(null!=s&&s.muted);c===a.lastCheckResult.msTrackPlayable&&a.isPlayerPlaying()===a.lastCheckResult.elPlaying||Ft.info("rtcTrackId=".concat(a.track.getTrackId()," play change trackPlayable=").concat(c," isPlaying=").concat(a.isPlayerPlaying()),{msTrackReadyState:null==s?void 0:s.readyState,msTrackEnabled:null==s?void 0:s.enabled,msTrackMuted:null==s?void 0:s.muted,elCurrentTime:null===(e=a.mediaEl)||void 0===e?void 0:e.currentTime,elPaused:null===(t=a.mediaEl)||void 0===t?void 0:t.paused,elEnded:null===(r=a.mediaEl)||void 0===r?void 0:r.ended,elReadyState:null===(i=a.mediaEl)||void 0===i?void 0:i.readyState});(a.lastCheckResult={msTrackPlayable:c,elPlaying:a.isPlayerPlaying()},Qe._holdVideoLastFrame)&&(c&&(null===(n=a.mediaEl)||void 0===n||null===(n=n.srcObject)||void 0===n||null===(o=n.getVideoTracks)||void 0===o||null===(o=o.call(n))||void 0===o?void 0:o[0])!==s?a.switchOriginVideo():c||a.mediaEl.srcObject===a.snapshotMediaStream||a.switchSnapshot())}}),Object.defineProperty(this,"startCheckPlayState",{enumerable:!0,configurable:!0,writable:!0,value:function(){"video"===a.track.trackMediaType&&(Ft.info("startCheckPlayState trackid=",a.track.getTrackId()),a.snapshotInterval=setInterval(a.snapshot,300),a.checkSwitchSnapshotInterval=setInterval(a.checkSwitchSnapshot,150))}}),Object.defineProperty(this,"stopCheckPlayState",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e,t;Ft.info("stopCheckPlayState trackid=",null===(e=a.track)||void 0===e||null===(t=e.getTrackId)||void 0===t?void 0:t.call(e)),clearInterval(a.snapshotInterval),clearInterval(a.checkSwitchSnapshotInterval)}}),Object.defineProperty(this,"playVideo",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e;Ft.info("playVideo",a.track.getTrackId(),null===(e=a.mediaWrapperEl)||void 0===e?void 0:e.getAttribute(Ve)),a.mediaWrapperEl.appendChild(a.mediaEl),a.mediaEl.pause();var t=a.track.sfuStream||new MediaStream([a.track.getMediaStreamTrack()]);a.mediaEl.srcObject=t,a.mediaEl.play().catch(function(e){var t,r;"AbortError"!==e.name&&Ft.error("play video error trackid=",null===(t=a.track)||void 0===t||null===(r=t.getTrackId)||void 0===r?void 0:r.call(t),g(e))}),a.stopCheckPlayState(),a.startCheckPlayState()}}),Object.defineProperty(this,"playAudio",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e=a.track.sfuStream||new MediaStream([a.track.getMediaStreamTrack()]);a.mediaEl.srcObject=e,a.mediaEl.play().catch(function(e){var t,r;"AbortError"!==e.name&&Ft.error("play audio error trackid=",null===(t=a.track)||void 0===t||null===(r=t.getTrackId)||void 0===r?void 0:r.call(t),g(e))}),a.stopCheckPlayState(),a.startCheckPlayState()}}),Object.defineProperty(this,"stopPlay",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e,t;if(Ft.info("stopPlay",a.track.getTrackId(),null===(e=a.mediaWrapperEl)||void 0===e?void 0:e.getAttribute(Ve)),a.stopCheckPlayState(),a.mediaEl&&a.track){var r,i;if(a.mediaEl.pause(),null!==(t=a.mediaWrapperEl)&&void 0!==t&&t.contains(a.mediaEl))null===(r=a.mediaWrapperEl)||void 0===r||null===(i=r.removeChild)||void 0===i||i.call(r,a.mediaEl);a.mediaEl.srcObject=null,a.canvas=null,"audio"===a.track.trackMediaType?Lt.pushElement(a.mediaEl):Nt.pushElement(a.mediaEl)}}}),Object.defineProperty(this,"switchSnapshot",{enumerable:!0,configurable:!0,writable:!0,value:function(){Ft.info("switchSnapshot trackid",a.track.getTrackId()),a.mediaEl.srcObject=a.snapshotMediaStream,a.mediaEl.play().catch(function(e){Ft.info("snapshot play error, trackid",a.track.getTrackId(),g(e))})}}),Object.defineProperty(this,"switchOriginVideo",{enumerable:!0,configurable:!0,writable:!0,value:function(){setTimeout(function(){var e,t,r=a.track.getMediaStreamTrack();if("live"===(null==r?void 0:r.readyState)&&(null==r?void 0:r.enabled)&&!(null!=r&&r.muted)&&(null===(e=a.mediaEl)||void 0===e||null===(e=e.srcObject)||void 0===e||null===(t=e.getVideoTracks)||void 0===t||null===(t=t.call(e))||void 0===t?void 0:t[0])!==r){Ft.info("switchOriginVideo trackid",a.track.getTrackId());var i=a.track.sfuStream||new MediaStream([a.track.getMediaStreamTrack()]);a.mediaEl.srcObject=i,a.mediaEl.play().catch(function(e){Ft.info("switchOriginVideo play error, trackid",a.track.getTrackId(),g(e))})}},1e3)}}),this.mediaWrapperEl=n,this.mediaWrapperEl&&!this.mediaWrapperEl.getAttribute(Ve)&&this.mediaWrapperEl.setAttribute(Ve,"container_".concat(e.containerRtcLabelAcc++)),this.track=t,this.playerConfig=r,this.mediaEl=i,this.mediaEl.setAttribute(Ge,this.track.getTrackId()),this.canvas=document.createElement("canvas"),this.canvas.setAttribute(Ge,this.track.getTrackId()),this.snapshotMediaStream=this.canvas.captureStream(4)});Object.defineProperty(Ut,"containerRtcLabelAcc",{enumerable:!0,configurable:!0,writable:!0,value:0});var Gt=new(function(){return F(function e(){j(this,e),Object.defineProperty(this,"playControllerArr",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.playControllerArr=[]},[{key:"getElement",value:function(e){return this.playControllerArr.filter(function(t){var r;return(null===(r=t.track)||void 0===r?void 0:r.getTrackId())===e.getTrackId()}).map(function(e){return e.mediaEl})}},{key:"getPlayCtrls",value:function(e){return this.playControllerArr.filter(function(t){var r;return(null===(r=t.track)||void 0===r?void 0:r.getTrackId())===e.getTrackId()})}},{key:"play",value:function(e,t,r){var i,o=this;Ft.info("call play",e.getTrackId(),t instanceof HTMLElement?t.tagName:t,r);var s=e.getTrackId(),c=e.sfuStream||new MediaStream([e.getMediaStreamTrack()]);if("video"===e.trackMediaType){var u,l=this.findDom(t);if(!l)throw new n(a.InvaildArgument,"wrapper dom not found");var d=r||{},p=d.mirror,f=d.fit;if((i=this.playControllerArr.find(function(e){return e.mediaWrapperEl===l}))&&(null===(u=i.track)||void 0===u?void 0:u.getTrackId())!==(null==e?void 0:e.getTrackId()))return this.stopPlay(i.track,t),void this.play(e,t,r);if(i)i.mediaEl.pause(),!e.sourceMirror!=!p?i.mediaEl.style.transform="scaleX(-1)":i.mediaEl.style.transform="",f&&(i.mediaEl.style.objectFit=f),i.mediaEl.srcObject=c,i.mediaEl.play().catch(function(e){var t,r;"AbortError"!==e.name&&Ft.error("play video error trackid=",null===(t=i.track)||void 0===t||null===(r=t.getTrackId)||void 0===r?void 0:r.call(t),g(e))});else{var v,m=null===(v=this.getPlayCtrls(e))||void 0===v?void 0:v.length;if(m>3){var h,y=["DingRTC WARN: possible memory leak. More than 3 HTMLElement containers are playing the same track.","Please call track.stop to stop playing HTMLElements that will unmount in DOM.","TrackId:",e.getTrackId()];(h=console).warn.apply(h,y),Ft.info.apply(Ft,y.concat([m]))}(function(e,t){if(e.style.width="100%",e.style.height="100%",t){var r=t.mirror,i=t.fit;!0===r&&(e.style.transform="scaleX(-1)"),i&&(e.style.objectFit=i)}})((i=new Ut(e,r,Et().popElement(),l)).mediaEl,{mirror:!e.sourceMirror!=!p,fit:f}),i.playVideo(),this.playControllerArr.push(i)}}else(i=this.playControllerArr.find(function(t){var r;return(null===(r=t.track)||void 0===r?void 0:r.getTrackId())===e.getTrackId()}))?(i.mediaEl.pause(),i.mediaEl.srcObject=c,Ft.info("element loaded",e.getTrackId()),i.mediaEl.load()):((i=new Ut(e,null,Ot().popElement(),null)).playAudio(),this.playControllerArr.push(i));i.mediaEl.paused&&i.mediaEl.play().catch(function(e){"NotAllowedError"===e.name?(Ft.error("autoplay failed",g(e)),b.emit("autoplay-failed",o)):"AbortError"!==e.name&&Ft.warn("".concat(s," play error"),g(e))})}},{key:"isPlaying",value:function(e){return this.playControllerArr.filter(function(t){var r;return(null===(r=t.track)||void 0===r?void 0:r.getTrackId())===(null==e?void 0:e.getTrackId())}).some(function(e){return e.isPlayerPlaying()})}},{key:"stopPlay",value:function(e,t){var r;Ft.info("call stop play",e.getTrackId());var i=this.findDom(t),n=this.playControllerArr.filter(function(r){var n;return(null===(n=r.track)||void 0===n?void 0:n.getTrackId())===(null==e?void 0:e.getTrackId())&&(!t||r.mediaWrapperEl===i)});if(n.length){n.forEach(function(e){e.stopPlay()});var a=this.playControllerArr.filter(function(e){return!n.includes(e)});(r=this.playControllerArr).splice.apply(r,[0,this.playControllerArr.length].concat(Re(a)))}}},{key:"findDom",value:function(e){if(!e)return null;var t="string"==typeof e?document.querySelector(e):e;return document.contains(t)?t:null}}])}()),Vt=function(){return Gt};function Bt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Bt=function(){return!!e})()}window.playerMgr=Gt;var Ht=t(),qt=Ht.trace,Wt=Ht.getLoggerWithPrefix("[rtc-track]"),Yt=Wt,Qt=Vt(),Jt=function(){function e(t,r){var i,n,a,o;return j(this,e),n=this,a=G(a=e),i=U(n,Bt()?Reflect.construct(a,[],G(n).constructor):a.apply(n,o)),Object.defineProperty(i,"trackMediaType",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"source",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"logger",{enumerable:!0,configurable:!0,writable:!0,value:qt}),Object.defineProperty(i,"sourceNode",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"analyser",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"trackSettings",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"sfuStream",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"mediaStreamTrack",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"trackId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"sourceMirror",{enumerable:!0,configurable:!0,writable:!0,value:!1}),t?(i.trackMediaType=t.kind,i.trackSettings=t.getSettings()):r&&(i.trackMediaType="audio"),"audio"===i.trackMediaType&&(i.analyser=xt().createAnalyser()),i.trackId="".concat(i.trackMediaType,"_").concat(y(6)),i.setMediaStreamTrack(t,r),i}return B(e,c),F(e,[{key:"isPlaying",get:function(){return Qt.isPlaying(this)}},{key:"emit",value:function(t){for(var r=arguments.length,i=new Array(r>1?r-1:0),n=1;n<r;n++)i[n-1]=arguments[n];return Wt.info("track emit event",t,null==i?void 0:i[0]),(a="emit",o=this,s=3,c=_e(G(e.prototype),a,o),2&s&&"function"==typeof c?function(e){return c.apply(o,e)}:c)([t].concat(i));var a,o,s,c}},{key:"getTrackId",value:function(){return this.trackId}},{key:"setMediaStreamTrack",value:function(e,t){var r=this,i=this.mediaStreamTrack;if(i&&(i.onended=null),e||t){var o;if(i&&e&&(e.enabled=i.enabled),"audio"===this.trackMediaType)if(this.sourceNode&&(this.sourceNode.disconnect(),this.sourceNode=null),e)this.sourceNode=null===(o=xt())||void 0===o?void 0:o.createMediaStreamSource(new MediaStream([e]));else if(t){var s,c=Ct(t);this.sourceNode=null===(s=xt())||void 0===s?void 0:s.createMediaStreamSource(new MediaStream([c]))}e?(this.mediaStreamTrack=e,this.mediaStreamTrack.onended=function(){r.source===me.SCREENCAST?r.logger.sendEvent("SCREEN_DEVICE_STOP"):r.source===ve.MIC?new n(a.MicInterrupt):r.source===me.CAMERA&&new n(a.CameraInterrupt)}):t&&(this.sfuStream=t)}}},{key:"replaceTrack",value:function(e,t){Yt.info("replaceTrack",e,t),t&&this.isPlaying&&this.stopPlay(),this.replaceTrackInner(e,null,!0)}},{key:"replaceTrackInner",value:function(e,t,r){this.setMediaStreamTrack(e,t),this.emit(Ue,"replace",this),this.innnerPlay({updated:!0})}},{key:"setSource",value:function(e){e===me.CAMERA?this.logger.sendEvent("VIDEO_DEVICE_START"):e===me.SCREENCAST?this.logger.sendEvent("SCREEN_DEVICE_START"):e===ve.MIC&&this.logger.sendEvent("AUDIO_DEVICE_START"),this.source=e}},{key:"stop",value:function(e){console.error("The API stop is deprecated. Use stopPlay to stop playing or use close to destroy mediaStream track"),Yt.info("stop play track ".concat(this.getTrackId()),e instanceof HTMLElement?e.tagName:e),Qt.stopPlay(this,e)}},{key:"stopPlay",value:function(e){Yt.info("stop play track ".concat(this.getTrackId()),e instanceof HTMLElement?e.tagName:e),Qt.stopPlay(this,e)}},{key:"innnerPlay",value:function(e){var t=this,r=e.mediaWrapperElement,i=e.config;e.updated?Qt.getPlayCtrls(this).forEach(function(e){e.mediaWrapperEl?Qt.findDom(e.mediaWrapperEl)?Qt.play(t,e.mediaWrapperEl,e.playerConfig):Qt.stopPlay(t,e.mediaWrapperEl):Qt.play(t,e.mediaWrapperEl,e.playerConfig)}):Qt.play(this,r,i);if("audio"===this.trackMediaType){var n=xt();"running"!==n.state&&Yt.error("audioContext not running",n.state)}}},{key:"getMediaStreamTrack",value:function(){return this.mediaStreamTrack}}])}();function Kt(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var i,n,a,o,s=[],c=!0,u=!1;try{if(a=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(i=a.call(r)).done)&&(s.push(i.value),s.length!==t);c=!0);}catch(e){u=!0,n=e}finally{try{if(!c&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw n}}return s}}(e,t)||Ae(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var zt,$t=function(e){return e.width>1920&&e.height>1080},Xt=function(e){var t;if(!e)return Qe.simulcast;var r=null===(t=e.getMediaStreamTrack())||void 0===t?void 0:t.getSettings(),i=(null==r?void 0:r.width)||e.trackSettings.width,n=(null==r?void 0:r.height)||e.trackSettings.height;return Qe.simulcast&&e.source===me.CAMERA&&!$t({width:i,height:n})};function Zt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,i)}return r}function er(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Zt(Object(r),!0).forEach(function(t){Ee(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Zt(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}!function(e){e[e.LLD=0]="LLD",e[e.LD=1]="LD",e[e.SD=2]="SD",e[e.HD=3]="HD",e[e.FHD=4]="FHD",e[e.QHD=5]="QHD"}(zt||(zt={}));var tr=Ee(Ee(Ee(Ee(Ee(Ee({},zt.LLD,"lld"),zt.LD,"ld"),zt.SD,"sd"),zt.HD,"hd"),zt.FHD,"fhd"),zt.QHD,"qhd"),rr={high:[2764800,4915200],QHD:[2764800,4915200],FHD:[1228800,2764800],HD:[307200,1228800],SD:[76800,307200],LD:[0,76800],low:[0,76800]},ir=function(e,t){var r=ar(e,t),i=function(e,t){var r={high:Me.QHD,low:Me.LD,QHD:Me.QHD,FHD:Me.FHD,HD:Me.HD,SD:Me.SD,LD:Me.LD},i=r[e]||Me.None,n=rr[e],a=t[t.length-1].width*t[t.length-1].height;if(a<n[0]){var o=Object.entries(rr).find(function(e){var t=Kt(e,2);t[0];var r=t[1];return a>r[0]&&a<=r[1]});i=r[Kt(o,1)[0]]}return i}(e,t);return{resolution:r,resolutionLevel:i}},nr=function(e){return{0:"LLD",1:"LD",2:"LD",4:"SD",8:"HD",16:"FHD",32:"QHD"}[e]},ar=function(e,t){var r=rr[e],i=t.length,n=t[t.length-1];if(("FHD"===e||"high"===e)&&$t(n))return n;if(t[0].width*t[0].height>rr.FHD[1])return t[0];for(var a=0;i>a;a++){var o=t[a].width*t[a].height;if(o>=r[0]&&r[1]>=o)return t[a]}for(var s=i-1;s>=0;s--){var c=t[s].width*t[s].height;if(r[1]>c)return t[s]}return t[0]},or=[49152,76800,307200,1228800,2764800,4915200],sr=[200,350,1e3,1800,2828,5600],cr=[[256,144],[320,180],[640,360],[1280,720],[1920,1080],[2560,1440]],ur=[[256,192],[320,240],[640,480],[1280,960],[1920,1440],[2560,1920]],lr=function(e,t){var r=zt.FHD,i=e*t;return i<=or[zt.LLD]?r=zt.LLD:i<=or[zt.LD]?r=zt.LD:i<=or[zt.SD]?r=zt.SD:i<=or[zt.HD]?r=zt.HD:i<=or[zt.FHD]?r=zt.FHD:i<=or[zt.QHD]&&(r=zt.QHD),r},dr=function(e,t,r,i){var n=0,a=0;if(i<=r)return[n=e,a=t];if(t>e){var o=[e,t];t=o[0],e=o[1]}if(16*t==9*e)n=cr[r][0],a=cr[r][1];else if(4*t==3*e)n=ur[r][0],a=ur[r][1];else{var s=Math.sqrt(1*cr[r][0]*cr[r][1]/e/t);s=1*(n=(n=Math.round(e*s))+15&-16)/e,a=Math.round(t*s)}return[n,a]},pr=function(e,t,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;if(!i){var n=1;30!==r&&(n=Math.sqrt(r/30));var a=sr[lr(e,t)];i=Math.round(Math.max(n*a,50))}return i},fr=function(e){var t=e.width,r=e.height,i=e.frameRate,n=e.maxBitrate,a=e.resolutionLevel,o=lr(t,r),s=[],c=o>=zt.HD?3:2,u=function(e){var a=Kt(dr(t,r,e,o),2),s=a[0],c=a[1],u=sr[e]/sr[o],l=1/(c/r);return{targetWidth:s,rid:tr[e],targetHeight:c,minBitrate:50,maxFramerate:i,maxBitrate:Math.round(Math.max(30,n*u)),scaleResolutionDownBy:l}};o>zt.LLD&&s.push(er({activeForBitrateMap:!1,activeForRealuse:Math.pow(2,zt.LLD)===a},u(zt.LLD))),o>zt.LD&&s.push(er({activeForBitrateMap:c>1,activeForRealuse:Math.pow(2,zt.LD)===a},u(zt.LD))),o>zt.SD&&s.push(er({activeForBitrateMap:c>2,activeForRealuse:Math.pow(2,zt.SD)===a},u(zt.SD))),o===zt.FHD?(s.push(er({activeForBitrateMap:!1,activeForRealuse:!1},u(zt.HD))),s.push(er({activeForBitrateMap:!0,activeForRealuse:Qe.republish?Math.pow(2,4)===a||a===Math.pow(2,3):Math.pow(2,4)===a},u(zt.FHD)))):s.push(er({activeForBitrateMap:!0,activeForRealuse:Math.pow(2,o)===a},u(o)));for(var l=0,d=0;d<s.length;++d)0!=d&&(s[d].minBitrate=l),l=Math.round(Math.max((s[d].maxBitrate+s[d].minBitrate)/2,s[d].maxBitrate-400));return s.shift(),s},vr=function(e,t){var r=lr(e,t);return Math.pow(2,r)},mr=function(e){var t,r=e.getMaxBitrate(),i=null===(t=e.getMediaStreamTrack())||void 0===t?void 0:t.getSettings(),n=(null==i?void 0:i.width)||e.trackSettings.width,a=(null==i?void 0:i.height)||e.trackSettings.height,o=(null==i?void 0:i.frameRate)||e.trackSettings.frameRate,s=!Xt(e),c={resolutionLevel:vr(n,a),encodings:[]};return s?c.encodings=[{maxFramerate:o,maxBitrate:r,scaleResolutionDownBy:1,activeForBitrateMap:!0,activeForRealuse:!0,rid:"",minBitrate:Math.round((r+30)/2),targetWidth:n,targetHeight:a}]:Qe.republish?c.encodings=fr({width:1920,height:1080,frameRate:30,maxBitrate:pr(1920,1080,30),resolutionLevel:c.resolutionLevel}):c.encodings=fr({width:n,height:a,frameRate:o,maxBitrate:r,resolutionLevel:c.resolutionLevel}),c};function hr(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,i)}return r}function gr(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?hr(Object(r),!0).forEach(function(t){Ee(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):hr(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function br(e,t,r){return t=G(t),U(e,yr()?Reflect.construct(t,r||[],G(e).constructor):t.apply(e,r))}function yr(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(yr=function(){return!!e})()}function kr(e,t,r,i){var n=_e(G(e.prototype),t,r);return 2&i&&"function"==typeof n?function(e){return n.apply(r,e)}:n}var Sr=Vt(),Pr=t().getLoggerWithPrefix("[rtc-localtrack]"),wr=function(){function e(t){var r;if(j(this,e),r=br(this,e,[t]),Object.defineProperty(r,"muted",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"maxBitrate",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"enabled",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"config",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"isClosed",{enumerable:!0,configurable:!0,writable:!0,value:!1}),t){var i=t.muted;r.muted=i}return r.enabled=!0,r}return B(e,Jt),F(e,[{key:"setMediaStreamTrack",value:function(t){var r=this;kr(e,"setMediaStreamTrack",this,3)([t]),t&&(this.trackSettings=t.getSettings(),t.onended=function(){r.stopPlay(),r.close&&setTimeout(function(){return r.close()},200),r.emit("track-ended")})}},{key:"play",value:function(e,t){Pr.info("play track ".concat(this.getTrackId()),(null==e?void 0:e.tagName)||e,t),this.innnerPlay({mediaWrapperElement:e,config:t})}},{key:"setEnabled",value:function(e){var t,r=this;return Pr.info("setEnabled",e),this.isClosed?Promise.reject(new n(a.InvaildState)):(this.enabled=e,e?this.updateNewTrack().then(function(e){return r.emit(Ue,"unmute"),e}):(null===(t=this.mediaStreamTrack)||void 0===t||t.stop(),this.setMediaStreamTrack(null),this.source===me.CAMERA?this.logger.sendEvent("VIDEO_DEVICE_STOP"):this.source===me.SCREENCAST&&this.logger.sendEvent("SCREEN_DEVICE_STOP"),this.emit(Ue,"mute"),Promise.resolve()))}},{key:"close",value:function(){var e;Pr.info("".concat(this.source," track:").concat(this.getTrackId()," close")),this.isClosed||(this.isClosed=!0,this.isPlaying&&this.stopPlay(),this.emit(Ue,"stop",this),null===(e=this.mediaStreamTrack)||void 0===e||e.stop(),this.setMediaStreamTrack(null),this.sourceNode=null,this.analyser=null,this.source===me.CAMERA?this.logger.sendEvent("VIDEO_DEVICE_STOP"):this.source===me.SCREENCAST&&this.logger.sendEvent("SCREEN_DEVICE_STOP"))}},{key:"setMuted",value:function(e){return Pr.info("setMuted",e),this.isClosed?Promise.reject(new n(a.InvaildState)):(this.muted=e,this.mediaStreamTrack.enabled=!e,this.emit(Ue,e?"mute":"unmute"),Promise.resolve())}},{key:"getAudioTrack",value:function(){var e=this;return Pr.debug("gengrate new audioTrack"),new Promise(function(t,r){var i;dt({audio:gr({source:e.source},e.config)}).then(function(e){i=e.getAudioTracks()[0]}).catch(function(e){try{var t=xt().createOscillator(),n=xt().createMediaStreamDestination();t.connect(n),i=n.stream.getAudioTracks()[0]}catch(t){Pr.error("gengrate new audioTrack error",u(e)),r(u(e))}}).finally(function(){i&&t(i)})})}},{key:"getVideoTrack",value:function(){var e=this;return Pr.info("gengrate new videoTrack",this.config),new Promise(function(t,r){var i,n=gr({source:e.source},e.config);e.config.facingMode&&e.config.deviceId&&(Pr.info("ignore deviceId param to create videoTrack because facingMode is",e.config.facingMode),delete n.deviceId),dt({video:n,audio:!1}).then(function(e){i=e.getVideoTracks()[0],t(i)}).catch(function(e){Pr.error("gengrate new videoTrack error",l(e)),r(l(e))})})}},{key:"updateNewTrack",value:function(){var e=this,t=this.getMediaStreamTrack();return t.onended=null,Pr.info("stop oldTrack first"),t.stop(),"audio"===this.trackMediaType?this.getAudioTrack().then(function(t){return e.replaceTrackInner(t,null,!0),e.emit(Ue,"localMixedAudioReplaceTrack",e)}):"video"===this.trackMediaType?this.getVideoTrack().then(function(t){return e.replaceTrackInner(t,null,!0)}):void 0}},{key:"setDevice",value:(t=C(Oe.mark(function e(t){var r,i,n;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(Pr.info("setDevice",t),!this.isClosed){e.next=1;break}return e.abrupt("return");case 1:if(!(this instanceof Or)||"user"!==t&&"environment"!==t){e.next=2;break}this.config.facingMode=t,e.next=4;break;case 2:if((this.config.deviceId||(null===(r=this.mediaStreamTrack)||void 0===r||null===(r=r.getSettings())||void 0===r?void 0:r.deviceId)||(null===(i=this.mediaStreamTrack)||void 0===i||null===(n=i.getConstraints)||void 0===n||null===(n=n.call(i))||void 0===n?void 0:n.deviceId))!==t){e.next=3;break}return e.abrupt("return");case 3:this.config.deviceId=t;case 4:return e.abrupt("return",this.updateNewTrack());case 5:case"end":return e.stop()}},e,this)})),function(e){return t.apply(this,arguments)})},{key:"getTrackLabel",value:function(){if(Pr.info("getTrackLabel"),!this.isClosed)return this.mediaStreamTrack.label}},{key:"getMaxBitrate",value:function(){if(!this.isClosed)return this.maxBitrate}}]);var t}(),Tr=function(){function e(t,r){var i;if(j(this,e),(i=br(this,e,[t])).config=r,t){var n=t.getSettings(),a=n.width,o=n.height;i.maxBitrate=pr(a,o,r.frameRate,r.maxBitrate)}return i}return B(e,wr),F(e,[{key:"optimizationMode",get:function(){return this.config.optimizationMode}},{key:"setEncoderConfiguration",value:(t=C(Oe.mark(function e(t){var r,i,o,s,c,u,d,p,f,v,m,h,g,b;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(Pr.info("videoTrack ".concat(this.getTrackId()," setEncoderConfiguration"),t),r=t.dimension,i=t.frameRate,o=t.maxBitrate,s=t.optimizationMode,c=t.mirror,!i||!Number.isNaN(i)){e.next=1;break}return e.abrupt("return",Promise.reject(new n(a.InvaildArgument,"invalid frameRate")));case 1:if(!r||je[r]){e.next=2;break}return e.abrupt("return",Promise.reject(new n(a.InvaildArgument,"invalid dimension")));case 2:if(!c!=!this.config.mirror&&(this.emit(Ue,"mirror",c),this.config.mirror=c),s&&s!==this.optimizationMode&&(this.config.optimizationMode=s,this.emit(Ue,"optimizationMode")),u=!1,r&&this.config.dimension!==r&&(this.config.dimension=r,u=!0),i&&this.config.frameRate!==Math.min(30,i)&&(this.config.frameRate=Math.min(30,i),u=!0),o&&this.maxBitrate!==o&&(u=!0),u){e.next=3;break}return e.abrupt("return",Promise.resolve());case 3:return d=gr({frameRate:this.config.frameRate},ut(this.config.dimension)),p=this.getMediaStreamTrack(),e.prev=4,e.next=5,null==p?void 0:p.applyConstraints(d);case 5:v=null===(f=this.getMediaStreamTrack())||void 0===f?void 0:f.getSettings(),m=v.width,h=v.height,this.maxBitrate=pr(m,h,this.config.frameRate,o),Pr.info("after applyConstraints",d,this.maxBitrate,k(p)),this.emit(Ue,"republish",this),e.next=7;break;case 6:throw e.prev=6,b=e.catch(4),g=l(b),Pr.error("videoTrack ".concat(this.getTrackId()," setEncoderConfiguration error"),g),g;case 7:case"end":return e.stop()}},e,this,[[4,6]])})),function(e){return t.apply(this,arguments)})},{key:"getCurrentFrameData",value:function(){return Pr.info("getCurrentFrameData"),this.isClosed||!this.isPlaying?null:Dt(Sr.getElement(this)[0])}},{key:"play",value:function(t,r){return Pr.info("play track ".concat(this.getTrackId()),(null==t?void 0:t.tagName)||t,r),kr(e,"play",this,3)([t,r])}}]);var t}(),Mr=function(){function e(t){return j(this,e),br(this,e,[t])}return B(e,wr),F(e,[{key:"setVolume",value:function(e){Pr.info("setVolume",e),this.isClosed||Sr.getElement(this)[0]&&(Sr.getElement(this)[0].volume=e)}},{key:"getVolume",value:function(){if(Pr.info("getVolume"),!this.isClosed)return Sr.getElement(this)[0]?Sr.getElement(this)[0].volume:void 0}},{key:"getVolumeLevel",value:function(){return this.isClosed?0:jt(this.analyser,this.sourceNode)}},{key:"play",value:function(){return Pr.info("local audio play"),kr(e,"play",this,3)([])}},{key:"replaceTrack",value:function(e,t){Pr.info("replaceTrack",e,t),t&&this.isPlaying&&this.stopPlay(),this.replaceTrackInner(e,null,!0),this.emit(Ue,"localMixedAudioReplaceTrack",this)}}])}(),Or=function(){function e(t,r){var i;return j(this,e),(i=br(this,e,[t,r])).setSource(me.CAMERA),i}return B(e,Tr),F(e)}(),Er=function(){function e(t,r){var i;return j(this,e),(i=br(this,e,[t])).config=r,i.setSource(ve.MIC),i.analyser=xt().createAnalyser(),i}return B(e,Mr),F(e,[{key:"setVolume",value:function(e){Pr.info("setVolume",e),this.isClosed||Sr.getElement(this)[0]&&(Sr.getElement(this)[0].volume=e)}},{key:"getVolume",value:function(){if(Pr.info("getVolume"),!this.isClosed)return Sr.getElement(this)[0]?Sr.getElement(this)[0].volume:void 0}}])}(),Ir=function(){var e=C(Oe.mark(function e(t){var r,i,n,a,o,s,c,l,d,p,f;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return Pr.info("createMicrophoneAudioTrack",t),r={AEC:!0,AGC:!0,ANS:!0},n=(i=t||r).AEC,a=void 0===n||n,o=i.AGC,s=void 0===o||o,c=i.ANS,l=void 0===c||c,e.prev=1,e.next=2,dt({video:!1,audio:{deviceId:null==t?void 0:t.deviceId,source:ve.MIC,AEC:a,AGC:s,ANS:l}});case 2:return d=e.sent,p=d.getAudioTracks()[0],Pr.info("MicrophoneAudioTrack created",k(p)),e.abrupt("return",new Er(p,Object.assign({},t,{AEC:a,AGC:s,ANS:l})));case 3:throw e.prev=3,f=e.catch(1),u(f);case 4:case"end":return e.stop()}},e,null,[[1,3]])}));return function(t){return e.apply(this,arguments)}}(),Ar=function(){var e=C(Oe.mark(function e(t){var r,i,n,a,o,s,c,u,d,p;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return Pr.info("createCameraVideoTrack",t),r=t.deviceId,i=t.facingMode,n=t.dimension,a=void 0===n?"VD_640x480":n,o=t.optimizationMode,s=void 0===o?"balanced":o,c=Math.min(30,t.frameRate||15),e.prev=1,e.next=2,dt({video:{deviceId:r,source:me.CAMERA,frameRate:c,dimension:a,facingMode:i},audio:!1});case 2:return u=e.sent,d=u.getVideoTracks()[0],Pr.info("CameraVideoTrack created",k(d)),d.addEventListener("ended",function(){return Pr.info("cam track ended",d.id)}),d.addEventListener("unmute",function(){return Pr.info("cam track unmute",d.id)}),d.addEventListener("mute",function(){return Pr.info("cam track mute",d.id)}),e.abrupt("return",new Or(d,Object.assign({},t,{frameRate:c,dimension:a,optimizationMode:s})));case 3:throw e.prev=3,p=e.catch(1),l(p);case 4:case"end":return e.stop()}},e,null,[[1,3]])}));return function(t){return e.apply(this,arguments)}}(),Rr=function(){var e=C(Oe.mark(function e(t){return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return Pr.info("createScreenVideoTrack config",t),e.abrupt("return",_r(t,"noAudio"));case 1:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}(),_r=function(){var e=C(Oe.mark(function e(t,r){var i,n,a,o,s,c,u,l,d,p,f,v,m,h;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return Pr.info("_createScreenVideoTrack",t,r),i=t.displaySurface,n=void 0===i?"monitor":i,a=t.dimension,o=void 0===a?"VD_1920x1080":a,s=t.optimizationMode,c=void 0===s?"detail":s,u=Math.min(t.frameRate||5,30),e.prev=1,e.next=2,dt({video:{source:me.SCREENCAST,displaySurface:n,frameRate:u,dimension:o},audio:"withAudio"===r});case 2:return l=e.sent,p=l.getVideoTracks()[0],Pr.info("ScreenVideoTrack created",k(p)),p.addEventListener("ended",function(){return Pr.info("screen video track ended",p.id)}),p.addEventListener("unmute",function(){return Pr.info("screen video track unmute",p.id)}),p.addEventListener("mute",function(){return Pr.info("screen video track mute",p.id)}),(f=new Tr(p,Object.assign({},t,{frameRate:u,dimension:o,optimizationMode:c}))).setSource(me.SCREENCAST),(m=null===(d=l.getAudioTracks())||void 0===d?void 0:d[0])&&((v=new Mr(m)).setSource(ve.SCREENCAST),Pr.info("ScreenAudioTrack created",k(m)),m.addEventListener("ended",function(){return Pr.info("screen audio track ended",m.id)}),m.addEventListener("unmute",function(){return Pr.info("screen audio track unmute",m.id)}),m.addEventListener("mute",function(){return Pr.info("screen audio track mute",m.id)})),e.abrupt("return",v?[f,v]:[f]);case 3:throw e.prev=3,h=e.catch(1),S(h);case 4:case"end":return e.stop()}},e,null,[[1,3]])}));return function(t,r){return e.apply(this,arguments)}}(),xr=function(){var e=C(Oe.mark(function e(t){return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return Pr.info("createScreenVideoAndAudioTrack",t),e.abrupt("return",_r(t,"withAudio"));case 1:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}(),Cr=function(){var e=C(Oe.mark(function e(t,r){var i,n,a,o,s,c,u,d,p,f,v,m,g,b,y,k,S,P,w,T,M;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return Pr.info("createMicrophoneAndCameraTracks",t,r),i=Math.min(t.frameRate||15,30),n=t.deviceId,a=t.facingMode,o=t.dimension,s=void 0===o?"VD_640x480":o,c=t.optimizationMode,u=void 0===c?"balanced":c,d={AEC:!0,AGC:!0,ANS:!0},f=(p=r||d).AEC,v=void 0===f||f,m=p.AGC,g=void 0===m||m,b=p.ANS,y=void 0===b||b,e.prev=1,e.next=2,dt({video:{deviceId:n,source:me.CAMERA,frameRate:i,dimension:s,facingMode:a},audio:{deviceId:null==r?void 0:r.deviceId,source:ve.MIC,AEC:v,AGC:g,ANS:y}});case 2:return k=e.sent,S=k.getVideoTracks()[0],P=k.getAudioTracks()[0],Pr.info("CameraVideoTrack and MicrophoneTrack created",h(k)),S.addEventListener("ended",function(){return Pr.info("cam track ended",S.id)}),S.addEventListener("unmute",function(){return Pr.info("cam track unmute",S.id)}),S.addEventListener("mute",function(){return Pr.info("cam track mute",S.id)}),P.addEventListener("ended",function(){return Pr.info("mic track ended",P.id)}),P.addEventListener("unmute",function(){return Pr.info("mic track unmute",P.id)}),P.addEventListener("mute",function(){return Pr.info("mic track mute",P.id)}),w=new Or(S,Object.assign({},t,{frameRate:i,dimension:s,optimizationMode:u})),T=new Er(P,Object.assign({},Object.assign({},r,{AEC:v,AGC:g,ANS:y}))),e.abrupt("return",[w,T]);case 3:throw e.prev=3,M=e.catch(1),l(M);case 4:case"end":return e.stop()}},e,null,[[1,3]])}));return function(t,r){return e.apply(this,arguments)}}(),jr=function(){var e=C(Oe.mark(function e(t){var r,i,o,s,c,u,l,d,p,f=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r=f.length>1&&void 0!==f[1]?f[1]:me.CAMERA,Pr.info("createCustomVideoTrack",t,r,k(t.mediaStreamTrack)),o=(i=t||{}).mediaStreamTrack,s=i.dimension,c=void 0===s?"VD_640x480":s,u=i.optimizationMode,l=void 0===u?"balanced":u,d=Math.min(t.frameRate||15,30),o instanceof MediaStreamTrack&&"video"===o.kind){e.next=1;break}throw new n(a.InvaildArgument,"missing video mediaStreamTrack");case 1:return Pr.info("createCustomVideoTrack for",k(o)),o.addEventListener("ended",function(){return Pr.info("custom video track ended",o.id)}),o.addEventListener("unmute",function(){return Pr.info("custom video track unmute",o.id)}),o.addEventListener("mute",function(){return Pr.info("custom video track mute",o.id)}),(p=new Tr(o,Object.assign({},t,{frameRate:d,dimension:c,optimizationMode:l}))).setSource(r),e.abrupt("return",p);case 2:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}(),Dr=function(){var e=C(Oe.mark(function e(t){var r,i,o,s=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r=s.length>1&&void 0!==s[1]?s[1]:"mic",Pr.info("createCustomAudioTrack",t,r,k(t.mediaStreamTrack)),(i=(t||{}).mediaStreamTrack)instanceof MediaStreamTrack&&"audio"===i.kind){e.next=1;break}throw new n(a.InvaildArgument,"missing audio mediaStreamTrack");case 1:return Pr.info("createCustomAudioTrack succeed"),i.addEventListener("ended",function(){return Pr.info("custom audio track ended",i.id)}),i.addEventListener("unmute",function(){return Pr.info("custom audio track unmute",i.id)}),i.addEventListener("mute",function(){return Pr.info("custom audio track mute",i.id)}),(o=new Mr(i)).setSource(r),e.abrupt("return",o);case 2:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}();function Lr(e,t,r,i){var n=_e(G(e.prototype),t,r);return 2&i&&"function"==typeof n?function(e){return n.apply(r,e)}:n}function Nr(e,t,r){return t=G(t),U(e,Fr()?Reflect.construct(t,r||[],G(e).constructor):t.apply(e,r))}function Fr(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Fr=function(){return!!e})()}var Ur,Gr=t().getLoggerWithPrefix("[rtc-remotetrack]"),Vr=Vt(),Br=function(){function e(t,r,i){var n;return j(this,e),n=Nr(this,e,[t,i]),Object.defineProperty(n,"userId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"subscription",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),n.userId=r,n}return B(e,Jt),F(e,[{key:"getUserId",value:function(){return Gr.info("getUserId"),this.userId}},{key:"onFirstFrame",value:function(){this.emit("first-frame-decoded")}},{key:"attachSubscription",value:function(e){this.subscription&&this.subscription.off("audio-first-frame",this.onFirstFrame),this.subscription=e,null==e||e.on("audio-first-frame",this.onFirstFrame)}}])}(),Hr=function(){function e(t,r,i){var n;return j(this,e),n=Nr(this,e,[t,r,i]),Object.defineProperty(n,"deviceId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),n.deviceId="",n}return B(e,Br),F(e,[{key:"getMediaStreamTrack",value:function(){return Qe.audioSFU?Ct(this.sfuStream):Lr(e,"getMediaStreamTrack",this,3)([])}},{key:"replaceStream",value:function(e,t){Gr.info("replaceRemote Audio",e,t),t&&this.isPlaying&&this.stopPlay(),this.replaceTrackInner(null,e)}},{key:"setVolume",value:function(e){Gr.info("setVolume",e),Vr.getElement(this)[0]&&(Vr.getElement(this)[0].volume=e)}},{key:"getVolume",value:function(){if(Gr.info("getVolume"),Vr.getElement(this)[0])return Vr.getElement(this)[0].volume}},{key:"setSpeaker",value:function(e){var t=this;return Gr.info("setSpeaker",e),new Promise(function(r,i){var o,s=Vr.getElement(t)[0];s||i(new n(a.InvaildState,"please playout audio first")),s.setSinkId||i(new n(a.SpeakerSetNotSupported)),null===(o=s.setSinkId)||void 0===o||o.call(s,e).then(function(){t.deviceId=e,r()}).catch(function(e){i(u(e))})})}},{key:"getVolumeLevel",value:function(){return jt(this.analyser,this.sourceNode)}},{key:"play",value:function(){return Gr.info("remote audio play"),Lr(e,"innnerPlay",this,3)([{}])}}])}(),qr=function(){function e(t,r){return j(this,e),Nr(this,e,[t,r])}return B(e,Br),F(e,[{key:"play",value:function(t,r){return Gr.info("remote video play",this.getTrackId()),Lr(e,"innnerPlay",this,3)([{mediaWrapperElement:t,config:r}])}},{key:"setSourceMirror",value:function(t){t!==this.sourceMirror&&(Gr.info("remote video track set Mirror",t),this.sourceMirror=t,this.isPlaying&&Lr(e,"innnerPlay",this,3)([{updated:!0}]))}},{key:"getCurrentFrameData",value:function(){return Gr.info("getCurrentFrameData"),this.isPlaying?Dt(Vr.getElement(this)[0]):null}}])}();!function(e){var t,r,i,n,a,o,s,c;(t=e.DataType||(e.DataType={}))[t.DATA_TYPE_STREAM=0]="DATA_TYPE_STREAM",t[t.DATA_TYPE_PARTICIPANTS=1]="DATA_TYPE_PARTICIPANTS",t[t.DATA_TYPE_CONFERENCE=2]="DATA_TYPE_CONFERENCE",t[t.DATA_TYPE_GROUP_LIST=3]="DATA_TYPE_GROUP_LIST",t[t.DATA_TYPE_GROUP=4]="DATA_TYPE_GROUP",(r=e.OptType||(e.OptType={}))[r.OPT_TYPE_ADD=0]="OPT_TYPE_ADD",r[r.OPT_TYPE_REMOVE=1]="OPT_TYPE_REMOVE",r[r.OPT_TYPE_UPDATE=2]="OPT_TYPE_UPDATE",(i=e.SyncResponseCode||(e.SyncResponseCode={}))[i.SYNC_OK=0]="SYNC_OK",i[i.SYNC_PART_SUC=10]="SYNC_PART_SUC",i[i.SYNC_DATA_SIZE_LIMITED=11]="SYNC_DATA_SIZE_LIMITED",i[i.SYNC_NOT_SUPPORT_TYPE=12]="SYNC_NOT_SUPPORT_TYPE",i[i.SYNC_NOT_FOUND=13]="SYNC_NOT_FOUND",i[i.SYNC_CHANNEL_NOT_EXIST=14]="SYNC_CHANNEL_NOT_EXIST",i[i.SYNC_INTERNAL_ERROR=15]="SYNC_INTERNAL_ERROR",(n=e.GroupUpdate||(e.GroupUpdate={}))[n.GROUP_UPDATE_AUDIO_STREAM_LOST=0]="GROUP_UPDATE_AUDIO_STREAM_LOST",n[n.GROUP_UPDATE_AUDIO_STREAM_RECOVER=1]="GROUP_UPDATE_AUDIO_STREAM_RECOVER",n[n.GROUP_UPDATE_ADD_PARTICIPANTS=2]="GROUP_UPDATE_ADD_PARTICIPANTS",n[n.GROUP_UPDATE_REMOVE_PARTICIPANTS=3]="GROUP_UPDATE_REMOVE_PARTICIPANTS",n[n.GROUP_UPDATE_SET_PROPERTIES=4]="GROUP_UPDATE_SET_PROPERTIES",n[n.GROUP_UPDATE_REMOVE_PROPERTIES=5]="GROUP_UPDATE_REMOVE_PROPERTIES",(a=e.GroupListUpdate||(e.GroupListUpdate={}))[a.GROUP_LIST_UPDATE_ADD_ID=0]="GROUP_LIST_UPDATE_ADD_ID",a[a.GROUP_LIST_UPDATE_REMOVE_ID=1]="GROUP_LIST_UPDATE_REMOVE_ID",(o=e.LEAVE_GROUP_REASON_CODE||(e.LEAVE_GROUP_REASON_CODE={}))[o.NORMAL_LEAVE=0]="NORMAL_LEAVE",(s=e.DismissGroupReasonCode||(e.DismissGroupReasonCode={}))[s.NORMAL_DISMISS=0]="NORMAL_DISMISS",(c=e.Result||(e.Result={}))[c.Ok=0]="Ok",c[c.Error=1]="Error"}(Ur||(Ur={}));var Wr=P({options:{syntax:"proto3"},nested:{signal_msg:{nested:{AudioSsrcSpec:{fields:{ssrc:{type:"uint32",id:1},rtxSsrc:{type:"uint32",id:2}}},VideoSsrcSpec:{fields:{ssrc:{type:"uint32",id:1},rtxSsrc:{type:"uint32",id:2},fecSsrc:{type:"uint32",id:3}}},MultiPcAdaptRequestInfo:{fields:{audioSsrcSpec:{rule:"repeated",type:"AudioSsrcSpec",id:1},videoSsrcSpec:{rule:"repeated",type:"VideoSsrcSpec",id:2}}},AudioStreamFormat:{fields:{codec:{type:"string",id:1},sampleRate:{type:"int64",id:2},channelNum:{type:"int64",id:3}}},AudioFormatPreference:{fields:{preferred:{type:"AudioStreamFormat",id:1},optional:{rule:"repeated",type:"AudioStreamFormat",id:2}}},AudioStreamOptional:{fields:{format:{rule:"repeated",type:"AudioStreamFormat",id:1}}},VideoStreamFormat:{fields:{codec:{type:"string",id:1},profile:{type:"string",id:2}}},VideoFormatPreference:{fields:{preferred:{type:"VideoStreamFormat",id:1},optional:{rule:"repeated",type:"VideoStreamFormat",id:2}}},FormatPreference:{fields:{audio:{type:"AudioFormatPreference",id:1},video:{type:"VideoFormatPreference",id:2}}},Resolution:{fields:{width:{type:"uint32",id:1},height:{type:"uint32",id:2}}},VideoSsrcParameters:{fields:{ssrc:{type:"uint32",id:1},framerate:{type:"int32",id:2},resolution:{type:"Resolution",id:3},maxBitrate:{type:"int32",id:4},minBitrate:{type:"int32",id:5},active:{type:"bool",id:6},bitrate:{type:"int64",id:7},tlayer:{type:"int64",id:8},multiSlice:{type:"int64",id:9},keyFrameInterval:{type:"int64",id:10},constantPpsid:{type:"int64",id:11},rid:{type:"string",id:12}}},VideoParameters:{oneofs:{_resolutionLevel:{oneof:["resolutionLevel"]}},fields:{ssrc:{type:"uint32",id:1},resolution:{type:"Resolution",id:2},framerate:{type:"int32",id:3},bitrate:{type:"string",id:4},multiSlice:{type:"int32",id:5},keyFrameInterval:{type:"int64",id:6},constantPpsid:{type:"int64",id:7},resolutionLevel:{type:"uint32",id:8,options:{proto3_optional:!0}}}},GroupVersion:{fields:{id:{type:"string",id:1},ver:{type:"int64",id:2}}},StreamInfo:{fields:{type:{type:"string",id:1},owner:{type:"string",id:2},attributesJsonStr:{type:"string",id:3},label:{type:"string",id:4},createTime:{type:"int64",id:7}}},StreamVideoParameters:{fields:{resolution:{type:"Resolution",id:1},framerate:{type:"int64",id:2},bitrate:{type:"int64",id:3},keyFrameInterval:{type:"int64",id:4},multiSlice:{type:"int64",id:5},constantPpsid:{type:"int64",id:6}}},VideoStreamPara:{fields:{specs:{rule:"repeated",type:"string",id:1},resolution:{rule:"repeated",type:"Resolution",id:2},framerate:{rule:"repeated",type:"int32",id:3},bitrate:{rule:"repeated",type:"string",id:4},keyFrameInterval:{rule:"repeated",type:"int32",id:5}}},VideoStreamOptional:{fields:{format:{rule:"repeated",type:"VideoStreamFormat",id:1},parameters:{type:"VideoStreamPara",id:2}}},StreamAudioDesc:{fields:{trackId:{type:"string",id:1},msid:{type:"string",id:2},status:{type:"string",id:3},format:{type:"AudioStreamFormat",id:4},source:{type:"string",id:5},ssrc:{rule:"repeated",type:"uint32",id:6},ssrcGroup:{rule:"repeated",type:"AudioSsrcSpec",id:7},optional:{type:"AudioStreamOptional",id:8}}},StreamVideoDesc:{fields:{trackId:{type:"string",id:1},msid:{type:"string",id:2},status:{type:"string",id:3},source:{type:"string",id:4},format:{type:"VideoStreamFormat",id:5},ssrc:{rule:"repeated",type:"uint32",id:6},ssrcGroup:{rule:"repeated",type:"VideoSsrcSpec",id:7},parameters:{type:"StreamVideoParameters",id:8},optional:{type:"VideoStreamOptional",id:9},highestResolutionLevel:{type:"int32",id:10}}},StreamMediaDesc:{fields:{audio:{type:"StreamAudioDesc",id:1},video:{type:"StreamVideoDesc",id:2}}},Stream:{fields:{id:{type:"string",id:1},type:{type:"string",id:2},media:{type:"StreamMediaDesc",id:3},info:{type:"StreamInfo",id:4},version:{type:"int64",id:5}}},OriginMsg:{fields:{type:{type:"string",id:1},id:{type:"string",id:2}}},ErrorMsg:{fields:{id:{type:"string",id:1},code:{type:"int32",id:2},msg:{type:"string",id:3},origin:{type:"OriginMsg",id:4}}},ErrorMsgs:{fields:{globalStatus:{type:"string",id:1},detailStatus:{rule:"repeated",type:"ErrorMsg",id:2}}},DataType:{values:{DATA_TYPE_STREAM:0,DATA_TYPE_PARTICIPANTS:1,DATA_TYPE_CONFERENCE:2,DATA_TYPE_GROUP_LIST:3,DATA_TYPE_GROUP:4}},OptType:{values:{OPT_TYPE_ADD:0,OPT_TYPE_REMOVE:1,OPT_TYPE_UPDATE:2}},SyncResponseCode:{values:{SYNC_OK:0,SYNC_PART_SUC:10,SYNC_DATA_SIZE_LIMITED:11,SYNC_NOT_SUPPORT_TYPE:12,SYNC_NOT_FOUND:13,SYNC_CHANNEL_NOT_EXIST:14,SYNC_INTERNAL_ERROR:15}},GroupParticipant:{fields:{uid:{type:"string",id:1},pid:{type:"string",id:2},userData:{type:"string",id:3}}},GroupAudioInfo:{fields:{label:{type:"string",id:1},audio:{type:"Stream",id:2}}},GroupInfo:{fields:{id:{type:"string",id:1},ver:{type:"int64",id:2},participants:{rule:"repeated",type:"GroupParticipant",id:3},audioInfo:{type:"GroupAudioInfo",id:4},properties:{rule:"repeated",type:"GroupProperty",id:5}}},GroupProperty:{fields:{key:{type:"string",id:1},value:{type:"string",id:2}}},SyncFullData:{oneofs:{_ver:{oneof:["ver"]},_totalPages:{oneof:["totalPages"]},_pagingSeq:{oneof:["pagingSeq"]}},fields:{ver:{type:"int64",id:1,options:{proto3_optional:!0}},totalPages:{type:"int32",id:2,options:{proto3_optional:!0}},pagingSeq:{type:"int64",id:3,options:{proto3_optional:!0}},groupData:{type:"GroupPagingData",id:10},groupListData:{type:"GroupListPagingData",id:11}}},GroupPagingData:{fields:{pagingSeq:{type:"int64",id:1},curPage:{type:"int32",id:2},groupInfos:{rule:"repeated",type:"GroupInfo",id:3}}},GroupListPagingData:{fields:{pagingSeq:{type:"int64",id:1},curPage:{type:"int32",id:2},groupIds:{rule:"repeated",type:"string",id:3}}},SyncChangeLog:{fields:{groupListChangeLogs:{rule:"repeated",type:"GroupListChangeLog",id:1},groupChangeLogs:{rule:"repeated",type:"GroupChangeLog",id:2}}},SyncDataRequest:{oneofs:{_id:{oneof:["id"]}},fields:{type:{type:"DataType",id:1},id:{type:"string",id:2,options:{proto3_optional:!0}},ver:{type:"int64",id:3},forceFullSync:{type:"bool",id:4},supportPagingSync:{type:"bool",id:5}}},SyncDataResponse:{fields:{code:{type:"SyncResponseCode",id:1},errMsg:{type:"string",id:2},fullSync:{type:"SyncFullData",id:3},changeLogs:{rule:"repeated",type:"SyncChangeLog",id:4}}},SyncIds:{fields:{id:{type:"string",id:1},ver:{type:"int64",id:2}}},SyncDataByIdsRequest:{fields:{type:{type:"DataType",id:1},ids:{rule:"repeated",type:"SyncIds",id:2},forceFullSync:{type:"bool",id:3},supportPagingSync:{type:"bool",id:4}}},SyncDataByIdsResponse:{fields:{code:{type:"SyncResponseCode",id:1},errMsg:{type:"string",id:2},notFoundIds:{rule:"repeated",type:"string",id:3},fullSync:{type:"SyncFullData",id:4},changeLogs:{rule:"repeated",type:"SyncChangeLog",id:5}}},GroupUpdate:{values:{GROUP_UPDATE_AUDIO_STREAM_LOST:0,GROUP_UPDATE_AUDIO_STREAM_RECOVER:1,GROUP_UPDATE_ADD_PARTICIPANTS:2,GROUP_UPDATE_REMOVE_PARTICIPANTS:3,GROUP_UPDATE_SET_PROPERTIES:4,GROUP_UPDATE_REMOVE_PROPERTIES:5}},GroupUpdateOpt:{fields:{updateAction:{type:"GroupUpdate",id:1},participants:{rule:"repeated",type:"GroupParticipant",id:2},properties:{rule:"repeated",type:"GroupProperty",id:3}}},GroupChangeLog:{oneofs:{_groupInfo:{oneof:["groupInfo"]},_updateOpt:{oneof:["updateOpt"]},_msgId:{oneof:["msgId"]}},fields:{ver:{type:"int64",id:1},type:{type:"OptType",id:2},id:{type:"string",id:3},groupInfo:{type:"GroupInfo",id:4,options:{proto3_optional:!0}},updateOpt:{type:"GroupUpdateOpt",id:5,options:{proto3_optional:!0}},msgId:{type:"string",id:6,options:{proto3_optional:!0}}}},GroupListUpdate:{values:{GROUP_LIST_UPDATE_ADD_ID:0,GROUP_LIST_UPDATE_REMOVE_ID:1}},GroupListUpdateOpt:{fields:{updateAction:{type:"GroupListUpdate",id:1},id:{type:"string",id:2}}},GroupListChangeLog:{oneofs:{_msgId:{oneof:["msgId"]}},fields:{ver:{type:"int64",id:1},type:{type:"OptType",id:2},updateOpt:{type:"GroupListUpdateOpt",id:3},msgId:{type:"string",id:4,options:{proto3_optional:!0}}}},JoinGroupRequest:{fields:{groupId:{type:"string",id:1},userData:{type:"string",id:2},autoJoinGroupAudio:{type:"bool",id:3},autoLeaveChannelAudio:{type:"bool",id:4}}},JoinGroupResponse:{oneofs:{_joinGroupAudioSuccess:{oneof:["joinGroupAudioSuccess"]}},fields:{code:{type:"int32",id:1},errMsg:{type:"string",id:2},group:{type:"GroupInfo",id:3},joinGroupAudioSuccess:{type:"bool",id:4,options:{proto3_optional:!0}}}},LEAVE_GROUP_REASON_CODE:{values:{NORMAL_LEAVE:0}},LeaveGroupRequest:{fields:{groupId:{type:"string",id:1},reasonCode:{type:"LEAVE_GROUP_REASON_CODE",id:2},autoJoinChannelAudio:{type:"bool",id:3}}},LeaveGroupResponse:{oneofs:{_joinChannelAudioSuccess:{oneof:["joinChannelAudioSuccess"]}},fields:{code:{type:"int32",id:1},errMsg:{type:"string",id:2},joinChannelAudioSuccess:{type:"bool",id:3,options:{proto3_optional:!0}}}},DismissGroupReasonCode:{values:{NORMAL_DISMISS:0}},DismissGroupRequest:{fields:{groupId:{type:"string",id:1},reasonCode:{type:"DismissGroupReasonCode",id:2}}},DismissGroupResponse:{fields:{code:{type:"int32",id:1},errMsg:{type:"string",id:2}}},ObserveAllGroupsRequest:{fields:{}},ObserveAllGroupsResponse:{fields:{code:{type:"int32",id:1},errMsg:{type:"string",id:2}}},UnobserveAllGroupsRequest:{fields:{}},UnobserveAllGroupsResponse:{fields:{code:{type:"int32",id:1},errMsg:{type:"string",id:2}}},SetGroupPropertiesRequest:{fields:{groupId:{type:"string",id:1},properties:{rule:"repeated",type:"GroupProperty",id:2}}},SetGroupPropertiesResponse:{fields:{code:{type:"int32",id:1},errMsg:{type:"string",id:2}}},RemoveGroupPropertiesRequest:{fields:{groupId:{type:"string",id:1},keys:{rule:"repeated",type:"string",id:2}}},RemoveGroupPropertiesResponse:{fields:{code:{type:"int32",id:1},errMsg:{type:"string",id:2}}},SetParticipantPropertiesRequest:{fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},propertiesJsonStr:{type:"string",id:3},tid:{type:"string",id:4},traceId:{type:"string",id:5}}},RemoveParticipantPropertiesRequest:{fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},propertiesJsonStr:{type:"string",id:3},tid:{type:"string",id:4},traceId:{type:"string",id:5}}},Result:{values:{Ok:0,Error:1}},Response:{oneofs:{data:{oneof:["reason","createPeerConnectionResponse","errorMsg","queryStreamsVerResponse","queryStreamsResponse","publishResponse","subscribeResponse","joinGroupResponse","leaveGroupResponse","dismissGroupResponse","observeAllGroupsResponse","unobserveAllGroupsResponse","syncDataResponse","syncDataByIdsResponse","setGroupPropertiesResponse","removeGroupPropertiesResponse"]}},fields:{result:{type:"Result",id:1},tid:{type:"string",id:2},traceId:{type:"string",id:3},code:{type:"int32",id:4},reason:{type:"string",id:11},createPeerConnectionResponse:{type:"CreatePeerConnectionResponse",id:15},errorMsg:{type:"ErrorMsgs",id:16},queryStreamsVerResponse:{type:"QueryStreamsVerResponse",id:17},queryStreamsResponse:{type:"QueryStreamsResponse",id:18},publishResponse:{type:"PublishResponse",id:21},subscribeResponse:{type:"SubscribeResponse",id:22},joinGroupResponse:{type:"JoinGroupResponse",id:24},leaveGroupResponse:{type:"LeaveGroupResponse",id:25},dismissGroupResponse:{type:"DismissGroupResponse",id:26},observeAllGroupsResponse:{type:"ObserveAllGroupsResponse",id:27},unobserveAllGroupsResponse:{type:"UnobserveAllGroupsResponse",id:28},syncDataResponse:{type:"SyncDataResponse",id:29},syncDataByIdsResponse:{type:"SyncDataByIdsResponse",id:30},setGroupPropertiesResponse:{type:"SetGroupPropertiesResponse",id:31},removeGroupPropertiesResponse:{type:"RemoveGroupPropertiesResponse",id:32}}},NotificationItem:{oneofs:{notification:{oneof:["streamNotification","serverFailoverNotification","progressNotification","groupNotification","groupListNotification"]}},fields:{event:{type:"string",id:1},streamNotification:{type:"StreamNotification",id:11},serverFailoverNotification:{type:"ServerFailoverNotification",id:13},progressNotification:{type:"ProgressNotification",id:14},groupNotification:{type:"GroupChangeLog",id:17},groupListNotification:{type:"GroupListChangeLog",id:18}}},BatchNotification:{fields:{notificationItem:{rule:"repeated",type:"NotificationItem",id:1},tid:{type:"string",id:2},traceId:{type:"string",id:3}}},MediaMessage:{fields:{payload:{type:"string",id:1}}},AudioStreamTrackDesc:{fields:{streamId:{type:"string",id:1},trackId:{type:"string",id:2},msid:{type:"string",id:3},source:{type:"string",id:4},uplinkSsrcGroup:{rule:"repeated",type:"AudioSsrcSpec",id:5},format:{type:"AudioStreamFormat",id:6},autoMix:{rule:"repeated",type:"string",id:7},attributesJsonString:{type:"string",id:8}}},VideoStreamTrackDesc:{fields:{streamId:{type:"string",id:1},trackId:{type:"string",id:2},msid:{type:"string",id:3},source:{type:"string",id:4},logicSsrc:{rule:"repeated",type:"uint32",id:5},uplinkSsrcGroup:{rule:"repeated",type:"VideoSsrcSpec",id:6},ssrcParameters:{rule:"repeated",type:"VideoSsrcParameters",id:7},streamParameters:{type:"VideoParameters",id:8},attributesJsonString:{type:"string",id:9},forwardOnly:{type:"bool",id:10},mid:{type:"string",id:11},highestResolutionLevel:{type:"int32",id:12}}},MediaStreamTrackDesc:{fields:{audio:{rule:"repeated",type:"AudioStreamTrackDesc",id:1},video:{rule:"repeated",type:"VideoStreamTrackDesc",id:2}}},StreamVersion:{fields:{streamId:{type:"string",id:1},streamVer:{type:"int64",id:2}}},StreamData:{fields:{id:{type:"string",id:1},stream:{type:"Stream",id:2}}},AudioPubOptions:{fields:{source:{type:"string",id:1},format:{type:"AudioStreamFormat",id:2},autoMix:{rule:"repeated",type:"string",id:3}}},VideoPubOptions:{fields:{source:{type:"string",id:1},format:{type:"VideoStreamFormat",id:2},parameters:{type:"VideoParameters",id:3},forwardOnly:{type:"bool",id:4}}},MediaPubOptionsSpecify:{fields:{audio:{type:"AudioPubOptions",id:1},video:{type:"VideoPubOptions",id:2}}},BatchPublishRequest:{fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},connectionId:{type:"string",id:3},type:{type:"string",id:4},simulcast:{type:"bool",id:5},simulcastVersion:{type:"string",id:6},supportTemporalLayer:{type:"bool",id:7},clientType:{type:"string",id:8},clientVersion:{type:"string",id:9},media:{type:"MediaStreamTrackDesc",id:10},event:{type:"string",id:11},tid:{type:"string",id:12},traceId:{type:"string",id:13}}},BatchUnpublishRequest:{fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},connectionId:{type:"string",id:3},audio:{rule:"repeated",type:"string",id:4},video:{rule:"repeated",type:"string",id:5},tid:{type:"string",id:6},traceId:{type:"string",id:7}}},QueryStreamsVerRequest:{fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},streamIds:{rule:"repeated",type:"string",id:3},tid:{type:"string",id:4},traceId:{type:"string",id:5}}},QueryStreamsVerResponse:{fields:{streamVersions:{rule:"repeated",type:"StreamVersion",id:1},totalVer:{type:"int32",id:2},msg:{type:"string",id:3}}},StreamControlRequest:{fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},streamId:{type:"string",id:3},operation:{type:"string",id:4},data:{type:"string",id:5},tid:{type:"string",id:6},traceId:{type:"string",id:7},highestResolutionLevel:{type:"int32",id:8}}},QueryStreamsRequest:{fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},streamIds:{rule:"repeated",type:"string",id:3},tid:{type:"string",id:4},traceId:{type:"string",id:5}}},QueryStreamsResponse:{fields:{totalVer:{type:"int64",id:1},msg:{type:"string",id:2},streams:{rule:"repeated",type:"StreamData",id:3}}},SetStreamPropertiesRequest:{fields:{roomId:{type:"string",id:1},streamId:{type:"string",id:2},propertiesJsonStr:{type:"string",id:3},tid:{type:"string",id:4},traceId:{type:"string",id:5}}},PublishRequest:{fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},type:{type:"string",id:3},event:{type:"string",id:4},media:{type:"MediaPubOptionsSpecify",id:5},attributesJsonStr:{type:"string",id:6},tid:{type:"string",id:7},traceId:{type:"string",id:8}}},PublishResponse:{fields:{id:{type:"string",id:1}}},UnpublishRequest:{fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},streamId:{type:"string",id:3},tid:{type:"string",id:4},traceId:{type:"string",id:5}}},NetworkHealth:{fields:{receiving:{type:"bool",id:1},lossRate:{type:"int32",id:2},timestamp:{type:"int64",id:3},cutoff:{type:"bool",id:4},tid:{type:"string",id:5}}},StreamMsg:{oneofs:{value:{oneof:["networkHealth","streamStatus","stream","activeStream","propertiesJsonStr","highestResolutionLevel"]}},fields:{field:{type:"string",id:1},streamVer:{type:"int64",id:2},expiredMs:{type:"int64",id:3},extraValue:{rule:"repeated",type:"string",id:4},tid:{type:"string",id:5},networkHealth:{type:"NetworkHealth",id:10},streamStatus:{type:"string",id:11},stream:{type:"Stream",id:12},activeStream:{type:"string",id:13},propertiesJsonStr:{type:"string",id:14},highestResolutionLevel:{type:"int32",id:15}}},StreamNotification:{oneofs:{data:{oneof:["stream","msg"]}},fields:{streamId:{type:"string",id:1},status:{type:"string",id:2},totalVer:{type:"int64",id:3},msgId:{type:"string",id:4},ts:{type:"int64",id:5},tid:{type:"string",id:6},traceId:{type:"string",id:7},stream:{type:"Stream",id:10},msg:{type:"StreamMsg",id:11}}},Candidate:{fields:{candidate:{type:"string",id:1},sdpMlineIndex:{type:"int32",id:2},sdpMid:{type:"string",id:3}}},SessionSignaling:{fields:{type:{type:"string",id:1},sdp:{type:"string",id:2},candidate:{type:"Candidate",id:3},optionsJsonStr:{type:"string",id:4}}},SignalingData:{fields:{type:{type:"string",id:1},sdp:{type:"string",id:2}}},CreatePeerConnectionRequest:{fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},connectionId:{type:"string",id:3},tid:{type:"string",id:4},event:{type:"string",id:5},direction:{type:"string",id:6},sdpOffer:{type:"string",id:7},type:{type:"string",id:8},isOca:{type:"bool",id:9},isFailover:{type:"bool",id:10},multiPcAdaptInfo:{type:"MultiPcAdaptRequestInfo",id:11},pcFormatPreference:{type:"FormatPreference",id:12},optionsJsonStr:{type:"string",id:13},traceId:{type:"string",id:14},sfuSsrcGroup:{rule:"repeated",type:"AudioSsrcSpec",id:15}}},CreatePeerConnectionResponse:{fields:{connectionId:{type:"string",id:1},sdpAnswer:{type:"string",id:2}}},ClosePeerConnectionRequest:{fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},connectionId:{type:"string",id:3},direction:{type:"string",id:4},tid:{type:"string",id:5},traceId:{type:"string",id:6}}},SoacRequest:{fields:{id:{type:"string",id:1},signaling:{type:"SessionSignaling",id:2},tid:{type:"string",id:3},traceId:{type:"string",id:4}}},NotifyAction:{fields:{actionName:{type:"string",id:1},connectionId:{type:"string",id:2},traceId:{type:"string",id:3}}},ServerFailoverNotification:{fields:{actions:{rule:"repeated",type:"NotifyAction",id:1},msgId:{type:"string",id:2},tid:{type:"string",id:3},traceId:{type:"string",id:4}}},ProgressNotification:{fields:{id:{type:"string",id:1},status:{type:"string",id:2},data:{type:"SignalingData",id:3},msgId:{type:"string",id:4},tid:{type:"string",id:5},traceId:{type:"string",id:6}}},AudioBatchSubOptions:{fields:{subscriptionId:{type:"string",id:1},from:{type:"string",id:2},trackId:{type:"string",id:3},ssrcGroup:{rule:"repeated",type:"AudioSsrcSpec",id:4},format:{type:"AudioStreamFormat",id:5}}},VideoBatchSubOptions:{fields:{subscriptionId:{type:"string",id:1},from:{type:"string",id:2},trackId:{type:"string",id:3},ssrcGroup:{rule:"repeated",type:"VideoSsrcSpec",id:4},parameters:{type:"VideoParameters",id:5},format:{type:"VideoStreamFormat",id:6},subSsrcGroup:{type:"VideoSsrcSpec",id:7}}},MediaBatchSubOptions:{fields:{audio:{rule:"repeated",type:"AudioBatchSubOptions",id:1},video:{rule:"repeated",type:"VideoBatchSubOptions",id:2}}},Audio:{fields:{from:{type:"string",id:1}}},Video:{fields:{from:{type:"string",id:1},params:{type:"VideoParameters",id:2}}},MediaUpdateDesc:{fields:{audio:{type:"Audio",id:1},video:{type:"Video",id:2}}},AudioSubOptions:{fields:{from:{type:"string",id:1},format:{type:"AudioStreamFormat",id:2}}},VideoSubOptions:{fields:{from:{type:"string",id:1},format:{type:"VideoStreamFormat",id:2},parameters:{type:"VideoParameters",id:3}}},MediaSubOptionsSpecify:{fields:{audio:{type:"AudioSubOptions",id:1},video:{type:"VideoSubOptions",id:2}}},SubscribeRequest:{fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},tid:{type:"string",id:3},event:{type:"string",id:4},media:{type:"MediaSubOptionsSpecify",id:5},type:{type:"string",id:6},propertiesJsonStr:{type:"string",id:7},traceId:{type:"string",id:8}}},SubscribeResponse:{fields:{id:{type:"string",id:1}}},UnsubscribeRequest:{fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},subscriptionId:{type:"string",id:3},tid:{type:"string",id:4},traceId:{type:"string",id:5}}},BatchSubscribeRequest:{fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},connectionId:{type:"string",id:3},supportTemporalLayer:{type:"bool",id:4},clientType:{type:"string",id:5},clientVersion:{type:"string",id:6},media:{type:"MediaBatchSubOptions",id:7},tid:{type:"string",id:8},type:{type:"string",id:9},event:{type:"string",id:10},propertiesJsonStr:{type:"string",id:11},traceId:{type:"string",id:12}}},BatchUnsubscribeRequest:{fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},connectionId:{type:"string",id:3},audio:{rule:"repeated",type:"string",id:4},video:{rule:"repeated",type:"string",id:5},tid:{type:"string",id:6},traceId:{type:"string",id:7}}},SubscriptionControlRequest:{oneofs:{data:{oneof:["updateDesc","track"]}},fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},subscriptionId:{type:"string",id:3},operation:{type:"string",id:4},updateDesc:{type:"MediaUpdateDesc",id:6},track:{type:"string",id:7},tid:{type:"string",id:8},traceId:{type:"string",id:9}}}}}}}),Yr=Wr.lookupType("signal_msg.Response"),Qr=Wr.lookupType("signal_msg.BatchNotification"),Jr=Wr.lookupType("signal_msg.MediaMessage"),Kr=Wr.lookupType("signal_msg.StreamNotification");Wr.lookupType("signal_msg.ProgressNotification");var zr=Wr.lookupType("signal_msg.ServerFailoverNotification"),$r=Wr.lookupType("signal_msg.PublishRequest"),Xr=Wr.lookupType("signal_msg.SoacRequest"),Zr=Wr.lookupType("signal_msg.UnpublishRequest"),ei=Wr.lookupType("signal_msg.StreamControlRequest"),ti=Wr.lookupType("signal_msg.SubscribeRequest"),ri=Wr.lookupType("signal_msg.SetStreamPropertiesRequest"),ii=Wr.lookupType("signal_msg.UnsubscribeRequest"),ni=Wr.lookupType("signal_msg.SubscriptionControlRequest"),ai=Wr.lookupType("signal_msg.CreatePeerConnectionRequest"),oi=Wr.lookupType("signal_msg.ClosePeerConnectionRequest"),si=Wr.lookupType("signal_msg.BatchPublishRequest"),ci=Wr.lookupType("signal_msg.BatchUnpublishRequest"),ui=Wr.lookupType("signal_msg.BatchSubscribeRequest"),li=Wr.lookupType("signal_msg.BatchUnsubscribeRequest"),di=Wr.lookupType("signal_msg.JoinGroupRequest"),pi=Wr.lookupType("signal_msg.SetGroupPropertiesRequest"),fi=Wr.lookupType("signal_msg.DismissGroupRequest"),vi=Wr.lookupType("signal_msg.LeaveGroupRequest"),mi=Wr.lookupType("signal_msg.SyncDataRequest"),hi=Wr.lookupType("signal_msg.SyncDataByIdsRequest"),gi=Wr.lookupType("signal_msg.GroupChangeLog"),bi=Wr.lookupType("signal_msg.GroupListChangeLog"),yi=Wr.lookupType("signal_msg.SetParticipantPropertiesRequest"),ki=Wr.lookupType("signal_msg.QueryStreamsVerRequest"),Si=Wr.lookupType("signal_msg.QueryStreamsRequest");function Pi(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Pi=function(){return!!e})()}var wi=function(){function e(t){var r,i,n,a;return j(this,e),i=this,n=G(n=e),r=U(i,Pi()?Reflect.construct(n,[],G(i).constructor):n.apply(i,a)),Object.defineProperty(r,"loggedIn",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"channel",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"rpcId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"reporter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"logger",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),r.channel=t,r.rpcId=0,r.reporter=t.reporter,r.logger=r.reporter.getLoggerWithPrefix("[rtc-signal]"),r.handleBatchNotifyEvent=r.handleBatchNotifyEvent.bind(r),r.handleNotifyEvent=r.handleNotifyEvent.bind(r),r.handleConnectionStateChangeEvent=r.handleConnectionStateChangeEvent.bind(r),r.handleSyncEvent=r.handleSyncEvent.bind(r),r.handleUserEvent=r.handleUserEvent.bind(r),r.channel.on("connection-state-change",r.handleConnectionStateChangeEvent),r.channel.on("sync",r.handleSyncEvent),r.channel.on("batch-notify",r.handleBatchNotifyEvent),r.channel.on("notify",r.handleNotifyEvent),r.channel.on("user",r.handleUserEvent),r}return B(e,c),F(e,[{key:"join",value:function(e,t){return this.channel.join(e,t).then(function(e){return{joinResponse:e.joinResponse,iceConfig:e.iceConfig}})}},{key:"leave",value:function(){return this.channel.leave()}},{key:"handleUserEvent",value:function(e,t){this.emit("user",e,t)}},{key:"handleSyncEvent",value:function(e){this.emit("sync",e)}},{key:"handleConnectionStateChangeEvent",value:function(e,t,r){this.emit("connection-state-change",e,t,r)}},{key:"handleNotifyEvent",value:function(e,t){"stream"===e?this.emit("stream",Kr.decode(t)):"serverFailover"===e?this.emit("serverFailover",zr.decode(t)):"media-message"===e?this.emit("media-message",Jr.decode(t)):"group"===e?this.emit("group",gi.decode(t)):"group-list"===e&&this.emit("group-list",bi.decode(t))}},{key:"handleBatchNotifyEvent",value:function(e){var t=this;Qr.decode(e).notificationItem.forEach(function(e){"stream"===e.event?t.emit("stream",e.streamNotification):"serverFailover"===e.event?t.emit("serverFailover",e.serverFailoverNotification):"group"===e.event?t.emit("group",e.groupNotification):"group-list"===e.event&&t.emit("group-list",e.groupListNotification)})}},{key:"createPeerConnection",value:function(e){var t=ai.encode(e).finish();return this.rpc("create-peer-connection",t,e).then(function(e){return e.createPeerConnectionResponse})}},{key:"closePeerConnection",value:function(e){var t=oi.encode(e).finish();return this.rpc("close-peer-connection",t,e)}},{key:"batchSubscribe",value:function(e){var t=ui.encode(e).finish();return this.rpc("batch-subscribe",t,e).then(function(e){return e.errorMsg})}},{key:"setGroupProperties",value:function(e){var t=pi.encode(e).finish();return this.rpc("set-group-properties",t,e).then(function(e){return e.setGroupPropertiesResponse})}},{key:"batchUnSubscribe",value:function(e){var t=li.encode(e).finish();return this.rpc("batch-unsubscribe",t,e)}},{key:"batchPublish",value:function(e){var t=si.encode(e).finish();return this.rpc("batch-publish",t,e).then(function(e){return e.errorMsg})}},{key:"batchUnPublish",value:function(e){var t=ci.encode(e).finish();return this.rpc("batch-unpublish",t,e)}},{key:"publish",value:function(e){var t=$r.encode(e).finish();return this.rpc("publish",t,e).then(function(e){return e.publishResponse})}},{key:"setParticipantProperties",value:function(e){var t=yi.encode(e).finish();return this.rpc("set-participant-properties",t,e)}},{key:"soac",value:function(e){var t=Xr.encode(e).finish();return this.rpc("soac",t,e)}},{key:"unpublish",value:function(e){var t=Zr.encode(e).finish();return this.rpc("unpublish",t,e)}},{key:"streamControl",value:function(e){var t=ei.encode(e).finish();return this.rpc("stream-control",t,e)}},{key:"setStreamProperties",value:function(e){var t=ri.encode(e).finish();return this.rpc("set-stream-properties",t,e)}},{key:"subscribe",value:function(e){var t=ti.encode(e).finish();return this.rpc("subscribe",t,e).then(function(e){return e.subscribeResponse})}},{key:"unsubscribe",value:function(e){var t=ii.encode(e).finish();return this.rpc("unsubscribe",t,e)}},{key:"subscriptionControl",value:function(e){var t=ni.encode(e).finish();return this.rpc("subscription-control",t,e)}},{key:"getStreamsVer",value:function(e){var t=ki.encode(e).finish();return this.rpc("query-streams-ver",t,e).then(function(e){return e.queryStreamsVerResponse})}},{key:"getStreams",value:function(e){var t=Si.encode(e).finish();return this.rpc("query-streams",t,e).then(function(e){return e.queryStreamsResponse})}},{key:"joinGroup",value:function(e){var t=di.encode(e).finish();return this.rpc("join-group",t,e).then(function(e){return e.joinGroupResponse})}},{key:"leaveGroup",value:function(e){var t=vi.encode(e).finish();return this.rpc("leave-group",t,e).then(function(e){return e.leaveGroupResponse})}},{key:"dismissGroup",value:function(e){var t=fi.encode(e).finish();return this.rpc("dismiss-group",t,e).then(function(e){return e.dismissGroupResponse})}},{key:"syncData",value:function(e){var t=mi.encode(e).finish();return this.rpc("sync-data",t,e).then(function(e){return e.syncDataResponse})}},{key:"syncDataByIds",value:function(e){var t=hi.encode(e).finish();return this.rpc("sync-data-by-ids",t,e).then(function(e){return e.syncDataByIdsResponse})}},{key:"observeAllGroups",value:function(){return this.rpc("observe-all-groups",null).then(function(e){return e.observeAllGroupsResponse})}},{key:"unobserveAllGroups",value:function(){return this.rpc("unobserve-all-groups",null).then(function(e){return e.unobserveAllGroupsResponse})}},{key:"rpc",value:function(e,t){var r=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;return new Promise(function(n,a){var o=r.rpcId++;r.logger.info("rtc rpcId ".concat(o,":").concat(e," param"),i),r.channel.signaling.rpc(e,t,i).then(function(t){var i=Yr.decode(t);i.code===Ur.Result.Ok?(r.logger.info("rtc rpcId ".concat(o,":").concat(e," result====>"),i),n(i)):(r.logger.error("rtc rpcId ".concat(o,":").concat(e," error====>"),i),a(i))}).catch(function(t){r.logger.error("rtc rpcId ".concat(o,":").concat(e," error====>"),t),a(t)})})}}])}();function Ti(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Ti=function(){return!!e})()}var Mi=function(){function e(){var r,i,n,a;j(this,e),i=this,n=G(n=e),r=U(i,Ti()?Reflect.construct(n,[],G(i).constructor):n.apply(i,a)),Object.defineProperty(r,"interval",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"timer",{enumerable:!0,configurable:!0,writable:!0,value:void 0});var o=t().statsConfig;return r.interval=(null==o?void 0:o.statsIntervalMs)||2e3,r.start(),r}return B(e,c),F(e,[{key:"start",value:function(){var e=this;this.stop(),this.makeReport&&this.makeReport(),this.timer=d(function(){e.makeReport()},this.interval,"interval")}},{key:"stop",value:function(){this.timer&&(m(this.timer,"interval"),this.timer=null)}}])}();function Oi(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,i)}return r}function Ei(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Oi(Object(r),!0).forEach(function(t){Ee(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Oi(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function Ii(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return Ai(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ai(e,t):void 0}}(e))||t){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Ai(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function Ri(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Ri=function(){return!!e})()}var _i={timestamp:0,audioLevel:0,bytesSent:0,packetsSent:0,packetsLost:0,roundTripTime:0},xi={totalFramesSent:0,totalBytesSent:0,totalPacketsLost:0,totalPacketsSent:0,totalFramesEncoded:0,timestamp:0,totalQpSum:0,maxSendFrameHeight:0,maxSendFrameWidth:0,captureFrameHeight:0,captureFrameWidth:0,captureFramesPerSecond:0,sendFramesPerSecond:0,availableOutgoingBitrate:0,targetBitrate:0,roundTripTime:0,encodeFramesPerSecond:0,totalEncodedTime:0,trackStats:new Map},Ci=function(){function t(e){var r,i,n,a;j(this,t),i=this,n=G(n=t),r=U(i,Ri()?Reflect.construct(n,[],G(i).constructor):n.apply(i,a)),Object.defineProperty(r,"videoSendReport",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"audioSendReport",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"bweReport",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"lastVideoSendInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"lastAudioSendInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"track",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"source",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"pc",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"tranceiver",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"connection",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),r.connection=e.connection,r.pc=e.connection.pc;var o=e.tracks.filter(function(e){return"video"===e.trackMediaType})[0];return r.source=null==o?void 0:o.source,r.track=e.tracks[0],r.tranceiver=e.transceiver,r.lastVideoSendInfo=Object.assign({},xi),r.videoSendReport={attr_bitrate:0,attr_capture_frames:0,attr_enc_average_elapsed_ms:0,attr_encode_qp_sim:"",attr_encoded_framerate_sim:"",attr_resolution_sim:"",attr_stream_options:"",attr_duration_ms:0},r.lastAudioSendInfo=Object.assign({},_i),r.audioSendReport={attr_duration_ms:0,attr_bitrate:0},r.bweReport={attr_rtt:0,attr_lossrate:0,attr_reported_bitrate:0,attr_duration_ms:0},r}return B(t,Mi),F(t,[{key:"extractVideoMetrics",value:function(t){var r=this,i=Object.assign({source:this.source,trackStats:[]},xi,this.connection.peerConnectionStats);if(i.timestamp=Date.now(),this.track){var n=this.track.getMediaStreamTrack().getSettings(),a=n.width,o=n.height,s=n.frameRate;i.captureFramesPerSecond=s===1/0?0:s||0,i.captureFrameWidth=a||0,i.captureFrameHeight=o||0}var c=new Map,u=ft(i,this.lastVideoSendInfo);return t.forEach(function(t){if(/outboundrtp|outbound-rtp/i.test(t.type)){var n=c.get(t.ssrc)||{},a=r.lastVideoSendInfo.trackStats.get(t.ssrc)||{};if(n.sendFrameWidth=t.frameWidth||0,n.sendFrameHeight=t.frameHeight||0,n.framesSent=t.framesSent||0,n.framesEncoded=t.framesEncoded||0,n.targetBitrate=t.targetBitrate||0,n.qpSum=t.qpSum||0,n.bytesSent=t.bytesSent||0,n.packetsSent=t.packetsSent||0,n.packetsSentForLost=n.packetsSent||0,n.sentTimestamp=t.timestamp||0,n.totalEncodeTime=t.totalEncodeTime||0,n.keyFramesEncoded=t.keyFramesEncoded||0,n.firCount=t.firCount||0,n.pliCount=t.pliCount||0,n.retransmittedBytesSent=t.retransmittedBytesSent||0,n.retransmittedPacketsSent=t.retransmittedPacketsSent||0,n.qualityLimitationReason=t.qualityLimitationReason||"",n.web_powerEfficientEncoder=t.powerEfficientEncoder||"",n.web_encoderImplementation=t.encoderImplementation||"",n.web_qualityLimitationResolutionChanges=t.qualityLimitationResolutionChanges>=0?t.qualityLimitationResolutionChanges:-1,n.web_codecId=t.codecId||"",n.sendFramesPerSecond=t.framesPerSecond||0,n.sendFrameWidth>i.maxSendFrameWidth){if(i.maxSendFrameWidth=n.sendFrameWidth,!n.sendFramesPerSecond&&a){var o=mt(n.framesSent||n.framesEncoded,a.framesSent||a.framesEncoded);n.sendFramesPerSecond=Math.round(o/u)}if(n.framesEncoded){var s=mt(n.framesEncoded,null==a?void 0:a.framesEncoded);i.encodeFramesPerSecond=Math.round(s/u)}i.sendFramesPerSecond=n.sendFramesPerSecond}c.set(t.ssrc,n),i.targetBitrate=n.targetBitrate,i.totalBytesSent+=n.bytesSent,i.totalPacketsSent+=n.packetsSent,i.totalEncodedTime+=n.totalEncodeTime,i.totalFramesEncoded+=n.framesEncoded,i.totalFramesSent+=n.framesSent,i.totalQpSum+=n.qpSum,i.maxSendFrameHeight=Math.max(n.sendFrameHeight,i.maxSendFrameHeight),c.set(t.ssrc,n)}else if(/track/i.test(t.type)&&!1===t.remoteSource){if(e.isSafari()){var l=c.get(t.ssrc)||{};l.sendFrameHeight>0||(l.sendFrameWidth=t.frameWidth||0,l.sendFrameHeight=t.frameHeight||0),l.framesSent=t.framesSent||0,l.totalEncodeTime=t.totalEncodeTime||0,c.set(t.ssrc,l),i.totalFramesEncoded+=l.framesEncoded,i.totalEncodedTime+=l.totalEncodeTime,i.totalFramesSent+=l.framesSent,c.set(t.ssrc,l)}}else if(/remote-inbound-rtp/i.test(t.type)){var d=c.get(t.ssrc)||{},p=r.lastVideoSendInfo.trackStats.get(t.ssrc)||{};d.packetsLost=t.packetsLost||0,d.lostTimestamp=t.timestamp,i.totalPacketsLost+=d.packetsLost,d.packetsLost===(p.packetsLost||0)&&(d.packetsSentForLost=p.packetsSentForLost||0,d.lostTimestamp=p.lostTimestamp||0),c.set(t.ssrc,d)}}),i.trackStats=c,i}},{key:"getLayersMetricInfo",value:function(e){var t,r=[],i=Ii(e.trackStats.entries());try{for(i.s();!(t=i.n()).done;){var n=Kt(t.value,2),a=n[0],o=n[1],s=this.lastVideoSendInfo.trackStats.get(a)||{},c=mt(o.framesSent,s.framesSent),u=mt(o.framesEncoded,s.framesEncoded),l=mt(o.keyFramesEncoded,s.keyFramesEncoded),d=mt(o.retransmittedBytesSent,s.retransmittedBytesSent),p=mt(o.retransmittedPacketsSent,s.retransmittedPacketsSent),f=mt(o.firCount,s.firCount),v=mt(o.pliCount,s.pliCount),m=mt(o.packetsSent,s.packetsSent),h=mt(o.packetsSentForLost,s.packetsSentForLost),g=mt(o.lostTimestamp,s.lostTimestamp),b=mt(o.sentTimestamp,s.sentTimestamp),y=mt(o.packetsLost,s.packetsLost),k=mt(o.totalEncodeTime,s.totalEncodeTime),S=mt(o.qpSum,s.qpSum),P=o.qualityLimitationReason,w=o.sendFrameWidth,T=Ei(Ei({sendFrameHeight:o.sendFrameHeight,sendFrameWidth:w,qualityLimitationReason:P,web_powerEfficientEncoder:o.web_powerEfficientEncoder,web_encoderImplementation:o.web_encoderImplementation,web_qualityLimitationResolutionChanges:o.web_qualityLimitationResolutionChanges,web_codecId:o.web_codecId},o),{},{deltaQbSum:S,deltaPacketsSent:m,deltaPacketsLost:y,deltaFramesSent:c,deltaTimestampForLost:g,deltaFramesEncoded:u,deltaKeyFramesEncoded:l,deltaFirCount:f,deltaEncodedTime:k,deltaPliCount:v,deltaTimestampForSent:b,deltaPacketsSentForLost:h,deltaRetransmittedBytesSent:d,deltaRetransmittedPacketsSent:p});r.push(T)}}catch(e){i.e(e)}finally{i.f()}return{tracksStatInfo:r,totalBytesSent:e.totalBytesSent,totalFramesEncoded:e.totalFramesEncoded||e.totalFramesSent,totalPacketsSent:e.totalPacketsSent,totalEncodedTime:e.totalEncodedTime,totalQpSum:e.totalQpSum,totalPacketsLost:e.totalPacketsLost}}},{key:"makeVideoReport",value:function(e,t){var r={attr_capture_frames:Math.round(e.captureFramesPerSecond),attr_stream_options:"audio:false/video:".concat(this.source,"/resolution:").concat(e.captureFrameWidth,"*").concat(e.captureFrameHeight,"/")};if(this.lastVideoSendInfo.timestamp){var i,n=this.getLayersMetricInfo(e),a=n.tracksStatInfo,o=n.totalBytesSent,s=n.totalFramesEncoded,c=n.totalEncodedTime;a.length>1&&(r.attr_stream_options+="sim:".concat(a.length,"/"));for(var u={attr_encoded_framerate_sim:[],attr_enc_key_frames_sim:[],attr_fir_count_sim:[],attr_pli_count_sim:[],attr_quality_limitation_reason_sim:[],web_powerEfficientEncoder_sim:[],web_encoderImplementation_sim:[],web_qualityLimitationResolutionChanges_sim:[],web_codecId_sim:[],attr_retx_bytes_sim:[],attr_retx_packets_sim:[],attr_resolution_sim:[],attr_encode_qp_sim:[]},l=[],d=0,p=mt(e.timestamp,this.lastVideoSendInfo.timestamp),f=!0,v=0;v<a.length;v++){var m=a[v];u.attr_enc_key_frames_sim.push(m.deltaKeyFramesEncoded),u.attr_fir_count_sim.push(m.deltaFirCount),u.attr_pli_count_sim.push(m.deltaPliCount),u.attr_quality_limitation_reason_sim.push(m.qualityLimitationReason),u.web_powerEfficientEncoder_sim.push(m.web_powerEfficientEncoder),u.web_encoderImplementation_sim.push(m.web_encoderImplementation),u.web_qualityLimitationResolutionChanges_sim.push(m.web_qualityLimitationResolutionChanges),u.web_codecId_sim.push(m.web_codecId),u.attr_retx_bytes_sim.push(m.deltaRetransmittedBytesSent),u.attr_retx_packets_sim.push(m.deltaRetransmittedPacketsSent),u.attr_resolution_sim.push({count:m.deltaFramesSent||m.deltaFramesEncoded,index:v,resolution:"".concat(m.sendFrameWidth,"*").concat(m.sendFrameHeight)});var h=m.deltaFramesEncoded||m.deltaFramesSent;f&&(f=0===h),u.attr_encoded_framerate_sim.push(Ee({},v,Math.round(1e3*h/p))),u.attr_encode_qp_sim.push(Ee({},v,Math.round((m.deltaQbSum||0)/(h||Number.EPSILON))));var g=m.deltaTimestampForLost,b=m.deltaTimestampForSent,y=m.deltaPacketsLost,k=m.deltaPacketsSentForLost;if(y&&k&&g&&b){var S=y/g/(k/b);l.push(Math.max(Math.min(S,1),0))}}for(var P=0,w=Object.entries(u);P<w.length;P++){var T=Kt(w[P],2),M=T[0],O=T[1];r[M]=O.length?JSON.stringify(O):""}var E=0,I=mt(s,this.lastVideoSendInfo.totalFramesEncoded),A=mt(c,this.lastVideoSendInfo.totalEncodedTime);I&&A&&(E=Math.round(1e3*A/I));var R=mt(o,this.lastVideoSendInfo.totalBytesSent);r.attr_duration_ms=p,r.attr_bitrate=p>0?Math.min(Math.round(8*R*1e3/p),2e7):0,r.attr_enc_average_elapsed_ms=E,this.videoSendReport=r,f&&(r.attr_resolution_sim="null",r.attr_encoded_framerate_sim="null");var _={web_dtlsState:(null===(i=Re(t.values()).find(function(e){return"transport"===e.type}))||void 0===i?void 0:i.dtlsState)||""};this.emit("video-send-stream",Object.assign(_,this.videoSendReport)),l.length&&(d=Math.min(Math.round(l.reduce(function(e,t){return t+e},0)/l.length*255),255)),this.bweReport={attr_duration_ms:p,attr_rtt:Math.round(e.roundTripTime||0),attr_reported_bitrate:Math.max(0,Math.min(e.availableOutgoingBitrate||0,2e7)),attr_lossrate:d},this.emit("bwe",Object.assign({},this.bweReport))}this.lastVideoSendInfo=e}},{key:"extractAudioMetrics",value:function(e){var t=this,r=Object.assign({},_i,this.connection.peerConnectionStats);return e.forEach(function(e){if(/outboundrtp|outbound-rtp/i.test(e.type)?(r.timestamp=e.timestamp,r.bytesSent=e.bytesSent||0,r.packetsSent=e.packetsSent):/remote-inbound-rtp|remoteinboundrt/i.test(e.type)?void 0!==e.packetsLost&&(r.packetsLost=e.packetsLost):/media-source/i.test(e.type)&&e.audioLevel&&(r.audioLevel=e.audioLevel),t.track){var i=t.track.getMediaStreamTrack().getSettings(),n=i.channelCount,a=i.sampleRate;r.channels=n,r.sampleRate=a}}),r}},{key:"makeAudioReport",value:function(e){this.lastAudioSendInfo.timestamp>0&&e.timestamp&&(this.audioSendReport={attr_duration_ms:Math.round(mt(e.timestamp,this.lastAudioSendInfo.timestamp)),attr_bitrate:Math.round(8*mt(e.bytesSent,this.lastAudioSendInfo.bytesSent)*1e3/mt(e.timestamp,this.lastAudioSendInfo.timestamp))},this.emit("audio-send-stream",Object.assign({},this.audioSendReport))),this.lastAudioSendInfo=e}},{key:"makeReport",value:function(){var e=this;this.getStats().then(function(t){null!=t&&t.audioMetrics&&e.makeAudioReport(t.audioMetrics),null!=t&&t.videoMetrics&&e.makeVideoReport(t.videoMetrics,t.originStats)})}},{key:"getStats",value:function(){var e,t,r=this,i=this.tranceiver,o=this.pc;if(!o||null==i||null===(e=i.sender)||void 0===e||!e.track)return Promise.resolve({});if(null==o||!o.getStats)throw new n(a.BrowserNotSupported,"getStats is not supported");return null===(t=this.pc.getStats(i.sender.track))||void 0===t?void 0:t.then(function(e){return{videoMetrics:r.source?r.extractVideoMetrics(e):void 0,audioMetrics:r.source?void 0:r.extractAudioMetrics(e),originStats:e}})}}])}();function ji(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return Di(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Di(e,t):void 0}}(e))||t){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Di(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function Li(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Li=function(){return!!e})()}var Ni={timestamp:0,packetsLost:0,packetsReceived:0,bytesReceived:0,audioLevel:0,decodingNormal:0,roundTripTime:0},Fi={packetsLost:0,packetsReceived:0,framesDropped:0,frameHeight:0,frameWidth:0,framesDecoded:0,framesReceived:0,timestamp:0,framesPerSecond:0,bytesReceived:0,roundTripTime:0},Ui=function(){function e(t){var r,i,n,a,o;j(this,e),n=this,a=G(a=e),i=U(n,Li()?Reflect.construct(a,[],G(n).constructor):a.apply(n,o)),Object.defineProperty(i,"videoReceiveReport",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"audioReceiveReport",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"lastVideoReceiveInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"lastAudioReceiveInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"source",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"firstReportFlag",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"firstReportTimer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"pc",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"tranceiver",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"tranceivers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"connection",{enumerable:!0,configurable:!0,writable:!0,value:void 0});var s=t.connection,c=t.transceiver,u=t.uid,l=t.stream,p=t.transceivers;return i.connection=s,i.pc=s.pc,i.tranceiver=c,i.tranceivers=p,i.firstReportTimer=d(function(){i.getStats().then(function(e){i.makeFirstReport(e)})},400,"interval"),i.source="mcu"!==u&&(null===(r=l.media)||void 0===r||null===(r=r.video)||void 0===r?void 0:r.source),i.videoReceiveReport={attr_duration_ms:0,attr_bitrate:0,attr_current_delay:0,attr_stream_options:"",attr_resolution:"",attr_dec_frames:0,attr_decode_qp:0,attr_fraction_lost:0,attr_network_framerate:0,attr_render_delay:0,attr_dec_key_frames:-1},i.lastVideoReceiveInfo=Object.assign({},Fi),i.firstReportFlag={audioFirstPacket:!1,videoFirstPacket:!1,audioFirstFrame:!1},i.lastAudioReceiveInfo=Object.assign({},Ni),i.audioReceiveReport={attr_duration_ms:0,attr_delay_estimate:0,attr_bitrate:0},i}return B(e,Mi),F(e,[{key:"extractAudioMetrics",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=Object.assign({},Ni,this.connection.peerConnectionStats);return i.timestamp=Date.now(),e.forEach(function(e){e.isRemote||(/inboundrtp|inbound-rtp/i.test(e.type)?(i.bytesReceived=e.bytesReceived||0,i.packetsReceived=e.packetsReceived||0,r||(i.packetsLost===(t.lastAudioReceiveInfo.packetsLost||0)?i.packetsReceivedForLost=t.lastAudioReceiveInfo.packetsReceived||0:i.packetsReceivedForLost=i.packetsReceived||0),i.packetsLost=e.packetsLost||0,i.audioLevel=e.audioLevel||0,i.decodingNormal=Number(e.googDecodingNormal||0)):/track/i.test(e.type)&&(i.audioLevel=e.audioLevel))}),i}},{key:"extractMultipleAudioMetrics",value:function(e){var t=this,r=e.map(function(e){return t.extractAudioMetrics(e,!0)}),i=Object.assign({},Ni,this.connection.peerConnectionStats);i.timestamp=Date.now();var n,a=ji(r);try{for(a.s();!(n=a.n()).done;){var o=n.value;i.bytesReceived+=o.bytesReceived||0,i.packetsLost+=o.packetsLost||0,i.packetsReceived+=o.packetsReceived||0,i.audioLevel=Math.max(i.audioLevel,o.audioLevel||0),i.decodingNormal=Math.max(i.decodingNormal,o.decodingNormal||0)}}catch(e){a.e(e)}finally{a.f()}return i.packetsLost===(this.lastAudioReceiveInfo.packetsLost||0)?i.packetsReceivedForLost=this.lastAudioReceiveInfo.packetsReceived||0:i.packetsReceivedForLost=i.packetsReceived||0,i}},{key:"extractVideoMetrics",value:function(e){var t=this,r=Object.assign({source:this.source},Fi,this.connection.peerConnectionStats);return r.timestamp=Date.now(),e.forEach(function(e){if(!e.isRemote)if(/inboundrtp|inbound-rtp/i.test(e.type))r.framesDecoded=e.framesDecoded,r.packetsReceived=e.packetsReceived||0,r.framesReceived=e.framesReceived,r.keyFramesDecoded=e.keyFramesDecoded||0,r.packetsLost=e.packetsLost||0,r.packetsLost===(t.lastVideoReceiveInfo.packetsLost||0)?r.packetsReceivedForLost=t.lastVideoReceiveInfo.packetsReceived||0:r.packetsReceivedForLost=r.packetsReceived||0,r.bytesReceived=e.bytesReceived||0,r.firCount=e.firCount||0,r.pliCount=e.pliCount||0,r.freezeCount=e.freezeCount||0,r.retransmittedBytesReceived=e.retransmittedBytesReceived||0,r.retransmittedPacketsReceived=e.retransmittedPacketsReceived||0,void 0!==e.frameHeight&&(r.frameWidth=e.frameWidth||0,r.frameHeight=e.frameHeight||0);else if(/track/i.test(e.type))r.frameWidth=e.frameWidth||0,r.frameHeight=e.frameHeight||0;else if(/codec/i.test(e.type)){var i;null!==(i=e.mimeType)&&void 0!==i&&i.includes("video")&&(r.sdpFmtpLine=e.sdpFmtpLine)}}),r}},{key:"makeAudioReport",value:function(e){if(this.lastAudioReceiveInfo.timestamp>0&&e.timestamp){var t=Math.round(mt(e.timestamp,this.lastAudioReceiveInfo.timestamp)),r=mt(e.packetsLost,this.lastAudioReceiveInfo.packetsLost),i=mt(e.packetsReceivedForLost,this.lastAudioReceiveInfo.packetsReceivedForLost),n=mt(e.bytesReceived,this.lastAudioReceiveInfo.bytesReceived),a=0;try{a=Math.max(r/i,0)}catch(e){a=0}isNaN(a)&&(a=0),this.audioReceiveReport={attr_delay_estimate:0,attr_duration_ms:t,attr_bitrate:Math.round(8*n/(t/1e3))},this.emit("audio-net-eq",{attr_speech_expand_rate:0,attr_duration_ms:this.audioReceiveReport.attr_duration_ms,attr_packet_lossrate:Math.round(Math.min(16384*a,16384))}),this.emit("audio-recv-stream",Object.assign({},this.audioReceiveReport))}this.lastAudioReceiveInfo=e}},{key:"makeVideoReport",value:function(e){var t=this.lastVideoReceiveInfo,r=t.firCount,i=t.pliCount,n=t.timestamp,a=t.freezeCount,o=t.packetsLost,s=t.framesDecoded,c=t.framesDropped,u=t.bytesReceived,l=t.packetsReceivedForLost,d=t.retransmittedBytesReceived,p=t.retransmittedPacketsReceived;if(n>0&&e.timestamp){var f=mt(e.timestamp,n);if(e.bytesReceived-u>=0){var v=mt(e.packetsLost,o),m=mt(e.packetsReceivedForLost,l),h=0;try{h=Math.round(v/m*255)}catch(e){h=0}isNaN(h)&&(h=0);var g=mt(e.framesDecoded,s);this.videoReceiveReport={attr_network_framerate:Math.round(1e3*g/f),attr_dec_frames:g,attr_dec_key_frames:e.keyFramesDecoded,attr_decode_qp:0,attr_render_delay:0,attr_current_delay:0,attr_dropped_count:mt(e.framesDropped,c),attr_fir_count:mt(e.firCount,r),attr_freeze_count:mt(e.freezeCount,a),attr_pli_count:mt(e.pliCount,i),attr_retx_bytes:mt(e.retransmittedBytesReceived,d),attr_retx_packets:mt(e.retransmittedPacketsReceived,p),attr_bitrate:Math.round(8*mt(e.bytesReceived,u)*1e3/f),attr_stream_options:"audio:false/video:".concat(this.source,"/resolution:").concat(e.frameWidth,"*").concat(e.frameHeight,"/"),attr_fraction_lost:Math.max(0,Math.min(h,255)),attr_resolution:JSON.stringify([{count:g,resolution:"".concat(e.frameWidth,"*").concat(e.frameHeight)}]),attr_duration_ms:Math.round(f)},this.emit("video-recv-stream",Object.assign({},this.videoReceiveReport))}}this.lastVideoReceiveInfo=e}},{key:"makeReport",value:function(){var e=this;this.getStats().then(function(t){t.audioMetrics&&e.makeAudioReport(t.audioMetrics),t.videoMetrics&&e.makeVideoReport(t.videoMetrics)})}},{key:"makeFirstReport",value:function(e){var t=this.firstReportFlag,r=t.audioFirstFrame,i=t.audioFirstPacket,n=t.videoFirstPacket,a=e.audioMetrics,o=e.videoMetrics;if(a&&o){if((r||-1===(null==a?void 0:a.decodingNormal))&&i&&n)return void(this.firstReportTimer&&(m(this.firstReportTimer,"interval"),this.firstReportTimer=null))}else if(a){if((r||-1===(null==a?void 0:a.decodingNormal))&&i)return void(this.firstReportTimer&&(m(this.firstReportTimer,"interval"),this.firstReportTimer=null))}else if(o&&n)return void(this.firstReportTimer&&(m(this.firstReportTimer,"interval"),this.firstReportTimer=null));null!=a&&a.packetsReceived&&!i&&(this.emit("audio-first-packet"),this.firstReportFlag.audioFirstPacket=!0),Number(null==a?void 0:a.decodingNormal)>0&&!r&&(this.emit("audio-first-frame"),this.firstReportFlag.audioFirstPacket=!0),null!=o&&o.packetsReceived&&!n&&(this.emit("video-first-packet"),this.firstReportFlag.videoFirstPacket=!0)}},{key:"getStats",value:function(){var e,t=this,r=this.tranceiver,i=this.tranceivers,o=this.pc;if(!(o&&(null!=i&&i.length||null!=r&&r.receiver.track)))return Promise.resolve({});if(null==o||!o.getStats)throw new n(a.BrowserNotSupported,"getStats is not supported");if(i&&i.length){var s=i.map(function(e){return e.receiver.track}).filter(function(e){return!!e});return Promise.all(s.map(function(e){return o.getStats(e)})).then(function(e){return{audioMetrics:t.extractMultipleAudioMetrics(e)}})}return null!=r&&null!==(e=r.receiver)&&void 0!==e&&e.track?o.getStats(r.receiver.track).then(function(e){return{videoMetrics:t.source?t.extractVideoMetrics(e):void 0,audioMetrics:t.source?void 0:t.extractAudioMetrics(e)}}):void 0}},{key:"stop",value:function(){var t,r,i;(t="stop",r=this,"function"==typeof(i=_e(G(e.prototype),t,r))?function(e){return i.apply(r,e)}:i)([]),this.firstReportTimer&&(m(this.firstReportTimer,"interval"),this.firstReportTimer=null)}}])}();function Gi(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return Vi(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Vi(e,t):void 0}}(e))||t){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Vi(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function Bi(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,i)}return r}function Hi(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Bi(Object(r),!0).forEach(function(t){Ee(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Bi(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function qi(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(qi=function(){return!!e})()}var Wi=t().getLoggerWithPrefix("[rtc-subs]"),Yi=function(){function e(t){var r,i,n,a;j(this,e),i=this,n=G(n=e),r=U(i,qi()?Reflect.construct(n,[],G(i).constructor):n.apply(i,a)),Object.defineProperty(r,"stream",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"resolutionInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"ssrc",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"startTime",{enumerable:!0,configurable:!0,writable:!0,value:Date.now()}),Object.defineProperty(r,"uid",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"subIdAcc",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"state",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"monitor",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"userConfigResolution",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"connection",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"rtcSignaling",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"_stream",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"stucked",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(r,"reporter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"logger",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"metricsMap",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"audioStatsMap",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"videoStatsMap",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"transceiver",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"transceivers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"targetMediaType",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"logTrackEnded",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t;r.state===Se.Processing&&r.logger.info("sub track ended",null==e||null===(t=e.target)||void 0===t?void 0:t.id,r.subIdAcc)}}),Object.defineProperty(r,"logTrackUnmute",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t;r.state===Se.Processing&&r.logger.info("sub track unmute",null==e||null===(t=e.target)||void 0===t?void 0:t.id,r.subIdAcc)}}),Object.defineProperty(r,"logTrackMute",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t;r.state===Se.Processing&&r.logger.info("sub track mute",null==e||null===(t=e.target)||void 0===t?void 0:t.id,r.subIdAcc)}}),Object.defineProperty(r,"updateTransceiverListeners",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e,t;null!==(e=r.transceiver)&&void 0!==e&&null!==(e=e.receiver)&&void 0!==e&&e.transport?(r.transceiver.receiver.transport.onerror=r._onDtlsError,r.transceiver.receiver.transport.onstatechange=r._onDtlsStateChange,null!==(t=r.transceiver)&&void 0!==t&&null!==(t=t.receiver)&&void 0!==t&&t.transport.iceTransport&&(r.transceiver.receiver.transport.iceTransport.onselectedcandidatepairchange=r._onSelectedCandidatePairChange.bind(r,r.transceiver.receiver))):r.logger.info("browser version low, no dtls transport to watch")}}),Object.defineProperty(r,"_onDtlsError",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t;r.logger.error("".concat(r.id," ").concat(r.uid," ").concat(r.subIdAcc," dtls_error"),null==e||null===(t=e.error)||void 0===t?void 0:t.errorDetail)}}),Object.defineProperty(r,"_onDtlsStateChange",{enumerable:!0,configurable:!0,writable:!0,value:function(){r.logger.info("".concat(r.id," ").concat(r.uid," ").concat(r.subIdAcc," dtls_state_change"),r.transceiver.receiver.transport.state)}}),Object.defineProperty(r,"_onSelectedCandidatePairChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t,i=null==e||null===(t=e.transport)||void 0===t||null===(t=t.iceTransport)||void 0===t?void 0:t.getSelectedCandidatePair();r.logger.info("".concat(r.id," ").concat(r.uid," ").concat(r.subIdAcc," selected_candidate_pair_change"),i)}}),r.subIdAcc="subIdAcc-".concat(e.subIdAcc++);var o=t.connection,s=t.stream,c=t.uid,u=t.resolutionInfo,l=t.userConfigResolution,d=t.targetMediaType;return r.connection=o,r.targetMediaType=d,r.resolutionInfo=u,r.userConfigResolution=l,r.rtcSignaling=o.rtcSignaling,r.stream=s,r.uid=c,r.reporter=o.reporter,r.logger=r.reporter.getLoggerWithPrefix("[rtc-subs]"),r.connection.once("ended",function(){r.clear()}),r.videoStatsMap=new Map,r.audioStatsMap=new Map,r.metricsMap=new Map,r.state=Se.Processing,r.handleStreamAdd=r.handleStreamAdd.bind(r),r.connection.on("track",r.handleStreamAdd),r}return B(e,c),F(e,[{key:"handleStreamAdd",value:function(e,t){var r,i=this;if(Qe.audioSFU&&"audio"===e.kind){var n,a=null===(n=this.transceivers)||void 0===n?void 0:n.map(function(e){var t;return null===(t=e.receiver)||void 0===t||null===(t=t.track)||void 0===t?void 0:t.id});null!=a&&a.includes(e.id)&&(e.removeEventListener("ended",this.logTrackEnded),e.removeEventListener("unmute",this.logTrackUnmute),e.removeEventListener("mute",this.logTrackMute),e.addEventListener("ended",this.logTrackEnded),e.addEventListener("unmute",this.logTrackUnmute),e.addEventListener("mute",this.logTrackMute)),this._stream=this._stream||new MediaStream([]),this._stream.addTrack(e)}else if(e.id===(null===(r=this.transceiver)||void 0===r||null===(r=r.receiver)||void 0===r||null===(r=r.track)||void 0===r?void 0:r.id)){e.removeEventListener("ended",this.logTrackEnded),e.removeEventListener("unmute",this.logTrackUnmute),e.removeEventListener("mute",this.logTrackMute),e.addEventListener("ended",this.logTrackEnded),e.addEventListener("unmute",this.logTrackUnmute),e.addEventListener("mute",this.logTrackMute),this._stream=new MediaStream([e]);var o=document.createElement("video");o.onloadeddata=function(){o.srcObject=null,i.handleVideoFirstFrame()},o.srcObject=this._stream}}},{key:"mediaStream",get:function(){return this._stream||this.connection.mcuAudioStream}},{key:"stop",value:function(){var e=this;if(this.state===Se.Processing)return this.clear(),this.rtcSignaling.unsubscribe({subscriptionId:this.id}).catch(function(t){e.logger.warn("negative ack for unsubscribing, ".concat(t))})}},{key:"mute",value:function(e){return this.rtcSignaling.subscriptionControl({subscriptionId:this.id,operation:"pause",track:e})}},{key:"unmute",value:function(e){return this.rtcSignaling.subscriptionControl({subscriptionId:this.id,operation:"play",track:e})}},{key:"applyOptions",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.stream.id;return this.resolutionInfo=Qi(this.stream,e),t||(this.userConfigResolution=e),this.rtcSignaling.subscriptionControl({subscriptionId:this.id,operation:"update",updateDesc:{video:{from:r,params:this.resolutionInfo}}})}},{key:"reset",value:function(){this.connection.off("track",this.handleStreamAdd),this.monitor&&(this.monitor.stop(),this.monitor.removeAllListeners(),this.monitor=null),this.metricsMap.clear(),this.audioStatsMap.clear(),this.videoStatsMap.clear()}},{key:"clear",value:function(){this.state!==Se.End&&(this.reset(),this.state=Se.End,this.emit("ended"))}},{key:"addTransceiver",value:function(e){this.monitor&&(this.monitor.stop(),this.monitor.removeAllListeners(),this.monitor=null),this.metricsMap.clear(),this.audioStatsMap.clear(),this.videoStatsMap.clear(),this.transceiver=e,this.monitor=new Ui(this),this.onMonitor()}},{key:"addTransceivers",value:function(e){this.monitor&&(this.monitor.stop(),this.monitor.removeAllListeners(),this.monitor=null),this.transceivers=e,this.monitor=new Ui(this),this.onMonitor()}},{key:"handleVideoFirstFrame",value:function(){this.reporter.trace.videoFirstFrame({sessionId:this.id,remoteStreamId:this.stream.id,attr_elapse_time:Date.now()-this.startTime,remoteUserId:this.uid}),this.logger.info("video-first-frame sessionId=".concat(this.id))}},{key:"handleMetrics",value:function(e,t){var r=e.audioMetrics,i=e.videoMetrics;if(r){var n,a=(null===(n=this.metricsMap.get(t))||void 0===n?void 0:n.audioMetrics)||{},o=ft(r,a),s=mt(r.bytesReceived,a.bytesReceived),c={codec:this.connection.peerConnectionStats.audioCodec||r.codec,receiveBytes:r.bytesReceived,receivePackets:r.packetsReceived,receivePacketsLost:r.packetsLost,rtt:r.roundTripTime,audioLevel:Math.max(r.audioLevel,0),timestamp:r.timestamp,receiveBitrate:8*s/o};this.audioStatsMap.set(t,c)}else if(i){var u,l,d=(null===(u=this.metricsMap.get(t))||void 0===u?void 0:u.videoMetrics)||{},p=ft(i,d),f=mt(i.bytesReceived,d.bytesReceived),v={codec:this.connection.peerConnectionStats.videoCodec||i.codec,receiveResolution:{width:i.frameWidth,height:i.frameHeight},receiveBitrate:8*f/p,decodeFrameRate:Math.round(mt(null==i?void 0:i.framesDecoded,d.framesDecoded)/p),receiveFrameRate:Math.round(mt(null==i?void 0:i.framesReceived,d.framesReceived)/p),keyFramesDecoded:null==i?void 0:i.keyFramesDecoded,receiveFramesDropped:mt(null==i?void 0:i.framesDropped,d.framesDropped),receiveBytes:i.bytesReceived,receivePackets:i.packetsReceived,receivePacketsLost:i.packetsLost,rtt:i.roundTripTime,timestamp:i.timestamp},m=this.connection.subSdpFmtpLines.some(function(e){return e.includes("64")}),h=(null===(l=this.stream.media)||void 0===l||null===(l=l.video)||void 0===l?void 0:l.source)===me.CAMERA&&f>3e4&&0===v.decodeFrameRate;"network"===t&&(this.stucked&&h?m&&v.receiveFramesDropped>0&&!Qe.downlinkForbidHighProfile&&this.connection.handleHighProfileFallback():this.stucked=h),this.videoStatsMap.set(t,v)}this.metricsMap.set(t,e)}},{key:"getMetrics",value:function(e){var t,r=this;return null===(t=this.connection)||void 0===t?void 0:t.getStats().then(function(){var t;null===(t=r.monitor)||void 0===t||t.getStats().then(function(t){return r.handleMetrics(t,e)})})}},{key:"onMonitor",value:function(){var e=this;"mcu"===this.uid?(this.monitor.on("audio-net-eq",function(t){e.reporter.metric.audioNetEQ(Hi({sessionId:e.id,remoteStreamId:e.stream.id,remoteUserId:e.uid},t))}),this.monitor.on("audio-recv-stream",function(t){e.reporter.metric.audioRecvStream(Hi({sessionId:e.id,remoteStreamId:e.stream.id,remoteUserId:e.uid},t))}),this.monitor.on("audio-first-packet",function(){e.reporter.trace.audioFirstPacket({sessionId:e.id,remoteStreamId:e.stream.id,remoteUserId:e.uid})}),this.monitor.on("audio-first-frame",function(){e.emit("audio-first-frame")})):(this.monitor.on("video-first-packet",function(){e.reporter.trace.videoFirstPacket({sessionId:e.id,remoteStreamId:e.stream.id,remoteUserId:e.uid}),e.logger.info("video-first-packet sessionId=".concat(e.id))}),this.monitor.on("video-recv-stream",function(t){e.reporter.metric.videoRecvStream(Hi({sessionId:e.id,remoteStreamId:e.stream.id,remoteUserId:e.uid},t))}))}}])}();Object.defineProperty(Yi,"subIdAcc",{enumerable:!0,configurable:!0,writable:!0,value:0});var Qi=function(e,t){if(!t)return null;var r=t.resolutionLevel,i=e.media.video.highestResolutionLevel;if(i&&i<r){var n=nr(i);return ir(n,Ke(e))}return t},Ji=function(e){var t,r={audio:[],video:[]},i=Gi(e);try{for(i.s();!(t=i.n()).done;){var n=t.value,a=n.stream,o=n.error,s=n.resolutionInfo,c=n.targetMediaType;if(o)Wi.error("skip subscribe",a,o);else{var u=Ki(a,s,c),l=u.audio,d=u.video;if("audio"===c&&l){var p=Hi(Hi({},l),{},{trackId:a.media.audio.trackId,ssrcGroup:[{ssrc:ln()}]});Qe.audioSFU&&(p.ssrcGroup=new Array(6).fill(0).map(function(){return{ssrc:ln()}})),r.audio.push(p)}else if("video"===c&&d){var f,v;r.video.push(Hi(Hi({},d),{},{trackId:null===(f=a.media)||void 0===f||null===(f=f.video)||void 0===f?void 0:f.trackId,ssrcGroup:null===(v=a.media)||void 0===v||null===(v=v.video)||void 0===v?void 0:v.ssrcGroup,subSsrcGroup:{ssrc:ln(),rtxSsrc:ln()}}))}}}}catch(e){i.e(e)}finally{i.f()}return r},Ki=function(e,t,r){var i=e.id,n=e.media,a=n.audio,o=n.video,s={};if(a&&"audio"===r)s.audio={from:i};else if(o&&"video"===r){var c;s.video={from:i,format:null===(c=n.video)||void 0===c?void 0:c.format,parameters:Qi(e,t)}}return s},zi=function(){var e=C(Oe.mark(function e(t,r){var i,n,a,o;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return i=[],n={},t.forEach(function(e,t){var a=e.stream,o=e.error,s=e.uid,c=e.resolutionInfo,u=e.targetMediaType;if(i[t]={stream:a,error:o,uid:s,resolutionInfo:c,targetMediaType:u},!o){var l=new Yi({connection:r,uid:s,userConfigResolution:c,resolutionInfo:c&&Qi(a,c),stream:a,targetMediaType:u});n[a.id]=l}}),o=new Promise(function(e,o){a=function(){var a=C(Oe.mark(function a(){var s;return Oe.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:if((s=Ji(t)).audio.length||s.video.length){a.next=1;break}return Wi.info("batchSubscribe no valid media to sub"),a.abrupt("return",e(i));case 1:return a.next=2,gn(r,s,n);case 2:r.rtcSignaling.batchSubscribe({connectionId:r.id,propertiesJsonStr:JSON.stringify({opusExtendInbandFec:!0,type:Qe.audioSFU?"selective":"mixed"}),supportTemporalLayer:!1,media:s}).then(function(){var r=C(Oe.mark(function r(a){var o,s,c,u,l,d;return Oe.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:if(o=a.detailStatus,"ok"===(s=a.globalStatus)){r.next=1;break}return i.forEach(function(e){e.error=e.error||ze(e.stream,s,e.targetMediaType)}),r.abrupt("return",e(i));case 1:c=Gi(o),r.prev=2,l=Oe.mark(function e(){var r,a,o,s,c,l;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:r=u.value,a=r.id,o=r.msg,s=r.origin,c=n[s.id],l=t.findIndex(function(e){return e.stream.id===s.id}),"ok"===o&&c?(c.id=a,i[l].id=a,i[l].subscription=c):"ok"!==o&&(i[l].error=ze(c.stream,o,i[l].targetMediaType));case 1:case"end":return e.stop()}},e)}),c.s();case 3:if((u=c.n()).done){r.next=5;break}return r.delegateYield(l(),"t0",4);case 4:r.next=3;break;case 5:r.next=7;break;case 6:r.prev=6,d=r.catch(2),c.e(d);case 7:return r.prev=7,c.f(),r.finish(7);case 8:e(i);case 9:case"end":return r.stop()}},r,null,[[2,6,7,8]])}));return function(e){return r.apply(this,arguments)}}()).catch(o);case 3:case"end":return a.stop()}},a)}));return function(){return a.apply(this,arguments)}}()}),r.addTask(a),e.abrupt("return",o);case 1:case"end":return e.stop()}},e)}));return function(t,r){return e.apply(this,arguments)}}(),$i=function(){var e=C(Oe.mark(function e(t,r){var i,n;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=new Promise(function(e,n){i=function(){var i=C(Oe.mark(function i(){var a,o;return Oe.wrap(function(i){for(;;)switch(i.prev=i.next){case 0:return a=t.filter(function(e){return"audio"===e.targetMediaType}).map(function(e){return e.id}),o=t.filter(function(e){return"video"===e.targetMediaType}).map(function(e){return e.id}),i.next=1,Sn(r,t);case 1:r.rtcSignaling.batchUnSubscribe({connectionId:r.id,audio:a,video:o}).then(function(){t.forEach(function(e){e.clear()}),e(void 0)}).catch(n);case 2:case"end":return i.stop()}},i)}));return function(){return i.apply(this,arguments)}}()}),r.addTask(i),e.abrupt("return",n);case 1:case"end":return e.stop()}},e)}));return function(t,r){return e.apply(this,arguments)}}();function Xi(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,i)}return r}function Zi(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Xi(Object(r),!0).forEach(function(t){Ee(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Xi(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function en(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return tn(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?tn(e,t):void 0}}(e))||t){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function tn(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}var rn=t().getLoggerWithPrefix("[rtc-sdp]"),nn={motion:"maintain-framerate",detail:"maintain-resolution",balanced:"balanced"},an=0,on=0,sn=0,cn=new Set,un=function(e,t){var r=Math.log2(e+1);t>2147483647>>r||(on=e,an=(t<<r|2147483648)>>>0)},ln=function(){if(0==an||0==on)return 0;var e=Math.min(on+1,1e4);do{var t=an+(on&sn++);if(0!=t&&!cn.has(t))return t}while(--e>0);return 0},dn=function(t,r){var i,n;if((null===(i=t.rids)||void 0===i?void 0:i.length)>1)return e.isFirefox()&&(r=hn(r)),r.rids=null===(n=t.rids)||void 0===n?void 0:n.map(function(e){return{direction:"recv",id:e.id}}),r.simulcast={dir1:"recv",list1:t.simulcast.list1},r},pn=function(){var e=C(Oe.mark(function e(t){var r,i,n,a,o,s,c;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.connection,i=t.transceiver,n=r.remoteSDP,a=r.pc,e.next=1,a.createOffer();case 1:return o=e.sent,e.next=2,a.setLocalDescription(o);case 2:return r.localSDP=R.parse(o.sdp),s=r.localSDP.media.find(function(e){return e.mid==i.mid}),c=n.media.find(function(e){return e.mid==i.mid}),dn(s,c),e.next=3,a.setRemoteDescription({type:"answer",sdp:R.write(n)});case 3:r.remoteSDP=n;case 4:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}(),fn=function(){var t=C(Oe.mark(function t(r,i){var n,a,o,s,c,u,l,d,p,f,v;return Oe.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return n=r.pc,a=r.idToTransceiverMap,o=r.remoteSDP,s=new MediaStream(i.map(function(e){return e.getMediaStreamTrack()})),c=i.map(function(e){var t={direction:"sendonly"};if(e instanceof Tr){var i=mr(e).encodings;t.sendEncodings=i.filter(function(e){return e.activeForBitrateMap}).map(function(e){return{rid:e.rid||void 0,maxBitrate:1e3*e.maxBitrate,maxFramerate:e.maxFramerate,active:e.activeForRealuse,scaleResolutionDownBy:e.scaleResolutionDownBy}})}var n=r.pc.addTransceiver(e.getMediaStreamTrack()||e.trackMediaType,t);if(e instanceof Tr&&n.sender.setParameters){var o=e.optimizationMode,s=n.sender.getParameters();s.degradationPreference=nn[o]||"balanced";var c=parseFloat(new URLSearchParams(location.search).get("times"))||0;c&&(rn.info("adjustUplinkSDPWhenPublish maxBitrate times",c),s.encodings.forEach(function(e){if(e.maxBitrate){var t=e.maxBitrate;e.maxBitrate=e.maxBitrate*c,rn.info("adjustUplinkSDPWhenPublish update maxBitrate",t,e.maxBitrate,e)}})),rn.info("adjustUplinkSDPWhenPublish setParameters",s),n.sender.setParameters(s)}return a.set(e.getTrackId(),n),n}),t.next=1,n.createOffer();case 1:return u=t.sent,l=R.parse(u.sdp),t.next=2,n.setLocalDescription(u);case 2:r.localSDP=l,o.groups[0].mids=r.localSDP.groups[0].mids,d=en(c),t.prev=3,f=Oe.mark(function t(){var r,i,n,a,s,c,u;return Oe.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:r=p.value,i=o.media.find(function(e){return e.type===r.sender.track.kind}),e.isFirefox()&&"video"===i.type&&(delete i.rids,delete i.simulcast),n=Zi(Zi({},i),{},{ext:Re(i.ext),mid:r.mid}),a=l.media.find(function(e){return e.mid==r.mid}),s=new URLSearchParams(location.search).get("startkbs")||2e3,c=new URLSearchParams(location.search).get("minkbs"),u=new URLSearchParams(location.search).get("maxkbs"),rn.info("startkbs, minkbs, maxkbs",s,c,u),n.fmtp.map(function(e){if(/profile-level-id/i.test(e.config)){var t=e.config.split(";").filter(function(e){return!/x-google-start-bitrate/i.test(e)});s&&Qe.highStartBitrate?t.push("x-google-start-bitrate=".concat(s)):t.push("x-google-start-bitrate=500"),c&&t.push("x-google-min-bitrate=".concat(c)),u&&t.push("x-google-max-bitrate=".concat(u)),e.config=t.join(";")}}),dn(a,n),o.media.push(n);case 1:case"end":return t.stop()}},t)}),d.s();case 4:if((p=d.n()).done){t.next=6;break}return t.delegateYield(f(),"t0",5);case 5:t.next=4;break;case 6:t.next=8;break;case 7:t.prev=7,v=t.catch(3),d.e(v);case 8:return t.prev=8,d.f(),t.finish(8);case 9:return window.remoteSDP=o,t.next=10,n.setRemoteDescription({type:"answer",sdp:R.write(o)});case 10:return r.remoteSDP=o,t.abrupt("return",{localSDP:r.localSDP,stream:s});case 11:case"end":return t.stop()}},t,null,[[3,7,8,9]])}));return function(e,r){return t.apply(this,arguments)}}(),vn=function(){var e=C(Oe.mark(function e(t,r){var i,n,a,o;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return i=t.pc,n=t.remoteSDP,r.map(function(e){return e.transceiver}).forEach(function(e){if(e){i.removeTrack(e.sender);var t=n.media.find(function(t){return t.mid==(null==e?void 0:e.mid)});e.direction="inactive",t.direction="inactive"}}),e.next=1,i.createOffer();case 1:return a=e.sent,o=R.parse(a.sdp),e.next=2,i.setLocalDescription(a);case 2:return t.localSDP=o,n.groups[0].mids=o.groups[0].mids,t.remoteSDP=n,e.next=3,i.setRemoteDescription({type:"answer",sdp:R.write(n)});case 3:case"end":return e.stop()}},e)}));return function(t,r){return e.apply(this,arguments)}}(),mn=function(e,t,r){var i=e.ssrc,n=e.rtxSsrc;!function(e){e.ssrc&&cn.add(e.ssrc),e.rtxSsrc&&cn.add(e.rtxSsrc)}(e),t.ssrcGroups=[],n&&t.ssrcGroups.push({semantics:"FID",ssrcs:"".concat(i," ").concat(n)}),t.ssrcs=[],[i,n].filter(function(e){return void 0!==e}).forEach(function(e){t.ssrcs.push({attribute:"msid",value:"".concat(r," v").concat(i),id:e},{attribute:"cname",value:y(),id:e})})},hn=function(e){var t;return null!=e&&null!==(t=e.ext)&&void 0!==t&&t.some(function(e){return e.uri.includes("rtp-stream-id")})||e.ext.push({value:8,uri:"urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id"},{value:9,uri:"urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id"}),e},gn=function(){var e=C(Oe.mark(function e(t,r,i){var n,a,o,s,c,u,l,d,p,f,v,m,h,g,b,y,k,S,P,w,T,M,O,E,I,A,_,x,C,j,D,L,N,F,U,G,V,B,H,q;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(s=t.pc,c=t.idToTransceiverMap,u=t.remoteSDP,l=t.idToTransceiversMap,d=u.media.find(function(e){return"video"===e.type}),p=u.media.find(function(e){return"audio"===e.type}),f=null===(n=d.ssrcs)||void 0===n?void 0:n.find(function(e){return"msid"===e.attribute}).value.split(" ")[0],null!==(a=r.audio)&&void 0!==a&&a[0])if(m=null===(v=r.audio)||void 0===v?void 0:v[0],h=m.from,Qe.audioSFU){if(l.get(h)){g=en(l.get(h));try{for(g.s();!(b=g.n()).done;)b.value.direction="recvonly"}catch(e){g.e(e)}finally{g.f()}y=u.media.filter(function(e){return"audio"===e.type}),k=en(y);try{for(k.s();!(S=k.n()).done;)S.value.direction="sendonly"}catch(e){k.e(e)}finally{k.f()}}else t.mcuAudioTranceivers=new Array(6).fill(0).map(function(e){return t.pc.addTransceiver("audio",{direction:"recvonly"})}),l.set(h,t.mcuAudioTranceivers);i[h].addTransceivers(l.get(h))}else c.get(h)||c.set(h,t.mcuAudioTranceiver),c.get(h).direction="recvonly",p.direction="sendonly",i[h].addTransceiver(c.get(h));P=en(r.video),e.prev=1,T=Oe.mark(function e(){var t,r,n,a;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=w.value,r=t.from,n=c.get(r)){e.next=1;break}c.set(r,s.addTransceiver("video",{direction:"recvonly"})),e.next=5;break;case 1:if("inactive"===n.direction){e.next=4;break}return n.direction="inactive",e.next=2,s.createOffer();case 2:return a=e.sent,e.next=3,s.setLocalDescription(a);case 3:return u.media.find(function(e){return e.mid==n.mid}).direction="inactive",e.next=4,s.setRemoteDescription({type:"answer",sdp:R.write(u)});case 4:c.get(r).direction="recvonly";case 5:i[r].addTransceiver(c.get(r));case 6:case"end":return e.stop()}},e)}),P.s();case 2:if((w=P.n()).done){e.next=4;break}return e.delegateYield(T(),"t0",3);case 3:e.next=2;break;case 4:e.next=6;break;case 5:e.prev=5,H=e.catch(1),P.e(H);case 6:return e.prev=6,P.f(),e.finish(6);case 7:return e.next=8,s.createOffer();case 8:return M=e.sent,O=R.parse(M.sdp),u.groups[0].mids=O.groups[0].mids,e.next=9,s.setLocalDescription(M);case 9:t.localSDP=O,Qe.audioSFU&&r.audio[0]&&(E=r.audio[0],I=E.ssrcGroup,A=E.from,l.get(A).forEach(function(e,t){var r,i=null===(r=I[t])||void 0===r?void 0:r.ssrc,n=u.media.find(function(t){var r=t.mid,i=t.type;return r==e.mid&&"audio"===i});n||(n=Zi(Zi({},p),{},{mid:e.mid}),u.media.push(n)),n.ssrcs=wn(i,f),n.direction="sendonly"})),_=en(r.video),e.prev=10,C=Oe.mark(function e(){var t,r,n,a,o;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:t=x.value,r=t.from,n=t.subSsrcGroup,a=c.get(r),(o=u.media.find(function(e){var t=e.mid,r=e.type;return t==a.mid&&"video"===r}))||((o=Zi({},d)).mid=a.mid,u.media.push(o)),o.direction="sendonly",i[r].ssrc=null==n?void 0:n.ssrc,mn(n,o,f);case 1:case"end":return e.stop()}},e)}),_.s();case 11:if((x=_.n()).done){e.next=13;break}return e.delegateYield(C(),"t1",12);case 12:e.next=11;break;case 13:e.next=15;break;case 14:e.prev=14,q=e.catch(10),_.e(q);case 15:return e.prev=15,_.f(),e.finish(15);case 16:return rn.info("sub remoteSDP before remove high profile",R.write(u)),yn(u),t.remoteSDP=u,j=R.write(u),rn.info("sub remoteSDP after remove high profile",j),e.next=17,s.setRemoteDescription({type:"answer",sdp:j});case 17:null!==(o=r.audio)&&void 0!==o&&o[0]&&(L=null===(D=r.audio)||void 0===D?void 0:D[0],N=L.from,Qe.audioSFU||i[N].addTransceiver(c.get(N))),F=en(r.video);try{for(F.s();!(U=F.n()).done;)V=U.value,B=V.from,null===(G=i[B])||void 0===G||G.updateTransceiverListeners()}catch(e){F.e(e)}finally{F.f()}case 18:case"end":return e.stop()}},e,null,[[1,5,6,7],[10,14,15,16]])}));return function(t,r,i){return e.apply(this,arguments)}}(),bn=function(e){kn(e,function(e){return!/profile-level-id=42e01f/i.test(e)&&/profile-level-id/i.test(e)})},yn=function(e){kn(e,function(e){return/profile-level-id=64/i.test(e)&&/profile-level-id/i.test(e)})},kn=function(e,t){e.media.forEach(function(e){if("video"===e.type){var r=e.rtp.filter(function(e){return"H264"===e.codec}).filter(function(r){return e.fmtp.find(function(e){return e.payload===r.payload&&t((null==e?void 0:e.config)||"")})}),i=new Map;e.fmtp.forEach(function(e){/apt=\d+/i.test(e.config)&&i.set(e.payload,e.config.split("=")[1])}),rn.info("rtxPayloadMap",Array.from(i.entries())),e.rtp=e.rtp.filter(function(e){return!r.find(function(t){return t.payload===e.payload||"".concat(t.payload)===i.get(e.payload)})}),e.fmtp=e.fmtp.filter(function(e){return!r.find(function(t){return t.payload===e.payload||"".concat(t.payload)===i.get(e.payload)})}),e.payloads=e.payloads.split(" ").map(function(e){return e.trim()}).filter(function(e){return!r.find(function(t){return"".concat(t.payload)===e||"".concat(t.payload)===i.get(parseInt(e))})}).join(" "),e.rtcpFb=e.rtcpFb.filter(function(e){return!r.find(function(t){return parseInt("".concat(t.payload))===parseInt("".concat(e.payload))||"".concat(t.payload)===i.get(parseInt("".concat(e.payload)))})})}})},Sn=function(){var e=C(Oe.mark(function e(t,r){var i,n,a,o,s,c,u,l,d,p,f,v;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:i=t.pc,n=t.remoteSDP,a=[],o=en(r);try{for(o.s();!(s=o.n()).done;)c=s.value,u=c.transceiver,l=c.transceivers,u?a.push(u):l&&a.push.apply(a,Re(l))}catch(e){o.e(e)}finally{o.f()}return a.forEach(function(e){e.direction="inactive"}),e.next=1,i.createOffer();case 1:return d=e.sent,e.next=2,i.setLocalDescription(d);case 2:t.localSDP=R.parse(d.sdp),p=Oe.mark(function e(){var t;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:t=v[f],n.media.find(function(e){return e.mid==t.mid}).direction="inactive";case 1:case"end":return e.stop()}},e)}),f=0,v=a;case 3:if(!(f<v.length)){e.next=5;break}return e.delegateYield(p(),"t0",4);case 4:f++,e.next=3;break;case 5:return t.remoteSDP=n,e.next=6,i.setRemoteDescription({type:"answer",sdp:R.write(n)});case 6:case"end":return e.stop()}},e)}));return function(t,r){return e.apply(this,arguments)}}(),Pn=function(e,t){var r=t.media;return e.media.forEach(function(e){var t=e.mid,i=e.ssrcGroups,n=void 0===i?[]:i,a=e.ssrcs,o=void 0===a?[]:a,s=e.type,c=r.findIndex(function(e){return e.mid==t&&e.type===s});c>-1&&(r[c]=Zi(Zi({},r[c]),{},{ssrcGroups:n,ssrcs:o}))}),t},wn=function(e,t){return[{attribute:"msid",value:"".concat(t," v").concat(e),id:e},{attribute:"cname",value:y(),id:e}]},Tn=function(t,r,i){var n=r.direction,a=r.remoteSDP;rn.info("origin answer for createpc",r.id,t);var o=R.parse(t);o.media.forEach(function(e){e.candidates.forEach(function(e){e.generation=0,e["network-cost"]=w(e.ip)?10:1e3})}),i&&(o=function(e,t){var r=t.media.find(function(e){return"audio"===e.type}),i=t.media.find(function(e){return"video"===e.type});return e.media.forEach(function(t,n){var a=t.mid,o=t.ssrcGroups,s=void 0===o?[]:o,c=t.ssrcs,u=void 0===c?[]:c,l=t.rids,d=void 0===l?[]:l;"audio"===t.type?e.media[n]=Zi(Zi({},r),{},{mid:a,ssrcs:u}):"video"===t.type&&(e.media[n]=Zi(Zi({},i),{},{mid:a,ssrcGroups:s,ssrcs:u}),d.length&&(e.media[n].rids=d,e.media[n].simulcast={dir1:"recv",list1:d.map(function(e){return"~".concat(e.id)}).join(";")}))}),e}(a,o));var s=o.media.find(function(e){return"video"===e.type});if("uplink"===n&&e.isFirefox()&&Qe.simulcast&&(s.ext=s.ext.filter(function(e){return!e.uri.includes("rtp-stream-id")})),!s.ssrcs&&"downlink"===n){var c=ln(),u=o.msidSemantic.token;s.ssrcs=wn(c,u)}Qe.preferH264CbProfile&&bn(o),r.remoteSDP=o;var l=R.write(o);return rn.info("final answer for createpc",r.id,l),l},Mn=function(t,r){var i=r.direction,n=R.parse(t);if(yn(n),Qe.preferH264CbProfile&&bn(n),Qe.disableTransportCC&&"uplink"===i&&function(e){e.media.forEach(function(e){e.ext=e.ext.filter(function(e){return!e.uri.includes("transport-wide-cc")}),e.rtcpFb=e.rtcpFb.filter(function(e){return"transport-cc"!==e.type})})}(n),"downlink"===i&&!Qe.downlinkForbidHighProfile){var a=[];n.media.find(function(e){return"video"===e.type}).fmtp.forEach(function(e){var t=e.config;t.includes("profile-level-id")&&a.push(t)}),r.subSdpFmtpLines=a}if(e.isFirefox()&&(n=En(n)),"uplink"===i&&e.isFirefox()&&Qe.simulcast){var o=n.media.find(function(e){return"video"===e.type});hn(o)}return r.localSDP=n,n},On=function(e){var t=e.localSDP,r=e.remoteSDP,i=e.sessionManager,n=e.mcuAudioTranceiver,a=e.pc,o=e.idToTransceiverMap,s=e.idToTransceiversMap,c=e.direction,u=t.media.slice(2),l=Re(i.sessions.values());if("downlink"===c){var d=r.media.slice(2),p=l.filter(function(e){return e instanceof Yi}),f=p.find(function(e){var t;return"admin"===(null===(t=e.stream)||void 0===t||null===(t=t.info)||void 0===t?void 0:t.owner)});f&&!Qe.audioSFU&&(o.set(f.id,n),f.addTransceiver(n));var v=[];u.forEach(function(e){var t={direction:e.direction},r=d.find(function(t){return t.type===e.type&&e.mid==t.mid}),i=p.find(function(e){return(null==e?void 0:e.ssrc)===(null==r?void 0:r.ssrcs[0].id)}),n=a.addTransceiver(e.type,t);"recvonly"===e.direction&&("video"===e.type&&i?(o.set(i.stream.id,n),i.addTransceiver(n)):"audio"===e.type&&v.push(n))}),v.length&&f&&(e.mcuAudioTranceivers=v,s.set(f.id,v),f.addTransceivers(v))}else{var m=l.filter(function(e){return e instanceof jn});u.forEach(function(e){var t={direction:e.direction},r=m.find(function(t){return t.mid==e.mid});if("sendonly"===e.direction&&r){var i=r.tracks[0],n=(null==i?void 0:i.getMediaStreamTrack())||(null==i?void 0:i.trackMediaType);if(i instanceof Tr){var s=mr(i).encodings;t.sendEncodings=s.filter(function(e){return e.activeForBitrateMap}).map(function(e){return{rid:e.rid||void 0,maxBitrate:1e3*e.maxBitrate,maxFramerate:e.maxFramerate,active:e.activeForRealuse,scaleResolutionDownBy:e.scaleResolutionDownBy}})}var c=a.addTransceiver(n,t);o.set(i.getTrackId(),c),r.addTransceiver(c)}else a.addTransceiver(e.type,t)})}},En=function(e){return function(e,t){if(e){var r,i=e.fmtp,n=e.payloads,a=e.rtp,o=e.rtcpFb,s=[],c={},u=en(i);try{for(u.s();!(r=u.n()).done;){var l=r.value,d=l.config,p=l.payload,f=d.split(";");c[p]={};var v,m=en(f);try{for(m.s();!(v=m.n()).done;){var h=Kt(v.value.split("="),2),g=h[0],b=h[1];c[p][g]=b}}catch(e){m.e(e)}finally{m.f()}}}catch(e){u.e(e)}finally{u.f()}for(var y in c){var k=c[y];(t(k)||s.includes(+k.apt))&&s.push(parseInt(y))}if(s.length){for(var S=i.length-1;S>=0;S--){var P=i[S].payload;s.includes(P)&&i.splice(S,1)}for(var w=a.length-1;w>=0;w--)s.includes(a[w].payload)&&a.splice(w,1);for(var T=o.length-1;T>=0;T--)s.includes(parseInt("".concat(o[T].payload)))&&o.splice(T,1);e.payloads=n.split(" ").map(Number).filter(function(e){return!s.includes(e)}).join(" ")}}}(e.media.find(function(e){return"video"===e.type}),function(e){return e["profile-level-id"]&&!e["packetization-mode"]}),e};function In(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,i)}return r}function An(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?In(Object(r),!0).forEach(function(t){Ee(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):In(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function Rn(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return _n(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_n(e,t):void 0}}(e))||t){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function _n(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function xn(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(xn=function(){return!!e})()}var Cn=t().getLoggerWithPrefix("[publication]"),jn=function(){function e(t){var r,i,n,a;j(this,e),i=this,n=G(n=e),r=U(i,xn()?Reflect.construct(n,[],G(i).constructor):n.apply(i,a)),Object.defineProperty(r,"uid",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"connection",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"tracks",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"rtcSignaling",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"transceiver",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"metricsMap",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"audioStatsMap",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"videoStatsMap",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"state",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"reporter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"logger",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"mid",{enumerable:!0,configurable:!0,writable:!0,value:""}),Object.defineProperty(r,"encodings",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"rtcStreamMuted",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"feedbackIndex",{enumerable:!0,configurable:!0,writable:!0,value:-1}),Object.defineProperty(r,"monitor",{enumerable:!0,configurable:!0,writable:!0,value:void 0});var o=t.connection,s=t.uid,c=t.tracks,u=void 0===c?[]:c;return r.tracks=u,r.connection=o,r.rtcSignaling=o.rtcSignaling,r.uid=s,r.reporter=o.reporter,r.logger=r.reporter.getLoggerWithPrefix("[rtp-publication]"),r.state=Se.Idle,r.videoStatsMap=new Map,r.audioStatsMap=new Map,r.metricsMap=new Map,r.handleTracEvent=r.handleTracEvent.bind(r),r.applyOptions=r.applyOptions.bind(r),u.forEach(function(e){e.on(Ue,r.handleTracEvent)}),u[0]instanceof Tr&&(r.encodings=mr(u[0]).encodings),r.state=Se.Processing,r.connection.once("ended",function(){r.clear()}),r}return B(e,c),F(e,[{key:"stop",value:function(){var e=this;return this.state!==Se.Processing?Promise.resolve():Nn([this],{connection:this.connection}).catch(function(t){e.clear(),e.logger.warn("negative ack for unpublish, ".concat(g(t)))})}},{key:"mute",value:(r=C(Oe.mark(function e(){var t,r,i;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.tracks.length&&this.state===Se.Processing&&"muted"!==this.rtcStreamMuted){e.next=1;break}return this.logger.info("ignore mute for tracks=".concat(this.tracks.length," state=").concat(this.state," curRtcStreamMuted=").concat(this.rtcStreamMuted)),e.abrupt("return");case 1:return t=this.tracks[0].trackMediaType,this.reporter.trace.localControl(t,!0,this.id),this.rtcStreamMuted="muted",e.prev=2,e.next=3,this.rtcSignaling.streamControl({streamId:this.id,operation:"pause",data:t});case 3:return r=e.sent,e.abrupt("return",r);case 4:e.prev=4,i=e.catch(2),this.logger.error("mute error",this.id,i),this.rtcStreamMuted="unmuted";case 5:case"end":return e.stop()}},e,this,[[2,4]])})),function(){return r.apply(this,arguments)})},{key:"unmute",value:(t=C(Oe.mark(function e(){var t,r,i;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.tracks.length&&this.state===Se.Processing&&"unmuted"!==this.rtcStreamMuted){e.next=1;break}return this.logger.info("ignore unmute for tracks=".concat(this.tracks.length," state=").concat(this.state," curRtcStreamMuted=").concat(this.rtcStreamMuted)),e.abrupt("return");case 1:return t=this.tracks[0].trackMediaType,this.reporter.trace.localControl(t,!1,this.id),this.rtcStreamMuted="unmuted",e.prev=2,e.next=3,this.rtcSignaling.streamControl({streamId:this.id,operation:"play",data:t});case 3:return r=e.sent,e.abrupt("return",r);case 4:e.prev=4,i=e.catch(2),this.logger.error("unmute error",this.id,i),this.rtcStreamMuted="muted";case 5:case"end":return e.stop()}},e,this,[[2,4]])})),function(){return t.apply(this,arguments)})},{key:"initInner",value:function(e){this.id=e;var t=this.tracks[0],r=this.connection.idToTransceiverMap.get(t.getTrackId());this.addTransceiver(r),"video"===t.trackMediaType&&t.config.mirror&&this.handleMirror(t.config.mirror)}},{key:"handleMirror",value:function(e){return this.rtcSignaling.setStreamProperties({streamId:this.id,propertiesJsonStr:JSON.stringify({mirror:!!e})})}},{key:"handleRepublish",value:function(e){var t=this,r=this.connection,i=this.transceiver,n=e.getMediaStreamTrack().getSettings(),a=n.width,o=n.height,s=vr(a,o);this.rtcSignaling.streamControl({streamId:this.id,operation:"updateResolution",highestResolutionLevel:s});var c=function(e,t){var r=lr(e,t),i=function(i){var n=Kt(dr(e,t,i,r),2);n[0];var a=1/(n[1]/t);return Math.max(a,1)};return{ld:i(zt.LD),sd:i(zt.SD),fhd:i(r)}}(a,o);r.addTask(C(Oe.mark(function e(){var r;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t.logger.info("scales",c),(r=i.sender.getParameters()).encodings.forEach(function(e){e.scaleResolutionDownBy=c[e.rid]}),t.logger.info("handleRepublish setParameters",r),e.abrupt("return",i.sender.setParameters(r).then(function(){console.log(i.sender.getParameters().encodings)}));case 1:case"end":return e.stop()}},e)})))}},{key:"handleTracEvent",value:function(e,t){var r,i=this,n={replace:function(){return i.replaceTrack(t.getMediaStreamTrack())},mute:function(){return i.mute()},unmute:function(){return i.unmute()},republish:function(){Qe.republish?i.handleRepublish(t):i.stop().then(function(){i.connection.sessionManager.serviceManager.client.publish([t])})},stop:function(){return i.stop()},optimizationMode:function(){return i.updateOptionzationMode()},mirror:function(){return i.handleMirror(t)}};return null===(r=n[e])||void 0===r?void 0:r.call(n)}},{key:"clear",value:function(){var e=this;this.state!==Se.End&&(this.monitor&&(this.monitor.stop(),this.monitor.removeAllListeners(),this.monitor=null),this.tracks.forEach(function(t){t.off(Ue,e.handleTracEvent)}),this.tracks=[],this.metricsMap.clear(),this.audioStatsMap.clear(),this.videoStatsMap.clear(),this.state=Se.End,this.emit("ended"))}},{key:"applyOptions",value:function(e){var t=this,r=e[0],i=r.index,n=r.bitrate;if(this.logger.debug("applyOptions",e),!(i<this.feedbackIndex||this.state!==Se.Processing)){this.feedbackIndex=i;var a=this.transceiver;this.connection.addTask(function(){return new Promise(function(r){var i,o=0===n,s=!1,c=a.sender.getParameters(),u=e.map(function(e){return e.rid}),l=Rn(c.encodings);try{for(l.s();!(i=l.n()).done;){var d,p=i.value,f=Rn(e);try{for(f.s();!(d=f.n()).done;){d.value.rid!==p.rid&&p.rid||p.active||o||(p.active=!0,s=!0)}}catch(e){f.e(e)}finally{f.f()}!p.active||u.includes(p.rid)&&!o||(p.active=!1,s=!0)}}catch(e){l.e(e)}finally{l.f()}return t.logger.info("encodings",c.encodings),s&&t.logger.info("applyOptions setParameters",c),a.sender.setParameters(c).then(function(){return pn(t).then(r)})})})}}},{key:"updateOptionzationMode",value:function(){var e,t=this,r=this.tracks,i=this.transceiver,n=this.connection;if(r[0]instanceof Tr&&null!=i&&null!==(e=i.sender)&&void 0!==e&&e.setParameters){var a=r[0].optimizationMode;n.addTask(function(){var e=i.sender.getParameters();return e.degradationPreference=nn[a]||"balanced",t.logger.info("updateOptionzationMode setParameters",e),i.sender.setParameters(e),pn(t)})}}},{key:"addTransceiver",value:function(e){this.monitor&&(this.monitor.stop(),this.monitor.removeAllListeners(),this.monitor=null),this.metricsMap.clear(),this.audioStatsMap.clear(),this.videoStatsMap.clear(),this.transceiver=e,this.mid||(this.mid=null==e?void 0:e.mid),this.state=Se.Processing,this.feedbackIndex=-1,this.monitor=new Ci(this),this.onMonitor()}},{key:"replaceTrack",value:function(e){var t;if(this.transceiver){null===(t=this.transceiver.sender.track)||void 0===t||t.stop();try{this.transceiver.sender.replaceTrack(e)}catch(e){this.logger.error("_DEV_TODO_","sender replaceTrack error",e)}}}},{key:"handleMetrics",value:function(e,t){var r=e.audioMetrics,i=e.videoMetrics;if(r){var n,a=(null===(n=this.metricsMap.get(t))||void 0===n?void 0:n.audioMetrics)||{},o=ft(r,a),s=mt(r.bytesSent,a.bytesSent),c={codec:this.connection.peerConnectionStats.audioCodec||r.codec,sendBytes:r.bytesSent,audioLevel:Math.max(r.audioLevel,0),sendPackets:r.packetsSent,sendPacketsLost:r.packetsLost,sampleRate:r.sampleRate,channelCount:r.channels,rtt:this.connection.peerConnectionStats.roundTripTime||r.roundTripTime,timestamp:r.timestamp,sendBitrate:8*s/o};this.audioStatsMap.set(t,c)}else if(i){var u,l,d=((null===(u=this.transceiver)||void 0===u||null===(u=u.sender)||void 0===u?void 0:u.getParameters())||{}).encodings,p=void 0===d?[]:d,f=(null===(l=this.metricsMap.get(t))||void 0===l?void 0:l.videoMetrics)||{},v=ft(i,f),m=mt(i.totalBytesSent,f.totalBytesSent),h={codec:this.connection.peerConnectionStats.videoCodec||i.codec,sendFrameRate:Math.round(i.sendFramesPerSecond),captureFrameRate:i.captureFramesPerSecond,encodeFrameRate:i.encodeFramesPerSecond,qpSum:i.totalQpSum||0,targetBitrate:i.targetBitrate,encodeLayers:p.length,sendLayers:p.filter(function(e){return e.active}).length,outgingBitrate:i.availableOutgoingBitrate,sendResolution:{width:i.maxSendFrameWidth,height:i.maxSendFrameHeight},captureResolution:{width:i.captureFrameWidth,height:i.captureFrameHeight},sendBytes:i.totalBytesSent,sendPackets:i.totalPacketsSent,sendPacketsLost:i.totalPacketsLost,timestamp:i.timestamp,rtt:this.connection.peerConnectionStats.roundTripTime||i.roundTripTime,sendBitrate:8*m/v};this.videoStatsMap.set(t,h)}this.metricsMap.set(t,e)}},{key:"getMetrics",value:function(e){var t,r=this;return null===(t=this.connection)||void 0===t?void 0:t.getStats().then(function(){var t;return null===(t=r.monitor)||void 0===t?void 0:t.getStats().then(function(t){return r.handleMetrics(t,e)})})}},{key:"onMonitor",value:function(){var e=this;this.monitor.on("audio-send-stream",function(t){e.reporter.metric.audioSendStream(An({sessionId:e.id},t))}),this.monitor.on("video-send-stream",function(t){e.reporter.metric.videoSendStream(An({sessionId:e.id},t))}),this.monitor.on("bwe",function(t){e.reporter.metric.bwe(An({sessionId:e.id},t))})}}]);var t,r}(),Dn=function(){var e=C(Oe.mark(function e(t,r){var i,n,a,o,s,c=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return i=c.length>2&&void 0!==c[2]?c[2]:["common"],n={},e.next=1,fn(r,t);case 1:return a=e.sent,o=a.localSDP,s=a.stream,t.forEach(function(e){var t=e.getTrackId(),a=o.media.find(function(e){return e.mid==r.idToTransceiverMap.get(t).mid});if("audio"===e.trackMediaType)n.audio=[{source:"mic",autoMix:i,trackId:t,msid:s.id,uplinkSsrcGroup:[{ssrc:Number(a.ssrcs[0].id)}]}];else if(e instanceof Tr){var c;n.video=n.video||[];var u=a.ssrcGroups,l=void 0===u?[]:u,d=mr(e),p=d.encodings,f=d.resolutionLevel;p.length>1&&(l=p.map(function(){return{semantics:"FID",ssrcs:"".concat(ln()," ").concat(ln())}}));var v=l.filter(function(e){return"FID"===e.semantics}).map(function(e){return{ssrc:Number(e.ssrcs.split(" ")[0]),rtxSsrc:Number(e.ssrcs.split(" ")[1])}}),m=p[p.length-1],h={trackId:e.getTrackId(),forwardOnly:e.source===me.SCREENCAST,msid:s.id,mid:"".concat(a.mid),highestResolutionLevel:f,uplinkSsrcGroup:v,source:e.source||me.CAMERA,streamParameters:{ssrc:null==v||null===(c=v[0])||void 0===c?void 0:c.ssrc,bitrate:"".concat(m.maxBitrate),resolution:{width:m.targetWidth,height:m.targetHeight},framerate:m.maxFramerate},ssrcParameters:v.map(function(e,t){var r;return{ssrc:e.ssrc,active:p[t].activeForBitrateMap,tlayer:1,bitrate:p[t].maxBitrate,rid:(null===(r=p[t])||void 0===r?void 0:r.rid)||void 0,maxBitrate:p[t].maxBitrate,minBitrate:p[t].minBitrate,framerate:p[t].maxFramerate,resolution:{width:p[t].targetWidth,height:p[t].targetHeight}}})};n.video.push(h)}}),e.abrupt("return",n);case 2:case"end":return e.stop()}},e)}));return function(t,r){return e.apply(this,arguments)}}(),Ln=function(e){var t=e.tracks,r=e.connection,i=e.labels,n=e.existedPublications,a=void 0===n?[]:n,o=e.mixedLocalAudioTrack,s={videoPubResultArr:[]},c=[];t.forEach(function(t){var r;if("audio"!==t.trackMediaType||t.source!==ve.MIC&&t.source!==ve.SCREENCAST)s.videoPubResultArr.push({publication:new jn(An(An({},e),{},{tracks:[t]})),track:t});else{var i=a.find(function(e){var t,r,i;return"audio"===(null===(t=e.tracks)||void 0===t?void 0:t[0].trackMediaType)&&((null===(r=e.tracks)||void 0===r?void 0:r[0].source)===ve.MIC||(null===(i=e.tracks)||void 0===i?void 0:i[0].source)===ve.SCREENCAST)}),n=c.find(function(e){var t,r,i;return"audio"===(null===(t=e.tracks)||void 0===t?void 0:t[0].trackMediaType)&&((null===(r=e.tracks)||void 0===r?void 0:r[0].source)===ve.MIC||(null===(i=e.tracks)||void 0===i?void 0:i[0].source)===ve.SCREENCAST)});i?(i.tracks.push(t),r=i):n?(n.tracks.push(t),r=n):r=new jn(An(An({},e),{},{tracks:[o]})),s.audioPubResult={publication:r,track:t}}});var u=t.filter(function(e){return"audio"===e.trackMediaType&&(e.source===ve.MIC||e.source===ve.SCREENCAST)});u.forEach(function(e){(null==e?void 0:e.source)===ve.MIC?o.setMicAudioTrack(e):o.setScreenAudioTrack(e)});var l=[],d=t.filter(function(e){return!("audio"===e.trackMediaType&&(e.source===ve.MIC||e.source===ve.SCREENCAST))});if(l.push.apply(l,Re(d)),u.length&&(null==o||o.updateMixedAudioTrackToPub(),o.isPublished()||l.push(o)),l.length){var p,f=new Promise(function(e,t){p=function(){var n=C(Oe.mark(function n(){var a,c;return Oe.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=1,Dn(l,r,i);case 1:return a=n.sent,c={connectionId:r.id,media:a,simulcast:Xt(l.find(function(e){return e.source===me.CAMERA})),simulcastVersion:"1.0",clientType:"web",supportTemporalLayer:!1,type:"webrtc"},n.abrupt("return",r.rtcSignaling.batchPublish(c).then(function(){var t=C(Oe.mark(function t(r){var i,n,a,c,l,d;return Oe.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(i=r.detailStatus,"ok"===(n=r.globalStatus)){t.next=1;break}return s.videoPubResultArr.forEach(function(e){e.error=$e(e.track,n)}),s.audioPubResult&&(s.audioPubResult.error=$e(s.audioPubResult.track,n)),t.abrupt("return",e(s));case 1:a=Rn(i),t.prev=2,l=Oe.mark(function e(){var t,r,i,n,a,l,d;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:t=c.value,r=t.id,i=t.origin,n=t.msg,o.getTrackId()===i.id?s.audioPubResult&&(a=s.audioPubResult.publication,"ok"===n&&a?(a.initInner(r),o.setPublication(a),u.forEach(function(e){(null==e?void 0:e.source)===ve.MIC&&e.muted&&e.emit(Ue,"mute")})):"ok"!==n&&(s.audioPubResult.error=$e(s.audioPubResult.track,n))):(l=s.videoPubResultArr.find(function(e){return e.track.getTrackId()===i.id}),d=(l||{}).publication,"ok"===n&&d?d.initInner(r):"ok"!==n&&(l.error=$e(l.track,n)));case 1:case"end":return e.stop()}},e)}),a.s();case 3:if((c=a.n()).done){t.next=5;break}return t.delegateYield(l(),"t0",4);case 4:t.next=3;break;case 5:t.next=7;break;case 6:t.prev=6,d=t.catch(2),a.e(d);case 7:return t.prev=7,a.f(),t.finish(7);case 8:e(s);case 9:case"end":return t.stop()}},t,null,[[2,6,7,8]])}));return function(e){return t.apply(this,arguments)}}()).catch(function(e){Cn.info("batchPublishStart error",e),t(e)}));case 2:case"end":return n.stop()}},n)}));return function(){return n.apply(this,arguments)}}()});return r.addTask(p),f}return Promise.resolve({videoPubResultArr:[],audioPubResult:void 0})},Nn=function(){var e=C(Oe.mark(function e(t,r){var i,n;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=new Promise(function(e,n){i=function(){var i=C(Oe.mark(function i(){var a,o;return Oe.wrap(function(i){for(;;)switch(i.prev=i.next){case 0:return a=t.filter(function(e){var t;return"audio"===(null===(t=e.tracks)||void 0===t||null===(t=t[0])||void 0===t?void 0:t.trackMediaType)}).map(function(e){return e.id}),o=t.filter(function(e){var t;return"video"===(null===(t=e.tracks)||void 0===t||null===(t=t[0])||void 0===t?void 0:t.trackMediaType)}).map(function(e){return e.id}),i.next=1,vn(r.connection,t);case 1:r.connection.rtcSignaling.batchUnPublish({connectionId:r.connection.id,audio:a,video:o}).then(function(){t.forEach(function(e){e.clear()}),e(void 0)}).catch(n);case 2:case"end":return i.stop()}},i)}));return function(){return i.apply(this,arguments)}}()}),r.connection.addTask(i),e.abrupt("return",n);case 1:case"end":return e.stop()}},e)}));return function(t,r){return e.apply(this,arguments)}}();function Fn(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Fn=function(){return!!e})()}var Un={audioCodec:"",videoCodec:"",roundTripTime:-1,availableOutgoingBitrate:-1},Gn=function(){function t(e){var r,i,n,a;return j(this,t),i=this,n=G(n=t),r=U(i,Fn()?Reflect.construct(n,[],G(i).constructor):n.apply(i,a)),Object.defineProperty(r,"connectionMetrics",{enumerable:!0,configurable:!0,writable:!0,value:Object.assign({},Un)}),Object.defineProperty(r,"pc",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),r.pc=e.pc,r}return B(t,Mi),F(t,[{key:"extractMetrics",value:function(t){var r=Object.assign({},this.connectionMetrics),i="";return t.forEach(function(t){var n;if(!t.isRemote)if(/local-candidate/i.test(t.type)&&t.id===i)e.networkType=(null!==(n=t.networkType)&&void 0!==n?n:e.networkType).replace("vpn","unknown");else if(/candidate-pair/i.test(t.type)&&"succeeded"===t.state)i=t.localCandidateId,e.isFirefox()||(r.roundTripTime=1e3*(t.currentRoundTripTime||t.totalRoundTripTime/t.responsesReceived)),void 0!==t.availableOutgoingBitrate&&(r.availableOutgoingBitrate=t.availableOutgoingBitrate);else if(/codec/i.test(t.type)){var a,o;null!==(a=t.mimeType)&&void 0!==a&&a.includes("audio")?r.audioCodec=t.mimeType.replace("audio/",""):null!==(o=t.mimeType)&&void 0!==o&&o.includes("video")&&(r.videoCodec=t.mimeType.replace("video/",""),r.sdpFmtpLine=t.sdpFmtpLine)}}),this.connectionMetrics=Object.assign({},r),this.connectionMetrics}},{key:"makeReport",value:function(){var e=this;this.getStats().then(function(t){e.emit("metrics",t)})}},{key:"getStats",value:function(){var e=this;if(!this.pc)return Promise.resolve({});if(!this.pc.getStats)throw new n(a.BrowserNotSupported,"getStats is not supported");return this.pc.getStats(null).then(function(t){return e.extractMetrics(t)})}}])}();function Vn(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return Bn(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Bn(e,t):void 0}}(e))||t){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Bn(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function Hn(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Hn=function(){return!!e})()}var qn=function(){function t(e){var r,i,n,a,o,s;j(this,t),i=this,n=G(n=t),r=U(i,Hn()?Reflect.construct(n,[],G(i).constructor):n.apply(i,a)),Object.defineProperty(r,"pc",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"rtcSignaling",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"state",{enumerable:!0,configurable:!0,writable:!0,value:Pe.New}),Object.defineProperty(r,"processingExchangeSdp",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"monitor",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"peerConnectionTimer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"createPeerConnectionPromise",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"peerConnectionStats",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"reporter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"logger",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"createPeerConnectionTimer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"mcuAudioStream",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"idToTransceiverMap",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"mcuAudioTranceiver",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"idToTransceiversMap",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"mcuAudioTranceivers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"localSDP",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"remoteSDP",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"subSdpFmtpLines",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"sessionManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"prevId",{enumerable:!0,configurable:!0,writable:!0,value:""}),Object.defineProperty(r,"offerSDP",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"clientFailoverTimer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"audioSfuSsrcs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"enquenTask",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"direction",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"startSinglePC",{enumerable:!0,configurable:!0,writable:!0,value:(o=C(Oe.mark(function e(){var t,i=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=i.length>0&&void 0!==i[0]&&i[0],"uplink"===r.direction?(r.pc.addTransceiver("audio",{direction:"sendonly"}),r.pc.addTransceiver("video",{direction:"sendonly"})):(r.mcuAudioStream=null,r.mcuAudioTranceiver=r.pc.addTransceiver("audio",{direction:"recvonly"}),r.pc.addTransceiver("video",{direction:"recvonly"})),t&&On(r),e.next=1,r.exchangeSdpForCreatePc(t);case 1:r.state=Pe.Idle,r.enquenTask.start();case 2:case"end":return e.stop()}},e)})),function(){return o.apply(this,arguments)})}),Object.defineProperty(r,"onIceGatheringStateChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=e.target.iceGatheringState;r.logger.info("connectionId:".concat(r.id," ice gathering state: ").concat(t))}}),Object.defineProperty(r,"exchangeSdpForCreatePc",{enumerable:!0,configurable:!0,writable:!0,value:(s=C(Oe.mark(function e(){var t,i,n,a,o,s,c,u,l,d=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=d.length>0&&void 0!==d[0]&&d[0],r.processingExchangeSdp=!0,e.prev=1,e.next=2,r.pc.createOffer();case 2:return i=e.sent,r.logger.info("connectionId:".concat(r.id," origin offer"),i),t&&(i.sdp=R.write(Pn(r.localSDP,R.parse(i.sdp)))),n=Mn(i.sdp,r),r.offerSDP=n,i={type:"offer",sdp:R.write(n)},e.next=3,r.pc.setLocalDescription(i);case 3:return r.logger.info("connectionId:".concat(r.id," set local sdp success")),a={direction:"downlink"!==r.direction?"in":"out",sdpOffer:i.sdp,connectionId:r.id,isFailover:t,optionsJsonStr:JSON.stringify({supportCVO:1})},t&&((o=R.parse(i.sdp)).media=o.media.slice(0,2),o.groups=[{mids:"0 1",type:"BUNDLE"}],a.sdpOffer=R.write(o)),s=function(){var e=C(Oe.mark(function e(){var t,i,n,o;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,"connected"===(null===(t=r.sessionManager)||void 0===t||null===(t=t.serviceManager)||void 0===t||null===(t=t.client)||void 0===t?void 0:t.connectionState)){e.next=1;break}throw new Error("signaling disconnected");case 1:if(a.isFailover||!r.prevId){e.next=3;break}return e.next=2,r.stopSinglePC(!0);case 2:r.id="".concat(r.direction,"_").concat(y()),a.connectionId=r.id;case 3:return r.prevId=r.id,e.next=4,r.rtcSignaling.createPeerConnection(a);case 4:return i=e.sent,n=i.sdpAnswer,r.logger.info("connectionId:".concat(r.id," receive answer success")),e.abrupt("return",n);case 5:throw e.prev=5,o=e.catch(0),r.logger.error("connectionId:".concat(r.id," signal createpc failed: ").concat(o)),o;case 6:case"end":return e.stop()}},e,null,[[0,5]])}));return function(){return e.apply(this,arguments)}}(),e.next=4,ht({fn:s,times:3,interval:2e3});case 4:return c=e.sent,u=Tn(c,r,t),e.next=5,r.pc.setRemoteDescription({sdp:u,type:"answer"});case 5:e.next=7;break;case 6:return e.prev=6,l=e.catch(1),r.logger.error("connectionId:".concat(r.id," Failed to exchangeSDP. Message: ").concat(l.message)),r.fireEndedEvent(),e.abrupt("return",Promise.reject(l));case 7:return e.prev=7,r.processingExchangeSdp=!1,e.finish(7);case 8:case"end":return e.stop()}},e,null,[[1,6,7,8]])})),function(){return s.apply(this,arguments)})}),r.pc=null;var c=e.direction,u=e.sessionManager;return r.rtcSignaling=u.serviceManager.rtcSignaling,r.sessionManager=u,r.reporter=u.reporter,r.logger=r.reporter.getLoggerWithPrefix("[rtc-peerconn]"),r.enquenTask=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=[],r=0,i=!1,n=function(){for(;r<e&&t.length;){r++;var i=t.shift();i&&i().finally(function(){r--,n()})}};return{add:function(e){t.push(e),i&&n()},start:function(){i=!0,n()}}}(),r.subSdpFmtpLines=[],r.direction=c,r.idToTransceiverMap=new Map,r.idToTransceiversMap=new Map,r.createPeerConnection(),r.id="".concat(r.direction,"_").concat(y()),r}return B(t,c),F(t,[{key:"stopSinglePC",value:function(){return arguments.length>0&&void 0!==arguments[0]&&arguments[0]||this.emit("ended"),this.rtcSignaling.closePeerConnection({connectionId:this.id,direction:"downlink"===this.direction?"out":"in"})}},{key:"closePeerConnection",value:function(){this.pc&&(this.logger.info("connectionId:".concat(this.id," clear RTC PeerConnection.")),this.detachEvents(),"closed"!==this.pc.signalingState&&this.pc.close(),this.pc=null)}},{key:"onTrack",value:function(e){var t=e.track,r=e.streams;"audio"===t.kind?Qe.audioSFU?this.emit("track",t,r[0]):this.mcuAudioStream=new MediaStream([t]):this.emit("track",t)}},{key:"fireEndedEvent",value:function(){this.state!==Pe.Ended&&(this.state=Pe.Ended,this.emit("ended"))}},{key:"onIceConnectionStateChange",value:function(){var e=this.pc.iceConnectionState;this.logger.info("connectionId:".concat(this.id," ICE connection state changed to ").concat(e))}},{key:"onIceCandidate",value:function(e){var t,r=(t=null==e?void 0:e.candidate)?{address:t.address,candidate:t.candidate,component:t.component,foundation:t.foundation,port:t.port,priority:t.priority,protocol:t.protocol,relatedAddress:t.relatedAddress,relatedPort:t.relatedPort,relayProtocol:t.relayProtocol,sdpMLineIndex:t.sdpMLineIndex,sdpMid:t.sdpMid,tcpType:t.tcpType,type:t.type,usernameFragment:t.usernameFragment}:t;this.logger.info("connectionId:".concat(this.id," onIceCandidate"),r)}},{key:"clearPcForReoffer",value:(r=C(Oe.mark(function e(){var t;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.state!==Pe.New){e.next=1;break}return e.abrupt("return",Promise.reject());case 1:return this.logger.info("connectionId:".concat(this.id,": start client reoffer")),e.prev=2,e.next=3,this.stopSinglePC(!0);case 3:this.removeAllListeners(),e.next=5;break;case 4:e.prev=4,t=e.catch(2),this.logger.info("connectionId:".concat(this.id," client reoffer close failed ").concat(g(t)));case 5:this.closePeerConnection();case 6:case"end":return e.stop()}},e,this,[[2,4]])})),function(){return r.apply(this,arguments)})},{key:"addTask",value:function(e){this.enquenTask.add(e)}},{key:"onConnectionStateChange",value:function(){var e=this,t=this.pc.connectionState;this.reporter.trace.connectionsEvent(this.id,t),this.logger.info("connectionId:".concat(this.id," connection state changed to ").concat(t)),"failed"===t||"closed"===t?(this.clientFailoverTimer&&m(this.clientFailoverTimer),this.clientFailoverTimer=d(function(){e.state!==Pe.New&&(e.logger.info("connectionId:".concat(e.id,": emit reoffer")),e.emit("reoffer"))},1e3)):"connected"===t&&(this.clientFailoverTimer&&(m(this.clientFailoverTimer),this.clientFailoverTimer=null),this.createPeerConnectionTimer&&(m(this.createPeerConnectionTimer),this.createPeerConnectionTimer=null))}},{key:"getPeerConnectionConfig",value:function(){var t=this.sessionManager.serviceManager.iceConfig,r=t.username,i=t.password,n=t.port,a=t.iceServerList,o={bundlePolicy:"max-bundle",iceTransportPolicy:"all",sdpSemantics:"unified-plan"};if(a.length){var s,c=[],u=Vn(a);try{for(u.s();!(s=u.n()).done;){var l=s.value;c.push("turn:".concat(l,":").concat(n,"?transport=udp"),"turn:".concat(l,":").concat(n,"?transport=tcp"))}}catch(e){u.e(e)}finally{u.f()}e.isFirefox()&&c.splice(4,2),o.iceServers=[{urls:c,username:r,credential:i}]}return this.logger.info("PeerConnectionConfig",o),o}},{key:"createPeerConnection",value:function(){var e=this;this.pc?this.logger.warn("connectionId:".concat(this.id," A PeerConnection was created. Cannot create again for the same PeerConnectionChannel.")):(this.pc=new RTCPeerConnection(this.getPeerConnectionConfig()),this.attachEvents(),this.createPeerConnectionTimer=d(function(){var t;"connected"===(null===(t=e.pc)||void 0===t?void 0:t.connectionState)||e.processingExchangeSdp||(e.logger.info("connectionId:".concat(e.id,": emit reoffer")),e.emit("reoffer"))},Qe.connectPcTimeoutMs))}},{key:"attachEvents",value:function(){var e=this;this.pc&&(this.pc.ontrack=function(t){e.onTrack(t)},this.pc.oniceconnectionstatechange=function(){e.onIceConnectionStateChange()},this.pc.onicecandidate=function(t){e.onIceCandidate(t)},this.pc.onconnectionstatechange=function(){e.onConnectionStateChange()},this.pc.onicegatheringstatechange=function(t){e.onIceGatheringStateChange(t)},this.monitor=new Gn(this),this.monitor.on("metrics",function(t){e.peerConnectionStats=t}))}},{key:"getStats",value:function(){var e,t,r=this;return this.monitor?null===(e=this.monitor)||void 0===e||null===(t=e.getStats)||void 0===t?void 0:t.call(e).then(function(e){r.peerConnectionStats=e}):Promise.resolve()}},{key:"detachEvents",value:function(){this.createPeerConnectionTimer&&m(this.createPeerConnectionTimer),this.clientFailoverTimer&&m(this.clientFailoverTimer),this.pc&&(this.pc.ontrack=null,this.pc.oniceconnectionstatechange=null,this.pc.onconnectionstatechange=null,this.pc.onicegatheringstatechange=null,this.monitor.stop(),this.monitor.removeAllListeners(),this.monitor=null)}},{key:"reoffer",value:function(){return this.state===Pe.New?Promise.reject():(this.logger.info("connectionId:".concat(this.id," start reoffer")),this.closePeerConnection(),this.idToTransceiverMap=new Map,this.idToTransceiversMap=new Map,this.createPeerConnection(),this.state=Pe.New,this.startSinglePC(!0))}},{key:"handleHighProfileFallback",value:function(){Qe.downlinkForbidHighProfile=!0,this.logger.info("connectionId:".concat(this.id," start reoffer for disable highProfile")),this.emit("reoffer")}},{key:"handleVideoSubStucked",value:function(e){this.logger.info("connectionId".concat(this.id,": start reoffer for sub:").concat(e.id," video stucked")),this.idToTransceiverMap.delete(e.stream.id),this.sessionManager.handleStuckResubscribe([e])}}]);var r}();function Wn(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Wn=function(){return!!e})()}var Yn=function(){function e(t){var r,i,n,a;return j(this,e),i=this,n=G(n=e),r=U(i,Wn()?Reflect.construct(n,[],G(i).constructor):n.apply(i,a)),Object.defineProperty(r,"_micAudioTrack",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"_screenAudioTrack",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"mixedAudioTrackResult",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(r,"publication",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"serviceManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"_trackId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"logger",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"trackMediaType",{enumerable:!0,configurable:!0,writable:!0,value:"audio"}),Object.defineProperty(r,"audioContext",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"selfMicMutedProperty",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"isPublished",{enumerable:!0,configurable:!0,writable:!0,value:function(){return!!r.publication}}),Object.defineProperty(r,"setPublication",{enumerable:!0,configurable:!0,writable:!0,value:function(e){r.logger.info("setPublication",null==e?void 0:e.id),r.publication=e}}),Object.defineProperty(r,"getPublication",{enumerable:!0,configurable:!0,writable:!0,value:function(){return r.publication}}),Object.defineProperty(r,"micTrackEventHandler",{enumerable:!0,configurable:!0,writable:!0,value:r._audioTrackInnerEventHandler.bind(r,ve.MIC)}),Object.defineProperty(r,"screenAudioTrackEventHandler",{enumerable:!0,configurable:!0,writable:!0,value:r._audioTrackInnerEventHandler.bind(r,ve.SCREENCAST)}),Object.defineProperty(r,"updateMixedAudioTrackToPub",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e,t,i,n,a,o,s;r.logger.info("updateMixTrack",null===(e=r._micAudioTrack)||void 0===e?void 0:e.getTrackId(),null===(t=r._screenAudioTrack)||void 0===t?void 0:t.getTrackId()),null===(i=r.mixedAudioTrackResult)||void 0===i||null===(i=i.mixedTrack)||void 0===i||i.stop(),r.mixedAudioTrackResult=r.mixAudioTracks(null===(n=r._micAudioTrack)||void 0===n?void 0:n.getMediaStreamTrack(),null===(a=r._screenAudioTrack)||void 0===a?void 0:a.getMediaStreamTrack()),null===(o=r.publication)||void 0===o||o.replaceTrack(null===(s=r.mixedAudioTrackResult)||void 0===s?void 0:s.mixedTrack)}}),Object.defineProperty(r,"clear",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e;r.logger.info("clear"),null===(e=r.mixedAudioTrackResult)||void 0===e||null===(e=e.mixedTrack)||void 0===e||e.stop(),r._micAudioTrack=null,r._screenAudioTrack=null,r.publication=void 0}}),Object.defineProperty(r,"getMediaStreamTrack",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e;return(null===(e=r.mixedAudioTrackResult)||void 0===e?void 0:e.mixedTrack)||null}}),r.logger=t.reporter.getLoggerWithPrefix("[rtc-mixedAudioTrack]"),r.serviceManager=t,r._trackId="audio_".concat(y(6)),r}return B(e,c),F(e,[{key:"getTrackId",value:function(){return this._trackId}},{key:"getScreenAudioTrack",value:function(){return this._screenAudioTrack}},{key:"setScreenAudioTrack",value:function(e){var t,r,i;(this.logger.info("setScreenAudioTrack",null==e?void 0:e.getTrackId()),null===(t=this._screenAudioTrack)||void 0===t||t.off(Ue,this.screenAudioTrackEventHandler),this._screenAudioTrack=e,null===(r=this._screenAudioTrack)||void 0===r||r.on(Ue,this.screenAudioTrackEventHandler),e)?e.muted||(this.notifyScreenAudioEnabled(!0),null===(i=this.publication)||void 0===i||i.unmute()):this.notifyScreenAudioEnabled(!1)}},{key:"getMicAudioTrack",value:function(){return this._micAudioTrack}},{key:"setMicAudioTrack",value:function(e){var t,r;this.logger.info("setMicAudioTrack",null==e?void 0:e.getTrackId()),null===(t=this._micAudioTrack)||void 0===t||t.off(Ue,this.micTrackEventHandler),this._micAudioTrack=e,null===(r=this._micAudioTrack)||void 0===r||r.on(Ue,this.micTrackEventHandler),this._micAudioTrack&&(this._micAudioTrack.muted&&!this.selfMicMutedProperty?(this.setSelfMicMutedProperty(!0),this.notifyMicDeviceMuted(!0)):!this._micAudioTrack.muted&&this.selfMicMutedProperty&&(this.setSelfMicMutedProperty(!1),this.notifyMicDeviceMuted(!1)))}},{key:"_audioTrackInnerEventHandler",value:function(e,t){if("localMixedAudioReplaceTrack"===t)this.updateMixedAudioTrackToPub();else if("stop"===t){var r,i,n;if(e===ve.MIC?this.setMicAudioTrack(null):this.setScreenAudioTrack(null),this.updateMixedAudioTrackToPub(),null===(r=this.mixedAudioTrackResult)||void 0===r||!r.mixedTrack)if(this.logger.warn("mixedAudioTrackResult is null, stop pub audio, pubid=",null===(i=this.publication)||void 0===i?void 0:i.id),this.publication)null===(n=this.publication)||void 0===n||n.stop(),this.publication=null}else if("mute"===t){e===ve.SCREENCAST?this.notifyScreenAudioEnabled(!1):this.selfMicMutedProperty||(this.setSelfMicMutedProperty(!0),this.notifyMicDeviceMuted(!0));var a=e===ve.MIC?this._screenAudioTrack:this._micAudioTrack;a&&!a.muted&&a.enabled||this.publication.mute()}else"unmute"===t?(e===ve.SCREENCAST?this.notifyScreenAudioEnabled(!0):this.selfMicMutedProperty&&(this.setSelfMicMutedProperty(!1),this.notifyMicDeviceMuted(!1)),this.publication.unmute()):this.logger.info("unhandled action",t)}},{key:"setSelfMicMutedProperty",value:function(e){this.selfMicMutedProperty=e}},{key:"notifyMicDeviceMuted",value:function(e){return this.serviceManager.rtcUserManager.notifyParticipantProperties(JSON.stringify({mute_audio_record:e?1:0}))}},{key:"notifyScreenAudioEnabled",value:function(e){return this.serviceManager.rtcUserManager.notifyParticipantProperties(JSON.stringify({enable_sys_audio:e?1:0}))}},{key:"mixAudioTracks",value:function(e,t){var r;if(!e&&!t)return null;var i=xt();this.audioContext=i;var n=i.createMediaStreamDestination();return e&&i.createMediaStreamSource(new MediaStream([e])).connect(n),t&&i.createMediaStreamSource(new MediaStream([t])).connect(n),{mixedTrack:null===(r=n.stream.getAudioTracks())||void 0===r?void 0:r[0],isOriginTrack:!1}}}])}();function Qn(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,i)}return r}function Jn(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Qn(Object(r),!0).forEach(function(t){Ee(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Qn(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function Kn(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return zn(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?zn(e,t):void 0}}(e))||t){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function zn(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function $n(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return($n=function(){return!!e})()}var Xn=2e3,Zn=function(){function e(t,r){var i,n,a,o,s,c,u;return j(this,e),n=this,a=G(a=e),i=U(n,$n()?Reflect.construct(a,[],G(n).constructor):a.apply(n,o)),Object.defineProperty(i,"client",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(i,"sessions",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"networkQualityInterval",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"lastChannelNetworkQuality",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"uplink",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"downlink",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"streamIdToSessionId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"serviceManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"reporter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"logger",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"mixedLocalAudioTrack",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"republishPromise",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"resubscribePromise",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"handleRepublish",{enumerable:!0,configurable:!0,writable:!0,value:(s=C(Oe.mark(function e(){return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:i.republishPromise=i._handleRepub(),i.republishPromise.finally(function(){i.republishPromise=null});case 1:case"end":return e.stop()}},e)})),function(){return s.apply(this,arguments)})}),Object.defineProperty(i,"handleResubscribe",{enumerable:!0,configurable:!0,writable:!0,value:(c=C(Oe.mark(function e(){var t,r=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:t=r.length>0&&void 0!==r[0]&&r[0],i.resubscribePromise=i._handleResubscribe(t),i.resubscribePromise.finally(function(){i.resubscribePromise=null});case 1:case"end":return e.stop()}},e)})),function(){return c.apply(this,arguments)})}),Object.defineProperty(i,"_handleResubscribe",{enumerable:!0,configurable:!0,writable:!0,value:(u=C(Oe.mark(function e(){var t,r,n,a,o,s,c,u,l,d,p,f,v,m,h,g,b,y,k,S,P,w,T,M,O,E,I,A,R,_,x,C,j,D,L,N,F,U,G,V,B=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:r=B.length>0&&void 0!==B[0]&&B[0],i.logger.info("handle resub fromServer=",r),n=r?"server":"client",a=[],o=Kn(i.sessions.values());try{for(o.s();!(s=o.n()).done;)(c=s.value)instanceof Yi&&c.state===Se.Processing&&(u=null,"video"===c.targetMediaType?(l=i.serviceManager.rtcUserManager.users.get(c.uid),u="camera"===c.stream.media.video.source?null==l?void 0:l.videoTrack:null==l?void 0:l.auxiliaryTrack):"audio"===c.targetMediaType?u=i.serviceManager.remoteAudioTrack:i.logger.error("unknown media type for resub",c.stream),a.push({stream:c.stream,uid:c.uid,targetMediaType:c.targetMediaType,resolutionInfo:c.userConfigResolution,session:c,track:u}))}catch(e){o.e(e)}finally{o.f()}if(d=a.map(function(e){return e.uid}).join(),a.length){i.logger.info("resubscribe start ".concat(d)),i.client.emit("media-reconnect-start",i.client.userId),p=Kn(a);try{for(p.s();!(f=p.n()).done;)h=f.value,i.logger.info("emitted sub-media-reconnect-started",null===(v=h.track)||void 0===v?void 0:v.getTrackId()),i.client.emit("sub-media-reconnect-started",null===(m=h.track)||void 0===m?void 0:m.getTrackId())}catch(e){p.e(e)}finally{p.f()}}g=null===(t=i.downlink)||void 0===t?void 0:t.id,b=Date.now(),y=b+45e3,k=!1,S=i.serviceManager.rtcUserManager.currentSelfPid,P=0;case 1:if(!(P<23&&Date.now()<=y)){e.next=10;break}if(!((w=Date.now())<b+P*Xn)){e.next=2;break}return e.next=2,gt(b+P*Xn-w);case 2:if(i.logger.debug("resub round=".concat(P,", channelconnect=").concat(i.serviceManager.internalChannel.connectionState)),"connected"===i.serviceManager.internalChannel.connectionState){e.next=3;break}return e.abrupt("continue",9);case 3:return e.prev=3,i.reporter.trace.connectionsEvent(g,"".concat(n,"ReofferStart")),e.next=4,null===(T=i.downlink)||void 0===T?void 0:T.clearPcForReoffer();case 4:if(i.downlink=null,!a.length){e.next=7;break}return e.next=5,i.batchSubscribe(a);case 5:if(M=e.sent,i.serviceManager.rtcUserManager.currentSelfPid===S){e.next=6;break}return i.logger.error("abort resubscribe for selfCurrentPid changed from to",S,i.serviceManager.rtcUserManager.currentSelfPid),e.abrupt("return");case 6:O=Kn(M);try{for(O.s();!(E=O.n()).done;)I=E.value,A=I.subscription,R=I.error,A&&!R&&i.handleResubSuccess(A)}catch(e){O.e(e)}finally{O.f()}i.reporter.trace.connectionsEvent(g,"".concat(n,"ReofferSuccess")),i.logger.debug("resub round=".concat(P," resubscribe ").concat(d," success")),i.client.emit("media-reconnect-end",d),_=Kn(a);try{for(_.s();!(x=_.n()).done;)D=x.value,i.logger.info("emitted sub-media-reconnect-succeeded",null===(C=D.track)||void 0===C?void 0:C.getTrackId()),i.client.emit("sub-media-reconnect-succeeded",null===(j=D.track)||void 0===j?void 0:j.getTrackId())}catch(e){_.e(e)}finally{_.f()}case 7:return k=!0,e.abrupt("continue",10);case 8:if(e.prev=8,V=e.catch(3),i.logger.debug("resub round=".concat(P," resubscribe failed for"),V),i.serviceManager.rtcUserManager.currentSelfPid===S){e.next=9;break}return i.logger.error("abort resubscribe for selfCurrentPid changed from to",S,i.serviceManager.rtcUserManager.currentSelfPid),e.abrupt("return");case 9:P++,e.next=1;break;case 10:if(!k){if(i.reporter.trace.connectionsEvent(g,"".concat(n,"ReofferFailed")),i.downlink.clearPcForReoffer(),i.downlink=null,a.length){i.client.emit("media-reconnect-end",d),L=Kn(a);try{for(L.s();!(N=L.n()).done;)G=N.value,i.logger.info("emitted sub-media-reconnect-failed",null===(F=G.track)||void 0===F?void 0:F.getTrackId()),i.client.emit("sub-media-reconnect-failed",null===(U=G.track)||void 0===U?void 0:U.getTrackId())}catch(e){L.e(e)}finally{L.f()}}a.forEach(function(e){if(i.removeSession(e.session.id),"audio"===e.session.targetMediaType){var t,r;null===(t=i.serviceManager.remoteAudioTrack)||void 0===t||t.stopPlay(),null===(r=i.serviceManager.remoteAudioTrack)||void 0===r||null===(r=r.getMediaStreamTrack())||void 0===r||r.stop(),i.serviceManager.remoteAudioTrack=null}else{var n,a,o,s,c=i.serviceManager.rtcUserManager.users.get(e.session.uid);"camera"===e.session.stream.media.video.source?(null===(n=c.videoTrack)||void 0===n||n.stopPlay(),null===(a=c.videoTrack)||void 0===a||null===(a=a.getMediaStreamTrack())||void 0===a||a.stop(),c.videoTrack=null):(null===(o=c.auxiliaryTrack)||void 0===o||o.stopPlay(),null===(s=c.auxiliaryTrack)||void 0===s||null===(s=s.getMediaStreamTrack())||void 0===s||s.stop(),c.auxiliaryTrack=null)}})}case 11:case"end":return e.stop()}},e,null,[[3,8]])})),function(){return u.apply(this,arguments)})}),i.serviceManager=r,i.client=t,i.reporter=r.reporter,i.logger=i.reporter.getLoggerWithPrefix("[rtc-sessionMgr]"),i.streamIdToSessionId=new Map,i.sessions=new Map,i.mixedLocalAudioTrack=new Yn(r),i.handleMediaMessage=i.handleMediaMessage.bind(i),i.handleServerFailover=i.handleServerFailover.bind(i),i}return B(e,c),F(e,[{key:"getOrCreatePeerConnection",value:(h=C(Oe.mark(function e(t){var r=this;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("uplink"!==t){e.next=3;break}if(this.uplink){e.next=2;break}return this.uplink=new qn({direction:t,sessionManager:this}),e.next=1,this.uplink.startSinglePC();case 1:this.uplink.on("reoffer",this.handleRepublish),this.uplink.on("ended",function(){r.uplink=null});case 2:return e.abrupt("return",this.uplink);case 3:if(this.downlink){e.next=5;break}return this.downlink=new qn({direction:t,sessionManager:this}),e.next=4,this.downlink.startSinglePC();case 4:this.downlink.on("reoffer",this.handleResubscribe),this.downlink.on("ended",function(){r.downlink=null});case 5:return e.abrupt("return",this.downlink);case 6:case"end":return e.stop()}},e,this)})),function(e){return h.apply(this,arguments)})},{key:"_handleRepub",value:(v=C(Oe.mark(function e(){var t,r,i,n,a,o,s,c,u,l,d,p,f,v,m,h,g,b,y,k,S,P,w;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.logger.info("handle repub"),r=Re(this.client.localTracks),this.mixedLocalAudioTrack.clear(),r.length){this.client.emit("media-reconnect-start",this.client.userId),i=Kn(r);try{for(i.s();!(n=i.n()).done;)a=n.value,this.logger.info("emitted pub-media-reconnect-started",a.getTrackId()),this.client.emit("pub-media-reconnect-started",a.getTrackId())}catch(e){i.e(e)}finally{i.f()}}o=null===(t=this.uplink)||void 0===t?void 0:t.id,s=Date.now(),c=s+45e3,u=!1,l=0,l=0;case 1:if(!(l<23&&Date.now()<=c||"disconnected"!==this.serviceManager.internalChannel.connectionState)){e.next=9;break}if(!((d=Date.now())<s+l*Xn)){e.next=2;break}return e.next=2,gt(s+l*Xn-d);case 2:if(this.logger.debug("repub round=".concat(l,", channelconnect=").concat(this.serviceManager.internalChannel.connectionState)),"connected"===this.serviceManager.internalChannel.connectionState){e.next=3;break}return e.abrupt("continue",8);case 3:return e.prev=3,this.reporter.trace.connectionsEvent(o,"clientReofferStart"),this.logger.info("repub round=".concat(l,", clearPcForReoffer start ").concat(r.map(function(e){return e.trackMediaType}).join())),e.next=4,null===(p=this.uplink)||void 0===p?void 0:p.clearPcForReoffer();case 4:if(this.uplink=null,this.logger.info("repub round=".concat(l,", batchPublish start ").concat(r.map(function(e){return e.trackMediaType}).join())),!r.length){e.next=6;break}return e.next=5,this.batchPublish(r);case 5:this.logger.info("".concat(this.client.userId," batchPublish finished for repub")),this.logger.info("emitted media-reconnect-end",this.client.userId),this.client.emit("media-reconnect-end",this.client.userId),f=Kn(r);try{for(f.s();!(v=f.n()).done;)m=v.value,this.logger.info("emitted pub-media-reconnect-succeeded",m.getTrackId()),this.client.emit("pub-media-reconnect-succeeded",m.getTrackId())}catch(e){f.e(e)}finally{f.f()}case 6:return this.reporter.trace.connectionsEvent(o,"clientReofferSuccess"),u=!0,e.abrupt("continue",9);case 7:e.prev=7,P=e.catch(3),this.logger.error("".concat(this.client.userId," republish failed for"),P);case 8:l++,e.next=1;break;case 9:if(this.logger.info("break from repub loop roundNum, connectionstate",l,this.serviceManager.internalChannel.connectionState),u){e.next=14;break}if(this.reporter.trace.connectionsEvent(o,"clientReofferFailed"),"connected"!==this.serviceManager.internalChannel.connectionState){e.next=13;break}return e.prev=10,this.logger.info("unpub all tracks after repub failed"),e.next=11,this.serviceManager.unpublish(r);case 11:e.next=13;break;case 12:e.prev=12,w=e.catch(10),this.logger.info("err for unpub after repub failed",w);case 13:if(null===(h=this.uplink)||void 0===h||h.clearPcForReoffer(),this.uplink=null,r.length){this.client.emit("media-reconnect-end",this.client.userId),g=Kn(r);try{for(g.s();!(b=g.n()).done;)y=b.value,(k=this.streamIdToSessionId.get(y.getTrackId()))&&(this.logger.info("clear old publication for repub failed",k),null===(S=this.sessions.get(k))||void 0===S||S.clear(),this.sessions.delete(k)),this.logger.info("emitted pub-media-reconnect-failed",y.getTrackId()),this.client.emit("pub-media-reconnect-failed",y.getTrackId())}catch(e){g.e(e)}finally{g.f()}}case 14:case"end":return e.stop()}},e,this,[[3,7],[10,12]])})),function(){return v.apply(this,arguments)})},{key:"handleStuckResubscribe",value:(f=C(Oe.mark(function e(t){var r,i,n,a,o,s,c,u,l,d,p,f;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("connected"===this.serviceManager.internalChannel.connectionState){e.next=1;break}return this.logger.info("ignore for inner not connected"),e.abrupt("return");case 1:r=[],i=Kn(t);try{for(i.s();!(n=i.n()).done;)(a=n.value)instanceof Yi&&a.state===Se.Processing&&(r.push({stream:a.stream,uid:a.uid,targetMediaType:a.targetMediaType,resolutionInfo:a.userConfigResolution,session:a,profileFallback:!0}),this.removeSession(a.id))}catch(e){i.e(e)}finally{i.f()}return o=r.map(function(e){return e.uid}).join(),this.client.emit("media-reconnect-start",o),this.logger.info("resubscribe ".concat(o," start")),e.prev=2,e.next=3,this.batchUnscribe(r);case 3:return e.next=4,this.batchSubscribe(r);case 4:s=e.sent,c=Kn(s);try{for(c.s();!(u=c.n()).done;)l=u.value,d=l.subscription,p=l.error,d&&!p&&this.handleResubSuccess(d)}catch(e){c.e(e)}finally{c.f()}this.client.emit("media-reconnect-end",o),e.next=6;break;case 5:e.prev=5,f=e.catch(2),this.logger.debug("".concat(this.client.userId," resubscribe failed for"),f),this.client.emit("media-reconnect-end",o),this.serviceManager.rtcSignaling.emit("connection-state-change","disconnected",this.client.connectionState,"network_error");case 6:case"end":return e.stop()}},e,this,[[2,5]])})),function(e){return f.apply(this,arguments)})},{key:"getSessionByStreamId",value:function(e){return e?this.sessions.get(this.streamIdToSessionId.get(e)):null}},{key:"handleResubSuccess",value:function(e){var t,r=e.uid,i=e.mediaStream,n=(null===(t=e.stream.media.video)||void 0===t?void 0:t.source)===me.SCREENCAST,a=i.getAudioTracks()[0],o=i.getVideoTracks()[0],s=a?"audio":n?"screen":"camera";if(this.logger.debug("".concat(r," resubscribe ").concat(s," success")),a&&this.serviceManager.remoteAudioTrack){var c,u;if(Qe.audioSFU)null===(c=(u=this.serviceManager.remoteAudioTrack).replaceStream)||void 0===c||c.call(u,i);else this.serviceManager.remoteAudioTrack.replaceTrack(a)}else{var l=this.serviceManager.rtcUserManager.remoteUsers.find(function(e){return e.userId===r});o&&null!=l&&l.auxiliaryTrack&&n?l.auxiliaryTrack.replaceTrack(o):o&&null!=l&&l.videoTrack&&!n&&l.videoTrack.replaceTrack(o)}}},{key:"handleServerFailover",value:function(e){var t=this;this.logger.debug("serverFailover",e);var r,i=e.actions,n=Kn(void 0===i?[]:i);try{var a=function(){var e,i,n=r.value,a=n.actionName,o=n.connectionId;if("reoffer"!==a)return 1;if(o===(null===(e=t.uplink)||void 0===e?void 0:e.id)){var s=t.uplink,c=t.client,u=c.userId,l=c.localTracks;t.client.emit("media-reconnect-start",u),t.reporter.trace.connectionsEvent(o,"serverReofferStart"),s.reoffer().then(function(){t.logger.info("".concat(u," republish ").concat(l.map(function(e){return e.trackMediaType}).join()," success")),t.reporter.trace.connectionsEvent(o,"serverReofferSuccess"),t.client.emit("media-reconnect-end",u)}).catch(function(e){t.logger.debug("".concat(t.client.userId," republish failed for"),e),t.reporter.trace.connectionsEvent(o,"serverReofferFailed"),t.serviceManager.rtcSignaling.emit("connection-state-change","disconnected",t.client.connectionState,"network_error")})}else o===(null===(i=t.downlink)||void 0===i?void 0:i.id)&&t.handleResubscribe(!0)};for(n.s();!(r=n.n()).done;)a()}catch(e){n.e(e)}finally{n.f()}}},{key:"addSession",value:function(e,t){this.sessions.set(t.id,t),this.streamIdToSessionId.set(e,t.id)}},{key:"getNetworkQuality",value:function(e,t){return e>50||t>600?ge.BAD:e>30||t>450?ge.POOR:e>20||t>300?ge.NORMAL:e>10||t>200?ge.GOOD:e>=0||t>=0?ge.GREAT:ge.UNKNOWN}},{key:"checkChannelNetworkQuality",value:(p=C(Oe.mark(function e(){var t,r=this;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(0!==(t=Re(this.sessions.values())).length){e.next=1;break}return this.emit("network-quality",ge.UNKNOWN,ge.UNKNOWN),e.abrupt("return");case 1:if(0!==t.filter(function(e){var t,r=e.connection;return"connected"===(null==r||null===(t=r.pc)||void 0===t?void 0:t.connectionState)}).length){e.next=2;break}return this.emit("network-quality",ge.DISCONNECTED,ge.DISCONNECTED),e.abrupt("return");case 2:Promise.all([this.getLocalVideoStats(),this.getLocalAudioStats(),this.getRemoteAudioStats(),this.getRemoteVideoStats()]).then(function(e){var t=Kt(e,4),i=t[0],n=t[1],a=t[2],o=t[3],s=0,c=0,u=0,l=0,d=0,p=0;if(i){var f=i.camera,v=i.auxiliary;f&&(c+=f.sendPacketsLost,s+=f.sendPackets,d=Math.max(d,f.rtt||0)),v&&(c+=v.sendPacketsLost,s+=v.sendPackets,d=Math.max(d,v.rtt||0))}for(var m in n&&(c+=n.sendPacketsLost||0,s+=n.sendPackets||0,d=Math.max(d,n.rtt||0)),a&&(u+=a.receivePacketsLost||0,l+=a.receivePackets||0,p=Math.max(p,a.rtt||0)),o){var h=o[m],g=h.camera,b=h.auxiliary;g&&(u+=g.receivePacketsLost,l+=g.receivePackets,p=Math.max(p,g.rtt||0)),b&&(u+=b.receivePacketsLost,l+=b.receivePackets,p=Math.max(p,b.rtt||0))}var y=-1,k=-1,S={timestamp:Date.now(),totalUplinkPacketsLost:c,totalUplinkPacketsSent:s,totalDownlinkPacketsLost:u,totalDownlinkPacketsRecv:l};if(s){var P,w,T=c-((null===(P=r.lastChannelNetworkQuality)||void 0===P?void 0:P.totalUplinkPacketsLost)||0);if(T<0&&(T=c),S.totalUplinkPacketsSentForLost=(null===(w=r.lastChannelNetworkQuality)||void 0===w?void 0:w.totalUplinkPacketsSentForLost)||0,0!==T){var M;S.totalUplinkPacketsSentForLost=s;var O=s-((null===(M=r.lastChannelNetworkQuality)||void 0===M?void 0:M.totalUplinkPacketsSentForLost)||0);O<0&&(O=s),y=T/O}}if(l){var E,I,A,R,_=u-((null===(E=r.lastChannelNetworkQuality)||void 0===E?void 0:E.totalDownlinkPacketsLost)||0);_<0&&(_=u),S.totalDownlinkPacketsRecvForLost=(null===(I=r.lastChannelNetworkQuality)||void 0===I?void 0:I.totalDownlinkPacketsRecvForLost)||0,null===(A=r.lastChannelNetworkQuality)||void 0===A||A.totalDownlinkPacketsRecvForLost,_&&(u!==((null===(R=r.lastChannelNetworkQuality)||void 0===R?void 0:R.totalDownlinkPacketsLost)||0)&&(S.totalDownlinkPacketsRecvForLost=l),k=_/l)}r.emit("network-quality",r.getNetworkQuality(Math.min(100*y,100),d),r.getNetworkQuality(Math.min(100*k,100),p)),r.lastChannelNetworkQuality=S});case 3:case"end":return e.stop()}},e,this)})),function(){return p.apply(this,arguments)})},{key:"removeSession",value:function(e,t){t&&(e=this.streamIdToSessionId.get(t),this.streamIdToSessionId.delete(t));var r=this.sessions.get(e);r&&(r.clear(),this.sessions.delete(e),this.mixedLocalAudioTrack.getPublication()===r&&this.mixedLocalAudioTrack.clear())}},{key:"batchPublish",value:(l=C(Oe.mark(function e(t,r){var i,n,a,o,s,c,u,l,d,p=this;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return i=Date.now(),e.next=1,this.getOrCreatePeerConnection("uplink");case 1:return n=e.sent,a=Re(this.sessions.values()).filter(function(e){return e instanceof jn}),e.next=2,Ln({uid:this.client.userId,tracks:t,connection:n,labels:r,existedPublications:a,mixedLocalAudioTrack:this.mixedLocalAudioTrack});case 2:o=e.sent,s=Re(o.videoPubResultArr),o.audioPubResult&&s.push(o.audioPubResult),c=Kn(s),e.prev=3,l=Oe.mark(function e(){var t,r,n,a,o,s;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:t=u.value,r=t.error,n=t.publication,a=t.track,r?p.reporter.trace.publish(!1,a,"",Date.now()-i):((o=p.streamIdToSessionId.get(a.getTrackId()))&&(p.logger.info("clear old publication before set new one",o),null===(s=p.sessions.get(o))||void 0===s||s.clear(),p.sessions.delete(o)),p.addSession(a.getTrackId(),n),p.reporter.trace.publish(!0,a,n.id,Date.now()-i),p.reporter.trace.publish(!1,a,n.id,Date.now()-i),n.on("ended",function(){p.removeSession(n.id)}));case 1:case"end":return e.stop()}},e)}),c.s();case 4:if((u=c.n()).done){e.next=6;break}return e.delegateYield(l(),"t0",5);case 5:e.next=4;break;case 6:e.next=8;break;case 7:e.prev=7,d=e.catch(3),c.e(d);case 8:return e.prev=8,c.f(),e.finish(8);case 9:case"end":return e.stop()}},e,this,[[3,7,8,9]])})),function(e,t){return l.apply(this,arguments)})},{key:"batchUnPublish",value:(u=C(Oe.mark(function e(t){var r,i=this;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t.length){e.next=1;break}return this.logger.info("batchUnPublish sessions is empty"),e.abrupt("return",Promise.resolve());case 1:return e.next=2,this.getOrCreatePeerConnection("uplink");case 2:return r=e.sent,e.abrupt("return",Nn(t,{connection:r}).then(function(){var e,r=Kn(t);try{for(r.s();!(e=r.n()).done;){var n,a,o=e.value;i.streamIdToSessionId.delete(null===(n=o.tracks)||void 0===n||null===(n=n[0])||void 0===n||null===(a=n.getTrackId)||void 0===a?void 0:a.call(n)),i.removeSession(o.id)}}catch(e){r.e(e)}finally{r.f()}}));case 3:case"end":return e.stop()}},e,this)})),function(e){return u.apply(this,arguments)})},{key:"batchSubscribe",value:function(e){var t,r=this,i=Date.now(),n=0,a=function(){var e=C(Oe.mark(function e(t){var i;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,r.getOrCreatePeerConnection("downlink");case 1:return i=e.sent,e.abrupt("return",zi(t,i).then(function(){var e=C(Oe.mark(function e(i){var o,s,c,u;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:for(o=new Map,s=[],c=0;c<i.length;c++)"RoomBusy"===(null===(u=i[c].error)||void 0===u?void 0:u.message)&&(s.push(t[c]),o.set(s.length-1,c));if(!(s.length&&n<=3)){e.next=3;break}return n++,e.next=1,bt(1);case 1:if("connected"!==r.client.connectionState){e.next=3;break}return e.next=2,a(s);case 2:e.sent.forEach(function(e,t){var r=o.get(t);i[r]=e});case 3:return e.abrupt("return",i);case 4:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}()));case 2:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}(),o=Kn(e);try{for(o.s();!(t=o.n()).done;){var s=t.value,c=s.stream,u=s.uid,l=s.resolutionInfo;(null==c?void 0:c.id)&&this.reporter.trace.subscribe({subPhase:"init",capabilities:null==c?void 0:c.media,remoteStreamId:null==c?void 0:c.id,remoteUserId:u,elapse:0,sessionId:"",resolutionInfo:l})}}catch(e){o.e(e)}finally{o.f()}return a(e).then(function(e){var t,n=Kn(e);try{var a=function(){var e=t.value,n=e.error,a=e.subscription,o=e.id,s=e.stream,c=e.uid,u=e.resolutionInfo;if(a){r.reporter.trace.subscribe({subPhase:"success",capabilities:s.media,remoteStreamId:s.id,remoteUserId:c,elapse:Date.now()-i,sessionId:o,resolutionInfo:u});var l,d=r.streamIdToSessionId.get(s.id);if(d)r.logger.info("clear old subscription before set new one",d),null===(l=r.sessions.get(d))||void 0===l||l.clear(),r.sessions.delete(d);r.addSession(s.id,a),a.on("ended",function(){r.logger.info("remove subscription for ended",o),r.removeSession(o)})}n&&(r.logger.error("batchSubscribe error",s,n),(null==s?void 0:s.id)&&r.reporter.trace.subscribe({subPhase:"failed",capabilities:(null==s?void 0:s.media)||{},remoteStreamId:null==s?void 0:s.id,remoteUserId:c,elapse:Date.now()-i,sessionId:"",resolutionInfo:u}))};for(n.s();!(t=n.n()).done;)a()}catch(e){n.e(e)}finally{n.f()}return r.logger.info("batchSubscribe result",null==e?void 0:e.map(function(e){var t,r;return{error:null==e?void 0:e.error,uid:null==e?void 0:e.uid,streamId:null==e||null===(t=e.stream)||void 0===t?void 0:t.id,sessionId:null==e||null===(r=e.subscription)||void 0===r?void 0:r.id}})),e})}},{key:"batchUnscribe",value:(s=C(Oe.mark(function e(t){var r,i,n,a,o=this;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=new Array(t.length),i=[],n={},t.forEach(function(e,t){var a=e.error,s=e.stream,c=e.session,u=e.targetMediaType;r[t]={targetMediaType:u},a?(r[t].error=a,o.logger.error("batchUnscribe error",a,s)):(n[null==s?void 0:s.id]=t,i.push(c))}),e.next=1,this.getOrCreatePeerConnection("downlink");case 1:return a=e.sent,e.abrupt("return",$i(i,a).then(function(){for(var e=0,t=i;e<t.length;e++){var n=t[e];o.removeSession(n.id)}return r}));case 2:case"end":return e.stop()}},e,this)})),function(e){return s.apply(this,arguments)})},{key:"clear",value:function(){var e,t,r=this;this.sessions.forEach(function(e){r.removeSession(e.id)}),this.mixedLocalAudioTrack.clear(),null===(e=this.uplink)||void 0===e||e.closePeerConnection(),this.uplink=null,null===(t=this.downlink)||void 0===t||t.closePeerConnection(),this.downlink=null,this.streamIdToSessionId.clear(),this.networkQualityInterval&&(m(this.networkQualityInterval,"interval"),this.networkQualityInterval=null),this.serviceManager.rtcSignaling.off("media-message",this.handleMediaMessage),this.serviceManager.rtcSignaling.off("serverFailover",this.handleServerFailover)}},{key:"start",value:(o=C(Oe.mark(function e(){return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return this.startNetworkQualityTimer(),e.next=1,this.getOrCreatePeerConnection("uplink");case 1:return this.uplink=e.sent,e.next=2,this.getOrCreatePeerConnection("downlink");case 2:this.downlink=e.sent,this.serviceManager.rtcSignaling.on("media-message",this.handleMediaMessage),this.serviceManager.rtcSignaling.on("serverFailover",this.handleServerFailover);case 3:case"end":return e.stop()}},e,this)})),function(){return o.apply(this,arguments)})},{key:"startNetworkQualityTimer",value:function(){var e=this;this.networkQualityInterval=d(function(){navigator&&void 0!==navigator.onLine&&!navigator.onLine?e.emit("network-quality",ge.DISCONNECTED,ge.DISCONNECTED):"connected"!==e.client.connectionState?e.emit("network-quality",ge.BAD,ge.BAD):"connected"===e.client.connectionState?e.checkChannelNetworkQuality():e.emit("network-quality",ge.UNKNOWN,ge.UNKNOWN)},2e3,"interval")}},{key:"getLocalAudioStats",value:(a=C(Oe.mark(function e(){var t,r,i,n=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=n.length>0&&void 0!==n[0]?n[0]:"network",i=Re(this.sessions.values()).filter(function(e){var t,r;return e instanceof jn&&"connected"===(null===(t=e.connection)||void 0===t||null===(t=t.pc)||void 0===t?void 0:t.connectionState)&&"audio"===(null===(r=e.tracks)||void 0===r||null===(r=r[0])||void 0===r?void 0:r.trackMediaType)}),e.next=1,Promise.all(i.map(function(e){return e.getMetrics(r)}));case 1:return e.abrupt("return",(null===(t=i[0])||void 0===t?void 0:t.audioStatsMap.get(r))||{});case 2:case"end":return e.stop()}},e,this)})),function(){return a.apply(this,arguments)})},{key:"getLocalVideoStats",value:(n=C(Oe.mark(function e(){var t,r,i,n,a,o,s,c,u,l,d,p,f,v,m,h=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return i=h.length>0&&void 0!==h[0]?h[0]:"network",n=Re(this.sessions.values()).filter(function(e){var t;return e instanceof jn&&"connected"===(null===(t=e.connection)||void 0===t||null===(t=t.pc)||void 0===t?void 0:t.connectionState)&&"video"===e.tracks[0].trackMediaType}),e.next=1,Promise.all(n.map(function(e){return e.getMetrics(i)}));case 1:a=function(e){var t;return(null==e||null===(t=e.fmtp)||void 0===t?void 0:t.filter(function(e){var t;return null==e||null===(t=e.config)||void 0===t?void 0:t.includes("profile-level-id")}).map(function(e){var t,r=(null==e||null===(t=e.config)||void 0===t?void 0:t.split(";"))||[],i=r.findIndex(function(e){return e.includes("profile-level-id")});return r[i].split("=")[1]}))||[]},o=null===(t=this.uplink)||void 0===t||null===(t=t.offerSDP)||void 0===t||null===(t=t.media)||void 0===t?void 0:t.find(function(e){return"video"===e.type}),s=null===(r=this.downlink)||void 0===r||null===(r=r.offerSDP)||void 0===r||null===(r=r.media)||void 0===r?void 0:r.find(function(e){return"video"===e.type}),c={uplinkProfile:Re(new Set(a(o))),downlinkProfile:Re(new Set(a(s)))},u=Kn(n),e.prev=2,u.s();case 3:if((l=u.n()).done){e.next=6;break}if(d=l.value,p=d.videoStatsMap.get(i)){e.next=4;break}return e.abrupt("continue",5);case 4:f=d.tracks,v=f[0].source===me.SCREENCAST,c[v?"auxiliary":"camera"]=p;case 5:e.next=3;break;case 6:e.next=8;break;case 7:e.prev=7,m=e.catch(2),u.e(m);case 8:return e.prev=8,u.f(),e.finish(8);case 9:return e.abrupt("return",c);case 10:case"end":return e.stop()}},e,this,[[2,7,8,9]])})),function(){return n.apply(this,arguments)})},{key:"getRemoteVideoStats",value:(i=C(Oe.mark(function e(){var t,r,i,n,a,o,s,c,u,l,d,p,f,v=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=v.length>0&&void 0!==v[0]?v[0]:"network",r=Re(this.sessions.values()).filter(function(e){var t;return e instanceof Yi&&"connected"===(null===(t=e.connection)||void 0===t||null===(t=t.pc)||void 0===t?void 0:t.connectionState)&&"video"===e.targetMediaType}),e.next=1,Promise.all(r.map(function(e){return e.getMetrics(t)}));case 1:i={},n=Kn(r),e.prev=2,n.s();case 3:if((a=n.n()).done){e.next=6;break}if(s=a.value,c=s.videoStatsMap,u=s.uid,l=s.stream,d=c.get(t)){e.next=4;break}return e.abrupt("continue",5);case 4:p=(null===(o=l.media.video)||void 0===o?void 0:o.source)===me.SCREENCAST?"auxiliary":"camera",i[u]=Jn(Jn({},i[u]||{}),{},Ee({},p,d));case 5:e.next=3;break;case 6:e.next=8;break;case 7:e.prev=7,f=e.catch(2),n.e(f);case 8:return e.prev=8,n.f(),e.finish(8);case 9:return e.abrupt("return",i);case 10:case"end":return e.stop()}},e,this,[[2,7,8,9]])})),function(){return i.apply(this,arguments)})},{key:"getRemoteAudioStats",value:(r=C(Oe.mark(function e(){var t,r,i,n=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=n.length>0&&void 0!==n[0]?n[0]:"network",i=Re(this.sessions.values()).filter(function(e){var t;return e instanceof Yi&&"connected"===(null===(t=e.connection)||void 0===t||null===(t=t.pc)||void 0===t?void 0:t.connectionState)&&"audio"===e.targetMediaType}),e.next=1,Promise.all(i.map(function(e){return e.getMetrics(r)}));case 1:return e.abrupt("return",(null===(t=i[0])||void 0===t?void 0:t.audioStatsMap.get(r))||{});case 2:case"end":return e.stop()}},e,this)})),function(){return r.apply(this,arguments)})},{key:"handleMediaMessage",value:(t=C(Oe.mark(function e(t){var r,i,n,a,o,s;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.logger.debug("remote feedback: ",t.payload),r=JSON.parse(t.payload),Array.isArray(r)&&0!==r.length){e.next=1;break}return e.abrupt("return");case 1:i=Re(this.sessions.values()).filter(function(e){return e instanceof jn&&e.state===Se.Processing&&e.tracks[0].source===me.CAMERA}),n=Kn(i),e.prev=2,o=Oe.mark(function e(){var t,i;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:t=a.value,(i=r.filter(function(e){return e.mid==t.transceiver.mid})).length&&t.applyOptions(i);case 1:case"end":return e.stop()}},e)}),n.s();case 3:if((a=n.n()).done){e.next=5;break}return e.delegateYield(o(),"t0",4);case 4:e.next=3;break;case 5:e.next=7;break;case 6:e.prev=6,s=e.catch(2),n.e(s);case 7:return e.prev=7,n.f(),e.finish(7);case 8:case"end":return e.stop()}},e,this,[[2,6,7,8]])})),function(e){return t.apply(this,arguments)})}]);var t,r,i,n,a,o,s,u,l,p,f,v,h}();function ea(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return ta(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?ta(e,t):void 0}}(e))||t){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function ta(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function ra(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(ra=function(){return!!e})()}var ia={name:"name"},na=function(){function e(t){var r,i,n,a;return j(this,e),i=this,n=G(n=e),r=U(i,ra()?Reflect.construct(n,[],G(i).constructor):n.apply(i,a)),Object.defineProperty(r,"serviceManager",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(r,"groupIds",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"groups",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"default",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"listVer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"client",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"logger",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),r.serviceManager=t,r.logger=r.serviceManager.reporter.getLoggerWithPrefix("[rtc-groupMgr]"),r.groups=new Map,r.listVer=0,r.groupIds=new Set,r.handleGroupListEvents=r.handleGroupListEvents.bind(r),r.handleGroupEvents=r.handleGroupEvents.bind(r),r.handleSyncEvent=r.handleSyncEvent.bind(r),r}return B(e,c),F(e,[{key:"joinedIds",get:function(){var e=this.serviceManager.rtcUserManager.currentSelfPid,t=new Set;return this.groups.forEach(function(r){var i=r.participants,n=r.id;i.some(function(t){return t.pid===e})&&t.add(n)}),t}},{key:"parseGroup",value:function(e){var t,r=this,i=e.id,n=e.properties,a=e.participants;return{id:i,name:(null==n||null===(t=n.find(function(e){return"name"===e.key}))||void 0===t?void 0:t.value)||"",joined:a.some(function(e){return e.pid===r.serviceManager.rtcUserManager.currentSelfPid}),users:a.map(function(e){return{userId:e.uid,userData:e.userData}})}}},{key:"groupList",get:function(){var e=this,t=[];return this.groups.forEach(function(r){t.push(e.parseGroup(r))}),t}},{key:"init",value:function(e,t){this.listVer=t,this.groupIds=new Set(e),this.batchSyncGroup(e),this.observerAllGroup(),this.serviceManager.rtcSignaling.on("group-list",this.handleGroupListEvents),this.serviceManager.rtcSignaling.on("group",this.handleGroupEvents),this.serviceManager.rtcSignaling.on("sync",this.handleSyncEvent)}},{key:"clear",value:function(){this.listVer=0,this.serviceManager.rtcSignaling.off("group",this.handleGroupEvents),this.serviceManager.rtcSignaling.off("group-list",this.handleGroupListEvents),this.serviceManager.rtcSignaling.off("sync",this.handleSyncEvent),this.groupIds.clear(),this.groups.clear()}},{key:"join",value:function(e){var t=e.publishAudioToGroup,r=void 0===t||t,i=e.groupId,o=e.userData;if(this.joinedIds.has(i))throw new n(a.InvaildArgument,"you were in group already");return this.serviceManager.rtcSignaling.joinGroup({groupId:i,userData:o,autoJoinGroupAudio:!!r,autoLeaveChannelAudio:!0})}},{key:"leave",value:function(e){var t=e.groupId,r=e.publishAudioToChannel,i=void 0===r||r;if(!this.joinedIds.has(t))throw new n(a.InvaildArgument,"you are not in the group");return this.serviceManager.rtcSignaling.leaveGroup({groupId:t,reasonCode:Ur.LEAVE_GROUP_REASON_CODE.NORMAL_LEAVE,autoJoinChannelAudio:i})}},{key:"dismiss",value:function(e){if(!this.groupIds.has(e))throw new n(a.InvaildArgument,"group not existed");return this.serviceManager.rtcSignaling.dismissGroup({groupId:e})}},{key:"addUser",value:function(e,t){var r,i=null===(r=this.groups.get(t))||void 0===r?void 0:r.participants;i&&!i.find(function(t){return t.pid===e.pid})&&i.push(e)}},{key:"removeUser",value:function(e,t){var r,i=null===(r=this.groups.get(t))||void 0===r?void 0:r.participants;if(i){var n=i.findIndex(function(t){return t.pid===e.pid});n>-1&&i.splice(n,1)}}},{key:"observerAllGroup",value:function(){return this.serviceManager.rtcSignaling.observeAllGroups()}},{key:"unobserverAllGroup",value:function(){return this.serviceManager.rtcSignaling.unobserveAllGroups()}},{key:"setProperties",value:function(e,t){return this.serviceManager.rtcSignaling.setGroupProperties({groupId:e,properties:[t]})}},{key:"handleGroupListEvents",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=e.ver,i=e.type,n=e.updateOpt;if(this.logger.info("on groupList event:",e),r!==this.listVer+1&&!t||i!==Ur.OptType.OPT_TYPE_UPDATE)r>this.listVer+1&&this.syncGroupList();else{var a=n.updateAction,o=n.id;a===Ur.GroupListUpdate.GROUP_LIST_UPDATE_ADD_ID?this.groupIds.add(o):a===Ur.GroupListUpdate.GROUP_LIST_UPDATE_REMOVE_ID&&this.groupIds.delete(o),this.listVer=r}}},{key:"handleGroupEvents",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.logger.info("on group event:",e);var i,n=e.id,a=e.ver,o=e.groupInfo,s=e.type,c=e.updateOpt,u=this.groups.get(n);if(s!==Ur.OptType.OPT_TYPE_ADD||u){if(s===Ur.OptType.OPT_TYPE_REMOVE&&u)this.groups.delete(n),this.emit("group","remove",this.parseGroup(u),u.audioInfo);else if(s===Ur.OptType.OPT_TYPE_UPDATE){var l=c.updateAction,d=c.participants;if(u&&(u.ver+1===a||r)){if(l===Ur.GroupUpdate.GROUP_UPDATE_ADD_PARTICIPANTS){var p,f=u.participants.map(function(e){return e.pid}),v=ea(d);try{for(v.s();!(p=v.n()).done;){var m=p.value;f.includes(m.pid)||(u.participants.push(m),this.emit("group","user-join",n,{userId:m.uid,userData:m.userData}))}}catch(e){v.e(e)}finally{v.f()}}else if(l===Ur.GroupUpdate.GROUP_UPDATE_REMOVE_PARTICIPANTS){var h=d.map(function(e){return e.pid}),g=Re(u.participants);u.participants=u.participants.filter(function(e){return!h.includes(e.pid)}),g.forEach(function(e){h.includes(e.pid)&&t.emit("group","user-leave",n,{userId:e.uid,userData:e.userData})})}else if(l===Ur.GroupUpdate.GROUP_UPDATE_AUDIO_STREAM_LOST)this.logger.info("group ".concat(n," audioStream lost"));else if(l===Ur.GroupUpdate.GROUP_UPDATE_AUDIO_STREAM_RECOVER)this.logger.debug("group ".concat(n," audioStream recover"));else if(l===Ur.GroupUpdate.GROUP_UPDATE_SET_PROPERTIES)c.properties.forEach(function(e){var r=!0;u.properties||(u.properties=[]),u.properties.forEach(function(t){t.key===e.key&&(t.value=e.value,r=!1)}),r&&u.properties.push(e),t.emit("group","info-updated",n,{key:"set-".concat(ia[e.key]),value:e.value})});else if(l===Ur.GroupUpdate.GROUP_UPDATE_REMOVE_PROPERTIES){var b,y=c.properties.map(function(e){return e.key});u.properties=null===(b=u.properties)||void 0===b?void 0:b.filter(function(e){var t=e.key;return!y.includes(t)}),c.properties.forEach(function(e){t.emit("group","info-updated",n,{key:"remove-".concat(ia[e.key])})})}u.ver=a}else u&&a>u.ver+1&&this.syncGroup(u.id)}}else null==o||null===(i=o.audioInfo)||void 0===i||null===(i=i.audio)||void 0===i||null===(i=i.media)||void 0===i||delete i.video,null==o.ver&&(o.ver=a),this.groups.set(n,o),this.emit("group","add",this.parseGroup(o))}},{key:"syncGroup",value:function(e){var t=this,r=this.groups.get(e);return this.serviceManager.rtcSignaling.syncData({type:Ur.DataType.DATA_TYPE_GROUP,id:e,ver:null==r?void 0:r.ver}).then(function(i){var n=i.fullSync.groupData.groupInfos,a=(void 0===n?[]:n)[0];if(a){var o=a.participants,s=a.properties,c=void 0===s?[]:s,u=(null==r?void 0:r.participants)||[],l=new Map(((null==r?void 0:r.properties)||[]).map(function(e){return[e.key,e.value]})),d=u.map(function(e){return e.pid}),p=o.map(function(e){return e.pid}),f=c.filter(function(e){return e.value!==l[e.key]}),v=c.filter(function(e){return!l.has(e.key)}),m=o.filter(function(e){return!d.includes(e.pid)}),h=u.filter(function(e){return!p.includes(e.pid)});m.length&&t.handleGroupEvents({id:e,type:Ur.OptType.OPT_TYPE_REMOVE,ver:a.ver,updateOpt:{updateAction:Ur.GroupUpdate.GROUP_UPDATE_ADD_PARTICIPANTS,participants:m}},!0),h.length&&t.handleGroupEvents({id:e,ver:a.ver,type:Ur.OptType.OPT_TYPE_REMOVE,updateOpt:{updateAction:Ur.GroupUpdate.GROUP_UPDATE_REMOVE_PARTICIPANTS,participants:h}},!0),f.length&&t.handleGroupEvents({id:e,ver:a.ver,type:Ur.OptType.OPT_TYPE_UPDATE,updateOpt:{updateAction:Ur.GroupUpdate.GROUP_UPDATE_SET_PROPERTIES,properties:f}},!0),v.length&&t.handleGroupEvents({id:e,ver:a.ver,type:Ur.OptType.OPT_TYPE_UPDATE,updateOpt:{updateAction:Ur.GroupUpdate.GROUP_UPDATE_REMOVE_PROPERTIES,properties:v}},!0)}else t.handleGroupEvents({id:e,type:Ur.OptType.OPT_TYPE_REMOVE})})}},{key:"batchSyncGroup",value:function(e){var t=this;if(e.length)return this.serviceManager.rtcSignaling.syncDataByIds({type:Ur.DataType.DATA_TYPE_GROUP,ids:e.map(function(e){return{id:e}})}).then(function(e){e.fullSync.groupData.groupInfos.forEach(function(e){t.groupIds.add(e.id),t.groups.set(e.id,e)})})}},{key:"syncGroupList",value:function(){var e=this;this.serviceManager.rtcSignaling.syncData({type:Ur.DataType.DATA_TYPE_GROUP_LIST,forceFullSync:!0,ver:this.listVer}).then(function(t){var r=t.fullSync,i=r.ver,n=r.groupListData.groupIds,a=void 0===n?[]:n,o=a.filter(function(t){return!e.groupIds.has(t)}),s=Re(e.groupIds).filter(function(e){return!a.includes(e)});o.length&&o.forEach(function(t){e.handleGroupListEvents({ver:i,updateOpt:{updateAction:Ur.GroupListUpdate.GROUP_LIST_UPDATE_ADD_ID,id:t}},!0)}),s.length&&s.forEach(function(t){e.handleGroupListEvents({ver:i,updateOpt:{updateAction:Ur.GroupListUpdate.GROUP_LIST_UPDATE_REMOVE_ID,id:t}},!0)})})}},{key:"handleSyncEvent",value:function(e){var t=this,r=e.groupListVer,i=e.groupVer,n=void 0===i?[]:i;this.listVer<r&&(this.syncGroupList(),this.listVer=r),n.forEach(function(e){var r=e.id,i=e.ver,n=t.groups.get(r);(null==n?void 0:n.ver)<i&&(t.syncGroup(r),n.ver=i)})}}])}();function aa(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(aa=function(){return!!e})()}var oa=function(){function e(t,r){var i,n,a,o;j(this,e),n=this,a=G(a=e),i=U(n,aa()?Reflect.construct(a,[],G(n).constructor):a.apply(n,o)),Object.defineProperty(i,"serviceManager",{enumerable:!0,configurable:!0,writable:!0,value:r}),Object.defineProperty(i,"userId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"userName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"streamMap",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"videoTrack",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"auxiliaryTrack",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"audioTrack",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"joinedTime",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"properties",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"toJSON",{enumerable:!0,configurable:!0,writable:!0,value:function(){return{userId:i.userId,userName:i.userName,hasAuxiliary:i.hasAuxiliary,hasVideo:i.hasVideo,hasAudio:i.hasAudio,joinedTime:i.joinedTime,properties:i.properties,audioMuted:i.audioMuted,auxiliaryMuted:i.auxiliaryMuted,videoMuted:i.videoMuted}}});var s=t.user;return i.userId=s,i.videoTrack=null,i.audioTrack=null,i.auxiliaryTrack=null,i.serviceManager=r,i.joinedTime=Date.now(),i.update(t),i}return B(e,c),F(e,[{key:"relatedStreams",get:function(){var e=this;return Re(this.serviceManager.streamManager.streams.values()).filter(function(t){var r;return(null==t||null===(r=t.info)||void 0===r?void 0:r.owner)===e.id})}},{key:"hasAuxiliary",get:function(){return this.relatedStreams.some(function(e){var t;return(null===(t=e.media)||void 0===t||null===(t=t.video)||void 0===t?void 0:t.source)===me.SCREENCAST})}},{key:"hasVideo",get:function(){return this.relatedStreams.some(function(e){var t,r=e.media;return(null==r||null===(t=r.video)||void 0===t?void 0:t.source)===me.CAMERA})}},{key:"hasAudio",get:function(){return this.relatedStreams.some(function(e){var t,r=e.media;return(null==r||null===(t=r.audio)||void 0===t?void 0:t.source)===ve.MIC})}},{key:"audioMuted",get:function(){return this.relatedStreams.some(function(e){var t,r,i=e.media;return"active"!==(null==i||null===(t=i.audio)||void 0===t?void 0:t.status)&&(null==i||null===(r=i.audio)||void 0===r?void 0:r.source)===ve.MIC})}},{key:"auxiliaryMuted",get:function(){return this.relatedStreams.some(function(e){var t,r,i=e.media;return"active"!==(null==i||null===(t=i.video)||void 0===t?void 0:t.status)&&(null==i||null===(r=i.video)||void 0===r?void 0:r.source)===me.SCREENCAST})}},{key:"videoMuted",get:function(){return this.relatedStreams.some(function(e){var t,r,i=e.media;return"active"!==(null==i||null===(t=i.video)||void 0===t?void 0:t.status)&&(null==i||null===(r=i.video)||void 0===r?void 0:r.source)===me.CAMERA})}},{key:"updateNetworkOfUser",value:function(e){var t;if(this.properties.SdkType!==T.Web&&e){var r=e.split("");r[Te.UPLINK]=vt(r[Te.UPLINK]),r[Te.DOWNLINK]=vt(r[Te.DOWNLINK]),e=r.join("")}e!==(null===(t=this.properties)||void 0===t?void 0:t[Fe])&&(this.properties[Fe]=e)}},{key:"update",value:function(e){var t=e.id,r=e.propertiesJsonStr,i=e.ver,n=JSON.parse(r||"{}");this.id=t,this.userName=n.__nick,this.version=i;var a=this.properties||{};this.properties=n,this.updateNetworkOfUser(n[Fe]),!n.hasOwnProperty("mute_audio_record")||void 0!==a.mute_audio_record&&n.mute_audio_record===a.mute_audio_record||this.serviceManager.client.emit("user-mic-audio-muted",this.userId,!!n.mute_audio_record),!n.hasOwnProperty("enable_sys_audio")||void 0!==a.enable_sys_audio&&n.enable_sys_audio===a.enable_sys_audio||this.serviceManager.client.emit("user-screencast-audio-mixed",this.userId,!!n.enable_sys_audio)}},{key:"updateSubbedVideoTrack",value:function(e,t){var r=t?this.auxiliaryTrack:this.videoTrack,i=JSON.parse(e.stream.info.attributesJsonStr),n=Xe(e.mediaStream,"video",this.userId,r);return t?this.auxiliaryTrack=n:this.videoTrack=n,i.mirror&&n.setSourceMirror(i.mirror),n}}])}();function sa(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return ca(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?ca(e,t):void 0}}(e))||t){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function ca(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function ua(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(ua=function(){return!!e})()}var la=function(){function e(t,r){var i,n,a,o;return j(this,e),n=this,a=G(a=e),i=U(n,ua()?Reflect.construct(a,[],G(n).constructor):a.apply(n,o)),Object.defineProperty(i,"serviceManager",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(i,"users",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"currentUid",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"currentSelfPid",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"reporter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"logger",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"streamManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),i.users=new Map,i.serviceManager=t,i.reporter=t.reporter,i.logger=i.reporter.getLoggerWithPrefix("[rtc-userMgr]"),i.handleEvent=i.handleEvent.bind(i),i.streamManager=r,i}return B(e,c),F(e,[{key:"remoteUsers",get:function(){var e=this;return M(Re(this.users.values()).sort(function(e,t){return e.joinedTime-t.joinedTime}),"userId").filter(function(t){return t.userId&&t.id!==e.currentSelfPid})}},{key:"init",value:function(e,t){var r,i=sa(e);try{for(i.s();!(r=i.n()).done;){var n=r.value,a=new oa(n,this.serviceManager);this.users.set(n.user,a),t===n.user&&(this.currentUid=n.user)}}catch(e){i.e(e)}finally{i.f()}this.currentSelfPid=t,this.serviceManager.internalChannel.on("user",this.handleEvent)}},{key:"clear",value:function(){this.currentSelfPid="",this.currentUid="",this.users.clear(),this.serviceManager.internalChannel.off("user",this.handleEvent)}},{key:"handleEvent",value:function(e,t,r){var i=this;if(this.logger.info("userEvent ".concat(e," ").concat(JSON.stringify(t))),"join"===e){var n=new oa(t,this.serviceManager);this.users.set(t.user,n),this.emit("user","join",n)}else if("leave"===e){var a=this.users.get(t.user);this.users.delete(t.user),this.emit("user","leave",a)}else if("update"===e){var o=this.users.get(t.user);null==o||o.update(t)}else if("participant-replace"===e){var s=new Set(null==r?void 0:r.map(function(e){return e.id}));Re(this.streamManager.streams.values()).filter(function(e){var t;return s.has(null==e||null===(t=e.info)||void 0===t?void 0:t.owner)}).map(function(e){return e.id}).forEach(function(e){return i.streamManager.remove(e,!0)});var c=this.users.get(t.user);this.users.delete(t.user),this.emit("user","leave",c);var u=new oa(t,this.serviceManager);this.users.set(t.user,u),this.emit("user","join",u)}}},{key:"setParticipantProperties",value:function(e){return this.serviceManager.rtcSignaling.setParticipantProperties({participantId:this.currentSelfPid,roomId:this.serviceManager.roomId,propertiesJsonStr:JSON.stringify(Ee({},Fe,e))})}},{key:"notifyParticipantProperties",value:function(e){return this.serviceManager.rtcSignaling.setParticipantProperties({participantId:this.currentSelfPid,roomId:this.serviceManager.roomId,propertiesJsonStr:e})}}])}();function da(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return pa(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?pa(e,t):void 0}}(e))||t){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function pa(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function fa(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,i)}return r}function va(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?fa(Object(r),!0).forEach(function(t){Ee(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):fa(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function ma(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(ma=function(){return!!e})()}var ha=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50,r=null;return function(){for(var i=this,n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];r&&clearTimeout(r),r=setTimeout(function(){e.apply(i,a)},t)}},ga=function(){function e(t){var r,i,n,a;j(this,e),i=this,n=G(n=e),r=U(i,ma()?Reflect.construct(n,[],G(i).constructor):n.apply(i,a)),Object.defineProperty(r,"streams",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"totalVer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"reporter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"rtcSignaling",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"logger",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"debounceSyncRpc",{enumerable:!0,configurable:!0,writable:!0,value:ha(r.doSyncRpc,1e3)}),r.streams=new Map;var o=t.rtcSignaling,s=t.reporter;return r.rtcSignaling=o,r.reporter=s,r.logger=r.reporter.getLoggerWithPrefix("[rtc-streamMgr]"),r.handleEvent=r.handleEvent.bind(r),r.handleSyncEvent=r.handleSyncEvent.bind(r),r.debounceSyncRpc=r.debounceSyncRpc.bind(r),r}return B(e,c),F(e,[{key:"clear",value:function(){this.streams.clear(),this.totalVer=0,this.rtcSignaling.off("stream",this.handleEvent),this.rtcSignaling.off("sync",this.handleSyncEvent)}},{key:"init",value:function(e,t){var r,i=e.find(function(e){return"admin"===e.info.owner&&"mixed"===e.type});null==i||null===(r=i.media)||void 0===r||delete r.video,this.streams=new Map(e.map(function(e){return[e.id,e]})),this.totalVer=t,this.rtcSignaling.on("stream",this.handleEvent),this.rtcSignaling.on("sync",this.handleSyncEvent)}},{key:"add",value:function(e){var t,r=e.id,i=e.info.owner,n=e.media,a=n.video,o=n.audio;if(!this.streams.get(r)){var s=null===(t=e.media)||void 0===t||null===(t=t.video)||void 0===t?void 0:t.source,c=Re(this.streams.values()).find(function(e){var t;return e.info.owner===i&&(null===(t=e.media)||void 0===t||null===(t=t.video)||void 0===t?void 0:t.source)===s});c&&s&&this.remove(c.id),this.reporter.trace.streamsEvent(r,"add"),this.streams.set(e.id,e);var u=(null==a?void 0:a.source)===O.SCREENCAST;if((null==a?void 0:a.source)===O.CAMERA||u){this.emit("stream","add",{id:r,owner:i,mediaType:"video",auxiliary:u});var l="active"===a.status?"unmute":"mute";this.emit("stream","update",{owner:i,id:r,auxiliary:u,updateStatus:"".concat(l,"-video")})}if((null==o?void 0:o.source)===ve.MIC||(null==o?void 0:o.source)===ve.MIXED){this.emit("stream","add",{id:r,owner:i,mediaType:"audio"});var d="active"===o.status?"unmute":"mute";this.emit("stream","update",{owner:i,id:r,auxiliary:!1,updateStatus:"".concat(d,"-audio")})}}}},{key:"remove",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.streams.get(e);if(r&&(this.streams.delete(e),t)){this.reporter.trace.streamsEvent(e,"remove");var i=r.media,n=i.video,a=i.audio,o=r.info.owner,s=(null==n?void 0:n.source)===O.SCREENCAST;((null==n?void 0:n.source)===O.CAMERA||s)&&this.emit("stream","remove",{id:e,owner:o,mediaType:"video",auxiliary:s}),(null==a?void 0:a.source)!==ve.MIC&&(null==a?void 0:a.source)!==ve.MIXED||this.emit("stream","remove",{id:e,owner:o,mediaType:"audio"})}}},{key:"getStreamByTrackId",value:function(e){return Re(this.streams.values()).find(function(t){var r,i;return(null===(r=t.media.audio)||void 0===r?void 0:r.trackId)===e||(null===(i=t.media.video)||void 0===i?void 0:i.trackId)===e})}},{key:"handleEvent",value:function(e,t){var r=this,i=e.streamId,n=e.status,a=e.stream,o=e.msg,s=e.totalVer,c={add:[],remove:[],update:["audio.status","video.status","properties","highestResolutionLevel"]}[n];c.length&&!c.includes(o.field)||this.logger.info("streamEvent",e);var u=this.totalVer;if(s===u+1||s==Le||t)if("add"===n){if(!a||!a.media||!a.info)return;this.add(a)}else if("remove"===n)this.remove(i,!0);else if("update"===n){var l=o.field,d=o.streamStatus,p=o.activeStream,f=o.extraValue,v=o.streamVer,m=o.propertiesJsonStr,h=o.highestResolutionLevel,g=this.streams.get(i);if(g){v!==Le&&(g.version=v);var b=g.media,y=b.audio,k=b.video,S=g.info.owner;if("audio.status"===l||"video.status"===l){var P,w;"audio.status"===l?(w="audio",y.status=d):"video.status"===l&&(w="video",k.status=d),this.reporter.trace.streamsEvent(i,"".concat(w," ").concat(d));var T="active"===d?"unmute":"mute",M=(null===(P=g.media)||void 0===P||null===(P=P.video)||void 0===P?void 0:P.source)===O.SCREENCAST;this.emit("stream","update",{owner:S,id:i,updateStatus:"".concat(T,"-").concat(w),auxiliary:M})}else if("activeInput"===l){var E=[p].concat(f||[]).map(function(e){var t;return null===(t=r.streams.get(e))||void 0===t||null===(t=t.info)||void 0===t?void 0:t.owner}).filter(function(e){return!!e});this.reporter.trace.streamsEvent(JSON.stringify(E),l),this.emit("stream","volumeActive",{owners:E})}else if("properties"==l){var I,A={};try{A=JSON.parse(m)}catch(e){}g.info.attributesJsonStr=JSON.stringify(va(va({},JSON.parse(g.info.attributesJsonStr)),A));var R=(null===(I=g.media)||void 0===I||null===(I=I.video)||void 0===I?void 0:I.source)===O.SCREENCAST;this.emit("stream","update",{owner:S,id:i,properties:A,auxiliary:R})}else"highestResolutionLevel"===l&&(g.media.video.highestResolutionLevel=h,this.emit("stream","update",{owner:S,id:i,highestResolutionLevel:h}))}}t||s<=this.totalVer&&s!==Le||(s===u+1&&(this.totalVer=s),s>u+1&&!t&&(this.logger.info("debounceSyncRpc by stream event"),this.debounceSyncRpc()))}},{key:"doSyncRpc",value:(t=C(Oe.mark(function e(){var t,r,i,n,a,o,s,c,u,l,d,p,f,v,m=this;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=[],r=[],e.next=1,this.rtcSignaling.getStreamsVer({});case 1:i=e.sent,n=i.streamVersions,a=i.totalVer,o=Re(this.streams.keys()).filter(function(e){return!e.includes("vad")}),s=da(n),e.prev=2,s.s();case 3:if((c=s.n()).done){e.next=6;break}if(u=c.value,l=u.streamId,d=u.streamVer,!l.includes("vad")){e.next=4;break}return e.abrupt("continue",5);case 4:(p=this.streams.get(l))?p&&p.version!==d&&t.push(l):(r.push(l),t.push(l));case 5:e.next=3;break;case 6:e.next=8;break;case 7:e.prev=7,v=e.catch(2),s.e(v);case 8:return e.prev=8,s.f(),e.finish(8);case 9:if(f=n.map(function(e){return e.streamId}),o.filter(function(e){return!f.includes(e)}).forEach(function(e){m.handleEvent({status:"remove",streamId:e,stream:m.streams.get(e),totalVer:a},!0)}),this.reporter.trace.syncEvent("stream",o,f),this.totalVer=a,0!==t.length){e.next=10;break}return e.abrupt("return");case 10:this.rtcSignaling.getStreams({streamIds:t}).then(function(e){var i,n=e.totalVer,a=e.streams,o=new Map,s=da(m.streams.values());try{for(s.s();!(i=s.n()).done;){var c=i.value;o.set(c.id,c)}}catch(e){s.e(e)}finally{s.f()}var u,l=da(a);try{for(l.s();!(u=l.n()).done;){var d,p,f,v,h,g,b,y,k,S,P,w,T=u.value,M=m.streams.get(T.id);if(M)["active","inactive"].includes(null===(d=T.stream.media)||void 0===d||null===(d=d.video)||void 0===d?void 0:d.status)&&(null===(p=T.stream.media)||void 0===p||null===(p=p.video)||void 0===p?void 0:p.status)!==(null===(f=M.media)||void 0===f||null===(f=f.video)||void 0===f?void 0:f.status)&&m.handleEvent({streamId:M.id,status:"update",stream:T.stream,msg:{field:"video.status",streamStatus:null===(k=T.stream.media)||void 0===k||null===(k=k.video)||void 0===k?void 0:k.status,streamVer:T.stream.version},totalVer:n},!0),["active","inactive"].includes(null===(v=T.stream.media)||void 0===v||null===(v=v.audio)||void 0===v?void 0:v.status)&&(null===(h=T.stream.media)||void 0===h||null===(h=h.audio)||void 0===h?void 0:h.status)!==(null===(g=M.media)||void 0===g||null===(g=g.audio)||void 0===g?void 0:g.status)&&m.handleEvent({streamId:M.id,status:"update",stream:T.stream,msg:{field:"audio.status",streamStatus:null===(S=T.stream.media)||void 0===S||null===(S=S.audio)||void 0===S?void 0:S.status,activeStream:null,extraValue:null,streamVer:T.stream.version,propertiesJsonStr:"",highestResolutionLevel:void 0},totalVer:n},!0),null!==(b=T.stream.info)&&void 0!==b&&b.attributesJsonStr&&m.handleEvent({streamId:M.id,status:"update",stream:T.stream,msg:{field:"properties",streamVer:T.stream.version,propertiesJsonStr:(null===(P=T.stream.info)||void 0===P?void 0:P.attributesJsonStr)||"{}"},totalVer:n},!0),null!==(y=T.stream.media)&&void 0!==y&&null!==(y=y.video)&&void 0!==y&&y.highestResolutionLevel&&m.handleEvent({streamId:M.id,status:"update",stream:T.stream,msg:{field:"highestResolutionLevel",streamVer:T.stream.version,highestResolutionLevel:null===(w=T.stream.media)||void 0===w||null===(w=w.video)||void 0===w?void 0:w.highestResolutionLevel},totalVer:n},!0);else o.set(T.id,T.stream)}}catch(e){l.e(e)}finally{l.f()}for(var O=t.map(function(e){return o.get(e)}).filter(function(e){return!!e}).sort(function(e,t){return e.version-t.version}),E=0;E<O.length;E++){var I=O[E];r.includes(I.id)&&m.handleEvent({status:"add",streamId:I.id,stream:I,totalVer:n},!0)}o.clear(),m.totalVer=n});case 11:case"end":return e.stop()}},e,this,[[2,7,8,9]])})),function(){return t.apply(this,arguments)})},{key:"handleSyncEvent",value:function(e){var t=e.streamsVer;this.totalVer<t&&(this.logger.info("debounceSyncRpc by sync event"),this.debounceSyncRpc())}}]);var t}(),ba=new(F(function e(){j(this,e),Object.defineProperty(this,"roomId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"participantId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"myUid",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"joinInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"joinResponse",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}));function ya(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return ka(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?ka(e,t):void 0}}(e))||t){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function ka(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function Sa(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,i)}return r}function Pa(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Sa(Object(r),!0).forEach(function(t){Ee(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Sa(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function wa(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(wa=function(){return!!e})()}var Ta=function(){function e(t,r){var i,o,s,c,u;return j(this,e),o=this,s=G(s=e),i=U(o,wa()?Reflect.construct(s,[],G(o).constructor):s.apply(o,c)),Object.defineProperty(i,"rtcSignaling",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"sessionManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"groupManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"rtcUserManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"streamManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"remoteAudioTrack",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"internalChannel",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"reporter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"logger",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"roomId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"defaultVideoStreamType",{enumerable:!0,configurable:!0,writable:!0,value:"high"}),Object.defineProperty(i,"client",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"subscribedAudioStream",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"micMixedGroups",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"iceConfig",{enumerable:!0,configurable:!0,writable:!0,value:{level:0,iceServerList:[]}}),Object.defineProperty(i,"processingSubParamsMap",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(i,"joinInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"getSubTraceId",{enumerable:!0,configurable:!0,writable:!0,value:function(){return++e.subAcc}}),Object.defineProperty(i,"handleSubscribeParam",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t,r=e.mediaType,o=e.uid,s=e.auxiliary,c=i.getStream(e),u=i.rtcUserManager.users.get(o),l=i.groups.some(function(e){return e.joined}),d="mcu"===o?i.remoteAudioTrack:s?null==u?void 0:u.auxiliaryTrack:null==u?void 0:u.videoTrack,p=[],f=Re(i.processingSubParamsMap.values());i.logger.info("queueingSubParams",f,e),f.forEach(function(e){return p.push.apply(p,Re(e))});var v=p.find(function(e){return e.uid===o&&e.mediaType===r&&!!e.auxiliary==!!s});return"mcu"===o&&"video"===r||o&&"mcu"!==o&&"audio"===r?t=new n(a.InvaildArgument,"only support subscribe mcu audio"):"mcu"===o&&l?t=new n(a.SubscribeInvaild,"cannot subscribe mcu while in group"):d||v?t=new n(a.SubscribeInvaild,"duplicated subscription"):c||(i.logger.warn("".concat(o," videoTrack not existed")),t=new n(a.SubscribeStreamNotExisted)),{uid:o,user:u,error:t,stream:c,targetMediaType:r,resolutionInfo:"video"!==r||t?null:ir(i.defaultVideoStreamType,Ke(c))}}}),Object.defineProperty(i,"checkUnsubParam",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t,r=e.mediaType,o=e.uid,s=e.auxiliary,c=i.getStream(e),u=i.rtcUserManager.users.get(o),l="mcu"===o?i.remoteAudioTrack:s?null==u?void 0:u.auxiliaryTrack:null==u?void 0:u.videoTrack;"mcu"===o&&"video"===r||o&&"mcu"!==o&&"audio"===r?(i.logger.warn("only support unsubscribe mcu audio"),t=new n(a.InvaildArgument,"only support unsubscribe mcu audio")):c&&l||(i.logger.warn("".concat(o," videoTrack not existing")),t=new n(a.SubscribeStreamNotExisted));var d=i.sessionManager.getSessionByStreamId(null==c?void 0:c.id);return d||(i.logger.warn("no sub session"),t=new n(a.SubscribeStreamNotExisted)),{uid:o,user:u,error:t,stream:c,session:d,subMediaType:r,resolutionInfo:"video"!==r||t?null:ir(i.defaultVideoStreamType,Ke(c))}}}),Object.defineProperty(i,"handleJoinResponse",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=e.room,r=e.id,n=t.participants,a=t.streams,o=t.streamsVer,s=t.groupList,c=t.groupListVer;i.streamManager.init(a,o),i.groupManager.init(s,c),i.rtcUserManager.init(n,r),i.streamManager.on("stream",i.handleStreamEvent),i.rtcUserManager.on("user",i.handleUserEvent),i.groupManager.on("group",i.handleGroupEvent)}}),Object.defineProperty(i,"onAnnotationOperation",{enumerable:!0,configurable:!0,writable:!0,value:(u=C(Oe.mark(function e(t,r,n){var a;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(i.logger.info("got annotation start or stop",t,r,n),r!==ba.myUid){e.next=1;break}return a=Re(i.streamManager.streams.values()).find(function(e){var t;return(null===(t=e.media)||void 0===t||null===(t=t.video)||void 0===t?void 0:t.source)===n&&e.info.owner===ba.participantId}),e.next=1,i.rtcSignaling.setStreamProperties({streamId:a.id,propertiesJsonStr:JSON.stringify({annotation:"annotation-start"===t})});case 1:case"end":return e.stop()}},e)})),function(e,t,r){return u.apply(this,arguments)})}),i.reporter=r,i.logger=i.reporter.getLoggerWithPrefix("[rtc-svcMgr]"),i.internalChannel=new _({reporter:r,sdkVersion:De}),i.rtcSignaling=new wi(i.internalChannel),i.client=t,i.micMixedGroups=new Set,i.groupManager=new na(i),i.streamManager=new ga(i),i.rtcUserManager=new la(i,i.streamManager),i.sessionManager=new Zn(t,i),i.subscribedAudioStream="",i.handleStreamEvent=i.handleStreamEvent.bind(i),i.handleUserEvent=i.handleUserEvent.bind(i),i.handleGroupEvent=i.handleGroupEvent.bind(i),i}return B(e,c),F(e,[{key:"publishedLocalTracks",get:function(){var e=Re(this.sessionManager.sessions.values()).filter(function(e){return e.state===Se.Processing&&e instanceof jn}),t=new Set;return e.map(function(e){if(e.tracks){var r,i;if((null===(r=e.tracks)||void 0===r?void 0:r[0])instanceof Yn){var n=e.tracks[0].getMicAudioTrack();n&&t.add(n);var a=e.tracks[0].getScreenAudioTrack();return void(a&&t.add(a))}(null===(i=e.tracks)||void 0===i?void 0:i[0])&&t.add(e.tracks[0])}}),Re(t.values())}},{key:"groups",get:function(){var e=this;return this.groupManager.groupList.map(function(t){return Pa(Pa({},t),{},{audioPublished:e.micMixedGroups.has(t.id)})})}},{key:"handleStreamEvent",value:function(e,t){var r=t.id,i=t.owner,n=t.mediaType,a=t.auxiliary,o=t.owners,s=t.updateStatus,c=t.properties,u=t.highestResolutionLevel,l=this.internalChannel.userManager.participants,d=l.get(i),p=this.rtcUserManager.users.get(null==d?void 0:d.user),f=i===this.rtcUserManager.currentSelfPid;if("add"===e&&!f&&p)this.client.emit("user-published",p,n,a);else if("remove"===e&&p&&!f)this.sessionManager.removeSession(void 0,r),"video"===n&&(a&&p.auxiliaryTrack&&(p.auxiliaryTrack.stopPlay(),p.auxiliaryTrack=null),!a&&p.videoTrack&&(p.videoTrack.stopPlay(),p.videoTrack=null)),this.client.emit("user-unpublished",p,n,a);else if("update"===e){if(s)this.client.emit("user-info-updated",(null==p?void 0:p.userId)||this.rtcUserManager.currentUid,s,a);else if(null!=(null==c?void 0:c.mirror)){var v=a?p.auxiliaryTrack:p.videoTrack;null==v||v.setSourceMirror(c.mirror)}else if(null!=u){var m=this.sessionManager.getSessionByStreamId(r);if(!m)return;m.stream.media.video.highestResolutionLevel=u;var h=m.userConfigResolution,g=m.resolutionInfo;if(u>=h.resolutionLevel&&h.resolutionLevel>g.resolutionLevel)m.applyOptions(h,!0);else if(u<h.resolutionLevel){var b=ir(nr(u),Ke(m.stream));m.applyOptions(b,!0)}}}else if("volumeActive"===e){var y=o.map(function(e){return l.get(e)}).map(function(e){return null==e?void 0:e.user}).filter(function(e){return!!e});this.client.emit("volume-indicator",y)}}},{key:"handleGroupEvent",value:function(e,t,r){var i=this;if("add"===e)this.client.emit("group-add",t);else if("remove"===e){var n;if(this.micMixedGroups.delete(t.id),this.logger.info("unsub group for group removed",t),r&&(null===(n=r.audio)||void 0===n?void 0:n.id)===this.subscribedAudioStream){var a=r.audio;this.sessionManager.batchUnscribe([{stream:a,session:this.sessionManager.getSessionByStreamId(a.id),targetMediaType:"audio"}]).then(function(){a.id===i.subscribedAudioStream&&(i.updateSubscribedAudioStream(!1,""),i.remoteAudioTrack.stopPlay(),i.remoteAudioTrack=null)})}this.client.emit("group-remove",t)}else if("user-join"===e)this.client.emit("group-user-join",t,r);else if("user-leave"===e)this.client.emit("group-user-leave",t,r);else if("info-updated"===e){var o=r.key,s=r.value;this.client.emit("group-info-updated",t,o,s)}}},{key:"handleUserEvent",value:function(e,t){"join"===e?(this.client.emit("user-joined",t),t.hasVideo&&this.client.emit("user-published",t,"video"),t.hasAudio&&this.client.emit("user-published",t,"audio"),t.hasAuxiliary&&this.client.emit("user-published",t,"video",!0)):"leave"===e?this.client.emit("user-left",t):this.logger.warn("unhandled inner rtc user emitted event",e,t)}},{key:"getStream",value:function(e){var t,r=e.groupId,i=e.uid,n=e.auxiliary;if(r){var a,o=this.groupManager.groups.get(r);return null==o||null===(a=o.audioInfo)||void 0===a?void 0:a.audio}var s="mcu"===i?Re(this.streamManager.streams.values()):null===(t=this.rtcUserManager.users.get(i))||void 0===t?void 0:t.relatedStreams;return"mcu"===i?s.find(function(e){var t=e.info.owner,r=e.type;return"admin"===t&&"mixed"===r}):s.find(function(e){var t=e.media.video;return(null==t?void 0:t.source)===(n?O.SCREENCAST:O.CAMERA)})}},{key:"join",value:(l=C(Oe.mark(function e(t){var r,i,n,a,o,s;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return this.logger.info("join",Qe.gslb[0]),this.sessionManager.mixedLocalAudioTrack.setSelfMicMutedProperty(t.initMicMuted),e.next=1,this.rtcSignaling.join(t,Qe.gslb[0]);case 1:return i=e.sent,n=i.joinResponse,a=i.iceConfig,null!=(null==(o=this.internalChannel.staticConfig)||null===(r=o.websdkConfig)||void 0===r?void 0:r.simulcast)&&(Qe.simulcast=null==o||null===(s=o.websdkConfig)||void 0===s?void 0:s.simulcast),this.roomId=n.room.id,un(n.room.ssrcMask,n.room.ssrcClientSequence),this.reporter.updateCommonInfo({roomId:this.roomId,participantId:n.id}),ba.roomId=this.roomId,ba.participantId=n.id,ba.myUid=t.uid,ba.joinInfo=t,ba.joinResponse=n,a&&a.uis&&this.setIceConfig(a.uis),this.sessionManager.start(),this.handleJoinResponse(n),e.abrupt("return",n);case 2:case"end":return e.stop()}},e,this)})),function(e){return l.apply(this,arguments)})},{key:"setIceConfig",value:function(e){var t=e.iceServerList,r=void 0===t?[]:t;e.level&&(e.iceServerList=r.filter(function(e){return/([0-9]{1,3}\.){3}[0-9]{1,3}/i.test(e)}),this.iceConfig=e)}},{key:"clear",value:function(){var e;this.rtcUserManager.clear(),this.streamManager.clear(),this.sessionManager.clear(),this.micMixedGroups.clear(),this.groupManager.clear(),this.subscribedAudioStream="",null===(e=this.remoteAudioTrack)||void 0===e||e.stopPlay(),this.remoteAudioTrack=null,this.iceConfig=null,this.roomId="",this.streamManager.off("stream",this.handleStreamEvent),this.rtcUserManager.off("user",this.handleUserEvent),this.groupManager.off("group",this.handleGroupEvent)}},{key:"leave",value:function(){if("disconnected"!==this.internalChannel.connectionState)return this.reporter.trace.leave(),this.rtcSignaling.leave()}},{key:"publish",value:(u=C(Oe.mark(function e(t){var r,i,n,a;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=this.micMixedGroups,i=this.groupManager,n=this.groups,a=[],n.some(function(e){return e.joined})?a.push.apply(a,Re(Re(r).map(function(e){var t;return null===(t=i.groups.get(e))||void 0===t||null===(t=t.audioInfo)||void 0===t?void 0:t.label}).filter(function(e){return!!e}))):a.push("common"),e.abrupt("return",this.sessionManager.batchPublish(t,a));case 1:case"end":return e.stop()}},e,this)})),function(e){return u.apply(this,arguments)})},{key:"unpublish",value:(s=C(Oe.mark(function e(t){var r,i,n,a,o,s,c,u=this;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.sessionManager.republishPromise){e.next=5;break}return this.logger.info("wait for repub before unpublish"),e.prev=1,e.next=2,this.sessionManager.republishPromise;case 2:e.next=4;break;case 3:e.prev=3,e.catch(1);case 4:this.logger.info("go unpublish after repub");case 5:return r=t.filter(function(e){return"audio"===e.trackMediaType}),i=t.filter(function(e){return"audio"!==e.trackMediaType}),n=!1,r.length>0&&(a=(this.sessionManager.mixedLocalAudioTrack.getMicAudioTrack()?1:0)+(this.sessionManager.mixedLocalAudioTrack.getScreenAudioTrack()?1:0),r.length>=a?(this.sessionManager.mixedLocalAudioTrack.setMicAudioTrack(null),this.sessionManager.mixedLocalAudioTrack.setScreenAudioTrack(null),i.push(this.sessionManager.mixedLocalAudioTrack),n=!0):(r[0].source===ve.MIC?this.sessionManager.mixedLocalAudioTrack.setMicAudioTrack(null):this.sessionManager.mixedLocalAudioTrack.setScreenAudioTrack(null),this.sessionManager.mixedLocalAudioTrack.updateMixedAudioTrackToPub())),o=new Set(i.map(function(e){return e.getTrackId()})),(s=Re(this.sessionManager.sessions.values()).filter(function(e){var t,r;return e instanceof jn&&o.has(null===(t=e.tracks)||void 0===t||null===(t=t[0])||void 0===t?void 0:t.getTrackId())&&"video"===(null===(r=e.tracks)||void 0===r||null===(r=r[0])||void 0===r?void 0:r.trackMediaType)})).forEach(function(e){u.reporter.trace.unpublish(e.id)}),c=Re(s),n&&(c.push(this.sessionManager.mixedLocalAudioTrack.getPublication()),this.sessionManager.mixedLocalAudioTrack.setPublication(null)),e.abrupt("return",this.sessionManager.batchUnPublish(c));case 6:case"end":return e.stop()}},e,this,[[1,3]])})),function(e){return s.apply(this,arguments)})},{key:"updateSubbedRemoteTrack",value:function(e,t){var r=this;if(null==t||!t.mediaStream)return null;var i=this.rtcUserManager.users.get(e.uid);if("audio"===e.mediaType){var n=this.remoteAudioTrack;return this.remoteAudioTrack=Xe(t.mediaStream,"audio","mcu",this.remoteAudioTrack),this.updateSubscribedAudioStream(!0,""),n||t.once("audio-first-frame",function(){r.remoteAudioTrack.emit("first-frame-decoded")}),this.remoteAudioTrack}return i.updateSubbedVideoTrack(t,e.auxiliary)}},{key:"batchSubscribe",value:(o=C(Oe.mark(function e(t){var r,i,n,a,o,s=this;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.map(this.handleSubscribeParam),i=this.getSubTraceId(),this.processingSubParamsMap.set(i,t),e.prev=1,e.next=2,this.sessionManager.batchSubscribe(r);case 2:return n=e.sent,a=[],t.forEach(function(e,t){var r=e.auxiliary,i=e.uid,o=n[t],c=o.error,u=o.subscription;a.push({uid:i,auxiliary:r,error:c,track:s.updateSubbedRemoteTrack(e,u)})}),e.abrupt("return",a);case 3:throw e.prev=3,o=e.catch(1),this.logger.error("batch sub error",o),o;case 4:return e.prev=4,this.processingSubParamsMap.delete(i),e.finish(4);case 5:case"end":return e.stop()}},e,this,[[1,3,4,5]])})),function(e){return o.apply(this,arguments)})},{key:"batchUnsubscribe",value:(i=C(Oe.mark(function e(t){var r,i,n,a,o,s,c,u,l,d,p=this;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.sessionManager.resubscribePromise){e.next=5;break}return this.logger.info("wait for resuball before unsubscribe"),e.prev=1,e.next=2,this.sessionManager.resubscribePromise;case 2:e.next=4;break;case 3:e.prev=3,e.catch(1);case 4:this.logger.info("go unsubscribe after resuball");case 5:r=[],i=ya(t);try{for(i.s();!(n=i.n()).done;)a=n.value,o=this.checkUnsubParam(a),s=o.session,c=o.stream,u=o.user,l=o.uid,d=o.error,s&&c&&!d&&(this.reporter.trace.unsubscribe({sessionId:s.id,remoteStreamId:c.id,remoteUserId:l}),r.push(Pa({stream:c,user:u,session:s},a)))}catch(e){i.e(e)}finally{i.f()}if(r.length){e.next=6;break}return e.abrupt("return",Promise.resolve());case 6:return e.abrupt("return",this.sessionManager.batchUnscribe(r).then(function(e){for(var t=0,i=r;t<i.length;t++){var n,a=i[t],o=a.mediaType,s=a.user,c=a.auxiliary;if("audio"===o)p.updateSubscribedAudioStream(!1,""),null===(n=p.remoteAudioTrack)||void 0===n||n.stopPlay(),p.remoteAudioTrack=null;else if(c){var u;null===(u=s.auxiliaryTrack)||void 0===u||u.stop(),s.auxiliaryTrack=null}else{var l;null===(l=s.videoTrack)||void 0===l||l.stop(),s.videoTrack=null}}return e}));case 7:case"end":return e.stop()}},e,this,[[1,3]])})),function(e){return i.apply(this,arguments)})},{key:"updateSubscribedAudioStream",value:function(e,t){this.subscribedAudioStream=t,this.emit("suscribedAudio",e,t)}},{key:"subscribeGroup",value:function(e){var t=this,r=this.getStream({groupId:e});if(!r)throw new n(a.InvaildArgument,"cannot find audio info of the group");if(this.subscribedAudioStream)throw new n(a.InvaildState,"you were subscribed group or channel already");return this.sessionManager.batchSubscribe([{stream:r,uid:e,targetMediaType:"audio"}]).then(function(i){return t.updateSubscribedAudioStream(!0,r.id),t.remoteAudioTrack=Xe(i[0].subscription.mediaStream,"audio",e,t.remoteAudioTrack),t.remoteAudioTrack})}},{key:"unsubscribeGroup",value:function(e){var t=this,r=this.getStream({groupId:e});return r?this.subscribedAudioStream!==r.id?Promise.reject(new n(a.InvaildState,"you were not subscribed the group")):this.sessionManager.batchUnscribe([{stream:r,session:this.sessionManager.getSessionByStreamId(r.id),targetMediaType:"audio"}]).then(function(){r.id===t.subscribedAudioStream&&(t.updateSubscribedAudioStream(!1,""),t.remoteAudioTrack.stopPlay(),t.remoteAudioTrack=null)}):Promise.reject(new n(a.InvaildArgument,"cannot find audio info of the group"))}},{key:"setRemoteStreamType",value:function(e,t,r){this.logger.info("setRemoteStreamType",e,t,r);var i=this.getStream({uid:e,mediaType:"video",auxiliary:r}),n=this.sessionManager.getSessionByStreamId(i.id),a=ir(t,Ke(i));return n.applyOptions(a,!1)}},{key:"joinGroup",value:function(e){var t=this,r=e.groupId,i=e.publishAudioToGroup;return this.groupManager.join(e).then(function(e){t.logger.info("joinGroup response",e);var n=e.joinGroupAudioSuccess;i&&n&&t.micMixedGroups.add(r)})}},{key:"leaveGroup",value:function(e){var t=this,r=e.groupId;return this.groupManager.leave(e).then(function(){t.micMixedGroups.delete(r)})}},{key:"dismissGroup",value:function(e){var t=this;return this.groupManager.dismiss(e).then(function(){t.micMixedGroups.delete(e)})}},{key:"mixGroupAudio",value:function(e,t,r){return this.rtcSignaling.streamControl({operation:r,streamId:e,data:t})}},{key:"setGroupProperties",value:function(e,t){return this.groupManager.setProperties(e,t)}},{key:"publishToGroup",value:(r=C(Oe.mark(function e(t){var r,i,o,s=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r=!(s.length>1&&void 0!==s[1])||s[1],i=[],null!=t&&i.push(this.groupManager.groups.get(t).audioInfo.label),this.sessionManager.mixedLocalAudioTrack.isPublished()){e.next=1;break}throw this.logger.error("publishToGroup: no published audio track found"),new n(a.InvaildState,"no published audio track found");case 1:if(o=this.streamManager.getStreamByTrackId(this.sessionManager.mixedLocalAudioTrack.getTrackId()),null==t){e.next=4;break}return e.next=2,this.mixGroupAudio(o.id,i[0],"mix");case 2:if(this.micMixedGroups.add(t),!r){e.next=3;break}return e.next=3,this.mixGroupAudio(o.id,"common","unmix");case 3:e.next=5;break;case 4:return e.next=5,this.mixGroupAudio(o.id,"common","mix");case 5:case"end":return e.stop()}},e,this)})),function(e){return r.apply(this,arguments)})},{key:"unpublishFromGroup",value:(t=C(Oe.mark(function e(t){var r,i,o,s=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r=s.length>1&&void 0!==s[1]&&s[1],i=this.groupManager.groups.get(t).audioInfo.label,this.sessionManager.mixedLocalAudioTrack.isPublished()){e.next=1;break}throw this.logger.error("unpublishFromGroup: no published audio track found"),new n(a.InvaildState,"no published audio track found");case 1:return o=this.streamManager.getStreamByTrackId(this.sessionManager.mixedLocalAudioTrack.getTrackId()),e.next=2,this.mixGroupAudio(o.id,i,"unmix");case 2:if(this.micMixedGroups.delete(t),!r){e.next=3;break}return e.next=3,this.mixGroupAudio(o.id,"common","mix");case 3:case"end":return e.stop()}},e,this)})),function(e){return t.apply(this,arguments)})}]);var t,r,i,o,s,u,l}();function Ma(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Ma=function(){return!!e})()}Object.defineProperty(Ta,"subAcc",{enumerable:!0,configurable:!0,writable:!0,value:0});var Oa={timestamp:-1,maxPlayLevel:-1,maxRecLevel:-1},Ea=function(){function e(t){var r,i,n,a,o;return j(this,e),i=this,n=G(n=e),r=U(i,Ma()?Reflect.construct(n,[],G(i).constructor):n.apply(i,a)),Object.defineProperty(r,"audioDeviceBufferReport",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"audioDeviceBufferInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"client",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"makeReport",{enumerable:!0,configurable:!0,writable:!0,value:(o=C(Oe.mark(function e(){var t,i,n,a,o;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,r.client.getLocalAudioStats();case 1:return t=e.sent,i=t.audioLevel,e.next=2,r.client.getRemoteAudioStats();case 2:n=e.sent,a=n.audioLevel,o={timestamp:Date.now(),maxRecLevel:Math.min(1,i||0),maxPlayLevel:Math.min(1,Math.max(0,a||0))},r.audioDeviceBufferInfo.timestamp>0&&(r.audioDeviceBufferReport={attr_duration_ms:mt(o.timestamp,r.audioDeviceBufferInfo.timestamp),attr_play_level:Math.round(32767*o.maxPlayLevel),attr_rec_level:Math.round(32767*o.maxRecLevel)},r.emit("audio-device-buffer",Object.assign({},r.audioDeviceBufferReport))),r.audioDeviceBufferInfo=o;case 3:case"end":return e.stop()}},e)})),function(){return o.apply(this,arguments)})}),r.audioDeviceBufferReport={attr_duration_ms:0,attr_rec_level:0,attr_play_level:0},r.audioDeviceBufferInfo=Object.assign({},Oa),r.client=t,r}return B(e,Mi),F(e)}();function Ia(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,i)}return r}function Aa(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ia(Object(r),!0).forEach(function(t){Ee(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ia(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function Ra(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return _a(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_a(e,t):void 0}}(e))||t){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function _a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function xa(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(xa=function(){return!!e})()}var Ca=function(){function t(e){var r,i,n,a;return j(this,t),i=this,n=G(n=t),r=U(i,xa()?Reflect.construct(n,[],G(i).constructor):n.apply(i,a)),Object.defineProperty(r,"channelName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"id",{enumerable:!0,configurable:!0,writable:!0,value:y(6)}),Object.defineProperty(r,"reporter",{enumerable:!0,configurable:!0,writable:!0,value:I(r.id)}),Object.defineProperty(r,"logger",{enumerable:!0,configurable:!0,writable:!0,value:r.reporter.getLoggerWithPrefix("[rtc-client]")}),Object.defineProperty(r,"serviceManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"monitor",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"syncStatTimer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"clientStatSync",{enumerable:!0,configurable:!0,writable:!0,value:[0,0,0,0,0,0]}),Object.defineProperty(r,"currentClientState",{enumerable:!0,configurable:!0,writable:!0,value:""}),Object.defineProperty(r,"deviceChecker",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),r.serviceManager=new Ta(r,r.reporter),r.handleVisibilitychange=r.handleVisibilitychange.bind(r),r.handleNetworkQuality=r.handleNetworkQuality.bind(r),r.handleConnectionChangeEvent=r.handleConnectionChangeEvent.bind(r),r.handlePageUnload=r.handlePageUnload.bind(r),r.init(),r.deviceChecker=null==e?void 0:e.deviceChecker,r}return B(t,c),F(t,[{key:"remoteUsers",get:function(){return this.serviceManager.rtcUserManager.remoteUsers}},{key:"groups",get:function(){return this.serviceManager.groups}},{key:"userId",get:function(){var e;return(null===(e=this.serviceManager.internalChannel)||void 0===e||null===(e=e.joinInfo)||void 0===e?void 0:e.uid)||""}},{key:"localTracks",get:function(){return this.serviceManager.publishedLocalTracks}},{key:"connectionState",get:function(){var e;return(null===(e=this.serviceManager.internalChannel)||void 0===e?void 0:e.connectionState)||"disconnected"}},{key:"init",value:function(){this.syncStatTimer&&(m(this.syncStatTimer,"interval"),this.syncStatTimer=null),this.currentClientState="",this.channelName="",this.serviceManager.clear(),this.removeEventListeners(),this.monitor&&(this.monitor.stop(),this.monitor.removeAllListeners(),this.monitor=null),this.clientStatSync=[0,0,0,0,0,0]}},{key:"emit",value:function(e){for(var r=arguments.length,i=new Array(r>1?r-1:0),n=1;n<r;n++)i[n-1]=arguments[n];var a,o,s,c,u;"network-quality"!==e&&"volume-indicator"!==e&&(a=this.logger).info.apply(a,["client emit event",e].concat(i));return(o="emit",s=this,c=3,u=_e(G(t.prototype),o,s),2&c&&"function"==typeof u?function(e){return u.apply(s,e)}:u)([e].concat(i))}},{key:"startPlugin",value:(v=C(Oe.mark(function e(t,r){var i;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.logger.info("startPlugin",t,r),"DeviceChecker"===t){e.next=1;break}return this.logger.error("not supported plugin",t),e.abrupt("return",Promise.reject("not supported plugin"));case 1:if(this.deviceChecker){e.next=2;break}return this.logger.error("deviceChecker should be created in DingRTC.createClient before start"),e.abrupt("return",Promise.reject("plugin not created"));case 2:return e.prev=2,e.abrupt("return",this.deviceChecker.start(r));case 3:return e.prev=3,i=e.catch(2),this.logger.error("startPlugin error",t,r,i),e.abrupt("return",Promise.reject(i));case 4:case"end":return e.stop()}},e,this,[[2,3]])})),function(e,t){return v.apply(this,arguments)})},{key:"join",value:(f=C(Oe.mark(function e(t){var r,i,n=this;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return this.logger.info("join",t),e.prev=1,this.addEventListeners(),void 0===t.initMicMuted&&(t.initMicMuted=!0),e.next=2,this.serviceManager.join(t).then(function(e){var r;return n.channelName=t.channel,n.monitor=new Ea(n),n.monitor.on("audio-device-buffer",function(e){n.reporter.metric.audioDeviceBuffer(e)}),n.syncStatTimer=d(function(){n.sendClientStatToRemote()},2e3,"interval"),{remoteUsers:n.remoteUsers,timeLeft:null===(r=e.room)||void 0===r?void 0:r.timeLeft}}).catch(function(e){throw n.init(),e});case 2:return r=e.sent,e.abrupt("return",r);case 3:return e.prev=3,i=e.catch(1),this.logger.error("join error",t,i),e.abrupt("return",Promise.reject(i));case 4:case"end":return e.stop()}},e,this,[[1,3]])})),function(e){return f.apply(this,arguments)})},{key:"setRemoteDefaultVideoStreamType",value:function(e){this.logger.info("setRemoteDefaultVideoStreamType",e),this.serviceManager.defaultVideoStreamType=e}},{key:"leave",value:function(){this.logger.info("leave"),this.serviceManager.leave(),this.init()}},{key:"publish",value:(p=C(Oe.mark(function e(t){var r,i,o,s,c,u,l,d,p,f,v,m=this;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if((r=this.logger).info.apply(r,["publish"].concat(Re((Array.isArray(t)?t:[t]).map(function(e){return{mediaType:null==e?void 0:e.trackMediaType,trackId:null==e?void 0:e.getTrackId(),source:null==e?void 0:e.source}})))),e.prev=1,"connected"===this.connectionState){e.next=2;break}return e.abrupt("return",Promise.reject(new n(a.PublishNotJoinChannel)));case 2:i=(Array.isArray(t)?t:[t]).filter(function(e){return e instanceof wr&&!m.localTracks.includes(e)}),o=i.concat(this.localTracks),s=Ee(Ee(Ee(Ee({},"video"+me.CAMERA,0),"video"+me.SCREENCAST,0),"audio"+ve.MIC,0),"audio"+ve.SCREENCAST,0),c=Ra(o),e.prev=3,c.s();case 4:if((u=c.n()).done){e.next=6;break}if(l=u.value,s[l.trackMediaType+l.source]++,!(s[l.trackMediaType+l.source]>=2)){e.next=5;break}throw new n(a.QuotaLimitExceed,"".concat(l.trackMediaType,"-").concat(l.source," published already"));case 5:e.next=4;break;case 6:e.next=8;break;case 7:e.prev=7,f=e.catch(3),c.e(f);case 8:return e.prev=8,c.f(),e.finish(8);case 9:if(i.length){e.next=10;break}throw new n(a.PublishNoStream);case 10:return e.next=11,this.serviceManager.publish(i);case 11:return d=e.sent,e.abrupt("return",d);case 12:return e.prev=12,v=e.catch(1),(p=this.logger).error.apply(p,["publish error"].concat(Re((Array.isArray(t)?t:[t]).map(function(e){return{mediaType:null==e?void 0:e.trackMediaType,trackId:null==e?void 0:e.getTrackId(),source:null==e?void 0:e.source}})),[v])),e.abrupt("return",Promise.reject(v));case 13:case"end":return e.stop()}},e,this,[[1,12],[3,7,8,9]])})),function(e){return p.apply(this,arguments)})},{key:"unpublish",value:(l=C(Oe.mark(function e(t){var r,i,o,s,c;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if((r=this.logger).info.apply(r,["unpublish param"].concat(Re((Array.isArray(t)?t:[t]).map(function(e){return{mediaType:null==e?void 0:e.trackMediaType,trackId:null==e?void 0:e.getTrackId(),source:null==e?void 0:e.source}})))),e.prev=1,i=Array.isArray(t)?t:[t],t||(i=this.localTracks),this.logger.info("unpublish tracks",i.map(function(e){return e.trackMediaType})),"connected"===this.connectionState){e.next=2;break}return e.abrupt("return",Promise.reject(new n(a.ConnectionConnectFail)));case 2:return e.next=3,this.serviceManager.unpublish(i);case 3:return o=e.sent,e.abrupt("return",o);case 4:return e.prev=4,c=e.catch(1),(s=this.logger).error.apply(s,["unpub error"].concat(Re((Array.isArray(t)?t:[t]).map(function(e){return{mediaType:null==e?void 0:e.trackMediaType,trackId:null==e?void 0:e.getTrackId(),source:null==e?void 0:e.source}})),[c])),e.abrupt("return",Promise.reject(c));case 5:case"end":return e.stop()}},e,this,[[1,4]])})),function(e){return l.apply(this,arguments)})},{key:"subscribe",value:(u=C(Oe.mark(function e(t,r,i){var o,s;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,this.logger.info("subscribe",t,r,i),"connected"===this.connectionState){e.next=1;break}throw new n(a.SubscribeNotJoinChannel);case 1:return e.next=2,this.serviceManager.batchSubscribe([{uid:t,mediaType:r,auxiliary:i}]).then(function(e){var t=e[0],r=t.error,i=t.track;if(r)throw r;return i});case 2:return o=e.sent,e.abrupt("return",o);case 3:return e.prev=3,s=e.catch(0),this.logger.error("subscribe error",t,r,i,s),e.abrupt("return",Promise.reject(s));case 4:case"end":return e.stop()}},e,this,[[0,3]])})),function(e,t,r){return u.apply(this,arguments)})},{key:"batchSubscribe",value:(s=C(Oe.mark(function e(t){var r,i;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,this.logger.info("batchSubscribe",t),Array.isArray(t)&&t.length){e.next=1;break}return e.abrupt("return");case 1:if("connected"===this.connectionState){e.next=2;break}throw new n(a.SubscribeNotJoinChannel);case 2:return e.next=3,this.serviceManager.batchSubscribe(t.map(function(e){return Aa(Aa({},e),{},{action:"subscribe"})}));case 3:return r=e.sent,e.abrupt("return",r);case 4:return e.prev=4,i=e.catch(0),this.logger.error("batchSubscribe error",i),e.abrupt("return",Promise.reject(i));case 5:case"end":return e.stop()}},e,this,[[0,4]])})),function(e){return s.apply(this,arguments)})},{key:"unsubscribe",value:(o=C(Oe.mark(function e(t,r,i){var o,s;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.logger.info("unsubscribe",t,r,i),e.prev=1,"connected"===this.connectionState){e.next=2;break}return e.abrupt("return",Promise.reject(new n(a.ConnectionConnectFail)));case 2:return e.next=3,this.serviceManager.batchUnsubscribe([{uid:t,auxiliary:i,mediaType:r}]).then(function(e){var t,r=null==e||null===(t=e[0])||void 0===t?void 0:t.error;if(r)throw r});case 3:return o=e.sent,e.abrupt("return",o);case 4:return e.prev=4,s=e.catch(1),this.logger.error("unsubscribe error",t,r,s),e.abrupt("return",Promise.reject(s));case 5:case"end":return e.stop()}},e,this,[[1,4]])})),function(e,t,r){return o.apply(this,arguments)})},{key:"batchUnsubscribe",value:(i=C(Oe.mark(function e(t){var r,i;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.logger.info("batchUnsubscribe",t),e.prev=1,Array.isArray(t)&&t.length){e.next=2;break}return e.abrupt("return");case 2:if("connected"===this.connectionState){e.next=3;break}return e.abrupt("return",Promise.reject(new n(a.SubscribeNotJoinChannel)));case 3:return e.next=4,this.serviceManager.batchUnsubscribe(t.map(function(e){return Aa(Aa({},e),{},{action:"unsubscribe"})}));case 4:return r=e.sent,e.abrupt("return",r);case 5:return e.prev=5,i=e.catch(1),this.logger.error("batchUnsubscribe error",t,i),e.abrupt("return",Promise.reject(i));case 6:case"end":return e.stop()}},e,this,[[1,5]])})),function(e){return i.apply(this,arguments)})},{key:"getLocalAudioStats",value:function(){return this.serviceManager.sessionManager.getLocalAudioStats("user")}},{key:"getLocalVideoStats",value:function(){return this.serviceManager.sessionManager.getLocalVideoStats("user")}},{key:"setRemoteVideoStreamType",value:(r=C(Oe.mark(function e(t,r,i){var o,s,c,u=this;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,this.logger.info("setRemoteVideoStreamType",t,r,i),"connected"===this.connectionState){e.next=1;break}return e.abrupt("return",Promise.reject(new n(a.ConnectionConnectFail)));case 1:if(null!=(o=this.remoteUsers.find(function(e){return e.userId===t}))&&o.relatedStreams){e.next=2;break}return this.logger.info("".concat(t," videoTrack not existed")),e.abrupt("return",Promise.reject("viedoTrack doesnt exiested"));case 2:return e.next=3,this.serviceManager.setRemoteStreamType(t,r,i).then(function(){u.emit("stream-type-changed",t,r,i)});case 3:return s=e.sent,e.abrupt("return",s);case 4:return e.prev=4,c=e.catch(0),this.logger.error("setRemoteVideoStreamType error",t,r,i,c),e.abrupt("return",Promise.reject(c));case 5:case"end":return e.stop()}},e,this,[[0,4]])})),function(e,t,i){return r.apply(this,arguments)})},{key:"getRemoteVideoStats",value:function(){return this.serviceManager.sessionManager.getRemoteVideoStats("user")}},{key:"getRemoteAudioStats",value:function(){return this.serviceManager.sessionManager.getRemoteAudioStats("user")}},{key:"getRemoteNetworkQuality",value:function(){var e={};return this.remoteUsers.forEach(function(t){var r,i,n=t.properties,a=t.userId;e[a]={downlinkNetworkQuality:Number((null==n||null===(r=n[Fe])||void 0===r?void 0:r[Te.DOWNLINK])||0),uplinkNetworkQuality:Number((null==n||null===(i=n[Fe])||void 0===i?void 0:i[Te.UPLINK])||0)}}),e}},{key:"handleConnectionChangeEvent",value:function(e,t,r){this.logger.info("connectionStateChange from ".concat(t," to ").concat(e," ").concat(r||"")),"disconnected"===e&&this.init(),this.emit("connection-state-change",e,t,r)}},{key:"sendClientStatToRemote",value:function(){var e=this,t=this.clientStatSync.join("");if(t!==this.currentClientState){var r=vt(null,t[Te.UPLINK]),i=vt(null,this.currentClientState[Te.UPLINK]),n=vt(null,t[Te.DOWNLINK]),a=vt(null,this.currentClientState[Te.DOWNLINK]);r===i&&n===a||this.serviceManager.rtcUserManager.setParticipantProperties(t).catch(function(t){e.logger.info("setParticipantProperties error ".concat(g(t)))}),this.currentClientState=t}}},{key:"handleVisibilitychange",value:function(){var t="visible"!==document.visibilityState,r=t?E.APP_BACKGROUND:E.APP_FOREGROUND;(e.isAndroid()||e.isIOS())&&(this.reporter.sender.sendEvent(r),this.clientStatSync[Te.BACKGROUND_MODE]=Number(t))}},{key:"handleNetworkQuality",value:function(e,t){this.clientStatSync[Te.UPLINK]=e,this.clientStatSync[Te.DOWNLINK]=t,this.emit("network-quality",e,t)}},{key:"handlePageUnload",value:function(e){"connected"===this.connectionState&&(this.logger.info("leave for ".concat(e.type)),this.leave())}},{key:"addEventListeners",value:function(){window.addEventListener(e.isSafari()?"beforeunload":"pagehide",this.handlePageUnload),document.addEventListener("visibilitychange",this.handleVisibilitychange),this.serviceManager.sessionManager.on("network-quality",this.handleNetworkQuality),this.serviceManager.rtcSignaling.on("connection-state-change",this.handleConnectionChangeEvent)}},{key:"removeEventListeners",value:function(){window.removeEventListener(e.isSafari()?"beforeunload":"pagehide",this.handlePageUnload),document.removeEventListener("visibilitychange",this.handleVisibilitychange),this.serviceManager.sessionManager.off("network-quality",this.handleNetworkQuality),this.serviceManager.rtcSignaling.off("connection-state-change",this.handleConnectionChangeEvent)}},{key:"joinGroup",value:function(e){this.logger.info("joinGroup",e);try{if("connected"!==this.connectionState)return Promise.reject(new n(a.ConnectionConnectFail));var t=e.userData,r=e.groupId,i=new TextEncoder;if(!r||i.encode(r).length>64)throw new n(a.InvaildArgument,"join group with invalid groupId");if(t){var o=new TextEncoder;if("string"!=typeof t||o.encode(t).length>64)throw new n(a.InvaildArgument,"join group with invalid userData")}return this.serviceManager.joinGroup(e)}catch(t){return this.logger.error("joinGroup error",e,t),Promise.reject(t)}}},{key:"leaveGroup",value:function(e){this.logger.info("leaveGroup",e);try{return"connected"!==this.connectionState?Promise.reject(new n(a.ConnectionConnectFail)):this.serviceManager.leaveGroup({groupId:e,publishAudioToChannel:!1})}catch(t){return this.logger.error("leaveGroup error",e,t),Promise.reject(t)}}},{key:"setGroupName",value:function(e,t){this.logger.info("setGroupName",e,t);try{if("connected"!==this.connectionState)return Promise.reject(new n(a.ConnectionConnectFail));var r=new TextEncoder;if(!t||r.encode(t).length>64)throw new n(a.InvaildArgument,"update group with invalid name");return this.serviceManager.setGroupProperties(e,{key:"name",value:t})}catch(r){return this.logger.error("setGroupName error",e,t,r),Promise.reject(r)}}},{key:"subscribeGroup",value:function(e){this.logger.info("subscribeGroup",e);try{return"connected"!==this.connectionState?Promise.reject(new n(a.ConnectionConnectFail)):this.serviceManager.subscribeGroup(e)}catch(t){return this.logger.error("subscribeGroup error",e,t),Promise.reject(t)}}},{key:"unsubscribeGroup",value:function(e){this.logger.info("unsubscribeGroup",e);try{return"connected"!==this.connectionState?Promise.reject(new n(a.ConnectionConnectFail)):this.serviceManager.unsubscribeGroup(e)}catch(t){return this.logger.error("unsubscribeGroup error",e,t),Promise.reject(t)}}},{key:"mixAudioToGroup",value:function(e,t,r){this.logger.info("mixAudioToGroup",{mediaType:null==e?void 0:e.trackMediaType,trackId:null==e?void 0:e.getTrackId(),source:null==e?void 0:e.source},t,r);try{if("connected"!==this.connectionState)throw new n(a.ConnectionConnectFail);if(t){if(this.logger.info("mix audio to group ".concat(r)),null==r&&this.serviceManager.micMixedGroups.size)throw new n(a.InvaildState,"cannot mix audio to channel while mixing to others group");return this.serviceManager.publishToGroup(r,!0)}if(this.logger.info("unmix audio from group ".concat(r)),!this.serviceManager.micMixedGroups.has(r))throw new n(a.InvaildState,"cannot unmix audio from the unmixed group");return this.serviceManager.unpublishFromGroup(r)}catch(i){return this.logger.error("mixAudioToGroup error",{mediaType:null==e?void 0:e.trackMediaType,trackId:null==e?void 0:e.getTrackId(),source:null==e?void 0:e.source},t,r,i),Promise.reject(i)}}},{key:"dismissGroup",value:function(e){this.logger.info("dismissGroup",e);try{return"connected"!==this.connectionState?Promise.reject(new n(a.ConnectionConnectFail)):this.serviceManager.dismissGroup(e)}catch(t){return this.logger.error("dismissGroup error",e,t),Promise.reject(t)}}},{key:"register",value:function(e){this.logger.info("register",e),e.attach(this.serviceManager.internalChannel,this.serviceManager),null==e||e.on("annotation-start",this.serviceManager.onAnnotationOperation.bind(this.serviceManager,"annotation-start")),null==e||e.on("annotation-stop",this.serviceManager.onAnnotationOperation.bind(this.serviceManager,"annotation-stop"))}},{key:"ungister",value:function(e){this.logger.info("ungister",e),e.detach(this.serviceManager.internalChannel)}}]);var r,i,o,s,u,l,p,f,v}(),ja={height:360,width:640},Da=function(){var e=C(Oe.mark(function e(t){var r;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:window.addEventListener("offline",function(){t.info("browser offline event")}),window.addEventListener("online",function(){t.info("browser online event")}),r=function(){"visible"===document.visibilityState?t.info("page changed to visible"):t.info("page changed to invisible")},document.addEventListener("visibilitychange",r),window.addEventListener("blur",function(){t.info("page blurred")}),window.addEventListener("focus",function(){t.info("page focused")});case 1:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}();function La(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(La=function(){return!!e})()}At();var Na=t().getLoggerWithPrefix("[rtc-index]");Na.info("sdk version",De),Na.info("userAgent",navigator.userAgent),Na.info("href: ".concat(location.href,", in_iframe=").concat(window!==window.parent)),Da(Na);var Fa=new(function(){function e(){var t,r,i,n;if(j(this,e),r=this,i=G(i=e),t=U(r,La()?Reflect.construct(i,[],G(r).constructor):i.apply(r,n)),Object.defineProperty(t,"VERSION",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),t.VERSION=De,!He.checkSupported())return U(t);var a=ot.getInstance();return a.on("camera-changed",function(e){t.emit("camera-changed",e)}),a.on("microphone-changed",function(e){t.emit("microphone-changed",e)}),a.on("playback-device-changed",function(e){t.emit("playback-device-changed",e)}),b.on("autoplay-failed",function(e){t.emit("autoplay-failed",e)}),t}return B(e,c),F(e,[{key:"createClient",value:function(e){Na.info("createClient",null==e?void 0:e.map(function(e){return null==e?void 0:e.pluginName}));var r=null==e?void 0:e.find(function(e){return"DeviceChecker"===(null==e?void 0:e.pluginName)}),i=null==r?void 0:r.createPlugin();return null==i||i.injectLogger(t().getLoggerWithPrefix("[rtc-devcheck]")),new Ca({deviceChecker:i})}},{key:"checkSystemRequirements",value:function(){return Na.info("checkSystemRequirements"),He.checkSupported()}},{key:"getSupportedCodec",value:function(){return Na.info("getSupportedCodec"),He.getSupportedCodec()}},{key:"createCameraVideoTrack",value:function(e){return Na.info("createCameraVideoTrack",e),Ar(e)}},{key:"createMicrophoneAudioTrack",value:function(e){return Na.info("createMicrophoneAudioTrack",e),Ir(e)}},{key:"createCustomVideoTrack",value:function(e,t){return Na.info("createCustomVideoTrack",e,t),jr(e,t)}},{key:"createCustomAudioTrack",value:function(e,t){return Na.info("createCustomAudioTrack",e,t),Dr(e,t)}},{key:"createScreenVideoTrack",value:function(e){return Na.info("createScreenVideoTrack",e),Rr(e)}},{key:"createScreenVideoAndAudioTrack",value:function(e){return Na.info("createScreenVideoAndAudioTrack",e),xr(e)}},{key:"createMicrophoneAndCameraTracks",value:(i=C(Oe.mark(function e(t,r){return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return Na.info("createMicrophoneAndCameraTracks",{videoConfig:t,audioConfig:r}),e.abrupt("return",Cr(t,r));case 1:case"end":return e.stop()}},e)})),function(e,t){return i.apply(this,arguments)})},{key:"getCameras",value:function(){return Na.info("getCameras"),ot.getCameras()}},{key:"getDevices",value:(r=C(Oe.mark(function e(){var t,r;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return Na.info("start getDevices"),e.prev=1,e.next=2,ot.getDevices();case 2:return t=e.sent,Na.info("getDevices suc",t),e.abrupt("return",t);case 3:return e.prev=3,r=e.catch(1),Na.info("error getDevices ",r),e.abrupt("return",r);case 4:case"end":return e.stop()}},e,null,[[1,3]])})),function(){return r.apply(this,arguments)})},{key:"getPlaybackDevices",value:function(){return Na.info("getPlaybackDevices"),ot.getPlaybackDevices()}},{key:"getMicrophones",value:function(){return Na.info("getMicrophones"),ot.getMicrophones()}},{key:"setLogLevel",value:function(e){console.warn("[dingrtc]: setLogLevel is deprecated"),A(Qe._consoleLogLevel),Na.info(" setLogLevel - ignored and hint deprecated",e)}},{key:"setClientConfig",value:function(e){Na.info("setClientConfig",e),Qe.setClientConfig(e)}}]);var r,i}());export{ve as AudioSourceInfo,xe as AudioSourceState,ja as FALLBACK_SUB_VIDEO_PROFILE,me as VideoSourceInfo,Fa as default};
3
+ var i,n,a="function"==typeof Symbol?Symbol:{},o=a.iterator||"@@iterator",s=a.toStringTag||"@@toStringTag";function c(e,r,a,o){var s=r&&r.prototype instanceof l?r:l,c=Object.create(s.prototype);return t(c,"_invoke",function(e,t,r){var a,o,s,c=0,l=r||[],d=!1,p={p:0,n:0,v:i,a:f,f:f.bind(i,4),d:function(e,t){return a=e,o=0,s=i,p.n=t,u}};function f(e,t){for(o=e,s=t,n=0;!d&&c&&!r&&n<l.length;n++){var r,a=l[n],f=p.p,v=a[2];e>3?(r=v===t)&&(s=a[(o=a[4])?5:(o=3,3)],a[4]=a[5]=i):a[0]<=f&&((r=e<2&&f<a[1])?(o=0,p.v=t,p.n=a[1]):f<v&&(r=e<3||a[0]>t||t>v)&&(a[4]=e,a[5]=t,p.n=v,o=0))}if(r||e>1)return u;throw d=!0,t}return function(r,l,v){if(c>1)throw TypeError("Generator is already running");for(d&&1===l&&f(l,v),o=l,s=v;(n=o<2?i:s)||!d;){a||(o?o<3?(o>1&&(p.n=-1),f(o,s)):p.n=s:p.v=s);try{if(c=2,a){if(o||(r="next"),n=a[r]){if(!(n=n.call(a,s)))throw TypeError("iterator result is not an object");if(!n.done)return n;s=n.value,o<2&&(o=0)}else 1===o&&(n=a.return)&&n.call(a),o<2&&(s=TypeError("The iterator does not provide a '"+r+"' method"),o=1);a=i}else if((n=(d=p.n<0)?s:e.call(t,p))!==u)break}catch(e){a=i,o=1,s=e}finally{c=1}}return{value:n,done:d}}}(e,a,o),!0),c}var u={};function l(){}function d(){}function p(){}n=Object.getPrototypeOf;var f=[][o]?n(n([][o]())):(t(n={},o,function(){return this}),n),v=p.prototype=l.prototype=Object.create(f);function m(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,t(e,s,"GeneratorFunction")),e.prototype=Object.create(v),e}return d.prototype=p,t(v,"constructor",p),t(p,"constructor",d),d.displayName="GeneratorFunction",t(p,s,"GeneratorFunction"),t(v),t(v,s,"Generator"),t(v,o,function(){return this}),t(v,"toString",function(){return"[object Generator]"}),(e.exports=r=function(){return{w:c,m:m}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports}(J);var $=J.exports,X={exports:{}},Z={exports:{}},ee={exports:{}};!function(e){var t=Q,r=z;e.exports=function e(i,n){function a(e,r,o,s){try{var c=i[e](r),u=c.value;return u instanceof t?n.resolve(u.v).then(function(e){a("next",e,o,s)},function(e){a("throw",e,o,s)}):n.resolve(u).then(function(e){c.value=e,o(c)},function(e){return a("throw",e,o,s)})}catch(e){s(e)}}var o;this.next||(r(e.prototype),r(e.prototype,"function"==typeof Symbol&&Symbol.asyncIterator||"@asyncIterator",function(){return this})),r(this,"_invoke",function(e,t,r){function i(){return new n(function(t,i){a(e,r,t,i)})}return o=o?o.then(i,i):i()},!0)},e.exports.__esModule=!0,e.exports.default=e.exports}(ee);var te=ee.exports;!function(e){var t=$,r=te;e.exports=function(e,i,n,a,o){return new r(t().w(e,i,n,a),o||Promise)},e.exports.__esModule=!0,e.exports.default=e.exports}(Z);var re=Z.exports;!function(e){var t=re;e.exports=function(e,r,i,n,a){var o=t(e,r,i,n,a);return o.next().then(function(e){return e.done?e.value:o.next()})},e.exports.__esModule=!0,e.exports.default=e.exports}(X);var ie=X.exports,ne={exports:{}};!function(e){e.exports=function(e){var t=Object(e),r=[];for(var i in t)r.unshift(i);return function e(){for(;r.length;)if((i=r.pop())in t)return e.value=i,e.done=!1,e;return e.done=!0,e}},e.exports.__esModule=!0,e.exports.default=e.exports}(ne);var ae=ne.exports,oe={exports:{}},se={exports:{}};!function(e){function t(r){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(se);var ce=se.exports;!function(e){var t=ce.default;e.exports=function(e){if(null!=e){var r=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],i=0;if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}}}throw new TypeError(t(e)+" is not iterable")},e.exports.__esModule=!0,e.exports.default=e.exports}(oe);var ue=oe.exports;!function(e){var t=Q,r=$,i=ie,n=re,a=te,o=ae,s=ue;function c(){var u=r(),l=u.m(c),d=(Object.getPrototypeOf?Object.getPrototypeOf(l):l.__proto__).constructor;function p(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===d||"GeneratorFunction"===(t.displayName||t.name))}var f={throw:1,return:2,break:3,continue:3};function v(e){var t,r;return function(i){t||(t={stop:function(){return r(i.a,2)},catch:function(){return i.v},abrupt:function(e,t){return r(i.a,f[e],t)},delegateYield:function(e,n,a){return t.resultName=n,r(i.d,s(e),a)},finish:function(e){return r(i.f,e)}},r=function(e,r,n){i.p=t.prev,i.n=t.next;try{return e(r,n)}finally{t.next=i.n}}),t.resultName&&(t[t.resultName]=i.v,t.resultName=void 0),t.sent=i.v,t.next=i.n;try{return e.call(this,t)}finally{i.p=t.prev,i.n=t.next}}}return(e.exports=c=function(){return{wrap:function(e,t,r,i){return u.w(v(e),t,r,i&&i.reverse())},isGeneratorFunction:p,mark:u.m,awrap:function(e,r){return new t(e,r)},AsyncIterator:a,async:function(e,t,r,a,o){return(p(t)?n:i)(v(e),t,r,a,o)},keys:o,values:s}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=c,e.exports.__esModule=!0,e.exports.default=e.exports}(W);var le=(0,W.exports)(),de=le;try{regeneratorRuntime=le}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=le:Function("r","regeneratorRuntime = r")(le)}var pe,fe,ve,me,he,ge,be,ye,ke,Se,Pe,we,Te,Me,Oe=H(de);function Ee(e,t,r){return(t=L(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ie(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function Ae(e,t){if(e){if("string"==typeof e)return Ie(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ie(e,t):void 0}}function Re(e){return function(e){if(Array.isArray(e))return Ie(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Ae(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _e(){return _e="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var i=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=G(e)););return e}(e,t);if(i){var n=Object.getOwnPropertyDescriptor(i,t);return n.get?n.get.call(arguments.length<3?e:r):n.value}},_e.apply(null,arguments)}!function(e){e.PCMU="pcmu",e.PCMA="pcma",e.OPUS="opus",e.G722="g722",e.ISAC="iSAC",e.ILBC="iLBC",e.AAC="aac",e.AC3="ac3",e.NELLYMOSER="nellymoser"}(pe||(pe={})),function(e){e.VP8="vp8",e.VP9="vp9",e.H264="h264",e.H265="h265",e.AV1="av1",e.AV1X="av1x"}(fe||(fe={})),function(e){e.MIC="mic",e.SCREENCAST="screen-cast",e.MIXED="mixed"}(ve||(ve={})),function(e){e.CAMERA="camera",e.SCREENCAST="screen-cast",e.MIXED="mixed"}(me||(me={})),function(e){e.PUBLISH="publish",e.SUBSCRIBE="subscribe"}(he||(he={})),function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.GREAT=1]="GREAT",e[e.GOOD=2]="GOOD",e[e.NORMAL=3]="NORMAL",e[e.POOR=4]="POOR",e[e.BAD=5]="BAD",e[e.DISCONNECTED=6]="DISCONNECTED"}(ge||(ge={})),function(e){e[e.Native=1]="Native",e[e.Web=2]="Web",e[e.MiniProgram=3]="MiniProgram"}(be||(be={})),function(e){e[e.Windows=1]="Windows",e[e.Android=2]="Android",e[e.Mac=3]="Mac",e[e.iOS=4]="iOS",e[e.Linux=5]="Linux",e[e.Others=6]="Others"}(ye||(ye={})),function(e){e[e.UserKickOut=2011]="UserKickOut",e[e.UserReplaced=2012]="UserReplaced"}(ke||(ke={})),function(e){e[e.Idle=0]="Idle",e[e.Processing=1]="Processing",e[e.End=2]="End"}(Se||(Se={})),function(e){e[e.New=0]="New",e[e.Idle=1]="Idle",e[e.Processing=2]="Processing",e[e.Ended=3]="Ended"}(Pe||(Pe={})),function(e){e.QuotaLimit="task exceed limit",e.PCNotExisted="connection does NOT exist",e.RoomClosed="room_already_closed:30107",e.RoomNotExisted="room does not exist",e.RoomBusy="RoomBusy",e.RoomNotJoined="participant has not joined",e.FailOver="Session has been aborted"}(we||(we={})),function(e){e[e.MIC_OPEN=0]="MIC_OPEN",e[e.MIC_INTERRUPTED=1]="MIC_INTERRUPTED",e[e.CAMERA_OPEN=2]="CAMERA_OPEN",e[e.BACKGROUND_MODE=3]="BACKGROUND_MODE",e[e.DOWNLINK=4]="DOWNLINK",e[e.UPLINK=5]="UPLINK"}(Te||(Te={})),function(e){e[e.None=0]="None",e[e.LD=2]="LD",e[e.SD=4]="SD",e[e.HD=8]="HD",e[e.FHD=16]="FHD",e[e.QHD=32]="QHD",e[e.UHD=64]="UHD"}(Me||(Me={}));var xe,Ce="3.9.26",je={VD_120x120:[120,120],VD_160x120:[160,120],VD_180x180:[180,180],VD_240x180:[240,180],VD_320x180:[320,180],VD_240x240:[240,240],VD_320x240:[320,240],VD_424x240:[424,240],VD_360x360:[360,360],VD_480x360:[480,360],VD_640x360:[640,360],VD_480x480:[480,480],VD_640x480:[640,480],VD_840x480:[840,480],VD_960x540:[960,540],VD_960x720:[960,720],VD_1280x720:[1280,720],VD_1920x1080:[1920,1080],VD_2560x1440:[2560,1440]};!function(e){e.Playing="playing",e.Paused="paused",e.Stopped="stopped"}(xe||(xe={}));var De=Ce,Le=-999,Ne="rtc-label";JSON.stringify({needPersonalityAudioStream:!0,outPeerConnectionNotReuse:!0}),e.browserType,e.browserVersion,e.system,e.systemVersion;var Fe="onertc_state_sync",Ue="onertc_internal_track_event",Ge="rtc_sdk_el_data",Ve="rtc_sdk_player_container_label",Be=7e4,He=2e3,qe=t().getLoggerWithPrefix("rtc-support"),We=new(function(){return F(function t(){j(this,t),Object.defineProperty(this,"system",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"browser",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"browserVersion",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.system=e.system,this.browser=e.browserType,this.browserVersion=e.browserVersion},[{key:"getSupportedCodec",value:(t=C(Oe.mark(function e(){var t,r,i;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t={audio:[],video:[]},e.prev=1,(r=new RTCPeerConnection).addTransceiver("video",{direction:"recvonly"}),r.addTransceiver("audio",{direction:"recvonly"}),e.next=2,r.createOffer();case 2:if(i=e.sent.sdp){e.next=3;break}return e.abrupt("return",t);case 3:return r.close(),r=null,i.match(/ VP8/i)&&t.video.push("VP8"),i.match(/ VP9/i)&&t.video.push("VP9"),i.match(/ AV1/i)&&t.video.push("AV1"),i.match(/ H264/i)&&t.video.push("H264"),i.match(/ H265/i)&&t.video.push("H265"),i.match(/ opus/i)&&t.audio.push("OPUS"),i.match(/ PCMU/i)&&t.audio.push("PCMU"),i.match(/ PCMA/i)&&t.audio.push("PCMA"),i.match(/ G722/i)&&t.audio.push("G722"),e.abrupt("return",t);case 4:throw e.prev=4,e.catch(1),qe.error("get supportedCodecs failed"),new n(a.IceConnectionSetLocalDescFail,"get supportedCodecs failed");case 5:case"end":return e.stop()}},e,null,[[1,4]])})),function(){return t.apply(this,arguments)})},{key:"checkSupported",value:function(){var t=!1;try{var r=window.RTCPeerConnection,i=navigator.mediaDevices&&navigator.mediaDevices.getUserMedia,n=window.WebSocket;t=!!(r&&i&&n)}catch(e){return qe.error("checkSystemRequirements error",e),!1}var a=!1;a=e.isChrome()||e.isFirefox()?parseInt(e.browserVersion,10)>=69:e.isOpera()?parseInt(e.browserVersion,10)>=45:e.isSafari()?parseInt(e.browserVersion,10)>=11:(e.isWeixin()||e.isQQBrowser(),!0);var o=t&&a;return qe.info("checkSystemRequirements, api:",t,"browser",a),o}},{key:"isSupportScreenShare",value:function(){return!this.system.includes(r.ANDROID)&&this.system!==r.IOS&&(!(this.browser===i.SAFARI&&parseInt(this.browserVersion)<13)&&(!(this.browser===i.FIREFOX&&parseInt(this.browserVersion)<66)&&!!(navigator&&navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)))}}]);var t}()),Ye=function(){var t,r=(null===(t=window.RTCRtpSender)||void 0===t?void 0:t.prototype)||{},i=r.setParameters,n=r.getParameters;return!(!i||!n)&&(!e.isFirefox()&&(e.isSafari()?parseInt(e.browserVersion)>=14:e.isChrome()?parseInt(e.browserVersion)>=81:!e.isAndroid()))};function Qe(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Qe=function(){return!!e})()}var Je=t().getLoggerWithPrefix("[rtc-config]"),Ke=new(function(){function e(){var t,r,i,n;return j(this,e),r=this,i=G(i=e),t=U(r,Qe()?Reflect.construct(i,[],G(r).constructor):i.apply(r,n)),Object.defineProperty(t,"gslb",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(t,"simulcast",{enumerable:!0,configurable:!0,writable:!0,value:Ye()}),Object.defineProperty(t,"audioSFU",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(t,"republish",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(t,"disableTransportCC",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(t,"preferH264CbProfile",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(t,"downlinkForbidHighProfile",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(t,"highStartBitrate",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(t,"_holdVideoLastFrame",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(t,"_consoleLogLevel",{enumerable:!0,configurable:!0,writable:!0,value:"warn"}),Object.defineProperty(t,"connectPcTimeoutMs",{enumerable:!0,configurable:!0,writable:!0,value:4e3}),t.setClientConfig({gslb:["https://gslb.dingrtc.com"]}),t}return B(e,c),F(e,[{key:"setClientConfig",value:function(e){Je.info("setClientConfig",e);var t=e||{},r=t.gslb,i=t.simulcast,n=t.audioSFU,a=t.republish,c=t.disableTransportCC,u=t.highStartBitrate;"string"==typeof r&&(this.gslb=[r],o(r)),Array.isArray(r)&&s(r[0])&&(this.gslb=r,o(r[0])),null!=i&&Ye()&&(this.simulcast=Boolean(i)),null!=n&&(this.audioSFU=Boolean(n)),null!=c&&(this.disableTransportCC=Boolean(c)),null!=a&&(this.republish=Boolean(a)),null!=u&&(this.highStartBitrate=!!u),null!=e&&e._consoleLogLevel&&(this._consoleLogLevel=null==e?void 0:e._consoleLogLevel),"boolean"==typeof(null==e?void 0:e.preferH264CbProfile)&&(this.preferH264CbProfile=e.preferH264CbProfile),(null==e?void 0:e.connectPcTimeoutMs)>=0&&e.connectPcTimeoutMs<=Number.MAX_SAFE_INTEGER?this.connectPcTimeoutMs=e.connectPcTimeoutMs:void 0!==(null==e?void 0:e.connectPcTimeoutMs)&&null!==(null==e?void 0:e.connectPcTimeoutMs)&&console.error("connectPcTimeoutMs should be a non-negative number")}}])}()),ze=function(e,t){return e.width!==t.width?e.width-t.width:e.height-t.height},$e=function(e){var t;if(!e)return[];var r=e.media.video;if(!r)return[];var i=[],n=r.optional,a=r.parameters;return null!=a&&a.resolution&&i.push(a.resolution),null!=n&&null!==(t=n.parameters)&&void 0!==t&&null!==(t=t.resolution)&&void 0!==t&&t.length&&i.push.apply(i,Re(n.parameters.resolution)),i.sort(ze),i},Xe=function(e,t,r){var i,o=e.media.video;if(t===we.QuotaLimit)return i=new n(a.QuotaLimitExceed);if("audio"===r)i=new n(a.SubscribeAudioStreamFailed,t);else if("video"===r){var s=o.source;s===me.CAMERA?i=new n(a.SubscribeVideoStreamFailed,t):s===me.SCREENCAST&&(i=new n(a.SubscribeScreenShareFailed,t))}return i},Ze=function(e,t){var r,i=e.trackMediaType;if(t===we.QuotaLimit)return r=new n(a.QuotaLimitExceed);if("audio"===i)r=new n(a.PublishAudioStreamFailed,t);else{var o=e.source;o===me.CAMERA?r=new n(a.PublishVideoStreamFailed,t):o===me.SCREENCAST&&(r=new n(a.PublishScreenShareFailed,t))}return r},et=function(e,t,r,i){var n=i,a=e.getVideoTracks(),o=e.getAudioTracks();return"audio"===t&&o.length?Ke.audioSFU?i?i.replaceStream(e):n=new Wr(null,r,e):i?i.replaceTrack(o[0]):n=new Wr(o[0],r):"video"===t&&a.length&&(i?i.replaceTrack(a[0]):n=new Yr(a[0],r)),n},tt=function(e){return"object"===D(e.video)&&e.video.source===me.SCREENCAST};function rt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,i)}return r}function it(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?rt(Object(r),!0).forEach(function(t){Ee(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):rt(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function nt(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return at(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?at(e,t):void 0}}(e))||t){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function at(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function ot(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(ot=function(){return!!e})()}var st=t().getLoggerWithPrefix("[rtc-device]"),ct=function(){function t(){var e,r,i,n,a;return j(this,t),r=this,i=G(i=t),e=U(r,ot()?Reflect.construct(i,[],G(r).constructor):i.apply(r,n)),Object.defineProperty(e,"deviceList",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(e,"checking",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(e,"checkDeviceUpdate",{enumerable:!0,configurable:!0,writable:!0,value:(a=C(Oe.mark(function r(){var i;return Oe.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:if(!e.checking){r.next=1;break}return r.abrupt("return");case 1:return e.checking=!0,r.next=2,t.getDevices();case 2:i=r.sent,e.compareDevices(i,"audiooutput"),e.compareDevices(i,"videoinput"),e.compareDevices(i,"audioinput"),e.deviceList=i,e.checking=!1;case 3:case"end":return r.stop()}},r)})),function(){return a.apply(this,arguments)})}),Object.defineProperty(e,"compareDevices",{enumerable:!0,configurable:!0,writable:!0,value:function(t,r){var i,n=t.filter(function(e){return e.kind===r}),a=e.deviceList.filter(function(e){return e.kind===r}),o=n.map(function(e){return e.deviceId}),s=a.map(function(e){return e.deviceId}),c=n.filter(function(e){var t=e.deviceId;return!s.includes(t)}),u=a.filter(function(e){var t=e.deviceId;return!o.includes(t)}),l={audioinput:"microphone-changed",audiooutput:"playback-device-changed",videoinput:"camera-changed"},d=nt(c);try{for(d.s();!(i=d.n()).done;){var p=i.value;e.emit(l[r],{device:p,state:"active"})}}catch(e){d.e(e)}finally{d.f()}var f,v=nt(u);try{for(v.s();!(f=v.n()).done;){var m=f.value;e.emit(l[r],{device:m,state:"inactive"})}}catch(e){v.e(e)}finally{v.f()}}}),t._instance?U(e,t._instance):(e.deviceList=[],We.checkSupported()?(t.getDevices({audio:!0,video:!0},!0).then(function(t){e.deviceList=t,e.addEventListeners()}),e):U(e))}return B(t,c),F(t,[{key:"addEventListeners",value:function(){"ondevicechange"in navigator.mediaDevices?navigator.mediaDevices.addEventListener("devicechange",this.checkDeviceUpdate):d(this.checkDeviceUpdate,1e3,"interval")}}],[{key:"getInstance",value:function(){return t._instance}},{key:"getMedias",value:(r=C(Oe.mark(function r(i,o){var s,c,u,l,d,p,f,v,m,h,g;return Oe.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:if(t.accGetMedia++,s=t.accGetMedia,!tt(i)){r.next=6;break}if(st.info("getDisplayMedia with",s,i,o),!e.isElectron()){r.next=3;break}if(o.video){r.next=1;break}throw new n(a.ScreenShareOpenFail,"only video screen cast is supported, but got no video parameters");case 1:return r.next=2,navigator.mediaDevices.getUserMedia({audio:!1,video:{mandatory:{chromeMediaSource:"screen",minWidth:(null===(u=o.video)||void 0===u?void 0:u.width)||1280,maxWidth:(null===(l=o.video)||void 0===l?void 0:l.width)||1280,minHeight:(null===(d=o.video)||void 0===d?void 0:d.height)||720,maxHeight:(null===(p=o.video)||void 0===p?void 0:p.height)||720,minFrameRate:(null===(f=o.video)||void 0===f?void 0:f.frameRate)||5,maxFrameRate:(null===(v=o.video)||void 0===v?void 0:v.frameRate)||5}}});case 2:c=r.sent,r.next=5;break;case 3:return r.next=4,null===(m=navigator.mediaDevices)||void 0===m?void 0:m.getDisplayMedia(o);case 4:c=r.sent;case 5:return st.info("succ getDisplayMedia with",s),r.abrupt("return",c);case 6:return st.info("getUserMedia with",s,i,o),r.next=7,null===(h=navigator.mediaDevices)||void 0===h?void 0:h.getUserMedia(o);case 7:return g=r.sent,st.info("succ getUserMedia with",s),i.audio&&(this.audioPermitted=!0),i.video&&(this.videoPermitted=!0),r.abrupt("return",g);case 8:case"end":return r.stop()}},r,this)})),function(e,t){return r.apply(this,arguments)})},{key:"getDevices",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{audio:!0,video:!0},r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return new Promise(function(i,o){var s;if(null!==(s=navigator.mediaDevices)&&void 0!==s&&s.enumerateDevices){var c=!1;t.audio&&t.video?c=e.audioPermitted&&e.videoPermitted:t.audio?c=e.audioPermitted:t.video&&(c=e.videoPermitted),navigator.mediaDevices.enumerateDevices().then(function(n){var a=n.filter(function(e){return e.deviceId}),s=a.filter(function(e){return"videoinput"===e.kind}),u=a.filter(function(e){return"audioinput"===e.kind}),l=a.filter(function(e){return"audiooutput"===e.kind}),d=[];t.audio&&(d=d.concat(u,l)),t.video&&(d=d.concat(s)),0!==d.length||c||r?d.length?(t.audio&&(e.audioPermitted=!0),t.video&&(e.videoPermitted=!0),i(d)):i(d):(st.info("getUserMedia with",t),navigator.mediaDevices.getUserMedia(t).then(function(r){t.audio&&(e.audioPermitted=!0),t.video&&(e.videoPermitted=!0),r.getTracks().forEach(function(e){e.stop()}),navigator.mediaDevices.enumerateDevices().then(function(e){i(e)},o)},o)),i(a)})}else o(new n(a.BrowserNotSupported,"enumerateDevices is not supported"))})}}]);var r}();Object.defineProperty(ct,"videoPermitted",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(ct,"audioPermitted",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(ct,"_instance",{enumerable:!0,configurable:!0,writable:!0,value:new ct}),Object.defineProperty(ct,"accGetMedia",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(ct,"getPlaybackDevices",{enumerable:!0,configurable:!0,writable:!0,value:function(){return ct.getDevices({audio:!0}).then(function(e){return e.filter(function(e){return"audiooutput"===e.kind})}).catch(function(e){throw u(e)})}}),Object.defineProperty(ct,"getCameras",{enumerable:!0,configurable:!0,writable:!0,value:function(){return ct.getDevices({video:!0}).then(function(e){return st.info("getCameras",e),e.filter(function(e){return"videoinput"===e.kind}).map(function(e,t){var r={deviceId:e.deviceId,kind:e.kind,groupId:e.groupId,label:e.label||"camera ".concat(t)};return it(it({},r),{},{toJSON:function(){return r}})})}).catch(function(e){throw st.error("getCameras error",e),l(e)})}}),Object.defineProperty(ct,"getMicrophones",{enumerable:!0,configurable:!0,writable:!0,value:function(){return ct.getDevices({audio:!0}).then(function(e){return st.info("getMicrophones",e),e.filter(function(e){return"audioinput"===e.kind})}).catch(function(e){throw st.error("getMicrophones error",e),u(e)})}});var ut,lt,dt=function(e){return{width:je[e][0],height:je[e][1]}},pt=function(t){var r,i=Object.create({}),n={};null!==(r=navigator)&&void 0!==r&&null!==(r=r.mediaDevices)&&void 0!==r&&r.getSupportedConstraints&&(n=navigator.mediaDevices.getSupportedConstraints(),console.log(n));var a=t.AEC,o=t.AGC,s=t.ANS;return t.deviceId&&(e.isSafari()?i.deviceId=t.deviceId:i.deviceId={exact:t.deviceId}),n.autoGainControl&&(i.autoGainControl={ideal:null==o||o}),n.echoCancellation&&(i.echoCancellation={ideal:null==a||a}),n.noiseSuppression&&(i.noiseSuppression={ideal:null==s||s}),i},ft=function(t){if(!p(t)||!t.audio&&!t.video)return Promise.reject(new TypeError("Invalid constrains"));var r=t.audio,i=t.video;if(!tt(t)&&"object"===D(r)&&r.source===ve.SCREENCAST)return Promise.reject(new TypeError("Cannot share screen without video."));if(tt(t)&&"object"===D(r)&&r.source!==ve.SCREENCAST)return Promise.reject(new TypeError("Cannot capture video from screen cast while capture audio from other source."));if(!r&&!i)return Promise.reject(new TypeError("At least one of audio and video must be requested."));var n={};if("object"===D(r)&&r.source===ve.MIC||"object"===D(r)&&r.source===ve.SCREENCAST?n.audio=pt(r):n.audio=t.audio,"object"===D(i)){var a,o=i.frameRate,c=i.deviceId,u=i.source,l=i.facingMode,d=i.displaySurface,v=i.dimension;n.video={},f(o)&&(n.video.frameRate=Math.min(i.frameRate,30)),v&&(a=dt(v)),a&&a.width&&a.height&&(u===me.SCREENCAST||e.isFirefox()?(n.video.width=a.width,n.video.height=a.height):(n.video.width={ideal:a.width,max:a.width},n.video.height={ideal:a.height,max:a.height})),s(c)&&c&&(n.video.deviceId={exact:c}),u===me.SCREENCAST&&(e.isFirefox()&&(n.video.mediaSource="screen"),d&&["browser","window","monitor"].includes(d)&&(n.video.displaySurface=d)),l&&["user","environment"].includes(l)&&(n.video.facingMode=l)}else n.video=i;return ct.getMedias(t,n)},vt=function(e){if(!e)return!1;var t=e.getVideoTracks()[0];return t&&t.enabled&&!t.muted},mt=function(e,t){var r=(e.timestamp-((null==t?void 0:t.timestamp)||e.timestamp))/1e3;return r<=0&&(r=1),r},ht=function(e,t){return null!=e?[2,4,6,0][e]:null!==t?[3,0,0,0,1,1,2][t]:void 0},gt=function(e,t){isNaN(e)&&(e=0),isNaN(t)&&(t=0);var r=e-t;return r<0&&(r=e),r},bt=function(e){var t=e.fn,r=e.times,i=e.interval,n=void 0===i?0:i,a=e.resolve,o=e.reject,s=function(){var e=C(Oe.mark(function e(){var i,s,c;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:s=0;case 1:if(!(s<r)){e.next=7;break}return e.prev=2,e.next=3,t();case 3:return i=e.sent,null==a||a(i),e.abrupt("continue",7);case 4:if(e.prev=4,c=e.catch(2),s!==r-1){e.next=5;break}return null==o||o(c),e.abrupt("return",c);case 5:return e.next=6,yt(n);case 6:s++,e.next=1;break;case 7:return e.abrupt("return",i);case 8:case"end":return e.stop()}},e,null,[[2,4]])}));return function(){return e.apply(this,arguments)}}();return s()},yt=function(){var e=C(Oe.mark(function e(t){return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!(t>0)){e.next=1;break}return e.next=1,new Promise(function(e){setTimeout(e,t)});case 1:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}(),kt=function(e){return new Promise(function(t){d(t,1e3*e)})},St=t().getLoggerWithPrefix("[rtc-mediaElPool]"),Pt="rtc-intersecting",wt="visible",Tt="invisible",Mt=["abort","canplay","canplaythrough","durationchange","emptied","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","ratechange","seeked","seeking","stalled","suspend","volumechange","waiting"],Ot=function(e){return"".concat(null==e?void 0:e.getAttribute(Ne),"-").concat(null==e?void 0:e.rtcPurpose)},Et=function(){return F(function e(t,r){var i=this;j(this,e),Object.defineProperty(this,"mediaElementCount",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"mediaElementPool",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"mediaElementsInUse",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"allElements",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(this,"hasActivated",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"mediaKind",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"mediaPlaybackCheckInterval",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"debouncer",{enumerable:!0,configurable:!0,writable:!0,value:new v}),Object.defineProperty(this,"currentTimeOfLastCheckMap",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"observer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_activatedListener",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"destroy",{enumerable:!0,configurable:!0,writable:!0,value:function(){i.mediaElementPool.forEach(function(e){return i._resetMediaElement(e)}),i.mediaElementPool=[],i.allElements.clear(),i.mediaElementsInUse.forEach(function(e){return i._resetMediaElement(e)}),i.mediaElementsInUse=[],document.removeEventListener("click",i._onUserInteraction),document.removeEventListener("touchstart",i._onUserInteraction),document.removeEventListener("visibilitychange",i._tryReloadOnPauseAndErrorWhenVisibleTriggerByVisible),i.mediaPlaybackCheckInterval&&(m(i.mediaPlaybackCheckInterval,"interval"),i.mediaPlaybackCheckInterval=null),[].concat(Re(i.mediaElementPool),Re(i.mediaElementsInUse)).forEach(function(e){var t;return null===(t=i.observer)||void 0===t?void 0:t.unobserve(e)})}}),Object.defineProperty(this,"_tryReloadOnPauseAndErrorWhenVisible",{enumerable:!0,configurable:!0,writable:!0,value:function(e){i.mediaElementsInUse.forEach(function(t){if(t.srcObject){var r=t.srcObject;if(t.error&&(St.debug("".concat(e,": tag=").concat(t.tagName," ").concat(Ot(t)," has error, error=").concat(t.error,", doc.visibilityState=").concat(document.visibilityState,", mediaStream="),h(r)),"visible"===document.visibilityState&&vt(r)&&t.load()),t.paused){var n=!1;if(i.hasActivated&&"video"===i.mediaKind?function(e){return e&&e.getAttribute(Pt)===wt}(t)&&"visible"===document.visibilityState&&"visible"===getComputedStyle(t).visibility&&(n=!0):n=!0,n){var a="".concat(e,": ").concat(Ot(t)," paused, doc.visibilityState=").concat(document.visibilityState,", intersecting=").concat(t.getAttribute(Pt),", mediaStream="),o=h(r);St.error(a,o),vt(r)&&t.load(),t.paused&&t.play().catch(function(e){console.error("inPoll",e)})}}}}),i.debouncer.debounce(i._tryReloadOnCurrentTimeFreeze.bind(i,e),1e3)}}),Object.defineProperty(this,"_tryReloadOnCurrentTimeFreeze",{enumerable:!0,configurable:!0,writable:!0,value:function(e){i.mediaElementsInUse.forEach(function(t){if(t.srcObject){var r=t.srcObject,n="video"===i.mediaKind?r.getVideoTracks()[0]:void 0;if(!t.paused&&i.currentTimeOfLastCheckMap.get(t)===t.currentTime&&"video"===i.mediaKind&&!0!==(null==n?void 0:n.muted))return St.error("".concat(e,": tag=").concat(t.tagName," label=").concat(Ot(t),", currentTime Stop, doc.visibilityState=").concat(document.visibilityState,", curTime=").concat(t.currentTime,", mediaStream="),h(r)),void("visible"===document.visibilityState&&vt(r)&&t.load());i.currentTimeOfLastCheckMap.set(t,t.currentTime)}})}}),Object.defineProperty(this,"_tryReloadOnPauseAndErrorWhenVisibleTriggerByVisible",{enumerable:!0,configurable:!0,writable:!0,value:function(){i._tryReloadOnPauseAndErrorWhenVisible("visibilityChange")}}),Object.defineProperty(this,"_elementDefaultErrorHandler",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=e.target,r="error event on ".concat(i.mediaKind," playback, mediaStream="),n=h(null==t?void 0:t.srcObject),a=null==t?void 0:t.error;St.error(r,n,a&&{code:null==a?void 0:a.code,message:null==a?void 0:a.message})}}),Object.defineProperty(this,"_elementDefaultPauseHandler",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=e.target,r="pause event on ".concat(i.mediaKind," playback, mediaStream="),n=h(null==t?void 0:t.srcObject),a=null==t?void 0:t.error;St.debug(r,n,a&&{code:null==a?void 0:a.code,message:null==a?void 0:a.message})}}),Object.defineProperty(this,"_elementDefaultPlayHandler",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=e.target,r="play event on ".concat(i.mediaKind," playback, mediaStream="),n=h(null==t?void 0:t.srcObject);St.debug(r,n)}}),Object.defineProperty(this,"_onUserInteraction",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e=[].concat(Re(i.mediaElementPool),Re(i.mediaElementsInUse));if(!i.hasActivated){i.hasActivated=!0;var t="".concat(i.mediaKind," good! media elements activated by click");if(St.debug(t),e.forEach(function(e){e.load()}),St.info("load all for activate"),i._activatedListener)try{i._activatedListener()}catch(e){St.error("error occurred when exec activatedListener",g(e))}else St.debug("ignore activatedListener for there is no one")}i._tryReloadOnPauseAndErrorWhenVisible("userInteract")}}),St.debug("build ".concat(t," pool size"),r),this.mediaElementCount=r,this.mediaElementsInUse=[],this.mediaElementPool=[],this.mediaKind=t,window.IntersectionObserver&&(this.observer=new IntersectionObserver(function(e){e.forEach(function(e){var t,r;e.isIntersecting?null===(t=e.target)||void 0===t||t.setAttribute(Pt,wt):null===(r=e.target)||void 0===r||r.setAttribute(Pt,Tt)})}));for(var n=1;n<=r;n++){var a=this._createElement("".concat(t,"-").concat(n));this.mediaElementPool.push(a),this.allElements.add(a)}document.addEventListener("click",this._onUserInteraction,!0),document.addEventListener("touchstart",this._onUserInteraction,!0),document.addEventListener("visibilitychange",this._tryReloadOnPauseAndErrorWhenVisibleTriggerByVisible,!0),this.mediaPlaybackCheckInterval=d(function(){i.hasActivated&&i._tryReloadOnPauseAndErrorWhenVisible("intervalCheck")},4e3,"interval")},[{key:"addAtttribute",value:function(e){if(e.autoplay=!0,e.setAttribute(Ne,"toReused"),e instanceof HTMLVideoElement)e.muted=!0,e.playsInline=!0,e.controls=!1,e.setAttribute("webkit-playsinline","true"),e.setAttribute("x5-video-player-type","h5"),e.setAttribute("x5-playsinline","true");else{var t,r=e;r.volume=1,null===(t=r.setSinkId)||void 0===t||t.call(r,"")}}},{key:"popElement",value:function(e){var t;return(t=this.mediaElementPool.shift())?St.info("".concat(this.mediaKind," pop label=").concat(Ot(t)," for ").concat(e)):(t=this._createElement("".concat(this.mediaKind,"-").concat(++this.mediaElementCount)),St.info("".concat(this.mediaKind," create new videoEl for no more video element in pool"))),this.mediaElementsInUse.push(t),this._resetMediaElement(t),t.addEventListener("error",this._elementDefaultErrorHandler),t.addEventListener("pause",this._elementDefaultPauseHandler),t.addEventListener("play",this._elementDefaultPlayHandler),t.rtcPurpose=e||"",t}},{key:"pushElement",value:function(e){if(this.allElements.has(e)){var t=this.mediaElementsInUse;this.mediaElementsInUse=this.mediaElementsInUse.filter(function(t){return t!==e}),t.length!==this.mediaElementsInUse.length&&(St.debug("".concat(this.mediaKind," pushed"),Ot(e)),this.mediaElementPool.push(e),this._resetMediaElement(e))}}},{key:"isMediaElementActivated",value:function(){return this.hasActivated}},{key:"setActivateListener",value:function(e){this._activatedListener=e}},{key:"_createElement",value:function(e){var t,r=document.createElement(this.mediaKind);return null===(t=this.observer)||void 0===t||t.observe(r),this.addAtttribute(r),r.setAttribute(Ne,e),r}},{key:"_resetMediaElement",value:function(e){Mt.forEach(function(t){e["on".concat(t)]=null}),e.removeEventListener("error",this._elementDefaultErrorHandler),e.removeEventListener("pause",this._elementDefaultPauseHandler),e.removeEventListener("play",this._elementDefaultPlayHandler),e.style.cssText="",e.className="",this.addAtttribute(e),e.srcObject=null}}])}(),It=function(){return ut||_t(),ut},At=function(){return lt||_t(),lt};window.getAudioElementPool=It,window.getVideoElementPool=At;var Rt=e.isIOS()||e.isAndroid()?9:25,_t=function(){ut||(ut=new Et("audio",2)),lt||(lt=new Et("video",Rt))},xt=t().getLoggerWithPrefix("[rtc-actx]"),Ct=null,jt=function(){if(Ct||(Ct=new AudioContext),"running"!==Ct.state){var e=setTimeout(function(){var e="timeout for resume audioContext, probably page still has no user gesture like click or touch";console.error(e),xt.error(e)},2e3);Ct.resume().finally(function(){clearTimeout(e)})}return Ct},Dt=function(e){var t=e.getAudioTracks(),r=jt().createMediaStreamDestination();return t.forEach(function(e){jt().createMediaStreamSource(new MediaStream([e])).connect(r)}),r.stream.getAudioTracks()[0]},Lt=function(e,t){t.connect(e),e.fftSize=2048,e.smoothingTimeConstant=.4;var r=new Float32Array(e.fftSize);if(e.getFloatTimeDomainData)e.getFloatTimeDomainData(r);else{var i=new Uint8Array(e.fftSize);e.getByteTimeDomainData(i);for(var n=0;n<r.length;++n)r[n]=i[n]/128-1}for(var a=0,o=0;o<r.length;o++)a+=r[o]*r[o];return Math.max(10*Math.log10(a/r.length)+100,0)/100},Nt=function(e){var t=document.createElement("canvas"),r=t.getContext("2d"),i=e.videoHeight,n=e.videoWidth;return t.width=n,t.height=i,r.drawImage(e,0,0,n,i),t.toDataURL("image/png")},Ft=It(),Ut=At(),Gt=t().getLoggerWithPrefix("[rtc-playerMgr]"),Vt=F(function e(t,r,i,n){var a=this;j(this,e),Object.defineProperty(this,"mediaEl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"playerConfig",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"mediaWrapperEl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"track",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"snapshotMediaStream",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"canvas",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"snapshotInterval",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"checkSwitchSnapshotInterval",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"lastCheckResult",{enumerable:!0,configurable:!0,writable:!0,value:{msTrackPlayable:!1,elPlaying:!1}}),Object.defineProperty(this,"isPlayerPlaying",{enumerable:!0,configurable:!0,writable:!0,value:function(){return a.mediaEl&&a.mediaEl.currentTime>0&&!a.mediaEl.paused&&!a.mediaEl.ended&&a.mediaEl.readyState>=2}}),Object.defineProperty(this,"snapshot",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e,t,r=a.track.getMediaStreamTrack(),i="live"===(null==r?void 0:r.readyState)&&(null==r?void 0:r.enabled)&&!(null!=r&&r.muted);if(Ke._holdVideoLastFrame&&(i&&(null===(e=a.mediaEl)||void 0===e||null===(e=e.srcObject)||void 0===e||null===(t=e.getVideoTracks)||void 0===t||null===(t=t.call(e))||void 0===t?void 0:t[0])===r)){var n=a.canvas.getContext("2d");n.clearRect(0,0,a.canvas.width,a.canvas.height);var o=a.mediaEl.videoHeight,s=a.mediaEl.videoWidth;a.canvas.width===s&&a.canvas.height===o||(a.canvas.width=s,a.canvas.height=o),n.drawImage(a.mediaEl,0,0,s,o)}}}),Object.defineProperty(this,"checkSwitchSnapshot",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e,t,r,i,n,o,s=a.track.getMediaStreamTrack(),c="live"===(null==s?void 0:s.readyState)&&(null==s?void 0:s.enabled)&&!(null!=s&&s.muted);c===a.lastCheckResult.msTrackPlayable&&a.isPlayerPlaying()===a.lastCheckResult.elPlaying||Gt.info("rtcTrackId=".concat(a.track.getTrackId()," play change trackPlayable=").concat(c," isPlaying=").concat(a.isPlayerPlaying()),{msTrackReadyState:null==s?void 0:s.readyState,msTrackEnabled:null==s?void 0:s.enabled,msTrackMuted:null==s?void 0:s.muted,elCurrentTime:null===(e=a.mediaEl)||void 0===e?void 0:e.currentTime,elPaused:null===(t=a.mediaEl)||void 0===t?void 0:t.paused,elEnded:null===(r=a.mediaEl)||void 0===r?void 0:r.ended,elReadyState:null===(i=a.mediaEl)||void 0===i?void 0:i.readyState});(a.lastCheckResult={msTrackPlayable:c,elPlaying:a.isPlayerPlaying()},Ke._holdVideoLastFrame)&&(c&&(null===(n=a.mediaEl)||void 0===n||null===(n=n.srcObject)||void 0===n||null===(o=n.getVideoTracks)||void 0===o||null===(o=o.call(n))||void 0===o?void 0:o[0])!==s?a.switchOriginVideo():c||a.mediaEl.srcObject===a.snapshotMediaStream||a.switchSnapshot())}}),Object.defineProperty(this,"startCheckPlayState",{enumerable:!0,configurable:!0,writable:!0,value:function(){"video"===a.track.trackMediaType&&(Gt.info("startCheckPlayState trackid=",a.track.getTrackId()),a.snapshotInterval=setInterval(a.snapshot,300),a.checkSwitchSnapshotInterval=setInterval(a.checkSwitchSnapshot,150))}}),Object.defineProperty(this,"stopCheckPlayState",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e,t;Gt.info("stopCheckPlayState trackid=",null===(e=a.track)||void 0===e||null===(t=e.getTrackId)||void 0===t?void 0:t.call(e)),clearInterval(a.snapshotInterval),clearInterval(a.checkSwitchSnapshotInterval)}}),Object.defineProperty(this,"playVideo",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e;Gt.info("playVideo",a.track.getTrackId(),null===(e=a.mediaWrapperEl)||void 0===e?void 0:e.getAttribute(Ve)),a.mediaWrapperEl.appendChild(a.mediaEl),a.mediaEl.pause();var t=a.track.sfuStream||new MediaStream([a.track.getMediaStreamTrack()]);a.mediaEl.srcObject=t,a.mediaEl.play().catch(function(e){var t,r;"AbortError"!==e.name&&Gt.error("play video error trackid=",null===(t=a.track)||void 0===t||null===(r=t.getTrackId)||void 0===r?void 0:r.call(t),g(e))}),a.stopCheckPlayState(),a.startCheckPlayState()}}),Object.defineProperty(this,"playAudio",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e=a.track.sfuStream||new MediaStream([a.track.getMediaStreamTrack()]);a.mediaEl.srcObject=e,a.mediaEl.play().catch(function(e){var t,r;"AbortError"!==e.name&&Gt.error("play audio error trackid=",null===(t=a.track)||void 0===t||null===(r=t.getTrackId)||void 0===r?void 0:r.call(t),g(e))}),a.stopCheckPlayState(),a.startCheckPlayState()}}),Object.defineProperty(this,"stopPlay",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e,t;if(Gt.info("stopPlay",a.track.getTrackId(),null===(e=a.mediaWrapperEl)||void 0===e?void 0:e.getAttribute(Ve)),a.stopCheckPlayState(),a.mediaEl&&a.track){var r,i;if(a.mediaEl.pause(),null!==(t=a.mediaWrapperEl)&&void 0!==t&&t.contains(a.mediaEl))null===(r=a.mediaWrapperEl)||void 0===r||null===(i=r.removeChild)||void 0===i||i.call(r,a.mediaEl);a.mediaEl.srcObject=null,a.canvas=null,"audio"===a.track.trackMediaType?Ft.pushElement(a.mediaEl):Ut.pushElement(a.mediaEl)}}}),Object.defineProperty(this,"switchSnapshot",{enumerable:!0,configurable:!0,writable:!0,value:function(){Gt.info("switchSnapshot trackid",a.track.getTrackId()),a.mediaEl.srcObject=a.snapshotMediaStream,a.mediaEl.play().catch(function(e){Gt.info("snapshot play error, trackid",a.track.getTrackId(),g(e))})}}),Object.defineProperty(this,"switchOriginVideo",{enumerable:!0,configurable:!0,writable:!0,value:function(){setTimeout(function(){var e,t,r=a.track.getMediaStreamTrack();if("live"===(null==r?void 0:r.readyState)&&(null==r?void 0:r.enabled)&&!(null!=r&&r.muted)&&(null===(e=a.mediaEl)||void 0===e||null===(e=e.srcObject)||void 0===e||null===(t=e.getVideoTracks)||void 0===t||null===(t=t.call(e))||void 0===t?void 0:t[0])!==r){Gt.info("switchOriginVideo trackid",a.track.getTrackId());var i=a.track.sfuStream||new MediaStream([a.track.getMediaStreamTrack()]);a.mediaEl.srcObject=i,a.mediaEl.play().catch(function(e){Gt.info("switchOriginVideo play error, trackid",a.track.getTrackId(),g(e))})}},1e3)}}),this.mediaWrapperEl=n,this.mediaWrapperEl&&!this.mediaWrapperEl.getAttribute(Ve)&&this.mediaWrapperEl.setAttribute(Ve,"container_".concat(e.containerRtcLabelAcc++)),this.track=t,this.playerConfig=r,this.mediaEl=i,this.mediaEl.setAttribute(Ge,this.track.getTrackId()),this.canvas=document.createElement("canvas"),this.canvas.setAttribute(Ge,this.track.getTrackId()),this.snapshotMediaStream=this.canvas.captureStream(4)});Object.defineProperty(Vt,"containerRtcLabelAcc",{enumerable:!0,configurable:!0,writable:!0,value:0});var Bt=new(function(){return F(function e(){j(this,e),Object.defineProperty(this,"playControllerArr",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.playControllerArr=[]},[{key:"getElement",value:function(e){return this.playControllerArr.filter(function(t){var r;return(null===(r=t.track)||void 0===r?void 0:r.getTrackId())===e.getTrackId()}).map(function(e){return e.mediaEl})}},{key:"getPlayCtrls",value:function(e){return this.playControllerArr.filter(function(t){var r;return(null===(r=t.track)||void 0===r?void 0:r.getTrackId())===e.getTrackId()})}},{key:"play",value:function(e,t,r){var i,o=this;Gt.info("call play",e.getTrackId(),t instanceof HTMLElement?t.tagName:t,r);var s=e.getTrackId(),c=e.sfuStream||new MediaStream([e.getMediaStreamTrack()]);if("video"===e.trackMediaType){var u,l=this.findDom(t);if(!l)throw new n(a.InvaildArgument,"wrapper dom not found");var d=r||{},p=d.mirror,f=d.fit;if((i=this.playControllerArr.find(function(e){return e.mediaWrapperEl===l}))&&(null===(u=i.track)||void 0===u?void 0:u.getTrackId())!==(null==e?void 0:e.getTrackId()))return this.stopPlay(i.track,t),void this.play(e,t,r);if(i)i.mediaEl.pause(),!e.sourceMirror!=!p?i.mediaEl.style.transform="scaleX(-1)":i.mediaEl.style.transform="",f&&(i.mediaEl.style.objectFit=f),i.mediaEl.srcObject=c,i.mediaEl.play().catch(function(e){var t,r;"AbortError"!==e.name&&Gt.error("play video error trackid=",null===(t=i.track)||void 0===t||null===(r=t.getTrackId)||void 0===r?void 0:r.call(t),g(e))});else{var v,m=null===(v=this.getPlayCtrls(e))||void 0===v?void 0:v.length;if(m>3){var h,y=["DingRTC WARN: possible memory leak. More than 3 HTMLElement containers are playing the same track.","Please call track.stop to stop playing HTMLElements that will unmount in DOM.","TrackId:",e.getTrackId()];(h=console).warn.apply(h,y),Gt.info.apply(Gt,y.concat([m]))}(function(e,t){if(e.style.width="100%",e.style.height="100%",t){var r=t.mirror,i=t.fit;!0===r&&(e.style.transform="scaleX(-1)"),i&&(e.style.objectFit=i)}})((i=new Vt(e,r,At().popElement(),l)).mediaEl,{mirror:!e.sourceMirror!=!p,fit:f}),i.playVideo(),this.playControllerArr.push(i)}}else(i=this.playControllerArr.find(function(t){var r;return(null===(r=t.track)||void 0===r?void 0:r.getTrackId())===e.getTrackId()}))?(i.mediaEl.pause(),i.mediaEl.srcObject=c,Gt.info("element loaded",e.getTrackId()),i.mediaEl.load()):((i=new Vt(e,null,It().popElement(),null)).playAudio(),this.playControllerArr.push(i));i.mediaEl.paused&&i.mediaEl.play().catch(function(e){"NotAllowedError"===e.name?(Gt.error("autoplay failed",g(e)),b.emit("autoplay-failed",o)):"AbortError"!==e.name&&Gt.warn("".concat(s," play error"),g(e))})}},{key:"isPlaying",value:function(e){return this.playControllerArr.filter(function(t){var r;return(null===(r=t.track)||void 0===r?void 0:r.getTrackId())===(null==e?void 0:e.getTrackId())}).some(function(e){return e.isPlayerPlaying()})}},{key:"stopPlay",value:function(e,t){var r;Gt.info("call stop play",e.getTrackId());var i=this.findDom(t),n=this.playControllerArr.filter(function(r){var n;return(null===(n=r.track)||void 0===n?void 0:n.getTrackId())===(null==e?void 0:e.getTrackId())&&(!t||r.mediaWrapperEl===i)});if(n.length){n.forEach(function(e){e.stopPlay()});var a=this.playControllerArr.filter(function(e){return!n.includes(e)});(r=this.playControllerArr).splice.apply(r,[0,this.playControllerArr.length].concat(Re(a)))}}},{key:"findDom",value:function(e){if(!e)return null;var t="string"==typeof e?document.querySelector(e):e;return document.contains(t)?t:null}}])}()),Ht=function(){return Bt};function qt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(qt=function(){return!!e})()}window.playerMgr=Bt;var Wt=t(),Yt=Wt.trace,Qt=Wt.getLoggerWithPrefix("[rtc-track]"),Jt=Qt,Kt=Ht(),zt=function(){function e(t,r){var i,n,a,o;return j(this,e),n=this,a=G(a=e),i=U(n,qt()?Reflect.construct(a,[],G(n).constructor):a.apply(n,o)),Object.defineProperty(i,"trackMediaType",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"source",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"logger",{enumerable:!0,configurable:!0,writable:!0,value:Yt}),Object.defineProperty(i,"sourceNode",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"analyser",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"trackSettings",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"sfuStream",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"mediaStreamTrack",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"trackId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"sourceMirror",{enumerable:!0,configurable:!0,writable:!0,value:!1}),t?(i.trackMediaType=t.kind,i.trackSettings=t.getSettings()):r&&(i.trackMediaType="audio"),"audio"===i.trackMediaType&&(i.analyser=jt().createAnalyser()),i.trackId="".concat(i.trackMediaType,"_").concat(y(6)),i.setMediaStreamTrack(t,r),i}return B(e,c),F(e,[{key:"isPlaying",get:function(){return Kt.isPlaying(this)}},{key:"emit",value:function(t){for(var r=arguments.length,i=new Array(r>1?r-1:0),n=1;n<r;n++)i[n-1]=arguments[n];return Qt.info("track emit event",t,null==i?void 0:i[0]),(a="emit",o=this,s=3,c=_e(G(e.prototype),a,o),2&s&&"function"==typeof c?function(e){return c.apply(o,e)}:c)([t].concat(i));var a,o,s,c}},{key:"getTrackId",value:function(){return this.trackId}},{key:"setMediaStreamTrack",value:function(e,t){var r=this,i=this.mediaStreamTrack;if(i&&(i.onended=null),e||t){var o;if(i&&e&&(e.enabled=i.enabled),"audio"===this.trackMediaType)if(this.sourceNode&&(this.sourceNode.disconnect(),this.sourceNode=null),e)this.sourceNode=null===(o=jt())||void 0===o?void 0:o.createMediaStreamSource(new MediaStream([e]));else if(t){var s,c=Dt(t);this.sourceNode=null===(s=jt())||void 0===s?void 0:s.createMediaStreamSource(new MediaStream([c]))}e?(this.mediaStreamTrack=e,this.mediaStreamTrack.onended=function(){r.source===me.SCREENCAST?r.logger.sendEvent("SCREEN_DEVICE_STOP"):r.source===ve.MIC?new n(a.MicInterrupt):r.source===me.CAMERA&&new n(a.CameraInterrupt)}):t&&(this.sfuStream=t)}}},{key:"replaceTrack",value:function(e,t){Jt.info("replaceTrack",e,t),t&&this.isPlaying&&this.stopPlay(),this.replaceTrackInner(e,null,!0)}},{key:"replaceTrackInner",value:function(e,t,r){this.setMediaStreamTrack(e,t),this.emit(Ue,"replace",this),this.innnerPlay({updated:!0})}},{key:"setSource",value:function(e){e===me.CAMERA?this.logger.sendEvent("VIDEO_DEVICE_START"):e===me.SCREENCAST?this.logger.sendEvent("SCREEN_DEVICE_START"):e===ve.MIC&&this.logger.sendEvent("AUDIO_DEVICE_START"),this.source=e}},{key:"stop",value:function(e){console.error("The API stop is deprecated. Use stopPlay to stop playing or use close to destroy mediaStream track"),Jt.info("stop play track ".concat(this.getTrackId()),e instanceof HTMLElement?e.tagName:e),Kt.stopPlay(this,e)}},{key:"stopPlay",value:function(e){Jt.info("stop play track ".concat(this.getTrackId()),e instanceof HTMLElement?e.tagName:e),Kt.stopPlay(this,e)}},{key:"innnerPlay",value:function(e){var t=this,r=e.mediaWrapperElement,i=e.config;e.updated?Kt.getPlayCtrls(this).forEach(function(e){e.mediaWrapperEl?Kt.findDom(e.mediaWrapperEl)?Kt.play(t,e.mediaWrapperEl,e.playerConfig):Kt.stopPlay(t,e.mediaWrapperEl):Kt.play(t,e.mediaWrapperEl,e.playerConfig)}):Kt.play(this,r,i);if("audio"===this.trackMediaType){var n=jt();"running"!==n.state&&Jt.error("audioContext not running",n.state)}}},{key:"getMediaStreamTrack",value:function(){return this.mediaStreamTrack}}])}();function $t(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var i,n,a,o,s=[],c=!0,u=!1;try{if(a=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(i=a.call(r)).done)&&(s.push(i.value),s.length!==t);c=!0);}catch(e){u=!0,n=e}finally{try{if(!c&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw n}}return s}}(e,t)||Ae(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var Xt,Zt=function(e){return e.width>1920&&e.height>1080},er=function(e){var t;if(!e)return Ke.simulcast;var r=null===(t=e.getMediaStreamTrack())||void 0===t?void 0:t.getSettings(),i=(null==r?void 0:r.width)||e.trackSettings.width,n=(null==r?void 0:r.height)||e.trackSettings.height;return Ke.simulcast&&e.source===me.CAMERA&&!Zt({width:i,height:n})};function tr(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,i)}return r}function rr(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?tr(Object(r),!0).forEach(function(t){Ee(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):tr(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}!function(e){e[e.LLD=0]="LLD",e[e.LD=1]="LD",e[e.SD=2]="SD",e[e.HD=3]="HD",e[e.FHD=4]="FHD",e[e.QHD=5]="QHD"}(Xt||(Xt={}));var ir=Ee(Ee(Ee(Ee(Ee(Ee({},Xt.LLD,"lld"),Xt.LD,"ld"),Xt.SD,"sd"),Xt.HD,"hd"),Xt.FHD,"fhd"),Xt.QHD,"qhd"),nr={high:[2764800,4915200],QHD:[2764800,4915200],FHD:[1228800,2764800],HD:[307200,1228800],SD:[76800,307200],LD:[0,76800],low:[0,76800]},ar=function(e,t){var r=sr(e,t),i=function(e,t){var r={high:Me.QHD,low:Me.LD,QHD:Me.QHD,FHD:Me.FHD,HD:Me.HD,SD:Me.SD,LD:Me.LD},i=r[e]||Me.None,n=nr[e],a=t[t.length-1].width*t[t.length-1].height;if(a<n[0]){var o=Object.entries(nr).find(function(e){var t=$t(e,2);t[0];var r=t[1];return a>r[0]&&a<=r[1]});i=r[$t(o,1)[0]]}return i}(e,t);return{resolution:r,resolutionLevel:i}},or=function(e){return{0:"LLD",1:"LD",2:"LD",4:"SD",8:"HD",16:"FHD",32:"QHD"}[e]},sr=function(e,t){var r=nr[e],i=t.length,n=t[t.length-1];if(("FHD"===e||"high"===e)&&Zt(n))return n;if(t[0].width*t[0].height>nr.FHD[1])return t[0];for(var a=0;i>a;a++){var o=t[a].width*t[a].height;if(o>=r[0]&&r[1]>=o)return t[a]}for(var s=i-1;s>=0;s--){var c=t[s].width*t[s].height;if(r[1]>c)return t[s]}return t[0]},cr=[49152,76800,307200,1228800,2764800,4915200],ur=[200,350,1e3,1800,2828,5600],lr=[[256,144],[320,180],[640,360],[1280,720],[1920,1080],[2560,1440]],dr=[[256,192],[320,240],[640,480],[1280,960],[1920,1440],[2560,1920]],pr=function(e,t){var r=Xt.FHD,i=e*t;return i<=cr[Xt.LLD]?r=Xt.LLD:i<=cr[Xt.LD]?r=Xt.LD:i<=cr[Xt.SD]?r=Xt.SD:i<=cr[Xt.HD]?r=Xt.HD:i<=cr[Xt.FHD]?r=Xt.FHD:i<=cr[Xt.QHD]&&(r=Xt.QHD),r},fr=function(e,t,r,i){var n=0,a=0;if(i<=r)return[n=e,a=t];if(t>e){var o=[e,t];t=o[0],e=o[1]}if(16*t==9*e)n=lr[r][0],a=lr[r][1];else if(4*t==3*e)n=dr[r][0],a=dr[r][1];else{var s=Math.sqrt(1*lr[r][0]*lr[r][1]/e/t);s=1*(n=(n=Math.round(e*s))+15&-16)/e,a=Math.round(t*s)}return[n,a]},vr=function(e,t,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;if(!i){var n=1;30!==r&&(n=Math.sqrt(r/30));var a=ur[pr(e,t)];i=Math.round(Math.max(n*a,50))}return i},mr=function(e){var t=e.width,r=e.height,i=e.frameRate,n=e.maxBitrate,a=e.resolutionLevel,o=pr(t,r),s=[],c=o>=Xt.HD?3:2,u=function(e){var a=$t(fr(t,r,e,o),2),s=a[0],c=a[1],u=ur[e]/ur[o],l=1/(c/r);return{targetWidth:s,rid:ir[e],targetHeight:c,minBitrate:50,maxFramerate:i,maxBitrate:Math.round(Math.max(30,n*u)),scaleResolutionDownBy:l}};o>Xt.LLD&&s.push(rr({activeForBitrateMap:!1,activeForRealuse:Math.pow(2,Xt.LLD)===a},u(Xt.LLD))),o>Xt.LD&&s.push(rr({activeForBitrateMap:c>1,activeForRealuse:Math.pow(2,Xt.LD)===a},u(Xt.LD))),o>Xt.SD&&s.push(rr({activeForBitrateMap:c>2,activeForRealuse:Math.pow(2,Xt.SD)===a},u(Xt.SD))),o===Xt.FHD?(s.push(rr({activeForBitrateMap:!1,activeForRealuse:!1},u(Xt.HD))),s.push(rr({activeForBitrateMap:!0,activeForRealuse:Ke.republish?Math.pow(2,4)===a||a===Math.pow(2,3):Math.pow(2,4)===a},u(Xt.FHD)))):s.push(rr({activeForBitrateMap:!0,activeForRealuse:Math.pow(2,o)===a},u(o)));for(var l=0,d=0;d<s.length;++d)0!=d&&(s[d].minBitrate=l),l=Math.round(Math.max((s[d].maxBitrate+s[d].minBitrate)/2,s[d].maxBitrate-400));return s.shift(),s},hr=function(e,t){var r=pr(e,t);return Math.pow(2,r)},gr=function(e){var t,r=e.getMaxBitrate(),i=null===(t=e.getMediaStreamTrack())||void 0===t?void 0:t.getSettings(),n=(null==i?void 0:i.width)||e.trackSettings.width,a=(null==i?void 0:i.height)||e.trackSettings.height,o=(null==i?void 0:i.frameRate)||e.trackSettings.frameRate,s=!er(e),c={resolutionLevel:hr(n,a),encodings:[]};return s?c.encodings=[{maxFramerate:o,maxBitrate:r,scaleResolutionDownBy:1,activeForBitrateMap:!0,activeForRealuse:!0,rid:"",minBitrate:Math.round((r+30)/2),targetWidth:n,targetHeight:a}]:Ke.republish?c.encodings=mr({width:1920,height:1080,frameRate:30,maxBitrate:vr(1920,1080,30),resolutionLevel:c.resolutionLevel}):c.encodings=mr({width:n,height:a,frameRate:o,maxBitrate:r,resolutionLevel:c.resolutionLevel}),c};function br(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,i)}return r}function yr(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?br(Object(r),!0).forEach(function(t){Ee(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):br(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function kr(e,t,r){return t=G(t),U(e,Sr()?Reflect.construct(t,r||[],G(e).constructor):t.apply(e,r))}function Sr(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Sr=function(){return!!e})()}function Pr(e,t,r,i){var n=_e(G(e.prototype),t,r);return 2&i&&"function"==typeof n?function(e){return n.apply(r,e)}:n}var wr=Ht(),Tr=t().getLoggerWithPrefix("[rtc-localtrack]"),Mr=function(){function e(t){var r;if(j(this,e),r=kr(this,e,[t]),Object.defineProperty(r,"muted",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"maxBitrate",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"enabled",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"config",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"isClosed",{enumerable:!0,configurable:!0,writable:!0,value:!1}),t){var i=t.muted;r.muted=i}return r.enabled=!0,r}return B(e,zt),F(e,[{key:"setMediaStreamTrack",value:function(t){var r=this;Pr(e,"setMediaStreamTrack",this,3)([t]),t&&(this.trackSettings=t.getSettings(),t.onended=function(){r.stopPlay(),r.close&&setTimeout(function(){return r.close()},200),r.emit("track-ended")})}},{key:"play",value:function(e,t){Tr.info("play track ".concat(this.getTrackId()),(null==e?void 0:e.tagName)||e,t),this.innnerPlay({mediaWrapperElement:e,config:t})}},{key:"setEnabled",value:function(e){var t,r=this;return Tr.info("setEnabled",e),this.isClosed?Promise.reject(new n(a.InvaildState)):(this.enabled=e,e?this.updateNewTrack().then(function(e){return r.emit(Ue,"unmute"),e}):(null===(t=this.mediaStreamTrack)||void 0===t||t.stop(),this.setMediaStreamTrack(null),this.source===me.CAMERA?this.logger.sendEvent("VIDEO_DEVICE_STOP"):this.source===me.SCREENCAST&&this.logger.sendEvent("SCREEN_DEVICE_STOP"),this.emit(Ue,"mute"),Promise.resolve()))}},{key:"close",value:function(){var e;Tr.info("".concat(this.source," track:").concat(this.getTrackId()," close")),this.isClosed||(this.isClosed=!0,this.isPlaying&&this.stopPlay(),this.emit(Ue,"stop",this),null===(e=this.mediaStreamTrack)||void 0===e||e.stop(),this.setMediaStreamTrack(null),this.sourceNode=null,this.analyser=null,this.source===me.CAMERA?this.logger.sendEvent("VIDEO_DEVICE_STOP"):this.source===me.SCREENCAST&&this.logger.sendEvent("SCREEN_DEVICE_STOP"))}},{key:"setMuted",value:function(e){return Tr.info("setMuted",e),this.isClosed?Promise.reject(new n(a.InvaildState)):(this.muted=e,this.mediaStreamTrack.enabled=!e,this.emit(Ue,e?"mute":"unmute"),Promise.resolve())}},{key:"getAudioTrack",value:function(){var e=this;return Tr.debug("gengrate new audioTrack"),new Promise(function(t,r){var i;ft({audio:yr({source:e.source},e.config)}).then(function(e){i=e.getAudioTracks()[0]}).catch(function(e){try{var t=jt().createOscillator(),n=jt().createMediaStreamDestination();t.connect(n),i=n.stream.getAudioTracks()[0]}catch(t){Tr.error("gengrate new audioTrack error",u(e)),r(u(e))}}).finally(function(){i&&t(i)})})}},{key:"getVideoTrack",value:function(){var e=this;return Tr.info("gengrate new videoTrack",this.config),new Promise(function(t,r){var i,n=yr({source:e.source},e.config);e.config.facingMode&&e.config.deviceId&&(Tr.info("ignore deviceId param to create videoTrack because facingMode is",e.config.facingMode),delete n.deviceId),ft({video:n,audio:!1}).then(function(e){i=e.getVideoTracks()[0],t(i)}).catch(function(e){Tr.error("gengrate new videoTrack error",l(e)),r(l(e))})})}},{key:"updateNewTrack",value:function(){var e=this,t=this.getMediaStreamTrack();return t.onended=null,Tr.info("stop oldTrack first"),t.stop(),"audio"===this.trackMediaType?this.getAudioTrack().then(function(t){return e.replaceTrackInner(t,null,!0),e.emit(Ue,"localMixedAudioReplaceTrack",e)}):"video"===this.trackMediaType?this.getVideoTrack().then(function(t){return e.replaceTrackInner(t,null,!0)}):void 0}},{key:"setDevice",value:(t=C(Oe.mark(function e(t){var r,i,n;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(Tr.info("setDevice",t),!this.isClosed){e.next=1;break}return e.abrupt("return");case 1:if(!(this instanceof Ir)||"user"!==t&&"environment"!==t){e.next=2;break}this.config.facingMode=t,e.next=4;break;case 2:if((this.config.deviceId||(null===(r=this.mediaStreamTrack)||void 0===r||null===(r=r.getSettings())||void 0===r?void 0:r.deviceId)||(null===(i=this.mediaStreamTrack)||void 0===i||null===(n=i.getConstraints)||void 0===n||null===(n=n.call(i))||void 0===n?void 0:n.deviceId))!==t){e.next=3;break}return e.abrupt("return");case 3:this.config.deviceId=t;case 4:return e.abrupt("return",this.updateNewTrack());case 5:case"end":return e.stop()}},e,this)})),function(e){return t.apply(this,arguments)})},{key:"getTrackLabel",value:function(){if(Tr.info("getTrackLabel"),!this.isClosed)return this.mediaStreamTrack.label}},{key:"getMaxBitrate",value:function(){if(!this.isClosed)return this.maxBitrate}}]);var t}(),Or=function(){function e(t,r){var i;if(j(this,e),(i=kr(this,e,[t])).config=r,t){var n=t.getSettings(),a=n.width,o=n.height;i.maxBitrate=vr(a,o,r.frameRate,r.maxBitrate)}return i}return B(e,Mr),F(e,[{key:"optimizationMode",get:function(){return this.config.optimizationMode}},{key:"setEncoderConfiguration",value:(t=C(Oe.mark(function e(t){var r,i,o,s,c,u,d,p,f,v,m,h,g,b;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(Tr.info("videoTrack ".concat(this.getTrackId()," setEncoderConfiguration"),t),r=t.dimension,i=t.frameRate,o=t.maxBitrate,s=t.optimizationMode,c=t.mirror,!i||!Number.isNaN(i)){e.next=1;break}return e.abrupt("return",Promise.reject(new n(a.InvaildArgument,"invalid frameRate")));case 1:if(!r||je[r]){e.next=2;break}return e.abrupt("return",Promise.reject(new n(a.InvaildArgument,"invalid dimension")));case 2:if(!c!=!this.config.mirror&&(this.emit(Ue,"mirror",c),this.config.mirror=c),s&&s!==this.optimizationMode&&(this.config.optimizationMode=s,this.emit(Ue,"optimizationMode")),u=!1,r&&this.config.dimension!==r&&(this.config.dimension=r,u=!0),i&&this.config.frameRate!==Math.min(30,i)&&(this.config.frameRate=Math.min(30,i),u=!0),o&&this.maxBitrate!==o&&(u=!0),u){e.next=3;break}return e.abrupt("return",Promise.resolve());case 3:return d=yr({frameRate:this.config.frameRate},dt(this.config.dimension)),p=this.getMediaStreamTrack(),e.prev=4,e.next=5,null==p?void 0:p.applyConstraints(d);case 5:v=null===(f=this.getMediaStreamTrack())||void 0===f?void 0:f.getSettings(),m=v.width,h=v.height,this.maxBitrate=vr(m,h,this.config.frameRate,o),Tr.info("after applyConstraints",d,this.maxBitrate,k(p)),this.emit(Ue,"republish",this),e.next=7;break;case 6:throw e.prev=6,b=e.catch(4),g=l(b),Tr.error("videoTrack ".concat(this.getTrackId()," setEncoderConfiguration error"),g),g;case 7:case"end":return e.stop()}},e,this,[[4,6]])})),function(e){return t.apply(this,arguments)})},{key:"getCurrentFrameData",value:function(){return Tr.info("getCurrentFrameData"),this.isClosed||!this.isPlaying?null:Nt(wr.getElement(this)[0])}},{key:"play",value:function(t,r){return Tr.info("play track ".concat(this.getTrackId()),(null==t?void 0:t.tagName)||t,r),Pr(e,"play",this,3)([t,r])}}]);var t}(),Er=function(){function e(t){return j(this,e),kr(this,e,[t])}return B(e,Mr),F(e,[{key:"setVolume",value:function(e){Tr.info("setVolume",e),this.isClosed||wr.getElement(this)[0]&&(wr.getElement(this)[0].volume=e)}},{key:"getVolume",value:function(){if(Tr.info("getVolume"),!this.isClosed)return wr.getElement(this)[0]?wr.getElement(this)[0].volume:void 0}},{key:"getVolumeLevel",value:function(){return this.isClosed?0:Lt(this.analyser,this.sourceNode)}},{key:"play",value:function(){return Tr.info("local audio play"),Pr(e,"play",this,3)([])}},{key:"replaceTrack",value:function(e,t){Tr.info("replaceTrack",e,t),t&&this.isPlaying&&this.stopPlay(),this.replaceTrackInner(e,null,!0),this.emit(Ue,"localMixedAudioReplaceTrack",this)}}])}(),Ir=function(){function e(t,r){var i;return j(this,e),(i=kr(this,e,[t,r])).setSource(me.CAMERA),i}return B(e,Or),F(e)}(),Ar=function(){function e(t,r){var i;return j(this,e),(i=kr(this,e,[t])).config=r,i.setSource(ve.MIC),i.analyser=jt().createAnalyser(),i}return B(e,Er),F(e,[{key:"setVolume",value:function(e){Tr.info("setVolume",e),this.isClosed||wr.getElement(this)[0]&&(wr.getElement(this)[0].volume=e)}},{key:"getVolume",value:function(){if(Tr.info("getVolume"),!this.isClosed)return wr.getElement(this)[0]?wr.getElement(this)[0].volume:void 0}}])}(),Rr=function(){var e=C(Oe.mark(function e(t){var r,i,n,a,o,s,c,l,d,p,f;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return Tr.info("createMicrophoneAudioTrack",t),r={AEC:!0,AGC:!0,ANS:!0},n=(i=t||r).AEC,a=void 0===n||n,o=i.AGC,s=void 0===o||o,c=i.ANS,l=void 0===c||c,e.prev=1,e.next=2,ft({video:!1,audio:{deviceId:null==t?void 0:t.deviceId,source:ve.MIC,AEC:a,AGC:s,ANS:l}});case 2:return d=e.sent,p=d.getAudioTracks()[0],Tr.info("MicrophoneAudioTrack created",k(p)),e.abrupt("return",new Ar(p,Object.assign({},t,{AEC:a,AGC:s,ANS:l})));case 3:throw e.prev=3,f=e.catch(1),u(f);case 4:case"end":return e.stop()}},e,null,[[1,3]])}));return function(t){return e.apply(this,arguments)}}(),_r=function(){var e=C(Oe.mark(function e(t){var r,i,n,a,o,s,c,u,d,p;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return Tr.info("createCameraVideoTrack",t),r=t.deviceId,i=t.facingMode,n=t.dimension,a=void 0===n?"VD_640x480":n,o=t.optimizationMode,s=void 0===o?"balanced":o,c=Math.min(30,t.frameRate||15),e.prev=1,e.next=2,ft({video:{deviceId:r,source:me.CAMERA,frameRate:c,dimension:a,facingMode:i},audio:!1});case 2:return u=e.sent,d=u.getVideoTracks()[0],Tr.info("CameraVideoTrack created",k(d)),d.addEventListener("ended",function(){return Tr.info("cam track ended",d.id)}),d.addEventListener("unmute",function(){return Tr.info("cam track unmute",d.id)}),d.addEventListener("mute",function(){return Tr.info("cam track mute",d.id)}),e.abrupt("return",new Ir(d,Object.assign({},t,{frameRate:c,dimension:a,optimizationMode:s})));case 3:throw e.prev=3,p=e.catch(1),l(p);case 4:case"end":return e.stop()}},e,null,[[1,3]])}));return function(t){return e.apply(this,arguments)}}(),xr=function(){var e=C(Oe.mark(function e(t){return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return Tr.info("createScreenVideoTrack config",t),e.abrupt("return",Cr(t,"noAudio"));case 1:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}(),Cr=function(){var e=C(Oe.mark(function e(t,r){var i,n,a,o,s,c,u,l,d,p,f,v,m,h;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return Tr.info("_createScreenVideoTrack",t,r),i=t.displaySurface,n=void 0===i?"monitor":i,a=t.dimension,o=void 0===a?"VD_1920x1080":a,s=t.optimizationMode,c=void 0===s?"detail":s,u=Math.min(t.frameRate||5,30),e.prev=1,e.next=2,ft({video:{source:me.SCREENCAST,displaySurface:n,frameRate:u,dimension:o},audio:"withAudio"===r});case 2:return l=e.sent,p=l.getVideoTracks()[0],Tr.info("ScreenVideoTrack created",k(p)),p.addEventListener("ended",function(){return Tr.info("screen video track ended",p.id)}),p.addEventListener("unmute",function(){return Tr.info("screen video track unmute",p.id)}),p.addEventListener("mute",function(){return Tr.info("screen video track mute",p.id)}),(f=new Or(p,Object.assign({},t,{frameRate:u,dimension:o,optimizationMode:c}))).setSource(me.SCREENCAST),(m=null===(d=l.getAudioTracks())||void 0===d?void 0:d[0])&&((v=new Er(m)).setSource(ve.SCREENCAST),Tr.info("ScreenAudioTrack created",k(m)),m.addEventListener("ended",function(){return Tr.info("screen audio track ended",m.id)}),m.addEventListener("unmute",function(){return Tr.info("screen audio track unmute",m.id)}),m.addEventListener("mute",function(){return Tr.info("screen audio track mute",m.id)})),e.abrupt("return",v?[f,v]:[f]);case 3:throw e.prev=3,h=e.catch(1),S(h);case 4:case"end":return e.stop()}},e,null,[[1,3]])}));return function(t,r){return e.apply(this,arguments)}}(),jr=function(){var e=C(Oe.mark(function e(t){return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return Tr.info("createScreenVideoAndAudioTrack",t),e.abrupt("return",Cr(t,"withAudio"));case 1:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}(),Dr=function(){var e=C(Oe.mark(function e(t,r){var i,n,a,o,s,c,u,d,p,f,v,m,g,b,y,k,S,P,w,T,M;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return Tr.info("createMicrophoneAndCameraTracks",t,r),i=Math.min(t.frameRate||15,30),n=t.deviceId,a=t.facingMode,o=t.dimension,s=void 0===o?"VD_640x480":o,c=t.optimizationMode,u=void 0===c?"balanced":c,d={AEC:!0,AGC:!0,ANS:!0},f=(p=r||d).AEC,v=void 0===f||f,m=p.AGC,g=void 0===m||m,b=p.ANS,y=void 0===b||b,e.prev=1,e.next=2,ft({video:{deviceId:n,source:me.CAMERA,frameRate:i,dimension:s,facingMode:a},audio:{deviceId:null==r?void 0:r.deviceId,source:ve.MIC,AEC:v,AGC:g,ANS:y}});case 2:return k=e.sent,S=k.getVideoTracks()[0],P=k.getAudioTracks()[0],Tr.info("CameraVideoTrack and MicrophoneTrack created",h(k)),S.addEventListener("ended",function(){return Tr.info("cam track ended",S.id)}),S.addEventListener("unmute",function(){return Tr.info("cam track unmute",S.id)}),S.addEventListener("mute",function(){return Tr.info("cam track mute",S.id)}),P.addEventListener("ended",function(){return Tr.info("mic track ended",P.id)}),P.addEventListener("unmute",function(){return Tr.info("mic track unmute",P.id)}),P.addEventListener("mute",function(){return Tr.info("mic track mute",P.id)}),w=new Ir(S,Object.assign({},t,{frameRate:i,dimension:s,optimizationMode:u})),T=new Ar(P,Object.assign({},Object.assign({},r,{AEC:v,AGC:g,ANS:y}))),e.abrupt("return",[w,T]);case 3:throw e.prev=3,M=e.catch(1),l(M);case 4:case"end":return e.stop()}},e,null,[[1,3]])}));return function(t,r){return e.apply(this,arguments)}}(),Lr=function(){var e=C(Oe.mark(function e(t){var r,i,o,s,c,u,l,d,p,f=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r=f.length>1&&void 0!==f[1]?f[1]:me.CAMERA,Tr.info("createCustomVideoTrack",t,r,k(t.mediaStreamTrack)),o=(i=t||{}).mediaStreamTrack,s=i.dimension,c=void 0===s?"VD_640x480":s,u=i.optimizationMode,l=void 0===u?"balanced":u,d=Math.min(t.frameRate||15,30),o instanceof MediaStreamTrack&&"video"===o.kind){e.next=1;break}throw new n(a.InvaildArgument,"missing video mediaStreamTrack");case 1:return Tr.info("createCustomVideoTrack for",k(o)),o.addEventListener("ended",function(){return Tr.info("custom video track ended",o.id)}),o.addEventListener("unmute",function(){return Tr.info("custom video track unmute",o.id)}),o.addEventListener("mute",function(){return Tr.info("custom video track mute",o.id)}),(p=new Or(o,Object.assign({},t,{frameRate:d,dimension:c,optimizationMode:l}))).setSource(r),e.abrupt("return",p);case 2:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}(),Nr=function(){var e=C(Oe.mark(function e(t){var r,i,o,s=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r=s.length>1&&void 0!==s[1]?s[1]:"mic",Tr.info("createCustomAudioTrack",t,r,k(t.mediaStreamTrack)),(i=(t||{}).mediaStreamTrack)instanceof MediaStreamTrack&&"audio"===i.kind){e.next=1;break}throw new n(a.InvaildArgument,"missing audio mediaStreamTrack");case 1:return Tr.info("createCustomAudioTrack succeed"),i.addEventListener("ended",function(){return Tr.info("custom audio track ended",i.id)}),i.addEventListener("unmute",function(){return Tr.info("custom audio track unmute",i.id)}),i.addEventListener("mute",function(){return Tr.info("custom audio track mute",i.id)}),(o=new Er(i)).setSource(r),e.abrupt("return",o);case 2:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}();function Fr(e,t,r,i){var n=_e(G(e.prototype),t,r);return 2&i&&"function"==typeof n?function(e){return n.apply(r,e)}:n}function Ur(e,t,r){return t=G(t),U(e,Gr()?Reflect.construct(t,r||[],G(e).constructor):t.apply(e,r))}function Gr(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Gr=function(){return!!e})()}var Vr,Br=t().getLoggerWithPrefix("[rtc-remotetrack]"),Hr=Ht(),qr=function(){function e(t,r,i){var n;return j(this,e),n=Ur(this,e,[t,i]),Object.defineProperty(n,"userId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"subscription",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),n.userId=r,n}return B(e,zt),F(e,[{key:"getUserId",value:function(){return Br.info("getUserId"),this.userId}},{key:"onFirstFrame",value:function(){this.emit("first-frame-decoded")}},{key:"attachSubscription",value:function(e){this.subscription&&this.subscription.off("audio-first-frame",this.onFirstFrame),this.subscription=e,null==e||e.on("audio-first-frame",this.onFirstFrame)}}])}(),Wr=function(){function e(t,r,i){var n;return j(this,e),n=Ur(this,e,[t,r,i]),Object.defineProperty(n,"deviceId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),n.deviceId="",n}return B(e,qr),F(e,[{key:"getMediaStreamTrack",value:function(){return Ke.audioSFU?Dt(this.sfuStream):Fr(e,"getMediaStreamTrack",this,3)([])}},{key:"replaceStream",value:function(e,t){Br.info("replaceRemote Audio",e,t),t&&this.isPlaying&&this.stopPlay(),this.replaceTrackInner(null,e)}},{key:"setVolume",value:function(e){Br.info("setVolume",e),Hr.getElement(this)[0]&&(Hr.getElement(this)[0].volume=e)}},{key:"getVolume",value:function(){if(Br.info("getVolume"),Hr.getElement(this)[0])return Hr.getElement(this)[0].volume}},{key:"setSpeaker",value:function(e){var t=this;return Br.info("setSpeaker",e),new Promise(function(r,i){var o,s=Hr.getElement(t)[0];s||i(new n(a.InvaildState,"please playout audio first")),s.setSinkId||i(new n(a.SpeakerSetNotSupported)),null===(o=s.setSinkId)||void 0===o||o.call(s,e).then(function(){t.deviceId=e,r()}).catch(function(e){i(u(e))})})}},{key:"getVolumeLevel",value:function(){return Lt(this.analyser,this.sourceNode)}},{key:"play",value:function(){return Br.info("remote audio play"),Fr(e,"innnerPlay",this,3)([{}])}}])}(),Yr=function(){function e(t,r){return j(this,e),Ur(this,e,[t,r])}return B(e,qr),F(e,[{key:"play",value:function(t,r){return Br.info("remote video play",this.getTrackId()),Fr(e,"innnerPlay",this,3)([{mediaWrapperElement:t,config:r}])}},{key:"setSourceMirror",value:function(t){t!==this.sourceMirror&&(Br.info("remote video track set Mirror",t),this.sourceMirror=t,this.isPlaying&&Fr(e,"innnerPlay",this,3)([{updated:!0}]))}},{key:"getCurrentFrameData",value:function(){return Br.info("getCurrentFrameData"),this.isPlaying?Nt(Hr.getElement(this)[0]):null}}])}();!function(e){var t,r,i,n,a,o,s,c;(t=e.DataType||(e.DataType={}))[t.DATA_TYPE_STREAM=0]="DATA_TYPE_STREAM",t[t.DATA_TYPE_PARTICIPANTS=1]="DATA_TYPE_PARTICIPANTS",t[t.DATA_TYPE_CONFERENCE=2]="DATA_TYPE_CONFERENCE",t[t.DATA_TYPE_GROUP_LIST=3]="DATA_TYPE_GROUP_LIST",t[t.DATA_TYPE_GROUP=4]="DATA_TYPE_GROUP",(r=e.OptType||(e.OptType={}))[r.OPT_TYPE_ADD=0]="OPT_TYPE_ADD",r[r.OPT_TYPE_REMOVE=1]="OPT_TYPE_REMOVE",r[r.OPT_TYPE_UPDATE=2]="OPT_TYPE_UPDATE",(i=e.SyncResponseCode||(e.SyncResponseCode={}))[i.SYNC_OK=0]="SYNC_OK",i[i.SYNC_PART_SUC=10]="SYNC_PART_SUC",i[i.SYNC_DATA_SIZE_LIMITED=11]="SYNC_DATA_SIZE_LIMITED",i[i.SYNC_NOT_SUPPORT_TYPE=12]="SYNC_NOT_SUPPORT_TYPE",i[i.SYNC_NOT_FOUND=13]="SYNC_NOT_FOUND",i[i.SYNC_CHANNEL_NOT_EXIST=14]="SYNC_CHANNEL_NOT_EXIST",i[i.SYNC_INTERNAL_ERROR=15]="SYNC_INTERNAL_ERROR",(n=e.GroupUpdate||(e.GroupUpdate={}))[n.GROUP_UPDATE_AUDIO_STREAM_LOST=0]="GROUP_UPDATE_AUDIO_STREAM_LOST",n[n.GROUP_UPDATE_AUDIO_STREAM_RECOVER=1]="GROUP_UPDATE_AUDIO_STREAM_RECOVER",n[n.GROUP_UPDATE_ADD_PARTICIPANTS=2]="GROUP_UPDATE_ADD_PARTICIPANTS",n[n.GROUP_UPDATE_REMOVE_PARTICIPANTS=3]="GROUP_UPDATE_REMOVE_PARTICIPANTS",n[n.GROUP_UPDATE_SET_PROPERTIES=4]="GROUP_UPDATE_SET_PROPERTIES",n[n.GROUP_UPDATE_REMOVE_PROPERTIES=5]="GROUP_UPDATE_REMOVE_PROPERTIES",(a=e.GroupListUpdate||(e.GroupListUpdate={}))[a.GROUP_LIST_UPDATE_ADD_ID=0]="GROUP_LIST_UPDATE_ADD_ID",a[a.GROUP_LIST_UPDATE_REMOVE_ID=1]="GROUP_LIST_UPDATE_REMOVE_ID",(o=e.LEAVE_GROUP_REASON_CODE||(e.LEAVE_GROUP_REASON_CODE={}))[o.NORMAL_LEAVE=0]="NORMAL_LEAVE",(s=e.DismissGroupReasonCode||(e.DismissGroupReasonCode={}))[s.NORMAL_DISMISS=0]="NORMAL_DISMISS",(c=e.Result||(e.Result={}))[c.Ok=0]="Ok",c[c.Error=1]="Error"}(Vr||(Vr={}));var Qr=P({options:{syntax:"proto3"},nested:{signal_msg:{nested:{AudioSsrcSpec:{fields:{ssrc:{type:"uint32",id:1},rtxSsrc:{type:"uint32",id:2}}},VideoSsrcSpec:{fields:{ssrc:{type:"uint32",id:1},rtxSsrc:{type:"uint32",id:2},fecSsrc:{type:"uint32",id:3}}},MultiPcAdaptRequestInfo:{fields:{audioSsrcSpec:{rule:"repeated",type:"AudioSsrcSpec",id:1},videoSsrcSpec:{rule:"repeated",type:"VideoSsrcSpec",id:2}}},AudioStreamFormat:{fields:{codec:{type:"string",id:1},sampleRate:{type:"int64",id:2},channelNum:{type:"int64",id:3}}},AudioFormatPreference:{fields:{preferred:{type:"AudioStreamFormat",id:1},optional:{rule:"repeated",type:"AudioStreamFormat",id:2}}},AudioStreamOptional:{fields:{format:{rule:"repeated",type:"AudioStreamFormat",id:1}}},VideoStreamFormat:{fields:{codec:{type:"string",id:1},profile:{type:"string",id:2}}},VideoFormatPreference:{fields:{preferred:{type:"VideoStreamFormat",id:1},optional:{rule:"repeated",type:"VideoStreamFormat",id:2}}},FormatPreference:{fields:{audio:{type:"AudioFormatPreference",id:1},video:{type:"VideoFormatPreference",id:2}}},Resolution:{fields:{width:{type:"uint32",id:1},height:{type:"uint32",id:2}}},VideoSsrcParameters:{fields:{ssrc:{type:"uint32",id:1},framerate:{type:"int32",id:2},resolution:{type:"Resolution",id:3},maxBitrate:{type:"int32",id:4},minBitrate:{type:"int32",id:5},active:{type:"bool",id:6},bitrate:{type:"int64",id:7},tlayer:{type:"int64",id:8},multiSlice:{type:"int64",id:9},keyFrameInterval:{type:"int64",id:10},constantPpsid:{type:"int64",id:11},rid:{type:"string",id:12}}},VideoParameters:{oneofs:{_resolutionLevel:{oneof:["resolutionLevel"]}},fields:{ssrc:{type:"uint32",id:1},resolution:{type:"Resolution",id:2},framerate:{type:"int32",id:3},bitrate:{type:"string",id:4},multiSlice:{type:"int32",id:5},keyFrameInterval:{type:"int64",id:6},constantPpsid:{type:"int64",id:7},resolutionLevel:{type:"uint32",id:8,options:{proto3_optional:!0}}}},GroupVersion:{fields:{id:{type:"string",id:1},ver:{type:"int64",id:2}}},StreamInfo:{fields:{type:{type:"string",id:1},owner:{type:"string",id:2},attributesJsonStr:{type:"string",id:3},label:{type:"string",id:4},createTime:{type:"int64",id:7}}},StreamVideoParameters:{fields:{resolution:{type:"Resolution",id:1},framerate:{type:"int64",id:2},bitrate:{type:"int64",id:3},keyFrameInterval:{type:"int64",id:4},multiSlice:{type:"int64",id:5},constantPpsid:{type:"int64",id:6}}},VideoStreamPara:{fields:{specs:{rule:"repeated",type:"string",id:1},resolution:{rule:"repeated",type:"Resolution",id:2},framerate:{rule:"repeated",type:"int32",id:3},bitrate:{rule:"repeated",type:"string",id:4},keyFrameInterval:{rule:"repeated",type:"int32",id:5}}},VideoStreamOptional:{fields:{format:{rule:"repeated",type:"VideoStreamFormat",id:1},parameters:{type:"VideoStreamPara",id:2}}},StreamAudioDesc:{fields:{trackId:{type:"string",id:1},msid:{type:"string",id:2},status:{type:"string",id:3},format:{type:"AudioStreamFormat",id:4},source:{type:"string",id:5},ssrc:{rule:"repeated",type:"uint32",id:6},ssrcGroup:{rule:"repeated",type:"AudioSsrcSpec",id:7},optional:{type:"AudioStreamOptional",id:8}}},StreamVideoDesc:{fields:{trackId:{type:"string",id:1},msid:{type:"string",id:2},status:{type:"string",id:3},source:{type:"string",id:4},format:{type:"VideoStreamFormat",id:5},ssrc:{rule:"repeated",type:"uint32",id:6},ssrcGroup:{rule:"repeated",type:"VideoSsrcSpec",id:7},parameters:{type:"StreamVideoParameters",id:8},optional:{type:"VideoStreamOptional",id:9},highestResolutionLevel:{type:"int32",id:10}}},StreamMediaDesc:{fields:{audio:{type:"StreamAudioDesc",id:1},video:{type:"StreamVideoDesc",id:2}}},Stream:{fields:{id:{type:"string",id:1},type:{type:"string",id:2},media:{type:"StreamMediaDesc",id:3},info:{type:"StreamInfo",id:4},version:{type:"int64",id:5}}},OriginMsg:{fields:{type:{type:"string",id:1},id:{type:"string",id:2}}},ErrorMsg:{fields:{id:{type:"string",id:1},code:{type:"int32",id:2},msg:{type:"string",id:3},origin:{type:"OriginMsg",id:4}}},ErrorMsgs:{fields:{globalStatus:{type:"string",id:1},detailStatus:{rule:"repeated",type:"ErrorMsg",id:2}}},DataType:{values:{DATA_TYPE_STREAM:0,DATA_TYPE_PARTICIPANTS:1,DATA_TYPE_CONFERENCE:2,DATA_TYPE_GROUP_LIST:3,DATA_TYPE_GROUP:4}},OptType:{values:{OPT_TYPE_ADD:0,OPT_TYPE_REMOVE:1,OPT_TYPE_UPDATE:2}},SyncResponseCode:{values:{SYNC_OK:0,SYNC_PART_SUC:10,SYNC_DATA_SIZE_LIMITED:11,SYNC_NOT_SUPPORT_TYPE:12,SYNC_NOT_FOUND:13,SYNC_CHANNEL_NOT_EXIST:14,SYNC_INTERNAL_ERROR:15}},GroupParticipant:{fields:{uid:{type:"string",id:1},pid:{type:"string",id:2},userData:{type:"string",id:3}}},GroupAudioInfo:{fields:{label:{type:"string",id:1},audio:{type:"Stream",id:2}}},GroupInfo:{fields:{id:{type:"string",id:1},ver:{type:"int64",id:2},participants:{rule:"repeated",type:"GroupParticipant",id:3},audioInfo:{type:"GroupAudioInfo",id:4},properties:{rule:"repeated",type:"GroupProperty",id:5}}},GroupProperty:{fields:{key:{type:"string",id:1},value:{type:"string",id:2}}},SyncFullData:{oneofs:{_ver:{oneof:["ver"]},_totalPages:{oneof:["totalPages"]},_pagingSeq:{oneof:["pagingSeq"]}},fields:{ver:{type:"int64",id:1,options:{proto3_optional:!0}},totalPages:{type:"int32",id:2,options:{proto3_optional:!0}},pagingSeq:{type:"int64",id:3,options:{proto3_optional:!0}},groupData:{type:"GroupPagingData",id:10},groupListData:{type:"GroupListPagingData",id:11}}},GroupPagingData:{fields:{pagingSeq:{type:"int64",id:1},curPage:{type:"int32",id:2},groupInfos:{rule:"repeated",type:"GroupInfo",id:3}}},GroupListPagingData:{fields:{pagingSeq:{type:"int64",id:1},curPage:{type:"int32",id:2},groupIds:{rule:"repeated",type:"string",id:3}}},SyncChangeLog:{fields:{groupListChangeLogs:{rule:"repeated",type:"GroupListChangeLog",id:1},groupChangeLogs:{rule:"repeated",type:"GroupChangeLog",id:2}}},SyncDataRequest:{oneofs:{_id:{oneof:["id"]}},fields:{type:{type:"DataType",id:1},id:{type:"string",id:2,options:{proto3_optional:!0}},ver:{type:"int64",id:3},forceFullSync:{type:"bool",id:4},supportPagingSync:{type:"bool",id:5}}},SyncDataResponse:{fields:{code:{type:"SyncResponseCode",id:1},errMsg:{type:"string",id:2},fullSync:{type:"SyncFullData",id:3},changeLogs:{rule:"repeated",type:"SyncChangeLog",id:4}}},SyncIds:{fields:{id:{type:"string",id:1},ver:{type:"int64",id:2}}},SyncDataByIdsRequest:{fields:{type:{type:"DataType",id:1},ids:{rule:"repeated",type:"SyncIds",id:2},forceFullSync:{type:"bool",id:3},supportPagingSync:{type:"bool",id:4}}},SyncDataByIdsResponse:{fields:{code:{type:"SyncResponseCode",id:1},errMsg:{type:"string",id:2},notFoundIds:{rule:"repeated",type:"string",id:3},fullSync:{type:"SyncFullData",id:4},changeLogs:{rule:"repeated",type:"SyncChangeLog",id:5}}},GroupUpdate:{values:{GROUP_UPDATE_AUDIO_STREAM_LOST:0,GROUP_UPDATE_AUDIO_STREAM_RECOVER:1,GROUP_UPDATE_ADD_PARTICIPANTS:2,GROUP_UPDATE_REMOVE_PARTICIPANTS:3,GROUP_UPDATE_SET_PROPERTIES:4,GROUP_UPDATE_REMOVE_PROPERTIES:5}},GroupUpdateOpt:{fields:{updateAction:{type:"GroupUpdate",id:1},participants:{rule:"repeated",type:"GroupParticipant",id:2},properties:{rule:"repeated",type:"GroupProperty",id:3}}},GroupChangeLog:{oneofs:{_groupInfo:{oneof:["groupInfo"]},_updateOpt:{oneof:["updateOpt"]},_msgId:{oneof:["msgId"]}},fields:{ver:{type:"int64",id:1},type:{type:"OptType",id:2},id:{type:"string",id:3},groupInfo:{type:"GroupInfo",id:4,options:{proto3_optional:!0}},updateOpt:{type:"GroupUpdateOpt",id:5,options:{proto3_optional:!0}},msgId:{type:"string",id:6,options:{proto3_optional:!0}}}},GroupListUpdate:{values:{GROUP_LIST_UPDATE_ADD_ID:0,GROUP_LIST_UPDATE_REMOVE_ID:1}},GroupListUpdateOpt:{fields:{updateAction:{type:"GroupListUpdate",id:1},id:{type:"string",id:2}}},GroupListChangeLog:{oneofs:{_msgId:{oneof:["msgId"]}},fields:{ver:{type:"int64",id:1},type:{type:"OptType",id:2},updateOpt:{type:"GroupListUpdateOpt",id:3},msgId:{type:"string",id:4,options:{proto3_optional:!0}}}},JoinGroupRequest:{fields:{groupId:{type:"string",id:1},userData:{type:"string",id:2},autoJoinGroupAudio:{type:"bool",id:3},autoLeaveChannelAudio:{type:"bool",id:4}}},JoinGroupResponse:{oneofs:{_joinGroupAudioSuccess:{oneof:["joinGroupAudioSuccess"]}},fields:{code:{type:"int32",id:1},errMsg:{type:"string",id:2},group:{type:"GroupInfo",id:3},joinGroupAudioSuccess:{type:"bool",id:4,options:{proto3_optional:!0}}}},LEAVE_GROUP_REASON_CODE:{values:{NORMAL_LEAVE:0}},LeaveGroupRequest:{fields:{groupId:{type:"string",id:1},reasonCode:{type:"LEAVE_GROUP_REASON_CODE",id:2},autoJoinChannelAudio:{type:"bool",id:3}}},LeaveGroupResponse:{oneofs:{_joinChannelAudioSuccess:{oneof:["joinChannelAudioSuccess"]}},fields:{code:{type:"int32",id:1},errMsg:{type:"string",id:2},joinChannelAudioSuccess:{type:"bool",id:3,options:{proto3_optional:!0}}}},DismissGroupReasonCode:{values:{NORMAL_DISMISS:0}},DismissGroupRequest:{fields:{groupId:{type:"string",id:1},reasonCode:{type:"DismissGroupReasonCode",id:2}}},DismissGroupResponse:{fields:{code:{type:"int32",id:1},errMsg:{type:"string",id:2}}},ObserveAllGroupsRequest:{fields:{}},ObserveAllGroupsResponse:{fields:{code:{type:"int32",id:1},errMsg:{type:"string",id:2}}},UnobserveAllGroupsRequest:{fields:{}},UnobserveAllGroupsResponse:{fields:{code:{type:"int32",id:1},errMsg:{type:"string",id:2}}},SetGroupPropertiesRequest:{fields:{groupId:{type:"string",id:1},properties:{rule:"repeated",type:"GroupProperty",id:2}}},SetGroupPropertiesResponse:{fields:{code:{type:"int32",id:1},errMsg:{type:"string",id:2}}},RemoveGroupPropertiesRequest:{fields:{groupId:{type:"string",id:1},keys:{rule:"repeated",type:"string",id:2}}},RemoveGroupPropertiesResponse:{fields:{code:{type:"int32",id:1},errMsg:{type:"string",id:2}}},SetParticipantPropertiesRequest:{fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},propertiesJsonStr:{type:"string",id:3},tid:{type:"string",id:4},traceId:{type:"string",id:5}}},RemoveParticipantPropertiesRequest:{fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},propertiesJsonStr:{type:"string",id:3},tid:{type:"string",id:4},traceId:{type:"string",id:5}}},Result:{values:{Ok:0,Error:1}},Response:{oneofs:{data:{oneof:["reason","createPeerConnectionResponse","errorMsg","queryStreamsVerResponse","queryStreamsResponse","publishResponse","subscribeResponse","joinGroupResponse","leaveGroupResponse","dismissGroupResponse","observeAllGroupsResponse","unobserveAllGroupsResponse","syncDataResponse","syncDataByIdsResponse","setGroupPropertiesResponse","removeGroupPropertiesResponse"]}},fields:{result:{type:"Result",id:1},tid:{type:"string",id:2},traceId:{type:"string",id:3},code:{type:"int32",id:4},reason:{type:"string",id:11},createPeerConnectionResponse:{type:"CreatePeerConnectionResponse",id:15},errorMsg:{type:"ErrorMsgs",id:16},queryStreamsVerResponse:{type:"QueryStreamsVerResponse",id:17},queryStreamsResponse:{type:"QueryStreamsResponse",id:18},publishResponse:{type:"PublishResponse",id:21},subscribeResponse:{type:"SubscribeResponse",id:22},joinGroupResponse:{type:"JoinGroupResponse",id:24},leaveGroupResponse:{type:"LeaveGroupResponse",id:25},dismissGroupResponse:{type:"DismissGroupResponse",id:26},observeAllGroupsResponse:{type:"ObserveAllGroupsResponse",id:27},unobserveAllGroupsResponse:{type:"UnobserveAllGroupsResponse",id:28},syncDataResponse:{type:"SyncDataResponse",id:29},syncDataByIdsResponse:{type:"SyncDataByIdsResponse",id:30},setGroupPropertiesResponse:{type:"SetGroupPropertiesResponse",id:31},removeGroupPropertiesResponse:{type:"RemoveGroupPropertiesResponse",id:32}}},NotificationItem:{oneofs:{notification:{oneof:["streamNotification","serverFailoverNotification","progressNotification","groupNotification","groupListNotification"]}},fields:{event:{type:"string",id:1},streamNotification:{type:"StreamNotification",id:11},serverFailoverNotification:{type:"ServerFailoverNotification",id:13},progressNotification:{type:"ProgressNotification",id:14},groupNotification:{type:"GroupChangeLog",id:17},groupListNotification:{type:"GroupListChangeLog",id:18}}},BatchNotification:{fields:{notificationItem:{rule:"repeated",type:"NotificationItem",id:1},tid:{type:"string",id:2},traceId:{type:"string",id:3}}},MediaMessage:{fields:{payload:{type:"string",id:1}}},AudioStreamTrackDesc:{fields:{streamId:{type:"string",id:1},trackId:{type:"string",id:2},msid:{type:"string",id:3},source:{type:"string",id:4},uplinkSsrcGroup:{rule:"repeated",type:"AudioSsrcSpec",id:5},format:{type:"AudioStreamFormat",id:6},autoMix:{rule:"repeated",type:"string",id:7},attributesJsonString:{type:"string",id:8}}},VideoStreamTrackDesc:{fields:{streamId:{type:"string",id:1},trackId:{type:"string",id:2},msid:{type:"string",id:3},source:{type:"string",id:4},logicSsrc:{rule:"repeated",type:"uint32",id:5},uplinkSsrcGroup:{rule:"repeated",type:"VideoSsrcSpec",id:6},ssrcParameters:{rule:"repeated",type:"VideoSsrcParameters",id:7},streamParameters:{type:"VideoParameters",id:8},attributesJsonString:{type:"string",id:9},forwardOnly:{type:"bool",id:10},mid:{type:"string",id:11},highestResolutionLevel:{type:"int32",id:12}}},MediaStreamTrackDesc:{fields:{audio:{rule:"repeated",type:"AudioStreamTrackDesc",id:1},video:{rule:"repeated",type:"VideoStreamTrackDesc",id:2}}},StreamVersion:{fields:{streamId:{type:"string",id:1},streamVer:{type:"int64",id:2}}},StreamData:{fields:{id:{type:"string",id:1},stream:{type:"Stream",id:2}}},AudioPubOptions:{fields:{source:{type:"string",id:1},format:{type:"AudioStreamFormat",id:2},autoMix:{rule:"repeated",type:"string",id:3}}},VideoPubOptions:{fields:{source:{type:"string",id:1},format:{type:"VideoStreamFormat",id:2},parameters:{type:"VideoParameters",id:3},forwardOnly:{type:"bool",id:4}}},MediaPubOptionsSpecify:{fields:{audio:{type:"AudioPubOptions",id:1},video:{type:"VideoPubOptions",id:2}}},BatchPublishRequest:{fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},connectionId:{type:"string",id:3},type:{type:"string",id:4},simulcast:{type:"bool",id:5},simulcastVersion:{type:"string",id:6},supportTemporalLayer:{type:"bool",id:7},clientType:{type:"string",id:8},clientVersion:{type:"string",id:9},media:{type:"MediaStreamTrackDesc",id:10},event:{type:"string",id:11},tid:{type:"string",id:12},traceId:{type:"string",id:13}}},BatchUnpublishRequest:{fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},connectionId:{type:"string",id:3},audio:{rule:"repeated",type:"string",id:4},video:{rule:"repeated",type:"string",id:5},tid:{type:"string",id:6},traceId:{type:"string",id:7}}},QueryStreamsVerRequest:{fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},streamIds:{rule:"repeated",type:"string",id:3},tid:{type:"string",id:4},traceId:{type:"string",id:5}}},QueryStreamsVerResponse:{fields:{streamVersions:{rule:"repeated",type:"StreamVersion",id:1},totalVer:{type:"int32",id:2},msg:{type:"string",id:3}}},StreamControlRequest:{fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},streamId:{type:"string",id:3},operation:{type:"string",id:4},data:{type:"string",id:5},tid:{type:"string",id:6},traceId:{type:"string",id:7},highestResolutionLevel:{type:"int32",id:8}}},QueryStreamsRequest:{fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},streamIds:{rule:"repeated",type:"string",id:3},tid:{type:"string",id:4},traceId:{type:"string",id:5}}},QueryStreamsResponse:{fields:{totalVer:{type:"int64",id:1},msg:{type:"string",id:2},streams:{rule:"repeated",type:"StreamData",id:3}}},SetStreamPropertiesRequest:{fields:{roomId:{type:"string",id:1},streamId:{type:"string",id:2},propertiesJsonStr:{type:"string",id:3},tid:{type:"string",id:4},traceId:{type:"string",id:5}}},PublishRequest:{fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},type:{type:"string",id:3},event:{type:"string",id:4},media:{type:"MediaPubOptionsSpecify",id:5},attributesJsonStr:{type:"string",id:6},tid:{type:"string",id:7},traceId:{type:"string",id:8}}},PublishResponse:{fields:{id:{type:"string",id:1}}},UnpublishRequest:{fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},streamId:{type:"string",id:3},tid:{type:"string",id:4},traceId:{type:"string",id:5}}},NetworkHealth:{fields:{receiving:{type:"bool",id:1},lossRate:{type:"int32",id:2},timestamp:{type:"int64",id:3},cutoff:{type:"bool",id:4},tid:{type:"string",id:5}}},StreamMsg:{oneofs:{value:{oneof:["networkHealth","streamStatus","stream","activeStream","propertiesJsonStr","highestResolutionLevel"]}},fields:{field:{type:"string",id:1},streamVer:{type:"int64",id:2},expiredMs:{type:"int64",id:3},extraValue:{rule:"repeated",type:"string",id:4},tid:{type:"string",id:5},networkHealth:{type:"NetworkHealth",id:10},streamStatus:{type:"string",id:11},stream:{type:"Stream",id:12},activeStream:{type:"string",id:13},propertiesJsonStr:{type:"string",id:14},highestResolutionLevel:{type:"int32",id:15}}},StreamNotification:{oneofs:{data:{oneof:["stream","msg"]}},fields:{streamId:{type:"string",id:1},status:{type:"string",id:2},totalVer:{type:"int64",id:3},msgId:{type:"string",id:4},ts:{type:"int64",id:5},tid:{type:"string",id:6},traceId:{type:"string",id:7},stream:{type:"Stream",id:10},msg:{type:"StreamMsg",id:11}}},Candidate:{fields:{candidate:{type:"string",id:1},sdpMlineIndex:{type:"int32",id:2},sdpMid:{type:"string",id:3}}},SessionSignaling:{fields:{type:{type:"string",id:1},sdp:{type:"string",id:2},candidate:{type:"Candidate",id:3},optionsJsonStr:{type:"string",id:4}}},SignalingData:{fields:{type:{type:"string",id:1},sdp:{type:"string",id:2}}},CreatePeerConnectionRequest:{fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},connectionId:{type:"string",id:3},tid:{type:"string",id:4},event:{type:"string",id:5},direction:{type:"string",id:6},sdpOffer:{type:"string",id:7},type:{type:"string",id:8},isOca:{type:"bool",id:9},isFailover:{type:"bool",id:10},multiPcAdaptInfo:{type:"MultiPcAdaptRequestInfo",id:11},pcFormatPreference:{type:"FormatPreference",id:12},optionsJsonStr:{type:"string",id:13},traceId:{type:"string",id:14},sfuSsrcGroup:{rule:"repeated",type:"AudioSsrcSpec",id:15}}},CreatePeerConnectionResponse:{fields:{connectionId:{type:"string",id:1},sdpAnswer:{type:"string",id:2}}},ClosePeerConnectionRequest:{fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},connectionId:{type:"string",id:3},direction:{type:"string",id:4},tid:{type:"string",id:5},traceId:{type:"string",id:6}}},SoacRequest:{fields:{id:{type:"string",id:1},signaling:{type:"SessionSignaling",id:2},tid:{type:"string",id:3},traceId:{type:"string",id:4}}},NotifyAction:{fields:{actionName:{type:"string",id:1},connectionId:{type:"string",id:2},traceId:{type:"string",id:3}}},ServerFailoverNotification:{fields:{actions:{rule:"repeated",type:"NotifyAction",id:1},msgId:{type:"string",id:2},tid:{type:"string",id:3},traceId:{type:"string",id:4}}},ProgressNotification:{fields:{id:{type:"string",id:1},status:{type:"string",id:2},data:{type:"SignalingData",id:3},msgId:{type:"string",id:4},tid:{type:"string",id:5},traceId:{type:"string",id:6}}},AudioBatchSubOptions:{fields:{subscriptionId:{type:"string",id:1},from:{type:"string",id:2},trackId:{type:"string",id:3},ssrcGroup:{rule:"repeated",type:"AudioSsrcSpec",id:4},format:{type:"AudioStreamFormat",id:5}}},VideoBatchSubOptions:{fields:{subscriptionId:{type:"string",id:1},from:{type:"string",id:2},trackId:{type:"string",id:3},ssrcGroup:{rule:"repeated",type:"VideoSsrcSpec",id:4},parameters:{type:"VideoParameters",id:5},format:{type:"VideoStreamFormat",id:6},subSsrcGroup:{type:"VideoSsrcSpec",id:7}}},MediaBatchSubOptions:{fields:{audio:{rule:"repeated",type:"AudioBatchSubOptions",id:1},video:{rule:"repeated",type:"VideoBatchSubOptions",id:2}}},Audio:{fields:{from:{type:"string",id:1}}},Video:{fields:{from:{type:"string",id:1},params:{type:"VideoParameters",id:2}}},MediaUpdateDesc:{fields:{audio:{type:"Audio",id:1},video:{type:"Video",id:2}}},AudioSubOptions:{fields:{from:{type:"string",id:1},format:{type:"AudioStreamFormat",id:2}}},VideoSubOptions:{fields:{from:{type:"string",id:1},format:{type:"VideoStreamFormat",id:2},parameters:{type:"VideoParameters",id:3}}},MediaSubOptionsSpecify:{fields:{audio:{type:"AudioSubOptions",id:1},video:{type:"VideoSubOptions",id:2}}},SubscribeRequest:{fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},tid:{type:"string",id:3},event:{type:"string",id:4},media:{type:"MediaSubOptionsSpecify",id:5},type:{type:"string",id:6},propertiesJsonStr:{type:"string",id:7},traceId:{type:"string",id:8}}},SubscribeResponse:{fields:{id:{type:"string",id:1}}},UnsubscribeRequest:{fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},subscriptionId:{type:"string",id:3},tid:{type:"string",id:4},traceId:{type:"string",id:5}}},BatchSubscribeRequest:{fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},connectionId:{type:"string",id:3},supportTemporalLayer:{type:"bool",id:4},clientType:{type:"string",id:5},clientVersion:{type:"string",id:6},media:{type:"MediaBatchSubOptions",id:7},tid:{type:"string",id:8},type:{type:"string",id:9},event:{type:"string",id:10},propertiesJsonStr:{type:"string",id:11},traceId:{type:"string",id:12}}},BatchUnsubscribeRequest:{fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},connectionId:{type:"string",id:3},audio:{rule:"repeated",type:"string",id:4},video:{rule:"repeated",type:"string",id:5},tid:{type:"string",id:6},traceId:{type:"string",id:7}}},SubscriptionControlRequest:{oneofs:{data:{oneof:["updateDesc","track"]}},fields:{roomId:{type:"string",id:1},participantId:{type:"string",id:2},subscriptionId:{type:"string",id:3},operation:{type:"string",id:4},updateDesc:{type:"MediaUpdateDesc",id:6},track:{type:"string",id:7},tid:{type:"string",id:8},traceId:{type:"string",id:9}}}}}}}),Jr=Qr.lookupType("signal_msg.Response"),Kr=Qr.lookupType("signal_msg.BatchNotification"),zr=Qr.lookupType("signal_msg.MediaMessage"),$r=Qr.lookupType("signal_msg.StreamNotification");Qr.lookupType("signal_msg.ProgressNotification");var Xr=Qr.lookupType("signal_msg.ServerFailoverNotification"),Zr=Qr.lookupType("signal_msg.PublishRequest"),ei=Qr.lookupType("signal_msg.SoacRequest"),ti=Qr.lookupType("signal_msg.UnpublishRequest"),ri=Qr.lookupType("signal_msg.StreamControlRequest"),ii=Qr.lookupType("signal_msg.SubscribeRequest"),ni=Qr.lookupType("signal_msg.SetStreamPropertiesRequest"),ai=Qr.lookupType("signal_msg.UnsubscribeRequest"),oi=Qr.lookupType("signal_msg.SubscriptionControlRequest"),si=Qr.lookupType("signal_msg.CreatePeerConnectionRequest"),ci=Qr.lookupType("signal_msg.ClosePeerConnectionRequest"),ui=Qr.lookupType("signal_msg.BatchPublishRequest"),li=Qr.lookupType("signal_msg.BatchUnpublishRequest"),di=Qr.lookupType("signal_msg.BatchSubscribeRequest"),pi=Qr.lookupType("signal_msg.BatchUnsubscribeRequest"),fi=Qr.lookupType("signal_msg.JoinGroupRequest"),vi=Qr.lookupType("signal_msg.SetGroupPropertiesRequest"),mi=Qr.lookupType("signal_msg.DismissGroupRequest"),hi=Qr.lookupType("signal_msg.LeaveGroupRequest"),gi=Qr.lookupType("signal_msg.SyncDataRequest"),bi=Qr.lookupType("signal_msg.SyncDataByIdsRequest"),yi=Qr.lookupType("signal_msg.GroupChangeLog"),ki=Qr.lookupType("signal_msg.GroupListChangeLog"),Si=Qr.lookupType("signal_msg.SetParticipantPropertiesRequest"),Pi=Qr.lookupType("signal_msg.QueryStreamsVerRequest"),wi=Qr.lookupType("signal_msg.QueryStreamsRequest");function Ti(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Ti=function(){return!!e})()}var Mi=function(){function e(t){var r,i,n,a;return j(this,e),i=this,n=G(n=e),r=U(i,Ti()?Reflect.construct(n,[],G(i).constructor):n.apply(i,a)),Object.defineProperty(r,"loggedIn",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"channel",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"rpcId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"reporter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"logger",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),r.channel=t,r.rpcId=0,r.reporter=t.reporter,r.logger=r.reporter.getLoggerWithPrefix("[rtc-signal]"),r.handleBatchNotifyEvent=r.handleBatchNotifyEvent.bind(r),r.handleNotifyEvent=r.handleNotifyEvent.bind(r),r.handleConnectionStateChangeEvent=r.handleConnectionStateChangeEvent.bind(r),r.handleSyncEvent=r.handleSyncEvent.bind(r),r.handleUserEvent=r.handleUserEvent.bind(r),r.channel.on("connection-state-change",r.handleConnectionStateChangeEvent),r.channel.on("sync",r.handleSyncEvent),r.channel.on("batch-notify",r.handleBatchNotifyEvent),r.channel.on("notify",r.handleNotifyEvent),r.channel.on("user",r.handleUserEvent),r}return B(e,c),F(e,[{key:"join",value:function(e,t){return this.channel.join(e,t).then(function(e){return{joinResponse:e.joinResponse,iceConfig:e.iceConfig}})}},{key:"leave",value:function(){return this.channel.leave()}},{key:"handleUserEvent",value:function(e,t){this.emit("user",e,t)}},{key:"handleSyncEvent",value:function(e){this.emit("sync",e)}},{key:"handleConnectionStateChangeEvent",value:function(e,t,r){this.emit("connection-state-change",e,t,r)}},{key:"handleNotifyEvent",value:function(e,t){"stream"===e?this.emit("stream",$r.decode(t)):"serverFailover"===e?this.emit("serverFailover",Xr.decode(t)):"media-message"===e?this.emit("media-message",zr.decode(t)):"group"===e?this.emit("group",yi.decode(t)):"group-list"===e&&this.emit("group-list",ki.decode(t))}},{key:"handleBatchNotifyEvent",value:function(e){var t=this;Kr.decode(e).notificationItem.forEach(function(e){"stream"===e.event?t.emit("stream",e.streamNotification):"serverFailover"===e.event?t.emit("serverFailover",e.serverFailoverNotification):"group"===e.event?t.emit("group",e.groupNotification):"group-list"===e.event&&t.emit("group-list",e.groupListNotification)})}},{key:"createPeerConnection",value:function(e){var t=si.encode(e).finish();return this.rpc("create-peer-connection",t,e).then(function(e){return e.createPeerConnectionResponse})}},{key:"closePeerConnection",value:function(e){var t=ci.encode(e).finish();return this.rpc("close-peer-connection",t,e)}},{key:"batchSubscribe",value:function(e){var t=di.encode(e).finish();return this.rpc("batch-subscribe",t,e).then(function(e){return e.errorMsg})}},{key:"setGroupProperties",value:function(e){var t=vi.encode(e).finish();return this.rpc("set-group-properties",t,e).then(function(e){return e.setGroupPropertiesResponse})}},{key:"batchUnSubscribe",value:function(e){var t=pi.encode(e).finish();return this.rpc("batch-unsubscribe",t,e)}},{key:"batchPublish",value:function(e){var t=ui.encode(e).finish();return this.rpc("batch-publish",t,e).then(function(e){return e.errorMsg})}},{key:"batchUnPublish",value:function(e){var t=li.encode(e).finish();return this.rpc("batch-unpublish",t,e)}},{key:"publish",value:function(e){var t=Zr.encode(e).finish();return this.rpc("publish",t,e).then(function(e){return e.publishResponse})}},{key:"setParticipantProperties",value:function(e){var t=Si.encode(e).finish();return this.rpc("set-participant-properties",t,e)}},{key:"soac",value:function(e){var t=ei.encode(e).finish();return this.rpc("soac",t,e)}},{key:"unpublish",value:function(e){var t=ti.encode(e).finish();return this.rpc("unpublish",t,e)}},{key:"streamControl",value:function(e){var t=ri.encode(e).finish();return this.rpc("stream-control",t,e)}},{key:"setStreamProperties",value:function(e){var t=ni.encode(e).finish();return this.rpc("set-stream-properties",t,e)}},{key:"subscribe",value:function(e){var t=ii.encode(e).finish();return this.rpc("subscribe",t,e).then(function(e){return e.subscribeResponse})}},{key:"unsubscribe",value:function(e){var t=ai.encode(e).finish();return this.rpc("unsubscribe",t,e)}},{key:"subscriptionControl",value:function(e){var t=oi.encode(e).finish();return this.rpc("subscription-control",t,e)}},{key:"getStreamsVer",value:function(e){var t=Pi.encode(e).finish();return this.rpc("query-streams-ver",t,e).then(function(e){return e.queryStreamsVerResponse})}},{key:"getStreams",value:function(e){var t=wi.encode(e).finish();return this.rpc("query-streams",t,e).then(function(e){return e.queryStreamsResponse})}},{key:"joinGroup",value:function(e){var t=fi.encode(e).finish();return this.rpc("join-group",t,e).then(function(e){return e.joinGroupResponse})}},{key:"leaveGroup",value:function(e){var t=hi.encode(e).finish();return this.rpc("leave-group",t,e).then(function(e){return e.leaveGroupResponse})}},{key:"dismissGroup",value:function(e){var t=mi.encode(e).finish();return this.rpc("dismiss-group",t,e).then(function(e){return e.dismissGroupResponse})}},{key:"syncData",value:function(e){var t=gi.encode(e).finish();return this.rpc("sync-data",t,e).then(function(e){return e.syncDataResponse})}},{key:"syncDataByIds",value:function(e){var t=bi.encode(e).finish();return this.rpc("sync-data-by-ids",t,e).then(function(e){return e.syncDataByIdsResponse})}},{key:"observeAllGroups",value:function(){return this.rpc("observe-all-groups",null).then(function(e){return e.observeAllGroupsResponse})}},{key:"unobserveAllGroups",value:function(){return this.rpc("unobserve-all-groups",null).then(function(e){return e.unobserveAllGroupsResponse})}},{key:"rpc",value:function(e,t){var r=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;return new Promise(function(n,a){var o=r.rpcId++;r.logger.info("rtc rpcId ".concat(o,":").concat(e," param"),i),r.channel.signaling.rpc(e,t,i).then(function(t){var i=Jr.decode(t);i.code===Vr.Result.Ok?(r.logger.info("rtc rpcId ".concat(o,":").concat(e," result====>"),i),n(i)):(r.logger.error("rtc rpcId ".concat(o,":").concat(e," error====>"),i),a(i))}).catch(function(t){r.logger.error("rtc rpcId ".concat(o,":").concat(e," error====>"),t),a(t)})})}}])}();function Oi(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Oi=function(){return!!e})()}var Ei=function(){function e(){var r,i,n,a;j(this,e),i=this,n=G(n=e),r=U(i,Oi()?Reflect.construct(n,[],G(i).constructor):n.apply(i,a)),Object.defineProperty(r,"interval",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"timer",{enumerable:!0,configurable:!0,writable:!0,value:void 0});var o=t().statsConfig;return r.interval=(null==o?void 0:o.statsIntervalMs)||2e3,r.start(),r}return B(e,c),F(e,[{key:"start",value:function(){var e=this;this.stop(),this.makeReport&&this.makeReport(),this.timer=d(function(){e.makeReport()},this.interval,"interval")}},{key:"stop",value:function(){this.timer&&(m(this.timer,"interval"),this.timer=null)}}])}();function Ii(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,i)}return r}function Ai(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ii(Object(r),!0).forEach(function(t){Ee(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ii(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function Ri(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return _i(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_i(e,t):void 0}}(e))||t){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function _i(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function xi(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(xi=function(){return!!e})()}var Ci={timestamp:0,audioLevel:0,bytesSent:0,packetsSent:0,packetsLost:0,roundTripTime:0},ji={totalFramesSent:0,totalBytesSent:0,totalPacketsLost:0,totalPacketsSent:0,totalFramesEncoded:0,timestamp:0,totalQpSum:0,maxSendFrameHeight:0,maxSendFrameWidth:0,captureFrameHeight:0,captureFrameWidth:0,captureFramesPerSecond:0,sendFramesPerSecond:0,availableOutgoingBitrate:0,targetBitrate:0,roundTripTime:0,encodeFramesPerSecond:0,totalEncodedTime:0,trackStats:new Map},Di=function(){function t(e){var r,i,n,a;j(this,t),i=this,n=G(n=t),r=U(i,xi()?Reflect.construct(n,[],G(i).constructor):n.apply(i,a)),Object.defineProperty(r,"videoSendReport",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"audioSendReport",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"bweReport",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"lastVideoSendInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"lastAudioSendInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"track",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"source",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"pc",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"tranceiver",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"connection",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),r.connection=e.connection,r.pc=e.connection.pc;var o=e.tracks.filter(function(e){return"video"===e.trackMediaType})[0];return r.source=null==o?void 0:o.source,r.track=e.tracks[0],r.tranceiver=e.transceiver,r.lastVideoSendInfo=Object.assign({},ji),r.videoSendReport={attr_bitrate:0,attr_capture_frames:0,attr_enc_average_elapsed_ms:0,attr_encode_qp_sim:"",attr_encoded_framerate_sim:"",attr_resolution_sim:"",attr_stream_options:"",attr_duration_ms:0},r.lastAudioSendInfo=Object.assign({},Ci),r.audioSendReport={attr_duration_ms:0,attr_bitrate:0},r.bweReport={attr_rtt:0,attr_lossrate:0,attr_reported_bitrate:0,attr_duration_ms:0},r}return B(t,Ei),F(t,[{key:"extractVideoMetrics",value:function(t){var r=this,i=Object.assign({source:this.source,trackStats:[]},ji,this.connection.peerConnectionStats);if(i.timestamp=Date.now(),this.track){var n=this.track.getMediaStreamTrack().getSettings(),a=n.width,o=n.height,s=n.frameRate;i.captureFramesPerSecond=s===1/0?0:s||0,i.captureFrameWidth=a||0,i.captureFrameHeight=o||0}var c=new Map,u=mt(i,this.lastVideoSendInfo);return t.forEach(function(t){if(/outboundrtp|outbound-rtp/i.test(t.type)){var n=c.get(t.ssrc)||{},a=r.lastVideoSendInfo.trackStats.get(t.ssrc)||{};if(n.sendFrameWidth=t.frameWidth||0,n.sendFrameHeight=t.frameHeight||0,n.framesSent=t.framesSent||0,n.framesEncoded=t.framesEncoded||0,n.targetBitrate=t.targetBitrate||0,n.qpSum=t.qpSum||0,n.bytesSent=t.bytesSent||0,n.packetsSent=t.packetsSent||0,n.packetsSentForLost=n.packetsSent||0,n.sentTimestamp=t.timestamp||0,n.totalEncodeTime=t.totalEncodeTime||0,n.keyFramesEncoded=t.keyFramesEncoded||0,n.firCount=t.firCount||0,n.pliCount=t.pliCount||0,n.retransmittedBytesSent=t.retransmittedBytesSent||0,n.retransmittedPacketsSent=t.retransmittedPacketsSent||0,n.qualityLimitationReason=t.qualityLimitationReason||"",n.web_powerEfficientEncoder=t.powerEfficientEncoder||"",n.web_encoderImplementation=t.encoderImplementation||"",n.web_qualityLimitationResolutionChanges=t.qualityLimitationResolutionChanges>=0?t.qualityLimitationResolutionChanges:-1,n.web_codecId=t.codecId||"",n.sendFramesPerSecond=t.framesPerSecond||0,n.sendFrameWidth>i.maxSendFrameWidth){if(i.maxSendFrameWidth=n.sendFrameWidth,!n.sendFramesPerSecond&&a){var o=gt(n.framesSent||n.framesEncoded,a.framesSent||a.framesEncoded);n.sendFramesPerSecond=Math.round(o/u)}if(n.framesEncoded){var s=gt(n.framesEncoded,null==a?void 0:a.framesEncoded);i.encodeFramesPerSecond=Math.round(s/u)}i.sendFramesPerSecond=n.sendFramesPerSecond}c.set(t.ssrc,n),i.targetBitrate=n.targetBitrate,i.totalBytesSent+=n.bytesSent,i.totalPacketsSent+=n.packetsSent,i.totalEncodedTime+=n.totalEncodeTime,i.totalFramesEncoded+=n.framesEncoded,i.totalFramesSent+=n.framesSent,i.totalQpSum+=n.qpSum,i.maxSendFrameHeight=Math.max(n.sendFrameHeight,i.maxSendFrameHeight),c.set(t.ssrc,n)}else if(/track/i.test(t.type)&&!1===t.remoteSource){if(e.isSafari()){var l=c.get(t.ssrc)||{};l.sendFrameHeight>0||(l.sendFrameWidth=t.frameWidth||0,l.sendFrameHeight=t.frameHeight||0),l.framesSent=t.framesSent||0,l.totalEncodeTime=t.totalEncodeTime||0,c.set(t.ssrc,l),i.totalFramesEncoded+=l.framesEncoded,i.totalEncodedTime+=l.totalEncodeTime,i.totalFramesSent+=l.framesSent,c.set(t.ssrc,l)}}else if(/remote-inbound-rtp/i.test(t.type)){var d=c.get(t.ssrc)||{},p=r.lastVideoSendInfo.trackStats.get(t.ssrc)||{};d.packetsLost=t.packetsLost||0,d.lostTimestamp=t.timestamp,i.totalPacketsLost+=d.packetsLost,d.packetsLost===(p.packetsLost||0)&&(d.packetsSentForLost=p.packetsSentForLost||0,d.lostTimestamp=p.lostTimestamp||0),c.set(t.ssrc,d)}}),i.trackStats=c,i}},{key:"getLayersMetricInfo",value:function(e){var t,r=[],i=Ri(e.trackStats.entries());try{for(i.s();!(t=i.n()).done;){var n=$t(t.value,2),a=n[0],o=n[1],s=this.lastVideoSendInfo.trackStats.get(a)||{},c=gt(o.framesSent,s.framesSent),u=gt(o.framesEncoded,s.framesEncoded),l=gt(o.keyFramesEncoded,s.keyFramesEncoded),d=gt(o.retransmittedBytesSent,s.retransmittedBytesSent),p=gt(o.retransmittedPacketsSent,s.retransmittedPacketsSent),f=gt(o.firCount,s.firCount),v=gt(o.pliCount,s.pliCount),m=gt(o.packetsSent,s.packetsSent),h=gt(o.packetsSentForLost,s.packetsSentForLost),g=gt(o.lostTimestamp,s.lostTimestamp),b=gt(o.sentTimestamp,s.sentTimestamp),y=gt(o.packetsLost,s.packetsLost),k=gt(o.totalEncodeTime,s.totalEncodeTime),S=gt(o.qpSum,s.qpSum),P=o.qualityLimitationReason,w=o.sendFrameWidth,T=Ai(Ai({sendFrameHeight:o.sendFrameHeight,sendFrameWidth:w,qualityLimitationReason:P,web_powerEfficientEncoder:o.web_powerEfficientEncoder,web_encoderImplementation:o.web_encoderImplementation,web_qualityLimitationResolutionChanges:o.web_qualityLimitationResolutionChanges,web_codecId:o.web_codecId},o),{},{deltaQbSum:S,deltaPacketsSent:m,deltaPacketsLost:y,deltaFramesSent:c,deltaTimestampForLost:g,deltaFramesEncoded:u,deltaKeyFramesEncoded:l,deltaFirCount:f,deltaEncodedTime:k,deltaPliCount:v,deltaTimestampForSent:b,deltaPacketsSentForLost:h,deltaRetransmittedBytesSent:d,deltaRetransmittedPacketsSent:p});r.push(T)}}catch(e){i.e(e)}finally{i.f()}return{tracksStatInfo:r,totalBytesSent:e.totalBytesSent,totalFramesEncoded:e.totalFramesEncoded||e.totalFramesSent,totalPacketsSent:e.totalPacketsSent,totalEncodedTime:e.totalEncodedTime,totalQpSum:e.totalQpSum,totalPacketsLost:e.totalPacketsLost}}},{key:"makeVideoReport",value:function(e,t){var r={attr_capture_frames:Math.round(e.captureFramesPerSecond),attr_stream_options:"audio:false/video:".concat(this.source,"/resolution:").concat(e.captureFrameWidth,"*").concat(e.captureFrameHeight,"/")};if(this.lastVideoSendInfo.timestamp){var i,n=this.getLayersMetricInfo(e),a=n.tracksStatInfo,o=n.totalBytesSent,s=n.totalFramesEncoded,c=n.totalEncodedTime;a.length>1&&(r.attr_stream_options+="sim:".concat(a.length,"/"));for(var u={attr_encoded_framerate_sim:[],attr_enc_key_frames_sim:[],attr_fir_count_sim:[],attr_pli_count_sim:[],attr_quality_limitation_reason_sim:[],web_powerEfficientEncoder_sim:[],web_encoderImplementation_sim:[],web_qualityLimitationResolutionChanges_sim:[],web_codecId_sim:[],attr_retx_bytes_sim:[],attr_retx_packets_sim:[],attr_resolution_sim:[],attr_encode_qp_sim:[]},l=[],d=0,p=gt(e.timestamp,this.lastVideoSendInfo.timestamp),f=!0,v=0;v<a.length;v++){var m=a[v];u.attr_enc_key_frames_sim.push(m.deltaKeyFramesEncoded),u.attr_fir_count_sim.push(m.deltaFirCount),u.attr_pli_count_sim.push(m.deltaPliCount),u.attr_quality_limitation_reason_sim.push(m.qualityLimitationReason),u.web_powerEfficientEncoder_sim.push(m.web_powerEfficientEncoder),u.web_encoderImplementation_sim.push(m.web_encoderImplementation),u.web_qualityLimitationResolutionChanges_sim.push(m.web_qualityLimitationResolutionChanges),u.web_codecId_sim.push(m.web_codecId),u.attr_retx_bytes_sim.push(m.deltaRetransmittedBytesSent),u.attr_retx_packets_sim.push(m.deltaRetransmittedPacketsSent),u.attr_resolution_sim.push({count:m.deltaFramesSent||m.deltaFramesEncoded,index:v,resolution:"".concat(m.sendFrameWidth,"*").concat(m.sendFrameHeight)});var h=m.deltaFramesEncoded||m.deltaFramesSent;f&&(f=0===h),u.attr_encoded_framerate_sim.push(Ee({},v,Math.round(1e3*h/p))),u.attr_encode_qp_sim.push(Ee({},v,Math.round((m.deltaQbSum||0)/(h||Number.EPSILON))));var g=m.deltaTimestampForLost,b=m.deltaTimestampForSent,y=m.deltaPacketsLost,k=m.deltaPacketsSentForLost;if(y&&k&&g&&b){var S=y/g/(k/b);l.push(Math.max(Math.min(S,1),0))}}for(var P=0,w=Object.entries(u);P<w.length;P++){var T=$t(w[P],2),M=T[0],O=T[1];r[M]=O.length?JSON.stringify(O):""}var E=0,I=gt(s,this.lastVideoSendInfo.totalFramesEncoded),A=gt(c,this.lastVideoSendInfo.totalEncodedTime);I&&A&&(E=Math.round(1e3*A/I));var R=gt(o,this.lastVideoSendInfo.totalBytesSent);r.attr_duration_ms=p,r.attr_bitrate=p>0?Math.min(Math.round(8*R*1e3/p),2e7):0,r.attr_enc_average_elapsed_ms=E,this.videoSendReport=r,f&&(r.attr_resolution_sim="null",r.attr_encoded_framerate_sim="null");var _={web_dtlsState:(null===(i=Re(t.values()).find(function(e){return"transport"===e.type}))||void 0===i?void 0:i.dtlsState)||""};this.emit("video-send-stream",Object.assign(_,this.videoSendReport)),l.length&&(d=Math.min(Math.round(l.reduce(function(e,t){return t+e},0)/l.length*255),255)),this.bweReport={attr_duration_ms:p,attr_rtt:Math.round(e.roundTripTime||0),attr_reported_bitrate:Math.max(0,Math.min(e.availableOutgoingBitrate||0,2e7)),attr_lossrate:d},this.emit("bwe",Object.assign({},this.bweReport))}this.lastVideoSendInfo=e}},{key:"extractAudioMetrics",value:function(e){var t=this,r=Object.assign({},Ci,this.connection.peerConnectionStats);return e.forEach(function(e){if(/outboundrtp|outbound-rtp/i.test(e.type)?(r.timestamp=e.timestamp,r.bytesSent=e.bytesSent||0,r.packetsSent=e.packetsSent):/remote-inbound-rtp|remoteinboundrt/i.test(e.type)?void 0!==e.packetsLost&&(r.packetsLost=e.packetsLost):/media-source/i.test(e.type)&&e.audioLevel&&(r.audioLevel=e.audioLevel),t.track){var i=t.track.getMediaStreamTrack().getSettings(),n=i.channelCount,a=i.sampleRate;r.channels=n,r.sampleRate=a}}),r}},{key:"makeAudioReport",value:function(e){this.lastAudioSendInfo.timestamp>0&&e.timestamp&&(this.audioSendReport={attr_duration_ms:Math.round(gt(e.timestamp,this.lastAudioSendInfo.timestamp)),attr_bitrate:Math.round(8*gt(e.bytesSent,this.lastAudioSendInfo.bytesSent)*1e3/gt(e.timestamp,this.lastAudioSendInfo.timestamp))},this.emit("audio-send-stream",Object.assign({},this.audioSendReport))),this.lastAudioSendInfo=e}},{key:"makeReport",value:function(){var e=this;this.getStats().then(function(t){null!=t&&t.audioMetrics&&e.makeAudioReport(t.audioMetrics),null!=t&&t.videoMetrics&&e.makeVideoReport(t.videoMetrics,t.originStats)})}},{key:"getStats",value:function(){var e,t,r=this,i=this.tranceiver,o=this.pc;if(!o||null==i||null===(e=i.sender)||void 0===e||!e.track)return Promise.resolve({});if(null==o||!o.getStats)throw new n(a.BrowserNotSupported,"getStats is not supported");return null===(t=this.pc.getStats(i.sender.track))||void 0===t?void 0:t.then(function(e){return{videoMetrics:r.source?r.extractVideoMetrics(e):void 0,audioMetrics:r.source?void 0:r.extractAudioMetrics(e),originStats:e}})}}])}();function Li(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return Ni(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ni(e,t):void 0}}(e))||t){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Ni(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function Fi(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Fi=function(){return!!e})()}var Ui={timestamp:0,packetsLost:0,packetsReceived:0,bytesReceived:0,audioLevel:0,decodingNormal:0,roundTripTime:0},Gi={packetsLost:0,packetsReceived:0,framesDropped:0,frameHeight:0,frameWidth:0,framesDecoded:0,framesReceived:0,timestamp:0,framesPerSecond:0,bytesReceived:0,roundTripTime:0},Vi=function(){function e(t){var r,i,n,a,o;j(this,e),n=this,a=G(a=e),i=U(n,Fi()?Reflect.construct(a,[],G(n).constructor):a.apply(n,o)),Object.defineProperty(i,"videoReceiveReport",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"audioReceiveReport",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"lastVideoReceiveInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"lastAudioReceiveInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"source",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"firstReportFlag",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"firstReportTimer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"pc",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"tranceiver",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"tranceivers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"connection",{enumerable:!0,configurable:!0,writable:!0,value:void 0});var s=t.connection,c=t.transceiver,u=t.uid,l=t.stream,p=t.transceivers;return i.connection=s,i.pc=s.pc,i.tranceiver=c,i.tranceivers=p,i.firstReportTimer=d(function(){i.getStats().then(function(e){i.makeFirstReport(e)})},400,"interval"),i.source="mcu"!==u&&(null===(r=l.media)||void 0===r||null===(r=r.video)||void 0===r?void 0:r.source),i.videoReceiveReport={attr_duration_ms:0,attr_bitrate:0,attr_current_delay:0,attr_stream_options:"",attr_resolution:"",attr_dec_frames:0,attr_decode_qp:0,attr_fraction_lost:0,attr_network_framerate:0,attr_render_delay:0,attr_dec_key_frames:-1},i.lastVideoReceiveInfo=Object.assign({},Gi),i.firstReportFlag={audioFirstPacket:!1,videoFirstPacket:!1,audioFirstFrame:!1},i.lastAudioReceiveInfo=Object.assign({},Ui),i.audioReceiveReport={attr_duration_ms:0,attr_delay_estimate:0,attr_bitrate:0},i}return B(e,Ei),F(e,[{key:"extractAudioMetrics",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=Object.assign({},Ui,this.connection.peerConnectionStats);return i.timestamp=Date.now(),e.forEach(function(e){e.isRemote||(/inboundrtp|inbound-rtp/i.test(e.type)?(i.bytesReceived=e.bytesReceived||0,i.packetsReceived=e.packetsReceived||0,r||(i.packetsLost===(t.lastAudioReceiveInfo.packetsLost||0)?i.packetsReceivedForLost=t.lastAudioReceiveInfo.packetsReceived||0:i.packetsReceivedForLost=i.packetsReceived||0),i.packetsLost=e.packetsLost||0,i.audioLevel=e.audioLevel||0,i.decodingNormal=Number(e.googDecodingNormal||0)):/track/i.test(e.type)&&(i.audioLevel=e.audioLevel))}),i}},{key:"extractMultipleAudioMetrics",value:function(e){var t=this,r=e.map(function(e){return t.extractAudioMetrics(e,!0)}),i=Object.assign({},Ui,this.connection.peerConnectionStats);i.timestamp=Date.now();var n,a=Li(r);try{for(a.s();!(n=a.n()).done;){var o=n.value;i.bytesReceived+=o.bytesReceived||0,i.packetsLost+=o.packetsLost||0,i.packetsReceived+=o.packetsReceived||0,i.audioLevel=Math.max(i.audioLevel,o.audioLevel||0),i.decodingNormal=Math.max(i.decodingNormal,o.decodingNormal||0)}}catch(e){a.e(e)}finally{a.f()}return i.packetsLost===(this.lastAudioReceiveInfo.packetsLost||0)?i.packetsReceivedForLost=this.lastAudioReceiveInfo.packetsReceived||0:i.packetsReceivedForLost=i.packetsReceived||0,i}},{key:"extractVideoMetrics",value:function(e){var t=this,r=Object.assign({source:this.source},Gi,this.connection.peerConnectionStats);return r.timestamp=Date.now(),e.forEach(function(e){if(!e.isRemote)if(/inboundrtp|inbound-rtp/i.test(e.type))r.framesDecoded=e.framesDecoded,r.packetsReceived=e.packetsReceived||0,r.framesReceived=e.framesReceived,r.keyFramesDecoded=e.keyFramesDecoded||0,r.packetsLost=e.packetsLost||0,r.packetsLost===(t.lastVideoReceiveInfo.packetsLost||0)?r.packetsReceivedForLost=t.lastVideoReceiveInfo.packetsReceived||0:r.packetsReceivedForLost=r.packetsReceived||0,r.bytesReceived=e.bytesReceived||0,r.firCount=e.firCount||0,r.pliCount=e.pliCount||0,r.freezeCount=e.freezeCount||0,r.retransmittedBytesReceived=e.retransmittedBytesReceived||0,r.retransmittedPacketsReceived=e.retransmittedPacketsReceived||0,void 0!==e.frameHeight&&(r.frameWidth=e.frameWidth||0,r.frameHeight=e.frameHeight||0);else if(/track/i.test(e.type))r.frameWidth=e.frameWidth||0,r.frameHeight=e.frameHeight||0;else if(/codec/i.test(e.type)){var i;null!==(i=e.mimeType)&&void 0!==i&&i.includes("video")&&(r.sdpFmtpLine=e.sdpFmtpLine)}}),r}},{key:"makeAudioReport",value:function(e){if(this.lastAudioReceiveInfo.timestamp>0&&e.timestamp){var t=Math.round(gt(e.timestamp,this.lastAudioReceiveInfo.timestamp)),r=gt(e.packetsLost,this.lastAudioReceiveInfo.packetsLost),i=gt(e.packetsReceivedForLost,this.lastAudioReceiveInfo.packetsReceivedForLost),n=gt(e.bytesReceived,this.lastAudioReceiveInfo.bytesReceived),a=0;try{a=Math.max(r/i,0)}catch(e){a=0}isNaN(a)&&(a=0),this.audioReceiveReport={attr_delay_estimate:0,attr_duration_ms:t,attr_bitrate:Math.round(8*n/(t/1e3))},this.emit("audio-net-eq",{attr_speech_expand_rate:0,attr_duration_ms:this.audioReceiveReport.attr_duration_ms,attr_packet_lossrate:Math.round(Math.min(16384*a,16384))}),this.emit("audio-recv-stream",Object.assign({},this.audioReceiveReport))}this.lastAudioReceiveInfo=e}},{key:"makeVideoReport",value:function(e){var t=this.lastVideoReceiveInfo,r=t.firCount,i=t.pliCount,n=t.timestamp,a=t.freezeCount,o=t.packetsLost,s=t.framesDecoded,c=t.framesDropped,u=t.bytesReceived,l=t.packetsReceivedForLost,d=t.retransmittedBytesReceived,p=t.retransmittedPacketsReceived;if(n>0&&e.timestamp){var f=gt(e.timestamp,n);if(e.bytesReceived-u>=0){var v=gt(e.packetsLost,o),m=gt(e.packetsReceivedForLost,l),h=0;try{h=Math.round(v/m*255)}catch(e){h=0}isNaN(h)&&(h=0);var g=gt(e.framesDecoded,s);this.videoReceiveReport={attr_network_framerate:Math.round(1e3*g/f),attr_dec_frames:g,attr_dec_key_frames:e.keyFramesDecoded,attr_decode_qp:0,attr_render_delay:0,attr_current_delay:0,attr_dropped_count:gt(e.framesDropped,c),attr_fir_count:gt(e.firCount,r),attr_freeze_count:gt(e.freezeCount,a),attr_pli_count:gt(e.pliCount,i),attr_retx_bytes:gt(e.retransmittedBytesReceived,d),attr_retx_packets:gt(e.retransmittedPacketsReceived,p),attr_bitrate:Math.round(8*gt(e.bytesReceived,u)*1e3/f),attr_stream_options:"audio:false/video:".concat(this.source,"/resolution:").concat(e.frameWidth,"*").concat(e.frameHeight,"/"),attr_fraction_lost:Math.max(0,Math.min(h,255)),attr_resolution:JSON.stringify([{count:g,resolution:"".concat(e.frameWidth,"*").concat(e.frameHeight)}]),attr_duration_ms:Math.round(f)},this.emit("video-recv-stream",Object.assign({},this.videoReceiveReport))}}this.lastVideoReceiveInfo=e}},{key:"makeReport",value:function(){var e=this;this.getStats().then(function(t){t.audioMetrics&&e.makeAudioReport(t.audioMetrics),t.videoMetrics&&e.makeVideoReport(t.videoMetrics)})}},{key:"makeFirstReport",value:function(e){var t=this.firstReportFlag,r=t.audioFirstFrame,i=t.audioFirstPacket,n=t.videoFirstPacket,a=e.audioMetrics,o=e.videoMetrics;if(a&&o){if((r||-1===(null==a?void 0:a.decodingNormal))&&i&&n)return void(this.firstReportTimer&&(m(this.firstReportTimer,"interval"),this.firstReportTimer=null))}else if(a){if((r||-1===(null==a?void 0:a.decodingNormal))&&i)return void(this.firstReportTimer&&(m(this.firstReportTimer,"interval"),this.firstReportTimer=null))}else if(o&&n)return void(this.firstReportTimer&&(m(this.firstReportTimer,"interval"),this.firstReportTimer=null));null!=a&&a.packetsReceived&&!i&&(this.emit("audio-first-packet"),this.firstReportFlag.audioFirstPacket=!0),Number(null==a?void 0:a.decodingNormal)>0&&!r&&(this.emit("audio-first-frame"),this.firstReportFlag.audioFirstPacket=!0),null!=o&&o.packetsReceived&&!n&&(this.emit("video-first-packet"),this.firstReportFlag.videoFirstPacket=!0)}},{key:"getStats",value:function(){var e,t=this,r=this.tranceiver,i=this.tranceivers,o=this.pc;if(!(o&&(null!=i&&i.length||null!=r&&r.receiver.track)))return Promise.resolve({});if(null==o||!o.getStats)throw new n(a.BrowserNotSupported,"getStats is not supported");if(i&&i.length){var s=i.map(function(e){return e.receiver.track}).filter(function(e){return!!e});return Promise.all(s.map(function(e){return o.getStats(e)})).then(function(e){return{audioMetrics:t.extractMultipleAudioMetrics(e)}})}return null!=r&&null!==(e=r.receiver)&&void 0!==e&&e.track?o.getStats(r.receiver.track).then(function(e){return{videoMetrics:t.source?t.extractVideoMetrics(e):void 0,audioMetrics:t.source?void 0:t.extractAudioMetrics(e)}}):void 0}},{key:"stop",value:function(){var t,r,i;(t="stop",r=this,"function"==typeof(i=_e(G(e.prototype),t,r))?function(e){return i.apply(r,e)}:i)([]),this.firstReportTimer&&(m(this.firstReportTimer,"interval"),this.firstReportTimer=null)}}])}();function Bi(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return Hi(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Hi(e,t):void 0}}(e))||t){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Hi(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function qi(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,i)}return r}function Wi(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?qi(Object(r),!0).forEach(function(t){Ee(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):qi(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function Yi(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Yi=function(){return!!e})()}var Qi=t().getLoggerWithPrefix("[rtc-subs]"),Ji=function(){function e(t){var r,i,n,a;j(this,e),i=this,n=G(n=e),r=U(i,Yi()?Reflect.construct(n,[],G(i).constructor):n.apply(i,a)),Object.defineProperty(r,"stream",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"resolutionInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"ssrc",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"startTime",{enumerable:!0,configurable:!0,writable:!0,value:Date.now()}),Object.defineProperty(r,"uid",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"subIdAcc",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"state",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"monitor",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"userConfigResolution",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"connection",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"rtcSignaling",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"_stream",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"stucked",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(r,"reporter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"logger",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"metricsMap",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"audioStatsMap",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"videoStatsMap",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"transceiver",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"transceivers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"targetMediaType",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"logTrackEnded",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t;r.state===Se.Processing&&r.logger.info("sub track ended",null==e||null===(t=e.target)||void 0===t?void 0:t.id,r.subIdAcc)}}),Object.defineProperty(r,"logTrackUnmute",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t;r.state===Se.Processing&&r.logger.info("sub track unmute",null==e||null===(t=e.target)||void 0===t?void 0:t.id,r.subIdAcc)}}),Object.defineProperty(r,"logTrackMute",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t;r.state===Se.Processing&&r.logger.info("sub track mute",null==e||null===(t=e.target)||void 0===t?void 0:t.id,r.subIdAcc)}}),Object.defineProperty(r,"updateTransceiverListeners",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e,t;null!==(e=r.transceiver)&&void 0!==e&&null!==(e=e.receiver)&&void 0!==e&&e.transport?(r.transceiver.receiver.transport.onerror=r._onDtlsError,r.transceiver.receiver.transport.onstatechange=r._onDtlsStateChange,null!==(t=r.transceiver)&&void 0!==t&&null!==(t=t.receiver)&&void 0!==t&&t.transport.iceTransport&&(r.transceiver.receiver.transport.iceTransport.onselectedcandidatepairchange=r._onSelectedCandidatePairChange.bind(r,r.transceiver.receiver))):r.logger.info("browser version low, no dtls transport to watch")}}),Object.defineProperty(r,"_onDtlsError",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t;r.logger.error("".concat(r.id," ").concat(r.uid," ").concat(r.subIdAcc," dtls_error"),null==e||null===(t=e.error)||void 0===t?void 0:t.errorDetail)}}),Object.defineProperty(r,"_onDtlsStateChange",{enumerable:!0,configurable:!0,writable:!0,value:function(){r.logger.info("".concat(r.id," ").concat(r.uid," ").concat(r.subIdAcc," dtls_state_change"),r.transceiver.receiver.transport.state)}}),Object.defineProperty(r,"_onSelectedCandidatePairChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t,i=null==e||null===(t=e.transport)||void 0===t||null===(t=t.iceTransport)||void 0===t?void 0:t.getSelectedCandidatePair();r.logger.info("".concat(r.id," ").concat(r.uid," ").concat(r.subIdAcc," selected_candidate_pair_change"),i)}}),r.subIdAcc="subIdAcc-".concat(e.subIdAcc++);var o=t.connection,s=t.stream,c=t.uid,u=t.resolutionInfo,l=t.userConfigResolution,d=t.targetMediaType;return r.connection=o,r.targetMediaType=d,r.resolutionInfo=u,r.userConfigResolution=l,r.rtcSignaling=o.rtcSignaling,r.stream=s,r.uid=c,r.reporter=o.reporter,r.logger=r.reporter.getLoggerWithPrefix("[rtc-subs]"),r.connection.once("ended",function(){r.clear()}),r.videoStatsMap=new Map,r.audioStatsMap=new Map,r.metricsMap=new Map,r.state=Se.Processing,r.handleStreamAdd=r.handleStreamAdd.bind(r),r.connection.on("track",r.handleStreamAdd),r}return B(e,c),F(e,[{key:"handleStreamAdd",value:function(e,t){var r,i=this;if(Ke.audioSFU&&"audio"===e.kind){var n,a=null===(n=this.transceivers)||void 0===n?void 0:n.map(function(e){var t;return null===(t=e.receiver)||void 0===t||null===(t=t.track)||void 0===t?void 0:t.id});null!=a&&a.includes(e.id)&&(e.removeEventListener("ended",this.logTrackEnded),e.removeEventListener("unmute",this.logTrackUnmute),e.removeEventListener("mute",this.logTrackMute),e.addEventListener("ended",this.logTrackEnded),e.addEventListener("unmute",this.logTrackUnmute),e.addEventListener("mute",this.logTrackMute)),this._stream=this._stream||new MediaStream([]),this._stream.addTrack(e)}else if(e.id===(null===(r=this.transceiver)||void 0===r||null===(r=r.receiver)||void 0===r||null===(r=r.track)||void 0===r?void 0:r.id)){e.removeEventListener("ended",this.logTrackEnded),e.removeEventListener("unmute",this.logTrackUnmute),e.removeEventListener("mute",this.logTrackMute),e.addEventListener("ended",this.logTrackEnded),e.addEventListener("unmute",this.logTrackUnmute),e.addEventListener("mute",this.logTrackMute),this._stream=new MediaStream([e]);var o=document.createElement("video");o.onloadeddata=function(){o.srcObject=null,i.handleVideoFirstFrame()},o.srcObject=this._stream}}},{key:"mediaStream",get:function(){return this._stream||this.connection.mcuAudioStream}},{key:"stop",value:function(){var e=this;if(this.state===Se.Processing)return this.clear(),this.rtcSignaling.unsubscribe({subscriptionId:this.id}).catch(function(t){e.logger.warn("negative ack for unsubscribing, ".concat(t))})}},{key:"mute",value:function(e){return this.rtcSignaling.subscriptionControl({subscriptionId:this.id,operation:"pause",track:e})}},{key:"unmute",value:function(e){return this.rtcSignaling.subscriptionControl({subscriptionId:this.id,operation:"play",track:e})}},{key:"applyOptions",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.stream.id;return this.resolutionInfo=Ki(this.stream,e),t||(this.userConfigResolution=e),this.rtcSignaling.subscriptionControl({subscriptionId:this.id,operation:"update",updateDesc:{video:{from:r,params:this.resolutionInfo}}})}},{key:"reset",value:function(){this.connection.off("track",this.handleStreamAdd),this.monitor&&(this.monitor.stop(),this.monitor.removeAllListeners(),this.monitor=null),this.metricsMap.clear(),this.audioStatsMap.clear(),this.videoStatsMap.clear()}},{key:"clear",value:function(){this.state!==Se.End&&(this.reset(),this.state=Se.End,this.emit("ended"))}},{key:"addTransceiver",value:function(e){this.monitor&&(this.monitor.stop(),this.monitor.removeAllListeners(),this.monitor=null),this.metricsMap.clear(),this.audioStatsMap.clear(),this.videoStatsMap.clear(),this.transceiver=e,this.monitor=new Vi(this),this.onMonitor()}},{key:"addTransceivers",value:function(e){this.monitor&&(this.monitor.stop(),this.monitor.removeAllListeners(),this.monitor=null),this.transceivers=e,this.monitor=new Vi(this),this.onMonitor()}},{key:"handleVideoFirstFrame",value:function(){this.reporter.trace.videoFirstFrame({sessionId:this.id,remoteStreamId:this.stream.id,attr_elapse_time:Date.now()-this.startTime,remoteUserId:this.uid}),this.logger.info("video-first-frame sessionId=".concat(this.id))}},{key:"handleMetrics",value:function(e,t){var r=e.audioMetrics,i=e.videoMetrics;if(r){var n,a=(null===(n=this.metricsMap.get(t))||void 0===n?void 0:n.audioMetrics)||{},o=mt(r,a),s=gt(r.bytesReceived,a.bytesReceived),c={codec:this.connection.peerConnectionStats.audioCodec||r.codec,receiveBytes:r.bytesReceived,receivePackets:r.packetsReceived,receivePacketsLost:r.packetsLost,rtt:r.roundTripTime,audioLevel:Math.max(r.audioLevel,0),timestamp:r.timestamp,receiveBitrate:8*s/o};this.audioStatsMap.set(t,c)}else if(i){var u,l,d=(null===(u=this.metricsMap.get(t))||void 0===u?void 0:u.videoMetrics)||{},p=mt(i,d),f=gt(i.bytesReceived,d.bytesReceived),v={codec:this.connection.peerConnectionStats.videoCodec||i.codec,receiveResolution:{width:i.frameWidth,height:i.frameHeight},receiveBitrate:8*f/p,decodeFrameRate:Math.round(gt(null==i?void 0:i.framesDecoded,d.framesDecoded)/p),receiveFrameRate:Math.round(gt(null==i?void 0:i.framesReceived,d.framesReceived)/p),keyFramesDecoded:null==i?void 0:i.keyFramesDecoded,receiveFramesDropped:gt(null==i?void 0:i.framesDropped,d.framesDropped),receiveBytes:i.bytesReceived,receivePackets:i.packetsReceived,receivePacketsLost:i.packetsLost,rtt:i.roundTripTime,timestamp:i.timestamp},m=this.connection.subSdpFmtpLines.some(function(e){return e.includes("64")}),h=(null===(l=this.stream.media)||void 0===l||null===(l=l.video)||void 0===l?void 0:l.source)===me.CAMERA&&f>3e4&&0===v.decodeFrameRate;"network"===t&&(this.stucked&&h?m&&v.receiveFramesDropped>0&&!Ke.downlinkForbidHighProfile&&this.connection.handleHighProfileFallback():this.stucked=h),this.videoStatsMap.set(t,v)}this.metricsMap.set(t,e)}},{key:"getMetrics",value:function(e){var t,r=this;return null===(t=this.connection)||void 0===t?void 0:t.getStats().then(function(){var t;null===(t=r.monitor)||void 0===t||t.getStats().then(function(t){return r.handleMetrics(t,e)})})}},{key:"onMonitor",value:function(){var e=this;"mcu"===this.uid?(this.monitor.on("audio-net-eq",function(t){e.reporter.metric.audioNetEQ(Wi({sessionId:e.id,remoteStreamId:e.stream.id,remoteUserId:e.uid},t))}),this.monitor.on("audio-recv-stream",function(t){e.reporter.metric.audioRecvStream(Wi({sessionId:e.id,remoteStreamId:e.stream.id,remoteUserId:e.uid},t))}),this.monitor.on("audio-first-packet",function(){e.reporter.trace.audioFirstPacket({sessionId:e.id,remoteStreamId:e.stream.id,remoteUserId:e.uid})}),this.monitor.on("audio-first-frame",function(){e.emit("audio-first-frame")})):(this.monitor.on("video-first-packet",function(){e.reporter.trace.videoFirstPacket({sessionId:e.id,remoteStreamId:e.stream.id,remoteUserId:e.uid}),e.logger.info("video-first-packet sessionId=".concat(e.id))}),this.monitor.on("video-recv-stream",function(t){e.reporter.metric.videoRecvStream(Wi({sessionId:e.id,remoteStreamId:e.stream.id,remoteUserId:e.uid},t))}))}}])}();Object.defineProperty(Ji,"subIdAcc",{enumerable:!0,configurable:!0,writable:!0,value:0});var Ki=function(e,t){if(!t)return null;var r=t.resolutionLevel,i=e.media.video.highestResolutionLevel;if(i&&i<r){var n=or(i);return ar(n,$e(e))}return t},zi=function(e){var t,r={audio:[],video:[]},i=Bi(e);try{for(i.s();!(t=i.n()).done;){var n=t.value,a=n.stream,o=n.error,s=n.resolutionInfo,c=n.targetMediaType;if(o)Qi.error("skip subscribe",a,o);else{var u=$i(a,s,c),l=u.audio,d=u.video;if("audio"===c&&l){var p=Wi(Wi({},l),{},{trackId:a.media.audio.trackId,ssrcGroup:[{ssrc:pn()}]});Ke.audioSFU&&(p.ssrcGroup=new Array(6).fill(0).map(function(){return{ssrc:pn()}})),r.audio.push(p)}else if("video"===c&&d){var f,v;r.video.push(Wi(Wi({},d),{},{trackId:null===(f=a.media)||void 0===f||null===(f=f.video)||void 0===f?void 0:f.trackId,ssrcGroup:null===(v=a.media)||void 0===v||null===(v=v.video)||void 0===v?void 0:v.ssrcGroup,subSsrcGroup:{ssrc:pn(),rtxSsrc:pn()}}))}}}}catch(e){i.e(e)}finally{i.f()}return r},$i=function(e,t,r){var i=e.id,n=e.media,a=n.audio,o=n.video,s={};if(a&&"audio"===r)s.audio={from:i};else if(o&&"video"===r){var c;s.video={from:i,format:null===(c=n.video)||void 0===c?void 0:c.format,parameters:Ki(e,t)}}return s},Xi=function(){var e=C(Oe.mark(function e(t,r){var i,n,a,o;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return i=[],n={},t.forEach(function(e,t){var a=e.stream,o=e.error,s=e.uid,c=e.resolutionInfo,u=e.targetMediaType;if(i[t]={stream:a,error:o,uid:s,resolutionInfo:c,targetMediaType:u},!o){var l=new Ji({connection:r,uid:s,userConfigResolution:c,resolutionInfo:c&&Ki(a,c),stream:a,targetMediaType:u});n[a.id]=l}}),o=new Promise(function(e,o){a=function(){var a=C(Oe.mark(function a(){var s;return Oe.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:if((s=zi(t)).audio.length||s.video.length){a.next=1;break}return Qi.info("batchSubscribe no valid media to sub"),a.abrupt("return",e(i));case 1:return a.next=2,yn(r,s,n);case 2:r.rtcSignaling.batchSubscribe({connectionId:r.id,propertiesJsonStr:JSON.stringify({opusExtendInbandFec:!0,type:Ke.audioSFU?"selective":"mixed"}),supportTemporalLayer:!1,media:s}).then(function(){var r=C(Oe.mark(function r(a){var o,s,c,u,l,d;return Oe.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:if(o=a.detailStatus,"ok"===(s=a.globalStatus)){r.next=1;break}return i.forEach(function(e){e.error=e.error||Xe(e.stream,s,e.targetMediaType)}),r.abrupt("return",e(i));case 1:c=Bi(o),r.prev=2,l=Oe.mark(function e(){var r,a,o,s,c,l;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:r=u.value,a=r.id,o=r.msg,s=r.origin,c=n[s.id],l=t.findIndex(function(e){return e.stream.id===s.id}),"ok"===o&&c?(c.id=a,i[l].id=a,i[l].subscription=c):"ok"!==o&&(i[l].error=Xe(c.stream,o,i[l].targetMediaType));case 1:case"end":return e.stop()}},e)}),c.s();case 3:if((u=c.n()).done){r.next=5;break}return r.delegateYield(l(),"t0",4);case 4:r.next=3;break;case 5:r.next=7;break;case 6:r.prev=6,d=r.catch(2),c.e(d);case 7:return r.prev=7,c.f(),r.finish(7);case 8:e(i);case 9:case"end":return r.stop()}},r,null,[[2,6,7,8]])}));return function(e){return r.apply(this,arguments)}}()).catch(o);case 3:case"end":return a.stop()}},a)}));return function(){return a.apply(this,arguments)}}()}),r.addTask(a),e.abrupt("return",o);case 1:case"end":return e.stop()}},e)}));return function(t,r){return e.apply(this,arguments)}}(),Zi=function(){var e=C(Oe.mark(function e(t,r){var i,n;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=new Promise(function(e,n){i=function(){var i=C(Oe.mark(function i(){var a,o;return Oe.wrap(function(i){for(;;)switch(i.prev=i.next){case 0:return a=t.filter(function(e){return"audio"===e.targetMediaType}).map(function(e){return e.id}),o=t.filter(function(e){return"video"===e.targetMediaType}).map(function(e){return e.id}),i.next=1,wn(r,t);case 1:r.rtcSignaling.batchUnSubscribe({connectionId:r.id,audio:a,video:o}).then(function(){t.forEach(function(e){e.clear()}),e(void 0)}).catch(n);case 2:case"end":return i.stop()}},i)}));return function(){return i.apply(this,arguments)}}()}),r.addTask(i),e.abrupt("return",n);case 1:case"end":return e.stop()}},e)}));return function(t,r){return e.apply(this,arguments)}}();function en(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,i)}return r}function tn(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?en(Object(r),!0).forEach(function(t){Ee(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):en(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function rn(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return nn(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?nn(e,t):void 0}}(e))||t){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function nn(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}var an=t().getLoggerWithPrefix("[rtc-sdp]"),on={motion:"maintain-framerate",detail:"maintain-resolution",balanced:"balanced"},sn=0,cn=0,un=0,ln=new Set,dn=function(e,t){var r=Math.log2(e+1);t>2147483647>>r||(cn=e,sn=(t<<r|2147483648)>>>0)},pn=function(){if(0==sn||0==cn)return 0;var e=Math.min(cn+1,1e4);do{var t=sn+(cn&un++);if(0!=t&&!ln.has(t))return t}while(--e>0);return 0},fn=function(t,r){var i,n;if((null===(i=t.rids)||void 0===i?void 0:i.length)>1)return e.isFirefox()&&(r=bn(r)),r.rids=null===(n=t.rids)||void 0===n?void 0:n.map(function(e){return{direction:"recv",id:e.id}}),r.simulcast={dir1:"recv",list1:t.simulcast.list1},r},vn=function(){var e=C(Oe.mark(function e(t){var r,i,n,a,o,s,c;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.connection,i=t.transceiver,n=r.remoteSDP,a=r.pc,e.next=1,a.createOffer();case 1:return o=e.sent,e.next=2,a.setLocalDescription(o);case 2:return r.localSDP=R.parse(o.sdp),s=r.localSDP.media.find(function(e){return e.mid==i.mid}),c=n.media.find(function(e){return e.mid==i.mid}),fn(s,c),e.next=3,a.setRemoteDescription({type:"answer",sdp:R.write(n)});case 3:r.remoteSDP=n;case 4:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}(),mn=function(){var t=C(Oe.mark(function t(r,i){var n,a,o,s,c,u,l,d,p,f,v;return Oe.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return n=r.pc,a=r.idToTransceiverMap,o=r.remoteSDP,s=new MediaStream(i.map(function(e){return e.getMediaStreamTrack()})),c=i.map(function(e){var t={direction:"sendonly"};if(e instanceof Or){var i=gr(e).encodings;t.sendEncodings=i.filter(function(e){return e.activeForBitrateMap}).map(function(e){return{rid:e.rid||void 0,maxBitrate:1e3*e.maxBitrate,maxFramerate:e.maxFramerate,active:e.activeForRealuse,scaleResolutionDownBy:e.scaleResolutionDownBy}})}var n=r.pc.addTransceiver(e.getMediaStreamTrack()||e.trackMediaType,t);if(e instanceof Or&&n.sender.setParameters){var o=e.optimizationMode,s=n.sender.getParameters();s.degradationPreference=on[o]||"balanced";var c=parseFloat(new URLSearchParams(location.search).get("times"))||0;c&&(an.info("adjustUplinkSDPWhenPublish maxBitrate times",c),s.encodings.forEach(function(e){if(e.maxBitrate){var t=e.maxBitrate;e.maxBitrate=e.maxBitrate*c,an.info("adjustUplinkSDPWhenPublish update maxBitrate",t,e.maxBitrate,e)}})),an.info("adjustUplinkSDPWhenPublish setParameters",s),n.sender.setParameters(s)}return a.set(e.getTrackId(),n),n}),t.next=1,n.createOffer();case 1:return u=t.sent,l=R.parse(u.sdp),t.next=2,n.setLocalDescription(u);case 2:r.localSDP=l,o.groups[0].mids=r.localSDP.groups[0].mids,d=rn(c),t.prev=3,f=Oe.mark(function t(){var r,i,n,a,s,c,u;return Oe.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:r=p.value,i=o.media.find(function(e){return e.type===r.sender.track.kind}),e.isFirefox()&&"video"===i.type&&(delete i.rids,delete i.simulcast),n=tn(tn({},i),{},{ext:Re(i.ext),mid:r.mid}),a=l.media.find(function(e){return e.mid==r.mid}),s=new URLSearchParams(location.search).get("startkbs")||2e3,c=new URLSearchParams(location.search).get("minkbs"),u=new URLSearchParams(location.search).get("maxkbs"),an.info("startkbs, minkbs, maxkbs",s,c,u),n.fmtp.map(function(e){if(/profile-level-id/i.test(e.config)){var t=e.config.split(";").filter(function(e){return!/x-google-start-bitrate/i.test(e)});s&&Ke.highStartBitrate?t.push("x-google-start-bitrate=".concat(s)):t.push("x-google-start-bitrate=500"),c&&t.push("x-google-min-bitrate=".concat(c)),u&&t.push("x-google-max-bitrate=".concat(u)),e.config=t.join(";")}}),fn(a,n),o.media.push(n);case 1:case"end":return t.stop()}},t)}),d.s();case 4:if((p=d.n()).done){t.next=6;break}return t.delegateYield(f(),"t0",5);case 5:t.next=4;break;case 6:t.next=8;break;case 7:t.prev=7,v=t.catch(3),d.e(v);case 8:return t.prev=8,d.f(),t.finish(8);case 9:return window.remoteSDP=o,t.next=10,n.setRemoteDescription({type:"answer",sdp:R.write(o)});case 10:return r.remoteSDP=o,t.abrupt("return",{localSDP:r.localSDP,stream:s});case 11:case"end":return t.stop()}},t,null,[[3,7,8,9]])}));return function(e,r){return t.apply(this,arguments)}}(),hn=function(){var e=C(Oe.mark(function e(t,r){var i,n,a,o;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return i=t.pc,n=t.remoteSDP,r.map(function(e){return e.transceiver}).forEach(function(e){if(e){i.removeTrack(e.sender);var t=n.media.find(function(t){return t.mid==(null==e?void 0:e.mid)});e.direction="inactive",t.direction="inactive"}}),e.next=1,i.createOffer();case 1:return a=e.sent,o=R.parse(a.sdp),e.next=2,i.setLocalDescription(a);case 2:return t.localSDP=o,n.groups[0].mids=o.groups[0].mids,t.remoteSDP=n,e.next=3,i.setRemoteDescription({type:"answer",sdp:R.write(n)});case 3:case"end":return e.stop()}},e)}));return function(t,r){return e.apply(this,arguments)}}(),gn=function(e,t,r){var i=e.ssrc,n=e.rtxSsrc;!function(e){e.ssrc&&ln.add(e.ssrc),e.rtxSsrc&&ln.add(e.rtxSsrc)}(e),t.ssrcGroups=[],n&&t.ssrcGroups.push({semantics:"FID",ssrcs:"".concat(i," ").concat(n)}),t.ssrcs=[],[i,n].filter(function(e){return void 0!==e}).forEach(function(e){t.ssrcs.push({attribute:"msid",value:"".concat(r," v").concat(i),id:e},{attribute:"cname",value:y(),id:e})})},bn=function(e){var t;return null!=e&&null!==(t=e.ext)&&void 0!==t&&t.some(function(e){return e.uri.includes("rtp-stream-id")})||e.ext.push({value:8,uri:"urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id"},{value:9,uri:"urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id"}),e},yn=function(){var e=C(Oe.mark(function e(t,r,i){var n,a,o,s,c,u,l,d,p,f,v,m,h,g,b,y,k,S,P,w,T,M,O,E,I,A,_,x,C,j,D,L,N,F,U,G,V,B,H,q;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(s=t.pc,c=t.idToTransceiverMap,u=t.remoteSDP,l=t.idToTransceiversMap,d=u.media.find(function(e){return"video"===e.type}),p=u.media.find(function(e){return"audio"===e.type}),f=null===(n=d.ssrcs)||void 0===n?void 0:n.find(function(e){return"msid"===e.attribute}).value.split(" ")[0],null!==(a=r.audio)&&void 0!==a&&a[0])if(m=null===(v=r.audio)||void 0===v?void 0:v[0],h=m.from,Ke.audioSFU){if(l.get(h)){g=rn(l.get(h));try{for(g.s();!(b=g.n()).done;)b.value.direction="recvonly"}catch(e){g.e(e)}finally{g.f()}y=u.media.filter(function(e){return"audio"===e.type}),k=rn(y);try{for(k.s();!(S=k.n()).done;)S.value.direction="sendonly"}catch(e){k.e(e)}finally{k.f()}}else t.mcuAudioTranceivers=new Array(6).fill(0).map(function(e){return t.pc.addTransceiver("audio",{direction:"recvonly"})}),l.set(h,t.mcuAudioTranceivers);i[h].addTransceivers(l.get(h))}else c.get(h)||c.set(h,t.mcuAudioTranceiver),c.get(h).direction="recvonly",p.direction="sendonly",i[h].addTransceiver(c.get(h));P=rn(r.video),e.prev=1,T=Oe.mark(function e(){var t,r,n,a;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=w.value,r=t.from,n=c.get(r)){e.next=1;break}c.set(r,s.addTransceiver("video",{direction:"recvonly"})),e.next=5;break;case 1:if("inactive"===n.direction){e.next=4;break}return n.direction="inactive",e.next=2,s.createOffer();case 2:return a=e.sent,e.next=3,s.setLocalDescription(a);case 3:return u.media.find(function(e){return e.mid==n.mid}).direction="inactive",e.next=4,s.setRemoteDescription({type:"answer",sdp:R.write(u)});case 4:c.get(r).direction="recvonly";case 5:i[r].addTransceiver(c.get(r));case 6:case"end":return e.stop()}},e)}),P.s();case 2:if((w=P.n()).done){e.next=4;break}return e.delegateYield(T(),"t0",3);case 3:e.next=2;break;case 4:e.next=6;break;case 5:e.prev=5,H=e.catch(1),P.e(H);case 6:return e.prev=6,P.f(),e.finish(6);case 7:return e.next=8,s.createOffer();case 8:return M=e.sent,O=R.parse(M.sdp),u.groups[0].mids=O.groups[0].mids,e.next=9,s.setLocalDescription(M);case 9:t.localSDP=O,Ke.audioSFU&&r.audio[0]&&(E=r.audio[0],I=E.ssrcGroup,A=E.from,l.get(A).forEach(function(e,t){var r,i=null===(r=I[t])||void 0===r?void 0:r.ssrc,n=u.media.find(function(t){var r=t.mid,i=t.type;return r==e.mid&&"audio"===i});n||(n=tn(tn({},p),{},{mid:e.mid}),u.media.push(n)),n.ssrcs=Mn(i,f),n.direction="sendonly"})),_=rn(r.video),e.prev=10,C=Oe.mark(function e(){var t,r,n,a,o;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:t=x.value,r=t.from,n=t.subSsrcGroup,a=c.get(r),(o=u.media.find(function(e){var t=e.mid,r=e.type;return t==a.mid&&"video"===r}))||((o=tn({},d)).mid=a.mid,u.media.push(o)),o.direction="sendonly",i[r].ssrc=null==n?void 0:n.ssrc,gn(n,o,f);case 1:case"end":return e.stop()}},e)}),_.s();case 11:if((x=_.n()).done){e.next=13;break}return e.delegateYield(C(),"t1",12);case 12:e.next=11;break;case 13:e.next=15;break;case 14:e.prev=14,q=e.catch(10),_.e(q);case 15:return e.prev=15,_.f(),e.finish(15);case 16:return an.info("sub remoteSDP before remove high profile",R.write(u)),Sn(u),t.remoteSDP=u,j=R.write(u),an.info("sub remoteSDP after remove high profile",j),e.next=17,s.setRemoteDescription({type:"answer",sdp:j});case 17:null!==(o=r.audio)&&void 0!==o&&o[0]&&(L=null===(D=r.audio)||void 0===D?void 0:D[0],N=L.from,Ke.audioSFU||i[N].addTransceiver(c.get(N))),F=rn(r.video);try{for(F.s();!(U=F.n()).done;)V=U.value,B=V.from,null===(G=i[B])||void 0===G||G.updateTransceiverListeners()}catch(e){F.e(e)}finally{F.f()}case 18:case"end":return e.stop()}},e,null,[[1,5,6,7],[10,14,15,16]])}));return function(t,r,i){return e.apply(this,arguments)}}(),kn=function(e){Pn(e,function(e){return!/profile-level-id=42e01f/i.test(e)&&/profile-level-id/i.test(e)})},Sn=function(e){Pn(e,function(e){return/profile-level-id=64/i.test(e)&&/profile-level-id/i.test(e)})},Pn=function(e,t){e.media.forEach(function(e){if("video"===e.type){var r=e.rtp.filter(function(e){return"H264"===e.codec}).filter(function(r){return e.fmtp.find(function(e){return e.payload===r.payload&&t((null==e?void 0:e.config)||"")})}),i=new Map;e.fmtp.forEach(function(e){/apt=\d+/i.test(e.config)&&i.set(e.payload,e.config.split("=")[1])}),an.info("rtxPayloadMap",Array.from(i.entries())),e.rtp=e.rtp.filter(function(e){return!r.find(function(t){return t.payload===e.payload||"".concat(t.payload)===i.get(e.payload)})}),e.fmtp=e.fmtp.filter(function(e){return!r.find(function(t){return t.payload===e.payload||"".concat(t.payload)===i.get(e.payload)})}),e.payloads=e.payloads.split(" ").map(function(e){return e.trim()}).filter(function(e){return!r.find(function(t){return"".concat(t.payload)===e||"".concat(t.payload)===i.get(parseInt(e))})}).join(" "),e.rtcpFb=e.rtcpFb.filter(function(e){return!r.find(function(t){return parseInt("".concat(t.payload))===parseInt("".concat(e.payload))||"".concat(t.payload)===i.get(parseInt("".concat(e.payload)))})})}})},wn=function(){var e=C(Oe.mark(function e(t,r){var i,n,a,o,s,c,u,l,d,p,f,v;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:i=t.pc,n=t.remoteSDP,a=[],o=rn(r);try{for(o.s();!(s=o.n()).done;)c=s.value,u=c.transceiver,l=c.transceivers,u?a.push(u):l&&a.push.apply(a,Re(l))}catch(e){o.e(e)}finally{o.f()}return a.forEach(function(e){e.direction="inactive"}),e.next=1,i.createOffer();case 1:return d=e.sent,e.next=2,i.setLocalDescription(d);case 2:t.localSDP=R.parse(d.sdp),p=Oe.mark(function e(){var t;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:t=v[f],n.media.find(function(e){return e.mid==t.mid}).direction="inactive";case 1:case"end":return e.stop()}},e)}),f=0,v=a;case 3:if(!(f<v.length)){e.next=5;break}return e.delegateYield(p(),"t0",4);case 4:f++,e.next=3;break;case 5:return t.remoteSDP=n,e.next=6,i.setRemoteDescription({type:"answer",sdp:R.write(n)});case 6:case"end":return e.stop()}},e)}));return function(t,r){return e.apply(this,arguments)}}(),Tn=function(e,t){var r=t.media;return e.media.forEach(function(e){var t=e.mid,i=e.ssrcGroups,n=void 0===i?[]:i,a=e.ssrcs,o=void 0===a?[]:a,s=e.type,c=r.findIndex(function(e){return e.mid==t&&e.type===s});c>-1&&(r[c]=tn(tn({},r[c]),{},{ssrcGroups:n,ssrcs:o}))}),t},Mn=function(e,t){return[{attribute:"msid",value:"".concat(t," v").concat(e),id:e},{attribute:"cname",value:y(),id:e}]},On=function(t,r,i){var n=r.direction,a=r.remoteSDP;an.info("origin answer for createpc",r.id,t);var o=R.parse(t);o.media.forEach(function(e){e.candidates.forEach(function(e){e.generation=0,e["network-cost"]=w(e.ip)?10:1e3})}),i&&(o=function(e,t){var r=t.media.find(function(e){return"audio"===e.type}),i=t.media.find(function(e){return"video"===e.type});return e.media.forEach(function(t,n){var a=t.mid,o=t.ssrcGroups,s=void 0===o?[]:o,c=t.ssrcs,u=void 0===c?[]:c,l=t.rids,d=void 0===l?[]:l;"audio"===t.type?e.media[n]=tn(tn({},r),{},{mid:a,ssrcs:u}):"video"===t.type&&(e.media[n]=tn(tn({},i),{},{mid:a,ssrcGroups:s,ssrcs:u}),d.length&&(e.media[n].rids=d,e.media[n].simulcast={dir1:"recv",list1:d.map(function(e){return"~".concat(e.id)}).join(";")}))}),e}(a,o));var s=o.media.find(function(e){return"video"===e.type});if("uplink"===n&&e.isFirefox()&&Ke.simulcast&&(s.ext=s.ext.filter(function(e){return!e.uri.includes("rtp-stream-id")})),!s.ssrcs&&"downlink"===n){var c=pn(),u=o.msidSemantic.token;s.ssrcs=Mn(c,u)}Ke.preferH264CbProfile&&kn(o),r.remoteSDP=o;var l=R.write(o);return an.info("final answer for createpc",r.id,l),l},En=function(t,r){var i=r.direction,n=R.parse(t);if(Sn(n),Ke.preferH264CbProfile&&kn(n),Ke.disableTransportCC&&"uplink"===i&&function(e){e.media.forEach(function(e){e.ext=e.ext.filter(function(e){return!e.uri.includes("transport-wide-cc")}),e.rtcpFb=e.rtcpFb.filter(function(e){return"transport-cc"!==e.type})})}(n),"downlink"===i&&!Ke.downlinkForbidHighProfile){var a=[];n.media.find(function(e){return"video"===e.type}).fmtp.forEach(function(e){var t=e.config;t.includes("profile-level-id")&&a.push(t)}),r.subSdpFmtpLines=a}if(e.isFirefox()&&(n=An(n)),"uplink"===i&&e.isFirefox()&&Ke.simulcast){var o=n.media.find(function(e){return"video"===e.type});bn(o)}return r.localSDP=n,n},In=function(e){var t=e.localSDP,r=e.remoteSDP,i=e.sessionManager,n=e.mcuAudioTranceiver,a=e.pc,o=e.idToTransceiverMap,s=e.idToTransceiversMap,c=e.direction,u=t.media.slice(2),l=Re(i.sessions.values());if("downlink"===c){var d=r.media.slice(2),p=l.filter(function(e){return e instanceof Ji}),f=p.find(function(e){var t;return"admin"===(null===(t=e.stream)||void 0===t||null===(t=t.info)||void 0===t?void 0:t.owner)});f&&!Ke.audioSFU&&(o.set(f.id,n),f.addTransceiver(n));var v=[];u.forEach(function(e){var t={direction:e.direction},r=d.find(function(t){return t.type===e.type&&e.mid==t.mid}),i=p.find(function(e){return(null==e?void 0:e.ssrc)===(null==r?void 0:r.ssrcs[0].id)}),n=a.addTransceiver(e.type,t);"recvonly"===e.direction&&("video"===e.type&&i?(o.set(i.stream.id,n),i.addTransceiver(n)):"audio"===e.type&&v.push(n))}),v.length&&f&&(e.mcuAudioTranceivers=v,s.set(f.id,v),f.addTransceivers(v))}else{var m=l.filter(function(e){return e instanceof Ln});u.forEach(function(e){var t={direction:e.direction},r=m.find(function(t){return t.mid==e.mid});if("sendonly"===e.direction&&r){var i=r.tracks[0],n=(null==i?void 0:i.getMediaStreamTrack())||(null==i?void 0:i.trackMediaType);if(i instanceof Or){var s=gr(i).encodings;t.sendEncodings=s.filter(function(e){return e.activeForBitrateMap}).map(function(e){return{rid:e.rid||void 0,maxBitrate:1e3*e.maxBitrate,maxFramerate:e.maxFramerate,active:e.activeForRealuse,scaleResolutionDownBy:e.scaleResolutionDownBy}})}var c=a.addTransceiver(n,t);o.set(i.getTrackId(),c),r.addTransceiver(c)}else a.addTransceiver(e.type,t)})}},An=function(e){return function(e,t){if(e){var r,i=e.fmtp,n=e.payloads,a=e.rtp,o=e.rtcpFb,s=[],c={},u=rn(i);try{for(u.s();!(r=u.n()).done;){var l=r.value,d=l.config,p=l.payload,f=d.split(";");c[p]={};var v,m=rn(f);try{for(m.s();!(v=m.n()).done;){var h=$t(v.value.split("="),2),g=h[0],b=h[1];c[p][g]=b}}catch(e){m.e(e)}finally{m.f()}}}catch(e){u.e(e)}finally{u.f()}for(var y in c){var k=c[y];(t(k)||s.includes(+k.apt))&&s.push(parseInt(y))}if(s.length){for(var S=i.length-1;S>=0;S--){var P=i[S].payload;s.includes(P)&&i.splice(S,1)}for(var w=a.length-1;w>=0;w--)s.includes(a[w].payload)&&a.splice(w,1);for(var T=o.length-1;T>=0;T--)s.includes(parseInt("".concat(o[T].payload)))&&o.splice(T,1);e.payloads=n.split(" ").map(Number).filter(function(e){return!s.includes(e)}).join(" ")}}}(e.media.find(function(e){return"video"===e.type}),function(e){return e["profile-level-id"]&&!e["packetization-mode"]}),e};function Rn(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,i)}return r}function _n(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Rn(Object(r),!0).forEach(function(t){Ee(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Rn(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function xn(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return Cn(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Cn(e,t):void 0}}(e))||t){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Cn(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function jn(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(jn=function(){return!!e})()}var Dn=t().getLoggerWithPrefix("[publication]"),Ln=function(){function e(t){var r,i,n,a;j(this,e),i=this,n=G(n=e),r=U(i,jn()?Reflect.construct(n,[],G(i).constructor):n.apply(i,a)),Object.defineProperty(r,"uid",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"connection",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"tracks",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"rtcSignaling",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"transceiver",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"metricsMap",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"audioStatsMap",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"videoStatsMap",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"state",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"reporter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"logger",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"mid",{enumerable:!0,configurable:!0,writable:!0,value:""}),Object.defineProperty(r,"encodings",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"rtcStreamMuted",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"feedbackIndex",{enumerable:!0,configurable:!0,writable:!0,value:-1}),Object.defineProperty(r,"monitor",{enumerable:!0,configurable:!0,writable:!0,value:void 0});var o=t.connection,s=t.uid,c=t.tracks,u=void 0===c?[]:c;return r.tracks=u,r.connection=o,r.rtcSignaling=o.rtcSignaling,r.uid=s,r.reporter=o.reporter,r.logger=r.reporter.getLoggerWithPrefix("[rtp-publication]"),r.state=Se.Idle,r.videoStatsMap=new Map,r.audioStatsMap=new Map,r.metricsMap=new Map,r.handleTracEvent=r.handleTracEvent.bind(r),r.applyOptions=r.applyOptions.bind(r),u.forEach(function(e){e.on(Ue,r.handleTracEvent)}),u[0]instanceof Or&&(r.encodings=gr(u[0]).encodings),r.state=Se.Processing,r.connection.once("ended",function(){r.clear()}),r}return B(e,c),F(e,[{key:"stop",value:function(){var e=this;return this.state!==Se.Processing?Promise.resolve():Un([this],{connection:this.connection}).catch(function(t){e.clear(),e.logger.warn("negative ack for unpublish, ".concat(g(t)))})}},{key:"mute",value:(r=C(Oe.mark(function e(){var t,r,i;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.tracks.length&&this.state===Se.Processing&&"muted"!==this.rtcStreamMuted){e.next=1;break}return this.logger.info("ignore mute for tracks=".concat(this.tracks.length," state=").concat(this.state," curRtcStreamMuted=").concat(this.rtcStreamMuted)),e.abrupt("return");case 1:return t=this.tracks[0].trackMediaType,this.reporter.trace.localControl(t,!0,this.id),this.rtcStreamMuted="muted",e.prev=2,e.next=3,this.rtcSignaling.streamControl({streamId:this.id,operation:"pause",data:t});case 3:return r=e.sent,e.abrupt("return",r);case 4:e.prev=4,i=e.catch(2),this.logger.error("mute error",this.id,i),this.rtcStreamMuted="unmuted";case 5:case"end":return e.stop()}},e,this,[[2,4]])})),function(){return r.apply(this,arguments)})},{key:"unmute",value:(t=C(Oe.mark(function e(){var t,r,i;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.tracks.length&&this.state===Se.Processing&&"unmuted"!==this.rtcStreamMuted){e.next=1;break}return this.logger.info("ignore unmute for tracks=".concat(this.tracks.length," state=").concat(this.state," curRtcStreamMuted=").concat(this.rtcStreamMuted)),e.abrupt("return");case 1:return t=this.tracks[0].trackMediaType,this.reporter.trace.localControl(t,!1,this.id),this.rtcStreamMuted="unmuted",e.prev=2,e.next=3,this.rtcSignaling.streamControl({streamId:this.id,operation:"play",data:t});case 3:return r=e.sent,e.abrupt("return",r);case 4:e.prev=4,i=e.catch(2),this.logger.error("unmute error",this.id,i),this.rtcStreamMuted="muted";case 5:case"end":return e.stop()}},e,this,[[2,4]])})),function(){return t.apply(this,arguments)})},{key:"initInner",value:function(e){this.id=e;var t=this.tracks[0],r=this.connection.idToTransceiverMap.get(t.getTrackId());this.addTransceiver(r),"video"===t.trackMediaType&&t.config.mirror&&this.handleMirror(t.config.mirror)}},{key:"handleMirror",value:function(e){return this.rtcSignaling.setStreamProperties({streamId:this.id,propertiesJsonStr:JSON.stringify({mirror:!!e})})}},{key:"handleRepublish",value:function(e){var t=this,r=this.connection,i=this.transceiver,n=e.getMediaStreamTrack().getSettings(),a=n.width,o=n.height,s=hr(a,o);this.rtcSignaling.streamControl({streamId:this.id,operation:"updateResolution",highestResolutionLevel:s});var c=function(e,t){var r=pr(e,t),i=function(i){var n=$t(fr(e,t,i,r),2);n[0];var a=1/(n[1]/t);return Math.max(a,1)};return{ld:i(Xt.LD),sd:i(Xt.SD),fhd:i(r)}}(a,o);r.addTask(C(Oe.mark(function e(){var r;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t.logger.info("scales",c),(r=i.sender.getParameters()).encodings.forEach(function(e){e.scaleResolutionDownBy=c[e.rid]}),t.logger.info("handleRepublish setParameters",r),e.abrupt("return",i.sender.setParameters(r).then(function(){console.log(i.sender.getParameters().encodings)}));case 1:case"end":return e.stop()}},e)})))}},{key:"handleTracEvent",value:function(e,t){var r,i=this,n={replace:function(){return i.replaceTrack(t.getMediaStreamTrack())},mute:function(){return i.mute()},unmute:function(){return i.unmute()},republish:function(){Ke.republish?i.handleRepublish(t):i.stop().then(function(){i.connection.sessionManager.serviceManager.client.publish([t])})},stop:function(){return i.stop()},optimizationMode:function(){return i.updateOptionzationMode()},mirror:function(){return i.handleMirror(t)}};return null===(r=n[e])||void 0===r?void 0:r.call(n)}},{key:"clear",value:function(){var e=this;this.state!==Se.End&&(this.monitor&&(this.monitor.stop(),this.monitor.removeAllListeners(),this.monitor=null),this.tracks.forEach(function(t){t.off(Ue,e.handleTracEvent)}),this.tracks=[],this.metricsMap.clear(),this.audioStatsMap.clear(),this.videoStatsMap.clear(),this.state=Se.End,this.emit("ended"))}},{key:"applyOptions",value:function(e){var t=this,r=e[0],i=r.index,n=r.bitrate;if(this.logger.debug("applyOptions",e),!(i<this.feedbackIndex||this.state!==Se.Processing)){this.feedbackIndex=i;var a=this.transceiver;this.connection.addTask(function(){return new Promise(function(r){var i,o=0===n,s=!1,c=a.sender.getParameters(),u=e.map(function(e){return e.rid}),l=xn(c.encodings);try{for(l.s();!(i=l.n()).done;){var d,p=i.value,f=xn(e);try{for(f.s();!(d=f.n()).done;){d.value.rid!==p.rid&&p.rid||p.active||o||(p.active=!0,s=!0)}}catch(e){f.e(e)}finally{f.f()}!p.active||u.includes(p.rid)&&!o||(p.active=!1,s=!0)}}catch(e){l.e(e)}finally{l.f()}return t.logger.info("encodings",c.encodings),s&&t.logger.info("applyOptions setParameters",c),a.sender.setParameters(c).then(function(){return vn(t).then(r)})})})}}},{key:"updateOptionzationMode",value:function(){var e,t=this,r=this.tracks,i=this.transceiver,n=this.connection;if(r[0]instanceof Or&&null!=i&&null!==(e=i.sender)&&void 0!==e&&e.setParameters){var a=r[0].optimizationMode;n.addTask(function(){var e=i.sender.getParameters();return e.degradationPreference=on[a]||"balanced",t.logger.info("updateOptionzationMode setParameters",e),i.sender.setParameters(e),vn(t)})}}},{key:"addTransceiver",value:function(e){this.monitor&&(this.monitor.stop(),this.monitor.removeAllListeners(),this.monitor=null),this.metricsMap.clear(),this.audioStatsMap.clear(),this.videoStatsMap.clear(),this.transceiver=e,this.mid||(this.mid=null==e?void 0:e.mid),this.state=Se.Processing,this.feedbackIndex=-1,this.monitor=new Di(this),this.onMonitor()}},{key:"replaceTrack",value:function(e){var t;if(this.transceiver){null===(t=this.transceiver.sender.track)||void 0===t||t.stop();try{this.transceiver.sender.replaceTrack(e)}catch(e){this.logger.error("_DEV_TODO_","sender replaceTrack error",e)}}}},{key:"handleMetrics",value:function(e,t){var r=e.audioMetrics,i=e.videoMetrics;if(r){var n,a=(null===(n=this.metricsMap.get(t))||void 0===n?void 0:n.audioMetrics)||{},o=mt(r,a),s=gt(r.bytesSent,a.bytesSent),c={codec:this.connection.peerConnectionStats.audioCodec||r.codec,sendBytes:r.bytesSent,audioLevel:Math.max(r.audioLevel,0),sendPackets:r.packetsSent,sendPacketsLost:r.packetsLost,sampleRate:r.sampleRate,channelCount:r.channels,rtt:this.connection.peerConnectionStats.roundTripTime||r.roundTripTime,timestamp:r.timestamp,sendBitrate:8*s/o};this.audioStatsMap.set(t,c)}else if(i){var u,l,d=((null===(u=this.transceiver)||void 0===u||null===(u=u.sender)||void 0===u?void 0:u.getParameters())||{}).encodings,p=void 0===d?[]:d,f=(null===(l=this.metricsMap.get(t))||void 0===l?void 0:l.videoMetrics)||{},v=mt(i,f),m=gt(i.totalBytesSent,f.totalBytesSent),h={codec:this.connection.peerConnectionStats.videoCodec||i.codec,sendFrameRate:Math.round(i.sendFramesPerSecond),captureFrameRate:i.captureFramesPerSecond,encodeFrameRate:i.encodeFramesPerSecond,qpSum:i.totalQpSum||0,targetBitrate:i.targetBitrate,encodeLayers:p.length,sendLayers:p.filter(function(e){return e.active}).length,outgingBitrate:i.availableOutgoingBitrate,sendResolution:{width:i.maxSendFrameWidth,height:i.maxSendFrameHeight},captureResolution:{width:i.captureFrameWidth,height:i.captureFrameHeight},sendBytes:i.totalBytesSent,sendPackets:i.totalPacketsSent,sendPacketsLost:i.totalPacketsLost,timestamp:i.timestamp,rtt:this.connection.peerConnectionStats.roundTripTime||i.roundTripTime,sendBitrate:8*m/v};this.videoStatsMap.set(t,h)}this.metricsMap.set(t,e)}},{key:"getMetrics",value:function(e){var t,r=this;return null===(t=this.connection)||void 0===t?void 0:t.getStats().then(function(){var t;return null===(t=r.monitor)||void 0===t?void 0:t.getStats().then(function(t){return r.handleMetrics(t,e)})})}},{key:"onMonitor",value:function(){var e=this;this.monitor.on("audio-send-stream",function(t){e.reporter.metric.audioSendStream(_n({sessionId:e.id},t))}),this.monitor.on("video-send-stream",function(t){e.reporter.metric.videoSendStream(_n({sessionId:e.id},t))}),this.monitor.on("bwe",function(t){e.reporter.metric.bwe(_n({sessionId:e.id},t))})}}]);var t,r}(),Nn=function(){var e=C(Oe.mark(function e(t,r){var i,n,a,o,s,c=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return i=c.length>2&&void 0!==c[2]?c[2]:["common"],n={},e.next=1,mn(r,t);case 1:return a=e.sent,o=a.localSDP,s=a.stream,t.forEach(function(e){var t=e.getTrackId(),a=o.media.find(function(e){return e.mid==r.idToTransceiverMap.get(t).mid});if("audio"===e.trackMediaType)n.audio=[{source:"mic",autoMix:i,trackId:t,msid:s.id,uplinkSsrcGroup:[{ssrc:Number(a.ssrcs[0].id)}]}];else if(e instanceof Or){var c;n.video=n.video||[];var u=a.ssrcGroups,l=void 0===u?[]:u,d=gr(e),p=d.encodings,f=d.resolutionLevel;p.length>1&&(l=p.map(function(){return{semantics:"FID",ssrcs:"".concat(pn()," ").concat(pn())}}));var v=l.filter(function(e){return"FID"===e.semantics}).map(function(e){return{ssrc:Number(e.ssrcs.split(" ")[0]),rtxSsrc:Number(e.ssrcs.split(" ")[1])}}),m=p[p.length-1],h={trackId:e.getTrackId(),forwardOnly:e.source===me.SCREENCAST,msid:s.id,mid:"".concat(a.mid),highestResolutionLevel:f,uplinkSsrcGroup:v,source:e.source||me.CAMERA,streamParameters:{ssrc:null==v||null===(c=v[0])||void 0===c?void 0:c.ssrc,bitrate:"".concat(m.maxBitrate),resolution:{width:m.targetWidth,height:m.targetHeight},framerate:m.maxFramerate},ssrcParameters:v.map(function(e,t){var r;return{ssrc:e.ssrc,active:p[t].activeForBitrateMap,tlayer:1,bitrate:p[t].maxBitrate,rid:(null===(r=p[t])||void 0===r?void 0:r.rid)||void 0,maxBitrate:p[t].maxBitrate,minBitrate:p[t].minBitrate,framerate:p[t].maxFramerate,resolution:{width:p[t].targetWidth,height:p[t].targetHeight}}})};n.video.push(h)}}),e.abrupt("return",n);case 2:case"end":return e.stop()}},e)}));return function(t,r){return e.apply(this,arguments)}}(),Fn=function(e){var t=e.tracks,r=e.connection,i=e.labels,n=e.existedPublications,a=void 0===n?[]:n,o=e.mixedLocalAudioTrack,s={videoPubResultArr:[]},c=[];t.forEach(function(t){var r;if("audio"!==t.trackMediaType||t.source!==ve.MIC&&t.source!==ve.SCREENCAST)s.videoPubResultArr.push({publication:new Ln(_n(_n({},e),{},{tracks:[t]})),track:t});else{var i=a.find(function(e){var t,r,i;return"audio"===(null===(t=e.tracks)||void 0===t?void 0:t[0].trackMediaType)&&((null===(r=e.tracks)||void 0===r?void 0:r[0].source)===ve.MIC||(null===(i=e.tracks)||void 0===i?void 0:i[0].source)===ve.SCREENCAST)}),n=c.find(function(e){var t,r,i;return"audio"===(null===(t=e.tracks)||void 0===t?void 0:t[0].trackMediaType)&&((null===(r=e.tracks)||void 0===r?void 0:r[0].source)===ve.MIC||(null===(i=e.tracks)||void 0===i?void 0:i[0].source)===ve.SCREENCAST)});i?(i.tracks.push(t),r=i):n?(n.tracks.push(t),r=n):r=new Ln(_n(_n({},e),{},{tracks:[o]})),s.audioPubResult={publication:r,track:t}}});var u=t.filter(function(e){return"audio"===e.trackMediaType&&(e.source===ve.MIC||e.source===ve.SCREENCAST)});u.forEach(function(e){(null==e?void 0:e.source)===ve.MIC?o.setMicAudioTrack(e):o.setScreenAudioTrack(e)});var l=[],d=t.filter(function(e){return!("audio"===e.trackMediaType&&(e.source===ve.MIC||e.source===ve.SCREENCAST))});if(l.push.apply(l,Re(d)),u.length&&(null==o||o.updateMixedAudioTrackToPub(),o.isPublished()||l.push(o)),l.length){var p,f=new Promise(function(e,t){p=function(){var n=C(Oe.mark(function n(){var a,c;return Oe.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=1,Nn(l,r,i);case 1:return a=n.sent,c={connectionId:r.id,media:a,simulcast:er(l.find(function(e){return e.source===me.CAMERA})),simulcastVersion:"1.0",clientType:"web",supportTemporalLayer:!1,type:"webrtc"},n.abrupt("return",r.rtcSignaling.batchPublish(c).then(function(){var t=C(Oe.mark(function t(r){var i,n,a,c,l,d;return Oe.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(i=r.detailStatus,"ok"===(n=r.globalStatus)){t.next=1;break}return s.videoPubResultArr.forEach(function(e){e.error=Ze(e.track,n)}),s.audioPubResult&&(s.audioPubResult.error=Ze(s.audioPubResult.track,n)),t.abrupt("return",e(s));case 1:a=xn(i),t.prev=2,l=Oe.mark(function e(){var t,r,i,n,a,l,d;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:t=c.value,r=t.id,i=t.origin,n=t.msg,o.getTrackId()===i.id?s.audioPubResult&&(a=s.audioPubResult.publication,"ok"===n&&a?(a.initInner(r),o.setPublication(a),u.forEach(function(e){(null==e?void 0:e.source)===ve.MIC&&e.muted&&e.emit(Ue,"mute")})):"ok"!==n&&(s.audioPubResult.error=Ze(s.audioPubResult.track,n))):(l=s.videoPubResultArr.find(function(e){return e.track.getTrackId()===i.id}),d=(l||{}).publication,"ok"===n&&d?d.initInner(r):"ok"!==n&&(l.error=Ze(l.track,n)));case 1:case"end":return e.stop()}},e)}),a.s();case 3:if((c=a.n()).done){t.next=5;break}return t.delegateYield(l(),"t0",4);case 4:t.next=3;break;case 5:t.next=7;break;case 6:t.prev=6,d=t.catch(2),a.e(d);case 7:return t.prev=7,a.f(),t.finish(7);case 8:e(s);case 9:case"end":return t.stop()}},t,null,[[2,6,7,8]])}));return function(e){return t.apply(this,arguments)}}()).catch(function(e){Dn.info("batchPublishStart error",e),t(e)}));case 2:case"end":return n.stop()}},n)}));return function(){return n.apply(this,arguments)}}()});return r.addTask(p),f}return Promise.resolve({videoPubResultArr:[],audioPubResult:void 0})},Un=function(){var e=C(Oe.mark(function e(t,r){var i,n;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=new Promise(function(e,n){i=function(){var i=C(Oe.mark(function i(){var a,o;return Oe.wrap(function(i){for(;;)switch(i.prev=i.next){case 0:return a=t.filter(function(e){var t;return"audio"===(null===(t=e.tracks)||void 0===t||null===(t=t[0])||void 0===t?void 0:t.trackMediaType)}).map(function(e){return e.id}),o=t.filter(function(e){var t;return"video"===(null===(t=e.tracks)||void 0===t||null===(t=t[0])||void 0===t?void 0:t.trackMediaType)}).map(function(e){return e.id}),i.next=1,hn(r.connection,t);case 1:r.connection.rtcSignaling.batchUnPublish({connectionId:r.connection.id,audio:a,video:o}).then(function(){t.forEach(function(e){e.clear()}),e(void 0)}).catch(n);case 2:case"end":return i.stop()}},i)}));return function(){return i.apply(this,arguments)}}()}),r.connection.addTask(i),e.abrupt("return",n);case 1:case"end":return e.stop()}},e)}));return function(t,r){return e.apply(this,arguments)}}();function Gn(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Gn=function(){return!!e})()}var Vn={audioCodec:"",videoCodec:"",roundTripTime:-1,availableOutgoingBitrate:-1},Bn=function(){function t(e){var r,i,n,a;return j(this,t),i=this,n=G(n=t),r=U(i,Gn()?Reflect.construct(n,[],G(i).constructor):n.apply(i,a)),Object.defineProperty(r,"connectionMetrics",{enumerable:!0,configurable:!0,writable:!0,value:Object.assign({},Vn)}),Object.defineProperty(r,"pc",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),r.pc=e.pc,r}return B(t,Ei),F(t,[{key:"extractMetrics",value:function(t){var r=Object.assign({},this.connectionMetrics),i="";return t.forEach(function(t){var n;if(!t.isRemote)if(/local-candidate/i.test(t.type)&&t.id===i)e.networkType=(null!==(n=t.networkType)&&void 0!==n?n:e.networkType).replace("vpn","unknown");else if(/candidate-pair/i.test(t.type)&&"succeeded"===t.state)i=t.localCandidateId,e.isFirefox()||(r.roundTripTime=1e3*(t.currentRoundTripTime||t.totalRoundTripTime/t.responsesReceived)),void 0!==t.availableOutgoingBitrate&&(r.availableOutgoingBitrate=t.availableOutgoingBitrate);else if(/codec/i.test(t.type)){var a,o;null!==(a=t.mimeType)&&void 0!==a&&a.includes("audio")?r.audioCodec=t.mimeType.replace("audio/",""):null!==(o=t.mimeType)&&void 0!==o&&o.includes("video")&&(r.videoCodec=t.mimeType.replace("video/",""),r.sdpFmtpLine=t.sdpFmtpLine)}}),this.connectionMetrics=Object.assign({},r),this.connectionMetrics}},{key:"makeReport",value:function(){var e=this;this.getStats().then(function(t){e.emit("metrics",t)})}},{key:"getStats",value:function(){var e=this;if(!this.pc)return Promise.resolve({});if(!this.pc.getStats)throw new n(a.BrowserNotSupported,"getStats is not supported");return this.pc.getStats(null).then(function(t){return e.extractMetrics(t)})}}])}();function Hn(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return qn(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?qn(e,t):void 0}}(e))||t){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function qn(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function Wn(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Wn=function(){return!!e})()}var Yn=function(){function t(e){var r,i,n,a,o,s;j(this,t),i=this,n=G(n=t),r=U(i,Wn()?Reflect.construct(n,[],G(i).constructor):n.apply(i,a)),Object.defineProperty(r,"pc",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"rtcSignaling",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"state",{enumerable:!0,configurable:!0,writable:!0,value:Pe.New}),Object.defineProperty(r,"processingExchangeSdp",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"monitor",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"peerConnectionTimer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"createPeerConnectionPromise",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"peerConnectionStats",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"reporter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"logger",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"createPeerConnectionTimer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"mcuAudioStream",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"idToTransceiverMap",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"mcuAudioTranceiver",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"idToTransceiversMap",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"mcuAudioTranceivers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"localSDP",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"remoteSDP",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"subSdpFmtpLines",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"sessionManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"prevId",{enumerable:!0,configurable:!0,writable:!0,value:""}),Object.defineProperty(r,"offerSDP",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"clientFailoverTimer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"audioSfuSsrcs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"enquenTask",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"direction",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"startSinglePC",{enumerable:!0,configurable:!0,writable:!0,value:(o=C(Oe.mark(function e(){var t,i=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=i.length>0&&void 0!==i[0]&&i[0],"uplink"===r.direction?(r.pc.addTransceiver("audio",{direction:"sendonly"}),r.pc.addTransceiver("video",{direction:"sendonly"})):(r.mcuAudioStream=null,r.mcuAudioTranceiver=r.pc.addTransceiver("audio",{direction:"recvonly"}),r.pc.addTransceiver("video",{direction:"recvonly"})),t&&In(r),e.next=1,r.exchangeSdpForCreatePc(t);case 1:r.state=Pe.Idle,r.enquenTask.start();case 2:case"end":return e.stop()}},e)})),function(){return o.apply(this,arguments)})}),Object.defineProperty(r,"onIceGatheringStateChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=e.target.iceGatheringState;r.logger.info("connectionId:".concat(r.id," ice gathering state: ").concat(t))}}),Object.defineProperty(r,"exchangeSdpForCreatePc",{enumerable:!0,configurable:!0,writable:!0,value:(s=C(Oe.mark(function e(){var t,i,n,a,o,s,c,u,l,d=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=d.length>0&&void 0!==d[0]&&d[0],r.processingExchangeSdp=!0,e.prev=1,e.next=2,r.pc.createOffer();case 2:return i=e.sent,r.logger.info("connectionId:".concat(r.id," origin offer"),i),t&&(i.sdp=R.write(Tn(r.localSDP,R.parse(i.sdp)))),n=En(i.sdp,r),r.offerSDP=n,i={type:"offer",sdp:R.write(n)},e.next=3,r.pc.setLocalDescription(i);case 3:return r.logger.info("connectionId:".concat(r.id," set local sdp success")),a={direction:"downlink"!==r.direction?"in":"out",sdpOffer:i.sdp,connectionId:r.id,isFailover:t,optionsJsonStr:JSON.stringify({supportCVO:1})},t&&((o=R.parse(i.sdp)).media=o.media.slice(0,2),o.groups=[{mids:"0 1",type:"BUNDLE"}],a.sdpOffer=R.write(o)),s=function(){var e=C(Oe.mark(function e(){var t,i,n,o;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,"connected"===(null===(t=r.sessionManager)||void 0===t||null===(t=t.serviceManager)||void 0===t||null===(t=t.client)||void 0===t?void 0:t.connectionState)){e.next=1;break}throw new Error("signaling disconnected");case 1:if(a.isFailover||!r.prevId){e.next=3;break}return e.next=2,r.stopSinglePC(!0);case 2:r.id="".concat(r.direction,"_").concat(y()),a.connectionId=r.id;case 3:return r.prevId=r.id,e.next=4,r.rtcSignaling.createPeerConnection(a);case 4:return i=e.sent,n=i.sdpAnswer,r.logger.info("connectionId:".concat(r.id," receive answer success")),e.abrupt("return",n);case 5:throw e.prev=5,o=e.catch(0),r.logger.error("connectionId:".concat(r.id," signal createpc failed: ").concat(o)),o;case 6:case"end":return e.stop()}},e,null,[[0,5]])}));return function(){return e.apply(this,arguments)}}(),e.next=4,bt({fn:s,times:3,interval:2e3});case 4:return c=e.sent,u=On(c,r,t),e.next=5,r.pc.setRemoteDescription({sdp:u,type:"answer"});case 5:e.next=7;break;case 6:return e.prev=6,l=e.catch(1),r.logger.error("connectionId:".concat(r.id," Failed to exchangeSDP. Message: ").concat(l.message)),r.fireEndedEvent(),e.abrupt("return",Promise.reject(l));case 7:return e.prev=7,r.processingExchangeSdp=!1,e.finish(7);case 8:case"end":return e.stop()}},e,null,[[1,6,7,8]])})),function(){return s.apply(this,arguments)})}),r.pc=null;var c=e.direction,u=e.sessionManager;return r.rtcSignaling=u.serviceManager.rtcSignaling,r.sessionManager=u,r.reporter=u.reporter,r.logger=r.reporter.getLoggerWithPrefix("[rtc-peerconn]"),r.enquenTask=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=[],r=0,i=!1,n=function(){for(;r<e&&t.length;){r++;var i=t.shift();i&&i().finally(function(){r--,n()})}};return{add:function(e){t.push(e),i&&n()},start:function(){i=!0,n()}}}(),r.subSdpFmtpLines=[],r.direction=c,r.idToTransceiverMap=new Map,r.idToTransceiversMap=new Map,r.createPeerConnection(),r.id="".concat(r.direction,"_").concat(y()),r}return B(t,c),F(t,[{key:"stopSinglePC",value:function(){return arguments.length>0&&void 0!==arguments[0]&&arguments[0]||this.emit("ended"),this.rtcSignaling.closePeerConnection({connectionId:this.id,direction:"downlink"===this.direction?"out":"in"})}},{key:"closePeerConnection",value:function(){this.pc&&(this.logger.info("connectionId:".concat(this.id," clear RTC PeerConnection.")),this.detachEvents(),"closed"!==this.pc.signalingState&&this.pc.close(),this.pc=null)}},{key:"onTrack",value:function(e){var t=e.track,r=e.streams;"audio"===t.kind?Ke.audioSFU?this.emit("track",t,r[0]):this.mcuAudioStream=new MediaStream([t]):this.emit("track",t)}},{key:"fireEndedEvent",value:function(){this.state!==Pe.Ended&&(this.state=Pe.Ended,this.emit("ended"))}},{key:"onIceConnectionStateChange",value:function(){var e=this.pc.iceConnectionState;this.logger.info("connectionId:".concat(this.id," ICE connection state changed to ").concat(e))}},{key:"onIceCandidate",value:function(e){var t,r=(t=null==e?void 0:e.candidate)?{address:t.address,candidate:t.candidate,component:t.component,foundation:t.foundation,port:t.port,priority:t.priority,protocol:t.protocol,relatedAddress:t.relatedAddress,relatedPort:t.relatedPort,relayProtocol:t.relayProtocol,sdpMLineIndex:t.sdpMLineIndex,sdpMid:t.sdpMid,tcpType:t.tcpType,type:t.type,usernameFragment:t.usernameFragment}:t;this.logger.info("connectionId:".concat(this.id," onIceCandidate"),r)}},{key:"clearPcForReoffer",value:(r=C(Oe.mark(function e(){var t;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.state!==Pe.New){e.next=1;break}return e.abrupt("return",Promise.reject());case 1:return this.logger.info("connectionId:".concat(this.id,": start client reoffer")),e.prev=2,e.next=3,this.stopSinglePC(!0);case 3:this.removeAllListeners(),e.next=5;break;case 4:e.prev=4,t=e.catch(2),this.logger.info("connectionId:".concat(this.id," client reoffer close failed ").concat(g(t)));case 5:this.closePeerConnection();case 6:case"end":return e.stop()}},e,this,[[2,4]])})),function(){return r.apply(this,arguments)})},{key:"addTask",value:function(e){this.enquenTask.add(e)}},{key:"onConnectionStateChange",value:function(){var e=this,t=this.pc.connectionState;this.reporter.trace.connectionsEvent(this.id,t),this.logger.info("connectionId:".concat(this.id," connection state changed to ").concat(t)),"failed"===t||"closed"===t?(this.clientFailoverTimer&&m(this.clientFailoverTimer),this.clientFailoverTimer=d(function(){e.state!==Pe.New&&(e.logger.info("connectionId:".concat(e.id,": emit reoffer")),e.emit("reoffer"))},1e3)):"connected"===t&&(this.clientFailoverTimer&&(m(this.clientFailoverTimer),this.clientFailoverTimer=null),this.createPeerConnectionTimer&&(m(this.createPeerConnectionTimer),this.createPeerConnectionTimer=null))}},{key:"getPeerConnectionConfig",value:function(){var t=this.sessionManager.serviceManager.iceConfig,r=t.username,i=t.password,n=t.port,a=t.iceServerList,o={bundlePolicy:"max-bundle",iceTransportPolicy:"all",sdpSemantics:"unified-plan"};if(a.length){var s,c=[],u=Hn(a);try{for(u.s();!(s=u.n()).done;){var l=s.value;c.push("turn:".concat(l,":").concat(n,"?transport=udp"),"turn:".concat(l,":").concat(n,"?transport=tcp"))}}catch(e){u.e(e)}finally{u.f()}e.isFirefox()&&c.splice(4,2),o.iceServers=[{urls:c,username:r,credential:i}]}return this.logger.info("PeerConnectionConfig",o),o}},{key:"createPeerConnection",value:function(){var e=this;this.pc?this.logger.warn("connectionId:".concat(this.id," A PeerConnection was created. Cannot create again for the same PeerConnectionChannel.")):(this.pc=new RTCPeerConnection(this.getPeerConnectionConfig()),this.attachEvents(),this.createPeerConnectionTimer=d(function(){var t;"connected"===(null===(t=e.pc)||void 0===t?void 0:t.connectionState)||e.processingExchangeSdp||(e.logger.info("connectionId:".concat(e.id,": emit reoffer")),e.emit("reoffer"))},Ke.connectPcTimeoutMs))}},{key:"attachEvents",value:function(){var e=this;this.pc&&(this.pc.ontrack=function(t){e.onTrack(t)},this.pc.oniceconnectionstatechange=function(){e.onIceConnectionStateChange()},this.pc.onicecandidate=function(t){e.onIceCandidate(t)},this.pc.onconnectionstatechange=function(){e.onConnectionStateChange()},this.pc.onicegatheringstatechange=function(t){e.onIceGatheringStateChange(t)},this.monitor=new Bn(this),this.monitor.on("metrics",function(t){e.peerConnectionStats=t}))}},{key:"getStats",value:function(){var e,t,r=this;return this.monitor?null===(e=this.monitor)||void 0===e||null===(t=e.getStats)||void 0===t?void 0:t.call(e).then(function(e){r.peerConnectionStats=e}):Promise.resolve()}},{key:"detachEvents",value:function(){this.createPeerConnectionTimer&&m(this.createPeerConnectionTimer),this.clientFailoverTimer&&m(this.clientFailoverTimer),this.pc&&(this.pc.ontrack=null,this.pc.oniceconnectionstatechange=null,this.pc.onconnectionstatechange=null,this.pc.onicegatheringstatechange=null,this.monitor.stop(),this.monitor.removeAllListeners(),this.monitor=null)}},{key:"reoffer",value:function(){return this.state===Pe.New?Promise.reject():(this.logger.info("connectionId:".concat(this.id," start reoffer")),this.closePeerConnection(),this.idToTransceiverMap=new Map,this.idToTransceiversMap=new Map,this.createPeerConnection(),this.state=Pe.New,this.startSinglePC(!0))}},{key:"handleHighProfileFallback",value:function(){Ke.downlinkForbidHighProfile=!0,this.logger.info("connectionId:".concat(this.id," start reoffer for disable highProfile")),this.emit("reoffer")}},{key:"handleVideoSubStucked",value:function(e){this.logger.info("connectionId".concat(this.id,": start reoffer for sub:").concat(e.id," video stucked")),this.idToTransceiverMap.delete(e.stream.id),this.sessionManager.handleStuckResubscribe([e])}}]);var r}();function Qn(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Qn=function(){return!!e})()}var Jn=function(){function e(t){var r,i,n,a;return j(this,e),i=this,n=G(n=e),r=U(i,Qn()?Reflect.construct(n,[],G(i).constructor):n.apply(i,a)),Object.defineProperty(r,"_micAudioTrack",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"_screenAudioTrack",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"mixedAudioTrackResult",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(r,"publication",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"serviceManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"_trackId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"logger",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"trackMediaType",{enumerable:!0,configurable:!0,writable:!0,value:"audio"}),Object.defineProperty(r,"audioContext",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"selfMicMutedProperty",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"isPublished",{enumerable:!0,configurable:!0,writable:!0,value:function(){return!!r.publication}}),Object.defineProperty(r,"setPublication",{enumerable:!0,configurable:!0,writable:!0,value:function(e){r.logger.info("setPublication",null==e?void 0:e.id),r.publication=e}}),Object.defineProperty(r,"getPublication",{enumerable:!0,configurable:!0,writable:!0,value:function(){return r.publication}}),Object.defineProperty(r,"micTrackEventHandler",{enumerable:!0,configurable:!0,writable:!0,value:r._audioTrackInnerEventHandler.bind(r,ve.MIC)}),Object.defineProperty(r,"screenAudioTrackEventHandler",{enumerable:!0,configurable:!0,writable:!0,value:r._audioTrackInnerEventHandler.bind(r,ve.SCREENCAST)}),Object.defineProperty(r,"updateMixedAudioTrackToPub",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e,t,i,n,a,o,s;r.logger.info("updateMixTrack",null===(e=r._micAudioTrack)||void 0===e?void 0:e.getTrackId(),null===(t=r._screenAudioTrack)||void 0===t?void 0:t.getTrackId()),null===(i=r.mixedAudioTrackResult)||void 0===i||null===(i=i.mixedTrack)||void 0===i||i.stop(),r.mixedAudioTrackResult=r.mixAudioTracks(null===(n=r._micAudioTrack)||void 0===n?void 0:n.getMediaStreamTrack(),null===(a=r._screenAudioTrack)||void 0===a?void 0:a.getMediaStreamTrack()),null===(o=r.publication)||void 0===o||o.replaceTrack(null===(s=r.mixedAudioTrackResult)||void 0===s?void 0:s.mixedTrack)}}),Object.defineProperty(r,"clear",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e;r.logger.info("clear"),null===(e=r.mixedAudioTrackResult)||void 0===e||null===(e=e.mixedTrack)||void 0===e||e.stop(),r._micAudioTrack=null,r._screenAudioTrack=null,r.publication=void 0}}),Object.defineProperty(r,"getMediaStreamTrack",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e;return(null===(e=r.mixedAudioTrackResult)||void 0===e?void 0:e.mixedTrack)||null}}),r.logger=t.reporter.getLoggerWithPrefix("[rtc-mixedAudioTrack]"),r.serviceManager=t,r._trackId="audio_".concat(y(6)),r}return B(e,c),F(e,[{key:"getTrackId",value:function(){return this._trackId}},{key:"getScreenAudioTrack",value:function(){return this._screenAudioTrack}},{key:"setScreenAudioTrack",value:function(e){var t,r,i;(this.logger.info("setScreenAudioTrack",null==e?void 0:e.getTrackId()),null===(t=this._screenAudioTrack)||void 0===t||t.off(Ue,this.screenAudioTrackEventHandler),this._screenAudioTrack=e,null===(r=this._screenAudioTrack)||void 0===r||r.on(Ue,this.screenAudioTrackEventHandler),e)?e.muted||(this.notifyScreenAudioEnabled(!0),null===(i=this.publication)||void 0===i||i.unmute()):this.notifyScreenAudioEnabled(!1)}},{key:"getMicAudioTrack",value:function(){return this._micAudioTrack}},{key:"setMicAudioTrack",value:function(e){var t,r;this.logger.info("setMicAudioTrack",null==e?void 0:e.getTrackId()),null===(t=this._micAudioTrack)||void 0===t||t.off(Ue,this.micTrackEventHandler),this._micAudioTrack=e,null===(r=this._micAudioTrack)||void 0===r||r.on(Ue,this.micTrackEventHandler),this._micAudioTrack&&(this._micAudioTrack.muted&&!this.selfMicMutedProperty?(this.setSelfMicMutedProperty(!0),this.notifyMicDeviceMuted(!0)):!this._micAudioTrack.muted&&this.selfMicMutedProperty&&(this.setSelfMicMutedProperty(!1),this.notifyMicDeviceMuted(!1)))}},{key:"_audioTrackInnerEventHandler",value:function(e,t){if("localMixedAudioReplaceTrack"===t)this.updateMixedAudioTrackToPub();else if("stop"===t){var r,i,n;if(e===ve.MIC?this.setMicAudioTrack(null):this.setScreenAudioTrack(null),this.updateMixedAudioTrackToPub(),null===(r=this.mixedAudioTrackResult)||void 0===r||!r.mixedTrack)if(this.logger.warn("mixedAudioTrackResult is null, stop pub audio, pubid=",null===(i=this.publication)||void 0===i?void 0:i.id),this.publication)null===(n=this.publication)||void 0===n||n.stop(),this.publication=null}else if("mute"===t){e===ve.SCREENCAST?this.notifyScreenAudioEnabled(!1):this.selfMicMutedProperty||(this.setSelfMicMutedProperty(!0),this.notifyMicDeviceMuted(!0));var a=e===ve.MIC?this._screenAudioTrack:this._micAudioTrack;a&&!a.muted&&a.enabled||this.publication.mute()}else"unmute"===t?(e===ve.SCREENCAST?this.notifyScreenAudioEnabled(!0):this.selfMicMutedProperty&&(this.setSelfMicMutedProperty(!1),this.notifyMicDeviceMuted(!1)),this.publication.unmute()):this.logger.info("unhandled action",t)}},{key:"setSelfMicMutedProperty",value:function(e){this.selfMicMutedProperty=e}},{key:"notifyMicDeviceMuted",value:function(e){return this.serviceManager.rtcUserManager.notifyParticipantProperties(JSON.stringify({mute_audio_record:e?1:0}))}},{key:"notifyScreenAudioEnabled",value:function(e){return this.serviceManager.rtcUserManager.notifyParticipantProperties(JSON.stringify({enable_sys_audio:e?1:0}))}},{key:"mixAudioTracks",value:function(e,t){var r;if(!e&&!t)return null;var i=jt();this.audioContext=i;var n=i.createMediaStreamDestination();return e&&i.createMediaStreamSource(new MediaStream([e])).connect(n),t&&i.createMediaStreamSource(new MediaStream([t])).connect(n),{mixedTrack:null===(r=n.stream.getAudioTracks())||void 0===r?void 0:r[0],isOriginTrack:!1}}}])}(),Kn=new(F(function e(){j(this,e),Object.defineProperty(this,"roomId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"participantId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"myUid",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"joinInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"joinResponse",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}));function zn(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,i)}return r}function $n(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?zn(Object(r),!0).forEach(function(t){Ee(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):zn(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function Xn(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return Zn(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Zn(e,t):void 0}}(e))||t){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Zn(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function ea(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(ea=function(){return!!e})()}var ta=function(){function e(t,r){var i,n,a,o,s,c,u;return j(this,e),n=this,a=G(a=e),i=U(n,ea()?Reflect.construct(a,[],G(n).constructor):a.apply(n,o)),Object.defineProperty(i,"client",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(i,"sessions",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"networkQualityInterval",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"lastChannelNetworkQuality",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"uplink",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"downlink",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"streamIdToSessionId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"serviceManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"reporter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"logger",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"mixedLocalAudioTrack",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"republishPromise",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"resubscribePromise",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"handleRepublish",{enumerable:!0,configurable:!0,writable:!0,value:(s=C(Oe.mark(function e(){return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:i.republishPromise=i._handleRepub(),i.republishPromise.finally(function(){i.republishPromise=null});case 1:case"end":return e.stop()}},e)})),function(){return s.apply(this,arguments)})}),Object.defineProperty(i,"handleResubscribe",{enumerable:!0,configurable:!0,writable:!0,value:(c=C(Oe.mark(function e(){var t,r=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:t=r.length>0&&void 0!==r[0]&&r[0],i.resubscribePromise=i._handleResubscribe(t),i.resubscribePromise.finally(function(){i.resubscribePromise=null});case 1:case"end":return e.stop()}},e)})),function(){return c.apply(this,arguments)})}),Object.defineProperty(i,"_handleResubscribe",{enumerable:!0,configurable:!0,writable:!0,value:(u=C(Oe.mark(function e(){var t,r,n,a,o,s,c,u,l,d,p,f,v,m,h,g,b,y,k,S,P,w,T,M,O,E,I,A,R,_,x,C,j,D,L,N,F,U,G,V,B,H,q,W=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:r=W.length>0&&void 0!==W[0]&&W[0],i.logger.info("handle resub fromServer=",r),n=r?"server":"client",a=[],o=Xn(i.sessions.values());try{for(o.s();!(s=o.n()).done;)(c=s.value)instanceof Ji&&c.state===Se.Processing&&(u=null,"video"===c.targetMediaType?(l=i.serviceManager.rtcUserManager.users.get(c.uid),u="camera"===c.stream.media.video.source?null==l?void 0:l.videoTrack:null==l?void 0:l.auxiliaryTrack):"audio"===c.targetMediaType?u=i.serviceManager.remoteAudioTrack:i.logger.error("unknown media type for resub",c.stream),a.push({stream:c.stream,uid:c.uid,targetMediaType:c.targetMediaType,resolutionInfo:c.userConfigResolution,session:c,track:u}))}catch(e){o.e(e)}finally{o.f()}if(d=a.map(function(e){return e.uid}).join(),a.length){i.logger.info("resubscribe start ".concat(d)),i.client.emit("media-reconnect-start",i.client.userId),p=Xn(a);try{for(p.s();!(f=p.n()).done;)h=f.value,i.logger.info("emitted sub-media-reconnect-started",null===(v=h.track)||void 0===v?void 0:v.getTrackId()),i.client.emit("sub-media-reconnect-started",null===(m=h.track)||void 0===m?void 0:m.getTrackId())}catch(e){p.e(e)}finally{p.f()}}g=null===(t=i.downlink)||void 0===t?void 0:t.id,b=Kn.participantId,y=Date.now(),k=y+Be,S=!1,P=i.serviceManager.rtcUserManager.currentSelfPid,w=0;case 1:if(!(w<2e3)){e.next=13;break}if(!((O=Date.now())<y+w*He)){e.next=2;break}return e.next=2,yt(y+w*He-O);case 2:if(i.logger.debug("resub round=".concat(w,", channelconnect=").concat(i.serviceManager.internalChannel.connectionState)),!(Date.now()>k&&"reconnecting"!==(null===(T=i.serviceManager.internalChannel)||void 0===T?void 0:T.connectionState))){e.next=3;break}return i.logger.error("resub fail, timeout",Be),e.abrupt("continue",13);case 3:if("disconnected"!==(null===(M=i.serviceManager.internalChannel)||void 0===M?void 0:M.connectionState)){e.next=4;break}return i.logger.error("resub fail, chn finally disconnected"),e.abrupt("continue",13);case 4:if(b===Kn.participantId){e.next=5;break}return i.logger.error("resub fail, abort resub for my participantId changed"),e.abrupt("continue",13);case 5:if("reconnecting"!==i.serviceManager.internalChannel.connectionState&&"connecting"!==i.serviceManager.internalChannel.connectionState){e.next=6;break}return e.abrupt("continue",12);case 6:return e.prev=6,i.reporter.trace.connectionsEvent(g,"".concat(n,"ReofferStart")),e.next=7,null===(E=i.downlink)||void 0===E?void 0:E.clearPcForReoffer();case 7:if(i.downlink=null,!a.length){e.next=10;break}return e.next=8,i.batchSubscribe(a);case 8:if(I=e.sent,i.serviceManager.rtcUserManager.currentSelfPid===P){e.next=9;break}return i.logger.error("abort resubscribe for selfCurrentPid changed from to",P,i.serviceManager.rtcUserManager.currentSelfPid),e.abrupt("return");case 9:A=Xn(I);try{for(A.s();!(R=A.n()).done;)_=R.value,x=_.subscription,C=_.error,x&&!C&&i.handleResubSuccess(x)}catch(e){A.e(e)}finally{A.f()}i.reporter.trace.connectionsEvent(g,"".concat(n,"ReofferSuccess")),i.logger.debug("resub round=".concat(w," resubscribe ").concat(d," success")),i.client.emit("media-reconnect-end",d),j=Xn(a);try{for(j.s();!(D=j.n()).done;)F=D.value,i.logger.info("emitted sub-media-reconnect-succeeded",null===(L=F.track)||void 0===L?void 0:L.getTrackId()),i.client.emit("sub-media-reconnect-succeeded",null===(N=F.track)||void 0===N?void 0:N.getTrackId())}catch(e){j.e(e)}finally{j.f()}case 10:return S=!0,e.abrupt("continue",13);case 11:if(e.prev=11,q=e.catch(6),i.logger.debug("resub round=".concat(w," resubscribe failed for"),q),i.serviceManager.rtcUserManager.currentSelfPid===P){e.next=12;break}return i.logger.error("abort resubscribe for selfCurrentPid changed from to",P,i.serviceManager.rtcUserManager.currentSelfPid),e.abrupt("return");case 12:w++,e.next=1;break;case 13:if(!S){if(i.reporter.trace.connectionsEvent(g,"".concat(n,"ReofferFailed")),i.downlink.clearPcForReoffer(),i.downlink=null,a.length){i.client.emit("media-reconnect-end",d),U=Xn(a);try{for(U.s();!(G=U.n()).done;)H=G.value,i.logger.info("emitted sub-media-reconnect-failed",null===(V=H.track)||void 0===V?void 0:V.getTrackId()),i.client.emit("sub-media-reconnect-failed",null===(B=H.track)||void 0===B?void 0:B.getTrackId())}catch(e){U.e(e)}finally{U.f()}}a.forEach(function(e){if(i.removeSession(e.session.id),"audio"===e.session.targetMediaType){var t,r;null===(t=i.serviceManager.remoteAudioTrack)||void 0===t||t.stopPlay(),null===(r=i.serviceManager.remoteAudioTrack)||void 0===r||null===(r=r.getMediaStreamTrack())||void 0===r||r.stop(),i.serviceManager.remoteAudioTrack=null}else{var n,a,o,s,c=i.serviceManager.rtcUserManager.users.get(e.session.uid);"camera"===e.session.stream.media.video.source?(null===(n=c.videoTrack)||void 0===n||n.stopPlay(),null===(a=c.videoTrack)||void 0===a||null===(a=a.getMediaStreamTrack())||void 0===a||a.stop(),c.videoTrack=null):(null===(o=c.auxiliaryTrack)||void 0===o||o.stopPlay(),null===(s=c.auxiliaryTrack)||void 0===s||null===(s=s.getMediaStreamTrack())||void 0===s||s.stop(),c.auxiliaryTrack=null)}})}case 14:case"end":return e.stop()}},e,null,[[6,11]])})),function(){return u.apply(this,arguments)})}),i.serviceManager=r,i.client=t,i.reporter=r.reporter,i.logger=i.reporter.getLoggerWithPrefix("[rtc-sessionMgr]"),i.streamIdToSessionId=new Map,i.sessions=new Map,i.mixedLocalAudioTrack=new Jn(r),i.handleMediaMessage=i.handleMediaMessage.bind(i),i.handleServerFailover=i.handleServerFailover.bind(i),i}return B(e,c),F(e,[{key:"getOrCreatePeerConnection",value:(h=C(Oe.mark(function e(t){var r=this;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("uplink"!==t){e.next=3;break}if(this.uplink){e.next=2;break}return this.uplink=new Yn({direction:t,sessionManager:this}),e.next=1,this.uplink.startSinglePC();case 1:this.uplink.on("reoffer",this.handleRepublish),this.uplink.on("ended",function(){r.uplink=null});case 2:return e.abrupt("return",this.uplink);case 3:if(this.downlink){e.next=5;break}return this.downlink=new Yn({direction:t,sessionManager:this}),e.next=4,this.downlink.startSinglePC();case 4:this.downlink.on("reoffer",this.handleResubscribe),this.downlink.on("ended",function(){r.downlink=null});case 5:return e.abrupt("return",this.downlink);case 6:case"end":return e.stop()}},e,this)})),function(e){return h.apply(this,arguments)})},{key:"_handleRepub",value:(v=C(Oe.mark(function e(){var t,r,i,n,a,o,s,c,u,l,d,p,f,v,m,h,g,b,y,k,S,P,w,T,M,O;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.logger.info("handle repub"),r=Re(this.client.localTracks),this.mixedLocalAudioTrack.clear(),r.length){this.client.emit("media-reconnect-start",this.client.userId),i=Xn(r);try{for(i.s();!(n=i.n()).done;)a=n.value,this.logger.info("emitted pub-media-reconnect-started",a.getTrackId()),this.client.emit("pub-media-reconnect-started",a.getTrackId())}catch(e){i.e(e)}finally{i.f()}}o=null===(t=this.uplink)||void 0===t?void 0:t.id,s=Kn.participantId,c=Date.now(),u=c+Be,l=!1,d=0,d=0;case 1:if(!(d<Be)){e.next=12;break}if(!((v=Date.now())<c+d*He)){e.next=2;break}return e.next=2,yt(c+d*He-v);case 2:if(this.logger.debug("repub round=".concat(d,", channelconnect=").concat(this.serviceManager.internalChannel.connectionState)),!(Date.now()>u&&"reconnecting"!==(null===(p=this.serviceManager.internalChannel)||void 0===p?void 0:p.connectionState))){e.next=3;break}return this.logger.error("repub fail, timeout",Be),e.abrupt("continue",12);case 3:if("disconnected"!==(null===(f=this.serviceManager.internalChannel)||void 0===f?void 0:f.connectionState)){e.next=4;break}return this.logger.error("repub fail, chn finally disconnected"),e.abrupt("continue",12);case 4:if(s===Kn.participantId){e.next=5;break}return this.logger.error("repub fail, abort repub for my participantId changed"),e.abrupt("continue",12);case 5:if("connected"===this.serviceManager.internalChannel.connectionState){e.next=6;break}return e.abrupt("continue",11);case 6:return e.prev=6,this.reporter.trace.connectionsEvent(o,"clientReofferStart"),this.logger.info("repub round=".concat(d,", clearPcForReoffer start ").concat(r.map(function(e){return e.trackMediaType}).join())),e.next=7,null===(m=this.uplink)||void 0===m?void 0:m.clearPcForReoffer();case 7:if(this.uplink=null,this.logger.info("repub round=".concat(d,", batchPublish start ").concat(r.map(function(e){return e.trackMediaType}).join())),!r.length){e.next=9;break}return e.next=8,this.batchPublish(r);case 8:this.logger.info("".concat(this.client.userId," batchPublish finished for repub")),this.logger.info("emitted media-reconnect-end",this.client.userId),this.client.emit("media-reconnect-end",this.client.userId),h=Xn(r);try{for(h.s();!(g=h.n()).done;)b=g.value,this.logger.info("emitted pub-media-reconnect-succeeded",b.getTrackId()),this.client.emit("pub-media-reconnect-succeeded",b.getTrackId())}catch(e){h.e(e)}finally{h.f()}case 9:return this.reporter.trace.connectionsEvent(o,"clientReofferSuccess"),l=!0,e.abrupt("continue",12);case 10:e.prev=10,M=e.catch(6),this.logger.error("".concat(this.client.userId," republish failed for"),M);case 11:d++,e.next=1;break;case 12:if(this.logger.info("break from repub loop roundNum, connectionstate",d,this.serviceManager.internalChannel.connectionState),l){e.next=17;break}if(this.reporter.trace.connectionsEvent(o,"clientReofferFailed"),"connected"!==this.serviceManager.internalChannel.connectionState){e.next=16;break}return e.prev=13,this.logger.info("unpub all tracks after repub failed"),e.next=14,this.serviceManager.unpublish(r);case 14:e.next=16;break;case 15:e.prev=15,O=e.catch(13),this.logger.info("err for unpub after repub failed",O);case 16:if(null===(y=this.uplink)||void 0===y||y.clearPcForReoffer(),this.uplink=null,r.length){this.client.emit("media-reconnect-end",this.client.userId),k=Xn(r);try{for(k.s();!(S=k.n()).done;)P=S.value,(w=this.streamIdToSessionId.get(P.getTrackId()))&&(this.logger.info("clear old publication for repub failed",w),null===(T=this.sessions.get(w))||void 0===T||T.clear(),this.sessions.delete(w)),this.logger.info("emitted pub-media-reconnect-failed",P.getTrackId()),this.client.emit("pub-media-reconnect-failed",P.getTrackId())}catch(e){k.e(e)}finally{k.f()}}case 17:case"end":return e.stop()}},e,this,[[6,10],[13,15]])})),function(){return v.apply(this,arguments)})},{key:"handleStuckResubscribe",value:(f=C(Oe.mark(function e(t){var r,i,n,a,o,s,c,u,l,d,p,f;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("connected"===this.serviceManager.internalChannel.connectionState){e.next=1;break}return this.logger.info("ignore for inner not connected"),e.abrupt("return");case 1:r=[],i=Xn(t);try{for(i.s();!(n=i.n()).done;)(a=n.value)instanceof Ji&&a.state===Se.Processing&&(r.push({stream:a.stream,uid:a.uid,targetMediaType:a.targetMediaType,resolutionInfo:a.userConfigResolution,session:a,profileFallback:!0}),this.removeSession(a.id))}catch(e){i.e(e)}finally{i.f()}return o=r.map(function(e){return e.uid}).join(),this.client.emit("media-reconnect-start",o),this.logger.info("resubscribe ".concat(o," start")),e.prev=2,e.next=3,this.batchUnscribe(r);case 3:return e.next=4,this.batchSubscribe(r);case 4:s=e.sent,c=Xn(s);try{for(c.s();!(u=c.n()).done;)l=u.value,d=l.subscription,p=l.error,d&&!p&&this.handleResubSuccess(d)}catch(e){c.e(e)}finally{c.f()}this.client.emit("media-reconnect-end",o),e.next=6;break;case 5:e.prev=5,f=e.catch(2),this.logger.debug("".concat(this.client.userId," resubscribe failed for"),f),this.client.emit("media-reconnect-end",o),this.serviceManager.rtcSignaling.emit("connection-state-change","disconnected",this.client.connectionState,"network_error");case 6:case"end":return e.stop()}},e,this,[[2,5]])})),function(e){return f.apply(this,arguments)})},{key:"getSessionByStreamId",value:function(e){return e?this.sessions.get(this.streamIdToSessionId.get(e)):null}},{key:"handleResubSuccess",value:function(e){var t,r=e.uid,i=e.mediaStream,n=(null===(t=e.stream.media.video)||void 0===t?void 0:t.source)===me.SCREENCAST,a=i.getAudioTracks()[0],o=i.getVideoTracks()[0],s=a?"audio":n?"screen":"camera";if(this.logger.debug("".concat(r," resubscribe ").concat(s," success")),a&&this.serviceManager.remoteAudioTrack){var c,u;if(Ke.audioSFU)null===(c=(u=this.serviceManager.remoteAudioTrack).replaceStream)||void 0===c||c.call(u,i);else this.serviceManager.remoteAudioTrack.replaceTrack(a)}else{var l=this.serviceManager.rtcUserManager.remoteUsers.find(function(e){return e.userId===r});o&&null!=l&&l.auxiliaryTrack&&n?l.auxiliaryTrack.replaceTrack(o):o&&null!=l&&l.videoTrack&&!n&&l.videoTrack.replaceTrack(o)}}},{key:"handleServerFailover",value:function(e){var t=this;this.logger.debug("serverFailover",e);var r,i=e.actions,n=Xn(void 0===i?[]:i);try{var a=function(){var e=r.value,i=e.actionName,n=e.connectionId;if("reoffer"!==i)return 1;if(/uplink/i.test(n)){var a=t.uplink,o=t.client,s=o.userId,c=o.localTracks;t.client.emit("media-reconnect-start",s),t.reporter.trace.connectionsEvent(n,"serverReofferStart"),a.reoffer().then(function(){t.logger.info("".concat(s," republish ").concat(c.map(function(e){return e.trackMediaType}).join()," success")),t.reporter.trace.connectionsEvent(n,"serverReofferSuccess"),t.client.emit("media-reconnect-end",s)}).catch(function(e){t.logger.debug("".concat(t.client.userId," republish failed for"),e),t.reporter.trace.connectionsEvent(n,"serverReofferFailed"),t.serviceManager.rtcSignaling.emit("connection-state-change","disconnected",t.client.connectionState,"network_error")})}else/downlink/i.test(n)?t.handleResubscribe(!0):t.logger.error("unknown reoffer connectionId",n)};for(n.s();!(r=n.n()).done;)a()}catch(e){n.e(e)}finally{n.f()}}},{key:"addSession",value:function(e,t){this.sessions.set(t.id,t),this.streamIdToSessionId.set(e,t.id)}},{key:"getNetworkQuality",value:function(e,t){return e>50||t>600?ge.BAD:e>30||t>450?ge.POOR:e>20||t>300?ge.NORMAL:e>10||t>200?ge.GOOD:e>=0||t>=0?ge.GREAT:ge.UNKNOWN}},{key:"checkChannelNetworkQuality",value:(p=C(Oe.mark(function e(){var t,r=this;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(0!==(t=Re(this.sessions.values())).length){e.next=1;break}return this.emit("network-quality",ge.UNKNOWN,ge.UNKNOWN),e.abrupt("return");case 1:if(0!==t.filter(function(e){var t,r=e.connection;return"connected"===(null==r||null===(t=r.pc)||void 0===t?void 0:t.connectionState)}).length){e.next=2;break}return this.emit("network-quality",ge.DISCONNECTED,ge.DISCONNECTED),e.abrupt("return");case 2:Promise.all([this.getLocalVideoStats(),this.getLocalAudioStats(),this.getRemoteAudioStats(),this.getRemoteVideoStats()]).then(function(e){var t=$t(e,4),i=t[0],n=t[1],a=t[2],o=t[3],s=0,c=0,u=0,l=0,d=0,p=0;if(i){var f=i.camera,v=i.auxiliary;f&&(c+=f.sendPacketsLost,s+=f.sendPackets,d=Math.max(d,f.rtt||0)),v&&(c+=v.sendPacketsLost,s+=v.sendPackets,d=Math.max(d,v.rtt||0))}for(var m in n&&(c+=n.sendPacketsLost||0,s+=n.sendPackets||0,d=Math.max(d,n.rtt||0)),a&&(u+=a.receivePacketsLost||0,l+=a.receivePackets||0,p=Math.max(p,a.rtt||0)),o){var h=o[m],g=h.camera,b=h.auxiliary;g&&(u+=g.receivePacketsLost,l+=g.receivePackets,p=Math.max(p,g.rtt||0)),b&&(u+=b.receivePacketsLost,l+=b.receivePackets,p=Math.max(p,b.rtt||0))}var y=-1,k=-1,S={timestamp:Date.now(),totalUplinkPacketsLost:c,totalUplinkPacketsSent:s,totalDownlinkPacketsLost:u,totalDownlinkPacketsRecv:l};if(s){var P,w,T=c-((null===(P=r.lastChannelNetworkQuality)||void 0===P?void 0:P.totalUplinkPacketsLost)||0);if(T<0&&(T=c),S.totalUplinkPacketsSentForLost=(null===(w=r.lastChannelNetworkQuality)||void 0===w?void 0:w.totalUplinkPacketsSentForLost)||0,0!==T){var M;S.totalUplinkPacketsSentForLost=s;var O=s-((null===(M=r.lastChannelNetworkQuality)||void 0===M?void 0:M.totalUplinkPacketsSentForLost)||0);O<0&&(O=s),y=T/O}}if(l){var E,I,A,R,_=u-((null===(E=r.lastChannelNetworkQuality)||void 0===E?void 0:E.totalDownlinkPacketsLost)||0);_<0&&(_=u),S.totalDownlinkPacketsRecvForLost=(null===(I=r.lastChannelNetworkQuality)||void 0===I?void 0:I.totalDownlinkPacketsRecvForLost)||0,null===(A=r.lastChannelNetworkQuality)||void 0===A||A.totalDownlinkPacketsRecvForLost,_&&(u!==((null===(R=r.lastChannelNetworkQuality)||void 0===R?void 0:R.totalDownlinkPacketsLost)||0)&&(S.totalDownlinkPacketsRecvForLost=l),k=_/l)}r.emit("network-quality",r.getNetworkQuality(Math.min(100*y,100),d),r.getNetworkQuality(Math.min(100*k,100),p)),r.lastChannelNetworkQuality=S});case 3:case"end":return e.stop()}},e,this)})),function(){return p.apply(this,arguments)})},{key:"removeSession",value:function(e,t){t&&(e=this.streamIdToSessionId.get(t),this.streamIdToSessionId.delete(t));var r=this.sessions.get(e);r&&(r.clear(),this.sessions.delete(e),this.mixedLocalAudioTrack.getPublication()===r&&this.mixedLocalAudioTrack.clear())}},{key:"batchPublish",value:(l=C(Oe.mark(function e(t,r){var i,n,a,o,s,c,u,l,d,p=this;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return i=Date.now(),e.next=1,this.getOrCreatePeerConnection("uplink");case 1:return n=e.sent,a=Re(this.sessions.values()).filter(function(e){return e instanceof Ln}),e.next=2,Fn({uid:this.client.userId,tracks:t,connection:n,labels:r,existedPublications:a,mixedLocalAudioTrack:this.mixedLocalAudioTrack});case 2:o=e.sent,s=Re(o.videoPubResultArr),o.audioPubResult&&s.push(o.audioPubResult),c=Xn(s),e.prev=3,l=Oe.mark(function e(){var t,r,n,a,o,s;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:t=u.value,r=t.error,n=t.publication,a=t.track,r?p.reporter.trace.publish(!1,a,"",Date.now()-i):((o=p.streamIdToSessionId.get(a.getTrackId()))&&(p.logger.info("clear old publication before set new one",o),null===(s=p.sessions.get(o))||void 0===s||s.clear(),p.sessions.delete(o)),p.addSession(a.getTrackId(),n),p.reporter.trace.publish(!0,a,n.id,Date.now()-i),p.reporter.trace.publish(!1,a,n.id,Date.now()-i),n.on("ended",function(){p.removeSession(n.id)}));case 1:case"end":return e.stop()}},e)}),c.s();case 4:if((u=c.n()).done){e.next=6;break}return e.delegateYield(l(),"t0",5);case 5:e.next=4;break;case 6:e.next=8;break;case 7:e.prev=7,d=e.catch(3),c.e(d);case 8:return e.prev=8,c.f(),e.finish(8);case 9:case"end":return e.stop()}},e,this,[[3,7,8,9]])})),function(e,t){return l.apply(this,arguments)})},{key:"batchUnPublish",value:(u=C(Oe.mark(function e(t){var r,i=this;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t.length){e.next=1;break}return this.logger.info("batchUnPublish sessions is empty"),e.abrupt("return",Promise.resolve());case 1:return e.next=2,this.getOrCreatePeerConnection("uplink");case 2:return r=e.sent,e.abrupt("return",Un(t,{connection:r}).then(function(){var e,r=Xn(t);try{for(r.s();!(e=r.n()).done;){var n,a,o=e.value;i.streamIdToSessionId.delete(null===(n=o.tracks)||void 0===n||null===(n=n[0])||void 0===n||null===(a=n.getTrackId)||void 0===a?void 0:a.call(n)),i.removeSession(o.id)}}catch(e){r.e(e)}finally{r.f()}}));case 3:case"end":return e.stop()}},e,this)})),function(e){return u.apply(this,arguments)})},{key:"batchSubscribe",value:function(e){var t,r=this,i=Date.now(),n=0,a=function(){var e=C(Oe.mark(function e(t){var i;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,r.getOrCreatePeerConnection("downlink");case 1:return i=e.sent,e.abrupt("return",Xi(t,i).then(function(){var e=C(Oe.mark(function e(i){var o,s,c,u;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:for(o=new Map,s=[],c=0;c<i.length;c++)"RoomBusy"===(null===(u=i[c].error)||void 0===u?void 0:u.message)&&(s.push(t[c]),o.set(s.length-1,c));if(!(s.length&&n<=3)){e.next=3;break}return n++,e.next=1,kt(1);case 1:if("connected"!==r.client.connectionState){e.next=3;break}return e.next=2,a(s);case 2:e.sent.forEach(function(e,t){var r=o.get(t);i[r]=e});case 3:return e.abrupt("return",i);case 4:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}()));case 2:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}(),o=Xn(e);try{for(o.s();!(t=o.n()).done;){var s=t.value,c=s.stream,u=s.uid,l=s.resolutionInfo;(null==c?void 0:c.id)&&this.reporter.trace.subscribe({subPhase:"init",capabilities:null==c?void 0:c.media,remoteStreamId:null==c?void 0:c.id,remoteUserId:u,elapse:0,sessionId:"",resolutionInfo:l})}}catch(e){o.e(e)}finally{o.f()}return a(e).then(function(e){var t,n=Xn(e);try{var a=function(){var e=t.value,n=e.error,a=e.subscription,o=e.id,s=e.stream,c=e.uid,u=e.resolutionInfo;if(a){r.reporter.trace.subscribe({subPhase:"success",capabilities:s.media,remoteStreamId:s.id,remoteUserId:c,elapse:Date.now()-i,sessionId:o,resolutionInfo:u});var l,d=r.streamIdToSessionId.get(s.id);if(d)r.logger.info("clear old subscription before set new one",d),null===(l=r.sessions.get(d))||void 0===l||l.clear(),r.sessions.delete(d);r.addSession(s.id,a),a.on("ended",function(){r.logger.info("remove subscription for ended",o),r.removeSession(o)})}n&&(r.logger.error("batchSubscribe error",s,n),(null==s?void 0:s.id)&&r.reporter.trace.subscribe({subPhase:"failed",capabilities:(null==s?void 0:s.media)||{},remoteStreamId:null==s?void 0:s.id,remoteUserId:c,elapse:Date.now()-i,sessionId:"",resolutionInfo:u}))};for(n.s();!(t=n.n()).done;)a()}catch(e){n.e(e)}finally{n.f()}return r.logger.info("batchSubscribe result",null==e?void 0:e.map(function(e){var t,r;return{error:null==e?void 0:e.error,uid:null==e?void 0:e.uid,streamId:null==e||null===(t=e.stream)||void 0===t?void 0:t.id,sessionId:null==e||null===(r=e.subscription)||void 0===r?void 0:r.id}})),e})}},{key:"batchUnscribe",value:(s=C(Oe.mark(function e(t){var r,i,n,a,o=this;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=new Array(t.length),i=[],n={},t.forEach(function(e,t){var a=e.error,s=e.stream,c=e.session,u=e.targetMediaType;r[t]={targetMediaType:u},a?(r[t].error=a,o.logger.error("batchUnscribe error",a,s)):(n[null==s?void 0:s.id]=t,i.push(c))}),e.next=1,this.getOrCreatePeerConnection("downlink");case 1:return a=e.sent,e.abrupt("return",Zi(i,a).then(function(){for(var e=0,t=i;e<t.length;e++){var n=t[e];o.removeSession(n.id)}return r}));case 2:case"end":return e.stop()}},e,this)})),function(e){return s.apply(this,arguments)})},{key:"clear",value:function(){var e,t,r=this;this.sessions.forEach(function(e){r.removeSession(e.id)}),this.mixedLocalAudioTrack.clear(),null===(e=this.uplink)||void 0===e||e.closePeerConnection(),this.uplink=null,null===(t=this.downlink)||void 0===t||t.closePeerConnection(),this.downlink=null,this.streamIdToSessionId.clear(),this.networkQualityInterval&&(m(this.networkQualityInterval,"interval"),this.networkQualityInterval=null),this.serviceManager.rtcSignaling.off("media-message",this.handleMediaMessage),this.serviceManager.rtcSignaling.off("serverFailover",this.handleServerFailover)}},{key:"start",value:(o=C(Oe.mark(function e(){return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return this.startNetworkQualityTimer(),e.next=1,this.getOrCreatePeerConnection("uplink");case 1:return this.uplink=e.sent,e.next=2,this.getOrCreatePeerConnection("downlink");case 2:this.downlink=e.sent,this.serviceManager.rtcSignaling.on("media-message",this.handleMediaMessage),this.serviceManager.rtcSignaling.on("serverFailover",this.handleServerFailover);case 3:case"end":return e.stop()}},e,this)})),function(){return o.apply(this,arguments)})},{key:"startNetworkQualityTimer",value:function(){var e=this;this.networkQualityInterval=d(function(){navigator&&void 0!==navigator.onLine&&!navigator.onLine?e.emit("network-quality",ge.DISCONNECTED,ge.DISCONNECTED):"connected"!==e.client.connectionState?e.emit("network-quality",ge.BAD,ge.BAD):"connected"===e.client.connectionState?e.checkChannelNetworkQuality():e.emit("network-quality",ge.UNKNOWN,ge.UNKNOWN)},2e3,"interval")}},{key:"getLocalAudioStats",value:(a=C(Oe.mark(function e(){var t,r,i,n=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=n.length>0&&void 0!==n[0]?n[0]:"network",i=Re(this.sessions.values()).filter(function(e){var t,r;return e instanceof Ln&&"connected"===(null===(t=e.connection)||void 0===t||null===(t=t.pc)||void 0===t?void 0:t.connectionState)&&"audio"===(null===(r=e.tracks)||void 0===r||null===(r=r[0])||void 0===r?void 0:r.trackMediaType)}),e.next=1,Promise.all(i.map(function(e){return e.getMetrics(r)}));case 1:return e.abrupt("return",(null===(t=i[0])||void 0===t?void 0:t.audioStatsMap.get(r))||{});case 2:case"end":return e.stop()}},e,this)})),function(){return a.apply(this,arguments)})},{key:"getLocalVideoStats",value:(n=C(Oe.mark(function e(){var t,r,i,n,a,o,s,c,u,l,d,p,f,v,m,h=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return i=h.length>0&&void 0!==h[0]?h[0]:"network",n=Re(this.sessions.values()).filter(function(e){var t;return e instanceof Ln&&"connected"===(null===(t=e.connection)||void 0===t||null===(t=t.pc)||void 0===t?void 0:t.connectionState)&&"video"===e.tracks[0].trackMediaType}),e.next=1,Promise.all(n.map(function(e){return e.getMetrics(i)}));case 1:a=function(e){var t;return(null==e||null===(t=e.fmtp)||void 0===t?void 0:t.filter(function(e){var t;return null==e||null===(t=e.config)||void 0===t?void 0:t.includes("profile-level-id")}).map(function(e){var t,r=(null==e||null===(t=e.config)||void 0===t?void 0:t.split(";"))||[],i=r.findIndex(function(e){return e.includes("profile-level-id")});return r[i].split("=")[1]}))||[]},o=null===(t=this.uplink)||void 0===t||null===(t=t.offerSDP)||void 0===t||null===(t=t.media)||void 0===t?void 0:t.find(function(e){return"video"===e.type}),s=null===(r=this.downlink)||void 0===r||null===(r=r.offerSDP)||void 0===r||null===(r=r.media)||void 0===r?void 0:r.find(function(e){return"video"===e.type}),c={uplinkProfile:Re(new Set(a(o))),downlinkProfile:Re(new Set(a(s)))},u=Xn(n),e.prev=2,u.s();case 3:if((l=u.n()).done){e.next=6;break}if(d=l.value,p=d.videoStatsMap.get(i)){e.next=4;break}return e.abrupt("continue",5);case 4:f=d.tracks,v=f[0].source===me.SCREENCAST,c[v?"auxiliary":"camera"]=p;case 5:e.next=3;break;case 6:e.next=8;break;case 7:e.prev=7,m=e.catch(2),u.e(m);case 8:return e.prev=8,u.f(),e.finish(8);case 9:return e.abrupt("return",c);case 10:case"end":return e.stop()}},e,this,[[2,7,8,9]])})),function(){return n.apply(this,arguments)})},{key:"getRemoteVideoStats",value:(i=C(Oe.mark(function e(){var t,r,i,n,a,o,s,c,u,l,d,p,f,v=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=v.length>0&&void 0!==v[0]?v[0]:"network",r=Re(this.sessions.values()).filter(function(e){var t;return e instanceof Ji&&"connected"===(null===(t=e.connection)||void 0===t||null===(t=t.pc)||void 0===t?void 0:t.connectionState)&&"video"===e.targetMediaType}),e.next=1,Promise.all(r.map(function(e){return e.getMetrics(t)}));case 1:i={},n=Xn(r),e.prev=2,n.s();case 3:if((a=n.n()).done){e.next=6;break}if(s=a.value,c=s.videoStatsMap,u=s.uid,l=s.stream,d=c.get(t)){e.next=4;break}return e.abrupt("continue",5);case 4:p=(null===(o=l.media.video)||void 0===o?void 0:o.source)===me.SCREENCAST?"auxiliary":"camera",i[u]=$n($n({},i[u]||{}),{},Ee({},p,d));case 5:e.next=3;break;case 6:e.next=8;break;case 7:e.prev=7,f=e.catch(2),n.e(f);case 8:return e.prev=8,n.f(),e.finish(8);case 9:return e.abrupt("return",i);case 10:case"end":return e.stop()}},e,this,[[2,7,8,9]])})),function(){return i.apply(this,arguments)})},{key:"getRemoteAudioStats",value:(r=C(Oe.mark(function e(){var t,r,i,n=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=n.length>0&&void 0!==n[0]?n[0]:"network",i=Re(this.sessions.values()).filter(function(e){var t;return e instanceof Ji&&"connected"===(null===(t=e.connection)||void 0===t||null===(t=t.pc)||void 0===t?void 0:t.connectionState)&&"audio"===e.targetMediaType}),e.next=1,Promise.all(i.map(function(e){return e.getMetrics(r)}));case 1:return e.abrupt("return",(null===(t=i[0])||void 0===t?void 0:t.audioStatsMap.get(r))||{});case 2:case"end":return e.stop()}},e,this)})),function(){return r.apply(this,arguments)})},{key:"handleMediaMessage",value:(t=C(Oe.mark(function e(t){var r,i,n,a,o,s;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.logger.debug("remote feedback: ",t.payload),r=JSON.parse(t.payload),Array.isArray(r)&&0!==r.length){e.next=1;break}return e.abrupt("return");case 1:i=Re(this.sessions.values()).filter(function(e){return e instanceof Ln&&e.state===Se.Processing&&e.tracks[0].source===me.CAMERA}),n=Xn(i),e.prev=2,o=Oe.mark(function e(){var t,i;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:t=a.value,(i=r.filter(function(e){return e.mid==t.transceiver.mid})).length&&t.applyOptions(i);case 1:case"end":return e.stop()}},e)}),n.s();case 3:if((a=n.n()).done){e.next=5;break}return e.delegateYield(o(),"t0",4);case 4:e.next=3;break;case 5:e.next=7;break;case 6:e.prev=6,s=e.catch(2),n.e(s);case 7:return e.prev=7,n.f(),e.finish(7);case 8:case"end":return e.stop()}},e,this,[[2,6,7,8]])})),function(e){return t.apply(this,arguments)})}]);var t,r,i,n,a,o,s,u,l,p,f,v,h}();function ra(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return ia(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?ia(e,t):void 0}}(e))||t){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function ia(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function na(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(na=function(){return!!e})()}var aa={name:"name"},oa=function(){function e(t){var r,i,n,a;return j(this,e),i=this,n=G(n=e),r=U(i,na()?Reflect.construct(n,[],G(i).constructor):n.apply(i,a)),Object.defineProperty(r,"serviceManager",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(r,"groupIds",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"groups",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"default",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"listVer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"client",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"logger",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),r.serviceManager=t,r.logger=r.serviceManager.reporter.getLoggerWithPrefix("[rtc-groupMgr]"),r.groups=new Map,r.listVer=0,r.groupIds=new Set,r.handleGroupListEvents=r.handleGroupListEvents.bind(r),r.handleGroupEvents=r.handleGroupEvents.bind(r),r.handleSyncEvent=r.handleSyncEvent.bind(r),r}return B(e,c),F(e,[{key:"joinedIds",get:function(){var e=this.serviceManager.rtcUserManager.currentSelfPid,t=new Set;return this.groups.forEach(function(r){var i=r.participants,n=r.id;i.some(function(t){return t.pid===e})&&t.add(n)}),t}},{key:"parseGroup",value:function(e){var t,r=this,i=e.id,n=e.properties,a=e.participants;return{id:i,name:(null==n||null===(t=n.find(function(e){return"name"===e.key}))||void 0===t?void 0:t.value)||"",joined:a.some(function(e){return e.pid===r.serviceManager.rtcUserManager.currentSelfPid}),users:a.map(function(e){return{userId:e.uid,userData:e.userData}})}}},{key:"groupList",get:function(){var e=this,t=[];return this.groups.forEach(function(r){t.push(e.parseGroup(r))}),t}},{key:"init",value:function(e,t){this.listVer=t,this.groupIds=new Set(e),this.batchSyncGroup(e),this.observerAllGroup(),this.serviceManager.rtcSignaling.on("group-list",this.handleGroupListEvents),this.serviceManager.rtcSignaling.on("group",this.handleGroupEvents),this.serviceManager.rtcSignaling.on("sync",this.handleSyncEvent)}},{key:"clear",value:function(){this.listVer=0,this.serviceManager.rtcSignaling.off("group",this.handleGroupEvents),this.serviceManager.rtcSignaling.off("group-list",this.handleGroupListEvents),this.serviceManager.rtcSignaling.off("sync",this.handleSyncEvent),this.groupIds.clear(),this.groups.clear()}},{key:"join",value:function(e){var t=e.publishAudioToGroup,r=void 0===t||t,i=e.groupId,o=e.userData;if(this.joinedIds.has(i))throw new n(a.InvaildArgument,"you were in group already");return this.serviceManager.rtcSignaling.joinGroup({groupId:i,userData:o,autoJoinGroupAudio:!!r,autoLeaveChannelAudio:!0})}},{key:"leave",value:function(e){var t=e.groupId,r=e.publishAudioToChannel,i=void 0===r||r;if(!this.joinedIds.has(t))throw new n(a.InvaildArgument,"you are not in the group");return this.serviceManager.rtcSignaling.leaveGroup({groupId:t,reasonCode:Vr.LEAVE_GROUP_REASON_CODE.NORMAL_LEAVE,autoJoinChannelAudio:i})}},{key:"dismiss",value:function(e){if(!this.groupIds.has(e))throw new n(a.InvaildArgument,"group not existed");return this.serviceManager.rtcSignaling.dismissGroup({groupId:e})}},{key:"addUser",value:function(e,t){var r,i=null===(r=this.groups.get(t))||void 0===r?void 0:r.participants;i&&!i.find(function(t){return t.pid===e.pid})&&i.push(e)}},{key:"removeUser",value:function(e,t){var r,i=null===(r=this.groups.get(t))||void 0===r?void 0:r.participants;if(i){var n=i.findIndex(function(t){return t.pid===e.pid});n>-1&&i.splice(n,1)}}},{key:"observerAllGroup",value:function(){return this.serviceManager.rtcSignaling.observeAllGroups()}},{key:"unobserverAllGroup",value:function(){return this.serviceManager.rtcSignaling.unobserveAllGroups()}},{key:"setProperties",value:function(e,t){return this.serviceManager.rtcSignaling.setGroupProperties({groupId:e,properties:[t]})}},{key:"handleGroupListEvents",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=e.ver,i=e.type,n=e.updateOpt;if(this.logger.info("on groupList event:",e),r!==this.listVer+1&&!t||i!==Vr.OptType.OPT_TYPE_UPDATE)r>this.listVer+1&&this.syncGroupList();else{var a=n.updateAction,o=n.id;a===Vr.GroupListUpdate.GROUP_LIST_UPDATE_ADD_ID?this.groupIds.add(o):a===Vr.GroupListUpdate.GROUP_LIST_UPDATE_REMOVE_ID&&this.groupIds.delete(o),this.listVer=r}}},{key:"handleGroupEvents",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.logger.info("on group event:",e);var i,n=e.id,a=e.ver,o=e.groupInfo,s=e.type,c=e.updateOpt,u=this.groups.get(n);if(s!==Vr.OptType.OPT_TYPE_ADD||u){if(s===Vr.OptType.OPT_TYPE_REMOVE&&u)this.groups.delete(n),this.emit("group","remove",this.parseGroup(u),u.audioInfo);else if(s===Vr.OptType.OPT_TYPE_UPDATE){var l=c.updateAction,d=c.participants;if(u&&(u.ver+1===a||r)){if(l===Vr.GroupUpdate.GROUP_UPDATE_ADD_PARTICIPANTS){var p,f=u.participants.map(function(e){return e.pid}),v=ra(d);try{for(v.s();!(p=v.n()).done;){var m=p.value;f.includes(m.pid)||(u.participants.push(m),this.emit("group","user-join",n,{userId:m.uid,userData:m.userData}))}}catch(e){v.e(e)}finally{v.f()}}else if(l===Vr.GroupUpdate.GROUP_UPDATE_REMOVE_PARTICIPANTS){var h=d.map(function(e){return e.pid}),g=Re(u.participants);u.participants=u.participants.filter(function(e){return!h.includes(e.pid)}),g.forEach(function(e){h.includes(e.pid)&&t.emit("group","user-leave",n,{userId:e.uid,userData:e.userData})})}else if(l===Vr.GroupUpdate.GROUP_UPDATE_AUDIO_STREAM_LOST)this.logger.info("group ".concat(n," audioStream lost"));else if(l===Vr.GroupUpdate.GROUP_UPDATE_AUDIO_STREAM_RECOVER)this.logger.debug("group ".concat(n," audioStream recover"));else if(l===Vr.GroupUpdate.GROUP_UPDATE_SET_PROPERTIES)c.properties.forEach(function(e){var r=!0;u.properties||(u.properties=[]),u.properties.forEach(function(t){t.key===e.key&&(t.value=e.value,r=!1)}),r&&u.properties.push(e),t.emit("group","info-updated",n,{key:"set-".concat(aa[e.key]),value:e.value})});else if(l===Vr.GroupUpdate.GROUP_UPDATE_REMOVE_PROPERTIES){var b,y=c.properties.map(function(e){return e.key});u.properties=null===(b=u.properties)||void 0===b?void 0:b.filter(function(e){var t=e.key;return!y.includes(t)}),c.properties.forEach(function(e){t.emit("group","info-updated",n,{key:"remove-".concat(aa[e.key])})})}u.ver=a}else u&&a>u.ver+1&&this.syncGroup(u.id)}}else null==o||null===(i=o.audioInfo)||void 0===i||null===(i=i.audio)||void 0===i||null===(i=i.media)||void 0===i||delete i.video,null==o.ver&&(o.ver=a),this.groups.set(n,o),this.emit("group","add",this.parseGroup(o))}},{key:"syncGroup",value:function(e){var t=this,r=this.groups.get(e);return this.serviceManager.rtcSignaling.syncData({type:Vr.DataType.DATA_TYPE_GROUP,id:e,ver:null==r?void 0:r.ver}).then(function(i){var n=i.fullSync.groupData.groupInfos,a=(void 0===n?[]:n)[0];if(a){var o=a.participants,s=a.properties,c=void 0===s?[]:s,u=(null==r?void 0:r.participants)||[],l=new Map(((null==r?void 0:r.properties)||[]).map(function(e){return[e.key,e.value]})),d=u.map(function(e){return e.pid}),p=o.map(function(e){return e.pid}),f=c.filter(function(e){return e.value!==l[e.key]}),v=c.filter(function(e){return!l.has(e.key)}),m=o.filter(function(e){return!d.includes(e.pid)}),h=u.filter(function(e){return!p.includes(e.pid)});m.length&&t.handleGroupEvents({id:e,type:Vr.OptType.OPT_TYPE_REMOVE,ver:a.ver,updateOpt:{updateAction:Vr.GroupUpdate.GROUP_UPDATE_ADD_PARTICIPANTS,participants:m}},!0),h.length&&t.handleGroupEvents({id:e,ver:a.ver,type:Vr.OptType.OPT_TYPE_REMOVE,updateOpt:{updateAction:Vr.GroupUpdate.GROUP_UPDATE_REMOVE_PARTICIPANTS,participants:h}},!0),f.length&&t.handleGroupEvents({id:e,ver:a.ver,type:Vr.OptType.OPT_TYPE_UPDATE,updateOpt:{updateAction:Vr.GroupUpdate.GROUP_UPDATE_SET_PROPERTIES,properties:f}},!0),v.length&&t.handleGroupEvents({id:e,ver:a.ver,type:Vr.OptType.OPT_TYPE_UPDATE,updateOpt:{updateAction:Vr.GroupUpdate.GROUP_UPDATE_REMOVE_PROPERTIES,properties:v}},!0)}else t.handleGroupEvents({id:e,type:Vr.OptType.OPT_TYPE_REMOVE})})}},{key:"batchSyncGroup",value:function(e){var t=this;if(e.length)return this.serviceManager.rtcSignaling.syncDataByIds({type:Vr.DataType.DATA_TYPE_GROUP,ids:e.map(function(e){return{id:e}})}).then(function(e){e.fullSync.groupData.groupInfos.forEach(function(e){t.groupIds.add(e.id),t.groups.set(e.id,e)})})}},{key:"syncGroupList",value:function(){var e=this;this.serviceManager.rtcSignaling.syncData({type:Vr.DataType.DATA_TYPE_GROUP_LIST,forceFullSync:!0,ver:this.listVer}).then(function(t){var r=t.fullSync,i=r.ver,n=r.groupListData.groupIds,a=void 0===n?[]:n,o=a.filter(function(t){return!e.groupIds.has(t)}),s=Re(e.groupIds).filter(function(e){return!a.includes(e)});o.length&&o.forEach(function(t){e.handleGroupListEvents({ver:i,updateOpt:{updateAction:Vr.GroupListUpdate.GROUP_LIST_UPDATE_ADD_ID,id:t}},!0)}),s.length&&s.forEach(function(t){e.handleGroupListEvents({ver:i,updateOpt:{updateAction:Vr.GroupListUpdate.GROUP_LIST_UPDATE_REMOVE_ID,id:t}},!0)})})}},{key:"handleSyncEvent",value:function(e){var t=this,r=e.groupListVer,i=e.groupVer,n=void 0===i?[]:i;this.listVer<r&&(this.syncGroupList(),this.listVer=r),n.forEach(function(e){var r=e.id,i=e.ver,n=t.groups.get(r);(null==n?void 0:n.ver)<i&&(t.syncGroup(r),n.ver=i)})}}])}();function sa(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(sa=function(){return!!e})()}var ca=function(){function e(t,r){var i,n,a,o;j(this,e),n=this,a=G(a=e),i=U(n,sa()?Reflect.construct(a,[],G(n).constructor):a.apply(n,o)),Object.defineProperty(i,"serviceManager",{enumerable:!0,configurable:!0,writable:!0,value:r}),Object.defineProperty(i,"userId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"userName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"streamMap",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"videoTrack",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"auxiliaryTrack",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"audioTrack",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"joinedTime",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"properties",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"toJSON",{enumerable:!0,configurable:!0,writable:!0,value:function(){return{userId:i.userId,userName:i.userName,hasAuxiliary:i.hasAuxiliary,hasVideo:i.hasVideo,hasAudio:i.hasAudio,joinedTime:i.joinedTime,properties:i.properties,audioMuted:i.audioMuted,auxiliaryMuted:i.auxiliaryMuted,videoMuted:i.videoMuted}}});var s=t.user;return i.userId=s,i.videoTrack=null,i.audioTrack=null,i.auxiliaryTrack=null,i.serviceManager=r,i.joinedTime=Date.now(),i.update(t),i}return B(e,c),F(e,[{key:"relatedStreams",get:function(){var e=this;return Re(this.serviceManager.streamManager.streams.values()).filter(function(t){var r;return(null==t||null===(r=t.info)||void 0===r?void 0:r.owner)===e.id})}},{key:"hasAuxiliary",get:function(){return this.relatedStreams.some(function(e){var t;return(null===(t=e.media)||void 0===t||null===(t=t.video)||void 0===t?void 0:t.source)===me.SCREENCAST})}},{key:"hasVideo",get:function(){return this.relatedStreams.some(function(e){var t,r=e.media;return(null==r||null===(t=r.video)||void 0===t?void 0:t.source)===me.CAMERA})}},{key:"hasAudio",get:function(){return this.relatedStreams.some(function(e){var t,r=e.media;return(null==r||null===(t=r.audio)||void 0===t?void 0:t.source)===ve.MIC})}},{key:"audioMuted",get:function(){return this.relatedStreams.some(function(e){var t,r,i=e.media;return"active"!==(null==i||null===(t=i.audio)||void 0===t?void 0:t.status)&&(null==i||null===(r=i.audio)||void 0===r?void 0:r.source)===ve.MIC})}},{key:"auxiliaryMuted",get:function(){return this.relatedStreams.some(function(e){var t,r,i=e.media;return"active"!==(null==i||null===(t=i.video)||void 0===t?void 0:t.status)&&(null==i||null===(r=i.video)||void 0===r?void 0:r.source)===me.SCREENCAST})}},{key:"videoMuted",get:function(){return this.relatedStreams.some(function(e){var t,r,i=e.media;return"active"!==(null==i||null===(t=i.video)||void 0===t?void 0:t.status)&&(null==i||null===(r=i.video)||void 0===r?void 0:r.source)===me.CAMERA})}},{key:"updateNetworkOfUser",value:function(e){var t;if(this.properties.SdkType!==T.Web&&e){var r=e.split("");r[Te.UPLINK]=ht(r[Te.UPLINK]),r[Te.DOWNLINK]=ht(r[Te.DOWNLINK]),e=r.join("")}e!==(null===(t=this.properties)||void 0===t?void 0:t[Fe])&&(this.properties[Fe]=e)}},{key:"update",value:function(e){var t=e.id,r=e.propertiesJsonStr,i=e.ver,n=JSON.parse(r||"{}");this.id=t,this.userName=n.__nick,this.version=i;var a=this.properties||{};this.properties=n,this.updateNetworkOfUser(n[Fe]),!n.hasOwnProperty("mute_audio_record")||void 0!==a.mute_audio_record&&n.mute_audio_record===a.mute_audio_record||this.serviceManager.client.emit("user-mic-audio-muted",this.userId,!!n.mute_audio_record),!n.hasOwnProperty("enable_sys_audio")||void 0!==a.enable_sys_audio&&n.enable_sys_audio===a.enable_sys_audio||this.serviceManager.client.emit("user-screencast-audio-mixed",this.userId,!!n.enable_sys_audio)}},{key:"updateSubbedVideoTrack",value:function(e,t){var r=t?this.auxiliaryTrack:this.videoTrack,i=JSON.parse(e.stream.info.attributesJsonStr),n=et(e.mediaStream,"video",this.userId,r);return t?this.auxiliaryTrack=n:this.videoTrack=n,i.mirror&&n.setSourceMirror(i.mirror),n}}])}();function ua(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return la(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?la(e,t):void 0}}(e))||t){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function la(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function da(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(da=function(){return!!e})()}var pa=function(){function e(t,r){var i,n,a,o;return j(this,e),n=this,a=G(a=e),i=U(n,da()?Reflect.construct(a,[],G(n).constructor):a.apply(n,o)),Object.defineProperty(i,"serviceManager",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(i,"users",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"currentUid",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"currentSelfPid",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"reporter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"logger",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"streamManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),i.users=new Map,i.serviceManager=t,i.reporter=t.reporter,i.logger=i.reporter.getLoggerWithPrefix("[rtc-userMgr]"),i.handleEvent=i.handleEvent.bind(i),i.streamManager=r,i}return B(e,c),F(e,[{key:"remoteUsers",get:function(){var e=this;return M(Re(this.users.values()).sort(function(e,t){return e.joinedTime-t.joinedTime}),"userId").filter(function(t){return t.userId&&t.id!==e.currentSelfPid})}},{key:"init",value:function(e,t){var r,i=ua(e);try{for(i.s();!(r=i.n()).done;){var n=r.value,a=new ca(n,this.serviceManager);this.users.set(n.user,a),t===n.user&&(this.currentUid=n.user)}}catch(e){i.e(e)}finally{i.f()}this.currentSelfPid=t,this.serviceManager.internalChannel.on("user",this.handleEvent)}},{key:"clear",value:function(){this.currentSelfPid="",this.currentUid="",this.users.clear(),this.serviceManager.internalChannel.off("user",this.handleEvent)}},{key:"handleEvent",value:function(e,t,r){var i=this;if(this.logger.info("userEvent ".concat(e," ").concat(JSON.stringify(t))),"join"===e){var n=new ca(t,this.serviceManager);this.users.set(t.user,n),this.emit("user","join",n)}else if("leave"===e){var a=this.users.get(t.user);this.users.delete(t.user),this.emit("user","leave",a)}else if("update"===e){var o=this.users.get(t.user);null==o||o.update(t)}else if("participant-replace"===e){var s=new Set(null==r?void 0:r.map(function(e){return e.id}));Re(this.streamManager.streams.values()).filter(function(e){var t;return s.has(null==e||null===(t=e.info)||void 0===t?void 0:t.owner)}).map(function(e){return e.id}).forEach(function(e){return i.streamManager.remove(e,!0)});var c=this.users.get(t.user);this.users.delete(t.user),this.emit("user","leave",c);var u=new ca(t,this.serviceManager);this.users.set(t.user,u),this.emit("user","join",u)}}},{key:"setParticipantProperties",value:function(e){return this.serviceManager.rtcSignaling.setParticipantProperties({participantId:this.currentSelfPid,roomId:this.serviceManager.roomId,propertiesJsonStr:JSON.stringify(Ee({},Fe,e))})}},{key:"notifyParticipantProperties",value:function(e){return this.serviceManager.rtcSignaling.setParticipantProperties({participantId:this.currentSelfPid,roomId:this.serviceManager.roomId,propertiesJsonStr:e})}}])}();function fa(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return va(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?va(e,t):void 0}}(e))||t){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function va(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function ma(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,i)}return r}function ha(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ma(Object(r),!0).forEach(function(t){Ee(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ma(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function ga(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(ga=function(){return!!e})()}var ba=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50,r=null;return function(){for(var i=this,n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];r&&clearTimeout(r),r=setTimeout(function(){e.apply(i,a)},t)}},ya=function(){function e(t){var r,i,n,a;j(this,e),i=this,n=G(n=e),r=U(i,ga()?Reflect.construct(n,[],G(i).constructor):n.apply(i,a)),Object.defineProperty(r,"streams",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"totalVer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"reporter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"rtcSignaling",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"logger",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"debounceSyncRpc",{enumerable:!0,configurable:!0,writable:!0,value:ba(r.doSyncRpc,1e3)}),r.streams=new Map;var o=t.rtcSignaling,s=t.reporter;return r.rtcSignaling=o,r.reporter=s,r.logger=r.reporter.getLoggerWithPrefix("[rtc-streamMgr]"),r.handleEvent=r.handleEvent.bind(r),r.handleSyncEvent=r.handleSyncEvent.bind(r),r.debounceSyncRpc=r.debounceSyncRpc.bind(r),r}return B(e,c),F(e,[{key:"clear",value:function(){this.streams.clear(),this.totalVer=0,this.rtcSignaling.off("stream",this.handleEvent),this.rtcSignaling.off("sync",this.handleSyncEvent)}},{key:"init",value:function(e,t){var r,i=e.find(function(e){return"admin"===e.info.owner&&"mixed"===e.type});null==i||null===(r=i.media)||void 0===r||delete r.video,this.streams=new Map(e.map(function(e){return[e.id,e]})),this.totalVer=t,this.rtcSignaling.on("stream",this.handleEvent),this.rtcSignaling.on("sync",this.handleSyncEvent)}},{key:"add",value:function(e){var t,r=e.id,i=e.info.owner,n=e.media,a=n.video,o=n.audio;if(!this.streams.get(r)){var s=null===(t=e.media)||void 0===t||null===(t=t.video)||void 0===t?void 0:t.source,c=Re(this.streams.values()).find(function(e){var t;return e.info.owner===i&&(null===(t=e.media)||void 0===t||null===(t=t.video)||void 0===t?void 0:t.source)===s});c&&s&&this.remove(c.id),this.reporter.trace.streamsEvent(r,"add"),this.streams.set(e.id,e);var u=(null==a?void 0:a.source)===O.SCREENCAST;if((null==a?void 0:a.source)===O.CAMERA||u){this.emit("stream","add",{id:r,owner:i,mediaType:"video",auxiliary:u});var l="active"===a.status?"unmute":"mute";this.emit("stream","update",{owner:i,id:r,auxiliary:u,updateStatus:"".concat(l,"-video")})}if((null==o?void 0:o.source)===ve.MIC||(null==o?void 0:o.source)===ve.MIXED){this.emit("stream","add",{id:r,owner:i,mediaType:"audio"});var d="active"===o.status?"unmute":"mute";this.emit("stream","update",{owner:i,id:r,auxiliary:!1,updateStatus:"".concat(d,"-audio")})}}}},{key:"remove",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.streams.get(e);if(r&&(this.streams.delete(e),t)){this.reporter.trace.streamsEvent(e,"remove");var i=r.media,n=i.video,a=i.audio,o=r.info.owner,s=(null==n?void 0:n.source)===O.SCREENCAST;((null==n?void 0:n.source)===O.CAMERA||s)&&this.emit("stream","remove",{id:e,owner:o,mediaType:"video",auxiliary:s}),(null==a?void 0:a.source)!==ve.MIC&&(null==a?void 0:a.source)!==ve.MIXED||this.emit("stream","remove",{id:e,owner:o,mediaType:"audio"})}}},{key:"getStreamByTrackId",value:function(e){return Re(this.streams.values()).find(function(t){var r,i;return(null===(r=t.media.audio)||void 0===r?void 0:r.trackId)===e||(null===(i=t.media.video)||void 0===i?void 0:i.trackId)===e})}},{key:"handleEvent",value:function(e,t){var r=this,i=e.streamId,n=e.status,a=e.stream,o=e.msg,s=e.totalVer,c={add:[],remove:[],update:["audio.status","video.status","properties","highestResolutionLevel"]}[n];c.length&&!c.includes(o.field)||this.logger.info("streamEvent",e);var u=this.totalVer;if(s===u+1||s==Le||t)if("add"===n){if(!a||!a.media||!a.info)return;this.add(a)}else if("remove"===n)this.remove(i,!0);else if("update"===n){var l=o.field,d=o.streamStatus,p=o.activeStream,f=o.extraValue,v=o.streamVer,m=o.propertiesJsonStr,h=o.highestResolutionLevel,g=this.streams.get(i);if(g){v!==Le&&(g.version=v);var b=g.media,y=b.audio,k=b.video,S=g.info.owner;if("audio.status"===l||"video.status"===l){var P,w;"audio.status"===l?(w="audio",y.status=d):"video.status"===l&&(w="video",k.status=d),this.reporter.trace.streamsEvent(i,"".concat(w," ").concat(d));var T="active"===d?"unmute":"mute",M=(null===(P=g.media)||void 0===P||null===(P=P.video)||void 0===P?void 0:P.source)===O.SCREENCAST;this.emit("stream","update",{owner:S,id:i,updateStatus:"".concat(T,"-").concat(w),auxiliary:M})}else if("activeInput"===l){var E=[p].concat(f||[]).map(function(e){var t;return null===(t=r.streams.get(e))||void 0===t||null===(t=t.info)||void 0===t?void 0:t.owner}).filter(function(e){return!!e});this.reporter.trace.streamsEvent(JSON.stringify(E),l),this.emit("stream","volumeActive",{owners:E})}else if("properties"==l){var I,A={};try{A=JSON.parse(m)}catch(e){}g.info.attributesJsonStr=JSON.stringify(ha(ha({},JSON.parse(g.info.attributesJsonStr)),A));var R=(null===(I=g.media)||void 0===I||null===(I=I.video)||void 0===I?void 0:I.source)===O.SCREENCAST;this.emit("stream","update",{owner:S,id:i,properties:A,auxiliary:R})}else"highestResolutionLevel"===l&&(g.media.video.highestResolutionLevel=h,this.emit("stream","update",{owner:S,id:i,highestResolutionLevel:h}))}}t||s<=this.totalVer&&s!==Le||(s===u+1&&(this.totalVer=s),s>u+1&&!t&&(this.logger.info("debounceSyncRpc by stream event"),this.debounceSyncRpc()))}},{key:"doSyncRpc",value:(t=C(Oe.mark(function e(){var t,r,i,n,a,o,s,c,u,l,d,p,f,v,m=this;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=[],r=[],e.next=1,this.rtcSignaling.getStreamsVer({});case 1:i=e.sent,n=i.streamVersions,a=i.totalVer,o=Re(this.streams.keys()).filter(function(e){return!e.includes("vad")}),s=fa(n),e.prev=2,s.s();case 3:if((c=s.n()).done){e.next=6;break}if(u=c.value,l=u.streamId,d=u.streamVer,!l.includes("vad")){e.next=4;break}return e.abrupt("continue",5);case 4:(p=this.streams.get(l))?p&&p.version!==d&&t.push(l):(r.push(l),t.push(l));case 5:e.next=3;break;case 6:e.next=8;break;case 7:e.prev=7,v=e.catch(2),s.e(v);case 8:return e.prev=8,s.f(),e.finish(8);case 9:if(f=n.map(function(e){return e.streamId}),o.filter(function(e){return!f.includes(e)}).forEach(function(e){m.handleEvent({status:"remove",streamId:e,stream:m.streams.get(e),totalVer:a},!0)}),this.reporter.trace.syncEvent("stream",o,f),this.totalVer=a,0!==t.length){e.next=10;break}return e.abrupt("return");case 10:this.rtcSignaling.getStreams({streamIds:t}).then(function(e){var i,n=e.totalVer,a=e.streams,o=new Map,s=fa(m.streams.values());try{for(s.s();!(i=s.n()).done;){var c=i.value;o.set(c.id,c)}}catch(e){s.e(e)}finally{s.f()}var u,l=fa(a);try{for(l.s();!(u=l.n()).done;){var d,p,f,v,h,g,b,y,k,S,P,w,T=u.value,M=m.streams.get(T.id);if(M)["active","inactive"].includes(null===(d=T.stream.media)||void 0===d||null===(d=d.video)||void 0===d?void 0:d.status)&&(null===(p=T.stream.media)||void 0===p||null===(p=p.video)||void 0===p?void 0:p.status)!==(null===(f=M.media)||void 0===f||null===(f=f.video)||void 0===f?void 0:f.status)&&m.handleEvent({streamId:M.id,status:"update",stream:T.stream,msg:{field:"video.status",streamStatus:null===(k=T.stream.media)||void 0===k||null===(k=k.video)||void 0===k?void 0:k.status,streamVer:T.stream.version},totalVer:n},!0),["active","inactive"].includes(null===(v=T.stream.media)||void 0===v||null===(v=v.audio)||void 0===v?void 0:v.status)&&(null===(h=T.stream.media)||void 0===h||null===(h=h.audio)||void 0===h?void 0:h.status)!==(null===(g=M.media)||void 0===g||null===(g=g.audio)||void 0===g?void 0:g.status)&&m.handleEvent({streamId:M.id,status:"update",stream:T.stream,msg:{field:"audio.status",streamStatus:null===(S=T.stream.media)||void 0===S||null===(S=S.audio)||void 0===S?void 0:S.status,activeStream:null,extraValue:null,streamVer:T.stream.version,propertiesJsonStr:"",highestResolutionLevel:void 0},totalVer:n},!0),null!==(b=T.stream.info)&&void 0!==b&&b.attributesJsonStr&&m.handleEvent({streamId:M.id,status:"update",stream:T.stream,msg:{field:"properties",streamVer:T.stream.version,propertiesJsonStr:(null===(P=T.stream.info)||void 0===P?void 0:P.attributesJsonStr)||"{}"},totalVer:n},!0),null!==(y=T.stream.media)&&void 0!==y&&null!==(y=y.video)&&void 0!==y&&y.highestResolutionLevel&&m.handleEvent({streamId:M.id,status:"update",stream:T.stream,msg:{field:"highestResolutionLevel",streamVer:T.stream.version,highestResolutionLevel:null===(w=T.stream.media)||void 0===w||null===(w=w.video)||void 0===w?void 0:w.highestResolutionLevel},totalVer:n},!0);else o.set(T.id,T.stream)}}catch(e){l.e(e)}finally{l.f()}for(var O=t.map(function(e){return o.get(e)}).filter(function(e){return!!e}).sort(function(e,t){return e.version-t.version}),E=0;E<O.length;E++){var I=O[E];r.includes(I.id)&&m.handleEvent({status:"add",streamId:I.id,stream:I,totalVer:n},!0)}o.clear(),m.totalVer=n});case 11:case"end":return e.stop()}},e,this,[[2,7,8,9]])})),function(){return t.apply(this,arguments)})},{key:"handleSyncEvent",value:function(e){var t=e.streamsVer;this.totalVer<t&&(this.logger.info("debounceSyncRpc by sync event"),this.debounceSyncRpc())}}]);var t}();function ka(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return Sa(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Sa(e,t):void 0}}(e))||t){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Sa(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function Pa(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,i)}return r}function wa(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Pa(Object(r),!0).forEach(function(t){Ee(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Pa(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function Ta(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Ta=function(){return!!e})()}var Ma=function(){function e(t,r){var i,o,s,c,u;return j(this,e),o=this,s=G(s=e),i=U(o,Ta()?Reflect.construct(s,[],G(o).constructor):s.apply(o,c)),Object.defineProperty(i,"rtcSignaling",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"sessionManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"groupManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"rtcUserManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"streamManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"remoteAudioTrack",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"internalChannel",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"reporter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"logger",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"roomId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"defaultVideoStreamType",{enumerable:!0,configurable:!0,writable:!0,value:"high"}),Object.defineProperty(i,"client",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"subscribedAudioStream",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"micMixedGroups",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"iceConfig",{enumerable:!0,configurable:!0,writable:!0,value:{level:0,iceServerList:[]}}),Object.defineProperty(i,"processingSubParamsMap",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(i,"joinInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"getSubTraceId",{enumerable:!0,configurable:!0,writable:!0,value:function(){return++e.subAcc}}),Object.defineProperty(i,"handleSubscribeParam",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t,r=e.mediaType,o=e.uid,s=e.auxiliary,c=i.getStream(e),u=i.rtcUserManager.users.get(o),l=i.groups.some(function(e){return e.joined}),d="mcu"===o?i.remoteAudioTrack:s?null==u?void 0:u.auxiliaryTrack:null==u?void 0:u.videoTrack,p=[],f=Re(i.processingSubParamsMap.values());i.logger.info("queueingSubParams",f,e),f.forEach(function(e){return p.push.apply(p,Re(e))});var v=p.find(function(e){return e.uid===o&&e.mediaType===r&&!!e.auxiliary==!!s});return"mcu"===o&&"video"===r||o&&"mcu"!==o&&"audio"===r?t=new n(a.InvaildArgument,"only support subscribe mcu audio"):"mcu"===o&&l?t=new n(a.SubscribeInvaild,"cannot subscribe mcu while in group"):d||v?t=new n(a.SubscribeInvaild,"duplicated subscription"):c||(i.logger.warn("".concat(o," videoTrack not existed")),t=new n(a.SubscribeStreamNotExisted)),{uid:o,user:u,error:t,stream:c,targetMediaType:r,resolutionInfo:"video"!==r||t?null:ar(i.defaultVideoStreamType,$e(c))}}}),Object.defineProperty(i,"checkUnsubParam",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t,r=e.mediaType,o=e.uid,s=e.auxiliary,c=i.getStream(e),u=i.rtcUserManager.users.get(o),l="mcu"===o?i.remoteAudioTrack:s?null==u?void 0:u.auxiliaryTrack:null==u?void 0:u.videoTrack;"mcu"===o&&"video"===r||o&&"mcu"!==o&&"audio"===r?(i.logger.warn("only support unsubscribe mcu audio"),t=new n(a.InvaildArgument,"only support unsubscribe mcu audio")):c&&l||(i.logger.warn("".concat(o," videoTrack not existing")),t=new n(a.SubscribeStreamNotExisted));var d=i.sessionManager.getSessionByStreamId(null==c?void 0:c.id);return d||(i.logger.warn("no sub session"),t=new n(a.SubscribeStreamNotExisted)),{uid:o,user:u,error:t,stream:c,session:d,subMediaType:r,resolutionInfo:"video"!==r||t?null:ar(i.defaultVideoStreamType,$e(c))}}}),Object.defineProperty(i,"handleJoinResponse",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=e.room,r=e.id,n=t.participants,a=t.streams,o=t.streamsVer,s=t.groupList,c=t.groupListVer;i.streamManager.init(a,o),i.groupManager.init(s,c),i.rtcUserManager.init(n,r),i.streamManager.on("stream",i.handleStreamEvent),i.rtcUserManager.on("user",i.handleUserEvent),i.groupManager.on("group",i.handleGroupEvent)}}),Object.defineProperty(i,"onAnnotationOperation",{enumerable:!0,configurable:!0,writable:!0,value:(u=C(Oe.mark(function e(t,r,n){var a;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(i.logger.info("got annotation start or stop",t,r,n),r!==Kn.myUid){e.next=1;break}return a=Re(i.streamManager.streams.values()).find(function(e){var t;return(null===(t=e.media)||void 0===t||null===(t=t.video)||void 0===t?void 0:t.source)===n&&e.info.owner===Kn.participantId}),e.next=1,i.rtcSignaling.setStreamProperties({streamId:a.id,propertiesJsonStr:JSON.stringify({annotation:"annotation-start"===t})});case 1:case"end":return e.stop()}},e)})),function(e,t,r){return u.apply(this,arguments)})}),i.reporter=r,i.logger=i.reporter.getLoggerWithPrefix("[rtc-svcMgr]"),i.internalChannel=new _({reporter:r,sdkVersion:De}),i.rtcSignaling=new Mi(i.internalChannel),i.client=t,i.micMixedGroups=new Set,i.groupManager=new oa(i),i.streamManager=new ya(i),i.rtcUserManager=new pa(i,i.streamManager),i.sessionManager=new ta(t,i),i.subscribedAudioStream="",i.handleStreamEvent=i.handleStreamEvent.bind(i),i.handleUserEvent=i.handleUserEvent.bind(i),i.handleGroupEvent=i.handleGroupEvent.bind(i),i}return B(e,c),F(e,[{key:"publishedLocalTracks",get:function(){var e=Re(this.sessionManager.sessions.values()).filter(function(e){return e.state===Se.Processing&&e instanceof Ln}),t=new Set;return e.map(function(e){if(e.tracks){var r,i;if((null===(r=e.tracks)||void 0===r?void 0:r[0])instanceof Jn){var n=e.tracks[0].getMicAudioTrack();n&&t.add(n);var a=e.tracks[0].getScreenAudioTrack();return void(a&&t.add(a))}(null===(i=e.tracks)||void 0===i?void 0:i[0])&&t.add(e.tracks[0])}}),Re(t.values())}},{key:"groups",get:function(){var e=this;return this.groupManager.groupList.map(function(t){return wa(wa({},t),{},{audioPublished:e.micMixedGroups.has(t.id)})})}},{key:"handleStreamEvent",value:function(e,t){var r=t.id,i=t.owner,n=t.mediaType,a=t.auxiliary,o=t.owners,s=t.updateStatus,c=t.properties,u=t.highestResolutionLevel,l=this.internalChannel.userManager.participants,d=l.get(i),p=this.rtcUserManager.users.get(null==d?void 0:d.user),f=i===this.rtcUserManager.currentSelfPid;if("add"===e&&!f&&p)this.client.emit("user-published",p,n,a);else if("remove"===e&&p&&!f)this.sessionManager.removeSession(void 0,r),"video"===n&&(a&&p.auxiliaryTrack&&(p.auxiliaryTrack.stopPlay(),p.auxiliaryTrack=null),!a&&p.videoTrack&&(p.videoTrack.stopPlay(),p.videoTrack=null)),this.client.emit("user-unpublished",p,n,a);else if("update"===e){if(s)this.client.emit("user-info-updated",(null==p?void 0:p.userId)||this.rtcUserManager.currentUid,s,a);else if(null!=(null==c?void 0:c.mirror)){var v=a?p.auxiliaryTrack:p.videoTrack;null==v||v.setSourceMirror(c.mirror)}else if(null!=u){var m=this.sessionManager.getSessionByStreamId(r);if(!m)return;m.stream.media.video.highestResolutionLevel=u;var h=m.userConfigResolution,g=m.resolutionInfo;if(u>=h.resolutionLevel&&h.resolutionLevel>g.resolutionLevel)m.applyOptions(h,!0);else if(u<h.resolutionLevel){var b=ar(or(u),$e(m.stream));m.applyOptions(b,!0)}}}else if("volumeActive"===e){var y=o.map(function(e){return l.get(e)}).map(function(e){return null==e?void 0:e.user}).filter(function(e){return!!e});this.client.emit("volume-indicator",y)}}},{key:"handleGroupEvent",value:function(e,t,r){var i=this;if("add"===e)this.client.emit("group-add",t);else if("remove"===e){var n;if(this.micMixedGroups.delete(t.id),this.logger.info("unsub group for group removed",t),r&&(null===(n=r.audio)||void 0===n?void 0:n.id)===this.subscribedAudioStream){var a=r.audio;this.sessionManager.batchUnscribe([{stream:a,session:this.sessionManager.getSessionByStreamId(a.id),targetMediaType:"audio"}]).then(function(){a.id===i.subscribedAudioStream&&(i.updateSubscribedAudioStream(!1,""),i.remoteAudioTrack.stopPlay(),i.remoteAudioTrack=null)})}this.client.emit("group-remove",t)}else if("user-join"===e)this.client.emit("group-user-join",t,r);else if("user-leave"===e)this.client.emit("group-user-leave",t,r);else if("info-updated"===e){var o=r.key,s=r.value;this.client.emit("group-info-updated",t,o,s)}}},{key:"handleUserEvent",value:function(e,t){"join"===e?(this.client.emit("user-joined",t),t.hasVideo&&this.client.emit("user-published",t,"video"),t.hasAudio&&this.client.emit("user-published",t,"audio"),t.hasAuxiliary&&this.client.emit("user-published",t,"video",!0)):"leave"===e?this.client.emit("user-left",t):this.logger.warn("unhandled inner rtc user emitted event",e,t)}},{key:"getStream",value:function(e){var t,r=e.groupId,i=e.uid,n=e.auxiliary;if(r){var a,o=this.groupManager.groups.get(r);return null==o||null===(a=o.audioInfo)||void 0===a?void 0:a.audio}var s="mcu"===i?Re(this.streamManager.streams.values()):null===(t=this.rtcUserManager.users.get(i))||void 0===t?void 0:t.relatedStreams;return"mcu"===i?s.find(function(e){var t=e.info.owner,r=e.type;return"admin"===t&&"mixed"===r}):s.find(function(e){var t=e.media.video;return(null==t?void 0:t.source)===(n?O.SCREENCAST:O.CAMERA)})}},{key:"join",value:(l=C(Oe.mark(function e(t){var r,i,n,a,o,s;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return this.logger.info("join",Ke.gslb[0]),this.sessionManager.mixedLocalAudioTrack.setSelfMicMutedProperty(t.initMicMuted),e.next=1,this.rtcSignaling.join(t,Ke.gslb[0]);case 1:return i=e.sent,n=i.joinResponse,a=i.iceConfig,null!=(null==(o=this.internalChannel.staticConfig)||null===(r=o.websdkConfig)||void 0===r?void 0:r.simulcast)&&(Ke.simulcast=null==o||null===(s=o.websdkConfig)||void 0===s?void 0:s.simulcast),this.roomId=n.room.id,dn(n.room.ssrcMask,n.room.ssrcClientSequence),this.reporter.updateCommonInfo({roomId:this.roomId,participantId:n.id}),Kn.roomId=this.roomId,Kn.participantId=n.id,Kn.myUid=t.uid,Kn.joinInfo=t,Kn.joinResponse=n,a&&a.uis&&this.setIceConfig(a.uis),this.sessionManager.start(),this.handleJoinResponse(n),e.abrupt("return",n);case 2:case"end":return e.stop()}},e,this)})),function(e){return l.apply(this,arguments)})},{key:"setIceConfig",value:function(e){var t=e.iceServerList,r=void 0===t?[]:t;e.level&&(e.iceServerList=r.filter(function(e){return/([0-9]{1,3}\.){3}[0-9]{1,3}/i.test(e)}),this.iceConfig=e)}},{key:"clear",value:function(){var e;this.rtcUserManager.clear(),this.streamManager.clear(),this.sessionManager.clear(),this.micMixedGroups.clear(),this.groupManager.clear(),this.subscribedAudioStream="",null===(e=this.remoteAudioTrack)||void 0===e||e.stopPlay(),this.remoteAudioTrack=null,this.iceConfig=null,this.roomId="",this.streamManager.off("stream",this.handleStreamEvent),this.rtcUserManager.off("user",this.handleUserEvent),this.groupManager.off("group",this.handleGroupEvent)}},{key:"leave",value:function(){if("disconnected"!==this.internalChannel.connectionState)return this.reporter.trace.leave(),this.rtcSignaling.leave()}},{key:"publish",value:(u=C(Oe.mark(function e(t){var r,i,n,a;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=this.micMixedGroups,i=this.groupManager,n=this.groups,a=[],n.some(function(e){return e.joined})?a.push.apply(a,Re(Re(r).map(function(e){var t;return null===(t=i.groups.get(e))||void 0===t||null===(t=t.audioInfo)||void 0===t?void 0:t.label}).filter(function(e){return!!e}))):a.push("common"),e.abrupt("return",this.sessionManager.batchPublish(t,a));case 1:case"end":return e.stop()}},e,this)})),function(e){return u.apply(this,arguments)})},{key:"unpublish",value:(s=C(Oe.mark(function e(t){var r,i,n,a,o,s,c,u=this;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.sessionManager.republishPromise){e.next=5;break}return this.logger.info("wait for repub before unpublish"),e.prev=1,e.next=2,this.sessionManager.republishPromise;case 2:e.next=4;break;case 3:e.prev=3,e.catch(1);case 4:this.logger.info("go unpublish after repub");case 5:return r=t.filter(function(e){return"audio"===e.trackMediaType}),i=t.filter(function(e){return"audio"!==e.trackMediaType}),n=!1,r.length>0&&(a=(this.sessionManager.mixedLocalAudioTrack.getMicAudioTrack()?1:0)+(this.sessionManager.mixedLocalAudioTrack.getScreenAudioTrack()?1:0),r.length>=a?(this.sessionManager.mixedLocalAudioTrack.setMicAudioTrack(null),this.sessionManager.mixedLocalAudioTrack.setScreenAudioTrack(null),i.push(this.sessionManager.mixedLocalAudioTrack),n=!0):(r[0].source===ve.MIC?this.sessionManager.mixedLocalAudioTrack.setMicAudioTrack(null):this.sessionManager.mixedLocalAudioTrack.setScreenAudioTrack(null),this.sessionManager.mixedLocalAudioTrack.updateMixedAudioTrackToPub())),o=new Set(i.map(function(e){return e.getTrackId()})),(s=Re(this.sessionManager.sessions.values()).filter(function(e){var t,r;return e instanceof Ln&&o.has(null===(t=e.tracks)||void 0===t||null===(t=t[0])||void 0===t?void 0:t.getTrackId())&&"video"===(null===(r=e.tracks)||void 0===r||null===(r=r[0])||void 0===r?void 0:r.trackMediaType)})).forEach(function(e){u.reporter.trace.unpublish(e.id)}),c=Re(s),n&&(c.push(this.sessionManager.mixedLocalAudioTrack.getPublication()),this.sessionManager.mixedLocalAudioTrack.setPublication(null)),e.abrupt("return",this.sessionManager.batchUnPublish(c));case 6:case"end":return e.stop()}},e,this,[[1,3]])})),function(e){return s.apply(this,arguments)})},{key:"updateSubbedRemoteTrack",value:function(e,t){var r=this;if(null==t||!t.mediaStream)return null;var i=this.rtcUserManager.users.get(e.uid);if("audio"===e.mediaType){var n=this.remoteAudioTrack;return this.remoteAudioTrack=et(t.mediaStream,"audio","mcu",this.remoteAudioTrack),this.updateSubscribedAudioStream(!0,""),n||t.once("audio-first-frame",function(){r.remoteAudioTrack.emit("first-frame-decoded")}),this.remoteAudioTrack}return i.updateSubbedVideoTrack(t,e.auxiliary)}},{key:"batchSubscribe",value:(o=C(Oe.mark(function e(t){var r,i,n,a,o,s=this;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.map(this.handleSubscribeParam),i=this.getSubTraceId(),this.processingSubParamsMap.set(i,t),e.prev=1,e.next=2,this.sessionManager.batchSubscribe(r);case 2:return n=e.sent,a=[],t.forEach(function(e,t){var r=e.auxiliary,i=e.uid,o=n[t],c=o.error,u=o.subscription;a.push({uid:i,auxiliary:r,error:c,track:s.updateSubbedRemoteTrack(e,u)})}),e.abrupt("return",a);case 3:throw e.prev=3,o=e.catch(1),this.logger.error("batch sub error",o),o;case 4:return e.prev=4,this.processingSubParamsMap.delete(i),e.finish(4);case 5:case"end":return e.stop()}},e,this,[[1,3,4,5]])})),function(e){return o.apply(this,arguments)})},{key:"batchUnsubscribe",value:(i=C(Oe.mark(function e(t){var r,i,n,a,o,s,c,u,l,d,p=this;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.sessionManager.resubscribePromise){e.next=5;break}return this.logger.info("wait for resuball before unsubscribe"),e.prev=1,e.next=2,this.sessionManager.resubscribePromise;case 2:e.next=4;break;case 3:e.prev=3,e.catch(1);case 4:this.logger.info("go unsubscribe after resuball");case 5:r=[],i=ka(t);try{for(i.s();!(n=i.n()).done;)a=n.value,o=this.checkUnsubParam(a),s=o.session,c=o.stream,u=o.user,l=o.uid,d=o.error,s&&c&&!d&&(this.reporter.trace.unsubscribe({sessionId:s.id,remoteStreamId:c.id,remoteUserId:l}),r.push(wa({stream:c,user:u,session:s},a)))}catch(e){i.e(e)}finally{i.f()}if(r.length){e.next=6;break}return e.abrupt("return",Promise.resolve());case 6:return e.abrupt("return",this.sessionManager.batchUnscribe(r).then(function(e){for(var t=0,i=r;t<i.length;t++){var n,a=i[t],o=a.mediaType,s=a.user,c=a.auxiliary;if("audio"===o)p.updateSubscribedAudioStream(!1,""),null===(n=p.remoteAudioTrack)||void 0===n||n.stopPlay(),p.remoteAudioTrack=null;else if(c){var u;null===(u=s.auxiliaryTrack)||void 0===u||u.stop(),s.auxiliaryTrack=null}else{var l;null===(l=s.videoTrack)||void 0===l||l.stop(),s.videoTrack=null}}return e}));case 7:case"end":return e.stop()}},e,this,[[1,3]])})),function(e){return i.apply(this,arguments)})},{key:"updateSubscribedAudioStream",value:function(e,t){this.subscribedAudioStream=t,this.emit("suscribedAudio",e,t)}},{key:"subscribeGroup",value:function(e){var t=this,r=this.getStream({groupId:e});if(!r)throw new n(a.InvaildArgument,"cannot find audio info of the group");if(this.subscribedAudioStream)throw new n(a.InvaildState,"you were subscribed group or channel already");return this.sessionManager.batchSubscribe([{stream:r,uid:e,targetMediaType:"audio"}]).then(function(i){return t.updateSubscribedAudioStream(!0,r.id),t.remoteAudioTrack=et(i[0].subscription.mediaStream,"audio",e,t.remoteAudioTrack),t.remoteAudioTrack})}},{key:"unsubscribeGroup",value:function(e){var t=this,r=this.getStream({groupId:e});return r?this.subscribedAudioStream!==r.id?Promise.reject(new n(a.InvaildState,"you were not subscribed the group")):this.sessionManager.batchUnscribe([{stream:r,session:this.sessionManager.getSessionByStreamId(r.id),targetMediaType:"audio"}]).then(function(){r.id===t.subscribedAudioStream&&(t.updateSubscribedAudioStream(!1,""),t.remoteAudioTrack.stopPlay(),t.remoteAudioTrack=null)}):Promise.reject(new n(a.InvaildArgument,"cannot find audio info of the group"))}},{key:"setRemoteStreamType",value:function(e,t,r){this.logger.info("setRemoteStreamType",e,t,r);var i=this.getStream({uid:e,mediaType:"video",auxiliary:r}),n=this.sessionManager.getSessionByStreamId(i.id),a=ar(t,$e(i));return n.applyOptions(a,!1)}},{key:"joinGroup",value:function(e){var t=this,r=e.groupId,i=e.publishAudioToGroup;return this.groupManager.join(e).then(function(e){t.logger.info("joinGroup response",e);var n=e.joinGroupAudioSuccess;i&&n&&t.micMixedGroups.add(r)})}},{key:"leaveGroup",value:function(e){var t=this,r=e.groupId;return this.groupManager.leave(e).then(function(){t.micMixedGroups.delete(r)})}},{key:"dismissGroup",value:function(e){var t=this;return this.groupManager.dismiss(e).then(function(){t.micMixedGroups.delete(e)})}},{key:"mixGroupAudio",value:function(e,t,r){return this.rtcSignaling.streamControl({operation:r,streamId:e,data:t})}},{key:"setGroupProperties",value:function(e,t){return this.groupManager.setProperties(e,t)}},{key:"publishToGroup",value:(r=C(Oe.mark(function e(t){var r,i,o,s=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r=!(s.length>1&&void 0!==s[1])||s[1],i=[],null!=t&&i.push(this.groupManager.groups.get(t).audioInfo.label),this.sessionManager.mixedLocalAudioTrack.isPublished()){e.next=1;break}throw this.logger.error("publishToGroup: no published audio track found"),new n(a.InvaildState,"no published audio track found");case 1:if(o=this.streamManager.getStreamByTrackId(this.sessionManager.mixedLocalAudioTrack.getTrackId()),null==t){e.next=4;break}return e.next=2,this.mixGroupAudio(o.id,i[0],"mix");case 2:if(this.micMixedGroups.add(t),!r){e.next=3;break}return e.next=3,this.mixGroupAudio(o.id,"common","unmix");case 3:e.next=5;break;case 4:return e.next=5,this.mixGroupAudio(o.id,"common","mix");case 5:case"end":return e.stop()}},e,this)})),function(e){return r.apply(this,arguments)})},{key:"unpublishFromGroup",value:(t=C(Oe.mark(function e(t){var r,i,o,s=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r=s.length>1&&void 0!==s[1]&&s[1],i=this.groupManager.groups.get(t).audioInfo.label,this.sessionManager.mixedLocalAudioTrack.isPublished()){e.next=1;break}throw this.logger.error("unpublishFromGroup: no published audio track found"),new n(a.InvaildState,"no published audio track found");case 1:return o=this.streamManager.getStreamByTrackId(this.sessionManager.mixedLocalAudioTrack.getTrackId()),e.next=2,this.mixGroupAudio(o.id,i,"unmix");case 2:if(this.micMixedGroups.delete(t),!r){e.next=3;break}return e.next=3,this.mixGroupAudio(o.id,"common","mix");case 3:case"end":return e.stop()}},e,this)})),function(e){return t.apply(this,arguments)})}]);var t,r,i,o,s,u,l}();function Oa(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Oa=function(){return!!e})()}Object.defineProperty(Ma,"subAcc",{enumerable:!0,configurable:!0,writable:!0,value:0});var Ea={timestamp:-1,maxPlayLevel:-1,maxRecLevel:-1},Ia=function(){function e(t){var r,i,n,a,o;return j(this,e),i=this,n=G(n=e),r=U(i,Oa()?Reflect.construct(n,[],G(i).constructor):n.apply(i,a)),Object.defineProperty(r,"audioDeviceBufferReport",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"audioDeviceBufferInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"client",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"makeReport",{enumerable:!0,configurable:!0,writable:!0,value:(o=C(Oe.mark(function e(){var t,i,n,a,o;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,r.client.getLocalAudioStats();case 1:return t=e.sent,i=t.audioLevel,e.next=2,r.client.getRemoteAudioStats();case 2:n=e.sent,a=n.audioLevel,o={timestamp:Date.now(),maxRecLevel:Math.min(1,i||0),maxPlayLevel:Math.min(1,Math.max(0,a||0))},r.audioDeviceBufferInfo.timestamp>0&&(r.audioDeviceBufferReport={attr_duration_ms:gt(o.timestamp,r.audioDeviceBufferInfo.timestamp),attr_play_level:Math.round(32767*o.maxPlayLevel),attr_rec_level:Math.round(32767*o.maxRecLevel)},r.emit("audio-device-buffer",Object.assign({},r.audioDeviceBufferReport))),r.audioDeviceBufferInfo=o;case 3:case"end":return e.stop()}},e)})),function(){return o.apply(this,arguments)})}),r.audioDeviceBufferReport={attr_duration_ms:0,attr_rec_level:0,attr_play_level:0},r.audioDeviceBufferInfo=Object.assign({},Ea),r.client=t,r}return B(e,Ei),F(e)}();function Aa(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,i)}return r}function Ra(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Aa(Object(r),!0).forEach(function(t){Ee(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Aa(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function _a(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return xa(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?xa(e,t):void 0}}(e))||t){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function xa(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function Ca(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Ca=function(){return!!e})()}var ja=function(){function t(e){var r,i,n,a;return j(this,t),i=this,n=G(n=t),r=U(i,Ca()?Reflect.construct(n,[],G(i).constructor):n.apply(i,a)),Object.defineProperty(r,"channelName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"id",{enumerable:!0,configurable:!0,writable:!0,value:y(6)}),Object.defineProperty(r,"reporter",{enumerable:!0,configurable:!0,writable:!0,value:I(r.id)}),Object.defineProperty(r,"logger",{enumerable:!0,configurable:!0,writable:!0,value:r.reporter.getLoggerWithPrefix("[rtc-client]")}),Object.defineProperty(r,"serviceManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"monitor",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"syncStatTimer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"clientStatSync",{enumerable:!0,configurable:!0,writable:!0,value:[0,0,0,0,0,0]}),Object.defineProperty(r,"currentClientState",{enumerable:!0,configurable:!0,writable:!0,value:""}),Object.defineProperty(r,"deviceChecker",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),r.serviceManager=new Ma(r,r.reporter),r.handleVisibilitychange=r.handleVisibilitychange.bind(r),r.handleNetworkQuality=r.handleNetworkQuality.bind(r),r.handleConnectionChangeEvent=r.handleConnectionChangeEvent.bind(r),r.handlePageUnload=r.handlePageUnload.bind(r),r.init(),r.deviceChecker=null==e?void 0:e.deviceChecker,r}return B(t,c),F(t,[{key:"remoteUsers",get:function(){return this.serviceManager.rtcUserManager.remoteUsers}},{key:"groups",get:function(){return this.serviceManager.groups}},{key:"userId",get:function(){var e;return(null===(e=this.serviceManager.internalChannel)||void 0===e||null===(e=e.joinInfo)||void 0===e?void 0:e.uid)||""}},{key:"localTracks",get:function(){return this.serviceManager.publishedLocalTracks}},{key:"connectionState",get:function(){var e;return(null===(e=this.serviceManager.internalChannel)||void 0===e?void 0:e.connectionState)||"disconnected"}},{key:"init",value:function(){this.syncStatTimer&&(m(this.syncStatTimer,"interval"),this.syncStatTimer=null),this.currentClientState="",this.channelName="",this.serviceManager.clear(),this.removeEventListeners(),this.monitor&&(this.monitor.stop(),this.monitor.removeAllListeners(),this.monitor=null),this.clientStatSync=[0,0,0,0,0,0]}},{key:"emit",value:function(e){for(var r=arguments.length,i=new Array(r>1?r-1:0),n=1;n<r;n++)i[n-1]=arguments[n];var a,o,s,c,u;"network-quality"!==e&&"volume-indicator"!==e&&(a=this.logger).info.apply(a,["client emit event",e].concat(i));return(o="emit",s=this,c=3,u=_e(G(t.prototype),o,s),2&c&&"function"==typeof u?function(e){return u.apply(s,e)}:u)([e].concat(i))}},{key:"startPlugin",value:(v=C(Oe.mark(function e(t,r){var i;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.logger.info("startPlugin",t,r),"DeviceChecker"===t){e.next=1;break}return this.logger.error("not supported plugin",t),e.abrupt("return",Promise.reject("not supported plugin"));case 1:if(this.deviceChecker){e.next=2;break}return this.logger.error("deviceChecker should be created in DingRTC.createClient before start"),e.abrupt("return",Promise.reject("plugin not created"));case 2:return e.prev=2,e.abrupt("return",this.deviceChecker.start(r));case 3:return e.prev=3,i=e.catch(2),this.logger.error("startPlugin error",t,r,i),e.abrupt("return",Promise.reject(i));case 4:case"end":return e.stop()}},e,this,[[2,3]])})),function(e,t){return v.apply(this,arguments)})},{key:"join",value:(f=C(Oe.mark(function e(t){var r,i,n=this;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return this.logger.info("join",t),e.prev=1,this.addEventListeners(),void 0===t.initMicMuted&&(t.initMicMuted=!0),e.next=2,this.serviceManager.join(t).then(function(e){var r;return n.channelName=t.channel,n.monitor=new Ia(n),n.monitor.on("audio-device-buffer",function(e){n.reporter.metric.audioDeviceBuffer(e)}),n.syncStatTimer=d(function(){n.sendClientStatToRemote()},2e3,"interval"),{remoteUsers:n.remoteUsers,timeLeft:null===(r=e.room)||void 0===r?void 0:r.timeLeft}}).catch(function(e){throw n.init(),e});case 2:return r=e.sent,e.abrupt("return",r);case 3:return e.prev=3,i=e.catch(1),this.logger.error("join error",t,i),e.abrupt("return",Promise.reject(i));case 4:case"end":return e.stop()}},e,this,[[1,3]])})),function(e){return f.apply(this,arguments)})},{key:"setRemoteDefaultVideoStreamType",value:function(e){this.logger.info("setRemoteDefaultVideoStreamType",e),this.serviceManager.defaultVideoStreamType=e}},{key:"leave",value:function(){this.logger.info("leave"),this.serviceManager.leave(),this.init()}},{key:"publish",value:(p=C(Oe.mark(function e(t){var r,i,o,s,c,u,l,d,p,f,v,m=this;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if((r=this.logger).info.apply(r,["publish"].concat(Re((Array.isArray(t)?t:[t]).map(function(e){return{mediaType:null==e?void 0:e.trackMediaType,trackId:null==e?void 0:e.getTrackId(),source:null==e?void 0:e.source}})))),e.prev=1,"connected"===this.connectionState){e.next=2;break}return e.abrupt("return",Promise.reject(new n(a.PublishNotJoinChannel)));case 2:i=(Array.isArray(t)?t:[t]).filter(function(e){return e instanceof Mr&&!m.localTracks.includes(e)}),o=i.concat(this.localTracks),s=Ee(Ee(Ee(Ee({},"video"+me.CAMERA,0),"video"+me.SCREENCAST,0),"audio"+ve.MIC,0),"audio"+ve.SCREENCAST,0),c=_a(o),e.prev=3,c.s();case 4:if((u=c.n()).done){e.next=6;break}if(l=u.value,s[l.trackMediaType+l.source]++,!(s[l.trackMediaType+l.source]>=2)){e.next=5;break}throw new n(a.QuotaLimitExceed,"".concat(l.trackMediaType,"-").concat(l.source," published already"));case 5:e.next=4;break;case 6:e.next=8;break;case 7:e.prev=7,f=e.catch(3),c.e(f);case 8:return e.prev=8,c.f(),e.finish(8);case 9:if(i.length){e.next=10;break}throw new n(a.PublishNoStream);case 10:return e.next=11,this.serviceManager.publish(i);case 11:return d=e.sent,e.abrupt("return",d);case 12:return e.prev=12,v=e.catch(1),(p=this.logger).error.apply(p,["publish error"].concat(Re((Array.isArray(t)?t:[t]).map(function(e){return{mediaType:null==e?void 0:e.trackMediaType,trackId:null==e?void 0:e.getTrackId(),source:null==e?void 0:e.source}})),[v])),e.abrupt("return",Promise.reject(v));case 13:case"end":return e.stop()}},e,this,[[1,12],[3,7,8,9]])})),function(e){return p.apply(this,arguments)})},{key:"unpublish",value:(l=C(Oe.mark(function e(t){var r,i,o,s,c;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if((r=this.logger).info.apply(r,["unpublish param"].concat(Re((Array.isArray(t)?t:[t]).map(function(e){return{mediaType:null==e?void 0:e.trackMediaType,trackId:null==e?void 0:e.getTrackId(),source:null==e?void 0:e.source}})))),e.prev=1,i=Array.isArray(t)?t:[t],t||(i=this.localTracks),this.logger.info("unpublish tracks",i.map(function(e){return e.trackMediaType})),"connected"===this.connectionState){e.next=2;break}return e.abrupt("return",Promise.reject(new n(a.ConnectionConnectFail)));case 2:return e.next=3,this.serviceManager.unpublish(i);case 3:return o=e.sent,e.abrupt("return",o);case 4:return e.prev=4,c=e.catch(1),(s=this.logger).error.apply(s,["unpub error"].concat(Re((Array.isArray(t)?t:[t]).map(function(e){return{mediaType:null==e?void 0:e.trackMediaType,trackId:null==e?void 0:e.getTrackId(),source:null==e?void 0:e.source}})),[c])),e.abrupt("return",Promise.reject(c));case 5:case"end":return e.stop()}},e,this,[[1,4]])})),function(e){return l.apply(this,arguments)})},{key:"subscribe",value:(u=C(Oe.mark(function e(t,r,i){var o,s;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,this.logger.info("subscribe",t,r,i),"connected"===this.connectionState){e.next=1;break}throw new n(a.SubscribeNotJoinChannel);case 1:return e.next=2,this.serviceManager.batchSubscribe([{uid:t,mediaType:r,auxiliary:i}]).then(function(e){var t=e[0],r=t.error,i=t.track;if(r)throw r;return i});case 2:return o=e.sent,e.abrupt("return",o);case 3:return e.prev=3,s=e.catch(0),this.logger.error("subscribe error",t,r,i,s),e.abrupt("return",Promise.reject(s));case 4:case"end":return e.stop()}},e,this,[[0,3]])})),function(e,t,r){return u.apply(this,arguments)})},{key:"batchSubscribe",value:(s=C(Oe.mark(function e(t){var r,i;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,this.logger.info("batchSubscribe",t),Array.isArray(t)&&t.length){e.next=1;break}return e.abrupt("return");case 1:if("connected"===this.connectionState){e.next=2;break}throw new n(a.SubscribeNotJoinChannel);case 2:return e.next=3,this.serviceManager.batchSubscribe(t.map(function(e){return Ra(Ra({},e),{},{action:"subscribe"})}));case 3:return r=e.sent,e.abrupt("return",r);case 4:return e.prev=4,i=e.catch(0),this.logger.error("batchSubscribe error",i),e.abrupt("return",Promise.reject(i));case 5:case"end":return e.stop()}},e,this,[[0,4]])})),function(e){return s.apply(this,arguments)})},{key:"unsubscribe",value:(o=C(Oe.mark(function e(t,r,i){var o,s;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.logger.info("unsubscribe",t,r,i),e.prev=1,"connected"===this.connectionState){e.next=2;break}return e.abrupt("return",Promise.reject(new n(a.ConnectionConnectFail)));case 2:return e.next=3,this.serviceManager.batchUnsubscribe([{uid:t,auxiliary:i,mediaType:r}]).then(function(e){var t,r=null==e||null===(t=e[0])||void 0===t?void 0:t.error;if(r)throw r});case 3:return o=e.sent,e.abrupt("return",o);case 4:return e.prev=4,s=e.catch(1),this.logger.error("unsubscribe error",t,r,s),e.abrupt("return",Promise.reject(s));case 5:case"end":return e.stop()}},e,this,[[1,4]])})),function(e,t,r){return o.apply(this,arguments)})},{key:"batchUnsubscribe",value:(i=C(Oe.mark(function e(t){var r,i;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.logger.info("batchUnsubscribe",t),e.prev=1,Array.isArray(t)&&t.length){e.next=2;break}return e.abrupt("return");case 2:if("connected"===this.connectionState){e.next=3;break}return e.abrupt("return",Promise.reject(new n(a.SubscribeNotJoinChannel)));case 3:return e.next=4,this.serviceManager.batchUnsubscribe(t.map(function(e){return Ra(Ra({},e),{},{action:"unsubscribe"})}));case 4:return r=e.sent,e.abrupt("return",r);case 5:return e.prev=5,i=e.catch(1),this.logger.error("batchUnsubscribe error",t,i),e.abrupt("return",Promise.reject(i));case 6:case"end":return e.stop()}},e,this,[[1,5]])})),function(e){return i.apply(this,arguments)})},{key:"getLocalAudioStats",value:function(){return this.serviceManager.sessionManager.getLocalAudioStats("user")}},{key:"getLocalVideoStats",value:function(){return this.serviceManager.sessionManager.getLocalVideoStats("user")}},{key:"setRemoteVideoStreamType",value:(r=C(Oe.mark(function e(t,r,i){var o,s,c,u=this;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,this.logger.info("setRemoteVideoStreamType",t,r,i),"connected"===this.connectionState){e.next=1;break}return e.abrupt("return",Promise.reject(new n(a.ConnectionConnectFail)));case 1:if(null!=(o=this.remoteUsers.find(function(e){return e.userId===t}))&&o.relatedStreams){e.next=2;break}return this.logger.info("".concat(t," videoTrack not existed")),e.abrupt("return",Promise.reject("viedoTrack doesnt exiested"));case 2:return e.next=3,this.serviceManager.setRemoteStreamType(t,r,i).then(function(){u.emit("stream-type-changed",t,r,i)});case 3:return s=e.sent,e.abrupt("return",s);case 4:return e.prev=4,c=e.catch(0),this.logger.error("setRemoteVideoStreamType error",t,r,i,c),e.abrupt("return",Promise.reject(c));case 5:case"end":return e.stop()}},e,this,[[0,4]])})),function(e,t,i){return r.apply(this,arguments)})},{key:"getRemoteVideoStats",value:function(){return this.serviceManager.sessionManager.getRemoteVideoStats("user")}},{key:"getRemoteAudioStats",value:function(){return this.serviceManager.sessionManager.getRemoteAudioStats("user")}},{key:"getRemoteNetworkQuality",value:function(){var e={};return this.remoteUsers.forEach(function(t){var r,i,n=t.properties,a=t.userId;e[a]={downlinkNetworkQuality:Number((null==n||null===(r=n[Fe])||void 0===r?void 0:r[Te.DOWNLINK])||0),uplinkNetworkQuality:Number((null==n||null===(i=n[Fe])||void 0===i?void 0:i[Te.UPLINK])||0)}}),e}},{key:"handleConnectionChangeEvent",value:function(e,t,r){this.logger.info("connectionStateChange from ".concat(t," to ").concat(e," ").concat(r||"")),"disconnected"===e&&this.init(),this.emit("connection-state-change",e,t,r)}},{key:"sendClientStatToRemote",value:function(){var e=this,t=this.clientStatSync.join("");if(t!==this.currentClientState){var r=ht(null,t[Te.UPLINK]),i=ht(null,this.currentClientState[Te.UPLINK]),n=ht(null,t[Te.DOWNLINK]),a=ht(null,this.currentClientState[Te.DOWNLINK]);r===i&&n===a||this.serviceManager.rtcUserManager.setParticipantProperties(t).catch(function(t){e.logger.info("setParticipantProperties error ".concat(g(t)))}),this.currentClientState=t}}},{key:"handleVisibilitychange",value:function(){var t="visible"!==document.visibilityState,r=t?E.APP_BACKGROUND:E.APP_FOREGROUND;(e.isAndroid()||e.isIOS())&&(this.reporter.sender.sendEvent(r),this.clientStatSync[Te.BACKGROUND_MODE]=Number(t))}},{key:"handleNetworkQuality",value:function(e,t){this.clientStatSync[Te.UPLINK]=e,this.clientStatSync[Te.DOWNLINK]=t,this.emit("network-quality",e,t)}},{key:"handlePageUnload",value:function(e){"connected"===this.connectionState&&(this.logger.info("leave for ".concat(e.type)),this.leave())}},{key:"addEventListeners",value:function(){window.addEventListener(e.isSafari()?"beforeunload":"pagehide",this.handlePageUnload),document.addEventListener("visibilitychange",this.handleVisibilitychange),this.serviceManager.sessionManager.on("network-quality",this.handleNetworkQuality),this.serviceManager.rtcSignaling.on("connection-state-change",this.handleConnectionChangeEvent)}},{key:"removeEventListeners",value:function(){window.removeEventListener(e.isSafari()?"beforeunload":"pagehide",this.handlePageUnload),document.removeEventListener("visibilitychange",this.handleVisibilitychange),this.serviceManager.sessionManager.off("network-quality",this.handleNetworkQuality),this.serviceManager.rtcSignaling.off("connection-state-change",this.handleConnectionChangeEvent)}},{key:"joinGroup",value:function(e){this.logger.info("joinGroup",e);try{if("connected"!==this.connectionState)return Promise.reject(new n(a.ConnectionConnectFail));var t=e.userData,r=e.groupId,i=new TextEncoder;if(!r||i.encode(r).length>64)throw new n(a.InvaildArgument,"join group with invalid groupId");if(t){var o=new TextEncoder;if("string"!=typeof t||o.encode(t).length>64)throw new n(a.InvaildArgument,"join group with invalid userData")}return this.serviceManager.joinGroup(e)}catch(t){return this.logger.error("joinGroup error",e,t),Promise.reject(t)}}},{key:"leaveGroup",value:function(e){this.logger.info("leaveGroup",e);try{return"connected"!==this.connectionState?Promise.reject(new n(a.ConnectionConnectFail)):this.serviceManager.leaveGroup({groupId:e,publishAudioToChannel:!1})}catch(t){return this.logger.error("leaveGroup error",e,t),Promise.reject(t)}}},{key:"setGroupName",value:function(e,t){this.logger.info("setGroupName",e,t);try{if("connected"!==this.connectionState)return Promise.reject(new n(a.ConnectionConnectFail));var r=new TextEncoder;if(!t||r.encode(t).length>64)throw new n(a.InvaildArgument,"update group with invalid name");return this.serviceManager.setGroupProperties(e,{key:"name",value:t})}catch(r){return this.logger.error("setGroupName error",e,t,r),Promise.reject(r)}}},{key:"subscribeGroup",value:function(e){this.logger.info("subscribeGroup",e);try{return"connected"!==this.connectionState?Promise.reject(new n(a.ConnectionConnectFail)):this.serviceManager.subscribeGroup(e)}catch(t){return this.logger.error("subscribeGroup error",e,t),Promise.reject(t)}}},{key:"unsubscribeGroup",value:function(e){this.logger.info("unsubscribeGroup",e);try{return"connected"!==this.connectionState?Promise.reject(new n(a.ConnectionConnectFail)):this.serviceManager.unsubscribeGroup(e)}catch(t){return this.logger.error("unsubscribeGroup error",e,t),Promise.reject(t)}}},{key:"mixAudioToGroup",value:function(e,t,r){this.logger.info("mixAudioToGroup",{mediaType:null==e?void 0:e.trackMediaType,trackId:null==e?void 0:e.getTrackId(),source:null==e?void 0:e.source},t,r);try{if("connected"!==this.connectionState)throw new n(a.ConnectionConnectFail);if(t){if(this.logger.info("mix audio to group ".concat(r)),null==r&&this.serviceManager.micMixedGroups.size)throw new n(a.InvaildState,"cannot mix audio to channel while mixing to others group");return this.serviceManager.publishToGroup(r,!0)}if(this.logger.info("unmix audio from group ".concat(r)),!this.serviceManager.micMixedGroups.has(r))throw new n(a.InvaildState,"cannot unmix audio from the unmixed group");return this.serviceManager.unpublishFromGroup(r)}catch(i){return this.logger.error("mixAudioToGroup error",{mediaType:null==e?void 0:e.trackMediaType,trackId:null==e?void 0:e.getTrackId(),source:null==e?void 0:e.source},t,r,i),Promise.reject(i)}}},{key:"dismissGroup",value:function(e){this.logger.info("dismissGroup",e);try{return"connected"!==this.connectionState?Promise.reject(new n(a.ConnectionConnectFail)):this.serviceManager.dismissGroup(e)}catch(t){return this.logger.error("dismissGroup error",e,t),Promise.reject(t)}}},{key:"register",value:function(e){this.logger.info("register",e),e.attach(this.serviceManager.internalChannel,this.serviceManager),null==e||e.on("annotation-start",this.serviceManager.onAnnotationOperation.bind(this.serviceManager,"annotation-start")),null==e||e.on("annotation-stop",this.serviceManager.onAnnotationOperation.bind(this.serviceManager,"annotation-stop"))}},{key:"ungister",value:function(e){this.logger.info("ungister",e),e.detach(this.serviceManager.internalChannel)}}]);var r,i,o,s,u,l,p,f,v}(),Da={height:360,width:640},La=function(){var e=C(Oe.mark(function e(t){var r;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:window.addEventListener("offline",function(){t.info("browser offline event")}),window.addEventListener("online",function(){t.info("browser online event")}),r=function(){"visible"===document.visibilityState?t.info("page changed to visible"):t.info("page changed to invisible")},document.addEventListener("visibilitychange",r),window.addEventListener("blur",function(){t.info("page blurred")}),window.addEventListener("focus",function(){t.info("page focused")});case 1:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}();function Na(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Na=function(){return!!e})()}_t();var Fa=t().getLoggerWithPrefix("[rtc-index]");Fa.info("sdk version",De),Fa.info("userAgent",navigator.userAgent),Fa.info("href: ".concat(location.href,", in_iframe=").concat(window!==window.parent)),La(Fa);var Ua=new(function(){function e(){var t,r,i,n;if(j(this,e),r=this,i=G(i=e),t=U(r,Na()?Reflect.construct(i,[],G(r).constructor):i.apply(r,n)),Object.defineProperty(t,"VERSION",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),t.VERSION=De,!We.checkSupported())return U(t);var a=ct.getInstance();return a.on("camera-changed",function(e){t.emit("camera-changed",e)}),a.on("microphone-changed",function(e){t.emit("microphone-changed",e)}),a.on("playback-device-changed",function(e){t.emit("playback-device-changed",e)}),b.on("autoplay-failed",function(e){t.emit("autoplay-failed",e)}),t}return B(e,c),F(e,[{key:"createClient",value:function(e){Fa.info("createClient",null==e?void 0:e.map(function(e){return null==e?void 0:e.pluginName}));var r=null==e?void 0:e.find(function(e){return"DeviceChecker"===(null==e?void 0:e.pluginName)}),i=null==r?void 0:r.createPlugin();return null==i||i.injectLogger(t().getLoggerWithPrefix("[rtc-devcheck]")),new ja({deviceChecker:i})}},{key:"checkSystemRequirements",value:function(){return Fa.info("checkSystemRequirements"),We.checkSupported()}},{key:"getSupportedCodec",value:function(){return Fa.info("getSupportedCodec"),We.getSupportedCodec()}},{key:"createCameraVideoTrack",value:function(e){return Fa.info("createCameraVideoTrack",e),_r(e)}},{key:"createMicrophoneAudioTrack",value:function(e){return Fa.info("createMicrophoneAudioTrack",e),Rr(e)}},{key:"createCustomVideoTrack",value:function(e,t){return Fa.info("createCustomVideoTrack",e,t),Lr(e,t)}},{key:"createCustomAudioTrack",value:function(e,t){return Fa.info("createCustomAudioTrack",e,t),Nr(e,t)}},{key:"createScreenVideoTrack",value:function(e){return Fa.info("createScreenVideoTrack",e),xr(e)}},{key:"createScreenVideoAndAudioTrack",value:function(e){return Fa.info("createScreenVideoAndAudioTrack",e),jr(e)}},{key:"createMicrophoneAndCameraTracks",value:(i=C(Oe.mark(function e(t,r){return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return Fa.info("createMicrophoneAndCameraTracks",{videoConfig:t,audioConfig:r}),e.abrupt("return",Dr(t,r));case 1:case"end":return e.stop()}},e)})),function(e,t){return i.apply(this,arguments)})},{key:"getCameras",value:function(){return Fa.info("getCameras"),ct.getCameras()}},{key:"getDevices",value:(r=C(Oe.mark(function e(){var t,r;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return Fa.info("start getDevices"),e.prev=1,e.next=2,ct.getDevices();case 2:return t=e.sent,Fa.info("getDevices suc",t),e.abrupt("return",t);case 3:return e.prev=3,r=e.catch(1),Fa.info("error getDevices ",r),e.abrupt("return",r);case 4:case"end":return e.stop()}},e,null,[[1,3]])})),function(){return r.apply(this,arguments)})},{key:"getPlaybackDevices",value:function(){return Fa.info("getPlaybackDevices"),ct.getPlaybackDevices()}},{key:"getMicrophones",value:function(){return Fa.info("getMicrophones"),ct.getMicrophones()}},{key:"setLogLevel",value:function(e){console.warn("[dingrtc]: setLogLevel is deprecated"),A(Ke._consoleLogLevel),Fa.info(" setLogLevel - ignored and hint deprecated",e)}},{key:"setClientConfig",value:function(e){Fa.info("setClientConfig",e),Ke.setClientConfig(e)}}]);var r,i}());export{ve as AudioSourceInfo,xe as AudioSourceState,Da as FALLBACK_SUB_VIDEO_PROFILE,me as VideoSourceInfo,Ua as default};