dingrtc 3.8.17-beta.4 → 3.8.17-beta.5

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 +1 @@
1
- import"webrtc-adapter";import{Environment as e,getReporter as t,SystemType as r,BrowserType as n,DingRTCError as i,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,tryJsonStringify as h,EventBus as g,createUuid as y,parseScreenShareError as b,getProtobufRoot as S,isPrivateIP as k,SdkType as P,uniqBy as w,VideoSourceInfo as O,TraceEvent as T,registerReporter as E,setLogLevel as I}from"@dingrtc/shared";export{ErrorCodeAndMsgMap}from"@dingrtc/shared";import R from"sdp-transform";import{DingRTCChannel as M}from"@dingrtc/channel";function A(e,t,r,n,i,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(n,i)}function _(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var a=e.apply(t,r);function o(e){A(a,n,i,o,s,"next",e)}function s(e){A(a,n,i,o,s,"throw",e)}o(void 0)}))}}function C(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 x(e){var t=function(e,t){if("object"!=D(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=D(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==D(t)?t:t+""}function j(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,x(n.key),n)}}function L(e,t,r){return t&&j(e.prototype,t),r&&j(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function N(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 F(e){return F=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},F(e)}function U(e,t){return U=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},U(e,t)}function G(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&&U(e,t)}function V(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var B={exports:{}},H={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}(H);var q=H.exports;!function(e){var t=q.default;function r(){e.exports=r=function(){return i},e.exports.__esModule=!0,e.exports.default=e.exports;var n,i={},a=Object.prototype,o=a.hasOwnProperty,s=Object.defineProperty||function(e,t,r){e[t]=r.value},c="function"==typeof Symbol?Symbol:{},u=c.iterator||"@@iterator",l=c.asyncIterator||"@@asyncIterator",d=c.toStringTag||"@@toStringTag";function p(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{p({},"")}catch(n){p=function(e,t,r){return e[t]=r}}function f(e,t,r,n){var i=t&&t.prototype instanceof S?t:S,a=Object.create(i.prototype),o=new D(n||[]);return s(a,"_invoke",{value:M(e,r,o)}),a}function v(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}i.wrap=f;var m="suspendedStart",h="suspendedYield",g="executing",y="completed",b={};function S(){}function k(){}function P(){}var w={};p(w,u,(function(){return this}));var O=Object.getPrototypeOf,T=O&&O(O(x([])));T&&T!==a&&o.call(T,u)&&(w=T);var E=P.prototype=S.prototype=Object.create(w);function I(e){["next","throw","return"].forEach((function(t){p(e,t,(function(e){return this._invoke(t,e)}))}))}function R(e,r){function n(i,a,s,c){var u=v(e[i],e,a);if("throw"!==u.type){var l=u.arg,d=l.value;return d&&"object"==t(d)&&o.call(d,"__await")?r.resolve(d.__await).then((function(e){n("next",e,s,c)}),(function(e){n("throw",e,s,c)})):r.resolve(d).then((function(e){l.value=e,s(l)}),(function(e){return n("throw",e,s,c)}))}c(u.arg)}var i;s(this,"_invoke",{value:function(e,t){function a(){return new r((function(r,i){n(e,t,r,i)}))}return i=i?i.then(a,a):a()}})}function M(e,t,r){var i=m;return function(a,o){if(i===g)throw Error("Generator is already running");if(i===y){if("throw"===a)throw o;return{value:n,done:!0}}for(r.method=a,r.arg=o;;){var s=r.delegate;if(s){var c=A(s,r);if(c){if(c===b)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(i===m)throw i=y,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);i=g;var u=v(e,t,r);if("normal"===u.type){if(i=r.done?y:h,u.arg===b)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(i=y,r.method="throw",r.arg=u.arg)}}}function A(e,t){var r=t.method,i=e.iterator[r];if(i===n)return t.delegate=null,"throw"===r&&e.iterator.return&&(t.method="return",t.arg=n,A(e,t),"throw"===t.method)||"return"!==r&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+r+"' method")),b;var a=v(i,e.iterator,t.arg);if("throw"===a.type)return t.method="throw",t.arg=a.arg,t.delegate=null,b;var o=a.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=n),t.delegate=null,b):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,b)}function _(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function D(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(_,this),this.reset(!0)}function x(e){if(e||""===e){var r=e[u];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,a=function t(){for(;++i<e.length;)if(o.call(e,i))return t.value=e[i],t.done=!1,t;return t.value=n,t.done=!0,t};return a.next=a}}throw new TypeError(t(e)+" is not iterable")}return k.prototype=P,s(E,"constructor",{value:P,configurable:!0}),s(P,"constructor",{value:k,configurable:!0}),k.displayName=p(P,d,"GeneratorFunction"),i.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===k||"GeneratorFunction"===(t.displayName||t.name))},i.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,P):(e.__proto__=P,p(e,d,"GeneratorFunction")),e.prototype=Object.create(E),e},i.awrap=function(e){return{__await:e}},I(R.prototype),p(R.prototype,l,(function(){return this})),i.AsyncIterator=R,i.async=function(e,t,r,n,a){void 0===a&&(a=Promise);var o=new R(f(e,t,r,n),a);return i.isGeneratorFunction(t)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},I(E),p(E,d,"Generator"),p(E,u,(function(){return this})),p(E,"toString",(function(){return"[object Generator]"})),i.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},i.values=x,D.prototype={constructor:D,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=n,this.done=!1,this.delegate=null,this.method="next",this.arg=n,this.tryEntries.forEach(C),!e)for(var t in this)"t"===t.charAt(0)&&o.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=n)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(r,i){return s.type="throw",s.arg=e,t.next=r,i&&(t.method="next",t.arg=n),!!i}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var c=o.call(a,"catchLoc"),u=o.call(a,"finallyLoc");if(c&&u){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&o.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var i=n;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,b):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),b},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),C(r),b}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var i=n.arg;C(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:x(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=n),b}},i}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports}(B);var W=(0,B.exports)(),Y=W;try{regeneratorRuntime=W}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=W:Function("r","regeneratorRuntime = r")(W)}var Q,J,K,z,$,X,Z,ee,te,re,ne,ie,ae,oe,se=V(Y);function ce(e,t,r){return(t=x(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ue(){return ue="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var n=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=F(e)););return e}(e,t);if(n){var i=Object.getOwnPropertyDescriptor(n,t);return i.get?i.get.call(arguments.length<3?e:r):i.value}},ue.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"}(Q||(Q={})),function(e){e.VP8="vp8",e.VP9="vp9",e.H264="h264",e.H265="h265",e.AV1="av1",e.AV1X="av1x"}(J||(J={})),function(e){e.MIC="mic",e.SCREENCAST="screen-cast",e.MIXED="mixed"}(K||(K={})),function(e){e.CAMERA="camera",e.SCREENCAST="screen-cast",e.MIXED="mixed"}(z||(z={})),function(e){e.PUBLISH="publish",e.SUBSCRIBE="subscribe"}($||($={})),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"}(X||(X={})),function(e){e[e.Native=1]="Native",e[e.Web=2]="Web",e[e.MiniProgram=3]="MiniProgram"}(Z||(Z={})),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"}(ee||(ee={})),function(e){e[e.UserKickOut=2011]="UserKickOut",e[e.UserReplaced=2012]="UserReplaced"}(te||(te={})),function(e){e[e.Idle=0]="Idle",e[e.Processing=1]="Processing",e[e.End=2]="End"}(re||(re={})),function(e){e[e.New=0]="New",e[e.Idle=1]="Idle",e[e.Processing=2]="Processing",e[e.Ended=3]="Ended"}(ne||(ne={})),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"}(ie||(ie={})),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"}(ae||(ae={})),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"}(oe||(oe={}));var le,de="3.8.17-beta.4",pe={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"}(le||(le={}));var fe=de,ve=-999,me="rtc-label";JSON.stringify({needPersonalityAudioStream:!0,outPeerConnectionNotReuse:!0}),e.browserType,e.browserVersion,e.system,e.systemVersion;var he="onertc_state_sync",ge="onertc_internal_track_event",ye="rtc_sdk_el_data",be=t().log,Se=new(function(){return L((function t(){C(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=_(se.mark((function e(){var t,r,n;return se.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=7,r.createOffer();case 7:if(n=e.sent.sdp){e.next=10;break}return e.abrupt("return",t);case 10:return r.close(),r=null,n.match(/ VP8/i)&&t.video.push("VP8"),n.match(/ VP9/i)&&t.video.push("VP9"),n.match(/ AV1/i)&&t.video.push("AV1"),n.match(/ H264/i)&&t.video.push("H264"),n.match(/ H265/i)&&t.video.push("H265"),n.match(/ opus/i)&&t.audio.push("OPUS"),n.match(/ PCMU/i)&&t.audio.push("PCMU"),n.match(/ PCMA/i)&&t.audio.push("PCMA"),n.match(/ G722/i)&&t.audio.push("G722"),e.abrupt("return",t);case 24:throw e.prev=24,e.t0=e.catch(1),be.error("get supportedCodecs failed"),new i(a.IceConnectionSetLocalDescFail,"get supportedCodecs failed");case 28:case"end":return e.stop()}}),e,null,[[1,24]])}))),function(){return t.apply(this,arguments)})},{key:"checkSupported",value:function(){var t=!1;try{var r=window.RTCPeerConnection,n=navigator.mediaDevices&&navigator.mediaDevices.getUserMedia,i=window.WebSocket;t=!!(r&&n&&i)}catch(e){return!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.debug("checkSystemRequirements, api:",t,"browser",a),o}},{key:"isSupportScreenShare",value:function(){return!this.system.includes(r.ANDROID)&&this.system!==r.IOS&&(!(this.browser===n.SAFARI&&parseInt(this.browserVersion)<13)&&(!(this.browser===n.FIREFOX&&parseInt(this.browserVersion)<66)&&!!(navigator&&navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)))}}]);var t}()),ke=function(){var t,r=(null===(t=window.RTCRtpSender)||void 0===t?void 0:t.prototype)||{},n=r.setParameters,i=r.getParameters;return!(!n||!i)&&(!e.isFirefox()&&(e.isSafari()?parseInt(e.browserVersion)>=14:e.isChrome()?parseInt(e.browserVersion)>=81:!e.isAndroid()))};function Pe(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function we(e,t){if(e){if("string"==typeof e)return Pe(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)?Pe(e,t):void 0}}function Oe(e){return function(e){if(Array.isArray(e))return Pe(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||we(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 Te(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Te=function(){return!!e})()}var Ee=t().log,Ie=function(){function e(){var t,r,n,i;return C(this,e),r=this,n=F(n=e),t=N(r,Te()?Reflect.construct(n,[],F(r).constructor):n.apply(r,i)),Object.defineProperty(t,"gslb",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(t,"simulcast",{enumerable:!0,configurable:!0,writable:!0,value:ke()}),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,"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:!0}),Object.defineProperty(t,"_consoleLogLevel",{enumerable:!0,configurable:!0,writable:!0,value:"warn"}),t.setClientConfig({gslb:["https://gslb.dingrtc.com"]}),t}return G(e,c),L(e,[{key:"setClientConfig",value:function(e){Ee.info("setClientConfig",e);var t=e||{},r=t.gslb,n=t.simulcast,i=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!=n&&ke()&&(this.simulcast=Boolean(n)),null!=i&&(this.audioSFU=Boolean(i)),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)}}])}(),Re=new Ie,Me=function(e,t){return e.width!==t.width?e.width-t.width:e.height-t.height},Ae=function(e){var t;if(!e)return[];var r=e.media.video;if(!r)return[];var n=[],i=r.optional,a=r.parameters;return null!=a&&a.resolution&&n.push(a.resolution),null!=i&&null!==(t=i.parameters)&&void 0!==t&&null!==(t=t.resolution)&&void 0!==t&&t.length&&n.push.apply(n,Oe(i.parameters.resolution)),n.sort(Me),n},_e=function(e,t){var r,n=e.media,o=n.audio,s=n.video;if(t===ie.QuotaLimit)return r=new i(a.QuotaLimitExceed);if(o)r=new i(a.SubscribeAudioStreamFailed,t);else if(s){var c=s.source;c===z.CAMERA?r=new i(a.SubscribeVideoStreamFailed,t):c===z.SCREENCAST&&(r=new i(a.SubscribeScreenShareFailed,t))}return r},Ce=function(e,t){var r,n=e.trackMediaType;if(t===ie.QuotaLimit)return r=new i(a.QuotaLimitExceed);if("audio"===n)r=new i(a.PublishAudioStreamFailed,t);else{var o=e.source;o===z.CAMERA?r=new i(a.PublishVideoStreamFailed,t):o===z.SCREENCAST&&(r=new i(a.PublishScreenShareFailed,t))}return r},De=function(e,t,r,n){var i=n,a=e.getVideoTracks(),o=e.getAudioTracks();return"audio"===t&&o.length?Re.audioSFU?n?n.replaceStream(e):i=new kr(null,r,e):n?n.replaceTrack(o[0]):i=new kr(o[0],r):"video"===t&&a.length&&(n?n.replaceTrack(a[0]):i=new Pr(a[0],r)),i},xe=function(e){return"object"===D(e.video)&&e.video.source===z.SCREENCAST};function je(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Le(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?je(Object(r),!0).forEach((function(t){ce(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):je(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Ne(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 Fe(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)?Fe(e,t):void 0}}(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}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 Fe(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function Ue(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Ue=function(){return!!e})()}var Ge=t().log,Ve=function(){function e(){var t,r,n,i,a;return C(this,e),r=this,n=F(n=e),t=N(r,Ue()?Reflect.construct(n,[],F(r).constructor):n.apply(r,i)),Object.defineProperty(t,"deviceList",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(t,"checking",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(t,"checkDeviceUpdate",{enumerable:!0,configurable:!0,writable:!0,value:(a=_(se.mark((function r(){var n;return se.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(!t.checking){r.next=2;break}return r.abrupt("return");case 2:return t.checking=!0,r.next=5,e.getDevices();case 5:n=r.sent,t.compareDevices(n,"audiooutput"),t.compareDevices(n,"videoinput"),t.compareDevices(n,"audioinput"),t.deviceList=n,t.checking=!1;case 11:case"end":return r.stop()}}),r)}))),function(){return a.apply(this,arguments)})}),Object.defineProperty(t,"compareDevices",{enumerable:!0,configurable:!0,writable:!0,value:function(e,r){var n,i=e.filter((function(e){return e.kind===r})),a=t.deviceList.filter((function(e){return e.kind===r})),o=i.map((function(e){return e.deviceId})),s=a.map((function(e){return e.deviceId})),c=i.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=Ne(c);try{for(d.s();!(n=d.n()).done;){var p=n.value;t.emit(l[r],{device:p,state:"active"})}}catch(e){d.e(e)}finally{d.f()}var f,v=Ne(u);try{for(v.s();!(f=v.n()).done;){var m=f.value;t.emit(l[r],{device:m,state:"inactive"})}}catch(e){v.e(e)}finally{v.f()}}}),e._instance?N(t,e._instance):(t.deviceList=[],Se.checkSupported()?(e.getDevices({audio:!0,video:!0},!0).then((function(e){t.deviceList=e,t.addEventListeners()})),t):N(t))}return G(e,c),L(e,[{key:"addEventListeners",value:function(){"ondevicechange"in navigator.mediaDevices?navigator.mediaDevices.addEventListener("devicechange",this.checkDeviceUpdate):d(this.checkDeviceUpdate,1e3,"interval")}}],[{key:"getInstance",value:function(){return e._instance}},{key:"getMedias",value:function(e,t){var r,n,i=this;return xe(e)?(Ge.info("getDisplayMedia with",t),null===(r=navigator.mediaDevices)||void 0===r?void 0:r.getDisplayMedia(t)):(Ge.info("getUserMedia with",t),null===(n=navigator.mediaDevices)||void 0===n?void 0:n.getUserMedia(t).then((function(t){return e.audio&&(i.audioPermitted=!0),e.video&&(i.videoPermitted=!0),t})))}},{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(n,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(i){var a=i.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),n(d)):n(d):(Ge.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){n(e)}),o)}),o)),n(a)}))}else o(new i(a.BrowserNotSupported,"enumerateDevices is not supported"))}))}}])}();Object.defineProperty(Ve,"videoPermitted",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(Ve,"audioPermitted",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(Ve,"_instance",{enumerable:!0,configurable:!0,writable:!0,value:new Ve}),Object.defineProperty(Ve,"getPlaybackDevices",{enumerable:!0,configurable:!0,writable:!0,value:function(){return Ve.getDevices({audio:!0}).then((function(e){return e.filter((function(e){return"audiooutput"===e.kind}))})).catch((function(e){throw u(e)}))}}),Object.defineProperty(Ve,"getCameras",{enumerable:!0,configurable:!0,writable:!0,value:function(){return Ve.getDevices({video:!0}).then((function(e){return Ge.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 Le(Le({},r),{},{toJSON:function(){return r}})}))})).catch((function(e){throw Ge.error("getCameras error",e),l(e)}))}}),Object.defineProperty(Ve,"getMicrophones",{enumerable:!0,configurable:!0,writable:!0,value:function(){return Ve.getDevices({audio:!0}).then((function(e){return Ge.info("getMicrophones",e),e.filter((function(e){return"audioinput"===e.kind}))})).catch((function(e){throw Ge.error("getMicrophones error",e),u(e)}))}});var Be,He,qe=function(e){return{width:pe[e][0],height:pe[e][1]}},We=function(t){var r,n=Object.create({}),i={};null!==(r=navigator)&&void 0!==r&&null!==(r=r.mediaDevices)&&void 0!==r&&r.getSupportedConstraints&&(i=navigator.mediaDevices.getSupportedConstraints(),console.log(i));var a=t.AEC,o=t.AGC,s=t.ANS;return t.deviceId&&(e.isSafari()?n.deviceId=t.deviceId:n.deviceId={exact:t.deviceId}),i.autoGainControl&&(n.autoGainControl={ideal:null==o||o}),i.echoCancellation&&(n.echoCancellation={ideal:null==a||a}),i.noiseSuppression&&(n.noiseSuppression={ideal:null==s||s}),n},Ye=function(t){if(!p(t)||!t.audio&&!t.video)return Promise.reject(new TypeError("Invalid constrains"));var r=t.audio,n=t.video;if(!xe(t)&&"object"===D(r)&&r.source===K.SCREENCAST)return Promise.reject(new TypeError("Cannot share screen without video."));if(xe(t)&&"object"===D(r)&&r.source!==K.SCREENCAST)return Promise.reject(new TypeError("Cannot capture video from screen cast while capture audio from other source."));if(!r&&!n)return Promise.reject(new TypeError("At least one of audio and video must be requested."));var i=Object.create({});if("object"===D(r)&&r.source===K.MIC||"object"===D(r)&&r.source===K.SCREENCAST?i.audio=We(r):i.audio=t.audio,"object"===D(n)){var a,o=n.frameRate,c=n.deviceId,u=n.source,l=n.facingMode,d=n.displaySurface,v=n.dimension;i.video=Object.create({}),f(o)&&(i.video.frameRate=Math.min(n.frameRate,30)),v&&(a=qe(v)),a&&a.width&&a.height&&(u===z.SCREENCAST||e.isFirefox()?(i.video.width=a.width,i.video.height=a.height):(i.video.width={ideal:a.width,max:a.width},i.video.height={ideal:a.height,max:a.height})),s(c)&&c&&(i.video.deviceId={exact:c}),u===z.SCREENCAST&&(e.isFirefox()&&(i.video.mediaSource="screen"),d&&["browser","window","monitor"].includes(d)&&(i.video.displaySurface=d)),l&&["user","environment"].includes(l)&&(i.video.facingMode=l)}else i.video=n;return Ve.getMedias(t,i)},Qe=void 0,Je=function(e){if(!e)return{};var t={id:e.id,active:e.active},r=e.getTracks().map((function(e){return function(e){var t={};return e?(t.kind=e.kind,t.label=e.label,t.id=e.id,t.contentHint=e.contentHint,t.enabled=e.enabled,t.muted=e.muted,t.readyState=e.readyState,t.settings=e.getSettings(),t.constraints=e.getConstraints(),t):t}(e)}));return t.trackInfos=r,t},Ke=function(e){if(!e)return!1;var t=e.getVideoTracks()[0];return t&&t.enabled&&!t.muted},ze=function(e,t){var r=(e.timestamp-((null==t?void 0:t.timestamp)||e.timestamp))/1e3;return r<=0&&(r=1),r},$e=function(e,t){return null!=e?[2,4,6,0][e]:null!==t?[3,0,0,0,1,1,2][t]:void 0},Xe=function(e,t){isNaN(e)&&(e=0),isNaN(t)&&(t=0);var r=e-t;return r<0&&(r=e),r},Ze=function(){var e=_(se.mark((function e(t){return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(t>0)){e.next=3;break}return e.next=3,new Promise((function(e){setTimeout(e,t)}));case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),et=function(e){return new Promise((function(t){d(t,1e3*e)}))},tt=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50,r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=null,i=0;return function(){for(var a=arguments.length,o=new Array(a),s=0;s<a;s++)o[s]=arguments[s];var c=Date.now();c-i>=t&&r?(e.apply(Qe,o),i=c):(n&&clearTimeout(n),n=setTimeout((function(){e.apply(Qe,o),i=c}),t))}},rt=t().log,nt="rtc-intersecting",it="visible",at="invisible",ot=["abort","canplay","canplaythrough","durationchange","emptied","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","ratechange","seeked","seeking","stalled","suspend","volumechange","waiting"],st=function(e){return"".concat(null==e?void 0:e.getAttribute(me),"-").concat(null==e?void 0:e.rtcPurpose)},ct=function(){return L((function e(t,r){var n=this;C(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(){n.mediaElementPool.forEach((function(e){return n._resetMediaElement(e)})),n.mediaElementPool=[],n.allElements.clear(),n.mediaElementsInUse.forEach((function(e){return n._resetMediaElement(e)})),n.mediaElementsInUse=[],document.removeEventListener("click",n._onUserInteraction),document.removeEventListener("touchstart",n._onUserInteraction),document.removeEventListener("visibilitychange",n._tryReloadOnPauseAndErrorWhenVisibleTriggerByVisible),n.mediaPlaybackCheckInterval&&(m(n.mediaPlaybackCheckInterval,"interval"),n.mediaPlaybackCheckInterval=null),[].concat(Oe(n.mediaElementPool),Oe(n.mediaElementsInUse)).forEach((function(e){var t;return null===(t=n.observer)||void 0===t?void 0:t.unobserve(e)}))}}),Object.defineProperty(this,"_tryReloadOnPauseAndErrorWhenVisible",{enumerable:!0,configurable:!0,writable:!0,value:function(e){n.mediaElementsInUse.forEach((function(t){if(t.srcObject){var r=t.srcObject;if(t.error){var i="".concat(e,": ").concat(st(t)," has error, error=").concat(t.error,",doc.visibilityState=").concat(document.visibilityState,", mediaStream="),a=Je(r);rt.debug(i,a),"visible"===document.visibilityState&&Ke(r)&&t.load()}if(t.paused){var o=!1;if(n.hasActivated&&"video"===n.mediaKind?function(e){return e&&e.getAttribute(nt)===it}(t)&&"visible"===document.visibilityState&&"visible"===getComputedStyle(t).visibility&&(o=!0):o=!0,o){var s="".concat(e,": ").concat(st(t)," paused, doc.visibilityState=").concat(document.visibilityState,", intersecting=").concat(t.getAttribute(nt),", mediaStream="),c=Je(r);rt.error(s,c),Ke(r)&&t.load(),t.paused&&t.play().catch((function(e){console.error("inPoll",e)}))}}}})),n.debouncer.debounce(n._tryReloadOnCurrentTimeFreeze.bind(n,e),1e3)}}),Object.defineProperty(this,"_tryReloadOnCurrentTimeFreeze",{enumerable:!0,configurable:!0,writable:!0,value:function(e){n.mediaElementsInUse.forEach((function(t){if(t.srcObject){var r=t.srcObject,i="video"===n.mediaKind?r.getVideoTracks()[0]:void 0;if(!t.paused&&n.currentTimeOfLastCheckMap.get(t)===t.currentTime&&!0!==(null==i?void 0:i.muted)){var a="".concat(e,": ").concat(st(t)," currentTime stop, doc.visibilityState=").concat(document.visibilityState,", curTime=").concat(t.currentTime,", mediaStream="),o=Je(r);return rt.error(a,o),void("visible"===document.visibilityState&&Ke(r)&&t.load())}n.currentTimeOfLastCheckMap.set(t,t.currentTime)}}))}}),Object.defineProperty(this,"_tryReloadOnPauseAndErrorWhenVisibleTriggerByVisible",{enumerable:!0,configurable:!0,writable:!0,value:function(){n._tryReloadOnPauseAndErrorWhenVisible("visibilityChange")}}),Object.defineProperty(this,"_elementDefaultErrorHandler",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=e.target,r="error event on ".concat(n.mediaKind," playback, mediaStream="),i=Je(null==t?void 0:t.srcObject),a=null==t?void 0:t.error;rt.error(r,i,a)}}),Object.defineProperty(this,"_elementDefaultPauseHandler",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=e.target,r="pause event on ".concat(n.mediaKind," playback, mediaStream="),i=Je(null==t?void 0:t.srcObject),a=null==t?void 0:t.error;rt.debug(r,i,a)}}),Object.defineProperty(this,"_elementDefaultPlayHandler",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=e.target,r="play event on ".concat(n.mediaKind," playback, mediaStream="),i=Je(null==t?void 0:t.srcObject);rt.debug(r,i)}}),Object.defineProperty(this,"_onUserInteraction",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e=[].concat(Oe(n.mediaElementPool),Oe(n.mediaElementsInUse));if(!n.hasActivated&&(n.hasActivated=!0,e.forEach((function(e){e.load()})),n._activatedListener))try{n._activatedListener()}catch(e){rt.error("error occurred when exec activatedListener",h(e))}n._tryReloadOnPauseAndErrorWhenVisible("userInteract")}}),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(nt,it):null===(r=e.target)||void 0===r||r.setAttribute(nt,at)}))})));for(var i=1;i<=r;i++)this._createElement("".concat(t,"-").concat(i));document.addEventListener("click",this._onUserInteraction,!0),document.addEventListener("touchstart",this._onUserInteraction,!0),document.addEventListener("visibilitychange",this._tryReloadOnPauseAndErrorWhenVisibleTriggerByVisible,!0),this.mediaPlaybackCheckInterval=d((function(){n.hasActivated&&n._tryReloadOnPauseAndErrorWhenVisible("intervalCheck")}),4e3,"interval")}),[{key:"addAtttribute",value:function(e){if(e.autoplay=!0,e.setAttribute(me,"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())||(t=this._createElement("".concat(this.mediaKind,"-").concat(++this.mediaElementCount))),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&&(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(me,e),this.mediaElementPool.push(r),this.allElements.add(r),r}},{key:"_resetMediaElement",value:function(e){ot.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}}])}(),ut=function(){return Be||pt(),Be},lt=function(){return He||pt(),He},dt=e.isIOS()||e.isAndroid()?9:25,pt=function(){Be||(Be=new ct("audio",2)),He||(He=new ct("video",dt))},ft=new AudioContext,vt=function(e){var t=e.getAudioTracks(),r=ft.createMediaStreamDestination();return t.forEach((function(e){ft.createMediaStreamSource(new MediaStream([e])).connect(r)})),r.stream.getAudioTracks()[0]},mt=function(e,t,r){"running"!==e.state&&e.resume(),r.connect(t),t.fftSize=2048,t.smoothingTimeConstant=.4;var n=new Float32Array(t.fftSize);if(t.getFloatTimeDomainData)t.getFloatTimeDomainData(n);else{var i=new Uint8Array(t.fftSize);t.getByteTimeDomainData(i);for(var a=0;a<n.length;++a)n[a]=i[a]/128-1}for(var o=0,s=0;s<n.length;s++)o+=n[s]*n[s];return Math.max(10*Math.log10(o/n.length)+100,0)/100},ht=function(e){var t=document.createElement("canvas"),r=t.getContext("2d"),n=e.videoHeight,i=e.videoWidth;return t.width=i,t.height=n,r.drawImage(e,0,0,i,n),t.toDataURL("image/png")},gt=ut(),yt=lt(),bt=t().getLoggerWithPrefix("[rtc-playerMgr]"),St=L((function e(t,r,n,i){var a=this;C(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,"mediaWrapper",{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(),n="live"===(null==r?void 0:r.readyState)&&(null==r?void 0:r.enabled)&&!(null!=r&&r.muted);if(Re._holdVideoLastFrame&&(n&&(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 i=a.canvas.getContext("2d");i.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),i.drawImage(a.mediaEl,0,0,s,o)}}}),Object.defineProperty(this,"checkSwitchSnapshot",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e,t,r,n,i,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||bt.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===(n=a.mediaEl)||void 0===n?void 0:n.readyState});(a.lastCheckResult={msTrackPlayable:c,elPlaying:a.isPlayerPlaying()},Re._holdVideoLastFrame)&&(c&&(null===(i=a.mediaEl)||void 0===i||null===(i=i.srcObject)||void 0===i||null===(o=i.getVideoTracks)||void 0===o||null===(o=o.call(i))||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&&(bt.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;bt.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(){a.mediaWrapper.appendChild(a.mediaEl),a.mediaEl.pause();var e=a.track.sfuStream||new MediaStream([a.track.getMediaStreamTrack()]);a.mediaEl.srcObject=e,a.mediaEl.load(),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.stopCheckPlayState(),a.startCheckPlayState()}}),Object.defineProperty(this,"stop",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e;if(a.stopCheckPlayState(),a.mediaEl&&a.track&&a.mediaWrapper){var t,r;if(a.mediaEl.pause(),null!==(e=a.mediaWrapper)&&void 0!==e&&e.contains(a.mediaEl))null===(t=a.mediaWrapper)||void 0===t||null===(r=t.removeChild)||void 0===r||r.call(t,a.mediaEl);a.mediaEl.srcObject=null,a.canvas=null,"audio"===a.track.trackMediaType?gt.pushElement(a.mediaEl):yt.pushElement(a.mediaEl)}}}),Object.defineProperty(this,"switchSnapshot",{enumerable:!0,configurable:!0,writable:!0,value:function(){bt.info("switchSnapshot trackid",a.track.getTrackId()),a.mediaEl.srcObject=a.snapshotMediaStream,a.mediaEl.play().catch((function(e){bt.info("snapshot play error, trackid",a.track.getTrackId(),h(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){bt.info("switchOriginVideo trackid",a.track.getTrackId());var n=a.track.sfuStream||new MediaStream([a.track.getMediaStreamTrack()]);a.mediaEl.srcObject=n,a.mediaEl.play().catch((function(e){bt.info("switchOriginVideo play error, trackid",a.track.getTrackId(),h(e))}))}}),1e3)}}),this.mediaWrapper=t,this.track=r,this.playerConfig=n,this.mediaEl=i,this.mediaEl.setAttribute(ye,this.track.getTrackId()),this.canvas=document.createElement("canvas"),this.canvas.setAttribute(ye,this.track.getTrackId()),this.snapshotMediaStream=this.canvas.captureStream(4)})),kt=new(function(){return L((function e(){C(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 n,o=this;bt.info("call play",e.getTrackId());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 i(a.InvaildArgument,"wrapper dom not found");var d=r||{},p=d.mirror,f=d.fit;if((n=this.playControllerArr.find((function(e){return e.mediaWrapper===t})))&&(null===(u=n.track)||void 0===u?void 0:u.getTrackId())!==(null==e?void 0:e.getTrackId()))return this.stop(n.track,t),void this.play(e,t,r);n?(n.mediaEl.pause(),!e.sourceMirror!=!p?n.mediaEl.style.transform="scaleX(-1)":n.mediaEl.style.transform="",f&&(n.mediaEl.style.objectFit=f),n.mediaEl.srcObject=c,n.mediaEl.load()):(function(e,t){e.style.width="100%",e.style.height="100%";var r=t.mirror,n=t.fit;!0===r&&(e.style.transform="scaleX(-1)"),n&&(e.style.objectFit=n)}((n=new St(l,e,r,lt().popElement())).mediaEl,{mirror:!e.sourceMirror!=!p,fit:f}),n.playVideo(),this.playControllerArr.push(n))}else(n=this.playControllerArr.find((function(t){var r;return(null===(r=t.track)||void 0===r?void 0:r.getTrackId())===e.getTrackId()})))?(n.mediaEl.pause(),n.mediaEl.srcObject=c,n.mediaEl.load()):((n=new St(null,e,null,ut().popElement())).playAudio(),this.playControllerArr.push(n));n.mediaEl.paused&&n.mediaEl.play().catch((function(e){"NotAllowedError"===e.name?(bt.error("autoplay failed",h(e)),g.emit("autoplay-failed",o)):bt.warn("".concat(s," play has exception"),h(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:"stop",value:function(e,t){var r=this.playControllerArr.filter((function(r){var n;return t?r.mediaWrapper===t:(null===(n=r.track)||void 0===n?void 0:n.getTrackId())===(null==e?void 0:e.getTrackId())}));if(r.length){r.forEach((function(e){e.stop()}));for(var n=this.playControllerArr.length-1;n>=0;n--)r.includes(this.playControllerArr[n])&&this.playControllerArr.splice(n,1)}}},{key:"findDom",value:function(e){if(!e)return null;var t="string"==typeof e?document.querySelector(e):e;return document.contains(t)?t:null}}])}()),Pt=function(){return kt};function wt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(wt=function(){return!!e})()}window.playerMgr=kt;var Ot,Tt=t(),Et=Tt.log,It=Tt.trace,Rt=Et,Mt=Pt(),At=function(){function e(t,r){var n,i,a,o;return C(this,e),i=this,a=F(a=e),n=N(i,wt()?Reflect.construct(a,[],F(i).constructor):a.apply(i,o)),Object.defineProperty(n,"trackMediaType",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"source",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"logger",{enumerable:!0,configurable:!0,writable:!0,value:It}),Object.defineProperty(n,"sourceNode",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"audioContext",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"analyser",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"trackSettings",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"sfuStream",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"mediaStreamTrack",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"trackId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"sourceMirror",{enumerable:!0,configurable:!0,writable:!0,value:!1}),t?(n.trackMediaType=t.kind,n.trackSettings=t.getSettings()):r&&(n.trackMediaType="audio"),"audio"===n.trackMediaType&&(n.audioContext=ft,n.analyser=n.audioContext.createAnalyser()),n.trackId="".concat(n.trackMediaType,"_").concat(y(6)),n.setMediaStreamTrack(t,r),n}return G(e,c),L(e,[{key:"isPlaying",get:function(){return Mt.isPlaying(this)}},{key:"emit",value:function(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];return Rt.info("track emit event",t,null==n?void 0:n[0]),(a=e,o="emit",s=this,u=ue(F(1&(c=3)?a.prototype:a),o,s),2&c&&"function"==typeof u?function(e){return u.apply(s,e)}:u)([t].concat(n));var a,o,s,c,u}},{key:"getTrackId",value:function(){return this.trackId}},{key:"setMediaStreamTrack",value:function(e,t){var r=this,n=this.mediaStreamTrack;if(n&&(n.onended=null),e||t){var o;if(n&&e&&(e.enabled=n.enabled),"audio"===this.trackMediaType)if(this.sourceNode&&(this.sourceNode.disconnect(),this.sourceNode=null),e)this.sourceNode=null===(o=this.audioContext)||void 0===o?void 0:o.createMediaStreamSource(new MediaStream([e]));else if(t){var s,c=vt(t);this.sourceNode=null===(s=this.audioContext)||void 0===s?void 0:s.createMediaStreamSource(new MediaStream([c]))}e?(this.mediaStreamTrack=e,this.mediaStreamTrack.onended=function(){r.source===z.SCREENCAST?r.logger.sendEvent("SCREEN_DEVICE_STOP"):r.source===K.MIC?new i(a.MicInterrupt):r.source===z.CAMERA&&new i(a.CameraInterrupt)}):t&&(this.sfuStream=t)}}},{key:"replaceTrack",value:function(e,t){Et.info("replaceTrack",e,t),t&&this.isPlaying&&this.stop(),this.replaceTrackInner(e,null,!0)}},{key:"replaceTrackInner",value:function(e,t,r){this.setMediaStreamTrack(e,t),this.emit(ge,"replace",this),this.innnerPlay({updated:!0})}},{key:"setSource",value:function(e){e===z.CAMERA?this.logger.sendEvent("VIDEO_DEVICE_START"):e===z.SCREENCAST?this.logger.sendEvent("SCREEN_DEVICE_START"):e===K.MIC&&this.logger.sendEvent("AUDIO_DEVICE_START"),this.source=e}},{key:"stop",value:function(e){Et.info("stop paly track ".concat(this.getTrackId())),Mt.stop(this,e)}},{key:"innnerPlay",value:function(e){var t=this,r=e.mediaWrapperElement,n=e.config;e.updated?Mt.getPlayCtrls(this).forEach((function(e){e.mediaWrapper?Mt.findDom(e.mediaWrapper)?Mt.play(t,e.mediaWrapper,e.playerConfig):Mt.stop(t,e.mediaWrapper):Mt.play(t,e.mediaWrapper,e.playerConfig)})):Mt.play(this,r,n);if("audio"===this.trackMediaType)try{"running"!==this.audioContext.state&&this.audioContext.resume()}catch(e){Et.debug("resume audioContext failed: ".concat(h(e)))}}},{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 n,i,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=(n=a.call(r)).done)&&(s.push(n.value),s.length!==t);c=!0);}catch(e){u=!0,i=e}finally{try{if(!c&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return s}}(e,t)||we(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.")}()}function Ct(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Dt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ct(Object(r),!0).forEach((function(t){ce(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ct(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"}(Ot||(Ot={}));var xt=ce(ce(ce(ce(ce(ce({},Ot.LLD,"lld"),Ot.LD,"ld"),Ot.SD,"sd"),Ot.HD,"hd"),Ot.FHD,"fhd"),Ot.QHD,"qhd"),jt={high:[2764800,4915200],QHD:[2764800,4915200],FHD:[1228800,2764800],HD:[307200,1228800],SD:[76800,307200],LD:[0,76800],low:[0,76800]},Lt=function(e){return 2560===e.width&&1440===e.height},Nt=function(e,t){var r=Ut(e,t),n=function(e,t){var r={high:oe.QHD,low:oe.LD,QHD:oe.QHD,FHD:oe.FHD,HD:oe.HD,SD:oe.SD,LD:oe.LD},n=r[e]||oe.None,i=jt[e],a=t[t.length-1].width*t[t.length-1].height;if(a<i[0]){var o=Object.entries(jt).find((function(e){var t=_t(e,2);t[0];var r=t[1];return a>r[0]&&a<=r[1]}));n=r[_t(o,1)[0]]}return n}(e,t);return{resolution:r,resolutionLevel:n}},Ft=function(e){return{0:"LLD",1:"LD",2:"LD",4:"SD",8:"HD",16:"FHD",32:"QHD"}[e]},Ut=function(e,t){var r=jt[e],n=t.length,i=t[t.length-1];if(("FHD"===e||"high"===e)&&Lt(i))return i;if(t[0].width*t[0].height>jt.FHD[1])return t[0];for(var a=0;n>a;a++){var o=t[a].width*t[a].height;if(o>=r[0]&&r[1]>=o)return t[a]}for(var s=n-1;s>=0;s--){var c=t[s].width*t[s].height;if(r[1]>c)return t[s]}return t[0]},Gt=[49152,76800,307200,1228800,2764800,4915200],Vt=[200,350,1e3,1800,2828,5600],Bt=[[256,144],[320,180],[640,360],[1280,720],[1920,1080],[2560,1440]],Ht=[[256,192],[320,240],[640,480],[1280,960],[1920,1440],[2560,1920]],qt=function(e,t){var r=Ot.FHD,n=e*t;return n<=Gt[Ot.LLD]?r=Ot.LLD:n<=Gt[Ot.LD]?r=Ot.LD:n<=Gt[Ot.SD]?r=Ot.SD:n<=Gt[Ot.HD]?r=Ot.HD:n<=Gt[Ot.FHD]?r=Ot.FHD:n<=Gt[Ot.QHD]&&(r=Ot.QHD),r},Wt=function(e,t,r,n){var i=0,a=0;if(n<=r)return[i=e,a=t];if(t>e){var o=[e,t];t=o[0],e=o[1]}if(16*t==9*e)i=Bt[r][0],a=Bt[r][1];else if(4*t==3*e)i=Ht[r][0],a=Ht[r][1];else{var s=Math.sqrt(1*Bt[r][0]*Bt[r][1]/e/t);s=1*(i=(i=Math.round(e*s))+15&-16)/e,a=Math.round(t*s)}return[i,a]},Yt=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;if(!n){var i=1;30!==r&&(i=Math.sqrt(r/30));var a=Vt[qt(e,t)];n=Math.round(Math.max(i*a,50))}return n},Qt=function(e){var t=e.width,r=e.height,n=e.frameRate,i=e.maxBitrate,a=e.resolutionLevel,o=qt(t,r),s=[],c=o>=Ot.HD?3:2,u=function(e){var a=_t(Wt(t,r,e,o),2),s=a[0],c=a[1],u=Vt[e]/Vt[o],l=1/(c/r);return{targetWidth:s,rid:xt[e],targetHeight:c,minBitrate:50,maxFramerate:n,maxBitrate:Math.round(Math.max(30,i*u)),scaleResolutionDownBy:l}};o>Ot.LLD&&s.push(Dt({activeForBitrateMap:!1,activeForRealuse:Math.pow(2,Ot.LLD)===a},u(Ot.LLD))),o>Ot.LD&&s.push(Dt({activeForBitrateMap:c>1,activeForRealuse:Math.pow(2,Ot.LD)===a},u(Ot.LD))),o>Ot.SD&&s.push(Dt({activeForBitrateMap:c>2,activeForRealuse:Math.pow(2,Ot.SD)===a},u(Ot.SD))),o===Ot.FHD?(s.push(Dt({activeForBitrateMap:!1,activeForRealuse:!1},u(Ot.HD))),s.push(Dt({activeForBitrateMap:!0,activeForRealuse:Re.republish?Math.pow(2,4)===a||a===Math.pow(2,3):Math.pow(2,4)===a},u(Ot.FHD)))):s.push(Dt({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},Jt=function(e,t){var r=qt(e,t);return Math.pow(2,r)},Kt=function(e){var t,r=e.getMaxBitrate(),n=null===(t=e.getMediaStreamTrack())||void 0===t?void 0:t.getSettings(),i=(null==n?void 0:n.width)||e.trackSettings.width,a=(null==n?void 0:n.height)||e.trackSettings.height,o=(null==n?void 0:n.frameRate)||e.trackSettings.frameRate,s=!Re.simulcast||e.source===z.SCREENCAST||Lt({width:i,height:a}),c={resolutionLevel:Jt(i,a),encodings:[]};return s?c.encodings=[{maxFramerate:o,maxBitrate:r,scaleResolutionDownBy:1,activeForBitrateMap:!0,activeForRealuse:!0,rid:"",minBitrate:Math.round((r+30)/2),targetWidth:i,targetHeight:a}]:Re.republish?c.encodings=Qt({width:1920,height:1080,frameRate:30,maxBitrate:Yt(1920,1080,30),resolutionLevel:c.resolutionLevel}):c.encodings=Qt({width:i,height:a,frameRate:o,maxBitrate:r,resolutionLevel:c.resolutionLevel}),c};function zt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function $t(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){ce(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 Xt(e,t,r){return t=F(t),N(e,Zt()?Reflect.construct(t,r||[],F(e).constructor):t.apply(e,r))}function Zt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Zt=function(){return!!e})()}function er(e,t,r,n){var i=ue(F(e.prototype),t,r);return"function"==typeof i?function(e){return i.apply(r,e)}:i}var tr=Pt(),rr=t().getLoggerWithPrefix("[rtc-localtrack]"),nr=function(){function e(t){var r;if(C(this,e),r=Xt(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 n=t.muted;r.muted=n}return r.enabled=!0,r}return G(e,At),L(e,[{key:"setMediaStreamTrack",value:function(t){var r=this;er(e,"setMediaStreamTrack",this)([t]),t&&(this.trackSettings=t.getSettings(),t.onended=function(){r.stop(),r.close&&r.close(),r.emit("track-ended")})}},{key:"play",value:function(e,t){this.innnerPlay({mediaWrapperElement:e,config:t})}},{key:"setEnabled",value:function(e){return rr.info("setEnabled",e),this.isClosed?Promise.reject(new i(a.InvaildState)):(this.enabled=e,this.emit(ge,e?"unmute":"mute"),e?this.updateNewTrack():(null===(t=this.mediaStreamTrack)||void 0===t||t.stop(),this.setMediaStreamTrack(null),this.source===z.CAMERA?this.logger.sendEvent("VIDEO_DEVICE_STOP"):this.source===z.SCREENCAST&&this.logger.sendEvent("SCREEN_DEVICE_STOP"),Promise.resolve()));var t}},{key:"close",value:function(){var e;rr.info("".concat(this.source," track:").concat(this.getTrackId()," close")),this.isClosed||(this.isClosed=!0,this.isPlaying&&this.stop(),this.emit(ge,"stop"),null===(e=this.mediaStreamTrack)||void 0===e||e.stop(),this.setMediaStreamTrack(null),this.audioContext&&(this.sourceNode=null,this.analyser=null,this.audioContext=null),this.source===z.CAMERA?this.logger.sendEvent("VIDEO_DEVICE_STOP"):this.source===z.SCREENCAST&&this.logger.sendEvent("SCREEN_DEVICE_STOP"))}},{key:"setMuted",value:function(e){return rr.info("setMuted",e),this.isClosed?Promise.reject(new i(a.InvaildState)):(this.muted=e,this.mediaStreamTrack.enabled=!e,this.emit(ge,e?"mute":"unmute"),Promise.resolve())}},{key:"getAudioTrack",value:function(){var e=this;return rr.debug("gengrate new audioTrack"),new Promise((function(t,r){var n;Ye({audio:$t({source:e.source},e.config)}).then((function(e){n=e.getAudioTracks()[0]})).catch((function(t){try{var i=e.audioContext.createOscillator(),a=e.audioContext.createMediaStreamDestination();i.connect(a),n=a.stream.getAudioTracks()[0]}catch(e){rr.error("gengrate new audioTrack error",u(t)),r(u(t))}})).finally((function(){n&&t(n)}))}))}},{key:"getVideoTrack",value:function(){var e=this;return rr.info("gengrate new videoTrack",this.config),new Promise((function(t,r){var n,i=$t({source:e.source},e.config);e.config.facingMode&&e.config.deviceId&&(rr.info("ignore deviceId param to create videoTrack because facingMode is",e.config.facingMode),delete i.deviceId),Ye({video:i,audio:!1}).then((function(e){n=e.getVideoTracks()[0],t(n)})).catch((function(e){rr.error("gengrate new videoTrack error",l(e)),r(l(e))}))}))}},{key:"updateNewTrack",value:function(){var e=this,t=this.getMediaStreamTrack();return t.onended=null,rr.info("stop oldTrack first"),t.stop(),"audio"===this.trackMediaType?this.getAudioTrack().then((function(t){return e.replaceTrackInner(t,null,!0)})):"video"===this.trackMediaType?this.getVideoTrack().then((function(t){return e.replaceTrackInner(t,null,!0)})):void 0}},{key:"setDevice",value:(t=_(se.mark((function e(t){var r,n,i;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(rr.info("setDevice",t),!this.isClosed){e.next=3;break}return e.abrupt("return");case 3:if(!(this instanceof or)||"user"!==t&&"environment"!==t){e.next=7;break}this.config.facingMode=t,e.next=11;break;case 7:if((this.config.deviceId||(null===(r=this.mediaStreamTrack)||void 0===r||null===(r=r.getSettings())||void 0===r?void 0:r.deviceId)||(null===(n=this.mediaStreamTrack)||void 0===n||null===(i=n.getConstraints)||void 0===i||null===(i=i.call(n))||void 0===i?void 0:i.deviceId))!==t){e.next=10;break}return e.abrupt("return");case 10:this.config.deviceId=t;case 11:return e.abrupt("return",this.updateNewTrack());case 12:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"getTrackLabel",value:function(){if(rr.info("getTrackLabel"),!this.isClosed)return this.mediaStreamTrack.label}},{key:"getMaxBitrate",value:function(){if(!this.isClosed)return this.maxBitrate}}]);var t}(),ir=function(){function e(t,r){var n;if(C(this,e),(n=Xt(this,e,[t])).config=r,t){var i=t.getSettings(),a=i.width,o=i.height;n.maxBitrate=Yt(a,o,r.frameRate,r.maxBitrate)}return n}return G(e,nr),L(e,[{key:"optimizationMode",get:function(){return this.config.optimizationMode}},{key:"setEncoderConfiguration",value:function(e){var t=this;rr.info("videoTrack ".concat(this.getTrackId()," setEncoderConfiguration"),e);var r=e.dimension,n=e.frameRate,o=e.maxBitrate,s=e.optimizationMode,c=e.mirror;if(n&&Number.isNaN(n))return Promise.reject(new i(a.InvaildArgument,"invalid frameRate"));if(r&&!pe[r])return Promise.reject(new i(a.InvaildArgument,"invalid dimension"));!c!=!this.config.mirror&&(this.emit(ge,"mirror",c),this.config.mirror=c),s&&s!==this.optimizationMode&&(this.config.optimizationMode=s,this.emit(ge,"optimizationMode"));var u=!1;if(r&&this.config.dimension!==r&&(this.config.dimension=r,u=!0),n&&this.config.frameRate!==Math.min(30,n)&&(this.config.frameRate=Math.min(30,n),u=!0),o&&this.maxBitrate!==o&&(u=!0),!u)return Promise.resolve();var d=$t({frameRate:this.config.frameRate},qe(this.config.dimension)),p=this.getMediaStreamTrack();return null==p?void 0:p.applyConstraints(d).then((function(){var e,r=null===(e=t.getMediaStreamTrack())||void 0===e?void 0:e.getSettings(),n=r.width,i=r.height;t.maxBitrate=Yt(n,i,t.config.frameRate,o),console.log(n,i,d,t.maxBitrate),t.emit(ge,"republish",t)})).catch((function(e){var r=l(e);throw rr.error("videoTrack ".concat(t.getTrackId()," setEncoderConfiguration error"),r),r}))}},{key:"getCurrentFrameData",value:function(){return rr.info("getCurrentFrameData"),this.isClosed||!this.isPlaying?null:ht(tr.getElement(this)[0])}},{key:"play",value:function(t,r){return rr.info("local video play"),er(e,"play",this)([t,r])}}])}(),ar=function(){function e(t){return C(this,e),Xt(this,e,[t])}return G(e,nr),L(e,[{key:"setVolume",value:function(e){rr.info("setVolume",e),this.isClosed||tr.getElement(this)[0]&&(tr.getElement(this)[0].volume=e)}},{key:"getVolume",value:function(){if(rr.info("getVolume"),!this.isClosed)return tr.getElement(this)[0]?tr.getElement(this)[0].volume:void 0}},{key:"getVolumeLevel",value:function(){return this.isClosed?0:mt(this.audioContext,this.analyser,this.sourceNode)}},{key:"play",value:function(){return rr.info("local audio play"),er(e,"play",this)([])}}])}(),or=function(){function e(t,r){var n;return C(this,e),(n=Xt(this,e,[t,r])).setSource(z.CAMERA),n}return G(e,ir),L(e)}(),sr=function(){function e(t,r){var n;return C(this,e),(n=Xt(this,e,[t])).config=r,n.setSource(K.MIC),n.analyser=n.audioContext.createAnalyser(),n}return G(e,ar),L(e,[{key:"setVolume",value:function(e){rr.info("setVolume",e),this.isClosed||tr.getElement(this)[0]&&(tr.getElement(this)[0].volume=e)}},{key:"getVolume",value:function(){if(rr.info("getVolume"),!this.isClosed)return tr.getElement(this)[0]?tr.getElement(this)[0].volume:void 0}}])}(),cr=function(){var e=_(se.mark((function e(t){var r,n,i,a,o,s,c,l,d,p;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return rr.info("createMicrophoneAudioTrack",t),r={AEC:!0,AGC:!0,ANS:!0},i=(n=t||r).AEC,a=void 0===i||i,o=n.AGC,s=void 0===o||o,c=n.ANS,l=void 0===c||c,e.prev=3,e.next=6,Ye({video:!1,audio:{deviceId:null==t?void 0:t.deviceId,source:K.MIC,AEC:a,AGC:s,ANS:l}});case 6:return d=e.sent,p=d.getAudioTracks()[0],rr.info("MicrophoneAudioTrack created"),e.abrupt("return",new sr(p,Object.assign({},t,{AEC:a,AGC:s,ANS:l})));case 12:throw e.prev=12,e.t0=e.catch(3),u(e.t0);case 15:case"end":return e.stop()}}),e,null,[[3,12]])})));return function(t){return e.apply(this,arguments)}}(),ur=function(){var e=_(se.mark((function e(t){var r,n,i,a,o,s,c,u,d;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return rr.info("createCameraVideoTrack",t),r=t.deviceId,n=t.facingMode,i=t.dimension,a=void 0===i?"VD_640x480":i,o=t.optimizationMode,s=void 0===o?"balanced":o,c=Math.min(30,t.frameRate||15),e.prev=3,e.next=6,Ye({video:{deviceId:r,source:z.CAMERA,frameRate:c,dimension:a,facingMode:n},audio:!1});case 6:return u=e.sent,d=u.getVideoTracks()[0],rr.info("CameraVideoTrack created"),d.addEventListener("ended",(function(){return rr.info("cam track ended",d.id)})),d.addEventListener("unmute",(function(){return rr.info("cam track unmute",d.id)})),d.addEventListener("mute",(function(){return rr.info("cam track mute",d.id)})),e.abrupt("return",new or(d,Object.assign({},t,{frameRate:c,dimension:a,optimizationMode:s})));case 15:throw e.prev=15,e.t0=e.catch(3),l(e.t0);case 18:case"end":return e.stop()}}),e,null,[[3,15]])})));return function(t){return e.apply(this,arguments)}}(),lr=function(){var e=_(se.mark((function e(t){var r,n,i,a,o,s,c,u,l,d;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return rr.info("createScreenVideoTrack",t),r=t.displaySurface,n=void 0===r?"monitor":r,i=t.dimension,a=void 0===i?"VD_1920x1080":i,o=t.optimizationMode,s=void 0===o?"detail":o,c=Math.min(t.frameRate||5,30),e.prev=3,e.next=6,Ye({video:{source:z.SCREENCAST,displaySurface:n,frameRate:c,dimension:a},audio:!1});case 6:return u=e.sent,l=u.getVideoTracks()[0],(d=new ir(l,Object.assign({},t,{frameRate:c,dimension:a,optimizationMode:s}))).setSource(z.SCREENCAST),rr.info("ScreenVideoTrack created"),l.addEventListener("ended",(function(){return rr.info("screen video track ended",l.id)})),l.addEventListener("unmute",(function(){return rr.info("screen video track unmute",l.id)})),l.addEventListener("mute",(function(){return rr.info("screen video track mute",l.id)})),e.abrupt("return",[d]);case 17:throw e.prev=17,e.t0=e.catch(3),b(e.t0);case 20:case"end":return e.stop()}}),e,null,[[3,17]])})));return function(t){return e.apply(this,arguments)}}(),dr=function(){var e=_(se.mark((function e(t,r){var n,i,a,o,s,c,u,d,p,f,v,m,h,g,y,b,S,k,P,w;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return rr.info("createMicrophoneAndCameraTracks",t,r),n=Math.min(t.frameRate||15,30),i=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,h=void 0===m||m,g=p.ANS,y=void 0===g||g,e.prev=5,e.next=8,Ye({video:{deviceId:i,source:z.CAMERA,frameRate:n,dimension:s,facingMode:a},audio:{deviceId:null==r?void 0:r.deviceId,source:K.MIC,AEC:v,AGC:h,ANS:y}});case 8:return b=e.sent,S=b.getVideoTracks()[0],k=b.getAudioTracks()[0],rr.info("CameraVideoTrack and MicrophoneTrack created"),S.addEventListener("ended",(function(){return rr.info("cam track ended",S.id)})),S.addEventListener("unmute",(function(){return rr.info("cam track unmute",S.id)})),S.addEventListener("mute",(function(){return rr.info("cam track mute",S.id)})),k.addEventListener("ended",(function(){return rr.info("mic track ended",k.id)})),k.addEventListener("unmute",(function(){return rr.info("mic track unmute",k.id)})),k.addEventListener("mute",(function(){return rr.info("mic track mute",k.id)})),P=new or(S,Object.assign({},t,{frameRate:n,dimension:s,optimizationMode:u})),w=new sr(k,Object.assign({},Object.assign({},r,{AEC:v,AGC:h,ANS:y}))),e.abrupt("return",[P,w]);case 23:throw e.prev=23,e.t0=e.catch(5),l(e.t0);case 26:case"end":return e.stop()}}),e,null,[[5,23]])})));return function(t,r){return e.apply(this,arguments)}}(),pr=function(){var e=_(se.mark((function e(t){var r,n,o,s,c,u,l,d;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(rr.info("createCustomVideoTrack",t),n=(r=t||{}).mediaStreamTrack,o=r.dimension,s=void 0===o?"VD_640x480":o,c=r.optimizationMode,u=void 0===c?"balanced":c,l=Math.min(t.frameRate||15,30),n instanceof MediaStreamTrack&&"video"===n.kind){e.next=5;break}throw new i(a.InvaildArgument,"missing video mediaStreamTrack");case 5:return n.addEventListener("ended",(function(){return rr.info("custom video track ended",n.id)})),n.addEventListener("unmute",(function(){return rr.info("custom video track unmute",n.id)})),n.addEventListener("mute",(function(){return rr.info("custom video track mute",n.id)})),(d=new ir(n,Object.assign({},t,{frameRate:l,dimension:s,optimizationMode:u}))).setSource(z.CAMERA),e.abrupt("return",d);case 11:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),fr=function(){var e=_(se.mark((function e(t){var r,n;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(rr.info("createCustomAudioTrack",t),(r=(t||{}).mediaStreamTrack)instanceof MediaStreamTrack&&"audio"===r.kind){e.next=4;break}throw new i(a.InvaildArgument,"missing audio mediaStreamTrack");case 4:return r.addEventListener("ended",(function(){return rr.info("custom audio track ended",r.id)})),r.addEventListener("unmute",(function(){return rr.info("custom audio track unmute",r.id)})),r.addEventListener("mute",(function(){return rr.info("custom audio track mute",r.id)})),(n=new ar(r)).setSource(K.MIC),e.abrupt("return",n);case 10:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();function vr(e,t,r,n){var i=ue(F(1&n?e.prototype:e),t,r);return 2&n&&"function"==typeof i?function(e){return i.apply(r,e)}:i}function mr(e,t,r){return t=F(t),N(e,hr()?Reflect.construct(t,r||[],F(e).constructor):t.apply(e,r))}function hr(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(hr=function(){return!!e})()}var gr,yr=t().log,br=Pt(),Sr=function(){function e(t,r,n){var i;return C(this,e),i=mr(this,e,[t,n]),Object.defineProperty(i,"userId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"subscription",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),i.userId=r,i}return G(e,At),L(e,[{key:"getUserId",value:function(){return yr.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)}}])}(),kr=function(){function e(t,r,n){var i;return C(this,e),i=mr(this,e,[t,r,n]),Object.defineProperty(i,"deviceId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),i.deviceId="",i}return G(e,Sr),L(e,[{key:"getMediaStreamTrack",value:function(){return Re.audioSFU?vt(this.sfuStream):vr(e,"getMediaStreamTrack",this,3)([])}},{key:"replaceStream",value:function(e,t){yr.info("replaceRemote Audio",e,t),t&&this.isPlaying&&this.stop(),this.replaceTrackInner(null,e)}},{key:"setVolume",value:function(e){yr.info("setVolume",e),br.getElement(this)[0]&&(br.getElement(this)[0].volume=e)}},{key:"getVolume",value:function(){if(yr.info("getVolume"),br.getElement(this)[0])return br.getElement(this)[0].volume}},{key:"setSpeaker",value:function(e){var t=this;return yr.info("setSpeaker",e),new Promise((function(r,n){var o,s=br.getElement(t)[0];s||n(new i(a.InvaildState,"please playout audio first")),s.setSinkId||n(new i(a.SpeakerSetNotSupported)),null===(o=s.setSinkId)||void 0===o||o.call(s,e).then((function(){t.deviceId=e,r()})).catch((function(e){n(u(e))}))}))}},{key:"getVolumeLevel",value:function(){return mt(this.audioContext,this.analyser,this.sourceNode)}},{key:"play",value:function(){return yr.info("remote audio play"),vr(e,"innnerPlay",this,3)([{}])}}])}(),Pr=function(){function e(t,r){return C(this,e),mr(this,e,[t,r])}return G(e,Sr),L(e,[{key:"play",value:function(t,r){return yr.info("remote video play"),vr(e,"innnerPlay",this,3)([{mediaWrapperElement:t,config:r}])}},{key:"setSourceMirror",value:function(t){t!==this.sourceMirror&&(yr.info("remote video track set Mirror",t),this.sourceMirror=t,this.isPlaying&&vr(e,"innnerPlay",this,3)([{updated:!0}]))}},{key:"getCurrentFrameData",value:function(){return yr.info("getCurrentFrameData"),this.isPlaying?ht(br.getElement(this)[0]):null}}])}();!function(e){var t,r,n,i,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",(n=e.SyncResponseCode||(e.SyncResponseCode={}))[n.SYNC_OK=0]="SYNC_OK",n[n.SYNC_PART_SUC=10]="SYNC_PART_SUC",n[n.SYNC_DATA_SIZE_LIMITED=11]="SYNC_DATA_SIZE_LIMITED",n[n.SYNC_NOT_SUPPORT_TYPE=12]="SYNC_NOT_SUPPORT_TYPE",n[n.SYNC_NOT_FOUND=13]="SYNC_NOT_FOUND",n[n.SYNC_CHANNEL_NOT_EXIST=14]="SYNC_CHANNEL_NOT_EXIST",n[n.SYNC_INTERNAL_ERROR=15]="SYNC_INTERNAL_ERROR",(i=e.GroupUpdate||(e.GroupUpdate={}))[i.GROUP_UPDATE_AUDIO_STREAM_LOST=0]="GROUP_UPDATE_AUDIO_STREAM_LOST",i[i.GROUP_UPDATE_AUDIO_STREAM_RECOVER=1]="GROUP_UPDATE_AUDIO_STREAM_RECOVER",i[i.GROUP_UPDATE_ADD_PARTICIPANTS=2]="GROUP_UPDATE_ADD_PARTICIPANTS",i[i.GROUP_UPDATE_REMOVE_PARTICIPANTS=3]="GROUP_UPDATE_REMOVE_PARTICIPANTS",i[i.GROUP_UPDATE_SET_PROPERTIES=4]="GROUP_UPDATE_SET_PROPERTIES",i[i.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"}(gr||(gr={}));var wr=S({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:"uint32",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}}}}}}}),Or=wr.lookupType("signal_msg.Response"),Tr=wr.lookupType("signal_msg.BatchNotification"),Er=wr.lookupType("signal_msg.MediaMessage"),Ir=wr.lookupType("signal_msg.StreamNotification");wr.lookupType("signal_msg.ProgressNotification");var Rr=wr.lookupType("signal_msg.ServerFailoverNotification"),Mr=wr.lookupType("signal_msg.PublishRequest"),Ar=wr.lookupType("signal_msg.SoacRequest"),_r=wr.lookupType("signal_msg.UnpublishRequest"),Cr=wr.lookupType("signal_msg.StreamControlRequest"),Dr=wr.lookupType("signal_msg.SubscribeRequest"),xr=wr.lookupType("signal_msg.SetStreamPropertiesRequest"),jr=wr.lookupType("signal_msg.UnsubscribeRequest"),Lr=wr.lookupType("signal_msg.SubscriptionControlRequest"),Nr=wr.lookupType("signal_msg.CreatePeerConnectionRequest"),Fr=wr.lookupType("signal_msg.ClosePeerConnectionRequest"),Ur=wr.lookupType("signal_msg.BatchPublishRequest"),Gr=wr.lookupType("signal_msg.BatchUnpublishRequest"),Vr=wr.lookupType("signal_msg.BatchSubscribeRequest"),Br=wr.lookupType("signal_msg.BatchUnsubscribeRequest"),Hr=wr.lookupType("signal_msg.JoinGroupRequest"),qr=wr.lookupType("signal_msg.SetGroupPropertiesRequest"),Wr=wr.lookupType("signal_msg.DismissGroupRequest"),Yr=wr.lookupType("signal_msg.LeaveGroupRequest"),Qr=wr.lookupType("signal_msg.SyncDataRequest"),Jr=wr.lookupType("signal_msg.SyncDataByIdsRequest"),Kr=wr.lookupType("signal_msg.GroupChangeLog"),zr=wr.lookupType("signal_msg.GroupListChangeLog"),$r=wr.lookupType("signal_msg.SetParticipantPropertiesRequest"),Xr=wr.lookupType("signal_msg.QueryStreamsVerRequest"),Zr=wr.lookupType("signal_msg.QueryStreamsRequest");function en(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(en=function(){return!!e})()}var tn=function(){function e(t){var r,n,i,a;return C(this,e),n=this,i=F(i=e),r=N(n,en()?Reflect.construct(i,[],F(n).constructor):i.apply(n,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 G(e,c),L(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",Ir.decode(t)):"serverFailover"===e?this.emit("serverFailover",Rr.decode(t)):"media-message"===e?this.emit("media-message",Er.decode(t)):"group"===e?this.emit("group",Kr.decode(t)):"group-list"===e&&this.emit("group-list",zr.decode(t))}},{key:"handleBatchNotifyEvent",value:function(e){var t=this;Tr.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=Nr.encode(e).finish();return this.rpc("create-peer-connection",t,e).then((function(e){return e.createPeerConnectionResponse}))}},{key:"closePeerConnection",value:function(e){var t=Fr.encode(e).finish();return this.rpc("close-peer-connection",t,e)}},{key:"batchSubscribe",value:function(e){var t=Vr.encode(e).finish();return this.rpc("batch-subscribe",t,e).then((function(e){return e.errorMsg}))}},{key:"setGroupProperties",value:function(e){var t=qr.encode(e).finish();return this.rpc("set-group-properties",t,e).then((function(e){return e.setGroupPropertiesResponse}))}},{key:"batchUnSubscribe",value:function(e){var t=Br.encode(e).finish();return this.rpc("batch-unsubscribe",t,e)}},{key:"batchPublish",value:function(e){var t=Ur.encode(e).finish();return this.rpc("batch-publish",t,e).then((function(e){return e.errorMsg}))}},{key:"batchUnPublish",value:function(e){var t=Gr.encode(e).finish();return this.rpc("batch-unpublish",t,e)}},{key:"publish",value:function(e){var t=Mr.encode(e).finish();return this.rpc("publish",t,e).then((function(e){return e.publishResponse}))}},{key:"setParticipantProperties",value:function(e){var t=$r.encode(e).finish();return this.rpc("set-participant-properties",t,e)}},{key:"soac",value:function(e){var t=Ar.encode(e).finish();return this.rpc("soac",t,e)}},{key:"unpublish",value:function(e){var t=_r.encode(e).finish();return this.rpc("unpublish",t,e)}},{key:"streamControl",value:function(e){var t=Cr.encode(e).finish();return this.rpc("stream-control",t,e)}},{key:"setStreamProperties",value:function(e){var t=xr.encode(e).finish();return this.rpc("set-stream-properties",t,e)}},{key:"subscribe",value:function(e){var t=Dr.encode(e).finish();return this.rpc("subscribe",t,e).then((function(e){return e.subscribeResponse}))}},{key:"unsubscribe",value:function(e){var t=jr.encode(e).finish();return this.rpc("unsubscribe",t,e)}},{key:"subscriptionControl",value:function(e){var t=Lr.encode(e).finish();return this.rpc("subscription-control",t,e)}},{key:"getStreamsVer",value:function(e){var t=Xr.encode(e).finish();return this.rpc("query-streams-ver",t,e).then((function(e){return e.queryStreamsVerResponse}))}},{key:"getStreams",value:function(e){var t=Zr.encode(e).finish();return this.rpc("query-streams",t,e).then((function(e){return e.queryStreamsResponse}))}},{key:"joinGroup",value:function(e){var t=Hr.encode(e).finish();return this.rpc("join-group",t,e).then((function(e){return e.joinGroupResponse}))}},{key:"leaveGroup",value:function(e){var t=Yr.encode(e).finish();return this.rpc("leave-group",t,e).then((function(e){return e.leaveGroupResponse}))}},{key:"dismissGroup",value:function(e){var t=Wr.encode(e).finish();return this.rpc("dismiss-group",t,e).then((function(e){return e.dismissGroupResponse}))}},{key:"syncData",value:function(e){var t=Qr.encode(e).finish();return this.rpc("sync-data",t,e).then((function(e){return e.syncDataResponse}))}},{key:"syncDataByIds",value:function(e){var t=Jr.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,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;return new Promise((function(i,a){var o=r.rpcId++;r.logger.info("rtc rpcId ".concat(o,":").concat(e," param"),n),r.channel.signaling.rpc(e,t,n).then((function(t){var n=Or.decode(t);n.code===gr.Result.Ok?(r.logger.info("rtc rpcId ".concat(o,":").concat(e," result====>"),n),i(n)):(r.logger.error("rtc rpcId ".concat(o,":").concat(e," error====>"),n),a(n))})).catch((function(t){r.logger.error("rtc rpcId ".concat(o,":").concat(e," error====>"),t),a(t)}))}))}}])}();function rn(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(rn=function(){return!!e})()}var nn=function(){function e(){var r,n,i,a;C(this,e),n=this,i=F(i=e),r=N(n,rn()?Reflect.construct(i,[],F(n).constructor):i.apply(n,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 G(e,c),L(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 an(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function on(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?an(Object(r),!0).forEach((function(t){ce(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):an(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function sn(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 n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}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,n=Array(t);r<t;r++)n[r]=e[r];return n}function un(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(un=function(){return!!e})()}var ln={timestamp:0,audioLevel:0,bytesSent:0,packetsSent:0,packetsLost:0,roundTripTime:0},dn={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},pn=function(){function t(e){var r,n,i,a;C(this,t),n=this,i=F(i=t),r=N(n,un()?Reflect.construct(i,[],F(n).constructor):i.apply(n,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({},dn),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({},ln),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 G(t,nn),L(t,[{key:"extractVideoMetrics",value:function(t){var r=this,n=Object.assign({source:this.source,trackStats:[]},dn,this.connection.peerConnectionStats);if(n.timestamp=Date.now(),this.track){var i=this.track.getMediaStreamTrack().getSettings(),a=i.width,o=i.height,s=i.frameRate;n.captureFramesPerSecond=s===1/0?0:s||0,n.captureFrameWidth=a||0,n.captureFrameHeight=o||0}var c=new Map,u=ze(n,this.lastVideoSendInfo);return t.forEach((function(t){if(/outboundrtp|outbound-rtp/i.test(t.type)){var i=c.get(t.ssrc)||{},a=r.lastVideoSendInfo.trackStats.get(t.ssrc)||{};if(i.sendFrameWidth=t.frameWidth||0,i.sendFrameHeight=t.frameHeight||0,i.framesSent=t.framesSent||0,i.framesEncoded=t.framesEncoded||0,i.targetBitrate=t.targetBitrate||0,i.qpSum=t.qpSum||0,i.bytesSent=t.bytesSent||0,i.packetsSent=t.packetsSent||0,i.packetsSentForLost=i.packetsSent||0,i.sentTimestamp=t.timestamp||0,i.totalEncodeTime=t.totalEncodeTime||0,i.keyFramesEncoded=t.keyFramesEncoded||0,i.firCount=t.firCount||0,i.pliCount=t.pliCount||0,i.retransmittedBytesSent=t.retransmittedBytesSent||0,i.retransmittedPacketsSent=t.retransmittedPacketsSent||0,i.qualityLimitationReason=t.qualityLimitationReason||"",i.sendFramesPerSecond=t.framesPerSecond||0,i.sendFrameWidth>n.maxSendFrameWidth){if(n.maxSendFrameWidth=i.sendFrameWidth,!i.sendFramesPerSecond&&a){var o=Xe(i.framesSent||i.framesEncoded,a.framesSent||a.framesEncoded);i.sendFramesPerSecond=Math.round(o/u)}if(i.framesEncoded){var s=Xe(i.framesEncoded,null==a?void 0:a.framesEncoded);n.encodeFramesPerSecond=Math.round(s/u)}n.sendFramesPerSecond=i.sendFramesPerSecond}c.set(t.ssrc,i),n.targetBitrate=i.targetBitrate,n.totalBytesSent+=i.bytesSent,n.totalPacketsSent+=i.packetsSent,n.totalEncodedTime+=i.totalEncodeTime,n.totalFramesEncoded+=i.framesEncoded,n.totalFramesSent+=i.framesSent,n.totalQpSum+=i.qpSum,n.maxSendFrameHeight=Math.max(i.sendFrameHeight,n.maxSendFrameHeight),c.set(t.ssrc,i)}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),n.totalFramesEncoded+=l.framesEncoded,n.totalEncodedTime+=l.totalEncodeTime,n.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,n.totalPacketsLost+=d.packetsLost,d.packetsLost===(p.packetsLost||0)&&(d.packetsSentForLost=p.packetsSentForLost||0,d.lostTimestamp=p.lostTimestamp||0),c.set(t.ssrc,d)}})),n.trackStats=c,n}},{key:"getLayersMetricInfo",value:function(e){var t,r=[],n=sn(e.trackStats.entries());try{for(n.s();!(t=n.n()).done;){var i=_t(t.value,2),a=i[0],o=i[1],s=this.lastVideoSendInfo.trackStats.get(a)||{},c=Xe(o.framesSent,s.framesSent),u=Xe(o.framesEncoded,s.framesEncoded),l=Xe(o.keyFramesEncoded,s.keyFramesEncoded),d=Xe(o.retransmittedBytesSent,s.retransmittedBytesSent),p=Xe(o.retransmittedPacketsSent,s.retransmittedPacketsSent),f=Xe(o.firCount,s.firCount),v=Xe(o.pliCount,s.pliCount),m=Xe(o.packetsSent,s.packetsSent),h=Xe(o.packetsSentForLost,s.packetsSentForLost),g=Xe(o.lostTimestamp,s.lostTimestamp),y=Xe(o.sentTimestamp,s.sentTimestamp),b=Xe(o.packetsLost,s.packetsLost),S=Xe(o.totalEncodeTime,s.totalEncodeTime),k=Xe(o.qpSum,s.qpSum),P=o.qualityLimitationReason,w=o.sendFrameWidth,O=on(on({sendFrameHeight:o.sendFrameHeight,sendFrameWidth:w,qualityLimitationReason:P},o),{},{deltaQbSum:k,deltaPacketsSent:m,deltaPacketsLost:b,deltaFramesSent:c,deltaTimestampForLost:g,deltaFramesEncoded:u,deltaKeyFramesEncoded:l,deltaFirCount:f,deltaEncodedTime:S,deltaPliCount:v,deltaTimestampForSent:y,deltaPacketsSentForLost:h,deltaRetransmittedBytesSent:d,deltaRetransmittedPacketsSent:p});r.push(O)}}catch(e){n.e(e)}finally{n.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){var t={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 r=this.getLayersMetricInfo(e),n=r.tracksStatInfo,i=r.totalBytesSent,a=r.totalFramesEncoded,o=r.totalEncodedTime;n.length>1&&(t.attr_stream_options+="sim:".concat(n.length,"/"));for(var s={attr_encoded_framerate_sim:[],attr_enc_key_frames_sim:[],attr_fir_count_sim:[],attr_pli_count_sim:[],attr_quality_limitation_reason_sim:[],attr_retx_bytes_sim:[],attr_retx_packets_sim:[],attr_resolution_sim:[],attr_encode_qp_sim:[]},c=[],u=0,l=Xe(e.timestamp,this.lastVideoSendInfo.timestamp),d=!0,p=0;p<n.length;p++){var f=n[p];s.attr_enc_key_frames_sim.push(f.deltaKeyFramesEncoded),s.attr_fir_count_sim.push(f.deltaFirCount),s.attr_pli_count_sim.push(f.deltaPliCount),s.attr_quality_limitation_reason_sim.push(f.qualityLimitationReason),s.attr_retx_bytes_sim.push(f.deltaRetransmittedBytesSent),s.attr_retx_packets_sim.push(f.deltaRetransmittedPacketsSent),s.attr_resolution_sim.push({count:f.deltaFramesSent||f.deltaFramesEncoded,index:p,resolution:"".concat(f.sendFrameWidth,"*").concat(f.sendFrameHeight)});var v=f.deltaFramesEncoded||f.deltaFramesSent;d&&(d=0===v),s.attr_encoded_framerate_sim.push(ce({},p,Math.round(1e3*v/l))),s.attr_encode_qp_sim.push(ce({},p,Math.round((f.deltaQbSum||0)/(v||Number.EPSILON))));var m=f.deltaTimestampForLost,h=f.deltaTimestampForSent,g=f.deltaPacketsLost,y=f.deltaPacketsSentForLost;if(g&&y&&m&&h){var b=g/m/(y/h);c.push(Math.max(Math.min(b,1),0))}}for(var S=0,k=Object.entries(s);S<k.length;S++){var P=_t(k[S],2),w=P[0],O=P[1];t[w]=O.length?JSON.stringify(O):""}var T=0,E=Xe(a,this.lastVideoSendInfo.totalFramesEncoded),I=Xe(o,this.lastVideoSendInfo.totalEncodedTime);E&&I&&(T=Math.round(1e3*I/E));var R=Xe(i,this.lastVideoSendInfo.totalBytesSent);t.attr_duration_ms=l,t.attr_bitrate=l>0?Math.min(Math.round(8*R*1e3/l),2e7):0,t.attr_enc_average_elapsed_ms=T,this.videoSendReport=t,d&&(t.attr_resolution_sim="null",t.attr_encoded_framerate_sim="null"),this.emit("video-send-stream",Object.assign({},this.videoSendReport)),c.length&&(u=Math.min(Math.round(c.reduce((function(e,t){return t+e}),0)/c.length*255),255)),this.bweReport={attr_duration_ms:l,attr_rtt:Math.round(e.roundTripTime||0),attr_reported_bitrate:Math.max(0,Math.min(e.availableOutgoingBitrate||0,2e7)),attr_lossrate:u},this.emit("bwe",Object.assign({},this.bweReport))}this.lastVideoSendInfo=e}},{key:"extractAudioMetrics",value:function(e){var t=this,r=Object.assign({},ln,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 n=t.track.getMediaStreamTrack().getSettings(),i=n.channelCount,a=n.sampleRate;r.channels=i,r.sampleRate=a}})),r}},{key:"makeAudioReport",value:function(e){this.lastAudioSendInfo.timestamp>0&&e.timestamp&&(this.audioSendReport={attr_duration_ms:Math.round(Xe(e.timestamp,this.lastAudioSendInfo.timestamp)),attr_bitrate:Math.round(8*Xe(e.bytesSent,this.lastAudioSendInfo.bytesSent)*1e3/Xe(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)}))}},{key:"getStats",value:function(){var e,t,r=this,n=this.tranceiver,o=this.pc;if(!o||null==n||null===(e=n.sender)||void 0===e||!e.track)return Promise.resolve({});if(null==o||!o.getStats)throw new i(a.BrowserNotSupported,"getStats is not supported");return null===(t=this.pc.getStats(n.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)}}))}}])}();function fn(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 vn(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)?vn(e,t):void 0}}(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}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 vn(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function mn(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(mn=function(){return!!e})()}var hn={timestamp:0,packetsLost:0,packetsReceived:0,bytesReceived:0,audioLevel:0,decodingNormal:0,roundTripTime:0},gn={packetsLost:0,packetsReceived:0,framesDropped:0,frameHeight:0,frameWidth:0,framesDecoded:0,framesReceived:0,timestamp:0,framesPerSecond:0,bytesReceived:0,roundTripTime:0},yn=function(){function e(t){var r,n,i,a,o;C(this,e),i=this,a=F(a=e),n=N(i,mn()?Reflect.construct(a,[],F(i).constructor):a.apply(i,o)),Object.defineProperty(n,"videoReceiveReport",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"audioReceiveReport",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"lastVideoReceiveInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"lastAudioReceiveInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"source",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"firstReportFlag",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"firstReportTimer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"pc",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"tranceiver",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"tranceivers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"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 n.connection=s,n.pc=s.pc,n.tranceiver=c,n.tranceivers=p,n.firstReportTimer=d((function(){n.getStats().then((function(e){n.makeFirstReport(e)}))}),400,"interval"),n.source="mcu"!==u&&(null===(r=l.media)||void 0===r||null===(r=r.video)||void 0===r?void 0:r.source),n.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},n.lastVideoReceiveInfo=Object.assign({},gn),n.firstReportFlag={audioFirstPacket:!1,videoFirstPacket:!1,audioFirstFrame:!1},n.lastAudioReceiveInfo=Object.assign({},hn),n.audioReceiveReport={attr_duration_ms:0,attr_delay_estimate:0,attr_bitrate:0},n}return G(e,nn),L(e,[{key:"extractAudioMetrics",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=Object.assign({},hn,this.connection.peerConnectionStats);return n.timestamp=Date.now(),e.forEach((function(e){e.isRemote||(/inboundrtp|inbound-rtp/i.test(e.type)?(n.bytesReceived=e.bytesReceived||0,n.packetsReceived=e.packetsReceived||0,r||(n.packetsLost===(t.lastAudioReceiveInfo.packetsLost||0)?n.packetsReceivedForLost=t.lastAudioReceiveInfo.packetsReceived||0:n.packetsReceivedForLost=n.packetsReceived||0),n.packetsLost=e.packetsLost||0,n.audioLevel=e.audioLevel||0,n.decodingNormal=Number(e.googDecodingNormal||0)):/track/i.test(e.type)&&(n.audioLevel=e.audioLevel))})),n}},{key:"extractMultipleAudioMetrics",value:function(e){var t=this,r=e.map((function(e){return t.extractAudioMetrics(e,!0)})),n=Object.assign({},hn,this.connection.peerConnectionStats);n.timestamp=Date.now();var i,a=fn(r);try{for(a.s();!(i=a.n()).done;){var o=i.value;n.bytesReceived+=o.bytesReceived||0,n.packetsLost+=o.packetsLost||0,n.packetsReceived+=o.packetsReceived||0,n.audioLevel=Math.max(n.audioLevel,o.audioLevel||0),n.decodingNormal=Math.max(n.decodingNormal,o.decodingNormal||0)}}catch(e){a.e(e)}finally{a.f()}return n.packetsLost===(this.lastAudioReceiveInfo.packetsLost||0)?n.packetsReceivedForLost=this.lastAudioReceiveInfo.packetsReceived||0:n.packetsReceivedForLost=n.packetsReceived||0,n}},{key:"extractVideoMetrics",value:function(e){var t=this,r=Object.assign({source:this.source},gn,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 n;null!==(n=e.mimeType)&&void 0!==n&&n.includes("video")&&(r.sdpFmtpLine=e.sdpFmtpLine)}})),r}},{key:"makeAudioReport",value:function(e){if(this.lastAudioReceiveInfo.timestamp>0&&e.timestamp){var t=Math.round(Xe(e.timestamp,this.lastAudioReceiveInfo.timestamp)),r=Xe(e.packetsLost,this.lastAudioReceiveInfo.packetsLost),n=Xe(e.packetsReceivedForLost,this.lastAudioReceiveInfo.packetsReceivedForLost),i=Xe(e.bytesReceived,this.lastAudioReceiveInfo.bytesReceived),a=0;try{a=Math.max(r/n,0)}catch(e){a=0}isNaN(a)&&(a=0),this.audioReceiveReport={attr_delay_estimate:0,attr_duration_ms:t,attr_bitrate:Math.round(8*i/(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,n=t.pliCount,i=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(i>0&&e.timestamp){var f=Xe(e.timestamp,i);if(e.bytesReceived-u>=0){var v=Xe(e.packetsLost,o),m=Xe(e.packetsReceivedForLost,l),h=0;try{h=Math.round(v/m*255)}catch(e){h=0}isNaN(h)&&(h=0);var g=Xe(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:Xe(e.framesDropped,c),attr_fir_count:Xe(e.firCount,r),attr_freeze_count:Xe(e.freezeCount,a),attr_pli_count:Xe(e.pliCount,n),attr_retx_bytes:Xe(e.retransmittedBytesReceived,d),attr_retx_packets:Xe(e.retransmittedPacketsReceived,p),attr_bitrate:Math.round(8*Xe(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)},e.frameWidth&&e.frameHeight&&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,n=t.audioFirstPacket,i=t.videoFirstPacket,a=e.audioMetrics,o=e.videoMetrics;if(a&&o){if((r||-1===(null==a?void 0:a.decodingNormal))&&n&&i)return void(this.firstReportTimer&&(m(this.firstReportTimer,"interval"),this.firstReportTimer=null))}else if(a){if((r||-1===(null==a?void 0:a.decodingNormal))&&n)return void(this.firstReportTimer&&(m(this.firstReportTimer,"interval"),this.firstReportTimer=null))}else if(o&&i)return void(this.firstReportTimer&&(m(this.firstReportTimer,"interval"),this.firstReportTimer=null));null!=a&&a.packetsReceived&&!n&&(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&&!i&&(this.emit("video-first-packet"),this.firstReportFlag.videoFirstPacket=!0)}},{key:"getStats",value:function(){var e,t=this,r=this.tranceiver,n=this.tranceivers,o=this.pc;if(!(o&&(null!=n&&n.length||null!=r&&r.receiver.track)))return Promise.resolve({});if(null==o||!o.getStats)throw new i(a.BrowserNotSupported,"getStats is not supported");if(n&&n.length){var s=n.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,n;(t="stop",r=this,"function"==typeof(n=ue(F(e.prototype),t,r))?function(e){return n.apply(r,e)}:n)([]),this.firstReportTimer&&(m(this.firstReportTimer,"interval"),this.firstReportTimer=null)}}])}();function bn(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 Sn(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)?Sn(e,t):void 0}}(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}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 Sn(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function kn(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Pn(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?kn(Object(r),!0).forEach((function(t){ce(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):kn(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function wn(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(wn=function(){return!!e})()}var On=t().log,Tn=function(){function e(t){var r,n,i,a;C(this,e),n=this,i=F(i=e),r=N(n,wn()?Reflect.construct(i,[],F(n).constructor):i.apply(n,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,"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});var o=t.connection,s=t.stream,c=t.uid,u=t.resolutionInfo,l=t.userConfigResolution;return r.connection=o,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("[subscription]"),r.connection.once("ended",(function(){r.clear()})),r.videoStatsMap=new Map,r.audioStatsMap=new Map,r.metricsMap=new Map,r.state=re.Processing,r.handleStreamAdd=r.handleStreamAdd.bind(r),r.connection.on("track",r.handleStreamAdd),r}return G(e,c),L(e,[{key:"handleStreamAdd",value:function(e,t){var r,n=this;if(Re.audioSFU&&"audio"===e.kind){var i,a=null===(i=this.transceivers)||void 0===i?void 0:i.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)&&!this._stream&&(this._stream=t)}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)){this._stream=new MediaStream([e]);var o=document.createElement("video");o.onloadeddata=function(){o.srcObject=null,n.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===re.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=En(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(),this.connection.reset()}},{key:"clear",value:function(){this.state!==re.End&&(this.reset(),this.state=re.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 yn(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 yn(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.reporter.log.info("video-first-frame sessionId=".concat(this.id))}},{key:"handleMetrics",value:function(e,t){var r=e.audioMetrics,n=e.videoMetrics;if(r){var i,a=(null===(i=this.metricsMap.get(t))||void 0===i?void 0:i.audioMetrics)||{},o=ze(r,a),s=Xe(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(n){var u,l,d=(null===(u=this.metricsMap.get(t))||void 0===u?void 0:u.videoMetrics)||{},p=ze(n,d),f=Xe(n.bytesReceived,d.bytesReceived),v={codec:this.connection.peerConnectionStats.videoCodec||n.codec,receiveResolution:{width:n.frameWidth,height:n.frameHeight},receiveBitrate:8*f/p,decodeFrameRate:Math.round(Xe(null==n?void 0:n.framesDecoded,d.framesDecoded)/p),receiveFrameRate:Math.round(Xe(null==n?void 0:n.framesReceived,d.framesReceived)/p),receiveFramesDropped:Xe(null==n?void 0:n.framesDropped,d.framesDropped),receiveBytes:n.bytesReceived,receivePackets:n.packetsReceived,receivePacketsLost:n.packetsLost,rtt:n.roundTripTime,timestamp:n.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)===z.CAMERA&&f>3e4&&0===v.decodeFrameRate;"network"===t&&(this.stucked&&h?m&&v.receiveFramesDropped>0&&!Re.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(Pn({sessionId:e.id,remoteStreamId:e.stream.id,remoteUserId:e.uid},t))})),this.monitor.on("audio-recv-stream",(function(t){e.reporter.metric.audioRecvStream(Pn({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.reporter.log.info("video-first-packet sessionId=".concat(e.id))})),this.monitor.on("video-recv-stream",(function(t){e.reporter.metric.videoRecvStream(Pn({sessionId:e.id,remoteStreamId:e.stream.id,remoteUserId:e.uid},t))})))}}])}(),En=function(e,t){if(!t)return null;var r=t.resolutionLevel,n=e.media.video.highestResolutionLevel;if(n&&n<r){var i=Ft(n);return Nt(i,Ae(e))}return t},In=function(e){var t,r={audio:[],video:[]},n=bn(e);try{for(n.s();!(t=n.n()).done;){var i=t.value,a=i.stream,o=i.error,s=i.resolutionInfo;if(o)On.error("skip subscribe",a,o);else{var c=Rn(a,s),u=c.audio,l=c.video;if(u){var d=Pn(Pn({},u),{},{trackId:a.media.audio.trackId,ssrcGroup:[{ssrc:Vn()}]});Re.audioSFU&&(d.ssrcGroup=new Array(6).fill(0).map((function(){return{ssrc:Vn()}}))),r.audio.push(d)}else if(l){var p,f;r.video.push(Pn(Pn({},l),{},{trackId:null===(p=a.media)||void 0===p||null===(p=p.video)||void 0===p?void 0:p.trackId,ssrcGroup:null===(f=a.media)||void 0===f||null===(f=f.video)||void 0===f?void 0:f.ssrcGroup,subSsrcGroup:{ssrc:Vn(),rtxSsrc:Vn()}}))}}}}catch(e){n.e(e)}finally{n.f()}return r},Rn=function(e,t){var r=e.id,n=e.media,i=n.audio,a=n.video,o={};if(i)o.audio={from:r};else if(a){var s;o.video={from:r,format:null===(s=n.video)||void 0===s?void 0:s.format,parameters:En(e,t)}}return o},Mn=function(){var e=_(se.mark((function e(t,r){var n,i,a,o,s;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=r.connection,i=[],a={},t.forEach((function(e,t){var n=e.stream,o=e.error,s=e.uid,c=e.resolutionInfo;if(i[t]={stream:n,error:o,uid:s,resolutionInfo:c},!o){var u=new Tn(Pn(Pn({},r),{},{uid:s,userConfigResolution:c,resolutionInfo:c&&En(n,c),stream:n}));a[n.id]=u}})),s=new Promise((function(e,r){o=function(){var o=_(se.mark((function o(){var s;return se.wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return s=In(t),o.next=3,Jn(n,s,a);case 3:n.rtcSignaling.batchSubscribe({connectionId:n.id,propertiesJsonStr:JSON.stringify({opusExtendInbandFec:!0,type:Re.audioSFU?"selective":"mixed"}),supportTemporalLayer:!1,media:s}).then(function(){var r=_(se.mark((function r(n){var o,s,c,u,l;return se.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(o=n.detailStatus,"ok"===(s=n.globalStatus)){r.next=4;break}return i.forEach((function(e){e.error=e.error||_e(e.stream,s)})),r.abrupt("return",e(i));case 4:c=bn(o),r.prev=5,l=se.mark((function e(){var r,n,o,s,c,l;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=u.value,n=r.id,o=r.msg,s=r.origin,c=a[s.id],l=t.findIndex((function(e){return e.stream.id===s.id})),"ok"===o&&c?(c.id=n,i[l].id=n,i[l].subscription=c):"ok"!==o&&(i[l].error=_e(c.stream,o));case 4:case"end":return e.stop()}}),e)})),c.s();case 8:if((u=c.n()).done){r.next=12;break}return r.delegateYield(l(),"t0",10);case 10:r.next=8;break;case 12:r.next=17;break;case 14:r.prev=14,r.t1=r.catch(5),c.e(r.t1);case 17:return r.prev=17,c.f(),r.finish(17);case 20:e(i);case 21:case"end":return r.stop()}}),r,null,[[5,14,17,20]])})));return function(e){return r.apply(this,arguments)}}()).catch(r);case 4:case"end":return o.stop()}}),o)})));return function(){return o.apply(this,arguments)}}()})),n.addTask(o),e.abrupt("return",s);case 7:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),An=function(){var e=_(se.mark((function e(t,r){var n,i,a;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=r.connection,a=new Promise((function(e,r){n=function(){var n=_(se.mark((function n(){var a,o;return se.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return a=t.filter((function(e){var t;return!(null===(t=e.stream)||void 0===t||null===(t=t.media)||void 0===t||!t.audio)})).map((function(e){return e.id})),o=t.filter((function(e){var t;return!(null===(t=e.stream)||void 0===t||null===(t=t.media)||void 0===t||!t.video)})).map((function(e){return e.id})),n.next=4,Kn(i,t);case 4:i.rtcSignaling.batchUnSubscribe({connectionId:i.id,audio:a,video:o}).then((function(){t.forEach((function(e){e.clear()})),e(void 0)})).catch(r);case 5:case"end":return n.stop()}}),n)})));return function(){return n.apply(this,arguments)}}()})),r.connection.addTask(n),e.abrupt("return",a);case 4:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}();function _n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Cn(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?_n(Object(r),!0).forEach((function(t){ce(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):_n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Dn(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 xn(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)?xn(e,t):void 0}}(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}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 xn(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var jn=t().log,Ln={motion:"maintain-framerate",detail:"maintain-resolution",balanced:"balanced"},Nn=0,Fn=0,Un=0,Gn=new Set,Vn=function(){if(0==Nn||0==Fn)return 0;var e=Math.min(Fn+1,1e4);do{var t=Nn+(Fn&Un++);if(0!=t&&!Gn.has(t))return t}while(--e>0);return 0},Bn=function(t,r){var n,i;if((null===(n=t.rids)||void 0===n?void 0:n.length)>1)return e.isFirefox()&&(r=Qn(r)),r.rids=null===(i=t.rids)||void 0===i?void 0:i.map((function(e){return{direction:"recv",id:e.id}})),r.simulcast={dir1:"recv",list1:t.simulcast.list1},r},Hn=function(){var e=_(se.mark((function e(t){var r,n,i,a,o,s,c;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.connection,n=t.transceiver,i=r.remoteSDP,a=r.pc,e.next=4,a.createOffer();case 4:return o=e.sent,e.next=7,a.setLocalDescription(o);case 7:return r.localSDP=R.parse(o.sdp),s=r.localSDP.media.find((function(e){return e.mid==n.mid})),c=i.media.find((function(e){return e.mid==n.mid})),Bn(s,c),e.next=13,a.setRemoteDescription({type:"answer",sdp:R.write(i)});case 13:r.remoteSDP=i;case 14:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),qn=function(){var t=_(se.mark((function t(r,n){var i,a,o,s,c,u,l,d,p,f;return se.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=r.pc,a=r.idToTransceiverMap,o=r.remoteSDP,s=new MediaStream(n.map((function(e){return e.getMediaStreamTrack()}))),c=n.map((function(e){var t={direction:"sendonly"};if(e instanceof ir){var n=Kt(e).encodings;t.sendEncodings=n.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 i=r.pc.addTransceiver(e.getMediaStreamTrack()||e.trackMediaType,t);if(e instanceof ir&&i.sender.setParameters){var o=e.optimizationMode,s=i.sender.getParameters();s.degradationPreference=Ln[o]||"balanced";var c=parseFloat(new URLSearchParams(location.search).get("times"))||0;c&&(jn.info("adjustUplinkSDPWhenPublish maxBitrate times",c),s.encodings.forEach((function(e){if(e.maxBitrate){var t=e.maxBitrate;e.maxBitrate=e.maxBitrate*c,jn.info("adjustUplinkSDPWhenPublish update maxBitrate",t,e.maxBitrate,e)}}))),jn.info("adjustUplinkSDPWhenPublish setParameters",s),i.sender.setParameters(s)}return a.set(e.getTrackId(),i),i})),t.next=5,i.createOffer();case 5:return u=t.sent,l=R.parse(u.sdp),t.next=9,i.setLocalDescription(u);case 9:r.localSDP=l,o.groups[0].mids=r.localSDP.groups[0].mids,d=Dn(c),t.prev=12,f=se.mark((function t(){var r,n,i,a,s,c,u;return se.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:r=p.value,n=o.media.find((function(e){return e.type===r.sender.track.kind})),e.isFirefox()&&"video"===n.type&&(delete n.rids,delete n.simulcast),i=Cn(Cn({},n),{},{ext:Oe(n.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"),jn.info("startkbs, minkbs",s,c),i.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&&Re.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(";")}})),Bn(a,i),o.media.push(i);case 12:case"end":return t.stop()}}),t)})),d.s();case 15:if((p=d.n()).done){t.next=19;break}return t.delegateYield(f(),"t0",17);case 17:t.next=15;break;case 19:t.next=24;break;case 21:t.prev=21,t.t1=t.catch(12),d.e(t.t1);case 24:return t.prev=24,d.f(),t.finish(24);case 27:return window.remoteSDP=o,t.next=30,i.setRemoteDescription({type:"answer",sdp:R.write(o)});case 30:return r.remoteSDP=o,t.abrupt("return",{localSDP:r.localSDP,stream:s});case 32:case"end":return t.stop()}}),t,null,[[12,21,24,27]])})));return function(e,r){return t.apply(this,arguments)}}(),Wn=function(){var e=_(se.mark((function e(t,r){var n,i,a,o;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.pc,i=t.remoteSDP,r.map((function(e){return e.transceiver})).forEach((function(e){if(e){n.removeTrack(e.sender);var t=i.media.find((function(t){return t.mid==(null==e?void 0:e.mid)}));e.direction="inactive",t.direction="inactive"}})),e.next=5,n.createOffer();case 5:return a=e.sent,o=R.parse(a.sdp),e.next=9,n.setLocalDescription(a);case 9:return t.localSDP=o,i.groups[0].mids=o.groups[0].mids,t.remoteSDP=i,e.next=14,n.setRemoteDescription({type:"answer",sdp:R.write(i)});case 14:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),Yn=function(e,t,r){var n=e.ssrc,i=e.rtxSsrc;!function(e){e.ssrc&&Gn.add(e.ssrc),e.rtxSsrc&&Gn.add(e.rtxSsrc)}(e),t.ssrcGroups=[],i&&t.ssrcGroups.push({semantics:"FID",ssrcs:"".concat(n," ").concat(i)}),t.ssrcs=[],[n,i].filter((function(e){return void 0!==e})).forEach((function(e){t.ssrcs.push({attribute:"msid",value:"".concat(r," v").concat(n),id:e},{attribute:"cname",value:y(),id:e})}))},Qn=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},Jn=function(){var e=_(se.mark((function e(t,r,n){var i,a,o,s,c,u,l,d,p,f,v,m,h,g,y,b,S,k,P,w,O,T,E,I,M,A,_,C;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=t.pc,s=t.idToTransceiverMap,c=t.remoteSDP,u=t.idToTransceiversMap,l=c.media.find((function(e){return"video"===e.type})),d=c.media.find((function(e){return"audio"===e.type})),p=null===(i=l.ssrcs)||void 0===i?void 0:i.find((function(e){return"msid"===e.attribute})).value.split(" ")[0],null!==(a=r.audio)&&void 0!==a&&a[0])if(v=null===(f=r.audio)||void 0===f?void 0:f[0],m=v.from,Re.audioSFU){if(u.get(m)){h=Dn(u.get(m));try{for(h.s();!(g=h.n()).done;)g.value.direction="recvonly"}catch(e){h.e(e)}finally{h.f()}y=c.media.filter((function(e){return"audio"===e.type})),b=Dn(y);try{for(b.s();!(S=b.n()).done;)S.value.direction="sendonly"}catch(e){b.e(e)}finally{b.f()}}else t.mcuAudioTranceivers=new Array(6).fill(0).map((function(e){return t.pc.addTransceiver("audio",{direction:"recvonly"})})),u.set(m,t.mcuAudioTranceivers);n[m].addTransceivers(u.get(m))}else s.get(m)||s.set(m,t.mcuAudioTranceiver),s.get(m).direction="recvonly",d.direction="sendonly",n[m].addTransceiver(s.get(m));k=Dn(r.video),e.prev=6,w=se.mark((function e(){var t,r,i,a;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=P.value,r=t.from,i=s.get(r)){e.next=7;break}s.set(r,o.addTransceiver("video",{direction:"recvonly"})),e.next=19;break;case 7:if("inactive"===i.direction){e.next=18;break}return i.direction="inactive",e.next=11,o.createOffer();case 11:return a=e.sent,e.next=14,o.setLocalDescription(a);case 14:return c.media.find((function(e){return e.mid==i.mid})).direction="inactive",e.next=18,o.setRemoteDescription({type:"answer",sdp:R.write(c)});case 18:s.get(r).direction="recvonly";case 19:n[r].addTransceiver(s.get(r));case 20:case"end":return e.stop()}}),e)})),k.s();case 9:if((P=k.n()).done){e.next=13;break}return e.delegateYield(w(),"t0",11);case 11:e.next=9;break;case 13:e.next=18;break;case 15:e.prev=15,e.t1=e.catch(6),k.e(e.t1);case 18:return e.prev=18,k.f(),e.finish(18);case 21:return e.next=23,o.createOffer();case 23:return O=e.sent,T=R.parse(O.sdp),c.groups[0].mids=T.groups[0].mids,e.next=28,o.setLocalDescription(O);case 28:t.localSDP=T,Re.audioSFU&&r.audio[0]&&(E=r.audio[0],I=E.ssrcGroup,M=E.from,u.get(M).forEach((function(e,t){var r,n=null===(r=I[t])||void 0===r?void 0:r.ssrc,i=c.media.find((function(t){var r=t.mid,n=t.type;return r==e.mid&&"audio"===n}));i||(i=Cn(Cn({},d),{},{mid:e.mid}),c.media.push(i)),i.ssrcs=zn(n,p),i.direction="sendonly"}))),A=Dn(r.video),e.prev=31,C=se.mark((function e(){var t,r,i,a,o;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=_.value,r=t.from,i=t.subSsrcGroup,a=s.get(r),(o=c.media.find((function(e){var t=e.mid,r=e.type;return t==a.mid&&"video"===r})))||((o=Cn({},l)).mid=a.mid,c.media.push(o)),o.direction="sendonly",n[r].ssrc=null==i?void 0:i.ssrc,Yn(i,o,p);case 8:case"end":return e.stop()}}),e)})),A.s();case 34:if((_=A.n()).done){e.next=38;break}return e.delegateYield(C(),"t2",36);case 36:e.next=34;break;case 38:e.next=43;break;case 40:e.prev=40,e.t3=e.catch(31),A.e(e.t3);case 43:return e.prev=43,A.f(),e.finish(43);case 46:return t.remoteSDP=c,e.next=49,o.setRemoteDescription({type:"answer",sdp:R.write(c)});case 49:case"end":return e.stop()}}),e,null,[[6,15,18,21],[31,40,43,46]])})));return function(t,r,n){return e.apply(this,arguments)}}(),Kn=function(){var e=_(se.mark((function e(t,r){var n,i,a,o,s,c,u,l,d,p,f,v;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.pc,i=t.remoteSDP,a=[],o=Dn(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,Oe(l))}catch(e){o.e(e)}finally{o.f()}return a.forEach((function(e){e.direction="inactive"})),e.next=7,n.createOffer();case 7:return d=e.sent,e.next=10,n.setLocalDescription(d);case 10:t.localSDP=R.parse(d.sdp),p=se.mark((function e(){var t;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=v[f],i.media.find((function(e){return e.mid==t.mid})).direction="inactive";case 3:case"end":return e.stop()}}),e)})),f=0,v=a;case 13:if(!(f<v.length)){e.next=18;break}return e.delegateYield(p(),"t0",15);case 15:f++,e.next=13;break;case 18:return t.remoteSDP=i,e.next=21,n.setRemoteDescription({type:"answer",sdp:R.write(i)});case 21:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),zn=function(e,t){return[{attribute:"msid",value:"".concat(t," v").concat(e),id:e},{attribute:"cname",value:y(),id:e}]},$n=function(t,r,n){var i=r.direction,a=r.remoteSDP,o=R.parse(t);o.media.forEach((function(e){e.candidates.forEach((function(e){e.generation=0,e["network-cost"]=k(e.ip)?10:1e3}))})),n&&(o=function(e,t){var r=t.media.find((function(e){return"audio"===e.type})),n=t.media.find((function(e){return"video"===e.type}));return e.media.forEach((function(t,i){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[i]=Cn(Cn({},r),{},{mid:a,ssrcs:u}):"video"===t.type&&(e.media[i]=Cn(Cn({},n),{},{mid:a,ssrcGroups:s,ssrcs:u}),d.length&&(e.media[i].rids=d,e.media[i].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"===i&&e.isFirefox()&&Re.simulcast&&(s.ext=s.ext.filter((function(e){return!e.uri.includes("rtp-stream-id")}))),!s.ssrcs&&"downlink"===i){var c=Vn(),u=o.msidSemantic.token;s.ssrcs=zn(c,u)}return r.remoteSDP=o,o},Xn=function(e){var t=e.localSDP,r=e.remoteSDP,n=e.sessionManager,i=e.mcuAudioTranceiver,a=e.pc,o=e.idToTransceiverMap,s=e.idToTransceiversMap,c=e.direction,u=t.media.slice(2),l=Oe(n.sessions.values());if("downlink"===c){var d=r.media.slice(2),p=l.filter((function(e){return e instanceof Tn})),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&&!Re.audioSFU&&(o.set(f.id,i),f.addTransceiver(i));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})),n=p.find((function(e){return(null==e?void 0:e.ssrc)===(null==r?void 0:r.ssrcs[0].id)})),i=a.addTransceiver(e.type,t);"recvonly"===e.direction&&("video"===e.type&&n?(o.set(n.stream.id,i),n.addTransceiver(i)):"audio"===e.type&&v.push(i))})),v.length&&f&&(e.mcuAudioTranceivers=v,s.set(f.id,v),f.addTransceivers(v))}else{var m=l.filter((function(e){return e instanceof ci}));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 n=r.tracks[0],i=(null==n?void 0:n.getMediaStreamTrack())||(null==n?void 0:n.trackMediaType);if(n instanceof ir){var s=Kt(n).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(i,t);o.set(n.getTrackId(),c),r.addTransceiver(c)}else a.addTransceiver(e.type,t)}))}},Zn=function(e,t){if(e){var r,n=e.fmtp,i=e.payloads,a=e.rtp,o=e.rtcpFb,s=[],c={},u=Dn(n);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=Dn(f);try{for(m.s();!(v=m.n()).done;){var h=_t(v.value.split("="),2),g=h[0],y=h[1];c[p][g]=y}}catch(e){m.e(e)}finally{m.f()}}}catch(e){u.e(e)}finally{u.f()}for(var b in c){var S=c[b];(t(S)||s.includes(+S.apt))&&s.push(parseInt(b))}if(s.length){for(var k=n.length-1;k>=0;k--){var P=n[k].payload;s.includes(P)&&n.splice(k,1)}for(var w=a.length-1;w>=0;w--)s.includes(a[w].payload)&&a.splice(w,1);for(var O=o.length-1;O>=0;O--)s.includes(o[O].payload)&&o.splice(O,1);e.payloads=i.split(" ").map(Number).filter((function(e){return!s.includes(e)})).join(" ")}}},ei=function(e,t){var r=e.media.find((function(e){return"video"===e.type}));return Zn(r,(function(e){var r;return null===(r=e["profile-level-id"])||void 0===r?void 0:r.includes(t)})),e},ti=function(e){var t=e.media.find((function(e){return"video"===e.type}));return Zn(t,(function(e){return e["profile-level-id"]&&!e["packetization-mode"]})),e};function ri(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ni(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ri(Object(r),!0).forEach((function(t){ce(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ri(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 n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}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,n=Array(t);r<t;r++)n[r]=e[r];return n}function oi(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(oi=function(){return!!e})()}var si=t().getLoggerWithPrefix("[publication]"),ci=function(){function e(t){var r,n,i,a;C(this,e),n=this,i=F(i=e),r=N(n,oi()?Reflect.construct(i,[],F(n).constructor):i.apply(n,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,"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("[publication]"),r.state=re.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),r.applyOptions=tt(r.applyOptions,100,!1),u.forEach((function(e){e.on(ge,r.handleTracEvent)})),r.encodings=Kt(u[0]).encodings,r.state=re.Processing,r.connection.once("ended",(function(){r.clear()})),r}return G(e,c),L(e,[{key:"stop",value:function(){var e=this;return this.state!==re.Processing?Promise.resolve():di([this],{connection:this.connection}).catch((function(t){e.clear(),e.logger.warn("negative ack for unpublish, ".concat(h(t)))}))}},{key:"mute",value:function(){if(this.tracks.length&&this.state===re.Processing){var e=this.tracks[0].trackMediaType;return this.reporter.trace.localControl(e,!0,this.id),this.rtcSignaling.streamControl({streamId:this.id,operation:"pause",data:e})}}},{key:"unmute",value:function(){if(this.tracks.length&&this.state===re.Processing){var e=this.tracks[0].trackMediaType;return this.reporter.trace.localControl(e,!1,this.id),this.rtcSignaling.streamControl({streamId:this.id,operation:"play",data:e})}}},{key:"initInner",value:function(e){this.id=e;var t=this.tracks[0];this.addTransceiver(this.connection.idToTransceiverMap.get(t.getTrackId())),"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,n=this.transceiver,i=e.getMediaStreamTrack().getSettings(),a=i.width,o=i.height,s=Jt(a,o);this.rtcSignaling.streamControl({streamId:this.id,operation:"updateResolution",highestResolutionLevel:s});var c=function(e,t){var r=qt(e,t),n=function(n){var i=_t(Wt(e,t,n,r),2);i[0];var a=1/(i[1]/t);return Math.max(a,1)};return{ld:n(Ot.LD),sd:n(Ot.SD),fhd:n(r)}}(a,o);r.addTask(_(se.mark((function e(){var r;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t.logger.info("scales",c),(r=n.sender.getParameters()).encodings.forEach((function(e){e.scaleResolutionDownBy=c[e.rid]})),t.logger.info("handleRepublish setParameters",r),e.abrupt("return",n.sender.setParameters(r).then((function(){console.log(n.sender.getParameters().encodings)})));case 5:case"end":return e.stop()}}),e)}))))}},{key:"handleTracEvent",value:function(e,t){var r,n=this,i={replace:function(){return n.replaceTrack(t.getMediaStreamTrack())},mute:function(){return n.mute()},unmute:function(){return n.unmute()},republish:function(){Re.republish?n.handleRepublish(t):n.stop().then((function(){n.connection.sessionManager.serviceManager.client.publish([t])}))},stop:function(){return n.stop()},optimizationMode:function(){return n.updateOptionzationMode()},mirror:function(){return n.handleMirror(t)}};return null===(r=i[e])||void 0===r?void 0:r.call(i)}},{key:"clear",value:function(){var e=this;this.state!==re.End&&(this.monitor&&(this.monitor.stop(),this.monitor.removeAllListeners(),this.monitor=null),this.tracks.forEach((function(t){t.off(ge,e.handleTracEvent)})),this.tracks=[],this.metricsMap.clear(),this.audioStatsMap.clear(),this.videoStatsMap.clear(),this.connection.reset(),this.state=re.End,this.emit("ended"))}},{key:"applyOptions",value:function(e){var t=this,r=e[0],n=r.index,i=r.bitrate;if(this.logger.debug("applyOptions",e),!(n<this.feedbackIndex||this.state!==re.Processing)){this.feedbackIndex=n;var a=this.transceiver;this.connection.addTask((function(){return new Promise((function(r){var n,o=0===i,s=!1,c=a.sender.getParameters(),u=e.map((function(e){return e.rid})),l=ii(c.encodings);try{for(l.s();!(n=l.n()).done;){var d,p=n.value,f=ii(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 Hn(t).then(r)}))}))}))}}},{key:"updateOptionzationMode",value:function(){var e,t=this,r=this.tracks,n=this.transceiver,i=this.connection;if(r[0]instanceof ir&&null!=n&&null!==(e=n.sender)&&void 0!==e&&e.setParameters){var a=r[0].optimizationMode;i.addTask((function(){var e=n.sender.getParameters();return e.degradationPreference=Ln[a]||"balanced",t.logger.info("updateOptionzationMode setParameters",e),n.sender.setParameters(e),Hn(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=re.Processing,this.feedbackIndex=-1,this.monitor=new pn(this),this.onMonitor()}},{key:"replaceTrack",value:function(e){var t;this.transceiver&&(null===(t=this.transceiver.sender.track)||void 0===t||t.stop(),this.transceiver.sender.replaceTrack(e))}},{key:"handleMetrics",value:function(e,t){var r=e.audioMetrics,n=e.videoMetrics;if(r){var i,a=(null===(i=this.metricsMap.get(t))||void 0===i?void 0:i.audioMetrics)||{},o=ze(r,a),s=Xe(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(n){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=ze(n,f),m=Xe(n.totalBytesSent,f.totalBytesSent),h={codec:this.connection.peerConnectionStats.videoCodec||n.codec,sendFrameRate:Math.round(n.sendFramesPerSecond),captureFrameRate:n.captureFramesPerSecond,encodeFrameRate:n.encodeFramesPerSecond,qpSum:n.totalQpSum||0,targetBitrate:n.targetBitrate,encodeLayers:p.length,sendLayers:p.filter((function(e){return e.active})).length,outgingBitrate:n.availableOutgoingBitrate,sendResolution:{width:n.maxSendFrameWidth,height:n.maxSendFrameHeight},captureResolution:{width:n.captureFrameWidth,height:n.captureFrameHeight},sendBytes:n.totalBytesSent,sendPackets:n.totalPacketsSent,sendPacketsLost:n.totalPacketsLost,timestamp:n.timestamp,rtt:this.connection.peerConnectionStats.roundTripTime||n.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(ni({sessionId:e.id},t))})),this.monitor.on("video-send-stream",(function(t){e.reporter.metric.videoSendStream(ni({sessionId:e.id},t))})),this.monitor.on("bwe",(function(t){e.reporter.metric.bwe(ni({sessionId:e.id},t))}))}}])}(),ui=function(){var e=_(se.mark((function e(t,r){var n,i,a,o,s,c=arguments;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=c.length>2&&void 0!==c[2]?c[2]:["common"],i={},e.next=4,qn(r,t);case 4: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)i.audio=[{source:"mic",autoMix:n,trackId:t,msid:s.id,uplinkSsrcGroup:[{ssrc:Number(a.ssrcs[0].id)}]}];else if(e instanceof ir){var c;i.video=i.video||[];var u=a.ssrcGroups,l=void 0===u?[]:u,d=Kt(e),p=d.encodings,f=d.resolutionLevel;p.length>1&&(l=p.map((function(){return{semantics:"FID",ssrcs:"".concat(Vn()," ").concat(Vn())}})));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===z.SCREENCAST,msid:s.id,mid:"".concat(a.mid),highestResolutionLevel:f,uplinkSsrcGroup:v,source:e.source||z.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}}}))};i.video.push(h)}})),e.abrupt("return",i);case 9:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),li=function(e){var t,r=e.tracks,n=e.connection,i=e.labels,a=r.map((function(t){return{publication:new ci(ni(ni({},e),{},{tracks:[t]})),track:t}})),o=new Promise((function(e,o){t=function(){var t=_(se.mark((function t(){var s,c;return se.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,ui(r,n,i);case 2:return s=t.sent,c={connectionId:n.id,media:s,simulcast:Re.simulcast,simulcastVersion:"1.0",clientType:"web",supportTemporalLayer:!1,type:"webrtc"},t.abrupt("return",n.rtcSignaling.batchPublish(c).then(function(){var t=_(se.mark((function t(r){var n,i,o,s,c;return se.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=r.detailStatus,"ok"===(i=r.globalStatus)){t.next=4;break}return a.forEach((function(e){e.error=Ce(e.track,i)})),t.abrupt("return",e(a));case 4:o=ii(n),t.prev=5,c=se.mark((function e(){var t,r,n,i,o,c,u;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=s.value,r=t.id,n=t.origin,i=t.msg,o=a.findIndex((function(e){return e.track.getTrackId()===n.id})),c=a[o]||{},u=c.publication,"ok"===i&&u?u.initInner(r):"ok"!==i&&(a[o].error=Ce(a[o].track,i));case 4:case"end":return e.stop()}}),e)})),o.s();case 8:if((s=o.n()).done){t.next=12;break}return t.delegateYield(c(),"t0",10);case 10:t.next=8;break;case 12:t.next=17;break;case 14:t.prev=14,t.t1=t.catch(5),o.e(t.t1);case 17:return t.prev=17,o.f(),t.finish(17);case 20:e(a);case 21:case"end":return t.stop()}}),t,null,[[5,14,17,20]])})));return function(e){return t.apply(this,arguments)}}()).catch((function(e){si.info("batchPublishStart error",e),o(e)})));case 5:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}()}));return n.addTask(t),o},di=function(){var e=_(se.mark((function e(t,r){var n,i;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=new Promise((function(e,i){n=function(){var n=_(se.mark((function n(){var a,o;return se.wrap((function(n){for(;;)switch(n.prev=n.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})),n.next=4,Wn(r.connection,t);case 4:r.connection.rtcSignaling.batchUnPublish({connectionId:r.connection.id,audio:a,video:o}).then((function(){t.forEach((function(e){e.clear()})),e(void 0)})).catch(i);case 5:case"end":return n.stop()}}),n)})));return function(){return n.apply(this,arguments)}}()})),r.connection.addTask(n),e.abrupt("return",i);case 3:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}();function pi(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(pi=function(){return!!e})()}var fi={audioCodec:"",videoCodec:"",roundTripTime:-1,availableOutgoingBitrate:-1},vi=function(){function t(e){var r,n,i,a;return C(this,t),n=this,i=F(i=t),r=N(n,pi()?Reflect.construct(i,[],F(n).constructor):i.apply(n,a)),Object.defineProperty(r,"connectionMetrics",{enumerable:!0,configurable:!0,writable:!0,value:Object.assign({},fi)}),Object.defineProperty(r,"pc",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),r.pc=e.pc,r}return G(t,nn),L(t,[{key:"extractMetrics",value:function(t){var r=Object.assign({},this.connectionMetrics),n="";return t.forEach((function(t){var i;if(!t.isRemote)if(/local-candidate/i.test(t.type)&&t.id===n)e.networkType=(null!==(i=t.networkType)&&void 0!==i?i:e.networkType).replace("vpn","unknown");else if(/candidate-pair/i.test(t.type)&&"succeeded"===t.state)n=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 i(a.BrowserNotSupported,"getStats is not supported");return this.pc.getStats(null).then((function(t){return e.extractMetrics(t)}))}}])}();function mi(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 n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}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,n=Array(t);r<t;r++)n[r]=e[r];return n}function gi(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(gi=function(){return!!e})()}var yi=function(){function t(e){var r,n,i,a,o;C(this,t),n=this,i=F(i=t),r=N(n,gi()?Reflect.construct(i,[],F(n).constructor):i.apply(n,a)),Object.defineProperty(r,"pc",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"pendingTask",{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:ne.New}),Object.defineProperty(r,"exchangeSdpTask",{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=_(se.mark((function e(){var t,n=arguments;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.length>0&&void 0!==n[0]&&n[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&&Xn(r),e.next=5,r.exchangeSDP(t);case 5:r.state=ne.Idle,r.enquenTask.start();case 7: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))}}),r.pc=null;var s=e.direction,c=e.sessionManager;return r.rtcSignaling=c.serviceManager.rtcSignaling,r.sessionManager=c,r.reporter=c.reporter,r.logger=r.reporter.getLoggerWithPrefix("[peerconn]"),r.enquenTask=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=[],r=0,n=!1,i=function(){for(;r<e&&t.length;){r++;var n=t.shift();n&&n().finally((function(){r--,i()}))}};return{add:function(e){t.push(e),n&&i()},start:function(){n=!0,i()}}}(),r.subSdpFmtpLines=[],r.direction=s,r.idToTransceiverMap=new Map,r.idToTransceiversMap=new Map,r.createPeerConnection(),r.id="".concat(r.direction,"_").concat(y()),r}return G(t,c),L(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:"reset",value:function(){this.pendingTask&&(this.pendingTask=null)}},{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=this,r=e.track,n=e.streams;r.addEventListener("ended",(function(){return t.logger.info("sub track ended",r.id)})),r.addEventListener("unmute",(function(){return t.logger.info("sub track unmute",r.id)})),r.addEventListener("mute",(function(){return t.logger.info("sub track mute",r.id)})),"audio"===r.kind?Re.audioSFU?this.emit("track",r,n[0]):this.mcuAudioStream=new MediaStream([r]):this.emit("track",r)}},{key:"fireEndedEvent",value:function(){this.state!==ne.Ended&&(this.state=ne.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=_(se.mark((function e(){return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.state!==ne.New){e.next=2;break}return e.abrupt("return",Promise.reject());case 2:return this.logger.info("connectionId:".concat(this.id,": start client reoffer")),e.prev=3,e.next=6,this.stopSinglePC(!0);case 6:this.removeAllListeners(),e.next=12;break;case 9:e.prev=9,e.t0=e.catch(3),this.logger.info("connectionId:".concat(this.id," client reoffer close failed ").concat(h(e.t0)));case 12:this.closePeerConnection();case 13:case"end":return e.stop()}}),e,this,[[3,9]])}))),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!==ne.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,n=t.password,i=t.port,a=t.iceServerList,o={bundlePolicy:"max-bundle",iceTransportPolicy:"all",sdpSemantics:"unified-plan"};if(a.length){var s,c=[],u=mi(a);try{for(u.s();!(s=u.n()).done;){var l=s.value;c.push("turn:".concat(l,":").concat(i,"?transport=udp"),"turn:".concat(l,":").concat(i,"?transport=tcp"))}}catch(e){u.e(e)}finally{u.f()}e.isFirefox()&&c.splice(4,2),o.iceServers=[{urls:c,username:r,credential:n}]}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.exchangeSdpTask||(e.logger.info("connectionId:".concat(e.id,": emit reoffer")),e.emit("reoffer"))}),4e3))}},{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 vi(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:"startTask",value:function(){var e=this;return new Promise((function(t,r){e.pendingTask={resolve:t,reject:r},e.exchangeSDP(),d((function(){var t;e.pendingTask&&e.state===ne.Processing&&(null===(t=e.pendingTask)||void 0===t||t.reject(),e.fireEndedEvent())}),15e3)}))}},{key:"exchangeSDP",value:function(){var t,r=this,n=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return new Promise((function(o,s){r.exchangeSdpTask={resolve:o,reject:s},r.pc.createOffer().then((function(e){var i,a,o;return t=e,n&&(t.sdp=R.write((i=r.localSDP,a=R.parse(t.sdp),o=a.media,i.media.forEach((function(e){var t=e.mid,r=e.ssrcGroups,n=void 0===r?[]:r,i=e.ssrcs,a=void 0===i?[]:i,s=e.type,c=o.findIndex((function(e){return e.mid==t&&e.type===s}));c>-1&&(o[c]=Cn(Cn({},o[c]),{},{ssrcGroups:n,ssrcs:a}))})),a))),r.pc.setLocalDescription(t).catch((function(e){throw r.logger.error("connectionId:".concat(r.id," Failed to create offer or set SDP. Message: ").concat(e.message,")}")),e}))})).then((function(){r.logger.info("connectionId:".concat(r.id," set local sdp success"));var c=function(t,r){var n=r.direction,i=["uplink"===n,Re.downlinkForbidHighProfile],a=R.parse(t);if(i.some((function(e){return e}))&&(a=ei(a,"64")),Re.disableTransportCC&&"uplink"===n&&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}))}))}(a),"downlink"===n&&!Re.downlinkForbidHighProfile){var o=[];a.media.find((function(e){return"video"===e.type})).fmtp.forEach((function(e){var t=e.config;t.includes("profile-level-id")&&o.push(t)})),r.subSdpFmtpLines=o}if(e.isFirefox()&&(a=ti(a)),"uplink"===n&&e.isFirefox()&&Re.simulcast){var s=a.media.find((function(e){return"video"===e.type}));Qn(s)}return r.localSDP=a,a}(t.sdp,r);t.sdp=R.write(c),r.offerSDP=c,t.sdp=R.write(c);var u,l={direction:"downlink"!==r.direction?"in":"out",sdpOffer:t.sdp,connectionId:r.id,isFailover:n,optionsJsonStr:JSON.stringify({supportCVO:1})};if(n){var d=R.parse(t.sdp);d.media=d.media.slice(0,2),d.groups=[{mids:"0 1",type:"BUNDLE"}],l.sdpOffer=R.write(d)}!function(e){var t=e.fn,r=e.times,n=e.interval,i=void 0===n?0:n,a=e.resolve,o=e.reject;if(!(r>0))throw new Error("invalid params times");var s=function(){var e=_(se.mark((function e(){var n,s;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:s=0;case 1:if(!(s<r)){e.next=22;break}return e.prev=2,e.next=5,t();case 5:return n=e.sent,null==a||a(n),e.abrupt("break",22);case 10:if(e.prev=10,e.t0=e.catch(2),s!==r-1){e.next=17;break}return null==o||o(e.t0),e.abrupt("return",e.t0);case 17:return e.next=19,Ze(i);case 19:s++,e.next=1;break;case 22:return e.abrupt("return",n);case 23:case"end":return e.stop()}}),e,null,[[2,10]])})));return function(){return e.apply(this,arguments)}}();s()}({key:"createPeerConnection_".concat(r.direction),fn:(u=_(se.mark((function e(){var t;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("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=2;break}return e.abrupt("return");case 2:if(l.isFailover||!r.prevId){e.next=7;break}return e.next=5,r.stopSinglePC(!0);case 5:r.id="".concat(r.direction,"_").concat(y()),l.connectionId=r.id;case 7:return r.prevId=r.id,e.abrupt("return",r.rtcSignaling.createPeerConnection(l).then((function(e){var t=e.sdpAnswer,o=$n(t,r,n);r.pc.setRemoteDescription({sdp:R.write(o),type:"answer"}).then((function(){var e;r.logger.info("connectionId:".concat(r.id," receive answer success")),null===(e=r.exchangeSdpTask)||void 0===e||e.resolve(),r.exchangeSdpTask=void 0})).catch((function(e){var t,n;r.logger.error("connectionId:".concat(r.id," Set remote description failed: ").concat(e)),null===(t=r.exchangeSdpTask)||void 0===t||t.reject(e),r.exchangeSdpTask=void 0,null===(n=r.pendingTask)||void 0===n||n.reject(new i(a.IceConnectionAnswerFail)),r.fireEndedEvent()}))})));case 9:case"end":return e.stop()}}),e)}))),function(){return u.apply(this,arguments)}),times:3,interval:2e3,reject:s,resolve:o})})).catch((function(e){var t,n;r.logger.error("connectionId:".concat(r.id," Failed to create offer or set SDP. Message: ").concat(e.message)),null===(t=r.pendingTask)||void 0===t||t.reject(new i(a.IceConnectionSetLocalDescFail)),r.fireEndedEvent(),null===(n=r.exchangeSdpTask)||void 0===n||n.reject(e),r.exchangeSdpTask=void 0}))}))}},{key:"reoffer",value:function(){return this.state===ne.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=ne.New,this.startSinglePC(!0))}},{key:"handleHighProfileFallback",value:function(){Re.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 bi(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Si(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){ce(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 ki(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 Pi(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)?Pi(e,t):void 0}}(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}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 Pi(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function wi(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(wi=function(){return!!e})()}var Oi=2e3,Ti=function(){function e(t,r){var n,i,a,o;return C(this,e),i=this,a=F(a=e),n=N(i,wi()?Reflect.construct(a,[],F(i).constructor):a.apply(i,o)),Object.defineProperty(n,"client",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(n,"sessions",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"networkQualityInterval",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"lastChannelNetworkQuality",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"uplink",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"downlink",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"streamIdToSessionId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"serviceManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"reporter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"logger",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),n.serviceManager=r,n.client=t,n.reporter=r.reporter,n.logger=n.reporter.getLoggerWithPrefix("[rtc-sessionMgr]"),n.streamIdToSessionId=new Map,n.sessions=new Map,n.handleMediaMessage=n.handleMediaMessage.bind(n),n.handleServerFailover=n.handleServerFailover.bind(n),n.handleRepulish=n.handleRepulish.bind(n),n.handleResubscribe=n.handleResubscribe.bind(n),n}return G(e,c),L(e,[{key:"getOrCreatePeerConnection",value:(g=_(se.mark((function e(t){var r=this;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("uplink"!==t){e.next=10;break}if(this.uplink){e.next=7;break}return this.uplink=new yi({direction:t,sessionManager:this}),e.next=5,this.uplink.startSinglePC();case 5:this.uplink.on("reoffer",this.handleRepulish),this.uplink.on("ended",(function(){r.uplink=null}));case 7:return e.abrupt("return",this.uplink);case 10:if(this.downlink){e.next=16;break}return this.downlink=new yi({direction:t,sessionManager:this}),e.next=14,this.downlink.startSinglePC();case 14:this.downlink.on("reoffer",this.handleResubscribe),this.downlink.on("ended",(function(){r.downlink=null}));case 16:return e.abrupt("return",this.downlink);case 17:case"end":return e.stop()}}),e,this)}))),function(e){return g.apply(this,arguments)})},{key:"handleRepulish",value:(h=_(se.mark((function e(){var t,r,n,i,a,o,s,c,u,l,d,p;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:this.logger.info("handle repub"),r=Oe(this.client.localTracks),n=ki(this.sessions.values());try{for(n.s();!(i=n.n()).done;)(a=i.value)instanceof ci&&a.state===re.Processing&&(a.clear(),this.sessions.delete(a.id))}catch(e){n.e(e)}finally{n.f()}this.client.emit("media-reconnect-start",this.client.userId),o=null===(t=this.uplink)||void 0===t?void 0:t.id,s=Date.now(),c=s+45e3,u=!1,l=0;case 10:if(!(l<23&&Date.now()<=c)){e.next=42;break}if(!((d=Date.now())<s+l*Oi)){e.next=15;break}return e.next=15,Ze(s+l*Oi-d);case 15:if(this.logger.debug("repub round=".concat(l,", channelconnect=").concat(this.serviceManager.internalChannel.connectionState)),"connected"===this.serviceManager.internalChannel.connectionState){e.next=18;break}return e.abrupt("continue",39);case 18:return e.prev=18,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=23,null===(p=this.uplink)||void 0===p?void 0:p.clearPcForReoffer();case 23: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=29;break}return e.next=28,this.batchPublish(r);case 28:this.logger.info("".concat(this.client.userId," batchPublish finished for repub"));case 29:return this.reporter.trace.connectionsEvent(o,"clientReofferSuccess"),this.logger.info("emitted media-reconnect-end",this.client.userId),this.client.emit("media-reconnect-end",this.client.userId),u=!0,e.abrupt("break",42);case 36:e.prev=36,e.t0=e.catch(18),this.logger.error("".concat(this.client.userId," republish failed for"),e.t0);case 39:l++,e.next=10;break;case 42:u||(this.reporter.trace.connectionsEvent(o,"clientReofferFailed"),this.client.emit("media-reconnect-end",this.client.userId),this.serviceManager.rtcSignaling.emit("connection-state-change","disconnected",this.client.connectionState,"network_error"));case 43:case"end":return e.stop()}}),e,this,[[18,36]])}))),function(){return h.apply(this,arguments)})},{key:"handleStuckResubscribe",value:(v=_(se.mark((function e(t){var r,n,i,a,o,s,c,u,l,d,p;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("connected"===this.serviceManager.internalChannel.connectionState){e.next=3;break}return this.logger.info("ignore for inner not connected"),e.abrupt("return");case 3:r=[],n=ki(t);try{for(n.s();!(i=n.n()).done;)(a=i.value)instanceof Tn&&a.state===re.Processing&&(r.push({stream:a.stream,uid:a.uid,resolutionInfo:a.userConfigResolution,session:a,profileFallback:!0}),this.removeSession(a.id))}catch(e){n.e(e)}finally{n.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=9,e.next=12,this.batchUnscribe(r);case 12:return e.next=14,this.batchSubscribe(r);case 14:s=e.sent,c=ki(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=25;break;case 20:e.prev=20,e.t0=e.catch(9),this.logger.debug("".concat(this.client.userId," resubscribe failed for"),e.t0),this.client.emit("media-reconnect-end",o),this.serviceManager.rtcSignaling.emit("connection-state-change","disconnected",this.client.connectionState,"network_error");case 25:case"end":return e.stop()}}),e,this,[[9,20]])}))),function(e){return v.apply(this,arguments)})},{key:"handleResubscribe",value:(f=_(se.mark((function e(){var t,r,n,i,a,o,s,c,u,l,d,p,f,v,m,h,g,y,b,S,k,P=arguments;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=P.length>0&&void 0!==P[0]&&P[0],this.logger.info("handle resub fromServer=",r),n=r?"server":"client",i=[],a=ki(this.sessions.values());try{for(a.s();!(o=a.n()).done;)(s=o.value)instanceof Tn&&s.state===re.Processing&&(i.push({stream:s.stream,uid:s.uid,resolutionInfo:s.userConfigResolution}),this.removeSession(s.id))}catch(e){a.e(e)}finally{a.f()}c=i.map((function(e){return e.uid})).join(),this.client.emit("media-reconnect-start",c),this.logger.info("resubscribe start ".concat(c)),u=null===(t=this.downlink)||void 0===t?void 0:t.id,l=Date.now(),d=l+45e3,p=!1,f=0;case 14:if(!(f<23&&Date.now()<=d)){e.next=46;break}if(!((v=Date.now())<l+f*Oi)){e.next=19;break}return e.next=19,Ze(l+f*Oi-v);case 19:if(this.logger.debug("resub round=".concat(f,", channelconnect=").concat(this.serviceManager.internalChannel.connectionState)),"connected"===this.serviceManager.internalChannel.connectionState){e.next=22;break}return e.abrupt("continue",43);case 22:return e.prev=22,this.reporter.trace.connectionsEvent(u,"".concat(n,"ReofferStart")),e.next=26,null===(m=this.downlink)||void 0===m?void 0:m.clearPcForReoffer();case 26:if(this.downlink=null,!i.length){e.next=33;break}return e.next=30,this.batchSubscribe(i);case 30:h=e.sent,g=ki(h);try{for(g.s();!(y=g.n()).done;)b=y.value,S=b.subscription,k=b.error,S&&!k&&this.handleResubSuccess(S)}catch(e){g.e(e)}finally{g.f()}case 33:return this.reporter.trace.connectionsEvent(u,"".concat(n,"ReofferSuccess")),this.logger.debug("resub round=".concat(f," resubscribe ").concat(c," success")),this.client.emit("media-reconnect-end",c),p=!0,e.abrupt("break",46);case 40:e.prev=40,e.t0=e.catch(22),this.logger.debug("resub round=".concat(f," resubscribe failed for"),e.t0);case 43:f++,e.next=14;break;case 46:p||(this.reporter.trace.connectionsEvent(u,"".concat(n,"ReofferFailed")),this.client.emit("media-reconnect-end",c),this.serviceManager.rtcSignaling.emit("connection-state-change","disconnected",this.client.connectionState,"network_error"));case 47:case"end":return e.stop()}}),e,this,[[22,40]])}))),function(){return f.apply(this,arguments)})},{key:"getSessionByStreamId",value:function(e){return this.sessions.get(this.streamIdToSessionId.get(e))}},{key:"handleResubSuccess",value:function(e){var t,r=e.uid,n=e.mediaStream,i=(null===(t=e.stream.media.video)||void 0===t?void 0:t.source)===z.SCREENCAST,a=n.getAudioTracks()[0],o=n.getVideoTracks()[0],s=a?"audio":i?"screen":"camera";if(this.logger.debug("".concat(r," resubscribe ").concat(s," success")),a&&this.serviceManager.remoteAudioTrack){var c,u;if(Re.audioSFU)null===(c=(u=this.serviceManager.remoteAudioTrack).replaceStream)||void 0===c||c.call(u,n);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&&i?l.auxiliaryTrack.replaceTrack(o):o&&null!=l&&l.videoTrack&&!i&&l.videoTrack.replaceTrack(o)}}},{key:"handleServerFailover",value:function(e){var t=this;this.logger.debug("serverFailover",e);var r,n=e.actions,i=ki(void 0===n?[]:n);try{var a=function(){var e,n,i=r.value,a=i.actionName,o=i.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===(n=t.downlink)||void 0===n?void 0:n.id)&&t.handleResubscribe(!0)};for(i.s();!(r=i.n()).done;)a()}catch(e){i.e(e)}finally{i.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?X.BAD:e>30||t>450?X.POOR:e>20||t>300?X.NORMAL:e>10||t>200?X.GOOD:e>=0||t>=0?X.GREAT:X.UNKNOWN}},{key:"checkChannelNetworkQuality",value:(p=_(se.mark((function e(){var t,r=this;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(0!==(t=Oe(this.sessions.values())).length){e.next=4;break}return this.emit("network-quality",X.UNKNOWN,X.UNKNOWN),e.abrupt("return");case 4: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=8;break}return this.emit("network-quality",X.DISCONNECTED,X.DISCONNECTED),e.abrupt("return");case 8:Promise.all([this.getLocalVideoStats(),this.getLocalAudioStats(),this.getRemoteAudioStats(),this.getRemoteVideoStats()]).then((function(e){var t=_t(e,4),n=t[0],i=t[1],a=t[2],o=t[3],s=0,c=0,u=0,l=0,d=0,p=0;if(n){var f=n.camera,v=n.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 i&&(c+=i.sendPacketsLost||0,s+=i.sendPackets||0,d=Math.max(d,i.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,y=h.auxiliary;g&&(u+=g.receivePacketsLost,l+=g.receivePackets,p=Math.max(p,g.rtt||0)),y&&(u+=y.receivePacketsLost,l+=y.receivePackets,p=Math.max(p,y.rtt||0))}var b=-1,S=-1,k={timestamp:Date.now(),totalUplinkPacketsLost:c,totalUplinkPacketsSent:s,totalDownlinkPacketsLost:u,totalDownlinkPacketsRecv:l};if(s){var P,w,O=c-((null===(P=r.lastChannelNetworkQuality)||void 0===P?void 0:P.totalUplinkPacketsLost)||0);if(O<0&&(O=c),k.totalUplinkPacketsSentForLost=(null===(w=r.lastChannelNetworkQuality)||void 0===w?void 0:w.totalUplinkPacketsSentForLost)||0,0!==O){var T;k.totalUplinkPacketsSentForLost=s;var E=s-((null===(T=r.lastChannelNetworkQuality)||void 0===T?void 0:T.totalUplinkPacketsSentForLost)||0);E<0&&(E=s),b=O/E}}if(l){var I,R,M,A,_=u-((null===(I=r.lastChannelNetworkQuality)||void 0===I?void 0:I.totalDownlinkPacketsLost)||0);_<0&&(_=u),k.totalDownlinkPacketsRecvForLost=(null===(R=r.lastChannelNetworkQuality)||void 0===R?void 0:R.totalDownlinkPacketsRecvForLost)||0,null===(M=r.lastChannelNetworkQuality)||void 0===M||M.totalDownlinkPacketsRecvForLost,_&&(u!==((null===(A=r.lastChannelNetworkQuality)||void 0===A?void 0:A.totalDownlinkPacketsLost)||0)&&(k.totalDownlinkPacketsRecvForLost=l),S=_/l)}r.emit("network-quality",r.getNetworkQuality(Math.min(100*b,100),d),r.getNetworkQuality(Math.min(100*S,100),p)),r.lastChannelNetworkQuality=k}));case 9: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))}},{key:"batchPublish",value:(l=_(se.mark((function e(t,r){var n,i,a=this;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=Date.now(),e.next=3,this.getOrCreatePeerConnection("uplink");case 3:return i=e.sent,e.abrupt("return",li({uid:this.client.userId,tracks:t,connection:i,labels:r}).then((function(e){var t,r=ki(e);try{var i=function(){var e=t.value,r=e.error,i=e.publication,o=e.track;r?a.reporter.trace.publish(!1,o,"",Date.now()-n):(a.addSession(o.getTrackId(),i),a.reporter.trace.publish(!0,o,i.id,Date.now()-n),a.reporter.trace.publish(!1,o,i.id,Date.now()-n),i.on("ended",(function(){a.removeSession(i.id)})))};for(r.s();!(t=r.n()).done;)i()}catch(e){r.e(e)}finally{r.f()}})));case 5:case"end":return e.stop()}}),e,this)}))),function(e,t){return l.apply(this,arguments)})},{key:"batchUnPublish",value:(u=_(se.mark((function e(t){var r,n=this;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t.length){e.next=2;break}return e.abrupt("return",Promise.resolve());case 2:return e.next=4,this.getOrCreatePeerConnection("uplink");case 4:return r=e.sent,e.abrupt("return",di(t,{connection:r}).then((function(){var e,r=ki(t);try{for(r.s();!(e=r.n()).done;){var i,a,o,s=e.value;n.streamIdToSessionId.delete(null===(i=s.tracks)||void 0===i||null===(i=i[0])||void 0===i||null===(a=(o=i).getTrackId)||void 0===a?void 0:a.call(o)),n.removeSession(s.id)}}catch(e){r.e(e)}finally{r.f()}})));case 6:case"end":return e.stop()}}),e,this)}))),function(e){return u.apply(this,arguments)})},{key:"batchSubscribe",value:function(e){var t,r=this,n=Date.now(),i=0,a=function(){var e=_(se.mark((function e(t){var n;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.getOrCreatePeerConnection("downlink");case 2:return n=e.sent,e.abrupt("return",Mn(t,{connection:n}).then(function(){var e=_(se.mark((function e(n){var o,s,c,u;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(o=new Map,s=[],c=0;c<n.length;c++)"RoomBusy"===(null===(u=n[c].error)||void 0===u?void 0:u.message)&&(s.push(t[c]),o.set(s.length-1,c));if(!(s.length&&i<=3)){e.next=12;break}return i++,e.next=7,et(1);case 7:if("connected"!==r.client.connectionState){e.next=12;break}return e.next=10,a(s);case 10:e.sent.forEach((function(e,t){var r=o.get(t);n[r]=e}));case 12:return e.abrupt("return",n);case 13:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),o=ki(e);try{for(o.s();!(t=o.n()).done;){var s=t.value,c=s.stream,u=s.uid,l=s.resolutionInfo;this.reporter.trace.subscribe({subPhase:"init",capabilities:c.media,remoteStreamId: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,i=ki(e);try{var a=function(){var e=t.value,i=e.error,a=e.subscription,o=e.id,s=e.stream,c=e.uid,u=e.resolutionInfo;a&&(r.reporter.trace.subscribe({subPhase:"success",capabilities:s.media,remoteStreamId:s.id,remoteUserId:c,elapse:Date.now()-n,sessionId:o,resolutionInfo:u}),r.addSession(s.id,a),a.on("ended",(function(){r.logger.info("remove subscription for ended",o),r.removeSession(o)}))),i&&(r.logger.error("batchSubscribe error",s,i),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()-n,sessionId:"",resolutionInfo:u}))};for(i.s();!(t=i.n()).done;)a()}catch(e){i.e(e)}finally{i.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=_(se.mark((function e(t){var r,n,i,a,o=this;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=new Array(t.length),n=[],i={},t.forEach((function(e,t){var a=e.error,s=e.stream,c=e.session;r[t]={},a?(r[t].error=a,o.logger.error("batchUnscribe error",a,s)):(i[null==s?void 0:s.id]=t,n.push(c))})),e.next=6,this.getOrCreatePeerConnection("downlink");case 6:return a=e.sent,e.abrupt("return",An(n,{connection:a}).then((function(){for(var e=0,t=n;e<t.length;e++){var i=t[e];o.removeSession(i.id)}return r})));case 8: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)})),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=_(se.mark((function e(){return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.startNetworkQualityTimer(),e.next=3,this.getOrCreatePeerConnection("uplink");case 3:return this.uplink=e.sent,e.next=6,this.getOrCreatePeerConnection("downlink");case 6:this.downlink=e.sent,this.serviceManager.rtcSignaling.on("media-message",this.handleMediaMessage),this.serviceManager.rtcSignaling.on("serverFailover",this.handleServerFailover);case 9: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",X.DISCONNECTED,X.DISCONNECTED):"connected"!==e.client.connectionState?e.emit("network-quality",X.BAD,X.BAD):"connected"===e.client.connectionState?e.checkChannelNetworkQuality():e.emit("network-quality",X.UNKNOWN,X.UNKNOWN)}),2e3,"interval")}},{key:"getLocalAudioStats",value:(a=_(se.mark((function e(){var t,r,n,i=arguments;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=i.length>0&&void 0!==i[0]?i[0]:"network",n=Oe(this.sessions.values()).filter((function(e){var t,r;return e instanceof ci&&"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=4,Promise.all(n.map((function(e){return e.getMetrics(r)})));case 4:return e.abrupt("return",(null===(t=n[0])||void 0===t?void 0:t.audioStatsMap.get(r))||{});case 5:case"end":return e.stop()}}),e,this)}))),function(){return a.apply(this,arguments)})},{key:"getLocalVideoStats",value:(i=_(se.mark((function e(){var t,r,n,i,a,o,s,c,u,l,d,p,f,v,m=arguments;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=m.length>0&&void 0!==m[0]?m[0]:"network",i=Oe(this.sessions.values()).filter((function(e){var t;return e instanceof ci&&"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=4,Promise.all(i.map((function(e){return e.getMetrics(n)})));case 4: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(";"))||[],n=r.findIndex((function(e){return e.includes("profile-level-id")}));return r[n].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:Oe(new Set(a(o))),downlinkProfile:Oe(new Set(a(s)))},u=ki(i),e.prev=9,u.s();case 11:if((l=u.n()).done){e.next=21;break}if(d=l.value,p=d.videoStatsMap.get(n)){e.next=16;break}return e.abrupt("continue",19);case 16:f=d.tracks,v=f[0].source===z.SCREENCAST,c[v?"auxiliary":"camera"]=p;case 19:e.next=11;break;case 21:e.next=26;break;case 23:e.prev=23,e.t0=e.catch(9),u.e(e.t0);case 26:return e.prev=26,u.f(),e.finish(26);case 29:return e.abrupt("return",c);case 30:case"end":return e.stop()}}),e,this,[[9,23,26,29]])}))),function(){return i.apply(this,arguments)})},{key:"getRemoteVideoStats",value:(n=_(se.mark((function e(){var t,r,n,i,a,o,s,c,u,l,d,p,f=arguments;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=f.length>0&&void 0!==f[0]?f[0]:"network",r=Oe(this.sessions.values()).filter((function(e){var t;return e instanceof Tn&&"connected"===(null===(t=e.connection)||void 0===t||null===(t=t.pc)||void 0===t?void 0:t.connectionState)&&e.stream.media.video})),e.next=4,Promise.all(r.map((function(e){return e.getMetrics(t)})));case 4:n={},i=ki(r),e.prev=6,i.s();case 8:if((a=i.n()).done){e.next=17;break}if(s=a.value,c=s.videoStatsMap,u=s.uid,l=s.stream,d=c.get(t)){e.next=13;break}return e.abrupt("continue",15);case 13:p=(null===(o=l.media.video)||void 0===o?void 0:o.source)===z.SCREENCAST?"auxiliary":"camera",n[u]=Si(Si({},n[u]||{}),{},ce({},p,d));case 15:e.next=8;break;case 17:e.next=22;break;case 19:e.prev=19,e.t0=e.catch(6),i.e(e.t0);case 22:return e.prev=22,i.f(),e.finish(22);case 25:return e.abrupt("return",n);case 26:case"end":return e.stop()}}),e,this,[[6,19,22,25]])}))),function(){return n.apply(this,arguments)})},{key:"getRemoteAudioStats",value:(r=_(se.mark((function e(){var t,r,n,i=arguments;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=i.length>0&&void 0!==i[0]?i[0]:"network",n=Oe(this.sessions.values()).filter((function(e){var t;return e instanceof Tn&&"connected"===(null===(t=e.connection)||void 0===t||null===(t=t.pc)||void 0===t?void 0:t.connectionState)&&e.stream.media.audio})),e.next=4,Promise.all(n.map((function(e){return e.getMetrics(r)})));case 4:return e.abrupt("return",(null===(t=n[0])||void 0===t?void 0:t.audioStatsMap.get(r))||{});case 5:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"handleMediaMessage",value:(t=_(se.mark((function e(t){var r,n,i,a,o;return se.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=4;break}return e.abrupt("return");case 4:n=Oe(this.sessions.values()).filter((function(e){return e instanceof ci&&e.state===re.Processing&&e.tracks[0].source===z.CAMERA})),i=ki(n),e.prev=6,o=se.mark((function e(){var t,n;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=a.value,(n=r.filter((function(e){return e.mid==t.transceiver.mid}))).length&&t.applyOptions(n);case 3:case"end":return e.stop()}}),e)})),i.s();case 9:if((a=i.n()).done){e.next=13;break}return e.delegateYield(o(),"t0",11);case 11:e.next=9;break;case 13:e.next=18;break;case 15:e.prev=15,e.t1=e.catch(6),i.e(e.t1);case 18:return e.prev=18,i.f(),e.finish(18);case 21:case"end":return e.stop()}}),e,this,[[6,15,18,21]])}))),function(e){return t.apply(this,arguments)})}]);var t,r,n,i,a,o,s,u,l,p,f,v,h,g}();function Ei(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 Ii(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)?Ii(e,t):void 0}}(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}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 Ii(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function Ri(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Ri=function(){return!!e})()}var Mi={name:"name"},Ai=function(){function e(t){var r,n,i,a;return C(this,e),n=this,i=F(i=e),r=N(n,Ri()?Reflect.construct(i,[],F(n).constructor):i.apply(n,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 G(e,c),L(e,[{key:"joinedIds",get:function(){var e=this.serviceManager.rtcUserManager.currentPid,t=new Set;return this.groups.forEach((function(r){var n=r.participants,i=r.id;n.some((function(t){return t.pid===e}))&&t.add(i)})),t}},{key:"parseGroup",value:function(e){var t,r=this,n=e.id,i=e.properties,a=e.participants;return{id:n,name:(null==i||null===(t=i.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.currentPid})),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,n=e.groupId,o=e.userData;if(this.joinedIds.has(n))throw new i(a.InvaildArgument,"you were in group already");return this.serviceManager.rtcSignaling.joinGroup({groupId:n,userData:o,autoJoinGroupAudio:!!r,autoLeaveChannelAudio:!0})}},{key:"leave",value:function(e){var t=e.groupId,r=e.publishAudioToChannel,n=void 0===r||r;if(!this.joinedIds.has(t))throw new i(a.InvaildArgument,"you are not in the group");return this.serviceManager.rtcSignaling.leaveGroup({groupId:t,reasonCode:gr.LEAVE_GROUP_REASON_CODE.NORMAL_LEAVE,autoJoinChannelAudio:n})}},{key:"dismiss",value:function(e){if(!this.groupIds.has(e))throw new i(a.InvaildArgument,"group not existed");return this.serviceManager.rtcSignaling.dismissGroup({groupId:e})}},{key:"addUser",value:function(e,t){var r,n=null===(r=this.groups.get(t))||void 0===r?void 0:r.participants;n&&!n.find((function(t){return t.pid===e.pid}))&&n.push(e)}},{key:"removeUser",value:function(e,t){var r,n=null===(r=this.groups.get(t))||void 0===r?void 0:r.participants;if(n){var i=n.findIndex((function(t){return t.pid===e.pid}));i>-1&&n.splice(i,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,n=e.type,i=e.updateOpt;if(this.logger.info("on groupList event:",e),r!==this.listVer+1&&!t||n!==gr.OptType.OPT_TYPE_UPDATE)r>this.listVer+1&&this.syncGroupList();else{var a=i.updateAction,o=i.id;a===gr.GroupListUpdate.GROUP_LIST_UPDATE_ADD_ID?this.groupIds.add(o):a===gr.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 n,i=e.id,a=e.ver,o=e.groupInfo,s=e.type,c=e.updateOpt,u=this.groups.get(i);if(s!==gr.OptType.OPT_TYPE_ADD||u){if(s===gr.OptType.OPT_TYPE_REMOVE&&u)this.groups.delete(i),this.emit("group","remove",this.parseGroup(u),u.audioInfo);else if(s===gr.OptType.OPT_TYPE_UPDATE){var l=c.updateAction,d=c.participants;if(u&&(u.ver+1===a||r)){if(l===gr.GroupUpdate.GROUP_UPDATE_ADD_PARTICIPANTS){var p,f=u.participants.map((function(e){return e.pid})),v=Ei(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",i,{userId:m.uid,userData:m.userData}))}}catch(e){v.e(e)}finally{v.f()}}else if(l===gr.GroupUpdate.GROUP_UPDATE_REMOVE_PARTICIPANTS){var h=d.map((function(e){return e.pid})),g=Oe(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",i,{userId:e.uid,userData:e.userData})}))}else if(l===gr.GroupUpdate.GROUP_UPDATE_AUDIO_STREAM_LOST)this.logger.info("group ".concat(i," audioStream lost"));else if(l===gr.GroupUpdate.GROUP_UPDATE_AUDIO_STREAM_RECOVER)this.logger.debug("group ".concat(i," audioStream recover"));else if(l===gr.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",i,{key:"set-".concat(Mi[e.key]),value:e.value})}));else if(l===gr.GroupUpdate.GROUP_UPDATE_REMOVE_PROPERTIES){var y,b=c.properties.map((function(e){return e.key}));u.properties=null===(y=u.properties)||void 0===y?void 0:y.filter((function(e){var t=e.key;return!b.includes(t)})),c.properties.forEach((function(e){t.emit("group","info-updated",i,{key:"remove-".concat(Mi[e.key])})}))}u.ver=a}else u&&a>u.ver+1&&this.syncGroup(u.id)}}else null==o||null===(n=o.audioInfo)||void 0===n||null===(n=n.audio)||void 0===n||null===(n=n.media)||void 0===n||delete n.video,null==o.ver&&(o.ver=a),this.groups.set(i,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:gr.DataType.DATA_TYPE_GROUP,id:e,ver:null==r?void 0:r.ver}).then((function(n){var i=n.fullSync.groupData.groupInfos,a=(void 0===i?[]:i)[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:gr.OptType.OPT_TYPE_REMOVE,ver:a.ver,updateOpt:{updateAction:gr.GroupUpdate.GROUP_UPDATE_ADD_PARTICIPANTS,participants:m}},!0),h.length&&t.handleGroupEvents({id:e,ver:a.ver,type:gr.OptType.OPT_TYPE_REMOVE,updateOpt:{updateAction:gr.GroupUpdate.GROUP_UPDATE_REMOVE_PARTICIPANTS,participants:h}},!0),f.length&&t.handleGroupEvents({id:e,ver:a.ver,type:gr.OptType.OPT_TYPE_UPDATE,updateOpt:{updateAction:gr.GroupUpdate.GROUP_UPDATE_SET_PROPERTIES,properties:f}},!0),v.length&&t.handleGroupEvents({id:e,ver:a.ver,type:gr.OptType.OPT_TYPE_UPDATE,updateOpt:{updateAction:gr.GroupUpdate.GROUP_UPDATE_REMOVE_PROPERTIES,properties:v}},!0)}else t.handleGroupEvents({id:e,type:gr.OptType.OPT_TYPE_REMOVE})}))}},{key:"batchSyncGroup",value:function(e){var t=this;if(e.length)return this.serviceManager.rtcSignaling.syncDataByIds({type:gr.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:gr.DataType.DATA_TYPE_GROUP_LIST,forceFullSync:!0,ver:this.listVer}).then((function(t){var r=t.fullSync,n=r.ver,i=r.groupListData.groupIds,a=void 0===i?[]:i,o=a.filter((function(t){return!e.groupIds.has(t)})),s=Oe(e.groupIds).filter((function(e){return!a.includes(e)}));o.length&&o.forEach((function(t){e.handleGroupListEvents({ver:n,updateOpt:{updateAction:gr.GroupListUpdate.GROUP_LIST_UPDATE_ADD_ID,id:t}},!0)})),s.length&&s.forEach((function(t){e.handleGroupListEvents({ver:n,updateOpt:{updateAction:gr.GroupListUpdate.GROUP_LIST_UPDATE_REMOVE_ID,id:t}},!0)}))}))}},{key:"handleSyncEvent",value:function(e){var t=this,r=e.groupListVer,n=e.groupVer,i=void 0===n?[]:n;this.listVer<r&&(this.syncGroupList(),this.listVer=r),i.forEach((function(e){var r=e.id,n=e.ver,i=t.groups.get(r);(null==i?void 0:i.ver)<n&&(t.syncGroup(r),i.ver=n)}))}}])}();function _i(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(_i=function(){return!!e})()}var Ci=function(){function e(t,r){var n,i,a,o;C(this,e),i=this,a=F(a=e),n=N(i,_i()?Reflect.construct(a,[],F(i).constructor):a.apply(i,o)),Object.defineProperty(n,"serviceManager",{enumerable:!0,configurable:!0,writable:!0,value:r}),Object.defineProperty(n,"userId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"userName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"streamMap",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"videoTrack",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"auxiliaryTrack",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"audioTrack",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"joinedTime",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"properties",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"toJSON",{enumerable:!0,configurable:!0,writable:!0,value:function(){return{userId:n.userId,userName:n.userName,hasAuxiliary:n.hasAuxiliary,hasVideo:n.hasVideo,hasAudio:n.hasAudio,joinedTime:n.joinedTime,properties:n.properties,audioMuted:n.audioMuted,auxiliaryMuted:n.auxiliaryMuted,videoMuted:n.videoMuted}}});var s=t.user;return n.userId=s,n.videoTrack=null,n.audioTrack=null,n.auxiliaryTrack=null,n.serviceManager=r,n.joinedTime=Date.now(),n.update(t),n}return G(e,c),L(e,[{key:"relatedStreams",get:function(){var e=this;return Oe(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)===z.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)===z.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)===K.MIC}))}},{key:"audioMuted",get:function(){return this.relatedStreams.some((function(e){var t,r,n=e.media;return"active"!==(null==n||null===(t=n.audio)||void 0===t?void 0:t.status)&&(null==n||null===(r=n.audio)||void 0===r?void 0:r.source)===K.MIC}))}},{key:"auxiliaryMuted",get:function(){return this.relatedStreams.some((function(e){var t,r,n=e.media;return"active"!==(null==n||null===(t=n.video)||void 0===t?void 0:t.status)&&(null==n||null===(r=n.video)||void 0===r?void 0:r.source)===z.SCREENCAST}))}},{key:"videoMuted",get:function(){return this.relatedStreams.some((function(e){var t,r,n=e.media;return"active"!==(null==n||null===(t=n.video)||void 0===t?void 0:t.status)&&(null==n||null===(r=n.video)||void 0===r?void 0:r.source)===z.CAMERA}))}},{key:"updateNetworkOfUser",value:function(e){var t;if(this.properties.SdkType!==P.Web&&e){var r=e.split("");r[ae.UPLINK]=$e(r[ae.UPLINK]),r[ae.DOWNLINK]=$e(r[ae.DOWNLINK]),e=r.join("")}e!==(null===(t=this.properties)||void 0===t?void 0:t[he])&&(this.properties[he]=e)}},{key:"update",value:function(e){var t=e.id,r=e.propertiesJsonStr,n=e.ver,i=JSON.parse(r||"{}");this.id=t,this.userName=i.__nick,this.version=n,this.properties=i,this.updateNetworkOfUser(i[he])}},{key:"getRemoteVideoTrack",value:function(e,t){var r=t?this.auxiliaryTrack:this.videoTrack,n=JSON.parse(e.stream.info.attributesJsonStr),i=De(e.mediaStream,"video",this.userId,r);return t?this.auxiliaryTrack=i:this.videoTrack=i,n.mirror&&i.setSourceMirror(n.mirror),i}}])}();function Di(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 xi(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)?xi(e,t):void 0}}(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}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 xi(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function ji(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(ji=function(){return!!e})()}var Li=function(){function e(t,r){var n,i,a,o;return C(this,e),i=this,a=F(a=e),n=N(i,ji()?Reflect.construct(a,[],F(i).constructor):a.apply(i,o)),Object.defineProperty(n,"serviceManager",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(n,"users",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"currentUid",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"currentPid",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"reporter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"logger",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"streamManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),n.users=new Map,n.serviceManager=t,n.reporter=t.reporter,n.logger=n.reporter.getLoggerWithPrefix("[rtc-userMgr]"),n.handleEvent=n.handleEvent.bind(n),n.streamManager=r,n}return G(e,c),L(e,[{key:"remoteUsers",get:function(){var e=this;return w(Oe(this.users.values()).sort((function(e,t){return e.joinedTime-t.joinedTime})),"userId").filter((function(t){return t.userId&&t.id!==e.currentPid}))}},{key:"init",value:function(e,t){var r,n=Di(e);try{for(n.s();!(r=n.n()).done;){var i=r.value,a=new Ci(i,this.serviceManager);this.users.set(i.user,a),t===i.user&&(this.currentUid=i.user)}}catch(e){n.e(e)}finally{n.f()}this.currentPid=t,this.serviceManager.internalChannel.on("user",this.handleEvent)}},{key:"clear",value:function(){this.currentPid="",this.currentUid="",this.users.clear(),this.serviceManager.internalChannel.off("user",this.handleEvent)}},{key:"handleEvent",value:function(e,t,r){var n=this;if(this.logger.info("userEvent ".concat(e," ").concat(JSON.stringify(t))),"join"===e){var i=new Ci(t,this.serviceManager);this.users.set(t.user,i),this.emit("user","join",i)}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})));Oe(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 n.streamManager.remove(e,!0)}));var c=this.users.get(t.user);this.users.delete(t.user),this.emit("user","leave",c);var u=new Ci(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.currentPid,roomId:this.serviceManager.roomId,propertiesJsonStr:JSON.stringify(ce({},he,e))})}}])}();function Ni(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 Fi(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)?Fi(e,t):void 0}}(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}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 Fi(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function Ui(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Gi(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ui(Object(r),!0).forEach((function(t){ce(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ui(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Vi(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Vi=function(){return!!e})()}var Bi=function(){function e(t){var r,n,i,a;C(this,e),n=this,i=F(i=e),r=N(n,Vi()?Reflect.construct(i,[],F(n).constructor):i.apply(n,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}),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.sync=r.sync.bind(r),r}return G(e,c),L(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,n=e.find((function(e){return"admin"===e.info.owner&&"mixed"===e.type}));null==n||null===(r=n.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,n=e.info.owner,i=e.media,a=i.video,o=i.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=Oe(this.streams.values()).find((function(e){var t;return e.info.owner===n&&(null===(t=e.media)||void 0===t||null===(t=t.video)||void 0===t?void 0:t.source)===s}));c&&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;((null==a?void 0:a.source)===O.CAMERA||u)&&this.emit("stream","add",{id:r,owner:n,mediaType:"video",auxiliary:u}),(null==o?void 0:o.source)!==K.MIC&&(null==o?void 0:o.source)!==K.MIXED||this.emit("stream","add",{id:r,owner:n,mediaType:"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 n=r.media,i=n.video,a=n.audio,o=r.info.owner,s=(null==i?void 0:i.source)===O.SCREENCAST;((null==i?void 0:i.source)===O.CAMERA||s)&&this.emit("stream","remove",{id:e,owner:o,mediaType:"video",auxiliary:s}),(null==a?void 0:a.source)!==K.MIC&&(null==a?void 0:a.source)!==K.MIXED||this.emit("stream","remove",{id:e,owner:o,mediaType:"audio"})}}},{key:"getStreamByTrackId",value:function(e){return Oe(this.streams.values()).find((function(t){var r,n;return(null===(r=t.media.audio)||void 0===r?void 0:r.trackId)===e||(null===(n=t.media.video)||void 0===n?void 0:n.trackId)===e}))}},{key:"handleEvent",value:function(e,t){var r=this,n=e.streamId,i=e.status,a=e.stream,o=e.msg,s=e.totalVer,c={add:[],remove:[],update:["audio.status","video.status","properties","highestResolutionLevel"]}[i];c.length&&!c.includes(o.field)||this.logger.info("streamEvent",e);var u=this.totalVer;if(s===u+1||s==ve||t)if("add"===i){if(!a||!a.media||!a.info)return;this.add(a)}else if("remove"===i)this.remove(n,!0);else if("update"===i){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(n);if(g){v!==ve&&(g.version=v);var y=g.media,b=y.audio,S=y.video,k=g.info.owner;if("audio.status"===l||"video.status"===l){var P;"audio.status"===l?(P="audio",b.status=d):"video.status"===l&&(P="video",S.status=d),this.reporter.trace.streamsEvent(n,"".concat(P," ").concat(d));var w="active"===d?"unmute":"mute";this.emit("stream","update",{owner:k,id:n,updateStatus:"".concat(w,"-").concat(P)})}else if("activeInput"===l){var T=[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(T),l),this.emit("stream","volumeActive",{owners:T})}else if("properties"==l){var E,I=JSON.parse(m);g.info.attributesJsonStr=JSON.stringify(Gi(Gi({},JSON.parse(g.info.attributesJsonStr)),I));var R=(null===(E=g.media)||void 0===E||null===(E=E.video)||void 0===E?void 0:E.source)===O.SCREENCAST;this.emit("stream","update",{owner:k,id:n,properties:I,auxiliary:R})}else"highestResolutionLevel"===l&&(g.media.video.highestResolutionLevel=h,this.emit("stream","update",{owner:k,id:n,highestResolutionLevel:h}))}}t||s<=this.totalVer&&s!==ve||(s===u+1&&(this.totalVer=s),s>u+1&&!t&&this.sync())}},{key:"sync",value:(t=_(se.mark((function e(){var t,r,n,i,a,o,s,c,u,l,d,p,f,v=this;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=[],r=[],e.next=4,this.rtcSignaling.getStreamsVer({});case 4:n=e.sent,i=n.streamVersions,a=n.totalVer,o=Oe(this.streams.keys()).filter((function(e){return!e.includes("vad")})),s=Ni(i),e.prev=9,s.s();case 11:if((c=s.n()).done){e.next=19;break}if(u=c.value,l=u.streamId,d=u.streamVer,!l.includes("vad")){e.next=15;break}return e.abrupt("continue",17);case 15:(p=this.streams.get(l))?p&&p.version!==d&&t.push(l):(r.push(l),t.push(l));case 17:e.next=11;break;case 19:e.next=24;break;case 21:e.prev=21,e.t0=e.catch(9),s.e(e.t0);case 24:return e.prev=24,s.f(),e.finish(24);case 27:if(f=i.map((function(e){return e.streamId})),o.filter((function(e){return!f.includes(e)})).forEach((function(e){v.handleEvent({status:"remove",streamId:e,stream:v.streams.get(e),totalVer:a},!0)})),this.reporter.trace.syncEvent("stream",o,f),this.totalVer=a,0!==t.length){e.next=34;break}return e.abrupt("return");case 34:this.rtcSignaling.getStreams({streamIds:t}).then((function(e){var n,i=e.totalVer,a=e.streams,o=new Map,s=Ni(v.streams.values());try{for(s.s();!(n=s.n()).done;){var c=n.value;o.set(c.id,c)}}catch(e){s.e(e)}finally{s.f()}var u,l=Ni(a);try{for(l.s();!(u=l.n()).done;){var d=u.value;v.streams.has(d.id)?v.streams.set(d.id,d.stream):o.set(d.id,d.stream)}}catch(e){l.e(e)}finally{l.f()}for(var p=t.map((function(e){return o.get(e)})).filter((function(e){return!!e})).sort((function(e,t){return e.version-t.version})),f=0;f<p.length;f++){var m=p[f];r.includes(m.id)&&v.handleEvent({status:"add",streamId:m.id,stream:m,totalVer:i},!0)}o.clear(),v.totalVer=i}));case 35:case"end":return e.stop()}}),e,this,[[9,21,24,27]])}))),function(){return t.apply(this,arguments)})},{key:"handleSyncEvent",value:function(e){var t=e.streamsVer;this.totalVer<t&&this.sync()}}]);var t}();function Hi(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 qi(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)?qi(e,t):void 0}}(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}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 qi(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function Wi(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Yi(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Wi(Object(r),!0).forEach((function(t){ce(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Wi(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 Ji=function(){function e(t,r){var n,o,s,c;return C(this,e),o=this,s=F(s=e),n=N(o,Qi()?Reflect.construct(s,[],F(o).constructor):s.apply(o,c)),Object.defineProperty(n,"rtcSignaling",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"sessionManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"groupManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"rtcUserManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"streamManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"remoteAudioTrack",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"internalChannel",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"reporter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"logger",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"roomId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"defaultVideoStreamType",{enumerable:!0,configurable:!0,writable:!0,value:"high"}),Object.defineProperty(n,"client",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"subscribedAudioStream",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"micMixedGroups",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"iceConfig",{enumerable:!0,configurable:!0,writable:!0,value:{level:0,iceServerList:[]}}),Object.defineProperty(n,"handleSubscribeParam",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t,r=e.mediaType,o=e.action,s=e.uid,c=e.auxiliary,u=n.getStream(e),l=n.rtcUserManager.users.get(s),d=n.groups.some((function(e){return e.joined})),p="mcu"===s?n.remoteAudioTrack:c?null==l?void 0:l.auxiliaryTrack:null==l?void 0:l.videoTrack;return"mcu"===s&&"video"===r||s&&"mcu"!==s&&"audio"===r?t=new i(a.InvaildArgument,"only support ".concat(o," mcu audio")):"mcu"===s&&d&&"subscribe"===o?t=new i(a.SubscribeInvaild,"cannot subscribe mcu while in group"):"subscribe"===o&&p?t=new i(a.SubscribeInvaild,"duplicated subscription"):u&&("unsubscribe"!==o||p)||(n.logger.warn("".concat(s," videoTrack not existed")),t=new i(a.SubscribeStreamNotExisted)),{uid:s,user:l,error:t,stream:u,session:"unsubscribe"===o?n.sessionManager.getSessionByStreamId(u.id):null,resolutionInfo:"video"===r?Nt(n.defaultVideoStreamType,Ae(u)):null}}}),Object.defineProperty(n,"handleJoinResponse",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=e.room,r=e.id,i=t.participants,a=t.streams,o=t.streamsVer,s=t.groupList,c=t.groupListVer;n.streamManager.init(a,o),n.groupManager.init(s,c),n.rtcUserManager.init(i,r),n.streamManager.on("stream",n.handleStreamEvent),n.rtcUserManager.on("user",n.handleUserEvent),n.groupManager.on("group",n.handleGroupEvent)}}),n.reporter=r,n.logger=n.reporter.getLoggerWithPrefix("[rtc-svcMgr]"),n.internalChannel=new M({reporter:r,sdkVersion:fe}),n.rtcSignaling=new tn(n.internalChannel),n.client=t,n.micMixedGroups=new Set,n.groupManager=new Ai(n),n.streamManager=new Bi(n),n.rtcUserManager=new Li(n,n.streamManager),n.sessionManager=new Ti(t,n),n.subscribedAudioStream="",n.handleStreamEvent=n.handleStreamEvent.bind(n),n.handleUserEvent=n.handleUserEvent.bind(n),n.handleGroupEvent=n.handleGroupEvent.bind(n),n}return G(e,c),L(e,[{key:"localTracks",get:function(){return Oe(this.sessionManager.sessions.values()).filter((function(e){return e.state===re.Processing&&e instanceof ci})).map((function(e){return e.tracks[0]}))}},{key:"groups",get:function(){var e=this;return this.groupManager.groupList.map((function(t){return Yi(Yi({},t),{},{audioPublished:e.micMixedGroups.has(t.id)})}))}},{key:"handleStreamEvent",value:function(e,t){var r=t.id,n=t.owner,i=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(n),p=this.rtcUserManager.users.get(null==d?void 0:d.user),f=n===this.rtcUserManager.currentPid;if("add"===e&&!f&&p)this.client.emit("user-published",p,i,a);else if("remove"===e&&p&&!f)this.sessionManager.removeSession(void 0,r),"video"===i&&(a&&p.auxiliaryTrack&&(p.auxiliaryTrack.stop(),p.auxiliaryTrack=null),!a&&p.videoTrack&&(p.videoTrack.stop(),p.videoTrack=null)),this.client.emit("user-unpublished",p,i,a);else if("update"===e){if(s)this.client.emit("user-info-updated",(null==p?void 0:p.userId)||this.rtcUserManager.currentUid,s);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 y=Nt(Ft(u),Ae(m.stream));m.applyOptions(y,!0)}}}else if("volumeActive"===e){var b=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",b)}}},{key:"handleGroupEvent",value:function(e,t,r){var n=this;if("add"===e)this.client.emit("group-add",t);else if("remove"===e){var i;if(this.micMixedGroups.delete(t.id),this.logger.info("unsub group for group removed",t),r&&(null===(i=r.audio)||void 0===i?void 0:i.id)===this.subscribedAudioStream){var a=r.audio;this.sessionManager.batchUnscribe([{stream:a,session:this.sessionManager.getSessionByStreamId(a.id)}]).then((function(){a.id===n.subscribedAudioStream&&(n.updateSubscribedAudioStream(!1,""),n.remoteAudioTrack.stop(),n.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)}},{key:"getStream",value:function(e){var t,r=e.groupId,n=e.uid,i=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"===n?Oe(this.streamManager.streams.values()):null===(t=this.rtcUserManager.users.get(n))||void 0===t?void 0:t.relatedStreams;return"mcu"===n?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)===(i?O.SCREENCAST:O.CAMERA)}))}},{key:"join",value:(s=_(se.mark((function e(t){var r,n,i,a,o,s;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.logger.info("join",Re.gslb[0]),e.next=3,this.rtcSignaling.join(t,Re.gslb[0]);case 3:return n=e.sent,i=n.joinResponse,a=n.iceConfig,null!=(null==(o=this.internalChannel.staticConfig)||null===(r=o.websdkConfig)||void 0===r?void 0:r.simulcast)&&(Re.simulcast=null==o||null===(s=o.websdkConfig)||void 0===s?void 0:s.simulcast),this.roomId=i.room.id,c=i.room.ssrcMask,u=i.room.ssrcClientSequence,l=void 0,l=Math.log2(c+1),u>2147483647>>l||(Fn=c,Nn=(u<<l|2147483648)>>>0),this.reporter.updateCommonInfo({roomId:this.roomId,participantId:i.id}),a&&a.uis&&this.setIceConfig(a.uis),this.sessionManager.start(),this.handleJoinResponse(i),e.abrupt("return",i);case 14:case"end":return e.stop()}var c,u,l}),e,this)}))),function(e){return s.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.stop(),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:(o=_(se.mark((function e(t){var r,n,i,a;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=this.micMixedGroups,n=this.groupManager,i=this.groups,a=[],i.some((function(e){return e.joined}))?a.push.apply(a,Oe(Oe(r).map((function(e){var t;return null===(t=n.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 5:case"end":return e.stop()}}),e,this)}))),function(e){return o.apply(this,arguments)})},{key:"unpublish",value:function(e){var t=this,r=new Set(e.map((function(e){return e.getTrackId()}))),n=Oe(this.sessionManager.sessions.values()).filter((function(e){var t;return e instanceof ci&&r.has(null===(t=e.tracks)||void 0===t||null===(t=t[0])||void 0===t?void 0:t.getTrackId())}));return n.forEach((function(e){t.reporter.trace.unpublish(e.id)})),this.sessionManager.batchUnPublish(n)}},{key:"getRemoteTrack",value:function(e,t){var r=this;if(!t.mediaStream)return null;var n=this.rtcUserManager.users.get(e.uid);if("audio"===e.mediaType){var i=this.remoteAudioTrack;return this.remoteAudioTrack=De(t.mediaStream,"audio","mcu",this.remoteAudioTrack),this.updateSubscribedAudioStream(!0,""),i||t.once("audio-first-frame",(function(){r.remoteAudioTrack.emit("first-frame-decoded")})),this.remoteAudioTrack}return n.getRemoteVideoTrack(t,e.auxiliary)}},{key:"batchSubscribe",value:(n=_(se.mark((function e(t){var r=this;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.sessionManager.batchSubscribe(t.map(this.handleSubscribeParam)).then(function(){var e=_(se.mark((function e(n){var i;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=[],t.forEach((function(e,t){var a=e.auxiliary,o=e.uid,s=n[t],c=s.error,u=s.subscription;i.push({uid:o,auxiliary:a,error:c,track:r.getRemoteTrack(e,u)})})),e.abrupt("return",i);case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 1:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"batchUnsubscribe",value:function(e){var t,r=this,n=[],i=Hi(e);try{for(i.s();!(t=i.n()).done;){var a=t.value,o=this.handleSubscribeParam(Yi(Yi({},a),{},{action:"unsubscribe"})),s=o.session,c=o.stream,u=o.user,l=o.uid;this.reporter.trace.unsubscribe({sessionId:s.id,remoteStreamId:c.id,remoteUserId:l}),c&&n.push(Yi({stream:c,user:u,session:s},a))}}catch(e){i.e(e)}finally{i.f()}return n.length?this.sessionManager.batchUnscribe(n).then((function(e){for(var t=0,i=n;t<i.length;t++){var a,o=i[t],s=o.mediaType,c=o.user,u=o.auxiliary;if("audio"===s)r.updateSubscribedAudioStream(!1,""),null===(a=r.remoteAudioTrack)||void 0===a||a.stop(),r.remoteAudioTrack=null;else if(u){var l;null===(l=c.auxiliaryTrack)||void 0===l||l.stop(),c.auxiliaryTrack=null}else{var d;null===(d=c.videoTrack)||void 0===d||d.stop(),c.videoTrack=null}}return e})):Promise.resolve()}},{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 i(a.InvaildArgument,"cannot find audio info of the group");if(this.subscribedAudioStream)throw new i(a.InvaildState,"you were subscribed group or channel already");return this.sessionManager.batchSubscribe([{stream:r,uid:e}]).then((function(n){return t.updateSubscribedAudioStream(!0,r.id),t.remoteAudioTrack=De(n[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 i(a.InvaildState,"you were not subscribed the group")):this.sessionManager.batchUnscribe([{stream:r,session:this.sessionManager.getSessionByStreamId(r.id)}]).then((function(){r.id===t.subscribedAudioStream&&(t.updateSubscribedAudioStream(!1,""),t.remoteAudioTrack.stop(),t.remoteAudioTrack=null)})):Promise.reject(new i(a.InvaildArgument,"cannot find audio info of the group"))}},{key:"setRemoteStreamType",value:function(e,t,r){this.logger.info("setRemoteStreamType",e,t,r);var n=this.getStream({uid:e,mediaType:"video",auxiliary:r}),i=this.sessionManager.getSessionByStreamId(n.id),a=Nt(t,Ae(n));return i.applyOptions(a,!1)}},{key:"joinGroup",value:function(e){var t=this,r=e.groupId,n=e.publishAudioToGroup;return this.groupManager.join(e).then((function(e){t.logger.info("joinGroup response",e);var i=e.joinGroupAudioSuccess;n&&i&&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=_(se.mark((function e(t,r){var n,i,a,o=arguments;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=!(o.length>2&&void 0!==o[2])||o[2],i=[],null!=r&&i.push(this.groupManager.groups.get(r).audioInfo.label),!this.localTracks.includes(t)){e.next=18;break}if(a=this.streamManager.getStreamByTrackId(t.getTrackId()),null==r){e.next=14;break}return e.next=8,this.mixGroupAudio(a.id,i[0],"mix");case 8:if(this.micMixedGroups.add(r),!n){e.next=12;break}return e.next=12,this.mixGroupAudio(a.id,"common","unmix");case 12:e.next=16;break;case 14:return e.next=16,this.mixGroupAudio(a.id,"common","mix");case 16:e.next=22;break;case 18:return n||i.push("common"),e.next=21,this.sessionManager.batchPublish([t],i);case 21:this.micMixedGroups.add(r);case 22:case"end":return e.stop()}}),e,this)}))),function(e,t){return r.apply(this,arguments)})},{key:"unpublishFromGroup",value:(t=_(se.mark((function e(t,r){var n,i,a,o=arguments;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=o.length>2&&void 0!==o[2]&&o[2],i=this.groupManager.groups.get(r).audioInfo.label,a=this.streamManager.getStreamByTrackId(t.getTrackId()),e.next=5,this.mixGroupAudio(a.id,i,"unmix");case 5:if(this.micMixedGroups.delete(r),!n){e.next=9;break}return e.next=9,this.mixGroupAudio(a.id,"common","mix");case 9:case"end":return e.stop()}}),e,this)}))),function(e,r){return t.apply(this,arguments)})}]);var t,r,n,o,s}();function Ki(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Ki=function(){return!!e})()}var zi={timestamp:-1,maxPlayLevel:-1,maxRecLevel:-1},$i=function(){function e(t){var r,n,i,a,o;return C(this,e),n=this,i=F(i=e),r=N(n,Ki()?Reflect.construct(i,[],F(n).constructor):i.apply(n,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=_(se.mark((function e(){var t,n,i,a,o;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.client.getLocalAudioStats();case 2:return t=e.sent,n=t.audioLevel,e.next=6,r.client.getRemoteAudioStats();case 6:i=e.sent,a=i.audioLevel,o={timestamp:Date.now(),maxRecLevel:Math.min(1,n||0),maxPlayLevel:Math.min(1,Math.max(0,a||0))},r.audioDeviceBufferInfo.timestamp>0&&(r.audioDeviceBufferReport={attr_duration_ms:Xe(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 11: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({},zi),r.client=t,r}return G(e,nn),L(e)}();function Xi(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}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){ce(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 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 n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}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,n=Array(t);r<t;r++)n[r]=e[r];return n}function ra(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(ra=function(){return!!e})()}var na=function(){function t(){var e,r,n,i;return C(this,t),r=this,n=F(n=t),e=N(r,ra()?Reflect.construct(n,[],F(r).constructor):n.apply(r,i)),Object.defineProperty(e,"channelName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(e,"id",{enumerable:!0,configurable:!0,writable:!0,value:y(6)}),Object.defineProperty(e,"reporter",{enumerable:!0,configurable:!0,writable:!0,value:E(e.id)}),Object.defineProperty(e,"logger",{enumerable:!0,configurable:!0,writable:!0,value:e.reporter.getLoggerWithPrefix("[rtc-client]")}),Object.defineProperty(e,"serviceManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(e,"monitor",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(e,"syncStatTimer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(e,"clientStatSync",{enumerable:!0,configurable:!0,writable:!0,value:[0,0,0,0,0,0]}),Object.defineProperty(e,"currentClientState",{enumerable:!0,configurable:!0,writable:!0,value:""}),e.serviceManager=new Ji(e,e.reporter),e.handleVisibilitychange=e.handleVisibilitychange.bind(e),e.handleNetworkQuality=e.handleNetworkQuality.bind(e),e.handleConnectionChangeEvent=e.handleConnectionChangeEvent.bind(e),e.handlePageUnload=e.handlePageUnload.bind(e),e.init(),e}return G(t,c),L(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.localTracks}},{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,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];var a,o,s,c,u,l;"network-quality"!==e&&"volume-indicator"!==e&&(a=this.logger).info.apply(a,["client emit event",e].concat(n));return(o=t,s="emit",c=this,l=ue(F(1&(u=3)?o.prototype:o),s,c),2&u&&"function"==typeof l?function(e){return l.apply(c,e)}:l)([e].concat(n))}},{key:"join",value:function(e){var t=this;return this.logger.info("join",e),this.addEventListeners(),this.serviceManager.join(e).then((function(r){var n;return t.channelName=e.channel,t.monitor=new $i(t),t.monitor.on("audio-device-buffer",(function(e){t.reporter.metric.audioDeviceBuffer(e)})),t.syncStatTimer=d((function(){t.sendClientStatToRemote()}),2e3,"interval"),{remoteUsers:t.remoteUsers,timeLeft:null===(n=r.room)||void 0===n?void 0:n.timeLeft}})).catch((function(e){throw t.init(),e}))}},{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:function(e){var t=this;if(this.logger.info("publish",(Array.isArray(e)?e:[e]).map((function(e){return e.trackMediaType}))),"connected"!==this.connectionState)return Promise.reject(new i(a.PublishNotJoinChannel));var r,n=(Array.isArray(e)?e:[e]).filter((function(e){return e instanceof nr&&!t.localTracks.includes(e)})),o=n.concat(this.localTracks),s=ce(ce(ce(ce({},z.CAMERA,0),z.SCREENCAST,0),K.MIC,0),K.MIXED,0),c=ea(o);try{for(c.s();!(r=c.n()).done;){var u=r.value;if(s[u.source]++,s[u.source]>=2)throw new i(a.QuotaLimitExceed,"".concat(u.source," published already"))}}catch(e){c.e(e)}finally{c.f()}if(!n.length)throw new i(a.PublishNoStream);return this.serviceManager.publish(n)}},{key:"unpublish",value:function(e){this.logger.info("unpublish",e);var t=Array.isArray(e)?e:[e];return e||(t=this.localTracks),this.logger.info("unpublish",t.map((function(e){return e.trackMediaType}))),this.serviceManager.unpublish(t)}},{key:"subscribe",value:(n=_(se.mark((function e(t,r,n){return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.logger.info("subscribe",t,r,n),"connected"===this.connectionState){e.next=3;break}throw new i(a.SubscribeNotJoinChannel);case 3:return e.abrupt("return",this.serviceManager.batchSubscribe([{uid:t,mediaType:r,action:"subscribe",auxiliary:n}]).then((function(e){var t=e[0],r=t.error,n=t.track;if(r)throw r;return n})));case 4:case"end":return e.stop()}}),e,this)}))),function(e,t,r){return n.apply(this,arguments)})},{key:"batchSubscribe",value:function(e){if(this.logger.info("batchSubscribe",e),Array.isArray(e)&&e.length){if("connected"!==this.connectionState)throw new i(a.SubscribeNotJoinChannel);return this.serviceManager.batchSubscribe(e.map((function(e){return Zi(Zi({},e),{},{action:"subscribe"})})))}}},{key:"unsubscribe",value:(r=_(se.mark((function e(t,r,n){return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.logger.info("unsubscribe",t,r),e.abrupt("return",this.serviceManager.batchUnsubscribe([{uid:t,auxiliary:n,mediaType:r,action:"unsubscribe"}]).then((function(e){var t,r=null==e||null===(t=e[0])||void 0===t?void 0:t.error;if(r)throw r})));case 2:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return r.apply(this,arguments)})},{key:"batchUnsubscribe",value:function(e){if(this.logger.info("batchUnsubscribe",e),Array.isArray(e)&&e.length)return"connected"!==this.connectionState?Promise.reject(new i(a.SubscribeNotJoinChannel)):this.serviceManager.batchUnsubscribe(e.map((function(e){return Zi(Zi({},e),{},{action:"unsubscribe"})})))}},{key:"getLocalAudioStats",value:function(){return this.serviceManager.sessionManager.getLocalAudioStats("user")}},{key:"getLocalVideoStats",value:function(){return this.serviceManager.sessionManager.getLocalVideoStats("user")}},{key:"setRemoteVideoStreamType",value:function(e,t,r){var n=this;this.logger.info("setRemoteVideoStreamType",e,t,r);var i=this.remoteUsers.find((function(t){return t.userId===e}));return null!=i&&i.relatedStreams?this.serviceManager.setRemoteStreamType(e,t,r).then((function(){n.emit("stream-type-changed",e,t,r)})):(this.logger.info("".concat(e," videoTrack not existed")),Promise.reject("viedoTrack doesnt exiested"))}},{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,n,i=t.properties,a=t.userId;e[a]={downlinkNetworkQuality:Number((null==i||null===(r=i[he])||void 0===r?void 0:r[ae.DOWNLINK])||0),uplinkNetworkQuality:Number((null==i||null===(n=i[he])||void 0===n?void 0:n[ae.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=$e(null,t[ae.UPLINK]),n=$e(null,this.currentClientState[ae.UPLINK]),i=$e(null,t[ae.DOWNLINK]),a=$e(null,this.currentClientState[ae.DOWNLINK]);r===n&&i===a||this.serviceManager.rtcUserManager.setParticipantProperties(t).catch((function(t){e.logger.info("setParticipantProperties error ".concat(h(t)))})),this.currentClientState=t}}},{key:"handleVisibilitychange",value:function(){var t="visible"!==document.visibilityState,r=t?T.APP_BACKGROUND:T.APP_FOREGROUND;(e.isAndroid()||e.isIOS())&&(this.reporter.sender.sendEvent(r),this.clientStatSync[ae.BACKGROUND_MODE]=Number(t))}},{key:"handleNetworkQuality",value:function(e,t){this.clientStatSync[ae.UPLINK]=e,this.clientStatSync[ae.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);var t=e.userData,r=e.groupId,n=new TextEncoder;if(!r||n.encode(r).length>64)throw new i(a.InvaildArgument,"join group with invalid groupId");if(t){var o=new TextEncoder;if("string"!=typeof t||o.encode(t).length>64)throw new i(a.InvaildArgument,"join group with invalid userData")}return this.serviceManager.joinGroup(e)}},{key:"leaveGroup",value:function(e){return this.logger.info("leaveGroup",e),this.serviceManager.leaveGroup({groupId:e,publishAudioToChannel:!1})}},{key:"setGroupName",value:function(e,t){this.logger.info("setGroupName",e,t);var r=new TextEncoder;if(!t||r.encode(t).length>64)throw new i(a.InvaildArgument,"update group with invalid name");return this.serviceManager.setGroupProperties(e,{key:"name",value:t})}},{key:"subscribeGroup",value:function(e){return this.logger.info("subscribeGroup",e),this.serviceManager.subscribeGroup(e)}},{key:"unsubscribeGroup",value:function(e){return this.logger.info("unsubscribeGroup",e),this.serviceManager.unsubscribeGroup(e)}},{key:"mixAudioToGroup",value:function(e,t,r){if(this.logger.info("mixAudioToGroup",e,t,r),"audio"!==e.trackMediaType)throw new i(a.InvaildArgument,"only support publish audio to group");if("connected"!==this.connectionState)throw new i(a.PublishNotJoinChannel);if(t){if(this.logger.info("mix audio track:".concat(e.getTrackId()," to group ").concat(r)),null==r&&this.serviceManager.micMixedGroups.size)throw new i(a.InvaildState,"cannot mix audio to channel while mixing to others group");return this.serviceManager.publishToGroup(e,r,!0)}if(this.logger.info("unmix audio track:".concat(e.getTrackId()," from group ").concat(r)),!this.serviceManager.micMixedGroups.has(r))throw new i(a.InvaildState,"cannot unmix audio from the unmixed group");return this.serviceManager.unpublishFromGroup(e,r)}},{key:"dismissGroup",value:function(e){return this.logger.info("dismissGroup",e),this.serviceManager.dismissGroup(e)}},{key:"register",value:function(e){this.logger.info("register",e),e.attach(this.serviceManager.internalChannel,this.serviceManager)}},{key:"ungister",value:function(e){this.logger.info("ungister",e),e.detach(this.serviceManager.internalChannel)}}]);var r,n}(),ia={height:360,width:640},aa=function(){var e=_(se.mark((function e(t){var r;return se.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 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();function oa(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(oa=function(){return!!e})()}pt();var sa=t().log;sa.info("sdk version",fe),sa.info("userAgent",navigator.userAgent),sa.info("href: ".concat(location.href,", in_iframe=").concat(window!==window.parent)),aa(sa);var ca=function(){function e(){var t,r,n,i;if(C(this,e),r=this,n=F(n=e),t=N(r,oa()?Reflect.construct(n,[],F(r).constructor):n.apply(r,i)),Object.defineProperty(t,"VERSION",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),t.VERSION=fe,!Se.checkSupported())return N(t);var a=Ve.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)})),g.on("autoplay-failed",(function(e){t.emit("autoplay-failed",e)})),t}return G(e,c),L(e,[{key:"createClient",value:function(){return sa.info("createClient"),new na}},{key:"checkSystemRequirements",value:function(){return sa.info("checkSystemRequirements"),Se.checkSupported()}},{key:"getSupportedCodec",value:function(){return sa.info("getSupportedCodec"),Se.getSupportedCodec()}},{key:"createCameraVideoTrack",value:function(e){return sa.info("createCameraVideoTrack",e),ur(e)}},{key:"createMicrophoneAudioTrack",value:function(e){return sa.info("createMicrophoneAudioTrack",e),cr(e)}},{key:"createCustomVideoTrack",value:function(e){return sa.info("createCustomVideoTrack",e),pr(e)}},{key:"createCustomAudioTrack",value:function(e){return sa.info("createCustomAudioTrack",e),fr(e)}},{key:"createScreenVideoTrack",value:function(e){return sa.info("createScreenVideoTrack",e),lr(e)}},{key:"createMicrophoneAndCameraTracks",value:(r=_(se.mark((function e(t,r){return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return sa.info("createMicrophoneAndCameraTracks",{videoConfig:t,audioConfig:r}),e.abrupt("return",dr(t,r));case 2:case"end":return e.stop()}}),e)}))),function(e,t){return r.apply(this,arguments)})},{key:"getCameras",value:function(){return sa.info("getCameras"),Ve.getCameras()}},{key:"getDevices",value:(t=_(se.mark((function e(){var t;return se.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return sa.info("start getDevices"),e.prev=1,e.next=4,Ve.getDevices();case 4:return t=e.sent,sa.info("getDevices suc",t),e.abrupt("return",t);case 9:return e.prev=9,e.t0=e.catch(1),sa.info("error getDevices ",e.t0),e.abrupt("return",e.t0);case 13:case"end":return e.stop()}}),e,null,[[1,9]])}))),function(){return t.apply(this,arguments)})},{key:"getPlaybackDevices",value:function(){return sa.info("getPlaybackDevices"),Ve.getPlaybackDevices()}},{key:"getMicrophones",value:function(){return sa.info("getMicrophones"),Ve.getMicrophones()}},{key:"setLogLevel",value:function(e){console.warn("[dingrtc]: setLogLevel is deprecated"),I(Re._consoleLogLevel),sa.info(" setLogLevel - ignored and hint deprecated",e)}},{key:"setClientConfig",value:function(e){sa.info("setClientConfig",e),Re.setClientConfig(e)}}]);var t,r}(),ua=new ca;export{K as AudioSourceInfo,le as AudioSourceState,ia as FALLBACK_SUB_VIDEO_PROFILE,z as VideoSourceInfo,ua as default};
1
+ import"webrtc-adapter";import{Environment as e,getReporter as t,SystemType as r,BrowserType as n,DingRTCError as i,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 y,createUuid as b,getPlainMediaTrackInfo as S,parseScreenShareError as k,getProtobufRoot as P,isPrivateIP as w,SdkType as O,uniqBy as T,VideoSourceInfo as E,TraceEvent as I,registerReporter as R,setLogLevel as M}from"@dingrtc/shared";export{ErrorCodeAndMsgMap}from"@dingrtc/shared";import A from"sdp-transform";import{DingRTCChannel as _}from"@dingrtc/channel";function C(e,t,r,n,i,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(n,i)}function D(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var a=e.apply(t,r);function o(e){C(a,n,i,o,s,"next",e)}function s(e){C(a,n,i,o,s,"throw",e)}o(void 0)}))}}function x(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function j(e){return j="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},j(e)}function L(e){var t=function(e,t){if("object"!=j(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=j(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==j(t)?t:t+""}function N(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,L(n.key),n)}}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"==j(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 q(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var H={exports:{}},W={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}(W);var Y=W.exports;!function(e){var t=Y.default;function r(){e.exports=r=function(){return i},e.exports.__esModule=!0,e.exports.default=e.exports;var n,i={},a=Object.prototype,o=a.hasOwnProperty,s=Object.defineProperty||function(e,t,r){e[t]=r.value},c="function"==typeof Symbol?Symbol:{},u=c.iterator||"@@iterator",l=c.asyncIterator||"@@asyncIterator",d=c.toStringTag||"@@toStringTag";function p(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{p({},"")}catch(n){p=function(e,t,r){return e[t]=r}}function f(e,t,r,n){var i=t&&t.prototype instanceof S?t:S,a=Object.create(i.prototype),o=new D(n||[]);return s(a,"_invoke",{value:M(e,r,o)}),a}function v(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}i.wrap=f;var m="suspendedStart",h="suspendedYield",g="executing",y="completed",b={};function S(){}function k(){}function P(){}var w={};p(w,u,(function(){return this}));var O=Object.getPrototypeOf,T=O&&O(O(x([])));T&&T!==a&&o.call(T,u)&&(w=T);var E=P.prototype=S.prototype=Object.create(w);function I(e){["next","throw","return"].forEach((function(t){p(e,t,(function(e){return this._invoke(t,e)}))}))}function R(e,r){function n(i,a,s,c){var u=v(e[i],e,a);if("throw"!==u.type){var l=u.arg,d=l.value;return d&&"object"==t(d)&&o.call(d,"__await")?r.resolve(d.__await).then((function(e){n("next",e,s,c)}),(function(e){n("throw",e,s,c)})):r.resolve(d).then((function(e){l.value=e,s(l)}),(function(e){return n("throw",e,s,c)}))}c(u.arg)}var i;s(this,"_invoke",{value:function(e,t){function a(){return new r((function(r,i){n(e,t,r,i)}))}return i=i?i.then(a,a):a()}})}function M(e,t,r){var i=m;return function(a,o){if(i===g)throw Error("Generator is already running");if(i===y){if("throw"===a)throw o;return{value:n,done:!0}}for(r.method=a,r.arg=o;;){var s=r.delegate;if(s){var c=A(s,r);if(c){if(c===b)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(i===m)throw i=y,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);i=g;var u=v(e,t,r);if("normal"===u.type){if(i=r.done?y:h,u.arg===b)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(i=y,r.method="throw",r.arg=u.arg)}}}function A(e,t){var r=t.method,i=e.iterator[r];if(i===n)return t.delegate=null,"throw"===r&&e.iterator.return&&(t.method="return",t.arg=n,A(e,t),"throw"===t.method)||"return"!==r&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+r+"' method")),b;var a=v(i,e.iterator,t.arg);if("throw"===a.type)return t.method="throw",t.arg=a.arg,t.delegate=null,b;var o=a.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=n),t.delegate=null,b):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,b)}function _(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function D(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(_,this),this.reset(!0)}function x(e){if(e||""===e){var r=e[u];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,a=function t(){for(;++i<e.length;)if(o.call(e,i))return t.value=e[i],t.done=!1,t;return t.value=n,t.done=!0,t};return a.next=a}}throw new TypeError(t(e)+" is not iterable")}return k.prototype=P,s(E,"constructor",{value:P,configurable:!0}),s(P,"constructor",{value:k,configurable:!0}),k.displayName=p(P,d,"GeneratorFunction"),i.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===k||"GeneratorFunction"===(t.displayName||t.name))},i.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,P):(e.__proto__=P,p(e,d,"GeneratorFunction")),e.prototype=Object.create(E),e},i.awrap=function(e){return{__await:e}},I(R.prototype),p(R.prototype,l,(function(){return this})),i.AsyncIterator=R,i.async=function(e,t,r,n,a){void 0===a&&(a=Promise);var o=new R(f(e,t,r,n),a);return i.isGeneratorFunction(t)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},I(E),p(E,d,"Generator"),p(E,u,(function(){return this})),p(E,"toString",(function(){return"[object Generator]"})),i.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},i.values=x,D.prototype={constructor:D,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=n,this.done=!1,this.delegate=null,this.method="next",this.arg=n,this.tryEntries.forEach(C),!e)for(var t in this)"t"===t.charAt(0)&&o.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=n)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(r,i){return s.type="throw",s.arg=e,t.next=r,i&&(t.method="next",t.arg=n),!!i}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var c=o.call(a,"catchLoc"),u=o.call(a,"finallyLoc");if(c&&u){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&o.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var i=n;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,b):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),b},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),C(r),b}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var i=n.arg;C(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:x(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=n),b}},i}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports}(H);var Q=(0,H.exports)(),J=Q;try{regeneratorRuntime=Q}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=Q:Function("r","regeneratorRuntime = r")(Q)}var K,z,$,X,Z,ee,te,re,ne,ie,ae,oe,se,ce,ue=q(J);function le(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 de(){return de="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var n=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=G(e)););return e}(e,t);if(n){var i=Object.getOwnPropertyDescriptor(n,t);return i.get?i.get.call(arguments.length<3?e:r):i.value}},de.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"}(K||(K={})),function(e){e.VP8="vp8",e.VP9="vp9",e.H264="h264",e.H265="h265",e.AV1="av1",e.AV1X="av1x"}(z||(z={})),function(e){e.MIC="mic",e.SCREENCAST="screen-cast",e.MIXED="mixed"}($||($={})),function(e){e.CAMERA="camera",e.SCREENCAST="screen-cast",e.MIXED="mixed"}(X||(X={})),function(e){e.PUBLISH="publish",e.SUBSCRIBE="subscribe"}(Z||(Z={})),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"}(ee||(ee={})),function(e){e[e.Native=1]="Native",e[e.Web=2]="Web",e[e.MiniProgram=3]="MiniProgram"}(te||(te={})),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"}(re||(re={})),function(e){e[e.UserKickOut=2011]="UserKickOut",e[e.UserReplaced=2012]="UserReplaced"}(ne||(ne={})),function(e){e[e.Idle=0]="Idle",e[e.Processing=1]="Processing",e[e.End=2]="End"}(ie||(ie={})),function(e){e[e.New=0]="New",e[e.Idle=1]="Idle",e[e.Processing=2]="Processing",e[e.Ended=3]="Ended"}(ae||(ae={})),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"}(oe||(oe={})),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"}(se||(se={})),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"}(ce||(ce={}));var pe,fe="3.8.17-beta.5",ve={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"}(pe||(pe={}));var me=fe,he=-999,ge="rtc-label";JSON.stringify({needPersonalityAudioStream:!0,outPeerConnectionNotReuse:!0}),e.browserType,e.browserVersion,e.system,e.systemVersion;var ye="onertc_state_sync",be="onertc_internal_track_event",Se="rtc_sdk_el_data",ke=t().log,Pe=new(function(){return F((function t(){x(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=D(ue.mark((function e(){var t,r,n;return ue.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=7,r.createOffer();case 7:if(n=e.sent.sdp){e.next=10;break}return e.abrupt("return",t);case 10:return r.close(),r=null,n.match(/ VP8/i)&&t.video.push("VP8"),n.match(/ VP9/i)&&t.video.push("VP9"),n.match(/ AV1/i)&&t.video.push("AV1"),n.match(/ H264/i)&&t.video.push("H264"),n.match(/ H265/i)&&t.video.push("H265"),n.match(/ opus/i)&&t.audio.push("OPUS"),n.match(/ PCMU/i)&&t.audio.push("PCMU"),n.match(/ PCMA/i)&&t.audio.push("PCMA"),n.match(/ G722/i)&&t.audio.push("G722"),e.abrupt("return",t);case 24:throw e.prev=24,e.t0=e.catch(1),ke.error("get supportedCodecs failed"),new i(a.IceConnectionSetLocalDescFail,"get supportedCodecs failed");case 28:case"end":return e.stop()}}),e,null,[[1,24]])}))),function(){return t.apply(this,arguments)})},{key:"checkSupported",value:function(){var t=!1;try{var r=window.RTCPeerConnection,n=navigator.mediaDevices&&navigator.mediaDevices.getUserMedia,i=window.WebSocket;t=!!(r&&n&&i)}catch(e){return!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 ke.debug("checkSystemRequirements, api:",t,"browser",a),o}},{key:"isSupportScreenShare",value:function(){return!this.system.includes(r.ANDROID)&&this.system!==r.IOS&&(!(this.browser===n.SAFARI&&parseInt(this.browserVersion)<13)&&(!(this.browser===n.FIREFOX&&parseInt(this.browserVersion)<66)&&!!(navigator&&navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)))}}]);var t}()),we=function(){var t,r=(null===(t=window.RTCRtpSender)||void 0===t?void 0:t.prototype)||{},n=r.setParameters,i=r.getParameters;return!(!n||!i)&&(!e.isFirefox()&&(e.isSafari()?parseInt(e.browserVersion)>=14:e.isChrome()?parseInt(e.browserVersion)>=81:!e.isAndroid()))};function Oe(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function Te(e,t){if(e){if("string"==typeof e)return Oe(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)?Oe(e,t):void 0}}function Ee(e){return function(e){if(Array.isArray(e))return Oe(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Te(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 Ie(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Ie=function(){return!!e})()}var Re=t().log,Me=function(){function e(){var t,r,n,i;return x(this,e),r=this,n=G(n=e),t=U(r,Ie()?Reflect.construct(n,[],G(r).constructor):n.apply(r,i)),Object.defineProperty(t,"gslb",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(t,"simulcast",{enumerable:!0,configurable:!0,writable:!0,value:we()}),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,"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"}),t.setClientConfig({gslb:["https://gslb.dingrtc.com"]}),t}return B(e,c),F(e,[{key:"setClientConfig",value:function(e){Re.info("setClientConfig",e);var t=e||{},r=t.gslb,n=t.simulcast,i=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!=n&&we()&&(this.simulcast=Boolean(n)),null!=i&&(this.audioSFU=Boolean(i)),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)}}])}(),Ae=new Me,_e=function(e,t){return e.width!==t.width?e.width-t.width:e.height-t.height},Ce=function(e){var t;if(!e)return[];var r=e.media.video;if(!r)return[];var n=[],i=r.optional,a=r.parameters;return null!=a&&a.resolution&&n.push(a.resolution),null!=i&&null!==(t=i.parameters)&&void 0!==t&&null!==(t=t.resolution)&&void 0!==t&&t.length&&n.push.apply(n,Ee(i.parameters.resolution)),n.sort(_e),n},De=function(e,t){var r,n=e.media,o=n.audio,s=n.video;if(t===oe.QuotaLimit)return r=new i(a.QuotaLimitExceed);if(o)r=new i(a.SubscribeAudioStreamFailed,t);else if(s){var c=s.source;c===X.CAMERA?r=new i(a.SubscribeVideoStreamFailed,t):c===X.SCREENCAST&&(r=new i(a.SubscribeScreenShareFailed,t))}return r},xe=function(e,t){var r,n=e.trackMediaType;if(t===oe.QuotaLimit)return r=new i(a.QuotaLimitExceed);if("audio"===n)r=new i(a.PublishAudioStreamFailed,t);else{var o=e.source;o===X.CAMERA?r=new i(a.PublishVideoStreamFailed,t):o===X.SCREENCAST&&(r=new i(a.PublishScreenShareFailed,t))}return r},je=function(e,t,r,n){var i=n,a=e.getVideoTracks(),o=e.getAudioTracks();return"audio"===t&&o.length?Ae.audioSFU?n?n.replaceStream(e):i=new Pr(null,r,e):n?n.replaceTrack(o[0]):i=new Pr(o[0],r):"video"===t&&a.length&&(n?n.replaceTrack(a[0]):i=new wr(a[0],r)),i},Le=function(e){return"object"===j(e.video)&&e.video.source===X.SCREENCAST};function Ne(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Fe(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ne(Object(r),!0).forEach((function(t){le(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ne(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Ue(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 Ge(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)?Ge(e,t):void 0}}(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}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 Ge(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function Ve(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Ve=function(){return!!e})()}var Be=t().log,qe=function(){function e(){var t,r,n,i,a;return x(this,e),r=this,n=G(n=e),t=U(r,Ve()?Reflect.construct(n,[],G(r).constructor):n.apply(r,i)),Object.defineProperty(t,"deviceList",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(t,"checking",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(t,"checkDeviceUpdate",{enumerable:!0,configurable:!0,writable:!0,value:(a=D(ue.mark((function r(){var n;return ue.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(!t.checking){r.next=2;break}return r.abrupt("return");case 2:return t.checking=!0,r.next=5,e.getDevices();case 5:n=r.sent,t.compareDevices(n,"audiooutput"),t.compareDevices(n,"videoinput"),t.compareDevices(n,"audioinput"),t.deviceList=n,t.checking=!1;case 11:case"end":return r.stop()}}),r)}))),function(){return a.apply(this,arguments)})}),Object.defineProperty(t,"compareDevices",{enumerable:!0,configurable:!0,writable:!0,value:function(e,r){var n,i=e.filter((function(e){return e.kind===r})),a=t.deviceList.filter((function(e){return e.kind===r})),o=i.map((function(e){return e.deviceId})),s=a.map((function(e){return e.deviceId})),c=i.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=Ue(c);try{for(d.s();!(n=d.n()).done;){var p=n.value;t.emit(l[r],{device:p,state:"active"})}}catch(e){d.e(e)}finally{d.f()}var f,v=Ue(u);try{for(v.s();!(f=v.n()).done;){var m=f.value;t.emit(l[r],{device:m,state:"inactive"})}}catch(e){v.e(e)}finally{v.f()}}}),e._instance?U(t,e._instance):(t.deviceList=[],Pe.checkSupported()?(e.getDevices({audio:!0,video:!0},!0).then((function(e){t.deviceList=e,t.addEventListeners()})),t):U(t))}return B(e,c),F(e,[{key:"addEventListeners",value:function(){"ondevicechange"in navigator.mediaDevices?navigator.mediaDevices.addEventListener("devicechange",this.checkDeviceUpdate):d(this.checkDeviceUpdate,1e3,"interval")}}],[{key:"getInstance",value:function(){return e._instance}},{key:"getMedias",value:function(e,t){var r,n,i=this;return Le(e)?(Be.info("getDisplayMedia with",t),null===(r=navigator.mediaDevices)||void 0===r?void 0:r.getDisplayMedia(t)):(Be.info("getUserMedia with",t),null===(n=navigator.mediaDevices)||void 0===n?void 0:n.getUserMedia(t).then((function(t){return e.audio&&(i.audioPermitted=!0),e.video&&(i.videoPermitted=!0),t})))}},{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(n,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(i){var a=i.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),n(d)):n(d):(Be.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){n(e)}),o)}),o)),n(a)}))}else o(new i(a.BrowserNotSupported,"enumerateDevices is not supported"))}))}}])}();Object.defineProperty(qe,"videoPermitted",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(qe,"audioPermitted",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(qe,"_instance",{enumerable:!0,configurable:!0,writable:!0,value:new qe}),Object.defineProperty(qe,"getPlaybackDevices",{enumerable:!0,configurable:!0,writable:!0,value:function(){return qe.getDevices({audio:!0}).then((function(e){return e.filter((function(e){return"audiooutput"===e.kind}))})).catch((function(e){throw u(e)}))}}),Object.defineProperty(qe,"getCameras",{enumerable:!0,configurable:!0,writable:!0,value:function(){return qe.getDevices({video:!0}).then((function(e){return Be.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 Fe(Fe({},r),{},{toJSON:function(){return r}})}))})).catch((function(e){throw Be.error("getCameras error",e),l(e)}))}}),Object.defineProperty(qe,"getMicrophones",{enumerable:!0,configurable:!0,writable:!0,value:function(){return qe.getDevices({audio:!0}).then((function(e){return Be.info("getMicrophones",e),e.filter((function(e){return"audioinput"===e.kind}))})).catch((function(e){throw Be.error("getMicrophones error",e),u(e)}))}});var He,We,Ye=function(e){return{width:ve[e][0],height:ve[e][1]}},Qe=function(t){var r,n=Object.create({}),i={};null!==(r=navigator)&&void 0!==r&&null!==(r=r.mediaDevices)&&void 0!==r&&r.getSupportedConstraints&&(i=navigator.mediaDevices.getSupportedConstraints(),console.log(i));var a=t.AEC,o=t.AGC,s=t.ANS;return t.deviceId&&(e.isSafari()?n.deviceId=t.deviceId:n.deviceId={exact:t.deviceId}),i.autoGainControl&&(n.autoGainControl={ideal:null==o||o}),i.echoCancellation&&(n.echoCancellation={ideal:null==a||a}),i.noiseSuppression&&(n.noiseSuppression={ideal:null==s||s}),n},Je=function(t){if(!p(t)||!t.audio&&!t.video)return Promise.reject(new TypeError("Invalid constrains"));var r=t.audio,n=t.video;if(!Le(t)&&"object"===j(r)&&r.source===$.SCREENCAST)return Promise.reject(new TypeError("Cannot share screen without video."));if(Le(t)&&"object"===j(r)&&r.source!==$.SCREENCAST)return Promise.reject(new TypeError("Cannot capture video from screen cast while capture audio from other source."));if(!r&&!n)return Promise.reject(new TypeError("At least one of audio and video must be requested."));var i=Object.create({});if("object"===j(r)&&r.source===$.MIC||"object"===j(r)&&r.source===$.SCREENCAST?i.audio=Qe(r):i.audio=t.audio,"object"===j(n)){var a,o=n.frameRate,c=n.deviceId,u=n.source,l=n.facingMode,d=n.displaySurface,v=n.dimension;i.video=Object.create({}),f(o)&&(i.video.frameRate=Math.min(n.frameRate,30)),v&&(a=Ye(v)),a&&a.width&&a.height&&(u===X.SCREENCAST||e.isFirefox()?(i.video.width=a.width,i.video.height=a.height):(i.video.width={ideal:a.width,max:a.width},i.video.height={ideal:a.height,max:a.height})),s(c)&&c&&(i.video.deviceId={exact:c}),u===X.SCREENCAST&&(e.isFirefox()&&(i.video.mediaSource="screen"),d&&["browser","window","monitor"].includes(d)&&(i.video.displaySurface=d)),l&&["user","environment"].includes(l)&&(i.video.facingMode=l)}else i.video=n;return qe.getMedias(t,i)},Ke=void 0,ze=function(e){if(!e)return!1;var t=e.getVideoTracks()[0];return t&&t.enabled&&!t.muted},$e=function(e,t){var r=(e.timestamp-((null==t?void 0:t.timestamp)||e.timestamp))/1e3;return r<=0&&(r=1),r},Xe=function(e,t){return null!=e?[2,4,6,0][e]:null!==t?[3,0,0,0,1,1,2][t]:void 0},Ze=function(e,t){isNaN(e)&&(e=0),isNaN(t)&&(t=0);var r=e-t;return r<0&&(r=e),r},et=function(){var e=D(ue.mark((function e(t){return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(t>0)){e.next=3;break}return e.next=3,new Promise((function(e){setTimeout(e,t)}));case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),tt=function(e){return new Promise((function(t){d(t,1e3*e)}))},rt=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50,r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=null,i=0;return function(){for(var a=arguments.length,o=new Array(a),s=0;s<a;s++)o[s]=arguments[s];var c=Date.now();c-i>=t&&r?(e.apply(Ke,o),i=c):(n&&clearTimeout(n),n=setTimeout((function(){e.apply(Ke,o),i=c}),t))}},nt=t().getLoggerWithPrefix("[rtc-mediaElPool]"),it="rtc-intersecting",at="visible",ot="invisible",st=["abort","canplay","canplaythrough","durationchange","emptied","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","ratechange","seeked","seeking","stalled","suspend","volumechange","waiting"],ct=function(e){return"".concat(null==e?void 0:e.getAttribute(ge),"-").concat(null==e?void 0:e.rtcPurpose)},ut=function(){return F((function e(t,r){var n=this;x(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(){n.mediaElementPool.forEach((function(e){return n._resetMediaElement(e)})),n.mediaElementPool=[],n.allElements.clear(),n.mediaElementsInUse.forEach((function(e){return n._resetMediaElement(e)})),n.mediaElementsInUse=[],document.removeEventListener("click",n._onUserInteraction),document.removeEventListener("touchstart",n._onUserInteraction),document.removeEventListener("visibilitychange",n._tryReloadOnPauseAndErrorWhenVisibleTriggerByVisible),n.mediaPlaybackCheckInterval&&(m(n.mediaPlaybackCheckInterval,"interval"),n.mediaPlaybackCheckInterval=null),[].concat(Ee(n.mediaElementPool),Ee(n.mediaElementsInUse)).forEach((function(e){var t;return null===(t=n.observer)||void 0===t?void 0:t.unobserve(e)}))}}),Object.defineProperty(this,"_tryReloadOnPauseAndErrorWhenVisible",{enumerable:!0,configurable:!0,writable:!0,value:function(e){n.mediaElementsInUse.forEach((function(t){if(t.srcObject){var r=t.srcObject;if(t.error){var i="".concat(e,": ").concat(ct(t)," has error, error=").concat(t.error,",doc.visibilityState=").concat(document.visibilityState,", mediaStream="),a=h(r);nt.debug(i,a),"visible"===document.visibilityState&&ze(r)&&t.load()}if(t.paused){var o=!1;if(n.hasActivated&&"video"===n.mediaKind?function(e){return e&&e.getAttribute(it)===at}(t)&&"visible"===document.visibilityState&&"visible"===getComputedStyle(t).visibility&&(o=!0):o=!0,o){var s="".concat(e,": ").concat(ct(t)," paused, doc.visibilityState=").concat(document.visibilityState,", intersecting=").concat(t.getAttribute(it),", mediaStream="),c=h(r);nt.error(s,c),ze(r)&&t.load(),t.paused&&t.play().catch((function(e){console.error("inPoll",e)}))}}}})),n.debouncer.debounce(n._tryReloadOnCurrentTimeFreeze.bind(n,e),1e3)}}),Object.defineProperty(this,"_tryReloadOnCurrentTimeFreeze",{enumerable:!0,configurable:!0,writable:!0,value:function(e){n.mediaElementsInUse.forEach((function(t){if(t.srcObject){var r=t.srcObject,i="video"===n.mediaKind?r.getVideoTracks()[0]:void 0;if(!t.paused&&n.currentTimeOfLastCheckMap.get(t)===t.currentTime&&!0!==(null==i?void 0:i.muted)){var a="".concat(e,": ").concat(ct(t)," currentTime stop, doc.visibilityState=").concat(document.visibilityState,", curTime=").concat(t.currentTime,", mediaStream="),o=h(r);return nt.error(a,o),void("visible"===document.visibilityState&&ze(r)&&t.load())}n.currentTimeOfLastCheckMap.set(t,t.currentTime)}}))}}),Object.defineProperty(this,"_tryReloadOnPauseAndErrorWhenVisibleTriggerByVisible",{enumerable:!0,configurable:!0,writable:!0,value:function(){n._tryReloadOnPauseAndErrorWhenVisible("visibilityChange")}}),Object.defineProperty(this,"_elementDefaultErrorHandler",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=e.target,r="error event on ".concat(n.mediaKind," playback, mediaStream="),i=h(null==t?void 0:t.srcObject),a=null==t?void 0:t.error;nt.error(r,i,a)}}),Object.defineProperty(this,"_elementDefaultPauseHandler",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=e.target,r="pause event on ".concat(n.mediaKind," playback, mediaStream="),i=h(null==t?void 0:t.srcObject),a=null==t?void 0:t.error;nt.debug(r,i,a)}}),Object.defineProperty(this,"_elementDefaultPlayHandler",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=e.target,r="play event on ".concat(n.mediaKind," playback, mediaStream="),i=h(null==t?void 0:t.srcObject);nt.debug(r,i)}}),Object.defineProperty(this,"_onUserInteraction",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e=[].concat(Ee(n.mediaElementPool),Ee(n.mediaElementsInUse));if(!n.hasActivated&&(n.hasActivated=!0,e.forEach((function(e){e.load()})),nt.info("load all for activate"),n._activatedListener))try{n._activatedListener()}catch(e){nt.error("error occurred when exec activatedListener",g(e))}n._tryReloadOnPauseAndErrorWhenVisible("userInteract")}}),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(it,at):null===(r=e.target)||void 0===r||r.setAttribute(it,ot)}))})));for(var i=1;i<=r;i++)this._createElement("".concat(t,"-").concat(i));document.addEventListener("click",this._onUserInteraction,!0),document.addEventListener("touchstart",this._onUserInteraction,!0),document.addEventListener("visibilitychange",this._tryReloadOnPauseAndErrorWhenVisibleTriggerByVisible,!0),this.mediaPlaybackCheckInterval=d((function(){n.hasActivated&&n._tryReloadOnPauseAndErrorWhenVisible("intervalCheck")}),4e3,"interval")}),[{key:"addAtttribute",value:function(e){if(e.autoplay=!0,e.setAttribute(ge,"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())||(t=this._createElement("".concat(this.mediaKind,"-").concat(++this.mediaElementCount))),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&&(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(ge,e),this.mediaElementPool.push(r),this.allElements.add(r),r}},{key:"_resetMediaElement",value:function(e){st.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}}])}(),lt=function(){return He||ft(),He},dt=function(){return We||ft(),We};window.getAudioElementPool=lt,window.getVideoElementPool=dt;var pt=e.isIOS()||e.isAndroid()?9:25,ft=function(){He||(He=new ut("audio",2)),We||(We=new ut("video",pt))},vt=new AudioContext,mt=function(e){var t=e.getAudioTracks(),r=vt.createMediaStreamDestination();return t.forEach((function(e){vt.createMediaStreamSource(new MediaStream([e])).connect(r)})),r.stream.getAudioTracks()[0]},ht=function(e,t,r){"running"!==e.state&&e.resume(),r.connect(t),t.fftSize=2048,t.smoothingTimeConstant=.4;var n=new Float32Array(t.fftSize);if(t.getFloatTimeDomainData)t.getFloatTimeDomainData(n);else{var i=new Uint8Array(t.fftSize);t.getByteTimeDomainData(i);for(var a=0;a<n.length;++a)n[a]=i[a]/128-1}for(var o=0,s=0;s<n.length;s++)o+=n[s]*n[s];return Math.max(10*Math.log10(o/n.length)+100,0)/100},gt=function(e){var t=document.createElement("canvas"),r=t.getContext("2d"),n=e.videoHeight,i=e.videoWidth;return t.width=i,t.height=n,r.drawImage(e,0,0,i,n),t.toDataURL("image/png")},yt=lt(),bt=dt(),St=t().getLoggerWithPrefix("[rtc-playerMgr]"),kt=F((function e(t,r,n,i){var a=this;x(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,"mediaWrapper",{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(),n="live"===(null==r?void 0:r.readyState)&&(null==r?void 0:r.enabled)&&!(null!=r&&r.muted);if(Ae._holdVideoLastFrame&&(n&&(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 i=a.canvas.getContext("2d");i.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),i.drawImage(a.mediaEl,0,0,s,o)}}}),Object.defineProperty(this,"checkSwitchSnapshot",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e,t,r,n,i,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||St.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===(n=a.mediaEl)||void 0===n?void 0:n.readyState});(a.lastCheckResult={msTrackPlayable:c,elPlaying:a.isPlayerPlaying()},Ae._holdVideoLastFrame)&&(c&&(null===(i=a.mediaEl)||void 0===i||null===(i=i.srcObject)||void 0===i||null===(o=i.getVideoTracks)||void 0===o||null===(o=o.call(i))||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&&(St.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;St.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(){a.mediaWrapper.appendChild(a.mediaEl),a.mediaEl.pause();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&&St.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&&St.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,"stop",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e;if(a.stopCheckPlayState(),a.mediaEl&&a.track&&a.mediaWrapper){var t,r;if(a.mediaEl.pause(),null!==(e=a.mediaWrapper)&&void 0!==e&&e.contains(a.mediaEl))null===(t=a.mediaWrapper)||void 0===t||null===(r=t.removeChild)||void 0===r||r.call(t,a.mediaEl);a.mediaEl.srcObject=null,a.canvas=null,"audio"===a.track.trackMediaType?yt.pushElement(a.mediaEl):bt.pushElement(a.mediaEl)}}}),Object.defineProperty(this,"switchSnapshot",{enumerable:!0,configurable:!0,writable:!0,value:function(){St.info("switchSnapshot trackid",a.track.getTrackId()),a.mediaEl.srcObject=a.snapshotMediaStream,a.mediaEl.play().catch((function(e){St.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){St.info("switchOriginVideo trackid",a.track.getTrackId());var n=a.track.sfuStream||new MediaStream([a.track.getMediaStreamTrack()]);a.mediaEl.srcObject=n,a.mediaEl.play().catch((function(e){St.info("switchOriginVideo play error, trackid",a.track.getTrackId(),g(e))}))}}),1e3)}}),this.mediaWrapper=t,this.track=r,this.playerConfig=n,this.mediaEl=i,this.mediaEl.setAttribute(Se,this.track.getTrackId()),this.canvas=document.createElement("canvas"),this.canvas.setAttribute(Se,this.track.getTrackId()),this.snapshotMediaStream=this.canvas.captureStream(4)})),Pt=new(function(){return F((function e(){x(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 n,o=this;St.info("call play",e.getTrackId());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 i(a.InvaildArgument,"wrapper dom not found");var d=r||{},p=d.mirror,f=d.fit;if((n=this.playControllerArr.find((function(e){return e.mediaWrapper===t})))&&(null===(u=n.track)||void 0===u?void 0:u.getTrackId())!==(null==e?void 0:e.getTrackId()))return this.stop(n.track,t),void this.play(e,t,r);n?(n.mediaEl.pause(),!e.sourceMirror!=!p?n.mediaEl.style.transform="scaleX(-1)":n.mediaEl.style.transform="",f&&(n.mediaEl.style.objectFit=f),n.mediaEl.srcObject=c,n.mediaEl.play().catch((function(e){var t,r;"AbortError"!==e.name&&St.error("play video error trackid=",null===(t=n.track)||void 0===t||null===(r=t.getTrackId)||void 0===r?void 0:r.call(t),g(e))}))):(function(e,t){e.style.width="100%",e.style.height="100%";var r=t.mirror,n=t.fit;!0===r&&(e.style.transform="scaleX(-1)"),n&&(e.style.objectFit=n)}((n=new kt(l,e,r,dt().popElement())).mediaEl,{mirror:!e.sourceMirror!=!p,fit:f}),n.playVideo(),this.playControllerArr.push(n))}else(n=this.playControllerArr.find((function(t){var r;return(null===(r=t.track)||void 0===r?void 0:r.getTrackId())===e.getTrackId()})))?(n.mediaEl.pause(),n.mediaEl.srcObject=c,n.mediaEl.load()):((n=new kt(null,e,null,lt().popElement())).playAudio(),this.playControllerArr.push(n));n.mediaEl.paused&&n.mediaEl.play().catch((function(e){"NotAllowedError"===e.name?(St.error("autoplay failed",g(e)),y.emit("autoplay-failed",o)):"AbortError"!==e.name&&St.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:"stop",value:function(e,t){var r=this.playControllerArr.filter((function(r){var n;return t?r.mediaWrapper===t:(null===(n=r.track)||void 0===n?void 0:n.getTrackId())===(null==e?void 0:e.getTrackId())}));if(r.length){r.forEach((function(e){e.stop()}));for(var n=this.playControllerArr.length-1;n>=0;n--)r.includes(this.playControllerArr[n])&&this.playControllerArr.splice(n,1)}}},{key:"findDom",value:function(e){if(!e)return null;var t="string"==typeof e?document.querySelector(e):e;return document.contains(t)?t:null}}])}()),wt=function(){return Pt};function Ot(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Ot=function(){return!!e})()}window.playerMgr=Pt;var Tt,Et=t(),It=Et.log,Rt=Et.trace,Mt=It,At=wt(),_t=function(){function e(t,r){var n,i,a,o;return x(this,e),i=this,a=G(a=e),n=U(i,Ot()?Reflect.construct(a,[],G(i).constructor):a.apply(i,o)),Object.defineProperty(n,"trackMediaType",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"source",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"logger",{enumerable:!0,configurable:!0,writable:!0,value:Rt}),Object.defineProperty(n,"sourceNode",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"audioContext",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"analyser",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"trackSettings",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"sfuStream",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"mediaStreamTrack",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"trackId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"sourceMirror",{enumerable:!0,configurable:!0,writable:!0,value:!1}),t?(n.trackMediaType=t.kind,n.trackSettings=t.getSettings()):r&&(n.trackMediaType="audio"),"audio"===n.trackMediaType&&(n.audioContext=vt,n.analyser=n.audioContext.createAnalyser()),n.trackId="".concat(n.trackMediaType,"_").concat(b(6)),n.setMediaStreamTrack(t,r),n}return B(e,c),F(e,[{key:"isPlaying",get:function(){return At.isPlaying(this)}},{key:"emit",value:function(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];return Mt.info("track emit event",t,null==n?void 0:n[0]),(a=e,o="emit",s=this,u=de(G(1&(c=3)?a.prototype:a),o,s),2&c&&"function"==typeof u?function(e){return u.apply(s,e)}:u)([t].concat(n));var a,o,s,c,u}},{key:"getTrackId",value:function(){return this.trackId}},{key:"setMediaStreamTrack",value:function(e,t){var r=this,n=this.mediaStreamTrack;if(n&&(n.onended=null),e||t){var o;if(n&&e&&(e.enabled=n.enabled),"audio"===this.trackMediaType)if(this.sourceNode&&(this.sourceNode.disconnect(),this.sourceNode=null),e)this.sourceNode=null===(o=this.audioContext)||void 0===o?void 0:o.createMediaStreamSource(new MediaStream([e]));else if(t){var s,c=mt(t);this.sourceNode=null===(s=this.audioContext)||void 0===s?void 0:s.createMediaStreamSource(new MediaStream([c]))}e?(this.mediaStreamTrack=e,this.mediaStreamTrack.onended=function(){r.source===X.SCREENCAST?r.logger.sendEvent("SCREEN_DEVICE_STOP"):r.source===$.MIC?new i(a.MicInterrupt):r.source===X.CAMERA&&new i(a.CameraInterrupt)}):t&&(this.sfuStream=t)}}},{key:"replaceTrack",value:function(e,t){It.info("replaceTrack",e,t),t&&this.isPlaying&&this.stop(),this.replaceTrackInner(e,null,!0)}},{key:"replaceTrackInner",value:function(e,t,r){this.setMediaStreamTrack(e,t),this.emit(be,"replace",this),this.innnerPlay({updated:!0})}},{key:"setSource",value:function(e){e===X.CAMERA?this.logger.sendEvent("VIDEO_DEVICE_START"):e===X.SCREENCAST?this.logger.sendEvent("SCREEN_DEVICE_START"):e===$.MIC&&this.logger.sendEvent("AUDIO_DEVICE_START"),this.source=e}},{key:"stop",value:function(e){It.info("stop paly track ".concat(this.getTrackId())),At.stop(this,e)}},{key:"innnerPlay",value:function(e){var t=this,r=e.mediaWrapperElement,n=e.config;e.updated?At.getPlayCtrls(this).forEach((function(e){e.mediaWrapper?At.findDom(e.mediaWrapper)?At.play(t,e.mediaWrapper,e.playerConfig):At.stop(t,e.mediaWrapper):At.play(t,e.mediaWrapper,e.playerConfig)})):At.play(this,r,n);if("audio"===this.trackMediaType)try{"running"!==this.audioContext.state&&this.audioContext.resume()}catch(e){It.debug("resume audioContext failed: ".concat(g(e)))}}},{key:"getMediaStreamTrack",value:function(){return this.mediaStreamTrack}}])}();function Ct(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 n,i,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=(n=a.call(r)).done)&&(s.push(n.value),s.length!==t);c=!0);}catch(e){u=!0,i=e}finally{try{if(!c&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return s}}(e,t)||Te(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.")}()}function Dt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function xt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Dt(Object(r),!0).forEach((function(t){le(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Dt(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"}(Tt||(Tt={}));var jt=le(le(le(le(le(le({},Tt.LLD,"lld"),Tt.LD,"ld"),Tt.SD,"sd"),Tt.HD,"hd"),Tt.FHD,"fhd"),Tt.QHD,"qhd"),Lt={high:[2764800,4915200],QHD:[2764800,4915200],FHD:[1228800,2764800],HD:[307200,1228800],SD:[76800,307200],LD:[0,76800],low:[0,76800]},Nt=function(e){return 2560===e.width&&1440===e.height},Ft=function(e,t){var r=Gt(e,t),n=function(e,t){var r={high:ce.QHD,low:ce.LD,QHD:ce.QHD,FHD:ce.FHD,HD:ce.HD,SD:ce.SD,LD:ce.LD},n=r[e]||ce.None,i=Lt[e],a=t[t.length-1].width*t[t.length-1].height;if(a<i[0]){var o=Object.entries(Lt).find((function(e){var t=Ct(e,2);t[0];var r=t[1];return a>r[0]&&a<=r[1]}));n=r[Ct(o,1)[0]]}return n}(e,t);return{resolution:r,resolutionLevel:n}},Ut=function(e){return{0:"LLD",1:"LD",2:"LD",4:"SD",8:"HD",16:"FHD",32:"QHD"}[e]},Gt=function(e,t){var r=Lt[e],n=t.length,i=t[t.length-1];if(("FHD"===e||"high"===e)&&Nt(i))return i;if(t[0].width*t[0].height>Lt.FHD[1])return t[0];for(var a=0;n>a;a++){var o=t[a].width*t[a].height;if(o>=r[0]&&r[1]>=o)return t[a]}for(var s=n-1;s>=0;s--){var c=t[s].width*t[s].height;if(r[1]>c)return t[s]}return t[0]},Vt=[49152,76800,307200,1228800,2764800,4915200],Bt=[200,350,1e3,1800,2828,5600],qt=[[256,144],[320,180],[640,360],[1280,720],[1920,1080],[2560,1440]],Ht=[[256,192],[320,240],[640,480],[1280,960],[1920,1440],[2560,1920]],Wt=function(e,t){var r=Tt.FHD,n=e*t;return n<=Vt[Tt.LLD]?r=Tt.LLD:n<=Vt[Tt.LD]?r=Tt.LD:n<=Vt[Tt.SD]?r=Tt.SD:n<=Vt[Tt.HD]?r=Tt.HD:n<=Vt[Tt.FHD]?r=Tt.FHD:n<=Vt[Tt.QHD]&&(r=Tt.QHD),r},Yt=function(e,t,r,n){var i=0,a=0;if(n<=r)return[i=e,a=t];if(t>e){var o=[e,t];t=o[0],e=o[1]}if(16*t==9*e)i=qt[r][0],a=qt[r][1];else if(4*t==3*e)i=Ht[r][0],a=Ht[r][1];else{var s=Math.sqrt(1*qt[r][0]*qt[r][1]/e/t);s=1*(i=(i=Math.round(e*s))+15&-16)/e,a=Math.round(t*s)}return[i,a]},Qt=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;if(!n){var i=1;30!==r&&(i=Math.sqrt(r/30));var a=Bt[Wt(e,t)];n=Math.round(Math.max(i*a,50))}return n},Jt=function(e){var t=e.width,r=e.height,n=e.frameRate,i=e.maxBitrate,a=e.resolutionLevel,o=Wt(t,r),s=[],c=o>=Tt.HD?3:2,u=function(e){var a=Ct(Yt(t,r,e,o),2),s=a[0],c=a[1],u=Bt[e]/Bt[o],l=1/(c/r);return{targetWidth:s,rid:jt[e],targetHeight:c,minBitrate:50,maxFramerate:n,maxBitrate:Math.round(Math.max(30,i*u)),scaleResolutionDownBy:l}};o>Tt.LLD&&s.push(xt({activeForBitrateMap:!1,activeForRealuse:Math.pow(2,Tt.LLD)===a},u(Tt.LLD))),o>Tt.LD&&s.push(xt({activeForBitrateMap:c>1,activeForRealuse:Math.pow(2,Tt.LD)===a},u(Tt.LD))),o>Tt.SD&&s.push(xt({activeForBitrateMap:c>2,activeForRealuse:Math.pow(2,Tt.SD)===a},u(Tt.SD))),o===Tt.FHD?(s.push(xt({activeForBitrateMap:!1,activeForRealuse:!1},u(Tt.HD))),s.push(xt({activeForBitrateMap:!0,activeForRealuse:Ae.republish?Math.pow(2,4)===a||a===Math.pow(2,3):Math.pow(2,4)===a},u(Tt.FHD)))):s.push(xt({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},Kt=function(e,t){var r=Wt(e,t);return Math.pow(2,r)},zt=function(e){var t,r=e.getMaxBitrate(),n=null===(t=e.getMediaStreamTrack())||void 0===t?void 0:t.getSettings(),i=(null==n?void 0:n.width)||e.trackSettings.width,a=(null==n?void 0:n.height)||e.trackSettings.height,o=(null==n?void 0:n.frameRate)||e.trackSettings.frameRate,s=!Ae.simulcast||e.source===X.SCREENCAST||Nt({width:i,height:a}),c={resolutionLevel:Kt(i,a),encodings:[]};return s?c.encodings=[{maxFramerate:o,maxBitrate:r,scaleResolutionDownBy:1,activeForBitrateMap:!0,activeForRealuse:!0,rid:"",minBitrate:Math.round((r+30)/2),targetWidth:i,targetHeight:a}]:Ae.republish?c.encodings=Jt({width:1920,height:1080,frameRate:30,maxBitrate:Qt(1920,1080,30),resolutionLevel:c.resolutionLevel}):c.encodings=Jt({width:i,height:a,frameRate:o,maxBitrate:r,resolutionLevel:c.resolutionLevel}),c};function $t(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Xt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?$t(Object(r),!0).forEach((function(t){le(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):$t(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Zt(e,t,r){return t=G(t),U(e,er()?Reflect.construct(t,r||[],G(e).constructor):t.apply(e,r))}function er(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(er=function(){return!!e})()}function tr(e,t,r,n){var i=de(G(e.prototype),t,r);return"function"==typeof i?function(e){return i.apply(r,e)}:i}var rr=wt(),nr=t().getLoggerWithPrefix("[rtc-localtrack]"),ir=function(){function e(t){var r;if(x(this,e),r=Zt(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 n=t.muted;r.muted=n}return r.enabled=!0,r}return B(e,_t),F(e,[{key:"setMediaStreamTrack",value:function(t){var r=this;tr(e,"setMediaStreamTrack",this)([t]),t&&(this.trackSettings=t.getSettings(),t.onended=function(){r.stop(),r.close&&r.close(),r.emit("track-ended")})}},{key:"play",value:function(e,t){this.innnerPlay({mediaWrapperElement:e,config:t})}},{key:"setEnabled",value:function(e){return nr.info("setEnabled",e),this.isClosed?Promise.reject(new i(a.InvaildState)):(this.enabled=e,this.emit(be,e?"unmute":"mute"),e?this.updateNewTrack():(null===(t=this.mediaStreamTrack)||void 0===t||t.stop(),this.setMediaStreamTrack(null),this.source===X.CAMERA?this.logger.sendEvent("VIDEO_DEVICE_STOP"):this.source===X.SCREENCAST&&this.logger.sendEvent("SCREEN_DEVICE_STOP"),Promise.resolve()));var t}},{key:"close",value:function(){var e;nr.info("".concat(this.source," track:").concat(this.getTrackId()," close")),this.isClosed||(this.isClosed=!0,this.isPlaying&&this.stop(),this.emit(be,"stop"),null===(e=this.mediaStreamTrack)||void 0===e||e.stop(),this.setMediaStreamTrack(null),this.audioContext&&(this.sourceNode=null,this.analyser=null,this.audioContext=null),this.source===X.CAMERA?this.logger.sendEvent("VIDEO_DEVICE_STOP"):this.source===X.SCREENCAST&&this.logger.sendEvent("SCREEN_DEVICE_STOP"))}},{key:"setMuted",value:function(e){return nr.info("setMuted",e),this.isClosed?Promise.reject(new i(a.InvaildState)):(this.muted=e,this.mediaStreamTrack.enabled=!e,this.emit(be,e?"mute":"unmute"),Promise.resolve())}},{key:"getAudioTrack",value:function(){var e=this;return nr.debug("gengrate new audioTrack"),new Promise((function(t,r){var n;Je({audio:Xt({source:e.source},e.config)}).then((function(e){n=e.getAudioTracks()[0]})).catch((function(t){try{var i=e.audioContext.createOscillator(),a=e.audioContext.createMediaStreamDestination();i.connect(a),n=a.stream.getAudioTracks()[0]}catch(e){nr.error("gengrate new audioTrack error",u(t)),r(u(t))}})).finally((function(){n&&t(n)}))}))}},{key:"getVideoTrack",value:function(){var e=this;return nr.info("gengrate new videoTrack",this.config),new Promise((function(t,r){var n,i=Xt({source:e.source},e.config);e.config.facingMode&&e.config.deviceId&&(nr.info("ignore deviceId param to create videoTrack because facingMode is",e.config.facingMode),delete i.deviceId),Je({video:i,audio:!1}).then((function(e){n=e.getVideoTracks()[0],t(n)})).catch((function(e){nr.error("gengrate new videoTrack error",l(e)),r(l(e))}))}))}},{key:"updateNewTrack",value:function(){var e=this,t=this.getMediaStreamTrack();return t.onended=null,nr.info("stop oldTrack first"),t.stop(),"audio"===this.trackMediaType?this.getAudioTrack().then((function(t){return e.replaceTrackInner(t,null,!0)})):"video"===this.trackMediaType?this.getVideoTrack().then((function(t){return e.replaceTrackInner(t,null,!0)})):void 0}},{key:"setDevice",value:(t=D(ue.mark((function e(t){var r,n,i;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(nr.info("setDevice",t),!this.isClosed){e.next=3;break}return e.abrupt("return");case 3:if(!(this instanceof sr)||"user"!==t&&"environment"!==t){e.next=7;break}this.config.facingMode=t,e.next=11;break;case 7:if((this.config.deviceId||(null===(r=this.mediaStreamTrack)||void 0===r||null===(r=r.getSettings())||void 0===r?void 0:r.deviceId)||(null===(n=this.mediaStreamTrack)||void 0===n||null===(i=n.getConstraints)||void 0===i||null===(i=i.call(n))||void 0===i?void 0:i.deviceId))!==t){e.next=10;break}return e.abrupt("return");case 10:this.config.deviceId=t;case 11:return e.abrupt("return",this.updateNewTrack());case 12:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"getTrackLabel",value:function(){if(nr.info("getTrackLabel"),!this.isClosed)return this.mediaStreamTrack.label}},{key:"getMaxBitrate",value:function(){if(!this.isClosed)return this.maxBitrate}}]);var t}(),ar=function(){function e(t,r){var n;if(x(this,e),(n=Zt(this,e,[t])).config=r,t){var i=t.getSettings(),a=i.width,o=i.height;n.maxBitrate=Qt(a,o,r.frameRate,r.maxBitrate)}return n}return B(e,ir),F(e,[{key:"optimizationMode",get:function(){return this.config.optimizationMode}},{key:"setEncoderConfiguration",value:function(e){var t=this;nr.info("videoTrack ".concat(this.getTrackId()," setEncoderConfiguration"),e);var r=e.dimension,n=e.frameRate,o=e.maxBitrate,s=e.optimizationMode,c=e.mirror;if(n&&Number.isNaN(n))return Promise.reject(new i(a.InvaildArgument,"invalid frameRate"));if(r&&!ve[r])return Promise.reject(new i(a.InvaildArgument,"invalid dimension"));!c!=!this.config.mirror&&(this.emit(be,"mirror",c),this.config.mirror=c),s&&s!==this.optimizationMode&&(this.config.optimizationMode=s,this.emit(be,"optimizationMode"));var u=!1;if(r&&this.config.dimension!==r&&(this.config.dimension=r,u=!0),n&&this.config.frameRate!==Math.min(30,n)&&(this.config.frameRate=Math.min(30,n),u=!0),o&&this.maxBitrate!==o&&(u=!0),!u)return Promise.resolve();var d=Xt({frameRate:this.config.frameRate},Ye(this.config.dimension)),p=this.getMediaStreamTrack();return null==p?void 0:p.applyConstraints(d).then((function(){var e,r=null===(e=t.getMediaStreamTrack())||void 0===e?void 0:e.getSettings(),n=r.width,i=r.height;t.maxBitrate=Qt(n,i,t.config.frameRate,o),console.log(n,i,d,t.maxBitrate),t.emit(be,"republish",t)})).catch((function(e){var r=l(e);throw nr.error("videoTrack ".concat(t.getTrackId()," setEncoderConfiguration error"),r),r}))}},{key:"getCurrentFrameData",value:function(){return nr.info("getCurrentFrameData"),this.isClosed||!this.isPlaying?null:gt(rr.getElement(this)[0])}},{key:"play",value:function(t,r){return nr.info("local video play"),tr(e,"play",this)([t,r])}}])}(),or=function(){function e(t){return x(this,e),Zt(this,e,[t])}return B(e,ir),F(e,[{key:"setVolume",value:function(e){nr.info("setVolume",e),this.isClosed||rr.getElement(this)[0]&&(rr.getElement(this)[0].volume=e)}},{key:"getVolume",value:function(){if(nr.info("getVolume"),!this.isClosed)return rr.getElement(this)[0]?rr.getElement(this)[0].volume:void 0}},{key:"getVolumeLevel",value:function(){return this.isClosed?0:ht(this.audioContext,this.analyser,this.sourceNode)}},{key:"play",value:function(){return nr.info("local audio play"),tr(e,"play",this)([])}}])}(),sr=function(){function e(t,r){var n;return x(this,e),(n=Zt(this,e,[t,r])).setSource(X.CAMERA),n}return B(e,ar),F(e)}(),cr=function(){function e(t,r){var n;return x(this,e),(n=Zt(this,e,[t])).config=r,n.setSource($.MIC),n.analyser=n.audioContext.createAnalyser(),n}return B(e,or),F(e,[{key:"setVolume",value:function(e){nr.info("setVolume",e),this.isClosed||rr.getElement(this)[0]&&(rr.getElement(this)[0].volume=e)}},{key:"getVolume",value:function(){if(nr.info("getVolume"),!this.isClosed)return rr.getElement(this)[0]?rr.getElement(this)[0].volume:void 0}}])}(),ur=function(){var e=D(ue.mark((function e(t){var r,n,i,a,o,s,c,l,d,p;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return nr.info("createMicrophoneAudioTrack",t),r={AEC:!0,AGC:!0,ANS:!0},i=(n=t||r).AEC,a=void 0===i||i,o=n.AGC,s=void 0===o||o,c=n.ANS,l=void 0===c||c,e.prev=3,e.next=6,Je({video:!1,audio:{deviceId:null==t?void 0:t.deviceId,source:$.MIC,AEC:a,AGC:s,ANS:l}});case 6:return d=e.sent,p=d.getAudioTracks()[0],nr.info("MicrophoneAudioTrack created",S(p)),e.abrupt("return",new cr(p,Object.assign({},t,{AEC:a,AGC:s,ANS:l})));case 12:throw e.prev=12,e.t0=e.catch(3),u(e.t0);case 15:case"end":return e.stop()}}),e,null,[[3,12]])})));return function(t){return e.apply(this,arguments)}}(),lr=function(){var e=D(ue.mark((function e(t){var r,n,i,a,o,s,c,u,d;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return nr.info("createCameraVideoTrack",t),r=t.deviceId,n=t.facingMode,i=t.dimension,a=void 0===i?"VD_640x480":i,o=t.optimizationMode,s=void 0===o?"balanced":o,c=Math.min(30,t.frameRate||15),e.prev=3,e.next=6,Je({video:{deviceId:r,source:X.CAMERA,frameRate:c,dimension:a,facingMode:n},audio:!1});case 6:return u=e.sent,d=u.getVideoTracks()[0],nr.info("CameraVideoTrack created",S(d)),d.addEventListener("ended",(function(){return nr.info("cam track ended",d.id)})),d.addEventListener("unmute",(function(){return nr.info("cam track unmute",d.id)})),d.addEventListener("mute",(function(){return nr.info("cam track mute",d.id)})),e.abrupt("return",new sr(d,Object.assign({},t,{frameRate:c,dimension:a,optimizationMode:s})));case 15:throw e.prev=15,e.t0=e.catch(3),l(e.t0);case 18:case"end":return e.stop()}}),e,null,[[3,15]])})));return function(t){return e.apply(this,arguments)}}(),dr=function(){var e=D(ue.mark((function e(t){var r,n,i,a,o,s,c,u,l,d;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return nr.info("createScreenVideoTrack",t),r=t.displaySurface,n=void 0===r?"monitor":r,i=t.dimension,a=void 0===i?"VD_1920x1080":i,o=t.optimizationMode,s=void 0===o?"detail":o,c=Math.min(t.frameRate||5,30),e.prev=3,e.next=6,Je({video:{source:X.SCREENCAST,displaySurface:n,frameRate:c,dimension:a},audio:!1});case 6:return u=e.sent,l=u.getVideoTracks()[0],(d=new ar(l,Object.assign({},t,{frameRate:c,dimension:a,optimizationMode:s}))).setSource(X.SCREENCAST),nr.info("ScreenVideoTrack created",S(l)),l.addEventListener("ended",(function(){return nr.info("screen video track ended",l.id)})),l.addEventListener("unmute",(function(){return nr.info("screen video track unmute",l.id)})),l.addEventListener("mute",(function(){return nr.info("screen video track mute",l.id)})),e.abrupt("return",[d]);case 17:throw e.prev=17,e.t0=e.catch(3),k(e.t0);case 20:case"end":return e.stop()}}),e,null,[[3,17]])})));return function(t){return e.apply(this,arguments)}}(),pr=function(){var e=D(ue.mark((function e(t,r){var n,i,a,o,s,c,u,d,p,f,v,m,g,y,b,S,k,P,w,O;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return nr.info("createMicrophoneAndCameraTracks",t,r),n=Math.min(t.frameRate||15,30),i=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,y=p.ANS,b=void 0===y||y,e.prev=5,e.next=8,Je({video:{deviceId:i,source:X.CAMERA,frameRate:n,dimension:s,facingMode:a},audio:{deviceId:null==r?void 0:r.deviceId,source:$.MIC,AEC:v,AGC:g,ANS:b}});case 8:return S=e.sent,k=S.getVideoTracks()[0],P=S.getAudioTracks()[0],nr.info("CameraVideoTrack and MicrophoneTrack created",h(S)),k.addEventListener("ended",(function(){return nr.info("cam track ended",k.id)})),k.addEventListener("unmute",(function(){return nr.info("cam track unmute",k.id)})),k.addEventListener("mute",(function(){return nr.info("cam track mute",k.id)})),P.addEventListener("ended",(function(){return nr.info("mic track ended",P.id)})),P.addEventListener("unmute",(function(){return nr.info("mic track unmute",P.id)})),P.addEventListener("mute",(function(){return nr.info("mic track mute",P.id)})),w=new sr(k,Object.assign({},t,{frameRate:n,dimension:s,optimizationMode:u})),O=new cr(P,Object.assign({},Object.assign({},r,{AEC:v,AGC:g,ANS:b}))),e.abrupt("return",[w,O]);case 23:throw e.prev=23,e.t0=e.catch(5),l(e.t0);case 26:case"end":return e.stop()}}),e,null,[[5,23]])})));return function(t,r){return e.apply(this,arguments)}}(),fr=function(){var e=D(ue.mark((function e(t){var r,n,o,s,c,u,l,d;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(nr.info("createCustomVideoTrack",t),n=(r=t||{}).mediaStreamTrack,o=r.dimension,s=void 0===o?"VD_640x480":o,c=r.optimizationMode,u=void 0===c?"balanced":c,l=Math.min(t.frameRate||15,30),n instanceof MediaStreamTrack&&"video"===n.kind){e.next=5;break}throw new i(a.InvaildArgument,"missing video mediaStreamTrack");case 5:return nr.info("createCustomVideoTrack for",S(n)),n.addEventListener("ended",(function(){return nr.info("custom video track ended",n.id)})),n.addEventListener("unmute",(function(){return nr.info("custom video track unmute",n.id)})),n.addEventListener("mute",(function(){return nr.info("custom video track mute",n.id)})),(d=new ar(n,Object.assign({},t,{frameRate:l,dimension:s,optimizationMode:u}))).setSource(X.CAMERA),e.abrupt("return",d);case 12:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),vr=function(){var e=D(ue.mark((function e(t){var r,n;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(nr.info("createCustomAudioTrack",t),(r=(t||{}).mediaStreamTrack)instanceof MediaStreamTrack&&"audio"===r.kind){e.next=4;break}throw new i(a.InvaildArgument,"missing audio mediaStreamTrack");case 4:return nr.info("createCustomAudioTrack for",S(r)),r.addEventListener("ended",(function(){return nr.info("custom audio track ended",r.id)})),r.addEventListener("unmute",(function(){return nr.info("custom audio track unmute",r.id)})),r.addEventListener("mute",(function(){return nr.info("custom audio track mute",r.id)})),(n=new or(r)).setSource($.MIC),e.abrupt("return",n);case 11:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();function mr(e,t,r,n){var i=de(G(1&n?e.prototype:e),t,r);return 2&n&&"function"==typeof i?function(e){return i.apply(r,e)}:i}function hr(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 yr,br=t().log,Sr=wt(),kr=function(){function e(t,r,n){var i;return x(this,e),i=hr(this,e,[t,n]),Object.defineProperty(i,"userId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(i,"subscription",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),i.userId=r,i}return B(e,_t),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)}}])}(),Pr=function(){function e(t,r,n){var i;return x(this,e),i=hr(this,e,[t,r,n]),Object.defineProperty(i,"deviceId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),i.deviceId="",i}return B(e,kr),F(e,[{key:"getMediaStreamTrack",value:function(){return Ae.audioSFU?mt(this.sfuStream):mr(e,"getMediaStreamTrack",this,3)([])}},{key:"replaceStream",value:function(e,t){br.info("replaceRemote Audio",e,t),t&&this.isPlaying&&this.stop(),this.replaceTrackInner(null,e)}},{key:"setVolume",value:function(e){br.info("setVolume",e),Sr.getElement(this)[0]&&(Sr.getElement(this)[0].volume=e)}},{key:"getVolume",value:function(){if(br.info("getVolume"),Sr.getElement(this)[0])return Sr.getElement(this)[0].volume}},{key:"setSpeaker",value:function(e){var t=this;return br.info("setSpeaker",e),new Promise((function(r,n){var o,s=Sr.getElement(t)[0];s||n(new i(a.InvaildState,"please playout audio first")),s.setSinkId||n(new i(a.SpeakerSetNotSupported)),null===(o=s.setSinkId)||void 0===o||o.call(s,e).then((function(){t.deviceId=e,r()})).catch((function(e){n(u(e))}))}))}},{key:"getVolumeLevel",value:function(){return ht(this.audioContext,this.analyser,this.sourceNode)}},{key:"play",value:function(){return br.info("remote audio play"),mr(e,"innnerPlay",this,3)([{}])}}])}(),wr=function(){function e(t,r){return x(this,e),hr(this,e,[t,r])}return B(e,kr),F(e,[{key:"play",value:function(t,r){return br.info("remote video play"),mr(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&&mr(e,"innnerPlay",this,3)([{updated:!0}]))}},{key:"getCurrentFrameData",value:function(){return br.info("getCurrentFrameData"),this.isPlaying?gt(Sr.getElement(this)[0]):null}}])}();!function(e){var t,r,n,i,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",(n=e.SyncResponseCode||(e.SyncResponseCode={}))[n.SYNC_OK=0]="SYNC_OK",n[n.SYNC_PART_SUC=10]="SYNC_PART_SUC",n[n.SYNC_DATA_SIZE_LIMITED=11]="SYNC_DATA_SIZE_LIMITED",n[n.SYNC_NOT_SUPPORT_TYPE=12]="SYNC_NOT_SUPPORT_TYPE",n[n.SYNC_NOT_FOUND=13]="SYNC_NOT_FOUND",n[n.SYNC_CHANNEL_NOT_EXIST=14]="SYNC_CHANNEL_NOT_EXIST",n[n.SYNC_INTERNAL_ERROR=15]="SYNC_INTERNAL_ERROR",(i=e.GroupUpdate||(e.GroupUpdate={}))[i.GROUP_UPDATE_AUDIO_STREAM_LOST=0]="GROUP_UPDATE_AUDIO_STREAM_LOST",i[i.GROUP_UPDATE_AUDIO_STREAM_RECOVER=1]="GROUP_UPDATE_AUDIO_STREAM_RECOVER",i[i.GROUP_UPDATE_ADD_PARTICIPANTS=2]="GROUP_UPDATE_ADD_PARTICIPANTS",i[i.GROUP_UPDATE_REMOVE_PARTICIPANTS=3]="GROUP_UPDATE_REMOVE_PARTICIPANTS",i[i.GROUP_UPDATE_SET_PROPERTIES=4]="GROUP_UPDATE_SET_PROPERTIES",i[i.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"}(yr||(yr={}));var Or=P({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:"uint32",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}}}}}}}),Tr=Or.lookupType("signal_msg.Response"),Er=Or.lookupType("signal_msg.BatchNotification"),Ir=Or.lookupType("signal_msg.MediaMessage"),Rr=Or.lookupType("signal_msg.StreamNotification");Or.lookupType("signal_msg.ProgressNotification");var Mr=Or.lookupType("signal_msg.ServerFailoverNotification"),Ar=Or.lookupType("signal_msg.PublishRequest"),_r=Or.lookupType("signal_msg.SoacRequest"),Cr=Or.lookupType("signal_msg.UnpublishRequest"),Dr=Or.lookupType("signal_msg.StreamControlRequest"),xr=Or.lookupType("signal_msg.SubscribeRequest"),jr=Or.lookupType("signal_msg.SetStreamPropertiesRequest"),Lr=Or.lookupType("signal_msg.UnsubscribeRequest"),Nr=Or.lookupType("signal_msg.SubscriptionControlRequest"),Fr=Or.lookupType("signal_msg.CreatePeerConnectionRequest"),Ur=Or.lookupType("signal_msg.ClosePeerConnectionRequest"),Gr=Or.lookupType("signal_msg.BatchPublishRequest"),Vr=Or.lookupType("signal_msg.BatchUnpublishRequest"),Br=Or.lookupType("signal_msg.BatchSubscribeRequest"),qr=Or.lookupType("signal_msg.BatchUnsubscribeRequest"),Hr=Or.lookupType("signal_msg.JoinGroupRequest"),Wr=Or.lookupType("signal_msg.SetGroupPropertiesRequest"),Yr=Or.lookupType("signal_msg.DismissGroupRequest"),Qr=Or.lookupType("signal_msg.LeaveGroupRequest"),Jr=Or.lookupType("signal_msg.SyncDataRequest"),Kr=Or.lookupType("signal_msg.SyncDataByIdsRequest"),zr=Or.lookupType("signal_msg.GroupChangeLog"),$r=Or.lookupType("signal_msg.GroupListChangeLog"),Xr=Or.lookupType("signal_msg.SetParticipantPropertiesRequest"),Zr=Or.lookupType("signal_msg.QueryStreamsVerRequest"),en=Or.lookupType("signal_msg.QueryStreamsRequest");function tn(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(tn=function(){return!!e})()}var rn=function(){function e(t){var r,n,i,a;return x(this,e),n=this,i=G(i=e),r=U(n,tn()?Reflect.construct(i,[],G(n).constructor):i.apply(n,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",Rr.decode(t)):"serverFailover"===e?this.emit("serverFailover",Mr.decode(t)):"media-message"===e?this.emit("media-message",Ir.decode(t)):"group"===e?this.emit("group",zr.decode(t)):"group-list"===e&&this.emit("group-list",$r.decode(t))}},{key:"handleBatchNotifyEvent",value:function(e){var t=this;Er.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=Fr.encode(e).finish();return this.rpc("create-peer-connection",t,e).then((function(e){return e.createPeerConnectionResponse}))}},{key:"closePeerConnection",value:function(e){var t=Ur.encode(e).finish();return this.rpc("close-peer-connection",t,e)}},{key:"batchSubscribe",value:function(e){var t=Br.encode(e).finish();return this.rpc("batch-subscribe",t,e).then((function(e){return e.errorMsg}))}},{key:"setGroupProperties",value:function(e){var t=Wr.encode(e).finish();return this.rpc("set-group-properties",t,e).then((function(e){return e.setGroupPropertiesResponse}))}},{key:"batchUnSubscribe",value:function(e){var t=qr.encode(e).finish();return this.rpc("batch-unsubscribe",t,e)}},{key:"batchPublish",value:function(e){var t=Gr.encode(e).finish();return this.rpc("batch-publish",t,e).then((function(e){return e.errorMsg}))}},{key:"batchUnPublish",value:function(e){var t=Vr.encode(e).finish();return this.rpc("batch-unpublish",t,e)}},{key:"publish",value:function(e){var t=Ar.encode(e).finish();return this.rpc("publish",t,e).then((function(e){return e.publishResponse}))}},{key:"setParticipantProperties",value:function(e){var t=Xr.encode(e).finish();return this.rpc("set-participant-properties",t,e)}},{key:"soac",value:function(e){var t=_r.encode(e).finish();return this.rpc("soac",t,e)}},{key:"unpublish",value:function(e){var t=Cr.encode(e).finish();return this.rpc("unpublish",t,e)}},{key:"streamControl",value:function(e){var t=Dr.encode(e).finish();return this.rpc("stream-control",t,e)}},{key:"setStreamProperties",value:function(e){var t=jr.encode(e).finish();return this.rpc("set-stream-properties",t,e)}},{key:"subscribe",value:function(e){var t=xr.encode(e).finish();return this.rpc("subscribe",t,e).then((function(e){return e.subscribeResponse}))}},{key:"unsubscribe",value:function(e){var t=Lr.encode(e).finish();return this.rpc("unsubscribe",t,e)}},{key:"subscriptionControl",value:function(e){var t=Nr.encode(e).finish();return this.rpc("subscription-control",t,e)}},{key:"getStreamsVer",value:function(e){var t=Zr.encode(e).finish();return this.rpc("query-streams-ver",t,e).then((function(e){return e.queryStreamsVerResponse}))}},{key:"getStreams",value:function(e){var t=en.encode(e).finish();return this.rpc("query-streams",t,e).then((function(e){return e.queryStreamsResponse}))}},{key:"joinGroup",value:function(e){var t=Hr.encode(e).finish();return this.rpc("join-group",t,e).then((function(e){return e.joinGroupResponse}))}},{key:"leaveGroup",value:function(e){var t=Qr.encode(e).finish();return this.rpc("leave-group",t,e).then((function(e){return e.leaveGroupResponse}))}},{key:"dismissGroup",value:function(e){var t=Yr.encode(e).finish();return this.rpc("dismiss-group",t,e).then((function(e){return e.dismissGroupResponse}))}},{key:"syncData",value:function(e){var t=Jr.encode(e).finish();return this.rpc("sync-data",t,e).then((function(e){return e.syncDataResponse}))}},{key:"syncDataByIds",value:function(e){var t=Kr.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,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;return new Promise((function(i,a){var o=r.rpcId++;r.logger.info("rtc rpcId ".concat(o,":").concat(e," param"),n),r.channel.signaling.rpc(e,t,n).then((function(t){var n=Tr.decode(t);n.code===yr.Result.Ok?(r.logger.info("rtc rpcId ".concat(o,":").concat(e," result====>"),n),i(n)):(r.logger.error("rtc rpcId ".concat(o,":").concat(e," error====>"),n),a(n))})).catch((function(t){r.logger.error("rtc rpcId ".concat(o,":").concat(e," error====>"),t),a(t)}))}))}}])}();function nn(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(nn=function(){return!!e})()}var an=function(){function e(){var r,n,i,a;x(this,e),n=this,i=G(i=e),r=U(n,nn()?Reflect.construct(i,[],G(n).constructor):i.apply(n,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 on(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function sn(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?on(Object(r),!0).forEach((function(t){le(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):on(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function cn(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 un(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)?un(e,t):void 0}}(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}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 un(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function ln(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(ln=function(){return!!e})()}var dn={timestamp:0,audioLevel:0,bytesSent:0,packetsSent:0,packetsLost:0,roundTripTime:0},pn={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},fn=function(){function t(e){var r,n,i,a;x(this,t),n=this,i=G(i=t),r=U(n,ln()?Reflect.construct(i,[],G(n).constructor):i.apply(n,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({},pn),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({},dn),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,an),F(t,[{key:"extractVideoMetrics",value:function(t){var r=this,n=Object.assign({source:this.source,trackStats:[]},pn,this.connection.peerConnectionStats);if(n.timestamp=Date.now(),this.track){var i=this.track.getMediaStreamTrack().getSettings(),a=i.width,o=i.height,s=i.frameRate;n.captureFramesPerSecond=s===1/0?0:s||0,n.captureFrameWidth=a||0,n.captureFrameHeight=o||0}var c=new Map,u=$e(n,this.lastVideoSendInfo);return t.forEach((function(t){if(/outboundrtp|outbound-rtp/i.test(t.type)){var i=c.get(t.ssrc)||{},a=r.lastVideoSendInfo.trackStats.get(t.ssrc)||{};if(i.sendFrameWidth=t.frameWidth||0,i.sendFrameHeight=t.frameHeight||0,i.framesSent=t.framesSent||0,i.framesEncoded=t.framesEncoded||0,i.targetBitrate=t.targetBitrate||0,i.qpSum=t.qpSum||0,i.bytesSent=t.bytesSent||0,i.packetsSent=t.packetsSent||0,i.packetsSentForLost=i.packetsSent||0,i.sentTimestamp=t.timestamp||0,i.totalEncodeTime=t.totalEncodeTime||0,i.keyFramesEncoded=t.keyFramesEncoded||0,i.firCount=t.firCount||0,i.pliCount=t.pliCount||0,i.retransmittedBytesSent=t.retransmittedBytesSent||0,i.retransmittedPacketsSent=t.retransmittedPacketsSent||0,i.qualityLimitationReason=t.qualityLimitationReason||"",i.sendFramesPerSecond=t.framesPerSecond||0,i.sendFrameWidth>n.maxSendFrameWidth){if(n.maxSendFrameWidth=i.sendFrameWidth,!i.sendFramesPerSecond&&a){var o=Ze(i.framesSent||i.framesEncoded,a.framesSent||a.framesEncoded);i.sendFramesPerSecond=Math.round(o/u)}if(i.framesEncoded){var s=Ze(i.framesEncoded,null==a?void 0:a.framesEncoded);n.encodeFramesPerSecond=Math.round(s/u)}n.sendFramesPerSecond=i.sendFramesPerSecond}c.set(t.ssrc,i),n.targetBitrate=i.targetBitrate,n.totalBytesSent+=i.bytesSent,n.totalPacketsSent+=i.packetsSent,n.totalEncodedTime+=i.totalEncodeTime,n.totalFramesEncoded+=i.framesEncoded,n.totalFramesSent+=i.framesSent,n.totalQpSum+=i.qpSum,n.maxSendFrameHeight=Math.max(i.sendFrameHeight,n.maxSendFrameHeight),c.set(t.ssrc,i)}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),n.totalFramesEncoded+=l.framesEncoded,n.totalEncodedTime+=l.totalEncodeTime,n.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,n.totalPacketsLost+=d.packetsLost,d.packetsLost===(p.packetsLost||0)&&(d.packetsSentForLost=p.packetsSentForLost||0,d.lostTimestamp=p.lostTimestamp||0),c.set(t.ssrc,d)}})),n.trackStats=c,n}},{key:"getLayersMetricInfo",value:function(e){var t,r=[],n=cn(e.trackStats.entries());try{for(n.s();!(t=n.n()).done;){var i=Ct(t.value,2),a=i[0],o=i[1],s=this.lastVideoSendInfo.trackStats.get(a)||{},c=Ze(o.framesSent,s.framesSent),u=Ze(o.framesEncoded,s.framesEncoded),l=Ze(o.keyFramesEncoded,s.keyFramesEncoded),d=Ze(o.retransmittedBytesSent,s.retransmittedBytesSent),p=Ze(o.retransmittedPacketsSent,s.retransmittedPacketsSent),f=Ze(o.firCount,s.firCount),v=Ze(o.pliCount,s.pliCount),m=Ze(o.packetsSent,s.packetsSent),h=Ze(o.packetsSentForLost,s.packetsSentForLost),g=Ze(o.lostTimestamp,s.lostTimestamp),y=Ze(o.sentTimestamp,s.sentTimestamp),b=Ze(o.packetsLost,s.packetsLost),S=Ze(o.totalEncodeTime,s.totalEncodeTime),k=Ze(o.qpSum,s.qpSum),P=o.qualityLimitationReason,w=o.sendFrameWidth,O=sn(sn({sendFrameHeight:o.sendFrameHeight,sendFrameWidth:w,qualityLimitationReason:P},o),{},{deltaQbSum:k,deltaPacketsSent:m,deltaPacketsLost:b,deltaFramesSent:c,deltaTimestampForLost:g,deltaFramesEncoded:u,deltaKeyFramesEncoded:l,deltaFirCount:f,deltaEncodedTime:S,deltaPliCount:v,deltaTimestampForSent:y,deltaPacketsSentForLost:h,deltaRetransmittedBytesSent:d,deltaRetransmittedPacketsSent:p});r.push(O)}}catch(e){n.e(e)}finally{n.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){var t={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 r=this.getLayersMetricInfo(e),n=r.tracksStatInfo,i=r.totalBytesSent,a=r.totalFramesEncoded,o=r.totalEncodedTime;n.length>1&&(t.attr_stream_options+="sim:".concat(n.length,"/"));for(var s={attr_encoded_framerate_sim:[],attr_enc_key_frames_sim:[],attr_fir_count_sim:[],attr_pli_count_sim:[],attr_quality_limitation_reason_sim:[],attr_retx_bytes_sim:[],attr_retx_packets_sim:[],attr_resolution_sim:[],attr_encode_qp_sim:[]},c=[],u=0,l=Ze(e.timestamp,this.lastVideoSendInfo.timestamp),d=!0,p=0;p<n.length;p++){var f=n[p];s.attr_enc_key_frames_sim.push(f.deltaKeyFramesEncoded),s.attr_fir_count_sim.push(f.deltaFirCount),s.attr_pli_count_sim.push(f.deltaPliCount),s.attr_quality_limitation_reason_sim.push(f.qualityLimitationReason),s.attr_retx_bytes_sim.push(f.deltaRetransmittedBytesSent),s.attr_retx_packets_sim.push(f.deltaRetransmittedPacketsSent),s.attr_resolution_sim.push({count:f.deltaFramesSent||f.deltaFramesEncoded,index:p,resolution:"".concat(f.sendFrameWidth,"*").concat(f.sendFrameHeight)});var v=f.deltaFramesEncoded||f.deltaFramesSent;d&&(d=0===v),s.attr_encoded_framerate_sim.push(le({},p,Math.round(1e3*v/l))),s.attr_encode_qp_sim.push(le({},p,Math.round((f.deltaQbSum||0)/(v||Number.EPSILON))));var m=f.deltaTimestampForLost,h=f.deltaTimestampForSent,g=f.deltaPacketsLost,y=f.deltaPacketsSentForLost;if(g&&y&&m&&h){var b=g/m/(y/h);c.push(Math.max(Math.min(b,1),0))}}for(var S=0,k=Object.entries(s);S<k.length;S++){var P=Ct(k[S],2),w=P[0],O=P[1];t[w]=O.length?JSON.stringify(O):""}var T=0,E=Ze(a,this.lastVideoSendInfo.totalFramesEncoded),I=Ze(o,this.lastVideoSendInfo.totalEncodedTime);E&&I&&(T=Math.round(1e3*I/E));var R=Ze(i,this.lastVideoSendInfo.totalBytesSent);t.attr_duration_ms=l,t.attr_bitrate=l>0?Math.min(Math.round(8*R*1e3/l),2e7):0,t.attr_enc_average_elapsed_ms=T,this.videoSendReport=t,d&&(t.attr_resolution_sim="null",t.attr_encoded_framerate_sim="null"),this.emit("video-send-stream",Object.assign({},this.videoSendReport)),c.length&&(u=Math.min(Math.round(c.reduce((function(e,t){return t+e}),0)/c.length*255),255)),this.bweReport={attr_duration_ms:l,attr_rtt:Math.round(e.roundTripTime||0),attr_reported_bitrate:Math.max(0,Math.min(e.availableOutgoingBitrate||0,2e7)),attr_lossrate:u},this.emit("bwe",Object.assign({},this.bweReport))}this.lastVideoSendInfo=e}},{key:"extractAudioMetrics",value:function(e){var t=this,r=Object.assign({},dn,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 n=t.track.getMediaStreamTrack().getSettings(),i=n.channelCount,a=n.sampleRate;r.channels=i,r.sampleRate=a}})),r}},{key:"makeAudioReport",value:function(e){this.lastAudioSendInfo.timestamp>0&&e.timestamp&&(this.audioSendReport={attr_duration_ms:Math.round(Ze(e.timestamp,this.lastAudioSendInfo.timestamp)),attr_bitrate:Math.round(8*Ze(e.bytesSent,this.lastAudioSendInfo.bytesSent)*1e3/Ze(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)}))}},{key:"getStats",value:function(){var e,t,r=this,n=this.tranceiver,o=this.pc;if(!o||null==n||null===(e=n.sender)||void 0===e||!e.track)return Promise.resolve({});if(null==o||!o.getStats)throw new i(a.BrowserNotSupported,"getStats is not supported");return null===(t=this.pc.getStats(n.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)}}))}}])}();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 mn(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)?mn(e,t):void 0}}(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}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 mn(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function hn(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(hn=function(){return!!e})()}var gn={timestamp:0,packetsLost:0,packetsReceived:0,bytesReceived:0,audioLevel:0,decodingNormal:0,roundTripTime:0},yn={packetsLost:0,packetsReceived:0,framesDropped:0,frameHeight:0,frameWidth:0,framesDecoded:0,framesReceived:0,timestamp:0,framesPerSecond:0,bytesReceived:0,roundTripTime:0},bn=function(){function e(t){var r,n,i,a,o;x(this,e),i=this,a=G(a=e),n=U(i,hn()?Reflect.construct(a,[],G(i).constructor):a.apply(i,o)),Object.defineProperty(n,"videoReceiveReport",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"audioReceiveReport",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"lastVideoReceiveInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"lastAudioReceiveInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"source",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"firstReportFlag",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"firstReportTimer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"pc",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"tranceiver",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"tranceivers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"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 n.connection=s,n.pc=s.pc,n.tranceiver=c,n.tranceivers=p,n.firstReportTimer=d((function(){n.getStats().then((function(e){n.makeFirstReport(e)}))}),400,"interval"),n.source="mcu"!==u&&(null===(r=l.media)||void 0===r||null===(r=r.video)||void 0===r?void 0:r.source),n.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},n.lastVideoReceiveInfo=Object.assign({},yn),n.firstReportFlag={audioFirstPacket:!1,videoFirstPacket:!1,audioFirstFrame:!1},n.lastAudioReceiveInfo=Object.assign({},gn),n.audioReceiveReport={attr_duration_ms:0,attr_delay_estimate:0,attr_bitrate:0},n}return B(e,an),F(e,[{key:"extractAudioMetrics",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=Object.assign({},gn,this.connection.peerConnectionStats);return n.timestamp=Date.now(),e.forEach((function(e){e.isRemote||(/inboundrtp|inbound-rtp/i.test(e.type)?(n.bytesReceived=e.bytesReceived||0,n.packetsReceived=e.packetsReceived||0,r||(n.packetsLost===(t.lastAudioReceiveInfo.packetsLost||0)?n.packetsReceivedForLost=t.lastAudioReceiveInfo.packetsReceived||0:n.packetsReceivedForLost=n.packetsReceived||0),n.packetsLost=e.packetsLost||0,n.audioLevel=e.audioLevel||0,n.decodingNormal=Number(e.googDecodingNormal||0)):/track/i.test(e.type)&&(n.audioLevel=e.audioLevel))})),n}},{key:"extractMultipleAudioMetrics",value:function(e){var t=this,r=e.map((function(e){return t.extractAudioMetrics(e,!0)})),n=Object.assign({},gn,this.connection.peerConnectionStats);n.timestamp=Date.now();var i,a=vn(r);try{for(a.s();!(i=a.n()).done;){var o=i.value;n.bytesReceived+=o.bytesReceived||0,n.packetsLost+=o.packetsLost||0,n.packetsReceived+=o.packetsReceived||0,n.audioLevel=Math.max(n.audioLevel,o.audioLevel||0),n.decodingNormal=Math.max(n.decodingNormal,o.decodingNormal||0)}}catch(e){a.e(e)}finally{a.f()}return n.packetsLost===(this.lastAudioReceiveInfo.packetsLost||0)?n.packetsReceivedForLost=this.lastAudioReceiveInfo.packetsReceived||0:n.packetsReceivedForLost=n.packetsReceived||0,n}},{key:"extractVideoMetrics",value:function(e){var t=this,r=Object.assign({source:this.source},yn,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 n;null!==(n=e.mimeType)&&void 0!==n&&n.includes("video")&&(r.sdpFmtpLine=e.sdpFmtpLine)}})),r}},{key:"makeAudioReport",value:function(e){if(this.lastAudioReceiveInfo.timestamp>0&&e.timestamp){var t=Math.round(Ze(e.timestamp,this.lastAudioReceiveInfo.timestamp)),r=Ze(e.packetsLost,this.lastAudioReceiveInfo.packetsLost),n=Ze(e.packetsReceivedForLost,this.lastAudioReceiveInfo.packetsReceivedForLost),i=Ze(e.bytesReceived,this.lastAudioReceiveInfo.bytesReceived),a=0;try{a=Math.max(r/n,0)}catch(e){a=0}isNaN(a)&&(a=0),this.audioReceiveReport={attr_delay_estimate:0,attr_duration_ms:t,attr_bitrate:Math.round(8*i/(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,n=t.pliCount,i=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(i>0&&e.timestamp){var f=Ze(e.timestamp,i);if(e.bytesReceived-u>=0){var v=Ze(e.packetsLost,o),m=Ze(e.packetsReceivedForLost,l),h=0;try{h=Math.round(v/m*255)}catch(e){h=0}isNaN(h)&&(h=0);var g=Ze(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:Ze(e.framesDropped,c),attr_fir_count:Ze(e.firCount,r),attr_freeze_count:Ze(e.freezeCount,a),attr_pli_count:Ze(e.pliCount,n),attr_retx_bytes:Ze(e.retransmittedBytesReceived,d),attr_retx_packets:Ze(e.retransmittedPacketsReceived,p),attr_bitrate:Math.round(8*Ze(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)},e.frameWidth&&e.frameHeight&&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,n=t.audioFirstPacket,i=t.videoFirstPacket,a=e.audioMetrics,o=e.videoMetrics;if(a&&o){if((r||-1===(null==a?void 0:a.decodingNormal))&&n&&i)return void(this.firstReportTimer&&(m(this.firstReportTimer,"interval"),this.firstReportTimer=null))}else if(a){if((r||-1===(null==a?void 0:a.decodingNormal))&&n)return void(this.firstReportTimer&&(m(this.firstReportTimer,"interval"),this.firstReportTimer=null))}else if(o&&i)return void(this.firstReportTimer&&(m(this.firstReportTimer,"interval"),this.firstReportTimer=null));null!=a&&a.packetsReceived&&!n&&(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&&!i&&(this.emit("video-first-packet"),this.firstReportFlag.videoFirstPacket=!0)}},{key:"getStats",value:function(){var e,t=this,r=this.tranceiver,n=this.tranceivers,o=this.pc;if(!(o&&(null!=n&&n.length||null!=r&&r.receiver.track)))return Promise.resolve({});if(null==o||!o.getStats)throw new i(a.BrowserNotSupported,"getStats is not supported");if(n&&n.length){var s=n.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,n;(t="stop",r=this,"function"==typeof(n=de(G(e.prototype),t,r))?function(e){return n.apply(r,e)}:n)([]),this.firstReportTimer&&(m(this.firstReportTimer,"interval"),this.firstReportTimer=null)}}])}();function Sn(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 kn(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)?kn(e,t):void 0}}(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}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 kn(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function Pn(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function wn(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Pn(Object(r),!0).forEach((function(t){le(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Pn(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function On(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(On=function(){return!!e})()}var Tn=t().log,En=function(){function e(t){var r,n,i,a;x(this,e),n=this,i=G(i=e),r=U(n,On()?Reflect.construct(i,[],G(n).constructor):i.apply(n,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,"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});var o=t.connection,s=t.stream,c=t.uid,u=t.resolutionInfo,l=t.userConfigResolution;return r.connection=o,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("[subscription]"),r.connection.once("ended",(function(){r.clear()})),r.videoStatsMap=new Map,r.audioStatsMap=new Map,r.metricsMap=new Map,r.state=ie.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,n=this;if(Ae.audioSFU&&"audio"===e.kind){var i,a=null===(i=this.transceivers)||void 0===i?void 0:i.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)&&!this._stream&&(this._stream=t)}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)){this._stream=new MediaStream([e]);var o=document.createElement("video");o.onloadeddata=function(){o.srcObject=null,n.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===ie.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=In(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(),this.connection.reset()}},{key:"clear",value:function(){this.state!==ie.End&&(this.reset(),this.state=ie.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 bn(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 bn(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.reporter.log.info("video-first-frame sessionId=".concat(this.id))}},{key:"handleMetrics",value:function(e,t){var r=e.audioMetrics,n=e.videoMetrics;if(r){var i,a=(null===(i=this.metricsMap.get(t))||void 0===i?void 0:i.audioMetrics)||{},o=$e(r,a),s=Ze(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(n){var u,l,d=(null===(u=this.metricsMap.get(t))||void 0===u?void 0:u.videoMetrics)||{},p=$e(n,d),f=Ze(n.bytesReceived,d.bytesReceived),v={codec:this.connection.peerConnectionStats.videoCodec||n.codec,receiveResolution:{width:n.frameWidth,height:n.frameHeight},receiveBitrate:8*f/p,decodeFrameRate:Math.round(Ze(null==n?void 0:n.framesDecoded,d.framesDecoded)/p),receiveFrameRate:Math.round(Ze(null==n?void 0:n.framesReceived,d.framesReceived)/p),receiveFramesDropped:Ze(null==n?void 0:n.framesDropped,d.framesDropped),receiveBytes:n.bytesReceived,receivePackets:n.packetsReceived,receivePacketsLost:n.packetsLost,rtt:n.roundTripTime,timestamp:n.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)===X.CAMERA&&f>3e4&&0===v.decodeFrameRate;"network"===t&&(this.stucked&&h?m&&v.receiveFramesDropped>0&&!Ae.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(wn({sessionId:e.id,remoteStreamId:e.stream.id,remoteUserId:e.uid},t))})),this.monitor.on("audio-recv-stream",(function(t){e.reporter.metric.audioRecvStream(wn({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.reporter.log.info("video-first-packet sessionId=".concat(e.id))})),this.monitor.on("video-recv-stream",(function(t){e.reporter.metric.videoRecvStream(wn({sessionId:e.id,remoteStreamId:e.stream.id,remoteUserId:e.uid},t))})))}}])}(),In=function(e,t){if(!t)return null;var r=t.resolutionLevel,n=e.media.video.highestResolutionLevel;if(n&&n<r){var i=Ut(n);return Ft(i,Ce(e))}return t},Rn=function(e){var t,r={audio:[],video:[]},n=Sn(e);try{for(n.s();!(t=n.n()).done;){var i=t.value,a=i.stream,o=i.error,s=i.resolutionInfo;if(o)Tn.error("skip subscribe",a,o);else{var c=Mn(a,s),u=c.audio,l=c.video;if(u){var d=wn(wn({},u),{},{trackId:a.media.audio.trackId,ssrcGroup:[{ssrc:Bn()}]});Ae.audioSFU&&(d.ssrcGroup=new Array(6).fill(0).map((function(){return{ssrc:Bn()}}))),r.audio.push(d)}else if(l){var p,f;r.video.push(wn(wn({},l),{},{trackId:null===(p=a.media)||void 0===p||null===(p=p.video)||void 0===p?void 0:p.trackId,ssrcGroup:null===(f=a.media)||void 0===f||null===(f=f.video)||void 0===f?void 0:f.ssrcGroup,subSsrcGroup:{ssrc:Bn(),rtxSsrc:Bn()}}))}}}}catch(e){n.e(e)}finally{n.f()}return r},Mn=function(e,t){var r=e.id,n=e.media,i=n.audio,a=n.video,o={};if(i)o.audio={from:r};else if(a){var s;o.video={from:r,format:null===(s=n.video)||void 0===s?void 0:s.format,parameters:In(e,t)}}return o},An=function(){var e=D(ue.mark((function e(t,r){var n,i,a,o,s;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=r.connection,i=[],a={},t.forEach((function(e,t){var n=e.stream,o=e.error,s=e.uid,c=e.resolutionInfo;if(i[t]={stream:n,error:o,uid:s,resolutionInfo:c},!o){var u=new En(wn(wn({},r),{},{uid:s,userConfigResolution:c,resolutionInfo:c&&In(n,c),stream:n}));a[n.id]=u}})),s=new Promise((function(e,r){o=function(){var o=D(ue.mark((function o(){var s;return ue.wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return s=Rn(t),o.next=3,Kn(n,s,a);case 3:n.rtcSignaling.batchSubscribe({connectionId:n.id,propertiesJsonStr:JSON.stringify({opusExtendInbandFec:!0,type:Ae.audioSFU?"selective":"mixed"}),supportTemporalLayer:!1,media:s}).then(function(){var r=D(ue.mark((function r(n){var o,s,c,u,l;return ue.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(o=n.detailStatus,"ok"===(s=n.globalStatus)){r.next=4;break}return i.forEach((function(e){e.error=e.error||De(e.stream,s)})),r.abrupt("return",e(i));case 4:c=Sn(o),r.prev=5,l=ue.mark((function e(){var r,n,o,s,c,l;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=u.value,n=r.id,o=r.msg,s=r.origin,c=a[s.id],l=t.findIndex((function(e){return e.stream.id===s.id})),"ok"===o&&c?(c.id=n,i[l].id=n,i[l].subscription=c):"ok"!==o&&(i[l].error=De(c.stream,o));case 4:case"end":return e.stop()}}),e)})),c.s();case 8:if((u=c.n()).done){r.next=12;break}return r.delegateYield(l(),"t0",10);case 10:r.next=8;break;case 12:r.next=17;break;case 14:r.prev=14,r.t1=r.catch(5),c.e(r.t1);case 17:return r.prev=17,c.f(),r.finish(17);case 20:e(i);case 21:case"end":return r.stop()}}),r,null,[[5,14,17,20]])})));return function(e){return r.apply(this,arguments)}}()).catch(r);case 4:case"end":return o.stop()}}),o)})));return function(){return o.apply(this,arguments)}}()})),n.addTask(o),e.abrupt("return",s);case 7:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),_n=function(){var e=D(ue.mark((function e(t,r){var n,i,a;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=r.connection,a=new Promise((function(e,r){n=function(){var n=D(ue.mark((function n(){var a,o;return ue.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return a=t.filter((function(e){var t;return!(null===(t=e.stream)||void 0===t||null===(t=t.media)||void 0===t||!t.audio)})).map((function(e){return e.id})),o=t.filter((function(e){var t;return!(null===(t=e.stream)||void 0===t||null===(t=t.media)||void 0===t||!t.video)})).map((function(e){return e.id})),n.next=4,zn(i,t);case 4:i.rtcSignaling.batchUnSubscribe({connectionId:i.id,audio:a,video:o}).then((function(){t.forEach((function(e){e.clear()})),e(void 0)})).catch(r);case 5:case"end":return n.stop()}}),n)})));return function(){return n.apply(this,arguments)}}()})),r.connection.addTask(n),e.abrupt("return",a);case 4:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}();function Cn(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Dn(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Cn(Object(r),!0).forEach((function(t){le(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Cn(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 jn(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)?jn(e,t):void 0}}(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}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 jn(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var Ln=t().log,Nn={motion:"maintain-framerate",detail:"maintain-resolution",balanced:"balanced"},Fn=0,Un=0,Gn=0,Vn=new Set,Bn=function(){if(0==Fn||0==Un)return 0;var e=Math.min(Un+1,1e4);do{var t=Fn+(Un&Gn++);if(0!=t&&!Vn.has(t))return t}while(--e>0);return 0},qn=function(t,r){var n,i;if((null===(n=t.rids)||void 0===n?void 0:n.length)>1)return e.isFirefox()&&(r=Jn(r)),r.rids=null===(i=t.rids)||void 0===i?void 0:i.map((function(e){return{direction:"recv",id:e.id}})),r.simulcast={dir1:"recv",list1:t.simulcast.list1},r},Hn=function(){var e=D(ue.mark((function e(t){var r,n,i,a,o,s,c;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.connection,n=t.transceiver,i=r.remoteSDP,a=r.pc,e.next=4,a.createOffer();case 4:return o=e.sent,e.next=7,a.setLocalDescription(o);case 7:return r.localSDP=A.parse(o.sdp),s=r.localSDP.media.find((function(e){return e.mid==n.mid})),c=i.media.find((function(e){return e.mid==n.mid})),qn(s,c),e.next=13,a.setRemoteDescription({type:"answer",sdp:A.write(i)});case 13:r.remoteSDP=i;case 14:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),Wn=function(){var t=D(ue.mark((function t(r,n){var i,a,o,s,c,u,l,d,p,f;return ue.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=r.pc,a=r.idToTransceiverMap,o=r.remoteSDP,s=new MediaStream(n.map((function(e){return e.getMediaStreamTrack()}))),c=n.map((function(e){var t={direction:"sendonly"};if(e instanceof ar){var n=zt(e).encodings;t.sendEncodings=n.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 i=r.pc.addTransceiver(e.getMediaStreamTrack()||e.trackMediaType,t);if(e instanceof ar&&i.sender.setParameters){var o=e.optimizationMode,s=i.sender.getParameters();s.degradationPreference=Nn[o]||"balanced";var c=parseFloat(new URLSearchParams(location.search).get("times"))||0;c&&(Ln.info("adjustUplinkSDPWhenPublish maxBitrate times",c),s.encodings.forEach((function(e){if(e.maxBitrate){var t=e.maxBitrate;e.maxBitrate=e.maxBitrate*c,Ln.info("adjustUplinkSDPWhenPublish update maxBitrate",t,e.maxBitrate,e)}}))),Ln.info("adjustUplinkSDPWhenPublish setParameters",s),i.sender.setParameters(s)}return a.set(e.getTrackId(),i),i})),t.next=5,i.createOffer();case 5:return u=t.sent,l=A.parse(u.sdp),t.next=9,i.setLocalDescription(u);case 9:r.localSDP=l,o.groups[0].mids=r.localSDP.groups[0].mids,d=xn(c),t.prev=12,f=ue.mark((function t(){var r,n,i,a,s,c,u;return ue.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:r=p.value,n=o.media.find((function(e){return e.type===r.sender.track.kind})),e.isFirefox()&&"video"===n.type&&(delete n.rids,delete n.simulcast),i=Dn(Dn({},n),{},{ext:Ee(n.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"),Ln.info("startkbs, minkbs",s,c),i.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&&Ae.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(";")}})),qn(a,i),o.media.push(i);case 12:case"end":return t.stop()}}),t)})),d.s();case 15:if((p=d.n()).done){t.next=19;break}return t.delegateYield(f(),"t0",17);case 17:t.next=15;break;case 19:t.next=24;break;case 21:t.prev=21,t.t1=t.catch(12),d.e(t.t1);case 24:return t.prev=24,d.f(),t.finish(24);case 27:return window.remoteSDP=o,t.next=30,i.setRemoteDescription({type:"answer",sdp:A.write(o)});case 30:return r.remoteSDP=o,t.abrupt("return",{localSDP:r.localSDP,stream:s});case 32:case"end":return t.stop()}}),t,null,[[12,21,24,27]])})));return function(e,r){return t.apply(this,arguments)}}(),Yn=function(){var e=D(ue.mark((function e(t,r){var n,i,a,o;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.pc,i=t.remoteSDP,r.map((function(e){return e.transceiver})).forEach((function(e){if(e){n.removeTrack(e.sender);var t=i.media.find((function(t){return t.mid==(null==e?void 0:e.mid)}));e.direction="inactive",t.direction="inactive"}})),e.next=5,n.createOffer();case 5:return a=e.sent,o=A.parse(a.sdp),e.next=9,n.setLocalDescription(a);case 9:return t.localSDP=o,i.groups[0].mids=o.groups[0].mids,t.remoteSDP=i,e.next=14,n.setRemoteDescription({type:"answer",sdp:A.write(i)});case 14:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),Qn=function(e,t,r){var n=e.ssrc,i=e.rtxSsrc;!function(e){e.ssrc&&Vn.add(e.ssrc),e.rtxSsrc&&Vn.add(e.rtxSsrc)}(e),t.ssrcGroups=[],i&&t.ssrcGroups.push({semantics:"FID",ssrcs:"".concat(n," ").concat(i)}),t.ssrcs=[],[n,i].filter((function(e){return void 0!==e})).forEach((function(e){t.ssrcs.push({attribute:"msid",value:"".concat(r," v").concat(n),id:e},{attribute:"cname",value:b(),id:e})}))},Jn=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},Kn=function(){var e=D(ue.mark((function e(t,r,n){var i,a,o,s,c,u,l,d,p,f,v,m,h,g,y,b,S,k,P,w,O,T,E,I,R,M,_,C;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=t.pc,s=t.idToTransceiverMap,c=t.remoteSDP,u=t.idToTransceiversMap,l=c.media.find((function(e){return"video"===e.type})),d=c.media.find((function(e){return"audio"===e.type})),p=null===(i=l.ssrcs)||void 0===i?void 0:i.find((function(e){return"msid"===e.attribute})).value.split(" ")[0],null!==(a=r.audio)&&void 0!==a&&a[0])if(v=null===(f=r.audio)||void 0===f?void 0:f[0],m=v.from,Ae.audioSFU){if(u.get(m)){h=xn(u.get(m));try{for(h.s();!(g=h.n()).done;)g.value.direction="recvonly"}catch(e){h.e(e)}finally{h.f()}y=c.media.filter((function(e){return"audio"===e.type})),b=xn(y);try{for(b.s();!(S=b.n()).done;)S.value.direction="sendonly"}catch(e){b.e(e)}finally{b.f()}}else t.mcuAudioTranceivers=new Array(6).fill(0).map((function(e){return t.pc.addTransceiver("audio",{direction:"recvonly"})})),u.set(m,t.mcuAudioTranceivers);n[m].addTransceivers(u.get(m))}else s.get(m)||s.set(m,t.mcuAudioTranceiver),s.get(m).direction="recvonly",d.direction="sendonly",n[m].addTransceiver(s.get(m));k=xn(r.video),e.prev=6,w=ue.mark((function e(){var t,r,i,a;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=P.value,r=t.from,i=s.get(r)){e.next=7;break}s.set(r,o.addTransceiver("video",{direction:"recvonly"})),e.next=19;break;case 7:if("inactive"===i.direction){e.next=18;break}return i.direction="inactive",e.next=11,o.createOffer();case 11:return a=e.sent,e.next=14,o.setLocalDescription(a);case 14:return c.media.find((function(e){return e.mid==i.mid})).direction="inactive",e.next=18,o.setRemoteDescription({type:"answer",sdp:A.write(c)});case 18:s.get(r).direction="recvonly";case 19:n[r].addTransceiver(s.get(r));case 20:case"end":return e.stop()}}),e)})),k.s();case 9:if((P=k.n()).done){e.next=13;break}return e.delegateYield(w(),"t0",11);case 11:e.next=9;break;case 13:e.next=18;break;case 15:e.prev=15,e.t1=e.catch(6),k.e(e.t1);case 18:return e.prev=18,k.f(),e.finish(18);case 21:return e.next=23,o.createOffer();case 23:return O=e.sent,T=A.parse(O.sdp),c.groups[0].mids=T.groups[0].mids,e.next=28,o.setLocalDescription(O);case 28:t.localSDP=T,Ae.audioSFU&&r.audio[0]&&(E=r.audio[0],I=E.ssrcGroup,R=E.from,u.get(R).forEach((function(e,t){var r,n=null===(r=I[t])||void 0===r?void 0:r.ssrc,i=c.media.find((function(t){var r=t.mid,n=t.type;return r==e.mid&&"audio"===n}));i||(i=Dn(Dn({},d),{},{mid:e.mid}),c.media.push(i)),i.ssrcs=$n(n,p),i.direction="sendonly"}))),M=xn(r.video),e.prev=31,C=ue.mark((function e(){var t,r,i,a,o;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=_.value,r=t.from,i=t.subSsrcGroup,a=s.get(r),(o=c.media.find((function(e){var t=e.mid,r=e.type;return t==a.mid&&"video"===r})))||((o=Dn({},l)).mid=a.mid,c.media.push(o)),o.direction="sendonly",n[r].ssrc=null==i?void 0:i.ssrc,Qn(i,o,p);case 8:case"end":return e.stop()}}),e)})),M.s();case 34:if((_=M.n()).done){e.next=38;break}return e.delegateYield(C(),"t2",36);case 36:e.next=34;break;case 38:e.next=43;break;case 40:e.prev=40,e.t3=e.catch(31),M.e(e.t3);case 43:return e.prev=43,M.f(),e.finish(43);case 46:return t.remoteSDP=c,e.next=49,o.setRemoteDescription({type:"answer",sdp:A.write(c)});case 49:case"end":return e.stop()}}),e,null,[[6,15,18,21],[31,40,43,46]])})));return function(t,r,n){return e.apply(this,arguments)}}(),zn=function(){var e=D(ue.mark((function e(t,r){var n,i,a,o,s,c,u,l,d,p,f,v;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.pc,i=t.remoteSDP,a=[],o=xn(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,Ee(l))}catch(e){o.e(e)}finally{o.f()}return a.forEach((function(e){e.direction="inactive"})),e.next=7,n.createOffer();case 7:return d=e.sent,e.next=10,n.setLocalDescription(d);case 10:t.localSDP=A.parse(d.sdp),p=ue.mark((function e(){var t;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=v[f],i.media.find((function(e){return e.mid==t.mid})).direction="inactive";case 3:case"end":return e.stop()}}),e)})),f=0,v=a;case 13:if(!(f<v.length)){e.next=18;break}return e.delegateYield(p(),"t0",15);case 15:f++,e.next=13;break;case 18:return t.remoteSDP=i,e.next=21,n.setRemoteDescription({type:"answer",sdp:A.write(i)});case 21:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),$n=function(e,t){return[{attribute:"msid",value:"".concat(t," v").concat(e),id:e},{attribute:"cname",value:b(),id:e}]},Xn=function(t,r,n){var i=r.direction,a=r.remoteSDP,o=A.parse(t);o.media.forEach((function(e){e.candidates.forEach((function(e){e.generation=0,e["network-cost"]=w(e.ip)?10:1e3}))})),n&&(o=function(e,t){var r=t.media.find((function(e){return"audio"===e.type})),n=t.media.find((function(e){return"video"===e.type}));return e.media.forEach((function(t,i){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[i]=Dn(Dn({},r),{},{mid:a,ssrcs:u}):"video"===t.type&&(e.media[i]=Dn(Dn({},n),{},{mid:a,ssrcGroups:s,ssrcs:u}),d.length&&(e.media[i].rids=d,e.media[i].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"===i&&e.isFirefox()&&Ae.simulcast&&(s.ext=s.ext.filter((function(e){return!e.uri.includes("rtp-stream-id")}))),!s.ssrcs&&"downlink"===i){var c=Bn(),u=o.msidSemantic.token;s.ssrcs=$n(c,u)}return r.remoteSDP=o,o},Zn=function(e){var t=e.localSDP,r=e.remoteSDP,n=e.sessionManager,i=e.mcuAudioTranceiver,a=e.pc,o=e.idToTransceiverMap,s=e.idToTransceiversMap,c=e.direction,u=t.media.slice(2),l=Ee(n.sessions.values());if("downlink"===c){var d=r.media.slice(2),p=l.filter((function(e){return e instanceof En})),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&&!Ae.audioSFU&&(o.set(f.id,i),f.addTransceiver(i));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})),n=p.find((function(e){return(null==e?void 0:e.ssrc)===(null==r?void 0:r.ssrcs[0].id)})),i=a.addTransceiver(e.type,t);"recvonly"===e.direction&&("video"===e.type&&n?(o.set(n.stream.id,i),n.addTransceiver(i)):"audio"===e.type&&v.push(i))})),v.length&&f&&(e.mcuAudioTranceivers=v,s.set(f.id,v),f.addTransceivers(v))}else{var m=l.filter((function(e){return e instanceof ui}));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 n=r.tracks[0],i=(null==n?void 0:n.getMediaStreamTrack())||(null==n?void 0:n.trackMediaType);if(n instanceof ar){var s=zt(n).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(i,t);o.set(n.getTrackId(),c),r.addTransceiver(c)}else a.addTransceiver(e.type,t)}))}},ei=function(e,t){if(e){var r,n=e.fmtp,i=e.payloads,a=e.rtp,o=e.rtcpFb,s=[],c={},u=xn(n);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=xn(f);try{for(m.s();!(v=m.n()).done;){var h=Ct(v.value.split("="),2),g=h[0],y=h[1];c[p][g]=y}}catch(e){m.e(e)}finally{m.f()}}}catch(e){u.e(e)}finally{u.f()}for(var b in c){var S=c[b];(t(S)||s.includes(+S.apt))&&s.push(parseInt(b))}if(s.length){for(var k=n.length-1;k>=0;k--){var P=n[k].payload;s.includes(P)&&n.splice(k,1)}for(var w=a.length-1;w>=0;w--)s.includes(a[w].payload)&&a.splice(w,1);for(var O=o.length-1;O>=0;O--)s.includes(o[O].payload)&&o.splice(O,1);e.payloads=i.split(" ").map(Number).filter((function(e){return!s.includes(e)})).join(" ")}}},ti=function(e,t){var r=e.media.find((function(e){return"video"===e.type}));return ei(r,(function(e){var r;return null===(r=e["profile-level-id"])||void 0===r?void 0:r.includes(t)})),e},ri=function(e){var t=e.media.find((function(e){return"video"===e.type}));return ei(t,(function(e){return e["profile-level-id"]&&!e["packetization-mode"]})),e};function ni(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ii(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ni(Object(r),!0).forEach((function(t){le(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ni(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function ai(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 oi(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)?oi(e,t):void 0}}(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}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 oi(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function si(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(si=function(){return!!e})()}var ci=t().getLoggerWithPrefix("[publication]"),ui=function(){function e(t){var r,n,i,a;x(this,e),n=this,i=G(i=e),r=U(n,si()?Reflect.construct(i,[],G(n).constructor):i.apply(n,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,"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("[publication]"),r.state=ie.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),r.applyOptions=rt(r.applyOptions,100,!1),u.forEach((function(e){e.on(be,r.handleTracEvent)})),r.encodings=zt(u[0]).encodings,r.state=ie.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!==ie.Processing?Promise.resolve():pi([this],{connection:this.connection}).catch((function(t){e.clear(),e.logger.warn("negative ack for unpublish, ".concat(g(t)))}))}},{key:"mute",value:function(){if(this.tracks.length&&this.state===ie.Processing){var e=this.tracks[0].trackMediaType;return this.reporter.trace.localControl(e,!0,this.id),this.rtcSignaling.streamControl({streamId:this.id,operation:"pause",data:e})}}},{key:"unmute",value:function(){if(this.tracks.length&&this.state===ie.Processing){var e=this.tracks[0].trackMediaType;return this.reporter.trace.localControl(e,!1,this.id),this.rtcSignaling.streamControl({streamId:this.id,operation:"play",data:e})}}},{key:"initInner",value:function(e){this.id=e;var t=this.tracks[0];this.addTransceiver(this.connection.idToTransceiverMap.get(t.getTrackId())),"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,n=this.transceiver,i=e.getMediaStreamTrack().getSettings(),a=i.width,o=i.height,s=Kt(a,o);this.rtcSignaling.streamControl({streamId:this.id,operation:"updateResolution",highestResolutionLevel:s});var c=function(e,t){var r=Wt(e,t),n=function(n){var i=Ct(Yt(e,t,n,r),2);i[0];var a=1/(i[1]/t);return Math.max(a,1)};return{ld:n(Tt.LD),sd:n(Tt.SD),fhd:n(r)}}(a,o);r.addTask(D(ue.mark((function e(){var r;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t.logger.info("scales",c),(r=n.sender.getParameters()).encodings.forEach((function(e){e.scaleResolutionDownBy=c[e.rid]})),t.logger.info("handleRepublish setParameters",r),e.abrupt("return",n.sender.setParameters(r).then((function(){console.log(n.sender.getParameters().encodings)})));case 5:case"end":return e.stop()}}),e)}))))}},{key:"handleTracEvent",value:function(e,t){var r,n=this,i={replace:function(){return n.replaceTrack(t.getMediaStreamTrack())},mute:function(){return n.mute()},unmute:function(){return n.unmute()},republish:function(){Ae.republish?n.handleRepublish(t):n.stop().then((function(){n.connection.sessionManager.serviceManager.client.publish([t])}))},stop:function(){return n.stop()},optimizationMode:function(){return n.updateOptionzationMode()},mirror:function(){return n.handleMirror(t)}};return null===(r=i[e])||void 0===r?void 0:r.call(i)}},{key:"clear",value:function(){var e=this;this.state!==ie.End&&(this.monitor&&(this.monitor.stop(),this.monitor.removeAllListeners(),this.monitor=null),this.tracks.forEach((function(t){t.off(be,e.handleTracEvent)})),this.tracks=[],this.metricsMap.clear(),this.audioStatsMap.clear(),this.videoStatsMap.clear(),this.connection.reset(),this.state=ie.End,this.emit("ended"))}},{key:"applyOptions",value:function(e){var t=this,r=e[0],n=r.index,i=r.bitrate;if(this.logger.debug("applyOptions",e),!(n<this.feedbackIndex||this.state!==ie.Processing)){this.feedbackIndex=n;var a=this.transceiver;this.connection.addTask((function(){return new Promise((function(r){var n,o=0===i,s=!1,c=a.sender.getParameters(),u=e.map((function(e){return e.rid})),l=ai(c.encodings);try{for(l.s();!(n=l.n()).done;){var d,p=n.value,f=ai(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 Hn(t).then(r)}))}))}))}}},{key:"updateOptionzationMode",value:function(){var e,t=this,r=this.tracks,n=this.transceiver,i=this.connection;if(r[0]instanceof ar&&null!=n&&null!==(e=n.sender)&&void 0!==e&&e.setParameters){var a=r[0].optimizationMode;i.addTask((function(){var e=n.sender.getParameters();return e.degradationPreference=Nn[a]||"balanced",t.logger.info("updateOptionzationMode setParameters",e),n.sender.setParameters(e),Hn(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=ie.Processing,this.feedbackIndex=-1,this.monitor=new fn(this),this.onMonitor()}},{key:"replaceTrack",value:function(e){var t;this.transceiver&&(null===(t=this.transceiver.sender.track)||void 0===t||t.stop(),this.transceiver.sender.replaceTrack(e))}},{key:"handleMetrics",value:function(e,t){var r=e.audioMetrics,n=e.videoMetrics;if(r){var i,a=(null===(i=this.metricsMap.get(t))||void 0===i?void 0:i.audioMetrics)||{},o=$e(r,a),s=Ze(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(n){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=$e(n,f),m=Ze(n.totalBytesSent,f.totalBytesSent),h={codec:this.connection.peerConnectionStats.videoCodec||n.codec,sendFrameRate:Math.round(n.sendFramesPerSecond),captureFrameRate:n.captureFramesPerSecond,encodeFrameRate:n.encodeFramesPerSecond,qpSum:n.totalQpSum||0,targetBitrate:n.targetBitrate,encodeLayers:p.length,sendLayers:p.filter((function(e){return e.active})).length,outgingBitrate:n.availableOutgoingBitrate,sendResolution:{width:n.maxSendFrameWidth,height:n.maxSendFrameHeight},captureResolution:{width:n.captureFrameWidth,height:n.captureFrameHeight},sendBytes:n.totalBytesSent,sendPackets:n.totalPacketsSent,sendPacketsLost:n.totalPacketsLost,timestamp:n.timestamp,rtt:this.connection.peerConnectionStats.roundTripTime||n.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(ii({sessionId:e.id},t))})),this.monitor.on("video-send-stream",(function(t){e.reporter.metric.videoSendStream(ii({sessionId:e.id},t))})),this.monitor.on("bwe",(function(t){e.reporter.metric.bwe(ii({sessionId:e.id},t))}))}}])}(),li=function(){var e=D(ue.mark((function e(t,r){var n,i,a,o,s,c=arguments;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=c.length>2&&void 0!==c[2]?c[2]:["common"],i={},e.next=4,Wn(r,t);case 4: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)i.audio=[{source:"mic",autoMix:n,trackId:t,msid:s.id,uplinkSsrcGroup:[{ssrc:Number(a.ssrcs[0].id)}]}];else if(e instanceof ar){var c;i.video=i.video||[];var u=a.ssrcGroups,l=void 0===u?[]:u,d=zt(e),p=d.encodings,f=d.resolutionLevel;p.length>1&&(l=p.map((function(){return{semantics:"FID",ssrcs:"".concat(Bn()," ").concat(Bn())}})));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===X.SCREENCAST,msid:s.id,mid:"".concat(a.mid),highestResolutionLevel:f,uplinkSsrcGroup:v,source:e.source||X.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}}}))};i.video.push(h)}})),e.abrupt("return",i);case 9:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),di=function(e){var t,r=e.tracks,n=e.connection,i=e.labels,a=r.map((function(t){return{publication:new ui(ii(ii({},e),{},{tracks:[t]})),track:t}})),o=new Promise((function(e,o){t=function(){var t=D(ue.mark((function t(){var s,c;return ue.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,li(r,n,i);case 2:return s=t.sent,c={connectionId:n.id,media:s,simulcast:Ae.simulcast,simulcastVersion:"1.0",clientType:"web",supportTemporalLayer:!1,type:"webrtc"},t.abrupt("return",n.rtcSignaling.batchPublish(c).then(function(){var t=D(ue.mark((function t(r){var n,i,o,s,c;return ue.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=r.detailStatus,"ok"===(i=r.globalStatus)){t.next=4;break}return a.forEach((function(e){e.error=xe(e.track,i)})),t.abrupt("return",e(a));case 4:o=ai(n),t.prev=5,c=ue.mark((function e(){var t,r,n,i,o,c,u;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=s.value,r=t.id,n=t.origin,i=t.msg,o=a.findIndex((function(e){return e.track.getTrackId()===n.id})),c=a[o]||{},u=c.publication,"ok"===i&&u?u.initInner(r):"ok"!==i&&(a[o].error=xe(a[o].track,i));case 4:case"end":return e.stop()}}),e)})),o.s();case 8:if((s=o.n()).done){t.next=12;break}return t.delegateYield(c(),"t0",10);case 10:t.next=8;break;case 12:t.next=17;break;case 14:t.prev=14,t.t1=t.catch(5),o.e(t.t1);case 17:return t.prev=17,o.f(),t.finish(17);case 20:e(a);case 21:case"end":return t.stop()}}),t,null,[[5,14,17,20]])})));return function(e){return t.apply(this,arguments)}}()).catch((function(e){ci.info("batchPublishStart error",e),o(e)})));case 5:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}()}));return n.addTask(t),o},pi=function(){var e=D(ue.mark((function e(t,r){var n,i;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=new Promise((function(e,i){n=function(){var n=D(ue.mark((function n(){var a,o;return ue.wrap((function(n){for(;;)switch(n.prev=n.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})),n.next=4,Yn(r.connection,t);case 4:r.connection.rtcSignaling.batchUnPublish({connectionId:r.connection.id,audio:a,video:o}).then((function(){t.forEach((function(e){e.clear()})),e(void 0)})).catch(i);case 5:case"end":return n.stop()}}),n)})));return function(){return n.apply(this,arguments)}}()})),r.connection.addTask(n),e.abrupt("return",i);case 3:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}();function fi(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(fi=function(){return!!e})()}var vi={audioCodec:"",videoCodec:"",roundTripTime:-1,availableOutgoingBitrate:-1},mi=function(){function t(e){var r,n,i,a;return x(this,t),n=this,i=G(i=t),r=U(n,fi()?Reflect.construct(i,[],G(n).constructor):i.apply(n,a)),Object.defineProperty(r,"connectionMetrics",{enumerable:!0,configurable:!0,writable:!0,value:Object.assign({},vi)}),Object.defineProperty(r,"pc",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),r.pc=e.pc,r}return B(t,an),F(t,[{key:"extractMetrics",value:function(t){var r=Object.assign({},this.connectionMetrics),n="";return t.forEach((function(t){var i;if(!t.isRemote)if(/local-candidate/i.test(t.type)&&t.id===n)e.networkType=(null!==(i=t.networkType)&&void 0!==i?i:e.networkType).replace("vpn","unknown");else if(/candidate-pair/i.test(t.type)&&"succeeded"===t.state)n=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 i(a.BrowserNotSupported,"getStats is not supported");return this.pc.getStats(null).then((function(t){return e.extractMetrics(t)}))}}])}();function hi(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 gi(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)?gi(e,t):void 0}}(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}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 gi(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function yi(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(yi=function(){return!!e})()}var bi=function(){function t(e){var r,n,i,a,o;x(this,t),n=this,i=G(i=t),r=U(n,yi()?Reflect.construct(i,[],G(n).constructor):i.apply(n,a)),Object.defineProperty(r,"pc",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"pendingTask",{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:ae.New}),Object.defineProperty(r,"exchangeSdpTask",{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=D(ue.mark((function e(){var t,n=arguments;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.length>0&&void 0!==n[0]&&n[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&&Zn(r),e.next=5,r.exchangeSDP(t);case 5:r.state=ae.Idle,r.enquenTask.start();case 7: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))}}),r.pc=null;var s=e.direction,c=e.sessionManager;return r.rtcSignaling=c.serviceManager.rtcSignaling,r.sessionManager=c,r.reporter=c.reporter,r.logger=r.reporter.getLoggerWithPrefix("[peerconn]"),r.enquenTask=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=[],r=0,n=!1,i=function(){for(;r<e&&t.length;){r++;var n=t.shift();n&&n().finally((function(){r--,i()}))}};return{add:function(e){t.push(e),n&&i()},start:function(){n=!0,i()}}}(),r.subSdpFmtpLines=[],r.direction=s,r.idToTransceiverMap=new Map,r.idToTransceiversMap=new Map,r.createPeerConnection(),r.id="".concat(r.direction,"_").concat(b()),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:"reset",value:function(){this.pendingTask&&(this.pendingTask=null)}},{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=this,r=e.track,n=e.streams;r.addEventListener("ended",(function(){return t.logger.info("sub track ended",r.id)})),r.addEventListener("unmute",(function(){return t.logger.info("sub track unmute",r.id)})),r.addEventListener("mute",(function(){return t.logger.info("sub track mute",r.id)})),"audio"===r.kind?Ae.audioSFU?this.emit("track",r,n[0]):this.mcuAudioStream=new MediaStream([r]):this.emit("track",r)}},{key:"fireEndedEvent",value:function(){this.state!==ae.Ended&&(this.state=ae.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=D(ue.mark((function e(){return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.state!==ae.New){e.next=2;break}return e.abrupt("return",Promise.reject());case 2:return this.logger.info("connectionId:".concat(this.id,": start client reoffer")),e.prev=3,e.next=6,this.stopSinglePC(!0);case 6:this.removeAllListeners(),e.next=12;break;case 9:e.prev=9,e.t0=e.catch(3),this.logger.info("connectionId:".concat(this.id," client reoffer close failed ").concat(g(e.t0)));case 12:this.closePeerConnection();case 13:case"end":return e.stop()}}),e,this,[[3,9]])}))),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!==ae.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,n=t.password,i=t.port,a=t.iceServerList,o={bundlePolicy:"max-bundle",iceTransportPolicy:"all",sdpSemantics:"unified-plan"};if(a.length){var s,c=[],u=hi(a);try{for(u.s();!(s=u.n()).done;){var l=s.value;c.push("turn:".concat(l,":").concat(i,"?transport=udp"),"turn:".concat(l,":").concat(i,"?transport=tcp"))}}catch(e){u.e(e)}finally{u.f()}e.isFirefox()&&c.splice(4,2),o.iceServers=[{urls:c,username:r,credential:n}]}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.exchangeSdpTask||(e.logger.info("connectionId:".concat(e.id,": emit reoffer")),e.emit("reoffer"))}),4e3))}},{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 mi(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:"startTask",value:function(){var e=this;return new Promise((function(t,r){e.pendingTask={resolve:t,reject:r},e.exchangeSDP(),d((function(){var t;e.pendingTask&&e.state===ae.Processing&&(null===(t=e.pendingTask)||void 0===t||t.reject(),e.fireEndedEvent())}),15e3)}))}},{key:"exchangeSDP",value:function(){var t,r=this,n=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return new Promise((function(o,s){r.exchangeSdpTask={resolve:o,reject:s},r.pc.createOffer().then((function(e){var i,a,o;return t=e,n&&(t.sdp=A.write((i=r.localSDP,a=A.parse(t.sdp),o=a.media,i.media.forEach((function(e){var t=e.mid,r=e.ssrcGroups,n=void 0===r?[]:r,i=e.ssrcs,a=void 0===i?[]:i,s=e.type,c=o.findIndex((function(e){return e.mid==t&&e.type===s}));c>-1&&(o[c]=Dn(Dn({},o[c]),{},{ssrcGroups:n,ssrcs:a}))})),a))),r.pc.setLocalDescription(t).catch((function(e){throw r.logger.error("connectionId:".concat(r.id," Failed to create offer or set SDP. Message: ").concat(e.message,")}")),e}))})).then((function(){r.logger.info("connectionId:".concat(r.id," set local sdp success"));var c=function(t,r){var n=r.direction,i=["uplink"===n,Ae.downlinkForbidHighProfile],a=A.parse(t);if(i.some((function(e){return e}))&&(a=ti(a,"64")),Ae.disableTransportCC&&"uplink"===n&&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}))}))}(a),"downlink"===n&&!Ae.downlinkForbidHighProfile){var o=[];a.media.find((function(e){return"video"===e.type})).fmtp.forEach((function(e){var t=e.config;t.includes("profile-level-id")&&o.push(t)})),r.subSdpFmtpLines=o}if(e.isFirefox()&&(a=ri(a)),"uplink"===n&&e.isFirefox()&&Ae.simulcast){var s=a.media.find((function(e){return"video"===e.type}));Jn(s)}return r.localSDP=a,a}(t.sdp,r);t.sdp=A.write(c),r.offerSDP=c,t.sdp=A.write(c);var u,l={direction:"downlink"!==r.direction?"in":"out",sdpOffer:t.sdp,connectionId:r.id,isFailover:n,optionsJsonStr:JSON.stringify({supportCVO:1})};if(n){var d=A.parse(t.sdp);d.media=d.media.slice(0,2),d.groups=[{mids:"0 1",type:"BUNDLE"}],l.sdpOffer=A.write(d)}!function(e){var t=e.fn,r=e.times,n=e.interval,i=void 0===n?0:n,a=e.resolve,o=e.reject;if(!(r>0))throw new Error("invalid params times");var s=function(){var e=D(ue.mark((function e(){var n,s;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:s=0;case 1:if(!(s<r)){e.next=22;break}return e.prev=2,e.next=5,t();case 5:return n=e.sent,null==a||a(n),e.abrupt("break",22);case 10:if(e.prev=10,e.t0=e.catch(2),s!==r-1){e.next=17;break}return null==o||o(e.t0),e.abrupt("return",e.t0);case 17:return e.next=19,et(i);case 19:s++,e.next=1;break;case 22:return e.abrupt("return",n);case 23:case"end":return e.stop()}}),e,null,[[2,10]])})));return function(){return e.apply(this,arguments)}}();s()}({key:"createPeerConnection_".concat(r.direction),fn:(u=D(ue.mark((function e(){var t;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("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=2;break}return e.abrupt("return");case 2:if(l.isFailover||!r.prevId){e.next=7;break}return e.next=5,r.stopSinglePC(!0);case 5:r.id="".concat(r.direction,"_").concat(b()),l.connectionId=r.id;case 7:return r.prevId=r.id,e.abrupt("return",r.rtcSignaling.createPeerConnection(l).then((function(e){var t=e.sdpAnswer,o=Xn(t,r,n);r.pc.setRemoteDescription({sdp:A.write(o),type:"answer"}).then((function(){var e;r.logger.info("connectionId:".concat(r.id," receive answer success")),null===(e=r.exchangeSdpTask)||void 0===e||e.resolve(),r.exchangeSdpTask=void 0})).catch((function(e){var t,n;r.logger.error("connectionId:".concat(r.id," Set remote description failed: ").concat(e)),null===(t=r.exchangeSdpTask)||void 0===t||t.reject(e),r.exchangeSdpTask=void 0,null===(n=r.pendingTask)||void 0===n||n.reject(new i(a.IceConnectionAnswerFail)),r.fireEndedEvent()}))})));case 9:case"end":return e.stop()}}),e)}))),function(){return u.apply(this,arguments)}),times:3,interval:2e3,reject:s,resolve:o})})).catch((function(e){var t,n;r.logger.error("connectionId:".concat(r.id," Failed to create offer or set SDP. Message: ").concat(e.message)),null===(t=r.pendingTask)||void 0===t||t.reject(new i(a.IceConnectionSetLocalDescFail)),r.fireEndedEvent(),null===(n=r.exchangeSdpTask)||void 0===n||n.reject(e),r.exchangeSdpTask=void 0}))}))}},{key:"reoffer",value:function(){return this.state===ae.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=ae.New,this.startSinglePC(!0))}},{key:"handleHighProfileFallback",value:function(){Ae.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 Si(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ki(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Si(Object(r),!0).forEach((function(t){le(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Si(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Pi(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 wi(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)?wi(e,t):void 0}}(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}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 wi(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function Oi(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Oi=function(){return!!e})()}var Ti=2e3,Ei=function(){function e(t,r){var n,i,a,o;return x(this,e),i=this,a=G(a=e),n=U(i,Oi()?Reflect.construct(a,[],G(i).constructor):a.apply(i,o)),Object.defineProperty(n,"client",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(n,"sessions",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"networkQualityInterval",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"lastChannelNetworkQuality",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"uplink",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"downlink",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"streamIdToSessionId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"serviceManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"reporter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"logger",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),n.serviceManager=r,n.client=t,n.reporter=r.reporter,n.logger=n.reporter.getLoggerWithPrefix("[rtc-sessionMgr]"),n.streamIdToSessionId=new Map,n.sessions=new Map,n.handleMediaMessage=n.handleMediaMessage.bind(n),n.handleServerFailover=n.handleServerFailover.bind(n),n.handleRepulish=n.handleRepulish.bind(n),n.handleResubscribe=n.handleResubscribe.bind(n),n}return B(e,c),F(e,[{key:"getOrCreatePeerConnection",value:(g=D(ue.mark((function e(t){var r=this;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("uplink"!==t){e.next=10;break}if(this.uplink){e.next=7;break}return this.uplink=new bi({direction:t,sessionManager:this}),e.next=5,this.uplink.startSinglePC();case 5:this.uplink.on("reoffer",this.handleRepulish),this.uplink.on("ended",(function(){r.uplink=null}));case 7:return e.abrupt("return",this.uplink);case 10:if(this.downlink){e.next=16;break}return this.downlink=new bi({direction:t,sessionManager:this}),e.next=14,this.downlink.startSinglePC();case 14:this.downlink.on("reoffer",this.handleResubscribe),this.downlink.on("ended",(function(){r.downlink=null}));case 16:return e.abrupt("return",this.downlink);case 17:case"end":return e.stop()}}),e,this)}))),function(e){return g.apply(this,arguments)})},{key:"handleRepulish",value:(h=D(ue.mark((function e(){var t,r,n,i,a,o,s,c,u,l,d,p;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:this.logger.info("handle repub"),r=Ee(this.client.localTracks),n=Pi(this.sessions.values());try{for(n.s();!(i=n.n()).done;)(a=i.value)instanceof ui&&a.state===ie.Processing&&(a.clear(),this.sessions.delete(a.id))}catch(e){n.e(e)}finally{n.f()}this.client.emit("media-reconnect-start",this.client.userId),o=null===(t=this.uplink)||void 0===t?void 0:t.id,s=Date.now(),c=s+45e3,u=!1,l=0;case 10:if(!(l<23&&Date.now()<=c)){e.next=42;break}if(!((d=Date.now())<s+l*Ti)){e.next=15;break}return e.next=15,et(s+l*Ti-d);case 15:if(this.logger.debug("repub round=".concat(l,", channelconnect=").concat(this.serviceManager.internalChannel.connectionState)),"connected"===this.serviceManager.internalChannel.connectionState){e.next=18;break}return e.abrupt("continue",39);case 18:return e.prev=18,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=23,null===(p=this.uplink)||void 0===p?void 0:p.clearPcForReoffer();case 23: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=29;break}return e.next=28,this.batchPublish(r);case 28:this.logger.info("".concat(this.client.userId," batchPublish finished for repub"));case 29:return this.reporter.trace.connectionsEvent(o,"clientReofferSuccess"),this.logger.info("emitted media-reconnect-end",this.client.userId),this.client.emit("media-reconnect-end",this.client.userId),u=!0,e.abrupt("break",42);case 36:e.prev=36,e.t0=e.catch(18),this.logger.error("".concat(this.client.userId," republish failed for"),e.t0);case 39:l++,e.next=10;break;case 42:u||(this.reporter.trace.connectionsEvent(o,"clientReofferFailed"),this.client.emit("media-reconnect-end",this.client.userId),this.serviceManager.rtcSignaling.emit("connection-state-change","disconnected",this.client.connectionState,"network_error"));case 43:case"end":return e.stop()}}),e,this,[[18,36]])}))),function(){return h.apply(this,arguments)})},{key:"handleStuckResubscribe",value:(v=D(ue.mark((function e(t){var r,n,i,a,o,s,c,u,l,d,p;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("connected"===this.serviceManager.internalChannel.connectionState){e.next=3;break}return this.logger.info("ignore for inner not connected"),e.abrupt("return");case 3:r=[],n=Pi(t);try{for(n.s();!(i=n.n()).done;)(a=i.value)instanceof En&&a.state===ie.Processing&&(r.push({stream:a.stream,uid:a.uid,resolutionInfo:a.userConfigResolution,session:a,profileFallback:!0}),this.removeSession(a.id))}catch(e){n.e(e)}finally{n.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=9,e.next=12,this.batchUnscribe(r);case 12:return e.next=14,this.batchSubscribe(r);case 14:s=e.sent,c=Pi(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=25;break;case 20:e.prev=20,e.t0=e.catch(9),this.logger.debug("".concat(this.client.userId," resubscribe failed for"),e.t0),this.client.emit("media-reconnect-end",o),this.serviceManager.rtcSignaling.emit("connection-state-change","disconnected",this.client.connectionState,"network_error");case 25:case"end":return e.stop()}}),e,this,[[9,20]])}))),function(e){return v.apply(this,arguments)})},{key:"handleResubscribe",value:(f=D(ue.mark((function e(){var t,r,n,i,a,o,s,c,u,l,d,p,f,v,m,h,g,y,b,S,k,P=arguments;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=P.length>0&&void 0!==P[0]&&P[0],this.logger.info("handle resub fromServer=",r),n=r?"server":"client",i=[],a=Pi(this.sessions.values());try{for(a.s();!(o=a.n()).done;)(s=o.value)instanceof En&&s.state===ie.Processing&&(i.push({stream:s.stream,uid:s.uid,resolutionInfo:s.userConfigResolution}),this.removeSession(s.id))}catch(e){a.e(e)}finally{a.f()}c=i.map((function(e){return e.uid})).join(),this.client.emit("media-reconnect-start",c),this.logger.info("resubscribe start ".concat(c)),u=null===(t=this.downlink)||void 0===t?void 0:t.id,l=Date.now(),d=l+45e3,p=!1,f=0;case 14:if(!(f<23&&Date.now()<=d)){e.next=46;break}if(!((v=Date.now())<l+f*Ti)){e.next=19;break}return e.next=19,et(l+f*Ti-v);case 19:if(this.logger.debug("resub round=".concat(f,", channelconnect=").concat(this.serviceManager.internalChannel.connectionState)),"connected"===this.serviceManager.internalChannel.connectionState){e.next=22;break}return e.abrupt("continue",43);case 22:return e.prev=22,this.reporter.trace.connectionsEvent(u,"".concat(n,"ReofferStart")),e.next=26,null===(m=this.downlink)||void 0===m?void 0:m.clearPcForReoffer();case 26:if(this.downlink=null,!i.length){e.next=33;break}return e.next=30,this.batchSubscribe(i);case 30:h=e.sent,g=Pi(h);try{for(g.s();!(y=g.n()).done;)b=y.value,S=b.subscription,k=b.error,S&&!k&&this.handleResubSuccess(S)}catch(e){g.e(e)}finally{g.f()}case 33:return this.reporter.trace.connectionsEvent(u,"".concat(n,"ReofferSuccess")),this.logger.debug("resub round=".concat(f," resubscribe ").concat(c," success")),this.client.emit("media-reconnect-end",c),p=!0,e.abrupt("break",46);case 40:e.prev=40,e.t0=e.catch(22),this.logger.debug("resub round=".concat(f," resubscribe failed for"),e.t0);case 43:f++,e.next=14;break;case 46:p||(this.reporter.trace.connectionsEvent(u,"".concat(n,"ReofferFailed")),this.client.emit("media-reconnect-end",c),this.serviceManager.rtcSignaling.emit("connection-state-change","disconnected",this.client.connectionState,"network_error"));case 47:case"end":return e.stop()}}),e,this,[[22,40]])}))),function(){return f.apply(this,arguments)})},{key:"getSessionByStreamId",value:function(e){return this.sessions.get(this.streamIdToSessionId.get(e))}},{key:"handleResubSuccess",value:function(e){var t,r=e.uid,n=e.mediaStream,i=(null===(t=e.stream.media.video)||void 0===t?void 0:t.source)===X.SCREENCAST,a=n.getAudioTracks()[0],o=n.getVideoTracks()[0],s=a?"audio":i?"screen":"camera";if(this.logger.debug("".concat(r," resubscribe ").concat(s," success")),a&&this.serviceManager.remoteAudioTrack){var c,u;if(Ae.audioSFU)null===(c=(u=this.serviceManager.remoteAudioTrack).replaceStream)||void 0===c||c.call(u,n);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&&i?l.auxiliaryTrack.replaceTrack(o):o&&null!=l&&l.videoTrack&&!i&&l.videoTrack.replaceTrack(o)}}},{key:"handleServerFailover",value:function(e){var t=this;this.logger.debug("serverFailover",e);var r,n=e.actions,i=Pi(void 0===n?[]:n);try{var a=function(){var e,n,i=r.value,a=i.actionName,o=i.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===(n=t.downlink)||void 0===n?void 0:n.id)&&t.handleResubscribe(!0)};for(i.s();!(r=i.n()).done;)a()}catch(e){i.e(e)}finally{i.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?ee.BAD:e>30||t>450?ee.POOR:e>20||t>300?ee.NORMAL:e>10||t>200?ee.GOOD:e>=0||t>=0?ee.GREAT:ee.UNKNOWN}},{key:"checkChannelNetworkQuality",value:(p=D(ue.mark((function e(){var t,r=this;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(0!==(t=Ee(this.sessions.values())).length){e.next=4;break}return this.emit("network-quality",ee.UNKNOWN,ee.UNKNOWN),e.abrupt("return");case 4: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=8;break}return this.emit("network-quality",ee.DISCONNECTED,ee.DISCONNECTED),e.abrupt("return");case 8:Promise.all([this.getLocalVideoStats(),this.getLocalAudioStats(),this.getRemoteAudioStats(),this.getRemoteVideoStats()]).then((function(e){var t=Ct(e,4),n=t[0],i=t[1],a=t[2],o=t[3],s=0,c=0,u=0,l=0,d=0,p=0;if(n){var f=n.camera,v=n.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 i&&(c+=i.sendPacketsLost||0,s+=i.sendPackets||0,d=Math.max(d,i.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,y=h.auxiliary;g&&(u+=g.receivePacketsLost,l+=g.receivePackets,p=Math.max(p,g.rtt||0)),y&&(u+=y.receivePacketsLost,l+=y.receivePackets,p=Math.max(p,y.rtt||0))}var b=-1,S=-1,k={timestamp:Date.now(),totalUplinkPacketsLost:c,totalUplinkPacketsSent:s,totalDownlinkPacketsLost:u,totalDownlinkPacketsRecv:l};if(s){var P,w,O=c-((null===(P=r.lastChannelNetworkQuality)||void 0===P?void 0:P.totalUplinkPacketsLost)||0);if(O<0&&(O=c),k.totalUplinkPacketsSentForLost=(null===(w=r.lastChannelNetworkQuality)||void 0===w?void 0:w.totalUplinkPacketsSentForLost)||0,0!==O){var T;k.totalUplinkPacketsSentForLost=s;var E=s-((null===(T=r.lastChannelNetworkQuality)||void 0===T?void 0:T.totalUplinkPacketsSentForLost)||0);E<0&&(E=s),b=O/E}}if(l){var I,R,M,A,_=u-((null===(I=r.lastChannelNetworkQuality)||void 0===I?void 0:I.totalDownlinkPacketsLost)||0);_<0&&(_=u),k.totalDownlinkPacketsRecvForLost=(null===(R=r.lastChannelNetworkQuality)||void 0===R?void 0:R.totalDownlinkPacketsRecvForLost)||0,null===(M=r.lastChannelNetworkQuality)||void 0===M||M.totalDownlinkPacketsRecvForLost,_&&(u!==((null===(A=r.lastChannelNetworkQuality)||void 0===A?void 0:A.totalDownlinkPacketsLost)||0)&&(k.totalDownlinkPacketsRecvForLost=l),S=_/l)}r.emit("network-quality",r.getNetworkQuality(Math.min(100*b,100),d),r.getNetworkQuality(Math.min(100*S,100),p)),r.lastChannelNetworkQuality=k}));case 9: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))}},{key:"batchPublish",value:(l=D(ue.mark((function e(t,r){var n,i,a=this;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=Date.now(),e.next=3,this.getOrCreatePeerConnection("uplink");case 3:return i=e.sent,e.abrupt("return",di({uid:this.client.userId,tracks:t,connection:i,labels:r}).then((function(e){var t,r=Pi(e);try{var i=function(){var e=t.value,r=e.error,i=e.publication,o=e.track;r?a.reporter.trace.publish(!1,o,"",Date.now()-n):(a.addSession(o.getTrackId(),i),a.reporter.trace.publish(!0,o,i.id,Date.now()-n),a.reporter.trace.publish(!1,o,i.id,Date.now()-n),i.on("ended",(function(){a.removeSession(i.id)})))};for(r.s();!(t=r.n()).done;)i()}catch(e){r.e(e)}finally{r.f()}})));case 5:case"end":return e.stop()}}),e,this)}))),function(e,t){return l.apply(this,arguments)})},{key:"batchUnPublish",value:(u=D(ue.mark((function e(t){var r,n=this;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t.length){e.next=2;break}return e.abrupt("return",Promise.resolve());case 2:return e.next=4,this.getOrCreatePeerConnection("uplink");case 4:return r=e.sent,e.abrupt("return",pi(t,{connection:r}).then((function(){var e,r=Pi(t);try{for(r.s();!(e=r.n()).done;){var i,a,o,s=e.value;n.streamIdToSessionId.delete(null===(i=s.tracks)||void 0===i||null===(i=i[0])||void 0===i||null===(a=(o=i).getTrackId)||void 0===a?void 0:a.call(o)),n.removeSession(s.id)}}catch(e){r.e(e)}finally{r.f()}})));case 6:case"end":return e.stop()}}),e,this)}))),function(e){return u.apply(this,arguments)})},{key:"batchSubscribe",value:function(e){var t,r=this,n=Date.now(),i=0,a=function(){var e=D(ue.mark((function e(t){var n;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.getOrCreatePeerConnection("downlink");case 2:return n=e.sent,e.abrupt("return",An(t,{connection:n}).then(function(){var e=D(ue.mark((function e(n){var o,s,c,u;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(o=new Map,s=[],c=0;c<n.length;c++)"RoomBusy"===(null===(u=n[c].error)||void 0===u?void 0:u.message)&&(s.push(t[c]),o.set(s.length-1,c));if(!(s.length&&i<=3)){e.next=12;break}return i++,e.next=7,tt(1);case 7:if("connected"!==r.client.connectionState){e.next=12;break}return e.next=10,a(s);case 10:e.sent.forEach((function(e,t){var r=o.get(t);n[r]=e}));case 12:return e.abrupt("return",n);case 13:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),o=Pi(e);try{for(o.s();!(t=o.n()).done;){var s=t.value,c=s.stream,u=s.uid,l=s.resolutionInfo;this.reporter.trace.subscribe({subPhase:"init",capabilities:c.media,remoteStreamId: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,i=Pi(e);try{var a=function(){var e=t.value,i=e.error,a=e.subscription,o=e.id,s=e.stream,c=e.uid,u=e.resolutionInfo;a&&(r.reporter.trace.subscribe({subPhase:"success",capabilities:s.media,remoteStreamId:s.id,remoteUserId:c,elapse:Date.now()-n,sessionId:o,resolutionInfo:u}),r.addSession(s.id,a),a.on("ended",(function(){r.logger.info("remove subscription for ended",o),r.removeSession(o)}))),i&&(r.logger.error("batchSubscribe error",s,i),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()-n,sessionId:"",resolutionInfo:u}))};for(i.s();!(t=i.n()).done;)a()}catch(e){i.e(e)}finally{i.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=D(ue.mark((function e(t){var r,n,i,a,o=this;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=new Array(t.length),n=[],i={},t.forEach((function(e,t){var a=e.error,s=e.stream,c=e.session;r[t]={},a?(r[t].error=a,o.logger.error("batchUnscribe error",a,s)):(i[null==s?void 0:s.id]=t,n.push(c))})),e.next=6,this.getOrCreatePeerConnection("downlink");case 6:return a=e.sent,e.abrupt("return",_n(n,{connection:a}).then((function(){for(var e=0,t=n;e<t.length;e++){var i=t[e];o.removeSession(i.id)}return r})));case 8: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)})),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=D(ue.mark((function e(){return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.startNetworkQualityTimer(),e.next=3,this.getOrCreatePeerConnection("uplink");case 3:return this.uplink=e.sent,e.next=6,this.getOrCreatePeerConnection("downlink");case 6:this.downlink=e.sent,this.serviceManager.rtcSignaling.on("media-message",this.handleMediaMessage),this.serviceManager.rtcSignaling.on("serverFailover",this.handleServerFailover);case 9: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",ee.DISCONNECTED,ee.DISCONNECTED):"connected"!==e.client.connectionState?e.emit("network-quality",ee.BAD,ee.BAD):"connected"===e.client.connectionState?e.checkChannelNetworkQuality():e.emit("network-quality",ee.UNKNOWN,ee.UNKNOWN)}),2e3,"interval")}},{key:"getLocalAudioStats",value:(a=D(ue.mark((function e(){var t,r,n,i=arguments;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=i.length>0&&void 0!==i[0]?i[0]:"network",n=Ee(this.sessions.values()).filter((function(e){var t,r;return e instanceof ui&&"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=4,Promise.all(n.map((function(e){return e.getMetrics(r)})));case 4:return e.abrupt("return",(null===(t=n[0])||void 0===t?void 0:t.audioStatsMap.get(r))||{});case 5:case"end":return e.stop()}}),e,this)}))),function(){return a.apply(this,arguments)})},{key:"getLocalVideoStats",value:(i=D(ue.mark((function e(){var t,r,n,i,a,o,s,c,u,l,d,p,f,v,m=arguments;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=m.length>0&&void 0!==m[0]?m[0]:"network",i=Ee(this.sessions.values()).filter((function(e){var t;return e instanceof ui&&"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=4,Promise.all(i.map((function(e){return e.getMetrics(n)})));case 4: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(";"))||[],n=r.findIndex((function(e){return e.includes("profile-level-id")}));return r[n].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:Ee(new Set(a(o))),downlinkProfile:Ee(new Set(a(s)))},u=Pi(i),e.prev=9,u.s();case 11:if((l=u.n()).done){e.next=21;break}if(d=l.value,p=d.videoStatsMap.get(n)){e.next=16;break}return e.abrupt("continue",19);case 16:f=d.tracks,v=f[0].source===X.SCREENCAST,c[v?"auxiliary":"camera"]=p;case 19:e.next=11;break;case 21:e.next=26;break;case 23:e.prev=23,e.t0=e.catch(9),u.e(e.t0);case 26:return e.prev=26,u.f(),e.finish(26);case 29:return e.abrupt("return",c);case 30:case"end":return e.stop()}}),e,this,[[9,23,26,29]])}))),function(){return i.apply(this,arguments)})},{key:"getRemoteVideoStats",value:(n=D(ue.mark((function e(){var t,r,n,i,a,o,s,c,u,l,d,p,f=arguments;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=f.length>0&&void 0!==f[0]?f[0]:"network",r=Ee(this.sessions.values()).filter((function(e){var t;return e instanceof En&&"connected"===(null===(t=e.connection)||void 0===t||null===(t=t.pc)||void 0===t?void 0:t.connectionState)&&e.stream.media.video})),e.next=4,Promise.all(r.map((function(e){return e.getMetrics(t)})));case 4:n={},i=Pi(r),e.prev=6,i.s();case 8:if((a=i.n()).done){e.next=17;break}if(s=a.value,c=s.videoStatsMap,u=s.uid,l=s.stream,d=c.get(t)){e.next=13;break}return e.abrupt("continue",15);case 13:p=(null===(o=l.media.video)||void 0===o?void 0:o.source)===X.SCREENCAST?"auxiliary":"camera",n[u]=ki(ki({},n[u]||{}),{},le({},p,d));case 15:e.next=8;break;case 17:e.next=22;break;case 19:e.prev=19,e.t0=e.catch(6),i.e(e.t0);case 22:return e.prev=22,i.f(),e.finish(22);case 25:return e.abrupt("return",n);case 26:case"end":return e.stop()}}),e,this,[[6,19,22,25]])}))),function(){return n.apply(this,arguments)})},{key:"getRemoteAudioStats",value:(r=D(ue.mark((function e(){var t,r,n,i=arguments;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=i.length>0&&void 0!==i[0]?i[0]:"network",n=Ee(this.sessions.values()).filter((function(e){var t;return e instanceof En&&"connected"===(null===(t=e.connection)||void 0===t||null===(t=t.pc)||void 0===t?void 0:t.connectionState)&&e.stream.media.audio})),e.next=4,Promise.all(n.map((function(e){return e.getMetrics(r)})));case 4:return e.abrupt("return",(null===(t=n[0])||void 0===t?void 0:t.audioStatsMap.get(r))||{});case 5:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"handleMediaMessage",value:(t=D(ue.mark((function e(t){var r,n,i,a,o;return ue.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=4;break}return e.abrupt("return");case 4:n=Ee(this.sessions.values()).filter((function(e){return e instanceof ui&&e.state===ie.Processing&&e.tracks[0].source===X.CAMERA})),i=Pi(n),e.prev=6,o=ue.mark((function e(){var t,n;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=a.value,(n=r.filter((function(e){return e.mid==t.transceiver.mid}))).length&&t.applyOptions(n);case 3:case"end":return e.stop()}}),e)})),i.s();case 9:if((a=i.n()).done){e.next=13;break}return e.delegateYield(o(),"t0",11);case 11:e.next=9;break;case 13:e.next=18;break;case 15:e.prev=15,e.t1=e.catch(6),i.e(e.t1);case 18:return e.prev=18,i.f(),e.finish(18);case 21:case"end":return e.stop()}}),e,this,[[6,15,18,21]])}))),function(e){return t.apply(this,arguments)})}]);var t,r,n,i,a,o,s,u,l,p,f,v,h,g}();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 Ri(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)?Ri(e,t):void 0}}(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}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 Ri(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function Mi(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Mi=function(){return!!e})()}var Ai={name:"name"},_i=function(){function e(t){var r,n,i,a;return x(this,e),n=this,i=G(i=e),r=U(n,Mi()?Reflect.construct(i,[],G(n).constructor):i.apply(n,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.currentPid,t=new Set;return this.groups.forEach((function(r){var n=r.participants,i=r.id;n.some((function(t){return t.pid===e}))&&t.add(i)})),t}},{key:"parseGroup",value:function(e){var t,r=this,n=e.id,i=e.properties,a=e.participants;return{id:n,name:(null==i||null===(t=i.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.currentPid})),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,n=e.groupId,o=e.userData;if(this.joinedIds.has(n))throw new i(a.InvaildArgument,"you were in group already");return this.serviceManager.rtcSignaling.joinGroup({groupId:n,userData:o,autoJoinGroupAudio:!!r,autoLeaveChannelAudio:!0})}},{key:"leave",value:function(e){var t=e.groupId,r=e.publishAudioToChannel,n=void 0===r||r;if(!this.joinedIds.has(t))throw new i(a.InvaildArgument,"you are not in the group");return this.serviceManager.rtcSignaling.leaveGroup({groupId:t,reasonCode:yr.LEAVE_GROUP_REASON_CODE.NORMAL_LEAVE,autoJoinChannelAudio:n})}},{key:"dismiss",value:function(e){if(!this.groupIds.has(e))throw new i(a.InvaildArgument,"group not existed");return this.serviceManager.rtcSignaling.dismissGroup({groupId:e})}},{key:"addUser",value:function(e,t){var r,n=null===(r=this.groups.get(t))||void 0===r?void 0:r.participants;n&&!n.find((function(t){return t.pid===e.pid}))&&n.push(e)}},{key:"removeUser",value:function(e,t){var r,n=null===(r=this.groups.get(t))||void 0===r?void 0:r.participants;if(n){var i=n.findIndex((function(t){return t.pid===e.pid}));i>-1&&n.splice(i,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,n=e.type,i=e.updateOpt;if(this.logger.info("on groupList event:",e),r!==this.listVer+1&&!t||n!==yr.OptType.OPT_TYPE_UPDATE)r>this.listVer+1&&this.syncGroupList();else{var a=i.updateAction,o=i.id;a===yr.GroupListUpdate.GROUP_LIST_UPDATE_ADD_ID?this.groupIds.add(o):a===yr.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 n,i=e.id,a=e.ver,o=e.groupInfo,s=e.type,c=e.updateOpt,u=this.groups.get(i);if(s!==yr.OptType.OPT_TYPE_ADD||u){if(s===yr.OptType.OPT_TYPE_REMOVE&&u)this.groups.delete(i),this.emit("group","remove",this.parseGroup(u),u.audioInfo);else if(s===yr.OptType.OPT_TYPE_UPDATE){var l=c.updateAction,d=c.participants;if(u&&(u.ver+1===a||r)){if(l===yr.GroupUpdate.GROUP_UPDATE_ADD_PARTICIPANTS){var p,f=u.participants.map((function(e){return e.pid})),v=Ii(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",i,{userId:m.uid,userData:m.userData}))}}catch(e){v.e(e)}finally{v.f()}}else if(l===yr.GroupUpdate.GROUP_UPDATE_REMOVE_PARTICIPANTS){var h=d.map((function(e){return e.pid})),g=Ee(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",i,{userId:e.uid,userData:e.userData})}))}else if(l===yr.GroupUpdate.GROUP_UPDATE_AUDIO_STREAM_LOST)this.logger.info("group ".concat(i," audioStream lost"));else if(l===yr.GroupUpdate.GROUP_UPDATE_AUDIO_STREAM_RECOVER)this.logger.debug("group ".concat(i," audioStream recover"));else if(l===yr.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",i,{key:"set-".concat(Ai[e.key]),value:e.value})}));else if(l===yr.GroupUpdate.GROUP_UPDATE_REMOVE_PROPERTIES){var y,b=c.properties.map((function(e){return e.key}));u.properties=null===(y=u.properties)||void 0===y?void 0:y.filter((function(e){var t=e.key;return!b.includes(t)})),c.properties.forEach((function(e){t.emit("group","info-updated",i,{key:"remove-".concat(Ai[e.key])})}))}u.ver=a}else u&&a>u.ver+1&&this.syncGroup(u.id)}}else null==o||null===(n=o.audioInfo)||void 0===n||null===(n=n.audio)||void 0===n||null===(n=n.media)||void 0===n||delete n.video,null==o.ver&&(o.ver=a),this.groups.set(i,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:yr.DataType.DATA_TYPE_GROUP,id:e,ver:null==r?void 0:r.ver}).then((function(n){var i=n.fullSync.groupData.groupInfos,a=(void 0===i?[]:i)[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:yr.OptType.OPT_TYPE_REMOVE,ver:a.ver,updateOpt:{updateAction:yr.GroupUpdate.GROUP_UPDATE_ADD_PARTICIPANTS,participants:m}},!0),h.length&&t.handleGroupEvents({id:e,ver:a.ver,type:yr.OptType.OPT_TYPE_REMOVE,updateOpt:{updateAction:yr.GroupUpdate.GROUP_UPDATE_REMOVE_PARTICIPANTS,participants:h}},!0),f.length&&t.handleGroupEvents({id:e,ver:a.ver,type:yr.OptType.OPT_TYPE_UPDATE,updateOpt:{updateAction:yr.GroupUpdate.GROUP_UPDATE_SET_PROPERTIES,properties:f}},!0),v.length&&t.handleGroupEvents({id:e,ver:a.ver,type:yr.OptType.OPT_TYPE_UPDATE,updateOpt:{updateAction:yr.GroupUpdate.GROUP_UPDATE_REMOVE_PROPERTIES,properties:v}},!0)}else t.handleGroupEvents({id:e,type:yr.OptType.OPT_TYPE_REMOVE})}))}},{key:"batchSyncGroup",value:function(e){var t=this;if(e.length)return this.serviceManager.rtcSignaling.syncDataByIds({type:yr.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:yr.DataType.DATA_TYPE_GROUP_LIST,forceFullSync:!0,ver:this.listVer}).then((function(t){var r=t.fullSync,n=r.ver,i=r.groupListData.groupIds,a=void 0===i?[]:i,o=a.filter((function(t){return!e.groupIds.has(t)})),s=Ee(e.groupIds).filter((function(e){return!a.includes(e)}));o.length&&o.forEach((function(t){e.handleGroupListEvents({ver:n,updateOpt:{updateAction:yr.GroupListUpdate.GROUP_LIST_UPDATE_ADD_ID,id:t}},!0)})),s.length&&s.forEach((function(t){e.handleGroupListEvents({ver:n,updateOpt:{updateAction:yr.GroupListUpdate.GROUP_LIST_UPDATE_REMOVE_ID,id:t}},!0)}))}))}},{key:"handleSyncEvent",value:function(e){var t=this,r=e.groupListVer,n=e.groupVer,i=void 0===n?[]:n;this.listVer<r&&(this.syncGroupList(),this.listVer=r),i.forEach((function(e){var r=e.id,n=e.ver,i=t.groups.get(r);(null==i?void 0:i.ver)<n&&(t.syncGroup(r),i.ver=n)}))}}])}();function Ci(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Ci=function(){return!!e})()}var Di=function(){function e(t,r){var n,i,a,o;x(this,e),i=this,a=G(a=e),n=U(i,Ci()?Reflect.construct(a,[],G(i).constructor):a.apply(i,o)),Object.defineProperty(n,"serviceManager",{enumerable:!0,configurable:!0,writable:!0,value:r}),Object.defineProperty(n,"userId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"userName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"streamMap",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"videoTrack",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"auxiliaryTrack",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"audioTrack",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"joinedTime",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"properties",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"toJSON",{enumerable:!0,configurable:!0,writable:!0,value:function(){return{userId:n.userId,userName:n.userName,hasAuxiliary:n.hasAuxiliary,hasVideo:n.hasVideo,hasAudio:n.hasAudio,joinedTime:n.joinedTime,properties:n.properties,audioMuted:n.audioMuted,auxiliaryMuted:n.auxiliaryMuted,videoMuted:n.videoMuted}}});var s=t.user;return n.userId=s,n.videoTrack=null,n.audioTrack=null,n.auxiliaryTrack=null,n.serviceManager=r,n.joinedTime=Date.now(),n.update(t),n}return B(e,c),F(e,[{key:"relatedStreams",get:function(){var e=this;return Ee(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)===X.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)===X.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)===$.MIC}))}},{key:"audioMuted",get:function(){return this.relatedStreams.some((function(e){var t,r,n=e.media;return"active"!==(null==n||null===(t=n.audio)||void 0===t?void 0:t.status)&&(null==n||null===(r=n.audio)||void 0===r?void 0:r.source)===$.MIC}))}},{key:"auxiliaryMuted",get:function(){return this.relatedStreams.some((function(e){var t,r,n=e.media;return"active"!==(null==n||null===(t=n.video)||void 0===t?void 0:t.status)&&(null==n||null===(r=n.video)||void 0===r?void 0:r.source)===X.SCREENCAST}))}},{key:"videoMuted",get:function(){return this.relatedStreams.some((function(e){var t,r,n=e.media;return"active"!==(null==n||null===(t=n.video)||void 0===t?void 0:t.status)&&(null==n||null===(r=n.video)||void 0===r?void 0:r.source)===X.CAMERA}))}},{key:"updateNetworkOfUser",value:function(e){var t;if(this.properties.SdkType!==O.Web&&e){var r=e.split("");r[se.UPLINK]=Xe(r[se.UPLINK]),r[se.DOWNLINK]=Xe(r[se.DOWNLINK]),e=r.join("")}e!==(null===(t=this.properties)||void 0===t?void 0:t[ye])&&(this.properties[ye]=e)}},{key:"update",value:function(e){var t=e.id,r=e.propertiesJsonStr,n=e.ver,i=JSON.parse(r||"{}");this.id=t,this.userName=i.__nick,this.version=n,this.properties=i,this.updateNetworkOfUser(i[ye])}},{key:"getRemoteVideoTrack",value:function(e,t){var r=t?this.auxiliaryTrack:this.videoTrack,n=JSON.parse(e.stream.info.attributesJsonStr),i=je(e.mediaStream,"video",this.userId,r);return t?this.auxiliaryTrack=i:this.videoTrack=i,n.mirror&&i.setSourceMirror(n.mirror),i}}])}();function xi(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 ji(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)?ji(e,t):void 0}}(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}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 ji(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function Li(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Li=function(){return!!e})()}var Ni=function(){function e(t,r){var n,i,a,o;return x(this,e),i=this,a=G(a=e),n=U(i,Li()?Reflect.construct(a,[],G(i).constructor):a.apply(i,o)),Object.defineProperty(n,"serviceManager",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(n,"users",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"currentUid",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"currentPid",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"reporter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"logger",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"streamManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),n.users=new Map,n.serviceManager=t,n.reporter=t.reporter,n.logger=n.reporter.getLoggerWithPrefix("[rtc-userMgr]"),n.handleEvent=n.handleEvent.bind(n),n.streamManager=r,n}return B(e,c),F(e,[{key:"remoteUsers",get:function(){var e=this;return T(Ee(this.users.values()).sort((function(e,t){return e.joinedTime-t.joinedTime})),"userId").filter((function(t){return t.userId&&t.id!==e.currentPid}))}},{key:"init",value:function(e,t){var r,n=xi(e);try{for(n.s();!(r=n.n()).done;){var i=r.value,a=new Di(i,this.serviceManager);this.users.set(i.user,a),t===i.user&&(this.currentUid=i.user)}}catch(e){n.e(e)}finally{n.f()}this.currentPid=t,this.serviceManager.internalChannel.on("user",this.handleEvent)}},{key:"clear",value:function(){this.currentPid="",this.currentUid="",this.users.clear(),this.serviceManager.internalChannel.off("user",this.handleEvent)}},{key:"handleEvent",value:function(e,t,r){var n=this;if(this.logger.info("userEvent ".concat(e," ").concat(JSON.stringify(t))),"join"===e){var i=new Di(t,this.serviceManager);this.users.set(t.user,i),this.emit("user","join",i)}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})));Ee(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 n.streamManager.remove(e,!0)}));var c=this.users.get(t.user);this.users.delete(t.user),this.emit("user","leave",c);var u=new Di(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.currentPid,roomId:this.serviceManager.roomId,propertiesJsonStr:JSON.stringify(le({},ye,e))})}}])}();function Fi(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 Ui(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)?Ui(e,t):void 0}}(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}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 Ui(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function Gi(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Vi(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Gi(Object(r),!0).forEach((function(t){le(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Gi(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Bi(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Bi=function(){return!!e})()}var qi=function(){function e(t){var r,n,i,a;x(this,e),n=this,i=G(i=e),r=U(n,Bi()?Reflect.construct(i,[],G(n).constructor):i.apply(n,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}),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.sync=r.sync.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,n=e.find((function(e){return"admin"===e.info.owner&&"mixed"===e.type}));null==n||null===(r=n.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,n=e.info.owner,i=e.media,a=i.video,o=i.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=Ee(this.streams.values()).find((function(e){var t;return e.info.owner===n&&(null===(t=e.media)||void 0===t||null===(t=t.video)||void 0===t?void 0:t.source)===s}));c&&this.remove(c.id),this.reporter.trace.streamsEvent(r,"add"),this.streams.set(e.id,e);var u=(null==a?void 0:a.source)===E.SCREENCAST;((null==a?void 0:a.source)===E.CAMERA||u)&&this.emit("stream","add",{id:r,owner:n,mediaType:"video",auxiliary:u}),(null==o?void 0:o.source)!==$.MIC&&(null==o?void 0:o.source)!==$.MIXED||this.emit("stream","add",{id:r,owner:n,mediaType:"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 n=r.media,i=n.video,a=n.audio,o=r.info.owner,s=(null==i?void 0:i.source)===E.SCREENCAST;((null==i?void 0:i.source)===E.CAMERA||s)&&this.emit("stream","remove",{id:e,owner:o,mediaType:"video",auxiliary:s}),(null==a?void 0:a.source)!==$.MIC&&(null==a?void 0:a.source)!==$.MIXED||this.emit("stream","remove",{id:e,owner:o,mediaType:"audio"})}}},{key:"getStreamByTrackId",value:function(e){return Ee(this.streams.values()).find((function(t){var r,n;return(null===(r=t.media.audio)||void 0===r?void 0:r.trackId)===e||(null===(n=t.media.video)||void 0===n?void 0:n.trackId)===e}))}},{key:"handleEvent",value:function(e,t){var r=this,n=e.streamId,i=e.status,a=e.stream,o=e.msg,s=e.totalVer,c={add:[],remove:[],update:["audio.status","video.status","properties","highestResolutionLevel"]}[i];c.length&&!c.includes(o.field)||this.logger.info("streamEvent",e);var u=this.totalVer;if(s===u+1||s==he||t)if("add"===i){if(!a||!a.media||!a.info)return;this.add(a)}else if("remove"===i)this.remove(n,!0);else if("update"===i){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(n);if(g){v!==he&&(g.version=v);var y=g.media,b=y.audio,S=y.video,k=g.info.owner;if("audio.status"===l||"video.status"===l){var P;"audio.status"===l?(P="audio",b.status=d):"video.status"===l&&(P="video",S.status=d),this.reporter.trace.streamsEvent(n,"".concat(P," ").concat(d));var w="active"===d?"unmute":"mute";this.emit("stream","update",{owner:k,id:n,updateStatus:"".concat(w,"-").concat(P)})}else if("activeInput"===l){var O=[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(O),l),this.emit("stream","volumeActive",{owners:O})}else if("properties"==l){var T,I=JSON.parse(m);g.info.attributesJsonStr=JSON.stringify(Vi(Vi({},JSON.parse(g.info.attributesJsonStr)),I));var R=(null===(T=g.media)||void 0===T||null===(T=T.video)||void 0===T?void 0:T.source)===E.SCREENCAST;this.emit("stream","update",{owner:k,id:n,properties:I,auxiliary:R})}else"highestResolutionLevel"===l&&(g.media.video.highestResolutionLevel=h,this.emit("stream","update",{owner:k,id:n,highestResolutionLevel:h}))}}t||s<=this.totalVer&&s!==he||(s===u+1&&(this.totalVer=s),s>u+1&&!t&&this.sync())}},{key:"sync",value:(t=D(ue.mark((function e(){var t,r,n,i,a,o,s,c,u,l,d,p,f,v=this;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=[],r=[],e.next=4,this.rtcSignaling.getStreamsVer({});case 4:n=e.sent,i=n.streamVersions,a=n.totalVer,o=Ee(this.streams.keys()).filter((function(e){return!e.includes("vad")})),s=Fi(i),e.prev=9,s.s();case 11:if((c=s.n()).done){e.next=19;break}if(u=c.value,l=u.streamId,d=u.streamVer,!l.includes("vad")){e.next=15;break}return e.abrupt("continue",17);case 15:(p=this.streams.get(l))?p&&p.version!==d&&t.push(l):(r.push(l),t.push(l));case 17:e.next=11;break;case 19:e.next=24;break;case 21:e.prev=21,e.t0=e.catch(9),s.e(e.t0);case 24:return e.prev=24,s.f(),e.finish(24);case 27:if(f=i.map((function(e){return e.streamId})),o.filter((function(e){return!f.includes(e)})).forEach((function(e){v.handleEvent({status:"remove",streamId:e,stream:v.streams.get(e),totalVer:a},!0)})),this.reporter.trace.syncEvent("stream",o,f),this.totalVer=a,0!==t.length){e.next=34;break}return e.abrupt("return");case 34:this.rtcSignaling.getStreams({streamIds:t}).then((function(e){var n,i=e.totalVer,a=e.streams,o=new Map,s=Fi(v.streams.values());try{for(s.s();!(n=s.n()).done;){var c=n.value;o.set(c.id,c)}}catch(e){s.e(e)}finally{s.f()}var u,l=Fi(a);try{for(l.s();!(u=l.n()).done;){var d=u.value;v.streams.has(d.id)?v.streams.set(d.id,d.stream):o.set(d.id,d.stream)}}catch(e){l.e(e)}finally{l.f()}for(var p=t.map((function(e){return o.get(e)})).filter((function(e){return!!e})).sort((function(e,t){return e.version-t.version})),f=0;f<p.length;f++){var m=p[f];r.includes(m.id)&&v.handleEvent({status:"add",streamId:m.id,stream:m,totalVer:i},!0)}o.clear(),v.totalVer=i}));case 35:case"end":return e.stop()}}),e,this,[[9,21,24,27]])}))),function(){return t.apply(this,arguments)})},{key:"handleSyncEvent",value:function(e){var t=e.streamsVer;this.totalVer<t&&this.sync()}}]);var t}();function Hi(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 Wi(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)?Wi(e,t):void 0}}(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}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 Wi(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function Yi(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Qi(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Yi(Object(r),!0).forEach((function(t){le(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Yi(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Ji(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Ji=function(){return!!e})()}var Ki=function(){function e(t,r){var n,o,s,c;return x(this,e),o=this,s=G(s=e),n=U(o,Ji()?Reflect.construct(s,[],G(o).constructor):s.apply(o,c)),Object.defineProperty(n,"rtcSignaling",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"sessionManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"groupManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"rtcUserManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"streamManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"remoteAudioTrack",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"internalChannel",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"reporter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"logger",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"roomId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"defaultVideoStreamType",{enumerable:!0,configurable:!0,writable:!0,value:"high"}),Object.defineProperty(n,"client",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"subscribedAudioStream",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"micMixedGroups",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"iceConfig",{enumerable:!0,configurable:!0,writable:!0,value:{level:0,iceServerList:[]}}),Object.defineProperty(n,"handleSubscribeParam",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t,r=e.mediaType,o=e.action,s=e.uid,c=e.auxiliary,u=n.getStream(e),l=n.rtcUserManager.users.get(s),d=n.groups.some((function(e){return e.joined})),p="mcu"===s?n.remoteAudioTrack:c?null==l?void 0:l.auxiliaryTrack:null==l?void 0:l.videoTrack;return"mcu"===s&&"video"===r||s&&"mcu"!==s&&"audio"===r?t=new i(a.InvaildArgument,"only support ".concat(o," mcu audio")):"mcu"===s&&d&&"subscribe"===o?t=new i(a.SubscribeInvaild,"cannot subscribe mcu while in group"):"subscribe"===o&&p?t=new i(a.SubscribeInvaild,"duplicated subscription"):u&&("unsubscribe"!==o||p)||(n.logger.warn("".concat(s," videoTrack not existed")),t=new i(a.SubscribeStreamNotExisted)),{uid:s,user:l,error:t,stream:u,session:"unsubscribe"===o?n.sessionManager.getSessionByStreamId(u.id):null,resolutionInfo:"video"===r?Ft(n.defaultVideoStreamType,Ce(u)):null}}}),Object.defineProperty(n,"handleJoinResponse",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=e.room,r=e.id,i=t.participants,a=t.streams,o=t.streamsVer,s=t.groupList,c=t.groupListVer;n.streamManager.init(a,o),n.groupManager.init(s,c),n.rtcUserManager.init(i,r),n.streamManager.on("stream",n.handleStreamEvent),n.rtcUserManager.on("user",n.handleUserEvent),n.groupManager.on("group",n.handleGroupEvent)}}),n.reporter=r,n.logger=n.reporter.getLoggerWithPrefix("[rtc-svcMgr]"),n.internalChannel=new _({reporter:r,sdkVersion:me}),n.rtcSignaling=new rn(n.internalChannel),n.client=t,n.micMixedGroups=new Set,n.groupManager=new _i(n),n.streamManager=new qi(n),n.rtcUserManager=new Ni(n,n.streamManager),n.sessionManager=new Ei(t,n),n.subscribedAudioStream="",n.handleStreamEvent=n.handleStreamEvent.bind(n),n.handleUserEvent=n.handleUserEvent.bind(n),n.handleGroupEvent=n.handleGroupEvent.bind(n),n}return B(e,c),F(e,[{key:"localTracks",get:function(){return Ee(this.sessionManager.sessions.values()).filter((function(e){return e.state===ie.Processing&&e instanceof ui})).map((function(e){return e.tracks[0]}))}},{key:"groups",get:function(){var e=this;return this.groupManager.groupList.map((function(t){return Qi(Qi({},t),{},{audioPublished:e.micMixedGroups.has(t.id)})}))}},{key:"handleStreamEvent",value:function(e,t){var r=t.id,n=t.owner,i=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(n),p=this.rtcUserManager.users.get(null==d?void 0:d.user),f=n===this.rtcUserManager.currentPid;if("add"===e&&!f&&p)this.client.emit("user-published",p,i,a);else if("remove"===e&&p&&!f)this.sessionManager.removeSession(void 0,r),"video"===i&&(a&&p.auxiliaryTrack&&(p.auxiliaryTrack.stop(),p.auxiliaryTrack=null),!a&&p.videoTrack&&(p.videoTrack.stop(),p.videoTrack=null)),this.client.emit("user-unpublished",p,i,a);else if("update"===e){if(s)this.client.emit("user-info-updated",(null==p?void 0:p.userId)||this.rtcUserManager.currentUid,s);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 y=Ft(Ut(u),Ce(m.stream));m.applyOptions(y,!0)}}}else if("volumeActive"===e){var b=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",b)}}},{key:"handleGroupEvent",value:function(e,t,r){var n=this;if("add"===e)this.client.emit("group-add",t);else if("remove"===e){var i;if(this.micMixedGroups.delete(t.id),this.logger.info("unsub group for group removed",t),r&&(null===(i=r.audio)||void 0===i?void 0:i.id)===this.subscribedAudioStream){var a=r.audio;this.sessionManager.batchUnscribe([{stream:a,session:this.sessionManager.getSessionByStreamId(a.id)}]).then((function(){a.id===n.subscribedAudioStream&&(n.updateSubscribedAudioStream(!1,""),n.remoteAudioTrack.stop(),n.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)}},{key:"getStream",value:function(e){var t,r=e.groupId,n=e.uid,i=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"===n?Ee(this.streamManager.streams.values()):null===(t=this.rtcUserManager.users.get(n))||void 0===t?void 0:t.relatedStreams;return"mcu"===n?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)===(i?E.SCREENCAST:E.CAMERA)}))}},{key:"join",value:(s=D(ue.mark((function e(t){var r,n,i,a,o,s;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.logger.info("join",Ae.gslb[0]),e.next=3,this.rtcSignaling.join(t,Ae.gslb[0]);case 3:return n=e.sent,i=n.joinResponse,a=n.iceConfig,null!=(null==(o=this.internalChannel.staticConfig)||null===(r=o.websdkConfig)||void 0===r?void 0:r.simulcast)&&(Ae.simulcast=null==o||null===(s=o.websdkConfig)||void 0===s?void 0:s.simulcast),this.roomId=i.room.id,c=i.room.ssrcMask,u=i.room.ssrcClientSequence,l=void 0,l=Math.log2(c+1),u>2147483647>>l||(Un=c,Fn=(u<<l|2147483648)>>>0),this.reporter.updateCommonInfo({roomId:this.roomId,participantId:i.id}),a&&a.uis&&this.setIceConfig(a.uis),this.sessionManager.start(),this.handleJoinResponse(i),e.abrupt("return",i);case 14:case"end":return e.stop()}var c,u,l}),e,this)}))),function(e){return s.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.stop(),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:(o=D(ue.mark((function e(t){var r,n,i,a;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=this.micMixedGroups,n=this.groupManager,i=this.groups,a=[],i.some((function(e){return e.joined}))?a.push.apply(a,Ee(Ee(r).map((function(e){var t;return null===(t=n.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 5:case"end":return e.stop()}}),e,this)}))),function(e){return o.apply(this,arguments)})},{key:"unpublish",value:function(e){var t=this,r=new Set(e.map((function(e){return e.getTrackId()}))),n=Ee(this.sessionManager.sessions.values()).filter((function(e){var t;return e instanceof ui&&r.has(null===(t=e.tracks)||void 0===t||null===(t=t[0])||void 0===t?void 0:t.getTrackId())}));return n.forEach((function(e){t.reporter.trace.unpublish(e.id)})),this.sessionManager.batchUnPublish(n)}},{key:"getRemoteTrack",value:function(e,t){var r=this;if(!t.mediaStream)return null;var n=this.rtcUserManager.users.get(e.uid);if("audio"===e.mediaType){var i=this.remoteAudioTrack;return this.remoteAudioTrack=je(t.mediaStream,"audio","mcu",this.remoteAudioTrack),this.updateSubscribedAudioStream(!0,""),i||t.once("audio-first-frame",(function(){r.remoteAudioTrack.emit("first-frame-decoded")})),this.remoteAudioTrack}return n.getRemoteVideoTrack(t,e.auxiliary)}},{key:"batchSubscribe",value:(n=D(ue.mark((function e(t){var r=this;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.sessionManager.batchSubscribe(t.map(this.handleSubscribeParam)).then(function(){var e=D(ue.mark((function e(n){var i;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=[],t.forEach((function(e,t){var a=e.auxiliary,o=e.uid,s=n[t],c=s.error,u=s.subscription;i.push({uid:o,auxiliary:a,error:c,track:r.getRemoteTrack(e,u)})})),e.abrupt("return",i);case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 1:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"batchUnsubscribe",value:function(e){var t,r=this,n=[],i=Hi(e);try{for(i.s();!(t=i.n()).done;){var a=t.value,o=this.handleSubscribeParam(Qi(Qi({},a),{},{action:"unsubscribe"})),s=o.session,c=o.stream,u=o.user,l=o.uid;this.reporter.trace.unsubscribe({sessionId:s.id,remoteStreamId:c.id,remoteUserId:l}),c&&n.push(Qi({stream:c,user:u,session:s},a))}}catch(e){i.e(e)}finally{i.f()}return n.length?this.sessionManager.batchUnscribe(n).then((function(e){for(var t=0,i=n;t<i.length;t++){var a,o=i[t],s=o.mediaType,c=o.user,u=o.auxiliary;if("audio"===s)r.updateSubscribedAudioStream(!1,""),null===(a=r.remoteAudioTrack)||void 0===a||a.stop(),r.remoteAudioTrack=null;else if(u){var l;null===(l=c.auxiliaryTrack)||void 0===l||l.stop(),c.auxiliaryTrack=null}else{var d;null===(d=c.videoTrack)||void 0===d||d.stop(),c.videoTrack=null}}return e})):Promise.resolve()}},{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 i(a.InvaildArgument,"cannot find audio info of the group");if(this.subscribedAudioStream)throw new i(a.InvaildState,"you were subscribed group or channel already");return this.sessionManager.batchSubscribe([{stream:r,uid:e}]).then((function(n){return t.updateSubscribedAudioStream(!0,r.id),t.remoteAudioTrack=je(n[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 i(a.InvaildState,"you were not subscribed the group")):this.sessionManager.batchUnscribe([{stream:r,session:this.sessionManager.getSessionByStreamId(r.id)}]).then((function(){r.id===t.subscribedAudioStream&&(t.updateSubscribedAudioStream(!1,""),t.remoteAudioTrack.stop(),t.remoteAudioTrack=null)})):Promise.reject(new i(a.InvaildArgument,"cannot find audio info of the group"))}},{key:"setRemoteStreamType",value:function(e,t,r){this.logger.info("setRemoteStreamType",e,t,r);var n=this.getStream({uid:e,mediaType:"video",auxiliary:r}),i=this.sessionManager.getSessionByStreamId(n.id),a=Ft(t,Ce(n));return i.applyOptions(a,!1)}},{key:"joinGroup",value:function(e){var t=this,r=e.groupId,n=e.publishAudioToGroup;return this.groupManager.join(e).then((function(e){t.logger.info("joinGroup response",e);var i=e.joinGroupAudioSuccess;n&&i&&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=D(ue.mark((function e(t,r){var n,i,a,o=arguments;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=!(o.length>2&&void 0!==o[2])||o[2],i=[],null!=r&&i.push(this.groupManager.groups.get(r).audioInfo.label),!this.localTracks.includes(t)){e.next=18;break}if(a=this.streamManager.getStreamByTrackId(t.getTrackId()),null==r){e.next=14;break}return e.next=8,this.mixGroupAudio(a.id,i[0],"mix");case 8:if(this.micMixedGroups.add(r),!n){e.next=12;break}return e.next=12,this.mixGroupAudio(a.id,"common","unmix");case 12:e.next=16;break;case 14:return e.next=16,this.mixGroupAudio(a.id,"common","mix");case 16:e.next=22;break;case 18:return n||i.push("common"),e.next=21,this.sessionManager.batchPublish([t],i);case 21:this.micMixedGroups.add(r);case 22:case"end":return e.stop()}}),e,this)}))),function(e,t){return r.apply(this,arguments)})},{key:"unpublishFromGroup",value:(t=D(ue.mark((function e(t,r){var n,i,a,o=arguments;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=o.length>2&&void 0!==o[2]&&o[2],i=this.groupManager.groups.get(r).audioInfo.label,a=this.streamManager.getStreamByTrackId(t.getTrackId()),e.next=5,this.mixGroupAudio(a.id,i,"unmix");case 5:if(this.micMixedGroups.delete(r),!n){e.next=9;break}return e.next=9,this.mixGroupAudio(a.id,"common","mix");case 9:case"end":return e.stop()}}),e,this)}))),function(e,r){return t.apply(this,arguments)})}]);var t,r,n,o,s}();function zi(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(zi=function(){return!!e})()}var $i={timestamp:-1,maxPlayLevel:-1,maxRecLevel:-1},Xi=function(){function e(t){var r,n,i,a,o;return x(this,e),n=this,i=G(i=e),r=U(n,zi()?Reflect.construct(i,[],G(n).constructor):i.apply(n,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=D(ue.mark((function e(){var t,n,i,a,o;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.client.getLocalAudioStats();case 2:return t=e.sent,n=t.audioLevel,e.next=6,r.client.getRemoteAudioStats();case 6:i=e.sent,a=i.audioLevel,o={timestamp:Date.now(),maxRecLevel:Math.min(1,n||0),maxPlayLevel:Math.min(1,Math.max(0,a||0))},r.audioDeviceBufferInfo.timestamp>0&&(r.audioDeviceBufferReport={attr_duration_ms:Ze(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 11: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({},$i),r.client=t,r}return B(e,an),F(e)}();function Zi(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ea(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Zi(Object(r),!0).forEach((function(t){le(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Zi(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function ta(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 ra(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)?ra(e,t):void 0}}(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}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 ra(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function na(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(na=function(){return!!e})()}var ia=function(){function t(){var e,r,n,i;return x(this,t),r=this,n=G(n=t),e=U(r,na()?Reflect.construct(n,[],G(r).constructor):n.apply(r,i)),Object.defineProperty(e,"channelName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(e,"id",{enumerable:!0,configurable:!0,writable:!0,value:b(6)}),Object.defineProperty(e,"reporter",{enumerable:!0,configurable:!0,writable:!0,value:R(e.id)}),Object.defineProperty(e,"logger",{enumerable:!0,configurable:!0,writable:!0,value:e.reporter.getLoggerWithPrefix("[rtc-client]")}),Object.defineProperty(e,"serviceManager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(e,"monitor",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(e,"syncStatTimer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(e,"clientStatSync",{enumerable:!0,configurable:!0,writable:!0,value:[0,0,0,0,0,0]}),Object.defineProperty(e,"currentClientState",{enumerable:!0,configurable:!0,writable:!0,value:""}),e.serviceManager=new Ki(e,e.reporter),e.handleVisibilitychange=e.handleVisibilitychange.bind(e),e.handleNetworkQuality=e.handleNetworkQuality.bind(e),e.handleConnectionChangeEvent=e.handleConnectionChangeEvent.bind(e),e.handlePageUnload=e.handlePageUnload.bind(e),e.init(),e}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.localTracks}},{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,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];var a,o,s,c,u,l;"network-quality"!==e&&"volume-indicator"!==e&&(a=this.logger).info.apply(a,["client emit event",e].concat(n));return(o=t,s="emit",c=this,l=de(G(1&(u=3)?o.prototype:o),s,c),2&u&&"function"==typeof l?function(e){return l.apply(c,e)}:l)([e].concat(n))}},{key:"join",value:function(e){var t=this;return this.logger.info("join",e),this.addEventListeners(),this.serviceManager.join(e).then((function(r){var n;return t.channelName=e.channel,t.monitor=new Xi(t),t.monitor.on("audio-device-buffer",(function(e){t.reporter.metric.audioDeviceBuffer(e)})),t.syncStatTimer=d((function(){t.sendClientStatToRemote()}),2e3,"interval"),{remoteUsers:t.remoteUsers,timeLeft:null===(n=r.room)||void 0===n?void 0:n.timeLeft}})).catch((function(e){throw t.init(),e}))}},{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:function(e){var t=this;if(this.logger.info("publish",(Array.isArray(e)?e:[e]).map((function(e){return e.trackMediaType}))),"connected"!==this.connectionState)return Promise.reject(new i(a.PublishNotJoinChannel));var r,n=(Array.isArray(e)?e:[e]).filter((function(e){return e instanceof ir&&!t.localTracks.includes(e)})),o=n.concat(this.localTracks),s=le(le(le(le({},X.CAMERA,0),X.SCREENCAST,0),$.MIC,0),$.MIXED,0),c=ta(o);try{for(c.s();!(r=c.n()).done;){var u=r.value;if(s[u.source]++,s[u.source]>=2)throw new i(a.QuotaLimitExceed,"".concat(u.source," published already"))}}catch(e){c.e(e)}finally{c.f()}if(!n.length)throw new i(a.PublishNoStream);return this.serviceManager.publish(n)}},{key:"unpublish",value:function(e){this.logger.info("unpublish",e);var t=Array.isArray(e)?e:[e];return e||(t=this.localTracks),this.logger.info("unpublish",t.map((function(e){return e.trackMediaType}))),this.serviceManager.unpublish(t)}},{key:"subscribe",value:(n=D(ue.mark((function e(t,r,n){return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.logger.info("subscribe",t,r,n),"connected"===this.connectionState){e.next=3;break}throw new i(a.SubscribeNotJoinChannel);case 3:return e.abrupt("return",this.serviceManager.batchSubscribe([{uid:t,mediaType:r,action:"subscribe",auxiliary:n}]).then((function(e){var t=e[0],r=t.error,n=t.track;if(r)throw r;return n})));case 4:case"end":return e.stop()}}),e,this)}))),function(e,t,r){return n.apply(this,arguments)})},{key:"batchSubscribe",value:function(e){if(this.logger.info("batchSubscribe",e),Array.isArray(e)&&e.length){if("connected"!==this.connectionState)throw new i(a.SubscribeNotJoinChannel);return this.serviceManager.batchSubscribe(e.map((function(e){return ea(ea({},e),{},{action:"subscribe"})})))}}},{key:"unsubscribe",value:(r=D(ue.mark((function e(t,r,n){return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.logger.info("unsubscribe",t,r),e.abrupt("return",this.serviceManager.batchUnsubscribe([{uid:t,auxiliary:n,mediaType:r,action:"unsubscribe"}]).then((function(e){var t,r=null==e||null===(t=e[0])||void 0===t?void 0:t.error;if(r)throw r})));case 2:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return r.apply(this,arguments)})},{key:"batchUnsubscribe",value:function(e){if(this.logger.info("batchUnsubscribe",e),Array.isArray(e)&&e.length)return"connected"!==this.connectionState?Promise.reject(new i(a.SubscribeNotJoinChannel)):this.serviceManager.batchUnsubscribe(e.map((function(e){return ea(ea({},e),{},{action:"unsubscribe"})})))}},{key:"getLocalAudioStats",value:function(){return this.serviceManager.sessionManager.getLocalAudioStats("user")}},{key:"getLocalVideoStats",value:function(){return this.serviceManager.sessionManager.getLocalVideoStats("user")}},{key:"setRemoteVideoStreamType",value:function(e,t,r){var n=this;this.logger.info("setRemoteVideoStreamType",e,t,r);var i=this.remoteUsers.find((function(t){return t.userId===e}));return null!=i&&i.relatedStreams?this.serviceManager.setRemoteStreamType(e,t,r).then((function(){n.emit("stream-type-changed",e,t,r)})):(this.logger.info("".concat(e," videoTrack not existed")),Promise.reject("viedoTrack doesnt exiested"))}},{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,n,i=t.properties,a=t.userId;e[a]={downlinkNetworkQuality:Number((null==i||null===(r=i[ye])||void 0===r?void 0:r[se.DOWNLINK])||0),uplinkNetworkQuality:Number((null==i||null===(n=i[ye])||void 0===n?void 0:n[se.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=Xe(null,t[se.UPLINK]),n=Xe(null,this.currentClientState[se.UPLINK]),i=Xe(null,t[se.DOWNLINK]),a=Xe(null,this.currentClientState[se.DOWNLINK]);r===n&&i===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?I.APP_BACKGROUND:I.APP_FOREGROUND;(e.isAndroid()||e.isIOS())&&(this.reporter.sender.sendEvent(r),this.clientStatSync[se.BACKGROUND_MODE]=Number(t))}},{key:"handleNetworkQuality",value:function(e,t){this.clientStatSync[se.UPLINK]=e,this.clientStatSync[se.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);var t=e.userData,r=e.groupId,n=new TextEncoder;if(!r||n.encode(r).length>64)throw new i(a.InvaildArgument,"join group with invalid groupId");if(t){var o=new TextEncoder;if("string"!=typeof t||o.encode(t).length>64)throw new i(a.InvaildArgument,"join group with invalid userData")}return this.serviceManager.joinGroup(e)}},{key:"leaveGroup",value:function(e){return this.logger.info("leaveGroup",e),this.serviceManager.leaveGroup({groupId:e,publishAudioToChannel:!1})}},{key:"setGroupName",value:function(e,t){this.logger.info("setGroupName",e,t);var r=new TextEncoder;if(!t||r.encode(t).length>64)throw new i(a.InvaildArgument,"update group with invalid name");return this.serviceManager.setGroupProperties(e,{key:"name",value:t})}},{key:"subscribeGroup",value:function(e){return this.logger.info("subscribeGroup",e),this.serviceManager.subscribeGroup(e)}},{key:"unsubscribeGroup",value:function(e){return this.logger.info("unsubscribeGroup",e),this.serviceManager.unsubscribeGroup(e)}},{key:"mixAudioToGroup",value:function(e,t,r){if(this.logger.info("mixAudioToGroup",e,t,r),"audio"!==e.trackMediaType)throw new i(a.InvaildArgument,"only support publish audio to group");if("connected"!==this.connectionState)throw new i(a.PublishNotJoinChannel);if(t){if(this.logger.info("mix audio track:".concat(e.getTrackId()," to group ").concat(r)),null==r&&this.serviceManager.micMixedGroups.size)throw new i(a.InvaildState,"cannot mix audio to channel while mixing to others group");return this.serviceManager.publishToGroup(e,r,!0)}if(this.logger.info("unmix audio track:".concat(e.getTrackId()," from group ").concat(r)),!this.serviceManager.micMixedGroups.has(r))throw new i(a.InvaildState,"cannot unmix audio from the unmixed group");return this.serviceManager.unpublishFromGroup(e,r)}},{key:"dismissGroup",value:function(e){return this.logger.info("dismissGroup",e),this.serviceManager.dismissGroup(e)}},{key:"register",value:function(e){this.logger.info("register",e),e.attach(this.serviceManager.internalChannel,this.serviceManager)}},{key:"ungister",value:function(e){this.logger.info("ungister",e),e.detach(this.serviceManager.internalChannel)}}]);var r,n}(),aa={height:360,width:640},oa=function(){var e=D(ue.mark((function e(t){var r;return ue.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 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();function sa(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(sa=function(){return!!e})()}ft();var ca=t().log;ca.info("sdk version",me),ca.info("userAgent",navigator.userAgent),ca.info("href: ".concat(location.href,", in_iframe=").concat(window!==window.parent)),oa(ca);var ua=function(){function e(){var t,r,n,i;if(x(this,e),r=this,n=G(n=e),t=U(r,sa()?Reflect.construct(n,[],G(r).constructor):n.apply(r,i)),Object.defineProperty(t,"VERSION",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),t.VERSION=me,!Pe.checkSupported())return U(t);var a=qe.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)})),y.on("autoplay-failed",(function(e){t.emit("autoplay-failed",e)})),t}return B(e,c),F(e,[{key:"createClient",value:function(){return ca.info("createClient"),new ia}},{key:"checkSystemRequirements",value:function(){return ca.info("checkSystemRequirements"),Pe.checkSupported()}},{key:"getSupportedCodec",value:function(){return ca.info("getSupportedCodec"),Pe.getSupportedCodec()}},{key:"createCameraVideoTrack",value:function(e){return ca.info("createCameraVideoTrack",e),lr(e)}},{key:"createMicrophoneAudioTrack",value:function(e){return ca.info("createMicrophoneAudioTrack",e),ur(e)}},{key:"createCustomVideoTrack",value:function(e){return ca.info("createCustomVideoTrack",e),fr(e)}},{key:"createCustomAudioTrack",value:function(e){return ca.info("createCustomAudioTrack",e),vr(e)}},{key:"createScreenVideoTrack",value:function(e){return ca.info("createScreenVideoTrack",e),dr(e)}},{key:"createMicrophoneAndCameraTracks",value:(r=D(ue.mark((function e(t,r){return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return ca.info("createMicrophoneAndCameraTracks",{videoConfig:t,audioConfig:r}),e.abrupt("return",pr(t,r));case 2:case"end":return e.stop()}}),e)}))),function(e,t){return r.apply(this,arguments)})},{key:"getCameras",value:function(){return ca.info("getCameras"),qe.getCameras()}},{key:"getDevices",value:(t=D(ue.mark((function e(){var t;return ue.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return ca.info("start getDevices"),e.prev=1,e.next=4,qe.getDevices();case 4:return t=e.sent,ca.info("getDevices suc",t),e.abrupt("return",t);case 9:return e.prev=9,e.t0=e.catch(1),ca.info("error getDevices ",e.t0),e.abrupt("return",e.t0);case 13:case"end":return e.stop()}}),e,null,[[1,9]])}))),function(){return t.apply(this,arguments)})},{key:"getPlaybackDevices",value:function(){return ca.info("getPlaybackDevices"),qe.getPlaybackDevices()}},{key:"getMicrophones",value:function(){return ca.info("getMicrophones"),qe.getMicrophones()}},{key:"setLogLevel",value:function(e){console.warn("[dingrtc]: setLogLevel is deprecated"),M(Ae._consoleLogLevel),ca.info(" setLogLevel - ignored and hint deprecated",e)}},{key:"setClientConfig",value:function(e){ca.info("setClientConfig",e),Ae.setClientConfig(e)}}]);var t,r}(),la=new ua;export{$ as AudioSourceInfo,pe as AudioSourceState,aa as FALLBACK_SUB_VIDEO_PROFILE,X as VideoSourceInfo,la as default};