dingrtc 3.6.1-108.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +131 -0
- package/dist/index.d.ts +3716 -0
- package/dist/index.esm.js +3 -0
- package/dist/index.js +3 -0
- package/dist/index.umd.js +25 -0
- package/package.json +28 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import"webrtc-adapter";import{Environment as e,isObject as t,isNumber as r,isString as n,addTimer as i,removeTimer as o,getReporter as a,Debouncer as s,tryJsonStringify as c,DingRTCError as u,ErrorCode as d,EventBus as l,EventEmitter as p,createUuid as f,SystemType as v,BrowserType as m,setGslb as h,parseAudioDeviceError as y,parseVideoDeviceError as g,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 A}from"@dingrtc/channel";function _(e,t,r,n,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,i)}function M(e){return function(){var t=this,r=arguments;return new Promise(function(n,i){var o=e.apply(t,r);function a(e){_(o,n,i,a,s,"next",e)}function s(e){_(o,n,i,a,s,"throw",e)}a(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);if("object"!=D(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return e+""}(e,"string");return"symbol"==D(t)?t:t+""}function j(e,t){for(var r=0;t.length>r;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 N(e,t,r){return t&&j(e.prototype,t),r&&j(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function L(e,t){if(t&&("object"==D(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function G(e){return G=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},G(e)}function U(e,t){return U=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},U(e,t)}function F(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,q={exports:{}},H={exports:{}};(B=H).exports=function(e,t){this.v=e,this.k=t},B.exports.__esModule=!0,B.exports.default=B.exports;var Y=H.exports,J={exports:{}},W={exports:{}};!function(e){function t(r,n,i,o){var a=Object.defineProperty;try{a({},"",{})}catch(r){a=0}e.exports=t=function(e,r,n,i){function o(r,n){t(e,r,function(e){return this._invoke(r,n,e)})}r?a?a(e,r,{value:n,enumerable:!i,configurable:!i,writable:!i}):e[r]=n:(o("next",0),o("throw",1),o("return",2))},e.exports.__esModule=!0,e.exports.default=e.exports,t(r,n,i,o)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(W);var Q=W.exports;!function(e){var t=Q;function r(){
|
|
2
|
+
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
3
|
+
var n,i,o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",s=o.toStringTag||"@@toStringTag";function c(e,r,o,a){var s=Object.create((r&&r.prototype instanceof d?r:d).prototype);return t(s,"_invoke",function(e,t,r){var o,a,s,c=0,d=r||[],l=!1,p={p:0,n:0,v:n,a:f,f:f.bind(n,4),d:function(e,t){return o=e,a=0,s=n,p.n=t,u}};function f(e,t){for(a=e,s=t,i=0;!l&&c&&!r&&d.length>i;i++){var r,o=d[i],f=p.p,v=o[2];e>3?(r=v===t)&&(s=o[(a=o[4])?5:(a=3,3)],o[4]=o[5]=n):f>=o[0]&&((r=2>e&&o[1]>f)?(a=0,p.v=t,p.n=o[1]):v>f&&(r=3>e||o[0]>t||t>v)&&(o[4]=e,o[5]=t,p.n=v,a=0))}if(r||e>1)return u;throw l=!0,t}return function(r,d,v){if(c>1)throw TypeError("Generator is already running");for(l&&1===d&&f(d,v),a=d,s=v;(i=2>a?n:s)||!l;){o||(a?3>a?(a>1&&(p.n=-1),f(a,s)):p.n=s:p.v=s);try{if(c=2,o){if(a||(r="next"),i=o[r]){if(!(i=i.call(o,s)))throw TypeError("iterator result is not an object");if(!i.done)return i;s=i.value,2>a&&(a=0)}else 1===a&&(i=o.return)&&i.call(o),2>a&&(s=TypeError("The iterator does not provide a '"+r+"' method"),a=1);o=n}else if((i=(l=0>p.n)?s:e.call(t,p))!==u)break}catch(e){o=n,a=1,s=e}finally{c=1}}return{value:i,done:l}}}(e,o,a),!0),s}var u={};function d(){}function l(){}function p(){}i=Object.getPrototypeOf;var f=[][a]?i(i([][a]())):(t(i={},a,function(){return this}),i),v=p.prototype=d.prototype=Object.create(f);function m(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,t(e,s,"GeneratorFunction")),e.prototype=Object.create(v),e}return l.prototype=p,t(v,"constructor",p),t(p,"constructor",l),l.displayName="GeneratorFunction",t(p,s,"GeneratorFunction"),t(v),t(v,s,"Generator"),t(v,a,function(){return this}),t(v,"toString",function(){return"[object Generator]"}),(e.exports=r=function(){return{w:c,m:m}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports}(J);var K=J.exports,z={exports:{}},$={exports:{}},X={exports:{}};!function(e){var t=Y,r=Q;e.exports=function e(n,i){function o(e,r,a,s){try{var c=n[e](r),u=c.value;return u instanceof t?i.resolve(u.v).then(function(e){o("next",e,a,s)},function(e){o("throw",e,a,s)}):i.resolve(u).then(function(e){c.value=e,a(c)},function(e){return o("throw",e,a,s)})}catch(e){s(e)}}var a;this.next||(r(e.prototype),r(e.prototype,"function"==typeof Symbol&&Symbol.asyncIterator||"@asyncIterator",function(){return this})),r(this,"_invoke",function(e,t,r){function n(){return new i(function(t,n){o(e,r,t,n)})}return a=a?a.then(n,n):n()},!0)},e.exports.__esModule=!0,e.exports.default=e.exports}(X);var Z=X.exports;!function(e){var t=K,r=Z;e.exports=function(e,n,i,o,a){return new r(t().w(e,n,i,o),a||Promise)},e.exports.__esModule=!0,e.exports.default=e.exports}($);var ee=$.exports;!function(e){var t=ee;e.exports=function(e,r,n,i,o){var a=t(e,r,n,i,o);return a.next().then(function(e){return e.done?e.value:a.next()})},e.exports.__esModule=!0,e.exports.default=e.exports}(z);var te=z.exports,re={exports:{}};!function(e){e.exports=function(e){var t=Object(e),r=[];for(var n in t)r.unshift(n);return function e(){for(;r.length;)if((n=r.pop())in t)return e.value=n,e.done=!1,e;return e.done=!0,e}},e.exports.__esModule=!0,e.exports.default=e.exports}(re);var ne=re.exports,ie={exports:{}},oe={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}(oe);var ae=oe.exports;!function(e){var t=ae.default;e.exports=function(e){if(null!=e){var r=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],n=0;if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}throw new TypeError(t(e)+" is not iterable")},e.exports.__esModule=!0,e.exports.default=e.exports}(ie);var se=ie.exports;!function(e){var t=Y,r=K,n=te,i=ee,o=Z,a=ne,s=se;function c(){var u=r(),d=u.m(c),l=(Object.getPrototypeOf?Object.getPrototypeOf(d):d.__proto__).constructor;function p(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===l||"GeneratorFunction"===(t.displayName||t.name))}var f={throw:1,return:2,break:3,continue:3};function v(e){var t,r;return function(n){t||(t={stop:function(){return r(n.a,2)},catch:function(){return n.v},abrupt:function(e,t){return r(n.a,f[e],t)},delegateYield:function(e,i,o){return t.resultName=i,r(n.d,s(e),o)},finish:function(e){return r(n.f,e)}},r=function(e,r,i){n.p=t.prev,n.n=t.next;try{return e(r,i)}finally{t.next=n.n}}),t.resultName&&(t[t.resultName]=n.v,t.resultName=void 0),t.sent=n.v,t.next=n.n;try{return e.call(this,t)}finally{n.p=t.prev,n.n=t.next}}}return(e.exports=c=function(){return{wrap:function(e,t,r,n){return u.w(v(e),t,r,n&&n.reverse())},isGeneratorFunction:p,mark:u.m,awrap:function(e,r){return new t(e,r)},AsyncIterator:o,async:function(e,t,r,o,a){return(p(t)?i:n)(v(e),t,r,o,a)},keys:a,values:s}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=c,e.exports.__esModule=!0,e.exports.default=e.exports}(q);var ce=(0,q.exports)(),ue=ce;try{regeneratorRuntime=ce}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=ce:Function("r","regeneratorRuntime = r")(ce)}var de,le,pe,fe,ve,me,he,ye,ge,be,Se,ke,Pe,we,Oe=V(ue);function Te(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(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"}(de||(de={})),function(e){e.VP8="vp8",e.VP9="vp9",e.H264="h264",e.H265="h265",e.AV1="av1",e.AV1X="av1x"}(le||(le={})),function(e){e.MIC="mic",e.SCREENCAST="screen-cast",e.MIXED="mixed"}(pe||(pe={})),function(e){e.CAMERA="camera",e.SCREENCAST="screen-cast",e.MIXED="mixed"}(fe||(fe={})),function(e){e.PUBLISH="publish",e.SUBSCRIBE="subscribe"}(ve||(ve={})),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"}(me||(me={})),function(e){e[e.Native=1]="Native",e[e.Web=2]="Web",e[e.MiniProgram=3]="MiniProgram"}(he||(he={})),function(e){e[e.Windows=1]="Windows",e[e.Android=2]="Android",e[e.Mac=3]="Mac",e[e.iOS=4]="iOS",e[e.Linux=5]="Linux",e[e.Others=6]="Others"}(ye||(ye={})),function(e){e[e.UserKickOut=2011]="UserKickOut",e[e.UserReplaced=2012]="UserReplaced"}(ge||(ge={})),function(e){e[e.Idle=0]="Idle",e[e.Processing=1]="Processing",e[e.End=2]="End"}(be||(be={})),function(e){e[e.New=0]="New",e[e.Idle=1]="Idle",e[e.Processing=2]="Processing",e[e.Ended=3]="Ended"}(Se||(Se={})),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"}(ke||(ke={})),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"}(Pe||(Pe={})),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"}(we||(we={}));var Ee,Ie={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]};!function(e){e.Playing="playing",e.Paused="paused",e.Stopped="stopped"}(Ee||(Ee={}));var Re="3.6.1",Ae=-999,_e="rtc-label";JSON.stringify({needPersonalityAudioStream:!0,outPeerConnectionNotReuse:!0});var Me="onertc_state_sync",Ce="onertc_internal_track_event",De=function(e){return{width:Ie[e][0],height:Ie[e][1]}},xe=function(e){return"object"===D(e.video)&&e.video.source===fe.SCREENCAST},je=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());var o=t.AEC,a=t.AGC,s=t.ANS;return t.deviceId&&(n.deviceId=e.isSafari()?t.deviceId:{exact:t.deviceId}),i.autoGainControl&&(n.autoGainControl={ideal:null==a||a}),i.echoCancellation&&(n.echoCancellation={ideal:null==o||o}),i.noiseSuppression&&(n.noiseSuppression={ideal:null==s||s}),n},Ne=function(i){if(!t(i)||!i.audio&&!i.video)return Promise.reject(new TypeError("Invalid constrains"));var o=i.audio,a=i.video;if(!xe(i)&&"object"===D(o)&&o.source===pe.SCREENCAST)return Promise.reject(new TypeError("Cannot share screen without video."));if(xe(i)&&"object"===D(o)&&o.source!==pe.SCREENCAST)return Promise.reject(new TypeError("Cannot capture video from screen cast while capture audio from other source."));if(!o&&!a)return Promise.reject(new TypeError("At least one of audio and video must be requested."));var s=Object.create({});if(s.audio="object"===D(o)&&o.source===pe.MIC||"object"===D(o)&&o.source===pe.SCREENCAST?je(o):i.audio,"object"===D(a)){var c,u=a.frameRate,d=a.deviceId,l=a.source,p=a.facingMode,f=a.displaySurface,v=a.dimension;s.video=Object.create({}),r(u)&&(s.video.frameRate=Math.min(a.frameRate,30)),v&&(c=De(v)),c&&c.width&&c.height&&(l===fe.SCREENCAST?(s.video.width=c.width,s.video.height=c.height):(s.video.width={ideal:c.width,max:c.width},s.video.height={ideal:c.height,max:c.width})),n(d)&&d&&(s.video.deviceId={exact:d}),l===fe.SCREENCAST&&(e.isFirefox()&&(s.video.mediaSource="screen"),f&&["browser","window","monitor"].includes(f)&&(s.video.displaySurface=f)),p&&["user","environment"].includes(p)&&(s.video.facingMode=p)}else s.video=a;return xe(i)?navigator.mediaDevices.getDisplayMedia(s):navigator.mediaDevices.getUserMedia(s)};function Le(){return Le="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(3>arguments.length?e:r):i.value}},Le.apply(null,arguments)}function Ge(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);t>r;r++)n[r]=e[r];return n}function Ue(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}}function Fe(e){return function(e){if(Array.isArray(e))return Ge(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Ue(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.")}()}var Ve,Be,qe=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},He=function(e){if(!e)return!1;var t=e.getVideoTracks()[0];return t&&t.enabled&&!t.muted},Ye=function(e,t){var r=(e.timestamp-((null==t?void 0:t.timestamp)||e.timestamp))/1e3;return r>0||(r=1),r},Je=function(e,t){return null!=e?[2,4,6,0][e]:null!==t?[3,0,0,0,1,1,2][t]:void 0},We=function(e,t){isNaN(e)&&(e=0),isNaN(t)&&(t=0);var r=e-t;return 0>r&&(r=e),r},Qe=new Map,Ke=function(e){return new Promise(function(t){i(t,1e3*e)})},ze=a().log,$e="rtc-intersecting",Xe="visible",Ze="invisible",et=["abort","canplay","canplaythrough","durationchange","emptied","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","ratechange","seeked","seeking","stalled","suspend","volumechange","waiting"],tt=function(e){return"".concat(null==e?void 0:e.getAttribute(_e),"-").concat(null==e?void 0:e.rtcPurpose)},rt=function(){return N(function e(t,r){var n=this;C(this,e),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 s}),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&&(o(n.mediaPlaybackCheckInterval,"interval"),n.mediaPlaybackCheckInterval=null),[].concat(Fe(n.mediaElementPool),Fe(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(tt(t)," has error, error=").concat(t.error,",doc.visibilityState=").concat(document.visibilityState,", mediaStream="),o=qe(r);ze.debug(i,o),"visible"===document.visibilityState&&He(r)&&t.load()}if(t.paused){var a=!1;if(n.hasActivated&&"video"===n.mediaKind?function(e){return e&&e.getAttribute($e)===Xe}(t)&&"visible"===document.visibilityState&&"visible"===getComputedStyle(t).visibility&&(a=!0):a=!0,a){var s="".concat(e,": ").concat(tt(t)," paused, doc.visibilityState=").concat(document.visibilityState,", intersecting=").concat(t.getAttribute($e),", mediaStream="),c=qe(r);ze.error(s,c),He(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 o="".concat(e,": ").concat(tt(t)," currentTime stop, doc.visibilityState=").concat(document.visibilityState,", curTime=").concat(t.currentTime,", mediaStream="),a=qe(r);return ze.error(o,a),void("visible"===document.visibilityState&&He(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=qe(null==t?void 0:t.srcObject);ze.error(r,i,null==t?void 0:t.error)}}),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=qe(null==t?void 0:t.srcObject);ze.error(r,i,null==t?void 0:t.error)}}),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=qe(null==t?void 0:t.srcObject);ze.debug(r,i)}}),Object.defineProperty(this,"_onUserInteraction",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e=[].concat(Fe(n.mediaElementPool),Fe(n.mediaElementsInUse));if(!n.hasActivated&&(n.hasActivated=!0,e.forEach(function(e){e.load()}),n._activatedListener))try{n._activatedListener()}catch(e){ze.error("error occurred when exec activatedListener",c(e))}n._tryReloadOnPauseAndErrorWhenVisible("userInteract")}}),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($e,Xe):null===(r=e.target)||void 0===r||r.setAttribute($e,Ze)})}));for(var a=0;r>a;a++){var u,d=this._createElement();null===(u=this.observer)||void 0===u||u.observe(d),this.addAtttribute(d),d.setAttribute(_e,"".concat(t,"-").concat(a)),this.mediaElementPool.push(d),this.allElements.add(d)}document.addEventListener("click",this._onUserInteraction,!0),document.addEventListener("touchstart",this._onUserInteraction,!0),document.addEventListener("visibilitychange",this._tryReloadOnPauseAndErrorWhenVisibleTriggerByVisible,!0),this.mediaPlaybackCheckInterval=i(function(){n.hasActivated&&n._tryReloadOnPauseAndErrorWhenVisible("intervalCheck")},4e3,"interval")},[{key:"addAtttribute",value:function(e){if(e.autoplay=!0,e.setAttribute(_e,"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())?(this._resetMediaElement(t),t.addEventListener("error",this._elementDefaultErrorHandler),t.addEventListener("pause",this._elementDefaultPauseHandler),t.addEventListener("play",this._elementDefaultPlayHandler),t.rtcPurpose=e||""):(t=document.createElement(this.mediaKind),this.addAtttribute(t)),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(){var e,t=document.createElement(this.mediaKind);return null===(e=this.observer)||void 0===e||e.observe(t),t}},{key:"_resetMediaElement",value:function(e){et.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}}])}(),nt=function(){return Ve||at(),Ve},it=function(){return Be||at(),Be},ot=e.isIOS()||e.isAndroid()?9:25,at=function(){Ve||(Ve=new rt("audio",2)),Be||(Be=new rt("video",ot))},st=new AudioContext,ct=function(e){var t=e.getAudioTracks(),r=st.createMediaStreamDestination();return t.forEach(function(e){st.createMediaStreamSource(new MediaStream([e])).connect(r)}),r.stream.getAudioTracks()[0]},ut=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 o=0;n.length>o;++o)n[o]=i[o]/128-1}for(var a=0,s=0;n.length>s;s++)a+=n[s]*n[s];return Math.max(10*Math.log10(a/n.length)+100,0)/100},dt=function(e){var t=document.createElement("canvas"),r=t.getContext("2d"),n=(null==e?void 0:e.srcObject).getTracks()[0];if(!n)return"";var i=n.getSettings(),o=i.width,a=i.height;return t.width=o,t.height=a,r.drawImage(e,0,0,o,a),t.toDataURL("image/png")};function lt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(lt=function(){return!!e})()}var pt=a(),ft=pt.log,vt=pt.trace,mt=new Map,ht=function(){function e(t,r){var n,i,o,a;return C(this,e),i=this,o=G(o=e),n=L(i,lt()?Reflect.construct(o,[],G(i).constructor):o.apply(i,a)),Object.defineProperty(n,"trackMediaType",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"isPlaying",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(n,"source",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"logger",{enumerable:!0,configurable:!0,writable:!0,value:vt}),Object.defineProperty(n,"sourceNode",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"element",{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,"playerConfig",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"wrapperDom",{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}),n.trackId=f(),t?(n.trackMediaType=t.kind,n.trackSettings=t.getSettings()):r&&(n.trackMediaType="audio"),"audio"===n.trackMediaType&&(n.audioContext=st,n.analyser=n.audioContext.createAnalyser()),n.setMediaStreamTrack(t,r),n}return F(e,p),N(e,[{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 i;if(n&&e&&(e.enabled=n.enabled),"audio"===this.trackMediaType)if(this.sourceNode&&(this.sourceNode.disconnect(),this.sourceNode=null),e)this.sourceNode=null===(i=this.audioContext)||void 0===i?void 0:i.createMediaStreamSource(new MediaStream([e]));else if(t){var o,a=ct(t);this.sourceNode=null===(o=this.audioContext)||void 0===o?void 0:o.createMediaStreamSource(new MediaStream([a]))}e?(this.mediaStreamTrack=e,this.mediaStreamTrack.onended=function(){r.source===fe.SCREENCAST?r.logger.sendEvent("SCREEN_DEVICE_STOP"):r.source===pe.MIC?new u(d.MicInterrupt):r.source===fe.CAMERA&&new u(d.CameraInterrupt)}):t&&(this.sfuStream=t)}}},{key:"replaceTrack",value:function(e,t){ft.info("replaceTrack",e,t),t&&this.isPlaying&&this.stop(),this.replaceTrackInner(e)}},{key:"replaceTrackInner",value:function(e,t){this.setMediaStreamTrack(e,t),this.emit(Ce,"replace",this),this.isPlaying&&this.innnerPlay()}},{key:"setSource",value:function(e){e===fe.CAMERA?this.logger.sendEvent("VIDEO_DEVICE_START"):e===fe.SCREENCAST?this.logger.sendEvent("SCREEN_DEVICE_START"):e===pe.MIC&&this.logger.sendEvent("AUDIO_DEVICE_START"),this.source=e}},{key:"stop",value:function(){this.isPlaying=!1,ft.info("stop paly track ".concat(this.getTrackId())),this.element&&(mt.get(this.wrapperDom)===this&&mt.delete(this.wrapperDom),this.wrapperDom&&(this.wrapperDom.removeChild(this.element),this.wrapperDom=null),this.element.pause(),this.element.srcObject=null,"audio"===this.trackMediaType?nt().pushElement(this.element):it().pushElement(this.element),this.setMediaElement(null))}},{key:"innnerPlay",value:function(e,t){var r=this,n=this.element;t&&(this.playerConfig=t);var i,o,a,s=this.playerConfig||{},p=s.mirror,f=s.fit;if(e&&(i="string"==typeof e?document.querySelector(e):e,!document.contains(i)))throw new u(d.InvaildArgument,"wrapper dom not found");if(n){if(i&&this.wrapperDom&&i!==this.wrapperDom)return this.stop(),void this.innnerPlay(e,t);n.pause(),n.style.transform=!this.sourceMirror!=!p?"scaleX(-1)":"",n.srcObject=this.sfuStream||new MediaStream([this.getMediaStreamTrack()]),n.load()}else{if("audio"===this.trackMediaType){o=this.sfuStream||new MediaStream([this.getMediaStreamTrack()]),(a=nt().popElement()).srcObject=o,n=a;try{"running"!==this.audioContext.state&&this.audioContext.resume()}catch(e){ft.debug("resume audioContext failed: ".concat(c(e)))}}else{var v=mt.get(i);v&&v.stop();var m=function(e,t,r){var n=it().popElement();if(n.style.width="100%",n.style.height="100%",r){var i=r.fit;!0===r.mirror&&(n.style.transform="scaleX(-1)"),i&&(n.style.objectFit=i)}return e.appendChild(n),n.pause(),n.srcObject=t,n.load(),n}(i,new MediaStream([this.getMediaStreamTrack()]),{mirror:!this.sourceMirror!=!p,fit:f});this.wrapperDom=i,n=m,mt.set(this.wrapperDom,this)}this.setMediaElement(n)}n.paused&&n.play().then(function(){r.isPlaying=!0}).catch(function(e){"NotAllowedError"===e.name?(r.isPlaying=!1,ft.error("autoplay failed",c(e)),l.emit("autoplay-failed",r)):ft.warn("".concat(r.trackMediaType," play has exception"),c(e))})}},{key:"setMediaElement",value:function(e){this.element=e}},{key:"getMediaStreamTrack",value:function(){return this.mediaStreamTrack}}])}();function yt(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,o,a,s=[],c=!0,u=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=o.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&&(a=r.return(),Object(a)!==a))return}finally{if(u)throw i}}return s}}(e,t)||Ue(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var gt=a().log,bt=new(function(){return N(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=M(Oe.mark(function e(){var t,r,n;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t={audio:[],video:[]},e.prev=1,(r=new RTCPeerConnection).addTransceiver("video",{direction:"recvonly"}),r.addTransceiver("audio",{direction:"recvonly"}),e.next=2,r.createOffer();case 2:if(n=e.sent.sdp){e.next=3;break}return e.abrupt("return",t);case 3: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 4:throw e.prev=4,e.catch(1),gt.error("get supportedCodecs failed"),new u(d.IceConnectionSetLocalDescFail,"get supportedCodecs failed");case 5:case"end":return e.stop()}},e,null,[[1,4]])})),function(){return t.apply(this,arguments)})},{key:"checkSupported",value:function(){var t=!1;try{var r=window.RTCPeerConnection,n=navigator.mediaDevices&&navigator.mediaDevices.getUserMedia,i=window.WebSocket;t=!!(r&&n&&i)}catch(e){return!1}var o=!1;o=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 a=t&&o;return gt.debug("checkSystemRequirements, api:",t,"browser",o),a}},{key:"isSupportScreenShare",value:function(){return!this.system.includes(v.ANDROID)&&this.system!==v.IOS&&((this.browser!==m.SAFARI||parseInt(this.browserVersion)>=13)&&((this.browser!==m.FIREFOX||parseInt(this.browserVersion)>=66)&&!!(navigator&&navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)))}}]);var t}());function St(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(St=function(){return!!e})()}var kt,Pt=new(function(){function t(){var e,r,n,i;return C(this,t),r=this,n=G(n=t),e=L(r,St()?Reflect.construct(n,[],G(r).constructor):n.apply(r,i)),Object.defineProperty(e,"gslb",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(e,"simulcast",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(e,"grouptalk",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(e,"audioSFU",{enumerable:!0,configurable:!0,writable:!0,value:!0}),e.setClientConfig({gslb:["https://gslb.dingrtc.com"]}),e}return F(t,p),N(t,[{key:"setClientConfig",value:function(t){var r=t||{},i=r.gslb,o=r.simulcast,a=r.audioSFU;"string"==typeof i&&(this.gslb=[i],h(i)),Array.isArray(i)&&n(i[0])&&(this.gslb=i,h(i[0])),null!=o&&function(){var t,r=(null===(t=window.RTCRtpSender)||void 0===t?void 0:t.prototype)||{};return!(!r.setParameters||!r.getParameters||e.isFirefox()||(e.isSafari()?14>parseInt(e.browserVersion):e.isChrome()&&81>parseInt(e.browserVersion)))}()&&(this.simulcast=!!o),null!=a&&(this.audioSFU=!!a)}}])}());function wt(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 Ot(e){for(var t=1;arguments.length>t;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?wt(Object(r),!0).forEach(function(t){Te(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):wt(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"}(kt||(kt={}));var Tt=Te(Te(Te(Te(Te({},kt.LLD,"lld"),kt.LD,"ld"),kt.SD,"sd"),kt.HD,"hd"),kt.FHD,"fhd"),Et={high:[1228800,2764800],FHD:[1228800,2764800],HD:[307200,1228800],SD:[76800,307200],LD:[0,76800],low:[0,76800]},It=function(e,t){var r=Rt(e,t),n=function(e,t){var r={high:we.FHD,low:we.LD,FHD:we.FHD,HD:we.HD,SD:we.SD,LD:we.LD},n=r[e]||we.None,i=t[t.length-1].width*t[t.length-1].height;if(Et[e][0]>i){var o=Object.entries(Et).find(function(e){var t=yt(e,2)[1];return i>t[0]&&t[1]>=i});n=r[yt(o,1)[0]]}return n}(e,t);return{resolution:r,resolutionLevel:n}},Rt=function(e,t){var r=Et[e],n=t.length;if(t[0].width*t[0].height>Et.FHD[1])return t[0];for(var i=0;n>i;i++){var o=t[i].width*t[i].height;if(o>=r[0]&&r[1]>=o)return t[i]}for(var a=n-1;a>=0;a--){if(r[1]>t[a].width*t[a].height)return t[a]}return t[0]},At=[49152,76800,307200,1228800,2764800],_t=[200,350,1e3,1800,2828],Mt=[[256,144],[320,180],[640,360],[1280,720],[1920,1080]],Ct=[[256,192],[320,240],[640,480],[1280,960],[1920,1440]],Dt=function(e,t){var r=kt.FHD,n=e*t;return n>At[kt.LLD]?n>At[kt.LD]?n>At[kt.SD]?n>At[kt.HD]?n>At[kt.FHD]||(r=kt.FHD):r=kt.HD:r=kt.SD:r=kt.LD:r=kt.LLD,r},xt=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(!r){var n=1;30!==t&&(n=Math.sqrt(t/30));var i=e.getSettings(),o=_t[Dt(i.width,i.height)];r=Math.round(Math.max(n*o,50))}return r},jt=function(e){var t=e.getMaxBitrate(),r=e.trackSettings,n=r.height,i=r.width,o=r.frameRate,a=[],s=Dt(i,n);if(!Pt.simulcast||e.source===fe.SCREENCAST)return[{maxFramerate:o,maxBitrate:t,scaleResolutionDownBy:1,active:!0,rid:"",minBitrate:Math.round((t+30)/2),targetWidth:i,targetHeight:n}];var c=s>kt.HD?3:2,u=function(e){var r=function(e,t,r,n){var i=0,o=0;if(r>=n)return[i=e,o=t];if(t>e){var a=[e,t];t=a[0],e=a[1]}if(16*t==9*e)i=Mt[r][0],o=Mt[r][1];else if(4*t==3*e)i=Ct[r][0],o=Ct[r][1];else{var s=Math.sqrt(1*Mt[r][0]*Mt[r][1]/e/t);o=Math.round(t*(s=1*(i=(i=Math.round(e*s))+15&-16)/e))}return[i,o]}(i,n,e,s),a=yt(r,2),c=a[1];return{targetWidth:a[0],rid:Tt[e],targetHeight:c,minBitrate:50,maxFramerate:o,maxBitrate:Math.round(Math.max(30,t*(_t[e]/_t[s]))),scaleResolutionDownBy:1/(c/n)}};s>kt.LLD&&a.push(Ot({active:!1},u(kt.LLD))),s>kt.LD&&a.push(Ot({active:c>1},u(kt.LD))),s>kt.SD&&a.push(Ot({active:c>2},u(kt.SD))),s>kt.HD?(a.push(Ot({active:!1},u(kt.HD))),a.push(Ot({active:!0},u(kt.FHD)))):a.push(Ot({active:!0},u(s)));for(var d=0,l=0;a.length>l;++l)0!=l&&(a[l].minBitrate=d),d=Math.round(Math.max((a[l].maxBitrate+a[l].minBitrate)/2,a[l].maxBitrate-400));return a.shift(),a};function Nt(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 Lt(e){for(var t=1;arguments.length>t;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Nt(Object(r),!0).forEach(function(t){Te(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Nt(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function Gt(e,t,r){return t=G(t),L(e,Ut()?Reflect.construct(t,r||[],G(e).constructor):t.apply(e,r))}function Ut(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Ut=function(){return!!e})()}function Ft(e,t,r,n){var i=Le(G(e.prototype),t,r);return"function"==typeof i?function(e){return i.apply(r,e)}:i}var Vt=a().log,Bt=function(){function e(t,r){var n;(C(this,e),n=Gt(this,e,[t]),Object.defineProperty(n,"deviceId",{enumerable:!0,configurable:!0,writable:!0,value:r}),Object.defineProperty(n,"muted",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"maxBitrate",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"enabled",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"config",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"isClosed",{enumerable:!0,configurable:!0,writable:!0,value:!1}),t)&&(n.muted=t.muted);return n.enabled=!0,n.isPlaying=!1,n.deviceId=r,n}return F(e,ht),N(e,[{key:"setMediaStreamTrack",value:function(t){var r,n=this;Ft(e,"setMediaStreamTrack",this)([t]),t&&(this.trackSettings=t.getSettings(),null===(r=this.element)||void 0===r||r.addEventListener("loadeddata",function(){n.emit("first-frame-decoded")}),t.onended=function(){n.stop(),n.close&&n.close(),n.emit("track-ended")})}},{key:"play",value:function(e,t){this.innnerPlay(e,t)}},{key:"setEnabled",value:function(e){return Vt.info("setEnabled",e),this.isClosed?Promise.reject(new u(d.InvaildState)):(this.enabled=e,this.emit(Ce,e?"unmute":"mute"),e?this.updateNewTrack():(null===(t=this.mediaStreamTrack)||void 0===t||t.stop(),this.setMediaStreamTrack(null),this.source===fe.CAMERA?this.logger.sendEvent("VIDEO_DEVICE_STOP"):this.source===fe.SCREENCAST&&this.logger.sendEvent("SCREEN_DEVICE_STOP"),Promise.resolve()));var t}},{key:"close",value:function(){var e;Vt.info("".concat(this.source," track:").concat(this.getTrackId()," close")),this.isClosed||(this.isClosed=!0,this.isPlaying&&this.stop(),this.emit(Ce,"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===fe.CAMERA?this.logger.sendEvent("VIDEO_DEVICE_STOP"):this.source===fe.SCREENCAST&&this.logger.sendEvent("SCREEN_DEVICE_STOP"))}},{key:"setMuted",value:function(e){return Vt.info("setMuted",e),this.isClosed?Promise.reject(new u(d.InvaildState)):(this.muted=e,this.mediaStreamTrack.enabled=!e,this.emit(Ce,e?"mute":"unmute"),Promise.resolve())}},{key:"getAudioTrack",value:function(){var e=this;return Vt.debug("gengrate new audioTrack"),new Promise(function(t,r){var n;Ne({audio:Lt(Lt({source:e.source},e.config),{},{deviceId:e.deviceId})}).then(function(e){n=e.getAudioTracks()[0]}).catch(function(t){try{var i=e.audioContext.createOscillator(),o=e.audioContext.createMediaStreamDestination();i.connect(o),n=o.stream.getAudioTracks()[0]}catch(e){Vt.error("gengrate new audioTrack error",y(t)),r(y(t))}}).finally(function(){n&&t(n)})})}},{key:"getVideoTrack",value:function(){var e=this;return Vt.debug("gengrate new videoTrack"),new Promise(function(t,r){var n;Ne({video:Lt(Lt({source:e.source},e.config),{},{deviceId:e.deviceId}),audio:!1}).then(function(e){n=e.getVideoTracks()[0],t(n)}).catch(function(e){Vt.error("gengrate new videoTrack error",g(e)),r(g(e))})})}},{key:"updateNewTrack",value:function(){var e=this,t=this.getMediaStreamTrack();return t.onended=null,Vt.debug("stop oldTrack first"),t.stop(),"audio"===this.trackMediaType?this.getAudioTrack().then(function(t){return e.replaceTrackInner(t)}):"video"===this.trackMediaType?this.getVideoTrack().then(function(t){return e.replaceTrackInner(t)}):void 0}},{key:"setDevice",value:(t=M(Oe.mark(function e(t){return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(Vt.info("setDevice",t),!this.isClosed){e.next=1;break}return e.abrupt("return");case 1:if(!(this instanceof Yt)||"user"!==t&&"environment"!==t){e.next=2;break}this.config.facingMode=t,e.next=4;break;case 2:if(this.deviceId!==t){e.next=3;break}return e.abrupt("return");case 3:this.deviceId=t;case 4:return e.abrupt("return",this.updateNewTrack());case 5:case"end":return e.stop()}},e,this)})),function(e){return t.apply(this,arguments)})},{key:"getTrackLabel",value:function(){if(Vt.info("getTrackLabel"),!this.isClosed)return this.mediaStreamTrack.label}},{key:"getMaxBitrate",value:function(){if(!this.isClosed)return this.maxBitrate}}]);var t}(),qt=function(){function e(t,r,n){var i;return C(this,e),(i=Gt(this,e,[t,r])).config=n,t&&(i.maxBitrate=xt(t,n.frameRate,n.maxBitrate)),i}return F(e,Bt),N(e,[{key:"optimizationMode",get:function(){return this.config.optimizationMode}},{key:"setEncoderConfiguration",value:function(e){var t=this;Vt.info("videoTrack ".concat(this.getTrackId()," setEncoderConfiguration"),e);var r=e.dimension,n=e.frameRate,i=e.maxBitrate,o=e.optimizationMode,a=e.mirror;if(n&&Number.isNaN(n))return Promise.reject(new u(d.InvaildArgument,"invalid frameRate"));if(r&&!Ie[r])return Promise.reject(new u(d.InvaildArgument,"invalid dimension"));!a!=!this.config.mirror&&(this.emit(Ce,"mirror",a),this.config.mirror=a),o&&o!==this.optimizationMode&&(this.config.optimizationMode=o,this.emit(Ce,"optimizationMode"));var s=!1;if(r&&this.config.dimension!==r&&(this.config.dimension=r,s=!0),n&&this.config.frameRate!==Math.min(30,n)&&(this.config.frameRate=Math.min(30,n),s=!0),i&&this.maxBitrate!==i&&(s=!0),!s)return Promise.resolve();var c=Lt({frameRate:this.config.frameRate},De(this.config.dimension)),l=this.getMediaStreamTrack();return null==l?void 0:l.applyConstraints(c).then(function(){t.maxBitrate=xt(t.getMediaStreamTrack(),t.config.frameRate,i),t.emit(Ce,"republish",t)}).catch(function(e){var r=g(e);throw Vt.error("videoTrack ".concat(t.getTrackId()," setEncoderConfiguration error"),r),r})}},{key:"getCurrentFrameData",value:function(){return Vt.info("getCurrentFrameData"),this.isClosed||!this.isPlaying?null:dt(this.element)}},{key:"play",value:function(t,r){return Vt.info("local video play"),Ft(e,"play",this)([t,r])}}])}(),Ht=function(){function e(t,r){return C(this,e),Gt(this,e,[t,r])}return F(e,Bt),N(e,[{key:"setVolume",value:function(e){Vt.info("setVolume",e),this.isClosed||this.element&&(this.element.volume=e)}},{key:"getVolume",value:function(){if(Vt.info("getVolume"),!this.isClosed)return this.element?this.element.volume:void 0}},{key:"getVolumeLevel",value:function(){return this.isClosed?0:ut(this.audioContext,this.analyser,this.sourceNode)}},{key:"play",value:function(){return Vt.info("local audio play"),Ft(e,"play",this)([])}}])}(),Yt=function(){function e(t,r){var n;return C(this,e),(n=Gt(this,e,[t,r.deviceId,r])).setSource(fe.CAMERA),n}return F(e,qt),N(e)}(),Jt=function(){function e(t,r){var n;return C(this,e),(n=Gt(this,e,[t,(r||{}).deviceId])).config=r,n.setSource(pe.MIC),n.analyser=n.audioContext.createAnalyser(),n}return F(e,Ht),N(e,[{key:"setVolume",value:function(e){Vt.info("setVolume",e),this.isClosed||this.element&&(this.element.volume=e)}},{key:"getVolume",value:function(){if(Vt.info("getVolume"),!this.isClosed)return this.element?this.element.volume:void 0}}])}(),Wt=function(){var e=M(Oe.mark(function e(t){var r,n,i,o,a,s,c,u,d,l;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r={AEC:!0,AGC:!0,ANS:!0},o=void 0===(i=(n=t||r).AEC)||i,s=void 0===(a=n.AGC)||a,u=void 0===(c=n.ANS)||c,e.prev=1,e.next=2,Ne({video:!1,audio:{deviceId:null==t?void 0:t.deviceId,source:pe.MIC,AEC:o,AGC:s,ANS:u}});case 2:return d=e.sent.getAudioTracks()[0],Vt.info("MicrophoneAudioTrack created"),e.abrupt("return",new Jt(d,Object.assign({},t,{AEC:o,AGC:s,ANS:u})));case 3:throw e.prev=3,l=e.catch(1),y(l);case 4:case"end":return e.stop()}},e,null,[[1,3]])}));return function(t){return e.apply(this,arguments)}}(),Qt=function(){var e=M(Oe.mark(function e(t){var r,n,i,o,a,s,c,u,d;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.deviceId,n=t.facingMode,o=void 0===(i=t.dimension)?"VD_640x480":i,s=void 0===(a=t.optimizationMode)?"balanced":a,c=Math.min(30,t.frameRate||15),e.prev=1,e.next=2,Ne({video:{deviceId:r,source:fe.CAMERA,frameRate:c,dimension:o,facingMode:n},audio:!1});case 2:return u=e.sent.getVideoTracks()[0],Vt.info("CameraVideoTrack created"),e.abrupt("return",new Yt(u,Object.assign({},t,{frameRate:c,dimension:o,optimizationMode:s})));case 3:throw e.prev=3,d=e.catch(1),g(d);case 4:case"end":return e.stop()}},e,null,[[1,3]])}));return function(t){return e.apply(this,arguments)}}(),Kt=function(){var e=M(Oe.mark(function e(t){var r,n,i,o,a,s,c,u,d;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=void 0===(r=t.displaySurface)?"monitor":r,o=void 0===(i=t.dimension)?"VD_1920x1080":i,s=void 0===(a=t.optimizationMode)?"detail":a,c=Math.min(t.frameRate||5,30),e.prev=1,e.next=2,Ne({video:{source:fe.SCREENCAST,displaySurface:n,frameRate:c,dimension:o},audio:!1});case 2:return(u=new qt(e.sent.getVideoTracks()[0],null,Object.assign({},t,{frameRate:c,dimension:o,optimizationMode:s}))).setSource(fe.SCREENCAST),Vt.info("ScreenVideoTrack created"),e.abrupt("return",[u]);case 3:throw e.prev=3,d=e.catch(1),b(d);case 4:case"end":return e.stop()}},e,null,[[1,3]])}));return function(t){return e.apply(this,arguments)}}(),zt=function(){var e=M(Oe.mark(function e(t,r){var n,i,o,a,s,c,u,d,l,p,f,v,m,h,y,b,S,k,P,w,O;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=Math.min(t.frameRate||15,30),i=t.deviceId,o=t.facingMode,s=void 0===(a=t.dimension)?"VD_640x480":a,u=void 0===(c=t.optimizationMode)?"balanced":c,d={AEC:!0,AGC:!0,ANS:!0},f=void 0===(p=(l=r||d).AEC)||p,m=void 0===(v=l.AGC)||v,y=void 0===(h=l.ANS)||h,e.prev=1,e.next=2,Ne({video:{deviceId:i,source:fe.CAMERA,frameRate:n,dimension:s,facingMode:o},audio:{deviceId:null==r?void 0:r.deviceId,source:pe.MIC,AEC:f,AGC:m,ANS:y}});case 2:return S=(b=e.sent).getVideoTracks()[0],k=b.getAudioTracks()[0],Vt.info("CameraVideoTrack and MicrophoneTrack created"),P=new Yt(S,Object.assign({},t,{frameRate:n,dimension:s,optimizationMode:u})),w=new Jt(k,Object.assign({},Object.assign({},r,{AEC:f,AGC:m,ANS:y}))),e.abrupt("return",[P,w]);case 3:throw e.prev=3,O=e.catch(1),g(O);case 4:case"end":return e.stop()}},e,null,[[1,3]])}));return function(t,r){return e.apply(this,arguments)}}(),$t=function(){var e=M(Oe.mark(function e(t){var r,n,i,o,a,s,c,l;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=(r=t||{}).mediaStreamTrack,o=void 0===(i=r.dimension)?"VD_640x480":i,s=void 0===(a=r.optimizationMode)?"balanced":a,c=Math.min(t.frameRate||15,30),n instanceof MediaStreamTrack&&"video"===n.kind){e.next=1;break}throw new u(d.InvaildArgument,"missing video mediaStreamTrack");case 1:return(l=new qt(n,null,Object.assign({},t,{frameRate:c,dimension:o,optimizationMode:s}))).setSource(fe.CAMERA),e.abrupt("return",l);case 2:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}(),Xt=function(){var e=M(Oe.mark(function e(t){var r,n;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if((r=(t||{}).mediaStreamTrack)instanceof MediaStreamTrack&&"audio"===r.kind){e.next=1;break}throw new u(d.InvaildArgument,"missing audio mediaStreamTrack");case 1:return(n=new Ht(r)).setSource(pe.MIC),e.abrupt("return",n);case 2:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}();function Zt(e,t,r,n){var i=Le(G(e.prototype),t,r);return 2&n&&"function"==typeof i?function(e){return i.apply(r,e)}:i}function er(e,t,r){return t=G(t),L(e,tr()?Reflect.construct(t,r||[],G(e).constructor):t.apply(e,r))}function tr(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(tr=function(){return!!e})()}var rr,nr=a().log,ir=function(){function e(t,r,n){var i;return C(this,e),i=er(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 F(e,ht),N(e,[{key:"getUserId",value:function(){return nr.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)}}])}(),or=function(){function e(t,r,n){var i;return C(this,e),i=er(this,e,[t,r,n]),Object.defineProperty(i,"deviceId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),i.deviceId="",i}return F(e,ir),N(e,[{key:"getMediaStreamTrack",value:function(){return Pt.audioSFU?ct(this.sfuStream):Zt(e,"getMediaStreamTrack",this,3)([])}},{key:"replaceStream",value:function(e,t){nr.info("replaceRemote Audio",e,t),t&&this.isPlaying&&this.stop(),this.replaceTrackInner(null,e)}},{key:"setVolume",value:function(e){nr.info("setVolume",e),this.element&&(this.element.volume=e)}},{key:"getVolume",value:function(){if(nr.info("getVolume"),this.element)return this.element.volume}},{key:"setSpeaker",value:function(e){var t=this;return nr.info("setSpeaker",e),new Promise(function(r,n){var i,o=t.element;o||n(new u(d.InvaildState,"please playout audio first")),o.setSinkId||n(new u(d.SpeakerSetNotSupported)),null===(i=o.setSinkId)||void 0===i||i.call(o,e).then(function(){t.deviceId=e,r()}).catch(function(e){n(y(e))})})}},{key:"getVolumeLevel",value:function(){return ut(this.audioContext,this.analyser,this.sourceNode)}},{key:"play",value:function(){return nr.info("remote audio play"),Zt(e,"innnerPlay",this,3)([])}}])}(),ar=function(){function e(t,r){return C(this,e),er(this,e,[t,r])}return F(e,ir),N(e,[{key:"play",value:function(t,r){return nr.info("remote video play"),Zt(e,"innnerPlay",this,3)([t,r])}},{key:"setSourceMirror",value:function(t){t!==this.sourceMirror&&(nr.info("remote video track set Mirror",t),this.sourceMirror=t,this.isPlaying&&Zt(e,"innnerPlay",this,3)([]))}},{key:"setMediaElement",value:function(t){var r,n=this;Zt(e,"setMediaElement",this,3)([t]),null===(r=this.element)||void 0===r||r.addEventListener("loadeddata",function(){n.emit("first-frame-decoded")})}},{key:"getCurrentFrameData",value:function(){return nr.info("getCurrentFrameData"),this.isPlaying?dt(this.element):null}}])}();!function(e){var t,r,n,i,o,a,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",(o=e.GroupListUpdate||(e.GroupListUpdate={}))[o.GROUP_LIST_UPDATE_ADD_ID=0]="GROUP_LIST_UPDATE_ADD_ID",o[o.GROUP_LIST_UPDATE_REMOVE_ID=1]="GROUP_LIST_UPDATE_REMOVE_ID",(a=e.LEAVE_GROUP_REASON_CODE||(e.LEAVE_GROUP_REASON_CODE={}))[a.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"}(rr||(rr={}));var sr=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}}},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}}},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}}},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"]}},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}}},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}}}}}}}),cr=sr.lookupType("signal_msg.Response"),ur=sr.lookupType("signal_msg.BatchNotification"),dr=sr.lookupType("signal_msg.MediaMessage"),lr=sr.lookupType("signal_msg.StreamNotification");sr.lookupType("signal_msg.ProgressNotification");var pr=sr.lookupType("signal_msg.ServerFailoverNotification"),fr=sr.lookupType("signal_msg.PublishRequest"),vr=sr.lookupType("signal_msg.SoacRequest"),mr=sr.lookupType("signal_msg.UnpublishRequest"),hr=sr.lookupType("signal_msg.StreamControlRequest"),yr=sr.lookupType("signal_msg.SubscribeRequest"),gr=sr.lookupType("signal_msg.SetStreamPropertiesRequest"),br=sr.lookupType("signal_msg.UnsubscribeRequest"),Sr=sr.lookupType("signal_msg.SubscriptionControlRequest"),kr=sr.lookupType("signal_msg.CreatePeerConnectionRequest"),Pr=sr.lookupType("signal_msg.ClosePeerConnectionRequest"),wr=sr.lookupType("signal_msg.BatchPublishRequest"),Or=sr.lookupType("signal_msg.BatchUnpublishRequest"),Tr=sr.lookupType("signal_msg.BatchSubscribeRequest"),Er=sr.lookupType("signal_msg.BatchUnsubscribeRequest"),Ir=sr.lookupType("signal_msg.JoinGroupRequest"),Rr=sr.lookupType("signal_msg.SetGroupPropertiesRequest"),Ar=sr.lookupType("signal_msg.DismissGroupRequest"),_r=sr.lookupType("signal_msg.LeaveGroupRequest"),Mr=sr.lookupType("signal_msg.SyncDataRequest"),Cr=sr.lookupType("signal_msg.SyncDataByIdsRequest"),Dr=sr.lookupType("signal_msg.GroupChangeLog"),xr=sr.lookupType("signal_msg.GroupListChangeLog"),jr=sr.lookupType("signal_msg.SetParticipantPropertiesRequest"),Nr=sr.lookupType("signal_msg.QueryStreamsVerRequest"),Lr=sr.lookupType("signal_msg.QueryStreamsRequest");function Gr(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Gr=function(){return!!e})()}var Ur=function(){function e(t){var r,n,i,o;return C(this,e),n=this,i=G(i=e),r=L(n,Gr()?Reflect.construct(i,[],G(n).constructor):i.apply(n,o)),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}),r.channel=t,r.rpcId=0,r.reporter=t.reporter,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 F(e,p),N(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",lr.decode(t)):"serverFailover"===e?this.emit("serverFailover",pr.decode(t)):"media-message"===e?this.emit("media-message",dr.decode(t)):"group"===e?this.emit("group",Dr.decode(t)):"group-list"===e&&this.emit("group-list",xr.decode(t))}},{key:"handleBatchNotifyEvent",value:function(e){var t=this;ur.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=kr.encode(e).finish();return this.rpc("create-peer-connection",t,e).then(function(e){return e.createPeerConnectionResponse})}},{key:"closePeerConnection",value:function(e){var t=Pr.encode(e).finish();return this.rpc("close-peer-connection",t,e)}},{key:"batchSubscribe",value:function(e){var t=Tr.encode(e).finish();return this.rpc("batch-subscribe",t,e).then(function(e){return e.errorMsg})}},{key:"setGroupProperties",value:function(e){var t=Rr.encode(e).finish();return this.rpc("set-group-properties",t,e).then(function(e){return e.setGroupPropertiesResponse})}},{key:"batchUnSubscribe",value:function(e){var t=Er.encode(e).finish();return this.rpc("batch-unsubscribe",t,e)}},{key:"batchPublish",value:function(e){var t=wr.encode(e).finish();return this.rpc("batch-publish",t,e).then(function(e){return e.errorMsg})}},{key:"batchUnPublish",value:function(e){var t=Or.encode(e).finish();return this.rpc("batch-unpublish",t,e)}},{key:"publish",value:function(e){var t=fr.encode(e).finish();return this.rpc("publish",t,e).then(function(e){return e.publishResponse})}},{key:"setParticipantProperties",value:function(e){var t=jr.encode(e).finish();return this.rpc("set-participant-properties",t,e)}},{key:"soac",value:function(e){var t=vr.encode(e).finish();return this.rpc("soac",t,e)}},{key:"unpublish",value:function(e){var t=mr.encode(e).finish();return this.rpc("unpublish",t,e)}},{key:"streamControl",value:function(e){var t=hr.encode(e).finish();return this.rpc("stream-control",t,e)}},{key:"setStreamProperties",value:function(e){var t=gr.encode(e).finish();return this.rpc("set-stream-properties",t,e)}},{key:"subscribe",value:function(e){var t=yr.encode(e).finish();return this.rpc("subscribe",t,e).then(function(e){return e.subscribeResponse})}},{key:"unsubscribe",value:function(e){var t=br.encode(e).finish();return this.rpc("unsubscribe",t,e)}},{key:"subscriptionControl",value:function(e){var t=Sr.encode(e).finish();return this.rpc("subscription-control",t,e)}},{key:"getStreamsVer",value:function(e){var t=Nr.encode(e).finish();return this.rpc("query-streams-ver",t,e).then(function(e){return e.queryStreamsVerResponse})}},{key:"getStreams",value:function(e){var t=Lr.encode(e).finish();return this.rpc("query-streams",t,e).then(function(e){return e.queryStreamsResponse})}},{key:"joinGroup",value:function(e){var t=Ir.encode(e).finish();return this.rpc("join-group",t,e).then(function(e){return e.joinGroupResponse})}},{key:"leaveGroup",value:function(e){var t=_r.encode(e).finish();return this.rpc("leave-group",t,e).then(function(e){return e.leaveGroupResponse})}},{key:"dismissGroup",value:function(e){var t=Ar.encode(e).finish();return this.rpc("dismiss-group",t,e).then(function(e){return e.dismissGroupResponse})}},{key:"syncData",value:function(e){var t=Mr.encode(e).finish();return this.rpc("sync-data",t,e).then(function(e){return e.syncDataResponse})}},{key:"syncDataByIds",value:function(e){var t=Cr.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,o){var a=r.rpcId++;r.reporter.log.debug("rtc rpcId ".concat(a,":").concat(e," param====> ").concat(JSON.stringify(n||""))),r.channel.signaling.rpc(e,t,n).then(function(t){var n=cr.decode(t);n.code===rr.Result.Ok?(r.reporter.log.debug("rtc rpcId ".concat(a,":").concat(e," result====> ").concat(JSON.stringify(n))),i(n)):(r.reporter.log.debug("rtc rpcId ".concat(a,":").concat(e," error====> ").concat(JSON.stringify(n))),o(n))})})}}])}();function Fr(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Fr=function(){return!!e})()}var Vr=function(){function e(){var t,r,n,i;C(this,e),r=this,n=G(n=e),t=L(r,Fr()?Reflect.construct(n,[],G(r).constructor):n.apply(r,i)),Object.defineProperty(t,"interval",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(t,"timer",{enumerable:!0,configurable:!0,writable:!0,value:void 0});var o=a().statsConfig;return t.interval=(null==o?void 0:o.statsIntervalMs)||2e3,t.start(),t}return F(e,p),N(e,[{key:"start",value:function(){var e=this;this.stop(),this.makeReport&&this.makeReport(),this.timer=i(function(){e.makeReport()},this.interval,"interval")}},{key:"stop",value:function(){this.timer&&(o(this.timer,"interval"),this.timer=null)}}])}();function Br(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 qr(e){for(var t=1;arguments.length>t;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Br(Object(r),!0).forEach(function(t){Te(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Br(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function Hr(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 Yr(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)?Yr(e,t):void 0}}(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return e.length>n?{done:!1,value:e[n++]}:{done:!0}},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 o,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw o}}}}function Yr(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);t>r;r++)n[r]=e[r];return n}function Jr(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Jr=function(){return!!e})()}var Wr={timestamp:0,audioLevel:0,bytesSent:0,packetsSent:0,packetsLost:0,roundTripTime:0},Qr={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},Kr=function(){function t(e){var r,n,i,o;C(this,t),n=this,i=G(i=t),r=L(n,Jr()?Reflect.construct(i,[],G(n).constructor):i.apply(n,o)),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 a=e.tracks.filter(function(e){return"video"===e.trackMediaType})[0];return r.source=null==a?void 0:a.source,r.track=e.tracks[0],r.tranceiver=e.transceiver,r.lastVideoSendInfo=Object.assign({},Qr),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({},Wr),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 F(t,Vr),N(t,[{key:"extractVideoMetrics",value:function(t){var r=this,n=Object.assign({source:this.source,trackStats:[]},Qr,this.connection.peerConnectionStats);if(n.timestamp=Date.now(),this.track){var i=this.track.getMediaStreamTrack().getSettings(),o=i.width,a=i.height,s=i.frameRate;n.captureFramesPerSecond=s===1/0?0:s||0,n.captureFrameWidth=o||0,n.captureFrameHeight=a||0}var c=new Map,u=Ye(n,this.lastVideoSendInfo);return t.forEach(function(t){if(/outboundrtp|outbound-rtp/i.test(t.type)){var i=c.get(t.ssrc)||{},o=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.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&&o){var a=We(i.framesSent||i.framesEncoded,o.framesSent||o.framesEncoded);i.sendFramesPerSecond=Math.round(a/u)}if(i.framesEncoded){var s=We(i.framesEncoded,null==o?void 0:o.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 d=c.get(t.ssrc)||{};d.sendFrameHeight>0||(d.sendFrameWidth=t.frameWidth||0,d.sendFrameHeight=t.frameHeight||0),d.framesSent=t.framesSent||0,d.totalEncodeTime=t.totalEncodeTime||0,c.set(t.ssrc,d),n.totalFramesEncoded+=d.framesEncoded,n.totalEncodedTime+=d.totalEncodeTime,n.totalFramesSent+=d.framesSent,c.set(t.ssrc,d)}}else if(/remote-inbound-rtp/i.test(t.type)){var l=c.get(t.ssrc)||{},p=r.lastVideoSendInfo.trackStats.get(t.ssrc)||{};l.packetsLost=t.packetsLost||0,l.lostTimestamp=t.timestamp,n.totalPacketsLost+=l.packetsLost,l.packetsLost===(p.packetsLost||0)&&(l.packetsSentForLost=p.packetsSentForLost||0,l.lostTimestamp=p.lostTimestamp||0),c.set(t.ssrc,l)}}),n.trackStats=c,n}},{key:"getLayersMetricInfo",value:function(e){var t,r=[],n=Hr(e.trackStats.entries());try{for(n.s();!(t=n.n()).done;){var i=yt(t.value,2),o=i[1],a=this.lastVideoSendInfo.trackStats.get(i[0])||{},s=We(o.framesSent,a.framesSent),c=We(o.framesEncoded,a.framesEncoded),u=We(o.keyFramesEncoded,a.keyFramesEncoded),d=We(o.retransmittedBytesSent,a.retransmittedBytesSent),l=We(o.retransmittedPacketsSent,a.retransmittedPacketsSent),p=We(o.firCount,a.firCount),f=We(o.pliCount,a.pliCount),v=We(o.packetsSent,a.packetsSent),m=We(o.packetsSentForLost,a.packetsSentForLost),h=We(o.lostTimestamp,a.lostTimestamp),y=We(o.packetsLost,a.packetsLost),g=We(o.totalEncodeTime,a.totalEncodeTime),b=We(o.qpSum,a.qpSum),S=qr(qr({sendFrameHeight:o.sendFrameHeight,sendFrameWidth:o.sendFrameWidth,qualityLimitationReason:o.qualityLimitationReason},o),{},{deltaQbSum:b,deltaPacketsSent:v,deltaPacketsLost:y,deltaFramesSent:s,deltaTimestampForLost:h,deltaFramesEncoded:c,deltaKeyFramesEncoded:u,deltaFirCount:p,deltaEncodedTime:g,deltaPliCount:f,deltaPacketsSentForLost:m,deltaRetransmittedBytesSent:d,deltaRetransmittedPacketsSent:l});r.push(S)}}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){for(var r=this.getLayersMetricInfo(e),n=r.tracksStatInfo,i=r.totalBytesSent,o=r.totalFramesEncoded,a=r.totalEncodedTime,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,d=We(e.timestamp,this.lastVideoSendInfo.timestamp),l=0,p=0;n.length>p;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),l=Math.max(f.deltaTimestampForLost),f.sendFrameWidth&&(f.deltaFramesEncoded||f.deltaFramesSent)&&(s.attr_resolution_sim.push({count:f.deltaFramesSent||f.deltaFramesEncoded,index:p,resolution:"".concat(f.sendFrameWidth,"*").concat(f.sendFrameHeight)}),s.attr_encoded_framerate_sim.push(Te({},p,Math.round(1e3*(f.deltaFramesEncoded||f.deltaFramesSent)/d))),s.attr_encode_qp_sim.push(Te({},p,Math.round((f.deltaQbSum||0)/(f.deltaFramesEncoded||f.deltaFramesSent))))),f.deltaPacketsLost&&f.deltaPacketsSentForLost&&c.push(f.deltaPacketsLost/f.deltaPacketsSentForLost*255)}for(var v=0,m=Object.entries(s);m.length>v;v++){var h=yt(m[v],2),y=h[1];t[h[0]]=y.length?JSON.stringify(y):""}var g=0,b=We(o,this.lastVideoSendInfo.totalFramesEncoded),S=We(a,this.lastVideoSendInfo.totalEncodedTime);b&&S&&(g=Math.round(1e3*S/b));var k=We(i,this.lastVideoSendInfo.totalBytesSent);t.attr_duration_ms=d,t.attr_bitrate=d>0?Math.min(Math.round(8*k*1e3/d),2e7):0,t.attr_enc_average_elapsed_ms=g,this.videoSendReport=t,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),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({},Wr,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.sampleRate;r.channels=n.channelCount,r.sampleRate=i}}),r}},{key:"makeAudioReport",value:function(e){this.lastAudioSendInfo.timestamp>0&&e.timestamp&&(this.audioSendReport={attr_duration_ms:Math.round(We(e.timestamp,this.lastAudioSendInfo.timestamp)),attr_bitrate:Math.round(8*We(e.bytesSent,this.lastAudioSendInfo.bytesSent)*1e3/We(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,i=this.pc;if(!i||null==n||null===(e=n.sender)||void 0===e||!e.track)return Promise.resolve({});if(null==i||!i.getStats)throw new u(d.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 zr(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 $r(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)?$r(e,t):void 0}}(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return e.length>n?{done:!1,value:e[n++]}:{done:!0}},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 o,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw o}}}}function $r(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);t>r;r++)n[r]=e[r];return n}function Xr(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Xr=function(){return!!e})()}var Zr={timestamp:0,packetsLost:0,packetsReceived:0,bytesReceived:0,audioLevel:0,decodingNormal:0,roundTripTime:0},en={packetsLost:0,packetsReceived:0,framesDropped:0,frameHeight:0,frameWidth:0,framesDecoded:0,framesReceived:0,timestamp:0,framesPerSecond:0,bytesReceived:0,roundTripTime:0},tn=function(){function e(t){var r,n,o,a,s;C(this,e),o=this,a=G(a=e),n=L(o,Xr()?Reflect.construct(a,[],G(o).constructor):a.apply(o,s)),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 c=t.connection,u=t.transceiver,d=t.uid,l=t.stream,p=t.transceivers;return n.connection=c,n.pc=c.pc,n.tranceiver=u,n.tranceivers=p,n.firstReportTimer=i(function(){n.getStats().then(function(e){n.makeFirstReport(e)})},400,"interval"),n.source="mcu"!==d&&(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({},en),n.firstReportFlag={audioFirstPacket:!1,videoFirstPacket:!1,audioFirstFrame:!1},n.lastAudioReceiveInfo=Object.assign({},Zr),n.audioReceiveReport={attr_duration_ms:0,attr_delay_estimate:0,attr_bitrate:0},n}return F(e,Vr),N(e,[{key:"extractAudioMetrics",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=Object.assign({},Zr,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.packetsReceivedForLost=n.packetsLost===(t.lastAudioReceiveInfo.packetsLost||0)?t.lastAudioReceiveInfo.packetsReceived||0: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({},Zr,this.connection.peerConnectionStats);n.timestamp=Date.now();var i,o=zr(r);try{for(o.s();!(i=o.n()).done;){var a=i.value;n.bytesReceived+=a.bytesReceived||0,n.packetsLost+=a.packetsLost||0,n.packetsReceived+=a.packetsReceived||0,n.audioLevel=Math.max(n.audioLevel,a.audioLevel||0),n.decodingNormal=Math.max(n.decodingNormal,a.decodingNormal||0)}}catch(e){o.e(e)}finally{o.f()}return n.packetsReceivedForLost=n.packetsLost===(this.lastAudioReceiveInfo.packetsLost||0)?this.lastAudioReceiveInfo.packetsReceived||0:n.packetsReceived||0,n}},{key:"extractVideoMetrics",value:function(e){var t=this,r=Object.assign({source:this.source},en,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.packetsReceivedForLost=r.packetsLost===(t.lastVideoReceiveInfo.packetsLost||0)?t.lastVideoReceiveInfo.packetsReceived||0: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(We(e.timestamp,this.lastAudioReceiveInfo.timestamp)),r=We(e.packetsLost,this.lastAudioReceiveInfo.packetsLost),n=We(e.packetsReceivedForLost,this.lastAudioReceiveInfo.packetsReceivedForLost),i=We(e.bytesReceived,this.lastAudioReceiveInfo.bytesReceived),o=0;try{o=Math.max(r/n,0)}catch(e){o=0}isNaN(o)&&(o=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*o,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,o=t.freezeCount,a=t.packetsLost,s=t.framesDecoded,c=t.framesDropped,u=t.bytesReceived,d=t.packetsReceivedForLost,l=t.retransmittedBytesReceived,p=t.retransmittedPacketsReceived;if(i>0&&e.timestamp){var f=We(e.timestamp,i);if(e.bytesReceived-u>=0){var v=We(e.packetsLost,a),m=We(e.packetsReceivedForLost,d),h=0;try{h=Math.round(v/m*255)}catch(e){h=0}isNaN(h)&&(h=0);var y=We(e.framesDecoded,s);this.videoReceiveReport={attr_network_framerate:Math.round(1e3*y/f),attr_dec_frames:y,attr_dec_key_frames:e.keyFramesDecoded,attr_decode_qp:0,attr_render_delay:0,attr_current_delay:0,attr_dropped_count:We(e.framesDropped,c),attr_fir_count:We(e.firCount,r),attr_freeze_count:We(e.freezeCount,o),attr_pli_count:We(e.pliCount,n),attr_retx_bytes:We(e.retransmittedBytesReceived,l),attr_retx_packets:We(e.retransmittedPacketsReceived,p),attr_bitrate:Math.round(8*We(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:y,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,s=e.videoMetrics;if(a&&s){if((r||-1===(null==a?void 0:a.decodingNormal))&&n&&i)return void(this.firstReportTimer&&(o(this.firstReportTimer,"interval"),this.firstReportTimer=null))}else if(a){if((r||-1===(null==a?void 0:a.decodingNormal))&&n)return void(this.firstReportTimer&&(o(this.firstReportTimer,"interval"),this.firstReportTimer=null))}else if(s&&i)return void(this.firstReportTimer&&(o(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!=s&&s.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,i=this.pc;if(!(i&&(null!=n&&n.length||null!=r&&r.receiver.track)))return Promise.resolve({});if(null==i||!i.getStats)throw new u(d.BrowserNotSupported,"getStats is not supported");if(n&&n.length){var o=n.map(function(e){return e.receiver.track}).filter(function(e){return!!e});return Promise.all(o.map(function(e){return i.getStats(e)})).then(function(e){return{audioMetrics:t.extractMultipleAudioMetrics(e)}})}return null!=r&&null!==(e=r.receiver)&&void 0!==e&&e.track?i.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=Le(G(e.prototype),t,r))?function(e){return n.apply(r,e)}:n)([]),this.firstReportTimer&&(o(this.firstReportTimer,"interval"),this.firstReportTimer=null)}}])}(),rn=function(e,t){return e.width!==t.width?e.width-t.width:e.height-t.height},nn=function(e){var t;if(!e)return[];var r=e.media.video;if(!r)return[];var n=[],i=r.optional,o=r.parameters;return null!=o&&o.resolution&&n.push(o.resolution),null!=i&&null!==(t=i.parameters)&&void 0!==t&&null!==(t=t.resolution)&&void 0!==t&&t.length&&n.push.apply(n,Fe(i.parameters.resolution)),n.sort(rn),n},on=function(e,t){var r,n=e.media,i=n.audio,o=n.video;if(t===ke.QuotaLimit)return r=new u(d.QuotaLimitExceed);if(i)r=new u(d.SubscribeAudioStreamFailed,t);else if(o){var a=o.source;a===fe.CAMERA?r=new u(d.SubscribeVideoStreamFailed,t):a===fe.SCREENCAST&&(r=new u(d.SubscribeScreenShareFailed,t))}return r},an=function(e,t){var r,n=e.trackMediaType;if(t===ke.QuotaLimit)return r=new u(d.QuotaLimitExceed);if("audio"===n)r=new u(d.PublishAudioStreamFailed,t);else{var i=e.source;i===fe.CAMERA?r=new u(d.PublishVideoStreamFailed,t):i===fe.SCREENCAST&&(r=new u(d.PublishScreenShareFailed,t))}return r},sn=function(e,t,r,n){var i=n,o=e.getVideoTracks(),a=e.getAudioTracks();return"audio"===t&&a.length?Pt.audioSFU?n?n.replaceStream(e):i=new or(null,r,e):n?n.replaceTrack(a[0]):i=new or(a[0],r):"video"===t&&o.length&&(n?n.replaceTrack(o[0]):i=new ar(o[0],r)),i};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 e.length>n?{done:!1,value:e[n++]}:{done:!0}},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 o,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw o}}}}function un(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);t>r;r++)n[r]=e[r];return n}function dn(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 ln(e){for(var t=1;arguments.length>t;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?dn(Object(r),!0).forEach(function(t){Te(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):dn(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function pn(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(pn=function(){return!!e})()}var fn=function(){function e(t){var r,n,i,o;C(this,e),n=this,i=G(i=e),r=L(n,pn()?Reflect.construct(i,[],G(n).constructor):i.apply(n,o)),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,"connection",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"signaling",{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,"reporter",{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 a=t.connection,s=t.stream,c=t.uid,u=t.resolutionInfo;return r.connection=a,r.resolutionInfo=u,r.signaling=a.signaling,r.stream=s,r.uid=c,r.reporter=a.reporter,r.connection.once("ended",function(){r.clear()}),r.videoStatsMap=new Map,r.audioStatsMap=new Map,r.metricsMap=new Map,r.state=be.Processing,r.handleStreamAdd=r.handleStreamAdd.bind(r),r.connection.on("track",r.handleStreamAdd),r}return F(e,p),N(e,[{key:"handleStreamAdd",value:function(e,t){var r,n=this,i=function(){n.reporter.trace.subscribe({init:!1,capabilities:n.stream.media,remoteStreamId:n.stream.id,remoteUserId:n.uid,sessionId:n.id,elapse:Date.now()-n.startTime,resolutionInfo:n.resolutionInfo}),n.startTime=Date.now()};if(Pt.audioSFU&&"audio"===e.kind){var o,a=null===(o=this.transceivers)||void 0===o?void 0:o.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,i())}else 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]),i())}},{key:"mediaStream",get:function(){return this._stream||this.connection.mcuAudioStream}},{key:"stop",value:function(){var e=this;if(this.state===be.Processing)return this.clear(),this.signaling.unsubscribe({subscriptionId:this.id}).catch(function(t){e.reporter.log.warn("negative ack for unsubscribing, ".concat(t))})}},{key:"mute",value:function(e){return this.signaling.subscriptionControl({subscriptionId:this.id,operation:"pause",track:e})}},{key:"unmute",value:function(e){return this.signaling.subscriptionControl({subscriptionId:this.id,operation:"play",track:e})}},{key:"applyOptions",value:function(e){var t=this.stream.id;return this.resolutionInfo=e,this.signaling.subscriptionControl({subscriptionId:this.id,operation:"update",updateDesc:{video:{from:t,params:e}}})}},{key:"clear",value:function(){this.state!==be.End&&(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.state=be.End,this.connection.reset(),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 tn(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 tn(this),this.onMonitor()}},{key:"handleVideoFirstFrame",value:function(){this.reporter.trace.videoFirstFrame({sessionId:this.id,remoteStreamId:this.stream.id,attr_elapse_time:-1,remoteUserId:this.uid})}},{key:"handleMetrics",value:function(e,t){var r=e.audioMetrics,n=e.videoMetrics;if(r){var i,o=(null===(i=this.metricsMap.get(t))||void 0===i?void 0:i.audioMetrics)||{},a=Ye(r,o),s=We(r.bytesReceived,o.bytesReceived);this.audioStatsMap.set(t,{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/a})}else if(n){var c,u=(null===(c=this.metricsMap.get(t))||void 0===c?void 0:c.videoMetrics)||{},d=Ye(n,u),l=We(n.bytesReceived,u.bytesReceived),p={codec:this.connection.peerConnectionStats.videoCodec||n.codec,receiveResolution:{width:n.frameWidth,height:n.frameHeight},receiveBitrate:8*l/d,decodeFrameRate:Math.round(We(null==n?void 0:n.framesDecoded,u.framesDecoded)/d),receiveFrameRate:Math.round(We(null==n?void 0:n.framesReceived,u.framesReceived)/d),receiveBytes:n.bytesReceived,receivePackets:n.packetsReceived,receivePacketsLost:n.packetsLost,rtt:n.roundTripTime,timestamp:n.timestamp};this.videoStatsMap.set(t,p)}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(ln({sessionId:e.id,remoteStreamId:e.stream.id,remoteUserId:e.uid},t))}),this.monitor.on("audio-recv-stream",function(t){e.reporter.metric.audioRecvStream(ln({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})}),this.monitor.on("video-recv-stream",function(t){e.reporter.metric.videoRecvStream(ln({sessionId:e.id,remoteStreamId:e.stream.id,remoteUserId:e.uid},t))}))}}])}(),vn=function(e){var t,r={audio:[],video:[]},n=cn(e);try{for(n.s();!(t=n.n()).done;){var i=t.value,o=i.stream;if(!i.error){var a=mn(o,i.resolutionInfo),s=a.audio,c=a.video;if(s){var u=ln(ln({},s),{},{trackId:o.media.audio.trackId,ssrcGroup:[{ssrc:In()}]});Pt.audioSFU&&(u.ssrcGroup=[,,,,,,].fill(0).map(function(){return{ssrc:In()}})),r.audio.push(u)}else if(c){var d,l;r.video.push(ln(ln({},c),{},{trackId:null===(d=o.media)||void 0===d||null===(d=d.video)||void 0===d?void 0:d.trackId,ssrcGroup:null===(l=o.media)||void 0===l||null===(l=l.video)||void 0===l?void 0:l.ssrcGroup,subSsrcGroup:{ssrc:In(),rtxSsrc:In()}}))}}}}catch(e){n.e(e)}finally{n.f()}return r},mn=function(e,t){var r=e.id,n=e.media,i=n.video,o={};if(n.audio)o.audio={from:r};else if(i){var a;o.video={from:r,format:null===(a=n.video)||void 0===a?void 0:a.format,parameters:t}}return o},hn=function(){var e=M(Oe.mark(function e(t,r){var n,i,o,a,s;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=r.connection,i=[],o={},t.forEach(function(e,t){var n=e.stream,a=e.error,s=e.uid,c=e.resolutionInfo;if(i[t]={stream:n,error:a,uid:s,resolutionInfo:c},!a){var u=new fn(ln(ln({},r),{},{uid:s,resolutionInfo:c,stream:n}));o[n.id]=u}}),s=new Promise(function(e,r){a=function(){var a=M(Oe.mark(function a(){var s;return Oe.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:return s=vn(t),a.next=1,Dn(n,s,o);case 1:n.signaling.batchSubscribe({connectionId:n.id,propertiesJsonStr:JSON.stringify({opusExtendInbandFec:!0,type:Pt.audioSFU?"selective":"mixed"}),supportTemporalLayer:!1,media:s}).then(function(){var r=M(Oe.mark(function r(n){var a,s,c,u,d,l;return Oe.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:if(a=n.detailStatus,"ok"===(s=n.globalStatus)){r.next=1;break}return i.forEach(function(e){e.error=e.error||on(e.stream,s)}),r.abrupt("return",e(i));case 1:c=cn(a),r.prev=2,d=Oe.mark(function e(){var r,n,a,s,c,d;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:n=(r=u.value).id,a=r.msg,c=o[(s=r.origin).id],d=t.findIndex(function(e){return e.stream.id===s.id}),"ok"===a&&c?(c.id=n,i[d].id=n,i[d].subscription=c):"ok"!==a&&(i[d].error=on(c.stream,a));case 1:case"end":return e.stop()}},e)}),c.s();case 3:if((u=c.n()).done){r.next=5;break}return r.delegateYield(d(),"t0",4);case 4:r.next=3;break;case 5:r.next=7;break;case 6:r.prev=6,l=r.catch(2),c.e(l);case 7:return r.prev=7,c.f(),r.finish(7);case 8:e(i);case 9:case"end":return r.stop()}},r,null,[[2,6,7,8]])}));return function(e){return r.apply(this,arguments)}}()).catch(r);case 2:case"end":return a.stop()}},a)}));return function(){return a.apply(this,arguments)}}()}),n.addTask(a),e.abrupt("return",s);case 1:case"end":return e.stop()}},e)}));return function(t,r){return e.apply(this,arguments)}}(),yn=function(){var e=M(Oe.mark(function e(t,r){var n,i,o;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return i=r.connection,o=new Promise(function(e,r){n=function(){var n=M(Oe.mark(function n(){var o,a;return Oe.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return o=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}),a=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=1,xn(i,t);case 1:i.signaling.batchUnSubscribe({connectionId:i.id,audio:o,video:a}).then(function(){t.forEach(function(e){e.state=be.End,e.clear()}),e(void 0)}).catch(r);case 2:case"end":return n.stop()}},n)}));return function(){return n.apply(this,arguments)}}()}),r.connection.addTask(n),e.abrupt("return",o);case 1:case"end":return e.stop()}},e)}));return function(t,r){return e.apply(this,arguments)}}();function gn(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 bn(e){for(var t=1;arguments.length>t;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?gn(Object(r),!0).forEach(function(t){Te(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):gn(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 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 e.length>n?{done:!1,value:e[n++]}:{done:!0}},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 o,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw o}}}}function kn(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);t>r;r++)n[r]=e[r];return n}var Pn={motion:"maintain-framerate",detail:"maintain-resolution",balanced:"balanced"},wn=0,On=0,Tn=0,En=new Set,In=function(){if(0==wn||0==On)return 0;var e=Math.min(On+1,1e4);do{var t=wn+(On&Tn++);if(0!=t&&!En.has(t))return t}while(--e>0);return 0},Rn=function(t,r){var n,i;if((null===(n=t.rids)||void 0===n?void 0:n.length)>1)return e.isFirefox()&&(r=Cn(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},An=function(){var t=M(Oe.mark(function t(r,n){var i,o,a,s,c,u,d,l,p,f,v;return Oe.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return i=r.pc,o=r.idToTransceiverMap,a=r.remoteSDP,s=new MediaStream(n.map(function(e){return e.getMediaStreamTrack()})),c=n.map(function(e){var t={direction:"sendonly"};if(e instanceof qt){var n=jt(e).filter(function(e){return e.active});t.sendEncodings=n.map(function(t){return{rid:t.rid||void 0,maxBitrate:1e3*t.maxBitrate,maxFramerate:t.maxFramerate,active:!Pt.simulcast||e.source===fe.SCREENCAST}})}var i=r.pc.addTransceiver(e.getMediaStreamTrack()||e.trackMediaType,t);if(e instanceof qt&&i.sender.setParameters){var a=e.optimizationMode,s=i.sender.getParameters();s.degradationPreference=Pn[a]||"balanced",i.sender.setParameters(s)}return o.set(e.getTrackId(),i),i}),t.next=1,i.createOffer();case 1:return d=R.parse((u=t.sent).sdp),t.next=2,i.setLocalDescription(u);case 2:r.localSDP=d,a.groups[0].mids=r.localSDP.groups[0].mids,l=Sn(c),t.prev=3,f=Oe.mark(function t(){var r,n,i,o;return Oe.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:r=p.value,n=a.media.find(function(e){return e.type===r.sender.track.kind}),e.isFirefox()&&"video"===n.type&&(delete n.rids,delete n.simulcast),i=bn(bn({},n),{},{ext:Fe(n.ext),mid:r.mid}),o=d.media.find(function(e){return e.mid==r.mid}),Rn(o,i),a.media.push(i);case 1:case"end":return t.stop()}},t)}),l.s();case 4:if((p=l.n()).done){t.next=6;break}return t.delegateYield(f(),"t0",5);case 5:t.next=4;break;case 6:t.next=8;break;case 7:t.prev=7,v=t.catch(3),l.e(v);case 8:return t.prev=8,l.f(),t.finish(8);case 9:return t.next=10,i.setRemoteDescription({type:"answer",sdp:R.write(a)});case 10:return r.remoteSDP=a,t.abrupt("return",{localSDP:r.localSDP,stream:s});case 11:case"end":return t.stop()}},t,null,[[3,7,8,9]])}));return function(e,r){return t.apply(this,arguments)}}(),_n=function(){var e=M(Oe.mark(function e(t,r){var n,i,o,a;return Oe.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=1,n.createOffer();case 1:return a=R.parse((o=e.sent).sdp),e.next=2,n.setLocalDescription(o);case 2:return t.localSDP=a,i.groups[0].mids=a.groups[0].mids,t.remoteSDP=i,e.next=3,n.setRemoteDescription({type:"answer",sdp:R.write(i)});case 3:case"end":return e.stop()}},e)}));return function(t,r){return e.apply(this,arguments)}}(),Mn=function(e,t,r){var n=e.ssrc,i=e.rtxSsrc;!function(e){e.ssrc&&En.add(e.ssrc),e.rtxSsrc&&En.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:f(),id:e})})},Cn=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},Dn=function(){var e=M(Oe.mark(function e(t,r,n){var i,o,a,s,c,u,d,l,p,f,v,m,h,y,g,b,S,k,P,w,O,T,E,I,A,_,M,C,D;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(a=t.pc,s=t.idToTransceiverMap,u=t.idToTransceiversMap,d=(c=t.remoteSDP).media.find(function(e){return"video"===e.type}),l=c.media.find(function(e){return"audio"===e.type}),p=null===(i=d.ssrcs)||void 0===i?void 0:i.find(function(e){return"msid"===e.attribute}).value.split(" ")[0],null!==(o=r.audio)&&void 0!==o&&o[0])if(v=null===(f=r.audio)||void 0===f?void 0:f[0],m=v.from,Pt.audioSFU){if(u.get(m)){h=Sn(u.get(m));try{for(h.s();!(y=h.n()).done;)y.value.direction="recvonly"}catch(e){h.e(e)}finally{h.f()}g=c.media.filter(function(e){return"audio"===e.type}),b=Sn(g);try{for(b.s();!(S=b.n()).done;)S.value.direction="sendonly"}catch(e){b.e(e)}finally{b.f()}}else t.mcuAudioTranceivers=[,,,,,,].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",l.direction="sendonly",n[m].addTransceiver(s.get(m));k=Sn(r.video),e.prev=1,w=Oe.mark(function e(){var t,r,i;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r=s.get(t=P.value.from)){e.next=1;break}s.set(t,a.addTransceiver("video",{direction:"recvonly"})),e.next=5;break;case 1:if("inactive"===r.direction){e.next=4;break}return r.direction="inactive",e.next=2,a.createOffer();case 2:return i=e.sent,e.next=3,a.setLocalDescription(i);case 3:return c.media.find(function(e){return e.mid==r.mid}).direction="inactive",e.next=4,a.setRemoteDescription({type:"answer",sdp:R.write(c)});case 4:s.get(t).direction="recvonly";case 5:n[t].addTransceiver(s.get(t));case 6:case"end":return e.stop()}},e)}),k.s();case 2:if((P=k.n()).done){e.next=4;break}return e.delegateYield(w(),"t0",3);case 3:e.next=2;break;case 4:e.next=6;break;case 5:e.prev=5,C=e.catch(1),k.e(C);case 6:return e.prev=6,k.f(),e.finish(6);case 7:return e.next=8,a.createOffer();case 8:return T=R.parse((O=e.sent).sdp),c.groups[0].mids=T.groups[0].mids,e.next=9,a.setLocalDescription(O);case 9:t.localSDP=T,Pt.audioSFU&&r.audio[0]&&(I=(E=r.audio[0]).ssrcGroup,u.get(E.from).forEach(function(e,t){var r,n=null===(r=I[t])||void 0===r?void 0:r.ssrc,i=c.media.find(function(t){return t.mid==e.mid&&"audio"===t.type});i||(i=bn(bn({},l),{},{mid:e.mid}),c.media.push(i)),i.ssrcs=jn(n,p),i.direction="sendonly"})),A=Sn(r.video),e.prev=10,M=Oe.mark(function e(){var t,r,i,o,a;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:i=(t=_.value).subSsrcGroup,o=s.get(r=t.from),(a=c.media.find(function(e){return e.mid==o.mid&&"video"===e.type}))||((a=bn({},d)).mid=o.mid,c.media.push(a)),a.direction="sendonly",n[r].ssrc=null==i?void 0:i.ssrc,Mn(i,a,p);case 1:case"end":return e.stop()}},e)}),A.s();case 11:if((_=A.n()).done){e.next=13;break}return e.delegateYield(M(),"t1",12);case 12:e.next=11;break;case 13:e.next=15;break;case 14:e.prev=14,D=e.catch(10),A.e(D);case 15:return e.prev=15,A.f(),e.finish(15);case 16:return t.remoteSDP=c,e.next=17,a.setRemoteDescription({type:"answer",sdp:R.write(c)});case 17:case"end":return e.stop()}},e,null,[[1,5,6,7],[10,14,15,16]])}));return function(t,r,n){return e.apply(this,arguments)}}(),xn=function(){var e=M(Oe.mark(function e(t,r){var n,i,o,a,s,c,u,d,l,p,f,v;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:n=t.pc,i=t.remoteSDP,o=[],a=Sn(r);try{for(a.s();!(s=a.n()).done;)d=(c=s.value).transceivers,(u=c.transceiver)?o.push(u):d&&o.push.apply(o,Fe(d))}catch(e){a.e(e)}finally{a.f()}return o.forEach(function(e){e.direction="inactive"}),e.next=1,n.createOffer();case 1:return l=e.sent,e.next=2,n.setLocalDescription(l);case 2:t.localSDP=R.parse(l.sdp),p=Oe.mark(function e(){var t;return Oe.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 1:case"end":return e.stop()}},e)}),f=0,v=o;case 3:if(v.length<=f){e.next=5;break}return e.delegateYield(p(),"t0",4);case 4:f++,e.next=3;break;case 5:return t.remoteSDP=i,e.next=6,n.setRemoteDescription({type:"answer",sdp:R.write(i)});case 6:case"end":return e.stop()}},e)}));return function(t,r){return e.apply(this,arguments)}}(),jn=function(e,t){return[{attribute:"msid",value:"".concat(t," v").concat(e),id:e},{attribute:"cname",value:f(),id:e}]},Nn=function(t,r,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"all",o=r.direction,a=r.remoteSDP,s=R.parse(t);"relay"===i&&s.media.forEach(function(e){e.candidates=e.candidates.filter(function(e){return k(e.ip)})}),n&&(s=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 o=t.mid,a=t.ssrcGroups,s=void 0===a?[]:a,c=t.ssrcs,u=void 0===c?[]:c,d=t.rids,l=void 0===d?[]:d;"audio"===t.type?e.media[i]=bn(bn({},r),{},{mid:o,ssrcs:u}):"video"===t.type&&(e.media[i]=bn(bn({},n),{},{mid:o,ssrcGroups:s,ssrcs:u}),l.length&&(e.media[i].rids=l,e.media[i].simulcast={dir1:"recv",list1:l.map(function(e){return"~".concat(e.id)}).join(";")}))}),e}(a,s));var c=s.media.find(function(e){return"video"===e.type});if("uplink"===o&&e.isFirefox()&&Pt.simulcast&&(c.ext=c.ext.filter(function(e){return!e.uri.includes("rtp-stream-id")})),!c.ssrcs&&"downlink"===o){var u=In();c.ssrcs=jn(u,s.msidSemantic.token)}return r.remoteSDP=s,s},Ln=function(e,t){if(e){var r,n=e.fmtp,i=e.payloads,o=e.rtp,a=e.rtcpFb,s=[],c={},u=Sn(n);try{for(u.s();!(r=u.n()).done;){var d=r.value,l=d.payload,p=d.config.split(";");c[l]={};var f,v=Sn(p);try{for(v.s();!(f=v.n()).done;){var m=yt(f.value.split("="),2);c[l][m[0]]=m[1]}}catch(e){v.e(e)}finally{v.f()}}}catch(e){u.e(e)}finally{u.f()}for(var h in c){var y=c[h];(t(y)||s.includes(+y.apt))&&s.push(parseInt(h))}if(s.length){for(var g=n.length-1;g>=0;g--){s.includes(n[g].payload)&&n.splice(g,1)}for(var b=o.length-1;b>=0;b--)s.includes(o[b].payload)&&o.splice(b,1);for(var S=a.length-1;S>=0;S--)s.includes(a[S].payload)&&a.splice(S,1);e.payloads=i.split(" ").map(Number).filter(function(e){return!s.includes(e)}).join(" ")}}},Gn=function(e,t){var r=e.media.find(function(e){return"video"===e.type});return Ln(r,function(e){var r;return null===(r=e["profile-level-id"])||void 0===r?void 0:r.includes(t)}),e},Un=function(e){var t=e.media.find(function(e){return"video"===e.type});return Ln(t,function(e){return e["profile-level-id"]&&!e["packetization-mode"]}),e};function Fn(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 Vn(e){for(var t=1;arguments.length>t;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Fn(Object(r),!0).forEach(function(t){Te(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Fn(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}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 qn(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?qn(e,t):void 0}}(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return e.length>n?{done:!1,value:e[n++]}:{done:!0}},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 o,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw o}}}}function qn(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);t>r;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 Yn=function(){function e(t){var r,n,i,o;C(this,e),n=this,i=G(i=e),r=L(n,Hn()?Reflect.construct(i,[],G(n).constructor):i.apply(n,o)),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,"signaling",{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,"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 a=t.connection,s=t.uid,c=t.tracks,u=void 0===c?[]:c;return r.tracks=u,r.connection=a,r.signaling=a.signaling,r.uid=s,r.reporter=a.reporter,r.state=be.Idle,r.videoStatsMap=new Map,r.audioStatsMap=new Map,r.metricsMap=new Map,r.handleTracEvent=r.handleTracEvent.bind(r),u.forEach(function(e){e.on(Ce,r.handleTracEvent)}),r.encodings=jt(u[0]),r.state=be.Processing,r.connection.once("ended",function(){r.clear()}),r}return F(e,p),N(e,[{key:"stop",value:function(){var e=this;return this.state!==be.Processing?Promise.resolve():Wn([this],{connection:this.connection}).catch(function(t){e.clear(),e.reporter.log.warn("negative ack for unpublish, ".concat(c(t)))})}},{key:"mute",value:function(){if(this.tracks.length&&this.state===be.Processing){var e=this.tracks[0].trackMediaType;return this.reporter.trace.localControl(e,!0,this.id),this.signaling.streamControl({streamId:this.id,operation:"pause",data:e})}}},{key:"unmute",value:function(){if(this.tracks.length&&this.state===be.Processing){var e=this.tracks[0].trackMediaType;return this.reporter.trace.localControl(e,!1,this.id),this.signaling.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.signaling.setStreamProperties({streamId:this.id,propertiesJsonStr:JSON.stringify({mirror:!!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(){n.stop().then(function(){n.connection.sessionManager.channel.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!==be.End&&(this.monitor&&(this.monitor.stop(),this.monitor.removeAllListeners(),this.monitor=null),this.tracks.forEach(function(t){t.off(Ce,e.handleTracEvent)}),this.tracks=[],this.metricsMap.clear(),this.audioStatsMap.clear(),this.videoStatsMap.clear(),this.connection.reset(),this.state=be.End,this.emit("ended"))}},{key:"applyOptions",value:function(e){var t=this,r=e[0],n=r.index,i=r.bitrate;if(n>=this.feedbackIndex&&this.state===be.Processing){this.feedbackIndex=n;var o,a=0===i,s=this.transceiver,c=!1,u=!1,d=s.sender.getParameters(),l=e.map(function(e){return e.rid}),p=Bn(d.encodings);try{for(p.s();!(o=p.n()).done;){var f,v=o.value,m=Bn(e);try{var h=function(){var e=f.value,r=t.encodings.find(function(t){return t.rid===e.rid});if(e.rid!==v.rid&&v.rid||v.active||a||(v.active=!0,v.scaleResolutionDownBy=r.scaleResolutionDownBy,c=!0),e.rid===v.rid&&!a){var n=Math.max(Math.min(e.bitrate,r.maxBitrate),r.minBitrate);n!==Math.round(v.maxBitrate/1e3)&&(v.maxBitrate=1e3*n,u=!0)}};for(m.s();!(f=m.n()).done;)h()}catch(e){m.e(e)}finally{m.f()}!v.active||l.includes(v.rid)&&!a||(v.active=!1,c=!0)}}catch(e){p.e(e)}finally{p.f()}(c||u)&&s.sender.setParameters(d)}}},{key:"updateOptionzationMode",value:function(){var e;if(this.tracks[0]instanceof qt&&null!==(e=this.transceiver)&&void 0!==e&&null!==(e=e.sender)&&void 0!==e&&e.setParameters){var t=this.tracks[0].optimizationMode,r=this.transceiver.sender.getParameters();r.degradationPreference=Pn[t]||"balanced",this.transceiver.sender.setParameters(r)}}},{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=be.Processing,this.feedbackIndex=-1,this.monitor=new Kr(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,o=(null===(i=this.metricsMap.get(t))||void 0===i?void 0:i.audioMetrics)||{},a=Ye(r,o),s=We(r.bytesSent,o.bytesSent);this.audioStatsMap.set(t,{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/a})}else if(n){var c,u,d=((null===(c=this.transceiver)||void 0===c||null===(c=c.sender)||void 0===c?void 0:c.getParameters())||{}).encodings,l=void 0===d?[]:d,p=(null===(u=this.metricsMap.get(t))||void 0===u?void 0:u.videoMetrics)||{},f=Ye(n,p),v=We(n.totalBytesSent,p.totalBytesSent),m={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:l.length,sendLayers:l.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*v/f};this.videoStatsMap.set(t,m)}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;this.monitor.on("audio-send-stream",function(t){e.reporter.metric.audioSendStream(Vn({sessionId:e.id},t))}),this.monitor.on("video-send-stream",function(t){e.reporter.metric.videoSendStream(Vn({sessionId:e.id},t))}),this.monitor.on("bwe",function(t){e.reporter.metric.bwe(Vn({sessionId:e.id},t))})}}])}(),Jn=function(){var e=M(Oe.mark(function e(t,r){var n,i,o,a,s,c=arguments;return Oe.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=1,An(r,t);case 1:return a=(o=e.sent).localSDP,s=o.stream,t.forEach(function(e){var t=e.getTrackId(),o=a.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(o.ssrcs[0].id)}]}];else if(e instanceof qt){var c;i.video=i.video||[];var u=e.trackSettings,d=o.ssrcGroups,l=void 0===d?[]:d,p=jt(e);p.length>1&&(l=p.map(function(){return{semantics:"FID",ssrcs:"".concat(In()," ").concat(In())}}));var f=l.filter(function(e){return"FID"===e.semantics}).map(function(e){return{ssrc:Number(e.ssrcs.split(" ")[0]),rtxSsrc:Number(e.ssrcs.split(" ")[1])}}),v={trackId:e.getTrackId(),forwardOnly:e.source===fe.SCREENCAST,msid:s.id,mid:"".concat(o.mid),uplinkSsrcGroup:f,source:e.source||fe.CAMERA,streamParameters:{ssrc:null==f||null===(c=f[0])||void 0===c?void 0:c.ssrc,bitrate:"".concat(p[p.length-1].maxBitrate),resolution:{width:u.width,height:u.height},framerate:u.frameRate},ssrcParameters:f.map(function(e,t){var r;return{ssrc:e.ssrc,active:p[t].active,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(v)}}),e.abrupt("return",i);case 2:case"end":return e.stop()}},e)}));return function(t,r){return e.apply(this,arguments)}}(),Wn=function(){var e=M(Oe.mark(function e(t,r){var n,i;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return i=new Promise(function(e,i){n=function(){var n=M(Oe.mark(function n(){var o,a;return Oe.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return o=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}),a=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=1,_n(r.connection,t);case 1:r.connection.signaling.batchUnPublish({connectionId:r.connection.id,audio:o,video:a}).then(function(){t.forEach(function(e){e.clear(),e.state=be.End}),e(void 0)}).catch(i);case 2:case"end":return n.stop()}},n)}));return function(){return n.apply(this,arguments)}}()}),r.connection.addTask(n),e.abrupt("return",i);case 1:case"end":return e.stop()}},e)}));return function(t,r){return e.apply(this,arguments)}}();function Qn(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Qn=function(){return!!e})()}var Kn={audioCodec:"",videoCodec:"",roundTripTime:-1,availableOutgoingBitrate:-1},zn=function(){function t(e){var r,n,i,o;return C(this,t),n=this,i=G(i=t),r=L(n,Qn()?Reflect.construct(i,[],G(n).constructor):i.apply(n,o)),Object.defineProperty(r,"connectionMetrics",{enumerable:!0,configurable:!0,writable:!0,value:Object.assign({},Kn)}),Object.defineProperty(r,"pc",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),r.pc=e.pc,r}return F(t,Vr),N(t,[{key:"extractMetrics",value:function(t){var r=Object.assign({},Kn),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 o,a;null!==(o=t.mimeType)&&void 0!==o&&o.includes("audio")?r.audioCodec=t.mimeType.replace("audio/",""):null!==(a=t.mimeType)&&void 0!==a&&a.includes("video")&&(r.videoCodec=t.mimeType.replace("video/",""))}}),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 u(d.BrowserNotSupported,"getStats is not supported");return this.pc.getStats(null).then(function(t){return e.extractMetrics(t)})}}])}();function $n(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 e.length>n?{done:!1,value:e[n++]}:{done:!0}},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 o,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw o}}}}function Xn(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);t>r;r++)n[r]=e[r];return n}function Zn(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Zn=function(){return!!e})()}var ei={uplink:"",downlink:""},ti=function(){function t(e){var r,n,i,o;C(this,t),n=this,i=G(i=t),r=L(n,Zn()?Reflect.construct(i,[],G(n).constructor):i.apply(n,o)),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,"signaling",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"state",{enumerable:!0,configurable:!0,writable:!0,value:Se.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,"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,"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,"onIceGatheringStateChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){r.reporter.log.debug("ice gathering state: ".concat(e.target.iceGatheringState))}}),r.pc=null;var a=e.direction,s=e.sessionManager;return r.signaling=s.channel.signaling,r.sessionManager=s,r.reporter=s.reporter,r.enquenTask=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=[],r=0,n=!1,i=function(){for(;e>r&&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.direction=a,r.idToTransceiverMap=new Map,r.idToTransceiversMap=new Map,r.createPeerConnection(),r.id="".concat(r.direction,"_").concat(f()),r.startSinglePC().then(function(){r.state=Se.Idle,r.enquenTask.start()}),r}return F(t,p),N(t,[{key:"startSinglePC",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return"uplink"===this.direction?(this.pc.addTransceiver("audio",{direction:"sendonly"}),this.pc.addTransceiver("video",{direction:"sendonly"})):(this.mcuAudioStream=null,this.mcuAudioTranceiver=this.pc.addTransceiver("audio",{direction:"recvonly"}),this.pc.addTransceiver("video",{direction:"recvonly"})),e&&function(e){var t=e.remoteSDP,r=e.sessionManager,n=e.mcuAudioTranceiver,i=e.pc,o=e.idToTransceiverMap,a=e.idToTransceiversMap,s=e.direction,c=e.localSDP.media.slice(2),u=Fe(r.sessions.values());if("downlink"===s){var d=t.media.slice(2),l=u.filter(function(e){return e instanceof fn}),p=l.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)});p&&!Pt.audioSFU&&(o.set(p.id,n),p.addTransceiver(n));var f=[];c.forEach(function(e){var t={direction:e.direction},r=d.find(function(t){return t.type===e.type&&e.mid==t.mid}),n=l.find(function(e){return(null==e?void 0:e.ssrc)===(null==r?void 0:r.ssrcs[0].id)}),a=i.addTransceiver(e.type,t);"recvonly"===e.direction&&("video"===e.type&&n?(o.set(n.stream.id,a),n.addTransceiver(a)):"audio"===e.type&&f.push(a))}),f.length&&p&&(e.mcuAudioTranceivers=f,a.set(p.id,f),p.addTransceivers(f))}else{var v=u.filter(function(e){return e instanceof Yn});c.forEach(function(e){var t={direction:e.direction},r=v.find(function(t){return t.mid==e.mid});if("sendonly"===e.direction&&r){var n=r.tracks[0],a=(null==n?void 0:n.getMediaStreamTrack())||(null==n?void 0:n.trackMediaType);if(n instanceof qt){var s=jt(n).filter(function(e){return e.active});t.sendEncodings=s.map(function(e){return{rid:e.rid||void 0,maxBitrate:1e3*e.maxBitrate,maxFramerate:e.maxFramerate,active:!Pt.simulcast||n.source===fe.SCREENCAST}})}var c=i.addTransceiver(a,t);o.set(n.getTrackId(),c),r.addTransceiver(c)}else i.addTransceiver(e.type,t)})}}(this),this.exchangeSDP(e)}},{key:"stopSinglePC",value:function(){return arguments.length>0&&void 0!==arguments[0]&&arguments[0]||this.emit("ended"),this.signaling.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.reporter.log.debug("sessionId ".concat(this.id,": clear RTC PeerConnection.")),this.detachEvents(),"closed"!==this.pc.signalingState&&this.pc.close(),this.pc=null)}},{key:"onTrack",value:function(e){var t=e.track;"audio"===t.kind?Pt.audioSFU?this.emit("track",t,e.streams[0]):this.mcuAudioStream=new MediaStream([t]):this.emit("track",t)}},{key:"fireEndedEvent",value:function(){this.state!==Se.Ended&&(this.state=Se.Ended,this.emit("ended"))}},{key:"onIceConnectionStateChange",value:function(){var e=this.pc.iceConnectionState;this.reporter.log.debug("sessionId ".concat(this.id,": ICE connection state changed to ").concat(e))}},{key:"handleClientReoffer",value:(r=M(Oe.mark(function e(){var t;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.state!==Se.New){e.next=1;break}return e.abrupt("return",Promise.reject());case 1:return this.reporter.log.debug("sessionId ".concat(this.id,": start client reoffer process")),e.prev=2,e.next=3,this.stopSinglePC(!0);case 3:this.removeAllListeners(),e.next=5;break;case 4:e.prev=4,t=e.catch(2),this.reporter.log.debug("sessionId ".concat(this.id,": client reoffer close failed ").concat(c(t)));case 5:this.closePeerConnection();case 6:case"end":return e.stop()}},e,this,[[2,4]])})),function(){return r.apply(this,arguments)})},{key:"addTask",value:function(e){this.enquenTask.add(e)}},{key:"onConnectionStateChange",value:function(){var e=this,t=this.pc.connectionState;this.reporter.trace.connectionsEvent(this.id,t),"failed"===t||"closed"===t?(this.clientFailoverTimer&&o(this.clientFailoverTimer),this.clientFailoverTimer=i(function(){e.state!==Se.New&&e.emit("reoffer")},1e4)):"connected"===t&&(this.clientFailoverTimer&&(o(this.clientFailoverTimer),this.clientFailoverTimer=null),this.createPeerConnectionTimer&&(o(this.createPeerConnectionTimer),this.createPeerConnectionTimer=null))}},{key:"getPeerConnectionConfig",value:function(){var t=this.sessionManager.channel.iceConfig,r=t.username,n=t.password,i=t.port,o=t.iceServerList,a={bundlePolicy:"max-bundle",iceTransportPolicy:o.length?"relay":"all",sdpSemantics:"unified-plan"};if(o.length){var s,c=[],u=$n(o);try{for(u.s();!(s=u.n()).done;){var d=s.value;c.push("turn:".concat(d,":").concat(i,"?transport=udp"),"turn:".concat(d,":").concat(i,"?transport=tcp"))}}catch(e){u.e(e)}finally{u.f()}e.isFirefox()&&c.splice(4,2),"relay"===ei[this.direction]&&(ei[this.direction]="all",a.iceTransportPolicy="all"),a.iceServers=[{urls:c,username:r,credential:n}]}return ei[this.direction]=a.iceTransportPolicy,this.reporter.log.debug("PeerConnectionConfig",a),a}},{key:"createPeerConnection",value:function(){var e=this;this.pc?this.reporter.log.warn("sessionId ".concat(this.id,": A PeerConnection was created. Cannot create again for the same PeerConnectionChannel.")):(this.pc=new RTCPeerConnection(this.getPeerConnectionConfig()),this.attachEvents(),this.createPeerConnectionTimer=i(function(){var t;"connected"===(null===(t=e.pc)||void 0===t?void 0:t.connectionState)||e.exchangeSdpTask||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.onconnectionstatechange=function(){e.onConnectionStateChange()},this.pc.onicegatheringstatechange=function(t){e.onIceGatheringStateChange(t)},this.monitor=new zn(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&&o(this.createPeerConnectionTimer),this.clientFailoverTimer&&o(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(),i(function(){var t;e.pendingTask&&e.state===Se.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(a,s){r.exchangeSdpTask={resolve:a,reject:s},r.pc.createOffer().then(function(e){var i,o,a;return t=e,n&&(t.sdp=R.write((i=r.localSDP,o=R.parse(t.sdp),a=o.media,i.media.forEach(function(e){var t=e.mid,r=e.ssrcGroups,n=void 0===r?[]:r,i=e.ssrcs,o=void 0===i?[]:i,s=e.type,c=a.findIndex(function(e){return e.mid==t&&e.type===s});c>-1&&(a[c]=bn(bn({},a[c]),{},{ssrcGroups:n,ssrcs:o}))}),o))),r.pc.setLocalDescription(t).catch(function(e){throw r.reporter.log.error("sessionId ".concat(r.id,": Failed to create offer or set SDP. Message: ").concat(e.message,")}")),e})}).then(function(){r.reporter.log.debug("sessionId ".concat(r.id,": set local sdp success"));var a=function(t,r){var n=r.direction,i=["uplink"===n,"downlink"===n&&"macOS"===e.system&&e.isChrome()],o=R.parse(t);if(i.some(function(e){return e})&&(o=Gn(o,"64")),e.isFirefox()&&(o=Un(o)),"uplink"===n&&e.isFirefox()&&Pt.simulcast){var a=o.media.find(function(e){return"video"===e.type});Cn(a)}return r.localSDP=o,o}(t.sdp,r);t.sdp=R.write(a),r.offerSDP=a,t.sdp=R.write(a);var s,c={direction:"downlink"!==r.direction?"in":"out",sdpOffer:t.sdp,connectionId:r.id,isFailover:n,optionsJsonStr:JSON.stringify({supportCVO:1})};if(n){var l=R.parse(t.sdp);l.media=l.media.slice(0,2),l.groups=[{mids:"0 1",type:"BUNDLE"}],c.sdpOffer=R.write(l)}return function(e){var t=e.fn,r=e.times,n=e.interval,a=void 0===n?0:n,s=e.key,c=Qe.get(s),u=function(){c&&(o(c),Qe.delete(s),c=null)};u();var d=function(){var e=M(Oe.mark(function e(){var n;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,r--,e.next=1,t();case 1:u(),e.next=4;break;case 2:if(e.prev=2,n=e.catch(0),r>0){e.next=3;break}throw u(),n;case 3:c=i(function(){d()},a),Qe.set(s,c);case 4:case"end":return e.stop()}},e,null,[[0,2]])}));return function(){return e.apply(this,arguments)}}();return d()}({key:"createPeerConnection_".concat(r.direction),fn:(s=M(Oe.mark(function e(){var t;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("connected"===(null===(t=r.sessionManager)||void 0===t||null===(t=t.channel)||void 0===t||null===(t=t.client)||void 0===t?void 0:t.connectionState)){e.next=1;break}return e.abrupt("return");case 1:if(c.isFailover||!r.prevId){e.next=3;break}return e.next=2,r.stopSinglePC(!0);case 2:r.id="".concat(r.direction,"_").concat(f()),c.connectionId=r.id;case 3:return r.prevId=r.id,e.abrupt("return",r.signaling.createPeerConnection(c).then(function(e){var t=Nn(e.sdpAnswer,r,n,ei[r.direction]);r.pc.setRemoteDescription({sdp:R.write(t),type:"answer"}).then(function(){var e;r.reporter.log.debug("sessionId ".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.reporter.log.error("sessionId ".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 u(d.IceConnectionAnswerFail)),r.fireEndedEvent()})}));case 4:case"end":return e.stop()}},e)})),function(){return s.apply(this,arguments)}),times:3,interval:2e3})}).catch(function(e){var t,n;r.reporter.log.error("sessionId ".concat(r.id,": Failed to create offer or set SDP. Message: ").concat(e.message)),null===(t=r.pendingTask)||void 0===t||t.reject(new u(d.IceConnectionSetLocalDescFail)),r.fireEndedEvent(),null===(n=r.exchangeSdpTask)||void 0===n||n.reject(e),r.exchangeSdpTask=void 0})})}},{key:"reoffer",value:function(){var e=this;return this.state===Se.New?Promise.reject():(this.reporter.log.debug("sessionId ".concat(this.id,": start reoffer process")),this.closePeerConnection(),this.idToTransceiverMap=new Map,this.idToTransceiversMap=new Map,this.createPeerConnection(),this.state=Se.New,this.startSinglePC(!0).then(function(){e.state=Se.Idle,e.enquenTask.start()}))}}]);var r}();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;arguments.length>t;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ri(Object(r),!0).forEach(function(t){Te(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 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 e.length>n?{done:!1,value:e[n++]}:{done:!0}},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 o,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw o}}}}function oi(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);t>r;r++)n[r]=e[r];return n}function ai(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(ai=function(){return!!e})()}var si=function(){function e(t,r){var n,i,o,a;return C(this,e),i=this,o=G(o=e),n=L(i,ai()?Reflect.construct(o,[],G(i).constructor):o.apply(i,a)),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,"channel",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"reporter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),n.channel=r,n.client=t,n.reporter=r.reporter,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 F(e,p),N(e,[{key:"getOrCreatePeerConnection",value:function(e){var t=this;return"uplink"===e?(this.uplink||(this.uplink=new ti({direction:e,sessionManager:this}),this.uplink.on("reoffer",this.handleRepulish),this.uplink.on("ended",function(){t.uplink=null})),this.uplink):(this.downlink||(this.downlink=new ti({direction:e,sessionManager:this}),this.downlink.on("reoffer",this.handleResubscribe),this.downlink.on("ended",function(){t.downlink=null})),this.downlink)}},{key:"handleRepulish",value:(f=M(Oe.mark(function e(){var t,r,n,i,o,a,s,u;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:r=Fe(this.client.localTracks),n=ii(this.sessions.values());try{for(n.s();!(i=n.n()).done;)(o=i.value)instanceof Yn&&o.state===be.Processing&&(o.clear(),this.sessions.delete(o.id))}catch(e){n.e(e)}finally{n.f()}return this.client.emit("media-reconnect-start",this.client.userId),a=null===(t=this.uplink)||void 0===t?void 0:t.id,e.prev=1,this.reporter.trace.connectionsEvent(a,"clientReofferStart"),e.next=2,null===(s=this.uplink)||void 0===s?void 0:s.handleClientReoffer();case 2:if(this.uplink=null,this.reporter.log.info("".concat(this.client.userId," republish ").concat(r.map(function(e){return e.trackMediaType}).join()," start")),!r.length){e.next=3;break}return e.next=3,this.batchPublish(r);case 3:this.reporter.trace.connectionsEvent(a,"clientReofferSuccess"),this.client.emit("media-reconnect-end",this.client.userId),e.next=5;break;case 4:e.prev=4,u=e.catch(1),this.reporter.log.debug("".concat(this.client.userId," republish failed for ").concat(c(u))),this.reporter.trace.connectionsEvent(a,"clientReofferFailed"),this.client.emit("media-reconnect-end",this.client.userId),this.channel.signaling.emit("connection-state-change","disconnected",this.client.connectionState,"network_error");case 5:case"end":return e.stop()}},e,this,[[1,4]])})),function(){return f.apply(this,arguments)})},{key:"handleResubscribe",value:(l=M(Oe.mark(function e(){var t,r,n,i,o,a,s,u,d,l,p,f,v,m,h,y,g=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:r=g.length>0&&void 0!==g[0]&&g[0],n=[],i=ii(this.sessions.values());try{for(i.s();!(o=i.n()).done;)(a=o.value)instanceof fn&&a.state===be.Processing&&(n.push({stream:a.stream,uid:a.uid}),a.clear(),this.sessions.delete(a.id))}catch(e){i.e(e)}finally{i.f()}return s=r?"server":"client",u=n.map(function(e){return e.uid}).join(),this.client.emit("media-reconnect-start",u),this.reporter.log.info("resubscribe ".concat(u," start")),d=null===(t=this.downlink)||void 0===t?void 0:t.id,e.prev=1,this.reporter.trace.connectionsEvent(d,"".concat(s,"ReofferStart")),e.next=2,null===(l=this.downlink)||void 0===l?void 0:l.handleClientReoffer();case 2:if(this.downlink=null,!n.length){e.next=4;break}return e.next=3,this.batchSubscribe(n);case 3:p=ii(e.sent);try{for(p.s();!(f=p.n()).done;)h=(v=f.value).error,(m=v.subscription)&&!h&&this.handleSubscribeReoffer(m)}catch(e){p.e(e)}finally{p.f()}case 4:this.reporter.trace.connectionsEvent(d,"".concat(s,"ReofferSuccess")),this.client.emit("media-reconnect-end",u),e.next=6;break;case 5:e.prev=5,y=e.catch(1),this.reporter.log.debug("".concat(this.client.userId," resubscribe failed for ").concat(c(y))),this.reporter.trace.connectionsEvent(d,"".concat(s,"ReofferFailed")),this.client.emit("media-reconnect-end",u),this.channel.signaling.emit("connection-state-change","disconnected",this.client.connectionState,"network_error");case 6:case"end":return e.stop()}},e,this,[[1,5]])})),function(){return l.apply(this,arguments)})},{key:"getSessionByStreamId",value:function(e){return this.sessions.get(this.streamIdToSessionId.get(e))}},{key:"handleSubscribeReoffer",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)===fe.SCREENCAST,o=n.getAudioTracks()[0],a=n.getVideoTracks()[0],s=o?"audio":i?"screen":"camera";if(this.reporter.log.debug("".concat(r," resubscribe ").concat(s," success")),o&&this.channel.remoteAudioTrack){var c,u;if(Pt.audioSFU)null===(c=(u=this.channel.remoteAudioTrack).replaceStream)||void 0===c||c.call(u,n);else this.channel.remoteAudioTrack.replaceTrack(o)}else{var d=this.channel.userManager.remoteUsers.find(function(e){return e.userId===r});a&&null!=d&&d.auxiliaryTrack&&i?d.auxiliaryTrack.replaceTrack(a):a&&null!=d&&d.videoTrack&&!i&&d.videoTrack.replaceTrack(a)}}},{key:"handleServerFailover",value:function(e){var t=this;this.reporter.log.debug("serverFailover ".concat(JSON.stringify(e)));var r,n=e.actions,i=ii(void 0===n?[]:n);try{var o=function(){var e,n,i=r.value,o=i.connectionId;if("reoffer"!==i.actionName)return 1;if(o===(null===(e=t.uplink)||void 0===e?void 0:e.id)){var a=t.uplink,s=t.client,u=s.userId,d=s.localTracks;t.client.emit("media-reconnect-start",u),t.reporter.trace.connectionsEvent(o,"serverReofferStart"),a.reoffer().then(function(){t.reporter.log.info("".concat(u," republish ").concat(d.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.reporter.log.debug("".concat(t.client.userId," resubscribe failed for ").concat(c(e))),t.reporter.trace.connectionsEvent(o,"serverReofferFailed"),t.channel.signaling.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;)o()}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?me.BAD:e>30||t>450?me.POOR:e>20||t>300?me.NORMAL:e>10||t>200?me.GOOD:0>e&&0>t?me.UNKNOWN:me.GREAT}},{key:"checkChannelNetworkQuality",value:(d=M(Oe.mark(function e(){var t,r=this;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(0!==(t=Fe(this.sessions.values())).length){e.next=1;break}return this.emit("network-quality",me.UNKNOWN,me.UNKNOWN),e.abrupt("return");case 1:if(0!==t.filter(function(e){var t,r=e.connection;return"connected"===(null==r||null===(t=r.pc)||void 0===t?void 0:t.connectionState)}).length){e.next=2;break}return this.emit("network-quality",me.DISCONNECTED,me.DISCONNECTED),e.abrupt("return");case 2:Promise.all([this.getLocalVideoStats(),this.getLocalAudioStats(),this.getRemoteAudioStats(),this.getRemoteVideoStats()]).then(function(e){var t=yt(e,4),n=t[0],i=t[1],o=t[2],a=t[3],s=0,c=0,u=0,d=0,l=0,p=0;if(n){var f=n.camera,v=n.auxiliary;f&&(c+=f.sendPacketsLost,s+=f.sendPackets,l=Math.max(l,f.rtt||0)),v&&(c+=v.sendPacketsLost,s+=v.sendPackets,l=Math.max(l,v.rtt||0))}for(var m in i&&(c+=i.sendPacketsLost||0,s+=i.sendPackets||0,l=Math.max(l,i.rtt||0)),o&&(u+=o.receivePacketsLost||0,d+=o.receivePackets||0,p=Math.max(p,o.rtt||0)),a){var h=a[m],y=h.camera,g=h.auxiliary;y&&(u+=y.receivePacketsLost,d+=y.receivePackets,p=Math.max(p,y.rtt||0)),g&&(u+=g.receivePacketsLost,d+=g.receivePackets,p=Math.max(p,g.rtt||0))}var b=-1,S=-1,k={timestamp:Date.now(),totalUplinkPacketsLost:c,totalUplinkPacketsSent:s,totalDownlinkPacketsLost:u,totalDownlinkPacketsRecv:d};if(s){var P,w,O=c-((null===(P=r.lastChannelNetworkQuality)||void 0===P?void 0:P.totalUplinkPacketsLost)||0);if(0>O&&(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);0>E&&(E=s),b=O/E}}if(d){var I,R,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,_&&(u!==((null===(A=r.lastChannelNetworkQuality)||void 0===A?void 0:A.totalDownlinkPacketsLost)||0)&&(k.totalDownlinkPacketsRecvForLost=d),S=_/d)}r.emit("network-quality",r.getNetworkQuality(Math.min(100*b,100),l),r.getNetworkQuality(Math.min(100*S,100),p)),r.lastChannelNetworkQuality=k});case 3:case"end":return e.stop()}},e,this)})),function(){return d.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:function(e,t){var r=this,n=Date.now();return function(e){var t,r=e.tracks,n=e.connection,i=e.labels,o=r.map(function(t){return{publication:new Yn(Vn(Vn({},e),{},{tracks:[t]})),track:t}}),a=new Promise(function(e,a){t=function(){var t=M(Oe.mark(function t(){return Oe.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=1,Jn(r,n,i);case 1:return t.abrupt("return",n.signaling.batchPublish({connectionId:n.id,media:t.sent,simulcast:Pt.simulcast,simulcastVersion:"1.0",clientType:"web",supportTemporalLayer:!1,type:"webrtc"}).then(function(){var t=M(Oe.mark(function t(r){var n,i,a,s,c,u;return Oe.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(n=r.detailStatus,"ok"===(i=r.globalStatus)){t.next=1;break}return o.forEach(function(e){e.error=an(e.track,i)}),t.abrupt("return",e(o));case 1:a=Bn(n),t.prev=2,c=Oe.mark(function e(){var t,r,n,i,a,c;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:r=(t=s.value).id,n=t.origin,i=t.msg,a=o.findIndex(function(e){return e.track.getTrackId()===n.id}),c=(o[a]||{}).publication,"ok"===i&&c?c.initInner(r):"ok"!==i&&(o[a].error=an(o[a].track,i));case 1:case"end":return e.stop()}},e)}),a.s();case 3:if((s=a.n()).done){t.next=5;break}return t.delegateYield(c(),"t0",4);case 4:t.next=3;break;case 5:t.next=7;break;case 6:t.prev=6,u=t.catch(2),a.e(u);case 7:return t.prev=7,a.f(),t.finish(7);case 8:e(o);case 9:case"end":return t.stop()}},t,null,[[2,6,7,8]])}));return function(e){return t.apply(this,arguments)}}()).catch(function(e){a(e)}));case 2:case"end":return t.stop()}},t)}));return function(){return t.apply(this,arguments)}}()});return n.addTask(t),a}({uid:this.client.userId,tracks:e,connection:this.getOrCreatePeerConnection("uplink"),labels:t}).then(function(e){var t,i=ii(e);try{var o=function(){var e=t.value,i=e.publication,o=e.track;e.error?r.reporter.trace.publish(!1,o,"",Date.now()-n):(r.addSession(o.getTrackId(),i),r.reporter.trace.publish(!0,o,i.id,Date.now()-n),r.reporter.trace.publish(!1,o,i.id,Date.now()-n),i.on("ended",function(){r.removeSession(i.id)}))};for(i.s();!(t=i.n()).done;)o()}catch(e){i.e(e)}finally{i.f()}})}},{key:"batchUnPublish",value:function(e){var t=this;return e.length?Wn(e,{connection:this.getOrCreatePeerConnection("uplink")}).then(function(){var r,n=ii(e);try{for(n.s();!(r=n.n()).done;){var i,o,a=r.value;t.streamIdToSessionId.delete(null===(i=a.tracks)||void 0===i||null===(i=i[0])||void 0===i||null===(o=i.getTrackId)||void 0===o?void 0:o.call(i)),t.removeSession(a.id)}}catch(e){n.e(e)}finally{n.f()}}):Promise.resolve()}},{key:"batchSubscribe",value:function(e){var t=this,r=Date.now(),n=0,i=function(e){return hn(e,{connection:t.getOrCreatePeerConnection("downlink")}).then(function(){var r=M(Oe.mark(function r(o){var a,s,c,u;return Oe.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:for(a=new Map,s=[],c=0;o.length>c;c++)"RoomBusy"===(null===(u=o[c].error)||void 0===u?void 0:u.message)&&(s.push(e[c]),a.set(s.length-1,c));if(!s.length||n>3){r.next=3;break}return n++,r.next=1,Ke(1);case 1:if("connected"!==t.client.connectionState){r.next=3;break}return r.next=2,i(s);case 2:r.sent.forEach(function(e,t){var r=a.get(t);o[r]=e});case 3:return r.abrupt("return",o);case 4:case"end":return r.stop()}},r)}));return function(e){return r.apply(this,arguments)}}())};return i(e).then(function(e){var n,i=ii(e);try{var o=function(){var e=n.value,i=e.error,o=e.subscription,a=e.id,s=e.stream,c=e.uid,u=e.resolutionInfo;o&&(t.reporter.trace.subscribe({init:!0,capabilities:s.media,remoteStreamId:s.id,remoteUserId:c,elapse:Date.now()-r,sessionId:a,resolutionInfo:u}),"mcu"===o.uid&&t.reporter.trace.subscribe({init:!1,capabilities:s.media,remoteStreamId:s.id,remoteUserId:c,elapse:Date.now()-r,sessionId:o.id,resolutionInfo:u}),t.addSession(s.id,o),o.on("ended",function(){t.removeSession(a)})),i&&t.reporter.trace.subscribe({init:!1,capabilities:(null==s?void 0:s.media)||{},remoteStreamId:null==s?void 0:s.id,remoteUserId:c,elapse:Date.now()-r,sessionId:"",resolutionInfo:u})};for(i.s();!(n=i.n()).done;)o()}catch(e){i.e(e)}finally{i.f()}return e})}},{key:"batchUnscribe",value:(u=M(Oe.mark(function e(t){var r,n,i,o=this;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=Array(t.length),n=[],i={},t.forEach(function(e,t){var o=e.error,a=e.stream,s=e.session;o?r[t]={error:o}:(i[null==a?void 0:a.id]=t,n.push(s))}),e.abrupt("return",yn(n,{connection:this.getOrCreatePeerConnection("downlink")}).then(function(){for(var e=0,t=n;t.length>e;e++)o.removeSession(t[e].id)}));case 1:case"end":return e.stop()}},e,this)})),function(e){return u.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&&(o(this.networkQualityInterval,"interval"),this.networkQualityInterval=null),this.channel.signaling.off("media-message",this.handleMediaMessage),this.channel.signaling.off("serverFailover",this.handleServerFailover)}},{key:"start",value:function(){this.startNetworkQualityTimer(),this.uplink=this.getOrCreatePeerConnection("uplink"),this.downlink=this.getOrCreatePeerConnection("downlink"),this.channel.signaling.on("media-message",this.handleMediaMessage),this.channel.signaling.on("serverFailover",this.handleServerFailover)}},{key:"startNetworkQualityTimer",value:function(){var e=this;this.networkQualityInterval=i(function(){navigator&&void 0!==navigator.onLine&&!navigator.onLine?e.emit("network-quality",me.DISCONNECTED,me.DISCONNECTED):"connected"!==e.client.connectionState?e.emit("network-quality",me.BAD,me.BAD):"connected"===e.client.connectionState?e.checkChannelNetworkQuality():e.emit("network-quality",me.UNKNOWN,me.UNKNOWN)},2e3,"interval")}},{key:"getLocalAudioStats",value:(s=M(Oe.mark(function e(){var t,r,n,i=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=i.length>0&&void 0!==i[0]?i[0]:"network",n=Fe(this.sessions.values()).filter(function(e){var t,r;return e instanceof Yn&&"connected"===(null===(t=e.connection)||void 0===t||null===(t=t.pc)||void 0===t?void 0:t.connectionState)&&"audio"===(null===(r=e.tracks)||void 0===r||null===(r=r[0])||void 0===r?void 0:r.trackMediaType)}),e.next=1,Promise.all(n.map(function(e){return e.getMetrics(r)}));case 1:return e.abrupt("return",(null===(t=n[0])||void 0===t?void 0:t.audioStatsMap.get(r))||{});case 2:case"end":return e.stop()}},e,this)})),function(){return s.apply(this,arguments)})},{key:"getLocalVideoStats",value:(a=M(Oe.mark(function e(){var t,r,n,i,o,a,s,c,u,d,l,p,f,v=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=v.length>0&&void 0!==v[0]?v[0]:"network",i=Fe(this.sessions.values()).filter(function(e){var t;return e instanceof Yn&&"connected"===(null===(t=e.connection)||void 0===t||null===(t=t.pc)||void 0===t?void 0:t.connectionState)&&"video"===e.tracks[0].trackMediaType}),e.next=1,Promise.all(i.map(function(e){return e.getMetrics(n)}));case 1:o=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]}))||[]},a=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:Fe(new Set(o(a))),downlinkProfile:Fe(new Set(o(s)))},u=ii(i),e.prev=2,u.s();case 3:if((d=u.n()).done){e.next=6;break}if(p=(l=d.value).videoStatsMap.get(n)){e.next=4;break}return e.abrupt("continue",5);case 4:c[l.tracks[0].source===fe.SCREENCAST?"auxiliary":"camera"]=p;case 5:e.next=3;break;case 6:e.next=8;break;case 7:e.prev=7,f=e.catch(2),u.e(f);case 8:return e.prev=8,u.f(),e.finish(8);case 9:return e.abrupt("return",c);case 10:case"end":return e.stop()}},e,this,[[2,7,8,9]])})),function(){return a.apply(this,arguments)})},{key:"getRemoteVideoStats",value:(n=M(Oe.mark(function e(){var t,r,n,i,o,a,s,c,u,d,l,p,f=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=f.length>0&&void 0!==f[0]?f[0]:"network",r=Fe(this.sessions.values()).filter(function(e){var t;return e instanceof fn&&"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=1,Promise.all(r.map(function(e){return e.getMetrics(t)}));case 1:n={},i=ii(r),e.prev=2,i.s();case 3:if((o=i.n()).done){e.next=6;break}if(c=(s=o.value).uid,u=s.stream,d=s.videoStatsMap.get(t)){e.next=4;break}return e.abrupt("continue",5);case 4:l=(null===(a=u.media.video)||void 0===a?void 0:a.source)===fe.SCREENCAST?"auxiliary":"camera",n[c]=ni(ni({},n[c]||{}),{},Te({},l,d));case 5:e.next=3;break;case 6:e.next=8;break;case 7:e.prev=7,p=e.catch(2),i.e(p);case 8:return e.prev=8,i.f(),e.finish(8);case 9:return e.abrupt("return",n);case 10:case"end":return e.stop()}},e,this,[[2,7,8,9]])})),function(){return n.apply(this,arguments)})},{key:"getRemoteAudioStats",value:(r=M(Oe.mark(function e(){var t,r,n,i=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=i.length>0&&void 0!==i[0]?i[0]:"network",n=Fe(this.sessions.values()).filter(function(e){var t;return e instanceof fn&&"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=1,Promise.all(n.map(function(e){return e.getMetrics(r)}));case 1:return e.abrupt("return",(null===(t=n[0])||void 0===t?void 0:t.audioStatsMap.get(r))||{});case 2:case"end":return e.stop()}},e,this)})),function(){return r.apply(this,arguments)})},{key:"handleMediaMessage",value:(t=M(Oe.mark(function e(t){var r,n,i,o,a,s;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.reporter.log.debug("remote feedback: ".concat(t.payload)),r=JSON.parse(t.payload),Array.isArray(r)&&0!==r.length){e.next=1;break}return e.abrupt("return");case 1:n=Fe(this.sessions.values()).filter(function(e){return e instanceof Yn&&e.state===be.Processing&&e.tracks[0].source===fe.CAMERA}),i=ii(n),e.prev=2,a=Oe.mark(function e(){var t,n;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:t=o.value,(n=r.filter(function(e){return e.mid==t.transceiver.mid})).length&&t.applyOptions(n);case 1:case"end":return e.stop()}},e)}),i.s();case 3:if((o=i.n()).done){e.next=5;break}return e.delegateYield(a(),"t0",4);case 4:e.next=3;break;case 5:e.next=7;break;case 6:e.prev=6,s=e.catch(2),i.e(s);case 7:return e.prev=7,i.f(),e.finish(7);case 8:case"end":return e.stop()}},e,this,[[2,6,7,8]])})),function(e){return t.apply(this,arguments)})}]);var t,r,n,a,s,u,d,l,f}();function ci(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 e.length>n?{done:!1,value:e[n++]}:{done:!0}},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 o,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw o}}}}function ui(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);t>r;r++)n[r]=e[r];return n}function di(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(di=function(){return!!e})()}var li={name:"name"},pi=function(){function e(t){var r,n,i,o;return C(this,e),n=this,i=G(i=e),r=L(n,di()?Reflect.construct(i,[],G(n).constructor):i.apply(n,o)),Object.defineProperty(r,"channel",{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}),r.channel=t,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 F(e,p),N(e,[{key:"joinedIds",get:function(){var e=this.channel.userManager.currentPid,t=new Set;return this.groups.forEach(function(r){var n=r.id;r.participants.some(function(t){return t.pid===e})&&t.add(n)}),t}},{key:"parseGroup",value:function(e){var t,r=this,n=e.properties,i=e.participants;return{id:e.id,name:(null==n||null===(t=n.find(function(e){return"name"===e.key}))||void 0===t?void 0:t.value)||"",joined:i.some(function(e){return e.pid===r.channel.userManager.currentPid}),users:i.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.channel.signaling.on("group-list",this.handleGroupListEvents),this.channel.signaling.on("group",this.handleGroupEvents),this.channel.signaling.on("sync",this.handleSyncEvent)}},{key:"clear",value:function(){this.listVer=0,this.channel.signaling.off("group",this.handleGroupEvents),this.channel.signaling.off("group-list",this.handleGroupListEvents),this.channel.signaling.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,i=e.userData;if(this.joinedIds.has(n))throw new u(d.InvaildArgument,"you were in group already");return this.channel.signaling.joinGroup({groupId:n,userData:i,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 u(d.InvaildArgument,"you are not in the group");return this.channel.signaling.leaveGroup({groupId:t,reasonCode:rr.LEAVE_GROUP_REASON_CODE.NORMAL_LEAVE,autoJoinChannelAudio:n})}},{key:"dismiss",value:function(e){if(!this.groupIds.has(e))throw new u(d.InvaildArgument,"group not existed");return this.channel.signaling.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.channel.signaling.observeAllGroups()}},{key:"unobserverAllGroup",value:function(){return this.channel.signaling.unobserveAllGroups()}},{key:"setProperties",value:function(e,t){return this.channel.signaling.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.channel.reporter.log.debug("groupList ".concat(JSON.stringify(e))),r!==this.listVer+1&&!t||n!==rr.OptType.OPT_TYPE_UPDATE)r>this.listVer+1&&this.syncGroupList();else{var o=i.updateAction,a=i.id;o===rr.GroupListUpdate.GROUP_LIST_UPDATE_ADD_ID?this.groupIds.add(a):o===rr.GroupListUpdate.GROUP_LIST_UPDATE_REMOVE_ID&&this.groupIds.delete(a),this.listVer=r}}},{key:"handleGroupEvents",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.channel.reporter.log.debug("group ".concat(JSON.stringify(e)));var n,i=e.id,o=e.ver,a=e.groupInfo,s=e.type,c=e.updateOpt,u=this.groups.get(i);if(s!==rr.OptType.OPT_TYPE_ADD||u){if(s===rr.OptType.OPT_TYPE_REMOVE&&u)this.groups.delete(i),this.emit("group","remove",this.parseGroup(u));else if(s===rr.OptType.OPT_TYPE_UPDATE){var d=c.updateAction,l=c.participants;if(u&&(u.ver+1===o||r)){if(d===rr.GroupUpdate.GROUP_UPDATE_ADD_PARTICIPANTS){var p,f=u.participants.map(function(e){return e.pid}),v=ci(l);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(d===rr.GroupUpdate.GROUP_UPDATE_REMOVE_PARTICIPANTS){var h=l.map(function(e){return e.pid}),y=Fe(u.participants);u.participants=u.participants.filter(function(e){return!h.includes(e.pid)}),y.forEach(function(e){h.includes(e.pid)&&t.emit("group","user-leave",i,{userId:e.uid,userData:e.userData})})}else if(d===rr.GroupUpdate.GROUP_UPDATE_AUDIO_STREAM_LOST)this.channel.reporter.log.debug("group ".concat(i," audioStream lost"));else if(d===rr.GroupUpdate.GROUP_UPDATE_AUDIO_STREAM_RECOVER)this.channel.reporter.log.debug("group ".concat(i," audioStream recover"));else if(d===rr.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(li[e.key]),value:e.value})});else if(d===rr.GroupUpdate.GROUP_UPDATE_REMOVE_PROPERTIES){var g,b=c.properties.map(function(e){return e.key});u.properties=null===(g=u.properties)||void 0===g?void 0:g.filter(function(e){return!b.includes(e.key)}),c.properties.forEach(function(e){t.emit("group","info-updated",i,{key:"remove-".concat(li[e.key])})})}u.ver=o}else u&&o>u.ver+1&&this.syncGroup(u.id)}}else null==a||null===(n=a.audioInfo)||void 0===n||null===(n=n.audio)||void 0===n||null===(n=n.media)||void 0===n||delete n.video,null==a.ver&&(a.ver=o),this.groups.set(i,a),this.emit("group","add",this.parseGroup(a))}},{key:"syncGroup",value:function(e){var t=this,r=this.groups.get(e);return this.channel.signaling.syncData({type:rr.DataType.DATA_TYPE_GROUP,id:e,ver:null==r?void 0:r.ver}).then(function(n){var i=n.fullSync.groupData.groupInfos,o=(void 0===i?[]:i)[0];if(o){var a=o.participants,s=o.properties,c=void 0===s?[]:s,u=(null==r?void 0:r.participants)||[],d=new Map(((null==r?void 0:r.properties)||[]).map(function(e){return[e.key,e.value]})),l=u.map(function(e){return e.pid}),p=a.map(function(e){return e.pid}),f=c.filter(function(e){return e.value!==d[e.key]}),v=c.filter(function(e){return!d.has(e.key)}),m=a.filter(function(e){return!l.includes(e.pid)}),h=u.filter(function(e){return!p.includes(e.pid)});m.length&&t.handleGroupEvents({id:e,type:rr.OptType.OPT_TYPE_REMOVE,ver:o.ver,updateOpt:{updateAction:rr.GroupUpdate.GROUP_UPDATE_ADD_PARTICIPANTS,participants:m}},!0),h.length&&t.handleGroupEvents({id:e,ver:o.ver,type:rr.OptType.OPT_TYPE_REMOVE,updateOpt:{updateAction:rr.GroupUpdate.GROUP_UPDATE_REMOVE_PARTICIPANTS,participants:h}},!0),f.length&&t.handleGroupEvents({id:e,ver:o.ver,type:rr.OptType.OPT_TYPE_UPDATE,updateOpt:{updateAction:rr.GroupUpdate.GROUP_UPDATE_SET_PROPERTIES,properties:f}},!0),v.length&&t.handleGroupEvents({id:e,ver:o.ver,type:rr.OptType.OPT_TYPE_UPDATE,updateOpt:{updateAction:rr.GroupUpdate.GROUP_UPDATE_REMOVE_PROPERTIES,properties:v}},!0)}else t.handleGroupEvents({id:e,type:rr.OptType.OPT_TYPE_REMOVE})})}},{key:"batchSyncGroup",value:function(e){var t=this;if(e.length)return this.channel.signaling.syncDataByIds({type:rr.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.channel.signaling.syncData({type:rr.DataType.DATA_TYPE_GROUP_LIST,forceFullSync:!0,ver:this.listVer}).then(function(t){var r=t.fullSync,n=r.ver,i=r.groupListData.groupIds,o=void 0===i?[]:i,a=o.filter(function(t){return!e.groupIds.has(t)}),s=Fe(e.groupIds).filter(function(e){return!o.includes(e)});a.length&&a.forEach(function(t){e.handleGroupListEvents({ver:n,updateOpt:{updateAction:rr.GroupListUpdate.GROUP_LIST_UPDATE_ADD_ID,id:t}},!0)}),s.length&&s.forEach(function(t){e.handleGroupListEvents({ver:n,updateOpt:{updateAction:rr.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;r>this.listVer&&(this.syncGroupList(),this.listVer=r),i.forEach(function(e){var r=e.id,n=e.ver,i=t.groups.get(r);n>(null==i?void 0:i.ver)&&(t.syncGroup(r),i.ver=n)})}}])}();function fi(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(fi=function(){return!!e})()}var vi=function(){function e(t,r){var n,i,o,a;return C(this,e),i=this,o=G(o=e),n=L(i,fi()?Reflect.construct(o,[],G(i).constructor):o.apply(i,a)),Object.defineProperty(n,"channel",{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}),n.userId=t.user,n.videoTrack=null,n.audioTrack=null,n.auxiliaryTrack=null,n.channel=r,n.joinedTime=Date.now(),n.update(t),n}return F(e,p),N(e,[{key:"relatedStreams",get:function(){var e=this;return Fe(this.channel.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)===fe.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)===fe.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)===pe.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)===pe.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)===fe.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)===fe.CAMERA})}},{key:"updateNetworkOfUser",value:function(e){var t;if(this.properties.SdkType!==P.Web&&e){var r=e.split("");r[Pe.UPLINK]=Je(r[Pe.UPLINK]),r[Pe.DOWNLINK]=Je(r[Pe.DOWNLINK]),e=r.join("")}e!==(null===(t=this.properties)||void 0===t?void 0:t[Me])&&(this.properties[Me]=e)}},{key:"update",value:function(e){var t=e.id,r=e.ver,n=JSON.parse(e.propertiesJsonStr||"{}");this.id=t,this.userName=n.__nick,this.version=r,this.properties=n,this.updateNetworkOfUser(n[Me])}},{key:"getRemoteVideoTrack",value:function(e,t){var r=t?this.auxiliaryTrack:this.videoTrack,n=JSON.parse(e.stream.info.attributesJsonStr),i=sn(e.mediaStream,"video",this.userId,r);return r||i.once("first-frame-decoded",function(){e.handleVideoFirstFrame()}),t?this.auxiliaryTrack=i:this.videoTrack=i,n.mirror&&i.setSourceMirror(n.mirror),i}}])}();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 e.length>n?{done:!1,value:e[n++]}:{done:!0}},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 o,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw o}}}}function hi(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);t>r;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 gi=function(){function e(t){var r,n,i,o;return C(this,e),n=this,i=G(i=e),r=L(n,yi()?Reflect.construct(i,[],G(n).constructor):i.apply(n,o)),Object.defineProperty(r,"channel",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(r,"users",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"currentUid",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"currentPid",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"reporter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),r.users=new Map,r.channel=t,r.reporter=t.reporter,r.handleEvent=r.handleEvent.bind(r),r}return F(e,p),N(e,[{key:"remoteUsers",get:function(){var e=this;return w(Fe(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=mi(e);try{for(n.s();!(r=n.n()).done;){var i=r.value,o=new vi(i,this.channel);this.users.set(i.user,o),t===i.user&&(this.currentUid=i.user)}}catch(e){n.e(e)}finally{n.f()}this.currentPid=t,this.channel.internalChannel.on("user",this.handleEvent)}},{key:"clear",value:function(){this.currentPid="",this.currentUid="",this.users.clear(),this.channel.internalChannel.off("user",this.handleEvent)}},{key:"handleEvent",value:function(e,t){if(this.reporter.log.debug("userEvent ".concat(e," ").concat(JSON.stringify(t))),"join"===e){var r=new vi(t,this.channel);this.users.set(t.user,r),this.emit("user","join",r)}else if("leave"===e){var n=this.users.get(t.user);this.users.delete(t.user),this.emit("user","leave",n)}else if("update"===e){var i=this.users.get(t.user);null==i||i.update(t)}}},{key:"setParticipantProperties",value:function(e){return this.channel.signaling.setParticipantProperties({participantId:this.currentPid,roomId:this.channel.roomId,propertiesJsonStr:JSON.stringify(Te({},Me,e))})}}])}();function bi(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return Si(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)?Si(e,t):void 0}}(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return e.length>n?{done:!1,value:e[n++]}:{done:!0}},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 o,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw o}}}}function Si(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);t>r;r++)n[r]=e[r];return n}function ki(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 Pi(e){for(var t=1;arguments.length>t;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ki(Object(r),!0).forEach(function(t){Te(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ki(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function wi(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(wi=function(){return!!e})()}var Oi=function(){function e(t){var r,n,i,o;C(this,e),n=this,i=G(i=e),r=L(n,wi()?Reflect.construct(i,[],G(n).constructor):i.apply(n,o)),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,"signaling",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),r.streams=new Map;var a=t.reporter;return r.signaling=t.signaling,r.reporter=a,r.handleEvent=r.handleEvent.bind(r),r.handleSyncEvent=r.handleSyncEvent.bind(r),r.sync=r.sync.bind(r),r}return F(e,p),N(e,[{key:"clear",value:function(){this.streams.clear(),this.totalVer=0,this.signaling.off("stream",this.handleEvent),this.signaling.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.signaling.on("stream",this.handleEvent),this.signaling.on("sync",this.handleSyncEvent)}},{key:"add",value:function(e){var t,r=e.id,n=e.info.owner,i=e.media,o=i.video,a=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=Fe(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==o?void 0:o.source)===O.SCREENCAST;((null==o?void 0:o.source)===O.CAMERA||u)&&this.emit("stream","add",{id:r,owner:n,mediaType:"video",auxiliary:u}),(null==a?void 0:a.source)!==pe.MIC&&(null==a?void 0:a.source)!==pe.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,o=n.audio,a=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:a,mediaType:"video",auxiliary:s}),(null==o?void 0:o.source)!==pe.MIC&&(null==o?void 0:o.source)!==pe.MIXED||this.emit("stream","remove",{id:e,owner:a,mediaType:"audio"})}}},{key:"getStreamByTrackId",value:function(e){return Fe(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,o=e.stream,a=e.msg,s=e.totalVer,c={add:[],remove:[],update:["audio.status","video.status","properties"]}[i];c.length&&!c.includes(a.field)||this.reporter.log.debug("streamEvent ".concat(JSON.stringify(e)));var u=this.totalVer;if(s===u+1||s==Ae||t)if("add"===i){if(!o||!o.media||!o.info)return;this.add(o)}else if("remove"===i)this.remove(n,!0);else if("update"===i){var d=a.field,l=a.streamStatus,p=a.activeStream,f=a.extraValue,v=a.streamVer,m=a.propertiesJsonStr,h=this.streams.get(n);if(h){v!==Ae&&(h.version=v);var y,g=h.media,b=g.video,S=h.info.owner;if("audio.status"===d||"video.status"===d)"audio.status"===d?(y="audio",g.audio.status=l):"video.status"===d&&(y="video",b.status=l),this.reporter.trace.streamsEvent(n,"".concat(y," ").concat(l)),this.emit("stream","update",{owner:S,id:n,updateStatus:"".concat("active"===l?"unmute":"mute","-").concat(y)});else if("activeInput"===d){var k=[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(k),d),this.emit("stream","volumeActive",{owners:k})}else if("properties"==d){var P,w=JSON.parse(m);h.info.attributesJsonStr=JSON.stringify(Pi(Pi({},JSON.parse(h.info.attributesJsonStr)),w));var T=(null===(P=h.media)||void 0===P||null===(P=P.video)||void 0===P?void 0:P.source)===O.SCREENCAST;this.emit("stream","update",{owner:S,id:n,properties:w,auxiliary:T})}}}t||this.totalVer>=s&&s!==Ae||(s===u+1&&(this.totalVer=s),s>u+1&&!t&&this.sync())}},{key:"sync",value:(t=M(Oe.mark(function e(){var t,r,n,i,o,a,s,c,u,d,l,p,f,v,m,h=this;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=[],r=[],e.next=1,this.signaling.getStreamsVer({});case 1:i=(n=e.sent).streamVersions,o=n.totalVer,a=Fe(this.streams.keys()).filter(function(e){return!e.includes("vad")}),s=bi(i),e.prev=2,s.s();case 3:if((c=s.n()).done){e.next=6;break}if(l=(u=c.value).streamVer,!(d=u.streamId).includes("vad")){e.next=4;break}return e.abrupt("continue",5);case 4:(p=this.streams.get(d))?p&&p.version!==l&&t.push(d):(r.push(d),t.push(d));case 5:e.next=3;break;case 6:e.next=8;break;case 7:e.prev=7,m=e.catch(2),s.e(m);case 8:return e.prev=8,s.f(),e.finish(8);case 9:if(f=i.map(function(e){return e.streamId}),v=a.filter(function(e){return!f.includes(e)}),this.reporter.trace.syncEvent("stream",a,f),this.totalVer=o,0!==t.length){e.next=10;break}return e.abrupt("return");case 10:this.signaling.getStreams({streamIds:t}).then(function(e){var n,i=e.totalVer,o=e.streams,a=new Map,s=bi(h.streams.values());try{for(s.s();!(n=s.n()).done;){var c=n.value;a.set(c.id,c)}}catch(e){s.e(e)}finally{s.f()}var u,d=bi(o);try{for(d.s();!(u=d.n()).done;){var l=u.value;h.streams.has(l.id)?h.streams.set(l.id,l.stream):a.set(l.id,l.stream)}}catch(e){d.e(e)}finally{d.f()}for(var p=t.map(function(e){return a.get(e)}).filter(function(e){return!!e}).sort(function(e,t){return e.version-t.version}),f=0;p.length>f;f++){var m=p[f];v.includes(m.id)?h.handleEvent({status:"remove",streamId:m.id,stream:m,totalVer:i},!0):r.includes(m.id)&&h.handleEvent({status:"add",streamId:m.id,stream:m,totalVer:i},!0)}a.clear(),h.totalVer=i});case 11:case"end":return e.stop()}},e,this,[[2,7,8,9]])})),function(){return t.apply(this,arguments)})},{key:"handleSyncEvent",value:function(e){e.streamsVer>this.totalVer&&this.sync()}}]);var t}();function Ti(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 Ei(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)?Ei(e,t):void 0}}(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return e.length>n?{done:!1,value:e[n++]}:{done:!0}},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 o,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw o}}}}function Ei(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);t>r;r++)n[r]=e[r];return n}function Ii(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 Ri(e){for(var t=1;arguments.length>t;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ii(Object(r),!0).forEach(function(t){Te(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ii(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function Ai(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Ai=function(){return!!e})()}var _i=function(){function e(t,r){var n,i,o,a;return C(this,e),i=this,o=G(o=e),n=L(i,Ai()?Reflect.construct(o,[],G(i).constructor):o.apply(i,a)),Object.defineProperty(n,"signaling",{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,"userManager",{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,"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,i=e.action,o=e.uid,a=e.auxiliary,s=n.getStream(e),c=n.userManager.users.get(o),l=n.groups.some(function(e){return e.joined}),p="mcu"===o?n.remoteAudioTrack:a?null==c?void 0:c.auxiliaryTrack:null==c?void 0:c.videoTrack;return"mcu"===o&&"video"===r||o&&"mcu"!==o&&"audio"===r?t=new u(d.InvaildArgument,"only support ".concat(i," mcu audio")):"mcu"===o&&l&&"subscribe"===i?t=new u(d.SubscribeInvaild,"cannot subscribe mcu while in group"):"subscribe"===i&&p?t=new u(d.SubscribeInvaild,"duplicated subscription"):s&&("unsubscribe"!==i||p)||(n.reporter.log.warn("".concat(o," videoTrack not existed")),t=new u(d.SubscribeStreamNotExisted)),{uid:o,user:c,error:t,stream:s,session:"unsubscribe"===i?n.sessionManager.getSessionByStreamId(s.id):null,resolutionInfo:"video"===r?It(n.defaultVideoStreamType,nn(s)):null}}}),Object.defineProperty(n,"handleJoinResponse",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=e.room,r=e.id,i=t.participants,o=t.groupList,a=t.groupListVer;n.streamManager.init(t.streams,t.streamsVer),Pt.grouptalk&&n.groupManager.init(o,a),n.userManager.init(i,r),n.streamManager.on("stream",n.handleStreamEvent),n.userManager.on("user",n.handleUserEvent),n.groupManager.on("group",n.handleGroupEvent)}}),n.reporter=r,n.internalChannel=new A({reporter:r,gslb:Pt.gslb[0],sdkVersion:Re}),n.signaling=new Ur(n.internalChannel),n.client=t,n.micMixedGroups=new Set,n.groupManager=new pi(n),n.userManager=new gi(n),n.streamManager=new Oi(n),n.sessionManager=new si(t,n),n.subscribedAudioStream="",n.handleStreamEvent=n.handleStreamEvent.bind(n),n.handleUserEvent=n.handleUserEvent.bind(n),n.handleGroupEvent=n.handleGroupEvent.bind(n),n}return F(e,p),N(e,[{key:"localTracks",get:function(){return Fe(this.sessionManager.sessions.values()).filter(function(e){return e.state===be.Processing&&e instanceof Yn}).map(function(e){return e.tracks[0]})}},{key:"groups",get:function(){var e=this;return this.groupManager.groupList.map(function(t){return Ri(Ri({},t),{},{audioPublished:e.micMixedGroups.has(t.id)})})}},{key:"handleStreamEvent",value:function(e,t){var r=t.id,n=t.owner,i=t.mediaType,o=t.auxiliary,a=t.owners,s=t.updateStatus,c=t.properties,u=this.internalChannel.userManager.participants,d=u.get(n),l=this.userManager.users.get(null==d?void 0:d.user);if("add"===e&&!(n===this.userManager.currentPid)&&l)this.client.emit("user-published",l,i,o);else if("remove"===e&&l)this.sessionManager.removeSession(void 0,r),"video"===i&&(o&&l.auxiliaryTrack&&(l.auxiliaryTrack.stop(),l.auxiliaryTrack=null),!o&&l.videoTrack&&(l.videoTrack.stop(),l.videoTrack=null)),this.client.emit("user-unpublished",l,i,o);else if("update"===e){if(s)this.client.emit("user-info-updated",(null==l?void 0:l.userId)||this.userManager.currentUid,s);else if(null!=(null==c?void 0:c.mirror)){var p=o?l.auxiliaryTrack:l.videoTrack;null==p||p.setSourceMirror(c.mirror)}}else if("volumeActive"===e){var f=a.map(function(e){return u.get(e)}).map(function(e){return null==e?void 0:e.user}).filter(function(e){return!!e});this.client.emit("volume-indicator",f)}}},{key:"handleGroupEvent",value:function(e,t,r){if("add"===e)this.client.emit("group-add",t);else if("remove"===e)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){this.client.emit("group-info-updated",t,r.key,r.value)}}},{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 o,a=this.groupManager.groups.get(r);return null==a||null===(o=a.audioInfo)||void 0===o?void 0:o.audio}var s="mcu"===n?Fe(this.streamManager.streams.values()):null===(t=this.userManager.users.get(n))||void 0===t?void 0:t.relatedStreams;return s.find("mcu"===n?function(e){return"admin"===e.info.owner&&"mixed"===e.type}:function(e){var t=e.media.video;return(null==t?void 0:t.source)===(i?O.SCREENCAST:O.CAMERA)})}},{key:"join",value:(a=M(Oe.mark(function e(t){var r=this;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.signaling.join(t,Pt.gslb[0]).then(function(e){var t,n,i,o=e.joinResponse,a=e.iceConfig;return r.roomId=o.room.id,n=o.room.ssrcClientSequence,i=Math.log2((t=o.room.ssrcMask)+1),n>2147483647>>i||(On=t,wn=(n<<i|2147483648)>>>0),r.reporter.updateCommonInfo({roomId:r.roomId,participantId:o.id}),a&&a.uis&&r.setIceConfig(a.uis),r.sessionManager.start(),r.handleJoinResponse(o),o}));case 1:case"end":return e.stop()}},e,this)})),function(e){return a.apply(this,arguments)})},{key:"setIceConfig",value:function(e){var t=e.iceServerList;e.level&&(e.iceServerList=(void 0===t?[]:t).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.userManager.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.userManager.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.signaling.leave()}},{key:"publish",value:(o=M(Oe.mark(function e(t){var r,n,i;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=this.micMixedGroups,n=this.groupManager,i=[],this.groups.some(function(e){return e.joined})?i.push.apply(i,Fe(Fe(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}))):i.push("common"),e.abrupt("return",this.sessionManager.batchPublish(t,i));case 1: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=Fe(this.sessionManager.sessions.values()).filter(function(e){var t;return e instanceof Yn&&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.userManager.users.get(e.uid);if("audio"===e.mediaType){var i=this.remoteAudioTrack;return this.remoteAudioTrack=sn(t.mediaStream,"audio","mcu",this.remoteAudioTrack),i||t.once("audio-first-frame",function(){r.remoteAudioTrack.emit("first-frame-decoded")}),this.remoteAudioTrack}return n.getRemoteVideoTrack(t,e.auxiliary)}},{key:"subscribe",value:(i=M(Oe.mark(function e(t){var r,n,i,o,a=this;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r=this.handleSubscribeParam(t),i=r.stream,o=r.resolutionInfo,!(n=r.error)){e.next=1;break}throw n;case 1:return e.abrupt("return",this.sessionManager.batchSubscribe([{stream:i,uid:t.uid,resolutionInfo:o}]).then(function(e){var r=e[0],n=r.error;if(n)throw n;return a.getRemoteTrack(t,r.subscription)}));case 2:case"end":return e.stop()}},e,this)})),function(e){return i.apply(this,arguments)})},{key:"batchSubscribe",value:(n=M(Oe.mark(function e(t){var r=this;return Oe.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=M(Oe.mark(function e(n){var i;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return i=[],t.forEach(function(e,t){var o=n[t];i.push({uid:e.uid,auxiliary:e.auxiliary,error:o.error,track:r.getRemoteTrack(e,o.subscription)})}),e.abrupt("return",i);case 1: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:"unsubscribe",value:function(e){var t=this,r=this.getStream(e),n=e.mediaType,i=e.auxiliary,o=this.handleSubscribeParam(e),a=o.user,s=o.stream,c=o.session,u=o.error;if(u)throw u;this.reporter.trace.unsubscribe({sessionId:null==c?void 0:c.id,remoteStreamId:null==r?void 0:r.id,remoteUserId:e.uid});return t.sessionManager.batchUnscribe([{stream:s,session:c,error:u}]).then(function(){"audio"===n?(t.subscribedAudioStream="",t.remoteAudioTrack.stop(),t.remoteAudioTrack=null):i?a.auxiliaryTrack=null:a.videoTrack=null})}},{key:"batchUnsubscribe",value:function(e){var t,r=this,n=[],i=Ti(e);try{for(i.s();!(t=i.n()).done;){var o=t.value,a=this.handleSubscribeParam(Ri(Ri({},o),{},{action:"unsubscribe"})),s=a.session,c=a.stream,u=a.user;this.reporter.trace.unsubscribe({sessionId:s.id,remoteStreamId:c.id,remoteUserId:u.userId}),c&&n.push(Ri({stream:c,user:u,session:s},o))}}catch(e){i.e(e)}finally{i.f()}return n.length?this.sessionManager.batchUnscribe(n).then(function(){for(var e=0,t=n;t.length>e;e++){var i,o=t[e],a=o.user,s=o.auxiliary;if("audio"===o.mediaType)null===(i=r.remoteAudioTrack)||void 0===i||i.stop(),r.remoteAudioTrack=null;else if(s){var c;null===(c=a.auxiliaryTrack)||void 0===c||c.stop(),a.auxiliaryTrack=null}else{var u;null===(u=a.videoTrack)||void 0===u||u.stop(),a.videoTrack=null}}}):Promise.resolve()}},{key:"subscribeGroup",value:function(e){var t=this,r=this.getStream({groupId:e});if(!r)throw new u(d.InvaildArgument,"cannot find audio info of the group");if(this.subscribedAudioStream)throw new u(d.InvaildState,"you were subscribed group or channel already");return this.sessionManager.batchSubscribe([{stream:r,uid:e}]).then(function(n){return t.subscribedAudioStream=r.id,t.remoteAudioTrack=sn(n[0].subscription.mediaStream,"audio",e,t.remoteAudioTrack),t.remoteAudioTrack})}},{key:"unsubscribeGroup",value:function(e){var t=this,r=this.getStream({groupId:e});if(!r)throw new u(d.InvaildArgument,"cannot find audio info of the group");if(this.subscribedAudioStream!==r.id)throw new u(d.InvaildState,"you were not subscribed the group");return this.sessionManager.batchUnscribe([{stream:r,session:this.sessionManager.getSessionByStreamId(r.id)}]).then(function(){r.id===t.subscribedAudioStream&&(t.subscribedAudioStream="",t.remoteAudioTrack.stop(),t.remoteAudioTrack=null)})}},{key:"setRemoteStreamType",value:function(e,t,r){this.reporter.log.info("setRemoteStreamType",e,t,r);var n=this.getStream({uid:e,mediaType:"video",auxiliary:r}),i=this.sessionManager.getSessionByStreamId(n.id),o=It(t,nn(n));return i.applyOptions(o)}},{key:"joinGroup",value:function(e){var t=this,r=e.groupId,n=e.publishAudioToGroup;return this.groupManager.join(e).then(function(e){n&&e.joinGroupAudioSuccess&&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.signaling.streamControl({operation:r,streamId:e,data:t})}},{key:"setGroupProperties",value:function(e,t){return this.groupManager.setProperties(e,t)}},{key:"publishToGroup",value:(r=M(Oe.mark(function e(t,r){var n,i,o,a=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=2>=a.length||void 0===a[2]||a[2],i=[],null!=r&&i.push(this.groupManager.groups.get(r).audioInfo.label),!this.localTracks.includes(t)){e.next=5;break}if(o=this.streamManager.getStreamByTrackId(t.getTrackId()),null==r){e.next=3;break}return e.next=1,this.mixGroupAudio(o.id,i[0],"mix");case 1:if(this.micMixedGroups.add(r),!n){e.next=2;break}return e.next=2,this.mixGroupAudio(o.id,"common","unmix");case 2:e.next=4;break;case 3:return e.next=4,this.mixGroupAudio(o.id,"common","mix");case 4:e.next=7;break;case 5:return n||i.push("common"),e.next=6,this.sessionManager.batchPublish([t],i);case 6:this.micMixedGroups.add(r);case 7:case"end":return e.stop()}},e,this)})),function(e,t){return r.apply(this,arguments)})},{key:"unpublishFromGroup",value:(t=M(Oe.mark(function e(t,r){var n,i,o,a=arguments;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=a.length>2&&void 0!==a[2]&&a[2],i=this.groupManager.groups.get(r).audioInfo.label,o=this.streamManager.getStreamByTrackId(t.getTrackId()),e.next=1,this.mixGroupAudio(o.id,i,"unmix");case 1:if(this.micMixedGroups.delete(r),!n){e.next=2;break}return e.next=2,this.mixGroupAudio(o.id,"common","mix");case 2:case"end":return e.stop()}},e,this)})),function(e,r){return t.apply(this,arguments)})}]);var t,r,n,i,o,a}();function Mi(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Mi=function(){return!!e})()}var Ci={timestamp:-1,maxPlayLevel:-1,maxRecLevel:-1},Di=function(){function e(t){var r,n,i,o,a;return C(this,e),n=this,i=G(i=e),r=L(n,Mi()?Reflect.construct(i,[],G(n).constructor):i.apply(n,o)),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:(a=M(Oe.mark(function e(){var t,n,i;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,r.client.getLocalAudioStats();case 1:return t=e.sent.audioLevel,e.next=2,r.client.getRemoteAudioStats();case 2:n=e.sent.audioLevel,i={timestamp:Date.now(),maxRecLevel:Math.min(1,t||0),maxPlayLevel:Math.min(1,Math.max(0,n||0))},r.audioDeviceBufferInfo.timestamp>0&&(r.audioDeviceBufferReport={attr_duration_ms:We(i.timestamp,r.audioDeviceBufferInfo.timestamp),attr_play_level:Math.round(32767*i.maxPlayLevel),attr_rec_level:Math.round(32767*i.maxRecLevel)},r.emit("audio-device-buffer",Object.assign({},r.audioDeviceBufferReport))),r.audioDeviceBufferInfo=i;case 3:case"end":return e.stop()}},e)})),function(){return a.apply(this,arguments)})}),r.audioDeviceBufferReport={attr_duration_ms:0,attr_rec_level:0,attr_play_level:0},r.audioDeviceBufferInfo=Object.assign({},Ci),r.client=t,r}return F(e,Vr),N(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 ji(e){for(var t=1;arguments.length>t;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?xi(Object(r),!0).forEach(function(t){Te(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 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 Li(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)?Li(e,t):void 0}}(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return e.length>n?{done:!1,value:e[n++]}:{done:!0}},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 o,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw o}}}}function Li(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);t>r;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 Ui=function(){function t(){var e,r,n,i;return C(this,t),r=this,n=G(n=t),e=L(r,Gi()?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:f(6)}),Object.defineProperty(e,"reporter",{enumerable:!0,configurable:!0,writable:!0,value:E(e.id)}),Object.defineProperty(e,"channel",{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.channel=new _i(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 F(t,p),N(t,[{key:"remoteUsers",get:function(){return this.channel.userManager.remoteUsers}},{key:"groups",get:function(){return this.channel.groups}},{key:"userId",get:function(){var e;return(null===(e=this.channel.internalChannel)||void 0===e||null===(e=e.joinInfo)||void 0===e?void 0:e.uid)||""}},{key:"localTracks",get:function(){return this.channel.localTracks}},{key:"connectionState",get:function(){var e;return(null===(e=this.channel.internalChannel)||void 0===e?void 0:e.connectionState)||"disconnected"}},{key:"init",value:function(){this.syncStatTimer&&(o(this.syncStatTimer,"interval"),this.syncStatTimer=null),this.currentClientState="",this.channelName="",this.channel.clear(),this.removeEventListeners(),this.monitor&&(this.monitor.stop(),this.monitor.removeAllListeners(),this.monitor=null),this.clientStatSync=[0,0,0,0,0,0]}},{key:"join",value:function(e){var t=this;return this.addEventListeners(),this.channel.join(e).then(function(r){var n;return t.channelName=e.channel,t.monitor=new Di(t),t.monitor.on("audio-device-buffer",function(e){t.reporter.metric.audioDeviceBuffer(e)}),t.syncStatTimer=i(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.reporter.log.info("setRemoteDefaultVideoStreamType",e),this.channel.defaultVideoStreamType=e}},{key:"leave",value:function(){this.reporter.log.info("leave"),this.channel.leave(),this.init()}},{key:"publish",value:function(e){var t=this;if(this.reporter.log.info("publish",(Array.isArray(e)?e:[e]).map(function(e){return e.trackMediaType})),"connected"!==this.connectionState)return Promise.reject(new u(d.PublishNotJoinChannel));var r,n=(Array.isArray(e)?e:[e]).filter(function(e){return e instanceof Bt&&!t.localTracks.includes(e)}),i=n.concat(this.localTracks),o=Te(Te(Te(Te({},fe.CAMERA,0),fe.SCREENCAST,0),pe.MIC,0),pe.MIXED,0),a=Ni(i);try{for(a.s();!(r=a.n()).done;){var s=r.value;if(o[s.source]++,o[s.source]>=2)throw new u(d.QuotaLimitExceed,"".concat(s.source," published already"))}}catch(e){a.e(e)}finally{a.f()}if(!n.length)throw new u(d.PublishNoStream);return this.channel.publish(n)}},{key:"unpublish",value:function(e){var t=Array.isArray(e)?e:[e];return e||(t=this.localTracks),this.reporter.log.info("unpublish",t.map(function(e){return e.trackMediaType})),this.channel.unpublish(t)}},{key:"subscribe",value:(n=M(Oe.mark(function e(t,r,n){return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.reporter.log.info("subscribe",t,r),"connected"===this.connectionState){e.next=1;break}throw new u(d.SubscribeNotJoinChannel);case 1:return e.abrupt("return",this.channel.subscribe({uid:t,mediaType:r,action:"subscribe",auxiliary:n}));case 2:case"end":return e.stop()}},e,this)})),function(e,t,r){return n.apply(this,arguments)})},{key:"batchSubscribe",value:function(e){if(Array.isArray(e)&&e.length){if(this.reporter.log.info("batchSubscribe",e),"connected"!==this.connectionState)throw new u(d.SubscribeNotJoinChannel);return this.channel.batchSubscribe(e.map(function(e){return ji(ji({},e),{},{action:"subscribe"})}))}}},{key:"unsubscribe",value:(r=M(Oe.mark(function e(t,r,n){return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return this.reporter.log.info("unsubscribe",t,r),e.abrupt("return",this.channel.unsubscribe({uid:t,auxiliary:n,mediaType:r,action:"unsubscribe"}));case 1:case"end":return e.stop()}},e,this)})),function(e,t,n){return r.apply(this,arguments)})},{key:"batchUnsubscribe",value:function(e){if(Array.isArray(e)&&e.length)return this.reporter.log.info("batchUnsubscribe",e),"connected"!==this.connectionState?Promise.reject(new u(d.SubscribeNotJoinChannel)):this.channel.batchUnsubscribe(e.map(function(e){return ji(ji({},e),{},{action:"unsubscribe"})}))}},{key:"getLocalAudioStats",value:function(){return this.channel.sessionManager.getLocalAudioStats("user")}},{key:"getLocalVideoStats",value:function(){return this.channel.sessionManager.getLocalVideoStats("user")}},{key:"setRemoteVideoStreamType",value:function(e,t,r){var n=this;this.reporter.log.info("setRemoteVideoStreamType",e,t);var i=this.remoteUsers.find(function(t){return t.userId===e});return null!=i&&i.relatedStreams?this.channel.setRemoteStreamType(e,t,r).then(function(){n.emit("stream-type-changed",e,t,r)}):(this.reporter.log.warn("".concat(e," videoTrack not existed")),Promise.reject("viedoTrack doesnt exiested"))}},{key:"getRemoteVideoStats",value:function(){return this.channel.sessionManager.getRemoteVideoStats("user")}},{key:"getRemoteAudioStats",value:function(){return this.channel.sessionManager.getRemoteAudioStats("user")}},{key:"getRemoteNetworkQuality",value:function(){var e={};return this.remoteUsers.forEach(function(t){var r,n,i=t.properties;e[t.userId]={downlinkNetworkQuality:Number((null==i||null===(r=i[Me])||void 0===r?void 0:r[Pe.DOWNLINK])||0),uplinkNetworkQuality:Number((null==i||null===(n=i[Me])||void 0===n?void 0:n[Pe.UPLINK])||0)}}),e}},{key:"handleConnectionChangeEvent",value:function(e,t,r){this.reporter.log.debug("connectionStateChange from ".concat(t," to ").concat(e," ").concat(r||"")),this.emit("connection-state-change",e,t,r)}},{key:"sendClientStatToRemote",value:function(){var e=this.clientStatSync.join("");if(e!==this.currentClientState){var t=Je(null,e[Pe.UPLINK]),r=Je(null,this.currentClientState[Pe.UPLINK]),n=Je(null,e[Pe.DOWNLINK]),i=Je(null,this.currentClientState[Pe.DOWNLINK]);t===r&&n===i||this.channel.userManager.setParticipantProperties(e),this.currentClientState=e}}},{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[Pe.BACKGROUND_MODE]=Number(t))}},{key:"handleNetworkQuality",value:function(e,t){this.clientStatSync[Pe.UPLINK]=e,this.clientStatSync[Pe.DOWNLINK]=t,this.emit("network-quality",e,t)}},{key:"handlePageUnload",value:function(e){"connected"===this.connectionState&&(this.reporter.log.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.channel.sessionManager.on("network-quality",this.handleNetworkQuality),this.channel.signaling.on("connection-state-change",this.handleConnectionChangeEvent)}},{key:"removeEventListeners",value:function(){window.removeEventListener(e.isSafari()?"beforeunload":"pagehide",this.handlePageUnload),document.removeEventListener("visibilitychange",this.handleVisibilitychange),this.channel.sessionManager.off("network-quality",this.handleNetworkQuality),this.channel.signaling.off("connection-state-change",this.handleConnectionChangeEvent)}},{key:"joinGroup",value:function(e){var t=e.userData,r=e.groupId,n=new TextEncoder;if(!r||n.encode(r).length>64)throw new u(d.InvaildArgument,"join group with invalid groupId");if(t){var i=new TextEncoder;if("string"!=typeof t||i.encode(t).length>64)throw new u(d.InvaildArgument,"join group with invalid userData")}return this.channel.joinGroup(e)}},{key:"leaveGroup",value:function(e){return this.channel.leaveGroup({groupId:e,publishAudioToChannel:!1})}},{key:"setGroupName",value:function(e,t){var r=new TextEncoder;if(!t||r.encode(t).length>64)throw new u(d.InvaildArgument,"update group with invalid name");return this.channel.setGroupProperties(e,{key:"name",value:t})}},{key:"subscribeGroup",value:function(e){return this.channel.subscribeGroup(e)}},{key:"unsubscribeGroup",value:function(e){return this.channel.unsubscribeGroup(e)}},{key:"mixAudioToGroup",value:function(e,t,r){if("audio"!==e.trackMediaType)throw new u(d.InvaildArgument,"only support publish audio to group");if("connected"!==this.connectionState)throw new u(d.PublishNotJoinChannel);if(t){if(this.reporter.log.info("mix audio track:".concat(e.getTrackId()," to group ").concat(r)),null==r&&this.channel.micMixedGroups.size)throw new u(d.InvaildState,"cannot mix audio to channel while mixing to others group");return this.channel.publishToGroup(e,r,!0)}if(this.reporter.log.info("unmix audio track:".concat(e.getTrackId()," from group ").concat(r)),!this.channel.micMixedGroups.has(r))throw new u(d.InvaildState,"cannot unmix audio from the unmixed group");return this.channel.unpublishFromGroup(e,r)}},{key:"dismissGroup",value:function(e){return this.channel.dismissGroup(e)}},{key:"register",value:function(e){e.attach(this.channel.internalChannel)}},{key:"ungister",value:function(e){e.detach(this.channel.internalChannel)}}]);var r,n}();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 Vi(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Vi(e,t):void 0}}(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return e.length>n?{done:!1,value:e[n++]}:{done:!0}},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 o,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw o}}}}function Vi(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);t>r;r++)n[r]=e[r];return n}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(){var t,r,n,i,o;return C(this,e),r=this,n=G(n=e),t=L(r,Bi()?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:(o=M(Oe.mark(function r(){var n;return Oe.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:if(!t.checking){r.next=1;break}return r.abrupt("return");case 1:return t.checking=!0,r.next=2,e.getDevices();case 2:t.compareDevices(n=r.sent,"audiooutput"),t.compareDevices(n,"videoinput"),t.compareDevices(n,"audioinput"),t.deviceList=n,t.checking=!1;case 3:case"end":return r.stop()}},r)})),function(){return o.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}),o=t.deviceList.filter(function(e){return e.kind===r}),a=i.map(function(e){return e.deviceId}),s=o.map(function(e){return e.deviceId}),c=i.filter(function(e){return!s.includes(e.deviceId)}),u=o.filter(function(e){return!a.includes(e.deviceId)}),d={audioinput:"microphone-changed",audiooutput:"playback-device-changed",videoinput:"camera-changed"},l=Fi(c);try{for(l.s();!(n=l.n()).done;){t.emit(d[r],{device:n.value,state:"active"})}}catch(e){l.e(e)}finally{l.f()}var p,f=Fi(u);try{for(f.s();!(p=f.n()).done;){t.emit(d[r],{device:p.value,state:"inactive"})}}catch(e){f.e(e)}finally{f.f()}}}),e._instance?L(t,e._instance):(t.deviceList=[],bt.checkSupported()?(e.getDevices().then(function(e){t.deviceList=e,t.addEventListeners()}),t):L(t))}return F(e,p),N(e,[{key:"addEventListeners",value:function(){"ondevicechange"in navigator.mediaDevices?navigator.mediaDevices.addEventListener("devicechange",this.checkDeviceUpdate):i(this.checkDeviceUpdate,1e3,"interval")}}],[{key:"getInstance",value:function(){return e._instance}},{key:"getDevices",value:function(){return new Promise(function(e,t){var r,n;null!==(r=navigator.mediaDevices)&&void 0!==r&&r.enumerateDevices?null===(n=navigator.mediaDevices)||void 0===n||n.enumerateDevices().then(function(t){return e(t.filter(function(e){return e.deviceId}))}).catch(t):t(new u(d.BrowserNotSupported,"enumerateDevices is not supported"))})}}])}();Object.defineProperty(qi,"_instance",{enumerable:!0,configurable:!0,writable:!0,value:new qi}),Object.defineProperty(qi,"getPlaybackDevices",{enumerable:!0,configurable:!0,writable:!0,value:function(){return qi.getDevices().then(function(e){return e.filter(function(e){return"audiooutput"===e.kind})}).catch(function(e){throw y(e)})}}),Object.defineProperty(qi,"getCameras",{enumerable:!0,configurable:!0,writable:!0,value:function(){return qi.getDevices().then(function(e){return e.filter(function(e){return"videoinput"===e.kind})}).catch(function(e){throw g(e)})}}),Object.defineProperty(qi,"getMicrophones",{enumerable:!0,configurable:!0,writable:!0,value:function(){return qi.getDevices().then(function(e){return e.filter(function(e){return"audioinput"===e.kind})}).catch(function(e){throw y(e)})}});var Hi={height:360,width:640};function Yi(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Yi=function(){return!!e})()}at();var Ji=a().log,Wi=new(function(){function e(){var t,r,n,i;if(C(this,e),r=this,n=G(n=e),t=L(r,Yi()?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=Re,!bt.checkSupported())return L(t);var o=qi.getInstance();return o.on("camera-changed",function(e){t.emit("camera-changed",e)}),o.on("microphone-changed",function(e){t.emit("microphone-changed",e)}),o.on("playback-device-changed",function(e){t.emit("playback-device-changed",e)}),l.on("autoplay-failed",function(e){t.emit("autoplay-failed",e)}),t}return F(e,p),N(e,[{key:"createClient",value:function(){return Ji.info("createClient"),new Ui}},{key:"checkSystemRequirements",value:function(){return Ji.info("checkSystemRequirements"),bt.checkSupported()}},{key:"getSupportedCodec",value:function(){return Ji.info("getSupportedCodec"),bt.getSupportedCodec()}},{key:"createCameraVideoTrack",value:function(e){return Ji.info("createCameraVideoTrack",e),Qt(e)}},{key:"createMicrophoneAudioTrack",value:function(e){return Ji.info("createMicrophoneAudioTrack",e),Wt(e)}},{key:"createCustomVideoTrack",value:function(e){return Ji.info("createCustomVideoTrack",e),$t(e)}},{key:"createCustomAudioTrack",value:function(e){return Ji.info("createCustomAudioTrack",e),Xt(e)}},{key:"createScreenVideoTrack",value:function(e){return Ji.info("createScreenVideoTrack",e),Kt(e)}},{key:"createMicrophoneAndCameraTracks",value:(t=M(Oe.mark(function e(t,r){return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return Ji.info("createMicrophoneAndCameraTracks",{videoConfig:t,audioConfig:r}),e.abrupt("return",zt(t,r));case 1:case"end":return e.stop()}},e)})),function(e,r){return t.apply(this,arguments)})},{key:"getCameras",value:function(){return Ji.info("getCameras"),qi.getCameras()}},{key:"getDevices",value:function(){return Ji.info("getDevices"),qi.getDevices()}},{key:"getPlaybackDevices",value:function(){return Ji.info("getPlaybackDevices"),qi.getPlaybackDevices()}},{key:"getMicrophones",value:function(){return Ji.info("getMicrophones"),qi.getMicrophones()}},{key:"setLogLevel",value:function(e){I(e),Ji.info("setLogLevel",e)}},{key:"setClientConfig",value:function(e){Ji.info("setClientConfig",e),Pt.setClientConfig(e)}}]);var t}());export{pe as AudioSourceInfo,Ee as AudioSourceState,Hi as FALLBACK_SUB_VIDEO_PROFILE,fe as VideoSourceInfo,Wi as default};
|