trtc-sdk-v5 5.9.0-wasm.1 → 5.9.0-wasm.11

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.
Files changed (34) hide show
  1. package/index.d.ts +18 -1
  2. package/package.json +1 -1
  3. package/plugins/cdn-streaming/cdn-streaming.esm.js +1 -1
  4. package/plugins/cdn-streaming/cdn-streaming.iife.js +1 -1
  5. package/plugins/cdn-streaming/package.json +1 -1
  6. package/plugins/cross-room/cross-room.esm.js +1 -1
  7. package/plugins/cross-room/cross-room.iife.js +1 -1
  8. package/plugins/cross-room/package.json +1 -1
  9. package/plugins/device-detector/device-detector.esm.js +5 -5
  10. package/plugins/device-detector/device-detector.iife.js +5 -5
  11. package/plugins/device-detector/package.json +1 -1
  12. package/plugins/video-decoder/package.json +2 -2
  13. package/plugins/video-decoder/video-decoder.esm.js +38 -38
  14. package/plugins/video-decoder/video-decoder.iife.js +38 -38
  15. package/plugins/video-effect/basic-beauty/basic-beauty.esm.js +2 -2
  16. package/plugins/video-effect/basic-beauty/basic-beauty.iife.js +2 -2
  17. package/plugins/video-effect/basic-beauty/package.json +1 -1
  18. package/plugins/video-effect/beauty/beauty.esm.js +35 -35
  19. package/plugins/video-effect/beauty/beauty.iife.js +35 -35
  20. package/plugins/video-effect/beauty/package.json +1 -1
  21. package/plugins/video-effect/virtual-background/package.json +1 -1
  22. package/plugins/video-effect/virtual-background/virtual-background.esm.js +10 -10
  23. package/plugins/video-effect/virtual-background/virtual-background.iife.js +12 -12
  24. package/plugins/video-effect/watermark/package.json +1 -1
  25. package/plugins/video-effect/watermark/watermark.esm.js +1 -1
  26. package/plugins/video-effect/watermark/watermark.iife.js +1 -1
  27. package/trtc.esm.js +41 -64
  28. package/trtc.js +1 -1
  29. package/av_processing.wasm +0 -0
  30. package/plugins/custom-encryption/custom-encryption.esm.d.ts +0 -34
  31. package/plugins/custom-encryption/custom-encryption.esm.js +0 -36
  32. package/plugins/custom-encryption/custom-encryption.iife.js +0 -36
  33. package/plugins/custom-encryption/package.json +0 -7
  34. package/worker.js +0 -17
package/trtc.esm.js CHANGED
@@ -1,32 +1,34 @@
1
- var zE=Object.create;var Wn=Object.defineProperty,JE=Object.defineProperties,Vf=Object.getOwnPropertyDescriptor,XE=Object.getOwnPropertyDescriptors,QE=Object.getOwnPropertyNames,Uf=Object.getOwnPropertySymbols,Bf=Object.getPrototypeOf,Ff=Object.prototype.hasOwnProperty,YE=Object.prototype.propertyIsEnumerable,ZE=Reflect.get;var Gn=Math.pow,Kl=(i,t,e)=>t in i?Wn(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,J=(i,t)=>{for(var e in t||(t={}))Ff.call(t,e)&&Kl(i,e,t[e]);if(Uf)for(var e of Uf(t))YE.call(t,e)&&Kl(i,e,t[e]);return i},me=(i,t)=>JE(i,XE(t));var jn=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),li=(i,t)=>{for(var e in t)Wn(i,e,{get:t[e],enumerable:!0})},KE=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of QE(t))!Ff.call(i,o)&&o!==e&&Wn(i,o,{get:()=>t[o],enumerable:!(r=Vf(t,o))||r.enumerable});return i};var Pi=(i,t,e)=>(e=i!=null?zE(Bf(i)):{},KE(t||!i||!i.__esModule?Wn(e,"default",{value:i,enumerable:!0}):e,i));var q=(i,t,e,r)=>{for(var o=r>1?void 0:r?Vf(t,e):t,s=i.length-1,a;s>=0;s--)(a=i[s])&&(o=(r?a(t,e,o):a(o))||o);return r&&o&&Wn(t,e,o),o};var l=(i,t,e)=>(Kl(i,typeof t!="symbol"?t+"":t,e),e);var kt=(i,t,e)=>ZE(Bf(i),e,t);var v=(i,t,e)=>new Promise((r,o)=>{var s=h=>{try{d(e.next(h))}catch(p){o(p)}},a=h=>{try{d(e.throw(h))}catch(p){o(p)}},d=h=>h.done?r(h.value):Promise.resolve(h.value).then(s,a);d((e=e.apply(i,t)).next())});var Hi=jn((YA,Mp)=>{"use strict";var rI=Object.prototype.hasOwnProperty,Lt="~";function Sa(){}Object.create&&(Sa.prototype=Object.create(null),new Sa().__proto__||(Lt=!1));function iI(i,t,e){this.fn=i,this.context=t,this.once=e||!1}function __(i,t,e,r,o){if(typeof e!="function")throw new TypeError("The listener must be a function");var s=new iI(e,r||i,o),a=Lt?Lt+t:t;return i._events[a]?i._events[a].fn?i._events[a]=[i._events[a],s]:i._events[a].push(s):(i._events[a]=s,i._eventsCount++),i}function wd(i,t){--i._eventsCount===0?i._events=new Sa:delete i._events[t]}function bt(){this._events=new Sa,this._eventsCount=0}bt.prototype.eventNames=function(){var t=[],e,r;if(this._eventsCount===0)return t;for(r in e=this._events)rI.call(e,r)&&t.push(Lt?r.slice(1):r);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(e)):t};bt.prototype.listeners=function(t){var e=Lt?Lt+t:t,r=this._events[e];if(!r)return[];if(r.fn)return[r.fn];for(var o=0,s=r.length,a=new Array(s);o<s;o++)a[o]=r[o].fn;return a};bt.prototype.listenerCount=function(t){var e=Lt?Lt+t:t,r=this._events[e];return r?r.fn?1:r.length:0};bt.prototype.emit=function(t,e,r,o,s,a){var d=Lt?Lt+t:t;if(!this._events[d])return!1;var h=this._events[d],p=arguments.length,T,y;if(h.fn){switch(h.once&&this.removeListener(t,h.fn,void 0,!0),p){case 1:return h.fn.call(h.context),!0;case 2:return h.fn.call(h.context,e),!0;case 3:return h.fn.call(h.context,e,r),!0;case 4:return h.fn.call(h.context,e,r,o),!0;case 5:return h.fn.call(h.context,e,r,o,s),!0;case 6:return h.fn.call(h.context,e,r,o,s,a),!0}for(y=1,T=new Array(p-1);y<p;y++)T[y-1]=arguments[y];h.fn.apply(h.context,T)}else{var R=h.length,N;for(y=0;y<R;y++)switch(h[y].once&&this.removeListener(t,h[y].fn,void 0,!0),p){case 1:h[y].fn.call(h[y].context);break;case 2:h[y].fn.call(h[y].context,e);break;case 3:h[y].fn.call(h[y].context,e,r);break;case 4:h[y].fn.call(h[y].context,e,r,o);break;default:if(!T)for(N=1,T=new Array(p-1);N<p;N++)T[N-1]=arguments[N];h[y].fn.apply(h[y].context,T)}}return!0};bt.prototype.on=function(t,e,r){return __(this,t,e,r,!1)};bt.prototype.once=function(t,e,r){return __(this,t,e,r,!0)};bt.prototype.removeListener=function(t,e,r,o){var s=Lt?Lt+t:t;if(!this._events[s])return this;if(!e)return wd(this,s),this;var a=this._events[s];if(a.fn)a.fn===e&&(!o||a.once)&&(!r||a.context===r)&&wd(this,s);else{for(var d=0,h=[],p=a.length;d<p;d++)(a[d].fn!==e||o&&!a[d].once||r&&a[d].context!==r)&&h.push(a[d]);h.length?this._events[s]=h.length===1?h[0]:h:wd(this,s)}return this};bt.prototype.removeAllListeners=function(t){var e;return t?(e=Lt?Lt+t:t,this._events[e]&&wd(this,e)):(this._events=new Sa,this._eventsCount=0),this};bt.prototype.off=bt.prototype.removeListener;bt.prototype.addListener=bt.prototype.on;bt.prefixed=Lt;bt.EventEmitter=bt;typeof Mp!="undefined"&&(Mp.exports=bt)});var zp=jn((Rb,N_)=>{var D_=N_.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(i){return i.encoding?"rtpmap:%d %s/%s/%s":i.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(i){return i.address!=null?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(i){return i.subtype!=null?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(i){return"extmap:%d"+(i.direction?"/%s":"%v")+(i["encrypt-uri"]?" %s":"%v")+" %s"+(i.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(i){return i.sessionConfig!=null?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(i){var t="candidate:%s %d %s %d %s %d typ %s";return t+=i.raddr!=null?" raddr %s rport %d":"%v%v",t+=i.tcptype!=null?" tcptype %s":"%v",i.generation!=null&&(t+=" generation %d"),t+=i["network-id"]!=null?" network-id %d":"%v",t+=i["network-cost"]!=null?" network-cost %d":"%v",t}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(i){var t="ssrc:%d";return i.attribute!=null&&(t+=" %s",i.value!=null&&(t+=":%s")),t}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(i){return i.maxMessageSize!=null?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(i){return i.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(i){return"imageattr:%s %s %s"+(i.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(i){return"simulcast:%s %s"+(i.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(i){return"ts-refclk:%s"+(i.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(i){var t="mediaclk:";return t+=i.id!=null?"id=%s %s":"%v%s",t+=i.mediaClockValue!=null?"=%s":"",t+=i.rateNumerator!=null?" rate=%s":"",t+=i.rateDenominator!=null?"/%s":"",t}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};Object.keys(D_).forEach(function(i){var t=D_[i];t.forEach(function(e){e.reg||(e.reg=/(.*)/),e.format||(e.format="%s")})})});var M_=jn(Si=>{var Bs=function(i){return String(Number(i))===i?Number(i):i},pI=function(i,t,e,r){if(r&&!e)t[r]=Bs(i[1]);else for(var o=0;o<e.length;o+=1)i[o+1]!=null&&(t[e[o]]=Bs(i[o+1]))},mI=function(i,t,e){var r=i.name&&i.names;i.push&&!t[i.push]?t[i.push]=[]:r&&!t[i.name]&&(t[i.name]={});var o=i.push?{}:r?t[i.name]:t;pI(e.match(i.reg),o,i.names,i.name),i.push&&t[i.push].push(o)},w_=zp(),hI=RegExp.prototype.test.bind(/^([a-z])=(.*)/);Si.parse=function(i){var t={},e=[],r=t;return i.split(/(\r\n|\r|\n)/).filter(hI).forEach(function(o){var s=o[0],a=o.slice(2);s==="m"&&(e.push({rtp:[],fmtp:[]}),r=e[e.length-1]);for(var d=0;d<(w_[s]||[]).length;d+=1){var h=w_[s][d];if(h.reg.test(a))return mI(h,r,a)}}),t.media=e,t};var x_=function(i,t){var e=t.split(/=(.+)/,2);return e.length===2?i[e[0]]=Bs(e[1]):e.length===1&&t.length>1&&(i[e[0]]=void 0),i};Si.parseParams=function(i){return i.split(/;\s?/).reduce(x_,{})};Si.parseFmtpConfig=Si.parseParams;Si.parsePayloads=function(i){return i.toString().split(" ").map(Number)};Si.parseRemoteCandidates=function(i){for(var t=[],e=i.split(" ").map(Bs),r=0;r<e.length;r+=3)t.push({component:e[r],ip:e[r+1],port:e[r+2]});return t};Si.parseImageAttributes=function(i){return i.split(" ").map(function(t){return t.substring(1,t.length-1).split(",").reduce(x_,{})})};Si.parseSimulcastStreamList=function(i){return i.split(";").map(function(t){return t.split(",").map(function(e){var r,o=!1;return e[0]!=="~"?r=Bs(e):(r=Bs(e.substring(1,e.length)),o=!0),{scid:r,paused:o}})})}});var P_=jn((Db,O_)=>{var Jp=zp(),fI=/%[sdv%]/g,_I=function(i){var t=1,e=arguments,r=e.length;return i.replace(fI,function(o){if(t>=r)return o;var s=e[t];switch(t+=1,o){case"%%":return"%";case"%s":return String(s);case"%d":return Number(s);case"%v":return""}})},Ca=function(i,t,e){var r=t.format instanceof Function?t.format(t.push?e:e[t.name]):t.format,o=[i+"="+r];if(t.names)for(var s=0;s<t.names.length;s+=1){var a=t.names[s];t.name?o.push(e[t.name][a]):o.push(e[t.names[s]])}else o.push(e[t.name]);return _I.apply(null,o)},gI=["v","o","s","i","u","e","p","c","b","t","r","z","a"],EI=["i","c","b","a"];O_.exports=function(i,t){t=t||{},i.version==null&&(i.version=0),i.name==null&&(i.name=" "),i.media.forEach(function(s){s.payloads==null&&(s.payloads="")});var e=t.outerOrder||gI,r=t.innerOrder||EI,o=[];return e.forEach(function(s){Jp[s].forEach(function(a){a.name in i&&i[a.name]!=null?o.push(Ca(s,a,i)):a.push in i&&i[a.push]!=null&&i[a.push].forEach(function(d){o.push(Ca(s,a,d))})})}),i.media.forEach(function(s){o.push(Ca("m",Jp.m[0],s)),r.forEach(function(a){Jp[a].forEach(function(d){d.name in s&&s[d.name]!=null?o.push(Ca(a,d,s)):d.push in s&&s[d.push]!=null&&s[d.push].forEach(function(h){o.push(Ca(a,d,h))})})})}),o.join(`\r
1
+ var kp=Object.create;var xs=Object.defineProperty,Lp=Object.defineProperties,gu=Object.getOwnPropertyDescriptor,Pp=Object.getOwnPropertyDescriptors,wp=Object.getOwnPropertyNames,on=Object.getOwnPropertySymbols,Tu=Object.getPrototypeOf,uc=Object.prototype.hasOwnProperty,Eu=Object.prototype.propertyIsEnumerable,xp=Reflect.get;var Us=Math.pow,lc=(s,i,e)=>i in s?xs(s,i,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[i]=e,v=(s,i)=>{for(var e in i||(i={}))uc.call(i,e)&&lc(s,e,i[e]);if(on)for(var e of on(i))Eu.call(i,e)&&lc(s,e,i[e]);return s},k=(s,i)=>Lp(s,Pp(i));var Su=(s,i)=>{var e={};for(var t in s)uc.call(s,t)&&i.indexOf(t)<0&&(e[t]=s[t]);if(s!=null&&on)for(var t of on(s))i.indexOf(t)<0&&Eu.call(s,t)&&(e[t]=s[t]);return e};var oi=(s,i)=>()=>(i||s((i={exports:{}}).exports,i),i.exports),ni=(s,i)=>{for(var e in i)xs(s,e,{get:i[e],enumerable:!0})},Up=(s,i,e,t)=>{if(i&&typeof i=="object"||typeof i=="function")for(let r of wp(i))!uc.call(s,r)&&r!==e&&xs(s,r,{get:()=>i[r],enumerable:!(t=gu(i,r))||t.enumerable});return s};var ke=(s,i,e)=>(e=s!=null?kp(Tu(s)):{},Up(i||!s||!s.__esModule?xs(e,"default",{value:s,enumerable:!0}):e,s));var y=(s,i,e,t)=>{for(var r=t>1?void 0:t?gu(i,e):i,o=s.length-1,n;o>=0;o--)(n=s[o])&&(r=(t?n(i,e,r):n(r))||r);return t&&r&&xs(i,e,r),r};var c=(s,i,e)=>lc(s,typeof i!="symbol"?i+"":i,e);var Le=(s,i,e)=>xp(Tu(s),e,i);var f=(s,i,e)=>new Promise((t,r)=>{var o=d=>{try{a(e.next(d))}catch(l){r(l)}},n=d=>{try{a(e.throw(d))}catch(l){r(l)}},a=d=>d.done?t(d.value):Promise.resolve(d.value).then(o,n);a((e=e.apply(s,i)).next())});var Ge=oi((BT,hc)=>{"use strict";var Vp=Object.prototype.hasOwnProperty,$e="~";function Vs(){}Object.create&&(Vs.prototype=Object.create(null),new Vs().__proto__||($e=!1));function Bp(s,i,e){this.fn=s,this.context=i,this.once=e||!1}function Iu(s,i,e,t,r){if(typeof e!="function")throw new TypeError("The listener must be a function");var o=new Bp(e,t||s,r),n=$e?$e+i:i;return s._events[n]?s._events[n].fn?s._events[n]=[s._events[n],o]:s._events[n].push(o):(s._events[n]=o,s._eventsCount++),s}function nn(s,i){--s._eventsCount===0?s._events=new Vs:delete s._events[i]}function we(){this._events=new Vs,this._eventsCount=0}we.prototype.eventNames=function(){var i=[],e,t;if(this._eventsCount===0)return i;for(t in e=this._events)Vp.call(e,t)&&i.push($e?t.slice(1):t);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i};we.prototype.listeners=function(i){var e=$e?$e+i:i,t=this._events[e];if(!t)return[];if(t.fn)return[t.fn];for(var r=0,o=t.length,n=new Array(o);r<o;r++)n[r]=t[r].fn;return n};we.prototype.listenerCount=function(i){var e=$e?$e+i:i,t=this._events[e];return t?t.fn?1:t.length:0};we.prototype.emit=function(i,e,t,r,o,n){var a=$e?$e+i:i;if(!this._events[a])return!1;var d=this._events[a],l=arguments.length,m,u;if(d.fn){switch(d.once&&this.removeListener(i,d.fn,void 0,!0),l){case 1:return d.fn.call(d.context),!0;case 2:return d.fn.call(d.context,e),!0;case 3:return d.fn.call(d.context,e,t),!0;case 4:return d.fn.call(d.context,e,t,r),!0;case 5:return d.fn.call(d.context,e,t,r,o),!0;case 6:return d.fn.call(d.context,e,t,r,o,n),!0}for(u=1,m=new Array(l-1);u<l;u++)m[u-1]=arguments[u];d.fn.apply(d.context,m)}else{var p=d.length,_;for(u=0;u<p;u++)switch(d[u].once&&this.removeListener(i,d[u].fn,void 0,!0),l){case 1:d[u].fn.call(d[u].context);break;case 2:d[u].fn.call(d[u].context,e);break;case 3:d[u].fn.call(d[u].context,e,t);break;case 4:d[u].fn.call(d[u].context,e,t,r);break;default:if(!m)for(_=1,m=new Array(l-1);_<l;_++)m[_-1]=arguments[_];d[u].fn.apply(d[u].context,m)}}return!0};we.prototype.on=function(i,e,t){return Iu(this,i,e,t,!1)};we.prototype.once=function(i,e,t){return Iu(this,i,e,t,!0)};we.prototype.removeListener=function(i,e,t,r){var o=$e?$e+i:i;if(!this._events[o])return this;if(!e)return nn(this,o),this;var n=this._events[o];if(n.fn)n.fn===e&&(!r||n.once)&&(!t||n.context===t)&&nn(this,o);else{for(var a=0,d=[],l=n.length;a<l;a++)(n[a].fn!==e||r&&!n[a].once||t&&n[a].context!==t)&&d.push(n[a]);d.length?this._events[o]=d.length===1?d[0]:d:nn(this,o)}return this};we.prototype.removeAllListeners=function(i){var e;return i?(e=$e?$e+i:i,this._events[e]&&nn(this,e)):(this._events=new Vs,this._eventsCount=0),this};we.prototype.off=we.prototype.removeListener;we.prototype.addListener=we.prototype.on;we.prefixed=$e;we.EventEmitter=we;typeof hc!="undefined"&&(hc.exports=we)});var ld=oi(($E,ah)=>{"use strict";var nh=ah.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(s){return s.encoding?"rtpmap:%d %s/%s/%s":s.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(s){return s.address!=null?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(s){return s.subtype!=null?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(s){return"extmap:%d"+(s.direction?"/%s":"%v")+(s["encrypt-uri"]?" %s":"%v")+" %s"+(s.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(s){return s.sessionConfig!=null?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(s){var i="candidate:%s %d %s %d %s %d typ %s";return i+=s.raddr!=null?" raddr %s rport %d":"%v%v",i+=s.tcptype!=null?" tcptype %s":"%v",s.generation!=null&&(i+=" generation %d"),i+=s["network-id"]!=null?" network-id %d":"%v",i+=s["network-cost"]!=null?" network-cost %d":"%v",i}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(s){var i="ssrc:%d";return s.attribute!=null&&(i+=" %s",s.value!=null&&(i+=":%s")),i}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(s){return s.maxMessageSize!=null?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(s){return s.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(s){return"imageattr:%s %s %s"+(s.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(s){return"simulcast:%s %s"+(s.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(s){return"ts-refclk:%s"+(s.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(s){var i="mediaclk:";return i+=s.id!=null?"id=%s %s":"%v%s",i+=s.mediaClockValue!=null?"=%s":"",i+=s.rateNumerator!=null?" rate=%s":"",i+=s.rateDenominator!=null?"/%s":"",i}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};Object.keys(nh).forEach(function(s){var i=nh[s];i.forEach(function(e){e.reg||(e.reg=/(.*)/),e.format||(e.format="%s")})})});var lh=oi(Ii=>{"use strict";var ls=function(s){return String(Number(s))===s?Number(s):s},wf=function(s,i,e,t){if(t&&!e)i[t]=ls(s[1]);else for(var r=0;r<e.length;r+=1)s[r+1]!=null&&(i[e[r]]=ls(s[r+1]))},xf=function(s,i,e){var t=s.name&&s.names;s.push&&!i[s.push]?i[s.push]=[]:t&&!i[s.name]&&(i[s.name]={});var r=s.push?{}:t?i[s.name]:i;wf(e.match(s.reg),r,s.names,s.name),s.push&&i[s.push].push(r)},ch=ld(),Uf=RegExp.prototype.test.bind(/^([a-z])=(.*)/);Ii.parse=function(s){var i={},e=[],t=i;return s.split(/(\r\n|\r|\n)/).filter(Uf).forEach(function(r){var o=r[0],n=r.slice(2);o==="m"&&(e.push({rtp:[],fmtp:[]}),t=e[e.length-1]);for(var a=0;a<(ch[o]||[]).length;a+=1){var d=ch[o][a];if(d.reg.test(n))return xf(d,t,n)}}),i.media=e,i};var dh=function(s,i){var e=i.split(/=(.+)/,2);return e.length===2?s[e[0]]=ls(e[1]):e.length===1&&i.length>1&&(s[e[0]]=void 0),s};Ii.parseParams=function(s){return s.split(/;\s?/).reduce(dh,{})};Ii.parseFmtpConfig=Ii.parseParams;Ii.parsePayloads=function(s){return s.toString().split(" ").map(Number)};Ii.parseRemoteCandidates=function(s){for(var i=[],e=s.split(" ").map(ls),t=0;t<e.length;t+=3)i.push({component:e[t],ip:e[t+1],port:e[t+2]});return i};Ii.parseImageAttributes=function(s){return s.split(" ").map(function(i){return i.substring(1,i.length-1).split(",").reduce(dh,{})})};Ii.parseSimulcastStreamList=function(s){return s.split(";").map(function(i){return i.split(",").map(function(e){var t,r=!1;return e[0]!=="~"?t=ls(e):(t=ls(e.substring(1,e.length)),r=!0),{scid:t,paused:r}})})}});var hh=oi((WE,uh)=>{"use strict";var ud=ld(),Vf=/%[sdv%]/g,Bf=function(s){var i=1,e=arguments,t=e.length;return s.replace(Vf,function(r){if(i>=t)return r;var o=e[i];switch(i+=1,r){case"%%":return"%";case"%s":return String(o);case"%d":return Number(o);case"%v":return""}})},To=function(s,i,e){var t=i.format instanceof Function?i.format(i.push?e:e[i.name]):i.format,r=[s+"="+t];if(i.names)for(var o=0;o<i.names.length;o+=1){var n=i.names[o];i.name?r.push(e[i.name][n]):r.push(e[i.names[o]])}else r.push(e[i.name]);return Bf.apply(null,r)},Ff=["v","o","s","i","u","e","p","c","b","t","r","z","a"],Hf=["i","c","b","a"];uh.exports=function(s,i){i=i||{},s.version==null&&(s.version=0),s.name==null&&(s.name=" "),s.media.forEach(function(o){o.payloads==null&&(o.payloads="")});var e=i.outerOrder||Ff,t=i.innerOrder||Hf,r=[];return e.forEach(function(o){ud[o].forEach(function(n){n.name in s&&s[n.name]!=null?r.push(To(o,n,s)):n.push in s&&s[n.push]!=null&&s[n.push].forEach(function(a){r.push(To(o,n,a))})})}),s.media.forEach(function(o){r.push(To("m",ud.m[0],o)),t.forEach(function(n){ud[n].forEach(function(a){a.name in o&&o[a.name]!=null?r.push(To(n,a,o)):a.push in o&&o[a.push]!=null&&o[a.push].forEach(function(d){r.push(To(n,a,d))})})})}),r.join(`\r
2
2
  `)+`\r
3
- `}});var k_=jn(yi=>{var wo=M_(),TI=P_();yi.write=TI;yi.parse=wo.parse;yi.parseParams=wo.parseParams;yi.parseFmtpConfig=wo.parseFmtpConfig;yi.parsePayloads=wo.parsePayloads;yi.parseRemoteCandidates=wo.parseRemoteCandidates;yi.parseImageAttributes=wo.parseImageAttributes;yi.parseSimulcastStreamList=wo.parseSimulcastStreamList});var $f=(P=>(P[P.INVALID_PARAMETER=4096]="INVALID_PARAMETER",P[P.INVALID_OPERATION=4097]="INVALID_OPERATION",P[P.NOT_SUPPORTED=4098]="NOT_SUPPORTED",P[P.DEVICE_NOT_FOUND=4099]="DEVICE_NOT_FOUND",P[P.INITIALIZE_FAILED=4100]="INITIALIZE_FAILED",P[P.SIGNAL_CHANNEL_SETUP_FAILED=16385]="SIGNAL_CHANNEL_SETUP_FAILED",P[P.SIGNAL_CHANNEL_ERROR=16386]="SIGNAL_CHANNEL_ERROR",P[P.ICE_TRANSPORT_ERROR=16387]="ICE_TRANSPORT_ERROR",P[P.JOIN_ROOM_FAILED=16388]="JOIN_ROOM_FAILED",P[P.CREATE_OFFER_FAILED=16389]="CREATE_OFFER_FAILED",P[P.SIGNAL_CHANNEL_RECONNECTION_FAILED=16390]="SIGNAL_CHANNEL_RECONNECTION_FAILED",P[P.UPLINK_RECONNECTION_FAILED=16391]="UPLINK_RECONNECTION_FAILED",P[P.DOWNLINK_RECONNECTION_FAILED=16392]="DOWNLINK_RECONNECTION_FAILED",P[P.REMOTE_STREAM_NOT_EXIST=16400]="REMOTE_STREAM_NOT_EXIST",P[P.CLIENT_BANNED=16448]="CLIENT_BANNED",P[P.SERVER_TIMEOUT=16449]="SERVER_TIMEOUT",P[P.SUBSCRIPTION_TIMEOUT=16450]="SUBSCRIPTION_TIMEOUT",P[P.PLAY_NOT_ALLOWED=16451]="PLAY_NOT_ALLOWED",P[P.DEVICE_AUTO_RECOVER_FAILED=16452]="DEVICE_AUTO_RECOVER_FAILED",P[P.START_PUBLISH_CDN_FAILED=16453]="START_PUBLISH_CDN_FAILED",P[P.STOP_PUBLISH_CDN_FAILED=16454]="STOP_PUBLISH_CDN_FAILED",P[P.START_MIX_TRANSCODE_FAILED=16455]="START_MIX_TRANSCODE_FAILED",P[P.STOP_MIX_TRANSCODE_FAILED=16456]="STOP_MIX_TRANSCODE_FAILED",P[P.NOT_SUPPORTED_H264=16457]="NOT_SUPPORTED_H264",P[P.SWITCH_ROLE_FAILED=16458]="SWITCH_ROLE_FAILED",P[P.API_CALL_TIMEOUT=16459]="API_CALL_TIMEOUT",P[P.SCHEDULE_FAILED=16460]="SCHEDULE_FAILED",P[P.API_CALL_ABORTED=16461]="API_CALL_ABORTED",P[P.SPC_INITIALIZED_FAILED=16462]="SPC_INITIALIZED_FAILED",P[P.VIDEO_MANAGER_ERROR=16463]="VIDEO_MANAGER_ERROR",P[P.UNKNOWN=65535]="UNKNOWN",P))($f||{}),Y=$f;var eT=function(i){for(let t in Y)if(Y[t]===i)return t;return"UNKNOWN"},ep=class extends Error{constructor({name:e="RtcError",message:r,code:o=Y.UNKNOWN,extraCode:s=0,constraint:a}){let d=`<${eT(o)} 0x${o.toString(16)}>`,h=`${r}${a?` constraint: ${a}`:""}${r!=null&&r.includes(d)?"":` ${d}`}`;super(h);l(this,"code");l(this,"extraCode");l(this,"message");l(this,"originMessage");l(this,"name");l(this,"constraint");this.code=o,this.extraCode=s,this.name=e,this.message=h,this.constraint=a,this.originMessage=r}getCode(){return this.code}getExtraCode(){return this.extraCode}toString(){return this.originMessage}},de=ep;var kA=new Date().getTime(),tT=0;var qn=function(){return new Date().getTime()+tT},Xc=function(){let i=new Date;return i.setTime(qn()),i.toLocaleString()};var Gr={};li(Gr,{bytes2ms:()=>Yf,convertObjectNumberToInt:()=>oa,copyProperties:()=>Qf,deepClone:()=>Io,deepMerge:()=>Wr,delay:()=>sa,fibonacci:()=>So,formatedTime:()=>cd,getConstructorName:()=>ra,getContainerFromElement:()=>s_,getEnv:()=>zf,getInternalVersion:()=>i_,getLoggerUrl:()=>fi,getMuteStateFromFlag:()=>ia,getNetworkType:()=>ea,getNumNetworkType:()=>sd,getReconnectionTimeout:()=>Kf,getStringByteLength:()=>n_,getTurnServer:()=>o_,getUint32Version:()=>ld,getValueType:()=>mt,getViewListFromView:()=>ys,glog:()=>ta,ipv4ToUint32:()=>Ss,isArray:()=>rt,isAudioWorkletSupported:()=>r_,isBoolean:()=>nt,isConstructor:()=>Is,isEmpty:()=>ad,isFunction:()=>Ve,isLangChinese:()=>vr,isMediaStreamTrack:()=>e_,isNumber:()=>Fe,isObject:()=>lr,isOverseaSdkAppId:()=>Kn,isPlainObject:()=>Ft,isPortrait:()=>ud,isPromise:()=>Li,isRemoteTrack:()=>t_,isString:()=>Ae,isUndefined:()=>L,loadImage:()=>As,ms2bytes:()=>Zf,ms2samples:()=>hp,performanceNow:()=>ge,promiseAny:()=>nd,samples2ms:()=>mp,setNetworkType:()=>Xf,stringify:()=>pr,stringifyIncludeValue:()=>dd,throttlePromise:()=>pd});var pp={};li(pp,{AUDIO_MUTE_BIT:()=>td,AUDIO_STAT_BIT:()=>gs,AUX_STAT_BIT:()=>Xn,AUX_STREAM_MSID:()=>mT,BACKEND_ENV:()=>ed,BASE_DOC_URL:()=>Fr,BASE_HOST:()=>Hf,CAPABILITIES_KEYS:()=>od,CLASS_NAME:()=>UT,CLOUD_CONSOLE_URL:()=>sT,CROSS_ROOM_BIT:()=>lT,DATA_FREEZE_TIMING:()=>id,DEFAULT_ASSETS_URL:()=>Qc,DOC_URL:()=>nT,DTLS_STATE_UNKNOWN:()=>AT,ENV_NAME:()=>pi,EXCHANGE_SDP_TIMEOUT:()=>NT,INTERVAL:()=>To,IS_WORKER:()=>fs,IS_WORKLET:()=>zn,KIBANA_EVENT:()=>mi,LOCAL_STREAM_PUBLISH_STATE:()=>Gf,LOGGER_CMD_TYPE:()=>ki,LOGGER_DOMAIN:()=>ip,LOGGER_DOMAIN_OVERSEA:()=>op,LOG_LEVEL:()=>br,LOG_LEVEL_NAME:()=>BT,MAIN_STREAM_MSID:()=>pT,MAX_RTT:()=>Yn,MICROPHONE_COMMUNICATIONS:()=>VT,MICROPHONE_DEFAULT:()=>Eo,MUTE_ALL_BIT:()=>uT,NAME:()=>D,NETWORK_TYPE:()=>go,NOT_SUPPORTED_H264:()=>xT,PAUSED_RETRY_COUNT:()=>dp,PEERCONNECTION_CONNECTING_TIMEOUT:()=>kT,PEER_CONNECTION_STATE:()=>bT,PEER_LEAVE_REASON:()=>jf,RAF:()=>lp,RECOVER_CAPTURE_INTERVAL:()=>Es,REMOTE_STREAM_TYPE_AUX:()=>fT,REMOTE_STREAM_TYPE_MAIN:()=>hT,RENDER_FREEZE_TIMING:()=>MT,RIC:()=>up,SCHEDULE_DOMAIN:()=>hi,SCHEDULE_TIMEOUT:()=>LT,SDP_SEMANTICS_PLAN_B:()=>wT,SDP_SEMANTICS_UNIFIED_PLAN:()=>cp,SECOND_HOST:()=>iT,SIGNAL_PING_PONG_INTERVAL:()=>cT,SIGNAL_PING_TIMEOUT:()=>aT,SIGNAL_RECONNECTION_COUNT:()=>RT,SMALL_STAT_BIT:()=>np,SPEAKER_DEFAULT:()=>Qn,STORAGE_EXPIRES_TIME:()=>Yc,STREAM_TYPE_BIG:()=>OT,STREAM_TYPE_SMALL:()=>PT,SUBSCRIBE_SMALL_RETRY_COUNT:()=>FT,SYNC_USER_LIST_INTERVAL:()=>CT,Scene:()=>Hr,THIRD_HOST:()=>oT,TIMEOUT:()=>Ts,TRANSPORT_DIRECTION:()=>dT,TRTC_ERROR_ASSISTANCE:()=>sp,TRTC_QUALITY_BAD:()=>IT,TRTC_QUALITY_DISCONNECTED:()=>yT,TRTC_QUALITY_EXCELLENT:()=>gT,TRTC_QUALITY_GOOD:()=>ET,TRTC_QUALITY_POOR:()=>TT,TRTC_QUALITY_UNKNOWN:()=>_T,TRTC_QUALITY_VERY_BAD:()=>ST,UPDATE_OFFER_TIMEOUT:()=>DT,VIDEO_MUTE_BIT:()=>rd,VIDEO_STAT_BIT:()=>_s,audioProfileMap:()=>Zc,getRetryCount:()=>vT,getScriptDir:()=>rT,innerVersion:()=>tp,loggerProxy:()=>Jn,screenProfileMap:()=>Kc,setLoggerProxy:()=>_o,setRetryCount:()=>ap,setVersion:()=>rp,version:()=>Ke,videoProfileMap:()=>$r});var tp="4.15.00.1600",Ke="5.0.0";function rp(i){Ke=i;let[t,e,r]=i.split(".").map(o=>parseInt(o,10));tp=`${t}.${Math.min(15,e)}.${Math.min(15,r)}.${e.toString().padStart(2,"0")}${r.toString().padStart(2,"0")}`}var fs=typeof importScripts!="undefined",zn=typeof registerProcessor!="undefined",rT=()=>{let i=fs?self.location.href:document.currentScript.src;return i.substring(0,i.lastIndexOf("/")+1)},Jn="",_o=i=>Jn=i,Hf="web.sdk.qcloud.com",iT="web.sdk.tencent.cn",oT="web.sdk.cloud.tencent.cn",sT="https://console.cloud.tencent.com/trtc",Fr=`https://${Hf}/trtc/webrtc/v5/doc`,Qc="https://web.sdk.qcloud.com/trtc/webrtc/v5/assets/",nT=`${Fr}/zh-cn/`,ip="https://yun.tim.qq.com",op="https://apisgp.my-imcloud.com",sp="trtc_error_assistance",ki={LOG:"jssdk_log",EVENT:"jssdk_event",KEY_POINT:"jssdk_new_endreport",KV_STAT:"jssdk_key_metrics_report"},pi={QCLOUD:"qcloud",OLD_CLOUD_LADDER:"trtc",WEBRTC:"webrtc"},br=(a=>(a[a.TRACE=0]="TRACE",a[a.DEBUG=1]="DEBUG",a[a.INFO=2]="INFO",a[a.WARN=3]="WARN",a[a.ERROR=4]="ERROR",a[a.NONE=5]="NONE",a))(br||{}),aT=18e3,cT=2e3,go={unknown:0,wifi:1,"3g":2,"2g":3,"4g":4,wired:5,"5g":6},Yc=7*24*3600*1e3,Zc={standard:{sampleRate:48e3,channelCount:1,bitrate:40},"standard-stereo":{sampleRate:48e3,channelCount:2,bitrate:64},high:{sampleRate:48e3,channelCount:1,bitrate:128},"high-stereo":{sampleRate:48e3,channelCount:2,bitrate:192}},$r={"120p":{width:160,height:120,frameRate:15,bitrate:200},"120p_2":{width:160,height:120,frameRate:15,bitrate:100},"180p":{width:320,height:180,frameRate:15,bitrate:350},"180p_2":{width:320,height:180,frameRate:15,bitrate:150},"240p":{width:320,height:240,frameRate:15,bitrate:400},"240p_2":{width:320,height:240,frameRate:15,bitrate:200},"360p":{width:640,height:360,frameRate:15,bitrate:800},"360p_2":{width:640,height:360,frameRate:15,bitrate:400},"480p":{width:640,height:480,frameRate:15,bitrate:900},"480p_2":{width:640,height:480,frameRate:15,bitrate:500},"720p":{width:1280,height:720,frameRate:15,bitrate:1500},"1080p":{width:1920,height:1080,frameRate:15,bitrate:2e3},"1440p":{width:2560,height:1440,frameRate:30,bitrate:4860},"4K":{width:3840,height:2160,frameRate:30,bitrate:9e3}},Kc={"480p":{width:640,height:480,frameRate:5,bitrate:900},"480p_2":{width:640,height:480,frameRate:30,bitrate:1e3},"720p":{width:1280,height:720,frameRate:5,bitrate:1200},"720p_2":{width:1280,height:720,frameRate:30,bitrate:3e3},"1080p":{width:1920,height:1080,frameRate:5,bitrate:1600},"1080p_2":{width:1920,height:1080,frameRate:30,bitrate:4e3}},D={CANVAS:"canvas",AUDIO:"audio",VIDEO:"video",SCREEN:"screen",SMALL:"small",BIG:"big",AUXILIARY:"auxiliary",SMALL_VIDEO:"smallVideo",FACING_MODE_USER:"user",FACING_MODE_ENVIRONMENT:"environment",MUTE:"mute",UNMUTE:"unmute",ENDED:"ended",PLAYING:"playing",PAUSE:"pause",ERROR:"error",LOADEDDATA:"loadeddata",AUDIO_INPUT:"audioinput",VIDEO_INPUT:"videoinput",DETAIL:"detail",TEXT:"text",MAIN:"main",BACKUP:"backup",BANNED:"banned",KICK:"kick",USER_TIME_OUT:"user_time_out",ROOM_DISBAND:"room_disband",SEI_MESSAGE:"sei-message",ADD:"add",REMOVE:"remove",REPLACE:"replace",TRACK:"track",SUBSCRIBE:"subscribe",UNSUBSCRIBE:"unsubscribe",TRANSCEIVER_DIRECTION_SENDONLY:"sendonly",TRANSCEIVER_DIRECTION_RECVONLY:"recvonly",ENTER_PICTURE_IN_PICTURE:"enterpictureinpicture",LEAVE_PICTURE_IN_PICTURE:"leavepictureinpicture"},dT={INACTIVE:"inactive",SENDONLY:"sendonly",RECVONLY:"recvonly"},ed={OLD_CLOUD_LADDER:"wss://trtc.rtc.qq.com",WEBRTC:"wss://webrtc.qq.com"},Hr=(e=>(e.LIVE="live",e.RTC="rtc",e))(Hr||{}),_s=1,np=2,Xn=4,gs=8,td=64,rd=16,uT=112,lT=128,pT="5Y2wZK8nANNAoVw6dSAHVjNxrD1ObBM2kBPV",mT="224d130c-7b5c-415b-aaa2-79c2eb5a6df2",hT=D.MAIN,fT=D.AUXILIARY,_T=0,gT=1,ET=2,TT=3,IT=4,ST=5,yT=6,AT="unknown",bT={NEW:"new",CONNECTING:"connecting",FAILED:"failed",CLOSED:"closed",DISCONNECTED:"disconnected",CONNECTED:"connected",COMPLETED:"completed"},Wf=1/0;function ap(i){Wf=i}function vT(){return Wf}var RT=30,mi={JOIN:"join",DELTA_JOIN:"delta-join",REJOIN:"rejoin",LEAVE:"leave",DELTA_LEAVE:"delta-leave",PUBLISH:"publish",DELTA_PUBLISH:"delta-publish",UNPUBLISH:"unpublish",SUBSCRIBE:"subscribe",UNSUBSCRIBE:"unsubscribe",UPLINK_CONNECTION:"uplink-connection",UPLINK_RECONNECTION:"uplink-reconnection",DOWNLINK_CONNECTION:"downlink-connection",DOWNLINK_RECONNECTION:"downlink-reconnection",ON_TRACK:"ontrack",ICE_CONNECTION_STATE:"iceConnectionState",LOCAL_STREAM_INITIALIZE:"stream-initialize",SIGNAL_CONNECTION:"websocketConnectionState",SIGNAL_RECONNECTION:"websocketReconnectionState",UPDATE_STREAM:"update-stream",RECOVER_LOCAL_AUDIO_TRACK:"recover-local-audio-track",RECOVER_LOCAL_VIDEO_TRACK:"recover-local-video-track",RECOVER_SUBSCRIPTION:"recover-subscription",START_MIX_TRANSCODE:"start-mix-transcode",STOP_MIX_TRANSCODE:"stop-mix-transcode",PLAYER_ERROR:"player-error",SCHEDULE:"schedule",LOAD_WORKLET:"load-worklet",VIDEO_FROZEN_COUNT:"videoFrozenCount",GET_USER_MEDIA_RETRY:"getUserMedia-retry"},CT=1e4,DT=1e4,NT=1e4,cp="unified-plan",wT="plan-b",xT=1028,Gf=(r=>(r[r.UNPUBLISH=-1]="UNPUBLISH",r[r.PUBLISHING=0]="PUBLISHING",r[r.PUBLISHED=1]="PUBLISHED",r))(Gf||{}),id=500,MT=1e3,OT=D.BIG,PT=D.SMALL,kT=10*1e3,hi={MAIN:"schedule.cloud-rtc.com",BACKUP:"schedule.cloud-rtc.net",MAIN_OVERSEA:"schedule.rtc-web.com",BACKUP_OVERSEA:"schedule.rtc-web.io",MAIN_OVERSEA_BACKUP:"intl-schedule.cloud-rtc.com"},LT=2e3,UT={TRTC:"TRTC",CLIENT:"Client",LOCAL_STREAM:"LocalStream",REMOTE_STREAM:"RemoteStream",STREAM:"Stream"},dp=5,Eo="default",Qn=Eo,VT="communications",BT=Object.keys(br),jf=["normal leave","timeout leave","kick","role change"],FT=10,Es=2e3,up="ric",lp="raf",To="interval",Ts="timeout",od=["width","height","frameRate","facingMode","sampleRate","sampleSize","channelCount","deviceId","min","max"],Yn=10*1e3;var zf=function(){return new URLSearchParams(location.search).get("trtc_env")||""},Kn=i=>Number(i)<14e8,fi=function(i,t){let e;Jn?e=Jn:e=Kn(i)?op:ip;let r=Math.floor(Math.random()*Gn(2,31));return`${e}/v5/AVQualityReportSvc/C2S?random=${r}&sdkappid=${i}&cmdtype=${t}`},Zn="unknown";function ea(){if(Zn!=="unknown")return Zn;let{userAgent:i,connection:t}=navigator,e=(i.match(/NetType\/\S+/)||[])[0]||"";e=e.toLowerCase().replace("nettype/",""),e==="3gnet"&&(e="3g");let r=t&&t.type&&t.type.toLowerCase(),o=t&&t.effectiveType&&t.effectiveType.toLowerCase();return o==="slow-2"&&(o="2g"),r&&(Zn=Jf(r,o)),Zn}function Jf(i,t){if(go[i])return i;switch(i){case"cellular":case"wimax":return t||"unknown";case"ethernet":return"wired";case"none":case"other":default:return"unknown"}}function Xf(i){Zn=Jf(i)}function sd(){return go[ea()]}function Qf(i,t){for(let e of Reflect.ownKeys(t))if(e!=="constructor"&&e!=="prototype"&&e!=="name"){let r=Object.getOwnPropertyDescriptor(t,e)||"";Object.defineProperty(i,e,r)}return i}function Yf(i,t=48e3){return mp(i/4,t)}function mp(i,t=48e3){return i*1e3/t}function Zf(i,t=48e3){return hp(i,t)*4}function hp(i,t=48e3){return i*t/1e3}var ta=typeof window!="undefined"&&typeof window.glog=="function"?window.glog:()=>{},vr=()=>{let i=navigator.language;return i=i.substring(0,2),i==="zh"},Ft=function(i){if(!i||typeof i!="object"||Object.prototype.toString.call(i)!="[object Object]")return!1;let t=Object.getPrototypeOf(i);if(t===null)return!0;let e=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Function.prototype.toString.call(e)===Function.prototype.toString.call(Object)};function So(i,t=1,e=1){return i<=1?e:So(i-1,e,t+e)}function Kf(i){return i>8?30*1e3:So(i)*1e3}function mt(i){return Reflect.apply(Object.prototype.toString,i,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}var Ve=i=>typeof i=="function",L=i=>typeof i=="undefined",Ae=i=>typeof i=="string",Fe=i=>typeof i=="number",nt=i=>typeof i=="boolean",lr=i=>mt(i)==="object",rt=i=>mt(i)==="array",e_=i=>mt(i)==="MediaStreamTrack".toLowerCase(),t_=i=>i.isRemote,Li=i=>mt(i)==="promise",Is=i=>Ve(i)&&i.prototype.constructor===i,ra=i=>Is(i)?i.prototype.constructor.name:"",r_=typeof AudioWorkletNode!="undefined";function nd(i){return new Promise((t,e)=>{let r=[];i.forEach(o=>{o.then(t).catch(s=>{r.push(s),r.length===i.length&&e(r)})})})}function ge(){return!performance||!performance.now?Date.now():Math.floor(performance.now())}var qf=i=>+i<10?`0${i}`:i,i_=i=>{let t=i.match(/^\d+\.\d+\.\d+/)[0];if(!t)return i;let e=t.split("."),r=qf(e[1])+qf(e[2]);return e[1]-15>0&&(e[1]="15"),e[2]-15>0&&(e[2]="15"),`${e.join(".")}.${r}`},$T=Object.prototype.hasOwnProperty,{toString:FA}=Object.prototype;function ad(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(Ft(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":{for(let t in i)if($T.call(i,t))return!1;return!0}}return!1}function ia(i,t){return{userId:t,hasAudio:!!(i&gs),hasVideo:!!(i&_s),hasAuxiliary:!!(i&Xn),hasSmall:!!(i&np),audioMuted:!!(i&td),videoMuted:!!(i&rd),audioAvailable:!!(i&gs)&&!(i&td),videoAvailable:!!(i&_s)&&!(i&rd)}}function o_(i){let t={urls:i.url.startsWith("turn:")||i.url.startsWith("turns:")?i.url:`turn:${i.url}`};return!L(i.username)&&!L(i.credential)&&(t.username=i.username,t.credential=i.credential,t.credentialType="password",L(i.credentialType)||(t.credentialType=i.credentialType)),t}function Ss(i,t=!0){if(!Ae(i))return 0;let e=i.split(".");return t?(Number(e[0])<<24|Number(e[1])<<16|Number(e[2])<<8|Number(e[3]))>>>0:(Number(e[3])<<24|Number(e[2])<<16|Number(e[1])<<8|Number(e[0]))>>>0}var Wr=function(i,t,e,r){if(!(lr(i)&&lr(t)))return 0;let o=0,s=Object.keys(t),a;for(let d=0,h=s.length;d<h;d++)if(a=s[d],!(L(t[a])||e&&e.includes(a)))if(lr(i[a])&&lr(t[a]))o+=Wr(i[a],t[a],e,r);else{if(r&&r.includes(t[a]))continue;i[a]!==t[a]&&(i[a]=Io(t[a]),o+=1)}return o};function Io(i){if(rt(i)){let t=[];return i.forEach((e,r)=>{t[r]=Io(e)}),t}if(lr(i)){let t={};return Object.keys(i).forEach(e=>{t[e]=Io(i[e])}),t}return i}var ys=i=>{let t=[];if(rt(i))t=[...i];else if(Ae(i)){let e=document.getElementById(i);e&&t.push(e)}else i&&t.push(i);return t},s_=i=>Ae(i)?document.getElementById(i):i,HT=i=>{let t=h=>h<10?`0${h}`:`${h}`,e=i.getFullYear(),r=i.getMonth()+1,o=i.getDate(),s=t(i.getHours()),a=t(i.getMinutes()),d=t(i.getSeconds());return`${e}/${r}/${o} ${s}:${a}:${d}`},cd=()=>HT(new Date);function pr(i,{keysToInclude:t,keysToExclude:e}){try{if(rt(i))return`[${i.map(a=>pr(a,{keysToInclude:t,keysToExclude:e})).join(",")}]`;if(!Ft(i)||!rt(t)&&!rt(e))return JSON.stringify(i);let r={},o=new Set(t),s=new Set(e);return Object.keys(i).forEach(a=>{(s.size===0&&o.has(a)||o.size===0&&!s.has(a))&&(r[a]=Ft(i[a])||rt(i[a])?JSON.parse(pr(i[a],{keysToExclude:e,keysToInclude:t})):i[a])}),JSON.stringify(r)}catch(r){return"{}"}}function dd(i,t=!1){let e=[];return Object.keys(i).forEach(r=>{t===i[r]&&e.push(r)}),pr(i,{keysToInclude:e})}function n_(i){return i.replace(/[\u4e00-\u9fa5]/g,"aa").length}var ud=()=>{var i,t,e,r;return(i=window.screen)!=null&&i.orientation?!!((r=(e=(t=window.screen)==null?void 0:t.orientation)==null?void 0:e.type)!=null&&r.includes("portrait")):window.orientation===0||window.orientation===180},As=i=>v(void 0,null,function*(){return new Promise((t,e)=>{let r;if(Ae(i))r=new Image,r.crossOrigin="anonymous",r.src=i;else if(r=i,r.complete){t(r);return}r.onload=()=>t(r),r.onerror=()=>{e(new de({code:Y.INVALID_PARAMETER,message:`load image failed, url: ${i}`}))}})}),ld=i=>{let t=i.split(".");return+t[0]<<24|+t[1]<<16|+t[2]<<8|+t[3]<<0},oa=i=>(Object.keys(i).forEach(t=>{Fe(i[t])&&(t.startsWith("uint")||t.startsWith("int"))?i[t]=Math.floor(i[t]):(Ft(i[t])||rt(i[t]))&&oa(i[t])}),i);function sa(i,t){return new Promise(e=>{let r=setTimeout(e,i);t&&t(r)})}function pd(i,t){let e=null;return function(...r){return e||(e=i.apply(t||this,r),e.finally(()=>e=null),e)}}function _i({url:i,body:t,method:e="POST",timeout:r,priority:o}){return new Promise((s,a)=>{if("fetch"in window)return fetch(i,{method:e,body:t,priority:o}).then(h=>h.text()).then(h=>{try{s({data:JSON.parse(h)})}catch(p){s({data:h})}},a);let d=new XMLHttpRequest;d.onreadystatechange=()=>{if(d.readyState===4)if(d.status>=200&&d.status<300)try{let h=JSON.parse(d.response);s({data:h})}catch(h){s({data:d.response})}else a({status:d.status,statusText:d.statusText||"request failed!"})},d.timeout=r||5e3,d.open(e,i,!0),d.send(t)})}function fp(i){return v(this,null,function*(){let t=ge(),e=JSON.stringify(i);try{if(!CompressionStream||e.length<=2800)return e;let o=new Blob([e],{type:"application/json"}).stream().pipeThrough(new CompressionStream("gzip")),d=yield(yield(yield new Response(o)).blob()).arrayBuffer();return V.debug(`compressJSON ${e.length} -> ${d.byteLength} ${ge()-t}ms`),d}catch(r){return e}})}var WT=Object.prototype.hasOwnProperty;var Ui=i=>typeof i=="function",a_=i=>typeof i=="undefined";var c_=i=>typeof i=="boolean";var _p=i=>i.isRemote;var GT=function(i){if(!i||typeof i!="object"||Object.prototype.toString.call(i)!="[object Object]")return!1;let t=Object.getPrototypeOf(i);if(t===null)return!0;let e=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Function.prototype.toString.call(e)===Function.prototype.toString.call(Object)};function d_(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(GT(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":{for(let t in i)if(WT.call(i,t))return!1;return!0}}return!1}var jT=0,qT=1,u_=2;function zT({retryFunction:i,settings:t,onError:e,onRetrying:r,onRetryFailed:o,onRetrySuccess:s,context:a}){return function(...d){let{retries:h=5,timeout:p=1e3}=t,T=0,y=-1,R=jT,N=(j,W)=>v(this,null,function*(){let F=a||this;try{let Ie=yield i.apply(F,d);T>0&&s&&s.call(this,T),T=0,j(Ie)}catch(Ie){let Vt=()=>{clearTimeout(y),T=0,R=u_,W(Ie)},Xe=()=>{R!==u_&&T<(Ui(h)?h():h)?(T++,R=qT,Ui(r)&&r.call(this,T,Vt),y=window.setTimeout(()=>{y=-1,N(j,W)},Ui(p)?p(T):p)):(Vt(),Ui(o)&&o.call(this,Ie))};Ui(e)?e.call(this,{error:Ie,retry:Xe,reject:W,retryFuncArgs:d,retriedCount:T}):Xe()}});return new Promise(N)}}var Vi=zT;var bs=class{constructor(t){l(this,"userId");l(this,"remoteUserId");l(this,"id");l(this,"sdkAppId");l(this,"type");l(this,"isLocal");this.id=t.id,this.userId=t.userId,this.sdkAppId=t.sdkAppId,this.remoteUserId=t.remoteUserId,this.isLocal=c_(t.isLocal)?t.isLocal:!0,this.type=this.isLocal?"":t.type}createChild(t){return Object.setPrototypeOf(t,this)}setUserId(t){this.userId=t}setSdkAppId(t){this.sdkAppId=t}log(t,e){let r=this.isLocal?this.userId:this.remoteUserId;e.unshift(`[${this.isLocal?"\u2191":"\u2193"}${this.type&&this.type!=="main"?"*":""}${this.id}${r?`|${r}`:""}]`),V.log(t,e,a_(this.userId)||d_(this.userId),this.userId,this.sdkAppId)}info(...t){this.log(2,t)}debug(...t){this.log(1,t)}warn(...t){this.log(3,t)}error(...t){this.log(4,t)}};var ks={};li(ks,{ANDROID_VERSION:()=>Tp,CHROME_MAJOR_VERSION:()=>gi,CHROME_VERSION:()=>Nd,EDGE_VERSION:()=>hd,EDG_MAJOR_VERSION:()=>Sp,EDG_VERSION:()=>fd,FIREFOX_MAJOR_VERSION:()=>Ip,FIREFOX_VERSION:()=>md,HUAWEI_VERSION:()=>vd,IE_VERSION:()=>ZT,IOS_MAIN_VERSION:()=>rr,IOS_VERSION:()=>$i,IPADQQB_VERSION:()=>Ad,IS_ANDROID:()=>ft,IS_ANDROID_WEBVIEW:()=>Cp,IS_ANY_SAFARI:()=>Bi,IS_CHROME:()=>Os,IS_CHROME_OS:()=>yp,IS_CHROMIUM_BASE:()=>bo,IS_EDG:()=>Cs,IS_EDGE:()=>Rs,IS_ELECTRON:()=>eI,IS_FIREFOX:()=>Cr,IS_HEADLESS_CHROME:()=>Rp,IS_HONOR:()=>vp,IS_HUAWEI:()=>bp,IS_HUAWEIBROWSER:()=>fa,IS_IE:()=>h_,IS_IE8:()=>YT,IS_IOS:()=>$t,IS_IOS_13_OR_14:()=>Np,IS_IOS_15_1:()=>Dp,IS_IPAD:()=>na,IS_IPADQQB:()=>pa,IS_IPAD_PRO:()=>Ep,IS_IPHONE:()=>yo,IS_IPOD:()=>m_,IS_LINUX:()=>ma,IS_LOCAL:()=>wr,IS_MAC:()=>Nr,IS_MACQQB:()=>la,IS_MIBROWSER:()=>ha,IS_MQQB:()=>ws,IS_NATIVE_ANDROID:()=>QT,IS_OLD_ANDROID:()=>XT,IS_OPPOBROWSER:()=>xs,IS_SAFARI:()=>Ht,IS_SAFARI_15_1:()=>tI,IS_SAMSUNGBROWSER:()=>_a,IS_SOGOU:()=>ca,IS_SOGOUM:()=>aa,IS_TBS:()=>Dr,IS_UCBROWSER:()=>Ap,IS_VIVOBROWSER:()=>Ms,IS_WECHAT:()=>Ds,IS_WIN:()=>Ao,IS_WQQB:()=>ua,IS_WX:()=>KT,IS_X5MQQB:()=>Ns,IS_XWEB:()=>da,MACQQB_VERSION:()=>yd,MI_VERSION:()=>bd,MQQB_VERSION:()=>vs,OPPO_VERSION:()=>Cd,SAFARI_VERSION:()=>Fi,SAMSUNG_VERSION:()=>Rd,SOGOUM_VERSION:()=>_d,SOGOU_VERSION:()=>gd,TBS_VERSION:()=>Ed,UA_DATA_STRING:()=>Rr,USER_AGENT:()=>tr,VIVO_VERSION:()=>Dd,WECHAT_VERSION:()=>Id,WQQB_VERSION:()=>Sd,XWEB_VERSION:()=>Td,browserInfo:()=>jr,getBrowserInfo:()=>f_,getChromeMajorVersion:()=>ga,getDeviceModel:()=>Ta,getOSName:()=>Ps,getOSNumber:()=>Ia,getOSString:()=>vo,getOSType:()=>xp,getTerminalType:()=>wp,getUserAgentData:()=>Ea,isLocalStorageEnabled:()=>Ei});var tr=typeof navigator=="undefined"?"":navigator.userAgent,Ee=i=>new RegExp(i,"i").test(tr),ht=i=>{if(Ee(i)){let t=new RegExp(`${i}\\/([\\d.]+)`),e=tr.match(t);if(e&&e[1])return e[1]}return""},gp=i=>{if(Ee(i)){let t=new RegExp(`${i}\\/(\\d+)`),e=tr.match(t);if(e&&e[1])return parseFloat(e[1])}return NaN},l_=/AppleWebKit\/([\d.]+)/i.exec(tr),JT=l_?parseFloat(l_[1]):NaN,na=Ee("iPad"),Ep=typeof navigator!="undefined"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&Ee("Macintosh"),yo=Ee("iPhone")&&!na,m_=Ee("iPod"),$t=yo||na||m_||Ep,ft=Ee("Android"),Tp=function(){if(ft){let i=tr.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(i){let t=i[1]&&parseFloat(i[1]),e=i[2]&&parseFloat(i[2]);if(t&&e)return parseFloat(`${i[1]}.${i[2]}`);if(t)return t}}return NaN}(),XT=ft&&Ee("webkit")&&Tp<2.3,QT=ft&&Tp<5&&JT<537,Cr=Ee("Firefox"),md=ht("Firefox"),Ip=gp("Firefox"),Rs=Ee("Edge"),hd=ht("Edge"),Cs=Ee("Edg"),fd=ht("Edg"),Sp=gp("Edg"),aa=Ee("SogouMobileBrowser"),_d=ht("SogouMobileBrowser"),ca=Ee("MetaSr\\s"),gd=ht("MetaSr\\s"),Dr=Ee("TBS"),Ed=ht("TBS"),da=Ee("XWEB"),Td=ht("XWEB"),YT=Ee("MSIE\\s8\\.0"),h_=Ee("MSIE\\/\\d+"),ZT=function(){if(h_){let i=/MSIE\s(\d+)\.\d/.exec(tr),t=i&&parseFloat(i[1]);return!t&&/Trident\/7.0/i.test(tr)&&/rv:11.0/.test(tr)&&(t=11),t}return NaN}(),Ds=Ee("(micromessenger|webbrowser)"),Id=ht("MicroMessenger"),Ns=!Dr&&Ee("MQQBrowser")&&Ee("COVC"),ws=!Dr&&Ee("MQQBrowser")&&!Ee("COVC"),vs=ws||Ns?ht("MQQBrowser"):"",ua=!Dr&&Ee(" QQBrowser"),Sd=ht(" QQBrowser"),la=!Dr&&Ee("QQBrowserLite"),yd=ht("QQBrowserLite"),pa=!Dr&&Ee("MQBHD"),Ad=ht("MQBHD"),Ao=Ee("Windows"),Nr=!$t&&Ee("MAC OS X"),ma=!ft&&Ee("Linux"),yp=Ee("CrOS"),KT=Ee("MicroMessenger"),Ap=Ee("UCBrowser"),eI=Ee("Electron"),ha=Ee("MiuiBrowser"),bd=ht("MiuiBrowser"),fa=Ee("HuaweiBrowser"),bp=Ee("Huawei")||Ee("HUAWEI"),vp=Ee("Honor")||Ee("HONOR"),vd=ht("HuaweiBrowser"),_a=Ee("SamsungBrowser"),Rd=ht("SamsungBrowser"),xs=Ee("HeyTapBrowser"),Cd=ht("HeyTapBrowser"),Ms=Ee("VivoBrowser"),Dd=ht("VivoBrowser"),ga=()=>gp("Chrome"),bo=Ee("Chrome"),Os=!Rs&&!ca&&!aa&&!Dr&&!da&&!Cs&&!ua&&!ha&&!fa&&!_a&&!xs&&!Ms&&bo,Rp=Ee("HeadlessChrome"),gi=ga(),Nd=ht("Chrome"),Ht=!bo&&!ws&&!Ns&&!la&&!pa&&Ee("Safari"),Bi=Ht||$t,Fi=ht("Version"),Cp=/Android.*(wv|.0.0.0)/.test(tr),$i=(()=>{if(Ep)return Fi;if($t){let i=tr.match(/OS (\d+)_(\d+)/i);if(i&&i[1]){let t=i[1];return i[2]&&(t+=`.${i[2]}`),t}}return""})(),rr=Number($i.split(".")[0]),tI=Fi==="15.1",Dp=$i==="15.1",Np=(()=>{let i=Number($i.split(".")[0]);return i===14||i===13})(),wr=typeof location=="undefined"?!1:location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1",Ei=(()=>{let i;return()=>{if(typeof i=="undefined")try{i=!!window.localStorage}catch(t){i=!1}return i}})(),jr=f_();function f_(){let i=new Map([[Cr,["Firefox",md]],[Cs,["Edg",fd]],[Os,["Chrome",Nd]],[Ht,["Safari",Fi]],[Dr,["TBS",Ed]],[da,["XWEB",Td]],[Ds&&yo,["WeChat",Id]],[ua,["QQ(Win)",Sd]],[ws,["QQ(Mobile)",vs]],[Ns,["QQ(Mobile X5)",vs]],[la,["QQ(Mac)",yd]],[pa,["QQ(iPad)",Ad]],[ha,["MI",bd]],[fa,["HW",vd]],[_a,["Samsung",Rd]],[xs,["OPPO",Cd]],[Ms,["VIVO",Dd]],[Rs,["EDGE",hd]],[aa,["SogouMobile",_d]],[ca,["Sogou",gd]]]),t="unknown",e="unknown";return i.has(!0)&&([t,e]=i.get(!0)),{name:t,version:e}}var Be=null,Rr="";function Ea(){return v(this,null,function*(){if(Be)return Be;if(!navigator.userAgentData||typeof navigator.userAgentData.getHighEntropyValues!="function")return null;try{return Be=yield navigator.userAgentData.getHighEntropyValues(["architecture","bitness","model","platformVersion","fullVersionList"]),Be&&!Rr&&(Rr=`UAData: ${Be.platform}/${Be.platformVersion}`,Be.architecture&&Be.bitness&&(Rr+=` ${Be.architecture}/${Be.bitness}`),Be.mobile&&(Rr+=" mobile"),Be.model&&(Rr+=` model: ${Be.model}`),Be.fullVersionList&&(Rr+=` ${Be.fullVersionList.filter(i=>i.brand!=="Not/A)Brand").map(i=>`${i.brand}/${i.version}`).join(",")}`)),Be}catch(i){return null}})}function Ta(){return(Be==null?void 0:Be.model)||""}var p_=new Map([[ft,"Android"],[$t,"iOS"],[Ao,"Windows"],[Nr,"MacOS"],[ma,"Linux"],[yp,"ChromeOS"]]),Ps=function(){return p_.get(!0)?p_.get(!0):Be?Be.platform:"unknown"};function Ia(){return Ao?1:ft?2:Nr?3:$t?4:ma?5:yp?6:0}var vo=()=>{let i=Ps();return i+=`/${jr.name}/${Ht?jr.version:jr.version.split(".")[0]}`,Be!=null&&Be.platformVersion&&(i+=`/${Be.platformVersion}`),Be!=null&&Be.architecture&&(i+=`/${Be.architecture}`),i};function wp(){return ft?4:yo?2:na?3:Nr?12:Ao?5:ma?13:1}function xp(){return ft?"Android":yo?"iPhone":na?"iPad":Nr?"Mac":Ao?"Windows":ma?"Linux":"unknown"}var g_=Pi(Hi(),1),oI=new g_.default,B=oI;var Ro=(se=>(se.ROOM_DESTROY="1",se.JOIN_START="21",se.JOIN_SCHEDULE_SUCCESS="22",se.JOIN_SIGNAL_CONNECTION_START="23",se.JOIN_SIGNAL_CONNECTION_END="24",se.JOIN_SEND_CMD="25",se.JOIN_RECEIVED_CMD_RES="26",se.JOIN_SUCCESS="27",se.JOIN_FAILED="28",se.LEAVE_START="51",se.LEAVE_SEND_CMD="52",se.LEAVE_SUCCESS="53",se.PUBLISH_START="61",se.SEND_FIRST_VIDEO_FRAME="62",se.PUBLISH_FAILED="63",se.SUBSCRIBE_START="81",se.SUBSCRIBE_SUCCESS="82",se.SUBSCRIBE_FAILED="84",se.UNSUBSCRIBE_SUCCESS="83",se.LOCAL_TRACK_CAPTURE_START="101",se.LOCAL_TRACK_CAPTURE_SUCCESS="102",se.LOCAL_TRACK_CAPTURE_FAILED="103",se.LOCAL_TRACK_PUBLISHED="104",se.LOCAL_TRACK_UNPUBLISHED="105",se.LOCAL_TRACK_REPLACED="106",se.SWITCH_DEVICE_SUCCESS="107",se.TRACK_MUTED="108",se.TRACK_UNMUTED="109",se.REMOTE_TRACK_SUBSCRIBED="110",se.REMOTE_TRACK_UNSUBSCRIBED="111",se.LOCAL_TRACK_RECAPTURE="112",se.PLAY_TRACK_START="151",se.PLAYER_STATE_CHANGED="152",se.VIDEO_LOADED_DATA="153",se.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",se.SIGNAL_CONNECTION_STATE_CHANGED="201",se.PEER_CONNECTION_STATE_CHANGED="202",se.SINGLE_CONNECTION_STAT="203",se.SPC_RECONNECTED="204",se.HEARTBEAT_REPORT="251",se.RECEIVED_PUBLISHED_USER_LIST="252",se.REMOTE_PUBLISH_STATE_CHANGED="253",se.AUDIO_LEVEL_INTERVAL="260",se.NETWORK_QUALITY="261",se.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",se.QUALITY_LIMITATION_CHANGED="263",se.LOG="264",se))(Ro||{});var O=Ro;var sI="%cTRTC%c%s",nI="padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;",aI="display: inline",cI=!($t||ft||Rp),Op=class{constructor(){l(this,"_isEnableUploadLog",!0);l(this,"_localJoinedUser",new Map);l(this,"_queue",[]);l(this,"_timeoutId",-1);l(this,"_logLevel",1);l(this,"_logLevelToUpload",2);!fs&&!zn&&(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&this._timeoutId!==-1}installEvents(){B.on(O.JOIN_SCHEDULE_SUCCESS,({schedule:t})=>{var e;((e=t==null?void 0:t.config)==null?void 0:e.logLevelToUpload)&&br[t.config.logLevelToUpload]&&(this._logLevelToUpload=t.config.logLevelToUpload)}),B.on(O.JOIN_SUCCESS,({room:t})=>{this.addJoinedUser({userId:t.userId,sdkAppId:t.sdkAppId}),this.startUpload()}),B.once(O.JOIN_FAILED,()=>{this.startUpload()}),B.on(O.LEAVE_SUCCESS,({room:t})=>{this.deleteJoinedUser(t.userId)})}startUpload(){this._timeoutId===-1&&this.uploadInterval()}addJoinedUser(t){this._localJoinedUser.set(t.userId,t),this.startUpload()}deleteJoinedUser(t){this._localJoinedUser.delete(t)}uploadInterval(){this.upload().catch(()=>{}),this._timeoutId=window.setTimeout(()=>this.uploadInterval(),5e3)}getLogsToUpload(){let t={map:new Map,splicedQueue:[]};if(this._queue[0].forAllJoinedClients&&this._localJoinedUser.size===0)return t;let e=0;for(;e<this._queue.length&&e!==50;e++){let r=this._queue[e];if(r.forAllJoinedClients)this._localJoinedUser.forEach(({userId:o,sdkAppId:s})=>{t.map.has(o)?t.map.get(o).logs.push(r):t.map.set(o,{userId:o,sdkAppId:s,logs:[r]})});else if(Ae(r.userId)&&Fe(r.sdkAppId)){let{userId:o,sdkAppId:s}=r;t.map.has(o)?t.map.get(o).logs.push(r):t.map.set(o,{userId:o,sdkAppId:s,logs:[r]})}}return t.map.size>0&&(t.splicedQueue=this._queue.splice(0,e)),t}upload(){return v(this,null,function*(){if(this._queue.length===0||!this._isEnableUploadLog)return;let{map:t,splicedQueue:e}=this.getLogsToUpload();if(t.size===0)return;try{let o=[...t.values()];for(let s=0;s<o.length;s++){let{userId:a,sdkAppId:d,logs:h}=o[s];yield this.uploadLogWithRetry(JSON.stringify({timestamp:Xc(),sdkAppId:String(d),userId:a,version:Ke,log:h.map(p=>p.log).join(`
4
- `)}),d),h.forEach(p=>p.uploaded=!0)}}catch(o){}let r=e.filter(o=>!o.uploaded);r.length>0&&(this._queue=r.concat(this._queue))})}uploadLogWithRetry(t,e){return Vi({retryFunction:()=>_i({url:fi(e,ki.LOG),body:t,timeout:5e3,priority:"low"}),settings:{retries:3,timeout:2e3},onError:({retry:r})=>{r()}})()}getPrefix(t){let e=new Date;e.setTime(qn());let r=String(e.getMilliseconds());return"padStart"in String.prototype&&(r=r.toString().padStart(3,"0")),`[${e.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/,"$1")}:${r}] <${br[t]}>`}getLogLevel(){return this._logLevel}setLogLevel(t){L(br[t])||(this._logLevel!==t&&this.info("setLogLevel",t),this._logLevel=t)}enableUploadLog(){this._isEnableUploadLog=!0}disableUploadLog(){this.warn("disableUploadLog"),this._isEnableUploadLog=!1}logChunkToString(t){if(Ae(t))return t;try{return t instanceof Error?t.toString():JSON.stringify(t)}catch(e){return""}}log(t,e,r=!0,o,s){var h;e.unshift(this.getPrefix(t));let a={log:e.reduce((p,T)=>`${p} ${this.logChunkToString(T)}`.trim(),""),level:t,userId:o,sdkAppId:s,forAllJoinedClients:r};if(B.emit(O.LOG,{log:a}),this._isEnableUploadLog&&t>=this._logLevelToUpload&&this._queue.push(a),t<this._logLevel)return;let d=((h=br[t])==null?void 0:h.toLowerCase())||"info";cI?console[d](sI,nI,aI,...e):console[d](...e)}debug(...t){this.log(1,t)}info(...t){this.log(2,t)}warn(...t){this.log(3,t)}error(...t){this.log(4,t)}createLogger(t){return new bs(t)}checkURLParam(){let e=new URLSearchParams(location.search).get("logLevelToUpload"),r=e?Number(e):-1;br[r]&&(this._logLevelToUpload=r)}getQueue(){return this._queue}},V=new Op;var dI=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,i=>{let t=Math.random()*16|0;return(i=="x"?t:t&3|8).toString(16)})},ya=dI;var Pp=class{constructor(){l(this,"_prefix","TRTC");l(this,"_queue",new Map)}getRealKey(t){return`${this._prefix}_${t}`}checkStorage(){if(!Ei())return;setInterval(this.doFlush.bind(this),2e4),Object.keys(localStorage).filter(r=>{if(r.startsWith(this._prefix))try{let o=localStorage.getItem(r);if(!o)return!1;let s=JSON.parse(o);if(s&&s.expiresIn<Date.now())return!0}catch(o){return!1}return!1}).forEach(r=>localStorage.removeItem(r))}doFlush(){if(!!Ei())try{for(let[t,e]of this._queue)localStorage.setItem(t,JSON.stringify(e))}catch(t){V.warn(t)}}getItem(t){if(!Ei())return null;try{let e=localStorage.getItem(this.getRealKey(t));if(!e)return null;let r=JSON.parse(e);return r&&r.expiresIn>=Date.now()?r.value:null}catch(e){V.warn(e)}}setItem(t,e){if(!!Ei())try{let r={expiresIn:Date.now()+Yc,value:e};this._queue.set(this.getRealKey(t),r)}catch(r){V.warn(r)}}deleteItem(t){if(!Ei())return!1;try{return t=this.getRealKey(t),this._queue.delete(t),localStorage.removeItem(t),!0}catch(e){return V.warn(e),!1}}clear(){if(!!Ei())try{localStorage.clear()}catch(t){V.warn(t)}}},Ls=new Pp;var Gi={};li(Gi,{HTTPS_API:()=>RI,IS_GET_CAPABILITIES_SUPPORTED:()=>im,IS_GET_SETTINGS_SUPPORTED:()=>Fs,IS_GET_SYNCHRONIZATION_SOURCES_SUPPORTED:()=>kI,IS_INSERTABLE_STREAM_SUPPORTED:()=>xa,IS_JITTER_BUFFER_TARGET_SUPPORTED:()=>BI,IS_RTC_RTP_SENDER_SUPPORTED:()=>wa,IS_SCRIPT_TRANSFORM_SUPPORTED:()=>j_,IS_SEI_SUPPORTED:()=>Ma,IS_SPC_SUPPORTED:()=>xI,basis:()=>UI,capabilityCheck:()=>sm,checkSystemRequirementsInternal:()=>Wd,decodeSupportStatus:()=>V_,encodeSupportStatus:()=>em,getBrowserInfo:()=>$d,getDisplayResolution:()=>B_,isAddTransceiverSupported:()=>G_,isBrowserSupported:()=>tm,isGetReceiversSupported:()=>NI,isGetSendersSupported:()=>W_,isGetTransceiversSupported:()=>wI,isGetUserMediaSupported:()=>F_,isMediaDevicesSupported:()=>Hd,isMediaSessionSupported:()=>z_,isMediaStreamTrackProcessorSupported:()=>rm,isReplaceTrackSupported:()=>OI,isRequestVideoFrameCallbackSupported:()=>Mo,isSIMDSupported:()=>LI,isScreenCaptureApiAvailable:()=>Da,isSelectedCandidatePair:()=>CI,isSetParametersSupported:()=>PI,isSmallStreamAPISupported:()=>H_,isSmallStreamSupported:()=>Na,isStopTransceiverSupported:()=>MI,isTRTCSupported:()=>bI,isUnifiedPlanDefault:()=>DI,isUsedInHttpProtocol:()=>Ai,isWebAudioSupported:()=>$_,isWebCodecSupported:()=>q_,isWebCodecsSupported:()=>U_,isWebRTCSupported:()=>om,isWebTransportSupported:()=>J_});var qp={};li(qp,{AUDIO_LEVEL_SCALE:()=>Ii,AudioCodecPipelineType:()=>Ld,AudioDecoderDowngradeState:()=>Up,AudioPlayerMode:()=>$p,AudioType:()=>Bp,BASIC_TYPE:()=>No,BannedReason:()=>Hp,CONNECTION_CLOSED_REASON:()=>T_,ClientEvent:()=>kp,CodecType:()=>R_,ConnectionEvent:()=>E_,ConnectionState:()=>Md,DECODE_FAILED_ERROR_CODE:()=>jp,FacingMode:()=>Pd,LeaveReason:()=>Wp,LocalTrackEvent:()=>xd,MULTI_VIDEO_DATA_TYPE:()=>Ti,MediaType:()=>St,MediaTypeLabel:()=>uI,MonitorEventId:()=>ba,MutedFlag:()=>S_,NetworkQualityValue:()=>b_,PlayerState:()=>Us,ReceiveMode:()=>v_,RemoteStreamType:()=>qr,RemoteTrackEvent:()=>Vs,RoomEvent:()=>Co,SceneNumber:()=>Lp,StreamEvent:()=>I_,StreamType:()=>A_,SubscribeMediaType:()=>Aa,TRACK_ACTION:()=>y_,TRACK_KIND:()=>Vp,TrackEvent:()=>Wi,UserRole:()=>Wt,UserRoleNumber:()=>Do,VideoCodec:()=>Gp,VideoCodecPipelineType:()=>va,VideoContentHint:()=>Ra,VideoDecoderDowngradeState:()=>Od,VideoPlayerMode:()=>kd,VideoType:()=>Fp});var E_=(W=>(W.TRACK_ADDED="track-added",W.TRACK_UPDATED="track-updated",W.TRACK_SUBSCRIBED="track-subscribed",W.STREAM_ADDED="stream-added",W.STREAM_REMOVED="stream-removed",W.STREAM_UPDATED="stream-updated",W.STREAM_PUBLISHED="stream-published",W.STREAM_SUBSCRIBED="stream-subscribed",W.STREAM_UNSUBSCRIBED="stream-unsubscribed",W.STATE_CHANGED="state-changed",W.ERROR="error",W.CONNECTION_STATE_CHANGED="connection-state-changed",W.FIREWALL_RESTRICTION="firewall-restriction",W.SEI_MESSAGE="sei-message",W.CLOSED="closed",W))(E_||{}),T_=(a=>(a.REMOTE_LEAVE="remote user exitRoom",a.REMOTE_UNPUBLISH="remote user unpublished",a.LOCAL_LEAVE="you exitRoom",a.LOCAL_UNPUBLISH="you unpublished",a.LOCAL_UNSUBSCRIBE="you unsubscribed",a.SWITCH_ROLE="you switch role to audience",a))(T_||{}),kp=(F=>(F.STREAM_ADDED="stream-added",F.STREAM_REMOVED="stream-removed",F.STREAM_UPDATED="stream-updated",F.STREAM_SUBSCRIBED="stream-subscribed",F.CONNECTION_STATE_CHANGED="connection-state-changed",F.PEER_JOIN="peer-join",F.PEER_LEAVE="peer-leave",F.MUTE_AUDIO="mute-audio",F.MUTE_VIDEO="mute-video",F.UNMUTE_AUDIO="unmute-audio",F.UNMUTE_VIDEO="unmute-video",F.CLIENT_BANNED="client-banned",F.NETWORK_QUALITY="network-quality",F.AUDIO_VOLUME="audio-volume",F.SEI_MESSAGE="sei-message",F.ERROR="error",F))(kp||{}),I_=(s=>(s.PLAYER_STATE_CHANGED="player-state-changed",s.SCREEN_SHARING_STOPPED="screen-sharing-stopped",s.CONNECTION_STATE_CHANGED="connection-state-changed",s.DEVICE_AUTO_RECOVERED="device-auto-recovered",s.ERROR="error",s))(I_||{}),xd=(a=>(a.DEVICE_AUTO_RECOVERED="1",a.DEVICE_RECOVER_FAILED="5",a.DEVICE_CHANGED="2",a.ERROR="3",a.PUBLISH_STATE_CHANGED="4",a.ENCODE_FAILED="6",a))(xd||{}),Us=(r=>(r.PAUSED="PAUSED",r.PLAYING="PLAYING",r.STOPPED="STOPPED",r))(Us||{}),Co=(F=>(F.PEER_JOIN="peer-join",F.PEER_LEAVE="peer-leave",F.SIGNAL_CONNECTION_STATE_CHANGED="signal-connection-state-changed",F.MEDIA_CONNECTION_STATE_CHANGED="media-connection-state-changed",F.BANNED="banned",F.NETWORK_QUALITY="network-quality",F.AUDIO_VOLUME="audio-volume",F.SEI_MESSAGE="sei-message",F.ERROR="error",F.REMOTE_PUBLISH_STATE_CHANGED="remote-publish-state-changed",F.REMOTE_PUBLISHED="remote-published",F.REMOTE_UNPUBLISHED="remote-unpublished",F.FIREWALL_RESTRICTION="firewall-restriction",F.HEARTBEAT_REPORT="heartbeat-report",F.CUSTOM_MESSAGE="custom-message",F.LAYER_DATA="layerData",F))(Co||{}),Wi=(a=>(a.PLAYER_STATE_CHANGED="player-state-changed",a.MUTE="mute",a.UNMUTE="unmute",a.ERROR="error",a.INPUT_MEDIA_TRACK_CHANGED="input-media-track-changed",a.OUTPUT_MEDIA_TRACK_CHANGED="output-media-track-changed",a))(Wi||{}),Vs=(e=>(e.DECODE_FAILED="decode-failed",e.DECODE_DOWNGRADE_STATE_CHANGED="decode-downgrade-state-changed",e))(Vs||{}),S_=(d=>(d[d.VIDEO=1]="VIDEO",d[d.SMALL=2]="SMALL",d[d.AUX=4]="AUX",d[d.AUDIO=8]="AUDIO",d[d.VIDEO_MUTE=16]="VIDEO_MUTE",d[d.AUX_MUTE=32]="AUX_MUTE",d[d.AUDIO_MUTE=64]="AUDIO_MUTE",d))(S_||{}),Lp=(e=>(e[e.RTC=1]="RTC",e[e.LIVE=2]="LIVE",e))(Lp||{}),Do=(e=>(e[e.ANCHOR=20]="ANCHOR",e[e.AUDIENCE=21]="AUDIENCE",e))(Do||{}),Wt=(e=>(e.ANCHOR="anchor",e.AUDIENCE="audience",e))(Wt||{}),Md=(s=>(s.CONNECTED="CONNECTED",s.DISCONNECTED="DISCONNECTED",s.CONNECTING="CONNECTING",s.RECONNECTED="RECONNECTED",s.RECONNECTING="RECONNECTING",s))(Md||{}),Up=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(Up||{}),Od=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(Od||{}),Vp=(r=>(r.AUDIO="audio",r.VIDEO="video",r.AUXILIARY="auxVideo",r))(Vp||{}),y_=(e=>(e.ADD="add",e.REMOVE="remove",e))(y_||{}),St=(s=>(s[s.NULL=0]="NULL",s[s.AUDIO=1]="AUDIO",s[s.AUX_VIDEO=2]="AUX_VIDEO",s[s.BIG_VIDEO=4]="BIG_VIDEO",s[s.SMALL_VIDEO=8]="SMALL_VIDEO",s))(St||{}),uI={[1]:"audio",[2]:"auxVideo",[4]:"video"},Bp=(t=>(t[t.opus=111]="opus",t))(Bp||{}),Fp=(e=>(e[e.h264=100]="h264",e[e.vp8=101]="vp8",e))(Fp||{}),A_=(e=>(e.Big="big",e.Small="small",e))(A_||{}),qr=(e=>(e.Main="main",e.Aux="auxiliary",e))(qr||{}),Ti=(s=>(s[s.MULTI_DATA_AUDIO=1]="MULTI_DATA_AUDIO",s[s.MULTI_DATA_BIG_IMG=2]="MULTI_DATA_BIG_IMG",s[s.MULTI_DATA_SMALL_IMG=3]="MULTI_DATA_SMALL_IMG",s[s.MULTI_DATA_AUX_IMG=7]="MULTI_DATA_AUX_IMG",s[s.MULTI_DATA_TYPE_BUTT=12]="MULTI_DATA_TYPE_BUTT",s))(Ti||{}),ba=(z=>(z[z.PUBLISH_VIDEO=32768]="PUBLISH_VIDEO",z[z.PUBLISH_AUDIO=32769]="PUBLISH_AUDIO",z[z.UNPUBLISH_VIDEO=32770]="UNPUBLISH_VIDEO",z[z.UNPUBLISH_AUDIO=32771]="UNPUBLISH_AUDIO",z[z.MUTE_AUDIO=32772]="MUTE_AUDIO",z[z.MUTE_VIDEO=32773]="MUTE_VIDEO",z[z.UNMUTE_AUDIO=32774]="UNMUTE_AUDIO",z[z.UNMUTE_VIDEO=32775]="UNMUTE_VIDEO",z[z.SUBSCRIBE_VIDEO=32776]="SUBSCRIBE_VIDEO",z[z.SUBSCRIBE_AUDIO=32777]="SUBSCRIBE_AUDIO",z[z.UNSUBSCRIBE_VIDEO=32778]="UNSUBSCRIBE_VIDEO",z[z.UNSUBSCRIBE_AUDIO=32779]="UNSUBSCRIBE_AUDIO",z[z.SWITCH_CAMERA=32780]="SWITCH_CAMERA",z[z.SWITCH_MICROPHONE=32781]="SWITCH_MICROPHONE",z[z.REPLACE_VIDEO=32782]="REPLACE_VIDEO",z[z.REPLACE_AUDIO=32783]="REPLACE_AUDIO",z[z.MUTE_REMOTE_VIDEO=32784]="MUTE_REMOTE_VIDEO",z[z.MUTE_REMOTE_AUDIO=32785]="MUTE_REMOTE_AUDIO",z[z.UNMUTE_REMOTE_VIDEO=32786]="UNMUTE_REMOTE_VIDEO",z[z.UNMUTE_REMOTE_AUDIO=32787]="UNMUTE_REMOTE_AUDIO",z[z.JOIN=32788]="JOIN",z[z.LEAVE=32789]="LEAVE",z[z.SIGNAL_DISCONNECTED=32790]="SIGNAL_DISCONNECTED",z[z.SIGNAL_CONNECTED=32791]="SIGNAL_CONNECTED",z[z.TRANSPORT_UPLINK_CONNECTED=32792]="TRANSPORT_UPLINK_CONNECTED",z[z.TRANSPORT_DOWNLINK_CONNECTED=32793]="TRANSPORT_DOWNLINK_CONNECTED",z[z.SIGNAl_RECONNECTING=32794]="SIGNAl_RECONNECTING",z[z.SIGNAL_RECONNECT_SUCCESS=32795]="SIGNAL_RECONNECT_SUCCESS",z[z.SIGNAL_RECONNECT_FAIL=32796]="SIGNAL_RECONNECT_FAIL",z[z.TRANSPORT_UPLINK_RECONNECTING=32797]="TRANSPORT_UPLINK_RECONNECTING",z[z.TRANSPORT_UPLINK_RECONNECT_SUCCESS=32798]="TRANSPORT_UPLINK_RECONNECT_SUCCESS",z[z.TRANSPORT_UPLINK_RECONNECT_FAIL=32799]="TRANSPORT_UPLINK_RECONNECT_FAIL",z[z.TRANSPORT_DOWNLINK_RECONNECTING=32800]="TRANSPORT_DOWNLINK_RECONNECTING",z[z.TRANSPORT_DOWNLINK_RECONNECT_SUCCESS=32801]="TRANSPORT_DOWNLINK_RECONNECT_SUCCESS",z[z.TRANSPORT_DOWNLINK_RECONNECT_FAIL=32802]="TRANSPORT_DOWNLINK_RECONNECT_FAIL",z[z.SUBSCRIBE_SMALL_VIDEO=32803]="SUBSCRIBE_SMALL_VIDEO",z[z.UNSUBSCRIBE_SMALL_VIDEO=32804]="UNSUBSCRIBE_SMALL_VIDEO",z[z.PUBLISH_AUX=32805]="PUBLISH_AUX",z[z.UNPUBLISH_AUX=32806]="UNPUBLISH_AUX",z[z.DEVICE_CAPTURE=2003]="DEVICE_CAPTURE",z[z.VIDEO_ENCODER=4004]="VIDEO_ENCODER",z[z.VIDEO_DECODER=4005]="VIDEO_DECODER",z))(ba||{}),b_=(d=>(d[d.UNKNOWN=0]="UNKNOWN",d[d.EXCELLENT=1]="EXCELLENT",d[d.GOOD=2]="GOOD",d[d.POOR=3]="POOR",d[d.BAD=4]="BAD",d[d.VERY_BAD=5]="VERY_BAD",d[d.DISCONNECTED=6]="DISCONNECTED",d))(b_||{}),v_=(o=>(o[o.MANUAL=0]="MANUAL",o[o.AUTO_AUDIO=1]="AUTO_AUDIO",o[o.AUTO_VIDEO=2]="AUTO_VIDEO",o[o.AUTO_ALL=3]="AUTO_ALL",o))(v_||{}),Pd=(e=>(e.user="user",e.environment="environment",e))(Pd||{}),kd=(r=>(r[r.ELEMENT=0]="ELEMENT",r[r.CANVAS_FROM_ELEMENT=1]="CANVAS_FROM_ELEMENT",r[r.CANVAS_WITHOUT_ELEMENT=2]="CANVAS_WITHOUT_ELEMENT",r))(kd||{}),$p=(e=>(e[e.ELEMENT=0]="ELEMENT",e[e.CONTEXT=1]="CONTEXT",e))($p||{}),Hp=(o=>(o.BANNED="banned",o.KICK="kick",o.USER_TIME_OUT="user_time_out",o.ROOM_DISBAND="room_disband",o))(Hp||{}),Wp=(p=>(p[p.USER_EXIT_REASON_TC_USER_EXIT_NORMAL=0]="USER_EXIT_REASON_TC_USER_EXIT_NORMAL",p[p.USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT=1]="USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT",p[p.USER_EXIT_REASON_TC_USER_EXIT_KICKED=2]="USER_EXIT_REASON_TC_USER_EXIT_KICKED",p[p.USER_EXIT_REASON_TC_USER_EXIT_CHANGED=3]="USER_EXIT_REASON_TC_USER_EXIT_CHANGED",p[p.USER_KICK_OUT_CODE_BUSINESS_USER=4]="USER_KICK_OUT_CODE_BUSINESS_USER",p[p.USER_KICK_OUT_CODE_BUSINESS_ROOM=5]="USER_KICK_OUT_CODE_BUSINESS_ROOM",p[p.USER_KICK_OUT_CODE_SERVER_USER=6]="USER_KICK_OUT_CODE_SERVER_USER",p[p.USER_KICK_OUT_CODE_SERVER_ROOM=7]="USER_KICK_OUT_CODE_SERVER_ROOM",p[p.USER_KICK_SESS_EXSIT=8]="USER_KICK_SESS_EXSIT",p))(Wp||{}),Ii=1e8,Aa=class{constructor(){this.mediaType=0}set audio(t){t?this.mediaType|=1:this.mediaType&=-2}get audio(){return!!(this.mediaType&1)}set video(t){t?this.mediaType|=4:this.mediaType&=-5}get video(){return!!(this.mediaType&4)}set auxiliary(t){t?this.mediaType|=2:this.mediaType&=-3}get auxiliary(){return!!(this.mediaType&2)}set smallVideo(t){t?this.mediaType|=8:this.mediaType&=-9}get smallVideo(){return!!(this.mediaType&8)}},No=(s=>(s.String="string",s.Number="number",s.Boolean="boolean",s.Array="array",s.Object="object",s))(No||{}),Gp=(r=>(r.H264="h264",r.H265="h265",r.VP8="vp8",r))(Gp||{}),va=(o=>(o[o.ENCRYPT_AND_DECRYPT=0]="ENCRYPT_AND_DECRYPT",o[o.DUMP=1]="DUMP",o[o.SEI=2]="SEI",o[o.ENCODE_AND_DECODE=3]="ENCODE_AND_DECODE",o))(va||{}),Ld=(o=>(o[o.ENCRYPT_AND_DECRYPT=0]="ENCRYPT_AND_DECRYPT",o[o.NTP_TO_AUDIO_FRAME=1]="NTP_TO_AUDIO_FRAME",o[o.DUMP=2]="DUMP",o[o.ENCODE_AND_DECODE=3]="ENCODE_AND_DECODE",o))(Ld||{}),R_=(r=>(r.WebRTC="webrtc",r.WebCodecs="webcodecs",r.WebAssembly="webassembly",r))(R_||{}),jp=(y=>(y[y.SUCCESS=0]="SUCCESS",y[y.FAILED=1]="FAILED",y[y.WEBCODEC_INIT=2]="WEBCODEC_INIT",y[y.WEBCODEC_CONFIG_NOT_SUPPORT=3]="WEBCODEC_CONFIG_NOT_SUPPORT",y[y.WEBCODEC_DECODER_ERROR=4]="WEBCODEC_DECODER_ERROR",y[y.WEBCODEC_TRACK_MUTE=5]="WEBCODEC_TRACK_MUTE",y[y.WASM_INIT=6]="WASM_INIT",y[y.WASM_WEBGL_UNAVALIABLE=7]="WASM_WEBGL_UNAVALIABLE",y[y.WASM_DECODER_ERROR=8]="WASM_DECODER_ERROR",y[y.WASM_TRACK_MUTE=9]="WASM_TRACK_MUTE",y[y.TEST=10]="TEST",y))(jp||{}),Ra=(o=>(o.NONE="",o.DETAIL="detail",o.MOTION="motion",o.TEXT="text",o))(Ra||{});var it={AVOID_REPEATED_CALL:"AVOID_REPEATED_CALL",INVALID_PARAMETER_REQUIRED:"INVALID_PARAMETER_REQUIRED",INVALID_PARAMETER_TYPE:"INVALID_PARAMETER_TYPE",INVALID_PARAMETER_EMPTY:"INVALID_PARAMETER_EMPTY",INVALID_PARAMETER_INSTANCE:"INVALID_PARAMETER_INSTANCE",INVALID_PARAMETER_RANGE:"INVALID_PARAMETER_RANGE",INVALID_PARAMETER_MIN:"INVALID_PARAMETER_MIN",INVALID_PARAMETER_MAX:"INVALID_PARAMETER_MAX",INVALID_PARAMETER_STREAMTYPE:"INVALID_PARAMETER_STREAMTYPE",API_CALL_TIMEOUT:"API_CALL_TIMEOUT",SIGNAL_CHANNEL_RECONNECTION_FAILED:"SIGNAL_CHANNEL_RECONNECTION_FAILED",SIGNAL_CHANNEL_SETUP_FAILED:"SIGNAL_CHANNEL_SETUP_FAILED",ERROR_MESSAGE:"ERROR_MESSAGE",EXCHANGE_SDP_TIMEOUT:"EXCHANGE_SDP_TIMEOUT",DOWNLINK_RECONNECTION_FAILED:"DOWNLINK_RECONNECTION_FAILED",EXCHANGE_SDP_FAILED:"EXCHANGE_SDP_FAILED",UPDATE_OFFER_TIMEOUT:"UPDATE_OFFER_TIMEOUT",UPLINK_RECONNECTION_FAILED:"UPLINK_RECONNECTION_FAILED",INVALID_RECORDID:"INVALID_RECORDID",INVALID_PURE_AUDIO:"INVALID_PURE_AUDIO",INVALID_STREAMID:"INVALID_STREAMID",INVALID_USER_DEFINE_RECORDID:"INVALID_USER_DEFINE_RECORDID",INVALID_USER_DEFINE_PUSH_ARGS:"INVALID_USER_DEFINE_PUSH_ARGS",INVALID_PROXY:"INVALID_PROXY",INVALID_JOIN:"INVALID_JOIN",INVALID_ROOMID_STRING:"INVALID_ROOMID_STRING",INVALID_ROOMID_INTEGER:"INVALID_ROOMID_INTEGER",INVALID_SIGNAL_CHANNEL:"INVALID_SIGNAL_CHANNEL",JOIN_ROOM_TIMEOUT:"JOIN_ROOM_TIMEOUT",JOIN_ROOM_FAILED:"JOIN_ROOM_FAILED",REJOIN_ROOM_FAILED:"REJOIN_ROOM_FAILED",INVALID_DESTROY:"INVALID_DESTROY",INVALID_PUBLISH:"INVALID_PUBLISH",INVALID_UNPUBLISH:"INVALID_UNPUBLISH",INVALID_AUDIENCE:"INVALID_AUDIENCE",INVALID_INITIALIZE:"INVALID_INITIALIZE",INVALID_DUPLICATE_PUBLISHING:"INVALID_DUPLICATE_PUBLISHING",INVALID_SUBSCRIBE_UNDEFINED:"INVALID_SUBSCRIBE_UNDEFINED",INVALID_SUBSCRIBE_LOCAL:"INVALID_SUBSCRIBE_LOCAL",INVALID_REMOTE_STREAM:"INVALID_REMOTE_STREAM",SUBSCRIBE_FAILED:"SUBSCRIBE_FAILED",INVALID_ROLE:"INVALID_ROLE",INVALID_PARAMETER_SWITCH_ROLE:"INVALID_PARAMETER_SWITCH_ROLE",INVALID_OPERATION_SWITCH_ROLE:"INVALID_OPERATION_SWITCH_ROLE",SWITCH_ROLE_TIMEOUT:"SWITCH_ROLE_TIMEOUT",SWITCH_ROLE_FAILED:"SWITCH_ROLE_FAILED",CLIENT_BANNED:"CLIENT_BANNED",INVALID_OPERATION_START_PUBLISH_CDN:"INVALID_OPERATION_START_PUBLISH_CDN",INVALID_OPERATION_STOP_PUBLISH_CDN:"INVALID_OPERATION_STOP_PUBLISH_CDN",INVALID_STREAM_ID:"INVALID_STREAM_ID",START_PUBLISH_CDN_FAILED:"START_PUBLISH_CDN_FAILED",STOP_PUBLISH_CDN_FAILED:"STOP_PUBLISH_CDN_FAILED",START_MIX_TRANSCODE:"START_MIX_TRANSCODE",STOP_MIX_TRANSCODE:"STOP_MIX_TRANSCODE",INVALID_AUDIO_VOLUME:"INVALID_AUDIO_VOLUME",ENABLE_SMALL_STREAM_PUBLISHED:"ENABLE_SMALL_STREAM_PUBLISHED",DISABLE_SMALL_STREAM_PUBLISHED:"DISABLE_SMALL_STREAM_PUBLISHED",NOT_SUPPORTED_SMALL_STREAM:"NOT_SUPPORTED_SMALL_STREAM",INVALID_SMALL_STREAM_PROFILE:"INVALID_SMALL_STREAM_PROFILE",INVALID_PARAMETER_REMOTE_STREAM:"INVALID_PARAMETER_REMOTE_STREAM",INVALID_OPERATION_CHANGE_SMALL:"INVALID_OPERATION_CHANGE_SMALL",REMOTE_NOT_PUBLISH_SMALL_STREAM:"REMOTE_NOT_PUBLISH_SMALL_STREAM",INVALID_SWITCH_DEVICE:"INVALID_SWITCH_DEVICE",INVALID_SWITCH_DEVICE_PUBLISHING:"INVALID_SWITCH_DEVICE_PUBLISHING",INVALID_REPLACE_TRACK:"INVALID_REPLACE_TRACK",INVALID_INITIALIZE_LOCAL_STREAM:"INVALID_INITIALIZE_LOCAL_STREAM",INVALID_ADD_TRACK_REPETITIVE:"INVALID_ADD_TRACK_REPETITIVE",INVALID_ADD_TRACK_REMOVING:"INVALID_ADD_TRACK_REMOVING",INVALID_ADD_TRACK_PUBLISHING:"INVALID_ADD_TRACK_PUBLISHING",INVALID_STREAM_INITIALIZED:"INVALID_STREAM_INITIALIZED",INVALID_ADD_TRACK_NUMBER:"INVALID_ADD_TRACK_NUMBER",INVALID_REMOVE_AUDIO_TRACK:"INVALID_REMOVE_AUDIO_TRACK",INVALID_REMOVE_AUDIO_ADDING:"INVALID_REMOVE_AUDIO_ADDING",INVALID_REMOVE_AUDIO_ON:"INVALID_REMOVE_AUDIO_ON",INVALID_REMOVE_TRACK_PUBLISHING:"INVALID_REMOVE_TRACK_PUBLISHING",INVALID_REMOVE_TRACK_NOT_TRACK:"INVALID_REMOVE_TRACK_NOT_TRACK",INVALID_REMOVE_TRACK_NUMBER:"INVALID_REMOVE_TRACK_NUMBER",INVALID_REPLACE_TRACK_NO_TRACK:"INVALID_REPLACE_TRACK_NO_TRACK",REPEAT_JOIN:"REPEAT_JOIN",CLIENT_DESTROYED:"CLIENT_DESTROYED",NOT_BUG_PACKAGE:"NOT_BUG_PACKAGE",START_MIX_TRANSCODE_FAILED:"START_MIX_TRANSCODE_FAILED",STOP_MIX_TRANSCODE_FAILED:"STOP_MIX_TRANSCODE_FAILED",MIX_TRANSCODE_NOT_STARTED:"MIX_TRANSCODE_NOT_STARTED",CANNOT_LESS_THAN_ZERO:"CANNOT_LESS_THAN_ZERO",MIX_PARAMS_VIDEO_FRAMERATE:"MIX_PARAMS_VIDEO_FRAMERATE",MIX_PARAMS_VIDEO_GOP:"MIX_PARAMS_VIDEO_GOP",MIX_PARAMS_AUDIO_BITRATE:"MIX_PARAMS_AUDIO_BITRATE",MIX_PARAMS_USER_Z_ORDER:"MIX_PARAMS_USER_Z_ORDER",MIX_PARAMS_NOT_SELF:"MIX_PARAMS_NOT_SELF",MIX_PARAMS_USER_STREAM:"MIX_PARAMS_USER_STREAM",INVALID_PLAY:"INVALID_PLAY",INVALID_ELEMENT_ID:"INVALID_ELEMENT_ID",INVALID_ELEMENT_ID_TYPE:"INVALID_ELEMENT_ID_TYPE",PLAY_FAILED:"PLAY_FAILED",INVALID_USERID:"INVALID_USERID",INVALID_CREATE_STREAM_SOURCE:"INVALID_CREATE_STREAM_SOURCE",INVALID_CREATE_STREAM_SCREEN:"INVALID_CREATE_STREAM_SCREEN",INVALID_CREATE_STREAM_AUDIO:"INVALID_CREATE_STREAM_AUDIO",INVALID_CREATE_STREAM_SCREEN_AUDIO:"INVALID_CREATE_STREAM_SCREEN_AUDIO",NOT_SUPPORTED_HTTP:"NOT_SUPPORTED_HTTP",NOT_SUPPORTED_WEBRTC:"NOT_SUPPORTED_WEBRTC",NOT_SUPPORTED_PROFILE:"NOT_SUPPORTED_PROFILE",NOT_SUPPORTED_MEDIA:"NOT_SUPPORTED_MEDIA",NOT_SUPPORTED_H264ENCODE:"NOT_SUPPORTED_H264ENCODE",NOT_SUPPORTED_H264DECODE:"NOT_SUPPORTED_H264DECODE",NOT_SUPPORTED_TRACK:"NOT_SUPPORTED_TRACK",NOT_SUPPORTED_SWITCH_DEVICE:"NOT_SUPPORTED_SWITCH_DEVICE",NOT_SUPPORTED_CAPTURE:"NOT_SUPPORTED_CAPTURE",NOT_SUPPORTED_AUX:"NOT_SUPPORTED_AUX",MICROPHONE_NOT_FOUND:"MICROPHONE_NOT_FOUND",CAMERA_NOT_FOUND:"CAMERA_NOT_FOUND",SIGNAL_RESPONSE_FAILED:"SIGNAL_RESPONSE_FAILED",CATCH_HANDLER_ERROR:"CATCH_HANDLER_ERROR",API_NOT_EXIST:"API_NOT_EXIST",CONNECTION_CLOSED:"CONNECTION_CLOSED",SUBSCRIBE_ALL_FALSE:"SUBSCRIBE_ALL_FALSE",SEI_NOT_SUPPORT:"SEI_NOT_SUPPORT",SEI_DISABLED:"SEI_DISABLED",SEI_BEFORE_PUBLISH:"SEI_BEFORE_PUBLISH",SEI_NOT_VIDEO:"SEI_NOT_VIDEO",CALL_FREQUENCY_LIMIT:"CALL_FREQUENCY_LIMIT",CONNECTION_ABORTED:"CONNECTION_ABORTED",API_CALL_ABORTED:"API_CALL_ABORTED",DUPLICATE_AUX:"DUPLICATE_AUX"},Gt={AVOID_REPEATED_CALL(i){return`previous ${i.name}() is ongoing, please avoid repeated calls.`},INVALID_PARAMETER_REQUIRED({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' is a required param when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_TYPE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s="";return Array.isArray(t.type)?s=t.type.join("|"):s=t.type,`'${o}' must be type of ${s} when calling ${e}(), received type: ${mt(r)}.`},INVALID_PARAMETER_EMPTY({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' cannot be '${r}' when calling ${e}().`},INVALID_PARAMETER_INSTANCE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s=`${t.instanceOf.name||t.instanceOf}`;return`'${o}' must be instanceof ${s} when calling ${e}(), received type: ${mt(r)}.`},INVALID_PARAMETER_RANGE({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' must be one of ${t.values.join("|")} when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_MIN({key:i,rule:t,fnName:e,value:r}){return`the min value of ${i||t.name} is ${t.min}, received: ${r}.`},INVALID_PARAMETER_MAX({key:i,rule:t,fnName:e,value:r}){return`the max value of ${i||t.name} is ${t.max}, received: ${r}.`},API_CALL_TIMEOUT(i){return`${i.commandDesc||i.command} timeout observed.`},SIGNAL_CHANNEL_RECONNECTION_FAILED:"signal channel reconnection failed, please check your network.",SIGNAL_CHANNEL_SETUP_FAILED(i){return`SignalChannel setup failure: (errorCode: ${i.errorCode}, errorMsg: ${i.errorMsg} }).`},ERROR_MESSAGE(i){let t=`${i.type} failed`;return i.message&&(t=`${t}: ${i.message}.`),t},EXCHANGE_SDP_TIMEOUT:"exchange sdp timeout.",DOWNLINK_RECONNECTION_FAILED:"downlink reconnection failed, please check your network and re-join room.",EXCHANGE_SDP_FAILED(i){return`exchange sdp failed ${i.errMsg}.`},UPDATE_OFFER_TIMEOUT:"update offer timeout observed.",UPLINK_RECONNECTION_FAILED:"uplink reconnection failed, please check your network and publish again.",INVALID_RECORDID:"recordId must be an integer number.",INVALID_PURE_AUDIO:"pureAudioPushMode must be 1 or 2.",INVALID_STREAMID:"streamId must be a sting literal within 64 bytes, and not be empty.",INVALID_USER_DEFINE_RECORDID:"userDefineRecordId must be a sting literal contains (a-zA-Z),(0-9), underline and hyphen, within 64 bytes, and not be empty.",INVALID_USER_DEFINE_PUSH_ARGS:"userDefinePushArgs must be a sting literal within 256 bytes, and not be empty.",INVALID_PROXY:'proxy server url must start with "wss://".',INVALID_JOIN:"duplicate join() called.",INVALID_ROOMID_STRING(i){return`'${i}' must be validate string when useStringRoomId is true.`},INVALID_ROOMID_INTEGER(i){return`'${i}' must be an integer between [1, 4294967294] when useStringRoomId is false.`},INVALID_SIGNAL_CHANNEL:"SignalChannel is not ready yet.",JOIN_ROOM_TIMEOUT:"join room timeout.",JOIN_ROOM_FAILED({error:i,code:t}){return`Failed to join room - ${i} code: ${t}`},REJOIN_ROOM_FAILED(i){return`reJoin room: ${i.roomId} failed, please check your network.`},INVALID_DESTROY:"please call leave() before destroy().",INVALID_PUBLISH:"please call join() before publish().",INVALID_UNPUBLISH:"stream has not been published yet.",INVALID_AUDIENCE:`no permission to publish() under live/${"audience"}, please call switchRole("${"anchor"}") firstly before publish().`,INVALID_INITIALIZE:"cannot publish stream because stream is not initialized, is switching device, or has been closed.",INVALID_DUPLICATE_PUBLISHING(i){return`duplicate ${i} stream publishing, please unpublish your prev ${i} stream and then re-publish.`},INVALID_SUBSCRIBE_UNDEFINED:"stream is undefined or null.",INVALID_SUBSCRIBE_LOCAL:"stream cannot be LocalStream.",INVALID_REMOTE_STREAM:"remoteStream does not exist because it has been unpublished by remote peer.",SUBSCRIBE_FAILED({message:i,userId:t,streamType:e}){return`failed to subscribe ${t} ${e} stream, reason: ${i}.`},INVALID_ROLE:"switchRole can only be called in live mode.",INVALID_PARAMETER_SWITCH_ROLE:`role could only be set to a value as ${"anchor"} or ${"audience"}.`,INVALID_OPERATION_SWITCH_ROLE:"please call join() before switchRole().",SWITCH_ROLE_TIMEOUT:"switchRole timeout.",SWITCH_ROLE_FAILED(i){return`switchRole failed, errCode: ${i.code} errMsg: ${i.message}.`},CLIENT_BANNED(i){return`client was banned because of ${i.message}.`},INVALID_OPERATION_START_PUBLISH_CDN:"please call startPublishCDNStream() after join room and publish the local stream.",INVALID_OPERATION_STOP_PUBLISH_CDN:"please call startPublishCDNStream() before stopPublishCDNStream().",START_PUBLISH_CDN_FAILED(i){return`startPublishCDNStream failed, errMsg: ${i.message}.`},STOP_PUBLISH_CDN_FAILED(i){return`stopPublishCDNStream failed, errMsg: ${i.message}.`},INVALID_STREAM_ID(i){return`'${i}' can only consist of uppercase and lowercase english letters (a-zA-Z), numbers (0-9), hyphens and underscores.`},START_MIX_TRANSCODE:"please call startMixTranscode() after join().",STOP_MIX_TRANSCODE:"please call stopMixTranscode() after startMixTranscode().",INVALID_AUDIO_VOLUME:"interval must be a number.",ENABLE_SMALL_STREAM_PUBLISHED:"Cannot enable small stream after localStream published.",DISABLE_SMALL_STREAM_PUBLISHED:"Cannot disable small stream after localStream published.",NOT_SUPPORTED_SMALL_STREAM:"your browser does not support opening small stream.",INVALID_SMALL_STREAM_PROFILE:"small stream profile is invalid.",INVALID_PARAMETER_REMOTE_STREAM:"remoteStream is invalid.",INVALID_OPERATION_CHANGE_SMALL:"cannot switch to the small stream without subscribing to the video of remoteStream.",REMOTE_NOT_PUBLISH_SMALL_STREAM:"remote peer does not publish small stream.",INVALID_SWITCH_DEVICE:"cannot switch device on current stream.",INVALID_SWITCH_DEVICE_PUBLISHING:"cannot switch device when publishing localStream.",INVALID_REPLACE_TRACK:"cannot replace track when publishing localStream.",INVALID_INITIALIZE_LOCAL_STREAM:"local stream has not initialized yet.",INVALID_ADD_TRACK_REPETITIVE:"previous addTrack is ongoing, please avoid repetitive execution.",INVALID_ADD_TRACK_REMOVING:"cannot add track when a track is removing.",INVALID_ADD_TRACK_PUBLISHING:"cannot add track when publishing localStream.",INVALID_STREAM_INITIALIZED:"your local stream haven't been initialized yet.",INVALID_ADD_TRACK_NUMBER:"a Stream has at most one audio track and one video track.",INVALID_REMOVE_AUDIO_TRACK:"remove audio track is not supported on your browser.",INVALID_REMOVE_AUDIO_ADDING:"cannot remove track when a track is adding.",INVALID_REMOVE_AUDIO_ON:"previous removeTrack is ongoing, please avoid repetitive execution.",INVALID_REMOVE_TRACK_PUBLISHING:"cannot remove track when publishing localStream.",INVALID_REMOVE_TRACK_NOT_TRACK:"localStream has not this track.",INVALID_REMOVE_TRACK_NUMBER:"remove the only video track is not supported, please use replaceTrack or muteVideo.",INVALID_REPLACE_TRACK_NO_TRACK(i){return`cannot replace ${i.kind} track because stream has not ${i.kind} track`},NOT_BUG_PACKAGE:"You need to buy packages, refer to tencent console.",START_MIX_TRANSCODE_FAILED(i){return`startMixTranscode failed, errMsg: ${i.message}.`},STOP_MIX_TRANSCODE_FAILED(i){return`stopMixTranscode failed, errMsg: ${i.message}.`},MIX_TRANSCODE_NOT_STARTED:"mixTranscode has not been started.",CANNOT_LESS_THAN_ZERO({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' cannot be less than 0 when calling ${e}().`},MIX_PARAMS_VIDEO_FRAMERATE:"'config.videoFramerate' should be an integer between 0 and 30, excluding 0.",MIX_PARAMS_VIDEO_GOP:"'config.videoGOP' should be an integer between 1 and 8.",MIX_PARAMS_AUDIO_BITRATE:"'config.audioBitrate' should be an integer between 32 and 192.",MIX_PARAMS_USER_Z_ORDER(i){return`'${i}' is required and must be between 1 and 15.`},MIX_PARAMS_NOT_SELF:"'config.mixUsers' must contain self.",MIX_PARAMS_USER_STREAM:"'config.videoWidth' and 'config.videoHeight' of output stream should be contain all mix stream.",INVALID_PLAY:"duplicate play() call observed, please stop() firstly.",INVALID_ELEMENT_ID:({key:i,fnName:t})=>`'${i}' is not found in the document object when calling ${t}().`,INVALID_ELEMENT_ID_TYPE:({key:i,fnName:t,type:e})=>`the element corresponding to '${i}' must be instanceof HTMLElement when calling ${t}(), received: ${e}.`,PLAY_FAILED:i=>`${i.media} play failed, browser exception: ${i.error.toString()}`,INVALID_USERID:"userId cannot be all spaces.",INVALID_CREATE_STREAM_SOURCE:"LocalStream must be created by createStream() with either audio/video or audioSource/videoSource, but can not be mixed with audio/video and audioSource/videoSource.",INVALID_CREATE_STREAM_SCREEN:"screen/video cannot be both true.",INVALID_CREATE_STREAM_AUDIO:"audio/screenAudio cannot be both true.",INVALID_CREATE_STREAM_SCREEN_AUDIO:"when screen is true, screenAudio can be configured.",NOT_SUPPORTED_HTTP:"http protocol does not support the ability to capture microphone, camera and screen. please use https to deploy your page.",NOT_SUPPORTED_WEBRTC:"your browser or environment does not support full WebRTC capabilities.",NOT_SUPPORTED_PROFILE:"your browser does not support setVideoProfile.",NOT_SUPPORTED_MEDIA:"your browser or environment does not support navigator.mediaDevices.",NOT_SUPPORTED_H264ENCODE:"your device does not support H.264 encoding.",NOT_SUPPORTED_H264DECODE:"your device does not support H.264 decoding.",NOT_SUPPORTED_TRACK(i){return`${i}Track is not supported on your browser.`},NOT_SUPPORTED_SWITCH_DEVICE:"switchDevice is not supported on your browser.",NOT_SUPPORTED_CAPTURE:"Your browser or environment does not support screen sharing, please check whether the browser version.",MICROPHONE_NOT_FOUND:"no microphone detected, please check your microphone.",CAMERA_NOT_FOUND:"no camera detected, please check your camera.",SIGNAL_RESPONSE_FAILED(i){return`${i.signalResponse} failed, response code is ${i.code} , errMsg: ${i.message}.`},CATCH_HANDLER_ERROR({name:i,event:t}){return`an error was caught in ${i}.on('${t}', handler), please check your code in 'handler'.`},API_NOT_EXIST({name:i}){return`experimental api ${i} does not exist.`},REPEAT_JOIN:i=>"please avoid repeated join.",CONNECTION_CLOSED:"remoteStream has been unsubscribed or unpublished by remote user.",SUBSCRIBE_ALL_FALSE:"cannot subscribe when both audio & video are false, use client.unsubscribe() instead",CLIENT_DESTROYED({funName:i}){return`failed to call ${i}() because client was destroyed.`},SEI_NOT_SUPPORT:i=>`not support to sendSEIMessage${i===!1?" without using h264 codec":""}`,SEI_DISABLED:"SEI is disabled",SEI_BEFORE_PUBLISH:"please call sendSEIMessage() after publish() success",SEI_NOT_VIDEO:"cannot send sei when localStream has not video.",CALL_FREQUENCY_LIMIT:({isSize:i,name:t,timesInSecond:e,maxSizeInSecond:r})=>`api ${t} call ${i?"size":"times"} is over ${i?`${r} bytes`:e} in a second.`,CONNECTION_ABORTED(i){return`connection aborted due to: ${i}`},API_CALL_ABORTED(i){let t;return i.message.includes("REMOTE_STREAM_NOT_EXIST")?t=`Subscribe ${i.userId} ${i.streamType} stream aborted, reason: remote user ${i.userId} unpublished stream.`:t=`API aborted, reason: ${i.message}`,t},DUPLICATE_AUX:"only one auxiliary stream can be published in a room.",NOT_SUPPORTED_AUX:"publish auxiliary stream is not supported on your browser.",INVALID_PARAMETER_STREAMTYPE:i=>`'streamType' is required when 'userId' is not '*', calling ${i}()`};var C_=(i,t)=>t?`${Fr}/${i}/${t}`:`${Fr}/${i}/index.html`;var lI=()=>{if(window.TRTC_ERROR_INFO&&window.TRTC_ERROR_LINK)return{TRTC_ERROR_INFO:window.TRTC_ERROR_INFO,TRTC_ERROR_LINK:window.TRTC_ERROR_LINK};let i=localStorage==null?void 0:localStorage.getItem(sp);if(i){i=JSON.parse(i);let t=document.createElement("script");t.type="text/javascript",t.text=i.message,document.body.appendChild(t);let e=window.TRTC_ERROR_INFO,r=window.TRTC_ERROR_LINK;return document.body.removeChild(t),{TRTC_ERROR_INFO:e,TRTC_ERROR_LINK:r}}return{}};function ot(i){let{key:t,data:e,link:r,addDocLink:o=!0}=i,s="",a="",d="";Ve(Gt[t])?s=Gt[t](e):Ae(Gt[t])&&(s=Gt[t]);let{TRTC_ERROR_INFO:h,TRTC_ERROR_LINK:p}=lI();r?d=`${r.className}.html#${r.fnName}`:p&&p[t]&&(Ve(p[t])?d=p[t](e):Ae(p[t])&&(d=p[t]));let T=s;return vr()&&(h&&h[t]&&(Ve(h[t])?a=h[t](e):Ae(h[t])&&(a=h[t])),a&&(o?T=`${a}
5
- \u8BF7\u67E5\u770B\u6587\u6863: ${C_("zh-cn",d)}
3
+ `}});var mh=oi(Ai=>{"use strict";var gr=lh(),$f=hh();Ai.write=$f;Ai.parse=gr.parse;Ai.parseParams=gr.parseParams;Ai.parseFmtpConfig=gr.parseFmtpConfig;Ai.parsePayloads=gr.parsePayloads;Ai.parseRemoteCandidates=gr.parseRemoteCandidates;Ai.parseImageAttributes=gr.parseImageAttributes;Ai.parseSimulcastStreamList=gr.parseSimulcastStreamList});var eu=oi((UP,Hm)=>{"use strict";var Fm=Hm.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(s){return s.encoding?"rtpmap:%d %s/%s/%s":s.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(s){return s.address!=null?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(s){return s.subtype!=null?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(s){return"extmap:%d"+(s.direction?"/%s":"%v")+(s["encrypt-uri"]?" %s":"%v")+" %s"+(s.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(s){return s.sessionConfig!=null?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(s){var i="candidate:%s %d %s %d %s %d typ %s";return i+=s.raddr!=null?" raddr %s rport %d":"%v%v",i+=s.tcptype!=null?" tcptype %s":"%v",s.generation!=null&&(i+=" generation %d"),i+=s["network-id"]!=null?" network-id %d":"%v",i+=s["network-cost"]!=null?" network-cost %d":"%v",i}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(s){var i="ssrc:%d";return s.attribute!=null&&(i+=" %s",s.value!=null&&(i+=":%s")),i}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(s){return s.maxMessageSize!=null?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(s){return s.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(s){return"imageattr:%s %s %s"+(s.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(s){return"simulcast:%s %s"+(s.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(s){return"ts-refclk:%s"+(s.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(s){var i="mediaclk:";return i+=s.id!=null?"id=%s %s":"%v%s",i+=s.mediaClockValue!=null?"=%s":"",i+=s.rateNumerator!=null?" rate=%s":"",i+=s.rateDenominator!=null?"/%s":"",i}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};Object.keys(Fm).forEach(function(s){var i=Fm[s];i.forEach(function(e){e.reg||(e.reg=/(.*)/),e.format||(e.format="%s")})})});var Wm=oi(xi=>{"use strict";var Ds=function(s){return String(Number(s))===s?Number(s):s},hT=function(s,i,e,t){if(t&&!e)i[t]=Ds(s[1]);else for(var r=0;r<e.length;r+=1)s[r+1]!=null&&(i[e[r]]=Ds(s[r+1]))},mT=function(s,i,e){var t=s.name&&s.names;s.push&&!i[s.push]?i[s.push]=[]:t&&!i[s.name]&&(i[s.name]={});var r=s.push?{}:t?i[s.name]:i;hT(e.match(s.reg),r,s.names,s.name),s.push&&i[s.push].push(r)},$m=eu(),pT=RegExp.prototype.test.bind(/^([a-z])=(.*)/);xi.parse=function(s){var i={},e=[],t=i;return s.split(/(\r\n|\r|\n)/).filter(pT).forEach(function(r){var o=r[0],n=r.slice(2);o==="m"&&(e.push({rtp:[],fmtp:[]}),t=e[e.length-1]);for(var a=0;a<($m[o]||[]).length;a+=1){var d=$m[o][a];if(d.reg.test(n))return mT(d,t,n)}}),i.media=e,i};var Gm=function(s,i){var e=i.split(/=(.+)/,2);return e.length===2?s[e[0]]=Ds(e[1]):e.length===1&&i.length>1&&(s[e[0]]=void 0),s};xi.parseParams=function(s){return s.split(/;\s?/).reduce(Gm,{})};xi.parseFmtpConfig=xi.parseParams;xi.parsePayloads=function(s){return s.toString().split(" ").map(Number)};xi.parseRemoteCandidates=function(s){for(var i=[],e=s.split(" ").map(Ds),t=0;t<e.length;t+=3)i.push({component:e[t],ip:e[t+1],port:e[t+2]});return i};xi.parseImageAttributes=function(s){return s.split(" ").map(function(i){return i.substring(1,i.length-1).split(",").reduce(Gm,{})})};xi.parseSimulcastStreamList=function(s){return s.split(";").map(function(i){return i.split(",").map(function(e){var t,r=!1;return e[0]!=="~"?t=Ds(e):(t=Ds(e.substring(1,e.length)),r=!0),{scid:t,paused:r}})})}});var qm=oi((BP,Jm)=>{"use strict";var tu=eu(),fT=/%[sdv%]/g,_T=function(s){var i=1,e=arguments,t=e.length;return s.replace(fT,function(r){if(i>=t)return r;var o=e[i];switch(i+=1,r){case"%%":return"%";case"%s":return String(o);case"%d":return Number(o);case"%v":return""}})},zo=function(s,i,e){var t=i.format instanceof Function?i.format(i.push?e:e[i.name]):i.format,r=[s+"="+t];if(i.names)for(var o=0;o<i.names.length;o+=1){var n=i.names[o];i.name?r.push(e[i.name][n]):r.push(e[i.names[o]])}else r.push(e[i.name]);return _T.apply(null,r)},gT=["v","o","s","i","u","e","p","c","b","t","r","z","a"],TT=["i","c","b","a"];Jm.exports=function(s,i){i=i||{},s.version==null&&(s.version=0),s.name==null&&(s.name=" "),s.media.forEach(function(o){o.payloads==null&&(o.payloads="")});var e=i.outerOrder||gT,t=i.innerOrder||TT,r=[];return e.forEach(function(o){tu[o].forEach(function(n){n.name in s&&s[n.name]!=null?r.push(zo(o,n,s)):n.push in s&&s[n.push]!=null&&s[n.push].forEach(function(a){r.push(zo(o,n,a))})})}),s.media.forEach(function(o){r.push(zo("m",tu.m[0],o)),t.forEach(function(n){tu[n].forEach(function(a){a.name in o&&o[a.name]!=null?r.push(zo(n,a,o)):a.push in o&&o[a.push]!=null&&o[a.push].forEach(function(d){r.push(zo(n,a,d))})})})}),r.join(`\r
4
+ `)+`\r
5
+ `}});var iu=oi(Ui=>{"use strict";var Pr=Wm(),ET=qm();Ui.write=ET;Ui.parse=Pr.parse;Ui.parseParams=Pr.parseParams;Ui.parseFmtpConfig=Pr.parseFmtpConfig;Ui.parsePayloads=Pr.parsePayloads;Ui.parseRemoteCandidates=Pr.parseRemoteCandidates;Ui.parseImageAttributes=Pr.parseImageAttributes;Ui.parseSimulcastStreamList=Pr.parseSimulcastStreamList});import AF from"webrtc-adapter";var km=ke(Ge());var Au=(P=>(P[P.INVALID_PARAMETER=4096]="INVALID_PARAMETER",P[P.INVALID_OPERATION=4097]="INVALID_OPERATION",P[P.NOT_SUPPORTED=4098]="NOT_SUPPORTED",P[P.DEVICE_NOT_FOUND=4099]="DEVICE_NOT_FOUND",P[P.INITIALIZE_FAILED=4100]="INITIALIZE_FAILED",P[P.SIGNAL_CHANNEL_SETUP_FAILED=16385]="SIGNAL_CHANNEL_SETUP_FAILED",P[P.SIGNAL_CHANNEL_ERROR=16386]="SIGNAL_CHANNEL_ERROR",P[P.ICE_TRANSPORT_ERROR=16387]="ICE_TRANSPORT_ERROR",P[P.JOIN_ROOM_FAILED=16388]="JOIN_ROOM_FAILED",P[P.CREATE_OFFER_FAILED=16389]="CREATE_OFFER_FAILED",P[P.SIGNAL_CHANNEL_RECONNECTION_FAILED=16390]="SIGNAL_CHANNEL_RECONNECTION_FAILED",P[P.UPLINK_RECONNECTION_FAILED=16391]="UPLINK_RECONNECTION_FAILED",P[P.DOWNLINK_RECONNECTION_FAILED=16392]="DOWNLINK_RECONNECTION_FAILED",P[P.REMOTE_STREAM_NOT_EXIST=16400]="REMOTE_STREAM_NOT_EXIST",P[P.CLIENT_BANNED=16448]="CLIENT_BANNED",P[P.SERVER_TIMEOUT=16449]="SERVER_TIMEOUT",P[P.SUBSCRIPTION_TIMEOUT=16450]="SUBSCRIPTION_TIMEOUT",P[P.PLAY_NOT_ALLOWED=16451]="PLAY_NOT_ALLOWED",P[P.DEVICE_AUTO_RECOVER_FAILED=16452]="DEVICE_AUTO_RECOVER_FAILED",P[P.START_PUBLISH_CDN_FAILED=16453]="START_PUBLISH_CDN_FAILED",P[P.STOP_PUBLISH_CDN_FAILED=16454]="STOP_PUBLISH_CDN_FAILED",P[P.START_MIX_TRANSCODE_FAILED=16455]="START_MIX_TRANSCODE_FAILED",P[P.STOP_MIX_TRANSCODE_FAILED=16456]="STOP_MIX_TRANSCODE_FAILED",P[P.NOT_SUPPORTED_H264=16457]="NOT_SUPPORTED_H264",P[P.SWITCH_ROLE_FAILED=16458]="SWITCH_ROLE_FAILED",P[P.API_CALL_TIMEOUT=16459]="API_CALL_TIMEOUT",P[P.SCHEDULE_FAILED=16460]="SCHEDULE_FAILED",P[P.API_CALL_ABORTED=16461]="API_CALL_ABORTED",P[P.SPC_INITIALIZED_FAILED=16462]="SPC_INITIALIZED_FAILED",P[P.VIDEO_MANAGER_ERROR=16463]="VIDEO_MANAGER_ERROR",P[P.UNKNOWN=65535]="UNKNOWN",P))(Au||{}),S=Au;var Fp=function(s){for(let i in S)if(S[i]===s)return i;return"UNKNOWN"},mc=class extends Error{constructor({name:e="RtcError",message:t,code:r=S.UNKNOWN,extraCode:o=0,constraint:n}){let a=`<${Fp(r)} 0x${r.toString(16)}>`,d=`${t}${n?` constraint: ${n}`:""}${t!=null&&t.includes(a)?"":` ${a}`}`;super(d);c(this,"code");c(this,"extraCode");c(this,"message");c(this,"originMessage");c(this,"name");c(this,"constraint");this.code=r,this.extraCode=o,this.name=e,this.message=d,this.constraint=n,this.originMessage=t}getCode(){return this.code}getExtraCode(){return this.extraCode}toString(){return this.originMessage}},b=mc;var Cu=new Date().getTime(),pc=0,Ru=function(s){Cu=s,pc=Cu-new Date().getTime();let i=new Date;i.setTime(s),C.info(`baseTime from server: ${i} offset: ${pc}`)},Bs=function(){return new Date().getTime()+pc},an=function(){let s=new Date;return s.setTime(Bs()),s.toLocaleString()};var st={};ni(st,{bytes2ms:()=>ku,convertObjectNumberToInt:()=>Ks,copyProperties:()=>Mu,deepClone:()=>lr,deepMerge:()=>Ht,delay:()=>hi,fibonacci:()=>hr,formatedTime:()=>Fu,getConstructorName:()=>zs,getContainerFromElement:()=>Bu,getEnv:()=>Du,getInternalVersion:()=>Uu,getLoggerUrl:()=>li,getMuteStateFromFlag:()=>ui,getNetworkType:()=>Dc,getNumNetworkType:()=>ur,getReconnectionTimeout:()=>Ct,getStringByteLength:()=>Ys,getTurnServer:()=>Vu,getUint32Version:()=>In,getValueType:()=>Ae,getViewListFromView:()=>Qr,glog:()=>kc,ipv4ToUint32:()=>Xr,isArray:()=>Te,isAudioWorkletSupported:()=>xu,isBoolean:()=>he,isConstructor:()=>Jr,isEmpty:()=>jr,isFunction:()=>se,isLangChinese:()=>At,isMediaStreamTrack:()=>Pu,isNumber:()=>Y,isObject:()=>ut,isOverseaSdkAppId:()=>Qs,isPlainObject:()=>Qe,isPortrait:()=>Sn,isPromise:()=>Wi,isRemoteTrack:()=>wu,isString:()=>K,isUndefined:()=>g,loadImage:()=>zr,ms2bytes:()=>Lu,ms2samples:()=>Mc,performanceNow:()=>L,promiseAny:()=>qr,samples2ms:()=>Oc,setNetworkType:()=>Tn,stringify:()=>ht,stringifyIncludeValue:()=>En,throttlePromise:()=>An});var vc={};ni(vc,{AUDIO_MUTE_BIT:()=>pn,AUDIO_STAT_BIT:()=>Fi,AUX_STAT_BIT:()=>nr,AUX_STREAM_MSID:()=>Sc,BACKEND_ENV:()=>mn,BASE_DOC_URL:()=>Bt,BASE_HOST:()=>yu,CAPABILITIES_KEYS:()=>gn,CLASS_NAME:()=>df,CLOUD_CONSOLE_URL:()=>Wp,CROSS_ROOM_BIT:()=>Ec,DATA_FREEZE_TIMING:()=>_n,DEFAULT_ASSETS_URL:()=>cn,DOC_URL:()=>Jp,DTLS_STATE_UNKNOWN:()=>It,ENV_NAME:()=>ai,EXCHANGE_SDP_TIMEOUT:()=>yc,INTERVAL:()=>dr,IS_WORKER:()=>Fr,IS_WORKLET:()=>Hs,KIBANA_EVENT:()=>Xe,LOCAL_STREAM_PUBLISH_STATE:()=>Nu,LOGGER_CMD_TYPE:()=>Vi,LOGGER_DOMAIN:()=>_c,LOGGER_DOMAIN_OVERSEA:()=>gc,LOG_LEVEL:()=>St,LOG_LEVEL_NAME:()=>uf,MAIN_STREAM_MSID:()=>Ws,MAX_RTT:()=>js,MICROPHONE_COMMUNICATIONS:()=>lf,MICROPHONE_DEFAULT:()=>cr,MUTE_ALL_BIT:()=>Xp,NAME:()=>h,NETWORK_TYPE:()=>dn,NOT_SUPPORTED_H264:()=>ar,PAUSED_RETRY_COUNT:()=>bc,PEERCONNECTION_CONNECTING_TIMEOUT:()=>Js,PEER_CONNECTION_STATE:()=>ce,PEER_LEAVE_REASON:()=>Nc,RAF:()=>Wr,RECOVER_CAPTURE_INTERVAL:()=>Gr,REMOTE_STREAM_TYPE_AUX:()=>Ac,REMOTE_STREAM_TYPE_MAIN:()=>Ic,RENDER_FREEZE_TIMING:()=>of,RIC:()=>$i,SCHEDULE_DOMAIN:()=>di,SCHEDULE_TIMEOUT:()=>cf,SDP_SEMANTICS_PLAN_B:()=>Hr,SDP_SEMANTICS_UNIFIED_PLAN:()=>Hi,SECOND_HOST:()=>$p,SIGNAL_PING_PONG_INTERVAL:()=>jp,SIGNAL_PING_TIMEOUT:()=>qp,SIGNAL_RECONNECTION_COUNT:()=>rf,SMALL_STAT_BIT:()=>Gs,SPEAKER_DEFAULT:()=>qs,STORAGE_EXPIRES_TIME:()=>ln,STREAM_TYPE_BIG:()=>nf,STREAM_TYPE_SMALL:()=>af,SUBSCRIBE_SMALL_RETRY_COUNT:()=>$r,SYNC_USER_LIST_INTERVAL:()=>sf,Scene:()=>Ft,THIRD_HOST:()=>Gp,TIMEOUT:()=>Gi,TRANSPORT_DIRECTION:()=>z,TRTC_ERROR_ASSISTANCE:()=>Tc,TRTC_QUALITY_BAD:()=>Zp,TRTC_QUALITY_DISCONNECTED:()=>tf,TRTC_QUALITY_EXCELLENT:()=>zp,TRTC_QUALITY_GOOD:()=>Yp,TRTC_QUALITY_POOR:()=>Kp,TRTC_QUALITY_UNKNOWN:()=>Qp,TRTC_QUALITY_VERY_BAD:()=>ef,UPDATE_OFFER_TIMEOUT:()=>Rc,VIDEO_MUTE_BIT:()=>fn,VIDEO_STAT_BIT:()=>Bi,audioProfileMap:()=>un,getRetryCount:()=>ci,getScriptDir:()=>Hp,innerVersion:()=>Fs,loggerProxy:()=>$s,screenProfileMap:()=>hn,setLoggerProxy:()=>or,setRetryCount:()=>Cc,setVersion:()=>fc,version:()=>Ce,videoProfileMap:()=>lt});var Fs="4.15.00.1600",Ce="5.0.0";function fc(s){Ce=s;let[i,e,t]=s.split(".").map(r=>parseInt(r,10));Fs=`${i}.${Math.min(15,e)}.${Math.min(15,t)}.${e.toString().padStart(2,"0")}${t.toString().padStart(2,"0")}`}var Fr=typeof importScripts!="undefined",Hs=typeof registerProcessor!="undefined",Hp=()=>{let s=Fr?self.location.href:document.currentScript.src;return s.substring(0,s.lastIndexOf("/")+1)},$s="",or=s=>$s=s,yu="web.sdk.qcloud.com",$p="web.sdk.tencent.cn",Gp="web.sdk.cloud.tencent.cn",Wp="https://console.cloud.tencent.com/trtc",Bt=`https://${yu}/trtc/webrtc/v5/doc`,cn="https://web.sdk.qcloud.com/trtc/webrtc/v5/assets/",Jp=`${Bt}/zh-cn/`,_c="https://yun.tim.qq.com",gc="https://apisgp.my-imcloud.com",Tc="trtc_error_assistance",Vi={LOG:"jssdk_log",EVENT:"jssdk_event",KEY_POINT:"jssdk_new_endreport",KV_STAT:"jssdk_key_metrics_report"},ai={QCLOUD:"qcloud",OLD_CLOUD_LADDER:"trtc",WEBRTC:"webrtc"},St=(n=>(n[n.TRACE=0]="TRACE",n[n.DEBUG=1]="DEBUG",n[n.INFO=2]="INFO",n[n.WARN=3]="WARN",n[n.ERROR=4]="ERROR",n[n.NONE=5]="NONE",n))(St||{}),qp=18e3,jp=2e3,dn={unknown:0,wifi:1,"3g":2,"2g":3,"4g":4,wired:5,"5g":6},ln=7*24*3600*1e3,un={standard:{sampleRate:48e3,channelCount:1,bitrate:40},"standard-stereo":{sampleRate:48e3,channelCount:2,bitrate:64},high:{sampleRate:48e3,channelCount:1,bitrate:128},"high-stereo":{sampleRate:48e3,channelCount:2,bitrate:192}},lt={"120p":{width:160,height:120,frameRate:15,bitrate:200},"120p_2":{width:160,height:120,frameRate:15,bitrate:100},"180p":{width:320,height:180,frameRate:15,bitrate:350},"180p_2":{width:320,height:180,frameRate:15,bitrate:150},"240p":{width:320,height:240,frameRate:15,bitrate:400},"240p_2":{width:320,height:240,frameRate:15,bitrate:200},"360p":{width:640,height:360,frameRate:15,bitrate:800},"360p_2":{width:640,height:360,frameRate:15,bitrate:400},"480p":{width:640,height:480,frameRate:15,bitrate:900},"480p_2":{width:640,height:480,frameRate:15,bitrate:500},"720p":{width:1280,height:720,frameRate:15,bitrate:1500},"1080p":{width:1920,height:1080,frameRate:15,bitrate:2e3},"1440p":{width:2560,height:1440,frameRate:30,bitrate:4860},"4K":{width:3840,height:2160,frameRate:30,bitrate:9e3}},hn={"480p":{width:640,height:480,frameRate:5,bitrate:900},"480p_2":{width:640,height:480,frameRate:30,bitrate:1e3},"720p":{width:1280,height:720,frameRate:5,bitrate:1200},"720p_2":{width:1280,height:720,frameRate:30,bitrate:3e3},"1080p":{width:1920,height:1080,frameRate:5,bitrate:1600},"1080p_2":{width:1920,height:1080,frameRate:30,bitrate:4e3}},h={CANVAS:"canvas",AUDIO:"audio",VIDEO:"video",SCREEN:"screen",SMALL:"small",BIG:"big",AUXILIARY:"auxiliary",SMALL_VIDEO:"smallVideo",FACING_MODE_USER:"user",FACING_MODE_ENVIRONMENT:"environment",MUTE:"mute",UNMUTE:"unmute",ENDED:"ended",PLAYING:"playing",PAUSE:"pause",ERROR:"error",LOADEDDATA:"loadeddata",LOADEDMETADATA:"loadedmetadata",AUDIO_INPUT:"audioinput",VIDEO_INPUT:"videoinput",DETAIL:"detail",TEXT:"text",MAIN:"main",BACKUP:"backup",BANNED:"banned",KICK:"kick",USER_TIME_OUT:"user_time_out",ROOM_DISBAND:"room_disband",SEI_MESSAGE:"sei-message",ADD:"add",REMOVE:"remove",REPLACE:"replace",TRACK:"track",SUBSCRIBE:"subscribe",UNSUBSCRIBE:"unsubscribe",TRANSCEIVER_DIRECTION_SENDONLY:"sendonly",TRANSCEIVER_DIRECTION_RECVONLY:"recvonly",ENTER_PICTURE_IN_PICTURE:"enterpictureinpicture",LEAVE_PICTURE_IN_PICTURE:"leavepictureinpicture"},z={INACTIVE:"inactive",SENDONLY:"sendonly",RECVONLY:"recvonly"},mn={OLD_CLOUD_LADDER:"wss://trtc.rtc.qq.com",WEBRTC:"wss://webrtc.qq.com"},Ft=(e=>(e.LIVE="live",e.RTC="rtc",e))(Ft||{}),Bi=1,Gs=2,nr=4,Fi=8,pn=64,fn=16,Xp=112,Ec=128,Ws="5Y2wZK8nANNAoVw6dSAHVjNxrD1ObBM2kBPV",Sc="224d130c-7b5c-415b-aaa2-79c2eb5a6df2",Ic=h.MAIN,Ac=h.AUXILIARY,Qp=0,zp=1,Yp=2,Kp=3,Zp=4,ef=5,tf=6,It="unknown",ce={NEW:"new",CONNECTING:"connecting",FAILED:"failed",CLOSED:"closed",DISCONNECTED:"disconnected",CONNECTED:"connected",COMPLETED:"completed"},bu=1/0;function Cc(s){bu=s}function ci(){return bu}var rf=30,Xe={JOIN:"join",DELTA_JOIN:"delta-join",REJOIN:"rejoin",LEAVE:"leave",DELTA_LEAVE:"delta-leave",PUBLISH:"publish",DELTA_PUBLISH:"delta-publish",UNPUBLISH:"unpublish",SUBSCRIBE:"subscribe",UNSUBSCRIBE:"unsubscribe",UPLINK_CONNECTION:"uplink-connection",UPLINK_RECONNECTION:"uplink-reconnection",DOWNLINK_CONNECTION:"downlink-connection",DOWNLINK_RECONNECTION:"downlink-reconnection",ON_TRACK:"ontrack",ICE_CONNECTION_STATE:"iceConnectionState",LOCAL_STREAM_INITIALIZE:"stream-initialize",SIGNAL_CONNECTION:"websocketConnectionState",SIGNAL_RECONNECTION:"websocketReconnectionState",UPDATE_STREAM:"update-stream",RECOVER_LOCAL_AUDIO_TRACK:"recover-local-audio-track",RECOVER_LOCAL_VIDEO_TRACK:"recover-local-video-track",RECOVER_SUBSCRIPTION:"recover-subscription",START_MIX_TRANSCODE:"start-mix-transcode",STOP_MIX_TRANSCODE:"stop-mix-transcode",PLAYER_ERROR:"player-error",SCHEDULE:"schedule",LOAD_WORKLET:"load-worklet",VIDEO_FROZEN_COUNT:"videoFrozenCount",GET_USER_MEDIA_RETRY:"getUserMedia-retry"},sf=1e4,Rc=1e4,yc=1e4,Hi="unified-plan",Hr="plan-b",ar=1028,Nu=(t=>(t[t.UNPUBLISH=-1]="UNPUBLISH",t[t.PUBLISHING=0]="PUBLISHING",t[t.PUBLISHED=1]="PUBLISHED",t))(Nu||{}),_n=500,of=1e3,nf=h.BIG,af=h.SMALL,Js=10*1e3,di={MAIN:"schedule.cloud-rtc.com",BACKUP:"schedule.cloud-rtc.net",MAIN_OVERSEA:"schedule.rtc-web.com",BACKUP_OVERSEA:"schedule.rtc-web.io",MAIN_OVERSEA_BACKUP:"intl-schedule.cloud-rtc.com"},cf=2e3,df={TRTC:"TRTC",CLIENT:"Client",LOCAL_STREAM:"LocalStream",REMOTE_STREAM:"RemoteStream",STREAM:"Stream"},bc=5,cr="default",qs=cr,lf="communications",uf=Object.keys(St),Nc=["normal leave","timeout leave","kick","role change"],$r=10,Gr=2e3,$i="ric",Wr="raf",dr="interval",Gi="timeout",gn=["width","height","frameRate","facingMode","sampleRate","sampleSize","channelCount","deviceId","min","max"],js=10*1e3;var Du=function(){return new URLSearchParams(location.search).get("trtc_env")||""},Qs=s=>Number(s)<14e8,li=function(s,i){let e;$s?e=$s:e=Qs(s)?gc:_c;let t=Math.floor(Math.random()*Us(2,31));return`${e}/v5/AVQualityReportSvc/C2S?random=${t}&sdkappid=${s}&cmdtype=${i}`},Xs="unknown";function Dc(){if(Xs!=="unknown")return Xs;let{userAgent:s,connection:i}=navigator,e=(s.match(/NetType\/\S+/)||[])[0]||"";e=e.toLowerCase().replace("nettype/",""),e==="3gnet"&&(e="3g");let t=i&&i.type&&i.type.toLowerCase(),r=i&&i.effectiveType&&i.effectiveType.toLowerCase();return r==="slow-2"&&(r="2g"),t&&(Xs=Ou(t,r)),Xs}function Ou(s,i){if(dn[s])return s;switch(s){case"cellular":case"wimax":return i||"unknown";case"ethernet":return"wired";case"none":case"other":default:return"unknown"}}function Tn(s){Xs=Ou(s)}function ur(){return dn[Dc()]}function Mu(s,i){for(let e of Reflect.ownKeys(i))if(e!=="constructor"&&e!=="prototype"&&e!=="name"){let t=Object.getOwnPropertyDescriptor(i,e)||"";Object.defineProperty(s,e,t)}return s}function ku(s,i=48e3){return Oc(s/4,i)}function Oc(s,i=48e3){return s*1e3/i}function Lu(s,i=48e3){return Mc(s,i)*4}function Mc(s,i=48e3){return s*i/1e3}var kc=typeof window!="undefined"&&typeof window.glog=="function"?window.glog:()=>{},At=()=>{let s=navigator.language;return s=s.substring(0,2),s==="zh"},Qe=function(s){if(!s||typeof s!="object"||Object.prototype.toString.call(s)!="[object Object]")return!1;let i=Object.getPrototypeOf(s);if(i===null)return!0;let e=Object.prototype.hasOwnProperty.call(i,"constructor")&&i.constructor;return typeof e=="function"&&e instanceof e&&Function.prototype.toString.call(e)===Function.prototype.toString.call(Object)};function hr(s,i=1,e=1){return s<=1?e:hr(s-1,e,i+e)}function Ct(s){return s>8?30*1e3:hr(s)*1e3}function Ae(s){return Reflect.apply(Object.prototype.toString,s,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}var se=s=>typeof s=="function",g=s=>typeof s=="undefined",K=s=>typeof s=="string",Y=s=>typeof s=="number",he=s=>typeof s=="boolean",ut=s=>Ae(s)==="object",Te=s=>Ae(s)==="array",Pu=s=>Ae(s)==="MediaStreamTrack".toLowerCase(),wu=s=>s.isRemote,Wi=s=>Ae(s)==="promise",Jr=s=>se(s)&&s.prototype.constructor===s,zs=s=>Jr(s)?s.prototype.constructor.name:"",xu=typeof AudioWorkletNode!="undefined";function qr(s){return new Promise((i,e)=>{let t=[];s.forEach(r=>{r.then(i).catch(o=>{t.push(o),t.length===s.length&&e(t)})})})}function L(){return!performance||!performance.now?Date.now():Math.floor(performance.now())}var vu=s=>+s<10?`0${s}`:s,Uu=s=>{let i=s.match(/^\d+\.\d+\.\d+/)[0];if(!i)return s;let e=i.split("."),t=vu(e[1])+vu(e[2]);return e[1]-15>0&&(e[1]="15"),e[2]-15>0&&(e[2]="15"),`${e.join(".")}.${t}`},hf=Object.prototype.hasOwnProperty,{toString:QT}=Object.prototype;function jr(s){if(s==null)return!0;if(typeof s=="boolean")return!1;if(typeof s=="number")return s===0;if(typeof s=="string"||typeof s=="function"||Array.isArray(s))return s.length===0;if(s instanceof Error)return s.message==="";if(Qe(s))switch(Object.prototype.toString.call(s)){case"[object File]":case"[object Map]":case"[object Set]":return s.size===0;case"[object Object]":{for(let i in s)if(hf.call(s,i))return!1;return!0}}return!1}function ui(s,i){return{userId:i,hasAudio:!!(s&Fi),hasVideo:!!(s&Bi),hasAuxiliary:!!(s&nr),hasSmall:!!(s&Gs),audioMuted:!!(s&pn),videoMuted:!!(s&fn),audioAvailable:!!(s&Fi)&&!(s&pn),videoAvailable:!!(s&Bi)&&!(s&fn)}}function Vu(s){let i={urls:s.url.startsWith("turn:")||s.url.startsWith("turns:")?s.url:`turn:${s.url}`};return!g(s.username)&&!g(s.credential)&&(i.username=s.username,i.credential=s.credential,i.credentialType="password",g(s.credentialType)||(i.credentialType=s.credentialType)),i}function Xr(s,i=!0){if(!K(s))return 0;let e=s.split(".");return i?(Number(e[0])<<24|Number(e[1])<<16|Number(e[2])<<8|Number(e[3]))>>>0:(Number(e[3])<<24|Number(e[2])<<16|Number(e[1])<<8|Number(e[0]))>>>0}var Ht=function(s,i,e,t){if(!(ut(s)&&ut(i)))return 0;let r=0,o=Object.keys(i),n;for(let a=0,d=o.length;a<d;a++)if(n=o[a],!(g(i[n])||e&&e.includes(n)))if(ut(s[n])&&ut(i[n]))r+=Ht(s[n],i[n],e,t);else{if(t&&t.includes(i[n]))continue;s[n]!==i[n]&&(s[n]=lr(i[n]),r+=1)}return r};function lr(s){if(Te(s)){let i=[];return s.forEach((e,t)=>{i[t]=lr(e)}),i}if(ut(s)){let i={};return Object.keys(s).forEach(e=>{i[e]=lr(s[e])}),i}return s}var Qr=s=>{let i=[];if(Te(s))i=[...s];else if(K(s)){let e=document.getElementById(s);e&&i.push(e)}else s&&i.push(s);return i},Bu=s=>K(s)?document.getElementById(s):s,mf=s=>{let i=d=>d<10?`0${d}`:`${d}`,e=s.getFullYear(),t=s.getMonth()+1,r=s.getDate(),o=i(s.getHours()),n=i(s.getMinutes()),a=i(s.getSeconds());return`${e}/${t}/${r} ${o}:${n}:${a}`},Fu=()=>mf(new Date);function ht(s,{keysToInclude:i,keysToExclude:e}){try{if(Te(s))return`[${s.map(n=>ht(n,{keysToInclude:i,keysToExclude:e})).join(",")}]`;if(!Qe(s)||!Te(i)&&!Te(e))return JSON.stringify(s);let t={},r=new Set(i),o=new Set(e);return Object.keys(s).forEach(n=>{(o.size===0&&r.has(n)||r.size===0&&!o.has(n))&&(t[n]=Qe(s[n])||Te(s[n])?JSON.parse(ht(s[n],{keysToExclude:e,keysToInclude:i})):s[n])}),JSON.stringify(t)}catch(t){return"{}"}}function En(s,i=!1){let e=[];return Object.keys(s).forEach(t=>{i===s[t]&&e.push(t)}),ht(s,{keysToInclude:e})}function Ys(s){return s.replace(/[\u4e00-\u9fa5]/g,"aa").length}var Sn=()=>{var s,i,e,t;return(s=window.screen)!=null&&s.orientation?!!((t=(e=(i=window.screen)==null?void 0:i.orientation)==null?void 0:e.type)!=null&&t.includes("portrait")):window.orientation===0||window.orientation===180},zr=s=>f(void 0,null,function*(){return new Promise((i,e)=>{let t;if(K(s))t=new Image,t.crossOrigin="anonymous",t.src=s;else if(t=s,t.complete){i(t);return}t.onload=()=>i(t),t.onerror=()=>{e(new b({code:S.INVALID_PARAMETER,message:`load image failed, url: ${s}`}))}})}),In=s=>{let i=s.split(".");return+i[0]<<24|+i[1]<<16|+i[2]<<8|+i[3]<<0},Ks=s=>(Object.keys(s).forEach(i=>{Y(s[i])&&(i.startsWith("uint")||i.startsWith("int"))?s[i]=Math.floor(s[i]):(Qe(s[i])||Te(s[i]))&&Ks(s[i])}),s);function hi(s,i){return new Promise(e=>{let t=setTimeout(e,s);i&&i(t)})}function An(s,i){let e=null;return function(...t){return e||(e=s.apply(i||this,t),e.finally(()=>e=null),e)}}function mi({url:s,body:i,method:e="POST",timeout:t,priority:r}){return new Promise((o,n)=>{if("fetch"in window)return fetch(s,{method:e,body:i,priority:r}).then(d=>d.text()).then(d=>{try{o({data:JSON.parse(d)})}catch(l){o({data:d})}},n);let a=new XMLHttpRequest;a.onreadystatechange=()=>{if(a.readyState===4)if(a.status>=200&&a.status<300)try{let d=JSON.parse(a.response);o({data:d})}catch(d){o({data:a.response})}else n({status:a.status,statusText:a.statusText||"request failed!"})},a.timeout=t||5e3,a.open(e,s,!0),a.send(i)})}function Lc(s){return f(this,null,function*(){let i=L(),e=JSON.stringify(s);try{if(!CompressionStream||e.length<=2800)return e;let r=new Blob([e],{type:"application/json"}).stream().pipeThrough(new CompressionStream("gzip")),a=yield(yield(yield new Response(r)).blob()).arrayBuffer();return C.debug(`compressJSON ${e.length} -> ${a.byteLength} ${L()-i}ms`),a}catch(t){return e}})}var pf=Object.prototype.hasOwnProperty;var $t=s=>typeof s=="function",pi=s=>typeof s=="undefined";var Hu=s=>typeof s=="boolean";var Pc=s=>s.isRemote;var ff=function(s){if(!s||typeof s!="object"||Object.prototype.toString.call(s)!="[object Object]")return!1;let i=Object.getPrototypeOf(s);if(i===null)return!0;let e=Object.prototype.hasOwnProperty.call(i,"constructor")&&i.constructor;return typeof e=="function"&&e instanceof e&&Function.prototype.toString.call(e)===Function.prototype.toString.call(Object)};function $u(s){if(s==null)return!0;if(typeof s=="boolean")return!1;if(typeof s=="number")return s===0;if(typeof s=="string"||typeof s=="function"||Array.isArray(s))return s.length===0;if(s instanceof Error)return s.message==="";if(ff(s))switch(Object.prototype.toString.call(s)){case"[object File]":case"[object Map]":case"[object Set]":return s.size===0;case"[object Object]":{for(let i in s)if(pf.call(s,i))return!1;return!0}}return!1}var _f=0,gf=1,Gu=2;function Tf({retryFunction:s,settings:i,onError:e,onRetrying:t,onRetryFailed:r,onRetrySuccess:o,context:n}){return function(...a){let{retries:d=5,timeout:l=1e3}=i,m=0,u=-1,p=_f,_=(I,R)=>f(this,null,function*(){let D=n||this;try{let G=yield s.apply(D,a);m>0&&o&&o.call(this,m),m=0,I(G)}catch(G){let te=()=>{clearTimeout(u),m=0,p=Gu,R(G)},sn=()=>{p!==Gu&&m<($t(d)?d():d)?(m++,p=gf,$t(t)&&t.call(this,m,te),u=window.setTimeout(()=>{u=-1,_(I,R)},$t(l)?l(m):l)):(te(),$t(r)&&r.call(this,G))};$t(e)?e.call(this,{error:G,retry:sn,reject:R,retryFuncArgs:a,retriedCount:m}):sn()}});return new Promise(_)}}var Gt=Tf;var Yr=class{constructor(i){c(this,"userId");c(this,"remoteUserId");c(this,"id");c(this,"sdkAppId");c(this,"type");c(this,"isLocal");this.id=i.id,this.userId=i.userId,this.sdkAppId=i.sdkAppId,this.remoteUserId=i.remoteUserId,this.isLocal=Hu(i.isLocal)?i.isLocal:!0,this.type=this.isLocal?"":i.type}createChild(i){return Object.setPrototypeOf(i,this)}setUserId(i){this.userId=i}setSdkAppId(i){this.sdkAppId=i}log(i,e){let t=this.isLocal?this.userId:this.remoteUserId;e.unshift(`[${this.isLocal?"\u2191":"\u2193"}${this.type&&this.type!=="main"?"*":""}${this.id}${t?`|${t}`:""}]`),C.log(i,e,pi(this.userId)||$u(this.userId),this.userId,this.sdkAppId)}info(...i){this.log(2,i)}debug(...i){this.log(1,i)}warn(...i){this.log(3,i)}error(...i){this.log(4,i)}};var as={};ni(as,{ANDROID_VERSION:()=>Uc,CHROME_MAJOR_VERSION:()=>Dt,CHROME_VERSION:()=>Bn,EDGE_VERSION:()=>Rn,EDG_MAJOR_VERSION:()=>Bc,EDG_VERSION:()=>yn,FIREFOX_MAJOR_VERSION:()=>Vc,FIREFOX_VERSION:()=>Cn,HUAWEI_VERSION:()=>wn,IE_VERSION:()=>Cf,IOS_MAIN_VERSION:()=>ot,IOS_VERSION:()=>ji,IPADQQB_VERSION:()=>Ln,IS_ANDROID:()=>me,IS_ANDROID_WEBVIEW:()=>Jc,IS_ANY_SAFARI:()=>Ji,IS_CHROME:()=>ns,IS_CHROME_OS:()=>Fc,IS_CHROMIUM_BASE:()=>vt,IS_EDG:()=>es,IS_EDGE:()=>Zr,IS_ELECTRON:()=>yf,IS_FIREFOX:()=>ae,IS_HEADLESS_CHROME:()=>Wc,IS_HONOR:()=>Gc,IS_HUAWEI:()=>$c,IS_HUAWEIBROWSER:()=>co,IS_IE:()=>ju,IS_IE8:()=>Af,IS_IOS:()=>xe,IS_IOS_13_OR_14:()=>jc,IS_IOS_15_1:()=>qc,IS_IPAD:()=>Zs,IS_IPADQQB:()=>oo,IS_IPAD_PRO:()=>xc,IS_IPHONE:()=>mr,IS_IPOD:()=>qu,IS_LINUX:()=>no,IS_LOCAL:()=>Ot,IS_MAC:()=>Nt,IS_MACQQB:()=>so,IS_MIBROWSER:()=>ao,IS_MQQB:()=>rs,IS_NATIVE_ANDROID:()=>If,IS_OLD_ANDROID:()=>Sf,IS_OPPOBROWSER:()=>ss,IS_SAFARI:()=>ze,IS_SAFARI_15_1:()=>bf,IS_SAMSUNGBROWSER:()=>lo,IS_SOGOU:()=>to,IS_SOGOUM:()=>eo,IS_TBS:()=>bt,IS_UCBROWSER:()=>Hc,IS_VIVOBROWSER:()=>os,IS_WECHAT:()=>ts,IS_WIN:()=>fi,IS_WQQB:()=>ro,IS_WX:()=>Rf,IS_X5MQQB:()=>is,IS_XWEB:()=>io,MACQQB_VERSION:()=>kn,MI_VERSION:()=>Pn,MQQB_VERSION:()=>Kr,OPPO_VERSION:()=>Un,SAFARI_VERSION:()=>qi,SAMSUNG_VERSION:()=>xn,SOGOUM_VERSION:()=>bn,SOGOU_VERSION:()=>Nn,TBS_VERSION:()=>vn,UA_DATA_STRING:()=>Rt,USER_AGENT:()=>yt,VIVO_VERSION:()=>Vn,WECHAT_VERSION:()=>On,WQQB_VERSION:()=>Mn,XWEB_VERSION:()=>Dn,browserInfo:()=>Wt,getBrowserInfo:()=>Xu,getChromeMajorVersion:()=>_i,getDeviceModel:()=>pr,getOSName:()=>Fn,getOSNumber:()=>ho,getOSString:()=>Ti,getOSType:()=>Nf,getTerminalType:()=>Xc,getUserAgentData:()=>uo,isLocalStorageEnabled:()=>gi});var yt=typeof navigator=="undefined"?"":navigator.userAgent,X=s=>new RegExp(s,"i").test(yt),Re=s=>{if(X(s)){let i=new RegExp(`${s}\\/([\\d.]+)`),e=yt.match(i);if(e&&e[1])return e[1]}return""},wc=s=>{if(X(s)){let i=new RegExp(`${s}\\/(\\d+)`),e=yt.match(i);if(e&&e[1])return parseFloat(e[1])}return NaN},Wu=/AppleWebKit\/([\d.]+)/i.exec(yt),Ef=Wu?parseFloat(Wu[1]):NaN,Zs=X("iPad"),xc=typeof navigator!="undefined"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&X("Macintosh"),mr=X("iPhone")&&!Zs,qu=X("iPod"),xe=mr||Zs||qu||xc,me=X("Android"),Uc=function(){if(me){let s=yt.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(s){let i=s[1]&&parseFloat(s[1]),e=s[2]&&parseFloat(s[2]);if(i&&e)return parseFloat(`${s[1]}.${s[2]}`);if(i)return i}}return NaN}(),Sf=me&&X("webkit")&&Uc<2.3,If=me&&Uc<5&&Ef<537,ae=X("Firefox"),Cn=Re("Firefox"),Vc=wc("Firefox"),Zr=X("Edge"),Rn=Re("Edge"),es=X("Edg"),yn=Re("Edg"),Bc=wc("Edg"),eo=X("SogouMobileBrowser"),bn=Re("SogouMobileBrowser"),to=X("MetaSr\\s"),Nn=Re("MetaSr\\s"),bt=X("TBS"),vn=Re("TBS"),io=X("XWEB"),Dn=Re("XWEB"),Af=X("MSIE\\s8\\.0"),ju=X("MSIE\\/\\d+"),Cf=function(){if(ju){let s=/MSIE\s(\d+)\.\d/.exec(yt),i=s&&parseFloat(s[1]);return!i&&/Trident\/7.0/i.test(yt)&&/rv:11.0/.test(yt)&&(i=11),i}return NaN}(),ts=X("(micromessenger|webbrowser)"),On=Re("MicroMessenger"),is=!bt&&X("MQQBrowser")&&X("COVC"),rs=!bt&&X("MQQBrowser")&&!X("COVC"),Kr=rs||is?Re("MQQBrowser"):"",ro=!bt&&X(" QQBrowser"),Mn=Re(" QQBrowser"),so=!bt&&X("QQBrowserLite"),kn=Re("QQBrowserLite"),oo=!bt&&X("MQBHD"),Ln=Re("MQBHD"),fi=X("Windows"),Nt=!xe&&X("MAC OS X"),no=!me&&X("Linux"),Fc=X("CrOS"),Rf=X("MicroMessenger"),Hc=X("UCBrowser"),yf=X("Electron"),ao=X("MiuiBrowser"),Pn=Re("MiuiBrowser"),co=X("HuaweiBrowser"),$c=X("Huawei")||X("HUAWEI"),Gc=X("Honor")||X("HONOR"),wn=Re("HuaweiBrowser"),lo=X("SamsungBrowser"),xn=Re("SamsungBrowser"),ss=X("HeyTapBrowser"),Un=Re("HeyTapBrowser"),os=X("VivoBrowser"),Vn=Re("VivoBrowser"),_i=()=>wc("Chrome"),vt=X("Chrome"),ns=!Zr&&!to&&!eo&&!bt&&!io&&!es&&!ro&&!ao&&!co&&!lo&&!ss&&!os&&vt,Wc=X("HeadlessChrome"),Dt=_i(),Bn=Re("Chrome"),ze=!vt&&!rs&&!is&&!so&&!oo&&X("Safari"),Ji=ze||xe,qi=Re("Version"),Jc=/Android.*(wv|.0.0.0)/.test(yt),ji=(()=>{if(xc)return qi;if(xe){let s=yt.match(/OS (\d+)_(\d+)/i);if(s&&s[1]){let i=s[1];return s[2]&&(i+=`.${s[2]}`),i}}return""})(),ot=Number(ji.split(".")[0]),bf=qi==="15.1",qc=ji==="15.1",jc=(()=>{let s=Number(ji.split(".")[0]);return s===14||s===13})(),Ot=typeof location=="undefined"?!1:location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1",gi=(()=>{let s;return()=>{if(typeof s=="undefined")try{s=!!window.localStorage}catch(i){s=!1}return s}})(),Wt=Xu();function Xu(){let s=new Map([[ae,["Firefox",Cn]],[es,["Edg",yn]],[ns,["Chrome",Bn]],[ze,["Safari",qi]],[bt,["TBS",vn]],[io,["XWEB",Dn]],[ts&&mr,["WeChat",On]],[ro,["QQ(Win)",Mn]],[rs,["QQ(Mobile)",Kr]],[is,["QQ(Mobile X5)",Kr]],[so,["QQ(Mac)",kn]],[oo,["QQ(iPad)",Ln]],[ao,["MI",Pn]],[co,["HW",wn]],[lo,["Samsung",xn]],[ss,["OPPO",Un]],[os,["VIVO",Vn]],[Zr,["EDGE",Rn]],[eo,["SogouMobile",bn]],[to,["Sogou",Nn]]]),i="unknown",e="unknown";return s.has(!0)&&([i,e]=s.get(!0)),{name:i,version:e}}var ne=null,Rt="";function uo(){return f(this,null,function*(){if(ne)return ne;if(!navigator.userAgentData||typeof navigator.userAgentData.getHighEntropyValues!="function")return null;try{return ne=yield navigator.userAgentData.getHighEntropyValues(["architecture","bitness","model","platformVersion","fullVersionList"]),ne&&!Rt&&(Rt=`UAData: ${ne.platform}/${ne.platformVersion}`,ne.architecture&&ne.bitness&&(Rt+=` ${ne.architecture}/${ne.bitness}`),ne.mobile&&(Rt+=" mobile"),ne.model&&(Rt+=` model: ${ne.model}`),ne.fullVersionList&&(Rt+=` ${ne.fullVersionList.filter(s=>s.brand!=="Not/A)Brand").map(s=>`${s.brand}/${s.version}`).join(",")}`)),ne}catch(s){return null}})}function pr(){return(ne==null?void 0:ne.model)||""}var Ju=new Map([[me,"Android"],[xe,"iOS"],[fi,"Windows"],[Nt,"MacOS"],[no,"Linux"],[Fc,"ChromeOS"]]),Fn=function(){return Ju.get(!0)?Ju.get(!0):ne?ne.platform:"unknown"};function ho(){return fi?1:me?2:Nt?3:xe?4:no?5:Fc?6:0}var Ti=()=>{let s=Fn();return s+=`/${Wt.name}/${ze?Wt.version:Wt.version.split(".")[0]}`,ne!=null&&ne.platformVersion&&(s+=`/${ne.platformVersion}`),ne!=null&&ne.architecture&&(s+=`/${ne.architecture}`),s};function Xc(){return me?4:mr?2:Zs?3:Nt?12:fi?5:no?13:1}function Nf(){return me?"Android":mr?"iPhone":Zs?"iPad":Nt?"Mac":fi?"Windows":no?"Linux":"unknown"}var Qu=ke(Ge(),1),vf=new Qu.default,E=vf;var Ei=(W=>(W.ROOM_DESTROY="1",W.JOIN_START="21",W.JOIN_SCHEDULE_SUCCESS="22",W.JOIN_SIGNAL_CONNECTION_START="23",W.JOIN_SIGNAL_CONNECTION_END="24",W.JOIN_SEND_CMD="25",W.JOIN_RECEIVED_CMD_RES="26",W.JOIN_SUCCESS="27",W.JOIN_FAILED="28",W.LEAVE_START="51",W.LEAVE_SEND_CMD="52",W.LEAVE_SUCCESS="53",W.PUBLISH_START="61",W.SEND_FIRST_VIDEO_FRAME="62",W.PUBLISH_FAILED="63",W.SUBSCRIBE_START="81",W.SUBSCRIBE_SUCCESS="82",W.SUBSCRIBE_FAILED="84",W.UNSUBSCRIBE_SUCCESS="83",W.LOCAL_TRACK_CAPTURE_START="101",W.LOCAL_TRACK_CAPTURE_SUCCESS="102",W.LOCAL_TRACK_CAPTURE_FAILED="103",W.LOCAL_TRACK_PUBLISHED="104",W.LOCAL_TRACK_UNPUBLISHED="105",W.LOCAL_TRACK_REPLACED="106",W.SWITCH_DEVICE_SUCCESS="107",W.TRACK_MUTED="108",W.TRACK_UNMUTED="109",W.REMOTE_TRACK_SUBSCRIBED="110",W.REMOTE_TRACK_UNSUBSCRIBED="111",W.LOCAL_TRACK_RECAPTURE="112",W.PLAY_TRACK_START="151",W.PLAYER_STATE_CHANGED="152",W.VIDEO_LOADED_DATA="153",W.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",W.SIGNAL_CONNECTION_STATE_CHANGED="201",W.PEER_CONNECTION_STATE_CHANGED="202",W.SINGLE_CONNECTION_STAT="203",W.SPC_RECONNECTED="204",W.HEARTBEAT_REPORT="251",W.RECEIVED_PUBLISHED_USER_LIST="252",W.REMOTE_PUBLISH_STATE_CHANGED="253",W.AUDIO_LEVEL_INTERVAL="260",W.NETWORK_QUALITY="261",W.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",W.QUALITY_LIMITATION_CHANGED="263",W.LOG="264",W))(Ei||{});var T=Ei;var Df="%cTRTC%c%s",Of="padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;",Mf="display: inline",Hn=class Hn{constructor(){c(this,"_isEnableUploadLog",!0);c(this,"_localJoinedUser",new Map);c(this,"_queue",[]);c(this,"_timeoutId",-1);c(this,"_logLevel",1);c(this,"_logLevelToUpload",2);!Fr&&!Hs&&(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&this._timeoutId!==-1}installEvents(){E.on(T.JOIN_SCHEDULE_SUCCESS,({schedule:i})=>{var e;(e=i==null?void 0:i.config)!=null&&e.logLevelToUpload&&St[i.config.logLevelToUpload]&&(this._logLevelToUpload=i.config.logLevelToUpload)}),E.on(T.JOIN_SUCCESS,({room:i})=>{this.addJoinedUser({userId:i.userId,sdkAppId:i.sdkAppId}),this.startUpload()}),E.once(T.JOIN_FAILED,()=>{this.startUpload()}),E.on(T.LEAVE_SUCCESS,({room:i})=>{this.deleteJoinedUser(i.userId)})}startUpload(){this._timeoutId===-1&&this.uploadInterval()}addJoinedUser(i){this._localJoinedUser.set(i.userId,i),this.startUpload()}deleteJoinedUser(i){this._localJoinedUser.delete(i)}uploadInterval(){this.upload().catch(()=>{}),this._timeoutId=window.setTimeout(()=>this.uploadInterval(),5e3)}getLogsToUpload(){let i={map:new Map,splicedQueue:[]};if(this._queue[0].forAllJoinedClients&&this._localJoinedUser.size===0)return i;let e=0;for(;e<this._queue.length&&e!==50;e++){let t=this._queue[e];if(t.forAllJoinedClients)this._localJoinedUser.forEach(({userId:r,sdkAppId:o})=>{i.map.has(r)?i.map.get(r).logs.push(t):i.map.set(r,{userId:r,sdkAppId:o,logs:[t]})});else if(K(t.userId)&&Y(t.sdkAppId)){let{userId:r,sdkAppId:o}=t;i.map.has(r)?i.map.get(r).logs.push(t):i.map.set(r,{userId:r,sdkAppId:o,logs:[t]})}}return i.map.size>0&&(i.splicedQueue=this._queue.splice(0,e)),i}upload(){return f(this,null,function*(){if(this._queue.length===0||!this._isEnableUploadLog)return;let{map:i,splicedQueue:e}=this.getLogsToUpload();if(i.size===0)return;try{let r=[...i.values()];for(let o=0;o<r.length;o++){let{userId:n,sdkAppId:a,logs:d}=r[o];yield this.uploadLogWithRetry(JSON.stringify({timestamp:an(),sdkAppId:String(a),userId:n,version:Ce,log:d.map(l=>l.log).join(`
6
+ `)}),a),d.forEach(l=>l.uploaded=!0)}}catch(r){}let t=e.filter(r=>!r.uploaded);t.length>0&&(this._queue=t.concat(this._queue))})}uploadLogWithRetry(i,e){return Gt({retryFunction:()=>mi({url:li(e,Vi.LOG),body:i,timeout:5e3,priority:"low"}),settings:{retries:3,timeout:2e3},onError:({retry:t})=>{t()}})()}getPrefix(i){let e=new Date;e.setTime(Bs());let t=String(e.getMilliseconds());return"padStart"in String.prototype&&(t=t.toString().padStart(3,"0")),`[${e.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/,"$1")}:${t}] <${St[i]}>`}getLogLevel(){return this._logLevel}setLogLevel(i){g(St[i])||(this._logLevel!==i&&this.info("setLogLevel",i),this._logLevel=i)}enableUploadLog(){this._isEnableUploadLog=!0}disableUploadLog(){this.warn("disableUploadLog"),this._isEnableUploadLog=!1}logChunkToString(i){if(K(i))return i;try{return i instanceof Error?i.toString():JSON.stringify(i)}catch(e){return""}}log(i,e,t=!0,r,o){var d;e.unshift(this.getPrefix(i));let n={log:e.reduce((l,m)=>`${l} ${this.logChunkToString(m)}`.trim(),""),level:i,userId:r,sdkAppId:o,forAllJoinedClients:t};if(E.emit(T.LOG,{log:n}),this._isEnableUploadLog&&i>=this._logLevelToUpload&&this._queue.push(n),i<this._logLevel)return;let a=((d=St[i])==null?void 0:d.toLowerCase())||"info";Hn.PRINT_LOG_TAG?console[a](Df,Of,Mf,...e):console[a](...e)}debug(...i){this.log(1,i)}info(...i){this.log(2,i)}warn(...i){this.log(3,i)}error(...i){this.log(4,i)}createLogger(i){return new Yr(i)}checkURLParam(){let e=new URLSearchParams(location.search).get("logLevelToUpload"),t=e?Number(e):-1;St[t]&&(this._logLevelToUpload=t)}getQueue(){return this._queue}};c(Hn,"PRINT_LOG_TAG",!(xe||me||Wc));var Qc=Hn,C=new Qc;var kf=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,s=>{let i=Math.random()*16|0;return(s=="x"?i:i&3|8).toString(16)})},mo=kf;var zc=class{constructor(){c(this,"_prefix","TRTC");c(this,"_queue",new Map)}getRealKey(i){return`${this._prefix}_${i}`}checkStorage(){if(!gi())return;setInterval(this.doFlush.bind(this),2e4),Object.keys(localStorage).filter(t=>{if(t.startsWith(this._prefix))try{let r=localStorage.getItem(t);if(!r)return!1;let o=JSON.parse(r);if(o&&o.expiresIn<Date.now())return!0}catch(r){return!1}return!1}).forEach(t=>localStorage.removeItem(t))}doFlush(){if(gi())try{for(let[i,e]of this._queue)localStorage.setItem(i,JSON.stringify(e))}catch(i){C.warn(i)}}getItem(i){if(!gi())return null;try{let e=localStorage.getItem(this.getRealKey(i));if(!e)return null;let t=JSON.parse(e);return t&&t.expiresIn>=Date.now()?t.value:null}catch(e){C.warn(e)}}setItem(i,e){if(gi())try{let t={expiresIn:Date.now()+ln,value:e};this._queue.set(this.getRealKey(i),t)}catch(t){C.warn(t)}}deleteItem(i){if(!gi())return!1;try{return i=this.getRealKey(i),this._queue.delete(i),localStorage.removeItem(i),!0}catch(e){return C.warn(e),!1}}clear(){if(gi())try{localStorage.clear()}catch(i){C.warn(i)}}},cs=new zc;var jt={};ni(jt,{HTTPS_API:()=>zf,IS_GET_CAPABILITIES_SUPPORTED:()=>Id,IS_GET_SETTINGS_SUPPORTED:()=>qt,IS_GET_SYNCHRONIZATION_SOURCES_SUPPORTED:()=>Sd,IS_INSERTABLE_STREAM_SUPPORTED:()=>Ri,IS_JITTER_BUFFER_TARGET_SUPPORTED:()=>Rd,IS_RTC_RTP_SENDER_SUPPORTED:()=>Io,IS_SCRIPT_TRANSFORM_SUPPORTED:()=>Yn,IS_SEI_SUPPORTED:()=>Co,IS_SPC_SUPPORTED:()=>us,basis:()=>e_,capabilityCheck:()=>Cd,checkSystemRequirementsInternal:()=>zn,decodeSupportStatus:()=>Qn,encodeSupportStatus:()=>_d,getBrowserInfo:()=>jf,getDisplayResolution:()=>_h,isAddTransceiverSupported:()=>pt,isBrowserSupported:()=>gd,isGetReceiversSupported:()=>Er,isGetSendersSupported:()=>Yi,isGetTransceiversSupported:()=>Jt,isGetUserMediaSupported:()=>gh,isMediaDevicesSupported:()=>Xn,isMediaSessionSupported:()=>Ih,isMediaStreamTrackProcessorSupported:()=>Td,isReplaceTrackSupported:()=>Ed,isRequestVideoFrameCallbackSupported:()=>Sr,isSIMDSupported:()=>Zf,isScreenCaptureApiAvailable:()=>Eo,isSelectedCandidatePair:()=>zi,isSetParametersSupported:()=>Ao,isSmallStreamAPISupported:()=>Eh,isSmallStreamSupported:()=>So,isStopTransceiverSupported:()=>Kf,isTRTCSupported:()=>Xf,isUnifiedPlanDefault:()=>Yf,isUsedInHttpProtocol:()=>Ci,isWebAudioSupported:()=>Th,isWebCodecSupported:()=>Sh,isWebCodecsSupported:()=>fh,isWebRTCSupported:()=>Ad,isWebTransportSupported:()=>Ah});var dd={};ni(dd,{AUDIO_LEVEL_SCALE:()=>mt,AudioCodecPipelineType:()=>ad,AudioDecoderDowngradeState:()=>ed,AudioPlayerMode:()=>od,AudioType:()=>Zu,BASIC_TYPE:()=>_r,BannedReason:()=>nd,CONNECTION_CLOSED_REASON:()=>Kc,ClientEvent:()=>zu,CodecType:()=>sh,ConnectionEvent:()=>Mt,ConnectionState:()=>nt,DECODE_FAILED_ERROR_CODE:()=>cd,FacingMode:()=>$n,LeaveReason:()=>rh,LocalTrackEvent:()=>po,MULTI_VIDEO_DATA_TYPE:()=>kt,MediaType:()=>Ne,MediaTypeLabel:()=>Lf,MonitorEventId:()=>_o,MutedFlag:()=>Ku,NetworkQualityValue:()=>sd,PlayerState:()=>ds,ReceiveMode:()=>ih,RemoteStreamType:()=>Ye,RemoteTrackEvent:()=>fo,RoomEvent:()=>Xi,SceneNumber:()=>Zc,StreamEvent:()=>Yu,StreamType:()=>th,SubscribeMediaType:()=>Yc,TRACK_ACTION:()=>rd,TRACK_KIND:()=>id,TrackEvent:()=>Si,UserRole:()=>We,UserRoleNumber:()=>fr,VideoCodec:()=>Qi,VideoCodecPipelineType:()=>Wn,VideoContentHint:()=>go,VideoDecoderDowngradeState:()=>td,VideoPlayerMode:()=>Gn,VideoType:()=>eh});var Mt=(R=>(R.TRACK_ADDED="track-added",R.TRACK_UPDATED="track-updated",R.TRACK_SUBSCRIBED="track-subscribed",R.STREAM_ADDED="stream-added",R.STREAM_REMOVED="stream-removed",R.STREAM_UPDATED="stream-updated",R.STREAM_PUBLISHED="stream-published",R.STREAM_SUBSCRIBED="stream-subscribed",R.STREAM_UNSUBSCRIBED="stream-unsubscribed",R.STATE_CHANGED="state-changed",R.ERROR="error",R.CONNECTION_STATE_CHANGED="connection-state-changed",R.FIREWALL_RESTRICTION="firewall-restriction",R.SEI_MESSAGE="sei-message",R.CLOSED="closed",R))(Mt||{}),Kc=(n=>(n.REMOTE_LEAVE="remote user exitRoom",n.REMOTE_UNPUBLISH="remote user unpublished",n.LOCAL_LEAVE="you exitRoom",n.LOCAL_UNPUBLISH="you unpublished",n.LOCAL_UNSUBSCRIBE="you unsubscribed",n.SWITCH_ROLE="you switch role to audience",n))(Kc||{}),zu=(D=>(D.STREAM_ADDED="stream-added",D.STREAM_REMOVED="stream-removed",D.STREAM_UPDATED="stream-updated",D.STREAM_SUBSCRIBED="stream-subscribed",D.CONNECTION_STATE_CHANGED="connection-state-changed",D.PEER_JOIN="peer-join",D.PEER_LEAVE="peer-leave",D.MUTE_AUDIO="mute-audio",D.MUTE_VIDEO="mute-video",D.UNMUTE_AUDIO="unmute-audio",D.UNMUTE_VIDEO="unmute-video",D.CLIENT_BANNED="client-banned",D.NETWORK_QUALITY="network-quality",D.AUDIO_VOLUME="audio-volume",D.SEI_MESSAGE="sei-message",D.ERROR="error",D))(zu||{}),Yu=(o=>(o.PLAYER_STATE_CHANGED="player-state-changed",o.SCREEN_SHARING_STOPPED="screen-sharing-stopped",o.CONNECTION_STATE_CHANGED="connection-state-changed",o.DEVICE_AUTO_RECOVERED="device-auto-recovered",o.ERROR="error",o))(Yu||{}),po=(n=>(n.DEVICE_AUTO_RECOVERED="1",n.DEVICE_RECOVER_FAILED="5",n.DEVICE_CHANGED="2",n.ERROR="3",n.PUBLISH_STATE_CHANGED="4",n.ENCODE_FAILED="6",n))(po||{}),ds=(t=>(t.PAUSED="PAUSED",t.PLAYING="PLAYING",t.STOPPED="STOPPED",t))(ds||{}),Xi=(te=>(te.PEER_JOIN="peer-join",te.PEER_LEAVE="peer-leave",te.SIGNAL_CONNECTION_STATE_CHANGED="signal-connection-state-changed",te.MEDIA_CONNECTION_STATE_CHANGED="media-connection-state-changed",te.BANNED="banned",te.NETWORK_QUALITY="network-quality",te.AUDIO_VOLUME="audio-volume",te.SEI_MESSAGE="sei-message",te.ERROR="error",te.REMOTE_PUBLISH_STATE_CHANGED="remote-publish-state-changed",te.REMOTE_PUBLISHED="remote-published",te.REMOTE_UNPUBLISHED="remote-unpublished",te.FIREWALL_RESTRICTION="firewall-restriction",te.HEARTBEAT_REPORT="heartbeat-report",te.CUSTOM_MESSAGE="custom-message",te.LAYER_DATA="layerData",te.FIRST_VIDEO_FRAME="first-video-frame",te.DUMP="dump",te))(Xi||{}),Si=(a=>(a.PLAYER_STATE_CHANGED="player-state-changed",a.MUTE="mute",a.UNMUTE="unmute",a.ERROR="error",a.INPUT_MEDIA_TRACK_CHANGED="input-media-track-changed",a.OUTPUT_MEDIA_TRACK_CHANGED="output-media-track-changed",a.FIRST_VIDEO_FRAME="first-video-frame",a))(Si||{}),fo=(e=>(e.DECODE_FAILED="decode-failed",e.DECODE_DOWNGRADE_STATE_CHANGED="decode-downgrade-state-changed",e))(fo||{}),Ku=(a=>(a[a.VIDEO=1]="VIDEO",a[a.SMALL=2]="SMALL",a[a.AUX=4]="AUX",a[a.AUDIO=8]="AUDIO",a[a.VIDEO_MUTE=16]="VIDEO_MUTE",a[a.AUX_MUTE=32]="AUX_MUTE",a[a.AUDIO_MUTE=64]="AUDIO_MUTE",a))(Ku||{}),Zc=(e=>(e[e.RTC=1]="RTC",e[e.LIVE=2]="LIVE",e))(Zc||{}),fr=(e=>(e[e.ANCHOR=20]="ANCHOR",e[e.AUDIENCE=21]="AUDIENCE",e))(fr||{}),We=(e=>(e.ANCHOR="anchor",e.AUDIENCE="audience",e))(We||{}),nt=(o=>(o.CONNECTED="CONNECTED",o.DISCONNECTED="DISCONNECTED",o.CONNECTING="CONNECTING",o.RECONNECTED="RECONNECTED",o.RECONNECTING="RECONNECTING",o))(nt||{}),ed=(r=>(r.INITIALIZED="INITIALIZED",r.STARTING="STARTING",r.STARTED="STARTED",r.FAILED="FAILED",r))(ed||{}),td=(r=>(r.INITIALIZED="INITIALIZED",r.STARTING="STARTING",r.STARTED="STARTED",r.FAILED="FAILED",r))(td||{}),id=(t=>(t.AUDIO="audio",t.VIDEO="video",t.AUXILIARY="auxVideo",t))(id||{}),rd=(e=>(e.ADD="add",e.REMOVE="remove",e))(rd||{}),Ne=(o=>(o[o.NULL=0]="NULL",o[o.AUDIO=1]="AUDIO",o[o.AUX_VIDEO=2]="AUX_VIDEO",o[o.BIG_VIDEO=4]="BIG_VIDEO",o[o.SMALL_VIDEO=8]="SMALL_VIDEO",o))(Ne||{}),Lf={1:"audio",2:"auxVideo",4:"video"},Zu=(i=>(i[i.opus=111]="opus",i))(Zu||{}),eh=(e=>(e[e.h264=100]="h264",e[e.vp8=101]="vp8",e))(eh||{}),th=(e=>(e.Big="big",e.Small="small",e))(th||{}),Ye=(e=>(e.Main="main",e.Aux="auxiliary",e))(Ye||{}),kt=(o=>(o[o.MULTI_DATA_AUDIO=1]="MULTI_DATA_AUDIO",o[o.MULTI_DATA_BIG_IMG=2]="MULTI_DATA_BIG_IMG",o[o.MULTI_DATA_SMALL_IMG=3]="MULTI_DATA_SMALL_IMG",o[o.MULTI_DATA_AUX_IMG=7]="MULTI_DATA_AUX_IMG",o[o.MULTI_DATA_TYPE_BUTT=12]="MULTI_DATA_TYPE_BUTT",o))(kt||{}),_o=(O=>(O[O.PUBLISH_VIDEO=32768]="PUBLISH_VIDEO",O[O.PUBLISH_AUDIO=32769]="PUBLISH_AUDIO",O[O.UNPUBLISH_VIDEO=32770]="UNPUBLISH_VIDEO",O[O.UNPUBLISH_AUDIO=32771]="UNPUBLISH_AUDIO",O[O.MUTE_AUDIO=32772]="MUTE_AUDIO",O[O.MUTE_VIDEO=32773]="MUTE_VIDEO",O[O.UNMUTE_AUDIO=32774]="UNMUTE_AUDIO",O[O.UNMUTE_VIDEO=32775]="UNMUTE_VIDEO",O[O.SUBSCRIBE_VIDEO=32776]="SUBSCRIBE_VIDEO",O[O.SUBSCRIBE_AUDIO=32777]="SUBSCRIBE_AUDIO",O[O.UNSUBSCRIBE_VIDEO=32778]="UNSUBSCRIBE_VIDEO",O[O.UNSUBSCRIBE_AUDIO=32779]="UNSUBSCRIBE_AUDIO",O[O.SWITCH_CAMERA=32780]="SWITCH_CAMERA",O[O.SWITCH_MICROPHONE=32781]="SWITCH_MICROPHONE",O[O.REPLACE_VIDEO=32782]="REPLACE_VIDEO",O[O.REPLACE_AUDIO=32783]="REPLACE_AUDIO",O[O.MUTE_REMOTE_VIDEO=32784]="MUTE_REMOTE_VIDEO",O[O.MUTE_REMOTE_AUDIO=32785]="MUTE_REMOTE_AUDIO",O[O.UNMUTE_REMOTE_VIDEO=32786]="UNMUTE_REMOTE_VIDEO",O[O.UNMUTE_REMOTE_AUDIO=32787]="UNMUTE_REMOTE_AUDIO",O[O.JOIN=32788]="JOIN",O[O.LEAVE=32789]="LEAVE",O[O.SIGNAL_DISCONNECTED=32790]="SIGNAL_DISCONNECTED",O[O.SIGNAL_CONNECTED=32791]="SIGNAL_CONNECTED",O[O.TRANSPORT_UPLINK_CONNECTED=32792]="TRANSPORT_UPLINK_CONNECTED",O[O.TRANSPORT_DOWNLINK_CONNECTED=32793]="TRANSPORT_DOWNLINK_CONNECTED",O[O.SIGNAl_RECONNECTING=32794]="SIGNAl_RECONNECTING",O[O.SIGNAL_RECONNECT_SUCCESS=32795]="SIGNAL_RECONNECT_SUCCESS",O[O.SIGNAL_RECONNECT_FAIL=32796]="SIGNAL_RECONNECT_FAIL",O[O.TRANSPORT_UPLINK_RECONNECTING=32797]="TRANSPORT_UPLINK_RECONNECTING",O[O.TRANSPORT_UPLINK_RECONNECT_SUCCESS=32798]="TRANSPORT_UPLINK_RECONNECT_SUCCESS",O[O.TRANSPORT_UPLINK_RECONNECT_FAIL=32799]="TRANSPORT_UPLINK_RECONNECT_FAIL",O[O.TRANSPORT_DOWNLINK_RECONNECTING=32800]="TRANSPORT_DOWNLINK_RECONNECTING",O[O.TRANSPORT_DOWNLINK_RECONNECT_SUCCESS=32801]="TRANSPORT_DOWNLINK_RECONNECT_SUCCESS",O[O.TRANSPORT_DOWNLINK_RECONNECT_FAIL=32802]="TRANSPORT_DOWNLINK_RECONNECT_FAIL",O[O.SUBSCRIBE_SMALL_VIDEO=32803]="SUBSCRIBE_SMALL_VIDEO",O[O.UNSUBSCRIBE_SMALL_VIDEO=32804]="UNSUBSCRIBE_SMALL_VIDEO",O[O.PUBLISH_AUX=32805]="PUBLISH_AUX",O[O.UNPUBLISH_AUX=32806]="UNPUBLISH_AUX",O[O.DEVICE_CAPTURE=2003]="DEVICE_CAPTURE",O[O.VIDEO_ENCODER=4004]="VIDEO_ENCODER",O[O.VIDEO_DECODER=4005]="VIDEO_DECODER",O))(_o||{}),sd=(a=>(a[a.UNKNOWN=0]="UNKNOWN",a[a.EXCELLENT=1]="EXCELLENT",a[a.GOOD=2]="GOOD",a[a.POOR=3]="POOR",a[a.BAD=4]="BAD",a[a.VERY_BAD=5]="VERY_BAD",a[a.DISCONNECTED=6]="DISCONNECTED",a))(sd||{}),ih=(r=>(r[r.MANUAL=0]="MANUAL",r[r.AUTO_AUDIO=1]="AUTO_AUDIO",r[r.AUTO_VIDEO=2]="AUTO_VIDEO",r[r.AUTO_ALL=3]="AUTO_ALL",r))(ih||{}),$n=(e=>(e.user="user",e.environment="environment",e))($n||{}),Gn=(t=>(t[t.ELEMENT=0]="ELEMENT",t[t.CANVAS_FROM_ELEMENT=1]="CANVAS_FROM_ELEMENT",t[t.CANVAS_WITHOUT_ELEMENT=2]="CANVAS_WITHOUT_ELEMENT",t))(Gn||{}),od=(e=>(e[e.ELEMENT=0]="ELEMENT",e[e.CONTEXT=1]="CONTEXT",e))(od||{}),nd=(r=>(r.BANNED="banned",r.KICK="kick",r.USER_TIME_OUT="user_time_out",r.ROOM_DISBAND="room_disband",r))(nd||{}),rh=(l=>(l[l.USER_EXIT_REASON_TC_USER_EXIT_NORMAL=0]="USER_EXIT_REASON_TC_USER_EXIT_NORMAL",l[l.USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT=1]="USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT",l[l.USER_EXIT_REASON_TC_USER_EXIT_KICKED=2]="USER_EXIT_REASON_TC_USER_EXIT_KICKED",l[l.USER_EXIT_REASON_TC_USER_EXIT_CHANGED=3]="USER_EXIT_REASON_TC_USER_EXIT_CHANGED",l[l.USER_KICK_OUT_CODE_BUSINESS_USER=4]="USER_KICK_OUT_CODE_BUSINESS_USER",l[l.USER_KICK_OUT_CODE_BUSINESS_ROOM=5]="USER_KICK_OUT_CODE_BUSINESS_ROOM",l[l.USER_KICK_OUT_CODE_SERVER_USER=6]="USER_KICK_OUT_CODE_SERVER_USER",l[l.USER_KICK_OUT_CODE_SERVER_ROOM=7]="USER_KICK_OUT_CODE_SERVER_ROOM",l[l.USER_KICK_SESS_EXSIT=8]="USER_KICK_SESS_EXSIT",l))(rh||{}),mt=1e8,Yc=class{constructor(){c(this,"mediaType",0)}set audio(i){i?this.mediaType|=1:this.mediaType&=-2}get audio(){return!!(this.mediaType&1)}set video(i){i?this.mediaType|=4:this.mediaType&=-5}get video(){return!!(this.mediaType&4)}set auxiliary(i){i?this.mediaType|=2:this.mediaType&=-3}get auxiliary(){return!!(this.mediaType&2)}set smallVideo(i){i?this.mediaType|=8:this.mediaType&=-9}get smallVideo(){return!!(this.mediaType&8)}},_r=(o=>(o.String="string",o.Number="number",o.Boolean="boolean",o.Array="array",o.Object="object",o))(_r||{}),Qi=(t=>(t.H264="h264",t.H265="h265",t.VP8="vp8",t))(Qi||{}),Wn=(r=>(r[r.ENCRYPT_AND_DECRYPT=0]="ENCRYPT_AND_DECRYPT",r[r.DUMP=1]="DUMP",r[r.SEI=2]="SEI",r[r.ENCODE_AND_DECODE=3]="ENCODE_AND_DECODE",r))(Wn||{}),ad=(r=>(r[r.ENCRYPT_AND_DECRYPT=0]="ENCRYPT_AND_DECRYPT",r[r.NTP_TO_AUDIO_FRAME=1]="NTP_TO_AUDIO_FRAME",r[r.DUMP=2]="DUMP",r[r.ENCODE_AND_DECODE=3]="ENCODE_AND_DECODE",r))(ad||{}),sh=(t=>(t.WebRTC="webrtc",t.WebCodecs="webcodecs",t.WebAssembly="webassembly",t))(sh||{}),cd=(u=>(u[u.SUCCESS=0]="SUCCESS",u[u.FAILED=1]="FAILED",u[u.WEBCODEC_INIT=2]="WEBCODEC_INIT",u[u.WEBCODEC_CONFIG_NOT_SUPPORT=3]="WEBCODEC_CONFIG_NOT_SUPPORT",u[u.WEBCODEC_DECODER_ERROR=4]="WEBCODEC_DECODER_ERROR",u[u.WEBCODEC_TRACK_MUTE=5]="WEBCODEC_TRACK_MUTE",u[u.WASM_INIT=6]="WASM_INIT",u[u.WASM_WEBGL_UNAVALIABLE=7]="WASM_WEBGL_UNAVALIABLE",u[u.WASM_DECODER_ERROR=8]="WASM_DECODER_ERROR",u[u.WASM_TRACK_MUTE=9]="WASM_TRACK_MUTE",u[u.TEST=10]="TEST",u))(cd||{}),go=(r=>(r.NONE="",r.DETAIL="detail",r.MOTION="motion",r.TEXT="text",r))(go||{});var x={AVOID_REPEATED_CALL:"AVOID_REPEATED_CALL",INVALID_PARAMETER_REQUIRED:"INVALID_PARAMETER_REQUIRED",INVALID_PARAMETER_TYPE:"INVALID_PARAMETER_TYPE",INVALID_PARAMETER_EMPTY:"INVALID_PARAMETER_EMPTY",INVALID_PARAMETER_INSTANCE:"INVALID_PARAMETER_INSTANCE",INVALID_PARAMETER_RANGE:"INVALID_PARAMETER_RANGE",INVALID_PARAMETER_MIN:"INVALID_PARAMETER_MIN",INVALID_PARAMETER_MAX:"INVALID_PARAMETER_MAX",INVALID_PARAMETER_STREAMTYPE:"INVALID_PARAMETER_STREAMTYPE",API_CALL_TIMEOUT:"API_CALL_TIMEOUT",SIGNAL_CHANNEL_RECONNECTION_FAILED:"SIGNAL_CHANNEL_RECONNECTION_FAILED",SIGNAL_CHANNEL_SETUP_FAILED:"SIGNAL_CHANNEL_SETUP_FAILED",ERROR_MESSAGE:"ERROR_MESSAGE",EXCHANGE_SDP_TIMEOUT:"EXCHANGE_SDP_TIMEOUT",DOWNLINK_RECONNECTION_FAILED:"DOWNLINK_RECONNECTION_FAILED",EXCHANGE_SDP_FAILED:"EXCHANGE_SDP_FAILED",UPDATE_OFFER_TIMEOUT:"UPDATE_OFFER_TIMEOUT",UPLINK_RECONNECTION_FAILED:"UPLINK_RECONNECTION_FAILED",INVALID_RECORDID:"INVALID_RECORDID",INVALID_PURE_AUDIO:"INVALID_PURE_AUDIO",INVALID_STREAMID:"INVALID_STREAMID",INVALID_USER_DEFINE_RECORDID:"INVALID_USER_DEFINE_RECORDID",INVALID_USER_DEFINE_PUSH_ARGS:"INVALID_USER_DEFINE_PUSH_ARGS",INVALID_PROXY:"INVALID_PROXY",INVALID_JOIN:"INVALID_JOIN",INVALID_ROOMID_STRING:"INVALID_ROOMID_STRING",INVALID_ROOMID_INTEGER:"INVALID_ROOMID_INTEGER",INVALID_SIGNAL_CHANNEL:"INVALID_SIGNAL_CHANNEL",JOIN_ROOM_TIMEOUT:"JOIN_ROOM_TIMEOUT",JOIN_ROOM_FAILED:"JOIN_ROOM_FAILED",REJOIN_ROOM_FAILED:"REJOIN_ROOM_FAILED",INVALID_DESTROY:"INVALID_DESTROY",INVALID_PUBLISH:"INVALID_PUBLISH",INVALID_UNPUBLISH:"INVALID_UNPUBLISH",INVALID_AUDIENCE:"INVALID_AUDIENCE",INVALID_INITIALIZE:"INVALID_INITIALIZE",INVALID_DUPLICATE_PUBLISHING:"INVALID_DUPLICATE_PUBLISHING",INVALID_SUBSCRIBE_UNDEFINED:"INVALID_SUBSCRIBE_UNDEFINED",INVALID_SUBSCRIBE_LOCAL:"INVALID_SUBSCRIBE_LOCAL",INVALID_REMOTE_STREAM:"INVALID_REMOTE_STREAM",SUBSCRIBE_FAILED:"SUBSCRIBE_FAILED",INVALID_ROLE:"INVALID_ROLE",INVALID_PARAMETER_SWITCH_ROLE:"INVALID_PARAMETER_SWITCH_ROLE",INVALID_OPERATION_SWITCH_ROLE:"INVALID_OPERATION_SWITCH_ROLE",SWITCH_ROLE_TIMEOUT:"SWITCH_ROLE_TIMEOUT",SWITCH_ROLE_FAILED:"SWITCH_ROLE_FAILED",CLIENT_BANNED:"CLIENT_BANNED",INVALID_OPERATION_START_PUBLISH_CDN:"INVALID_OPERATION_START_PUBLISH_CDN",INVALID_OPERATION_STOP_PUBLISH_CDN:"INVALID_OPERATION_STOP_PUBLISH_CDN",INVALID_STREAM_ID:"INVALID_STREAM_ID",START_PUBLISH_CDN_FAILED:"START_PUBLISH_CDN_FAILED",STOP_PUBLISH_CDN_FAILED:"STOP_PUBLISH_CDN_FAILED",START_MIX_TRANSCODE:"START_MIX_TRANSCODE",STOP_MIX_TRANSCODE:"STOP_MIX_TRANSCODE",INVALID_AUDIO_VOLUME:"INVALID_AUDIO_VOLUME",ENABLE_SMALL_STREAM_PUBLISHED:"ENABLE_SMALL_STREAM_PUBLISHED",DISABLE_SMALL_STREAM_PUBLISHED:"DISABLE_SMALL_STREAM_PUBLISHED",NOT_SUPPORTED_SMALL_STREAM:"NOT_SUPPORTED_SMALL_STREAM",INVALID_SMALL_STREAM_PROFILE:"INVALID_SMALL_STREAM_PROFILE",INVALID_PARAMETER_REMOTE_STREAM:"INVALID_PARAMETER_REMOTE_STREAM",INVALID_OPERATION_CHANGE_SMALL:"INVALID_OPERATION_CHANGE_SMALL",REMOTE_NOT_PUBLISH_SMALL_STREAM:"REMOTE_NOT_PUBLISH_SMALL_STREAM",INVALID_SWITCH_DEVICE:"INVALID_SWITCH_DEVICE",INVALID_SWITCH_DEVICE_PUBLISHING:"INVALID_SWITCH_DEVICE_PUBLISHING",INVALID_REPLACE_TRACK:"INVALID_REPLACE_TRACK",INVALID_INITIALIZE_LOCAL_STREAM:"INVALID_INITIALIZE_LOCAL_STREAM",INVALID_ADD_TRACK_REPETITIVE:"INVALID_ADD_TRACK_REPETITIVE",INVALID_ADD_TRACK_REMOVING:"INVALID_ADD_TRACK_REMOVING",INVALID_ADD_TRACK_PUBLISHING:"INVALID_ADD_TRACK_PUBLISHING",INVALID_STREAM_INITIALIZED:"INVALID_STREAM_INITIALIZED",INVALID_ADD_TRACK_NUMBER:"INVALID_ADD_TRACK_NUMBER",INVALID_REMOVE_AUDIO_TRACK:"INVALID_REMOVE_AUDIO_TRACK",INVALID_REMOVE_AUDIO_ADDING:"INVALID_REMOVE_AUDIO_ADDING",INVALID_REMOVE_AUDIO_ON:"INVALID_REMOVE_AUDIO_ON",INVALID_REMOVE_TRACK_PUBLISHING:"INVALID_REMOVE_TRACK_PUBLISHING",INVALID_REMOVE_TRACK_NOT_TRACK:"INVALID_REMOVE_TRACK_NOT_TRACK",INVALID_REMOVE_TRACK_NUMBER:"INVALID_REMOVE_TRACK_NUMBER",INVALID_REPLACE_TRACK_NO_TRACK:"INVALID_REPLACE_TRACK_NO_TRACK",REPEAT_JOIN:"REPEAT_JOIN",CLIENT_DESTROYED:"CLIENT_DESTROYED",NOT_BUG_PACKAGE:"NOT_BUG_PACKAGE",START_MIX_TRANSCODE_FAILED:"START_MIX_TRANSCODE_FAILED",STOP_MIX_TRANSCODE_FAILED:"STOP_MIX_TRANSCODE_FAILED",MIX_TRANSCODE_NOT_STARTED:"MIX_TRANSCODE_NOT_STARTED",CANNOT_LESS_THAN_ZERO:"CANNOT_LESS_THAN_ZERO",MIX_PARAMS_VIDEO_FRAMERATE:"MIX_PARAMS_VIDEO_FRAMERATE",MIX_PARAMS_VIDEO_GOP:"MIX_PARAMS_VIDEO_GOP",MIX_PARAMS_AUDIO_BITRATE:"MIX_PARAMS_AUDIO_BITRATE",MIX_PARAMS_USER_Z_ORDER:"MIX_PARAMS_USER_Z_ORDER",MIX_PARAMS_NOT_SELF:"MIX_PARAMS_NOT_SELF",MIX_PARAMS_USER_STREAM:"MIX_PARAMS_USER_STREAM",INVALID_PLAY:"INVALID_PLAY",INVALID_ELEMENT_ID:"INVALID_ELEMENT_ID",INVALID_ELEMENT_ID_TYPE:"INVALID_ELEMENT_ID_TYPE",PLAY_FAILED:"PLAY_FAILED",INVALID_USERID:"INVALID_USERID",INVALID_CREATE_STREAM_SOURCE:"INVALID_CREATE_STREAM_SOURCE",INVALID_CREATE_STREAM_SCREEN:"INVALID_CREATE_STREAM_SCREEN",INVALID_CREATE_STREAM_AUDIO:"INVALID_CREATE_STREAM_AUDIO",INVALID_CREATE_STREAM_SCREEN_AUDIO:"INVALID_CREATE_STREAM_SCREEN_AUDIO",NOT_SUPPORTED_HTTP:"NOT_SUPPORTED_HTTP",NOT_SUPPORTED_WEBRTC:"NOT_SUPPORTED_WEBRTC",NOT_SUPPORTED_PROFILE:"NOT_SUPPORTED_PROFILE",NOT_SUPPORTED_MEDIA:"NOT_SUPPORTED_MEDIA",NOT_SUPPORTED_H264ENCODE:"NOT_SUPPORTED_H264ENCODE",NOT_SUPPORTED_H264DECODE:"NOT_SUPPORTED_H264DECODE",NOT_SUPPORTED_TRACK:"NOT_SUPPORTED_TRACK",NOT_SUPPORTED_SWITCH_DEVICE:"NOT_SUPPORTED_SWITCH_DEVICE",NOT_SUPPORTED_CAPTURE:"NOT_SUPPORTED_CAPTURE",NOT_SUPPORTED_AUX:"NOT_SUPPORTED_AUX",MICROPHONE_NOT_FOUND:"MICROPHONE_NOT_FOUND",CAMERA_NOT_FOUND:"CAMERA_NOT_FOUND",SIGNAL_RESPONSE_FAILED:"SIGNAL_RESPONSE_FAILED",CATCH_HANDLER_ERROR:"CATCH_HANDLER_ERROR",API_NOT_EXIST:"API_NOT_EXIST",CONNECTION_CLOSED:"CONNECTION_CLOSED",SUBSCRIBE_ALL_FALSE:"SUBSCRIBE_ALL_FALSE",SEI_NOT_SUPPORT:"SEI_NOT_SUPPORT",SEI_DISABLED:"SEI_DISABLED",SEI_BEFORE_PUBLISH:"SEI_BEFORE_PUBLISH",SEI_NOT_VIDEO:"SEI_NOT_VIDEO",CALL_FREQUENCY_LIMIT:"CALL_FREQUENCY_LIMIT",CONNECTION_ABORTED:"CONNECTION_ABORTED",API_CALL_ABORTED:"API_CALL_ABORTED",DUPLICATE_AUX:"DUPLICATE_AUX"},ve={AVOID_REPEATED_CALL(s){return`previous ${s.name}() is ongoing, please avoid repeated calls.`},INVALID_PARAMETER_REQUIRED({key:s,rule:i,fnName:e,value:t}){return`'${s||i.name}' is a required param when calling ${e}(), received: ${t}.`},INVALID_PARAMETER_TYPE({key:s,rule:i,fnName:e,value:t}){let r=`${s||i.name}`,o="";return Array.isArray(i.type)?o=i.type.join("|"):o=i.type,`'${r}' must be type of ${o} when calling ${e}(), received type: ${Ae(t)}.`},INVALID_PARAMETER_EMPTY({key:s,rule:i,fnName:e,value:t}){return`'${s||i.name}' cannot be '${t}' when calling ${e}().`},INVALID_PARAMETER_INSTANCE({key:s,rule:i,fnName:e,value:t}){let r=`${s||i.name}`,o=`${i.instanceOf.name||i.instanceOf}`;return`'${r}' must be instanceof ${o} when calling ${e}(), received type: ${Ae(t)}.`},INVALID_PARAMETER_RANGE({key:s,rule:i,fnName:e,value:t}){return`'${s||i.name}' must be one of ${i.values.join("|")} when calling ${e}(), received: ${t}.`},INVALID_PARAMETER_MIN({key:s,rule:i,fnName:e,value:t}){return`the min value of ${s||i.name} is ${i.min}, received: ${t}.`},INVALID_PARAMETER_MAX({key:s,rule:i,fnName:e,value:t}){return`the max value of ${s||i.name} is ${i.max}, received: ${t}.`},API_CALL_TIMEOUT(s){return`${s.commandDesc||s.command} timeout observed.`},SIGNAL_CHANNEL_RECONNECTION_FAILED:"signal channel reconnection failed, please check your network.",SIGNAL_CHANNEL_SETUP_FAILED(s){return`SignalChannel setup failure: (errorCode: ${s.errorCode}, errorMsg: ${s.errorMsg} }).`},ERROR_MESSAGE(s){let i=`${s.type} failed`;return s.message&&(i=`${i}: ${s.message}.`),i},EXCHANGE_SDP_TIMEOUT:"exchange sdp timeout.",DOWNLINK_RECONNECTION_FAILED:"downlink reconnection failed, please check your network and re-join room.",EXCHANGE_SDP_FAILED(s){return`exchange sdp failed ${s.errMsg}.`},UPDATE_OFFER_TIMEOUT:"update offer timeout observed.",UPLINK_RECONNECTION_FAILED:"uplink reconnection failed, please check your network and publish again.",INVALID_RECORDID:"recordId must be an integer number.",INVALID_PURE_AUDIO:"pureAudioPushMode must be 1 or 2.",INVALID_STREAMID:"streamId must be a sting literal within 64 bytes, and not be empty.",INVALID_USER_DEFINE_RECORDID:"userDefineRecordId must be a sting literal contains (a-zA-Z),(0-9), underline and hyphen, within 64 bytes, and not be empty.",INVALID_USER_DEFINE_PUSH_ARGS:"userDefinePushArgs must be a sting literal within 256 bytes, and not be empty.",INVALID_PROXY:'proxy server url must start with "wss://".',INVALID_JOIN:"duplicate join() called.",INVALID_ROOMID_STRING(s){return`'${s}' must be validate string when useStringRoomId is true.`},INVALID_ROOMID_INTEGER(s){return`'${s}' must be an integer between [1, 4294967294] when useStringRoomId is false.`},INVALID_SIGNAL_CHANNEL:"SignalChannel is not ready yet.",JOIN_ROOM_TIMEOUT:"join room timeout.",JOIN_ROOM_FAILED({error:s,code:i}){return`Failed to join room - ${s} code: ${i}`},REJOIN_ROOM_FAILED(s){return`reJoin room: ${s.roomId} failed, please check your network.`},INVALID_DESTROY:"please call leave() before destroy().",INVALID_PUBLISH:"please call join() before publish().",INVALID_UNPUBLISH:"stream has not been published yet.",INVALID_AUDIENCE:'no permission to publish() under live/audience, please call switchRole("anchor") firstly before publish().',INVALID_INITIALIZE:"cannot publish stream because stream is not initialized, is switching device, or has been closed.",INVALID_DUPLICATE_PUBLISHING(s){return`duplicate ${s} stream publishing, please unpublish your prev ${s} stream and then re-publish.`},INVALID_SUBSCRIBE_UNDEFINED:"stream is undefined or null.",INVALID_SUBSCRIBE_LOCAL:"stream cannot be LocalStream.",INVALID_REMOTE_STREAM:"remoteStream does not exist because it has been unpublished by remote peer.",SUBSCRIBE_FAILED({message:s,userId:i,streamType:e}){return`failed to subscribe ${i} ${e} stream, reason: ${s}.`},INVALID_ROLE:"switchRole can only be called in live mode.",INVALID_PARAMETER_SWITCH_ROLE:"role could only be set to a value as anchor or audience.",INVALID_OPERATION_SWITCH_ROLE:"please call join() before switchRole().",SWITCH_ROLE_TIMEOUT:"switchRole timeout.",SWITCH_ROLE_FAILED(s){return`switchRole failed, errCode: ${s.code} errMsg: ${s.message}.`},CLIENT_BANNED(s){return`client was banned because of ${s.message}.`},INVALID_OPERATION_START_PUBLISH_CDN:"please call startPublishCDNStream() after join room and publish the local stream.",INVALID_OPERATION_STOP_PUBLISH_CDN:"please call startPublishCDNStream() before stopPublishCDNStream().",START_PUBLISH_CDN_FAILED(s){return`startPublishCDNStream failed, errMsg: ${s.message}.`},STOP_PUBLISH_CDN_FAILED(s){return`stopPublishCDNStream failed, errMsg: ${s.message}.`},INVALID_STREAM_ID(s){return`'${s}' can only consist of uppercase and lowercase english letters (a-zA-Z), numbers (0-9), hyphens and underscores.`},START_MIX_TRANSCODE:"please call startMixTranscode() after join().",STOP_MIX_TRANSCODE:"please call stopMixTranscode() after startMixTranscode().",INVALID_AUDIO_VOLUME:"interval must be a number.",ENABLE_SMALL_STREAM_PUBLISHED:"Cannot enable small stream after localStream published.",DISABLE_SMALL_STREAM_PUBLISHED:"Cannot disable small stream after localStream published.",NOT_SUPPORTED_SMALL_STREAM:"your browser does not support opening small stream.",INVALID_SMALL_STREAM_PROFILE:"small stream profile is invalid.",INVALID_PARAMETER_REMOTE_STREAM:"remoteStream is invalid.",INVALID_OPERATION_CHANGE_SMALL:"cannot switch to the small stream without subscribing to the video of remoteStream.",REMOTE_NOT_PUBLISH_SMALL_STREAM:"remote peer does not publish small stream.",INVALID_SWITCH_DEVICE:"cannot switch device on current stream.",INVALID_SWITCH_DEVICE_PUBLISHING:"cannot switch device when publishing localStream.",INVALID_REPLACE_TRACK:"cannot replace track when publishing localStream.",INVALID_INITIALIZE_LOCAL_STREAM:"local stream has not initialized yet.",INVALID_ADD_TRACK_REPETITIVE:"previous addTrack is ongoing, please avoid repetitive execution.",INVALID_ADD_TRACK_REMOVING:"cannot add track when a track is removing.",INVALID_ADD_TRACK_PUBLISHING:"cannot add track when publishing localStream.",INVALID_STREAM_INITIALIZED:"your local stream haven't been initialized yet.",INVALID_ADD_TRACK_NUMBER:"a Stream has at most one audio track and one video track.",INVALID_REMOVE_AUDIO_TRACK:"remove audio track is not supported on your browser.",INVALID_REMOVE_AUDIO_ADDING:"cannot remove track when a track is adding.",INVALID_REMOVE_AUDIO_ON:"previous removeTrack is ongoing, please avoid repetitive execution.",INVALID_REMOVE_TRACK_PUBLISHING:"cannot remove track when publishing localStream.",INVALID_REMOVE_TRACK_NOT_TRACK:"localStream has not this track.",INVALID_REMOVE_TRACK_NUMBER:"remove the only video track is not supported, please use replaceTrack or muteVideo.",INVALID_REPLACE_TRACK_NO_TRACK(s){return`cannot replace ${s.kind} track because stream has not ${s.kind} track`},NOT_BUG_PACKAGE:"You need to buy packages, refer to tencent console.",START_MIX_TRANSCODE_FAILED(s){return`startMixTranscode failed, errMsg: ${s.message}.`},STOP_MIX_TRANSCODE_FAILED(s){return`stopMixTranscode failed, errMsg: ${s.message}.`},MIX_TRANSCODE_NOT_STARTED:"mixTranscode has not been started.",CANNOT_LESS_THAN_ZERO({key:s,rule:i,fnName:e,value:t}){return`'${s||i.name}' cannot be less than 0 when calling ${e}().`},MIX_PARAMS_VIDEO_FRAMERATE:"'config.videoFramerate' should be an integer between 0 and 30, excluding 0.",MIX_PARAMS_VIDEO_GOP:"'config.videoGOP' should be an integer between 1 and 8.",MIX_PARAMS_AUDIO_BITRATE:"'config.audioBitrate' should be an integer between 32 and 192.",MIX_PARAMS_USER_Z_ORDER(s){return`'${s}' is required and must be between 1 and 15.`},MIX_PARAMS_NOT_SELF:"'config.mixUsers' must contain self.",MIX_PARAMS_USER_STREAM:"'config.videoWidth' and 'config.videoHeight' of output stream should be contain all mix stream.",INVALID_PLAY:"duplicate play() call observed, please stop() firstly.",INVALID_ELEMENT_ID:({key:s,fnName:i})=>`'${s}' is not found in the document object when calling ${i}().`,INVALID_ELEMENT_ID_TYPE:({key:s,fnName:i,type:e})=>`the element corresponding to '${s}' must be instanceof HTMLElement when calling ${i}(), received: ${e}.`,PLAY_FAILED:s=>`${s.media} play failed, browser exception: ${s.error.toString()}`,INVALID_USERID:"userId cannot be all spaces.",INVALID_CREATE_STREAM_SOURCE:"LocalStream must be created by createStream() with either audio/video or audioSource/videoSource, but can not be mixed with audio/video and audioSource/videoSource.",INVALID_CREATE_STREAM_SCREEN:"screen/video cannot be both true.",INVALID_CREATE_STREAM_AUDIO:"audio/screenAudio cannot be both true.",INVALID_CREATE_STREAM_SCREEN_AUDIO:"when screen is true, screenAudio can be configured.",NOT_SUPPORTED_HTTP:"http protocol does not support the ability to capture microphone, camera and screen. please use https to deploy your page.",NOT_SUPPORTED_WEBRTC:"your browser or environment does not support full WebRTC capabilities.",NOT_SUPPORTED_PROFILE:"your browser does not support setVideoProfile.",NOT_SUPPORTED_MEDIA:"your browser or environment does not support navigator.mediaDevices.",NOT_SUPPORTED_H264ENCODE:"your device does not support H.264 encoding.",NOT_SUPPORTED_H264DECODE:"your device does not support H.264 decoding.",NOT_SUPPORTED_TRACK(s){return`${s}Track is not supported on your browser.`},NOT_SUPPORTED_SWITCH_DEVICE:"switchDevice is not supported on your browser.",NOT_SUPPORTED_CAPTURE:"Your browser or environment does not support screen sharing, please check whether the browser version.",MICROPHONE_NOT_FOUND:"no microphone detected, please check your microphone.",CAMERA_NOT_FOUND:"no camera detected, please check your camera.",SIGNAL_RESPONSE_FAILED(s){return`${s.signalResponse} failed, response code is ${s.code} , errMsg: ${s.message}.`},CATCH_HANDLER_ERROR({name:s,event:i}){return`an error was caught in ${s}.on('${i}', handler), please check your code in 'handler'.`},API_NOT_EXIST({name:s}){return`experimental api ${s} does not exist.`},REPEAT_JOIN:s=>"please avoid repeated join.",CONNECTION_CLOSED:"remoteStream has been unsubscribed or unpublished by remote user.",SUBSCRIBE_ALL_FALSE:"cannot subscribe when both audio & video are false, use client.unsubscribe() instead",CLIENT_DESTROYED({funName:s}){return`failed to call ${s}() because client was destroyed.`},SEI_NOT_SUPPORT:s=>`not support to sendSEIMessage${s===!1?" without using h264 codec":""}`,SEI_DISABLED:"SEI is disabled",SEI_BEFORE_PUBLISH:"please call sendSEIMessage() after publish() success",SEI_NOT_VIDEO:"cannot send sei when localStream has not video.",CALL_FREQUENCY_LIMIT:({isSize:s,name:i,timesInSecond:e,maxSizeInSecond:t})=>`api ${i} call ${s?"size":"times"} is over ${s?`${t} bytes`:e} in a second.`,CONNECTION_ABORTED(s){return`connection aborted due to: ${s}`},API_CALL_ABORTED(s){let i;return s.message.includes("REMOTE_STREAM_NOT_EXIST")?i=`Subscribe ${s.userId} ${s.streamType} stream aborted, reason: remote user ${s.userId} unpublished stream.`:i=`API aborted, reason: ${s.message}`,i},DUPLICATE_AUX:"only one auxiliary stream can be published in a room.",NOT_SUPPORTED_AUX:"publish auxiliary stream is not supported on your browser.",INVALID_PARAMETER_STREAMTYPE:s=>`'streamType' is required when 'userId' is not '*', calling ${s}()`};var oh=(s,i)=>i?`${Bt}/${s}/${i}`:`${Bt}/${s}/index.html`;var Pf=()=>{if(window.TRTC_ERROR_INFO&&window.TRTC_ERROR_LINK)return{TRTC_ERROR_INFO:window.TRTC_ERROR_INFO,TRTC_ERROR_LINK:window.TRTC_ERROR_LINK};let s=localStorage==null?void 0:localStorage.getItem(Tc);if(s){s=JSON.parse(s);let i=document.createElement("script");i.type="text/javascript",i.text=s.message,document.body.appendChild(i);let e=window.TRTC_ERROR_INFO,t=window.TRTC_ERROR_LINK;return document.body.removeChild(i),{TRTC_ERROR_INFO:e,TRTC_ERROR_LINK:t}}return{}};function U(s){let{key:i,data:e,link:t,addDocLink:r=!0}=s,o="",n="",a="";se(ve[i])?o=ve[i](e):K(ve[i])&&(o=ve[i]);let{TRTC_ERROR_INFO:d,TRTC_ERROR_LINK:l}=Pf();t?a=`${t.className}.html#${t.fnName}`:l&&l[i]&&(se(l[i])?a=l[i](e):K(l[i])&&(a=l[i]));let m=o;return At()&&(d&&d[i]&&(se(d[i])?n=d[i](e):K(d[i])&&(n=d[i])),n&&(r?m=`${n}
7
+ \u8BF7\u67E5\u770B\u6587\u6863: ${oh("zh-cn",a)}
6
8
 
7
- `:T=`${a}
9
+ `:m=`${n}
8
10
 
9
- `,T+=s)),o&&(T+=`
10
- Refer to: ${C_("en",d)}
11
- `),T}var Kp=Pi(k_(),1);var II=1,SI=0,Ud=class{constructor(t=!0){l(this,"countMap",new Map);l(this,"distributionMap",new Map);l(this,"version");l(this,"log",V.createLogger({id:"kv"}));t&&(B.on("102",({track:e,cost:r})=>{this.addSuccessEvent({key:e.kind===D.AUDIO?Vd.START_MICROPHONE:Xp.START_CAMERA,cost:r})}),B.on("103",({track:e,error:r})=>{this.addFailedEvent({key:e.kind===D.AUDIO?Vd.START_MICROPHONE:Xp.START_CAMERA,error:r})}))}getReportData(){let t={msg_sdk_basic_info:{uint32_sdk_version:ld(this.version||Ke),uint32_terminal_type:15,bytes_device_name:"",bytes_os_version:"",uint32_framework:30,uint32_network_type:0},stats_count:[...this.countMap.entries()].map(([e,r])=>({uint32_key:e,uint32_count:r})),stats_distribution:[...this.distributionMap.entries()].map(([e,r])=>({uint32_key:e,distribution_items:[...r.entries()].map(([o,s])=>({uint32_item_key:o,uint32_item_value:s}))}))};return this.countMap.clear(),this.distributionMap.clear(),t}clear(){this.countMap.clear(),this.distributionMap.clear()}isEnumKey(t){let e=+String(t).slice(-3);return e>=700&&e<799}isErrorCodeKey(t){let e=+String(t).slice(-3);return e>=600&&e<699}isCountKey(t){let e=+String(t).slice(-3);return e>=0&&e<599}isNumberKey(t){let e=+String(t).slice(-3);return e>=800&&e<899}addCount({key:t,useUV:e=!1}){if(!this.isCountKey(t)){this.log.debug(`${t} is not count key, last 3 number should be 0~599`);return}e&&this.countMap.has(t)||this.countMap.set(t,(this.countMap.get(t)||0)+1)}addEnum({key:t,value:e,useUV:r=!0}){var s;if(!this.isEnumKey(t))return this.log.debug(`${t} is not enum key, last 3 number should be 700~799`);if(r&&this.countMap.has(t))return;this.countMap.set(t,(this.countMap.get(t)||0)+1);let o=((s=this.distributionMap)==null?void 0:s.get(t))||new Map;o.set(e,(o.get(e)||0)+1),this.distributionMap.set(t,o)}addNumber({key:t,value:e,split:r=100,useUV:o=!1}){var d;if(!this.isNumberKey(t))return this.log.debug(`${t} is not number key, last 3 number should be 800~899`);if(o&&this.countMap.has(t))return;this.countMap.set(t,(this.countMap.get(t)||0)+1);let s=((d=this.distributionMap)==null?void 0:d.get(t))||new Map,a=0;if(Fe(r))a=Math.floor(e/r);else for(let h=r.length-1;h>0;h--)if(e>r[h]){a=h;break}s.set(a,(s.get(a)||0)+1),this.distributionMap.set(t,s)}addSuccessEvent({key:t,cost:e,timeKey:r,split:o}){if(!!t&&(this.addEnum({key:t,value:II,useUV:!1}),e)){let s=+String(t).slice(-3);s<800&&s>=700?this.addNumber({key:r||t+100,value:e,split:o}):r||this.log.debug(`time stat ignored, ${t}`)}}addFailedEvent({key:t,error:e}){if(!t)return;let r=Y.UNKNOWN;e&&(Fe(e)?r=e:(!L(e.extraCode)||!L(e.code))&&(r=e.extraCode||e.code)),this.addEnum({key:t,value:SI,useUV:!1}),this.addEnum({key:t,value:r,useUV:!1})}},Bd=(fe=>(fe[fe.enterRoom=500700]="enterRoom",fe[fe.exitRoom=500701]="exitRoom",fe[fe.switchRole=500702]="switchRole",fe[fe.destroy=500703]="destroy",fe[fe.startLocalAudio=500704]="startLocalAudio",fe[fe.updateLocalAudio=500705]="updateLocalAudio",fe[fe.stopLocalAudio=500706]="stopLocalAudio",fe[fe.startLocalVideo=500707]="startLocalVideo",fe[fe.updateLocalVideo=500708]="updateLocalVideo",fe[fe.stopLocalVideo=500709]="stopLocalVideo",fe[fe.startScreenShare=500710]="startScreenShare",fe[fe.updateScreenShare=500711]="updateScreenShare",fe[fe.stopScreenShare=500712]="stopScreenShare",fe[fe.startRemoteVideo=500713]="startRemoteVideo",fe[fe.updateRemoteVideo=500714]="updateRemoteVideo",fe[fe.stopRemoteVideo=500715]="stopRemoteVideo",fe[fe.muteRemoteAudio=500716]="muteRemoteAudio",fe[fe.setRemoteAudioVolume=500717]="setRemoteAudioVolume",fe[fe.use=500718]="use",fe[fe.sendSEIMessage=5e5]="sendSEIMessage",fe[fe.sendCustomMessage=500001]="sendCustomMessage",fe))(Bd||{}),Qp=(p=>(p[p.AudioMixer=550700]="AudioMixer",p[p.AIDenoiser=551700]="AIDenoiser",p[p.VirtualBackground=570700]="VirtualBackground",p[p.Beauty=571700]="Beauty",p[p.Watermark=572700]="Watermark",p[p.BasicBeauty=574700]="BasicBeauty",p[p.CDNStreaming=590700]="CDNStreaming",p[p.DeviceDetector=591700]="DeviceDetector",p[p.Debug=592700]="Debug",p))(Qp||{}),Yp=(p=>(p[p.AudioMixer=550701]="AudioMixer",p[p.AIDenoiser=551701]="AIDenoiser",p[p.VirtualBackground=570701]="VirtualBackground",p[p.Beauty=571701]="Beauty",p[p.Watermark=572701]="Watermark",p[p.BasicBeauty=574701]="BasicBeauty",p[p.CDNStreaming=590701]="CDNStreaming",p[p.DeviceDetector=591701]="DeviceDetector",p[p.Debug=592701]="Debug",p))(Yp||{}),Zp=(p=>(p[p.AudioMixer=550702]="AudioMixer",p[p.AIDenoiser=551702]="AIDenoiser",p[p.VirtualBackground=570702]="VirtualBackground",p[p.Beauty=571702]="Beauty",p[p.Watermark=572702]="Watermark",p[p.BasicBeauty=574702]="BasicBeauty",p[p.CDNStreaming=590702]="CDNStreaming",p[p.DeviceDetector=591702]="DeviceDetector",p[p.Debug=592702]="Debug",p))(Zp||{});var Vd=(r=>(r[r.START_MICROPHONE=501700]="START_MICROPHONE",r[r.MICROPHONE_CAHNNELS=501701]="MICROPHONE_CAHNNELS",r[r.MICROPHONE_SAMPLERATE=501702]="MICROPHONE_SAMPLERATE",r))(Vd||{});var Xp=(t=>(t[t.START_CAMERA=511700]="START_CAMERA",t))(Xp||{});var yI=new Ud(!0),xo=new Ud(!1);var X=yI;var we={result:!1,detail:{isBrowserSupported:!1,isWebRTCSupported:!1,isWebCodecsSupported:!1,isMediaDevicesSupported:!1,isScreenShareSupported:!1,isSmallStreamSupported:!1,isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH264DecodeSupported:!1,isVp8DecodeSupported:!1}},AI=new Map([[Cr,["Firefox",md]],[Cs,["Edg",fd]],[Os,["Chrome",Nd]],[Ht,["Safari",Fi]],[Dr,["TBS",Ed]],[da,["XWEB",Td]],[Ds&&yo,["WeChat",Id]],[ua,["QQ(Win)",Sd]],[ws,["QQ(Mobile)",vs]],[Ns,["QQ(Mobile X5)",vs]],[la,["QQ(Mac)",yd]],[pa,["QQ(iPad)",Ad]],[ha,["MI",bd]],[fa,["HW",vd]],[_a,["Samsung",Rd]],[xs,["OPPO",Cd]],[Ms,["VIVO",Dd]],[Rs,["EDGE",hd]],[aa,["SogouMobile",_d]],[ca,["Sogou",gd]]]);function $d(){let i=AI.get(!0),t=i?i[0]:"unknown",e=i?i[1]:"unknown";return{browserName:t,browserVersion:e}}var tm=function(){return!(Ap||Rs||Cs&&Sp<80||Cr&&Ip<56)},U_=function(){return["VideoDecoder","VideoEncoder","AudioEncoder","AudioDecoder","MediaStreamTrackGenerator"].every(t=>t in window)},Hd=function(){if(!navigator.mediaDevices)return Ai()||V.error(Gt.NOT_SUPPORTED_MEDIA),!1;let i=["getUserMedia","enumerateDevices"];return i.filter(t=>t in navigator.mediaDevices).length===i.length},L_=!1;function Ai(){return location.protocol==="http:"&&!wr?(L_||V.error(ot({key:it.NOT_SUPPORTED_HTTP})),L_=!0,!0):!1}var rm=function(){return(window==null?void 0:window.OffscreenCanvas)&&(window==null?void 0:window.MediaStreamTrackProcessor)&&(window==null?void 0:window.MediaStreamTrackGenerator)},em=function(){return v(this,null,function*(){if(we.detail.isH264EncodeSupported&&we.detail.isVp8EncodeSupported)return{isH264EncodeSupported:we.detail.isH264EncodeSupported,isVp8EncodeSupported:we.detail.isVp8EncodeSupported};let i,t=!1,e=!1;try{let r=new RTCPeerConnection,o=document.createElement(D.CANVAS);o.getContext("2d");let s=o.captureStream(0);return r.addTrack(s.getVideoTracks()[0],s),i=yield r.createOffer(),i.sdp.toLowerCase().indexOf("h264")!==-1&&(t=!0),i.sdp.toLowerCase().indexOf("vp8")!==-1&&(e=!0),r.close(),we.detail.isH264EncodeSupported=t,we.detail.isVp8EncodeSupported=e,{isH264EncodeSupported:we.detail.isH264EncodeSupported,isVp8EncodeSupported:we.detail.isVp8EncodeSupported}}catch(r){return{isH264EncodeSupported:!1,isVp8EncodeSupported:!1}}})},V_=function(){return v(this,null,function*(){if(we.detail.isH264DecodeSupported&&we.detail.isVp8DecodeSupported)return{isH264DecodeSupported:we.detail.isH264DecodeSupported,isVp8DecodeSupported:we.detail.isVp8DecodeSupported};let i,t=!1,e=!1;try{let r=new RTCPeerConnection;return i=yield r.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0}),i.sdp.toLowerCase().indexOf("h264")!==-1&&(t=!0),i.sdp.toLowerCase().indexOf("vp8")!==-1&&(e=!0),r.close(),{isH264DecodeSupported:t,isVp8DecodeSupported:e}}catch(r){return{isH264DecodeSupported:!1,isVp8DecodeSupported:!1}}})},Wd=pd(()=>v(void 0,null,function*(){if(we.result&&we.detail.isH264EncodeSupported&&we.detail.isVp8EncodeSupported&&we.detail.isH264DecodeSupported&&we.detail.isVp8DecodeSupported)return we;let i=Date.now(),t=tm(),e=om(),r=U_(),o=Hd(),{isH264EncodeSupported:s,isVp8EncodeSupported:a}=yield em(),{isH264DecodeSupported:d,isVp8DecodeSupported:h}=yield V_();if(!s||!a){let p=yield em();V.warn(`detect encode again h264:${s} vp8:${a} result: ${JSON.stringify(p)}`),s=p.isH264EncodeSupported,a=p.isVp8EncodeSupported}if(s&&d&&(xs||Ms||Cp)&&!Dr&&ga()<79){let{encode:p,decode:T}=yield vI();s=p,d=T}return we.result=t&&e&&o&&(s||a)&&(d||h),we.detail.isBrowserSupported=t,we.detail.isWebRTCSupported=e,we.detail.isWebCodecsSupported=r,we.detail.isMediaDevicesSupported=o,we.detail.isScreenShareSupported=Da(),we.detail.isSmallStreamSupported=Na(),we.detail.isH264EncodeSupported=s,we.detail.isVp8EncodeSupported=a,we.detail.isH264DecodeSupported=d,we.detail.isVp8DecodeSupported=h,we.result||V.error(`${navigator.userAgent} ${dd(we.detail,!1)}`),VI(),X.addNumber({key:523800,value:Date.now()-i}),we})),bI=function(){return we.result},Da=function(){return!!(navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)},Fd=null;function vI(){return v(this,null,function*(){return Fd||(Fd=new Promise(i=>v(this,null,function*(){let t={encode:!1,decode:!1},e=()=>{};try{V.warn("detectH264Supported start");let r=document.createElement("canvas"),o=r.getContext("2d");r.width=320,r.height=240;let s=setInterval(()=>{o.fillText("test",Math.floor(Math.random()*320),Math.floor(Math.random()*240))},66),a=-1,d=-1;e=()=>{clearInterval(a),clearInterval(s),clearTimeout(d),p.close(),T.close(),h.getTracks().forEach(W=>W.stop())},d=setTimeout(()=>{e(),i(t)},2*1e3);let h=r.captureStream(),p=new RTCPeerConnection({}),T=new RTCPeerConnection({offerToReceiveAudio:!0,offerToReceiveVideo:!0});p.addEventListener("icecandidate",W=>T.addIceCandidate(W.candidate)),T.addEventListener("icecandidate",W=>p.addIceCandidate(W.candidate)),p.addTrack(h.getVideoTracks()[0],h);let y=yield p.createOffer();yield p.setLocalDescription(y),yield T.setRemoteDescription(y);let R=yield T.createAnswer(),N=Kp.default.parse(R.sdp),j=N.media[0].rtp.findIndex(W=>W.codec==="H264");N.media[0].rtp=[N.media[0].rtp[j]],N.media[0].fmtp=N.media[0].fmtp.filter(W=>W.payload===N.media[0].rtp[0].payload),N.media[0].rtcpFb&&(N.media[0].rtcpFb=N.media[0].rtcpFb.filter(W=>W.payload===N.media[0].rtp[0].payload)),R.sdp=Kp.default.write(N),yield T.setLocalDescription(R),yield p.setRemoteDescription(R),a=setInterval(()=>v(this,null,function*(){t.encode&&t.decode&&(e(),i(t));let W=yield p.getSenders()[0].getStats(),F=yield T.getReceivers()[0].getStats();t.encode||W.forEach(Ie=>{Ie.type==="outbound-rtp"&&Ie.mediaType===D.VIDEO&&Ie.bytesSent>0&&(t.encode=!0)}),t.decode||F.forEach(Ie=>{Ie.type==="inbound-rtp"&&Ie.mediaType===D.VIDEO&&Ie.bytesReceived>0&&(t.decode=!0)})}),100)}catch(r){e(),V.warn(r),i(t)}})).then(i=>((!i.encode||!i.decode)&&V.warn(`detectH264Supported encode: ${i.encode} decode: ${i.decode} ${Rr}`),i)),Fd)})}var RI=(i,t,e)=>{location.protocol==="http:"&&!wr&&(i[t]=()=>{throw new de({code:Y.INVALID_OPERATION,message:Gt.NOT_SUPPORTED_HTTP})})},CI=function(i){return i.type==="candidate-pair"&&i.nominated&&(i.state==="in-progress"||i.state==="succeeded")?!(nt(i.selected)&&!i.selected):!1};function B_(){let i="";if(screen.width){let t=screen.width?screen.width*window.devicePixelRatio:"",e=screen.height?screen.height*window.devicePixelRatio:"";i+=`${t} * ${e}`}return i}function F_(){return navigator.getUserMedia||navigator.mediaDevices&&navigator.mediaDevices.getUserMedia}function $_(){let i={isSupported:!1},t=["AudioContext","webkitAudioContext","mozAudioContext","msAudioContext"];for(let e=0;e<t.length;e++)if(t[e]in window){i.isSupported=!0;break}return i.isSupported}function H_(){return"captureStream"in HTMLCanvasElement.prototype}function Na(){return Ds||$t||gi&&gi<63?!1:!!(tm()&&H_())}var DI=function(){if(L(window.RTCRtpTransceiver)||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let i=null,t=!1;try{i=new RTCPeerConnection({sdpSemantics:cp}),i.addTransceiver(D.AUDIO),t=!0}catch(e){}return i==null||i.close(),t};function NI(){return"RTCPeerConnection"in window&&"getReceivers"in window.RTCPeerConnection.prototype}function W_(){return"RTCPeerConnection"in window&&"getSenders"in window.RTCPeerConnection.prototype}function wI(){return"RTCPeerConnection"in window&&"getTransceivers"in window.RTCPeerConnection.prototype}function G_(){return rr===11?!1:"RTCPeerConnection"in window&&"addTransceiver"in window.RTCPeerConnection.prototype}var xI=(()=>!(!G_()||bo&&gi<86))();function MI(){return"RTCRtpTransceiver"in window&&"stop"in window.RTCRtpTransceiver.prototype}var wa="RTCRtpSender"in window;function OI(){return wa&&"replaceTrack"in window.RTCRtpSender.prototype}function PI(){return wa&&"setParameters"in window.RTCRtpSender.prototype&&W_()}var kI="RTCRtpReceiver"in window&&"getSynchronizationSources"in window.RTCRtpReceiver.prototype,Fs=window.MediaStreamTrack&&"getSettings"in MediaStreamTrack.prototype,im=window.MediaStreamTrack&&"getCapabilities"in MediaStreamTrack.prototype,xa=wa&&"createEncodedStreams"in window.RTCRtpSender.prototype&&ga()>=86,j_="RTCRtpScriptTransform"in window,Ma=wa&&(xa||j_),om=function(){return["RTCPeerConnection","webkitRTCPeerConnection","RTCIceGatherer"].filter(t=>t in window).length>0};function q_(){let i={AudioDecoder:!1,AudioEncoder:!1,VideoDecoder:!1,VideoEncoder:!1,ImageDecoder:!1};return L(window.AudioDecoder)||(i.AudioDecoder=!0),L(window.AudioEncoder)||(i.AudioEncoder=!0),L(window.VideoDecoder)||(i.VideoDecoder=!0),L(window.VideoEncoder)||(i.VideoEncoder=!0),L(window.ImageDecoder)||(i.ImageDecoder=!0),i}function z_(){return"mediaSession"in navigator&&!L(navigator.mediaSession.setActionHandler)}function J_(){return!L(window.WebTransport)}function LI(){return typeof WebAssembly=="undefined"?!1:WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]))}function UI(){let i={browser:`${jr.name}/${jr.version}`,os:Ps(),displayResolution:B_(),isScreenShareSupported:Da(),isWebRTCSupported:om(),isGetUserMediaSupported:F_(),isWebAudioSupported:$_(),isWebSocketsSupported:"WebSocket"in window&&window.WebSocket.CLOSING===2,isWebCodecSupported:q_(),isMediaSessionSupported:z_(),isWebTransportSupported:J_()};return navigator.userAgent.includes("miniProgram")&&(i.browser=`mini/${i.browser}`),i}var X_="checkResult";function VI(){Ls.setItem(X_,{ua:navigator.userAgent,checkResult:we})}function sm(){Ai();let i=Ls.getItem(X_);i&&i.ua===navigator.userAgent&&(we=i.checkResult),Wd()}function Mo(){return"requestVideoFrameCallback"in HTMLVideoElement.prototype}var BI="RTCRtpReceiver"in window&&"jitterBufferTarget"in window.RTCRtpReceiver.prototype;var Y_=Pi(Hi(),1);var Q_=Symbol("instance"),Jb=Symbol("abortCtrl"),Gd=Symbol("cacheResult"),Oa=class{constructor(t,e,r){this.oldState=t,this.newState=e,this.action=r,this.aborted=!1}abort(t){this.aborted=!0,ka.call(t,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},$s=class extends Error{constructor(t,e,r){super(e),this.state=t,this.message=e,this.cause=r}};function FI(i){return typeof i=="object"&&i&&"then"in i}var Pa=new Map;function be(i,t,e={}){return(r,o,s)=>{let a=e.action||o;if(!e.context){let h=Pa.get(r)||[];Pa.has(r)||Pa.set(r,h),h.push({from:i,to:t,action:a})}let d=s.value;s.value=function(...h){let p=this;if(e.context&&(p=Z.get(typeof e.context=="function"?e.context.call(this,...h):e.context)),p.state===t)return e.sync?p[Gd]:Promise.resolve(p[Gd]);p.state instanceof Oa&&p.state.action==e.abortAction&&p.state.abort(p);let T=null;Array.isArray(i)?i.length==0?p.state instanceof Oa&&p.state.abort(p):(typeof p.state!="string"||!i.includes(p.state))&&(T=new $s(p._state,`${p.name} ${a} to ${t} failed: current state ${p._state} not from ${i.join("|")}`)):i!==p.state&&(T=new $s(p._state,`${p.name} ${a} to ${t} failed: current state ${p._state} not from ${i}`));let y=F=>{if(e.fail&&e.fail.call(this,F),e.sync){if(e.ignoreError)return F;throw F}else return e.ignoreError?Promise.resolve(F):Promise.reject(F)};if(T)return y(T);let R=p.state,N=new Oa(R,t,a);ka.call(p,N);let j=F=>{var Ie;return p[Gd]=F,N.aborted||(ka.call(p,t),(Ie=e.success)===null||Ie===void 0||Ie.call(this,p[Gd])),F},W=F=>(ka.call(p,R,F),y(F));try{let F=d.apply(this,h);return FI(F)?F.then(j).catch(W):e.sync?j(F):Promise.resolve(j(F))}catch(F){return W(new $s(p._state,`${p.name} ${a} from ${i} to ${t} failed: ${F}`,F instanceof Error?F:new Error(String(F))))}}}}function Z_(...i){return(t,e,r)=>{let o=r.value,s=e;r.value=function(...a){if(!i.includes(this.state.toString()))throw new $s(this.state,`${this.name} ${s} failed: current state ${this.state} not in ${i}`);return o.apply(this,a)}}}var $I=(()=>typeof window!="undefined"&&window.__AFSM__?(e,r)=>{window.dispatchEvent(new CustomEvent(e,{detail:r}))}:typeof importScripts!="undefined"?(e,r)=>{postMessage({type:e,payload:r})}:()=>{})();function ka(i,t){let e=this._state;this._state=i;let r=i.toString();i&&this.emit(r,e),this.emit(Z.STATECHANGED,i,e,t),this.updateDevTools({value:i,old:e,err:t instanceof Error?t.message:String(t)})}var Z=class extends Y_.default{constructor(t,e,r){super(),this.name=t,this.groupName=e,this._state=Z.INIT,t||(t=Date.now().toString(36)),r?Object.setPrototypeOf(this,r):r=Object.getPrototypeOf(this),e||(this.groupName=this.constructor.name);let o=r[Q_];o?this.name=o.name+"-"+o.count++:r[Q_]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let t=Object.getPrototypeOf(this),e=Pa.get(t)||[],r=new Set,o=[],s=[],a=new Set,d=Object.getPrototypeOf(t);Pa.has(d)&&(d.stateDiagram.forEach(p=>r.add(p)),d.allStates.forEach(p=>a.add(p))),e.forEach(({from:p,to:T,action:y})=>{typeof p=="string"?o.push({from:p,to:T,action:y}):p.length?p.forEach(R=>{o.push({from:R,to:T,action:y})}):s.push({to:T,action:y})}),o.forEach(({from:p,to:T,action:y})=>{a.add(p),a.add(T),a.add(y+"ing"),r.add(`${p} --> ${y}ing : ${y}`),r.add(`${y}ing --> ${T} : ${y} \u{1F7E2}`),r.add(`${y}ing --> ${p} : ${y} \u{1F534}`)}),s.forEach(({to:p,action:T})=>{r.add(`${T}ing --> ${p} : ${T} \u{1F7E2}`),a.forEach(y=>{y!==p&&r.add(`${y} --> ${T}ing : ${T}`)})});let h=[...r];return Object.defineProperties(t,{stateDiagram:{value:h},allStates:{value:a}}),h}static get(t){let e;return typeof t=="string"?(e=Z.instances.get(t),e||Z.instances.set(t,e=new Z(t,void 0,Object.create(Z.prototype)))):(e=Z.instances2.get(t),e||Z.instances2.set(t,e=new Z(t.constructor.name,void 0,Object.create(Z.prototype)))),e}static getState(t){var e;return(e=Z.get(t))===null||e===void 0?void 0:e.state}updateDevTools(t={}){$I(Z.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(t){ka.call(this,t)}};Z.STATECHANGED="stateChanged";Z.UPDATEAFSM="updateAFSM";Z.INIT="[*]";Z.ON="on";Z.OFF="off";Z.instances=new Map;Z.instances2=new WeakMap;var nm=typeof window!="undefined",K_=nm&&window.requestIdleCallback||function(i){let t=Date.now();return setTimeout(()=>{i({didTimeout:!1,timeRemaining(){return Math.max(0,50-(Date.now()-t))}})},1e3)},HI=nm&&window.cancelIdleCallback||function(i){clearTimeout(i)},WI=nm&&(window.cancelAnimationFrame||window.mozCancelAnimationFrame),La=class{static generateTaskID(){return this.currentTaskID++}static run(t=Ts,e,r){t===To?r=J({delay:2e3,count:0,backgroundTask:!0},r):t===up?r=J({delay:1e4,count:0},r):t===lp?r=J({fps:60,delay:16.6,count:0,backgroundTask:!0},r):r=J({delay:2e3,count:0,backgroundTask:!0},r),lr(e)&&(r=J(J({},r),e)),Ve(t)&&(e=t,t=Ts);let o=J({taskID:this.generateTaskID(),loopCount:0,intervalID:null,timeoutID:null,rafID:null,ricID:null,taskName:t,callback:e},r);return this.taskMap.set(o.taskID,o),this[t](o),o.taskID}static interval(t){let e=()=>{t.callback(),t.loopCount+=1,this.isBreakLoop(t)};return t.intervalID=setInterval(e,t.delay)}static intervalInWorker(t){t.delay=(1e3/t.fps).toFixed(2);let e=new Worker(URL.createObjectURL(new Blob([`
11
+ `,m+=o)),r&&(m+=`
12
+ Refer to: ${oh("en",a)}
13
+ `),m}var fd=ke(mh(),1);var Gf=1,Wf=0,Jn=class{constructor(i=!0){c(this,"countMap",new Map);c(this,"distributionMap",new Map);c(this,"version");c(this,"log",C.createLogger({id:"kv"}));i&&(E.on("102",({track:e,cost:t})=>{this.addSuccessEvent({key:e.kind===h.AUDIO?501700:511700,cost:t})}),E.on("103",({track:e,error:t})=>{this.addFailedEvent({key:e.kind===h.AUDIO?501700:511700,error:t})}))}getReportData(){let i={msg_sdk_basic_info:{uint32_sdk_version:In(this.version||Ce),uint32_terminal_type:15,bytes_device_name:"",bytes_os_version:"",uint32_framework:30,uint32_network_type:0},stats_count:[...this.countMap.entries()].map(([e,t])=>({uint32_key:e,uint32_count:t})),stats_distribution:[...this.distributionMap.entries()].map(([e,t])=>({uint32_key:e,distribution_items:[...t.entries()].map(([r,o])=>({uint32_item_key:r,uint32_item_value:o}))}))};return this.countMap.clear(),this.distributionMap.clear(),i}clear(){this.countMap.clear(),this.distributionMap.clear()}isEnumKey(i){let e=+String(i).slice(-3);return e>=700&&e<799}isErrorCodeKey(i){let e=+String(i).slice(-3);return e>=600&&e<699}isCountKey(i){let e=+String(i).slice(-3);return e>=0&&e<599}isNumberKey(i){let e=+String(i).slice(-3);return e>=800&&e<899}addCount({key:i,useUV:e=!1}){if(!this.isCountKey(i)){this.log.debug(`${i} is not count key, last 3 number should be 0~599`);return}e&&this.countMap.has(i)||this.countMap.set(i,(this.countMap.get(i)||0)+1)}addEnum({key:i,value:e,useUV:t=!0}){var o;if(!this.isEnumKey(i))return this.log.debug(`${i} is not enum key, last 3 number should be 700~799`);if(t&&this.countMap.has(i))return;this.countMap.set(i,(this.countMap.get(i)||0)+1);let r=((o=this.distributionMap)==null?void 0:o.get(i))||new Map;r.set(e,(r.get(e)||0)+1),this.distributionMap.set(i,r)}addNumber({key:i,value:e,split:t=100,useUV:r=!1}){var a;if(!this.isNumberKey(i))return this.log.debug(`${i} is not number key, last 3 number should be 800~899`);if(r&&this.countMap.has(i))return;this.countMap.set(i,(this.countMap.get(i)||0)+1);let o=((a=this.distributionMap)==null?void 0:a.get(i))||new Map,n=0;if(Y(t))n=Math.floor(e/t);else for(let d=t.length-1;d>0;d--)if(e>t[d]){n=d;break}o.set(n,(o.get(n)||0)+1),this.distributionMap.set(i,o)}addSuccessEvent({key:i,cost:e,timeKey:t,split:r}){if(i&&(this.addEnum({key:i,value:Gf,useUV:!1}),e)){let o=+String(i).slice(-3);o<800&&o>=700?this.addNumber({key:t||i+100,value:e,split:r}):t||this.log.debug(`time stat ignored, ${i}`)}}addFailedEvent({key:i,error:e}){if(!i)return;let t=S.UNKNOWN;e&&(Y(e)?t=e:(!g(e.extraCode)||!g(e.code))&&(t=e.extraCode||e.code)),this.addEnum({key:i,value:Wf,useUV:!1}),this.addEnum({key:i,value:t,useUV:!1})}},qn=(j=>(j[j.enterRoom=500700]="enterRoom",j[j.exitRoom=500701]="exitRoom",j[j.switchRole=500702]="switchRole",j[j.destroy=500703]="destroy",j[j.startLocalAudio=500704]="startLocalAudio",j[j.updateLocalAudio=500705]="updateLocalAudio",j[j.stopLocalAudio=500706]="stopLocalAudio",j[j.startLocalVideo=500707]="startLocalVideo",j[j.updateLocalVideo=500708]="updateLocalVideo",j[j.stopLocalVideo=500709]="stopLocalVideo",j[j.startScreenShare=500710]="startScreenShare",j[j.updateScreenShare=500711]="updateScreenShare",j[j.stopScreenShare=500712]="stopScreenShare",j[j.startRemoteVideo=500713]="startRemoteVideo",j[j.updateRemoteVideo=500714]="updateRemoteVideo",j[j.stopRemoteVideo=500715]="stopRemoteVideo",j[j.muteRemoteAudio=500716]="muteRemoteAudio",j[j.setRemoteAudioVolume=500717]="setRemoteAudioVolume",j[j.use=500718]="use",j[j.sendSEIMessage=5e5]="sendSEIMessage",j[j.sendCustomMessage=500001]="sendCustomMessage",j))(qn||{}),hd=(l=>(l[l.AudioMixer=550700]="AudioMixer",l[l.AIDenoiser=551700]="AIDenoiser",l[l.VirtualBackground=570700]="VirtualBackground",l[l.Beauty=571700]="Beauty",l[l.Watermark=572700]="Watermark",l[l.BasicBeauty=574700]="BasicBeauty",l[l.CDNStreaming=590700]="CDNStreaming",l[l.DeviceDetector=591700]="DeviceDetector",l[l.Debug=592700]="Debug",l))(hd||{}),md=(l=>(l[l.AudioMixer=550701]="AudioMixer",l[l.AIDenoiser=551701]="AIDenoiser",l[l.VirtualBackground=570701]="VirtualBackground",l[l.Beauty=571701]="Beauty",l[l.Watermark=572701]="Watermark",l[l.BasicBeauty=574701]="BasicBeauty",l[l.CDNStreaming=590701]="CDNStreaming",l[l.DeviceDetector=591701]="DeviceDetector",l[l.Debug=592701]="Debug",l))(md||{}),pd=(l=>(l[l.AudioMixer=550702]="AudioMixer",l[l.AIDenoiser=551702]="AIDenoiser",l[l.VirtualBackground=570702]="VirtualBackground",l[l.Beauty=571702]="Beauty",l[l.Watermark=572702]="Watermark",l[l.BasicBeauty=574702]="BasicBeauty",l[l.CDNStreaming=590702]="CDNStreaming",l[l.DeviceDetector=591702]="DeviceDetector",l[l.Debug=592702]="Debug",l))(pd||{});var Jf=new Jn(!0),Tr=new Jn(!1);var N=Jf;var ie={result:!1,detail:{isBrowserSupported:!1,isWebRTCSupported:!1,isWebCodecsSupported:!1,isMediaDevicesSupported:!1,isScreenShareSupported:!1,isSmallStreamSupported:!1,isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH264DecodeSupported:!1,isVp8DecodeSupported:!1}},qf=new Map([[ae,["Firefox",Cn]],[es,["Edg",yn]],[ns,["Chrome",Bn]],[ze,["Safari",qi]],[bt,["TBS",vn]],[io,["XWEB",Dn]],[ts&&mr,["WeChat",On]],[ro,["QQ(Win)",Mn]],[rs,["QQ(Mobile)",Kr]],[is,["QQ(Mobile X5)",Kr]],[so,["QQ(Mac)",kn]],[oo,["QQ(iPad)",Ln]],[ao,["MI",Pn]],[co,["HW",wn]],[lo,["Samsung",xn]],[ss,["OPPO",Un]],[os,["VIVO",Vn]],[Zr,["EDGE",Rn]],[eo,["SogouMobile",bn]],[to,["Sogou",Nn]]]);function jf(){let s=qf.get(!0),i=s?s[0]:"unknown",e=s?s[1]:"unknown";return{browserName:i,browserVersion:e}}var gd=function(){return!(Hc||Zr||es&&Bc<80||ae&&Vc<56)},fh=function(){return["VideoDecoder","VideoEncoder","AudioEncoder","AudioDecoder","MediaStreamTrackGenerator"].every(i=>i in window)},Xn=function(){if(!navigator.mediaDevices)return Ci()||C.error(ve.NOT_SUPPORTED_MEDIA),!1;let s=["getUserMedia","enumerateDevices"];return s.filter(i=>i in navigator.mediaDevices).length===s.length},ph=!1;function Ci(){return location.protocol==="http:"&&!Ot?(ph||C.error(U({key:x.NOT_SUPPORTED_HTTP})),ph=!0,!0):!1}var Td=function(){return(window==null?void 0:window.OffscreenCanvas)&&(window==null?void 0:window.MediaStreamTrackProcessor)&&(window==null?void 0:window.MediaStreamTrackGenerator)},_d=function(){return f(this,null,function*(){if(ie.detail.isH264EncodeSupported&&ie.detail.isVp8EncodeSupported)return{isH264EncodeSupported:ie.detail.isH264EncodeSupported,isVp8EncodeSupported:ie.detail.isVp8EncodeSupported};let s,i=!1,e=!1;try{let t=new RTCPeerConnection,r=document.createElement(h.CANVAS);r.getContext("2d");let o=r.captureStream(0);return t.addTrack(o.getVideoTracks()[0],o),s=yield t.createOffer(),s.sdp.toLowerCase().indexOf("h264")!==-1&&(i=!0),s.sdp.toLowerCase().indexOf("vp8")!==-1&&(e=!0),t.close(),ie.detail.isH264EncodeSupported=i,ie.detail.isVp8EncodeSupported=e,{isH264EncodeSupported:ie.detail.isH264EncodeSupported,isVp8EncodeSupported:ie.detail.isVp8EncodeSupported}}catch(t){return{isH264EncodeSupported:!1,isVp8EncodeSupported:!1}}})},Qn=function(){return f(this,null,function*(){if(ie.detail.isH264DecodeSupported&&ie.detail.isVp8DecodeSupported)return{isH264DecodeSupported:ie.detail.isH264DecodeSupported,isVp8DecodeSupported:ie.detail.isVp8DecodeSupported};let s,i=!1,e=!1;try{let t=new RTCPeerConnection;return s=yield t.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0}),s.sdp.toLowerCase().indexOf("h264")!==-1&&(i=!0),s.sdp.toLowerCase().indexOf("vp8")!==-1&&(e=!0),t.close(),{isH264DecodeSupported:i,isVp8DecodeSupported:e}}catch(t){return{isH264DecodeSupported:!1,isVp8DecodeSupported:!1}}})},zn=An(()=>f(void 0,null,function*(){if(ie.result&&ie.detail.isH264EncodeSupported&&ie.detail.isVp8EncodeSupported&&ie.detail.isH264DecodeSupported&&ie.detail.isVp8DecodeSupported)return ie;let s=Date.now(),i=gd(),e=Ad(),t=fh(),r=Xn(),{isH264EncodeSupported:o,isVp8EncodeSupported:n}=yield _d(),{isH264DecodeSupported:a,isVp8DecodeSupported:d}=yield Qn();if(!o||!n){let l=yield _d();C.warn(`detect encode again h264:${o} vp8:${n} result: ${JSON.stringify(l)}`),o=l.isH264EncodeSupported,n=l.isVp8EncodeSupported}if(o&&a&&(ss||os||Jc)&&!bt&&_i()<79){let{encode:l,decode:m}=yield Qf();o=l,a=m}return ie.result=i&&e&&r&&(o||n)&&(a||d),ie.detail.isBrowserSupported=i,ie.detail.isWebRTCSupported=e,ie.detail.isWebCodecsSupported=t,ie.detail.isMediaDevicesSupported=r,ie.detail.isScreenShareSupported=Eo(),ie.detail.isSmallStreamSupported=So(),ie.detail.isH264EncodeSupported=o,ie.detail.isVp8EncodeSupported=n,ie.detail.isH264DecodeSupported=a,ie.detail.isVp8DecodeSupported=d,ie.result||C.error(`${navigator.userAgent} ${En(ie.detail,!1)}`),t_(),N.addNumber({key:523800,value:Date.now()-s}),ie})),Xf=function(){return ie.result},Eo=function(){return!!(navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)},jn=null;function Qf(){return f(this,null,function*(){return jn||(jn=new Promise(s=>f(this,null,function*(){let i={encode:!1,decode:!1},e=()=>{};try{C.warn("detectH264Supported start");let t=document.createElement("canvas"),r=t.getContext("2d");t.width=320,t.height=240;let o=setInterval(()=>{r.fillText("test",Math.floor(Math.random()*320),Math.floor(Math.random()*240))},66),n=-1,a=-1;e=()=>{clearInterval(n),clearInterval(o),clearTimeout(a),l.close(),m.close(),d.getTracks().forEach(R=>R.stop())},a=setTimeout(()=>{e(),s(i)},2*1e3);let d=t.captureStream(),l=new RTCPeerConnection({}),m=new RTCPeerConnection({offerToReceiveAudio:!0,offerToReceiveVideo:!0});l.addEventListener("icecandidate",R=>m.addIceCandidate(R.candidate)),m.addEventListener("icecandidate",R=>l.addIceCandidate(R.candidate)),l.addTrack(d.getVideoTracks()[0],d);let u=yield l.createOffer();yield l.setLocalDescription(u),yield m.setRemoteDescription(u);let p=yield m.createAnswer(),_=fd.default.parse(p.sdp),I=_.media[0].rtp.findIndex(R=>R.codec==="H264");_.media[0].rtp=[_.media[0].rtp[I]],_.media[0].fmtp=_.media[0].fmtp.filter(R=>R.payload===_.media[0].rtp[0].payload),_.media[0].rtcpFb&&(_.media[0].rtcpFb=_.media[0].rtcpFb.filter(R=>R.payload===_.media[0].rtp[0].payload)),p.sdp=fd.default.write(_),yield m.setLocalDescription(p),yield l.setRemoteDescription(p),n=setInterval(()=>f(this,null,function*(){i.encode&&i.decode&&(e(),s(i));let R=yield l.getSenders()[0].getStats(),D=yield m.getReceivers()[0].getStats();i.encode||R.forEach(G=>{G.type==="outbound-rtp"&&G.mediaType===h.VIDEO&&G.bytesSent>0&&(i.encode=!0)}),i.decode||D.forEach(G=>{G.type==="inbound-rtp"&&G.mediaType===h.VIDEO&&G.bytesReceived>0&&(i.decode=!0)})}),100)}catch(t){e(),C.warn(t),s(i)}})).then(s=>((!s.encode||!s.decode)&&C.warn(`detectH264Supported encode: ${s.encode} decode: ${s.decode} ${Rt}`),s)),jn)})}var zf=(s,i,e)=>{location.protocol==="http:"&&!Ot&&(s[i]=()=>{throw new b({code:S.INVALID_OPERATION,message:ve.NOT_SUPPORTED_HTTP})})},zi=function(s){return s.type==="candidate-pair"&&s.nominated&&(s.state==="in-progress"||s.state==="succeeded")?!(he(s.selected)&&!s.selected):!1};function _h(){let s="";if(screen.width){let i=screen.width?screen.width*window.devicePixelRatio:"",e=screen.height?screen.height*window.devicePixelRatio:"";s+=`${i} * ${e}`}return s}function gh(){return navigator.getUserMedia||navigator.mediaDevices&&navigator.mediaDevices.getUserMedia}function Th(){let s={isSupported:!1},i=["AudioContext","webkitAudioContext","mozAudioContext","msAudioContext"];for(let e=0;e<i.length;e++)if(i[e]in window){s.isSupported=!0;break}return s.isSupported}function Eh(){return"captureStream"in HTMLCanvasElement.prototype}function So(){return ts||xe||Dt&&Dt<63?!1:!!(gd()&&Eh())}var Yf=function(){if(g(window.RTCRtpTransceiver)||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let s=null,i=!1;try{s=new RTCPeerConnection({sdpSemantics:Hi}),s.addTransceiver(h.AUDIO),i=!0}catch(e){}return s==null||s.close(),i};function Er(){return"RTCPeerConnection"in window&&"getReceivers"in window.RTCPeerConnection.prototype}function Yi(){return"RTCPeerConnection"in window&&"getSenders"in window.RTCPeerConnection.prototype}function Jt(){return"RTCPeerConnection"in window&&"getTransceivers"in window.RTCPeerConnection.prototype}function pt(){return ot===11?!1:"RTCPeerConnection"in window&&"addTransceiver"in window.RTCPeerConnection.prototype}var us=!(!pt()||vt&&Dt<86);function Kf(){return"RTCRtpTransceiver"in window&&"stop"in window.RTCRtpTransceiver.prototype}var Io="RTCRtpSender"in window;function Ed(){return Io&&"replaceTrack"in window.RTCRtpSender.prototype}function Ao(){return Io&&"setParameters"in window.RTCRtpSender.prototype&&Yi()}var Sd="RTCRtpReceiver"in window&&"getSynchronizationSources"in window.RTCRtpReceiver.prototype,qt=window.MediaStreamTrack&&"getSettings"in MediaStreamTrack.prototype,Id=window.MediaStreamTrack&&"getCapabilities"in MediaStreamTrack.prototype,Ri=Io&&"createEncodedStreams"in window.RTCRtpSender.prototype&&_i()>=86,Yn="RTCRtpScriptTransform"in window,Co=Io&&(Ri||Yn),Ad=function(){return["RTCPeerConnection","webkitRTCPeerConnection","RTCIceGatherer"].filter(i=>i in window).length>0};function Sh(){let s={AudioDecoder:!1,AudioEncoder:!1,VideoDecoder:!1,VideoEncoder:!1,ImageDecoder:!1};return g(window.AudioDecoder)||(s.AudioDecoder=!0),g(window.AudioEncoder)||(s.AudioEncoder=!0),g(window.VideoDecoder)||(s.VideoDecoder=!0),g(window.VideoEncoder)||(s.VideoEncoder=!0),g(window.ImageDecoder)||(s.ImageDecoder=!0),s}function Ih(){return"mediaSession"in navigator&&!g(navigator.mediaSession.setActionHandler)}function Ah(){return!g(window.WebTransport)}function Zf(){return typeof WebAssembly=="undefined"?!1:WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]))}function e_(){let s={browser:`${Wt.name}/${Wt.version}`,os:Fn(),displayResolution:_h(),isScreenShareSupported:Eo(),isWebRTCSupported:Ad(),isGetUserMediaSupported:gh(),isWebAudioSupported:Th(),isWebSocketsSupported:"WebSocket"in window&&window.WebSocket.CLOSING===2,isWebCodecSupported:Sh(),isMediaSessionSupported:Ih(),isWebTransportSupported:Ah()};return navigator.userAgent.includes("miniProgram")&&(s.browser=`mini/${s.browser}`),s}var Ch="checkResult";function t_(){cs.setItem(Ch,{ua:navigator.userAgent,checkResult:ie})}function Cd(){Ci();let s=cs.getItem(Ch);s&&s.ua===navigator.userAgent&&(ie=s.checkResult),zn()}function Sr(){return"requestVideoFrameCallback"in HTMLVideoElement.prototype}var Rd="RTCRtpReceiver"in window&&"jitterBufferTarget"in window.RTCRtpReceiver.prototype;var yh=ke(Ge(),1);var Rh=Symbol("instance"),hS=Symbol("abortCtrl"),Kn=Symbol("cacheResult"),Ro=class{constructor(i,e,t){this.oldState=i,this.newState=e,this.action=t,this.aborted=!1}abort(i){this.aborted=!0,No.call(i,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},yo=class extends Error{constructor(i,e,t){super(e),this.state=i,this.message=e,this.cause=t}};function i_(s){return typeof s=="object"&&s&&"then"in s}var bo=new Map;function de(s,i,e={}){return(t,r,o)=>{let n=e.action||r;if(!e.context){let d=bo.get(t)||[];bo.has(t)||bo.set(t,d),d.push({from:s,to:i,action:n})}let a=o.value;o.value=function(...d){let l=this;if(e.context&&(l=Q.get(typeof e.context=="function"?e.context.call(this,...d):e.context)),l.state===i)return e.sync?l[Kn]:Promise.resolve(l[Kn]);l.state instanceof Ro&&l.state.action==e.abortAction&&l.state.abort(l);let m=null;Array.isArray(s)?s.length==0?l.state instanceof Ro&&l.state.abort(l):(typeof l.state!="string"||!s.includes(l.state))&&(m=new yo(l._state,`${l.name} ${n} to ${i} failed: current state ${l._state} not from ${s.join("|")}`)):s!==l.state&&(m=new yo(l._state,`${l.name} ${n} to ${i} failed: current state ${l._state} not from ${s}`));let u=D=>{if(e.fail&&e.fail.call(this,D),e.sync){if(e.ignoreError)return D;throw D}else return e.ignoreError?Promise.resolve(D):Promise.reject(D)};if(m)return u(m);let p=l.state,_=new Ro(p,i,n);No.call(l,_);let I=D=>{var G;return l[Kn]=D,_.aborted||(No.call(l,i),(G=e.success)===null||G===void 0||G.call(this,l[Kn])),D},R=D=>(No.call(l,p,D),u(D));try{let D=a.apply(this,d);return i_(D)?D.then(I).catch(R):e.sync?I(D):Promise.resolve(I(D))}catch(D){return R(new yo(l._state,`${l.name} ${n} from ${s} to ${i} failed: ${D}`,D instanceof Error?D:new Error(String(D))))}}}}var r_=typeof window!="undefined"&&window.__AFSM__?(e,t)=>{window.dispatchEvent(new CustomEvent(e,{detail:t}))}:typeof importScripts!="undefined"?(e,t)=>{postMessage({type:e,payload:t})}:()=>{};function No(s,i){let e=this._state;this._state=s;let t=s.toString();s&&this.emit(t,e),this.emit(Q.STATECHANGED,s,e,i),this.updateDevTools({value:s,old:e,err:i instanceof Error?i.message:String(i)})}var Q=class s extends yh.default{constructor(i,e,t){super(),this.name=i,this.groupName=e,this._state=s.INIT,i||(i=Date.now().toString(36)),t?Object.setPrototypeOf(this,t):t=Object.getPrototypeOf(this),e||(this.groupName=this.constructor.name);let r=t[Rh];r?this.name=r.name+"-"+r.count++:t[Rh]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let i=Object.getPrototypeOf(this),e=bo.get(i)||[],t=new Set,r=[],o=[],n=new Set,a=Object.getPrototypeOf(i);bo.has(a)&&(a.stateDiagram.forEach(l=>t.add(l)),a.allStates.forEach(l=>n.add(l))),e.forEach(({from:l,to:m,action:u})=>{typeof l=="string"?r.push({from:l,to:m,action:u}):l.length?l.forEach(p=>{r.push({from:p,to:m,action:u})}):o.push({to:m,action:u})}),r.forEach(({from:l,to:m,action:u})=>{n.add(l),n.add(m),n.add(u+"ing"),t.add(`${l} --> ${u}ing : ${u}`),t.add(`${u}ing --> ${m} : ${u} \u{1F7E2}`),t.add(`${u}ing --> ${l} : ${u} \u{1F534}`)}),o.forEach(({to:l,action:m})=>{t.add(`${m}ing --> ${l} : ${m} \u{1F7E2}`),n.forEach(u=>{u!==l&&t.add(`${u} --> ${m}ing : ${m}`)})});let d=[...t];return Object.defineProperties(i,{stateDiagram:{value:d},allStates:{value:n}}),d}static get(i){let e;return typeof i=="string"?(e=s.instances.get(i),e||s.instances.set(i,e=new s(i,void 0,Object.create(s.prototype)))):(e=s.instances2.get(i),e||s.instances2.set(i,e=new s(i.constructor.name,void 0,Object.create(s.prototype)))),e}static getState(i){var e;return(e=s.get(i))===null||e===void 0?void 0:e.state}updateDevTools(i={}){r_(s.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},i))}get state(){return this._state}set state(i){No.call(this,i)}};Q.STATECHANGED="stateChanged";Q.UPDATEAFSM="updateAFSM";Q.INIT="[*]";Q.ON="on";Q.OFF="off";Q.instances=new Map;Q.instances2=new WeakMap;var yd=typeof window!="undefined",bh=yd&&window.requestIdleCallback||function(s){let i=Date.now();return setTimeout(()=>{s({didTimeout:!1,timeRemaining(){return Math.max(0,50-(Date.now()-i))}})},1e3)},s_=yd&&window.cancelIdleCallback||function(s){clearTimeout(s)},o_=yd&&(window.cancelAnimationFrame||window.mozCancelAnimationFrame),vo=class{static generateTaskID(){return this.currentTaskID++}static run(i=Gi,e,t){i===dr?t=v({delay:2e3,count:0,backgroundTask:!0},t):i===$i?t=v({delay:1e4,count:0},t):i===Wr?t=v({fps:60,delay:16.6,count:0,backgroundTask:!0},t):t=v({delay:2e3,count:0,backgroundTask:!0},t),ut(e)&&(t=v(v({},t),e)),se(i)&&(e=i,i=Gi);let r=v({taskID:this.generateTaskID(),loopCount:0,intervalID:null,timeoutID:null,rafID:null,ricID:null,taskName:i,callback:e},t);return this.taskMap.set(r.taskID,r),this[i](r),r.taskID}static interval(i){let e=()=>{i.callback(),i.loopCount+=1,this.isBreakLoop(i)};return i.intervalID=setInterval(e,i.delay)}static intervalInWorker(i){i.delay=(1e3/i.fps).toFixed(2);let e=new Worker(URL.createObjectURL(new Blob([`
12
14
  let timerID = null;
13
15
  self.onmessage = function (e) {
14
16
  if (e.data === 'start') {
15
17
  timerID = setInterval(() => {
16
18
  self.postMessage('tick');
17
- }, ${t.delay});
19
+ }, ${i.delay});
18
20
  } else if (e.data === 'stop') {
19
21
  clearInterval(timerID);
20
22
  }
21
23
  };
22
- `],{type:"application/javascript"})));e.onmessage=r=>{r.data==="tick"&&(t.callback(),t.loopCount+=1,this.isBreakLoop(t)&&e.postMessage("stop"))},t.worker=e,e.postMessage("start")}static timeout(t){let e=()=>{if(t.callback(),t.loopCount+=1,!this.isBreakLoop(t))return t.timeoutID=setTimeout(e,t.delay)};return t.timeoutID=setTimeout(e,t.delay)}static ric(t){let e=ge(),r,o=()=>{if(r=ge()-e,r>=t.delay&&(e=ge()-Math.floor(r%t.delay),t.callback(),t.loopCount+=1),!this.isBreakLoop(t))return t.ricID=K_(o,{timeout:t.delay})};return t.ricID=K_(o,{timeout:t.delay})}static raf(t){t.delay=(1e3/t.fps).toFixed(2);let e=ge(),r,o=()=>{if(document.hidden&&t.backgroundTask)return r=ge()-e,e=ge(),t.callback(),t.loopCount+=1,this.isBreakLoop(t)?void 0:t.timeoutID=setTimeout(o,t.delay-Math.floor(r%t.delay));if(r=ge()-e,r>=t.delay&&(e=ge()-Math.floor(r%t.delay),t.callback(),t.loopCount+=1),!this.isBreakLoop(t))return t.rafID=requestAnimationFrame(o)};if(t.rafID=requestAnimationFrame(o),t.backgroundTask){let s=()=>{if(document.hidden){let a=ge()-e;a>=t.delay?o():t.timeoutID=setTimeout(o,t.delay-a)}};document.addEventListener("visibilitychange",s),t.onVisibilitychange=s,document.hidden&&s()}return t.taskID}static hasTask(t){return this.taskMap.has(t)}static clearTask(t){if(!this.taskMap.has(t))return!0;let{intervalID:e,timeoutID:r,rafID:o,ricID:s,onVisibilitychange:a,worker:d}=this.taskMap.get(t);return d&&d.terminate(),e&&clearInterval(e),r&&clearTimeout(r),o&&WI(o),s&&HI(s),a&&document.removeEventListener("visibilitychange",a),this.taskMap.delete(t),!0}static isBreakLoop(t){return this.taskMap.has(t.taskID)?t.count!==0&&t.loopCount>=t.count?(this.clearTask(t.taskID),!0):!1:!0}};l(La,"taskMap",new Map),l(La,"currentTaskID",1);var Et=La;var ev={STREAM_ADDED:"stream-added",STREAM_REMOVED:"stream-removed",STREAM_UPDATED:"stream-updated",STREAM_SUBSCRIBED:"stream-subscribed",CONNECTION_STATE_CHANGED:"connection-state-changed",PEER_JOIN:"peer-join",PEER_LEAVE:"peer-leave",MUTE_AUDIO:"mute-audio",MUTE_VIDEO:"mute-video",UNMUTE_AUDIO:"unmute-audio",UNMUTE_VIDEO:"unmute-video",CLIENT_BANNED:"client-banned",NETWORK_QUALITY:"network-quality",AUDIO_VOLUME:"audio-volume",SEI_MESSAGE:D.SEI_MESSAGE,ERROR:"error"};var at={LOADED_DATA:D.LOADEDDATA,MEDIA_TRACK_CHANGED:"media-track-changed",PLAYER_STATE_CHANGED:"player-state-changed",ERROR:"error"};var zr={};li(zr,{create:()=>vt,remove:()=>ct});var Ua=new WeakMap;function vt(i,t){Ua.has(i)||Ua.set(i,[]);let e=Ua.get(i),o={add:(s,a)=>("addEventListener"in t?(e.push(t.removeEventListener.bind(t,s,a)),t.addEventListener(s,a)):(e.push(t.off.bind(t,s,a)),t.on(s,a)),o)};return o}function ct(i){let t=Ua.get(i);t&&(t.forEach(e=>e()),Ua.delete(i))}var am=class{constructor(){l(this,"_roomIdMap",new Map);l(this,"_configs");typeof registerProcessor=="undefined"&&(this._configs={sdkAppId:"",userId:"",version:Ke,env:pi.QCLOUD,browserVersion:jr.name+jr.version,ua:navigator.userAgent})}setConfig({sdkAppId:t,env:e,userId:r,roomId:o}){t!==this._configs.sdkAppId&&(this._configs.sdkAppId=String(t)),this._configs.env=e,this._configs.userId=r,this._roomIdMap.set(r,String(o))}logSuccessEvent(t){wr||!V.isAbleToUpload||this._configs.env===pi.QCLOUD&&this.uploadEventToKibana(me(J({},t),{result:"success"}))}logFailedEvent(t){if(wr||!V.isAbleToUpload)return;let{eventType:e,code:r,error:o,userId:s}=t,a={roomId:this._roomIdMap.get(s||this._configs.userId),userId:s,eventType:e,result:"failed",code:r||(o==null?void 0:o.extraCode)||(o==null?void 0:o.code)||Y.UNKNOWN};this._configs.env===pi.QCLOUD&&this.uploadEventToKibana(me(J({},a),{error:o}))}uploadEventToKibana(t){let e=`stat-${t.eventType}-${t.result}`;(t.eventType==="delta-join"||t.eventType==="delta-leave"||t.eventType==="delta-publish")&&(e=`${t.eventType}:${t.delta}`),this.uploadEvent({log:e,userId:t.userId}),t.result==="failed"&&(e=`stat-${t.eventType}-${t.result}-${t.code}`,this.uploadEvent({log:e,userId:t.userId,error:t.error}))}uploadEvent({log:t,userId:e,error:r}){let o={timestamp:Xc(),sdkAppId:this._configs.sdkAppId,userId:e||this._configs.userId,version:Ke,log:t};r&&(o.errorInfo=r.message,r.stack&&(o.errorInfo+=`
23
- ${r.stack}`)),this.sendRequest(fi(this._configs.sdkAppId,ki.LOG),o)}sendRequest(t,e){setTimeout(()=>_i({url:t,body:JSON.stringify(e),priority:"low"}).catch(()=>{}),2e3)}},Le=new am;var Oo=new WeakMap;function ji({settings:i={retries:5,timeout:2e3},onError:t,onRetrying:e,onRetryFailed:r}){return function(o,s,a){let d=Vi({retryFunction:a.value,settings:i,onError({error:h,retry:p,reject:T,retryFuncArgs:y}){var R;t?t.call(this,h,()=>{var N;(N=Oo.get(o))!=null&&N.has(s)?p():T(h)},T,y):(R=Oo.get(o))!=null&&R.has(s)?p():T(h)},onRetrying(h,p){var T;Ui(e)&&e.call(this,h,p),(T=Oo.get(o))!=null&&T.has(s)&&(Oo.get(o).get(s).stopRetry=p)},onRetryFailed:r});return a.value=function(...h){let p=Oo.get(o);return p?p.set(s,{args:h}):Oo.set(o,new Map([[s,{args:h}]])),d.apply(this,h).finally(()=>{var T;return(T=Oo.get(o))==null?void 0:T.delete(s)})},a}}var Jr=class extends Z{constructor(e,r){super(e.id,`${r}-player`);this.kind=r;l(this,"id");l(this,"element",null);l(this,"track");l(this,"url");l(this,"attr");l(this,"mode");l(this,"muted");l(this,"_log");l(this,"_pausedRetryCount");l(this,"_isElementPlayingFired",!1);l(this,"_interval");l(this,"_delayDestroyTimeoutId",0);l(this,"_playSuccessResolve");l(this,"_isReplayByRecreateMediaStreamCalled",!1);l(this,"isInAutoPlayFailedState",!1);this.id=e.id,this._log=e.log,this.track=e.track,this.muted=e.muted,this._pausedRetryCount=dp,this._state="STOPPED",this.bindTrackEvents(),this._log.info(`create ${r}-player ${this.id}`)}get isPlaying(){var e;return this._state==="PLAYING"&&(((e=this.element)==null?void 0:e.paused)===!1||this.track&&this.track.readyState==="live"&&!this.track.muted)}get isStopped(){return this._state==="STOPPED"}setAttr(e){this.attr=e}setUrl(e){this.track&&(this.unbindTrackEvents(),this.element&&(this.element.srcObject=null),this.track=null),e!==this.url&&(this.url=e,e!==null&&this.element&&(this.element.crossOrigin="anonymous",this.element.src=e))}play(){return v(this,null,function*(){if(!this.isPlaying)try{this._delayDestroyTimeoutId&&(clearTimeout(this._delayDestroyTimeoutId),this._delayDestroyTimeoutId=0,this.bindTrackEvents(),this.bindElementEvents()),this.bindAutoPlayEvent(),yield new Promise((e,r)=>{this._playSuccessResolve=e,this.element.play().then(e,r)})}catch(e){let r=ot({key:it.PLAY_FAILED,data:{media:this.kind,error:e}});if(this.track&&!this.track.muted&&this._log.warn(e),r.includes("NotAllowedError"))throw this.isInAutoPlayFailedState=!0,new de({code:Y.PLAY_NOT_ALLOWED,message:r})}})}stop(e=0){this._isElementPlayingFired=!1,this.unbindEvents(),e>0&&!Bi?this._delayDestroyTimeoutId||(this._log.info(`destroy element after 3 * ${e}`),this._delayDestroyTimeoutId=setTimeout(()=>this.destroyElement(),3*e)):this.destroyElement(),this.handleStopped(D.ENDED),this._interval>0&&Et.clearTask(this._interval)}destroyElement(){this.element&&(this._log.debug("destroy element"),this.element.remove(),this.element.srcObject=null,this.element=null),clearTimeout(this._delayDestroyTimeoutId),this._delayDestroyTimeoutId=0}pause(){var e;this.isPlaying&&((e=this.element)==null||e.pause())}resume(){return this._log.info("resume"),this.isPlaying?Promise.resolve():Dp?this.replay():this.play().catch(()=>{})}setMuted(e){this.element&&(this.element.muted=e),this.muted=e}replay(){return this.stop(),this.play().catch(()=>{})}bindElementEvents(){if(this.element){let e=this.handleElementEvent.bind(this);return vt(this.element,this.element).add(D.PLAYING,e).add(D.ENDED,e).add(D.PAUSE,e).add(D.ERROR,e).add(D.LOADEDDATA,e)}}bindTrackEvents(e=this.track){if(e){let r=this.handleTrackEvent.bind(this);zr==null||zr.create(e,e).add(D.ENDED,r).add(D.MUTE,r).add(D.UNMUTE,r),e.readyState===D.ENDED&&this.handleTrackEvent({type:D.ENDED}),e.muted&&this.handleTrackEvent({type:D.MUTE})}}bindAutoPlayEvent(){B.on(O.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}unbindTrackEvents(e=this.track){e&&ct(e)}unbindEvents(){this.element&&ct(this.element),this.unbindTrackEvents(),B.off(O.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}handleElementEvent(e){switch(e.type){case D.PLAYING:this.isInAutoPlayFailedState=!1,this._isElementPlayingFired=!0,this._log.info(`${this.kind} player is playing`),this.handlePlaying(D.PLAYING),this._interval&&(Et.clearTask(this._interval),this._interval=-1);break;case D.ENDED:this._log.info(`${this.kind} player is ended`),this.handleStopped(D.ENDED);break;case D.PAUSE:this._log.info(`${this.kind} player is paused`),this.handlePaused(D.PAUSE),$t&&(this._interval=Et.run(Ts,()=>{this.element&&this._state==="PAUSED"&&this.resume()},{delay:3e3}));break;case D.ERROR:if(this.element&&this.element.error){this.handlePaused(D.ERROR);let{code:o,message:s}=this.element.error;this._log.error(`${this.kind} ${this._log.isLocal?"local":"remote"} MediaError code: ${o} message: ${s} userAgent: ${navigator.userAgent}`),Le.uploadEvent({log:`stat-${this.kind}-${mi.PLAYER_ERROR}-${o}-${navigator.userAgent}`,error:this.element.error}),vp||bp?this.emit(at.ERROR,this.element.error):this.replayByRecreateMediaStream(this.element.error)}break;case D.LOADEDDATA:this.kind===D.VIDEO&&this.emit(at.LOADED_DATA);break}}replayByRecreateMediaStream(e){if(!this._isReplayByRecreateMediaStreamCalled)return this._isReplayByRecreateMediaStreamCalled=!0,this.doReplayByRecreateMediaStream(1e3).then(()=>{this._log.warn("replayByRecreateMediaStream success"),Le.uploadEvent({log:"stat-replayByRecreateMediaStream-success"}),X.addSuccessEvent({key:this.kind===D.AUDIO?506700:516700})}).catch(()=>{var r;this._log.error("replayByRecreateMediaStream failed"),Le.uploadEvent({log:"stat-replayByRecreateMediaStream-failed"}),X.addFailedEvent({key:this.kind===D.AUDIO?506700:516700,error:(r=this.element)==null?void 0:r.error}),this.emit(at.ERROR,e)})}doReplayByRecreateMediaStream(e){return this._log.warn(`delay ${e}ms to recreate mediaStream`),new Promise((r,o)=>{sa(e).then(()=>{this.element&&(this.element.srcObject=null,this.element.srcObject=new MediaStream([this.track]),this._log.warn("recreated mediaStream"),this.element.onerror=()=>{var s,a,d;this._log.warn(`element onerror ${(a=(s=this.element)==null?void 0:s.error)==null?void 0:a.code} fired after recreated mediaStream`),o((d=this.element)==null?void 0:d.error)}),sa(5e3).then(()=>{var s,a;(!this.isPlaying||((s=this.element)==null?void 0:s.error))&&o((a=this.element)==null?void 0:a.error),r()})})}).finally(()=>{this.element&&(this.element.onerror=null)})}handleTrackEvent(e){switch(e.type){case D.ENDED:this.handleStopped(D.ENDED);break;case D.MUTE:this.handlePaused(D.MUTE);break;case D.UNMUTE:this._isElementPlayingFired?this.handlePlaying(D.UNMUTE):this.mode>0&&this.handlePlaying(this.mode.toString());break}}handlePlaying(e){var r;(r=this._playSuccessResolve)==null||r.call(this,e),this.emit(at.PLAYER_STATE_CHANGED,{type:this.kind,state:"PLAYING",reason:e})}handlePaused(e){this.emit(at.PLAYER_STATE_CHANGED,{type:this.kind,state:"PAUSED",reason:e})}handleStopped(e){this.emit(at.PLAYER_STATE_CHANGED,{type:this.kind,state:"STOPPED",reason:e})}getElement(){return this.element}};q([ji({settings:{retries:2,timeout:0},onError(i,t,e,r){r[0]=(r[0]||1e3)+1e3,t()}})],Jr.prototype,"doReplayByRecreateMediaStream",1),q([be([],"PLAYING",{sync:!0})],Jr.prototype,"handlePlaying",1),q([be("PLAYING","PAUSED",{ignoreError:!0,sync:!0})],Jr.prototype,"handlePaused",1),q([be([],"STOPPED",{sync:!0})],Jr.prototype,"handleStopped",1);var bi="trtc_autoplay",cm=`${bi}_mask`,Hs=`${bi}_wrapper`,eg=`${bi}_header`,dm=`${bi}_content`,jd=`${bi}_action_wrapper`,um=`${bi}_question`,lm=`${bi}_collapse`,qd=`${bi}_action_confirm`,tg=`${bi}_detail`,rg="#2473E8",mm="dialog",GI=`${mm}-show`,jI=`${mm}-1`,qI=`${mm}-2`,ig=!1,hm=()=>!!document.querySelector(`.${Hs}`),sg=`${Fr}/${vr()?"zh-cn":"en"}/tutorial-21-advanced-auto-play-policy.html`,og=`<br><a href='${sg}' target='_blank'>${vr()?"\u5176\u4ED6\u65B9\u6848\uFF1F":"Any other solution?"}</a>`,zI=`${vr()?`\u6D4F\u89C8\u5668\u81EA\u52A8\u64AD\u653E\u7B56\u7565\uFF1A\u5728\u7528\u6237\u4E0E\u9875\u9762\u4EA7\u751F\u4EA4\u4E92\uFF08\u70B9\u51FB\u3001\u89E6\u6478\uFF09\u4E4B\u524D\uFF0C\u6D4F\u89C8\u5668\u7981\u6B62\u64AD\u653E\u6709\u58F0\u5A92\u4F53\u3002\u8BE5\u5F39\u7A97\u7528\u4E8E\u5E2E\u52A9\u7528\u6237\u6062\u590D\u97F3\u89C6\u9891\u64AD\u653E\u3002${og}`:`Autoplay Policy: Before user interacts with the web page (clicking, touching), page will not be allowed to play media with sound. This Dialog is used to help users resume playback. ${og}`}`,pm=class{constructor(){l(this,"content","\u97F3\u89C6\u9891\u64AD\u653E\u88AB\u6D4F\u89C8\u5668\u62E6\u622A\uFF0C\u8BF7\u70B9\u51FB\u201C\u6062\u590D\u64AD\u653E\u201D\u3002");l(this,"_dialogNode",null);l(this,"_bodyPosition","");l(this,"_showDetail",!1);l(this,"_isCollapseClicked",!1);l(this,"_isQuestionClicked",!1);if(vr()||(this.content='Media playback failed. Click the "Resume" to resume playback.'),!ig){let t=document.createElement("style");t.innerHTML=`.${cm}{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;display:flex;justify-content:center;align-items:center;background:rgba(0,0,0,0.5);z-index:1500;}.${cm} div:not(.${jd}){display:block !important;}.${Hs}{padding:14px;background:#fff;border-radius:3px;box-shadow:0px 3px 15px #434343;border:1px solid #d1cfcf;max-width:500px;}.${Hs} a{color:${rg};}.${eg}{overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:600;}.${dm}{margin:8px 0;}.${jd}{width:100%;display:flex !important;align-items:center;justify-content:right;float:right;}.${lm}{margin-right:auto;cursor:pointer}.${um}{height:100%;line-height:16px;cursor:pointer;}.${qd}{margin-left:8px;color:#fff;background:${rg};padding:4px 12px;outline:none;border:1px solid;border-radius:3px;font-weight:bold;}.${qd}:hover{opacity:0.9;}.${lm},.${qd},.${dm},.${um}{font-size:14px;}@media screen and (max-width:750px){.${Hs}{width:80vw;}}`,document.head.appendChild(t),ig=!0}this.addDiaLog()}createDiaLog(){let t=document.createElement("template");t.innerHTML=`<div class="${cm}"><div class='${Hs}'><div class='${eg}'>${location.host}</div><div class='${dm}'>${this.content}</div><div class='${tg}' style="visibility:hidden;width:100%;height:0;font-size:12px;color:gray;">${zI}</div><div class='${jd}'></div></div></div>`.trim();let e=document.createElement("button");e.className=qd,e.innerText=vr()?"\u6062\u590D\u64AD\u653E":"Resume",e.onclick=this.onConfirm.bind(this);let r=document.createElement("div");r.className=um,r.innerHTML=`<?xml version="1.0" encoding="UTF-8"?>
24
+ `],{type:"application/javascript"})));e.onmessage=t=>{t.data==="tick"&&(i.callback(),i.loopCount+=1,this.isBreakLoop(i)&&e.postMessage("stop"))},i.worker=e,e.postMessage("start")}static timeout(i){let e=()=>{if(i.callback(),i.loopCount+=1,!this.isBreakLoop(i))return i.timeoutID=setTimeout(e,i.delay)};return i.timeoutID=setTimeout(e,i.delay)}static ric(i){let e=L(),t,r=()=>{if(t=L()-e,t>=i.delay&&(e=L()-Math.floor(t%i.delay),i.callback(),i.loopCount+=1),!this.isBreakLoop(i))return i.ricID=bh(r,{timeout:i.delay})};return i.ricID=bh(r,{timeout:i.delay})}static raf(i){i.delay=(1e3/i.fps).toFixed(2);let e=L(),t,r=()=>{if(document.hidden&&i.backgroundTask)return t=L()-e,e=L(),i.callback(),i.loopCount+=1,this.isBreakLoop(i)?void 0:i.timeoutID=setTimeout(r,i.delay-Math.floor(t%i.delay));if(t=L()-e,t>=i.delay&&(e=L()-Math.floor(t%i.delay),i.callback(),i.loopCount+=1),!this.isBreakLoop(i))return i.rafID=requestAnimationFrame(r)};if(i.rafID=requestAnimationFrame(r),i.backgroundTask){let o=()=>{if(document.hidden){let n=L()-e;n>=i.delay?r():i.timeoutID=setTimeout(r,i.delay-n)}};document.addEventListener("visibilitychange",o),i.onVisibilitychange=o,document.hidden&&o()}return i.taskID}static hasTask(i){return this.taskMap.has(i)}static clearTask(i){if(!this.taskMap.has(i))return!0;let{intervalID:e,timeoutID:t,rafID:r,ricID:o,onVisibilitychange:n,worker:a}=this.taskMap.get(i);return a&&a.terminate(),e&&clearInterval(e),t&&clearTimeout(t),r&&o_(r),o&&s_(o),n&&document.removeEventListener("visibilitychange",n),this.taskMap.delete(i),!0}static isBreakLoop(i){return this.taskMap.has(i.taskID)?i.count!==0&&i.loopCount>=i.count?(this.clearTask(i.taskID),!0):!1:!0}};c(vo,"taskMap",new Map),c(vo,"currentTaskID",1);var re=vo;var SS={STREAM_ADDED:"stream-added",STREAM_REMOVED:"stream-removed",STREAM_UPDATED:"stream-updated",STREAM_SUBSCRIBED:"stream-subscribed",CONNECTION_STATE_CHANGED:"connection-state-changed",PEER_JOIN:"peer-join",PEER_LEAVE:"peer-leave",MUTE_AUDIO:"mute-audio",MUTE_VIDEO:"mute-video",UNMUTE_AUDIO:"unmute-audio",UNMUTE_VIDEO:"unmute-video",CLIENT_BANNED:"client-banned",NETWORK_QUALITY:"network-quality",AUDIO_VOLUME:"audio-volume",SEI_MESSAGE:h.SEI_MESSAGE,ERROR:"error"};var pe={LOADED_DATA:h.LOADEDDATA,LOADED_META_DATA:h.LOADEDMETADATA,MEDIA_TRACK_CHANGED:"media-track-changed",PLAYER_STATE_CHANGED:"player-state-changed",ERROR:"error"};var Xt={};ni(Xt,{create:()=>Ue,remove:()=>Se});var Do=new WeakMap;function Ue(s,i){Do.has(s)||Do.set(s,[]);let e=Do.get(s),r={add:(o,n)=>("addEventListener"in i?(e.push(i.removeEventListener.bind(i,o,n)),i.addEventListener(o,n)):(e.push(i.off.bind(i,o,n)),i.on(o,n)),r)};return r}function Se(s){let i=Do.get(s);i&&(i.forEach(e=>e()),Do.delete(s))}var bd=class{constructor(){c(this,"_roomIdMap",new Map);c(this,"_configs");typeof registerProcessor=="undefined"&&(this._configs={sdkAppId:"",userId:"",version:Ce,env:ai.QCLOUD,browserVersion:Wt.name+Wt.version,ua:navigator.userAgent})}setConfig({sdkAppId:i,env:e,userId:t,roomId:r}){i!==this._configs.sdkAppId&&(this._configs.sdkAppId=String(i)),this._configs.env=e,this._configs.userId=t,this._roomIdMap.set(t,String(r))}logSuccessEvent(i){Ot||!C.isAbleToUpload||this._configs.env===ai.QCLOUD&&this.uploadEventToKibana(k(v({},i),{result:"success"}))}logFailedEvent(i){if(Ot||!C.isAbleToUpload)return;let{eventType:e,code:t,error:r,userId:o}=i,n={roomId:this._roomIdMap.get(o||this._configs.userId),userId:o,eventType:e,result:"failed",code:t||(r==null?void 0:r.extraCode)||(r==null?void 0:r.code)||S.UNKNOWN};this._configs.env===ai.QCLOUD&&this.uploadEventToKibana(k(v({},n),{error:r}))}uploadEventToKibana(i){let e=`stat-${i.eventType}-${i.result}`;(i.eventType==="delta-join"||i.eventType==="delta-leave"||i.eventType==="delta-publish")&&(e=`${i.eventType}:${i.delta}`),this.uploadEvent({log:e,userId:i.userId}),i.result==="failed"&&(e=`stat-${i.eventType}-${i.result}-${i.code}`,this.uploadEvent({log:e,userId:i.userId,error:i.error}))}uploadEvent({log:i,userId:e,error:t}){let r={timestamp:an(),sdkAppId:this._configs.sdkAppId,userId:e||this._configs.userId,version:Ce,log:i};t&&(r.errorInfo=t.message,t.stack&&(r.errorInfo+=`
25
+ ${t.stack}`)),this.sendRequest(li(this._configs.sdkAppId,Vi.LOG),r)}sendRequest(i,e){setTimeout(()=>mi({url:i,body:JSON.stringify(e),priority:"low"}).catch(()=>{}),2e3)}},ee=new bd;var Qt=new WeakMap;function Ke({settings:s={retries:5,timeout:2e3},onError:i,onRetrying:e,onRetryFailed:t}){return function(r,o,n){let a=Gt({retryFunction:n.value,settings:s,onError({error:d,retry:l,reject:m,retryFuncArgs:u}){var p;i?i.call(this,d,()=>{var _;(_=Qt.get(r))!=null&&_.has(o)?l():m(d)},m,u):(p=Qt.get(r))!=null&&p.has(o)?l():m(d)},onRetrying(d,l){var m;$t(e)&&e.call(this,d,l),(m=Qt.get(r))!=null&&m.has(o)&&(Qt.get(r).get(o).stopRetry=l)},onRetryFailed:t});return n.value=function(...d){let l=Qt.get(r);return l?l.set(o,{args:d}):Qt.set(r,new Map([[o,{args:d}]])),a.apply(this,d).finally(()=>{var m;return(m=Qt.get(r))==null?void 0:m.delete(o)})},n}}function Oo({fnName:s,callback:i,validateArgs:e=!0}){return function(t,r,o){let n=o.value;return o.value=function(...a){var d,l;if((d=Qt.get(t))!=null&&d.has(s)){let{stopRetry:m,args:u}=Qt.get(t).get(s),p=!0;if(e){for(let _ of u)if(!a.find(I=>I===_)){p=!1;break}}p&&(i&&i.apply(this,a),m&&m(),(l=Qt.get(t))==null||l.delete(s))}return n.apply(this,a)},o}}var zt=class extends Q{constructor(e,t){super(e.id,`${t}-player`);this.kind=t;c(this,"id");c(this,"element",null);c(this,"track");c(this,"url");c(this,"attr");c(this,"mode");c(this,"muted");c(this,"_log");c(this,"_pausedRetryCount");c(this,"_isElementPlayingFired",!1);c(this,"_interval");c(this,"_delayDestroyTimeoutId",0);c(this,"_playSuccessResolve");c(this,"_isReplayByRecreateMediaStreamCalled",!1);c(this,"isInAutoPlayFailedState",!1);this.id=e.id,this._log=e.log,this.track=e.track,this.muted=e.muted,this._pausedRetryCount=bc,this._state="STOPPED",this.bindTrackEvents(),this._log.info(`create ${t}-player ${this.id}`)}get isPlaying(){var e;return this._state==="PLAYING"&&(((e=this.element)==null?void 0:e.paused)===!1||this.track&&this.track.readyState==="live"&&!this.track.muted)}get isStopped(){return this._state==="STOPPED"}setAttr(e){this.attr=e}setUrl(e){this.track&&(this.unbindTrackEvents(),this.element&&(this.element.srcObject=null),this.track=null),e!==this.url&&(this.url=e,e!==null&&this.element&&(this.element.crossOrigin="anonymous",this.element.src=e))}play(){return f(this,null,function*(){if(!this.isPlaying)try{this._delayDestroyTimeoutId&&(clearTimeout(this._delayDestroyTimeoutId),this._delayDestroyTimeoutId=0,this.bindTrackEvents(),this.bindElementEvents()),this.bindAutoPlayEvent(),yield new Promise((e,t)=>{this._playSuccessResolve=e,this.element.play().then(e,t)})}catch(e){let t=U({key:x.PLAY_FAILED,data:{media:this.kind,error:e}});if(this.track&&!this.track.muted&&this._log.warn(e),t.includes("NotAllowedError"))throw this.isInAutoPlayFailedState=!0,new b({code:S.PLAY_NOT_ALLOWED,message:t})}})}stop(e=0){this._isElementPlayingFired=!1,this.unbindEvents(),e>0&&!Ji?this._delayDestroyTimeoutId||(this._log.info(`destroy element after 3 * ${e}`),this._delayDestroyTimeoutId=setTimeout(()=>this.destroyElement(),3*e)):this.destroyElement(),this.handleStopped(h.ENDED),this._interval>0&&re.clearTask(this._interval)}destroyElement(){this.element&&(this._log.debug("destroy element"),this.element.remove(),this.element.srcObject=null,this.element=null),clearTimeout(this._delayDestroyTimeoutId),this._delayDestroyTimeoutId=0}pause(){var e;this.isPlaying&&((e=this.element)==null||e.pause())}resume(){return this._log.info("resume"),this.isPlaying?Promise.resolve():qc?this.replay():this.play().catch(()=>{})}setMuted(e){this.element&&(this.element.muted=e),this.muted=e}replay(){return this.stop(),this.play().catch(()=>{})}bindElementEvents(){if(this.element){let e=this.handleElementEvent.bind(this);return Ue(this.element,this.element).add(h.PLAYING,e).add(h.ENDED,e).add(h.PAUSE,e).add(h.ERROR,e).add(h.LOADEDDATA,e).add(h.LOADEDMETADATA,e)}}bindTrackEvents(e=this.track){if(e){let t=this.handleTrackEvent.bind(this);Xt==null||Xt.create(e,e).add(h.ENDED,t).add(h.MUTE,t).add(h.UNMUTE,t),e.readyState===h.ENDED&&this.handleTrackEvent({type:h.ENDED}),e.muted&&this.handleTrackEvent({type:h.MUTE})}}bindAutoPlayEvent(){E.on(T.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}unbindTrackEvents(e=this.track){e&&Se(e)}unbindEvents(){this.element&&Se(this.element),this.unbindTrackEvents(),E.off(T.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}handleElementEvent(e){switch(e.type){case h.PLAYING:this.isInAutoPlayFailedState=!1,this._isElementPlayingFired=!0,this._log.info(`${this.kind} player is playing`),this.handlePlaying(h.PLAYING),this._interval&&(re.clearTask(this._interval),this._interval=-1);break;case h.ENDED:this._log.info(`${this.kind} player is ended`),this.handleStopped(h.ENDED);break;case h.PAUSE:this._log.info(`${this.kind} player is paused`),this.handlePaused(h.PAUSE),xe&&(this._interval=re.run(Gi,()=>{this.element&&this._state==="PAUSED"&&this.resume()},{delay:3e3}));break;case h.ERROR:if(this.element&&this.element.error){this.handlePaused(h.ERROR);let{code:r,message:o}=this.element.error;this._log.error(`${this.kind} ${this._log.isLocal?"local":"remote"} MediaError code: ${r} message: ${o} userAgent: ${navigator.userAgent}`),ee.uploadEvent({log:`stat-${this.kind}-${Xe.PLAYER_ERROR}-${r}-${navigator.userAgent}`,error:this.element.error}),Gc||$c?this.emit(pe.ERROR,this.element.error):this.replayByRecreateMediaStream(this.element.error)}break;case h.LOADEDDATA:this.kind===h.VIDEO&&this.emit(pe.LOADED_DATA);break;case h.LOADEDMETADATA:this.kind===h.VIDEO&&this.emit(pe.LOADED_META_DATA);break}}replayByRecreateMediaStream(e){if(!this._isReplayByRecreateMediaStreamCalled)return this._isReplayByRecreateMediaStreamCalled=!0,this.doReplayByRecreateMediaStream(1e3).then(()=>{this._log.warn("replayByRecreateMediaStream success"),ee.uploadEvent({log:"stat-replayByRecreateMediaStream-success"}),N.addSuccessEvent({key:this.kind===h.AUDIO?506700:516700})}).catch(()=>{var t;this._log.error("replayByRecreateMediaStream failed"),ee.uploadEvent({log:"stat-replayByRecreateMediaStream-failed"}),N.addFailedEvent({key:this.kind===h.AUDIO?506700:516700,error:(t=this.element)==null?void 0:t.error}),this.emit(pe.ERROR,e)})}doReplayByRecreateMediaStream(e){return this._log.warn(`delay ${e}ms to recreate mediaStream`),new Promise((t,r)=>{hi(e).then(()=>{this.element&&(this.element.srcObject=null,this.element.srcObject=new MediaStream([this.track]),this._log.warn("recreated mediaStream"),this.element.onerror=()=>{var o,n,a;this._log.warn(`element onerror ${(n=(o=this.element)==null?void 0:o.error)==null?void 0:n.code} fired after recreated mediaStream`),r((a=this.element)==null?void 0:a.error)}),hi(5e3).then(()=>{var o,n;(!this.isPlaying||(o=this.element)!=null&&o.error)&&r((n=this.element)==null?void 0:n.error),t()})})}).finally(()=>{this.element&&(this.element.onerror=null)})}handleTrackEvent(e){switch(e.type){case h.ENDED:this.handleStopped(h.ENDED);break;case h.MUTE:this.handlePaused(h.MUTE);break;case h.UNMUTE:this._isElementPlayingFired?this.handlePlaying(h.UNMUTE):this.mode>0&&this.handlePlaying(this.mode.toString());break}}handlePlaying(e){var t;(t=this._playSuccessResolve)==null||t.call(this,e),this.emit(pe.PLAYER_STATE_CHANGED,{type:this.kind,state:"PLAYING",reason:e})}handlePaused(e){this.emit(pe.PLAYER_STATE_CHANGED,{type:this.kind,state:"PAUSED",reason:e})}handleStopped(e){this.emit(pe.PLAYER_STATE_CHANGED,{type:this.kind,state:"STOPPED",reason:e})}getElement(){return this.element}};y([Ke({settings:{retries:2,timeout:0},onError(e,t,r,o){o[0]=(o[0]||1e3)+1e3,t()}})],zt.prototype,"doReplayByRecreateMediaStream",1),y([de([],"PLAYING",{sync:!0})],zt.prototype,"handlePlaying",1),y([de("PLAYING","PAUSED",{ignoreError:!0,sync:!0})],zt.prototype,"handlePaused",1),y([de([],"STOPPED",{sync:!0})],zt.prototype,"handleStopped",1);var yi="trtc_autoplay",Nd=`${yi}_mask`,hs=`${yi}_wrapper`,Nh=`${yi}_header`,vd=`${yi}_content`,Zn=`${yi}_action_wrapper`,Dd=`${yi}_question`,Od=`${yi}_collapse`,ea=`${yi}_action_confirm`,vh=`${yi}_detail`,Dh="#2473E8",kd="dialog",n_=`${kd}-show`,a_=`${kd}-1`,c_=`${kd}-2`,Oh=!1,Ld=()=>!!document.querySelector(`.${hs}`),kh=`${Bt}/${At()?"zh-cn":"en"}/tutorial-21-advanced-auto-play-policy.html`,Mh=`<br><a href='${kh}' target='_blank'>${At()?"\u5176\u4ED6\u65B9\u6848\uFF1F":"Any other solution?"}</a>`,d_=`${At()?`\u6D4F\u89C8\u5668\u81EA\u52A8\u64AD\u653E\u7B56\u7565\uFF1A\u5728\u7528\u6237\u4E0E\u9875\u9762\u4EA7\u751F\u4EA4\u4E92\uFF08\u70B9\u51FB\u3001\u89E6\u6478\uFF09\u4E4B\u524D\uFF0C\u6D4F\u89C8\u5668\u7981\u6B62\u64AD\u653E\u6709\u58F0\u5A92\u4F53\u3002\u8BE5\u5F39\u7A97\u7528\u4E8E\u5E2E\u52A9\u7528\u6237\u6062\u590D\u97F3\u89C6\u9891\u64AD\u653E\u3002${Mh}`:`Autoplay Policy: Before user interacts with the web page (clicking, touching), page will not be allowed to play media with sound. This Dialog is used to help users resume playback. ${Mh}`}`,Md=class{constructor(){c(this,"content","\u97F3\u89C6\u9891\u64AD\u653E\u88AB\u6D4F\u89C8\u5668\u62E6\u622A\uFF0C\u8BF7\u70B9\u51FB\u201C\u6062\u590D\u64AD\u653E\u201D\u3002");c(this,"_dialogNode",null);c(this,"_bodyPosition","");c(this,"_showDetail",!1);c(this,"_isCollapseClicked",!1);c(this,"_isQuestionClicked",!1);if(At()||(this.content='Media playback failed. Click the "Resume" to resume playback.'),!Oh){let i=document.createElement("style");i.innerHTML=`.${Nd}{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;display:flex;justify-content:center;align-items:center;background:rgba(0,0,0,0.5);z-index:1500;}.${Nd} div:not(.${Zn}){display:block !important;}.${hs}{padding:14px;background:#fff;border-radius:3px;box-shadow:0px 3px 15px #434343;border:1px solid #d1cfcf;max-width:500px;}.${hs} a{color:${Dh};}.${Nh}{overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:600;}.${vd}{margin:8px 0;}.${Zn}{width:100%;display:flex !important;align-items:center;justify-content:right;float:right;}.${Od}{margin-right:auto;cursor:pointer}.${Dd}{height:100%;line-height:16px;cursor:pointer;}.${ea}{margin-left:8px;color:#fff;background:${Dh};padding:4px 12px;outline:none;border:1px solid;border-radius:3px;font-weight:bold;}.${ea}:hover{opacity:0.9;}.${Od},.${ea},.${vd},.${Dd}{font-size:14px;}@media screen and (max-width:750px){.${hs}{width:80vw;}}`,document.head.appendChild(i),Oh=!0}this.addDiaLog()}createDiaLog(){let i=document.createElement("template");i.innerHTML=`<div class="${Nd}"><div class='${hs}'><div class='${Nh}'>${location.host}</div><div class='${vd}'>${this.content}</div><div class='${vh}' style="visibility:hidden;width:100%;height:0;font-size:12px;color:gray;">${d_}</div><div class='${Zn}'></div></div></div>`.trim();let e=document.createElement("button");e.className=ea,e.innerText=At()?"\u6062\u590D\u64AD\u653E":"Resume",e.onclick=this.onConfirm.bind(this);let t=document.createElement("div");t.className=Dd,t.innerHTML=`<?xml version="1.0" encoding="UTF-8"?>
24
26
  <svg class="icon" width="18" height="18" p-id="2030" t="1639646523624" version="1.1" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
25
27
  <path d="m464 784.35c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z" p-id="2031"/>
26
28
  <path d="m512 960c-247.04 0-448-200.96-448-448s200.96-448 448-448 448 200.96 448 448-200.96 448-448 448zm0-831.71c-211.58 0-383.71 172.13-383.71 383.71 0 211.55 172.13 383.71 383.71 383.71 211.55 0 383.71-172.16 383.71-383.71 0-211.58-172.16-383.71-383.71-383.71z" p-id="2032"/>
27
29
  <path d="m512 673.7c-17.665 0-32.001-14.336-32.001-31.999v-54.112c0-52.353 40-92.352 75.328-127.65 25.887-25.92 52.672-52.672 52.672-74.017 0-53.343-43.072-96.735-95.999-96.735-53.823 0-95.999 41.536-95.999 94.559 0 17.665-14.336 31.999-32.001 31.999s-32.001-14.336-32.001-31.999c0-87.424 71.775-158.56 160-158.56s160 72.095 160 160.74c0 47.904-36.32 84.192-71.424 119.3-27.84 27.776-56.576 56.512-56.576 82.336v54.112c0 17.665-14.336 32.032-32.001 32.032z" p-id="2033"/>
28
30
  </svg>
29
- `,r.onclick=this.onQuestionClick.bind(this);let o=document.createElement("div");o.className=lm,o.innerText=`${vr()?"\u8BE6\u60C5 >":"Detail >"}`,o.onclick=this.onCollapseClick.bind(this);let s=t.content.firstChild,a=s.querySelector(`.${jd}`);return a.appendChild(o),a.appendChild(r),a.appendChild(e),s}addDiaLog(){hm()||(this._dialogNode=this.createDiaLog(),document.body.appendChild(this._dialogNode),this._dialogNode.onclick=this.onConfirm.bind(this),this._dialogNode.querySelector(`.${Hs}`).onclick=t=>t.stopPropagation(),this._bodyPosition=document.body.style.position,document.body.style.position="fixed",V.info("show autoplay dialog"),Le.uploadEvent({log:GI}))}deleteDiaLog(){this._dialogNode&&(document.body.removeChild(this._dialogNode),document.body.style.position=this._bodyPosition,this._dialogNode=null)}onConfirm(){V.warn("confirm clicked, try resume stream"),B.emit(O.AUTOPLAY_DIALOG_CLICK_CONFIRM),this.deleteDiaLog()}onCollapseClick(){let t=this._dialogNode.querySelector(`.${tg}`);t.style.visibility=`${this._showDetail?"hidden":"visible"}`,t.style.height=`${this._showDetail?0:"fit-content"}`,this._showDetail=!this._showDetail,this._isCollapseClicked||Le.uploadEvent({log:jI}),this._isCollapseClicked=!0}onQuestionClick(){window.open(sg,"_blank"),this._isQuestionClicked||Le.uploadEvent({log:qI}),this._isQuestionClicked=!0}},ng=pm;var ir=class extends Jr{constructor(e){super(e,D.VIDEO);l(this,"stat",{});l(this,"_calculateTimeout",-1);l(this,"viewMirror",!1);l(this,"objectFit");l(this,"container");l(this,"canvas");l(this,"canvasTrack");this.mode=e.canvas?1:0,this.container=e.container,this.canvas=e.canvas,L(e.viewMirror)||(this.viewMirror=e.viewMirror),L(e.objectFit)||(this.objectFit=e.objectFit),this.initializeElement()}initializeElement(){var r;let e=document.createElement(D.VIDEO);this.track&&this.mode!==2&&(e.srcObject=new MediaStream([this.track])),e.muted=!0,e.setAttribute("id",`video_${this.id}`),e.setAttribute("style",this.styleAttribute),this.canvas&&this.canvas.setAttribute("style",this.styleAttribute),e.setAttribute("autoplay","autoplay"),e.setAttribute("playsinline","playsinline"),this.element=e,(r=this.container)==null||r.appendChild(this.elementToRender),this.bindElementEvents(),this.calculateStat()}get styleAttribute(){let e=`width: 100%; height: 100%; object-fit: ${this.objectFit};background-color: black;`;return this.viewMirror&&(e+="transform: scaleX(-1);"),e}setContainer(e){var r;this.container=e,(this.track||this.canvasTrack)&&this.elementToRender&&((r=this.container)==null||r.appendChild(this.elementToRender))}bindElementEvents(){let e=super.bindElementEvents();this.handleElementEvent=this.handleElementEvent.bind(this),e&&e.add(D.ENTER_PICTURE_IN_PICTURE,this.handleElementEvent).add(D.LEAVE_PICTURE_IN_PICTURE,this.handleElementEvent)}handleTrackEvent(e){var r;super.handleTrackEvent(e),e.type===D.MUTE&&((r=this.stat)==null?void 0:r.fps)&&(this.stat.fps=0)}handleElementEvent(e){var o;if(this.mode===2)return;super.handleElementEvent(e);let r=e.type;if(r===D.PAUSE&&(this.container&&document.getElementById(this.container.id)||this._log.warn(`${this.kind} player has been remove, element ID: ${(o=this.container)==null?void 0:o.id}`),this._pausedRetryCount>0&&!hm()&&(this._log.info(`${this.kind} player auto resume when paused`),this.resume(),this._pausedRetryCount--),this.stat.fps&&(this.stat.fps=0)),this.viewMirror&&this.element){let s=this.element.style.transform;r===D.ENTER_PICTURE_IN_PICTURE?this.element.style.transform=s.replace("scaleX(-1)",""):r===D.LEAVE_PICTURE_IN_PICTURE&&!s.includes("scaleX")&&(this.element.style.transform=`${s} scaleX(-1)`)}}setCanvas(e,r=1){var o,s,a,d;this.canvas!==e&&((o=this.canvas)==null||o.remove(),e==null||e.setAttribute("style",this.styleAttribute),this.canvas=e,this.mode=e?r:0,this.mode===2&&this.setTrack(e.captureStream().getVideoTracks()[0]),e?((s=this.element)==null||s.remove(),(a=this.container)==null||a.appendChild(e)):this.element&&((d=this.container)==null||d.appendChild(this.element)))}setAttr(e){let r=Object.assign({autoplay:"autoplay",playsinline:"playsinline",muted:!0},e);r.style=Object.assign({width:"100%",height:"100%"},r.style),super.setAttr(r)}get mirror(){return this.viewMirror}setRect(e,r){this.elementToRender&&(this.elementToRender.style.width=`${e}px`,this.elementToRender.style.height=`${r}px`)}setViewMirror(e){this.elementToRender&&(this.elementToRender.style.transform=e?"scaleX(-1)":""),this.viewMirror=e}setObjectFit(e){this.elementToRender&&(this.elementToRender.style.objectFit=`${e}`),this.objectFit=e}stop(e=0){var r;super.stop(e),(r=this.canvas)==null||r.remove()}play(){return this.element?this.elementToRender&&this.elementToRender.parentElement!==this.container&&this.container&&this.container.append(this.elementToRender):this.initializeElement(),this.mode===2?Promise.resolve():super.play()}get elementToRender(){return this.canvas||this.element}setTrack(e){e!==this.track&&(this.unbindTrackEvents(),this.track=e,this.emit(at.MEDIA_TRACK_CHANGED,e),e!==null&&(this.bindTrackEvents(),this.element&&this.mode!==2&&(this.element.srcObject=new MediaStream([e]),this.element.remove()),this.elementToRender&&this.elementToRender.parentElement!==this.container&&this.container&&this.container.append(this.elementToRender)))}getVideoFrame(){if(this.canvas)return this.canvas.toDataURL("image/png");if(!this.element)return"";let e=document.createElement("canvas");return e.width=this.element.videoWidth,e.height=this.element.videoHeight,e.getContext("2d").drawImage(this.element,0,0),e.toDataURL("image/png")}getElement(){return this.element}calculateStat(){try{if(Mo()&&this.element&&this._calculateTimeout<0){let e=0,r=null,o=(s,a)=>{this.stat.width=a.width,this.stat.height=a.height,r&&(this.stat.fps=Math.round((a.presentedFrames-r.presentedFrames)/(s-e)*1e3)),e=s,r=a,this._calculateTimeout=-1,this.element&&(this._calculateTimeout=setTimeout(()=>{var d;return(d=this.element)==null?void 0:d.requestVideoFrameCallback(o)},2e3))};this.element.requestVideoFrameCallback(o)}}catch(e){this._log.warn("init stat failed",e)}}};function Po(i,t){return v(this,null,function*(){if(!i.audioWorklet)return Promise.reject("audioWorklet is not supported");try{yield i.audioWorklet.addModule(t),V.info("worklet addModule success")}catch(e){throw V.info(`worklet addModule catch error. ${e.message}`),e}})}var Va;typeof AudioContext!="undefined"?Va=AudioContext:typeof webkitAudioContext!="undefined"?Va=webkitAudioContext:typeof mozAudioContext!="undefined"&&(Va=mozAudioContext);var vi,ag=-1;cg();function cg(){try{if(vi)return;vi=new Va({sampleRate:48e3}),vi.onstatechange=()=>{V.info(`context state: ${vi.state}`),Ws()},clearTimeout(ag)}catch(i){V.error(`initAudioContext failed: ${i} typeof AudioContextClass: ${typeof Va}`),ag=setTimeout(cg,1e3)}}var Ws=()=>{vi.state==="suspended"?(vi.resume(),document.addEventListener("click",Ws)):vi.state==="interrupted"?vi.resume().catch(i=>{V.warn(`resume failed: ${i}`),document.addEventListener("visibilitychange",Ws)}):(document.removeEventListener("visibilitychange",Ws),document.removeEventListener("click",Ws))};document.addEventListener("click",Ws);var jt=i=>vi;var mr=class{constructor(){l(this,"node");l(this,"pre",new Set);l(this,"next",new Set);l(this,"context");l(this,"connectedNodes",new Set);l(this,"_channelCount",1)}get channelCount(){return this._channelCount}set channelCount(t){this._channelCount=t,this.node&&(this.node.channelCount=t),this.next.forEach(e=>e.channelCount=t)}setContext(t){this.context=t,this.node&&t.addMixWeight()}removeContext(){var t;this.node&&((t=this.context)==null||t.reduceMixWeight()),delete this.context}setNode(t){var e;if(!this.node)try{(e=this.context)==null||e.addMixWeight(),this.node=t,this.node.channelCountMode="explicit",this.node.channelCount=this._channelCount,this.preNodeReconnect(),this.reconnect(),X.addSuccessEvent({key:502701})}catch(r){V.error(r),X.addFailedEvent({key:502701,error:r})}}deleteNode(){var t;if(!!this.node)try{this._disconnect(),delete this.node,(t=this.context)==null||t.reduceMixWeight(),this.preNodeReconnect(),X.addSuccessEvent({key:502702})}catch(e){V.error(e),X.addFailedEvent({key:502702,error:e})}}preNodeReconnect(){this.pre.forEach(t=>{t.node?t.reconnect():t.preNodeReconnect()})}connectNext(t){this.next.forEach(e=>t._connect(e.node)||e.connectNext(t))}_connect(t){return!this.node||!t?!1:(this.node.connect(t),this.connectedNodes.add(t),!0)}_disconnect(){this.connectedNodes.forEach(t=>{var e;return(e=this.node)==null?void 0:e.disconnect(t)}),this.connectedNodes.clear()}reconnect(){this._disconnect(),this.connectNext(this)}pipeTo(...t){return t.forEach(e=>{this.next.add(e),e.pre.add(this)}),this}},zd=class extends mr{constructor(e=256){super();this.fftSize=e;l(this,"dataArray",new Uint8Array(0))}setNode(e){e.fftSize=this.fftSize,this.dataArray=new Uint8Array(e.frequencyBinCount),super.setNode(e)}getByteTimeDomainData(){var e;return(e=this.node)==null||e.getByteTimeDomainData(this.dataArray),this.dataArray}get level(){var e;return(e=this.node)==null||e.getByteTimeDomainData(this.dataArray),Math.max(...this.dataArray)/128-1}get timeDomainPathData(){let e=this.getByteTimeDomainData(),r=1,o=0,s=0,a=`M${o},${s}`;for(let d=0;d<e.length;d++)s=e[d]/128*100/2,a+=`L${o},${s}`,o+=r;return a}},Ba=class{constructor(){l(this,"source",new mr);l(this,"gain",new mr);l(this,"destination",new mr)}get volume(){var t;return((t=this.gain.node)==null?void 0:t.gain.value)||1}setVolume(t){if(t===1){this.gain.node&&this.gain.deleteNode();return}this.gain.node||this.gain.setNode(this.source.node.context.createGain()),this.gain.node.gain.value=t}replaceSource(t){this.source.deleteNode(),this.source.setNode(fm(t))}get track(){var t;return(t=this.stream)==null?void 0:t.getAudioTracks()[0]}get stream(){var t;return(t=this.destination.node)==null?void 0:t.stream}},Gs=class extends Ba{constructor(e){super();this.context=e;l(this,"denoiser",new mr);this.source.pipeTo(this.denoiser.pipeTo(this.gain.pipeTo(this.destination)))}connect(){this.context.inputs.has(this)||(this.destination.setNode(this.context.destination),this.source.setContext(this.context),this.denoiser.setContext(this.context),this.gain.setContext(this.context),this.context.inputs.add(this))}disconnect(){!this.context.inputs.has(this)||(this.destination.deleteNode(),this.source.removeContext(),this.denoiser.removeContext(),this.gain.removeContext(),this.context.inputs.delete(this))}remove(){this.gain.deleteNode(),this.denoiser.deleteNode(),this.source.deleteNode(),this.disconnect()}setVolume(e){if(e===1){this.gain.node&&this.gain.deleteNode();return}this.gain.node||this.gain.setNode(this.context.audioContext.createGain()),this.gain.node.gain.value=e}},Jd=class{constructor(){l(this,"audioContext",jt("audio-mixer"));l(this,"destination",this.audioContext.createMediaStreamDestination());l(this,"inputs",new Set);l(this,"mixWeight",0)}addMixWeight(t=1){this.mixWeight+=t,this.mixWeight-1===t+1>>1&&this.mixOnChange()}reduceMixWeight(t=1){this.addMixWeight(-t)}close(){this.inputs.forEach(t=>t.remove())}get mixTrack(){return this.destination.stream.getAudioTracks()[0]}},dg=new WeakMap;function fm(i){let t=dg.get(i);if(t)return t;let e=jt();if(i instanceof HTMLAudioElement)t=e.createMediaElementSource(i);else if(i instanceof MediaStreamTrack)t=e.createMediaStreamSource(new MediaStream([i]));else return i;return dg.set(i,t),t}var Xr=class{constructor(t){l(this,"_volume",0);l(this,"_log");l(this,"_scriptProcessorNode",null);l(this,"_audioWorkletNode",null);l(this,"_interval",200);l(this,"ready",this.preload());let{log:e}=t;this._log=e,B.on(O.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}static get isRunning(){return Date.now()-Xr.lastMessageTime<2e3}get node(){return this._audioWorkletNode||this._scriptProcessorNode}preload(){if(!Xr.workletReady){let t='class VolumeMeterWorklet extends AudioWorkletProcessor{constructor(){super(),this.volume=0,this.intervalTime=200,this.tick=200,this.isStop=!1,this.cache=[],this.sentFirstInfo1=!1,this.unmute=!1,this.port.onmessage=t=>{var e=t.data;switch(e.name){case"chunk":this.cache.push(...e.data),this.sentFirstInfo1||(this.port.postMessage({cl:e.data.length}),this.sentFirstInfo1=!0);break;case"setIntervalTime":this.intervalTime=e.intervalTime;break;case"unmute":this.unmute=!0;break;case"stop":this.isStop=!0}}}process(t,e){t=t[0],e=e[0];if(t||e){if(this.isStop)return!1;var s=e&&e[0]?e[0].length:0,i=this.cache.length,h=(s<i?(e[0].set(this.cache.slice(0,s)),this.cache=this.cache.slice(s)):this.unmute&&e[0].set(t[0]),(s<i?e:t)[0]);if(h){let e=0;for(let t=0;t<h.length;++t)e=Math.max(Math.abs(h[t]),e);this.volume=e,this.tick-=h.length,this.tick<0&&(this.tick+=this.intervalTime/1e3*sampleRate,this.port.postMessage({volume:this.volume,cacheLen:i,outputLen:s}))}}return!0}}registerProcessor("volume-meter",VolumeMeterWorklet);';Xr.workletReady=Po(Xr.audioContext,URL.createObjectURL(new Blob([t],{type:"application/javascript"})))}return Xr.workletReady.then(()=>this.initAudioWorklet()).catch(t=>(this._log.error(`volumeMeter preload error: ${t}`),this.initScriptProcessor()))}initAudioWorklet(){if(!this._audioWorkletNode)try{this._audioWorkletNode=new AudioWorkletNode(Xr.audioContext,"volume-meter");let t=!1;this._audioWorkletNode.port.onmessage=e=>{Xr.lastMessageTime=Date.now(),this._volume=e.data.volume||0,!t&&e.data.cacheLen&&e.data.outputLen&&(this._log.warn("worklet play success"),t=!0)},this.handleAudioLevelInterval({interval:this._interval})}catch(t){this._log.error(`volumeMeter init audio worklet error: ${t}`),Le.logFailedEvent({userId:this._log.userId,eventType:mi.LOAD_WORKLET,error:t}),this.initScriptProcessor()}}initScriptProcessor(){if(!this._scriptProcessorNode)try{this._scriptProcessorNode=jt("volume-meter").createScriptProcessor(2048,1,1),this._scriptProcessorNode.onaudioprocess=t=>{Xr.lastMessageTime=Date.now();let e=t.inputBuffer.getChannelData(0),r=0;for(let o=0;o<e.length;++o)r+=e[o]*e[o];this._volume=Math.sqrt(r/e.length)||0}}catch(t){this._log.error(`volumeMeter init script processor error: ${t}`)}}destroy(){this._scriptProcessorNode&&(this._scriptProcessorNode.onaudioprocess=null),this._audioWorkletNode&&(this._audioWorkletNode.port.postMessage({name:"stop"}),this._audioWorkletNode.port.onmessage=null),this._audioWorkletNode=null,this._scriptProcessorNode=null,B.off(O.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}getInternalAudioLevel(){return this._volume}getCalculatedVolume(){return parseFloat(this._volume.toFixed(2))}handleAudioLevelInterval(t){var r;let{interval:e}=t;this._interval=e,(r=this._audioWorkletNode)==null||r.port.postMessage({name:"setIntervalTime",intervalTime:e})}},js=Xr;l(js,"lastMessageTime",0),l(js,"audioContext",jt("volume-meter")),l(js,"workletReady");var Xd=class extends mr{constructor(e){super();l(this,"_volumeMeter");this._volumeMeter=new js(e)}deleteNode(){super.deleteNode(),this._volumeMeter.destroy()}init(){return v(this,null,function*(){yield this._volumeMeter.preload(),this.setNode(this._volumeMeter.node)})}getCalculatedVolume(){return this._volumeMeter.getCalculatedVolume()}getInternalAudioLevel(){return this._volumeMeter.getInternalAudioLevel()}write(e){if(this.node){let r=e.allocationSize({planeIndex:0}),o=new Float32Array(r>>2);e.copyTo(o,{planeIndex:0}),this.node.port.postMessage({name:"chunk",data:o},[o.buffer]),e.close()}}};var mg=Pi(Hi(),1);var lg=i=>t=>t.deviceId===i;var Fa=class{constructor(t,e="Input"){l(this,"kind");l(this,"type");l(this,"devices",[]);this.kind=t,this.type=e}update(t,e){let r=t.filter(o=>o.kind===`${this.kind}${this.type.toLocaleLowerCase()}`);if(this.devices.length===1&&qs(this.devices[0])){this.devices=r;return}e&&(r.forEach(o=>{if(o.deviceId&&!this.devices.find(lg(o.deviceId))){let s=`${this.kind}${this.type}Added`;V.warn(`${s}: ${JSON.stringify(o)}`),e.emit(s,o)}}),this.devices.forEach(o=>{if(o.deviceId&&!r.find(lg(o.deviceId))){let s=`${this.kind}${this.type}Removed`;V.warn(`${s}: ${JSON.stringify(o)}`),e.emit(s,o)}})),this.devices=r}hasDevice(t){return!!this.devices.find(e=>e.deviceId===t)}},_m=class extends mg.EventEmitter{constructor(){super();l(this,"audioInputs",new Fa(D.AUDIO));l(this,"videoInputs",new Fa(D.VIDEO));l(this,"audioOutputs",new Fa(D.AUDIO,"Output"));this.init(),navigator.mediaDevices&&(navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",()=>this.update()),"ondevicechange"in navigator.mediaDevices||Et.run(To,()=>{this.update()},{delay:1e4}))}init(){Qd().then(e=>{this.audioInputs.update(e),this.videoInputs.update(e),this.audioOutputs.update(e)})}update(){return v(this,arguments,function*(e=0){let r=yield Qd(e);return this.audioInputs.update(r,this),this.videoInputs.update(r,this),this.audioOutputs.update(r,this),this})}},_t=zn||fs?null:new _m;function qs(i){return i.deviceId===i.groupId&&i.groupId===""}function Qd(){return v(this,arguments,function*(i=0){if(Ai()||!Hd())return[];let t=yield navigator.mediaDevices.enumerateDevices();if(i!==0){let e={audio:!1,video:!1};if(t.forEach(r=>{qs(r)&&(r.kind===D.AUDIO_INPUT?e.audio=!0:r.kind===D.VIDEO_INPUT&&(e.video=!0))}),i===2&&(e.audio=!1),i===1&&(e.video=!1),e.audio||e.video){let r;try{r=yield navigator.mediaDevices.getUserMedia(e)}catch(o){V.debug("capture before getDevices failed: ",o)}t=yield navigator.mediaDevices.enumerateDevices(),r==null||r.getTracks().forEach(o=>o.stop())}}return t.map((e,r)=>{let o={kind:e.kind,deviceId:e.deviceId,groupId:e.groupId,label:e.label||`${e.kind}_${r}`};return e.deviceId.length>0&&gm.add(`${e.deviceId}_${e.kind}`),e.getCapabilities&&(o.getCapabilities=()=>e.getCapabilities()),o})})}function qt(i=!1){return _t.update(i?1:0).then(t=>t.audioInputs.devices)}function or(i=!1){return _t.update(i?2:0).then(t=>t.videoInputs.devices)}var pg=!1;function hg(){return v(this,null,function*(){try{pg||(pg=!0,V.info(`speakers:${(yield qi()).map(i=>` ${i.deviceId.slice(0,8)}: ${i.label}`)}`))}catch(i){}})}function qi(i=!1){return v(this,null,function*(){return _t.update(i?1:0).then(t=>t.audioOutputs.devices)})}var gm=new Set;function fg(i){if(i instanceof CanvasCaptureMediaStreamTrack||!(i instanceof MediaStreamTrack))return!1;let t=i.label.toLocaleLowerCase();if(t.includes("camera")||t.includes("webcam"))return!0;let r=`${((i==null?void 0:i.getSettings())||{}).deviceId}_${D.VIDEO_INPUT}`;return!!gm.has(r)}function _g(i){if(i instanceof CanvasCaptureMediaStreamTrack||!(i instanceof MediaStreamTrack))return!1;let t=i.label.toLocaleLowerCase();if(t.includes("mic")||t.includes("\u9EA6\u514B\u98CE"))return!0;let r=`${((i==null?void 0:i.getSettings())||{}).deviceId}_${D.AUDIO_INPUT}`;return!!gm.has(r)}function Em(i,t){return v(this,null,function*(){let r=(yield qt()).find(o=>o.deviceId===Eo);return!t&&(r==null?void 0:r.groupId)===i||(r==null?void 0:r.groupId)===i&&r.label===t})}function gg(s){return v(this,arguments,function*({newDeviceId:i,oldDeviceId:t,oldGroupId:e,oldLabel:r,kind:o}){return i!==t?!1:o===D.AUDIO&&i===Eo?yield Em(e,r):!0})}var Yd,Tm=class extends Ba{constructor(e){super();this.log=e;l(this,"volumeMeter");l(this,"volumeDestination");l(this,"analyser",new zd);this.volumeMeter=new Xd({log:this.log}),this.volumeDestination=new mr,this.volumeMeter.pipeTo(this.volumeDestination)}destroy(){this.gain.deleteNode(),this.volumeMeter.deleteNode(),this.analyser.deleteNode(),this.source.deleteNode(),this.destination.deleteNode(),this.volumeDestination.deleteNode()}},zs=class extends Jr{constructor(e){super(e,D.AUDIO);l(this,"_outputDeviceId");l(this,"_volume",1);l(this,"_destination",jt("player").createMediaStreamDestination());l(this,"pipeline");l(this,"volumeMeterMode","worklet");this.mode=0,this.pipeline=new Tm(this._log)}getMediaStream(){return this.pipeline.stream||(this.track?new MediaStream([this.track]):null)}initializeElement(e){if(($i==="15.2"||$i==="15.3"||$i==="15.4")&&this.muted){this._log.info("audioElement is muted.");return}let o=Yd||new Audio;o.setAttribute("autoplay","autoplay"),o.srcObject=this.getMediaStream(),o.muted=this.muted,this.element=o,Fe(e)&&(this.element.volume=Math.min(Math.max(e,0),1)),o===Yd&&(Yd=void 0),this.bindElementEvents()}play(e){return v(this,null,function*(){if(!!this.track)return this.pipeline.source.node||this.pipeline.replaceSource(this.track),this.element||this.initializeElement(e==null?void 0:e.volume),this._outputDeviceId&&(yield this.setSinkId(this._outputDeviceId)),this.volumeMeterMode==="worklet"?this.pipeline.volumeMeter.init():this.volumeMeterMode==="analyser"&&this.pipeline.analyser.setNode(jt("player").createAnalyser()),hg(),kt(zs.prototype,this,"play").call(this)})}stop(e=0){this.pipeline.destroy(),super.stop(e)}setSinkId(e){return v(this,null,function*(){var r,o;this._outputDeviceId!==e&&(this._outputDeviceId=e),this.element&&this.element.sinkId!==e&&(yield(o=(r=this.element).setSinkId)==null?void 0:o.call(r,e))})}get useDestination(){return!!this.pipeline.stream}setLoop(e){!this.element||(this.element.loop=e)}getAudioLevel(){return this.pipeline.volumeMeter.getCalculatedVolume()}getInternalAudioLevel(){return this.pipeline.volumeMeter.getInternalAudioLevel()}},Zd=class extends zs{constructor(t){super(t),this.pipeline.source.pipeTo(this.pipeline.volumeMeter,this.pipeline.destination)}setTrack(t){var e;this.track!==t&&(this.unbindTrackEvents(),this.track=t,this.emit(at.MEDIA_TRACK_CHANGED,t),t?(this.bindTrackEvents(),this.pipeline.source.channelCount=((e=t.getSettings())==null?void 0:e.channelCount)||1,this.pipeline.replaceSource(t),!this.useDestination&&this.element&&(this.element.srcObject=new MediaStream([t]))):this.pipeline.source.deleteNode())}setSourceNode(t){!t||this.pipeline.source.node===t||(this.pipeline.replaceSource(t),t instanceof MediaStreamAudioSourceNode?this.pipeline.destination.setNode(this._destination):this.pipeline.destination.deleteNode(),this.element&&(this.element.srcObject=this.getMediaStream(),this.element.play().catch(()=>{}),this.setVolume(this._volume)))}setVolume(t){this._volume=t,this.element&&(this.element.volume=t)}},Kd=class extends zs{constructor(e){super(e);l(this,"_sourceElement");l(this,"_output",new mr);this.pipeline.source.pipeTo(this.pipeline.gain.pipeTo(this.pipeline.volumeMeter.pipeTo(this._output),this.pipeline.destination))}setOutput(){this.mode=1,this._output.setNode(jt("player").destination)}write(e){this.pipeline.volumeMeter.write(e)}setTrack(e){var r,o,s;((o=(r=this.element)==null?void 0:r.error)==null?void 0:o.code)!==MediaError.MEDIA_ERR_DECODE&&this.track!==e&&(this.unbindTrackEvents(),this.track=e,this.emit(at.MEDIA_TRACK_CHANGED,e),e?(this.bindTrackEvents(),this._sourceElement?this._sourceElement.srcObject=new MediaStream([e]):!this.useDestination&&this.element&&(this.element.srcObject=new MediaStream([e])),this.pipeline.source.channelCount=((s=e.getSettings())==null?void 0:s.channelCount)||1,this.pipeline.replaceSource(e)):this.pipeline.source.deleteNode())}setVolume(e){this._volume=e,this.useDestination?(this.pipeline.setVolume(e),this._log.info(`set pipeline volume: ${e}`)):e<=1?(this.element?this._log.info(`set element volume: ${e}`):this._log.info("set element volume: no element"),this.element&&(this.element.volume=e)):(this._log.info(`start set pipeline volume: ${e}`),this.pipeline.setVolume(e),this.element&&!this._sourceElement&&(this.pipeline.destination.setNode(this._destination),ct(this.element),this._sourceElement=this.element,this._sourceElement.muted=!0,this.element=null,this.play()))}stop(e=0){this.pipeline.destroy();let r=this._sourceElement||this.element;r&&Bi&&(Yd=r),this._sourceElement&&(this._sourceElement.srcObject=null,delete this._sourceElement),super.stop(e)}};var ko=class extends Z{constructor({userId:e,sdkAppId:r,mediaType:o,room:s,PlayerClass:a=o===1?Kd:ir}){var d;super();l(this,"id",ya());l(this,"userId","");l(this,"isRemote");l(this,"mediaType");l(this,"room");l(this,"user");l(this,"_log");l(this,"_inputTrack");l(this,"_outputTrack");l(this,"isPlayCalled");l(this,"container",null);l(this,"player");l(this,"subVideoPlayerMap");l(this,"muted",!1);l(this,"abortCtrl");l(this,"objectFit","cover");l(this,"mirror");l(this,"isScreen",!1);l(this,"manager");l(this,"trackSettings");this.userId=e||"",this.mediaType=o,this._log=V.createLogger({id:`${this.kind[0]}t`,userId:(d=s||this.room)==null?void 0:d.userId,remoteUserId:this instanceof sr?void 0:this.userId,sdkAppId:r,type:this.mediaType===2?"auxiliary":"main",isLocal:this instanceof sr}),this.player=new a({id:this.userId||this.id,track:null,muted:!1,container:null,log:this._log}),this.player.on(at.PLAYER_STATE_CHANGED,h=>{B.emit(O.PLAYER_STATE_CHANGED,J({track:this},h)),this.emit("player-state-changed",h)}),this.kind===D.VIDEO&&(this.player.on(at.LOADED_DATA,()=>{B.emit(O.VIDEO_LOADED_DATA,{track:this})}),this.player.on(at.MEDIA_TRACK_CHANGED,h=>{var p;(p=this.subVideoPlayerMap)==null||p.forEach(T=>T.setTrack(h))})),this.onTrackMuted=this.onTrackMuted.bind(this),this.onTrackUnmuted=this.onTrackUnmuted.bind(this),this.onTrackEnded=this.onTrackEnded.bind(this),this.onPlayerError&&this.player.on(at.ERROR,this.onPlayerError.bind(this))}get log(){return this._log||V}get kind(){return this.mediaType===1?D.AUDIO:D.VIDEO}get strMediaType(){return this.mediaType===4?D.VIDEO:this.mediaType===2?D.SCREEN:D.AUDIO}get streamType(){return(this.mediaType&2)===0?"main":"auxiliary"}get isMediaTrackActive(){return this.mediaTrack?!this.mediaTrack.muted&&this.mediaTrack.readyState==="live"&&this.mediaTrack.enabled:!1}play(e,r){return v(this,null,function*(){let o=rt(e)?e[0]:e;if(this.isPlayCalled){this.log.info(`play update options: ${JSON.stringify(r)}`),r&&!L(r.muted)&&this.setPlayerMute(r.muted),r&&!L(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof ir&&(this.player.setObjectFit(this.objectFit),this.container!==o&&o&&(this.container=o,this.player.setContainer(o)),rt(e)&&e.length>=1&&(yield this.playSubContainer(e.slice(1),r)));return}if(r&&!L(r.muted)?this.setPlayerMute(r.muted):(!this.isRemote||this.kind===D.VIDEO)&&this.setPlayerMute(!0),r&&!L(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof ir&&this.player.setObjectFit(this.objectFit),this.isPlayCalled=!0,o&&(this.container=o,this.player instanceof ir&&this.player.setContainer(o)),B.emit(O.PLAY_TRACK_START,{track:this}),!this._outputTrack){this.log.info("play has not mediaTrack, abort");return}this._log.info(`play with options: ${JSON.stringify(r)}`);try{this.player.setTrack(this.playerMediaTrack),yield this.player.play(r),rt(e)&&e.length>1&&(yield this.playSubContainer(e.slice(1),r))}catch(s){throw this.handleAutoPlayFailed(s),s}})}setMirror(e,r){if(this.isScreen||this.kind!==D.VIDEO||L(e)||e===this.mirror)return;this.mirror=e;let o=this.player;r&&(o=r);let s=this.manager;if(nt(this.mirror)){o.setViewMirror(this.mirror),s&&(s.mirror=!1);return}switch(this.mirror){case"view":{s&&(s.mirror=!1),o.setViewMirror(!0);break}case"publish":{s&&(s.mirror=!0),o.setViewMirror(!0);break}case"both":s&&(s.mirror=!0),o.setViewMirror(!1)}}playSubContainer(e,r){return v(this,null,function*(){if(!this._outputTrack||this.kind===D.AUDIO)return;this.subVideoPlayerMap||(this.subVideoPlayerMap=new Map),this.subVideoPlayerMap.forEach((s,a)=>{var d;e.find(h=>a===h)||(s.stop(),(d=this.subVideoPlayerMap)==null||d.delete(a))});for(let[s,a]of e.entries()){let d=this.subVideoPlayerMap.get(a);d?r&&(L(r.objectFit)||d.setObjectFit(r.objectFit)):this.subVideoPlayerMap.set(a,new ir({id:this.userId||this.id,track:this.playerMediaTrack,container:a,muted:this.player.muted,objectFit:this.objectFit,log:this.log.createChild({id:`vp-sub${s+1}`})}))}let o=[...this.subVideoPlayerMap.values()];for(let s of o)s.setViewMirror(this.player.mirror),yield s.play()})}setAudioOutput(e){return this.player.setSinkId(e)}setAudioVolume(e){this.player.setVolume(e)}getAudioLevel(){return this.player.getAudioLevel()||0}getInternalAudioLevel(){var e;return((e=this.player)==null?void 0:e.getInternalAudioLevel())||0}stop(e=!1){!this.isPlayCalled||(this.isPlayCalled=!1,this.player&&(this.log.info(`stop ${this.kind} player`),this.player.stop(_p(this)&&!e?this.jitterBufferDelay:0)),this.subVideoPlayerMap&&this.subVideoPlayerMap.size>0&&this.subVideoPlayerMap.forEach(r=>{r.stop()}),this.container=null)}resume(){return v(this,null,function*(){var e;!this.isPlayCalled||(yield(e=this.player)==null?void 0:e.resume())})}close(){this.log.info("close"),this.isPlayCalled&&this.stop(!0)}setMute(e){this.muted=e,this._inputTrack&&(this._inputTrack.enabled=!e),this._outputTrack&&(this._outputTrack.enabled=!e),this.emit(e?"mute":"unmute",this),B.emit(e?O.TRACK_MUTED:O.TRACK_UNMUTED,{track:this})}setPlayerMute(e){this.player.setMuted(e)}get mediaTrack(){return this._inputTrack||null}get outMediaTrack(){return this._outputTrack||null}get playerMediaTrack(){return this.outMediaTrack}installTrackEvent(e){vt(e,e).add(D.MUTE,this.onTrackMuted).add(D.UNMUTE,this.onTrackUnmuted).add(D.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===D.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){ct(e)}setInputMediaStreamTrack(e){var o;let r=this._inputTrack;if(e!==r)return this._inputTrack=e,this.trackSettings=(o=e.getSettings)==null?void 0:o.call(e),e.enabled=!this.muted,r&&this.uninstallTrackEvent(r),this.installTrackEvent(e),this.emit("input-media-track-changed",e||null,r||null),this.manager?this.manager.changeInput(this):this.setOutputMediaStreamTrack(e)}setOutputMediaStreamTrack(e){var o;let r=this._outputTrack;e!==r&&(this.isRemote?this.log.debug("setOutputMediaStreamTrack",e.label):this.log.info("setOutputMediaStreamTrack",(o=e.getSettings)==null?void 0:o.call(e).deviceId,e.label),this._outputTrack=e,this._inputTrack&&(this._outputTrack.contentHint=this._inputTrack.contentHint,this._outputTrack.enabled=this._inputTrack.enabled),this.updatePlayingState(!!e),this.emit("output-media-track-changed",e))}setMediaType(e){this.mediaType=e}updatePlayingState(e){if(this.isPlayCalled){if(e){if(this.player.setTrack(this.playerMediaTrack),this.player.isStopped){this.player.play().catch(r=>this.handleAutoPlayFailed(r)),this.log.info(`playing state updated, play ${this.kind}`);return}}else if(!this.player.isStopped){this.player.stop(_p(this)?this.jitterBufferDelay:0),this.log.info(`playing state updated, stop ${this.kind}`);return}}this.log.debug(`updatePlayingState abort ${this.isPlayCalled} ${e} ${this.player.isStopped}`)}handleAutoPlayFailed(e){if(this.room&&this.room.enableAutoPlayDialog)new ng;else{let r=()=>{this.resume().then(()=>{document.removeEventListener("click",r,!0)})};document.addEventListener("click",r,!0)}this.emit("error",e)}getVideoFrame(){return this.player instanceof ir?this.player.getVideoFrame():""}onTrackMuted(){this._log.warn(`${this.kind} track is unable to provide media output`)}onTrackUnmuted(){this._log.info(`${this.kind} track is able to provide media output`)}onTrackEnded(){this._log.warn(`${this.kind} track ended`)}};q([be([],Z.INIT,{sync:!0})],ko.prototype,"close",1);var JI=Object.prototype.hasOwnProperty,{toString:dC}=Object.prototype;function XI(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(Ft(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":{for(let t in i)if(JI.call(i,t))return!1;return!0}}return!1}var $a=XI;var QI=function(i){return v(this,null,function*(){let t=ZI(i);V.info(`getUserMedia with constraints: ${JSON.stringify(t)}`);let e=[],r=[],o=["label","deviceId","groupId"];t.audio&&(e=yield qt(),V.info(`microphones: ${pr(e.map(s=>me(J({},s),{groupId:s.groupId.substring(0,8)})),{keysToInclude:o})}`)),t.video&&(r=yield or(),V.info(`cameras: ${pr(r,{keysToInclude:o})}`));try{let s=yield navigator.mediaDevices.getUserMedia(t);return im&&s.getTracks().forEach(a=>{V.info(`${a.kind} capabilities: ${pr(a.getCapabilities(),{keysToInclude:od})}`)}),s}catch(s){let{message:a}=s;throw s.name==="NotFoundError"&&(i.video&&r&&r.length===0&&(a=ot({key:it.CAMERA_NOT_FOUND})),i.audio&&e&&e.length===0&&(a=ot({key:it.MICROPHONE_NOT_FOUND}))),new de({code:Y.INITIALIZE_FAILED,name:s.name,message:a,constraint:s.constraint})}})},YI=Vi({retryFunction:QI,settings:{retries:3,timeout:500},onError:({error:i,retry:t,reject:e,retryFuncArgs:r,retriedCount:o})=>{let s=o+1;i.name==="NotReadableError"||i.name==="OverconstrainedError"?(s===1?(r[0].video&&(r[0].maxResolution=!1,(!Ht||r[0].width*r[0].height<=1920*1080)&&r[0].frameRate&&(r[0].frameRate=r[0].frameRate>10?10:5)),r[0].retryWhenExactFailed&&r[0].useExactDeviceId&&(r[0].useExactDeviceId=!1)):s===2?r[0].useDeviceIdOnly=!0:s===3&&!r[0].useExactDeviceId&&(r[0].useTrueAsConstraint=!0),t()):e(i),r[0].microphoneId&&Eg(r[0].microphoneId,!1),r[0].cameraId&&Eg(r[0].cameraId,!0)},onRetrying:i=>{V.warn(`getUserMedia NotReadableError observed, retrying [${i}/3]`)},onRetryFailed:i=>{Le.logFailedEvent({eventType:mi.GET_USER_MEDIA_RETRY,error:i})},onRetrySuccess:i=>{Le.logSuccessEvent({eventType:mi.GET_USER_MEDIA_RETRY}),Le.uploadEvent({log:`stat-${mi.GET_USER_MEDIA_RETRY}-success-${i}`})}});function Eg(i,t){return v(this,null,function*(){let r=(t?yield or():yield qt()).find(o=>o.deviceId===i);r&&Ve(r.getCapabilities)&&V.warn(pr(r.getCapabilities(),{keysToInclude:od}))})}function ZI(i){return{audio:KI(i),video:eS(i)}}function KI(i){if(!i.audio)return!1;if(i.useTrueAsConstraint)return!0;let t={echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:i.sampleRate};return!$a(i.microphoneId)&&(t.deviceId=i.useExactDeviceId?{exact:i.microphoneId}:i.microphoneId,i.useDeviceIdOnly)?t:(Fe(i.channelCount)&&(t.channelCount=i.channelCount),nt(i.echoCancellation)&&!i.echoCancellation&&(t.echoCancellation=!1),nt(i.noiseSuppression)&&!i.noiseSuppression&&(t.noiseSuppression=!1),nt(i.autoGainControl)&&!i.autoGainControl&&(t.autoGainControl=!1),$a(t)?!0:t)}function eS(i){if(!i.video)return!1;if(i.useTrueAsConstraint)return!0;let{maxResolution:t=!0}=i,e={};return i.cameraId?e.deviceId=i.useExactDeviceId?{exact:i.cameraId}:i.cameraId:i.facingMode&&(e.facingMode=i.facingMode),i.useDeviceIdOnly&&!$a(e)?e:(i.width&&(e.width={ideal:i.width},t&&!Cr&&(e.width.max=i.width)),i.height&&(e.height={ideal:i.height},t&&!Cr&&(e.height.max=i.height)),Cr&&Nr&&i.width&&i.height&&i.width*i.height<352*288&&(e.width=i.width,e.height=i.height),i.frameRate&&(e.frameRate=i.frameRate),$a(e)?!0:e)}var Tg=YI;function zi(i){return Ce((t,e)=>function(...r){return v(this,null,function*(){let o=yield t.apply(this,r);return yield i.call(this,...r),o})})}function Ce(i){return function(t,e,r){return r.value=i(r.value,e),r}}var Ig=(()=>{let i=!1,t=document.visibilityState;return()=>{document.visibilityState!==t&&V.info(`visibility change: ${document.visibilityState}`),!i&&(document.addEventListener("visibilitychange",()=>{V.info(`visibility change: ${document.visibilityState}`),t=document.visibilityState}),i=!0)}})();var tS=0,eu=class{constructor(){this.log=V.createLogger({id:`fq${++tS}`});this.isRunning=!1;this.queue=[]}get length(){return this.queue.length}get lastQueueItem(){return this.length===0?null:this.queue[this.length-1]}push(t,e=!1){var s,a;let r=J({},t),o=new Promise((d,h)=>{r.resolve=d,r.reject=h});return r.promise=o,e?this.length<=1?this.queue.push(r):(a=(s=this.lastQueueItem)==null?void 0:s.promise)==null||a.then(r.resolve,r.reject):this.queue.push(r),this.log.debug(`push ${this.length}`),this.isRunning||this.callNext(),o}shift(){let t=this.queue.shift();return this.log.debug(`shift ${this.length}`),t}callNext(){if(this.isRunning||this.length===0)return;this.log.debug("callNext ",this.length);let{fn:t,args:e,context:r,resolve:o,reject:s}=this.queue[0];this.isRunning=!0,t.apply(r,e).then(o,s).finally(()=>{this.isRunning=!1,this.shift(),this.callNext()})}},Sg=new WeakMap,yg=new WeakMap;function Ag(i=!1){return function(t,e,r){let o=r.value;return r.value=function(...s){let a=Sg.get(this)||new eu;return Sg.set(this,a),a.push({fn:o,args:s,context:this},i)},r}}function tu(i){return function(t,e,r){let o=r.value,s=a=>i(...a);return r.value=function(...a){let d=yg.get(this)||new Map,h=d.get(s(a))||new eu;return d.set(s(a),h),yg.set(this,d),h.push({fn:o,args:a,context:this})},r}}function ru(i,t){return Ce((e,r)=>function(...o){let s=i;try{let a=e.apply(this,o),d=ge();return Li(a)?a.then(h=>(t?X.addSuccessEvent({key:s,cost:ge()-d}):X.addSuccessEvent({key:s}),h)).catch(h=>{throw X.addFailedEvent({key:s,error:h}),h}):(X.addSuccessEvent({key:s}),a)}catch(a){throw X.addFailedEvent({key:s,error:a}),a}})}var Im=class extends ko{constructor(e,r){super({mediaType:e,PlayerClass:r});l(this,"isRemote",!1);l(this,"deviceId");l(this,"groupId","");l(this,"label","");l(this,"_isRecapturing",!1);l(this,"_lastRecaptureTime",0);l(this,"_onMuteTimeoutId",-1);l(this,"_encodeCheckTimeoutId",-1);l(this,"profile")}get enableEncodeFrame(){return!1}get isPublishing(){return this.state.toString()==="publishing"}get isPublished(){return this.state==="publish"}encodeFrame(e,r){throw new Error("Method not implemented.")}installTrackEvent(e){vt(e,e).add(D.MUTE,this.onTrackMuted).add(D.UNMUTE,this.onTrackUnmuted).add(D.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===D.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){ct(e)}setStateToCapture(){}capture(e){return v(this,null,function*(){var r;try{let o=ge();B.emit(O.LOCAL_TRACK_CAPTURE_START,{track:this});let s;e.customSource?(s=new MediaStream,s.addTrack(e.customSource)):((r=this.mediaTrack)==null||r.stop(),s=yield Tg(e));let a=s.getTracks()[0];return yield this.setInputMediaStreamTrack(a),e.customSource||(this.updateDeviceIdInUse(),this.listenDeviceChange()),B.emit(O.LOCAL_TRACK_CAPTURE_SUCCESS,{track:this,cost:ge()-o}),s}catch(o){throw B.emit(O.LOCAL_TRACK_CAPTURE_FAILED,{track:this,error:o}),this.log.error(`getUserMedia error observed ${o}`),o}})}setInputMediaStreamTrack(e){return this.state===Z.INIT&&this.setStateToCapture(),super.setInputMediaStreamTrack(e)}setOutputMediaStreamTrack(e){var r;if(super.setOutputMediaStreamTrack(e),this.isPublishing||this.isPublished)return(r=this.room)==null?void 0:r.replaceTrack(this)}publish(e,r){return this.room=e,this.emit("4",{mediaType:this.strMediaType,state:"starting",prevState:"stopped"}),this.userId=e.userId,this._log.setUserId(e.userId),this._log.setSdkAppId(e.sdkAppId),r}unpublish(){this.room&&this.room.localTracks.delete(this),B.emit(O.LOCAL_TRACK_UNPUBLISHED,{track:this})}updateDeviceIdInUse(){return v(this,null,function*(){if(this.mediaTrack&&Fs){let{deviceId:e,groupId:r}=this.mediaTrack.getSettings(),{label:o}=this.mediaTrack;(yield gg({newDeviceId:e,oldDeviceId:this.deviceId,oldGroupId:this.groupId,oldLabel:this.label,kind:this.kind}))||(this.deviceId=e,this.label=o,r&&(this.groupId=r),Qd().then(a=>{let d=a.find(h=>h.deviceId===e);d&&this.emit("2",d)}))}})}setProfile(e){this.log.info("setProfile",e),Object.assign(this.profile,e)}isNeedToRecapture(e=!1){return!(!this.deviceId||!this.mediaTrack||this.kind===D.AUDIO&&!_g(this.mediaTrack)||this.kind===D.VIDEO&&!fg(this.mediaTrack)||this._isRecapturing||e&&Nr&&Ht)}onTrackMuted(){if(super.onTrackMuted(),Ig(),!!this.isNeedToRecapture(!0)){if(Date.now()-this._lastRecaptureTime<Es){setTimeout(()=>this.onTrackMuted(),Es);return}this._onMuteTimeoutId=setTimeout(()=>v(this,null,function*(){var e;if((e=this.mediaTrack)!=null&&e.muted){if(($t||ft)&&document.visibilityState!=="visible")return;this.recapture(yield this.getRecoverCaptureDeviceId())}}),5e3)}}onTrackUnmuted(){super.onTrackUnmuted(),this._onMuteTimeoutId>0&&clearTimeout(this._onMuteTimeoutId)}onTrackEnded(){return v(this,null,function*(){if(kt(Im.prototype,this,"onTrackEnded").call(this),!!this.isNeedToRecapture()){if(Date.now()-this._lastRecaptureTime<Es){setTimeout(()=>this.onTrackEnded(),Es);return}this.recapture(yield this.getRecoverCaptureDeviceId())}})}recapture(e){return v(this,null,function*(){var o;if(this._isRecapturing||!this._inputTrack)return;this.log.warn("recapture trying"),(o=this._inputTrack)==null||o.stop(),this._isRecapturing=!0,this._lastRecaptureTime=Date.now();let r={useExactDeviceId:!0};if(e==="user"||e==="environment")r.facingMode=e;else{let s;(this.kind==="audio"?yield qt():yield or()).find(d=>d.deviceId===e)&&(s=e),r.deviceId=s}return this.capture(r).then(()=>{this._isRecapturing=!1,this.log.warn("recapture success"),this.emit("1",{deviceId:this.deviceId}),B.emit(O.LOCAL_TRACK_RECAPTURE,{track:this})}).catch(s=>{this._isRecapturing=!1,this.log.warn(`recapture failed ${s.message}`),this.emit("5",s),B.emit(O.LOCAL_TRACK_RECAPTURE,{track:this,error:s})})})}getRecoverCaptureDeviceId(){return v(this,null,function*(){let e=this instanceof hr;if(e&&this.facingMode)return this.facingMode;let{deviceId:r}=this;if(r){let o=(Ha.get(r)||0)+1;if(Ha.set(r,o),o>=3){let s=e?(yield or()).find(a=>!Ha.has(a.deviceId)):(yield qt()).find(a=>!Ha.has(a.deviceId));s&&(this.log.warn(`${r} capture fail ${o} times, change new ${s.deviceId}`),r=s.deviceId)}}return r})}close(){var e;super.close(),this._inputTrack&&(this._inputTrack.stop(),this.uninstallTrackEvent(this._inputTrack)),(e=this.manager)==null||e.removeInput(this)}},sr=Im;q([be(Z.INIT,"capture",{ignoreError:!0,sync:!0})],sr.prototype,"setStateToCapture",1),q([Ag()],sr.prototype,"capture",1),q([be("capture","publish",{ignoreError:!0,success(){var t,e;this.room.localTracks.add(this),B.emit(O.LOCAL_TRACK_PUBLISHED,{track:this}),this.emit("4",{mediaType:this.strMediaType,state:"started",prevState:"starting"}),!((((e=(t=this.room)==null?void 0:t.networkQuality)==null?void 0:e.uplinkNetworkQuality)||0)>3)&&(this._encodeCheckTimeoutId=setTimeout(()=>{var o,s;if(!((((s=(o=this.room)==null?void 0:o.networkQuality)==null?void 0:s.uplinkNetworkQuality)||0)>3)&&this.isPublished&&this.isMediaTrackActive){let a=this.kind===D.AUDIO,d=this.stat.bytesSent>0;X[d?"addSuccessEvent":"addFailedEvent"]({key:a?503700:513702}),d||(X.addEnum({key:a?503701:513703,value:Ia()}),Le.uploadEvent({log:`stat-encode-failed-${this.kind}-${Ta()||vo()}`,userId:this.userId}),this.log.warn("encode failed"),this.emit("6",this))}},5e3))},fail(i){let t="error";if(i.cause instanceof RTCError){let e=i.cause;e.message.includes("timeout")?t="timeout":e.code===Y.API_CALL_ABORTED&&(t="api-call")}this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:"starting",reason:t,error:i.cause||i})}}),ru(521714,!1)],sr.prototype,"publish",1),q([Ce(i=>function(){return v(this,null,function*(){let t=this.state==="publish"?"started":"starting";i.call(this),this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:t,reason:"api-call"}),clearTimeout(this._encodeCheckTimeoutId)})}),be([],"capture",{sync:!0})],sr.prototype,"unpublish",1);var Ha=new Map;B.on(O.SWITCH_DEVICE_SUCCESS,i=>{i.track.deviceId&&Ha.delete(i.track.deviceId)});var nr=class extends sr{constructor(e){super(1,Zd);l(this,"mediaType",1);l(this,"volume",0);l(this,"profile",{echoCancellation:!0,autoGainControl:!0,noiseSuppression:!0,sampleRate:48e3,channelCount:1,bitrate:40});l(this,"playerMuted",!0);l(this,"pipeline");l(this,"stat",{bytesSent:0,packetsSent:0,audioLevel:0,totalAudioEnergy:0});this.manager=e,this.pipeline=new Gs(e),this.handleMicrophoneAdded=this.handleMicrophoneAdded.bind(this),this.handleMicrophoneRemoved=this.handleMicrophoneRemoved.bind(this)}getAudioLevel(){let e=(this.volume||super.getAudioLevel())*this.captureVolume;return e>1?1:e}get playerMediaTrack(){return this.mediaTrack}setInputMediaStreamTrack(e){return v(this,null,function*(){let r=this.trackSettings||{};X.addEnum({key:501701,value:r.channelCount||0,useUV:!1}),X.addEnum({key:501702,value:r.sampleRate||0,useUV:!1}),X.addEnum({key:502700,value:0});let{sampleRate:o,channelCount:s}=r;this._log.info(`local audio track input ${JSON.stringify({sampleRate:o,channelCount:s})}`),this.pipeline.source.channelCount=s||1,this.pipeline.replaceSource(e),yield kt(nr.prototype,this,"setInputMediaStreamTrack").call(this,e),this.updatePlayingState(!!e)})}capture({deviceId:e,customSource:r,useExactDeviceId:o=!0,retryWhenExactFailed:s=!0}){return super.capture({video:!1,audio:!0,microphoneId:e,echoCancellation:this.profile.echoCancellation,autoGainControl:this.profile.autoGainControl,noiseSuppression:this.profile.noiseSuppression,sampleRate:this.profile.sampleRate,channelCount:this.profile.channelCount,useExactDeviceId:o,retryWhenExactFailed:s,customSource:r})}switchDevice(e){return v(this,null,function*(){if(!!this.mediaTrack){if(this.deviceId===e)if(e===Eo){if(yield Em(this.groupId,this.label))return}else return;try{this.log.info(`switchDevice audio to: ${e}`),this.mediaTrack&&this.mediaTrack.stop(),yield this.capture({deviceId:e,useExactDeviceId:!0,retryWhenExactFailed:!1}),B.emit(O.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch microphone success")}catch(r){throw this.log.error(`switch microphone failed ${r}`),this.deviceId&&this.recapture(this.deviceId),r}}})}listenDeviceChange(){_t&&!_t.listeners("audioInputRemoved").includes(this.handleMicrophoneRemoved)&&_t.on("audioInputRemoved",this.handleMicrophoneRemoved,this)}handleMicrophoneRemoved(e){return v(this,null,function*(){if(e.deviceId===this.deviceId){this.log.warn(`current microphone is lost: ${JSON.stringify(e)}`),ze(this.userId,{eventId:2003,param1:6,streamType:1});let r=yield qt();r[0]?this.recapture(r[0].deviceId):_t.on("audioInputAdded",this.handleMicrophoneAdded,this)}})}handleMicrophoneAdded(e){this.log.warn(`microphone added: ${JSON.stringify(e)}`),this.recapture(e.deviceId)}update3A(s){return v(this,arguments,function*({echoCancellation:e,noiseSuppression:r,autoGainControl:o}){let a=!1;!L(e)&&e!==this.profile.echoCancellation&&(this.profile.echoCancellation=e,a=!0),!L(r)&&r!==this.profile.noiseSuppression&&(this.profile.noiseSuppression=r,a=!0),!L(o)&&o!==this.profile.autoGainControl&&(this.profile.autoGainControl=o,a=!0),a&&this.deviceId&&(yield this.recapture(this.deviceId))})}get captureVolume(){return this.pipeline.volume}setCaptureVolume(e){this.pipeline.setVolume(e/100),this.pipeline.gain.node&&X.addEnum({key:502700,value:2}),this.resetPlayerSource()}enableTrackANS(e){if(!this._inputTrack)return;let r=this._inputTrack.getConstraints();return r.noiseSuppression=e,this._inputTrack.applyConstraints(r).catch(o=>this._log.warn(`${e?"enable":"disable"} ANS failed `,o))}addDenoiser(e){var r;if(gi<=92&&((r=this.trackSettings)==null?void 0:r.sampleRate)!==48e3){this._log.warn("denoiser only support sampleRate 48000 before chrome 93");return}X.addEnum({key:502700,value:1}),this.pipeline.denoiser.setNode(e),this.resetPlayerSource(),this.enableTrackANS(!1)}removeDenoiser(e){this.pipeline.denoiser.node===e&&(this.pipeline.denoiser.deleteNode(),this.resetPlayerSource(),this.enableTrackANS(!0))}resetPlayerSource(){this.player.setSourceNode(this.pipeline.gain.node||this.pipeline.denoiser.node||this.pipeline.source.node)}close(){this.pipeline.remove(),_t.off("audioInputAdded",this.handleMicrophoneAdded,this),_t.off("audioInputRemoved",this.handleMicrophoneRemoved,this),super.close()}recapture(e){return v(this,null,function*(){try{yield kt(nr.prototype,this,"recapture").call(this,e)}catch(r){let o=(yield qt()).find(s=>s.deviceId!==e);if(o)yield kt(nr.prototype,this,"recapture").call(this,o.deviceId);else throw r}})}encodeFrame(e){return this.manager?this.manager.encodePipeline.reduceRight((r,o)=>o?o({frame:r}):r,e):e}get enableEncodeFrame(){return this.manager?this.manager.encodePipeline.some(e=>e):!1}};var Lo=class{constructor(t,e=!1){this.dataView=t;this.isSEI&&(e?this.addPreventionByte():this.removePreventionByte())}addPreventionByte(){let t=this.seiPayloadStartIndex,e=this.dataView.byteLength-2,r=[],o=0;for(let a=t;a<=e;a++){let d=this.dataView.getInt8(a);switch(d){case 0:case 1:case 2:case 3:o===2&&(r.push(3),o=0),d==0?o++:o=0,r.push(d);break;default:o=0,r.push(d);break}}r.push(this.dataView.getInt8(this.dataView.byteLength-1));let s=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,t),...r]).buffer);this.dataView=s}removePreventionByte(){let t=this.seiPayloadStartIndex,e=this.dataView.byteLength-1,r=[],o=0;for(let a=t;a<=e;a++)switch(this.dataView.getInt8(a)){case 0:o++,r.push(this.dataView.getInt8(a));break;case 3:o!==2&&r.push(this.dataView.getInt8(a)),o=0;break;default:r.push(this.dataView.getInt8(a)),o=0;break}let s=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,t),...r]).buffer);this.dataView=s}get isSEI(){return this.dataView.getUint8(4)===6}get seiPayloadStartIndex(){let t=6;for(let e=6;e<this.dataView.buffer.byteLength&&(t++,this.dataView.getUint8(e)===255);e++);return t}get seiPayloadType(){return this.isSEI?this.dataView.getUint8(5):null}get seiPayload(){if(!this.isSEI)return null;let t=0,e=6;for(let s=6;s<this.dataView.buffer.byteLength;s++){let a=this.dataView.getUint8(s);if(e++,a===255)t+=255;else{t+=a;break}}let r=new ArrayBuffer(t),o=new DataView(r);for(let s=0;s<r.byteLength;s++,e++)o.setInt8(s,this.dataView.getInt8(e));return o}};var iu=class{constructor(){l(this,"_seiMessageList",[]);l(this,"_smallSeiMessageList",[]);l(this,"_seiPayloadType",243)}encodeSEINalu(t){let e=t.byteLength,r=parseInt(String(e/255),10),o=e%255,s=[];s.push(0,0,0,1,6,this._seiPayloadType);for(let d=0;d<r;d++)s.push(255);s.push(o);let a=new DataView(t);return s.push(...new Uint8Array(a.buffer)),s.push(128),new Lo(new DataView(new Uint8Array(s).buffer),!0)}sendSEI(t,e){e!=null&&e.seiPayloadType&&(this._seiPayloadType=e.seiPayloadType),this._seiMessageList.push(t),e!=null&&e.small&&this._smallSeiMessageList.push(t)}isEmpty(){return!this._seiMessageList.length}getNaluCount(t){let e=0,r=0,o=new DataView(t);for(let s=0;s<t.byteLength;s++)switch(o.getUint8(s)){case 0:e++;break;case 1:(e===2||e===3)&&r++,e=0;break;default:e=0;break}return r}encode(t,e){let r=e?this._smallSeiMessageList:this._seiMessageList;if(r.length>0&&t.data.byteLength>0){let o=this.getNaluCount(t.data),s=9-o;if(s<=0)return 0;let a=r.splice(0,s).reverse().map(this.encodeSEINalu.bind(this)),d=a.reduce((R,N)=>R+N.dataView.byteLength,0),h=new ArrayBuffer(d+t.data.byteLength),p=new DataView(h),T=new DataView(t.data),y=0;for(let R=0;R<a.length;R++)for(let N=0;N<a[R].dataView.byteLength;N++)p.setInt8(y++,a[R].dataView.getInt8(N));for(let R=0;R<t.data.byteLength;R++)p.setInt8(y++,T.getInt8(R));return t.data=h,a.length}return 0}};var Js=class extends sr{constructor(e,r=4){super(r,ir);l(this,"profile",{width:640,height:480,frameRate:15,bitrate:500});l(this,"stat",{bytesSent:0,packetsSent:0,framesEncoded:0,framesSent:0,frameWidth:0,frameHeight:0,fpsCapture:0});l(this,"small");l(this,"isNeedToSetBandwidth");l(this,"muteImage");l(this,"manager");l(this,"_seiCodec",new iu);this.manager=e;let o=()=>{this.isAllowed2k4k(this.profile)?this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1}):(this.log.warn("Resolution is reset to 1080p, need to upgrade ability here https://cloud.tencent.com/document/product/647/85386"),this.setProfile(me(J({},this.profile),{width:1920,height:1080})),this.applyProfile())};this.on("input-media-track-changed",o),this.on("publish",o),this.handleCameraAdded=this.handleCameraAdded.bind(this),this.handleCameraRemoved=this.handleCameraRemoved.bind(this)}get facingMode(){if(!(!Fs||!this.mediaTrack))return this.mediaTrack.getSettings().facingMode}get isQosClearFirst(){var e;return((e=this._inputTrack)==null?void 0:e.contentHint)==="detail"}setMute(e){return v(this,null,function*(){var r,o,s;if(Ae(e)){if(this.muteImage===e)return;yield(r=this.manager)==null?void 0:r.deleteWatermark("mute"),yield(o=this.manager)==null?void 0:o.setWatermark({x:0,y:0,width:this.settings.width,height:this.settings.height,type:"mute",zIndex:999,imageUrl:e}),this.muteImage=e,kt(Js.prototype,this,"setMute").call(this,!1)}else yield(s=this.manager)==null?void 0:s.deleteWatermark("mute"),this.muteImage=void 0,kt(Js.prototype,this,"setMute").call(this,e)})}capture({deviceId:e,facingMode:r,useExactDeviceId:o=!0,customSource:s,retryWhenExactFailed:a=!0}){return super.capture({audio:!1,video:!0,facingMode:r||this.facingMode,cameraId:e,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,useExactDeviceId:o,retryWhenExactFailed:a,customSource:s})}setProfile(e){let r=J({},e),o=r.width>r.height;r.width*r.height<=160*120&&ft&&bo&&(this.log.warn(`resolution is ${r.width}*${r.height}, fallback to 240*180`),r.width=o?240:180,r.height=o?180:240,r.bitrate=Math.max(r.bitrate,150)),r.width*r.height>1280*720&&Np&&(r.width=o?1280:720,r.height=o?720:1280,this.log.warn("reset to 1280 * 720 on iOS 13~14")),r.bitrate&&(this.isNeedToSetBandwidth=r.bitrate!==this.profile.bitrate),this.isAllowed2k4k(this.profile)?super.setProfile(r):(this.log.warn("Resolution is reset to 1080p, need to upgrade ability here https://cloud.tencent.com/document/product/647/85386"),super.setProfile(me(J({},this.profile),{width:1920,height:1080})))}applyProfile(){return v(this,null,function*(){var o;if(!this.mediaTrack)return;let e=this.settings;if(!(!(e.height!==this.profile.height||e.width!==this.profile.width||e.frameRate!==this.profile.frameRate)||!this.deviceId)&&(rr===16?yield this.recapture(this.deviceId):(yield(o=this.mediaTrack)==null?void 0:o.applyConstraints({width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate}),this.manager&&this.manager.changeInput(this)),this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1}),this.isNeedToSetBandwidth&&this.room&&this.room.setBandWidth))return this.isNeedToSetBandwidth=!1,this.room.setBandWidth({bandwidth:this.profile.bitrate,type:D.VIDEO,videoType:D.BIG})})}get settings(){let e={width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate};return Fs&&this.mediaTrack&&Object.assign(e,this.mediaTrack.getSettings()),e}get scaleResolutionDownBy(){let{settings:e}=this;return e.width===this.profile.width&&e.height===this.profile.height?1:ud()&&this.profile.width>this.profile.height&&e.height>e.width?Math.max(e.width/this.profile.height,e.height/this.profile.width,1):Math.max(e.width/this.profile.width,e.height/this.profile.height,1)}isAllowed2k4k(e){var r;return!this.room||!this.room.scheduleResult||this.isScreen||e.height*e.width<2560*1440?!0:((r=this.room.scheduleResult.trtcAutoConf)==null?void 0:r["2k4k"])===1}isNeedToSwitchDevice(e){return!(!this.mediaTrack||this.deviceId===e||this.facingMode===e)}switchDevice(e){return v(this,null,function*(){try{if(!this.isNeedToSwitchDevice(e))return;let r={useExactDeviceId:!0,retryWhenExactFailed:!1};e==="user"||e==="environment"?r.facingMode=e:r.deviceId=e,this.mediaTrack.stop(),yield this.capture(r),B.emit(O.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch camera success")}catch(r){throw this.log.error(`switch camera failed ${r}`),this.deviceId&&this.recapture(this.deviceId),r}})}listenDeviceChange(){_t&&!_t.listeners("videoInputRemoved").includes(this.handleCameraRemoved)&&_t.on("videoInputRemoved",this.handleCameraRemoved,this)}handleCameraRemoved(e){return v(this,null,function*(){if(e.deviceId===this.deviceId){this.log.warn(`current camera is lost: ${JSON.stringify(e)}`),ze(this.userId,{eventId:2003,param1:7,streamType:2});let r=yield or();r[0]?this.recapture(r[0].deviceId):_t.on("videoInputAdded",this.handleCameraAdded,this)}})}handleCameraAdded(e){return v(this,null,function*(){this.log.warn(`camera added: ${JSON.stringify(e)}`),this.recapture(e.deviceId)})}encodeFrame(e,r){if(!this.manager)return e;let o=r?8:this.mediaType;return this.manager.encodePipeline.reduceRight((s,a)=>a?a({frame:s,mediaType:o}):s,e)}get enableEncodeFrame(){return this.manager?this.manager.encodePipeline.some(e=>e):!1}play(e,r){return L(this.mirror)&&!this.isScreen&&this.setMirror("view"),super.play(e,r)}close(){_t.off("videoInputAdded",this.handleCameraAdded,this),_t.off("videoInputRemoved",this.handleCameraRemoved,this),super.close()}recapture(e){return v(this,null,function*(){try{yield kt(Js.prototype,this,"recapture").call(this,e)}catch(r){let o=(yield or()).find(s=>s.deviceId!==e);if(o)yield kt(Js.prototype,this,"recapture").call(this,o.deviceId);else throw r}})}setContentHint(e){this.mediaTrack&&"contentHint"in this.mediaTrack&&(this.mediaTrack.contentHint!==e&&(this.log.info(`setContentHint ${e}`),this.mediaTrack.contentHint=e),this.outMediaTrack&&this.outMediaTrack.contentHint!==e&&(this.outMediaTrack.contentHint=e))}},hr=Js;q([zi(function(i){this.setContentHint(i.contentHint||"motion")})],hr.prototype,"capture",1);var Rg=ya();if(typeof navigator!="undefined"&&navigator.mediaDevices&&"setCaptureHandleConfig"in navigator.mediaDevices)try{navigator.mediaDevices.setCaptureHandleConfig({handle:Rg,exposeOrigin:!0,permittedOrigins:["*"]})}catch(i){}var oS=function(i){return v(this,null,function*(){let t=null,e=aS(i);V.info(`getDisplayMedia with constraints: ${JSON.stringify(e)}`);let r=yield navigator.mediaDevices.getDisplayMedia(e);i.systemAudio&&r.getAudioTracks().length===0&&(Os&&gi<74||Ht||Cr)&&V.warn("Your browser not support capture system audio");let o=r.getVideoTracks()[0];if(o){if(i.frameRate)try{yield o.applyConstraints({frameRate:{min:i.frameRate,ideal:i.frameRate},width:i.width,height:i.height})}catch(s){V.warn(`screen applyConstraints failed: ${s}`)}i.captureElement&&(yield sS(o,i.captureElement))}if(i.audio){let s=nS(i);V.info(`getUserMedia with constraints: ${JSON.stringify(s)}`),t=yield navigator.mediaDevices.getUserMedia(s),r.addTrack(t.getAudioTracks()[0])}return r})};function sS(i,t){return v(this,null,function*(){var e;if("CropTarget"in window&&"fromElement"in CropTarget&&Ve(i.cropTo))try{if(!(((e=i.getCaptureHandle())==null?void 0:e.handle)===Rg))return;let o=yield CropTarget.fromElement(t);yield i.cropTo(o)}catch(r){V.warn(`cropTo target failed ${r}`)}})}function nS(i){let t={echoCancellation:i.echoCancellation,autoGainControl:i.autoGainControl,noiseSuppression:i.noiseSuppression,sampleRate:i.sampleRate,channelCount:i.channelCount};return L(i.microphoneId)||(t.deviceId=i.microphoneId),{audio:t,video:!1}}function aS(i){let t={preferCurrentTab:i.preferDisplaySurface==="current-tab"||!!i.captureElement,systemAudio:"include",selfBrowserSurface:"include",surfaceSwitching:"include"},e={width:Ht?{max:i.width}:{ideal:i.width,max:i.width},height:Ht?{max:i.height}:{ideal:i.height,max:i.height},frameRate:i.frameRate,displaySurface:i.preferDisplaySurface||"monitor"};if(t.video=e,i.systemAudio){let{echoCancellation:r=!0,noiseSuppression:o=!1,autoGainControl:s=!1}=i;t.audio={echoCancellation:r,noiseSuppression:o,autoGainControl:s,sampleRate:48e3}}return t}var Cg=oS;var Ji=class extends hr{constructor(e){super(e,2);l(this,"profile",{width:1920,height:1080,frameRate:5,bitrate:1600});l(this,"objectFit","contain");l(this,"isScreen",!0);this._log.id=`s-${this._log.id}`}capture(T){return v(this,arguments,function*({systemAudio:e=!1,autoGainControl:r,echoCancellation:o,noiseSuppression:s,audioTrack:a,videoTrack:d,captureElement:h,preferDisplaySurface:p}){try{let y;return d||a?(y=new MediaStream,d&&y.addTrack(d),a&&y.addTrack(a)):y=yield Cg({audio:!1,systemAudio:e,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,autoGainControl:r,echoCancellation:o,noiseSuppression:s,captureElement:h,preferDisplaySurface:p}),yield this.setInputMediaStreamTrack(y.getVideoTracks()[0]),y}catch(y){throw this.log.error(`getDisplayMedia error observed ${y}`),y instanceof de?y:new de({code:Y.INITIALIZE_FAILED,name:y.name,message:y.message})}})}switchDevice(e){return v(this,null,function*(){throw new Error("Method not implemented.")})}};q([zi(function(i){this.setContentHint(i.contentHint||"detail")})],Ji.prototype,"capture",1);var Uo=class extends nr{constructor(t){super(t),this._log.id=`s-${this._log.id}`}};var cS="registerProcessor('dumper', class extends AudioWorkletProcessor {process(inputs) {this.port.postMessage(inputs);return true;}});",ym;function Wa(i){return v(this,null,function*(){let t=jt("dump");ym||(ym=Po(t,URL.createObjectURL(new Blob([cS],{type:"application/javascript"})))),yield ym;let e=new AudioWorkletNode(t,"dumper",{numberOfInputs:i.length,numberOfOutputs:0});return i.forEach((r,o)=>r.connect(e,0,o)),new ReadableStream({start(r){e.port.onmessage=o=>{r.enqueue(o.data)}},cancel(){i.forEach(r=>r.disconnect(e)),e.port.close()}})})}var ou=class extends Jd{constructor(e){super();this.room=e;l(this,"_localAudioTrack");l(this,"_localScreenAudioTrack");l(this,"log",V.createLogger({id:"am"}));l(this,"denoiser");l(this,"mixChangedDebounce");l(this,"encodePipeline",[]);l(this,"decodePipeline",[]);e&&(this.log.setUserId(e.userId),this.log.setSdkAppId(e.sdkAppId))}get _localAudioPipline(){var e;return(e=this._localAudioTrack)==null?void 0:e.pipeline}dump(e){var T,y;if(!this._localAudioTrack)return;let r=[],o=[];(T=this._localAudioPipline)!=null&&T.source.node&&(r.push(this._localAudioPipline.source.node),o.push("mic")),(y=this._localAudioPipline)!=null&&y.denoiser.node&&(r.push(this._localAudioPipline.denoiser.node),o.push("mic-processed")),this.mixWeight>1&&(r.push(this.audioContext.createMediaStreamSource(this._localAudioPipline.stream)),o.push("mix")),this.log.info(`dump audio track ${o}, duration: ${e}`);let s=new AbortController,a=[],d=setTimeout(()=>{this.log.info('dump audio track complete please input "download()" to download.'),s.abort("timeout")},e*1e3),h=()=>{for(let R=0;R<o.length;R++){let N=URL.createObjectURL(new Blob(a[R])),j=document.createElement("a");j.href=N,j.download=`${o[R]}.pcm`,j.style.display="none",document.body.appendChild(j),j.click(),URL.revokeObjectURL(N),j.remove()}clearTimeout(d),s.abort("download")},p=Wa(r).then(R=>R.pipeTo(new WritableStream({write(N){N.forEach((j,W)=>a[W]=a[W]?a[W].concat(j[0]):[j[0]])}}),s).catch(N=>h));return{then:p.then.bind(p),download:h}}getPCM(e){var a;if(L(WritableStream)){this.log.warn("getPCM failed: browser not support WritableStream");return}if(!((a=this._localAudioPipline)!=null&&a.source.node)){this.log.warn("getPCM failed: no local audio track");return}this.log.warn("getPCM");let r=new Float32Array(1920),o=0,s=new AbortController;return Wa([this._localAudioPipline.source.node]).then(d=>d.pipeTo(new WritableStream({write(h){!h[0][0]||(r.set(h[0][0],o),o+=h[0][0].length,o>=1920&&(o=0,e(r),r=new Float32Array(1920)))}}),s).catch(h=>this.log.warn(`stop getPCM reason:${h}`))),s}get hasScreenAudioTrack(){return this._localScreenAudioTrack!==null}get hasAudioTrack(){return!L(this._localAudioTrack)}changeInput(e){if(e instanceof Uo)return this._localScreenAudioTrack=e,e.pipeline.connect(),this.mixOnChange();if(e instanceof nr)return this._localAudioTrack=e,this.denoiser&&e.addDenoiser(this.denoiser),e.pipeline.connect(),this.mixOnChange();if(e instanceof Vo)return e.setOutputMediaStreamTrack(e.mediaTrack)}mixOnChange(){return this.mixChangedDebounce||(this.mixChangedDebounce=Promise.resolve().then(()=>{var e,r;return delete this.mixChangedDebounce,Promise.all([(e=this._localAudioTrack)==null?void 0:e.setOutputMediaStreamTrack(this.mixWeight>1?this.mixTrack:this._localAudioTrack.mediaTrack),(r=this._localScreenAudioTrack)==null?void 0:r.setOutputMediaStreamTrack(this.mixWeight>1?this.mixTrack:this._localScreenAudioTrack.mediaTrack)])})),this.mixChangedDebounce}removeInput(e){e instanceof Uo?delete this._localScreenAudioTrack:e instanceof nr?delete this._localAudioTrack:e instanceof Vo}addDenoiser(e){var r;this.denoiser=e,(r=this._localAudioTrack)==null||r.addDenoiser(e)}removeDenoiser(e){var r;delete this.denoiser,(r=this._localAudioTrack)==null||r.removeDenoiser(e)}destroy(){this.close()}addEncodeProcessor({processor:e,type:r}){var o;this.encodePipeline.includes(e)||(this.encodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}addDecodeProcessor({processor:e,type:r}){var o;this.decodePipeline.includes(e)||(this.decodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}removeEncodeProcessor({type:e}){this.encodePipeline[e]=void 0}removeDecodeProcessor({type:e}){this.decodePipeline[e]=void 0}};function Dg(i=30,t=2){return Ce((e,r)=>function(...o){return new Promise((s,a)=>{let d=setTimeout(()=>{let h=new de({code:Y.API_CALL_TIMEOUT,message:`checkPendingPromise ${r}() timeout ${i}s`});V.warn(h),t===2?a(h):t===1&&s()},i*1e3);e.apply(this,o).then(s,a).finally(()=>{clearTimeout(d)})})})}var Am=class extends ko{constructor(e,r,o){super({userId:r.userId,sdkAppId:e.sdkAppId,mediaType:o,room:e});this.room=e;this.user=r;l(this,"tinyId");l(this,"isRemote",!0);l(this,"jitterBufferDelay",0);l(this,"_decodeCheckTimeoutId",-1);this.tinyId=r.tinyId}setMute(e){this.isAvailable&&super.setMute(e)}setInputMediaStreamTrack(e){super.setInputMediaStreamTrack(e),this.isAvailable&&this.isSubscribed&&this.player.setTrack(this.outMediaTrack)}waitHasMediaTrack(){return new Promise(e=>{this.mediaTrack?e():this.once("input-media-track-changed",e)})}get isSubscribing(){return this.state.toString()==="subscribeing"}get isSubscribed(){return this.state===Am.STATE_SUBSCRIBE}subscribe(e){return e}unsubscribe(){this.player.setTrack(null),this.streamType==="main"&&this.kind==="video"&&this.room.changeType(!1,this.user)}reportDecodeResult(e,r){let o=this.kind===D.AUDIO;X[e?"addSuccessEvent":"addFailedEvent"]({key:o?504700:514702}),e||(X.addEnum({key:o?504701:514703,value:Ia()}),Le.uploadEvent({log:`stat-decode-failed-${this.kind}-${Ta()||vo()}`,userId:this.room.userId}),this._log.warn(`decode failed: isPlaying: ${this.player.isPlaying} ${this.kind===D.AUDIO?`audioLevel: ${this.getAudioLevel()}`:`framesDecoded: ${this.stat.framesDecoded>0}`}`),this.emit("decode-failed",{error:r}))}updatePlayingState(e){if(this.isPlayCalled&&this.player.isStopped===e){if(e&&(!this.isSubscribed||!this.isAvailable||!this.outMediaTrack)){this.log.info(`abort play, isSubscribed: ${this.isSubscribed} isAvailable: ${this.isAvailable} hasTrack: ${!!this.outMediaTrack} `);return}super.updatePlayingState(e)}}close(){super.close(),this.outMediaTrack&&this.uninstallTrackEvent(this.outMediaTrack)}onFlagChanged(){this.updatePlayingState(this.isAvailable)}onTrackMuted(){this.isAvailable&&(this.isSubscribed||this.isSubscribing)&&this.isPlayCalled&&super.onTrackMuted()}onTrackUnmuted(){this.isAvailable&&(this.isSubscribed||this.isSubscribing)&&this.isPlayCalled&&super.onTrackUnmuted()}onTrackEnded(){this.isAvailable&&(this.isSubscribed||this.isSubscribing)&&this.isPlayCalled&&super.onTrackEnded()}},fr=Am;l(fr,"STATE_SUBSCRIBE","subscribe"),q([Dg(5,1)],fr.prototype,"waitHasMediaTrack",1),q([be(Z.INIT,fr.STATE_SUBSCRIBE,{success(){var t,e;this.log.info("subscribed"),B.emit(O.REMOTE_TRACK_SUBSCRIBED,{track:this}),this.updatePlayingState(!0),!((((e=(t=this.room)==null?void 0:t.networkQuality)==null?void 0:e.downlinkNetworkQuality)||0)>3||this.player.isInAutoPlayFailedState)&&(this._decodeCheckTimeoutId=setTimeout(()=>{var o,s;if(!((((s=(o=this.room)==null?void 0:o.networkQuality)==null?void 0:s.downlinkNetworkQuality)||0)>3||this.player.isInAutoPlayFailedState)&&this.isSubscribed&&this.isPlayCalled&&this.stat.bytesReceived>0){let a=this.kind===D.AUDIO,d=this.player.isPlaying||(a?this.getAudioLevel()>0:this.stat.framesDecoded>0);this.reportDecodeResult(d)}},5e3),this.player.once(at.ERROR,r=>{r.code===MediaError.MEDIA_ERR_DECODE&&(clearTimeout(this._decodeCheckTimeoutId),this.reportDecodeResult(!1,3))}))},ignoreError:!0}),ru(521716,!1)],fr.prototype,"subscribe",1),q([be(fr.STATE_SUBSCRIBE,Z.INIT,{sync:!0,success(){this.log.info("unsubscribed"),this.updatePlayingState(!1),B.emit(O.REMOTE_TRACK_UNSUBSCRIBED,{track:this}),clearTimeout(this._decodeCheckTimeoutId)}})],fr.prototype,"unsubscribe",1);var Vo=class extends fr{constructor(e,r){super(e,r,1);l(this,"volume",0);l(this,"mediaType",1);l(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,end2EndDelay:0,jitterBufferDelay:0});this.manager=e.audioManager}decodeFrame(e){if(!this.manager)return e;let r=e;for(let o of this.manager.decodePipeline)if(!!o&&(r=o({frame:r,track:this}),!r))return;return r}getAudioLevel(){let e=this.volume||super.getAudioLevel();return e>1?1:e}get isAvailable(){return this.user.muteState.audioAvailable}};var uS=[-1,-1,1,-1,-1,1,1,1],lS=[0,0,1,0,0,1,1,1];var Ut=class extends Z{constructor(e,r){super();this.context=e;l(this,"name");l(this,"input");l(this,"output");l(this,"texture");l(this,"ctx2d",null);l(this,"fbo");l(this,"width",0);l(this,"height",0);l(this,"x",0);l(this,"y",0);l(this,"program");l(this,"vertexShader");l(this,"fragmentShader");l(this,"totalFrames",0);l(this,"dropFrames",0);l(this,"matchInputSize",!0);l(this,"texCoordBuffer");l(this,"positionBuffer");l(this,"lastInfo",{name:"",timestamp:0,totalFrames:0,x:0,y:0,width:0,height:0,fps:0});l(this,"cost",0);l(this,"_canvas",null);l(this,"_image");l(this,"log");if(this.context.on("disconnect",this.close,this),this.name=r.name,this.log=r.logger,this.matchInputSize=r.matchInputSize!==!1,this.width=r.width||e.width,this.height=r.height||e.height,this._image=r.image,e instanceof Rt){e.ctx&&r.create2d&&(typeof OffscreenCanvas=="function"&&rr!==16?this._canvas=new OffscreenCanvas(this.width,this.height):(this._canvas=document.createElement("canvas"),this._canvas.width=this.width,this._canvas.height=this.height),this.ctx2d=this._canvas.getContext("2d"),this._image=this._canvas);return}try{let o=e.ctx;this.texCoordBuffer=this.createBuffer(lS),this.positionBuffer=this.createBuffer(uS),r.createTexture!==!1&&(this.texture=o.createTexture(),this.useTexture(),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.pixelStorei(o.PACK_ALIGNMENT,1),o.pixelStorei(o.UNPACK_ALIGNMENT,1)),r.useFbo&&(this.fbo=o.createFramebuffer(),this.useBufferFrame(),this.useTexture(),o.texImage2D(o.TEXTURE_2D,0,o.RGBA,this.width,this.height,0,o.RGBA,o.UNSIGNED_BYTE,null),o.framebufferTexture2D(o.FRAMEBUFFER,o.COLOR_ATTACHMENT0,o.TEXTURE_2D,this.texture,0)),r.useDefaultProgram?this.program=e.defaultProgam:(r.vertexShaderSource||r.fragmentShaderSource)&&(this.vertexShader=r.vertexShaderSource?e.createShader(o.VERTEX_SHADER,r.vertexShaderSource):e.defaultVShader,this.fragmentShader=r.fragmentShaderSource?e.createShader(o.FRAGMENT_SHADER,r.fragmentShaderSource):e.defaultFShader,this.program=e.createProgram(this.vertexShader,this.fragmentShader))}catch(o){this.context.destroy(new de({code:Y.VIDEO_MANAGER_ERROR,extraCode:3,message:`create video node ${this.name} error ${o.message||o}`}))}}get image(){return this._image}set image(e){this._image=e}createFramebuffer(e){let r=this.context.ctx,o=r.createFramebuffer();return r.bindFramebuffer(r.FRAMEBUFFER,o),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,e,0),o}connect(e,...r){return e.addInput(this,...r),this.output=e,e}addInput(e,...r){this.input=e,this.matchInputSize&&e.width&&e.height&&this.resize(e.width,e.height)}requestFrame(e){let r=Date.now();if(this.context instanceof st&&this.render(e)||this.context instanceof Rt&&this.render2d(e))this.totalFrames++;else return!1;return this.cost=Date.now()-r,!0}render2d(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?this.draw2d(this.input.image,0,0,this.width,this.height):!1}update(e=0){var r;(r=this.output)==null||r.update(e)}disconnect(...e){var r;(r=this.output)==null||r.removeInput(this,...e),delete this.output}removeInput(e,...r){delete this.input}close(){var e,r;if(this.context.off("disconnect",this.close,this),(e=this.output)==null||e.removeInput(this),delete this.output,(r=this.input)==null||r.disconnect(),this.context instanceof st){let o=this.context.ctx;o.deleteBuffer(this.texCoordBuffer),o.deleteBuffer(this.positionBuffer),this.fbo&&o.deleteFramebuffer(this.fbo),this.texture&&o.deleteTexture(this.texture),this.vertexShader&&this.vertexShader!==this.context.defaultVShader&&o.deleteShader(this.vertexShader),this.fragmentShader&&this.fragmentShader!==this.context.defaultFShader&&o.deleteShader(this.fragmentShader),this.program&&this.program!==this.context.defaultProgam&&o.deleteProgram(this.program)}this._canvas&&(this._canvas.width=0,this._canvas.height=0,this.ctx2d=null),this.removeAllListeners()}useTexture(){this.useTextures(this.texture)}useInputTexture(){var e;this.useTextures((e=this.input)==null?void 0:e.texture)}useTextures(...e){let r=this.context.ctx;e.forEach((o,s)=>{o&&(r.activeTexture(r.TEXTURE0+s),r.bindTexture(r.TEXTURE_2D,o))})}useProgram(){this.context.ctx.useProgram(this.program)}useBufferFrame(){let e=this.context.ctx;e.bindFramebuffer(e.FRAMEBUFFER,this.fbo||null)}createBuffer(e){let r=this.context.ctx,o=r.createBuffer();return r.bindBuffer(r.ARRAY_BUFFER,o),r.bufferData(r.ARRAY_BUFFER,new Float32Array(e),r.STATIC_DRAW),o}setTexBuffer(e){let r=this.context.ctx;r.bindBuffer(r.ARRAY_BUFFER,this.texCoordBuffer),r.bufferData(r.ARRAY_BUFFER,new Float32Array(e),r.STATIC_DRAW)}setPosBuffer(e){let r=this.context.ctx;r.bindBuffer(r.ARRAY_BUFFER,this.positionBuffer),r.bufferData(r.ARRAY_BUFFER,new Float32Array(e),r.STATIC_DRAW)}changeBufferData(e,r){let o=this.context.ctx;o.bindBuffer(o.ARRAY_BUFFER,e),o.bufferData(o.ARRAY_BUFFER,new Float32Array(r),o.STATIC_DRAW)}setAttributes(...e){let r=this.context.ctx;e.forEach((o,s)=>{r.enableVertexAttribArray(s),r.bindBuffer(r.ARRAY_BUFFER,o),r.vertexAttribPointer(s,2,r.FLOAT,!1,0,0)})}getVertexPoint(e,r){return[e/this.width*2-1,r/this.height*2-1]}layout2texCoords(e){return[...this.getVertexPoint(e.x,e.y),...this.getVertexPoint(e.x+e.width,e.y),...this.getVertexPoint(e.x,e.y+e.height),...this.getVertexPoint(e.x+e.width,e.y+e.height)]}resize(e,r){if(!(this.width===e&&this.height===r)){if(this.width=e,this.height=r,this._canvas&&(this._canvas.width=e,this._canvas.height=r),this.texture&&this.fbo){this.useTexture();let o=this.context.ctx;o.texImage2D(o.TEXTURE_2D,0,o.RGBA,e,r,0,o.RGBA,o.UNSIGNED_BYTE,null)}this.output&&this.output.matchInputSize&&this.output.resize(e,r)}}draw(e,r){this.setAttributes(e||this.positionBuffer,r||this.texCoordBuffer);let o=this.context.ctx;o.drawArrays(o.TRIANGLE_STRIP,0,4)}draw2d(e,r,o,s,a){return this.ctx2d&&e?(e instanceof ImageData?this.ctx2d.putImageData(e,r,o):(this.ctx2d.drawImage(e,r,o,s,a),typeof VideoFrame!="undefined"&&e instanceof VideoFrame&&e.close()),!0):!1}getInfo(){var y;let{totalFrames:e,x:r,y:o,width:s,height:a,name:d,cost:h}=this,p=Date.now(),T=(e-this.lastInfo.totalFrames)/((p-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:r,y:o,width:s,height:a,timestamp:p,fps:T,name:d,cost:h},J({parent:(y=this.input)==null?void 0:y.getInfo()},this.lastInfo)}createTexture(e){let r=this.context.ctx,o=r.createTexture();return this.useTextures(o),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.pixelStorei(r.PACK_ALIGNMENT,1),r.pixelStorei(r.UNPACK_ALIGNMENT,1),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e),o}};q([be(Z.INIT,"connected",{sync:!0})],Ut.prototype,"connect",1),q([be("connected",Z.INIT,{ignoreError:!0,sync:!0})],Ut.prototype,"disconnect",1),q([be([],"closed",{sync:!0})],Ut.prototype,"close",1);var ch={};li(ch,{Events:()=>et,Inspect:()=>_r,LastSink:()=>Bo,Sink:()=>ae,Subscribe:()=>Fo,TimeoutError:()=>Ga,audit:()=>JS,bindCallback:()=>OS,bindNodeCallback:()=>PS,buffer:()=>yS,bufferCount:()=>SS,bufferTime:()=>my,call:()=>wg,catchError:()=>qa,combineLatest:()=>Mg,concat:()=>_S,concatMap:()=>sy,concatMapTo:()=>ny,count:()=>US,create:()=>ve,debounce:()=>XS,debounceTime:()=>QS,defer:()=>Og,delay:()=>hy,deliver:()=>le,dispose:()=>su,elementAt:()=>YS,empty:()=>Ho,every:()=>ry,exhaustMap:()=>dy,exhaustMapTo:()=>uy,filter:()=>Go,find:()=>ZS,findIndex:()=>KS,first:()=>ey,fromAnimationFrame:()=>xS,fromArray:()=>vS,fromEvent:()=>Je,fromEventPattern:()=>RS,fromFetch:()=>CS,fromIterable:()=>DS,fromPromise:()=>Lg,fromReadableStream:()=>wS,fromReader:()=>NS,groupBy:()=>ly,identity:()=>pS,ignoreElements:()=>$S,iif:()=>ES,inspect:()=>xg,interval:()=>Nm,last:()=>ty,map:()=>gu,mapTo:()=>oy,max:()=>VS,merge:()=>hS,mergeMap:()=>ay,mergeMapTo:()=>cy,min:()=>BS,never:()=>kS,nothing:()=>Ue,of:()=>bS,pairwise:()=>iy,pipe:()=>We,race:()=>fS,range:()=>MS,reduce:()=>xm,retry:()=>gy,scan:()=>ih,share:()=>Ri,shareReplay:()=>gS,skip:()=>WS,skipUntil:()=>GS,skipWhile:()=>uu,startWith:()=>$o,subject:()=>zt,subscribe:()=>dt,sum:()=>FS,switchMap:()=>Qi,switchMapTo:()=>ja,take:()=>xr,takeLast:()=>HS,takeUntil:()=>gt,takeWhile:()=>Ug,tap:()=>nh,throttle:()=>qS,throwError:()=>LS,timeInterval:()=>py,timeout:()=>ah,timer:()=>wm,toPromise:()=>fy,toReadableStream:()=>_y,withLatestFrom:()=>IS,zip:()=>TS});function Ue(...i){}var wg=i=>i(),pS=i=>i;function su(){this.dispose()}var xg=()=>typeof __FASTRX_DEVTOOLS__!="undefined",mS=1,_r=class extends Function{toString(){return`${this.name}(${this.args.length?[...this.args].join(", "):""})`}subscribe(t){let e=new vm(t,this,this.streamId++);return et.subscribe({id:this.id,end:!1},{nodeId:e.sourceId,streamId:e.id}),this(e),e}},Bo=class{constructor(){this.defers=new Set,this.disposed=!1}next(t){}complete(){this.dispose()}error(t){this.dispose()}get bindDispose(){return()=>this.dispose()}dispose(){this.disposed=!0,this.complete=Ue,this.error=Ue,this.next=Ue,this.dispose=Ue,this.subscribe=Ue,this.doDefer()}subscribe(t){return t instanceof _r?t.subscribe(this):t(this),this}get bindSubscribe(){return t=>this.subscribe(t)}doDefer(){this.defers.forEach(wg),this.defers.clear()}defer(t){this.defers.add(t)}removeDefer(t){this.defers.delete(t)}reset(){this.disposed=!1,delete this.complete,delete this.next,delete this.dispose,delete this.next,delete this.subscribe}resetNext(){delete this.next}resetComplete(){delete this.complete}resetError(){delete this.error}},ae=class extends Bo{constructor(t){super(),this.sink=t,t.defer(this.bindDispose)}next(t){this.sink.next(t)}complete(){this.sink.complete()}error(t){this.sink.error(t)}},Fo=class extends Bo{constructor(t,e=Ue,r=Ue,o=Ue){if(super(),this._next=e,this._error=r,this._complete=o,this.then=Ue,t instanceof _r){let s={toString:()=>"subscribe",id:0,source:t};this.defer(()=>{et.defer(s,0)}),et.create(s),et.pipe(s),this.sourceId=s.id,this.subscribe(t),et.subscribe({id:s.id,end:!0}),e==Ue?this._next=a=>et.next(s,0,a):this.next=a=>{et.next(s,0,a),e(a)},o==Ue?this._complete=()=>et.complete(s,0):this.complete=()=>{this.dispose(),et.complete(s,0),o()},r==Ue?this._error=a=>et.complete(s,0,a):this.error=a=>{this.dispose(),et.complete(s,0,a),r()}}else this.subscribe(t)}next(t){this._next(t)}complete(){this.dispose(),this._complete()}error(t){this.dispose(),this._error(t)}};function We(i,...t){return t.reduce((e,r)=>r(e),i)}function ve(i,t,e){if(xg()){let r=Object.defineProperties(Object.setPrototypeOf(i,_r.prototype),{streamId:{value:0,writable:!0,configurable:!0},name:{value:t,writable:!0,configurable:!0},args:{value:e,writable:!0,configurable:!0},id:{value:0,writable:!0,configurable:!0}});et.create(r);for(let o=0;o<e.length;o++){let s=e[o];typeof s=="function"&&s instanceof _r&&et.addSource(r,s)}return r}return i}function le(i,t){return function(...e){return r=>{if(r instanceof _r){let o=ve(s=>{let a=new i(s,...e);a.sourceId=o.id,a.subscribe(r)},t,arguments);return o.source=r,et.pipe(o),o}else return o=>r(new i(o,...e))}}}function Xi(i,t){window.postMessage({source:"fastrx-devtools-backend",payload:{event:i,payload:t}})}var vm=class extends ae{constructor(t,e,r){super(t),this.source=e,this.id=r,this.sourceId=t.sourceId,this.defer(()=>{et.defer(this.source,this.id)})}next(t){et.next(this.source,this.id,t),this.sink.next(t)}complete(){et.complete(this.source,this.id),this.sink.complete()}error(t){et.complete(this.source,this.id,t),this.sink.error(t)}},et={addSource(i,t){Xi("addSource",{id:i.id,name:i.toString(),source:{id:t.id,name:t.toString()}})},next(i,t,e){Xi("next",{id:i.id,streamId:t,data:e&&e.toString()})},subscribe({id:i,end:t},e){Xi("subscribe",{id:i,end:t,sink:{nodeId:e&&e.nodeId,streamId:e&&e.streamId}})},complete(i,t,e){Xi("complete",{id:i.id,streamId:t,err:e?e.toString():null})},defer(i,t){Xi("defer",{id:i.id,streamId:t})},pipe(i){Xi("pipe",{name:i.toString(),id:i.id,source:{id:i.source.id,name:i.source.toString()}})},update(i){Xi("update",{id:i.id,name:i.toString()})},create(i){i.id||(i.id=mS++),Xi("create",{name:i.toString(),id:i.id})}},Ga=class extends Error{constructor(t){super(`timeout after ${t}ms`),this.timeout=t}};var nu=class extends Bo{constructor(t){super(),this.source=t,this.sinks=new Set}add(t){t.defer(()=>this.remove(t)),this.sinks.add(t).size===1&&(this.reset(),this.subscribe(this.source))}remove(t){this.sinks.delete(t),this.sinks.size===0&&this.dispose()}next(t){this.sinks.forEach(e=>e.next(t))}complete(){this.sinks.forEach(t=>t.complete()),this.sinks.clear()}error(t){this.sinks.forEach(e=>e.error(t)),this.sinks.clear()}};function Ri(){return i=>{let t=new nu(i);if(i instanceof _r){let e=ve(r=>{t.add(r)},"share",arguments);return t.sourceId=e.id,e.source=i,et.pipe(e),e}return ve(t.add.bind(t),"share",arguments)}}function hS(...i){return ve(t=>{let e=new ae(t),r=i.length;e.complete=()=>{--r===0&&t.complete()},i.forEach(e.bindSubscribe)},"merge",arguments)}function fS(...i){return ve(t=>{let e=new Map;i.forEach(r=>{let o=new ae(t);e.set(r,o),o.complete=()=>{e.delete(r),e.size===0?t.complete():o.dispose()},o.next=s=>{e.delete(r),e.forEach(a=>a.dispose()),o.resetNext(),o.resetComplete(),o.next(s)}}),i.forEach(r=>e.get(r).subscribe(r))},"race",arguments)}function _S(...i){return ve(t=>{let e=0,r=i.length,o=new ae(t);o.complete=()=>{e<r&&!o.disposed?(o.doDefer(),o.subscribe(i[e++])):t.complete()},o.complete()},"concat",arguments)}function gS(i){return t=>{let e=new nu(t),r=[];return e.next=function(o){r.push(o),r.length>i&&r.shift(),this.sinks.forEach(s=>s.next(o))},ve(o=>{o.defer(()=>e.remove(o)),r.forEach(s=>o.next(s)),e.add(o)},"shareReplay",arguments)}}function ES(i,t,e){return ve(r=>i()?t(r):e(r),"iif",arguments)}function Mg(...i){return ve(t=>{let e=i.length,r=e,o=e,s=new Array(e),a=()=>{--o===0&&t.complete()},d=(h,p)=>{let T=new ae(t);T.next=y=>{--r===0?(T.next=R=>{s[p]=R,t.next(s)},T.next(y)):s[p]=y},T.complete=a,T.subscribe(h)};i.forEach(d)},"combineLatest",arguments)}function TS(...i){return ve(t=>{let e=i.length,r=e,o=new Array(e),s=()=>{--r===0&&t.complete()},a=(d,h)=>{let p=new ae(t),T=[];o[h]=T,p.next=y=>{T.push(y),o.every(R=>R.length)&&t.next(o.map(R=>R.shift()))},p.complete=s,p.subscribe(d)};i.forEach(a)},"zip",arguments)}function $o(...i){return t=>ve((e,r=0,o=i.length)=>{for(;r<o&&!e.disposed;)e.next(i[r++]);e.disposed||e.subscribe(t)},"startWith",arguments)}var Rm=class extends ae{constructor(t,...e){super(t);let r=new ae(this.sink);r.next=o=>this.buffer=o,r.complete=Ue,r.subscribe(Mg(...e))}next(t){this.buffer&&this.sink.next([t,...this.buffer])}},IS=le(Rm,"withLatestFrom"),Cm=class extends ae{constructor(t,e,r){super(t),this.bufferSize=e,this.startBufferEvery=r,this.buffer=[],this.count=0,this.startBufferEvery&&(this.buffers=[[]])}next(t){this.startBufferEvery?(this.count++===this.startBufferEvery&&(this.buffers.push([]),this.count=1),this.buffers.forEach(e=>{e.push(t)}),this.buffers[0].length===this.bufferSize&&this.sink.next(this.buffers.shift())):(this.buffer.push(t),this.buffer.length===this.bufferSize&&(this.sink.next(this.buffer),this.buffer=[]))}complete(){this.buffer.length?this.sink.next(this.buffer):this.buffers.length&&this.buffers.forEach(t=>this.sink.next(t)),super.complete()}},SS=le(Cm,"bufferCount"),Dm=class extends ae{constructor(t,e){super(t),this.buffer=[];let r=new ae(t);r.next=o=>{t.next(this.buffer),this.buffer=[]},r.complete=Ue,r.subscribe(e)}next(t){this.buffer.push(t)}complete(){this.buffer.length&&this.sink.next(this.buffer),super.complete()}},yS=le(Dm,"buffer");var AS=function(i,t,e,r){function o(s){return s instanceof e?s:new e(function(a){a(s)})}return new(e||(e=Promise))(function(s,a){function d(T){try{p(r.next(T))}catch(y){a(y)}}function h(T){try{p(r.throw(T))}catch(y){a(y)}}function p(T){T.done?s(T.value):o(T.value).then(d,h)}p((r=r.apply(i,t||[])).next())})};function zt(i){let t=arguments,e=Ri()(ve(r=>{e.next=o=>r.next(o),e.complete=()=>r.complete(),e.error=o=>r.error(o),i&&r.subscribe(i)},"subject",t));return e.next=Ue,e.complete=Ue,e.error=Ue,e}function Og(i){return ve(t=>t.subscribe(i()),"defer",arguments)}var Pg=i=>t=>{setTimeout(()=>i(t))},kg=i=>Pg(t=>{for(let e=0;!t.disposed&&e<i.length;e++)t.next(i[e]);t.complete()});function bS(...i){return ve(kg(i),"of",arguments)}function vS(i){return ve(kg(i),"fromArray",arguments)}function Nm(i){return ve(t=>{let e=0,r=setInterval(()=>t.next(e++),i);return t.defer(()=>{clearInterval(r)}),"interval"},"interval",arguments)}function wm(i,t){return ve(e=>{let r=0,o=setTimeout(()=>{if(e.removeDefer(s),e.next(r++),t){let a=setInterval(()=>e.next(r++),t);e.defer(()=>{clearInterval(a)})}else e.complete()},i),s=()=>{clearTimeout(o)};e.defer(s)},"timer",arguments)}function au(i,t){return e=>{let r=o=>e.next(o);e.defer(()=>t(r)),i(r)}}function RS(i,t){return ve(au(i,t),"fromEventPattern",arguments)}function Je(i,t){if("on"in i&&"off"in i)return ve(au(e=>i.on(t,e),e=>i.off(t,e)),"fromEvent",arguments);if("addListener"in i&&"removeListener"in i)return ve(au(e=>i.addListener(t,e),e=>i.removeListener(t,e)),"fromEvent",arguments);if("addEventListener"in i)return ve(au(e=>i.addEventListener(t,e),e=>i.removeEventListener(t,e)),"fromEvent",arguments);throw"target is not a EventDispachter"}function Lg(i){return ve(t=>{i.then(t.next.bind(t),t.error.bind(t))},"fromPromise",arguments)}function CS(i,t){return ve(Og(()=>Lg(fetch(i,t))),"fromFetch",arguments)}function DS(i){return ve(Pg(t=>{try{for(let e of i){if(t.disposed)return;t.next(e)}t.complete()}catch(e){t.error(e)}}),"fromIterable",arguments)}function NS(i){let t=e=>AS(this,void 0,void 0,function*(){if(e.disposed)return;let{done:r,value:o}=yield i.read();if(r){e.complete();return}else e.next(o),t(e)});return ve(e=>{t(e)},"fromReader",arguments)}function wS(i){return ve(t=>{let e=new AbortController,r=e.signal;t.defer(()=>e.abort("cancelled")),i.pipeTo(new WritableStream({write(o){t.next(o)},close(){t.complete()},abort(o){t.error(o)}}),{signal:r}).then(()=>t.complete(),o=>t.error(o))},"fromReadableStream",arguments)}function xS(){return ve(i=>{let t=requestAnimationFrame(function e(r){i.disposed||(i.next(r),t=requestAnimationFrame(e))});i.defer(()=>cancelAnimationFrame(t))},"fromAnimationFrame",arguments)}function MS(i,t){return ve((e,r=i,o=t+i)=>{for(;r<o&&!e.disposed;)e.next(r++);return e.complete(),"range"},"range",arguments)}function OS(i,t,...e){return ve(r=>{let o=e.concat(s=>(r.next(s),r.complete()));i.apply(t,o)},"bindCallback",arguments)}function PS(i,t,...e){return ve(r=>{let o=e.concat((s,a)=>s?r.error(s):(r.next(a),r.complete()));i.apply(t,o)},"bindNodeCallback",arguments)}function kS(){return ve(()=>{},"never",arguments)}function LS(i){return ve(t=>t.error(i),"throwError",arguments)}function Ho(){return ve(i=>i.complete(),"empty",arguments)}var Wo=class extends ae{constructor(t,e,r){super(t),this.f=e;let o=()=>{this.sink.next(this.acc),this.sink.complete()};typeof r=="undefined"?this.next=s=>{this.acc=s,this.complete=o,this.resetNext()}:(this.acc=r,this.complete=o)}next(t){this.acc=this.f(this.acc,t)}},xm=le(Wo,"reduce"),US=i=>le(Wo,"count")((t,e)=>i(e)?t+1:t,0),VS=()=>le(Wo,"max")(Math.max),BS=()=>le(Wo,"min")(Math.min),FS=()=>le(Wo,"sum")((i,t)=>i+t,0);var Mm=class extends ae{constructor(t,e,r){super(t),this.filter=e,this.thisArg=r}next(t){this.filter.call(this.thisArg,t)&&this.sink.next(t)}},Go=le(Mm,"filter"),Om=class extends ae{next(t){}},$S=le(Om,"ignoreElements"),Pm=class extends ae{constructor(t,e){super(t),this.count=e}next(t){this.sink.next(t),--this.count===0&&this.complete()}},xr=le(Pm,"take"),km=class extends ae{constructor(t,e){super(t);let r=new ae(t);r.next=()=>t.complete(),r.complete=su,r.subscribe(e)}},gt=le(km,"takeUntil"),Lm=class extends ae{constructor(t,e){super(t),this.f=e}next(t){this.f(t)?this.sink.next(t):this.complete()}},Ug=le(Lm,"takeWhile"),HS=i=>xm((t,e)=>(t.push(e),t.length>i&&t.shift(),t),[]),Um=class extends ae{constructor(t,e){super(t),this.count=e}next(t){--this.count===0&&(this.next=super.next)}},WS=le(Um,"skip"),Vm=class extends ae{constructor(t,e){super(t),t.next=Ue;let r=new ae(t);r.next=()=>{r.dispose(),t.resetNext()},r.complete=su,r.subscribe(e)}},GS=le(Vm,"skipUntil"),Bm=class extends ae{constructor(t,e){super(t),this.f=e}next(t){this.f(t)||(this.next=super.next,this.next(t))}},uu=le(Bm,"skipWhile"),jS={leading:!0,trailing:!1},Fm=class extends ae{constructor(t,e,r){super(t),this.durationSelector=e,this.trailing=r}cacheValue(t){this.last=t,this.disposed&&this.throttle(t)}send(t){this.sink.next(t),this.throttle(t)}throttle(t){this.reset(),this.subscribe(this.durationSelector(t))}next(){this.complete()}complete(){this.dispose(),this.trailing&&this.send(this.last)}},cu=class extends ae{constructor(t,e,r=jS){super(t),this.durationSelector=e,this.config=r,this._throttle=new Fm(this.sink,this.durationSelector,this.config.trailing),this._throttle.dispose()}next(t){this._throttle.disposed&&this.config.leading?this._throttle.send(t):this._throttle.cacheValue(t)}complete(){this._throttle.throttle=Ue,this._throttle.complete(),super.complete()}},qS=le(cu,"throttle"),zS={leading:!1,trailing:!0},JS=i=>le(cu,"audit")(i,zS),$m=class extends ae{next(){this.complete()}complete(){this.dispose(),this.sink.next(this.last)}},du=class extends ae{constructor(t,e){super(t),this.durationSelector=e,this._debounce=new $m(this.sink),this._debounce.dispose()}next(t){this._debounce.dispose(),this._debounce.reset(),this._debounce.last=t,this._debounce.subscribe(this.durationSelector(t))}complete(){this._debounce.complete(),super.complete()}},XS=le(du,"debounce"),QS=i=>le(du,"debounceTime")(t=>wm(i)),Hm=class extends ae{constructor(t,e,r){super(t),this.count=e,this.defaultValue=r}next(t){this.count--===0&&(this.defaultValue=t,this.complete())}complete(){if(this.defaultValue===void 0){this.error(new Error("not enough elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},YS=le(Hm,"elementAt"),ZS=i=>t=>xr(1)(uu(e=>!i(e))(t)),Wm=class extends ae{constructor(t,e){super(t),this.f=e,this.i=0}next(t){this.f(t)?(this.sink.next(this.i++),this.complete()):++this.i}},KS=le(Wm,"findIndex"),Gm=class extends ae{constructor(t,e,r){super(t),this.f=e,this.defaultValue=r,this.index=0}next(t){(!this.f||this.f(t,this.index++))&&(this.defaultValue=t,this.complete())}complete(){if(this.defaultValue===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},ey=le(Gm,"first"),jm=class extends ae{constructor(t,e,r){super(t),this.f=e,this.defaultValue=r,this.index=0}next(t){(!this.f||this.f(t,this.index++))&&(this.defaultValue=t)}complete(){if(this.defaultValue===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},ty=le(jm,"last"),qm=class extends ae{constructor(t,e){super(t),this.predicate=e,this.index=0}next(t){this.predicate(t,this.index++)?this.result=!0:(this.result=!1,this.complete())}complete(){if(this.result===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.result);super.complete()}},ry=le(qm,"every");var zm=class extends ae{constructor(t,e,r){super(t),this.f=e,typeof r=="undefined"?this.next=o=>{this.acc=o,this.resetNext(),this.sink.next(this.acc)}:this.acc=r}next(t){this.sink.next(this.acc=this.f(this.acc,t))}},ih=le(zm,"scan"),Jm=class extends ae{constructor(){super(...arguments),this.hasLast=!1}next(t){this.hasLast?this.sink.next([this.last,t]):this.hasLast=!0,this.last=t}},iy=le(Jm,"pairwise"),lu=class extends ae{constructor(t,e,r){super(t),this.mapper=e,this.thisArg=r}next(t){super.next(this.mapper.call(this.thisArg,t))}},gu=le(lu,"map"),oy=i=>le(lu,"mapTo")(t=>i),Xs=class extends ae{constructor(t,e,r){super(t),this.data=e,this.context=r}next(t){let e=this.context.combineResults;e?this.sink.next(e(this.data,t)):this.sink.next(t)}tryComplete(){this.context.resetComplete(),this.dispose()}},Qs=class extends ae{constructor(t,e,r){super(t),this.makeSource=e,this.combineResults=r,this.index=0}subInner(t,e){let r=this.currentSink=new e(this.sink,t,this);this.complete=this.tryComplete,r.complete=r.tryComplete,r.subscribe(this.makeSource(t,this.index++))}tryComplete(){this.currentSink.resetComplete(),this.dispose()}},pu=class extends Xs{},mu=class extends Qs{next(t){this.subInner(t,pu),this.next=e=>{this.currentSink.dispose(),this.subInner(e,pu)}}},Qi=le(mu,"switchMap");function Eu(i){return(t,e)=>i(()=>t,e)}var ja=Eu(le(mu,"switchMapTo")),Xm=class extends Xs{tryComplete(){this.dispose(),this.context.sources.length?this.context.subNext():(this.context.resetNext(),this.context.resetComplete())}},hu=class extends Qs{constructor(){super(...arguments),this.sources=[],this.next2=this.sources.push.bind(this.sources)}next(t){this.next2(t),this.subNext()}subNext(){this.next=this.next2,this.subInner(this.sources.shift(),Xm),this.disposed&&this.sources.length===0&&this.currentSink.resetComplete()}tryComplete(){this.sources.length===0&&this.currentSink.resetComplete(),this.dispose()}},sy=le(hu,"concatMap"),ny=Eu(le(hu,"concatMapTo")),Qm=class extends Xs{tryComplete(){this.context.inners.delete(this),super.dispose(),this.context.inners.size===0&&this.context.resetComplete()}},fu=class extends Qs{constructor(){super(...arguments),this.inners=new Set}next(t){this.subInner(t,Qm),this.inners.add(this.currentSink)}tryComplete(){this.inners.size===1?this.inners.forEach(t=>t.resetComplete()):this.dispose()}},ay=le(fu,"mergeMap"),cy=Eu(le(fu,"mergeMapTo")),Ym=class extends Xs{dispose(){this.context.resetNext(),super.dispose()}},_u=class extends Qs{next(t){this.next=Ue,this.subInner(t,Ym)}},dy=le(_u,"exhaustMap"),uy=Eu(le(_u,"exhaustMapTo")),Zm=class extends ae{constructor(t,e){super(t),this.f=e,this.groups=new Map}next(t){let e=this.f(t),r=this.groups.get(e);typeof r=="undefined"&&(r=zt(),r.key=e,this.groups.set(e,r),super.next(r)),r.next(t)}complete(){this.groups.forEach(t=>t.complete()),super.complete()}error(t){this.groups.forEach(e=>e.error(t)),super.error(t)}},ly=le(Zm,"groupBy"),Km=class extends ae{constructor(){super(...arguments),this.start=new Date}next(t){this.sink.next({value:t,interval:Number(new Date)-Number(this.start)}),this.start=new Date}},py=le(Km,"timeInterval"),eh=class extends ae{constructor(t,e){super(t),this.miniseconds=e,this.buffer=[],this.id=setInterval(()=>{this.sink.next(this.buffer.concat()),this.buffer.length=0},this.miniseconds)}next(t){this.buffer.push(t)}complete(){this.sink.next(this.buffer),super.complete()}dispose(){clearInterval(this.id),super.dispose()}},my=le(eh,"bufferTime"),th=class extends ae{constructor(t,e){super(t),this.buffer=[],this.delayTime=e}dispose(){clearTimeout(this.timeoutId),super.dispose()}delay(t){this.timeoutId=setTimeout(()=>{let e=this.buffer.shift();if(e){let{time:r,data:o}=e;super.next(o),this.buffer.length&&this.delay(Number(this.buffer[0].time)-Number(r))}},t)}next(t){this.buffer.length||this.delay(this.delayTime),this.buffer.push({time:new Date,data:t})}complete(){this.timeoutId=setTimeout(()=>super.complete(),this.delayTime)}},hy=le(th,"delay"),rh=class extends ae{constructor(t,e){super(t),this.selector=e}error(t){this.dispose(),this.selector(t)(this.sink)}},qa=le(rh,"catchError");var fy=()=>i=>new Promise((t,e)=>{let r;new Fo(i,o=>r=o,e,()=>t(r))}),_y=()=>i=>{let t;return new ReadableStream({start(e){t=new Fo(i,e.enqueue.bind(e),e.error.bind(e),e.close.bind(e))},cancel(){t.dispose()}})},dt=(i=Ue,t=Ue,e=Ue)=>r=>new Fo(r,i,t,e),oh=class extends ae{constructor(t,e){super(t),e instanceof Function?this.next=r=>{e(r),t.next(r)}:(e.next&&(this.next=r=>{e.next(r),t.next(r)}),e.complete&&(this.complete=()=>{e.complete(),t.complete()}),e.error&&(this.error=r=>{e.error(r),t.error(r)}))}},nh=le(oh,"tap"),sh=class extends ae{constructor(t,e){super(t),this.timeout=e,this.id=setTimeout(()=>this.error(new Ga(this.timeout)),this.timeout)}next(t){super.next(t),clearTimeout(this.id),this.next=super.next}dispose(){clearTimeout(this.id),super.dispose()}},ah=le(sh,"timeout"),gy=(i=1/0)=>t=>{if(t instanceof _r){let e=ve(r=>{let o=i,s=new ae(r);s.error=a=>{o-- >0?s.subscribe(t):r.error(a)},s.sourceId=e.id,s.subscribe(t)},"retry",[i]);return e.source=t,et.pipe(e),e}else return e=>{let r=i,o=new ae(e);o.error=s=>{r-- >0?t(o):e.error(s)},t(o)}};var Vg=We(Nm(250),gu(()=>performance.now()),Ri()),Bg=i=>t=>{let e=0,r=performance.now();We(Vg,gu(o=>(o-r)/i>>0),Go(o=>o!=e?(e=o,!0):!1))(t)},Tu=i=>t=>{let e=performance.now();We(Vg,uu(r=>r-e<i),xr(1))(t)};var Ty=[0,1,1,1,0,0,1,0],jo=class extends Ut{constructor(e,r){super(e,Object.assign({useDefaultProgram:!0,createTexture:!1,name:"destination"},r));l(this,"_intervalId",0);l(this,"_sequence",0);l(this,"checkGLError",!1);l(this,"checkVisibilityChange");e instanceof Rt?this.ctx2d=e.ctx||null:e.available&&(r==null?void 0:r.mirrorUpAndDown)&&this.setTexBuffer(Ty)}start(e){this.log.info(`${this.name} start render ${e} fps`),Et.clearTask(this._intervalId),this._intervalId=Et.run("intervalInWorker",()=>{if(e!==this.context.frameRate&&(Et.clearTask(this._intervalId),this.start(this.context.frameRate)),this.requestFrame(this._sequence++),this.checkGLError&&this.context instanceof st){let o=this.context.ctx.getError();o&&this.context.destroy(new de({code:Y.VIDEO_MANAGER_ERROR,extraCode:5,message:`${this.name} req ${this._sequence} render ${this.totalFrames} faild ${o}`}))}},{fps:this.context.frameRate})}render(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0):!1}addInput(e,...r){super.addInput(e,...r),this.start(this.context.frameRate)}update(e=0){if(this._intervalId&&(Et.clearTask(this._intervalId),this._intervalId=0,e===1)){this.log.info(`${this.name} use requestVideoFrameCallback`);let r=()=>{document.hidden&&(this.start(this.context.frameRate),this.log.info(`${this.name} use timer`),document.removeEventListener("visibilitychange",r))};document.addEventListener("visibilitychange",r)}this.requestFrame(this._sequence++)}removeInput(e){super.removeInput(e),Et.clearTask(this._intervalId)}resize(e,r){super.resize(e,r),this.context.setSize(e,r)}close(){super.close(),Et.clearTask(this._intervalId),document.removeEventListener("visibilitychange",this.checkVisibilityChange)}},Ys=class extends jo{constructor(e,r){super(e,r);l(this,"_videoTrack");l(this,"_muteOb");l(this,"_closedOb",Je(this,"closed"));l(this,"_subscription");l(this,"_canvasContainer");Number(Fi)<17&&(this._canvasContainer=document.createElement("div"),this._canvasContainer.style.display="none"),[this._videoTrack]=e._canvas.captureStream().getVideoTracks(),this._muteOb=Je(this._videoTrack,"mute"),We(Je(this._videoTrack,"ended"),gt(this._closedOb),dt(()=>{this.context.destroy(new de({code:Y.VIDEO_MANAGER_ERROR,extraCode:8,message:"video track ended"}))}))}enableCheckMute(){this._subscription=We(this._muteOb,gt(this._closedOb),ja(Tu(5e3)),dt(()=>{var e;!((e=this._videoTrack)!=null&&e.muted)||this.context.destroy(new de({code:Y.VIDEO_MANAGER_ERROR,extraCode:7,message:"video track muted"}))}))}disableCheckMute(){var e;(e=this._subscription)==null||e.dispose()}get videoTrack(){return this._videoTrack}putCanvasIntoDom(){!this.context._canvas||!this._canvasContainer||document.getElementById(this.context._canvas.id)||(this.log.info(`${this.name} put canvas to body`),document.body.appendChild(this._canvasContainer),this._canvasContainer.appendChild(this.context._canvas))}render(e){return this.putCanvasIntoDom(),super.render(e)}render2d(e){return this.putCanvasIntoDom(),super.render2d(e)}close(){var e,r;super.close(),(e=this._videoTrack)==null||e.stop(),delete this._videoTrack,(r=this._canvasContainer)==null||r.remove()}},Iu=class extends Ys{render(t){var e;return!!((e=this.input)!=null&&e.requestFrame(t))}};var Su=class extends Ys{constructor(e,r,o){super(e,{name:"smallDestination",logger:o});this.resolution=r}resize(e,r){let o,s=e*r,a=this.resolution.width*this.resolution.height;this.log.info(`big res: ${e}*${r} small res: ${this.resolution.width}*${this.resolution.height} `),s>a?o=s/a:(this.log.warn(`Small stream resolution is not smaller than big stream, which is invalid. big: ${e} * ${r} small: ${this.resolution.width} * ${this.resolution.height}`),o=s/(160*120)),super.resize(e/Math.sqrt(o),r/Math.sqrt(o))}};var za=class extends Ut{constructor(e,r){super(e,J({name:"imageSource"},r));l(this,"_lastImage");l(this,"_totalFrames",0);l(this,"_autoResize",!1);l(this,"_canvasRendered");l(this,"_videoCallbackId",0);this._autoResize=(r==null?void 0:r.autoResize)!==!1,rr===16&&(this._canvasRendered=zt(),We(this._canvasRendered,$o(this._image),Qi(o=>o instanceof HTMLCanvasElement?Je(o,"rendered"):Ho()),gt(Je(this,"closed")),dt(()=>{this.update()})))}tryVideoFrameCallback(e){this._videoCallbackId&&e.cancelVideoFrameCallback(this._videoCallbackId),Mo()&&!document.hidden&&(this._videoCallbackId=e.requestVideoFrameCallback((r,o)=>{document.hidden||(this._totalFrames=o.presentedFrames,this.update(1))}))}_render(e,r){var d;let{width:o,height:s}=this,{image:a}=this;if(a instanceof HTMLVideoElement){if(this.tryVideoFrameCallback(a),{videoWidth:o,videoHeight:s}=a,!o||!s)return!1;a.width=o,a.height=s}else if(a instanceof HTMLImageElement||a instanceof ImageData||a instanceof ImageBitmap){if({width:o,height:s}=a,a!==this._lastImage)this._lastImage=a;else if(o===this.width&&s===this.height)return!1}else a instanceof HTMLCanvasElement||a instanceof OffscreenCanvas?({width:o,height:s}=a,this._lastImage=a):typeof VideoFrame!="undefined"&&a instanceof VideoFrame&&({displayWidth:o,displayHeight:s}=a,(d=this._lastImage)==null||d.close(),this._lastImage=a);if(!this._autoResize)return!0;if(this.width===o&&this.height===s&&this.totalFrames){if(r){this.useTexture();let h=this.context.ctx;h.texSubImage2D(h.TEXTURE_2D,0,0,0,h.RGBA,h.UNSIGNED_BYTE,a)}}else{if(r){this.useTexture();let h=this.context.ctx;h.texImage2D(h.TEXTURE_2D,0,h.RGBA,h.RGBA,h.UNSIGNED_BYTE,a)}this.resize(o,s)}return!0}get image(){return this._image}set image(e){var r;(r=this._canvasRendered)==null||r.next(e),this._image=e}render(e){return this._render(e,!0)}render2d(e){return this._render(e,!1)}},Ja=class extends za{constructor(e,r,o){super(e,o);this._player=r;this.name="videoPlayerSource",We(Je(this._player,at.PLAYER_STATE_CHANGED),gt(Je(this,"closed")),Go(({state:s})=>s==="PLAYING"),dt(()=>{this.tryVideoFrameCallback(this._player.element)}))}get image(){return this._player.element}},Ci=class extends Ja{constructor(t,e,r){super(t,new ir({id:r.name,track:e,muted:!0,container:null,objectFit:"contain",log:r.logger}),r),this.name="videoTrackSource",this._player.play()}replaceTrack(t){this._player.setTrack(t),this._player.play()}close(){super.close(),this._player.stop()}};var Sy=`
31
+ `,t.onclick=this.onQuestionClick.bind(this);let r=document.createElement("div");r.className=Od,r.innerText=`${At()?"\u8BE6\u60C5 >":"Detail >"}`,r.onclick=this.onCollapseClick.bind(this);let o=i.content.firstChild,n=o.querySelector(`.${Zn}`);return n.appendChild(r),n.appendChild(t),n.appendChild(e),o}addDiaLog(){Ld()||(this._dialogNode=this.createDiaLog(),document.body.appendChild(this._dialogNode),this._dialogNode.onclick=this.onConfirm.bind(this),this._dialogNode.querySelector(`.${hs}`).onclick=i=>i.stopPropagation(),this._bodyPosition=document.body.style.position,document.body.style.position="fixed",C.info("show autoplay dialog"),ee.uploadEvent({log:n_}))}deleteDiaLog(){this._dialogNode&&(document.body.removeChild(this._dialogNode),document.body.style.position=this._bodyPosition,this._dialogNode=null)}onConfirm(){C.warn("confirm clicked, try resume stream"),E.emit(T.AUTOPLAY_DIALOG_CLICK_CONFIRM),this.deleteDiaLog()}onCollapseClick(){let i=this._dialogNode.querySelector(`.${vh}`);i.style.visibility=`${this._showDetail?"hidden":"visible"}`,i.style.height=`${this._showDetail?0:"fit-content"}`,this._showDetail=!this._showDetail,this._isCollapseClicked||ee.uploadEvent({log:a_}),this._isCollapseClicked=!0}onQuestionClick(){window.open(kh,"_blank"),this._isQuestionClicked||ee.uploadEvent({log:c_}),this._isQuestionClicked=!0}},Lh=Md;var at=class extends zt{constructor(e){super(e,h.VIDEO);c(this,"stat",{});c(this,"_calculateTimeout",-1);c(this,"viewMirror",!1);c(this,"objectFit");c(this,"container");c(this,"canvas");c(this,"canvasTrack");this.mode=e.canvas?1:0,this.container=e.container,this.canvas=e.canvas,g(e.viewMirror)||(this.viewMirror=e.viewMirror),g(e.objectFit)||(this.objectFit=e.objectFit),this.initializeElement()}initializeElement(){var t;let e=document.createElement(h.VIDEO);this.track&&this.mode!==2&&(e.srcObject=new MediaStream([this.track])),e.muted=!0,e.setAttribute("id",`video_${this.id}`),e.setAttribute("style",this.styleAttribute),this.canvas&&this.canvas.setAttribute("style",this.styleAttribute),e.setAttribute("autoplay","autoplay"),e.setAttribute("playsinline","playsinline"),this.element=e,(t=this.container)==null||t.appendChild(this.elementToRender),this.bindElementEvents(),this.calculateStat()}get styleAttribute(){let e=`width: 100%; height: 100%; object-fit: ${this.objectFit};background-color: black;`;return this.viewMirror&&(e+="transform: scaleX(-1);"),e}setContainer(e){var t;this.container=e,(this.track||this.canvasTrack)&&this.elementToRender&&((t=this.container)==null||t.appendChild(this.elementToRender))}bindElementEvents(){let e=super.bindElementEvents();this.handleElementEvent=this.handleElementEvent.bind(this),e&&e.add(h.ENTER_PICTURE_IN_PICTURE,this.handleElementEvent).add(h.LEAVE_PICTURE_IN_PICTURE,this.handleElementEvent)}handleTrackEvent(e){var t;super.handleTrackEvent(e),e.type===h.MUTE&&((t=this.stat)!=null&&t.fps)&&(this.stat.fps=0)}handleElementEvent(e){var r;if(this.mode===2)return;super.handleElementEvent(e);let t=e.type;if(t===h.PAUSE&&(this.container&&document.getElementById(this.container.id)||this._log.warn(`${this.kind} player has been remove, element ID: ${(r=this.container)==null?void 0:r.id}`),this._pausedRetryCount>0&&!Ld()&&(this._log.info(`${this.kind} player auto resume when paused`),this.resume(),this._pausedRetryCount--),this.stat.fps&&(this.stat.fps=0)),this.viewMirror&&this.element){let o=this.element.style.transform;t===h.ENTER_PICTURE_IN_PICTURE?this.element.style.transform=o.replace("scaleX(-1)",""):t===h.LEAVE_PICTURE_IN_PICTURE&&!o.includes("scaleX")&&(this.element.style.transform=`${o} scaleX(-1)`)}}setCanvas(e,t=1){var r,o,n,a;this.canvas!==e&&((r=this.canvas)==null||r.remove(),e==null||e.setAttribute("style",this.styleAttribute),this.canvas=e,this.mode=e?t:0,this.mode===2&&this.setTrack(e.captureStream().getVideoTracks()[0]),e?((o=this.element)==null||o.remove(),(n=this.container)==null||n.appendChild(e)):this.element&&((a=this.container)==null||a.appendChild(this.element)))}setAttr(e){let t=Object.assign({autoplay:"autoplay",playsinline:"playsinline",muted:!0},e);t.style=Object.assign({width:"100%",height:"100%"},t.style),super.setAttr(t)}get mirror(){return this.viewMirror}setRect(e,t){this.elementToRender&&(this.elementToRender.style.width=`${e}px`,this.elementToRender.style.height=`${t}px`)}setViewMirror(e){this.elementToRender&&(this.elementToRender.style.transform=e?"scaleX(-1)":""),this.viewMirror=e}setObjectFit(e){this.elementToRender&&(this.elementToRender.style.objectFit=`${e}`),this.objectFit=e}stop(e=0){var t;super.stop(e),(t=this.canvas)==null||t.remove()}play(){return this.element?this.elementToRender&&this.elementToRender.parentElement!==this.container&&this.container&&this.container.append(this.elementToRender):this.initializeElement(),this.mode===2?Promise.resolve():super.play()}get elementToRender(){return this.canvas||this.element}setTrack(e){e!==this.track&&(this.unbindTrackEvents(),this.track=e,this.emit(pe.MEDIA_TRACK_CHANGED,e),e!==null&&(this.bindTrackEvents(),this.element&&this.mode!==2&&(this.element.srcObject=new MediaStream([e]),this.element.remove()),this.elementToRender&&this.elementToRender.parentElement!==this.container&&this.container&&this.container.append(this.elementToRender)))}getVideoFrame(){if(this.canvas)return this.canvas.toDataURL("image/png");if(!this.element)return"";let e=document.createElement("canvas");return e.width=this.element.videoWidth,e.height=this.element.videoHeight,e.getContext("2d").drawImage(this.element,0,0),e.toDataURL("image/png")}getElement(){return this.element}calculateStat(){try{if(Sr()&&this.element&&this._calculateTimeout<0){let e=0,t=null,r=(o,n)=>{this.stat.width=n.width,this.stat.height=n.height,t&&(this.stat.fps=Math.round((n.presentedFrames-t.presentedFrames)/(o-e)*1e3)),e=o,t=n,this._calculateTimeout=-1,this.element&&(this._calculateTimeout=setTimeout(()=>{var a;return(a=this.element)==null?void 0:a.requestVideoFrameCallback(r)},2e3))};this.element.requestVideoFrameCallback(r)}}catch(e){this._log.warn("init stat failed",e)}}};function Ir(s,i){return f(this,null,function*(){if(!s.audioWorklet)return Promise.reject("audioWorklet is not supported");try{yield s.audioWorklet.addModule(i),C.info("worklet addModule success")}catch(e){throw C.info(`worklet addModule catch error. ${e.message}`),e}})}var Mo;typeof AudioContext!="undefined"?Mo=AudioContext:typeof webkitAudioContext!="undefined"?Mo=webkitAudioContext:typeof mozAudioContext!="undefined"&&(Mo=mozAudioContext);var Yt,Ph=-1;xh();function xh(){try{if(Yt)return;Yt=new Mo({sampleRate:48e3}),Yt.onstatechange=()=>{C.info(`context state: ${Yt.state}${Yt.state!=="running"?` visibilityState: ${document.visibilityState}`:""}`),ms()},clearTimeout(Ph)}catch(s){C.error(`initAudioContext failed: ${s} typeof AudioContextClass: ${typeof Mo}`),Ph=setTimeout(xh,1e3)}}var ms=()=>{Yt.state==="suspended"?(wh(),document.addEventListener("click",ms)):Yt.state==="interrupted"?wh():(document.removeEventListener("visibilitychange",ms),document.removeEventListener("click",ms))},Pd=0,wd=-1;function wh(){return new Promise((s,i)=>{Date.now()-Pd<1e3?(clearTimeout(wd),wd=setTimeout(()=>{Pd=Date.now(),Yt.resume().then(s,i)},1e3)):(clearTimeout(wd),Pd=Date.now(),Yt.resume().then(s,i))}).catch(s=>{C.warn(`context resume failed: ${s}`),document.addEventListener("visibilitychange",ms)})}document.addEventListener("click",ms);var Ze=s=>Yt;var ft=class{constructor(){c(this,"node");c(this,"pre",new Set);c(this,"next",new Set);c(this,"context");c(this,"connectedNodes",new Set);c(this,"_channelCount",1)}get channelCount(){return this._channelCount}set channelCount(i){this._channelCount=i,this.node&&(this.node.channelCount=i),this.next.forEach(e=>e.channelCount=i)}setContext(i){this.context=i,this.node&&i.addMixWeight()}removeContext(){var i;this.node&&((i=this.context)==null||i.reduceMixWeight()),delete this.context}setNode(i){var e;if(!this.node)try{(e=this.context)==null||e.addMixWeight(),this.node=i,this.node.channelCountMode="explicit",this.node.channelCount=this._channelCount,this.preNodeReconnect(),this.reconnect(),N.addSuccessEvent({key:502701})}catch(t){C.error(t),N.addFailedEvent({key:502701,error:t})}}deleteNode(){var i;if(this.node)try{this._disconnect(),delete this.node,(i=this.context)==null||i.reduceMixWeight(),this.preNodeReconnect(),N.addSuccessEvent({key:502702})}catch(e){C.error(e),N.addFailedEvent({key:502702,error:e})}}preNodeReconnect(){this.pre.forEach(i=>{i.node?i.reconnect():i.preNodeReconnect()})}connectNext(i){this.next.forEach(e=>i._connect(e.node)||e.connectNext(i))}_connect(i){return!this.node||!i?!1:(this.node.connect(i),this.connectedNodes.add(i),!0)}_disconnect(){this.connectedNodes.forEach(i=>{var e;return(e=this.node)==null?void 0:e.disconnect(i)}),this.connectedNodes.clear()}reconnect(){this._disconnect(),this.connectNext(this)}pipeTo(...i){return i.forEach(e=>{this.next.add(e),e.pre.add(this)}),this}},ta=class extends ft{constructor(e=256){super();this.fftSize=e;c(this,"dataArray",new Uint8Array(0))}setNode(e){e.fftSize=this.fftSize,this.dataArray=new Uint8Array(e.frequencyBinCount),super.setNode(e)}getByteTimeDomainData(){var e;return(e=this.node)==null||e.getByteTimeDomainData(this.dataArray),this.dataArray}get level(){var e;return(e=this.node)==null||e.getByteTimeDomainData(this.dataArray),Math.max(...this.dataArray)/128-1}get timeDomainPathData(){let e=this.getByteTimeDomainData(),t=1,r=0,o=0,n=`M${r},${o}`;for(let a=0;a<e.length;a++)o=e[a]/128*100/2,n+=`L${r},${o}`,r+=t;return n}},ko=class{constructor(){c(this,"source",new ft);c(this,"gain",new ft);c(this,"destination",new ft)}get volume(){var i;return((i=this.gain.node)==null?void 0:i.gain.value)||1}setVolume(i){if(i===1){this.gain.node&&this.gain.deleteNode();return}this.gain.node||this.gain.setNode(this.source.node.context.createGain()),this.gain.node.gain.value=i}replaceSource(i){this.source.deleteNode(),this.source.setNode(xd(i))}get track(){var i;return(i=this.stream)==null?void 0:i.getAudioTracks()[0]}get stream(){var i;return(i=this.destination.node)==null?void 0:i.stream}},ps=class extends ko{constructor(e){super();this.context=e;c(this,"denoiser",new ft);this.source.pipeTo(this.denoiser.pipeTo(this.gain.pipeTo(this.destination)))}connect(){this.context.inputs.has(this)||(this.destination.setNode(this.context.destination),this.source.setContext(this.context),this.denoiser.setContext(this.context),this.gain.setContext(this.context),this.context.inputs.add(this))}disconnect(){this.context.inputs.has(this)&&(this.destination.deleteNode(),this.source.removeContext(),this.denoiser.removeContext(),this.gain.removeContext(),this.context.inputs.delete(this))}remove(){this.gain.deleteNode(),this.denoiser.deleteNode(),this.source.deleteNode(),this.disconnect()}setVolume(e){if(e===1){this.gain.node&&this.gain.deleteNode();return}this.gain.node||this.gain.setNode(this.context.audioContext.createGain()),this.gain.node.gain.value=e}},ia=class{constructor(){c(this,"audioContext",Ze("audio-mixer"));c(this,"destination",this.audioContext.createMediaStreamDestination());c(this,"inputs",new Set);c(this,"mixWeight",0)}addMixWeight(i=1){this.mixWeight+=i,this.mixWeight-1===i+1>>1&&this.mixOnChange()}reduceMixWeight(i=1){this.addMixWeight(-i)}close(){this.inputs.forEach(i=>i.remove())}get mixTrack(){return this.destination.stream.getAudioTracks()[0]}},Uh=new WeakMap;function xd(s){let i=Uh.get(s);if(i)return i;let e=Ze();if(s instanceof HTMLAudioElement)i=e.createMediaElementSource(s);else if(s instanceof MediaStreamTrack)i=e.createMediaStreamSource(new MediaStream([s]));else return s;return Uh.set(s,i),i}var ct=class ct{constructor(i){c(this,"_volume",0);c(this,"_log");c(this,"_scriptProcessorNode",null);c(this,"_audioWorkletNode",null);c(this,"_interval",200);c(this,"ready",this.preload());let{log:e}=i;this._log=e,E.on(T.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}static get isRunning(){return Date.now()-ct.lastMessageTime<2e3}get node(){return this._audioWorkletNode||this._scriptProcessorNode}preload(){if(!ct.workletReady){let i='class VolumeMeterWorklet extends AudioWorkletProcessor{constructor(){super(),this.volume=0,this.intervalTime=200,this.tick=200,this.isStop=!1,this.cache=[],this.sentFirstInfo1=!1,this.unmute=!1,this.port.onmessage=t=>{var e=t.data;switch(e.name){case"chunk":this.cache.push(...e.data),this.sentFirstInfo1||(this.port.postMessage({cl:e.data.length}),this.sentFirstInfo1=!0);break;case"setIntervalTime":this.intervalTime=e.intervalTime;break;case"unmute":this.unmute=!0;break;case"stop":this.isStop=!0}}}process(t,e){t=t[0],e=e[0];if(t||e){if(this.isStop)return!1;var s=e&&e[0]?e[0].length:0,i=this.cache.length,h=(s<i?(e[0].set(this.cache.slice(0,s)),this.cache=this.cache.slice(s)):this.unmute&&e[0].set(t[0]),(s<i?e:t)[0]);if(h){let e=0;for(let t=0;t<h.length;++t)e=Math.max(Math.abs(h[t]),e);this.volume=e,this.tick-=h.length,this.tick<0&&(this.tick+=this.intervalTime/1e3*sampleRate,this.port.postMessage({volume:this.volume,cacheLen:i,outputLen:s}))}}return!0}}registerProcessor("volume-meter",VolumeMeterWorklet);';ct.workletReady=Ir(ct.audioContext,URL.createObjectURL(new Blob([i],{type:"application/javascript"})))}return ct.workletReady.then(()=>this.initAudioWorklet()).catch(i=>(this._log.error(`volumeMeter preload error: ${i}`),this.initScriptProcessor()))}initAudioWorklet(){if(!this._audioWorkletNode)try{this._audioWorkletNode=new AudioWorkletNode(ct.audioContext,"volume-meter");let i=!1;this._audioWorkletNode.port.onmessage=e=>{ct.lastMessageTime=Date.now(),this._volume=e.data.volume||0,!i&&e.data.cacheLen&&e.data.outputLen&&(this._log.warn("worklet play success"),i=!0)},this.handleAudioLevelInterval({interval:this._interval})}catch(i){this._log.error(`volumeMeter init audio worklet error: ${i}`),ee.logFailedEvent({userId:this._log.userId,eventType:Xe.LOAD_WORKLET,error:i}),this.initScriptProcessor()}}initScriptProcessor(){if(!this._scriptProcessorNode)try{this._scriptProcessorNode=Ze("volume-meter").createScriptProcessor(2048,1,1),this._scriptProcessorNode.onaudioprocess=i=>{ct.lastMessageTime=Date.now();let e=i.inputBuffer.getChannelData(0),t=0;for(let r=0;r<e.length;++r)t+=e[r]*e[r];this._volume=Math.sqrt(t/e.length)||0}}catch(i){this._log.error(`volumeMeter init script processor error: ${i}`)}}destroy(){this._scriptProcessorNode&&(this._scriptProcessorNode.onaudioprocess=null),this._audioWorkletNode&&(this._audioWorkletNode.port.postMessage({name:"stop"}),this._audioWorkletNode.port.onmessage=null),this._audioWorkletNode=null,this._scriptProcessorNode=null,E.off(T.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}getInternalAudioLevel(){return this._volume}getCalculatedVolume(){return parseFloat(this._volume.toFixed(2))}handleAudioLevelInterval(i){var t;let{interval:e}=i;this._interval=e,(t=this._audioWorkletNode)==null||t.port.postMessage({name:"setIntervalTime",intervalTime:e})}};c(ct,"lastMessageTime",0),c(ct,"audioContext",Ze("volume-meter")),c(ct,"workletReady");var ra=ct,sa=class extends ft{constructor(e){super();c(this,"_volumeMeter");this._volumeMeter=new ra(e)}deleteNode(){super.deleteNode(),this._volumeMeter.destroy()}init(){return f(this,null,function*(){yield this._volumeMeter.preload(),this.setNode(this._volumeMeter.node)})}getCalculatedVolume(){return this._volumeMeter.getCalculatedVolume()}getInternalAudioLevel(){return this._volumeMeter.getInternalAudioLevel()}write(e){if(this.node){let t=e.allocationSize({planeIndex:0}),r=new Float32Array(t>>2);e.copyTo(r,{planeIndex:0}),this.node.port.postMessage({name:"chunk",data:r},[r.buffer]),e.close()}}},Ud=ra;var Hh=ke(Ge(),1);var Bh=s=>i=>i.deviceId===s;var Lo=class{constructor(i,e="Input"){c(this,"kind");c(this,"type");c(this,"devices",[]);this.kind=i,this.type=e}update(i,e){let t=i.filter(r=>r.kind===`${this.kind}${this.type.toLocaleLowerCase()}`);if(this.devices.length===1&&fs(this.devices[0])){this.devices=t;return}e&&(t.forEach(r=>{if(r.deviceId&&!this.devices.find(Bh(r.deviceId))){let o=`${this.kind}${this.type}Added`;C.warn(`${o}: ${JSON.stringify(r)}`),e.emit(o,r)}}),this.devices.forEach(r=>{if(r.deviceId&&!t.find(Bh(r.deviceId))){let o=`${this.kind}${this.type}Removed`;C.warn(`${o}: ${JSON.stringify(r)}`),e.emit(o,r)}})),this.devices=t}hasDevice(i){return!!this.devices.find(e=>e.deviceId===i)}},Vd=class extends Hh.EventEmitter{constructor(){super();c(this,"audioInputs",new Lo(h.AUDIO));c(this,"videoInputs",new Lo(h.VIDEO));c(this,"audioOutputs",new Lo(h.AUDIO,"Output"));this.init(),navigator.mediaDevices&&(navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",()=>this.update()),"ondevicechange"in navigator.mediaDevices||re.run(dr,()=>{this.update()},{delay:1e4}))}init(){oa().then(e=>{this.audioInputs.update(e),this.videoInputs.update(e),this.audioOutputs.update(e)})}update(){return f(this,arguments,function*(e=0){let t=yield oa(e);return this.audioInputs.update(t,this),this.videoInputs.update(t,this),this.audioOutputs.update(t,this),this})}},ye=Hs||Fr?null:new Vd;function fs(s){return s.deviceId===s.groupId&&s.groupId===""}function oa(){return f(this,arguments,function*(s=0){if(Ci()||!Xn())return[];let i=yield navigator.mediaDevices.enumerateDevices();if(s!==0){let e={audio:!1,video:!1};if(i.forEach(t=>{fs(t)&&(t.kind===h.AUDIO_INPUT?e.audio=!0:t.kind===h.VIDEO_INPUT&&(e.video=!0))}),s===2&&(e.audio=!1),s===1&&(e.video=!1),e.audio||e.video){let t;try{t=yield navigator.mediaDevices.getUserMedia(e)}catch(r){C.debug("capture before getDevices failed: ",r)}i=yield navigator.mediaDevices.enumerateDevices(),t==null||t.getTracks().forEach(r=>r.stop())}}return i.map((e,t)=>{let r={kind:e.kind,deviceId:e.deviceId,groupId:e.groupId,label:e.label||`${e.kind}_${t}`};return e.deviceId.length>0&&Bd.add(`${e.deviceId}_${e.kind}`),e.getCapabilities&&(r.getCapabilities=()=>e.getCapabilities()),r})})}function et(s=!1){return ye.update(s?1:0).then(i=>i.audioInputs.devices)}function dt(s=!1){return ye.update(s?2:0).then(i=>i.videoInputs.devices)}var Fh=!1;function $h(){return f(this,null,function*(){try{Fh||(Fh=!0,C.info(`speakers:${(yield Ki()).map(s=>` ${s.deviceId.slice(0,8)}: ${s.label}`)}`))}catch(s){}})}function Ki(s=!1){return f(this,null,function*(){return ye.update(s?1:0).then(i=>i.audioOutputs.devices)})}var Bd=new Set;function Gh(s){if(s instanceof CanvasCaptureMediaStreamTrack||!(s instanceof MediaStreamTrack))return!1;let i=s.label.toLocaleLowerCase();if(i.includes("camera")||i.includes("webcam"))return!0;let t=`${((s==null?void 0:s.getSettings())||{}).deviceId}_${h.VIDEO_INPUT}`;return!!Bd.has(t)}function Wh(s){if(s instanceof CanvasCaptureMediaStreamTrack||!(s instanceof MediaStreamTrack))return!1;let i=s.label.toLocaleLowerCase();if(i.includes("mic")||i.includes("\u9EA6\u514B\u98CE"))return!0;let t=`${((s==null?void 0:s.getSettings())||{}).deviceId}_${h.AUDIO_INPUT}`;return!!Bd.has(t)}function Fd(s,i){return f(this,null,function*(){let t=(yield et()).find(r=>r.deviceId===cr);return!i&&(t==null?void 0:t.groupId)===s||(t==null?void 0:t.groupId)===s&&t.label===i})}function Jh(o){return f(this,arguments,function*({newDeviceId:s,oldDeviceId:i,oldGroupId:e,oldLabel:t,kind:r}){return s!==i?!1:r===h.AUDIO&&s===cr?yield Fd(e,t):!0})}var na,Hd=class extends ko{constructor(e){super();this.log=e;c(this,"volumeMeter");c(this,"volumeDestination");c(this,"analyser",new ta);this.volumeMeter=new sa({log:this.log}),this.volumeDestination=new ft,this.volumeMeter.pipeTo(this.volumeDestination)}destroy(){this.gain.deleteNode(),this.volumeMeter.deleteNode(),this.analyser.deleteNode(),this.source.deleteNode(),this.destination.deleteNode(),this.volumeDestination.deleteNode()}},aa=class s extends zt{constructor(e){super(e,h.AUDIO);c(this,"_outputDeviceId");c(this,"_volume",1);c(this,"_destination",Ze("player").createMediaStreamDestination());c(this,"pipeline");c(this,"volumeMeterMode","worklet");this.mode=0,this.pipeline=new Hd(this._log)}getMediaStream(){return this.pipeline.stream||(this.track?new MediaStream([this.track]):null)}initializeElement(e){if((ji==="15.2"||ji==="15.3"||ji==="15.4")&&this.muted){this._log.info("audioElement is muted.");return}let r=na||new Audio;r.setAttribute("autoplay","autoplay"),r.srcObject=this.getMediaStream(),r.muted=this.muted,this.element=r,Y(e)&&(this.element.volume=Math.min(Math.max(e,0),1)),r===na&&(na=void 0),this.bindElementEvents()}play(e){return f(this,null,function*(){if(this.track)return this.pipeline.source.node||this.pipeline.replaceSource(this.track),this.element||this.initializeElement(e==null?void 0:e.volume),this._outputDeviceId&&(yield this.setSinkId(this._outputDeviceId)),this.volumeMeterMode==="worklet"?this.pipeline.volumeMeter.init():this.volumeMeterMode==="analyser"&&this.pipeline.analyser.setNode(Ze("player").createAnalyser()),$h(),Le(s.prototype,this,"play").call(this)})}stop(e=0){this.pipeline.destroy(),super.stop(e)}setSinkId(e){return f(this,null,function*(){var t,r;this._outputDeviceId!==e&&(this._outputDeviceId=e),this.element&&this.element.sinkId!==e&&(yield(r=(t=this.element).setSinkId)==null?void 0:r.call(t,e))})}get useDestination(){return!!this.pipeline.stream}setLoop(e){this.element&&(this.element.loop=e)}getAudioLevel(){return this.pipeline.volumeMeter.getCalculatedVolume()}getInternalAudioLevel(){return this.pipeline.volumeMeter.getInternalAudioLevel()}},ca=class extends aa{constructor(i){super(i),this.pipeline.source.pipeTo(this.pipeline.volumeMeter,this.pipeline.destination)}setTrack(i){var e;this.track!==i&&(this.unbindTrackEvents(),this.track=i,this.emit(pe.MEDIA_TRACK_CHANGED,i),i?(this.bindTrackEvents(),this.pipeline.source.channelCount=((e=i.getSettings())==null?void 0:e.channelCount)||1,this.pipeline.replaceSource(i),!this.useDestination&&this.element&&(this.element.srcObject=new MediaStream([i]))):this.pipeline.source.deleteNode())}setSourceNode(i){!i||this.pipeline.source.node===i||(this.pipeline.replaceSource(i),i instanceof MediaStreamAudioSourceNode?this.pipeline.destination.setNode(this._destination):this.pipeline.destination.deleteNode(),this.element&&(this.element.srcObject=this.getMediaStream(),this.element.play().catch(()=>{}),this.setVolume(this._volume)))}setVolume(i){this._volume=i,this.element&&(this.element.volume=i)}},da=class extends aa{constructor(e){super(e);c(this,"_sourceElement");c(this,"_output",new ft);this.pipeline.source.pipeTo(this.pipeline.gain.pipeTo(this.pipeline.volumeMeter.pipeTo(this._output),this.pipeline.destination))}setOutput(){this.mode=1,this._output.setNode(Ze("player").destination)}write(e){this.pipeline.volumeMeter.write(e)}setTrack(e){var t,r,o;((r=(t=this.element)==null?void 0:t.error)==null?void 0:r.code)!==MediaError.MEDIA_ERR_DECODE&&this.track!==e&&(this.unbindTrackEvents(),this.track=e,this.emit(pe.MEDIA_TRACK_CHANGED,e),e?(this.bindTrackEvents(),this._sourceElement?this._sourceElement.srcObject=new MediaStream([e]):!this.useDestination&&this.element&&(this.element.srcObject=new MediaStream([e])),this.pipeline.source.channelCount=((o=e.getSettings())==null?void 0:o.channelCount)||1,this.pipeline.replaceSource(e)):this.pipeline.source.deleteNode())}setVolume(e){this._volume=e,this.useDestination?(this.pipeline.setVolume(e),this._log.info(`set pipeline volume: ${e}`)):e<=1&&!xe?this.element?(this._log.info(`set element volume: ${e}`),this.element.volume=e):this._log.info("set element volume: no element"):(this._log.info(`start set pipeline volume: ${e}`),this.pipeline.setVolume(e),this.element&&!this._sourceElement&&(this.pipeline.destination.setNode(this._destination),Se(this.element),this._sourceElement=this.element,this._sourceElement.muted=!0,this.element=null,this.play()))}stop(e=0){this.pipeline.destroy();let t=this._sourceElement||this.element;t&&Ji&&(na=t),this._sourceElement&&(this._sourceElement.srcObject=null,delete this._sourceElement),super.stop(e)}};var Ar=class extends Q{constructor({userId:e,sdkAppId:t,mediaType:r,room:o,PlayerClass:n=r===1?da:at}){var a;super();c(this,"id",mo());c(this,"userId","");c(this,"isRemote");c(this,"mediaType");c(this,"room");c(this,"user");c(this,"_log");c(this,"_inputTrack");c(this,"_outputTrack");c(this,"isPlayCalled");c(this,"container",null);c(this,"player");c(this,"subVideoPlayerMap");c(this,"muted",!1);c(this,"abortCtrl");c(this,"objectFit","cover");c(this,"mirror");c(this,"isScreen",!1);c(this,"manager");c(this,"trackSettings");this.userId=e||"",this.mediaType=r,this._log=C.createLogger({id:`${this.kind[0]}t`,userId:(a=o||this.room)==null?void 0:a.userId,remoteUserId:this instanceof bi?void 0:this.userId,sdkAppId:t,type:this.mediaType===2?"auxiliary":"main",isLocal:this instanceof bi}),this.player=new n({id:this.userId||this.id,track:null,muted:!1,container:null,log:this._log}),this.player.on(pe.PLAYER_STATE_CHANGED,d=>{E.emit(T.PLAYER_STATE_CHANGED,v({track:this},d)),this.emit("player-state-changed",d)}),this.kind===h.VIDEO&&(this.player.on(pe.LOADED_DATA,()=>{E.emit(T.VIDEO_LOADED_DATA,{track:this})}),this.player.on(pe.LOADED_META_DATA,()=>{var l,m,u;let d=(l=this.mediaTrack)==null?void 0:l.getSettings();this.emit("first-video-frame",{width:(d==null?void 0:d.width)||((m=this.player.element)==null?void 0:m.videoWidth)||0,height:(d==null?void 0:d.height)||((u=this.player.element)==null?void 0:u.videoHeight)||0,streamType:this.streamType,userId:this.isRemote?this.userId:""})}),this.player.on(pe.MEDIA_TRACK_CHANGED,d=>{var l;(l=this.subVideoPlayerMap)==null||l.forEach(m=>m.setTrack(d))})),this.onTrackMuted=this.onTrackMuted.bind(this),this.onTrackUnmuted=this.onTrackUnmuted.bind(this),this.onTrackEnded=this.onTrackEnded.bind(this),this.onPlayerError&&this.player.on(pe.ERROR,this.onPlayerError.bind(this))}get log(){return this._log||C}get kind(){return this.mediaType===1?h.AUDIO:h.VIDEO}get strMediaType(){return this.mediaType===4?h.VIDEO:this.mediaType===2?h.SCREEN:h.AUDIO}get streamType(){return(this.mediaType&2)===0?"main":"auxiliary"}get isMediaTrackActive(){return this.mediaTrack?!this.mediaTrack.muted&&this.mediaTrack.readyState==="live"&&this.mediaTrack.enabled:!1}play(e,t){return f(this,null,function*(){let r=Te(e)?e[0]:e;if(this.isPlayCalled){this.log.info(`play update options: ${JSON.stringify(t)}`),t&&!g(t.muted)&&this.setPlayerMute(t.muted),t&&!g(t.objectFit)&&(this.objectFit=t.objectFit),this.player instanceof at&&(this.player.setObjectFit(this.objectFit),this.container!==r&&r&&(this.container=r,this.player.setContainer(r)),Te(e)&&e.length>=1&&(yield this.playSubContainer(e.slice(1),t)));return}if(t&&!g(t.muted)?this.setPlayerMute(t.muted):(!this.isRemote||this.kind===h.VIDEO)&&this.setPlayerMute(!0),t&&!g(t.objectFit)&&(this.objectFit=t.objectFit),this.player instanceof at&&this.player.setObjectFit(this.objectFit),this.isPlayCalled=!0,r&&(this.container=r,this.player instanceof at&&this.player.setContainer(r)),E.emit(T.PLAY_TRACK_START,{track:this}),!this._outputTrack){this.log.info("play has not mediaTrack, abort");return}this._log.info(`play with options: ${JSON.stringify(t)}`);try{this.player.setTrack(this.playerMediaTrack),yield this.player.play(t),Te(e)&&e.length>1&&(yield this.playSubContainer(e.slice(1),t))}catch(o){throw this.handleAutoPlayFailed(o),o}})}setMirror(e,t){if(this.isScreen||this.kind!==h.VIDEO||g(e)||e===this.mirror)return;this.mirror=e;let r=this.player;t&&(r=t);let o=this.manager;if(he(this.mirror)){r.setViewMirror(this.mirror),o&&(o.mirror=!1);return}switch(this.mirror){case"view":{o&&(o.mirror=!1),r.setViewMirror(!0);break}case"publish":{o&&(o.mirror=!0),r.setViewMirror(!0);break}case"both":o&&(o.mirror=!0),r.setViewMirror(!1)}}playSubContainer(e,t){return f(this,null,function*(){if(!this._outputTrack||this.kind===h.AUDIO)return;this.subVideoPlayerMap||(this.subVideoPlayerMap=new Map),this.subVideoPlayerMap.forEach((o,n)=>{var a;e.find(d=>n===d)||(o.stop(),(a=this.subVideoPlayerMap)==null||a.delete(n))});for(let[o,n]of e.entries()){let a=this.subVideoPlayerMap.get(n);a?t&&(g(t.objectFit)||a.setObjectFit(t.objectFit)):this.subVideoPlayerMap.set(n,new at({id:this.userId||this.id,track:this.playerMediaTrack,container:n,muted:this.player.muted,objectFit:this.objectFit,log:this.log.createChild({id:`vp-sub${o+1}`})}))}let r=[...this.subVideoPlayerMap.values()];for(let o of r)o.setViewMirror(this.player.mirror),yield o.play()})}setAudioOutput(e){return this.player.setSinkId(e)}setAudioVolume(e){this.player.setVolume(e)}getAudioLevel(){return this.player.getAudioLevel()||0}getInternalAudioLevel(){var e;return((e=this.player)==null?void 0:e.getInternalAudioLevel())||0}stop(e=!1){this.isPlayCalled&&(this.isPlayCalled=!1,this.player&&(this.log.info(`stop ${this.kind} player`),this.player.stop(Pc(this)&&!e?this.jitterBufferDelay:0)),this.subVideoPlayerMap&&this.subVideoPlayerMap.size>0&&this.subVideoPlayerMap.forEach(t=>{t.stop()}),this.container=null)}resume(){return f(this,null,function*(){var e;this.isPlayCalled&&(yield(e=this.player)==null?void 0:e.resume())})}close(){this.log.info("close"),this.isPlayCalled&&this.stop(!0)}setMute(e){this.muted=e,this._inputTrack&&(this._inputTrack.enabled=!e),this._outputTrack&&(this._outputTrack.enabled=!e),this.emit(e?"mute":"unmute",this),E.emit(e?T.TRACK_MUTED:T.TRACK_UNMUTED,{track:this})}setPlayerMute(e){this.player.setMuted(e)}get mediaTrack(){return this._inputTrack||null}get outMediaTrack(){return this._outputTrack||null}get playerMediaTrack(){return this.outMediaTrack}installTrackEvent(e){Ue(e,e).add(h.MUTE,this.onTrackMuted).add(h.UNMUTE,this.onTrackUnmuted).add(h.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===h.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){Se(e)}setInputMediaStreamTrack(e){var r;let t=this._inputTrack;if(e!==t)return this._inputTrack=e,this.trackSettings=(r=e.getSettings)==null?void 0:r.call(e),e.enabled=!this.muted,t&&this.uninstallTrackEvent(t),this.installTrackEvent(e),this.emit("input-media-track-changed",e||null,t||null),this.manager?this.manager.changeInput(this):this.setOutputMediaStreamTrack(e)}setOutputMediaStreamTrack(e){var r;let t=this._outputTrack;e!==t&&(this.isRemote?this.log.debug("setOutputMediaStreamTrack",e.label):this.log.info("setOutputMediaStreamTrack",(r=e.getSettings)==null?void 0:r.call(e).deviceId,e.label),this._outputTrack=e,this._inputTrack&&(this._outputTrack.contentHint=this._inputTrack.contentHint,this._outputTrack.enabled=this._inputTrack.enabled),this.updatePlayingState(!!e),this.emit("output-media-track-changed",e))}setMediaType(e){this.mediaType=e}updatePlayingState(e){if(this.isPlayCalled){if(e){if(this.player.setTrack(this.playerMediaTrack),this.player.isStopped){this.player.play().catch(t=>this.handleAutoPlayFailed(t)),this.log.info(`playing state updated, play ${this.kind}`);return}}else if(!this.player.isStopped){this.player.stop(Pc(this)?this.jitterBufferDelay:0),this.log.info(`playing state updated, stop ${this.kind}`);return}}this.log.debug(`updatePlayingState abort ${this.isPlayCalled} ${e} ${this.player.isStopped}`)}handleAutoPlayFailed(e){if(this.room&&this.room.enableAutoPlayDialog)new Lh;else{let t=()=>{this.resume().then(()=>{document.removeEventListener("click",t,!0)})};document.addEventListener("click",t,!0)}this.emit("error",e)}getVideoFrame(){return this.player instanceof at?this.player.getVideoFrame():""}onTrackMuted(){this._log.warn(`${this.kind} track is unable to provide media output`)}onTrackUnmuted(){this._log.info(`${this.kind} track is able to provide media output`)}onTrackEnded(){this._log.warn(`${this.kind} track ended`)}};y([de([],Q.INIT,{sync:!0})],Ar.prototype,"close",1);var l_=Object.prototype.hasOwnProperty,{toString:BA}=Object.prototype;function u_(s){if(s==null)return!0;if(typeof s=="boolean")return!1;if(typeof s=="number")return s===0;if(typeof s=="string"||typeof s=="function"||Array.isArray(s))return s.length===0;if(s instanceof Error)return s.message==="";if(Qe(s))switch(Object.prototype.toString.call(s)){case"[object File]":case"[object Map]":case"[object Set]":return s.size===0;case"[object Object]":{for(let i in s)if(l_.call(s,i))return!1;return!0}}return!1}var Kt=u_;var h_=function(s){return f(this,null,function*(){let i=p_(s);C.info(`getUserMedia with constraints: ${JSON.stringify(i)}`);let e=[],t=[],r=["label","deviceId","groupId"];i.audio&&(e=yield et(),C.info(`microphones: ${ht(e.map(o=>k(v({},o),{groupId:o.groupId.substring(0,8)})),{keysToInclude:r})}`)),i.video&&(t=yield dt(),C.info(`cameras: ${ht(t,{keysToInclude:r})}`));try{let o=yield navigator.mediaDevices.getUserMedia(i);return Id&&o.getTracks().forEach(n=>{C.info(`${n.kind} capabilities: ${ht(n.getCapabilities(),{keysToInclude:gn})}`)}),o}catch(o){let{message:n}=o;throw o.name==="NotFoundError"&&(s.video&&t&&t.length===0&&(n=U({key:x.CAMERA_NOT_FOUND})),s.audio&&e&&e.length===0&&(n=U({key:x.MICROPHONE_NOT_FOUND}))),new b({code:S.INITIALIZE_FAILED,name:o.name,message:n,constraint:o.constraint})}})},m_=Gt({retryFunction:h_,settings:{retries:3,timeout:500},onError:({error:s,retry:i,reject:e,retryFuncArgs:t,retriedCount:r})=>{let o=r+1;s.name==="NotReadableError"||s.name==="OverconstrainedError"?(o===1?(t[0].video&&(t[0].maxResolution=!1,(!ze||t[0].width*t[0].height<=1920*1080)&&t[0].frameRate&&(t[0].frameRate=t[0].frameRate>10?10:5)),t[0].retryWhenExactFailed&&t[0].useExactDeviceId&&(t[0].useExactDeviceId=!1)):o===2?t[0].useDeviceIdOnly=!0:o===3&&!t[0].useExactDeviceId&&(t[0].useTrueAsConstraint=!0),i()):e(s),t[0].microphoneId&&qh(t[0].microphoneId,!1),t[0].cameraId&&qh(t[0].cameraId,!0)},onRetrying:s=>{C.warn(`getUserMedia NotReadableError observed, retrying [${s}/3]`)},onRetryFailed:s=>{ee.logFailedEvent({eventType:Xe.GET_USER_MEDIA_RETRY,error:s})},onRetrySuccess:s=>{ee.logSuccessEvent({eventType:Xe.GET_USER_MEDIA_RETRY}),ee.uploadEvent({log:`stat-${Xe.GET_USER_MEDIA_RETRY}-success-${s}`})}});function qh(s,i){return f(this,null,function*(){let t=(i?yield dt():yield et()).find(r=>r.deviceId===s);t&&se(t.getCapabilities)&&C.warn(ht(t.getCapabilities(),{keysToInclude:gn}))})}function p_(s){return{audio:f_(s),video:__(s)}}function f_(s){if(!s.audio)return!1;if(s.useTrueAsConstraint)return!0;let i={echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:s.sampleRate};return!Kt(s.microphoneId)&&(i.deviceId=s.useExactDeviceId?{exact:s.microphoneId}:s.microphoneId,s.useDeviceIdOnly)?i:(Y(s.channelCount)&&(i.channelCount=s.channelCount),he(s.echoCancellation)&&!s.echoCancellation&&(i.echoCancellation=!1),he(s.noiseSuppression)&&!s.noiseSuppression&&(i.noiseSuppression=!1),he(s.autoGainControl)&&!s.autoGainControl&&(i.autoGainControl=!1),Kt(i)?!0:i)}function __(s){if(!s.video)return!1;if(s.useTrueAsConstraint)return!0;let{maxResolution:i=!0}=s,e={};return s.cameraId?e.deviceId=s.useExactDeviceId?{exact:s.cameraId}:s.cameraId:s.facingMode&&(e.facingMode=s.facingMode),s.useDeviceIdOnly&&!Kt(e)?e:(s.width&&(e.width={ideal:s.width},i&&!ae&&(e.width.max=s.width)),s.height&&(e.height={ideal:s.height},i&&!ae&&(e.height.max=s.height)),ae&&Nt&&s.width&&s.height&&s.width*s.height<352*288&&(e.width=s.width,e.height=s.height),s.frameRate&&(e.frameRate=s.frameRate),Kt(e)?!0:e)}var jh=m_;function la(s){return J((i,e)=>function(...t){return f(this,null,function*(){return yield s.apply(this,t),i.apply(this,t)})})}function Je(s){return J((i,e)=>function(...t){return f(this,null,function*(){let r=yield i.apply(this,t);return yield s.call(this,...t),r})})}function ua(s){return J((i,e)=>function(...t){return f(this,null,function*(){try{return yield i.apply(this,t)}catch(r){s.call(this,r)}})})}function J(s){return function(i,e,t){return t.value=s(t.value,e),t}}var Xh=(()=>{let s=!1,i=document.visibilityState;return()=>{document.visibilityState!==i&&C.info(`visibility change: ${document.visibilityState}`),!s&&(document.addEventListener("visibilitychange",()=>{C.info(`visibility change: ${document.visibilityState}`),i=document.visibilityState}),s=!0)}})();var g_=0,ha=class{constructor(){c(this,"log",C.createLogger({id:`fq${++g_}`}));c(this,"isRunning",!1);c(this,"queue",[])}get length(){return this.queue.length}get lastQueueItem(){return this.length===0?null:this.queue[this.length-1]}push(i,e=!1){var o,n;let t=v({},i),r=new Promise((a,d)=>{t.resolve=a,t.reject=d});return t.promise=r,e?this.length<=1?this.queue.push(t):(n=(o=this.lastQueueItem)==null?void 0:o.promise)==null||n.then(t.resolve,t.reject):this.queue.push(t),this.log.debug(`push ${this.length}`),this.isRunning||this.callNext(),r}shift(){let i=this.queue.shift();return this.log.debug(`shift ${this.length}`),i}callNext(){if(this.isRunning||this.length===0)return;this.log.debug("callNext ",this.length);let{fn:i,args:e,context:t,resolve:r,reject:o}=this.queue[0];this.isRunning=!0,i.apply(t,e).then(r,o).finally(()=>{this.isRunning=!1,this.shift(),this.callNext()})}},Po=new WeakMap,ma=new WeakMap;function Zt(s=!1){return function(i,e,t){let r=t.value;return t.value=function(...o){let n=Po.get(this)||new ha;return Po.set(this,n),n.push({fn:r,args:o,context:this},s)},t}}function Qh(s){return function(i,e,t){let r=t.value;return t.value=function(...o){let n=Po.get(this);if(n){let a=n.queue.filter((d,l)=>{if(l===0)return!0;let m=!0;return d.args.forEach(u=>{o.find(p=>p===u)||(m=!1)}),m?(d.reject(new b({code:S.API_CALL_ABORTED,message:s})),!1):!0});n.queue=a}return r.apply(this,o)},t}}function pa(s){return function(i,e,t){let r=t.value;return t.value=function(...o){var a,d,l;let n=[];return(d=(a=Po.get(this))==null?void 0:a.queue)==null||d.forEach(m=>n.push(m)),(l=ma.get(this))==null||l.forEach(m=>m==null?void 0:m.queue.forEach(u=>n.push(u))),n.forEach(m=>{m.reject(new b({code:S.API_CALL_ABORTED,message:s}))}),Po.delete(this),ma.delete(this),r.apply(this,o)},t}}function Ni(s){return function(i,e,t){let r=t.value,o=n=>s(...n);return t.value=function(...n){let a=ma.get(this)||new Map,d=a.get(o(n))||new ha;return a.set(o(n),d),ma.set(this,a),d.push({fn:r,args:n,context:this})},t}}function tt(s,i){return J((e,t)=>function(...r){let o=s;try{let n=e.apply(this,r),a=L();return Wi(n)?n.then(d=>(i?N.addSuccessEvent({key:o,cost:L()-a}):N.addSuccessEvent({key:o}),d)).catch(d=>{throw N.addFailedEvent({key:o,error:d}),d}):(N.addSuccessEvent({key:o}),n)}catch(n){throw N.addFailedEvent({key:o,error:n}),n}})}var Cr=class Cr extends Ar{constructor(e,t){super({mediaType:e,PlayerClass:t});c(this,"isRemote",!1);c(this,"deviceId");c(this,"groupId","");c(this,"label","");c(this,"_isRecapturing",!1);c(this,"_lastRecaptureTime",0);c(this,"_onMuteTimeoutId",-1);c(this,"_encodeCheckTimeoutId",-1);c(this,"profile")}get enableEncodeFrame(){return!1}get isPublishing(){return this.state.toString()==="publishing"}get isPublished(){return this.state==="publish"}encodeFrame(e,t){throw new Error("Method not implemented.")}installTrackEvent(e){Ue(e,e).add(h.MUTE,this.onTrackMuted).add(h.UNMUTE,this.onTrackUnmuted).add(h.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===h.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){Se(e)}setStateToCapture(){}capture(e){return f(this,null,function*(){var t;try{let r=L();E.emit(T.LOCAL_TRACK_CAPTURE_START,{track:this});let o;e.customSource?(o=new MediaStream,o.addTrack(e.customSource)):((t=this.mediaTrack)==null||t.stop(),o=yield jh(e));let n=o.getTracks()[0];return yield this.setInputMediaStreamTrack(n),e.customSource||(this.updateDeviceIdInUse(),this.listenDeviceChange()),E.emit(T.LOCAL_TRACK_CAPTURE_SUCCESS,{track:this,cost:L()-r}),o}catch(r){throw E.emit(T.LOCAL_TRACK_CAPTURE_FAILED,{track:this,error:r}),this.log.error(`getUserMedia error observed ${r}`),r}})}setInputMediaStreamTrack(e){return this.state===Q.INIT&&this.setStateToCapture(),super.setInputMediaStreamTrack(e)}setOutputMediaStreamTrack(e){var t;if(super.setOutputMediaStreamTrack(e),this.isPublishing||this.isPublished)return(t=this.room)==null?void 0:t.replaceTrack(this)}publish(e,t){return this.room=e,this.emit("4",{mediaType:this.strMediaType,state:"starting",prevState:"stopped"}),this.userId=e.userId,this._log.setUserId(e.userId),this._log.setSdkAppId(e.sdkAppId),t}unpublish(){this.room&&this.room.localTracks.delete(this),E.emit(T.LOCAL_TRACK_UNPUBLISHED,{track:this})}updateDeviceIdInUse(){return f(this,null,function*(){if(this.mediaTrack&&qt){let{deviceId:e,groupId:t}=this.mediaTrack.getSettings(),{label:r}=this.mediaTrack;(yield Jh({newDeviceId:e,oldDeviceId:this.deviceId,oldGroupId:this.groupId,oldLabel:this.label,kind:this.kind}))||(this.deviceId=e,this.label=r,t&&(this.groupId=t),oa().then(n=>{let a=n.find(d=>d.deviceId===e);a&&this.emit("2",a)}))}})}setProfile(e){this.log.info("setProfile",e),Object.assign(this.profile,e)}isNeedToRecapture(e=!1){return!(!this.deviceId||!this.mediaTrack||this.kind===h.AUDIO&&!Wh(this.mediaTrack)||this.kind===h.VIDEO&&!Gh(this.mediaTrack)||this._isRecapturing||e&&Nt&&ze)}onTrackMuted(){if(super.onTrackMuted(),Xh(),!!this.isNeedToRecapture(!0)){if(Date.now()-this._lastRecaptureTime<Gr){setTimeout(()=>this.onTrackMuted(),Gr);return}this._onMuteTimeoutId=setTimeout(()=>f(this,null,function*(){var e;if((e=this.mediaTrack)!=null&&e.muted){if((xe||me)&&document.visibilityState!=="visible")return;this.recapture(yield this.getRecoverCaptureDeviceId())}}),5e3)}}onTrackUnmuted(){super.onTrackUnmuted(),this._onMuteTimeoutId>0&&clearTimeout(this._onMuteTimeoutId)}onTrackEnded(){return f(this,null,function*(){if(Le(Cr.prototype,this,"onTrackEnded").call(this),!!this.isNeedToRecapture()){if(Date.now()-this._lastRecaptureTime<Gr){setTimeout(()=>this.onTrackEnded(),Gr);return}this.recapture(yield this.getRecoverCaptureDeviceId())}})}recapture(e){return f(this,null,function*(){var r;if(this._isRecapturing||!this._inputTrack)return;this.log.warn("recapture trying"),(r=this._inputTrack)==null||r.stop(),this._isRecapturing=!0,this._lastRecaptureTime=Date.now();let t={useExactDeviceId:!0};if(e==="user"||e==="environment")t.facingMode=e;else{let o;(this.kind==="audio"?yield et():yield dt()).find(a=>a.deviceId===e)&&(o=e),t.deviceId=o}return this.capture(t).then(()=>{this._isRecapturing=!1,this.log.warn("recapture success"),this.emit("1",{deviceId:this.deviceId}),E.emit(T.LOCAL_TRACK_RECAPTURE,{track:this})}).catch(o=>{this._isRecapturing=!1,this.log.warn(`recapture failed ${o.message}`),this.emit("5",o),E.emit(T.LOCAL_TRACK_RECAPTURE,{track:this,error:o})})})}getRecoverCaptureDeviceId(){return f(this,null,function*(){let e=this instanceof Ve;if(e&&this.facingMode)return this.facingMode;let{deviceId:t}=this;if(t){let r=(wo.get(t)||0)+1;if(wo.set(t,r),r>=3){let o=e?(yield dt()).find(n=>!wo.has(n.deviceId)):(yield et()).find(n=>!wo.has(n.deviceId));o&&(this.log.warn(`${t} capture fail ${r} times, change new ${o.deviceId}`),t=o.deviceId)}}return t})}close(){var e;super.close(),this._inputTrack&&(this._inputTrack.stop(),this.uninstallTrackEvent(this._inputTrack)),(e=this.manager)==null||e.removeInput(this)}};y([de(Q.INIT,"capture",{ignoreError:!0,sync:!0})],Cr.prototype,"setStateToCapture",1),y([Zt()],Cr.prototype,"capture",1),y([de("capture","publish",{ignoreError:!0,success(){var t,r;this.room.localTracks.add(this),E.emit(T.LOCAL_TRACK_PUBLISHED,{track:this}),this.emit("4",{mediaType:this.strMediaType,state:"started",prevState:"starting"}),!((((r=(t=this.room)==null?void 0:t.networkQuality)==null?void 0:r.uplinkNetworkQuality)||0)>3)&&(this._encodeCheckTimeoutId=setTimeout(()=>{var n,a;if(!((((a=(n=this.room)==null?void 0:n.networkQuality)==null?void 0:a.uplinkNetworkQuality)||0)>3)&&this.isPublished&&this.isMediaTrackActive){let d=this.kind===h.AUDIO,l=this.stat.bytesSent>0;N[l?"addSuccessEvent":"addFailedEvent"]({key:d?503700:513702}),l||(N.addEnum({key:d?503701:513703,value:ho()}),ee.uploadEvent({log:`stat-encode-failed-${this.kind}-${pr()||Ti()}`,userId:this.userId}),this.log.warn("encode failed"),this.emit("6",this))}},5e3))},fail(e){let t="error";if(e.cause instanceof RTCError){let r=e.cause;r.message.includes("timeout")?t="timeout":r.code===S.API_CALL_ABORTED&&(t="api-call")}this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:"starting",reason:t,error:e.cause||e})}}),tt(521714,!1)],Cr.prototype,"publish",1),y([J(e=>function(){return f(this,null,function*(){let t=this.state==="publish"?"started":"starting";e.call(this),this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:t,reason:"api-call"}),clearTimeout(this._encodeCheckTimeoutId)})}),de([],"capture",{sync:!0})],Cr.prototype,"unpublish",1);var bi=Cr,wo=new Map;E.on(T.SWITCH_DEVICE_SUCCESS,s=>{s.track.deviceId&&wo.delete(s.track.deviceId)});var _t=class s extends bi{constructor(e){super(1,ca);c(this,"mediaType",1);c(this,"volume",0);c(this,"profile",{echoCancellation:!0,autoGainControl:!0,noiseSuppression:!0,sampleRate:48e3,channelCount:1,bitrate:40});c(this,"playerMuted",!0);c(this,"pipeline");c(this,"stat",{bytesSent:0,packetsSent:0,audioLevel:0,totalAudioEnergy:0});this.manager=e,this.pipeline=new ps(e),this.handleMicrophoneAdded=this.handleMicrophoneAdded.bind(this),this.handleMicrophoneRemoved=this.handleMicrophoneRemoved.bind(this)}getAudioLevel(){let e=(this.volume||super.getAudioLevel())*this.captureVolume;return e>1?1:e}get playerMediaTrack(){return this.mediaTrack}setInputMediaStreamTrack(e){return f(this,null,function*(){let t=this.trackSettings||{};N.addEnum({key:501701,value:t.channelCount||0,useUV:!1}),N.addEnum({key:501702,value:t.sampleRate||0,useUV:!1}),N.addEnum({key:502700,value:0});let{sampleRate:r,channelCount:o}=t;this._log.info(`local audio track input ${JSON.stringify({sampleRate:r,channelCount:o})}`),this.pipeline.source.channelCount=o||1,this.pipeline.replaceSource(e),yield Le(s.prototype,this,"setInputMediaStreamTrack").call(this,e),this.updatePlayingState(!!e)})}capture({deviceId:e,customSource:t,useExactDeviceId:r=!0,retryWhenExactFailed:o=!0}){return super.capture({video:!1,audio:!0,microphoneId:e,echoCancellation:this.profile.echoCancellation,autoGainControl:this.profile.autoGainControl,noiseSuppression:this.profile.noiseSuppression,sampleRate:this.profile.sampleRate,channelCount:this.profile.channelCount,useExactDeviceId:r,retryWhenExactFailed:o,customSource:t})}switchDevice(e){return f(this,null,function*(){if(this.mediaTrack){if(this.deviceId===e)if(e===cr){if(yield Fd(this.groupId,this.label))return}else return;try{this.log.info(`switchDevice audio to: ${e}`),this.mediaTrack&&this.mediaTrack.stop(),yield this.capture({deviceId:e,useExactDeviceId:!0,retryWhenExactFailed:!1}),E.emit(T.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch microphone success")}catch(t){throw this.log.error(`switch microphone failed ${t}`),this.deviceId&&this.recapture(this.deviceId),t}}})}listenDeviceChange(){ye&&!ye.listeners("audioInputRemoved").includes(this.handleMicrophoneRemoved)&&ye.on("audioInputRemoved",this.handleMicrophoneRemoved,this)}handleMicrophoneRemoved(e){return f(this,null,function*(){if(e.deviceId===this.deviceId){this.log.warn(`current microphone is lost: ${JSON.stringify(e)}`),ue(this.userId,{eventId:2003,param1:6,streamType:1});let t=yield et();t[0]?this.recapture(t[0].deviceId):ye.on("audioInputAdded",this.handleMicrophoneAdded,this)}})}handleMicrophoneAdded(e){this.log.warn(`microphone added: ${JSON.stringify(e)}`),this.recapture(e.deviceId)}update3A(o){return f(this,arguments,function*({echoCancellation:e,noiseSuppression:t,autoGainControl:r}){let n=!1;!g(e)&&e!==this.profile.echoCancellation&&(this.profile.echoCancellation=e,n=!0),!g(t)&&t!==this.profile.noiseSuppression&&(this.profile.noiseSuppression=t,n=!0),!g(r)&&r!==this.profile.autoGainControl&&(this.profile.autoGainControl=r,n=!0),n&&this.deviceId&&(yield this.recapture(this.deviceId))})}get captureVolume(){return this.pipeline.volume}setCaptureVolume(e){this.pipeline.setVolume(e/100),this.pipeline.gain.node&&N.addEnum({key:502700,value:2}),this.resetPlayerSource()}enableTrackANS(e){if(!this._inputTrack)return;let t=this._inputTrack.getConstraints();return t.noiseSuppression=e,this._inputTrack.applyConstraints(t).catch(r=>this._log.warn(`${e?"enable":"disable"} ANS failed `,r))}addDenoiser(e){var t;if(Dt<=92&&((t=this.trackSettings)==null?void 0:t.sampleRate)!==48e3){this._log.warn("denoiser only support sampleRate 48000 before chrome 93");return}N.addEnum({key:502700,value:1}),this.pipeline.denoiser.setNode(e),this.resetPlayerSource(),this.enableTrackANS(!1)}removeDenoiser(e){this.pipeline.denoiser.node===e&&(this.pipeline.denoiser.deleteNode(),this.resetPlayerSource(),this.enableTrackANS(!0))}resetPlayerSource(){this.player.setSourceNode(this.pipeline.gain.node||this.pipeline.denoiser.node||this.pipeline.source.node)}close(){this.pipeline.remove(),ye.off("audioInputAdded",this.handleMicrophoneAdded,this),ye.off("audioInputRemoved",this.handleMicrophoneRemoved,this),super.close()}recapture(e){return f(this,null,function*(){try{yield Le(s.prototype,this,"recapture").call(this,e)}catch(t){let r=(yield et()).find(o=>o.deviceId!==e);if(r)yield Le(s.prototype,this,"recapture").call(this,r.deviceId);else throw t}})}encodeFrame(e){return this.manager?this.manager.encodePipeline.reduceRight((t,r)=>r?r({frame:t}):t,e):e}get enableEncodeFrame(){return this.manager?this.manager.encodePipeline.some(e=>e):!1}};var vi=class{constructor(i,e=!1){this.dataView=i;this.isSEI&&(e?this.addPreventionByte():this.removePreventionByte())}addPreventionByte(){let i=this.seiPayloadStartIndex,e=this.dataView.byteLength-2,t=[],r=0;for(let n=i;n<=e;n++){let a=this.dataView.getInt8(n);switch(a){case 0:case 1:case 2:case 3:r===2&&(t.push(3),r=0),a==0?r++:r=0,t.push(a);break;default:r=0,t.push(a);break}}t.push(this.dataView.getInt8(this.dataView.byteLength-1));let o=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,i),...t]).buffer);this.dataView=o}removePreventionByte(){let i=this.seiPayloadStartIndex,e=this.dataView.byteLength-1,t=[],r=0;for(let n=i;n<=e;n++)switch(this.dataView.getInt8(n)){case 0:r++,t.push(this.dataView.getInt8(n));break;case 3:r!==2&&t.push(this.dataView.getInt8(n)),r=0;break;default:t.push(this.dataView.getInt8(n)),r=0;break}let o=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,i),...t]).buffer);this.dataView=o}get isSEI(){return this.dataView.getUint8(4)===6}get seiPayloadStartIndex(){let i=6;for(let e=6;e<this.dataView.buffer.byteLength&&(i++,this.dataView.getUint8(e)===255);e++);return i}get seiPayloadType(){return this.isSEI?this.dataView.getUint8(5):null}get seiPayload(){if(!this.isSEI)return null;let i=0,e=6;for(let o=6;o<this.dataView.buffer.byteLength;o++){let n=this.dataView.getUint8(o);if(e++,n===255)i+=255;else{i+=n;break}}let t=new ArrayBuffer(i),r=new DataView(t);for(let o=0;o<t.byteLength;o++,e++)r.setInt8(o,this.dataView.getInt8(e));return r}};var fa=class{constructor(){c(this,"_seiMessageList",[]);c(this,"_smallSeiMessageList",[]);c(this,"_seiPayloadType",243)}encodeSEINalu(i){let e=i.byteLength,t=parseInt(String(e/255),10),r=e%255,o=[];o.push(0,0,0,1,6,this._seiPayloadType);for(let a=0;a<t;a++)o.push(255);o.push(r);let n=new DataView(i);return o.push(...new Uint8Array(n.buffer)),o.push(128),new vi(new DataView(new Uint8Array(o).buffer),!0)}sendSEI(i,e){e!=null&&e.seiPayloadType&&(this._seiPayloadType=e.seiPayloadType),this._seiMessageList.push(i),e!=null&&e.small&&this._smallSeiMessageList.push(i)}isEmpty(){return!this._seiMessageList.length}getNaluCount(i){let e=0,t=0,r=new DataView(i);for(let o=0;o<i.byteLength;o++)switch(r.getUint8(o)){case 0:e++;break;case 1:(e===2||e===3)&&t++,e=0;break;default:e=0;break}return t}encode(i,e){let t=e?this._smallSeiMessageList:this._seiMessageList;if(t.length>0&&i.data.byteLength>0){let o=9-this.getNaluCount(i.data);if(o<=0)return 0;let n=t.splice(0,o).reverse().map(this.encodeSEINalu.bind(this)),a=n.reduce((p,_)=>p+_.dataView.byteLength,0),d=new ArrayBuffer(a+i.data.byteLength),l=new DataView(d),m=new DataView(i.data),u=0;for(let p=0;p<n.length;p++)for(let _=0;_<n[p].dataView.byteLength;_++)l.setInt8(u++,n[p].dataView.getInt8(_));for(let p=0;p<i.data.byteLength;p++)l.setInt8(u++,m.getInt8(p));return i.data=d,n.length}return 0}};var Rr=class Rr extends bi{constructor(e,t=4){super(t,at);c(this,"profile",{width:640,height:480,frameRate:15,bitrate:500});c(this,"stat",{bytesSent:0,packetsSent:0,framesEncoded:0,framesSent:0,frameWidth:0,frameHeight:0,fpsCapture:0});c(this,"small");c(this,"isNeedToSetBandwidth");c(this,"muteImage");c(this,"manager");c(this,"_seiCodec",new fa);this.manager=e;let r=()=>{this.isAllowed2k4k(this.profile)?this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1}):(this.log.warn("Resolution is reset to 1080p, need to upgrade ability here https://cloud.tencent.com/document/product/647/85386"),this.setProfile(k(v({},this.profile),{width:1920,height:1080})),this.applyProfile())};this.on("input-media-track-changed",r),this.on("publish",r),this.handleCameraAdded=this.handleCameraAdded.bind(this),this.handleCameraRemoved=this.handleCameraRemoved.bind(this)}get facingMode(){if(!(!qt||!this.mediaTrack))return this.mediaTrack.getSettings().facingMode}get isQosClearFirst(){var e;return((e=this._inputTrack)==null?void 0:e.contentHint)==="detail"}setMute(e){return f(this,null,function*(){var t,r,o;if(K(e)){if(this.muteImage===e)return;yield(t=this.manager)==null?void 0:t.deleteWatermark("mute"),yield(r=this.manager)==null?void 0:r.setWatermark({x:0,y:0,width:this.settings.width,height:this.settings.height,type:"mute",zIndex:999,imageUrl:e}),this.muteImage=e,Le(Rr.prototype,this,"setMute").call(this,!1)}else yield(o=this.manager)==null?void 0:o.deleteWatermark("mute"),this.muteImage=void 0,Le(Rr.prototype,this,"setMute").call(this,e)})}capture({deviceId:e,facingMode:t,useExactDeviceId:r=!0,customSource:o,retryWhenExactFailed:n=!0}){return super.capture({audio:!1,video:!0,facingMode:t||this.facingMode,cameraId:e,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,useExactDeviceId:r,retryWhenExactFailed:n,customSource:o})}setProfile(e){let t=v({},e),r=t.width>t.height;t.width*t.height<=160*120&&me&&vt&&(this.log.warn(`resolution is ${t.width}*${t.height}, fallback to 240*180`),t.width=r?240:180,t.height=r?180:240,t.bitrate=Math.max(t.bitrate,150)),t.width*t.height>1280*720&&jc&&(t.width=r?1280:720,t.height=r?720:1280,this.log.warn("reset to 1280 * 720 on iOS 13~14")),t.bitrate&&(this.isNeedToSetBandwidth=t.bitrate!==this.profile.bitrate),this.isAllowed2k4k(this.profile)?super.setProfile(t):(this.log.warn("Resolution is reset to 1080p, need to upgrade ability here https://cloud.tencent.com/document/product/647/85386"),super.setProfile(k(v({},this.profile),{width:1920,height:1080})))}applyProfile(){return f(this,null,function*(){var r;if(!this.mediaTrack)return;let e=this.settings;if(!(!(e.height!==this.profile.height||e.width!==this.profile.width||e.frameRate!==this.profile.frameRate)||!this.deviceId)&&(ot===16?yield this.recapture(this.deviceId):(yield(r=this.mediaTrack)==null?void 0:r.applyConstraints({width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate}),this.manager&&this.manager.changeInput(this)),this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1}),this.isNeedToSetBandwidth&&this.room&&this.room.setBandWidth))return this.isNeedToSetBandwidth=!1,this.room.setBandWidth({bandwidth:this.profile.bitrate,type:h.VIDEO,videoType:h.BIG})})}get settings(){let e={width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate};return qt&&this.mediaTrack&&Object.assign(e,this.mediaTrack.getSettings()),e}get scaleResolutionDownBy(){let{settings:e}=this;return e.width===this.profile.width&&e.height===this.profile.height?1:Sn()&&this.profile.width>this.profile.height&&e.height>e.width?Math.max(e.width/this.profile.height,e.height/this.profile.width,1):Math.max(e.width/this.profile.width,e.height/this.profile.height,1)}isAllowed2k4k(e){var t;return!this.room||!this.room.scheduleResult||this.isScreen||e.height*e.width<2560*1440?!0:((t=this.room.scheduleResult.trtcAutoConf)==null?void 0:t["2k4k"])===1}isNeedToSwitchDevice(e){return!(!this.mediaTrack||this.deviceId===e||this.facingMode===e)}switchDevice(e){return f(this,null,function*(){try{if(!this.isNeedToSwitchDevice(e))return;let t={useExactDeviceId:!0,retryWhenExactFailed:!1};e==="user"||e==="environment"?t.facingMode=e:t.deviceId=e,this.mediaTrack.stop(),yield this.capture(t),E.emit(T.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch camera success")}catch(t){throw this.log.error(`switch camera failed ${t}`),this.deviceId&&this.recapture(this.deviceId),t}})}listenDeviceChange(){ye&&!ye.listeners("videoInputRemoved").includes(this.handleCameraRemoved)&&ye.on("videoInputRemoved",this.handleCameraRemoved,this)}handleCameraRemoved(e){return f(this,null,function*(){if(e.deviceId===this.deviceId){this.log.warn(`current camera is lost: ${JSON.stringify(e)}`),ue(this.userId,{eventId:2003,param1:7,streamType:2});let t=yield dt();t[0]?this.recapture(t[0].deviceId):ye.on("videoInputAdded",this.handleCameraAdded,this)}})}handleCameraAdded(e){return f(this,null,function*(){this.log.warn(`camera added: ${JSON.stringify(e)}`),this.recapture(e.deviceId)})}encodeFrame(e,t){if(!this.manager)return e;let r=t?8:this.mediaType;return this.manager.encodePipeline.reduceRight((o,n)=>n?n({frame:o,mediaType:r}):o,e)}get enableEncodeFrame(){return this.manager?this.manager.encodePipeline.some(e=>e):!1}play(e,t){return g(this.mirror)&&!this.isScreen&&this.setMirror("view"),super.play(e,t)}close(){ye.off("videoInputAdded",this.handleCameraAdded,this),ye.off("videoInputRemoved",this.handleCameraRemoved,this),super.close()}recapture(e){return f(this,null,function*(){try{yield Le(Rr.prototype,this,"recapture").call(this,e)}catch(t){let r=(yield dt()).find(o=>o.deviceId!==e);if(r)yield Le(Rr.prototype,this,"recapture").call(this,r.deviceId);else throw t}})}setContentHint(e){this.mediaTrack&&"contentHint"in this.mediaTrack&&(this.mediaTrack.contentHint!==e&&(this.log.info(`setContentHint ${e}`),this.mediaTrack.contentHint=e),this.outMediaTrack&&this.outMediaTrack.contentHint!==e&&(this.outMediaTrack.contentHint=e))}};y([Je(function(e){this.setContentHint(e.contentHint||"motion")})],Rr.prototype,"capture",1);var Ve=Rr;var Yh=mo();if(typeof navigator!="undefined"&&navigator.mediaDevices&&"setCaptureHandleConfig"in navigator.mediaDevices)try{navigator.mediaDevices.setCaptureHandleConfig({handle:Yh,exposeOrigin:!0,permittedOrigins:["*"]})}catch(s){}var I_=function(s){return f(this,null,function*(){let i=null,e=R_(s);C.info(`getDisplayMedia with constraints: ${JSON.stringify(e)}`);let t=yield navigator.mediaDevices.getDisplayMedia(e);s.systemAudio&&t.getAudioTracks().length===0&&(ns&&Dt<74||ze||ae)&&C.warn("Your browser not support capture system audio");let r=t.getVideoTracks()[0];if(r){if(s.frameRate)try{yield r.applyConstraints({frameRate:{min:s.frameRate,ideal:s.frameRate},width:s.width,height:s.height})}catch(o){C.warn(`screen applyConstraints failed: ${o}`)}s.captureElement&&(yield A_(r,s.captureElement))}if(s.audio){let o=C_(s);C.info(`getUserMedia with constraints: ${JSON.stringify(o)}`),i=yield navigator.mediaDevices.getUserMedia(o),t.addTrack(i.getAudioTracks()[0])}return t})};function A_(s,i){return f(this,null,function*(){var e;if("CropTarget"in window&&"fromElement"in CropTarget&&se(s.cropTo))try{if(!(((e=s.getCaptureHandle())==null?void 0:e.handle)===Yh))return;let r=yield CropTarget.fromElement(i);yield s.cropTo(r)}catch(t){C.warn(`cropTo target failed ${t}`)}})}function C_(s){let i={echoCancellation:s.echoCancellation,autoGainControl:s.autoGainControl,noiseSuppression:s.noiseSuppression,sampleRate:s.sampleRate,channelCount:s.channelCount};return g(s.microphoneId)||(i.deviceId=s.microphoneId),{audio:i,video:!1}}function R_(s){let i={preferCurrentTab:s.preferDisplaySurface==="current-tab"||!!s.captureElement,systemAudio:"include",selfBrowserSurface:"include",surfaceSwitching:"include"},e={width:ze?{max:s.width}:{ideal:s.width,max:s.width},height:ze?{max:s.height}:{ideal:s.height,max:s.height},frameRate:s.frameRate,displaySurface:s.preferDisplaySurface||"monitor"};if(i.video=e,s.systemAudio){let{echoCancellation:t=!0,noiseSuppression:r=!1,autoGainControl:o=!1}=s;i.audio={echoCancellation:t,noiseSuppression:r,autoGainControl:o,sampleRate:48e3}}return i}var Kh=I_;var it=class extends Ve{constructor(e){super(e,2);c(this,"profile",{width:1920,height:1080,frameRate:5,bitrate:1600});c(this,"objectFit","contain");c(this,"isScreen",!0);this._log.id=`s-${this._log.id}`}capture(m){return f(this,arguments,function*({systemAudio:e=!1,autoGainControl:t,echoCancellation:r,noiseSuppression:o,audioTrack:n,videoTrack:a,captureElement:d,preferDisplaySurface:l}){try{let u;return a||n?(u=new MediaStream,a&&u.addTrack(a),n&&u.addTrack(n)):u=yield Kh({audio:!1,systemAudio:e,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,autoGainControl:t,echoCancellation:r,noiseSuppression:o,captureElement:d,preferDisplaySurface:l}),yield this.setInputMediaStreamTrack(u.getVideoTracks()[0]),u}catch(u){throw this.log.error(`getDisplayMedia error observed ${u}`),u instanceof b?u:new b({code:S.INITIALIZE_FAILED,name:u.name,message:u.message})}})}switchDevice(e){return f(this,null,function*(){throw new Error("Method not implemented.")})}};y([Je(function(e){this.setContentHint(e.contentHint||"detail")})],it.prototype,"capture",1);var ti=class extends _t{constructor(i){super(i),this._log.id=`s-${this._log.id}`}};var y_="registerProcessor('dumper', class extends AudioWorkletProcessor {process(inputs) {this.port.postMessage(inputs);return true;}});",$d;function xo(s){return f(this,null,function*(){let i=Ze("dump");$d||($d=Ir(i,URL.createObjectURL(new Blob([y_],{type:"application/javascript"})))),yield $d;let e=new AudioWorkletNode(i,"dumper",{numberOfInputs:s.length,numberOfOutputs:0});return s.forEach((t,r)=>t.connect(e,0,r)),new ReadableStream({start(t){e.port.onmessage=r=>{t.enqueue(r.data)}},cancel(){s.forEach(t=>t.disconnect(e)),e.port.close()}})})}var _a=class extends ia{constructor(e){super();this.room=e;c(this,"_localAudioTrack");c(this,"_localScreenAudioTrack");c(this,"log",C.createLogger({id:"am"}));c(this,"denoiser");c(this,"mixChangedDebounce");c(this,"encodePipeline",[]);c(this,"decodePipeline",[]);e&&(this.log.setUserId(e.userId),this.log.setSdkAppId(e.sdkAppId))}get _localAudioPipline(){var e;return(e=this._localAudioTrack)==null?void 0:e.pipeline}dump(e){var m,u;if(!this._localAudioTrack)return;let t=[],r=[];(m=this._localAudioPipline)!=null&&m.source.node&&(t.push(this._localAudioPipline.source.node),r.push("mic")),(u=this._localAudioPipline)!=null&&u.denoiser.node&&(t.push(this._localAudioPipline.denoiser.node),r.push("mic-processed")),this.mixWeight>1&&(t.push(this.audioContext.createMediaStreamSource(this._localAudioPipline.stream)),r.push("mix")),this.log.info(`dump audio track ${r}, duration: ${e}`);let o=new AbortController,n=[],a=setTimeout(()=>{this.log.info('dump audio track complete please input "download()" to download.'),o.abort("timeout")},e*1e3),d=()=>{for(let p=0;p<r.length;p++){let _=URL.createObjectURL(new Blob(n[p])),I=document.createElement("a");I.href=_,I.download=`${r[p]}.pcm`,I.style.display="none",document.body.appendChild(I),I.click(),URL.revokeObjectURL(_),I.remove()}clearTimeout(a),o.abort("download")},l=xo(t).then(p=>p.pipeTo(new WritableStream({write(_){_.forEach((I,R)=>n[R]=n[R]?n[R].concat(I[0]):[I[0]])}}),o).catch(_=>d));return{then:l.then.bind(l),download:d}}getPCM(e){var n;if(g(WritableStream)){this.log.warn("getPCM failed: browser not support WritableStream");return}if(!((n=this._localAudioPipline)!=null&&n.source.node)){this.log.warn("getPCM failed: no local audio track");return}this.log.warn("getPCM");let t=new Float32Array(1920),r=0,o=new AbortController;return xo([this._localAudioPipline.source.node]).then(a=>a.pipeTo(new WritableStream({write(d){d[0][0]&&(t.set(d[0][0],r),r+=d[0][0].length,r>=1920&&(r=0,e(t),t=new Float32Array(1920)))}}),o).catch(d=>this.log.warn(`stop getPCM reason:${d}`))),o}get hasScreenAudioTrack(){return this._localScreenAudioTrack!==null}get hasAudioTrack(){return!g(this._localAudioTrack)}changeInput(e){if(e instanceof ti)return this._localScreenAudioTrack=e,e.pipeline.connect(),this.mixOnChange();if(e instanceof _t)return this._localAudioTrack=e,this.denoiser&&e.addDenoiser(this.denoiser),e.pipeline.connect(),this.mixOnChange();if(e instanceof Di)return e.setOutputMediaStreamTrack(e.mediaTrack)}mixOnChange(){return this.mixChangedDebounce||(this.mixChangedDebounce=Promise.resolve().then(()=>{var e,t;return delete this.mixChangedDebounce,Promise.all([(e=this._localAudioTrack)==null?void 0:e.setOutputMediaStreamTrack(this.mixWeight>1?this.mixTrack:this._localAudioTrack.mediaTrack),(t=this._localScreenAudioTrack)==null?void 0:t.setOutputMediaStreamTrack(this.mixWeight>1?this.mixTrack:this._localScreenAudioTrack.mediaTrack)])})),this.mixChangedDebounce}removeInput(e){e instanceof ti?delete this._localScreenAudioTrack:e instanceof _t?delete this._localAudioTrack:e instanceof Di}addDenoiser(e){var t;this.denoiser=e,(t=this._localAudioTrack)==null||t.addDenoiser(e)}removeDenoiser(e){var t;delete this.denoiser,(t=this._localAudioTrack)==null||t.removeDenoiser(e)}destroy(){this.close()}addEncodeProcessor({processor:e,type:t}){var r;this.encodePipeline.includes(e)||(this.encodePipeline[t]=e,(r=this.room)==null||r.enableInsertableStreams())}addDecodeProcessor({processor:e,type:t}){var r;this.decodePipeline.includes(e)||(this.decodePipeline[t]=e,(r=this.room)==null||r.enableInsertableStreams())}removeEncodeProcessor({type:e}){this.encodePipeline[e]=void 0}removeDecodeProcessor({type:e}){this.decodePipeline[e]=void 0}};function ga(s=30,i=2){return J((e,t)=>function(...r){return new Promise((o,n)=>{let a=setTimeout(()=>{let d=new b({code:S.API_CALL_TIMEOUT,message:`checkPendingPromise ${t}() timeout ${s}s`});C.warn(d),i===2?n(d):i===1&&o()},s*1e3);e.apply(this,r).then(o,n).finally(()=>{clearTimeout(a)})})})}var Oi=class Oi extends Ar{constructor(e,t,r){super({userId:t.userId,sdkAppId:e.sdkAppId,mediaType:r,room:e});this.room=e;this.user=t;c(this,"tinyId");c(this,"isRemote",!0);c(this,"jitterBufferDelay",0);c(this,"_decodeCheckTimeoutId",-1);this.tinyId=t.tinyId}setMute(e){this.isAvailable&&super.setMute(e)}setInputMediaStreamTrack(e){super.setInputMediaStreamTrack(e),this.isAvailable&&this.isSubscribed&&this.player.setTrack(this.outMediaTrack)}waitHasMediaTrack(){return new Promise(e=>{this.mediaTrack?e():this.once("input-media-track-changed",e)})}get isSubscribing(){return this.state.toString()==="subscribeing"}get isSubscribed(){return this.state===Oi.STATE_SUBSCRIBE}subscribe(e){return e}unsubscribe(){this.player.setTrack(null),this.streamType==="main"&&this.kind==="video"&&this.room.changeType(!1,this.user)}reportDecodeResult(e,t){let r=this.kind===h.AUDIO;N[e?"addSuccessEvent":"addFailedEvent"]({key:r?504700:514702}),e||(N.addEnum({key:r?504701:514703,value:ho()}),ee.uploadEvent({log:`stat-decode-failed-${this.kind}-${pr()||Ti()}`,userId:this.room.userId}),this._log.warn(`decode failed: isPlaying: ${this.player.isPlaying} ${this.kind===h.AUDIO?`audioLevel: ${this.getAudioLevel()}`:`framesDecoded: ${this.stat.framesDecoded>0}`}`),this.emit("decode-failed",{error:t}))}updatePlayingState(e){if(this.isPlayCalled&&this.player.isStopped===e){if(e&&(!this.isSubscribed||!this.isAvailable||!this.outMediaTrack)){this.log.info(`abort play, isSubscribed: ${this.isSubscribed} isAvailable: ${this.isAvailable} hasTrack: ${!!this.outMediaTrack} `);return}super.updatePlayingState(e)}}close(){super.close(),this.outMediaTrack&&this.uninstallTrackEvent(this.outMediaTrack)}onFlagChanged(){this.updatePlayingState(this.isAvailable)}onTrackMuted(){this.isAvailable&&(this.isSubscribed||this.isSubscribing)&&this.isPlayCalled&&super.onTrackMuted()}onTrackUnmuted(){this.isAvailable&&(this.isSubscribed||this.isSubscribing)&&this.isPlayCalled&&super.onTrackUnmuted()}onTrackEnded(){this.isAvailable&&(this.isSubscribed||this.isSubscribing)&&this.isPlayCalled&&super.onTrackEnded()}};c(Oi,"STATE_SUBSCRIBE","subscribe"),y([ga(5,1)],Oi.prototype,"waitHasMediaTrack",1),y([de(Q.INIT,Oi.STATE_SUBSCRIBE,{success(){var t,r;this.log.info("subscribed"),E.emit(T.REMOTE_TRACK_SUBSCRIBED,{track:this}),this.updatePlayingState(!0),!((((r=(t=this.room)==null?void 0:t.networkQuality)==null?void 0:r.downlinkNetworkQuality)||0)>3||this.player.isInAutoPlayFailedState)&&(this._decodeCheckTimeoutId=setTimeout(()=>{var n,a;if(!((((a=(n=this.room)==null?void 0:n.networkQuality)==null?void 0:a.downlinkNetworkQuality)||0)>3||this.player.isInAutoPlayFailedState)&&this.isSubscribed&&this.isPlayCalled&&this.stat.bytesReceived>0){let d=this.kind===h.AUDIO,l=this.player.isPlaying||(d?this.getAudioLevel()>0:this.stat.framesDecoded>0);this.reportDecodeResult(l)}},5e3),this.player.once(pe.ERROR,o=>{o.code===MediaError.MEDIA_ERR_DECODE&&(clearTimeout(this._decodeCheckTimeoutId),this.reportDecodeResult(!1,3))}))},ignoreError:!0}),tt(521716,!1)],Oi.prototype,"subscribe",1),y([de(Oi.STATE_SUBSCRIBE,Q.INIT,{sync:!0,success(){this.log.info("unsubscribed"),this.updatePlayingState(!1),E.emit(T.REMOTE_TRACK_UNSUBSCRIBED,{track:this}),clearTimeout(this._decodeCheckTimeoutId)}})],Oi.prototype,"unsubscribe",1);var _s=Oi;var Di=class extends _s{constructor(e,t){super(e,t,1);c(this,"volume",0);c(this,"mediaType",1);c(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,end2EndDelay:0,jitterBufferDelay:0});this.manager=e.audioManager}decodeFrame(e){if(!this.manager)return e;let t=e;for(let r of this.manager.decodePipeline)if(r&&(t=r({frame:t,track:this}),!t))return;return t}getAudioLevel(){let e=this.volume||super.getAudioLevel();return e>1?1:e}get isAvailable(){return this.user.muteState.audioAvailable}};var N_=[-1,-1,1,-1,-1,1,1,1],v_=[0,0,1,0,0,1,1,1];var qe=class extends Q{constructor(e,t){super();this.context=e;c(this,"name");c(this,"input");c(this,"output");c(this,"texture");c(this,"ctx2d",null);c(this,"fbo");c(this,"width",0);c(this,"height",0);c(this,"x",0);c(this,"y",0);c(this,"program");c(this,"vertexShader");c(this,"fragmentShader");c(this,"totalFrames",0);c(this,"dropFrames",0);c(this,"matchInputSize",!0);c(this,"texCoordBuffer");c(this,"positionBuffer");c(this,"lastInfo",{name:"",timestamp:0,totalFrames:0,x:0,y:0,width:0,height:0,fps:0});c(this,"cost",0);c(this,"_canvas",null);c(this,"_image");c(this,"log");if(this.context.on("disconnect",this.close,this),this.name=t.name,this.log=t.logger,this.matchInputSize=t.matchInputSize!==!1,this.width=t.width||e.width,this.height=t.height||e.height,this._image=t.image,e instanceof Be){e.ctx&&t.create2d&&(typeof OffscreenCanvas=="function"&&ot!==16?this._canvas=new OffscreenCanvas(this.width,this.height):(this._canvas=document.createElement("canvas"),this._canvas.width=this.width,this._canvas.height=this.height),this.ctx2d=this._canvas.getContext("2d"),this._image=this._canvas);return}try{let r=e.ctx;this.texCoordBuffer=this.createBuffer(v_),this.positionBuffer=this.createBuffer(N_),t.createTexture!==!1&&(this.texture=r.createTexture(),this.useTexture(),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.pixelStorei(r.PACK_ALIGNMENT,1),r.pixelStorei(r.UNPACK_ALIGNMENT,1)),t.useFbo&&(this.fbo=r.createFramebuffer(),this.useBufferFrame(),this.useTexture(),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,this.width,this.height,0,r.RGBA,r.UNSIGNED_BYTE,null),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,this.texture,0)),t.useDefaultProgram?this.program=e.defaultProgam:(t.vertexShaderSource||t.fragmentShaderSource)&&(this.vertexShader=t.vertexShaderSource?e.createShader(r.VERTEX_SHADER,t.vertexShaderSource):e.defaultVShader,this.fragmentShader=t.fragmentShaderSource?e.createShader(r.FRAGMENT_SHADER,t.fragmentShaderSource):e.defaultFShader,this.program=e.createProgram(this.vertexShader,this.fragmentShader))}catch(r){this.context.destroy(new b({code:S.VIDEO_MANAGER_ERROR,extraCode:3,message:`create video node ${this.name} error ${r.message||r}`}))}}get image(){return this._image}set image(e){this._image=e}createFramebuffer(e){let t=this.context.ctx,r=t.createFramebuffer();return t.bindFramebuffer(t.FRAMEBUFFER,r),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,e,0),r}connect(e,...t){return e.addInput(this,...t),this.output=e,e}addInput(e,...t){this.input=e,this.matchInputSize&&e.width&&e.height&&this.resize(e.width,e.height)}requestFrame(e){let t=Date.now();if(this.context instanceof De&&this.render(e)||this.context instanceof Be&&this.render2d(e))this.totalFrames++;else return!1;return this.cost=Date.now()-t,!0}render2d(e){var t;return(t=this.input)!=null&&t.requestFrame(e)?this.draw2d(this.input.image,0,0,this.width,this.height):!1}update(e=0){var t;(t=this.output)==null||t.update(e)}disconnect(...e){var t;(t=this.output)==null||t.removeInput(this,...e),delete this.output}removeInput(e,...t){delete this.input}close(){var e,t;if(this.context.off("disconnect",this.close,this),(e=this.output)==null||e.removeInput(this),delete this.output,(t=this.input)==null||t.disconnect(),this.context instanceof De){let r=this.context.ctx;r.deleteBuffer(this.texCoordBuffer),r.deleteBuffer(this.positionBuffer),this.fbo&&r.deleteFramebuffer(this.fbo),this.texture&&r.deleteTexture(this.texture),this.vertexShader&&this.vertexShader!==this.context.defaultVShader&&r.deleteShader(this.vertexShader),this.fragmentShader&&this.fragmentShader!==this.context.defaultFShader&&r.deleteShader(this.fragmentShader),this.program&&this.program!==this.context.defaultProgam&&r.deleteProgram(this.program)}this._canvas&&(this._canvas.width=0,this._canvas.height=0,this.ctx2d=null),this.removeAllListeners()}useTexture(){this.useTextures(this.texture)}useInputTexture(){var e;this.useTextures((e=this.input)==null?void 0:e.texture)}useTextures(...e){let t=this.context.ctx;e.forEach((r,o)=>{r&&(t.activeTexture(t.TEXTURE0+o),t.bindTexture(t.TEXTURE_2D,r))})}useProgram(){this.context.ctx.useProgram(this.program)}useBufferFrame(){let e=this.context.ctx;e.bindFramebuffer(e.FRAMEBUFFER,this.fbo||null)}createBuffer(e){let t=this.context.ctx,r=t.createBuffer();return t.bindBuffer(t.ARRAY_BUFFER,r),t.bufferData(t.ARRAY_BUFFER,new Float32Array(e),t.STATIC_DRAW),r}setTexBuffer(e){let t=this.context.ctx;t.bindBuffer(t.ARRAY_BUFFER,this.texCoordBuffer),t.bufferData(t.ARRAY_BUFFER,new Float32Array(e),t.STATIC_DRAW)}setPosBuffer(e){let t=this.context.ctx;t.bindBuffer(t.ARRAY_BUFFER,this.positionBuffer),t.bufferData(t.ARRAY_BUFFER,new Float32Array(e),t.STATIC_DRAW)}changeBufferData(e,t){let r=this.context.ctx;r.bindBuffer(r.ARRAY_BUFFER,e),r.bufferData(r.ARRAY_BUFFER,new Float32Array(t),r.STATIC_DRAW)}setAttributes(...e){let t=this.context.ctx;e.forEach((r,o)=>{t.enableVertexAttribArray(o),t.bindBuffer(t.ARRAY_BUFFER,r),t.vertexAttribPointer(o,2,t.FLOAT,!1,0,0)})}getVertexPoint(e,t){return[e/this.width*2-1,t/this.height*2-1]}layout2texCoords(e){return[...this.getVertexPoint(e.x,e.y),...this.getVertexPoint(e.x+e.width,e.y),...this.getVertexPoint(e.x,e.y+e.height),...this.getVertexPoint(e.x+e.width,e.y+e.height)]}resize(e,t){if(!(this.width===e&&this.height===t)){if(this.width=e,this.height=t,this._canvas&&(this._canvas.width=e,this._canvas.height=t),this.texture&&this.fbo){this.useTexture();let r=this.context.ctx;r.texImage2D(r.TEXTURE_2D,0,r.RGBA,e,t,0,r.RGBA,r.UNSIGNED_BYTE,null)}this.output&&this.output.matchInputSize&&this.output.resize(e,t)}}draw(e,t){this.setAttributes(e||this.positionBuffer,t||this.texCoordBuffer);let r=this.context.ctx;r.drawArrays(r.TRIANGLE_STRIP,0,4)}draw2d(e,t,r,o,n){return this.ctx2d&&e?(e instanceof ImageData?this.ctx2d.putImageData(e,t,r):(this.ctx2d.drawImage(e,t,r,o,n),typeof VideoFrame!="undefined"&&e instanceof VideoFrame&&e.close()),!0):!1}getInfo(){var u;let{totalFrames:e,x:t,y:r,width:o,height:n,name:a,cost:d}=this,l=Date.now(),m=(e-this.lastInfo.totalFrames)/((l-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:t,y:r,width:o,height:n,timestamp:l,fps:m,name:a,cost:d},v({parent:(u=this.input)==null?void 0:u.getInfo()},this.lastInfo)}createTexture(e){let t=this.context.ctx,r=t.createTexture();return this.useTextures(r),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.pixelStorei(t.PACK_ALIGNMENT,1),t.pixelStorei(t.UNPACK_ALIGNMENT,1),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,e),r}};y([de(Q.INIT,"connected",{sync:!0})],qe.prototype,"connect",1),y([de("connected",Q.INIT,{ignoreError:!0,sync:!0})],qe.prototype,"disconnect",1),y([de([],"closed",{sync:!0})],qe.prototype,"close",1);var Nl={};ni(Nl,{Events:()=>fe,Inspect:()=>gt,LastSink:()=>yr,Sink:()=>F,Subscribe:()=>br,TimeoutError:()=>Uo,audit:()=>ug,bindCallback:()=>z_,bindNodeCallback:()=>Y_,buffer:()=>B_,bufferCount:()=>V_,bufferTime:()=>Og,call:()=>em,catchError:()=>Bo,combineLatest:()=>im,concat:()=>L_,concatMap:()=>Ag,concatMapTo:()=>Cg,count:()=>eg,create:()=>Z,debounce:()=>hg,debounceTime:()=>mg,defer:()=>rm,delay:()=>Mg,deliver:()=>$,dispose:()=>Ta,elementAt:()=>pg,empty:()=>vr,every:()=>Eg,exhaustMap:()=>bg,exhaustMapTo:()=>Ng,filter:()=>Ca,find:()=>fg,findIndex:()=>_g,first:()=>gg,fromAnimationFrame:()=>X_,fromArray:()=>$_,fromEvent:()=>Ie,fromEventPattern:()=>G_,fromFetch:()=>W_,fromIterable:()=>J_,fromPromise:()=>nm,fromReadableStream:()=>j_,fromReader:()=>q_,groupBy:()=>vg,identity:()=>D_,ignoreElements:()=>sg,iif:()=>w_,inspect:()=>tm,interval:()=>Xd,last:()=>Tg,map:()=>Cl,mapTo:()=>Ig,max:()=>tg,merge:()=>M_,mergeMap:()=>Rg,mergeMapTo:()=>yg,min:()=>ig,never:()=>K_,nothing:()=>oe,of:()=>H_,pairwise:()=>Sg,pipe:()=>_e,race:()=>k_,range:()=>Q_,reduce:()=>zd,retry:()=>wg,scan:()=>Al,share:()=>Mi,shareReplay:()=>P_,skip:()=>ng,skipUntil:()=>ag,skipWhile:()=>Ra,startWith:()=>Nr,subject:()=>rt,subscribe:()=>be,sum:()=>rg,switchMap:()=>er,switchMapTo:()=>Vo,take:()=>ki,takeLast:()=>og,takeUntil:()=>Pe,takeWhile:()=>am,tap:()=>bl,throttle:()=>dg,throwError:()=>Z_,timeInterval:()=>Dg,timeout:()=>Pg,timer:()=>Qd,toPromise:()=>kg,toReadableStream:()=>Lg,withLatestFrom:()=>U_,zip:()=>x_});function oe(...s){}var em=s=>s(),D_=s=>s;function Ta(){this.dispose()}var tm=()=>typeof __FASTRX_DEVTOOLS__!="undefined",O_=1,gt=class extends Function{toString(){return`${this.name}(${this.args.length?[...this.args].join(", "):""})`}subscribe(i){let e=new Wd(i,this,this.streamId++);return fe.subscribe({id:this.id,end:!1},{nodeId:e.sourceId,streamId:e.id}),this(e),e}},yr=class{constructor(){this.defers=new Set,this.disposed=!1}next(i){}complete(){this.dispose()}error(i){this.dispose()}get bindDispose(){return()=>this.dispose()}dispose(){this.disposed=!0,this.complete=oe,this.error=oe,this.next=oe,this.dispose=oe,this.subscribe=oe,this.doDefer()}subscribe(i){return i instanceof gt?i.subscribe(this):i(this),this}get bindSubscribe(){return i=>this.subscribe(i)}doDefer(){this.defers.forEach(em),this.defers.clear()}defer(i){this.defers.add(i)}removeDefer(i){this.defers.delete(i)}reset(){this.disposed=!1,delete this.complete,delete this.next,delete this.dispose,delete this.next,delete this.subscribe}resetNext(){delete this.next}resetComplete(){delete this.complete}resetError(){delete this.error}},F=class extends yr{constructor(i){super(),this.sink=i,i.defer(this.bindDispose)}next(i){this.sink.next(i)}complete(){this.sink.complete()}error(i){this.sink.error(i)}},br=class extends yr{constructor(i,e=oe,t=oe,r=oe){if(super(),this._next=e,this._error=t,this._complete=r,this.then=oe,i instanceof gt){let o={toString:()=>"subscribe",id:0,source:i};this.defer(()=>{fe.defer(o,0)}),fe.create(o),fe.pipe(o),this.sourceId=o.id,this.subscribe(i),fe.subscribe({id:o.id,end:!0}),e==oe?this._next=n=>fe.next(o,0,n):this.next=n=>{fe.next(o,0,n),e(n)},r==oe?this._complete=()=>fe.complete(o,0):this.complete=()=>{this.dispose(),fe.complete(o,0),r()},t==oe?this._error=n=>fe.complete(o,0,n):this.error=n=>{this.dispose(),fe.complete(o,0,n),t()}}else this.subscribe(i)}next(i){this._next(i)}complete(){this.dispose(),this._complete()}error(i){this.dispose(),this._error(i)}};function _e(s,...i){return i.reduce((e,t)=>t(e),s)}function Z(s,i,e){if(tm()){let t=Object.defineProperties(Object.setPrototypeOf(s,gt.prototype),{streamId:{value:0,writable:!0,configurable:!0},name:{value:i,writable:!0,configurable:!0},args:{value:e,writable:!0,configurable:!0},id:{value:0,writable:!0,configurable:!0}});fe.create(t);for(let r=0;r<e.length;r++){let o=e[r];typeof o=="function"&&o instanceof gt&&fe.addSource(t,o)}return t}return s}function $(s,i){return function(...e){return t=>{if(t instanceof gt){let r=Z(o=>{let n=new s(o,...e);n.sourceId=r.id,n.subscribe(t)},i,arguments);return r.source=t,fe.pipe(r),r}else return r=>t(new s(r,...e))}}}function Zi(s,i){window.postMessage({source:"fastrx-devtools-backend",payload:{event:s,payload:i}})}var Wd=class extends F{constructor(i,e,t){super(i),this.source=e,this.id=t,this.sourceId=i.sourceId,this.defer(()=>{fe.defer(this.source,this.id)})}next(i){fe.next(this.source,this.id,i),this.sink.next(i)}complete(){fe.complete(this.source,this.id),this.sink.complete()}error(i){fe.complete(this.source,this.id,i),this.sink.error(i)}},fe={addSource(s,i){Zi("addSource",{id:s.id,name:s.toString(),source:{id:i.id,name:i.toString()}})},next(s,i,e){Zi("next",{id:s.id,streamId:i,data:e&&e.toString()})},subscribe({id:s,end:i},e){Zi("subscribe",{id:s,end:i,sink:{nodeId:e&&e.nodeId,streamId:e&&e.streamId}})},complete(s,i,e){Zi("complete",{id:s.id,streamId:i,err:e?e.toString():null})},defer(s,i){Zi("defer",{id:s.id,streamId:i})},pipe(s){Zi("pipe",{name:s.toString(),id:s.id,source:{id:s.source.id,name:s.source.toString()}})},update(s){Zi("update",{id:s.id,name:s.toString()})},create(s){s.id||(s.id=O_++),Zi("create",{name:s.toString(),id:s.id})}},Uo=class extends Error{constructor(i){super(`timeout after ${i}ms`),this.timeout=i}};var Ea=class extends yr{constructor(i){super(),this.source=i,this.sinks=new Set}add(i){i.defer(()=>this.remove(i)),this.sinks.add(i).size===1&&(this.reset(),this.subscribe(this.source))}remove(i){this.sinks.delete(i),this.sinks.size===0&&this.dispose()}next(i){this.sinks.forEach(e=>e.next(i))}complete(){this.sinks.forEach(i=>i.complete()),this.sinks.clear()}error(i){this.sinks.forEach(e=>e.error(i)),this.sinks.clear()}};function Mi(){return s=>{let i=new Ea(s);if(s instanceof gt){let e=Z(t=>{i.add(t)},"share",arguments);return i.sourceId=e.id,e.source=s,fe.pipe(e),e}return Z(i.add.bind(i),"share",arguments)}}function M_(...s){return Z(i=>{let e=new F(i),t=s.length;e.complete=()=>{--t===0&&i.complete()},s.forEach(e.bindSubscribe)},"merge",arguments)}function k_(...s){return Z(i=>{let e=new Map;s.forEach(t=>{let r=new F(i);e.set(t,r),r.complete=()=>{e.delete(t),e.size===0?i.complete():r.dispose()},r.next=o=>{e.delete(t),e.forEach(n=>n.dispose()),r.resetNext(),r.resetComplete(),r.next(o)}}),s.forEach(t=>e.get(t).subscribe(t))},"race",arguments)}function L_(...s){return Z(i=>{let e=0,t=s.length,r=new F(i);r.complete=()=>{e<t&&!r.disposed?(r.doDefer(),r.subscribe(s[e++])):i.complete()},r.complete()},"concat",arguments)}function P_(s){return i=>{let e=new Ea(i),t=[];return e.next=function(r){t.push(r),t.length>s&&t.shift(),this.sinks.forEach(o=>o.next(r))},Z(r=>{r.defer(()=>e.remove(r)),t.forEach(o=>r.next(o)),e.add(r)},"shareReplay",arguments)}}function w_(s,i,e){return Z(t=>s()?i(t):e(t),"iif",arguments)}function im(...s){return Z(i=>{let e=s.length,t=e,r=e,o=new Array(e),n=()=>{--r===0&&i.complete()},a=(d,l)=>{let m=new F(i);m.next=u=>{--t===0?(m.next=p=>{o[l]=p,i.next(o)},m.next(u)):o[l]=u},m.complete=n,m.subscribe(d)};s.forEach(a)},"combineLatest",arguments)}function x_(...s){return Z(i=>{let e=s.length,t=e,r=new Array(e),o=()=>{--t===0&&i.complete()},n=(a,d)=>{let l=new F(i),m=[];r[d]=m,l.next=u=>{m.push(u),r.every(p=>p.length)&&i.next(r.map(p=>p.shift()))},l.complete=o,l.subscribe(a)};s.forEach(n)},"zip",arguments)}function Nr(...s){return i=>Z((e,t=0,r=s.length)=>{for(;t<r&&!e.disposed;)e.next(s[t++]);e.disposed||e.subscribe(i)},"startWith",arguments)}var Jd=class extends F{constructor(i,...e){super(i);let t=new F(this.sink);t.next=r=>this.buffer=r,t.complete=oe,t.subscribe(im(...e))}next(i){this.buffer&&this.sink.next([i,...this.buffer])}},U_=$(Jd,"withLatestFrom"),qd=class extends F{constructor(i,e,t){super(i),this.bufferSize=e,this.startBufferEvery=t,this.buffer=[],this.count=0,this.startBufferEvery&&(this.buffers=[[]])}next(i){this.startBufferEvery?(this.count++===this.startBufferEvery&&(this.buffers.push([]),this.count=1),this.buffers.forEach(e=>{e.push(i)}),this.buffers[0].length===this.bufferSize&&this.sink.next(this.buffers.shift())):(this.buffer.push(i),this.buffer.length===this.bufferSize&&(this.sink.next(this.buffer),this.buffer=[]))}complete(){this.buffer.length?this.sink.next(this.buffer):this.buffers.length&&this.buffers.forEach(i=>this.sink.next(i)),super.complete()}},V_=$(qd,"bufferCount"),jd=class extends F{constructor(i,e){super(i),this.buffer=[];let t=new F(i);t.next=r=>{i.next(this.buffer),this.buffer=[]},t.complete=oe,t.subscribe(e)}next(i){this.buffer.push(i)}complete(){this.buffer.length&&this.sink.next(this.buffer),super.complete()}},B_=$(jd,"buffer");var F_=function(s,i,e,t){function r(o){return o instanceof e?o:new e(function(n){n(o)})}return new(e||(e=Promise))(function(o,n){function a(m){try{l(t.next(m))}catch(u){n(u)}}function d(m){try{l(t.throw(m))}catch(u){n(u)}}function l(m){m.done?o(m.value):r(m.value).then(a,d)}l((t=t.apply(s,i||[])).next())})};function rt(s){let i=arguments,e=Mi()(Z(t=>{e.next=r=>t.next(r),e.complete=()=>t.complete(),e.error=r=>t.error(r),s&&t.subscribe(s)},"subject",i));return e.next=oe,e.complete=oe,e.error=oe,e}function rm(s){return Z(i=>i.subscribe(s()),"defer",arguments)}var sm=s=>i=>{setTimeout(()=>s(i))},om=s=>sm(i=>{for(let e=0;!i.disposed&&e<s.length;e++)i.next(s[e]);i.complete()});function H_(...s){return Z(om(s),"of",arguments)}function $_(s){return Z(om(s),"fromArray",arguments)}function Xd(s){return Z(i=>{let e=0,t=setInterval(()=>i.next(e++),s);return i.defer(()=>{clearInterval(t)}),"interval"},"interval",arguments)}function Qd(s,i){return Z(e=>{let t=0,r=setTimeout(()=>{if(e.removeDefer(o),e.next(t++),i){let n=setInterval(()=>e.next(t++),i);e.defer(()=>{clearInterval(n)})}else e.complete()},s),o=()=>{clearTimeout(r)};e.defer(o)},"timer",arguments)}function Sa(s,i){return e=>{let t=r=>e.next(r);e.defer(()=>i(t)),s(t)}}function G_(s,i){return Z(Sa(s,i),"fromEventPattern",arguments)}function Ie(s,i){if("on"in s&&"off"in s)return Z(Sa(e=>s.on(i,e),e=>s.off(i,e)),"fromEvent",arguments);if("addListener"in s&&"removeListener"in s)return Z(Sa(e=>s.addListener(i,e),e=>s.removeListener(i,e)),"fromEvent",arguments);if("addEventListener"in s)return Z(Sa(e=>s.addEventListener(i,e),e=>s.removeEventListener(i,e)),"fromEvent",arguments);throw"target is not a EventDispachter"}function nm(s){return Z(i=>{s.then(i.next.bind(i),i.error.bind(i))},"fromPromise",arguments)}function W_(s,i){return Z(rm(()=>nm(fetch(s,i))),"fromFetch",arguments)}function J_(s){return Z(sm(i=>{try{for(let e of s){if(i.disposed)return;i.next(e)}i.complete()}catch(e){i.error(e)}}),"fromIterable",arguments)}function q_(s){let i=e=>F_(this,void 0,void 0,function*(){if(e.disposed)return;let{done:t,value:r}=yield s.read();if(t){e.complete();return}else e.next(r),i(e)});return Z(e=>{i(e)},"fromReader",arguments)}function j_(s){return Z(i=>{let e=new AbortController,t=e.signal;i.defer(()=>e.abort("cancelled")),s.pipeTo(new WritableStream({write(r){i.next(r)},close(){i.complete()},abort(r){i.error(r)}}),{signal:t}).then(()=>i.complete(),r=>i.error(r))},"fromReadableStream",arguments)}function X_(){return Z(s=>{let i=requestAnimationFrame(function e(t){s.disposed||(s.next(t),i=requestAnimationFrame(e))});s.defer(()=>cancelAnimationFrame(i))},"fromAnimationFrame",arguments)}function Q_(s,i){return Z((e,t=s,r=i+s)=>{for(;t<r&&!e.disposed;)e.next(t++);return e.complete(),"range"},"range",arguments)}function z_(s,i,...e){return Z(t=>{let r=e.concat(o=>(t.next(o),t.complete()));s.apply(i,r)},"bindCallback",arguments)}function Y_(s,i,...e){return Z(t=>{let r=e.concat((o,n)=>o?t.error(o):(t.next(n),t.complete()));s.apply(i,r)},"bindNodeCallback",arguments)}function K_(){return Z(()=>{},"never",arguments)}function Z_(s){return Z(i=>i.error(s),"throwError",arguments)}function vr(){return Z(s=>s.complete(),"empty",arguments)}var Dr=class extends F{constructor(i,e,t){super(i),this.f=e;let r=()=>{this.sink.next(this.acc),this.sink.complete()};typeof t=="undefined"?this.next=o=>{this.acc=o,this.complete=r,this.resetNext()}:(this.acc=t,this.complete=r)}next(i){this.acc=this.f(this.acc,i)}},zd=$(Dr,"reduce"),eg=s=>$(Dr,"count")((i,e)=>s(e)?i+1:i,0),tg=()=>$(Dr,"max")(Math.max),ig=()=>$(Dr,"min")(Math.min),rg=()=>$(Dr,"sum")((s,i)=>s+i,0);var Yd=class extends F{constructor(i,e,t){super(i),this.filter=e,this.thisArg=t}next(i){this.filter.call(this.thisArg,i)&&this.sink.next(i)}},Ca=$(Yd,"filter"),Kd=class extends F{next(i){}},sg=$(Kd,"ignoreElements"),Zd=class extends F{constructor(i,e){super(i),this.count=e}next(i){this.sink.next(i),--this.count===0&&this.complete()}},ki=$(Zd,"take"),el=class extends F{constructor(i,e){super(i);let t=new F(i);t.next=()=>i.complete(),t.complete=Ta,t.subscribe(e)}},Pe=$(el,"takeUntil"),tl=class extends F{constructor(i,e){super(i),this.f=e}next(i){this.f(i)?this.sink.next(i):this.complete()}},am=$(tl,"takeWhile"),og=s=>zd((i,e)=>(i.push(e),i.length>s&&i.shift(),i),[]),il=class extends F{constructor(i,e){super(i),this.count=e}next(i){--this.count===0&&(this.next=super.next)}},ng=$(il,"skip"),rl=class extends F{constructor(i,e){super(i),i.next=oe;let t=new F(i);t.next=()=>{t.dispose(),i.resetNext()},t.complete=Ta,t.subscribe(e)}},ag=$(rl,"skipUntil"),sl=class extends F{constructor(i,e){super(i),this.f=e}next(i){this.f(i)||(this.next=super.next,this.next(i))}},Ra=$(sl,"skipWhile"),cg={leading:!0,trailing:!1},ol=class extends F{constructor(i,e,t){super(i),this.durationSelector=e,this.trailing=t}cacheValue(i){this.last=i,this.disposed&&this.throttle(i)}send(i){this.sink.next(i),this.throttle(i)}throttle(i){this.reset(),this.subscribe(this.durationSelector(i))}next(){this.complete()}complete(){this.dispose(),this.trailing&&this.send(this.last)}},Ia=class extends F{constructor(i,e,t=cg){super(i),this.durationSelector=e,this.config=t,this._throttle=new ol(this.sink,this.durationSelector,this.config.trailing),this._throttle.dispose()}next(i){this._throttle.disposed&&this.config.leading?this._throttle.send(i):this._throttle.cacheValue(i)}complete(){this._throttle.throttle=oe,this._throttle.complete(),super.complete()}},dg=$(Ia,"throttle"),lg={leading:!1,trailing:!0},ug=s=>$(Ia,"audit")(s,lg),nl=class extends F{next(){this.complete()}complete(){this.dispose(),this.sink.next(this.last)}},Aa=class extends F{constructor(i,e){super(i),this.durationSelector=e,this._debounce=new nl(this.sink),this._debounce.dispose()}next(i){this._debounce.dispose(),this._debounce.reset(),this._debounce.last=i,this._debounce.subscribe(this.durationSelector(i))}complete(){this._debounce.complete(),super.complete()}},hg=$(Aa,"debounce"),mg=s=>$(Aa,"debounceTime")(i=>Qd(s)),al=class extends F{constructor(i,e,t){super(i),this.count=e,this.defaultValue=t}next(i){this.count--===0&&(this.defaultValue=i,this.complete())}complete(){if(this.defaultValue===void 0){this.error(new Error("not enough elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},pg=$(al,"elementAt"),fg=s=>i=>ki(1)(Ra(e=>!s(e))(i)),cl=class extends F{constructor(i,e){super(i),this.f=e,this.i=0}next(i){this.f(i)?(this.sink.next(this.i++),this.complete()):++this.i}},_g=$(cl,"findIndex"),dl=class extends F{constructor(i,e,t){super(i),this.f=e,this.defaultValue=t,this.index=0}next(i){(!this.f||this.f(i,this.index++))&&(this.defaultValue=i,this.complete())}complete(){if(this.defaultValue===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},gg=$(dl,"first"),ll=class extends F{constructor(i,e,t){super(i),this.f=e,this.defaultValue=t,this.index=0}next(i){(!this.f||this.f(i,this.index++))&&(this.defaultValue=i)}complete(){if(this.defaultValue===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},Tg=$(ll,"last"),ul=class extends F{constructor(i,e){super(i),this.predicate=e,this.index=0}next(i){this.predicate(i,this.index++)?this.result=!0:(this.result=!1,this.complete())}complete(){if(this.result===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.result);super.complete()}},Eg=$(ul,"every");var hl=class extends F{constructor(i,e,t){super(i),this.f=e,typeof t=="undefined"?this.next=r=>{this.acc=r,this.resetNext(),this.sink.next(this.acc)}:this.acc=t}next(i){this.sink.next(this.acc=this.f(this.acc,i))}},Al=$(hl,"scan"),ml=class extends F{constructor(){super(...arguments),this.hasLast=!1}next(i){this.hasLast?this.sink.next([this.last,i]):this.hasLast=!0,this.last=i}},Sg=$(ml,"pairwise"),ya=class extends F{constructor(i,e,t){super(i),this.mapper=e,this.thisArg=t}next(i){super.next(this.mapper.call(this.thisArg,i))}},Cl=$(ya,"map"),Ig=s=>$(ya,"mapTo")(i=>s),gs=class extends F{constructor(i,e,t){super(i),this.data=e,this.context=t}next(i){let e=this.context.combineResults;e?this.sink.next(e(this.data,i)):this.sink.next(i)}tryComplete(){this.context.resetComplete(),this.dispose()}},Ts=class extends F{constructor(i,e,t){super(i),this.makeSource=e,this.combineResults=t,this.index=0}subInner(i,e){let t=this.currentSink=new e(this.sink,i,this);this.complete=this.tryComplete,t.complete=t.tryComplete,t.subscribe(this.makeSource(i,this.index++))}tryComplete(){this.currentSink.resetComplete(),this.dispose()}},ba=class extends gs{},Na=class extends Ts{next(i){this.subInner(i,ba),this.next=e=>{this.currentSink.dispose(),this.subInner(e,ba)}}},er=$(Na,"switchMap");function Ma(s){return(i,e)=>s(()=>i,e)}var Vo=Ma($(Na,"switchMapTo")),pl=class extends gs{tryComplete(){this.dispose(),this.context.sources.length?this.context.subNext():(this.context.resetNext(),this.context.resetComplete())}},va=class extends Ts{constructor(){super(...arguments),this.sources=[],this.next2=this.sources.push.bind(this.sources)}next(i){this.next2(i),this.subNext()}subNext(){this.next=this.next2,this.subInner(this.sources.shift(),pl),this.disposed&&this.sources.length===0&&this.currentSink.resetComplete()}tryComplete(){this.sources.length===0&&this.currentSink.resetComplete(),this.dispose()}},Ag=$(va,"concatMap"),Cg=Ma($(va,"concatMapTo")),fl=class extends gs{tryComplete(){this.context.inners.delete(this),super.dispose(),this.context.inners.size===0&&this.context.resetComplete()}},Da=class extends Ts{constructor(){super(...arguments),this.inners=new Set}next(i){this.subInner(i,fl),this.inners.add(this.currentSink)}tryComplete(){this.inners.size===1?this.inners.forEach(i=>i.resetComplete()):this.dispose()}},Rg=$(Da,"mergeMap"),yg=Ma($(Da,"mergeMapTo")),_l=class extends gs{dispose(){this.context.resetNext(),super.dispose()}},Oa=class extends Ts{next(i){this.next=oe,this.subInner(i,_l)}},bg=$(Oa,"exhaustMap"),Ng=Ma($(Oa,"exhaustMapTo")),gl=class extends F{constructor(i,e){super(i),this.f=e,this.groups=new Map}next(i){let e=this.f(i),t=this.groups.get(e);typeof t=="undefined"&&(t=rt(),t.key=e,this.groups.set(e,t),super.next(t)),t.next(i)}complete(){this.groups.forEach(i=>i.complete()),super.complete()}error(i){this.groups.forEach(e=>e.error(i)),super.error(i)}},vg=$(gl,"groupBy"),Tl=class extends F{constructor(){super(...arguments),this.start=new Date}next(i){this.sink.next({value:i,interval:Number(new Date)-Number(this.start)}),this.start=new Date}},Dg=$(Tl,"timeInterval"),El=class extends F{constructor(i,e){super(i),this.miniseconds=e,this.buffer=[],this.id=setInterval(()=>{this.sink.next(this.buffer.concat()),this.buffer.length=0},this.miniseconds)}next(i){this.buffer.push(i)}complete(){this.sink.next(this.buffer),super.complete()}dispose(){clearInterval(this.id),super.dispose()}},Og=$(El,"bufferTime"),Sl=class extends F{constructor(i,e){super(i),this.buffer=[],this.delayTime=e}dispose(){clearTimeout(this.timeoutId),super.dispose()}delay(i){this.timeoutId=setTimeout(()=>{let e=this.buffer.shift();if(e){let{time:t,data:r}=e;super.next(r),this.buffer.length&&this.delay(Number(this.buffer[0].time)-Number(t))}},i)}next(i){this.buffer.length||this.delay(this.delayTime),this.buffer.push({time:new Date,data:i})}complete(){this.timeoutId=setTimeout(()=>super.complete(),this.delayTime)}},Mg=$(Sl,"delay"),Il=class extends F{constructor(i,e){super(i),this.selector=e}error(i){this.dispose(),this.selector(i)(this.sink)}},Bo=$(Il,"catchError");var kg=()=>s=>new Promise((i,e)=>{let t;new br(s,r=>t=r,e,()=>i(t))}),Lg=()=>s=>{let i;return new ReadableStream({start(e){i=new br(s,e.enqueue.bind(e),e.error.bind(e),e.close.bind(e))},cancel(){i.dispose()}})},be=(s=oe,i=oe,e=oe)=>t=>new br(t,s,i,e),Rl=class extends F{constructor(i,e){super(i),e instanceof Function?this.next=t=>{e(t),i.next(t)}:(e.next&&(this.next=t=>{e.next(t),i.next(t)}),e.complete&&(this.complete=()=>{e.complete(),i.complete()}),e.error&&(this.error=t=>{e.error(t),i.error(t)}))}},bl=$(Rl,"tap"),yl=class extends F{constructor(i,e){super(i),this.timeout=e,this.id=setTimeout(()=>this.error(new Uo(this.timeout)),this.timeout)}next(i){super.next(i),clearTimeout(this.id),this.next=super.next}dispose(){clearTimeout(this.id),super.dispose()}},Pg=$(yl,"timeout"),wg=(s=1/0)=>i=>{if(i instanceof gt){let e=Z(t=>{let r=s,o=new F(t);o.error=n=>{r-- >0?o.subscribe(i):t.error(n)},o.sourceId=e.id,o.subscribe(i)},"retry",[s]);return e.source=i,fe.pipe(e),e}else return e=>{let t=s,r=new F(e);r.error=o=>{t-- >0?i(r):e.error(o)},i(r)}};var xg=_e(Xd(250),Cl(()=>performance.now()),Mi());var cm=s=>i=>{let e=performance.now();_e(xg,Ra(t=>t-e<s),ki(1))(i)};var Vg=[0,1,1,1,0,0,1,0],Or=class extends qe{constructor(e,t){super(e,Object.assign({useDefaultProgram:!0,createTexture:!1,name:"destination"},t));c(this,"_intervalId",0);c(this,"_sequence",0);c(this,"checkGLError",!1);c(this,"checkVisibilityChange");e instanceof Be?this.ctx2d=e.ctx||null:e.available&&(t!=null&&t.mirrorUpAndDown)&&this.setTexBuffer(Vg)}start(e){this.log.info(`${this.name} start render ${e} fps`),re.clearTask(this._intervalId),this._intervalId=re.run("intervalInWorker",()=>{if(e!==this.context.frameRate&&(re.clearTask(this._intervalId),this.start(this.context.frameRate)),this.requestFrame(this._sequence++),this.checkGLError&&this.context instanceof De){let r=this.context.ctx.getError();r&&this.context.destroy(new b({code:S.VIDEO_MANAGER_ERROR,extraCode:5,message:`${this.name} req ${this._sequence} render ${this.totalFrames} faild ${r}`}))}},{fps:this.context.frameRate})}render(e){var t;return(t=this.input)!=null&&t.requestFrame(e)?(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0):!1}addInput(e,...t){super.addInput(e,...t),this.start(this.context.frameRate)}update(e=0){if(this._intervalId&&(re.clearTask(this._intervalId),this._intervalId=0,e===1)){this.log.info(`${this.name} use requestVideoFrameCallback`);let t=()=>{document.hidden&&(this.start(this.context.frameRate),this.log.info(`${this.name} use timer`),document.removeEventListener("visibilitychange",t))};document.addEventListener("visibilitychange",t)}this.requestFrame(this._sequence++)}removeInput(e){super.removeInput(e),re.clearTask(this._intervalId)}resize(e,t){super.resize(e,t),this.context.setSize(e,t)}close(){super.close(),re.clearTask(this._intervalId),document.removeEventListener("visibilitychange",this.checkVisibilityChange)}},Es=class extends Or{constructor(e,t){super(e,t);c(this,"_videoTrack");c(this,"_muteOb");c(this,"_closedOb",Ie(this,"closed"));c(this,"_subscription");c(this,"_canvasContainer");Number(qi)<17&&(this._canvasContainer=document.createElement("div"),this._canvasContainer.style.display="none"),[this._videoTrack]=e._canvas.captureStream().getVideoTracks(),this._muteOb=Ie(this._videoTrack,"mute"),_e(Ie(this._videoTrack,"ended"),Pe(this._closedOb),be(()=>{this.context.destroy(new b({code:S.VIDEO_MANAGER_ERROR,extraCode:8,message:"video track ended"}))}))}enableCheckMute(){this._subscription=_e(this._muteOb,Pe(this._closedOb),Vo(cm(5e3)),be(()=>{var e;(e=this._videoTrack)!=null&&e.muted&&this.context.destroy(new b({code:S.VIDEO_MANAGER_ERROR,extraCode:7,message:"video track muted"}))}))}disableCheckMute(){var e;(e=this._subscription)==null||e.dispose()}get videoTrack(){return this._videoTrack}putCanvasIntoDom(){!this.context._canvas||!this._canvasContainer||document.getElementById(this.context._canvas.id)||(this.log.info(`${this.name} put canvas to body`),document.body.appendChild(this._canvasContainer),this._canvasContainer.appendChild(this.context._canvas))}render(e){return this.putCanvasIntoDom(),super.render(e)}render2d(e){return this.putCanvasIntoDom(),super.render2d(e)}close(){var e,t;super.close(),(e=this._videoTrack)==null||e.stop(),delete this._videoTrack,(t=this._canvasContainer)==null||t.remove()}},ka=class extends Es{render(i){var e;return!!((e=this.input)!=null&&e.requestFrame(i))}};var La=class extends Es{constructor(e,t,r){super(e,{name:"smallDestination",logger:r});this.resolution=t}resize(e,t){let r,o=e*t,n=this.resolution.width*this.resolution.height;this.log.info(`big res: ${e}*${t} small res: ${this.resolution.width}*${this.resolution.height} `),o>n?r=o/n:(this.log.warn(`Small stream resolution is not smaller than big stream, which is invalid. big: ${e} * ${t} small: ${this.resolution.width} * ${this.resolution.height}`),r=o/(160*120)),super.resize(e/Math.sqrt(r),t/Math.sqrt(r))}};var Fo=class extends qe{constructor(e,t){super(e,v({name:"imageSource"},t));c(this,"_lastImage");c(this,"_totalFrames",0);c(this,"_autoResize",!1);c(this,"_canvasRendered");c(this,"_videoCallbackId",0);this._autoResize=(t==null?void 0:t.autoResize)!==!1,ot===16&&(this._canvasRendered=rt(),_e(this._canvasRendered,Nr(this._image),er(r=>r instanceof HTMLCanvasElement?Ie(r,"rendered"):vr()),Pe(Ie(this,"closed")),be(()=>{this.update()})))}tryVideoFrameCallback(e){this._videoCallbackId&&e.cancelVideoFrameCallback(this._videoCallbackId),Sr()&&!document.hidden&&(this._videoCallbackId=e.requestVideoFrameCallback((t,r)=>{document.hidden||(this._totalFrames=r.presentedFrames,this.update(1))}))}_render(e,t){var a;let{width:r,height:o}=this,{image:n}=this;if(n instanceof HTMLVideoElement){if(this.tryVideoFrameCallback(n),{videoWidth:r,videoHeight:o}=n,!r||!o)return!1;n.width=r,n.height=o}else if(n instanceof HTMLImageElement||n instanceof ImageData||n instanceof ImageBitmap){if({width:r,height:o}=n,n!==this._lastImage)this._lastImage=n;else if(r===this.width&&o===this.height)return!1}else n instanceof HTMLCanvasElement||n instanceof OffscreenCanvas?({width:r,height:o}=n,this._lastImage=n):typeof VideoFrame!="undefined"&&n instanceof VideoFrame&&({displayWidth:r,displayHeight:o}=n,(a=this._lastImage)==null||a.close(),this._lastImage=n);if(!this._autoResize)return!0;if(this.width===r&&this.height===o&&this.totalFrames){if(t){this.useTexture();let d=this.context.ctx;d.texSubImage2D(d.TEXTURE_2D,0,0,0,d.RGBA,d.UNSIGNED_BYTE,n)}}else{if(t){this.useTexture();let d=this.context.ctx;d.texImage2D(d.TEXTURE_2D,0,d.RGBA,d.RGBA,d.UNSIGNED_BYTE,n)}this.resize(r,o)}return!0}get image(){return this._image}set image(e){var t;(t=this._canvasRendered)==null||t.next(e),this._image=e}render(e){return this._render(e,!0)}render2d(e){return this._render(e,!1)}},Ho=class extends Fo{constructor(e,t,r){super(e,r);this._player=t;this.name="videoPlayerSource",_e(Ie(this._player,pe.PLAYER_STATE_CHANGED),Pe(Ie(this,"closed")),Ca(({state:o})=>o==="PLAYING"),be(()=>{this.tryVideoFrameCallback(this._player.element)}))}get image(){return this._player.element}},Li=class extends Ho{constructor(i,e,t){super(i,new at({id:t.name,track:e,muted:!0,container:null,objectFit:"contain",log:t.logger}),t),this.name="videoTrackSource",this._player.play()}replaceTrack(i){this._player.setTrack(i),this._player.play()}close(){super.close(),this._player.stop()}};var Fg=`
30
32
  // \u9876\u70B9\u7740\u8272\u5668
31
33
  attribute vec4 a_position;
32
34
  attribute vec2 a_texCoord;
@@ -36,7 +38,7 @@ void main() {
36
38
  gl_Position = a_position;
37
39
  v_texCoord = a_texCoord;
38
40
  }
39
- `,yy=`
41
+ `,Hg=`
40
42
  // \u7247\u5143\u7740\u8272\u5668
41
43
  precision mediump float;
42
44
  varying vec2 v_texCoord;
@@ -44,65 +46,31 @@ uniform sampler2D u_texture;
44
46
 
45
47
  void main() {
46
48
  gl_FragColor = texture2D(u_texture, v_texCoord);
47
- } `;var qo=class extends Z{constructor(e){super();l(this,"frameRate");l(this,"_canvas");l(this,"log");l(this,"hasAlpha",!1);l(this,"name");l(this,"error");this.name=e.name,this.log=e.logger.createChild({id:`vc-${this.name}`}),this.frameRate=e.frameRate}set width(e){this._canvas&&(this._canvas.width=e)}get width(){var e;return((e=this._canvas)==null?void 0:e.width)||0}set height(e){this._canvas&&(this._canvas.height=e)}get height(){var e;return((e=this._canvas)==null?void 0:e.height)||0}setSize(e,r){this._canvas&&(this._canvas.width=e,this._canvas.height=r)}createVideoTrackSource(e,r){return new Ci(this,e,{logger:this.log,name:r})}createVideoTrackDestination(e){return new Ys(this,e)}createVideoImageSource(e,r){return new za(this,r?Object.assign(r,{logger:this.log,image:e}):{logger:this.log,image:e})}createVideoPlayerSource(e,r){return new Ja(this,e,r?Object.assign(r,{logger:this.log}):{logger:this.log})}get available(){return this.state==="created"}disconnect(){this.emit("disconnect")}};l(qo,"_ids",0);var Ay={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},st=class extends qo{constructor(){super(...arguments);l(this,"defaultProgam");l(this,"defaultVShader");l(this,"defaultFShader");l(this,"ctx")}create(){if(this._canvas||(this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${qo._ids++}`),this.ctx=this._canvas.getContext("webgl2",Ay),!this.ctx)throw new de({code:Y.VIDEO_MANAGER_ERROR,extraCode:2,message:"webgl2 not supported"});this.defaultVShader=this.createShader(this.ctx.VERTEX_SHADER,Sy),this.defaultFShader=this.createShader(this.ctx.FRAGMENT_SHADER,yy),this.defaultProgam=this.createProgram(this.defaultVShader,this.defaultFShader),this._canvas.addEventListener("webglcontextlost",()=>{this.destroy(new de({code:Y.VIDEO_MANAGER_ERROR,extraCode:4,message:"webgl context lost"}))}),this.log.info("video context created use webgl")}destroy(e){let r="";return e&&(r=e.message,this.error=e,X.addFailedEvent({key:512702,error:e})),this.disconnect(),this.log.info(`video context destroy${r}`?`: ${r}`:""),this.ctx&&(this.ctx.deleteShader(this.defaultVShader),this.ctx.deleteShader(this.defaultFShader),this.ctx.deleteProgram(this.defaultProgam),delete this.ctx),e}set width(e){var r;(r=this.ctx)==null||r.viewport(0,0,e,this.height),super.width=e}set height(e){var r;(r=this.ctx)==null||r.viewport(0,0,this.width,e),super.height=e}setSize(e,r){var o;(o=this.ctx)==null||o.viewport(0,0,e,r),super.setSize(e,r)}createShader(e,r){let o=this.ctx,s=o.createShader(e);return o.shaderSource(s,r),o.compileShader(s),s}createProgram(e,r){let o=this.ctx,s=o.createProgram();return o.attachShader(s,e),o.attachShader(s,r),o.linkProgram(s),o.getProgramParameter(s,o.LINK_STATUS)||this.log.error(o.getProgramInfoLog(s)),s}};l(st,"UNAVAILABLE","unavailable"),q([be(Z.INIT,"created",{sync:!0,fail(i){X.addFailedEvent({key:512700,error:i.cause||i})},success(){X.addSuccessEvent({key:512700})}})],st.prototype,"create",1),q([be("created",Z.INIT,{ignoreError:!0,sync:!0,success(i){i&&this.emit(st.UNAVAILABLE,i),this.removeAllListeners()}})],st.prototype,"destroy",1);var Rt=class extends qo{constructor(){super(...arguments);l(this,"ctx")}create(e){if(this.hasAlpha=e.alpha,this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${qo._ids++}`,this.ctx=this._canvas.getContext("2d",{alpha:e.alpha}),!this.ctx)throw new de({code:Y.VIDEO_MANAGER_ERROR,extraCode:2,message:"2d context not supported"});this.log.info("video context created use 2d")}destroy(e){let r="";e&&(r=e.message,this.error=e,X.addFailedEvent({key:512703,error:e})),this.disconnect(),this.log.info(`video context destroy ${r?`: ${r}`:""}`),delete this.ctx,this._canvas&&(this._canvas.remove(),this._canvas.width=0,this._canvas.height=0,delete this._canvas),this.removeAllListeners(),X.addSuccessEvent({key:512703})}};q([be(Z.INIT,"created",{sync:!0,fail(i){X.addFailedEvent({key:512701,error:i.cause||i})},success(){X.addSuccessEvent({key:512701})}})],Rt.prototype,"create",1),q([be("created",Z.INIT,{ignoreError:!0,sync:!0})],Rt.prototype,"destroy",1);function by(i){return[15,30,45,60].reduce((e,r)=>Math.abs(r-i)<Math.abs(e-i)?r:e)}var Yi=class extends fr{constructor(e,r,o=4){super(e,r,o);l(this,"mediaType",4);l(this,"source");l(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,framesReceived:0,framesDecoded:0,frameWidth:0,frameHeight:0,end2EndDelay:0,jitterBufferDelay:0});this.manager=e.videoManager}play(e,r){return(nt(r==null?void 0:r.canvasRender)?r.canvasRender:rr===17)&&!this.source&&this.useCanvasPlayer(),super.play(e,r).then(()=>{this.player.calculateStat()})}useCanvasPlayer(){if(this.log.info(`useCanvasPlayer(), has element:${!!this.player.element}`),!this.player.element)return;let e=new Rt({frameRate:15,logger:this.log,name:this.userId});e.create({alpha:!1});let r=new jo(e,{name:"remotePlayer",logger:this.log});this.source=e.createVideoPlayerSource(this.player),this.source.connect(r),this.player.setCanvas(e._canvas),Mo()||(this.updateCanvasPlayerFPS=this.updateCanvasPlayerFPS.bind(this,e),this.room.on("heartbeat-report",this.updateCanvasPlayerFPS,this))}updateCanvasPlayerFPS(e){let r=this.decodeFPS,o=by(r);if(!Fe(r)||r<=0){this.log.debug(`updateCanvasPlayerFPS() ignore decoder: ${r} `);return}if(o===e.frameRate){this.log.debug(`updateCanvasPlayerFPS() ignore ClosestFPS ${o} == ${e.frameRate}`);return}this.log.info(`updateCanvasPlayerFPS() decoder: ${r}, closest: ${o}, current: ${e.frameRate}`),e.frameRate=o}get decodeFPS(){var a;let{msg_video_status:e}=((a=this.room.heartbeatReport)==null?void 0:a.msg_down_stream_info.find(d=>d.msg_user_info.str_identifier===this.userId))||{},r=this.mediaType===2?7:this.isSmall?3:2;if(!e||e.length===0)return 0;let o=e.find(d=>d.uint32_video_stream_type===r);return(o==null?void 0:o.uint32_video_dec_fps)||0}stop(){return this.room.off("heartbeat-report",this.updateCanvasPlayerFPS,this),super.stop()}decodeFrame(e){if(!this.manager)return e;for(let r of this.manager.decodePipeline)if(!!r&&(e=r({frame:e,track:this}),!e))return;return e}get isBig(){return this.mediaType===4}get isSmall(){return this.mediaType===8}changeType(e){this.room.changeType(e,this.user)}get isAvailable(){return this.user.muteState.videoAvailable}setMirror(e){e==="publish"||e==="both"||super.setMirror(e)}onDecodeDowngradeStateChanged(e){this.emit("decode-downgrade-state-changed",e)}},yu=class extends Yi{constructor(e,r){super(e,r,2);l(this,"mediaType",2);l(this,"objectFit","contain")}get isAvailable(){return this.user.muteState.hasAuxiliary}};var Zs=new Map;B.on(O.JOIN_SUCCESS,({room:i})=>{ze(i.userId,{eventId:32788})});B.on(O.LEAVE_START,({room:i})=>{ze(i.userId,{eventId:32789})});B.on(O.LOCAL_TRACK_PUBLISHED,({track:i})=>{if(i.room){let t=32769;i.mediaType===4?t=32768:i.mediaType===2&&(t=32805),ze(i.room.userId,{eventId:t})}});B.on(O.LOCAL_TRACK_UNPUBLISHED,({track:i})=>{if(i.room){let t=32771;i.mediaType===4?t=32770:i.mediaType===2&&(t=32806),ze(i.room.userId,{eventId:t})}});B.on(O.TRACK_MUTED,({track:i})=>{i.room&&(i.kind===D.AUDIO?ze(i.room.userId,{eventId:i.isRemote?32785:32772,remoteUserId:i.isRemote?i.userId:void 0}):ze(i.room.userId,{eventId:i.isRemote?32784:32773,remoteUserId:i.isRemote?i.userId:void 0}))});B.on(O.TRACK_UNMUTED,({track:i})=>{i.room&&(i.kind===D.AUDIO?ze(i.room.userId,{eventId:i.isRemote?32787:32774,remoteUserId:i.isRemote?i.userId:void 0}):ze(i.room.userId,{eventId:i.isRemote?32786:32775,remoteUserId:i.isRemote?i.userId:void 0}))});B.on(O.REMOTE_TRACK_SUBSCRIBED,({track:i})=>{!i.room||(i.mediaType===1&&ze(i.room.userId,{eventId:32777,remoteUserId:i.userId}),i.mediaType===4&&ze(i.room.userId,{eventId:32776,remoteUserId:i.userId}),i.mediaType===8&&ze(i.room.userId,{eventId:32803,remoteUserId:i.userId}))});B.on(O.REMOTE_TRACK_UNSUBSCRIBED,({track:i})=>{!i.room||(i.mediaType===1&&ze(i.room.userId,{eventId:32779,remoteUserId:i.userId}),i.mediaType===4&&ze(i.room.userId,{eventId:32778,remoteUserId:i.userId}),i.mediaType===8&&ze(i.room.userId,{eventId:32804,remoteUserId:i.userId}))});B.on(O.SWITCH_DEVICE_SUCCESS,({track:i})=>{i.room&&ze(i.room.userId,{eventId:i.kind===D.VIDEO?32780:32781})});B.on(O.LOCAL_TRACK_REPLACED,({track:i})=>{i.room&&ze(i.room.userId,{eventId:i.kind===D.VIDEO?32782:32783})});B.on(O.SIGNAL_CONNECTION_STATE_CHANGED,({room:i,prevState:t,state:e})=>{let r;switch(e){case"CONNECTED":t==="RECONNECTING"?r=32795:r=32791;break;case"DISCONNECTED":t==="RECONNECTING"?r=32796:r=32790;break;case"RECONNECTING":r=32794;break}r&&ze(i.userId,{eventId:r})});B.on(O.PEER_CONNECTION_STATE_CHANGED,({room:i,prevState:t,state:e,remoteUserId:r})=>{let o=!!r,s;switch(e){case"CONNECTED":t==="RECONNECTING"?s=o?32801:32798:s=o?32793:32792;break;case"DISCONNECTED":t==="RECONNECTING"&&(s=o?32802:32799);break;case"RECONNECTING":s=o?32800:32797;break}s&&ze(i.userId,{eventId:s,remoteUserId:r})});B.on(O.VIDEO_CODEC_IMPLEMENTATION_CHANGED,({implementation:i,userId:t,remoteUserId:e,codec:r,isHWCodec:o,prevImplementation:s,streamType:a})=>{let d=o?1:0;s||(d=o?3:2);let h=r==="h264"?0:2,p={eventId:4004,param1:d,param2:h,streamType:a||2};e&&(p.remoteUserId=e,p.eventId=4005),ze(t,p),X.addEnum({key:e?514701:513701,value:d}),X.addEnum({key:e?514700:513700,value:h})});B.on(O.LOCAL_TRACK_RECAPTURE,({track:i,error:t})=>{if(i.userId){let e={eventId:2003,param1:0};i.kind===D.AUDIO?(e.streamType=1,t&&(e.param1=2)):(e.streamType=i.streamType==="auxiliary"?7:2,t&&(e.param1=8)),ze(i.userId,e)}});function ze(i,t){let e=me(J({},t),{timestamp:qn()});Zs.has(i)?Zs.get(i).push(e):Zs.set(i,[e])}function Fg(i){if(Zs.has(i)){let t=Zs.get(i).map(e=>({uint32_event_id:e.eventId,uint64_date:e.timestamp,str_userid:e.remoteUserId,uint32_param1:e.param1,uint32_param2:e.param2,uint32_video_stream_type:e.streamType}));return Zs.delete(i),t}return[]}var vy=Pi(Hi(),1);var Di=class extends Z{initialize(){return v(this,null,function*(){this.decoder=new VideoDecoder({output:e=>{this.emit("videoFrame",e)},error:e=>{this.close(),this.emit("error",e)}})})}configure(e){this.config=e,this.decoder.configure(me(J({},e),{codec:this.getCodec(e)}))}getCodec(e){switch(e.codec){case"hevc":return"hvc1.1.6.L0.12.34.56.78.9A.BC";case"av1":return"av01.0.05M.08";case"avc":return"avc1.420028";default:return e.codec}}decode(e){this.decoder.state==="configured"&&this.decoder.decode(new EncodedVideoChunk(e))}flush(){this.decoder.flush()}reset(){this.decoder.reset()}close(){this.decoder.state!=="closed"&&this.decoder.close()}};q([be([Z.INIT,"closed"],"initialized")],Di.prototype,"initialize",1),q([be("initialized","configured",{sync:!0})],Di.prototype,"configure",1),q([Z_("configured")],Di.prototype,"decode",1),q([be([],Z.INIT)],Di.prototype,"reset",1),q([be([],"closed",{ignoreError:!0,sync:!0})],Di.prototype,"close",1);function Ry(){var i;self.onmessage=t=>{if(t.data.type==="init"){let{canvas:e,wasmScript:r,wasmBinary:o}=t.data,s=e==null?void 0:e.getContext("2d"),a=0,d=0,h={wasmBinary:o,postRun:()=>{i=new h.VideoDecoder({videoInfo(p,T){a=p,d=T,console.log("video info",p,T)},yuvData(p,T){let y=a*d,R=y>>2,N=h.HEAPU32[p>>2],j=h.HEAPU32[(p>>2)+1],W=h.HEAPU32[(p>>2)+2],F=h.HEAPU8.subarray(N,N+y),Ie=h.HEAPU8.subarray(j,j+R),Vt=h.HEAPU8.subarray(W,W+R),Xe=new Uint8Array(y+R+R);Xe.set(F),Xe.set(Ie,y),Xe.set(Vt,y+R);let Nt=new VideoFrame(Xe,{codedWidth:a,codedHeight:d,format:"I420",timestamp:T});e?(s==null||s.drawImage(Nt,0,0,e.width,e.height),s==null||s.commit()):self.postMessage({type:"yuvData",videoFrame:Nt},[Nt])}}),self.postMessage({type:"ready"})}};Function("var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;return "+r)()(h)}else if(t.data.type==="decode"){let{packet:e}=t.data;i==null||i.decode(e.data,e.type=="key",e.timestamp)}else if(t.data.type==="setCodec"){let{codec:e,format:r,description:o}=t.data;i==null||i.setCodec(e,r,o!=null?o:"")}}}var Qr=class extends Z{constructor(e,r,o=!1,s,a=!1){super();this.createModule=e;this.wasmBinary=r;this.workerMode=o;this.canvas=s;this.yuvMode=a;this.module={};this.width=0;this.height=0}initialize(e){return v(this,null,function*(){var o;if(this.workerMode){let s=new RegExp("\\{(.+)\\}","s").exec(Ry.toString())[1];this.worker=new Worker(URL.createObjectURL(new Blob([s],{type:"text/javascript"})));let a=(o=this.canvas)==null?void 0:o.transferControlToOffscreen(),d=yield this.wasmBinary;return console.warn("worker mode",d),this.worker.postMessage({type:"init",canvas:a,wasmScript:this.createModule.toString(),wasmBinary:d},a?[a,d]:[d]),new Promise(h=>{this.worker.onmessage=p=>{if(p.data.type==="ready")delete this.wasmBinary,h(),console.warn("worker mode initialize success");else if(p.data.type==="yuvData"){let{videoFrame:T}=p.data;this.emit("videoFrame",T)}}})}let r=this.module;return this.wasmBinary&&(r.wasmBinary=yield this.wasmBinary),r.print=s=>console.log(s),r.printErr=s=>console.log(`[JS] ERROR: ${s}`),r.onAbort=()=>console.log("[JS] FATAL: WASM ABORTED"),new Promise(s=>{r.postRun=a=>{this.decoder=new this.module.VideoDecoder(this),console.log("video soft decoder initialize success"),s()},e&&Object.assign(r,e),this.createModule(r)})})}configure(e){var r,o,s;this.config=e,(o=this.decoder)==null||o.setCodec(this.config.codec,this.config.description?"avcc":"annexb",(r=this.config.description)!=null?r:""),(s=this.worker)==null||s.postMessage({type:"setCodec",codec:this.config.codec,format:this.config.description?"avcc":"annexb",description:this.config.description})}decode(e){var r,o;(r=this.decoder)==null||r.decode(e.data,e.type=="key",e.timestamp),this.state==="configured"&&((o=this.worker)==null||o.postMessage({type:"decode",packet:e}))}flush(){}reset(){this.config=void 0,this.decoder&&this.decoder.clear()}close(){this.removeAllListeners(),this.decoder&&(this.decoder.clear(),this.decoder.delete())}videoInfo(e,r){this.width=e,this.height=r;let o={width:e,height:r};this.emit("videoCodecInfo",o)}yuvData(e,r){if(!this.module)return;let o=this.width*this.height,s=o>>2,a=this.module.HEAPU32[e>>2],d=this.module.HEAPU32[(e>>2)+1],h=this.module.HEAPU32[(e>>2)+2],p=this.module.HEAPU8.subarray(a,a+o),T=this.module.HEAPU8.subarray(d,d+s),y=this.module.HEAPU8.subarray(h,h+s);if(this.yuvMode){this.emit("videoFrame",[p,T,y]);return}let R=new Uint8Array(o+s+s);R.set(p),R.set(T,o),R.set(y,o+s),this.emit("videoFrame",new VideoFrame(R,{codedWidth:this.width,codedHeight:this.height,format:"I420",timestamp:r}))}errorInfo(e){let r={errMsg:e};this.emit("error",r)}};q([be([Z.INIT,"closed"],"initialized")],Qr.prototype,"initialize",1),q([be("initialized","configured")],Qr.prototype,"configure",1),q([be([],Z.INIT)],Qr.prototype,"reset",1),q([be([],"closed")],Qr.prototype,"close",1);var Cy=(()=>{var i=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return function(t={}){var e=t,r,o;e.ready=new Promise((n,c)=>{r=n,o=c});var s=Object.assign({},e),a=[],d="./this.program",h=(n,c)=>{throw c},p=typeof window=="object",T=typeof importScripts=="function",y=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",R="";function N(n){return e.locateFile?e.locateFile(n,R):R+n}var j,W,F,Ie;(p||T)&&(T?R=self.location.href:typeof document!="undefined"&&document.currentScript&&(R=document.currentScript.src),i&&(R=i),R.indexOf("blob:")!==0?R=R.substr(0,R.replace(/[?#].*/,"").lastIndexOf("/")+1):R="",j=n=>{var c=new XMLHttpRequest;return c.open("GET",n,!1),c.send(null),c.responseText},T&&(F=n=>{var c=new XMLHttpRequest;return c.open("GET",n,!1),c.responseType="arraybuffer",c.send(null),new Uint8Array(c.response)}),W=(n,c,u)=>{var m=new XMLHttpRequest;m.open("GET",n,!0),m.responseType="arraybuffer",m.onload=()=>{if(m.status==200||m.status==0&&m.response){c(m.response);return}u()},m.onerror=u,m.send(null)},Ie=n=>document.title=n);var Vt=e.print||console.log.bind(console),Xe=e.printErr||console.error.bind(console);Object.assign(e,s),s=null,e.arguments&&(a=e.arguments),e.thisProgram&&(d=e.thisProgram),e.quit&&(h=e.quit);var Nt;e.wasmBinary&&(Nt=e.wasmBinary);var fe=e.noExitRuntime||!0;typeof WebAssembly!="object"&&kr("no native wasm support detected");var fn,Ge,_n=!1,sl;function ei(n,c){n||kr(c)}var Pe,tt,Qt,Yt,P,Me,gn,nc;function ac(){var n=fn.buffer;e.HEAP8=Pe=new Int8Array(n),e.HEAP16=Qt=new Int16Array(n),e.HEAP32=P=new Int32Array(n),e.HEAPU8=tt=new Uint8Array(n),e.HEAPU16=Yt=new Uint16Array(n),e.HEAPU32=Me=new Uint32Array(n),e.HEAPF32=gn=new Float32Array(n),e.HEAPF64=nc=new Float64Array(n)}var En,Tn=[],In=[],cc=[],nl=!1;function al(){if(e.preRun)for(typeof e.preRun=="function"&&(e.preRun=[e.preRun]);e.preRun.length;)dl(e.preRun.shift());bn(Tn)}function z(){nl=!0,!e.noFSInit&&!g.init.initialized&&g.init(),g.ignorePermissions=!1,Lr.init(),bn(In)}function cl(){if(e.postRun)for(typeof e.postRun=="function"&&(e.postRun=[e.postRun]);e.postRun.length;)ti(e.postRun.shift());bn(cc)}function dl(n){Tn.unshift(n)}function ul(n){In.unshift(n)}function ti(n){cc.unshift(n)}var se=0,ri=null,so=null;function wf(n){return n}function Ni(n){se++,e.monitorRunDependencies&&e.monitorRunDependencies(se)}function is(n){if(se--,e.monitorRunDependencies&&e.monitorRunDependencies(se),se==0&&(ri!==null&&(clearInterval(ri),ri=null),so)){var c=so;so=null,c()}}function kr(n){e.onAbort&&e.onAbort(n),n="Aborted("+n+")",Xe(n),_n=!0,sl=1,n+=". Build with -sASSERTIONS for more info.";var c=new WebAssembly.RuntimeError(n);throw o(c),c}var wi="data:application/octet-stream;base64,";function Sn(n){return n.startsWith(wi)}var xi;xi="videodec.wasm",Sn(xi)||(xi=N(xi));function yn(n){if(n==xi&&Nt)return new Uint8Array(Nt);if(F)return F(n);throw"both async and sync fetching of the wasm failed"}function ll(n){return!Nt&&(p||T)&&typeof fetch=="function"?fetch(n,{credentials:"same-origin"}).then(c=>{if(!c.ok)throw"failed to load wasm binary file at '"+n+"'";return c.arrayBuffer()}).catch(()=>yn(n)):Promise.resolve().then(()=>yn(n))}function dc(n,c,u){return ll(n).then(m=>WebAssembly.instantiate(m,c)).then(m=>m).then(u,m=>{Xe("failed to asynchronously prepare wasm: "+m),kr(m)})}function An(n,c,u,m){return!n&&typeof WebAssembly.instantiateStreaming=="function"&&!Sn(c)&&typeof fetch=="function"?fetch(c,{credentials:"same-origin"}).then(E=>{var S=WebAssembly.instantiateStreaming(E,u);return S.then(m,function(b){return Xe("wasm streaming compile failed: "+b),Xe("falling back to ArrayBuffer instantiation"),dc(c,u,m)})}):dc(c,u,m)}function w(){var n={a:WE};function c(m,E){var S=m.exports;return Ge=S,fn=Ge.E,ac(),En=Ge.H,ul(Ge.F),is("wasm-instantiate"),S}Ni("wasm-instantiate");function u(m){c(m.instance)}if(e.instantiateWasm)try{return e.instantiateWasm(n,c)}catch(m){Xe("Module.instantiateWasm callback failed with error: "+m),o(m)}return An(Nt,xi,n,u).catch(o),{}}var ce,He,bn=n=>{for(;n.length>0;)n.shift()(e)};function pl(n){this.excPtr=n,this.ptr=n-24,this.set_type=function(c){Me[this.ptr+4>>2]=c},this.get_type=function(){return Me[this.ptr+4>>2]},this.set_destructor=function(c){Me[this.ptr+8>>2]=c},this.get_destructor=function(){return Me[this.ptr+8>>2]},this.set_caught=function(c){c=c?1:0,Pe[this.ptr+12>>0]=c},this.get_caught=function(){return Pe[this.ptr+12>>0]!=0},this.set_rethrown=function(c){c=c?1:0,Pe[this.ptr+13>>0]=c},this.get_rethrown=function(){return Pe[this.ptr+13>>0]!=0},this.init=function(c,u){this.set_adjusted_ptr(0),this.set_type(c),this.set_destructor(u)},this.set_adjusted_ptr=function(c){Me[this.ptr+16>>2]=c},this.get_adjusted_ptr=function(){return Me[this.ptr+16>>2]},this.get_exception_ptr=function(){var c=kf(this.get_type());if(c)return Me[this.excPtr>>2];var u=this.get_adjusted_ptr();return u!==0?u:this.excPtr}}var os=0,ml=0;function uc(n,c,u){var m=new pl(n);throw m.init(c,u),os=n,ml++,os}var wt=n=>(P[Of()>>2]=n,n),De={isAbs:n=>n.charAt(0)==="/",splitPath:n=>{var c=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return c.exec(n).slice(1)},normalizeArray:(n,c)=>{for(var u=0,m=n.length-1;m>=0;m--){var E=n[m];E==="."?n.splice(m,1):E===".."?(n.splice(m,1),u++):u&&(n.splice(m,1),u--)}if(c)for(;u;u--)n.unshift("..");return n},normalize:n=>{var c=De.isAbs(n),u=n.substr(-1)==="/";return n=De.normalizeArray(n.split("/").filter(m=>!!m),!c).join("/"),!n&&!c&&(n="."),n&&u&&(n+="/"),(c?"/":"")+n},dirname:n=>{var c=De.splitPath(n),u=c[0],m=c[1];return!u&&!m?".":(m&&(m=m.substr(0,m.length-1)),u+m)},basename:n=>{if(n==="/")return"/";n=De.normalize(n),n=n.replace(/\/$/,"");var c=n.lastIndexOf("/");return c===-1?n:n.substr(c+1)},join:function(){var n=Array.prototype.slice.call(arguments);return De.normalize(n.join("/"))},join2:(n,c)=>De.normalize(n+"/"+c)},ii=()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return n=>crypto.getRandomValues(n);kr("initRandomDevice")},no=n=>(no=ii())(n),yt={resolve:function(){for(var n="",c=!1,u=arguments.length-1;u>=-1&&!c;u--){var m=u>=0?arguments[u]:g.cwd();if(typeof m!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!m)return"";n=m+"/"+n,c=De.isAbs(m)}return n=De.normalizeArray(n.split("/").filter(E=>!!E),!c).join("/"),(c?"/":"")+n||"."},relative:(n,c)=>{n=yt.resolve(n).substr(1),c=yt.resolve(c).substr(1);function u(x){for(var K=0;K<x.length&&x[K]==="";K++);for(var ie=x.length-1;ie>=0&&x[ie]==="";ie--);return K>ie?[]:x.slice(K,ie-K+1)}for(var m=u(n.split("/")),E=u(c.split("/")),S=Math.min(m.length,E.length),b=S,A=0;A<S;A++)if(m[A]!==E[A]){b=A;break}for(var k=[],A=b;A<m.length;A++)k.push("..");return k=k.concat(E.slice(b)),k.join("/")}},Ne=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,oi=(n,c,u)=>{for(var m=c+u,E=c;n[E]&&!(E>=m);)++E;if(E-c>16&&n.buffer&&Ne)return Ne.decode(n.subarray(c,E));for(var S="";c<E;){var b=n[c++];if(!(b&128)){S+=String.fromCharCode(b);continue}var A=n[c++]&63;if((b&224)==192){S+=String.fromCharCode((b&31)<<6|A);continue}var k=n[c++]&63;if((b&240)==224?b=(b&15)<<12|A<<6|k:b=(b&7)<<18|A<<12|k<<6|n[c++]&63,b<65536)S+=String.fromCharCode(b);else{var x=b-65536;S+=String.fromCharCode(55296|x>>10,56320|x&1023)}}return S},Mi=[],si=n=>{for(var c=0,u=0;u<n.length;++u){var m=n.charCodeAt(u);m<=127?c++:m<=2047?c+=2:m>=55296&&m<=57343?(c+=4,++u):c+=3}return c},vn=(n,c,u,m)=>{if(!(m>0))return 0;for(var E=u,S=u+m-1,b=0;b<n.length;++b){var A=n.charCodeAt(b);if(A>=55296&&A<=57343){var k=n.charCodeAt(++b);A=65536+((A&1023)<<10)|k&1023}if(A<=127){if(u>=S)break;c[u++]=A}else if(A<=2047){if(u+1>=S)break;c[u++]=192|A>>6,c[u++]=128|A&63}else if(A<=65535){if(u+2>=S)break;c[u++]=224|A>>12,c[u++]=128|A>>6&63,c[u++]=128|A&63}else{if(u+3>=S)break;c[u++]=240|A>>18,c[u++]=128|A>>12&63,c[u++]=128|A>>6&63,c[u++]=128|A&63}}return c[u]=0,u-E};function Zt(n,c,u){var m=u>0?u:si(n)+1,E=new Array(m),S=vn(n,E,0,E.length);return c&&(E.length=S),E}var hl=()=>{if(!Mi.length){var n=null;if(typeof window!="undefined"&&typeof window.prompt=="function"?(n=window.prompt("Input: "),n!==null&&(n+=`
48
- `)):typeof readline=="function"&&(n=readline(),n!==null&&(n+=`
49
- `)),!n)return null;Mi=Zt(n,!0)}return Mi.shift()},Lr={ttys:[],init:function(){},shutdown:function(){},register:function(n,c){Lr.ttys[n]={input:[],output:[],ops:c},g.registerDevice(n,Lr.stream_ops)},stream_ops:{open:function(n){var c=Lr.ttys[n.node.rdev];if(!c)throw new g.ErrnoError(43);n.tty=c,n.seekable=!1},close:function(n){n.tty.ops.fsync(n.tty)},fsync:function(n){n.tty.ops.fsync(n.tty)},read:function(n,c,u,m,E){if(!n.tty||!n.tty.ops.get_char)throw new g.ErrnoError(60);for(var S=0,b=0;b<m;b++){var A;try{A=n.tty.ops.get_char(n.tty)}catch(k){throw new g.ErrnoError(29)}if(A===void 0&&S===0)throw new g.ErrnoError(6);if(A==null)break;S++,c[u+b]=A}return S&&(n.node.timestamp=Date.now()),S},write:function(n,c,u,m,E){if(!n.tty||!n.tty.ops.put_char)throw new g.ErrnoError(60);try{for(var S=0;S<m;S++)n.tty.ops.put_char(n.tty,c[u+S])}catch(b){throw new g.ErrnoError(29)}return m&&(n.node.timestamp=Date.now()),S}},default_tty_ops:{get_char:function(n){return hl()},put_char:function(n,c){c===null||c===10?(Vt(oi(n.output,0)),n.output=[]):c!=0&&n.output.push(c)},fsync:function(n){n.output&&n.output.length>0&&(Vt(oi(n.output,0)),n.output=[])},ioctl_tcgets:function(n){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets:function(n,c,u){return 0},ioctl_tiocgwinsz:function(n){return[24,80]}},default_tty1_ops:{put_char:function(n,c){c===null||c===10?(Xe(oi(n.output,0)),n.output=[]):c!=0&&n.output.push(c)},fsync:function(n){n.output&&n.output.length>0&&(Xe(oi(n.output,0)),n.output=[])}}},lc=n=>{kr()},he={ops_table:null,mount(n){return he.createNode(null,"/",16895,0)},createNode(n,c,u,m){if(g.isBlkdev(u)||g.isFIFO(u))throw new g.ErrnoError(63);he.ops_table||(he.ops_table={dir:{node:{getattr:he.node_ops.getattr,setattr:he.node_ops.setattr,lookup:he.node_ops.lookup,mknod:he.node_ops.mknod,rename:he.node_ops.rename,unlink:he.node_ops.unlink,rmdir:he.node_ops.rmdir,readdir:he.node_ops.readdir,symlink:he.node_ops.symlink},stream:{llseek:he.stream_ops.llseek}},file:{node:{getattr:he.node_ops.getattr,setattr:he.node_ops.setattr},stream:{llseek:he.stream_ops.llseek,read:he.stream_ops.read,write:he.stream_ops.write,allocate:he.stream_ops.allocate,mmap:he.stream_ops.mmap,msync:he.stream_ops.msync}},link:{node:{getattr:he.node_ops.getattr,setattr:he.node_ops.setattr,readlink:he.node_ops.readlink},stream:{}},chrdev:{node:{getattr:he.node_ops.getattr,setattr:he.node_ops.setattr},stream:g.chrdev_stream_ops}});var E=g.createNode(n,c,u,m);return g.isDir(E.mode)?(E.node_ops=he.ops_table.dir.node,E.stream_ops=he.ops_table.dir.stream,E.contents={}):g.isFile(E.mode)?(E.node_ops=he.ops_table.file.node,E.stream_ops=he.ops_table.file.stream,E.usedBytes=0,E.contents=null):g.isLink(E.mode)?(E.node_ops=he.ops_table.link.node,E.stream_ops=he.ops_table.link.stream):g.isChrdev(E.mode)&&(E.node_ops=he.ops_table.chrdev.node,E.stream_ops=he.ops_table.chrdev.stream),E.timestamp=Date.now(),n&&(n.contents[c]=E,n.timestamp=E.timestamp),E},getFileDataAsTypedArray(n){return n.contents?n.contents.subarray?n.contents.subarray(0,n.usedBytes):new Uint8Array(n.contents):new Uint8Array(0)},expandFileStorage(n,c){var u=n.contents?n.contents.length:0;if(!(u>=c)){var m=1024*1024;c=Math.max(c,u*(u<m?2:1.125)>>>0),u!=0&&(c=Math.max(c,256));var E=n.contents;n.contents=new Uint8Array(c),n.usedBytes>0&&n.contents.set(E.subarray(0,n.usedBytes),0)}},resizeFileStorage(n,c){if(n.usedBytes!=c)if(c==0)n.contents=null,n.usedBytes=0;else{var u=n.contents;n.contents=new Uint8Array(c),u&&n.contents.set(u.subarray(0,Math.min(c,n.usedBytes))),n.usedBytes=c}},node_ops:{getattr(n){var c={};return c.dev=g.isChrdev(n.mode)?n.id:1,c.ino=n.id,c.mode=n.mode,c.nlink=1,c.uid=0,c.gid=0,c.rdev=n.rdev,g.isDir(n.mode)?c.size=4096:g.isFile(n.mode)?c.size=n.usedBytes:g.isLink(n.mode)?c.size=n.link.length:c.size=0,c.atime=new Date(n.timestamp),c.mtime=new Date(n.timestamp),c.ctime=new Date(n.timestamp),c.blksize=4096,c.blocks=Math.ceil(c.size/c.blksize),c},setattr(n,c){c.mode!==void 0&&(n.mode=c.mode),c.timestamp!==void 0&&(n.timestamp=c.timestamp),c.size!==void 0&&he.resizeFileStorage(n,c.size)},lookup(n,c){throw g.genericErrors[44]},mknod(n,c,u,m){return he.createNode(n,c,u,m)},rename(n,c,u){if(g.isDir(n.mode)){var m;try{m=g.lookupNode(c,u)}catch(S){}if(m)for(var E in m.contents)throw new g.ErrnoError(55)}delete n.parent.contents[n.name],n.parent.timestamp=Date.now(),n.name=u,c.contents[u]=n,c.timestamp=n.parent.timestamp,n.parent=c},unlink(n,c){delete n.contents[c],n.timestamp=Date.now()},rmdir(n,c){var u=g.lookupNode(n,c);for(var m in u.contents)throw new g.ErrnoError(55);delete n.contents[c],n.timestamp=Date.now()},readdir(n){var c=[".",".."];for(var u in n.contents)!n.contents.hasOwnProperty(u)||c.push(u);return c},symlink(n,c,u){var m=he.createNode(n,c,41471,0);return m.link=u,m},readlink(n){if(!g.isLink(n.mode))throw new g.ErrnoError(28);return n.link}},stream_ops:{read(n,c,u,m,E){var S=n.node.contents;if(E>=n.node.usedBytes)return 0;var b=Math.min(n.node.usedBytes-E,m);if(b>8&&S.subarray)c.set(S.subarray(E,E+b),u);else for(var A=0;A<b;A++)c[u+A]=S[E+A];return b},write(n,c,u,m,E,S){if(!m)return 0;var b=n.node;if(b.timestamp=Date.now(),c.subarray&&(!b.contents||b.contents.subarray)){if(S)return b.contents=c.subarray(u,u+m),b.usedBytes=m,m;if(b.usedBytes===0&&E===0)return b.contents=c.slice(u,u+m),b.usedBytes=m,m;if(E+m<=b.usedBytes)return b.contents.set(c.subarray(u,u+m),E),m}if(he.expandFileStorage(b,E+m),b.contents.subarray&&c.subarray)b.contents.set(c.subarray(u,u+m),E);else for(var A=0;A<m;A++)b.contents[E+A]=c[u+A];return b.usedBytes=Math.max(b.usedBytes,E+m),m},llseek(n,c,u){var m=c;if(u===1?m+=n.position:u===2&&g.isFile(n.node.mode)&&(m+=n.node.usedBytes),m<0)throw new g.ErrnoError(28);return m},allocate(n,c,u){he.expandFileStorage(n.node,c+u),n.node.usedBytes=Math.max(n.node.usedBytes,c+u)},mmap(n,c,u,m,E){if(!g.isFile(n.node.mode))throw new g.ErrnoError(43);var S,b,A=n.node.contents;if(!(E&2)&&A.buffer===Pe.buffer)b=!1,S=A.byteOffset;else{if((u>0||u+c<A.length)&&(A.subarray?A=A.subarray(u,u+c):A=Array.prototype.slice.call(A,u,u+c)),b=!0,S=lc(c),!S)throw new g.ErrnoError(48);Pe.set(A,S)}return{ptr:S,allocated:b}},msync(n,c,u,m,E){return he.stream_ops.write(n,c,0,m,u,!1),0}}},Rn=(n,c,u,m)=>{var E=m?"":`al ${n}`;W(n,S=>{ei(S,`Loading data file "${n}" failed (no arrayBuffer).`),c(new Uint8Array(S)),E&&is(E)},S=>{if(u)u();else throw`Loading data file "${n}" failed.`}),E&&Ni(E)},pc=e.preloadPlugins||[];function fl(n,c,u,m){typeof Browser!="undefined"&&Browser.init();var E=!1;return pc.forEach(function(S){E||S.canHandle(c)&&(S.handle(n,c,u,m),E=!0)}),E}function mc(n,c,u,m,E,S,b,A,k,x){var K=c?yt.resolve(De.join2(n,c)):n,ie=`cp ${K}`;function te(Q){function ue($e){x&&x(),A||g.createDataFile(n,c,$e,m,E,k),S&&S(),is(ie)}fl(Q,K,ue,()=>{b&&b(),is(ie)})||ue(Q)}Ni(ie),typeof u=="string"?Rn(u,Q=>te(Q),b):te(u)}function hc(n){var c={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},u=c[n];if(typeof u=="undefined")throw new Error(`Unknown file open mode: ${n}`);return u}function ss(n,c){var u=0;return n&&(u|=365),c&&(u|=146),u}var g={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(n,c={})=>{if(n=yt.resolve(n),!n)return{path:"",node:null};var u={follow_mount:!0,recurse_count:0};if(c=Object.assign(u,c),c.recurse_count>8)throw new g.ErrnoError(32);for(var m=n.split("/").filter(ie=>!!ie),E=g.root,S="/",b=0;b<m.length;b++){var A=b===m.length-1;if(A&&c.parent)break;if(E=g.lookupNode(E,m[b]),S=De.join2(S,m[b]),g.isMountpoint(E)&&(!A||A&&c.follow_mount)&&(E=E.mounted.root),!A||c.follow)for(var k=0;g.isLink(E.mode);){var x=g.readlink(S);S=yt.resolve(De.dirname(S),x);var K=g.lookupPath(S,{recurse_count:c.recurse_count+1});if(E=K.node,k++>40)throw new g.ErrnoError(32)}}return{path:S,node:E}},getPath:n=>{for(var c;;){if(g.isRoot(n)){var u=n.mount.mountpoint;return c?u[u.length-1]!=="/"?`${u}/${c}`:u+c:u}c=c?`${n.name}/${c}`:n.name,n=n.parent}},hashName:(n,c)=>{for(var u=0,m=0;m<c.length;m++)u=(u<<5)-u+c.charCodeAt(m)|0;return(n+u>>>0)%g.nameTable.length},hashAddNode:n=>{var c=g.hashName(n.parent.id,n.name);n.name_next=g.nameTable[c],g.nameTable[c]=n},hashRemoveNode:n=>{var c=g.hashName(n.parent.id,n.name);if(g.nameTable[c]===n)g.nameTable[c]=n.name_next;else for(var u=g.nameTable[c];u;){if(u.name_next===n){u.name_next=n.name_next;break}u=u.name_next}},lookupNode:(n,c)=>{var u=g.mayLookup(n);if(u)throw new g.ErrnoError(u,n);for(var m=g.hashName(n.id,c),E=g.nameTable[m];E;E=E.name_next){var S=E.name;if(E.parent.id===n.id&&S===c)return E}return g.lookup(n,c)},createNode:(n,c,u,m)=>{var E=new g.FSNode(n,c,u,m);return g.hashAddNode(E),E},destroyNode:n=>{g.hashRemoveNode(n)},isRoot:n=>n===n.parent,isMountpoint:n=>!!n.mounted,isFile:n=>(n&61440)===32768,isDir:n=>(n&61440)===16384,isLink:n=>(n&61440)===40960,isChrdev:n=>(n&61440)===8192,isBlkdev:n=>(n&61440)===24576,isFIFO:n=>(n&61440)===4096,isSocket:n=>(n&49152)===49152,flagsToPermissionString:n=>{var c=["r","w","rw"][n&3];return n&512&&(c+="w"),c},nodePermissions:(n,c)=>g.ignorePermissions?0:c.includes("r")&&!(n.mode&292)||c.includes("w")&&!(n.mode&146)||c.includes("x")&&!(n.mode&73)?2:0,mayLookup:n=>{var c=g.nodePermissions(n,"x");return c||(n.node_ops.lookup?0:2)},mayCreate:(n,c)=>{try{var u=g.lookupNode(n,c);return 20}catch(m){}return g.nodePermissions(n,"wx")},mayDelete:(n,c,u)=>{var m;try{m=g.lookupNode(n,c)}catch(S){return S.errno}var E=g.nodePermissions(n,"wx");if(E)return E;if(u){if(!g.isDir(m.mode))return 54;if(g.isRoot(m)||g.getPath(m)===g.cwd())return 10}else if(g.isDir(m.mode))return 31;return 0},mayOpen:(n,c)=>n?g.isLink(n.mode)?32:g.isDir(n.mode)&&(g.flagsToPermissionString(c)!=="r"||c&512)?31:g.nodePermissions(n,g.flagsToPermissionString(c)):44,MAX_OPEN_FDS:4096,nextfd:()=>{for(var n=0;n<=g.MAX_OPEN_FDS;n++)if(!g.streams[n])return n;throw new g.ErrnoError(33)},getStreamChecked:n=>{var c=g.getStream(n);if(!c)throw new g.ErrnoError(8);return c},getStream:n=>g.streams[n],createStream:(n,c=-1)=>(g.FSStream||(g.FSStream=function(){this.shared={}},g.FSStream.prototype={},Object.defineProperties(g.FSStream.prototype,{object:{get(){return this.node},set(u){this.node=u}},isRead:{get(){return(this.flags&2097155)!==1}},isWrite:{get(){return(this.flags&2097155)!==0}},isAppend:{get(){return this.flags&1024}},flags:{get(){return this.shared.flags},set(u){this.shared.flags=u}},position:{get(){return this.shared.position},set(u){this.shared.position=u}}})),n=Object.assign(new g.FSStream,n),c==-1&&(c=g.nextfd()),n.fd=c,g.streams[c]=n,n),closeStream:n=>{g.streams[n]=null},chrdev_stream_ops:{open:n=>{var c=g.getDevice(n.node.rdev);n.stream_ops=c.stream_ops,n.stream_ops.open&&n.stream_ops.open(n)},llseek:()=>{throw new g.ErrnoError(70)}},major:n=>n>>8,minor:n=>n&255,makedev:(n,c)=>n<<8|c,registerDevice:(n,c)=>{g.devices[n]={stream_ops:c}},getDevice:n=>g.devices[n],getMounts:n=>{for(var c=[],u=[n];u.length;){var m=u.pop();c.push(m),u.push.apply(u,m.mounts)}return c},syncfs:(n,c)=>{typeof n=="function"&&(c=n,n=!1),g.syncFSRequests++,g.syncFSRequests>1&&Xe(`warning: ${g.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var u=g.getMounts(g.root.mount),m=0;function E(b){return g.syncFSRequests--,c(b)}function S(b){if(b)return S.errored?void 0:(S.errored=!0,E(b));++m>=u.length&&E(null)}u.forEach(b=>{if(!b.type.syncfs)return S(null);b.type.syncfs(b,n,S)})},mount:(n,c,u)=>{var m=u==="/",E=!u,S;if(m&&g.root)throw new g.ErrnoError(10);if(!m&&!E){var b=g.lookupPath(u,{follow_mount:!1});if(u=b.path,S=b.node,g.isMountpoint(S))throw new g.ErrnoError(10);if(!g.isDir(S.mode))throw new g.ErrnoError(54)}var A={type:n,opts:c,mountpoint:u,mounts:[]},k=n.mount(A);return k.mount=A,A.root=k,m?g.root=k:S&&(S.mounted=A,S.mount&&S.mount.mounts.push(A)),k},unmount:n=>{var c=g.lookupPath(n,{follow_mount:!1});if(!g.isMountpoint(c.node))throw new g.ErrnoError(28);var u=c.node,m=u.mounted,E=g.getMounts(m);Object.keys(g.nameTable).forEach(b=>{for(var A=g.nameTable[b];A;){var k=A.name_next;E.includes(A.mount)&&g.destroyNode(A),A=k}}),u.mounted=null;var S=u.mount.mounts.indexOf(m);u.mount.mounts.splice(S,1)},lookup:(n,c)=>n.node_ops.lookup(n,c),mknod:(n,c,u)=>{var m=g.lookupPath(n,{parent:!0}),E=m.node,S=De.basename(n);if(!S||S==="."||S==="..")throw new g.ErrnoError(28);var b=g.mayCreate(E,S);if(b)throw new g.ErrnoError(b);if(!E.node_ops.mknod)throw new g.ErrnoError(63);return E.node_ops.mknod(E,S,c,u)},create:(n,c)=>(c=c!==void 0?c:438,c&=4095,c|=32768,g.mknod(n,c,0)),mkdir:(n,c)=>(c=c!==void 0?c:511,c&=1023,c|=16384,g.mknod(n,c,0)),mkdirTree:(n,c)=>{for(var u=n.split("/"),m="",E=0;E<u.length;++E)if(!!u[E]){m+="/"+u[E];try{g.mkdir(m,c)}catch(S){if(S.errno!=20)throw S}}},mkdev:(n,c,u)=>(typeof u=="undefined"&&(u=c,c=438),c|=8192,g.mknod(n,c,u)),symlink:(n,c)=>{if(!yt.resolve(n))throw new g.ErrnoError(44);var u=g.lookupPath(c,{parent:!0}),m=u.node;if(!m)throw new g.ErrnoError(44);var E=De.basename(c),S=g.mayCreate(m,E);if(S)throw new g.ErrnoError(S);if(!m.node_ops.symlink)throw new g.ErrnoError(63);return m.node_ops.symlink(m,E,n)},rename:(n,c)=>{var u=De.dirname(n),m=De.dirname(c),E=De.basename(n),S=De.basename(c),b,A,k;if(b=g.lookupPath(n,{parent:!0}),A=b.node,b=g.lookupPath(c,{parent:!0}),k=b.node,!A||!k)throw new g.ErrnoError(44);if(A.mount!==k.mount)throw new g.ErrnoError(75);var x=g.lookupNode(A,E),K=yt.relative(n,m);if(K.charAt(0)!==".")throw new g.ErrnoError(28);if(K=yt.relative(c,u),K.charAt(0)!==".")throw new g.ErrnoError(55);var ie;try{ie=g.lookupNode(k,S)}catch(ue){}if(x!==ie){var te=g.isDir(x.mode),Q=g.mayDelete(A,E,te);if(Q)throw new g.ErrnoError(Q);if(Q=ie?g.mayDelete(k,S,te):g.mayCreate(k,S),Q)throw new g.ErrnoError(Q);if(!A.node_ops.rename)throw new g.ErrnoError(63);if(g.isMountpoint(x)||ie&&g.isMountpoint(ie))throw new g.ErrnoError(10);if(k!==A&&(Q=g.nodePermissions(A,"w"),Q))throw new g.ErrnoError(Q);g.hashRemoveNode(x);try{A.node_ops.rename(x,k,S)}catch(ue){throw ue}finally{g.hashAddNode(x)}}},rmdir:n=>{var c=g.lookupPath(n,{parent:!0}),u=c.node,m=De.basename(n),E=g.lookupNode(u,m),S=g.mayDelete(u,m,!0);if(S)throw new g.ErrnoError(S);if(!u.node_ops.rmdir)throw new g.ErrnoError(63);if(g.isMountpoint(E))throw new g.ErrnoError(10);u.node_ops.rmdir(u,m),g.destroyNode(E)},readdir:n=>{var c=g.lookupPath(n,{follow:!0}),u=c.node;if(!u.node_ops.readdir)throw new g.ErrnoError(54);return u.node_ops.readdir(u)},unlink:n=>{var c=g.lookupPath(n,{parent:!0}),u=c.node;if(!u)throw new g.ErrnoError(44);var m=De.basename(n),E=g.lookupNode(u,m),S=g.mayDelete(u,m,!1);if(S)throw new g.ErrnoError(S);if(!u.node_ops.unlink)throw new g.ErrnoError(63);if(g.isMountpoint(E))throw new g.ErrnoError(10);u.node_ops.unlink(u,m),g.destroyNode(E)},readlink:n=>{var c=g.lookupPath(n),u=c.node;if(!u)throw new g.ErrnoError(44);if(!u.node_ops.readlink)throw new g.ErrnoError(28);return yt.resolve(g.getPath(u.parent),u.node_ops.readlink(u))},stat:(n,c)=>{var u=g.lookupPath(n,{follow:!c}),m=u.node;if(!m)throw new g.ErrnoError(44);if(!m.node_ops.getattr)throw new g.ErrnoError(63);return m.node_ops.getattr(m)},lstat:n=>g.stat(n,!0),chmod:(n,c,u)=>{var m;if(typeof n=="string"){var E=g.lookupPath(n,{follow:!u});m=E.node}else m=n;if(!m.node_ops.setattr)throw new g.ErrnoError(63);m.node_ops.setattr(m,{mode:c&4095|m.mode&-4096,timestamp:Date.now()})},lchmod:(n,c)=>{g.chmod(n,c,!0)},fchmod:(n,c)=>{var u=g.getStreamChecked(n);g.chmod(u.node,c)},chown:(n,c,u,m)=>{var E;if(typeof n=="string"){var S=g.lookupPath(n,{follow:!m});E=S.node}else E=n;if(!E.node_ops.setattr)throw new g.ErrnoError(63);E.node_ops.setattr(E,{timestamp:Date.now()})},lchown:(n,c,u)=>{g.chown(n,c,u,!0)},fchown:(n,c,u)=>{var m=g.getStreamChecked(n);g.chown(m.node,c,u)},truncate:(n,c)=>{if(c<0)throw new g.ErrnoError(28);var u;if(typeof n=="string"){var m=g.lookupPath(n,{follow:!0});u=m.node}else u=n;if(!u.node_ops.setattr)throw new g.ErrnoError(63);if(g.isDir(u.mode))throw new g.ErrnoError(31);if(!g.isFile(u.mode))throw new g.ErrnoError(28);var E=g.nodePermissions(u,"w");if(E)throw new g.ErrnoError(E);u.node_ops.setattr(u,{size:c,timestamp:Date.now()})},ftruncate:(n,c)=>{var u=g.getStreamChecked(n);if((u.flags&2097155)===0)throw new g.ErrnoError(28);g.truncate(u.node,c)},utime:(n,c,u)=>{var m=g.lookupPath(n,{follow:!0}),E=m.node;E.node_ops.setattr(E,{timestamp:Math.max(c,u)})},open:(n,c,u)=>{if(n==="")throw new g.ErrnoError(44);c=typeof c=="string"?hc(c):c,u=typeof u=="undefined"?438:u,c&64?u=u&4095|32768:u=0;var m;if(typeof n=="object")m=n;else{n=De.normalize(n);try{var E=g.lookupPath(n,{follow:!(c&131072)});m=E.node}catch(k){}}var S=!1;if(c&64)if(m){if(c&128)throw new g.ErrnoError(20)}else m=g.mknod(n,u,0),S=!0;if(!m)throw new g.ErrnoError(44);if(g.isChrdev(m.mode)&&(c&=-513),c&65536&&!g.isDir(m.mode))throw new g.ErrnoError(54);if(!S){var b=g.mayOpen(m,c);if(b)throw new g.ErrnoError(b)}c&512&&!S&&g.truncate(m,0),c&=-131713;var A=g.createStream({node:m,path:g.getPath(m),flags:c,seekable:!0,position:0,stream_ops:m.stream_ops,ungotten:[],error:!1});return A.stream_ops.open&&A.stream_ops.open(A),e.logReadFiles&&!(c&1)&&(g.readFiles||(g.readFiles={}),n in g.readFiles||(g.readFiles[n]=1)),A},close:n=>{if(g.isClosed(n))throw new g.ErrnoError(8);n.getdents&&(n.getdents=null);try{n.stream_ops.close&&n.stream_ops.close(n)}catch(c){throw c}finally{g.closeStream(n.fd)}n.fd=null},isClosed:n=>n.fd===null,llseek:(n,c,u)=>{if(g.isClosed(n))throw new g.ErrnoError(8);if(!n.seekable||!n.stream_ops.llseek)throw new g.ErrnoError(70);if(u!=0&&u!=1&&u!=2)throw new g.ErrnoError(28);return n.position=n.stream_ops.llseek(n,c,u),n.ungotten=[],n.position},read:(n,c,u,m,E)=>{if(m<0||E<0)throw new g.ErrnoError(28);if(g.isClosed(n))throw new g.ErrnoError(8);if((n.flags&2097155)===1)throw new g.ErrnoError(8);if(g.isDir(n.node.mode))throw new g.ErrnoError(31);if(!n.stream_ops.read)throw new g.ErrnoError(28);var S=typeof E!="undefined";if(!S)E=n.position;else if(!n.seekable)throw new g.ErrnoError(70);var b=n.stream_ops.read(n,c,u,m,E);return S||(n.position+=b),b},write:(n,c,u,m,E,S)=>{if(m<0||E<0)throw new g.ErrnoError(28);if(g.isClosed(n))throw new g.ErrnoError(8);if((n.flags&2097155)===0)throw new g.ErrnoError(8);if(g.isDir(n.node.mode))throw new g.ErrnoError(31);if(!n.stream_ops.write)throw new g.ErrnoError(28);n.seekable&&n.flags&1024&&g.llseek(n,0,2);var b=typeof E!="undefined";if(!b)E=n.position;else if(!n.seekable)throw new g.ErrnoError(70);var A=n.stream_ops.write(n,c,u,m,E,S);return b||(n.position+=A),A},allocate:(n,c,u)=>{if(g.isClosed(n))throw new g.ErrnoError(8);if(c<0||u<=0)throw new g.ErrnoError(28);if((n.flags&2097155)===0)throw new g.ErrnoError(8);if(!g.isFile(n.node.mode)&&!g.isDir(n.node.mode))throw new g.ErrnoError(43);if(!n.stream_ops.allocate)throw new g.ErrnoError(138);n.stream_ops.allocate(n,c,u)},mmap:(n,c,u,m,E)=>{if((m&2)!==0&&(E&2)===0&&(n.flags&2097155)!==2)throw new g.ErrnoError(2);if((n.flags&2097155)===1)throw new g.ErrnoError(2);if(!n.stream_ops.mmap)throw new g.ErrnoError(43);return n.stream_ops.mmap(n,c,u,m,E)},msync:(n,c,u,m,E)=>n.stream_ops.msync?n.stream_ops.msync(n,c,u,m,E):0,munmap:n=>0,ioctl:(n,c,u)=>{if(!n.stream_ops.ioctl)throw new g.ErrnoError(59);return n.stream_ops.ioctl(n,c,u)},readFile:(n,c={})=>{if(c.flags=c.flags||0,c.encoding=c.encoding||"binary",c.encoding!=="utf8"&&c.encoding!=="binary")throw new Error(`Invalid encoding type "${c.encoding}"`);var u,m=g.open(n,c.flags),E=g.stat(n),S=E.size,b=new Uint8Array(S);return g.read(m,b,0,S,0),c.encoding==="utf8"?u=oi(b,0):c.encoding==="binary"&&(u=b),g.close(m),u},writeFile:(n,c,u={})=>{u.flags=u.flags||577;var m=g.open(n,u.flags,u.mode);if(typeof c=="string"){var E=new Uint8Array(si(c)+1),S=vn(c,E,0,E.length);g.write(m,E,0,S,void 0,u.canOwn)}else if(ArrayBuffer.isView(c))g.write(m,c,0,c.byteLength,void 0,u.canOwn);else throw new Error("Unsupported data type");g.close(m)},cwd:()=>g.currentPath,chdir:n=>{var c=g.lookupPath(n,{follow:!0});if(c.node===null)throw new g.ErrnoError(44);if(!g.isDir(c.node.mode))throw new g.ErrnoError(54);var u=g.nodePermissions(c.node,"x");if(u)throw new g.ErrnoError(u);g.currentPath=c.path},createDefaultDirectories:()=>{g.mkdir("/tmp"),g.mkdir("/home"),g.mkdir("/home/web_user")},createDefaultDevices:()=>{g.mkdir("/dev"),g.registerDevice(g.makedev(1,3),{read:()=>0,write:(m,E,S,b,A)=>b}),g.mkdev("/dev/null",g.makedev(1,3)),Lr.register(g.makedev(5,0),Lr.default_tty_ops),Lr.register(g.makedev(6,0),Lr.default_tty1_ops),g.mkdev("/dev/tty",g.makedev(5,0)),g.mkdev("/dev/tty1",g.makedev(6,0));var n=new Uint8Array(1024),c=0,u=()=>(c===0&&(c=no(n).byteLength),n[--c]);g.createDevice("/dev","random",u),g.createDevice("/dev","urandom",u),g.mkdir("/dev/shm"),g.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{g.mkdir("/proc");var n=g.mkdir("/proc/self");g.mkdir("/proc/self/fd"),g.mount({mount:()=>{var c=g.createNode(n,"fd",16895,73);return c.node_ops={lookup:(u,m)=>{var E=+m,S=g.getStreamChecked(E),b={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>S.path}};return b.parent=b,b}},c}},{},"/proc/self/fd")},createStandardStreams:()=>{e.stdin?g.createDevice("/dev","stdin",e.stdin):g.symlink("/dev/tty","/dev/stdin"),e.stdout?g.createDevice("/dev","stdout",null,e.stdout):g.symlink("/dev/tty","/dev/stdout"),e.stderr?g.createDevice("/dev","stderr",null,e.stderr):g.symlink("/dev/tty1","/dev/stderr");var n=g.open("/dev/stdin",0),c=g.open("/dev/stdout",1),u=g.open("/dev/stderr",1)},ensureErrnoError:()=>{g.ErrnoError||(g.ErrnoError=function(c,u){this.name="ErrnoError",this.node=u,this.setErrno=function(m){this.errno=m},this.setErrno(c),this.message="FS error"},g.ErrnoError.prototype=new Error,g.ErrnoError.prototype.constructor=g.ErrnoError,[44].forEach(n=>{g.genericErrors[n]=new g.ErrnoError(n),g.genericErrors[n].stack="<generic error, no stack>"}))},staticInit:()=>{g.ensureErrnoError(),g.nameTable=new Array(4096),g.mount(he,{},"/"),g.createDefaultDirectories(),g.createDefaultDevices(),g.createSpecialDirectories(),g.filesystems={MEMFS:he}},init:(n,c,u)=>{g.init.initialized=!0,g.ensureErrnoError(),e.stdin=n||e.stdin,e.stdout=c||e.stdout,e.stderr=u||e.stderr,g.createStandardStreams()},quit:()=>{g.init.initialized=!1;for(var n=0;n<g.streams.length;n++){var c=g.streams[n];!c||g.close(c)}},findObject:(n,c)=>{var u=g.analyzePath(n,c);return u.exists?u.object:null},analyzePath:(n,c)=>{try{var u=g.lookupPath(n,{follow:!c});n=u.path}catch(E){}var m={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var u=g.lookupPath(n,{parent:!0});m.parentExists=!0,m.parentPath=u.path,m.parentObject=u.node,m.name=De.basename(n),u=g.lookupPath(n,{follow:!c}),m.exists=!0,m.path=u.path,m.object=u.node,m.name=u.node.name,m.isRoot=u.path==="/"}catch(E){m.error=E.errno}return m},createPath:(n,c,u,m)=>{n=typeof n=="string"?n:g.getPath(n);for(var E=c.split("/").reverse();E.length;){var S=E.pop();if(!!S){var b=De.join2(n,S);try{g.mkdir(b)}catch(A){}n=b}}return b},createFile:(n,c,u,m,E)=>{var S=De.join2(typeof n=="string"?n:g.getPath(n),c),b=ss(m,E);return g.create(S,b)},createDataFile:(n,c,u,m,E,S)=>{var b=c;n&&(n=typeof n=="string"?n:g.getPath(n),b=c?De.join2(n,c):n);var A=ss(m,E),k=g.create(b,A);if(u){if(typeof u=="string"){for(var x=new Array(u.length),K=0,ie=u.length;K<ie;++K)x[K]=u.charCodeAt(K);u=x}g.chmod(k,A|146);var te=g.open(k,577);g.write(te,u,0,u.length,0,S),g.close(te),g.chmod(k,A)}return k},createDevice:(n,c,u,m)=>{var E=De.join2(typeof n=="string"?n:g.getPath(n),c),S=ss(!!u,!!m);g.createDevice.major||(g.createDevice.major=64);var b=g.makedev(g.createDevice.major++,0);return g.registerDevice(b,{open:A=>{A.seekable=!1},close:A=>{m&&m.buffer&&m.buffer.length&&m(10)},read:(A,k,x,K,ie)=>{for(var te=0,Q=0;Q<K;Q++){var ue;try{ue=u()}catch($e){throw new g.ErrnoError(29)}if(ue===void 0&&te===0)throw new g.ErrnoError(6);if(ue==null)break;te++,k[x+Q]=ue}return te&&(A.node.timestamp=Date.now()),te},write:(A,k,x,K,ie)=>{for(var te=0;te<K;te++)try{m(k[x+te])}catch(Q){throw new g.ErrnoError(29)}return K&&(A.node.timestamp=Date.now()),te}}),g.mkdev(E,S,b)},forceLoadFile:n=>{if(n.isDevice||n.isFolder||n.link||n.contents)return!0;if(typeof XMLHttpRequest!="undefined")throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(j)try{n.contents=Zt(j(n.url),!0),n.usedBytes=n.contents.length}catch(c){throw new g.ErrnoError(29)}else throw new Error("Cannot load without read() or XMLHttpRequest.")},createLazyFile:(n,c,u,m,E)=>{function S(){this.lengthKnown=!1,this.chunks=[]}if(S.prototype.get=function(Q){if(!(Q>this.length-1||Q<0)){var ue=Q%this.chunkSize,$e=Q/this.chunkSize|0;return this.getter($e)[ue]}},S.prototype.setDataGetter=function(Q){this.getter=Q},S.prototype.cacheLength=function(){var Q=new XMLHttpRequest;if(Q.open("HEAD",u,!1),Q.send(null),!(Q.status>=200&&Q.status<300||Q.status===304))throw new Error("Couldn't load "+u+". Status: "+Q.status);var ue=Number(Q.getResponseHeader("Content-length")),$e,qe=($e=Q.getResponseHeader("Accept-Ranges"))&&$e==="bytes",lt=($e=Q.getResponseHeader("Content-Encoding"))&&$e==="gzip",Pt=1024*1024;qe||(Pt=ue);var Ze=(er,ui)=>{if(er>ui)throw new Error("invalid range ("+er+", "+ui+") or no bytes requested!");if(ui>ue-1)throw new Error("only "+ue+" bytes available! programmer error!");var pt=new XMLHttpRequest;if(pt.open("GET",u,!1),ue!==Pt&&pt.setRequestHeader("Range","bytes="+er+"-"+ui),pt.responseType="arraybuffer",pt.overrideMimeType&&pt.overrideMimeType("text/plain; charset=x-user-defined"),pt.send(null),!(pt.status>=200&&pt.status<300||pt.status===304))throw new Error("Couldn't load "+u+". Status: "+pt.status);return pt.response!==void 0?new Uint8Array(pt.response||[]):Zt(pt.responseText||"",!0)},fo=this;fo.setDataGetter(er=>{var ui=er*Pt,pt=(er+1)*Pt-1;if(pt=Math.min(pt,ue-1),typeof fo.chunks[er]=="undefined"&&(fo.chunks[er]=Ze(ui,pt)),typeof fo.chunks[er]=="undefined")throw new Error("doXHR failed!");return fo.chunks[er]}),(lt||!ue)&&(Pt=ue=1,ue=this.getter(0).length,Pt=ue,Vt("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=ue,this._chunkSize=Pt,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!T)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var b=new S;Object.defineProperties(b,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var A={isDevice:!1,contents:b}}else var A={isDevice:!1,url:u};var k=g.createFile(n,c,A,m,E);A.contents?k.contents=A.contents:A.url&&(k.contents=null,k.url=A.url),Object.defineProperties(k,{usedBytes:{get:function(){return this.contents.length}}});var x={},K=Object.keys(k.stream_ops);K.forEach(te=>{var Q=k.stream_ops[te];x[te]=function(){return g.forceLoadFile(k),Q.apply(null,arguments)}});function ie(te,Q,ue,$e,qe){var lt=te.node.contents;if(qe>=lt.length)return 0;var Pt=Math.min(lt.length-qe,$e);if(lt.slice)for(var Ze=0;Ze<Pt;Ze++)Q[ue+Ze]=lt[qe+Ze];else for(var Ze=0;Ze<Pt;Ze++)Q[ue+Ze]=lt.get(qe+Ze);return Pt}return x.read=(te,Q,ue,$e,qe)=>(g.forceLoadFile(k),ie(te,Q,ue,$e,qe)),x.mmap=(te,Q,ue,$e,qe)=>{g.forceLoadFile(k);var lt=lc(Q);if(!lt)throw new g.ErrnoError(48);return ie(te,Pe,lt,Q,ue),{ptr:lt,allocated:!0}},k.stream_ops=x,k}},fc=(n,c)=>n?oi(tt,n,c):"",Qe={DEFAULT_POLLMASK:5,calculateAt:function(n,c,u){if(De.isAbs(c))return c;var m;if(n===-100)m=g.cwd();else{var E=Qe.getStreamFromFD(n);m=E.path}if(c.length==0){if(!u)throw new g.ErrnoError(44);return m}return De.join2(m,c)},doStat:function(n,c,u){try{var m=n(c)}catch(A){if(A&&A.node&&De.normalize(c)!==De.normalize(g.getPath(A.node)))return-54;throw A}P[u>>2]=m.dev,P[u+4>>2]=m.mode,Me[u+8>>2]=m.nlink,P[u+12>>2]=m.uid,P[u+16>>2]=m.gid,P[u+20>>2]=m.rdev,He=[m.size>>>0,(ce=m.size,+Math.abs(ce)>=1?ce>0?+Math.floor(ce/4294967296)>>>0:~~+Math.ceil((ce-+(~~ce>>>0))/4294967296)>>>0:0)],P[u+24>>2]=He[0],P[u+28>>2]=He[1],P[u+32>>2]=4096,P[u+36>>2]=m.blocks;var E=m.atime.getTime(),S=m.mtime.getTime(),b=m.ctime.getTime();return He=[Math.floor(E/1e3)>>>0,(ce=Math.floor(E/1e3),+Math.abs(ce)>=1?ce>0?+Math.floor(ce/4294967296)>>>0:~~+Math.ceil((ce-+(~~ce>>>0))/4294967296)>>>0:0)],P[u+40>>2]=He[0],P[u+44>>2]=He[1],Me[u+48>>2]=E%1e3*1e3,He=[Math.floor(S/1e3)>>>0,(ce=Math.floor(S/1e3),+Math.abs(ce)>=1?ce>0?+Math.floor(ce/4294967296)>>>0:~~+Math.ceil((ce-+(~~ce>>>0))/4294967296)>>>0:0)],P[u+56>>2]=He[0],P[u+60>>2]=He[1],Me[u+64>>2]=S%1e3*1e3,He=[Math.floor(b/1e3)>>>0,(ce=Math.floor(b/1e3),+Math.abs(ce)>=1?ce>0?+Math.floor(ce/4294967296)>>>0:~~+Math.ceil((ce-+(~~ce>>>0))/4294967296)>>>0:0)],P[u+72>>2]=He[0],P[u+76>>2]=He[1],Me[u+80>>2]=b%1e3*1e3,He=[m.ino>>>0,(ce=m.ino,+Math.abs(ce)>=1?ce>0?+Math.floor(ce/4294967296)>>>0:~~+Math.ceil((ce-+(~~ce>>>0))/4294967296)>>>0:0)],P[u+88>>2]=He[0],P[u+92>>2]=He[1],0},doMsync:function(n,c,u,m,E){if(!g.isFile(c.node.mode))throw new g.ErrnoError(43);if(m&2)return 0;var S=tt.slice(n,n+u);g.msync(c,S,E,u,m)},varargs:void 0,get(){Qe.varargs+=4;var n=P[Qe.varargs-4>>2];return n},getStr(n){var c=fc(n);return c},getStreamFromFD:function(n){var c=g.getStreamChecked(n);return c}};function Cn(n,c,u){Qe.varargs=u;try{var m=Qe.getStreamFromFD(n);switch(c){case 0:{var E=Qe.get();if(E<0)return-28;var S;return S=g.createStream(m,E),S.fd}case 1:case 2:return 0;case 3:return m.flags;case 4:{var E=Qe.get();return m.flags|=E,0}case 5:{var E=Qe.get(),b=0;return Qt[E+b>>1]=2,0}case 6:case 7:return 0;case 16:case 8:return-28;case 9:return wt(28),-1;default:return-28}}catch(A){if(typeof g=="undefined"||A.name!=="ErrnoError")throw A;return-A.errno}}function ao(n,c,u,m){Qe.varargs=m;try{c=Qe.getStr(c),c=Qe.calculateAt(n,c);var E=m?Qe.get():0;return g.open(c,u,E).fd}catch(S){if(typeof g=="undefined"||S.name!=="ErrnoError")throw S;return-S.errno}}function _l(n,c,u,m,E){}function Dn(n){switch(n){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${n}`)}}function co(){for(var n=new Array(256),c=0;c<256;++c)n[c]=String.fromCharCode(c);_c=n}var _c=void 0;function xt(n){for(var c="",u=n;tt[u];)c+=_c[tt[u++]];return c}var Er={},ni={},Ur={},Oi=void 0;function xe(n){throw new Oi(n)}var gc=void 0;function ns(n){throw new gc(n)}function uo(n,c,u){n.forEach(function(A){Ur[A]=c});function m(A){var k=u(A);k.length!==n.length&&ns("Mismatched type converter count");for(var x=0;x<n.length;++x)Tr(n[x],k[x])}var E=new Array(c.length),S=[],b=0;c.forEach((A,k)=>{ni.hasOwnProperty(A)?E[k]=ni[A]:(S.push(A),Er.hasOwnProperty(A)||(Er[A]=[]),Er[A].push(()=>{E[k]=ni[A],++b,b===S.length&&m(E)}))}),S.length===0&&m(E)}function Vr(n,c,u={}){var m=c.name;if(n||xe(`type "${m}" must have a positive integer typeid pointer`),ni.hasOwnProperty(n)){if(u.ignoreDuplicateRegistrations)return;xe(`Cannot register type '${m}' twice`)}if(ni[n]=c,delete Ur[n],Er.hasOwnProperty(n)){var E=Er[n];delete Er[n],E.forEach(S=>S())}}function Tr(n,c,u={}){if(!("argPackAdvance"in c))throw new TypeError("registerType registeredInstance requires argPackAdvance");return Vr(n,c,u)}function gl(n,c,u,m,E){var S=Dn(u);c=xt(c),Tr(n,{name:c,fromWireType:function(b){return!!b},toWireType:function(b,A){return A?m:E},argPackAdvance:8,readValueFromPointer:function(b){var A;if(u===1)A=Pe;else if(u===2)A=Qt;else if(u===4)A=P;else throw new TypeError("Unknown boolean type size: "+c);return this.fromWireType(A[b>>S])},destructorFunction:null})}function as(n){if(!(this instanceof Sr)||!(n instanceof Sr))return!1;for(var c=this.$$.ptrType.registeredClass,u=this.$$.ptr,m=n.$$.ptrType.registeredClass,E=n.$$.ptr;c.baseClass;)u=c.upcast(u),c=c.baseClass;for(;m.baseClass;)E=m.upcast(E),m=m.baseClass;return c===m&&u===E}function Nn(n){return{count:n.count,deleteScheduled:n.deleteScheduled,preservePointerOnDelete:n.preservePointerOnDelete,ptr:n.ptr,ptrType:n.ptrType,smartPtr:n.smartPtr,smartPtrType:n.smartPtrType}}function cs(n){function c(u){return u.$$.ptrType.registeredClass.name}xe(c(n)+" instance already deleted")}var wn=!1;function Ec(n){}function xn(n){n.smartPtr?n.smartPtrType.rawDestructor(n.smartPtr):n.ptrType.registeredClass.rawDestructor(n.ptr)}function Tc(n){n.count.value-=1;var c=n.count.value===0;c&&xn(n)}function Ic(n,c,u){if(c===u)return n;if(u.baseClass===void 0)return null;var m=Ic(n,c,u.baseClass);return m===null?null:u.downcast(m)}var Sc={};function ds(){return Object.keys(mo).length}function El(){var n=[];for(var c in mo)mo.hasOwnProperty(c)&&n.push(mo[c]);return n}var lo=[];function Mn(){for(;lo.length;){var n=lo.pop();n.$$.deleteScheduled=!1,n.delete()}}var po=void 0;function Ir(n){po=n,lo.length&&po&&po(Mn)}function Tl(){e.getInheritedInstanceCount=ds,e.getLiveInheritedInstances=El,e.flushPendingDeletes=Mn,e.setDelayFunction=Ir}var mo={};function us(n,c){for(c===void 0&&xe("ptr should not be undefined");n.baseClass;)c=n.upcast(c),n=n.baseClass;return c}function yc(n,c){return c=us(n,c),mo[c]}function ls(n,c){(!c.ptrType||!c.ptr)&&ns("makeClassHandle requires ptr and ptrType");var u=!!c.smartPtrType,m=!!c.smartPtr;return u!==m&&ns("Both smartPtrType and smartPtr must be specified"),c.count={value:1},ur(Object.create(n,{$$:{value:c}}))}function Il(n){var c=this.getPointee(n);if(!c)return this.destructor(n),null;var u=yc(this.registeredClass,c);if(u!==void 0){if(u.$$.count.value===0)return u.$$.ptr=c,u.$$.smartPtr=n,u.clone();var m=u.clone();return this.destructor(n),m}function E(){return this.isSmartPointer?ls(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:c,smartPtrType:this,smartPtr:n}):ls(this.registeredClass.instancePrototype,{ptrType:this,ptr:n})}var S=this.registeredClass.getActualType(c),b=Sc[S];if(!b)return E.call(this);var A;this.isConst?A=b.constPointerType:A=b.pointerType;var k=Ic(c,this.registeredClass,A.registeredClass);return k===null?E.call(this):this.isSmartPointer?ls(A.registeredClass.instancePrototype,{ptrType:A,ptr:k,smartPtrType:this,smartPtr:n}):ls(A.registeredClass.instancePrototype,{ptrType:A,ptr:k})}var ur=function(n){return typeof FinalizationRegistry=="undefined"?(ur=c=>c,n):(wn=new FinalizationRegistry(c=>{Tc(c.$$)}),ur=c=>{var u=c.$$,m=!!u.smartPtr;if(m){var E={$$:u};wn.register(c,E,c)}return c},Ec=c=>wn.unregister(c),ur(n))};function Sl(){if(this.$$.ptr||cs(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var n=ur(Object.create(Object.getPrototypeOf(this),{$$:{value:Nn(this.$$)}}));return n.$$.count.value+=1,n.$$.deleteScheduled=!1,n}function Ac(){this.$$.ptr||cs(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&xe("Object already scheduled for deletion"),Ec(this),Tc(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function bc(){return!this.$$.ptr}function On(){return this.$$.ptr||cs(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&xe("Object already scheduled for deletion"),lo.push(this),lo.length===1&&po&&po(Mn),this.$$.deleteScheduled=!0,this}function yl(){Sr.prototype.isAliasOf=as,Sr.prototype.clone=Sl,Sr.prototype.delete=Ac,Sr.prototype.isDeleted=bc,Sr.prototype.deleteLater=On}function Sr(){}var Al=48,vc=57;function ho(n){if(n===void 0)return"_unknown";n=n.replace(/[^a-zA-Z0-9_]/g,"$");var c=n.charCodeAt(0);return c>=Al&&c<=vc?`_${n}`:n}function Pn(n,c){return n=ho(n),{[n]:function(){return c.apply(this,arguments)}}[n]}function Rc(n,c,u){if(n[c].overloadTable===void 0){var m=n[c];n[c]=function(){return n[c].overloadTable.hasOwnProperty(arguments.length)||xe(`Function '${u}' called with an invalid number of arguments (${arguments.length}) - expects one of (${n[c].overloadTable})!`),n[c].overloadTable[arguments.length].apply(this,arguments)},n[c].overloadTable=[],n[c].overloadTable[m.argCount]=m}}function bl(n,c,u){e.hasOwnProperty(n)?((u===void 0||e[n].overloadTable!==void 0&&e[n].overloadTable[u]!==void 0)&&xe(`Cannot register public name '${n}' twice`),Rc(e,n,n),e.hasOwnProperty(u)&&xe(`Cannot register multiple overloads of a function with the same number of arguments (${u})!`),e[n].overloadTable[u]=c):(e[n]=c,u!==void 0&&(e[n].numArguments=u))}function Cc(n,c,u,m,E,S,b,A){this.name=n,this.constructor=c,this.instancePrototype=u,this.rawDestructor=m,this.baseClass=E,this.getActualType=S,this.upcast=b,this.downcast=A,this.pureVirtualFunctions=[]}function Mt(n,c,u){for(;c!==u;)c.upcast||xe(`Expected null or instance of ${u.name}, got an instance of ${c.name}`),n=c.upcast(n),c=c.baseClass;return n}function Dc(n,c){if(c===null)return this.isReference&&xe(`null is not a valid ${this.name}`),0;c.$$||xe(`Cannot pass "${Vn(c)}" as a ${this.name}`),c.$$.ptr||xe(`Cannot pass deleted object as a pointer of type ${this.name}`);var u=c.$$.ptrType.registeredClass,m=Mt(c.$$.ptr,u,this.registeredClass);return m}function vl(n,c){var u;if(c===null)return this.isReference&&xe(`null is not a valid ${this.name}`),this.isSmartPointer?(u=this.rawConstructor(),n!==null&&n.push(this.rawDestructor,u),u):0;c.$$||xe(`Cannot pass "${Vn(c)}" as a ${this.name}`),c.$$.ptr||xe(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&c.$$.ptrType.isConst&&xe(`Cannot convert argument of type ${c.$$.smartPtrType?c.$$.smartPtrType.name:c.$$.ptrType.name} to parameter type ${this.name}`);var m=c.$$.ptrType.registeredClass;if(u=Mt(c.$$.ptr,m,this.registeredClass),this.isSmartPointer)switch(c.$$.smartPtr===void 0&&xe("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:c.$$.smartPtrType===this?u=c.$$.smartPtr:xe(`Cannot convert argument of type ${c.$$.smartPtrType?c.$$.smartPtrType.name:c.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:u=c.$$.smartPtr;break;case 2:if(c.$$.smartPtrType===this)u=c.$$.smartPtr;else{var E=c.clone();u=this.rawShare(u,ms.toHandle(function(){E.delete()})),n!==null&&n.push(this.rawDestructor,u)}break;default:xe("Unsupporting sharing policy")}return u}function Rl(n,c){if(c===null)return this.isReference&&xe(`null is not a valid ${this.name}`),0;c.$$||xe(`Cannot pass "${Vn(c)}" as a ${this.name}`),c.$$.ptr||xe(`Cannot pass deleted object as a pointer of type ${this.name}`),c.$$.ptrType.isConst&&xe(`Cannot convert argument of type ${c.$$.ptrType.name} to parameter type ${this.name}`);var u=c.$$.ptrType.registeredClass,m=Mt(c.$$.ptr,u,this.registeredClass);return m}function ai(n){return this.fromWireType(P[n>>2])}function Cl(n){return this.rawGetPointee&&(n=this.rawGetPointee(n)),n}function kn(n){this.rawDestructor&&this.rawDestructor(n)}function Dl(n){n!==null&&n.delete()}function Nl(){yr.prototype.getPointee=Cl,yr.prototype.destructor=kn,yr.prototype.argPackAdvance=8,yr.prototype.readValueFromPointer=ai,yr.prototype.deleteObject=Dl,yr.prototype.fromWireType=Il}function yr(n,c,u,m,E,S,b,A,k,x,K){this.name=n,this.registeredClass=c,this.isReference=u,this.isConst=m,this.isSmartPointer=E,this.pointeeType=S,this.sharingPolicy=b,this.rawGetPointee=A,this.rawConstructor=k,this.rawShare=x,this.rawDestructor=K,!E&&c.baseClass===void 0?m?(this.toWireType=Dc,this.destructorFunction=null):(this.toWireType=Rl,this.destructorFunction=null):this.toWireType=vl}function wl(n,c,u){e.hasOwnProperty(n)||ns("Replacing nonexistant public symbol"),e[n].overloadTable!==void 0&&u!==void 0?e[n].overloadTable[u]=c:(e[n]=c,e[n].argCount=u)}var xl=(n,c,u)=>{var m=e["dynCall_"+n];return u&&u.length?m.apply(null,[c].concat(u)):m.call(null,c)},ps=[],Nc=n=>{var c=ps[n];return c||(n>=ps.length&&(ps.length=n+1),ps[n]=c=En.get(n)),c},Ml=(n,c,u)=>{if(n.includes("j"))return xl(n,c,u);var m=Nc(c).apply(null,u);return m},wc=(n,c)=>{var u=[];return function(){return u.length=0,Object.assign(u,arguments),Ml(n,c,u)}};function ci(n,c){n=xt(n);function u(){return n.includes("j")?wc(n,c):Nc(c)}var m=u();return typeof m!="function"&&xe(`unknown function pointer with signature ${n}: ${c}`),m}function xc(n,c){var u=Pn(c,function(m){this.name=c,this.message=m;var E=new Error(m).stack;E!==void 0&&(this.stack=this.toString()+`
50
- `+E.replace(/^Error(:[^\n]*)?\n/,""))});return u.prototype=Object.create(n.prototype),u.prototype.constructor=u,u.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},u}var Mc=void 0;function Ln(n){var c=Pf(n),u=xt(c);return di(c),u}function Un(n,c){var u=[],m={};function E(S){if(!m[S]&&!ni[S]){if(Ur[S]){Ur[S].forEach(E);return}u.push(S),m[S]=!0}}throw c.forEach(E),new Mc(`${n}: `+u.map(Ln).join([", "]))}function Ol(n,c,u,m,E,S,b,A,k,x,K,ie,te){K=xt(K),S=ci(E,S),A&&(A=ci(b,A)),x&&(x=ci(k,x)),te=ci(ie,te);var Q=ho(K);bl(Q,function(){Un(`Cannot construct ${K} due to unbound types`,[m])}),uo([n,c,u],m?[m]:[],function(ue){ue=ue[0];var $e,qe;m?($e=ue.registeredClass,qe=$e.instancePrototype):qe=Sr.prototype;var lt=Pn(Q,function(){if(Object.getPrototypeOf(this)!==Pt)throw new Oi("Use 'new' to construct "+K);if(Ze.constructor_body===void 0)throw new Oi(K+" has no accessible constructor");var pt=Ze.constructor_body[arguments.length];if(pt===void 0)throw new Oi(`Tried to invoke ctor of ${K} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(Ze.constructor_body).toString()}) parameters instead!`);return pt.apply(this,arguments)}),Pt=Object.create(qe,{constructor:{value:lt}});lt.prototype=Pt;var Ze=new Cc(K,lt,Pt,te,$e,S,A,x);Ze.baseClass&&(Ze.baseClass.__derivedClasses===void 0&&(Ze.baseClass.__derivedClasses=[]),Ze.baseClass.__derivedClasses.push(Ze));var fo=new yr(K,Ze,!0,!1,!1),er=new yr(K+"*",Ze,!1,!1,!1),ui=new yr(K+" const*",Ze,!1,!0,!1);return Sc[n]={pointerType:er,constPointerType:ui},wl(Q,lt),[fo,er,ui]})}function Oc(n,c){for(var u=[],m=0;m<n;m++)u.push(Me[c+m*4>>2]);return u}function Pl(n){for(;n.length;){var c=n.pop(),u=n.pop();u(c)}}function Pc(n,c){if(!(n instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof n} which is not a function`);var u=Pn(n.name||"unknownFunctionName",function(){});u.prototype=n.prototype;var m=new u,E=n.apply(m,c);return E instanceof Object?E:m}function kc(n,c,u,m,E,S){var b=c.length;b<2&&xe("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var A=c[1]!==null&&u!==null,k=!1,x=1;x<c.length;++x)if(c[x]!==null&&c[x].destructorFunction===void 0){k=!0;break}for(var K=c[0].name!=="void",ie="",te="",x=0;x<b-2;++x)ie+=(x!==0?", ":"")+"arg"+x,te+=(x!==0?", ":"")+"arg"+x+"Wired";var Q=`
51
- return function ${ho(n)}(${ie}) {
52
- if (arguments.length !== ${b-2}) {
53
- throwBindingError('function ${n} called with ${arguments.length} arguments, expected ${b-2} args!');
54
- }`;k&&(Q+=`var destructors = [];
55
- `);var ue=k?"destructors":"null",$e=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],qe=[xe,m,E,Pl,c[0],c[1]];A&&(Q+="var thisWired = classParam.toWireType("+ue+`, this);
56
- `);for(var x=0;x<b-2;++x)Q+="var arg"+x+"Wired = argType"+x+".toWireType("+ue+", arg"+x+"); // "+c[x+2].name+`
57
- `,$e.push("argType"+x),qe.push(c[x+2]);if(A&&(te="thisWired"+(te.length>0?", ":"")+te),Q+=(K||S?"var rv = ":"")+"invoker(fn"+(te.length>0?", ":"")+te+`);
58
- `,k)Q+=`runDestructors(destructors);
59
- `;else for(var x=A?1:2;x<c.length;++x){var lt=x===1?"thisWired":"arg"+(x-2)+"Wired";c[x].destructorFunction!==null&&(Q+=lt+"_dtor("+lt+"); // "+c[x].name+`
60
- `,$e.push(lt+"_dtor"),qe.push(c[x].destructorFunction))}return K&&(Q+=`var ret = retType.fromWireType(rv);
61
- return ret;
62
- `),Q+=`}
63
- `,$e.push(Q),Pc(Function,$e).apply(null,qe)}function kl(n,c,u,m,E,S){var b=Oc(c,u);E=ci(m,E),uo([],[n],function(A){A=A[0];var k=`constructor ${A.name}`;if(A.registeredClass.constructor_body===void 0&&(A.registeredClass.constructor_body=[]),A.registeredClass.constructor_body[c-1]!==void 0)throw new Oi(`Cannot register multiple constructors with identical number of parameters (${c-1}) for class '${A.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return A.registeredClass.constructor_body[c-1]=()=>{Un(`Cannot construct ${A.name} due to unbound types`,b)},uo([],b,function(x){return x.splice(1,0,null),A.registeredClass.constructor_body[c-1]=kc(k,x,null,E,S),[]}),[]})}function Ll(n,c,u,m,E,S,b,A,k){var x=Oc(u,m);c=xt(c),S=ci(E,S),uo([],[n],function(K){K=K[0];var ie=`${K.name}.${c}`;c.startsWith("@@")&&(c=Symbol[c.substring(2)]),A&&K.registeredClass.pureVirtualFunctions.push(c);function te(){Un(`Cannot call ${ie} due to unbound types`,x)}var Q=K.registeredClass.instancePrototype,ue=Q[c];return ue===void 0||ue.overloadTable===void 0&&ue.className!==K.name&&ue.argCount===u-2?(te.argCount=u-2,te.className=K.name,Q[c]=te):(Rc(Q,c,ie),Q[c].overloadTable[u-2]=te),uo([],x,function($e){var qe=kc(ie,$e,K,S,b,k);return Q[c].overloadTable===void 0?(qe.argCount=u-2,Q[c]=qe):Q[c].overloadTable[u-2]=qe,[]}),[]})}function Ul(){Object.assign(Lc.prototype,{get(n){return this.allocated[n]},has(n){return this.allocated[n]!==void 0},allocate(n){var c=this.freelist.pop()||this.allocated.length;return this.allocated[c]=n,c},free(n){this.allocated[n]=void 0,this.freelist.push(n)}})}function Lc(){this.allocated=[void 0],this.freelist=[]}var Ot=new Lc;function Uc(n){n>=Ot.reserved&&--Ot.get(n).refcount===0&&Ot.free(n)}function Vl(){for(var n=0,c=Ot.reserved;c<Ot.allocated.length;++c)Ot.allocated[c]!==void 0&&++n;return n}function Bl(){Ot.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),Ot.reserved=Ot.allocated.length,e.count_emval_handles=Vl}var ms={toValue:n=>(n||xe("Cannot use deleted val. handle = "+n),Ot.get(n).value),toHandle:n=>{switch(n){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return Ot.allocate({refcount:1,value:n})}}};function Vc(n,c){c=xt(c),Tr(n,{name:c,fromWireType:function(u){var m=ms.toValue(u);return Uc(u),m},toWireType:function(u,m){return ms.toHandle(m)},argPackAdvance:8,readValueFromPointer:ai,destructorFunction:null})}function Vn(n){if(n===null)return"null";var c=typeof n;return c==="object"||c==="array"||c==="function"?n.toString():""+n}function Fl(n,c){switch(c){case 2:return function(u){return this.fromWireType(gn[u>>2])};case 3:return function(u){return this.fromWireType(nc[u>>3])};default:throw new TypeError("Unknown float type: "+n)}}function Bc(n,c,u){var m=Dn(u);c=xt(c),Tr(n,{name:c,fromWireType:function(E){return E},toWireType:function(E,S){return S},argPackAdvance:8,readValueFromPointer:Fl(c,m),destructorFunction:null})}function $l(n,c,u){switch(c){case 0:return u?function(E){return Pe[E]}:function(E){return tt[E]};case 1:return u?function(E){return Qt[E>>1]}:function(E){return Yt[E>>1]};case 2:return u?function(E){return P[E>>2]}:function(E){return Me[E>>2]};default:throw new TypeError("Unknown integer type: "+n)}}function Hl(n,c,u,m,E){c=xt(c),E===-1&&(E=4294967295);var S=Dn(u),b=ie=>ie;if(m===0){var A=32-8*u;b=ie=>ie<<A>>>A}var k=c.includes("unsigned"),x=(ie,te)=>{},K;k?K=function(ie,te){return x(te,this.name),te>>>0}:K=function(ie,te){return x(te,this.name),te},Tr(n,{name:c,fromWireType:b,toWireType:K,argPackAdvance:8,readValueFromPointer:$l(c,S,m!==0),destructorFunction:null})}function Wl(n,c,u){var m=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],E=m[c];function S(b){b=b>>2;var A=Me,k=A[b],x=A[b+1];return new E(A.buffer,x,k)}u=xt(u),Tr(n,{name:u,fromWireType:S,argPackAdvance:8,readValueFromPointer:S},{ignoreDuplicateRegistrations:!0})}var Gl=(n,c,u)=>vn(n,tt,c,u);function jl(n,c){c=xt(c);var u=c==="std::string";Tr(n,{name:c,fromWireType:function(m){var E=Me[m>>2],S=m+4,b;if(u)for(var A=S,k=0;k<=E;++k){var x=S+k;if(k==E||tt[x]==0){var K=x-A,ie=fc(A,K);b===void 0?b=ie:(b+=String.fromCharCode(0),b+=ie),A=x+1}}else{for(var te=new Array(E),k=0;k<E;++k)te[k]=String.fromCharCode(tt[S+k]);b=te.join("")}return di(m),b},toWireType:function(m,E){E instanceof ArrayBuffer&&(E=new Uint8Array(E));var S,b=typeof E=="string";b||E instanceof Uint8Array||E instanceof Uint8ClampedArray||E instanceof Int8Array||xe("Cannot pass non-string to std::string"),u&&b?S=si(E):S=E.length;var A=Zl(4+S+1),k=A+4;if(Me[A>>2]=S,u&&b)Gl(E,k,S+1);else if(b)for(var x=0;x<S;++x){var K=E.charCodeAt(x);K>255&&(di(k),xe("String has UTF-16 code units that do not fit in 8 bits")),tt[k+x]=K}else for(var x=0;x<S;++x)tt[k+x]=E[x];return m!==null&&m.push(di,A),A},argPackAdvance:8,readValueFromPointer:ai,destructorFunction:function(m){di(m)}})}var Bn=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,ql=(n,c)=>{for(var u=n,m=u>>1,E=m+c/2;!(m>=E)&&Yt[m];)++m;if(u=m<<1,u-n>32&&Bn)return Bn.decode(tt.subarray(n,u));for(var S="",b=0;!(b>=c/2);++b){var A=Qt[n+b*2>>1];if(A==0)break;S+=String.fromCharCode(A)}return S},zl=(n,c,u)=>{if(u===void 0&&(u=2147483647),u<2)return 0;u-=2;for(var m=c,E=u<n.length*2?u/2:n.length,S=0;S<E;++S){var b=n.charCodeAt(S);Qt[c>>1]=b,c+=2}return Qt[c>>1]=0,c-m},xf=n=>n.length*2,Jl=(n,c)=>{for(var u=0,m="";!(u>=c/4);){var E=P[n+u*4>>2];if(E==0)break;if(++u,E>=65536){var S=E-65536;m+=String.fromCharCode(55296|S>>10,56320|S&1023)}else m+=String.fromCharCode(E)}return m},Ar=(n,c,u)=>{if(u===void 0&&(u=2147483647),u<4)return 0;for(var m=c,E=m+u-4,S=0;S<n.length;++S){var b=n.charCodeAt(S);if(b>=55296&&b<=57343){var A=n.charCodeAt(++S);b=65536+((b&1023)<<10)|A&1023}if(P[c>>2]=b,c+=4,c+4>E)break}return P[c>>2]=0,c-m},Fn=n=>{for(var c=0,u=0;u<n.length;++u){var m=n.charCodeAt(u);m>=55296&&m<=57343&&++u,c+=4}return c},Fc=function(n,c,u){u=xt(u);var m,E,S,b,A;c===2?(m=ql,E=zl,b=xf,S=()=>Yt,A=1):c===4&&(m=Jl,E=Ar,b=Fn,S=()=>Me,A=2),Tr(n,{name:u,fromWireType:function(k){for(var x=Me[k>>2],K=S(),ie,te=k+4,Q=0;Q<=x;++Q){var ue=k+4+Q*c;if(Q==x||K[ue>>A]==0){var $e=ue-te,qe=m(te,$e);ie===void 0?ie=qe:(ie+=String.fromCharCode(0),ie+=qe),te=ue+c}}return di(k),ie},toWireType:function(k,x){typeof x!="string"&&xe(`Cannot pass non-string to C++ string type ${u}`);var K=b(x),ie=Zl(4+K+c);return Me[ie>>2]=K>>A,E(x,ie+4,K+c),k!==null&&k.push(di,ie),ie},argPackAdvance:8,readValueFromPointer:ai,destructorFunction:function(k){di(k)}})};function Xl(n,c){c=xt(c),Tr(n,{isVoid:!0,name:c,argPackAdvance:0,fromWireType:function(){},toWireType:function(u,m){}})}var Ql={};function $c(n){var c=Ql[n];return c===void 0?xt(n):c}var $n=[];function hs(n,c,u,m){n=$n[n],c=ms.toValue(c),u=$c(u),n(c,u,null,m)}function Hc(n){var c=$n.length;return $n.push(n),c}function f(n,c){var u=ni[n];return u===void 0&&xe(c+" has unknown type "+Ln(n)),u}function _(n,c){for(var u=new Array(n),m=0;m<n;++m)u[m]=f(Me[c+m*4>>2],"parameter "+m);return u}var I=[];function C(n,c){var u=_(n,c),m=u[0],E=m.name+"_$"+u.slice(1).map(function(ue){return ue.name}).join("_")+"$",S=I[E];if(S!==void 0)return S;for(var b=["retType"],A=[m],k="",x=0;x<n-1;++x)k+=(x!==0?", ":"")+"arg"+x,b.push("argType"+x),A.push(u[1+x]);for(var K=ho("methodCaller_"+E),ie="return function "+K+`(handle, name, destructors, args) {
64
- `,te=0,x=0;x<n-1;++x)ie+=" var arg"+x+" = argType"+x+".readValueFromPointer(args"+(te?"+"+te:"")+`);
65
- `,te+=u[x+1].argPackAdvance;ie+=" var rv = handle[name]("+k+`);
66
- `;for(var x=0;x<n-1;++x)u[x+1].deleteObject&&(ie+=" argType"+x+".deleteObject(arg"+x+`);
67
- `);m.isVoid||(ie+=` return retType.toWireType(destructors, rv);
68
- `),ie+=`};
69
- `,b.push(ie);var Q=Pc(Function,b).apply(null,A);return S=Hc(Q),I[E]=S,S}function M(n,c){return c+2097152>>>0<4194305-!!n?(n>>>0)+c*4294967296:NaN}var $=()=>{kr("")};function G(){return Date.now()}var U=()=>tt.length,ee=()=>U(),H=(n,c,u)=>tt.copyWithin(n,c,c+u),_e=n=>{kr("OOM")},ye=n=>{var c=tt.length;n>>>=0,_e(n)},Re={},ke=()=>d||"./this.program",Ye=()=>{if(!Ye.strings){var n=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",c={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:n,_:ke()};for(var u in Re)Re[u]===void 0?delete c[u]:c[u]=Re[u];var m=[];for(var u in c)m.push(`${u}=${c[u]}`);Ye.strings=m}return Ye.strings},Bt=(n,c)=>{for(var u=0;u<n.length;++u)Pe[c++>>0]=n.charCodeAt(u);Pe[c>>0]=0},At=(n,c)=>{var u=0;return Ye().forEach(function(m,E){var S=c+u;Me[n+E*4>>2]=S,Bt(m,S),u+=m.length+1}),0},Br=(n,c)=>{var u=Ye();Me[n>>2]=u.length;var m=0;return u.forEach(function(E){m+=E.length+1}),Me[c>>2]=m,0};function Hn(n){try{var c=Qe.getStreamFromFD(n);return g.close(c),0}catch(u){if(typeof g=="undefined"||u.name!=="ErrnoError")throw u;return u.errno}}function Kt(n,c){try{var u=0,m=0,E=0,S=Qe.getStreamFromFD(n),b=S.tty?2:g.isDir(S.mode)?3:g.isLink(S.mode)?7:4;return Pe[c>>0]=b,Qt[c+2>>1]=E,He=[u>>>0,(ce=u,+Math.abs(ce)>=1?ce>0?+Math.floor(ce/4294967296)>>>0:~~+Math.ceil((ce-+(~~ce>>>0))/4294967296)>>>0:0)],P[c+8>>2]=He[0],P[c+12>>2]=He[1],He=[m>>>0,(ce=m,+Math.abs(ce)>=1?ce>0?+Math.floor(ce/4294967296)>>>0:~~+Math.ceil((ce-+(~~ce>>>0))/4294967296)>>>0:0)],P[c+16>>2]=He[0],P[c+20>>2]=He[1],0}catch(A){if(typeof g=="undefined"||A.name!=="ErrnoError")throw A;return A.errno}}var Yl=(n,c,u,m)=>{for(var E=0,S=0;S<u;S++){var b=Me[c>>2],A=Me[c+4>>2];c+=8;var k=g.read(n,Pe,b,A,m);if(k<0)return-1;if(E+=k,k<A)break;typeof m!="undefined"&&(m+=k)}return E};function Wc(n,c,u,m){try{var E=Qe.getStreamFromFD(n),S=Yl(E,c,u);return Me[m>>2]=S,0}catch(b){if(typeof g=="undefined"||b.name!=="ErrnoError")throw b;return b.errno}}function Gc(n,c,u,m,E){var S=M(c,u);try{if(isNaN(S))return 61;var b=Qe.getStreamFromFD(n);return g.llseek(b,S,m),He=[b.position>>>0,(ce=b.position,+Math.abs(ce)>=1?ce>0?+Math.floor(ce/4294967296)>>>0:~~+Math.ceil((ce-+(~~ce>>>0))/4294967296)>>>0:0)],P[E>>2]=He[0],P[E+4>>2]=He[1],b.getdents&&S===0&&m===0&&(b.getdents=null),0}catch(A){if(typeof g=="undefined"||A.name!=="ErrnoError")throw A;return A.errno}}var jc=(n,c,u,m)=>{for(var E=0,S=0;S<u;S++){var b=Me[c>>2],A=Me[c+4>>2];c+=8;var k=g.write(n,Pe,b,A,m);if(k<0)return-1;E+=k,typeof m!="undefined"&&(m+=k)}return E};function HE(n,c,u,m){try{var E=Qe.getStreamFromFD(n),S=jc(E,c,u);return Me[m>>2]=S,0}catch(b){if(typeof g=="undefined"||b.name!=="ErrnoError")throw b;return b.errno}}var Mf=function(n,c,u,m){n||(n=this),this.parent=n,this.mount=n.mount,this.mounted=null,this.id=g.nextInode++,this.name=c,this.mode=u,this.node_ops={},this.stream_ops={},this.rdev=m},qc=365,zc=146;Object.defineProperties(Mf.prototype,{read:{get:function(){return(this.mode&qc)===qc},set:function(n){n?this.mode|=qc:this.mode&=~qc}},write:{get:function(){return(this.mode&zc)===zc},set:function(n){n?this.mode|=zc:this.mode&=~zc}},isFolder:{get:function(){return g.isDir(this.mode)}},isDevice:{get:function(){return g.isChrdev(this.mode)}}}),g.FSNode=Mf,g.createPreloadedFile=mc,g.staticInit(),co(),Oi=e.BindingError=class extends Error{constructor(c){super(c),this.name="BindingError"}},gc=e.InternalError=class extends Error{constructor(c){super(c),this.name="InternalError"}},yl(),Tl(),Nl(),Mc=e.UnboundTypeError=xc(Error,"UnboundTypeError"),Ul(),Bl();var WE={p:uc,C:Cn,w:ao,t:_l,n:gl,r:Ol,q:kl,d:Ll,D:Vc,k:Bc,c:Hl,b:Wl,j:jl,f:Fc,o:Xl,g:hs,m:Uc,l:C,a:$,e:G,v:ee,A:H,u:ye,y:At,z:Br,i:Hn,x:Kt,B:Wc,s:Gc,h:HE},DA=w(),GE=()=>(GE=Ge.F)(),Zl=n=>(Zl=Ge.G)(n),di=n=>(di=Ge.I)(n),Of=()=>(Of=Ge.J)(),Pf=n=>(Pf=Ge.K)(n),jE=e.__embind_initialize_bindings=()=>(jE=e.__embind_initialize_bindings=Ge.L)(),kf=n=>(kf=Ge.M)(n),qE=e.dynCall_jiji=(n,c,u,m,E)=>(qE=e.dynCall_jiji=Ge.N)(n,c,u,m,E),NA=e._ff_h264_cabac_tables=67061,Jc;so=function n(){Jc||Lf(),Jc||(so=n)};function Lf(){if(se>0||(al(),se>0))return;function n(){Jc||(Jc=!0,e.calledRun=!0,!_n&&(z(),r(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),cl()))}e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1),n()},1)):n()}if(e.preInit)for(typeof e.preInit=="function"&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();return Lf(),t.ready}})(),Hg=Cy;var Au=class extends Qr{constructor(t){super(Hg,t!=null&&t.wasmPath?fetch(t==null?void 0:t.wasmPath).then(e=>e.arrayBuffer()):void 0,t==null?void 0:t.workerMode,t==null?void 0:t.canvas,t==null?void 0:t.yuvMode)}};var Dy=(()=>{var i=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return function(t={}){var e=t,r,o;e.ready=new Promise((f,_)=>{r=f,o=_});var s=Object.assign({},e),a=[],d="./this.program",h=(f,_)=>{throw _},p=typeof window=="object",T=typeof importScripts=="function",y=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",R="";function N(f){return e.locateFile?e.locateFile(f,R):R+f}var j,W,F,Ie;(p||T)&&(T?R=self.location.href:typeof document!="undefined"&&document.currentScript&&(R=document.currentScript.src),i&&(R=i),R.indexOf("blob:")!==0?R=R.substr(0,R.replace(/[?#].*/,"").lastIndexOf("/")+1):R="",j=f=>{var _=new XMLHttpRequest;return _.open("GET",f,!1),_.send(null),_.responseText},T&&(F=f=>{var _=new XMLHttpRequest;return _.open("GET",f,!1),_.responseType="arraybuffer",_.send(null),new Uint8Array(_.response)}),W=(f,_,I)=>{var C=new XMLHttpRequest;C.open("GET",f,!0),C.responseType="arraybuffer",C.onload=()=>{if(C.status==200||C.status==0&&C.response){_(C.response);return}I()},C.onerror=I,C.send(null)},Ie=f=>document.title=f);var Vt=e.print||console.log.bind(console),Xe=e.printErr||console.error.bind(console);Object.assign(e,s),s=null,e.arguments&&(a=e.arguments),e.thisProgram&&(d=e.thisProgram),e.quit&&(h=e.quit);var Nt;e.wasmBinary&&(Nt=e.wasmBinary);var fe=e.noExitRuntime||!0;typeof WebAssembly!="object"&&Ni("no native wasm support detected");var fn,Ge,_n=!1,sl,ei,Pe,tt,Qt,Yt,P,Me,gn;function nc(){var f=fn.buffer;e.HEAP8=ei=new Int8Array(f),e.HEAP16=tt=new Int16Array(f),e.HEAP32=Yt=new Int32Array(f),e.HEAPU8=Pe=new Uint8Array(f),e.HEAPU16=Qt=new Uint16Array(f),e.HEAPU32=P=new Uint32Array(f),e.HEAPF32=Me=new Float32Array(f),e.HEAPF64=gn=new Float64Array(f)}var ac,En=[],Tn=[],In=[],cc=!1;function nl(){if(e.preRun)for(typeof e.preRun=="function"&&(e.preRun=[e.preRun]);e.preRun.length;)cl(e.preRun.shift());An(En)}function al(){cc=!0,An(Tn)}function z(){if(e.postRun)for(typeof e.postRun=="function"&&(e.postRun=[e.postRun]);e.postRun.length;)ul(e.postRun.shift());An(In)}function cl(f){En.unshift(f)}function dl(f){Tn.unshift(f)}function ul(f){In.unshift(f)}var ti=0,se=null,ri=null;function so(f){ti++,e.monitorRunDependencies&&e.monitorRunDependencies(ti)}function wf(f){if(ti--,e.monitorRunDependencies&&e.monitorRunDependencies(ti),ti==0&&(se!==null&&(clearInterval(se),se=null),ri)){var _=ri;ri=null,_()}}function Ni(f){e.onAbort&&e.onAbort(f),f="Aborted("+f+")",Xe(f),_n=!0,sl=1,f+=". Build with -sASSERTIONS for more info.";var _=new WebAssembly.RuntimeError(f);throw o(_),_}var is="data:application/octet-stream;base64,";function kr(f){return f.startsWith(is)}var wi;wi="videodec_simd.wasm",kr(wi)||(wi=N(wi));function Sn(f){if(f==wi&&Nt)return new Uint8Array(Nt);if(F)return F(f);throw"both async and sync fetching of the wasm failed"}function xi(f){return!Nt&&(p||T)&&typeof fetch=="function"?fetch(f,{credentials:"same-origin"}).then(_=>{if(!_.ok)throw"failed to load wasm binary file at '"+f+"'";return _.arrayBuffer()}).catch(()=>Sn(f)):Promise.resolve().then(()=>Sn(f))}function yn(f,_,I){return xi(f).then(C=>WebAssembly.instantiate(C,_)).then(C=>C).then(I,C=>{Xe("failed to asynchronously prepare wasm: "+C),Ni(C)})}function ll(f,_,I,C){return!f&&typeof WebAssembly.instantiateStreaming=="function"&&!kr(_)&&typeof fetch=="function"?fetch(_,{credentials:"same-origin"}).then(M=>{var $=WebAssembly.instantiateStreaming(M,I);return $.then(C,function(G){return Xe("wasm streaming compile failed: "+G),Xe("falling back to ArrayBuffer instantiation"),yn(_,I,C)})}):yn(_,I,C)}function dc(){var f={a:zl};function _(C,M){var $=C.exports;return Ge=$,fn=Ge.v,nc(),ac=Ge.z,dl(Ge.w),wf("wasm-instantiate"),$}so("wasm-instantiate");function I(C){_(C.instance)}if(e.instantiateWasm)try{return e.instantiateWasm(f,_)}catch(C){Xe("Module.instantiateWasm callback failed with error: "+C),o(C)}return ll(Nt,wi,f,I).catch(o),{}}var An=f=>{for(;f.length>0;)f.shift()(e)};function w(f){this.excPtr=f,this.ptr=f-24,this.set_type=function(_){P[this.ptr+4>>2]=_},this.get_type=function(){return P[this.ptr+4>>2]},this.set_destructor=function(_){P[this.ptr+8>>2]=_},this.get_destructor=function(){return P[this.ptr+8>>2]},this.set_caught=function(_){_=_?1:0,ei[this.ptr+12>>0]=_},this.get_caught=function(){return ei[this.ptr+12>>0]!=0},this.set_rethrown=function(_){_=_?1:0,ei[this.ptr+13>>0]=_},this.get_rethrown=function(){return ei[this.ptr+13>>0]!=0},this.init=function(_,I){this.set_adjusted_ptr(0),this.set_type(_),this.set_destructor(I)},this.set_adjusted_ptr=function(_){P[this.ptr+16>>2]=_},this.get_adjusted_ptr=function(){return P[this.ptr+16>>2]},this.get_exception_ptr=function(){var _=$c(this.get_type());if(_)return P[this.excPtr>>2];var I=this.get_adjusted_ptr();return I!==0?I:this.excPtr}}var ce=0,He=0;function bn(f,_,I){var C=new w(f);throw C.init(_,I),ce=f,He++,ce}function pl(f,_,I,C,M){}function os(f){switch(f){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${f}`)}}function ml(){for(var f=new Array(256),_=0;_<256;++_)f[_]=String.fromCharCode(_);uc=f}var uc=void 0;function wt(f){for(var _="",I=f;Pe[I];)_+=uc[Pe[I++]];return _}var De={},ii={},no={},yt=void 0;function Ne(f){throw new yt(f)}var oi=void 0;function Mi(f){throw new oi(f)}function si(f,_,I){f.forEach(function(U){no[U]=_});function C(U){var ee=I(U);ee.length!==f.length&&Mi("Mismatched type converter count");for(var H=0;H<f.length;++H)Zt(f[H],ee[H])}var M=new Array(_.length),$=[],G=0;_.forEach((U,ee)=>{ii.hasOwnProperty(U)?M[ee]=ii[U]:($.push(U),De.hasOwnProperty(U)||(De[U]=[]),De[U].push(()=>{M[ee]=ii[U],++G,G===$.length&&C(M)}))}),$.length===0&&C(M)}function vn(f,_,I={}){var C=_.name;if(f||Ne(`type "${C}" must have a positive integer typeid pointer`),ii.hasOwnProperty(f)){if(I.ignoreDuplicateRegistrations)return;Ne(`Cannot register type '${C}' twice`)}if(ii[f]=_,delete no[f],De.hasOwnProperty(f)){var M=De[f];delete De[f],M.forEach($=>$())}}function Zt(f,_,I={}){if(!("argPackAdvance"in _))throw new TypeError("registerType registeredInstance requires argPackAdvance");return vn(f,_,I)}function hl(f,_,I,C,M){var $=os(I);_=wt(_),Zt(f,{name:_,fromWireType:function(G){return!!G},toWireType:function(G,U){return U?C:M},argPackAdvance:8,readValueFromPointer:function(G){var U;if(I===1)U=ei;else if(I===2)U=tt;else if(I===4)U=Yt;else throw new TypeError("Unknown boolean type size: "+_);return this.fromWireType(U[G>>$])},destructorFunction:null})}function Lr(f){if(!(this instanceof Vr)||!(f instanceof Vr))return!1;for(var _=this.$$.ptrType.registeredClass,I=this.$$.ptr,C=f.$$.ptrType.registeredClass,M=f.$$.ptr;_.baseClass;)I=_.upcast(I),_=_.baseClass;for(;C.baseClass;)M=C.upcast(M),C=C.baseClass;return _===C&&I===M}function lc(f){return{count:f.count,deleteScheduled:f.deleteScheduled,preservePointerOnDelete:f.preservePointerOnDelete,ptr:f.ptr,ptrType:f.ptrType,smartPtr:f.smartPtr,smartPtrType:f.smartPtrType}}function he(f){function _(I){return I.$$.ptrType.registeredClass.name}Ne(_(f)+" instance already deleted")}var Rn=!1;function pc(f){}function fl(f){f.smartPtr?f.smartPtrType.rawDestructor(f.smartPtr):f.ptrType.registeredClass.rawDestructor(f.ptr)}function mc(f){f.count.value-=1;var _=f.count.value===0;_&&fl(f)}function hc(f,_,I){if(_===I)return f;if(I.baseClass===void 0)return null;var C=hc(f,_,I.baseClass);return C===null?null:I.downcast(C)}var ss={};function g(){return Object.keys(co).length}function fc(){var f=[];for(var _ in co)co.hasOwnProperty(_)&&f.push(co[_]);return f}var Qe=[];function Cn(){for(;Qe.length;){var f=Qe.pop();f.$$.deleteScheduled=!1,f.delete()}}var ao=void 0;function _l(f){ao=f,Qe.length&&ao&&ao(Cn)}function Dn(){e.getInheritedInstanceCount=g,e.getLiveInheritedInstances=fc,e.flushPendingDeletes=Cn,e.setDelayFunction=_l}var co={};function _c(f,_){for(_===void 0&&Ne("ptr should not be undefined");f.baseClass;)_=f.upcast(_),f=f.baseClass;return _}function xt(f,_){return _=_c(f,_),co[_]}function Er(f,_){(!_.ptrType||!_.ptr)&&Mi("makeClassHandle requires ptr and ptrType");var I=!!_.smartPtrType,C=!!_.smartPtr;return I!==C&&Mi("Both smartPtrType and smartPtr must be specified"),_.count={value:1},Ur(Object.create(f,{$$:{value:_}}))}function ni(f){var _=this.getPointee(f);if(!_)return this.destructor(f),null;var I=xt(this.registeredClass,_);if(I!==void 0){if(I.$$.count.value===0)return I.$$.ptr=_,I.$$.smartPtr=f,I.clone();var C=I.clone();return this.destructor(f),C}function M(){return this.isSmartPointer?Er(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:_,smartPtrType:this,smartPtr:f}):Er(this.registeredClass.instancePrototype,{ptrType:this,ptr:f})}var $=this.registeredClass.getActualType(_),G=ss[$];if(!G)return M.call(this);var U;this.isConst?U=G.constPointerType:U=G.pointerType;var ee=hc(_,this.registeredClass,U.registeredClass);return ee===null?M.call(this):this.isSmartPointer?Er(U.registeredClass.instancePrototype,{ptrType:U,ptr:ee,smartPtrType:this,smartPtr:f}):Er(U.registeredClass.instancePrototype,{ptrType:U,ptr:ee})}var Ur=function(f){return typeof FinalizationRegistry=="undefined"?(Ur=_=>_,f):(Rn=new FinalizationRegistry(_=>{mc(_.$$)}),Ur=_=>{var I=_.$$,C=!!I.smartPtr;if(C){var M={$$:I};Rn.register(_,M,_)}return _},pc=_=>Rn.unregister(_),Ur(f))};function Oi(){if(this.$$.ptr||he(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var f=Ur(Object.create(Object.getPrototypeOf(this),{$$:{value:lc(this.$$)}}));return f.$$.count.value+=1,f.$$.deleteScheduled=!1,f}function xe(){this.$$.ptr||he(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Ne("Object already scheduled for deletion"),pc(this),mc(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function gc(){return!this.$$.ptr}function ns(){return this.$$.ptr||he(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Ne("Object already scheduled for deletion"),Qe.push(this),Qe.length===1&&ao&&ao(Cn),this.$$.deleteScheduled=!0,this}function uo(){Vr.prototype.isAliasOf=Lr,Vr.prototype.clone=Oi,Vr.prototype.delete=xe,Vr.prototype.isDeleted=gc,Vr.prototype.deleteLater=ns}function Vr(){}var Tr=48,gl=57;function as(f){if(f===void 0)return"_unknown";f=f.replace(/[^a-zA-Z0-9_]/g,"$");var _=f.charCodeAt(0);return _>=Tr&&_<=gl?`_${f}`:f}function Nn(f,_){return f=as(f),{[f]:function(){return _.apply(this,arguments)}}[f]}function cs(f,_,I){if(f[_].overloadTable===void 0){var C=f[_];f[_]=function(){return f[_].overloadTable.hasOwnProperty(arguments.length)||Ne(`Function '${I}' called with an invalid number of arguments (${arguments.length}) - expects one of (${f[_].overloadTable})!`),f[_].overloadTable[arguments.length].apply(this,arguments)},f[_].overloadTable=[],f[_].overloadTable[C.argCount]=C}}function wn(f,_,I){e.hasOwnProperty(f)?((I===void 0||e[f].overloadTable!==void 0&&e[f].overloadTable[I]!==void 0)&&Ne(`Cannot register public name '${f}' twice`),cs(e,f,f),e.hasOwnProperty(I)&&Ne(`Cannot register multiple overloads of a function with the same number of arguments (${I})!`),e[f].overloadTable[I]=_):(e[f]=_,I!==void 0&&(e[f].numArguments=I))}function Ec(f,_,I,C,M,$,G,U){this.name=f,this.constructor=_,this.instancePrototype=I,this.rawDestructor=C,this.baseClass=M,this.getActualType=$,this.upcast=G,this.downcast=U,this.pureVirtualFunctions=[]}function xn(f,_,I){for(;_!==I;)_.upcast||Ne(`Expected null or instance of ${I.name}, got an instance of ${_.name}`),f=_.upcast(f),_=_.baseClass;return f}function Tc(f,_){if(_===null)return this.isReference&&Ne(`null is not a valid ${this.name}`),0;_.$$||Ne(`Cannot pass "${kn(_)}" as a ${this.name}`),_.$$.ptr||Ne(`Cannot pass deleted object as a pointer of type ${this.name}`);var I=_.$$.ptrType.registeredClass,C=xn(_.$$.ptr,I,this.registeredClass);return C}function Ic(f,_){var I;if(_===null)return this.isReference&&Ne(`null is not a valid ${this.name}`),this.isSmartPointer?(I=this.rawConstructor(),f!==null&&f.push(this.rawDestructor,I),I):0;_.$$||Ne(`Cannot pass "${kn(_)}" as a ${this.name}`),_.$$.ptr||Ne(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&_.$$.ptrType.isConst&&Ne(`Cannot convert argument of type ${_.$$.smartPtrType?_.$$.smartPtrType.name:_.$$.ptrType.name} to parameter type ${this.name}`);var C=_.$$.ptrType.registeredClass;if(I=xn(_.$$.ptr,C,this.registeredClass),this.isSmartPointer)switch(_.$$.smartPtr===void 0&&Ne("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:_.$$.smartPtrType===this?I=_.$$.smartPtr:Ne(`Cannot convert argument of type ${_.$$.smartPtrType?_.$$.smartPtrType.name:_.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:I=_.$$.smartPtr;break;case 2:if(_.$$.smartPtrType===this)I=_.$$.smartPtr;else{var M=_.clone();I=this.rawShare(I,ai.toHandle(function(){M.delete()})),f!==null&&f.push(this.rawDestructor,I)}break;default:Ne("Unsupporting sharing policy")}return I}function Sc(f,_){if(_===null)return this.isReference&&Ne(`null is not a valid ${this.name}`),0;_.$$||Ne(`Cannot pass "${kn(_)}" as a ${this.name}`),_.$$.ptr||Ne(`Cannot pass deleted object as a pointer of type ${this.name}`),_.$$.ptrType.isConst&&Ne(`Cannot convert argument of type ${_.$$.ptrType.name} to parameter type ${this.name}`);var I=_.$$.ptrType.registeredClass,C=xn(_.$$.ptr,I,this.registeredClass);return C}function ds(f){return this.fromWireType(Yt[f>>2])}function El(f){return this.rawGetPointee&&(f=this.rawGetPointee(f)),f}function lo(f){this.rawDestructor&&this.rawDestructor(f)}function Mn(f){f!==null&&f.delete()}function po(){Ir.prototype.getPointee=El,Ir.prototype.destructor=lo,Ir.prototype.argPackAdvance=8,Ir.prototype.readValueFromPointer=ds,Ir.prototype.deleteObject=Mn,Ir.prototype.fromWireType=ni}function Ir(f,_,I,C,M,$,G,U,ee,H,_e){this.name=f,this.registeredClass=_,this.isReference=I,this.isConst=C,this.isSmartPointer=M,this.pointeeType=$,this.sharingPolicy=G,this.rawGetPointee=U,this.rawConstructor=ee,this.rawShare=H,this.rawDestructor=_e,!M&&_.baseClass===void 0?C?(this.toWireType=Tc,this.destructorFunction=null):(this.toWireType=Sc,this.destructorFunction=null):this.toWireType=Ic}function Tl(f,_,I){e.hasOwnProperty(f)||Mi("Replacing nonexistant public symbol"),e[f].overloadTable!==void 0&&I!==void 0?e[f].overloadTable[I]=_:(e[f]=_,e[f].argCount=I)}var mo=(f,_,I)=>{var C=e["dynCall_"+f];return I&&I.length?C.apply(null,[_].concat(I)):C.call(null,_)},us=[],yc=f=>{var _=us[f];return _||(f>=us.length&&(us.length=f+1),us[f]=_=ac.get(f)),_},ls=(f,_,I)=>{if(f.includes("j"))return mo(f,_,I);var C=yc(_).apply(null,I);return C},Il=(f,_)=>{var I=[];return function(){return I.length=0,Object.assign(I,arguments),ls(f,_,I)}};function ur(f,_){f=wt(f);function I(){return f.includes("j")?Il(f,_):yc(_)}var C=I();return typeof C!="function"&&Ne(`unknown function pointer with signature ${f}: ${_}`),C}function Sl(f,_){var I=Nn(_,function(C){this.name=_,this.message=C;var M=new Error(C).stack;M!==void 0&&(this.stack=this.toString()+`
70
- `+M.replace(/^Error(:[^\n]*)?\n/,""))});return I.prototype=Object.create(f.prototype),I.prototype.constructor=I,I.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},I}var Ac=void 0;function bc(f){var _=Fc(f),I=wt(_);return Ar(_),I}function On(f,_){var I=[],C={};function M($){if(!C[$]&&!ii[$]){if(no[$]){no[$].forEach(M);return}I.push($),C[$]=!0}}throw _.forEach(M),new Ac(`${f}: `+I.map(bc).join([", "]))}function yl(f,_,I,C,M,$,G,U,ee,H,_e,ye,Re){_e=wt(_e),$=ur(M,$),U&&(U=ur(G,U)),H&&(H=ur(ee,H)),Re=ur(ye,Re);var ke=as(_e);wn(ke,function(){On(`Cannot construct ${_e} due to unbound types`,[C])}),si([f,_,I],C?[C]:[],function(Ye){Ye=Ye[0];var Bt,At;C?(Bt=Ye.registeredClass,At=Bt.instancePrototype):At=Vr.prototype;var Br=Nn(ke,function(){if(Object.getPrototypeOf(this)!==Hn)throw new yt("Use 'new' to construct "+_e);if(Kt.constructor_body===void 0)throw new yt(_e+" has no accessible constructor");var jc=Kt.constructor_body[arguments.length];if(jc===void 0)throw new yt(`Tried to invoke ctor of ${_e} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(Kt.constructor_body).toString()}) parameters instead!`);return jc.apply(this,arguments)}),Hn=Object.create(At,{constructor:{value:Br}});Br.prototype=Hn;var Kt=new Ec(_e,Br,Hn,Re,Bt,$,U,H);Kt.baseClass&&(Kt.baseClass.__derivedClasses===void 0&&(Kt.baseClass.__derivedClasses=[]),Kt.baseClass.__derivedClasses.push(Kt));var Yl=new Ir(_e,Kt,!0,!1,!1),Wc=new Ir(_e+"*",Kt,!1,!1,!1),Gc=new Ir(_e+" const*",Kt,!1,!0,!1);return ss[f]={pointerType:Wc,constPointerType:Gc},Tl(ke,Br),[Yl,Wc,Gc]})}function Sr(f,_){for(var I=[],C=0;C<f;C++)I.push(P[_+C*4>>2]);return I}function Al(f){for(;f.length;){var _=f.pop(),I=f.pop();I(_)}}function vc(f,_){if(!(f instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof f} which is not a function`);var I=Nn(f.name||"unknownFunctionName",function(){});I.prototype=f.prototype;var C=new I,M=f.apply(C,_);return M instanceof Object?M:C}function ho(f,_,I,C,M,$){var G=_.length;G<2&&Ne("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var U=_[1]!==null&&I!==null,ee=!1,H=1;H<_.length;++H)if(_[H]!==null&&_[H].destructorFunction===void 0){ee=!0;break}for(var _e=_[0].name!=="void",ye="",Re="",H=0;H<G-2;++H)ye+=(H!==0?", ":"")+"arg"+H,Re+=(H!==0?", ":"")+"arg"+H+"Wired";var ke=`
71
- return function ${as(f)}(${ye}) {
72
- if (arguments.length !== ${G-2}) {
73
- throwBindingError('function ${f} called with ${arguments.length} arguments, expected ${G-2} args!');
74
- }`;ee&&(ke+=`var destructors = [];
75
- `);var Ye=ee?"destructors":"null",Bt=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],At=[Ne,C,M,Al,_[0],_[1]];U&&(ke+="var thisWired = classParam.toWireType("+Ye+`, this);
76
- `);for(var H=0;H<G-2;++H)ke+="var arg"+H+"Wired = argType"+H+".toWireType("+Ye+", arg"+H+"); // "+_[H+2].name+`
77
- `,Bt.push("argType"+H),At.push(_[H+2]);if(U&&(Re="thisWired"+(Re.length>0?", ":"")+Re),ke+=(_e||$?"var rv = ":"")+"invoker(fn"+(Re.length>0?", ":"")+Re+`);
78
- `,ee)ke+=`runDestructors(destructors);
79
- `;else for(var H=U?1:2;H<_.length;++H){var Br=H===1?"thisWired":"arg"+(H-2)+"Wired";_[H].destructorFunction!==null&&(ke+=Br+"_dtor("+Br+"); // "+_[H].name+`
80
- `,Bt.push(Br+"_dtor"),At.push(_[H].destructorFunction))}return _e&&(ke+=`var ret = retType.fromWireType(rv);
81
- return ret;
82
- `),ke+=`}
83
- `,Bt.push(ke),vc(Function,Bt).apply(null,At)}function Pn(f,_,I,C,M,$){var G=Sr(_,I);M=ur(C,M),si([],[f],function(U){U=U[0];var ee=`constructor ${U.name}`;if(U.registeredClass.constructor_body===void 0&&(U.registeredClass.constructor_body=[]),U.registeredClass.constructor_body[_-1]!==void 0)throw new yt(`Cannot register multiple constructors with identical number of parameters (${_-1}) for class '${U.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return U.registeredClass.constructor_body[_-1]=()=>{On(`Cannot construct ${U.name} due to unbound types`,G)},si([],G,function(H){return H.splice(1,0,null),U.registeredClass.constructor_body[_-1]=ho(ee,H,null,M,$),[]}),[]})}function Rc(f,_,I,C,M,$,G,U,ee){var H=Sr(I,C);_=wt(_),$=ur(M,$),si([],[f],function(_e){_e=_e[0];var ye=`${_e.name}.${_}`;_.startsWith("@@")&&(_=Symbol[_.substring(2)]),U&&_e.registeredClass.pureVirtualFunctions.push(_);function Re(){On(`Cannot call ${ye} due to unbound types`,H)}var ke=_e.registeredClass.instancePrototype,Ye=ke[_];return Ye===void 0||Ye.overloadTable===void 0&&Ye.className!==_e.name&&Ye.argCount===I-2?(Re.argCount=I-2,Re.className=_e.name,ke[_]=Re):(cs(ke,_,ye),ke[_].overloadTable[I-2]=Re),si([],H,function(Bt){var At=ho(ye,Bt,_e,$,G,ee);return ke[_].overloadTable===void 0?(At.argCount=I-2,ke[_]=At):ke[_].overloadTable[I-2]=At,[]}),[]})}function bl(){Object.assign(Cc.prototype,{get(f){return this.allocated[f]},has(f){return this.allocated[f]!==void 0},allocate(f){var _=this.freelist.pop()||this.allocated.length;return this.allocated[_]=f,_},free(f){this.allocated[f]=void 0,this.freelist.push(f)}})}function Cc(){this.allocated=[void 0],this.freelist=[]}var Mt=new Cc;function Dc(f){f>=Mt.reserved&&--Mt.get(f).refcount===0&&Mt.free(f)}function vl(){for(var f=0,_=Mt.reserved;_<Mt.allocated.length;++_)Mt.allocated[_]!==void 0&&++f;return f}function Rl(){Mt.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),Mt.reserved=Mt.allocated.length,e.count_emval_handles=vl}var ai={toValue:f=>(f||Ne("Cannot use deleted val. handle = "+f),Mt.get(f).value),toHandle:f=>{switch(f){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return Mt.allocate({refcount:1,value:f})}}};function Cl(f,_){_=wt(_),Zt(f,{name:_,fromWireType:function(I){var C=ai.toValue(I);return Dc(I),C},toWireType:function(I,C){return ai.toHandle(C)},argPackAdvance:8,readValueFromPointer:ds,destructorFunction:null})}function kn(f){if(f===null)return"null";var _=typeof f;return _==="object"||_==="array"||_==="function"?f.toString():""+f}function Dl(f,_){switch(_){case 2:return function(I){return this.fromWireType(Me[I>>2])};case 3:return function(I){return this.fromWireType(gn[I>>3])};default:throw new TypeError("Unknown float type: "+f)}}function Nl(f,_,I){var C=os(I);_=wt(_),Zt(f,{name:_,fromWireType:function(M){return M},toWireType:function(M,$){return $},argPackAdvance:8,readValueFromPointer:Dl(_,C),destructorFunction:null})}function yr(f,_,I){switch(_){case 0:return I?function(M){return ei[M]}:function(M){return Pe[M]};case 1:return I?function(M){return tt[M>>1]}:function(M){return Qt[M>>1]};case 2:return I?function(M){return Yt[M>>2]}:function(M){return P[M>>2]};default:throw new TypeError("Unknown integer type: "+f)}}function wl(f,_,I,C,M){_=wt(_),M===-1&&(M=4294967295);var $=os(I),G=ye=>ye;if(C===0){var U=32-8*I;G=ye=>ye<<U>>>U}var ee=_.includes("unsigned"),H=(ye,Re)=>{},_e;ee?_e=function(ye,Re){return H(Re,this.name),Re>>>0}:_e=function(ye,Re){return H(Re,this.name),Re},Zt(f,{name:_,fromWireType:G,toWireType:_e,argPackAdvance:8,readValueFromPointer:yr(_,$,C!==0),destructorFunction:null})}function xl(f,_,I){var C=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],M=C[_];function $(G){G=G>>2;var U=P,ee=U[G],H=U[G+1];return new M(U.buffer,H,ee)}I=wt(I),Zt(f,{name:I,fromWireType:$,argPackAdvance:8,readValueFromPointer:$},{ignoreDuplicateRegistrations:!0})}var ps=(f,_,I,C)=>{if(!(C>0))return 0;for(var M=I,$=I+C-1,G=0;G<f.length;++G){var U=f.charCodeAt(G);if(U>=55296&&U<=57343){var ee=f.charCodeAt(++G);U=65536+((U&1023)<<10)|ee&1023}if(U<=127){if(I>=$)break;_[I++]=U}else if(U<=2047){if(I+1>=$)break;_[I++]=192|U>>6,_[I++]=128|U&63}else if(U<=65535){if(I+2>=$)break;_[I++]=224|U>>12,_[I++]=128|U>>6&63,_[I++]=128|U&63}else{if(I+3>=$)break;_[I++]=240|U>>18,_[I++]=128|U>>12&63,_[I++]=128|U>>6&63,_[I++]=128|U&63}}return _[I]=0,I-M},Nc=(f,_,I)=>ps(f,Pe,_,I),Ml=f=>{for(var _=0,I=0;I<f.length;++I){var C=f.charCodeAt(I);C<=127?_++:C<=2047?_+=2:C>=55296&&C<=57343?(_+=4,++I):_+=3}return _},wc=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,ci=(f,_,I)=>{for(var C=_+I,M=_;f[M]&&!(M>=C);)++M;if(M-_>16&&f.buffer&&wc)return wc.decode(f.subarray(_,M));for(var $="";_<M;){var G=f[_++];if(!(G&128)){$+=String.fromCharCode(G);continue}var U=f[_++]&63;if((G&224)==192){$+=String.fromCharCode((G&31)<<6|U);continue}var ee=f[_++]&63;if((G&240)==224?G=(G&15)<<12|U<<6|ee:G=(G&7)<<18|U<<12|ee<<6|f[_++]&63,G<65536)$+=String.fromCharCode(G);else{var H=G-65536;$+=String.fromCharCode(55296|H>>10,56320|H&1023)}}return $},xc=(f,_)=>f?ci(Pe,f,_):"";function Mc(f,_){_=wt(_);var I=_==="std::string";Zt(f,{name:_,fromWireType:function(C){var M=P[C>>2],$=C+4,G;if(I)for(var U=$,ee=0;ee<=M;++ee){var H=$+ee;if(ee==M||Pe[H]==0){var _e=H-U,ye=xc(U,_e);G===void 0?G=ye:(G+=String.fromCharCode(0),G+=ye),U=H+1}}else{for(var Re=new Array(M),ee=0;ee<M;++ee)Re[ee]=String.fromCharCode(Pe[$+ee]);G=Re.join("")}return Ar(C),G},toWireType:function(C,M){M instanceof ArrayBuffer&&(M=new Uint8Array(M));var $,G=typeof M=="string";G||M instanceof Uint8Array||M instanceof Uint8ClampedArray||M instanceof Int8Array||Ne("Cannot pass non-string to std::string"),I&&G?$=Ml(M):$=M.length;var U=Fn(4+$+1),ee=U+4;if(P[U>>2]=$,I&&G)Nc(M,ee,$+1);else if(G)for(var H=0;H<$;++H){var _e=M.charCodeAt(H);_e>255&&(Ar(ee),Ne("String has UTF-16 code units that do not fit in 8 bits")),Pe[ee+H]=_e}else for(var H=0;H<$;++H)Pe[ee+H]=M[H];return C!==null&&C.push(Ar,U),U},argPackAdvance:8,readValueFromPointer:ds,destructorFunction:function(C){Ar(C)}})}var Ln=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,Un=(f,_)=>{for(var I=f,C=I>>1,M=C+_/2;!(C>=M)&&Qt[C];)++C;if(I=C<<1,I-f>32&&Ln)return Ln.decode(Pe.subarray(f,I));for(var $="",G=0;!(G>=_/2);++G){var U=tt[f+G*2>>1];if(U==0)break;$+=String.fromCharCode(U)}return $},Ol=(f,_,I)=>{if(I===void 0&&(I=2147483647),I<2)return 0;I-=2;for(var C=_,M=I<f.length*2?I/2:f.length,$=0;$<M;++$){var G=f.charCodeAt($);tt[_>>1]=G,_+=2}return tt[_>>1]=0,_-C},Oc=f=>f.length*2,Pl=(f,_)=>{for(var I=0,C="";!(I>=_/4);){var M=Yt[f+I*4>>2];if(M==0)break;if(++I,M>=65536){var $=M-65536;C+=String.fromCharCode(55296|$>>10,56320|$&1023)}else C+=String.fromCharCode(M)}return C},Pc=(f,_,I)=>{if(I===void 0&&(I=2147483647),I<4)return 0;for(var C=_,M=C+I-4,$=0;$<f.length;++$){var G=f.charCodeAt($);if(G>=55296&&G<=57343){var U=f.charCodeAt(++$);G=65536+((G&1023)<<10)|U&1023}if(Yt[_>>2]=G,_+=4,_+4>M)break}return Yt[_>>2]=0,_-C},kc=f=>{for(var _=0,I=0;I<f.length;++I){var C=f.charCodeAt(I);C>=55296&&C<=57343&&++I,_+=4}return _},kl=function(f,_,I){I=wt(I);var C,M,$,G,U;_===2?(C=Un,M=Ol,G=Oc,$=()=>Qt,U=1):_===4&&(C=Pl,M=Pc,G=kc,$=()=>P,U=2),Zt(f,{name:I,fromWireType:function(ee){for(var H=P[ee>>2],_e=$(),ye,Re=ee+4,ke=0;ke<=H;++ke){var Ye=ee+4+ke*_;if(ke==H||_e[Ye>>U]==0){var Bt=Ye-Re,At=C(Re,Bt);ye===void 0?ye=At:(ye+=String.fromCharCode(0),ye+=At),Re=Ye+_}}return Ar(ee),ye},toWireType:function(ee,H){typeof H!="string"&&Ne(`Cannot pass non-string to C++ string type ${I}`);var _e=G(H),ye=Fn(4+_e+_);return P[ye>>2]=_e>>U,M(H,ye+4,_e+_),ee!==null&&ee.push(Ar,ye),ye},argPackAdvance:8,readValueFromPointer:ds,destructorFunction:function(ee){Ar(ee)}})};function Ll(f,_){_=wt(_),Zt(f,{isVoid:!0,name:_,argPackAdvance:0,fromWireType:function(){},toWireType:function(I,C){}})}var Ul={};function Lc(f){var _=Ul[f];return _===void 0?wt(f):_}var Ot=[];function Uc(f,_,I,C){f=Ot[f],_=ai.toValue(_),I=Lc(I),f(_,I,null,C)}function Vl(f){var _=Ot.length;return Ot.push(f),_}function Bl(f,_){var I=ii[f];return I===void 0&&Ne(_+" has unknown type "+bc(f)),I}function ms(f,_){for(var I=new Array(f),C=0;C<f;++C)I[C]=Bl(P[_+C*4>>2],"parameter "+C);return I}var Vc=[];function Vn(f,_){var I=ms(f,_),C=I[0],M=C.name+"_$"+I.slice(1).map(function(Ye){return Ye.name}).join("_")+"$",$=Vc[M];if($!==void 0)return $;for(var G=["retType"],U=[C],ee="",H=0;H<f-1;++H)ee+=(H!==0?", ":"")+"arg"+H,G.push("argType"+H),U.push(I[1+H]);for(var _e=as("methodCaller_"+M),ye="return function "+_e+`(handle, name, destructors, args) {
84
- `,Re=0,H=0;H<f-1;++H)ye+=" var arg"+H+" = argType"+H+".readValueFromPointer(args"+(Re?"+"+Re:"")+`);
85
- `,Re+=I[H+1].argPackAdvance;ye+=" var rv = handle[name]("+ee+`);
86
- `;for(var H=0;H<f-1;++H)I[H+1].deleteObject&&(ye+=" argType"+H+".deleteObject(arg"+H+`);
87
- `);C.isVoid||(ye+=` return retType.toWireType(destructors, rv);
88
- `),ye+=`};
89
- `,G.push(ye);var ke=vc(Function,G).apply(null,U);return $=Vl(ke),Vc[M]=$,$}var Fl=()=>{Ni("")},Bc;Bc=()=>performance.now();var $l=(f,_,I)=>Pe.copyWithin(f,_,_+I),Hl=f=>{Ni("OOM")},Wl=f=>{var _=Pe.length;f>>>=0,Hl(f)},Gl=[null,[],[]],jl=(f,_)=>{var I=Gl[f];_===0||_===10?((f===1?Vt:Xe)(ci(I,0)),I.length=0):I.push(_)},Bn={varargs:void 0,get(){Bn.varargs+=4;var f=Yt[Bn.varargs-4>>2];return f},getStr(f){var _=xc(f);return _}},ql=(f,_,I,C)=>{for(var M=0,$=0;$<I;$++){var G=P[_>>2],U=P[_+4>>2];_+=8;for(var ee=0;ee<U;ee++)jl(f,Pe[G+ee]);M+=U}return P[C>>2]=M,0};ml(),yt=e.BindingError=class extends Error{constructor(_){super(_),this.name="BindingError"}},oi=e.InternalError=class extends Error{constructor(_){super(_),this.name="InternalError"}},uo(),Dn(),po(),Ac=e.UnboundTypeError=Sl(Error,"UnboundTypeError"),bl(),Rl();var zl={o:bn,r:pl,m:hl,q:yl,p:Pn,d:Rc,u:Cl,k:Nl,b:wl,a:xl,j:Mc,g:kl,n:Ll,e:Uc,l:Dc,h:Vn,f:Fl,c:Bc,t:$l,s:Wl,i:ql},xf=dc(),Jl=()=>(Jl=Ge.w)(),Ar=f=>(Ar=Ge.x)(f),Fn=f=>(Fn=Ge.y)(f),Fc=f=>(Fc=Ge.A)(f),Xl=e.__embind_initialize_bindings=()=>(Xl=e.__embind_initialize_bindings=Ge.B)(),Ql=()=>(Ql=Ge.__errno_location)(),$c=f=>($c=Ge.C)(f),$n=e.dynCall_jiji=(f,_,I,C,M)=>($n=e.dynCall_jiji=Ge.D)(f,_,I,C,M),hs;ri=function f(){hs||Hc(),hs||(ri=f)};function Hc(){if(ti>0||(nl(),ti>0))return;function f(){hs||(hs=!0,e.calledRun=!0,!_n&&(al(),r(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),z()))}e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1),f()},1)):f()}if(e.preInit)for(typeof e.preInit=="function"&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();return Hc(),t.ready}})(),Wg=Dy;var bu=class extends Qr{constructor(t){super(Wg,t!=null&&t.wasmPath?fetch(t.wasmPath).then(e=>e.arrayBuffer()):void 0,t==null?void 0:t.workerMode,t==null?void 0:t.canvas,t==null?void 0:t.yuvMode)}};var dh=class{constructor(t){this.core=t;this.contextMap=new Map;this.decodeProcessorMap=new WeakMap;this.createDecoder=this.createDecoder.bind(this)}getAlias(){return"videoDecoder"}getGroup(t){return t!=null&&t.track?`${t.track.userId}${t.track.streamType}`:"*"}getName(){return dh.Name}getValidateRule(t){return{type:this.core.enums.BASIC_TYPE.Object}}createDecoder(t,e){switch(t){case"wasm":return this.core.rtcDectection.isSIMDSupported()?new bu(me(J({},e),{wasmPath:`${this.core.assetsPath}videodec_simd.wasm`})):new Au(me(J({},e),{wasmPath:`${this.core.assetsPath}videodec.wasm`}));case"webCodecs":return new Di;case"mse":throw new Error("mse decoder not supported yet");default:throw new Error("Unsupported decoder type")}}start(t){this.decodeProcessorMap.set(t.track,this.decode(t)),this.core.room.videoManager.addDecodeProcessor({processor:({frame:e,track:r})=>{var o;return((o=this.decodeProcessorMap.get(r))==null?void 0:o({frame:e,track:r}))||e},type:3})}decode(t){let{pipe:e,take:r,subscribe:o}=this.core.rx;return({frame:s,track:a})=>{if(a!==t.track||s.type==="empty")return s;if(this.contextMap.has(a))return this.contextMap.get(a).decode(s);let d=this.core.room.videoManager.createDecodeContext(me(J({},t),{createDecoder:this.createDecoder}));return e(d.trackDoneOB,r(1),o(()=>{this.core.clearStarted(this,this.getGroup(t)),this.stop({track:a})})),this.contextMap.set(a,d),d.decode(s)}}stop(t){if(!(t!=null&&t.track))this.contextMap.forEach((e,r)=>{e.close("stop"),this.contextMap.delete(r)});else{let e=this.contextMap.get(t.track);e&&(e.close("stop"),this.contextMap.delete(t.track))}this.contextMap.size===0&&this.core.room.videoManager.removeDecodeProcessor({type:3})}update(t){let e=this.contextMap.get(t.track);if(!!e){if(t.type==="mock"){e.mock(this.core.enums.DECODE_FAILED_ERROR_CODE.TEST);return}e.close("update"),this.contextMap.set(t.track,this.core.room.videoManager.createDecodeContext(me(J({},t),{createDecoder:this.createDecoder})))}}},Xa=dh;Xa.Name="TRTCVideoDecoder";function Oe(...i){}var Ny=i=>i();function lh(){this.dispose()}var wy=()=>typeof __FASTRX_DEVTOOLS__!="undefined",xy=1,Yr=class extends Function{toString(){return`${this.name}(${this.args.length?[...this.args].join(", "):""})`}subscribe(t){let e=new uh(t,this,this.streamId++);return ut.subscribe({id:this.id,end:!1},{nodeId:e.sourceId,streamId:e.id}),this(e),e}},Ks=class{constructor(){this.defers=new Set,this.disposed=!1}next(t){}complete(){this.dispose()}error(t){this.dispose()}get bindDispose(){return()=>this.dispose()}dispose(){this.disposed=!0,this.complete=Oe,this.error=Oe,this.next=Oe,this.dispose=Oe,this.subscribe=Oe,this.doDefer()}subscribe(t){return t instanceof Yr?t.subscribe(this):t(this),this}get bindSubscribe(){return t=>this.subscribe(t)}doDefer(){this.defers.forEach(Ny),this.defers.clear()}defer(t){this.defers.add(t)}removeDefer(t){this.defers.delete(t)}reset(){this.disposed=!1,delete this.complete,delete this.next,delete this.dispose,delete this.next,delete this.subscribe}resetNext(){delete this.next}resetComplete(){delete this.complete}resetError(){delete this.error}},pe=class extends Ks{constructor(t){super(),this.sink=t,t.defer(this.bindDispose)}next(t){this.sink.next(t)}complete(){this.sink.complete()}error(t){this.sink.error(t)}},vu=class extends Ks{constructor(t,e=Oe,r=Oe,o=Oe){if(super(),this._next=e,this._error=r,this._complete=o,this.then=Oe,t instanceof Yr){let s={toString:()=>"subscribe",id:0,source:t};this.defer(()=>{ut.defer(s,0)}),ut.create(s),ut.pipe(s),this.sourceId=s.id,this.subscribe(t),ut.subscribe({id:s.id,end:!0}),e==Oe?this._next=a=>ut.next(s,0,a):this.next=a=>{ut.next(s,0,a),e(a)},o==Oe?this._complete=()=>ut.complete(s,0):this.complete=()=>{this.dispose(),ut.complete(s,0),o()},r==Oe?this._error=a=>ut.complete(s,0,a):this.error=a=>{this.dispose(),ut.complete(s,0,a),r()}}else this.subscribe(t)}next(t){this._next(t)}complete(){this.dispose(),this._complete()}error(t){this.dispose(),this._error(t)}};function Jt(i,...t){return t.reduce((e,r)=>r(e),i)}function Mr(i,t,e){if(wy()){let r=Object.defineProperties(Object.setPrototypeOf(i,Yr.prototype),{streamId:{value:0,writable:!0,configurable:!0},name:{value:t,writable:!0,configurable:!0},args:{value:e,writable:!0,configurable:!0},id:{value:0,writable:!0,configurable:!0}});ut.create(r);for(let o=0;o<e.length;o++){let s=e[o];typeof s=="function"&&s instanceof Yr&&ut.addSource(r,s)}return r}return i}function Te(i,t){return function(...e){return r=>{if(r instanceof Yr){let o=Mr(s=>{let a=new i(s,...e);a.sourceId=o.id,a.subscribe(r)},t,arguments);return o.source=r,ut.pipe(o),o}else return o=>r(new i(o,...e))}}}function Zi(i,t){window.postMessage({source:"fastrx-devtools-backend",payload:{event:i,payload:t}})}var uh=class extends pe{constructor(t,e,r){super(t),this.source=e,this.id=r,this.sourceId=t.sourceId,this.defer(()=>{ut.defer(this.source,this.id)})}next(t){ut.next(this.source,this.id,t),this.sink.next(t)}complete(){ut.complete(this.source,this.id),this.sink.complete()}error(t){ut.complete(this.source,this.id,t),this.sink.error(t)}},ut={addSource(i,t){Zi("addSource",{id:i.id,name:i.toString(),source:{id:t.id,name:t.toString()}})},next(i,t,e){Zi("next",{id:i.id,streamId:t,data:e&&e.toString()})},subscribe({id:i,end:t},e){Zi("subscribe",{id:i,end:t,sink:{nodeId:e&&e.nodeId,streamId:e&&e.streamId}})},complete(i,t,e){Zi("complete",{id:i.id,streamId:t,err:e?e.toString():null})},defer(i,t){Zi("defer",{id:i.id,streamId:t})},pipe(i){Zi("pipe",{name:i.toString(),id:i.id,source:{id:i.source.id,name:i.source.toString()}})},update(i){Zi("update",{id:i.id,name:i.toString()})},create(i){i.id||(i.id=xy++),Zi("create",{name:i.toString(),id:i.id})}},Ru=class extends Error{constructor(t){super(`timeout after ${t}ms`),this.timeout=t}};var ph=class extends Ks{constructor(t){super(),this.source=t,this.sinks=new Set}add(t){t.defer(()=>this.remove(t)),this.sinks.add(t).size===1&&(this.reset(),this.subscribe(this.source))}remove(t){this.sinks.delete(t),this.sinks.size===0&&this.dispose()}next(t){this.sinks.forEach(e=>e.next(t))}complete(){this.sinks.forEach(t=>t.complete()),this.sinks.clear()}error(t){this.sinks.forEach(e=>e.error(t)),this.sinks.clear()}};function Gg(){return i=>{let t=new ph(i);if(i instanceof Yr){let e=Mr(r=>{t.add(r)},"share",arguments);return t.sourceId=e.id,e.source=i,ut.pipe(e),e}return Mr(t.add.bind(t),"share",arguments)}}function My(...i){return Mr(t=>{let e=i.length,r=e,o=e,s=new Array(e),a=()=>{--o===0&&t.complete()},d=(h,p)=>{let T=new pe(t);T.next=y=>{--r===0?(T.next=R=>{s[p]=R,t.next(s)},T.next(y)):s[p]=y},T.complete=a,T.subscribe(h)};i.forEach(d)},"combineLatest",arguments)}var mh=class extends pe{constructor(t,...e){super(t);let r=new pe(this.sink);r.next=o=>this.buffer=o,r.complete=Oe,r.subscribe(My(...e))}next(t){this.buffer&&this.sink.next([t,...this.buffer])}},tO=Te(mh,"withLatestFrom"),hh=class extends pe{constructor(t,e,r){super(t),this.bufferSize=e,this.startBufferEvery=r,this.buffer=[],this.count=0,this.startBufferEvery&&(this.buffers=[[]])}next(t){this.startBufferEvery?(this.count++===this.startBufferEvery&&(this.buffers.push([]),this.count=1),this.buffers.forEach(e=>{e.push(t)}),this.buffers[0].length===this.bufferSize&&this.sink.next(this.buffers.shift())):(this.buffer.push(t),this.buffer.length===this.bufferSize&&(this.sink.next(this.buffer),this.buffer=[]))}complete(){this.buffer.length?this.sink.next(this.buffer):this.buffers.length&&this.buffers.forEach(t=>this.sink.next(t)),super.complete()}},rO=Te(hh,"bufferCount"),fh=class extends pe{constructor(t,e){super(t),this.buffer=[];let r=new pe(t);r.next=o=>{t.next(this.buffer),this.buffer=[]},r.complete=Oe,r.subscribe(e)}next(t){this.buffer.push(t)}complete(){this.buffer.length&&this.sink.next(this.buffer),super.complete()}},iO=Te(fh,"buffer");function en(i){let t=arguments,e=Gg()(Mr(r=>{e.next=o=>r.next(o),e.complete=()=>r.complete(),e.error=o=>r.error(o),i&&r.subscribe(i)},"subject",t));return e.next=Oe,e.complete=Oe,e.error=Oe,e}function _h(i,t){return e=>{let r=o=>e.next(o);e.defer(()=>t(r)),i(r)}}function Xt(i,t){if("on"in i)return Mr(_h(e=>i.on(t,e),e=>i.off(t,e)),"fromEvent",arguments);if("addListener"in i)return Mr(_h(e=>i.addListener(t,e),e=>i.removeListener(t,e)),"fromEvent",arguments);if("addEventListener"in i)return Mr(_h(e=>i.addEventListener(t,e),e=>i.removeEventListener(t,e)),"fromEvent",arguments);throw"target is not a EventDispachter"}var gh=class extends pe{constructor(t,e,r){super(t),this.f=e;let o=()=>{this.sink.next(this.acc),this.sink.complete()};typeof r=="undefined"?this.next=s=>{this.acc=s,this.complete=o,this.resetNext()}:(this.acc=r,this.complete=o)}next(t){this.acc=this.f(this.acc,t)}},Oy=Te(gh,"reduce");var Eh=class extends pe{constructor(t,e,r){super(t),this.filter=e,this.thisArg=r}next(t){this.filter.call(this.thisArg,t)&&this.sink.next(t)}},hO=Te(Eh,"filter"),Th=class extends pe{next(t){}},fO=Te(Th,"ignoreElements"),Ih=class extends pe{constructor(t,e){super(t),this.count=e}next(t){this.sink.next(t),--this.count===0&&this.complete()}},jg=Te(Ih,"take"),Sh=class extends pe{constructor(t,e){super(t);let r=new pe(t);r.next=()=>t.complete(),r.complete=lh,r.subscribe(e)}},Ki=Te(Sh,"takeUntil"),yh=class extends pe{constructor(t,e){super(t),this.f=e}next(t){this.f(t)?this.sink.next(t):this.complete()}},_O=Te(yh,"takeWhile");var Ah=class extends pe{constructor(t,e){super(t),this.count=e}next(t){--this.count===0&&(this.next=super.next)}},gO=Te(Ah,"skip"),bh=class extends pe{constructor(t,e){super(t),t.next=Oe;let r=new pe(t);r.next=()=>{r.dispose(),t.resetNext()},r.complete=lh,r.subscribe(e)}},EO=Te(bh,"skipUntil"),vh=class extends pe{constructor(t,e){super(t),this.f=e}next(t){this.f(t)||(this.next=super.next,this.next(t))}},TO=Te(vh,"skipWhile"),Py={leading:!0,trailing:!1},Rh=class extends pe{constructor(t,e,r){super(t),this.durationSelector=e,this.trailing=r}cacheValue(t){this.last=t,this.disposed&&this.throttle(t)}send(t){this.sink.next(t),this.throttle(t)}throttle(t){this.reset(),this.subscribe(this.durationSelector(t))}next(){this.complete()}complete(){this.dispose(),this.trailing&&this.send(this.last)}},Ch=class extends pe{constructor(t,e,r=Py){super(t),this.durationSelector=e,this.config=r,this._throttle=new Rh(this.sink,this.durationSelector,this.config.trailing),this._throttle.dispose()}next(t){this._throttle.disposed&&this.config.leading?this._throttle.send(t):this._throttle.cacheValue(t)}complete(){this._throttle.throttle=Oe,this._throttle.complete(),super.complete()}},IO=Te(Ch,"throttle");var Dh=class extends pe{next(){this.complete()}complete(){this.dispose(),this.sink.next(this.last)}},Nh=class extends pe{constructor(t,e){super(t),this.durationSelector=e,this._debounce=new Dh(this.sink),this._debounce.dispose()}next(t){this._debounce.dispose(),this._debounce.reset(),this._debounce.last=t,this._debounce.subscribe(this.durationSelector(t))}complete(){this._debounce.complete(),super.complete()}},SO=Te(Nh,"debounce");var wh=class extends pe{constructor(t,e,r){super(t),this.count=e,this.defaultValue=r}next(t){this.count--===0&&(this.defaultValue=t,this.complete())}complete(){if(this.defaultValue===void 0){this.error(new Error("not enough elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},yO=Te(wh,"elementAt");var xh=class extends pe{constructor(t,e){super(t),this.f=e,this.i=0}next(t){this.f(t)?(this.sink.next(this.i++),this.complete()):++this.i}},AO=Te(xh,"findIndex"),Mh=class extends pe{constructor(t,e,r){super(t),this.f=e,this.defaultValue=r,this.index=0}next(t){(!this.f||this.f(t,this.index++))&&(this.defaultValue=t,this.complete())}complete(){if(this.defaultValue===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},bO=Te(Mh,"first"),Oh=class extends pe{constructor(t,e,r){super(t),this.f=e,this.defaultValue=r,this.index=0}next(t){(!this.f||this.f(t,this.index++))&&(this.defaultValue=t)}complete(){if(this.defaultValue===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},vO=Te(Oh,"last"),Ph=class extends pe{constructor(t,e){super(t),this.predicate=e,this.index=0}next(t){this.predicate(t,this.index++)?this.result=!0:(this.result=!1,this.complete())}complete(){if(this.result===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.result);super.complete()}},RO=Te(Ph,"every");var kh=class extends pe{constructor(t,e,r){super(t),this.f=e,typeof r=="undefined"?this.next=o=>{this.acc=o,this.resetNext(),this.sink.next(this.acc)}:this.acc=r}next(t){this.sink.next(this.acc=this.f(this.acc,t))}},wO=Te(kh,"scan"),Lh=class extends pe{constructor(){super(...arguments),this.hasLast=!1}next(t){this.hasLast?this.sink.next([this.last,t]):this.hasLast=!0,this.last=t}},xO=Te(Lh,"pairwise"),Uh=class extends pe{constructor(t,e,r){super(t),this.mapper=e,this.thisArg=r}next(t){super.next(this.mapper.call(this.thisArg,t))}},qg=Te(Uh,"map");var tn=class extends pe{constructor(t,e,r){super(t),this.data=e,this.context=r}next(t){let e=this.context.combineResults;e?this.sink.next(e(this.data,t)):this.sink.next(t)}tryComplete(){this.context.resetComplete(),this.dispose()}},rn=class extends pe{constructor(t,e,r){super(t),this.makeSource=e,this.combineResults=r,this.index=0}subInner(t,e){let r=this.currentSink=new e(this.sink,t,this);this.complete=this.tryComplete,r.complete=r.tryComplete,r.subscribe(this.makeSource(t,this.index++))}tryComplete(){this.currentSink.resetComplete(),this.dispose()}},Cu=class extends tn{},Du=class extends rn{next(t){this.subInner(t,Cu),this.next=e=>{this.currentSink.dispose(),this.subInner(e,Cu)}}},zg=Te(Du,"switchMap");function Mu(i){return(t,e)=>i(()=>t,e)}var Jg=Mu(Te(Du,"switchMapTo")),Vh=class extends tn{tryComplete(){this.dispose(),this.context.sources.length?this.context.subNext():(this.context.resetNext(),this.context.resetComplete())}},Nu=class extends rn{constructor(){super(...arguments),this.sources=[],this.next2=this.sources.push.bind(this.sources)}next(t){this.next2(t),this.subNext()}subNext(){this.next=this.next2,this.subInner(this.sources.shift(),Vh),this.disposed&&this.sources.length===0&&this.currentSink.resetComplete()}tryComplete(){this.sources.length===0&&this.currentSink.resetComplete(),this.dispose()}},MO=Te(Nu,"concatMap"),OO=Mu(Te(Nu,"concatMapTo")),Bh=class extends tn{tryComplete(){this.context.inners.delete(this),super.dispose(),this.context.inners.size===0&&this.context.resetComplete()}},wu=class extends rn{constructor(){super(...arguments),this.inners=new Set}next(t){this.subInner(t,Bh),this.inners.add(this.currentSink)}tryComplete(){this.inners.size===1?this.inners.forEach(t=>t.resetComplete()):this.dispose()}},PO=Te(wu,"mergeMap"),kO=Mu(Te(wu,"mergeMapTo")),Fh=class extends tn{dispose(){this.context.resetNext(),super.dispose()}},xu=class extends rn{next(t){this.next=Oe,this.subInner(t,Fh)}},LO=Te(xu,"exhaustMap"),UO=Mu(Te(xu,"exhaustMapTo")),$h=class extends pe{constructor(t,e){super(t),this.f=e,this.groups=new Map}next(t){let e=this.f(t),r=this.groups.get(e);typeof r=="undefined"&&(r=en(),r.key=e,this.groups.set(e,r),super.next(r)),r.next(t)}complete(){this.groups.forEach(t=>t.complete()),super.complete()}error(t){this.groups.forEach(e=>e.error(t)),super.error(t)}},VO=Te($h,"groupBy"),Hh=class extends pe{constructor(){super(...arguments),this.start=new Date}next(t){this.sink.next({value:t,interval:Number(new Date)-Number(this.start)}),this.start=new Date}},BO=Te(Hh,"timeInterval"),Wh=class extends pe{constructor(t,e){super(t),this.miniseconds=e,this.buffer=[],this.id=setInterval(()=>{this.sink.next(this.buffer.concat()),this.buffer.length=0},this.miniseconds)}next(t){this.buffer.push(t)}complete(){this.sink.next(this.buffer),super.complete()}dispose(){clearInterval(this.id),super.dispose()}},FO=Te(Wh,"bufferTime"),Gh=class extends pe{constructor(t,e){super(t),this.buffer=[],this.delayTime=e}dispose(){clearTimeout(this.timeoutId),super.dispose()}delay(t){this.timeoutId=setTimeout(()=>{let e=this.buffer.shift();if(e){let{time:r,data:o}=e;super.next(o),this.buffer.length&&this.delay(Number(this.buffer[0].time)-Number(r))}},t)}next(t){this.buffer.length||this.delay(this.delayTime),this.buffer.push({time:new Date,data:t})}complete(){this.timeoutId=setTimeout(()=>super.complete(),this.delayTime)}},$O=Te(Gh,"delay"),jh=class extends pe{constructor(t,e){super(t),this.selector=e}error(t){this.dispose(),this.selector(t)(this.sink)}},HO=Te(jh,"catchError");var ar=(i=Oe,t=Oe,e=Oe)=>r=>new vu(r,i,t,e),qh=class extends pe{constructor(t,e){super(t),e instanceof Function?this.next=r=>{e(r),t.next(r)}:(e.next&&(this.next=r=>{e.next(r),t.next(r)}),e.complete&&(this.complete=()=>{e.complete(),t.complete()}),e.error&&(this.error=r=>{e.error(r),t.error(r)}))}},Xg=Te(qh,"tap"),zh=class extends pe{constructor(t,e){super(t),this.timeout=e,this.id=setTimeout(()=>this.error(new Ru(this.timeout)),this.timeout)}next(t){super.next(t),clearTimeout(this.id),this.next=super.next}dispose(){clearTimeout(this.id),super.dispose()}},jO=Te(zh,"timeout");function Yg(i,t=!1){let e=Object.defineProperties(en(),{postMessage:{value:i.postMessage.bind(i)},port:{get(){return i},set(o){i.onmessage=Oe,i.onmessageerror=Oe,i=o,r()}}});function r(){i.onmessage=o=>{o.data?o.ports.length||t?e.next(o):e.next(o.data):(e.complete(),i.close())},i.onmessageerror=o=>{e.error(o),i.close()}}return r(),e}var Jh=class extends pe{constructor(t,e){super(t);let r=new pe(t);r.next=Oe,e(r)}},aP=Te(Jh,"takeUntilComplete");var cr={useWt:!0,useAINS:!0,useHardDecoder:"prefer-software",useHardEncoder:"prefer-software",unreliable:!1,debug:!1,assetsPath:"",enableUpload:!0},Qh="__INLINE__WORKER__",Qg="__INLINE__WASM__",{debug:Zg}=console;cr.debug||(console.debug=()=>{});var Kg=cr.assetsPath?`${cr.assetsPath}/`:"",Xh=!Qh.startsWith("__"),on=`${Kg}worker.js`,eE=Xh||on.startsWith("http")?URL.createObjectURL(new Blob([Xh?atob(Qh):`importScripts('${on}')`])):on,Qa=Xh?URL.createObjectURL(new Blob([atob(Qh)],{type:"application/javascript"})):on.startsWith("http")?fetch(on).then(i=>i.blob().then(t=>URL.createObjectURL(t))):on,Ou=Qg.startsWith("__")?`${Kg}av_processing.wasm`:`data:application/octet-stream;base64,${Qg}`;var Yh=class{constructor(){this.playPortSent=!1;Jt(Xt(document,"mousedown"),jg(1),ar(()=>this.resume().catch(t=>{console.error("audio worklet init failed:",t)}))),this.workletPromise=this.init()}resume(){return v(this,null,function*(){if(this.audioCtx){this.audioCtx.resume();return}})}init(){return v(this,null,function*(){this.audioCtx=new AudioContext({sampleRate:48e3}),V.info("AudioContext Created:",this.audioCtx,Qa),yield this.audioCtx.audioWorklet.addModule(typeof Qa=="string"?Qa:yield Qa);let t=yield fetch(Ou).then(e=>e.arrayBuffer());return this.worklet=new AudioWorkletNode(this.audioCtx,"global-audio-player",{processorOptions:{wasm:t,flag:cr},numberOfInputs:2}),V.info("worklet created",this.audioCtx.state),this.worklet.connect(this.audioCtx.destination),this.playPort=this.worklet.port,this.playPort})}playAudio(t){return v(this,null,function*(){this.playPortSent||(this.playPortSent=!0,t(yield this.workletPromise))})}},eo=new Yh;var yE=Pi(Hi());function Zh({timesInSecond:i,maxSizeInSecond:t,getSize:e}){return Ce((r,o)=>{let s=new WeakMap;return B.on(O.ROOM_DESTROY,({room:a})=>s.delete(a)),function(...a){let d=s.get(this);if(d||(d={callCountInSecond:0,timestamp:0,totalSizeInSecond:0},s.set(this,d)),d.timestamp===0?d.timestamp=Date.now():Date.now()-d.timestamp>1e3&&(d.timestamp=Date.now(),d.callCountInSecond=0,d.totalSizeInSecond=0),e&&(d.totalSizeInSecond+=e(...a)),d.timestamp!==0&&Date.now()-d.timestamp<1e3&&(d.callCountInSecond>=i||d.totalSizeInSecond>t))throw new de({code:Y.INVALID_OPERATION,message:ot({key:it.CALL_FREQUENCY_LIMIT,data:{isTimes:d.callCountInSecond>=i,isSize:d.totalSizeInSecond>t,name:o,timesInSecond:i,maxSizeInSecond:t}})});d.callCountInSecond++,r.call(this,...a)}})}var ky="2025-02-11 15:21:04",tE=!0,rE=function(){var i;tE&&(tE=!1,V.getLogLevel()!==5&&(console.info("******************************************************************************"),console.info("* TRTC Web SDK"),console.info(`* API Document: ${Fr}/en/index.html`),console.info(`* Changelog: ${Fr}/en/tutorial-01-info-changelog.html`),console.info("* Report issues: https://github.com/LiteAVSDK/TRTC_Web/issues"),console.info("******************************************************************************")),V.info("TRTC Web SDK Version:",Ke),wr||V.debug("Build Time:",ky),V.info("UA:",navigator.userAgent),V.info(`URL: ${location.href}${((i=self.frameElement)==null?void 0:i.tagName)==="IFRAME"?" in iframe":""}`),Ea().then(t=>{t&&V.info(Rr)}))};var gr={SCENE_LIVE:"live",SCENE_RTC:"rtc",ROLE_ANCHOR:"anchor",ROLE_AUDIENCE:"audience",STREAM_TYPE_MAIN:"main",STREAM_TYPE_SUB:"sub",AUDIO_PROFILE_STANDARD:"standard",AUDIO_PROFILE_STANDARD_STEREO:"standard-stereo",AUDIO_PROFILE_HIGH:"high",AUDIO_PROFILE_HIGH_STEREO:"high-stereo",QOS_PREFERENCE_SMOOTH:"smooth",QOS_PREFERENCE_CLEAR:"clear",SPEAKER:"Speakerphone",HEADSET:"Headset earpiece"};var ne={INVALID_PARAMETER:5e3,INVALID_OPERATION:5100,ENV_NOT_SUPPORTED:5200,DEVICE_ERROR:5300,SERVER_ERROR:5400,OPERATION_FAILED:5500,OPERATION_ABORT:5998,UNKNOWN_ERROR:5999},Or=(w=>(w[w.INVALID_PARAMETER=5e3]="INVALID_PARAMETER",w[w.INVALID_PARAMETER_REQUIRED=5001]="INVALID_PARAMETER_REQUIRED",w[w.INVALID_PARAMETER_TYPE=5002]="INVALID_PARAMETER_TYPE",w[w.INVALID_PARAMETER_EMPTY=5003]="INVALID_PARAMETER_EMPTY",w[w.INVALID_PARAMETER_INSTANCE=5004]="INVALID_PARAMETER_INSTANCE",w[w.INVALID_PARAMETER_RANGE=5005]="INVALID_PARAMETER_RANGE",w[w.INVALID_PARAMETER_LESS_THAN_ZERO=5006]="INVALID_PARAMETER_LESS_THAN_ZERO",w[w.INVALID_PARAMETER_MIN=5007]="INVALID_PARAMETER_MIN",w[w.INVALID_PARAMETER_MAX=5008]="INVALID_PARAMETER_MAX",w[w.INVALID_ELEMENT_ID=5009]="INVALID_ELEMENT_ID",w[w.INVALID_ELEMENT_ID_TYPE=5010]="INVALID_ELEMENT_ID_TYPE",w[w.INVALID_STREAM_ID=5011]="INVALID_STREAM_ID",w[w.INVALID_ROOM_ID_STRING=5012]="INVALID_ROOM_ID_STRING",w[w.INVALID_ROOM_ID_INTEGER=5013]="INVALID_ROOM_ID_INTEGER",w[w.INVALID_STREAM_TYPE=5014]="INVALID_STREAM_TYPE",w[w.INVALID_ROOM_ID_REQUIED=5015]="INVALID_ROOM_ID_REQUIED",w[w.INVALID_ROOM_ID_INTEGER_STRING=5016]="INVALID_ROOM_ID_INTEGER_STRING",w[w.INVALID_BUFFER_EMPTY=5017]="INVALID_BUFFER_EMPTY",w[w.INVALID_BUFFER_OVERSIZE=5018]="INVALID_BUFFER_OVERSIZE",w[w.INVALID_OPERATION=5100]="INVALID_OPERATION",w[w.INVALID_OPERATION_NOT_JOINED=5101]="INVALID_OPERATION_NOT_JOINED",w[w.INVALID_OPERATION_REMOTE_USER_NOT_EXIST=5102]="INVALID_OPERATION_REMOTE_USER_NOT_EXIST",w[w.INVALID_OPERATION_STREAM_TYPE_NOT_EXIST=5103]="INVALID_OPERATION_STREAM_TYPE_NOT_EXIST",w[w.INVALID_OPERATION_REPEAT_CALL=5104]="INVALID_OPERATION_REPEAT_CALL",w[w.INVALID_OPERATION_NEED_VIDEO=5105]="INVALID_OPERATION_NEED_VIDEO",w[w.INVALID_OPERATION_NEED_AUDIO=5106]="INVALID_OPERATION_NEED_AUDIO",w[w.INVALID_ROLE_AUDIENCE=5107]="INVALID_ROLE_AUDIENCE",w[w.INVALID_NOT_ENABLE_SEI=5108]="INVALID_NOT_ENABLE_SEI",w[w.INVALID_NEED_CALL_PUBLISHED=5109]="INVALID_NEED_CALL_PUBLISHED",w[w.ENV_NOT_SUPPORTED=5200]="ENV_NOT_SUPPORTED",w[w.NOT_SUPPORTED_HTTP=5201]="NOT_SUPPORTED_HTTP",w[w.NOT_SUPPORTED_WEBRTC=5202]="NOT_SUPPORTED_WEBRTC",w[w.NOT_SUPPORTED_H264_ENCODE=5203]="NOT_SUPPORTED_H264_ENCODE",w[w.NOT_SUPPORTED_H264_DECODE=5204]="NOT_SUPPORTED_H264_DECODE",w[w.NOT_SUPPORTED_SCREEN_SHARE=5205]="NOT_SUPPORTED_SCREEN_SHARE",w[w.NOT_SUPPORTED_SMALL_VIDEO=5206]="NOT_SUPPORTED_SMALL_VIDEO",w[w.NOT_SUPPORTED_SEI=5207]="NOT_SUPPORTED_SEI",w[w.NOT_SUPPORTED_WEBGL=5208]="NOT_SUPPORTED_WEBGL",w[w.NOT_SUPPORTED_CHROME_VERSION=5209]="NOT_SUPPORTED_CHROME_VERSION",w[w.NOT_SUPPORTED_PLUGIN=5210]="NOT_SUPPORTED_PLUGIN",w[w.DEVICE_ERROR=5300]="DEVICE_ERROR",w[w.DEVICE_NOT_FOUND_ERROR=5301]="DEVICE_NOT_FOUND_ERROR",w[w.DEVICE_NOT_ALLOWED_ERROR=5302]="DEVICE_NOT_ALLOWED_ERROR",w[w.DEVICE_NOT_READABLE_ERROR=5303]="DEVICE_NOT_READABLE_ERROR",w[w.DEVICE_OVERCONSTRAINED_ERROR=5304]="DEVICE_OVERCONSTRAINED_ERROR",w[w.DEVICE_INVALID_STATE_ERROR=5305]="DEVICE_INVALID_STATE_ERROR",w[w.DEVICE_SECURITY_ERROR=5306]="DEVICE_SECURITY_ERROR",w[w.DEVICE_ABORT_ERROR=5307]="DEVICE_ABORT_ERROR",w[w.CAMERA_RECOVER_FAILED=5308]="CAMERA_RECOVER_FAILED",w[w.MICROPHONE_RECOVER_FAILED=5309]="MICROPHONE_RECOVER_FAILED",w[w.SERVER_ERROR=5400]="SERVER_ERROR",w[w.NEED_TO_BUY=5401]="NEED_TO_BUY",w[w.ACCOUNT_NO_MONEY=-100013]="ACCOUNT_NO_MONEY",w[w.OPERATION_FAILED=5500]="OPERATION_FAILED",w[w.FIREWALL_RESTRICTION=5501]="FIREWALL_RESTRICTION",w[w.REJOIN_FAILED=5502]="REJOIN_FAILED",w[w.EVENT_HANDLER_ERROR=5503]="EVENT_HANDLER_ERROR",w[w.VIDEO_CONTEXT_ERROR=5504]="VIDEO_CONTEXT_ERROR",w[w.VIDEO_DECODE_ERROR=5505]="VIDEO_DECODE_ERROR",w[w.OPERATION_ABORT=5998]="OPERATION_ABORT",w[w.UNKNOWN_ERROR=5999]="UNKNOWN_ERROR",w))(Or||{});function oE({code:i,params:t,enableDocLink:e=!1}){let r="",o,s=Or[i];try{o=iE[s]}catch(a){o=iE.UNKNOWN_ERROR}return Ve(o)?r=o(t):Ae(o)&&(r=o),t.fnName&&!r.includes(t.fnName)&&(r[r.length-1]!=="."&&(r+="."),r+=` thrown from ${t.fnName}()`),e&&(r+=" doc:"),r}var iE=me(J({},Gt),{INVALID_PARAMETER({fnName:i}){return`the parameters of the '${i}' you called does not meet the requirements, please check the API documentation.`},INVALID_PARAMETER_REQUIRED({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' is a required param when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_TYPE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s="";return Array.isArray(t.type)?s=t.type.join("|"):s=t.type,`'${o}' must be type of ${s} when calling ${e}(), received type: ${mt(r)}.`},INVALID_PARAMETER_EMPTY({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' cannot be '${r}' when calling ${e}().`},INVALID_PARAMETER_INSTANCE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s=`${t.instanceOf.name||t.instanceOf}`;return`'${o}' must be instanceof ${s} when calling ${e}(), received type: ${mt(r)}.`},INVALID_PARAMETER_RANGE({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' must be one of ${t.values.join("|")} when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_LESS_THAN_ZERO({key:i,rule:t,fnName:e}){return`'${i||t.name}' cannot be less than 0 when calling ${e}().`},INVALID_PARAMETER_MIN({key:i,rule:t,value:e}){return`the min value of ${i||t.name} is ${t.min}, received: ${e}.`},INVALID_PARAMETER_MAX({key:i,rule:t,value:e}){return`the max value of ${i||t.name} is ${t.max}, received: ${e}.`},INVALID_ELEMENT_ID({key:i,fnName:t}){return`'${i}' is not found in the document object when calling ${t}().`},INVALID_ELEMENT_ID_TYPE({key:i,fnName:t,type:e}){return`the element corresponding to '${i}' must be instanceof HTMLElement when calling ${t}(), received: ${e}.`},INVALID_STREAM_ID({key:i}){return`'${i}' can only consist of uppercase and lowercase english letters (a-zA-Z), numbers (0-9), hyphens and underscores.`},INVALID_ROOM_ID_STRING({key:i}){return`'${i}' must be a valid string.`},INVALID_ROOM_ID_INTEGER({key:i}){return`'${i}' must be an integer between [1, 4294967294].`},INVALID_ROOM_ID_INTEGER_STRING({key:i}){return`'${i}' must be an integer but go a string, use 'parseInt' to convert it or use 'strRoomId' instead.`},INVALID_ROOM_ID_REQUIED(){return"at least one of 'roomId'(between [1, 4294967294]) and 'strRoomId'(not empty) is required."},INVALID_STREAM_TYPE:({fnName:i})=>`'streamType' is required when 'userId' is not '*', calling ${i}()`,INVALID_IMAGE_URL:"The 'src' param must be filled in when the background type is image.",INVALID_OPERATION({fnName:i}){return`the API '${i}' you called does not meet the requirements, please check the API documentation.`},INVALID_OPERATION_NOT_JOINED({fnName:i}){return`cannot ${i} because you are not enter room yet.`},INVALID_OPERATION_REMOTE_USER_NOT_EXIST({fnName:i,value:t}){return`cannot ${i} because remote user(userId: ${t.userId}) does not publishing stream.`},INVALID_OPERATION_STREAM_TYPE_NOT_EXIST({fnName:i,value:t}){return`cannot ${i} because remote user(userId: ${t.userId}) does not publishing ${t.streamType} video.`},INVALID_OPERATION_REPEAT_CALL({fnName:i}){return`you are already ${i}(), cannot repeated call '${i}'.`},INVALID_OPERATION_NEED_VIDEO({fnName:i}){return`cannot call '${i}' because the camera is not turned on.`},INVALID_OPERATION_NEED_AUDIO({fnName:i}){return`cannot call '${i}' because the microphone is not turned on.`},INVALID_BUFFER_EMPTY:({key:i})=>`the buffer size of paramerter '${i}' cannot be empty`,INVALID_BUFFER_OVERSIZE:()=>"buffer size is over 1000 Bytes",INVALID_ROLE_AUDIENCE:()=>`role: '${"audience"}' cannot call this api.`,INVALID_NOT_ENABLE_SEI:()=>"you need to enable SEI in TRTC.create({ enableSEI: true })",INVALID_NEED_CALL_PUBLISHED:({fnName:i})=>`you need to call ${i}() after publish stream.`,ENV_NOT_SUPPORTED({fnName:i}){return`the current browser does not support the capability of the function '${i}' you are calling, please check the API documentation.`},NOT_SUPPORTED_WEBRTC:"the current browser does not support WebRTC capability, please check the SDK documentation.",NOT_SUPPORTED_H264_ENCODE:"this browser does not support H264 encode.",NOT_SUPPORTED_H264_DECODE:"this browser does not support H264 decode.",NOT_SUPPORTED_SCREEN_SHARE:"this browser does not support screen share, please check the browser version.",NOT_SUPPORTED_SMALL_VIDEO:"this browser does not support small video, please check the browser version.",NOT_SUPPORTED_SEI:"this browser does not support SEI, please check the browser version.",NOT_SUPPORTED_WEBGL:"this browser does not support WebGL, please check the browser version.",NOT_SUPPORTED_CHROME_VERSION({fnName:i}){return`cannot call ${i} because the browser version is too low, please upgrade to the latest version`},DEVICE_ERROR({fnName:i,error:t}){return`'${i}' got device exception${t?`, error: ${t.toString()}.`:"."}`},DEVICE_NOT_FOUND_ERROR({fnName:i,deviceType:t=zo(i),error:e}){return`NotFoundError, no ${t} detected, please check your device and the configuration on '${i}'${e?`, error: ${e.toString()}.`:"."}`},DEVICE_NOT_ALLOWED_ERROR({fnName:i,deviceType:t=zo(i),error:e}){return`NotAllowedError, you have disabled ${t} access, please allow the current application to use the ${t}${e?`, error: ${e.toString()}.`:"."}`},DEVICE_NOT_READABLE_ERROR({fnName:i,deviceType:t=zo(i),error:e}){return`NotReadableError, the ${t} maybe in use by another APP, please check if the device is pre-occupied by another APP.`},DEVICE_OVERCONSTRAINED_ERROR({fnName:i,deviceType:t=zo(i),error:e}){return`OverconstrainedError, the device ID is incorrect, please check whether the device ID passed in is correct${e?`, error: ${e.toString()}.`:"."}`},DEVICE_INVALID_STATE_ERROR({fnName:i,deviceType:t=zo(i),error:e}){return`InvalidStateError, after the user clicks and interacts with the page, turn on the ${t}${e?`, error: ${e.toString()}.`:"."}`},DEVICE_SECURITY_ERROR({fnName:i,deviceType:t=zo(i),error:e}){return`SecurityError, check whether the system security policy restricts the use of the ${t}, and it is recommended to turn on the ${t} after the user interacts with the page${e?`, error: ${e.toString()}.`:"."}`},DEVICE_ABORT_ERROR({fnName:i,deviceType:t=zo(i),error:e}){return`AbortError, an unknown exception in the system makes the device unusable, recommended to change the device or browser and re-check whether the device is normal${e?` error: ${e.toString()}.`:"."}`},CAMERA_RECOVER_FAILED({error:i}){return`camera recover capture failed ${(i==null?void 0:i.name)||""}: ${(i==null?void 0:i.originMessage)||(i==null?void 0:i.message)}`},MICROPHONE_RECOVER_FAILED({error:i}){return`microphone recover capture failed ${(i==null?void 0:i.name)||""}: ${(i==null?void 0:i.originMessage)||(i==null?void 0:i.message)}`},OPERATION_FAILED({fnName:i,error:t}){return`'${i}' failed, reason: ${t==null?void 0:t.toString()}`},FIREWALL_RESTRICTION(){return"media connection failure due to firewall restrictions, please try to change your network."},EVENT_HANDLER_ERROR({eventName:i}){return`an error was caught on trtc.on('${i}', handler), please check your code on 'handler'.`},VIDEO_CONTEXT_ERROR({reason:i,error:t}){return`video context error ${i} ${(t==null?void 0:t.name)||""} ${(t==null?void 0:t.message)||""}`},SERVER_ERROR({fnName:i,error:t}){return`'${i}' got server error: ${t==null?void 0:t.toString()}, please check the SDK documentation.`},NEED_TO_BUY({value:i,url:t}){return`You need to buy packages for ${i}. Refer to: ${t}`},ACCOUNT_NO_MONEY:({fnParams:i})=>`your TRTC account run out of credit, please recharge.${i.sdkAppId?` SDKAppId: ${i.sdkAppId}`:""}`,OPERATION_ABORT({fnName:i}){return`'${i}' abort`},UNKNOWN_ERROR({fnName:i,error:t}){return`'${i}' throw unknown exception${t?`, error: ${t.toString()}.`:"."}`}});function zo(i){if(!i)return"camera";let t=i.toLowerCase();return t.includes("screen")?"screen share":t.includes("audio")?"microphone":"camera"}var Jo=class extends Error{constructor({code:e,extraCode:r,message:o="",messageParams:s,fnName:a="",originError:d}){var p;let h;o?h=o:h=oE({code:e===ne.SERVER_ERROR?e:r||e,params:J({fnName:a,error:d},s)});super(h);l(this,"name","RtcError");l(this,"code");l(this,"extraCode");l(this,"functionName");l(this,"message");l(this,"handler");l(this,"originError");this.name=Or[e],this.code=e,this.extraCode=r,this.functionName=a,this.originError=d,this.message=h,this.extraCode===5302&&((p=this.originError)==null?void 0:p.message.includes("system"))&&(this.handler=()=>{let T={startLocalVideo:"Camera",startLocalAudio:"Microphone",startScreenShare:"ScreenCapture"},y={startLocalVideo:"webcam",startLocalAudio:"microphone"},R=document.createElement("a");Ao?R.href=`ms-settings:privacy-${y[this.functionName]}`:Nr&&(R.href=`x-apple.systempreferences:com.apple.preference.security?Privacy_${T[this.functionName]}`),R.href.length>0&&R.click()})}static convertFrom(e,r,o){let s=e;if(e instanceof de){let{stack:a}=e,d={code:ne.UNKNOWN_ERROR,fnName:r,originError:e};switch(e.getCode()){case Y.INVALID_PARAMETER:d.code=ne.INVALID_PARAMETER,d.message=e.message;break;case Y.INVALID_OPERATION:d.code=ne.INVALID_OPERATION;break;case Y.NOT_SUPPORTED:case Y.NOT_SUPPORTED_H264:d.code=ne.ENV_NOT_SUPPORTED,e.getCode()===Y.NOT_SUPPORTED_H264&&(d.extraCode=e.message.includes(Gt.NOT_SUPPORTED_H264ENCODE)?5203:5204);break;case Y.JOIN_ROOM_FAILED:d.messageParams={fnParams:o};case Y.SERVER_TIMEOUT:case Y.SWITCH_ROLE_FAILED:d.code=ne.SERVER_ERROR,d.extraCode=e.getExtraCode();break;case Y.API_CALL_ABORTED:d.code=ne.OPERATION_ABORT;break;case Y.DEVICE_NOT_FOUND:case Y.DEVICE_AUTO_RECOVER_FAILED:case Y.INITIALIZE_FAILED:d.code=5300,e.name&&(d.extraCode=Ly(e.name));break;case Y.UNKNOWN:break;default:d.code=ne.OPERATION_FAILED}s=new Jo(d),a&&(s.stack+=a.substr(a.indexOf(`
90
- `)))}else{if(e instanceof Jo)return e;s=new Jo({code:ne.UNKNOWN_ERROR,fnName:r,originError:e})}return s}};function Ly(i){let t;switch(i){case"NotFoundError":t=5301;break;case"NotAllowedError":t=5302;break;case"NotReadableError":t=5303;break;case"OverconstrainedError":t=5304;break;case"InvalidStateError":t=5305;break;case"SecurityError":t=5306;break;case"AbortError":t=5307;break;default:t=5300}return t}var oe=Jo;var sE={type:"object",properties:{cameraId:{type:"string"},useFrontCamera:{type:"boolean"},fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:["string","boolean"],values:[!0,!1,"view","publish","both"]},small:{properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack}}},nE={type:"object",properties:{systemAudio:{type:"boolean"},fillMode:{type:"string",values:["contain","cover","fill"]},profile:{type:["string","object"],properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack},audioTrack:{instanceOf:MediaStreamTrack}}},sn={type:["string",HTMLElement,null,"array"],arrayItem:{instanceOf:HTMLElement},validate(i,t,e){if(Ae(i)&&!document.getElementById(i))throw new oe({code:ne.INVALID_PARAMETER,extraCode:5009,fnName:e,messageParams:{key:t}})}},aE={name:"userId",required:!0,type:"string"},cE={type:"object",properties:{microphoneId:{type:"string"},audioTrack:{instanceOf:MediaStreamTrack},captureVolume:{type:"number",min:0},earMonitorVolume:{type:"number",min:0,max:100},profile:{values:[gr.AUDIO_PROFILE_STANDARD,gr.AUDIO_PROFILE_STANDARD_STEREO,gr.AUDIO_PROFILE_HIGH,gr.AUDIO_PROFILE_HIGH_STEREO]},echoCancellation:{type:"boolean"},autoGainControl:{type:"boolean"},noiseSuppression:{type:"boolean"}}};function Ya(i,t){if(!i)throw new oe({code:ne.INVALID_OPERATION,extraCode:5101,fnName:t})}function dE(i,t,e){if(!i)throw new oe({code:ne.INVALID_OPERATION,extraCode:5102,fnName:t,messageParams:{value:e}})}var nk={type:"number",notLessThanZero:!0},Uy={create:[{name:"RoomConfig",instanceOf:Function},{name:"CreateConfig",type:"object",properties:{plugins:{type:"array",arrayItem:{instanceOf:Function}}}}],enterRoom:{name:"EnterRoomConfig",type:"object",required:!0,validate(i,t,e){if(this._room.isJoined)throw new oe({code:ne.INVALID_OPERATION,extraCode:5104,fnName:e});if(i.roomId){if(Ae(i.roomId))throw new oe({code:ne.INVALID_PARAMETER,extraCode:5016,fnName:e,messageParams:{key:t}});if(!(/^[1-9]\d*$/.test(String(i.roomId))&&i.roomId<4294967295))throw new oe({code:ne.INVALID_PARAMETER,extraCode:5013,fnName:e,messageParams:{key:t}})}else if(i.strRoomId){if(!/^[A-Za-z\d\s!#$%&()+\-:;<=.>?@[\]^_{}|~,]{1,64}$/.test(i.strRoomId))throw new oe({code:ne.INVALID_PARAMETER,extraCode:5012,fnName:e,messageParams:{key:t}})}else throw new oe({code:ne.INVALID_PARAMETER,extraCode:5015,fnName:e})},properties:{sdkAppId:{required:!0,type:"number",allowEmpty:!1},userId:{required:!0,type:"string",allowEmpty:!1},userSig:{required:!0,type:"string",allowEmpty:!1},scene:{type:"string",values:["live","rtc"]},role:{type:"string",values:["audience","anchor"]},roomId:{type:["string","number"]},strRoomId:{type:"string"},proxy:{type:["object","string"],properties:{websocketProxy:{type:"string"},turnServer:{type:["object","array"],properties:{url:{required:!0,type:"string"},username:{type:"string"},credential:{type:"string"},credentialType:{type:"string",values:["password"]}}},loggerProxy:{type:"string"},webtransportProxy:{type:"string"}}},enableAutoPlayDialog:{type:"boolean"},userDefineRecordId:{type:"string"},latencyLevel:{type:"number"}}},startLocalVideo:{name:"LocalVideoConfig",type:"object",properties:{view:sn,mute:{type:["boolean","string"]},publish:{type:"boolean"},option:sE},validate(i){var t;if(!((t=i==null?void 0:i.option)!=null&&t.videoTrack)&&Ai())throw new oe({code:ne.ENV_NOT_SUPPORTED,extraCode:5201})}},updateLocalVideo:{name:"updateLocalVideoConfig",type:"object",required:!0,properties:{view:me(J({},sn),{required:!1}),publish:{type:"boolean"},mute:{type:["boolean","string"]},option:sE}},startLocalAudio:{name:"LocalAudioConfig",type:"object",properties:{publish:{type:"boolean"},option:cE},validate(i){var t;if(!((t=i==null?void 0:i.option)!=null&&t.audioTrack)&&Ai())throw new oe({code:ne.ENV_NOT_SUPPORTED,extraCode:5201})}},updateLocalAudio:{name:"updateLocalAudioConfig",type:"object",required:!0,properties:{publish:{type:"boolean"},mute:{type:"boolean"},option:cE}},startScreenShare:{name:"ScreenShareConfig",type:"object",properties:{view:sn,publish:{type:"boolean"},option:nE},validate(i,t,e,r,o){var s;if(!((s=i==null?void 0:i.option)!=null&&s.videoTrack)&&Ai())throw new oe({code:ne.ENV_NOT_SUPPORTED,extraCode:5201});if(!Da())throw new oe({code:ne.ENV_NOT_SUPPORTED,fnName:e,extraCode:5205})}},updateScreenShare:{name:"updateScreenShareConfig",type:"object",required:!0,properties:{view:sn,publish:{type:"boolean"},option:nE}},muteRemoteAudio:[aE,{name:"mute",required:!0,type:"boolean"}],setRemoteAudioVolume:[aE,{name:"volume",required:!0,type:"number",min:0}],startRemoteVideo:{name:"startRemoteVideoConfig",type:"object",required:!0,properties:{view:sn,userId:{type:"string",required:!0},streamType:{values:["main","sub"],required:!0},option:{type:"object",properties:{fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:"boolean"}}}},validate(i,t,e){Ya(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(dE(!!r,e,i),r&&(i.streamType==="main"&&!r.muteState.videoAvailable||i.streamType==="sub"&&!r.muteState.hasAuxiliary))throw new oe({code:ne.INVALID_OPERATION,extraCode:5103,fnName:e,messageParams:{value:i}})}},updateRemoteVideo:{name:"updateRemoteVideoConfig",type:"object",required:!0,properties:{view:me(J({},sn),{required:!1}),userId:{type:"string",required:!0},streamType:{values:["main","sub"],required:!0},option:{type:"object",properties:{fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:"boolean"}}}},validate(i,t,e){Ya(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(dE(!!r,e,i),r&&(i.streamType==="main"&&!r.muteState.videoAvailable||i.streamType==="sub"&&!r.muteState.hasAuxiliary))throw new oe({code:ne.INVALID_OPERATION,extraCode:5103,fnName:e,messageParams:{value:i}})}},stopRemoteVideo:{name:"stopRemoteVideoConfig",type:"object",required:!0,properties:{userId:{type:"string",required:!0},streamType:{values:["main","sub"]}},validate(i,t,e){if(i.userId!=="*"&&L(i.streamType))throw new oe({code:ne.INVALID_PARAMETER,extraCode:5014,fnName:e})}},switchRole:{name:"role",required:!0,values:["anchor","audience"],validate(i,t,e){Ya(this._room.isJoining||this._room.isJoined,e)}},enableAudioVolumeEvaluation:[{name:"interval",type:"number"},{name:"enableInBackground",type:"boolean"}],sendSEIMessage:[{name:"buffer",required:!0,instanceOf:ArrayBuffer,validate(i,t,e,r){if(!Ma)throw new oe({code:ne.ENV_NOT_SUPPORTED,fnName:e,extraCode:5207});if(!this._room.enableSEI)throw new oe({code:ne.INVALID_OPERATION,fnName:e,extraCode:5108});if(i.byteLength>1e3)throw new oe({code:ne.INVALID_PARAMETER,extraCode:5018,fnName:e});if(i.byteLength===0)throw new oe({code:ne.INVALID_PARAMETER,extraCode:5017,messageParams:{key:t},fnName:e});Ya(this._room.isJoined,e)}},{name:"options",type:"object",properties:{seiPayloadType:{type:"number",values:[5,243]},toSubStream:{type:"boolean",validate(i,t,e){if(!i&&!this._room.isMainStreamPublished||i&&!this._room.isAuxStreamPublished)throw new oe({code:ne.INVALID_OPERATION,extraCode:5109,messageParams:{key:t},fnName:e})}}}}],sendCustomMessage:{name:"message",required:!0,type:"object",properties:{cmdId:{type:"number",required:!0,min:1,max:10},data:{instanceOf:ArrayBuffer,required:!0,validate(i,t,e,r){if(i.byteLength>1e3)throw new oe({code:ne.INVALID_PARAMETER,extraCode:5018,fnName:e});if(i.byteLength===0)throw new oe({code:ne.INVALID_PARAMETER,extraCode:5017,fnName:e,messageParams:{key:t}})}}},validate(i,t,e){if(Ya(this._room.isJoined,e),this._room.scene==="live"&&this._room.role==="audience")throw new oe({code:ne.INVALID_OPERATION,extraCode:5107,fnName:e,messageParams:{key:t}})}}},Tt={TRTC:Uy};var Ct=class extends Error{};function Vy(i,t){let e=Io(i);for(let r=0;r<t.length;r++)Wr(e[r],t[r]);return e}function By(i){this._resolve=Promise.resolve(i)}function Fy(i){this._reject=Promise.reject(i)}var Xo=class{constructor(t,e){this.instance=t;this.group=e;l(this,"started",!1);l(this,"ops",[]);l(this,"startSame",()=>!0);l(this,"mergeUpdate",Vy);let r=Xo.instances.get(t);r?r.set(e,this):Xo.instances.set(t,new Map([[e,this]]))}static get(t,e){if(!e)return;let r=Xo.instances.get(t);return r&&r.get(e)||new Xo(t,e)}static gets(t,e){let r=Xo.instances.get(t),o=[];return r&&r.forEach((s,a)=>{e.test(a)&&o.push(s)}),o}action(t,e,r){let o=d=>{var h;return t===0?this.started=!0:t===3&&(this.started=!1),this.ops.shift(),(h=this.currentOp)==null||h.action(),d},s=d=>{var h,p;throw this.ops.shift(),t===0&&((h=this.currentOp)==null?void 0:h.type)===2&&this.ops.shift().reject(new Ct("start failed")),(p=this.currentOp)==null||p.action(),d},a={type:t,action:()=>e(...a.args).then(o,s),args:r,resolve:By,reject:Fy};try{switch(this.state){case 1:if(t===0)throw new Ct("already started");break;case 4:if(t===2)throw new Ct("not started");break;default:return this.cacheOp(a)}}catch(d){return Promise.reject(d)}return this.ops.push(a),a.promise=e(...a.args).then(o,s)}cacheOp(t){if(this.ops.length===1)switch(this.state){case 0:case 2:if(t.type===0)throw new Ct("already start");break;case 3:switch(t.type){case 2:throw new Ct("update not allowed when stopping");case 3:return this.currentOp.promise}break;default:throw new Ct("unknown state")}else switch(t.type){case 3:switch(this.lastOpType){case 3:return this.lastOp.promise;default:let r=new Ct("keep stop");if(this.ops.slice(1).forEach(o=>o.reject(r)),this.ops=this.ops.slice(0,1),this.state===3)return this.currentOp.promise}break;case 2:switch(this.lastOpType){case 2:return this.lastOp.args=this.mergeUpdate(this.lastOp.args,t.args),this.lastOp.promise;case 3:throw new Ct("update not allowed after stop")}break;case 0:switch(this.lastOpType){case 2:throw new Ct("start not allowed after update");case 0:throw new Ct("duplicate start");case 3:if(this.startSame(this.currentOp.args,t.args))throw this.ops.pop().reject(new Ct("keep start")),new Ct("already start")}}t.promise=new Promise((r,o)=>{t._resolve?t._resolve.then(r):t.resolve=r,t._reject?t._reject.catch(o):t.reject=o});let{action:e}=t;return t.action=()=>e().then(t.resolve,t.reject),this.ops.push(t),t.promise}get lastOp(){return this.ops[this.ops.length-1]}get lastOpType(){return this.lastOp.type}get currentOp(){return this.ops[0]}get state(){return this.currentOp?this.currentOp.type:this.started?1:4}},Zr=Xo;l(Zr,"instances",new WeakMap);var Pu=new WeakMap,ku=(i,t)=>{if(t instanceof Ct){let{stack:e}=t;t=new oe({code:ne.OPERATION_ABORT,message:`${i} abort: ${t.message}`,fnName:i}),e&&(t.stack+=e.substr(e.indexOf(`
91
- `)))}throw t};function to(i,t){return Ce((e,r)=>function(...o){let s=Zr.get(this,typeof i=="string"?i:i.call(this,...o));return s?(t&&(s.startSame=t.bind(this)),s.action(0,e.bind(this),o).catch(ku.bind(null,r))):e.apply(this,o)})}function Qo(i,t){let{merge:e,debounce:r}=t||{};return Ce((o,s)=>function(...a){let d=Zr.get(this,typeof i=="string"?i:i.call(this,...a));if(!d)return o.apply(this,a);if(e&&(d.mergeUpdate=e.bind(this)),r&&r.isNeedToDebounce.apply(this,a)){let{delay:h,getKey:p}=r;return new Promise((T,y)=>{var j,W;let R=(j=Pu.get(this))==null?void 0:j.get(p(...a));if(R){let{timeoutId:F,resolve:Ie}=R;clearTimeout(F),Ie()}let N=setTimeout(()=>{if(d.state===3||d.state===4)return T();d.action(2,o.bind(this),a).catch(ku.bind(null,s)).then(T,y)},h);Pu.has(this)?(W=Pu.get(this))==null||W.set(p(...a),{timeoutId:N,resolve:T}):Pu.set(this,new Map([[p(...a),{timeoutId:N,resolve:T}]]))})}return d.action(2,o.bind(this),a).catch(ku.bind(null,s))})}function ro(i){return Ce((t,e)=>function(...r){let o=typeof i=="function"?i.call(this,...r):i;if(o instanceof RegExp)return Promise.all(Zr.gets(this,o).map(a=>a.action(3,()=>Promise.resolve(),r))).then(()=>t.call(this,...r));let s=Zr.get(this,o);return s?s.action(3,t.bind(this),r).catch(ku.bind(null,e)):t.apply(this,r)})}var re={ERROR:"error",AUTOPLAY_FAILED:"autoplay-failed",KICKED_OUT:"kicked-out",REMOTE_USER_ENTER:"remote-user-enter",REMOTE_USER_EXIT:"remote-user-exit",REMOTE_AUDIO_AVAILABLE:"remote-audio-available",REMOTE_AUDIO_UNAVAILABLE:"remote-audio-unavailable",REMOTE_VIDEO_AVAILABLE:"remote-video-available",REMOTE_VIDEO_UNAVAILABLE:"remote-video-unavailable",AUDIO_VOLUME:"audio-volume",AUDIO_FRAME:"audio-frame",NETWORK_QUALITY:"network-quality",CONNECTION_STATE_CHANGED:"connection-state-changed",AUDIO_PLAY_STATE_CHANGED:"audio-play-state-changed",VIDEO_PLAY_STATE_CHANGED:"video-play-state-changed",SCREEN_SHARE_STOPPED:"screen-share-stopped",DEVICE_CHANGED:"device-changed",PUBLISH_STATE_CHANGED:"publish-state-changed",TRACK:"track",STATISTICS:"statistics",SEI_MESSAGE:"sei-message",CUSTOM_MESSAGE:"custom-message",VIDEO_DECODE_DOWNGRADE_STATE_CHANGED:"video-decode-downgrade-state-changed",LAYER_DATA:"layerData"},uE=new Set([re.ERROR,re.AUTOPLAY_FAILED,re.KICKED_OUT,re.REMOTE_USER_ENTER,re.REMOTE_USER_EXIT,re.REMOTE_AUDIO_AVAILABLE,re.REMOTE_AUDIO_UNAVAILABLE,re.REMOTE_VIDEO_AVAILABLE,re.REMOTE_VIDEO_UNAVAILABLE,re.CONNECTION_STATE_CHANGED,re.PUBLISH_STATE_CHANGED,re.SCREEN_SHARE_STOPPED,re.DEVICE_CHANGED]);function Za(i){return i==="sub"?"auxiliary":i==="auxiliary"?"sub":"main"}function Ka(i){return i===gr.QOS_PREFERENCE_CLEAR?"detail":i===gr.QOS_PREFERENCE_SMOOTH?"motion":""}var ef={};li(ef,{bytes2ms:()=>Yf,convertObjectNumberToInt:()=>oa,copyProperties:()=>Qf,deepClone:()=>Io,deepMerge:()=>Wr,delay:()=>sa,fibonacci:()=>So,formatedTime:()=>cd,getConstructorName:()=>ra,getContainerFromElement:()=>s_,getEnv:()=>zf,getInternalVersion:()=>i_,getLoggerUrl:()=>fi,getMuteStateFromFlag:()=>ia,getNetworkType:()=>ea,getNumNetworkType:()=>sd,getReconnectionTimeout:()=>Kf,getStringByteLength:()=>n_,getTurnServer:()=>o_,getUint32Version:()=>ld,getValueType:()=>mt,getViewListFromView:()=>ys,glog:()=>ta,ipv4ToUint32:()=>Ss,isArray:()=>rt,isAudioWorkletSupported:()=>r_,isBoolean:()=>nt,isConstructor:()=>Is,isEmpty:()=>ad,isFunction:()=>Ve,isLangChinese:()=>vr,isMediaStreamTrack:()=>e_,isNumber:()=>Fe,isObject:()=>lr,isOverseaSdkAppId:()=>Kn,isPlainObject:()=>Ft,isPortrait:()=>ud,isPromise:()=>Li,isRemoteTrack:()=>t_,isString:()=>Ae,isUndefined:()=>L,loadImage:()=>As,ms2bytes:()=>Zf,ms2samples:()=>hp,performanceNow:()=>ge,promiseAny:()=>nd,samples2ms:()=>mp,setNetworkType:()=>Xf,stringify:()=>pr,stringifyIncludeValue:()=>dd,throttlePromise:()=>pd});var of={};li(of,{getAbilityConfigUrl:()=>Hy,getScheduleDomain:()=>ec,isNeedToSchedule:()=>Lu,scheduleProxy:()=>Pr,sendScheduleRequest:()=>rf,setIsNeedToSchedule:()=>Yo,setScheduleProxy:()=>Uu});var tf=null,Lu=!0;typeof document!="undefined"&&document.head.insertAdjacentHTML("beforeend",Object.values(hi).map(i=>`<link rel="dns-prefetch" href="https://${i}">`).join(`\r
92
- `));function Yo(i){nt(i)&&i!==Lu&&(Lu=i,V.info(`setIsNeedToSchedule ${i}`))}B.on("28",()=>Yo(!0));B.on("63",()=>Yo(!0));B.on("84",()=>Yo(!0));B.on("201",i=>{i.state==="RECONNECTING"&&Yo(!0)});B.on("202",i=>{i.state==="RECONNECTING"&&Yo(!0)});function $y(i,t,e){let r={totalCost:0,local:0,dns:0,tcp:0,tls:0,request:0,response:0};try{let o=performance.getEntriesByType("resource"),s=nn(i,D.MAIN),a=nn(i,D.BACKUP);for(let d of o)if(d.startTime>=e&&(d.name===s||d.name===a)&&d.transferSize>0){let h=d.name===s?D.MAIN:D.BACKUP,p=Math.round(d.duration),T=Math.round(d.domainLookupStart-d.startTime),y=d.redirectStart>0?Math.round(d.redirectEnd-d.redirectStart):0,R=d.fetchStart>0?Math.round(d.domainLookupStart-d.fetchStart):0,N=Math.round(d.domainLookupEnd-d.domainLookupStart),j=Math.round(d.requestStart-d.secureConnectionStart),W=Math.round(d.secureConnectionStart-d.connectStart),F=Math.round(d.responseStart-d.requestStart),Ie=Math.round(d.responseEnd-d.responseStart),Vt=[N,j,W,F,Ie];Le.uploadEvent({log:`stat-schedule-net:${p}(${T}(${y}->${R})->${Vt.join("->")}) ${h}`,userId:t}),r=me(J({},r),{totalCost:p,local:T,dns:N,tcp:W,tls:j,request:F,response:Ie});break}}catch(o){V.error("getScheduleDetailCost error",o)}return r}function rf(p){return v(this,arguments,function*({userId:i,sdkAppId:t,useStringRoomId:e,roomId:r,userSig:o,version:s,frameWorkType:a,role:d,latencyLevel:h}){if(!Lu&&tf)return{isCached:!0,result:tf};let T={delta:0,count:[1,1],msg:[],detail:[]};try{let y=new FormData;y.append("userId",String(i)),y.append("sdkAppId",String(t)),y.append("isStrGroupId",String(e)),y.append("groupId",String(r)),y.append("sdkVersion",s),y.append("userSig",String(o)),d&&y.append("role",String(d)),h&&y.append("latencyLevel",String(h)),a&&y.append("frameWorkType",String(a));let R=ge(),N=yield Gy(y,T,t);N.config&&(N.config.loggerDomain&&_o(N.config.loggerDomain),nt(N.config.scheduleCache)&&Yo(!N.config.scheduleCache)),T.delta=ge()-R;let j=$y(Number(t),i,R);return tf=N,{isCached:!1,result:N,detailCost:j}}catch(y){let R=rt(y)?y[0]:y,N=Fe(R.code)?R.code:0,j=`schedule failed${R.message?`: ${R.message}`:""}`,W=new de({code:Y.SCHEDULE_FAILED,extraCode:N,message:ot({key:it.JOIN_ROOM_FAILED,data:{error:j,code:N}})});throw V.error(j,N),W}})}var Pr={main:"",backup:""};function Uu(i){rt(i)?(Pr.main=i[0],Pr.backup=i[1]):Pr.main=i}function nn(i,t=D.MAIN,e=!1){return`https://${Pr[t]||ec(i,t,e)}/api/v1/config`}function Hy(i,t=D.MAIN){return`https://${Pr[t]||ec(i,t)}/api/v1/trtcAutoConf`}function ec(i,t=D.MAIN,e=!1){let r;return Kn(i)?e?r=t===D.MAIN?hi.MAIN_OVERSEA_BACKUP:hi.BACKUP_OVERSEA:r=t===D.MAIN?hi.MAIN_OVERSEA:hi.BACKUP_OVERSEA:r=t===D.MAIN?hi.MAIN:hi.BACKUP,r}function Wy(i,t,e){return new Promise((r,o)=>{_i({url:i,body:t,timeout:e.timeout,priority:"high"}).then(s=>{s.data.code===0?r(s.data.data):o({code:s.data.code,message:s.data.msg})}).catch(o)})}var lE=(i,t)=>Vi({retryFunction:Wy,settings:{retries:3,timeout:0},onError:t,onRetrying:i});function Gy(i,t,e){return new Promise((r,o)=>{let s=null;nd([lE(a=>t.count[0]=a+1,({error:a,retry:d,retriedCount:h,retryFuncArgs:p})=>{t.msg[0]=a.message,s||(h>=1&&(p[0]=nn(e,D.MAIN,!0)),d())})(nn(e,D.MAIN),i,{get timeout(){return So(2+t.count[0])*1e3}}),lE(a=>t.count[1]=a+1,({error:a,retry:d,retriedCount:h,retryFuncArgs:p})=>{t.msg[1]=a.message,s||(h>=2&&(p[0]=nn(e,D.BACKUP,!0)),d())})(nn(e,D.BACKUP),i,{get timeout(){return So(2+t.count[1])*1e3}})]).then(a=>{s=a,r(s)}).catch(o)})}var jy=i=>i.startsWith("data:application/octet-stream;base64,"),qy=i=>i.startsWith("file://"),Vu=class{constructor(){l(this,"_log");this._log=V.createLogger({id:"fd"})}download(t,e){return v(this,null,function*(){let{type:r="blob"}=e||{};try{let o=ge(),s;if(Ve(fetch)?s=yield this.downloadWithFetch(t,r):s=yield this.downloadWithXHR(t,r),!s||!s.data)throw new Error("data is empty");let a=ge()-o;return this._log.info(`downloaded: ${t}, return type: ${r}, cost: ${a}ms`),X.addSuccessEvent({key:522700,cost:ge()-o}),s.data}catch(o){throw this._log.error(`failed to download: ${t}, error: ${o}`),X.addFailedEvent({key:522700,error:o}),o}})}downloadWithFetch(t,e){return v(this,null,function*(){this._log.info(`download with fetch: ${t}, return type: ${e}`);try{let r=yield fetch(t);if(!r.ok)throw new Error("network response was not ok");let o;return e==="arraybuffer"?o=yield r.arrayBuffer():o=yield r.blob(),{data:o}}catch(r){throw r}})}downloadWithXHR(t,e){return this._log.info(`download with xhr: ${t}, return type: ${e}`),new Promise((r,o)=>{let s=new XMLHttpRequest;s.open("GET",t,!0),s.responseType=e,s.onload=()=>{s.status===200||s.status===0&&s.response?r({data:s.response}):o(new Error("XHR failed"))},s.onerror=o,s.send(null)})}loadWasm(t,e){return v(this,null,function*(){this._log.info(`loadWasm ${t}, importObject: ${JSON.stringify(e)}`);let r=ge(),o=null,s=null;if(Ve(WebAssembly.instantiateStreaming)&&!jy(t)&&!qy(t)&&Ve(fetch))try{let a=fetch(t);o=(yield WebAssembly.instantiateStreaming(a,e)).instance}catch(a){s=a}if(!o)try{let a=yield this.download(t,{type:"arraybuffer"});o=(yield WebAssembly.instantiate(a,e)).instance}catch(a){s=a}if(o){let a=ge()-r;return this._log.info(`loadedWasm ${t}, cost: ${a}ms`),X.addSuccessEvent({key:522701,cost:a}),o}throw this._log.error(`failed to loadWasm ${t}, error: ${s}`),X.addFailedEvent({key:522701,error:s}),s})}};q([ji({settings:{timeout:0,retries:3},onRetrying(i){this._log.warn(`download retrying: ${i}`)}})],Vu.prototype,"download",1);var pE=new Vu;function mE({TRTC:i,room:t,errorModule:e,assetsPath:r}){return{TRTC:i,room:t,assetsPath:r,fileDownloader:pE,innerEmitter:B,constants:pp,environment:ks,utils:ef,eventLogger:Le,log:this.room.getLogger(),loggerManager:V,errorModule:e,kvStatManager:X,rtcDectection:Gi,trtc:this,rx:ch,enums:qp,schedule:of,clearStarted:(o,s)=>{let a=o.getAlias(),d=Zr.instances.get(this);if(!!d)if(s){let h=d.get(a+s);if(!h)return;h.started=!1}else d.forEach((h,p)=>{p.startsWith(a)&&(h.started=!1)})},startGetPCM:Wa,createAudioNode:fm}}var hE=(i,t)=>{let{emit:e}=i;return i.emit=(...r)=>{try{return e.apply(i,r)}catch(o){let s=ot({key:it.CATCH_HANDLER_ERROR,data:{name:t,event:r[0]},addDocLink:!1});return V.warn(`${s}
49
+ } `;var Mr=class extends Q{constructor(e){super();c(this,"frameRate");c(this,"_canvas");c(this,"log");c(this,"hasAlpha",!1);c(this,"name");c(this,"error");this.name=e.name,this.log=e.logger.createChild({id:`vc-${this.name}`}),this.frameRate=e.frameRate}set width(e){this._canvas&&(this._canvas.width=e)}get width(){var e;return((e=this._canvas)==null?void 0:e.width)||0}set height(e){this._canvas&&(this._canvas.height=e)}get height(){var e;return((e=this._canvas)==null?void 0:e.height)||0}setSize(e,t){this._canvas&&(this._canvas.width=e,this._canvas.height=t)}createVideoTrackSource(e,t){return new Li(this,e,{logger:this.log,name:t})}createVideoTrackDestination(e){return new Es(this,e)}createVideoImageSource(e,t){return new Fo(this,t?Object.assign(t,{logger:this.log,image:e}):{logger:this.log,image:e})}createVideoPlayerSource(e,t){return new Ho(this,e,t?Object.assign(t,{logger:this.log}):{logger:this.log})}get available(){return this.state==="created"}disconnect(){this.emit("disconnect")}};c(Mr,"_ids",0);var $g={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},Ss=class Ss extends Mr{constructor(){super(...arguments);c(this,"defaultProgam");c(this,"defaultVShader");c(this,"defaultFShader");c(this,"ctx")}create(){if(this._canvas||(this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${Mr._ids++}`),this.ctx=this._canvas.getContext("webgl2",$g),!this.ctx)throw new b({code:S.VIDEO_MANAGER_ERROR,extraCode:2,message:"webgl2 not supported"});this.defaultVShader=this.createShader(this.ctx.VERTEX_SHADER,Fg),this.defaultFShader=this.createShader(this.ctx.FRAGMENT_SHADER,Hg),this.defaultProgam=this.createProgram(this.defaultVShader,this.defaultFShader),this._canvas.addEventListener("webglcontextlost",()=>{this.destroy(new b({code:S.VIDEO_MANAGER_ERROR,extraCode:4,message:"webgl context lost"}))}),this.log.info("video context created use webgl")}destroy(e){let t="";return e&&(t=e.message,this.error=e,N.addFailedEvent({key:512702,error:e})),this.disconnect(),this.log.info(`video context destroy${t}`?`: ${t}`:""),this.ctx&&(this.ctx.deleteShader(this.defaultVShader),this.ctx.deleteShader(this.defaultFShader),this.ctx.deleteProgram(this.defaultProgam),delete this.ctx),e}set width(e){var t;(t=this.ctx)==null||t.viewport(0,0,e,this.height),super.width=e}set height(e){var t;(t=this.ctx)==null||t.viewport(0,0,this.width,e),super.height=e}setSize(e,t){var r;(r=this.ctx)==null||r.viewport(0,0,e,t),super.setSize(e,t)}createShader(e,t){let r=this.ctx,o=r.createShader(e);return r.shaderSource(o,t),r.compileShader(o),o}createProgram(e,t){let r=this.ctx,o=r.createProgram();return r.attachShader(o,e),r.attachShader(o,t),r.linkProgram(o),r.getProgramParameter(o,r.LINK_STATUS)||this.log.error(r.getProgramInfoLog(o)),o}};c(Ss,"UNAVAILABLE","unavailable"),y([de(Q.INIT,"created",{sync:!0,fail(e){N.addFailedEvent({key:512700,error:e.cause||e})},success(){N.addSuccessEvent({key:512700})}})],Ss.prototype,"create",1),y([de("created",Q.INIT,{ignoreError:!0,sync:!0,success(e){e&&this.emit(Ss.UNAVAILABLE,e),this.removeAllListeners()}})],Ss.prototype,"destroy",1);var De=Ss,Be=class extends Mr{constructor(){super(...arguments);c(this,"ctx")}create(e){if(this.hasAlpha=e.alpha,this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${Mr._ids++}`,this.ctx=this._canvas.getContext("2d",{alpha:e.alpha}),!this.ctx)throw new b({code:S.VIDEO_MANAGER_ERROR,extraCode:2,message:"2d context not supported"});this.log.info("video context created use 2d")}destroy(e){let t="";e&&(t=e.message,this.error=e,N.addFailedEvent({key:512703,error:e})),this.disconnect(),this.log.info(`video context destroy ${t?`: ${t}`:""}`),delete this.ctx,this._canvas&&(this._canvas.remove(),this._canvas.width=0,this._canvas.height=0,delete this._canvas),this.removeAllListeners(),N.addSuccessEvent({key:512703})}};y([de(Q.INIT,"created",{sync:!0,fail(e){N.addFailedEvent({key:512701,error:e.cause||e})},success(){N.addSuccessEvent({key:512701})}})],Be.prototype,"create",1),y([de("created",Q.INIT,{ignoreError:!0,sync:!0})],Be.prototype,"destroy",1);function Gg(s){return[15,30,45,60].reduce((e,t)=>Math.abs(t-s)<Math.abs(e-s)?t:e)}var ii=class extends _s{constructor(e,t,r=4){super(e,t,r);c(this,"mediaType",4);c(this,"source");c(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,framesReceived:0,framesDecoded:0,frameWidth:0,frameHeight:0,end2EndDelay:0,jitterBufferDelay:0});this.manager=e.videoManager,this.once("first-video-frame",o=>{this.room.emit("first-video-frame",o)})}play(e,t){return(he(t==null?void 0:t.canvasRender)?t.canvasRender:ot===17)&&!this.source&&this.useCanvasPlayer(),super.play(e,t).then(()=>{this.player.calculateStat()})}useCanvasPlayer(){if(this.log.info(`useCanvasPlayer(), has element:${!!this.player.element}`),!this.player.element)return;let e=new Be({frameRate:15,logger:this.log,name:this.userId});e.create({alpha:!1});let t=new Or(e,{name:"remotePlayer",logger:this.log});this.source=e.createVideoPlayerSource(this.player),this.source.connect(t),this.player.setCanvas(e._canvas),Sr()||(this.updateCanvasPlayerFPS=this.updateCanvasPlayerFPS.bind(this,e),this.room.on("heartbeat-report",this.updateCanvasPlayerFPS,this))}updateCanvasPlayerFPS(e){let t=this.decodeFPS,r=Gg(t);if(!Y(t)||t<=0){this.log.debug(`updateCanvasPlayerFPS() ignore decoder: ${t} `);return}if(r===e.frameRate){this.log.debug(`updateCanvasPlayerFPS() ignore ClosestFPS ${r} == ${e.frameRate}`);return}this.log.info(`updateCanvasPlayerFPS() decoder: ${t}, closest: ${r}, current: ${e.frameRate}`),e.frameRate=r}get decodeFPS(){var n;let{msg_video_status:e}=((n=this.room.heartbeatReport)==null?void 0:n.msg_down_stream_info.find(a=>a.msg_user_info.str_identifier===this.userId))||{},t=this.mediaType===2?7:this.isSmall?3:2;if(!e||e.length===0)return 0;let r=e.find(a=>a.uint32_video_stream_type===t);return(r==null?void 0:r.uint32_video_dec_fps)||0}stop(){return this.room.off("heartbeat-report",this.updateCanvasPlayerFPS,this),super.stop()}decodeFrame(e){if(!this.manager)return e;for(let t of this.manager.decodePipeline)if(t&&(e=t({frame:e,track:this}),!e))return;return e}get isBig(){return this.mediaType===4}get isSmall(){return this.mediaType===8}changeType(e){this.room.changeType(e,this.user)}get isAvailable(){return this.user.muteState.videoAvailable}setMirror(e){e==="publish"||e==="both"||super.setMirror(e)}onDecodeDowngradeStateChanged(e){this.emit("decode-downgrade-state-changed",e)}},Is=class extends ii{constructor(e,t){super(e,t,2);c(this,"mediaType",2);c(this,"objectFit","contain")}get isAvailable(){return this.user.muteState.hasAuxiliary}};var As=new Map;E.on(T.JOIN_SUCCESS,({room:s})=>{ue(s.userId,{eventId:32788})});E.on(T.LEAVE_START,({room:s})=>{ue(s.userId,{eventId:32789})});E.on(T.LOCAL_TRACK_PUBLISHED,({track:s})=>{if(s.room){let i=32769;s.mediaType===4?i=32768:s.mediaType===2&&(i=32805),ue(s.room.userId,{eventId:i})}});E.on(T.LOCAL_TRACK_UNPUBLISHED,({track:s})=>{if(s.room){let i=32771;s.mediaType===4?i=32770:s.mediaType===2&&(i=32806),ue(s.room.userId,{eventId:i})}});E.on(T.TRACK_MUTED,({track:s})=>{s.room&&(s.kind===h.AUDIO?ue(s.room.userId,{eventId:s.isRemote?32785:32772,remoteUserId:s.isRemote?s.userId:void 0}):ue(s.room.userId,{eventId:s.isRemote?32784:32773,remoteUserId:s.isRemote?s.userId:void 0}))});E.on(T.TRACK_UNMUTED,({track:s})=>{s.room&&(s.kind===h.AUDIO?ue(s.room.userId,{eventId:s.isRemote?32787:32774,remoteUserId:s.isRemote?s.userId:void 0}):ue(s.room.userId,{eventId:s.isRemote?32786:32775,remoteUserId:s.isRemote?s.userId:void 0}))});E.on(T.REMOTE_TRACK_SUBSCRIBED,({track:s})=>{s.room&&(s.mediaType===1&&ue(s.room.userId,{eventId:32777,remoteUserId:s.userId}),s.mediaType===4&&ue(s.room.userId,{eventId:32776,remoteUserId:s.userId}),s.mediaType===8&&ue(s.room.userId,{eventId:32803,remoteUserId:s.userId}))});E.on(T.REMOTE_TRACK_UNSUBSCRIBED,({track:s})=>{s.room&&(s.mediaType===1&&ue(s.room.userId,{eventId:32779,remoteUserId:s.userId}),s.mediaType===4&&ue(s.room.userId,{eventId:32778,remoteUserId:s.userId}),s.mediaType===8&&ue(s.room.userId,{eventId:32804,remoteUserId:s.userId}))});E.on(T.SWITCH_DEVICE_SUCCESS,({track:s})=>{s.room&&ue(s.room.userId,{eventId:s.kind===h.VIDEO?32780:32781})});E.on(T.LOCAL_TRACK_REPLACED,({track:s})=>{s.room&&ue(s.room.userId,{eventId:s.kind===h.VIDEO?32782:32783})});E.on(T.SIGNAL_CONNECTION_STATE_CHANGED,({room:s,prevState:i,state:e})=>{let t;switch(e){case"CONNECTED":i==="RECONNECTING"?t=32795:t=32791;break;case"DISCONNECTED":i==="RECONNECTING"?t=32796:t=32790;break;case"RECONNECTING":t=32794;break}t&&ue(s.userId,{eventId:t})});E.on(T.PEER_CONNECTION_STATE_CHANGED,({room:s,prevState:i,state:e,remoteUserId:t})=>{let r=!!t,o;switch(e){case"CONNECTED":i==="RECONNECTING"?o=r?32801:32798:o=r?32793:32792;break;case"DISCONNECTED":i==="RECONNECTING"&&(o=r?32802:32799);break;case"RECONNECTING":o=r?32800:32797;break}o&&ue(s.userId,{eventId:o,remoteUserId:t})});E.on(T.VIDEO_CODEC_IMPLEMENTATION_CHANGED,({implementation:s,userId:i,remoteUserId:e,codec:t,isHWCodec:r,prevImplementation:o,streamType:n})=>{let a=r?1:0;o||(a=r?3:2);let d=t==="h264"?0:2,l={eventId:4004,param1:a,param2:d,streamType:n||2};e&&(l.remoteUserId=e,l.eventId=4005),ue(i,l),N.addEnum({key:e?514701:513701,value:a}),N.addEnum({key:e?514700:513700,value:d})});E.on(T.LOCAL_TRACK_RECAPTURE,({track:s,error:i})=>{if(s.userId){let e={eventId:2003,param1:0};s.kind===h.AUDIO?(e.streamType=1,i&&(e.param1=2)):(e.streamType=s.streamType==="auxiliary"?7:2,i&&(e.param1=8)),ue(s.userId,e)}});function ue(s,i){let e=k(v({},i),{timestamp:Bs()});As.has(s)?As.get(s).push(e):As.set(s,[e])}function dm(s){if(As.has(s)){let i=As.get(s).map(e=>({uint32_event_id:e.eventId,uint64_date:e.timestamp,str_userid:e.remoteUserId,uint32_param1:e.param1,uint32_param2:e.param2,uint32_video_stream_type:e.streamType}));return As.delete(s),i}return[]}var lm=ke(Ge(),1);var Pa=class extends lm.EventEmitter{constructor(e,t,r="userId"){super();this.mySelfId=e;this._log=t;this.key=r;c(this,"userMap",new Map);c(this,"remotePublishedUserMap",new Map)}get hasRobotUser(){return!![...this.remotePublishedUserMap.values()].find(e=>e.isRobot)}getPublishedUser(e){return this.remotePublishedUserMap.get(e)}addUser(e){let t=e[this.key],{userId:r,tinyId:o,role:n}=e;if(this.userMap.has(t))return;let a={userId:r,tinyId:o,role:n===20?"anchor":"audience"};this.userMap.set(t,a),this.emit("1",a)}deleteUser(e,t){let r=this.userMap.get(e);if(!r)return;let o=`peer leave [${e}]`;g(t)||(o+=`:${Nc[t]}`),this._log.info(o);let n=this.remotePublishedUserMap.get(e);if(n){let a=n.muteState;n.flag=0,this.emit("5",n.userId),this.deleteRemotePublishedUser(e),this.emit("6",{prevMuteState:a,muteState:n.muteState,flag:0})}this.userMap.delete(e),this.emit("2",r.userId)}setUserList(e){this.userMap.forEach(t=>{e.findIndex(r=>r[this.key]===t[this.key])<0&&this.deleteUser(t[this.key],0)}),e.forEach(t=>{!this.userMap.has(t[this.key])&&t[this.key]!==this.mySelfId&&this.addUser(t)})}addRemotePublishedUser(e){this.remotePublishedUserMap.has(e[this.key])||this.remotePublishedUserMap.set(e[this.key],e)}deleteRemotePublishedUser(e){this.remotePublishedUserMap.has(e)&&this.remotePublishedUserMap.delete(e)}setRemotePublishedUserList(e){this.remotePublishedUserMap.forEach(t=>{let r=t[this.key];if(e.findIndex(o=>o[this.key]===t[this.key])<0){this._log.info(`remote [${r}] unpublish`);let o=t.muteState;t.flag=0,this.emit("5",t.userId),this.deleteRemotePublishedUser(r),this.emit("6",{prevMuteState:o,muteState:t.muteState,flag:0})}}),e.forEach(t=>{var m;let r=t[this.key];if(r===this.mySelfId)return;let{flag:o,userId:n,tinyId:a}=t,d=ui(o,n),l=(m=this.remotePublishedUserMap.get(r))==null?void 0:m.muteState;if(l){let u=this.remotePublishedUserMap.get(r);u&&u.flag!==o&&(u.flag=o,this._log.info(`remote publish updated: ${JSON.stringify(u.muteState)}`),this.emit("6",{prevMuteState:l,muteState:d,flag:o}))}else this._log.info(`remote publish. state: ${JSON.stringify(d)}`),this.addUser({userId:n,tinyId:a,role:20}),this.emit("3",t),this.emit("6",{prevMuteState:ui(0,n),muteState:d,flag:o})})}clear(){this.userMap.clear(),this.remotePublishedUserMap.clear()}};function vl({timesInSecond:s,maxSizeInSecond:i,getSize:e}){return J((t,r)=>{let o=new WeakMap;return E.on(T.ROOM_DESTROY,({room:n})=>o.delete(n)),function(...n){let a=o.get(this);if(a||(a={callCountInSecond:0,timestamp:0,totalSizeInSecond:0},o.set(this,a)),a.timestamp===0?a.timestamp=Date.now():Date.now()-a.timestamp>1e3&&(a.timestamp=Date.now(),a.callCountInSecond=0,a.totalSizeInSecond=0),e&&(a.totalSizeInSecond+=e(...n)),a.timestamp!==0&&Date.now()-a.timestamp<1e3&&(a.callCountInSecond>=s||a.totalSizeInSecond>i))throw new b({code:S.INVALID_OPERATION,message:U({key:x.CALL_FREQUENCY_LIMIT,data:{isTimes:a.callCountInSecond>=s,isSize:a.totalSizeInSecond>i,name:r,timesInSecond:s,maxSizeInSecond:i}})});a.callCountInSecond++,t.call(this,...n)}})}var Wg="2025-02-18 16:57:16",um=!0,hm=function(){var s;um&&(um=!1,C.getLogLevel()!==5&&(console.info("******************************************************************************"),console.info("* TRTC Web SDK"),console.info(`* API Document: ${Bt}/en/index.html`),console.info(`* Changelog: ${Bt}/en/tutorial-01-info-changelog.html`),console.info("* Report issues: https://github.com/LiteAVSDK/TRTC_Web/issues"),console.info("******************************************************************************")),C.info("TRTC Web SDK Version:",Ce),Ot||C.debug("Build Time:",Wg),C.info("UA:",navigator.userAgent),C.info(`URL: ${location.href}${((s=self.frameElement)==null?void 0:s.tagName)==="IFRAME"?" in iframe":""}`),uo().then(i=>{i&&C.info(Rt)}))};var Tt={SCENE_LIVE:"live",SCENE_RTC:"rtc",ROLE_ANCHOR:"anchor",ROLE_AUDIENCE:"audience",STREAM_TYPE_MAIN:"main",STREAM_TYPE_SUB:"sub",AUDIO_PROFILE_STANDARD:"standard",AUDIO_PROFILE_STANDARD_STEREO:"standard-stereo",AUDIO_PROFILE_HIGH:"high",AUDIO_PROFILE_HIGH_STEREO:"high-stereo",QOS_PREFERENCE_SMOOTH:"smooth",QOS_PREFERENCE_CLEAR:"clear",SPEAKER:"Speakerphone",HEADSET:"Headset earpiece"};var V={INVALID_PARAMETER:5e3,INVALID_OPERATION:5100,ENV_NOT_SUPPORTED:5200,DEVICE_ERROR:5300,SERVER_ERROR:5400,OPERATION_FAILED:5500,OPERATION_ABORT:5998,UNKNOWN_ERROR:5999},Lt=(A=>(A[A.INVALID_PARAMETER=5e3]="INVALID_PARAMETER",A[A.INVALID_PARAMETER_REQUIRED=5001]="INVALID_PARAMETER_REQUIRED",A[A.INVALID_PARAMETER_TYPE=5002]="INVALID_PARAMETER_TYPE",A[A.INVALID_PARAMETER_EMPTY=5003]="INVALID_PARAMETER_EMPTY",A[A.INVALID_PARAMETER_INSTANCE=5004]="INVALID_PARAMETER_INSTANCE",A[A.INVALID_PARAMETER_RANGE=5005]="INVALID_PARAMETER_RANGE",A[A.INVALID_PARAMETER_LESS_THAN_ZERO=5006]="INVALID_PARAMETER_LESS_THAN_ZERO",A[A.INVALID_PARAMETER_MIN=5007]="INVALID_PARAMETER_MIN",A[A.INVALID_PARAMETER_MAX=5008]="INVALID_PARAMETER_MAX",A[A.INVALID_ELEMENT_ID=5009]="INVALID_ELEMENT_ID",A[A.INVALID_ELEMENT_ID_TYPE=5010]="INVALID_ELEMENT_ID_TYPE",A[A.INVALID_STREAM_ID=5011]="INVALID_STREAM_ID",A[A.INVALID_ROOM_ID_STRING=5012]="INVALID_ROOM_ID_STRING",A[A.INVALID_ROOM_ID_INTEGER=5013]="INVALID_ROOM_ID_INTEGER",A[A.INVALID_STREAM_TYPE=5014]="INVALID_STREAM_TYPE",A[A.INVALID_ROOM_ID_REQUIED=5015]="INVALID_ROOM_ID_REQUIED",A[A.INVALID_ROOM_ID_INTEGER_STRING=5016]="INVALID_ROOM_ID_INTEGER_STRING",A[A.INVALID_BUFFER_EMPTY=5017]="INVALID_BUFFER_EMPTY",A[A.INVALID_BUFFER_OVERSIZE=5018]="INVALID_BUFFER_OVERSIZE",A[A.INVALID_OPERATION=5100]="INVALID_OPERATION",A[A.INVALID_OPERATION_NOT_JOINED=5101]="INVALID_OPERATION_NOT_JOINED",A[A.INVALID_OPERATION_REMOTE_USER_NOT_EXIST=5102]="INVALID_OPERATION_REMOTE_USER_NOT_EXIST",A[A.INVALID_OPERATION_STREAM_TYPE_NOT_EXIST=5103]="INVALID_OPERATION_STREAM_TYPE_NOT_EXIST",A[A.INVALID_OPERATION_REPEAT_CALL=5104]="INVALID_OPERATION_REPEAT_CALL",A[A.INVALID_OPERATION_NEED_VIDEO=5105]="INVALID_OPERATION_NEED_VIDEO",A[A.INVALID_OPERATION_NEED_AUDIO=5106]="INVALID_OPERATION_NEED_AUDIO",A[A.INVALID_ROLE_AUDIENCE=5107]="INVALID_ROLE_AUDIENCE",A[A.INVALID_NOT_ENABLE_SEI=5108]="INVALID_NOT_ENABLE_SEI",A[A.INVALID_NEED_CALL_PUBLISHED=5109]="INVALID_NEED_CALL_PUBLISHED",A[A.ENV_NOT_SUPPORTED=5200]="ENV_NOT_SUPPORTED",A[A.NOT_SUPPORTED_HTTP=5201]="NOT_SUPPORTED_HTTP",A[A.NOT_SUPPORTED_WEBRTC=5202]="NOT_SUPPORTED_WEBRTC",A[A.NOT_SUPPORTED_H264_ENCODE=5203]="NOT_SUPPORTED_H264_ENCODE",A[A.NOT_SUPPORTED_H264_DECODE=5204]="NOT_SUPPORTED_H264_DECODE",A[A.NOT_SUPPORTED_SCREEN_SHARE=5205]="NOT_SUPPORTED_SCREEN_SHARE",A[A.NOT_SUPPORTED_SMALL_VIDEO=5206]="NOT_SUPPORTED_SMALL_VIDEO",A[A.NOT_SUPPORTED_SEI=5207]="NOT_SUPPORTED_SEI",A[A.NOT_SUPPORTED_WEBGL=5208]="NOT_SUPPORTED_WEBGL",A[A.NOT_SUPPORTED_CHROME_VERSION=5209]="NOT_SUPPORTED_CHROME_VERSION",A[A.NOT_SUPPORTED_PLUGIN=5210]="NOT_SUPPORTED_PLUGIN",A[A.DEVICE_ERROR=5300]="DEVICE_ERROR",A[A.DEVICE_NOT_FOUND_ERROR=5301]="DEVICE_NOT_FOUND_ERROR",A[A.DEVICE_NOT_ALLOWED_ERROR=5302]="DEVICE_NOT_ALLOWED_ERROR",A[A.DEVICE_NOT_READABLE_ERROR=5303]="DEVICE_NOT_READABLE_ERROR",A[A.DEVICE_OVERCONSTRAINED_ERROR=5304]="DEVICE_OVERCONSTRAINED_ERROR",A[A.DEVICE_INVALID_STATE_ERROR=5305]="DEVICE_INVALID_STATE_ERROR",A[A.DEVICE_SECURITY_ERROR=5306]="DEVICE_SECURITY_ERROR",A[A.DEVICE_ABORT_ERROR=5307]="DEVICE_ABORT_ERROR",A[A.CAMERA_RECOVER_FAILED=5308]="CAMERA_RECOVER_FAILED",A[A.MICROPHONE_RECOVER_FAILED=5309]="MICROPHONE_RECOVER_FAILED",A[A.SERVER_ERROR=5400]="SERVER_ERROR",A[A.NEED_TO_BUY=5401]="NEED_TO_BUY",A[A.ACCOUNT_NO_MONEY=-100013]="ACCOUNT_NO_MONEY",A[A.OPERATION_FAILED=5500]="OPERATION_FAILED",A[A.FIREWALL_RESTRICTION=5501]="FIREWALL_RESTRICTION",A[A.REJOIN_FAILED=5502]="REJOIN_FAILED",A[A.EVENT_HANDLER_ERROR=5503]="EVENT_HANDLER_ERROR",A[A.VIDEO_CONTEXT_ERROR=5504]="VIDEO_CONTEXT_ERROR",A[A.VIDEO_DECODE_ERROR=5505]="VIDEO_DECODE_ERROR",A[A.OPERATION_ABORT=5998]="OPERATION_ABORT",A[A.UNKNOWN_ERROR=5999]="UNKNOWN_ERROR",A))(Lt||{});function pm({code:s,params:i,enableDocLink:e=!1}){let t="",r,o=Lt[s];try{r=mm[o]}catch(n){r=mm.UNKNOWN_ERROR}return se(r)?t=r(i):K(r)&&(t=r),i.fnName&&!t.includes(i.fnName)&&(t[t.length-1]!=="."&&(t+="."),t+=` thrown from ${i.fnName}()`),e&&(t+=" doc:"),t}var mm=k(v({},ve),{INVALID_PARAMETER({fnName:s}){return`the parameters of the '${s}' you called does not meet the requirements, please check the API documentation.`},INVALID_PARAMETER_REQUIRED({key:s,rule:i,fnName:e,value:t}){return`'${s||i.name}' is a required param when calling ${e}(), received: ${t}.`},INVALID_PARAMETER_TYPE({key:s,rule:i,fnName:e,value:t}){let r=`${s||i.name}`,o="";return Array.isArray(i.type)?o=i.type.join("|"):o=i.type,`'${r}' must be type of ${o} when calling ${e}(), received type: ${Ae(t)}.`},INVALID_PARAMETER_EMPTY({key:s,rule:i,fnName:e,value:t}){return`'${s||i.name}' cannot be '${t}' when calling ${e}().`},INVALID_PARAMETER_INSTANCE({key:s,rule:i,fnName:e,value:t}){let r=`${s||i.name}`,o=`${i.instanceOf.name||i.instanceOf}`;return`'${r}' must be instanceof ${o} when calling ${e}(), received type: ${Ae(t)}.`},INVALID_PARAMETER_RANGE({key:s,rule:i,fnName:e,value:t}){return`'${s||i.name}' must be one of ${i.values.join("|")} when calling ${e}(), received: ${t}.`},INVALID_PARAMETER_LESS_THAN_ZERO({key:s,rule:i,fnName:e}){return`'${s||i.name}' cannot be less than 0 when calling ${e}().`},INVALID_PARAMETER_MIN({key:s,rule:i,value:e}){return`the min value of ${s||i.name} is ${i.min}, received: ${e}.`},INVALID_PARAMETER_MAX({key:s,rule:i,value:e}){return`the max value of ${s||i.name} is ${i.max}, received: ${e}.`},INVALID_ELEMENT_ID({key:s,fnName:i}){return`'${s}' is not found in the document object when calling ${i}().`},INVALID_ELEMENT_ID_TYPE({key:s,fnName:i,type:e}){return`the element corresponding to '${s}' must be instanceof HTMLElement when calling ${i}(), received: ${e}.`},INVALID_STREAM_ID({key:s}){return`'${s}' can only consist of uppercase and lowercase english letters (a-zA-Z), numbers (0-9), hyphens and underscores.`},INVALID_ROOM_ID_STRING({key:s}){return`'${s}' must be a valid string.`},INVALID_ROOM_ID_INTEGER({key:s}){return`'${s}' must be an integer between [1, 4294967294].`},INVALID_ROOM_ID_INTEGER_STRING({key:s}){return`'${s}' must be an integer but go a string, use 'parseInt' to convert it or use 'strRoomId' instead.`},INVALID_ROOM_ID_REQUIED(){return"at least one of 'roomId'(between [1, 4294967294]) and 'strRoomId'(not empty) is required."},INVALID_STREAM_TYPE:({fnName:s})=>`'streamType' is required when 'userId' is not '*', calling ${s}()`,INVALID_IMAGE_URL:"The 'src' param must be filled in when the background type is image.",INVALID_OPERATION({fnName:s}){return`the API '${s}' you called does not meet the requirements, please check the API documentation.`},INVALID_OPERATION_NOT_JOINED({fnName:s}){return`cannot ${s} because you are not enter room yet.`},INVALID_OPERATION_REMOTE_USER_NOT_EXIST({fnName:s,value:i}){return`cannot ${s} because remote user(userId: ${i.userId}) does not publishing stream.`},INVALID_OPERATION_STREAM_TYPE_NOT_EXIST({fnName:s,value:i}){return`cannot ${s} because remote user(userId: ${i.userId}) does not publishing ${i.streamType} video.`},INVALID_OPERATION_REPEAT_CALL({fnName:s}){return`you are already ${s}(), cannot repeated call '${s}'.`},INVALID_OPERATION_NEED_VIDEO({fnName:s}){return`cannot call '${s}' because the camera is not turned on.`},INVALID_OPERATION_NEED_AUDIO({fnName:s}){return`cannot call '${s}' because the microphone is not turned on.`},INVALID_BUFFER_EMPTY:({key:s})=>`the buffer size of paramerter '${s}' cannot be empty`,INVALID_BUFFER_OVERSIZE:()=>"buffer size is over 1000 Bytes",INVALID_ROLE_AUDIENCE:()=>"role: 'audience' cannot call this api.",INVALID_NOT_ENABLE_SEI:()=>"you need to enable SEI in TRTC.create({ enableSEI: true })",INVALID_NEED_CALL_PUBLISHED:({fnName:s})=>`you need to call ${s}() after publish stream.`,ENV_NOT_SUPPORTED({fnName:s}){return`the current browser does not support the capability of the function '${s}' you are calling, please check the API documentation.`},NOT_SUPPORTED_WEBRTC:"the current browser does not support WebRTC capability, please check the SDK documentation.",NOT_SUPPORTED_H264_ENCODE:"this browser does not support H264 encode.",NOT_SUPPORTED_H264_DECODE:"this browser does not support H264 decode.",NOT_SUPPORTED_SCREEN_SHARE:"this browser does not support screen share, please check the browser version.",NOT_SUPPORTED_SMALL_VIDEO:"this browser does not support small video, please check the browser version.",NOT_SUPPORTED_SEI:"this browser does not support SEI, please check the browser version.",NOT_SUPPORTED_WEBGL:"this browser does not support WebGL, please check the browser version.",NOT_SUPPORTED_CHROME_VERSION({fnName:s}){return`cannot call ${s} because the browser version is too low, please upgrade to the latest version`},DEVICE_ERROR({fnName:s,error:i}){return`'${s}' got device exception${i?`, error: ${i.toString()}.`:"."}`},DEVICE_NOT_FOUND_ERROR({fnName:s,deviceType:i=kr(s),error:e}){return`NotFoundError, no ${i} detected, please check your device and the configuration on '${s}'${e?`, error: ${e.toString()}.`:"."}`},DEVICE_NOT_ALLOWED_ERROR({fnName:s,deviceType:i=kr(s),error:e}){return`NotAllowedError, you have disabled ${i} access, please allow the current application to use the ${i}${e?`, error: ${e.toString()}.`:"."}`},DEVICE_NOT_READABLE_ERROR({fnName:s,deviceType:i=kr(s),error:e}){return`NotReadableError, the ${i} maybe in use by another APP, please check if the device is pre-occupied by another APP.`},DEVICE_OVERCONSTRAINED_ERROR({fnName:s,deviceType:i=kr(s),error:e}){return`OverconstrainedError, the device ID is incorrect, please check whether the device ID passed in is correct${e?`, error: ${e.toString()}.`:"."}`},DEVICE_INVALID_STATE_ERROR({fnName:s,deviceType:i=kr(s),error:e}){return`InvalidStateError, after the user clicks and interacts with the page, turn on the ${i}${e?`, error: ${e.toString()}.`:"."}`},DEVICE_SECURITY_ERROR({fnName:s,deviceType:i=kr(s),error:e}){return`SecurityError, check whether the system security policy restricts the use of the ${i}, and it is recommended to turn on the ${i} after the user interacts with the page${e?`, error: ${e.toString()}.`:"."}`},DEVICE_ABORT_ERROR({fnName:s,deviceType:i=kr(s),error:e}){return`AbortError, an unknown exception in the system makes the device unusable, recommended to change the device or browser and re-check whether the device is normal${e?` error: ${e.toString()}.`:"."}`},CAMERA_RECOVER_FAILED({error:s}){return`camera recover capture failed ${(s==null?void 0:s.name)||""}: ${(s==null?void 0:s.originMessage)||(s==null?void 0:s.message)}`},MICROPHONE_RECOVER_FAILED({error:s}){return`microphone recover capture failed ${(s==null?void 0:s.name)||""}: ${(s==null?void 0:s.originMessage)||(s==null?void 0:s.message)}`},OPERATION_FAILED({fnName:s,error:i}){return`'${s}' failed, reason: ${i==null?void 0:i.toString()}`},FIREWALL_RESTRICTION(){return"media connection failure due to firewall restrictions, please try to change your network."},EVENT_HANDLER_ERROR({eventName:s}){return`an error was caught on trtc.on('${s}', handler), please check your code on 'handler'.`},VIDEO_CONTEXT_ERROR({reason:s,error:i}){return`video context error ${s} ${(i==null?void 0:i.name)||""} ${(i==null?void 0:i.message)||""}`},SERVER_ERROR({fnName:s,error:i}){return`'${s}' got server error: ${i==null?void 0:i.toString()}, please check the SDK documentation.`},NEED_TO_BUY({value:s,url:i}){return`You need to buy packages for ${s}. Refer to: ${i}`},ACCOUNT_NO_MONEY:({fnParams:s})=>`your TRTC account run out of credit, please recharge.${s.sdkAppId?` SDKAppId: ${s.sdkAppId}`:""}`,OPERATION_ABORT({fnName:s}){return`'${s}' abort`},UNKNOWN_ERROR({fnName:s,error:i}){return`'${s}' throw unknown exception${i?`, error: ${i.toString()}.`:"."}`}});function kr(s){if(!s)return"camera";let i=s.toLowerCase();return i.includes("screen")?"screen share":i.includes("audio")?"microphone":"camera"}var Dl=class s extends Error{constructor({code:e,extraCode:t,message:r="",messageParams:o,fnName:n="",originError:a}){var l;let d;r?d=r:d=pm({code:e===V.SERVER_ERROR?e:t||e,params:v({fnName:n,error:a},o)});super(d);c(this,"name","RtcError");c(this,"code");c(this,"extraCode");c(this,"functionName");c(this,"message");c(this,"handler");c(this,"originError");this.name=Lt[e],this.code=e,this.extraCode=t,this.functionName=n,this.originError=a,this.message=d,this.extraCode===5302&&((l=this.originError)!=null&&l.message.includes("system"))&&(this.handler=()=>{let m={startLocalVideo:"Camera",startLocalAudio:"Microphone",startScreenShare:"ScreenCapture"},u={startLocalVideo:"webcam",startLocalAudio:"microphone"},p=document.createElement("a");fi?p.href=`ms-settings:privacy-${u[this.functionName]}`:Nt&&(p.href=`x-apple.systempreferences:com.apple.preference.security?Privacy_${m[this.functionName]}`),p.href.length>0&&p.click()})}static convertFrom(e,t,r){let o=e;if(e instanceof b){let{stack:n}=e,a={code:V.UNKNOWN_ERROR,fnName:t,originError:e};switch(e.getCode()){case S.INVALID_PARAMETER:a.code=V.INVALID_PARAMETER,a.message=e.message;break;case S.INVALID_OPERATION:a.code=V.INVALID_OPERATION;break;case S.NOT_SUPPORTED:case S.NOT_SUPPORTED_H264:a.code=V.ENV_NOT_SUPPORTED,e.getCode()===S.NOT_SUPPORTED_H264&&(a.extraCode=e.message.includes(ve.NOT_SUPPORTED_H264ENCODE)?5203:5204);break;case S.JOIN_ROOM_FAILED:a.messageParams={fnParams:r};case S.SERVER_TIMEOUT:case S.SWITCH_ROLE_FAILED:a.code=V.SERVER_ERROR,a.extraCode=e.getExtraCode();break;case S.API_CALL_ABORTED:a.code=V.OPERATION_ABORT;break;case S.DEVICE_NOT_FOUND:case S.DEVICE_AUTO_RECOVER_FAILED:case S.INITIALIZE_FAILED:a.code=5300,e.name&&(a.extraCode=Jg(e.name));break;case S.UNKNOWN:break;default:a.code=V.OPERATION_FAILED}o=new s(a),n&&(o.stack+=n.substr(n.indexOf(`
50
+ `)))}else{if(e instanceof s)return e;o=new s({code:V.UNKNOWN_ERROR,fnName:t,originError:e})}return o}};function Jg(s){let i;switch(s){case"NotFoundError":i=5301;break;case"NotAllowedError":i=5302;break;case"NotReadableError":i=5303;break;case"OverconstrainedError":i=5304;break;case"InvalidStateError":i=5305;break;case"SecurityError":i=5306;break;case"AbortError":i=5307;break;default:i=5300}return i}var w=Dl;var fm={type:"object",properties:{cameraId:{type:"string"},useFrontCamera:{type:"boolean"},fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:["string","boolean"],values:[!0,!1,"view","publish","both"]},small:{properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack}}},_m={type:"object",properties:{systemAudio:{type:"boolean"},fillMode:{type:"string",values:["contain","cover","fill"]},profile:{type:["string","object"],properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack},audioTrack:{instanceOf:MediaStreamTrack}}},Cs={type:["string",HTMLElement,null,"array"],arrayItem:{instanceOf:HTMLElement},validate(s,i,e){if(K(s)&&!document.getElementById(s))throw new w({code:V.INVALID_PARAMETER,extraCode:5009,fnName:e,messageParams:{key:i}})}},gm={name:"userId",required:!0,type:"string"},Tm={type:"object",properties:{microphoneId:{type:"string"},audioTrack:{instanceOf:MediaStreamTrack},captureVolume:{type:"number",min:0},earMonitorVolume:{type:"number",min:0,max:100},profile:{values:[Tt.AUDIO_PROFILE_STANDARD,Tt.AUDIO_PROFILE_STANDARD_STEREO,Tt.AUDIO_PROFILE_HIGH,Tt.AUDIO_PROFILE_HIGH_STEREO]},echoCancellation:{type:"boolean"},autoGainControl:{type:"boolean"},noiseSuppression:{type:"boolean"}}};function $o(s,i){if(!s)throw new w({code:V.INVALID_OPERATION,extraCode:5101,fnName:i})}function Em(s,i,e){if(!s)throw new w({code:V.INVALID_OPERATION,extraCode:5102,fnName:i,messageParams:{value:e}})}var TD={type:"number",notLessThanZero:!0},qg={create:[{name:"RoomConfig",instanceOf:Function},{name:"CreateConfig",type:"object",properties:{plugins:{type:"array",arrayItem:{instanceOf:Function}}}}],enterRoom:{name:"EnterRoomConfig",type:"object",required:!0,validate(s,i,e){if(this._room.isJoined)throw new w({code:V.INVALID_OPERATION,extraCode:5104,fnName:e});if(s.roomId){if(K(s.roomId))throw new w({code:V.INVALID_PARAMETER,extraCode:5016,fnName:e,messageParams:{key:i}});if(!(/^[1-9]\d*$/.test(String(s.roomId))&&s.roomId<4294967295))throw new w({code:V.INVALID_PARAMETER,extraCode:5013,fnName:e,messageParams:{key:i}})}else if(s.strRoomId){if(!/^[A-Za-z\d\s!#$%&()+\-:;<=.>?@[\]^_{}|~,]{1,64}$/.test(s.strRoomId))throw new w({code:V.INVALID_PARAMETER,extraCode:5012,fnName:e,messageParams:{key:i}})}else throw new w({code:V.INVALID_PARAMETER,extraCode:5015,fnName:e})},properties:{sdkAppId:{required:!0,type:"number",allowEmpty:!1},userId:{required:!0,type:"string",allowEmpty:!1},userSig:{required:!0,type:"string",allowEmpty:!1},scene:{type:"string",values:["live","rtc"]},role:{type:"string",values:["audience","anchor"]},roomId:{type:["string","number"]},strRoomId:{type:"string"},proxy:{type:["object","string"],properties:{websocketProxy:{type:"string"},turnServer:{type:["object","array"],properties:{url:{required:!0,type:"string"},username:{type:"string"},credential:{type:"string"},credentialType:{type:"string",values:["password"]}}},loggerProxy:{type:"string"},webtransportProxy:{type:"string"}}},enableAutoPlayDialog:{type:"boolean"},userDefineRecordId:{type:"string"},latencyLevel:{type:"number"}}},startLocalVideo:{name:"LocalVideoConfig",type:"object",properties:{view:Cs,mute:{type:["boolean","string"]},publish:{type:"boolean"},option:fm},validate(s){var i;if(!((i=s==null?void 0:s.option)!=null&&i.videoTrack)&&Ci())throw new w({code:V.ENV_NOT_SUPPORTED,extraCode:5201})}},updateLocalVideo:{name:"updateLocalVideoConfig",type:"object",required:!0,properties:{view:k(v({},Cs),{required:!1}),publish:{type:"boolean"},mute:{type:["boolean","string"]},option:fm}},startLocalAudio:{name:"LocalAudioConfig",type:"object",properties:{publish:{type:"boolean"},option:Tm},validate(s){var i;if(!((i=s==null?void 0:s.option)!=null&&i.audioTrack)&&Ci())throw new w({code:V.ENV_NOT_SUPPORTED,extraCode:5201})}},updateLocalAudio:{name:"updateLocalAudioConfig",type:"object",required:!0,properties:{publish:{type:"boolean"},mute:{type:"boolean"},option:Tm}},startScreenShare:{name:"ScreenShareConfig",type:"object",properties:{view:Cs,publish:{type:"boolean"},option:_m},validate(s,i,e,t,r){var o;if(!((o=s==null?void 0:s.option)!=null&&o.videoTrack)&&Ci())throw new w({code:V.ENV_NOT_SUPPORTED,extraCode:5201});if(!Eo())throw new w({code:V.ENV_NOT_SUPPORTED,fnName:e,extraCode:5205})}},updateScreenShare:{name:"updateScreenShareConfig",type:"object",required:!0,properties:{view:Cs,publish:{type:"boolean"},option:_m}},muteRemoteAudio:[gm,{name:"mute",required:!0,type:"boolean"}],setRemoteAudioVolume:[gm,{name:"volume",required:!0,type:"number",min:0}],startRemoteVideo:{name:"startRemoteVideoConfig",type:"object",required:!0,properties:{view:Cs,userId:{type:"string",required:!0},streamType:{values:["main","sub"],required:!0},option:{type:"object",properties:{fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:"boolean"}}}},validate(s,i,e){$o(this._room.isJoined,e);let t=this._room.remotePublishedUserMap.get(s.userId);if(Em(!!t,e,s),t&&(s.streamType==="main"&&!t.muteState.videoAvailable||s.streamType==="sub"&&!t.muteState.hasAuxiliary))throw new w({code:V.INVALID_OPERATION,extraCode:5103,fnName:e,messageParams:{value:s}})}},updateRemoteVideo:{name:"updateRemoteVideoConfig",type:"object",required:!0,properties:{view:k(v({},Cs),{required:!1}),userId:{type:"string",required:!0},streamType:{values:["main","sub"],required:!0},option:{type:"object",properties:{fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:"boolean"}}}},validate(s,i,e){$o(this._room.isJoined,e);let t=this._room.remotePublishedUserMap.get(s.userId);if(Em(!!t,e,s),t&&(s.streamType==="main"&&!t.muteState.videoAvailable||s.streamType==="sub"&&!t.muteState.hasAuxiliary))throw new w({code:V.INVALID_OPERATION,extraCode:5103,fnName:e,messageParams:{value:s}})}},stopRemoteVideo:{name:"stopRemoteVideoConfig",type:"object",required:!0,properties:{userId:{type:"string",required:!0},streamType:{values:["main","sub"]}},validate(s,i,e){if(s.userId!=="*"&&g(s.streamType))throw new w({code:V.INVALID_PARAMETER,extraCode:5014,fnName:e})}},switchRole:{name:"role",required:!0,values:["anchor","audience"],validate(s,i,e){$o(this._room.isJoining||this._room.isJoined,e)}},enableAudioVolumeEvaluation:[{name:"interval",type:"number"},{name:"enableInBackground",type:"boolean"}],sendSEIMessage:[{name:"buffer",required:!0,instanceOf:ArrayBuffer,validate(s,i,e,t){if(!Co)throw new w({code:V.ENV_NOT_SUPPORTED,fnName:e,extraCode:5207});if(!this._room.enableSEI)throw new w({code:V.INVALID_OPERATION,fnName:e,extraCode:5108});if(s.byteLength>1e3)throw new w({code:V.INVALID_PARAMETER,extraCode:5018,fnName:e});if(s.byteLength===0)throw new w({code:V.INVALID_PARAMETER,extraCode:5017,messageParams:{key:i},fnName:e});$o(this._room.isJoined,e)}},{name:"options",type:"object",properties:{seiPayloadType:{type:"number",values:[5,243]},toSubStream:{type:"boolean",validate(s,i,e){if(!s&&!this._room.isMainStreamPublished||s&&!this._room.isAuxStreamPublished)throw new w({code:V.INVALID_OPERATION,extraCode:5109,messageParams:{key:i},fnName:e})}}}}],sendCustomMessage:{name:"message",required:!0,type:"object",properties:{cmdId:{type:"number",required:!0,min:1,max:10},data:{instanceOf:ArrayBuffer,required:!0,validate(s,i,e,t){if(s.byteLength>1e3)throw new w({code:V.INVALID_PARAMETER,extraCode:5018,fnName:e});if(s.byteLength===0)throw new w({code:V.INVALID_PARAMETER,extraCode:5017,fnName:e,messageParams:{key:i}})}}},validate(s,i,e){if($o(this._room.isJoined,e),this._room.scene==="live"&&this._room.role==="audience")throw new w({code:V.INVALID_OPERATION,extraCode:5107,fnName:e,messageParams:{key:i}})}}},Oe={TRTC:qg};var Fe=class extends Error{};function jg(s,i){let e=lr(s);for(let t=0;t<i.length;t++)Ht(e[t],i[t]);return e}function Xg(s){this._resolve=Promise.resolve(s)}function Qg(s){this._reject=Promise.reject(s)}var tr=class tr{constructor(i,e){this.instance=i;this.group=e;c(this,"started",!1);c(this,"ops",[]);c(this,"startSame",()=>!0);c(this,"mergeUpdate",jg);let t=tr.instances.get(i);t?t.set(e,this):tr.instances.set(i,new Map([[e,this]]))}static get(i,e){if(!e)return;let t=tr.instances.get(i);return t&&t.get(e)||new tr(i,e)}static gets(i,e){let t=tr.instances.get(i),r=[];return t&&t.forEach((o,n)=>{e.test(n)&&r.push(o)}),r}action(i,e,t){let r=a=>{var d;return i===0?this.started=!0:i===3&&(this.started=!1),this.ops.shift(),(d=this.currentOp)==null||d.action(),a},o=a=>{var d,l;throw this.ops.shift(),i===0&&((d=this.currentOp)==null?void 0:d.type)===2&&this.ops.shift().reject(new Fe("start failed")),(l=this.currentOp)==null||l.action(),a},n={type:i,action:()=>e(...n.args).then(r,o),args:t,resolve:Xg,reject:Qg};try{switch(this.state){case 1:if(i===0)throw new Fe("already started");break;case 4:if(i===2)throw new Fe("not started");break;default:return this.cacheOp(n)}}catch(a){return Promise.reject(a)}return this.ops.push(n),n.promise=e(...n.args).then(r,o)}cacheOp(i){if(this.ops.length===1)switch(this.state){case 0:case 2:if(i.type===0)throw new Fe("already start");break;case 3:switch(i.type){case 2:throw new Fe("update not allowed when stopping");case 3:return this.currentOp.promise}break;default:throw new Fe("unknown state")}else switch(i.type){case 3:switch(this.lastOpType){case 3:return this.lastOp.promise;default:let t=new Fe("keep stop");if(this.ops.slice(1).forEach(r=>r.reject(t)),this.ops=this.ops.slice(0,1),this.state===3)return this.currentOp.promise}break;case 2:switch(this.lastOpType){case 2:return this.lastOp.args=this.mergeUpdate(this.lastOp.args,i.args),this.lastOp.promise;case 3:throw new Fe("update not allowed after stop")}break;case 0:switch(this.lastOpType){case 2:throw new Fe("start not allowed after update");case 0:throw new Fe("duplicate start");case 3:if(this.startSame(this.currentOp.args,i.args))throw this.ops.pop().reject(new Fe("keep start")),new Fe("already start")}}i.promise=new Promise((t,r)=>{i._resolve?i._resolve.then(t):i.resolve=t,i._reject?i._reject.catch(r):i.reject=r});let{action:e}=i;return i.action=()=>e().then(i.resolve,i.reject),this.ops.push(i),i.promise}get lastOp(){return this.ops[this.ops.length-1]}get lastOpType(){return this.lastOp.type}get currentOp(){return this.ops[0]}get state(){return this.currentOp?this.currentOp.type:this.started?1:4}};c(tr,"instances",new WeakMap);var Pi=tr;var wa=new WeakMap,xa=(s,i)=>{if(i instanceof Fe){let{stack:e}=i;i=new w({code:V.OPERATION_ABORT,message:`${s} abort: ${i.message}`,fnName:s}),e&&(i.stack+=e.substr(e.indexOf(`
51
+ `)))}throw i};function ir(s,i){return J((e,t)=>function(...r){let o=Pi.get(this,typeof s=="string"?s:s.call(this,...r));return o?(i&&(o.startSame=i.bind(this)),o.action(0,e.bind(this),r).catch(xa.bind(null,t))):e.apply(this,r)})}function Lr(s,i){let{merge:e,debounce:t}=i||{};return J((r,o)=>function(...n){let a=Pi.get(this,typeof s=="string"?s:s.call(this,...n));if(!a)return r.apply(this,n);if(e&&(a.mergeUpdate=e.bind(this)),t&&t.isNeedToDebounce.apply(this,n)){let{delay:d,getKey:l}=t;return new Promise((m,u)=>{var I,R;let p=(I=wa.get(this))==null?void 0:I.get(l(...n));if(p){let{timeoutId:D,resolve:G}=p;clearTimeout(D),G()}let _=setTimeout(()=>{if(a.state===3||a.state===4)return m();a.action(2,r.bind(this),n).catch(xa.bind(null,o)).then(m,u)},d);wa.has(this)?(R=wa.get(this))==null||R.set(l(...n),{timeoutId:_,resolve:m}):wa.set(this,new Map([[l(...n),{timeoutId:_,resolve:m}]]))})}return a.action(2,r.bind(this),n).catch(xa.bind(null,o))})}function rr(s){return J((i,e)=>function(...t){let r=typeof s=="function"?s.call(this,...t):s;if(r instanceof RegExp)return Promise.all(Pi.gets(this,r).map(n=>n.action(3,()=>Promise.resolve(),t))).then(()=>i.call(this,...t));let o=Pi.get(this,r);return o?o.action(3,i.bind(this),t).catch(xa.bind(null,e)):i.apply(this,t)})}var M={ERROR:"error",AUTOPLAY_FAILED:"autoplay-failed",KICKED_OUT:"kicked-out",REMOTE_USER_ENTER:"remote-user-enter",REMOTE_USER_EXIT:"remote-user-exit",REMOTE_AUDIO_AVAILABLE:"remote-audio-available",REMOTE_AUDIO_UNAVAILABLE:"remote-audio-unavailable",REMOTE_VIDEO_AVAILABLE:"remote-video-available",REMOTE_VIDEO_UNAVAILABLE:"remote-video-unavailable",AUDIO_VOLUME:"audio-volume",AUDIO_FRAME:"audio-frame",NETWORK_QUALITY:"network-quality",CONNECTION_STATE_CHANGED:"connection-state-changed",AUDIO_PLAY_STATE_CHANGED:"audio-play-state-changed",VIDEO_PLAY_STATE_CHANGED:"video-play-state-changed",SCREEN_SHARE_STOPPED:"screen-share-stopped",DEVICE_CHANGED:"device-changed",PUBLISH_STATE_CHANGED:"publish-state-changed",TRACK:"track",STATISTICS:"statistics",SEI_MESSAGE:"sei-message",CUSTOM_MESSAGE:"custom-message",VIDEO_DECODE_DOWNGRADE_STATE_CHANGED:"video-decode-downgrade-state-changed",LAYER_DATA:"layerData",FIRST_VIDEO_FRAME:"first-video-frame"},Sm=new Set([M.ERROR,M.AUTOPLAY_FAILED,M.KICKED_OUT,M.REMOTE_USER_ENTER,M.REMOTE_USER_EXIT,M.REMOTE_AUDIO_AVAILABLE,M.REMOTE_AUDIO_UNAVAILABLE,M.REMOTE_VIDEO_AVAILABLE,M.REMOTE_VIDEO_UNAVAILABLE,M.CONNECTION_STATE_CHANGED,M.PUBLISH_STATE_CHANGED,M.SCREEN_SHARE_STOPPED,M.DEVICE_CHANGED,M.FIRST_VIDEO_FRAME]);function sr(s){return s==="sub"?"auxiliary":s==="auxiliary"?"sub":"main"}function Go(s){return s===Tt.QOS_PREFERENCE_CLEAR?"detail":s===Tt.QOS_PREFERENCE_SMOOTH?"motion":""}var Ml={};ni(Ml,{bytes2ms:()=>ku,convertObjectNumberToInt:()=>Ks,copyProperties:()=>Mu,deepClone:()=>lr,deepMerge:()=>Ht,delay:()=>hi,fibonacci:()=>hr,formatedTime:()=>Fu,getConstructorName:()=>zs,getContainerFromElement:()=>Bu,getEnv:()=>Du,getInternalVersion:()=>Uu,getLoggerUrl:()=>li,getMuteStateFromFlag:()=>ui,getNetworkType:()=>Dc,getNumNetworkType:()=>ur,getReconnectionTimeout:()=>Ct,getStringByteLength:()=>Ys,getTurnServer:()=>Vu,getUint32Version:()=>In,getValueType:()=>Ae,getViewListFromView:()=>Qr,glog:()=>kc,ipv4ToUint32:()=>Xr,isArray:()=>Te,isAudioWorkletSupported:()=>xu,isBoolean:()=>he,isConstructor:()=>Jr,isEmpty:()=>jr,isFunction:()=>se,isLangChinese:()=>At,isMediaStreamTrack:()=>Pu,isNumber:()=>Y,isObject:()=>ut,isOverseaSdkAppId:()=>Qs,isPlainObject:()=>Qe,isPortrait:()=>Sn,isPromise:()=>Wi,isRemoteTrack:()=>wu,isString:()=>K,isUndefined:()=>g,loadImage:()=>zr,ms2bytes:()=>Lu,ms2samples:()=>Mc,performanceNow:()=>L,promiseAny:()=>qr,samples2ms:()=>Oc,setNetworkType:()=>Tn,stringify:()=>ht,stringifyIncludeValue:()=>En,throttlePromise:()=>An});var Pl={};ni(Pl,{getAbilityConfigUrl:()=>Yg,getScheduleDomain:()=>Wo,isNeedToSchedule:()=>Ua,scheduleProxy:()=>Pt,sendScheduleRequest:()=>Ll,setIsNeedToSchedule:()=>wt,setScheduleProxy:()=>Va});var kl=null,Ua=!0;typeof document!="undefined"&&document.head.insertAdjacentHTML("beforeend",Object.values(di).map(s=>`<link rel="dns-prefetch" href="https://${s}">`).join(`\r
52
+ `));function wt(s){he(s)&&s!==Ua&&(Ua=s,C.info(`setIsNeedToSchedule ${s}`))}E.on("28",()=>wt(!0));E.on("63",()=>wt(!0));E.on("84",()=>wt(!0));E.on("201",s=>{s.state==="RECONNECTING"&&wt(!0)});E.on("202",s=>{s.state==="RECONNECTING"&&wt(!0)});function zg(s,i,e){let t={totalCost:0,local:0,dns:0,tcp:0,tls:0,request:0,response:0};try{let r=performance.getEntriesByType("resource"),o=Rs(s,h.MAIN),n=Rs(s,h.BACKUP);for(let a of r)if(a.startTime>=e&&(a.name===o||a.name===n)&&a.transferSize>0){let d=a.name===o?h.MAIN:h.BACKUP,l=Math.round(a.duration),m=Math.round(a.domainLookupStart-a.startTime),u=a.redirectStart>0?Math.round(a.redirectEnd-a.redirectStart):0,p=a.fetchStart>0?Math.round(a.domainLookupStart-a.fetchStart):0,_=Math.round(a.domainLookupEnd-a.domainLookupStart),I=Math.round(a.requestStart-a.secureConnectionStart),R=Math.round(a.secureConnectionStart-a.connectStart),D=Math.round(a.responseStart-a.requestStart),G=Math.round(a.responseEnd-a.responseStart),te=[_,I,R,D,G];ee.uploadEvent({log:`stat-schedule-net:${l}(${m}(${u}->${p})->${te.join("->")}) ${d}`,userId:i}),t=k(v({},t),{totalCost:l,local:m,dns:_,tcp:R,tls:I,request:D,response:G});break}}catch(r){C.error("getScheduleDetailCost error",r)}return t}function Ll(l){return f(this,arguments,function*({userId:s,sdkAppId:i,useStringRoomId:e,roomId:t,userSig:r,version:o,frameWorkType:n,role:a,latencyLevel:d}){if(!Ua&&kl)return{isCached:!0,result:kl};let m={delta:0,count:[1,1],msg:[],detail:[]};try{let u=new FormData;u.append("userId",String(s)),u.append("sdkAppId",String(i)),u.append("isStrGroupId",String(e)),u.append("groupId",String(t)),u.append("sdkVersion",o),u.append("userSig",String(r)),a&&u.append("role",String(a)),d&&u.append("latencyLevel",String(d)),n&&u.append("frameWorkType",String(n));let p=L(),_=yield Zg(u,m,i);_.config&&(_.config.loggerDomain&&or(_.config.loggerDomain),he(_.config.scheduleCache)&&wt(!_.config.scheduleCache)),m.delta=L()-p;let I=zg(Number(i),s,p);return kl=_,{isCached:!1,result:_,detailCost:I}}catch(u){let p=Te(u)?u[0]:u,_=Y(p.code)?p.code:0,I=`schedule failed${p.message?`: ${p.message}`:""}`,R=new b({code:S.SCHEDULE_FAILED,extraCode:_,message:U({key:x.JOIN_ROOM_FAILED,data:{error:I,code:_}})});throw C.error(I,_),R}})}var Pt={main:"",backup:""};function Va(s){Te(s)?(Pt.main=s[0],Pt.backup=s[1]):Pt.main=s}function Rs(s,i=h.MAIN,e=!1){return`https://${Pt[i]||Wo(s,i,e)}/api/v1/config`}function Yg(s,i=h.MAIN){return`https://${Pt[i]||Wo(s,i)}/api/v1/trtcAutoConf`}function Wo(s,i=h.MAIN,e=!1){let t;return Qs(s)?e?t=i===h.MAIN?di.MAIN_OVERSEA_BACKUP:di.BACKUP_OVERSEA:t=i===h.MAIN?di.MAIN_OVERSEA:di.BACKUP_OVERSEA:t=i===h.MAIN?di.MAIN:di.BACKUP,t}function Kg(s,i,e){return new Promise((t,r)=>{mi({url:s,body:i,timeout:e.timeout,priority:"high"}).then(o=>{o.data.code===0?t(o.data.data):r({code:o.data.code,message:o.data.msg})}).catch(r)})}var Im=(s,i)=>Gt({retryFunction:Kg,settings:{retries:3,timeout:0},onError:i,onRetrying:s});function Zg(s,i,e){return new Promise((t,r)=>{let o=null;qr([Im(n=>i.count[0]=n+1,({error:n,retry:a,retriedCount:d,retryFuncArgs:l})=>{i.msg[0]=n.message,o||(d>=1&&(l[0]=Rs(e,h.MAIN,!0)),a())})(Rs(e,h.MAIN),s,{get timeout(){return hr(2+i.count[0])*1e3}}),Im(n=>i.count[1]=n+1,({error:n,retry:a,retriedCount:d,retryFuncArgs:l})=>{i.msg[1]=n.message,o||(d>=2&&(l[0]=Rs(e,h.BACKUP,!0)),a())})(Rs(e,h.BACKUP),s,{get timeout(){return hr(2+i.count[1])*1e3}})]).then(n=>{o=n,t(o)}).catch(r)})}var eT=s=>s.startsWith("data:application/octet-stream;base64,"),tT=s=>s.startsWith("file://"),Ba=class{constructor(){c(this,"_log");this._log=C.createLogger({id:"fd"})}download(i,e){return f(this,null,function*(){let{type:t="blob"}=e||{};try{let r=L(),o;if(se(fetch)?o=yield this.downloadWithFetch(i,t):o=yield this.downloadWithXHR(i,t),!o||!o.data)throw new Error("data is empty");let n=L()-r;return this._log.info(`downloaded: ${i}, return type: ${t}, cost: ${n}ms`),N.addSuccessEvent({key:522700,cost:L()-r}),o.data}catch(r){throw this._log.error(`failed to download: ${i}, error: ${r}`),N.addFailedEvent({key:522700,error:r}),r}})}downloadWithFetch(i,e){return f(this,null,function*(){this._log.info(`download with fetch: ${i}, return type: ${e}`);try{let t=yield fetch(i);if(!t.ok)throw new Error("network response was not ok");let r;return e==="arraybuffer"?r=yield t.arrayBuffer():r=yield t.blob(),{data:r}}catch(t){throw t}})}downloadWithXHR(i,e){return this._log.info(`download with xhr: ${i}, return type: ${e}`),new Promise((t,r)=>{let o=new XMLHttpRequest;o.open("GET",i,!0),o.responseType=e,o.onload=()=>{o.status===200||o.status===0&&o.response?t({data:o.response}):r(new Error("XHR failed"))},o.onerror=r,o.send(null)})}loadWasm(i,e){return f(this,null,function*(){this._log.info(`loadWasm ${i}, importObject: ${JSON.stringify(e)}`);let t=L(),r=null,o=null;if(se(WebAssembly.instantiateStreaming)&&!eT(i)&&!tT(i)&&se(fetch))try{let n=fetch(i);r=(yield WebAssembly.instantiateStreaming(n,e)).instance}catch(n){o=n}if(!r)try{let n=yield this.download(i,{type:"arraybuffer"});r=(yield WebAssembly.instantiate(n,e)).instance}catch(n){o=n}if(r){let n=L()-t;return this._log.info(`loadedWasm ${i}, cost: ${n}ms`),N.addSuccessEvent({key:522701,cost:n}),r}throw this._log.error(`failed to loadWasm ${i}, error: ${o}`),N.addFailedEvent({key:522701,error:o}),o})}};y([Ke({settings:{timeout:0,retries:3},onRetrying(i){this._log.warn(`download retrying: ${i}`)}})],Ba.prototype,"download",1);var Am=new Ba;function Cm({TRTC:s,room:i,errorModule:e,assetsPath:t}){return{TRTC:s,room:i,assetsPath:t,fileDownloader:Am,innerEmitter:E,constants:vc,environment:as,utils:Ml,eventLogger:ee,log:this.room.getLogger(),loggerManager:C,errorModule:e,kvStatManager:N,rtcDectection:jt,trtc:this,rx:Nl,enums:dd,schedule:Pl,clearStarted:(r,o)=>{let n=r.getAlias(),a=Pi.instances.get(this);if(a)if(o){let d=a.get(n+o);if(!d)return;d.started=!1}else a.forEach((d,l)=>{l.startsWith(n)&&(d.started=!1)})},startGetPCM:xo,createAudioNode:xd}}var Rm=(s,i)=>{let{emit:e}=s;return s.emit=(...t)=>{try{return e.apply(s,t)}catch(r){let o=U({key:x.CATCH_HANDLER_ERROR,data:{name:i,event:t[0]},addDocLink:!1});return C.warn(`${o}
93
53
 
94
- ${o.stack}`),!1}},i};var an=new WeakMap;function fE(i){let t=an.get(i);t&&(t.forEach(e=>clearTimeout(e)),an.delete(i))}function _E(i,t){return Ce((e,r)=>function(...o){let s=an.get(this);s||(s=new Map,an.set(this,s));let a=t(...o),d=s.get(a);if(!d||d<=0){e.apply(this,o);let h=setTimeout(()=>{var p;(p=an.get(this))==null||p.delete(a)},i);s.set(a,h)}else{clearTimeout(d);let h=window.setTimeout(()=>{var p;e.apply(this,o),(p=an.get(this))==null||p.delete(a)},i);s.set(a,h)}})}var gE="5.9.0-wasm.1";function Dt(...i){return Ce((t,e)=>function(...r){try{Fu.call(this,i,r,e,this._name)}catch(o){return Promise.reject(o)}return t.apply(this,r)})}function sf(...i){return Ce((t,e)=>function(...r){try{Fu.call(this,i,r,e,this._name)}catch(o){throw o}return t.apply(this,r)})}function Fu(i,t,e,r){if(rt(i))for(let o=0;o<i.length;o++)Bu.call(this,{rule:i[o],value:t[o],key:i[o].name,fnName:e,className:r});else Bu.call(this,{rule:i,value:t[0],key:i.name,fnName:e,className:r})}function Bu({rule:i,value:t,key:e,fnName:r,className:o}){function s(h){return{code:ne.INVALID_PARAMETER,extraCode:h,fnName:r,messageParams:{key:e,rule:i,value:t}}}if(L(t)){if(i.required)throw new oe(s(5001));if(L(i.defaultValue)){Ve(i.validate)&&i.validate.call(this,t,e,r,o,this);return}t=i.defaultValue}if(Array.isArray(i.type)){let h=!1;for(let p=0;p<i.type.length;p++)i.type[p]===null&&t===null&&(h=!0),Ve(i.type[p])&&t instanceof i.type[p]&&(h=!0),Ae(i.type[p])&&mt(t)===i.type[p].toLowerCase()&&(h=!0);if(!h)throw new oe({code:ne.INVALID_PARAMETER,extraCode:5002,fnName:r,messageParams:{key:e,rule:{type:i.type.map(p=>Is(p)?ra(p):Ae(p)?p:mt(p))},value:t}})}else if(!L(i.type)&&mt(t)!==i.type)throw new oe(s(5002));if(i.allowEmpty===!1){let h=Fe(t)&&(t===0||Number.isNaN(t)),p=Ae(t)&&t.trim()==="";if(h||p)throw new oe(s(5003))}if(i.notLessThanZero&&Fe(t)&&t<0)throw new oe(s(5006));if(!L(i.min)&&Fe(t)&&t<i.min)throw new oe(s(5007));if(!L(i.max)&&Fe(t)&&t>i.max)throw new oe(s(5008));if(Ae(i.instanceOf)){if(!t||t._name!==i.instanceOf)throw new oe(s(5004))}else if(Ve(i.instanceOf)&&!(t instanceof i.instanceOf))throw new oe(s(5004));if(Array.isArray(i.values)&&!i.values.includes(t))throw new oe(s(5005));let{properties:a}=i;Ft(a)&&lr(t)&&Object.keys(a).forEach(h=>{Bu.call(this,{rule:a[h],value:t&&t[h],key:`${h}`,fnName:r,className:o})});let{arrayItem:d}=i;Ft(d)&&rt(t)&&t.forEach((h,p)=>{Bu.call(this,{rule:d,value:h,key:`${e}[${p}]`,fnName:r,className:o})}),Ve(i.validate)&&i.validate.call(this,t,e,r,o,this)}function je(i={}){let{getRemoteId:t=()=>"",replaceArg:e,getKVReportKey:r,ignoreLog:o}=i;return Ce((s,a)=>function(...d){var y;function h(R,N,j){if(j&&j.includes(R))return"hided";if(e){let W=e(...d);if(d[W.argIndex]===N)return W.value}if(N===d||R in d)return N;try{return N instanceof HTMLElement?`id: ${N.id} type:${mt(N)}`:(JSON.stringify(N),N)}catch(W){return`type:${mt(N)}`}}let p=this._log||V;if(o!=null&&o(...d))return s.apply(this,d);d.length>0?p.info(`${a}() ${JSON.stringify(d,(R,N)=>h(R,N,["userSig","privateMapKey"]))}`):p.info(`${a}()`);let T=r?r(...d):Bd[a];try{let R=s.apply(this,d),N=ge();return Li(R)?R.then(j=>(p.info(`${a}() success ${t.call(this,...d)}`),X.addSuccessEvent({key:T,cost:ge()-N}),j)).catch(j=>{var Ie;j=oe.convertFrom.call(this,j,a,d.length===1?d[0]:d);let W=j.extraCode||j.code,F=(Ie=j.message)!=null&&Ie.includes(W)?"":` code:${W}`;throw p.error(`${a}() failed ${t.call(this,...d)} ${j}${F} params: ${JSON.stringify(d,h)}`),X.addFailedEvent({key:T,error:j}),j}):(X.addSuccessEvent({key:T}),R)}catch(R){R=oe.convertFrom.call(this,R,a);let N=R.extraCode||R.code,j=(y=R.message)!=null&&y.includes(N)?"":` code:${N}`;throw p.error(`${a}() failed ${R}${j} params: ${JSON.stringify(d,h)}`),X.addFailedEvent({key:T,error:R}),R}})}var $u=i=>Ce((t,e)=>function(r,o){return v(this,null,function*(){let s=this._plugins.get(r);if(!s)throw this._log.error(`plugin ${String(r)} is not found`),new oe({code:ne.OPERATION_ABORT,message:`plugin ${String(r)} is not found`,fnName:e});if(Ve(s.constructor.isSupported)&&!s.constructor.isSupported())throw this._log.error(`plugin ${String(r)} is not supported`),new oe({code:ne.ENV_NOT_SUPPORTED,message:`plugin ${String(r)} is not supported`,extraCode:5210,fnName:e});return Fu.call(this,s.getValidateRule(i),[o],e,"TRTC"),t.call(this,s,o)})});var Hu=0,nf=class{constructor(t,e){l(this,"player");l(this,"publisher");l(this,"mixInput");this.mixInput=new Gs(e),t.url?(this.player=new Audio(t.url),this.player.crossOrigin="anonymous",this.publisher=new Audio(t.url),this.publisher.crossOrigin="anonymous",this.mixInput.replaceSource(this.publisher)):this.mixInput.replaceSource(t.track),this.mixInput.connect()}updateSettings(t){!this.player||(L(t.volume)||(this.volume=t.volume),L(t.loop)||(this.loop=t.loop),L(t.playbackRate)||(this.playbackRate=t.playbackRate))}updateListener(t){if(!!this.player){if(t.onDurationChange){let{onDurationChange:e}=t;this.player.ondurationchange=r=>{e(r.target.duration)}}if(t.onTimeUpdate){let e=t.onTimeUpdate,{player:r}=this;r.ontimeupdate=()=>{e(r.currentTime,r.duration)}}t.onEnded&&(this.player.onended=t.onEnded)}}reset(){this.seek(0),this.mixInput.connect()}seek(t){!this.player||t<0&&t>this.player.duration||(this.player.currentTime=t,this.publisher.currentTime=t)}play(){var t,e;return(t=this.publisher)==null||t.play(),(e=this.player)==null?void 0:e.play()}pause(){var t,e;(t=this.player)==null||t.pause(),(e=this.publisher)==null||e.pause()}stop(){var t;(t=this.player)==null||t.pause(),this.mixInput.disconnect()}setOperation(t){t==="pause"&&this.pause(),t==="resume"&&(this.pause(),this.play()),t==="stop"&&(this.pause(),this.seek(0))}set volume(t){!this.player||!this.publisher||(this.player.volume=t,this.publisher.volume=t)}set loop(t){!this.player||!this.publisher||(this.player.loop=t,this.publisher.loop=t)}set playbackRate(t){!this.player||!this.publisher||(this.player.playbackRate=t,this.publisher.playbackRate=t)}};function cn(i,t){if(t&&typeof t!="function")throw new oe({code:ne.INVALID_PARAMETER,message:`start audioMixer plugin: param ${i} should be a function.`})}var dn=class{constructor(t){this.core=t;l(this,"log");l(this,"mixedMusicMap",new Map);l(this,"cacheMusicMap",new Map);Hu=Hu+1,this.log=t.log.createChild({id:`${this.getAlias()}${Hu}`}),this.log.info(`[audioMixer] created id=${this.getAlias()}${Hu}`),this.core=t}getName(){return dn.Name}getAlias(){return"ax"}getGroup(t){return t==null?void 0:t.id}getValidateRule(t){switch(t){case"start":return dn.startValidateRule;case"update":return dn.updateValidateRule;case"stop":return dn.stopValidateRule}}start(t){return v(this,null,function*(){let{room:e}=this.core;this.log.info(`add music source, id: ${t.id} url: ${t.url}, track: ${t.track}`);let{id:r,url:o}=t;if(this.mixedMusicMap.has(r))return;let s=this.cacheMusicMap.get(r);s?t.url?s.reset():(s.mixInput.replaceSource(t.track),s.mixInput.connect()):(s=new nf(t,e.audioManager),this.cacheMusicMap.set(r,s)),s.updateListener(t),s.updateSettings(t),yield s.play(),this.mixedMusicMap.set(r,s),this.log.info(`start mix audio track ${r} success.`),X.addEnum({key:502700,value:3}),this.kvUpload(t)})}update(t){return v(this,null,function*(){let{id:e,operation:r,seekFrom:o,playbackRate:s}=t;this.log.info(`update music source, ${JSON.stringify(t)}`);let a=this.mixedMusicMap.get(e);if(!a){this.log.warn(`update music source failed, music id: ${e} not found.`);return}a.updateSettings(t),a.updateListener(t),L(r)||a.setOperation(r),L(o)||a.seek(o),this.kvUpload(t)})}stop(e){return v(this,arguments,function*({id:t}){var r;this.mixedMusicMap.has(t)&&(this.log.info(`remove music source, music id: ${t}`),(r=this.mixedMusicMap.get(t))==null||r.stop(),this.mixedMusicMap.delete(t)),t==="*"&&this.destroyAllMusic()})}kvUpload(t){let{track:e,loop:r,volume:o,playbackRate:s,operation:a,seekFrom:d,onTimeUpdate:h,onDurationChange:p,onEnded:T}=t;e&&X.addCount({key:502711}),r&&X.addCount({key:502703}),o&&X.addCount({key:502704}),s&&X.addCount({key:502705}),a&&X.addCount({key:502706}),d&&X.addCount({key:502707}),typeof h!="function"&&X.addCount({key:502709}),typeof T!="function"&&X.addCount({key:502710}),typeof p!="function"&&X.addCount({key:502708})}destroyAllMusic(){this.log.info("destroy all music source."),this.mixedMusicMap.forEach((t,e)=>this.stop({id:e}))}destroyAllCache(){this.log.info("destroy all music cache."),this.cacheMusicMap.clear()}destroy(){this.log.info("destroy audio mixer plugin."),this.destroyAllMusic(),this.destroyAllCache()}},io=dn;l(io,"startValidateRule",{name:"options",required:!0,type:"object",properties:{id:{type:"string",required:!0},url:{type:"string",required:!1},track:{required:!1},loop:{type:"boolean"},volume:{type:"number"}},validate(t,e,r){if(t.url&&t.url!=="*"){let o=t.url.split("?")[0],s=["mp3","ogg","wav","flac"],a=o.split(".").pop(),d=s.indexOf(a)>=0,h=o.startsWith("blob"),p=o.startsWith("data");if(!(d||h||p))throw new oe({code:ne.INVALID_PARAMETER,message:"start audioMixer plugin: music url is invalid, please check your file format.",fnName:r})}if(!t.url&&!t.track)throw new oe({code:ne.INVALID_PARAMETER,message:"start audioMixer plugin: param url or track is required.",fnName:r});cn("onTimeUpdate",t.onTimeUpdate),cn("onEnded",t.onEnded),cn("onDurationChange",t.onDurationChange)}}),l(io,"updateValidateRule",{name:"options",required:!0,type:"object",properties:{id:{type:"string",required:!0},loop:{type:"boolean"},volume:{type:"number"},seekFrom:{type:"number"},operation:{type:"string",values:["pause","resume","stop"]}},validate(t,e,r){cn("onTimeUpdate",t.onTimeUpdate),cn("onEnded",t.onEnded),cn("onDurationChange",t.onDurationChange)}}),l(io,"stopValidateRule",{name:"options",type:"object",required:!0,properties:{id:{type:"string",required:!0}}}),l(io,"Name","AudioMixer");var Wu=0,af,un=class{constructor(t){this.core=t;l(this,"log");l(this,"audioContext",jt("denoiser"));l(this,"workletNode");Wu=Wu+1,this.log=t.log.createChild({id:`${this.getAlias()}${Wu}`}),this.log.info(`[audioDenoiser] created id=${this.getAlias()}${Wu}`),t.assetsPath&&this.preload(`${t.assetsPath}/denoiser-wasm.js`)}static startValidateRule(t){return{name:"options",required:!0,type:"object",properties:{sdkAppId:{type:"number",required:!0},userId:{type:"string",required:!0},userSig:{type:"string",required:!0}},validate(e,r,o,s){if(!t.room.audioManager.hasAudioTrack)throw new oe({code:ne.INVALID_OPERATION,extraCode:5106,fnName:o})}}}preload(t){return af||(af=this.doPreload(t)),af}doPreload(t){return v(this,null,function*(){let e=yield this.core.fileDownloader.download(t,{type:"blob"}),r=URL.createObjectURL(e);try{yield Po(this.audioContext,r)}finally{URL.revokeObjectURL(r)}})}getName(){return un.Name}getAlias(){return"ad"}getGroup(){return`AIDenoiser_${Date.now()}`}getValidateRule(t){switch(t){case"start":return un.startValidateRule(this.core);case"update":return un.updateValidateRule;case"stop":return un.stopValidateRule}}start(t){return v(this,null,function*(){let{room:e}=this.core;if(yield this.preload(`${t.assetsPath}/denoiser-wasm.js`),!this.workletNode){let r=String(Date.now()).slice(0,-3),{auth:o,sign:s,status:a,message:d}=yield Xy(me(J({},t),{timestamp:r}));if(!o)throw this.log.info(`RTCAIDenoiser: ${t.userId} auth result: ${o}. Message: ${d}`),new oe({code:ne.INVALID_PARAMETER,message:d});this.workletNode=new AudioWorkletNode(this.audioContext,"trtc-denoiser-processor",{numberOfInputs:1,numberOfOutputs:1}),this.workletNode.port.postMessage({type:"init",data:{sdkAppId:String(t.sdkAppId),userId:t.userId,timestamp:r,sign:s,status:a}}),this.workletNode.port.onmessage=h=>{let{data:p}=h;p.type==="cost"&&this.log.debug(`[RTCAIDenoiser] ${p.value}`)}}this.workletNode.port.postMessage({type:"enable"}),e.audioManager.addDenoiser(this.workletNode),e.sendAbilityStatus({ai_denoise:1})})}update(){return v(this,null,function*(){})}stop(){return v(this,null,function*(){if(!this.workletNode)return;let{room:t}=this.core;this.workletNode.port.postMessage({type:"disable"}),yield t.audioManager.removeDenoiser(this.workletNode)})}destroy(){!this.workletNode||(this.workletNode.port.onmessage=null)}},Zo=un;l(Zo,"updateValidateRule",{type:"object"}),l(Zo,"stopValidateRule",{type:"object"}),l(Zo,"Name","AIDenoiser");function Jy(i,t=D.MAIN){return`https://${Pr[t]||ec(i,t)}/api/v1/audioAiAuth`}function Xy(o){return v(this,arguments,function*({sdkAppId:i,userId:t,userSig:e,timestamp:r}){let a=`${Jy(i)}?sdkAppId=${i}&userId=${t}&userSig=${e}&timestamp=${r}`,d=yield fetch(a),{data:{errCode:h,errMsg:p,sign:T,status:y}}=yield d.json();if(y==="1")return{auth:!0,sign:T,status:y,message:p};let R="Init RTCAIDenoiser failed.",N="";switch(h){case 1:N="Please check your params.";break;case 2:N="You need to buy packages. Refer to: https://cloud.tencent.com/document/product/647/44247";break;case 3:N="Server is invalid. Please contact our engineer. ";break;case 4:N="Your packages is not active. Refer to: https://cloud.tencent.com/document/product/647/44247";break;case 5:N="Your packages is expired. Refer to: https://cloud.tencent.com/document/product/647/44247";break;case 6:N="Your version is not supported.";break}return{auth:!1,status:y,message:p?`${R} Reason: ${p}. ${N}`:`${R}, ${N}`}})}var EE=Pi(Hi(),1);var cf=class extends EE.EventEmitter{constructor(){super();this.state="nominal";this.onPressureChange=this.onPressureChange.bind(this)}get stateNum(){switch(this.state){case"nominal":return 1;case"fair":return 2;case"serious":return 3;case"critical":return 4}}start(){return v(this,null,function*(){if(!this.observer)try{"PressureObserver"in window&&!ft&&(this.observer=new PressureObserver(this.onPressureChange),yield this.observer.observe("cpu",{sampleInterval:2e3}))}catch(e){Le.uploadEvent({log:"stat-pressure-detector-start-failed",error:e})}})}onPressureChange(e){let r=this.stateNum,o=e[e.length-1];this.state=o.state,(this.stateNum>3||r>3)&&V.info(`${o.source}: ${o.state}`),this.emit("state-changed",{type:o.source,state:this.state})}destroy(){var e;try{(e=this.observer)==null||e.disconnect(),this.observer=null}catch(r){Le.uploadEvent({log:"stat-pressure-detector-destroy-failed",error:r})}}},Qy=new cf,df=Qy;function Yy([i,t]){let e=t.byteLength,r=parseInt(String(e/255),10),o=e%255,s=[];s.push(0,0,0,1,6,i);for(let d=0;d<r;d++)s.push(255);s.push(o);let a=new DataView(t);return s.push(...new Uint8Array(a.buffer)),s.push(128),new Lo(new DataView(new Uint8Array(s).buffer),!0)}function Zy(i){return i.type==="empty"||i.data.byteLength===0}function Ky(i){return i.getInt32(0)===1&&i.getInt8(4)===6}function eA(i){let t=0,e=0,r=new DataView(i);for(let o=0;o<i.byteLength;o++)switch(r.getUint8(o)){case 0:t++;break;case 1:(t===2||t===3)&&e++,t=0;break;default:t=0;break}return e}function uf({frame:i,seiMessageList:t}){if(!t||t.length===0||i.data.byteLength===0)return i;let e=eA(i.data),r=9-e;if(r<=0)return i;let o=t.splice(0,r).reverse().map(Yy),s=o.reduce((T,y)=>T+y.dataView.byteLength,0),a=new ArrayBuffer(s+i.data.byteLength),d=new DataView(a),h=new DataView(i.data),p=0;for(let T=0;T<o.length;T++)for(let y=0;y<o[T].dataView.byteLength;y++)d.setInt8(p++,o[T].dataView.getInt8(y));for(let T=0;T<i.data.byteLength;T++)d.setInt8(p++,h.getInt8(T));return i.data=a,i}function lf({frame:i,onSEI:t}){try{let e=new DataView(i.data);if(Zy(i)||!Ky(e))return i;let r=[],o=0,s=-1,a=-1;for(let d=0;d<i.data.byteLength;d++){let h=e.getUint8(d);if(h===0)o++;else if(h===1){if(o===2||o===3){let p=d-o;if(s===-1?s=p:a===-1&&(a=p,r.push(new Lo(new DataView(e.buffer.slice(s,a)))),s=p,a=-1),!(e.getUint8(d+1)===6)){i.data=e.buffer.slice(p);break}}o=0}else o=0}t==null||t(r.reverse())}catch(e){}return i}var pf=0,mf=class{constructor(t){this.core=t;l(this,"log");l(this,"_seiMessageList",[]);l(this,"_smallSeiMessageList",[]);l(this,"_subStreamSeiMessageList",[]);pf++,this.log=t.log.createChild({id:`${this.getAlias()}${pf}`}),this.log.info(`[sei] created id=${this.getAlias()}${pf}`),this.core=t,this.encode=this.encode.bind(this),this.decode=this.decode.bind(this)}encode({frame:t,mediaType:e}){try{let r=e===8?this._smallSeiMessageList:e===2?this._subStreamSeiMessageList:this._seiMessageList;return uf({frame:t,seiMessageList:r})}catch(r){this.log.warn(r)}return t}decode({frame:t,track:e}){return lf({frame:t,onSEI:r=>{r.forEach(o=>{this.core.trtc.emit(re.SEI_MESSAGE,{seiPayloadType:o.seiPayloadType,data:o.seiPayload.buffer,userId:e.userId,streamType:e.mediaType===2?"sub":"main"})})}})}destroy(){this.log.debug("destory"),this.stop(),delete this.core}getValidateRule(t){switch(t){case"start":return{type:"object"};case"update":return{type:"object"};case"stop":return{type:"object"}}}start(){this.core.room.videoManager.addEncodeProcessor({processor:xa?this.encode:uf,type:2}),this.core.room.videoManager.addDecodeProcessor({processor:xa?this.decode:lf,type:2})}stop(){this.core.room.videoManager.removeEncodeProcessor({type:2}),this.core.room.videoManager.removeDecodeProcessor({type:2})}update({buffer:t,options:e}){var s;let r=[e.seiPayloadType,t],o=!!e.small;e.toSubStream?this._subStreamSeiMessageList.push(r):(this._seiMessageList.push(r),o&&this._smallSeiMessageList.push(r)),(s=this.core.room.scriptTransformWorker)==null||s.postMessage({type:"sei",data:r,isMain:!e.toSubStream,small:o})}getName(){return mf.Name}getAlias(){return"sei"}getGroup(){return"sei"}},ln=mf;l(ln,"autoStart",!0),l(ln,"Name","SEI");function hf({frame:i,onDump:t}){return t==null||t(),i}function ff({frame:i,onDump:t}){return t==null||t(),i}var TE={"play() error: NotAllowedError:":{tips:i=>i.includes("main <video>")||i.includes("main <audio>")?"Remote stream auto play is restricted and playback fails":"Local stream playback failure, generally only occurs in Android WeChat devices, no need to handle",color:"red",class:"red"},"updateStream() try to recover local stream":{tips:"Device acquisition exception, automatic recovery is in progress"},"updateStream() recover local stream successfully":{tips:"Device acquisition exception, automatic recovery is successful"},"updateStream() failed to recover local stream":{tips:"Device acquisition exception, automatic recovery failed"},"main stream - video track is muted":{tips:"Indicates that the received video data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - audio track is muted":{tips:"Indicates that the received audio data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"auxiliary stream - video track is muted":{tips:"Indicates that the received screen sharing data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - video track is unable to provide media output":{tips:"Indicates that the received video data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - audio track is unable to provide media output":{tips:"Indicates that the received audio data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"auxiliary stream - video track is unable to provide media output":{tips:"Indicates that the received screen sharing data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - video track is unmuted":{tips:"Received enough playback video data"},"main stream - audio track is unmuted":{tips:"Received enough playback audio data"},"auxiliary stream - video track is unmuted":{tips:"Received enough playback screen sharing data"},"main stream - audio player track is ended":{tips:"Remote audio track stopped"},"main stream - video player track is ended":{tips:"Remote video track stopped"},"auxiliary stream - video player track is ended":{tips:"Received enough playback screen sharing data"},"stream - video track is muted":{tips:"Camera capture is paused, usually due to the device being occupied by other applications or the browser media permission being revoked. The client needs to re-capture.",color:"orange"},"stream - video track is unable to provide media output":{tips:"The camera acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked, and the customer needs to re-acquire. SDK v4.11.4+ will automatically resume acquisition without customer intervention",color:"orange"},"video track is unable to provide media output":{tips:i=>i.includes("\u2193")?"The remote track is temporarily unable to decode data, which may be caused by network fluctuations":"The camera acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked. The SDK will automatically resume the acquisition.",color:"orange"},"stream - video player track is ended":{tips:"The camera acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"video player track is ended":{tips:"The camera acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"stream - audio track is muted":{tips:"Microphone capture is paused, usually due to the device being occupied by other applications or the browser media permission being revoked. The client needs to re-capture.",color:"orange"},"audio track is unable to provide media output":{tips:i=>i.includes("\u2193")?"The remote track is temporarily unable to decode data, which may be caused by network fluctuations":"Microphone acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked. The SDK will automatically resume the acquisition.",color:"orange"},"stream - audio track is unable to provide media output":{tips:"The microphone acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked. The SDK will automatically resume the acquisition.",color:"orange"},"stream - audio player track is ended":{tips:"The microphone acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"audio player track is ended":{tips:"The microphone acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"is adding audio track to current published local stream":{tips:"add audio track",color:"orange"},"is removing audio track from current published local stream":{tips:"remove audio track",color:"orange"},"is removing video track from current published local stream":{tips:"remove video track",color:"orange"},"is adding video track to current published local stream":{tips:"add video track",color:"orange"},"is replacing audio track to current published local main stream":{tips:"replace audio track",color:"orange"},"is replacing video track to current published local main stream":{tips:"replace video track",color:"orange"},"downlink network quality change":{tips:"Downstream network quality change: 1: excellent, 2: good, 3: average, 4: poor, 5: extremely poor"},"uplink network quality change":{tips:"Upstream network quality change: 1: excellent, 2: good, 3: average, 4: poor, 5: extremely poor"},"localStream mute video":{tips:"mute upstream video stream",color:"orange"},"localStream unmute video":{tips:"unmute upstream video stream",color:"orange"},"localStream mute audio":{tips:"mute upstream audio stream",color:"orange"},"localStream unmute audio":{tips:"unmute upstream audio stream",color:"orange"},"black detected":{tips:"Detect black screen, which means fps = 0. It is usually caused by network, and the network will be recovered after a while. If the network is normal but has not been restored, it is an abnormal situation."},'main stream start to play with options: {"muted":true}':{tips:"Play the remote stream in silent mode. Generally, the remote stream does not need to be played in silent mode. You need to confirm whether the parameters passed in the client stream.play API call are correct.",color:"orange"},"main stream - audio player is starting playing":{tips:"Remote stream audio playback success",color:"#0dd90d",class:"success"},"main stream - video player is starting playing":{tips:"Remote stream video playback success",color:"#0dd90d",class:"success"},"video player is playing":{tips:"Local video playback success",color:"#0dd90d",class:"success"},"audio player is playing":{tips:"Local audio playback success",color:"#0dd90d",class:"success"},"stream - video player is starting playing":{tips:"Local video playback success",color:"#0dd90d",class:"success"},"stream - audio player is starting playing":{tips:"Local audio playback success",color:"#0dd90d",class:"success"},"switch camera success":{tips:"Switch camera success",color:"#0dd90d",class:"success"},"switch microphone success":{tips:"Switch microphone success",color:"#0dd90d",class:"success"},gotStream:{tips:"Local stream capture success"},"local stream is published successfully":{tips:"Publish success",color:"#0dd90d",class:"success"},"encoderImplementation change to OpenH264":{tips:"Use software encoding"},"encoderImplementation change to ExternalEncoder":{tips:"Use hardware encoding"},"getUserMedia with constraints":{tips:"Start media (camera/microphone) capture"},"getDisplayMedia with constraints":{tips:"Start screen sharing capture"},"client-banned":{tips:"Kicked out of the room",color:"red",class:"red",textColor:"#fff"},user_timeout:{tips:"The backend is too long without receiving SDK heartbeat, which is usually caused by the JS thread being blocked for a long time. If the reproduction probability is high, the application browser Performance tool analyzes where the JS thread is blocked.",color:"red",class:"red",textColor:"#fff"},"schedule failed":{tips:"Signaling request failed, does not affect the normal room entry process, SDK will connect to the default signaling domain."},"updateStream() video flag is true, but no camera detected, set video to false":{tips:"When trying to resume camera acquisition, the camera acquisition is not resumed because it is detected that there is no camera.",color:"orange",class:"orange",textColor:"#fff"},"qualityLimitationReason change to bandwidth":{tips:"bandwidth estimation is not enough to limit the quality of the encoding, which may cause the code rate, frame rate, and resolution to be lowered.",color:"orange",class:"orange",textColor:"#fff"},"qualityLimitationReason change to cpu":{tips:"cpu load is too high to limit the quality of the encoding, which may cause the code rate, frame rate, and resolution to be lowered.",color:"orange",class:"orange",textColor:"#fff"},"visibility change: hidden":{tips:"User page switched to backend, in mobile devices, this will cause the device to pause the capture, and it will be restored when the user switches backend to the frontend.",color:"orange",class:"orange",textColor:"#fff"},"visibility change: visible":{tips:"User page switched to frontend",color:"orange",class:"orange",textColor:"#fff"},"main stream - audio player is paused":{tips:`The remote stream audio playback is paused, which usually has two possibilities:
54
+ ${r.stack}`),!1}},s};var ys=new WeakMap;function ym(s){let i=ys.get(s);i&&(i.forEach(e=>clearTimeout(e)),ys.delete(s))}function bm(s,i){return J((e,t)=>function(...r){let o=ys.get(this);o||(o=new Map,ys.set(this,o));let n=i(...r),a=o.get(n);if(!a||a<=0){e.apply(this,r);let d=setTimeout(()=>{var l;(l=ys.get(this))==null||l.delete(n)},s);o.set(n,d)}else{clearTimeout(a);let d=window.setTimeout(()=>{var l;e.apply(this,r),(l=ys.get(this))==null||l.delete(n)},s);o.set(n,d)}})}var Nm="5.9.0-wasm.11";function He(...s){return J((i,e)=>function(...t){try{Ha.call(this,s,t,e,this._name)}catch(r){return Promise.reject(r)}return i.apply(this,t)})}function wl(...s){return J((i,e)=>function(...t){try{Ha.call(this,s,t,e,this._name)}catch(r){throw r}return i.apply(this,t)})}function Ha(s,i,e,t){if(Te(s))for(let r=0;r<s.length;r++)Fa.call(this,{rule:s[r],value:i[r],key:s[r].name,fnName:e,className:t});else Fa.call(this,{rule:s,value:i[0],key:s.name,fnName:e,className:t})}function Fa({rule:s,value:i,key:e,fnName:t,className:r}){function o(d){return{code:V.INVALID_PARAMETER,extraCode:d,fnName:t,messageParams:{key:e,rule:s,value:i}}}if(g(i)){if(s.required)throw new w(o(5001));if(g(s.defaultValue)){se(s.validate)&&s.validate.call(this,i,e,t,r,this);return}i=s.defaultValue}if(Array.isArray(s.type)){let d=!1;for(let l=0;l<s.type.length;l++)s.type[l]===null&&i===null&&(d=!0),se(s.type[l])&&i instanceof s.type[l]&&(d=!0),K(s.type[l])&&Ae(i)===s.type[l].toLowerCase()&&(d=!0);if(!d)throw new w({code:V.INVALID_PARAMETER,extraCode:5002,fnName:t,messageParams:{key:e,rule:{type:s.type.map(l=>Jr(l)?zs(l):K(l)?l:Ae(l))},value:i}})}else if(!g(s.type)&&Ae(i)!==s.type)throw new w(o(5002));if(s.allowEmpty===!1){let d=Y(i)&&(i===0||Number.isNaN(i)),l=K(i)&&i.trim()==="";if(d||l)throw new w(o(5003))}if(s.notLessThanZero&&Y(i)&&i<0)throw new w(o(5006));if(!g(s.min)&&Y(i)&&i<s.min)throw new w(o(5007));if(!g(s.max)&&Y(i)&&i>s.max)throw new w(o(5008));if(K(s.instanceOf)){if(!i||i._name!==s.instanceOf)throw new w(o(5004))}else if(se(s.instanceOf)&&!(i instanceof s.instanceOf))throw new w(o(5004));if(Array.isArray(s.values)&&!s.values.includes(i))throw new w(o(5005));let{properties:n}=s;Qe(n)&&ut(i)&&Object.keys(n).forEach(d=>{Fa.call(this,{rule:n[d],value:i&&i[d],key:`${d}`,fnName:t,className:r})});let{arrayItem:a}=s;Qe(a)&&Te(i)&&i.forEach((d,l)=>{Fa.call(this,{rule:a,value:d,key:`${e}[${l}]`,fnName:t,className:r})}),se(s.validate)&&s.validate.call(this,i,e,t,r,this)}function le(s={}){let{getRemoteId:i=()=>"",replaceArg:e,getKVReportKey:t,ignoreLog:r}=s;return J((o,n)=>function(...a){var u;function d(p,_,I){if(I&&I.includes(p))return"hided";if(e){let R=e(...a);if(a[R.argIndex]===_)return R.value}if(_===a||p in a)return _;try{return _ instanceof HTMLElement?`id: ${_.id} type:${Ae(_)}`:(JSON.stringify(_),_)}catch(R){return`type:${Ae(_)}`}}let l=this._log||C;if(r!=null&&r(...a))return o.apply(this,a);a.length>0?l.info(`${n}() ${JSON.stringify(a,(p,_)=>d(p,_,["userSig","privateMapKey"]))}`):l.info(`${n}()`);let m=t?t(...a):qn[n];try{let p=o.apply(this,a),_=L();return Wi(p)?p.then(I=>(l.info(`${n}() success ${i.call(this,...a)}`),N.addSuccessEvent({key:m,cost:L()-_}),I)).catch(I=>{var G;I=w.convertFrom.call(this,I,n,a.length===1?a[0]:a);let R=I.extraCode||I.code,D=(G=I.message)!=null&&G.includes(R)?"":` code:${R}`;throw l.error(`${n}() failed ${i.call(this,...a)} ${I}${D} params: ${JSON.stringify(a,d)}`),N.addFailedEvent({key:m,error:I}),I}):(N.addSuccessEvent({key:m}),p)}catch(p){p=w.convertFrom.call(this,p,n);let _=p.extraCode||p.code,I=(u=p.message)!=null&&u.includes(_)?"":` code:${_}`;throw l.error(`${n}() failed ${p}${I} params: ${JSON.stringify(a,d)}`),N.addFailedEvent({key:m,error:p}),p}})}var $a=s=>J((i,e)=>function(t,r){return f(this,null,function*(){let o=this._plugins.get(t);if(!o)throw this._log.error(`plugin ${String(t)} is not found`),new w({code:V.OPERATION_ABORT,message:`plugin ${String(t)} is not found`,fnName:e});if(se(o.constructor.isSupported)&&!o.constructor.isSupported())throw this._log.error(`plugin ${String(t)} is not supported`),new w({code:V.ENV_NOT_SUPPORTED,message:`plugin ${String(t)} is not supported`,extraCode:5210,fnName:e});return Ha.call(this,o.getValidateRule(s),[r],e,"TRTC"),i.call(this,o,r)})});var Ga=0,xl=class{constructor(i,e){c(this,"player");c(this,"publisher");c(this,"mixInput");this.mixInput=new ps(e),i.url?(this.player=new Audio(i.url),this.player.crossOrigin="anonymous",this.publisher=new Audio(i.url),this.publisher.crossOrigin="anonymous",this.mixInput.replaceSource(this.publisher)):this.mixInput.replaceSource(i.track),this.mixInput.connect()}updateSettings(i){this.player&&(g(i.volume)||(this.volume=i.volume),g(i.loop)||(this.loop=i.loop),g(i.playbackRate)||(this.playbackRate=i.playbackRate))}updateListener(i){if(this.player){if(i.onDurationChange){let{onDurationChange:e}=i;this.player.ondurationchange=t=>{e(t.target.duration)}}if(i.onTimeUpdate){let e=i.onTimeUpdate,{player:t}=this;t.ontimeupdate=()=>{e(t.currentTime,t.duration)}}i.onEnded&&(this.player.onended=i.onEnded)}}reset(){this.seek(0),this.mixInput.connect()}seek(i){this.player&&(i<0&&i>this.player.duration||(this.player.currentTime=i,this.publisher.currentTime=i))}play(){var i,e;return(i=this.publisher)==null||i.play(),(e=this.player)==null?void 0:e.play()}pause(){var i,e;(i=this.player)==null||i.pause(),(e=this.publisher)==null||e.pause()}stop(){var i;(i=this.player)==null||i.pause(),this.mixInput.disconnect()}setOperation(i){i==="pause"&&this.pause(),i==="resume"&&(this.pause(),this.play()),i==="stop"&&(this.pause(),this.seek(0))}set volume(i){!this.player||!this.publisher||(this.player.volume=i,this.publisher.volume=i)}set loop(i){!this.player||!this.publisher||(this.player.loop=i,this.publisher.loop=i)}set playbackRate(i){!this.player||!this.publisher||(this.player.playbackRate=i,this.publisher.playbackRate=i)}};function bs(s,i){if(i&&typeof i!="function")throw new w({code:V.INVALID_PARAMETER,message:`start audioMixer plugin: param ${s} should be a function.`})}var ri=class ri{constructor(i){this.core=i;c(this,"log");c(this,"mixedMusicMap",new Map);c(this,"cacheMusicMap",new Map);Ga=Ga+1,this.log=i.log.createChild({id:`${this.getAlias()}${Ga}`}),this.log.info(`[audioMixer] created id=${this.getAlias()}${Ga}`),this.core=i}getName(){return ri.Name}getAlias(){return"ax"}getGroup(i){return i==null?void 0:i.id}getValidateRule(i){switch(i){case"start":return ri.startValidateRule;case"update":return ri.updateValidateRule;case"stop":return ri.stopValidateRule}}start(i){return f(this,null,function*(){let{room:e}=this.core;this.log.info(`add music source, id: ${i.id} url: ${i.url}, track: ${i.track}`);let{id:t,url:r}=i;if(this.mixedMusicMap.has(t))return;let o=this.cacheMusicMap.get(t);o?i.url?o.reset():(o.mixInput.replaceSource(i.track),o.mixInput.connect()):(o=new xl(i,e.audioManager),this.cacheMusicMap.set(t,o)),o.updateListener(i),o.updateSettings(i),yield o.play(),this.mixedMusicMap.set(t,o),this.log.info(`start mix audio track ${t} success.`),N.addEnum({key:502700,value:3}),this.kvUpload(i)})}update(i){return f(this,null,function*(){let{id:e,operation:t,seekFrom:r,playbackRate:o}=i;this.log.info(`update music source, ${JSON.stringify(i)}`);let n=this.mixedMusicMap.get(e);if(!n){this.log.warn(`update music source failed, music id: ${e} not found.`);return}n.updateSettings(i),n.updateListener(i),g(t)||n.setOperation(t),g(r)||n.seek(r),this.kvUpload(i)})}stop(e){return f(this,arguments,function*({id:i}){var t;this.mixedMusicMap.has(i)&&(this.log.info(`remove music source, music id: ${i}`),(t=this.mixedMusicMap.get(i))==null||t.stop(),this.mixedMusicMap.delete(i)),i==="*"&&this.destroyAllMusic()})}kvUpload(i){let{track:e,loop:t,volume:r,playbackRate:o,operation:n,seekFrom:a,onTimeUpdate:d,onDurationChange:l,onEnded:m}=i;e&&N.addCount({key:502711}),t&&N.addCount({key:502703}),r&&N.addCount({key:502704}),o&&N.addCount({key:502705}),n&&N.addCount({key:502706}),a&&N.addCount({key:502707}),typeof d!="function"&&N.addCount({key:502709}),typeof m!="function"&&N.addCount({key:502710}),typeof l!="function"&&N.addCount({key:502708})}destroyAllMusic(){this.log.info("destroy all music source."),this.mixedMusicMap.forEach((i,e)=>this.stop({id:e}))}destroyAllCache(){this.log.info("destroy all music cache."),this.cacheMusicMap.clear()}destroy(){this.log.info("destroy audio mixer plugin."),this.destroyAllMusic(),this.destroyAllCache()}};c(ri,"startValidateRule",{name:"options",required:!0,type:"object",properties:{id:{type:"string",required:!0},url:{type:"string",required:!1},track:{required:!1},loop:{type:"boolean"},volume:{type:"number"}},validate(i,e,t){if(i.url&&i.url!=="*"){let r=i.url.split("?")[0],o=["mp3","ogg","wav","flac"],n=r.split(".").pop(),a=o.indexOf(n)>=0,d=r.startsWith("blob"),l=r.startsWith("data");if(!(a||d||l))throw new w({code:V.INVALID_PARAMETER,message:"start audioMixer plugin: music url is invalid, please check your file format.",fnName:t})}if(!i.url&&!i.track)throw new w({code:V.INVALID_PARAMETER,message:"start audioMixer plugin: param url or track is required.",fnName:t});bs("onTimeUpdate",i.onTimeUpdate),bs("onEnded",i.onEnded),bs("onDurationChange",i.onDurationChange)}}),c(ri,"updateValidateRule",{name:"options",required:!0,type:"object",properties:{id:{type:"string",required:!0},loop:{type:"boolean"},volume:{type:"number"},seekFrom:{type:"number"},operation:{type:"string",values:["pause","resume","stop"]}},validate(i,e,t){bs("onTimeUpdate",i.onTimeUpdate),bs("onEnded",i.onEnded),bs("onDurationChange",i.onDurationChange)}}),c(ri,"stopValidateRule",{name:"options",type:"object",required:!0,properties:{id:{type:"string",required:!0}}}),c(ri,"Name","AudioMixer");var Wa=ri;var Ja=0,Ul,wi=class wi{constructor(i){this.core=i;c(this,"log");c(this,"audioContext",Ze("denoiser"));c(this,"workletNode");Ja=Ja+1,this.log=i.log.createChild({id:`${this.getAlias()}${Ja}`}),this.log.info(`[audioDenoiser] created id=${this.getAlias()}${Ja}`),i.assetsPath&&this.preload(`${i.assetsPath}/denoiser-wasm.js`)}static startValidateRule(i){return{name:"options",required:!0,type:"object",properties:{sdkAppId:{type:"number",required:!0},userId:{type:"string",required:!0},userSig:{type:"string",required:!0}},validate(e,t,r,o){if(!i.room.audioManager.hasAudioTrack)throw new w({code:V.INVALID_OPERATION,extraCode:5106,fnName:r})}}}preload(i){return Ul||(Ul=this.doPreload(i)),Ul}doPreload(i){return f(this,null,function*(){let e=yield this.core.fileDownloader.download(i,{type:"blob"}),t=URL.createObjectURL(e);try{yield Ir(this.audioContext,t)}finally{URL.revokeObjectURL(t)}})}getName(){return wi.Name}getAlias(){return"ad"}getGroup(){return`AIDenoiser_${Date.now()}`}getValidateRule(i){switch(i){case"start":return wi.startValidateRule(this.core);case"update":return wi.updateValidateRule;case"stop":return wi.stopValidateRule}}start(i){return f(this,null,function*(){let{room:e}=this.core;if(yield this.preload(`${i.assetsPath}/denoiser-wasm.js`),!this.workletNode){let t=String(Date.now()).slice(0,-3),{auth:r,sign:o,status:n,message:a}=yield sT(k(v({},i),{timestamp:t}));if(!r)throw this.log.info(`RTCAIDenoiser: ${i.userId} auth result: ${r}. Message: ${a}`),new w({code:V.INVALID_PARAMETER,message:a});this.workletNode=new AudioWorkletNode(this.audioContext,"trtc-denoiser-processor",{numberOfInputs:1,numberOfOutputs:1}),this.workletNode.port.postMessage({type:"init",data:{sdkAppId:String(i.sdkAppId),userId:i.userId,timestamp:t,sign:o,status:n}}),this.workletNode.port.onmessage=d=>{let{data:l}=d;l.type==="cost"&&this.log.debug(`[RTCAIDenoiser] ${l.value}`)}}this.workletNode.port.postMessage({type:"enable"}),e.audioManager.addDenoiser(this.workletNode),e.sendAbilityStatus({ai_denoise:1})})}update(){return f(this,null,function*(){})}stop(){return f(this,null,function*(){if(!this.workletNode)return;let{room:i}=this.core;this.workletNode.port.postMessage({type:"disable"}),yield i.audioManager.removeDenoiser(this.workletNode)})}destroy(){this.workletNode&&(this.workletNode.port.onmessage=null)}};c(wi,"updateValidateRule",{type:"object"}),c(wi,"stopValidateRule",{type:"object"}),c(wi,"Name","AIDenoiser");var qa=wi;function rT(s,i=h.MAIN){return`https://${Pt[i]||Wo(s,i)}/api/v1/audioAiAuth`}function sT(r){return f(this,arguments,function*({sdkAppId:s,userId:i,userSig:e,timestamp:t}){let n=`${rT(s)}?sdkAppId=${s}&userId=${i}&userSig=${e}&timestamp=${t}`,a=yield fetch(n),{data:{errCode:d,errMsg:l,sign:m,status:u}}=yield a.json();if(u==="1")return{auth:!0,sign:m,status:u,message:l};let p="Init RTCAIDenoiser failed.",_="";switch(d){case 1:_="Please check your params.";break;case 2:_="You need to buy packages. Refer to: https://cloud.tencent.com/document/product/647/44247";break;case 3:_="Server is invalid. Please contact our engineer. ";break;case 4:_="Your packages is not active. Refer to: https://cloud.tencent.com/document/product/647/44247";break;case 5:_="Your packages is expired. Refer to: https://cloud.tencent.com/document/product/647/44247";break;case 6:_="Your version is not supported.";break}return{auth:!1,status:u,message:l?`${p} Reason: ${l}. ${_}`:`${p}, ${_}`}})}var vm=ke(Ge(),1);var Vl=class extends vm.EventEmitter{constructor(){super();c(this,"observer");c(this,"state","nominal");this.onPressureChange=this.onPressureChange.bind(this)}get stateNum(){switch(this.state){case"nominal":return 1;case"fair":return 2;case"serious":return 3;case"critical":return 4}}start(){return f(this,null,function*(){if(!this.observer)try{"PressureObserver"in window&&!me&&(this.observer=new PressureObserver(this.onPressureChange),yield this.observer.observe("cpu",{sampleInterval:2e3}))}catch(e){ee.uploadEvent({log:"stat-pressure-detector-start-failed",error:e})}})}onPressureChange(e){let t=this.stateNum,r=e[e.length-1];this.state=r.state,(this.stateNum>3||t>3)&&C.info(`${r.source}: ${r.state}`),this.emit("state-changed",{type:r.source,state:this.state})}destroy(){var e;try{(e=this.observer)==null||e.disconnect(),this.observer=null}catch(t){ee.uploadEvent({log:"stat-pressure-detector-destroy-failed",error:t})}}},oT=new Vl,Bl=oT;function Fl([s,i]){let e=i.byteLength,t=parseInt(String(e/255),10),r=e%255,o=[];o.push(0,0,0,1,6,s);for(let a=0;a<t;a++)o.push(255);o.push(r);let n=new DataView(i);return o.push(...new Uint8Array(n.buffer)),o.push(128),new vi(new DataView(new Uint8Array(o).buffer),!0)}function Hl(s){return s.type==="empty"||s.data.byteLength===0}function $l(s){return s.getInt32(0)===1&&s.getInt8(4)===6}function Gl(s){let i=0,e=0,t=new DataView(s);for(let r=0;r<s.byteLength;r++)switch(t.getUint8(r)){case 0:i++;break;case 1:(i===2||i===3)&&e++,i=0;break;default:i=0;break}return e}function Wl({frame:s,seiMessageList:i}){if(!i||i.length===0||s.data.byteLength===0)return s;let t=9-Gl(s.data);if(t<=0)return s;let r=i.splice(0,t).reverse().map(Fl),o=r.reduce((m,u)=>m+u.dataView.byteLength,0),n=new ArrayBuffer(o+s.data.byteLength),a=new DataView(n),d=new DataView(s.data),l=0;for(let m=0;m<r.length;m++)for(let u=0;u<r[m].dataView.byteLength;u++)a.setInt8(l++,r[m].dataView.getInt8(u));for(let m=0;m<s.data.byteLength;m++)a.setInt8(l++,d.getInt8(m));return s.data=n,s}function Jl({frame:s,onSEI:i}){try{let e=new DataView(s.data);if(Hl(s)||!$l(e))return s;let t=[],r=0,o=-1,n=-1;for(let a=0;a<s.data.byteLength;a++){let d=e.getUint8(a);if(d===0)r++;else if(d===1){if(r===2||r===3){let l=a-r;if(o===-1?o=l:n===-1&&(n=l,t.push(new vi(new DataView(e.buffer.slice(o,n)))),o=l,n=-1),!(e.getUint8(a+1)===6)){s.data=e.buffer.slice(l);break}}r=0}else r=0}i==null||i(t.reverse())}catch(e){}return s}var ql=0,Jo=class Jo{constructor(i){this.core=i;c(this,"log");c(this,"_seiMessageList",[]);c(this,"_smallSeiMessageList",[]);c(this,"_subStreamSeiMessageList",[]);ql++,this.log=i.log.createChild({id:`${this.getAlias()}${ql}`}),this.log.info(`[sei] created id=${this.getAlias()}${ql}`),this.core=i,this.encode=this.encode.bind(this),this.decode=this.decode.bind(this)}encode({frame:i,mediaType:e}){try{let t=e===8?this._smallSeiMessageList:e===2?this._subStreamSeiMessageList:this._seiMessageList;return Wl({frame:i,seiMessageList:t})}catch(t){this.log.warn(t)}return i}decode({frame:i,track:e}){return Jl({frame:i,onSEI:t=>{t.forEach(r=>{this.core.trtc.emit(M.SEI_MESSAGE,{seiPayloadType:r.seiPayloadType,data:r.seiPayload.buffer,userId:e.userId,streamType:e.mediaType===2?"sub":"main"})})}})}destroy(){this.log.debug("destory"),this.stop(),delete this.core}getValidateRule(i){switch(i){case"start":return{type:"object"};case"update":return{type:"object"};case"stop":return{type:"object"}}}start(){this.core.room.videoManager.addEncodeProcessor({processor:Ri?this.encode:Wl,type:2}),this.core.room.videoManager.addDecodeProcessor({processor:Ri?this.decode:Jl,type:2})}stop(){this.core.room.videoManager.removeEncodeProcessor({type:2}),this.core.room.videoManager.removeDecodeProcessor({type:2})}update({buffer:i,options:e}){var o;let t=[e.seiPayloadType,i],r=!!e.small;e.toSubStream?this._subStreamSeiMessageList.push(t):(this._seiMessageList.push(t),r&&this._smallSeiMessageList.push(t)),(o=this.core.room.scriptTransformWorker)==null||o.postMessage({type:"sei",data:t,isMain:!e.toSubStream,small:r})}getName(){return Jo.Name}getAlias(){return"sei"}getGroup(){return"sei"}};c(Jo,"autoStart",!0),c(Jo,"Name","SEI");var ja=Jo;function jl({frame:s,onDump:i}){return i==null||i(),s}function Xl({frame:s,onDump:i}){return i==null||i(),s}var Dm={"play() error: NotAllowedError:":{tips:s=>s.includes("main <video>")||s.includes("main <audio>")?"Remote stream auto play is restricted and playback fails":"Local stream playback failure, generally only occurs in Android WeChat devices, no need to handle",color:"red",class:"red"},"updateStream() try to recover local stream":{tips:"Device acquisition exception, automatic recovery is in progress"},"updateStream() recover local stream successfully":{tips:"Device acquisition exception, automatic recovery is successful"},"updateStream() failed to recover local stream":{tips:"Device acquisition exception, automatic recovery failed"},"main stream - video track is muted":{tips:"Indicates that the received video data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - audio track is muted":{tips:"Indicates that the received audio data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"auxiliary stream - video track is muted":{tips:"Indicates that the received screen sharing data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - video track is unable to provide media output":{tips:"Indicates that the received video data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - audio track is unable to provide media output":{tips:"Indicates that the received audio data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"auxiliary stream - video track is unable to provide media output":{tips:"Indicates that the received screen sharing data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - video track is unmuted":{tips:"Received enough playback video data"},"main stream - audio track is unmuted":{tips:"Received enough playback audio data"},"auxiliary stream - video track is unmuted":{tips:"Received enough playback screen sharing data"},"main stream - audio player track is ended":{tips:"Remote audio track stopped"},"main stream - video player track is ended":{tips:"Remote video track stopped"},"auxiliary stream - video player track is ended":{tips:"Received enough playback screen sharing data"},"stream - video track is muted":{tips:"Camera capture is paused, usually due to the device being occupied by other applications or the browser media permission being revoked. The client needs to re-capture.",color:"orange"},"stream - video track is unable to provide media output":{tips:"The camera acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked, and the customer needs to re-acquire. SDK v4.11.4+ will automatically resume acquisition without customer intervention",color:"orange"},"video track is unable to provide media output":{tips:s=>s.includes("\u2193")?"The remote track is temporarily unable to decode data, which may be caused by network fluctuations":"The camera acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked. The SDK will automatically resume the acquisition.",color:"orange"},"stream - video player track is ended":{tips:"The camera acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"video player track is ended":{tips:"The camera acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"stream - audio track is muted":{tips:"Microphone capture is paused, usually due to the device being occupied by other applications or the browser media permission being revoked. The client needs to re-capture.",color:"orange"},"audio track is unable to provide media output":{tips:s=>s.includes("\u2193")?"The remote track is temporarily unable to decode data, which may be caused by network fluctuations":"Microphone acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked. The SDK will automatically resume the acquisition.",color:"orange"},"stream - audio track is unable to provide media output":{tips:"The microphone acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked. The SDK will automatically resume the acquisition.",color:"orange"},"stream - audio player track is ended":{tips:"The microphone acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"audio player track is ended":{tips:"The microphone acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"is adding audio track to current published local stream":{tips:"add audio track",color:"orange"},"is removing audio track from current published local stream":{tips:"remove audio track",color:"orange"},"is removing video track from current published local stream":{tips:"remove video track",color:"orange"},"is adding video track to current published local stream":{tips:"add video track",color:"orange"},"is replacing audio track to current published local main stream":{tips:"replace audio track",color:"orange"},"is replacing video track to current published local main stream":{tips:"replace video track",color:"orange"},"downlink network quality change":{tips:"Downstream network quality change: 1: excellent, 2: good, 3: average, 4: poor, 5: extremely poor"},"uplink network quality change":{tips:"Upstream network quality change: 1: excellent, 2: good, 3: average, 4: poor, 5: extremely poor"},"localStream mute video":{tips:"mute upstream video stream",color:"orange"},"localStream unmute video":{tips:"unmute upstream video stream",color:"orange"},"localStream mute audio":{tips:"mute upstream audio stream",color:"orange"},"localStream unmute audio":{tips:"unmute upstream audio stream",color:"orange"},"black detected":{tips:"Detect black screen, which means fps = 0. It is usually caused by network, and the network will be recovered after a while. If the network is normal but has not been restored, it is an abnormal situation."},'main stream start to play with options: {"muted":true}':{tips:"Play the remote stream in silent mode. Generally, the remote stream does not need to be played in silent mode. You need to confirm whether the parameters passed in the client stream.play API call are correct.",color:"orange"},"main stream - audio player is starting playing":{tips:"Remote stream audio playback success",color:"#0dd90d",class:"success"},"main stream - video player is starting playing":{tips:"Remote stream video playback success",color:"#0dd90d",class:"success"},"video player is playing":{tips:"Local video playback success",color:"#0dd90d",class:"success"},"audio player is playing":{tips:"Local audio playback success",color:"#0dd90d",class:"success"},"stream - video player is starting playing":{tips:"Local video playback success",color:"#0dd90d",class:"success"},"stream - audio player is starting playing":{tips:"Local audio playback success",color:"#0dd90d",class:"success"},"switch camera success":{tips:"Switch camera success",color:"#0dd90d",class:"success"},"switch microphone success":{tips:"Switch microphone success",color:"#0dd90d",class:"success"},gotStream:{tips:"Local stream capture success"},"local stream is published successfully":{tips:"Publish success",color:"#0dd90d",class:"success"},"encoderImplementation change to OpenH264":{tips:"Use software encoding"},"encoderImplementation change to ExternalEncoder":{tips:"Use hardware encoding"},"getUserMedia with constraints":{tips:"Start media (camera/microphone) capture"},"getDisplayMedia with constraints":{tips:"Start screen sharing capture"},"client-banned":{tips:"Kicked out of the room",color:"red",class:"red",textColor:"#fff"},user_timeout:{tips:"The backend is too long without receiving SDK heartbeat, which is usually caused by the JS thread being blocked for a long time. If the reproduction probability is high, the application browser Performance tool analyzes where the JS thread is blocked.",color:"red",class:"red",textColor:"#fff"},"schedule failed":{tips:"Signaling request failed, does not affect the normal room entry process, SDK will connect to the default signaling domain."},"updateStream() video flag is true, but no camera detected, set video to false":{tips:"When trying to resume camera acquisition, the camera acquisition is not resumed because it is detected that there is no camera.",color:"orange",class:"orange",textColor:"#fff"},"qualityLimitationReason change to bandwidth":{tips:"bandwidth estimation is not enough to limit the quality of the encoding, which may cause the code rate, frame rate, and resolution to be lowered.",color:"orange",class:"orange",textColor:"#fff"},"qualityLimitationReason change to cpu":{tips:"cpu load is too high to limit the quality of the encoding, which may cause the code rate, frame rate, and resolution to be lowered.",color:"orange",class:"orange",textColor:"#fff"},"visibility change: hidden":{tips:"User page switched to backend, in mobile devices, this will cause the device to pause the capture, and it will be restored when the user switches backend to the frontend.",color:"orange",class:"orange",textColor:"#fff"},"visibility change: visible":{tips:"User page switched to frontend",color:"orange",class:"orange",textColor:"#fff"},"main stream - audio player is paused":{tips:`The remote stream audio playback is paused, which usually has two possibilities:
95
55
  1. The business side passes in the div tag container for playing audio and video to be removed by the business side from the DOM.
96
56
  2. If the user is in Chrome 70 and below, when the div container is moved, the playback will be paused.`,color:"orange",class:"orange",textColor:"#fff"},"main stream - video player is paused":{tips:`The remote stream video playback is paused, which usually has two possibilities:
97
57
  1. The business side passes in the div tag container for playing audio and video to be removed by the business side from the DOM.
98
- 2. If the user is in Chrome 70 and below, when the div container is moved, the playback will be paused.`,color:"orange",class:"orange",textColor:"#fff"},'"displaySurface":"window"':{tips:"Screen sharing captures the application window",color:"blue",class:"blue",textColor:"#fff"},'"displaySurface":"monitor"':{tips:"Screen sharing captures the entire screen",color:"blue",class:"blue",textColor:"#fff"},'"displaySurface":"browser"':{tips:"Screen sharing captures a certain tab page",color:"blue",class:"blue",textColor:"#fff"},updateMediaSettings:{tips:"The resolution and frame rate below are the actual resolution and frame rate captured",color:"blue",class:"blue",textColor:"#fff"},"main stream start to play with":{tips:"Call remoteStream.play interface",color:"blue",class:"blue",textColor:"#fff"},"stream start to play with":{tips:"Call localStream.play interface",color:"blue",class:"blue",textColor:"#fff"},"main setAudioVolume to 0":{tips:"Business side calls remoteStream.setAudioVolume(0) interface to set the playback volume to 0, which will cause the playback to be silent",color:"orange",class:"orange",textColor:"#fff"},"screen sharing was stopped because the video track is ended":{tips:"Screen sharing capture stopped, possible reasons: user clicks the stop button, the window/page shared by the user is closed, etc.",color:"orange",class:"orange",textColor:"#fff"},"Join() => joining room":{tips:"Call client.join interface",color:"blue",class:"blue",textColor:"#fff"},"publish() => publishing local stream":{tips:"Call client.publish interface",color:"blue",class:"blue",textColor:"#fff"},"subscribe() => subscribe to":{tips:"Call client.subscribe interface",color:"blue",class:"blue",textColor:"#fff"},"switchRole() => switch role":{tips:"Call client.switchRole interface",color:"blue",class:"blue",textColor:"#fff"}};["enterRoom","exitRoom","switchRole","destroy","startLocalAudio","updateLocalAudio","stopLocalAudio","startLocalVideo","updateLocalVideo","stopLocalVideo","startScreenShare","updateScreenShare","stopScreenShare","startRemoteVideo","updateRemoteVideo","stopRemoteVideo","muteRemoteAudio","setRemoteAudioVolume"].forEach(i=>{TE[`${i}()`]={tips:`Call trtc.${i}`,color:"blue",class:"blue",textColor:"#fff"}});var lL=Object.keys(TE);var tA=0,Gu,_f=class{constructor(t){this.core=t;l(this,"_core");l(this,"log");l(this,"dumpLocalVideoMap",{});l(this,"dumpRemoteVideoMap",{});l(this,"dialog");this._core=t,this.log=t.log.createChild({id:`${this.getAlias()}${++tA}`}),this.log.info("created")}getName(){return _f.Name}getAlias(){return"dm"}getGroup(){return"dm"}getValidateRule(t){switch(t){case"start":return{name:"StartDebugOptions",required:!1};case"update":return{name:"UpdateDebugOptions",required:!1};case"stop":return{name:"StopDebugOptions",required:!1}}}start(){return v(this,null,function*(){!new URLSearchParams(location.search).has("trtcDebug")||(yield this.openDebugDiaLog(),this.addVideoProcessor())})}update(){}stop(){this.closeDebugDiaLog(),this.removeVideoProcessor()}destroy(){this.stop()}openDebugDiaLog(){return v(this,null,function*(){try{if(Gu)yield Gu;else{let t=Date.now();Gu=this.loadScript(`https://web.sdk.qcloud.com/trtc/webrtc/assets/debug/debug-dialog@${Ke}.js`),yield Gu,this.log.info(`download debug dialog script cost: ${Date.now()-t}ms`)}this.dialog=new TRTCDebugDialog(this._core,this.log,this.dumpLocalVideoMap,this.dumpRemoteVideoMap),this._core.kvStatManager.addSuccessEvent({key:592705})}catch(t){this._core.kvStatManager.addFailedEvent({key:592705}),this.log.error("load debug dialog script failed: ",JSON.stringify(t))}})}closeDebugDiaLog(){var t;(t=this.dialog)==null||t.closeDialog(),this.dialog=null}addVideoProcessor(){this._core.room.videoManager.addEncodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.encodeVideo.bind(this):hf,type:1}),this._core.room.videoManager.addDecodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.decodeVideo.bind(this):ff,type:1})}removeVideoProcessor(){this._core.room.videoManager.removeEncodeProcessor({type:1}),this._core.room.videoManager.removeDecodeProcessor({type:1})}encodeVideo({frame:t,mediaType:e}){return hf({frame:t,onDump:()=>{if(!e)return;let r=e===2?"sub":"main",o=this.dumpLocalVideoMap[r];o&&(o.data.push(t.data),o.duration>0&&Date.now()-o.startTimestamp>o.duration*1e3&&o.onDumpEnd())}})}decodeVideo({frame:t,track:e}){return ff({frame:t,onDump:()=>{if(!e)return;let r=this.dumpRemoteVideoMap[`${e.userId}-${e.streamType}`];r&&(r.data.push(t.data),r.duration>0&&Date.now()-r.startTimestamp>r.duration*1e3&&r.onDumpEnd())}})}loadScript(t){return new Promise((e,r)=>{this.log.info(`loading debug dialog from ${t}`);let o=document.createElement("script");o.type="text/javascript",o.onload=e,o.onerror=r,o.crossOrigin="anonymous",o.src=t,document.head.append?document.head.append(o):document.getElementsByTagName("head")[0].appendChild(o)})}},Ko=_f;l(Ko,"Name","Debug"),l(Ko,"autoStart",!0),q([ji({settings:{timeout:3e3,retries:3},onError(i,t,e){var r;(r=i==null?void 0:i.message)!=null&&r.includes("timeout")?t():e(i)}})],Ko.prototype,"loadScript",1);var IE=i=>{switch(i){case"webCodecs":return 504703;case"wasm":return 504704}throw new Error("decoder type not supported")},ju=class{constructor(t,e,r){l(this,"trackDoneOB");l(this,"startOB");l(this,"stopOB");l(this,"inputFrameCount",0);l(this,"decodedFrameCount",0);l(this,"type","auto");l(this,"config");l(this,"decoder");l(this,"_decodeSink");let{kvStatManager:o,trtc:s}=t;this.config=r.config,this.trackDoneOB=Je(e,Z.INIT),this.stopOB=zt(this.trackDoneOB),this.startOB=zt(),r.type==="auto"?this.type="webCodecs":this.type=r.type;let a=zt(),d=h=>{let p=this.pipe(e);return a.next("STARTING"),e.log.info(`decoder type: ${this.type}`),We(p,gt(this.stopOB),dt(()=>{},T=>{e.log.error(T),o.addFailedEvent({key:IE(this.type),error:T}),h>4?this.startOB.error(T):this.startOB.next(h+1)})),We(p,xr(1),qa(Ho))};We(this.startOB,$o(0),Qi(d),gt(this.stopOB),dt(()=>{e.player.setOutput(),a.next("STARTED")},h=>{a.next("FAILED")},()=>{o.addSuccessEvent({key:IE(this.type)}),o.addSuccessEvent({key:504702})}))}mock(t){this._decodeSink?this._decodeSink.error(t):this.startOB.next(0)}close(t){this.stopOB.next(t)}pipe(t){return Ri()(e=>v(this,null,function*(){this._decodeSink=e,e.defer(()=>{var o;(o=this.decoder)==null||o.close()});let{type:r}=this;try{switch(r){case"webCodecs":this.decoder=new AudioDecoder({error:o=>{t.log.error(o),e.error(4)},output:o=>{this.decodedFrameCount++,e.next(o),t.player.write(o)}});break;case"wasm":break}this.decoder.configure(this.config)}catch(o){t.log.error(o),e.error(r==="webCodecs"?2:6)}}))}decodeFrame(t){var e;this.inputFrameCount++,((e=this.decoder)==null?void 0:e.state)==="configured"&&this.decoder.decode(new EncodedAudioChunk({data:t.data,timestamp:t.timestamp,type:"key"}))}},rA={type:"object"},qu=class{constructor(t){this.core=t;l(this,"log");l(this,"contextMap",new Map);l(this,"decodeProcessorMap",new WeakMap);this.log=t.log.createChild({id:`${this.getAlias()}`})}getAlias(){return qu.Name}getGroup(t){return t.track.userId+t.track.streamType}getName(){return qu.Name}getValidateRule(t){return rA}start(t){let{track:e}=t;this.decodeProcessorMap.set(e,this.decode(t)),this.core.room.audioManager.addDecodeProcessor({processor:({frame:r,track:o})=>this.decodeProcessorMap.has(o)?this.decodeProcessorMap.get(o)({frame:r,track:o}):r,type:3})}decode(t){return({frame:e,track:r})=>{if(r!==t.track)return e;if(this.contextMap.has(r))return this.contextMap.get(r).decodeFrame(e);let o=new ju(this.core,r,t);return We(o.trackDoneOB,xr(1),dt(()=>{this.core.clearStarted(this,this.getGroup(t)),this.stop({track:r})})),this.contextMap.set(r,o),o.decodeFrame(e)}}stop({track:t}){let e=this.contextMap.get(t);!e||(e.close("stop"),this.contextMap.delete(t),this.contextMap.size===0&&this.core.room.audioManager.removeDecodeProcessor({type:3}))}update(t){let e=this.contextMap.get(t.track);if(!!e){if(t.type==="mock"){e.mock(10);return}e.close("update"),this.contextMap.set(t.track,new ju(this.core,t.track,t))}}},pn=qu;l(pn,"Name","AudioDecoder");var SE=0,tc=new Set,It=null;rp(gE);Ls.checkStorage();sm();var iA={RtcError:oe,ErrorCode:ne,ErrorCodeDictionary:Or},dr=class extends yE.EventEmitter{constructor(e,r){super();l(this,"_room");l(this,"_eventListened",new Set);l(this,"_localVideoTrack",null);l(this,"_localAudioTrack",null);l(this,"_localScreenTrack",null);l(this,"_localScreenAudioTrack",null);l(this,"_localVideoConfig",null);l(this,"_localScreenConfig",null);l(this,"_localAudioConfig",null);l(this,"_remoteVideoConfigMap",new Map);l(this,"_remoteAudioConfigMap",new Map);l(this,"_remoteAudioVolumeMap",new Map);l(this,"_remoteAudioMuteMap",new Map);l(this,"_mediaTrackMap",new WeakMap);l(this,"_log",V.createLogger({id:`t${++SE}`}));l(this,"_plugins",new Map);l(this,"_networkQuality",null);l(this,"_speakerId");l(this,"_getPCMAbortCtrl");this._room=new e(J({logger:this._log,frameWorkType:dr.frameWorkType},r)),this._room.videoDecodeFallbackType=r.videoDecodeFallback,this._log.debug(`TRTC.create() ${JSON.stringify(r,(o,s)=>o==="plugins"?s.map(a=>a.Name):s)}`),Object.defineProperties(this,{dumpAudio:{enumerable:!1,value(o){return this._room.audioManager.dump(o)}}}),r.plugins&&r.plugins.forEach(o=>{this._use(o,r.assetsPath)}),this._use(io,r.assetsPath),this._use(Zo,r.assetsPath),this._use(pn,r.assetsPath||Qc),this._use(Ko),r.enableSEI&&Ma&&this._use(ln),this._room.on("audio-volume",o=>{!o.find(s=>s.userId==="")&&this._localAudioTrack&&o.push({userId:"",volume:Math.floor(this._localAudioTrack.getAudioLevel()*100)}),this.emit(re.AUDIO_VOLUME,{result:o.sort((s,a)=>a.volume-s.volume)})}),this._room.videoManager.on("error",o=>{this._log.error(new oe({code:ne.OPERATION_FAILED,extraCode:5504,message:o.message,originError:o}))}),this._listenEvents(),this._initActiveSpeaker(),hE(this,"trtc")}static create(e){}static _create(e,r){rE();let o=new dr(e,r||{});return tc.add(o),o}get room(){return this._room}_listenEvents(){vt(this,this._room).add("peer-join",e=>{let{userId:r}=e;this.emit(re.REMOTE_USER_ENTER,{userId:r})}).add("peer-leave",e=>{this.emit(re.REMOTE_USER_EXIT,{userId:e}),this._remoteAudioVolumeMap.delete(e)}).add("banned",e=>{this._exitRoom().then(()=>{this.emit(re.KICKED_OUT,{reason:e.reason})})}).add("error",e=>{this._exitRoom().then(()=>{this.emit(re.ERROR,oe.convertFrom(e))})}).add("signal-connection-state-changed",e=>{this.emit(re.CONNECTION_STATE_CHANGED,e)}).add("network-quality",e=>{this._networkQuality=e;let r=me(J({},e),{uplinkRTT:Math.min(e.uplinkRTT,Yn),downlinkRTT:Math.min(e.downlinkRTT,Yn)});this.emit(re.NETWORK_QUALITY,r)}).add("remote-published",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{vt(o,o).add("player-state-changed",s=>{let a=me(J({},s),{userId:e.userId});o.kind===D.VIDEO&&(a.streamType=Za(o.streamType)),this.emit(o.kind===D.AUDIO?re.AUDIO_PLAY_STATE_CHANGED:re.VIDEO_PLAY_STATE_CHANGED,a)}).add("error",s=>{s.getCode()===Y.PLAY_NOT_ALLOWED&&this.emit(re.AUTOPLAY_FAILED,{userId:o.userId})})})}).add("remote-unpublished",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{ct(o)})}).add("remote-publish-state-changed",({prevMuteState:e,muteState:r})=>{let{userId:o}=r,s=e.audioAvailable,a=e.videoAvailable,{audioAvailable:d,videoAvailable:h}=r;d||this._remoteAudioConfigMap.delete(o),h||this._remoteVideoConfigMap.delete(`${o}_${"main"}`),r.hasAuxiliary||this._remoteVideoConfigMap.delete(`${o}_${"sub"}`),a!==h&&(h?this._onVideoAvailable({userId:o,streamType:"main"}):this._onVideoUnavailable({userId:o,streamType:"main"}),this.emit(h?re.REMOTE_VIDEO_AVAILABLE:re.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"main"})),s!==d&&(d?this._onAudioAvailable({userId:o}):this._onAudioUnavailable({userId:o,muteState:r}),this.emit(d?re.REMOTE_AUDIO_AVAILABLE:re.REMOTE_AUDIO_UNAVAILABLE,{userId:o})),e.hasAuxiliary!==r.hasAuxiliary&&(r.hasAuxiliary?this._onVideoAvailable({userId:o,streamType:"sub"}):this._onVideoUnavailable({userId:o,streamType:"sub"}),this.emit(r.hasAuxiliary?re.REMOTE_VIDEO_AVAILABLE:re.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"sub"}))}).add("sei-message",e=>{this.emit(re.SEI_MESSAGE,me(J({},e),{streamType:Za(e.streamType)}))}).add("firewall-restriction",()=>{this.emit(re.ERROR,new oe({code:ne.OPERATION_FAILED,extraCode:5501}))}).add("heartbeat-report",e=>{var s,a,d,h,p,T,y;let r={2:"big",3:"small",7:"sub"},o={rtt:Math.min(e.msg_up_stream_info.msg_network_status.uint32_rtt||((s=e.msg_down_stream_info[0])==null?void 0:s.msg_network_status.uint32_rtt)||((a=this._networkQuality)==null?void 0:a.uplinkRTT)||((d=this._networkQuality)==null?void 0:d.downlinkRTT)||0,Yn),upLoss:((h=this._networkQuality)==null?void 0:h.uplinkLoss)||0,downLoss:((p=this._networkQuality)==null?void 0:p.downlinkLoss)||0,bytesSent:e.bytes_sent||0,bytesReceived:e.bytes_received||0,localStatistics:{audio:{bitrate:(((T=e.msg_up_stream_info.msg_audio_status)==null?void 0:T.uint32_audio_codec_bitrate)||0)/1e3,audioLevel:(((y=e.msg_up_stream_info.msg_audio_status)==null?void 0:y.uint32_audio_level)||0)/Ii},video:e.msg_up_stream_info.msg_video_status.filter(R=>r[R.uint32_video_stream_type]).map(R=>({bitrate:(R.uint32_video_codec_bitrate||0)/1e3,width:R.uint32_video_width,height:R.uint32_video_height,frameRate:R.uint32_video_enc_fps,videoType:r[R.uint32_video_stream_type]}))},remoteStatistics:e.msg_down_stream_info.map(R=>({userId:R.msg_user_info.str_identifier,audio:{bitrate:(R.msg_audio_status.uint32_audio_codec_bitrate||0)/1e3,audioLevel:(R.msg_audio_status.uint32_audio_level||0)/Ii},video:R.msg_video_status.map(N=>({bitrate:(N.uint32_video_codec_bitrate||0)/1e3,width:N.uint32_video_width,height:N.uint32_video_height,frameRate:N.uint32_video_dec_fps,videoType:r[N.uint32_video_stream_type]}))}))};this.emit(re.STATISTICS,o)}).add("custom-message",e=>{this.emit(re.CUSTOM_MESSAGE,e)}).add("layerData",e=>this.emit(re.LAYER_DATA,e)),vt(this,_t).add("audioInputAdded",e=>{this.emit(re.DEVICE_CHANGED,{type:"microphone",action:"add",device:e})}).add("audioInputRemoved",e=>{this.emit(re.DEVICE_CHANGED,{type:"microphone",action:"remove",device:e})}).add("videoInputAdded",e=>{this.emit(re.DEVICE_CHANGED,{type:"camera",action:"add",device:e})}).add("videoInputRemoved",e=>{this.emit(re.DEVICE_CHANGED,{type:"camera",action:"remove",device:e})}).add("audioOutputAdded",e=>v(this,null,function*(){if(this.emit(re.DEVICE_CHANGED,{type:"speaker",action:"add",device:e}),It&&It.deviceId===Qn){let r=(yield qi()).find(o=>o.deviceId===Qn);r&&It.groupId!==r.groupId&&(It=r,this.emit(re.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))}})).add("audioOutputRemoved",e=>v(this,null,function*(){this.emit(re.DEVICE_CHANGED,{type:"speaker",action:"remove",device:e});let r=(yield qi())[0];if(!r||!It||It.groupId===r.groupId)return;let o=It.deviceId===e.deviceId,s=It.deviceId===Qn&&It.deviceId===r.deviceId;(o||s)&&(It=r,this.emit(re.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))}))}use(e){let r,o;"plugin"in e?(r=e.plugin,o=e.assetsPath):r=e,this._use(r,o||Qc)}_use(e,r){if(this._plugins.get(e.Name)){this._log.warn("duplicate install plugin",e.Name);return}let s=new e(mE.call(this,{TRTC:dr,room:this._room,errorModule:iA,assetsPath:r}));this._plugins.set(e.Name,s),e.autoStart&&this.startPlugin(e.Name)}enterRoom(e){return v(this,null,function*(){var h,p;let{scene:r="rtc",enableAutoPlayDialog:o=!0,autoReceiveAudio:s=!0,autoReceiveVideo:a=!1}=e;e.proxy&&(this._room.setProxyServer(e.proxy),!Ae(e.proxy)&&e.proxy.turnServer&&((p=(h=this._room).setTurnServer)==null||p.call(h,e.proxy.turnServer,e.proxy.iceTransportPolicy))),this._room.enableAutoPlayDialog=o,this._room.autoReceiveAudio=s,this._room.autoReceiveVideo=a,nt(e.preferHW)&&(this._room.preferHW=e.preferHW);let d={sdkAppId:e.sdkAppId,userId:e.userId,userSig:e.userSig,privateMapKey:e.privateMapKey||null,latencyLevel:e.latencyLevel,role:e.role==="audience"?21:20,roomId:e.roomId||0,strRoomId:e.strRoomId||"",businessInfo:e.businessInfo||null,streamId:null,userDefineRecordId:e.userDefineRecordId||null,frameWorkType:e.frameWorkType,component:e.component,language:e.language,priority:e.priority,useVp8:e.useVp8};e.strRoomId&&!e.roomId?this._room.useStringRoomId=!0:this._room.useStringRoomId=!1,yield this._room.join(d,r,dr.frameWorkType),this._checkTrackToPublish(),df.start()})}exitRoom(){return v(this,null,function*(){return yield this._exitRoom()})}switchRole(e,r){return v(this,null,function*(){r!=null&&r.privateMapKey&&(this._room.privateMapKey=r.privateMapKey),r!=null&&r.latencyLevel&&(this._room.latencyLevel=r.latencyLevel),yield this._room.switchRole(e),e==="anchor"&&this._checkTrackToPublish()})}destroy(){ct(this),this.removeAllListeners(),this._room.destroy(),tc.delete(this),tc.size===0&&df.destroy(),this._localAudioTrack&&this.stopLocalAudio(),this._localVideoTrack&&this.stopLocalVideo(),this._localScreenTrack&&this.stopScreenShare(),this._plugins.forEach(e=>{var r;return(r=e.destroy)==null?void 0:r.call(e)})}startLocalAudio(){return v(this,arguments,function*(e={publish:!0}){if(this._localAudioTrack){this._log.warn("local audio is already started");return}let{publish:r=!0,mute:o,option:s}=e,a=new nr(this._room.audioManager),d={},h={muted:!0};s&&(L(s.microphoneId)?L(s.audioTrack)||(d.customSource=s.audioTrack):d.deviceId=s.microphoneId,s&&Fe(s.captureVolume)&&a.setCaptureVolume(s.captureVolume),L(s.profile)||(Ae(s.profile)?Zc[s.profile]&&a.setProfile(Zc[s.profile]):a.setProfile(s.profile)),Fe(s.earMonitorVolume)&&(h.muted=!(s.earMonitorVolume>0),h.volume=s.earMonitorVolume),L(s.echoCancellation)||(a.profile.echoCancellation=s.echoCancellation),L(s.noiseSuppression)||(a.profile.noiseSuppression=s.noiseSuppression),L(s.autoGainControl)||(a.profile.autoGainControl=s.autoGainControl)),a.on("5",p=>{this.emit(re.ERROR,new oe({code:ne.DEVICE_ERROR,extraCode:5309,messageParams:{error:p}}))}),a.on("2",p=>{this.emit(re.DEVICE_CHANGED,{type:"microphone",action:"active",device:p})}),a.on("4",p=>{let T;p.error&&(T=oe.convertFrom(p.error)),this.emit(re.PUBLISH_STATE_CHANGED,me(J({},p),{error:T}))}),this._listenOutputTrackChanged(a),this._speakerId&&a.setAudioOutput(this._speakerId),yield a.capture(d),L(o)||a.setMute(o),vt(a,a).add("player-state-changed",p=>{this.emit(re.AUDIO_PLAY_STATE_CHANGED,me(J({},p),{userId:""}))}),this.listeners(re.AUDIO_FRAME).length>0&&(this._getPCMAbortCtrl=this._room.audioManager.getPCM(p=>{this.emit(dr.EVENT.AUDIO_FRAME,{data:p})})),this._getPCMAbortCtrl&&a.on("input-media-track-changed",()=>{this._getPCMAbortCtrl&&(this._getPCMAbortCtrl.abort("inputMediaTrackChanged"),this._getPCMAbortCtrl=this._room.audioManager.getPCM(p=>{this.emit(dr.EVENT.AUDIO_FRAME,{data:p})}))}),r&&this._room.isJoined&&this._room.publish(a).catch(()=>{}),this._localAudioTrack=a,this._localAudioConfig=me(J({},e),{publish:r}),yield this._updateAudioPlayOption({playOption:h,track:a})})}updateLocalAudio(e){return v(this,null,function*(){if(!this._localAudioTrack||!this._localAudioConfig)return;let{publish:r,mute:o,option:s}=e,a={};s&&(s.microphoneId?yield this._localAudioTrack.switchDevice(s.microphoneId):L(s.audioTrack)||(yield this._localAudioTrack.setInputMediaStreamTrack(s.audioTrack)),L(s.captureVolume)||this._localAudioTrack.setCaptureVolume(s.captureVolume),L(s.earMonitorVolume)||(a.muted=!(s.earMonitorVolume>0),a.volume=s.earMonitorVolume),yield this._localAudioTrack.update3A(s)),this._room.isJoined&&!L(r)&&(r&&!this._localAudioConfig.publish&&this._room.publish(this._localAudioTrack).catch(()=>{}),this._localAudioConfig.publish&&!r&&this._room.unpublish(this._localAudioTrack).catch(()=>{})),L(o)||this._localAudioTrack.setMute(o),yield this._updateAudioPlayOption({playOption:a,track:this._localAudioTrack,prevConfig:this._localAudioConfig}),Wr(this._localAudioConfig,e)})}stopLocalAudio(){return v(this,null,function*(){!this._localAudioTrack||(this._room.isJoined&&(yield this._room.unpublish(this._localAudioTrack).catch(()=>{})),this._localAudioTrack.stop(),this._localAudioTrack.close(),this._room.audioManager.removeInput(this._localAudioTrack),ct(this._localAudioTrack),this._localAudioTrack=null,this._localAudioConfig=null,this._getPCMAbortCtrl&&(this._getPCMAbortCtrl.abort("stopLocalAudio"),delete this._getPCMAbortCtrl))})}startLocalVideo(){return v(this,arguments,function*(e={publish:!0,view:null}){if(this._localVideoTrack){this._log.warn("local video is already started");return}let{view:r,publish:o=!0,mute:s,option:a}=e,d=new hr(this._room.videoManager),h={},p={};a&&(a.cameraId?h.deviceId=a.cameraId:L(a.useFrontCamera)?L(a.videoTrack)||(h.customSource=a.videoTrack):h.facingMode=a.useFrontCamera?D.FACING_MODE_USER:D.FACING_MODE_ENVIRONMENT,a.qosPreference&&(h.contentHint=Ka(a.qosPreference)),L(a.profile)||(Ae(a.profile)?$r[a.profile]&&d.setProfile($r[a.profile]):d.setProfile(a.profile)),L(a.fillMode)||(p.objectFit=a.fillMode),L(a.mirror)||(p.mirror=a.mirror),L(a.small)||(Na()?Ae(a.small)?d.small=$r[a.small]:a.small===!0?d.small=$r["120p"]:d.small=a.small:this._log.warn("small stream is not supported"))),d.on("5",T=>{this.emit(re.ERROR,new oe({code:ne.DEVICE_ERROR,extraCode:5308,messageParams:{error:T}}))}),d.on("2",T=>{this.emit(re.DEVICE_CHANGED,{type:"camera",action:"active",device:T})}),d.on("4",T=>{let y;T.error&&(y=oe.convertFrom(T.error)),this.emit(re.PUBLISH_STATE_CHANGED,me(J({},T),{error:y}))}),this._listenOutputTrackChanged(d),yield d.capture(h),L(s)||(yield d.setMute(s)),vt(d,d).add("player-state-changed",T=>{this.emit(re.VIDEO_PLAY_STATE_CHANGED,me(J({},T),{userId:"",streamType:"main"}))}),o&&this._room.isJoined&&this._room.publish(d).catch(()=>{}),this._localVideoTrack=d,this._localVideoConfig=me(J({},e),{view:r,publish:o}),yield this._updateVideoPlayOption({view:r,playOption:p,track:d})})}updateLocalVideo(e){return v(this,null,function*(){if(!this._localVideoTrack||!this._localVideoConfig)return;let{view:r,publish:o,mute:s,option:a}=e,d={};if(a)if(L(a.profile)||(Ae(a.profile)?$r[a.profile]&&this._localVideoTrack.setProfile($r[a.profile]):this._localVideoTrack.setProfile(a.profile),(!a.cameraId||!this._localVideoTrack.isNeedToSwitchDevice(a.cameraId))&&L(a.useFrontCamera)&&this._localVideoTrack.applyProfile()),a.cameraId?yield this._localVideoTrack.switchDevice(a.cameraId):L(a.useFrontCamera)?L(a.videoTrack)||(yield this._localVideoTrack.setInputMediaStreamTrack(a.videoTrack)):yield this._localVideoTrack.switchDevice(a.useFrontCamera?D.FACING_MODE_USER:D.FACING_MODE_ENVIRONMENT),L(a.fillMode)||(d.objectFit=a.fillMode),L(a.mirror)||(d.mirror=a.mirror),a.qosPreference&&this._localVideoTrack.mediaTrack&&this._localVideoTrack.setContentHint(Ka(a.qosPreference)),a.small){let h=!this._localVideoTrack.small;Na()?(a.small===!0?this._localVideoTrack.small=$r["120p"]:Ae(a.small)?this._localVideoTrack.small=$r[a.small]:this._localVideoTrack.small=a.small,this._room.videoManager.update(),h&&this._room.enableSmall(!0)):this._log.warn("small stream is not supported")}else a.small===!1&&this._localVideoTrack.small&&(delete this._localVideoTrack.small,this._room.videoManager.update(),this._room.enableSmall(!1));this._room.isJoined&&!L(o)&&(o&&!this._localVideoConfig.publish&&this._room.publish(this._localVideoTrack).catch(()=>{}),this._localVideoConfig.publish&&!o&&this._room.unpublish(this._localVideoTrack).catch(()=>{})),L(s)||(yield this._localVideoTrack.setMute(s)),yield this._updateVideoPlayOption({view:r,playOption:d,track:this._localVideoTrack,prevConfig:this._localVideoConfig}),Wr(this._localVideoConfig,e)})}stopLocalVideo(){return v(this,null,function*(){!this._localVideoTrack||(this._room.isJoined&&(yield this._room.unpublish(this._localVideoTrack).catch(()=>{})),this._localVideoTrack.stop(),this._localVideoTrack.close(),ct(this._localVideoTrack),this._localVideoTrack=null,this._localVideoConfig=null)})}startScreenShare(){return v(this,arguments,function*(e={publish:!0,view:null}){if(this._localScreenTrack){this._log.warn("screen share is already started");return}let{view:r=null,publish:o=!0,option:s}=e,a=new Ji(this._room.videoManager);a.on("4",y=>{let R;y.error&&(R=oe.convertFrom(y.error)),this.emit(re.PUBLISH_STATE_CHANGED,me(J({},y),{error:R}))}),this._listenOutputTrackChanged(a),e.streamType==="main"&&(a.mediaType=4);let d=null,h={},p={};s&&(L(s.profile)||(Ae(s.profile)?Kc[s.profile]&&a.setProfile(Kc[s.profile]):a.setProfile(s.profile)),s.systemAudio&&(h.systemAudio=!0,h.echoCancellation=s.echoCancellation,h.noiseSuppression=s.noiseSuppression,h.autoGainControl=s.autoGainControl),L(s.fillMode)||(p.objectFit=s.fillMode),s.videoTrack&&(h.videoTrack=s.videoTrack),s.audioTrack&&(h.audioTrack=s.audioTrack),s.captureElement&&(h.captureElement=s.captureElement),s.preferDisplaySurface&&(h.preferDisplaySurface=s.preferDisplaySurface),s.qosPreference&&(h.contentHint=Ka(s.qosPreference)));let T=yield a.capture(h);if(a.mediaTrack.addEventListener(D.ENDED,()=>{this._stopScreenShare(),this.emit(re.SCREEN_SHARE_STOPPED)}),T.getAudioTracks()[0]&&(d=new Uo(this._room.audioManager),yield d.setInputMediaStreamTrack(T.getAudioTracks()[0]),this._speakerId&&d.setAudioOutput(this._speakerId)),vt(a,a).add("player-state-changed",y=>{this.emit(re.VIDEO_PLAY_STATE_CHANGED,me(J({},y),{userId:"",streamType:"sub"}))}),o&&this._room.isJoined){let y=[a];d&&y.push(d),this._room.publish(...y).catch(()=>{})}this._localScreenTrack=a,this._localScreenAudioTrack=d,this._localScreenConfig=me(J({},e),{view:r,publish:o}),yield this._updateVideoPlayOption({view:r,playOption:p,track:a})})}updateScreenShare(e){return v(this,null,function*(){if(!this._localScreenTrack||!this._localScreenConfig)return;let{view:r,publish:o,option:s}=e,a={};if(s&&(L(s.fillMode)||(a.objectFit=s.fillMode),s.qosPreference)){let d=Ka(s.qosPreference);this._localScreenTrack.setContentHint(d)}this._room.isJoined&&!L(o)&&(o&&!this._localScreenConfig.publish&&(this._room.publish(this._localScreenTrack).catch(()=>{}),this._localScreenAudioTrack&&this._room.publish(this._localScreenAudioTrack).catch(()=>{})),this._localScreenConfig.publish&&!o&&(this._room.unpublish(this._localScreenTrack).catch(()=>{}),this._localScreenAudioTrack&&this._room.unpublish(this._localScreenAudioTrack).catch(()=>{}))),yield this._updateVideoPlayOption({view:r,playOption:a,track:this._localScreenTrack,prevConfig:this._localScreenConfig}),Wr(this._localScreenConfig,e)})}stopScreenShare(){return v(this,null,function*(){return yield this._stopScreenShare()})}startRemoteVideo(e){return v(this,null,function*(){let{view:r,userId:o,streamType:s,option:a}=e,d=`${o}_${s}`;if(this._remoteVideoConfigMap.has(d)){this._log.warn(`remote video has already started. userId:${o}, streamType:${s}`);return}let h=this._room.remotePublishedUserMap.get(o);if(!h)return;let p={},T=s==="main"?h.remoteVideoTrack:h.remoteAuxiliaryTrack;this._listenOutputTrackChanged(T),a&&(L(a.fillMode)||(p.objectFit=a.fillMode),L(a.mirror)||(p.mirror=a.mirror),p.canvasRender=a.canvasRender,s==="main"&&!L(a.small)&&(h.remoteVideoTrack.setMediaType(a.small?8:4),this._room.changeType(a.small,T.user))),yield this._room.subscribe(T),yield this._enableVideoDecodeFallback(T,s),yield this._updateVideoPlayOption({view:r,playOption:p,track:T}),this._emitTrackEvent(T),this._remoteVideoConfigMap.set(d,{config:e}),a&&!L(a.receiveWhenViewVisible)&&this._observeView({remoteTrack:T,view:r,receiveWhenViewVisible:a.receiveWhenViewVisible,viewRoot:a==null?void 0:a.viewRoot})})}updateRemoteVideo(e){return v(this,null,function*(){var F,Ie;let{view:r,userId:o,streamType:s,option:a}=e,d=`${o}_${s}`,h=this._remoteVideoConfigMap.get(d);if(!h||!this._room.remotePublishedUserMap.has(o))return;let p={};a&&(L(a.fillMode)||(p.objectFit=a.fillMode),L(a.mirror)||(p.mirror=a.mirror));let T=null,y=this._room.remotePublishedUserMap.get(o);if(s==="main"&&(y==null?void 0:y.muteState.hasVideo)&&(T=y.remoteVideoTrack),s==="sub"&&(y==null?void 0:y.muteState.hasAuxiliary)&&(T=y.remoteAuxiliaryTrack),!T)return;let{config:R}=h;s==="main"&&a&&!L(a.small)&&this._room.changeType(a.small,T.user),yield this._updateVideoPlayOption({view:r,playOption:p,track:T,prevConfig:R}),Wr(R,e);let N=L(a==null?void 0:a.receiveWhenViewVisible)?(F=R.option)==null?void 0:F.receiveWhenViewVisible:a.receiveWhenViewVisible,j=L(r)?R.view:r,W=L(a==null?void 0:a.viewRoot)?(Ie=R.option)==null?void 0:Ie.viewRoot:a.viewRoot;this._observeView({remoteTrack:T,view:j,receiveWhenViewVisible:N,viewRoot:W})})}stopRemoteVideo(e){return v(this,null,function*(){return this._stopRemoteVideo(e)})}_stopRemoteVideo(e,r=!0){return v(this,null,function*(){let o=[],s=this._room.remotePublishedUserMap.get(e.userId);if(s){let{muteState:d,remoteVideoTrack:h,remoteAuxiliaryTrack:p}=s;e.streamType==="main"&&(h.stop(),d.hasVideo&&o.push(h)),e.streamType==="sub"&&(p.stop(),d.hasAuxiliary&&o.push(p))}for(let d of o)r&&(yield this._room.unsubscribe(d),this._mediaTrackMap.get(d.outMediaTrack)===d.userId&&this._mediaTrackMap.delete(d.outMediaTrack));let a=this._remoteVideoConfigMap.get(`${e.userId}_${e.streamType}`);a&&a.observer&&a.observer.disconnect(),this._remoteVideoConfigMap.delete(`${e.userId}_${e.streamType}`)})}muteRemoteAudio(e,r){return v(this,null,function*(){this._remoteAudioMuteMap.set(e,r);try{if(e==="*")if(r)yield this._stopRemoteAudio({userId:e});else{let o=[...this._room.remotePublishedUserMap.values()];for(let s of o)s.muteState.hasAudio&&!this._remoteAudioConfigMap.has(s.userId)&&(yield this._startRemoteAudio({userId:s.userId}))}else r?yield this._stopRemoteAudio({userId:e}):this._remoteAudioConfigMap.has(e)||(yield this._startRemoteAudio({userId:e}))}catch(o){throw this._remoteAudioMuteMap.delete(e),o}})}setRemoteAudioVolume(e,r){if(e==="*"){let o=[...this._room.remotePublishedUserMap.values()];for(let s of o)this._remoteAudioVolumeMap.set(s.userId,r),s.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:r},track:s.remoteAudioTrack})}else if(e){let o=this._room.remotePublishedUserMap.get(e);this._remoteAudioVolumeMap.set(e,r),o&&o.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:r},track:o.remoteAudioTrack})}}startPlugin(e,r){return v(this,null,function*(){return e.start(r)})}updatePlugin(e,r){return v(this,null,function*(){return e.update(r)})}stopPlugin(e,r){return v(this,null,function*(){return e.stop(r)})}enableAudioVolumeEvaluation(e=2e3,r=!1){this._room.enableAudioVolumeEvaluation(e,r)}on(e,r,o){return this.listeners(e).includes(r)?this:(this._log.debug("on",e),super.on(e,r,o),this._eventListened.add(e),e===dr.EVENT.AUDIO_FRAME&&!this._getPCMAbortCtrl&&(this._getPCMAbortCtrl=this._room.audioManager.getPCM(s=>{this.emit(dr.EVENT.AUDIO_FRAME,{data:s})}),this._localAudioTrack&&this._localAudioTrack.on("input-media-track-changed",()=>{this._getPCMAbortCtrl&&(this._getPCMAbortCtrl.abort("inputMediaTrackChanged"),this._getPCMAbortCtrl=this._room.audioManager.getPCM(s=>{this.emit(dr.EVENT.AUDIO_FRAME,{data:s})}))})),this)}emit(e,...r){try{uE.has(e)&&this._log.debug(`emit ${e} ${JSON.stringify(r)}`)}catch(o){}return super.emit(e,...r)}off(e,r,o){var s,a;return this._log.debug("off",e),e==="*"?(this._eventListened.clear(),this.removeAllListeners(),(s=this._getPCMAbortCtrl)==null||s.abort("off"),delete this._getPCMAbortCtrl):(super.off(e,r,o),e===dr.EVENT.AUDIO_FRAME&&((a=this._getPCMAbortCtrl)==null||a.abort("off"),delete this._getPCMAbortCtrl)),this}getAudioTrack(e={userId:"",streamType:"main"}){let r,o=null,s="main",a=!1;if(Ae(e)?r=e:(r=e.userId,a=e.processed===!0,e.streamType&&(s=e.streamType)),r){let d=this._room.remotePublishedUserMap.get(r);d&&(o=d.remoteAudioTrack)}else o=s==="sub"?this._localScreenAudioTrack:this._localAudioTrack;return o?a&&o.outMediaTrack&&o.outMediaTrack!==o.mediaTrack?o.outMediaTrack.clone():o.mediaTrack:null}getVideoTrack(e={userId:"",streamType:"main"}){let{userId:r="",streamType:o="main",processed:s=!1}=e,a=null;if(r==="")o==="main"&&this._localVideoTrack&&(a=this._localVideoTrack),o==="sub"&&this._localScreenTrack&&(a=this._localScreenTrack);else{let d=this._room.remotePublishedUserMap.get(r);d&&(a=o==="main"?d.remoteVideoTrack:d.remoteAuxiliaryTrack)}return a?s&&a.outMediaTrack&&a.outMediaTrack!==a.mediaTrack?a.outMediaTrack.clone():a.mediaTrack:null}getVideoSnapshot(e={}){let{userId:r,streamType:o="main"}=e;if(r){let s=this._room.remotePublishedUserMap.get(r);if(o==="main"&&(s==null?void 0:s.muteState.hasVideo))return s.remoteVideoTrack.getVideoFrame();if(o==="sub"&&(s==null?void 0:s.muteState.hasAuxiliary))return s.remoteAuxiliaryTrack.getVideoFrame()}else{if(o==="main"&&this._localVideoTrack)return this._localVideoTrack.getVideoFrame();if(o==="sub"&&this._localScreenTrack)return this._localScreenTrack.getVideoFrame()}return""}_setCurrentSpeaker(e){var r,o;this._speakerId=e,(r=this._localAudioTrack)==null||r.setAudioOutput(e),(o=this._localScreenAudioTrack)==null||o.setAudioOutput(e),this._room.remotePublishedUserMap.forEach(s=>s.remoteAudioTrack.setAudioOutput(e))}setCurrentSpeaker(e){return v(this,null,function*(){(yield qi()).forEach(o=>{o.deviceId===e&&(this._setCurrentSpeaker(e),this.emit(re.DEVICE_CHANGED,{type:"speaker",action:"active",device:o}),It=o)}),this._log.warn('the "setCurrentSpeaker" method of the instance will be deprecated in the future, please use "TRTC.setCurrentSpeaker" instead. For more information, please visit: https://web.sdk.qcloud.com/trtc/webrtc/v5/doc/en/TRTC.html#.setCurrentSpeaker')})}_startRemoteAudio(e){return this._doStartRemoteAudio(e)}_doStartRemoteAudio(e){return v(this,null,function*(){let{userId:r}=e;if(this._remoteAudioConfigMap.has(r)){this._log.warn(`remote audio has already started. userId:${r}`);return}let o=this._room.remotePublishedUserMap.get(r);if(!o)return;let s={},a=o.remoteAudioTrack;this._listenOutputTrackChanged(a),this._speakerId&&a.setAudioOutput(this._speakerId);try{let d=this._remoteAudioVolumeMap.get(r),h=Fe(d)?d:100;s.volume=h,this._remoteAudioConfigMap.set(r,e),yield this._room.subscribe(a),We(Je(a,"decode-failed"),gt(Je(a,Z.INIT)),dt(()=>{this.startPlugin(pn.Name,{track:a,type:"auto",config:{codec:"opus",sampleRate:48e3,numberOfChannels:1}})})),yield this._updateAudioPlayOption({playOption:s,track:a})}catch(d){throw this._remoteAudioConfigMap.delete(r),d}this._emitTrackEvent(a)})}_stopRemoteAudio(e,r=!0){return v(this,null,function*(){let o=this._room.remotePublishedUserMap.get(e.userId);o&&(o.remoteAudioTrack.stop(),o.muteState.hasAudio&&r&&(yield this._room.unsubscribe(o.remoteAudioTrack)),this._mediaTrackMap.get(o.remoteAudioTrack.outMediaTrack)===e.userId&&this._mediaTrackMap.delete(o.remoteAudioTrack.outMediaTrack)),this._remoteAudioConfigMap.delete(`${e.userId}`)})}_enableVideoDecodeFallback(e,r){let o=this._room.videoDecodeFallbackType;!o||!this._plugins.has("TRTCVideoDecoder")||(this._log.info("remote video will fall back when decode failed"),We(Je(e,"decode-failed"),gt(Je(e,Z.INIT)),nh(()=>{this.startPlugin("TRTCVideoDecoder",{type:"auto",renderer:"videoFrame",track:e,config:{codec:"avc1.420028"},fallback:o})}),ja(Je(e,"decode-downgrade-state-changed")),dt(s=>{this.emit(re.VIDEO_DECODE_DOWNGRADE_STATE_CHANGED,me(J({},s),{streamType:r,userId:e.userId}))},s=>{this._log.error("fallback",s)},()=>this._log.info("fallback complete"))))}_updateVideoPlayOption(a){return v(this,arguments,function*({view:e,playOption:r,track:o,prevConfig:s}){if(o.setMirror(r.mirror),L(e)&&s&&s.view&&!ad(r)){let d=ys(s.view);d.length>0&&(yield o.play(d,r))}if(!L(e)){let d=ys(e);d.length>0?yield o.play(d,r):o.stop()}})}_updateAudioPlayOption(s){return v(this,arguments,function*({playOption:e={},track:r,prevConfig:o}){if(!r.isPlayCalled)try{yield r.play(null,e)}catch(a){}L(e.muted)||r.setPlayerMute(e.muted),L(e.volume)||r.setAudioVolume(e.volume/100)})}_listenOutputTrackChanged(e){e.listeners("output-media-track-changed").length===0&&e.on("output-media-track-changed",()=>this._emitTrackEvent(e,!1))}_emitTrackEvent(e,r=!0){let o=e.isRemote?e.userId:"";!e.outMediaTrack||r&&this._mediaTrackMap.get(e.outMediaTrack)===o||(this._mediaTrackMap.set(e.outMediaTrack,o),this.emit(re.TRACK,{userId:o,streamType:Za(e.streamType),track:e.outMediaTrack}))}_checkTrackToPublish(){var r,o,s;let e=[];if(((r=this._localAudioConfig)==null?void 0:r.publish)&&this._localAudioTrack&&e.push(this._localAudioTrack),((o=this._localVideoConfig)==null?void 0:o.publish)&&this._localVideoTrack&&e.push(this._localVideoTrack),(s=this._localScreenConfig)!=null&&s.publish&&(this._localScreenTrack&&e.push(this._localScreenTrack),this._localScreenAudioTrack&&e.push(this._localScreenAudioTrack)),e.length!==0)return this._room.publish(...e).catch(()=>{})}_observeView({remoteTrack:e,view:r,receiveWhenViewVisible:o=!1,viewRoot:s}){if(L(r))return;let a=this._remoteVideoConfigMap.get(`${e.userId}_${Za(e.streamType)}`);if(!a)return;let d=a.observer||void 0;if(r===null||rt(r)&&r.length===0||!o){d==null||d.disconnect(),e.isSubscribed||this._room.subscribe(e).catch(()=>{});return}let p=a.visibleViewMap||new Map,T=-1;(!d||d.root!==s)&&(d==null||d.disconnect(),p.clear(),d=new IntersectionObserver(R=>{R.forEach(N=>{p.set(N.target,N.isIntersecting)}),clearTimeout(T),T=window.setTimeout(()=>{[...p.values()].find(j=>j)?e.isSubscribed||this._room.subscribe(e).catch(()=>{}):e.isSubscribed&&this._room.unsubscribe(e).catch(()=>{})},200)},{root:s}));let y=new Set(ys(r));p.forEach((R,N)=>{y.has(N)||(d.unobserve(N),p.delete(N))}),y.forEach(R=>{p.set(R,!0),d.observe(R)}),d.takeRecords().forEach(R=>{p.set(R.target,R.isIntersecting)}),a.visibleViewMap=p,a.observer=d}_exitRoom(){return v(this,null,function*(){this._room.isJoined&&(yield this._room.leave()),new Set([...this._remoteAudioConfigMap.keys(),...this._remoteAudioMuteMap.keys()]).forEach(e=>{this._stopRemoteAudio({userId:e}).catch()}),[...this._remoteVideoConfigMap.keys()].forEach(e=>{let r=e.includes("main")?"main":"sub",o=e.split(`_${r}`)[0];o&&this._stopRemoteVideo({userId:o,streamType:r}).catch()}),this._remoteVideoConfigMap.clear(),this._remoteAudioConfigMap.clear(),this._remoteAudioMuteMap.clear(),this._remoteAudioVolumeMap.clear(),fE(this),this._room.remotePublishedUserMap.forEach(e=>{ct(e.remoteAudioTrack),ct(e.remoteVideoTrack),ct(e.remoteAuxiliaryTrack)})})}_stopScreenShare(){return v(this,null,function*(){var e;if(!!this._localScreenTrack){if(this._room.isJoined){let r=[this._localScreenTrack];this._localScreenAudioTrack&&r.push(this._localScreenAudioTrack),yield(e=this._room)==null?void 0:e.unpublish(...r).catch(()=>{})}this._localScreenTrack.stop(),this._localScreenTrack.close(),this._localScreenAudioTrack&&(this._localScreenAudioTrack.stop(),this._localScreenAudioTrack.close(),this._room.audioManager.removeInput(this._localScreenAudioTrack),this._localScreenAudioTrack=null),ct(this._localScreenTrack),this._localScreenTrack=null,this._localScreenConfig=null}})}_initActiveSpeaker(){return v(this,null,function*(){if(It&&!qs(It))this.emit(re.DEVICE_CHANGED,{type:"speaker",action:"active",device:It});else{let e=yield qi();if(e[0]&&!qs(e[0]))It=e[0],this.emit(re.DEVICE_CHANGED,{type:"speaker",action:"active",device:e[0]});else{let r=({track:o})=>{o.kind==="audio"&&(!It||qs(It))&&(this._initActiveSpeaker(),B.off("102",this._initActiveSpeaker))};B.on("102",r)}}})}_onAudioAvailable({userId:e}){let r=this._remoteAudioMuteMap.has(e)?this._remoteAudioMuteMap.get(e):this._remoteAudioMuteMap.get("*");(r===!1||this._room.autoReceiveAudio&&!r)&&this._doStartRemoteAudio({userId:e}).catch(()=>{})}_onVideoAvailable({userId:e,streamType:r}){if(!this._room.autoReceiveVideo)return;let o=this._room.remotePublishedUserMap.get(e);if(o){let s=r==="main"?o.remoteVideoTrack:o.remoteAuxiliaryTrack,a=[s];this._room.autoReceiveAudio&&a.push(o.remoteAudioTrack),this._room.subscribe(...a).then(()=>{this._emitTrackEvent(s)}).catch(()=>{})}}_onAudioUnavailable({userId:e,muteState:r}){r.hasAudio&&r.audioMuted||this._stopRemoteAudio({userId:e},!1).catch(()=>{})}_onVideoUnavailable({userId:e,streamType:r}){this._stopRemoteVideo({userId:e,streamType:r},!1).catch(()=>{})}sendSEIMessage(e,r){var s;let o=this._plugins.get("SEI");o&&(o.update({buffer:e,options:me(J({seiPayloadType:243},r),{small:!!((s=this._localVideoTrack)!=null&&s.small)})}),X.addCount({key:5e5,useUV:!0}))}sendCustomMessage(e){var r,o;(o=(r=this._room).sendCustomMessage)==null||o.call(r,e),X.addCount({key:500001,useUV:!0})}static setLogLevel(e,r){V.setLogLevel(e),L(r)||(r?V.enableUploadLog():V.disableUploadLog())}static isSupported(){return Wd()}static getCameraList(e=!0){return or(e)}static getMicrophoneList(e=!0){return qt(e)}static getSpeakerList(e=!0){return qi(e)}static setCurrentSpeaker(e){return v(this,null,function*(){if(ft&&(e===gr.SPEAKER||e===gr.HEADSET)){let o=yield dr.getMicrophoneList(),s="";if(o.forEach(a=>{a.label===e&&(s=a.deviceId)}),!s)return;tc.forEach(a=>v(this,null,function*(){a._localAudioTrack&&(yield a.updateLocalAudio({option:{microphoneId:s}}))}));return}(yield qi()).forEach(o=>{o.deviceId===e&&(tc.forEach(s=>{s._setCurrentSpeaker(e),s.emit(re.DEVICE_CHANGED,{type:"speaker",action:"active",device:o})}),It=o)})})}static _addKVStat({type:e,key:r,value:o,base:s,useUV:a,version:d}){switch(d&&(xo.version=d),e){case"count":xo.addCount({key:r,useUV:a});break;case"enum":xo.addEnum({key:r,value:o,useUV:a});break;case"number":xo.addNumber({key:r,value:o,split:s});break}}},Se=dr;l(Se,"_loggerManager",V),l(Se,"EVENT",re),l(Se,"ERROR_CODE",ne),l(Se,"TYPE",gr),l(Se,"frameWorkType",30),q([je({replaceArg:i=>({argIndex:0,value:{name:"plugin"in i?i.plugin.Name:i.Name,assetsPath:"assetsPath"in i?i==null?void 0:i.assetsPath:"default"}})})],Se.prototype,"use",1),q([Dt(Tt.TRTC.enterRoom),to("room",([i],[t])=>(i.roomId||i.strRoomId)===(t.roomId||t.strRoomId)&&i.userId===t.userId&&i.sdkAppId===t.sdkAppId),Ce(i=>function(t){return this._log.setUserId(t.userId),this._log.setSdkAppId(t.sdkAppId),i.call(this,t)}),je()],Se.prototype,"enterRoom",1),q([je()],Se.prototype,"exitRoom",1),q([Dt(Tt.TRTC.switchRole),Qo("room",{merge:(i,t)=>t}),je()],Se.prototype,"switchRole",1),q([je()],Se.prototype,"destroy",1),q([Dt(Tt.TRTC.startLocalAudio),to("audio",([i],[t])=>{var e,r;return((e=i==null?void 0:i.option)==null?void 0:e.microphoneId)===((r=t==null?void 0:t.option)==null?void 0:r.microphoneId)}),je()],Se.prototype,"startLocalAudio",1),q([Dt(Tt.TRTC.updateLocalAudio),Qo("audio",{debounce:{delay:200,getKey:()=>`${SE}-localAudio`,isNeedToDebounce:i=>{var t;return!L((t=i.option)==null?void 0:t.captureVolume)}}}),je()],Se.prototype,"updateLocalAudio",1),q([ro("audio"),je()],Se.prototype,"stopLocalAudio",1),q([Dt(Tt.TRTC.startLocalVideo),to("video",([i],[t])=>{var e,r;return((e=i==null?void 0:i.option)==null?void 0:e.cameraId)===((r=t==null?void 0:t.option)==null?void 0:r.cameraId)}),je()],Se.prototype,"startLocalVideo",1),q([Dt(Tt.TRTC.updateLocalVideo),Qo("video"),je()],Se.prototype,"updateLocalVideo",1),q([ro("video"),je()],Se.prototype,"stopLocalVideo",1),q([Dt(Tt.TRTC.startScreenShare),to("screen",()=>!0),je()],Se.prototype,"startScreenShare",1),q([Dt(Tt.TRTC.updateScreenShare),Qo("screen"),je()],Se.prototype,"updateScreenShare",1),q([je()],Se.prototype,"stopScreenShare",1),q([Dt(Tt.TRTC.startRemoteVideo),to(i=>`v${i.userId}${i.streamType}`,()=>!0),je({getRemoteId:i=>`${i.userId}_${i.streamType}`})],Se.prototype,"startRemoteVideo",1),q([Dt(Tt.TRTC.updateRemoteVideo),Qo(i=>`v${i.userId}${i.streamType}`),je({getRemoteId:i=>`${i.userId}_${i.streamType}`})],Se.prototype,"updateRemoteVideo",1),q([Dt(Tt.TRTC.stopRemoteVideo),Ce(i=>function(t){return v(this,null,function*(){if(t.userId==="*"){let e=[];return this._room.remotePublishedUserMap.forEach(r=>{this._remoteVideoConfigMap.has(`${r.userId}_${"main"}`)&&e.push(this.stopRemoteVideo({streamType:"main",userId:r.userId}).catch(()=>{})),this._remoteVideoConfigMap.has(`${r.userId}_${"sub"}`)&&e.push(this.stopRemoteVideo({streamType:"sub",userId:r.userId}).catch(()=>{}))}),Promise.all(e)}return i.call(this,t)})}),je({getRemoteId:i=>`${i.userId}_${i.streamType}`})],Se.prototype,"stopRemoteVideo",1),q([ro(i=>`v${i.userId}${i.streamType}`)],Se.prototype,"_stopRemoteVideo",1),q([Dt(...Tt.TRTC.muteRemoteAudio),je({getRemoteId:i=>i})],Se.prototype,"muteRemoteAudio",1),q([sf(...Tt.TRTC.setRemoteAudioVolume),_E(200,i=>i),je({getRemoteId:i=>i})],Se.prototype,"setRemoteAudioVolume",1),q([$u("start"),zi(i=>{var t;return(t=i.afterStart)==null?void 0:t.call(i)}),to((i,t)=>i.disableRandomCall?null:i.getAlias()+i.getGroup(t)),je({replaceArg:i=>({argIndex:0,value:i.getName()}),getKVReportKey:i=>Qp[i.getName()],ignoreLog:i=>i.getName()==="Debug"})],Se.prototype,"startPlugin",1),q([$u("update"),Qo((i,t)=>i.disableRandomCall?null:i.getAlias()+i.getGroup(t)),je({replaceArg:i=>({argIndex:0,value:i.getName()}),getKVReportKey:i=>Yp[i.getName()]})],Se.prototype,"updatePlugin",1),q([$u("stop"),ro((i,t)=>{if(i.disableRandomCall)return null;let e=i.getGroup(t),r=i.getAlias();return e==="*"?new RegExp(`${r}.*`):r+e}),je({replaceArg:i=>({argIndex:0,value:i.getName()}),getKVReportKey:i=>Zp[i.getName()]})],Se.prototype,"stopPlugin",1),q([sf(...Tt.TRTC.enableAudioVolumeEvaluation)],Se.prototype,"enableAudioVolumeEvaluation",1),q([je()],Se.prototype,"getVideoSnapshot",1),q([je()],Se.prototype,"_setCurrentSpeaker",1),q([to(i=>`a${i.userId}`,()=>!0)],Se.prototype,"_startRemoteAudio",1),q([Ce(i=>function(t){return v(this,null,function*(){return t.userId==="*"?Promise.all([...this._room.remotePublishedUserMap.values()].map(e=>this._stopRemoteAudio(me(J({},t),{userId:e.userId})).catch(()=>{}))):i.call(this,t)})}),ro(i=>`a${i.userId}`)],Se.prototype,"_stopRemoteAudio",1),q([ro("room")],Se.prototype,"_exitRoom",1),q([ro("screen")],Se.prototype,"_stopScreenShare",1),q([Dt(...Tt.TRTC.sendSEIMessage),Zh({timesInSecond:30,maxSizeInSecond:8e3,getSize:(...i)=>i[0].byteLength})],Se.prototype,"sendSEIMessage",1),q([Dt(Tt.TRTC.sendCustomMessage),Zh({timesInSecond:30,maxSizeInSecond:8e3,getSize:i=>i.data.byteLength})],Se.prototype,"sendCustomMessage",1),q([Dt(Tt.TRTC.create)],Se,"_create",1);var mn=Se;var zu=class{constructor(t,e){this.userId=e.userId||"",this.tinyId=e.tinyId||"",this.role=e.role||"audience",this.terminalType=e.terminalType,this.remoteAudioTrack=new Vo(t,this),this.remoteVideoTrack=new Yi(t,this),this.remoteAuxiliaryTrack=new yu(t,this),this.flag=e.flag||0}get subscribeState(){let t={audio:!1,video:!1,auxiliary:!1,smallVideo:!1};return this.remoteVideoTrack.isSubscribed&&(this.remoteVideoTrack.mediaType&8?t.smallVideo=!0:t.video=!0),this.remoteAudioTrack.isSubscribed&&(t.audio=!0),this.remoteAuxiliaryTrack.isSubscribed&&(t.auxiliary=!0),t}get muteState(){return ia(this.flag,this.userId)}get flag(){return this._flag}set flag(t){if(t===this._flag)return;let e,r=this.muteState;this._flag=t;let o=this.muteState;for(e in o)r[e]!=o[e]&&console.log(this.userId,e,r[e],"->",o[e]);this.remoteAudioTrack.onFlagChanged(),this.remoteVideoTrack.onFlagChanged(),this.remoteAuxiliaryTrack.onFlagChanged()}};var gf=class{constructor(){this._set=new Set;B.on(O.LEAVE_SUCCESS,this.delete,this)}add({room:t,roomId:e}){if(t.scene==="rtc")return;let r=this.getKey(t.userId,e||t.roomId,t.sdkAppId,t.useStringRoomId);this._set.add(r)}delete({room:t,roomId:e}){if(t.scene==="rtc")return;let r=this.getKey(t.userId,t.roomId||e,t.sdkAppId,t.useStringRoomId);this._set.delete(r)}getKey(t,e,r,o){return`${r}_${e}_${t}_${o}`}isJoined({userId:t,roomId:e,sdkAppId:r,room:o}){return o.scene==="rtc"?!1:this._set.has(this.getKey(t,e,r,o.useStringRoomId))}};function oA(){return v(this,null,function*(){let i,t;try{let y=yield qt();i=y&&y.length}catch(y){}try{let y=yield or();t=y&&y.length}catch(y){}let e={microphone:i,camera:t},{isH264EncodeSupported:r,isVp8EncodeSupported:o,isH264DecodeSupported:s,isVp8DecodeSupported:a}=this.checkSystemResult.detail,d=Gi.basis(),h={webRTC:d.isWebRTCSupported,getUserMedia:d.isGetUserMediaSupported,webSocket:d.isWebSocketsSupported,screenShare:d.isScreenShareSupported,webAudio:d.isWebAudioSupported,h264Encode:r,h264Decode:s,vp8Encode:o,vp8Decode:a},p={browser:d.browser,os:d.os,trtc:h,devices:e},T={isWebCodecSupported:d.isWebCodecSupported,isMediaSessionSupported:d.isMediaSessionSupported,isWebTransportSupported:d.isWebTransportSupported};Le.uploadEvent({log:`trtcstats-${JSON.stringify(p)}`,userId:this.userId}),this._log.info(`TrtcStats-${JSON.stringify(p)}`),Le.uploadEvent({log:`trtcadvancedstats-${JSON.stringify(T)}`,userId:this.userId})})}function AE(){return Ce(i=>{let t=new gf;return function(e,r,o){return v(this,null,function*(){let s=String(e.roomId||e.strRoomId);if(this.userId=e.userId,this.sdkAppId=e.sdkAppId,this.userSig=e.userSig,this._log.setSdkAppId(this.sdkAppId),this._log.setUserId(this.userId),this.scene=r,e.privateMapKey=e.privateMapKey||"",this.isJoined)throw new de({code:Y.INVALID_OPERATION,message:ot({key:it.INVALID_JOIN})});if(this.checkDestroy(),t.isJoined({userId:this.userId,roomId:s,sdkAppId:this.sdkAppId,room:this}))throw new de({code:Y.INVALID_OPERATION,message:ot({key:it.REPEAT_JOIN,data:this.userId})});t.add({room:this,roomId:s}),this.role=e.role===21?"audience":"anchor",this._log.info(`Join() => joining room: ${s} useStringRoomId: ${this.useStringRoomId} scene: ${this.scene} role: ${this.role}`),B.emit(O.JOIN_START,{room:this,roomId:s,params:e});let a=Gr.getEnv();a||(a=pi.QCLOUD,this.proxy_ws&&(this.proxy_ws.startsWith(ed.OLD_CLOUD_LADDER)?a=pi.OLD_CLOUD_LADDER:this.proxy_ws.startsWith(ed.WEBRTC)&&(a=pi.WEBRTC))),Le.setConfig({env:a,sdkAppId:String(this.sdkAppId),userId:this.userId,roomId:s}),Gi.checkSystemRequirementsInternal().then(d=>{this.checkSystemResult=d,oA.call(this)});try{!this.proxy_ws&&!this.proxy_wt&&!this.scheduleResult.domains&&!Gr.getEnv()&&(yield this.schedule(e,o));let d=yield i.call(this,e,r,o);return this.roomId=s,this._joinedTimestamp=Gr.performanceNow(),B.emit(O.JOIN_SUCCESS,{room:this}),o===30&&!e.component&&Le.uploadEvent({log:`stat-conv-${Number(wr)}-${location.hostname}`,userId:this.userId}),d}catch(d){throw t.delete({room:this,roomId:s}),B.emit(O.JOIN_FAILED,{room:this,error:d}),d}})}})}var bE=()=>Ce(i=>function(...t){return v(this,null,function*(){B.emit(O.LEAVE_START,{room:this}),yield i.call(this),B.emit(O.LEAVE_SUCCESS,{room:this,roomId:this.roomId})})});function vE(){return Ce(i=>function(...t){return v(this,null,function*(){if(this.scene==="live"&&this.role!=="anchor"||(t=t.filter(r=>r.outMediaTrack&&r.state==="capture"),!t.length))return;B.emit("61",{room:this});let e=i.apply(this,t);return t.forEach(r=>r.publish(this,e)),e})})}function RE(){return Ce(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>r.unpublish()),e})}function CE(){return Ce(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>!r.isSubscribed&&r.subscribe(e)),e})}function sA({fn:i,context:t}){return function(...e){try{let r=i.apply(t,e);return Li(r)?r.catch(o=>V.error(`${i.name}() error observed ${o}`)):r}catch(r){V.error(`${i.name}() error observed ${r}`)}}}var Ju=class{constructor(t){l(this,"_frameWorkType");l(this,"_component");l(this,"_language");l(this,"connectionType");l(this,"_room");l(this,"_signalInfo",{tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,endReportExtend:void 0});l(this,"_keyPrefix");l(this,"_log");l(this,"_intervalId");l(this,"_firstPublishedUserList");l(this,"_networkQuality");l(this,"_basicInfo");l(this,"_pathJoinRoom");l(this,"_pathLeaveRoom");l(this,"_pathMainVideoMap");l(this,"_pathMainAudioMap");l(this,"_pathAuxiliaryMap");l(this,"_remoteStreamStatMap");l(this,"_localStreamStat");l(this,"_eventMap",new Map);l(this,"_captureCostSum",0);l(this,"_captureCostCount",0);l(this,"isDestroyed",!1);this._frameWorkType=t.frameWorkType||30,this._component=t.component||0,this.connectionType=t.connectionType||1,this._language=t.language||0,this._room=t.room,this._keyPrefix="key_point",this._log=V.createLogger({id:"kpm",userId:this._room.userId,sdkAppId:this._room.sdkAppId}),Object.getOwnPropertyNames(this.__proto__).forEach(e=>{e.startsWith("handle")&&Ve(this[e])&&(this[e]=sA({fn:this[e],context:this}))}),this.initData(),this.installEvents()}initData(){this._firstPublishedUserList=[],this._networkQuality={totalUplinkRTT:0,totalUplinkLoss:0,count:0,totalDownlinkRTTAndLossMap:new Map},this._basicInfo={string_sdk_version:Ke,uint32_os_type:15,string_device_name:"",string_http_user_agent:navigator.userAgent,string_os_version:"",uint32_avg_rtt:0,uint32_avg_up_loss:0,uint32_scene:this._room.scene==="live"?1:0,uint32_joining_duration:0,uint32_networkType:0,uint32_framework:this._frameWorkType,uint32_component:this._component,uint32_connection_type:this.connectionType,uint32_caller_coding_language:this._language,string_domain:location.hostname},this._pathJoinRoom={uint64_start_time:0,uint64_send_request_acc_ip_cmd_start_time:0,uint64_send_request_acc_ip_cmd_end_time:0,uint64_send_request_enter_room_cmd_start_time:0,uint64_send_request_enter_room_cmd_end_time:0,uint64_send_first_video_frame_time:0,uint64_recv_userlist_time:0,uint64_end_time:0,int32_send_request_acc_ip_cmd_ret:0,int32_send_request_enter_room_cmd_ret:0,int32_end_ret:0},this._pathLeaveRoom={uint64_start_time:0,uint64_send_request_exit_room_cmd_start_time:0,uint64_send_request_exit_room_cmd_end_time:0,uint64_end_time:0,int32_send_request_exit_room_cmd_ret:0,int32_end_ret:0},this._localStreamStat={totalVideoBitrate:0,totalVideoFPS:0,totalVideoHeight:0,totalVideoWidth:0,totalAudioLevel:0,videoCount:0,audioLevelCount:0,publishStartTime:0,statsToReport:{uint32_audio_capture_db:0,uint32_video_big_capture_fps:0,uint32_video_big_bitrate:0,uint32_video_big_resolution:0}},this._pathMainVideoMap=new Map,this._pathMainAudioMap=new Map,this._pathAuxiliaryMap=new Map,this._remoteStreamStatMap=new Map,Ea().then(t=>{this._basicInfo.string_os_version=vo(),t?this._basicInfo.string_device_name=t.mobile?t.model:this._basicInfo.string_os_version:this._basicInfo.string_device_name=this._basicInfo.string_os_version})}addEvent(t,e){return this._eventMap.set(t,e),B.on(t,e),this}installEvents(){this.handleUnload=this.handleUnload.bind(this),window.addEventListener("pagehide",this.handleUnload),this._room.once("banned",()=>this.handleLeaveSuccess({room:this._room,roomId:this._room.roomId})),this.addEvent(O.JOIN_START,this.handleJoinStart).addEvent(O.JOIN_SCHEDULE_SUCCESS,this.handleJoinScheduleSuccess).addEvent(O.JOIN_SIGNAL_CONNECTION_START,this.handleSignalConnectionStart).addEvent(O.JOIN_SIGNAL_CONNECTION_END,this.handleSignalConnectionEnd).addEvent(O.JOIN_SEND_CMD,this.handleJoinSendCMD).addEvent(O.JOIN_RECEIVED_CMD_RES,this.handleJoinReceivedCMDResponce).addEvent(O.JOIN_SUCCESS,this.handleJoinSuccess).addEvent(O.JOIN_FAILED,this.handleJoinFailed).addEvent(O.LEAVE_START,this.handleLeaveStart).addEvent(O.LEAVE_SUCCESS,this.handleLeaveSuccess).addEvent(O.LEAVE_SEND_CMD,this.handleLeaveSendCMD).addEvent(O.LOCAL_TRACK_CAPTURE_START,this.handleTrackCaptureStart).addEvent(O.LOCAL_TRACK_CAPTURE_SUCCESS,this.handleTrackCaptureSuccess).addEvent(O.LOCAL_TRACK_CAPTURE_FAILED,this.handleTrackCaptureFailed).addEvent(O.PUBLISH_START,this.handlePublishStart).addEvent(O.SEND_FIRST_VIDEO_FRAME,this.handleSendFirstVideoFrame).addEvent(O.SUBSCRIBE_START,this.handleSubscribeStart).addEvent(O.SUBSCRIBE_SUCCESS,this.handleSubscribed).addEvent(O.PLAY_TRACK_START,this.handlePlayStart).addEvent(O.VIDEO_LOADED_DATA,this.handleVideoLoadedData).addEvent(O.PLAYER_STATE_CHANGED,({track:t,state:e,type:r})=>{!t.isRemote||!this.hitTest(t.room)||e==="PLAYING"&&(r===D.AUDIO?this.handleAudioPlaying(t):this.handleVideoPlaying(t))}).addEvent(O.NETWORK_QUALITY,this.handleNetworkQuality).addEvent(O.HEARTBEAT_REPORT,this.handleHeartbeatStats).addEvent(O.RECEIVED_PUBLISHED_USER_LIST,this.handleReceivedPublishUserList).addEvent(O.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{if(!this.hitTest(t))return;let o=e.hasAudio||e.hasVideo||e.hasSmall,s=e.hasAuxiliary,a=r.hasAudio||r.hasVideo||r.hasSmall,d=r.hasAuxiliary;!o&&a&&this.handleRemoteStreamAdded(r.userId,"main"),!s&&d&&this.handleRemoteStreamAdded(r.userId,"auxiliary")}).addEvent(O.SINGLE_CONNECTION_STAT,({room:t,stat:e})=>{this.hitTest(t)&&(this._pathJoinRoom.int32_ice_cost=e.ice,this._pathJoinRoom.int32_dtls_cost=e.dtls,this._pathJoinRoom.int32_peer_connection_cost=e.peerConnection)})}uninstallEvents(){window.removeEventListener("unload",this.handleUnload),this._eventMap.forEach((t,e)=>B.off(e,t)),this._eventMap.clear()}destroy(){this.uninstallEvents(),Et.clearTask(this._intervalId),this._pathJoinRoom.uint64_start_time===0&&(this._room=null),this.isDestroyed=!0}handleUnload(){this._room.isJoined&&this.handleLeaveSuccess({room:this._room,roomId:this._room.roomId})}handleJoinStart(t){this.hitTest(t.room)&&(this._pathJoinRoom.uint64_start_time===0&&(this._pathJoinRoom.uint64_start_time=Date.now()),t.params&&(L(t.params.frameWorkType)||(this._frameWorkType=t.params.frameWorkType,this._basicInfo.uint32_framework=this._frameWorkType),L(t.params.component)||(this._component=t.params.component,this._basicInfo.uint32_component=this._component),L(t.params.language)||(this._language=t.params.language,this._basicInfo.uint32_caller_coding_language=this._language)))}handleJoinScheduleSuccess({room:t,detailCost:e}){if(this.hitTest(t)&&e){let{totalCost:r,local:o,dns:s,tcp:a,tls:d,request:h,response:p}=e;this._pathJoinRoom.int32_schedule_cost=r,this._pathJoinRoom.int32_schedule_local=o,this._pathJoinRoom.int32_schedule_dns=s,this._pathJoinRoom.int32_schedule_tcp=a,this._pathJoinRoom.int32_schedule_tls=d,this._pathJoinRoom.int32_schedule_request=h,this._pathJoinRoom.int32_schedule_response=p}}handleSignalConnectionStart({room:t}){this.hitTest(t)&&this._pathJoinRoom.uint64_send_request_acc_ip_cmd_start_time===0&&(this._pathJoinRoom.uint64_send_request_acc_ip_cmd_start_time=Date.now())}handleSignalConnectionEnd({room:t,error:e}){this.hitTest(t)&&this._pathJoinRoom.uint64_send_request_acc_ip_cmd_end_time===0&&(this._pathJoinRoom.uint64_send_request_acc_ip_cmd_end_time=Date.now(),e&&(this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret=e instanceof de?Number(e.getExtraCode()||e.getCode()):Y.UNKNOWN,this._pathJoinRoom.int32_end_ret=this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret))}handleJoinSendCMD(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time===0&&(this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time=Date.now())}handleJoinReceivedCMDResponce(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time===0&&(this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=Date.now(),this._pathJoinRoom.int32_send_request_enter_room_cmd_ret=t.code,t.code!==0&&(this._pathJoinRoom.int32_end_ret=this._pathJoinRoom.int32_send_request_enter_room_cmd_ret))}handleJoinSuccess(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_end_time===0&&(this._pathJoinRoom.uint64_end_time=Date.now(),this._pathJoinRoom.int32_end_ret=0,this._signalInfo=t.room.getSignalInfo())}handleJoinFailed({room:t,error:e}){this.hitTest(t)&&(this._pathJoinRoom.uint64_end_time=Date.now(),this._pathJoinRoom.int32_end_ret===0&&(this._pathJoinRoom.int32_end_ret=e.code||this._pathJoinRoom.int32_send_request_enter_room_cmd_ret||this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret),setTimeout(()=>{this.report()}))}handleReceivedPublishUserList(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_recv_userlist_time===0&&(this._pathJoinRoom.uint64_recv_userlist_time=Date.now(),this._firstPublishedUserList=t.publishedUserList||[])}handleSendFirstVideoFrame({room:t}){!this.hitTest(t)||this._pathJoinRoom.uint64_send_first_video_frame_time===0&&this._pathJoinRoom.uint64_start_time!==0&&(this._pathJoinRoom.uint64_send_first_video_frame_time=Date.now())}handleLeaveStart(t){this.hitTest(t.room)&&(this._pathLeaveRoom.uint64_start_time=Date.now())}handleLeaveSuccess(t){this.hitTest(t.room)&&this._pathLeaveRoom.uint64_end_time===0&&(this._pathLeaveRoom.uint64_end_time=Date.now(),this._pathJoinRoom.uint64_end_time!==0?this._basicInfo.uint32_joining_duration=this._pathLeaveRoom.uint64_end_time-this._pathJoinRoom.uint64_end_time:this._log.warn("pathJoinRoom endTime is 0"),this.report())}handleLeaveSendCMD(t){this.hitTest(t.room)&&(this._pathLeaveRoom.uint64_send_request_exit_room_cmd_start_time=Date.now(),this._pathLeaveRoom.uint64_send_request_exit_room_cmd_end_time=Date.now())}handleRemoteStreamAdded(t,e){var o;let r=`${t}_${e}`;if(!this._remoteStreamStatMap.has(r)){let s={userId:t,totalVideoFPS:0,totalVideoBitrate:0,totalAudioLevel:0,totalAudioBitrate:0,totalLoss:0,audioCount:0,audioLevelCount:0,videoCount:0,networkQualityCount:0,streamAddedTime:Date.now(),subscribeStartTime:0,subscribedTime:0,playStreamTime:0,statsToReport:me(J({},nA),{msg_user_info:new rc({userId:t,tinyId:(o=this._room.remotePublishedUserMap.get(t))==null?void 0:o.tinyId,role:20})})};s.statsToReport.uint32_stream_type=e==="main"?2:7,this._remoteStreamStatMap.set(r,s)}}handleSubscribeStart({room:t,remotePublishedUser:e,streamType:r,subscribeState:o}){if(!this.hitTest(t))return;let{userId:s,tinyId:a,role:d}=e,h=new rc({userId:s,tinyId:a,role:d==="anchor"?20:21}),p=Date.now(),T=`${s}_${r}`,y=this._remoteStreamStatMap.get(T);y&&y.subscribeStartTime===0&&(y.subscribeStartTime=p),r==="main"?(e.muteState.hasVideo&&(o.video||o.smallVideo)&&!this._pathMainVideoMap.has(T)&&this._pathMainVideoMap.set(T,{statsToReport:{msg_user_info:h,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_render_first_frame_time:0,uint64_combine_first_frame_time:0},userId:s,sendSubscribeCMDTime:p}),e.muteState.hasAudio&&o.audio&&!this._pathMainAudioMap.has(T)&&this._pathMainAudioMap.set(T,{statsToReport:{msg_user_info:h,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_play_first_frame_time:0},userId:s,sendSubscribeCMDTime:p})):e.muteState.hasAuxiliary&&o.auxiliary&&!this._pathAuxiliaryMap.has(T)&&this._pathAuxiliaryMap.set(T,{sendSubscribeCMDTime:p})}handleSubscribed({room:t,remotePublishedUser:e,streamType:r}){if(this.hitTest(t)){let o=`${e.userId}_${r}`,s=this._remoteStreamStatMap.get(o);s&&s.subscribedTime===0&&(s.subscribedTime=Date.now())}}handlePlayStart({track:t}){if(!t.isRemote||!this.hitTest(t.room))return;let e=`${t.userId}_${t.streamType}`,r=this._remoteStreamStatMap.get(e);(r==null?void 0:r.playStreamTime)===0&&(r.playStreamTime=Date.now())}handleVideoLoadedData({track:t}){if(!t.isRemote||!this.hitTest(t.room))return;let e=`${t.userId}_${t.streamType}`,r=this._pathMainVideoMap.get(e);r&&r.statsToReport.uint64_combine_first_frame_time===0&&(r.statsToReport.uint64_combine_first_frame_time=Date.now())}handleVideoPlaying(t){let e=`${t.userId}_${t.streamType}`,r=Date.now(),o=this._pathMainVideoMap.get(e),s=this._remoteStreamStatMap.get(e);if(o&&(o.statsToReport.uint64_render_first_frame_time===0&&(o.statsToReport.uint64_render_first_frame_time=r),s)){let{statsToReport:d,playStreamTime:h,subscribedTime:p}=s;d.uint32_video_render_first===0&&h-p<=100&&(d.uint32_video_render_first=r-o.sendSubscribeCMDTime)}let a=this._pathAuxiliaryMap.get(e);if(a&&s){let{statsToReport:d,playStreamTime:h,subscribedTime:p}=s;d.uint32_video_render_first===0&&h-p<=100&&(d.uint32_video_render_first=r-a.sendSubscribeCMDTime)}}handleAudioPlaying(t){let e=`${t.userId}_${t.streamType}`,r=this._pathMainAudioMap.get(e);r&&r.statsToReport.uint64_play_first_frame_time===0&&(r.statsToReport.uint64_play_first_frame_time=Date.now())}handleNetworkQuality(t){this.hitTest(t.room)&&(this._networkQuality.totalUplinkLoss+=t.uplink.loss,this._networkQuality.totalUplinkRTT+=t.uplink.rtt,this._networkQuality.count++,t.downlinks.forEach(({rtt:e,loss:r,userId:o,videoDelay:s,audioDelay:a})=>{let d=this._networkQuality.totalDownlinkRTTAndLossMap.get(o);if(d)d.totalRTT+=e,d.totalLoss+=r,s&&(d.totalVideoDelay=(d.totalVideoDelay||0)+s,d.videoDelayCount=(d.videoDelayCount||0)+1),a&&(d.totalAudioDelay=(d.totalAudioDelay||0)+a,d.audioDelayCount=(d.audioDelayCount||0)+1),d.count++;else{let h,p,T,y;s&&(p=s,T=1),a&&(h=a,y=1),this._networkQuality.totalDownlinkRTTAndLossMap.set(o,{totalRTT:e,totalLoss:r,count:1,totalAudioDelay:h,totalVideoDelay:p,audioDelayCount:y,videoDelayCount:T})}}))}handleHeartbeatStats(t){if(this.hitTest(t.room)){let{msg_device_info:e,msg_up_stream_info:r,msg_down_stream_info:o}=t.report;if(r.msg_video_status[0]){let{uint32_video_codec_bitrate:s,uint32_video_enc_fps:a,uint32_video_width:d,uint32_video_height:h}=r.msg_video_status[0];this._localStreamStat.totalVideoBitrate+=s,this._localStreamStat.totalVideoFPS+=a,this._localStreamStat.totalVideoWidth+=d,this._localStreamStat.totalVideoHeight+=h,this._localStreamStat.videoCount++}if(r.msg_audio_status){let{uint32_audio_level:s}=r.msg_audio_status;Math.floor(s/Ii*100)>0&&(this._localStreamStat.totalAudioLevel+=s/Ii,this._localStreamStat.audioLevelCount++)}o.forEach(s=>{let{msg_user_info:a,msg_audio_status:d,msg_video_status:h}=s,p=a.str_identifier,T=this._room.remotePublishedUserMap.get(p);if(h.forEach(y=>{let R=y.uint32_video_stream_type===2,N=y.uint32_video_stream_type===7,j=`${p}_${R?"main":"auxiliary"}`,W=this._remoteStreamStatMap.get(j);if(!!W&&(R&&(T==null?void 0:T.remoteVideoTrack.isSubscribed)||N&&(T==null?void 0:T.remoteAuxiliaryTrack))){W.totalVideoFPS+=y.uint32_video_receive_fps,W.totalVideoBitrate+=y.uint32_video_codec_bitrate,W.videoCount++,W.statsToReport.uint32_video_width===0&&(W.statsToReport.uint32_video_width=y.uint32_video_width),W.statsToReport.uint32_video_height===0&&(W.statsToReport.uint32_video_height=y.uint32_video_height);let F=R?T.remoteVideoTrack:T.remoteAuxiliaryTrack;F.stat.jitterBufferDelay&&(W.videoJitterBufferDelay=F.stat.jitterBufferDelay),F.stat.framesReceived&&(W.statsToReport.uint32_video_consume_render_rate=Math.floor(F.stat.framesDecoded/F.stat.framesReceived*Gn(10,6)))}}),d){let y=`${p}_${"main"}`,R=this._remoteStreamStatMap.get(y);this._remoteStreamStatMap.has(y)&&R&&(T==null?void 0:T.remoteAudioTrack.isSubscribed)&&(R.totalAudioBitrate+=d.uint32_audio_codec_bitrate,R.audioCount++,T.remoteAudioTrack.stat.jitterBufferDelay&&(R.audioJitterBufferDelay=T.remoteAudioTrack.stat.jitterBufferDelay),Math.floor(d.uint32_audio_level/Ii*100)>0&&(R.totalAudioLevel+=d.uint32_audio_level/Ii,R.audioLevelCount++))}}),e.uint32_audio_capture_cost&&(this._captureCostSum+=e.uint32_audio_capture_cost,this._captureCostCount+=1,this._captureCostCount>=100&&(this._basicInfo.uint32_audio_capture_cost=Math.floor(this._captureCostSum/this._captureCostCount),this._captureCostSum=0,this._captureCostCount=0))}}handlePublishStart({room:t}){this.hitTest(t)&&this._localStreamStat.publishStartTime===0&&(this._localStreamStat.publishStartTime=Date.now())}handleTrackCaptureStart({track:t}){t.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_start_time&&(this._pathJoinRoom.uint64_init_audio_start_time=Date.now()),t.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_start_time&&(this._pathJoinRoom.uint64_init_camera_start_time=Date.now())}handleTrackCaptureSuccess({track:t}){t.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_end_time&&(this._pathJoinRoom.int32_init_audio_ret=0,this._pathJoinRoom.uint64_init_audio_end_time=Date.now()),t.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_end_time&&(this._pathJoinRoom.int32_init_camera_ret=0,this._pathJoinRoom.uint64_init_camera_end_time=Date.now())}handleTrackCaptureFailed({track:t,error:e}){let o={NotFoundError:1,NotAllowedError:2,NotReadableError:3,OverConstrainedError:4,AbortError:5,InvalidStateError:6,SecurityError:7,TypeError:8}[e.name]||(e instanceof de?e.getExtraCode()||e.getCode():Y.UNKNOWN);t.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_end_time&&(this._pathJoinRoom.int32_init_audio_ret=o,this._pathJoinRoom.uint64_init_audio_end_time=Date.now()),t.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_end_time&&(this._pathJoinRoom.int32_init_camera_ret=o,this._pathJoinRoom.uint64_init_camera_end_time=Date.now())}hasVideoFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&_s)>=0}hasAudioFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&gs)>=0}hasAuxFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&Xn)>=0}hitTest(t){return t===this._room}prepareReport(){if(this._captureCostCount>0&&!this._basicInfo.uint32_audio_capture_cost&&(this._basicInfo.uint32_audio_capture_cost=Math.floor(this._captureCostSum/this._captureCostCount),this._captureCostSum=0,this._captureCostCount=0),this._networkQuality.count>0&&(this._basicInfo.uint32_avg_rtt=Math.floor(this._networkQuality.totalUplinkRTT/this._networkQuality.count),this._basicInfo.uint32_avg_up_loss=Math.floor(this._networkQuality.totalUplinkLoss/this._networkQuality.count)),this._localStreamStat.videoCount>0){this._localStreamStat.statsToReport.uint32_video_big_capture_fps=Math.floor(this._localStreamStat.totalVideoFPS/this._localStreamStat.videoCount),this._localStreamStat.statsToReport.uint32_video_big_bitrate=Math.floor(this._localStreamStat.totalVideoBitrate/this._localStreamStat.videoCount);let t=Math.floor(this._localStreamStat.totalVideoWidth/this._localStreamStat.videoCount),e=Math.floor(this._localStreamStat.totalVideoHeight/this._localStreamStat.videoCount);this._localStreamStat.statsToReport.uint32_video_big_resolution=t<<16|e}this._localStreamStat.audioLevelCount>0&&(this._localStreamStat.statsToReport.uint32_audio_capture_db=Math.floor(this._localStreamStat.totalAudioLevel/this._localStreamStat.audioLevelCount*100)),this._remoteStreamStatMap.forEach((t,e)=>{let{userId:r}=t,o=this._networkQuality.totalDownlinkRTTAndLossMap.get(r);if(o){let{totalLoss:T,count:y,audioDelayCount:R,videoDelayCount:N,totalAudioDelay:j,totalVideoDelay:W}=o;t.statsToReport.uint32_avg_down_loss=Math.floor(T/y),R&&j&&(t.statsToReport.uint32_audio_network_p2p_delay=Math.floor(j/R),t.audioJitterBufferDelay&&(t.statsToReport.uint32_p2p_delay=Math.floor(t.statsToReport.uint32_audio_network_p2p_delay+t.audioJitterBufferDelay))),N&&W&&(t.statsToReport.uint32_video_network_p2p_delay=Math.floor(W/N))}t.videoCount>0&&(t.statsToReport.uint32_video_avg_fps=Math.floor(t.totalVideoFPS/t.videoCount),t.statsToReport.uint32_video_avg_bitrate=Math.floor(t.totalVideoBitrate/t.videoCount)),t.audioCount>0&&(t.statsToReport.uint32_audio_recv_bitrate=t.statsToReport.uint32_audio_bitrate=Math.floor(t.totalAudioBitrate/t.audioCount)),t.audioLevelCount>0&&(t.statsToReport.uint32_audio_play_db=Math.floor(t.totalAudioLevel/t.audioLevelCount*100));let{callDurationCalculator:s}=this._room;s&&(t.statsToReport.uint32_audio_play_time=s.getDuration(e,D.AUDIO),t.statsToReport.uint32_video_play_time=s.getDuration(e,D.VIDEO)),t.statsToReport.uint32_video_render_first=Math.min(t.statsToReport.uint32_video_render_first,es);let{badCaseDetector:a}=this._room,{dataFreeze:d,count:h}=a.getDataFreezeDuration(e),{renderFreeze:p}=a.getRenderFreezeDuration(e);t.statsToReport.uint32_video_block_count=h,t.statsToReport.uint32_video_block_time=Math.min(d,t.statsToReport.uint32_video_play_time),t.statsToReport.uint32_video_external_block_time=Math.min(p,t.statsToReport.uint32_video_play_time),a.isBlackStream(e)&&t.statsToReport.uint32_video_avg_fps===0?t.statsToReport.uint32_video_black_screen_subjective=1:t.statsToReport.uint32_video_black_screen_subjective=0,(t.subscribeStartTime===0||t.subscribeStartTime-t.streamAddedTime>100||t.playStreamTime===0)&&(this._pathMainAudioMap.delete(e),this._pathMainVideoMap.delete(e),t.statsToReport.uint32_video_render_first=0)}),this._pathMainAudioMap.forEach((t,e)=>{if(!this.hasAudioFlag(t.userId)){this._pathMainAudioMap.delete(e);return}t.statsToReport.uint64_play_first_frame_time-t.statsToReport.uint64_start_enter_time>es&&(t.statsToReport.uint64_play_first_frame_time=t.statsToReport.uint64_start_enter_time+es)}),this._pathMainVideoMap.forEach((t,e)=>{if(!this.hasVideoFlag(t.userId)){this._pathMainVideoMap.delete(e);return}t.statsToReport.uint64_render_first_frame_time-t.statsToReport.uint64_start_enter_time>es&&(t.statsToReport.uint64_render_first_frame_time=t.statsToReport.uint64_start_enter_time+es)}),this._pathJoinRoom.uint64_end_time-this._pathJoinRoom.uint64_start_time>es&&(this._pathJoinRoom.uint64_end_time=this._pathJoinRoom.uint64_start_time+es)}getReportData(){this._basicInfo.uint32_networkType=sd();let t={uint32_sdk_app_id:Number(this._room.sdkAppId),msg_user_info:new rc({userId:this._room.userId,tinyId:this._room.tinyId,role:this._room.role==="anchor"?20:21}),msg_basic_info:this._basicInfo,uint32_acc_ip:Ss(this._signalInfo.relayIp),uint32_client_ip:Ss(this._signalInfo.clientIp,!1),uint32_acc_port:this._signalInfo.relayPort||0,uint64_timestamp:Date.now(),uint32_seq:Math.floor(Math.random()*Gn(2,31)),msg_path_enter_room:this._pathJoinRoom,msg_path_exit_room:this._pathLeaveRoom,msg_path_recv_video:[...this._pathMainVideoMap.values()].map(e=>e.statsToReport),msg_quality_statistics:[...this._remoteStreamStatMap.values()].map(e=>e.statsToReport),str_room_name:String(this._room.roomId||0),msg_path_recv_audio:[...this._pathMainAudioMap.values()].map(e=>e.statsToReport),uint32_info_client_ip:Ss(this._signalInfo.clientIp,!1),error_code:[],msg_local_statistics:this._localStreamStat.statsToReport,bytes_report_buf_from_0x1:this._signalInfo.endReportExtend};return oa(t),t}report(){return v(this,null,function*(){try{this.prepareReport();let t=this.getReportData();yield this.upload(t),this.initData()}catch(t){this._log.warn(t)}finally{this.isDestroyed&&(this._room=null)}})}upload(t){return v(this,null,function*(){if(t.msg_path_enter_room.uint64_start_time===0)return;let e=Number(this._room.sdkAppId),r=yield fp(t),o=r instanceof ArrayBuffer,s=`${fi(e,ki.KEY_POINT)}&gzip=${+o}`,a=!1;navigator.sendBeacon&&(a=navigator.sendBeacon(s,r));let d=[this.uploadKVStat(X),this.uploadKVStat(xo)];a||d.push(_i({url:s,body:r,priority:"low"})),yield Promise.all(d)})}setConnectionType(t){this.connectionType=t,this._basicInfo.uint32_connection_type=t}uploadKVStat(t){return v(this,null,function*(){let e=t.getReportData();if(e.stats_count.length===0&&e.stats_distribution.length===0)return;e.msg_sdk_basic_info=me(J({},e.msg_sdk_basic_info),{bytes_device_name:this._basicInfo.string_device_name||"",bytes_os_version:this._basicInfo.string_os_version||"",uint32_framework:this._frameWorkType,uint32_network_type:this._basicInfo.uint32_networkType||0}),this._log.debug(e);let r=yield fp(e),o=`${fi(+this._room.sdkAppId,ki.KV_STAT)}&gzip=${+(r instanceof ArrayBuffer)}`,s=!1;navigator.sendBeacon&&(s=navigator.sendBeacon(o,r)),s||_i({url:o,body:r})})}};q([ji({settings:{timeout:500,retries:3}})],Ju.prototype,"upload",1);var es=5e3,nA={msg_user_info:null,uint32_video_avg_fps:0,uint32_video_width:0,uint32_video_height:0,uint32_video_avg_bitrate:0,uint32_video_block_time:0,uint32_video_play_time:0,uint32_audio_block_time:0,uint32_audio_play_time:0,uint32_audio_play_db:0,uint32_avg_down_loss:0,uint32_stream_type:0,uint32_video_render_first:0,uint32_video_block_count:0,uint32_audio_block_count:0,uint32_audio_bitrate:0,uint32_video_black_screen_subjective:0,uint32_audio_recv_bitrate:0,uint32_video_external_block_time:0,uint32_video_consume_render_rate:0},rc=class{constructor(t){l(this,"str_identifier");l(this,"str_tinyid");l(this,"uint32_role");this.str_identifier=String(t.userId),this.str_tinyid=String(t.tinyId||0),this.uint32_role=t.role}},DE=Ju;var Ef=class{constructor(){l(this,"_startTime");l(this,"_endTime");this._startTime=0,this._endTime=0,this.start()}start(){this._startTime===0&&(this._startTime=ge())}stop(){this._endTime===0&&(this._endTime=ge())}getDuration(){return this._endTime===0?ge()-this._startTime:this._endTime-this._startTime}get endTime(){return this._endTime}},hn=Ef;var Tf=class{constructor(t){l(this,"_room",null);l(this,"_durationMap");l(this,"_eventMap",new Map);this._room=t.room,this._durationMap=new Map,this.installEvents()}installEvents(){this._eventMap.set(O.SUBSCRIBE_SUCCESS,this.handleSubscribed).set(O.UNSUBSCRIBE_SUCCESS,this.handleStreamStopped).set(O.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{var a;let{userId:o}=r;if(!this.hitTest(t))return;e.hasAudio&&!r.hasAudio&&this.stopDurationItem(`${o}_${"main"}`,D.AUDIO),e.hasVideo&&!r.hasVideo&&this.stopDurationItem(`${o}_${"main"}`,D.VIDEO),e.hasAuxiliary&&!r.hasAuxiliary&&this.stopDurationItem(`${o}_${"auxiliary"}`,D.VIDEO);let s=(a=this._room)==null?void 0:a.remotePublishedUserMap.get(o);!s||(!e.hasAudio&&r.hasAudio&&s.remoteAudioTrack.isSubscribed&&this.addDuractionItem(o,D.AUDIO,"main"),!e.hasVideo&&r.hasVideo&&s.remoteVideoTrack.isSubscribed&&this.addDuractionItem(o,D.VIDEO,"main"),!e.hasAuxiliary&&r.hasAuxiliary&&s.remoteAuxiliaryTrack.isSubscribed&&this.addDuractionItem(o,D.VIDEO,"auxiliary"))}),this._eventMap.forEach((t,e)=>B.on(e,t,this))}uninstallEvents(){this._eventMap.forEach((t,e)=>B.off(e,t,this)),this._eventMap.clear()}handleSubscribed({room:t,streamType:e,remotePublishedUser:r}){if(!this.hitTest(t))return;let{userId:o}=r,s=`${o}_${e}`;if(r.muteState.hasAudio&&e==="main")if(r.remoteAudioTrack.isSubscribed){let a=new hn,d=this._durationMap.get(s);d?this.isRecording(d.audio)||d.audio.push(a):this._durationMap.set(s,{userId:o,type:e,audio:[a],video:[]})}else this.stopDurationItem(s,D.AUDIO);if(r.muteState.hasVideo||r.muteState.hasAuxiliary)if(r.remoteVideoTrack.isSubscribed||r.remoteAuxiliaryTrack.isSubscribed){let a=new hn,d=this._durationMap.get(s);d?this.isRecording(d.video)||d.video.push(a):this._durationMap.set(s,{userId:o,type:e,audio:[],video:[a]})}else this.stopDurationItem(s,D.VIDEO)}handleStreamStopped({room:t,streamType:e,remotePublishedUser:r}){if(!this.hitTest(t))return;let{userId:o}=r,s=`${o}_${e}`;this.stopDurationItem(s,D.AUDIO),this.stopDurationItem(s,D.VIDEO)}isRecording(t){return t.findIndex(e=>e.endTime===0)>=0}addDuractionItem(t,e,r){let o=`${t}_${r}`,s=new hn,a=this._durationMap.get(o);a?this.isRecording(a[e])||a[e].push(s):this._durationMap.set(o,{userId:t,type:r,audio:e===D.AUDIO?[s]:[],video:e===D.AUDIO?[]:[s]})}stopDurationItem(t,e){if(this._durationMap.has(t)){let o=this._durationMap.get(t)[e].find(s=>s.endTime===0);o&&o.stop()}}hitTest(t){return this._room===t}getDuration(t,e){return this._durationMap.has(t)?this._durationMap.get(t)[e].reduce((o,s)=>o+s.getDuration(),0):0}getDurationMap(){return this._durationMap}reset(){this._durationMap.clear()}destroy(){this._room=null,this.uninstallEvents()}},NE=Tf;var If=class{constructor(t){l(this,"_room");l(this,"_renderFreezeMap",new Map);l(this,"_isVideoPlayingEventFiredMap",new Map);l(this,"_dataFreezeMap",new Map);l(this,"_monitorFreezeData",new Map);l(this,"_eventMap",new Map);this._room=t.room,this.installEvents()}installEvents(){this._eventMap.set(O.LEAVE_SUCCESS,({room:t})=>{this.hitTest(t)&&this.stop()}).set(O.PLAY_TRACK_START,this.onPlayTrackStart).set(O.UNSUBSCRIBE_SUCCESS,({room:t,streamType:e,remotePublishedUser:r})=>{if(!this.hitTest(t))return;let{userId:o}=r,s=`${o}_${e}`;this.stopDataFreeze({key:s,userId:o,type:e})}).set(O.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{if(!this.hitTest(t))return;let{userId:o}=r;if(e.hasVideo&&!r.hasVideo){let s="main",a=`${r.userId}_${s}`;this.stopDataFreeze({key:a,userId:o,type:s})}if(e.hasAuxiliary&&!r.hasAuxiliary){let s="auxiliary",a=`${r.userId}_${s}`;this.stopDataFreeze({key:a,userId:o,type:s})}}).set(O.PLAYER_STATE_CHANGED,({track:t,state:e,reason:r,type:o})=>{if(!(!t.isRemote||!this.hitTest(t.room)||o!==D.VIDEO)){if(e==="PLAYING"){let s=`${t.userId}_${t.streamType}`;this._isVideoPlayingEventFiredMap.set(s,!0)}r===D.MUTE?this.onVideoTrackMuted(t):r===D.UNMUTE&&this.onVideoTrackUnmuted(t)}}).set(O.HEARTBEAT_REPORT,this.onHearBeatReport),this._eventMap.forEach((t,e)=>B.on(e,t,this))}uninstallEvents(){this._eventMap.forEach((t,e)=>B.off(e,t,this)),this._eventMap.clear()}stop(){this._renderFreezeMap.clear(),this._dataFreezeMap.clear(),this._isVideoPlayingEventFiredMap.clear()}onVideoTrackMuted(t){if(!t.isSubscribed)return;let{userId:e,streamType:r}=t,o=`${e}_${r}`,s=this._dataFreezeMap.get(o),a=new hn;s?s.durationItemList.push(a):this._dataFreezeMap.set(o,{userId:e,type:r,durationItemList:[a],isFreezing(){let d=this.durationItemList[this.durationItemList.length-1];return d&&d.endTime===0}})}onVideoTrackUnmuted(t){if(!t.isSubscribed)return;let{userId:e,streamType:r}=t,o=`${e}_${r}`;this.stopDataFreeze({key:o,userId:e,type:r})}onHearBeatReport({room:t,report:e}){!this.hitTest(t)||e.msg_down_stream_info.forEach(r=>{let o=this._room.remotePublishedUserMap.get(r.msg_user_info.str_identifier);if(!o)return;let{userId:s,muteState:a}=o;r.msg_video_status.forEach(d=>{d.uint32_video_stream_type===2&&a.hasVideo&&!a.videoMuted&&o.remoteVideoTrack.isSubscribed&&this.handleRenderFreeze({userId:s,fps:d.uint32_video_dec_fps,type:"main"}),d.uint32_video_stream_type===7&&a.hasAuxiliary&&o.remoteAuxiliaryTrack.isSubscribed&&this.handleRenderFreeze({userId:s,fps:d.uint32_video_dec_fps,type:"auxiliary"})})})}stopDataFreeze({key:t,userId:e,type:r}){let o=this._dataFreezeMap.get(t);if(!o||!o.isFreezing())return;let s=o.durationItemList[o.durationItemList.length-1];s.stop();let a=s.getDuration();a>id?this._monitorFreezeData.set(t,{userId:e,type:r,duration:a}):o.durationItemList.pop()}getTotalDuration(t){return t.reduce((e,r)=>{let o=r.getDuration();return e+Math.min(o,5e3)},0)}handleRenderFreeze(o){return v(this,arguments,function*({userId:t,fps:e,type:r}){let s=`${t}_${r}`,a=this._renderFreezeMap.get(s);if(e<=2){let d=ge();a&&!a.isFreeze&&(a.freezeTimeline.push({startTime:d,endTime:0}),a.isFreeze=!0),a||this._renderFreezeMap.set(s,{userId:t,type:r,isFreeze:!0,freezeTimeline:[{startTime:d,endTime:0}],renderFreezeTotal:0})}else if(a&&a.isFreeze){a.isFreeze=!1;let d=a.freezeTimeline.pop();if(d){d.endTime=ge();let h=d.endTime-d.startTime;a.freezeTimeline.push(d),a.renderFreezeTotal+=Math.min(5e3,h)}}})}onPlayTrackStart({track:t}){if(!t.isRemote||!this.hitTest(t.room)||t.kind!==D.VIDEO||t.hasFlag)return;let e=`${t.userId}_${t.streamType}`;this._isVideoPlayingEventFiredMap.has(e)||this._isVideoPlayingEventFiredMap.set(e,!1)}getDataFreezeDuration(t){let e={dataFreeze:0,count:0},r=this._dataFreezeMap.get(t);if(r){if(r.isFreezing()){let o=r.durationItemList[r.durationItemList.length-1];o.stop(),o.getDuration()<id&&r.durationItemList.pop()}e.dataFreeze=this.getTotalDuration(r.durationItemList),e.count=r.durationItemList.length}return e}getRenderFreezeDuration(t){let e=this._renderFreezeMap.get(t),r=0,o=0;if(e)if(!e.isFreeze)r=e.renderFreezeTotal;else{let s=ge(),a=e.freezeTimeline[e.freezeTimeline.length-1],d=s-a.startTime;r=e.renderFreezeTotal+Math.min(d,5e3),o=e.freezeTimeline.length}return{renderFreeze:r,count:o}}getMonitorFreeze(){return this._monitorFreezeData}isBlackStream(t){return this._isVideoPlayingEventFiredMap.has(t)?!this._isVideoPlayingEventFiredMap.get(t):!1}resetMonitor(){this._monitorFreezeData.clear()}hitTest(t){return t===this._room}destroy(){this.uninstallEvents()}},wE=If;var ME=Pi(Hi(),1);var aA=[1,0,0,0,1,1,0,1],Xu=class extends Ut{constructor(t,e){if(super(t,{useDefaultProgram:!0,useFbo:!0,create2d:!0,name:"mirror",logger:e}),t instanceof st)try{this.setTexBuffer(aA)}catch(r){t.destroy(new de({code:Y.VIDEO_MANAGER_ERROR,extraCode:3,message:`create video node ${this.name} error ${r.message||r}`}))}}draw2d(t,e,r,o,s){if(this.ctx2d){this.ctx2d.save(),this.ctx2d.scale(-1,1),this.ctx2d.translate(-this.width,0);let a=super.draw2d(t,e,r,o,s);return this.ctx2d.restore(),a}return!1}render(t){var e;return(e=this.input)!=null&&e.requestFrame(t)?(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0):!1}};var Sf=class{constructor(t,e){this.node=t;this.layout=e;l(this,"positionBuffer")}get x(){return this.layout.x||this.node.x}get y(){return this.layout.y||this.node.y}get width(){return this.layout.width||this.node.width}get height(){return this.layout.height||this.node.height}get right(){return this.x+this.width}get bottom(){return this.y+this.height}},Qu=class extends Ut{constructor(e,r){super(e,{useDefaultProgram:!0,useFbo:!0,name:"mix",create2d:!0,logger:r});l(this,"inputs",[])}addInput(e,r){if(this.inputs[r.zIndex])throw new Error("input already exists");let o=new Sf(e,r);this.inputs[r.zIndex]=o}resize(e,r){let o=this.inputs.reduce((s,a)=>a?Object.assign(s,{width:Math.max(s.width,a.right),height:Math.max(s.height,a.bottom)}):s,{width:0,height:0});super.resize(o.width,o.height),this.context instanceof st&&this.inputs.forEach(s=>{if(s){let a=this.layout2texCoords(s);s.positionBuffer?this.changeBufferData(s.positionBuffer,a):s.positionBuffer=this.createBuffer(a)}})}connect(e,...r){return super.connect(e,...r),this.resize(0,0),e}removeInput(e){this.inputs[this.inputs.findIndex(r=>(r==null?void 0:r.node)===e)]=void 0}render(e){let r=this.context.ctx;if(r.clearColor(0,0,0,0),!this.inputs.reduce((s,a)=>(!a||!a.node.requestFrame(e))&&s,!0)&&r){this.useProgram(),r.enable(r.BLEND),r.blendFunc(r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA),this.useBufferFrame();for(let s=0;s<this.inputs.length;s++){let a=this.inputs[s];a&&(a.node.useTexture(),this.draw(a.positionBuffer))}return!0}return!1}render2d(e){if(!this.inputs.reduce((o,s)=>(!s||!s.node.requestFrame(e))&&o,!0)&&this.ctx2d){this.ctx2d.clearRect(0,0,this.width,this.height);for(let o=0;o<this.inputs.length;o++){let s=this.inputs[o];s&&this.draw2d(s.node.image,s.x,s.y,s.width,s.height)}return!0}return!1}getInfo(){let{totalFrames:e,x:r,y:o,width:s,height:a,name:d}=this,h=Date.now(),p=(e-this.lastInfo.totalFrames)/((h-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:r,y:o,width:s,height:a,timestamp:h,fps:p,name:d},J({parent:this.inputs.filter(T=>T).map(T=>T.node.getInfo())},this.lastInfo)}close(){super.close(),this.inputs.forEach(e=>{var r,o;if(e&&((r=e.node)==null||r.disconnect(),e.positionBuffer&&this.context instanceof st))try{(o=this.context.ctx)==null||o.deleteBuffer(e.positionBuffer)}catch(s){}})}};var cA=`#version 300 es
58
+ 2. If the user is in Chrome 70 and below, when the div container is moved, the playback will be paused.`,color:"orange",class:"orange",textColor:"#fff"},'"displaySurface":"window"':{tips:"Screen sharing captures the application window",color:"blue",class:"blue",textColor:"#fff"},'"displaySurface":"monitor"':{tips:"Screen sharing captures the entire screen",color:"blue",class:"blue",textColor:"#fff"},'"displaySurface":"browser"':{tips:"Screen sharing captures a certain tab page",color:"blue",class:"blue",textColor:"#fff"},updateMediaSettings:{tips:"The resolution and frame rate below are the actual resolution and frame rate captured",color:"blue",class:"blue",textColor:"#fff"},"main stream start to play with":{tips:"Call remoteStream.play interface",color:"blue",class:"blue",textColor:"#fff"},"stream start to play with":{tips:"Call localStream.play interface",color:"blue",class:"blue",textColor:"#fff"},"main setAudioVolume to 0":{tips:"Business side calls remoteStream.setAudioVolume(0) interface to set the playback volume to 0, which will cause the playback to be silent",color:"orange",class:"orange",textColor:"#fff"},"screen sharing was stopped because the video track is ended":{tips:"Screen sharing capture stopped, possible reasons: user clicks the stop button, the window/page shared by the user is closed, etc.",color:"orange",class:"orange",textColor:"#fff"},"Join() => joining room":{tips:"Call client.join interface",color:"blue",class:"blue",textColor:"#fff"},"publish() => publishing local stream":{tips:"Call client.publish interface",color:"blue",class:"blue",textColor:"#fff"},"subscribe() => subscribe to":{tips:"Call client.subscribe interface",color:"blue",class:"blue",textColor:"#fff"},"switchRole() => switch role":{tips:"Call client.switchRole interface",color:"blue",class:"blue",textColor:"#fff"}};["enterRoom","exitRoom","switchRole","destroy","startLocalAudio","updateLocalAudio","stopLocalAudio","startLocalVideo","updateLocalVideo","stopLocalVideo","startScreenShare","updateScreenShare","stopScreenShare","startRemoteVideo","updateRemoteVideo","stopRemoteVideo","muteRemoteAudio","setRemoteAudioVolume"].forEach(s=>{Dm[`${s}()`]={tips:`Call trtc.${s}`,color:"blue",class:"blue",textColor:"#fff"}});var kM=Object.keys(Dm);var nT=0,Xa,Ns=class Ns{constructor(i){this.core=i;c(this,"_core");c(this,"log");c(this,"dumpLocalVideoMap",{});c(this,"dumpRemoteVideoMap",{});c(this,"dialog");this._core=i,this.log=i.log.createChild({id:`${this.getAlias()}${++nT}`}),this.log.info("created")}getName(){return Ns.Name}getAlias(){return"dm"}getGroup(){return"dm"}getValidateRule(i){switch(i){case"start":return{name:"StartDebugOptions",required:!1};case"update":return{name:"UpdateDebugOptions",required:!1};case"stop":return{name:"StopDebugOptions",required:!1}}}start(){return f(this,null,function*(){var e;!new URLSearchParams(location.search).has("trtcDebug")&&((e=window.sessionStorage)==null?void 0:e.getItem("TRTC_ENABLE_DEBUG_PLUGIN"))!=="true"||(yield this.openDebugDiaLog(),this.addVideoProcessor())})}update(){}stop(){this.closeDebugDiaLog(),this.removeVideoProcessor()}destroy(){this.stop()}openDebugDiaLog(){return f(this,null,function*(){try{if(Xa)yield Xa;else{let i=Date.now();Xa=this.loadScript(`https://web.sdk.qcloud.com/trtc/webrtc/assets/debug/debug-dialog@${Ce}.js`),yield Xa,this.log.info(`download debug dialog script cost: ${Date.now()-i}ms`)}this.dialog=new TRTCDebugDialog(this._core,this.log,this.dumpLocalVideoMap,this.dumpRemoteVideoMap),this._core.kvStatManager.addSuccessEvent({key:592705})}catch(i){this._core.kvStatManager.addFailedEvent({key:592705}),this.log.error("load debug dialog script failed: ",JSON.stringify(i))}})}closeDebugDiaLog(){var i;(i=this.dialog)==null||i.closeDialog(),this.dialog=null}addVideoProcessor(){this._core.room.videoManager.addEncodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.encodeVideo.bind(this):jl,type:1}),this._core.room.videoManager.addDecodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.decodeVideo.bind(this):Xl,type:1})}removeVideoProcessor(){this._core.room.videoManager.removeEncodeProcessor({type:1}),this._core.room.videoManager.removeDecodeProcessor({type:1})}encodeVideo({frame:i,mediaType:e}){return jl({frame:i,onDump:()=>{if(!e)return;let t=e===2?"sub":"main",r=this.dumpLocalVideoMap[t];r&&(r.data.push(i.data),r.duration>0&&Date.now()-r.startTimestamp>r.duration*1e3&&r.onDumpEnd())}})}decodeVideo({frame:i,track:e}){return Xl({frame:i,onDump:()=>{if(!e)return;let t=this.dumpRemoteVideoMap[`${e.userId}-${e.streamType}`];t&&(t.data.push(i.data),t.duration>0&&Date.now()-t.startTimestamp>t.duration*1e3&&t.onDumpEnd())}})}loadScript(i){return new Promise((e,t)=>{this.log.info(`loading debug dialog from ${i}`);let r=document.createElement("script");r.type="text/javascript",r.onload=e,r.onerror=t,r.crossOrigin="anonymous",r.src=i,document.head.append?document.head.append(r):document.getElementsByTagName("head")[0].appendChild(r)})}};c(Ns,"Name","Debug"),c(Ns,"autoStart",!0),y([Ke({settings:{timeout:3e3,retries:3},onError(i,e,t){var r;(r=i==null?void 0:i.message)!=null&&r.includes("timeout")?e():t(i)}})],Ns.prototype,"loadScript",1);var Qa=Ns;var Om=s=>{switch(s){case"webCodecs":return 504703;case"wasm":return 504704}throw new Error("decoder type not supported")},za=class{constructor(i,e,t){c(this,"trackDoneOB");c(this,"startOB");c(this,"stopOB");c(this,"inputFrameCount",0);c(this,"decodedFrameCount",0);c(this,"type","auto");c(this,"config");c(this,"decoder");c(this,"_decodeSink");let{kvStatManager:r,trtc:o}=i;this.config=t.config,this.trackDoneOB=Ie(e,Q.INIT),this.stopOB=rt(this.trackDoneOB),this.startOB=rt(),t.type==="auto"?this.type="webCodecs":this.type=t.type;let n=rt(),a=d=>{let l=this.pipe(e);return n.next("STARTING"),e.log.info(`decoder type: ${this.type}`),_e(l,Pe(this.stopOB),be(()=>{},m=>{e.log.error(m),r.addFailedEvent({key:Om(this.type),error:m}),d>4?this.startOB.error(m):this.startOB.next(d+1)})),_e(l,ki(1),Bo(vr))};_e(this.startOB,Nr(0),er(a),Pe(this.stopOB),be(()=>{e.player.setOutput(),n.next("STARTED")},d=>{n.next("FAILED")},()=>{r.addSuccessEvent({key:Om(this.type)}),r.addSuccessEvent({key:504702})}))}mock(i){this._decodeSink?this._decodeSink.error(i):this.startOB.next(0)}close(i){this.stopOB.next(i)}pipe(i){return Mi()(e=>f(this,null,function*(){this._decodeSink=e,e.defer(()=>{var r;(r=this.decoder)==null||r.close()});let{type:t}=this;try{switch(t){case"webCodecs":this.decoder=new AudioDecoder({error:r=>{i.log.error(r),e.error(4)},output:r=>{this.decodedFrameCount++,e.next(r),i.player.write(r)}});break;case"wasm":break}this.decoder.configure(this.config)}catch(r){i.log.error(r),e.error(t==="webCodecs"?2:6)}}))}decodeFrame(i){var e;this.inputFrameCount++,((e=this.decoder)==null?void 0:e.state)==="configured"&&this.decoder.decode(new EncodedAudioChunk({data:i.data,timestamp:i.timestamp,type:"key"}))}},aT={type:"object"},qo=class qo{constructor(i){this.core=i;c(this,"log");c(this,"contextMap",new Map);c(this,"decodeProcessorMap",new WeakMap);this.log=i.log.createChild({id:`${this.getAlias()}`})}getAlias(){return qo.Name}getGroup(i){return i.track.userId+i.track.streamType}getName(){return qo.Name}getValidateRule(i){return aT}start(i){let{track:e}=i;this.decodeProcessorMap.set(e,this.decode(i)),this.core.room.audioManager.addDecodeProcessor({processor:({frame:t,track:r})=>this.decodeProcessorMap.has(r)?this.decodeProcessorMap.get(r)({frame:t,track:r}):t,type:3})}decode(i){return({frame:e,track:t})=>{if(t!==i.track)return e;if(this.contextMap.has(t))return this.contextMap.get(t).decodeFrame(e);let r=new za(this.core,t,i);return _e(r.trackDoneOB,ki(1),be(()=>{this.core.clearStarted(this,this.getGroup(i)),this.stop({track:t})})),this.contextMap.set(t,r),r.decodeFrame(e)}}stop({track:i}){let e=this.contextMap.get(i);e&&(e.close("stop"),this.contextMap.delete(i),this.contextMap.size===0&&this.core.room.audioManager.removeDecodeProcessor({type:3}))}update(i){let e=this.contextMap.get(i.track);if(e){if(i.type==="mock"){e.mock(10);return}e.close("update"),this.contextMap.set(i.track,new za(this.core,i.track,i))}}};c(qo,"Name","TRTCAudioDecoder");var jo=qo;var Mm=0,Xo=new Set,Me=null;fc(Nm);cs.checkStorage();Cd();var cT={RtcError:w,ErrorCode:V,ErrorCodeDictionary:Lt},H=class H extends km.EventEmitter{constructor(e,t){super();c(this,"_room");c(this,"_eventListened",new Set);c(this,"_localVideoTrack",null);c(this,"_localAudioTrack",null);c(this,"_localScreenTrack",null);c(this,"_localScreenAudioTrack",null);c(this,"_localVideoConfig",null);c(this,"_localScreenConfig",null);c(this,"_localAudioConfig",null);c(this,"_remoteVideoConfigMap",new Map);c(this,"_remoteAudioConfigMap",new Map);c(this,"_remoteAudioVolumeMap",new Map);c(this,"_remoteAudioMuteMap",new Map);c(this,"_mediaTrackMap",new WeakMap);c(this,"_log",C.createLogger({id:`t${++Mm}`}));c(this,"_plugins",new Map);c(this,"_networkQuality",null);c(this,"_speakerId");c(this,"_getPCMAbortCtrl");this._room=new e(v({logger:this._log,frameWorkType:H.frameWorkType},t)),this._room.videoDecodeFallbackType=t.videoDecodeFallback,this._log.debug(`TRTC.create() ${JSON.stringify(t,(r,o)=>r==="plugins"?o.map(n=>n.Name):o)}`),Object.defineProperties(this,{dumpAudio:{enumerable:!1,value(r){return this._room.audioManager.dump(r)}}}),t.plugins&&t.plugins.forEach(r=>{this._use(r,t.assetsPath)}),this._use(Wa,t.assetsPath),this._use(qa,t.assetsPath),this._use(jo,t.assetsPath||cn),this._use(Qa),t.enableSEI&&Co&&this._use(ja),this._room.on("audio-volume",r=>{!r.find(o=>o.userId==="")&&this._localAudioTrack&&r.push({userId:"",volume:Math.floor(this._localAudioTrack.getAudioLevel()*100)}),this.emit(M.AUDIO_VOLUME,{result:r.sort((o,n)=>n.volume-o.volume)})}),this._room.videoManager.on("error",r=>{this._log.error(new w({code:V.OPERATION_FAILED,extraCode:5504,message:r.message,originError:r}))}),this._listenEvents(),this._initActiveSpeaker(),Rm(this,"trtc")}static create(e){}static _create(e,t){hm();let r=new H(e,t||{});return Xo.add(r),r}get room(){return this._room}_listenEvents(){Ue(this,this._room).add("peer-join",e=>{let{userId:t}=e;this.emit(M.REMOTE_USER_ENTER,{userId:t})}).add("peer-leave",e=>{this.emit(M.REMOTE_USER_EXIT,{userId:e}),this._remoteAudioVolumeMap.delete(e)}).add("banned",e=>{this._exitRoom().then(()=>{this.emit(M.KICKED_OUT,{reason:e.reason})})}).add("error",e=>{this._exitRoom().then(()=>{this.emit(M.ERROR,w.convertFrom(e))})}).add("signal-connection-state-changed",e=>{this.emit(M.CONNECTION_STATE_CHANGED,e)}).add("network-quality",e=>{this._networkQuality=e;let t=k(v({},e),{uplinkRTT:Math.min(e.uplinkRTT,js),downlinkRTT:Math.min(e.downlinkRTT,js)});this.emit(M.NETWORK_QUALITY,t)}).add("remote-published",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(r=>{Ue(r,r).add("player-state-changed",o=>{let n=k(v({},o),{userId:e.userId});r.kind===h.VIDEO&&(n.streamType=sr(r.streamType)),this.emit(r.kind===h.AUDIO?M.AUDIO_PLAY_STATE_CHANGED:M.VIDEO_PLAY_STATE_CHANGED,n)}).add("error",o=>{o.getCode()===S.PLAY_NOT_ALLOWED&&this.emit(M.AUTOPLAY_FAILED,{userId:r.userId,resume:()=>r.player.resume()})})})}).add("remote-unpublished",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(r=>{Se(r)})}).add("remote-publish-state-changed",({prevMuteState:e,muteState:t})=>{let{userId:r}=t,o=e.audioAvailable,n=e.videoAvailable,{audioAvailable:a,videoAvailable:d}=t;a||this._remoteAudioConfigMap.delete(r),d||this._remoteVideoConfigMap.delete(`${r}_main`),t.hasAuxiliary||this._remoteVideoConfigMap.delete(`${r}_sub`),n!==d&&(d?this._onVideoAvailable({userId:r,streamType:"main"}):this._onVideoUnavailable({userId:r,streamType:"main"}),this.emit(d?M.REMOTE_VIDEO_AVAILABLE:M.REMOTE_VIDEO_UNAVAILABLE,{userId:r,streamType:"main"})),o!==a&&(a?this._onAudioAvailable({userId:r}):this._onAudioUnavailable({userId:r,muteState:t}),this.emit(a?M.REMOTE_AUDIO_AVAILABLE:M.REMOTE_AUDIO_UNAVAILABLE,{userId:r})),e.hasAuxiliary!==t.hasAuxiliary&&(t.hasAuxiliary?this._onVideoAvailable({userId:r,streamType:"sub"}):this._onVideoUnavailable({userId:r,streamType:"sub"}),this.emit(t.hasAuxiliary?M.REMOTE_VIDEO_AVAILABLE:M.REMOTE_VIDEO_UNAVAILABLE,{userId:r,streamType:"sub"}))}).add("sei-message",e=>{this.emit(M.SEI_MESSAGE,k(v({},e),{streamType:sr(e.streamType)}))}).add("firewall-restriction",()=>{this.emit(M.ERROR,new w({code:V.OPERATION_FAILED,extraCode:5501}))}).add("heartbeat-report",e=>{var o,n,a,d,l,m,u;let t={2:"big",3:"small",7:"sub"},r={rtt:Math.min(e.msg_up_stream_info.msg_network_status.uint32_rtt||((o=e.msg_down_stream_info[0])==null?void 0:o.msg_network_status.uint32_rtt)||((n=this._networkQuality)==null?void 0:n.uplinkRTT)||((a=this._networkQuality)==null?void 0:a.downlinkRTT)||0,js),upLoss:((d=this._networkQuality)==null?void 0:d.uplinkLoss)||0,downLoss:((l=this._networkQuality)==null?void 0:l.downlinkLoss)||0,bytesSent:e.bytes_sent||0,bytesReceived:e.bytes_received||0,localStatistics:{audio:{bitrate:(((m=e.msg_up_stream_info.msg_audio_status)==null?void 0:m.uint32_audio_codec_bitrate)||0)/1e3,audioLevel:(((u=e.msg_up_stream_info.msg_audio_status)==null?void 0:u.uint32_audio_level)||0)/mt},video:e.msg_up_stream_info.msg_video_status.filter(p=>t[p.uint32_video_stream_type]).map(p=>({bitrate:(p.uint32_video_codec_bitrate||0)/1e3,width:p.uint32_video_width,height:p.uint32_video_height,frameRate:p.uint32_video_enc_fps,videoType:t[p.uint32_video_stream_type]}))},remoteStatistics:e.msg_down_stream_info.map(p=>({userId:p.msg_user_info.str_identifier,audio:{bitrate:(p.msg_audio_status.uint32_audio_codec_bitrate||0)/1e3,audioLevel:(p.msg_audio_status.uint32_audio_level||0)/mt},video:p.msg_video_status.map(_=>({bitrate:(_.uint32_video_codec_bitrate||0)/1e3,width:_.uint32_video_width,height:_.uint32_video_height,frameRate:_.uint32_video_dec_fps,videoType:t[_.uint32_video_stream_type]}))}))};this.emit(M.STATISTICS,r)}).add("custom-message",e=>{this.emit(M.CUSTOM_MESSAGE,e)}).add("layerData",e=>this.emit(M.LAYER_DATA,e)).add("first-video-frame",e=>{this.emit(M.FIRST_VIDEO_FRAME,k(v({},e),{streamType:sr(e.streamType)}))}),Ue(this,ye).add("audioInputAdded",e=>{this.emit(M.DEVICE_CHANGED,{type:"microphone",action:"add",device:e})}).add("audioInputRemoved",e=>{this.emit(M.DEVICE_CHANGED,{type:"microphone",action:"remove",device:e})}).add("videoInputAdded",e=>{this.emit(M.DEVICE_CHANGED,{type:"camera",action:"add",device:e})}).add("videoInputRemoved",e=>{this.emit(M.DEVICE_CHANGED,{type:"camera",action:"remove",device:e})}).add("audioOutputAdded",e=>f(this,null,function*(){if(this.emit(M.DEVICE_CHANGED,{type:"speaker",action:"add",device:e}),Me&&Me.deviceId===qs){let t=(yield Ki()).find(r=>r.deviceId===qs);t&&Me.groupId!==t.groupId&&(Me=t,this.emit(M.DEVICE_CHANGED,{type:"speaker",action:"active",device:t}))}})).add("audioOutputRemoved",e=>f(this,null,function*(){this.emit(M.DEVICE_CHANGED,{type:"speaker",action:"remove",device:e});let t=(yield Ki())[0];if(!t||!Me||Me.groupId===t.groupId)return;let r=Me.deviceId===e.deviceId,o=Me.deviceId===qs&&Me.deviceId===t.deviceId;(r||o)&&(Me=t,this.emit(M.DEVICE_CHANGED,{type:"speaker",action:"active",device:t}))}))}use(e){let t,r;"plugin"in e?(t=e.plugin,r=e.assetsPath):t=e,this._use(t,r||cn)}_use(e,t){if(this._plugins.get(e.Name)){this._log.warn("duplicate install plugin",e.Name);return}let o=new e(Cm.call(this,{TRTC:H,room:this._room,errorModule:cT,assetsPath:t}));this._plugins.set(e.Name,o),e.autoStart&&this.startPlugin(e.Name)}enterRoom(e){return f(this,null,function*(){var d,l;let{scene:t="rtc",enableAutoPlayDialog:r=!0,autoReceiveAudio:o=!0,autoReceiveVideo:n=!1}=e;e.proxy&&(this._room.setProxyServer(e.proxy),!K(e.proxy)&&e.proxy.turnServer&&((l=(d=this._room).setTurnServer)==null||l.call(d,e.proxy.turnServer,e.proxy.iceTransportPolicy))),this._room.enableAutoPlayDialog=r,this._room.autoReceiveAudio=o,this._room.autoReceiveVideo=n,he(e.preferHW)&&(this._room.preferHW=e.preferHW);let a={sdkAppId:e.sdkAppId,userId:e.userId,userSig:e.userSig,privateMapKey:e.privateMapKey||null,latencyLevel:e.latencyLevel,role:e.role==="audience"?21:20,roomId:e.roomId||0,strRoomId:e.strRoomId||"",businessInfo:e.businessInfo||null,streamId:null,userDefineRecordId:e.userDefineRecordId||null,frameWorkType:e.frameWorkType,component:e.component,language:e.language,priority:e.priority,useVp8:e.useVp8};e.strRoomId&&!e.roomId?this._room.useStringRoomId=!0:this._room.useStringRoomId=!1,yield this._room.join(a,t,H.frameWorkType),this._checkTrackToPublish(),Bl.start()})}exitRoom(){return f(this,null,function*(){return yield this._exitRoom()})}switchRole(e,t){return f(this,null,function*(){t!=null&&t.privateMapKey&&(this._room.privateMapKey=t.privateMapKey),t!=null&&t.latencyLevel&&(this._room.latencyLevel=t.latencyLevel),yield this._room.switchRole(e),e==="anchor"&&this._checkTrackToPublish()})}destroy(){Se(this),this.removeAllListeners(),this._room.destroy(),Xo.delete(this),Xo.size===0&&Bl.destroy(),this._localAudioTrack&&this.stopLocalAudio(),this._localVideoTrack&&this.stopLocalVideo(),this._localScreenTrack&&this.stopScreenShare(),this._plugins.forEach(e=>{var t;return(t=e.destroy)==null?void 0:t.call(e)}),this._plugins.clear(),E.off("102",this._onLocalTrackCaptured,this)}startLocalAudio(){return f(this,arguments,function*(e={publish:!0}){if(this._localAudioTrack){this._log.warn("local audio is already started");return}let{publish:t=!0,mute:r,option:o}=e,n=new _t(this._room.audioManager),a={},d={muted:!0};o&&(g(o.microphoneId)?g(o.audioTrack)||(a.customSource=o.audioTrack):a.deviceId=o.microphoneId,o&&Y(o.captureVolume)&&n.setCaptureVolume(o.captureVolume),g(o.profile)||(K(o.profile)?un[o.profile]&&n.setProfile(un[o.profile]):n.setProfile(o.profile)),Y(o.earMonitorVolume)&&(d.muted=!(o.earMonitorVolume>0),d.volume=o.earMonitorVolume),g(o.echoCancellation)||(n.profile.echoCancellation=o.echoCancellation),g(o.noiseSuppression)||(n.profile.noiseSuppression=o.noiseSuppression),g(o.autoGainControl)||(n.profile.autoGainControl=o.autoGainControl)),n.on("5",l=>{this.emit(M.ERROR,new w({code:V.DEVICE_ERROR,extraCode:5309,messageParams:{error:l}}))}),n.on("2",l=>{this.emit(M.DEVICE_CHANGED,{type:"microphone",action:"active",device:l})}),n.on("4",l=>{let m;l.error&&(m=w.convertFrom(l.error)),this.emit(M.PUBLISH_STATE_CHANGED,k(v({},l),{error:m}))}),this._listenOutputTrackChanged(n),this._speakerId&&n.setAudioOutput(this._speakerId),yield n.capture(a),g(r)||n.setMute(r),Ue(n,n).add("player-state-changed",l=>{this.emit(M.AUDIO_PLAY_STATE_CHANGED,k(v({},l),{userId:""}))}),this.listeners(M.AUDIO_FRAME).length>0&&(this._getPCMAbortCtrl=this._room.audioManager.getPCM(l=>{this.emit(H.EVENT.AUDIO_FRAME,{data:l})})),this._getPCMAbortCtrl&&n.on("input-media-track-changed",()=>{this._getPCMAbortCtrl&&(this._getPCMAbortCtrl.abort("inputMediaTrackChanged"),this._getPCMAbortCtrl=this._room.audioManager.getPCM(l=>{this.emit(H.EVENT.AUDIO_FRAME,{data:l})}))}),t&&this._room.isJoined&&this._room.publish(n).catch(()=>{}),this._localAudioTrack=n,this._localAudioConfig=k(v({},e),{publish:t}),yield this._updateAudioPlayOption({playOption:d,track:n})})}updateLocalAudio(e){return f(this,null,function*(){if(!this._localAudioTrack||!this._localAudioConfig)return;let{publish:t,mute:r,option:o}=e,n={};o&&(o.microphoneId?yield this._localAudioTrack.switchDevice(o.microphoneId):g(o.audioTrack)||(yield this._localAudioTrack.setInputMediaStreamTrack(o.audioTrack)),g(o.captureVolume)||this._localAudioTrack.setCaptureVolume(o.captureVolume),g(o.earMonitorVolume)||(n.muted=!(o.earMonitorVolume>0),n.volume=o.earMonitorVolume),yield this._localAudioTrack.update3A(o)),this._room.isJoined&&!g(t)&&(t&&!this._localAudioConfig.publish&&this._room.publish(this._localAudioTrack).catch(()=>{}),this._localAudioConfig.publish&&!t&&this._room.unpublish(this._localAudioTrack).catch(()=>{})),g(r)||this._localAudioTrack.setMute(r),yield this._updateAudioPlayOption({playOption:n,track:this._localAudioTrack,prevConfig:this._localAudioConfig}),Ht(this._localAudioConfig,e)})}stopLocalAudio(){return f(this,null,function*(){this._localAudioTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localAudioTrack).catch(()=>{})),this._localAudioTrack.stop(),this._localAudioTrack.close(),this._room.audioManager.removeInput(this._localAudioTrack),Se(this._localAudioTrack),this._localAudioTrack=null,this._localAudioConfig=null,this._getPCMAbortCtrl&&(this._getPCMAbortCtrl.abort("stopLocalAudio"),delete this._getPCMAbortCtrl))})}startLocalVideo(){return f(this,arguments,function*(e={publish:!0,view:null}){if(this._localVideoTrack){this._log.warn("local video is already started");return}let{view:t,publish:r=!0,mute:o,option:n}=e,a=new Ve(this._room.videoManager),d={},l={};n&&(n.cameraId?d.deviceId=n.cameraId:g(n.useFrontCamera)?g(n.videoTrack)||(d.customSource=n.videoTrack):d.facingMode=n.useFrontCamera?h.FACING_MODE_USER:h.FACING_MODE_ENVIRONMENT,n.qosPreference&&(d.contentHint=Go(n.qosPreference)),g(n.profile)||(K(n.profile)?lt[n.profile]&&a.setProfile(lt[n.profile]):a.setProfile(n.profile)),g(n.fillMode)||(l.objectFit=n.fillMode),g(n.mirror)||(l.mirror=n.mirror),g(n.small)||(So()?K(n.small)?a.small=lt[n.small]:n.small===!0?a.small=lt["120p"]:a.small=n.small:this._log.warn("small stream is not supported"))),a.once("first-video-frame",m=>{this.emit(M.FIRST_VIDEO_FRAME,k(v({},m),{streamType:sr(m.streamType)}))}),a.on("5",m=>{this.emit(M.ERROR,new w({code:V.DEVICE_ERROR,extraCode:5308,messageParams:{error:m}}))}),a.on("2",m=>{this.emit(M.DEVICE_CHANGED,{type:"camera",action:"active",device:m})}),a.on("4",m=>{let u;m.error&&(u=w.convertFrom(m.error)),this.emit(M.PUBLISH_STATE_CHANGED,k(v({},m),{error:u}))}),this._listenOutputTrackChanged(a),yield a.capture(d),g(o)||(yield a.setMute(o)),Ue(a,a).add("player-state-changed",m=>{this.emit(M.VIDEO_PLAY_STATE_CHANGED,k(v({},m),{userId:"",streamType:"main"}))}),r&&this._room.isJoined&&this._room.publish(a).catch(()=>{}),this._localVideoTrack=a,this._localVideoConfig=k(v({},e),{view:t,publish:r}),yield this._updateVideoPlayOption({view:t,playOption:l,track:a})})}updateLocalVideo(e){return f(this,null,function*(){if(!this._localVideoTrack||!this._localVideoConfig)return;let{view:t,publish:r,mute:o,option:n}=e,a={};if(n)if(g(n.profile)||(K(n.profile)?lt[n.profile]&&this._localVideoTrack.setProfile(lt[n.profile]):this._localVideoTrack.setProfile(n.profile),(!n.cameraId||!this._localVideoTrack.isNeedToSwitchDevice(n.cameraId))&&g(n.useFrontCamera)&&this._localVideoTrack.applyProfile()),n.cameraId?yield this._localVideoTrack.switchDevice(n.cameraId):g(n.useFrontCamera)?g(n.videoTrack)||(yield this._localVideoTrack.setInputMediaStreamTrack(n.videoTrack)):yield this._localVideoTrack.switchDevice(n.useFrontCamera?h.FACING_MODE_USER:h.FACING_MODE_ENVIRONMENT),g(n.fillMode)||(a.objectFit=n.fillMode),g(n.mirror)||(a.mirror=n.mirror),n.qosPreference&&this._localVideoTrack.mediaTrack&&this._localVideoTrack.setContentHint(Go(n.qosPreference)),n.small){let d=!this._localVideoTrack.small;So()?(n.small===!0?this._localVideoTrack.small=lt["120p"]:K(n.small)?this._localVideoTrack.small=lt[n.small]:this._localVideoTrack.small=n.small,this._room.videoManager.update(),d&&this._room.enableSmall(!0)):this._log.warn("small stream is not supported")}else n.small===!1&&this._localVideoTrack.small&&(delete this._localVideoTrack.small,this._room.videoManager.update(),this._room.enableSmall(!1));this._room.isJoined&&!g(r)&&(r&&!this._localVideoConfig.publish&&this._room.publish(this._localVideoTrack).catch(()=>{}),this._localVideoConfig.publish&&!r&&this._room.unpublish(this._localVideoTrack).catch(()=>{})),g(o)||(yield this._localVideoTrack.setMute(o)),yield this._updateVideoPlayOption({view:t,playOption:a,track:this._localVideoTrack,prevConfig:this._localVideoConfig}),Ht(this._localVideoConfig,e)})}stopLocalVideo(){return f(this,null,function*(){this._localVideoTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localVideoTrack).catch(()=>{})),this._localVideoTrack.stop(),this._localVideoTrack.close(),Se(this._localVideoTrack),this._localVideoTrack=null,this._localVideoConfig=null)})}startScreenShare(){return f(this,arguments,function*(e={publish:!0,view:null}){if(this._localScreenTrack){this._log.warn("screen share is already started");return}let{view:t=null,publish:r=!0,option:o}=e,n=new it(this._room.videoManager);n.on("4",u=>{let p;u.error&&(p=w.convertFrom(u.error)),this.emit(M.PUBLISH_STATE_CHANGED,k(v({},u),{error:p}))}),n.once("first-video-frame",u=>{this.emit(M.FIRST_VIDEO_FRAME,k(v({},u),{streamType:sr(u.streamType)}))}),this._listenOutputTrackChanged(n),e.streamType==="main"&&(n.mediaType=4);let a=null,d={},l={};o&&(g(o.profile)||(K(o.profile)?hn[o.profile]&&n.setProfile(hn[o.profile]):n.setProfile(o.profile)),o.systemAudio&&(d.systemAudio=!0,d.echoCancellation=o.echoCancellation,d.noiseSuppression=o.noiseSuppression,d.autoGainControl=o.autoGainControl),g(o.fillMode)||(l.objectFit=o.fillMode),o.videoTrack&&(d.videoTrack=o.videoTrack),o.audioTrack&&(d.audioTrack=o.audioTrack),o.captureElement&&(d.captureElement=o.captureElement),o.preferDisplaySurface&&(d.preferDisplaySurface=o.preferDisplaySurface),o.qosPreference&&(d.contentHint=Go(o.qosPreference)));let m=yield n.capture(d);if(n.mediaTrack.addEventListener(h.ENDED,()=>{this._stopScreenShare(),this.emit(M.SCREEN_SHARE_STOPPED)}),m.getAudioTracks()[0]&&(a=new ti(this._room.audioManager),yield a.setInputMediaStreamTrack(m.getAudioTracks()[0]),this._speakerId&&a.setAudioOutput(this._speakerId)),Ue(n,n).add("player-state-changed",u=>{this.emit(M.VIDEO_PLAY_STATE_CHANGED,k(v({},u),{userId:"",streamType:"sub"}))}),r&&this._room.isJoined){let u=[n];a&&u.push(a),this._room.publish(...u).catch(()=>{})}this._localScreenTrack=n,this._localScreenAudioTrack=a,this._localScreenConfig=k(v({},e),{view:t,publish:r}),yield this._updateVideoPlayOption({view:t,playOption:l,track:n})})}updateScreenShare(e){return f(this,null,function*(){if(!this._localScreenTrack||!this._localScreenConfig)return;let{view:t,publish:r,option:o}=e,n={};if(o&&(g(o.fillMode)||(n.objectFit=o.fillMode),o.qosPreference)){let a=Go(o.qosPreference);this._localScreenTrack.setContentHint(a)}this._room.isJoined&&!g(r)&&(r&&!this._localScreenConfig.publish&&(this._room.publish(this._localScreenTrack).catch(()=>{}),this._localScreenAudioTrack&&this._room.publish(this._localScreenAudioTrack).catch(()=>{})),this._localScreenConfig.publish&&!r&&(this._room.unpublish(this._localScreenTrack).catch(()=>{}),this._localScreenAudioTrack&&this._room.unpublish(this._localScreenAudioTrack).catch(()=>{}))),yield this._updateVideoPlayOption({view:t,playOption:n,track:this._localScreenTrack,prevConfig:this._localScreenConfig}),Ht(this._localScreenConfig,e)})}stopScreenShare(){return f(this,null,function*(){return yield this._stopScreenShare()})}startRemoteVideo(e){return f(this,null,function*(){let{view:t,userId:r,streamType:o,option:n}=e,a=`${r}_${o}`;if(this._remoteVideoConfigMap.has(a)){this._log.warn(`remote video has already started. userId:${r}, streamType:${o}`);return}let d=this._room.remotePublishedUserMap.get(r);if(!d)return;let l={},m=o==="main"?d.remoteVideoTrack:d.remoteAuxiliaryTrack;this._listenOutputTrackChanged(m),n&&(g(n.fillMode)||(l.objectFit=n.fillMode),g(n.mirror)||(l.mirror=n.mirror),l.canvasRender=n.canvasRender,o==="main"&&!g(n.small)&&(!d.remoteVideoTrack.isSubscribing&&!d.remoteVideoTrack.isSubscribed&&d.remoteVideoTrack.setMediaType(n.small?8:4),this._room.changeType(n.small,m.user))),yield this._room.subscribe(m),yield this._enableVideoDecodeFallback(m,o),yield this._updateVideoPlayOption({view:t,playOption:l,track:m}),this._emitTrackEvent(m),this._remoteVideoConfigMap.set(a,{config:e}),n&&!g(n.receiveWhenViewVisible)&&this._observeView({remoteTrack:m,view:t,receiveWhenViewVisible:n.receiveWhenViewVisible,viewRoot:n==null?void 0:n.viewRoot})})}updateRemoteVideo(e){return f(this,null,function*(){var D,G;let{view:t,userId:r,streamType:o,option:n}=e,a=`${r}_${o}`,d=this._remoteVideoConfigMap.get(a);if(!d||!this._room.remotePublishedUserMap.has(r))return;let l={};n&&(g(n.fillMode)||(l.objectFit=n.fillMode),g(n.mirror)||(l.mirror=n.mirror));let m=null,u=this._room.remotePublishedUserMap.get(r);if(o==="main"&&(u!=null&&u.muteState.hasVideo)&&(m=u.remoteVideoTrack),o==="sub"&&(u!=null&&u.muteState.hasAuxiliary)&&(m=u.remoteAuxiliaryTrack),!m)return;let{config:p}=d;o==="main"&&n&&!g(n.small)&&this._room.changeType(n.small,m.user),yield this._updateVideoPlayOption({view:t,playOption:l,track:m,prevConfig:p}),Ht(p,e);let _=g(n==null?void 0:n.receiveWhenViewVisible)?(D=p.option)==null?void 0:D.receiveWhenViewVisible:n.receiveWhenViewVisible,I=g(t)?p.view:t,R=g(n==null?void 0:n.viewRoot)?(G=p.option)==null?void 0:G.viewRoot:n.viewRoot;this._observeView({remoteTrack:m,view:I,receiveWhenViewVisible:_,viewRoot:R})})}stopRemoteVideo(e){return f(this,null,function*(){return this._stopRemoteVideo(e)})}_stopRemoteVideo(e,t=!0){return f(this,null,function*(){let r=[],o=this._room.remotePublishedUserMap.get(e.userId);if(o){let{muteState:a,remoteVideoTrack:d,remoteAuxiliaryTrack:l}=o;e.streamType==="main"&&(d.stop(),a.hasVideo&&r.push(d)),e.streamType==="sub"&&(l.stop(),a.hasAuxiliary&&r.push(l))}for(let a of r)t&&(yield this._room.unsubscribe(a),this._mediaTrackMap.delete(a.outMediaTrack));let n=this._remoteVideoConfigMap.get(`${e.userId}_${e.streamType}`);n&&n.observer&&n.observer.disconnect(),this._remoteVideoConfigMap.delete(`${e.userId}_${e.streamType}`)})}muteRemoteAudio(e,t){return f(this,null,function*(){this._remoteAudioMuteMap.set(e,t);try{if(e==="*")if(t)yield this._stopRemoteAudio({userId:e});else{let r=[...this._room.remotePublishedUserMap.values()];for(let o of r)o.muteState.hasAudio&&!this._remoteAudioConfigMap.has(o.userId)&&(yield this._startRemoteAudio({userId:o.userId}))}else t?yield this._stopRemoteAudio({userId:e}):this._remoteAudioConfigMap.has(e)||(yield this._startRemoteAudio({userId:e}))}catch(r){throw this._remoteAudioMuteMap.delete(e),r}})}setRemoteAudioVolume(e,t){if(e==="*"){let r=[...this._room.remotePublishedUserMap.values()];for(let o of r)this._remoteAudioVolumeMap.set(o.userId,t),o.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:t},track:o.remoteAudioTrack})}else if(e){let r=this._room.remotePublishedUserMap.get(e);this._remoteAudioVolumeMap.set(e,t),r&&r.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:t},track:r.remoteAudioTrack})}}startPlugin(e,t){return f(this,null,function*(){return e.start(t)})}updatePlugin(e,t){return f(this,null,function*(){return e.update(t)})}stopPlugin(e,t){return f(this,null,function*(){return e.stop(t)})}enableAudioVolumeEvaluation(e=2e3,t=!1){this._room.enableAudioVolumeEvaluation(e,t)}on(e,t,r){return this.listeners(e).includes(t)?this:(this._log.debug("on",e),super.on(e,t,r),this._eventListened.add(e),e===H.EVENT.AUDIO_FRAME&&!this._getPCMAbortCtrl&&(this._getPCMAbortCtrl=this._room.audioManager.getPCM(o=>{this.emit(H.EVENT.AUDIO_FRAME,{data:o})}),this._localAudioTrack&&this._localAudioTrack.on("input-media-track-changed",()=>{this._getPCMAbortCtrl&&(this._getPCMAbortCtrl.abort("inputMediaTrackChanged"),this._getPCMAbortCtrl=this._room.audioManager.getPCM(o=>{this.emit(H.EVENT.AUDIO_FRAME,{data:o})}))})),this)}emit(e,...t){try{Sm.has(e)&&this._log.debug(`emit ${e} ${JSON.stringify(t)}`)}catch(r){}return super.emit(e,...t)}off(e,t,r){var o,n;return this._log.debug("off",e),e==="*"?(this._eventListened.clear(),this.removeAllListeners(),(o=this._getPCMAbortCtrl)==null||o.abort("off"),delete this._getPCMAbortCtrl):(super.off(e,t,r),e===H.EVENT.AUDIO_FRAME&&((n=this._getPCMAbortCtrl)==null||n.abort("off"),delete this._getPCMAbortCtrl)),this}getAudioTrack(e={userId:"",streamType:"main"}){let t,r=null,o="main",n=!1;if(K(e)?t=e:(t=e.userId,n=e.processed===!0,e.streamType&&(o=e.streamType)),t){let a=this._room.remotePublishedUserMap.get(t);a&&(r=a.remoteAudioTrack)}else r=o==="sub"?this._localScreenAudioTrack:this._localAudioTrack;return r?n&&r.outMediaTrack&&r.outMediaTrack!==r.mediaTrack?r.outMediaTrack.clone():r.mediaTrack:null}getVideoTrack(e={userId:"",streamType:"main"}){let{userId:t="",streamType:r="main",processed:o=!1}=e,n=null;if(t==="")r==="main"&&this._localVideoTrack&&(n=this._localVideoTrack),r==="sub"&&this._localScreenTrack&&(n=this._localScreenTrack);else{let a=this._room.remotePublishedUserMap.get(t);a&&(n=r==="main"?a.remoteVideoTrack:a.remoteAuxiliaryTrack)}return n?o&&n.outMediaTrack&&n.outMediaTrack!==n.mediaTrack?n.outMediaTrack.clone():n.mediaTrack:null}getVideoSnapshot(e={}){let{userId:t,streamType:r="main"}=e;if(t){let o=this._room.remotePublishedUserMap.get(t);if(r==="main"&&(o!=null&&o.muteState.hasVideo))return o.remoteVideoTrack.getVideoFrame();if(r==="sub"&&(o!=null&&o.muteState.hasAuxiliary))return o.remoteAuxiliaryTrack.getVideoFrame()}else{if(r==="main"&&this._localVideoTrack)return this._localVideoTrack.getVideoFrame();if(r==="sub"&&this._localScreenTrack)return this._localScreenTrack.getVideoFrame()}return""}_setCurrentSpeaker(e){var t,r;this._speakerId=e,(t=this._localAudioTrack)==null||t.setAudioOutput(e),(r=this._localScreenAudioTrack)==null||r.setAudioOutput(e),this._room.remotePublishedUserMap.forEach(o=>o.remoteAudioTrack.setAudioOutput(e))}setCurrentSpeaker(e){return f(this,null,function*(){(yield Ki()).forEach(r=>{r.deviceId===e&&(this._setCurrentSpeaker(e),this.emit(M.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}),Me=r)}),this._log.warn('the "setCurrentSpeaker" method of the instance will be deprecated in the future, please use "TRTC.setCurrentSpeaker" instead. For more information, please visit: https://web.sdk.qcloud.com/trtc/webrtc/v5/doc/en/TRTC.html#.setCurrentSpeaker')})}_startRemoteAudio(e){return this._doStartRemoteAudio(e)}_doStartRemoteAudio(e){return f(this,null,function*(){let{userId:t}=e;if(this._remoteAudioConfigMap.has(t)){this._log.warn(`remote audio has already started. userId:${t}`);return}let r=this._room.remotePublishedUserMap.get(t);if(!r)return;let o={},n=r.remoteAudioTrack;this._listenOutputTrackChanged(n),this._speakerId&&n.setAudioOutput(this._speakerId);try{let a=this._remoteAudioVolumeMap.get(t),d=Y(a)?a:100;o.volume=d,this._remoteAudioConfigMap.set(t,e),yield this._room.subscribe(n),_e(Ie(n,"decode-failed"),Pe(Ie(n,Q.INIT)),be(()=>{this.startPlugin(jo.Name,{track:n,type:"auto",config:{codec:"opus",sampleRate:48e3,numberOfChannels:1}})})),yield this._updateAudioPlayOption({playOption:o,track:n})}catch(a){throw this._remoteAudioConfigMap.delete(t),a}this._emitTrackEvent(n)})}_stopRemoteAudio(e,t=!0){return f(this,null,function*(){let r=this._room.remotePublishedUserMap.get(e.userId);r&&(r.remoteAudioTrack.stop(),r.muteState.hasAudio&&t&&(yield this._room.unsubscribe(r.remoteAudioTrack)),this._mediaTrackMap.delete(r.remoteAudioTrack.outMediaTrack)),this._remoteAudioConfigMap.delete(`${e.userId}`)})}_enableVideoDecodeFallback(e,t){let r=this._room.videoDecodeFallbackType;!r||!this._plugins.has("TRTCVideoDecoder")||(this._log.debug("remote video will fall back when decode failed"),_e(Ie(e,"decode-failed"),Pe(Ie(e,Q.INIT)),bl(()=>{this.startPlugin("TRTCVideoDecoder",{type:"auto",renderer:"videoFrame",track:e,config:{codec:"avc1.420028"},fallback:r})}),Vo(Ie(e,"decode-downgrade-state-changed")),be(o=>{this.emit(M.VIDEO_DECODE_DOWNGRADE_STATE_CHANGED,k(v({},o),{streamType:t,userId:e.userId}))},o=>{this._log.error("fallback",o)},()=>this._log.info("fallback complete"))))}_updateVideoPlayOption(n){return f(this,arguments,function*({view:e,playOption:t,track:r,prevConfig:o}){if(r.setMirror(t.mirror),g(e)&&o&&o.view&&!jr(t)){let a=Qr(o.view);a.length>0&&(yield r.play(a,t))}if(!g(e)){let a=Qr(e);a.length>0?yield r.play(a,t):r.stop()}})}_updateAudioPlayOption(o){return f(this,arguments,function*({playOption:e={},track:t,prevConfig:r}){if(!t.isPlayCalled)try{yield t.play(null,e)}catch(n){}g(e.muted)||t.setPlayerMute(e.muted),g(e.volume)||t.setAudioVolume(e.volume/100)})}_listenOutputTrackChanged(e){e.listeners("output-media-track-changed").length===0&&e.on("output-media-track-changed",()=>this._emitTrackEvent(e,!1))}_emitTrackEvent(e,t=!0){let r=e.isRemote?e.userId:"";e.outMediaTrack&&(t&&this._mediaTrackMap.get(e.outMediaTrack)===r||(this._mediaTrackMap.set(e.outMediaTrack,r),this.emit(M.TRACK,{userId:r,streamType:sr(e.streamType),track:e.outMediaTrack})))}_checkTrackToPublish(){var t,r,o;let e=[];if((t=this._localAudioConfig)!=null&&t.publish&&this._localAudioTrack&&e.push(this._localAudioTrack),(r=this._localVideoConfig)!=null&&r.publish&&this._localVideoTrack&&e.push(this._localVideoTrack),(o=this._localScreenConfig)!=null&&o.publish&&(this._localScreenTrack&&e.push(this._localScreenTrack),this._localScreenAudioTrack&&e.push(this._localScreenAudioTrack)),e.length!==0)return this._room.publish(...e).catch(()=>{})}_observeView({remoteTrack:e,view:t,receiveWhenViewVisible:r=!1,viewRoot:o}){if(g(t))return;let n=this._remoteVideoConfigMap.get(`${e.userId}_${sr(e.streamType)}`);if(!n)return;let a=n.observer||void 0;if(t===null||Te(t)&&t.length===0||!r){a==null||a.disconnect(),e.isSubscribed||this._room.subscribe(e).catch(()=>{});return}let l=n.visibleViewMap||new Map,m=-1;(!a||a.root!==o)&&(a==null||a.disconnect(),l.clear(),a=new IntersectionObserver(p=>{p.forEach(_=>{l.set(_.target,_.isIntersecting)}),clearTimeout(m),m=window.setTimeout(()=>{[...l.values()].find(I=>I)?e.isSubscribed||this._room.subscribe(e).catch(()=>{}):e.isSubscribed&&this._room.unsubscribe(e).catch(()=>{})},200)},{root:o}));let u=new Set(Qr(t));l.forEach((p,_)=>{u.has(_)||(a.unobserve(_),l.delete(_))}),u.forEach(p=>{l.set(p,!0),a.observe(p)}),a.takeRecords().forEach(p=>{l.set(p.target,p.isIntersecting)}),n.visibleViewMap=l,n.observer=a}_exitRoom(){return f(this,null,function*(){this._room.isJoined&&(yield this._room.leave()),new Set([...this._remoteAudioConfigMap.keys(),...this._remoteAudioMuteMap.keys()]).forEach(e=>{this._stopRemoteAudio({userId:e}).catch()}),[...this._remoteVideoConfigMap.keys()].forEach(e=>{let t=e.includes("main")?"main":"sub",r=e.split(`_${t}`)[0];r&&this._stopRemoteVideo({userId:r,streamType:t}).catch()}),this._remoteVideoConfigMap.clear(),this._remoteAudioConfigMap.clear(),this._remoteAudioMuteMap.clear(),this._remoteAudioVolumeMap.clear(),ym(this),this._room.remotePublishedUserMap.forEach(e=>{Se(e.remoteAudioTrack),Se(e.remoteVideoTrack),Se(e.remoteAuxiliaryTrack)})})}_stopScreenShare(){return f(this,null,function*(){var e;if(this._localScreenTrack){if(this._room.isJoined){let t=[this._localScreenTrack];this._localScreenAudioTrack&&t.push(this._localScreenAudioTrack),yield(e=this._room)==null?void 0:e.unpublish(...t).catch(()=>{})}this._localScreenTrack.stop(),this._localScreenTrack.close(),this._localScreenAudioTrack&&(this._localScreenAudioTrack.stop(),this._localScreenAudioTrack.close(),this._room.audioManager.removeInput(this._localScreenAudioTrack),this._localScreenAudioTrack=null),Se(this._localScreenTrack),this._localScreenTrack=null,this._localScreenConfig=null}})}_onLocalTrackCaptured({track:e}){e.kind==="audio"&&(!Me||fs(Me))&&(this._initActiveSpeaker(),E.off("102",this._onLocalTrackCaptured,this))}_initActiveSpeaker(){return f(this,null,function*(){if(Me&&!fs(Me))this.emit(M.DEVICE_CHANGED,{type:"speaker",action:"active",device:Me});else{let e=yield Ki();e[0]&&!fs(e[0])?(Me=e[0],this.emit(M.DEVICE_CHANGED,{type:"speaker",action:"active",device:e[0]})):E.on("102",this._onLocalTrackCaptured,this)}})}_onAudioAvailable({userId:e}){let t=this._remoteAudioMuteMap.has(e)?this._remoteAudioMuteMap.get(e):this._remoteAudioMuteMap.get("*");(t===!1||this._room.autoReceiveAudio&&!t)&&this._doStartRemoteAudio({userId:e}).catch(()=>{})}_onVideoAvailable({userId:e,streamType:t}){if(!this._room.autoReceiveVideo)return;let r=this._room.remotePublishedUserMap.get(e);if(r){let o=t==="main"?r.remoteVideoTrack:r.remoteAuxiliaryTrack,n=[o];this._room.autoReceiveAudio&&n.push(r.remoteAudioTrack),this._room.subscribe(...n).then(()=>{this._emitTrackEvent(o)}).catch(()=>{})}}_onAudioUnavailable({userId:e,muteState:t}){t.hasAudio&&t.audioMuted||this._stopRemoteAudio({userId:e},!1).catch(()=>{})}_onVideoUnavailable({userId:e,streamType:t}){this._stopRemoteVideo({userId:e,streamType:t},!1).catch(()=>{})}sendSEIMessage(e,t){var o;let r=this._plugins.get("SEI");r&&(r.update({buffer:e,options:k(v({seiPayloadType:243},t),{small:!!((o=this._localVideoTrack)!=null&&o.small)})}),N.addCount({key:5e5,useUV:!0}))}sendCustomMessage(e){var t,r;(r=(t=this._room).sendCustomMessage)==null||r.call(t,e),N.addCount({key:500001,useUV:!0})}static setLogLevel(e,t){C.setLogLevel(e),g(t)||(t?C.enableUploadLog():C.disableUploadLog())}static isSupported(){return zn()}static getCameraList(e=!0){return dt(e)}static getMicrophoneList(e=!0){return et(e)}static getSpeakerList(e=!0){return Ki(e)}static setCurrentSpeaker(e){return f(this,null,function*(){if(me&&(e===Tt.SPEAKER||e===Tt.HEADSET)){let r=yield H.getMicrophoneList(),o="";if(r.forEach(n=>{n.label===e&&(o=n.deviceId)}),!o)return;Xo.forEach(n=>f(this,null,function*(){n._localAudioTrack&&(yield n.updateLocalAudio({option:{microphoneId:o}}))}));return}(yield Ki()).forEach(r=>{r.deviceId===e&&(Xo.forEach(o=>{o._setCurrentSpeaker(e),o.emit(M.DEVICE_CHANGED,{type:"speaker",action:"active",device:r})}),Me=r)})})}static _addKVStat({type:e,key:t,value:r,base:o,useUV:n,version:a}){switch(a&&(Tr.version=a),e){case"count":Tr.addCount({key:t,useUV:n});break;case"enum":Tr.addEnum({key:t,value:r,useUV:n});break;case"number":Tr.addNumber({key:t,value:r,split:o});break}}};c(H,"_loggerManager",C),c(H,"EVENT",M),c(H,"ERROR_CODE",V),c(H,"TYPE",Tt),c(H,"frameWorkType",30),y([le({replaceArg:e=>({argIndex:0,value:{name:"plugin"in e?e.plugin.Name:e.Name,assetsPath:"assetsPath"in e?e==null?void 0:e.assetsPath:"default"}})})],H.prototype,"use",1),y([He(Oe.TRTC.enterRoom),ir("room",([e],[t])=>(e.roomId||e.strRoomId)===(t.roomId||t.strRoomId)&&e.userId===t.userId&&e.sdkAppId===t.sdkAppId),J(e=>function(t){return this._log.setUserId(t.userId),this._log.setSdkAppId(t.sdkAppId),e.call(this,t)}),le()],H.prototype,"enterRoom",1),y([le()],H.prototype,"exitRoom",1),y([He(Oe.TRTC.switchRole),Lr("room",{merge:(e,t)=>t}),le()],H.prototype,"switchRole",1),y([le()],H.prototype,"destroy",1),y([He(Oe.TRTC.startLocalAudio),ir("audio",([e],[t])=>{var r,o;return((r=e==null?void 0:e.option)==null?void 0:r.microphoneId)===((o=t==null?void 0:t.option)==null?void 0:o.microphoneId)}),le()],H.prototype,"startLocalAudio",1),y([He(Oe.TRTC.updateLocalAudio),Lr("audio",{debounce:{delay:200,getKey:()=>`${Mm}-localAudio`,isNeedToDebounce:e=>{var t;return!g((t=e.option)==null?void 0:t.captureVolume)}}}),le()],H.prototype,"updateLocalAudio",1),y([rr("audio"),le()],H.prototype,"stopLocalAudio",1),y([He(Oe.TRTC.startLocalVideo),ir("video",([e],[t])=>{var r,o;return((r=e==null?void 0:e.option)==null?void 0:r.cameraId)===((o=t==null?void 0:t.option)==null?void 0:o.cameraId)}),le()],H.prototype,"startLocalVideo",1),y([He(Oe.TRTC.updateLocalVideo),Lr("video"),le()],H.prototype,"updateLocalVideo",1),y([rr("video"),le()],H.prototype,"stopLocalVideo",1),y([He(Oe.TRTC.startScreenShare),ir("screen",()=>!0),le()],H.prototype,"startScreenShare",1),y([He(Oe.TRTC.updateScreenShare),Lr("screen"),le()],H.prototype,"updateScreenShare",1),y([le()],H.prototype,"stopScreenShare",1),y([He(Oe.TRTC.startRemoteVideo),ir(e=>`v${e.userId}${e.streamType}`,()=>!0),le({getRemoteId:e=>`${e.userId}_${e.streamType}`})],H.prototype,"startRemoteVideo",1),y([He(Oe.TRTC.updateRemoteVideo),Lr(e=>`v${e.userId}${e.streamType}`),le({getRemoteId:e=>`${e.userId}_${e.streamType}`})],H.prototype,"updateRemoteVideo",1),y([He(Oe.TRTC.stopRemoteVideo),J(e=>function(t){return f(this,null,function*(){if(t.userId==="*"){let r=[];return this._room.remotePublishedUserMap.forEach(o=>{this._remoteVideoConfigMap.has(`${o.userId}_main`)&&r.push(this.stopRemoteVideo({streamType:"main",userId:o.userId}).catch(()=>{})),this._remoteVideoConfigMap.has(`${o.userId}_sub`)&&r.push(this.stopRemoteVideo({streamType:"sub",userId:o.userId}).catch(()=>{}))}),Promise.all(r)}return e.call(this,t)})}),le({getRemoteId:e=>`${e.userId}_${e.streamType}`})],H.prototype,"stopRemoteVideo",1),y([rr(e=>`v${e.userId}${e.streamType}`)],H.prototype,"_stopRemoteVideo",1),y([He(...Oe.TRTC.muteRemoteAudio),le({getRemoteId:e=>e})],H.prototype,"muteRemoteAudio",1),y([wl(...Oe.TRTC.setRemoteAudioVolume),bm(200,e=>e),le({getRemoteId:e=>e})],H.prototype,"setRemoteAudioVolume",1),y([$a("start"),Je(e=>{var t;return(t=e.afterStart)==null?void 0:t.call(e)}),ir((e,t)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(t)),le({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>hd[e.getName()],ignoreLog:e=>e.getName()==="Debug"})],H.prototype,"startPlugin",1),y([$a("update"),Lr((e,t)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(t)),le({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>md[e.getName()]})],H.prototype,"updatePlugin",1),y([$a("stop"),rr((e,t)=>{if(e.disableRandomCall)return null;let r=e.getGroup(t),o=e.getAlias();return r==="*"?new RegExp(`${o}.*`):o+r}),le({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>pd[e.getName()]})],H.prototype,"stopPlugin",1),y([wl(...Oe.TRTC.enableAudioVolumeEvaluation)],H.prototype,"enableAudioVolumeEvaluation",1),y([le()],H.prototype,"getVideoSnapshot",1),y([le()],H.prototype,"_setCurrentSpeaker",1),y([ir(e=>`a${e.userId}`,()=>!0)],H.prototype,"_startRemoteAudio",1),y([J(e=>function(t){return f(this,null,function*(){return t.userId==="*"?Promise.all([...this._room.remotePublishedUserMap.values()].map(r=>this._stopRemoteAudio(k(v({},t),{userId:r.userId})).catch(()=>{}))):e.call(this,t)})}),rr(e=>`a${e.userId}`)],H.prototype,"_stopRemoteAudio",1),y([rr("room")],H.prototype,"_exitRoom",1),y([rr("screen")],H.prototype,"_stopScreenShare",1),y([He(...Oe.TRTC.sendSEIMessage),vl({timesInSecond:30,maxSizeInSecond:8e3,getSize:(...e)=>e[0].byteLength})],H.prototype,"sendSEIMessage",1),y([He(Oe.TRTC.sendCustomMessage),vl({timesInSecond:30,maxSizeInSecond:8e3,getSize:e=>e.data.byteLength})],H.prototype,"sendCustomMessage",1),y([He(Oe.TRTC.create)],H,"_create",1);var Ql=H,Qo=Ql;var zl=class{constructor(){c(this,"_set",new Set);E.on(T.LEAVE_SUCCESS,this.delete,this)}add({room:i,roomId:e}){if(i.scene==="rtc")return;let t=this.getKey(i.userId,e||i.roomId,i.sdkAppId,i.useStringRoomId);this._set.add(t)}delete({room:i,roomId:e}){if(i.scene==="rtc")return;let t=this.getKey(i.userId,i.roomId||e,i.sdkAppId,i.useStringRoomId);this._set.delete(t)}getKey(i,e,t,r){return`${t}_${e}_${i}_${r}`}isJoined({userId:i,roomId:e,sdkAppId:t,room:r}){return r.scene==="rtc"?!1:this._set.has(this.getKey(i,e,t,r.useStringRoomId))}};function dT(){return f(this,null,function*(){let s,i;try{let u=yield et();s=u&&u.length}catch(u){}try{let u=yield dt();i=u&&u.length}catch(u){}let e={microphone:s,camera:i},{isH264EncodeSupported:t,isVp8EncodeSupported:r,isH264DecodeSupported:o,isVp8DecodeSupported:n}=this.checkSystemResult.detail,a=jt.basis(),d={webRTC:a.isWebRTCSupported,getUserMedia:a.isGetUserMediaSupported,webSocket:a.isWebSocketsSupported,screenShare:a.isScreenShareSupported,webAudio:a.isWebAudioSupported,h264Encode:t,h264Decode:o,vp8Encode:r,vp8Decode:n},l={browser:a.browser,os:a.os,trtc:d,devices:e},m={isWebCodecSupported:a.isWebCodecSupported,isMediaSessionSupported:a.isMediaSessionSupported,isWebTransportSupported:a.isWebTransportSupported};ee.uploadEvent({log:`trtcstats-${JSON.stringify(l)}`,userId:this.userId}),this._log.info(`TrtcStats-${JSON.stringify(l)}`),ee.uploadEvent({log:`trtcadvancedstats-${JSON.stringify(m)}`,userId:this.userId})})}function Lm(){return J(s=>{let i=new zl;return function(e,t,r){return f(this,null,function*(){let o=String(e.roomId||e.strRoomId);if(this.userId=e.userId,this.sdkAppId=e.sdkAppId,this.userSig=e.userSig,this._log.setSdkAppId(this.sdkAppId),this._log.setUserId(this.userId),this.scene=t,e.privateMapKey=e.privateMapKey||"",this.isJoined)throw new b({code:S.INVALID_OPERATION,message:U({key:x.INVALID_JOIN})});if(this.checkDestroy(),i.isJoined({userId:this.userId,roomId:o,sdkAppId:this.sdkAppId,room:this}))throw new b({code:S.INVALID_OPERATION,message:U({key:x.REPEAT_JOIN,data:this.userId})});i.add({room:this,roomId:o}),this.role=e.role===21?"audience":"anchor",this._log.info(`Join() => joining room: ${o} useStringRoomId: ${this.useStringRoomId} scene: ${this.scene} role: ${this.role}`),E.emit(T.JOIN_START,{room:this,roomId:o,params:e});let n=st.getEnv();n||(n=ai.QCLOUD,this.proxy_ws&&(this.proxy_ws.startsWith(mn.OLD_CLOUD_LADDER)?n=ai.OLD_CLOUD_LADDER:this.proxy_ws.startsWith(mn.WEBRTC)&&(n=ai.WEBRTC))),ee.setConfig({env:n,sdkAppId:String(this.sdkAppId),userId:this.userId,roomId:o}),jt.checkSystemRequirementsInternal().then(a=>{this.checkSystemResult=a,dT.call(this)});try{!this.proxy_ws&&!this.proxy_wt&&!this.scheduleResult.domains&&!st.getEnv()&&(yield this.schedule(e,r));let a=yield s.call(this,e,t,r);return this.roomId=o,this._joinedTimestamp=st.performanceNow(),E.emit(T.JOIN_SUCCESS,{room:this}),r===30&&!e.component&&ee.uploadEvent({log:`stat-conv-${Number(Ot)}-${location.hostname}`,userId:this.userId}),a}catch(a){throw i.delete({room:this,roomId:o}),E.emit(T.JOIN_FAILED,{room:this,error:a}),a}})}})}var Pm=()=>J(s=>function(...i){return f(this,null,function*(){E.emit(T.LEAVE_START,{room:this}),yield s.call(this),E.emit(T.LEAVE_SUCCESS,{room:this,roomId:this.roomId})})});function wm(){return J(s=>function(...i){let e=s.apply(this,i);return i.forEach(t=>!t.isSubscribed&&t.subscribe(e)),e})}var Um=ke(Ge());var Ee={SETUP_SUCCESS:"1",CONNECTION_STATE_CHANGED:"2",CONNECTED:"3",RECONNECT_FAILED:"4",SETUP_FAILED:"5",DISCONNECTED:"6"};var xt={CLIENT_BANNED:9,CHANNEL_SETUP_RESULT:19,CHANNEL_RECONNECT_RESULT:514,JOIN_ROOM_RESULT:20,PEER_JOIN:4134,PEER_LEAVE:4135,STREAM_ADDED:16,STREAM_REMOVED:18,UPLINK_NETWORK_STATS:22,UPDATE_REMOTE_MUTE_STAT:23,PUBLISH_RESULT:4098,PUBLISH_STATE_CHANGE_RESULT:4112,UNPUBLISH_RESULT:4100,SUBSCRIBE_RESULT:4102,UNSUBSCRIBE_RESULT:4104,SUBSCRIBE_CHANGE_RESULT:4106,MUTE_RESULT:4108,UPDATE_OFFER_RESULT:4128,START_PUBLISH_TENCENT_CDN_RES:1286,STOP_PUBLISH_TENCENT_CDN_RES:1288,START_PUBLISH_GIVEN_CDN_RES:777,STOP_PUBLISH_GIVEN_CDN_RES:779,START_MIX_TRANSCODE_RES:781,STOP_MIX_TRANSCODE_RES:783,START_PUBLISH_CDN_STREAM_RES:8196,UPDATE_PUBLISH_CDN_STREAM_RES:8198,STOP_PUBLISH_CDN_STREAM_RES:8200,USER_LIST_RES:4137,SWITCH_ROLE_RES:4110,UPDATE_CONSTRAINT_CONFIG_RES:772,REBUILD_PEER_CONNECTION_RES:4150,SPC_PUBLISH_RESULT:4146,SPC_SUBSCRIBE_RESULT:4156,ABILITY_STATUS_REPORT_RESULT:4158,SERVER_FIRST_PACKAGE_RECEIVED:5e3,RECEIVE_CUSTOM_MSG:4140},xm=[xt.UPDATE_REMOTE_MUTE_STAT,xt.UPLINK_NETWORK_STATS,xt.USER_LIST_RES,xt.MUTE_RESULT,xt.SERVER_FIRST_PACKAGE_RECEIVED,xt.RECEIVE_CUSTOM_MSG],B={CLIENT_BANNED:"client-banned",CHANNEL_SETUP_RESULT:"channel-setup-result",CHANNEL_RECONNECT_RESULT:"channel-reconnect-result",JOIN_ROOM_RESULT:"join-room-result",PEER_JOIN:"peer-join",PEER_LEAVE:"peer-leave",STREAM_ADDED:"stream-added",STREAM_REMOVED:"stream-removed",UPLINK_NETWORK_STATS:"uplink-network-stats",UPDATE_REMOTE_MUTE_STAT:"update-remote-mute-stat",PUBLISH_RESULT:"publish-result",PUBLISH_STATE_CHANGE_RESULT:"publish-state-change-result",UNPUBLISH_RESULT:"unpublish-result",SUBSCRIBE_RESULT:"subscribe-result",SUBSCRIBE_CHANGE_RESULT:"subscribe-change-result",UNSUBSCRIBE_RESULT:"unsubscribe-result",UPDATE_OFFER_RESULT:"update-offer-result",START_PUBLISH_TENCENT_CDN_RES:"start-publish-tencent-cdn-res",STOP_PUBLISH_TENCENT_CDN_RES:"stop-publish-tencent-cdn-res",START_PUBLISH_GIVEN_CDN_RES:"start-publish-given-cdn-res",STOP_PUBLISH_GIVEN_CDN_RES:"stop-publish-given-cdn-res",START_MIX_TRANSCODE_RES:"start-mix-transcode-res",STOP_MIX_TRANSCODE_RES:"stop-mix-transcode-res",START_PUBLISH_CDN_STREAM_RES:"start-publish-cdn-stream-res",UPDATE_PUBLISH_CDN_STREAM_RES:"update-publish-cdn-stream-res",STOP_PUBLISH_CDN_STREAM_RES:"stop-publish-cdn-stream-res",USER_LIST_RES:"user-list-res",SWITCH_ROLE_RES:"switch_role_res",MUTE_RESULT:"mute-result",UPDATE_CONSTRAINT_CONFIG_RES:"update-contraint-config-res",REBUILD_PEER_CONNECTION_RES:"rebuild-pc-res",SPC_PUBLISH_RESULT:"spc-publish-result",SPC_SUBSCRIBE_RESULT:"spc-subscribe-result",ABILITY_STATUS_REPORT_RESULT:"ability-status-report",SERVER_FIRST_PACKAGE_RECEIVED:"first-pkg-received",RECEIVE_CUSTOM_MSG:"receive-custom-msg"},q={PUBLISH_CHANGE:"publish_change",JOIN_ROOM:"join",LEAVE_ROOM:"leave",ON_QUALITY_REPORT:"quality_report",UPDATE_MUTE_STAT:"mute_uplink",PUBLISH:"publish",PUBLISH_STATE_CHANGE:"publish_state_change",UNPUBLISH:"unpublish",SUBSCRIBE:"subscribe",RECEIVE_DATA_USER_LIST:"receive_data_userlist",UNSUBSCRIBE:"unsubscribe",SUBSCRIBE_CHANGE:"subscribe_change",START_PUBLISH_TENCENT_CDN:"start_publishing",STOP_PUBLISH_TENCENT_CDN:"stop_publishing",START_PUBLISH_GIVEN_CDN:"start_push_user_cdn",STOP_PUBLISH_GIVEN_CDN:"stop_push_user_cdn",START_MIX_TRANSCODE:"start_mcu_mix",STOP_MIX_TRANSCODE:"stop_mcu_mix",START_PUBLISH_CDN_STREAM:"start_publish_cdn_stream",UPDATE_PUBLISH_CDN_STREAM:"update_publish_cdn_stream",STOP_PUBLISH_CDN_STREAM:"stop_publish_cdn_stream",GET_USER_LIST:"get_user_list",SWITCH_ROLE:"change_role",UPDATE_CONSTRAINT_CONFIG:"update_constraint_config",REBUILD_PEER_CONNECTION:"rebuild_pc",READY_TO_RECEIVE_DATA:"ready_to_receive",SPC_JOIN_ROOM:"join/v2",SPC_PUBLISH:"publish/v2",SPC_SUBSCRIBE:"subscribe/v3",ABILITY_STATUS_REPORT:"ability_status_report",RECONNECT_WS:"reconnect",SEND_CUSTOM_MSG:"channel_msg"};var Ya=new Set;function Vm(s){let i=[...Ya.values()].find(e=>e.room.userId===s&&!e.room.isJoined);return i||null}var vs=class extends Um.default{constructor(e){var r,o;super();c(this,"room");c(this,"url");c(this,"backupUrl");c(this,"race");c(this,"destroyed",!1);c(this,"_socketInUse");c(this,"_socket");c(this,"_backupSocket");c(this,"_signalInfo",{tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,endReportExtend:void 0});c(this,"_currentState","DISCONNECTED");c(this,"_isReconnecting",!1);c(this,"_seq",0);c(this,"_log");c(this,"_lastMessageTime",-1);c(this,"_connnectStartTime",-1);c(this,"_stopConnectRetry");c(this,"bytesSent",0);c(this,"bytesReceived",0);c(this,"keepAlive",!1);c(this,"signalDomainWhenUnifiedProxy");c(this,"stopKeepAliveTimeout");c(this,"rtt",0);this.room=e.room,this.race=g(e.race)?!0:e.race,this.signalDomainWhenUnifiedProxy=e.signalDomainWhenUnifiedProxy,(((o=(r=this.room.scheduleResult)==null?void 0:r.config)==null?void 0:o.keepAliveClient)||0)-Ya.size>0&&this.room.enableSPC&&(this.keepAlive=!0,Ya.add(this)),this.url=e.url,this.backupUrl=e.backupUrl,this._seq=0,this._log=C.createLogger({id:"ws",userId:this.userId,sdkAppId:this.sdkAppId}),this.onmessage=this.onmessage.bind(this),this.onerror=this.onerror.bind(this),this.onclose=this.onclose.bind(this)}get urlParam(){let e=`?sdkAppId=${encodeURIComponent(this.sdkAppId)}&userId=${encodeURIComponent(this.userId)}&userSig=${encodeURIComponent(this.userSig)}&keepAlive=${encodeURIComponent(Number(this.keepAlive))}`;this.signalDomainWhenUnifiedProxy&&(e+=`&signalDomain=${encodeURIComponent(this.signalDomainWhenUnifiedProxy)}`);let t=new URLSearchParams(location.search).get("clientIp");return t&&(e+=`&clientIp=${t}`),this.race?`${e}&race=1`:e}get _urlWithParam(){return`${this.url}${this.race?"/v2/ws":""}${this.urlParam}`}get _backupUrlWithParam(){return`${this.backupUrl}${this.race?"/v2/ws":""}${this.urlParam}`}get isConnected(){return this._currentState==="CONNECTED"}get isConnecting(){return this._currentState==="CONNECTING"}get sdkAppId(){return this.room.sdkAppId}get userId(){return this.room.userId}get userSig(){return this.room.userSig}get isOnline(){return this._currentState==="CONNECTED"&&Date.now()-this._lastMessageTime<12*1e3}connect(){return f(this,arguments,function*(e=10*1e3){if(this.isConnected)return Promise.resolve();this._log.info(`connect to [${this.url}, ${this.backupUrl}]${e?` timeout: ${e}`:""} keepAlive: ${Number(this.keepAlive)}`),this.emitConnectionStateChanged("CONNECTING"),this._connnectStartTime=L();let t=[this.connectWS({url:this._urlWithParam,isMain:!0,timeout:e})];this.race&&this._backupUrlWithParam!==this._urlWithParam&&t.push(this.connectWS({url:this._backupUrlWithParam,isMain:!1,timeout:e})),this._socketInUse=yield qr(t),this.unbindAndCloseSocket(this._socketInUse===this._socket?h.BACKUP:h.MAIN),this.emitConnectionStateChanged("CONNECTED")})}connectWS({url:e,timeout:t,isMain:r}){let o=new WebSocket(e);this.bindSocket(o),r?this._socket=o:this._backupSocket=o;let n=-1;return new Promise((a,d)=>{o.onclose=d,o.onerror=d,o.onopen=()=>a(o),t&&(n=setTimeout(()=>{this.unbindAndCloseSocket(r?h.MAIN:h.BACKUP),d(new b({code:S.SIGNAL_CHANNEL_SETUP_FAILED,message:"ws connect timeout"}))},t))}).finally(()=>{o.onclose=null,o.onerror=null,o.onopen=null,clearTimeout(n)})}bindSocket(e){e.addEventListener("close",this.onclose),e.addEventListener("error",this.onerror),e.addEventListener("message",this.onmessage)}unbindSocket(e){e.removeEventListener("close",this.onclose),e.removeEventListener("error",this.onerror),e.removeEventListener("message",this.onmessage)}unbindAndCloseSocket(e){if(e===h.MAIN){if(this._socket){this.unbindSocket(this._socket);try{this._socket.close(1e3)}catch(t){}this._socket=null}}else if(this._backupSocket){this.unbindSocket(this._backupSocket);try{this._backupSocket.close(1e3)}catch(t){}this._backupSocket=null}}onclose(e){e.target===this._socketInUse&&(this._log.warn(`${e.target===this._socket?"main":"backup"} is closed code:${e.code} ${e.reason}`),this.emitConnectionStateChanged("DISCONNECTED"),(!e.wasClean||e.code!==1e3)&&this.startReconnection(),this.room.isJoining&&this.emit(Ee.SETUP_FAILED,new b({code:S.SIGNAL_CHANNEL_SETUP_FAILED,message:"websocket onclose"})))}onerror(e){this._log.error(`${e.target===this._socket?"main":"backup"} error observed`),this.emitConnectionStateChanged("DISCONNECTED"),e.target===this._socketInUse&&(this.unbindAndCloseSocket(h.MAIN),this.unbindAndCloseSocket(h.BACKUP),this._socketInUse=null,this.reconnect()),this.room.isJoining&&this.emit(Ee.SETUP_FAILED,new b({code:S.SIGNAL_CHANNEL_SETUP_FAILED,message:"websocket onerror"}))}onmessage(e){if(!this.isConnected)return;this._lastMessageTime=Date.now(),this.bytesReceived+=Ys(e.data);let t=JSON.parse(e.data),{cmd:r,data:o}=t,n=Object.values(xt),d=Object.keys(xt)[n.indexOf(r)],l=B[d]||r;switch(xm.includes(r)||(this._log.debug(`received ${r} msg: ${e.data}`),l&&this._log.info(`Received event: [ ${l} ]`)),r){case xt.CHANNEL_SETUP_RESULT:{if(t.code===0)this._signalInfo.clientIp=o.clientIp,this._signalInfo.signalIp=o.signalInnerIp,o.svrTime&&Ru(o.svrTime),this._log.info(`ChannelSetup Success ${L()-this._connnectStartTime}`),N.addSuccessEvent({key:521701,cost:L()-this._connnectStartTime}),this._connnectStartTime=-1,this.emit(Ee.SETUP_SUCCESS,{signalInfo:this._signalInfo});else{let m=new b({code:S.SIGNAL_CHANNEL_SETUP_FAILED,extraCode:t.code,message:U({key:x.SIGNAL_CHANNEL_SETUP_FAILED,data:{errorCode:t.code,errorMsg:t.message}})});this._log.error(`${t.code}, ${t.message}`),this.close(),N.addFailedEvent({key:521701,error:m}),this.emit(Ee.SETUP_FAILED,m)}break}case xt.JOIN_ROOM_RESULT:{t.code===0&&(this._signalInfo.relayIp=o.relayOuterIp,this._signalInfo.relayInnerIp=o.relayInnerIp,this._signalInfo.relayPort=o.relayPort,this._signalInfo.tinyId=t.tinyId,this._signalInfo.endReportExtend=o.endReportExtend,this._log.info(`signalIp:${this._signalInfo.signalIp} clientIp:${this._signalInfo.clientIp} relayIp: ${this._signalInfo.relayIp}`)),this.emit(l,{data:t});break}default:this.emit(String(l),{data:t});break}}reGetSignalChannelUrl(){return f(this,null,function*(){try{if(!this.room.joinParams)return;wt(!0),yield this.room.schedule(this.room.joinParams);let{mainUrl:e,backupUrl:t}=this.room.getSignalChannelUrl();this.url=e,this.backupUrl=t}catch(e){}})}startReconnection(){if(!this._socketInUse)return;this._socketInUse.onclose=null,this._socketInUse.close(4011);let e=this._socketInUse===this._socket;this.unbindAndCloseSocket(e?h.MAIN:h.BACKUP),this._socketInUse=null,this.emitConnectionStateChanged("DISCONNECTED"),this.reconnect()}reconnect(){return f(this,null,function*(){if(!this._isReconnecting){if(!this.room.isJoined&&this.keepAlive){this.close();return}this._isReconnecting=!0;try{this._log.warn("reconnect"),yield this.connect();let{roomId:e,useStringRoomId:t}=this.room,{relayIp:r,relayInnerIp:o,relayPort:n}=this._signalInfo,{data:a}=yield this.sendWaitForResponse({command:q.RECONNECT_WS,data:{roomId:e,useStringRoomId:t,relayInnerIp:o,relayOuterIp:r,relayPort:n},responseCommand:B.CHANNEL_RECONNECT_RESULT});a.code===0?(this._log.warn("reconnect success"),this.stopReconnection(),N.addSuccessEvent({key:521702,cost:L()-this._connnectStartTime}),this._connnectStartTime=-1,this.room.syncUserList(),this.room.checkConnectionsToReconnect()):(N.addFailedEvent({key:521702,error:a.code}),this._log.warn(`reconnect failed, ${a.code} ${a.message}`),this.room.reJoin())}catch(e){this._log.error(e),this.room.reJoin()}}})}send(e,t={}){if(this.isConnected&&!this.room.isLeft){let r={cmd:e,data:t,userId:this.userId,tinyId:this._signalInfo.tinyId,seq:++this._seq},o=JSON.stringify(r);return this._socketInUse.send(o),this.bytesSent+=Ys(o),r.seq}}sendWaitForResponse({command:e,data:t,timeout:r=5e3,responseCommand:o,commandDesc:n,enableLog:a=!0,addReceiveTime:d=!1}){return new Promise((l,m)=>{let u=setTimeout(()=>{this.off(o,_);let R=new b({code:S.API_CALL_TIMEOUT,message:U({key:x.API_CALL_TIMEOUT,data:{commandDesc:n,command:e}})});a&&this._log.warn(R),m(R)},r),p=Date.now(),_=R=>{R.data.seq===I&&(clearTimeout(u),this.off(o,_),d&&(R.data.receiveTime=Date.now()),l(R))};this.on(o,_);let I=this.send(e,t)})}sendWaitForResponseWithRetry(e){let{commandDesc:t,command:r,retries:o=0,retryTimeout:n=0}=e;return Gt({retryFunction:this.sendWaitForResponse,onError:({retry:a})=>{this.isOnline?a():(this._log.warn(`retry ${r} when connected`),this.once(Ee.CONNECTED,a))},onRetrying:a=>{this._log.warn(`${t||r} timeout observed, retrying [${a}/${o}]`)},settings:{retries:o,timeout:n},context:this})(e)}getCurrentState(){return this._currentState}getSignalInfo(){return this._signalInfo}stopReconnection(){this._isReconnecting=!1,this._stopConnectRetry&&this._stopConnectRetry()}close(){this._log.info("closed"),clearTimeout(this.stopKeepAliveTimeout),Ya.delete(this),this.stopReconnection(),this._signalInfo={tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,endReportExtend:void 0},this._socketInUse=null,this.bytesSent=0,this.bytesReceived=0,this._stopConnectRetry&&this._stopConnectRetry(),this.unbindAndCloseSocket(h.MAIN),this.unbindAndCloseSocket(h.BACKUP),this.emitConnectionStateChanged("DISCONNECTED")}destroy(){this.close(),this.destroyed=!0}stopKeepAliveIn(e=3600){if(this.keepAlive){this._log.info(`stopKeepAlive in ${e}s`),this.stopKeepAliveTimeout=setTimeout(()=>{this.keepAlive=!1,this._log.info(`close due to not used ${e}s`),this.close(),this.off(B.JOIN_ROOM_RESULT,t)},e*1e3);let t=r=>{r.data.code===0&&(this._log.info("stopKeepAlive clear timeout"),clearTimeout(this.stopKeepAliveTimeout),this.off(B.JOIN_ROOM_RESULT,t))};this.on(B.JOIN_ROOM_RESULT,t)}}emitConnectionStateChanged(e){e!==this._currentState&&(this._log.info(`${this._currentState} -> ${e}`),this.emit(Ee.CONNECTION_STATE_CHANGED,{prevState:this._currentState,state:e}),this._currentState=e,e==="CONNECTED"?this.emit(Ee.CONNECTED):e==="DISCONNECTED"&&this.emit(Ee.DISCONNECTED))}};y([Ke({settings:{retries:1/0,timeout:2e3},onError(e,t){!this.room.isDestroyed&&!this.destroyed&&t()},onRetrying(e,t){this._log.warn(`retrying to connect ${e}`),e>=3&&e%3===0&&this.reGetSignalChannelUrl(),t&&(this._stopConnectRetry=t,(this.room.isDestroyed||this.destroyed)&&t())}})],vs.prototype,"connect",1);var Bm=ke(Ge());var Yl=0,Kl=!1,Ka=new Set,uT=s=>Yl>2&&!Kl&&Ka.size===0&&s,Zl=!1,je=class{constructor(i){c(this,"userId");c(this,"tinyId");c(this,"_sdpSemantics");c(this,"_isUplink");c(this,"_room");c(this,"_log");c(this,"_signalChannel");c(this,"_isErrorObserved",!1);c(this,"_waitForPeerConnectionConnectedPromise");c(this,"_waitForPeerConnectionConnectedPromiseReject",null);c(this,"_peerConnection",null);c(this,"_emitter",new Bm.default);c(this,"_currentState","DISCONNECTED");c(this,"_isReconnecting",!1);c(this,"_reconnectionCount",0);c(this,"_reconnectionTimer",-1);c(this,"_isFirstConnection",!0);c(this,"_prevTime",-1);c(this,"_localAddress");c(this,"_remoteAddress");this.userId=i.userId,this.tinyId=i.tinyId,this._room=i.room,this._sdpSemantics=i.room.sdpSemantics,this._isUplink=i.isUplink,this._log=C.createLogger({id:"n-mpc",userId:this._room.userId,remoteUserId:this.userId,sdkAppId:this._room.sdkAppId,isLocal:this._isUplink}),this._signalChannel=i.signalChannel}beforeConnect(){this._prevTime<0&&(this._prevTime=L())}afterConnect(){try{this._isFirstConnection?(this._isFirstConnection=!1,N.addSuccessEvent({key:521705,cost:Math.min(L()-this._prevTime,30*1e3)})):this._isReconnecting&&N.addSuccessEvent({key:521706,cost:L()-this._prevTime}),this._prevTime=-1}catch(i){throw this._isFirstConnection?(this._isFirstConnection=!1,N.addFailedEvent({key:521705,error:i})):this._isReconnecting&&this._reconnectionCount>=3&&N.addFailedEvent({key:521706,error:i}),i}}initialize(){let i={iceServers:this._room.getIceServers(),iceTransportPolicy:this._room.getIceTransportPolicy(),sdpSemantics:this._sdpSemantics,bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",tcpCandidatePolicy:"disable",IceTransportsType:"nohost"};this._peerConnection=new RTCPeerConnection(i),this._peerConnection.onconnectionstatechange=this.onConnectionStateChange.bind(this)}close(i){this._log.info("close connection"),this._emitter.emit("closed",i),this._isReconnecting&&this.stopReconnection(),this.closePeerConnection(),Ka.delete(this)}closePeerConnection(i=!1){this._peerConnection&&(this._log.info("close pc"),this._peerConnection.onconnectionstatechange=null,this._peerConnection.close(),this._peerConnection=null,i&&this.emitConnectionStateChangedEvent("DISCONNECTED")),this._waitForPeerConnectionConnectedPromiseReject&&this._waitForPeerConnectionConnectedPromiseReject(new b({code:S.API_CALL_ABORTED,message:"connection closed"}))}getDTLSTransportState(){if(!this._peerConnection)return It;let i=null;if(this._isUplink){if(!Yi()||this._peerConnection.getSenders().length===0)return It;i=this._peerConnection.getSenders()[0].transport}else{if(!Er()||this._peerConnection.getReceivers().length===0)return It;i=this._peerConnection.getReceivers()[0].transport}return i?i.state:It}onConnectionStateChange(i){let e=this._peerConnection.iceConnectionState,t=this.getDTLSTransportState();if(this._log.info(`connectionState: ${i.target.connectionState}, ICE: ${e}, DTLS: ${t}`),i.target.connectionState===ce.CONNECTING&&this.emitConnectionStateChangedEvent("CONNECTING"),i.target.connectionState===ce.FAILED||i.target.connectionState===ce.CLOSED){let r=`connection ${i.target.connectionState}. ICE Transport state: ${e}, DTLS Transport state: ${t}`,o=new b({message:r,code:S.ICE_TRANSPORT_ERROR});this.emitConnectionStateChangedEvent("DISCONNECTED"),this.startReconnection(),this._isErrorObserved||this._emitter.emit("error",o)}(i.target.connectionState===ce.CONNECTED||i.target.connectionState===ce.COMPLETED)&&(this.logSelectedCandidate(),ee.logSuccessEvent({userId:this._room.userId,eventType:Xe.ICE_CONNECTION_STATE}),this.emitConnectionStateChangedEvent("CONNECTED"))}emitConnectionStateChangedEvent(i){return i===this._currentState?!1:(i==="CONNECTED"?(Yl=0,Kl=!1,Zl=!0,Ka.add(this)):Ka.delete(this),E.emit(T.PEER_CONNECTION_STATE_CHANGED,{room:this._room,prevState:this._currentState,state:i,remoteUserId:this._isUplink?void 0:this.userId}),this._emitter.emit("connection-state-changed",{prevState:this._currentState,state:i}),this._currentState=i,!0)}getPeerConnection(){return this._peerConnection}getRoom(){return this._room}getUserId(){return this.userId}getTinyId(){return this.tinyId}logSelectedCandidate(){return f(this,null,function*(){if(!this._peerConnection)return;let i=yield this._peerConnection.getStats();for(let[,e]of i)if(zi(e)){let t=i.get(e.localCandidateId),r=i.get(e.remoteCandidateId);t&&(this._log.info(`local candidate: ${t.candidateType} ${t.protocol}:${t.ip||t.address}:${t.port} ${t.networkType||""} ${t.candidateType==="relay"?`relayProtocol:${t.relayProtocol}`:""}`),this._localAddress=`${t.ip||t.address}:${t.port}`),r&&(this._log.info(`remote candidate: ${r.candidateType} ${r.protocol}:${r.ip||r.address}:${r.port}`),this._remoteAddress=`${r.protocol}:${r.ip||r.address}`);break}})}getCurrentState(){return this._currentState}waitForPeerConnectionConnected(){return this._waitForPeerConnectionConnectedPromise?this._waitForPeerConnectionConnectedPromise:(this._waitForPeerConnectionConnectedPromise=new Promise((i,e)=>{if(this._currentState==="CONNECTED")return i();this._waitForPeerConnectionConnectedPromiseReject=e;let t=a=>{a.state==="CONNECTED"&&(clearTimeout(n),o(),i())},r=({room:a})=>{a===this._room&&(clearTimeout(n),o(),e(new b({code:S.API_CALL_ABORTED,message:U({key:x.CONNECTION_ABORTED,data:"leave room"})})))},o=()=>{E.off(T.LEAVE_SUCCESS,r,this),this._emitter.off("connection-state-changed",t,this)},n=setTimeout(()=>{o();let a=new b({code:S.API_CALL_TIMEOUT,message:"connection timeout"});Yl+=1,uT(this._signalChannel.isConnected)&&(this._log.warn("firewall restriction"),Kl=!0,this._emitter.emit("firewall-restriction")),e(a)},Js);E.on(T.LEAVE_SUCCESS,r,this),this._emitter.on("connection-state-changed",t,this)}),this._waitForPeerConnectionConnectedPromise=this._waitForPeerConnectionConnectedPromise.finally(()=>{this._waitForPeerConnectionConnectedPromise=null,this._waitForPeerConnectionConnectedPromiseReject=null}),this._waitForPeerConnectionConnectedPromise)}getReconnectionCount(){return this._reconnectionCount}startReconnection(){this._isReconnecting=!0,this.reconnect()}clearReconnectionTimer(){this._reconnectionTimer!==-1&&(clearTimeout(this._reconnectionTimer),this._reconnectionTimer=-1)}stopReconnection(){this._log.info("stop reconnection"),this._isReconnecting=!1,this._reconnectionCount=0,this.clearReconnectionTimer(),this._signalChannel.off(Ee.CONNECTED,this.reconnect,this)}beforeReconnect(){if(this._reconnectionTimer!==-1)return this._log.warn("reconnect() is reconnecting, ignore"),-1;if(this._reconnectionCount>=ci()){this._log.warn(`SDK has tried reconnect for ${this._reconnectionCount} times, but all failed, please check your network`),this.stopReconnection();let i=new b({code:this._isUplink?S.UPLINK_RECONNECTION_FAILED:S.DOWNLINK_RECONNECTION_FAILED,message:U({key:this._isUplink?x.UPLINK_RECONNECTION_FAILED:x.DOWNLINK_RECONNECTION_FAILED})});return this.emitConnectionStateChangedEvent("DISCONNECTED"),this._emitter.emit("error",i),-1}return this._signalChannel.isConnected?(this._reconnectionCount+=1,this._log.warn(`reconnect() trying [${this._reconnectionCount}]`),1):(this._log.warn("reconnect() signal channel is not connected, suspend reconnection until signal is connected"),this._signalChannel.once(Ee.CONNECTED,this.reconnect,this),-1)}on(i,e,t){this._emitter.on(i,e,t)}off(i,e,t){this._emitter.off(i,e,t)}getIsReconnecting(){return this._isReconnecting}get isH264(){var i,e;return!!((e=(i=this._peerConnection)==null?void 0:i.remoteDescription)!=null&&e.sdp.includes("H264"))}setOffer(i){var e;return(e=this._peerConnection)==null?void 0:e.setLocalDescription(i)}setAnswer(i){var e;return(e=this._peerConnection)==null?void 0:e.setRemoteDescription(i)}};y([tt(521712,!1)],je.prototype,"setOffer",1),y([tt(521713,!1)],je.prototype,"setAnswer",1);var ru=ke(iu());var ge=function(s){return ru.default.parse(s)},Et=function(s){return ru.default.write(s)},jm=function(s){let i=ge(s);return i.media.forEach(e=>{e.type===h.AUDIO&&e.fmtp.forEach(t=>{t.config+=";sprop-stereo=1;stereo=1"})}),Et(i)};function Xm(s){let i=ge(s);return i.media.forEach(e=>{var t,r;if(e.type===h.VIDEO){let o=new Set;e.rtp.forEach(({payload:a,codec:d})=>d==="H264"&&o.add(a)),e.fmtp.forEach(({payload:a,config:d})=>{let l=d.match(/apt=(\d+)/);l&&l[1]&&o.has(Number(l[1]))&&o.add(a)});let n=({payload:a})=>!o.has(a);e.rtp=e.rtp.filter(n),e.rtcpFb=(t=e.rtcpFb)==null?void 0:t.filter(n),e.fmtp=e.fmtp.filter(n),e.payloads=(r=e.payloads)==null?void 0:r.split(" ").filter(a=>!o.has(Number(a))).join(" ")}}),Et(i)}function Za(s){return Object.keys(s).filter(i=>s[i])}var Os=class Os extends je{constructor(e){super(k(v({},e),{isUplink:!1}));c(this,"_flag",0);c(this,"isRobot",!1);c(this,"role","anchor");c(this,"remoteAudioTrack");c(this,"remoteVideoTrack");c(this,"remoteAuxiliaryTrack");c(this,"ssrc",{audio:0,video:0,auxiliary:0});c(this,"_isSDPExchanging",!1);this.flag=e.flag,this.isRobot=e.isRobot||!1,this.remoteAudioTrack=e.remoteAudioTrack||new Di(this._room,this),this.remoteVideoTrack=e.remoteVideoTrack||new ii(this._room,this),this.remoteAuxiliaryTrack=e.remoteAuxiliaryTrack||new Is(this._room,this)}get videoCodec(){var t,r;let e=(r=(t=this._peerConnection)==null?void 0:t.remoteDescription)==null?void 0:r.sdp;return e?e.includes("H264")?"h264":"vp8":"h264"}get subscribeState(){let e={audio:!1,video:!1,auxiliary:!1,smallVideo:!1};return this.remoteVideoTrack.isSubscribed&&(this.remoteVideoTrack.mediaType&8?e.smallVideo=!0:e.video=!0),this.remoteAudioTrack.isSubscribed&&(e.audio=!0),this.remoteAuxiliaryTrack.isSubscribed&&(e.auxiliary=!0),e}get muteState(){return ui(this.flag,this.userId)}get flag(){return this._flag}set flag(e){var t,r,o;e!==this._flag&&(this._flag=e,(t=this.remoteAudioTrack)==null||t.onFlagChanged(),(r=this.remoteVideoTrack)==null||r.onFlagChanged(),(o=this.remoteAuxiliaryTrack)==null||o.onFlagChanged())}get hasMainStream(){return this.muteState.hasAudio||this.muteState.hasVideo||this.muteState.hasSmall}get hasAuxStream(){return this.muteState.hasAuxiliary}get isMainStreamSubscribed(){return(this.subscribeState.audio||this.subscribeState.video||this.subscribeState.smallVideo)&&(this.muteState.hasAudio||this.muteState.hasVideo||this.muteState.hasSmall)}get isAuxStreamSubscribed(){return this.subscribeState.auxiliary&&this.muteState.hasAuxiliary}get isSmallStreamSubscribed(){return this.subscribeState.smallVideo&&this.muteState.hasSmall}get isBigStreamSubscribed(){return this.subscribeState.video&&this.muteState.hasVideo}isStreamUnpublished(e){return e===h.MAIN?!this.muteState.hasAudio&&!this.muteState.hasVideo:!this.muteState.hasAuxiliary}initialize(){super.initialize(),this.installEvents(),this._peerConnection.ontrack=this.onTrack.bind(this)}close(e){super.close(e),this.emitConnectionStateChangedEvent("DISCONNECTED"),this.remoteAudioTrack.close(),this.remoteVideoTrack.close(),this.remoteAuxiliaryTrack.close(),this.uninstallEvents()}installEvents(){}uninstallEvents(){this._emitter.removeAllListeners()}emitConnectionStateChangedEvent(e){var o,n;let t=this._currentState,r=super.emitConnectionStateChangedEvent(e);return r&&t!==e&&((o=this.remoteVideoTrack)==null||o.emit("connection-state-changed",{prevState:t,state:e}),(n=this.remoteAuxiliaryTrack)==null||n.emit("connection-state-changed",{prevState:t,state:e})),r}onTrack(e){let t=e.streams[0],{track:r}=e,o=t.id===Ws?h.MAIN:h.AUXILIARY;this._log.debug(`ontrack ${o} ${r.kind}`);let n=h.AUDIO;r.kind===h.VIDEO&&(n=o===h.MAIN?h.VIDEO:h.AUXILIARY);let a=this.remoteAudioTrack;n===h.VIDEO?a=this.remoteVideoTrack:n===h.AUXILIARY&&(a=this.remoteAuxiliaryTrack),a.setInputMediaStreamTrack(r)}addRRTRLine(e){let t=e.split(`\r
59
+ `),r=new Map;t.forEach((n,a)=>{/^a=rtcp-fb:/.test(n)&&t[a+1]&&!/^a=rtcp-fb:/.test(t[a+1])&&r.set(a+1,`${n.match(/^a=rtcp-fb:\d+/)[0]} rrtr`)});let o=[...r];for(let n=0;n<o.length;n++){let[a,d]=o[n];t.splice(a+n,0,d)}return t.join(`\r
60
+ `)}addSPSDescription(e){let t=ge(e);return t.media.forEach(r=>{r.type===h.VIDEO&&r.fmtp.forEach(o=>{o.config+=";sps-pps-idr-in-keyframe=1"})}),Et(t)}removeSDESDescription(e){let t=["urn:ietf:params:rtp-hdrext:sdes:mid","urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id","urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id"],r=ge(e);return r.media.forEach(o=>{o.ext&&(o.ext=o.ext.filter(n=>!t.includes(n.uri)))}),Et(r)}isSubscriptionStateNotChanged(e){return JSON.stringify(e)===JSON.stringify(this.subscribeState)}subscribe(e,t){return f(this,null,function*(){var r,o;try{if((((r=this._peerConnection)==null?void 0:r.connectionState)===ce.NEW||((o=this._peerConnection)==null?void 0:o.connectionState)===ce.CONNECTING)&&(yield this.waitForPeerConnectionConnected()),this.isSubscriptionStateNotChanged(e)){this._peerConnection||(this.initialize(),yield this.connect(e));return}if(this._log.info(`subscribe ${t} ${JSON.stringify(e)}`),this._peerConnection||this._isSDPExchanging){let n="subscribe_change";Object.values(e).find(a=>a===!0)||(n="unsubscribe"),yield this.sendSubscription(n,e)}else this.initialize(),yield this.connect(e)}catch(n){throw this._room.isJoined&&this.isStreamUnpublished(t)?(this._log.warn(`${n.message} ${JSON.stringify(this.muteState)}`),new b({code:S.REMOTE_STREAM_NOT_EXIST,message:`remote user ${this.userId} unpublished stream`})):n}})}unsubscribe(r){return f(this,arguments,function*({remoteTracks:e,streamType:t}){if(this._currentState==="CONNECTED"&&(t==="main"&&!this.isMainStreamSubscribed||t==="auxiliary"&&!this.isAuxStreamSubscribed)){this._log.info(`${t} stream already unsubscribed`);return}let o=v({},this.subscribeState);e.forEach(a=>{switch(a.mediaType){case 1:o.audio=!1;break;case 4:o.video=!1;break;case 8:o.smallVideo=!1;break;case 2:o.auxiliary=!1;break;default:break}});let n="subscribe_change";Object.values(o).find(a=>a===!0)||(n="unsubscribe"),this._log.info(`${n==="unsubscribe"?n:"subscribe"} ${t} [${Za(o)}]`),yield this.sendSubscription(n,o),n==="unsubscribe"&&(this.closePeerConnection(),this.emitConnectionStateChangedEvent("DISCONNECTED"))})}sendSubscription(e,t=this.subscribeState){let r={srcTinyId:this.tinyId,srcUserId:this.userId},o=q.UNSUBSCRIBE,n=B.UNSUBSCRIBE_RESULT;return e==="subscribe_change"&&(r={audio:t.audio,bigVideo:t.video,auxVideo:t.auxiliary,smallVideo:t.smallVideo,srcTinyId:this.tinyId},o=q.SUBSCRIBE_CHANGE,n=B.SUBSCRIBE_CHANGE_RESULT),this._signalChannel.sendWaitForResponse({command:o,data:r,responseCommand:n,timeout:1e4}).then(({data:a})=>{if(a.code!==0){let d=new b({code:a.code,message:U({key:x.ERROR_MESSAGE,data:{type:e,message:a.message}})});throw this._log.error(d),d}})}connect(){return f(this,arguments,function*(e=this.subscribeState){try{yield this.exchangeSDP(e),yield this.waitForPeerConnectionConnected()}catch(t){throw this.closePeerConnection(!0),t}})}exchangeSDP(e){return f(this,null,function*(){try{this._isSDPExchanging=!0,yield this.createOffer(),this._log.info("createOffer success, sending offer");let{type:t,sdp:r}=this._peerConnection.localDescription,o={type:t,sdp:r,srcUserId:this.userId,srcTinyId:this.tinyId,audio:e.audio,bigVideo:e.video,auxVideo:e.auxiliary,smallVideo:e.smallVideo},n=yield this._signalChannel.sendWaitForResponse({command:q.SUBSCRIBE,commandDesc:"exchange sdp",data:o,responseCommand:B.SUBSCRIBE_RESULT,timeout:yc});if(!this._peerConnection){let a=new b({code:S.INVALID_OPERATION,message:U({key:x.CONNECTION_CLOSED})});throw this._log.warn(a),a}yield this.onSubscribeResult(n),this._isSDPExchanging=!1}catch(t){throw this._isSDPExchanging=!1,t}})}createOffer(){return f(this,null,function*(){let e={voiceActivityDetection:!1};pt()&&this._sdpSemantics===Hi?(this._peerConnection.addTransceiver(h.AUDIO,{direction:z.RECVONLY}),this._peerConnection.addTransceiver(h.VIDEO,{direction:z.RECVONLY}),this._peerConnection.addTransceiver(h.VIDEO,{direction:z.RECVONLY})):(e.offerToReceiveAudio=!0,e.offerToReceiveVideo=!0);let t=yield this._peerConnection.createOffer(e);if(t.sdp){let{isH264DecodeSupported:r}=yield Qn();r||(this._log.warn("remove h264 desc from sdp"),t.sdp=Xm(t.sdp)),t.sdp=this.addRRTRLine(t.sdp),t.sdp=this.addSPSDescription(t.sdp),t.sdp=jm(t.sdp),this._sdpSemantics===Hi&&(t.sdp=this.removeSDESDescription(t.sdp))}yield this.setOffer(t)})}onSubscribeResult(e){return f(this,null,function*(){let{code:t,message:r=""}=e&&e.data||{},{type:o,sdp:n}=e&&e.data&&e.data.data||{};if(t===ar)throw new b({code:S.NOT_SUPPORTED_H264,message:U({key:x.NOT_SUPPORTED_H264DECODE})});try{if(t!==0)throw new b({code:t,message:U({key:x.EXCHANGE_SDP_FAILED,data:{errMsg:r}})});this._log.debug(`accept remote answer: ${n}`),yield this.setAnswer({type:o,sdp:n}),this.updateSSRC(n)}catch(a){throw this._log.error(a),a}})}updateSSRC(e){try{ge(e).media.forEach(r=>{if(r.ssrcs)if(r.type===h.AUDIO){let o=r.ssrcs.find(n=>{var a;return(a=n.value)==null?void 0:a.includes(Ws)});o&&(this.ssrc.audio=Number(o.id))}else{let o=r.ssrcs.find(a=>{var d;return(d=a.value)==null?void 0:d.includes(Ws)}),n=r.ssrcs.find(a=>{var d;return(d=a.value)==null?void 0:d.includes(Sc)});o&&(this.ssrc.video=Number(o.id)),n&&(this.ssrc.auxiliary=Number(n.id))}})}catch(t){}}getMainStreamVideoTrackId(){return this.remoteVideoTrack&&this.remoteVideoTrack.mediaTrack?this.remoteVideoTrack.mediaTrack.id:""}getAuxStreamVideoTrackId(){return this.remoteAuxiliaryTrack&&this.remoteAuxiliaryTrack.mediaTrack?this.remoteAuxiliaryTrack.mediaTrack.id:""}reconnect(){return f(this,null,function*(){if(!(Le(Os.prototype,this,"beforeReconnect").call(this)<0))try{this.closePeerConnection(),this.initialize(),yield this.connect(),this.stopReconnection(),this._log.warn("reconnect() success")}catch(t){let r=Ct(this._reconnectionCount);this._log.warn(`reconnect() timeout, try again after ${r/1e3}s`),this._reconnectionTimer=setTimeout(()=>{this.clearReconnectionTimer(),this.reconnect()},r)}})}getIsReconnecting(){return this._isReconnecting}clearReconnectionTimer(){this._reconnectionTimer!==-1&&(clearTimeout(this._reconnectionTimer),this._reconnectionTimer=-1)}getCurrentState(){return this._currentState}setDelay({audioDelay:e,videoDelay:t}){this.remoteAudioTrack.stat.end2EndDelay=e,this.remoteVideoTrack.stat.end2EndDelay=t}get audioReceiver(){var e;return((e=this._peerConnection)==null?void 0:e.getReceivers()[0])||null}};y([J(e=>function(...t){return new Promise((r,o)=>{let n=a=>{this._emitter.off("closed",n),o(new b({code:S.API_CALL_ABORTED,message:U({key:x.CONNECTION_ABORTED,data:a})}))};this._emitter.on("closed",n),e.apply(this,t).then(r,o).finally(()=>{this._emitter.off("closed",n)})})})],Os.prototype,"subscribe",1),y([tt(521717,!1)],Os.prototype,"unsubscribe",1),y([Je(je.prototype.afterConnect),la(je.prototype.beforeConnect)],Os.prototype,"connect",1);var su=Os,ou=su;var zm={voiceActivityDetection:!1},Ms=class Ms extends je{constructor(e){super(k(v({},e),{isUplink:!0}));c(this,"localMainAudioTrack",null);c(this,"localMainVideoTrack",null);c(this,"localAuxAudioTrack",null);c(this,"localAuxVideoTrack",null);c(this,"ssrc",{audio:0,video:0,small:0,auxiliary:0});c(this,"_isPublishingAux",!1);c(this,"_publishingLocalAudioTrack");c(this,"_publishingLocalVideoTrack");c(this,"_mediaSettings",{videoCodec:"",videoWidth:0,videoHeight:0,videoBps:0,videoFps:0,audioCodec:"opus",audioFs:0,audioChannel:0,audioBps:0,smallVideoWidth:0,smallVideoHeight:0,smallVideoFps:0,smallVideoBps:0,auxVideoWidth:0,auxVideoHeight:0,auxVideoFps:0,auxVideoBps:0});c(this,"flag",0)}get videoCodec(){return this._mediaSettings.videoCodec.toLowerCase()||"h264"}get isMainStreamPublished(){return!!(this.localMainAudioTrack||this.localMainVideoTrack)}get isAuxStreamPublished(){return!!(this.localAuxVideoTrack||this.localAuxAudioTrack)}get publishState(){var t,r,o,n;let e={audio:!1,bigVideo:!1,smallVideo:!1,auxVideo:!1};if(this._peerConnection){let a=this._peerConnection.getSenders();a&&(Jt()?(e.audio=!!((t=a[0])!=null&&t.track),e.bigVideo=!!((r=a[1])!=null&&r.track),e.smallVideo=!!((o=a[2])!=null&&o.track),e.auxVideo=!!((n=a[3])!=null&&n.track)):a.forEach(d=>{d.track&&(d.track.kind===h.AUDIO?e.audio=!0:(e.bigVideo=!0,this._room.videoManager.hasSmall&&(e.smallVideo=!0)))}))}return e}initialize(){super.initialize(),this.installEvents()}reset(){this._isReconnecting&&this.stopReconnection(),this.closePeerConnection(),this.uninstallEvents()}close(e){super.close(e),this.reset(),this.emitConnectionStateChangedEvent("DISCONNECTED")}installEvents(){this._emitter.listeners("connection-state-changed").includes(this.handleConnectionStateChange)||this._emitter.on("connection-state-changed",this.handleConnectionStateChange,this)}uninstallEvents(){this._emitter.off("connection-state-changed",this.handleConnectionStateChange,this)}emitConnectionStateChangedEvent(e,t){var n,a,d;let r=this._currentState,o=super.emitConnectionStateChangedEvent(e);return o&&r!==e&&(t?t.emit("connection-state-changed",{prevState:r,state:e}):((n=this.localMainVideoTrack)==null||n.emit("connection-state-changed",{prevState:r,state:e}),(a=this.localAuxVideoTrack)==null||a.emit("connection-state-changed",{prevState:r,state:e}),(d=this._publishingLocalVideoTrack)==null||d.emit("connection-state-changed",{prevState:r,state:e}))),o}publish(o){return f(this,arguments,function*({localAudioTrack:e,localVideoTrack:t,isAuxiliary:r}){this._peerConnection||this.initialize(),e&&(this._publishingLocalAudioTrack=e),t&&(this._publishingLocalVideoTrack=t),this._isPublishingAux=r;let n;t&&!r&&t.small&&(n=this._room.videoManager.smallTrack),this.sendMediaSettings(),pt()?yield this.publishByTransceiver({localAudioTrack:e,localVideoTrack:t,smallTrack:n,isAuxiliary:r}):yield this.publishByAddTrack({localAudioTrack:e,localVideoTrack:t,smallTrack:n}),this._publishingLocalAudioTrack=null,this._publishingLocalVideoTrack=null,this._isPublishingAux=!1,r?(t&&(this.localAuxVideoTrack=t),e&&(this.localAuxAudioTrack=e)):(t&&(this.localMainVideoTrack=t),e&&(this.localMainAudioTrack=e)),this.installTrackMuteEvents(e,t),this.sendMutedFlag()})}publishByTransceiver(n){return f(this,arguments,function*({localAudioTrack:e,localVideoTrack:t,smallTrack:r,isAuxiliary:o}){this._log.info("publish by transceiver");let a=new MediaStream,d=t==null?void 0:t.outMediaTrack,l=e==null?void 0:e.outMediaTrack;l&&a.addTrack(l),d&&a.addTrack(d);let m=this._peerConnection.getTransceivers();if(m.length===0)this._peerConnection.addTransceiver(l||h.AUDIO,{direction:z.SENDONLY,streams:[a]}),this._peerConnection.addTransceiver(o?h.VIDEO:d||h.VIDEO,{direction:z.SENDONLY,streams:[a]}),this._peerConnection.addTransceiver(r||h.VIDEO,{direction:z.SENDONLY,streams:[a]}),this._peerConnection.addTransceiver(o?d||h.VIDEO:h.VIDEO,{direction:z.SENDONLY,streams:[a]}),yield this.connect();else{let u=[];if(l&&(m[0].sender.track||u.push(0),yield m[0].sender.replaceTrack(l),yield this.setBandwidth({bandwidth:(e==null?void 0:e.profile.bitrate)||40,type:h.AUDIO})),d){let p=o?3:1;yield m[p].sender.replaceTrack(d),yield this.setBandwidth({bandwidth:t.profile.bitrate,type:h.VIDEO,videoType:o?h.AUXILIARY:h.BIG}),u.push(p),r&&(yield m[2].sender.replaceTrack(r),yield this.setBandwidth({bandwidth:t.small.bitrate,type:h.VIDEO,videoType:h.SMALL}),u.push(2))}yield this.setTransceiverDirection(z.SENDONLY,u),yield this.doPublishChange(),t==null||t.emit("connection-state-changed",{prevState:"DISCONNECTED",state:"CONNECTING"}),t==null||t.emit("connection-state-changed",{prevState:"CONNECTING",state:"CONNECTED"})}})}publishByAddTrack(o){return f(this,arguments,function*({localAudioTrack:e,localVideoTrack:t,smallTrack:r}){this._log.info("publish by addtrack");let n=t==null?void 0:t.outMediaTrack,a=e==null?void 0:e.outMediaTrack;if(this._peerConnection&&this._peerConnection.connectionState!=="new"){e&&a&&(yield this.addTrack(e)),n&&(yield this.addTrack(t));return}let d=new MediaStream;if(a&&d.addTrack(a),n&&d.addTrack(n),a&&this._peerConnection.addTrack(a,d),n&&(this._peerConnection.addTrack(n,d),r)){let l=new MediaStream;l.addTrack(r),this._peerConnection.addTrack(r,l)}yield this.connect()})}enableSmall(e){return f(this,null,function*(){let t=this._peerConnection.getTransceivers();e?this._room.videoManager.smallTrack&&(yield t[2].sender.replaceTrack(this._room.videoManager.smallTrack),yield this.setTransceiverDirection(z.SENDONLY,[2])):(yield t[2].sender.replaceTrack(null),yield this.setTransceiverDirection(z.INACTIVE,[2])),this.updateMediaSettings(),yield this.doPublishChange()})}installTrackMuteEvents(...e){e.forEach(t=>{t&&(t==null||t.on("mute",this.sendMutedFlag,this),t==null||t.on("unmute",this.sendMutedFlag,this))})}uninstallTrackMuteEvents(...e){e.forEach(t=>{t&&(t==null||t.off("mute",this.sendMutedFlag,this),t==null||t.off("unmute",this.sendMutedFlag,this))})}unpublish(r){return f(this,arguments,function*({localAudioTrack:e,localVideoTrack:t}){if(!Jt()){if(e&&e.outMediaTrack&&!t&&this.localMainVideoTrack){yield this.removeTrack(e),this.localMainAudioTrack=null;return}if(t&&t.outMediaTrack&&!e&&this.localMainAudioTrack){yield this.removeTrack(t),this.localMainVideoTrack=null;return}yield this.doUnpublish(),this.uninstallTrackMuteEvents(e,t),this.emitConnectionStateChangedEvent("DISCONNECTED",t);return}let o=t&&t===this.localAuxVideoTrack,n=t==null?void 0:t.outMediaTrack,a=this._peerConnection.getSenders(),d=[];e&&(o?this.localAuxAudioTrack=null:this.localMainAudioTrack=null,!this.localAuxAudioTrack&&!this.localMainAudioTrack&&(yield a[0].replaceTrack(null),d.push(0))),n&&(o?(yield a[3].replaceTrack(null),this.localAuxVideoTrack=null,this._mediaSettings=k(v({},this._mediaSettings),{auxVideoBps:0,auxVideoFps:0,auxVideoWidth:0,auxVideoHeight:0}),d.push(3)):(yield a[1].replaceTrack(null),yield a[2].replaceTrack(null),this.localMainVideoTrack=null,this._mediaSettings=k(v({},this._mediaSettings),{videoWidth:0,videoHeight:0,videoBps:0,videoFps:0,audioFs:0,audioChannel:0,audioBps:0,smallVideoWidth:0,smallVideoHeight:0,smallVideoFps:0,smallVideoBps:0}),d.push(1,2))),this.isMainStreamPublished||this.isAuxStreamPublished?(yield this.setTransceiverDirection(z.INACTIVE,d),yield this.doPublishChange(!1)):yield this.doUnpublish(),this.uninstallTrackMuteEvents(e,t),t==null||t.emit("connection-state-changed",{prevState:this._currentState,state:"DISCONNECTED"})})}doPublishChange(e=!0){return f(this,null,function*(){let t={state:this.publishState,constraintConfig:this._mediaSettings},r=yield this._signalChannel.sendWaitForResponse({command:q.PUBLISH_STATE_CHANGE,data:t,responseCommand:B.PUBLISH_STATE_CHANGE_RESULT,enableLog:e});this.checkPublishResultCode(r.data.code,r.data.message)})}doUnpublish(e=!1){return this._signalChannel.sendWaitForResponse({command:q.UNPUBLISH,commandDesc:"unpublish",responseCommand:B.UNPUBLISH_RESULT,enableLog:e}).catch(t=>{if(t.getCode()===S.API_CALL_TIMEOUT)return Promise.resolve();throw t})}updateMediaSettings(){let{detail:{isH264EncodeSupported:e,isVp8EncodeSupported:t}}=this._room.checkSystemResult;e?this._mediaSettings.videoCodec="H264":t&&(this._mediaSettings.videoCodec="VP8");let r=this._publishingLocalAudioTrack||this.localMainAudioTrack||this.localAuxAudioTrack,{localMainVideoTrack:o,localAuxVideoTrack:n}=this;if(this._publishingLocalVideoTrack&&(this._isPublishingAux?n=this._publishingLocalVideoTrack:o=this._publishingLocalVideoTrack),qt){if(r&&r.outMediaTrack){let a=r.outMediaTrack.getSettings();this._mediaSettings.audioChannel=a.channelCount||1,this._mediaSettings.audioBps=r.profile.bitrate*1e3,this._mediaSettings.audioFs=a.sampleRate||0}if(o&&o.outMediaTrack){let a=o.outMediaTrack.getSettings();this._mediaSettings.videoWidth=a.width||0,this._mediaSettings.videoHeight=a.height||0,this._mediaSettings.videoFps=a.frameRate||0,this._mediaSettings.videoBps=o.profile.bitrate*1e3,o.small&&(this._mediaSettings.smallVideoWidth=o.small.width,this._mediaSettings.smallVideoHeight=o.small.height,this._mediaSettings.smallVideoFps=o.small.frameRate,this._mediaSettings.smallVideoBps=o.small.bitrate*1e3)}if(n&&n.outMediaTrack){let a=n.outMediaTrack.getSettings();this._mediaSettings.auxVideoWidth=a.width||0,this._mediaSettings.auxVideoHeight=a.height||0,this._mediaSettings.auxVideoFps=a.frameRate||0,this._mediaSettings.auxVideoBps=n.profile.bitrate*1e3}}else r&&r.outMediaTrack&&(this._mediaSettings.audioChannel=r.profile.channelCount,this._mediaSettings.audioBps=r.profile.bitrate*1e3,this._mediaSettings.audioFs=r.profile.sampleRate),o&&o.outMediaTrack&&(this._mediaSettings.videoWidth=o.profile.width,this._mediaSettings.videoHeight=o.profile.height,this._mediaSettings.videoFps=o.profile.frameRate,this._mediaSettings.videoBps=o.profile.bitrate*1e3);this._log.info(`updateMediaSettings: ${JSON.stringify(this._mediaSettings)}`)}sendMediaSettings(){this.updateMediaSettings(),this._signalChannel.sendWaitForResponse({command:q.UPDATE_CONSTRAINT_CONFIG,data:this._mediaSettings,responseCommand:B.UPDATE_CONSTRAINT_CONFIG_RES}).then(e=>{e.data.code!==0&&this._log.warn(e.data.message)}).catch(()=>{})}addTrack(e){return f(this,null,function*(){if(!this._peerConnection)return;let t=e===this.localAuxAudioTrack||e===this.localAuxVideoTrack;this._log.info(`is adding ${e.kind} track to current published local ${t?h.AUXILIARY:h.MAIN} stream`),pt()?yield this.addTrackByTransceiver(e,t):yield this.addTrackBySender(e)})}addTrackByTransceiver(e,t){return f(this,null,function*(){var o;if(!e.mediaTrack)return;let r=this._peerConnection.getTransceivers();if(e.kind===h.AUDIO)yield r[0].sender.replaceTrack(e.outMediaTrack);else{let n=t?3:1;yield r[n].sender.replaceTrack(e.outMediaTrack),n===1&&((o=this.localMainVideoTrack)!=null&&o.small)&&(yield r[2].sender.replaceTrack(this._room.videoManager.smallTrack)),r[n].direction===z.INACTIVE&&(yield this.setTransceiverDirection(z.SENDONLY,[n]))}this.updateMediaSettings(),yield this.doPublishChange()})}addTrackBySender(e){return f(this,null,function*(){if(!e.outMediaTrack)return;let t=e.outMediaTrack;Jt()&&this._peerConnection.getTransceivers().findIndex(o=>o.direction==="stopped")>=0&&(this._log.warn("transceiver is stopping, negotiate sdp first"),yield this.updateOffer("remove",t));let r=this._peerConnection.getSenders().find(o=>o.track&&o.track.kind===t.kind);if(r&&r.track){this._log.warn("sender already exists, remove sender first");let o=r.track;this.removeSender(r),yield this.updateOffer("remove",o)}if(t&&this._peerConnection.addTrack(t,new MediaStream([t])),t.kind===h.VIDEO&&e instanceof Ve&&e.small){let o=new MediaStream,{smallTrack:n}=this._room.videoManager;o.addTrack(n),this._peerConnection.addTrack(n,o)}yield this.updateOffer("add",t)})}isNeedToResetOfferOrder(){if(this._sdpSemantics===Hr||!this._peerConnection||!this._peerConnection.localDescription)return!1;let{sdp:e}=this._peerConnection.localDescription,t=ge(e);for(let r=0;r<t.media.length;r++)if(Number(t.media[r].mid)===0&&t.media[r].type===h.VIDEO)return!0;return!1}removeSender(e){let t=null;Jt()&&(t=this._peerConnection.getTransceivers().find(r=>r.sender&&r.sender.track===e.track)),this._peerConnection.removeTrack(e),t&&se(t.stop)&&(this._log.info("stop transceiver"),t.stop())}removeTrack(e){return f(this,null,function*(){if(!this._peerConnection)return;let t=e===this.localAuxAudioTrack||e===this.localAuxVideoTrack;this._log.info(`is removing ${e.kind} track from current published local ${t?h.AUXILIARY:h.MAIN} stream`),pt()?yield this.removeTrackByTransceiver(e,t):yield this.removeTrackBySender(e)})}removeTrackByTransceiver(e,t){return f(this,null,function*(){if(!e.outMediaTrack)return;let r=this._peerConnection.getTransceivers();if(e.kind===h.AUDIO)yield r[0].sender.replaceTrack(null);else{let o=t?3:1;yield r[o].sender.replaceTrack(null),o===1&&e.small&&(yield r[2].sender.replaceTrack(null)),yield this.setTransceiverDirection(z.INACTIVE,[o])}this.updateMediaSettings(),yield this.doPublishChange()})}setTransceiverDirection(e,t){return f(this,null,function*(){if(!ae)return;let r=!1,o=!1;this._log.info(`setting transceiver ${t.join(",")} direction to ${e}`);let n=this._peerConnection.getTransceivers();if(t.forEach(l=>{n[l].direction!==e&&(n[l].direction=e,r=!0)}),r){this._log.info("updating offer");let l=yield this._peerConnection.createOffer();yield this.setOffer(l)}let a=-1,d=this._peerConnection.remoteDescription.sdp.split(`\r
61
+ `).map(l=>{if(l.match(new RegExp(`a=(${z.INACTIVE}|${z.RECVONLY}|${z.SENDONLY})`))&&a++,t.includes(a)){if(e===z.INACTIVE&&l.includes(`a=${z.RECVONLY}`))return o=!0,`a=${e}`;if(e===z.SENDONLY&&l.includes(`a=${z.INACTIVE}`))return o=!0,`a=${z.RECVONLY}`}return l}).join(`\r
62
+ `);o&&(this._log.info("updating answer"),yield this.setAnswer({type:"answer",sdp:d}))})}removeTrackBySender(e){return f(this,null,function*(){if(!e.outMediaTrack)return;if(e.kind===h.VIDEO&&this.isNeedToResetOfferOrder()&&this.localMainAudioTrack){this.reset(),this.initialize(),yield this.publish({localAudioTrack:this.localMainAudioTrack,isAuxiliary:!1});return}let t=this._peerConnection.getSenders().find(r=>r.track===e.outMediaTrack);t&&(this.removeSender(t),e.kind===h.VIDEO&&e.small&&this._peerConnection.getSenders().forEach(r=>{r.track&&r.track.kind===h.VIDEO&&this.removeSender(r)})),yield this.updateOffer("remove",e.outMediaTrack)})}replaceTrack(e){return f(this,null,function*(){var n;let t=(n=this._peerConnection)==null?void 0:n.getSenders();if(!t||t.length===0||!e.mediaTrack)return!1;let r;if(pt()?r=e.kind===h.AUDIO?t[0]:t[1]:r=t.find(a=>a.track&&a.track.kind===e.kind),!r)return!1;let o=e===this.localAuxAudioTrack||e===this.localAuxVideoTrack;return this._log.info(`is replacing ${e.kind} track on ${o?h.AUXILIARY:h.MAIN} stream`),e.kind===h.AUDIO?yield r.replaceTrack(e.outMediaTrack):e.kind===h.VIDEO&&(o?t[3]&&(yield t[3].replaceTrack(e.outMediaTrack)):yield r.replaceTrack(e.outMediaTrack)),!0})}updateOffer(e,t){return f(this,null,function*(){try{let r=yield this._peerConnection.createOffer(zm);ae&&r.sdp&&(r.sdp=this.setSDPDirection(r.sdp,"sendrecv")),yield this.setOffer(r);let o=this.updateMediaSettings(),n={action:e,trackId:t.id,kind:t.kind===h.VIDEO?"bigVideo":t.kind,type:"offer",sdp:this._peerConnection.localDescription.sdp,constraintConfig:o,state:this.publishState};this._log.info("createOffer success, sending updated offer to remote server"),this._log.debug(`updatedOffer: ${n.sdp}`);let a=yield this._signalChannel.sendWaitForResponse({command:q.PUBLISH_CHANGE,data:n,responseCommand:B.UPDATE_OFFER_RESULT,timeout:Rc,commandDesc:"update offer"}),{code:d,message:l}=a.data;d!==0&&this.checkPublishResultCode(d,l),yield this.acceptAnswer(a.data.data),r.sdp&&this.updateSSRC(r.sdp)}catch(r){throw this._log.error(r),r}})}setBandwidth(n){return f(this,arguments,function*({bandwidth:e,type:t,videoType:r,sdp:o}){if(!Ao())return o?t===h.VIDEO?this.updateVideoBandwidthRestriction(o,e,r):this.updateAudioBandwidthRestriction(o,e):void 0;let a,d=this._peerConnection.getSenders();if(pt()){let l=0;t===h.VIDEO&&(r===h.SMALL?l=2:r===h.AUXILIARY?l=3:l=1),a=d[l]}else a=d.find(l=>l.track&&l.track.kind===t);if(a){let l=a.getParameters();(!l.encodings||l.encodings.length===0)&&(l.encodings=[{}]),l.encodings[0].maxBitrate=e*1e3;try{return yield a.setParameters(l),this._log.info(`${r||""}${t} bandwidth ${e} kbps`),o}catch(m){if(this._log.info(`failed to set bandwidth by setting maxBitrate: ${m}`),o)return t===h.VIDEO?this.updateVideoBandwidthRestriction(o,e,r):this.updateAudioBandwidthRestriction(o,e)}}return o})}updateVideoBandwidthRestriction(e,t,r){let o="AS";ae&&(o="TIAS",t=t*1e3);let n=0,a=-1;return r===h.SMALL?n=1:r===h.AUXILIARY&&(n=2),e=e.replace(/m=video (.*)\r\nc=IN (.*)\r\n/g,d=>(a+=1,a===n?`${d}b=${o}:${t}\r
63
+ `:d)),e}updateAudioBandwidthRestriction(e,t){let r="AS";return ae&&(r="TIAS",t=t*1e3),e=e.replace(/m=audio (.*)\r\nc=IN (.*)\r\n/,`m=audio $1\r
64
+ c=IN $2\r
65
+ b=${r}:${t}\r
66
+ `),e}removeBandwidthRestriction(e){return e.replace(/b=AS:.*\r\n/,"").replace(/b=TIAS:.*\r\n/,"")}removeVideoOrientation(e){return e.replace(/urn:3gpp:video-orientation/,"")}connect(){return f(this,null,function*(){try{yield this.exchangeSDP(),yield this.waitForPeerConnectionConnected()}catch(e){throw this.closePeerConnection(!0),this.uninstallEvents(),e}})}exchangeSDP(){return f(this,null,function*(){try{yield this.createOffer(),this._log.info("createOffer success, sending offer to remote server"),yield this.doExchangeSDP()}catch(e){throw e}})}createOffer(){return f(this,null,function*(){try{let e=yield this._peerConnection.createOffer(zm);yield this.setOffer(e),e.sdp&&this.updateSSRC(e.sdp)}catch(e){throw e}})}doExchangeSDP(){let e={command:q.PUBLISH,responseCommand:B.PUBLISH_RESULT,data:{type:this._peerConnection.localDescription.type,sdp:this.removeVideoOrientation(this._peerConnection.localDescription.sdp),screen:this.localMainVideoTrack instanceof it||this.localAuxVideoTrack instanceof it,state:this.publishState,constraintConfig:this._mediaSettings},enableLog:!1};return this._log.debug(`sending sdp offer: ${e.data.sdp}`),this._signalChannel.sendWaitForResponse(e).then(t=>{let{code:r,message:o,data:n}=t.data;return r===0?this.acceptAnswer(n):this.checkPublishResultCode(r,o)})}setSDPDirection(e,t,r="all"){let o=ge(e);return o.media.forEach(n=>{(r==="all"||n.type===r)&&(n.direction=t)}),Et(o)}acceptAnswer(e){return f(this,null,function*(){var t,r,o,n,a;try{let d;if(this._publishingLocalAudioTrack||this._publishingLocalVideoTrack||this.isMainStreamPublished){let u=((t=this._publishingLocalVideoTrack)==null?void 0:t.profile.bitrate)||((r=this.localMainVideoTrack)==null?void 0:r.profile.bitrate),p=((o=this._publishingLocalAudioTrack)==null?void 0:o.profile.bitrate)||((n=this.localMainAudioTrack)==null?void 0:n.profile.bitrate);if(u){let _=this._isPublishingAux?h.AUXILIARY:h.BIG;d=yield this.setBandwidth({bandwidth:u,type:h.VIDEO,sdp:d,videoType:_})}p&&(d=yield this.setBandwidth({bandwidth:p,type:h.AUDIO,sdp:d}))}if(d=this.removeVideoOrientation(e.sdp),(a=this._publishingLocalVideoTrack)!=null&&a.small){let{smallStreamConfig:u}=this._room;d=yield this.setBandwidth({bandwidth:this._publishingLocalVideoTrack.small.bitrate||u.bitrate,type:h.VIDEO,videoType:h.SMALL,sdp:d})}let m={type:e.type,sdp:d};yield this.setAnswer(m),this._log.debug(`accepted answer: ${d}`)}catch(d){throw this._log.error(`failed to accept remote answer ${d}`),d}})}sendMutedFlag(e){var o,n,a;if(e===this.localAuxAudioTrack||e===this.localAuxVideoTrack)return;let r={audio:!!((o=this.localMainAudioTrack)!=null&&o.muted),bigVideo:!!((n=this.localMainVideoTrack)!=null&&n.muted),auxVideo:!!((a=this.localAuxVideoTrack)!=null&&a.muted)};this._log.info(`send muted state: ${JSON.stringify(r)}`),this._signalChannel.send(q.UPDATE_MUTE_STAT,r)}getIsReconnecting(){return this._isReconnecting}reconnect(){return f(this,null,function*(){if(!(Le(Ms.prototype,this,"beforeReconnect").call(this)<0))try{yield this._signalChannel.sendWaitForResponse({command:q.UNPUBLISH,responseCommand:B.UNPUBLISH_RESULT,enableLog:!1}),this.closePeerConnection(),this.initialize(),this.isMainStreamPublished&&(yield this.publish({localAudioTrack:this.localMainAudioTrack,localVideoTrack:this.localMainVideoTrack,isAuxiliary:!1})),this.isAuxStreamPublished&&(yield this.publish({localAudioTrack:this.localAuxAudioTrack,localVideoTrack:this.localAuxVideoTrack,isAuxiliary:!0})),this._log.warn("reconnect() uplink reconnect successfully"),this.stopReconnection()}catch(t){let r=Ct(this._reconnectionCount);this._log.warn(`reconnect() timeout, try again after ${r/1e3}s`),this._reconnectionTimer=setTimeout(()=>{this.clearReconnectionTimer(),this.reconnect()},r)}})}handleConnectionStateChange(e){e.state==="CONNECTED"&&(this.localMainVideoTrack||this._publishingLocalVideoTrack&&!this._isPublishingAux)&&E.emit(T.SEND_FIRST_VIDEO_FRAME,{room:this._room})}updateSSRC(e){try{ge(e).media.forEach((r,o)=>{if(r.type===h.AUDIO){let n=r.ssrcs&&r.ssrcs[0];n&&(this.ssrc.audio=Number(n.id))}else{if(this._sdpSemantics===Hr&&r.ssrcGroups){r.ssrcGroups.forEach((a,d)=>{let l=Number(a.ssrcs.split(" ")[0]);d===0?this.ssrc.video=l:d===1&&(this.ssrc.small=l)});return}let n=r.ssrcs&&r.ssrcs[0];if(!n)return;switch(o){case 1:this.ssrc.video=Number(n.id);break;case 2:this.ssrc.small=Number(n.id);break;case 3:this.ssrc.auxiliary=Number(n.id);break;default:break}}})}catch(t){}}getVideoTrackId(e=h.VIDEO){if(this._peerConnection){let t=this._peerConnection.getSenders();if(e===h.AUXILIARY&&t[3]&&t[3].track)return t[3].track.id;if(e===h.VIDEO&&t[1]&&t[1].track)return t[1].track.id}if(this.localMainVideoTrack&&e===h.VIDEO){let t=this.localMainVideoTrack.mediaTrack;if(t)return t.id}if(this.localAuxVideoTrack&&e===h.AUXILIARY){let t=this.localAuxVideoTrack.mediaTrack;if(t)return t.id}return""}getSSRC(){return this.ssrc}checkPublishResultCode(e,t){if(e!==0)throw e===ar?(this._log.error(ve.NOT_SUPPORTED_H264ENCODE),new b({code:S.NOT_SUPPORTED_H264,message:U({key:x.NOT_SUPPORTED_H264ENCODE})})):new b({code:S.UNKNOWN,message:U({key:x.SIGNAL_RESPONSE_FAILED,data:{signalResponse:B.PUBLISH_RESULT,code:e,message:t}})})}};y([J(e=>function(...t){return new Promise((r,o)=>{let n=a=>{this._emitter.off("closed",n),o(new b({code:S.API_CALL_ABORTED,message:U({key:x.CONNECTION_ABORTED,data:a})}))};this._emitter.on("closed",n),e.apply(this,t).then(r,o).finally(()=>{this._emitter.off("closed",n)})})})],Ms.prototype,"publish",1),y([tt(521715,!1)],Ms.prototype,"unpublish",1),y([Je(je.prototype.afterConnect),la(je.prototype.beforeConnect)],Ms.prototype,"connect",1);var nu=Ms,Yo=nu;var Ko=class{constructor(i,e){this.room=i;c(this,"_log");c(this,"_prevReportTime",0);c(this,"_prevReport",{});c(this,"_prevStats",null);c(this,"_prevEncoderImplementation","");c(this,"_prevAuxEncoderImpl","");c(this,"_prevQualityLimitationReason","");c(this,"_prevAuxQualityLimitationReason","");c(this,"_prevDecoderImplementationMap",new Map);c(this,"totalBytesSent",0);c(this,"totalBytesReceived",0);c(this,"_spcStats",null);this._log=e}get statInterval(){return this._prevReportTime===0?2:(Date.now()-this._prevReportTime)/1e3}getSenderStats(i){return f(this,null,function*(){var o;let e={audio:{bytesSent:0,packetsSent:0,audioLevel:0,totalAudioEnergy:0},video:{bytesSent:0,packetsSent:0,framesEncoded:0,frameWidth:0,frameHeight:0,framesSent:0,fpsCapture:0},small:{bytesSent:0,packetsSent:0,framesEncoded:0,frameWidth:0,frameHeight:0,framesSent:0,fpsCapture:0},auxiliary:{bytesSent:0,packetsSent:0,framesEncoded:0,frameWidth:0,frameHeight:0,framesSent:0,fpsCapture:0},rtt:0},t=i.getPeerConnection(),r=i.getSSRC();if(t)try{if((this._spcStats||(yield t.getStats())).forEach(a=>{var m,u,p;let d,l;if(a.type==="outbound-rtp")if((a.mediaType||a.kind)===h.VIDEO){if(a.ssrc===r.video?(d=h.VIDEO,l=i.localMainVideoTrack):a.ssrc===r.small?d=h.SMALL:a.ssrc===r.auxiliary&&(l=i.localAuxVideoTrack,d=h.AUXILIARY),!d)return;if(e[d].bytesSent=a.bytesSent,e[d].packetsSent=a.packetsSent,e[d].framesEncoded=a.framesEncoded,g(a.keyFramesEncoded)||(e[d].keyFramesEncoded=a.keyFramesEncoded),g(a.nackCount)||(e[d].nackCount=a.nackCount),g(a.pliCount)||(e[d].pliCount=a.pliCount),g(a.retransmittedPacketsSent)||(e[d].retransmittedPacketsSent=a.retransmittedPacketsSent),g(a.totalEncodeTime)||(e[d].totalEncodeTime=a.totalEncodeTime),g(a.totalPacketSendDelay)||(e[d].totalPacketSendDelay=a.totalPacketSendDelay),!g(a.encoderImplementation)&&(d===h.VIDEO&&this._prevEncoderImplementation!==a.encoderImplementation||d===h.AUXILIARY&&this._prevAuxEncoderImpl!==a.encoderImplementation)){let I=2,R=this._prevEncoderImplementation;d===h.AUXILIARY&&(I=7,R=this._prevAuxEncoderImpl),E.emit("262",{userId:i.userId,streamType:I,prevImplementation:R,implementation:a.encoderImplementation,codec:i.videoCodec,isHWCodec:a.powerEfficientEncoder}),this[d===h.VIDEO?"_prevEncoderImplementation":"_prevAuxEncoderImpl"]=a.encoderImplementation,this._log.info(`${d===h.AUXILIARY?"aux ":""}encoderImplementation change to ${a.encoderImplementation}(${i.videoCodec}) HWEncoder: ${a.powerEfficientEncoder}`)}a.ssrc===r.video?!g(a.qualityLimitationReason)&&a.bytesSent!==0&&this._prevQualityLimitationReason!==a.qualityLimitationReason&&(this._log.info(`qualityLimitationReason change to ${a.qualityLimitationReason}`),E.emit("263",{userId:i.userId,reason:a.qualityLimitationReason,prevReason:this._prevQualityLimitationReason,streamType:2,isQosClearFirst:(m=i.localMainVideoTrack)==null?void 0:m.isQosClearFirst}),this._prevQualityLimitationReason=a.qualityLimitationReason):a.ssrc===r.auxiliary&&!g(a.qualityLimitationReason)&&a.bytesSent!==0&&this._prevAuxQualityLimitationReason!==a.qualityLimitationReason&&(this._log.info(`aux qualityLimitationReason change to ${a.qualityLimitationReason}`),E.emit("263",{userId:i.userId,reason:a.qualityLimitationReason,prevReason:this._prevAuxQualityLimitationReason,streamType:7,isQosClearFirst:(u=i.localAuxVideoTrack)==null?void 0:u.isQosClearFirst}),this._prevAuxQualityLimitationReason=a.qualityLimitationReason)}else e.audio.bytesSent=a.bytesSent,e.audio.packetsSent=a.packetsSent;else a.type==="candidate-pair"?zi(a)&&(this.totalBytesSent=a.bytesSent,Y(a.currentRoundTripTime)&&(e.rtt=Math.floor(a.currentRoundTripTime*1e3))):a.type==="media-source"&&(a.kind===h.AUDIO?(e.audio.audioLevel=a.audioLevel||0,e.audio.totalAudioEnergy=a.totalAudioEnergy||0,a.echoReturnLoss,a.totalSamplesDuration&&(e.audio.totalSamplesDuration=a.totalSamplesDuration)):a.kind===h.VIDEO&&(a.trackIdentifier===i.getVideoTrackId(h.VIDEO)?e.video.fpsCapture=a.framesPerSecond:a.trackIdentifier===i.getVideoTrackId(h.AUXILIARY)?e.auxiliary.fpsCapture=a.framesPerSecond:e.small.fpsCapture=a.framesPerSecond));if(!g(a.audioLevel)&&((p=i.localMainAudioTrack)!=null&&p.mediaTrack)&&a.trackIdentifier===i.localMainAudioTrack.mediaTrack.id&&(e.audio.audioLevel=a.audioLevel||0),!g(a.frameWidth)){let _=h.SMALL;a.trackIdentifier===i.getVideoTrackId(h.VIDEO)||a.ssrc===r.video?_=h.VIDEO:(a.trackIdentifier===i.getVideoTrackId(h.AUXILIARY)||a.ssrc===r.auxiliary)&&(_=h.AUXILIARY),e[_].frameWidth=a.frameWidth,e[_].frameHeight=a.frameHeight,e[_].framesSent=a.framesSent}}),i.localMainAudioTrack){let a=i.localMainAudioTrack.getInternalAudioLevel();e.audio.micAudioLevel=a,e.audio.audioLevel===0&&(e.audio.audioLevel=a)}this.totalBytesSent||(this.totalBytesSent+=e.audio.bytesSent+e.video.bytesSent+e.auxiliary.bytesSent),Object.keys(e).forEach(a=>{a===h.AUDIO?(i.localMainAudioTrack&&(i.localMainAudioTrack.stat=e[a]),i.localAuxAudioTrack&&(i.localAuxAudioTrack.stat=e[a])):a===h.VIDEO?i.localMainVideoTrack&&(i.localMainVideoTrack.stat=e[a]):a===h.AUXILIARY&&i.localAuxVideoTrack&&(i.localAuxVideoTrack.stat=e[a])})}catch(n){this._log.warn(`failed to getStats on sender connection ${n}`)}return e.rtt===0&&(e.rtt=((o=this.room.networkQuality)==null?void 0:o.uplinkRTT)||0),e})}getReceiverStats(i){return f(this,null,function*(){var r,o,n;let e={tinyId:i.tinyId,userId:i.userId,rtt:0,hasAudio:!1,hasVideo:!1,hasAuxiliary:!1,isSmallSubscribed:!1,audio:{bytesReceived:0,packetsReceived:0,packetsLost:0,p2pDelay:0,totalJitter:0,totalJitterCount:0,audioLevel:0,totalAudioEnergy:0,insertedSamplesForDeceleration:0,removedSamplesForAcceleration:0},video:{bytesReceived:0,packetsReceived:0,packetsLost:0,framesReceived:0,framesDecoded:0,frameWidth:0,frameHeight:0,fpsDecoded:0,freezeCount:0,totalFreezesDuration:0,totalJitter:0,totalJitterCount:0},auxiliary:{bytesReceived:0,packetsReceived:0,packetsLost:0,framesReceived:0,framesDecoded:0,frameWidth:0,frameHeight:0,fpsDecoded:0,totalJitter:0,totalJitterCount:0}},t=i.getPeerConnection();if(t)try{let{ssrc:a}=i,{muteState:d,subscribeState:l}=i;(this._spcStats||(yield t.getStats())).forEach(u=>{if(u.type==="inbound-rtp"){let p=(u.mediaType||u.kind)===h.AUDIO;if(p){if(u.ssrc!==a.audio||!d.hasAudio)return;e.audio.packetsReceived=u.packetsReceived,e.audio.bytesReceived=u.bytesReceived,e.audio.packetsLost=u.packetsLost,u.insertedSamplesForDeceleration&&(e.audio.insertedSamplesForDeceleration=u.insertedSamplesForDeceleration),u.removedSamplesForAcceleration&&(e.audio.removedSamplesForAcceleration=u.removedSamplesForAcceleration),u.totalSamplesDuration&&(e.audio.totalSamplesDuration=u.totalSamplesDuration),u.totalSamplesReceived&&(e.audio.totalSamplesReceived=u.totalSamplesReceived),u.concealedSamples&&(e.audio.concealedSamples=u.concealedSamples);let{remoteAudioTrack:_}=i;_.stat.packetsReceived=u.packetsReceived,_.stat.bytesReceived=u.bytesReceived,_.stat.packetsLost=u.packetsLost,e.audio.p2pDelay=_.stat.end2EndDelay,e.hasAudio=!0}else{if(ae&&u.bytesReceived===0)return;let _;u.ssrc===a.video&&d.hasVideo&&(e.video.packetsReceived=u.packetsReceived,e.video.bytesReceived=u.bytesReceived,e.video.packetsLost=u.packetsLost,e.video.framesReceived=u.framesReceived,e.video.framesDecoded=u.framesDecoded,e.video.fpsDecoded=u.framesPerSecond,e.hasVideo=!0,_=i.remoteVideoTrack,d.hasSmall&&l.smallVideo&&(e.isSmallSubscribed=!0),u.decoderImplementation&&(!this._prevDecoderImplementationMap.has(e.userId)||this._prevDecoderImplementationMap.get(e.userId)!==u.decoderImplementation)&&(this._log.info(`${e.userId} decoderImplementation change to ${u.decoderImplementation} HWDecoder: ${u.powerEfficientDecoder}`),E.emit("262",{userId:this.room.userId,remoteUserId:e.userId,prevImplementation:this._prevDecoderImplementationMap.get(e.userId),implementation:u.decoderImplementation,codec:i.videoCodec,isHWCodec:u.powerEfficientDecoder}),this._prevDecoderImplementationMap.set(e.userId,u.decoderImplementation))),u.ssrc===a.auxiliary&&d.hasAuxiliary&&(e.auxiliary.packetsReceived=u.packetsReceived,e.auxiliary.bytesReceived=u.bytesReceived,e.auxiliary.packetsLost=u.packetsLost,e.auxiliary.framesReceived=u.framesReceived,e.auxiliary.framesDecoded=u.framesDecoded,e.auxiliary.fpsDecoded=u.framesPerSecond,_=i.remoteAuxiliaryTrack,e.hasAuxiliary=!0),_&&(_.stat.packetsReceived=u.packetsReceived,_.stat.bytesReceived=u.bytesReceived,_.stat.packetsLost=u.packetsLost,_.stat.framesReceived=u.framesReceived,_.stat.framesDecoded=u.framesDecoded,u.jitterBufferDelay&&(_.stat.jitterBufferDelay=Math.floor(u.jitterBufferDelay/u.jitterBufferEmittedCount*1e3)))}u.jitterBufferDelay&&(p?(e.audio.totalJitter=u.jitterBufferDelay,e.audio.totalJitterCount=u.jitterBufferEmittedCount):u.ssrc===a.video&&d.hasVideo?(e.video.totalJitter=u.jitterBufferDelay,e.video.totalJitterCount=u.jitterBufferEmittedCount):u.ssrc===a.auxiliary&&d.hasAuxiliary&&(e.auxiliary.totalJitter=u.jitterBufferDelay,e.auxiliary.totalJitterCount=u.jitterBufferEmittedCount))}else u.type==="candidate-pair"&&zi(u)&&(this.totalBytesReceived=u.bytesReceived,Y(u.currentRoundTripTime)&&(e.rtt=Math.floor(u.currentRoundTripTime*1e3)));g(u.frameWidth)||((u.trackIdentifier===i.getMainStreamVideoTrackId()||u.ssrc===a.video)&&(e.video.frameWidth=u.frameWidth,e.video.frameHeight=u.frameHeight,i.remoteVideoTrack.stat.frameWidth=u.frameWidth,i.remoteVideoTrack.stat.frameHeight=u.frameHeight),(u.trackIdentifier===i.getAuxStreamVideoTrackId()||u.ssrc===a.auxiliary)&&(e.auxiliary.frameWidth=u.frameWidth,e.auxiliary.frameHeight=u.frameHeight,i.remoteAuxiliaryTrack.stat.frameWidth=u.frameWidth,i.remoteAuxiliaryTrack.stat.frameHeight=u.frameHeight)),!g(u.audioLevel)&&i.muteState.audioAvailable&&i.remoteAudioTrack.mediaTrack&&u.trackIdentifier===i.remoteAudioTrack.mediaTrack.id&&(e.audio.audioLevel=u.audioLevel||0,e.audio.totalAudioEnergy=u.totalAudioEnergy||0)}),e.audio.audioLevel===0&&i.muteState.audioAvailable&&(e.audio.audioLevel=i.remoteAudioTrack.getInternalAudioLevel()||0),this.totalBytesReceived||(this.totalBytesReceived+=e.audio.bytesReceived+e.video.bytesReceived+e.auxiliary.bytesReceived),g((r=i.remoteVideoTrack.player.stat)==null?void 0:r.fps)||(e.video.fpsRender=i.remoteVideoTrack.player.stat.fps),g((o=i.remoteAuxiliaryTrack.player.stat)==null?void 0:o.fps)||(e.auxiliary.fpsRender=i.remoteAuxiliaryTrack.player.stat.fps)}catch(a){this._log.warn(`failed to getStats on receiver connection ${a}`)}return e.rtt===0&&(e.rtt=((n=this.room.networkQuality)==null?void 0:n.uplinkRTT)||0),e})}getStats(i,e){return f(this,null,function*(){let t={},r=[];if(this.room.singlePC){let o=this.room.singlePC.getPeerConnection();if(!o)return{senderStats:t,receiverStats:r};let n=L(),a=yield o.getStats(),d=L();d-n>2e3&&this._log.warn(`getStats cost ${d-n}ms`);let l=[],m=new Set(["inbound-rtp","outbound-rtp","track","candidate-pair","media-source"]);a.forEach(u=>m.has(u.type)&&l.push(u)),this._spcStats=l}i&&(t=yield this.getSenderStats(i));for(let[o,n]of e){let a=yield this.getReceiverStats(n);r.push(a)}return{senderStats:t,receiverStats:r}})}getDifferenceValue(i,e){if(Kt(i))return e;let t=e-i;return t<0?0:t}prepareReport({stats:i,report:e,freezeMap:t}){var u;if(!Kt(i.senderStats)){let p={uint32_audio_level:i.senderStats.audio.audioLevel*mt,uint32_audio_energy:(i.senderStats.audio.totalAudioEnergy||0)*1e6,uint32_audio_codec_bitrate:i.senderStats.audio.bytesSent};i.senderStats.audio.micAudioLevel&&(p.uint32_mic_audio_level=i.senderStats.audio.micAudioLevel*mt),i.senderStats.audio.totalSamplesDuration&&(e.msg_device_info.uint32_audio_capture_cost=i.senderStats.audio.totalSamplesDuration);let _=[];if(i.senderStats.video.bytesSent){let R={uint32_video_stream_type:2,uint32_video_codec_fps:i.senderStats.video.framesSent,uint32_video_capture_fps:i.senderStats.video.fpsCapture,uint32_video_width:i.senderStats.video.frameWidth,uint32_video_height:i.senderStats.video.frameHeight,uint32_video_codec_bitrate:i.senderStats.video.bytesSent,uint32_video_enc_fps:i.senderStats.video.framesEncoded,uint32_key_frame_count:i.senderStats.video.keyFramesEncoded,uint32_nack_count:i.senderStats.video.nackCount,uint32_pli_count:i.senderStats.video.pliCount,uint32_encode_cost:(i.senderStats.video.totalEncodeTime||0)*1e3,uint32_send_packet_cost:(i.senderStats.video.totalPacketSendDelay||0)*1e3,uint32_video_arq_packets:i.senderStats.video.retransmittedPacketsSent};_.push(R)}if(i.senderStats.small.bytesSent){let R={uint32_video_stream_type:3,uint32_video_codec_fps:i.senderStats.small.framesSent||0,uint32_video_capture_fps:i.senderStats.small.fpsCapture||0,uint32_video_width:i.senderStats.small.frameWidth||0,uint32_video_height:i.senderStats.small.frameHeight||0,uint32_video_codec_bitrate:i.senderStats.small.bytesSent,uint32_video_enc_fps:i.senderStats.small.framesEncoded||0,uint32_key_frame_count:i.senderStats.small.keyFramesEncoded,uint32_nack_count:i.senderStats.small.nackCount,uint32_pli_count:i.senderStats.small.pliCount,uint32_encode_cost:(i.senderStats.small.totalEncodeTime||0)*1e3,uint32_send_packet_cost:(i.senderStats.small.totalPacketSendDelay||0)*1e3,uint32_video_arq_packets:i.senderStats.small.retransmittedPacketsSent};_.push(R)}if(i.senderStats.auxiliary.bytesSent){let R={uint32_video_stream_type:7,uint32_video_codec_fps:i.senderStats.auxiliary.framesSent||0,uint32_video_capture_fps:i.senderStats.auxiliary.fpsCapture||0,uint32_video_width:i.senderStats.auxiliary.frameWidth||0,uint32_video_height:i.senderStats.auxiliary.frameHeight||0,uint32_video_codec_bitrate:i.senderStats.auxiliary.bytesSent,uint32_video_enc_fps:i.senderStats.auxiliary.framesEncoded||0,uint32_key_frame_count:i.senderStats.auxiliary.keyFramesEncoded,uint32_nack_count:i.senderStats.auxiliary.nackCount,uint32_pli_count:i.senderStats.auxiliary.pliCount,uint32_encode_cost:(i.senderStats.auxiliary.totalEncodeTime||0)*1e3,uint32_send_packet_cost:(i.senderStats.auxiliary.totalPacketSendDelay||0)*1e3,uint32_video_arq_packets:i.senderStats.auxiliary.retransmittedPacketsSent};_.push(R)}let I={uint32_bitrate:0,uint32_lost:0,uint32_rtt:i.senderStats.rtt};e.msg_up_stream_info={msg_audio_status:p,msg_video_status:_,msg_network_status:I}}let{statInterval:r}=this;e.msg_down_stream_info=[],i.receiverStats.forEach(p=>{let _={msg_user_info:{str_identifier:p.userId,uint64_tinyid:p.tinyId},msg_network_status:{uint32_rtt:p.rtt,uint32_bitrate:0,uint32_lost:0},msg_audio_status:{},msg_video_status:[]};if(p.hasAudio){let I={uint32_audio_p2p_delay:p.audio.p2pDelay,uint32_audio_cache_ms:p.audio.totalJitter,uint32_audio_cache_ms_count:p.audio.totalJitterCount,uint32_audio_codec_bitrate:p.audio.bytesReceived,uint32_audio_total_bitrate:p.audio.bytesReceived,uint32_audio_level:p.audio.audioLevel*1e8,uint32_audio_energy:p.audio.totalAudioEnergy*1e6,uint32_audio_receive:p.audio.packetsReceived,uint32_audio_origin_lost:p.audio.packetsLost};_.msg_audio_status=I}if(p.hasVideo){let I=t.get(`${p.userId}_${Ic}`),R=I?I.duration:0,D={uint32_video_stream_type:p.isSmallSubscribed?3:2,uint32_video_receive_fps:p.video.framesReceived,uint32_video_width:p.video.frameWidth,uint32_video_height:p.video.frameHeight,uint32_video_codec_bitrate:p.video.bytesReceived,uint32_video_receive:p.video.packetsReceived,uint32_video_origin_lost:p.video.packetsLost,uint32_video_block_time:R,uint32_video_dec_fps:p.video.framesDecoded,uint32_video_codec_fps:p.video.fpsRender,uint32_video_cache_ms:p.video.totalJitter,uint32_video_cache_ms_count:p.video.totalJitterCount};_.msg_video_status.push(D)}if(p.hasAuxiliary){let I=t.get(`${p.userId}_${Ac}`),R=I?I.duration:0,D={uint32_video_stream_type:7,uint32_video_receive_fps:p.auxiliary.framesReceived,uint32_video_width:p.auxiliary.frameWidth,uint32_video_height:p.auxiliary.frameHeight,uint32_video_codec_bitrate:p.auxiliary.bytesReceived,uint32_video_receive:p.auxiliary.packetsReceived+p.auxiliary.packetsLost,uint32_video_origin_lost:p.auxiliary.packetsLost,uint32_video_block_time:R,uint32_video_dec_fps:p.auxiliary.framesDecoded,uint32_video_codec_fps:p.video.fpsRender,uint32_video_cache_ms:p.auxiliary.totalJitter,uint32_video_cache_ms_count:p.auxiliary.totalJitterCount};_.msg_video_status.push(D)}e.msg_down_stream_info.push(_)});let o=this._prevReport,n=this._prevStats;if(this._prevReport=JSON.parse(JSON.stringify(e)),this._prevStats=JSON.parse(JSON.stringify(i)),e.msg_up_stream_info.msg_audio_status&&o.msg_up_stream_info.msg_audio_status){let p=o.msg_up_stream_info.msg_audio_status,_=e.msg_up_stream_info.msg_audio_status;if(p.uint32_audio_codec_bitrate===0)_.uint32_audio_codec_bitrate=0;else{let I=this.getDifferenceValue(p.uint32_audio_codec_bitrate,_.uint32_audio_codec_bitrate);_.uint32_audio_codec_bitrate=Math.round(I*8/r),e.msg_up_stream_info.msg_network_status.uint32_bitrate+=_.uint32_audio_codec_bitrate}(u=o.msg_device_info)!=null&&u.uint32_audio_capture_cost?e.msg_device_info.uint32_audio_capture_cost=2*Math.floor(this.getDifferenceValue(o.msg_device_info.uint32_audio_capture_cost,e.msg_device_info.uint32_audio_capture_cost)*1e3/r):delete e.msg_device_info.uint32_audio_capture_cost}let a=o.msg_up_stream_info.msg_video_status;e.msg_up_stream_info.msg_video_status.forEach(p=>{let _=a.find(te=>te.uint32_video_stream_type===p.uint32_video_stream_type);if(!_||_.uint32_video_codec_bitrate===0){p.uint32_video_codec_bitrate=0,p.uint32_video_enc_fps=0,p.uint32_video_codec_fps=0;return}let I=0,R=0,D=0;_&&p.uint32_video_codec_bitrate>=_.uint32_video_codec_bitrate&&(I=_.uint32_video_codec_bitrate,R=_.uint32_video_enc_fps,D=_.uint32_video_codec_fps);let G=this.getDifferenceValue(I,p.uint32_video_codec_bitrate);p.uint32_video_codec_bitrate=Math.round(G*8/r),e.msg_up_stream_info.msg_network_status.uint32_bitrate+=p.uint32_video_codec_bitrate,p.uint32_video_enc_fps=Math.round(this.getDifferenceValue(R,p.uint32_video_enc_fps)/r),p.uint32_video_codec_fps=Math.round(this.getDifferenceValue(D,p.uint32_video_codec_fps)/r),fi&&_i()===115&&_.uint32_video_width===0&&_.uint32_video_height===0&&_.uint32_video_codec_fps===0&&(p.uint32_video_codec_fps=p.uint32_video_enc_fps),g(_.uint32_key_frame_count)||(p.uint32_key_frame_count=Math.round(this.getDifferenceValue(_.uint32_key_frame_count,p.uint32_key_frame_count))),g(_.uint32_nack_count)||(p.uint32_nack_count=Math.round(this.getDifferenceValue(_.uint32_nack_count,p.uint32_nack_count))),g(_.uint32_pli_count)||(p.uint32_pli_count=Math.round(this.getDifferenceValue(_.uint32_pli_count,p.uint32_pli_count))),g(_.uint32_video_arq_packets)||(p.uint32_video_arq_packets=Math.round(this.getDifferenceValue(_.uint32_video_arq_packets,p.uint32_video_arq_packets))),g(_.uint32_encode_cost)||(p.uint32_encode_cost=Math.round(this.getDifferenceValue(_.uint32_encode_cost,p.uint32_encode_cost)/r)),g(_.uint32_send_packet_cost)||(p.uint32_send_packet_cost=Math.round(this.getDifferenceValue(_.uint32_send_packet_cost,p.uint32_send_packet_cost)/r))});let l=o.msg_down_stream_info;e.msg_down_stream_info=e.msg_down_stream_info.filter(p=>l.find(_=>_.msg_user_info.uint64_tinyid===p.msg_user_info.uint64_tinyid));let m=e.msg_down_stream_info;return m.forEach(p=>{let _=l.find(I=>I.msg_user_info.uint64_tinyid===p.msg_user_info.uint64_tinyid);if(!Kt(p.msg_audio_status)&&!Kt(_.msg_audio_status)){let I=p.msg_audio_status,R=_.msg_audio_status,D=this.getDifferenceValue(R.uint32_audio_cache_ms_count,I.uint32_audio_cache_ms_count);delete I.uint32_audio_cache_ms_count,I.uint32_audio_cache_ms=Math.floor(1e3*this.getDifferenceValue(R.uint32_audio_cache_ms,I.uint32_audio_cache_ms)/D)||0;let G=this.room.remotePublishedUserMap.get(p.msg_user_info.str_identifier);G&&(G.remoteAudioTrack.stat.jitterBufferDelay=I.uint32_audio_cache_ms),I.uint32_audio_origin_lost=this.getDifferenceValue(R.uint32_audio_origin_lost,I.uint32_audio_origin_lost),I.uint32_audio_receive=this.getDifferenceValue(R.uint32_audio_receive,I.uint32_audio_receive),I.uint32_audio_receive+=I.uint32_audio_origin_lost;let te=this.getDifferenceValue(R.uint32_audio_codec_bitrate,I.uint32_audio_codec_bitrate);I.uint32_audio_codec_bitrate=Math.round(te*8/r),I.uint32_audio_total_bitrate=Math.round(te*8/r)}else p.msg_audio_status={};if(p.msg_video_status&&_.msg_video_status){let I=_.msg_video_status;p.msg_video_status=p.msg_video_status.filter(D=>I.find(G=>G.uint32_video_stream_type===D.uint32_video_stream_type)),p.msg_video_status.forEach(D=>{let G=I.find(Mp=>Mp.uint32_video_stream_type===D.uint32_video_stream_type),te=G.uint32_video_receive,sn=G.uint32_video_origin_lost,bp=G.uint32_video_codec_bitrate,j=G.uint32_video_receive_fps,Np=G.uint32_video_dec_fps;D.uint32_video_origin_lost=this.getDifferenceValue(sn,D.uint32_video_origin_lost),D.uint32_video_receive=this.getDifferenceValue(te,D.uint32_video_receive)+D.uint32_video_origin_lost;let vp=this.getDifferenceValue(bp,D.uint32_video_codec_bitrate);D.uint32_video_codec_bitrate=Math.round(vp*8/r);let Dp=this.getDifferenceValue(j,D.uint32_video_receive_fps);D.uint32_video_receive_fps=Math.round(Dp/r),D.uint32_video_dec_fps=Math.round(this.getDifferenceValue(Np,D.uint32_video_dec_fps)/r);let Op=this.getDifferenceValue(G.uint32_video_cache_ms_count,D.uint32_video_cache_ms_count);delete D.uint32_video_cache_ms_count,D.uint32_video_cache_ms=Math.floor(1e3*this.getDifferenceValue(G.uint32_video_cache_ms,D.uint32_video_cache_ms)/Op)||0})}}),n&&i.receiverStats.forEach(p=>{if(p.audio.concealedSamples&&p.audio.totalSamplesReceived){let _=n.receiverStats.find(I=>I.userId===p.userId);if(_&&_.audio.concealedSamples&&_.audio.totalSamplesReceived){let I=p.audio.concealedSamples-_.audio.concealedSamples,R=p.audio.totalSamplesReceived-_.audio.totalSamplesReceived,D=Math.floor(I/R*1e3*r);if(D>r*1e3/5){let G=m.find(te=>te.msg_user_info.str_identifier===p.userId);G&&(G.msg_audio_status.uint32_audio_block_time=D)}}}}),e}getStatsReport(r){return f(this,arguments,function*({uplinkConnection:i,downlinkConnections:e,freezeMap:t}){let o={msg_device_info:{},msg_up_stream_info:{msg_audio_status:{uint32_audio_format:11,uint32_audio_sample_rate:0,uint32_audio_codec_bitrate:0,uint32_audio_receive:0,uint32_audio_origin_lost:0,uint32_audio_level:0,uint32_audio_energy:0},msg_video_status:[],msg_network_status:{uint32_bitrate:0,uint32_rtt:0,uint32_lost:0}},msg_down_stream_info:[{msg_user_info:{str_identifier:"",uint64_tinyid:0},msg_audio_status:{uint32_audio_cache_ms:0,uint32_audio_format:11,uint32_audio_sample_rate:0,uint32_audio_codec_bitrate:0,uint32_audio_total_bitrate:0,uint32_audio_level:0,uint32_audio_energy:0,uint32_audio_receive:0,uint32_audio_origin_lost:0,uint32_audio_final_lost:0},msg_video_status:[{uint32_video_cache_ms:0,uint32_video_stream_type:0,uint32_video_receive_fps:0,uint32_video_width:0,uint32_video_height:0,uint32_video_codec_bitrate:0,uint32_video_receive:0,uint32_video_origin_lost:0,uint32_video_block_time:0,uint32_video_dec_fps:0}],msg_network_status:{uint32_bitrate:0,uint32_rtt:0,uint32_lost:0}}]},n=yield this.getStats(i,e);return JSON.stringify(this._prevReport)==="{}"&&(this._prevReport=JSON.parse(JSON.stringify(o))),this.prepareReport({stats:n,report:o,freezeMap:t}),this._prevReportTime=Date.now(),o})}reset(){this._prevReportTime=0,this._prevReport={},this._prevEncoderImplementation="",this._prevQualityLimitationReason="",this._prevDecoderImplementationMap=new Map}};var Zm=ke(Ge());function Ym(s){let i={totalCost:0,local:0,redirect:0,httpCache:0,dns:0,tcp:0,tls:0,request:0,response:0};try{let e=performance.getEntriesByType("resource").reverse();for(let t of e)if(t.name===s){let r=Math.round(t.duration),o=Math.max(Math.round(t.domainLookupStart-t.startTime),0),n=t.redirectStart>0?Math.max(Math.round(t.redirectEnd-t.redirectStart),0):0,a=t.fetchStart>0?Math.max(Math.round(t.domainLookupStart-t.fetchStart),0):0,d=Math.round(t.domainLookupEnd-t.domainLookupStart),l=Math.round(t.requestStart-t.secureConnectionStart),m=Math.round(t.secureConnectionStart-t.connectStart),u=Math.round(t.responseStart-t.requestStart),p=Math.round(t.responseEnd-(t.responseStart||t.startTime));i=k(v({},i),{totalCost:r,local:o,redirect:n,httpCache:a,dns:d,tcp:m,tls:l,request:u,response:p});break}}catch(e){}return i}function Km(s){return new Promise(i=>f(this,null,function*(){let e=setTimeout(()=>{i({totalCost:1e4,local:0,dns:0,tcp:0,tls:0,request:0,response:0})},1e4),t=Date.now(),r=`https://${s}/?t=${t}`;try{yield fetch(r)}catch(n){}clearTimeout(e);let o=Ym(r);o.totalCost===0&&(o.totalCost=Date.now()-t),i(o)}))}var IT=700,wr=class wr extends Zm.default{constructor({signalChannel:e,room:t}){super();c(this,"_room");c(this,"_signalChannel");c(this,"_log");c(this,"uplinkRTT",0);c(this,"uplinkLoss",0);c(this,"downlinkRTT",0);c(this,"downlinkLoss",0);c(this,"pingResults",{});c(this,"_downlinkPrevStatMap",new Map);c(this,"_downlinkLossAndRTTMap",new Map);c(this,"_interval",-1);c(this,"_uplinkNetworkQuality",0);c(this,"_downlinkNetworkQuality",0);this._room=t,this._signalChannel=e,this._log=C.createLogger({id:"q",userId:this._room.userId,sdkAppId:this._room.sdkAppId}),this.initialize()}get uplinkNetworkQuality(){return this._uplinkNetworkQuality}set uplinkNetworkQuality(e){e!==this._uplinkNetworkQuality&&this._log.info(`uplink ${this.uplinkNetworkQuality} -> ${e}, rtt: ${this.uplinkRTT}, loss: ${this.uplinkLoss} ws-rtt: ${this._signalChannel.rtt}`),this._uplinkNetworkQuality=e}get downlinkNetworkQuality(){return this._downlinkNetworkQuality}set downlinkNetworkQuality(e){if(e!==this._downlinkNetworkQuality){let{rtt:t,loss:r}=this.getAverageLossAndRTT([...this._downlinkLossAndRTTMap.values()]);this._log.info(`downlink ${this.downlinkNetworkQuality} -> ${e}, rtt: ${t}, loss: ${r} ws-rtt: ${this._signalChannel.rtt}`)}this._downlinkNetworkQuality=e}initialize(){this._signalChannel.on(B.UPLINK_NETWORK_STATS,e=>{this.handleUplinkNetworkQuality(e)}),this._signalChannel.on(Ee.CONNECTION_STATE_CHANGED,this.handleSignalConnectionStateChange.bind(this)),this.start()}handleUplinkNetworkQuality(e){var d,l;if(e.data.code!==0)return;let t=e.data.data;if(t.delay&&this.updateDelay(t.delay),this._room.signalChannel&&t.wsRtt&&(this._room.signalChannel.rtt=t.wsRtt),!this._room.uplinkConnection){this.uplinkNetworkQuality=0,this.uplinkLoss=0,this.uplinkRTT=0;return}let r=(l=(d=this._room)==null?void 0:d.uplinkConnection)==null?void 0:l.getPeerConnection();if(r&&this.isPeerConnectionDisconnected(r)){this.uplinkNetworkQuality=6,this.uplinkLoss=0,this.uplinkRTT=0;return}let o=t.expectAudPkg+t.expectVidPkg,n=t.recvAudPkg+t.recvVidPkg,a=o-n;o===0&&n===0||(a<=0?this.uplinkLoss=0:this.uplinkLoss=Math.round(a/o*100),this.uplinkRTT=t.rtt,this.uplinkNetworkQuality=this.getNetworkQuality(this.uplinkLoss,this.uplinkRTT))}handleDownlinkNetworkQuality(){return f(this,null,function*(){if(this._room.remotePublishedUserMap.size===0){this.downlinkNetworkQuality=0;return}let e=[...this._room.remotePublishedUserMap.values()],t=e.filter(a=>{var d;return((d=a.getPeerConnection())==null?void 0:d.connectionState)===ce.CONNECTED});if(e.filter(a=>this.isPeerConnectionDisconnected(a.getPeerConnection())).length===e.length){this.downlinkNetworkQuality=6;return}for(let a=0;a<t.length;a++){let d=t[a].getPeerConnection();if(!d)return;let{rtt:l,totalPacketsLost:m,totalPacketsReceived:u}=yield this.getStat(d);if(!this._downlinkPrevStatMap.has(d)){this._downlinkPrevStatMap.set(d,{totalPacketsLost:m,totalPacketsReceived:u});continue}let p=0,_=this._downlinkPrevStatMap.get(d),I=m-_.totalPacketsLost,R=u-_.totalPacketsReceived;I<=0||R<0?p=0:p=Math.round(I/(I+R)*100),this._downlinkPrevStatMap.set(d,{totalPacketsLost:m,totalPacketsReceived:u}),this._downlinkLossAndRTTMap.set(d,{rtt:l,loss:p,userId:t[a].getUserId(),audioDelay:t[a].remoteAudioTrack.stat.end2EndDelay,videoDelay:t[a].remoteVideoTrack.stat.end2EndDelay})}if([...this._downlinkPrevStatMap.keys()].forEach(a=>{this.isPeerConnectionDisconnected(a)&&(this._downlinkPrevStatMap.delete(a),this._downlinkLossAndRTTMap.delete(a))}),this._downlinkLossAndRTTMap.size===0){this.downlinkRTT=0,this.downlinkLoss=0,this.downlinkNetworkQuality=0;return}let{rtt:o,loss:n}=this.getAverageLossAndRTT([...this._downlinkLossAndRTTMap.values()]);this.downlinkRTT=o,this.downlinkLoss=n,this.downlinkNetworkQuality=this.getNetworkQuality(n,o)})}getStat(e){return f(this,null,function*(){let t={rtt:0,totalPacketsLost:0,totalPacketsReceived:0};if(!e||!Er())return t;let r=e.getReceivers();try{for(let o=0;o<r.length;o++)(yield r[o].getStats()).forEach(d=>{d.type==="candidate-pair"&&Y(d.currentRoundTripTime)&&(t.rtt=Math.round(d.currentRoundTripTime*1e3)),d.type==="inbound-rtp"&&(d.mediaType===h.AUDIO||d.mediaType===h.VIDEO)&&(t.totalPacketsLost+=d.packetsLost,t.totalPacketsReceived+=d.packetsReceived)});return t.rtt===0&&(t.rtt=this.uplinkRTT),t}catch(o){return t}})}getAverageLossAndRTT(e){let t={rtt:0,loss:0};return Array.isArray(e)&&e.length>0&&(e.forEach(r=>{t.rtt+=r.rtt,t.loss+=r.loss}),Object.keys(t).forEach(r=>{t[r]=Math.round(t[r]/e.length)})),t}getNetworkQuality(e,t){return e>50||t>500?5:e>30||t>350?4:e>20||t>200?3:e>10||t>100?2:e>=0||t>=0?1:0}handleSignalConnectionStateChange(e){e.state==="DISCONNECTED"?(this.uplinkRTT=0,this.uplinkLoss=0,this.uplinkNetworkQuality=6):e.state==="CONNECTED"&&this.uplinkNetworkQuality===6&&(this.uplinkNetworkQuality=5)}handleUplinkConnectionStateChange({state:e}){e==="DISCONNECTED"?(this.uplinkLoss=0,this.uplinkRTT=0,this.uplinkNetworkQuality=6):e==="CONNECTED"&&this.uplinkNetworkQuality===6&&(this.uplinkNetworkQuality=5)}isPeerConnectionDisconnected(e){return!!(e&&(e.connectionState===ce.DISCONNECTED||e.connectionState===ce.FAILED||e.connectionState===ce.CLOSED))}setUplinkConnection(e){this._room.uplinkConnection=e,this._room.uplinkConnection?this._room.uplinkConnection.on("connection-state-changed",this.handleUplinkConnectionStateChange.bind(this)):(this.uplinkNetworkQuality=0,this.uplinkRTT=0,this.uplinkLoss=0)}start(){if(this._interval!==-1){this._log.info("network quality calculating is already started");return}this._log.debug("start network quality calculating"),this._interval=re.run($i,()=>{var n;this.handleDownlinkNetworkQuality();let e=[...this._downlinkLossAndRTTMap.values()];E.emit(T.NETWORK_QUALITY,{room:this._room,uplink:{rtt:this.uplinkRTT,loss:this.uplinkLoss},downlinks:e});let t=(n=this._room.scheduleResult.config)==null?void 0:n.pingDomainInfo,r={uplinkNetworkQuality:this.uplinkNetworkQuality,downlinkNetworkQuality:this.downlinkNetworkQuality,uplinkRTT:this.uplinkRTT,uplinkLoss:this.uplinkLoss,downlinkRTT:this.downlinkRTT,downlinkLoss:this.downlinkLoss};t&&(r=k(v({},r),{pingResults:this.uplinkRTT>t.rttThreshold||this.downlinkRTT>t.rttThreshold?this.pingResults:{}})),this.emit(wr.EVENT_NETWORK_QUALITY,r);let o=Date.now();if(t&&(this.uplinkRTT>t.rttThreshold||this.downlinkRTT>t.rttThreshold)&&o-wr.lastPingTime>t.interval*1e3){wr.lastPingTime=Date.now();let a=t.domain.map(d=>Km(d).then(l=>({domain:d,cost:l.totalCost})));Promise.all(a).then(d=>{this.pingResults.isPoorNetwork=d.some(l=>l.cost>IT),this.pingResults.timestamp=o,this.pingResults.data=d,d.forEach(l=>{N.addSuccessEvent({key:521718,cost:l.cost})}),this._log.warn(`All ping results: ${JSON.stringify(d)}`)}).catch(d=>{this._log.warn(`Error during pinging domains: ${d}`)})}},{delay:2e3})}stop(){this._log.debug("stopped"),this._interval!==-1&&(re.clearTask(this._interval),this._interval=-1),this._downlinkLossAndRTTMap.clear(),this._downlinkPrevStatMap.clear()}updateDelay(e){let{tinyIdToUserIdMap:t}=this._room;e.forEach(({srcTinyId:r,videoDelay:o,audioDelay:n})=>{let a=t.get(r);if(a){let d=this._room.remotePublishedUserMap.get(a);d==null||d.setDelay({videoDelay:o,audioDelay:n})}})}};c(wr,"EVENT_NETWORK_QUALITY","0"),c(wr,"lastPingTime",0);var ks=wr;function AT({fn:s,context:i}){return function(...e){try{let t=s.apply(i,e);return Wi(t)?t.catch(r=>C.error(`${s.name}() error observed ${r}`)):t}catch(t){C.error(`${s.name}() error observed ${t}`)}}}var ec=class{constructor(i){c(this,"_frameWorkType");c(this,"_component");c(this,"_language");c(this,"connectionType");c(this,"_room");c(this,"_signalInfo",{tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,endReportExtend:void 0});c(this,"_keyPrefix");c(this,"_log");c(this,"_intervalId");c(this,"_firstPublishedUserList");c(this,"_networkQuality");c(this,"_basicInfo");c(this,"_pathJoinRoom");c(this,"_pathLeaveRoom");c(this,"_pathMainVideoMap");c(this,"_pathMainAudioMap");c(this,"_pathAuxiliaryMap");c(this,"_remoteStreamStatMap");c(this,"_localStreamStat");c(this,"_eventMap",new Map);c(this,"_captureCostSum",0);c(this,"_captureCostCount",0);c(this,"isDestroyed",!1);this._frameWorkType=i.frameWorkType||30,this._component=i.component||0,this.connectionType=i.connectionType||1,this._language=i.language||0,this._room=i.room,this._keyPrefix="key_point",this._log=C.createLogger({id:"kpm",userId:this._room.userId,sdkAppId:this._room.sdkAppId}),Object.getOwnPropertyNames(this.__proto__).forEach(e=>{e.startsWith("handle")&&se(this[e])&&(this[e]=AT({fn:this[e],context:this}))}),this.initData(),this.installEvents()}initData(){this._firstPublishedUserList=[],this._networkQuality={totalUplinkRTT:0,totalUplinkLoss:0,count:0,totalDownlinkRTTAndLossMap:new Map},this._basicInfo={string_sdk_version:Ce,uint32_os_type:15,string_device_name:"",string_http_user_agent:navigator.userAgent,string_os_version:"",uint32_avg_rtt:0,uint32_avg_up_loss:0,uint32_scene:this._room.scene==="live"?1:0,uint32_joining_duration:0,uint32_networkType:0,uint32_framework:this._frameWorkType,uint32_component:this._component,uint32_connection_type:this.connectionType,uint32_caller_coding_language:this._language,string_domain:location.hostname},this._pathJoinRoom={uint64_start_time:0,uint64_send_request_acc_ip_cmd_start_time:0,uint64_send_request_acc_ip_cmd_end_time:0,uint64_send_request_enter_room_cmd_start_time:0,uint64_send_request_enter_room_cmd_end_time:0,uint64_send_first_video_frame_time:0,uint64_recv_userlist_time:0,uint64_end_time:0,int32_send_request_acc_ip_cmd_ret:0,int32_send_request_enter_room_cmd_ret:0,int32_end_ret:0},this._pathLeaveRoom={uint64_start_time:0,uint64_send_request_exit_room_cmd_start_time:0,uint64_send_request_exit_room_cmd_end_time:0,uint64_end_time:0,int32_send_request_exit_room_cmd_ret:0,int32_end_ret:0},this._localStreamStat={totalVideoBitrate:0,totalVideoFPS:0,totalVideoHeight:0,totalVideoWidth:0,totalAudioLevel:0,videoCount:0,audioLevelCount:0,publishStartTime:0,statsToReport:{uint32_audio_capture_db:0,uint32_video_big_capture_fps:0,uint32_video_big_bitrate:0,uint32_video_big_resolution:0}},this._pathMainVideoMap=new Map,this._pathMainAudioMap=new Map,this._pathAuxiliaryMap=new Map,this._remoteStreamStatMap=new Map,uo().then(i=>{this._basicInfo.string_os_version=Ti(),i?this._basicInfo.string_device_name=i.mobile?i.model:this._basicInfo.string_os_version:this._basicInfo.string_device_name=this._basicInfo.string_os_version})}addEvent(i,e){return this._eventMap.set(i,e),E.on(i,e),this}installEvents(){this.handleUnload=this.handleUnload.bind(this),window.addEventListener("pagehide",this.handleUnload),this._room.once("banned",()=>this.handleLeaveSuccess({room:this._room,roomId:this._room.roomId})),this.addEvent(T.JOIN_START,this.handleJoinStart).addEvent(T.JOIN_SCHEDULE_SUCCESS,this.handleJoinScheduleSuccess).addEvent(T.JOIN_SIGNAL_CONNECTION_START,this.handleSignalConnectionStart).addEvent(T.JOIN_SIGNAL_CONNECTION_END,this.handleSignalConnectionEnd).addEvent(T.JOIN_SEND_CMD,this.handleJoinSendCMD).addEvent(T.JOIN_RECEIVED_CMD_RES,this.handleJoinReceivedCMDResponce).addEvent(T.JOIN_SUCCESS,this.handleJoinSuccess).addEvent(T.JOIN_FAILED,this.handleJoinFailed).addEvent(T.LEAVE_START,this.handleLeaveStart).addEvent(T.LEAVE_SUCCESS,this.handleLeaveSuccess).addEvent(T.LEAVE_SEND_CMD,this.handleLeaveSendCMD).addEvent(T.LOCAL_TRACK_CAPTURE_START,this.handleTrackCaptureStart).addEvent(T.LOCAL_TRACK_CAPTURE_SUCCESS,this.handleTrackCaptureSuccess).addEvent(T.LOCAL_TRACK_CAPTURE_FAILED,this.handleTrackCaptureFailed).addEvent(T.PUBLISH_START,this.handlePublishStart).addEvent(T.SEND_FIRST_VIDEO_FRAME,this.handleSendFirstVideoFrame).addEvent(T.SUBSCRIBE_START,this.handleSubscribeStart).addEvent(T.SUBSCRIBE_SUCCESS,this.handleSubscribed).addEvent(T.PLAY_TRACK_START,this.handlePlayStart).addEvent(T.VIDEO_LOADED_DATA,this.handleVideoLoadedData).addEvent(T.PLAYER_STATE_CHANGED,({track:i,state:e,type:t})=>{!i.isRemote||!this.hitTest(i.room)||e==="PLAYING"&&(t===h.AUDIO?this.handleAudioPlaying(i):this.handleVideoPlaying(i))}).addEvent(T.NETWORK_QUALITY,this.handleNetworkQuality).addEvent(T.HEARTBEAT_REPORT,this.handleHeartbeatStats).addEvent(T.RECEIVED_PUBLISHED_USER_LIST,this.handleReceivedPublishUserList).addEvent(T.REMOTE_PUBLISH_STATE_CHANGED,({room:i,prevMuteState:e,muteState:t})=>{if(!this.hitTest(i))return;let r=e.hasAudio||e.hasVideo||e.hasSmall,o=e.hasAuxiliary,n=t.hasAudio||t.hasVideo||t.hasSmall,a=t.hasAuxiliary;!r&&n&&this.handleRemoteStreamAdded(t.userId,"main"),!o&&a&&this.handleRemoteStreamAdded(t.userId,"auxiliary")}).addEvent(T.SINGLE_CONNECTION_STAT,({room:i,stat:e})=>{this.hitTest(i)&&(this._pathJoinRoom.int32_ice_cost=e.ice,this._pathJoinRoom.int32_dtls_cost=e.dtls,this._pathJoinRoom.int32_peer_connection_cost=e.peerConnection)})}uninstallEvents(){window.removeEventListener("pagehide",this.handleUnload),this._eventMap.forEach((i,e)=>E.off(e,i)),this._eventMap.clear()}destroy(){this.uninstallEvents(),re.clearTask(this._intervalId),this._pathJoinRoom.uint64_start_time===0&&(this._room=null),this.isDestroyed=!0}handleUnload(){this._room.isJoined&&this.handleLeaveSuccess({room:this._room,roomId:this._room.roomId})}handleJoinStart(i){this.hitTest(i.room)&&(this._pathJoinRoom.uint64_start_time===0&&(this._pathJoinRoom.uint64_start_time=Date.now()),i.params&&(g(i.params.frameWorkType)||(this._frameWorkType=i.params.frameWorkType,this._basicInfo.uint32_framework=this._frameWorkType),g(i.params.component)||(this._component=i.params.component,this._basicInfo.uint32_component=this._component),g(i.params.language)||(this._language=i.params.language,this._basicInfo.uint32_caller_coding_language=this._language)))}handleJoinScheduleSuccess({room:i,detailCost:e}){if(this.hitTest(i)&&e){let{totalCost:t,local:r,dns:o,tcp:n,tls:a,request:d,response:l}=e;this._pathJoinRoom.int32_schedule_cost=t,this._pathJoinRoom.int32_schedule_local=r,this._pathJoinRoom.int32_schedule_dns=o,this._pathJoinRoom.int32_schedule_tcp=n,this._pathJoinRoom.int32_schedule_tls=a,this._pathJoinRoom.int32_schedule_request=d,this._pathJoinRoom.int32_schedule_response=l}}handleSignalConnectionStart({room:i}){this.hitTest(i)&&this._pathJoinRoom.uint64_send_request_acc_ip_cmd_start_time===0&&(this._pathJoinRoom.uint64_send_request_acc_ip_cmd_start_time=Date.now())}handleSignalConnectionEnd({room:i,error:e}){this.hitTest(i)&&this._pathJoinRoom.uint64_send_request_acc_ip_cmd_end_time===0&&(this._pathJoinRoom.uint64_send_request_acc_ip_cmd_end_time=Date.now(),e&&(this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret=e instanceof b?Number(e.getExtraCode()||e.getCode()):S.UNKNOWN,this._pathJoinRoom.int32_end_ret=this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret))}handleJoinSendCMD(i){this.hitTest(i.room)&&this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time===0&&(this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time=Date.now())}handleJoinReceivedCMDResponce(i){this.hitTest(i.room)&&this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time===0&&(this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=Date.now(),this._pathJoinRoom.int32_send_request_enter_room_cmd_ret=i.code,i.code!==0&&(this._pathJoinRoom.int32_end_ret=this._pathJoinRoom.int32_send_request_enter_room_cmd_ret))}handleJoinSuccess(i){this.hitTest(i.room)&&this._pathJoinRoom.uint64_end_time===0&&(this._pathJoinRoom.uint64_end_time=Date.now(),this._pathJoinRoom.int32_end_ret=0,this._signalInfo=i.room.getSignalInfo())}handleJoinFailed({room:i,error:e}){this.hitTest(i)&&(this._pathJoinRoom.uint64_end_time=Date.now(),this._pathJoinRoom.int32_end_ret===0&&(this._pathJoinRoom.int32_end_ret=e.code||this._pathJoinRoom.int32_send_request_enter_room_cmd_ret||this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret),setTimeout(()=>{this.report()}))}handleReceivedPublishUserList(i){this.hitTest(i.room)&&this._pathJoinRoom.uint64_recv_userlist_time===0&&(this._pathJoinRoom.uint64_recv_userlist_time=Date.now(),this._firstPublishedUserList=i.publishedUserList||[])}handleSendFirstVideoFrame({room:i}){this.hitTest(i)&&this._pathJoinRoom.uint64_send_first_video_frame_time===0&&this._pathJoinRoom.uint64_start_time!==0&&(this._pathJoinRoom.uint64_send_first_video_frame_time=Date.now())}handleLeaveStart(i){this.hitTest(i.room)&&(this._pathLeaveRoom.uint64_start_time=Date.now())}handleLeaveSuccess(i){this.hitTest(i.room)&&this._pathLeaveRoom.uint64_end_time===0&&(this._pathLeaveRoom.uint64_end_time=Date.now(),this._pathJoinRoom.uint64_end_time!==0?this._basicInfo.uint32_joining_duration=this._pathLeaveRoom.uint64_end_time-this._pathJoinRoom.uint64_end_time:this._log.warn("pathJoinRoom endTime is 0"),this.report())}handleLeaveSendCMD(i){this.hitTest(i.room)&&(this._pathLeaveRoom.uint64_send_request_exit_room_cmd_start_time=Date.now(),this._pathLeaveRoom.uint64_send_request_exit_room_cmd_end_time=Date.now())}handleRemoteStreamAdded(i,e){var r;let t=`${i}_${e}`;if(!this._remoteStreamStatMap.has(t)){let o={userId:i,totalVideoFPS:0,totalVideoBitrate:0,totalAudioLevel:0,totalAudioBitrate:0,totalLoss:0,audioCount:0,audioLevelCount:0,videoCount:0,networkQualityCount:0,streamAddedTime:Date.now(),subscribeStartTime:0,subscribedTime:0,playStreamTime:0,statsToReport:k(v({},CT),{msg_user_info:new Zo({userId:i,tinyId:(r=this._room.remotePublishedUserMap.get(i))==null?void 0:r.tinyId,role:20})})};o.statsToReport.uint32_stream_type=e==="main"?2:7,this._remoteStreamStatMap.set(t,o)}}handleSubscribeStart({room:i,remotePublishedUser:e,streamType:t,subscribeState:r}){if(!this.hitTest(i))return;let{userId:o,tinyId:n,role:a}=e,d=new Zo({userId:o,tinyId:n,role:a==="anchor"?20:21}),l=Date.now(),m=`${o}_${t}`,u=this._remoteStreamStatMap.get(m);u&&u.subscribeStartTime===0&&(u.subscribeStartTime=l),t==="main"?(e.muteState.hasVideo&&(r.video||r.smallVideo)&&!this._pathMainVideoMap.has(m)&&this._pathMainVideoMap.set(m,{statsToReport:{msg_user_info:d,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_render_first_frame_time:0,uint64_combine_first_frame_time:0},userId:o,sendSubscribeCMDTime:l}),e.muteState.hasAudio&&r.audio&&!this._pathMainAudioMap.has(m)&&this._pathMainAudioMap.set(m,{statsToReport:{msg_user_info:d,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_play_first_frame_time:0},userId:o,sendSubscribeCMDTime:l})):e.muteState.hasAuxiliary&&r.auxiliary&&!this._pathAuxiliaryMap.has(m)&&this._pathAuxiliaryMap.set(m,{sendSubscribeCMDTime:l})}handleSubscribed({room:i,remotePublishedUser:e,streamType:t}){if(this.hitTest(i)){let r=`${e.userId}_${t}`,o=this._remoteStreamStatMap.get(r);o&&o.subscribedTime===0&&(o.subscribedTime=Date.now())}}handlePlayStart({track:i}){if(!i.isRemote||!this.hitTest(i.room))return;let e=`${i.userId}_${i.streamType}`,t=this._remoteStreamStatMap.get(e);(t==null?void 0:t.playStreamTime)===0&&(t.playStreamTime=Date.now())}handleVideoLoadedData({track:i}){if(!i.isRemote||!this.hitTest(i.room))return;let e=`${i.userId}_${i.streamType}`,t=this._pathMainVideoMap.get(e);t&&t.statsToReport.uint64_combine_first_frame_time===0&&(t.statsToReport.uint64_combine_first_frame_time=Date.now())}handleVideoPlaying(i){let e=`${i.userId}_${i.streamType}`,t=Date.now(),r=this._pathMainVideoMap.get(e),o=this._remoteStreamStatMap.get(e);if(r&&(r.statsToReport.uint64_render_first_frame_time===0&&(r.statsToReport.uint64_render_first_frame_time=t),o)){let{statsToReport:a,playStreamTime:d,subscribedTime:l}=o;a.uint32_video_render_first===0&&d-l<=100&&(a.uint32_video_render_first=t-this._pathJoinRoom.uint64_start_time)}if(this._pathAuxiliaryMap.get(e)&&o){let{statsToReport:a,playStreamTime:d,subscribedTime:l}=o;a.uint32_video_render_first===0&&d-l<=100&&(a.uint32_video_render_first=t-this._pathJoinRoom.uint64_start_time)}}handleAudioPlaying(i){let e=`${i.userId}_${i.streamType}`,t=this._pathMainAudioMap.get(e);t&&t.statsToReport.uint64_play_first_frame_time===0&&(t.statsToReport.uint64_play_first_frame_time=Date.now())}handleNetworkQuality(i){this.hitTest(i.room)&&(this._networkQuality.totalUplinkLoss+=i.uplink.loss,this._networkQuality.totalUplinkRTT+=i.uplink.rtt,this._networkQuality.count++,i.downlinks.forEach(({rtt:e,loss:t,userId:r,videoDelay:o,audioDelay:n})=>{let a=this._networkQuality.totalDownlinkRTTAndLossMap.get(r);if(a)a.totalRTT+=e,a.totalLoss+=t,o&&(a.totalVideoDelay=(a.totalVideoDelay||0)+o,a.videoDelayCount=(a.videoDelayCount||0)+1),n&&(a.totalAudioDelay=(a.totalAudioDelay||0)+n,a.audioDelayCount=(a.audioDelayCount||0)+1),a.count++;else{let d,l,m,u;o&&(l=o,m=1),n&&(d=n,u=1),this._networkQuality.totalDownlinkRTTAndLossMap.set(r,{totalRTT:e,totalLoss:t,count:1,totalAudioDelay:d,totalVideoDelay:l,audioDelayCount:u,videoDelayCount:m})}}))}handleHeartbeatStats(i){if(this.hitTest(i.room)){let{msg_device_info:e,msg_up_stream_info:t,msg_down_stream_info:r}=i.report;if(t.msg_video_status[0]){let{uint32_video_codec_bitrate:o,uint32_video_enc_fps:n,uint32_video_width:a,uint32_video_height:d}=t.msg_video_status[0];this._localStreamStat.totalVideoBitrate+=o,this._localStreamStat.totalVideoFPS+=n,this._localStreamStat.totalVideoWidth+=a,this._localStreamStat.totalVideoHeight+=d,this._localStreamStat.videoCount++}if(t.msg_audio_status){let{uint32_audio_level:o}=t.msg_audio_status;Math.floor(o/mt*100)>0&&(this._localStreamStat.totalAudioLevel+=o/mt,this._localStreamStat.audioLevelCount++)}r.forEach(o=>{let{msg_user_info:n,msg_audio_status:a,msg_video_status:d}=o,l=n.str_identifier,m=this._room.remotePublishedUserMap.get(l);if(d.forEach(u=>{let p=u.uint32_video_stream_type===2,_=u.uint32_video_stream_type===7,I=`${l}_${p?"main":"auxiliary"}`,R=this._remoteStreamStatMap.get(I);if(R&&(p&&(m!=null&&m.remoteVideoTrack.isSubscribed)||_&&(m!=null&&m.remoteAuxiliaryTrack))){R.totalVideoFPS+=u.uint32_video_receive_fps,R.totalVideoBitrate+=u.uint32_video_codec_bitrate,R.videoCount++,R.statsToReport.uint32_video_width===0&&(R.statsToReport.uint32_video_width=u.uint32_video_width),R.statsToReport.uint32_video_height===0&&(R.statsToReport.uint32_video_height=u.uint32_video_height);let D=p?m.remoteVideoTrack:m.remoteAuxiliaryTrack;D.stat.jitterBufferDelay&&(R.videoJitterBufferDelay=D.stat.jitterBufferDelay),D.stat.framesReceived&&(R.statsToReport.uint32_video_consume_render_rate=Math.floor(D.stat.framesDecoded/D.stat.framesReceived*Us(10,6)))}}),!jr(a)){let u=`${l}_main`,p=this._remoteStreamStatMap.get(u);this._remoteStreamStatMap.has(u)&&p&&m!=null&&m.remoteAudioTrack.isSubscribed&&(p.totalAudioBitrate+=a.uint32_audio_codec_bitrate,p.audioCount++,m.remoteAudioTrack.stat.jitterBufferDelay&&(p.audioJitterBufferDelay=m.remoteAudioTrack.stat.jitterBufferDelay),Math.floor(a.uint32_audio_level/mt*100)>0&&(p.totalAudioLevel+=a.uint32_audio_level/mt,p.audioLevelCount++))}}),e.uint32_audio_capture_cost&&(this._captureCostSum+=e.uint32_audio_capture_cost,this._captureCostCount+=1,this._captureCostCount>=100&&(this._basicInfo.uint32_audio_capture_cost=Math.floor(this._captureCostSum/this._captureCostCount),this._captureCostSum=0,this._captureCostCount=0))}}handlePublishStart({room:i}){this.hitTest(i)&&this._localStreamStat.publishStartTime===0&&(this._localStreamStat.publishStartTime=Date.now())}handleTrackCaptureStart({track:i}){i.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_start_time&&(this._pathJoinRoom.uint64_init_audio_start_time=Date.now()),i.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_start_time&&(this._pathJoinRoom.uint64_init_camera_start_time=Date.now())}handleTrackCaptureSuccess({track:i}){i.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_end_time&&(this._pathJoinRoom.int32_init_audio_ret=0,this._pathJoinRoom.uint64_init_audio_end_time=Date.now()),i.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_end_time&&(this._pathJoinRoom.int32_init_camera_ret=0,this._pathJoinRoom.uint64_init_camera_end_time=Date.now())}handleTrackCaptureFailed({track:i,error:e}){let r={NotFoundError:1,NotAllowedError:2,NotReadableError:3,OverConstrainedError:4,AbortError:5,InvalidStateError:6,SecurityError:7,TypeError:8}[e.name]||(e instanceof b?e.getExtraCode()||e.getCode():S.UNKNOWN);i.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_end_time&&(this._pathJoinRoom.int32_init_audio_ret=r,this._pathJoinRoom.uint64_init_audio_end_time=Date.now()),i.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_end_time&&(this._pathJoinRoom.int32_init_camera_ret=r,this._pathJoinRoom.uint64_init_camera_end_time=Date.now())}hasVideoFlag(i){return this._firstPublishedUserList.findIndex(e=>e.userId===i&&e.flag&Bi)>=0}hasAudioFlag(i){return this._firstPublishedUserList.findIndex(e=>e.userId===i&&e.flag&Fi)>=0}hasAuxFlag(i){return this._firstPublishedUserList.findIndex(e=>e.userId===i&&e.flag&nr)>=0}hitTest(i){return i===this._room}prepareReport(){if(this._captureCostCount>0&&!this._basicInfo.uint32_audio_capture_cost&&(this._basicInfo.uint32_audio_capture_cost=Math.floor(this._captureCostSum/this._captureCostCount),this._captureCostSum=0,this._captureCostCount=0),this._networkQuality.count>0&&(this._basicInfo.uint32_avg_rtt=Math.floor(this._networkQuality.totalUplinkRTT/this._networkQuality.count),this._basicInfo.uint32_avg_up_loss=Math.floor(this._networkQuality.totalUplinkLoss/this._networkQuality.count)),this._localStreamStat.videoCount>0){this._localStreamStat.statsToReport.uint32_video_big_capture_fps=Math.floor(this._localStreamStat.totalVideoFPS/this._localStreamStat.videoCount),this._localStreamStat.statsToReport.uint32_video_big_bitrate=Math.floor(this._localStreamStat.totalVideoBitrate/this._localStreamStat.videoCount);let i=Math.floor(this._localStreamStat.totalVideoWidth/this._localStreamStat.videoCount),e=Math.floor(this._localStreamStat.totalVideoHeight/this._localStreamStat.videoCount);this._localStreamStat.statsToReport.uint32_video_big_resolution=i<<16|e}this._localStreamStat.audioLevelCount>0&&(this._localStreamStat.statsToReport.uint32_audio_capture_db=Math.floor(this._localStreamStat.totalAudioLevel/this._localStreamStat.audioLevelCount*100)),this._remoteStreamStatMap.forEach((i,e)=>{let{userId:t}=i,r=this._networkQuality.totalDownlinkRTTAndLossMap.get(t);if(r){let{totalLoss:m,count:u,audioDelayCount:p,videoDelayCount:_,totalAudioDelay:I,totalVideoDelay:R}=r;i.statsToReport.uint32_avg_down_loss=Math.floor(m/u),p&&I&&(i.statsToReport.uint32_audio_network_p2p_delay=Math.floor(I/p),i.audioJitterBufferDelay&&(i.statsToReport.uint32_p2p_delay=Math.floor(i.statsToReport.uint32_audio_network_p2p_delay+i.audioJitterBufferDelay))),_&&R&&(i.statsToReport.uint32_video_network_p2p_delay=Math.floor(R/_))}i.videoCount>0&&(i.statsToReport.uint32_video_avg_fps=Math.floor(i.totalVideoFPS/i.videoCount),i.statsToReport.uint32_video_avg_bitrate=Math.floor(i.totalVideoBitrate/i.videoCount)),i.audioCount>0&&(i.statsToReport.uint32_audio_recv_bitrate=i.statsToReport.uint32_audio_bitrate=Math.floor(i.totalAudioBitrate/i.audioCount)),i.audioLevelCount>0&&(i.statsToReport.uint32_audio_play_db=Math.floor(i.totalAudioLevel/i.audioLevelCount*100));let{callDurationCalculator:o}=this._room;o&&(i.statsToReport.uint32_audio_play_time=o.getDuration(e,h.AUDIO),i.statsToReport.uint32_video_play_time=o.getDuration(e,h.VIDEO)),i.statsToReport.uint32_video_render_first=Math.min(i.statsToReport.uint32_video_render_first,xr);let{badCaseDetector:n}=this._room,{dataFreeze:a,count:d}=n.getDataFreezeDuration(e),{renderFreeze:l}=n.getRenderFreezeDuration(e);i.statsToReport.uint32_video_block_count=d,i.statsToReport.uint32_video_block_time=Math.min(a,i.statsToReport.uint32_video_play_time),i.statsToReport.uint32_video_external_block_time=Math.min(l,i.statsToReport.uint32_video_play_time),n.isBlackStream(e)&&i.statsToReport.uint32_video_avg_fps===0?i.statsToReport.uint32_video_black_screen_subjective=1:i.statsToReport.uint32_video_black_screen_subjective=0,(i.subscribeStartTime===0||i.subscribeStartTime-i.streamAddedTime>100||i.playStreamTime===0)&&(this._pathMainAudioMap.delete(e),this._pathMainVideoMap.delete(e),i.statsToReport.uint32_video_render_first=0)}),this._pathMainAudioMap.forEach((i,e)=>{if(!this.hasAudioFlag(i.userId)){this._pathMainAudioMap.delete(e);return}i.statsToReport.uint64_play_first_frame_time-i.statsToReport.uint64_start_enter_time>xr&&(i.statsToReport.uint64_play_first_frame_time=i.statsToReport.uint64_start_enter_time+xr)}),this._pathMainVideoMap.forEach((i,e)=>{if(!this.hasVideoFlag(i.userId)){this._pathMainVideoMap.delete(e);return}i.statsToReport.uint64_render_first_frame_time-i.statsToReport.uint64_start_enter_time>xr&&(i.statsToReport.uint64_render_first_frame_time=i.statsToReport.uint64_start_enter_time+xr)}),this._pathJoinRoom.uint64_end_time-this._pathJoinRoom.uint64_start_time>xr&&(this._pathJoinRoom.uint64_end_time=this._pathJoinRoom.uint64_start_time+xr)}getReportData(){this._basicInfo.uint32_networkType=ur();let i={uint32_sdk_app_id:Number(this._room.sdkAppId),msg_user_info:new Zo({userId:this._room.userId,tinyId:this._room.tinyId,role:this._room.role==="anchor"?20:21}),msg_basic_info:this._basicInfo,uint32_acc_ip:Xr(this._signalInfo.relayIp),uint32_client_ip:Xr(this._signalInfo.clientIp,!1),uint32_acc_port:this._signalInfo.relayPort||0,uint64_timestamp:Date.now(),uint32_seq:Math.floor(Math.random()*Us(2,31)),msg_path_enter_room:this._pathJoinRoom,msg_path_exit_room:this._pathLeaveRoom,msg_path_recv_video:[...this._pathMainVideoMap.values()].map(e=>e.statsToReport),msg_quality_statistics:[...this._remoteStreamStatMap.values()].map(e=>e.statsToReport),str_room_name:String(this._room.roomId||0),msg_path_recv_audio:[...this._pathMainAudioMap.values()].map(e=>e.statsToReport),uint32_info_client_ip:Xr(this._signalInfo.clientIp,!1),error_code:[],msg_local_statistics:this._localStreamStat.statsToReport,bytes_report_buf_from_0x1:this._signalInfo.endReportExtend};return Ks(i),i}report(){return f(this,null,function*(){try{this.prepareReport();let i=this.getReportData();yield this.upload(i),this.initData()}catch(i){this._log.warn(i)}finally{this.isDestroyed&&(this._room=null)}})}upload(i){return f(this,null,function*(){if(i.msg_path_enter_room.uint64_start_time===0)return;let e=Number(this._room.sdkAppId),t=yield Lc(i),r=t instanceof ArrayBuffer,o=`${li(e,Vi.KEY_POINT)}&gzip=${+r}`,n=!1;navigator.sendBeacon&&(n=navigator.sendBeacon(o,t));let a=[this.uploadKVStat(N),this.uploadKVStat(Tr)];n||a.push(mi({url:o,body:t,priority:"low"})),yield Promise.all(a)})}setConnectionType(i){this.connectionType=i,this._basicInfo.uint32_connection_type=i}uploadKVStat(i){return f(this,null,function*(){let e=i.getReportData();if(e.stats_count.length===0&&e.stats_distribution.length===0)return;e.msg_sdk_basic_info=k(v({},e.msg_sdk_basic_info),{bytes_device_name:this._basicInfo.string_device_name||"",bytes_os_version:this._basicInfo.string_os_version||"",uint32_framework:this._frameWorkType,uint32_network_type:this._basicInfo.uint32_networkType||0}),this._log.debug(e);let t=yield Lc(e),r=`${li(+this._room.sdkAppId,Vi.KV_STAT)}&gzip=${+(t instanceof ArrayBuffer)}`,o=!1;navigator.sendBeacon&&(o=navigator.sendBeacon(r,t)),o||mi({url:r,body:t})})}};y([Ke({settings:{timeout:500,retries:3}})],ec.prototype,"upload",1);var xr=5e3,CT={msg_user_info:null,uint32_video_avg_fps:0,uint32_video_width:0,uint32_video_height:0,uint32_video_avg_bitrate:0,uint32_video_block_time:0,uint32_video_play_time:0,uint32_audio_block_time:0,uint32_audio_play_time:0,uint32_audio_play_db:0,uint32_avg_down_loss:0,uint32_stream_type:0,uint32_video_render_first:0,uint32_video_block_count:0,uint32_audio_block_count:0,uint32_audio_bitrate:0,uint32_video_black_screen_subjective:0,uint32_audio_recv_bitrate:0,uint32_video_external_block_time:0,uint32_video_consume_render_rate:0},Zo=class{constructor(i){c(this,"str_identifier");c(this,"str_tinyid");c(this,"uint32_role");this.str_identifier=String(i.userId),this.str_tinyid=String(i.tinyId||0),this.uint32_role=i.role}},ep=ec;var au=class{constructor(){c(this,"_startTime");c(this,"_endTime");this._startTime=0,this._endTime=0,this.start()}start(){this._startTime===0&&(this._startTime=L())}stop(){this._endTime===0&&(this._endTime=L())}getDuration(){return this._endTime===0?L()-this._startTime:this._endTime-this._startTime}get endTime(){return this._endTime}},Ls=au;var cu=class{constructor(i){c(this,"_room",null);c(this,"_durationMap");c(this,"_eventMap",new Map);this._room=i.room,this._durationMap=new Map,this.installEvents()}installEvents(){this._eventMap.set(T.SUBSCRIBE_SUCCESS,this.handleSubscribed).set(T.UNSUBSCRIBE_SUCCESS,this.handleStreamStopped).set(T.REMOTE_PUBLISH_STATE_CHANGED,({room:i,prevMuteState:e,muteState:t})=>{var n;let{userId:r}=t;if(!this.hitTest(i))return;e.hasAudio&&!t.hasAudio&&this.stopDurationItem(`${r}_main`,h.AUDIO),e.hasVideo&&!t.hasVideo&&this.stopDurationItem(`${r}_main`,h.VIDEO),e.hasAuxiliary&&!t.hasAuxiliary&&this.stopDurationItem(`${r}_auxiliary`,h.VIDEO);let o=(n=this._room)==null?void 0:n.remotePublishedUserMap.get(r);o&&(!e.hasAudio&&t.hasAudio&&o.remoteAudioTrack.isSubscribed&&this.addDuractionItem(r,h.AUDIO,"main"),!e.hasVideo&&t.hasVideo&&o.remoteVideoTrack.isSubscribed&&this.addDuractionItem(r,h.VIDEO,"main"),!e.hasAuxiliary&&t.hasAuxiliary&&o.remoteAuxiliaryTrack.isSubscribed&&this.addDuractionItem(r,h.VIDEO,"auxiliary"))}),this._eventMap.forEach((i,e)=>E.on(e,i,this))}uninstallEvents(){this._eventMap.forEach((i,e)=>E.off(e,i,this)),this._eventMap.clear()}handleSubscribed({room:i,streamType:e,remotePublishedUser:t}){if(!this.hitTest(i))return;let{userId:r}=t,o=`${r}_${e}`;if(t.muteState.hasAudio&&e==="main")if(t.remoteAudioTrack.isSubscribed){let n=new Ls,a=this._durationMap.get(o);a?this.isRecording(a.audio)||a.audio.push(n):this._durationMap.set(o,{userId:r,type:e,audio:[n],video:[]})}else this.stopDurationItem(o,h.AUDIO);if(t.muteState.hasVideo||t.muteState.hasAuxiliary)if(t.remoteVideoTrack.isSubscribed||t.remoteAuxiliaryTrack.isSubscribed){let n=new Ls,a=this._durationMap.get(o);a?this.isRecording(a.video)||a.video.push(n):this._durationMap.set(o,{userId:r,type:e,audio:[],video:[n]})}else this.stopDurationItem(o,h.VIDEO)}handleStreamStopped({room:i,streamType:e,remotePublishedUser:t}){if(!this.hitTest(i))return;let{userId:r}=t,o=`${r}_${e}`;this.stopDurationItem(o,h.AUDIO),this.stopDurationItem(o,h.VIDEO)}isRecording(i){return i.findIndex(e=>e.endTime===0)>=0}addDuractionItem(i,e,t){let r=`${i}_${t}`,o=new Ls,n=this._durationMap.get(r);n?this.isRecording(n[e])||n[e].push(o):this._durationMap.set(r,{userId:i,type:t,audio:e===h.AUDIO?[o]:[],video:e===h.AUDIO?[]:[o]})}stopDurationItem(i,e){if(this._durationMap.has(i)){let r=this._durationMap.get(i)[e].find(o=>o.endTime===0);r&&r.stop()}}hitTest(i){return this._room===i}getDuration(i,e){return this._durationMap.has(i)?this._durationMap.get(i)[e].reduce((r,o)=>r+o.getDuration(),0):0}getDurationMap(){return this._durationMap}reset(){this._durationMap.clear()}destroy(){this._room=null,this.uninstallEvents()}},tp=cu;var du=class{constructor(i){c(this,"_room");c(this,"_renderFreezeMap",new Map);c(this,"_isVideoPlayingEventFiredMap",new Map);c(this,"_dataFreezeMap",new Map);c(this,"_monitorFreezeData",new Map);c(this,"_eventMap",new Map);this._room=i.room,this.installEvents()}getRenderFreezeMap(){return this._renderFreezeMap}installEvents(){this._eventMap.set(T.LEAVE_SUCCESS,({room:i})=>{this.hitTest(i)&&this.stop()}).set(T.PLAY_TRACK_START,this.onPlayTrackStart).set(T.UNSUBSCRIBE_SUCCESS,({room:i,streamType:e,remotePublishedUser:t})=>{if(!this.hitTest(i))return;let{userId:r}=t,o=`${r}_${e}`;this.stopDataFreeze({key:o,userId:r,type:e})}).set(T.REMOTE_PUBLISH_STATE_CHANGED,({room:i,prevMuteState:e,muteState:t})=>{if(!this.hitTest(i))return;let{userId:r}=t;if(e.hasVideo&&!t.hasVideo){let o="main",n=`${t.userId}_${o}`;this.stopDataFreeze({key:n,userId:r,type:o})}if(e.hasAuxiliary&&!t.hasAuxiliary){let o="auxiliary",n=`${t.userId}_${o}`;this.stopDataFreeze({key:n,userId:r,type:o})}}).set(T.PLAYER_STATE_CHANGED,({track:i,state:e,reason:t,type:r})=>{if(!(!i.isRemote||!i.room||!this.hitTest(i.room)||r!==h.VIDEO)){if(e==="PLAYING"){let o=`${i.userId}_${i.streamType}`;this._isVideoPlayingEventFiredMap.set(o,!0)}t===h.MUTE?this.onVideoTrackMuted(i):t===h.UNMUTE&&this.onVideoTrackUnmuted(i)}}).set(T.HEARTBEAT_REPORT,this.onHearBeatReport),this._eventMap.forEach((i,e)=>E.on(e,i,this))}uninstallEvents(){this._eventMap.forEach((i,e)=>E.off(e,i,this)),this._eventMap.clear()}stop(){this._renderFreezeMap.clear(),this._dataFreezeMap.clear(),this._isVideoPlayingEventFiredMap.clear()}onVideoTrackMuted(i){if(!i.isSubscribed)return;let{userId:e,streamType:t}=i,r=`${e}_${t}`,o=this._dataFreezeMap.get(r),n=new Ls;o?o.durationItemList.push(n):this._dataFreezeMap.set(r,{userId:e,type:t,durationItemList:[n],isFreezing(){let a=this.durationItemList[this.durationItemList.length-1];return a&&a.endTime===0}})}onVideoTrackUnmuted(i){if(!i.isSubscribed)return;let{userId:e,streamType:t}=i,r=`${e}_${t}`;this.stopDataFreeze({key:r,userId:e,type:t})}onHearBeatReport({room:i,report:e}){this.hitTest(i)&&e.msg_down_stream_info.forEach(t=>{let r=this._room.remotePublishedUserMap.get(t.msg_user_info.str_identifier);if(!r)return;let{userId:o,muteState:n}=r;t.msg_video_status.forEach(a=>{a.uint32_video_stream_type===2&&n.hasVideo&&!n.videoMuted&&r.remoteVideoTrack.isSubscribed&&this.handleRenderFreeze({userId:o,fps:a.uint32_video_dec_fps,type:"main"}),a.uint32_video_stream_type===7&&n.hasAuxiliary&&r.remoteAuxiliaryTrack.isSubscribed&&this.handleRenderFreeze({userId:o,fps:a.uint32_video_dec_fps,type:"auxiliary"})})})}stopDataFreeze({key:i,userId:e,type:t}){let r=this._dataFreezeMap.get(i);if(!r||!r.isFreezing())return;let o=r.durationItemList[r.durationItemList.length-1];o.stop();let n=o.getDuration();n>_n?this._monitorFreezeData.set(i,{userId:e,type:t,duration:n}):r.durationItemList.pop()}getTotalDuration(i){return i.reduce((e,t)=>{let r=t.getDuration();return e+Math.min(r,5e3)},0)}handleRenderFreeze(r){return f(this,arguments,function*({userId:i,fps:e,type:t}){let o=`${i}_${t}`,n=this._renderFreezeMap.get(o);if(e<=2){let a=L();n&&!n.isFreeze&&(n.freezeTimeline.push({startTime:a,endTime:0}),n.isFreeze=!0),n||this._renderFreezeMap.set(o,{userId:i,type:t,isFreeze:!0,freezeTimeline:[{startTime:a,endTime:0}],renderFreezeTotal:0})}else if(n&&n.isFreeze){n.isFreeze=!1;let a=n.freezeTimeline.pop();if(a){a.endTime=L();let d=a.endTime-a.startTime;n.freezeTimeline.push(a),n.renderFreezeTotal+=Math.min(5e3,d)}}})}onPlayTrackStart({track:i}){if(!i.isRemote||!this.hitTest(i.room)||i.kind!==h.VIDEO||!i.isAvailable)return;let e=`${i.userId}_${i.streamType}`;this._isVideoPlayingEventFiredMap.has(e)||this._isVideoPlayingEventFiredMap.set(e,!1)}getDataFreezeDuration(i){let e={dataFreeze:0,count:0},t=this._dataFreezeMap.get(i);if(t){if(t.isFreezing()){let r=t.durationItemList[t.durationItemList.length-1];r.stop(),r.getDuration()<_n&&t.durationItemList.pop()}e.dataFreeze=this.getTotalDuration(t.durationItemList),e.count=t.durationItemList.length}return e}getRenderFreezeDuration(i){let e=this._renderFreezeMap.get(i),t=0,r=0;if(e)if(!e.isFreeze)t=e.renderFreezeTotal;else{let o=L(),n=e.freezeTimeline[e.freezeTimeline.length-1],a=o-n.startTime;t=e.renderFreezeTotal+Math.min(a,5e3),r=e.freezeTimeline.length}return{renderFreeze:t,count:r}}getMonitorFreeze(){return this._monitorFreezeData}isBlackStream(i){return this._isVideoPlayingEventFiredMap.has(i)?!this._isVideoPlayingEventFiredMap.get(i):!1}resetMonitor(){this._monitorFreezeData.clear()}hitTest(i){return i===this._room}destroy(){this.uninstallEvents()}},ip=du;var sp=ke(Ge(),1);var RT=[1,0,0,0,1,1,0,1],tc=class extends qe{constructor(i,e){if(super(i,{useDefaultProgram:!0,useFbo:!0,create2d:!0,name:"mirror",logger:e}),i instanceof De)try{this.setTexBuffer(RT)}catch(t){i.destroy(new b({code:S.VIDEO_MANAGER_ERROR,extraCode:3,message:`create video node ${this.name} error ${t.message||t}`}))}}draw2d(i,e,t,r,o){if(this.ctx2d){this.ctx2d.save(),this.ctx2d.scale(-1,1),this.ctx2d.translate(-this.width,0);let n=super.draw2d(i,e,t,r,o);return this.ctx2d.restore(),n}return!1}render(i){var e;return(e=this.input)!=null&&e.requestFrame(i)?(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0):!1}};var lu=class{constructor(i,e){this.node=i;this.layout=e;c(this,"positionBuffer")}get x(){return this.layout.x||this.node.x}get y(){return this.layout.y||this.node.y}get width(){return this.layout.width||this.node.width}get height(){return this.layout.height||this.node.height}get right(){return this.x+this.width}get bottom(){return this.y+this.height}},ic=class extends qe{constructor(e,t){super(e,{useDefaultProgram:!0,useFbo:!0,name:"mix",create2d:!0,logger:t});c(this,"inputs",[])}addInput(e,t){if(this.inputs[t.zIndex])throw new Error("input already exists");let r=new lu(e,t);this.inputs[t.zIndex]=r}resize(e,t){let r=this.inputs.reduce((o,n)=>n?Object.assign(o,{width:Math.max(o.width,n.right),height:Math.max(o.height,n.bottom)}):o,{width:0,height:0});super.resize(r.width,r.height),this.context instanceof De&&this.inputs.forEach(o=>{if(o){let n=this.layout2texCoords(o);o.positionBuffer?this.changeBufferData(o.positionBuffer,n):o.positionBuffer=this.createBuffer(n)}})}connect(e,...t){return super.connect(e,...t),this.resize(0,0),e}removeInput(e){this.inputs[this.inputs.findIndex(t=>(t==null?void 0:t.node)===e)]=void 0}render(e){let t=this.context.ctx;if(t.clearColor(0,0,0,0),!this.inputs.reduce((o,n)=>(!n||!n.node.requestFrame(e))&&o,!0)&&t){this.useProgram(),t.enable(t.BLEND),t.blendFunc(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA),this.useBufferFrame();for(let o=0;o<this.inputs.length;o++){let n=this.inputs[o];n&&(n.node.useTexture(),this.draw(n.positionBuffer))}return!0}return!1}render2d(e){if(!this.inputs.reduce((r,o)=>(!o||!o.node.requestFrame(e))&&r,!0)&&this.ctx2d){this.ctx2d.clearRect(0,0,this.width,this.height);for(let r=0;r<this.inputs.length;r++){let o=this.inputs[r];o&&this.draw2d(o.node.image,o.x,o.y,o.width,o.height)}return!0}return!1}getInfo(){let{totalFrames:e,x:t,y:r,width:o,height:n,name:a}=this,d=Date.now(),l=(e-this.lastInfo.totalFrames)/((d-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:t,y:r,width:o,height:n,timestamp:d,fps:l,name:a},v({parent:this.inputs.filter(m=>m).map(m=>m.node.getInfo())},this.lastInfo)}close(){super.close(),this.inputs.forEach(e=>{var t,r;if(e&&((t=e.node)==null||t.disconnect(),e.positionBuffer&&this.context instanceof De))try{(r=this.context.ctx)==null||r.deleteBuffer(e.positionBuffer)}catch(o){}})}};var yT=`#version 300 es
99
67
  in vec2 a_position;
100
68
  in vec2 a_texCoord;
101
69
  out vec2 v_texCoord;
102
70
  void main() {
103
71
  gl_Position = vec4(a_position.x, a_position.y, 0, 1);
104
72
  v_texCoord = a_texCoord;
105
- }`,dA=`#version 300 es
73
+ }`,bT=`#version 300 es
106
74
  precision highp float;
107
75
  uniform sampler2D u_texture;
108
76
  uniform sampler2D mask;
@@ -111,7 +79,7 @@ in vec2 v_texCoord;
111
79
  out vec4 outColor;
112
80
  void main() {
113
81
  outColor = vec4(texture(u_texture, v_texCoord).rgb, texture(mask, v_texCoord).a);
114
- }`,Yu=class extends Ci{constructor(e,r){super(e,r.input,{name:"vb",create2d:!1,useDefaultProgram:!1,useFbo:!1,createTexture:!0,logger:e.log});l(this,"_bgTexture");l(this,"_waterMarkTexture");l(this,"_lastMaskTexture");l(this,"_lastMaskFbo");l(this,"_textureValid",!1);l(this,"_selfieTextureValid",!1);l(this,"_selfieSegmentation");l(this,"wasm");l(this,"_prePrograme");l(this,"_segmentationMask");l(this,"_weixin",!1);r.selfieSegmentation&&(this._selfieSegmentation=r.selfieSegmentation,this._selfieSegmentation.onResults=this.onPredict.bind(this));try{this.init(r)}catch(o){e.log.error(o),e.destroy(new de({code:Y.VIDEO_MANAGER_ERROR,extraCode:6,message:`init vb node error ${o.message||o}`}))}}init(e){var s,a;let r=e.Wasm,o=this.context.ctx;if(this.wasm=new r.AllIn1(o),this.wasm.blurRadius=e.blurRadius||3,this.wasm.mirror=!!e.mirror,this.wasm.vbMode=e.bg==="blur"?1:e.bg instanceof HTMLImageElement?2:e.bg==="green"?3:0,e.waterMark){let{x:d,y:h,width:p,height:T}=e.waterMark;this.wasm.setWaterMark(d,h,p,T)}if(e.beautyParams){let{beauty:d,brightness:h,ruddy:p}=e.beautyParams;this.wasm.setBeauty(d,h,p,(s=this.context._canvas)==null?void 0:s.width,(a=this.context._canvas)==null?void 0:a.height)}if(this.program=this.wasm.init(),this.useProgram(),this.setAttributes(this.positionBuffer,this.texCoordBuffer),o.uniform1i(o.getUniformLocation(this.program,"mask"),1),e.bg instanceof HTMLImageElement&&(o.uniform1i(o.getUniformLocation(this.program,"bg"),2),this._bgTexture=this.createTexture(e.bg)),e.waterMark&&(o.uniform1i(o.getUniformLocation(this.program,"waterMark"),3),this._waterMarkTexture=this.createTexture(e.waterMark.image)),o.uniform1i(o.getUniformLocation(this.program,"lastMask"),4),this._weixin){let d=this.context.createShader(o.FRAGMENT_SHADER,dA),h=this.context.createShader(o.VERTEX_SHADER,cA);this._prePrograme=this.context.createProgram(h,d),o.useProgram(this._prePrograme),this.setAttributes(this.positionBuffer,this.texCoordBuffer),o.uniform1i(o.getUniformLocation(this._prePrograme,"mask"),1)}}onPredict(e){var o;let r=this.context.ctx;this._weixin&&(this._lastMaskTexture||(this._lastMaskTexture=this.createTexture(this.image),this._lastMaskFbo=this.createFramebuffer(this._lastMaskTexture))),this.useProgram(),this._weixin?this.useTexture():this==null||this._selfieSegmentation.bindTexture(),r.activeTexture(r.TEXTURE1),(o=this._selfieSegmentation)==null||o.bindTexture2d(e),r.activeTexture(r.TEXTURE2),r.bindTexture(r.TEXTURE_2D,this._bgTexture||null),r.activeTexture(r.TEXTURE3),r.bindTexture(r.TEXTURE_2D,this._waterMarkTexture||null),this.useBufferFrame(),r.drawArrays(r.TRIANGLE_STRIP,0,4),this._segmentationMask=e,this.totalFrames++}render(e){var h,p,T,y;let r=this.context.ctx,{image:o}=this;this.tryVideoFrameCallback(o);let{videoWidth:s,videoHeight:a}=o;o.width=s,o.height=a;let d=!1;if(this.totalFrames)this._weixin?this.useTexture():(h=this._selfieSegmentation)==null||h.bindTexture(),d=this._selfieTextureValid,this._selfieTextureValid=!0;else{if(this.program)this.useTexture();else return!1;d=this._textureValid,this._textureValid=!0}return this.width!==s||this.height!==a||!d?(this.resize(s,a),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,o)):r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,o),this._weixin&&(r.useProgram(this._prePrograme),this.useTexture(),this._segmentationMask&&(r.activeTexture(r.TEXTURE1),(p=this._selfieSegmentation)==null||p.bindTexture2d(this._segmentationMask),r.bindFramebuffer(r.FRAMEBUFFER,this._lastMaskFbo||null)),r.drawArrays(r.TRIANGLE_STRIP,0,4),(T=this._selfieSegmentation)==null||T.bindTexture(),this._segmentationMask?r.copyTexSubImage2D(r.TEXTURE_2D,0,0,0,0,0,s,a):r.copyTexImage2D(r.TEXTURE_2D,0,r.RGBA,0,0,s,a,0)),(y=this._selfieSegmentation)==null||y.send(s,a),this.totalFrames||(r.activeTexture(r.TEXTURE2),r.bindTexture(r.TEXTURE_2D,this._bgTexture||null),r.activeTexture(r.TEXTURE3),r.bindTexture(r.TEXTURE_2D,this._waterMarkTexture||null),r.drawArrays(r.TRIANGLE_STRIP,0,4)),!1}close(){var r;super.close();let e=this.context.ctx;this._bgTexture&&e.deleteTexture(this._bgTexture),this._waterMarkTexture&&e.deleteTexture(this._waterMarkTexture),this._lastMaskTexture&&e.deleteTexture(this._lastMaskTexture),this._lastMaskFbo&&e.deleteFramebuffer(this._lastMaskFbo),this._prePrograme&&e.deleteProgram(this._prePrograme),(r=this.wasm)==null||r.close()}};var Zu=class extends Ut{constructor(e){super(e,{name:"yuv-source",useDefaultProgram:!1,create2d:!1,useFbo:!1,createTexture:!1,logger:e.log,fragmentShaderSource:`
82
+ }`,rc=class extends Li{constructor(e,t){super(e,t.input,{name:"vb",create2d:!1,useDefaultProgram:!1,useFbo:!1,createTexture:!0,logger:e.log});c(this,"_bgTexture");c(this,"_waterMarkTexture");c(this,"_lastMaskTexture");c(this,"_lastMaskFbo");c(this,"_textureValid",!1);c(this,"_selfieTextureValid",!1);c(this,"_selfieSegmentation");c(this,"wasm");c(this,"_prePrograme");c(this,"_segmentationMask");c(this,"_weixin",!1);t.selfieSegmentation&&(this._selfieSegmentation=t.selfieSegmentation,this._selfieSegmentation.onResults=this.onPredict.bind(this));try{this.init(t)}catch(r){e.log.error(r),e.destroy(new b({code:S.VIDEO_MANAGER_ERROR,extraCode:6,message:`init vb node error ${r.message||r}`}))}}init(e){var o,n;let t=e.Wasm,r=this.context.ctx;if(this.wasm=new t.AllIn1(r),this.wasm.blurRadius=e.blurRadius||3,this.wasm.mirror=!!e.mirror,this.wasm.vbMode=e.bg==="blur"?1:e.bg instanceof HTMLImageElement?2:e.bg==="green"?3:0,e.waterMark){let{x:a,y:d,width:l,height:m}=e.waterMark;this.wasm.setWaterMark(a,d,l,m)}if(e.beautyParams){let{beauty:a,brightness:d,ruddy:l}=e.beautyParams;this.wasm.setBeauty(a,d,l,(o=this.context._canvas)==null?void 0:o.width,(n=this.context._canvas)==null?void 0:n.height)}if(this.program=this.wasm.init(),this.useProgram(),this.setAttributes(this.positionBuffer,this.texCoordBuffer),r.uniform1i(r.getUniformLocation(this.program,"mask"),1),e.bg instanceof HTMLImageElement&&(r.uniform1i(r.getUniformLocation(this.program,"bg"),2),this._bgTexture=this.createTexture(e.bg)),e.waterMark&&(r.uniform1i(r.getUniformLocation(this.program,"waterMark"),3),this._waterMarkTexture=this.createTexture(e.waterMark.image)),r.uniform1i(r.getUniformLocation(this.program,"lastMask"),4),this._weixin){let a=this.context.createShader(r.FRAGMENT_SHADER,bT),d=this.context.createShader(r.VERTEX_SHADER,yT);this._prePrograme=this.context.createProgram(d,a),r.useProgram(this._prePrograme),this.setAttributes(this.positionBuffer,this.texCoordBuffer),r.uniform1i(r.getUniformLocation(this._prePrograme,"mask"),1)}}onPredict(e){var r;let t=this.context.ctx;this._weixin&&(this._lastMaskTexture||(this._lastMaskTexture=this.createTexture(this.image),this._lastMaskFbo=this.createFramebuffer(this._lastMaskTexture))),this.useProgram(),this._weixin?this.useTexture():this==null||this._selfieSegmentation.bindTexture(),t.activeTexture(t.TEXTURE1),(r=this._selfieSegmentation)==null||r.bindTexture2d(e),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,this._bgTexture||null),t.activeTexture(t.TEXTURE3),t.bindTexture(t.TEXTURE_2D,this._waterMarkTexture||null),this.useBufferFrame(),t.drawArrays(t.TRIANGLE_STRIP,0,4),this._segmentationMask=e,this.totalFrames++}render(e){var d,l,m,u;let t=this.context.ctx,{image:r}=this;this.tryVideoFrameCallback(r);let{videoWidth:o,videoHeight:n}=r;r.width=o,r.height=n;let a=!1;if(this.totalFrames)this._weixin?this.useTexture():(d=this._selfieSegmentation)==null||d.bindTexture(),a=this._selfieTextureValid,this._selfieTextureValid=!0;else{if(this.program)this.useTexture();else return!1;a=this._textureValid,this._textureValid=!0}return this.width!==o||this.height!==n||!a?(this.resize(o,n),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,r)):t.texSubImage2D(t.TEXTURE_2D,0,0,0,t.RGBA,t.UNSIGNED_BYTE,r),this._weixin&&(t.useProgram(this._prePrograme),this.useTexture(),this._segmentationMask&&(t.activeTexture(t.TEXTURE1),(l=this._selfieSegmentation)==null||l.bindTexture2d(this._segmentationMask),t.bindFramebuffer(t.FRAMEBUFFER,this._lastMaskFbo||null)),t.drawArrays(t.TRIANGLE_STRIP,0,4),(m=this._selfieSegmentation)==null||m.bindTexture(),this._segmentationMask?t.copyTexSubImage2D(t.TEXTURE_2D,0,0,0,0,0,o,n):t.copyTexImage2D(t.TEXTURE_2D,0,t.RGBA,0,0,o,n,0)),(u=this._selfieSegmentation)==null||u.send(o,n),this.totalFrames||(t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,this._bgTexture||null),t.activeTexture(t.TEXTURE3),t.bindTexture(t.TEXTURE_2D,this._waterMarkTexture||null),t.drawArrays(t.TRIANGLE_STRIP,0,4)),!1}close(){var t;super.close();let e=this.context.ctx;this._bgTexture&&e.deleteTexture(this._bgTexture),this._waterMarkTexture&&e.deleteTexture(this._waterMarkTexture),this._lastMaskTexture&&e.deleteTexture(this._lastMaskTexture),this._lastMaskFbo&&e.deleteFramebuffer(this._lastMaskFbo),this._prePrograme&&e.deleteProgram(this._prePrograme),(t=this.wasm)==null||t.close()}};var sc=class extends qe{constructor(e){super(e,{name:"yuv-source",useDefaultProgram:!1,create2d:!1,useFbo:!1,createTexture:!1,logger:e.log,fragmentShaderSource:`
115
83
  precision highp float;
116
84
  uniform sampler2D ySampler;
117
85
  uniform sampler2D uSampler;
@@ -136,4 +104,13 @@ void main() {
136
104
  void main() {
137
105
  gl_Position = vertexPos;
138
106
  textureCoord = texturePos;
139
- }`});l(this,"yTextureRef");l(this,"uTextureRef");l(this,"vTextureRef");l(this,"Y");l(this,"U");l(this,"V");this.useProgram();let r=this.context.ctx;r.pixelStorei(r.PACK_ALIGNMENT,1),r.pixelStorei(r.UNPACK_ALIGNMENT,1),this.setTexBuffer([0,1,1,1,0,0,1,0]),this.yTextureRef=this._initTexture("ySampler",0),this.uTextureRef=this._initTexture("uSampler",1),this.vTextureRef=this._initTexture("vSampler",2),this._canvas=e._canvas}_initTexture(e,r){let o=this.context.ctx,s=o.createTexture();return o.bindTexture(o.TEXTURE_2D,s),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.bindTexture(o.TEXTURE_2D,null),o.uniform1i(o.getUniformLocation(this.program,e),r),s}render(e){let r=this.context.ctx,o=this.width,s=this.height;return this.useProgram(),r.viewport(0,0,o,s),r.activeTexture(r.TEXTURE0),r.bindTexture(r.TEXTURE_2D,this.yTextureRef),r.texSubImage2D(r.TEXTURE_2D,0,0,0,o,s,r.LUMINANCE,r.UNSIGNED_BYTE,this.Y),r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,this.uTextureRef),r.texSubImage2D(r.TEXTURE_2D,0,0,0,o/2,s/2,r.LUMINANCE,r.UNSIGNED_BYTE,this.U),r.activeTexture(r.TEXTURE2),r.bindTexture(r.TEXTURE_2D,this.vTextureRef),r.texSubImage2D(r.TEXTURE_2D,0,0,0,o/2,s/2,r.LUMINANCE,r.UNSIGNED_BYTE,this.V),this.draw(),!0}resize(e,r){super.resize(e,r);let o=this.context.ctx;o.activeTexture(o.TEXTURE0),o.bindTexture(o.TEXTURE_2D,this.yTextureRef),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,e,r,0,o.LUMINANCE,o.UNSIGNED_BYTE,null),o.activeTexture(o.TEXTURE1),o.bindTexture(o.TEXTURE_2D,this.uTextureRef),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,e/2,r/2,0,o.LUMINANCE,o.UNSIGNED_BYTE,null),o.activeTexture(o.TEXTURE2),o.bindTexture(o.TEXTURE_2D,this.vTextureRef),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,e/2,r/2,0,o.LUMINANCE,o.UNSIGNED_BYTE,null)}};var yf=[i=>{i.codec="avc1.420028"},i=>{delete i.hardwareAcceleration}],xE=(i,t)=>{switch(i){case"webCodecs":return t==="videoFrame"?514705:514706;case"wasm":return t==="webgl"?514707:t==="videoFrame"?514708:514709}throw new Error("decoder type not supported")},Ku=class{constructor(t){l(this,"trackDoneOB");l(this,"startOB");l(this,"stopOB");l(this,"decoder");l(this,"videoContext");l(this,"gop",0);l(this,"gop_helper",0);l(this,"waitFirstKeyFrame",!0);l(this,"startTimestamp",0);l(this,"startTime",0);l(this,"inputFrameCount",0);l(this,"decodedFrameCount",0);l(this,"downgradeLevel",0);l(this,"config");l(this,"videoElement");l(this,"type","wasm");l(this,"renderer","2d");l(this,"wasmOption");l(this,"createDecoder");l(this,"_decodeSink");let{track:e,createDecoder:r}=t;if(this.createDecoder=r,this.wasmOption={yuvMode:t.renderer==="webgl",wasmPath:t.wasmPath,workerMode:t.workerMode,canvas:t.canvas},this.config=t.config,this.videoElement=t.videoElement,this.renderer=t.renderer,this.trackDoneOB=Je(e,Z.INIT),this.stopOB=zt(this.trackDoneOB),t.type==="auto"){switch(t.fallback){case"wasm":this.type="wasm",this.renderer="webgl";break;case"wasm_2d":this.type="wasm",this.renderer="2d";break;case"wasm_video":this.type="wasm",this.renderer="videoFrame";break;default:this.type="webCodecs"}this.wasmOption.yuvMode=this.renderer==="webgl"}else this.type=t.type;this.changeRenderer(this.renderer),this.startOB=zt();let o=zt(),s;We(o,ih((d,h)=>(d!==h&&e.onDecodeDowngradeStateChanged({type:this.type,renderer:this.renderer,reason:s,prevState:d,state:h}),h),"INITIALIZED"),gt(this.stopOB),dt());let a=d=>{let h=this.pipe(e);return o.next("STARTING"),e.log.info(`decoder type: ${this.type} renderer: ${this.renderer}`),We(h,gt(this.stopOB),dt(()=>{e.stat.framesDecoded++},p=>{if(e.log.error(p),X.addFailedEvent({key:xE(this.type,this.renderer),error:p}),d>4)this.startOB.error(p);else{switch(this.type){case"webCodecs":this.type="wasm",this.changeRenderer("webgl");break;case"wasm":switch(this.renderer){case"webgl":this.changeRenderer("videoFrame");break}}this.startOB.next(d+1)}})),We(h,xr(1),qa(Ho))};We(this.startOB,$o(0),Qi(a),gt(this.stopOB),dt(()=>{e.player.handlePlaying("canvas"),o.next("STARTED")},d=>{s=d,o.next("FAILED")},()=>{X.addSuccessEvent({key:xE(this.type,this.renderer)}),X.addSuccessEvent({key:514704})}))}mock(t){this._decodeSink?this._decodeSink.error(t):this.startOB.next(0)}close(t){this.stopOB.next(t)}changeRenderer(t){this.renderer=t,this.renderer==="videoFrame"&&!rm()&&(this.renderer="2d"),this.wasmOption.yuvMode=this.renderer==="webgl"}decode(t){var s;if(this.inputFrameCount++,((s=this.decoder)==null?void 0:s.state)!=="configured")return t;let e=new Uint8Array(t.data)[4]&31,r=!1;switch(e){case 5:case 7:r=!0;break}let{timestamp:o}=t;if(r?(this.gop=this.gop_helper,this.gop_helper=0):this.gop_helper++,this.decoder){if(this.waitFirstKeyFrame)if(r)this.waitFirstKeyFrame=!1,this.startTimestamp=o,this.startTime=Date.now();else return;let a=(o-this.startTimestamp)/90,h=Date.now()-this.startTime-a,p=h<500?0:h/1e3>>0;switch(r&&(p>0?this.downgradeLevel++:this.downgradeLevel>3&&this.downgradeLevel--),this.downgradeLevel){case 0:break;case 1:break;case 2:if(this.gop_helper>this.gop>>1)return;break;case 3:if(this.gop_helper>0)return;break;default:return}this.decoder.decode(t);return}return t}pipe(t){return Ri()(e=>v(this,null,function*(){this._decodeSink=e,e.defer(()=>{var s,a;(s=this.decoder)==null||s.close(),(a=this.videoContext)==null||a.destroy(),delete this._decodeSink});let{renderer:r,type:o}=this;try{switch(o){case"wasm":this.decoder=this.createDecoder(o,this.wasmOption);break;case"webCodecs":for(let s=0;s<=yf.length;s++){let{supported:a}=yield VideoDecoder.isConfigSupported(this.config);if(a)break;if(s===yf.length){e.error(3);return}yf[s](this.config)}this.decoder=this.createDecoder(o);break;case"mse":throw new Error("not supported yet")}if(this.decoder.on("videoFrame",s=>{this.decodedFrameCount++,e.next(s)}),this.decoder.on("error",s=>{t.log.error(s),e.error(o==="webCodecs"?4:8)}),yield this.decoder.initialize(this.videoElement),this.decoder.configure(this.config),o==="wasm"&&r==="webgl"){this.videoContext=new st({frameRate:15,logger:t.log,name:t.userId}),this.videoContext.create(),this.videoContext.on(st.UNAVAILABLE,a=>{t.log.error(a),e.error(7)});let s=new Zu(this.videoContext);this.decoder.on("videoCodecInfo",a=>s.resize(a.width,a.height)),this.decoder.on("videoFrame",a=>{[s.Y,s.U,s.V]=a,this.downgradeLevel===1?this.decodedFrameCount%2===0&&s.render(this.decodedFrameCount):s.render(this.decodedFrameCount)}),t.source=s,t.player.setCanvas(this.videoContext._canvas,2)}else if(r==="videoFrame"){t.player.setCanvas();let s=new MediaStreamTrackGenerator({kind:"video"}),a=s.writable.getWriter();t.setInputMediaStreamTrack(s),this.decoder.on("videoFrame",d=>{a.write(d)}),s.onmute=()=>{e.error(o==="webCodecs"?5:9)},e.defer(()=>s.onmute=null)}else{this.videoContext=new Rt({frameRate:15,logger:t.log,name:t.userId}),this.videoContext.create({alpha:!1});let s=this.videoContext.createVideoImageSource();this.decoder.on("videoFrame",d=>{s.image=d,s.update()});let a=new jo(this.videoContext,{name:"remotePlayer",logger:t.log});s.connect(a),t.source=s,t.player.setCanvas(this.videoContext._canvas,2)}}catch(s){t.log.error(s),e.error(o==="webCodecs"?2:6)}}))}};var el=class extends ME.EventEmitter{constructor(e){super();this.room=e;l(this,"videoContext");l(this,"_glVideoContext");l(this,"_2dVideoContext");l(this,"destination");l(this,"smallVideoContext");l(this,"smallDestination");l(this,"smallTrackSource");l(this,"smallImageSource");l(this,"_isMirror",!1);l(this,"cameraTrack");l(this,"cameraNode");l(this,"mirrorNode");l(this,"mixNode");l(this,"screenTrack");l(this,"screenNode");l(this,"selfModel",!1);l(this,"blurRadius",3);l(this,"arTrack");l(this,"Wasm");l(this,"waterMarkNode");l(this,"_waterMarkOption");l(this,"watermarkImageList",[]);l(this,"_beautyParams");l(this,"isUsingArTrack",!1);l(this,"_isMixScreen",!1);l(this,"_virtualBackground");l(this,"_virtualBackgroundAbortCallback");l(this,"virtualBackgroundInstance");l(this,"_bgAssetPath");l(this,"log",V.createLogger({id:"vm"}));l(this,"_checkId",0);l(this,"_use2d",!1);l(this,"_autoSwitchRenderMode",!0);l(this,"_selfieSegmentation");l(this,"encodePipeline",[]);l(this,"decodePipeline",[]);e&&(this.log.setUserId(e.userId),this.log.setSdkAppId(e.sdkAppId)),this.smallVideoContext=new Rt({frameRate:15,logger:this.log,name:"s"}),this.enablePrintDetail()}get _hasVirtualBg(){return!!this._virtualBackground}get _hasWaterMark(){return this.watermarkImageList.length>0}get renderMode(){return this._autoSwitchRenderMode?"auto":this._use2d?"2d":"webgl"}set renderMode(e){if(this._autoSwitchRenderMode=e==="auto",this._autoSwitchRenderMode)return;let r=e==="2d";this._use2d!==r&&(this._use2d=r,this.clear(),this.videoContext=this._use2d?this.get2dVideoContext():this.getGlVideoContext(),this.update())}get2dVideoContext(){return this._2dVideoContext?this._2dVideoContext.destroy():this._2dVideoContext=new Rt({frameRate:15,logger:this.log,name:"m"}),this._2dVideoContext.create({alpha:this._hasWaterMark||this._hasVirtualBg}),this._2dVideoContext}getGlVideoContext(){if(!this._glVideoContext)this._glVideoContext=new st({frameRate:15,logger:this.log,name:"m"});else if(this._glVideoContext.available)return this._glVideoContext;return this.initializeGlVideoContext(),this._glVideoContext}initializeGlVideoContext(){try{this._glVideoContext.create(),this._glVideoContext.on("unavailable",e=>{var r;this.emit("error",e),this.log.warn("video context unavailable",e),(r=this._virtualBackgroundAbortCallback)==null||r.call(this,e),this.update()})}catch(e){this.emit("error",e)}}enablePrintDetail(e=2e3){this._checkId=Et.run(To,()=>{this.destination&&this.log.debug(this.destination.getInfo())},{delay:e})}destroy(){var e,r;(e=this._2dVideoContext)==null||e.destroy(),(r=this._glVideoContext)==null||r.destroy(),this.smallVideoContext.destroy(),Et.clearTask(this._checkId)}get needAlpha(){return this._hasWaterMark||this._hasVirtualBg}get active(){return(Bi||this._isMixScreen||this._isMirror||this._hasWaterMark||this._hasVirtualBg||this._beautyParams)&&this.checkOrCreateVideoContext()}sendCreateResult(e="videoCtxGl",r){let o=e==="videoCtxGl"?512700:512701;r?X.addFailedEvent({key:o,error:r}):X.addSuccessEvent({key:o})}checkOrCreateVideoContext(){let e=this._use2d;if(this._autoSwitchRenderMode&&(this._use2d=!this._hasVirtualBg),this.videoContext)if(this.videoContext.available){let r=!this.videoContext.hasAlpha&&this.needAlpha;if(this._autoSwitchRenderMode&&e===this._hasVirtualBg)this.clear();else if(r)if(this._use2d)this.clear();else return!0;else return!0}else{if(this._glVideoContext=new st({frameRate:15,logger:this.log,name:"m"}),this.initializeGlVideoContext(),this._glVideoContext.available)return this.videoContext=this._glVideoContext,this.videoContext.available;this.log.warn("webgl is still not available"),this.clear(),this._use2d=!0}return this.videoContext=this._use2d?this.get2dVideoContext():this.getGlVideoContext(),this.videoContext.available}get smallTrack(){var e;return(e=this.smallDestination)==null?void 0:e.videoTrack}get hasSmall(){return!!this.smallTrack}get initialTrack(){var e;return(e=this.cameraTrack)==null?void 0:e.mediaTrack}initVirtualBackground(e){return this._selfieSegmentation=e,this._selfieSegmentation.changeModel()}_setMainOutput(e){var r;try{let o=this.cameraTrack,{small:s,settings:a,player:d}=o;s?(this.smallVideoContext.available||(this.smallVideoContext.create({alpha:!1}),this.smallDestination=new Su(this.smallVideoContext,s,this.log)),this.smallVideoContext.frameRate=s.frameRate,this.smallDestination.resolution=s,e?(this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource),this.smallImageSource?this.smallImageSource.image=e:(this.smallImageSource=this.smallVideoContext.createVideoImageSource(e),this.smallImageSource.connect(this.smallDestination))):(this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource?this.smallTrackSource.replaceTrack(this.initialTrack):(this.smallTrackSource=this.smallVideoContext.createVideoTrackSource(this.initialTrack,"smallTrackSource"),this.smallTrackSource.width=a.width,this.smallTrackSource.height=a.height,this.smallTrackSource.connect(this.smallDestination)))):this.smallVideoContext.available&&(this.smallVideoContext.destroy(),delete this.smallDestination,delete this.smallTrackSource,delete this.smallImageSource),Bi&&d.setCanvas(e);let h=e&&((r=this.destination)==null?void 0:r.videoTrack)||this.initialTrack;return this.isUsingArTrack&&this.arTrack&&(this.emit("output-track-changed"),h=this.arTrack),this._selfieSegmentation&&e&&!this._use2d&&(this._selfieSegmentation._glName||this._selfieSegmentation.setCanvas(e)),this.log.info(`set main output ${h?h.label:"no output track"}`),o.setOutputMediaStreamTrack(h)}catch(o){this.log.error("set main output failed",o)}}update(){return v(this,null,function*(){var o,s;if(!this.cameraTrack||!this.cameraTrack.mediaTrack)return;if(!this.active)return this.cameraNode&&this.clear(),this._setMainOutput();let{settings:e,profile:r}=this.cameraTrack;if(this._use2d||!this._virtualBackground&&!this._beautyParams?(this.destination||(this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log})),rr===16?this.initialTrack instanceof CanvasCaptureMediaStreamTrack?(this.cameraNode&&(this.cameraNode instanceof Ci?(this.cameraNode.close(),delete this.cameraNode):this.cameraNode.image=this.initialTrack.canvas),this.cameraNode||(this.cameraNode=this.videoContext.createVideoImageSource(this.initialTrack.canvas,{name:"cameraCanvasSource",logger:this.log}))):(this.cameraNode&&(this.cameraNode instanceof Ci?this.cameraNode.replaceTrack(this.initialTrack):(this.cameraNode.close(),delete this.cameraNode)),this.cameraNode||(this.cameraNode=this.videoContext.createVideoTrackSource(this.initialTrack,"cameraTrackSource"))):this.cameraNode?this.cameraNode.replaceTrack(this.initialTrack):this.cameraNode=this.videoContext.createVideoTrackSource(this.initialTrack,"cameraNodeSource"),this.cameraNode.resize(e.width,e.height)):(this.cameraNode&&this.cameraNode.close(),this.destination?this.destination.disableCheckMute():this.destination=new Iu(this.videoContext,{name:"mainDestination",logger:this.log}),this.cameraNode=new Yu(this.videoContext,{input:this.cameraTrack.mediaTrack,mirror:this._isMirror,bg:this._virtualBackground,selfModel:this.selfModel,waterMark:this._waterMarkOption,beautyParams:this._beautyParams,useTflite:!0,blurRadius:this.blurRadius,assetPath:this._bgAssetPath,selfieSegmentation:this._selfieSegmentation,Wasm:this.Wasm}),this.cameraNode.connect(this.destination),this.destination.enableCheckMute()),this.videoContext.frameRate=r.frameRate,this._use2d){let a=this.cameraNode;a.disconnect(),this._isMirror&&(this.mirrorNode||(this.mirrorNode=new Xu(this.videoContext,this.log)),a=a.connect(this.mirrorNode),a.disconnect(),this.log.info("start mirror")),this.mixNode&&this.mixNode.close(),delete this.mixNode,(this._isMixScreen||this._hasWaterMark)&&(this.mixNode=new Qu(this.videoContext,this.log),a.connect(this.mixNode,{zIndex:1}),this._hasWaterMark&&!this.waterMarkNode&&this._waterMarkOption&&(this.waterMarkNode=this.videoContext.createVideoImageSource(this._waterMarkOption.image,{autoResize:!1,logger:this.log}),this.waterMarkNode.resize(this._waterMarkOption.width,this._waterMarkOption.height),this.waterMarkNode.x=this._waterMarkOption.x,this.waterMarkNode.y=this._waterMarkOption.y),(o=this.waterMarkNode)==null||o.connect(this.mixNode,{zIndex:2}),this._isMixScreen&&this.screenTrack&&!this.screenNode&&(this.screenNode=this.videoContext.createVideoTrackSource(this.screenTrack.mediaTrack,"screenNodeSource")),(s=this.screenNode)==null||s.connect(this.mixNode,{zIndex:0}),a=this.mixNode,this.log.info("start mix",`${this.mixNode.width}x${this.mixNode.height}`)),a.connect(this.destination)}return this.log.info(`update ${this._use2d?"2d":"webgl"}`),this._setMainOutput(this.videoContext._canvas)})}changeInput(e){var r,o,s,a;if(e instanceof Ji)return this.log.info("change screen input",(r=e.mediaTrack)==null?void 0:r.label),this.setScreenTrack(e);if(e instanceof hr)return this.log.info("change video input",(o=e.mediaTrack)==null?void 0:o.label),this.setCameraTrack(e);if(e instanceof Yi){this.log.info("change remote input",(s=e.mediaTrack)==null?void 0:s.label);let d=e.mediaTrack;return e.setOutputMediaStreamTrack(d)}this.log.warn("change unknown input",(a=e.mediaTrack)==null?void 0:a.label)}removeInput(e){var r;e instanceof Ji?((r=this.screenNode)==null||r.close(),delete this.screenNode,delete this.screenTrack,this.update()):e instanceof hr?(this.clear(),delete this.cameraTrack,this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource)):e instanceof Yi&&e.source&&e.source.context.destroy()}setCameraTrack(e){return v(this,null,function*(){this.cameraTrack=e,this.update()})}setScreenTrack(e){return this.screenTrack=e,this._isMixScreen&&(this.screenNode?this.screenNode.replaceTrack(e.mediaTrack):this.update()),e.setOutputMediaStreamTrack(e.mediaTrack)}getWatermarkImage(e,r){return v(this,null,function*(){let o=document.createElement("canvas");r&&e&&(o.height=r,o.width=e);let s=o.getContext("2d");if(!s)throw new de({code:Y.NOT_SUPPORTED,message:"Make image failed because of canvas context is null"});return this.watermarkImageList.sort((a,d)=>a.zIndex-d.zIndex),this.watermarkImageList.forEach(({image:a,x:d,y:h,width:p,height:T})=>{s.drawImage(a,d,h,p,T)}),As(o.toDataURL())})}pushWaterMarkImageList(e){let{type:r}=e;this.watermarkImageList.some(s=>s.imageUrl===e.imageUrl&&s.height===e.height&&s.width===e.width&&s.x===e.x&&s.y===e.y&&s.type===e.type&&s.zIndex===e.zIndex)||((r==="mute"||r==="watermark")&&(this.watermarkImageList=this.watermarkImageList.filter(s=>s.type!==r)),this.watermarkImageList.push(e))}setBeautyParams(e){return v(this,null,function*(){this._beautyParams=e,this.update()})}stopBeauty(){return v(this,null,function*(){this._beautyParams=void 0,this.update()})}setWatermark(e){return v(this,null,function*(){var y,R;let r;try{r=yield As((e==null?void 0:e.imageElement)||e.imageUrl)}catch(N){throw new de({code:Y.INVALID_PARAMETER,message:`load image failed, url: ${e.imageUrl}`})}let{x:o=0,y:s=0,width:a=r.width,height:d=r.height,type:h="watermark",zIndex:p=2}=e;this.watermarkImageList.some(N=>N.type===h)?(this.watermarkImageList=this.watermarkImageList.filter(N=>N.type!==h),this.pushWaterMarkImageList({x:o,y:s,width:a,height:d,image:r,zIndex:p,type:h,imageUrl:e.imageUrl}),r=yield this.getWatermarkImage((y=this.cameraTrack)==null?void 0:y.settings.width,(R=this.cameraTrack)==null?void 0:R.settings.height),this._waterMarkOption={x:0,y:0,width:r.width,height:r.height,image:r},this.waterMarkNode?(this.waterMarkNode.x=0,this.waterMarkNode.y=0,this.waterMarkNode.resize(r.width,r.height),this.waterMarkNode.image=r):this.update()):(this.pushWaterMarkImageList({x:o,y:s,width:a,height:d,image:r,zIndex:p,type:h,imageUrl:e.imageUrl}),yield this.freshWatermark()),this.log.info("set watermark",JSON.stringify(this.watermarkImageList,(N,j)=>N==="imageUrl"?void 0:j))})}deleteWatermark(e="watermark"){return v(this,null,function*(){this.watermarkImageList=this.watermarkImageList.filter(r=>r.type!==e),this.log.info("delete watermark",e,JSON.stringify(this.watermarkImageList,(r,o)=>r==="imageUrl"?void 0:o)),yield this.freshWatermark()})}freshWatermark(){return v(this,null,function*(){var r,o,s;(r=this.waterMarkNode)==null||r.close(),delete this.waterMarkNode,delete this._waterMarkOption;let e=yield this.getWatermarkImage((o=this.cameraTrack)==null?void 0:o.settings.width,(s=this.cameraTrack)==null?void 0:s.settings.height);this._waterMarkOption={x:0,y:0,width:e.width,height:e.height,image:e},this.update()})}setVirtualBackground(e){return v(this,null,function*(){if(!e)delete this._virtualBackground,delete this._virtualBackgroundAbortCallback;else{if(e.onAbort&&(this._virtualBackgroundAbortCallback=e.onAbort),this._use2d&&!this._autoSwitchRenderMode)return Promise.reject(new Error("not support virtual background in 2d mode"));this._bgAssetPath=e.assetPath,e.type==="image"?this._virtualBackground=yield As(e.imageUrl):(this.blurRadius=e.blurLevel||this.blurRadius||3,this._virtualBackground=e.type)}if(this.log.info(`${this._virtualBackground?"start":"stop"} virtual background, ${(e==null?void 0:e.type)||""}, ${this.blurRadius||""}`),yield this.update(),this._virtualBackground&&!this._glVideoContext.available)throw new de({code:Y.INVALID_OPERATION,message:`webgl context create failed, ${this._glVideoContext.error}`})})}get mixScreen(){return this._isMixScreen}set mixScreen(e){var r;this._isMixScreen=e,this._isMixScreen||((r=this.screenNode)==null||r.close(),delete this.screenNode),this.update()}set mirror(e){var r;this._isMirror!==e&&(this._isMirror=e,this._isMirror||((r=this.mirrorNode)==null||r.close(),delete this.mirrorNode),this.update())}get mirror(){return this._isMirror}enableAr(e){this.arTrack=e,this.isUsingArTrack=!0,this.update()}updateAr(){return v(this,null,function*(){var e;!((e=this.cameraTrack)!=null&&e.mediaTrack)||(yield this.virtualBackgroundInstance.ar.updateInputTrack(this.cameraTrack.mediaTrack.clone()))})}disableAr(){var e;this.isUsingArTrack=!1,(e=this.arTrack)==null||e.stop(),this.arTrack=void 0,this.update()}createDecodeContext(e){return new Ku(e)}clear(){var e;(e=this.videoContext)==null||e.disconnect(),delete this.destination,delete this.cameraNode,delete this.mirrorNode,delete this.screenNode,delete this.waterMarkNode}addEncodeProcessor({processor:e,type:r}){var o;this.encodePipeline.includes(e)||(this.encodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}addDecodeProcessor({processor:e,type:r}){var o;this.decodePipeline.includes(e)||(this.decodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}removeEncodeProcessor({type:e}){this.encodePipeline[e]=void 0}removeDecodeProcessor({type:e}){this.decodePipeline[e]=void 0}};var uA=0;var tl=class extends Z{constructor(e){super("room");this.seq=++uA;this.role="anchor";this.joinParams=null;this.localTracks=new Set;this.enableAutoPlayDialog=!0;this.autoReceiveAudio=!0;this.autoReceiveVideo=!0;this.checkSystemResult={result:!0,detail:{isBrowserSupported:!0,isWebRTCSupported:!0,isWebCodecsSupported:!0,isMediaDevicesSupported:!0,isScreenShareSupported:!0,isSmallStreamSupported:!0,isH264EncodeSupported:!0,isVp8EncodeSupported:!0,isH264DecodeSupported:!0,isVp8DecodeSupported:!0}};this.scheduleResult={domains:null,iceServers:null,iceTransportPolicy:null,trtcAutoConf:null};this._isUsingCachedSchedule=!1;this._log=V.createLogger({id:`r${this.seq}`});this._joinedTimestamp=0;this.isDestroyed=!1;this.useStringRoomId=!!e.useStringRoomId,nt(e.autoReceiveAudio)&&(this.autoReceiveAudio=e.autoReceiveAudio),nt(e.autoReceiveVideo)&&(this.autoReceiveVideo=e.autoReceiveVideo),nt(e.enableAutoPlayDialog)&&(this.enableAutoPlayDialog=e.enableAutoPlayDialog),this._sdkType=e.sdkType,this.keyPointManager=new DE({room:this,frameWorkType:e.frameWorkType,component:e.component,language:e.language}),this.callDurationCalculator=new NE({room:this}),this.badCaseDetector=new wE({room:this}),this.audioManager=new ou(this),this.videoManager=new el(this)}get scriptTransformWorker(){}get isMainStreamPublished(){for(let e of this.localTracks)if(e.mediaType&4)return!0;return!1}get isAuxStreamPublished(){for(let e of this.localTracks)if(e.mediaType&2)return!0;return!1}get hasAuxStream(){for(let e of this.remotePublishedUserMap.values())if(e.muteState.hasAuxiliary)return!0;return this.isAuxStreamPublished}get localMainVideoTrack(){for(let e of this.localTracks)if(e.mediaType&4)return e;return null}get localAuxVideoTrack(){for(let e of this.localTracks)if(e.mediaType&2)return e;return null}getLogger(){return this._log}get isJoining(){return this.state.toString()==="joining"}get isJoined(){return this.state==="joined"}get isLeft(){return this.state==="left"}addTrack(e){return v(this,null,function*(){return this.publish(e)})}removeTrack(e){return v(this,null,function*(){return this.unpublish(e)})}replaceTrack(e){return v(this,null,function*(){})}setEncodedDataProcessingListener(e){throw new Error("Method not implemented.")}enableAIVoice(e){throw new Error("Method not implemented.")}setProxyServer(e){if(Ae(e))e.startsWith("wss://")?this.proxy_ws=e:e.startsWith("https://")&&(this.proxy_wt=e);else if(Ft(e)){let{websocketProxy:r,webtransportProxy:o,loggerProxy:s,scheduleProxy:a,unifiedProxy:d}=e;this.proxy_ws=r,this.proxy_wt=o,this.proxy_unified=d,d?(Uu([d,d]),_o(`https://${d}`)):(s&&_o(s),a&&Uu(a))}B.once(O.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({sched_domain:Pr.main,sched_back_domain:Pr.backup,signal_domain:this.proxy_ws||this.proxy_wt||""}))}getRemoteAudioStats(){return v(this,null,function*(){let e={};return this.remotePublishedUserMap.forEach(r=>{e[r.userId]=r.remoteAudioTrack.stat}),e})}getTransportStats(){return v(this,null,function*(){var r;let e={rtt:((r=this.quality)==null?void 0:r.uplinkRTT)||0,downlinksRTT:{}};if(this.quality)for(let o of this.quality.downlinkInfo)e.downlinksRTT[o.userId]=o.rtt;return e})}getRemoteVideoStats(){return v(this,arguments,function*(e="main"){let r={};return this.remotePublishedUserMap.forEach(o=>{let s=e==="auxiliary"?o.remoteAuxiliaryTrack:o.remoteVideoTrack;r[o.userId]=s.stat}),r})}checkDestroy(){if(this.isDestroyed)throw new de({code:Y.INVALID_OPERATION,message:ot({key:it.CLIENT_DESTROYED,data:{funName:"join"}})})}destroy(){if(this.isJoined)throw this._log.warn(Gt.INVALID_DESTROY),new de({code:Y.INVALID_OPERATION,message:ot({key:it.INVALID_DESTROY})});this._log.info("destroy room"),this.audioManager.destroy(),this.videoManager.destroy(),this.keyPointManager.destroy(),this.callDurationCalculator.destroy(),this.badCaseDetector.destroy(),this.isDestroyed=!0,B.emit(O.ROOM_DESTROY,{room:this})}schedule(e,r){return v(this,null,function*(){var s,a,d;let o=ge();try{let{isCached:h,result:p,detailCost:T}=yield rf({userId:this.userId,sdkAppId:this.sdkAppId,roomId:this.useStringRoomId?e.strRoomId:e.roomId,useStringRoomId:this.useStringRoomId,version:Ke,userSig:this.userSig,role:this.scene==="live"?e.role:void 0,frameWorkType:r,latencyLevel:e.latencyLevel});this._isUsingCachedSchedule=h,this._log.info(`schedule cache:${+h} ${pr(p,{keysToExclude:["username","credential"]})}`),h&&B.once(O.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({scheduleCache:1})),this.scheduleResult=J(J({},this.scheduleResult),p),Fe((s=p.config)==null?void 0:s.retryCount)&&ap(p.config.retryCount),Ae((a=p.config)==null?void 0:a.loggerDomain)&&_o(p.config.loggerDomain),this.videoDecodeFallbackType=((d=p.config)==null?void 0:d.videoDecodeFallback)||this.videoDecodeFallbackType,B.emit(O.JOIN_SCHEDULE_SUCCESS,{room:this,schedule:this.scheduleResult,detailCost:T}),X.addSuccessEvent({key:521700,cost:ge()-o,split:50})}catch(h){throw X.addFailedEvent({key:521700,error:h}),h}})}sendAbilityStatus(e){}enableInsertableStreams(){}};var Af=(()=>{if(typeof self=="undefined")return!1;if("top"in self&&self!==top)try{}catch(i){return!1}else if("showOpenFilePicker"in self)return"showOpenFilePicker";return!1})(),CB=Af?Promise.resolve().then(function(){return hA}):Promise.resolve().then(function(){return IA});var DB=Af?Promise.resolve().then(function(){return _A}):Promise.resolve().then(function(){return yA});var lA=Af?Promise.resolve().then(function(){return EA}):Promise.resolve().then(function(){return bA});function bf(...i){return v(this,null,function*(){return(yield lA).default(...i)})}var pA=i=>v(void 0,null,function*(){let t=yield i.getFile();return t.handle=i,t}),mA=(...t)=>v(void 0,[...t],function*(i=[{}]){Array.isArray(i)||(i=[i]);let e=[];i.forEach((s,a)=>{e[a]={description:s.description||"Files",accept:{}},s.mimeTypes?s.mimeTypes.map(d=>{e[a].accept[d]=s.extensions||[]}):e[a].accept["*/*"]=s.extensions||[]});let r=yield window.showOpenFilePicker({id:i[0].id,startIn:i[0].startIn,types:e,multiple:i[0].multiple||!1,excludeAcceptAllOption:i[0].excludeAcceptAllOption||!1}),o=yield Promise.all(r.map(pA));return i[0].multiple?o:o[0]}),hA={__proto__:null,default:mA};function rl(i){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var r=e.done;return Promise.resolve(e.value).then(function(o){return{value:o,done:r}})}return rl=function(e){this.s=e,this.n=e.next},rl.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var r=this.s.return;return r===void 0?Promise.resolve({value:e,done:!0}):t(r.apply(this.s,arguments))},throw:function(e){var r=this.s.return;return r===void 0?Promise.reject(e):t(r.apply(this.s,arguments))}},new rl(i)}var OE=(o,s,...a)=>v(void 0,[o,s,...a],function*(i,t,e=i.name,r){let d=[],h=[];var p,T=!1,y=!1;try{for(var R,N=function(j){var W,F,Ie,Vt=2;for(typeof Symbol!="undefined"&&(F=Symbol.asyncIterator,Ie=Symbol.iterator);Vt--;){if(F&&(W=j[F])!=null)return W.call(j);if(Ie&&(W=j[Ie])!=null)return new rl(W.call(j));F="@@asyncIterator",Ie="@@iterator"}throw new TypeError("Object is not async iterable")}(i.values());T=!(R=yield N.next()).done;T=!1){let j=R.value,W=`${e}/${j.name}`;j.kind==="file"?h.push(j.getFile().then(F=>(F.directoryHandle=i,F.handle=j,Object.defineProperty(F,"webkitRelativePath",{configurable:!0,enumerable:!0,get:()=>W})))):j.kind!=="directory"||!t||r&&r(j)||d.push(OE(j,t,W,r))}}catch(j){y=!0,p=j}finally{try{T&&N.return!=null&&(yield N.return())}finally{if(y)throw p}}return[...(yield Promise.all(d)).flat(),...yield Promise.all(h)]}),fA=(...t)=>v(void 0,[...t],function*(i={}){i.recursive=i.recursive||!1,i.mode=i.mode||"read";let e=yield window.showDirectoryPicker({id:i.id,startIn:i.startIn,mode:i.mode});return OE(e,i.recursive,void 0,i.skipDirectory)}),_A={__proto__:null,default:fA},gA=(s,...a)=>v(void 0,[s,...a],function*(i,t=[{}],e=null,r=!1,o=null){Array.isArray(t)||(t=[t]),t[0].fileName=t[0].fileName||"Untitled";let d=[],h=null;if(i instanceof Blob&&i.type?h=i.type:i.headers&&i.headers.get("content-type")&&(h=i.headers.get("content-type")),t.forEach((y,R)=>{d[R]={description:y.description||"Files",accept:{}},y.mimeTypes?(R===0&&h&&y.mimeTypes.push(h),y.mimeTypes.map(N=>{d[R].accept[N]=y.extensions||[]})):h?d[R].accept[h]=y.extensions||[]:d[R].accept["*/*"]=y.extensions||[]}),e)try{yield e.getFile()}catch(y){if(e=null,r)throw y}let p=e||(yield window.showSaveFilePicker({suggestedName:t[0].fileName,id:t[0].id,startIn:t[0].startIn,types:d,excludeAcceptAllOption:t[0].excludeAcceptAllOption||!1}));!e&&o&&o(p);let T=yield p.createWritable();return"stream"in i?(yield i.stream().pipeTo(T),p):"body"in i?(yield i.body.pipeTo(T),p):(yield T.write(yield i),yield T.close(),p)}),EA={__proto__:null,default:gA},TA=(...t)=>v(void 0,[...t],function*(i=[{}]){return Array.isArray(i)||(i=[i]),new Promise((e,r)=>{let o=document.createElement("input");o.type="file";let s=[...i.map(p=>p.mimeTypes||[]),...i.map(p=>p.extensions||[])].join();o.multiple=i[0].multiple||!1,o.accept=s||"",o.style.display="none",document.body.append(o);let a=p=>{typeof d=="function"&&d(),e(p)},d=i[0].legacySetup&&i[0].legacySetup(a,()=>d(r),o),h=()=>{window.removeEventListener("focus",h),o.remove()};o.addEventListener("click",()=>{window.addEventListener("focus",h)}),o.addEventListener("change",()=>{window.removeEventListener("focus",h),o.remove(),a(o.multiple?Array.from(o.files):o.files[0])}),"showPicker"in HTMLInputElement.prototype?o.showPicker():o.click()})}),IA={__proto__:null,default:TA},SA=(...t)=>v(void 0,[...t],function*(i=[{}]){return Array.isArray(i)||(i=[i]),i[0].recursive=i[0].recursive||!1,new Promise((e,r)=>{let o=document.createElement("input");o.type="file",o.webkitdirectory=!0;let s=d=>{typeof a=="function"&&a(),e(d)},a=i[0].legacySetup&&i[0].legacySetup(s,()=>a(r),o);o.addEventListener("change",()=>{let d=Array.from(o.files);i[0].recursive?i[0].recursive&&i[0].skipDirectory&&(d=d.filter(h=>h.webkitRelativePath.split("/").every(p=>!i[0].skipDirectory({name:p,kind:"directory"})))):d=d.filter(h=>h.webkitRelativePath.split("/").length===2),s(d)}),"showPicker"in HTMLInputElement.prototype?o.showPicker():o.click()})}),yA={__proto__:null,default:SA},AA=(e,...r)=>v(void 0,[e,...r],function*(i,t={}){Array.isArray(t)&&(t=t[0]);let o=document.createElement("a"),s=i;"body"in i&&(s=yield function(h,p){return v(this,null,function*(){let T=h.getReader(),y=new ReadableStream({start:j=>function W(){return v(this,null,function*(){return T.read().then(({done:F,value:Ie})=>{if(!F)return j.enqueue(Ie),W();j.close()})})}()}),R=new Response(y),N=yield R.blob();return T.releaseLock(),new Blob([N],{type:p})})}(i.body,i.headers.get("content-type"))),o.download=t.fileName||"Untitled",o.href=URL.createObjectURL(yield s);let a=()=>{typeof d=="function"&&d()},d=t.legacySetup&&t.legacySetup(a,()=>d(),o);return o.addEventListener("click",()=>{setTimeout(()=>URL.revokeObjectURL(o.href),3e4),a()}),o.click(),null}),bA={__proto__:null,default:AA};var kE=eE;console.log("trtc:",Ke,"loaded",cr,kE);var vf=class{constructor(t){this.name=t;l(this,"ready");l(this,"worker");l(this,"ports");l(this,"ids",1);l(this,"transactions",new Map);l(this,"log");l(this,"addTransaction",t=>(this.transactions.set(++this.ids,t),this.ids))}postMessage(t,e){var r;(r=this.worker)==null||r.postMessage(t,e)}create(t){if(this.ready)return this.ready;t||(t=this.name),console.time(`createWorker_${t}`);let e=new Worker(kE,{name:t});return this.worker=e,this.ready=new Promise((r,o)=>{e.onmessage=({data:{id:s,type:a,payload:d}})=>{var h;if(s)(h=this.transactions.get(s))==null||h(d),this.transactions.delete(s);else switch(a){case"error":console.timeEnd(`createWorker_${t}`),console.warn("worker error:",d),o(d);break;case"ready":console.timeEnd(`createWorker_${t}`),r(this);break;case"updateAFSM":if(d.value){let p=typeof d.old=="string"?d.old:`${d.old.action}ing`,T=typeof d.value=="string"?d.value:`${d.value.action}ing`;console.log(cd(),d.group,d.name,p,"\u{1F449}",T)}break;case"log":console.log(d);break;case"glog":window.dispatchEvent(new CustomEvent(a,{detail:d}));break}},e.postMessage({wasm:Ou,flag:cr},this.ports)})}destroy(){var t;console.log("destroy worker",this.name),delete this.ready,(t=this.worker)==null||t.terminate()}},Rf=class{constructor(t,e,r){this.worker=t;l(this,"channel",new MessageChannel);l(this,"ready");this.ready=new Promise((o,s)=>{this.worker.postMessage({id:this.worker.addTransaction(o),payload:e},[this.channel.port2])}).then(o=>(o.err===0&&(this.worker.sessionCount++,this.channel.port1.onmessage=r),o))}postMessage(...t){this.channel.port1.postMessage(...t)}destroy(){--this.worker.sessionCount===0&&this.worker.destroy()}},ic=class extends vf{constructor(){super("main");l(this,"switchValue",new Map);l(this,"extendChannel");l(this,"sessionCount",0)}setSwitchValue(e,r){var o;this.switchValue.set(e,r),(o=this.extendChannel)==null||o.port1.postMessage([e,r])}create(){return v(this,null,function*(){return this.ready?this.ready:(this.extendChannel=new MessageChannel,this.ports=[this.extendChannel.port2],yield kt(ic.prototype,this,"create").call(this),this.switchValue.forEach((e,r)=>{this.extendChannel.port1.postMessage([r,e])}),this)})}},oo=new ic,ts,vA=-1;function PE(i){return console.log(i),ts.push(i.slice()),ts.length>1e3&&ts.shift(),i}function LE(i){return v(this,null,function*(){switch(vA){case 0:this.edpl.willDecodeAudio=PE;break;case 2:this.edpl.didEncodeAudio=PE;break}yield oo.create(),B.emit(O.JOIN_SEND_CMD,{room:this});let t=new Rf(oo,i,o=>{let s=o.data;if(typeof s=="string")this.onWorkerEvent(s);else if(s==null)this.onWorkerEvent("client-banned",0),t.destroy();else{let{cmd:a,payload:d}=s;this.onWorkerEvent(a,d)}}),{err:e,data:r}=yield t.ready;if(typeof e=="number"){if(B.emit(O.JOIN_RECEIVED_CMD_RES,{room:this,code:e}),e===0)return Object.assign(this,r,{session:t});throw new de({code:Y.JOIN_ROOM_FAILED,extraCode:Number(e),message:ot({key:it.SIGNAL_CHANNEL_SETUP_FAILED,data:{errorCode:e,errorMsg:""}})})}else throw e})}Object.defineProperties(window,{useAINS:{set:Cf},useWt:{set:RA},enableDebug:{set(i){console.debug=i?Zg:()=>{},oo.setSwitchValue("enableDebug",i)}},useV2:{set:Df},dump:{value(){if(ts||(console.warn("dump audio will be activated at next time join room"),ts=[]),!ts.length){console.warn("no audio data to dump,try it later");return}let i=[];return ts.forEach(t=>{i.push(new Uint16Array([t.length])),i.push(t)}),bf(new Blob(i),{fileName:"audio dump hex",extensions:[".hex"]})}},dumpAudio:{value(i="audio",t=2e3){let e=[],r=new Promise(o=>{let s=new MessageChannel;oo.extendChannel.port1.postMessage(["dump",i],[s.port1]),s.port2.onmessage=({data:a})=>{console.log(a),e.push(a),e.length>t&&(s.port2.onmessage=null,oo.extendChannel.port1.postMessage(["dump",i]),s.port2.close(),o(new Blob(e)))}});return bf(r,{fileName:i,extensions:[".pcm"]})}},hardDec:{set(i){switch(i){case!0:cr.useHardDecoder="prefer-hardware";break;case!1:cr.useHardDecoder="prefer-software";break;default:cr.useHardDecoder="no-preference"}}}});function Cf(i){return v(this,null,function*(){oo.setSwitchValue("useAINS",i)})}function Df(i){return v(this,null,function*(){oo.setSwitchValue("useV2",i)})}function RA(i){return v(this,null,function*(){oo.setSwitchValue("useWt",i)})}function UE(i){let t=new MediaStreamTrackGenerator({kind:"audio"});i.setInputMediaStreamTrack(t),this.postMessage({cmd:"pullAudio",payload:{tinyId:i.tinyId,writable:t.writable}},[t.writable])}function VE(i){return v(this,null,function*(){var r;this._log.info("pull video",i);let t=Date.now(),e=new MessageChannel;this.postMessage({cmd:"pullVideo",payload:{mediaType:i.mediaType,tinyId:i.tinyId}},[e.port1]),(r=i.stat).framesReceived||(r.framesReceived=0),Jt(Yg(e.port2),Ki(Xt(i,Z.INIT)),ar(o=>{let{data:s,packetsReceived:a}=o;i.stat.packetsReceived=a,i.stat.framesReceived++;let d=s[4]&31,h;switch(d){case 5:case 7:h="key";break;default:h="delta";break}i.decodeFrame({data:s.buffer,type:h,timestamp:(Date.now()-t)*1e3})},()=>{},()=>{e.port2.postMessage(null),e.port2.close()}))})}var il=[];function FE(i){var h;let t=en();if(this.state!=="joined")throw new Error("Room is not joined");if(i.state==="publish")return;for(let p=0;p<=il.length;p++)if(!il[p]){il[p]=this,this.index=p;break}let e=i.profile;this._log.info("start push audio",this.index,e);let r=new MessageChannel,o=i.enableEncodeFrame?new MessageChannel:null;(h=this.session)==null||h.postMessage({cmd:"pushAudio",payload:J({index:this.index},e)},o?[r.port2,o.port2]:[r.port2]),r.port1.onmessage=p=>{p.data==null||(typeof p.data=="number"?t.next(p.data):o&&o.port1.postMessage(me(J({},p.data),{data:new Uint8Array(i.encodeFrame({data:p.data.data.buffer,timestamp:p.data.timestamp}).data)})))};let s=new MediaStream,a,d=p=>{let T=s.getAudioTracks()[0];T&&(a.disconnect(),s.removeTrack(T)),s.addTrack(p),this._log.info("push audio track:",p.readyState,p.getSettings().deviceId),a=eo.audioCtx.createMediaStreamSource(s),a.connect(eo.worklet,0,this.index)};Jt(Xt(i,"output-media-track-changed"),Ki(Xt(i,"capture")),ar(d,console.error,()=>{this._log.info("stop push audio",e),i.volume=0,a.disconnect(),il[this.index]=null,o&&o.port1.postMessage(null),r.port1.postMessage(null)})),Jt(t,Xg(p=>i.volume=p),Jg(Tu(1e3)),ar(()=>{i.volume=0})),d(i.outMediaTrack)}var iF=new Intl.DateTimeFormat("zh-CN",{dateStyle:"short",timeStyle:"medium"});var Nf=class{constructor(t,e,r,o){this.localTrack=t;this.type=e;this.config=r;this.port=o;l(this,"track");l(this,"label");l(this,"insertKeyFrame",!0);l(this,"encoder");l(this,"tsMap",new Map);t._log.info("create Video Encoder",r)}trans(t,e,r){let o=this.recreate(r);e.signal.addEventListener("abort",()=>{o.close()});let s=0;return t.pipeThrough(new TransformStream({transform:(a,d)=>{o.state==="configured"&&(this.tsMap.set(s,Date.now()),this.encode(a),s++,d.enqueue(a))}}),e)}encode(t){this.encoder.encode(t,{keyFrame:this.insertKeyFrame}),this.insertKeyFrame=!1}start(t,e,r){let o=this.recreate(r),s=0;t.pipeTo(new WritableStream({write:a=>{o.state==="configured"&&(s<10&&console.log(`capture ${this.label} track frame:`,s,Date.now(),a.timestamp,a.displayWidth,a.displayHeight),(a.displayWidth!==this.config.width||a.displayHeight!==this.config.height)&&(console.log("resize video track frame:",a.displayWidth,a.displayHeight,this.config.width,this.config.height),this.configure({width:a.displayWidth,height:a.displayHeight})),this.tsMap.set(s,Date.now()),this.encode(a),s<10&&console.log(`encode ${this.label} track frame:`,s),s++,a.close())}}),e).catch(a=>{console.warn(a),o.close()})}recreate(t,e=0){let r=0,o=new VideoEncoder({output:s=>{let a=this.tsMap.get(r);if(this.tsMap.delete(s.timestamp),r<10&&(r===0&&e===0&&B.emit(O.SEND_FIRST_VIDEO_FRAME,{room:t}),console.log(`encoded ${this.label} track frame:`,r,Date.now(),s.timestamp)),r++,this.track.enabled===!1)return;let d=null;if(this.localTrack.enableEncodeFrame){d=new Uint8Array(s.byteLength),s.copyTo(d);let h=this.localTrack.encodeFrame({data:d.buffer},this.type===3);d=new Uint8Array(h.data)}d?(this.localTrack.stat.bytesSent+=d.length,this.port.postMessage({chunk:{type:s.type,timestamp:s.timestamp,data:d,duration:s.duration},timestamp:a},[d.buffer])):(this.localTrack.stat.bytesSent+=s.byteLength,this.port.postMessage({chunk:s,timestamp:a}))},error:s=>{console.warn(s,this.config),setTimeout(()=>this.recreate(t,e+1),100)}});return this.encoder=o,this.configure({}),o}configure(t){var e;(e=this.encoder)==null||e.configure(Object.assign(this.config,t))}close(){this.port.postMessage(null),this.port.close()}};function ol(i,t){return v(this,null,function*(){let e=i.mediaType===2,r=e?"screen":"video",o={codec:"avc1.420028",avc:{format:"annexb"},hardwareAcceleration:cr.useHardEncoder,width:t.profile.width,height:t.profile.height,framerate:t.profile.frameRate,bitrate:t.profile.bitrate*1e3},s=new MessageChannel;this.postMessage({cmd:"pushVideo",payload:t},[s.port1]);let a=new Nf(i,t.type,o,s.port2);return s.port2.onmessage=d=>{if(d.data===260)a.insertKeyFrame=!0;else if(!e){let{bitrate:h}=d.data;ta({configureBr:[d.data.bitrate,h]}),a.configure({bitrate:h})}},this._log.info("start push",r,t),a})}function $E(i){return v(this,null,function*(){let t=i.mediaType===2,e=t?"screen":"video",r={type:t?7:2,profile:i.profile,trackType:t?"screen":"camera"};!t&&i.outMediaTrack instanceof CanvasCaptureMediaStreamTrack&&(r.trackType="canvas");let{trackType:o}=r,{width:s,height:a}=i.outMediaTrack.getSettings();r.profile.width=s,r.profile.height=a;let d=yield ol.call(this,i,r);this._log.info("VideoEncoder created",r);let h,p=T=>v(this,null,function*(){if(h==null||h.abort("track changed"),!T)return;h=new AbortController;let{width:y,height:R,displaySurface:N}=T.getSettings();y&&(d.config.width=y),R&&(d.config.height=R);let j=tr.match(/Chrome\/(\d+)/);(j==null?void 0:j[1])==="114"&&N==="browser"&&delete d.config.hardwareAcceleration,this._log.info("push",e,"track:",T.readyState,T.getSettings());let W=new MediaStreamTrackProcessor({track:T}).readable,F="small"in i&&i.small;F?(this.smallEncoder||(this.smallEncoder=yield ol.call(this,i,{profile:F,type:3,trackType:o})),this.smallEncoder.track=T,this.smallEncoder.label="small",W=this.smallEncoder.trans(W,h,this)):this.smallEncoder&&(this.smallEncoder.close(),delete this.smallEncoder),d.track=T,d.label=e,d.start(W,h,this)});return Jt(Xt(i,"output-media-track-changed"),Ki(Xt(i,"capture")),ar(p,console.error,()=>{var T;this._log.info("stop push",e,r),h.abort("unpublish"),d.close(),(T=this.smallEncoder)==null||T.close()})),p(i.outMediaTrack)})}var sc=class extends Z{constructor(e){var r,o;super((o=(r=e.roomid)==null?void 0:r.toString())!=null?o:e.name,"volumeEvaluation");this.room=e;l(this,"enableInBackground",!1);l(this,"interval",400);e.on("joined",()=>{this.emit(sc.INTERVALCHANGED,this.interval)}),Jt(Xt(this,sc.INTERVALCHANGED),zg(s=>this.room.state==="joined"?this.room.fromWorker("getAudioEnergy",s):Jt(Bg(s),qg(()=>[]))),ar(s=>{s.forEach(a=>{this.room.remotePublishedUserMap.has(a.userId)&&(this.room.remotePublishedUserMap.get(a.userId).remoteAudioTrack.volume=a.volume)}),(!document.hidden||this.enableInBackground)&&this.state==Z.ON&&this.room.emit("audio-volume",s)}))}start(e,r){this.interval=e,this.enableInBackground=r,this.emit(sc.INTERVALCHANGED,this.interval)}stop(){}},rs=sc;l(rs,"INTERVALCHANGED","intervalChanged"),q([be([Z.INIT,Z.OFF],Z.ON)],rs.prototype,"start",1),q([be([],Z.OFF)],rs.prototype,"stop",1);var Kr=class extends tl{constructor(e){super(e);this.index=0;this.remotePublishedUserMap=new Map;this.audioVolumeEvalution=new rs(this);this.enableAIVoice=Cf;this.AbilityOption={AVLimit:{EncVideoCodec:"H265",EncVideoWidth:0,EncVideoHeight:0,EncVideoBr:"0",EncVideoFps:0,EncAudioCodec:"opus",EncAudioFS:0,EncAudioCh:0,EncAudioBr:"0"},GeneralLimit:{CPULimit:{uint32_CPU_num:navigator.hardwareConcurrency||0,str_CPU_name:navigator.platform,uint32_CPU_maxfreq:0,model:"",uint32_total_memory:0},uint32_terminal_type:wp(),uint32_device_type:0,str_os_verion:xp(),uint32_link_type:1,str_client_version:Ke,uint32_net_type:go[Gr.getNetworkType()],ua:navigator.userAgent,version:""}};this.joinAbortController=new AbortController;e.tinyId&&(this.tinyId=e.tinyId,Df(!0)),this._log||(this._log=e.logger),this.bussinessInfo=e.bussinessInfo,e.encodedDataProcessingListener&&this.setEncodedDataProcessingListener(e.encodedDataProcessingListener)}replaceTrack(e){return v(this,null,function*(){})}getLogger(){return this._log}postMessage(e,r){!this.session||(e?typeof e=="string"?this.session.postMessage({cmd:e,payload:r}):this.session.postMessage(e,r):this.session.postMessage(null))}sendMessage(e,r){return new Promise((o,s)=>{this.state!="joined"&&s("join room first");let a=new MessageChannel;this.postMessage({cmd:e,payload:r},[a.port1]),a.port2.onmessageerror=s,a.port2.onmessage=d=>{a.port2.close(),o(d.data)}})}fromWorker(e,r){if(this.state!="joined")throw"join room first";return o=>{var a;let s=new MessageChannel;s.port2.onmessage=d=>{d.data?o.next(d.data):o.complete()},s.port2.onmessageerror=d=>o.error(d),o.defer(()=>{s.port2.postMessage(null),s.port2.close()}),(a=this.session)==null||a.postMessage({cmd:e,payload:r},[s.port1])}}switchRole(e){return v(this,null,function*(){if(e!==this.role)return this._log.info(`switchRole() => switch role to: ${e}`),e=="audience"&&this.unpublish(...this.localTracks),this.sendMessage("switchRole",e=="audience"?21:20).then(r=>{this.role=e})})}join(e,r,o){return v(this,null,function*(){var h,p,T;let s=Gr.getEnv(),a=$d(),d={isH264EncodeSupported:this.checkSystemResult.detail.isH264EncodeSupported,isVp8EncodeSupported:this.checkSystemResult.detail.isVp8EncodeSupported,frameWorkType:o,params:e,proxy_wt:(h=this.proxy_wt)==null?void 0:h.replace("https://",""),proxy_ws:(p=this.proxy_ws)==null?void 0:p.replace("wss://",""),proxy_cloud:(T=this.scheduleResult.iceServers)!=null&&T.length?this.scheduleResult.iceServers[0].urls:[],proxy_unified:this.proxy_unified,domains:this.scheduleResult.domains,env:s,osName:Ps(),browserInfo:$d(),tinyId:this.tinyId,joinReq:{useStrRoomid:!!this.useStringRoomId,roomid:String(e.roomId||e.strRoomId),sdkAppID:String(e.sdkAppId),userSig:e.userSig,privMapEncrypt:e.privateMapKey||"",privMap:"",pstnBizType:0,role:"user",jsSdkVersion:Ke,browserVersion:a.browserName+a.browserVersion,closeLocalMedia:!0,trtcscene:r==="live"?2:1,trtcrole:e.role,bussinessInfo:e.businessInfo||this.bussinessInfo||"",isAuxUser:0,autoSubscribe:this.autoReceiveAudio&&this.autoReceiveVideo,AbilityOption:this.AbilityOption}};yield LE.call(this,d),console.log(this),eo.playAudio(y=>this.postMessage({cmd:"setAudioWorkletPort"},[y])),this.checkDestroy()})}_leave(e=0){return v(this,null,function*(){console.log(this.userId,"leave",e),this.remotePublishedUserMap.forEach(r=>{r.remoteAudioTrack.close(),r.remoteAuxiliaryTrack.close(),r.remoteVideoTrack.close()}),this.postMessage(null),this.remotePublishedUserMap.clear(),this.localTracks.forEach((r,o)=>o.unpublish())})}leave(){return v(this,null,function*(){return this._leave()})}getSignalInfo(){return{tinyId:this.tinyid,clientIp:this.clientip,signalIp:"",relayIp:this.relayip,relayInnerIp:"",relayPort:0}}enableAudioVolumeEvaluation(e=2e3,r=!1){e<=0?this.audioVolumeEvalution.stop():this.audioVolumeEvalution.start(e,r)}getLocalAudioStats(){return this.sendMessage("getLocalAudioStats")}getLocalVideoStats(){return this.sendMessage("getLocalVideoStats")}afterJoin(){return v(this,null,function*(){let e=Ki(Xt(this,"left"));Jt(r=>v(this,null,function*(){let o=new MessageChannel;o.port2.onmessage=s=>{s.data?r.next({data:s.data,port:o.port2}):r.complete()},o.port2.onmessageerror=s=>r.error(s),r.defer(()=>{o.port2.postMessage(null),o.port2.close()}),this.postMessage({cmd:"decodeAudio",payload:!!this.audioManager.decodePipeline[0]},[o.port1])}),e,ar(({data:r,port:o})=>{let s=this.audioManager.decodePipeline[0]({frame:{data:r.buffer}});o.postMessage(new Uint8Array(s.data),[s.data])}))})}onWorkerEvent(e,r){switch(e!=="network-quality"&&console.info(this.userId,"onWorkerEvent",e,JSON.stringify(r)),e){case O.RECEIVED_PUBLISHED_USER_LIST:B.emit(e,J({room:this},r));return;case"1":if(r.userId===this.userId)return;this.emit("peer-join",r);return;case"2":this.emit("peer-leave",r);return;case"3":let o=new zu(this,r);this.remotePublishedUserMap.set(r.userId,o),this.emit("remote-published",o);return;case"5":{let y=r,R=this.remotePublishedUserMap.get(y);R&&(R.remoteVideoTrack.close(),R.remoteAuxiliaryTrack.close(),R.remoteAudioTrack.close(),this.remotePublishedUserMap.delete(y),this.emit("remote-unpublished",R))}return;case"banned":switch(this._leave(r),r){case 8:this.emit("banned",{reason:"kick",message:""});break;case 2:case 6:case 4:this.emit("banned",{reason:"banned",message:""});case 7:case 5:this.emit("banned",{reason:"room_disband",message:""})}break;case"6":{let{prevMuteState:y,muteState:R,flag:N}=r,j=this.remotePublishedUserMap.get(R.userId);if(!j){this.emit("remote-publish-state-changed",r);return}j.flag=N}B.emit(O.REMOTE_PUBLISH_STATE_CHANGED,J({room:this},r)),this.emit("remote-publish-state-changed",r);return;case"network-quality":this.quality=J({},r);let{uplinkLoss:s,uplinkRTT:a,uplinkInfo:d,downlinkInfo:h,msg_down_stream_info:p}=r,T={str_sdk_version:Ke,uint64_datetime:Date.now(),msg_user_info:{str_identifier:this.userId,uint64_tinyid:this.tinyid},msg_device_info:{uint32_terminal_type:15,str_device_name:navigator.platform,str_os_version:"",uint32_net_type:go[ea()]},msg_event_msg:Fg(this.userId),str_acc_ip:this.relayip,str_client_ip:this.clientip,msg_up_stream_info:d,msg_down_stream_info:p};B.emit(O.HEARTBEAT_REPORT,{room:this,report:T}),this.emit("heartbeat-report",T),B.emit(O.NETWORK_QUALITY,{room:this,uplink:{rtt:a,loss:s},downlinks:h}),delete r.downlinkInfo;break;case"signal-connection-state-changed":B.emit(O.SIGNAL_CONNECTION_STATE_CHANGED,J({room:this},r));return}this.emit(e,r)}sendStartPublishCDN(e,r){return e.roomid=this.roomId,e.sdkAppID=String(this.sdkAppId),e.socketid=this.socketid,r&&(e.request_time=e.pushRequestTime),this.sendMessage("publishCdn",e)}sendStopPublishCDN(e,r){return e.roomid=this.roomId,e.sdkAppID=String(this.sdkAppId),e.socketid=this.socketid,r&&(e.request_time=e.pushRequestTime),this.sendMessage("stopPublishCdn",e)}sendStartMixTranscode(e){return this.sendMessage("startMcuMix",e)}sendStopMixTranscode(e){return this.sendMessage("stopMcuMix",e)}publish(...e){return v(this,null,function*(){let r=e.reduce((d,h)=>h.mediaType|d,0),o=this.sendMessage("publish",r).then(d=>d.err!==0?Promise.reject(d.err):d),s=0,a=d=>v(this,null,function*(){switch(yield o,d.muted&&(s|=d.mediaType),vt(d,d).add("mute",()=>{this.postMessage("mute",{mediaType:d.mediaType,userId:this.userId,srctinyid:this.tinyid,remove:!0})}).add("unmute",()=>{this.postMessage("unmute",{mediaType:d.mediaType,userId:this.userId,srctinyid:this.tinyid,add:!0})}),d.mediaType){case 1:FE.call(this,d);break;default:yield $E.call(this,d)}});yield Promise.all(e.map(a)),s&&this.postMessage("mute",{mediaType:s,srctinyid:this.tinyid,userId:this.openid,remove:!0})})}unpublish(...e){return v(this,null,function*(){e.forEach(ct)})}subscribe(...e){return v(this,null,function*(){let r=e.reduce((y,R)=>R.mediaType|y,0),{userId:o,tinyId:s,streamType:a}=e[0],d=this.remotePublishedUserMap.get(o),h=J({},d.subscribeState),p=Object.assign(new Aa,h);p.mediaType|=r,B.emit(O.SUBSCRIBE_START,{room:this,streamType:a,remotePublishedUser:d,subscribeState:p});let T=yield this.sendMessage("subscribe",{mediaType:p.mediaType,userId:o,srctinyid:s,mediaDescription:{audioParam:{mediaType:1,payloadFmtps:[{payloadType:111,fmtp:"minptime=10;useinbandfec=1"}]},videoParam:[4,8,2].filter(y=>p.mediaType&y).map(y=>({mediaType:y,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]}))}});console.dir("subscribe",T),yield Promise.all(e.filter(y=>!y.isSubscribed).map(y=>{switch(y.mediaType){case 1:return UE.call(this,y);default:return VE.call(this,y)}})),B.emit(O.SUBSCRIBE_SUCCESS,{room:this,streamType:a,remotePublishedUser:d})})}unsubscribe(...e){return v(this,null,function*(){let r=0;for(let o of e)r|=o.mediaType,o.unsubscribe();if(e.length){let{userId:o,streamType:s,tinyId:a}=e[0];yield this.sendMessage("unSubscribe",{mediaType:r,srctinyid:a,userId:o}),B.emit(O.UNSUBSCRIBE_SUCCESS,{room:this,streamType:s,remotePublishedUser:this.remotePublishedUserMap.get(o)})}})}enableSmall(e){return v(this,null,function*(){var r;if(e){if(this.videoManager.smallTrack){let o=this.videoManager.cameraTrack;this.smallEncoder=yield ol.call(this,o,{profile:o.small,type:3,trackType:"camera"});let s=new MediaStreamTrackProcessor({track:this.videoManager.smallTrack}).readable;this.smallEncoder.track=this.videoManager.smallTrack,this.smallEncoder.label="small",this.smallAbortCtrl=new AbortController,this.smallEncoder.start(s,this.smallAbortCtrl,this),this._log.info("push small")}}else(r=this.smallAbortCtrl)==null||r.abort("stop"),this.smallEncoder&&(this.smallEncoder.close(),delete this.smallEncoder)})}changeType(e,r){let o=this.remotePublishedUserMap.get(r.userId),s=e?8:4;if(o.remoteVideoTrack.mediaType===s)return;let a={srctinyid:r.tinyId,mediaType:s,userId:r.userId,mediaDescription:{audioParam:{mediaType:1,payloadFmtps:[{payloadType:111,fmtp:"minptime=10;useinbandfec=1"}]},videoParam:[4,8].filter(d=>s&d).map(d=>({mediaType:d,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]}))}};o.remoteVideoTrack.mediaType=a.mediaType,this.postMessage("changetype",a)}destroy(){this.isDestroyed||(super.destroy(),this.isDestroyed=!0,this.joinAbortController.abort("destroy"))}};q([zi(Kr.prototype.afterJoin),be(["left",Z.INIT],"joined"),AE()],Kr.prototype,"join",1),q([be("joined","left",{ignoreError:!0}),bE()],Kr.prototype,"_leave",1),q([tu((...i)=>0),vE()],Kr.prototype,"publish",1),q([tu((...i)=>0),RE()],Kr.prototype,"unpublish",1),q([tu((...i)=>i[0].userId),CE()],Kr.prototype,"subscribe",1);mn.frameWorkType=37;mn.create=function(i){let t=mn._create.call(this,Kr,i);return t._use(Xa,i==null?void 0:i.assetsPath),t};Object.assign(mn.prototype,{_setCurrentSpeaker(i){var t;return(t=eo.audioCtx)!=null&&t.setSinkId?eo.audioCtx.setSinkId(i):Promise.reject("not support")},_enableVideoDecodeFallback(i,t){return v(this,null,function*(){return this.startPlugin("TRTCVideoDecoder",{type:"webCodecs",renderer:"videoFrame",track:i,config:{codec:"avc1.420028"},fallback:"wasm"}),new Promise((e,r)=>{We(Je(i,"decode-downgrade-state-changed"),Go(o=>o.state==="STARTED"),xr(1),ah(5e3),gt(Je(i,Z.INIT)),dt(e,r))})})}});var y$=mn;export{y$ as default};
107
+ }`});c(this,"yTextureRef");c(this,"uTextureRef");c(this,"vTextureRef");c(this,"Y");c(this,"U");c(this,"V");this.useProgram();let t=this.context.ctx;t.pixelStorei(t.PACK_ALIGNMENT,1),t.pixelStorei(t.UNPACK_ALIGNMENT,1),this.setTexBuffer([0,1,1,1,0,0,1,0]),this.yTextureRef=this._initTexture("ySampler",0),this.uTextureRef=this._initTexture("uSampler",1),this.vTextureRef=this._initTexture("vSampler",2),this._canvas=e._canvas}_initTexture(e,t){let r=this.context.ctx,o=r.createTexture();return r.bindTexture(r.TEXTURE_2D,o),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.bindTexture(r.TEXTURE_2D,null),r.uniform1i(r.getUniformLocation(this.program,e),t),o}render(e){let t=this.context.ctx,r=this.width,o=this.height;return this.useProgram(),t.viewport(0,0,r,o),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,this.yTextureRef),t.texSubImage2D(t.TEXTURE_2D,0,0,0,r,o,t.LUMINANCE,t.UNSIGNED_BYTE,this.Y),t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,this.uTextureRef),t.texSubImage2D(t.TEXTURE_2D,0,0,0,r/2,o/2,t.LUMINANCE,t.UNSIGNED_BYTE,this.U),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,this.vTextureRef),t.texSubImage2D(t.TEXTURE_2D,0,0,0,r/2,o/2,t.LUMINANCE,t.UNSIGNED_BYTE,this.V),this.draw(),!0}resize(e,t){super.resize(e,t);let r=this.context.ctx;r.activeTexture(r.TEXTURE0),r.bindTexture(r.TEXTURE_2D,this.yTextureRef),r.texImage2D(r.TEXTURE_2D,0,r.LUMINANCE,e,t,0,r.LUMINANCE,r.UNSIGNED_BYTE,null),r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,this.uTextureRef),r.texImage2D(r.TEXTURE_2D,0,r.LUMINANCE,e/2,t/2,0,r.LUMINANCE,r.UNSIGNED_BYTE,null),r.activeTexture(r.TEXTURE2),r.bindTexture(r.TEXTURE_2D,this.vTextureRef),r.texImage2D(r.TEXTURE_2D,0,r.LUMINANCE,e/2,t/2,0,r.LUMINANCE,r.UNSIGNED_BYTE,null)}};var uu=[s=>{s.codec="avc1.420028"},s=>{delete s.hardwareAcceleration}],rp=(s,i)=>{switch(s){case"webCodecs":return i==="videoFrame"?514705:514706;case"wasm":return i==="webgl"?514707:i==="videoFrame"?514708:514709}throw new Error("decoder type not supported")},oc=class{constructor(i){c(this,"trackDoneOB");c(this,"startOB");c(this,"stopOB");c(this,"decoder");c(this,"videoContext");c(this,"gop",0);c(this,"gop_helper",0);c(this,"waitFirstKeyFrame",!0);c(this,"startTimestamp",0);c(this,"startTime",0);c(this,"startPerformanceTime",0);c(this,"inputFrameCount",0);c(this,"decodedFrameCount",0);c(this,"downgradeLevel",0);c(this,"config");c(this,"videoElement");c(this,"type","wasm");c(this,"renderer","2d");c(this,"wasmOption");c(this,"createDecoder");c(this,"_decodeSink");c(this,"isReported",!1);let{track:e,createDecoder:t}=i;if(this.createDecoder=t,this.wasmOption={yuvMode:i.renderer==="webgl",wasmPath:i.wasmPath,workerMode:i.workerMode,canvas:i.canvas},this.config=i.config,this.videoElement=i.videoElement,this.renderer=i.renderer,this.trackDoneOB=Ie(e,Q.INIT),this.stopOB=rt(this.trackDoneOB),i.type==="auto"){switch(i.fallback){case"wasm":this.type="wasm",this.renderer="webgl";break;case"wasm_2d":this.type="wasm",this.renderer="2d";break;case"wasm_video":this.type="wasm",this.renderer="videoFrame";break;default:this.type="webCodecs"}this.wasmOption.yuvMode=this.renderer==="webgl"}else this.type=i.type;this.changeRenderer(this.renderer),this.startOB=rt();let r=rt(),o;_e(r,Al((a,d)=>(a!==d&&e.onDecodeDowngradeStateChanged({type:this.type,renderer:this.renderer,reason:o,prevState:a,state:d}),d),"INITIALIZED"),Pe(this.stopOB),be());let n=a=>{let d=this.pipe(e);return r.next("STARTING"),e.log.info(`decoder type: ${this.type} renderer: ${this.renderer}`),_e(d,Pe(this.stopOB),be(()=>{e.stat.framesDecoded++},l=>{if(e.log.error(l),N.addFailedEvent({key:rp(this.type,this.renderer),error:l}),a>4)this.startOB.error(l);else{switch(this.type){case"webCodecs":this.type="wasm",this.changeRenderer("webgl");break;case"wasm":switch(this.renderer){case"webgl":this.changeRenderer("videoFrame");break}}this.startOB.next(a+1)}})),_e(d,ki(1),Bo(vr))};_e(this.startOB,Nr(0),er(n),Pe(this.stopOB),be(()=>{e.player.handlePlaying("canvas"),r.next("STARTED")},a=>{o=a,r.next("FAILED")},()=>{N.addSuccessEvent({key:rp(this.type,this.renderer)}),N.addSuccessEvent({key:514704})}))}mock(i){this._decodeSink?this._decodeSink.error(i):this.startOB.next(0)}close(i){this.stopOB.next(i)}changeRenderer(i){this.renderer=i,this.renderer==="videoFrame"&&!Td()&&(this.renderer="2d"),this.wasmOption.yuvMode=this.renderer==="webgl"}decode(i){var r;if(this.inputFrameCount++,((r=this.decoder)==null?void 0:r.state)!=="configured")return i;let e=i.type==="key",{timestamp:t}=i;if(e?(this.gop=this.gop_helper,this.gop_helper=0):this.gop_helper++,this.decoder&&this.decoder.state==="configured"){if(this.waitFirstKeyFrame)if(e)this.waitFirstKeyFrame=!1,this.startTimestamp=t,this.startTime=Date.now(),this.startPerformanceTime=L();else return;let o=(t-this.startTimestamp)/90,a=Date.now()-this.startTime-o,d=a<500?0:a/1e3>>0;switch(e&&(d>0?this.downgradeLevel++:this.downgradeLevel>3&&this.downgradeLevel--),this.downgradeLevel){case 0:break;case 1:break;case 2:if(this.gop_helper>this.gop>>1)return;break;case 3:if(this.gop_helper>0)return;break;default:return}this.decoder.decode(i);return}return i}pipe(i){return Mi()(e=>f(this,null,function*(){this._decodeSink=e,e.defer(()=>{var o,n;(o=this.decoder)==null||o.close(),(n=this.videoContext)==null||n.destroy(),delete this._decodeSink});let{renderer:t,type:r}=this;try{switch(r){case"wasm":this.decoder=this.createDecoder(r,this.wasmOption);break;case"webCodecs":for(let o=0;o<=uu.length;o++){let{supported:n}=yield VideoDecoder.isConfigSupported(this.config);if(n)break;if(o===uu.length){e.error(3);return}uu[o](this.config)}this.decoder=this.createDecoder(r);break;case"mse":throw new Error("not supported yet")}if(this.decoder.on("videoFrame",o=>{this.decodedFrameCount++,e.next(o)}),this.decoder.on("error",o=>{i.log.error(o),e.error(r==="webCodecs"?4:8)}),yield this.decoder.initialize(this.videoElement),this.decoder.configure(this.config),r==="wasm"&&t==="webgl"){this.videoContext=new De({frameRate:15,logger:i.log,name:i.userId}),this.videoContext.create(),this.videoContext.on(De.UNAVAILABLE,n=>{i.log.error(n),e.error(7)});let o=new sc(this.videoContext);this.decoder.on("videoCodecInfo",n=>o.resize(n.width,n.height)),this.decoder.on("videoFrame",n=>{[o.Y,o.U,o.V]=n,this.downgradeLevel===1?this.decodedFrameCount%2===0&&o.render(this.decodedFrameCount):o.render(this.decodedFrameCount)}),i.source=o,i.player.setCanvas(this.videoContext._canvas,2)}else if(t==="videoFrame"){i.player.setCanvas();let o=new MediaStreamTrackGenerator({kind:"video"}),n=o.writable.getWriter();i.setInputMediaStreamTrack(o);let a=0;this.decoder.on("videoFrame",d=>{a++,a<=10&&i.log.info(`Frame ${a} decoded width: ${d.displayWidth} height: ${d.displayHeight}`),n.write(d)}),o.onmute=()=>{e.error(r==="webCodecs"?5:9)},e.defer(()=>o.onmute=null)}else{this.videoContext=new Be({frameRate:15,logger:i.log,name:i.userId}),this.videoContext.create({alpha:!1});let o=this.videoContext.createVideoImageSource();this.decoder.on("videoFrame",a=>{o.image=a,o.update()});let n=new Or(this.videoContext,{name:"remotePlayer",logger:i.log});o.connect(n),i.source=o,i.player.setCanvas(this.videoContext._canvas,2)}}catch(o){i.log.error(o),e.error(r==="webCodecs"?2:6)}}))}};var en=class extends sp.EventEmitter{constructor(e){super();this.room=e;c(this,"videoContext");c(this,"_glVideoContext");c(this,"_2dVideoContext");c(this,"destination");c(this,"smallVideoContext");c(this,"smallDestination");c(this,"smallTrackSource");c(this,"smallImageSource");c(this,"_isMirror",!1);c(this,"cameraTrack");c(this,"cameraNode");c(this,"mirrorNode");c(this,"mixNode");c(this,"screenTrack");c(this,"screenNode");c(this,"selfModel",!1);c(this,"blurRadius",3);c(this,"arTrack");c(this,"Wasm");c(this,"waterMarkNode");c(this,"_waterMarkOption");c(this,"watermarkImageList",[]);c(this,"_beautyParams");c(this,"isUsingArTrack",!1);c(this,"_isMixScreen",!1);c(this,"_virtualBackground");c(this,"_virtualBackgroundAbortCallback");c(this,"virtualBackgroundInstance");c(this,"_bgAssetPath");c(this,"log",C.createLogger({id:"vm"}));c(this,"_checkId",0);c(this,"_use2d",!1);c(this,"_autoSwitchRenderMode",!0);c(this,"_selfieSegmentation");c(this,"encodePipeline",[]);c(this,"decodePipeline",[]);e&&(this.log.setUserId(e.userId),this.log.setSdkAppId(e.sdkAppId)),this.smallVideoContext=new Be({frameRate:15,logger:this.log,name:"s"}),this.enablePrintDetail()}get _hasVirtualBg(){return!!this._virtualBackground}get _hasWaterMark(){return this.watermarkImageList.length>0}get renderMode(){return this._autoSwitchRenderMode?"auto":this._use2d?"2d":"webgl"}set renderMode(e){if(this._autoSwitchRenderMode=e==="auto",this._autoSwitchRenderMode)return;let t=e==="2d";this._use2d!==t&&(this._use2d=t,this.clear(),this.videoContext=this._use2d?this.get2dVideoContext():this.getGlVideoContext(),this.update())}get2dVideoContext(){return this._2dVideoContext?this._2dVideoContext.destroy():this._2dVideoContext=new Be({frameRate:15,logger:this.log,name:"m"}),this._2dVideoContext.create({alpha:this._hasWaterMark||this._hasVirtualBg}),this._2dVideoContext}getGlVideoContext(){if(!this._glVideoContext)this._glVideoContext=new De({frameRate:15,logger:this.log,name:"m"});else if(this._glVideoContext.available)return this._glVideoContext;return this.initializeGlVideoContext(),this._glVideoContext}initializeGlVideoContext(){try{this._glVideoContext.create(),this._glVideoContext.on("unavailable",e=>{var t;this.emit("error",e),this.log.warn("video context unavailable",e),(t=this._virtualBackgroundAbortCallback)==null||t.call(this,e),this.update().catch(r=>{this.log.error(r)})})}catch(e){this.emit("error",e)}}enablePrintDetail(e=2e3){this._checkId=re.run(dr,()=>{this.destination&&this.log.debug(this.destination.getInfo())},{delay:e})}destroy(){var e,t;(e=this._2dVideoContext)==null||e.destroy(),(t=this._glVideoContext)==null||t.destroy(),this.smallVideoContext.destroy(),re.clearTask(this._checkId)}get needAlpha(){return this._hasWaterMark||this._hasVirtualBg}get active(){return(Ji||this._isMixScreen||this._isMirror||this._hasWaterMark||this._hasVirtualBg||this._beautyParams)&&this.checkOrCreateVideoContext()}sendCreateResult(e="videoCtxGl",t){let r=e==="videoCtxGl"?512700:512701;t?N.addFailedEvent({key:r,error:t}):N.addSuccessEvent({key:r})}checkOrCreateVideoContext(){let e=this._use2d;if(this._autoSwitchRenderMode&&(this._use2d=!this._hasVirtualBg),this.videoContext)if(this.videoContext.available){let t=!this.videoContext.hasAlpha&&this.needAlpha;if(this._autoSwitchRenderMode&&e===this._hasVirtualBg)this.clear();else if(t)if(this._use2d)this.clear();else return!0;else return!0}else{if(this._glVideoContext=new De({frameRate:15,logger:this.log,name:"m"}),this.initializeGlVideoContext(),this._glVideoContext.available)return this.videoContext=this._glVideoContext,this.videoContext.available;this.log.warn("webgl is still not available"),this.clear(),this._use2d=!0}return this.videoContext=this._use2d?this.get2dVideoContext():this.getGlVideoContext(),this.videoContext.available}get smallTrack(){var e;return(e=this.smallDestination)==null?void 0:e.videoTrack}get hasSmall(){return!!this.smallTrack}get initialTrack(){var e;return(e=this.cameraTrack)==null?void 0:e.mediaTrack}initVirtualBackground(e){return this._selfieSegmentation=e,this._selfieSegmentation.changeModel()}_setMainOutput(e){var t;try{let r=this.cameraTrack,{small:o,settings:n,player:a}=r;o?(this.smallVideoContext.available||(this.smallVideoContext.create({alpha:!1}),this.smallDestination=new La(this.smallVideoContext,o,this.log)),this.smallVideoContext.frameRate=o.frameRate,this.smallDestination.resolution=o,e?(this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource),this.smallImageSource?this.smallImageSource.image=e:(this.smallImageSource=this.smallVideoContext.createVideoImageSource(e),this.smallImageSource.connect(this.smallDestination))):(this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource?this.smallTrackSource.replaceTrack(this.initialTrack):(this.smallTrackSource=this.smallVideoContext.createVideoTrackSource(this.initialTrack,"smallTrackSource"),this.smallTrackSource.width=n.width,this.smallTrackSource.height=n.height,this.smallTrackSource.connect(this.smallDestination)))):this.smallVideoContext.available&&(this.smallVideoContext.destroy(),delete this.smallDestination,delete this.smallTrackSource,delete this.smallImageSource),Ji&&a.setCanvas(e);let d=e&&((t=this.destination)==null?void 0:t.videoTrack)||this.initialTrack;return this.isUsingArTrack&&this.arTrack&&(this.emit("output-track-changed"),d=this.arTrack),this._selfieSegmentation&&e&&!this._use2d&&(this._selfieSegmentation._glName||this._selfieSegmentation.setCanvas(e)),this.log.info(`set main output ${d?d.label:"no output track"}`),r.setOutputMediaStreamTrack(d)}catch(r){this.log.error("set main output failed",r)}}update(){return f(this,null,function*(){var r,o;if(!this.cameraTrack||!this.cameraTrack.mediaTrack)return;if(!this.active)return this.cameraNode&&this.clear(),this._setMainOutput();let{settings:e,profile:t}=this.cameraTrack;if(this._use2d||!this._virtualBackground&&!this._beautyParams?(this.destination||(this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log})),ot===16?this.initialTrack instanceof CanvasCaptureMediaStreamTrack?(this.cameraNode&&(this.cameraNode instanceof Li?(this.cameraNode.close(),delete this.cameraNode):this.cameraNode.image=this.initialTrack.canvas),this.cameraNode||(this.cameraNode=this.videoContext.createVideoImageSource(this.initialTrack.canvas,{name:"cameraCanvasSource",logger:this.log}))):(this.cameraNode&&(this.cameraNode instanceof Li?this.cameraNode.replaceTrack(this.initialTrack):(this.cameraNode.close(),delete this.cameraNode)),this.cameraNode||(this.cameraNode=this.videoContext.createVideoTrackSource(this.initialTrack,"cameraTrackSource"))):this.cameraNode?this.cameraNode.replaceTrack(this.initialTrack):this.cameraNode=this.videoContext.createVideoTrackSource(this.initialTrack,"cameraNodeSource"),this.cameraNode.resize(e.width,e.height)):(this.cameraNode&&this.cameraNode.close(),this.destination?this.destination.disableCheckMute():this.destination=new ka(this.videoContext,{name:"mainDestination",logger:this.log}),this.cameraNode=new rc(this.videoContext,{input:this.cameraTrack.mediaTrack,mirror:this._isMirror,bg:this._virtualBackground,selfModel:this.selfModel,waterMark:this._waterMarkOption,beautyParams:this._beautyParams,useTflite:!0,blurRadius:this.blurRadius,assetPath:this._bgAssetPath,selfieSegmentation:this._selfieSegmentation,Wasm:this.Wasm}),this.cameraNode.connect(this.destination),this.destination.enableCheckMute()),this.videoContext.frameRate=t.frameRate,this._use2d){let n=this.cameraNode;n.disconnect(),this._isMirror&&(this.mirrorNode||(this.mirrorNode=new tc(this.videoContext,this.log)),n=n.connect(this.mirrorNode),n.disconnect(),this.log.info("start mirror")),this.mixNode&&this.mixNode.close(),delete this.mixNode,(this._isMixScreen||this._hasWaterMark)&&(this.mixNode=new ic(this.videoContext,this.log),n.connect(this.mixNode,{zIndex:1}),this._hasWaterMark&&!this.waterMarkNode&&this._waterMarkOption&&(this.waterMarkNode=this.videoContext.createVideoImageSource(this._waterMarkOption.image,{autoResize:!1,logger:this.log}),this.waterMarkNode.resize(this._waterMarkOption.width,this._waterMarkOption.height),this.waterMarkNode.x=this._waterMarkOption.x,this.waterMarkNode.y=this._waterMarkOption.y),(r=this.waterMarkNode)==null||r.connect(this.mixNode,{zIndex:2}),this._isMixScreen&&this.screenTrack&&!this.screenNode&&(this.screenNode=this.videoContext.createVideoTrackSource(this.screenTrack.mediaTrack,"screenNodeSource")),(o=this.screenNode)==null||o.connect(this.mixNode,{zIndex:0}),n=this.mixNode,this.log.info("start mix",`${this.mixNode.width}x${this.mixNode.height}`)),n.connect(this.destination)}return this.log.info(`update ${this._use2d?"2d":"webgl"}`),this._setMainOutput(this.videoContext._canvas)})}changeInput(e){var t,r,o,n;if(e instanceof it)return this.log.info("change screen input",(t=e.mediaTrack)==null?void 0:t.label),this.setScreenTrack(e);if(e instanceof Ve)return this.log.info("change video input",(r=e.mediaTrack)==null?void 0:r.label),this.setCameraTrack(e);if(e instanceof ii){this.log.info("change remote input",(o=e.mediaTrack)==null?void 0:o.label);let a=e.mediaTrack;return e.setOutputMediaStreamTrack(a)}this.log.warn("change unknown input",(n=e.mediaTrack)==null?void 0:n.label)}removeInput(e){var t;e instanceof it?((t=this.screenNode)==null||t.close(),delete this.screenNode,delete this.screenTrack,this.update()):e instanceof Ve?(this.clear(),delete this.cameraTrack,this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource)):e instanceof ii&&e.source&&e.source.context.destroy()}setCameraTrack(e){return f(this,null,function*(){this.cameraTrack=e,this.update()})}setScreenTrack(e){return this.screenTrack=e,this._isMixScreen&&(this.screenNode?this.screenNode.replaceTrack(e.mediaTrack):this.update()),e.setOutputMediaStreamTrack(e.mediaTrack)}getWatermarkImage(e,t){return f(this,null,function*(){let r=document.createElement("canvas");t&&e&&(r.height=t,r.width=e);let o=r.getContext("2d");if(!o)throw new b({code:S.NOT_SUPPORTED,message:"Make image failed because of canvas context is null"});return this.watermarkImageList.sort((n,a)=>n.zIndex-a.zIndex),this.watermarkImageList.forEach(({image:n,x:a,y:d,width:l,height:m})=>{o.drawImage(n,a,d,l,m)}),zr(r.toDataURL())})}pushWaterMarkImageList(e){let{type:t}=e;this.watermarkImageList.some(o=>o.imageUrl===e.imageUrl&&o.height===e.height&&o.width===e.width&&o.x===e.x&&o.y===e.y&&o.type===e.type&&o.zIndex===e.zIndex)||((t==="mute"||t==="watermark")&&(this.watermarkImageList=this.watermarkImageList.filter(o=>o.type!==t)),this.watermarkImageList.push(e))}setBeautyParams(e){return f(this,null,function*(){this._beautyParams=e,this.update()})}stopBeauty(){return f(this,null,function*(){this._beautyParams=void 0,this.update()})}setWatermark(e){return f(this,null,function*(){var u,p;let t;try{t=yield zr((e==null?void 0:e.imageElement)||e.imageUrl)}catch(_){throw new b({code:S.INVALID_PARAMETER,message:`load image failed, url: ${e.imageUrl}`})}let{x:r=0,y:o=0,width:n=t.width,height:a=t.height,type:d="watermark",zIndex:l=2}=e;this.watermarkImageList.some(_=>_.type===d)?(this.watermarkImageList=this.watermarkImageList.filter(_=>_.type!==d),this.pushWaterMarkImageList({x:r,y:o,width:n,height:a,image:t,zIndex:l,type:d,imageUrl:e.imageUrl}),t=yield this.getWatermarkImage((u=this.cameraTrack)==null?void 0:u.settings.width,(p=this.cameraTrack)==null?void 0:p.settings.height),this._waterMarkOption={x:0,y:0,width:t.width,height:t.height,image:t},this.waterMarkNode?(this.waterMarkNode.x=0,this.waterMarkNode.y=0,this.waterMarkNode.resize(t.width,t.height),this.waterMarkNode.image=t):this.update()):(this.pushWaterMarkImageList({x:r,y:o,width:n,height:a,image:t,zIndex:l,type:d,imageUrl:e.imageUrl}),yield this.freshWatermark()),this.log.info("set watermark",JSON.stringify(this.watermarkImageList,(_,I)=>_==="imageUrl"?void 0:I))})}deleteWatermark(e="watermark"){return f(this,null,function*(){this.watermarkImageList=this.watermarkImageList.filter(t=>t.type!==e),this.log.info("delete watermark",e,JSON.stringify(this.watermarkImageList,(t,r)=>t==="imageUrl"?void 0:r)),yield this.freshWatermark()})}freshWatermark(){return f(this,null,function*(){var t,r,o;(t=this.waterMarkNode)==null||t.close(),delete this.waterMarkNode,delete this._waterMarkOption;let e=yield this.getWatermarkImage((r=this.cameraTrack)==null?void 0:r.settings.width,(o=this.cameraTrack)==null?void 0:o.settings.height);this._waterMarkOption={x:0,y:0,width:e.width,height:e.height,image:e},this.update()})}setVirtualBackground(e){return f(this,null,function*(){if(!e)delete this._virtualBackground,delete this._virtualBackgroundAbortCallback;else{if(e.onAbort&&(this._virtualBackgroundAbortCallback=e.onAbort),this._use2d&&!this._autoSwitchRenderMode)return Promise.reject(new Error("not support virtual background in 2d mode"));this._bgAssetPath=e.assetPath,e.type==="image"?this._virtualBackground=yield zr(e.imageUrl):(this.blurRadius=e.blurLevel||this.blurRadius||3,this._virtualBackground=e.type)}if(this.log.info(`${this._virtualBackground?"start":"stop"} virtual background, ${(e==null?void 0:e.type)||""}, ${this.blurRadius||""}`),yield this.update(),this._virtualBackground&&!this._glVideoContext.available)throw new b({code:S.INVALID_OPERATION,message:`webgl context create failed, ${this._glVideoContext.error}`})})}get mixScreen(){return this._isMixScreen}set mixScreen(e){var t;this._isMixScreen=e,this._isMixScreen||((t=this.screenNode)==null||t.close(),delete this.screenNode),this.update()}set mirror(e){var t;this._isMirror!==e&&(this._isMirror=e,this._isMirror||((t=this.mirrorNode)==null||t.close(),delete this.mirrorNode),this.update())}get mirror(){return this._isMirror}enableAr(e){this.arTrack=e,this.isUsingArTrack=!0,this.update()}updateAr(){return f(this,null,function*(){var e;(e=this.cameraTrack)!=null&&e.mediaTrack&&(yield this.virtualBackgroundInstance.ar.updateInputTrack(this.cameraTrack.mediaTrack.clone()))})}disableAr(){var e;this.isUsingArTrack=!1,(e=this.arTrack)==null||e.stop(),this.arTrack=void 0,this.update()}createDecodeContext(e){return new oc(e)}clear(){var e;(e=this.videoContext)==null||e.disconnect(),delete this.destination,delete this.cameraNode,delete this.mirrorNode,delete this.screenNode,delete this.waterMarkNode}addEncodeProcessor({processor:e,type:t}){var r;this.encodePipeline.includes(e)||(this.encodePipeline[t]=e,(r=this.room)==null||r.enableInsertableStreams())}addDecodeProcessor({processor:e,type:t}){var r;this.decodePipeline.includes(e)||(this.decodePipeline[t]=e,(r=this.room)==null||r.enableInsertableStreams())}removeEncodeProcessor({type:e}){this.encodePipeline[e]=void 0}removeDecodeProcessor({type:e}){this.decodePipeline[e]=void 0}};y([ua(function(e){this.log.error("update failed",e)})],en.prototype,"update",1);var NT=0;var nc=class extends Q{constructor(e){super("room");c(this,"seq",++NT);c(this,"sdkAppId");c(this,"userId");c(this,"userSig");c(this,"privateMapKey");c(this,"latencyLevel");c(this,"tinyId");c(this,"scene");c(this,"roomId");c(this,"useStringRoomId");c(this,"role","anchor");c(this,"joinParams",null);c(this,"localTracks",new Set);c(this,"enableAutoPlayDialog",!0);c(this,"autoReceiveAudio",!0);c(this,"autoReceiveVideo",!0);c(this,"proxy_ws");c(this,"proxy_wt");c(this,"proxy_unified");c(this,"checkSystemResult",{result:!0,detail:{isBrowserSupported:!0,isWebRTCSupported:!0,isWebCodecsSupported:!0,isMediaDevicesSupported:!0,isScreenShareSupported:!0,isSmallStreamSupported:!0,isH264EncodeSupported:!0,isVp8EncodeSupported:!0,isH264DecodeSupported:!0,isVp8DecodeSupported:!0}});c(this,"keyPointManager");c(this,"audioManager");c(this,"videoManager");c(this,"callDurationCalculator");c(this,"badCaseDetector");c(this,"scheduleResult",{domains:null,iceServers:null,iceTransportPolicy:null,trtcAutoConf:null});c(this,"videoDecodeFallbackType");c(this,"_isUsingCachedSchedule",!1);c(this,"_log",C.createLogger({id:`r${this.seq}`}));c(this,"_joinedTimestamp",0);c(this,"_sdkType");c(this,"heartbeatReport");c(this,"quality");c(this,"enableSEI");c(this,"isDestroyed",!1);this.useStringRoomId=!!e.useStringRoomId,he(e.autoReceiveAudio)&&(this.autoReceiveAudio=e.autoReceiveAudio),he(e.autoReceiveVideo)&&(this.autoReceiveVideo=e.autoReceiveVideo),he(e.enableAutoPlayDialog)&&(this.enableAutoPlayDialog=e.enableAutoPlayDialog),this._sdkType=e.sdkType,this.keyPointManager=new ep({room:this,frameWorkType:e.frameWorkType,component:e.component,language:e.language}),this.callDurationCalculator=new tp({room:this}),this.badCaseDetector=new ip({room:this}),this.audioManager=new _a(this),this.videoManager=new en(this)}get scriptTransformWorker(){}get isMainStreamPublished(){for(let e of this.localTracks)if(e.mediaType&4)return!0;return!1}get isAuxStreamPublished(){for(let e of this.localTracks)if(e.mediaType&2)return!0;return!1}get hasAuxStream(){for(let e of this.remotePublishedUserMap.values())if(e.muteState.hasAuxiliary)return!0;return this.isAuxStreamPublished}get localMainVideoTrack(){for(let e of this.localTracks)if(e.mediaType&4)return e;return null}get localAuxVideoTrack(){for(let e of this.localTracks)if(e.mediaType&2)return e;return null}getLogger(){return this._log}get isJoining(){return this.state.toString()==="joining"}get isJoined(){return this.state==="joined"}get isLeft(){return this.state==="left"}addTrack(e){return f(this,null,function*(){return this.publish(e)})}removeTrack(e){return f(this,null,function*(){return this.unpublish(e)})}replaceTrack(e){return f(this,null,function*(){})}setEncodedDataProcessingListener(e){throw new Error("Method not implemented.")}enableAIVoice(e){throw new Error("Method not implemented.")}setProxyServer(e){if(K(e))e.startsWith("wss://")?this.proxy_ws=e:e.startsWith("https://")&&(this.proxy_wt=e);else if(Qe(e)){let{websocketProxy:t,webtransportProxy:r,loggerProxy:o,scheduleProxy:n,unifiedProxy:a}=e;this.proxy_ws=t,this.proxy_wt=r,this.proxy_unified=a,a?(Va([a,a]),or(`https://${a}`)):(o&&or(o),n&&Va(n))}E.once(T.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({sched_domain:Pt.main,sched_back_domain:Pt.backup,signal_domain:this.proxy_ws||this.proxy_wt||""}))}getRemoteAudioStats(){return f(this,null,function*(){let e={};return this.remotePublishedUserMap.forEach(t=>{e[t.userId]=t.remoteAudioTrack.stat}),e})}getTransportStats(){return f(this,null,function*(){var t;let e={rtt:((t=this.quality)==null?void 0:t.uplinkRTT)||0,downlinksRTT:{}};if(this.quality)for(let r of this.quality.downlinkInfo)e.downlinksRTT[r.userId]=r.rtt;return e})}getRemoteVideoStats(){return f(this,arguments,function*(e="main"){let t={};return this.remotePublishedUserMap.forEach(r=>{let o=e==="auxiliary"?r.remoteAuxiliaryTrack:r.remoteVideoTrack;t[r.userId]=o.stat}),t})}checkDestroy(){if(this.isDestroyed)throw new b({code:S.INVALID_OPERATION,message:U({key:x.CLIENT_DESTROYED,data:{funName:"join"}})})}destroy(){if(this.isJoined)throw this._log.warn(ve.INVALID_DESTROY),new b({code:S.INVALID_OPERATION,message:U({key:x.INVALID_DESTROY})});this._log.info("destroy room"),this.audioManager.destroy(),this.videoManager.destroy(),this.keyPointManager.destroy(),this.callDurationCalculator.destroy(),this.badCaseDetector.destroy(),this.isDestroyed=!0,E.emit(T.ROOM_DESTROY,{room:this})}schedule(e,t){return f(this,null,function*(){var o,n,a;let r=L();try{let{isCached:d,result:l,detailCost:m}=yield Ll({userId:this.userId,sdkAppId:this.sdkAppId,roomId:this.useStringRoomId?e.strRoomId:e.roomId,useStringRoomId:this.useStringRoomId,version:Ce,userSig:this.userSig,role:this.scene==="live"?e.role:void 0,frameWorkType:t,latencyLevel:e.latencyLevel});this._isUsingCachedSchedule=d,this._log.info(`schedule cache:${+d} ${ht(l,{keysToExclude:["username","credential"]})}`),d&&E.once(T.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({scheduleCache:1})),this.scheduleResult=v(v({},this.scheduleResult),l),Y((o=l.config)==null?void 0:o.retryCount)&&Cc(l.config.retryCount),K((n=l.config)==null?void 0:n.loggerDomain)&&or(l.config.loggerDomain),this.videoDecodeFallbackType=((a=l.config)==null?void 0:a.videoDecodeFallback)||this.videoDecodeFallbackType,E.emit(T.JOIN_SCHEDULE_SUCCESS,{room:this,schedule:this.scheduleResult,detailCost:m}),N.addSuccessEvent({key:521700,cost:L()-r,split:50})}catch(d){throw N.addFailedEvent({key:521700,error:d}),d}})}sendAbilityStatus(e){}enableInsertableStreams(){return Promise.resolve()}};var _p=ke(Ge());var hu=ke(iu());var op=s=>{let i=ge(s),e={audioSsrc:0,audioRtxSsrc:0,bigVideoSsrc:0,bigVideoRtxSsrc:0,smallVideoSsrc:0,smallVideoRtxSsrc:0,auxVideoSsrc:0,auxVideoRtxSsrc:0};return i.media.forEach((t,r)=>{var o;if(t.ssrcs&&!g(t.ssrcs[0].id)){let n=Number(t.ssrcs[0].id),a=Number((o=t.ssrcs.filter(d=>d.attribute==="cname")[1])==null?void 0:o.id);switch(r){case 0:e.audioSsrc=n;break;case 1:e.bigVideoSsrc=n,e.bigVideoRtxSsrc=a;break;case 2:e.smallVideoSsrc=n,e.smallVideoRtxSsrc=a;break;case 3:e.auxVideoSsrc=n,e.auxVideoRtxSsrc=a;break}}}),e};function np(s){var e;let i=[];for(let t=0;t<s.rtp.length;t++){if(["rtx","red","ulpfec"].includes(s.rtp[t].codec))continue;let r=s.fmtp.filter(o=>o.payload===s.rtp[t].payload)[0];i.push({payload:s.rtp[t].payload,codec:s.rtp[t].codec,fmtp:r?r.config:"",rate:s.rtp[t].rate,rtx:((e=s.rtp[t+1])==null?void 0:e.codec)==="rtx"?s.rtp[t+1].payload:0,rtcpfb:((s==null?void 0:s.rtcpFb)||[]).filter(o=>o.payload===s.rtp[t].payload).map(({type:o,subtype:n})=>({id:o,params:n?[n]:[]}))})}return i}function vT(){return f(this,null,function*(){let s=new RTCPeerConnection;s.addTransceiver(h.VIDEO,{direction:h.TRANSCEIVER_DIRECTION_RECVONLY});let i=yield s.createOffer();if(!i.sdp)return[];let e=ge(i.sdp),t=np(e.media[0]);return s.close(),t})}var ap=(s,i)=>f(void 0,null,function*(){var d;let e=ge(s),t={ice:{ufrag:"",password:""},dtls:{hash:"",fingerprint:"",setup:""},audio:{codecs:[],extensions:[]},video:{codecs:[],decoders:[],extensions:[]},useDataChannel:!1};t.ice.ufrag=String(e.media[0].iceUfrag),t.ice.password=e.media[0].icePwd||"",e.fingerprint&&(t.dtls.hash=e.fingerprint.type,t.dtls.fingerprint=e.fingerprint.hash,t.dtls.setup=e.setup||""),e.media[0].fingerprint&&(t.dtls.hash=e.media[0].fingerprint.type,t.dtls.fingerprint=e.media[0].fingerprint.hash),t.dtls.setup=e.media[0].setup||"";let r=e.media[0],o=e.media[1];r.ext&&(t.audio.extensions=r.ext.map(l=>({id:l.value,uri:l.uri}))),o.ext&&(t.video.extensions=o.ext.map(l=>({id:l.value,uri:l.uri})));let n={codec:r.rtp[0].codec,fmtp:r.fmtp[0].config,payload:r.fmtp[0].payload,rate:r.rtp[0].rate,channels:r.rtp[0].encoding,rtcpfb:[],rtx:0};(d=r.rtcpFb)==null||d.forEach(({payload:l,type:m,subtype:u})=>{if(l===n.payload){let p={id:m,params:[]};u&&p.params.push(u),n.rtcpfb.push(p)}}),t.audio.codecs.push(n);let a=["h264","vp8"];return i&&a.shift(),t.video.codecs=[...np(o)].filter(l=>a.includes(l.codec.toLocaleLowerCase())),t.video.decoders=(yield vT()).filter(l=>["h264","vp8"].includes(l.codec.toLocaleLowerCase())),t}),cp=({serverAbility:s,clientAbility:i,offerSDP:e,enableCustomMessage:t})=>{let r=ge(e),o={extmapAllowMixed:"extmap-allow-mixed",groups:r.groups,icelite:"ice-lite",media:[],msidSemantic:{semantic:"",token:"WMS"},name:"-",origin:{address:"127.0.0.1",username:"-",sessionId:String(Date.now()),sessionVersion:1,netType:"IN",ipVer:4},timing:{start:0,stop:0},version:0},n={candidates:s.candidates.map(a=>({component:1,foundation:"1",generation:0,ip:a.ip,port:a.port,priority:a.priority,transport:a.foundation,type:a.type})),connection:{version:4,ip:"0.0.0.0"},direction:h.TRANSCEIVER_DIRECTION_RECVONLY,ext:s.audio.extensions.map(a=>({value:a.id,uri:a.uri})),fingerprint:{type:s.dtls.hash,hash:s.dtls.fingerprint},fmtp:[{payload:s.audio.codecs[0].payload,config:s.audio.codecs[0].fmtp}],icePwd:s.ice.password,iceUfrag:s.ice.ufrag,mid:"0",payloads:String(s.audio.codecs[0].payload),port:r.media[0].port,protocol:r.media[0].protocol,type:h.AUDIO,setup:s.dtls.setup,rtcpFb:s.audio.codecs[0].rtcpfb.map(a=>({payload:s.audio.codecs[0].payload,type:a.id,subtype:a.params[0]})),rtcpMux:"rtcp-mux",rtcpRsize:"rtcp-rsize",rtp:[{payload:s.audio.codecs[0].payload,codec:s.audio.codecs[0].codec,rate:s.audio.codecs[0].rate,encoding:s.audio.codecs[0].channels}]};return o.media.push(n),[1,2,3].forEach(a=>{o.media.push(mu({mid:a,serverAbility:s,clientAbility:i,parsedOffer:r}))}),t&&o.media.push(r.media.find(a=>a.mid==="dc")),Et(o)},mu=({mid:s,serverAbility:i,clientAbility:e,parsedOffer:t,isDownlink:r=!1})=>{let o={candidates:i.candidates.map(n=>({component:1,foundation:"1",generation:0,ip:n.ip,port:n.port,priority:n.priority,transport:n.foundation,type:n.type})),connection:{version:4,ip:"0.0.0.0"},direction:h.TRANSCEIVER_DIRECTION_RECVONLY,ext:i.video.extensions.map(n=>({value:n.id,uri:n.uri})),fingerprint:{type:i.dtls.hash,hash:i.dtls.fingerprint},fmtp:[],icePwd:i.ice.password,iceUfrag:i.ice.ufrag,mid:String(s),payloads:"",port:t.media[0].port,protocol:t.media[0].protocol,type:h.VIDEO,setup:i.dtls.setup,rtcpFb:[],rtcpMux:"rtcp-mux",rtcpRsize:"rtcp-rsize",rtp:[]};if(r){let n=i.video.decoders;(!n||n.length===0)&&(n=i.video.codecs),(!n||n.length===0)&&(n=e.video.decoders),n.forEach(a=>{Ur(o,a)})}else{let n=i.video.codecs.findIndex(d=>d.codec.toLowerCase()===(i.useVp8?"vp8":"h264")),a=i.video.codecs[n]||e.video.codecs[0];Ur(o,a)}return o},Ur=(s,i)=>{s.payloads=`${s.payloads} ${i.payload}`.trim(),s.fmtp.push({payload:i.payload,config:i.fmtp}),s.rtcpFb=[...s.rtcpFb||[],...i.rtcpfb.map(e=>({payload:i.payload,type:e.id,subtype:e.params[0]}))],s.rtp.push({payload:i.payload,codec:i.codec.toUpperCase(),rate:i.rate}),i.rtx&&(s.payloads=`${s.payloads} ${i.rtx}`,s.fmtp.push({payload:i.rtx,config:`apt=${i.payload}`}),s.rtp.push({payload:i.rtx,codec:"rtx",rate:i.rate}))};function DT(s){let i=new Set(["urn:ietf:params:rtp-hdrext:sdes:mid","urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id","urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id"]);s.ext&&(s.ext=s.ext.filter(e=>!i.has(e.uri)))}function OT(s){if(!s.rtcpFb)return;let i=[];s.rtcpFb.forEach((e,t)=>{var r;i.push(e),s.rtcpFb&&((r=s.rtcpFb[t+1])==null?void 0:r.payload)!==e.payload&&e.type!=="rrtr"&&i.push({payload:e.payload,type:"rrtr"})}),s.rtcpFb=i}function MT(s){s.type===h.VIDEO&&s.fmtp&&s.fmtp.forEach(i=>{i.config.includes("apt")||(i.config+=";sps-pps-idr-in-keyframe=1")})}function kT(s){s.type===h.AUDIO&&s.fmtp&&s.fmtp.forEach(i=>{i.config+=";sprop-stereo=1;stereo=1"})}var dp=(s,i,e)=>{let t=hu.default.parse(s);return t.media.forEach((r,o)=>{var n;if((r.type===h.AUDIO||r.type===h.VIDEO)&&(OT(r),MT(r),kT(r),DT(r),r.type===h.VIDEO)){if(o<4)r.payloads="",r.fmtp=[],r.rtp=[],r.rtcpFb=[],i.video.codecs.forEach(a=>Ur(r,a));else if(e){r.payloads="",r.fmtp=[],r.rtp=[],r.rtcpFb=[];let a=e.video.decoders;(!a||a.length===0)&&(a=e.video.codecs),(!a||a.length===0)&&(a=i.video.decoders),a.forEach(d=>Ur(r,d))}}(n=r.payloads)!=null&&n.includes("datachannel")&&t.groups&&r.mid&&(t.groups[0].mids=t.groups[0].mids.replace(r.mid,"dc"),r.mid="dc")}),hu.default.write(t)};var lp=ke(Ge());var ac=class extends lp.EventEmitter{constructor(e){super();this.room=e;c(this,"mainFpsHealth",1);c(this,"mainBitrateHealth",1);c(this,"badMainBitrateHealthCount",0);c(this,"lastEmitBadHealthTime",0);c(this,"log");!me&&vt&&E.on("262",this.onVideoCodecChanged,this),this.log=e.getLogger().createChild({id:"h-d"})}onVideoCodecChanged({remoteUserId:e,streamType:t,isHWCodec:r,codec:o}){if(!(e||t===7||o!=="h264")){if(!r){this.room.off("heartbeat-report",this.onHeartbeatReport,this);return}this.room.listeners("heartbeat-report").includes(this.onHeartbeatReport)||this.room.on("heartbeat-report",this.onHeartbeatReport,this)}}onHeartbeatReport(e){Date.now()-this.lastEmitBadHealthTime<30*1e3||(e.msg_up_stream_info.msg_video_status.forEach(t=>{if(t.uint32_video_enc_fps&&t.uint32_video_capture_fps){let r=t.uint32_video_enc_fps/t.uint32_video_capture_fps;t.uint32_video_stream_type===2&&(this.mainFpsHealth=r)}if(t.uint32_video_codec_bitrate&&t.uint32_video_stream_type===2){let{localMainVideoTrack:r}=this.room;r&&(this.mainBitrateHealth=t.uint32_video_codec_bitrate/1e3/r.profile.bitrate)}}),this.log.debug(`mainBitrateHealth: ${this.mainBitrateHealth} mainFpsHealth: ${this.mainFpsHealth}`),this.mainBitrateHealth>.5&&(this.badMainBitrateHealthCount=0),this.mainFpsHealth>.9&&this.mainBitrateHealth<.5&&(this.badMainBitrateHealthCount++,this.badMainBitrateHealthCount>3&&(this.badMainBitrateHealthCount=0,this.lastEmitBadHealthTime=Date.now(),this.log.warn(`bad main bitrate health: ${this.mainBitrateHealth}`),this.emit("1",{isAux:!1}))))}destroy(){E.off("262",this.onVideoCodecChanged,this),this.room.off("heartbeat-report",this.onHeartbeatReport,this)}};c(ac,"EVENT_BAD_HEALTH","bad_health");var up=ac;function hp({seiMessageList:s,isAudio:i,isMain:e}){return new TransformStream({transform(t,r){let o=t;i?audioEncodePipeline.forEach(n=>{o=n({frame:o})}):videoEncodePipeline.forEach(n=>{o=n({frame:o,seiMessageList:s,onDump:()=>{self.postMessage({type:"dump",isAudio:i,data:o.data,userId:"",streamType:e?"main":"auxiliary"})}})}),r.enqueue(o)}})}function mp(s,i,e){return new TransformStream({transform(t,r){let o=t;videoDecodePipeline.forEach(n=>{o=n({frame:o,onSEI:a=>{a.forEach(d=>{self.postMessage({type:"sei",seiPayloadType:d.seiPayloadType,data:d.seiPayload.buffer,userId:s,streamType:i})})},onDump:()=>{self.postMessage({type:"dump",isAudio:e,data:o.data,userId:s,streamType:i})}})}),r.enqueue(o)}})}function pp(s){let i=[vi],e=[Gl,Hl,$l,Fl,hp,mp],t=()=>{let l=[],m=[],u=[];self.onmessage=p=>{p.data.type==="sei"&&(p.data.isMain?(l.push(p.data.data),p.data.small&&u.push(p.data.data)):m.push(p.data.data))},self.onrtctransform=p=>{let{options:_}=p.transformer,I=_.isReceiver?mp(_.userId,_.streamType,_.isAudio):hp({isAudio:_.isAudio,seiMessageList:_.isMain?_.small?u:l:m,isMain:_.isMain});p.transformer.readable.pipeThrough(I).pipeTo(p.transformer.writable)}},r=`const videoEncodePipeline=[${s.videoEncodePipeline.toString()}];
108
+ const videoDecodePipeline=[${s.videoDecodePipeline.toString()}];
109
+ const audioEncodePipeline = [${s.audioEncodePipeline.toString()}];
110
+ const audioDecodePipeline = [${s.audioDecodePipeline.toString()}];`,o=`(()=>{${i.map(l=>`const ${l.name}=(()=>${l.toString()})()`).join(`
111
+ `)}
112
+ ${e.map(l=>l.toString()).join(`
113
+ `)};(${t})();${r}})()`,n=new Blob([o],{type:"text/javascript"}),a=URL.createObjectURL(n),d=new Worker(a);return URL.revokeObjectURL(a),d}var si=(l=>(l.TRACK="track",l.DATA_CHANNEL_MESSAGE="data_channel_msg",l[l.CONNECTION_STATE_CHANGED="connection-state-changed"]="CONNECTION_STATE_CHANGED",l[l.FIREWALL_RESTRICTION="firewall-restriction"]="FIREWALL_RESTRICTION",l.RECONNECTED="spc-reconnected",l.RECONNECT_FAILED="spc-reconnect-failed",l.ERROR="error",l.SEI_MESSAGE="sei-message",l.DUMP="dump",l))(si||{}),gp=0,Tp=!1,LT=new Set,PT=s=>gp>2&&!Tp&&LT.size===0&&s,wT=1,Ut=class extends _p.default{constructor({signalChannel:e,room:t,enableCustomMessage:r}){super();c(this,"stat",{iceStartTime:0,iceEndTime:0,dtlsStartTime:0,dtlsEndTime:0,peerConnectionStartTime:0,peerConnectionEndTime:0});c(this,"currentState","DISCONNECTED");c(this,"_room");c(this,"_signalChannel");c(this,"_peerConnection",null);c(this,"_datachannel",null);c(this,"_enableCustomMessage");c(this,"_log");c(this,"_downlinkMIDMap",new Map);c(this,"_downlinkMIDUserIDMap",new Map);c(this,"_reconnectionTimer",-1);c(this,"reconnectionCount",0);c(this,"clientAbility");c(this,"_serverAbility",null);c(this,"addDownlinkQueue",new Set);c(this,"removeDownlinkQueue",new Set);c(this,"_parsedAnswer",null);c(this,"_updateSDPPromise",null);c(this,"_waitForPCConnectedPromise");c(this,"clearConnectTimeout");c(this,"_isSDPLogged",!1);c(this,"enableInsertableStreams",!1);c(this,"insertableStreamsAbortMap",new Map);c(this,"receiverRemoteTrackMap",new WeakMap);c(this,"scriptTransformWorker");c(this,"_isRelayTried",!1);c(this,"_rttOverCount",0);this._room=t,this._enableCustomMessage=r,this._signalChannel=e,this._log=C.createLogger({id:`spc${wT++}`,userId:this._room.userId,sdkAppId:this._room.sdkAppId}),this._room.enableCodecPipeline&&(Ri?this.enableInsertableStreams=!0:this.initScriptTransformWorker()),this._room.healthDetector.on("1",this.onBadHealth,this)}get isH264EncodeSupported(){let e=this._room.checkSystemResult.detail.isH264EncodeSupported;return this._serverAbility&&(e=e&&!!this._serverAbility.video.codecs.find(t=>t.codec.toLowerCase()==="h264")),e}addAbortController(e,t){var r;(r=this.insertableStreamsAbortMap.get(e))==null||r.abort("destory"),this.insertableStreamsAbortMap.set(e,t)}get isVP8EncodeSupported(){let e=this._room.checkSystemResult.detail.isVp8EncodeSupported;return this._serverAbility&&(e=e&&this._serverAbility.video.codecs.find(t=>t.codec.toLowerCase()==="vp8")),e}get videoCodec(){var t,r;let e=(t=this._parsedAnswer)==null?void 0:t.media[1].rtp.find(o=>["h264","vp8"].includes(o.codec.toLowerCase()));return e?e.codec.toLowerCase():(r=this._serverAbility)!=null&&r.useVp8?"vp8":"h264"}get downlinkVideoCodec(){var e;return(e=this._serverAbility)!=null&&e.video.decoders.find(t=>t.codec.toLowerCase()==="h264")?"h264":"vp8"}get isUsingH264(){return this.videoCodec==="h264"}get is42001fSupported(){return this.clientAbility?!!this.clientAbility.video.codecs.find(e=>e.fmtp.includes("42001f")):!1}get uplinkSSRC(){return this._peerConnection&&this._peerConnection.localDescription?op(this._peerConnection.localDescription.sdp):{audioSsrc:0,audioRtxSsrc:0,bigVideoSsrc:0,bigVideoRtxSsrc:0,smallVideoSsrc:0,smallVideoRtxSsrc:0,auxVideoSsrc:0,auxVideoRtxSsrc:0}}onBadHealth({isAux:e}){this.useHWEncoder(!1,e?7:2)}initScriptTransformWorker(){Yn&&(this.scriptTransformWorker=pp({videoEncodePipeline:this._room.videoManager.encodePipeline,videoDecodePipeline:this._room.videoManager.decodePipeline,audioEncodePipeline:this._room.audioManager.encodePipeline,audioDecodePipeline:this._room.audioManager.decodePipeline}),this.scriptTransformWorker.onmessage=e=>{e.data.type==="sei"&&this.emit("sei-message",e.data),e.data.type==="dump"&&this.emit("dump",e.data)},this.scriptTransformWorker.onerror=e=>{this._log.error("scriptTransformWorker error: ",e)})}get isReconnecting(){return this.currentState==="RECONNECTING"||this._reconnectionTimer>0||this.reconnectionCount>0}get dtlsTransport(){if(!this._peerConnection)return null;let e=this._peerConnection.getSenders();return e.length===0?null:e[0].transport}initialize(){return f(this,null,function*(){var t;let e;try{return this._peerConnection=new RTCPeerConnection({encodedInsertableStreams:this.enableInsertableStreams,offerExtmapAllowMixed:!0,iceServers:this._room.getIceServers(),iceTransportPolicy:this._room.getIceTransportPolicy(),sdpSemantics:this._room.sdpSemantics,bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",tcpCandidatePolicy:"disable",IceTransportsType:"nohost"}),this._peerConnection.oniceconnectionstatechange=()=>{if(!this._peerConnection)return;let r=this._peerConnection.iceConnectionState;this._log.debug(`ice state: ${r}`),r==="checking"&&this.stat.iceStartTime===0?this.stat.iceStartTime=Date.now():r==="connected"&&this.stat.iceEndTime===0?(this.stat.iceEndTime=Date.now(),N.addSuccessEvent({key:521711,cost:this.stat.iceEndTime-this.stat.iceStartTime})):r==="failed"&&N.addFailedEvent({key:521711})},this._peerConnection.onsignalingstatechange=()=>{var o;let r=((o=this._peerConnection)==null?void 0:o.signalingState)||"";this._log[r==="closed"?"debug":"info"](`signaling state: ${r}`)},this._peerConnection.onconnectionstatechange=this.onConnectionStateChange.bind(this),this._peerConnection.ontrack=r=>this.emit("track",r),this._enableCustomMessage&&(this._datachannel=this._peerConnection.createDataChannel(`${this._room.userId}dc`),this._datachannel.binaryType="arraybuffer",this._datachannel.onopen=()=>{this._log.info("datachannel open")},this._datachannel.onclose=()=>{this._log.warn("datachannel close")},this._datachannel.onmessage=r=>{let o=new fu(r.data);this.emit("data_channel_msg",{data:o})},this._datachannel.onerror=r=>{this._log.warn("datachannel error",r)}),this._peerConnection.addTransceiver(h.AUDIO,{direction:h.TRANSCEIVER_DIRECTION_SENDONLY}),this._peerConnection.addTransceiver(h.VIDEO,{direction:h.TRANSCEIVER_DIRECTION_SENDONLY}),this._peerConnection.addTransceiver(h.VIDEO,{direction:h.TRANSCEIVER_DIRECTION_SENDONLY}),this._peerConnection.addTransceiver(h.VIDEO,{direction:h.TRANSCEIVER_DIRECTION_SENDONLY}),e=yield this._peerConnection.createOffer(),this.clientAbility=yield ap(e.sdp,((t=this._room.scheduleResult.config)==null?void 0:t.remove264FromSDP)||!1),yield this.setOffer(e),this.dtlsTransport&&(this.dtlsTransport.onstatechange=()=>{let{dtlsTransport:r}=this;r&&(this._log.debug(`dtls state: ${r.state}`),r.state==="connecting"&&this.stat.dtlsStartTime===0?this.stat.dtlsStartTime=Date.now():r.state==="connected"&&this.stat.dtlsEndTime===0&&(this.stat.dtlsEndTime=Date.now()))}),N.addSuccessEvent({key:521707}),this.clientAbility}catch(r){throw N.addFailedEvent({key:521707,error:r}),this._log.error(`initialize failed ${r}
114
+ offer: ${e==null?void 0:e.sdp}`),r}})}setPriority(e="high"){if(this._peerConnection)try{this._peerConnection.getSenders().forEach(r=>{let o=r.getParameters();o.encodings[0]&&(o.encodings[0].priority=e,o.encodings[0].networkPriority=e,r.setParameters(o).catch(n=>{this._log.warn("setPriority error ",n)}))})}catch(t){this._log.warn("setPriority error ",t)}}connect(e,t=!1){return f(this,null,function*(){var r,o;try{if(this.currentState==="CONNECTED")return;let n=L(),a={type:"answer",sdp:cp({serverAbility:e,clientAbility:this.clientAbility,offerSDP:this._peerConnection.localDescription.sdp,enableCustomMessage:this._enableCustomMessage})};this._serverAbility=e,yield this.setAnswer(a),yield this.waitForPeerConnectionConnected();let d=((r=this._room.scheduleResult.config)==null?void 0:r.priority)||((o=this._room.joinParams)==null?void 0:o.priority)||new URLSearchParams(location.search).get("priority");d&&this.setPriority(d),t||N.addSuccessEvent({key:521703,cost:L()-n})}catch(n){let a=n instanceof b&&n.code===S.API_CALL_ABORTED;throw a||this._log.error(`connect failed: ${n}`,e),this.reset(),!a&&!this.isReconnecting&&(N.addFailedEvent({key:521703,error:n}),this.emitConnectionStateChangedEvent("DISCONNECTED"),this.startReconnection()),n}})}reconnect(){return f(this,null,function*(){if(this._reconnectionTimer!==-1){this._log.warn("reconnect() is reconnecting, ignore current reconnection");return}if(!this._signalChannel.isConnected){this._log.warn("reconnect() wait signal channel is connected"),this._signalChannel.once(Ee.CONNECTED,this.reconnect,this);return}try{this.reconnectionCount++,this._log.warn(`reconnect() trying [${this.reconnectionCount}]`),this.reset();let e=yield this.initialize(),t=yield this._signalChannel.sendWaitForResponse({command:q.REBUILD_PEER_CONNECTION,responseCommand:B.REBUILD_PEER_CONNECTION_RES,data:{ability:e},enableLog:!1});if(t.data.code!==0)throw new b({code:t.data.code,message:t.data.message});yield this.connect(t.data.data.ability,!0),N.addSuccessEvent({key:521704}),this._log.warn("reconnect() success"),this.stopReconnection(),E.emit(T.SPC_RECONNECTED,{room:this._room}),this.emit("spc-reconnected")}catch(e){if(!this.isReconnecting)return;if(e!=null&&e.message.includes("timeout")){let t=Ct(this.reconnectionCount);this._log.warn(`reconnect() timeout, try again after ${t/1e3}s`),yield hi(t,r=>{this._reconnectionTimer=r}),this.clearReconnectionTimer(),yield this.reconnect()}else this._log.error(`reconnect() failed ${e==null?void 0:e.code} ${e}`),N.addFailedEvent({key:521704,error:e}),this.reconnectionCount>=ci()&&this._log.warn(`SDK has tried reconnect for ${ci()} times, but all failed, please check your network`),this.stopReconnection(),this.emitConnectionStateChangedEvent("DISCONNECTED"),this.emit("error")}})}getPeerConnection(){return this._peerConnection}startReconnection(){return f(this,null,function*(){this.isReconnecting||(this._log.warn("start reconnect"),this._updateSDPPromise=null,this.emitConnectionStateChangedEvent("RECONNECTING"),yield this.reconnect())})}stopReconnection(){var e;this.isReconnecting&&(this._log.info("stop reconnect"),this.reconnectionCount=0,this.clearReconnectionTimer(),(e=this.clearConnectTimeout)==null||e.call(this),this._signalChannel.off(Ee.CONNECTED,this.reconnect,this),this.currentState==="RECONNECTING"&&this.emitConnectionStateChangedEvent("DISCONNECTED"))}checkPeerConnectionToReconnect(){var e;!this.isReconnecting&&((e=this._peerConnection)==null?void 0:e.connectionState)===ce.CLOSED&&this.startReconnection()}clearReconnectionTimer(){this._reconnectionTimer!==-1&&(clearTimeout(this._reconnectionTimer),this._reconnectionTimer=-1)}onConnectionStateChange(e){var o;let t=((o=this._peerConnection)==null?void 0:o.iceConnectionState)||"closed",r=this.getDTLSTransportState();this._log.info(`connectionState: ${e.target.connectionState} ICE: ${t} DTLS: ${r}`),e.target.connectionState===ce.CONNECTING&&(this.stat.peerConnectionStartTime===0&&(this.stat.peerConnectionStartTime=Date.now()),this.emitConnectionStateChangedEvent("CONNECTING")),(e.target.connectionState===ce.FAILED||e.target.connectionState===ce.CLOSED)&&(this.emitConnectionStateChangedEvent("DISCONNECTED"),this._room.forceRelay?this.switchRelay(!1):this.startReconnection()),(e.target.connectionState===ce.CONNECTED||e.target.connectionState===ce.COMPLETED)&&(this.stat.peerConnectionEndTime===0&&(this.stat.peerConnectionEndTime=Date.now()),E.emit(T.SINGLE_CONNECTION_STAT,{room:this._room,stat:{ice:this.stat.iceEndTime-this.stat.iceStartTime,dtls:this.stat.dtlsEndTime-this.stat.dtlsStartTime,peerConnection:this.stat.peerConnectionEndTime-this.stat.peerConnectionStartTime}}),this.logSelectedCandidate(),this.emitConnectionStateChangedEvent("CONNECTED"))}getDTLSTransportState(){if(!this._peerConnection)return It;let e=null;return!Yi()||this._peerConnection.getSenders().length===0?It:(e=this._peerConnection.getSenders()[0].transport,!Er()||this._peerConnection.getReceivers().length===0?It:e?e.state:It)}emitConnectionStateChangedEvent(e){e!==this.currentState&&(this.currentState==="RECONNECTING"&&e==="CONNECTING"||(this.emit(si.CONNECTION_STATE_CHANGED,{prevState:this.currentState,state:e}),this.currentState=e))}logSelectedCandidate(){return f(this,null,function*(){if(!this._peerConnection)return;let e=yield this._peerConnection.getStats();for(let[t,r]of e)if(zi(r)){let o=e.get(r.localCandidateId),n=e.get(r.remoteCandidateId);o&&(this._log.info(`local candidate: ${o.candidateType} ${o.protocol}:${o.ip||o.address}:${o.port} ${o.networkType||""} ${o.candidateType==="relay"?`relayProtocol:${o.relayProtocol}`:""}`),o.networkType&&Tn(o.networkType)),n&&this._log.info(`remote candidate: ${n.candidateType} ${n.protocol}:${n.ip||n.address}:${n.port}`);break}})}waitForPeerConnectionConnected(){return this._waitForPCConnectedPromise?this._waitForPCConnectedPromise:(this._waitForPCConnectedPromise=new Promise((e,t)=>{if(this.currentState==="CONNECTED")return e();let r=d=>{d.state==="CONNECTED"&&(clearTimeout(a),n(),e())},o=({room:d})=>{d===this._room&&(clearTimeout(a),n(),t(new b({code:S.API_CALL_ABORTED,message:U({key:x.CONNECTION_ABORTED,data:"leave room"})})))},n=()=>{E.off(T.LEAVE_SUCCESS,o,this),this.off(si.CONNECTION_STATE_CHANGED,r,this)},a=setTimeout(()=>{n();let d=new b({code:S.API_CALL_TIMEOUT,message:"connection timeout"});gp+=1,PT(this._signalChannel.isConnected)&&(this._log.warn("firewall restriction"),Tp=!0,this.emit(si.FIREWALL_RESTRICTION)),t(d)},Js);this.clearConnectTimeout=()=>{n(),clearTimeout(a),delete this.clearConnectTimeout},E.on(T.LEAVE_SUCCESS,o,this),this.on(si.CONNECTION_STATE_CHANGED,r,this)}),this._waitForPCConnectedPromise=this._waitForPCConnectedPromise.finally(()=>{this._waitForPCConnectedPromise=null,delete this.clearConnectTimeout}),this._waitForPCConnectedPromise)}waitForReconnected(){return this.isReconnecting?new Promise((e,t)=>{this.once("spc-reconnected",e),this.once("error",t)}):Promise.resolve()}addDownlink(e){return f(this,null,function*(){if(this._log.info(`addDownlink(${e.userId}) trying`),this.isReconnecting&&(yield this.waitForReconnected()),this._updateSDPPromise&&(yield this._updateSDPPromise),this.updateLocalAndRemoteSDPConfig(e),this.addDownlinkQueue.size===0)try{yield this.updateSDP(),this._log.info(`addDownlink(${e.userId}) done`)}catch(t){this._log.error(`addDownlink(${e.userId}) failed ${t}`),yield this.startReconnection()}})}updateLocalAndRemoteSDPConfig({ssrc:e,userId:t,tinyId:r}){if(!this._peerConnection)return;this._log.info(`updateLocalAndRemoteSDPConfig ${t} ${JSON.stringify(e)}`);let o=this._peerConnection.getTransceivers().slice(4).filter(p=>p.direction==="inactive").slice(0,3).map(p=>(p.direction=h.TRANSCEIVER_DIRECTION_RECVONLY,Number(p.mid)));this._parsedAnswer||(this._parsedAnswer=ge(this._peerConnection.remoteDescription.sdp));let n=this._parsedAnswer.media.filter(p=>{var _;return(_=p.ssrcs)==null?void 0:_.find(I=>{var R;return(R=I.value)==null?void 0:R.includes(r)})}),a,d,l;if(n.length===3)a=n[0],d=n[1],l=n[2];else if(o.length===3)a=this._parsedAnswer.media.find(p=>Number(p.mid)===Number(o[0])),d=this._parsedAnswer.media.find(p=>Number(p.mid)===Number(o[1])),l=this._parsedAnswer.media.find(p=>Number(p.mid)===Number(o[2]));else if(o.length===0){this._peerConnection.addTransceiver(h.AUDIO,{direction:h.TRANSCEIVER_DIRECTION_RECVONLY}),this._peerConnection.addTransceiver(h.VIDEO,{direction:h.TRANSCEIVER_DIRECTION_RECVONLY}),this._peerConnection.addTransceiver(h.VIDEO,{direction:h.TRANSCEIVER_DIRECTION_RECVONLY}),a=JSON.parse(JSON.stringify(this._parsedAnswer.media[0]));let p=mu({mid:1,serverAbility:this._serverAbility,clientAbility:this.clientAbility,parsedOffer:ge(this._peerConnection.localDescription.sdp),isDownlink:!0});d=JSON.parse(JSON.stringify(p)),l=JSON.parse(JSON.stringify(p)),a.mid=this._parsedAnswer.media.length,this._parsedAnswer.media.push(a),d.mid=this._parsedAnswer.media.length,this._parsedAnswer.media.push(d),l.mid=this._parsedAnswer.media.length,this._parsedAnswer.media.push(l)}a.direction=h.TRANSCEIVER_DIRECTION_SENDONLY;let m=`${r}-${e.audio}`;a.ssrcs=[{id:e.audio,attribute:"cname",value:`${m}`},{id:e.audio,attribute:"msid",value:`${m}-${h.MAIN} ${m}-audio`}],d.direction=h.TRANSCEIVER_DIRECTION_SENDONLY,d.ssrcs=[{id:e.video,attribute:"cname",value:`${m}`},{id:e.video,attribute:"msid",value:`${m}-${h.MAIN} ${m}-bigvideo`},{id:e.videoRtx,attribute:"cname",value:`${m}`},{id:e.videoRtx,attribute:"msid",value:`${m}-${h.MAIN} ${m}-bigvideo`}],d.ssrcGroups=[{semantics:"FID",ssrcs:`${e.video} ${e.videoRtx}`}],l.direction=h.TRANSCEIVER_DIRECTION_SENDONLY;let u=`${m}-aux`;l.ssrcs=[{id:e.auxiliary,attribute:"cname",value:u},{id:e.auxiliary,attribute:"msid",value:`${u} ${m}-aux${h.VIDEO}`},{id:e.auxiliaryRtx,attribute:"cname",value:`${u} ${m}-aux${h.VIDEO}`},{id:e.auxiliaryRtx,attribute:"msid",value:`${u} ${m}-aux${h.VIDEO}`}],l.ssrcGroups=[{semantics:"FID",ssrcs:`${e.auxiliary} ${e.auxiliaryRtx}`}],this._parsedAnswer.groups&&(this._parsedAnswer.groups[0].mids=this._parsedAnswer.media.map(p=>p.mid).join(" ")),this._downlinkMIDMap.set(t,[a.mid,d.mid,l.mid]),this._downlinkMIDUserIDMap.set(a.mid,t),this._downlinkMIDUserIDMap.set(d.mid,t),this._downlinkMIDUserIDMap.set(l.mid,t)}removeDownlink(e){return f(this,null,function*(){if(!this._downlinkMIDMap.has(e)||!this._peerConnection)return;this._log.info(`removeDownlink(${e}) trying`),this.isReconnecting&&(yield this.waitForReconnected()),this._updateSDPPromise&&(yield this._updateSDPPromise);let t=this._downlinkMIDMap.get(e),r=!1;this._peerConnection.getTransceivers().forEach(o=>{t!=null&&t.includes(Number(o.mid))&&(r=!0,o.direction="inactive")}),this._parsedAnswer||(this._parsedAnswer=ge(this._peerConnection.remoteDescription.sdp)),this._parsedAnswer.media.forEach(o=>{t!=null&&t.includes(Number(o.mid))&&(r=!0,o.direction="inactive",o.ssrcs=[],o.ssrcGroups=[])}),this.removeDownlinkQueue.size===0&&r&&(yield this.updateSDP()),this._downlinkMIDMap.delete(e),t==null||t.forEach(o=>this._downlinkMIDUserIDMap.delete(o)),this._log.info(`removeDownlink(${e}) done`)})}setBandwidth(e){return f(this,null,function*(){if(!this._peerConnection)return;let{audio:t,bigVideo:r,smallVideo:o,auxVideo:n}=e;try{if(Ao()){let a=this._peerConnection.getSenders().slice(0,4);for(let l=0;l<a.length;l++){let m=a[l],u;l===0&&t?u=t:l===1&&r?u=r:l===2&&o?u=o:l===3&&n&&(u=n),u&&(yield this.setSenderMaxBitrate(m,u))}let d=!1;r&&a[1].track&&(d=this.setStartBitrate(1,r)),n&&a[3].track&&(d=this.setStartBitrate(3,n)||d),d&&(yield this.updateSDP())}else yield this.setBandwidthBySDP(e);this._log.info(`setBandwidth ${JSON.stringify(e)}`)}catch(a){this._log.error(`failed to set bandwidth: ${a}`)}})}setStartBitrate(e,t){var r,o;return(r=this._peerConnection)!=null&&r.remoteDescription&&(this._parsedAnswer||(this._parsedAnswer=ge(this._peerConnection.remoteDescription.sdp)),(o=this._parsedAnswer.media[e])!=null&&o.fmtp[0])?(this._parsedAnswer.media[e].fmtp[0].config+=`;x-google-start-bitrate=${t>5e3?5e3:t}`,!0):!1}setSenderMaxBitrate(e,t){let r=e.getParameters();return(!r.encodings||r.encodings.length===0)&&(r.encodings=[{}]),t==="unlimited"?delete r.encodings[0].maxBitrate:r.encodings[0].maxBitrate=t*1e3,e.setParameters(r)}setBandwidthBySDP({audio:e,bigVideo:t,smallVideo:r,auxVideo:o}){if(!this._peerConnection||!this._peerConnection.localDescription)return;let n=ge(this._peerConnection.localDescription.sdp);this._parsedAnswer||(this._parsedAnswer=ge(this._peerConnection.remoteDescription.sdp));let a=ae?"TIAS":"AS";e&&(n.media[0].bandwidth=[{type:a,limit:ae?e*1e3:e}],this._parsedAnswer.media[0].bandwidth=[{type:a,limit:ae?e*1e3:e}]),t&&(n.media[1].bandwidth=[{type:a,limit:ae?t*1e3:t}],this._parsedAnswer.media[1].bandwidth=[{type:a,limit:ae?t*1e3:t}]),r&&(n.media[2].bandwidth=[{type:a,limit:ae?r*1e3:r}],this._parsedAnswer.media[2].bandwidth=[{type:a,limit:ae?r*1e3:r}]),o&&(n.media[3].bandwidth=[{type:a,limit:ae?o*1e3:o}],this._parsedAnswer.media[3].bandwidth=[{type:a,limit:ae?o*1e3:o}]);let d={type:"offer",sdp:Et(n)};return this.updateSDP({localDescription:d})}setScaleResolutionDownBy(e,t,r){let o=e.getParameters();(!o.encodings||o.encodings.length===0)&&(o.encodings=[{}]);let n=o.encodings[0].scaleResolutionDownBy;if(g(n)?t===1:t===n)return;let a=`setScaleResolutionDownBy ${r} ${t}`;return n&&(a+=` prevScale: ${n}`),this._log.warn(a),o.encodings[0].scaleResolutionDownBy=t,e.setParameters(o)}updateSDP({localDescription:e}={}){if(!this._parsedAnswer)return Promise.resolve();let t=Et(this._parsedAnswer);return this._updateSDPPromise=new Promise((r,o)=>f(this,null,function*(){var n,a;try{!e&&this._peerConnection&&(this._log.info("creating offer"),e=yield this._peerConnection.createOffer()),e&&(yield this.setOffer(e)),yield this.setAnswer({type:"answer",sdp:t}),this._updateSDPPromise=null,r()}catch(d){this._log.error(d),!this._isSDPLogged&&this._peerConnection&&(this._log.warn(`current offer: ${this.filterSDPDirection((n=this._peerConnection.localDescription)==null?void 0:n.sdp)}
115
+ next offer: ${this.filterSDPDirection(e==null?void 0:e.sdp)}`),this._log.warn(`current answer: ${this.filterSDPDirection((a=this._peerConnection.remoteDescription)==null?void 0:a.sdp)}
116
+ next answer: ${this.filterSDPDirection(t)}`),this._log.warn(`offer: ${e==null?void 0:e.sdp}`),this._log.warn(`answer: ${t}`),this._log.warn(`transceivers: ${JSON.stringify(this._peerConnection.getTransceivers().map(({mid:l,currentDirection:m,direction:u,stopped:p})=>({mid:l,currentDirection:m,direction:u,stopped:p})))}`),this._log.warn(`parsedAnswer: ${JSON.stringify(this._parsedAnswer)}`),this._isSDPLogged=!0),this._updateSDPPromise=null,o(d)}})),this._updateSDPPromise}setTransceiverDirection(e,t){return f(this,null,function*(){if(!ae||!this._peerConnection||!this._parsedAnswer)return;this._log.info(`setting transceiver ${t.join(",")} direction to ${e}`);let r=this._peerConnection.getTransceivers();t.forEach(o=>{r[o].direction!==e&&(r[o].direction=e)});for(let o of t){let n=this._parsedAnswer.media[o].direction;e===z.INACTIVE&&n===z.RECVONLY&&(this._parsedAnswer.media[o].direction=e),e===z.SENDONLY&&n===z.INACTIVE&&(this._parsedAnswer.media[o].direction=z.RECVONLY)}yield this.updateSDP()})}filterSDPDirection(e=""){return ge(e).media.map(r=>r.direction)}setOffer(e){this._log.info("setting offer");let t=dp(e.sdp,this.clientAbility,this._serverAbility);return this._log.debug(t),this._peerConnection.setLocalDescription({type:"offer",sdp:t})}setAnswer(e){return this._log.info("setting answer"),this._log.debug(e.sdp),this._peerConnection.setRemoteDescription(e)}switchVideoEncoder(e){return f(this,null,function*(){if(!this._peerConnection||!this._parsedAnswer||!this._serverAbility)return;let t=!1;this._parsedAnswer.media.forEach(r=>{var o;if(r.type===h.VIDEO){let n=this._serverAbility.video.codecs.find(a=>a.codec.toLowerCase()===e);n&&!((o=r.payloads)!=null&&o.includes(String(n.payload)))&&(r.fmtp=[],r.payloads="",r.rtp=[],r.rtcpFb=[],Ur(r,n),t=!0)}}),t&&(this._log.warn(`switch video encoder to ${e}`),yield this.updateSDP())})}useHWEncoder(e=!0,t){return f(this,null,function*(){if(!this._peerConnection||!this._parsedAnswer||!this._serverAbility)return;let r=!1,o=[];g(t)?o=this._parsedAnswer.media.slice(1,4):t===2?o.push(this._parsedAnswer.media[1]):t===3?o.push(this._parsedAnswer.media[2]):t===7&&o.push(this._parsedAnswer.media[3]),o.forEach(n=>{var a;if(n.type===h.VIDEO){let d;e&&this.is42001fSupported?d=this.clientAbility.video.codecs.find(l=>l.fmtp.includes("42001f")):e||(d=this._serverAbility.video.codecs.find(l=>l.codec.toLowerCase()===(this._serverAbility.useVp8?"vp8":"h264"))),d&&!((a=n.payloads)!=null&&a.includes(String(d.payload)))&&(n.fmtp=[],n.payloads="",n.rtp=[],n.rtcpFb=[],Ur(n,d),r=!0)}}),r&&(this._log.warn(`use ${e?"hw":"sw"} encoder`),yield this.updateSDP())})}sendDataChannelMessage(e){var t;(t=this._datachannel)==null||t.send(e)}reset(){this._peerConnection&&(this._peerConnection.close(),this._peerConnection.removeEventListener("track",this._peerConnection._onaddstreampoly,this),this._peerConnection._onaddstreampoly=null,this._peerConnection=null),this._waitForPCConnectedPromise=null,this._parsedAnswer=null}close(){this._log.info("close pc"),this.removeRTCListener(),this.insertableStreamsAbortMap.forEach(e=>$t(e.abort)&&e.abort("destroy")),this.insertableStreamsAbortMap.clear(),this.reset(),this.emitConnectionStateChangedEvent("DISCONNECTED"),this._downlinkMIDMap.clear(),this.stopReconnection(),this.removeAllListeners(),this._room.healthDetector.off("1",this.onBadHealth,this)}getReceiversByUserId(e){if(!this._peerConnection)return[];let t=this._peerConnection.getReceivers();return(this._downlinkMIDMap.get(e)||[]).map(r=>t[r])}get isUsingRelay(){return this._room.getIceTransportPolicy()==="relay"}detectTCPAndUDP({uplinkRTT:e,downlinkRTT:t}){var m;if(this.currentState!=="CONNECTED"||this._isRelayTried&&!this._room.forceRelay||this._room.getIceServers().length===0)return;let r=this._signalChannel.rtt,o=Math.max(e,t),{rttRatioThreshold:n,rttThreshold:a}=((m=this._room.scheduleResult.config)==null?void 0:m.useTurnTcpInfo)||{};if(!n||!a||!r||!o)return;let d=Math.floor(o/r),l=(this._isRelayTried||d>n)&&o>a;if(!l){this._rttOverCount=0;return}++this._rttOverCount<5||(this._log.warn(`detectTCPAndUDP ws-rtt: ${r} upRTT: ${e} downRTT: ${t} ratio: ${d} over-count: ${this._rttOverCount} isOver: ${l} isRelayTried: ${this._isRelayTried} force-relay: ${this._room.forceRelay}`),!this.isUsingRelay&&!this._isRelayTried?(this._isRelayTried=!0,this._rttOverCount=0,this.switchRelay(!0)):this._room.forceRelay&&this.switchRelay(!1))}switchRelay(e,t=!1){return f(this,null,function*(){if(this.isUsingRelay===e)return;let r=e?"relay":"udp",o=e?521709:521710;try{this._room.forceRelay=e,this._log.warn(`switchRelay ${r}`);let n=Date.now();yield this.doSwitchRelay(r),this._log.warn(`switchRelay ${r} success`),N.addSuccessEvent({key:o,cost:Date.now()-n})}catch(n){this._log.warn(`switchRelay ${r} failed`,n),N.addFailedEvent({key:o,error:n}),t?this._room.reJoin():yield this.switchRelay(!e,!0)}})}doSwitchRelay(e){return new Promise((t,r)=>{let o=setTimeout(()=>{this.stopReconnection(),r(new Error(`switch ${e} timeout`))},1e4);this.startReconnection().then(t,r).finally(()=>clearTimeout(o))})}removeRTCListener(){this._peerConnection&&(this._peerConnection.oniceconnectionstatechange=null,this._peerConnection.onconnectionstatechange=null,this._peerConnection.onsignalingstatechange=null,this._peerConnection.ontrack=null),this.dtlsTransport&&(this.dtlsTransport.onstatechange=null)}};y([pa("reconnect")],Ut.prototype,"startReconnection",1),y([Ni(e=>e.userId)],Ut.prototype,"addDownlink",1),y([Ni(e=>e)],Ut.prototype,"removeDownlink",1),y([Zt(!0)],Ut.prototype,"updateSDP",1),y([tt(521712,!1)],Ut.prototype,"setOffer",1),y([tt(521713,!1)],Ut.prototype,"setAnswer",1);var pu=class{constructor(i){c(this,"tag");c(this,"len");c(this,"data");let e=new DataView(i);this.tag=e.getUint16(),this.len=e.getUint16(2),this.data=new Uint8Array(i).slice(4,4+this.len).buffer}},fu=class{constructor(i){c(this,"tinyId");c(this,"data");let e=new DataView(i),t=0,r=[];for(;t<e.byteLength;){let o=e.getUint16(t+2),n=new pu(new Uint8Array(i).slice(t,t+2+2+o).buffer);r.push(n),t+=4+o}r.forEach(o=>{o.tag===1?this.tinyId=new TextDecoder().decode(o.data):o.tag===2&&(this.data=o.data)})}},fp=new Set;function Vr(){let s=Math.floor(Math.random()*4294967296);return fp.has(s)?Vr():(fp.add(s),s)}var Ep=ke(Ge());var Br=class extends Ep.default{constructor(e){super();c(this,"userId");c(this,"tinyId");c(this,"_sdpSemantics");c(this,"_isUplink");c(this,"_room");c(this,"_log");c(this,"_currentState","DISCONNECTED");c(this,"_prevTime",-1);this.userId=e.userId,this.tinyId=e.tinyId,this._room=e.room,this._sdpSemantics=e.room.sdpSemantics,this._isUplink=e.isUplink,this._log=C.createLogger({id:"n",userId:this._room.userId,remoteUserId:this._isUplink?void 0:this.userId,sdkAppId:this._room.sdkAppId,isLocal:this._isUplink})}get _peerConnection(){var e;return((e=this.singlePC)==null?void 0:e.getPeerConnection())||null}get singlePC(){return this._room.singlePC}get _signalChannel(){return this._room.signalChannel}close(e){this._log.info("close connection"),this.emit("closed",e)}emitConnectionStateChangedEvent(e){return e===this._currentState?!1:(E.emit(T.PEER_CONNECTION_STATE_CHANGED,{room:this._room,prevState:this._currentState,state:e,remoteUserId:this._isUplink?void 0:this.userId}),this.emit("connection-state-changed",{prevState:this._currentState,state:e}),this._currentState=e,!0)}getPeerConnection(){return this._peerConnection}getRoom(){return this._room}getUserId(){return this.userId}getTinyId(){return this.tinyId}getCurrentState(){return this._currentState}get isH264(){var e,t;return!!((t=(e=this._peerConnection)==null?void 0:e.remoteDescription)!=null&&t.sdp.includes("H264"))}};var tn=class extends Br{constructor(e){super(k(v({},e),{isUplink:!0}));c(this,"localMainAudioTrack",null);c(this,"localMainVideoTrack",null);c(this,"localAuxAudioTrack",null);c(this,"localAuxVideoTrack",null);c(this,"_isPublishingAux",!1);c(this,"_publishingLocalAudioTrack");c(this,"_publishingLocalVideoTrack");c(this,"_mediaSettings",{videoCodec:"",videoWidth:0,videoHeight:0,videoBps:0,videoFps:0,audioCodec:"opus",audioFs:0,audioChannel:0,audioBps:0,smallVideoWidth:0,smallVideoHeight:0,smallVideoFps:0,smallVideoBps:0,auxVideoWidth:0,auxVideoHeight:0,auxVideoFps:0,auxVideoBps:0});c(this,"_flag",0);c(this,"_checkPublishStateTimeoutId",-1);this.initialize()}get videoCodec(){var e;return((e=this.singlePC)==null?void 0:e.videoCodec)||"h264"}get ssrc(){if(!this.singlePC)return{audio:0,video:0,videoRtx:0,small:0,smallRtx:0,auxiliary:0,auxiliaryRtx:0};let{audioSsrc:e,bigVideoSsrc:t,bigVideoRtxSsrc:r,smallVideoSsrc:o,smallVideoRtxSsrc:n,auxVideoSsrc:a,auxVideoRtxSsrc:d}=this.singlePC.uplinkSSRC;return{audio:e||0,video:t||0,videoRtx:r||0,small:o||0,smallRtx:n||0,auxiliary:a||0,auxiliaryRtx:d||0}}get flag(){return this._flag}set flag(e){this._flag!==e&&(this._flag=e,this.checkPublishState())}checkPublishState(e=!1){if(!e&&this._checkPublishStateTimeoutId>0)return;let{publishState:t,serverPublishState:r}=this,o=Object.keys(t).find(n=>t[n]!==r[n]);if(o)if(e)this._log.warn(`publish state not matched, ${o} local:${t[o]} server:${r[o]} ${Ti()} ${pr()}`),N.addCount({key:521e3});else{this._checkPublishStateTimeoutId=re.run(Gi,()=>this.checkPublishState(!0),{delay:10*1e3,count:1});return}re.clearTask(this._checkPublishStateTimeoutId),this._checkPublishStateTimeoutId=-1}get isMainStreamPublished(){return!!(this.localMainAudioTrack||this.localMainVideoTrack)}get isAuxStreamPublished(){return!!(this.localAuxVideoTrack||this.localAuxAudioTrack)}get publishState(){var t,r,o,n;let e={audio:!1,bigVideo:!1,smallVideo:!1,auxVideo:!1};if(this._peerConnection){let a=this._peerConnection.getSenders();a&&(Jt()?(e.audio=!!((t=a[0])!=null&&t.track),e.bigVideo=!!((r=a[1])!=null&&r.track),e.smallVideo=!!((o=a[2])!=null&&o.track),e.auxVideo=!!((n=a[3])!=null&&n.track)):a.forEach(d=>{d.track&&(d.track.kind===h.AUDIO?e.audio=!0:(e.bigVideo=!0,this._room.videoManager.hasSmall&&(e.smallVideo=!0)))}))}return e}get publishingState(){let{publishState:e}=this,t=v({},e);return this._publishingLocalAudioTrack&&(t.audio=!0),this._publishingLocalVideoTrack&&(this._isPublishingAux?t.auxVideo=!0:(t.bigVideo=!0,this._publishingLocalVideoTrack.small&&(t.smallVideo=!0))),t}get serverPublishState(){return{audio:!!(this.flag&Fi),bigVideo:!!(this.flag&Bi),smallVideo:!!(this.flag&Gs),auxVideo:!!(this.flag&nr)}}get muteState(){var e,t,r;return{audio:!!((e=this.localMainAudioTrack)!=null&&e.muted),bigVideo:!!((t=this.localMainVideoTrack)!=null&&t.muted),auxVideo:!!((r=this.localAuxVideoTrack)!=null&&r.muted)}}initialize(){this.installEvents()}close(e){var r;let t=((r=this._peerConnection)==null?void 0:r.getSenders())||[];for(let o of t)o.replaceTrack(null);super.close(e),this.uninstallEvents(),this.uninstallTrackMuteEvents(this.localMainAudioTrack,this.localMainVideoTrack,this.localAuxVideoTrack),this.emitConnectionStateChangedEvent("DISCONNECTED")}installEvents(){this.listeners("connection-state-changed").includes(this.handleConnectionStateChange)||this.on("connection-state-changed",this.handleConnectionStateChange,this),this.installSPCEvents()}installSPCEvents(){var e,t;(e=this.singlePC)!=null&&e.listeners("spc-reconnected").includes(this.onSinglePCReconnected)||(t=this.singlePC)==null||t.on("spc-reconnected",this.onSinglePCReconnected,this)}uninstallSPCEvents(){var e;(e=this.singlePC)==null||e.off("spc-reconnected",this.onSinglePCReconnected,this)}uninstallEvents(){this.off("connection-state-changed",this.handleConnectionStateChange,this),this.uninstallSPCEvents()}emitConnectionStateChangedEvent(e,t){var n,a,d;let r=this._currentState,o=super.emitConnectionStateChangedEvent(e);return o&&r!==e&&(t?t.emit("connection-state-changed",{prevState:r,state:e}):((n=this.localMainVideoTrack)==null||n.emit("connection-state-changed",{prevState:r,state:e}),(a=this.localAuxVideoTrack)==null||a.emit("connection-state-changed",{prevState:r,state:e}),(d=this._publishingLocalVideoTrack)==null||d.emit("connection-state-changed",{prevState:r,state:e}))),o}onVideoEncodeFailed(e){var t,r;e&&e.isMediaTrackActive&&this.videoCodec==="h264"&&(this._log.warn("h264 encoder not working"),(t=this.singlePC)!=null&&t.isVP8EncodeSupported&&(this._log.warn("switch to vp8"),(r=this.singlePC)==null||r.switchVideoEncoder("vp8")))}publish(o){return f(this,arguments,function*({localAudioTrack:e,localVideoTrack:t,isAuxiliary:r}){var l,m,u,p,_,I,R;if(!this.singlePC)return;this.installEvents(),yield this.singlePC.waitForPeerConnectionConnected();let{publishState:n,muteState:a}=this;if(e&&(this._publishingLocalAudioTrack=e,n.audio=!0,a.audio=e.muted),t){if(!this.singlePC.isH264EncodeSupported&&!this.singlePC.isVP8EncodeSupported)throw new b({code:S.NOT_SUPPORTED_H264,message:U({key:x.NOT_SUPPORTED_H264ENCODE})});me&&_i()===115&&t.profile.width*t.profile.height<=640*360&&(this._log.warn("fallback video to 480p"),t.setProfile(lt["480p_2"]),yield t.applyProfile()),this._publishingLocalVideoTrack=t,r?(n.auxVideo=!0,a.auxVideo=t.muted):(n.bigVideo=!0,a.bigVideo=t.muted)}this._isPublishingAux=r;let d;if(t&&!r&&t.small&&(d=this._room.videoManager.smallTrack,n.smallVideo=!0),yield this._signalChannel.sendWaitForResponseWithRetry({command:q.SPC_PUBLISH,responseCommand:B.SPC_PUBLISH_RESULT,data:k(v({},this.singlePC.uplinkSSRC),{state:n,muteState:a}),retries:3}),yield this.publishByTransceiver({localAudioTrack:e,localVideoTrack:t,smallTrack:d,isAuxiliary:r}),this._publishingLocalAudioTrack=null,this._publishingLocalVideoTrack=null,this._isPublishingAux=!1,t){this[r?"localAuxVideoTrack":"localMainVideoTrack"]=t;let{scaleResolutionDownBy:D}=t;yield this.singlePC.setScaleResolutionDownBy(this._peerConnection.getSenders()[r?3:1],D,t.streamType)}e&&(this[r?"localAuxAudioTrack":"localMainAudioTrack"]=e),yield this.singlePC.setBandwidth({audio:((l=this.localMainAudioTrack)==null?void 0:l.profile.bitrate)||((m=this.localAuxAudioTrack)==null?void 0:m.profile.bitrate),bigVideo:(u=this.localMainVideoTrack)==null?void 0:u.profile.bitrate,smallVideo:(_=(p=this.localMainVideoTrack)==null?void 0:p.small)==null?void 0:_.bitrate,auxVideo:(I=this.localAuxVideoTrack)==null?void 0:I.profile.bitrate}),this.sendMediaSettings(),this.installTrackMuteEvents(e,t),(this._room.preferHW||(R=this._room.scheduleResult.config)!=null&&R.preferHW)&&t&&t.profile.width*t.profile.height>=1280*720&&this.singlePC.useHWEncoder(!0,r?7:2)})}publishByTransceiver({localAudioTrack:e,localVideoTrack:t,smallTrack:r,isAuxiliary:o}){if(!pt())return;this._log.info("publish by transceiver");let n=t==null?void 0:t.outMediaTrack,a=e==null?void 0:e.outMediaTrack,d=this._peerConnection.getTransceivers(),l=[],m=[],u=(_,I,R)=>{var G,te;let D=d[I].sender.replaceTrack(R);m.push(I),(G=this.singlePC)!=null&&G.enableInsertableStreams&&D.then(()=>this.createEncodedStreams(d[I].sender,_)),(te=this.singlePC)!=null&&te.scriptTransformWorker&&this.initSenderTransfrom(d[I].sender,_),l.push(D)};a&&u(e.mediaType,0,a),n&&u(t.mediaType,o?3:1,n),r&&u(8,2,r);let p=this.singlePC.setTransceiverDirection(z.SENDONLY,m);return l.push(p),Promise.all(l)}getTrackByMediaType(e){switch(e){case 1:return this.localMainAudioTrack||this._publishingLocalAudioTrack;case 4:case 8:return this.localMainVideoTrack||this._publishingLocalVideoTrack;case 2:return this.localAuxVideoTrack||this._publishingLocalVideoTrack;default:return null}}createEncodedStreams(e,t){var a,d;if(this.singlePC.insertableStreamsAbortMap.has(e))return;let r=e.createEncodedStreams(),o=new AbortController;(a=this.singlePC)==null||a.addAbortController(e,o),((d=this.getTrackByMediaType(t))!=null&&d.enableEncodeFrame?r.readable.pipeThrough(new TransformStream({transform:(l,m)=>{var p;let u=this.getTrackByMediaType(t);m.enqueue((p=this.singlePC)!=null&&p.isUsingH264&&u?u.encodeFrame(l,t===8):l)}}),o):r.readable).pipeTo(r.writable,o).catch(l=>{this._log.debug("encoded stream error",l),l!=="destory"&&this._log.warn(l)})}initSenderTransfrom(e,t){if(!this._peerConnection||!this.singlePC||!this.singlePC.scriptTransformWorker)return;let r=t!==2,o=t===8;e.transform||(e.transform=new RTCRtpScriptTransform(this.singlePC.scriptTransformWorker,{isReceiver:!1,isAudio:t===1,isMain:r,isSmall:o}))}enableSmall(e){return f(this,null,function*(){var r;if(!this.singlePC)return;let t=this._peerConnection.getTransceivers();if(e){if(this._room.videoManager.smallTrack){let{sender:o}=t[2];(r=this.singlePC)!=null&&r.enableInsertableStreams&&this.createEncodedStreams(o,8),yield o.replaceTrack(this._room.videoManager.smallTrack),yield this.singlePC.setTransceiverDirection(z.SENDONLY,[2])}}else yield t[2].sender.replaceTrack(null),yield this.singlePC.setTransceiverDirection(z.INACTIVE,[2]);this.updateMediaSettings(),yield this.doPublishChange()})}installTrackMuteEvents(...e){e.forEach(t=>{t&&(t==null||t.on("mute",this.sendMutedFlag,this),t==null||t.on("unmute",this.sendMutedFlag,this))})}uninstallTrackMuteEvents(...e){e.forEach(t=>{t&&(t==null||t.off("mute",this.sendMutedFlag,this),t==null||t.off("unmute",this.sendMutedFlag,this))})}unpublish(r){return f(this,arguments,function*({localAudioTrack:e,localVideoTrack:t}){let o=t&&t===this.localAuxVideoTrack,n=t==null?void 0:t.outMediaTrack,a=this._peerConnection.getSenders(),d=[];e&&(o?this.localAuxAudioTrack=null:this.localMainAudioTrack=null,!this.localMainAudioTrack&&!this.localAuxAudioTrack&&(yield a[0].replaceTrack(null),d.push(0))),n&&(o?(yield a[3].replaceTrack(null),this.localAuxVideoTrack=null,this._mediaSettings=k(v({},this._mediaSettings),{auxVideoBps:0,auxVideoFps:0,auxVideoWidth:0,auxVideoHeight:0}),d.push(3)):(yield a[1].replaceTrack(null),yield a[2].replaceTrack(null),this.localMainVideoTrack=null,this._mediaSettings=k(v({},this._mediaSettings),{videoWidth:0,videoHeight:0,videoBps:0,videoFps:0,audioFs:0,audioChannel:0,audioBps:0,smallVideoWidth:0,smallVideoHeight:0,smallVideoFps:0,smallVideoBps:0}),d.push(1,2))),this.isMainStreamPublished||this.isAuxStreamPublished?(yield this.singlePC.setTransceiverDirection(z.INACTIVE,d),yield this.doPublishChange(!1)):yield this.doUnpublish(),this.uninstallTrackMuteEvents(e,t),t==null||t.emit("connection-state-changed",{prevState:this._currentState,state:"DISCONNECTED"})})}doPublishChange(e=!0){return f(this,null,function*(){let t={state:this.publishingState,constraintConfig:this._mediaSettings},r=yield this._signalChannel.sendWaitForResponseWithRetry({command:q.PUBLISH_STATE_CHANGE,data:t,responseCommand:B.PUBLISH_STATE_CHANGE_RESULT,enableLog:e,retries:3});this.checkPublishResultCode(r.data.code,r.data.message)})}doUnpublish(e=!1){return this._signalChannel.sendWaitForResponse({command:q.UNPUBLISH,commandDesc:"unpublish",responseCommand:B.UNPUBLISH_RESULT,enableLog:e}).catch(t=>{if(t.getCode()===S.API_CALL_TIMEOUT)return Promise.resolve();throw t})}updateMediaSettings(){let{detail:{isH264EncodeSupported:e,isVp8EncodeSupported:t}}=this._room.checkSystemResult;e?this._mediaSettings.videoCodec="H264":t&&(this._mediaSettings.videoCodec="VP8");let r=this._publishingLocalAudioTrack||this.localMainAudioTrack||this.localAuxAudioTrack,{localMainVideoTrack:o,localAuxVideoTrack:n}=this;if(this._publishingLocalVideoTrack&&(this._isPublishingAux?n=this._publishingLocalVideoTrack:o=this._publishingLocalVideoTrack),qt){if(r&&r.outMediaTrack){let a=r.outMediaTrack.getSettings();this._mediaSettings.audioChannel=a.channelCount||1,this._mediaSettings.audioBps=r.profile.bitrate*1e3,this._mediaSettings.audioFs=a.sampleRate||0}if(o&&o.outMediaTrack){let a=o.outMediaTrack.getSettings();this._mediaSettings.videoWidth=a.width||0,this._mediaSettings.videoHeight=a.height||0,this._mediaSettings.videoFps=a.frameRate||0,this._mediaSettings.videoBps=o.profile.bitrate*1e3,o.small&&(this._mediaSettings.smallVideoWidth=o.small.width,this._mediaSettings.smallVideoHeight=o.small.height,this._mediaSettings.smallVideoFps=o.small.frameRate,this._mediaSettings.smallVideoBps=o.small.bitrate*1e3)}if(n&&n.outMediaTrack){let a=n.outMediaTrack.getSettings();this._mediaSettings.auxVideoWidth=a.width||0,this._mediaSettings.auxVideoHeight=a.height||0,this._mediaSettings.auxVideoFps=a.frameRate||0,this._mediaSettings.auxVideoBps=n.profile.bitrate*1e3}}else r&&r.outMediaTrack&&(this._mediaSettings.audioChannel=r.profile.channelCount,this._mediaSettings.audioBps=r.profile.bitrate*1e3,this._mediaSettings.audioFs=r.profile.sampleRate),o&&o.outMediaTrack&&(this._mediaSettings.videoWidth=o.profile.width,this._mediaSettings.videoHeight=o.profile.height,this._mediaSettings.videoFps=o.profile.frameRate,this._mediaSettings.videoBps=o.profile.bitrate*1e3);this._log.info(`updateMediaSettings: ${JSON.stringify(this._mediaSettings)}`)}sendMediaSettings(){this.updateMediaSettings(),this._signalChannel.sendWaitForResponse({command:q.UPDATE_CONSTRAINT_CONFIG,data:this._mediaSettings,responseCommand:B.UPDATE_CONSTRAINT_CONFIG_RES}).then(e=>{e.data.code!==0&&this._log.warn(e.data.message)}).catch(()=>{})}addTrack(e){return f(this,null,function*(){if(!this._peerConnection)return;let t=e===this.localAuxAudioTrack||e===this.localAuxVideoTrack;this._log.info(`is adding ${e.kind} track to current published local ${t?h.AUXILIARY:h.MAIN} stream`),Jt()&&(yield this.addTrackByTransceiver(e,t))})}addTrackByTransceiver(e,t){return f(this,null,function*(){var o;if(!e.mediaTrack)return;let r=this._peerConnection.getTransceivers();if(e.kind===h.AUDIO)yield r[0].sender.replaceTrack(e.outMediaTrack);else{let n=t?3:1;yield r[n].sender.replaceTrack(e.outMediaTrack),n===1&&((o=this.localMainVideoTrack)!=null&&o.small)&&(yield r[2].sender.replaceTrack(this._room.videoManager.smallTrack)),r[n].direction===z.INACTIVE&&(yield this.singlePC.setTransceiverDirection(z.SENDONLY,[n]))}this.updateMediaSettings(),yield this.doPublishChange()})}removeTrack(e){return f(this,null,function*(){if(!this._peerConnection)return;let t=e===this.localAuxAudioTrack||e===this.localAuxVideoTrack;this._log.info(`is removing ${e.kind} track from current published local ${t?h.AUXILIARY:h.MAIN} stream`),Jt()&&(yield this.removeTrackByTransceiver(e,t))})}removeTrackByTransceiver(e,t){return f(this,null,function*(){if(!e.mediaTrack)return;let r=this._peerConnection.getTransceivers();if(e.kind===h.AUDIO)yield r[0].sender.replaceTrack(null);else{let o=t?3:1;yield r[o].sender.replaceTrack(null),o===1&&this._room.videoManager.hasSmall&&(yield r[2].sender.replaceTrack(null)),yield this.singlePC.setTransceiverDirection(z.INACTIVE,[o])}this.updateMediaSettings(),yield this.doPublishChange()})}replaceTrack(e){return f(this,null,function*(){var n;let t=(n=this._peerConnection)==null?void 0:n.getSenders(),r=e.outMediaTrack||e.mediaTrack;if(!t||t.length===0||!r||t.find(a=>a.track===r))return!1;let o=e===this.localAuxAudioTrack||e===this.localAuxVideoTrack;return this._log.info(`is replacing ${r.kind} track ${r.id} ${r.label} on ${o?h.AUXILIARY:h.MAIN} stream`),r.kind===h.AUDIO&&t[0]&&(yield t[0].replaceTrack(r)),r.kind===h.VIDEO&&(!o&&t[1]&&(yield t[1].replaceTrack(r)),o&&t[3]&&(yield t[3].replaceTrack(r))),!0})}setBandwidth(o){return f(this,arguments,function*({bandwidth:e,type:t,videoType:r}){if(this.singlePC){let n={};t===h.AUDIO?n.audio=e:r==="big"?n.bigVideo=e:r==="small"?n.smallVideo=e:n.auxVideo=e,yield this.singlePC.setBandwidth(n)}})}sendMutedFlag(e){e===this.localAuxAudioTrack||e===this.localAuxVideoTrack||(this._log.info(`send muted state: ${JSON.stringify(this.muteState)}`),this._signalChannel.sendWaitForResponseWithRetry({command:q.UPDATE_MUTE_STAT,responseCommand:B.MUTE_RESULT,data:this.muteState,retries:3}).catch(()=>{}))}handleConnectionStateChange(e){e.state==="CONNECTED"&&(this.localMainVideoTrack||this._publishingLocalVideoTrack&&!this._isPublishingAux)&&E.emit(T.SEND_FIRST_VIDEO_FRAME,{room:this._room})}getVideoTrackId(e=h.VIDEO){if(this._peerConnection){let t=this._peerConnection.getSenders();if(e===h.AUXILIARY&&t[3]&&t[3].track)return t[3].track.id;if(e===h.VIDEO&&t[1]&&t[1].track)return t[1].track.id}if(this.localMainVideoTrack&&e===h.VIDEO){let t=this.localMainVideoTrack.mediaTrack;if(t)return t.id}if(this.localAuxVideoTrack&&e===h.AUXILIARY){let t=this.localAuxVideoTrack.mediaTrack;if(t)return t.id}return""}getSSRC(){return this.ssrc}checkPublishResultCode(e,t){if(e!==0)throw e===ar?(this._log.error(ve.NOT_SUPPORTED_H264ENCODE),new b({code:S.NOT_SUPPORTED_H264,message:U({key:x.NOT_SUPPORTED_H264ENCODE})})):new b({code:S.UNKNOWN,message:U({key:x.SIGNAL_RESPONSE_FAILED,data:{signalResponse:B.PUBLISH_RESULT,code:e,message:t}})})}onSinglePCReconnected(){return f(this,null,function*(){this.isMainStreamPublished&&(this._log.warn("republish main stream"),yield this.publish({localAudioTrack:this.localMainAudioTrack,localVideoTrack:this.localMainVideoTrack,isAuxiliary:!1})),this.isAuxStreamPublished&&(this._log.warn("republish aux stream"),yield this.publish({localAudioTrack:this.localAuxAudioTrack,localVideoTrack:this.localAuxVideoTrack,isAuxiliary:!0}))})}};y([Je(function({localVideoTrack:e}){e==null||e.once("6",this.onVideoEncodeFailed,this)})],tn.prototype,"publish",1),y([Je(function({localVideoTrack:e}){e==null||e.off("6",this.onVideoEncodeFailed,this)})],tn.prototype,"unpublish",1);var _u=tn;function Sp(s){return Object.keys(s).filter(i=>s[i])}var Ps=class extends Br{constructor(e){super(k(v({},e),{isUplink:!1}));c(this,"_flag",0);c(this,"isRobot",!1);c(this,"role","anchor");c(this,"remoteAudioTrack");c(this,"remoteVideoTrack");c(this,"remoteAuxiliaryTrack");c(this,"ssrc",{audio:0,video:0,videoRtx:0,auxiliary:0,auxiliaryRtx:0});c(this,"jitterBufferTimeoutId",-1);this.flag=e.flag,this.isRobot=e.isRobot||!1,this.remoteAudioTrack=new Di(this._room,this),this.remoteVideoTrack=new ii(this._room,this),this.remoteAuxiliaryTrack=new Is(this._room,this),this.initialize()}get videoCodec(){var e;return((e=this.singlePC)==null?void 0:e.downlinkVideoCodec)||"h264"}get subscribeState(){return{audio:this.remoteAudioTrack.isSubscribed||this.remoteAudioTrack.isSubscribing,video:this.remoteVideoTrack.isBig&&(this.remoteVideoTrack.isSubscribed||this.remoteVideoTrack.isSubscribing),smallVideo:this.remoteVideoTrack.isSmall&&(this.remoteVideoTrack.isSubscribed||this.remoteVideoTrack.isSubscribing),auxiliary:this.remoteAuxiliaryTrack.isSubscribed||this.remoteAuxiliaryTrack.isSubscribing}}get muteState(){return ui(this.flag,this.userId)}get flag(){return this._flag}set flag(e){var t,r,o;e!==this._flag&&(this._flag=e,(t=this.remoteAudioTrack)==null||t.onFlagChanged(),(r=this.remoteVideoTrack)==null||r.onFlagChanged(),(o=this.remoteAuxiliaryTrack)==null||o.onFlagChanged())}get hasMainStream(){return this.muteState.hasAudio||this.muteState.hasVideo||this.muteState.hasSmall}get hasAuxStream(){return this.muteState.hasAuxiliary}get isMainStreamSubscribed(){return(this.subscribeState.audio||this.subscribeState.video||this.subscribeState.smallVideo)&&(this.muteState.hasAudio||this.muteState.hasVideo||this.muteState.hasSmall)}get isAuxStreamSubscribed(){return this.subscribeState.auxiliary&&this.muteState.hasAuxiliary}get isSmallStreamSubscribed(){return this.subscribeState.smallVideo&&this.muteState.hasSmall}get isBigStreamSubscribed(){return this.subscribeState.video&&this.muteState.hasVideo}isStreamUnpublished(e){return e===h.MAIN?!this.muteState.hasAudio&&!this.muteState.hasVideo:!this.muteState.hasAuxiliary}initialize(){this.installEvents()}close(e){clearTimeout(this.jitterBufferTimeoutId),super.close(e),this.emitConnectionStateChangedEvent("DISCONNECTED"),this.remoteAudioTrack.close(),this.remoteVideoTrack.close(),this.remoteAuxiliaryTrack.close(),this.uninstallEvents(),this.removeDownlink()}installEvents(){this.singlePC&&(this.listeners("track").includes(this.onTrack)||this.singlePC.on("track",this.onTrack,this),this.listeners("spc-reconnected").includes(this.onSinglePCReconnected)||this.singlePC.on("spc-reconnected",this.onSinglePCReconnected,this))}uninstallEvents(){this.singlePC&&(this.singlePC.off("track",this.onTrack,this),this.singlePC.off("spc-reconnected",this.onSinglePCReconnected,this))}emitConnectionStateChangedEvent(e){var o,n;let t=this._currentState,r=super.emitConnectionStateChangedEvent(e);return r&&t!==e&&((o=this.remoteVideoTrack)==null||o.emit("connection-state-changed",{prevState:t,state:e}),(n=this.remoteAuxiliaryTrack)==null||n.emit("connection-state-changed",{prevState:t,state:e})),r}onTrack(e){var m,u;let t=e.streams[0],{track:r,receiver:o}=e;if(!t.id.includes(this.tinyId))return;let a=t.id.includes("aux")?"auxiliary":"main";this._log.debug(`ontrack ${a} ${r.kind}`);let d=h.AUDIO;r.kind===h.VIDEO&&(d=a===h.MAIN?h.VIDEO:h.AUXILIARY);let l=this.remoteAudioTrack;d===h.VIDEO?l=this.remoteVideoTrack:d===h.AUXILIARY&&(l=this.remoteAuxiliaryTrack),(m=this.singlePC)==null||m.receiverRemoteTrackMap.set(o,l),(u=this.singlePC)!=null&&u.scriptTransformWorker&&this.initReceiverTransform(o,a,r.kind===h.AUDIO),this.singlePC.enableInsertableStreams&&this.createEncodedStreams(o),l.setInputMediaStreamTrack(r)}createEncodedStreams(e){if(!this.singlePC.insertableStreamsAbortMap.has(e)){let t=e.createEncodedStreams(),r=new AbortController,o={abortController:r,enqueue:n=>{var d,l;let a=(d=this.singlePC)==null?void 0:d.receiverRemoteTrackMap.get(e);return!a||a.kind==="video"&&!((l=this.singlePC)!=null&&l.isUsingH264)?n:a.decodeFrame(n)}};t.readable.pipeThrough(new TransformStream({transform:(n,a)=>{let d=o.enqueue(n);d&&a.enqueue(d)}})).pipeTo(t.writable,r).catch(n=>{n!=="destory"&&this._log.warn(n)}),this.singlePC.addAbortController(e,r)}}initReceiverTransform(e,t,r){!this._peerConnection||!this.singlePC||!this.singlePC.scriptTransformWorker||e.transform||(e.transform=new RTCRtpScriptTransform(this.singlePC.scriptTransformWorker,{isReceiver:!0,isAudio:r,userId:this.userId,streamType:t}))}subscribe(e,t){return f(this,null,function*(){try{if(this._log.info(`subscribe ${t} ${Sp(e)}`),this.hasSSRC){let r="subscribe_change";Object.values(e).find(o=>o===!0)||(r="unsubscribe"),yield this.sendSubscription(r,e)}else yield this.doSubscribe(e),this.checkTrackEnded(e)}catch(r){throw this._room.isJoined&&this.isStreamUnpublished(t)?(this._log.warn(`${r.message} ${JSON.stringify(this.muteState)}`),new b({code:S.REMOTE_STREAM_NOT_EXIST,message:`remote user ${this.userId} unpublished stream`})):r}})}checkTrackEnded(e){var t,r,o;if((e.audio&&((t=this.remoteAudioTrack.mediaTrack)==null?void 0:t.readyState)==="ended"||e.video&&((r=this.remoteVideoTrack.mediaTrack)==null?void 0:r.readyState)==="ended"||e.auxiliary&&((o=this.remoteAuxiliaryTrack.mediaTrack)==null?void 0:o.readState)==="ended")&&this.singlePC&&!this.singlePC.isReconnecting){if(this._log.warn("remote track ended start spc reconnect"),vt&&Dt<92)return;this.singlePC.startReconnection()}}unsubscribe(r){return f(this,arguments,function*({remoteTracks:e,streamType:t}){var a;if(t==="main"&&!this.isMainStreamSubscribed||t==="auxiliary"&&!this.isAuxStreamSubscribed){this._log.info(`${t} stream already unsubscribed`);return}let o=v({},this.subscribeState);e.forEach(d=>{switch(d.mediaType){case 1:o.audio=!1;break;case 4:o.video=!1;break;case 8:o.smallVideo=!1;break;case 2:o.auxiliary=!1;break;default:break}});let n="subscribe_change";Object.values(o).find(d=>d===!0)||(n="unsubscribe"),this._log.info(`${n==="unsubscribe"?n:"subscribe"} ${t} [${Sp(o)}]`),n==="unsubscribe"&&((a=this.singlePC)==null||a.removeDownlinkQueue.add(this.tinyId)),yield this.sendSubscription(n,o),n==="unsubscribe"&&(yield this.removeDownlink())})}sendSubscription(e,t=this.subscribeState){let r={srcTinyId:this.tinyId,srcUserId:this.userId},o=q.UNSUBSCRIBE,n=B.UNSUBSCRIBE_RESULT;return e==="subscribe_change"&&(r={audio:t.audio,bigVideo:t.video,auxVideo:t.auxiliary,smallVideo:t.smallVideo,srcTinyId:this.tinyId},o=q.SUBSCRIBE_CHANGE,n=B.SUBSCRIBE_CHANGE_RESULT),this._signalChannel.sendWaitForResponseWithRetry({command:o,data:r,responseCommand:n,timeout:1e4,retries:3}).then(({data:a})=>{if(a.code!==0){let d=new b({code:a.code,message:U({key:x.ERROR_MESSAGE,data:{type:e,message:a.message}})});throw this._log.error(d),d}})}getMainStreamVideoTrackId(){return this.remoteVideoTrack&&this.remoteVideoTrack.mediaTrack?this.remoteVideoTrack.mediaTrack.id:""}getAuxStreamVideoTrackId(){return this.remoteAuxiliaryTrack&&this.remoteAuxiliaryTrack.mediaTrack?this.remoteAuxiliaryTrack.mediaTrack.id:""}setDelay({audioDelay:e,videoDelay:t}){this.remoteAudioTrack.stat.end2EndDelay=e,this.remoteVideoTrack.stat.end2EndDelay=t}onSinglePCReconnected(){(this.ssrc.audio||this.ssrc.video||this.ssrc.auxiliary)&&(this._log.warn(`resubscribe ${JSON.stringify(this.subscribeState)}`),this.doSubscribe(this.subscribeState))}get hasSSRC(){return this.ssrc.audio&&this.ssrc.video&&this.ssrc.auxiliary}doSubscribe(){return f(this,arguments,function*(e=this.subscribeState,t=!0){if(this.singlePC){this.singlePC.addDownlinkQueue.add(this.tinyId),yield this.singlePC.waitForPeerConnectionConnected();try{if(t||!this.hasSSRC){let r={audioSsrc:Vr(),bigVideoSsrc:Vr(),bigVideoRtxSsrc:Vr(),auxVideoSsrc:Vr(),auxVideoRtxSsrc:Vr()},{audioSsrc:o,bigVideoSsrc:n,bigVideoRtxSsrc:a,auxVideoSsrc:d,auxVideoRtxSsrc:l}=r;this.ssrc={audio:o,video:n,videoRtx:a,auxiliary:d,auxiliaryRtx:l},this.singlePC.addDownlinkQueue.delete(this.tinyId),yield this.singlePC.addDownlink({userId:this.userId,tinyId:this.tinyId,ssrc:this.ssrc});try{let m=yield this._signalChannel.sendWaitForResponseWithRetry({command:q.SPC_SUBSCRIBE,responseCommand:B.SPC_SUBSCRIBE_RESULT,data:{srcUserId:this.userId,srcTinyId:this.tinyId,audio:e.audio,bigVideo:e.video,auxVideo:e.auxiliary,smallVideo:e.smallVideo,customData:!1,ssrc:r},retries:3,retryTimeout:0});if(m.data.code!==0)throw new b({code:m.data.code,message:m.data.message})}catch(m){throw yield this.removeDownlink(),m}return}this.singlePC.addDownlinkQueue.delete(this.tinyId),yield this.singlePC.addDownlink({userId:this.userId,tinyId:this.tinyId,ssrc:this.ssrc})}finally{let r=this._room.scheduleResult.config;Rd&&(r!=null&&r.jitterDelay||r!=null&&r.jitterDelayAux)&&this.setJitterBufferDelay({mainDelay:r.jitterDelay,auxDelay:r.jitterDelayAux})}}})}removeDownlink(){return f(this,null,function*(){if(!this.singlePC)return;this.ssrc={audio:0,video:0,videoRtx:0,auxiliary:0,auxiliaryRtx:0},this.singlePC.removeDownlinkQueue.delete(this.tinyId);let e=this._room.scheduleResult.config;(e!=null&&e.jitterDelay||e!=null&&e.jitterDelayAux)&&this.setJitterBufferDelay({mainDelay:0,auxDelay:0}),yield this.singlePC.removeDownlink(this.userId)})}setJitterBufferDelay({mainDelay:e,auxDelay:t}){if(!this.singlePC||!this._peerConnection||pi(e)&&pi(t))return Promise.resolve();this._log.info(`set jitterBuffer main: ${e} aux: ${t}`);let r=this.singlePC.getReceiversByUserId(this.userId);return Y(e)&&(this.remoteAudioTrack.jitterBufferDelay=e,this.remoteVideoTrack.jitterBufferDelay=e),Y(t)&&(this.remoteAuxiliaryTrack.jitterBufferDelay=t,pi(e)&&(this.remoteAudioTrack.jitterBufferDelay=t)),new Promise(o=>{this.doSetJitterBufferDelay({mainDelay:e,auxDelay:t,receivers:r,resolve:o})})}doSetJitterBufferDelay({mainDelay:e,auxDelay:t,receivers:r,resolve:o}){try{if(e===0&&t===0)return r.forEach(a=>a.jitterBufferTarget=0),o();if(r.forEach(a=>{var u;let d=a.track===this.remoteAuxiliaryTrack.outMediaTrack||pi(e)&&a.track===this.remoteAudioTrack.outMediaTrack;if(d&&pi(t)||!d&&pi(e))return;let l=d?t||0:e,m=(a.jitterBufferTarget||0)+100;m>l||(a.jitterBufferTarget=m,this._log.debug(`set ${d?"aux ":""}${(u=a==null?void 0:a.track)==null?void 0:u.kind} jitterBuffer delay ${m} -> ${l}`))}),!r.find(a=>{let d=a.track===this.remoteAuxiliaryTrack.outMediaTrack?t||0:e;return a.jitterBufferTarget<d}))return this._log.info(`set jitterBuffer main: ${e} aux: ${t} done`),o();this.jitterBufferTimeoutId=setTimeout(()=>{this.doSetJitterBufferDelay({mainDelay:e,auxDelay:t,receivers:r,resolve:o})},1e3)}catch(n){this._log.warn(`set jitterBuffer delay error: ${n}`),clearTimeout(this.jitterBufferTimeoutId),o()}}get audioReceiver(){var e;return((e=this.singlePC)==null?void 0:e.getReceiversByUserId(this.userId)[0])||null}};y([Zt(),J(e=>function(...t){return new Promise((r,o)=>{let n=a=>{this.off("closed",n),o(new b({code:S.API_CALL_ABORTED,message:U({key:x.CONNECTION_ABORTED,data:a})}))};this.on("closed",n),e.apply(this,t).then(r,o).finally(()=>{this.off("closed",n)})})})],Ps.prototype,"subscribe",1),y([Zt()],Ps.prototype,"unsubscribe",1),y([Ni(()=>"jitter")],Ps.prototype,"setJitterBufferDelay",1);var Ip=Ps;function Ap(){return J(s=>function(...i){return f(this,null,function*(){if(this.scene==="live"&&this.role!=="anchor"||(i=i.filter(t=>t.outMediaTrack&&t.state==="capture"),!i.length))return;E.emit("61",{room:this});let e=s.apply(this,i);return i.forEach(t=>t.publish(this,e)),e})})}function Cp(){return J(s=>function(...i){let e=s.apply(this,i);return i.forEach(t=>t.unpublish()),e})}var Rp=ke(Ge());function xT(){return Math.floor(Math.random()*16383)}var dc=class dc extends Rp.EventEmitter{constructor(e,t){super();this.room=e;this.signalChannel=t;c(this,"log");c(this,"cmdIdSeqMap",new Map);c(this,"messageMap",new Map);this.log=C.createLogger({id:"cmm",userId:e.userId}),this.onReceiveMsg=this.onReceiveMsg.bind(this),t.on(B.RECEIVE_CUSTOM_MSG,this.onReceiveMsg),this.room.on("peer-leave",r=>{[...this.messageMap.keys()].forEach(o=>{o.split("_").slice(0,-1).join("_")===r&&this.messageMap.delete(o)})})}send({cmdId:e,data:t}){let r=this.cmdIdSeqMap.get(e)||xT(),o={cmdId:e,msg:btoa(String.fromCharCode(...new Uint8Array(t))),ordered:!0,reliable:!0,streamSeq:r};this.cmdIdSeqMap.set(e,r+1),this.signalChannel.send(q.SEND_CUSTOM_MSG,o),this.log.debug(`send custom msg: ${JSON.stringify(o)}`)}onReceiveMsg(e){let{data:t}=e.data,r=this.room.tinyIdToUserIdMap.get(t.srcTinyId);if(r){let o={userId:r,cmdId:t.cmdId,seq:t.streamSeq,data:Uint8Array.from(atob(t.msg),n=>n.charCodeAt(0)).buffer};if(t.ordered){let n=`${r}_${o.cmdId}`,a=this.messageMap.get(n);if(!a||a.lastSeq===0)a||(a={lastSeq:0,cachedMessageMap:new Map},this.messageMap.set(n,a),setTimeout(()=>this.emitMessage(o,!0),100)),a.cachedMessageMap.set(o.seq,{message:o});else if(Math.abs(a.lastSeq-o.seq)>dc.SEQ_INTERVAL)this.messageMap.set(n,{lastSeq:o.seq,cachedMessageMap:new Map}),this.emitMessage(o);else if(o.seq>a.lastSeq){if(o.seq===a.lastSeq+1)this.emitMessage(o);else if(!a.cachedMessageMap.has(o.seq)){let d=setTimeout(()=>this.emitMessage(o,!0),5e3);a.cachedMessageMap.set(o.seq,{message:o,timeoutId:d})}}else this.log.debug(`drop message ${o.userId}-${o.cmdId}-${o.seq}`)}else this.emit("message",o)}else{this.log.warn(`receive msg from unknown user, wait peer-join tinyId: ${t.srcTinyId}`);let o=n=>{n.tinyId===t.srcTinyId&&(this.room.off("peer-join",o),this.onReceiveMsg(e))};this.room.on("peer-join",o),hi(2e3).then(()=>this.room.off("peer-join",o))}}emitMessage(e,t=!1){var a;let r=this.messageMap.get(`${e.userId}_${e.cmdId}`),o=e;if(r){if(t){let d=[...r.cachedMessageMap.values()].sort((l,m)=>l.message.seq-m.message.seq);d[0]&&(o=d[0].message)}r.lastSeq!==0&&o.seq-r.lastSeq>1&&this.log.debug(`msg lost userId: ${o.userId} seq: ${r.lastSeq} -> ${o.seq}`),r.lastSeq=o.seq,clearTimeout((a=r.cachedMessageMap.get(o.seq))==null?void 0:a.timeoutId),r.cachedMessageMap.delete(o.seq)}this.log.debug(`receive custom msg: ${JSON.stringify(o)}`),this.emit("message",o);let n=r==null?void 0:r.cachedMessageMap.get(o.seq+1);n&&this.emitMessage(n.message)}};c(dc,"SEQ_INTERVAL",300);var cc=dc;var{isString:yp,isUndefined:ws,getNetworkType:UT,isEmpty:rn}=st,Vt=class extends nc{constructor(e){super(e);c(this,"_businessInfo");c(this,"userManager");c(this,"_version");c(this,"_heartbeat",-1);c(this,"_lastHeartBeatTime",-1);c(this,"_stats");c(this,"_joinTimeout",-1);c(this,"_firstPublishedList",null);c(this,"_joinReject",null);c(this,"_isRelayChanged",!1);c(this,"sdpSemantics");c(this,"signalChannel",null);c(this,"uplinkConnection",null);c(this,"singlePC",null);c(this,"enableSPC",us);c(this,"_changeBigSmallRecords",new Map);c(this,"networkQuality");c(this,"_iceTransportPolicy");c(this,"forceRelay",!1);c(this,"_turnServers",[]);c(this,"_syncUserListInterval",-1);c(this,"_smallStreamConfig",{bitrate:100,frameRate:15,height:120,width:160});c(this,"enableSEI",!1);c(this,"_enableAudioVolumeEvaluation",!1);c(this,"_audioVolumeIntervalId",0);c(this,"_enableMultiAuxStream",!1);c(this,"_pureAudioPushMode",!1);c(this,"_customMessageManager");c(this,"preferHW",!1);c(this,"healthDetector");c(this,"_updateAudioLevelTaskId",-1);this._stats=new Ko(this,this._log),this.userManager=new Pa(this.userId,this._log),this._version=Ce,this.sdpSemantics=Hr,ws(e.sdpSemantics)?jt.isUnifiedPlanDefault()&&(this.sdpSemantics=Hi):this.sdpSemantics=e.sdpSemantics,this._log.info(`sdpSemantics: ${this.sdpSemantics}, netType: ${UT()}`),e.iceTransportPolicy&&(this._iceTransportPolicy=e.iceTransportPolicy),this._enableMultiAuxStream=ws(e.enableMultiAuxStream)?!1:e.enableMultiAuxStream,this.enableSEI=e.enableSEI&&us,!ws(e.enableSPC)&&us&&(this.enableSPC=e.enableSPC),this.preferHW=!!e.preferHW,this._initBusinessInfo(e),this.healthDetector=new up(this)}get isMainStreamPublished(){var e;return!!((e=this.uplinkConnection)!=null&&e.isMainStreamPublished)}get isMainAudioPublished(){var e;return!!((e=this.uplinkConnection)!=null&&e.localMainAudioTrack)}get isAuxStreamPublished(){var e;return!!((e=this.uplinkConnection)!=null&&e.isAuxStreamPublished)}get hasAuxStream(){return[...this.remotePublishedUserMap.values()].findIndex(e=>e.muteState.hasAuxiliary)>=0}get userMap(){return this.userManager.userMap}get remotePublishedUserMap(){return this.userManager.remotePublishedUserMap}get tinyIdToUserIdMap(){return new Map([...this.userMap.values()].map(e=>[e.tinyId,e.userId]))}join(e,t,r){return f(this,null,function*(){return this.userManager.mySelfId=this.userId,this.userManager.on("1",o=>{this.emit("peer-join",o)}),this.userManager.on("2",o=>{this.closeDownLinkConnection(o,"remote user exitRoom"),this.emit("peer-leave",o)}),this.userManager.on("3",this.createDownlinkConnection,this),this.userManager.on("5",this.closeDownLinkConnection,this),this.userManager.on("6",n=>{var o=Su(n,[]);E.emit(T.REMOTE_PUBLISH_STATE_CHANGED,v({room:this},o)),this.emit("remote-publish-state-changed",v({},o))}),this.joinParams=e,new Promise((o,n)=>f(this,null,function*(){var a,d;this._joinReject=n;try{this.checkDestroy();try{yield Promise.all([this.initialize(),this.initSinglePC()])}catch(m){if(m instanceof b&&m.code===S.SPC_INITIALIZED_FAILED)(a=this.signalChannel)==null||a.destroy(),yield this.initialize();else return n(m)}let l=L();yield this.doJoin(e,(d=this.singlePC)==null?void 0:d.clientAbility),N.addSuccessEvent({key:521708,cost:L()-l}),o(),this._firstPublishedList&&this.onPublishedUserList({data:{userList:this._firstPublishedList}})}catch(l){N.addFailedEvent({key:521708,error:l}),n(l)}this._joinReject=null}))})}initSinglePC(){return f(this,null,function*(){if(!(!this.enableSPC||this.singlePC)){this.singlePC=new Ut({signalChannel:this.signalChannel,room:this,enableCustomMessage:!1}),this.singlePC.on("sei-message",e=>this.emit("sei-message",e)),this.singlePC.on("dump",e=>this.emit("dump",e)),this.singlePC.once("error",()=>this.fallbackToMPC());try{return yield this.singlePC.initialize()}catch(e){throw this.fallbackToMPC(),new b({code:S.SPC_INITIALIZED_FAILED,message:e==null?void 0:e.message})}}})}doJoin(e,t){return new Promise((r,o)=>f(this,null,function*(){var d,l,m;e.privateMapKey&&(this.privateMapKey=e.privateMapKey),e.latencyLevel&&(this.latencyLevel=e.latencyLevel),this.signalChannel.once(Ee.SETUP_FAILED,u=>{this.clearJoinTimeout(),E.emit(T.JOIN_SIGNAL_CONNECTION_END,{room:this,error:u}),o(u)}),he((l=(d=this.scheduleResult)==null?void 0:d.config)==null?void 0:l.singlePC)&&us&&(this.enableSPC=this.scheduleResult.config.singlePC),this.keyPointManager.setConnectionType(this.singlePC?1:2);let n={roomId:String(e.roomId||e.strRoomId),useStringRoomId:this.useStringRoomId,privateMapKey:this.privateMapKey,latencyLevel:this.latencyLevel,trtcRole:e.role,trtcScene:this.scene==="live"?2:1,sdpSemantics:this.sdpSemantics,version:this._version,ua:navigator&&navigator.userAgent||"",terminalType:Xc(),netType:ur(),bussinessInfo:this._businessInfo,ability:t,sdkType:this._sdkType,userSig:this.userSig,receiveMix:!0};this._log.debug(`join room signal data: ${JSON.stringify(n)}`);let a=5e3;(m=this.scheduleResult.config)!=null&&m.enterRoomTimeout&&this.scheduleResult.config.enterRoomTimeout>=1&&(a=this.scheduleResult.config.enterRoomTimeout*1e3),this._joinTimeout=window.setTimeout(()=>{o(new b({code:S.JOIN_ROOM_FAILED,message:U({key:x.JOIN_ROOM_TIMEOUT})}))},a),E.emit(T.JOIN_SEND_CMD,{room:this}),this.signalChannel.send(this.singlePC?q.SPC_JOIN_ROOM:q.JOIN_ROOM,n),this.signalChannel.once(B.JOIN_ROOM_RESULT,u=>{this.clearJoinTimeout();let{code:p,message:_,data:I,tinyId:R}=u.data;E.emit(T.JOIN_RECEIVED_CMD_RES,{room:this,code:p}),p===0?(this._log.info("Join room success, start heartbeat"),R&&(this.tinyId=R),this.startHeartbeat(),this.syncUserList(),this.startSyncUserListInterval(),this._firstPublishedList=I.publishers,this.singlePC&&this.singlePC.connect(k(v({},I.ability),{useVp8:I.ability.useVp8||!!e.useVp8})).catch(()=>{}),r()):(this._log.error(`Join room failed result: ${p} error: ${_}`),o(new b({code:S.JOIN_ROOM_FAILED,extraCode:p,message:U({key:x.JOIN_ROOM_FAILED,data:{error:_,code:p}})})))})}))}reJoin(e=!0){return f(this,null,function*(){if(!this.isJoined){this._log.warn("reJoin abort");return}try{this._log.warn(`reJoin pending: ${this.joinParams.roomId}`);let t,r=[];if(this.singlePC&&(this.singlePC.close(),this.singlePC=null,r.push(this.initSinglePC().then(o=>(t=o,o)))),this.signalChannel&&(this.signalChannel.race=e,this.signalChannel.close(),r.push(this.signalChannel.connect())),yield Promise.all(r),yield this.doJoin(k(v({},this.joinParams),{role:this.role==="anchor"?20:21,privateMapKey:this.privateMapKey,latencyLevel:this.latencyLevel}),t),this._log.warn("reJoin success"),ee.logSuccessEvent({userId:this.userId,eventType:Xe.REJOIN}),this.singlePC){let o=n=>{var a;n.state==="CONNECTED"&&((a=this.singlePC)==null||a.off(si.CONNECTION_STATE_CHANGED,o),this.uplinkConnection instanceof _u&&(this.uplinkConnection.installEvents(),this.uplinkConnection.onSinglePCReconnected()),this.remotePublishedUserMap.forEach(d=>{d.installEvents(),d.onSinglePCReconnected()}))};this.singlePC.on(si.CONNECTION_STATE_CHANGED,o),this.checkConnectionsToReconnect(),this.uplinkConnection instanceof Yo&&!this.uplinkConnection.getIsReconnecting()&&this.uplinkConnection.startReconnection()}}catch(t){this._log.warn(`reJoin fail ${t}`),this.reset(),ee.logFailedEvent({userId:this.userId,eventType:Xe.REJOIN,error:t}),this.emit("error",new b({code:S.JOIN_ROOM_FAILED,message:U({key:x.REJOIN_ROOM_FAILED,data:{roomId:this.joinParams.roomId}})}))}})}initialize(){return f(this,null,function*(){let{mainUrl:e,backupUrl:t}=this.getSignalChannelUrl(),r=this.signalChannel||Vm(this.userId),o=!!(r&&r.isConnected&&r.keepAlive),n;return Array.isArray(this.scheduleResult.domains)&&this.scheduleResult.domains.length>0&&(n=this.scheduleResult.domains[0]),this._log.info(`${o?"reuse":"setup"} signal channel`),o?(r.url=e,r.backupUrl=t,r.room=this,this.signalChannel=r):(this.signalChannel=new vs({sdkAppId:this.sdkAppId,userId:this.userId,userSig:this.userSig,url:e,backupUrl:t,race:this.enableSPC&&!this.proxy_ws,room:this,signalDomainWhenUnifiedProxy:this.proxy_unified?n:void 0}),this._customMessageManager=new cc(this,this.signalChannel),this._customMessageManager.on("message",a=>{this.emit("custom-message",a)})),this.networkQuality||(this.networkQuality=new ks({signalChannel:this.signalChannel,room:this}),this.networkQuality.on(ks.EVENT_NETWORK_QUALITY,a=>{var d;this.emit("network-quality",a),(d=this.singlePC)==null||d.detectTCPAndUDP(a)})),Ue(this,this.signalChannel).add(Ee.CONNECTION_STATE_CHANGED,a=>{E.emit(T.SIGNAL_CONNECTION_STATE_CHANGED,v({room:this},a)),this.emit("signal-connection-state-changed",a)}).add(Ee.RECONNECT_FAILED,a=>{this.reset(),this.emit("error",a)}).add(B.PEER_JOIN,a=>{let{srcTinyId:d,userId:l,role:m}=a.data.data;this.userManager.addUser({userId:l,tinyId:d,role:m})}).add(B.PEER_LEAVE,a=>{let{userId:d,reason:l=0}=a.data.data;this.userManager.deleteUser(d,l)}).add(B.UPDATE_REMOTE_MUTE_STAT,a=>{this._lastHeartBeatTime>0&&Date.now()-this._lastHeartBeatTime>=10*1e3&&this.doHeartbeat(),this.onPublishedUserList(a.data)}).add(B.CLIENT_BANNED,a=>{let d=a.data.data,{reason:l}=d;if(ee.uploadEvent({log:`stat-banned:${l}`,userId:this.userId}),l==="user_time_out"){this._log.warn(`${l} last heart beat time: ${this._lastHeartBeatTime} interval: ${Date.now()-this._lastHeartBeatTime}, visibility: ${document.visibilityState}`),this.reJoin();return}this._log[l==="kick"?"error":"info"](`user was banned because of [${l}]`),this.reset(),this.emit("banned",{reason:l})}),this.signalChannel.once(Ee.SETUP_SUCCESS,a=>{this.tinyId=a.signalInfo.tinyId,E.emit(T.JOIN_SIGNAL_CONNECTION_END,{room:this})}),E.emit(T.JOIN_SIGNAL_CONNECTION_START,{room:this}),yield this.signalChannel.connect(),o&&E.emit(T.JOIN_SIGNAL_CONNECTION_END,{room:this}),o})}setSignalChannel(e){this.signalChannel=e,e||Se(this)}leave(){return f(this,null,function*(){var e;try{yield this.doHeartbeat()}catch(t){}this._log.info("leave() => leaving room"),E.emit(T.LEAVE_SEND_CMD,{room:this}),(e=this.signalChannel)==null||e.send(q.LEAVE_ROOM)})}clearNetworkQuality(){this.networkQuality&&(this.networkQuality.stop(),delete this.networkQuality)}closeConnections(){this.remotePublishedUserMap.forEach(e=>{this.closeDownLinkConnection(e.userId,"you exitRoom")})}clearJoinTimeout(){clearTimeout(this._joinTimeout),this._joinTimeout=-1}startHeartbeat(){this._heartbeat===-1&&(this._heartbeat=re.run($i,this.doHeartbeat.bind(this),{delay:2e3}))}stopHeartbeat(){this._heartbeat!==-1&&(this._log.info("stopHeartbeat"),re.clearTask(this._heartbeat),this._heartbeat=-1,this._lastHeartBeatTime=-1)}doHeartbeat(){return f(this,null,function*(){var n;let e=this.badCaseDetector.getMonitorFreeze(),t=yield this._stats.getStatsReport({uplinkConnection:this.uplinkConnection,downlinkConnections:this.remotePublishedUserMap,freezeMap:e});this.badCaseDetector.resetMonitor();let r=(n=this.signalChannel)!=null&&n.isConnected?dm(this.userId):[],o=k(v({str_sdk_version:Fs,uint64_datetime:new Date().getTime(),msg_user_info:{str_identifier:this.userId,uint64_tinyid:this.tinyId},msg_event_msg:r,str_acc_ip:this.getSignalInfo().relayIp,str_client_ip:this.getSignalInfo().clientIp},t),{msg_device_info:v({uint32_terminal_type:15,str_device_name:navigator.platform,str_os_version:"",uint32_net_type:ur()},t.msg_device_info)});if(this.heartbeatReport=o,E.emit(T.HEARTBEAT_REPORT,{room:this,report:o}),this.signalChannel){if(this.signalChannel.isConnected){this.signalChannel.send(q.ON_QUALITY_REPORT,o);let a=Date.now();this._lastHeartBeatTime>0&&a-this._lastHeartBeatTime>1e4&&this._log.warn(`heartbeat took ${a-this._lastHeartBeatTime}`),this._lastHeartBeatTime=a,this.signalChannel.isOnline||(this._log.warn("signal channel is not online"),this.signalChannel.startReconnection())}this.emit("heartbeat-report",k(v({},o),{bytes_sent:this._stats.totalBytesSent+this.signalChannel.bytesSent,bytes_received:this._stats.totalBytesReceived+this.signalChannel.bytesReceived}))}!this._isRelayChanged&&this.isRelayMaybeFailed()&&(this.reJoin(),this._isRelayChanged=!0)})}onPublishedUserList(e){if(!this.isJoined)return;let t=e.data.userList.filter(r=>r.flag!==Ec).map(({userId:r,srcTinyId:o,flag:n})=>{r===this.userId&&this.uplinkConnection&&(this.uplinkConnection.flag=n);let a=this.remotePublishedUserMap.get(r);return a&&this.checkSubscribeBigSmallVideo(a),{userId:r,tinyId:o,flag:n}});e.data.mixRobotList.forEach(({userId:r,srcTinyId:o,flag:n,mixUserList:a})=>{t.unshift({userId:r,tinyId:o,flag:n,isRobot:!0,mixUserList:a})}),E.emit(T.RECEIVED_PUBLISHED_USER_LIST,{room:this,publishedUserList:t}),this.userManager.setRemotePublishedUserList(t)}closeUplink(e="you unpublished"){this.uplinkConnection&&(this.localTracks.size>0&&this.uplinkConnection.doUnpublish(),this.uplinkConnection.close(e),this.uplinkConnection instanceof Yo&&(this.uplinkConnection=null)),this.localTracks.forEach(t=>t.unpublish()),this.localTracks.clear()}createDownlinkConnection({userId:e,tinyId:t,flag:r,isRobot:o}){let n=new(this.singlePC?Ip:ou)({userId:e,tinyId:t,room:this,signalChannel:this.signalChannel,enableSEI:this.enableSEI,flag:r,isRobot:o});this.userManager.addRemotePublishedUser(n),this.installDownlinkEvents(n,e),this.emit("remote-published",n)}closeDownLinkConnection(e,t="remote user unpublished"){let r=this.remotePublishedUserMap.get(e);r&&(r.close(t),this.emit("remote-unpublished",r))}installDownlinkEvents(e,t){e.on("error",r=>{let o=r.getCode();o!==S.ICE_TRANSPORT_ERROR&&(o===S.DOWNLINK_RECONNECTION_FAILED&&this.closeDownLinkConnection(t),this.emit("error",r))}),e.on("connection-state-changed",r=>{this.emit("media-connection-state-changed",k(v({},r),{userId:e.userId}))}),e.on("firewall-restriction",()=>{this.emit("firewall-restriction")})}startSyncUserListInterval(){this._syncUserListInterval===-1&&(this._syncUserListInterval=re.run($i,this.syncUserList.bind(this)))}stopSyncUserListInterval(){re.clearTask(this._syncUserListInterval),this._syncUserListInterval=-1}syncUserList(){return this.getUserList().then(e=>{this.userManager.setUserList(e)}).catch(e=>{this._log.debug(`sync user list failed: ${e}`)})}getUserList(){var e;return(e=this.signalChannel)!=null&&e.isConnected?this.signalChannel.sendWaitForResponse({command:q.GET_USER_LIST,responseCommand:B.USER_LIST_RES,enableLog:!1,timeout:2e3}).then(({data:t})=>{let{code:r,message:o}=t;if(r===0)return(t.data&&t.data.userList||[]).map(({userId:a,srcTinyId:d,role:l})=>({userId:a,tinyId:d,role:l}));throw U({key:x.SIGNAL_RESPONSE_FAILED,data:{signalResponse:B.USER_LIST_RES,code:r,message:o}})}):Promise.reject("not connected")}getAllConnections(){let e=[...this.remotePublishedUserMap.values()];return this.uplinkConnection&&e.push(this.uplinkConnection),e}isRelayMaybeFailed(){if(this.signalChannel&&!this.signalChannel.isOnline||!Zl)return!1;if(this.singlePC)return this.singlePC.reconnectionCount>6;let e=this.getAllConnections();if(e.length===0)return!1;for(let t=0;t<e.length;t++)if(e[t].getReconnectionCount()<6)return!1;return!0}checkConnectionsToReconnect(){var e;this.singlePC?((e=this.singlePC.getPeerConnection())==null?void 0:e.connectionState)===ce.CLOSED&&!this.singlePC.isReconnecting&&(this._log.warn("spc pc is closed but not reconnect"),this.singlePC.startReconnection()):this.getAllConnections().forEach(r=>{if(r instanceof je&&!r.getIsReconnecting()){let o=r.getPeerConnection();o&&o.connectionState===ce.CLOSED&&(this._log.warn(`[${r.getUserId()}] pc is closed but not reconnect`),r.startReconnection())}})}fallbackToMPC(){return f(this,null,function*(){var e;if(this._log.warn("fallback to multi pc"),ee.uploadEvent({log:"stat-fallback",userId:this.userId}),this.enableSPC=!1,(e=this.singlePC)==null||e.close(),this.singlePC=null,this.isJoined&&(yield this.reJoin(!1)),this.uplinkConnection){let t=this.uplinkConnection;this.uplinkConnection=new Yo({userId:this.userId,tinyId:this.tinyId,room:this,signalChannel:this.signalChannel,enableSEI:this.enableSEI}),t.isMainStreamPublished&&(yield this.uplinkConnection.publish({localAudioTrack:t.localMainAudioTrack,localVideoTrack:t.localMainVideoTrack,isAuxiliary:!1})),t.isAuxStreamPublished&&(yield this.uplinkConnection.publish({localAudioTrack:t.localAuxAudioTrack,localVideoTrack:t.localAuxVideoTrack,isAuxiliary:!0})),t.close()}for(let t of[...this.remotePublishedUserMap.values()]){let r=new ou({userId:t.userId,tinyId:t.tinyId,room:this,signalChannel:this.signalChannel,enableSEI:this.enableSEI,flag:t.flag,remoteAudioTrack:t.remoteAudioTrack,remoteVideoTrack:t.remoteVideoTrack,remoteAuxiliaryTrack:t.remoteAuxiliaryTrack});this.installDownlinkEvents(r,t.userId),this.remotePublishedUserMap.set(t.userId,r),t.isMainStreamSubscribed&&(yield r.subscribe(t.subscribeState,"main")),t.isAuxStreamSubscribed&&(yield r.subscribe(t.subscribeState,"auxiliary"))}})}destroy(){this.isDestroyed||(this.signalChannel&&(this._log.info("destroying SignalChannel"),this.signalChannel.close(),this.signalChannel=null),super.destroy(),this._joinReject&&(this._joinReject(new b({code:S.INVALID_OPERATION,message:U({key:x.CLIENT_DESTROYED,data:{funName:"join"}})})),this.clearJoinTimeout(),this.reset()),this.removeAllListeners(),this.healthDetector.destroy(),re.clearTask(this._audioVolumeIntervalId))}switchRole(e){return f(this,null,function*(){this.role!==e&&(e==="audience"&&this.uplinkConnection&&this.closeUplink("you switch role to audience"),yield this.doSwitchRole(e))})}doSwitchRole(e){let t={command:q.SWITCH_ROLE,data:{role:e==="anchor"?20:21,privateMapKey:this.privateMapKey,latencyLevel:this.latencyLevel},responseCommand:B.SWITCH_ROLE_RES,retries:1};return this._log.info(`switchRole signal data: ${JSON.stringify(t.data)}`),this.signalChannel.sendWaitForResponseWithRetry(t).then(r=>{let{code:o,message:n}=r.data;if(o!==0)throw new b({code:S.SWITCH_ROLE_FAILED,message:U({key:x.SWITCH_ROLE_FAILED,data:{message:n,code:o}})});this.role=e}).catch(r=>{throw r instanceof b&&r.getCode()===S.API_CALL_TIMEOUT&&(r=new b({code:S.SWITCH_ROLE_FAILED,message:U({key:x.SWITCH_ROLE_TIMEOUT})})),this._log.error(r),r})}publish(...e){return f(this,null,function*(){let t={},r={};e.forEach(d=>{d instanceof _t&&(d instanceof ti?r.audio=d:t.audio=d),d instanceof Ve&&(d instanceof it&&d.mediaType===2?r.video=d:t.video=d)});let o=rn(t),n=rn(r);(!o||!n)&&!this.uplinkConnection&&(this.singlePC?this.uplinkConnection=new _u({userId:this.userId,tinyId:this.tinyId,room:this}):this.uplinkConnection=new Yo({userId:this.userId,tinyId:this.tinyId,room:this,signalChannel:this.signalChannel,enableSEI:this.enableSEI}),this.uplinkConnection.on("connection-state-changed",d=>{this.emit("media-connection-state-changed",k(v({},d),{userId:this.userId}))}),this.uplinkConnection.on("firewall-restriction",()=>{this.emit("firewall-restriction")}),this.uplinkConnection.on("error",d=>{let l=d.getCode();l!==S.ICE_TRANSPORT_ERROR&&(l===S.UPLINK_RECONNECTION_FAILED&&this.closeUplink(),this.emit("error",d))}));let a=e.map(d=>d.kind).join(",");o||(this._log.info(`publish() => main ${a}`),yield this.uplinkConnection.publish({localAudioTrack:t.audio,localVideoTrack:t.video,isAuxiliary:!1}),this._log.info("main is published")),n||(this._log.info(`publish() => aux ${a}`),yield this.uplinkConnection.publish({localAudioTrack:r.audio,localVideoTrack:r.video,isAuxiliary:!0}),this._log.info("aux is published"))})}unpublish(...e){return f(this,null,function*(){if(this.scene==="live"&&this.role!=="anchor"||!this.isMainStreamPublished&&!this.isAuxStreamPublished||!this.uplinkConnection)return;let t={},r={};e.forEach(o=>{!o.mediaTrack||!o.isPublished||(o instanceof _t&&(o instanceof ti?r.audio=o:t.audio=o),o instanceof Ve&&(o instanceof it&&o.mediaType===2?r.video=o:t.video=o))});try{let o=e.map(n=>n.kind).join(",");rn(t)||(this._log.info(`unpublish() => main ${o}`),yield this.uplinkConnection.unpublish({localAudioTrack:t.audio,localVideoTrack:t.video})),rn(r)||(this._log.info(`unpublish() => aux ${o}`),yield this.uplinkConnection.unpublish({localAudioTrack:r.audio,localVideoTrack:r.video}))}catch(o){}this.localTracks.size===0&&this.closeUplink("you unpublished")})}addTrack(e){if(!this.uplinkConnection||!e.mediaTrack)return Promise.resolve();let t=this.uplinkConnection.addTrack(e);return e.publish(this,t),t}removeTrack(e){return!this.uplinkConnection||!e.mediaTrack?Promise.resolve():this.uplinkConnection.removeTrack(e).then(t=>(e.unpublish(),t))}replaceTrack(e){return!this.uplinkConnection||!e.mediaTrack||!Ed()?Promise.resolve():this.uplinkConnection.replaceTrack(e).then(t=>{t&&E.emit(T.LOCAL_TRACK_REPLACED,{track:e})})}setBandWidth(e){return f(this,null,function*(){this.uplinkConnection&&(yield this.uplinkConnection.setBandwidth(e),yield this.uplinkConnection.sendMediaSettings())})}enableSmall(e){return f(this,null,function*(){if(!this.uplinkConnection||!this.uplinkConnection.localMainVideoTrack)return Promise.resolve();e&&this.uplinkConnection.localMainVideoTrack.small&&(yield this.setBandWidth({type:h.VIDEO,videoType:h.SMALL,bandwidth:this.uplinkConnection.localMainVideoTrack.small.bitrate})),yield this.uplinkConnection.enableSmall(e)})}subscribe(...e){return f(this,null,function*(){if(e=e.filter(n=>!n.isSubscribed),e.length===0)return;let{userId:t}=e[0],r=this.remotePublishedUserMap.get(t);if(!r)return;let o=e.find(n=>n.mediaType===2)?"auxiliary":"main";try{let n=v({},r.subscribeState);e.forEach(d=>{switch(d.mediaType){case 1:n.audio=!0;break;case 4:n.video=!0;break;case 8:n.smallVideo=!0;break;case 2:n.auxiliary=!0;break}});let a=this._changeBigSmallRecords.get(t);a&&a.options.smallVideo&&r.muteState.hasSmall&&n.video&&(n.video=!1,n.smallVideo=!0),E.emit(T.SUBSCRIBE_START,{room:this,streamType:o,remotePublishedUser:r,subscribeState:n}),this._log.info(`subscribe() => ${t} ${o} [${Za(n)}] prev: [${Za(r.subscribeState)}]`),yield r.subscribe(n,o),this._log.info(`subscribe ${t} ${o} done`);for(let d of e)d.mediaTrack||(yield d.waitHasMediaTrack());E.emit(T.SUBSCRIBE_SUCCESS,{room:this,streamType:o,remotePublishedUser:r})}catch(n){let a=n instanceof b?n.getCode():S.UNKNOWN,d=n;throw n instanceof b?a===S.REMOTE_STREAM_NOT_EXIST&&(d=new b({code:S.API_CALL_ABORTED,message:U({key:x.API_CALL_ABORTED,data:{message:n.message,userId:t,streamType:o}})}),this._log.warn(d)):(d=new b({code:a,message:U({key:x.SUBSCRIBE_FAILED,data:{message:n.message,userId:t,streamType:o}})}),this._log.error(d)),d}})}unsubscribe(...e){return f(this,null,function*(){let{userId:t}=e[0],r=this.remotePublishedUserMap.get(t);if(!r)return;let o=e.find(n=>n.mediaType===2)?"auxiliary":"main";this._log.info(`unsubscribe() => ${t} ${o}`);try{yield r.unsubscribe({remoteTracks:e,streamType:o})}catch(n){this._log.warn(`unsubscribe() => failed ${n}`)}e.forEach(n=>{n.unsubscribe(),n.mediaType===8&&n.setMediaType(4)}),E.emit(T.UNSUBSCRIBE_SUCCESS,{room:this,streamType:o,remotePublishedUser:r})})}setEncodedDataProcessingListener(e){throw new Error("Method not implemented.")}enableAudioVolumeEvaluation(e=2e3,t){if(e<=0){this._enableAudioVolumeEvaluation=!1,re.clearTask(this._audioVolumeIntervalId);return}e=Math.floor(Math.max(e,100)),E.emit(T.AUDIO_LEVEL_INTERVAL,{interval:e}),this._audioVolumeIntervalId&&re.clearTask(this._audioVolumeIntervalId),this._enableAudioVolumeEvaluation=!0,this._audioVolumeIntervalId=re.run(Wr,()=>{var o;Ud.isRunning?this.stopUpdateAudioLevelFromSenderStat():this.updateAudioLevelFromSenderStat(e,t);let r=[];(o=this.remotePublishedUserMap)==null||o.forEach(n=>{if(n.muteState.hasAudio){!Ud.isRunning&&n.muteState.audioAvailable&&n.remoteAudioTrack.isSubscribed?this.updateDownlinkAudioLevelFromReceiver(n):n.remoteAudioTrack.volume=0;let a=Math.floor(n.remoteAudioTrack.getAudioLevel()*100);r.push({userId:n.userId,volume:a})}}),this.emit("audio-volume",r)},{fps:1e3/e,backgroundTask:t})}updateAudioLevelFromSenderStat(e,t){return f(this,null,function*(){var n;if(!this.uplinkConnection||!this.uplinkConnection.localMainAudioTrack||this._updateAudioLevelTaskId!==-1)return;let r=(n=this.uplinkConnection.getPeerConnection())==null?void 0:n.getSenders()[0];if(!r)return;let o=Math.max(e,500);this._log.warn(`updateAudioLevelFromSenderStat ${o}`),this._updateAudioLevelTaskId=re.run(Wr,()=>f(this,null,function*(){let a=yield r.getStats();this._updateAudioLevelTaskId<0||a.forEach(d=>{d.type==="media-source"&&d.audioLevel&&(this.uplinkConnection.localMainAudioTrack.volume=d.audioLevel)})}),{delay:o,backgroundTask:t})})}stopUpdateAudioLevelFromSenderStat(){var e;this._updateAudioLevelTaskId!==-1&&(this._log.warn("stopUpdateAudioLevelFromSenderStat"),re.clearTask(this._updateAudioLevelTaskId),this._updateAudioLevelTaskId=-1,(e=this.uplinkConnection)!=null&&e.localMainAudioTrack&&(this.uplinkConnection.localMainAudioTrack.volume=0))}updateDownlinkAudioLevelFromReceiver(e){var o;let{audioReceiver:t}=e;if(!Sd||!t)return;let r=(o=t.getSynchronizationSources()[0])==null?void 0:o.audioLevel;Y(r)?e.remoteAudioTrack.volume=Math.min(r*2,1):t.getStats().then(n=>{n.forEach(a=>{a.type==="inbound-rtp"&&Y(a.audioLevel)&&(e.remoteAudioTrack.volume=a.audioLevel)})})}getLocalAudioStats(){return f(this,null,function*(){var t;let e={};return e[this.userId]={bytesSent:0,packetsSent:0,audioLevel:0},(t=this.uplinkConnection)!=null&&t.localMainAudioTrack&&(e[this.userId]=this.uplinkConnection.localMainAudioTrack.stat),e})}getLocalVideoStats(){return f(this,null,function*(){var t,r;let e={};return e[this.userId]=((r=(t=this.uplinkConnection)==null?void 0:t.localMainVideoTrack)==null?void 0:r.stat)||{bytesSent:0,packetsSent:0,framesEncoded:0,framesSent:0,frameWidth:0,frameHeight:0,fpsCapture:0},e})}getTransportStats(){return f(this,null,function*(){let e={rtt:0,downlinksRTT:{}};if(this.uplinkConnection){let t=yield this._stats.getSenderStats(this.uplinkConnection);e.rtt=t.rtt}for(let[,t]of this.remotePublishedUserMap){let r=yield this._stats.getReceiverStats(t);e.downlinksRTT[r.userId]=r.rtt}return e})}getRemoteVideoStats(e){return f(this,null,function*(){let t={};for(let[r,o]of this.remotePublishedUserMap)e==="main"&&o.muteState.hasVideo&&(t[r]=o.remoteVideoTrack.stat),e==="auxiliary"&&o.muteState.hasAuxiliary&&(t[r]=o.remoteAuxiliaryTrack.stat);return t})}getRemoteAudioStats(){return f(this,null,function*(){let e={};for(let[t,r]of this.remotePublishedUserMap)r.muteState.hasAudio&&(e[t]=r.remoteAudioTrack.stat);return e})}setTurnServer(e,t){this._log.info(`set turn server: ${JSON.stringify(e)} ${t||""}`);let r=[];Array.isArray(e)?e.forEach(o=>r.push(st.getTurnServer(o))):st.isPlainObject(e)&&r.push(st.getTurnServer(e)),this._turnServers=r,t&&(this._iceTransportPolicy=t)}sendStartMixTranscode(e){return this.signalChannel.sendWaitForResponse({command:q.START_MIX_TRANSCODE,data:e,timeout:5e3,responseCommand:B.START_MIX_TRANSCODE_RES,commandDesc:"startMixTranscode"})}sendStopMixTranscode(e){return this.signalChannel.sendWaitForResponse({command:q.STOP_MIX_TRANSCODE,data:e,timeout:5e3,responseCommand:B.STOP_MIX_TRANSCODE_RES,commandDesc:"stopMixTranscode"})}sendStartPublishCDN(e,t=!0){return this.signalChannel.sendWaitForResponse({command:t?q.START_PUBLISH_TENCENT_CDN:q.START_PUBLISH_GIVEN_CDN,data:e,timeout:5e3,responseCommand:t?B.START_PUBLISH_TENCENT_CDN_RES:B.START_PUBLISH_GIVEN_CDN_RES,commandDesc:"startPublishCDN"})}sendStopPublishCDN(e,t=!0){return this.signalChannel.sendWaitForResponse({command:t?q.STOP_PUBLISH_TENCENT_CDN:q.STOP_PUBLISH_GIVEN_CDN,data:e,timeout:5e3,responseCommand:t?B.STOP_PUBLISH_TENCENT_CDN_RES:B.STOP_PUBLISH_GIVEN_CDN_RES,commandDesc:"stopPublishCDN"})}sendStartPushStreamToRoom(e){return this.signalChannel.sendWaitForResponse({command:q.START_PUBLISH_CDN_STREAM,data:e,timeout:5e3,responseCommand:B.START_PUBLISH_CDN_STREAM_RES,commandDesc:"startPublishCDNStream"})}sendUpdatePushStreamToRoom(e){return this.signalChannel.sendWaitForResponse({command:q.UPDATE_PUBLISH_CDN_STREAM,data:e,timeout:5e3,responseCommand:B.UPDATE_PUBLISH_CDN_STREAM_RES,commandDesc:"updatePublishCDNStream"})}sendStopPushStreamToRoom(e){return this.signalChannel.sendWaitForResponse({command:q.STOP_PUBLISH_CDN_STREAM,data:e,timeout:5e3,responseCommand:B.STOP_PUBLISH_CDN_STREAM_RES,commandDesc:"stopPublishCDNStream"})}sendAbilityStatus(e){var t;(t=this.signalChannel)==null||t.sendWaitForResponse({command:q.ABILITY_STATUS_REPORT,data:e,timeout:5e3,responseCommand:B.ABILITY_STATUS_REPORT_RESULT,commandDesc:"ability status report"}).catch(r=>{})}getIceServers(){return this._turnServers.length===0&&this.scheduleResult.iceServers?this.scheduleResult.iceServers:this._turnServers}getIceTransportPolicy(){return this.forceRelay?"relay":this._iceTransportPolicy||this.scheduleResult.iceTransportPolicy||"all"}getLogger(){return this._log}enableAIVoice(){throw new Error("Method not implemented.")}getSignalChannelUrl(){let e={mainUrl:"",backupUrl:""},t=st.getEnv();return t?(e.mainUrl=`wss://${t}.rtc.qq.com`,e.backupUrl=e.mainUrl):this.proxy_ws?(e.mainUrl=this.proxy_ws,e.backupUrl=e.mainUrl):this.proxy_unified?(e.mainUrl=`wss://${this.proxy_unified}`,e.backupUrl=e.mainUrl):Array.isArray(this.scheduleResult.domains)&&this.scheduleResult.domains.length>0&&(e.mainUrl=`wss://${this.scheduleResult.domains[0]}`,e.backupUrl=e.mainUrl,this.scheduleResult.domains[1]&&(e.backupUrl=`wss://${this.scheduleResult.domains[1]}`)),e}getSignalInfo(){var e;return((e=this.signalChannel)==null?void 0:e.getSignalInfo())||{clientIp:"",relayIp:""}}reset(e=!1){this.stopSyncUserListInterval(),this.stopHeartbeat(),this.closeConnections(),this.clearNetworkQuality(),this.closeUplink("you exitRoom"),this.signalChannel&&(e&&this.signalChannel.keepAlive&&this.signalChannel.isConnected?this.signalChannel.stopKeepAliveIn(3600):(this.signalChannel.close(),this.setSignalChannel(null))),this._stats.reset(),this.userManager.clear(),this.userManager.removeAllListeners(),this.singlePC&&(this.singlePC.close(),this.singlePC=null),this.scheduleResult={domains:null,iceServers:null,iceTransportPolicy:null,trtcAutoConf:null}}checkSubscribeBigSmallVideo(e){return f(this,null,function*(){let{subscribeState:t,userId:r,muteState:{hasSmall:o,hasVideo:n}}=e;if(!o&&!n||!t.video&&!t.smallVideo)return;let a=this._changeBigSmallRecords.get(r);if(!a||a.isSubscribing||a.reSubscribeCount<=0)return;let{options:d,reSubscribeCount:l}=a;if(d.video&&t.video||d.smallVideo&&t.smallVideo&&o)return;let m={audio:e.remoteAudioTrack.isSubscribed||e.remoteAudioTrack.isSubscribing,auxiliary:e.remoteAuxiliaryTrack.isSubscribed||e.remoteAuxiliaryTrack.isSubscribing,video:d.video,smallVideo:d.smallVideo};try{if(!o&&m.smallVideo&&(m.video=!0,m.smallVideo=!1),m.smallVideo===t.smallVideo&&m.video===t.video)return;a.isSubscribing=!0,a.reSubscribeCount=l-1,yield e.subscribe(m,"main"),e.remoteVideoTrack.setMediaType(m.smallVideo?8:4),this._log.info(`change [${r}] to ${m.smallVideo?"small":"big"} video successfully. count ${$r-a.reSubscribeCount}.`),a.isSubscribing=!1,a.reSubscribeCount=$r}catch(u){this._log.info(`change [${r}] to ${m.smallVideo?"small":"big"} video failed. count ${$r-a.reSubscribeCount}.`),a.isSubscribing=!1,a.reSubscribeCount===0&&this._changeBigSmallRecords.delete(r)}})}changeType(e,t){let o={options:{video:!e,smallVideo:e},isSubscribing:!1,reSubscribeCount:$r};this._changeBigSmallRecords.set(t.userId,o),this._log.info(`set [${t.userId}] video prefer type: ${e?"small":"big"}`);let n=this.remotePublishedUserMap.get(t.userId);n&&this.checkSubscribeBigSmallVideo(n)}get smallStreamConfig(){return this._smallStreamConfig}_initBusinessInfo(e){this._businessInfo=e.businessInfo;let t={};if(yp(e.businessInfo)&&(t=JSON.parse(e.businessInfo)),!ws(e.pureAudioPushMode)){if(!Number.isInteger(Number(e.pureAudioPushMode)))throw new b({code:S.INVALID_PARAMETER,message:U({key:x.INVALID_PURE_AUDIO})});this._pureAudioPushMode=e.pureAudioPushMode,t.Str_uc_params||(t.Str_uc_params={}),t.Str_uc_params.pure_audio_push_mod=this._pureAudioPushMode}if(!ws(e.userDefineRecordId)){let r=/^[A-Za-z0-9_-]{1,64}$/gi;if(e.userDefineRecordId.match(r)===null)throw new b({code:S.INVALID_PARAMETER,message:U({key:x.INVALID_USER_DEFINE_RECORDID})});t.Str_uc_params||(t.Str_uc_params={}),t.Str_uc_params.userdefine_record_id=e.userDefineRecordId}if(!ws(e.userDefinePushArgs))if(yp(e.userDefinePushArgs)&&String(e.userDefinePushArgs)&&String(e.userDefinePushArgs).length<=256)t.Str_uc_params||(t.Str_uc_params={}),t.Str_uc_params.userdefine_push_args=e.userDefinePushArgs;else throw new b({code:S.INVALID_PARAMETER,message:U({key:x.INVALID_USER_DEFINE_PUSH_ARGS})});rn(t)||(this._businessInfo=JSON.stringify(t))}sendCustomMessage(e){var t;(t=this._customMessageManager)==null||t.send(e)}enableInsertableStreams(){return f(this,null,function*(){if(this.singlePC&&!this.singlePC.enableInsertableStreams&&Ri)return this.singlePC.enableInsertableStreams=!0,yield this.singlePC.waitForPeerConnectionConnected(),yield this.singlePC.startReconnection()})}sendSignalMessage(e){var t;return this.signalChannel?(t=this.signalChannel)==null?void 0:t.sendWaitForResponseWithRetry(e):Promise.reject(new b({code:S.INVALID_OPERATION,message:"not join"}))}get enableCodecPipeline(){return this.videoManager.encodePipeline.length>0||this.videoManager.decodePipeline.length>0||this.audioManager.encodePipeline.length>0||this.audioManager.decodePipeline.length>0}get scriptTransformWorker(){var e;return(e=this.singlePC)==null?void 0:e.scriptTransformWorker}};y([de(["left",Q.INIT],"joined"),Ke({settings:{retries:1,timeout:0},onRetrying(e){this._log.warn(`join retry ${e}`)},onRetryFailed(e){this._log.error("join failed",e)},onError(e,t){this._isUsingCachedSchedule&&!this.isDestroyed?(this._log.warn("is using cached schedule, retry join"),wt(!0),this.reset(),t()):this.signalChannel&&this.signalChannel.isConnected&&this.signalChannel.keepAlive?(this._log.warn("is using keepAlive ws, retry join"),this.signalChannel.close(),this.reset(),t()):(this.reset(),t())}}),Lm()],Vt.prototype,"join",1),y([de("joined","left",{ignoreError:!0,success(){this.reset(!0)}}),Pm(),pa("leave room"),Oo({fnName:"publish",validateArgs:!1}),Oo({fnName:"unsubscribe",validateArgs:!1})],Vt.prototype,"leave",1),y([Zt(),Ap(),Ke({settings:{retries:ci,timeout:e=>Ct(e)},onError(e,t,r){var o;(o=e.message)!=null&&o.includes("timeout")?(this._log.warn("publish timeout"),t()):(this._log.error(`publish failed: ${e}`),r(e),E.emit(T.PUBLISH_FAILED,{room:this}))}})],Vt.prototype,"publish",1),y([Oo({fnName:"publish"}),Qh("api-call"),Zt(),Cp(),Je(function(){var e,t;this.localTracks.size===0&&Yi()&&((t=(e=this.singlePC)==null?void 0:e.getPeerConnection())==null||t.getSenders().forEach(r=>r.track&&r.replaceTrack(null)))})],Vt.prototype,"unpublish",1),y([ua(e=>{if(e.code!==S.API_CALL_ABORTED)throw e}),Ni(e=>e.userId)],Vt.prototype,"replaceTrack",1),y([Ni((...e)=>e[0].userId),ga(),wm(),Ke({settings:{retries:ci,timeout:e=>Ct(e)},onError(e,t,r,o){e.message.includes("timeout")?(this._log.warn("subscribe timeout"),t()):(this._log.error(`subscribe failed: ${e}`),r(e),E.emit(T.SUBSCRIBE_FAILED,{room:this,remoteTracks:o}))}})],Vt.prototype,"subscribe",1),y([Oo({fnName:"subscribe",callback(...e){this.singlePC||e.forEach(t=>{let r=this.remotePublishedUserMap.get(t.userId);r&&!r.isMainStreamSubscribed&&!r.isAuxStreamSubscribed&&r.close("you unsubscribed")})}}),Ni((...e)=>e[0].userId)],Vt.prototype,"unsubscribe",1);Qo.create=Qo._create.bind(Qo,Vt);var yF=Qo;export{yF as default};