trtc-sdk-v5 5.13.0-wasm.3 → 5.13.0-wasm.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/debug-dialog.js +2 -2
- package/assets/worker.js +12 -12
- package/package.json +1 -1
- package/plugins/cdn-streaming/cdn-streaming.esm.js +1 -1
- package/plugins/cdn-streaming/cdn-streaming.umd.js +1 -3
- package/plugins/cdn-streaming/package.json +1 -1
- package/plugins/chorus/chorus.esm.js +1 -1
- package/plugins/chorus/chorus.umd.js +1 -3
- package/plugins/chorus/package.json +1 -1
- package/plugins/cross-room/cross-room.esm.js +1 -1
- package/plugins/cross-room/cross-room.umd.js +1 -3
- package/plugins/cross-room/package.json +1 -1
- package/plugins/custom-encryption/custom-encryption.esm.js +1 -1
- package/plugins/custom-encryption/custom-encryption.umd.js +1 -1
- package/plugins/custom-encryption/package.json +1 -1
- package/plugins/device-detector/device-detector.esm.js +27 -15
- package/plugins/device-detector/device-detector.umd.js +14 -4
- package/plugins/device-detector/package.json +1 -1
- package/plugins/small-stream-auto-switcher/package.json +1 -1
- package/plugins/small-stream-auto-switcher/small-stream-auto-switcher.esm.js +1 -1
- package/plugins/small-stream-auto-switcher/small-stream-auto-switcher.umd.js +1 -1
- package/plugins/video-decoder/package.json +1 -1
- package/plugins/video-decoder/video-decoder.esm.js +1 -1
- package/plugins/video-decoder/video-decoder.umd.js +1 -3
- package/plugins/video-effect/basic-beauty/basic-beauty.esm.js +1 -1
- package/plugins/video-effect/basic-beauty/basic-beauty.umd.js +1 -3
- package/plugins/video-effect/basic-beauty/package.json +1 -1
- package/plugins/video-effect/beauty/beauty.esm.js +1 -1
- package/plugins/video-effect/beauty/beauty.umd.js +1 -3
- package/plugins/video-effect/beauty/package.json +1 -1
- package/plugins/video-effect/video-mixer/package.json +1 -1
- package/plugins/video-effect/video-mixer/video-mixer.esm.js +1 -1
- package/plugins/video-effect/video-mixer/video-mixer.umd.js +1 -3
- package/plugins/video-effect/virtual-background/package.json +1 -1
- package/plugins/video-effect/virtual-background/virtual-background.esm.js +1 -1
- package/plugins/video-effect/virtual-background/virtual-background.umd.js +1 -3
- package/plugins/video-effect/watermark/package.json +1 -1
- package/plugins/video-effect/watermark/watermark.umd.js +1 -3
- package/plugins/voice-changer/package.json +1 -1
- package/plugins/voice-changer/voice-changer.esm.js +1 -1
- package/plugins/voice-changer/voice-changer.umd.js +1 -3
- package/trtc.esm.js +54 -54
- package/trtc.js +1 -1
package/trtc.esm.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
var IT=Object.create;var Xn=Object.defineProperty,ST=Object.defineProperties,zp=Object.getOwnPropertyDescriptor,yT=Object.getOwnPropertyDescriptors,AT=Object.getOwnPropertyNames,qp=Object.getOwnPropertySymbols,Jp=Object.getPrototypeOf,Xp=Object.prototype.hasOwnProperty,bT=Object.prototype.propertyIsEnumerable,RT=Reflect.get;var Xi=Math.pow,Rl=(i,t,e)=>t in i?Xn(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,J=(i,t)=>{for(var e in t||(t={}))Xp.call(t,e)&&Rl(i,e,t[e]);if(qp)for(var e of qp(t))bT.call(t,e)&&Rl(i,e,t[e]);return i},ge=(i,t)=>ST(i,yT(t));var Qn=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),di=(i,t)=>{for(var e in t)Xn(i,e,{get:t[e],enumerable:!0})},vT=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of AT(t))!Xp.call(i,o)&&o!==e&&Xn(i,o,{get:()=>t[o],enumerable:!(r=zp(t,o))||r.enumerable});return i};var ui=(i,t,e)=>(e=i!=null?IT(Jp(i)):{},vT(t||!i||!i.__esModule?Xn(e,"default",{value:i,enumerable:!0}):e,i));var K=(i,t,e,r)=>{for(var o=r>1?void 0:r?zp(t,e):t,s=i.length-1,n;s>=0;s--)(n=i[s])&&(o=(r?n(t,e,o):n(o))||o);return r&&o&&Xn(t,e,o),o};var l=(i,t,e)=>Rl(i,typeof t!="symbol"?t+"":t,e);var Ut=(i,t,e)=>RT(Jp(i),e,t);var y=(i,t,e)=>new Promise((r,o)=>{var s=u=>{try{a(e.next(u))}catch(m){o(m)}},n=u=>{try{a(e.throw(u))}catch(m){o(m)}},a=u=>u.done?r(u.value):Promise.resolve(u.value).then(s,n);a((e=e.apply(i,t)).next())});var Si=Qn((Rb,gm)=>{"use strict";var F_=Object.prototype.hasOwnProperty,Gt="~";function Ra(){}Object.create&&(Ra.prototype=Object.create(null),new Ra().__proto__||(Gt=!1));function $_(i,t,e){this.fn=i,this.context=t,this.once=e||!1}function Vf(i,t,e,r,o){if(typeof e!="function")throw new TypeError("The listener must be a function");var s=new $_(e,r||i,o),n=Gt?Gt+t:t;return i._events[n]?i._events[n].fn?i._events[n]=[i._events[n],s]:i._events[n].push(s):(i._events[n]=s,i._eventsCount++),i}function Cd(i,t){--i._eventsCount===0?i._events=new Ra:delete i._events[t]}function Bt(){this._events=new Ra,this._eventsCount=0}Bt.prototype.eventNames=function(){var t=[],e,r;if(this._eventsCount===0)return t;for(r in e=this._events)F_.call(e,r)&&t.push(Gt?r.slice(1):r);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(e)):t};Bt.prototype.listeners=function(t){var e=Gt?Gt+t:t,r=this._events[e];if(!r)return[];if(r.fn)return[r.fn];for(var o=0,s=r.length,n=new Array(s);o<s;o++)n[o]=r[o].fn;return n};Bt.prototype.listenerCount=function(t){var e=Gt?Gt+t:t,r=this._events[e];return r?r.fn?1:r.length:0};Bt.prototype.emit=function(t,e,r,o,s,n){var a=Gt?Gt+t:t;if(!this._events[a])return!1;var u=this._events[a],m=arguments.length,p,g;if(u.fn){switch(u.once&&this.removeListener(t,u.fn,void 0,!0),m){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,e),!0;case 3:return u.fn.call(u.context,e,r),!0;case 4:return u.fn.call(u.context,e,r,o),!0;case 5:return u.fn.call(u.context,e,r,o,s),!0;case 6:return u.fn.call(u.context,e,r,o,s,n),!0}for(g=1,p=new Array(m-1);g<m;g++)p[g-1]=arguments[g];u.fn.apply(u.context,p)}else{var T=u.length,A;for(g=0;g<T;g++)switch(u[g].once&&this.removeListener(t,u[g].fn,void 0,!0),m){case 1:u[g].fn.call(u[g].context);break;case 2:u[g].fn.call(u[g].context,e);break;case 3:u[g].fn.call(u[g].context,e,r);break;case 4:u[g].fn.call(u[g].context,e,r,o);break;default:if(!p)for(A=1,p=new Array(m-1);A<m;A++)p[A-1]=arguments[A];u[g].fn.apply(u[g].context,p)}}return!0};Bt.prototype.on=function(t,e,r){return Vf(this,t,e,r,!1)};Bt.prototype.once=function(t,e,r){return Vf(this,t,e,r,!0)};Bt.prototype.removeListener=function(t,e,r,o){var s=Gt?Gt+t:t;if(!this._events[s])return this;if(!e)return Cd(this,s),this;var n=this._events[s];if(n.fn)n.fn===e&&(!o||n.once)&&(!r||n.context===r)&&Cd(this,s);else{for(var a=0,u=[],m=n.length;a<m;a++)(n[a].fn!==e||o&&!n[a].once||r&&n[a].context!==r)&&u.push(n[a]);u.length?this._events[s]=u.length===1?u[0]:u:Cd(this,s)}return this};Bt.prototype.removeAllListeners=function(t){var e;return t?(e=Gt?Gt+t:t,this._events[e]&&Cd(this,e)):(this._events=new Ra,this._eventsCount=0),this};Bt.prototype.off=Bt.prototype.removeListener;Bt.prototype.addListener=Bt.prototype.on;Bt.prefixed=Gt;Bt.EventEmitter=Bt;typeof gm!="undefined"&&(gm.exports=Bt)});var Pd=Qn((cR,Yf)=>{"use strict";var Qf=Yf.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(Qf).forEach(function(i){var t=Qf[i];t.forEach(function(e){e.reg||(e.reg=/(.*)/),e.format||(e.format="%s")})})});var eg=Qn(vi=>{"use strict";var nn=function(i){return String(Number(i))===i?Number(i):i},J_=function(i,t,e,r){if(r&&!e)t[r]=nn(i[1]);else for(var o=0;o<e.length;o+=1)i[o+1]!=null&&(t[e[o]]=nn(i[o+1]))},X_=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;J_(e.match(i.reg),o,i.names,i.name),i.push&&t[i.push].push(o)},Zf=Pd(),Q_=RegExp.prototype.test.bind(/^([a-z])=(.*)/);vi.parse=function(i){var t={},e=[],r=t;return i.split(/(\r\n|\r|\n)/).filter(Q_).forEach(function(o){var s=o[0],n=o.slice(2);s==="m"&&(e.push({rtp:[],fmtp:[]}),r=e[e.length-1]);for(var a=0;a<(Zf[s]||[]).length;a+=1){var u=Zf[s][a];if(u.reg.test(n))return X_(u,r,n)}}),t.media=e,t};var Kf=function(i,t){var e=t.split(/=(.+)/,2);return e.length===2?i[e[0]]=nn(e[1]):e.length===1&&t.length>1&&(i[e[0]]=void 0),i};vi.parseParams=function(i){return i.split(/;\s?/).reduce(Kf,{})};vi.parseFmtpConfig=vi.parseParams;vi.parsePayloads=function(i){return i.toString().split(" ").map(Number)};vi.parseRemoteCandidates=function(i){for(var t=[],e=i.split(" ").map(nn),r=0;r<e.length;r+=3)t.push({component:e[r],ip:e[r+1],port:e[r+2]});return t};vi.parseImageAttributes=function(i){return i.split(" ").map(function(t){return t.substring(1,t.length-1).split(",").reduce(Kf,{})})};vi.parseSimulcastStreamList=function(i){return i.split(";").map(function(t){return t.split(",").map(function(e){var r,o=!1;return e[0]!=="~"?r=nn(e):(r=nn(e.substring(1,e.length)),o=!0),{scid:r,paused:o}})})}});var rg=Qn((uR,tg)=>{"use strict";var xm=Pd(),Y_=/%[sdv%]/g,Z_=function(i){var t=1,e=arguments,r=e.length;return i.replace(Y_,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""}})},Pa=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 n=t.names[s];t.name?o.push(e[t.name][n]):o.push(e[t.names[s]])}else o.push(e[t.name]);return Z_.apply(null,o)},K_=["v","o","s","i","u","e","p","c","b","t","r","z","a"],eI=["i","c","b","a"];tg.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||K_,r=t.innerOrder||eI,o=[];return e.forEach(function(s){xm[s].forEach(function(n){n.name in i&&i[n.name]!=null?o.push(Pa(s,n,i)):n.push in i&&i[n.push]!=null&&i[n.push].forEach(function(a){o.push(Pa(s,n,a))})})}),i.media.forEach(function(s){o.push(Pa("m",xm.m[0],s)),r.forEach(function(n){xm[n].forEach(function(a){a.name in s&&s[a.name]!=null?o.push(Pa(n,a,s)):a.push in s&&s[a.push]!=null&&s[a.push].forEach(function(u){o.push(Pa(n,a,u))})})})}),o.join(`\r
|
|
1
|
+
var h_=Object.create;var jn=Object.defineProperty,p_=Object.defineProperties,Bp=Object.getOwnPropertyDescriptor,f_=Object.getOwnPropertyDescriptors,g_=Object.getOwnPropertyNames,$p=Object.getOwnPropertySymbols,Hp=Object.getPrototypeOf,Wp=Object.prototype.hasOwnProperty,E_=Object.prototype.propertyIsEnumerable,__=Reflect.get;var to=Math.pow,yl=(i,t,e)=>t in i?jn(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,X=(i,t)=>{for(var e in t||(t={}))Wp.call(t,e)&&yl(i,e,t[e]);if($p)for(var e of $p(t))E_.call(t,e)&&yl(i,e,t[e]);return i},ge=(i,t)=>p_(i,f_(t));var qn=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),hi=(i,t)=>{for(var e in t)jn(i,e,{get:t[e],enumerable:!0})},T_=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of g_(t))!Wp.call(i,o)&&o!==e&&jn(i,o,{get:()=>t[o],enumerable:!(r=Bp(t,o))||r.enumerable});return i};var pi=(i,t,e)=>(e=i!=null?h_(Hp(i)):{},T_(t||!i||!i.__esModule?jn(e,"default",{value:i,enumerable:!0}):e,i));var ee=(i,t,e,r)=>{for(var o=r>1?void 0:r?Bp(t,e):t,s=i.length-1,n;s>=0;s--)(n=i[s])&&(o=(r?n(t,e,o):n(o))||o);return r&&o&&jn(t,e,o),o};var l=(i,t,e)=>yl(i,typeof t!="symbol"?t+"":t,e);var Ft=(i,t,e)=>__(Hp(i),e,t);var y=(i,t,e)=>new Promise((r,o)=>{var s=u=>{try{a(e.next(u))}catch(m){o(m)}},n=u=>{try{a(e.throw(u))}catch(m){o(m)}},a=u=>u.done?r(u.value):Promise.resolve(u.value).then(s,n);a((e=e.apply(i,t)).next())});var bi=qn((fb,hm)=>{"use strict";var OT=Object.prototype.hasOwnProperty,jt="~";function Sa(){}Object.create&&(Sa.prototype=Object.create(null),new Sa().__proto__||(jt=!1));function xT(i,t,e){this.fn=i,this.context=t,this.once=e||!1}function Of(i,t,e,r,o){if(typeof e!="function")throw new TypeError("The listener must be a function");var s=new xT(e,r||i,o),n=jt?jt+t:t;return i._events[n]?i._events[n].fn?i._events[n]=[i._events[n],s]:i._events[n].push(s):(i._events[n]=s,i._eventsCount++),i}function yd(i,t){--i._eventsCount===0?i._events=new Sa:delete i._events[t]}function Wt(){this._events=new Sa,this._eventsCount=0}Wt.prototype.eventNames=function(){var t=[],e,r;if(this._eventsCount===0)return t;for(r in e=this._events)OT.call(e,r)&&t.push(jt?r.slice(1):r);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(e)):t};Wt.prototype.listeners=function(t){var e=jt?jt+t:t,r=this._events[e];if(!r)return[];if(r.fn)return[r.fn];for(var o=0,s=r.length,n=new Array(s);o<s;o++)n[o]=r[o].fn;return n};Wt.prototype.listenerCount=function(t){var e=jt?jt+t:t,r=this._events[e];return r?r.fn?1:r.length:0};Wt.prototype.emit=function(t,e,r,o,s,n){var a=jt?jt+t:t;if(!this._events[a])return!1;var u=this._events[a],m=arguments.length,p,g;if(u.fn){switch(u.once&&this.removeListener(t,u.fn,void 0,!0),m){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,e),!0;case 3:return u.fn.call(u.context,e,r),!0;case 4:return u.fn.call(u.context,e,r,o),!0;case 5:return u.fn.call(u.context,e,r,o,s),!0;case 6:return u.fn.call(u.context,e,r,o,s,n),!0}for(g=1,p=new Array(m-1);g<m;g++)p[g-1]=arguments[g];u.fn.apply(u.context,p)}else{var _=u.length,A;for(g=0;g<_;g++)switch(u[g].once&&this.removeListener(t,u[g].fn,void 0,!0),m){case 1:u[g].fn.call(u[g].context);break;case 2:u[g].fn.call(u[g].context,e);break;case 3:u[g].fn.call(u[g].context,e,r);break;case 4:u[g].fn.call(u[g].context,e,r,o);break;default:if(!p)for(A=1,p=new Array(m-1);A<m;A++)p[A-1]=arguments[A];u[g].fn.apply(u[g].context,p)}}return!0};Wt.prototype.on=function(t,e,r){return Of(this,t,e,r,!1)};Wt.prototype.once=function(t,e,r){return Of(this,t,e,r,!0)};Wt.prototype.removeListener=function(t,e,r,o){var s=jt?jt+t:t;if(!this._events[s])return this;if(!e)return yd(this,s),this;var n=this._events[s];if(n.fn)n.fn===e&&(!o||n.once)&&(!r||n.context===r)&&yd(this,s);else{for(var a=0,u=[],m=n.length;a<m;a++)(n[a].fn!==e||o&&!n[a].once||r&&n[a].context!==r)&&u.push(n[a]);u.length?this._events[s]=u.length===1?u[0]:u:yd(this,s)}return this};Wt.prototype.removeAllListeners=function(t){var e;return t?(e=jt?jt+t:t,this._events[e]&&yd(this,e)):(this._events=new Sa,this._eventsCount=0),this};Wt.prototype.off=Wt.prototype.removeListener;Wt.prototype.addListener=Wt.prototype.on;Wt.prefixed=jt;Wt.EventEmitter=Wt;typeof hm!="undefined"&&(hm.exports=Wt)});var Dd=qn((Zb,jf)=>{"use strict";var Gf=jf.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(Gf).forEach(function(i){var t=Gf[i];t.forEach(function(e){e.reg||(e.reg=/(.*)/),e.format||(e.format="%s")})})});var Jf=qn(Di=>{"use strict";var cn=function(i){return String(Number(i))===i?Number(i):i},BT=function(i,t,e,r){if(r&&!e)t[r]=cn(i[1]);else for(var o=0;o<e.length;o+=1)i[o+1]!=null&&(t[e[o]]=cn(i[o+1]))},HT=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;BT(e.match(i.reg),o,i.names,i.name),i.push&&t[i.push].push(o)},qf=Dd(),WT=RegExp.prototype.test.bind(/^([a-z])=(.*)/);Di.parse=function(i){var t={},e=[],r=t;return i.split(/(\r\n|\r|\n)/).filter(WT).forEach(function(o){var s=o[0],n=o.slice(2);s==="m"&&(e.push({rtp:[],fmtp:[]}),r=e[e.length-1]);for(var a=0;a<(qf[s]||[]).length;a+=1){var u=qf[s][a];if(u.reg.test(n))return HT(u,r,n)}}),t.media=e,t};var zf=function(i,t){var e=t.split(/=(.+)/,2);return e.length===2?i[e[0]]=cn(e[1]):e.length===1&&t.length>1&&(i[e[0]]=void 0),i};Di.parseParams=function(i){return i.split(/;\s?/).reduce(zf,{})};Di.parseFmtpConfig=Di.parseParams;Di.parsePayloads=function(i){return i.toString().split(" ").map(Number)};Di.parseRemoteCandidates=function(i){for(var t=[],e=i.split(" ").map(cn),r=0;r<e.length;r+=3)t.push({component:e[r],ip:e[r+1],port:e[r+2]});return t};Di.parseImageAttributes=function(i){return i.split(" ").map(function(t){return t.substring(1,t.length-1).split(",").reduce(zf,{})})};Di.parseSimulcastStreamList=function(i){return i.split(";").map(function(t){return t.split(",").map(function(e){var r,o=!1;return e[0]!=="~"?r=cn(e):(r=cn(e.substring(1,e.length)),o=!0),{scid:r,paused:o}})})}});var Qf=qn((eR,Xf)=>{"use strict";var wm=Dd(),GT=/%[sdv%]/g,jT=function(i){var t=1,e=arguments,r=e.length;return i.replace(GT,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""}})},wa=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 n=t.names[s];t.name?o.push(e[t.name][n]):o.push(e[t.names[s]])}else o.push(e[t.name]);return jT.apply(null,o)},qT=["v","o","s","i","u","e","p","c","b","t","r","z","a"],zT=["i","c","b","a"];Xf.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||qT,r=t.innerOrder||zT,o=[];return e.forEach(function(s){wm[s].forEach(function(n){n.name in i&&i[n.name]!=null?o.push(wa(s,n,i)):n.push in i&&i[n.push]!=null&&i[n.push].forEach(function(a){o.push(wa(s,n,a))})})}),i.media.forEach(function(s){o.push(wa("m",wm.m[0],s)),r.forEach(function(n){wm[n].forEach(function(a){a.name in s&&s[a.name]!=null?o.push(wa(n,a,s)):a.push in s&&s[a.push]!=null&&s[a.push].forEach(function(u){o.push(wa(n,a,u))})})})}),o.join(`\r
|
|
2
2
|
`)+`\r
|
|
3
|
-
`}});var ig=Qn(Zr=>{"use strict";var Yo=eg(),tI=rg(),rI=Pd();Zr.grammar=rI;Zr.write=tI;Zr.parse=Yo.parse;Zr.parseParams=Yo.parseParams;Zr.parseFmtpConfig=Yo.parseFmtpConfig;Zr.parsePayloads=Yo.parsePayloads;Zr.parseRemoteCandidates=Yo.parseRemoteCandidates;Zr.parseImageAttributes=Yo.parseImageAttributes;Zr.parseSimulcastStreamList=Yo.parseSimulcastStreamList});var Qp=(te=>(te[te.INVALID_PARAMETER=4096]="INVALID_PARAMETER",te[te.INVALID_OPERATION=4097]="INVALID_OPERATION",te[te.NOT_SUPPORTED=4098]="NOT_SUPPORTED",te[te.DEVICE_NOT_FOUND=4099]="DEVICE_NOT_FOUND",te[te.INITIALIZE_FAILED=4100]="INITIALIZE_FAILED",te[te.SIGNAL_CHANNEL_SETUP_FAILED=16385]="SIGNAL_CHANNEL_SETUP_FAILED",te[te.SIGNAL_CHANNEL_ERROR=16386]="SIGNAL_CHANNEL_ERROR",te[te.ICE_TRANSPORT_ERROR=16387]="ICE_TRANSPORT_ERROR",te[te.JOIN_ROOM_FAILED=16388]="JOIN_ROOM_FAILED",te[te.CREATE_OFFER_FAILED=16389]="CREATE_OFFER_FAILED",te[te.SIGNAL_CHANNEL_RECONNECTION_FAILED=16390]="SIGNAL_CHANNEL_RECONNECTION_FAILED",te[te.UPLINK_RECONNECTION_FAILED=16391]="UPLINK_RECONNECTION_FAILED",te[te.DOWNLINK_RECONNECTION_FAILED=16392]="DOWNLINK_RECONNECTION_FAILED",te[te.REMOTE_STREAM_NOT_EXIST=16400]="REMOTE_STREAM_NOT_EXIST",te[te.CLIENT_BANNED=16448]="CLIENT_BANNED",te[te.SERVER_TIMEOUT=16449]="SERVER_TIMEOUT",te[te.SUBSCRIPTION_TIMEOUT=16450]="SUBSCRIPTION_TIMEOUT",te[te.PLAY_NOT_ALLOWED=16451]="PLAY_NOT_ALLOWED",te[te.DEVICE_AUTO_RECOVER_FAILED=16452]="DEVICE_AUTO_RECOVER_FAILED",te[te.START_PUBLISH_CDN_FAILED=16453]="START_PUBLISH_CDN_FAILED",te[te.STOP_PUBLISH_CDN_FAILED=16454]="STOP_PUBLISH_CDN_FAILED",te[te.START_MIX_TRANSCODE_FAILED=16455]="START_MIX_TRANSCODE_FAILED",te[te.STOP_MIX_TRANSCODE_FAILED=16456]="STOP_MIX_TRANSCODE_FAILED",te[te.NOT_SUPPORTED_H264=16457]="NOT_SUPPORTED_H264",te[te.SWITCH_ROLE_FAILED=16458]="SWITCH_ROLE_FAILED",te[te.API_CALL_TIMEOUT=16459]="API_CALL_TIMEOUT",te[te.SCHEDULE_FAILED=16460]="SCHEDULE_FAILED",te[te.API_CALL_ABORTED=16461]="API_CALL_ABORTED",te[te.SPC_INITIALIZED_FAILED=16462]="SPC_INITIALIZED_FAILED",te[te.VIDEO_MANAGER_ERROR=16463]="VIDEO_MANAGER_ERROR",te[te.SWITCH_ROOM_FAILED=16464]="SWITCH_ROOM_FAILED",te[te.VIDEO_ENCODE_FAILED=16465]="VIDEO_ENCODE_FAILED",te[te.AUDIO_ENCODE_FAILED=16466]="AUDIO_ENCODE_FAILED",te[te.UNKNOWN=65535]="UNKNOWN",te))(Qp||{}),q=Qp;var CT=function(i){for(let t in q)if(q[t]===i)return t;return"UNKNOWN"},Yn=class extends Error{constructor({name:e="RtcError",message:r,code:o=q.UNKNOWN,extraCode:s=0,constraint:n}){let a=`<${CT(o)} 0x${o.toString(16)}>`,u=`${r}${n?` constraint: ${n}`:""}${r!=null&&r.includes(a)?"":` ${a}`}`;super(u);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=u,this.constraint=n,this.originMessage=r}getCode(){return this.code}getExtraCode(){return this.extraCode}toString(){return this.originMessage}},de=Yn;var Yp=0;var Zp=function(){return Yp},li=function(){return Date.now()+Yp},Wc=function(){let i=new Date;return i.setTime(li()),i.toLocaleString()},Os=function(i){let t=String(i.getMilliseconds());return"padStart"in String.prototype&&(t=t.toString().padStart(3,"0")),`${i.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/,"$1")}:${t}`};var zr={};di(zr,{REPORT_TYPE:()=>js,buildSSOPackage:()=>Ei,bytes2ms:()=>uf,calculateScaleResolutionDownNumber:()=>ad,concatArrayBuffers:()=>yf,convertObjectNumberToInt:()=>ua,copyProperties:()=>df,deepClone:()=>Vo,deepCloneBasic:()=>td,deepMerge:()=>vr,delay:()=>la,fibonacci:()=>Fo,formatedTime:()=>id,getConstructorName:()=>$s,getContainerFromElement:()=>_f,getEnv:()=>nf,getFirst16Bits:()=>bf,getInternalVersion:()=>Ef,getLast16Bits:()=>Af,getLoggerUrl:()=>gi,getMediaStreamTrackInfo:()=>nd,getMuteStateFromFlag:()=>Bo,getNetworkType:()=>na,getNumNetworkType:()=>rd,getReconnectionTimeout:()=>mf,getStringByteLength:()=>If,getTurnServer:()=>Tf,getUint32Version:()=>od,getValueType:()=>ct,getViewListFromView:()=>Ws,glog:()=>aa,ipv4ToUint32:()=>Hs,isArray:()=>ot,isAudioWorkletSupported:()=>ff,isBoolean:()=>Ze,isConstructor:()=>$o,isEmpty:()=>Bs,isFunction:()=>Ge,isLangChinese:()=>Rr,isMediaStreamTrack:()=>hf,isNumber:()=>ke,isObject:()=>or,isOverseaSdkAppId:()=>fi,isPlainObject:()=>Ft,isPortrait:()=>zl,isPromise:()=>Yi,isRemoteTrack:()=>pf,isRotate90Or270:()=>sr,isSetSinkIdSupported:()=>gf,isString:()=>De,isUndefined:()=>x,loadImage:()=>Gs,loadVideo:()=>Sf,ms2bytes:()=>lf,ms2samples:()=>ql,normalizeUrl:()=>Ho,performanceNow:()=>_e,promiseAny:()=>ca,samples2ms:()=>jl,setNetworkType:()=>cf,stringify:()=>lr,stringifyIncludeValue:()=>da,throttlePromise:()=>sd});var kl={};di(kl,{AUDIO_MUTE_BIT:()=>Jc,AUDIO_STAT_BIT:()=>ks,AUX_STAT_BIT:()=>ta,AUX_STREAM_MSID:()=>FT,BACKEND_ENV:()=>zc,BASE_DOC_URL:()=>Gr,BASE_HOST:()=>Kp,CAPABILITIES_KEYS:()=>Yc,CLASS_NAME:()=>d_,CLOUD_CONSOLE_URL:()=>MT,CROSS_ROOM_BIT:()=>UT,DATA_FREEZE_TIMING:()=>Qc,DOC_URL:()=>OT,DTLS_STATE_UNKNOWN:()=>XT,ENV_NAME:()=>mi,EXCHANGE_SDP_TIMEOUT:()=>t_,IS_WORKER:()=>xs,IS_WORKLET:()=>Zn,KIBANA_EVENT:()=>hi,LOCAL_STREAM_PUBLISH_STATE:()=>tf,LOGGER_CMD_TYPE:()=>Qi,LOGGER_DOMAIN:()=>Nl,LOGGER_DOMAIN_OVERSEA:()=>Dl,LOG_LEVEL:()=>Ar,LOG_LEVEL_NAME:()=>l_,MAIN_STREAM_MSID:()=>VT,MAX_RTT:()=>ia,MICROPHONE_COMMUNICATIONS:()=>u_,MICROPHONE_DEFAULT:()=>Uo,MUTE_ALL_BIT:()=>LT,NAME:()=>M,NETWORK_TYPE:()=>ko,NOT_SUPPORTED_H264:()=>i_,PAUSED_RETRY_COUNT:()=>Lo,PEERCONNECTION_CONNECTING_TIMEOUT:()=>a_,PEER_CONNECTION_STATE:()=>QT,PEER_LEAVE_REASON:()=>rf,RECOVER_CAPTURE_INTERVAL:()=>Ls,REMOTE_STREAM_TYPE_AUX:()=>BT,REMOTE_STREAM_TYPE_MAIN:()=>$T,RENDER_FREEZE_TIMING:()=>o_,SCHEDULE_DOMAIN:()=>pi,SCHEDULE_TIMEOUT:()=>c_,SDP_SEMANTICS_PLAN_B:()=>r_,SDP_SEMANTICS_UNIFIED_PLAN:()=>Pl,SECOND_HOST:()=>DT,SIGNAL_PING_PONG_INTERVAL:()=>PT,SIGNAL_PING_TIMEOUT:()=>xT,SIGNAL_RECONNECTION_COUNT:()=>ZT,SMALL_STAT_BIT:()=>Ol,SPEAKER_DEFAULT:()=>ra,STORAGE_EXPIRES_TIME:()=>Gc,STREAM_TYPE_BIG:()=>s_,STREAM_TYPE_SMALL:()=>n_,SUBSCRIBE_SMALL_RETRY_COUNT:()=>m_,SYNC_USER_LIST_INTERVAL:()=>KT,Scene:()=>jr,THIRD_HOST:()=>wT,TRANSPORT_DIRECTION:()=>kT,TRTC_ERROR_ASSISTANCE:()=>wl,TRTC_QUALITY_BAD:()=>qT,TRTC_QUALITY_DISCONNECTED:()=>JT,TRTC_QUALITY_EXCELLENT:()=>WT,TRTC_QUALITY_GOOD:()=>GT,TRTC_QUALITY_POOR:()=>jT,TRTC_QUALITY_UNKNOWN:()=>HT,TRTC_QUALITY_VERY_BAD:()=>zT,UPDATE_OFFER_TIMEOUT:()=>e_,VIDEO_MUTE_BIT:()=>Xc,VIDEO_STAT_BIT:()=>Ps,audioProfileMap:()=>jc,defaultBigVideoProfile:()=>ea,defaultSmallVideoProfile:()=>Ml,getRetryCount:()=>YT,getScriptDir:()=>NT,innerVersion:()=>vl,loggerProxy:()=>Kn,screenProfileMap:()=>qc,setLoggerProxy:()=>Po,setRetryCount:()=>xl,setVersion:()=>Cl,version:()=>at,videoProfileMap:()=>br});var vl="4.15.00.1600",at="5.0.0";function Cl(i){at=i;let[t,e,r]=i.split(".").map(o=>parseInt(o,10));vl=`${t}.${Math.min(15,e)}.${Math.min(15,r)}.${e.toString().padStart(2,"0")}${r.toString().padStart(2,"0")}`}var xs=typeof importScripts!="undefined",Zn=typeof registerProcessor!="undefined",NT=()=>{let i=xs?self.location.href:document.currentScript.src;return i.substring(0,i.lastIndexOf("/")+1)},Kn="",Po=i=>Kn=i,Kp="web.sdk.qcloud.com",DT="web.sdk.tencent.cn",wT="web.sdk.cloud.tencent.cn",MT="https://console.cloud.tencent.com/trtc",Gr=`https://${Kp}/trtc/webrtc/v5/doc`,OT=`${Gr}/zh-cn/`,Nl="https://yun.tim.qq.com",Dl="https://apisgp.my-imcloud.com",wl="trtc_error_assistance",Qi={LOG:"jssdk_log",EVENT:"jssdk_event",KEY_POINT:"jssdk_new_endreport",KV_STAT:"jssdk_key_metrics_report"},mi={QCLOUD:"qcloud",OLD_CLOUD_LADDER:"trtc",WEBRTC:"webrtc"},Ar=(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))(Ar||{}),xT=18e3,PT=2e3,ko={unknown:0,wifi:1,"3g":2,"2g":3,"4g":4,wired:5,"5g":6},Gc=168*3600*1e3,jc={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}},br={"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}},ea=br["480p_2"],Ml=br["120p_2"],qc={"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}},M={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",RESIZE:"resize",TIME_UPDATE:"timeupdate"},kT={INACTIVE:"inactive",SENDONLY:"sendonly",RECVONLY:"recvonly"},zc={OLD_CLOUD_LADDER:"wss://trtc.rtc.qq.com",WEBRTC:"wss://webrtc.qq.com"},jr=(e=>(e.LIVE="live",e.RTC="rtc",e))(jr||{}),Ps=1,Ol=2,ta=4,ks=8,Jc=64,Xc=16,LT=112,UT=128,VT="5Y2wZK8nANNAoVw6dSAHVjNxrD1ObBM2kBPV",FT="224d130c-7b5c-415b-aaa2-79c2eb5a6df2",$T=M.MAIN,BT=M.AUXILIARY,HT=0,WT=1,GT=2,jT=3,qT=4,zT=5,JT=6,XT="unknown",QT={NEW:"new",CONNECTING:"connecting",FAILED:"failed",CLOSED:"closed",DISCONNECTED:"disconnected",CONNECTED:"connected",COMPLETED:"completed"},ef=1/0;function xl(i){ef=i}function YT(){return ef}var ZT=30,hi={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"},KT=1e4,e_=1e4,t_=1e4,Pl="unified-plan",r_="plan-b",i_=1028,tf=(r=>(r[r.UNPUBLISH=-1]="UNPUBLISH",r[r.PUBLISHING=0]="PUBLISHING",r[r.PUBLISHED=1]="PUBLISHED",r))(tf||{}),Qc=500,o_=1e3,s_=M.BIG,n_=M.SMALL,a_=10*1e3,pi={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"},c_=2e3,d_={TRTC:"TRTC",CLIENT:"Client",LOCAL_STREAM:"LocalStream",REMOTE_STREAM:"RemoteStream",STREAM:"Stream"},Lo=5,Uo="default",ra=Uo,u_="communications",l_=Object.keys(Ar),rf=["normal leave","timeout leave","kick","role change"],m_=10,Ls=2e3,Yc=["width","height","frameRate","facingMode","sampleRate","sampleSize","channelCount","deviceId","min","max"],ia=10*1e3;var h_=function(i,t,e,r){function o(s){return s instanceof e?s:new e(function(n){n(s)})}return new(e||(e=Promise))(function(s,n){function a(p){try{m(r.next(p))}catch(g){n(g)}}function u(p){try{m(r.throw(p))}catch(g){n(g)}}function m(p){p.done?s(p.value):o(p.value).then(a,u)}m((r=r.apply(i,t||[])).next())})},Ll=Symbol(32),Ul=Symbol(16),Vl=Symbol(8),qr=class{constructor(t){this.g=t,this.consumed=0,t&&(this.need=t.next().value)}setG(t){this.g=t,this.demand(t.next().value,!0)}consume(){this.buffer&&this.consumed&&(this.buffer.copyWithin(0,this.consumed),this.buffer=this.buffer.subarray(0,this.buffer.length-this.consumed),this.consumed=0)}demand(t,e){return e&&this.consume(),this.need=t,this.flush()}read(t){return h_(this,void 0,void 0,function*(){return this.lastReadPromise&&(yield this.lastReadPromise),this.lastReadPromise=new Promise((e,r)=>{var o;this.reject=r,this.resolve=n=>{delete this.lastReadPromise,delete this.resolve,delete this.need,e(n)},this.demand(t,!0)||(o=this.pull)===null||o===void 0||o.call(this,t)})})}readU32(){return this.read(Ll)}readU16(){return this.read(Ul)}readU8(){return this.read(Vl)}close(){var t;this.g&&this.g.return(),this.buffer&&this.buffer.subarray(0,0),(t=this.reject)===null||t===void 0||t.call(this,new Error("EOF")),delete this.lastReadPromise}flush(){if(!this.buffer||!this.need)return;let t=null,e=this.buffer.subarray(this.consumed),r=0,o=s=>e.length<(r=s);if(typeof this.need=="number"){if(o(this.need))return;t=e.subarray(0,r)}else if(this.need===Ll){if(o(4))return;t=e[0]<<24|e[1]<<16|e[2]<<8|e[3]}else if(this.need===Ul){if(o(2))return;t=e[0]<<8|e[1]}else if(this.need===Vl){if(o(1))return;t=e[0]}else if("buffer"in this.need){if("byteOffset"in this.need){if(o(this.need.byteLength-this.need.byteOffset))return;new Uint8Array(this.need.buffer,this.need.byteOffset).set(e.subarray(0,r)),t=this.need}else if(this.g){this.g.throw(new Error("Unsupported type"));return}}else{if(o(this.need.byteLength))return;new Uint8Array(this.need).set(e.subarray(0,r)),t=this.need}return this.consumed+=r,this.g?this.demand(this.g.next(t).value,!0):this.resolve&&this.resolve(t),t}write(t){if(t instanceof Uint8Array?this.malloc(t.length).set(t):"buffer"in t?this.malloc(t.byteLength).set(new Uint8Array(t.buffer,t.byteOffset,t.byteLength)):this.malloc(t.byteLength).set(new Uint8Array(t)),this.g||this.resolve)this.flush();else return new Promise(e=>this.pull=e)}writeU32(t){this.malloc(4).set([t>>24&255,t>>16&255,t>>8&255,t&255]),this.flush()}writeU16(t){this.malloc(2).set([t>>8&255,t&255]),this.flush()}writeU8(t){this.malloc(1)[0]=t,this.flush()}malloc(t){if(this.buffer){let e=this.buffer.length,r=e+t;if(r<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,r);else{let o=new Uint8Array(r);o.set(this.buffer),this.buffer=o}return this.buffer.subarray(e,r)}else return this.buffer=new Uint8Array(t),this.buffer}};qr.U32=Ll;qr.U16=Ul;qr.U8=Vl;var p_=128,f_=127,jA=~f_,qA=Math.pow(2,31);function Fl(i){let t=new qr;for(;i>=128;)t.malloc(1)[0]=i&255|p_,i>>>=7;return t.malloc(1)[0]=i&255,t.buffer||new Uint8Array(0)}function Zc(i,t=0){let e=new qr,r=t<<3;switch(typeof i){case"boolean":let o=e.malloc(2);o[0]=r,o[1]=i?1:0;break;case"number":e.malloc(1)[0]=r,e.write(Fl(i));break;case"string":e.malloc(1)[0]=r|2;let s=new TextEncoder().encode(i);e.write(Fl(s.length));let n=e.malloc(s.length);for(let u=0;u<s.length;u++)n[u]=s[u];break;case"object":let a=new qr;if(Array.isArray(i))for(let u=0;u<i.length;u++){let m=Zc(i[u],u+1);m&&a.write(m)}else{let u=1;for(let m in i){let p=Zc(i[m],u++);p&&a.write(p)}}t===0?a.buffer&&e.write(a.buffer):(e.malloc(1)[0]=r|2,a.buffer&&(e.write(Fl(a.buffer.length)),e.write(a.buffer)))}return e.buffer||new Uint8Array(0)}var oa=class{constructor(){l(this,"buffer");this.buffer=[]}get data(){return this.buffer}get length(){return this.buffer.length}writeInt32(t){this.buffer.push(t>>>24&255),this.buffer.push(t>>>16&255),this.buffer.push(t>>>8&255),this.buffer.push(t&255)}writeInt16(t){this.buffer.push(t>>>8&255),this.buffer.push(t&255)}writeByte(t){this.buffer.push(t&255)}writeBytes(t){for(let e=0;e<t.length;e++)this.buffer.push(t[e])}};function $l(i,t,e){i[e]=t>>>24&255,i[e+1]=t>>>16&255,i[e+2]=t>>>8&255,i[e+3]=t&255}function Vt(i,t){return i[t]<<24|i[t+1]<<16|i[t+2]<<8|i[t+3]}function Bl(i,t){return i[t]}function Us(i,t,e){return new TextDecoder().decode(g_(i,t,e))}function g_(i,t,e){return i.slice(t,t+e)}var Hl=0,Kc=2654435769,ed=16,Gl=4,Vs=2,Fs=7;function E_(i,t,e,r="AVQualityReportSvc.C2S",o=2e3,s=2,n=30){return{version:o,encryption:s,d2:"",d2Len:0,uinType:n,uin:"",uinLen:0,reqHead:{seqNumber:e,appId:i,appidAtThird:new Uint8Array(0),a2:"",a2Len:0,serviceCmd:r,serviceCmdLen:0,cookie:"",cookieLen:0,imei:"",imeiLen:0,ksid:"",ksidLen:0,clientVersionInfo:"",clientVersionInfoLen:0},busiBuff:t}}function of(i,t){let e=new oa,r=E_(t,i,Hl);Hl=Hl+1&2147483647,e.writeInt32(0),e.writeInt32(r.version),e.writeByte(r.encryption);let o=new TextEncoder().encode(r.d2);e.writeInt32(o.length+4),o&&e.writeBytes(o),e.writeByte(r.uinType);let s=new TextEncoder().encode(r.uin);e.writeInt32(s.length+4),s.length&&e.writeBytes(s);let n=new oa;n.writeInt32(0),n.writeInt32(r.reqHead.seqNumber),n.writeInt32(r.reqHead.appId),n.writeByte(r.reqHead.appId>>>24&255),n.writeByte(r.reqHead.appId>>>16&255),n.writeByte(r.reqHead.appId>>>8&255),n.writeByte(r.reqHead.appId&255);for(let Y=4;Y<16;Y++)n.writeByte(0);let a=new TextEncoder().encode(r.reqHead.a2);n.writeInt32(a.length+4),a.length&&n.writeBytes(a);let u=new TextEncoder().encode(r.reqHead.serviceCmd);n.writeInt32(u.length+4),u.length&&n.writeBytes(u);let m=new TextEncoder().encode(r.reqHead.cookie);n.writeInt32(m.length+4),m.length&&n.writeBytes(m);let p=new TextEncoder().encode(r.reqHead.imei);n.writeInt32(p.length+4),p.length&&n.writeBytes(p);let g=new TextEncoder().encode(r.reqHead.ksid);n.writeInt32(g.length+4),g.length&&n.writeBytes(g);let T=new TextEncoder().encode(r.reqHead.clientVersionInfo);n.writeInt16(T.length+2),T.length&&n.writeBytes(T);let A=n.length;n.data[0]=A>>>24&255,n.data[1]=A>>>16&255,n.data[2]=A>>>8&255,n.data[3]=A&255,De(i)&&(i=new TextEncoder().encode(i)),n.writeInt32(i.length+4),i.length&&n.writeBytes(i);let C=new Uint8Array(n.data),D=null;r.encryption===1?D=new TextEncoder().encode(r.uin):r.encryption===2&&(D=new Uint8Array(16)),D&&(C=T_(C,D)),e.writeBytes(C);let w=new Uint8Array(e.data),O=w.length;return w[0]=O>>>24&255,w[1]=O>>>16&255,w[2]=O>>>8&255,w[3]=O&255,w}function T_(i,t){let e=i.length,o=(e+1+Vs+Fs)%8;o&&(o=8-o);let s=e+1+Vs+Fs+o,n=new Uint8Array(s),a=0,u=new Uint8Array(8),m=new Uint8Array(8),p=new Uint8Array(8),g=0;u[0]=Math.floor(Math.random()*256)&248|o,g=1;for(let A=0;A<o;A++)u[g]=Math.floor(Math.random()*256)&255,g+=1;for(let A=0;A<Vs;)if(g<8&&(u[g]=Math.floor(Math.random()*256)&255,g+=1,A+=1),g===8){Wl(u,t,m,p,n,a),a+=8,g=0;for(let C=0;C<8;C++)p[C]=n[a-8+C]}let T=0;for(;T<e;)if(g<8&&(u[g]=i[T],g+=1,T+=1),g===8){Wl(u,t,m,p,n,a),a+=8,g=0;for(let A=0;A<8;A++)p[A]=n[a-8+A]}for(let A=0;A<Fs;)if(g<8&&(u[g]=0,g+=1,A+=1),g===8){Wl(u,t,m,p,n,a),a+=8,g=0;for(let C=0;C<8;C++)p[C]=n[a-8+C]}return n}function Wl(i,t,e,r,o,s){for(let n=0;n<8;n++)i[n]^=r[n];__(i,t,o,s);for(let n=0;n<8;n++)o[s+n]^=e[n];for(let n=0;n<8;n++)e[n]=i[n]}function __(i,t,e,r){let o=Vt(i,0),s=Vt(i,4),n=[];for(let u=0;u<4;u++)n[u]=Vt(t,u*4);let a=0;for(let u=0;u<ed;u++)a+=Kc,a=a>>>0,o+=(s<<4)+n[0]^s+a^(s>>>5)+n[1],o=o>>>0,s+=(o<<4)+n[2]^o+a^(o>>>5)+n[3],s=s>>>0;$l(e,o,r),$l(e,s,r+4)}var nf=function(){return new URLSearchParams(location.search).get("trtc_env")||""},fi=i=>Number(i)<14e8,gi=function(i,t){let e;Kn?e=Kn:e=fi(i)?Dl:Nl;let r=Math.floor(Math.random()*Xi(2,31));return`${e}/v5/AVQualityReportSvc/C2S?random=${r}&sdkappid=${i}&cmdtype=${t}`},sa="unknown";function na(){if(sa!=="unknown")return sa;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&&(sa=af(r,o)),sa}function af(i,t){if(ko[i])return i;switch(i){case"cellular":case"wimax":return t||"unknown";case"ethernet":return"wired";case"none":case"other":default:return"unknown"}}function cf(i){sa=af(i)}function rd(){return ko[na()]}function df(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 uf(i,t=48e3){return jl(i/4,t)}function jl(i,t=48e3){return i*1e3/t}function lf(i,t=48e3){return ql(i,t)*4}function ql(i,t=48e3){return i*t/1e3}var aa=typeof window!="undefined"&&typeof window.glog=="function"?window.glog:()=>{},Rr=()=>{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 Fo(i,t=1,e=1){return i<=1?e:Fo(i-1,e,t+e)}function mf(i){return i>8?30*1e3:Fo(i)*1e3}function ct(i){return Reflect.apply(Object.prototype.toString,i,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}var Ge=i=>typeof i=="function",x=i=>typeof i=="undefined",De=i=>typeof i=="string",ke=i=>typeof i=="number",Ze=i=>typeof i=="boolean",or=i=>ct(i)==="object",ot=i=>ct(i)==="array",hf=i=>ct(i)==="MediaStreamTrack".toLowerCase(),pf=i=>i.isRemote,Yi=i=>ct(i)==="promise",$o=i=>Ge(i)&&i.prototype.constructor===i,$s=i=>$o(i)?i.prototype.constructor.name:"",ff=typeof AudioWorkletNode!="undefined",gf=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype;function ca(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 _e(){return!performance||!performance.now?Date.now():Math.floor(performance.now())}var sf=i=>+i<10?`0${i}`:i,Ef=i=>{let t=i.match(/^\d+\.\d+\.\d+/)[0];if(!t)return i;let e=t.split("."),r=sf(e[1])+sf(e[2]);return e[1]-15>0&&(e[1]="15"),e[2]-15>0&&(e[2]="15"),`${e.join(".")}.${r}`},I_=Object.prototype.hasOwnProperty,{toString:ob}=Object.prototype;function Bs(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(I_.call(i,t))return!1;return!0}}return!1}function Bo(i,t){return{userId:t,hasAudio:!!(i&ks),hasVideo:!!(i&Ps),hasAuxiliary:!!(i&ta),hasSmall:!!(i&Ol),audioMuted:!!(i&Jc),videoMuted:!!(i&Xc),audioAvailable:!!(i&ks)&&!(i&Jc),videoAvailable:!!(i&Ps)&&!(i&Xc)}}function Tf(i){let t={urls:i.url.startsWith("turn:")||i.url.startsWith("turns:")?i.url:`turn:${i.url}`};return!x(i.username)&&!x(i.credential)&&(t.username=i.username,t.credential=i.credential,t.credentialType="password",x(i.credentialType)||(t.credentialType=i.credentialType)),t}function Hs(i,t=!0){if(!De(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 vr=function(i,t,e,r){if(!(or(i)&&or(t)))return 0;let o=0,s=Object.keys(t),n;for(let a=0,u=s.length;a<u;a++)if(n=s[a],!(x(t[n])||e&&e.includes(n)))if(or(i[n])&&or(t[n]))o+=vr(i[n],t[n],e,r);else{if(r&&r.includes(t[n]))continue;i[n]!==t[n]&&(i[n]=Vo(t[n]),o+=1)}return o};function Vo(i){if(ot(i)){let t=[];return i.forEach((e,r)=>{t[r]=Vo(e)}),t}if(or(i)){let t={};return Object.keys(i).forEach(e=>{t[e]=Vo(i[e])}),t}return i}var Ws=i=>{let t=[];if(ot(i))t=[...i];else if(De(i)){let e=document.getElementById(i);e&&t.push(e)}else i&&t.push(i);return t},_f=i=>De(i)?document.getElementById(i):i,S_=i=>{let t=u=>u<10?`0${u}`:`${u}`,e=i.getFullYear(),r=i.getMonth()+1,o=i.getDate(),s=t(i.getHours()),n=t(i.getMinutes()),a=t(i.getSeconds());return`${e}/${r}/${o} ${s}:${n}:${a}`},id=()=>S_(new Date);function lr(i,{keysToInclude:t,keysToExclude:e}){try{if(ot(i))return`[${i.map(n=>lr(n,{keysToInclude:t,keysToExclude:e})).join(",")}]`;if(!Ft(i)||!ot(t)&&!ot(e))return JSON.stringify(i);let r={},o=new Set(t),s=new Set(e);return Object.keys(i).forEach(n=>{(s.size===0&&o.has(n)||o.size===0&&!s.has(n))&&(r[n]=Ft(i[n])||ot(i[n])?JSON.parse(lr(i[n],{keysToExclude:e,keysToInclude:t})):i[n])}),JSON.stringify(r)}catch(r){return"{}"}}function da(i,t=!1){let e=[];return Object.keys(i).forEach(r=>{t===i[r]&&e.push(r)}),lr(i,{keysToInclude:e})}function If(i){return i.replace(/[\u4e00-\u9fa5]/g,"aa").length}var zl=()=>{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},Gs=i=>y(null,null,function*(){return new Promise((t,e)=>{let r;if(De(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:q.INVALID_PARAMETER,message:`load image failed, url: ${i}`}))}})}),od=i=>{let t=i.split(".");return+t[0]<<24|+t[1]<<16|+t[2]<<8|+t[3]<<0},ua=i=>(Object.keys(i).forEach(t=>{ke(i[t])&&(t.startsWith("uint")||t.startsWith("int"))?i[t]=Math.floor(i[t]):(Ft(i[t])||ot(i[t]))&&ua(i[t])}),i);function la(i,t){return new Promise(e=>{let r=setTimeout(e,i);t&&t(r)})}function sd(i,t){let e=null;return function(...r){return e||(e=i.apply(t||this,r),e.finally(()=>e=null),e)}}function Ho(i){return i.replace(/(^|[^:])\/{2,}/g,"$1/")}function nd(i){var t;try{let{width:e,height:r,frameRate:o,sampleRate:s,sampleSize:n,channelCount:a}=(t=i.getSettings)==null?void 0:t.call(i),u=i.kind===M.AUDIO?`${s}x${n}@${a}`:`${e}x${r}@${o}`,m=i.stats?` stats: ${JSON.stringify(i.stats).replaceAll('"',"")}`:"";return`${i.id} ${i.readyState} muted:${i.muted} ${i.kind} ${i.label} ${u}${m}`}catch(e){return""}}function ad(i,t){return i.width*i.height===t.width*t.height?1:zl()&&t.width>t.height&&i.height>t.width?Math.max(i.width/t.height,i.height/t.width,1):Math.max(i.width/t.width,i.height/t.height,1)}function sr(i){return i===90||i===270}function Sf(i){return y(this,null,function*(){return new Promise((t,e)=>{let r=document.createElement("video");r.crossOrigin="anonymous",r.src=i,r.muted=!0,r.loop=!0,r.playsInline=!0,r.play().then(()=>t(r)),r.onerror=()=>{e(r.error)}})})}function td(i,t=new WeakMap){if(typeof i!="object"||i===null)return i;if(t.has(i))return t.get(i);if(Array.isArray(i)){let e=[];return t.set(i,e),i.forEach((r,o)=>{e[o]=td(r,t)}),e}if(Object.prototype.toString.call(i)==="[object Object]"){let e={};return t.set(i,e),Reflect.ownKeys(i).forEach(r=>{e[r]=td(i[r],t)}),e}return i}var js=(r=>(r[r.END_REPORT=2001]="END_REPORT",r[r.LOG=2002]="LOG",r[r.KEY_METRIC_REPORT=2003]="KEY_METRIC_REPORT",r))(js||{});function y_(i,t,e,r){let o={data:i,random:Math.floor(Math.random()*2147483648),sdkAppId:e};return x(r)||(o=ge(J({},o),{gzip:+r})),{uint32_sdkappid:0,uint64_from_uin:0,uint32_timestamp:0,uint32_seq:0,msg_common_info:{msg_device_info:{enum_device_type:0,str_device_brand:"",str_device_model:"",str_device_board:"",str_device_cpu_abi:""},msg_system_info:{enum_os_type:0,str_os_version:"",msg_network_info:0},msg_network_info:{enum_network_type:0}},msg_report_content:{uint32_type:t,bytes_report_data:JSON.stringify(o)}}}function Ei(i,t,e,r){try{let o=y_(i,t,e,r),s=Zc(o);return of(s,e)}catch(o){return JSON.stringify(i)}}function yf(i,t){let e=new Uint8Array(i.byteLength+t.byteLength);return e.set(new Uint8Array(i),0),e.set(new Uint8Array(t),i.byteLength),e.buffer}function Af(i){return(i&65535)>>>0}function bf(i){return(i&4294901760)>>>0}function Rf(i){let t=A_(i);return t==null?void 0:t.busiBuff}function A_(i){try{let t={},e=0;t.totalLength=Vt(i,e),e+=4,t.version=Vt(i,e),e+=4,t.encryption=Bl(i,e),e+=1,t.uinType=Bl(i,e),e+=1,t.uinLength=Vt(i,e),e+=4,t.uin=t.uinLength>4?Us(i,e,t.uinLength-4):"",e+=t.uinLength-4;let r=i.slice(e);if(t.encryption===2){let o=new Uint8Array(16).fill(0);i=b_(r,o),t.decrypted=!0,e=0}else i=r,e=0;return t.rspHeadLength=Vt(i,e),e+=4,t.seqNo=Vt(i,e),e+=4,t.retCode=Vt(i,e),e+=4,t.retStrLength=Vt(i,e),e+=4,t.retStr=t.retStrLength?Us(i,e,t.retStrLength-4):"",e+=t.retStrLength-4,t.serviceCmdLength=Vt(i,e),e+=4,t.serviceCmd=t.serviceCmdLength?Us(i,e,t.serviceCmdLength-4):"",e+=t.serviceCmdLength-4,t.cookieLength=Vt(i,e),e+=4,t.cookie=t.cookieLength?Us(i,e,t.cookieLength-4):"",e+=t.cookieLength-4,t.flag=Vt(i,e),e+=4,t.busiBuffLength=Vt(i,e),e+=4,t.busiBuff=t.busiBuffLength?Us(i,e,t.busiBuffLength-4):"",e+=t.busiBuffLength-4,t}catch(t){}}function vf(i,t){let e=i[0]<<24|i[1]<<16|i[2]<<8|i[3],r=i[4]<<24|i[5]<<16|i[6]<<8|i[7];e=e>>>0,r=r>>>0;let o=Kc*ed>>>0;for(let s=0;s<ed;s++)r-=(e<<Gl)+t[2]^e+o^(e>>>5)+t[3],r=r>>>0,e-=(r<<Gl)+t[0]^r+o^(r>>>5)+t[1],e=e>>>0,o-=Kc,o=o>>>0;return new Uint8Array([e>>>24&255,e>>>16&255,e>>>8&255,e&255,r>>>24&255,r>>>16&255,r>>>8&255,r&255])}function b_(i,t){let e=0,r=new Uint8Array(8).fill(0),o=new Uint8Array(i.slice(0,8)),s=vf(o,t),n=s[0]&7,a=i.length-1-n-Vs-Fs,u=new Uint8Array(a),m=0,p=r,g=i.slice(0,8);e=8;let T=1;T+=n;for(let C=1;C<=Vs;)if(T<8)T++,C++;else if(T===8){let D=Jl(i,e,p,g,s,t);p=D.ivPreCrypt,g=D.ivCurCrypt,s=D.debiBuf,e=D.bufPos,T=0}let A=a;for(;A>0;)if(T<8)u[m++]=s[T]^p[T],T++,A--;else if(T===8){let C=Jl(i,e,p,g,s,t);p=C.ivPreCrypt,g=C.ivCurCrypt,s=C.debiBuf,e=C.bufPos,T=0}for(let C=1;C<=Fs;)if(T<8)s[T]^p[T],T++,C++;else if(T===8){if(e>=i.length)break;let D=Jl(i,e,p,g,s,t);if(!D.success)break;p=D.ivPreCrypt,g=D.ivCurCrypt,s=D.debiBuf,e=D.bufPos,T=0}return u}function Jl(i,t,e,r,o,s){if(t+8>i.length)return{success:!1};let n=new Uint8Array(r),a=i.slice(t,t+8),u=new Uint8Array(8);for(let p=0;p<8;p++)u[p]=o[p]^a[p];let m=vf(u,s);return{success:!0,ivPreCrypt:n,ivCurCrypt:a,debiBuf:m,bufPos:t+8}}var Cf=typeof TextDecoder!="undefined"?new TextDecoder:void 0;function Ti({url:i,body:t,method:e="POST",timeout:r,priority:o}){return new Promise((s,n)=>{if("fetch"in window)return fetch(i,{method:e,body:t,priority:o}).then(u=>u.clone().json().then(m=>({data:m}),()=>u.arrayBuffer().then(m=>({data:Rf(new Uint8Array(m))||(Cf?Cf.decode(m):m)})))).then(s,n);let a=new XMLHttpRequest;a.onreadystatechange=()=>{if(a.readyState===4)if(a.status>=200&&a.status<300)try{let u=JSON.parse(a.response);s({data:u})}catch(u){s({data:a.response})}else n({status:a.status,statusText:a.statusText||"request failed!"})},a.timeout=r||5e3,a.open(e,i,!0),a.send(t)})}function Xl(i){return y(this,null,function*(){let t=_e(),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")),a=yield(yield(yield new Response(o)).blob()).arrayBuffer();return $.debug(`compressJSON ${e.length} -> ${a.byteLength} ${_e()-t}ms`),a}catch(r){return e}})}var R_=Object.prototype.hasOwnProperty;var Zi=i=>typeof i=="function",Nf=i=>typeof i=="undefined";var Df=i=>typeof i=="boolean";var Ql=i=>i.isRemote;var Yl=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 wf(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(Yl(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(R_.call(i,t))return!1;return!0}}return!1}var v_=0,C_=1,Mf=2;function N_({retryFunction:i,settings:t,onError:e,onRetrying:r,onRetryFailed:o,onRetrySuccess:s,context:n}){return function(...a){let{retries:u=5,timeout:m=1e3}=t,p=0,g=-1,T=v_,A=(C,D)=>y(this,null,function*(){let w=n||this;try{let O=yield i.apply(w,a);p>0&&s&&s.call(this,p),p=0,C(O)}catch(O){let Y=()=>{clearTimeout(g),p=0,T=Mf,D(O)},ue=()=>{T!==Mf&&p<(Zi(u)?u():u)?(p++,T=C_,Zi(r)&&r.call(this,p,Y),g=window.setTimeout(()=>{g=-1,A(C,D)},Zi(m)?m(p):m)):(Y(),Zi(o)&&o.call(this,O))};Zi(e)?e.call(this,{error:O,retry:ue,reject:D,retryFuncArgs:a,retriedCount:p}):ue()}});return new Promise(A)}}var Ki=N_;var qs=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=Df(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}`:""}]`),$.log(t,e,Nf(this.userId)||wf(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 on={};di(on,{ANDROID_VERSION:()=>em,CHROME_MAJOR_VERSION:()=>Qr,CHROME_VERSION:()=>vd,EDGE_VERSION:()=>ud,EDG_MAJOR_VERSION:()=>tm,EDG_VERSION:()=>ld,FIREFOX_MAJOR_VERSION:()=>dd,FIREFOX_VERSION:()=>cd,HUAWEI_VERSION:()=>Sd,IE_VERSION:()=>x_,IOS_MAIN_VERSION:()=>wt,IOS_VERSION:()=>wr,IPADQQB_VERSION:()=>_d,IS_ANDROID:()=>pt,IS_ANDROID_WEBVIEW:()=>U_,IS_ANY_SAFARI:()=>mr,IS_CHROME:()=>tn,IS_CHROME_OS:()=>rm,IS_CHROMIUM_BASE:()=>Xr,IS_DESKTOP_IOS_CHROME:()=>um,IS_EDG:()=>Xs,IS_EDGE:()=>Wo,IS_ELECTRON:()=>k_,IS_FIREFOX:()=>$t,IS_HEADLESS_CHROME:()=>sm,IS_HONOR:()=>om,IS_HUAWEI:()=>Ia,IS_HUAWEIBROWSER:()=>_a,IS_IE:()=>kf,IS_IE8:()=>O_,IS_IOS:()=>ht,IS_IOS_13_OR_14:()=>dm,IS_IOS_15_1:()=>cm,IS_IOS_CHROME:()=>Lf,IS_IPAD:()=>Js,IS_IPADQQB:()=>ga,IS_IPAD_PRO:()=>Kl,IS_IPHONE:()=>eo,IS_IPOD:()=>Pf,IS_LINUX:()=>Ea,IS_LOCAL:()=>Mr,IS_MAC:()=>Dr,IS_MACQQB:()=>fa,IS_MIBROWSER:()=>Ta,IS_MQQB:()=>Ks,IS_NATIVE_ANDROID:()=>M_,IS_OLD_ANDROID:()=>w_,IS_OPENHARMONY:()=>en,IS_OPPOBROWSER:()=>ya,IS_SAFARI:()=>Tt,IS_SAFARI_15_1:()=>V_,IS_SAMSUNGBROWSER:()=>Sa,IS_SOGOU:()=>ha,IS_SOGOUM:()=>ma,IS_TBS:()=>Nr,IS_UCBROWSER:()=>im,IS_VIVOBROWSER:()=>Aa,IS_WECHAT:()=>Ys,IS_WIN:()=>Go,IS_WQQB:()=>pa,IS_WX:()=>P_,IS_X5MQQB:()=>Zs,IS_XWEB:()=>Qs,MACQQB_VERSION:()=>Td,MI_VERSION:()=>Id,MQQB_VERSION:()=>zs,OPENHARMONY_VERSION:()=>L_,OPPO_VERSION:()=>Ad,SAFARI_VERSION:()=>_i,SAMSUNG_VERSION:()=>yd,SOGOUM_VERSION:()=>md,SOGOU_VERSION:()=>hd,TBS_VERSION:()=>pd,UA_DATA_STRING:()=>Cr,USER_AGENT:()=>nr,VIVO_VERSION:()=>bd,WECHAT_VERSION:()=>gd,WQQB_VERSION:()=>Ed,XWEB_VERSION:()=>fd,browserInfo:()=>Jr,getBrowserCoreNumber:()=>hm,getBrowserInfo:()=>Uf,getChromeMajorVersion:()=>Rd,getDeviceModel:()=>ba,getGPUInfo:()=>mm,getOSName:()=>rn,getOSNumber:()=>qo,getOSString:()=>zo,getOSType:()=>fm,getTerminalType:()=>pm,getUserAgentData:()=>jo,isLocalStorageEnabled:()=>Ii,isMobile:()=>lm,isVersionLargerThan:()=>am,isVersionSmallerThan:()=>nm});var nr=typeof navigator=="undefined"?"":navigator.userAgent,ye=i=>new RegExp(i,"i").test(nr),Et=i=>{if(ye(i)){let t=new RegExp(`${i}\\/([\\d.]+)`),e=nr.match(t);if(e&&e[1])return e[1]}return""},Zl=i=>{if(ye(i)){let t=new RegExp(`${i}\\/(\\d+)`),e=nr.match(t);if(e&&e[1])return parseFloat(e[1])}return NaN},Of=/AppleWebKit\/([\d.]+)/i.exec(nr),D_=Of?parseFloat(Of[1]):NaN,Js=ye("iPad"),Kl=typeof navigator!="undefined"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&ye("Macintosh"),eo=ye("iPhone")&&!Js,Pf=ye("iPod"),ht=eo||Js||Pf||Kl,pt=ye("Android"),em=(function(){if(pt){let i=nr.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})(),w_=pt&&ye("webkit")&&em<2.3,M_=pt&&em<5&&D_<537,$t=ye("Firefox"),cd=Et("Firefox"),dd=Zl("Firefox"),Wo=ye("Edge"),ud=Et("Edge"),Xs=ye("Edg"),ld=Et("Edg"),tm=Zl("Edg"),ma=ye("SogouMobileBrowser"),md=Et("SogouMobileBrowser"),ha=ye("MetaSr\\s"),hd=Et("MetaSr\\s"),Nr=ye("TBS"),pd=Et("TBS"),Qs=ye("XWEB"),fd=Et("XWEB"),O_=ye("MSIE\\s8\\.0"),kf=ye("MSIE\\/\\d+"),x_=(function(){if(kf){let i=/MSIE\s(\d+)\.\d/.exec(nr),t=i&&parseFloat(i[1]);return!t&&/Trident\/7.0/i.test(nr)&&/rv:11.0/.test(nr)&&(t=11),t}return NaN})(),Ys=ye("(micromessenger|webbrowser)"),gd=Et("MicroMessenger"),Zs=!Nr&&ye("MQQBrowser")&&ye("COVC"),Ks=!Nr&&ye("MQQBrowser")&&!ye("COVC"),zs=Ks||Zs?Et("MQQBrowser"):"",pa=!Nr&&ye(" QQBrowser"),Ed=Et(" QQBrowser"),fa=!Nr&&ye("QQBrowserLite"),Td=Et("QQBrowserLite"),ga=!Nr&&ye("MQBHD"),_d=Et("MQBHD"),Go=ye("Windows"),Dr=!ht&&ye("MAC OS X"),Ea=!pt&&ye("Linux"),rm=ye("CrOS"),P_=ye("MicroMessenger"),im=ye("UCBrowser"),k_=ye("Electron"),Ta=ye("MiuiBrowser"),Id=Et("MiuiBrowser"),_a=ye("HuaweiBrowser"),Ia=ye("Huawei")||ye("HUAWEI"),om=ye("Honor")||ye("HONOR"),Sd=Et("HuaweiBrowser"),Sa=ye("SamsungBrowser"),yd=Et("SamsungBrowser"),ya=ye("HeyTapBrowser"),Ad=Et("HeyTapBrowser"),Aa=ye("VivoBrowser"),bd=Et("VivoBrowser"),en=ye("OpenHarmony"),L_=Et("OpenHarmony"),Rd=()=>Zl("Chrome"),Xr=ye("Chrome"),tn=!Wo&&!ha&&!ma&&!Nr&&!Qs&&!Xs&&!pa&&!Ta&&!_a&&!Sa&&!ya&&!Aa&&Xr,sm=ye("HeadlessChrome"),Qr=Rd(),vd=Et("Chrome"),Tt=!Xr&&!Ks&&!Zs&&!fa&&!ga&&ye("Safari"),mr=Tt||ht,_i=Et("Version"),U_=/Android.*(wv|.0.0.0)/.test(nr),wr=(()=>{if(Kl)return _i;if(ht){let i=nr.match(/OS (\d+)_(\d+)/i);if(i&&i[1]){let t=i[1];return i[2]&&(t+=`.${i[2]}`),t}}return""})();function nm(i,t){let e=i.split(".").map(o=>Number(o)),r=t.split(".").map(o=>Number(o));for(let o=0;o<Math.max(e.length,r.length);o++){let s=e[o]||0,n=r[o]||0;if(s<n)return!0;if(s>n)return!1}return!1}function am(i,t,e=!1){let r=i.split(".").map(s=>Number(s)),o=t.split(".").map(s=>Number(s));for(let s=0;s<Math.max(r.length,o.length);s++){let n=r[s]||0,a=o[s]||0;if(n>a)return!0;if(n<a)return!1}return e}var wt=Number(wr.split(".")[0]),V_=_i==="15.1",cm=wr==="15.1",dm=(()=>{let i=Number(wr.split(".")[0]);return i===14||i===13})(),Lf=ye("CriOS"),um=Lf&&_i==="11.1.1",Mr=typeof location=="undefined"?!1:location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1",Ii=(()=>{let i;return()=>{if(typeof i=="undefined")try{i=!!window.localStorage}catch(t){i=!1}return i}})(),Jr=Uf();function Uf(){let i=new Map([[$t,["Firefox",cd]],[Xs,["Edg",ld]],[tn,["Chrome",vd]],[Tt,["Safari",_i]],[Nr,["TBS",pd]],[Qs,["XWEB",fd]],[Ys&&eo,["WeChat",gd]],[pa,["QQ(Win)",Ed]],[Ks,["QQ(Mobile)",zs]],[Zs,["QQ(Mobile X5)",zs]],[fa,["QQ(Mac)",Td]],[ga,["QQ(iPad)",_d]],[Ta,["MI",Id]],[_a,["HW",Sd]],[Sa,["Samsung",yd]],[ya,["OPPO",Ad]],[Aa,["VIVO",bd]],[Wo,["EDGE",ud]],[ma,["SogouMobile",md]],[ha,["Sogou",hd]]]),t="unknown",e="unknown";return i.has(!0)&&([t,e]=i.get(!0)),{name:t,version:e}}var je=null;function lm(){return je&&typeof je.mobile=="boolean"?je.mobile:pt||ht||eo||Js||en}var Cr="";function jo(){return y(this,null,function*(){if(je)return je;if(!navigator.userAgentData||typeof navigator.userAgentData.getHighEntropyValues!="function")return null;try{return je=yield navigator.userAgentData.getHighEntropyValues(["architecture","bitness","model","platformVersion","fullVersionList"]),je&&!Cr&&(Cr=`UAData: ${je.platform}/${je.platformVersion}`,je.architecture&&je.bitness&&(Cr+=` ${je.architecture}/${je.bitness}`),je.mobile&&(Cr+=" mobile"),je.model&&(Cr+=` model: ${je.model.replace(/\s+/g,"/")}`),je.fullVersionList&&(Cr+=` ${je.fullVersionList.filter(i=>i.brand!=="Not/A)Brand").map(i=>`${i.brand}/${i.version}`).join(",")}`)),je}catch(i){return null}})}function mm(){try{let i=document.createElement("canvas"),t=i.getContext("webgl")||i.getContext("experimental-webgl");if(!t)return"";let e=t.getExtension("WEBGL_debug_renderer_info");if(e){let r=t.getParameter(e.UNMASKED_VENDOR_WEBGL),o=t.getParameter(e.UNMASKED_RENDERER_WEBGL);return`${r} ${o}`}return""}catch(i){return""}}function ba(){return(je==null?void 0:je.model)||""}var xf=new Map([[pt,"Android"],[ht,"iOS"],[Go,"Windows"],[Dr,"MacOS"],[Ea,"Linux"],[rm,"ChromeOS"]]),rn=function(){return xf.get(!0)?xf.get(!0):je?je.platform:"unknown"};function qo(){return Go?1:pt?2:Dr?3:ht?4:Ea?5:rm?6:en?7:0}function hm(){return Xr?1:Tt?2:$t?3:0}var zo=()=>{let i=rn();return i+=`/${Jr.name}/${Tt?Jr.version:Jr.version.split(".")[0]}`,je!=null&&je.platformVersion&&(i+=`/${je.platformVersion}`),je!=null&&je.architecture&&(i+=`/${je.architecture}`),i};function pm(){return pt?4:eo?2:Js?3:Dr?12:Go?5:Ea?13:en?22:1}function fm(){return pt?"Android":eo?"iPhone":Js?"iPad":Dr?"Mac":Go?"Windows":Ea?"Linux":"unknown"}var Ff=ui(Si(),1),B_=new Ff.default,V=B_;var Or=(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.LOCAL_AUDIO_STARTED="113",se.LOCAL_AUDIO_STOPPED="114",se.REMOTE_AUDIO_STARTED="115",se.REMOTE_AUDIO_STOPPED="116",se.PLAY_TRACK_START="151",se.PLAYER_STATE_CHANGED="152",se.VIDEO_LOADED_DATA="153",se.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",se.AUDIO_CONTEXT_LONG_SUSPENDED="155",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.AUDIO_PROCESSOR_DEBUG="265",se.SSO_SWITCH="266",se.SWITCH_ROOM_START="401",se.SWITCH_ROOM_SUCCESS="407",se.SWITCH_ROOM_FAILED="408",se))(Or||{});var F=Or;var Em=class{constructor(){l(this,"enable",!1);l(this,"ssoFailCount",0);V.on("22",({schedule:t})=>{var e;(e=t==null?void 0:t.config)!=null&&e.sso&&V.emit("266",{enable:!0})}),V.on("266",({enable:t})=>{this.enable=t})}handleUploadFailed(){this.ssoFailCount++,this.ssoFailCount>3&&V.emit("266",{enable:!1})}},to=new Em;var H_="%cTRTC%c%s",W_="padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;",G_="display: inline",Nd=class Nd{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);!xs&&!Zn&&(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&this._timeoutId!==-1}installEvents(){V.on(F.JOIN_SCHEDULE_SUCCESS,({schedule:t})=>{var e;(e=t==null?void 0:t.config)!=null&&e.logLevelToUpload&&Ar[t.config.logLevelToUpload]&&(this._logLevelToUpload=t.config.logLevelToUpload)}),V.on(F.JOIN_SUCCESS,({room:t})=>{this.addJoinedUser({userId:t.userId,sdkAppId:t.sdkAppId}),this.startUpload()}),V.once(F.JOIN_FAILED,()=>{this.startUpload()}),V.on(F.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(De(r.userId)&&ke(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 y(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:n,sdkAppId:a,logs:u}=o[s],m={timestamp:Wc(),sdkAppId:String(a),userId:n,version:at,log:u.map(T=>T.log).join(`
|
|
4
|
-
`)},p=JSON.stringify(m),g=to.enable?Ei(m,2002,a):p;yield this.uploadLogWithRetry(g,a,g instanceof Uint8Array,p),u.forEach(T=>T.uploaded=!0)}}catch(o){}let r=e.filter(o=>!o.uploaded);r.length>0&&(this._queue=r.concat(this._queue))})}uploadLogWithRetry(t,e,r,o){return Ki({retryFunction:()=>Ti({url:gi(e,Qi.LOG),body:t,timeout:5e3,priority:"low"}).then(s=>{r&&s.data!=="ok"&&(to.handleUploadFailed(),this.uploadLogWithRetry(o,e,!1,o))}),settings:{retries:3,timeout:2e3},onError:({retry:s})=>{s()}})()}getPrefix(t){let e=new Date;return e.setTime(li()),`[${Os(e)}] <${Ar[t]}>`}getLogLevel(){return this._logLevel}setLogLevel(t){x(Ar[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(De(t))return t;try{return t instanceof Error?t.toString():JSON.stringify(t)}catch(e){return""}}addLogToQueue(t,e,r=!0,o,s){let n={log:e.reduce((a,u)=>`${a} ${this.logChunkToString(u)}`.trim(),""),level:t,userId:o,sdkAppId:s,forAllJoinedClients:r};V.emit(F.LOG,{log:n}),this._isEnableUploadLog&&t>=this._logLevelToUpload&&this._queue.push(n)}log(t,e,r=!0,o,s){var a;if(e.unshift(this.getPrefix(t)),this.addLogToQueue(t,e,r,o,s),t<this._logLevel)return;let n=((a=Ar[t])==null?void 0:a.toLowerCase())||"info";Nd.PRINT_LOG_TAG?console[n](H_,W_,G_,...e):console[n](...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 qs(t)}checkURLParam(){let e=new URLSearchParams(location.search).get("logLevelToUpload"),r=e?Number(e):-1;Ar[r]&&(this._logLevelToUpload=r)}getQueue(){return this._queue}};l(Nd,"PRINT_LOG_TAG",!(ht||pt||sm));var Tm=Nd,$=new Tm;var j_=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)})},va=j_;var _m=class{constructor(){l(this,"_prefix","TRTC");l(this,"_queue",new Map)}getRealKey(t){return`${this._prefix}_${t}`}checkStorage(){if(!Ii())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(Ii())try{for(let[t,e]of this._queue)localStorage.setItem(t,JSON.stringify(e))}catch(t){$.warn(t)}}getItem(t){if(!Ii())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){$.warn(e)}}setItem(t,e){if(Ii())try{let r={expiresIn:Date.now()+Gc,value:e};this._queue.set(this.getRealKey(t),r)}catch(r){$.warn(r)}}deleteItem(t){if(!Ii())return!1;try{return t=this.getRealKey(t),this._queue.delete(t),localStorage.removeItem(t),!0}catch(e){return $.warn(e),!1}}clear(){if(Ii())try{localStorage.clear()}catch(t){$.warn(t)}}},sn=new _m;var oo={};di(oo,{HTTPS_API:()=>hI,IS_GET_CAPABILITIES_FROM_INPUTDEVICE_SUPPORTED:()=>Wm,IS_GET_CAPABILITIES_SUPPORTED:()=>Hm,IS_GET_SETTINGS_SUPPORTED:()=>cn,IS_GET_SYNCHRONIZATION_SOURCES_SUPPORTED:()=>yI,IS_INSERTABLE_STREAM_SUPPORTED:()=>Ko,IS_JITTER_BUFFER_TARGET_SUPPORTED:()=>vI,IS_RTC_RTP_SENDER_SUPPORTED:()=>La,IS_SCRIPT_TRANSFORM_SUPPORTED:()=>Eg,IS_SEI_SUPPORTED:()=>Ua,IS_SPC_SUPPORTED:()=>TI,basis:()=>bI,capabilityCheck:()=>jm,checkSystemRequirementsInternal:()=>Bd,decodeSupportStatus:()=>dg,detectVideoCodecCapabilities:()=>qm,detectVideoDecoderCapabilities:()=>yg,detectVideoEncoderCapabilities:()=>Sg,encodeSupportStatus:()=>Bm,getBrowserInfo:()=>Fd,getDisplayResolution:()=>ug,isAddTransceiverSupported:()=>Wd,isBrowserSupported:()=>Vm,isCanvasCaptureStreamAPISupported:()=>hg,isCanvasSmallStreamSupported:()=>pg,isGetReceiversSupported:()=>gI,isGetSendersSupported:()=>gg,isGetTransceiversSupported:()=>EI,isGetUserMediaSupported:()=>lg,isMediaDevicesSupported:()=>$d,isMediaSessionSupported:()=>Tg,isMediaStreamTrackGeneratorSupported:()=>aI,isMediaStreamTrackProcessorSupported:()=>$m,isReplaceTrackSupported:()=>II,isRequestVideoFrameCallbackSupported:()=>Ni,isSIMDSupported:()=>AI,isScaleResolutionDownBySupported:()=>fg,isScreenCaptureApiAvailable:()=>ka,isSelectedCandidatePair:()=>pI,isSetParametersSupported:()=>SI,isSetSinkIdSupported:()=>uI,isSmallStreamSupported:()=>Hd,isStopTransceiverSupported:()=>_I,isTRTCSupported:()=>dI,isUnifiedPlanDefault:()=>fI,isUsedInHttpProtocol:()=>Ci,isWebAudioSupported:()=>mg,isWebCodecSupported:()=>Gd,isWebCodecsSupported:()=>Fm,isWebRTCSupported:()=>Gm,isWebTransportSupported:()=>_g});var Om={};di(Om,{AUDIO_LEVEL_SCALE:()=>bi,AudioCodecPipelineType:()=>Oa,AudioDecoderDowngradeState:()=>ym,AudioPlayerMode:()=>vm,AudioType:()=>bm,BASIC_TYPE:()=>Ri,BannedReason:()=>Cm,CONNECTION_CLOSED_REASON:()=>Bf,CheckPermissionType:()=>Mm,ClientEvent:()=>Im,CodecType:()=>Jf,ConnectionEvent:()=>$f,ConnectionState:()=>wd,DECODE_FAILED_ERROR_CODE:()=>wm,DeviceType:()=>xd,FacingMode:()=>Md,FrameWorkType:()=>Dd,LeaveReason:()=>Nm,LocalTrackEvent:()=>ro,MULTI_VIDEO_DATA_TYPE:()=>Ai,MediaType:()=>yt,MediaTypeLabel:()=>q_,MonitorEventId:()=>Da,MutedFlag:()=>Wf,NetworkQualityValue:()=>qf,PlayerState:()=>Jo,ReceiveMode:()=>zf,RemoteStreamType:()=>Yr,RemoteTrackEvent:()=>Xo,RoomEvent:()=>yi,SMALL_MODE:()=>Od,SceneNumber:()=>Sm,StreamEvent:()=>Hf,StreamType:()=>jf,SubscribeMediaType:()=>Ca,TIMER_TYPE:()=>io,TRACK_ACTION:()=>Gf,TRACK_KIND:()=>Am,TrackEvent:()=>xr,UserRole:()=>jt,UserRoleNumber:()=>Qo,VideoCodec:()=>Dm,VideoCodecPipelineType:()=>Ma,VideoContentHint:()=>xa,VideoDecoderDowngradeState:()=>Na,VideoPlayerMode:()=>wa,VideoType:()=>Rm});var Dd=(e=>(e[e.WEBRTC=30]="WEBRTC",e[e.WASM=37]="WASM",e))(Dd||{}),$f=(D=>(D.TRACK_ADDED="track-added",D.TRACK_UPDATED="track-updated",D.TRACK_SUBSCRIBED="track-subscribed",D.STREAM_ADDED="stream-added",D.STREAM_REMOVED="stream-removed",D.STREAM_UPDATED="stream-updated",D.STREAM_PUBLISHED="stream-published",D.STREAM_SUBSCRIBED="stream-subscribed",D.STREAM_UNSUBSCRIBED="stream-unsubscribed",D.STATE_CHANGED="state-changed",D.ERROR="error",D.CONNECTION_STATE_CHANGED="connection-state-changed",D.FIREWALL_RESTRICTION="firewall-restriction",D.SEI_MESSAGE="sei-message",D.CLOSED="closed",D))($f||{}),Bf=(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))(Bf||{}),Im=(w=>(w.STREAM_ADDED="stream-added",w.STREAM_REMOVED="stream-removed",w.STREAM_UPDATED="stream-updated",w.STREAM_SUBSCRIBED="stream-subscribed",w.CONNECTION_STATE_CHANGED="connection-state-changed",w.PEER_JOIN="peer-join",w.PEER_LEAVE="peer-leave",w.MUTE_AUDIO="mute-audio",w.MUTE_VIDEO="mute-video",w.UNMUTE_AUDIO="unmute-audio",w.UNMUTE_VIDEO="unmute-video",w.CLIENT_BANNED="client-banned",w.NETWORK_QUALITY="network-quality",w.AUDIO_VOLUME="audio-volume",w.SEI_MESSAGE="sei-message",w.ERROR="error",w))(Im||{}),Hf=(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))(Hf||{}),ro=(u=>(u.DEVICE_AUTO_RECOVERED="1",u.DEVICE_RECOVER_FAILED="5",u.DEVICE_CHANGED="2",u.ERROR="3",u.PUBLISH_STATE_CHANGED="4",u.ENCODE_FAILED="6",u.TRACK_ENDED="7",u.RENDER="render",u))(ro||{}),Jo=(r=>(r.PAUSED="PAUSED",r.PLAYING="PLAYING",r.STOPPED="STOPPED",r))(Jo||{}),yi=(W=>(W.PEER_JOIN="peer-join",W.PEER_LEAVE="peer-leave",W.SIGNAL_CONNECTION_STATE_CHANGED="signal-connection-state-changed",W.MEDIA_CONNECTION_STATE_CHANGED="media-connection-state-changed",W.BANNED="banned",W.NETWORK_QUALITY="network-quality",W.AUDIO_VOLUME="audio-volume",W.SEI_MESSAGE="sei-message",W.ERROR="error",W.REMOTE_PUBLISH_STATE_CHANGED="remote-publish-state-changed",W.REMOTE_PUBLISHED="remote-published",W.REMOTE_UNPUBLISHED="remote-unpublished",W.FIREWALL_RESTRICTION="firewall-restriction",W.HEARTBEAT_REPORT="heartbeat-report",W.CUSTOM_MESSAGE="custom-message",W.LAYER_DATA="layerData",W.FIRST_VIDEO_FRAME="first-video-frame",W.DUMP="dump",W.AUDIO_FRAME="audio-frame",W.SUBSCRIBE_SMALL_VIDEO_CHANGED="subscribe-small-video-changed",W.LOCAL_PUBLISH_FLAG_CHANGED="local-publish-flag-changed",W.NTP_TIME_UPDATED="ntp-time-updated",W))(yi||{}),xr=(u=>(u.PLAYER_STATE_CHANGED="player-state-changed",u.MUTE="mute",u.UNMUTE="unmute",u.ERROR="error",u.INPUT_MEDIA_TRACK_CHANGED="input-media-track-changed",u.OUTPUT_MEDIA_TRACK_CHANGED="output-media-track-changed",u.FIRST_VIDEO_FRAME="first-video-frame",u.VIDEO_SIZE_CHANGED="video-size-changed",u))(xr||{}),Xo=(o=>(o.DECODE_FAILED="decode-failed",o.DECODE_DOWNGRADE_STATE_CHANGED="decode-downgrade-state-changed",o.REMOTE_PUBLISH_CHANGED="remote-publish-changed",o.AUDIO_FRAME_WITH_NTP="audio-frame-with-ntp",o))(Xo||{}),Wf=(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))(Wf||{}),Sm=(e=>(e[e.RTC=1]="RTC",e[e.LIVE=2]="LIVE",e))(Sm||{}),Qo=(e=>(e[e.ANCHOR=20]="ANCHOR",e[e.AUDIENCE=21]="AUDIENCE",e))(Qo||{}),jt=(e=>(e.ANCHOR="anchor",e.AUDIENCE="audience",e))(jt||{}),wd=(s=>(s.CONNECTED="CONNECTED",s.DISCONNECTED="DISCONNECTED",s.CONNECTING="CONNECTING",s.RECONNECTED="RECONNECTED",s.RECONNECTING="RECONNECTING",s))(wd||{}),ym=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(ym||{}),Na=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(Na||{}),Am=(r=>(r.AUDIO="audio",r.VIDEO="video",r.AUXILIARY="auxVideo",r))(Am||{}),Gf=(e=>(e.ADD="add",e.REMOVE="remove",e))(Gf||{}),yt=(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))(yt||{}),q_={1:"audio",2:"auxVideo",4:"video"},bm=(t=>(t[t.opus=111]="opus",t))(bm||{}),Rm=(e=>(e[e.h264=100]="h264",e[e.vp8=101]="vp8",e))(Rm||{}),jf=(e=>(e.Big="big",e.Small="small",e))(jf||{}),Yr=(e=>(e.Main="main",e.Aux="auxiliary",e))(Yr||{}),Ai=(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))(Ai||{}),Da=(H=>(H[H.PUBLISH_VIDEO=32768]="PUBLISH_VIDEO",H[H.PUBLISH_AUDIO=32769]="PUBLISH_AUDIO",H[H.UNPUBLISH_VIDEO=32770]="UNPUBLISH_VIDEO",H[H.UNPUBLISH_AUDIO=32771]="UNPUBLISH_AUDIO",H[H.MUTE_AUDIO=32772]="MUTE_AUDIO",H[H.MUTE_VIDEO=32773]="MUTE_VIDEO",H[H.UNMUTE_AUDIO=32774]="UNMUTE_AUDIO",H[H.UNMUTE_VIDEO=32775]="UNMUTE_VIDEO",H[H.SUBSCRIBE_VIDEO=32776]="SUBSCRIBE_VIDEO",H[H.SUBSCRIBE_AUDIO=32777]="SUBSCRIBE_AUDIO",H[H.UNSUBSCRIBE_VIDEO=32778]="UNSUBSCRIBE_VIDEO",H[H.UNSUBSCRIBE_AUDIO=32779]="UNSUBSCRIBE_AUDIO",H[H.SWITCH_CAMERA=32780]="SWITCH_CAMERA",H[H.SWITCH_MICROPHONE=32781]="SWITCH_MICROPHONE",H[H.REPLACE_VIDEO=32782]="REPLACE_VIDEO",H[H.REPLACE_AUDIO=32783]="REPLACE_AUDIO",H[H.MUTE_REMOTE_VIDEO=32784]="MUTE_REMOTE_VIDEO",H[H.MUTE_REMOTE_AUDIO=32785]="MUTE_REMOTE_AUDIO",H[H.UNMUTE_REMOTE_VIDEO=32786]="UNMUTE_REMOTE_VIDEO",H[H.UNMUTE_REMOTE_AUDIO=32787]="UNMUTE_REMOTE_AUDIO",H[H.JOIN=32788]="JOIN",H[H.LEAVE=32789]="LEAVE",H[H.SIGNAL_DISCONNECTED=32790]="SIGNAL_DISCONNECTED",H[H.SIGNAL_CONNECTED=32791]="SIGNAL_CONNECTED",H[H.TRANSPORT_UPLINK_CONNECTED=32792]="TRANSPORT_UPLINK_CONNECTED",H[H.TRANSPORT_DOWNLINK_CONNECTED=32793]="TRANSPORT_DOWNLINK_CONNECTED",H[H.SIGNAl_RECONNECTING=32794]="SIGNAl_RECONNECTING",H[H.SIGNAL_RECONNECT_SUCCESS=32795]="SIGNAL_RECONNECT_SUCCESS",H[H.SIGNAL_RECONNECT_FAIL=32796]="SIGNAL_RECONNECT_FAIL",H[H.TRANSPORT_UPLINK_RECONNECTING=32797]="TRANSPORT_UPLINK_RECONNECTING",H[H.TRANSPORT_UPLINK_RECONNECT_SUCCESS=32798]="TRANSPORT_UPLINK_RECONNECT_SUCCESS",H[H.TRANSPORT_UPLINK_RECONNECT_FAIL=32799]="TRANSPORT_UPLINK_RECONNECT_FAIL",H[H.TRANSPORT_DOWNLINK_RECONNECTING=32800]="TRANSPORT_DOWNLINK_RECONNECTING",H[H.TRANSPORT_DOWNLINK_RECONNECT_SUCCESS=32801]="TRANSPORT_DOWNLINK_RECONNECT_SUCCESS",H[H.TRANSPORT_DOWNLINK_RECONNECT_FAIL=32802]="TRANSPORT_DOWNLINK_RECONNECT_FAIL",H[H.SUBSCRIBE_SMALL_VIDEO=32803]="SUBSCRIBE_SMALL_VIDEO",H[H.UNSUBSCRIBE_SMALL_VIDEO=32804]="UNSUBSCRIBE_SMALL_VIDEO",H[H.PUBLISH_AUX=32805]="PUBLISH_AUX",H[H.UNPUBLISH_AUX=32806]="UNPUBLISH_AUX",H[H.DEVICE_CAPTURE=2003]="DEVICE_CAPTURE",H[H.VIDEO_ENCODER=4004]="VIDEO_ENCODER",H[H.VIDEO_DECODER=4005]="VIDEO_DECODER",H))(Da||{}),qf=(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))(qf||{}),zf=(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))(zf||{}),Md=(e=>(e.user="user",e.environment="environment",e))(Md||{}),wa=(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))(wa||{}),vm=(e=>(e[e.ELEMENT=0]="ELEMENT",e[e.CONTEXT=1]="CONTEXT",e))(vm||{}),Cm=(o=>(o.BANNED="banned",o.KICK="kick",o.USER_TIME_OUT="user_time_out",o.ROOM_DISBAND="room_disband",o))(Cm||{}),Nm=(m=>(m[m.USER_EXIT_REASON_TC_USER_EXIT_NORMAL=0]="USER_EXIT_REASON_TC_USER_EXIT_NORMAL",m[m.USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT=1]="USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT",m[m.USER_EXIT_REASON_TC_USER_EXIT_KICKED=2]="USER_EXIT_REASON_TC_USER_EXIT_KICKED",m[m.USER_EXIT_REASON_TC_USER_EXIT_CHANGED=3]="USER_EXIT_REASON_TC_USER_EXIT_CHANGED",m[m.USER_KICK_OUT_CODE_BUSINESS_USER=4]="USER_KICK_OUT_CODE_BUSINESS_USER",m[m.USER_KICK_OUT_CODE_BUSINESS_ROOM=5]="USER_KICK_OUT_CODE_BUSINESS_ROOM",m[m.USER_KICK_OUT_CODE_SERVER_USER=6]="USER_KICK_OUT_CODE_SERVER_USER",m[m.USER_KICK_OUT_CODE_SERVER_ROOM=7]="USER_KICK_OUT_CODE_SERVER_ROOM",m[m.USER_KICK_SESS_EXSIT=8]="USER_KICK_SESS_EXSIT",m))(Nm||{}),bi=1e8,Ca=class{constructor(){l(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)}},Ri=(s=>(s.String="string",s.Number="number",s.Boolean="boolean",s.Array="array",s.Object="object",s))(Ri||{}),Dm=(s=>(s.H264="h264",s.H265="h265",s.VP8="vp8",s.VP9="vp9",s.AV1="av1",s))(Dm||{}),Ma=(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))(Ma||{}),Oa=(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))(Oa||{}),Jf=(r=>(r.WebRTC="webrtc",r.WebCodecs="webcodecs",r.WebAssembly="webassembly",r))(Jf||{}),wm=(T=>(T[T.SUCCESS=0]="SUCCESS",T[T.FAILED=1]="FAILED",T[T.WEBCODEC_INIT=2]="WEBCODEC_INIT",T[T.WEBCODEC_CONFIG_NOT_SUPPORT=3]="WEBCODEC_CONFIG_NOT_SUPPORT",T[T.WEBCODEC_DECODER_ERROR=4]="WEBCODEC_DECODER_ERROR",T[T.WEBCODEC_TRACK_MUTE=5]="WEBCODEC_TRACK_MUTE",T[T.WASM_INIT=6]="WASM_INIT",T[T.WASM_WEBGL_UNAVALIABLE=7]="WASM_WEBGL_UNAVALIABLE",T[T.WASM_DECODER_ERROR=8]="WASM_DECODER_ERROR",T[T.WASM_TRACK_MUTE=9]="WASM_TRACK_MUTE",T[T.TEST=10]="TEST",T[T.RENDER_2D_ERROR=11]="RENDER_2D_ERROR",T))(wm||{}),xa=(o=>(o.NONE="",o.DETAIL="detail",o.MOTION="motion",o.TEXT="text",o))(xa||{}),io=(s=>(s.INTERVAL="interval",s.TIMEOUT="timeout",s.RAF="raf",s.RIC="ric",s.INTERVAL_IN_WORKER="intervalInWorker",s))(io||{}),Od=(e=>(e.CANVAS="canvas",e.API="api",e))(Od||{}),Mm=(o=>(o[o.NONE=0]="NONE",o[o.MICROPHONE=1]="MICROPHONE",o[o.CAMERA=2]="CAMERA",o[o.BOTH=3]="BOTH",o))(Mm||{}),xd=(e=>(e.CAMERA="camera",e.MICROPHONE="microphone",e))(xd||{});var $e={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"},Qt={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: ${ct(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: ${ct(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 Xf=(i,t)=>t?`${Gr}/${i}/${t}`:`${Gr}/${i}/index.html`;var z_=()=>{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(wl);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 Be(i){let{key:t,data:e,link:r,addDocLink:o=!0}=i,s="",n="",a="";Ge(Qt[t])?s=Qt[t](e):De(Qt[t])&&(s=Qt[t]);let{TRTC_ERROR_INFO:u,TRTC_ERROR_LINK:m}=z_();r?a=`${r.className}.html#${r.fnName}`:m&&m[t]&&(Ge(m[t])?a=m[t](e):De(m[t])&&(a=m[t]));let p=s;return Rr()&&(u&&u[t]&&(Ge(u[t])?n=u[t](e):De(u[t])&&(n=u[t])),n&&(o?p=`${n}
|
|
5
|
-
\u8BF7\u67E5\u770B\u6587\u6863: ${
|
|
3
|
+
`}});var Yf=qn(ei=>{"use strict";var rs=Jf(),JT=Qf(),XT=Dd();ei.grammar=XT;ei.write=JT;ei.parse=rs.parse;ei.parseParams=rs.parseParams;ei.parseFmtpConfig=rs.parseFmtpConfig;ei.parsePayloads=rs.parsePayloads;ei.parseRemoteCandidates=rs.parseRemoteCandidates;ei.parseImageAttributes=rs.parseImageAttributes;ei.parseSimulcastStreamList=rs.parseSimulcastStreamList});var Gp=(ie=>(ie[ie.INVALID_PARAMETER=4096]="INVALID_PARAMETER",ie[ie.INVALID_OPERATION=4097]="INVALID_OPERATION",ie[ie.NOT_SUPPORTED=4098]="NOT_SUPPORTED",ie[ie.DEVICE_NOT_FOUND=4099]="DEVICE_NOT_FOUND",ie[ie.INITIALIZE_FAILED=4100]="INITIALIZE_FAILED",ie[ie.SIGNAL_CHANNEL_SETUP_FAILED=16385]="SIGNAL_CHANNEL_SETUP_FAILED",ie[ie.SIGNAL_CHANNEL_ERROR=16386]="SIGNAL_CHANNEL_ERROR",ie[ie.ICE_TRANSPORT_ERROR=16387]="ICE_TRANSPORT_ERROR",ie[ie.JOIN_ROOM_FAILED=16388]="JOIN_ROOM_FAILED",ie[ie.CREATE_OFFER_FAILED=16389]="CREATE_OFFER_FAILED",ie[ie.SIGNAL_CHANNEL_RECONNECTION_FAILED=16390]="SIGNAL_CHANNEL_RECONNECTION_FAILED",ie[ie.UPLINK_RECONNECTION_FAILED=16391]="UPLINK_RECONNECTION_FAILED",ie[ie.DOWNLINK_RECONNECTION_FAILED=16392]="DOWNLINK_RECONNECTION_FAILED",ie[ie.REMOTE_STREAM_NOT_EXIST=16400]="REMOTE_STREAM_NOT_EXIST",ie[ie.CLIENT_BANNED=16448]="CLIENT_BANNED",ie[ie.SERVER_TIMEOUT=16449]="SERVER_TIMEOUT",ie[ie.SUBSCRIPTION_TIMEOUT=16450]="SUBSCRIPTION_TIMEOUT",ie[ie.PLAY_NOT_ALLOWED=16451]="PLAY_NOT_ALLOWED",ie[ie.DEVICE_AUTO_RECOVER_FAILED=16452]="DEVICE_AUTO_RECOVER_FAILED",ie[ie.START_PUBLISH_CDN_FAILED=16453]="START_PUBLISH_CDN_FAILED",ie[ie.STOP_PUBLISH_CDN_FAILED=16454]="STOP_PUBLISH_CDN_FAILED",ie[ie.START_MIX_TRANSCODE_FAILED=16455]="START_MIX_TRANSCODE_FAILED",ie[ie.STOP_MIX_TRANSCODE_FAILED=16456]="STOP_MIX_TRANSCODE_FAILED",ie[ie.NOT_SUPPORTED_H264=16457]="NOT_SUPPORTED_H264",ie[ie.SWITCH_ROLE_FAILED=16458]="SWITCH_ROLE_FAILED",ie[ie.API_CALL_TIMEOUT=16459]="API_CALL_TIMEOUT",ie[ie.SCHEDULE_FAILED=16460]="SCHEDULE_FAILED",ie[ie.API_CALL_ABORTED=16461]="API_CALL_ABORTED",ie[ie.SPC_INITIALIZED_FAILED=16462]="SPC_INITIALIZED_FAILED",ie[ie.VIDEO_MANAGER_ERROR=16463]="VIDEO_MANAGER_ERROR",ie[ie.SWITCH_ROOM_FAILED=16464]="SWITCH_ROOM_FAILED",ie[ie.VIDEO_ENCODE_FAILED=16465]="VIDEO_ENCODE_FAILED",ie[ie.AUDIO_ENCODE_FAILED=16466]="AUDIO_ENCODE_FAILED",ie[ie.UNKNOWN=65535]="UNKNOWN",ie))(Gp||{}),q=Gp;var I_=function(i){for(let t in q)if(q[t]===i)return t;return"UNKNOWN"},zn=class extends Error{constructor({name:e="RtcError",message:r,code:o=q.UNKNOWN,extraCode:s=0,constraint:n}){let a=`<${I_(o)} 0x${o.toString(16)}>`,u=`${r}${n?` constraint: ${n}`:""}${r!=null&&r.includes(a)?"":` ${a}`}`;super(u);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=u,this.constraint=n,this.originMessage=r}getCode(){return this.code}getExtraCode(){return this.extraCode}toString(){return this.originMessage}},de=zn;var jp=0;var qp=function(){return jp},fi=function(){return Date.now()+jp},Vc=function(){let i=new Date;return i.setTime(fi()),i.toLocaleString()},Ps=function(i){let t=String(i.getMilliseconds());return"padStart"in String.prototype&&(t=t.toString().padStart(3,"0")),`${i.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/,"$1")}:${t}`};var Xr={};hi(Xr,{REPORT_TYPE:()=>zs,buildSSOPackage:()=>Ii,bytes2ms:()=>of,calculateScaleResolutionDownNumber:()=>rd,concatArrayBuffers:()=>gf,convertObjectNumberToInt:()=>na,copyProperties:()=>rf,deepClone:()=>Wo,deepCloneBasic:()=>Qc,deepMerge:()=>Nr,delay:()=>aa,fibonacci:()=>Go,formatedTime:()=>Zc,getConstructorName:()=>Hs,getContainerFromElement:()=>hf,getEnv:()=>Kp,getFirst16Bits:()=>_f,getInternalVersion:()=>lf,getLast16Bits:()=>Ef,getLoggerUrl:()=>Ti,getMediaStreamTrackInfo:()=>td,getMuteStateFromFlag:()=>qo,getNetworkType:()=>ra,getNumNetworkType:()=>Yc,getReconnectionTimeout:()=>nf,getStringByteLength:()=>pf,getTurnServer:()=>mf,getUint32Version:()=>Kc,getValueType:()=>ct,getViewListFromView:()=>js,glog:()=>ia,ipv4ToUint32:()=>Gs,isArray:()=>st,isAudioWorkletSupported:()=>df,isBoolean:()=>Qe,isConstructor:()=>jo,isEmpty:()=>Ws,isFunction:()=>Ge,isLangChinese:()=>Cr,isMediaStreamTrack:()=>af,isNumber:()=>ke,isObject:()=>ir,isOverseaSdkAppId:()=>_i,isPlainObject:()=>Bt,isPortrait:()=>Gl,isPromise:()=>io,isRemoteTrack:()=>cf,isRotate90Or270:()=>or,isSetSinkIdSupported:()=>uf,isString:()=>Ne,isUndefined:()=>x,loadImage:()=>qs,loadVideo:()=>ff,ms2bytes:()=>sf,ms2samples:()=>Wl,normalizeUrl:()=>zo,performanceNow:()=>_e,promiseAny:()=>oa,samples2ms:()=>Hl,setNetworkType:()=>tf,stringify:()=>mr,stringifyIncludeValue:()=>sa,throttlePromise:()=>ed});var Ol={};hi(Ol,{AUDIO_MUTE_BIT:()=>Wc,AUDIO_STAT_BIT:()=>Us,AUX_STAT_BIT:()=>Yn,AUX_STREAM_MSID:()=>O_,BACKEND_ENV:()=>Hc,BASE_DOC_URL:()=>qr,BASE_HOST:()=>zp,CAPABILITIES_KEYS:()=>qc,CLASS_NAME:()=>rT,CLOUD_CONSOLE_URL:()=>b_,CROSS_ROOM_BIT:()=>w_,DATA_FREEZE_TIMING:()=>jc,DOC_URL:()=>R_,DTLS_STATE_UNKNOWN:()=>H_,ENV_NAME:()=>gi,EXCHANGE_SDP_TIMEOUT:()=>J_,IS_WORKER:()=>ks,IS_WORKLET:()=>Jn,KIBANA_EVENT:()=>lr,LOCAL_STREAM_PUBLISH_STATE:()=>Xp,LOGGER_CMD_TYPE:()=>ro,LOGGER_DOMAIN:()=>Rl,LOGGER_DOMAIN_OVERSEA:()=>vl,LOG_LEVEL:()=>Rr,LOG_LEVEL_NAME:()=>oT,MAIN_STREAM_MSID:()=>M_,MAX_RTT:()=>Kn,MICROPHONE_COMMUNICATIONS:()=>iT,MICROPHONE_DEFAULT:()=>Ho,MUTE_ALL_BIT:()=>D_,NAME:()=>M,NETWORK_TYPE:()=>$o,NOT_SUPPORTED_H264:()=>Q_,PAUSED_RETRY_COUNT:()=>Bo,PEERCONNECTION_CONNECTING_TIMEOUT:()=>eT,PEER_CONNECTION_STATE:()=>W_,PEER_LEAVE_REASON:()=>Qp,RECOVER_CAPTURE_INTERVAL:()=>Vs,REMOTE_STREAM_TYPE_AUX:()=>P_,REMOTE_STREAM_TYPE_MAIN:()=>x_,RENDER_FREEZE_TIMING:()=>Y_,SCHEDULE_DOMAIN:()=>Ei,SCHEDULE_TIMEOUT:()=>tT,SDP_SEMANTICS_PLAN_B:()=>X_,SDP_SEMANTICS_UNIFIED_PLAN:()=>Ml,SECOND_HOST:()=>y_,SIGNAL_PING_PONG_INTERVAL:()=>C_,SIGNAL_PING_TIMEOUT:()=>v_,SIGNAL_RECONNECTION_COUNT:()=>j_,SMALL_STAT_BIT:()=>Dl,SPEAKER_DEFAULT:()=>Zn,STORAGE_EXPIRES_TIME:()=>Fc,STREAM_TYPE_BIG:()=>Z_,STREAM_TYPE_SMALL:()=>K_,SUBSCRIBE_SMALL_RETRY_COUNT:()=>sT,SYNC_USER_LIST_INTERVAL:()=>q_,Scene:()=>zr,THIRD_HOST:()=>A_,TRANSPORT_DIRECTION:()=>N_,TRTC_ERROR_ASSISTANCE:()=>Cl,TRTC_QUALITY_BAD:()=>F_,TRTC_QUALITY_DISCONNECTED:()=>B_,TRTC_QUALITY_EXCELLENT:()=>L_,TRTC_QUALITY_GOOD:()=>U_,TRTC_QUALITY_POOR:()=>V_,TRTC_QUALITY_UNKNOWN:()=>k_,TRTC_QUALITY_VERY_BAD:()=>$_,UPDATE_OFFER_TIMEOUT:()=>z_,VIDEO_MUTE_BIT:()=>Gc,VIDEO_STAT_BIT:()=>Ls,audioProfileMap:()=>$c,defaultBigVideoProfile:()=>Qn,defaultSmallVideoProfile:()=>Nl,getRetryCount:()=>G_,getScriptDir:()=>S_,innerVersion:()=>Al,loggerProxy:()=>Xn,screenProfileMap:()=>Bc,setLoggerProxy:()=>Fo,setRetryCount:()=>wl,setVersion:()=>bl,version:()=>at,videoProfileMap:()=>vr});var Al="4.15.00.1600",at="5.0.0";function bl(i){at=i;let[t,e,r]=i.split(".").map(o=>parseInt(o,10));Al=`${t}.${Math.min(15,e)}.${Math.min(15,r)}.${e.toString().padStart(2,"0")}${r.toString().padStart(2,"0")}`}var ks=typeof importScripts!="undefined",Jn=typeof registerProcessor!="undefined",S_=()=>{let i=ks?self.location.href:document.currentScript.src;return i.substring(0,i.lastIndexOf("/")+1)},Xn="",Fo=i=>Xn=i,zp="web.sdk.qcloud.com",y_="web.sdk.tencent.cn",A_="web.sdk.cloud.tencent.cn",b_="https://console.cloud.tencent.com/trtc",qr=`https://${zp}/trtc/webrtc/v5/doc`,R_=`${qr}/zh-cn/`,Rl="https://yun.tim.qq.com",vl="https://apisgp.my-imcloud.com",Cl="trtc_error_assistance",ro={LOG:"jssdk_log",EVENT:"jssdk_event",KEY_POINT:"jssdk_new_endreport",KV_STAT:"jssdk_key_metrics_report"},gi={QCLOUD:"qcloud",OLD_CLOUD_LADDER:"trtc",WEBRTC:"webrtc"},Rr=(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))(Rr||{}),v_=18e3,C_=2e3,$o={unknown:0,wifi:1,"3g":2,"2g":3,"4g":4,wired:5,"5g":6},Fc=7*24*3600*1e3,$c={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}},vr={"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}},Qn=vr["480p_2"],Nl=vr["120p_2"],Bc={"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}},M={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",RESIZE:"resize",TIME_UPDATE:"timeupdate"},N_={INACTIVE:"inactive",SENDONLY:"sendonly",RECVONLY:"recvonly"},Hc={OLD_CLOUD_LADDER:"wss://trtc.rtc.qq.com",WEBRTC:"wss://webrtc.qq.com"},zr=(e=>(e.LIVE="live",e.RTC="rtc",e))(zr||{}),Ls=1,Dl=2,Yn=4,Us=8,Wc=64,Gc=16,D_=112,w_=128,M_="5Y2wZK8nANNAoVw6dSAHVjNxrD1ObBM2kBPV",O_="224d130c-7b5c-415b-aaa2-79c2eb5a6df2",x_=M.MAIN,P_=M.AUXILIARY,k_=0,L_=1,U_=2,V_=3,F_=4,$_=5,B_=6,H_="unknown",W_={NEW:"new",CONNECTING:"connecting",FAILED:"failed",CLOSED:"closed",DISCONNECTED:"disconnected",CONNECTED:"connected",COMPLETED:"completed"},Jp=1/0;function wl(i){Jp=i}function G_(){return Jp}var j_=30,lr={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",VIDEO_ENCODE_FAILED_DURING_CALL:"video-encode-failed-during-call",AUDIO_ENCODE_FAILED_DURING_CALL:"audio-encode-failed-during-call"},q_=1e4,z_=1e4,J_=1e4,Ml="unified-plan",X_="plan-b",Q_=1028,Xp=(r=>(r[r.UNPUBLISH=-1]="UNPUBLISH",r[r.PUBLISHING=0]="PUBLISHING",r[r.PUBLISHED=1]="PUBLISHED",r))(Xp||{}),jc=500,Y_=1e3,Z_=M.BIG,K_=M.SMALL,eT=10*1e3,Ei={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"},tT=2e3,rT={TRTC:"TRTC",CLIENT:"Client",LOCAL_STREAM:"LocalStream",REMOTE_STREAM:"RemoteStream",STREAM:"Stream"},Bo=5,Ho="default",Zn=Ho,iT="communications",oT=Object.keys(Rr),Qp=["normal leave","timeout leave","kick","role change"],sT=10,Vs=2e3,qc=["width","height","frameRate","facingMode","sampleRate","sampleSize","channelCount","deviceId","min","max"],Kn=10*1e3;var nT=function(i,t,e,r){function o(s){return s instanceof e?s:new e(function(n){n(s)})}return new(e||(e=Promise))(function(s,n){function a(p){try{m(r.next(p))}catch(g){n(g)}}function u(p){try{m(r.throw(p))}catch(g){n(g)}}function m(p){p.done?s(p.value):o(p.value).then(a,u)}m((r=r.apply(i,t||[])).next())})},xl=Symbol(32),Pl=Symbol(16),kl=Symbol(8),Jr=class{constructor(t){this.g=t,this.consumed=0,t&&(this.need=t.next().value)}setG(t){this.g=t,this.demand(t.next().value,!0)}consume(){this.buffer&&this.consumed&&(this.buffer.copyWithin(0,this.consumed),this.buffer=this.buffer.subarray(0,this.buffer.length-this.consumed),this.consumed=0)}demand(t,e){return e&&this.consume(),this.need=t,this.flush()}read(t){return nT(this,void 0,void 0,function*(){return this.lastReadPromise&&(yield this.lastReadPromise),this.lastReadPromise=new Promise((e,r)=>{var o;this.reject=r,this.resolve=n=>{delete this.lastReadPromise,delete this.resolve,delete this.need,e(n)},this.demand(t,!0)||(o=this.pull)===null||o===void 0||o.call(this,t)})})}readU32(){return this.read(xl)}readU16(){return this.read(Pl)}readU8(){return this.read(kl)}close(){var t;this.g&&this.g.return(),this.buffer&&this.buffer.subarray(0,0),(t=this.reject)===null||t===void 0||t.call(this,new Error("EOF")),delete this.lastReadPromise}flush(){if(!this.buffer||!this.need)return;let t=null,e=this.buffer.subarray(this.consumed),r=0,o=s=>e.length<(r=s);if(typeof this.need=="number"){if(o(this.need))return;t=e.subarray(0,r)}else if(this.need===xl){if(o(4))return;t=e[0]<<24|e[1]<<16|e[2]<<8|e[3]}else if(this.need===Pl){if(o(2))return;t=e[0]<<8|e[1]}else if(this.need===kl){if(o(1))return;t=e[0]}else if("buffer"in this.need){if("byteOffset"in this.need){if(o(this.need.byteLength-this.need.byteOffset))return;new Uint8Array(this.need.buffer,this.need.byteOffset).set(e.subarray(0,r)),t=this.need}else if(this.g){this.g.throw(new Error("Unsupported type"));return}}else{if(o(this.need.byteLength))return;new Uint8Array(this.need).set(e.subarray(0,r)),t=this.need}return this.consumed+=r,this.g?this.demand(this.g.next(t).value,!0):this.resolve&&this.resolve(t),t}write(t){if(t instanceof Uint8Array?this.malloc(t.length).set(t):"buffer"in t?this.malloc(t.byteLength).set(new Uint8Array(t.buffer,t.byteOffset,t.byteLength)):this.malloc(t.byteLength).set(new Uint8Array(t)),this.g||this.resolve)this.flush();else return new Promise(e=>this.pull=e)}writeU32(t){this.malloc(4).set([t>>24&255,t>>16&255,t>>8&255,t&255]),this.flush()}writeU16(t){this.malloc(2).set([t>>8&255,t&255]),this.flush()}writeU8(t){this.malloc(1)[0]=t,this.flush()}malloc(t){if(this.buffer){let e=this.buffer.length,r=e+t;if(r<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,r);else{let o=new Uint8Array(r);o.set(this.buffer),this.buffer=o}return this.buffer.subarray(e,r)}else return this.buffer=new Uint8Array(t),this.buffer}};Jr.U32=xl;Jr.U16=Pl;Jr.U8=kl;var aT=128,cT=127,kA=~cT,LA=Math.pow(2,31);function Ll(i){let t=new Jr;for(;i>=128;)t.malloc(1)[0]=i&255|aT,i>>>=7;return t.malloc(1)[0]=i&255,t.buffer||new Uint8Array(0)}function zc(i,t=0){let e=new Jr,r=t<<3;switch(typeof i){case"boolean":let o=e.malloc(2);o[0]=r,o[1]=i?1:0;break;case"number":e.malloc(1)[0]=r,e.write(Ll(i));break;case"string":e.malloc(1)[0]=r|2;let s=new TextEncoder().encode(i);e.write(Ll(s.length));let n=e.malloc(s.length);for(let u=0;u<s.length;u++)n[u]=s[u];break;case"object":let a=new Jr;if(Array.isArray(i))for(let u=0;u<i.length;u++){let m=zc(i[u],u+1);m&&a.write(m)}else{let u=1;for(let m in i){let p=zc(i[m],u++);p&&a.write(p)}}t===0?a.buffer&&e.write(a.buffer):(e.malloc(1)[0]=r|2,a.buffer&&(e.write(Ll(a.buffer.length)),e.write(a.buffer)))}return e.buffer||new Uint8Array(0)}var ea=class{constructor(){l(this,"buffer");this.buffer=[]}get data(){return this.buffer}get length(){return this.buffer.length}writeInt32(t){this.buffer.push(t>>>24&255),this.buffer.push(t>>>16&255),this.buffer.push(t>>>8&255),this.buffer.push(t&255)}writeInt16(t){this.buffer.push(t>>>8&255),this.buffer.push(t&255)}writeByte(t){this.buffer.push(t&255)}writeBytes(t){for(let e=0;e<t.length;e++)this.buffer.push(t[e])}};function Ul(i,t,e){i[e]=t>>>24&255,i[e+1]=t>>>16&255,i[e+2]=t>>>8&255,i[e+3]=t&255}function $t(i,t){return i[t]<<24|i[t+1]<<16|i[t+2]<<8|i[t+3]}function Vl(i,t){return i[t]}function Fs(i,t,e){return new TextDecoder().decode(dT(i,t,e))}function dT(i,t,e){return i.slice(t,t+e)}var Fl=0,Jc=2654435769,Xc=16,Bl=4,$s=2,Bs=7;function uT(i,t,e,r="AVQualityReportSvc.C2S",o=2e3,s=2,n=30){return{version:o,encryption:s,d2:"",d2Len:0,uinType:n,uin:"",uinLen:0,reqHead:{seqNumber:e,appId:i,appidAtThird:new Uint8Array(0),a2:"",a2Len:0,serviceCmd:r,serviceCmdLen:0,cookie:"",cookieLen:0,imei:"",imeiLen:0,ksid:"",ksidLen:0,clientVersionInfo:"",clientVersionInfoLen:0},busiBuff:t}}function Yp(i,t){let e=new ea,r=uT(t,i,Fl);Fl=Fl+1&2147483647,e.writeInt32(0),e.writeInt32(r.version),e.writeByte(r.encryption);let o=new TextEncoder().encode(r.d2);e.writeInt32(o.length+4),o&&e.writeBytes(o),e.writeByte(r.uinType);let s=new TextEncoder().encode(r.uin);e.writeInt32(s.length+4),s.length&&e.writeBytes(s);let n=new ea;n.writeInt32(0),n.writeInt32(r.reqHead.seqNumber),n.writeInt32(r.reqHead.appId),n.writeByte(r.reqHead.appId>>>24&255),n.writeByte(r.reqHead.appId>>>16&255),n.writeByte(r.reqHead.appId>>>8&255),n.writeByte(r.reqHead.appId&255);for(let Z=4;Z<16;Z++)n.writeByte(0);let a=new TextEncoder().encode(r.reqHead.a2);n.writeInt32(a.length+4),a.length&&n.writeBytes(a);let u=new TextEncoder().encode(r.reqHead.serviceCmd);n.writeInt32(u.length+4),u.length&&n.writeBytes(u);let m=new TextEncoder().encode(r.reqHead.cookie);n.writeInt32(m.length+4),m.length&&n.writeBytes(m);let p=new TextEncoder().encode(r.reqHead.imei);n.writeInt32(p.length+4),p.length&&n.writeBytes(p);let g=new TextEncoder().encode(r.reqHead.ksid);n.writeInt32(g.length+4),g.length&&n.writeBytes(g);let _=new TextEncoder().encode(r.reqHead.clientVersionInfo);n.writeInt16(_.length+2),_.length&&n.writeBytes(_);let A=n.length;n.data[0]=A>>>24&255,n.data[1]=A>>>16&255,n.data[2]=A>>>8&255,n.data[3]=A&255,Ne(i)&&(i=new TextEncoder().encode(i)),n.writeInt32(i.length+4),i.length&&n.writeBytes(i);let C=new Uint8Array(n.data),N=null;r.encryption===1?N=new TextEncoder().encode(r.uin):r.encryption===2&&(N=new Uint8Array(16)),N&&(C=lT(C,N)),e.writeBytes(C);let D=new Uint8Array(e.data),O=D.length;return D[0]=O>>>24&255,D[1]=O>>>16&255,D[2]=O>>>8&255,D[3]=O&255,D}function lT(i,t){let e=i.length,o=(e+1+$s+Bs)%8;o&&(o=8-o);let s=e+1+$s+Bs+o,n=new Uint8Array(s),a=0,u=new Uint8Array(8),m=new Uint8Array(8),p=new Uint8Array(8),g=0;u[0]=Math.floor(Math.random()*256)&248|o,g=1;for(let A=0;A<o;A++)u[g]=Math.floor(Math.random()*256)&255,g+=1;for(let A=0;A<$s;)if(g<8&&(u[g]=Math.floor(Math.random()*256)&255,g+=1,A+=1),g===8){$l(u,t,m,p,n,a),a+=8,g=0;for(let C=0;C<8;C++)p[C]=n[a-8+C]}let _=0;for(;_<e;)if(g<8&&(u[g]=i[_],g+=1,_+=1),g===8){$l(u,t,m,p,n,a),a+=8,g=0;for(let A=0;A<8;A++)p[A]=n[a-8+A]}for(let A=0;A<Bs;)if(g<8&&(u[g]=0,g+=1,A+=1),g===8){$l(u,t,m,p,n,a),a+=8,g=0;for(let C=0;C<8;C++)p[C]=n[a-8+C]}return n}function $l(i,t,e,r,o,s){for(let n=0;n<8;n++)i[n]^=r[n];mT(i,t,o,s);for(let n=0;n<8;n++)o[s+n]^=e[n];for(let n=0;n<8;n++)e[n]=i[n]}function mT(i,t,e,r){let o=$t(i,0),s=$t(i,4),n=[];for(let u=0;u<4;u++)n[u]=$t(t,u*4);let a=0;for(let u=0;u<Xc;u++)a+=Jc,a=a>>>0,o+=(s<<4)+n[0]^s+a^(s>>>5)+n[1],o=o>>>0,s+=(o<<4)+n[2]^o+a^(o>>>5)+n[3],s=s>>>0;Ul(e,o,r),Ul(e,s,r+4)}var Kp=function(){return new URLSearchParams(location.search).get("trtc_env")||""},_i=i=>Number(i)<14e8,Ti=function(i,t){let e;Xn?e=Xn:e=_i(i)?vl:Rl;let r=Math.floor(Math.random()*to(2,31));return`${e}/v5/AVQualityReportSvc/C2S?random=${r}&sdkappid=${i}&cmdtype=${t}`},ta="unknown";function ra(){if(ta!=="unknown")return ta;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&&(ta=ef(r,o)),ta}function ef(i,t){if($o[i])return i;switch(i){case"cellular":case"wimax":return t||"unknown";case"ethernet":return"wired";case"none":case"other":default:return"unknown"}}function tf(i){ta=ef(i)}function Yc(){return $o[ra()]}function rf(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 of(i,t=48e3){return Hl(i/4,t)}function Hl(i,t=48e3){return i*1e3/t}function sf(i,t=48e3){return Wl(i,t)*4}function Wl(i,t=48e3){return i*t/1e3}var ia=typeof window!="undefined"&&typeof window.glog=="function"?window.glog:()=>{},Cr=()=>{let i=navigator.language;return i=i.substring(0,2),i==="zh"},Bt=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 Go(i,t=1,e=1){return i<=1?e:Go(i-1,e,t+e)}function nf(i){return i>8?30*1e3:Go(i)*1e3}function ct(i){return Reflect.apply(Object.prototype.toString,i,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}var Ge=i=>typeof i=="function",x=i=>typeof i=="undefined",Ne=i=>typeof i=="string",ke=i=>typeof i=="number",Qe=i=>typeof i=="boolean",ir=i=>ct(i)==="object",st=i=>ct(i)==="array",af=i=>ct(i)==="MediaStreamTrack".toLowerCase(),cf=i=>i.isRemote,io=i=>ct(i)==="promise",jo=i=>Ge(i)&&i.prototype.constructor===i,Hs=i=>jo(i)?i.prototype.constructor.name:"",df=typeof AudioWorkletNode!="undefined",uf=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype;function oa(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 _e(){return!performance||!performance.now?Date.now():Math.floor(performance.now())}var Zp=i=>+i<10?`0${i}`:i,lf=i=>{let t=i.match(/^\d+\.\d+\.\d+/)[0];if(!t)return i;let e=t.split("."),r=Zp(e[1])+Zp(e[2]);return e[1]-15>0&&(e[1]="15"),e[2]-15>0&&(e[2]="15"),`${e.join(".")}.${r}`},hT=Object.prototype.hasOwnProperty,{toString:JA}=Object.prototype;function Ws(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(Bt(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(hT.call(i,t))return!1;return!0}}return!1}function qo(i,t){return{userId:t,hasAudio:!!(i&Us),hasVideo:!!(i&Ls),hasAuxiliary:!!(i&Yn),hasSmall:!!(i&Dl),audioMuted:!!(i&Wc),videoMuted:!!(i&Gc),audioAvailable:!!(i&Us)&&!(i&Wc),videoAvailable:!!(i&Ls)&&!(i&Gc)}}function mf(i){let t={urls:i.url.startsWith("turn:")||i.url.startsWith("turns:")?i.url:`turn:${i.url}`};return!x(i.username)&&!x(i.credential)&&(t.username=i.username,t.credential=i.credential,t.credentialType="password",x(i.credentialType)||(t.credentialType=i.credentialType)),t}function Gs(i,t=!0){if(!Ne(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 Nr=function(i,t,e,r){if(!(ir(i)&&ir(t)))return 0;let o=0,s=Object.keys(t),n;for(let a=0,u=s.length;a<u;a++)if(n=s[a],!(x(t[n])||e&&e.includes(n)))if(ir(i[n])&&ir(t[n]))o+=Nr(i[n],t[n],e,r);else{if(r&&r.includes(t[n]))continue;i[n]!==t[n]&&(i[n]=Wo(t[n]),o+=1)}return o};function Wo(i){if(st(i)){let t=[];return i.forEach((e,r)=>{t[r]=Wo(e)}),t}if(ir(i)){let t={};return Object.keys(i).forEach(e=>{t[e]=Wo(i[e])}),t}return i}var js=i=>{let t=[];if(st(i))t=[...i];else if(Ne(i)){let e=document.getElementById(i);e&&t.push(e)}else i&&t.push(i);return t},hf=i=>Ne(i)?document.getElementById(i):i,pT=i=>{let t=u=>u<10?`0${u}`:`${u}`,e=i.getFullYear(),r=i.getMonth()+1,o=i.getDate(),s=t(i.getHours()),n=t(i.getMinutes()),a=t(i.getSeconds());return`${e}/${r}/${o} ${s}:${n}:${a}`},Zc=()=>pT(new Date);function mr(i,{keysToInclude:t,keysToExclude:e}){try{if(st(i))return`[${i.map(n=>mr(n,{keysToInclude:t,keysToExclude:e})).join(",")}]`;if(!Bt(i)||!st(t)&&!st(e))return JSON.stringify(i);let r={},o=new Set(t),s=new Set(e);return Object.keys(i).forEach(n=>{(s.size===0&&o.has(n)||o.size===0&&!s.has(n))&&(r[n]=Bt(i[n])||st(i[n])?JSON.parse(mr(i[n],{keysToExclude:e,keysToInclude:t})):i[n])}),JSON.stringify(r)}catch(r){return"{}"}}function sa(i,t=!1){let e=[];return Object.keys(i).forEach(r=>{t===i[r]&&e.push(r)}),mr(i,{keysToInclude:e})}function pf(i){return i.replace(/[\u4e00-\u9fa5]/g,"aa").length}var Gl=()=>{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},qs=i=>y(void 0,null,function*(){return new Promise((t,e)=>{let r;if(Ne(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:q.INVALID_PARAMETER,message:`load image failed, url: ${i}`}))}})}),Kc=i=>{let t=i.split(".");return+t[0]<<24|+t[1]<<16|+t[2]<<8|+t[3]<<0},na=i=>(Object.keys(i).forEach(t=>{ke(i[t])&&(t.startsWith("uint")||t.startsWith("int"))?i[t]=Math.floor(i[t]):(Bt(i[t])||st(i[t]))&&na(i[t])}),i);function aa(i,t){return new Promise(e=>{let r=setTimeout(e,i);t&&t(r)})}function ed(i,t){let e=null;return function(...r){return e||(e=i.apply(t||this,r),e.finally(()=>e=null),e)}}function zo(i){return i.replace(/(^|[^:])\/{2,}/g,"$1/")}function td(i){var t;try{let{width:e,height:r,frameRate:o,sampleRate:s,sampleSize:n,channelCount:a}=(t=i.getSettings)==null?void 0:t.call(i),u=i.kind===M.AUDIO?`${s}x${n}@${a}`:`${e}x${r}@${o}`,m=i.stats?` stats: ${JSON.stringify(i.stats).replaceAll('"',"")}`:"";return`${i.id} ${i.readyState} muted:${i.muted} ${i.kind} ${i.label} ${u}${m}`}catch(e){return""}}function rd(i,t){return i.width*i.height===t.width*t.height?1:Gl()&&t.width>t.height&&i.height>t.width?Math.max(i.width/t.height,i.height/t.width,1):Math.max(i.width/t.width,i.height/t.height,1)}function or(i){return i===90||i===270}function ff(i){return y(this,null,function*(){return new Promise((t,e)=>{let r=document.createElement("video");r.crossOrigin="anonymous",r.src=i,r.muted=!0,r.loop=!0,r.playsInline=!0,r.play().then(()=>t(r)),r.onerror=()=>{e(r.error)}})})}function Qc(i,t=new WeakMap){if(typeof i!="object"||i===null)return i;if(t.has(i))return t.get(i);if(Array.isArray(i)){let e=[];return t.set(i,e),i.forEach((r,o)=>{e[o]=Qc(r,t)}),e}if(Object.prototype.toString.call(i)==="[object Object]"){let e={};return t.set(i,e),Reflect.ownKeys(i).forEach(r=>{e[r]=Qc(i[r],t)}),e}return i}var zs=(r=>(r[r.END_REPORT=2001]="END_REPORT",r[r.LOG=2002]="LOG",r[r.KEY_METRIC_REPORT=2003]="KEY_METRIC_REPORT",r))(zs||{});function fT(i,t,e,r){let o={data:i,random:Math.floor(Math.random()*2147483648),sdkAppId:e};return x(r)||(o=ge(X({},o),{gzip:+r})),{uint32_sdkappid:0,uint64_from_uin:0,uint32_timestamp:0,uint32_seq:0,msg_common_info:{msg_device_info:{enum_device_type:0,str_device_brand:"",str_device_model:"",str_device_board:"",str_device_cpu_abi:""},msg_system_info:{enum_os_type:0,str_os_version:"",msg_network_info:0},msg_network_info:{enum_network_type:0}},msg_report_content:{uint32_type:t,bytes_report_data:JSON.stringify(o)}}}function Ii(i,t,e,r){try{let o=fT(i,t,e,r),s=zc(o);return Yp(s,e)}catch(o){return JSON.stringify(i)}}function gf(i,t){let e=new Uint8Array(i.byteLength+t.byteLength);return e.set(new Uint8Array(i),0),e.set(new Uint8Array(t),i.byteLength),e.buffer}function Ef(i){return(i&65535)>>>0}function _f(i){return(i&4294901760)>>>0}function Tf(i){let t=gT(i);return t==null?void 0:t.busiBuff}function gT(i){try{let t={},e=0;t.totalLength=$t(i,e),e+=4,t.version=$t(i,e),e+=4,t.encryption=Vl(i,e),e+=1,t.uinType=Vl(i,e),e+=1,t.uinLength=$t(i,e),e+=4,t.uin=t.uinLength>4?Fs(i,e,t.uinLength-4):"",e+=t.uinLength-4;let r=i.slice(e);if(t.encryption===2){let o=new Uint8Array(16).fill(0);i=ET(r,o),t.decrypted=!0,e=0}else i=r,e=0;return t.rspHeadLength=$t(i,e),e+=4,t.seqNo=$t(i,e),e+=4,t.retCode=$t(i,e),e+=4,t.retStrLength=$t(i,e),e+=4,t.retStr=t.retStrLength?Fs(i,e,t.retStrLength-4):"",e+=t.retStrLength-4,t.serviceCmdLength=$t(i,e),e+=4,t.serviceCmd=t.serviceCmdLength?Fs(i,e,t.serviceCmdLength-4):"",e+=t.serviceCmdLength-4,t.cookieLength=$t(i,e),e+=4,t.cookie=t.cookieLength?Fs(i,e,t.cookieLength-4):"",e+=t.cookieLength-4,t.flag=$t(i,e),e+=4,t.busiBuffLength=$t(i,e),e+=4,t.busiBuff=t.busiBuffLength?Fs(i,e,t.busiBuffLength-4):"",e+=t.busiBuffLength-4,t}catch(t){}}function If(i,t){let e=i[0]<<24|i[1]<<16|i[2]<<8|i[3],r=i[4]<<24|i[5]<<16|i[6]<<8|i[7];e=e>>>0,r=r>>>0;let o=Jc*Xc>>>0;for(let s=0;s<Xc;s++)r-=(e<<Bl)+t[2]^e+o^(e>>>5)+t[3],r=r>>>0,e-=(r<<Bl)+t[0]^r+o^(r>>>5)+t[1],e=e>>>0,o-=Jc,o=o>>>0;return new Uint8Array([e>>>24&255,e>>>16&255,e>>>8&255,e&255,r>>>24&255,r>>>16&255,r>>>8&255,r&255])}function ET(i,t){let e=0,r=new Uint8Array(8).fill(0),o=new Uint8Array(i.slice(0,8)),s=If(o,t),n=s[0]&7,a=i.length-1-n-$s-Bs,u=new Uint8Array(a),m=0,p=r,g=i.slice(0,8);e=8;let _=1;_+=n;for(let C=1;C<=$s;)if(_<8)_++,C++;else if(_===8){let N=jl(i,e,p,g,s,t);p=N.ivPreCrypt,g=N.ivCurCrypt,s=N.debiBuf,e=N.bufPos,_=0}let A=a;for(;A>0;)if(_<8)u[m++]=s[_]^p[_],_++,A--;else if(_===8){let C=jl(i,e,p,g,s,t);p=C.ivPreCrypt,g=C.ivCurCrypt,s=C.debiBuf,e=C.bufPos,_=0}for(let C=1;C<=Bs;)if(_<8)s[_]^p[_],_++,C++;else if(_===8){if(e>=i.length)break;let N=jl(i,e,p,g,s,t);if(!N.success)break;p=N.ivPreCrypt,g=N.ivCurCrypt,s=N.debiBuf,e=N.bufPos,_=0}return u}function jl(i,t,e,r,o,s){if(t+8>i.length)return{success:!1};let n=new Uint8Array(r),a=i.slice(t,t+8),u=new Uint8Array(8);for(let p=0;p<8;p++)u[p]=o[p]^a[p];let m=If(u,s);return{success:!0,ivPreCrypt:n,ivCurCrypt:a,debiBuf:m,bufPos:t+8}}var Sf=typeof TextDecoder!="undefined"?new TextDecoder:void 0;function Si({url:i,body:t,method:e="POST",timeout:r,priority:o}){return new Promise((s,n)=>{if("fetch"in window)return fetch(i,{method:e,body:t,priority:o}).then(u=>u.clone().json().then(m=>({data:m}),()=>u.arrayBuffer().then(m=>({data:Tf(new Uint8Array(m))||(Sf?Sf.decode(m):m)})))).then(s,n);let a=new XMLHttpRequest;a.onreadystatechange=()=>{if(a.readyState===4)if(a.status>=200&&a.status<300)try{let u=JSON.parse(a.response);s({data:u})}catch(u){s({data:a.response})}else n({status:a.status,statusText:a.statusText||"request failed!"})},a.timeout=r||5e3,a.open(e,i,!0),a.send(t)})}function ql(i){return y(this,null,function*(){let t=_e(),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")),a=yield(yield(yield new Response(o)).blob()).arrayBuffer();return $.debug(`compressJSON ${e.length} -> ${a.byteLength} ${_e()-t}ms`),a}catch(r){return e}})}var _T=Object.prototype.hasOwnProperty;var oo=i=>typeof i=="function",yf=i=>typeof i=="undefined";var Af=i=>typeof i=="boolean";var zl=i=>i.isRemote;var Jl=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 bf(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(Jl(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}var TT=0,IT=1,Rf=2;function ST({retryFunction:i,settings:t,onError:e,onRetrying:r,onRetryFailed:o,onRetrySuccess:s,context:n}){return function(...a){let{retries:u=5,timeout:m=1e3}=t,p=0,g=-1,_=TT,A=(C,N)=>y(this,null,function*(){let D=n||this;try{let O=yield i.apply(D,a);p>0&&s&&s.call(this,p),p=0,C(O)}catch(O){let Z=()=>{clearTimeout(g),p=0,_=Rf,N(O)},ue=()=>{_!==Rf&&p<(oo(u)?u():u)?(p++,_=IT,oo(r)&&r.call(this,p,Z),g=window.setTimeout(()=>{g=-1,A(C,N)},oo(m)?m(p):m)):(Z(),oo(o)&&o.call(this,O))};oo(e)?e.call(this,{error:O,retry:ue,reject:N,retryFuncArgs:a,retriedCount:p}):ue()}});return new Promise(A)}}var so=ST;var Js=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=Af(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}`:""}]`),$.log(t,e,yf(this.userId)||bf(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 nn={};hi(nn,{ANDROID_VERSION:()=>Yl,CHROME_MAJOR_VERSION:()=>Zr,CHROME_VERSION:()=>Sd,EDGE_VERSION:()=>sd,EDG_MAJOR_VERSION:()=>Zl,EDG_VERSION:()=>nd,FIREFOX_MAJOR_VERSION:()=>od,FIREFOX_VERSION:()=>id,HUAWEI_VERSION:()=>gd,IE_VERSION:()=>vT,IOS_MAIN_VERSION:()=>Ot,IOS_VERSION:()=>Or,IPADQQB_VERSION:()=>pd,IS_ANDROID:()=>pt,IS_ANDROID_WEBVIEW:()=>wT,IS_ANY_SAFARI:()=>hr,IS_CHROME:()=>on,IS_CHROME_OS:()=>Kl,IS_CHROMIUM_BASE:()=>Yr,IS_DESKTOP_IOS_CHROME:()=>am,IS_EDG:()=>Ys,IS_EDGE:()=>Jo,IS_ELECTRON:()=>NT,IS_FIREFOX:()=>Ht,IS_HEADLESS_CHROME:()=>rm,IS_HONOR:()=>tm,IS_HUAWEI:()=>ga,IS_HUAWEIBROWSER:()=>fa,IS_IE:()=>Df,IS_IE8:()=>RT,IS_IOS:()=>ht,IS_IOS_13_OR_14:()=>nm,IS_IOS_15_1:()=>sm,IS_IOS_CHROME:()=>wf,IS_IPAD:()=>Qs,IS_IPADQQB:()=>ma,IS_IPAD_PRO:()=>Ql,IS_IPHONE:()=>no,IS_IPOD:()=>Nf,IS_LINUX:()=>ha,IS_LOCAL:()=>xr,IS_MAC:()=>Mr,IS_MACQQB:()=>la,IS_MIBROWSER:()=>pa,IS_MQQB:()=>tn,IS_NATIVE_ANDROID:()=>bT,IS_OLD_ANDROID:()=>AT,IS_OPENHARMONY:()=>rn,IS_OPPOBROWSER:()=>_a,IS_SAFARI:()=>Tt,IS_SAFARI_15_1:()=>MT,IS_SAMSUNGBROWSER:()=>Ea,IS_SOGOU:()=>da,IS_SOGOUM:()=>ca,IS_TBS:()=>wr,IS_UCBROWSER:()=>em,IS_VIVOBROWSER:()=>Ta,IS_WECHAT:()=>Ks,IS_WIN:()=>Xo,IS_WQQB:()=>ua,IS_WX:()=>CT,IS_X5MQQB:()=>en,IS_XWEB:()=>Zs,MACQQB_VERSION:()=>hd,MI_VERSION:()=>fd,MQQB_VERSION:()=>Xs,OPENHARMONY_VERSION:()=>DT,OPPO_VERSION:()=>_d,SAFARI_VERSION:()=>yi,SAMSUNG_VERSION:()=>Ed,SOGOUM_VERSION:()=>ad,SOGOU_VERSION:()=>cd,TBS_VERSION:()=>dd,UA_DATA_STRING:()=>Dr,USER_AGENT:()=>sr,VIVO_VERSION:()=>Td,WECHAT_VERSION:()=>ld,WQQB_VERSION:()=>md,XWEB_VERSION:()=>ud,browserInfo:()=>Qr,getBrowserCoreNumber:()=>um,getBrowserInfo:()=>Mf,getChromeMajorVersion:()=>Id,getDeviceModel:()=>Ia,getGPUInfo:()=>dm,getOSName:()=>sn,getOSNumber:()=>Yo,getOSString:()=>Zo,getOSType:()=>mm,getTerminalType:()=>lm,getUserAgentData:()=>Qo,isLocalStorageEnabled:()=>Ai,isMobile:()=>cm,isVersionLargerThan:()=>om,isVersionSmallerThan:()=>im});var sr=typeof navigator=="undefined"?"":navigator.userAgent,ye=i=>new RegExp(i,"i").test(sr),_t=i=>{if(ye(i)){let t=new RegExp(`${i}\\/([\\d.]+)`),e=sr.match(t);if(e&&e[1])return e[1]}return""},Xl=i=>{if(ye(i)){let t=new RegExp(`${i}\\/(\\d+)`),e=sr.match(t);if(e&&e[1])return parseFloat(e[1])}return NaN},vf=/AppleWebKit\/([\d.]+)/i.exec(sr),yT=vf?parseFloat(vf[1]):NaN,Qs=ye("iPad"),Ql=typeof navigator!="undefined"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&ye("Macintosh"),no=ye("iPhone")&&!Qs,Nf=ye("iPod"),ht=no||Qs||Nf||Ql,pt=ye("Android"),Yl=function(){if(pt){let i=sr.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}(),AT=pt&&ye("webkit")&&Yl<2.3,bT=pt&&Yl<5&&yT<537,Ht=ye("Firefox"),id=_t("Firefox"),od=Xl("Firefox"),Jo=ye("Edge"),sd=_t("Edge"),Ys=ye("Edg"),nd=_t("Edg"),Zl=Xl("Edg"),ca=ye("SogouMobileBrowser"),ad=_t("SogouMobileBrowser"),da=ye("MetaSr\\s"),cd=_t("MetaSr\\s"),wr=ye("TBS"),dd=_t("TBS"),Zs=ye("XWEB"),ud=_t("XWEB"),RT=ye("MSIE\\s8\\.0"),Df=ye("MSIE\\/\\d+"),vT=function(){if(Df){let i=/MSIE\s(\d+)\.\d/.exec(sr),t=i&&parseFloat(i[1]);return!t&&/Trident\/7.0/i.test(sr)&&/rv:11.0/.test(sr)&&(t=11),t}return NaN}(),Ks=ye("(micromessenger|webbrowser)"),ld=_t("MicroMessenger"),en=!wr&&ye("MQQBrowser")&&ye("COVC"),tn=!wr&&ye("MQQBrowser")&&!ye("COVC"),Xs=tn||en?_t("MQQBrowser"):"",ua=!wr&&ye(" QQBrowser"),md=_t(" QQBrowser"),la=!wr&&ye("QQBrowserLite"),hd=_t("QQBrowserLite"),ma=!wr&&ye("MQBHD"),pd=_t("MQBHD"),Xo=ye("Windows"),Mr=!ht&&ye("MAC OS X"),ha=!pt&&ye("Linux"),Kl=ye("CrOS"),CT=ye("MicroMessenger"),em=ye("UCBrowser"),NT=ye("Electron"),pa=ye("MiuiBrowser"),fd=_t("MiuiBrowser"),fa=ye("HuaweiBrowser"),ga=ye("Huawei")||ye("HUAWEI"),tm=ye("Honor")||ye("HONOR"),gd=_t("HuaweiBrowser"),Ea=ye("SamsungBrowser"),Ed=_t("SamsungBrowser"),_a=ye("HeyTapBrowser"),_d=_t("HeyTapBrowser"),Ta=ye("VivoBrowser"),Td=_t("VivoBrowser"),rn=ye("OpenHarmony"),DT=_t("OpenHarmony"),Id=()=>Xl("Chrome"),Yr=ye("Chrome"),on=!Jo&&!da&&!ca&&!wr&&!Zs&&!Ys&&!ua&&!pa&&!fa&&!Ea&&!_a&&!Ta&&Yr,rm=ye("HeadlessChrome"),Zr=Id(),Sd=_t("Chrome"),Tt=!Yr&&!tn&&!en&&!la&&!ma&&ye("Safari"),hr=Tt||ht,yi=_t("Version"),wT=/Android.*(wv|.0.0.0)/.test(sr),Or=(()=>{if(Ql)return yi;if(ht){let i=sr.match(/OS (\d+)_(\d+)/i);if(i&&i[1]){let t=i[1];return i[2]&&(t+=`.${i[2]}`),t}}return""})();function im(i,t){let e=i.split(".").map(o=>Number(o)),r=t.split(".").map(o=>Number(o));for(let o=0;o<Math.max(e.length,r.length);o++){let s=e[o]||0,n=r[o]||0;if(s<n)return!0;if(s>n)return!1}return!1}function om(i,t,e=!1){let r=i.split(".").map(s=>Number(s)),o=t.split(".").map(s=>Number(s));for(let s=0;s<Math.max(r.length,o.length);s++){let n=r[s]||0,a=o[s]||0;if(n>a)return!0;if(n<a)return!1}return e}var Ot=Number(Or.split(".")[0]),MT=yi==="15.1",sm=Or==="15.1",nm=(()=>{let i=Number(Or.split(".")[0]);return i===14||i===13})(),wf=ye("CriOS"),am=wf&&yi==="11.1.1",xr=typeof location=="undefined"?!1:location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1",Ai=(()=>{let i;return()=>{if(typeof i=="undefined")try{i=!!window.localStorage}catch(t){i=!1}return i}})(),Qr=Mf();function Mf(){let i=new Map([[Ht,["Firefox",id]],[Ys,["Edg",nd]],[on,["Chrome",Sd]],[Tt,["Safari",yi]],[wr,["TBS",dd]],[Zs,["XWEB",ud]],[Ks&&no,["WeChat",ld]],[ua,["QQ(Win)",md]],[tn,["QQ(Mobile)",Xs]],[en,["QQ(Mobile X5)",Xs]],[la,["QQ(Mac)",hd]],[ma,["QQ(iPad)",pd]],[pa,["MI",fd]],[fa,["HW",gd]],[Ea,["Samsung",Ed]],[_a,["OPPO",_d]],[Ta,["VIVO",Td]],[Jo,["EDGE",sd]],[ca,["SogouMobile",ad]],[da,["Sogou",cd]]]),t="unknown",e="unknown";return i.has(!0)&&([t,e]=i.get(!0)),{name:t,version:e}}var je=null;function cm(){return je&&typeof je.mobile=="boolean"?je.mobile:pt||ht||no||Qs||rn}var Dr="";function Qo(){return y(this,null,function*(){if(je)return je;if(!navigator.userAgentData||typeof navigator.userAgentData.getHighEntropyValues!="function")return null;try{return je=yield navigator.userAgentData.getHighEntropyValues(["architecture","bitness","model","platformVersion","fullVersionList"]),je&&!Dr&&(Dr=`UAData: ${je.platform}/${je.platformVersion}`,je.architecture&&je.bitness&&(Dr+=` ${je.architecture}/${je.bitness}`),je.mobile&&(Dr+=" mobile"),je.model&&(Dr+=` model: ${je.model.replace(/\s+/g,"/")}`),je.fullVersionList&&(Dr+=` ${je.fullVersionList.filter(i=>i.brand!=="Not/A)Brand").map(i=>`${i.brand}/${i.version}`).join(",")}`)),je}catch(i){return null}})}function dm(){try{let i=document.createElement("canvas"),t=i.getContext("webgl")||i.getContext("experimental-webgl");if(!t)return"";let e=t.getExtension("WEBGL_debug_renderer_info");if(e){let r=t.getParameter(e.UNMASKED_VENDOR_WEBGL),o=t.getParameter(e.UNMASKED_RENDERER_WEBGL);return`${r} ${o}`}return""}catch(i){return""}}function Ia(){return(je==null?void 0:je.model)||""}var Cf=new Map([[pt,"Android"],[ht,"iOS"],[Xo,"Windows"],[Mr,"MacOS"],[ha,"Linux"],[Kl,"ChromeOS"]]),sn=function(){return Cf.get(!0)?Cf.get(!0):je?je.platform:"unknown"};function Yo(){return Xo?1:pt?2:Mr?3:ht?4:ha?5:Kl?6:rn?7:0}function um(){return Yr?1:Tt?2:Ht?3:0}var Zo=()=>{let i=sn();return i+=`/${Qr.name}/${Tt?Qr.version:Qr.version.split(".")[0]}`,je!=null&&je.platformVersion&&(i+=`/${je.platformVersion}`),je!=null&&je.architecture&&(i+=`/${je.architecture}`),i};function lm(){return pt?4:no?2:Qs?3:Mr?12:Xo?5:ha?13:rn?22:1}function mm(){return pt?"Android":no?"iPhone":Qs?"iPad":Mr?"Mac":Xo?"Windows":ha?"Linux":"unknown"}var xf=pi(bi(),1),PT=new xf.default,V=PT;var Pr=(j=>(j.ROOM_DESTROY="1",j.JOIN_START="21",j.JOIN_SCHEDULE_SUCCESS="22",j.JOIN_SIGNAL_CONNECTION_START="23",j.JOIN_SIGNAL_CONNECTION_END="24",j.JOIN_SEND_CMD="25",j.JOIN_RECEIVED_CMD_RES="26",j.JOIN_SUCCESS="27",j.JOIN_FAILED="28",j.LEAVE_START="51",j.LEAVE_SEND_CMD="52",j.LEAVE_SUCCESS="53",j.PUBLISH_START="61",j.SEND_FIRST_VIDEO_FRAME="62",j.PUBLISH_FAILED="63",j.SUBSCRIBE_START="81",j.SUBSCRIBE_SUCCESS="82",j.SUBSCRIBE_FAILED="84",j.UNSUBSCRIBE_SUCCESS="83",j.LOCAL_TRACK_CAPTURE_START="101",j.LOCAL_TRACK_CAPTURE_SUCCESS="102",j.LOCAL_TRACK_CAPTURE_FAILED="103",j.LOCAL_TRACK_PUBLISHED="104",j.LOCAL_TRACK_UNPUBLISHED="105",j.LOCAL_TRACK_REPLACED="106",j.SWITCH_DEVICE_SUCCESS="107",j.TRACK_MUTED="108",j.TRACK_UNMUTED="109",j.REMOTE_TRACK_SUBSCRIBED="110",j.REMOTE_TRACK_UNSUBSCRIBED="111",j.LOCAL_TRACK_RECAPTURE="112",j.LOCAL_AUDIO_STARTED="113",j.LOCAL_AUDIO_STOPPED="114",j.REMOTE_AUDIO_STARTED="115",j.REMOTE_AUDIO_STOPPED="116",j.PLAY_TRACK_START="151",j.PLAYER_STATE_CHANGED="152",j.VIDEO_LOADED_DATA="153",j.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",j.AUDIO_CONTEXT_LONG_SUSPENDED="155",j.SIGNAL_CONNECTION_STATE_CHANGED="201",j.PEER_CONNECTION_STATE_CHANGED="202",j.SINGLE_CONNECTION_STAT="203",j.SPC_RECONNECTED="204",j.HEARTBEAT_REPORT="251",j.RECEIVED_PUBLISHED_USER_LIST="252",j.REMOTE_PUBLISH_STATE_CHANGED="253",j.AUDIO_LEVEL_INTERVAL="260",j.NETWORK_QUALITY="261",j.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",j.QUALITY_LIMITATION_CHANGED="263",j.LOG="264",j.AUDIO_PROCESSOR_DEBUG="265",j.SSO_SWITCH="266",j.SWITCH_ROOM_START="401",j.SWITCH_ROOM_SUCCESS="407",j.SWITCH_ROOM_FAILED="408",j))(Pr||{});var F=Pr;var pm=class{constructor(){l(this,"enable",!1);l(this,"ssoFailCount",0);V.on("22",({schedule:t})=>{var e;(e=t==null?void 0:t.config)!=null&&e.sso&&V.emit("266",{enable:!0})}),V.on("266",({enable:t})=>{this.enable=t})}handleUploadFailed(){this.ssoFailCount++,this.ssoFailCount>3&&V.emit("266",{enable:!1})}},ao=new pm;var kT="%cTRTC%c%s",LT="padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;",UT="display: inline",Ad=class Ad{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);!ks&&!Jn&&(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&this._timeoutId!==-1}installEvents(){V.on(F.JOIN_SCHEDULE_SUCCESS,({schedule:t})=>{var e;(e=t==null?void 0:t.config)!=null&&e.logLevelToUpload&&Rr[t.config.logLevelToUpload]&&(this._logLevelToUpload=t.config.logLevelToUpload)}),V.on(F.JOIN_SUCCESS,({room:t})=>{this.addJoinedUser({userId:t.userId,sdkAppId:t.sdkAppId}),this.startUpload()}),V.once(F.JOIN_FAILED,()=>{this.startUpload()}),V.on(F.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(Ne(r.userId)&&ke(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 y(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:n,sdkAppId:a,logs:u}=o[s],m={timestamp:Vc(),sdkAppId:String(a),userId:n,version:at,log:u.map(_=>_.log).join(`
|
|
4
|
+
`)},p=JSON.stringify(m),g=ao.enable?Ii(m,2002,a):p;yield this.uploadLogWithRetry(g,a,g instanceof Uint8Array,p),u.forEach(_=>_.uploaded=!0)}}catch(o){}let r=e.filter(o=>!o.uploaded);r.length>0&&(this._queue=r.concat(this._queue))})}uploadLogWithRetry(t,e,r,o){return so({retryFunction:()=>Si({url:Ti(e,ro.LOG),body:t,timeout:5e3,priority:"low"}).then(s=>{r&&s.data!=="ok"&&(ao.handleUploadFailed(),this.uploadLogWithRetry(o,e,!1,o))}),settings:{retries:3,timeout:2e3},onError:({retry:s})=>{s()}})()}getPrefix(t){let e=new Date;return e.setTime(fi()),`[${Ps(e)}] <${Rr[t]}>`}getLogLevel(){return this._logLevel}setLogLevel(t){x(Rr[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(Ne(t))return t;try{return t instanceof Error?t.toString():JSON.stringify(t)}catch(e){return""}}addLogToQueue(t,e,r=!0,o,s){let n={log:e.reduce((a,u)=>`${a} ${this.logChunkToString(u)}`.trim(),""),level:t,userId:o,sdkAppId:s,forAllJoinedClients:r};V.emit(F.LOG,{log:n}),this._isEnableUploadLog&&t>=this._logLevelToUpload&&this._queue.push(n)}log(t,e,r=!0,o,s){var a;if(e.unshift(this.getPrefix(t)),this.addLogToQueue(t,e,r,o,s),t<this._logLevel)return;let n=((a=Rr[t])==null?void 0:a.toLowerCase())||"info";Ad.PRINT_LOG_TAG?console[n](kT,LT,UT,...e):console[n](...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 Js(t)}checkURLParam(){let e=new URLSearchParams(location.search).get("logLevelToUpload"),r=e?Number(e):-1;Rr[r]&&(this._logLevelToUpload=r)}getQueue(){return this._queue}};l(Ad,"PRINT_LOG_TAG",!(ht||pt||rm));var fm=Ad,$=new fm;var VT=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=VT;var gm=class{constructor(){l(this,"_prefix","TRTC");l(this,"_queue",new Map)}getRealKey(t){return`${this._prefix}_${t}`}checkStorage(){if(!Ai())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(Ai())try{for(let[t,e]of this._queue)localStorage.setItem(t,JSON.stringify(e))}catch(t){$.warn(t)}}getItem(t){if(!Ai())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){$.warn(e)}}setItem(t,e){if(Ai())try{let r={expiresIn:Date.now()+Fc,value:e};this._queue.set(this.getRealKey(t),r)}catch(r){$.warn(r)}}deleteItem(t){if(!Ai())return!1;try{return t=this.getRealKey(t),this._queue.delete(t),localStorage.removeItem(t),!0}catch(e){return $.warn(e),!1}}clear(){if(Ai())try{localStorage.clear()}catch(t){$.warn(t)}}},an=new gm;var lo={};hi(lo,{HTTPS_API:()=>nI,IS_GET_CAPABILITIES_FROM_INPUTDEVICE_SUPPORTED:()=>$m,IS_GET_CAPABILITIES_SUPPORTED:()=>Fm,IS_GET_SETTINGS_SUPPORTED:()=>un,IS_GET_SYNCHRONIZATION_SOURCES_SUPPORTED:()=>fI,IS_INSERTABLE_STREAM_SUPPORTED:()=>os,IS_JITTER_BUFFER_TARGET_SUPPORTED:()=>TI,IS_RTC_RTP_SENDER_SUPPORTED:()=>Oa,IS_SCRIPT_TRANSFORM_SUPPORTED:()=>lg,IS_SEI_SUPPORTED:()=>xa,IS_SPC_SUPPORTED:()=>lI,basis:()=>EI,capabilityCheck:()=>Hm,checkSystemRequirementsInternal:()=>Ld,decodeSupportStatus:()=>ig,detectVideoCodecCapabilities:()=>Wm,detectVideoDecoderCapabilities:()=>gg,detectVideoEncoderCapabilities:()=>fg,encodeSupportStatus:()=>Vm,getBrowserInfo:()=>Pd,getDisplayResolution:()=>og,isAddTransceiverSupported:()=>Vd,isBrowserSupported:()=>km,isCanvasCaptureStreamAPISupported:()=>ag,isCanvasSmallStreamSupported:()=>cg,isGetReceiversSupported:()=>dI,isGetSendersSupported:()=>ug,isGetTransceiversSupported:()=>uI,isGetUserMediaSupported:()=>sg,isMediaDevicesSupported:()=>kd,isMediaSessionSupported:()=>mg,isMediaStreamTrackGeneratorSupported:()=>eI,isMediaStreamTrackProcessorSupported:()=>Um,isReplaceTrackSupported:()=>hI,isRequestVideoFrameCallbackSupported:()=>Mi,isSIMDSupported:()=>gI,isScaleResolutionDownBySupported:()=>dg,isScreenCaptureApiAvailable:()=>Ma,isSelectedCandidatePair:()=>aI,isSetParametersSupported:()=>pI,isSetSinkIdSupported:()=>iI,isSmallStreamSupported:()=>Ud,isStopTransceiverSupported:()=>mI,isTRTCSupported:()=>rI,isUnifiedPlanDefault:()=>cI,isUsedInHttpProtocol:()=>wi,isWebAudioSupported:()=>ng,isWebCodecSupported:()=>Fd,isWebCodecsSupported:()=>Lm,isWebRTCSupported:()=>Bm,isWebTransportSupported:()=>hg});var Dm={};hi(Dm,{AUDIO_LEVEL_SCALE:()=>Ci,AudioCodecPipelineType:()=>Na,AudioDecoderDowngradeState:()=>Tm,AudioPlayerMode:()=>Am,AudioType:()=>Sm,BASIC_TYPE:()=>Ni,BannedReason:()=>bm,CONNECTION_CLOSED_REASON:()=>kf,CheckPermissionType:()=>Nm,ClientEvent:()=>Em,CodecType:()=>Hf,ConnectionEvent:()=>Pf,ConnectionState:()=>Rd,DECODE_FAILED_ERROR_CODE:()=>Cm,DeviceType:()=>Nd,FacingMode:()=>vd,FrameWorkType:()=>bd,LeaveReason:()=>Rm,LocalTrackEvent:()=>co,MULTI_VIDEO_DATA_TYPE:()=>vi,MediaType:()=>At,MediaTypeLabel:()=>FT,MonitorEventId:()=>Ra,MutedFlag:()=>Uf,NetworkQualityValue:()=>$f,PlayerState:()=>Ko,ReceiveMode:()=>Bf,RemoteStreamType:()=>Kr,RemoteTrackEvent:()=>es,RoomEvent:()=>Ri,SMALL_MODE:()=>Cd,SceneNumber:()=>_m,StreamEvent:()=>Lf,StreamType:()=>Ff,SubscribeMediaType:()=>Aa,TIMER_TYPE:()=>uo,TRACK_ACTION:()=>Vf,TRACK_KIND:()=>Im,TrackEvent:()=>kr,UserRole:()=>qt,UserRoleNumber:()=>ts,VideoCodec:()=>vm,VideoCodecPipelineType:()=>Ca,VideoContentHint:()=>Da,VideoDecoderDowngradeState:()=>ba,VideoPlayerMode:()=>va,VideoType:()=>ym});var bd=(e=>(e[e.WEBRTC=30]="WEBRTC",e[e.WASM=37]="WASM",e))(bd||{}),Pf=(N=>(N.TRACK_ADDED="track-added",N.TRACK_UPDATED="track-updated",N.TRACK_SUBSCRIBED="track-subscribed",N.STREAM_ADDED="stream-added",N.STREAM_REMOVED="stream-removed",N.STREAM_UPDATED="stream-updated",N.STREAM_PUBLISHED="stream-published",N.STREAM_SUBSCRIBED="stream-subscribed",N.STREAM_UNSUBSCRIBED="stream-unsubscribed",N.STATE_CHANGED="state-changed",N.ERROR="error",N.CONNECTION_STATE_CHANGED="connection-state-changed",N.FIREWALL_RESTRICTION="firewall-restriction",N.SEI_MESSAGE="sei-message",N.CLOSED="closed",N))(Pf||{}),kf=(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))(kf||{}),Em=(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))(Em||{}),Lf=(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))(Lf||{}),co=(u=>(u.DEVICE_AUTO_RECOVERED="1",u.DEVICE_RECOVER_FAILED="5",u.DEVICE_CHANGED="2",u.ERROR="3",u.PUBLISH_STATE_CHANGED="4",u.ENCODE_FAILED="6",u.TRACK_ENDED="7",u.RENDER="render",u))(co||{}),Ko=(r=>(r.PAUSED="PAUSED",r.PLAYING="PLAYING",r.STOPPED="STOPPED",r))(Ko||{}),Ri=(H=>(H.PEER_JOIN="peer-join",H.PEER_LEAVE="peer-leave",H.SIGNAL_CONNECTION_STATE_CHANGED="signal-connection-state-changed",H.MEDIA_CONNECTION_STATE_CHANGED="media-connection-state-changed",H.BANNED="banned",H.NETWORK_QUALITY="network-quality",H.AUDIO_VOLUME="audio-volume",H.SEI_MESSAGE="sei-message",H.ERROR="error",H.REMOTE_PUBLISH_STATE_CHANGED="remote-publish-state-changed",H.REMOTE_PUBLISHED="remote-published",H.REMOTE_UNPUBLISHED="remote-unpublished",H.FIREWALL_RESTRICTION="firewall-restriction",H.HEARTBEAT_REPORT="heartbeat-report",H.CUSTOM_MESSAGE="custom-message",H.LAYER_DATA="layerData",H.FIRST_VIDEO_FRAME="first-video-frame",H.DUMP="dump",H.AUDIO_FRAME="audio-frame",H.SUBSCRIBE_SMALL_VIDEO_CHANGED="subscribe-small-video-changed",H.LOCAL_PUBLISH_FLAG_CHANGED="local-publish-flag-changed",H.NTP_TIME_UPDATED="ntp-time-updated",H))(Ri||{}),kr=(u=>(u.PLAYER_STATE_CHANGED="player-state-changed",u.MUTE="mute",u.UNMUTE="unmute",u.ERROR="error",u.INPUT_MEDIA_TRACK_CHANGED="input-media-track-changed",u.OUTPUT_MEDIA_TRACK_CHANGED="output-media-track-changed",u.FIRST_VIDEO_FRAME="first-video-frame",u.VIDEO_SIZE_CHANGED="video-size-changed",u))(kr||{}),es=(o=>(o.DECODE_FAILED="decode-failed",o.DECODE_DOWNGRADE_STATE_CHANGED="decode-downgrade-state-changed",o.REMOTE_PUBLISH_CHANGED="remote-publish-changed",o.AUDIO_FRAME_WITH_NTP="audio-frame-with-ntp",o))(es||{}),Uf=(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))(Uf||{}),_m=(e=>(e[e.RTC=1]="RTC",e[e.LIVE=2]="LIVE",e))(_m||{}),ts=(e=>(e[e.ANCHOR=20]="ANCHOR",e[e.AUDIENCE=21]="AUDIENCE",e))(ts||{}),qt=(e=>(e.ANCHOR="anchor",e.AUDIENCE="audience",e))(qt||{}),Rd=(s=>(s.CONNECTED="CONNECTED",s.DISCONNECTED="DISCONNECTED",s.CONNECTING="CONNECTING",s.RECONNECTED="RECONNECTED",s.RECONNECTING="RECONNECTING",s))(Rd||{}),Tm=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(Tm||{}),ba=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(ba||{}),Im=(r=>(r.AUDIO="audio",r.VIDEO="video",r.AUXILIARY="auxVideo",r))(Im||{}),Vf=(e=>(e.ADD="add",e.REMOVE="remove",e))(Vf||{}),At=(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))(At||{}),FT={1:"audio",2:"auxVideo",4:"video"},Sm=(t=>(t[t.opus=111]="opus",t))(Sm||{}),ym=(e=>(e[e.h264=100]="h264",e[e.vp8=101]="vp8",e))(ym||{}),Ff=(e=>(e.Big="big",e.Small="small",e))(Ff||{}),Kr=(e=>(e.Main="main",e.Aux="auxiliary",e))(Kr||{}),vi=(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))(vi||{}),Ra=(J=>(J[J.PUBLISH_VIDEO=32768]="PUBLISH_VIDEO",J[J.PUBLISH_AUDIO=32769]="PUBLISH_AUDIO",J[J.UNPUBLISH_VIDEO=32770]="UNPUBLISH_VIDEO",J[J.UNPUBLISH_AUDIO=32771]="UNPUBLISH_AUDIO",J[J.MUTE_AUDIO=32772]="MUTE_AUDIO",J[J.MUTE_VIDEO=32773]="MUTE_VIDEO",J[J.UNMUTE_AUDIO=32774]="UNMUTE_AUDIO",J[J.UNMUTE_VIDEO=32775]="UNMUTE_VIDEO",J[J.SUBSCRIBE_VIDEO=32776]="SUBSCRIBE_VIDEO",J[J.SUBSCRIBE_AUDIO=32777]="SUBSCRIBE_AUDIO",J[J.UNSUBSCRIBE_VIDEO=32778]="UNSUBSCRIBE_VIDEO",J[J.UNSUBSCRIBE_AUDIO=32779]="UNSUBSCRIBE_AUDIO",J[J.SWITCH_CAMERA=32780]="SWITCH_CAMERA",J[J.SWITCH_MICROPHONE=32781]="SWITCH_MICROPHONE",J[J.REPLACE_VIDEO=32782]="REPLACE_VIDEO",J[J.REPLACE_AUDIO=32783]="REPLACE_AUDIO",J[J.MUTE_REMOTE_VIDEO=32784]="MUTE_REMOTE_VIDEO",J[J.MUTE_REMOTE_AUDIO=32785]="MUTE_REMOTE_AUDIO",J[J.UNMUTE_REMOTE_VIDEO=32786]="UNMUTE_REMOTE_VIDEO",J[J.UNMUTE_REMOTE_AUDIO=32787]="UNMUTE_REMOTE_AUDIO",J[J.JOIN=32788]="JOIN",J[J.LEAVE=32789]="LEAVE",J[J.SIGNAL_DISCONNECTED=32790]="SIGNAL_DISCONNECTED",J[J.SIGNAL_CONNECTED=32791]="SIGNAL_CONNECTED",J[J.TRANSPORT_UPLINK_CONNECTED=32792]="TRANSPORT_UPLINK_CONNECTED",J[J.TRANSPORT_DOWNLINK_CONNECTED=32793]="TRANSPORT_DOWNLINK_CONNECTED",J[J.SIGNAl_RECONNECTING=32794]="SIGNAl_RECONNECTING",J[J.SIGNAL_RECONNECT_SUCCESS=32795]="SIGNAL_RECONNECT_SUCCESS",J[J.SIGNAL_RECONNECT_FAIL=32796]="SIGNAL_RECONNECT_FAIL",J[J.TRANSPORT_UPLINK_RECONNECTING=32797]="TRANSPORT_UPLINK_RECONNECTING",J[J.TRANSPORT_UPLINK_RECONNECT_SUCCESS=32798]="TRANSPORT_UPLINK_RECONNECT_SUCCESS",J[J.TRANSPORT_UPLINK_RECONNECT_FAIL=32799]="TRANSPORT_UPLINK_RECONNECT_FAIL",J[J.TRANSPORT_DOWNLINK_RECONNECTING=32800]="TRANSPORT_DOWNLINK_RECONNECTING",J[J.TRANSPORT_DOWNLINK_RECONNECT_SUCCESS=32801]="TRANSPORT_DOWNLINK_RECONNECT_SUCCESS",J[J.TRANSPORT_DOWNLINK_RECONNECT_FAIL=32802]="TRANSPORT_DOWNLINK_RECONNECT_FAIL",J[J.SUBSCRIBE_SMALL_VIDEO=32803]="SUBSCRIBE_SMALL_VIDEO",J[J.UNSUBSCRIBE_SMALL_VIDEO=32804]="UNSUBSCRIBE_SMALL_VIDEO",J[J.PUBLISH_AUX=32805]="PUBLISH_AUX",J[J.UNPUBLISH_AUX=32806]="UNPUBLISH_AUX",J[J.DEVICE_CAPTURE=2003]="DEVICE_CAPTURE",J[J.VIDEO_ENCODER=4004]="VIDEO_ENCODER",J[J.VIDEO_DECODER=4005]="VIDEO_DECODER",J))(Ra||{}),$f=(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))($f||{}),Bf=(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))(Bf||{}),vd=(e=>(e.user="user",e.environment="environment",e))(vd||{}),va=(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))(va||{}),Am=(e=>(e[e.ELEMENT=0]="ELEMENT",e[e.CONTEXT=1]="CONTEXT",e))(Am||{}),bm=(o=>(o.BANNED="banned",o.KICK="kick",o.USER_TIME_OUT="user_time_out",o.ROOM_DISBAND="room_disband",o))(bm||{}),Rm=(m=>(m[m.USER_EXIT_REASON_TC_USER_EXIT_NORMAL=0]="USER_EXIT_REASON_TC_USER_EXIT_NORMAL",m[m.USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT=1]="USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT",m[m.USER_EXIT_REASON_TC_USER_EXIT_KICKED=2]="USER_EXIT_REASON_TC_USER_EXIT_KICKED",m[m.USER_EXIT_REASON_TC_USER_EXIT_CHANGED=3]="USER_EXIT_REASON_TC_USER_EXIT_CHANGED",m[m.USER_KICK_OUT_CODE_BUSINESS_USER=4]="USER_KICK_OUT_CODE_BUSINESS_USER",m[m.USER_KICK_OUT_CODE_BUSINESS_ROOM=5]="USER_KICK_OUT_CODE_BUSINESS_ROOM",m[m.USER_KICK_OUT_CODE_SERVER_USER=6]="USER_KICK_OUT_CODE_SERVER_USER",m[m.USER_KICK_OUT_CODE_SERVER_ROOM=7]="USER_KICK_OUT_CODE_SERVER_ROOM",m[m.USER_KICK_SESS_EXSIT=8]="USER_KICK_SESS_EXSIT",m))(Rm||{}),Ci=1e8,Aa=class{constructor(){l(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)}},Ni=(s=>(s.String="string",s.Number="number",s.Boolean="boolean",s.Array="array",s.Object="object",s))(Ni||{}),vm=(s=>(s.H264="h264",s.H265="h265",s.VP8="vp8",s.VP9="vp9",s.AV1="av1",s))(vm||{}),Ca=(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))(Ca||{}),Na=(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))(Na||{}),Hf=(r=>(r.WebRTC="webrtc",r.WebCodecs="webcodecs",r.WebAssembly="webassembly",r))(Hf||{}),Cm=(_=>(_[_.SUCCESS=0]="SUCCESS",_[_.FAILED=1]="FAILED",_[_.WEBCODEC_INIT=2]="WEBCODEC_INIT",_[_.WEBCODEC_CONFIG_NOT_SUPPORT=3]="WEBCODEC_CONFIG_NOT_SUPPORT",_[_.WEBCODEC_DECODER_ERROR=4]="WEBCODEC_DECODER_ERROR",_[_.WEBCODEC_TRACK_MUTE=5]="WEBCODEC_TRACK_MUTE",_[_.WASM_INIT=6]="WASM_INIT",_[_.WASM_WEBGL_UNAVALIABLE=7]="WASM_WEBGL_UNAVALIABLE",_[_.WASM_DECODER_ERROR=8]="WASM_DECODER_ERROR",_[_.WASM_TRACK_MUTE=9]="WASM_TRACK_MUTE",_[_.TEST=10]="TEST",_[_.RENDER_2D_ERROR=11]="RENDER_2D_ERROR",_))(Cm||{}),Da=(o=>(o.NONE="",o.DETAIL="detail",o.MOTION="motion",o.TEXT="text",o))(Da||{}),uo=(s=>(s.INTERVAL="interval",s.TIMEOUT="timeout",s.RAF="raf",s.RIC="ric",s.INTERVAL_IN_WORKER="intervalInWorker",s))(uo||{}),Cd=(e=>(e.CANVAS="canvas",e.API="api",e))(Cd||{}),Nm=(o=>(o[o.NONE=0]="NONE",o[o.MICROPHONE=1]="MICROPHONE",o[o.CAMERA=2]="CAMERA",o[o.BOTH=3]="BOTH",o))(Nm||{}),Nd=(e=>(e.CAMERA="camera",e.MICROPHONE="microphone",e))(Nd||{});var Fe={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"},Yt={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: ${ct(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: ${ct(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 Wf=(i,t)=>t?`${qr}/${i}/${t}`:`${qr}/${i}/index.html`;var $T=()=>{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(Cl);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 $e(i){let{key:t,data:e,link:r,addDocLink:o=!0}=i,s="",n="",a="";Ge(Yt[t])?s=Yt[t](e):Ne(Yt[t])&&(s=Yt[t]);let{TRTC_ERROR_INFO:u,TRTC_ERROR_LINK:m}=$T();r?a=`${r.className}.html#${r.fnName}`:m&&m[t]&&(Ge(m[t])?a=m[t](e):Ne(m[t])&&(a=m[t]));let p=s;return Cr()&&(u&&u[t]&&(Ge(u[t])?n=u[t](e):Ne(u[t])&&(n=u[t])),n&&(o?p=`${n}
|
|
5
|
+
\u8BF7\u67E5\u770B\u6587\u6863: ${Wf("zh-cn",a)}
|
|
6
6
|
|
|
7
7
|
`:p=`${n}
|
|
8
8
|
|
|
9
9
|
`,p+=s)),o&&(p+=`
|
|
10
|
-
Refer to: ${
|
|
11
|
-
`),p}var Um=ui(ig(),1);var iI=1,oI=0,kd=class{constructor(t=!0){l(this,"countMap",new Map);l(this,"distributionMap",new Map);l(this,"version");l(this,"log",$.createLogger({id:"kv"}));t&&(V.on("102",({track:e,cost:r})=>{this.addSuccessEvent({key:e.kind===M.AUDIO?501700:511700,cost:r})}),V.on("103",({track:e,error:r})=>{this.addFailedEvent({key:e.kind===M.AUDIO?501700:511700,error:r})}),V.on("266",({enable:e})=>{this.log.info(`${e?"enable":"disable"} sso`),e?this.addSuccessEvent({key:525701}):this.addFailedEvent({key:525701})}))}getReportData(){let t={msg_sdk_basic_info:{uint32_sdk_version:od(this.version||at),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,max:s=5e3}){var u;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;e>s&&(e=s),this.countMap.set(t,(this.countMap.get(t)||0)+1);let n=((u=this.distributionMap)==null?void 0:u.get(t))||new Map,a=0;if(ke(r))a=Math.floor(e/r);else for(let m=r.length-1;m>0;m--)if(e>r[m]){a=m;break}n.set(a,(n.get(a)||0)+1),this.distributionMap.set(t,n)}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=q.UNKNOWN;e&&(ke(e)?r=e:(!x(e.extraCode)||!x(e.code))&&(r=e.extraCode||e.code)),this.addEnum({key:t,value:oI,useUV:!1}),this.addEnum({key:t,value:Math.abs(r),useUV:!1})}},Ld=(W=>(W[W.enterRoom=500700]="enterRoom",W[W.exitRoom=500701]="exitRoom",W[W.switchRole=500702]="switchRole",W[W.destroy=500703]="destroy",W[W.startLocalAudio=500704]="startLocalAudio",W[W.updateLocalAudio=500705]="updateLocalAudio",W[W.stopLocalAudio=500706]="stopLocalAudio",W[W.startLocalVideo=500707]="startLocalVideo",W[W.updateLocalVideo=500708]="updateLocalVideo",W[W.stopLocalVideo=500709]="stopLocalVideo",W[W.startScreenShare=500710]="startScreenShare",W[W.updateScreenShare=500711]="updateScreenShare",W[W.stopScreenShare=500712]="stopScreenShare",W[W.startRemoteVideo=500713]="startRemoteVideo",W[W.updateRemoteVideo=500714]="updateRemoteVideo",W[W.stopRemoteVideo=500715]="stopRemoteVideo",W[W.muteRemoteAudio=500716]="muteRemoteAudio",W[W.setRemoteAudioVolume=500717]="setRemoteAudioVolume",W[W.use=500718]="use",W[W.switchRoom=500719]="switchRoom",W[W.sendSEIMessage=5e5]="sendSEIMessage",W[W.sendCustomMessage=500001]="sendCustomMessage",W))(Ld||{}),Pm=(T=>(T[T.AudioMixer=550700]="AudioMixer",T[T.AIDenoiser=551700]="AIDenoiser",T[T.VirtualBackground=570700]="VirtualBackground",T[T.Beauty=571700]="Beauty",T[T.Watermark=572700]="Watermark",T[T.BasicBeauty=574700]="BasicBeauty",T[T.CDNStreaming=590700]="CDNStreaming",T[T.DeviceDetector=591700]="DeviceDetector",T[T.Debug=592700]="Debug",T[T.SmallStreamAutoSwitcher=593700]="SmallStreamAutoSwitcher",T[T.VideoMixer=594700]="VideoMixer",T[T.AudioProcessor=595700]="AudioProcessor",T))(Pm||{}),km=(T=>(T[T.AudioMixer=550701]="AudioMixer",T[T.AIDenoiser=551701]="AIDenoiser",T[T.VirtualBackground=570701]="VirtualBackground",T[T.Beauty=571701]="Beauty",T[T.Watermark=572701]="Watermark",T[T.BasicBeauty=574701]="BasicBeauty",T[T.CDNStreaming=590701]="CDNStreaming",T[T.DeviceDetector=591701]="DeviceDetector",T[T.Debug=592701]="Debug",T[T.SmallStreamAutoSwitcher=593701]="SmallStreamAutoSwitcher",T[T.VideoMixer=594701]="VideoMixer",T[T.AudioProcessor=595701]="AudioProcessor",T))(km||{}),Lm=(T=>(T[T.AudioMixer=550702]="AudioMixer",T[T.AIDenoiser=551702]="AIDenoiser",T[T.VirtualBackground=570702]="VirtualBackground",T[T.Beauty=571702]="Beauty",T[T.Watermark=572702]="Watermark",T[T.BasicBeauty=574702]="BasicBeauty",T[T.CDNStreaming=590702]="CDNStreaming",T[T.DeviceDetector=591702]="DeviceDetector",T[T.Debug=592702]="Debug",T[T.SmallStreamAutoSwitcher=593702]="SmallStreamAutoSwitcher",T[T.VideoMixer=594702]="VideoMixer",T[T.AudioProcessor=595702]="AudioProcessor",T))(Lm||{});var an=(O=>(O[O.DECODER_TYPE=514700]="DECODER_TYPE",O[O.DECODER_HW_SW=514701]="DECODER_HW_SW",O[O.DECODE_RESULT=514702]="DECODE_RESULT",O[O.DECODE_FAILED_OS=514703]="DECODE_FAILED_OS",O[O.DOWNGRADE_RESULT=514704]="DOWNGRADE_RESULT",O[O.DOWNGRADE_WEBCODECS_VIDEO=514705]="DOWNGRADE_WEBCODECS_VIDEO",O[O.DOWNGRADE_WEBCODECS_2D=514706]="DOWNGRADE_WEBCODECS_2D",O[O.DOWNGRADE_WASM_WEGBL=514707]="DOWNGRADE_WASM_WEGBL",O[O.DOWNGRADE_WASM_VIDEO=514708]="DOWNGRADE_WASM_VIDEO",O[O.DOWNGRADE_WASM_2D=514709]="DOWNGRADE_WASM_2D",O[O.DECODE_H264_RESULT=514710]="DECODE_H264_RESULT",O[O.DECODE_H265_RESULT=514711]="DECODE_H265_RESULT",O[O.DECODE_VP8_RESULT=514712]="DECODE_VP8_RESULT",O[O.DECODE_CAPABILITIES=514713]="DECODE_CAPABILITIES",O[O.RENDER_FREEZE_RATE=514850]="RENDER_FREEZE_RATE",O[O.DATA_FREEZE_RATE=514851]="DATA_FREEZE_RATE",O[O.VIDEO_CONSUME_RENDER_RATE=514852]="VIDEO_CONSUME_RENDER_RATE",O))(an||{});var sI=new kd(!0),Zo=new kd(!1);var X=sI;var ve={result:!1,detail:{isBrowserSupported:!1,isWebRTCSupported:!1,isWebCodecsSupported:!1,isMediaDevicesSupported:!1,isScreenShareSupported:!1,isSmallStreamSupported:!1,isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH265EncodeSupported:!1,isH264DecodeSupported:!1,isVp8DecodeSupported:!1,isH265DecodeSupported:!1}},nI=new Map([[$t,["Firefox",cd]],[Xs,["Edg",ld]],[tn,["Chrome",vd]],[Tt,["Safari",_i]],[Nr,["TBS",pd]],[Qs,["XWEB",fd]],[Ys&&eo,["WeChat",gd]],[pa,["QQ(Win)",Ed]],[Ks,["QQ(Mobile)",zs]],[Zs,["QQ(Mobile X5)",zs]],[fa,["QQ(Mac)",Td]],[ga,["QQ(iPad)",_d]],[Ta,["MI",Id]],[_a,["HW",Sd]],[Sa,["Samsung",yd]],[ya,["OPPO",Ad]],[Aa,["VIVO",bd]],[Wo,["EDGE",ud]],[ma,["SogouMobile",md]],[ha,["Sogou",hd]]]);function Fd(){let i=nI.get(!0),t=i?i[0]:"unknown",e=i?i[1]:"unknown";return{browserName:t,browserVersion:e}}var Vm=function(){return!(im||Wo||Xs&&tm<80||$t&&dd<56)},Fm=function(){return["VideoDecoder","VideoEncoder","AudioEncoder","AudioDecoder"].every(t=>t in window)},$d=function(){if(!navigator.mediaDevices)return Ci()||$.error(Qt.NOT_SUPPORTED_MEDIA),!1;let i=["getUserMedia","enumerateDevices"];return i.filter(t=>t in navigator.mediaDevices).length===i.length},og=!1;function Ci(){return location.protocol==="http:"&&!Mr?(og||$.error(Be({key:$e.NOT_SUPPORTED_HTTP})),og=!0,!0):!1}var $m=function(){return(window==null?void 0:window.OffscreenCanvas)&&(window==null?void 0:window.MediaStreamTrackProcessor)&&(window==null?void 0:window.MediaStreamTrackGenerator)},aI=function(){return!!(window!=null&&window.MediaStreamTrackGenerator)},Bm=function(){return y(this,null,function*(){var o,s,n;if(ve.detail.isH264EncodeSupported&&ve.detail.isVp8EncodeSupported)return{isH264EncodeSupported:ve.detail.isH264EncodeSupported,isVp8EncodeSupported:ve.detail.isVp8EncodeSupported,isH265EncodeSupported:ve.detail.isH265EncodeSupported};let i,t=!1,e=!1,r=!1;try{let a=new RTCPeerConnection,u=document.createElement(M.CANVAS);u.getContext("2d");let m=u.captureStream(0);return a.addTrack(m.getVideoTracks()[0],m),i=yield a.createOffer(),t=((o=i.sdp)==null?void 0:o.toLowerCase().indexOf("h264"))!==-1,e=((s=i.sdp)==null?void 0:s.toLowerCase().indexOf("vp8"))!==-1,r=((n=i.sdp)==null?void 0:n.toLowerCase().indexOf("h265"))!==-1,a.close(),{isH264EncodeSupported:t,isVp8EncodeSupported:e,isH265EncodeSupported:r}}catch(a){return{isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH265EncodeSupported:!1}}})},dg=function(){return y(this,null,function*(){var r;if(ve.detail.isH264DecodeSupported&&ve.detail.isVp8DecodeSupported)return{isH264DecodeSupported:ve.detail.isH264DecodeSupported,isVp8DecodeSupported:ve.detail.isVp8DecodeSupported,isH265DecodeSupported:ve.detail.isH265DecodeSupported};let i,t=!1,e=!1;try{let o=new RTCPeerConnection;Wd()?(o.addTransceiver(M.VIDEO,{direction:"recvonly"}),i=yield o.createOffer()):i=yield o.createOffer({offerToReceiveVideo:!0}),i.sdp.toLowerCase().indexOf("h264")!==-1&&(t=!0),i.sdp.toLowerCase().indexOf("vp8")!==-1&&(e=!0);let s=((r=i.sdp)==null?void 0:r.toLowerCase().indexOf("h265"))!==-1;return o.close(),{isH264DecodeSupported:t,isVp8DecodeSupported:e,isH265DecodeSupported:s}}catch(o){return{isH264DecodeSupported:!1,isVp8DecodeSupported:!1,isH265DecodeSupported:!1}}})};function cI(){return y(this,null,function*(){let[i,t]=yield Promise.all([Bm(),dg()]);return{encode:{h264:i.isH264EncodeSupported,vp8:i.isVp8EncodeSupported,h265:i.isH265EncodeSupported},decode:{h264:t.isH264DecodeSupported,vp8:t.isVp8DecodeSupported,h265:t.isH265DecodeSupported}}})}var Bd=sd(i=>y(null,null,function*(){let t=Date.now(),e=Gm(),r=$d(),o=Fm();if(ve.detail.isWebRTCSupported=e,ve.detail.isMediaDevicesSupported=r,ve.detail.isWebCodecsSupported=o,ve.detail.isScreenShareSupported=ka(),ve.detail.isSmallStreamSupported=Hd(),i===37)return Object.assign(ve.detail,yield mI()),ve.detail.isBrowserSupported=o,ve.result=r&&o,ve.result||$.error(`${navigator.userAgent} ${da(ve.detail,!1)}`),sg(i),X.addNumber({key:523800,value:Date.now()-t}),ve;if(ve.result&&ve.detail.isH264EncodeSupported&&ve.detail.isVp8EncodeSupported&&ve.detail.isH265EncodeSupported&&ve.detail.isH264DecodeSupported&&ve.detail.isVp8DecodeSupported&&ve.detail.isH265DecodeSupported)return ve;let s=Vm(),{encode:n,decode:a}=yield cI(),{h264:u,vp8:m}=n,{h264:p}=a,{h265:g}=n,{vp8:T,h265:A}=a;if(!u||!m){let C=yield Bm();$.warn(`detect encode again h264:${u} vp8:${m} result: ${JSON.stringify(C)}`),u=C.isH264EncodeSupported,m=C.isVp8EncodeSupported}if(u&&p&&pt&&Xr&&!Qs&&!Nr){let{encode:C,decode:D}=yield lI();u=C,p=D}return ve.result=s&&e&&r&&(u||m)&&(p||T),ve.detail.isBrowserSupported=s,ve.detail.isWebRTCSupported=e,ve.detail.isH264EncodeSupported=u,ve.detail.isVp8EncodeSupported=m,ve.detail.isH265EncodeSupported=g,ve.detail.isH264DecodeSupported=p,ve.detail.isVp8DecodeSupported=T,ve.detail.isH265DecodeSupported=A,ve.result||$.error(`${navigator.userAgent} ${da(ve.detail,!1)}`),sg(),X.addNumber({key:523800,value:Date.now()-t}),ve})),dI=function(){return ve.result},ka=function(){return!!(navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)},uI=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype,Ud=null;function lI(){return y(this,null,function*(){return Ud||(Ud=new Promise(i=>y(null,null,function*(){let t={encode:!1,decode:!1},e=()=>{};try{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),n=-1,a=-1;e=()=>{clearInterval(n),clearInterval(s),clearTimeout(a),m.close(),p.close(),u.getTracks().forEach(D=>D.stop())},a=setTimeout(()=>{e(),i(t)},2*1e3);let u=r.captureStream(),m=new RTCPeerConnection({}),p=new RTCPeerConnection({offerToReceiveAudio:!0,offerToReceiveVideo:!0});m.addEventListener("icecandidate",D=>p.addIceCandidate(D.candidate)),p.addEventListener("icecandidate",D=>m.addIceCandidate(D.candidate)),m.addTrack(u.getVideoTracks()[0],u);let g=yield m.createOffer();yield m.setLocalDescription(g),yield p.setRemoteDescription(g);let T=yield p.createAnswer(),A=Um.default.parse(T.sdp),C=A.media[0].rtp.findIndex(D=>D.codec==="H264");A.media[0].rtp=[A.media[0].rtp[C]],A.media[0].fmtp=A.media[0].fmtp.filter(D=>D.payload===A.media[0].rtp[0].payload),A.media[0].rtcpFb&&(A.media[0].rtcpFb=A.media[0].rtcpFb.filter(D=>D.payload===A.media[0].rtp[0].payload)),T.sdp=Um.default.write(A),yield p.setLocalDescription(T),yield m.setRemoteDescription(T),n=setInterval(()=>y(null,null,function*(){t.encode&&t.decode&&(e(),i(t));let[D,w]=yield Promise.all([m.getSenders()[0].getStats(),p.getReceivers()[0].getStats()]);t.encode||D.forEach(O=>{O.type==="outbound-rtp"&&O.mediaType===M.VIDEO&&O.bytesSent>0&&(t.encode=!0)}),t.decode||w.forEach(O=>{O.type==="inbound-rtp"&&O.mediaType===M.VIDEO&&O.bytesReceived>0&&(t.decode=!0)})}),100)}catch(r){e(),$.warn("detectH264Supported failed",r),i({encode:!0,decode:!0})}})).then(i=>(i.encode||(i.decode=!0),(!i.encode||!i.decode)&&$.warn(`detectH264Supported encode: ${i.encode} decode: ${i.decode} ${Cr}`),i)),Ud)})}var Vd=null;function mI(){return y(this,null,function*(){return Vd||(Vd=new Promise(i=>y(null,null,function*(){let t={isH264EncodeSupported:!1,isH264DecodeSupported:!1,isVp8EncodeSupported:!1,isVp8DecodeSupported:!1};if(!Fm()){i(t);return}let e=null,r=null,o=null,s=()=>{o&&clearTimeout(o),e=null,r=null};try{e=document.createElement("canvas"),r=e.getContext("2d"),e.width=320,e.height=240;let n=0,a=()=>{!r||!e||(r.fillStyle=`hsl(${n%360}, 50%, 50%)`,r.fillRect(0,0,e.width,e.height),r.fillStyle="white",r.font="20px Arial",r.fillText(`Frame ${n}`,10,30),n++)};o=setTimeout(()=>{s(),i(t)},5e3);let u=[{type:"h264",encodeConfig:{codec:"avc1.42E01E",avc:{format:"annexb"},width:320,height:240,bitrate:1e6},decodeConfig:{codec:"avc1.42E01E",avc:{format:"annexb"}}},{type:"vp8",encodeConfig:{codec:"vp8",width:320,height:240,bitrate:1e6},decodeConfig:{codec:"vp8"}}];(yield Promise.all(u.map(p=>y(null,null,function*(){let g={type:p.type,encodeSupported:!1,decodeSupported:!1},T;try{T=yield new Promise((A,C)=>y(null,null,function*(){try{let D=new VideoEncoder({output:O=>{A(O),g.encodeSupported=!0},error:C});D.configure(p.encodeConfig),a();let w=new VideoFrame(e,{timestamp:0});D.encode(w,{keyFrame:!0}),w.close(),yield D.flush(),D.close()}catch(D){C(D)}}))}catch(A){return $.warn(`${p.type} encoder error:`,A),g}try{yield new Promise((A,C)=>y(null,null,function*(){try{let D=new VideoDecoder({output:w=>{g.decodeSupported=!0,A(0),w.close()},error:C});D.configure(p.decodeConfig),D.decode(T),yield D.flush(),D.close()}catch(D){C(D)}}))}catch(A){$.warn(`${p.type} decoder error:`,A)}return g})))).forEach(p=>{p.type==="h264"?(t.isH264EncodeSupported=p.encodeSupported,t.isH264DecodeSupported=p.decodeSupported):p.type==="vp8"&&(t.isVp8EncodeSupported=p.encodeSupported,t.isVp8DecodeSupported=p.decodeSupported)}),s(),i(t)}catch(n){s(),$.warn("detectWebCodecsSupported failed:",n),i(t)}})),Vd)})}var hI=(i,t,e)=>{location.protocol==="http:"&&!Mr&&(i[t]=()=>{throw new de({code:q.INVALID_OPERATION,message:Qt.NOT_SUPPORTED_HTTP})})},pI=function(i){return i.type==="candidate-pair"&&i.nominated&&(i.state==="in-progress"||i.state==="succeeded")?!(Ze(i.selected)&&!i.selected):!1};function ug(){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 lg(){return navigator.getUserMedia||navigator.mediaDevices&&navigator.mediaDevices.getUserMedia}function mg(){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 hg(){return"captureStream"in HTMLCanvasElement.prototype}function pg(){return Ys||ht||Qr&&Qr<63?!1:!!(Vm()&&hg())}function fg(){return!(Qr<74||Wo||wt<11||dd<46)}function Hd(){return pg()||fg()}var fI=function(){if(x(window.RTCRtpTransceiver)||!Wd()||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let i=null,t=!1;try{i=new RTCPeerConnection({sdpSemantics:Pl}),i.addTransceiver(M.AUDIO),t=!0}catch(e){}return i==null||i.close(),t};function gI(){return"RTCPeerConnection"in window&&"getReceivers"in window.RTCPeerConnection.prototype}function gg(){return"RTCPeerConnection"in window&&"getSenders"in window.RTCPeerConnection.prototype}function EI(){return"RTCPeerConnection"in window&&"getTransceivers"in window.RTCPeerConnection.prototype}function Wd(){return wt===11&&!um?!1:"RTCPeerConnection"in window&&"addTransceiver"in window.RTCPeerConnection.prototype}var TI=!(!Wd()||Xr&&Qr<86);function _I(){return"RTCRtpTransceiver"in window&&"stop"in window.RTCRtpTransceiver.prototype}var La="RTCRtpSender"in window;function II(){return La&&"replaceTrack"in window.RTCRtpSender.prototype}function SI(){return La&&"setParameters"in window.RTCRtpSender.prototype&&gg()}var yI="RTCRtpReceiver"in window&&"getSynchronizationSources"in window.RTCRtpReceiver.prototype,cn=window.MediaStreamTrack&&"getSettings"in MediaStreamTrack.prototype,Hm=window.MediaStreamTrack&&"getCapabilities"in MediaStreamTrack.prototype,Wm=typeof InputDeviceInfo!="undefined"&&"getCapabilities"in InputDeviceInfo.prototype,Ko=La&&"createEncodedStreams"in window.RTCRtpSender.prototype&&Rd()>=86,Eg="RTCRtpScriptTransform"in window,Ua=La&&(Ko||Eg),Gm=function(){return["RTCPeerConnection","webkitRTCPeerConnection","RTCIceGatherer"].filter(t=>t in window).length>0};function Gd(){let i={AudioDecoder:!1,AudioEncoder:!1,VideoDecoder:!1,VideoEncoder:!1,ImageDecoder:!1};return x(window.AudioDecoder)||(i.AudioDecoder=!0),x(window.AudioEncoder)||(i.AudioEncoder=!0),x(window.VideoDecoder)||(i.VideoDecoder=!0),x(window.VideoEncoder)||(i.VideoEncoder=!0),x(window.ImageDecoder)||(i.ImageDecoder=!0),i}function Tg(){return"mediaSession"in navigator&&!x(navigator.mediaSession.setActionHandler)}function _g(){return!x(window.WebTransport)}function AI(){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 bI(){let i={browser:`${Jr.name}/${Jr.version}`,os:rn(),displayResolution:ug(),isScreenShareSupported:ka(),isWebRTCSupported:Gm(),isGetUserMediaSupported:lg(),isWebAudioSupported:mg(),isWebSocketsSupported:"WebSocket"in window&&window.WebSocket.CLOSING===2,isWebCodecSupported:Gd(),isMediaSessionSupported:Tg(),isWebTransportSupported:_g()};return navigator.userAgent.includes("miniProgram")&&(i.browser=`mini/${i.browser}`),i}var Ig="checkResult";function sg(i=30){sn.setItem(Ig+i,{ua:navigator.userAgent,checkResult:ve})}function jm(i){Ci();let t=sn.getItem(Ig+i);t&&t.ua===navigator.userAgent&&t.checkResult&&RI(t.checkResult.detail,ve.detail)&&(ve=t.checkResult),Bd(i)}function RI(i,t){return or(i)?Object.keys(t).every(e=>e in i):!1}function Ni(){return"requestVideoFrameCallback"in HTMLVideoElement.prototype}var vI="RTCRtpReceiver"in window&&"jitterBufferTarget"in window.RTCRtpReceiver.prototype;function ng(i){return{h264:1,h265:2,vp8:3,vp9:4,av1:5}[i]}var ag=!1;function qm(){return y(this,null,function*(){var i;try{if(ag||!((i=navigator==null?void 0:navigator.mediaCapabilities)!=null&&i.encodingInfo))return;let t=qo(),e=hm();if(t===0||e===0)return;ag=!0;let r=["H264","VP8","VP9","AV1","H265"],[o,s]=yield Promise.all([Sg(r),yg(r)]);o&&Object.keys(o).forEach(n=>{let a=ng(n.toLowerCase());X.addEnum({key:513707,value:+`${a}${+o[n].supported}${+o[n].powerEfficient}${t}${e}`,useUV:!1})}),s&&Object.keys(s).forEach(n=>{let a=ng(n.toLowerCase());X.addEnum({key:514713,value:+`${a}${+s[n].supported}${+s[n].powerEfficient}${t}${e}`,useUV:!1})})}catch(t){$.info("detectVideoCodecCapabilities failed",t)}})}function Sg(i,t=1920,e=1080,r=30,o=3e3){return y(this,null,function*(){let s={};try{for(let n of i){let a=yield navigator.mediaCapabilities.encodingInfo({type:"webrtc",video:{contentType:`video/${n}`,width:t,height:e,bitrate:o,framerate:r}});s[n]=a}}catch(n){}return s})}function yg(i,t=1920,e=1080,r=30,o=3e3){return y(this,null,function*(){let s={};try{for(let n of i){let a=yield navigator.mediaCapabilities.decodingInfo({type:"webrtc",video:{contentType:`video/${n}`,width:t,height:e,bitrate:o,framerate:r}});s[n]=a}}catch(n){}return s})}var bg=ui(Si(),1);var Ag=Symbol("instance"),PR=Symbol("abortCtrl"),jd=Symbol("cacheResult"),Va=class{constructor(t,e,r){this.oldState=t,this.newState=e,this.action=r,this.aborted=!1}abort(t){this.aborted=!0,Ba.call(t,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},Fa=class extends Error{constructor(t,e,r){super(e),this.state=t,this.message=e,this.cause=r}};function CI(i){return typeof i=="object"&&i&&"then"in i}var $a=new Map;function et(i,t,e={}){return(r,o,s)=>{let n=e.action||o;if(!e.context){let u=$a.get(r)||[];$a.has(r)||$a.set(r,u),u.push({from:i,to:t,action:n})}let a=s.value;s.value=function(...u){let m=this;if(e.context&&(m=le.get(typeof e.context=="function"?e.context.call(this,...u):e.context)),m.state===t)return e.sync?m[jd]:Promise.resolve(m[jd]);m.state instanceof Va&&m.state.action==e.abortAction&&m.state.abort(m);let p=null;Array.isArray(i)?i.length==0?m.state instanceof Va&&m.state.abort(m):(typeof m.state!="string"||!i.includes(m.state))&&(p=new Fa(m._state,`${m.name} ${n} to ${t} failed: current state ${m._state} not from ${i.join("|")}`)):i!==m.state&&(p=new Fa(m._state,`${m.name} ${n} to ${t} failed: current state ${m._state} not from ${i}`));let g=w=>{if(e.fail&&e.fail.call(this,w),e.sync){if(e.ignoreError)return w;throw w}else return e.ignoreError?Promise.resolve(w):Promise.reject(w)};if(p)return g(p);let T=m.state,A=new Va(T,t,n);Ba.call(m,A);let C=w=>{var O;return m[jd]=w,A.aborted||(Ba.call(m,t),(O=e.success)===null||O===void 0||O.call(this,m[jd])),w},D=w=>(Ba.call(m,T,w),g(w));try{let w=a.apply(this,u);return CI(w)?w.then(C).catch(D):e.sync?C(w):Promise.resolve(C(w))}catch(w){return D(new Fa(m._state,`${m.name} ${n} from ${i} to ${t} failed: ${w}`,w instanceof Error?w:new Error(String(w))))}}}}var NI=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 Ba(i,t){let e=this._state;this._state=i;let r=i.toString();i&&this.emit(r,e),this.emit(le.STATECHANGED,i,e,t),this.updateDevTools({value:i,old:e,err:t instanceof Error?t.message:String(t)})}var le=class i extends bg.default{constructor(t,e,r){super(),this.name=t,this.groupName=e,this._state=i.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[Ag];o?this.name=o.name+"-"+o.count++:r[Ag]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let t=Object.getPrototypeOf(this),e=$a.get(t)||[],r=new Set,o=[],s=[],n=new Set,a=Object.getPrototypeOf(t);$a.has(a)&&(a.stateDiagram.forEach(m=>r.add(m)),a.allStates.forEach(m=>n.add(m))),e.forEach(({from:m,to:p,action:g})=>{typeof m=="string"?o.push({from:m,to:p,action:g}):m.length?m.forEach(T=>{o.push({from:T,to:p,action:g})}):s.push({to:p,action:g})}),o.forEach(({from:m,to:p,action:g})=>{n.add(m),n.add(p),n.add(g+"ing"),r.add(`${m} --> ${g}ing : ${g}`),r.add(`${g}ing --> ${p} : ${g} \u{1F7E2}`),r.add(`${g}ing --> ${m} : ${g} \u{1F534}`)}),s.forEach(({to:m,action:p})=>{r.add(`${p}ing --> ${m} : ${p} \u{1F7E2}`),n.forEach(g=>{g!==m&&r.add(`${g} --> ${p}ing : ${p}`)})});let u=[...r];return Object.defineProperties(t,{stateDiagram:{value:u},allStates:{value:n}}),u}static get(t){let e;return typeof t=="string"?(e=i.instances.get(t),e||i.instances.set(t,e=new i(t,void 0,Object.create(i.prototype)))):(e=i.instances2.get(t),e||i.instances2.set(t,e=new i(t.constructor.name,void 0,Object.create(i.prototype)))),e}static getState(t){var e;return(e=i.get(t))===null||e===void 0?void 0:e.state}updateDevTools(t={}){NI(i.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(t){Ba.call(this,t)}};le.STATECHANGED="stateChanged";le.UPDATEAFSM="updateAFSM";le.INIT="[*]";le.ON="on";le.OFF="off";le.instances=new Map;le.instances2=new WeakMap;var Jm=typeof window!="undefined",Rg=Jm&&window.requestIdleCallback||function(i){let t=Date.now();return setTimeout(()=>{i({didTimeout:!1,timeRemaining(){return Math.max(0,50-(Date.now()-t))}})},1e3)},DI=Jm&&window.cancelIdleCallback||function(i){clearTimeout(i)},vg=Jm&&(window.cancelAnimationFrame||window.mozCancelAnimationFrame),_t=class _t{static generateTaskID(){return this.currentTaskID++}static run(t,e,r){r!=null&&r.fps&&(r.delay=r.delay||Number((1e3/r.fps).toFixed(2))),t==="interval"?r=J({delay:2e3,count:0,backgroundTask:!0},r):t==="ric"?r=J({delay:1e4,count:0},r):t==="raf"?r=J({fps:60,delay:16.6,count:0,backgroundTask:!0},r):r=J({delay:2e3,count:0,backgroundTask:!0},r);let o=ge(J({taskID:this.generateTaskID(),loopCount:0,intervalID:null,timeoutID:null,rafID:null,ricID:null,taskName:t,callback:e},r),{delay:r.delay});return this.taskMap.set(o.taskID,o),this[t](o),o.taskID}static interval(t){let e=()=>{t.callback(),t.loopCount+=1,_t.isBreakLoop(t)};return t.intervalID=setInterval(e,t.delay)}static intervalInWorker(t){_t.sharedWorker||(_t.sharedWorker=new Worker(URL.createObjectURL(new Blob([`
|
|
10
|
+
Refer to: ${Wf("en",a)}
|
|
11
|
+
`),p}var Pm=pi(Yf(),1);var QT=1,YT=0,wd=class{constructor(t=!0){l(this,"countMap",new Map);l(this,"distributionMap",new Map);l(this,"version");l(this,"log",$.createLogger({id:"kv"}));t&&(V.on("102",({track:e,cost:r})=>{this.addSuccessEvent({key:e.kind===M.AUDIO?501700:511700,cost:r})}),V.on("103",({track:e,error:r})=>{this.addFailedEvent({key:e.kind===M.AUDIO?501700:511700,error:r})}),V.on("266",({enable:e})=>{this.log.info(`${e?"enable":"disable"} sso`),e?this.addSuccessEvent({key:525701}):this.addFailedEvent({key:525701})}))}getReportData(){let t={msg_sdk_basic_info:{uint32_sdk_version:Kc(this.version||at),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,max:s=5e3}){var u;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;e>s&&(e=s),this.countMap.set(t,(this.countMap.get(t)||0)+1);let n=((u=this.distributionMap)==null?void 0:u.get(t))||new Map,a=0;if(ke(r))a=Math.floor(e/r);else for(let m=r.length-1;m>0;m--)if(e>r[m]){a=m;break}n.set(a,(n.get(a)||0)+1),this.distributionMap.set(t,n)}addSuccessEvent({key:t,cost:e,timeKey:r,split:o}){if(t&&(this.addEnum({key:t,value:QT,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=q.UNKNOWN;e&&(ke(e)?r=e:(!x(e.extraCode)||!x(e.code))&&(r=e.extraCode||e.code)),this.addEnum({key:t,value:YT,useUV:!1}),this.addEnum({key:t,value:Math.abs(r),useUV:!1})}},Md=(H=>(H[H.enterRoom=500700]="enterRoom",H[H.exitRoom=500701]="exitRoom",H[H.switchRole=500702]="switchRole",H[H.destroy=500703]="destroy",H[H.startLocalAudio=500704]="startLocalAudio",H[H.updateLocalAudio=500705]="updateLocalAudio",H[H.stopLocalAudio=500706]="stopLocalAudio",H[H.startLocalVideo=500707]="startLocalVideo",H[H.updateLocalVideo=500708]="updateLocalVideo",H[H.stopLocalVideo=500709]="stopLocalVideo",H[H.startScreenShare=500710]="startScreenShare",H[H.updateScreenShare=500711]="updateScreenShare",H[H.stopScreenShare=500712]="stopScreenShare",H[H.startRemoteVideo=500713]="startRemoteVideo",H[H.updateRemoteVideo=500714]="updateRemoteVideo",H[H.stopRemoteVideo=500715]="stopRemoteVideo",H[H.muteRemoteAudio=500716]="muteRemoteAudio",H[H.setRemoteAudioVolume=500717]="setRemoteAudioVolume",H[H.use=500718]="use",H[H.switchRoom=500719]="switchRoom",H[H.sendSEIMessage=5e5]="sendSEIMessage",H[H.sendCustomMessage=500001]="sendCustomMessage",H))(Md||{}),Mm=(_=>(_[_.AudioMixer=550700]="AudioMixer",_[_.AIDenoiser=551700]="AIDenoiser",_[_.VirtualBackground=570700]="VirtualBackground",_[_.Beauty=571700]="Beauty",_[_.Watermark=572700]="Watermark",_[_.BasicBeauty=574700]="BasicBeauty",_[_.CDNStreaming=590700]="CDNStreaming",_[_.DeviceDetector=591700]="DeviceDetector",_[_.Debug=592700]="Debug",_[_.SmallStreamAutoSwitcher=593700]="SmallStreamAutoSwitcher",_[_.VideoMixer=594700]="VideoMixer",_[_.AudioProcessor=595700]="AudioProcessor",_))(Mm||{}),Om=(_=>(_[_.AudioMixer=550701]="AudioMixer",_[_.AIDenoiser=551701]="AIDenoiser",_[_.VirtualBackground=570701]="VirtualBackground",_[_.Beauty=571701]="Beauty",_[_.Watermark=572701]="Watermark",_[_.BasicBeauty=574701]="BasicBeauty",_[_.CDNStreaming=590701]="CDNStreaming",_[_.DeviceDetector=591701]="DeviceDetector",_[_.Debug=592701]="Debug",_[_.SmallStreamAutoSwitcher=593701]="SmallStreamAutoSwitcher",_[_.VideoMixer=594701]="VideoMixer",_[_.AudioProcessor=595701]="AudioProcessor",_))(Om||{}),xm=(_=>(_[_.AudioMixer=550702]="AudioMixer",_[_.AIDenoiser=551702]="AIDenoiser",_[_.VirtualBackground=570702]="VirtualBackground",_[_.Beauty=571702]="Beauty",_[_.Watermark=572702]="Watermark",_[_.BasicBeauty=574702]="BasicBeauty",_[_.CDNStreaming=590702]="CDNStreaming",_[_.DeviceDetector=591702]="DeviceDetector",_[_.Debug=592702]="Debug",_[_.SmallStreamAutoSwitcher=593702]="SmallStreamAutoSwitcher",_[_.VideoMixer=594702]="VideoMixer",_[_.AudioProcessor=595702]="AudioProcessor",_))(xm||{});var dn=(O=>(O[O.DECODER_TYPE=514700]="DECODER_TYPE",O[O.DECODER_HW_SW=514701]="DECODER_HW_SW",O[O.DECODE_RESULT=514702]="DECODE_RESULT",O[O.DECODE_FAILED_OS=514703]="DECODE_FAILED_OS",O[O.DOWNGRADE_RESULT=514704]="DOWNGRADE_RESULT",O[O.DOWNGRADE_WEBCODECS_VIDEO=514705]="DOWNGRADE_WEBCODECS_VIDEO",O[O.DOWNGRADE_WEBCODECS_2D=514706]="DOWNGRADE_WEBCODECS_2D",O[O.DOWNGRADE_WASM_WEGBL=514707]="DOWNGRADE_WASM_WEGBL",O[O.DOWNGRADE_WASM_VIDEO=514708]="DOWNGRADE_WASM_VIDEO",O[O.DOWNGRADE_WASM_2D=514709]="DOWNGRADE_WASM_2D",O[O.DECODE_H264_RESULT=514710]="DECODE_H264_RESULT",O[O.DECODE_H265_RESULT=514711]="DECODE_H265_RESULT",O[O.DECODE_VP8_RESULT=514712]="DECODE_VP8_RESULT",O[O.DECODE_CAPABILITIES=514713]="DECODE_CAPABILITIES",O[O.RENDER_FREEZE_RATE=514850]="RENDER_FREEZE_RATE",O[O.DATA_FREEZE_RATE=514851]="DATA_FREEZE_RATE",O[O.VIDEO_CONSUME_RENDER_RATE=514852]="VIDEO_CONSUME_RENDER_RATE",O))(dn||{});var ZT=new wd(!0),is=new wd(!1);var Q=ZT;var Re={result:!1,detail:{isBrowserSupported:!1,isWebRTCSupported:!1,isWebCodecsSupported:!1,isMediaDevicesSupported:!1,isScreenShareSupported:!1,isSmallStreamSupported:!1,isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH265EncodeSupported:!1,isH264DecodeSupported:!1,isVp8DecodeSupported:!1,isH265DecodeSupported:!1}},KT=new Map([[Ht,["Firefox",id]],[Ys,["Edg",nd]],[on,["Chrome",Sd]],[Tt,["Safari",yi]],[wr,["TBS",dd]],[Zs,["XWEB",ud]],[Ks&&no,["WeChat",ld]],[ua,["QQ(Win)",md]],[tn,["QQ(Mobile)",Xs]],[en,["QQ(Mobile X5)",Xs]],[la,["QQ(Mac)",hd]],[ma,["QQ(iPad)",pd]],[pa,["MI",fd]],[fa,["HW",gd]],[Ea,["Samsung",Ed]],[_a,["OPPO",_d]],[Ta,["VIVO",Td]],[Jo,["EDGE",sd]],[ca,["SogouMobile",ad]],[da,["Sogou",cd]]]);function Pd(){let i=KT.get(!0),t=i?i[0]:"unknown",e=i?i[1]:"unknown";return{browserName:t,browserVersion:e}}var km=function(){return!(em||Jo||Ys&&Zl<80||Ht&&od<56)},Lm=function(){return["VideoDecoder","VideoEncoder","AudioEncoder","AudioDecoder"].every(t=>t in window)},kd=function(){if(!navigator.mediaDevices)return wi()||$.error(Yt.NOT_SUPPORTED_MEDIA),!1;let i=["getUserMedia","enumerateDevices"];return i.filter(t=>t in navigator.mediaDevices).length===i.length},Zf=!1;function wi(){return location.protocol==="http:"&&!xr?(Zf||$.error($e({key:Fe.NOT_SUPPORTED_HTTP})),Zf=!0,!0):!1}var Um=function(){return(window==null?void 0:window.OffscreenCanvas)&&(window==null?void 0:window.MediaStreamTrackProcessor)&&(window==null?void 0:window.MediaStreamTrackGenerator)},eI=function(){return!!(window!=null&&window.MediaStreamTrackGenerator)},Vm=function(){return y(this,null,function*(){var o,s,n;if(Re.detail.isH264EncodeSupported&&Re.detail.isVp8EncodeSupported)return{isH264EncodeSupported:Re.detail.isH264EncodeSupported,isVp8EncodeSupported:Re.detail.isVp8EncodeSupported,isH265EncodeSupported:Re.detail.isH265EncodeSupported};let i,t=!1,e=!1,r=!1;try{let a=new RTCPeerConnection,u=document.createElement(M.CANVAS);u.getContext("2d");let m=u.captureStream(0);return a.addTrack(m.getVideoTracks()[0],m),i=yield a.createOffer(),t=((o=i.sdp)==null?void 0:o.toLowerCase().indexOf("h264"))!==-1,e=((s=i.sdp)==null?void 0:s.toLowerCase().indexOf("vp8"))!==-1,r=((n=i.sdp)==null?void 0:n.toLowerCase().indexOf("h265"))!==-1,a.close(),{isH264EncodeSupported:t,isVp8EncodeSupported:e,isH265EncodeSupported:r}}catch(a){return{isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH265EncodeSupported:!1}}})},ig=function(){return y(this,null,function*(){var r;if(Re.detail.isH264DecodeSupported&&Re.detail.isVp8DecodeSupported)return{isH264DecodeSupported:Re.detail.isH264DecodeSupported,isVp8DecodeSupported:Re.detail.isVp8DecodeSupported,isH265DecodeSupported:Re.detail.isH265DecodeSupported};let i,t=!1,e=!1;try{let o=new RTCPeerConnection;Vd()?(o.addTransceiver(M.VIDEO,{direction:"recvonly"}),i=yield o.createOffer()):i=yield o.createOffer({offerToReceiveVideo:!0}),i.sdp.toLowerCase().indexOf("h264")!==-1&&(t=!0),i.sdp.toLowerCase().indexOf("vp8")!==-1&&(e=!0);let s=((r=i.sdp)==null?void 0:r.toLowerCase().indexOf("h265"))!==-1;return o.close(),{isH264DecodeSupported:t,isVp8DecodeSupported:e,isH265DecodeSupported:s}}catch(o){return{isH264DecodeSupported:!1,isVp8DecodeSupported:!1,isH265DecodeSupported:!1}}})};function tI(){return y(this,null,function*(){let[i,t]=yield Promise.all([Vm(),ig()]);return{encode:{h264:i.isH264EncodeSupported,vp8:i.isVp8EncodeSupported,h265:i.isH265EncodeSupported},decode:{h264:t.isH264DecodeSupported,vp8:t.isVp8DecodeSupported,h265:t.isH265DecodeSupported}}})}var Ld=ed(i=>y(void 0,null,function*(){let t=Date.now(),e=Bm(),r=kd(),o=Lm();if(Re.detail.isWebRTCSupported=e,Re.detail.isMediaDevicesSupported=r,Re.detail.isWebCodecsSupported=o,Re.detail.isScreenShareSupported=Ma(),Re.detail.isSmallStreamSupported=Ud(),i===37)return Object.assign(Re.detail,yield sI()),Re.detail.isBrowserSupported=o,Re.result=r&&o,Re.result||$.error(`${navigator.userAgent} ${sa(Re.detail,!1)}`),Kf(i),Q.addNumber({key:523800,value:Date.now()-t}),Re;if(Re.result&&Re.detail.isH264EncodeSupported&&Re.detail.isVp8EncodeSupported&&Re.detail.isH265EncodeSupported&&Re.detail.isH264DecodeSupported&&Re.detail.isVp8DecodeSupported&&Re.detail.isH265DecodeSupported)return Re;let s=km(),{encode:n,decode:a}=yield tI(),{h264:u,vp8:m}=n,{h264:p}=a,{h265:g}=n,{vp8:_,h265:A}=a;if(!u||!m){let C=yield Vm();$.warn(`detect encode again h264:${u} vp8:${m} result: ${JSON.stringify(C)}`),u=C.isH264EncodeSupported,m=C.isVp8EncodeSupported}if(u&&p&&pt&&Yr&&!Zs&&!wr){let{encode:C,decode:N}=yield oI();u=C,p=N}return Re.result=s&&e&&r&&(u||m)&&(p||_),Re.detail.isBrowserSupported=s,Re.detail.isWebRTCSupported=e,Re.detail.isH264EncodeSupported=u,Re.detail.isVp8EncodeSupported=m,Re.detail.isH265EncodeSupported=g,Re.detail.isH264DecodeSupported=p,Re.detail.isVp8DecodeSupported=_,Re.detail.isH265DecodeSupported=A,Re.result||$.error(`${navigator.userAgent} ${sa(Re.detail,!1)}`),Kf(),Q.addNumber({key:523800,value:Date.now()-t}),Re})),rI=function(){return Re.result},Ma=function(){return!!(navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)},iI=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype,Od=null;function oI(){return y(this,null,function*(){return Od||(Od=new Promise(i=>y(this,null,function*(){let t={encode:!1,decode:!1},e=()=>{};try{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),n=-1,a=-1;e=()=>{clearInterval(n),clearInterval(s),clearTimeout(a),m.close(),p.close(),u.getTracks().forEach(N=>N.stop())},a=setTimeout(()=>{e(),i(t)},2*1e3);let u=r.captureStream(),m=new RTCPeerConnection({}),p=new RTCPeerConnection({offerToReceiveAudio:!0,offerToReceiveVideo:!0});m.addEventListener("icecandidate",N=>p.addIceCandidate(N.candidate)),p.addEventListener("icecandidate",N=>m.addIceCandidate(N.candidate)),m.addTrack(u.getVideoTracks()[0],u);let g=yield m.createOffer();yield m.setLocalDescription(g),yield p.setRemoteDescription(g);let _=yield p.createAnswer(),A=Pm.default.parse(_.sdp),C=A.media[0].rtp.findIndex(N=>N.codec==="H264");A.media[0].rtp=[A.media[0].rtp[C]],A.media[0].fmtp=A.media[0].fmtp.filter(N=>N.payload===A.media[0].rtp[0].payload),A.media[0].rtcpFb&&(A.media[0].rtcpFb=A.media[0].rtcpFb.filter(N=>N.payload===A.media[0].rtp[0].payload)),_.sdp=Pm.default.write(A),yield p.setLocalDescription(_),yield m.setRemoteDescription(_),n=setInterval(()=>y(this,null,function*(){t.encode&&t.decode&&(e(),i(t));let[N,D]=yield Promise.all([m.getSenders()[0].getStats(),p.getReceivers()[0].getStats()]);t.encode||N.forEach(O=>{O.type==="outbound-rtp"&&O.mediaType===M.VIDEO&&O.bytesSent>0&&(t.encode=!0)}),t.decode||D.forEach(O=>{O.type==="inbound-rtp"&&O.mediaType===M.VIDEO&&O.bytesReceived>0&&(t.decode=!0)})}),100)}catch(r){e(),$.warn("detectH264Supported failed",r),i({encode:!0,decode:!0})}})).then(i=>(i.encode||(i.decode=!0),(!i.encode||!i.decode)&&$.warn(`detectH264Supported encode: ${i.encode} decode: ${i.decode} ${Dr}`),i)),Od)})}var xd=null;function sI(){return y(this,null,function*(){return xd||(xd=new Promise(i=>y(this,null,function*(){let t={isH264EncodeSupported:!1,isH264DecodeSupported:!1,isVp8EncodeSupported:!1,isVp8DecodeSupported:!1};if(!Lm()){i(t);return}let e=null,r=null,o=null,s=()=>{o&&clearTimeout(o),e=null,r=null};try{e=document.createElement("canvas"),r=e.getContext("2d"),e.width=320,e.height=240;let n=0,a=()=>{!r||!e||(r.fillStyle=`hsl(${n%360}, 50%, 50%)`,r.fillRect(0,0,e.width,e.height),r.fillStyle="white",r.font="20px Arial",r.fillText(`Frame ${n}`,10,30),n++)};o=setTimeout(()=>{s(),i(t)},5e3);let u=[{type:"h264",encodeConfig:{codec:"avc1.42E01E",avc:{format:"annexb"},width:320,height:240,bitrate:1e6},decodeConfig:{codec:"avc1.42E01E",avc:{format:"annexb"}}},{type:"vp8",encodeConfig:{codec:"vp8",width:320,height:240,bitrate:1e6},decodeConfig:{codec:"vp8"}}];(yield Promise.all(u.map(p=>y(this,null,function*(){let g={type:p.type,encodeSupported:!1,decodeSupported:!1},_;try{_=yield new Promise((A,C)=>y(this,null,function*(){try{let N=new VideoEncoder({output:O=>{A(O),g.encodeSupported=!0},error:C});N.configure(p.encodeConfig),a();let D=new VideoFrame(e,{timestamp:0});N.encode(D,{keyFrame:!0}),D.close(),yield N.flush(),N.close()}catch(N){C(N)}}))}catch(A){return $.warn(`${p.type} encoder error:`,A),g}try{yield new Promise((A,C)=>y(this,null,function*(){try{let N=new VideoDecoder({output:D=>{g.decodeSupported=!0,A(0),D.close()},error:C});N.configure(p.decodeConfig),N.decode(_),yield N.flush(),N.close()}catch(N){C(N)}}))}catch(A){$.warn(`${p.type} decoder error:`,A)}return g})))).forEach(p=>{p.type==="h264"?(t.isH264EncodeSupported=p.encodeSupported,t.isH264DecodeSupported=p.decodeSupported):p.type==="vp8"&&(t.isVp8EncodeSupported=p.encodeSupported,t.isVp8DecodeSupported=p.decodeSupported)}),s(),i(t)}catch(n){s(),$.warn("detectWebCodecsSupported failed:",n),i(t)}})),xd)})}var nI=(i,t,e)=>{location.protocol==="http:"&&!xr&&(i[t]=()=>{throw new de({code:q.INVALID_OPERATION,message:Yt.NOT_SUPPORTED_HTTP})})},aI=function(i){return i.type==="candidate-pair"&&i.nominated&&(i.state==="in-progress"||i.state==="succeeded")?!(Qe(i.selected)&&!i.selected):!1};function og(){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 sg(){return navigator.getUserMedia||navigator.mediaDevices&&navigator.mediaDevices.getUserMedia}function ng(){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 ag(){return"captureStream"in HTMLCanvasElement.prototype}function cg(){return Ks||ht||Zr&&Zr<63?!1:!!(km()&&ag())}function dg(){return!(Zr<74||Jo||Ot<11||od<46)}function Ud(){return cg()||dg()}var cI=function(){if(x(window.RTCRtpTransceiver)||!Vd()||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let i=null,t=!1;try{i=new RTCPeerConnection({sdpSemantics:Ml}),i.addTransceiver(M.AUDIO),t=!0}catch(e){}return i==null||i.close(),t};function dI(){return"RTCPeerConnection"in window&&"getReceivers"in window.RTCPeerConnection.prototype}function ug(){return"RTCPeerConnection"in window&&"getSenders"in window.RTCPeerConnection.prototype}function uI(){return"RTCPeerConnection"in window&&"getTransceivers"in window.RTCPeerConnection.prototype}function Vd(){return Ot===11&&!am?!1:"RTCPeerConnection"in window&&"addTransceiver"in window.RTCPeerConnection.prototype}var lI=!(!Vd()||Yr&&Zr<86);function mI(){return"RTCRtpTransceiver"in window&&"stop"in window.RTCRtpTransceiver.prototype}var Oa="RTCRtpSender"in window;function hI(){return Oa&&"replaceTrack"in window.RTCRtpSender.prototype}function pI(){return Oa&&"setParameters"in window.RTCRtpSender.prototype&&ug()}var fI="RTCRtpReceiver"in window&&"getSynchronizationSources"in window.RTCRtpReceiver.prototype,un=window.MediaStreamTrack&&"getSettings"in MediaStreamTrack.prototype,Fm=window.MediaStreamTrack&&"getCapabilities"in MediaStreamTrack.prototype,$m=typeof InputDeviceInfo!="undefined"&&"getCapabilities"in InputDeviceInfo.prototype,os=Oa&&"createEncodedStreams"in window.RTCRtpSender.prototype&&Id()>=86,lg="RTCRtpScriptTransform"in window,xa=Oa&&(os||lg),Bm=function(){return["RTCPeerConnection","webkitRTCPeerConnection","RTCIceGatherer"].filter(t=>t in window).length>0};function Fd(){let i={AudioDecoder:!1,AudioEncoder:!1,VideoDecoder:!1,VideoEncoder:!1,ImageDecoder:!1};return x(window.AudioDecoder)||(i.AudioDecoder=!0),x(window.AudioEncoder)||(i.AudioEncoder=!0),x(window.VideoDecoder)||(i.VideoDecoder=!0),x(window.VideoEncoder)||(i.VideoEncoder=!0),x(window.ImageDecoder)||(i.ImageDecoder=!0),i}function mg(){return"mediaSession"in navigator&&!x(navigator.mediaSession.setActionHandler)}function hg(){return!x(window.WebTransport)}function gI(){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 EI(){let i={browser:`${Qr.name}/${Qr.version}`,os:sn(),displayResolution:og(),isScreenShareSupported:Ma(),isWebRTCSupported:Bm(),isGetUserMediaSupported:sg(),isWebAudioSupported:ng(),isWebSocketsSupported:"WebSocket"in window&&window.WebSocket.CLOSING===2,isWebCodecSupported:Fd(),isMediaSessionSupported:mg(),isWebTransportSupported:hg()};return navigator.userAgent.includes("miniProgram")&&(i.browser=`mini/${i.browser}`),i}var pg="checkResult";function Kf(i=30){an.setItem(pg+i,{ua:navigator.userAgent,checkResult:Re})}function Hm(i){wi();let t=an.getItem(pg+i);t&&t.ua===navigator.userAgent&&t.checkResult&&_I(t.checkResult.detail,Re.detail)&&(Re=t.checkResult),Ld(i)}function _I(i,t){return ir(i)?Object.keys(t).every(e=>e in i):!1}function Mi(){return"requestVideoFrameCallback"in HTMLVideoElement.prototype}var TI="RTCRtpReceiver"in window&&"jitterBufferTarget"in window.RTCRtpReceiver.prototype;function eg(i){return{h264:1,h265:2,vp8:3,vp9:4,av1:5}[i]}var tg=!1;function Wm(){return y(this,null,function*(){var i;try{if(tg||!((i=navigator==null?void 0:navigator.mediaCapabilities)!=null&&i.encodingInfo))return;let t=Yo(),e=um();if(t===0||e===0)return;tg=!0;let r=["H264","VP8","VP9","AV1","H265"],[o,s]=yield Promise.all([fg(r),gg(r)]);o&&Object.keys(o).forEach(n=>{let a=eg(n.toLowerCase());Q.addEnum({key:513707,value:+`${a}${+o[n].supported}${+o[n].powerEfficient}${t}${e}`,useUV:!1})}),s&&Object.keys(s).forEach(n=>{let a=eg(n.toLowerCase());Q.addEnum({key:514713,value:+`${a}${+s[n].supported}${+s[n].powerEfficient}${t}${e}`,useUV:!1})})}catch(t){$.info("detectVideoCodecCapabilities failed",t)}})}function fg(i,t=1920,e=1080,r=30,o=3e3){return y(this,null,function*(){let s={};try{for(let n of i){let a=yield navigator.mediaCapabilities.encodingInfo({type:"webrtc",video:{contentType:`video/${n}`,width:t,height:e,bitrate:o,framerate:r}});s[n]=a}}catch(n){}return s})}function gg(i,t=1920,e=1080,r=30,o=3e3){return y(this,null,function*(){let s={};try{for(let n of i){let a=yield navigator.mediaCapabilities.decodingInfo({type:"webrtc",video:{contentType:`video/${n}`,width:t,height:e,bitrate:o,framerate:r}});s[n]=a}}catch(n){}return s})}var _g=pi(bi(),1);var Eg=Symbol("instance"),bR=Symbol("abortCtrl"),$d=Symbol("cacheResult"),Pa=class{constructor(t,e,r){this.oldState=t,this.newState=e,this.action=r,this.aborted=!1}abort(t){this.aborted=!0,Ua.call(t,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},ka=class extends Error{constructor(t,e,r){super(e),this.state=t,this.message=e,this.cause=r}};function II(i){return typeof i=="object"&&i&&"then"in i}var La=new Map;function Ze(i,t,e={}){return(r,o,s)=>{let n=e.action||o;if(!e.context){let u=La.get(r)||[];La.has(r)||La.set(r,u),u.push({from:i,to:t,action:n})}let a=s.value;s.value=function(...u){let m=this;if(e.context&&(m=le.get(typeof e.context=="function"?e.context.call(this,...u):e.context)),m.state===t)return e.sync?m[$d]:Promise.resolve(m[$d]);m.state instanceof Pa&&m.state.action==e.abortAction&&m.state.abort(m);let p=null;Array.isArray(i)?i.length==0?m.state instanceof Pa&&m.state.abort(m):(typeof m.state!="string"||!i.includes(m.state))&&(p=new ka(m._state,`${m.name} ${n} to ${t} failed: current state ${m._state} not from ${i.join("|")}`)):i!==m.state&&(p=new ka(m._state,`${m.name} ${n} to ${t} failed: current state ${m._state} not from ${i}`));let g=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(p)return g(p);let _=m.state,A=new Pa(_,t,n);Ua.call(m,A);let C=D=>{var O;return m[$d]=D,A.aborted||(Ua.call(m,t),(O=e.success)===null||O===void 0||O.call(this,m[$d])),D},N=D=>(Ua.call(m,_,D),g(D));try{let D=a.apply(this,u);return II(D)?D.then(C).catch(N):e.sync?C(D):Promise.resolve(C(D))}catch(D){return N(new ka(m._state,`${m.name} ${n} from ${i} to ${t} failed: ${D}`,D instanceof Error?D:new Error(String(D))))}}}}var SI=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 Ua(i,t){let e=this._state;this._state=i;let r=i.toString();i&&this.emit(r,e),this.emit(le.STATECHANGED,i,e,t),this.updateDevTools({value:i,old:e,err:t instanceof Error?t.message:String(t)})}var le=class i extends _g.default{constructor(t,e,r){super(),this.name=t,this.groupName=e,this._state=i.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[Eg];o?this.name=o.name+"-"+o.count++:r[Eg]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let t=Object.getPrototypeOf(this),e=La.get(t)||[],r=new Set,o=[],s=[],n=new Set,a=Object.getPrototypeOf(t);La.has(a)&&(a.stateDiagram.forEach(m=>r.add(m)),a.allStates.forEach(m=>n.add(m))),e.forEach(({from:m,to:p,action:g})=>{typeof m=="string"?o.push({from:m,to:p,action:g}):m.length?m.forEach(_=>{o.push({from:_,to:p,action:g})}):s.push({to:p,action:g})}),o.forEach(({from:m,to:p,action:g})=>{n.add(m),n.add(p),n.add(g+"ing"),r.add(`${m} --> ${g}ing : ${g}`),r.add(`${g}ing --> ${p} : ${g} \u{1F7E2}`),r.add(`${g}ing --> ${m} : ${g} \u{1F534}`)}),s.forEach(({to:m,action:p})=>{r.add(`${p}ing --> ${m} : ${p} \u{1F7E2}`),n.forEach(g=>{g!==m&&r.add(`${g} --> ${p}ing : ${p}`)})});let u=[...r];return Object.defineProperties(t,{stateDiagram:{value:u},allStates:{value:n}}),u}static get(t){let e;return typeof t=="string"?(e=i.instances.get(t),e||i.instances.set(t,e=new i(t,void 0,Object.create(i.prototype)))):(e=i.instances2.get(t),e||i.instances2.set(t,e=new i(t.constructor.name,void 0,Object.create(i.prototype)))),e}static getState(t){var e;return(e=i.get(t))===null||e===void 0?void 0:e.state}updateDevTools(t={}){SI(i.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(t){Ua.call(this,t)}};le.STATECHANGED="stateChanged";le.UPDATEAFSM="updateAFSM";le.INIT="[*]";le.ON="on";le.OFF="off";le.instances=new Map;le.instances2=new WeakMap;var jm=typeof window!="undefined",Tg=jm&&window.requestIdleCallback||function(i){let t=Date.now();return setTimeout(()=>{i({didTimeout:!1,timeRemaining(){return Math.max(0,50-(Date.now()-t))}})},1e3)},yI=jm&&window.cancelIdleCallback||function(i){clearTimeout(i)},Ig=jm&&(window.cancelAnimationFrame||window.mozCancelAnimationFrame),It=class It{static generateTaskID(){return this.currentTaskID++}static run(t,e,r){r!=null&&r.fps&&(r.delay=r.delay||Number((1e3/r.fps).toFixed(2))),t==="interval"?r=X({delay:2e3,count:0,backgroundTask:!0},r):t==="ric"?r=X({delay:1e4,count:0},r):t==="raf"?r=X({fps:60,delay:16.6,count:0,backgroundTask:!0},r):r=X({delay:2e3,count:0,backgroundTask:!0},r);let o=ge(X({taskID:this.generateTaskID(),loopCount:0,intervalID:null,timeoutID:null,rafID:null,ricID:null,taskName:t,callback:e},r),{delay:r.delay});return this.taskMap.set(o.taskID,o),this[t](o),o.taskID}static interval(t){let e=()=>{t.callback(),t.loopCount+=1,It.isBreakLoop(t)};return t.intervalID=setInterval(e,t.delay)}static intervalInWorker(t){It.sharedWorker||(It.sharedWorker=new Worker(URL.createObjectURL(new Blob([`
|
|
12
12
|
const timers = new Map();
|
|
13
13
|
self.onmessage = function(e) {
|
|
14
14
|
const { taskId, delay, type } = e.data;
|
|
@@ -21,15 +21,15 @@ Refer to: ${Xf("en",a)}
|
|
|
21
21
|
timers.delete(taskId);
|
|
22
22
|
}
|
|
23
23
|
};
|
|
24
|
-
`],{type:"application/javascript"}))),
|
|
25
|
-
${r.stack}`));let s=to.enable?Ei(o,2002,Number(this._configs.sdkAppId)):JSON.stringify(o);this.sendRequest(gi(this._configs.sdkAppId,Qi.LOG),s)}sendRequest(t,e){setTimeout(()=>Ti({url:t,body:e,priority:"low"}).catch(()=>{}),2e3)}},Je=new Xm;var es=new WeakMap;function ts({settings:i={retries:5,timeout:2e3},onError:t,onRetrying:e,onRetryFailed:r}){return function(o,s,n){let a=Ki({retryFunction:n.value,settings:i,onError({error:u,retry:m,reject:p,retryFuncArgs:g}){var T;t?t.call(this,u,()=>{var A;(A=es.get(o))!=null&&A.has(s)?m():p(u)},p,g):(T=es.get(o))!=null&&T.has(s)?m():p(u)},onRetrying(u,m){var p;Zi(e)&&e.call(this,u,m),(p=es.get(o))!=null&&p.has(s)&&(es.get(o).get(s).stopRetry=m)},onRetryFailed:r});return n.value=function(...u){let m=es.get(o);return m?m.set(s,{args:u}):es.set(o,new Map([[s,{args:u}]])),a.apply(this,u).finally(()=>{var p;return(p=es.get(o))==null?void 0:p.delete(s)})},n}}var kr=class extends le{constructor(e,r){super(e.id,`${r}-player`);this.options=e;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=Lo,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}get isPaused(){var e;return this._state==="PAUSED"||((e=this.element)==null?void 0:e.paused)===!0}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 y(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=Be({key:$e.PLAY_FAILED,data:{media:this.kind,error:e}});if(this._log.warn(e),r.includes("NotAllowedError"))throw this.isInAutoPlayFailedState=!0,new de({code:q.PLAY_NOT_ALLOWED,message:r})}})}stop(e=0){this.isStopped||(this._isElementPlayingFired=!1,this.unbindEvents(),e>0&&!mr?this._delayDestroyTimeoutId||(this._log.info(`destroy element after 3 * ${e}`),this._delayDestroyTimeoutId=setTimeout(()=>this.destroyElement(),3*e)):this.destroyElement(),this.handleStopped(M.ENDED),this._interval>0&&dt.clearTask(this._interval))}destroyElement(){this.element&&(this._log.debug("destroy element"),this.element.remove(),this.element.src="",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():cm?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 At(this.element,this.element).add(M.PLAYING,e).add(M.ENDED,e).add(M.PAUSE,e).add(M.ERROR,e).add(M.LOADEDDATA,e).add(M.LOADEDMETADATA,e)}}bindTrackEvents(e=this.track){if(e){let r=this.handleTrackEvent.bind(this);Pr==null||Pr.create(e,e).add(M.ENDED,r).add(M.MUTE,r).add(M.UNMUTE,r),e.readyState===M.ENDED&&this.handleTrackEvent({type:M.ENDED}),e.muted&&this.handleTrackEvent({type:M.MUTE})}}bindAutoPlayEvent(){V.on(F.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}unbindTrackEvents(e=this.track){e&&ut(e)}unbindEvents(){this.element&&ut(this.element),this.unbindTrackEvents(),V.off(F.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}handleElementEvent(e){switch(e.type){case M.PLAYING:this.isInAutoPlayFailedState=!1,this._isElementPlayingFired=!0,this._log.info(`${this.kind} player is playing`),this.handlePlaying(M.PLAYING),this._interval&&(dt.clearTask(this._interval),this._interval=-1);break;case M.ENDED:this._log.info(`${this.kind} player is ended`),this.handleStopped(M.ENDED);break;case M.PAUSE:this._log.info(`${this.kind} player is paused`),this.handlePaused(M.PAUSE),ht&&(this._interval=dt.run("timeout",()=>{this.element&&this._state==="PAUSED"&&this.resume()},{delay:3e3}));break;case M.ERROR:if(this.element&&this.element.error){this.handlePaused(M.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}`),Je.uploadEvent({log:`stat-${this.kind}-${hi.PLAYER_ERROR}-${o}-${navigator.userAgent}`,error:this.element.error}),om||Ia?this.emit(qe.ERROR,this.element.error):this.replayByRecreateMediaStream(this.element.error)}break;case M.LOADEDDATA:this.kind===M.VIDEO&&this.emit(qe.LOADED_DATA);break;case M.LOADEDMETADATA:this.kind===M.VIDEO&&this.emit(qe.LOADED_META_DATA);break}}replayByRecreateMediaStream(e){if(!this._isReplayByRecreateMediaStreamCalled)return this._isReplayByRecreateMediaStreamCalled=!0,this.doReplayByRecreateMediaStream(1e3).then(()=>{this._log.warn("replayByRecreateMediaStream success"),Je.uploadEvent({log:"stat-replayByRecreateMediaStream-success"}),X.addSuccessEvent({key:this.kind===M.AUDIO?506700:516700})}).catch(()=>{var r;this._log.error("replayByRecreateMediaStream failed"),Je.uploadEvent({log:"stat-replayByRecreateMediaStream-failed"}),X.addFailedEvent({key:this.kind===M.AUDIO?506700:516700,error:(r=this.element)==null?void 0:r.error}),this.emit(qe.ERROR,e)})}doReplayByRecreateMediaStream(e){return this._log.warn(`delay ${e}ms to recreate mediaStream`),new Promise((r,o)=>{la(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,n,a;this._log.warn(`element onerror ${(n=(s=this.element)==null?void 0:s.error)==null?void 0:n.code} fired after recreated mediaStream`),o((a=this.element)==null?void 0:a.error)}),la(5e3).then(()=>{var s,n;(!this.isPlaying||(s=this.element)!=null&&s.error)&&o((n=this.element)==null?void 0:n.error),r()})})}).finally(()=>{this.element&&(this.element.onerror=null)})}handleTrackEvent(e){return y(this,null,function*(){switch(e.type){case M.ENDED:this.handleStopped(M.ENDED);break;case M.MUTE:this.handlePaused(M.MUTE);break;case M.UNMUTE:this.mode>0?this.handlePlaying(this.mode.toString()):this.element&&(this.element.paused&&(this._log.warn("track unmuted and element is paused, resume"),yield this.resume()),!this.element.paused&&this._isElementPlayingFired&&this.handlePlaying(M.UNMUTE));break}})}handlePlaying(e){var r;return this._log.debug("handlePlaying",e),(r=this._playSuccessResolve)==null||r.call(this,e),e}handlePaused(e){return this._log.debug("handlePaused",e),e}handleStopped(e){return this._log.debug("handleStopped",e),e}getElement(){return this.element}};l(kr,"PlayerEvent",qe),K([ts({settings:{retries:2,timeout:0},onError(e,r,o,s){s[0]=(s[0]||1e3)+1e3,r()}})],kr.prototype,"doReplayByRecreateMediaStream",1),K([et([],"PLAYING",{sync:!0,success(e){this.emit(qe.PLAYER_STATE_CHANGED,{type:this.kind,state:"PLAYING",reason:e})}})],kr.prototype,"handlePlaying",1),K([et("PLAYING","PAUSED",{ignoreError:!0,sync:!0,success(e){this.emit(qe.PLAYER_STATE_CHANGED,{type:this.kind,state:"PAUSED",reason:e})}})],kr.prototype,"handlePaused",1),K([et([],"STOPPED",{sync:!0,success(e){this.emit(qe.PLAYER_STATE_CHANGED,{type:this.kind,state:"STOPPED",reason:e})}})],kr.prototype,"handleStopped",1);var Di="trtc_autoplay",Qm=`${Di}_mask`,dn=`${Di}_wrapper`,Cg=`${Di}_header`,Ym=`${Di}_content`,qd=`${Di}_action_wrapper`,Zm=`${Di}_question`,Km=`${Di}_collapse`,zd=`${Di}_action_confirm`,Ng=`${Di}_detail`,Dg="#2473E8",th="dialog",MI=`${th}-show`,OI=`${th}-1`,xI=`${th}-2`,wg=!1,rh=()=>!!document.querySelector(`.${dn}`),Og=`${Gr}/${Rr()?"zh-cn":"en"}/tutorial-21-advanced-auto-play-policy.html`,Mg=`<br><a href='${Og}' target='_blank'>${Rr()?"\u5176\u4ED6\u65B9\u6848\uFF1F":"Any other solution?"}</a>`,PI=`${Rr()?`\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${Mg}`:`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. ${Mg}`}`,eh=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(Rr()||(this.content='Media playback failed. Click the "Resume" to resume playback.'),!wg){let t=document.createElement("style");t.innerHTML=`.${Qm}{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;}.${Qm} div:not(.${qd}){display:block !important;}.${dn}{padding:14px;background:#fff;border-radius:3px;box-shadow:0px 3px 15px #434343;border:1px solid #d1cfcf;max-width:500px;}.${dn} a{color:${Dg};}.${Cg}{overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:600;}.${Ym}{margin:8px 0;}.${qd}{width:100%;display:flex !important;align-items:center;justify-content:right;float:right;}.${Km}{margin-right:auto;cursor:pointer}.${Zm}{height:100%;line-height:16px;cursor:pointer;}.${zd}{margin-left:8px;color:#fff;background:${Dg};padding:4px 12px;outline:none;border:1px solid;border-radius:3px;font-weight:bold;}.${zd}:hover{opacity:0.9;}.${Km},.${zd},.${Ym},.${Zm}{font-size:14px;}@media screen and (max-width:750px){.${dn}{width:80vw;}}`,document.head.appendChild(t),wg=!0}this.addDiaLog()}createDiaLog(){let t=document.createElement("template");t.innerHTML=`<div class="${Qm}"><div class='${dn}'><div class='${Cg}'>${location.host}</div><div class='${Ym}'>${this.content}</div><div class='${Ng}' style="visibility:hidden;width:100%;height:0;font-size:12px;color:gray;">${PI}</div><div class='${qd}'></div></div></div>`.trim();let e=document.createElement("button");e.className=zd,e.innerText=Rr()?"\u6062\u590D\u64AD\u653E":"Resume",e.onclick=this.onConfirm.bind(this);let r=document.createElement("div");r.className=Zm,r.innerHTML=`<?xml version="1.0" encoding="UTF-8"?>
|
|
24
|
+
`],{type:"application/javascript"}))),It.sharedWorker.onmessage=e=>{var r;if(e.data.type==="tick"){let o=It.workerTasks.get(e.data.taskId);o&&(It.isBreakLoop(o)?((r=It.sharedWorker)==null||r.postMessage({type:"stop",taskId:o.taskID}),It.workerTasks.delete(o.taskID)):(o.callback(),o.loopCount+=1))}}),It.workerTasks.set(t.taskID,t),It.sharedWorker.postMessage({taskId:t.taskID,delay:t.delay,type:"start"})}static timeout(t){let e=()=>{if(t.callback(),t.loopCount+=1,!It.isBreakLoop(t))return t.timeoutID=setTimeout(e,t.delay)};return t.timeoutID=setTimeout(e,t.delay)}static ric(t){let e=_e(),r,o=()=>{if(r=_e()-e,r>=t.delay&&(e=_e()-Math.floor(r%t.delay),t.callback(),t.loopCount+=1),!It.isBreakLoop(t))return t.ricID=Tg(o,{timeout:t.delay})};return t.ricID=Tg(o,{timeout:t.delay})}static raf(t){let e=_e(),r,o=()=>{if(document.hidden&&t.backgroundTask)return r=_e()-e,e=_e(),t.callback(),t.loopCount+=1,It.isBreakLoop(t)?void 0:t.timeoutID=setTimeout(o,t.delay-Math.floor(r%t.delay));if(r=_e()-e,r>=t.delay&&(e=_e()-Math.floor(r%t.delay),t.callback(),t.loopCount+=1),!It.isBreakLoop(t))return t.rafID=requestAnimationFrame(o)};if(t.rafID=requestAnimationFrame(o),t.backgroundTask){let s=()=>{if(document.hidden){let n=_e()-e;n>=t.delay?o():t.timeoutID=setTimeout(o,t.delay-n)}};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:n}=this.taskMap.get(t);return e&&clearInterval(e),r&&clearTimeout(r),o&&Ig&&Ig(o),s&&yI(s),n&&document.removeEventListener("visibilitychange",n),this.taskMap.delete(t),!0}static isBreakLoop(t){return this.hasTask(t.taskID)?t.count!==0&&t.loopCount>=t.count?(this.clearTask(t.taskID),!0):!1:!0}};l(It,"taskMap",new Map),l(It,"currentTaskID",1),l(It,"sharedWorker",null),l(It,"workerTasks",new Map);var Gm=It,dt=Gm;var PR={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:M.SEI_MESSAGE,ERROR:"error"};var qe={LOADED_DATA:M.LOADEDDATA,LOADED_META_DATA:M.LOADEDMETADATA,MEDIA_TRACK_CHANGED:"media-track-changed",PLAYER_STATE_CHANGED:"player-state-changed",ERROR:"error",RESIZE:M.RESIZE,TIME_UPDATE:"time-update"};var Lr={};hi(Lr,{create:()=>bt,remove:()=>ut});var Va=new WeakMap;function bt(i,t){Va.has(i)||Va.set(i,[]);let e=Va.get(i),o={add:(s,n)=>("addEventListener"in t?(e.push(t.removeEventListener.bind(t,s,n)),t.addEventListener(s,n)):(e.push(t.off.bind(t,s,n)),t.on(s,n)),o)};return o}function ut(i){let t=Va.get(i);t&&(t.forEach(e=>e()),Va.delete(i))}var qm=class{constructor(){l(this,"_roomIdMap",new Map);l(this,"_configs");typeof registerProcessor=="undefined"&&(this._configs={sdkAppId:"",userId:"",version:at,env:gi.QCLOUD,browserVersion:Qr.name+Qr.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){xr||!$.isAbleToUpload||this._configs.env===gi.QCLOUD&&this.uploadEventToKibana(ge(X({},t),{result:"success"}))}logFailedEvent(t){if(xr||!$.isAbleToUpload)return;let{eventType:e,code:r,error:o,userId:s}=t,n={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)||q.UNKNOWN};this._configs.env===gi.QCLOUD&&this.uploadEventToKibana(ge(X({},n),{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:Vc(),sdkAppId:this._configs.sdkAppId,userId:e||this._configs.userId,version:at,log:t};r&&(o.errorInfo=r.message,r.stack&&(o.errorInfo+=`
|
|
25
|
+
${r.stack}`));let s=ao.enable?Ii(o,2002,Number(this._configs.sdkAppId)):JSON.stringify(o);this.sendRequest(Ti(this._configs.sdkAppId,ro.LOG),s)}sendRequest(t,e){setTimeout(()=>Si({url:t,body:e,priority:"low"}).catch(()=>{}),2e3)}},He=new qm;var ss=new WeakMap;function ns({settings:i={retries:5,timeout:2e3},onError:t,onRetrying:e,onRetryFailed:r}){return function(o,s,n){let a=so({retryFunction:n.value,settings:i,onError({error:u,retry:m,reject:p,retryFuncArgs:g}){var _;t?t.call(this,u,()=>{var A;(A=ss.get(o))!=null&&A.has(s)?m():p(u)},p,g):(_=ss.get(o))!=null&&_.has(s)?m():p(u)},onRetrying(u,m){var p;oo(e)&&e.call(this,u,m),(p=ss.get(o))!=null&&p.has(s)&&(ss.get(o).get(s).stopRetry=m)},onRetryFailed:r});return n.value=function(...u){let m=ss.get(o);return m?m.set(s,{args:u}):ss.set(o,new Map([[s,{args:u}]])),a.apply(this,u).finally(()=>{var p;return(p=ss.get(o))==null?void 0:p.delete(s)})},n}}var Ur=class extends le{constructor(e,r){super(e.id,`${r}-player`);this.options=e;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=Bo,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}get isPaused(){var e;return this._state==="PAUSED"||((e=this.element)==null?void 0:e.paused)===!0}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 y(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=$e({key:Fe.PLAY_FAILED,data:{media:this.kind,error:e}});if(this._log.warn(e),r.includes("NotAllowedError"))throw this.isInAutoPlayFailedState=!0,new de({code:q.PLAY_NOT_ALLOWED,message:r})}})}stop(e=0){this.isStopped||(this._isElementPlayingFired=!1,this.unbindEvents(),e>0&&!hr?this._delayDestroyTimeoutId||(this._log.info(`destroy element after 3 * ${e}`),this._delayDestroyTimeoutId=setTimeout(()=>this.destroyElement(),3*e)):this.destroyElement(),this.handleStopped(M.ENDED),this._interval>0&&dt.clearTask(this._interval))}destroyElement(){this.element&&(this._log.debug("destroy element"),this.element.remove(),this.element.src="",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():sm?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 bt(this.element,this.element).add(M.PLAYING,e).add(M.ENDED,e).add(M.PAUSE,e).add(M.ERROR,e).add(M.LOADEDDATA,e).add(M.LOADEDMETADATA,e)}}bindTrackEvents(e=this.track){if(e){let r=this.handleTrackEvent.bind(this);Lr==null||Lr.create(e,e).add(M.ENDED,r).add(M.MUTE,r).add(M.UNMUTE,r),e.readyState===M.ENDED&&this.handleTrackEvent({type:M.ENDED}),e.muted&&this.handleTrackEvent({type:M.MUTE})}}bindAutoPlayEvent(){V.on(F.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}unbindTrackEvents(e=this.track){e&&ut(e)}unbindEvents(){this.element&&ut(this.element),this.unbindTrackEvents(),V.off(F.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}handleElementEvent(e){switch(e.type){case M.PLAYING:this.isInAutoPlayFailedState=!1,this._isElementPlayingFired=!0,this._log.info(`${this.kind} player is playing`),this.handlePlaying(M.PLAYING),this._interval&&(dt.clearTask(this._interval),this._interval=-1);break;case M.ENDED:this._log.info(`${this.kind} player is ended`),this.handleStopped(M.ENDED);break;case M.PAUSE:this._log.info(`${this.kind} player is paused`),this.handlePaused(M.PAUSE),ht&&(this._interval=dt.run("timeout",()=>{this.element&&this._state==="PAUSED"&&this.resume()},{delay:3e3}));break;case M.ERROR:if(this.element&&this.element.error){this.handlePaused(M.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}`),He.uploadEvent({log:`stat-${this.kind}-${lr.PLAYER_ERROR}-${o}-${navigator.userAgent}`,error:this.element.error}),tm||ga?this.emit(qe.ERROR,this.element.error):this.replayByRecreateMediaStream(this.element.error)}break;case M.LOADEDDATA:this.kind===M.VIDEO&&this.emit(qe.LOADED_DATA);break;case M.LOADEDMETADATA:this.kind===M.VIDEO&&this.emit(qe.LOADED_META_DATA);break}}replayByRecreateMediaStream(e){if(!this._isReplayByRecreateMediaStreamCalled)return this._isReplayByRecreateMediaStreamCalled=!0,this.doReplayByRecreateMediaStream(1e3).then(()=>{this._log.warn("replayByRecreateMediaStream success"),He.uploadEvent({log:"stat-replayByRecreateMediaStream-success"}),Q.addSuccessEvent({key:this.kind===M.AUDIO?506700:516700})}).catch(()=>{var r;this._log.error("replayByRecreateMediaStream failed"),He.uploadEvent({log:"stat-replayByRecreateMediaStream-failed"}),Q.addFailedEvent({key:this.kind===M.AUDIO?506700:516700,error:(r=this.element)==null?void 0:r.error}),this.emit(qe.ERROR,e)})}doReplayByRecreateMediaStream(e){return this._log.warn(`delay ${e}ms to recreate mediaStream`),new Promise((r,o)=>{aa(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,n,a;this._log.warn(`element onerror ${(n=(s=this.element)==null?void 0:s.error)==null?void 0:n.code} fired after recreated mediaStream`),o((a=this.element)==null?void 0:a.error)}),aa(5e3).then(()=>{var s,n;(!this.isPlaying||(s=this.element)!=null&&s.error)&&o((n=this.element)==null?void 0:n.error),r()})})}).finally(()=>{this.element&&(this.element.onerror=null)})}handleTrackEvent(e){return y(this,null,function*(){switch(e.type){case M.ENDED:this.handleStopped(M.ENDED);break;case M.MUTE:this.handlePaused(M.MUTE);break;case M.UNMUTE:this.mode>0?this.handlePlaying(this.mode.toString()):this.element&&(this.element.paused&&(this._log.warn("track unmuted and element is paused, resume"),yield this.resume()),!this.element.paused&&this._isElementPlayingFired&&this.handlePlaying(M.UNMUTE));break}})}handlePlaying(e){var r;return this._log.debug("handlePlaying",e),(r=this._playSuccessResolve)==null||r.call(this,e),e}handlePaused(e){return this._log.debug("handlePaused",e),e}handleStopped(e){return this._log.debug("handleStopped",e),e}getElement(){return this.element}};l(Ur,"PlayerEvent",qe),ee([ns({settings:{retries:2,timeout:0},onError(e,r,o,s){s[0]=(s[0]||1e3)+1e3,r()}})],Ur.prototype,"doReplayByRecreateMediaStream",1),ee([Ze([],"PLAYING",{sync:!0,success(e){this.emit(qe.PLAYER_STATE_CHANGED,{type:this.kind,state:"PLAYING",reason:e})}})],Ur.prototype,"handlePlaying",1),ee([Ze("PLAYING","PAUSED",{ignoreError:!0,sync:!0,success(e){this.emit(qe.PLAYER_STATE_CHANGED,{type:this.kind,state:"PAUSED",reason:e})}})],Ur.prototype,"handlePaused",1),ee([Ze([],"STOPPED",{sync:!0,success(e){this.emit(qe.PLAYER_STATE_CHANGED,{type:this.kind,state:"STOPPED",reason:e})}})],Ur.prototype,"handleStopped",1);var Oi="trtc_autoplay",zm=`${Oi}_mask`,ln=`${Oi}_wrapper`,Sg=`${Oi}_header`,Jm=`${Oi}_content`,Bd=`${Oi}_action_wrapper`,Xm=`${Oi}_question`,Qm=`${Oi}_collapse`,Hd=`${Oi}_action_confirm`,yg=`${Oi}_detail`,Ag="#2473E8",Zm="dialog",bI=`${Zm}-show`,RI=`${Zm}-1`,vI=`${Zm}-2`,bg=!1,Km=()=>!!document.querySelector(`.${ln}`),vg=`${qr}/${Cr()?"zh-cn":"en"}/tutorial-21-advanced-auto-play-policy.html`,Rg=`<br><a href='${vg}' target='_blank'>${Cr()?"\u5176\u4ED6\u65B9\u6848\uFF1F":"Any other solution?"}</a>`,CI=`${Cr()?`\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${Rg}`:`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. ${Rg}`}`,Ym=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(Cr()||(this.content='Media playback failed. Click the "Resume" to resume playback.'),!bg){let t=document.createElement("style");t.innerHTML=`.${zm}{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;}.${zm} div:not(.${Bd}){display:block !important;}.${ln}{padding:14px;background:#fff;border-radius:3px;box-shadow:0px 3px 15px #434343;border:1px solid #d1cfcf;max-width:500px;}.${ln} a{color:${Ag};}.${Sg}{overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:600;}.${Jm}{margin:8px 0;}.${Bd}{width:100%;display:flex !important;align-items:center;justify-content:right;float:right;}.${Qm}{margin-right:auto;cursor:pointer}.${Xm}{height:100%;line-height:16px;cursor:pointer;}.${Hd}{margin-left:8px;color:#fff;background:${Ag};padding:4px 12px;outline:none;border:1px solid;border-radius:3px;font-weight:bold;}.${Hd}:hover{opacity:0.9;}.${Qm},.${Hd},.${Jm},.${Xm}{font-size:14px;}@media screen and (max-width:750px){.${ln}{width:80vw;}}`,document.head.appendChild(t),bg=!0}this.addDiaLog()}createDiaLog(){let t=document.createElement("template");t.innerHTML=`<div class="${zm}"><div class='${ln}'><div class='${Sg}'>${location.host}</div><div class='${Jm}'>${this.content}</div><div class='${yg}' style="visibility:hidden;width:100%;height:0;font-size:12px;color:gray;">${CI}</div><div class='${Bd}'></div></div></div>`.trim();let e=document.createElement("button");e.className=Hd,e.innerText=Cr()?"\u6062\u590D\u64AD\u653E":"Resume",e.onclick=this.onConfirm.bind(this);let r=document.createElement("div");r.className=Xm,r.innerHTML=`<?xml version="1.0" encoding="UTF-8"?>
|
|
26
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">
|
|
27
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"/>
|
|
28
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"/>
|
|
29
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"/>
|
|
30
30
|
</svg>
|
|
31
|
-
`,r.onclick=this.onQuestionClick.bind(this);let o=document.createElement("div");o.className=Km,o.innerText=`${Rr()?"\u8BE6\u60C5 >":"Detail >"}`,o.onclick=this.onCollapseClick.bind(this);let s=t.content.firstChild,n=s.querySelector(`.${qd}`);return n.appendChild(o),n.appendChild(r),n.appendChild(e),s}addDiaLog(){rh()||(this._dialogNode=this.createDiaLog(),document.body.appendChild(this._dialogNode),this._dialogNode.onclick=this.onConfirm.bind(this),this._dialogNode.querySelector(`.${dn}`).onclick=t=>t.stopPropagation(),this._bodyPosition=document.body.style.position,document.body.style.position="fixed",$.info("show autoplay dialog"),Je.uploadEvent({log:MI}))}deleteDiaLog(){this._dialogNode&&(document.body.removeChild(this._dialogNode),document.body.style.position=this._bodyPosition,this._dialogNode=null)}onConfirm(){$.warn("confirm clicked, try resume stream"),V.emit(F.AUTOPLAY_DIALOG_CLICK_CONFIRM),this.deleteDiaLog()}onCollapseClick(){let t=this._dialogNode.querySelector(`.${Ng}`);t.style.visibility=`${this._showDetail?"hidden":"visible"}`,t.style.height=`${this._showDetail?0:"fit-content"}`,this._showDetail=!this._showDetail,this._isCollapseClicked||Je.uploadEvent({log:OI}),this._isCollapseClicked=!0}onQuestionClick(){window.open(Og,"_blank"),this._isQuestionClicked||Je.uploadEvent({log:xI}),this._isQuestionClicked=!0}},Jd=eh;var qt=class extends kr{constructor(e){super(e,M.VIDEO);l(this,"stat",{});l(this,"_calculateTimeout",-1);l(this,"viewMirror",!1);l(this,"objectFit");l(this,"container");l(this,"canvas");l(this,"_preSize",{width:0,height:0});this.mode=e.canvas?1:0,this.container=e.container,this.canvas=e.canvas,x(e.viewMirror)||(this.viewMirror=e.viewMirror),x(e.objectFit)||(this.objectFit=e.objectFit),this.initializeElement()}get isPlaying(){var e;return this._state!=="PLAYING"||this.element&&this.element.paused?!1:((e=this.track)==null?void 0:e.readyState)==="live"&&!this.track.muted}initializeElement(){var r;let e=document.createElement(M.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.elementToRender&&((r=this.container)==null||r.appendChild(this.elementToRender))}bindElementEvents(){let e=super.bindElementEvents();this.handleElementEvent=this.handleElementEvent.bind(this),e&&e.add(M.ENTER_PICTURE_IN_PICTURE,this.handleElementEvent).add(M.LEAVE_PICTURE_IN_PICTURE,this.handleElementEvent).add(M.RESIZE,this.handleElementEvent)}handleTrackEvent(e){var r;return e.type===M.MUTE&&((r=this.stat)!=null&&r.fps)&&(this.stat.fps=0),super.handleTrackEvent(e)}handleElementEvent(e){var o,s,n,a,u,m,p,g;if(this.mode===2)return;super.handleElementEvent(e);let r=e.type;if(r===M.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.container&&this.container!==document.getElementById(this.container.id)&&(this._pausedRetryCount=Lo,this._log.info(`view container ${(s=this.container)==null?void 0:s.id} is recreated`)),this._pausedRetryCount>0&&!rh()&&(this._log.info(`[${Lo-this._pausedRetryCount+1}/${Lo}] ${this.kind} player auto resume when paused`),this.resume(),this._pausedRetryCount--),this.stat.fps&&(this.stat.fps=0)),this.viewMirror&&this.element){let T=this.element.style.transform;r===M.ENTER_PICTURE_IN_PICTURE?this.element.style.transform=T.replace("scaleX(-1)",""):r===M.LEAVE_PICTURE_IN_PICTURE&&!T.includes("scaleX")&&(this.element.style.transform=`${T} scaleX(-1)`)}r===M.RESIZE&&(this._preSize.height!==((n=this.element)==null?void 0:n.videoHeight)||this._preSize.width!==((a=this.element)==null?void 0:a.videoWidth))&&(this._log.info(`video size changed to ${(u=this.element)==null?void 0:u.videoWidth}x${(m=this.element)==null?void 0:m.videoHeight}`),this._preSize.height=((p=this.element)==null?void 0:p.videoHeight)||0,this._preSize.width=((g=this.element)==null?void 0:g.videoWidth)||0,this.emit(qe.RESIZE,{newWidth:this._preSize.width,newHeight:this._preSize.height}))}setCanvas(e,r=1){var o,s,n,a;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(),(n=this.container)==null||n.appendChild(e)):this.element&&((a=this.container)==null||a.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}setPoster(e){this.element&&(this.element.poster=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(qe.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(Ni()&&this.element&&this._calculateTimeout<0){let e=0,r=null,o=(s,n)=>{this.stat.width=n.width,this.stat.height=n.height,r&&(this.stat.fps=Math.round((n.presentedFrames-r.presentedFrames)/(s-e)*1e3)),e=s,r=n,this._calculateTimeout=-1,this.element&&(this._calculateTimeout=setTimeout(()=>{var a;return(a=this.element)==null?void 0:a.requestVideoFrameCallback(o)},2e3))};this.element.requestVideoFrameCallback(o)}}catch(e){this._log.warn("init stat failed",e)}}};function wi(i,t){return y(this,null,function*(){if(!i.audioWorklet)return Promise.reject("audioWorklet is not supported");try{yield i.audioWorklet.addModule(t),$.info("worklet addModule success")}catch(e){throw $.info(`worklet addModule catch error. ${e.message}`),e}})}var Wa;typeof AudioContext!="undefined"?Wa=AudioContext:typeof webkitAudioContext!="undefined"?Wa=webkitAudioContext:typeof mozAudioContext!="undefined"&&(Wa=mozAudioContext);var nh=1500,hr,xg=-1,Xd=0,Ga=-1,sh=!1;Pg();function Pg(){try{if(hr)return;hr=new Wa({sampleRate:48e3}),hr.onstatechange=()=>{$.info(`context state: ${hr.state}${hr.state!=="running"?` visibilityState: ${document.visibilityState}`:""}`),un()},clearTimeout(xg)}catch(i){$.error(`initAudioContext failed: ${i} typeof AudioContextClass: ${typeof Wa}`),xg=setTimeout(Pg,1e3)}}var un=()=>{hr.state==="suspended"?(Xd=_e(),kI(),so(),document.addEventListener("click",un)):hr.state==="interrupted"?so():(Xd&&(X.addNumber({key:507800,value:_e()-Xd,split:[0,500,1e3,1500,2e3,3e3,4e3,5e3,1e4,3e4],max:6e4}),Xd=0),LI(),document.removeEventListener("visibilitychange",un),document.removeEventListener("click",un))},ih=0,oh=-1;function so(){return new Promise((i,t)=>{if(hr.state==="running")return i();Date.now()-ih<1e3?(clearTimeout(oh),oh=setTimeout(()=>{ih=Date.now(),hr.resume().then(i,t)},1e3)):(clearTimeout(oh),ih=Date.now(),hr.resume().then(i,t))}).catch(i=>{$.warn(`context resume failed: ${i}`),document.addEventListener("visibilitychange",un)})}document.addEventListener("click",un);function kI(){Ga===-1&&(Ga=setTimeout(()=>{hr.state==="suspended"&&(sh=!0,V.emit("155",{isSuspended:!0}))},nh))}function LI(){Ga!==-1&&(clearTimeout(Ga),Ga=-1,sh&&(sh=!1,V.emit("155",{isSuspended:!1})))}var We=i=>hr;var gt=class{constructor(t){this.name=t;l(this,"node");l(this,"node2");l(this,"pre",new Set);l(this,"next",new Set);l(this,"context");l(this,"connectedNodes",new Set);l(this,"nextInputChannelMap",new Map);l(this,"_channelCount",1)}get channelCount(){return this._channelCount}set channelCount(t){this._channelCount=t,this.setChannelCount(this.node,t),this.setChannelCount(this.node2,t),this.next.forEach(e=>e.channelCount=t)}setChannelCount(t,e){!t||t instanceof ScriptProcessorNode||(t.channelCountMode="explicit",t.channelCount=e||this.channelCount||1)}setContext(t){this.context=t,this.node&&t.addMixWeight()}removeContext(){var t;this.node&&((t=this.context)==null||t.reduceMixWeight()),delete this.context}replaceNode(t){var e;if(t!==this.node)try{this.node?this._disconnect():(e=this.context)==null||e.addMixWeight(),this.node=t,this.setChannelCount(this.node),this.preNodeReconnect(),this.reconnect()}catch(r){$.error(r)}}setNode(t,e){var r;if(!this.node)try{(r=this.context)==null||r.addMixWeight(),this.node=t,this.setChannelCount(this.node),e&&(this.node2=e,this.setChannelCount(this.node2)),this.preNodeReconnect(),this.reconnect(),X.addSuccessEvent({key:502701})}catch(o){$.error(o),X.addFailedEvent({key:502701,error:o})}}deleteNode(){var t;if(this.node)try{this._disconnect(),delete this.node,delete this.node2,(t=this.context)==null||t.reduceMixWeight(),this.preNodeReconnect(),X.addSuccessEvent({key:502702})}catch(e){$.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=>{let r=this.nextInputChannelMap.get(e);t._connect(e.node,r)||e.connectNext(t)})}_connect(t,e=0){return!this.node||!t?!1:((this.node2||this.node).connect(t,0,e),this.connectedNodes.add(t),!0)}_disconnect(){this.connectedNodes.forEach(t=>{var e;return(e=this.node2||this.node)==null?void 0:e.disconnect(t)}),this.connectedNodes.clear()}reconnect(){this._disconnect(),this.connectNext(this)}pipeTo(t,e=0){return this.next.add(t),t.pre.add(this),this.nextInputChannelMap.set(t,e),t}},Qd=class extends gt{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,n=`M${o},${s}`;for(let a=0;a<e.length;a++)s=e[a]/128*100/2,n+=`L${o},${s}`,o+=r;return n}},ja=class{constructor(){l(this,"source",new gt);l(this,"gain",new gt);l(this,"destination",new gt)}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(We().createGain()),this.gain.node.gain.value=t}replaceSource(t){this.source.replaceNode(qa(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}},ln=class extends ja{constructor(e){super();this.context=e;l(this,"aec",new gt("aec"));l(this,"mixNode",new gt("mixNode"));l(this,"silentNode",new gt("silentNode"));l(this,"denoiser",new gt("denoiser"));l(this,"voiceChanger",new gt("voiceChanger"));this.source.pipeTo(this.aec).pipeTo(this.denoiser).pipeTo(this.voiceChanger).pipeTo(this.gain).pipeTo(this.destination),this.silentNode.pipeTo(this.mixNode).pipeTo(this.aec,1)}get isProcessEnabled(){return this.aec.node||this.denoiser.node||this.voiceChanger.node||this.gain.node}connect(){this.context.inputs.has(this)||(this.destination.setNode(this.context.destination),this.source.setContext(this.context),this.aec.setContext(this.context),this.silentNode.setContext(this.context),this.mixNode.setContext(this.context),this.denoiser.setContext(this.context),this.voiceChanger.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.aec.removeContext(),this.silentNode.removeContext(),this.mixNode.removeContext(),this.denoiser.removeContext(),this.voiceChanger.removeContext(),this.gain.removeContext(),this.context.inputs.delete(this))}remove(){this.gain.deleteNode(),this.aec.deleteNode(),this.silentNode.deleteNode(),this.mixNode.deleteNode(),this.denoiser.deleteNode(),this.voiceChanger.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}},Yd=class{constructor(){l(this,"audioContext",We("audio-mixer"));l(this,"destination",this.audioContext.createMediaStreamDestination());l(this,"inputs",new Set);l(this,"mixWeight",0);this.destination.channelCount=1}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]}},kg=new WeakMap;function qa(i){let t=kg.get(i);if(t)return t;let e=We();if(i instanceof HTMLAudioElement)t=e.createMediaElementSource(i);else if(i instanceof MediaStreamTrack)t=e.createMediaStreamSource(new MediaStream([i]));else return i;return kg.set(i,t),t}var ar=class ar{constructor(t){l(this,"_volume",0);l(this,"_volumeDb",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,V.on(F.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}static get isRunning(){return Date.now()-ar.lastMessageTime<2e3}get node(){return this._audioWorkletNode||this._scriptProcessorNode}preload(){if(!ar.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,s){t=t[0],s=s[0];if(t||s){if(this.isStop)return!1;var i=s&&s[0]?s[0].length:0,h=this.cache.length,a=(i<h?(s[0].set(this.cache.slice(0,i)),this.cache=this.cache.slice(i)):this.unmute&&s[0].set(t[0]),(i<h?s:t)[0]);if(a){let e=0;for(let t=0;t<a.length;++t)e=Math.max(Math.abs(a[t]),e);s=a.reduce((t,e)=>t+e*e,0)/a.length;this.volume=e,this.tick-=a.length,this.tick<0&&(this.tick+=this.intervalTime/1e3*sampleRate,this.port.postMessage({volume:this.volume,volumeDb:Math.max(10*Math.log10(s)+100,0)/100,cacheLen:h,outputLen:i}))}}return!0}}registerProcessor("volume-meter",VolumeMeterWorklet);';ar.workletReady=wi(ar.audioContext,URL.createObjectURL(new Blob([t],{type:"application/javascript"})))}return ar.workletReady.then(()=>this.initAudioWorklet()).catch(t=>(this._log.error(`volumeMeter preload error: ${t}`),this.initScriptProcessor()))}initAudioWorklet(){if(!this._audioWorkletNode)try{this._audioWorkletNode=new AudioWorkletNode(ar.audioContext,"volume-meter");let t=!1;this._audioWorkletNode.port.onmessage=e=>{ar.lastMessageTime=Date.now(),this._volume=e.data.volume||0,this._volumeDb=e.data.volumeDb||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}`),Je.logFailedEvent({userId:this._log.userId,eventType:hi.LOAD_WORKLET,error:t}),this.initScriptProcessor()}}initScriptProcessor(){if(!this._scriptProcessorNode)try{this._scriptProcessorNode=We("volume-meter").createScriptProcessor(2048,1,1),this._scriptProcessorNode.onaudioprocess=t=>{ar.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,V.off(F.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}getInternalAudioLevel(){return this._volume}getCalculatedVolume(){return parseFloat(this._volume.toFixed(2))}getVolumeDb(){return Math.floor(this._volumeDb*100)}handleAudioLevelInterval(t){var r;let{interval:e}=t;this._interval=e,(r=this._audioWorkletNode)==null||r.port.postMessage({name:"setIntervalTime",intervalTime:e})}};l(ar,"lastMessageTime",0),l(ar,"audioContext",We("volume-meter")),l(ar,"workletReady");var Zd=ar,za=class extends gt{constructor(e){super();l(this,"_volumeMeter");this._volumeMeter=new Zd(e)}deleteNode(){super.deleteNode(),this._volumeMeter.destroy()}init(){return y(this,null,function*(){yield this._volumeMeter.preload(),this.setNode(this._volumeMeter.node)})}getCalculatedVolume(){return this._volumeMeter.getCalculatedVolume()}getInternalAudioLevel(){return this._volumeMeter.getInternalAudioLevel()}getVolumeDb(){return this._volumeMeter.getVolumeDb()}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()}}},Kd=Zd;var Fg=ui(Si(),1);var Ug=i=>t=>t.deviceId===i;var Ja=class{constructor(t,e){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&&hn(this.devices[0])){this.devices=r;return}e&&(r.forEach(o=>{if(o.deviceId&&!this.devices.find(Ug(o.deviceId))){let s=`${this.kind}${this.type}Added`;$.warn(`${s}: ${JSON.stringify(o)}`),e.emit(s,o)}}),this.devices.forEach(o=>{if(o.deviceId&&!r.find(Ug(o.deviceId))){let s=`${this.kind}${this.type}Removed`;$.warn(`${s}: ${JSON.stringify(o)}`),e.emit(s,o)}})),this.devices=r}hasDevice(t){return!!this.devices.find(e=>e.deviceId===t)}},ah=class extends Fg.EventEmitter{constructor(){super();l(this,"audioInputs",new Ja(M.AUDIO,"Input"));l(this,"videoInputs",new Ja(M.VIDEO,"Input"));l(this,"audioOutputs",new Ja(M.AUDIO,"Output"));this.init(),navigator.mediaDevices&&(navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",()=>this.update()),"ondevicechange"in navigator.mediaDevices||dt.run("interval",()=>{this.update()},{delay:1e4}))}init(){mn().then(e=>{this.audioInputs.update(e),this.videoInputs.update(e),this.audioOutputs.update(e)})}update(){return y(this,arguments,function*(e=0){let r=yield mn(e);return this.audioInputs.update(r,this),this.videoInputs.update(r,this),this.audioOutputs.update(r,this),this})}hasBlueTooth(){var r;if(((r=We())==null?void 0:r.outputLatency)>150)return!0;let e=["bluetooth","air","wireless","bt","tws","buds","headset","headphone"];return this.audioOutputs.devices.some(o=>e.some(s=>o.label.toLowerCase().includes(s)))}},it=Zn||xs?null:new ah;function hn(i){return i.deviceId===i.groupId&&i.groupId===""}function mn(){return y(this,arguments,function*(i=0){if(Ci()||!$d())return[];let t=yield navigator.mediaDevices.enumerateDevices();if(i!==0){let e={audio:!1,video:!1};if(t.forEach(r=>{hn(r)&&(r.kind===M.AUDIO_INPUT?e.audio=!0:r.kind===M.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),e.audio&&so()}catch(o){$.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&&ch.add(`${e.deviceId}_${e.kind}`),e.getCapabilities&&(o.getCapabilities=()=>e.getCapabilities()),o})})}function Yt(i=!1){return it.update(i?1:0).then(t=>t.audioInputs.devices)}function Zt(i=!1){return it.update(i?2:0).then(t=>t.videoInputs.devices)}var Vg=!1;function $g(){return y(this,null,function*(){try{Vg||(Vg=!0,$.info(`speakers:${(yield no()).map(i=>` ${i.deviceId.slice(0,8)}: ${i.label}`)}`))}catch(i){}})}function no(i=!1){return y(this,null,function*(){return(ht||Tt)&&(i=!1),it.update(i?1:0).then(t=>t.audioOutputs.devices)})}var ch=new Set;function Bg(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}_${M.VIDEO_INPUT}`;return!!ch.has(r)}function Hg(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}_${M.AUDIO_INPUT}`;return!!ch.has(r)}function dh(i,t){return y(this,null,function*(){let r=(yield Yt()).find(o=>o.deviceId===Uo);return!t&&(r==null?void 0:r.groupId)===i||(r==null?void 0:r.groupId)===i&&r.label===t})}function Wg(s){return y(this,arguments,function*({newDeviceId:i,oldDeviceId:t,oldGroupId:e,oldLabel:r,kind:o}){return i!==t?!1:o===M.AUDIO&&i===Uo?yield dh(e,r):!0})}var eu,uh=class extends ja{constructor(e){super();this.log=e;l(this,"volumeMeter");l(this,"volumeMeterAfter3A");l(this,"volumeDestination");l(this,"analyser",new Qd);this.volumeMeter=new za({log:this.log}),this.volumeMeterAfter3A=new za({log:this.log}),this.volumeDestination=new gt,this.volumeMeter.pipeTo(this.volumeDestination)}destroy(){this.gain.deleteNode(),this.volumeMeter.deleteNode(),this.analyser.deleteNode(),this.source.deleteNode(),this.destination.deleteNode(),this.volumeDestination.deleteNode()}},pn=class i extends kr{constructor(e){super(e,M.AUDIO);l(this,"_outputDeviceId");l(this,"_volume",1);l(this,"_destination",We("player").createMediaStreamDestination());l(this,"pipeline");l(this,"volumeMeterMode","worklet");this.mode=0,e.url&&(this.url=e.url),this.pipeline=new uh(this._log)}get duration(){var e;return Math.floor((((e=this.element)==null?void 0:e.duration)||0)*1e3)}get currentTime(){var e;return Math.floor((((e=this.element)==null?void 0:e.currentTime)||0)*1e3)}set currentTime(e){this.element&&(this.element.currentTime=e/1e3)}getMediaStream(){return this.pipeline.stream||(this.track?new MediaStream([this.track]):null)}initializeElement(e){if((wr==="15.2"||wr==="15.3"||wr==="15.4")&&this.muted){this._log.info("audioElement is muted.");return}let o=eu||new Audio;o.setAttribute("autoplay","autoplay"),o.srcObject=this.getMediaStream(),o.muted=this.muted,this.url&&(o.crossOrigin="anonymous",o.src=this.url),this.element=o,ke(e)&&(this.element.volume=Math.min(Math.max(e,0),1)),o===eu&&(eu=void 0),this.options.enableTimeupdateEvent&&(this.element.ontimeupdate=()=>this.emit(qe.TIME_UPDATE,this.currentTime)),this.bindElementEvents()}play(e){return y(this,null,function*(){if(!(!this.track&&!this.url))return!this.pipeline.source.node&&this.track&&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.pipeline.volumeMeterAfter3A.init()):this.volumeMeterMode==="analyser"&&this.pipeline.analyser.setNode(We("player").createAnalyser()),$g(),Ut(i.prototype,this,"play").call(this)})}stop(e=0){this.pipeline.destroy(),super.stop(e)}setVolume(e){this._volume=e,this.element&&(this.element.volume=e)}setSinkId(e){return y(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()}getInternalAudioLevelAfter3A(){return this.pipeline.volumeMeterAfter3A.getInternalAudioLevel()}},tu=class extends pn{setTrack(t){this.track!==t&&(this.unbindTrackEvents(),this.track=t,this.emit(qe.MEDIA_TRACK_CHANGED,t),t&&(this.bindTrackEvents(),this.element&&(this.element.srcObject=new MediaStream([t]))))}},ru=class extends pn{constructor(e){super(e);l(this,"_sourceElement");l(this,"_output",new gt);this.pipeline.source.pipeTo(this.pipeline.gain),this.pipeline.gain.pipeTo(this.pipeline.volumeMeter).pipeTo(this._output),this.pipeline.gain.pipeTo(this.pipeline.destination)}setOutput(){this.mode=1,this._output.setNode(We("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(qe.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.element.volume=e):this._log.info("set element volume: no element"):ht||(this._log.info(`start set pipeline volume: ${e}`),this.pipeline.setVolume(e),this.element&&!this._sourceElement&&(this.pipeline.destination.setNode(this._destination),ut(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&&mr&&(eu=r),this._sourceElement&&(this._sourceElement.srcObject=null,delete this._sourceElement),super.stop(e)}};var rs=class extends le{constructor({userId:e,sdkAppId:r,mediaType:o,room:s,PlayerClass:n=o===1?ru:qt}){var a;super();l(this,"id",va());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,"rotation");l(this,"isScreen",!1);l(this,"manager");l(this,"trackSettings");l(this,"isFirstVideoFrameEmitted",!1);this.userId=e||"",this.mediaType=o,this._log=$.createLogger({id:`${this.kind[0]}t`,userId:(a=s||this.room)==null?void 0:a.userId,remoteUserId:this instanceof Lr?void 0:this.userId,sdkAppId:r,type:this.mediaType===2?"auxiliary":"main",isLocal:this instanceof Lr}),this.player=new n({id:this.userId||this.id,track:null,muted:!1,container:null,log:this._log}),this.player.on(qe.PLAYER_STATE_CHANGED,u=>{V.emit(F.PLAYER_STATE_CHANGED,J({track:this},u)),this.emit("player-state-changed",u)}),this.kind===M.VIDEO&&(this.player.on(qe.LOADED_DATA,()=>{this.emitFirstVideoFrameEvent(qe.LOADED_DATA),V.emit(F.VIDEO_LOADED_DATA,{track:this})}),this.player.on(qe.LOADED_META_DATA,()=>{this.emitFirstVideoFrameEvent(qe.LOADED_META_DATA)}),this.player.on(qe.MEDIA_TRACK_CHANGED,u=>{var m;(m=this.subVideoPlayerMap)==null||m.forEach(p=>p.setTrack(u))}),this.player.on(qe.RESIZE,u=>{this.emit("video-size-changed",J({userId:this.userId,streamType:this.mediaType===2?"auxiliary":"main"},u))})),this.onTrackMuted=this.onTrackMuted.bind(this),this.onTrackUnmuted=this.onTrackUnmuted.bind(this),this.onTrackEnded=this.onTrackEnded.bind(this),this.onPlayerError&&this.player.on(qe.ERROR,this.onPlayerError.bind(this))}get log(){return this._log||$}get kind(){return this.mediaType===1?M.AUDIO:M.VIDEO}get isAudio(){return this.kind===M.AUDIO}get strMediaType(){return this.mediaType===4?M.VIDEO:this.mediaType===2?M.SCREEN:M.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 y(this,null,function*(){let o=ot(e)?e[0]:e;if(this.isPlayCalled){this.log.info(`play update options: ${JSON.stringify(r)}`),r&&!x(r.muted)&&this.setPlayerMute(r.muted),r&&!x(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof qt&&(this.player.setObjectFit(this.objectFit),this.container!==o&&o&&(this.container=o,this.player.setContainer(o)),ot(e)&&e.length>=1&&(yield this.playSubContainer(e.slice(1),r)));return}if(r&&!x(r.muted)?this.setPlayerMute(r.muted):(!this.isRemote||this.kind===M.VIDEO)&&this.setPlayerMute(!0),r&&!x(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof qt&&(this.player.setObjectFit(this.objectFit),r&&!x(r.poster)&&this.player.setPoster(r.poster)),this.isPlayCalled=!0,o&&(this.container=o,this.player instanceof qt&&this.player.setContainer(o)),V.emit(F.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),ot(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!==M.VIDEO||x(e)||e===this.mirror)return;this.mirror=e;let o=this.player;r&&(o=r);let s=this.manager;if(Ze(this.mirror)){o.setViewMirror(this.mirror),!this.isRemote&&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 y(this,null,function*(){if(!this._outputTrack||this.kind===M.AUDIO)return;this.subVideoPlayerMap||(this.subVideoPlayerMap=new Map),this.subVideoPlayerMap.forEach((s,n)=>{var a;e.find(u=>n===u)||(s.stop(),(a=this.subVideoPlayerMap)==null||a.delete(n))});for(let[s,n]of e.entries()){let a=this.subVideoPlayerMap.get(n);a?r&&(x(r.objectFit)||a.setObjectFit(r.objectFit)):this.subVideoPlayerMap.set(n,new qt({id:this.userId||this.id,track:this.playerMediaTrack,container:n,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(Ql(this)&&!e?this.jitterBufferDelay:0)),this.subVideoPlayerMap&&this.subVideoPlayerMap.size>0&&this.subVideoPlayerMap.forEach(r=>{r.stop()}),this.container=null)}resume(){return y(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),V.emit(e?F.TRACK_MUTED:F.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){At(e,e).add(M.MUTE,this.onTrackMuted).add(M.UNMUTE,this.onTrackUnmuted).add(M.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===M.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){ut(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(Ql(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 Jd;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 qt?this.player.getVideoFrame():""}emitFirstVideoFrameEvent(e){var n,a,u;if(this.isFirstVideoFrameEmitted)return;let r=(n=this.mediaTrack)==null?void 0:n.getSettings(),o=(r==null?void 0:r.width)||((a=this.player.element)==null?void 0:a.videoWidth)||0,s=(r==null?void 0:r.height)||((u=this.player.element)==null?void 0:u.videoHeight)||0;e===qe.RESIZE&&!o&&!s||e===qe.LOADED_META_DATA&&!o&&!s||(e===qe.LOADED_DATA&&!o&&!s&&this._log.warn("the dimension of video is 0x0 in first-video-frame event"),this.isFirstVideoFrameEmitted=!0,sr(this.rotation)&&([o,s]=[s,o]),this.emit("first-video-frame",{width:o,height:s,streamType:this.streamType,userId:this.isRemote?this.userId:""}))}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`)}};K([et([],le.INIT,{sync:!0})],rs.prototype,"close",1);var UI=Object.prototype.hasOwnProperty,{toString:EN}=Object.prototype;function VI(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(UI.call(i,t))return!1;return!0}}return!1}var Xa=VI;var FI=function(i){return y(this,null,function*(){let t=BI(i);$.info(`getUserMedia with constraints: ${JSON.stringify(t)}`);let e=[],r=[],o=["label","deviceId","groupId"];t.audio&&(e=yield Yt(),$.info(`microphones: ${lr(e.map(s=>ge(J({},s),{groupId:s.groupId.substring(0,8)})),{keysToInclude:o})}`)),t.video&&(r=yield Zt(),$.info(`cameras: ${lr(r,{keysToInclude:o})}`));try{let s=yield navigator.mediaDevices.getUserMedia(t);return Hm&&s.getTracks().forEach(n=>{$.info(`${n.kind} capabilities: ${lr(n.getCapabilities(),{keysToInclude:Yc})}`)}),t.audio&&so(),s}catch(s){let{message:n}=s;throw s.name==="NotFoundError"&&(i.video&&r&&r.length===0&&(n=Be({key:$e.CAMERA_NOT_FOUND})),i.audio&&e&&e.length===0&&(n=Be({key:$e.MICROPHONE_NOT_FOUND}))),new de({code:q.INITIALIZE_FAILED,name:s.name,message:n,constraint:s.constraint})}})},$I=Ki({retryFunction:FI,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,(!Tt||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&&Gg(r[0].microphoneId,!1),r[0].cameraId&&Gg(r[0].cameraId,!0)},onRetrying:i=>{$.warn(`getUserMedia NotReadableError observed, retrying [${i}/3]`)},onRetryFailed:i=>{Je.logFailedEvent({eventType:hi.GET_USER_MEDIA_RETRY,error:i})},onRetrySuccess:i=>{Je.logSuccessEvent({eventType:hi.GET_USER_MEDIA_RETRY}),Je.uploadEvent({log:`stat-${hi.GET_USER_MEDIA_RETRY}-success-${i}`})}});function Gg(i,t){return y(this,null,function*(){let r=(t?yield Zt():yield Yt()).find(o=>o.deviceId===i);r&&Ge(r.getCapabilities)&&$.warn(lr(r.getCapabilities(),{keysToInclude:Yc}))})}function BI(i){return{audio:HI(i),video:WI(i)}}function HI(i){if(!i.audio)return!1;if(i.useTrueAsConstraint)return!0;let t={echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:i.sampleRate};return!Xa(i.microphoneId)&&(t.deviceId=i.useExactDeviceId?{exact:i.microphoneId}:i.microphoneId,i.useDeviceIdOnly)?t:(ke(i.channelCount)&&(t.channelCount=i.channelCount),Ze(i.echoCancellation)&&!i.echoCancellation&&(t.echoCancellation=!1),Ze(i.noiseSuppression)&&!i.noiseSuppression&&(t.noiseSuppression=!1),Ze(i.autoGainControl)&&!i.autoGainControl&&(t.autoGainControl=!1),Xa(t)?!0:t)}function WI(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&&!Xa(e)?e:(i.width&&(e.width={ideal:i.width},t&&!$t&&(e.width.max=i.width)),i.height&&(e.height={ideal:i.height},t&&!$t&&(e.height.max=i.height)),$t&&Dr&&i.width&&i.height&&i.width*i.height<352*288&&(e.width=i.width,e.height=i.height),i.frameRate&&(e.frameRate=i.frameRate),Xa(e)?!0:e)}var jg=$I;function ao(i){return Me((t,e)=>function(...r){return y(this,null,function*(){let o=yield t.apply(this,r);return yield i.call(this,...r),o})})}function qg(i){return Me((t,e)=>function(...r){return y(this,null,function*(){try{return yield t.apply(this,r)}catch(o){i.call(this,o)}})})}function Me(i){return function(t,e,r){return r.value=i(r.value,e),r}}var zg=(()=>{let i=!1,t=document.visibilityState;return()=>{document.visibilityState!==t&&$.info(`visibility change: ${document.visibilityState}`),!i&&(document.addEventListener("visibilitychange",()=>{$.info(`visibility change: ${document.visibilityState}`),t=document.visibilityState}),i=!0)}})();var GI=0,iu=class{constructor(){l(this,"log",$.createLogger({id:`fq${++GI}`}));l(this,"isRunning",!1);l(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,n;let r=J({},t),o=new Promise((a,u)=>{r.resolve=a,r.reject=u});return r.promise=o,e?this.length<=1?this.queue.push(r):(n=(s=this.lastQueueItem)==null?void 0:s.promise)==null||n.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()})}},Jg=new WeakMap,Xg=new WeakMap;function is(i=!1){return function(t,e,r){let o=r.value;return r.value=function(...s){let n=Jg.get(this)||new iu;return Jg.set(this,n),n.push({fn:o,args:s,context:this},i)},r}}function Qg(i){return function(t,e,r){let o=r.value,s=n=>i(...n);return r.value=function(...n){let a=Xg.get(this)||new Map,u=a.get(s(n))||new iu;return a.set(s(n),u),Xg.set(this,a),u.push({fn:o,args:n,context:this})},r}}function ou(i,t){return Me((e,r)=>function(...o){let s=i;try{let n=e.apply(this,o),a=_e();return Yi(n)?n.then(u=>(t?X.addSuccessEvent({key:s,cost:_e()-a}):X.addSuccessEvent({key:s}),u)).catch(u=>{throw X.addFailedEvent({key:s,error:u}),u}):(X.addSuccessEvent({key:s}),n)}catch(n){throw X.addFailedEvent({key:s,error:n}),n}})}var Yh={};di(Yh,{Events:()=>lt,Inspect:()=>pr,LastSink:()=>os,Sink:()=>fe,Subscribe:()=>ss,TimeoutError:()=>Qa,audit:()=>CS,bindCallback:()=>mS,bindNodeCallback:()=>hS,buffer:()=>KI,bufferCount:()=>ZI,bufferTime:()=>qS,call:()=>Yg,catchError:()=>zh,combineLatest:()=>Kg,concat:()=>zI,concatMap:()=>VS,concatMapTo:()=>FS,count:()=>gS,create:()=>xe,debounce:()=>NS,debounceTime:()=>DS,defer:()=>eE,delay:()=>zS,deliver:()=>Ee,dispose:()=>su,elementAt:()=>wS,empty:()=>ec,every:()=>kS,exhaustMap:()=>HS,exhaustMapTo:()=>WS,expand:()=>JS,filter:()=>zt,find:()=>MS,findIndex:()=>OS,first:()=>xS,fromAnimationFrame:()=>uS,fromArray:()=>oS,fromEvent:()=>be,fromEventPattern:()=>sS,fromFetch:()=>nS,fromIterable:()=>aS,fromPromise:()=>iE,fromReadableStream:()=>dS,fromReader:()=>cS,groupBy:()=>GS,identity:()=>jI,ignoreElements:()=>IS,iif:()=>XI,inspect:()=>Zg,interval:()=>Eh,last:()=>PS,map:()=>uo,mapTo:()=>US,max:()=>ES,merge:()=>Ya,mergeMap:()=>$S,mergeMapTo:()=>BS,min:()=>TS,never:()=>pS,nothing:()=>He,of:()=>iS,pairwise:()=>LS,pipe:()=>Ae,race:()=>fh,range:()=>lS,reduce:()=>Th,retry:()=>YS,scan:()=>qh,setAsapScheduler:()=>rS,share:()=>Mi,shareReplay:()=>JI,skip:()=>yS,skipUntil:()=>AS,skipWhile:()=>uu,startWith:()=>Za,subject:()=>bt,subscribe:()=>Le,sum:()=>_S,switchMap:()=>lo,switchMapTo:()=>Oi,take:()=>Ur,takeLast:()=>SS,takeUntil:()=>Xe,takeWhile:()=>oE,tap:()=>tc,throttle:()=>RS,throwError:()=>fS,timeInterval:()=>jS,timeout:()=>Qh,timer:()=>Ka,toPromise:()=>XS,toReadableStream:()=>QS,withLatestFrom:()=>YI,zip:()=>QI});function He(...i){}var Yg=i=>i(),jI=i=>i;function su(){this.dispose()}var Zg=()=>typeof __FASTRX_DEVTOOLS__!="undefined",qI=1,pr=class extends Function{toString(){return`${this.name}(${this.args.length?[...this.args].join(", "):""})`}subscribe(t){let e=new lh(t,this,this.streamId++);return lt.subscribe({id:this.id,end:!1},{nodeId:e.sourceId,streamId:e.id}),this(e),e}},os=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=He,this.error=He,this.next=He,this.dispose=He,this.subscribe=He,this.doDefer()}subscribe(t){return t instanceof pr?t.subscribe(this):t(this),this}get bindSubscribe(){return t=>this.subscribe(t)}doDefer(){this.defers.forEach(Yg),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}},fe=class extends os{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)}},ss=class extends os{constructor(t,e=He,r=He,o=He){if(super(),this._next=e,this._error=r,this._complete=o,this.then=He,t instanceof pr){let s={toString:()=>"subscribe",id:0,source:t};this.defer(()=>{lt.defer(s,0)}),lt.create(s),lt.pipe(s),this.sourceId=s.id,this.subscribe(t),lt.subscribe({id:s.id,end:!0}),e==He?this._next=n=>lt.next(s,0,n):this.next=n=>{lt.next(s,0,n),e(n)},o==He?this._complete=()=>lt.complete(s,0):this.complete=()=>{this.dispose(),lt.complete(s,0),o()},r==He?this._error=n=>lt.complete(s,0,n):this.error=n=>{this.dispose(),lt.complete(s,0,n),r(n)}}else this.subscribe(t)}next(t){this._next(t)}complete(){this.dispose(),this._complete()}error(t){this.dispose(),this._error(t)}};function Ae(i,...t){return t.reduce((e,r)=>r(e),i)}function xe(i,t,e){if(Zg()){let r=Object.defineProperties(Object.setPrototypeOf(i,pr.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}});lt.create(r);for(let o=0;o<e.length;o++){let s=e[o];typeof s=="function"&&s instanceof pr&<.addSource(r,s)}return r}return i}function Ee(i,t){return function(...e){return r=>{if(r instanceof pr){let o=xe(s=>{let n=new i(s,...e);n.sourceId=o.id,n.subscribe(r)},t,arguments);return o.source=r,lt.pipe(o),o}else return o=>r(new i(o,...e))}}}function co(i,t){window.postMessage({source:"fastrx-devtools-backend",payload:{event:i,payload:t}})}var lh=class extends fe{constructor(t,e,r){super(t),this.source=e,this.id=r,this.sourceId=t.sourceId,this.defer(()=>{lt.defer(this.source,this.id)})}next(t){lt.next(this.source,this.id,t),this.sink.next(t)}complete(){lt.complete(this.source,this.id),this.sink.complete()}error(t){lt.complete(this.source,this.id,t),this.sink.error(t)}},lt={addSource(i,t){co("addSource",{id:i.id,name:i.toString(),source:{id:t.id,name:t.toString()}})},next(i,t,e){co("next",{id:i.id,streamId:t,data:e&&e.toString()})},subscribe({id:i,end:t},e){co("subscribe",{id:i,end:t,sink:{nodeId:e&&e.nodeId,streamId:e&&e.streamId}})},complete(i,t,e){co("complete",{id:i.id,streamId:t,err:e?e.toString():null})},defer(i,t){co("defer",{id:i.id,streamId:t})},pipe(i){co("pipe",{name:i.toString(),id:i.id,source:{id:i.source.id,name:i.source.toString()}})},update(i){co("update",{id:i.id,name:i.toString()})},create(i){i.id||(i.id=qI++),co("create",{name:i.toString(),id:i.id})}},Qa=class extends Error{constructor(t){super(`timeout after ${t}ms`),this.timeout=t}};var nu=class extends os{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 Mi(){return i=>{let t=new nu(i);if(i instanceof pr){let e=xe(r=>{t.add(r)},"share",arguments);return t.sourceId=e.id,e.source=i,lt.pipe(e),e}return xe(t.add.bind(t),"share",arguments)}}function Ya(...i){return xe(t=>{let e=new fe(t),r=i.length;e.complete=()=>{--r===0&&t.complete()},i.forEach(e.bindSubscribe)},"merge",arguments)}function fh(...i){return xe(t=>{let e=new Map;i.forEach(r=>{let o=new fe(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(n=>n.dispose()),o.resetNext(),o.resetComplete(),o.next(s)}}),i.forEach(r=>e.get(r).subscribe(r))},"race",arguments)}function zI(...i){return xe(t=>{let e=0,r=i.length,o=new fe(t);o.complete=()=>{e<r&&!o.disposed?(o.doDefer(),o.subscribe(i[e++])):t.complete()},o.complete()},"concat",arguments)}function JI(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))},xe(o=>{o.defer(()=>e.remove(o)),r.forEach(s=>o.next(s)),e.add(o)},"shareReplay",arguments)}}function XI(i,t,e){return xe(r=>i()?t(r):e(r),"iif",arguments)}function Kg(...i){return xe(t=>{let e=i.length,r=e,o=e,s=new Array(e),n=()=>{--o===0&&t.complete()},a=(u,m)=>{let p=new fe(t);p.next=g=>{r--,p.next=T=>{s[m]=T,r===0&&t.next(s)},p.next(g)},p.complete=n,p.subscribe(u)};i.forEach(a)},"combineLatest",arguments)}function QI(...i){return xe(t=>{let e=i.length,r=e,o=new Array(e),s=()=>{--r===0&&t.complete()},n=(a,u)=>{let m=new fe(t),p=[];o[u]=p,m.next=g=>{p.push(g),o.every(T=>T.length)&&t.next(o.map(T=>T.shift()))},m.complete=s,m.subscribe(a)};i.forEach(n)},"zip",arguments)}function Za(...i){return t=>xe((e,r=0,o=i.length)=>{for(;r<o&&!e.disposed;)e.next(i[r++]);e.disposed||e.subscribe(t)},"startWith",arguments)}var mh=class extends fe{constructor(t,...e){super(t);let r=new fe(this.sink);r.next=o=>this.buffer=o,r.complete=He,r.subscribe(Kg(...e))}next(t){this.buffer&&this.sink.next([t,...this.buffer])}},YI=Ee(mh,"withLatestFrom"),hh=class extends fe{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()}},ZI=Ee(hh,"bufferCount"),ph=class extends fe{constructor(t,e){super(t),this.buffer=[];let r=new fe(t);r.next=o=>{t.next(this.buffer),this.buffer=[]},r.complete=He,r.subscribe(e)}next(t){this.buffer.push(t)}complete(){this.buffer.length&&this.sink.next(this.buffer),super.complete()}},KI=Ee(ph,"buffer");var eS=function(i,t,e,r){function o(s){return s instanceof e?s:new e(function(n){n(s)})}return new(e||(e=Promise))(function(s,n){function a(p){try{m(r.next(p))}catch(g){n(g)}}function u(p){try{m(r.throw(p))}catch(g){n(g)}}function m(p){p.done?s(p.value):o(p.value).then(a,u)}m((r=r.apply(i,t||[])).next())})};function bt(i){let t=arguments,e=Mi()(xe(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=He,e.complete=He,e.error=He,e}function eE(i){return xe(t=>t.subscribe(i()),"defer",arguments)}var fn={promise:i=>{Promise.resolve().then(i)},setImmediate:typeof setImmediate!="undefined"?i=>setImmediate(i):null,setTimeout:i=>setTimeout(i,0)},tS=()=>typeof Promise!="undefined"?fn.promise:fn.setImmediate?fn.setImmediate:fn.setTimeout,gh=tS(),tE=i=>t=>{gh(()=>i(t))},rS=i=>{typeof i=="function"?gh=i:fn[i]&&(gh=fn[i])};var rE=i=>tE(t=>{for(let e=0;!t.disposed&&e<i.length;e++)t.next(i[e]);t.complete()});function iS(...i){return xe(rE(i),"of",arguments)}function oS(i){return xe(rE(i),"fromArray",arguments)}function Eh(i){return xe(t=>{let e=0,r=setInterval(()=>t.next(e++),i);return t.defer(()=>{clearInterval(r)}),"interval"},"interval",arguments)}function Ka(i,t){return xe(e=>{let r=0,o=setTimeout(()=>{if(e.removeDefer(s),e.next(r++),t){let n=setInterval(()=>e.next(r++),t);e.defer(()=>{clearInterval(n)})}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 sS(i,t){return xe(au(i,t),"fromEventPattern",arguments)}function be(i,t){if("on"in i&&"off"in i)return xe(au(e=>i.on(t,e),e=>i.off(t,e)),"fromEvent",arguments);if("addListener"in i&&"removeListener"in i)return xe(au(e=>i.addListener(t,e),e=>i.removeListener(t,e)),"fromEvent",arguments);if("addEventListener"in i)return xe(au(e=>i.addEventListener(t,e),e=>i.removeEventListener(t,e)),"fromEvent",arguments);throw"target is not a EventDispachter"}function iE(i){return xe(t=>{i.then(t.next.bind(t),t.error.bind(t))},"fromPromise",arguments)}function nS(i,t){return xe(eE(()=>iE(fetch(i,t))),"fromFetch",arguments)}function aS(i){return xe(tE(t=>{try{for(let e of i){if(t.disposed)return;t.next(e)}t.complete()}catch(e){t.error(e)}}),"fromIterable",arguments)}function cS(i){let t=e=>eS(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 xe(e=>{t(e)},"fromReader",arguments)}function dS(i){return xe(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 uS(){return xe(i=>{let t=requestAnimationFrame(function e(r){i.disposed||(i.next(r),t=requestAnimationFrame(e))});i.defer(()=>cancelAnimationFrame(t))},"fromAnimationFrame",arguments)}function lS(i,t){return xe((e,r=i,o=t+i)=>{for(;r<o&&!e.disposed;)e.next(r++);return e.complete(),"range"},"range",arguments)}function mS(i,t,...e){return xe(r=>{let o=e.concat(s=>(r.next(s),r.complete()));i.apply(t,o)},"bindCallback",arguments)}function hS(i,t,...e){return xe(r=>{let o=e.concat((s,n)=>s?r.error(s):(r.next(n),r.complete()));i.apply(t,o)},"bindNodeCallback",arguments)}function pS(){return xe(()=>{},"never",arguments)}function fS(i){return xe(t=>t.error(i),"throwError",arguments)}function ec(){return xe(i=>i.complete(),"empty",arguments)}var ns=class extends fe{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)}},Th=Ee(ns,"reduce"),gS=i=>Ee(ns,"count")((t,e)=>i(e)?t+1:t,0),ES=()=>Ee(ns,"max")(Math.max),TS=()=>Ee(ns,"min")(Math.min),_S=()=>Ee(ns,"sum")((i,t)=>i+t,0);var _h=class extends fe{constructor(t,e,r){super(t),this.filter=e,this.thisArg=r}next(t){this.filter.call(this.thisArg,t)&&this.sink.next(t)}},zt=Ee(_h,"filter"),Ih=class extends fe{next(t){}},IS=Ee(Ih,"ignoreElements"),Sh=class extends fe{constructor(t,e){super(t),this.count=e}next(t){this.sink.next(t),--this.count===0&&(this.doDefer(),this.complete())}},Ur=Ee(Sh,"take"),yh=class extends fe{constructor(t,e){super(t);let r=new fe(t);r.next=()=>{r.doDefer(),t.complete()},r.complete=su,r.subscribe(e)}},Xe=Ee(yh,"takeUntil"),Ah=class extends fe{constructor(t,e){super(t),this.f=e}next(t){this.f(t)?this.sink.next(t):(this.doDefer(),this.complete())}},oE=Ee(Ah,"takeWhile"),SS=i=>Th((t,e)=>(t.push(e),t.length>i&&t.shift(),t),[]),bh=class extends fe{constructor(t,e){super(t),this.count=e}next(t){--this.count===0&&(this.next=super.next)}},yS=Ee(bh,"skip"),Rh=class extends fe{constructor(t,e){super(t),t.next=He;let r=new fe(t);r.next=()=>{r.doDefer(),t.resetNext()},r.complete=su,r.subscribe(e)}},AS=Ee(Rh,"skipUntil"),vh=class extends fe{constructor(t,e){super(t),this.f=e}next(t){this.f(t)||(this.next=super.next,this.next(t))}},uu=Ee(vh,"skipWhile"),bS={leading:!0,trailing:!1},Ch=class extends fe{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 fe{constructor(t,e,r=bS){super(t),this.durationSelector=e,this.config=r,this._throttle=new Ch(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=He,this._throttle.complete(),super.complete()}},RS=Ee(cu,"throttle"),vS={leading:!1,trailing:!0},CS=i=>Ee(cu,"audit")(i,vS),Nh=class extends fe{next(){this.complete()}complete(){this.dispose(),this.sink.next(this.last)}},du=class extends fe{constructor(t,e){super(t),this.durationSelector=e,this._debounce=new Nh(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()}},NS=Ee(du,"debounce"),DS=i=>Ee(du,"debounceTime")(t=>Ka(i)),Dh=class extends fe{constructor(t,e,r){super(t),this.count=e,this.defaultValue=r}next(t){this.count--===0&&(this.defaultValue=t,this.doDefer(),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()}},wS=Ee(Dh,"elementAt"),MS=i=>t=>Ur(1)(uu(e=>!i(e))(t)),wh=class extends fe{constructor(t,e){super(t),this.f=e,this.i=0}next(t){this.f(t)?(this.sink.next(this.i++),this.doDefer(),this.complete()):++this.i}},OS=Ee(wh,"findIndex"),Mh=class extends fe{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.doDefer(),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()}},xS=Ee(Mh,"first"),Oh=class extends fe{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()}},PS=Ee(Oh,"last"),xh=class extends fe{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.doDefer(),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()}},kS=Ee(xh,"every");var Ph=class extends fe{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))}},qh=Ee(Ph,"scan"),kh=class extends fe{constructor(){super(...arguments),this.hasLast=!1}next(t){this.hasLast?this.sink.next([this.last,t]):this.hasLast=!0,this.last=t}},LS=Ee(kh,"pairwise"),lu=class extends fe{constructor(t,e,r){super(t),this.mapper=e,this.thisArg=r}next(t){super.next(this.mapper.call(this.thisArg,t))}},uo=Ee(lu,"map"),US=i=>Ee(lu,"mapTo")(t=>i),as=class extends fe{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()}},cs=class i extends fe{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===i.prototype.complete&&(this.complete=this.tryComplete),r.complete=r.tryComplete,r.subscribe(this.makeSource(t,this.index++))}complete(){this.sink.complete()}tryComplete(){this.currentSink.resetComplete(),this.dispose()}},mu=class extends as{},hu=class extends cs{next(t){this.subInner(t,mu),this.next=e=>{this.currentSink.dispose(),this.subInner(e,mu)}}},lo=Ee(hu,"switchMap");function Eu(i){return(t,e)=>i(()=>t,e)}var Oi=Eu(Ee(hu,"switchMapTo")),Lh=class extends as{tryComplete(){this.dispose(),this.context.sources.length?this.context.subNext():(this.context.resetNext(),this.context.resetComplete())}},pu=class extends cs{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(),Lh),this.disposed&&this.sources.length===0&&this.currentSink.resetComplete()}tryComplete(){this.sources.length===0&&this.currentSink.resetComplete(),this.dispose()}},VS=Ee(pu,"concatMap"),FS=Eu(Ee(pu,"concatMapTo")),Uh=class extends as{tryComplete(){this.context.inners.delete(this),super.dispose(),this.context.inners.size===0&&this.context.resetComplete()}},fu=class extends cs{constructor(){super(...arguments),this.inners=new Set}next(t){this.subInner(t,Uh),this.inners.add(this.currentSink)}tryComplete(){this.inners.size===1?this.inners.forEach(t=>t.resetComplete()):this.dispose()}},$S=Ee(fu,"mergeMap"),BS=Eu(Ee(fu,"mergeMapTo")),Vh=class extends as{dispose(){this.context.resetNext(),super.dispose()}},gu=class extends cs{next(t){this.next=He,this.subInner(t,Vh)}},HS=Ee(gu,"exhaustMap"),WS=Eu(Ee(gu,"exhaustMapTo")),Fh=class extends fe{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=bt(),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)}},GS=Ee(Fh,"groupBy"),$h=class extends fe{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}},jS=Ee($h,"timeInterval"),Bh=class extends fe{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()}},qS=Ee(Bh,"bufferTime"),Hh=class extends fe{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)}},zS=Ee(Hh,"delay"),Wh=class extends fe{constructor(t,e){super(t),this.selector=e}error(t){this.dispose(),this.selector(t)(this.sink)}},zh=Ee(Wh,"catchError"),Gh=class extends as{tryComplete(){let t=this.context.inners.delete(this);super.dispose(),t&&this.context.checkComplete()}next(t){this.sink.next(t),this.context.expandValue(t)}},jh=class extends cs{constructor(t,e){super(t,e),this.project=e,this.inners=new Set,this.sourceCompleted=!1}next(t){this.sink.next(t),this.expandValue(t)}expandValue(t){let e=new Gh(this.sink,t,this);this.currentSink=e,this.complete=this.tryComplete,e.complete=e.tryComplete,this.inners.add(e),e.subscribe(this.makeSource(t,this.index++))}complete(){this.sourceCompleted=!0,this.checkComplete()}checkComplete(){this.sourceCompleted&&this.inners.size===0&&(this.resetComplete(),super.complete())}tryComplete(){this.sourceCompleted=!0,this.checkComplete()}},JS=Ee(jh,"expand");var XS=()=>i=>new Promise((t,e)=>{let r;new ss(i,o=>r=o,e,()=>t(r))}),QS=()=>i=>{let t;return new ReadableStream({start(e){t=new ss(i,e.enqueue.bind(e),e.error.bind(e),e.close.bind(e))},cancel(){t.dispose()}})},Le=(i=He,t=He,e=He)=>r=>new ss(r,i,t,e),Jh=class extends fe{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)}))}},tc=Ee(Jh,"tap"),Xh=class extends fe{constructor(t,e){super(t),this.timeout=e,this.id=setTimeout(()=>this.error(new Qa(this.timeout)),this.timeout)}next(t){super.next(t),clearTimeout(this.id),this.next=super.next}dispose(){clearTimeout(this.id),super.dispose()}},Qh=Ee(Xh,"timeout"),YS=(i=1/0)=>t=>{if(t instanceof pr){let e=xe(r=>{let o=i,s=new fe(r);s.error=n=>{o-- >0?s.subscribe(t):r.error(n)},s.sourceId=e.id,s.subscribe(t)},"retry",[i]);return e.source=t,lt.pipe(e),e}else return e=>{let r=i,o=new fe(e);o.error=s=>{r-- >0?t(o):e.error(s)},t(o)}};var gn=(e=>(e[e.AUTO_SWITCH_NEW_DEVICE=0]="AUTO_SWITCH_NEW_DEVICE",e[e.WAIT_CURRENT_DEVICE=1]="WAIT_CURRENT_DEVICE",e))(gn||{}),ds=class ds extends rs{constructor(e,r){super({mediaType:e,PlayerClass:r});l(this,"isRemote",!1);l(this,"deviceId");l(this,"groupId","");l(this,"label","");l(this,"sourceTrack");l(this,"enableAutoSwitchWhenRecapturing",!0);l(this,"_isRecapturing",!1);l(this,"_lastRecaptureTime",0);l(this,"_onMuteTimeoutId",-1);l(this,"_encodeCheckTimeoutId",-1);l(this,"recaptureMode",0);l(this,"profile")}get enableEncodeFrame(){return!1}get isPublishing(){return this.state.toString()==="publishing"}get isPublished(){return this.state==="publish"}get isUseCustomSource(){return this.sourceTrack&&this.mediaTrack&&this.sourceTrack!==this.mediaTrack}encodeFrame(e,r){throw new Error("Method not implemented.")}installTrackEvent(e){At(e,e).add(M.MUTE,this.onTrackMuted).add(M.UNMUTE,this.onTrackUnmuted).add(M.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===M.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){ut(e)}setStateToReady(){}capture(e){return y(this,null,function*(){var r;try{let o=_e();V.emit(F.LOCAL_TRACK_CAPTURE_START,{track:this});let s;e.customSource?(s=new MediaStream,s.addTrack(e.customSource)):((r=this.sourceTrack)==null||r.stop(),s=yield jg(e));let n=s.getTracks()[0];return yield this.setInputMediaStreamTrack(n),e.customSource||(this.sourceTrack=n,this.updateDeviceIdInUse(),this.listenDeviceChange()),V.emit(F.LOCAL_TRACK_CAPTURE_SUCCESS,{track:this,cost:_e()-o}),s}catch(o){throw V.emit(F.LOCAL_TRACK_CAPTURE_FAILED,{track:this,error:o}),this.log.error(`getUserMedia error observed ${o}`),o}})}setOutputMediaStreamTrack(e){var r;if(super.setOutputMediaStreamTrack(e),this.setStateToReady(),this.isPublishing||this.isPublished)return(r=this.room)==null?void 0:r.replaceTrack(this)}get hasFlag(){var r,o;let e=Bo(((r=this.room)==null?void 0:r.localPublishFlag)||0,((o=this.room)==null?void 0:o.userId)||"");return this.mediaType===4&&e.hasVideo||this.mediaType===1&&e.hasAudio||this.mediaType===2&&e.hasAuxiliary}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),Promise.all([r,new Promise((o,s)=>y(this,null,function*(){var a,u;this.hasFlag?o():Ae(be(e,"local-publish-flag-changed"),zt(()=>this.hasFlag),Xe(Ya(be(this,le.INIT),be(this,"ready"))),Le(o)),!((((u=(a=this.room)==null?void 0:a.networkQuality)==null?void 0:u.uplinkNetworkQuality)||0)>3)&&(this._encodeCheckTimeoutId=setTimeout(()=>{var p,g,T,A,C,D;if(!((((g=(p=this.room)==null?void 0:p.networkQuality)==null?void 0:g.uplinkNetworkQuality)||0)>3)&&this.isPublished&&this.isMediaTrackActive){let w=this.kind===M.AUDIO,O=this.stat.bytesSent>0;if(X[O?"addSuccessEvent":"addFailedEvent"]({key:w?503700:513702}),!w){let Y=((A=(T=this.room)==null?void 0:T.videoCodec)==null?void 0:A.toUpperCase())||"H264",ue={H264:513704,H265:513705,VP8:513706}[Y];ue&&X[O?"addSuccessEvent":"addFailedEvent"]({key:ue})}O||(X.addEnum({key:w?503701:513703,value:qo()}),Je.uploadEvent({log:`stat-encode-failed-${this.kind}-${ba()||zo()}`,userId:this.userId}),this.log.warn(w?"encode failed":`${(D=(C=this.room)==null?void 0:C.videoCodec)==null?void 0:D.toUpperCase()} encode failed`),this.emit("6",this),s(new de({message:`${this.strMediaType} encode failed`,code:w?q.AUDIO_ENCODE_FAILED:q.VIDEO_ENCODE_FAILED})))}},5e3))}))])}unpublish(){this.room&&this.room.localTracks.delete(this),V.emit(F.LOCAL_TRACK_UNPUBLISHED,{track:this})}updateDeviceIdInUse(){return y(this,null,function*(){if(this.sourceTrack&&cn){let{deviceId:e,groupId:r}=this.sourceTrack.getSettings(),{label:o}=this.sourceTrack;(yield Wg({newDeviceId:e,oldDeviceId:this.deviceId,oldGroupId:this.groupId,oldLabel:this.label,kind:this.kind}))||(this.deviceId=e,this.label=o,r&&(this.groupId=r),mn().then(n=>{let a=n.find(u=>u.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.sourceTrack||this.kind===M.AUDIO&&!Hg(this.sourceTrack)||this.kind===M.VIDEO&&!Bg(this.sourceTrack)||this._isRecapturing||e&&Dr&&Tt)}onTrackMuted(){if(super.onTrackMuted(),zg(),!!this.isNeedToRecapture(!0)){if(Date.now()-this._lastRecaptureTime<Ls){setTimeout(()=>this.onTrackMuted(),Ls);return}this._onMuteTimeoutId=setTimeout(()=>y(this,null,function*(){var e;if((e=this.sourceTrack)!=null&&e.muted){if((ht||pt)&&document.visibilityState!=="visible")return;this.recapture(yield this.getRecoverCaptureDeviceId())}}),5e3)}}onTrackUnmuted(){super.onTrackUnmuted(),this._onMuteTimeoutId>0&&clearTimeout(this._onMuteTimeoutId)}onTrackEnded(){return y(this,null,function*(){if(Ut(ds.prototype,this,"onTrackEnded").call(this),!!this.isNeedToRecapture()&&this.recaptureMode===0){if(Date.now()-this._lastRecaptureTime<Ls){setTimeout(()=>this.onTrackEnded(),Ls);return}this.emit("7"),this.recapture(yield this.getRecoverCaptureDeviceId())}})}recapture(e){return y(this,null,function*(){var o;if(this._isRecapturing||!this.sourceTrack)return;this.log.warn("recapture trying"),(o=this.sourceTrack)==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 Yt():yield Zt()).find(a=>a.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}),V.emit(F.LOCAL_TRACK_RECAPTURE,{track:this})}).catch(s=>{this._isRecapturing=!1,this.log.warn(`recapture failed ${s.message}`),this.emit("5",s),V.emit(F.LOCAL_TRACK_RECAPTURE,{track:this,error:s})})})}getRecoverCaptureDeviceId(){return y(this,null,function*(){let e=this instanceof cr;if(e&&this.facingMode)return this.facingMode;let{deviceId:r}=this;if(r){let o=(rc.get(r)||0)+1;if(rc.set(r,o),o>=3&&this.enableAutoSwitchWhenRecapturing){let s=e?(yield Zt()).find(n=>!rc.has(n.deviceId)):(yield Yt()).find(n=>!rc.has(n.deviceId));s&&(this.log.warn(`${r} capture fail ${o} times, change new ${s.deviceId}`),r=s.deviceId)}}return r})}stopCapture(){var e;this.sourceTrack&&(this.sourceTrack.stop(),this.uninstallTrackEvent(this.sourceTrack)),(e=this.manager)==null||e.removeInput(this)}close(){super.close(),this.stopCapture()}};K([et(le.INIT,"ready",{ignoreError:!0,sync:!0})],ds.prototype,"setStateToReady",1),K([is()],ds.prototype,"capture",1),K([et("ready","publish",{ignoreError:!0,success(){this.room.localTracks.add(this),V.emit(F.LOCAL_TRACK_PUBLISHED,{track:this,room:this.room}),this.emit("4",{mediaType:this.strMediaType,state:"started",prevState:"starting"})},fail(e){let r="error";if(e.cause instanceof de){let o=e.cause;o.message.includes("timeout")?r="timeout":o.code===q.API_CALL_ABORTED&&(r="api-call")}this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:"starting",reason:r,error:e.cause||e})}}),ou(521714,!1)],ds.prototype,"publish",1),K([Me(e=>function(){return y(this,null,function*(){let r=this.state==="publish"?"started":"starting";e.call(this),this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:r,reason:"api-call"}),clearTimeout(this._encodeCheckTimeoutId)})}),et([],"ready",{sync:!0})],ds.prototype,"unpublish",1);var Lr=ds,rc=new Map;V.on(F.SWITCH_DEVICE_SUCCESS,i=>{i.track.deviceId&&rc.delete(i.track.deviceId)});var Kr=class i extends Lr{constructor(e){super(1,tu);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,"earMonitorGainNode",new gt);l(this,"_output",new gt);l(this,"codecPipeline",[]);l(this,"stat",{bytesSent:0,packetsSent:0,audioLevel:0,totalAudioEnergy:0});l(this,"mixedAudioReferenceMap",new Map);l(this,"isAudioContextLongSuspended",!1);this.manager=e,this.pipeline=new ln(e),this.pipeline.source.pipeTo(this.player.pipeline.volumeMeter),this.pipeline.gain.pipeTo(this.earMonitorGainNode).pipeTo(this._output),this.pipeline.gain.pipeTo(this.player.pipeline.volumeMeterAfter3A),this.handleMicrophoneAdded=this.handleMicrophoneAdded.bind(this),this.handleMicrophoneRemoved=this.handleMicrophoneRemoved.bind(this),V.on(F.AUDIO_CONTEXT_LONG_SUSPENDED,this.handleAudioContextLongSuspended,this)}get dbVolume(){return Kd.isRunning?this.player.pipeline.volumeMeter.getVolumeDb():Math.floor(Math.max(10*Math.log10(this.volume)+100,0))}getAudioLevel(){let e=(this.volume||super.getAudioLevel())*this.captureVolume;return e>1?1:e}getInternalAudioLevelAfter3A(){if(this.pipeline.aec.node||this.pipeline.denoiser.node)return this.player.getInternalAudioLevelAfter3A()}setInputMediaStreamTrack(e){return y(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 Ut(i.prototype,this,"setInputMediaStreamTrack").call(this,e),this.updatePlayingState(!!e)})}capture(n){return y(this,arguments,function*({deviceId:e,customSource:r,useExactDeviceId:o=!0,retryWhenExactFailed:s}){let a=yield Ut(i.prototype,this,"capture").call(this,{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});return so(),a})}switchDevice(e){return y(this,null,function*(){if(this.mediaTrack){if(this.deviceId===e&&!this.isUseCustomSource)if(e===Uo){if(yield dh(this.groupId,this.label))return}else return;try{this.log.info(`switchDevice audio to: ${e}`),this.sourceTrack&&this.sourceTrack.stop(),yield this.capture({deviceId:e,useExactDeviceId:!0,retryWhenExactFailed:!1}),V.emit(F.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(){it&&!it.listeners("audioInputRemoved").includes(this.handleMicrophoneRemoved)&&it.on("audioInputRemoved",this.handleMicrophoneRemoved,this)}handleMicrophoneRemoved(e){return y(this,null,function*(){if(e.deviceId===this.deviceId){let r=this.recaptureMode===1;if(this.log.warn(`RecaptureMode: ${gn[this.recaptureMode]}. Current microphone is lost: ${JSON.stringify(e)}`),this.recaptureMode===0){st(this.userId,{eventId:2003,param1:6,streamType:1});let o=yield Yt();o[0]?this.recapture(o[0].deviceId):r=!0}r&&it.on("audioInputAdded",this.handleMicrophoneAdded,this)}})}handleMicrophoneAdded(e){this.recaptureMode===1&&e.deviceId!==this.deviceId||(it.off("audioInputAdded",this.handleMicrophoneAdded,this),this.log.warn(`microphone added: ${JSON.stringify(e)}`),this.recapture(e.deviceId))}update3A(s){return y(this,arguments,function*({echoCancellation:e,noiseSuppression:r,autoGainControl:o}){let n=this.sourceTrack||this.mediaTrack;if(!n)return;let a=n.getConstraints(),u=!1;!x(e)&&e!==this.profile.echoCancellation&&(this.profile.echoCancellation=e,a.echoCancellation=e,u=!0),!x(r)&&r!==this.profile.noiseSuppression&&(this.profile.noiseSuppression=r,a.noiseSuppression=r,u=!0),!x(o)&&o!==this.profile.autoGainControl&&(this.profile.autoGainControl=o,a.autoGainControl=o,u=!0),u&&($t||Tt?yield n.applyConstraints(a).catch(m=>this._log.warn("update3A failed: ",m)):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})}setAudioVolume(e){super.setAudioVolume(0),ht&&this.player.setMuted(!0),this.earMonitorGainNode.node||(this.earMonitorGainNode.setNode(We().createGain()),this._output.setNode(We().destination)),this.earMonitorGainNode.node.gain.value=e}enableTrackANS(e){return this.update3A({noiseSuppression:e})}enableTrackAEC(e){if(this.sourceTrack&&!(Tt||ht))return this.update3A({echoCancellation:e})}addDenoiser(e){var r;if(Qr<=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.enableTrackANS(!1)}mixAudioReference(e,r){if(this.mixedAudioReferenceMap.has(r))return;this.log.info(`mixAudioReference() => ${r}`);let o=qa(e),s=new gt,n=We().createGain();n.gain.value=1;let a=new gt;s.pipeTo(a).pipeTo(this.pipeline.mixNode),s.setNode(o),a.setNode(n),this.mixedAudioReferenceMap.set(r,[s,a])}unMixAudioReference(e){let[r,o]=this.mixedAudioReferenceMap.get(e)||[];r&&(this.log.info(`unMixAudioReference() => ${e}`),r.deleteNode(),o==null||o.deleteNode(),this.mixedAudioReferenceMap.delete(e))}setAudioReferenceVolume(e,r){let[o,s]=this.mixedAudioReferenceMap.get(e)||[];s!=null&&s.node&&(s.node.gain.value=r/100,this.log.info(`setAudioReferenceVolume() => ${e} ${s.node.gain.value}`))}addAudioProcessor(e,r,o){this.pipeline.silentNode.setNode(o),this.pipeline.mixNode.setNode(r),this.pipeline.aec.setNode(e)}removeDenoiser(e){if(this.pipeline.denoiser.node===e)return this.pipeline.denoiser.deleteNode(),this.enableTrackANS(!0)}removeAudioProcessor(e){this.pipeline.aec.node===e&&(this.pipeline.aec.deleteNode(),this.pipeline.silentNode.deleteNode(),this.pipeline.mixNode.deleteNode())}close(){this.mixedAudioReferenceMap.forEach(([e,r])=>{e.deleteNode(),r.deleteNode()}),this.mixedAudioReferenceMap.clear(),this.pipeline.remove(),this.earMonitorGainNode.deleteNode(),this._output.deleteNode(),it.off("audioInputAdded",this.handleMicrophoneAdded,this),it.off("audioInputRemoved",this.handleMicrophoneRemoved,this),V.off(F.AUDIO_CONTEXT_LONG_SUSPENDED,this.handleAudioContextLongSuspended,this),super.close()}recapture(e){return y(this,null,function*(){try{yield Ut(i.prototype,this,"recapture").call(this,e)}catch(r){let o=(yield Yt()).find(s=>s.deviceId!==e);if(o)yield Ut(i.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,ntp:li()}):r,e):e}get enableEncodeFrame(){return this.manager?this.manager.encodePipeline.some(e=>e):!1}handleAudioContextLongSuspended({isSuspended:e}){if(this.pipeline.isProcessEnabled)if(e){this.isAudioContextLongSuspended=!0,this.log.warn(`context has suspended for ${nh/1e3} seconds, change to source audio${mr?"":", non-Safari"}`);let r=this.sourceTrack||this.mediaTrack;r&&this.setOutputMediaStreamTrack(r)}else this.isAudioContextLongSuspended=!1,this.log.warn("context has resumed, change to processed audio"),this.pipeline.track&&this.setOutputMediaStreamTrack(this.pipeline.track)}setOutputMediaStreamTrack(e){if(this.isAudioContextLongSuspended){let r=this.sourceTrack||this.mediaTrack;r&&(e=r)}super.setOutputMediaStreamTrack(e)}};var us=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 n=t;n<=e;n++){let a=this.dataView.getInt8(n);switch(a){case 0:case 1:case 2:case 3:o===2&&(r.push(3),o=0),a==0?o++:o=0,r.push(a);break;default:o=0,r.push(a);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 n=t;n<=e;n++)switch(this.dataView.getInt8(n)){case 0:o++,r.push(this.dataView.getInt8(n));break;case 3:o!==2&&r.push(this.dataView.getInt8(n)),o=0;break;default:r.push(this.dataView.getInt8(n)),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 n=this.dataView.getUint8(s);if(e++,n===255)t+=255;else{t+=n;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 Tu=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 a=0;a<r;a++)s.push(255);s.push(o);let n=new DataView(t);return s.push(...new Uint8Array(n.buffer)),s.push(128),new us(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 s=9-this.getNaluCount(t.data);if(s<=0)return 0;let n=r.splice(0,s).reverse().map(this.encodeSEINalu.bind(this)),a=n.reduce((T,A)=>T+A.dataView.byteLength,0),u=new ArrayBuffer(a+t.data.byteLength),m=new DataView(u),p=new DataView(t.data),g=0;for(let T=0;T<n.length;T++)for(let A=0;A<n[T].dataView.byteLength;A++)m.setInt8(g++,n[T].dataView.getInt8(A));for(let T=0;T<t.data.byteLength;T++)m.setInt8(g++,p.getInt8(T));return t.data=u,n.length}return 0}};var ls=class ls extends Lr{constructor(e,r=4){super(r,qt);l(this,"profile",J({},ea));l(this,"avoidCropping",!1);l(this,"_scaleResolutionDownBy");l(this,"stat",{bytesSent:0,packetsSent:0,framesEncoded:0,framesSent:0,frameWidth:0,frameHeight:0,fpsCapture:0,framesCaptured:0});l(this,"small");l(this,"isNeedToSetBandwidth");l(this,"muteImage");l(this,"manager");l(this,"_seiCodec",new Tu);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(ge(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(!(!cn||!this.mediaTrack))return this.mediaTrack.getSettings().facingMode}get contentHint(){var e;return((e=this._inputTrack)==null?void 0:e.contentHint)||""}get isQosClearFirst(){var e;return((e=this._inputTrack)==null?void 0:e.contentHint)==="detail"}setMute(e){return y(this,null,function*(){var r,o,s;if(De(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,Ut(ls.prototype,this,"setMute").call(this,!1)}else this.muteImage&&(yield(s=this.manager)==null?void 0:s.deleteWatermark("mute"),this.muteImage=void 0),Ut(ls.prototype,this,"setMute").call(this,e)})}capture({deviceId:e,facingMode:r,useExactDeviceId:o=!0,customSource:s,retryWhenExactFailed:n=!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:n,customSource:s})}setProfile(e){let r=this.fallbackProfile(e);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(ge(J({},this.profile),{width:1920,height:1080})))}applyProfile(){return y(this,null,function*(){var a;if(!this.mediaTrack)return;let{width:e=0,height:r=0}=(this.sourceTrack||this.mediaTrack).getSettings(),o=e*r,s=this.settings,n=s.height!==this.profile.height||s.width!==this.profile.width||s.frameRate!==this.profile.frameRate;if(n&&(wt===16&&this.deviceId?yield this.recapture(this.deviceId):(yield(a=this.sourceTrack||this.mediaTrack)==null?void 0:a.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){this.isNeedToSetBandwidth=!1;let{width:u=0,height:m=0}=(this.sourceTrack||this.mediaTrack).getSettings(),p=u*m;if(n&&p&&o&&p===o){this.log.warn("set bandwidth failed: resolution is not changed");return}return this.room.setBandWidth({bandwidth:this.profile.bitrate,type:M.VIDEO,videoType:M.BIG})}})}get settings(){let e={width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate},r=this.sourceTrack||this.mediaTrack;return cn&&r&&Object.assign(e,r.getSettings()),e}get scaleResolutionDownBy(){return this._scaleResolutionDownBy?this._scaleResolutionDownBy:ad(this.settings,this.profile)}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 y(this,null,function*(){try{if(!this.isNeedToSwitchDevice(e)&&!this.isUseCustomSource)return;let r={useExactDeviceId:!0,retryWhenExactFailed:!1};if(e==="user"||e==="environment"){r.facingMode=e;try{if((Ia||en)&&e==="environment"&&Wm){let s=(yield Zt(!0)).map(a=>{var u;return ge(J({},a),{capabilities:(u=a.getCapabilities)==null?void 0:u.call(a)})}).filter(a=>{var u,m;return(m=(u=a.capabilities)==null?void 0:u.facingMode)==null?void 0:m.includes("environment")}),n=s[0];s.forEach(a=>{var g,T,A,C;let{capabilities:u}=a,m=(g=u.width)!=null&&g.max&&((T=u.height)!=null&&T.max)?u.width.max*u.height.max:0,p=(A=n.capabilities.width)!=null&&A.max&&((C=n.capabilities.height)!=null&&C.max)?n.capabilities.width.max*n.capabilities.height.max:0;m>p&&(n=a)}),n!=null&&n.capabilities&&(delete r.facingMode,this._log.info("switch to max res camera",n),r.deviceId=n.deviceId)}}catch(o){this._log.warn("get max res camera failed",o)}}else r.deviceId=e;this.sourceTrack&&this.sourceTrack.stop(),yield this.capture(r),V.emit(F.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}})}updateSmallConfig(e){var o,s;this._log.info(`update small stream config: ${JSON.stringify(e)}`);let r=!this.small;this.small=this.fallbackProfile(e,!0),(o=this.manager)==null||o.update(),r&&((s=this.room)==null||s.enableSmall(!0)),this.log.info("update small stream config success")}fallbackProfile(e,r=!1){let o=e.width>e.height,s=J({},e);return e.width*e.height<=19200&&pt&&Xr&&(this.log.warn(`${r?"small ":""}resolution is ${e.width}*${e.height}, fallback to 240*180 for android chrome`),s.width=o?240:180,s.height=o?180:240,s.bitrate=Math.max(e.bitrate,150)),e.width*e.height>1280*720&&dm&&(s.width=o?1280:720,s.height=o?720:1280,this.log.warn("reset to 1280 * 720 on iOS 13~14")),nm(wr,"14.3")&&am(wr,"14.0",!0)&&this.on("7",()=>{let n=this.profile.width>this.profile.height;this.profile.width*this.profile.height>640*480?(this.profile.width=n?640:480,this.profile.height=n?480:640,this.log.warn("reduce the resolution to 480p on iOS 14.0 ~ 14.2")):this.profile.width*this.profile.height>640*360&&(this.profile.width=n?640:360,this.profile.height=n?360:640,this.log.warn("reduce the resolution to 360p on iOS 14.0 ~ 14.2"))}),!r&&this.avoidCropping&&(Xr||$t)&&!lm()&&e.width*e.height<=640*360&&e.width/e.height===16/9&&(this._scaleResolutionDownBy=1280/e.width,e.width=1280,e.height=720,this.log.warn(`capture 720p, scale: ${this._scaleResolutionDownBy}`)),s}stopSmall(){var e,r;this.small&&(delete this.small,(e=this.manager)==null||e.update(),(r=this.room)==null||r.enableSmall(!1))}listenDeviceChange(){it&&!it.listeners("videoInputRemoved").includes(this.handleCameraRemoved)&&it.on("videoInputRemoved",this.handleCameraRemoved,this)}handleCameraRemoved(e){return y(this,null,function*(){if(e.deviceId===this.deviceId){let r=this.recaptureMode===1;if(this.log.warn(`RecaptureMode: ${gn[this.recaptureMode]}. Current camera is lost: ${JSON.stringify(e)}`),this.recaptureMode===0){st(this.userId,{eventId:2003,param1:7,streamType:2});let o=yield Zt();o[0]?this.recapture(o[0].deviceId):r=!0}r&&it.on("videoInputAdded",this.handleCameraAdded,this)}})}handleCameraAdded(e){return y(this,null,function*(){this.recaptureMode===1&&e.deviceId!==this.deviceId||(it.off("videoInputAdded",this.handleCameraAdded,this),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,n)=>n?n({frame:s,mediaType:o}):s,e)}get enableEncodeFrame(){return this.manager?this.manager.encodePipeline.some(e=>e):!1}play(e,r){return x(this.mirror)&&!this.isScreen&&this.setMirror("view"),super.play(e,r)}close(){it.off("videoInputAdded",this.handleCameraAdded,this),it.off("videoInputRemoved",this.handleCameraRemoved,this),super.close()}recapture(e){return y(this,null,function*(){try{yield Ut(ls.prototype,this,"recapture").call(this,e)}catch(r){let o=(yield Zt()).find(s=>s.deviceId!==e);if(o)yield Ut(ls.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))}setRotation(e){this.manager&&(this.isScreen||x(e)||e!==this.rotation&&(this.rotation=e,this.manager.rotation=e))}};K([ao(function(e){this.setContentHint(e.contentHint||"motion")})],ls.prototype,"capture",1);var cr=ls;var ep={};di(ep,{REPORT_TYPE:()=>js,buildSSOPackage:()=>Ei,bytes2ms:()=>uf,calculateScaleResolutionDownNumber:()=>ad,concatArrayBuffers:()=>yf,convertObjectNumberToInt:()=>ua,copyProperties:()=>df,deepClone:()=>Vo,deepCloneBasic:()=>td,deepMerge:()=>vr,delay:()=>la,fibonacci:()=>Fo,formatedTime:()=>id,getConstructorName:()=>$s,getContainerFromElement:()=>_f,getEnv:()=>nf,getFirst16Bits:()=>bf,getInternalVersion:()=>Ef,getLast16Bits:()=>Af,getLoggerUrl:()=>gi,getMediaStreamTrackInfo:()=>nd,getMuteStateFromFlag:()=>Bo,getNetworkType:()=>na,getNumNetworkType:()=>rd,getReconnectionTimeout:()=>mf,getStringByteLength:()=>If,getTurnServer:()=>Tf,getUint32Version:()=>od,getValueType:()=>ct,getViewListFromView:()=>Ws,glog:()=>aa,ipv4ToUint32:()=>Hs,isArray:()=>ot,isAudioWorkletSupported:()=>ff,isBoolean:()=>Ze,isConstructor:()=>$o,isEmpty:()=>Bs,isFunction:()=>Ge,isLangChinese:()=>Rr,isMediaStreamTrack:()=>hf,isNumber:()=>ke,isObject:()=>or,isOverseaSdkAppId:()=>fi,isPlainObject:()=>Ft,isPortrait:()=>zl,isPromise:()=>Yi,isRemoteTrack:()=>pf,isRotate90Or270:()=>sr,isSetSinkIdSupported:()=>gf,isString:()=>De,isUndefined:()=>x,loadImage:()=>Gs,loadVideo:()=>Sf,ms2bytes:()=>lf,ms2samples:()=>ql,normalizeUrl:()=>Ho,performanceNow:()=>_e,promiseAny:()=>ca,samples2ms:()=>jl,setNetworkType:()=>cf,stringify:()=>lr,stringifyIncludeValue:()=>da,throttlePromise:()=>sd});var KS=[-1,-1,1,-1,-1,1,1,1],ey=[0,0,1,0,0,1,1,1];var mo=class mo extends le{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 Nt){e.ctx&&r.create2d&&(typeof OffscreenCanvas=="function"&&wt!==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(ey),this.positionBuffer=this.createBuffer(KS),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:q.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 It&&this.render(e)||this.context instanceof Nt&&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 It){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,n,a,u,m,p){let g=!x(a)&&!x(u)&&!x(m)&&!x(p);return this.ctx2d&&e?(e instanceof ImageData?(g?this.ctx2d.putImageData(e,r,o,a,u,m,p):this.ctx2d.putImageData(e,r,o),this.emit(mo.RENDER,this.ctx2d.canvas)):(g?this.ctx2d.drawImage(e,a,u,m,p,r,o,s,n):this.ctx2d.drawImage(e,r,o,s,n),this.emit(mo.RENDER,e)),typeof VideoFrame!="undefined"&&e instanceof VideoFrame&&e.close(),!0):!1}drawBackGround2d(e){this.ctx2d&&(this.ctx2d.save(),this.ctx2d.fillStyle=e,this.ctx2d.fillRect(0,0,this.width,this.height),this.ctx2d.restore())}getInfo(){var g;let{totalFrames:e,x:r,y:o,width:s,height:n,name:a,cost:u}=this,m=Date.now(),p=(e-this.lastInfo.totalFrames)/((m-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:r,y:o,width:s,height:n,timestamp:m,fps:p,name:a,cost:u},J({parent:(g=this.input)==null?void 0:g.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}};l(mo,"RENDER","render"),K([et(le.INIT,"connected",{sync:!0})],mo.prototype,"connect",1),K([et("connected",le.INIT,{ignoreError:!0,sync:!0})],mo.prototype,"disconnect",1),K([et([],"closed",{sync:!0})],mo.prototype,"close",1);var Rt=mo;var nE=Ae(Eh(250),uo(()=>performance.now()),Mi()),aE=i=>t=>{let e=0,r=performance.now();Ae(nE,uo(o=>(o-r)/i>>0),zt(o=>o!=e?(e=o,!0):!1))(t)},_u=i=>t=>{let e=performance.now();Ae(nE,uu(r=>r-e<i),Ur(1))(t)};var ry=[0,1,1,1,0,0,1,0],ms=class extends Rt{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 Nt?this.ctx2d=e.ctx||null:e.available&&(r!=null&&r.mirrorUpAndDown)&&this.setTexBuffer(ry)}start(e){this.log.info(`${this.name} start render ${e} fps`),dt.clearTask(this._intervalId),this._intervalId=dt.run("intervalInWorker",()=>{if(e!==this.context.frameRate&&(dt.clearTask(this._intervalId),this.start(this.context.frameRate)),this.requestFrame(this._sequence++),this.checkGLError&&this.context instanceof It){let o=this.context.ctx.getError();o&&this.context.destroy(new de({code:q.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(),this.emit(Rt.RENDER,this.context._canvas),!0):!1}addInput(e,...r){super.addInput(e,...r),this.start(this.context.frameRate)}update(e=0){this._intervalId&&(dt.clearTask(this._intervalId),this._intervalId=0,e===1&&(this.log.info(`${this.name} use requestVideoFrameCallback`),this.checkVisibilityChange=()=>{document.hidden&&(this.start(this.context.frameRate),this.log.info(`${this.name} use timer`),document.removeEventListener("visibilitychange",this.checkVisibilityChange))},document.addEventListener("visibilitychange",this.checkVisibilityChange))),this.requestFrame(this._sequence++)}removeInput(e){super.removeInput(e),dt.clearTask(this._intervalId)}resize(e,r){super.resize(e,r),this.context.setSize(e,r)}close(){super.close(),dt.clearTask(this._intervalId),document.removeEventListener("visibilitychange",this.checkVisibilityChange)}},En=class extends ms{constructor(e,r){super(e,r);l(this,"_videoTrack");l(this,"_muteOb");l(this,"_closedOb",be(this,"closed"));l(this,"_subscription");l(this,"_canvasContainer");Number(_i)<17&&(this._canvasContainer=document.createElement("div"),this._canvasContainer.style.display="none"),[this._videoTrack]=e._canvas.captureStream().getVideoTracks(),this._muteOb=be(this._videoTrack,"mute"),Ae(be(this._videoTrack,"ended"),Xe(this._closedOb),Le(()=>{this.context.destroy(new de({code:q.VIDEO_MANAGER_ERROR,extraCode:8,message:"video track ended"}))}))}enableCheckMute(){this._subscription=Ae(this._muteOb,Xe(this._closedOb),Oi(_u(5e3)),zt(()=>{var e;return!!((e=this._videoTrack)!=null&&e.muted)&&!document.hidden}),Le(()=>{this.context.destroy(new de({code:q.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 En{render(t){var e;return!!((e=this.input)!=null&&e.requestFrame(t))}};var Su=class extends En{constructor(e,r,o){super(e,{name:"smallDestination",logger:o});this.resolution=r}resize(e,r){let o,s=e*r,n=this.resolution.width*this.resolution.height;this.log.info(`big res: ${e}*${r} small res: ${this.resolution.width}*${this.resolution.height} `),s>n?o=s/n:(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/19200),super.resize(e/Math.sqrt(o),r/Math.sqrt(o))}};var ic=class extends Rt{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);l(this,"waitingFirstFrame",!0);l(this,"shouldUpdate",!0);this._autoResize=(r==null?void 0:r.autoResize)!==!1,wt===16&&(this._canvasRendered=bt(),Ae(this._canvasRendered,Za(this._image),lo(o=>o instanceof HTMLCanvasElement?be(o,"rendered"):ec()),Xe(be(this,"closed")),Le(()=>{this.update()})))}onFirstFrame(){this.waitingFirstFrame=!1}tryVideoFrameCallback(){if(!this.shouldUpdate)return;let e=this.image;this.videoCallbackId&&e.cancelVideoFrameCallback(this.videoCallbackId),Ni()&&!document.hidden&&(this.videoCallbackId=e.requestVideoFrameCallback((r,o)=>{this.waitingFirstFrame&&this.onFirstFrame(),document.hidden||(this._totalFrames=o.presentedFrames,this.update(1))}))}_render(e,r){var a;let{width:o,height:s}=this,{image:n}=this;if(n instanceof HTMLVideoElement){if(this.tryVideoFrameCallback(),{videoWidth:o,videoHeight:s}=n,!o||!s)return!1;n.width=o,n.height=s}else if(n instanceof HTMLImageElement||n instanceof ImageData||n instanceof ImageBitmap){if({width:o,height:s}=n,n!==this._lastImage)this._lastImage=n;else if(o===this.width&&s===this.height)return!0}else n instanceof HTMLCanvasElement||n instanceof OffscreenCanvas?({width:o,height:s}=n,this._lastImage=n):typeof VideoFrame!="undefined"&&n instanceof VideoFrame&&({displayWidth:o,displayHeight:s}=n,(a=this._lastImage)==null||a.close(),this._lastImage=n);if(!this._autoResize)return!0;if(this.width===o&&this.height===s&&this.totalFrames){if(r){this.useTexture();let u=this.context.ctx;u.texSubImage2D(u.TEXTURE_2D,0,0,0,u.RGBA,u.UNSIGNED_BYTE,n)}}else{if(r){this.useTexture();let u=this.context.ctx;u.texImage2D(u.TEXTURE_2D,0,u.RGBA,u.RGBA,u.UNSIGNED_BYTE,n)}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)}},oc=class extends ic{constructor(e,r,o){super(e,o);this._player=r;this.name="videoPlayerSource",Ae(be(this._player,qe.PLAYER_STATE_CHANGED),Xe(be(this,"closed")),zt(({state:s})=>s==="PLAYING"),Le(()=>{this.tryVideoFrameCallback()}))}get image(){return this._player.element}},fr=class extends oc{get available(){return this._player.isPlaying&&!this.waitingFirstFrame}constructor(t,e,r){super(t,new qt({id:r.name,track:e,muted:!0,container:null,objectFit:"contain",log:r.logger}),r),this.name="videoTrackSource",this._player.play()}replaceTrack(t){this.waitingFirstFrame=!0,this._player.setTrack(t),this._player.play()}close(){super.close(),this._player.stop()}},yu=class extends Rt{constructor(e,r,o){super(e,ge(J({name:"textSource"},o),{create2d:!0}));l(this,"hasChange",!0);l(this,"content","");this.ctx2d.textBaseline="top",this.content=r.content||"",r.font&&(this.font=r.font),r.color&&(this.color=r.color)}set font(e){this.ctx2d&&(this.ctx2d.font=e,this.hasChange=!0)}get font(){var e;return((e=this.ctx2d)==null?void 0:e.font)||""}set color(e){this.ctx2d&&(this.ctx2d.fillStyle=e,this.hasChange=!0)}get color(){var e;return((e=this.ctx2d)==null?void 0:e.fillStyle)||""}render2d(e){return this.ctx2d&&this.hasChange?(this.ctx2d.clearRect(0,0,this.width,this.height),this.drawMultilineText(0,0),this.hasChange=!1,!0):!1}render(e){return!1}resize(e,r){if(!this.ctx2d)return;let{color:o,font:s}=this;super.resize(e,r),this.color=o,this.font=s}drawMultilineText(e=0,r=0,o=1.2){if(!this.ctx2d)return;let s=this.ctx2d.measureText(this.content);r+=s.fontBoundingBoxAscent||s.actualBoundingBoxAscent||0;let n=this.font.match(/(\d+)px/),u=(n?parseInt(n[1],10):16)*o,m=this.content.split(`
|
|
32
|
-
`);for(let p=0;p<m.length;p++)this.ctx2d.fillText(m[p],e,r+p*u)}};var
|
|
31
|
+
`,r.onclick=this.onQuestionClick.bind(this);let o=document.createElement("div");o.className=Qm,o.innerText=`${Cr()?"\u8BE6\u60C5 >":"Detail >"}`,o.onclick=this.onCollapseClick.bind(this);let s=t.content.firstChild,n=s.querySelector(`.${Bd}`);return n.appendChild(o),n.appendChild(r),n.appendChild(e),s}addDiaLog(){Km()||(this._dialogNode=this.createDiaLog(),document.body.appendChild(this._dialogNode),this._dialogNode.onclick=this.onConfirm.bind(this),this._dialogNode.querySelector(`.${ln}`).onclick=t=>t.stopPropagation(),this._bodyPosition=document.body.style.position,document.body.style.position="fixed",$.info("show autoplay dialog"),He.uploadEvent({log:bI}))}deleteDiaLog(){this._dialogNode&&(document.body.removeChild(this._dialogNode),document.body.style.position=this._bodyPosition,this._dialogNode=null)}onConfirm(){$.warn("confirm clicked, try resume stream"),V.emit(F.AUTOPLAY_DIALOG_CLICK_CONFIRM),this.deleteDiaLog()}onCollapseClick(){let t=this._dialogNode.querySelector(`.${yg}`);t.style.visibility=`${this._showDetail?"hidden":"visible"}`,t.style.height=`${this._showDetail?0:"fit-content"}`,this._showDetail=!this._showDetail,this._isCollapseClicked||He.uploadEvent({log:RI}),this._isCollapseClicked=!0}onQuestionClick(){window.open(vg,"_blank"),this._isQuestionClicked||He.uploadEvent({log:vI}),this._isQuestionClicked=!0}},Wd=Ym;var zt=class extends Ur{constructor(e){super(e,M.VIDEO);l(this,"stat",{});l(this,"_calculateTimeout",-1);l(this,"viewMirror",!1);l(this,"objectFit");l(this,"container");l(this,"canvas");l(this,"_preSize",{width:0,height:0});this.mode=e.canvas?1:0,this.container=e.container,this.canvas=e.canvas,x(e.viewMirror)||(this.viewMirror=e.viewMirror),x(e.objectFit)||(this.objectFit=e.objectFit),this.initializeElement()}get isPlaying(){var e;return this._state!=="PLAYING"||this.element&&this.element.paused?!1:((e=this.track)==null?void 0:e.readyState)==="live"&&!this.track.muted}initializeElement(){var r;let e=document.createElement(M.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.elementToRender&&((r=this.container)==null||r.appendChild(this.elementToRender))}bindElementEvents(){let e=super.bindElementEvents();this.handleElementEvent=this.handleElementEvent.bind(this),e&&e.add(M.ENTER_PICTURE_IN_PICTURE,this.handleElementEvent).add(M.LEAVE_PICTURE_IN_PICTURE,this.handleElementEvent).add(M.RESIZE,this.handleElementEvent)}handleTrackEvent(e){var r;return e.type===M.MUTE&&((r=this.stat)!=null&&r.fps)&&(this.stat.fps=0),super.handleTrackEvent(e)}handleElementEvent(e){var o,s,n,a,u,m,p,g;if(this.mode===2)return;super.handleElementEvent(e);let r=e.type;if(r===M.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.container&&this.container!==document.getElementById(this.container.id)&&(this._pausedRetryCount=Bo,this._log.info(`view container ${(s=this.container)==null?void 0:s.id} is recreated`)),this._pausedRetryCount>0&&!Km()&&(this._log.info(`[${Bo-this._pausedRetryCount+1}/${Bo}] ${this.kind} player auto resume when paused`),this.resume(),this._pausedRetryCount--),this.stat.fps&&(this.stat.fps=0)),this.viewMirror&&this.element){let _=this.element.style.transform;r===M.ENTER_PICTURE_IN_PICTURE?this.element.style.transform=_.replace("scaleX(-1)",""):r===M.LEAVE_PICTURE_IN_PICTURE&&!_.includes("scaleX")&&(this.element.style.transform=`${_} scaleX(-1)`)}r===M.RESIZE&&(this._preSize.height!==((n=this.element)==null?void 0:n.videoHeight)||this._preSize.width!==((a=this.element)==null?void 0:a.videoWidth))&&(this._log.info(`video size changed to ${(u=this.element)==null?void 0:u.videoWidth}x${(m=this.element)==null?void 0:m.videoHeight}`),this._preSize.height=((p=this.element)==null?void 0:p.videoHeight)||0,this._preSize.width=((g=this.element)==null?void 0:g.videoWidth)||0,this.emit(qe.RESIZE,{newWidth:this._preSize.width,newHeight:this._preSize.height}))}setCanvas(e,r=1){var o,s,n,a;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(),(n=this.container)==null||n.appendChild(e)):this.element&&((a=this.container)==null||a.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}setPoster(e){this.element&&(this.element.poster=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(qe.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(Mi()&&this.element&&this._calculateTimeout<0){let e=0,r=null,o=(s,n)=>{this.stat.width=n.width,this.stat.height=n.height,r&&(this.stat.fps=Math.round((n.presentedFrames-r.presentedFrames)/(s-e)*1e3)),e=s,r=n,this._calculateTimeout=-1,this.element&&(this._calculateTimeout=setTimeout(()=>{var a;return(a=this.element)==null?void 0:a.requestVideoFrameCallback(o)},2e3))};this.element.requestVideoFrameCallback(o)}}catch(e){this._log.warn("init stat failed",e)}}};function xi(i,t){return y(this,null,function*(){if(!i.audioWorklet)return Promise.reject("audioWorklet is not supported");try{yield i.audioWorklet.addModule(t),$.info("worklet addModule success")}catch(e){throw $.info(`worklet addModule catch error. ${e.message}`),e}})}var Fa;typeof AudioContext!="undefined"?Fa=AudioContext:typeof webkitAudioContext!="undefined"?Fa=webkitAudioContext:typeof mozAudioContext!="undefined"&&(Fa=mozAudioContext);var ih=1500,pr,Cg=-1,Gd=0,$a=-1,rh=!1;Ng();function Ng(){try{if(pr)return;pr=new Fa({sampleRate:48e3}),pr.onstatechange=()=>{$.info(`context state: ${pr.state}${pr.state!=="running"?` visibilityState: ${document.visibilityState}`:""}`),mn()},clearTimeout(Cg)}catch(i){$.error(`initAudioContext failed: ${i} typeof AudioContextClass: ${typeof Fa}`),Cg=setTimeout(Ng,1e3)}}var mn=()=>{pr.state==="suspended"?(Gd=_e(),NI(),mo(),document.addEventListener("click",mn)):pr.state==="interrupted"?mo():(Gd&&(Q.addNumber({key:507800,value:_e()-Gd,split:[0,500,1e3,1500,2e3,3e3,4e3,5e3,1e4,3e4],max:6e4}),Gd=0),DI(),document.removeEventListener("visibilitychange",mn),document.removeEventListener("click",mn))},eh=0,th=-1;function mo(){return new Promise((i,t)=>{if(pr.state==="running")return i();Date.now()-eh<1e3?(clearTimeout(th),th=setTimeout(()=>{eh=Date.now(),pr.resume().then(i,t)},1e3)):(clearTimeout(th),eh=Date.now(),pr.resume().then(i,t))}).catch(i=>{$.warn(`context resume failed: ${i}`),document.addEventListener("visibilitychange",mn)})}document.addEventListener("click",mn);function NI(){$a===-1&&($a=setTimeout(()=>{pr.state==="suspended"&&(rh=!0,V.emit("155",{isSuspended:!0}))},ih))}function DI(){$a!==-1&&(clearTimeout($a),$a=-1,rh&&(rh=!1,V.emit("155",{isSuspended:!1})))}var We=i=>pr;var gt=class{constructor(t){this.name=t;l(this,"node");l(this,"node2");l(this,"pre",new Set);l(this,"next",new Set);l(this,"context");l(this,"connectedNodes",new Set);l(this,"nextInputChannelMap",new Map);l(this,"_channelCount",1)}get channelCount(){return this._channelCount}set channelCount(t){this._channelCount=t,this.setChannelCount(this.node,t),this.setChannelCount(this.node2,t),this.next.forEach(e=>e.channelCount=t)}setChannelCount(t,e){!t||t instanceof ScriptProcessorNode||(t.channelCountMode="explicit",t.channelCount=e||this.channelCount||1)}setContext(t){this.context=t,this.node&&t.addMixWeight()}removeContext(){var t;this.node&&((t=this.context)==null||t.reduceMixWeight()),delete this.context}replaceNode(t){var e;if(t!==this.node)try{this.node?this._disconnect():(e=this.context)==null||e.addMixWeight(),this.node=t,this.setChannelCount(this.node),this.preNodeReconnect(),this.reconnect()}catch(r){$.error(r)}}setNode(t,e){var r;if(!this.node)try{(r=this.context)==null||r.addMixWeight(),this.node=t,this.setChannelCount(this.node),e&&(this.node2=e,this.setChannelCount(this.node2)),this.preNodeReconnect(),this.reconnect(),Q.addSuccessEvent({key:502701})}catch(o){$.error(o),Q.addFailedEvent({key:502701,error:o})}}deleteNode(){var t;if(this.node)try{this._disconnect(),delete this.node,delete this.node2,(t=this.context)==null||t.reduceMixWeight(),this.preNodeReconnect(),Q.addSuccessEvent({key:502702})}catch(e){$.error(e),Q.addFailedEvent({key:502702,error:e})}}preNodeReconnect(){this.pre.forEach(t=>{t.node?t.reconnect():t.preNodeReconnect()})}connectNext(t){this.next.forEach(e=>{let r=this.nextInputChannelMap.get(e);t._connect(e.node,r)||e.connectNext(t)})}_connect(t,e=0){return!this.node||!t?!1:((this.node2||this.node).connect(t,0,e),this.connectedNodes.add(t),!0)}_disconnect(){this.connectedNodes.forEach(t=>{var e;return(e=this.node2||this.node)==null?void 0:e.disconnect(t)}),this.connectedNodes.clear()}reconnect(){this._disconnect(),this.connectNext(this)}pipeTo(t,e=0){return this.next.add(t),t.pre.add(this),this.nextInputChannelMap.set(t,e),t}},jd=class extends gt{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,n=`M${o},${s}`;for(let a=0;a<e.length;a++)s=e[a]/128*100/2,n+=`L${o},${s}`,o+=r;return n}},Ba=class{constructor(){l(this,"source",new gt);l(this,"gain",new gt);l(this,"destination",new gt)}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(We().createGain()),this.gain.node.gain.value=t}replaceSource(t){this.source.replaceNode(Ha(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}},hn=class extends Ba{constructor(e){super();this.context=e;l(this,"aec",new gt("aec"));l(this,"mixNode",new gt("mixNode"));l(this,"silentNode",new gt("silentNode"));l(this,"denoiser",new gt("denoiser"));l(this,"voiceChanger",new gt("voiceChanger"));this.source.pipeTo(this.aec).pipeTo(this.denoiser).pipeTo(this.voiceChanger).pipeTo(this.gain).pipeTo(this.destination),this.silentNode.pipeTo(this.mixNode).pipeTo(this.aec,1)}get isProcessEnabled(){return this.aec.node||this.denoiser.node||this.voiceChanger.node||this.gain.node}connect(){this.context.inputs.has(this)||(this.destination.setNode(this.context.destination),this.source.setContext(this.context),this.aec.setContext(this.context),this.silentNode.setContext(this.context),this.mixNode.setContext(this.context),this.denoiser.setContext(this.context),this.voiceChanger.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.aec.removeContext(),this.silentNode.removeContext(),this.mixNode.removeContext(),this.denoiser.removeContext(),this.voiceChanger.removeContext(),this.gain.removeContext(),this.context.inputs.delete(this))}remove(){this.gain.deleteNode(),this.aec.deleteNode(),this.silentNode.deleteNode(),this.mixNode.deleteNode(),this.denoiser.deleteNode(),this.voiceChanger.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}},qd=class{constructor(){l(this,"audioContext",We("audio-mixer"));l(this,"destination",this.audioContext.createMediaStreamDestination());l(this,"inputs",new Set);l(this,"mixWeight",0);this.destination.channelCount=1}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 Ha(i){let t=Dg.get(i);if(t)return t;let e=We();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 nr=class nr{constructor(t){l(this,"_volume",0);l(this,"_volumeDb",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,V.on(F.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}static get isRunning(){return Date.now()-nr.lastMessageTime<2e3}get node(){return this._audioWorkletNode||this._scriptProcessorNode}preload(){if(!nr.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,s){t=t[0],s=s[0];if(t||s){if(this.isStop)return!1;var i=s&&s[0]?s[0].length:0,h=this.cache.length,a=(i<h?(s[0].set(this.cache.slice(0,i)),this.cache=this.cache.slice(i)):this.unmute&&s[0].set(t[0]),(i<h?s:t)[0]);if(a){let e=0;for(let t=0;t<a.length;++t)e=Math.max(Math.abs(a[t]),e);s=a.reduce((t,e)=>t+e*e,0)/a.length;this.volume=e,this.tick-=a.length,this.tick<0&&(this.tick+=this.intervalTime/1e3*sampleRate,this.port.postMessage({volume:this.volume,volumeDb:Math.max(10*Math.log10(s)+100,0)/100,cacheLen:h,outputLen:i}))}}return!0}}registerProcessor("volume-meter",VolumeMeterWorklet);';nr.workletReady=xi(nr.audioContext,URL.createObjectURL(new Blob([t],{type:"application/javascript"})))}return nr.workletReady.then(()=>this.initAudioWorklet()).catch(t=>(this._log.error(`volumeMeter preload error: ${t}`),this.initScriptProcessor()))}initAudioWorklet(){if(!this._audioWorkletNode)try{this._audioWorkletNode=new AudioWorkletNode(nr.audioContext,"volume-meter");let t=!1;this._audioWorkletNode.port.onmessage=e=>{nr.lastMessageTime=Date.now(),this._volume=e.data.volume||0,this._volumeDb=e.data.volumeDb||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}`),He.logFailedEvent({userId:this._log.userId,eventType:lr.LOAD_WORKLET,error:t}),this.initScriptProcessor()}}initScriptProcessor(){if(!this._scriptProcessorNode)try{this._scriptProcessorNode=We("volume-meter").createScriptProcessor(2048,1,1),this._scriptProcessorNode.onaudioprocess=t=>{nr.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,V.off(F.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}getInternalAudioLevel(){return this._volume}getCalculatedVolume(){return parseFloat(this._volume.toFixed(2))}getVolumeDb(){return Math.floor(this._volumeDb*100)}handleAudioLevelInterval(t){var r;let{interval:e}=t;this._interval=e,(r=this._audioWorkletNode)==null||r.port.postMessage({name:"setIntervalTime",intervalTime:e})}};l(nr,"lastMessageTime",0),l(nr,"audioContext",We("volume-meter")),l(nr,"workletReady");var zd=nr,Wa=class extends gt{constructor(e){super();l(this,"_volumeMeter");this._volumeMeter=new zd(e)}deleteNode(){super.deleteNode(),this._volumeMeter.destroy()}init(){return y(this,null,function*(){yield this._volumeMeter.preload(),this.setNode(this._volumeMeter.node)})}getCalculatedVolume(){return this._volumeMeter.getCalculatedVolume()}getInternalAudioLevel(){return this._volumeMeter.getInternalAudioLevel()}getVolumeDb(){return this._volumeMeter.getVolumeDb()}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()}}},Jd=zd;var xg=pi(bi(),1);var Mg=i=>t=>t.deviceId===i;var Ga=class{constructor(t,e){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&&fn(this.devices[0])){this.devices=r;return}e&&(r.forEach(o=>{if(o.deviceId&&!this.devices.find(Mg(o.deviceId))){let s=`${this.kind}${this.type}Added`;$.warn(`${s}: ${JSON.stringify(o)}`),e.emit(s,o)}}),this.devices.forEach(o=>{if(o.deviceId&&!r.find(Mg(o.deviceId))){let s=`${this.kind}${this.type}Removed`;$.warn(`${s}: ${JSON.stringify(o)}`),e.emit(s,o)}})),this.devices=r}hasDevice(t){return!!this.devices.find(e=>e.deviceId===t)}},oh=class extends xg.EventEmitter{constructor(){super();l(this,"audioInputs",new Ga(M.AUDIO,"Input"));l(this,"videoInputs",new Ga(M.VIDEO,"Input"));l(this,"audioOutputs",new Ga(M.AUDIO,"Output"));this.init(),navigator.mediaDevices&&(navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",()=>this.update()),"ondevicechange"in navigator.mediaDevices||dt.run("interval",()=>{this.update()},{delay:1e4}))}init(){pn().then(e=>{this.audioInputs.update(e),this.videoInputs.update(e),this.audioOutputs.update(e)})}update(){return y(this,arguments,function*(e=0){let r=yield pn(e);return this.audioInputs.update(r,this),this.videoInputs.update(r,this),this.audioOutputs.update(r,this),this})}hasBlueTooth(){var r;if(((r=We())==null?void 0:r.outputLatency)>150)return!0;let e=["bluetooth","air","wireless","bt","tws","buds","headset","headphone"];return this.audioOutputs.devices.some(o=>e.some(s=>o.label.toLowerCase().includes(s)))}},rt=Jn||ks?null:new oh;function fn(i){return i.deviceId===i.groupId&&i.groupId===""}function pn(){return y(this,arguments,function*(i=0){if(wi()||!kd())return[];let t=yield navigator.mediaDevices.enumerateDevices();if(i!==0){let e={audio:!1,video:!1};if(t.forEach(r=>{fn(r)&&(r.kind===M.AUDIO_INPUT?e.audio=!0:r.kind===M.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),e.audio&&mo()}catch(o){$.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&&sh.add(`${e.deviceId}_${e.kind}`),e.getCapabilities&&(o.getCapabilities=()=>e.getCapabilities()),o})})}function Zt(i=!1){return rt.update(i?1:0).then(t=>t.audioInputs.devices)}function Kt(i=!1){return rt.update(i?2:0).then(t=>t.videoInputs.devices)}var Og=!1;function Pg(){return y(this,null,function*(){try{Og||(Og=!0,$.info(`speakers:${(yield ho()).map(i=>` ${i.deviceId.slice(0,8)}: ${i.label}`)}`))}catch(i){}})}function ho(i=!1){return y(this,null,function*(){return(ht||Tt)&&(i=!1),rt.update(i?1:0).then(t=>t.audioOutputs.devices)})}var sh=new Set;function kg(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}_${M.VIDEO_INPUT}`;return!!sh.has(r)}function Lg(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}_${M.AUDIO_INPUT}`;return!!sh.has(r)}function nh(i,t){return y(this,null,function*(){let r=(yield Zt()).find(o=>o.deviceId===Ho);return!t&&(r==null?void 0:r.groupId)===i||(r==null?void 0:r.groupId)===i&&r.label===t})}function Ug(s){return y(this,arguments,function*({newDeviceId:i,oldDeviceId:t,oldGroupId:e,oldLabel:r,kind:o}){return i!==t?!1:o===M.AUDIO&&i===Ho?yield nh(e,r):!0})}var Xd,ah=class extends Ba{constructor(e){super();this.log=e;l(this,"volumeMeter");l(this,"volumeMeterAfter3A");l(this,"volumeDestination");l(this,"analyser",new jd);this.volumeMeter=new Wa({log:this.log}),this.volumeMeterAfter3A=new Wa({log:this.log}),this.volumeDestination=new gt,this.volumeMeter.pipeTo(this.volumeDestination)}destroy(){this.gain.deleteNode(),this.volumeMeter.deleteNode(),this.analyser.deleteNode(),this.source.deleteNode(),this.destination.deleteNode(),this.volumeDestination.deleteNode()}},gn=class i extends Ur{constructor(e){super(e,M.AUDIO);l(this,"_outputDeviceId");l(this,"_volume",1);l(this,"_destination",We("player").createMediaStreamDestination());l(this,"pipeline");l(this,"volumeMeterMode","worklet");this.mode=0,e.url&&(this.url=e.url),this.pipeline=new ah(this._log)}get duration(){var e;return Math.floor((((e=this.element)==null?void 0:e.duration)||0)*1e3)}get currentTime(){var e;return Math.floor((((e=this.element)==null?void 0:e.currentTime)||0)*1e3)}set currentTime(e){this.element&&(this.element.currentTime=e/1e3)}getMediaStream(){return this.pipeline.stream||(this.track?new MediaStream([this.track]):null)}initializeElement(e){if((Or==="15.2"||Or==="15.3"||Or==="15.4")&&this.muted){this._log.info("audioElement is muted.");return}let o=Xd||new Audio;o.setAttribute("autoplay","autoplay"),o.srcObject=this.getMediaStream(),o.muted=this.muted,this.url&&(o.crossOrigin="anonymous",o.src=this.url),this.element=o,ke(e)&&(this.element.volume=Math.min(Math.max(e,0),1)),o===Xd&&(Xd=void 0),this.options.enableTimeupdateEvent&&(this.element.ontimeupdate=()=>this.emit(qe.TIME_UPDATE,this.currentTime)),this.bindElementEvents()}play(e){return y(this,null,function*(){if(!(!this.track&&!this.url))return!this.pipeline.source.node&&this.track&&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.pipeline.volumeMeterAfter3A.init()):this.volumeMeterMode==="analyser"&&this.pipeline.analyser.setNode(We("player").createAnalyser()),Pg(),Ft(i.prototype,this,"play").call(this)})}stop(e=0){this.pipeline.destroy(),super.stop(e)}setVolume(e){this._volume=e,this.element&&(this.element.volume=e)}setSinkId(e){return y(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()}getInternalAudioLevelAfter3A(){return this.pipeline.volumeMeterAfter3A.getInternalAudioLevel()}},Qd=class extends gn{setTrack(t){this.track!==t&&(this.unbindTrackEvents(),this.track=t,this.emit(qe.MEDIA_TRACK_CHANGED,t),t&&(this.bindTrackEvents(),this.element&&(this.element.srcObject=new MediaStream([t]))))}},Yd=class extends gn{constructor(e){super(e);l(this,"_sourceElement");l(this,"_output",new gt);this.pipeline.source.pipeTo(this.pipeline.gain),this.pipeline.gain.pipeTo(this.pipeline.volumeMeter).pipeTo(this._output),this.pipeline.gain.pipeTo(this.pipeline.destination)}setOutput(){this.mode=1,this._output.setNode(We("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(qe.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.element.volume=e):this._log.info("set element volume: no element"):ht||(this._log.info(`start set pipeline volume: ${e}`),this.pipeline.setVolume(e),this.element&&!this._sourceElement&&(this.pipeline.destination.setNode(this._destination),ut(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&&hr&&(Xd=r),this._sourceElement&&(this._sourceElement.srcObject=null,delete this._sourceElement),super.stop(e)}};var as=class extends le{constructor({userId:e,sdkAppId:r,mediaType:o,room:s,PlayerClass:n=o===1?Yd:zt}){var a;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,"rotation");l(this,"isScreen",!1);l(this,"manager");l(this,"trackSettings");l(this,"isFirstVideoFrameEmitted",!1);this.userId=e||"",this.mediaType=o,this._log=$.createLogger({id:`${this.kind[0]}t`,userId:(a=s||this.room)==null?void 0:a.userId,remoteUserId:this instanceof Vr?void 0:this.userId,sdkAppId:r,type:this.mediaType===2?"auxiliary":"main",isLocal:this instanceof Vr}),this.player=new n({id:this.userId||this.id,track:null,muted:!1,container:null,log:this._log}),this.player.on(qe.PLAYER_STATE_CHANGED,u=>{V.emit(F.PLAYER_STATE_CHANGED,X({track:this},u)),this.emit("player-state-changed",u)}),this.kind===M.VIDEO&&(this.player.on(qe.LOADED_DATA,()=>{this.emitFirstVideoFrameEvent(qe.LOADED_DATA),V.emit(F.VIDEO_LOADED_DATA,{track:this})}),this.player.on(qe.LOADED_META_DATA,()=>{this.emitFirstVideoFrameEvent(qe.LOADED_META_DATA)}),this.player.on(qe.MEDIA_TRACK_CHANGED,u=>{var m;(m=this.subVideoPlayerMap)==null||m.forEach(p=>p.setTrack(u))}),this.player.on(qe.RESIZE,u=>{this.emit("video-size-changed",X({userId:this.userId,streamType:this.mediaType===2?"auxiliary":"main"},u))})),this.onTrackMuted=this.onTrackMuted.bind(this),this.onTrackUnmuted=this.onTrackUnmuted.bind(this),this.onTrackEnded=this.onTrackEnded.bind(this),this.onPlayerError&&this.player.on(qe.ERROR,this.onPlayerError.bind(this))}get log(){return this._log||$}get kind(){return this.mediaType===1?M.AUDIO:M.VIDEO}get isAudio(){return this.kind===M.AUDIO}get strMediaType(){return this.mediaType===4?M.VIDEO:this.mediaType===2?M.SCREEN:M.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 y(this,null,function*(){let o=st(e)?e[0]:e;if(this.isPlayCalled){this.log.info(`play update options: ${JSON.stringify(r)}`),r&&!x(r.muted)&&this.setPlayerMute(r.muted),r&&!x(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof zt&&(this.player.setObjectFit(this.objectFit),this.container!==o&&o&&(this.container=o,this.player.setContainer(o)),st(e)&&e.length>=1&&(yield this.playSubContainer(e.slice(1),r)));return}if(r&&!x(r.muted)?this.setPlayerMute(r.muted):(!this.isRemote||this.kind===M.VIDEO)&&this.setPlayerMute(!0),r&&!x(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof zt&&(this.player.setObjectFit(this.objectFit),r&&!x(r.poster)&&this.player.setPoster(r.poster)),this.isPlayCalled=!0,o&&(this.container=o,this.player instanceof zt&&this.player.setContainer(o)),V.emit(F.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),st(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!==M.VIDEO||x(e)||e===this.mirror)return;this.mirror=e;let o=this.player;r&&(o=r);let s=this.manager;if(Qe(this.mirror)){o.setViewMirror(this.mirror),!this.isRemote&&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 y(this,null,function*(){if(!this._outputTrack||this.kind===M.AUDIO)return;this.subVideoPlayerMap||(this.subVideoPlayerMap=new Map),this.subVideoPlayerMap.forEach((s,n)=>{var a;e.find(u=>n===u)||(s.stop(),(a=this.subVideoPlayerMap)==null||a.delete(n))});for(let[s,n]of e.entries()){let a=this.subVideoPlayerMap.get(n);a?r&&(x(r.objectFit)||a.setObjectFit(r.objectFit)):this.subVideoPlayerMap.set(n,new zt({id:this.userId||this.id,track:this.playerMediaTrack,container:n,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(zl(this)&&!e?this.jitterBufferDelay:0)),this.subVideoPlayerMap&&this.subVideoPlayerMap.size>0&&this.subVideoPlayerMap.forEach(r=>{r.stop()}),this.container=null)}resume(){return y(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),V.emit(e?F.TRACK_MUTED:F.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){bt(e,e).add(M.MUTE,this.onTrackMuted).add(M.UNMUTE,this.onTrackUnmuted).add(M.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===M.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){ut(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(zl(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 Wd;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 zt?this.player.getVideoFrame():""}emitFirstVideoFrameEvent(e){var n,a,u;if(this.isFirstVideoFrameEmitted)return;let r=(n=this.mediaTrack)==null?void 0:n.getSettings(),o=(r==null?void 0:r.width)||((a=this.player.element)==null?void 0:a.videoWidth)||0,s=(r==null?void 0:r.height)||((u=this.player.element)==null?void 0:u.videoHeight)||0;e===qe.RESIZE&&!o&&!s||e===qe.LOADED_META_DATA&&!o&&!s||(e===qe.LOADED_DATA&&!o&&!s&&this._log.warn("the dimension of video is 0x0 in first-video-frame event"),this.isFirstVideoFrameEmitted=!0,or(this.rotation)&&([o,s]=[s,o]),this.emit("first-video-frame",{width:o,height:s,streamType:this.streamType,userId:this.isRemote?this.userId:""}))}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`)}};ee([Ze([],le.INIT,{sync:!0})],as.prototype,"close",1);var wI=Object.prototype.hasOwnProperty,{toString:aN}=Object.prototype;function MI(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(Bt(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(wI.call(i,t))return!1;return!0}}return!1}var ja=MI;var OI=function(i){return y(this,null,function*(){let t=PI(i);$.info(`getUserMedia with constraints: ${JSON.stringify(t)}`);let e=[],r=[],o=["label","deviceId","groupId"];t.audio&&(e=yield Zt(),$.info(`microphones: ${mr(e.map(s=>ge(X({},s),{groupId:s.groupId.substring(0,8)})),{keysToInclude:o})}`)),t.video&&(r=yield Kt(),$.info(`cameras: ${mr(r,{keysToInclude:o})}`));try{let s=yield navigator.mediaDevices.getUserMedia(t);return Fm&&s.getTracks().forEach(n=>{$.info(`${n.kind} capabilities: ${mr(n.getCapabilities(),{keysToInclude:qc})}`)}),t.audio&&mo(),s}catch(s){let{message:n}=s;throw s.name==="NotFoundError"&&(i.video&&r&&r.length===0&&(n=$e({key:Fe.CAMERA_NOT_FOUND})),i.audio&&e&&e.length===0&&(n=$e({key:Fe.MICROPHONE_NOT_FOUND}))),new de({code:q.INITIALIZE_FAILED,name:s.name,message:n,constraint:s.constraint})}})},xI=so({retryFunction:OI,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,(!Tt||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&&Vg(r[0].microphoneId,!1),r[0].cameraId&&Vg(r[0].cameraId,!0)},onRetrying:i=>{$.warn(`getUserMedia NotReadableError observed, retrying [${i}/3]`)},onRetryFailed:i=>{He.logFailedEvent({eventType:lr.GET_USER_MEDIA_RETRY,error:i})},onRetrySuccess:i=>{He.logSuccessEvent({eventType:lr.GET_USER_MEDIA_RETRY}),He.uploadEvent({log:`stat-${lr.GET_USER_MEDIA_RETRY}-success-${i}`})}});function Vg(i,t){return y(this,null,function*(){let r=(t?yield Kt():yield Zt()).find(o=>o.deviceId===i);r&&Ge(r.getCapabilities)&&$.warn(mr(r.getCapabilities(),{keysToInclude:qc}))})}function PI(i){return{audio:kI(i),video:LI(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!ja(i.microphoneId)&&(t.deviceId=i.useExactDeviceId?{exact:i.microphoneId}:i.microphoneId,i.useDeviceIdOnly)?t:(ke(i.channelCount)&&(t.channelCount=i.channelCount),Qe(i.echoCancellation)&&!i.echoCancellation&&(t.echoCancellation=!1),Qe(i.noiseSuppression)&&!i.noiseSuppression&&(t.noiseSuppression=!1),Qe(i.autoGainControl)&&!i.autoGainControl&&(t.autoGainControl=!1),ja(t)?!0:t)}function LI(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&&!ja(e)?e:(i.width&&(e.width={ideal:i.width},t&&!Ht&&(e.width.max=i.width)),i.height&&(e.height={ideal:i.height},t&&!Ht&&(e.height.max=i.height)),Ht&&Mr&&i.width&&i.height&&i.width*i.height<352*288&&(e.width=i.width,e.height=i.height),i.frameRate&&(e.frameRate=i.frameRate),ja(e)?!0:e)}var Fg=xI;function po(i){return Oe((t,e)=>function(...r){return y(this,null,function*(){let o=yield t.apply(this,r);return yield i.call(this,...r),o})})}function $g(i){return Oe((t,e)=>function(...r){return y(this,null,function*(){try{return yield t.apply(this,r)}catch(o){i.call(this,o)}})})}function Oe(i){return function(t,e,r){return r.value=i(r.value,e),r}}var Bg=(()=>{let i=!1,t=document.visibilityState;return()=>{document.visibilityState!==t&&$.info(`visibility change: ${document.visibilityState}`),!i&&(document.addEventListener("visibilitychange",()=>{$.info(`visibility change: ${document.visibilityState}`),t=document.visibilityState}),i=!0)}})();var UI=0,Zd=class{constructor(){l(this,"log",$.createLogger({id:`fq${++UI}`}));l(this,"isRunning",!1);l(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,n;let r=X({},t),o=new Promise((a,u)=>{r.resolve=a,r.reject=u});return r.promise=o,e?this.length<=1?this.queue.push(r):(n=(s=this.lastQueueItem)==null?void 0:s.promise)==null||n.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()})}},Hg=new WeakMap,Wg=new WeakMap;function Kd(i=!1){return function(t,e,r){let o=r.value;return r.value=function(...s){let n=Hg.get(this)||new Zd;return Hg.set(this,n),n.push({fn:o,args:s,context:this},i)},r}}function eu(i){return function(t,e,r){let o=r.value,s=n=>i(...n);return r.value=function(...n){let a=Wg.get(this)||new Map,u=a.get(s(n))||new Zd;return a.set(s(n),u),Wg.set(this,a),u.push({fn:o,args:n,context:this})},r}}function tu(i,t){return Oe((e,r)=>function(...o){let s=i;try{let n=e.apply(this,o),a=_e();return io(n)?n.then(u=>(t?Q.addSuccessEvent({key:s,cost:_e()-a}):Q.addSuccessEvent({key:s}),u)).catch(u=>{throw Q.addFailedEvent({key:s,error:u}),u}):(Q.addSuccessEvent({key:s}),n)}catch(n){throw Q.addFailedEvent({key:s,error:n}),n}})}var jh={};hi(jh,{Events:()=>lt,Inspect:()=>fr,LastSink:()=>cs,Sink:()=>pe,Subscribe:()=>ds,TimeoutError:()=>qa,audit:()=>_S,bindCallback:()=>iS,bindNodeCallback:()=>oS,buffer:()=>qI,bufferCount:()=>jI,bufferTime:()=>US,call:()=>Gg,catchError:()=>Bh,combineLatest:()=>qg,concat:()=>$I,concatMap:()=>DS,concatMapTo:()=>wS,count:()=>aS,create:()=>xe,debounce:()=>TS,debounceTime:()=>IS,defer:()=>zg,delay:()=>VS,deliver:()=>Te,dispose:()=>ru,elementAt:()=>SS,empty:()=>Qa,every:()=>vS,exhaustMap:()=>xS,exhaustMapTo:()=>PS,filter:()=>Jt,find:()=>yS,findIndex:()=>AS,first:()=>bS,fromAnimationFrame:()=>tS,fromArray:()=>XI,fromEvent:()=>be,fromEventPattern:()=>QI,fromFetch:()=>YI,fromIterable:()=>ZI,fromPromise:()=>Qg,fromReadableStream:()=>eS,fromReader:()=>KI,groupBy:()=>kS,identity:()=>VI,ignoreElements:()=>lS,iif:()=>HI,inspect:()=>jg,interval:()=>hh,last:()=>RS,map:()=>go,mapTo:()=>NS,max:()=>cS,merge:()=>za,mergeMap:()=>MS,mergeMapTo:()=>OS,min:()=>dS,never:()=>sS,nothing:()=>Be,of:()=>JI,pairwise:()=>CS,pipe:()=>Ae,race:()=>mh,range:()=>rS,reduce:()=>ph,retry:()=>BS,scan:()=>$h,share:()=>Pi,shareReplay:()=>BI,skip:()=>hS,skipUntil:()=>pS,skipWhile:()=>au,startWith:()=>Ja,subject:()=>Rt,subscribe:()=>Le,sum:()=>uS,switchMap:()=>Eo,switchMapTo:()=>ki,take:()=>Fr,takeLast:()=>mS,takeUntil:()=>ze,takeWhile:()=>Yg,tap:()=>Ya,throttle:()=>gS,throwError:()=>nS,timeInterval:()=>LS,timeout:()=>Gh,timer:()=>Xa,toPromise:()=>FS,toReadableStream:()=>$S,withLatestFrom:()=>GI,zip:()=>WI});function Be(...i){}var Gg=i=>i(),VI=i=>i;function ru(){this.dispose()}var jg=()=>typeof __FASTRX_DEVTOOLS__!="undefined",FI=1,fr=class extends Function{toString(){return`${this.name}(${this.args.length?[...this.args].join(", "):""})`}subscribe(t){let e=new ch(t,this,this.streamId++);return lt.subscribe({id:this.id,end:!1},{nodeId:e.sourceId,streamId:e.id}),this(e),e}},cs=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=Be,this.error=Be,this.next=Be,this.dispose=Be,this.subscribe=Be,this.doDefer()}subscribe(t){return t instanceof fr?t.subscribe(this):t(this),this}get bindSubscribe(){return t=>this.subscribe(t)}doDefer(){this.defers.forEach(Gg),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 cs{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)}},ds=class extends cs{constructor(t,e=Be,r=Be,o=Be){if(super(),this._next=e,this._error=r,this._complete=o,this.then=Be,t instanceof fr){let s={toString:()=>"subscribe",id:0,source:t};this.defer(()=>{lt.defer(s,0)}),lt.create(s),lt.pipe(s),this.sourceId=s.id,this.subscribe(t),lt.subscribe({id:s.id,end:!0}),e==Be?this._next=n=>lt.next(s,0,n):this.next=n=>{lt.next(s,0,n),e(n)},o==Be?this._complete=()=>lt.complete(s,0):this.complete=()=>{this.dispose(),lt.complete(s,0),o()},r==Be?this._error=n=>lt.complete(s,0,n):this.error=n=>{this.dispose(),lt.complete(s,0,n),r()}}else this.subscribe(t)}next(t){this._next(t)}complete(){this.dispose(),this._complete()}error(t){this.dispose(),this._error(t)}};function Ae(i,...t){return t.reduce((e,r)=>r(e),i)}function xe(i,t,e){if(jg()){let r=Object.defineProperties(Object.setPrototypeOf(i,fr.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}});lt.create(r);for(let o=0;o<e.length;o++){let s=e[o];typeof s=="function"&&s instanceof fr&<.addSource(r,s)}return r}return i}function Te(i,t){return function(...e){return r=>{if(r instanceof fr){let o=xe(s=>{let n=new i(s,...e);n.sourceId=o.id,n.subscribe(r)},t,arguments);return o.source=r,lt.pipe(o),o}else return o=>r(new i(o,...e))}}}function fo(i,t){window.postMessage({source:"fastrx-devtools-backend",payload:{event:i,payload:t}})}var ch=class extends pe{constructor(t,e,r){super(t),this.source=e,this.id=r,this.sourceId=t.sourceId,this.defer(()=>{lt.defer(this.source,this.id)})}next(t){lt.next(this.source,this.id,t),this.sink.next(t)}complete(){lt.complete(this.source,this.id),this.sink.complete()}error(t){lt.complete(this.source,this.id,t),this.sink.error(t)}},lt={addSource(i,t){fo("addSource",{id:i.id,name:i.toString(),source:{id:t.id,name:t.toString()}})},next(i,t,e){fo("next",{id:i.id,streamId:t,data:e&&e.toString()})},subscribe({id:i,end:t},e){fo("subscribe",{id:i,end:t,sink:{nodeId:e&&e.nodeId,streamId:e&&e.streamId}})},complete(i,t,e){fo("complete",{id:i.id,streamId:t,err:e?e.toString():null})},defer(i,t){fo("defer",{id:i.id,streamId:t})},pipe(i){fo("pipe",{name:i.toString(),id:i.id,source:{id:i.source.id,name:i.source.toString()}})},update(i){fo("update",{id:i.id,name:i.toString()})},create(i){i.id||(i.id=FI++),fo("create",{name:i.toString(),id:i.id})}},qa=class extends Error{constructor(t){super(`timeout after ${t}ms`),this.timeout=t}};var iu=class extends cs{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 Pi(){return i=>{let t=new iu(i);if(i instanceof fr){let e=xe(r=>{t.add(r)},"share",arguments);return t.sourceId=e.id,e.source=i,lt.pipe(e),e}return xe(t.add.bind(t),"share",arguments)}}function za(...i){return xe(t=>{let e=new pe(t),r=i.length;e.complete=()=>{--r===0&&t.complete()},i.forEach(e.bindSubscribe)},"merge",arguments)}function mh(...i){return xe(t=>{let e=new Map;i.forEach(r=>{let o=new pe(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(n=>n.dispose()),o.resetNext(),o.resetComplete(),o.next(s)}}),i.forEach(r=>e.get(r).subscribe(r))},"race",arguments)}function $I(...i){return xe(t=>{let e=0,r=i.length,o=new pe(t);o.complete=()=>{e<r&&!o.disposed?(o.doDefer(),o.subscribe(i[e++])):t.complete()},o.complete()},"concat",arguments)}function BI(i){return t=>{let e=new iu(t),r=[];return e.next=function(o){r.push(o),r.length>i&&r.shift(),this.sinks.forEach(s=>s.next(o))},xe(o=>{o.defer(()=>e.remove(o)),r.forEach(s=>o.next(s)),e.add(o)},"shareReplay",arguments)}}function HI(i,t,e){return xe(r=>i()?t(r):e(r),"iif",arguments)}function qg(...i){return xe(t=>{let e=i.length,r=e,o=e,s=new Array(e),n=()=>{--o===0&&t.complete()},a=(u,m)=>{let p=new pe(t);p.next=g=>{--r===0?(p.next=_=>{s[m]=_,t.next(s)},p.next(g)):s[m]=g},p.complete=n,p.subscribe(u)};i.forEach(a)},"combineLatest",arguments)}function WI(...i){return xe(t=>{let e=i.length,r=e,o=new Array(e),s=()=>{--r===0&&t.complete()},n=(a,u)=>{let m=new pe(t),p=[];o[u]=p,m.next=g=>{p.push(g),o.every(_=>_.length)&&t.next(o.map(_=>_.shift()))},m.complete=s,m.subscribe(a)};i.forEach(n)},"zip",arguments)}function Ja(...i){return t=>xe((e,r=0,o=i.length)=>{for(;r<o&&!e.disposed;)e.next(i[r++]);e.disposed||e.subscribe(t)},"startWith",arguments)}var dh=class extends pe{constructor(t,...e){super(t);let r=new pe(this.sink);r.next=o=>this.buffer=o,r.complete=Be,r.subscribe(qg(...e))}next(t){this.buffer&&this.sink.next([t,...this.buffer])}},GI=Te(dh,"withLatestFrom"),uh=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()}},jI=Te(uh,"bufferCount"),lh=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=Be,r.subscribe(e)}next(t){this.buffer.push(t)}complete(){this.buffer.length&&this.sink.next(this.buffer),super.complete()}},qI=Te(lh,"buffer");var zI=function(i,t,e,r){function o(s){return s instanceof e?s:new e(function(n){n(s)})}return new(e||(e=Promise))(function(s,n){function a(p){try{m(r.next(p))}catch(g){n(g)}}function u(p){try{m(r.throw(p))}catch(g){n(g)}}function m(p){p.done?s(p.value):o(p.value).then(a,u)}m((r=r.apply(i,t||[])).next())})};function Rt(i){let t=arguments,e=Pi()(xe(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=Be,e.complete=Be,e.error=Be,e}function zg(i){return xe(t=>t.subscribe(i()),"defer",arguments)}var Jg=i=>t=>{setTimeout(()=>i(t))},Xg=i=>Jg(t=>{for(let e=0;!t.disposed&&e<i.length;e++)t.next(i[e]);t.complete()});function JI(...i){return xe(Xg(i),"of",arguments)}function XI(i){return xe(Xg(i),"fromArray",arguments)}function hh(i){return xe(t=>{let e=0,r=setInterval(()=>t.next(e++),i);return t.defer(()=>{clearInterval(r)}),"interval"},"interval",arguments)}function Xa(i,t){return xe(e=>{let r=0,o=setTimeout(()=>{if(e.removeDefer(s),e.next(r++),t){let n=setInterval(()=>e.next(r++),t);e.defer(()=>{clearInterval(n)})}else e.complete()},i),s=()=>{clearTimeout(o)};e.defer(s)},"timer",arguments)}function ou(i,t){return e=>{let r=o=>e.next(o);e.defer(()=>t(r)),i(r)}}function QI(i,t){return xe(ou(i,t),"fromEventPattern",arguments)}function be(i,t){if("on"in i&&"off"in i)return xe(ou(e=>i.on(t,e),e=>i.off(t,e)),"fromEvent",arguments);if("addListener"in i&&"removeListener"in i)return xe(ou(e=>i.addListener(t,e),e=>i.removeListener(t,e)),"fromEvent",arguments);if("addEventListener"in i)return xe(ou(e=>i.addEventListener(t,e),e=>i.removeEventListener(t,e)),"fromEvent",arguments);throw"target is not a EventDispachter"}function Qg(i){return xe(t=>{i.then(t.next.bind(t),t.error.bind(t))},"fromPromise",arguments)}function YI(i,t){return xe(zg(()=>Qg(fetch(i,t))),"fromFetch",arguments)}function ZI(i){return xe(Jg(t=>{try{for(let e of i){if(t.disposed)return;t.next(e)}t.complete()}catch(e){t.error(e)}}),"fromIterable",arguments)}function KI(i){let t=e=>zI(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 xe(e=>{t(e)},"fromReader",arguments)}function eS(i){return xe(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 tS(){return xe(i=>{let t=requestAnimationFrame(function e(r){i.disposed||(i.next(r),t=requestAnimationFrame(e))});i.defer(()=>cancelAnimationFrame(t))},"fromAnimationFrame",arguments)}function rS(i,t){return xe((e,r=i,o=t+i)=>{for(;r<o&&!e.disposed;)e.next(r++);return e.complete(),"range"},"range",arguments)}function iS(i,t,...e){return xe(r=>{let o=e.concat(s=>(r.next(s),r.complete()));i.apply(t,o)},"bindCallback",arguments)}function oS(i,t,...e){return xe(r=>{let o=e.concat((s,n)=>s?r.error(s):(r.next(n),r.complete()));i.apply(t,o)},"bindNodeCallback",arguments)}function sS(){return xe(()=>{},"never",arguments)}function nS(i){return xe(t=>t.error(i),"throwError",arguments)}function Qa(){return xe(i=>i.complete(),"empty",arguments)}var us=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)}},ph=Te(us,"reduce"),aS=i=>Te(us,"count")((t,e)=>i(e)?t+1:t,0),cS=()=>Te(us,"max")(Math.max),dS=()=>Te(us,"min")(Math.min),uS=()=>Te(us,"sum")((i,t)=>i+t,0);var fh=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)}},Jt=Te(fh,"filter"),gh=class extends pe{next(t){}},lS=Te(gh,"ignoreElements"),Eh=class extends pe{constructor(t,e){super(t),this.count=e}next(t){this.sink.next(t),--this.count===0&&this.complete()}},Fr=Te(Eh,"take"),_h=class extends pe{constructor(t,e){super(t);let r=new pe(t);r.next=()=>t.complete(),r.complete=ru,r.subscribe(e)}},ze=Te(_h,"takeUntil"),Th=class extends pe{constructor(t,e){super(t),this.f=e}next(t){this.f(t)?this.sink.next(t):this.complete()}},Yg=Te(Th,"takeWhile"),mS=i=>ph((t,e)=>(t.push(e),t.length>i&&t.shift(),t),[]),Ih=class extends pe{constructor(t,e){super(t),this.count=e}next(t){--this.count===0&&(this.next=super.next)}},hS=Te(Ih,"skip"),Sh=class extends pe{constructor(t,e){super(t),t.next=Be;let r=new pe(t);r.next=()=>{r.dispose(),t.resetNext()},r.complete=ru,r.subscribe(e)}},pS=Te(Sh,"skipUntil"),yh=class extends pe{constructor(t,e){super(t),this.f=e}next(t){this.f(t)||(this.next=super.next,this.next(t))}},au=Te(yh,"skipWhile"),fS={leading:!0,trailing:!1},Ah=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)}},su=class extends pe{constructor(t,e,r=fS){super(t),this.durationSelector=e,this.config=r,this._throttle=new Ah(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=Be,this._throttle.complete(),super.complete()}},gS=Te(su,"throttle"),ES={leading:!1,trailing:!0},_S=i=>Te(su,"audit")(i,ES),bh=class extends pe{next(){this.complete()}complete(){this.dispose(),this.sink.next(this.last)}},nu=class extends pe{constructor(t,e){super(t),this.durationSelector=e,this._debounce=new bh(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()}},TS=Te(nu,"debounce"),IS=i=>Te(nu,"debounceTime")(t=>Xa(i)),Rh=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()}},SS=Te(Rh,"elementAt"),yS=i=>t=>Fr(1)(au(e=>!i(e))(t)),vh=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}},AS=Te(vh,"findIndex"),Ch=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()}},bS=Te(Ch,"first"),Nh=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()}},RS=Te(Nh,"last"),Dh=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()}},vS=Te(Dh,"every");var wh=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))}},$h=Te(wh,"scan"),Mh=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}},CS=Te(Mh,"pairwise"),cu=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))}},go=Te(cu,"map"),NS=i=>Te(cu,"mapTo")(t=>i),En=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()}},_n=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()}},du=class extends En{},uu=class extends _n{next(t){this.subInner(t,du),this.next=e=>{this.currentSink.dispose(),this.subInner(e,du)}}},Eo=Te(uu,"switchMap");function pu(i){return(t,e)=>i(()=>t,e)}var ki=pu(Te(uu,"switchMapTo")),Oh=class extends En{tryComplete(){this.dispose(),this.context.sources.length?this.context.subNext():(this.context.resetNext(),this.context.resetComplete())}},lu=class extends _n{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(),Oh),this.disposed&&this.sources.length===0&&this.currentSink.resetComplete()}tryComplete(){this.sources.length===0&&this.currentSink.resetComplete(),this.dispose()}},DS=Te(lu,"concatMap"),wS=pu(Te(lu,"concatMapTo")),xh=class extends En{tryComplete(){this.context.inners.delete(this),super.dispose(),this.context.inners.size===0&&this.context.resetComplete()}},mu=class extends _n{constructor(){super(...arguments),this.inners=new Set}next(t){this.subInner(t,xh),this.inners.add(this.currentSink)}tryComplete(){this.inners.size===1?this.inners.forEach(t=>t.resetComplete()):this.dispose()}},MS=Te(mu,"mergeMap"),OS=pu(Te(mu,"mergeMapTo")),Ph=class extends En{dispose(){this.context.resetNext(),super.dispose()}},hu=class extends _n{next(t){this.next=Be,this.subInner(t,Ph)}},xS=Te(hu,"exhaustMap"),PS=pu(Te(hu,"exhaustMapTo")),kh=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=Rt(),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)}},kS=Te(kh,"groupBy"),Lh=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}},LS=Te(Lh,"timeInterval"),Uh=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()}},US=Te(Uh,"bufferTime"),Vh=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)}},VS=Te(Vh,"delay"),Fh=class extends pe{constructor(t,e){super(t),this.selector=e}error(t){this.dispose(),this.selector(t)(this.sink)}},Bh=Te(Fh,"catchError");var FS=()=>i=>new Promise((t,e)=>{let r;new ds(i,o=>r=o,e,()=>t(r))}),$S=()=>i=>{let t;return new ReadableStream({start(e){t=new ds(i,e.enqueue.bind(e),e.error.bind(e),e.close.bind(e))},cancel(){t.dispose()}})},Le=(i=Be,t=Be,e=Be)=>r=>new ds(r,i,t,e),Hh=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)}))}},Ya=Te(Hh,"tap"),Wh=class extends pe{constructor(t,e){super(t),this.timeout=e,this.id=setTimeout(()=>this.error(new qa(this.timeout)),this.timeout)}next(t){super.next(t),clearTimeout(this.id),this.next=super.next}dispose(){clearTimeout(this.id),super.dispose()}},Gh=Te(Wh,"timeout"),BS=(i=1/0)=>t=>{if(t instanceof fr){let e=xe(r=>{let o=i,s=new pe(r);s.error=n=>{o-- >0?s.subscribe(t):r.error(n)},s.sourceId=e.id,s.subscribe(t)},"retry",[i]);return e.source=t,lt.pipe(e),e}else return e=>{let r=i,o=new pe(e);o.error=s=>{r-- >0?t(o):e.error(s)},t(o)}};var Tn=(e=>(e[e.AUTO_SWITCH_NEW_DEVICE=0]="AUTO_SWITCH_NEW_DEVICE",e[e.WAIT_CURRENT_DEVICE=1]="WAIT_CURRENT_DEVICE",e))(Tn||{}),ls=class ls extends as{constructor(e,r){super({mediaType:e,PlayerClass:r});l(this,"isRemote",!1);l(this,"deviceId");l(this,"groupId","");l(this,"label","");l(this,"sourceTrack");l(this,"enableAutoSwitchWhenRecapturing",!0);l(this,"_isRecapturing",!1);l(this,"_lastRecaptureTime",0);l(this,"_onMuteTimeoutId",-1);l(this,"_encodeCheckTimeoutId",-1);l(this,"recaptureMode",0);l(this,"profile")}get enableEncodeFrame(){return!1}get isPublishing(){return this.state.toString()==="publishing"}get isPublished(){return this.state==="publish"}get isUseCustomSource(){return this.sourceTrack&&this.mediaTrack&&this.sourceTrack!==this.mediaTrack}encodeFrame(e,r){throw new Error("Method not implemented.")}installTrackEvent(e){bt(e,e).add(M.MUTE,this.onTrackMuted).add(M.UNMUTE,this.onTrackUnmuted).add(M.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===M.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){ut(e)}setStateToReady(){}capture(e){return y(this,null,function*(){var r;try{let o=_e();V.emit(F.LOCAL_TRACK_CAPTURE_START,{track:this});let s;e.customSource?(s=new MediaStream,s.addTrack(e.customSource)):((r=this.sourceTrack)==null||r.stop(),s=yield Fg(e));let n=s.getTracks()[0];return yield this.setInputMediaStreamTrack(n),e.customSource||(this.sourceTrack=n,this.updateDeviceIdInUse(),this.listenDeviceChange()),V.emit(F.LOCAL_TRACK_CAPTURE_SUCCESS,{track:this,cost:_e()-o}),s}catch(o){throw V.emit(F.LOCAL_TRACK_CAPTURE_FAILED,{track:this,error:o}),this.log.error(`getUserMedia error observed ${o}`),o}})}setOutputMediaStreamTrack(e){var r;if(super.setOutputMediaStreamTrack(e),this.setStateToReady(),this.isPublishing||this.isPublished)return(r=this.room)==null?void 0:r.replaceTrack(this)}get hasFlag(){var r,o;let e=qo(((r=this.room)==null?void 0:r.localPublishFlag)||0,((o=this.room)==null?void 0:o.userId)||"");return this.mediaType===4&&e.hasVideo||this.mediaType===1&&e.hasAudio||this.mediaType===2&&e.hasAuxiliary}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),Promise.all([r,new Promise((o,s)=>y(this,null,function*(){var a,u;this.hasFlag?o():Ae(be(e,"local-publish-flag-changed"),Jt(()=>this.hasFlag),ze(za(be(this,le.INIT),be(this,"ready"))),Le(o)),!((((u=(a=this.room)==null?void 0:a.networkQuality)==null?void 0:u.uplinkNetworkQuality)||0)>3)&&(this._encodeCheckTimeoutId=setTimeout(()=>{var p,g,_,A,C,N;if(!((((g=(p=this.room)==null?void 0:p.networkQuality)==null?void 0:g.uplinkNetworkQuality)||0)>3)&&this.isPublished&&this.isMediaTrackActive){let D=this.kind===M.AUDIO,O=this.stat.bytesSent>0;if(Q[O?"addSuccessEvent":"addFailedEvent"]({key:D?503700:513702}),!D){let Z=((A=(_=this.room)==null?void 0:_.videoCodec)==null?void 0:A.toUpperCase())||"H264",ue={H264:513704,H265:513705,VP8:513706}[Z];ue&&Q[O?"addSuccessEvent":"addFailedEvent"]({key:ue})}O||(Q.addEnum({key:D?503701:513703,value:Yo()}),He.uploadEvent({log:`stat-encode-failed-${this.kind}-${Ia()||Zo()}`,userId:this.userId}),this.log.warn(D?"encode failed":`${(N=(C=this.room)==null?void 0:C.videoCodec)==null?void 0:N.toUpperCase()} encode failed`),this.emit("6",this),s(new de({message:`${this.strMediaType} encode failed`,code:D?q.AUDIO_ENCODE_FAILED:q.VIDEO_ENCODE_FAILED})))}},5e3))}))])}unpublish(){this.room&&this.room.localTracks.delete(this),V.emit(F.LOCAL_TRACK_UNPUBLISHED,{track:this})}updateDeviceIdInUse(){return y(this,null,function*(){if(this.sourceTrack&&un){let{deviceId:e,groupId:r}=this.sourceTrack.getSettings(),{label:o}=this.sourceTrack;(yield Ug({newDeviceId:e,oldDeviceId:this.deviceId,oldGroupId:this.groupId,oldLabel:this.label,kind:this.kind}))||(this.deviceId=e,this.label=o,r&&(this.groupId=r),pn().then(n=>{let a=n.find(u=>u.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.sourceTrack||this.kind===M.AUDIO&&!Lg(this.sourceTrack)||this.kind===M.VIDEO&&!kg(this.sourceTrack)||this._isRecapturing||e&&Mr&&Tt)}onTrackMuted(){if(super.onTrackMuted(),Bg(),!!this.isNeedToRecapture(!0)){if(Date.now()-this._lastRecaptureTime<Vs){setTimeout(()=>this.onTrackMuted(),Vs);return}this._onMuteTimeoutId=setTimeout(()=>y(this,null,function*(){var e;if((e=this.sourceTrack)!=null&&e.muted){if((ht||pt)&&document.visibilityState!=="visible")return;this.recapture(yield this.getRecoverCaptureDeviceId())}}),5e3)}}onTrackUnmuted(){super.onTrackUnmuted(),this._onMuteTimeoutId>0&&clearTimeout(this._onMuteTimeoutId)}onTrackEnded(){return y(this,null,function*(){if(Ft(ls.prototype,this,"onTrackEnded").call(this),!!this.isNeedToRecapture()&&this.recaptureMode===0){if(Date.now()-this._lastRecaptureTime<Vs){setTimeout(()=>this.onTrackEnded(),Vs);return}this.emit("7"),this.recapture(yield this.getRecoverCaptureDeviceId())}})}recapture(e){return y(this,null,function*(){var o;if(this._isRecapturing||!this.sourceTrack)return;this.log.warn("recapture trying"),(o=this.sourceTrack)==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 Zt():yield Kt()).find(a=>a.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}),V.emit(F.LOCAL_TRACK_RECAPTURE,{track:this})}).catch(s=>{this._isRecapturing=!1,this.log.warn(`recapture failed ${s.message}`),this.emit("5",s),V.emit(F.LOCAL_TRACK_RECAPTURE,{track:this,error:s})})})}getRecoverCaptureDeviceId(){return y(this,null,function*(){let e=this instanceof ar;if(e&&this.facingMode)return this.facingMode;let{deviceId:r}=this;if(r){let o=(Za.get(r)||0)+1;if(Za.set(r,o),o>=3&&this.enableAutoSwitchWhenRecapturing){let s=e?(yield Kt()).find(n=>!Za.has(n.deviceId)):(yield Zt()).find(n=>!Za.has(n.deviceId));s&&(this.log.warn(`${r} capture fail ${o} times, change new ${s.deviceId}`),r=s.deviceId)}}return r})}stopCapture(){var e;this.sourceTrack&&(this.sourceTrack.stop(),this.uninstallTrackEvent(this.sourceTrack)),(e=this.manager)==null||e.removeInput(this)}close(){super.close(),this.stopCapture()}};ee([Ze(le.INIT,"ready",{ignoreError:!0,sync:!0})],ls.prototype,"setStateToReady",1),ee([Kd()],ls.prototype,"capture",1),ee([Ze("ready","publish",{ignoreError:!0,success(){this.room.localTracks.add(this),V.emit(F.LOCAL_TRACK_PUBLISHED,{track:this,room:this.room}),this.emit("4",{mediaType:this.strMediaType,state:"started",prevState:"starting"})},fail(e){let r="error";if(e.cause instanceof de){let o=e.cause;o.message.includes("timeout")?r="timeout":o.code===q.API_CALL_ABORTED&&(r="api-call")}this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:"starting",reason:r,error:e.cause||e})}}),tu(521714,!1)],ls.prototype,"publish",1),ee([Oe(e=>function(){return y(this,null,function*(){let r=this.state==="publish"?"started":"starting";e.call(this),this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:r,reason:"api-call"}),clearTimeout(this._encodeCheckTimeoutId)})}),Ze([],"ready",{sync:!0})],ls.prototype,"unpublish",1);var Vr=ls,Za=new Map;V.on(F.SWITCH_DEVICE_SUCCESS,i=>{i.track.deviceId&&Za.delete(i.track.deviceId)});var ti=class i extends Vr{constructor(e){super(1,Qd);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,"earMonitorGainNode",new gt);l(this,"_output",new gt);l(this,"codecPipeline",[]);l(this,"stat",{bytesSent:0,packetsSent:0,audioLevel:0,totalAudioEnergy:0});l(this,"mixedAudioReferenceMap",new Map);l(this,"isAudioContextLongSuspended",!1);this.manager=e,this.pipeline=new hn(e),this.pipeline.source.pipeTo(this.player.pipeline.volumeMeter),this.pipeline.gain.pipeTo(this.earMonitorGainNode).pipeTo(this._output),this.pipeline.gain.pipeTo(this.player.pipeline.volumeMeterAfter3A),this.handleMicrophoneAdded=this.handleMicrophoneAdded.bind(this),this.handleMicrophoneRemoved=this.handleMicrophoneRemoved.bind(this),V.on(F.AUDIO_CONTEXT_LONG_SUSPENDED,this.handleAudioContextLongSuspended,this)}get dbVolume(){return Jd.isRunning?this.player.pipeline.volumeMeter.getVolumeDb():Math.floor(Math.max(10*Math.log10(this.volume)+100,0))}getAudioLevel(){let e=(this.volume||super.getAudioLevel())*this.captureVolume;return e>1?1:e}getInternalAudioLevelAfter3A(){if(this.pipeline.aec.node||this.pipeline.denoiser.node)return this.player.getInternalAudioLevelAfter3A()}setInputMediaStreamTrack(e){return y(this,null,function*(){let r=this.trackSettings||{};Q.addEnum({key:501701,value:r.channelCount||0,useUV:!1}),Q.addEnum({key:501702,value:r.sampleRate||0,useUV:!1}),Q.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 Ft(i.prototype,this,"setInputMediaStreamTrack").call(this,e),this.updatePlayingState(!!e)})}capture(n){return y(this,arguments,function*({deviceId:e,customSource:r,useExactDeviceId:o=!0,retryWhenExactFailed:s}){let a=yield Ft(i.prototype,this,"capture").call(this,{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});return mo(),a})}switchDevice(e){return y(this,null,function*(){if(this.mediaTrack){if(this.deviceId===e&&!this.isUseCustomSource)if(e===Ho){if(yield nh(this.groupId,this.label))return}else return;try{this.log.info(`switchDevice audio to: ${e}`),this.sourceTrack&&this.sourceTrack.stop(),yield this.capture({deviceId:e,useExactDeviceId:!0,retryWhenExactFailed:!1}),V.emit(F.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(){rt&&!rt.listeners("audioInputRemoved").includes(this.handleMicrophoneRemoved)&&rt.on("audioInputRemoved",this.handleMicrophoneRemoved,this)}handleMicrophoneRemoved(e){return y(this,null,function*(){if(e.deviceId===this.deviceId){let r=this.recaptureMode===1;if(this.log.warn(`RecaptureMode: ${Tn[this.recaptureMode]}. Current microphone is lost: ${JSON.stringify(e)}`),this.recaptureMode===0){nt(this.userId,{eventId:2003,param1:6,streamType:1});let o=yield Zt();o[0]?this.recapture(o[0].deviceId):r=!0}r&&rt.on("audioInputAdded",this.handleMicrophoneAdded,this)}})}handleMicrophoneAdded(e){this.recaptureMode===1&&e.deviceId!==this.deviceId||(rt.off("audioInputAdded",this.handleMicrophoneAdded,this),this.log.warn(`microphone added: ${JSON.stringify(e)}`),this.recapture(e.deviceId))}update3A(s){return y(this,arguments,function*({echoCancellation:e,noiseSuppression:r,autoGainControl:o}){let n=this.sourceTrack||this.mediaTrack;if(!n)return;let a=n.getConstraints(),u=!1;!x(e)&&e!==this.profile.echoCancellation&&(this.profile.echoCancellation=e,a.echoCancellation=e,u=!0),!x(r)&&r!==this.profile.noiseSuppression&&(this.profile.noiseSuppression=r,a.noiseSuppression=r,u=!0),!x(o)&&o!==this.profile.autoGainControl&&(this.profile.autoGainControl=o,a.autoGainControl=o,u=!0),u&&(Ht||Tt?yield n.applyConstraints(a).catch(m=>this._log.warn("update3A failed: ",m)):this.deviceId&&(yield this.recapture(this.deviceId)))})}get captureVolume(){return this.pipeline.volume}setCaptureVolume(e){this.pipeline.setVolume(e/100),this.pipeline.gain.node&&Q.addEnum({key:502700,value:2})}setAudioVolume(e){super.setAudioVolume(0),ht&&this.player.setMuted(!0),this.earMonitorGainNode.node||(this.earMonitorGainNode.setNode(We().createGain()),this._output.setNode(We().destination)),this.earMonitorGainNode.node.gain.value=e}enableTrackANS(e){return this.update3A({noiseSuppression:e})}enableTrackAEC(e){if(this.sourceTrack&&!(Tt||ht))return this.update3A({echoCancellation:e})}addDenoiser(e){var r;if(Zr<=92&&((r=this.trackSettings)==null?void 0:r.sampleRate)!==48e3){this._log.warn("denoiser only support sampleRate 48000 before chrome 93");return}Q.addEnum({key:502700,value:1}),this.pipeline.denoiser.setNode(e),this.enableTrackANS(!1)}mixAudioReference(e,r){if(this.mixedAudioReferenceMap.has(r))return;this.log.info(`mixAudioReference() => ${r}`);let o=Ha(e),s=new gt,n=We().createGain();n.gain.value=1;let a=new gt;s.pipeTo(a).pipeTo(this.pipeline.mixNode),s.setNode(o),a.setNode(n),this.mixedAudioReferenceMap.set(r,[s,a])}unMixAudioReference(e){let[r,o]=this.mixedAudioReferenceMap.get(e)||[];r&&(this.log.info(`unMixAudioReference() => ${e}`),r.deleteNode(),o==null||o.deleteNode(),this.mixedAudioReferenceMap.delete(e))}setAudioReferenceVolume(e,r){let[o,s]=this.mixedAudioReferenceMap.get(e)||[];s!=null&&s.node&&(s.node.gain.value=r/100,this.log.info(`setAudioReferenceVolume() => ${e} ${s.node.gain.value}`))}addAudioProcessor(e,r,o){this.pipeline.silentNode.setNode(o),this.pipeline.mixNode.setNode(r),this.pipeline.aec.setNode(e)}removeDenoiser(e){if(this.pipeline.denoiser.node===e)return this.pipeline.denoiser.deleteNode(),this.enableTrackANS(!0)}removeAudioProcessor(e){this.pipeline.aec.node===e&&(this.pipeline.aec.deleteNode(),this.pipeline.silentNode.deleteNode(),this.pipeline.mixNode.deleteNode())}close(){this.mixedAudioReferenceMap.forEach(([e,r])=>{e.deleteNode(),r.deleteNode()}),this.mixedAudioReferenceMap.clear(),this.pipeline.remove(),this.earMonitorGainNode.deleteNode(),this._output.deleteNode(),rt.off("audioInputAdded",this.handleMicrophoneAdded,this),rt.off("audioInputRemoved",this.handleMicrophoneRemoved,this),V.off(F.AUDIO_CONTEXT_LONG_SUSPENDED,this.handleAudioContextLongSuspended,this),super.close()}recapture(e){return y(this,null,function*(){try{yield Ft(i.prototype,this,"recapture").call(this,e)}catch(r){let o=(yield Zt()).find(s=>s.deviceId!==e);if(o)yield Ft(i.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,ntp:fi()}):r,e):e}get enableEncodeFrame(){return this.manager?this.manager.encodePipeline.some(e=>e):!1}handleAudioContextLongSuspended({isSuspended:e}){if(this.pipeline.isProcessEnabled)if(e){this.isAudioContextLongSuspended=!0,this.log.warn(`context has suspended for ${ih/1e3} seconds, change to source audio${hr?"":", non-Safari"}`);let r=this.sourceTrack||this.mediaTrack;r&&this.setOutputMediaStreamTrack(r)}else this.isAudioContextLongSuspended=!1,this.log.warn("context has resumed, change to processed audio"),this.pipeline.track&&this.setOutputMediaStreamTrack(this.pipeline.track)}setOutputMediaStreamTrack(e){if(this.isAudioContextLongSuspended){let r=this.sourceTrack||this.mediaTrack;r&&(e=r)}super.setOutputMediaStreamTrack(e)}};var ms=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 n=t;n<=e;n++){let a=this.dataView.getInt8(n);switch(a){case 0:case 1:case 2:case 3:o===2&&(r.push(3),o=0),a==0?o++:o=0,r.push(a);break;default:o=0,r.push(a);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 n=t;n<=e;n++)switch(this.dataView.getInt8(n)){case 0:o++,r.push(this.dataView.getInt8(n));break;case 3:o!==2&&r.push(this.dataView.getInt8(n)),o=0;break;default:r.push(this.dataView.getInt8(n)),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 n=this.dataView.getUint8(s);if(e++,n===255)t+=255;else{t+=n;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 fu=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 a=0;a<r;a++)s.push(255);s.push(o);let n=new DataView(t);return s.push(...new Uint8Array(n.buffer)),s.push(128),new ms(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 s=9-this.getNaluCount(t.data);if(s<=0)return 0;let n=r.splice(0,s).reverse().map(this.encodeSEINalu.bind(this)),a=n.reduce((_,A)=>_+A.dataView.byteLength,0),u=new ArrayBuffer(a+t.data.byteLength),m=new DataView(u),p=new DataView(t.data),g=0;for(let _=0;_<n.length;_++)for(let A=0;A<n[_].dataView.byteLength;A++)m.setInt8(g++,n[_].dataView.getInt8(A));for(let _=0;_<t.data.byteLength;_++)m.setInt8(g++,p.getInt8(_));return t.data=u,n.length}return 0}};var hs=class hs extends Vr{constructor(e,r=4){super(r,zt);l(this,"profile",X({},Qn));l(this,"avoidCropping",!1);l(this,"_scaleResolutionDownBy");l(this,"stat",{bytesSent:0,packetsSent:0,framesEncoded:0,framesSent:0,frameWidth:0,frameHeight:0,fpsCapture:0,framesCaptured:0});l(this,"small");l(this,"isNeedToSetBandwidth");l(this,"muteImage");l(this,"manager");l(this,"_seiCodec",new fu);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(ge(X({},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(!(!un||!this.mediaTrack))return this.mediaTrack.getSettings().facingMode}get contentHint(){var e;return((e=this._inputTrack)==null?void 0:e.contentHint)||""}get isQosClearFirst(){var e;return((e=this._inputTrack)==null?void 0:e.contentHint)==="detail"}setMute(e){return y(this,null,function*(){var r,o,s;if(Ne(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,Ft(hs.prototype,this,"setMute").call(this,!1)}else this.muteImage&&(yield(s=this.manager)==null?void 0:s.deleteWatermark("mute"),this.muteImage=void 0),Ft(hs.prototype,this,"setMute").call(this,e)})}capture({deviceId:e,facingMode:r,useExactDeviceId:o=!0,customSource:s,retryWhenExactFailed:n=!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:n,customSource:s})}setProfile(e){let r=this.fallbackProfile(e);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(ge(X({},this.profile),{width:1920,height:1080})))}applyProfile(){return y(this,null,function*(){var a;if(!this.mediaTrack)return;let{width:e=0,height:r=0}=(this.sourceTrack||this.mediaTrack).getSettings(),o=e*r,s=this.settings,n=s.height!==this.profile.height||s.width!==this.profile.width||s.frameRate!==this.profile.frameRate;if(n&&(Ot===16&&this.deviceId?yield this.recapture(this.deviceId):(yield(a=this.sourceTrack||this.mediaTrack)==null?void 0:a.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){this.isNeedToSetBandwidth=!1;let{width:u=0,height:m=0}=(this.sourceTrack||this.mediaTrack).getSettings(),p=u*m;if(n&&p&&o&&p===o){this.log.warn("set bandwidth failed: resolution is not changed");return}return this.room.setBandWidth({bandwidth:this.profile.bitrate,type:M.VIDEO,videoType:M.BIG})}})}get settings(){let e={width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate},r=this.sourceTrack||this.mediaTrack;return un&&r&&Object.assign(e,r.getSettings()),e}get scaleResolutionDownBy(){return this._scaleResolutionDownBy?this._scaleResolutionDownBy:rd(this.settings,this.profile)}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 y(this,null,function*(){try{if(!this.isNeedToSwitchDevice(e)&&!this.isUseCustomSource)return;let r={useExactDeviceId:!0,retryWhenExactFailed:!1};if(e==="user"||e==="environment"){r.facingMode=e;try{if((ga||rn)&&e==="environment"&&$m){let s=(yield Kt(!0)).map(a=>{var u;return ge(X({},a),{capabilities:(u=a.getCapabilities)==null?void 0:u.call(a)})}).filter(a=>{var u,m;return(m=(u=a.capabilities)==null?void 0:u.facingMode)==null?void 0:m.includes("environment")}),n=s[0];s.forEach(a=>{var g,_,A,C;let{capabilities:u}=a,m=(g=u.width)!=null&&g.max&&((_=u.height)!=null&&_.max)?u.width.max*u.height.max:0,p=(A=n.capabilities.width)!=null&&A.max&&((C=n.capabilities.height)!=null&&C.max)?n.capabilities.width.max*n.capabilities.height.max:0;m>p&&(n=a)}),n!=null&&n.capabilities&&(delete r.facingMode,this._log.info("switch to max res camera",n),r.deviceId=n.deviceId)}}catch(o){this._log.warn("get max res camera failed",o)}}else r.deviceId=e;this.sourceTrack&&this.sourceTrack.stop(),yield this.capture(r),V.emit(F.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}})}updateSmallConfig(e){var o,s;this._log.info(`update small stream config: ${JSON.stringify(e)}`);let r=!this.small;this.small=this.fallbackProfile(e,!0),(o=this.manager)==null||o.update(),r&&((s=this.room)==null||s.enableSmall(!0)),this.log.info("update small stream config success")}fallbackProfile(e,r=!1){let o=e.width>e.height,s=X({},e);return e.width*e.height<=160*120&&pt&&Yr&&(this.log.warn(`${r?"small ":""}resolution is ${e.width}*${e.height}, fallback to 240*180 for android chrome`),s.width=o?240:180,s.height=o?180:240,s.bitrate=Math.max(e.bitrate,150)),e.width*e.height>1280*720&&nm&&(s.width=o?1280:720,s.height=o?720:1280,this.log.warn("reset to 1280 * 720 on iOS 13~14")),im(Or,"14.3")&&om(Or,"14.0",!0)&&this.on("7",()=>{let n=this.profile.width>this.profile.height;this.profile.width*this.profile.height>640*480?(this.profile.width=n?640:480,this.profile.height=n?480:640,this.log.warn("reduce the resolution to 480p on iOS 14.0 ~ 14.2")):this.profile.width*this.profile.height>640*360&&(this.profile.width=n?640:360,this.profile.height=n?360:640,this.log.warn("reduce the resolution to 360p on iOS 14.0 ~ 14.2"))}),!r&&this.avoidCropping&&(Yr||Ht)&&!cm()&&e.width*e.height<=640*360&&e.width/e.height===16/9&&(this._scaleResolutionDownBy=1280/e.width,e.width=1280,e.height=720,this.log.warn(`capture 720p, scale: ${this._scaleResolutionDownBy}`)),s}stopSmall(){var e,r;this.small&&(delete this.small,(e=this.manager)==null||e.update(),(r=this.room)==null||r.enableSmall(!1))}listenDeviceChange(){rt&&!rt.listeners("videoInputRemoved").includes(this.handleCameraRemoved)&&rt.on("videoInputRemoved",this.handleCameraRemoved,this)}handleCameraRemoved(e){return y(this,null,function*(){if(e.deviceId===this.deviceId){let r=this.recaptureMode===1;if(this.log.warn(`RecaptureMode: ${Tn[this.recaptureMode]}. Current camera is lost: ${JSON.stringify(e)}`),this.recaptureMode===0){nt(this.userId,{eventId:2003,param1:7,streamType:2});let o=yield Kt();o[0]?this.recapture(o[0].deviceId):r=!0}r&&rt.on("videoInputAdded",this.handleCameraAdded,this)}})}handleCameraAdded(e){return y(this,null,function*(){this.recaptureMode===1&&e.deviceId!==this.deviceId||(rt.off("videoInputAdded",this.handleCameraAdded,this),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,n)=>n?n({frame:s,mediaType:o}):s,e)}get enableEncodeFrame(){return this.manager?this.manager.encodePipeline.some(e=>e):!1}play(e,r){return x(this.mirror)&&!this.isScreen&&this.setMirror("view"),super.play(e,r)}close(){rt.off("videoInputAdded",this.handleCameraAdded,this),rt.off("videoInputRemoved",this.handleCameraRemoved,this),super.close()}recapture(e){return y(this,null,function*(){try{yield Ft(hs.prototype,this,"recapture").call(this,e)}catch(r){let o=(yield Kt()).find(s=>s.deviceId!==e);if(o)yield Ft(hs.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))}setRotation(e){this.manager&&(this.isScreen||x(e)||e!==this.rotation&&(this.rotation=e,this.manager.rotation=e))}};ee([po(function(e){this.setContentHint(e.contentHint||"motion")})],hs.prototype,"capture",1);var ar=hs;var Jh={};hi(Jh,{REPORT_TYPE:()=>zs,buildSSOPackage:()=>Ii,bytes2ms:()=>of,calculateScaleResolutionDownNumber:()=>rd,concatArrayBuffers:()=>gf,convertObjectNumberToInt:()=>na,copyProperties:()=>rf,deepClone:()=>Wo,deepCloneBasic:()=>Qc,deepMerge:()=>Nr,delay:()=>aa,fibonacci:()=>Go,formatedTime:()=>Zc,getConstructorName:()=>Hs,getContainerFromElement:()=>hf,getEnv:()=>Kp,getFirst16Bits:()=>_f,getInternalVersion:()=>lf,getLast16Bits:()=>Ef,getLoggerUrl:()=>Ti,getMediaStreamTrackInfo:()=>td,getMuteStateFromFlag:()=>qo,getNetworkType:()=>ra,getNumNetworkType:()=>Yc,getReconnectionTimeout:()=>nf,getStringByteLength:()=>pf,getTurnServer:()=>mf,getUint32Version:()=>Kc,getValueType:()=>ct,getViewListFromView:()=>js,glog:()=>ia,ipv4ToUint32:()=>Gs,isArray:()=>st,isAudioWorkletSupported:()=>df,isBoolean:()=>Qe,isConstructor:()=>jo,isEmpty:()=>Ws,isFunction:()=>Ge,isLangChinese:()=>Cr,isMediaStreamTrack:()=>af,isNumber:()=>ke,isObject:()=>ir,isOverseaSdkAppId:()=>_i,isPlainObject:()=>Bt,isPortrait:()=>Gl,isPromise:()=>io,isRemoteTrack:()=>cf,isRotate90Or270:()=>or,isSetSinkIdSupported:()=>uf,isString:()=>Ne,isUndefined:()=>x,loadImage:()=>qs,loadVideo:()=>ff,ms2bytes:()=>sf,ms2samples:()=>Wl,normalizeUrl:()=>zo,performanceNow:()=>_e,promiseAny:()=>oa,samples2ms:()=>Hl,setNetworkType:()=>tf,stringify:()=>mr,stringifyIncludeValue:()=>sa,throttlePromise:()=>ed});var WS=[-1,-1,1,-1,-1,1,1,1],GS=[0,0,1,0,0,1,1,1];var _o=class _o extends le{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 Dt){e.ctx&&r.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 o=e.ctx;this.texCoordBuffer=this.createBuffer(GS),this.positionBuffer=this.createBuffer(WS),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:q.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 Dt&&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,n,a,u,m,p){let g=!x(a)&&!x(u)&&!x(m)&&!x(p);return this.ctx2d&&e?(e instanceof ImageData?(g?this.ctx2d.putImageData(e,r,o,a,u,m,p):this.ctx2d.putImageData(e,r,o),this.emit(_o.RENDER,this.ctx2d.canvas)):(g?this.ctx2d.drawImage(e,a,u,m,p,r,o,s,n):this.ctx2d.drawImage(e,r,o,s,n),this.emit(_o.RENDER,e)),typeof VideoFrame!="undefined"&&e instanceof VideoFrame&&e.close(),!0):!1}drawBackGround2d(e){this.ctx2d&&(this.ctx2d.save(),this.ctx2d.fillStyle=e,this.ctx2d.fillRect(0,0,this.width,this.height),this.ctx2d.restore())}getInfo(){var g;let{totalFrames:e,x:r,y:o,width:s,height:n,name:a,cost:u}=this,m=Date.now(),p=(e-this.lastInfo.totalFrames)/((m-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:r,y:o,width:s,height:n,timestamp:m,fps:p,name:a,cost:u},X({parent:(g=this.input)==null?void 0:g.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}};l(_o,"RENDER","render"),ee([Ze(le.INIT,"connected",{sync:!0})],_o.prototype,"connect",1),ee([Ze("connected",le.INIT,{ignoreError:!0,sync:!0})],_o.prototype,"disconnect",1),ee([Ze([],"closed",{sync:!0})],_o.prototype,"close",1);var vt=_o;var Kg=Ae(hh(250),go(()=>performance.now()),Pi()),eE=i=>t=>{let e=0,r=performance.now();Ae(Kg,go(o=>(o-r)/i>>0),Jt(o=>o!=e?(e=o,!0):!1))(t)},gu=i=>t=>{let e=performance.now();Ae(Kg,au(r=>r-e<i),Fr(1))(t)};var qS=[0,1,1,1,0,0,1,0],ps=class extends vt{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 Dt?this.ctx2d=e.ctx||null:e.available&&(r!=null&&r.mirrorUpAndDown)&&this.setTexBuffer(qS)}start(e){this.log.info(`${this.name} start render ${e} fps`),dt.clearTask(this._intervalId),this._intervalId=dt.run("intervalInWorker",()=>{if(e!==this.context.frameRate&&(dt.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:q.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(),this.emit(vt.RENDER,this.context._canvas),!0):!1}addInput(e,...r){super.addInput(e,...r),this.start(this.context.frameRate)}update(e=0){this._intervalId&&(dt.clearTask(this._intervalId),this._intervalId=0,e===1&&(this.log.info(`${this.name} use requestVideoFrameCallback`),this.checkVisibilityChange=()=>{document.hidden&&(this.start(this.context.frameRate),this.log.info(`${this.name} use timer`),document.removeEventListener("visibilitychange",this.checkVisibilityChange))},document.addEventListener("visibilitychange",this.checkVisibilityChange))),this.requestFrame(this._sequence++)}removeInput(e){super.removeInput(e),dt.clearTask(this._intervalId)}resize(e,r){super.resize(e,r),this.context.setSize(e,r)}close(){super.close(),dt.clearTask(this._intervalId),document.removeEventListener("visibilitychange",this.checkVisibilityChange)}},In=class extends ps{constructor(e,r){super(e,r);l(this,"_videoTrack");l(this,"_muteOb");l(this,"_closedOb",be(this,"closed"));l(this,"_subscription");l(this,"_canvasContainer");Number(yi)<17&&(this._canvasContainer=document.createElement("div"),this._canvasContainer.style.display="none"),[this._videoTrack]=e._canvas.captureStream().getVideoTracks(),this._muteOb=be(this._videoTrack,"mute"),Ae(be(this._videoTrack,"ended"),ze(this._closedOb),Le(()=>{this.context.destroy(new de({code:q.VIDEO_MANAGER_ERROR,extraCode:8,message:"video track ended"}))}))}enableCheckMute(){this._subscription=Ae(this._muteOb,ze(this._closedOb),ki(gu(5e3)),Jt(()=>{var e;return!!((e=this._videoTrack)!=null&&e.muted)&&!document.hidden}),Le(()=>{this.context.destroy(new de({code:q.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()}},Eu=class extends In{render(t){var e;return!!((e=this.input)!=null&&e.requestFrame(t))}};var _u=class extends In{constructor(e,r,o){super(e,{name:"smallDestination",logger:o});this.resolution=r}resize(e,r){let o,s=e*r,n=this.resolution.width*this.resolution.height;this.log.info(`big res: ${e}*${r} small res: ${this.resolution.width}*${this.resolution.height} `),s>n?o=s/n:(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 Ka=class extends vt{constructor(e,r){super(e,X({name:"imageSource"},r));l(this,"_lastImage");l(this,"_totalFrames",0);l(this,"_autoResize",!1);l(this,"_canvasRendered");l(this,"videoCallbackId",0);l(this,"waitingFirstFrame",!0);l(this,"shouldUpdate",!0);this._autoResize=(r==null?void 0:r.autoResize)!==!1,Ot===16&&(this._canvasRendered=Rt(),Ae(this._canvasRendered,Ja(this._image),Eo(o=>o instanceof HTMLCanvasElement?be(o,"rendered"):Qa()),ze(be(this,"closed")),Le(()=>{this.update()})))}onFirstFrame(){this.waitingFirstFrame=!1}tryVideoFrameCallback(){if(!this.shouldUpdate)return;let e=this.image;this.videoCallbackId&&e.cancelVideoFrameCallback(this.videoCallbackId),Mi()&&!document.hidden&&(this.videoCallbackId=e.requestVideoFrameCallback((r,o)=>{this.waitingFirstFrame&&this.onFirstFrame(),document.hidden||(this._totalFrames=o.presentedFrames,this.update(1))}))}_render(e,r){var a;let{width:o,height:s}=this,{image:n}=this;if(n instanceof HTMLVideoElement){if(this.tryVideoFrameCallback(),{videoWidth:o,videoHeight:s}=n,!o||!s)return!1;n.width=o,n.height=s}else if(n instanceof HTMLImageElement||n instanceof ImageData||n instanceof ImageBitmap){if({width:o,height:s}=n,n!==this._lastImage)this._lastImage=n;else if(o===this.width&&s===this.height)return!0}else n instanceof HTMLCanvasElement||n instanceof OffscreenCanvas?({width:o,height:s}=n,this._lastImage=n):typeof VideoFrame!="undefined"&&n instanceof VideoFrame&&({displayWidth:o,displayHeight:s}=n,(a=this._lastImage)==null||a.close(),this._lastImage=n);if(!this._autoResize)return!0;if(this.width===o&&this.height===s&&this.totalFrames){if(r){this.useTexture();let u=this.context.ctx;u.texSubImage2D(u.TEXTURE_2D,0,0,0,u.RGBA,u.UNSIGNED_BYTE,n)}}else{if(r){this.useTexture();let u=this.context.ctx;u.texImage2D(u.TEXTURE_2D,0,u.RGBA,u.RGBA,u.UNSIGNED_BYTE,n)}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)}},ec=class extends Ka{constructor(e,r,o){super(e,o);this._player=r;this.name="videoPlayerSource",Ae(be(this._player,qe.PLAYER_STATE_CHANGED),ze(be(this,"closed")),Jt(({state:s})=>s==="PLAYING"),Le(()=>{this.tryVideoFrameCallback()}))}get image(){return this._player.element}},gr=class extends ec{get available(){return this._player.isPlaying&&!this.waitingFirstFrame}constructor(t,e,r){super(t,new zt({id:r.name,track:e,muted:!0,container:null,objectFit:"contain",log:r.logger}),r),this.name="videoTrackSource",this._player.play()}replaceTrack(t){this.waitingFirstFrame=!0,this._player.setTrack(t),this._player.play()}close(){super.close(),this._player.stop()}},Tu=class extends vt{constructor(e,r,o){super(e,ge(X({name:"textSource"},o),{create2d:!0}));l(this,"hasChange",!0);l(this,"content","");this.ctx2d.textBaseline="top",this.content=r.content||"",r.font&&(this.font=r.font),r.color&&(this.color=r.color)}set font(e){this.ctx2d&&(this.ctx2d.font=e,this.hasChange=!0)}get font(){var e;return((e=this.ctx2d)==null?void 0:e.font)||""}set color(e){this.ctx2d&&(this.ctx2d.fillStyle=e,this.hasChange=!0)}get color(){var e;return((e=this.ctx2d)==null?void 0:e.fillStyle)||""}render2d(e){return this.ctx2d&&this.hasChange?(this.ctx2d.clearRect(0,0,this.width,this.height),this.drawMultilineText(0,0),this.hasChange=!1,!0):!1}render(e){return!1}resize(e,r){if(!this.ctx2d)return;let{color:o,font:s}=this;super.resize(e,r),this.color=o,this.font=s}drawMultilineText(e=0,r=0,o=1.2){if(!this.ctx2d)return;let s=this.ctx2d.measureText(this.content);r+=s.fontBoundingBoxAscent||s.actualBoundingBoxAscent||0;let n=this.font.match(/(\d+)px/),u=(n?parseInt(n[1],10):16)*o,m=this.content.split(`
|
|
32
|
+
`);for(let p=0;p<m.length;p++)this.ctx2d.fillText(m[p],e,r+p*u)}};var JS=`
|
|
33
33
|
// \u9876\u70B9\u7740\u8272\u5668
|
|
34
34
|
attribute vec4 a_position;
|
|
35
35
|
attribute vec2 a_texCoord;
|
|
@@ -39,7 +39,7 @@ void main() {
|
|
|
39
39
|
gl_Position = a_position;
|
|
40
40
|
v_texCoord = a_texCoord;
|
|
41
41
|
}
|
|
42
|
-
`,
|
|
42
|
+
`,XS=`
|
|
43
43
|
// \u7247\u5143\u7740\u8272\u5668
|
|
44
44
|
precision mediump float;
|
|
45
45
|
varying vec2 v_texCoord;
|
|
@@ -47,66 +47,66 @@ uniform sampler2D u_texture;
|
|
|
47
47
|
|
|
48
48
|
void main() {
|
|
49
49
|
gl_FragColor = texture2D(u_texture, v_texCoord);
|
|
50
|
-
} `;var hs=class extends le{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 fr(this,e,{logger:this.log,name:r})}createVideoTrackDestination(e){return new En(this,e)}createVideoImageSource(e,r){return new ic(this,r?Object.assign(r,{logger:this.log,image:e}):{logger:this.log,image:e})}createVideoPlayerSource(e,r){return new oc(this,e,r?Object.assign(r,{logger:this.log}):{logger:this.log})}createTextSource(e,r){return new yu(this,e,r?Object.assign(r,{logger:this.log}):{logger:this.log})}get available(){return this.state==="created"}disconnect(){this.emit("disconnect")}};l(hs,"_ids",0);var ny={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},Tn=class Tn extends hs{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}_${hs._ids++}`),this.ctx=this._canvas.getContext("webgl2",ny),!this.ctx)throw new de({code:q.VIDEO_MANAGER_ERROR,extraCode:2,message:"webgl2 not supported"});this.defaultVShader=this.createShader(this.ctx.VERTEX_SHADER,oy),this.defaultFShader=this.createShader(this.ctx.FRAGMENT_SHADER,sy),this.defaultProgam=this.createProgram(this.defaultVShader,this.defaultFShader),this._canvas.addEventListener("webglcontextlost",()=>{this.destroy(new de({code:q.VIDEO_MANAGER_ERROR,extraCode:4,message:"webgl context lost"}))})}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(Tn,"UNAVAILABLE","unavailable"),K([et(le.INIT,"created",{sync:!0,fail(e){this.log.error("video gl context create failed",e.cause),X.addFailedEvent({key:512700,error:e.cause||e})},success(){this.log.info("video context created use webgl"),X.addSuccessEvent({key:512700})}})],Tn.prototype,"create",1),K([et("created",le.INIT,{ignoreError:!0,sync:!0,success(e){e&&this.emit(Tn.UNAVAILABLE,e),this.removeAllListeners()}})],Tn.prototype,"destroy",1);var It=Tn,Nt=class extends hs{constructor(){super(...arguments);l(this,"ctx")}create(e){if(this.hasAlpha=e.alpha,this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${hs._ids++}`,this.ctx=this._canvas.getContext("2d",{alpha:e.alpha}),!this.ctx)throw new de({code:q.VIDEO_MANAGER_ERROR,extraCode:2,message:"2d context not supported"});this._canvas.addEventListener("contextlost",()=>{this.log.error("2d context lost")}),this._canvas.addEventListener("contextrestored",()=>{this.log.warn("2d context restored")})}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})}};K([et(le.INIT,"created",{sync:!0,fail(e){this.log.error("video 2d context create failed",e.cause),X.addFailedEvent({key:512701,error:e.cause||e})},success(){this.log.info("video context created use 2d"),X.addSuccessEvent({key:512701})}})],Nt.prototype,"create",1),K([et("created",le.INIT,{ignoreError:!0,sync:!0})],Nt.prototype,"destroy",1);function ay(i,t,e,r,o,s=!1){s&&([e,r]=[r,e]);let n={sWidth:i,sHeight:t,dWidth:e,dHeight:r,sx:0,sy:0,dx:0,dy:0};if(i===0||t===0)return n;switch(o){case void 0:case"fill":break;case"contain":{let a=Math.min(e/i,r/t);n.dWidth=i*a,n.dHeight=t*a,n.dx=(e-n.dWidth)/2,n.dy=(r-n.dHeight)/2;break}case"cover":{let a=Math.max(e/i,r/t),u=e/a,m=r/a;n.sx=(i-u)/2,n.sy=(t-m)/2,n.sWidth=u,n.sHeight=m;break}}return n}var rp=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}get fillMode(){return this.layout.fillMode}get rotation(){return this.layout.rotation}get hidden(){return!!this.layout.hidden}},_n=class extends Rt{constructor(e,r){super(e,{useDefaultProgram:!0,useFbo:!0,name:"mix",create2d:!0,logger:r});l(this,"inputs",[]);l(this,"backgroundColor","black")}addInput(e,r){let o=0,s=this.inputs.length;for(;o<s;){let a=Math.floor((o+s)/2);if(this.inputs[a].layout.zIndex<r.zIndex)o=a+1;else if(this.inputs[a].layout.zIndex>r.zIndex)s=a;else throw new Error(`input already exists at zIndex ${r.zIndex}`)}let n=new rp(e,r);this.inputs.splice(o,0,n)}changeInputLayout(e,r){let o=this.inputs.findIndex(C=>C.node===e);if(o<0)return;let{x:s,y:n,width:a,height:u,zIndex:m,fillMode:p,rotation:g,hidden:T}=r;if(!x(m)&&this.inputs.some(C=>C.layout.zIndex===m&&C.node!==e))throw new Error(`input already exists at zIndex ${r.zIndex}`);let A=this.inputs[o];x(s)||(A.layout.x=s),x(n)||(A.layout.y=n),x(a)||(A.layout.width=a),x(u)||(A.layout.height=u),x(g)||(A.layout.rotation=g),x(T)||(A.layout.hidden=T),p&&(A.layout.fillMode=p),!x(m)&&m!==A.layout.zIndex&&(A.layout.zIndex=m,this.inputs.sort((C,D)=>C.layout.zIndex-D.layout.zIndex))}hasInput(e){return this.inputs.some(r=>r.node===e)}hasNoInput(){return this.inputs.length===0}resize(e,r){if(!this.matchInputSize){super.resize(e,r);return}let o=this.inputs.reduce((s,n)=>n?Object.assign(s,{width:Math.max(s.width,n.right),height:Math.max(s.height,n.bottom)}):s,{width:0,height:0});super.resize(o.width,o.height),this.context instanceof It&&this.inputs.forEach(s=>{if(s){let n=this.layout2texCoords(s);s.positionBuffer?this.changeBufferData(s.positionBuffer,n):s.positionBuffer=this.createBuffer(n)}})}connect(e,...r){return super.connect(e,...r),this.drawBackGround2d(this.backgroundColor),this.matchInputSize&&this.resize(0,0),e}removeInput(e){this.inputs=this.inputs.filter(r=>r.node!==e),this.inputs.length===0&&this.drawBackGround2d(this.backgroundColor)}render(e){let r=this.context.ctx;if(r.clearColor(0,0,0,0),this.inputs.reduce((s,n)=>n.node.requestFrame(e)||s,!1)&&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 n=this.inputs[s];n&&(n.node.useTexture(),this.draw(n.positionBuffer))}return!0}return!1}render2d(e){if(this.inputs.forEach(r=>r.node.requestFrame(e)),this.ctx2d){this.drawBackGround2d(this.backgroundColor);for(let r=0;r<this.inputs.length;r++){let o=this.inputs[r];if(o.hidden)continue;let s=ay(o.node.width,o.node.height,o.width,o.height,o.fillMode,sr(o.rotation));this.draw2d(o.node.image,o.x+s.dx,o.y+s.dy,s.dWidth,s.dHeight,s.sx,s.sy,s.sWidth,s.sHeight)}return!0}return!1}debugLayout(e,r,o,s,n=!1){this.ctx2d&&(n&&([o,s]=[s,o]),this.ctx2d.save(),this.ctx2d.strokeStyle="red",this.ctx2d.lineWidth=2,this.ctx2d.strokeRect(e,r,o,s),this.ctx2d.restore())}getInfo(){let{totalFrames:e,x:r,y:o,width:s,height:n,name:a}=this,u=Date.now(),m=(e-this.lastInfo.totalFrames)/((u-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:r,y:o,width:s,height:n,timestamp:u,fps:m,name:a},J({parent:this.inputs.filter(p=>p).map(p=>p.node.getInfo())},this.lastInfo)}removeAllInputs(){this.inputs.forEach(e=>{var r;if(e.node.disconnect(),e.positionBuffer&&this.context instanceof It)try{(r=this.context.ctx)==null||r.deleteBuffer(e.positionBuffer)}catch(o){}})}close(){super.close(),this.removeAllInputs()}};var cy=[1,0,0,0,1,1,0,1],gr=class extends Rt{constructor(e,r,o,s){super(e,{useDefaultProgram:!0,useFbo:!0,create2d:!0,name:"transform",logger:r});l(this,"mirror",!1);l(this,"rotation",0);if(o&&(this.mirror=o),s&&(this.rotation=s),e instanceof It)try{this.setTexBuffer(cy)}catch(n){e.destroy(new de({code:q.VIDEO_MANAGER_ERROR,extraCode:3,message:`create video node ${this.name} error ${n.message||n}`}))}}draw2d(e,r,o,s,n){if(this.ctx2d){this.ctx2d.clearRect(0,0,this.width,this.height),this.ctx2d.save(),this.mirror&&(this.ctx2d.scale(-1,1),this.ctx2d.translate(-this.width,0)),this.rotation===90?(this.ctx2d.translate(s,0),this.ctx2d.rotate(Math.PI/2),this.ctx2d.scale(n/s,s/n)):this.rotation===180?(this.ctx2d.translate(this.width,this.height),this.ctx2d.rotate(Math.PI)):this.rotation===270&&(this.ctx2d.translate(0,n),this.ctx2d.rotate(3*Math.PI/2),this.ctx2d.scale(n/s,s/n));let a=super.draw2d(e,r,o,s,n);return this.ctx2d.restore(),a}return!1}render(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0):!1}resize(e,r){sr(this.rotation)&&([e,r]=[r,e]),super.resize(e,r)}};var ps=class extends Lr{constructor(e,r=4){super(r,qt);l(this,"inputLocalVideoTracks",new Map);l(this,"inputLocalScreenTracks",new Map);l(this,"cameraNodeMap",new Map);l(this,"screenNodeMap",new Map);l(this,"textNodeMap",new Map);l(this,"imageNodeMap",new Map);l(this,"videoNodeMap",new Map);l(this,"endedIds",new Set);l(this,"videoContext");l(this,"mixNode");l(this,"destination");l(this,"manager");l(this,"stat");l(this,"_checkId",0);l(this,"autoSetFps",!0);this.manager=e,this.log.id+="mix",this.create2dVideoContext(),this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log}),this.destination.on(Rt.RENDER,o=>{this.emit("render",o)}),this.mixNode=new _n(this.videoContext,this.log),this.mixNode.matchInputSize=!1}listenDeviceChange(){throw new Error("Method not implemented.")}enablePrintDetail(e=2e3){this._checkId=dt.run("interval",()=>{this.destination&&this.log.debug(this.destination.getInfo())},{delay:e})}create2dVideoContext(){this.videoContext?this.videoContext.destroy():this.videoContext=new Nt({frameRate:15,logger:this.log,name:"mix-ctx"}),this.videoContext.create({alpha:!1})}setFps(e){this.autoSetFps=!1,this.videoContext.frameRate=e;for(let r of[...this.cameraNodeMap.values(),...this.screenNodeMap.values()])r.shouldUpdate=!1;setTimeout(()=>{var r;return(r=this.destination)==null?void 0:r.start(this.videoContext.frameRate)},500)}setFpsAuto(){var s;if(!this.autoSetFps)return;for(let n of[...this.cameraNodeMap.values(),...this.screenNodeMap.values()])n.shouldUpdate=!1;let e=null,r=0,o=!0;for(let[n,a]of this.inputLocalVideoTracks)if(a.profile.frameRate>r){if(this.endedIds.has(n)){let u=this.cameraNodeMap.get(n);u&&u.image.cancelVideoFrameCallback(u.videoCallbackId);continue}r=a.profile.frameRate,e=n}for(let[n,a]of this.inputLocalScreenTracks)if(a.profile.frameRate>r){if(this.endedIds.has(n)){let u=this.screenNodeMap.get(n);u&&u.image.cancelVideoFrameCallback(u.videoCallbackId);continue}r=a.profile.frameRate,e=n,o=!1}if(e!==null){let n=o?this.cameraNodeMap.get(e):this.screenNodeMap.get(e);n&&(n.shouldUpdate=!0,n.tryVideoFrameCallback()),this.log.info("set mix fps: ",r)}else(s=this.destination)==null||s.start(this.videoContext.frameRate),this.log.info("fallback to timer, fps: ",this.videoContext.frameRate)}setMixBackground(e){this.mixNode&&(this.mixNode.backgroundColor=e)}resizeMixCanvas(e,r){var o;(o=this.mixNode)==null||o.resize(e,r)}startMix(){return y(this,null,function*(){var e;if(!this.mixNode||!this.destination)throw new Error("can't mix without necessary conditions");this.mixNode.disconnect(),this.mixNode.connect(this.destination),mr&&this.player.setCanvas(this.videoContext._canvas),this.setOutputMediaStreamTrack(this.destination.videoTrack),(e=this.manager)==null||e.changeInput(this)})}addCameraSource(e,r,o){if(this.inputLocalVideoTracks.has(e)||this.cameraNodeMap.has(e))throw new Error(`There is already a cameraSource with the same ID: ${e}`);let{mediaTrack:s}=r;if(!s)throw new Error("no mediaTrack, add cameraSource failed");r.recaptureMode=1,At(this,it).add("videoInputRemoved",a=>{a.deviceId===r.deviceId&&(this.endedIds.add(e),this.setFpsAuto())}),r.on("output-media-track-changed",()=>{this.endedIds.delete(e),this.updateCameraSource(e,o,r.mediaTrack)});let n;wt===16&&s instanceof CanvasCaptureMediaStreamTrack?n=this.videoContext.createVideoImageSource(s.canvas,{name:"cameraCanvasSource",logger:this.log}):n=this.videoContext.createVideoTrackSource(s,"cameraNodeSource"),n.resize(r.settings.width,r.settings.height),n.shouldUpdate=!1,this._connectMix(n,o,"cover"),this.inputLocalVideoTracks.set(e,r),this.cameraNodeMap.set(e,n),this.setFpsAuto()}addScreenSource(e,r,o){if(this.inputLocalScreenTracks.has(e)||this.screenNodeMap.has(e))throw new Error(`There is already a screenSource with the same ID: ${e}`);let{mediaTrack:s}=r;if(!s)throw new Error("no mediaTrack, add cameraSource failed");let n=this.videoContext.createVideoTrackSource(s,"screenNodeSource");n.resize(r.settings.width,r.settings.height),n.shouldUpdate=!1,this._connectMix(n,o),this.inputLocalScreenTracks.set(e,r),this.screenNodeMap.set(e,n),this.setFpsAuto()}addTextSource(e){let{id:r,content:o="",font:s,color:n,layout:a}=e;if(this.textNodeMap.has(r))throw new Error(`There is already a textSource with the same ID: ${r}`);let u=this.videoContext.createTextSource({content:o,font:s,color:n});u.resize(a.width,a.height),this._connectMix(u,a),this.textNodeMap.set(r,u)}addImageSource(e,r,o){if(this.imageNodeMap.has(e))throw new Error(`There is already a imageSource with the same ID: ${e}`);let s=this.videoContext.createVideoImageSource(r,{autoResize:!1,logger:this.log});s.resize(r.width,r.height),this._connectMix(s,o),this.imageNodeMap.set(e,s)}addVideoSource(e,r,o){if(this.videoNodeMap.has(e))throw new Error(`There is already a videoSource with the same ID: ${e}`);let s=this.videoContext.createVideoImageSource(r,{autoResize:!1,logger:this.log});s.resize(r.videoWidth,r.videoHeight),s.shouldUpdate=!1,this._connectMix(s,o),this.videoNodeMap.set(e,s)}updateCameraSource(e,r,o=null,s){let n=this.cameraNodeMap.get(e);if(n){if(o){if(wt===16&&o instanceof CanvasCaptureMediaStreamTrack)if(n instanceof fr){let m=n.output;n.close(),n=this.videoContext.createVideoImageSource(o.canvas,{name:"cameraCanvasSource",logger:this.log}),n.connect(m),this.cameraNodeMap.set(e,n)}else n.image=o.canvas;else if(n instanceof fr)n.replaceTrack(o);else{let m=n.output;n.close(),n=this.videoContext.createVideoTrackSource(o,"cameraNodeSource"),n.connect(m),this.cameraNodeMap.set(e,n)}let{width:a,height:u}=o.getSettings();a&&u&&n.resize(a,u)}s&&n.resize(s.width,s.height),(s||o)&&this.setFpsAuto(),this._changeMixLayout(n,r)}}updateScreenSource(e,r){let o=this.screenNodeMap.get(e);o&&this._changeMixLayout(o,r)}updateTextSource(e){let{id:r,content:o,font:s,color:n,layout:a}=e,u=this.textNodeMap.get(r);u&&(x(o)||(u.content=o),x(s)||(u.font=s),x(n)||(u.color=n),u.resize(a.width,a.height),this._changeMixLayout(u,a))}updateImageSource(e,r,o){let s=this.imageNodeMap.get(e);s&&(o&&(s.image=o,s.resize(o.width,o.height)),this._changeMixLayout(s,r))}updateVideoSource(e,r,o){let s=this.videoNodeMap.get(e);if(s){if(o){let n=s.image;n instanceof HTMLVideoElement&&this.stopVideoElement(n),s.image=o,s.resize(o.videoWidth,o.videoHeight)}this._changeMixLayout(s,r)}}_connectMix(e,r,o="contain"){if(!this.mixNode)return;let{mirror:s,rotation:n}=r;e.disconnect();let a=new gr(this.videoContext,this.log,s,n);a=e.connect(a),r.fillMode||(r.fillMode=o),a.connect(this.mixNode,r)}_changeMixLayout(e,r){if(!this.mixNode)return;let{mirror:o,rotation:s}=r,n=e.output||e;n instanceof gr&&(x(o)||(n.mirror=o),x(s)||(n.rotation=s),n.resize(e.width,e.height)),this.mixNode.changeInputLayout(n,r)}removeCameraSource(e){let r=this.inputLocalVideoTracks.get(e);if(!r)return;r.close(),this.inputLocalVideoTracks.delete(e);let o=this.cameraNodeMap.get(e);o&&(o.output instanceof gr&&o.output.close(),o.close(),this.cameraNodeMap.delete(e)),this.checkAfterRemove(!0)}removeScreenSource(e){let r=this.inputLocalScreenTracks.get(e);if(!r)return;r.close(),this.inputLocalScreenTracks.delete(e);let o=this.screenNodeMap.get(e);o&&(o.output instanceof gr&&o.output.close(),o.close(),this.screenNodeMap.delete(e)),this.checkAfterRemove(!0)}removeTextSource(e){let r=this.textNodeMap.get(e);r&&(r.output instanceof gr&&r.output.close(),r.close(),this.textNodeMap.delete(e)),this.checkAfterRemove()}removeImageSource(e){let r=this.imageNodeMap.get(e);r&&(r.output instanceof gr&&r.output.close(),r.close(),this.imageNodeMap.delete(e)),this.checkAfterRemove()}removeVideoSource(e){let r=this.videoNodeMap.get(e);r&&(r.output instanceof gr&&r.output.close(),r.image instanceof HTMLVideoElement&&this.stopVideoElement(r.image),r.close(),this.videoNodeMap.delete(e)),this.checkAfterRemove()}checkAfterRemove(e=!1){e&&this.setFpsAuto()}stopVideoElement(e){e.pause(),e.src="",e.srcObject=null,e.remove()}close(){var e;super.close(),dt.clearTask(this._checkId),(e=this.videoContext)==null||e.destroy(),delete this.mixNode,delete this.destination;for(let r of[...this.inputLocalVideoTracks.values(),...this.inputLocalScreenTracks.values()])r.close();this.inputLocalVideoTracks.clear(),this.inputLocalScreenTracks.clear(),this.cameraNodeMap.clear(),this.screenNodeMap.clear(),this.textNodeMap.clear(),this.imageNodeMap.clear(),ut(this);for(let r of this.videoNodeMap.values())r.image instanceof HTMLVideoElement&&this.stopVideoElement(r.image);this.videoNodeMap.clear(),this.log.info("localMixVideoTrack close, stop mix")}};var Au=va();if(typeof navigator!="undefined"&&navigator.mediaDevices&&"setCaptureHandleConfig"in navigator.mediaDevices)try{navigator.mediaDevices.setCaptureHandleConfig({handle:Au,exposeOrigin:!0,permittedOrigins:["*"]})}catch(i){}var dy=function(i){return y(this,null,function*(){let t=null,e=my(i);$.info(`getDisplayMedia with constraints: ${JSON.stringify(e)}`);let r=yield navigator.mediaDevices.getDisplayMedia(e);i.systemAudio&&r.getAudioTracks().length===0&&(tn&&Qr<74||Tt||$t)&&$.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){$.warn(`screen applyConstraints failed: ${s}`)}i.captureElement&&(yield uy(o,i.captureElement))}if(i.audio){let s=ly(i);$.info(`getUserMedia with constraints: ${JSON.stringify(s)}`),t=yield navigator.mediaDevices.getUserMedia(s),r.addTrack(t.getAudioTracks()[0])}return r})};function uy(i,t){return y(this,null,function*(){var e;if("CropTarget"in window&&"fromElement"in CropTarget&&Ge(i.cropTo))try{if(!(((e=i.getCaptureHandle())==null?void 0:e.handle)===Au))return;let o=yield CropTarget.fromElement(t);yield i.cropTo(o)}catch(r){$.warn(`cropTo target failed ${r}`)}})}function ly(i){let t={echoCancellation:i.echoCancellation,autoGainControl:i.autoGainControl,noiseSuppression:i.noiseSuppression,sampleRate:i.sampleRate,channelCount:i.channelCount};return x(i.microphoneId)||(t.deviceId=i.microphoneId),{audio:t,video:!1}}function my(i){let t={preferCurrentTab:i.preferDisplaySurface==="current-tab"||!!i.captureElement,systemAudio:"include",selfBrowserSurface:"include",surfaceSwitching:"include"},e={width:Tt?{max:i.width}:{ideal:i.width,max:i.width},height:Tt?{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 cE=dy;var ei=class extends cr{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}`}get isShareCurrentTab(){var e,r;try{return Au===((r=(e=this.mediaTrack)==null?void 0:e.getCaptureHandle())==null?void 0:r.handle)}catch(o){return}}capture(p){return y(this,arguments,function*({systemAudio:e=!1,autoGainControl:r,echoCancellation:o,noiseSuppression:s,audioTrack:n,videoTrack:a,captureElement:u,preferDisplaySurface:m}){try{let g;return a||n?(g=new MediaStream,a&&g.addTrack(a),n&&g.addTrack(n)):(g=yield cE({audio:!1,systemAudio:e,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,autoGainControl:r,echoCancellation:o,noiseSuppression:s,captureElement:u,preferDisplaySurface:m}),this.sourceTrack=g.getVideoTracks()[0]),yield this.setInputMediaStreamTrack(g.getVideoTracks()[0]),g}catch(g){throw this.log.error(`getDisplayMedia error observed ${g}`),g instanceof de?g:new de({code:q.INITIALIZE_FAILED,name:g.name,message:g.message})}})}switchDevice(e){return y(this,null,function*(){throw new Error("Method not implemented.")})}};K([ao(function(e){this.setContentHint(e.contentHint||"detail")})],ei.prototype,"capture",1);var fs=class extends Kr{constructor(t){super(t),this._log.id=`s-${this._log.id}`}addAudioProcessor(t,e,r){this.pipeline.silentNode.setNode(r),this.pipeline.mixNode.setNode(e),this.pipeline.aec.setNode(t),this.enableTrackAEC(!1)}removeAudioProcessor(t){this.pipeline.aec.node===t&&(this.pipeline.aec.deleteNode(),this.pipeline.silentNode.deleteNode(),this.pipeline.mixNode.deleteNode(),this.enableTrackAEC(!0))}};var hy='registerProcessor("dumper",class extends AudioWorkletProcessor{constructor(e){super(),this.sourceSampleRate=e.processorOptions.sourceSampleRate||48e3,this.targetSampleRate=e.processorOptions.targetSampleRate||48e3,this.port.onmessage=e=>{this.port2=e.data.port}}process(e){return(this.port2||this.port).postMessage(this.resampleAll(e,this.sourceSampleRate,this.targetSampleRate)),!0}resampleAll(r,s,a){if(s===a)return r;var o=[];for(let t=0;t<r.length;t++){o[t]=[];for(let e=0;e<r[t].length;e++)o[t][e]=this.resample(r[t][e],s,a)}return o}resample(t,e,r){if(e===r)return t;var s=Math.round(t.length*(this.targetSampleRate/this.sourceSampleRate)),a=new Float32Array(s),o=(t.length-1)/(s-1);a[0]=t[0];for(let e=1;e<s-1;e++){var l=e*o,p=Math.floor(l),h=Math.ceil(l);a[e]=t[p]+(t[h]-t[p])*(l-p)}return a[s-1]=t[t.length-1],a}});',ip;function sc(i,t=48e3,e=1,r){return y(this,null,function*(){let o=We("dump");ip||(ip=wi(o,URL.createObjectURL(new Blob([hy],{type:"application/javascript"})))),yield ip;let s=o.sampleRate,n=new AudioWorkletNode(o,"dumper",{numberOfInputs:i.length,numberOfOutputs:0,processorOptions:{sourceSampleRate:s,targetSampleRate:t}});return n.channelCountMode="explicit",n.channelCount=e,r&&n.port.postMessage({port:r},[r]),i.forEach((a,u)=>a.connect(n,0,u)),new ReadableStream({start(a){n.port.onmessage=u=>{a.enqueue(u.data)}},cancel(){i.forEach(a=>a.disconnect(n)),n.port.close()}})})}var bu=class extends Yd{constructor(e){super();this.room=e;l(this,"_localAudioTrack");l(this,"_localScreenAudioTrack");l(this,"log",$.createLogger({id:"am"}));l(this,"denoiser");l(this,"voiceChanger");l(this,"mixChangedDebounce");l(this,"audioProcessor");l(this,"encodePipeline",[]);l(this,"decodePipeline",[]);l(this,"getPCMAbortCtrlMap",new Map);l(this,"audioFrameEventConfigMap",new Map);l(this,"audioReferenceMap",new Map);l(this,"isLocalAudioNeedAudioProcess",!1);l(this,"isScreenAudioNeedAudioProcess",!1);e&&(this.log.setUserId(e.userId),this.log.setSdkAppId(e.sdkAppId)),this.installEvent()}get _localAudioPipline(){var e;return(e=this._localAudioTrack)==null?void 0:e.pipeline}get _localScreenAudioPipeline(){var e;return(e=this._localScreenAudioTrack)==null?void 0:e.pipeline}dump(e){var p,g;if(!this._localAudioTrack)return;let r=[],o=[];(p=this._localAudioPipline)!=null&&p.source.node&&(r.push(this._localAudioPipline.source.node),o.push("mic")),(g=this._localAudioPipline)!=null&&g.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,n=[],a=setTimeout(()=>{this.log.info('dump audio track complete please input "download()" to download.'),s.abort("timeout")},e*1e3),u=()=>{for(let T=0;T<o.length;T++){let A=URL.createObjectURL(new Blob(n[T])),C=document.createElement("a");C.href=A,C.download=`${o[T]}.pcm`,C.style.display="none",document.body.appendChild(C),C.click(),URL.revokeObjectURL(A),C.remove()}clearTimeout(a),s.abort("download")},m=sc(r).then(T=>T.pipeTo(new WritableStream({write(A){A.forEach((C,D)=>n[D]=n[D]?n[D].concat(C[0]):[C[0]])}}),s).catch(A=>u));return{then:m.then.bind(m),download:u}}getPCM(e,r){var O,Y,ue;if(typeof WritableStream=="undefined"){this.log.warn("getPCM failed: browser not support WritableStream");return}let{enable:o,sampleRate:s=48e3,channelCount:n=1,port:a}=(r===""?this.audioFrameEventConfigMap.get(""):this.audioFrameEventConfigMap.get(r)||this.audioFrameEventConfigMap.get("*"))||{};if(!o)return;this.log.info(`getPCM ${r||"local"}`);let u=Math.floor(s*.04),m=new Float32Array(u),p=new Float32Array(u),g,T,A=0,C=new AbortController,D=r===""?(O=this._localAudioTrack)==null?void 0:O.mediaTrack:(ue=(Y=this.room)==null?void 0:Y.remotePublishedUserMap.get(r))==null?void 0:ue.remoteAudioTrack.mediaTrack;if(!D){this.log.info(`getPCM failed: ${r||"local"} has no audio track`);return}let w=We().createMediaStreamSource(new MediaStream([D]));return sc([w],s,n,a).then(Se=>Se.pipeTo(new WritableStream({write(Ke){Ke[0][0]&&(A+Ke[0][0].length>u?(m.set(Ke[0][0].subarray(0,u-A),A),g=Ke[0][0].subarray(u-A),Ke[0][1]&&(p.set(Ke[0][1].subarray(0,u-A),A),T=Ke[0][1].subarray(u-A)),A+=u-A):(g&&(m.set(g,A),A+=g.length,g=void 0),T&&(p.set(T,A),T=void 0),m.set(Ke[0][0],A),Ke[0][1]&&p.set(Ke[0][1],A),A+=Ke[0][0].length),A>=u&&(A=0,e({userId:r,sampleRate:s,channelCount:n,data:n===1?m:[m,p]}),m=new Float32Array(u),p=new Float32Array(u)))}}),C).catch(Ke=>this.log.warn(`stop getPCM reason:${Ke}`))),C}get hasScreenAudioTrack(){return!x(this._localScreenAudioTrack)}get hasAudioTrack(){return!x(this._localAudioTrack)}changeInput(e){var r,o;if(e instanceof fs)return this._localScreenAudioTrack=e,this.isScreenAudioNeedAudioProcess&&((r=this.audioProcessor)!=null&&r.screenAudioWorkletNode)&&(e.addAudioProcessor(this.audioProcessor.screenAudioWorkletNode,this.audioProcessor.mixNode,this.audioProcessor.silentNode),this.audioReferenceMap.forEach((s,n)=>{e.mixAudioReference(s,n)})),e.pipeline.connect(),this.mixOnChange();if(e instanceof Kr)return this._localAudioTrack=e,this.denoiser&&e.addDenoiser(this.denoiser),this.isLocalAudioNeedAudioProcess&&((o=this.audioProcessor)!=null&&o.localAudioWorkletNode)&&(e.addAudioProcessor(this.audioProcessor.localAudioWorkletNode,this.audioProcessor.mixNode,this.audioProcessor.silentNode),this.audioReferenceMap.forEach((s,n)=>{e.mixAudioReference(s,n)})),e.pipeline.connect(),this.mixOnChange();if(e instanceof xi)return e.setOutputMediaStreamTrack(e.mediaTrack)}mixAudioReference(e,r){var o;(o=this._localAudioTrack)==null||o.mixAudioReference(e,r)}unMixAudioReference(e){var r;(r=this._localAudioTrack)==null||r.unMixAudioReference(e)}setAudioReferenceVolume(e,r){var o;(o=this._localAudioTrack)==null||o.setAudioReferenceVolume(e,r)}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 fs?delete this._localScreenAudioTrack:e instanceof Kr?delete this._localAudioTrack:e instanceof xi}addDenoiser(e){var r;this.denoiser=e,(r=this._localAudioTrack)==null||r.addDenoiser(e)}addAudioProcessor(e,r,o,s){var n;this.audioProcessor={localAudioWorkletNode:o,mixNode:e,silentNode:r,screenAudioWorkletNode:s},this.isLocalAudioNeedAudioProcess&&this._localAudioTrack&&o&&(this._localAudioTrack.addAudioProcessor(o,e,r),this.audioReferenceMap.forEach((a,u)=>{var m;(m=this._localAudioTrack)==null||m.mixAudioReference(a,u)})),this.isScreenAudioNeedAudioProcess&&this._localScreenAudioTrack&&s&&((n=this._localScreenAudioTrack)==null||n.addAudioProcessor(s,e,r),this.audioReferenceMap.forEach((a,u)=>{var m;(m=this._localScreenAudioTrack)==null||m.mixAudioReference(a,u)}))}removeDenoiser(e){var r;return delete this.denoiser,(r=this._localAudioTrack)==null?void 0:r.removeDenoiser(e)}addVoiceChanger(e,r){var o;this.voiceChanger=[e,r],(o=this._localAudioTrack)==null||o.pipeline.voiceChanger.setNode(e,r)}removeVoiceChanger(){var e;delete this.voiceChanger,(e=this._localAudioTrack)==null||e.pipeline.voiceChanger.deleteNode()}removeAudioProcessor(e,r){var o,s;delete this.audioProcessor,(o=this._localAudioTrack)==null||o.removeAudioProcessor(e),(s=this._localScreenAudioTrack)==null||s.removeAudioProcessor(r)}destroy(){this.close(),this.audioReferenceMap.clear(),this.getPCMAbortCtrlMap.forEach(e=>e==null?void 0:e.abort("destroy")),this.getPCMAbortCtrlMap.clear(),this.audioFrameEventConfigMap.clear(),this.uninstallEvent()}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}handleLocalTrackStarted({room:e,userId:r}){var s;if(e!==this.room||this.getPCMAbortCtrlMap.get(r))return;let o=this.getPCM(n=>{var a;(a=this.room)==null||a.emit("audio-frame",n)},"");this.getPCMAbortCtrlMap.set(r,o),this.getPCMAbortCtrlMap.get(r)&&((s=this._localAudioTrack)==null||s.on("input-media-track-changed",()=>{let n=this.getPCMAbortCtrlMap.get(r);n&&(n.abort("inputMediaTrackChanged"),n=this.getPCM(a=>{var u;(u=this.room)==null||u.emit("audio-frame",a)},""),this.getPCMAbortCtrlMap.set(r,n))}))}handleLocalTrackStopped({room:e,userId:r}){if(e!==this.room)return;let o=this.getPCMAbortCtrlMap.get(r);o&&(o.abort("stopLocalAudio"),this.getPCMAbortCtrlMap.delete(r))}handleRemoteTrackStarted({room:e,userId:r}){if(e===this.room&&!this.getPCMAbortCtrlMap.get(r)){let o=this.room.audioManager.getPCM(s=>{var n;(n=this.room)==null||n.emit("audio-frame",s)},r);this.getPCMAbortCtrlMap.set(r,o)}}handleRemoteTrackStopped({room:e,userId:r}){if(e!==this.room)return;let o=this.getPCMAbortCtrlMap.get(r);o&&(o.abort("stopRemoteAudio"),this.getPCMAbortCtrlMap.delete(r))}installEvent(){V.on("113",this.handleLocalTrackStarted,this),V.on("114",this.handleLocalTrackStopped,this),V.on("115",this.handleRemoteTrackStarted,this),V.on("116",this.handleRemoteTrackStopped,this)}uninstallEvent(){V.off("113",this.handleLocalTrackStarted),V.off("114",this.handleLocalTrackStopped),V.off("115",this.handleRemoteTrackStarted),V.off("116",this.handleRemoteTrackStopped)}updateAudioReference({type:e,audioReference:r,refId:o,volume:s}){if(e==="add"){if(this.audioReferenceMap.get(o)||!r||(this.audioReferenceMap.set(o,r),!this.audioProcessor))return;this.mixAudioReference(r,o)}else if(e==="remove")this.audioReferenceMap.get(o)&&(this.audioReferenceMap.delete(o),this.unMixAudioReference(o));else if(e==="updateVolume"){if(!this.audioProcessor||x(s))return;this.setAudioReferenceVolume(o,s)}}};function dE(i=30,t=2){return Me((e,r)=>function(...o){return new Promise((s,n)=>{let a=setTimeout(()=>{let u=new de({code:q.API_CALL_TIMEOUT,message:`checkPendingPromise ${r}() timeout ${i}s`});(this.log||this._log||$).warn(u),t===2?n(u):t===1&&s()},i*1e3);e.apply(this,o).then(s,n).finally(()=>{clearTimeout(a)})})})}var ti=class ti extends rs{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,"availableState");l(this,"remotePublishState");l(this,"_triggerCheckDecodeSubject",bt(be(this,ti.STATE_SUBSCRIBE)));this.tinyId=r.tinyId,this.availableState=new le(`${r.userId}-${this.mediaType}-available`,"remote-track-available"),this.remotePublishState=new le(`${r.userId}-${this.mediaType}-remote-publish`,"remote-track-publish"),Ae(Ya(be(this,le.STATECHANGED),be(this.remotePublishState,le.STATECHANGED)),uo(()=>this.isRemotePublished&&(this.isSubscribed||this.isSubscribing)),Le(u=>{this.availableState.state!==(u?le.ON:le.OFF)&&(this.availableState.state=u?le.ON:le.OFF),this.updatePlayingState(u)}));let s=Ae(be(this.player,qe.ERROR),zt(u=>u.code===MediaError.MEDIA_ERR_DECODE)),n=Ae(Ka(5e3),zt(()=>this.ignoreDecodeError||!this.isSubscribed||!this.isPlayCalled||!this.stat.bytesReceived?!1:this.player.isPlaying||(this.kind===M.AUDIO?this.getAudioLevel()>0:this.stat.framesDecoded>0)?(this.reportDecodeResult(!0),!1):!0)),a=Ae(fh(s,n),Xe(be(this,le.INIT)));Ae(this._triggerCheckDecodeSubject,zt(()=>!this.ignoreDecodeError),Oi(a),Le(u=>{this.reportDecodeResult(!1,u)}))}setMute(e){this.isRemotePublished&&super.setMute(e)}setInputMediaStreamTrack(e){super.setInputMediaStreamTrack(e),this.isRemotePublished&&this.isSubscribed&&this.player.setTrack(this.outMediaTrack)}checkDecodeResult(){this._triggerCheckDecodeSubject.next(!0)}waitHasMediaTrack(){return new Promise(e=>{this.mediaTrack?e():this.once("input-media-track-changed",e)})}get ignoreDecodeError(){var r,o;return(((o=(r=this.room)==null?void 0:r.networkQuality)==null?void 0:o.downlinkNetworkQuality)||0)>3||this.player.isInAutoPlayFailedState}get isSubscribing(){return this.state.toString()==="subscribeing"}get isSubscribed(){return this.state===ti.STATE_SUBSCRIBE}get isAvailable(){return this.availableState.state===le.ON}get isNeedPlay(){return this.isAvailable&&this.isPlayCalled}subscribe(e){return e}unsubscribe(){this.player.setTrack(null),this.streamType==="main"&&this.kind==="video"&&this.room.changeType(!1,this.user)}reportDecodeResult(e,r){var s,n;let o=this.kind===M.AUDIO;if(X[e?"addSuccessEvent":"addFailedEvent"]({key:o?504700:514702}),!o){let a=((s=this.room)==null?void 0:s.downlinkVideoCodec.toUpperCase())||"H264";X[e?"addSuccessEvent":"addFailedEvent"]({key:an[`DECODE_${a}_RESULT`]}),e||this.log.warn(`${(n=this.room)==null?void 0:n.downlinkVideoCodec} decode failed`)}e||(X.addEnum({key:o?504701:514703,value:qo()}),Je.uploadEvent({log:`stat-decode-failed-${this.kind}-${ba()||zo()}`,userId:this.room.userId}),this._log.warn(`decode failed: isPlaying: ${this.player.isPlaying} ${this.kind===M.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.isRemotePublished||!this.outMediaTrack)){this.log.info(`abort play, isSubscribed: ${this.isSubscribed} isAvailable: ${this.isRemotePublished} hasTrack: ${!!this.outMediaTrack} `);return}super.updatePlayingState(e)}}close(){super.close(),this.outMediaTrack&&this.uninstallTrackEvent(this.outMediaTrack)}onFlagChanged(){this.remotePublishState.state=this.isRemotePublished?le.ON:le.OFF,this.emit("remote-publish-changed",this.isRemotePublished)}onTrackMuted(){this.isNeedPlay&&super.onTrackMuted()}onTrackUnmuted(){this.isNeedPlay&&super.onTrackUnmuted()}onTrackEnded(){this.isNeedPlay&&super.onTrackEnded()}};l(ti,"STATE_SUBSCRIBE","subscribe"),K([dE(5,1)],ti.prototype,"waitHasMediaTrack",1),K([et(le.INIT,ti.STATE_SUBSCRIBE,{success(){this.log.info("subscribed"),V.emit(F.REMOTE_TRACK_SUBSCRIBED,{track:this})},ignoreError:!0}),ou(521716,!1)],ti.prototype,"subscribe",1),K([et(ti.STATE_SUBSCRIBE,le.INIT,{sync:!0,success(){this.log.info("unsubscribed"),V.emit(F.REMOTE_TRACK_UNSUBSCRIBED,{track:this})}})],ti.prototype,"unsubscribe",1);var In=ti;var xi=class extends In{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}get dbVolume(){return Kd.isRunning?this.player.pipeline.volumeMeter.getVolumeDb():Math.floor(Math.max(10*Math.log10(this.volume)+100,0))}onPlayerError(e){this.enableDecodeFrame&&(this._log.warn("use audio decoder"),this.room.enableInsertableStreams())}get enableDecodeFrame(){var e,r;return this.manager?this.manager.decodePipeline.some(o=>o)||((r=(e=this.player.element)==null?void 0:e.error)==null?void 0:r.code)===MediaError.MEDIA_ERR_DECODE&&Gd().AudioDecoder&&Ko:!1}decodeFrame(e){if(!this.manager)return e;let r=e;for(let[o,s]of this.manager.decodePipeline.entries()){if(!s)continue;let n={frame:e,track:this};if(o===1&&this.isAvailable&&this.room.role==="audience"&&(n.onAudioFrameNTPTime=({ntp:a,frame:u,hasLeavingTag:m})=>{this.emit("audio-frame-with-ntp",{ntp:a,frame:u,hasLeavingTag:m})}),r=s(n),!r)return}return r}getAudioLevel(){let e=this.volume||super.getAudioLevel();return e>1?1:e}get isRemotePublished(){return this.user.muteState.audioAvailable}};function fy(i){return[15,30,45,60].reduce((e,r)=>Math.abs(r-i)<Math.abs(e-i)?r:e)}var ho=class extends In{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,this.once("first-video-frame",s=>{this.room.emit("first-video-frame",s)})}play(e,r){return(Ze(r==null?void 0:r.canvasRender)?r.canvasRender:wt===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 Nt({frameRate:15,logger:this.log,name:this.userId});e.create({alpha:!1});let r=new ms(e,{name:"remotePlayer",logger:this.log});this.source=e.createVideoPlayerSource(this.player),this.source.connect(r),this.player.setCanvas(e._canvas),Ni()||(this.updateCanvasPlayerFPS=this.updateCanvasPlayerFPS.bind(this,e),this.room.on("heartbeat-report",this.updateCanvasPlayerFPS,this))}updateCanvasPlayerFPS(e){let r=this.decodeFPS,o=fy(r);if(!ke(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 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))||{},r=this.mediaType===2?7:this.isSmall?3:2;if(!e||e.length===0)return 0;let o=e.find(a=>a.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 isRemotePublished(){return this.user.muteState.videoAvailable}setMirror(e){e==="publish"||e==="both"||super.setMirror(e)}onDecodeDowngradeStateChanged(e){this.emit("decode-downgrade-state-changed",e)}},Ru=class extends ho{constructor(e,r){super(e,r,2);l(this,"mediaType",2);l(this,"objectFit","contain")}get isRemotePublished(){return this.user.muteState.hasAuxiliary}};var Sn=new Map;V.on(F.JOIN_SUCCESS,({room:i})=>{st(i.userId,{eventId:32788})});V.on(F.LEAVE_START,({room:i})=>{st(i.userId,{eventId:32789})});V.on(F.LOCAL_TRACK_PUBLISHED,({track:i})=>{if(i.room){let t=32769;i.mediaType===4?t=32768:i.mediaType===2&&(t=32805),st(i.room.userId,{eventId:t})}});V.on(F.LOCAL_TRACK_UNPUBLISHED,({track:i})=>{if(i.room){let t=32771;i.mediaType===4?t=32770:i.mediaType===2&&(t=32806),st(i.room.userId,{eventId:t})}});V.on(F.TRACK_MUTED,({track:i})=>{i.room&&(i.kind===M.AUDIO?st(i.room.userId,{eventId:i.isRemote?32785:32772,remoteUserId:i.isRemote?i.userId:void 0}):st(i.room.userId,{eventId:i.isRemote?32784:32773,remoteUserId:i.isRemote?i.userId:void 0}))});V.on(F.TRACK_UNMUTED,({track:i})=>{i.room&&(i.kind===M.AUDIO?st(i.room.userId,{eventId:i.isRemote?32787:32774,remoteUserId:i.isRemote?i.userId:void 0}):st(i.room.userId,{eventId:i.isRemote?32786:32775,remoteUserId:i.isRemote?i.userId:void 0}))});V.on(F.REMOTE_TRACK_SUBSCRIBED,({track:i})=>{i.room&&(i.mediaType===1&&st(i.room.userId,{eventId:32777,remoteUserId:i.userId}),i.mediaType===4&&st(i.room.userId,{eventId:32776,remoteUserId:i.userId}),i.mediaType===8&&st(i.room.userId,{eventId:32803,remoteUserId:i.userId}))});V.on(F.REMOTE_TRACK_UNSUBSCRIBED,({track:i})=>{i.room&&(i.mediaType===1&&st(i.room.userId,{eventId:32779,remoteUserId:i.userId}),i.mediaType===4&&st(i.room.userId,{eventId:32778,remoteUserId:i.userId}),i.mediaType===8&&st(i.room.userId,{eventId:32804,remoteUserId:i.userId}))});V.on(F.SWITCH_DEVICE_SUCCESS,({track:i})=>{i.room&&st(i.room.userId,{eventId:i.kind===M.VIDEO?32780:32781})});V.on(F.LOCAL_TRACK_REPLACED,({track:i})=>{i.room&&st(i.room.userId,{eventId:i.kind===M.VIDEO?32782:32783})});V.on(F.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&&st(i.userId,{eventId:r})});V.on(F.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&&st(i.userId,{eventId:s,remoteUserId:r})});V.on(F.VIDEO_CODEC_IMPLEMENTATION_CHANGED,({implementation:i,userId:t,remoteUserId:e,codec:r,isHWCodec:o,prevImplementation:s,streamType:n})=>{let a=o?1:0;s||(a=o?3:2);let u={H264:0,H265:1,VP8:2}[r.toUpperCase()],m={eventId:4004,param1:a,param2:u,streamType:n||2};e&&(m.remoteUserId=e,m.eventId=4005),st(t,m),X.addEnum({key:e?514701:513701,value:a}),X.addEnum({key:e?514700:513700,value:u})});V.on(F.LOCAL_TRACK_RECAPTURE,({track:i,error:t})=>{if(i.userId){let e={eventId:2003,param1:0};i.kind===M.AUDIO?(e.streamType=1,t&&(e.param1=2)):(e.streamType=i.streamType==="auxiliary"?7:2,t&&(e.param1=8)),st(i.userId,e)}});function st(i,t){let e=ge(J({},t),{timestamp:li()});Sn.has(i)?Sn.get(i).push(e):Sn.set(i,[e])}function uE(i){if(Sn.has(i)){let t=Sn.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 Sn.delete(i),t}return[]}function lE(...i){return Me((t,e)=>function(...r){return gy.call(this,i,r,e,this._name),t.apply(this,r)})}function gy(i,t,e,r){try{if(ot(i))for(let o=0;o<i.length;o++)vu.call(this,{rule:i[o],value:t[o],key:i[o].name,fnName:e,className:r});else vu.call(this,{rule:i,value:t[0],key:i.name,fnName:e,className:r})}catch(o){throw $.error(o),o}}function vu({rule:i,value:t,key:e,fnName:r,className:o}){if(x(t)){if(i.required)throw new de({code:q.INVALID_PARAMETER,message:Be({key:$e.INVALID_PARAMETER_REQUIRED,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(x(i.defaultValue))return;t=i.defaultValue}if(Array.isArray(i.type)){let a=!1;for(let u=0;u<i.type.length;u++)i.type[u]===null&&t===null&&(a=!0),Ge(i.type[u])&&t instanceof i.type[u]&&(a=!0),De(i.type[u])&&ct(t)===i.type[u].toLowerCase()&&(a=!0);if(!a)throw new de({code:q.INVALID_PARAMETER,message:Be({key:$e.INVALID_PARAMETER_TYPE,data:{key:e,rule:{type:i.type.map(u=>$o(u)?$s(u):De(u)?u:ct(u))},fnName:r,value:t},link:{className:o,fnName:r}})})}else if(!x(i.type)&&ct(t)!==i.type)throw new de({code:q.INVALID_PARAMETER,message:Be({key:$e.INVALID_PARAMETER_TYPE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(i.allowEmpty===!1){let a=ke(t)&&(t===0||Number.isNaN(t)),u=De(t)&&t.trim()==="";if(a||u)throw new de({code:q.INVALID_PARAMETER,message:Be({key:$e.INVALID_PARAMETER_EMPTY,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})})}if(i.notLessThanZero&&ke(t)&&t<0)throw new de({code:q.INVALID_PARAMETER,message:Be({key:$e.CANNOT_LESS_THAN_ZERO,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(!x(i.min)&&ke(t)&&t<i.min)throw new de({code:q.INVALID_PARAMETER,message:Be({key:$e.INVALID_PARAMETER_MIN,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(!x(i.max)&&ke(t)&&t>i.max)throw new de({code:q.INVALID_PARAMETER,message:Be({key:$e.INVALID_PARAMETER_MAX,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(De(i.instanceOf)){if(!t||t._name!==i.instanceOf)throw new de({code:q.INVALID_PARAMETER,message:Be({key:$e.INVALID_PARAMETER_INSTANCE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})})}else if(Ge(i.instanceOf)&&!(t instanceof i.instanceOf))throw new de({code:q.INVALID_PARAMETER,message:Be({key:$e.INVALID_PARAMETER_INSTANCE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(i.values&&!i.values.includes(t))throw new de({code:q.INVALID_PARAMETER,message:Be({key:$e.INVALID_PARAMETER_RANGE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});let{properties:s}=i;Ft(s)&&or(t)&&Object.keys(s).forEach(a=>{vu.call(this,{rule:s[a],value:t&&t[a],key:`${e}.${a}`,fnName:r,className:o})});let{arrayItem:n}=i;Ft(n)&&ot(t)&&t.forEach((a,u)=>{vu.call(this,{rule:n,value:a,key:`${e}[${u}]`,fnName:r,className:o})}),Ge(i.validate)&&i.validate.call(this,t,e,r,o,this)}var Ey=ui(Si(),1);var Ty=Object.create,Mu=Object.defineProperty,_y=Object.defineProperties,fE=Object.getOwnPropertyDescriptor,Iy=Object.getOwnPropertyDescriptors,gE=Object.getOwnPropertyNames,mE=Object.getOwnPropertySymbols,Sy=Object.getPrototypeOf,EE=Object.prototype.hasOwnProperty,yy=Object.prototype.propertyIsEnumerable,np=(i,t,e)=>t in i?Mu(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Nu=(i,t)=>{for(var e in t||(t={}))EE.call(t,e)&&np(i,e,t[e]);if(mE)for(var e of mE(t))yy.call(t,e)&&np(i,e,t[e]);return i},Du=(i,t)=>_y(i,Iy(t)),Ay=(i,t)=>function(){return t||(0,i[gE(i)[0]])((t={exports:{}}).exports,t),t.exports},by=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of gE(t))EE.call(i,o)||o===e||Mu(i,o,{get:()=>t[o],enumerable:!(r=fE(t,o))||r.enumerable});return i},Ry=(i,t,e)=>(e=i!=null?Ty(Sy(i)):{},by(!t&&i&&i.__esModule?e:Mu(e,"default",{value:i,enumerable:!0}),i)),Pi=(i,t,e,r)=>{for(var o,s=r>1?void 0:r?fE(t,e):t,n=i.length-1;n>=0;n--)(o=i[n])&&(s=(r?o(t,e,s):o(s))||s);return r&&s&&Mu(t,e,s),s},Vr=(i,t,e)=>np(i,typeof t!="symbol"?t+"":t,e),vy=Ay({"../node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.js"(i,t){"use strict";var e=Object.prototype.hasOwnProperty,r="~";function o(){}function s(m,p,g){this.fn=m,this.context=p,this.once=g||!1}function n(m,p,g,T,A){if(typeof g!="function")throw new TypeError("The listener must be a function");var C=new s(g,T||m,A),D=r?r+p:p;return m._events[D]?m._events[D].fn?m._events[D]=[m._events[D],C]:m._events[D].push(C):(m._events[D]=C,m._eventsCount++),m}function a(m,p){--m._eventsCount===0?m._events=new o:delete m._events[p]}function u(){this._events=new o,this._eventsCount=0}Object.create&&(o.prototype=Object.create(null),new o().__proto__||(r=!1)),u.prototype.eventNames=function(){var m,p,g=[];if(this._eventsCount===0)return g;for(p in m=this._events)e.call(m,p)&&g.push(r?p.slice(1):p);return Object.getOwnPropertySymbols?g.concat(Object.getOwnPropertySymbols(m)):g},u.prototype.listeners=function(m){var p=r?r+m:m,g=this._events[p];if(!g)return[];if(g.fn)return[g.fn];for(var T=0,A=g.length,C=new Array(A);T<A;T++)C[T]=g[T].fn;return C},u.prototype.listenerCount=function(m){var p=r?r+m:m,g=this._events[p];return g?g.fn?1:g.length:0},u.prototype.emit=function(m,p,g,T,A,C){var D=r?r+m:m;if(!this._events[D])return!1;var w,O,Y=this._events[D],ue=arguments.length;if(Y.fn){switch(Y.once&&this.removeListener(m,Y.fn,void 0,!0),ue){case 1:return Y.fn.call(Y.context),!0;case 2:return Y.fn.call(Y.context,p),!0;case 3:return Y.fn.call(Y.context,p,g),!0;case 4:return Y.fn.call(Y.context,p,g,T),!0;case 5:return Y.fn.call(Y.context,p,g,T,A),!0;case 6:return Y.fn.call(Y.context,p,g,T,A,C),!0}for(O=1,w=new Array(ue-1);O<ue;O++)w[O-1]=arguments[O];Y.fn.apply(Y.context,w)}else{var Se,Ke=Y.length;for(O=0;O<Ke;O++)switch(Y[O].once&&this.removeListener(m,Y[O].fn,void 0,!0),ue){case 1:Y[O].fn.call(Y[O].context);break;case 2:Y[O].fn.call(Y[O].context,p);break;case 3:Y[O].fn.call(Y[O].context,p,g);break;case 4:Y[O].fn.call(Y[O].context,p,g,T);break;default:if(!w)for(Se=1,w=new Array(ue-1);Se<ue;Se++)w[Se-1]=arguments[Se];Y[O].fn.apply(Y[O].context,w)}}return!0},u.prototype.on=function(m,p,g){return n(this,m,p,g,!1)},u.prototype.once=function(m,p,g){return n(this,m,p,g,!0)},u.prototype.removeListener=function(m,p,g,T){var A=r?r+m:m;if(!this._events[A])return this;if(!p)return a(this,A),this;var C=this._events[A];if(C.fn)C.fn!==p||T&&!C.once||g&&C.context!==g||a(this,A);else{for(var D=0,w=[],O=C.length;D<O;D++)(C[D].fn!==p||T&&!C[D].once||g&&C[D].context!==g)&&w.push(C[D]);w.length?this._events[A]=w.length===1?w[0]:w:a(this,A)}return this},u.prototype.removeAllListeners=function(m){var p;return m?(p=r?r+m:m,this._events[p]&&a(this,p)):(this._events=new o,this._eventsCount=0),this},u.prototype.off=u.prototype.removeListener,u.prototype.addListener=u.prototype.on,u.prefixed=r,u.EventEmitter=u,t!==void 0&&(t.exports=u)}}),Cy=Ry(vy(),1),hE=Symbol("instance"),aP=Symbol("abortCtrl"),Cu=Symbol("cacheResult"),op=class{constructor(i,t,e){this.oldState=i,this.newState=t,this.action=e,this.aborted=!1}abort(i){this.aborted=!0,cc.call(i,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},wu=class extends Error{constructor(i,t,e){super(t),this.state=i,this.message=t,this.cause=e}};function Ny(i){return typeof i=="object"&&i&&"then"in i}var ac=new Map;function po(i,t,e={}){return(r,o,s)=>{let n=e.action||o;if(!e.context){let u=ac.get(r)||[];ac.has(r)||ac.set(r,u),u.push({from:i,to:t,action:n})}let a=s.value;s.value=function(...u){let m=this;if(e.context&&(m=Jt.get(typeof e.context=="function"?e.context.call(this,...u):e.context)),m.state===t)return e.sync?m[Cu]:Promise.resolve(m[Cu]);m.state instanceof op&&m.state.action==e.abortAction&&m.state.abort(m);let p=null;Array.isArray(i)?i.length==0?m.state instanceof op&&m.state.abort(m):typeof m.state=="string"&&i.includes(m.state)||(p=new wu(m._state,`${m.name} ${n} to ${t} failed: current state ${m._state} not from ${i.join("|")}`)):i!==m.state&&(p=new wu(m._state,`${m.name} ${n} to ${t} failed: current state ${m._state} not from ${i}`));let g=w=>{if(e.fail&&e.fail.call(this,w),e.sync){if(e.ignoreError)return w;throw w}return e.ignoreError?Promise.resolve(w):Promise.reject(w)};if(p)return g(p);let T=m.state,A=new op(T,t,n);cc.call(m,A);let C=w=>{var O;return m[Cu]=w,A.aborted||(cc.call(m,t),(O=e.success)===null||O===void 0||O.call(this,m[Cu])),w},D=w=>(cc.call(m,T,w),g(w));try{let w=a.apply(this,u);return Ny(w)?w.then(C).catch(D):e.sync?C(w):Promise.resolve(C(w))}catch(w){return D(new wu(m._state,`${m.name} ${n} from ${i} to ${t} failed: ${w}`,w instanceof Error?w:new Error(String(w))))}}}}function Dy(...i){return(t,e,r)=>{let o=r.value,s=e;r.value=function(...n){if(!i.includes(this.state.toString()))throw new wu(this.state,`${this.name} ${s} failed: current state ${this.state} not in ${i}`);return o.apply(this,n)}}}var wy=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 cc(i,t){let e=this._state;this._state=i;let r=i.toString();i&&this.emit(r,e),this.emit(Jt.STATECHANGED,i,e,t),this.updateDevTools({value:i,old:e,err:t instanceof Error?t.message:String(t)})}var Jt=class Er extends Cy.default{constructor(t,e,r){super(),this.name=t,this.groupName=e,this._state=Er.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[hE];o?this.name=o.name+"-"+o.count++:r[hE]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let t=Object.getPrototypeOf(this),e=ac.get(t)||[],r=new Set,o=[],s=[],n=new Set,a=Object.getPrototypeOf(t);ac.has(a)&&(a.stateDiagram.forEach(m=>r.add(m)),a.allStates.forEach(m=>n.add(m))),e.forEach(({from:m,to:p,action:g})=>{typeof m=="string"?o.push({from:m,to:p,action:g}):m.length?m.forEach(T=>{o.push({from:T,to:p,action:g})}):s.push({to:p,action:g})}),o.forEach(({from:m,to:p,action:g})=>{n.add(m),n.add(p),n.add(g+"ing"),r.add(`${m} --> ${g}ing : ${g}`),r.add(`${g}ing --> ${p} : ${g} \u{1F7E2}`),r.add(`${g}ing --> ${m} : ${g} \u{1F534}`)}),s.forEach(({to:m,action:p})=>{r.add(`${p}ing --> ${m} : ${p} \u{1F7E2}`),n.forEach(g=>{g!==m&&r.add(`${g} --> ${p}ing : ${p}`)})});let u=[...r];return Object.defineProperties(t,{stateDiagram:{value:u},allStates:{value:n}}),u}static get(t){let e;return typeof t=="string"?(e=Er.instances.get(t),e||Er.instances.set(t,e=new Er(t,void 0,Object.create(Er.prototype)))):(e=Er.instances2.get(t),e||Er.instances2.set(t,e=new Er(t.constructor.name,void 0,Object.create(Er.prototype)))),e}static getState(t){var e;return(e=Er.get(t))===null||e===void 0?void 0:e.state}updateDevTools(t={}){wy(Er.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(t){cc.call(this,t)}};Jt.STATECHANGED="stateChanged",Jt.UPDATEAFSM="updateAFSM",Jt.INIT="[*]",Jt.ON="on",Jt.OFF="off",Jt.instances=new Map,Jt.instances2=new WeakMap;var yn=class extends Jt{constructor(){super(...arguments),Vr(this,"decoder"),Vr(this,"config")}initialize(){return y(this,null,function*(){this.decoder=new VideoDecoder({output:i=>{this.emit("videoFrame",i)},error:i=>{this.close(),this.emit("error",i)}})})}configure(i){this.config=i,i.description||i.codec==="av1"||(this.config[i.codec]={format:"annexb"}),this.decoder.configure(Du(Nu({},i),{codec:this.getCodec(i)}))}getCodec(i){switch(i.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 i.codec}}decode(i){this.decoder.state==="configured"&&this.decoder.decode(new EncodedVideoChunk(i))}flush(){this.decoder.flush()}reset(){this.decoder.reset()}close(){this.decoder.state!=="closed"&&this.decoder.close()}};function My(){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"),n=0,a=0,u={wasmBinary:o,postRun:()=>{i=new u.VideoDecoder({videoInfo(m,p){n=m,a=p,console.log("video info",m,p)},yuvData(m,p){let g=n*a,T=g>>2,A=u.HEAPU32[m>>2],C=u.HEAPU32[1+(m>>2)],D=u.HEAPU32[2+(m>>2)],w=u.HEAPU8.subarray(A,A+g),O=u.HEAPU8.subarray(C,C+T),Y=u.HEAPU8.subarray(D,D+T),ue=new Uint8Array(g+T+T);ue.set(w),ue.set(O,g),ue.set(Y,g+T);let Se=new VideoFrame(ue,{codedWidth:n,codedHeight:a,format:"I420",timestamp:p});e?(s==null||s.drawImage(Se,0,0,e.width,e.height),s==null||s.commit()):self.postMessage({type:"yuvData",videoFrame:Se},[Se])}}),self.postMessage({type:"ready"})}};Function("var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;return "+r)()(u)}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:"")}}}Pi([po([Jt.INIT,"closed"],"initialized")],yn.prototype,"initialize",1),Pi([po("initialized","configured",{sync:!0})],yn.prototype,"configure",1),Pi([Dy("configured")],yn.prototype,"decode",1),Pi([po([],Jt.INIT,{sync:!0})],yn.prototype,"reset",1),Pi([po([],"closed",{ignoreError:!0,sync:!0})],yn.prototype,"close",1);var nc=class extends Jt{constructor(i,t,e=!1,r,o=!1){super(),this.createModule=i,this.wasmBinary=t,this.workerMode=e,this.canvas=r,this.yuvMode=o,Vr(this,"worker"),Vr(this,"decoder"),Vr(this,"config"),Vr(this,"module",{}),Vr(this,"width",0),Vr(this,"height",0)}initialize(i){return y(this,null,function*(){var t;if(this.workerMode){let r=new RegExp("\\{(.+)\\}","s").exec(My.toString())[1];this.worker=new Worker(URL.createObjectURL(new Blob([r],{type:"text/javascript"})));let o=(t=this.canvas)==null?void 0:t.transferControlToOffscreen(),s=yield this.wasmBinary;return console.warn("worker mode",s),this.worker.postMessage({type:"init",canvas:o,wasmScript:this.createModule.toString(),wasmBinary:s},o?[o,s]:[s]),new Promise(n=>{this.worker.onmessage=a=>{if(a.data.type==="ready")delete this.wasmBinary,n(),console.warn("worker mode initialize success");else if(a.data.type==="yuvData"){let{videoFrame:u}=a.data;this.emit("videoFrame",u)}}})}let e=this.module;return this.wasmBinary&&(e.wasmBinary=yield this.wasmBinary),e.print=r=>console.log(r),e.printErr=r=>console.log(`[JS] ERROR: ${r}`),e.onAbort=()=>console.log("[JS] FATAL: WASM ABORTED"),new Promise(r=>{e.postRun=o=>{this.decoder=new this.module.VideoDecoder(this),console.log("video soft decoder initialize success"),r()},i&&Object.assign(e,i),this.createModule(e)})})}configure(i){var t,e,r;this.config=i;let o=this.config.codec.startsWith("avc")?"avc":"hevc",s=this.config.description?o=="avc"?"avcc":"hvcc":"annexb";(e=this.decoder)==null||e.setCodec(o,s,(t=this.config.description)!=null?t:""),(r=this.worker)==null||r.postMessage({type:"setCodec",codec:o,format:s,description:this.config.description})}decode(i){var t,e;(t=this.decoder)==null||t.decode(i.data,i.type=="key",i.timestamp),this.state==="configured"&&((e=this.worker)==null||e.postMessage({type:"decode",packet:i}))}flush(){}reset(){this.config=void 0,this.decoder&&this.decoder.clear()}close(){this.removeAllListeners(),this.decoder&&(this.decoder.clear(),this.decoder.delete())}videoInfo(i,t){this.width=i,this.height=t;let e={width:i,height:t};this.emit("videoCodecInfo",e)}yuvData(i,t){if(!this.module)return;let e=this.width*this.height,r=e>>2,o=this.module.HEAPU32[i>>2],s=this.module.HEAPU32[1+(i>>2)],n=this.module.HEAPU32[2+(i>>2)],a=this.module.HEAPU8.subarray(o,o+e),u=this.module.HEAPU8.subarray(s,s+r),m=this.module.HEAPU8.subarray(n,n+r);if(this.yuvMode)return void this.emit("videoFrame",{y:a,u,v:m,timestamp:t});let p=new Uint8Array(e+r+r);p.set(a),p.set(u,e),p.set(m,e+r),this.emit("videoFrame",new VideoFrame(p,{codedWidth:this.width,codedHeight:this.height,format:"I420",timestamp:t}))}errorInfo(i){let t={errMsg:i};this.emit("error",t)}};Pi([po([Jt.INIT,"closed"],"initialized")],nc.prototype,"initialize",1),Pi([po("initialized","configured",{sync:!0})],nc.prototype,"configure",1),Pi([po([],Jt.INIT,{sync:!0})],nc.prototype,"reset",1),Pi([po([],"closed",{sync:!0})],nc.prototype,"close",1);var Oy=(()=>{var i=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return function(t={}){var e,r,o=t;o.ready=new Promise((c,d)=>{e=c,r=d});var s,n,a,u=Object.assign({},o),m="./this.program",p=typeof window=="object",g=typeof importScripts=="function",T=(typeof process=="object"&&typeof process.versions=="object"&&process.versions.node,"");(p||g)&&(g?T=self.location.href:typeof document!="undefined"&&document.currentScript&&(T=document.currentScript.src),i&&(T=i),T=T.indexOf("blob:")!==0?T.substr(0,T.replace(/[?#].*/,"").lastIndexOf("/")+1):"",s=c=>{var d=new XMLHttpRequest;return d.open("GET",c,!1),d.send(null),d.responseText},g&&(a=c=>{var d=new XMLHttpRequest;return d.open("GET",c,!1),d.responseType="arraybuffer",d.send(null),new Uint8Array(d.response)}),n=(c,d,h)=>{var f=new XMLHttpRequest;f.open("GET",c,!0),f.responseType="arraybuffer",f.onload=()=>{f.status==200||f.status==0&&f.response?d(f.response):h()},f.onerror=h,f.send(null)});var A,C=o.print||console.log.bind(console),D=o.printErr||console.error.bind(console);Object.assign(o,u),u=null,o.arguments&&o.arguments,o.thisProgram&&(m=o.thisProgram),o.quit&&o.quit,o.wasmBinary&&(A=o.wasmBinary);var w,O;o.noExitRuntime,typeof WebAssembly!="object"&&$r("no native wasm support detected");var Y,ue,Se,Ke,W,Pe,Dn,wn,Mn,On=!1,Sc=[],yc=[],Fr=[];function xn(c){Sc.unshift(c)}function yo(c){Fr.unshift(c)}var dr=0,te=null,si=null;function ys(c){dr++,o.monitorRunDependencies&&o.monitorRunDependencies(dr)}function Ao(c){if(dr--,o.monitorRunDependencies&&o.monitorRunDependencies(dr),dr==0&&(te!==null&&(clearInterval(te),te=null),si)){var d=si;si=null,d()}}function $r(c){o.onAbort&&o.onAbort(c),D(c="Aborted("+c+")"),On=!0,c+=". Build with -sASSERTIONS for more info.";var d=new WebAssembly.RuntimeError(c);throw r(d),d}var ni,Pn,Te,H;function xt(c){return c.startsWith("data:application/octet-stream;base64,")}function ai(c){if(c==ni&&A)return new Uint8Array(A);if(a)return a(c);throw"both async and sync fetching of the wasm failed"}function Br(c,d,h){return(function(f){return A||!p&&!g||typeof fetch!="function"?Promise.resolve().then(()=>ai(f)):fetch(f,{credentials:"same-origin"}).then(S=>{if(!S.ok)throw"failed to load wasm binary file at '"+f+"'";return S.arrayBuffer()}).catch(()=>ai(f))})(c).then(f=>WebAssembly.instantiate(f,d)).then(f=>f).then(h,f=>{D("failed to asynchronously prepare wasm: "+f),$r(f)})}xt(ni="videodec.wasm")||(Pn=ni,ni=o.locateFile?o.locateFile(Pn,T):T+Pn);var Fi=c=>{for(;c.length>0;)c.shift()(o)};function $i(c){this.excPtr=c,this.ptr=c-24,this.set_type=function(d){Pe[this.ptr+4>>2]=d},this.get_type=function(){return Pe[this.ptr+4>>2]},this.set_destructor=function(d){Pe[this.ptr+8>>2]=d},this.get_destructor=function(){return Pe[this.ptr+8>>2]},this.set_caught=function(d){d=d?1:0,Y[this.ptr+12|0]=d},this.get_caught=function(){return Y[this.ptr+12|0]!=0},this.set_rethrown=function(d){d=d?1:0,Y[this.ptr+13|0]=d},this.get_rethrown=function(){return Y[this.ptr+13|0]!=0},this.init=function(d,h){this.set_adjusted_ptr(0),this.set_type(d),this.set_destructor(h)},this.set_adjusted_ptr=function(d){Pe[this.ptr+16>>2]=d},this.get_adjusted_ptr=function(){return Pe[this.ptr+16>>2]},this.get_exception_ptr=function(){if(yr(this.get_type()))return Pe[this.excPtr>>2];var d=this.get_adjusted_ptr();return d!==0?d:this.excPtr}}var me={isAbs:c=>c.charAt(0)==="/",splitPath:c=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(c).slice(1),normalizeArray:(c,d)=>{for(var h=0,f=c.length-1;f>=0;f--){var S=c[f];S==="."?c.splice(f,1):S===".."?(c.splice(f,1),h++):h&&(c.splice(f,1),h--)}if(d)for(;h;h--)c.unshift("..");return c},normalize:c=>{var d=me.isAbs(c),h=c.substr(-1)==="/";return(c=me.normalizeArray(c.split("/").filter(f=>!!f),!d).join("/"))||d||(c="."),c&&h&&(c+="/"),(d?"/":"")+c},dirname:c=>{var d=me.splitPath(c),h=d[0],f=d[1];return h||f?(f&&(f=f.substr(0,f.length-1)),h+f):"."},basename:c=>{if(c==="/")return"/";var d=(c=(c=me.normalize(c)).replace(/\/$/,"")).lastIndexOf("/");return d===-1?c:c.substr(d+1)},join:function(){var c=Array.prototype.slice.call(arguments);return me.normalize(c.join("/"))},join2:(c,d)=>me.normalize(c+"/"+d)},kn=c=>(kn=(()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return d=>crypto.getRandomValues(d);$r("initRandomDevice")})())(c),Xt={resolve:function(){for(var c="",d=!1,h=arguments.length-1;h>=-1&&!d;h--){var f=h>=0?arguments[h]:E.cwd();if(typeof f!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!f)return"";c=f+"/"+c,d=me.isAbs(f)}return(d?"/":"")+(c=me.normalizeArray(c.split("/").filter(S=>!!S),!d).join("/"))||"."},relative:(c,d)=>{function h(L){for(var Z=0;Z<L.length&&L[Z]==="";Z++);for(var ae=L.length-1;ae>=0&&L[ae]==="";ae--);return Z>ae?[]:L.slice(Z,ae-Z+1)}c=Xt.resolve(c).substr(1),d=Xt.resolve(d).substr(1);for(var f=h(c.split("/")),S=h(d.split("/")),b=Math.min(f.length,S.length),R=b,v=0;v<b;v++)if(f[v]!==S[v]){R=v;break}var U=[];for(v=R;v<f.length;v++)U.push("..");return(U=U.concat(S.slice(R))).join("/")}},Bi=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,Pt=(c,d,h)=>{for(var f=d+h,S=d;c[S]&&!(S>=f);)++S;if(S-d>16&&c.buffer&&Bi)return Bi.decode(c.subarray(d,S));for(var b="";d<S;){var R=c[d++];if(128&R){var v=63&c[d++];if((224&R)!=192){var U=63&c[d++];if((R=(240&R)==224?(15&R)<<12|v<<6|U:(7&R)<<18|v<<12|U<<6|63&c[d++])<65536)b+=String.fromCharCode(R);else{var L=R-65536;b+=String.fromCharCode(55296|L>>10,56320|1023&L)}}else b+=String.fromCharCode((31&R)<<6|v)}else b+=String.fromCharCode(R)}return b},Ln=[],bo=c=>{for(var d=0,h=0;h<c.length;++h){var f=c.charCodeAt(h);f<=127?d++:f<=2047?d+=2:f>=55296&&f<=57343?(d+=4,++h):d+=3}return d},Ro=(c,d,h,f)=>{if(!(f>0))return 0;for(var S=h,b=h+f-1,R=0;R<c.length;++R){var v=c.charCodeAt(R);if(v>=55296&&v<=57343&&(v=65536+((1023&v)<<10)|1023&c.charCodeAt(++R)),v<=127){if(h>=b)break;d[h++]=v}else if(v<=2047){if(h+1>=b)break;d[h++]=192|v>>6,d[h++]=128|63&v}else if(v<=65535){if(h+2>=b)break;d[h++]=224|v>>12,d[h++]=128|v>>6&63,d[h++]=128|63&v}else{if(h+3>=b)break;d[h++]=240|v>>18,d[h++]=128|v>>12&63,d[h++]=128|v>>6&63,d[h++]=128|63&v}}return d[h]=0,h-S};function As(c,d,h){var f=h>0?h:bo(c)+1,S=new Array(f),b=Ro(c,S,0,S.length);return d&&(S.length=b),S}var se={ttys:[],init:function(){},shutdown:function(){},register:function(c,d){se.ttys[c]={input:[],output:[],ops:d},E.registerDevice(c,se.stream_ops)},stream_ops:{open:function(c){var d=se.ttys[c.node.rdev];if(!d)throw new E.ErrnoError(43);c.tty=d,c.seekable=!1},close:function(c){c.tty.ops.fsync(c.tty)},fsync:function(c){c.tty.ops.fsync(c.tty)},read:function(c,d,h,f,S){if(!c.tty||!c.tty.ops.get_char)throw new E.ErrnoError(60);for(var b=0,R=0;R<f;R++){var v;try{v=c.tty.ops.get_char(c.tty)}catch(U){throw new E.ErrnoError(29)}if(v===void 0&&b===0)throw new E.ErrnoError(6);if(v==null)break;b++,d[h+R]=v}return b&&(c.node.timestamp=Date.now()),b},write:function(c,d,h,f,S){if(!c.tty||!c.tty.ops.put_char)throw new E.ErrnoError(60);try{for(var b=0;b<f;b++)c.tty.ops.put_char(c.tty,d[h+b])}catch(R){throw new E.ErrnoError(29)}return f&&(c.node.timestamp=Date.now()),b}},default_tty_ops:{get_char:function(c){return(()=>{if(!Ln.length){var d=null;if(typeof window!="undefined"&&typeof window.prompt=="function"?(d=window.prompt("Input: "))!==null&&(d+=`
|
|
50
|
+
} `;var fs=class extends le{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 gr(this,e,{logger:this.log,name:r})}createVideoTrackDestination(e){return new In(this,e)}createVideoImageSource(e,r){return new Ka(this,r?Object.assign(r,{logger:this.log,image:e}):{logger:this.log,image:e})}createVideoPlayerSource(e,r){return new ec(this,e,r?Object.assign(r,{logger:this.log}):{logger:this.log})}createTextSource(e,r){return new Tu(this,e,r?Object.assign(r,{logger:this.log}):{logger:this.log})}get available(){return this.state==="created"}disconnect(){this.emit("disconnect")}};l(fs,"_ids",0);var QS={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},Sn=class Sn extends fs{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}_${fs._ids++}`),this.ctx=this._canvas.getContext("webgl2",QS),!this.ctx)throw new de({code:q.VIDEO_MANAGER_ERROR,extraCode:2,message:"webgl2 not supported"});this.defaultVShader=this.createShader(this.ctx.VERTEX_SHADER,JS),this.defaultFShader=this.createShader(this.ctx.FRAGMENT_SHADER,XS),this.defaultProgam=this.createProgram(this.defaultVShader,this.defaultFShader),this._canvas.addEventListener("webglcontextlost",()=>{this.destroy(new de({code:q.VIDEO_MANAGER_ERROR,extraCode:4,message:"webgl context lost"}))})}destroy(e){let r="";return e&&(r=e.message,this.error=e,Q.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(Sn,"UNAVAILABLE","unavailable"),ee([Ze(le.INIT,"created",{sync:!0,fail(e){this.log.error("video gl context create failed",e.cause),Q.addFailedEvent({key:512700,error:e.cause||e})},success(){this.log.info("video context created use webgl"),Q.addSuccessEvent({key:512700})}})],Sn.prototype,"create",1),ee([Ze("created",le.INIT,{ignoreError:!0,sync:!0,success(e){e&&this.emit(Sn.UNAVAILABLE,e),this.removeAllListeners()}})],Sn.prototype,"destroy",1);var St=Sn,Dt=class extends fs{constructor(){super(...arguments);l(this,"ctx")}create(e){if(this.hasAlpha=e.alpha,this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${fs._ids++}`,this.ctx=this._canvas.getContext("2d",{alpha:e.alpha}),!this.ctx)throw new de({code:q.VIDEO_MANAGER_ERROR,extraCode:2,message:"2d context not supported"});this._canvas.addEventListener("contextlost",()=>{this.log.error("2d context lost")}),this._canvas.addEventListener("contextrestored",()=>{this.log.warn("2d context restored")})}destroy(e){let r="";e&&(r=e.message,this.error=e,Q.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(),Q.addSuccessEvent({key:512703})}};ee([Ze(le.INIT,"created",{sync:!0,fail(e){this.log.error("video 2d context create failed",e.cause),Q.addFailedEvent({key:512701,error:e.cause||e})},success(){this.log.info("video context created use 2d"),Q.addSuccessEvent({key:512701})}})],Dt.prototype,"create",1),ee([Ze("created",le.INIT,{ignoreError:!0,sync:!0})],Dt.prototype,"destroy",1);function YS(i,t,e,r,o,s=!1){s&&([e,r]=[r,e]);let n={sWidth:i,sHeight:t,dWidth:e,dHeight:r,sx:0,sy:0,dx:0,dy:0};if(i===0||t===0)return n;switch(o){case void 0:case"fill":break;case"contain":{let a=Math.min(e/i,r/t);n.dWidth=i*a,n.dHeight=t*a,n.dx=(e-n.dWidth)/2,n.dy=(r-n.dHeight)/2;break}case"cover":{let a=Math.max(e/i,r/t),u=e/a,m=r/a;n.sx=(i-u)/2,n.sy=(t-m)/2,n.sWidth=u,n.sHeight=m;break}}return n}var Qh=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}get fillMode(){return this.layout.fillMode}get rotation(){return this.layout.rotation}get hidden(){return!!this.layout.hidden}},yn=class extends vt{constructor(e,r){super(e,{useDefaultProgram:!0,useFbo:!0,name:"mix",create2d:!0,logger:r});l(this,"inputs",[]);l(this,"backgroundColor","black")}addInput(e,r){let o=0,s=this.inputs.length;for(;o<s;){let a=Math.floor((o+s)/2);if(this.inputs[a].layout.zIndex<r.zIndex)o=a+1;else if(this.inputs[a].layout.zIndex>r.zIndex)s=a;else throw new Error(`input already exists at zIndex ${r.zIndex}`)}let n=new Qh(e,r);this.inputs.splice(o,0,n)}changeInputLayout(e,r){let o=this.inputs.findIndex(C=>C.node===e);if(o<0)return;let{x:s,y:n,width:a,height:u,zIndex:m,fillMode:p,rotation:g,hidden:_}=r;if(!x(m)&&this.inputs.some(C=>C.layout.zIndex===m&&C.node!==e))throw new Error(`input already exists at zIndex ${r.zIndex}`);let A=this.inputs[o];x(s)||(A.layout.x=s),x(n)||(A.layout.y=n),x(a)||(A.layout.width=a),x(u)||(A.layout.height=u),x(g)||(A.layout.rotation=g),x(_)||(A.layout.hidden=_),p&&(A.layout.fillMode=p),!x(m)&&m!==A.layout.zIndex&&(A.layout.zIndex=m,this.inputs.sort((C,N)=>C.layout.zIndex-N.layout.zIndex))}hasInput(e){return this.inputs.some(r=>r.node===e)}hasNoInput(){return this.inputs.length===0}resize(e,r){if(!this.matchInputSize){super.resize(e,r);return}let o=this.inputs.reduce((s,n)=>n?Object.assign(s,{width:Math.max(s.width,n.right),height:Math.max(s.height,n.bottom)}):s,{width:0,height:0});super.resize(o.width,o.height),this.context instanceof St&&this.inputs.forEach(s=>{if(s){let n=this.layout2texCoords(s);s.positionBuffer?this.changeBufferData(s.positionBuffer,n):s.positionBuffer=this.createBuffer(n)}})}connect(e,...r){return super.connect(e,...r),this.drawBackGround2d(this.backgroundColor),this.matchInputSize&&this.resize(0,0),e}removeInput(e){this.inputs=this.inputs.filter(r=>r.node!==e),this.inputs.length===0&&this.drawBackGround2d(this.backgroundColor)}render(e){let r=this.context.ctx;if(r.clearColor(0,0,0,0),this.inputs.reduce((s,n)=>n.node.requestFrame(e)||s,!1)&&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 n=this.inputs[s];n&&(n.node.useTexture(),this.draw(n.positionBuffer))}return!0}return!1}render2d(e){if(this.inputs.forEach(r=>r.node.requestFrame(e)),this.ctx2d){this.drawBackGround2d(this.backgroundColor);for(let r=0;r<this.inputs.length;r++){let o=this.inputs[r];if(o.hidden)continue;let s=YS(o.node.width,o.node.height,o.width,o.height,o.fillMode,or(o.rotation));this.draw2d(o.node.image,o.x+s.dx,o.y+s.dy,s.dWidth,s.dHeight,s.sx,s.sy,s.sWidth,s.sHeight)}return!0}return!1}debugLayout(e,r,o,s,n=!1){this.ctx2d&&(n&&([o,s]=[s,o]),this.ctx2d.save(),this.ctx2d.strokeStyle="red",this.ctx2d.lineWidth=2,this.ctx2d.strokeRect(e,r,o,s),this.ctx2d.restore())}getInfo(){let{totalFrames:e,x:r,y:o,width:s,height:n,name:a}=this,u=Date.now(),m=(e-this.lastInfo.totalFrames)/((u-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:r,y:o,width:s,height:n,timestamp:u,fps:m,name:a},X({parent:this.inputs.filter(p=>p).map(p=>p.node.getInfo())},this.lastInfo)}removeAllInputs(){this.inputs.forEach(e=>{var r;if(e.node.disconnect(),e.positionBuffer&&this.context instanceof St)try{(r=this.context.ctx)==null||r.deleteBuffer(e.positionBuffer)}catch(o){}})}close(){super.close(),this.removeAllInputs()}};var ZS=[1,0,0,0,1,1,0,1],Er=class extends vt{constructor(e,r,o,s){super(e,{useDefaultProgram:!0,useFbo:!0,create2d:!0,name:"transform",logger:r});l(this,"mirror",!1);l(this,"rotation",0);if(o&&(this.mirror=o),s&&(this.rotation=s),e instanceof St)try{this.setTexBuffer(ZS)}catch(n){e.destroy(new de({code:q.VIDEO_MANAGER_ERROR,extraCode:3,message:`create video node ${this.name} error ${n.message||n}`}))}}draw2d(e,r,o,s,n){if(this.ctx2d){this.ctx2d.clearRect(0,0,this.width,this.height),this.ctx2d.save(),this.mirror&&(this.ctx2d.scale(-1,1),this.ctx2d.translate(-this.width,0)),this.rotation===90?(this.ctx2d.translate(s,0),this.ctx2d.rotate(Math.PI/2),this.ctx2d.scale(n/s,s/n)):this.rotation===180?(this.ctx2d.translate(this.width,this.height),this.ctx2d.rotate(Math.PI)):this.rotation===270&&(this.ctx2d.translate(0,n),this.ctx2d.rotate(3*Math.PI/2),this.ctx2d.scale(n/s,s/n));let a=super.draw2d(e,r,o,s,n);return this.ctx2d.restore(),a}return!1}render(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0):!1}resize(e,r){or(this.rotation)&&([e,r]=[r,e]),super.resize(e,r)}};var gs=class extends Vr{constructor(e,r=4){super(r,zt);l(this,"inputLocalVideoTracks",new Map);l(this,"inputLocalScreenTracks",new Map);l(this,"cameraNodeMap",new Map);l(this,"screenNodeMap",new Map);l(this,"textNodeMap",new Map);l(this,"imageNodeMap",new Map);l(this,"videoNodeMap",new Map);l(this,"endedIds",new Set);l(this,"videoContext");l(this,"mixNode");l(this,"destination");l(this,"manager");l(this,"stat");l(this,"_checkId",0);l(this,"autoSetFps",!0);this.manager=e,this.log.id+="mix",this.create2dVideoContext(),this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log}),this.destination.on(vt.RENDER,o=>{this.emit("render",o)}),this.mixNode=new yn(this.videoContext,this.log),this.mixNode.matchInputSize=!1}listenDeviceChange(){throw new Error("Method not implemented.")}enablePrintDetail(e=2e3){this._checkId=dt.run("interval",()=>{this.destination&&this.log.debug(this.destination.getInfo())},{delay:e})}create2dVideoContext(){this.videoContext?this.videoContext.destroy():this.videoContext=new Dt({frameRate:15,logger:this.log,name:"mix-ctx"}),this.videoContext.create({alpha:!1})}setFps(e){this.autoSetFps=!1,this.videoContext.frameRate=e;for(let r of[...this.cameraNodeMap.values(),...this.screenNodeMap.values()])r.shouldUpdate=!1;setTimeout(()=>{var r;return(r=this.destination)==null?void 0:r.start(this.videoContext.frameRate)},500)}setFpsAuto(){var s;if(!this.autoSetFps)return;for(let n of[...this.cameraNodeMap.values(),...this.screenNodeMap.values()])n.shouldUpdate=!1;let e=null,r=0,o=!0;for(let[n,a]of this.inputLocalVideoTracks)if(a.profile.frameRate>r){if(this.endedIds.has(n)){let u=this.cameraNodeMap.get(n);u&&u.image.cancelVideoFrameCallback(u.videoCallbackId);continue}r=a.profile.frameRate,e=n}for(let[n,a]of this.inputLocalScreenTracks)if(a.profile.frameRate>r){if(this.endedIds.has(n)){let u=this.screenNodeMap.get(n);u&&u.image.cancelVideoFrameCallback(u.videoCallbackId);continue}r=a.profile.frameRate,e=n,o=!1}if(e!==null){let n=o?this.cameraNodeMap.get(e):this.screenNodeMap.get(e);n&&(n.shouldUpdate=!0,n.tryVideoFrameCallback()),this.log.info("set mix fps: ",r)}else(s=this.destination)==null||s.start(this.videoContext.frameRate),this.log.info("fallback to timer, fps: ",this.videoContext.frameRate)}setMixBackground(e){this.mixNode&&(this.mixNode.backgroundColor=e)}resizeMixCanvas(e,r){var o;(o=this.mixNode)==null||o.resize(e,r)}startMix(){return y(this,null,function*(){var e;if(!this.mixNode||!this.destination)throw new Error("can't mix without necessary conditions");this.mixNode.disconnect(),this.mixNode.connect(this.destination),hr&&this.player.setCanvas(this.videoContext._canvas),this.setOutputMediaStreamTrack(this.destination.videoTrack),(e=this.manager)==null||e.changeInput(this)})}addCameraSource(e,r,o){if(this.inputLocalVideoTracks.has(e)||this.cameraNodeMap.has(e))throw new Error(`There is already a cameraSource with the same ID: ${e}`);let{mediaTrack:s}=r;if(!s)throw new Error("no mediaTrack, add cameraSource failed");r.recaptureMode=1,bt(this,rt).add("videoInputRemoved",a=>{a.deviceId===r.deviceId&&(this.endedIds.add(e),this.setFpsAuto())}),r.on("output-media-track-changed",()=>{this.endedIds.delete(e),this.updateCameraSource(e,o,r.mediaTrack)});let n;Ot===16&&s instanceof CanvasCaptureMediaStreamTrack?n=this.videoContext.createVideoImageSource(s.canvas,{name:"cameraCanvasSource",logger:this.log}):n=this.videoContext.createVideoTrackSource(s,"cameraNodeSource"),n.resize(r.settings.width,r.settings.height),n.shouldUpdate=!1,this._connectMix(n,o,"cover"),this.inputLocalVideoTracks.set(e,r),this.cameraNodeMap.set(e,n),this.setFpsAuto()}addScreenSource(e,r,o){if(this.inputLocalScreenTracks.has(e)||this.screenNodeMap.has(e))throw new Error(`There is already a screenSource with the same ID: ${e}`);let{mediaTrack:s}=r;if(!s)throw new Error("no mediaTrack, add cameraSource failed");let n=this.videoContext.createVideoTrackSource(s,"screenNodeSource");n.resize(r.settings.width,r.settings.height),n.shouldUpdate=!1,this._connectMix(n,o),this.inputLocalScreenTracks.set(e,r),this.screenNodeMap.set(e,n),this.setFpsAuto()}addTextSource(e){let{id:r,content:o="",font:s,color:n,layout:a}=e;if(this.textNodeMap.has(r))throw new Error(`There is already a textSource with the same ID: ${r}`);let u=this.videoContext.createTextSource({content:o,font:s,color:n});u.resize(a.width,a.height),this._connectMix(u,a),this.textNodeMap.set(r,u)}addImageSource(e,r,o){if(this.imageNodeMap.has(e))throw new Error(`There is already a imageSource with the same ID: ${e}`);let s=this.videoContext.createVideoImageSource(r,{autoResize:!1,logger:this.log});s.resize(r.width,r.height),this._connectMix(s,o),this.imageNodeMap.set(e,s)}addVideoSource(e,r,o){if(this.videoNodeMap.has(e))throw new Error(`There is already a videoSource with the same ID: ${e}`);let s=this.videoContext.createVideoImageSource(r,{autoResize:!1,logger:this.log});s.resize(r.videoWidth,r.videoHeight),s.shouldUpdate=!1,this._connectMix(s,o),this.videoNodeMap.set(e,s)}updateCameraSource(e,r,o=null,s){let n=this.cameraNodeMap.get(e);if(n){if(o){if(Ot===16&&o instanceof CanvasCaptureMediaStreamTrack)if(n instanceof gr){let m=n.output;n.close(),n=this.videoContext.createVideoImageSource(o.canvas,{name:"cameraCanvasSource",logger:this.log}),n.connect(m),this.cameraNodeMap.set(e,n)}else n.image=o.canvas;else if(n instanceof gr)n.replaceTrack(o);else{let m=n.output;n.close(),n=this.videoContext.createVideoTrackSource(o,"cameraNodeSource"),n.connect(m),this.cameraNodeMap.set(e,n)}let{width:a,height:u}=o.getSettings();a&&u&&n.resize(a,u)}s&&n.resize(s.width,s.height),(s||o)&&this.setFpsAuto(),this._changeMixLayout(n,r)}}updateScreenSource(e,r){let o=this.screenNodeMap.get(e);o&&this._changeMixLayout(o,r)}updateTextSource(e){let{id:r,content:o,font:s,color:n,layout:a}=e,u=this.textNodeMap.get(r);u&&(x(o)||(u.content=o),x(s)||(u.font=s),x(n)||(u.color=n),u.resize(a.width,a.height),this._changeMixLayout(u,a))}updateImageSource(e,r,o){let s=this.imageNodeMap.get(e);s&&(o&&(s.image=o,s.resize(o.width,o.height)),this._changeMixLayout(s,r))}updateVideoSource(e,r,o){let s=this.videoNodeMap.get(e);if(s){if(o){let n=s.image;n instanceof HTMLVideoElement&&this.stopVideoElement(n),s.image=o,s.resize(o.videoWidth,o.videoHeight)}this._changeMixLayout(s,r)}}_connectMix(e,r,o="contain"){if(!this.mixNode)return;let{mirror:s,rotation:n}=r;e.disconnect();let a=new Er(this.videoContext,this.log,s,n);a=e.connect(a),r.fillMode||(r.fillMode=o),a.connect(this.mixNode,r)}_changeMixLayout(e,r){if(!this.mixNode)return;let{mirror:o,rotation:s}=r,n=e.output||e;n instanceof Er&&(x(o)||(n.mirror=o),x(s)||(n.rotation=s),n.resize(e.width,e.height)),this.mixNode.changeInputLayout(n,r)}removeCameraSource(e){let r=this.inputLocalVideoTracks.get(e);if(!r)return;r.close(),this.inputLocalVideoTracks.delete(e);let o=this.cameraNodeMap.get(e);o&&(o.output instanceof Er&&o.output.close(),o.close(),this.cameraNodeMap.delete(e)),this.checkAfterRemove(!0)}removeScreenSource(e){let r=this.inputLocalScreenTracks.get(e);if(!r)return;r.close(),this.inputLocalScreenTracks.delete(e);let o=this.screenNodeMap.get(e);o&&(o.output instanceof Er&&o.output.close(),o.close(),this.screenNodeMap.delete(e)),this.checkAfterRemove(!0)}removeTextSource(e){let r=this.textNodeMap.get(e);r&&(r.output instanceof Er&&r.output.close(),r.close(),this.textNodeMap.delete(e)),this.checkAfterRemove()}removeImageSource(e){let r=this.imageNodeMap.get(e);r&&(r.output instanceof Er&&r.output.close(),r.close(),this.imageNodeMap.delete(e)),this.checkAfterRemove()}removeVideoSource(e){let r=this.videoNodeMap.get(e);r&&(r.output instanceof Er&&r.output.close(),r.image instanceof HTMLVideoElement&&this.stopVideoElement(r.image),r.close(),this.videoNodeMap.delete(e)),this.checkAfterRemove()}checkAfterRemove(e=!1){e&&this.setFpsAuto()}stopVideoElement(e){e.pause(),e.src="",e.srcObject=null,e.remove()}close(){var e;super.close(),dt.clearTask(this._checkId),(e=this.videoContext)==null||e.destroy(),delete this.mixNode,delete this.destination;for(let r of[...this.inputLocalVideoTracks.values(),...this.inputLocalScreenTracks.values()])r.close();this.inputLocalVideoTracks.clear(),this.inputLocalScreenTracks.clear(),this.cameraNodeMap.clear(),this.screenNodeMap.clear(),this.textNodeMap.clear(),this.imageNodeMap.clear(),ut(this);for(let r of this.videoNodeMap.values())r.image instanceof HTMLVideoElement&&this.stopVideoElement(r.image);this.videoNodeMap.clear(),this.log.info("localMixVideoTrack close, stop mix")}};var Iu=ya();if(typeof navigator!="undefined"&&navigator.mediaDevices&&"setCaptureHandleConfig"in navigator.mediaDevices)try{navigator.mediaDevices.setCaptureHandleConfig({handle:Iu,exposeOrigin:!0,permittedOrigins:["*"]})}catch(i){}var KS=function(i){return y(this,null,function*(){let t=null,e=ry(i);$.info(`getDisplayMedia with constraints: ${JSON.stringify(e)}`);let r=yield navigator.mediaDevices.getDisplayMedia(e);i.systemAudio&&r.getAudioTracks().length===0&&(on&&Zr<74||Tt||Ht)&&$.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){$.warn(`screen applyConstraints failed: ${s}`)}i.captureElement&&(yield ey(o,i.captureElement))}if(i.audio){let s=ty(i);$.info(`getUserMedia with constraints: ${JSON.stringify(s)}`),t=yield navigator.mediaDevices.getUserMedia(s),r.addTrack(t.getAudioTracks()[0])}return r})};function ey(i,t){return y(this,null,function*(){var e;if("CropTarget"in window&&"fromElement"in CropTarget&&Ge(i.cropTo))try{if(!(((e=i.getCaptureHandle())==null?void 0:e.handle)===Iu))return;let o=yield CropTarget.fromElement(t);yield i.cropTo(o)}catch(r){$.warn(`cropTo target failed ${r}`)}})}function ty(i){let t={echoCancellation:i.echoCancellation,autoGainControl:i.autoGainControl,noiseSuppression:i.noiseSuppression,sampleRate:i.sampleRate,channelCount:i.channelCount};return x(i.microphoneId)||(t.deviceId=i.microphoneId),{audio:t,video:!1}}function ry(i){let t={preferCurrentTab:i.preferDisplaySurface==="current-tab"||!!i.captureElement,systemAudio:"include",selfBrowserSurface:"include",surfaceSwitching:"include"},e={width:Tt?{max:i.width}:{ideal:i.width,max:i.width},height:Tt?{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 tE=KS;var ri=class extends ar{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}`}get isShareCurrentTab(){var e,r;try{return Iu===((r=(e=this.mediaTrack)==null?void 0:e.getCaptureHandle())==null?void 0:r.handle)}catch(o){return}}capture(p){return y(this,arguments,function*({systemAudio:e=!1,autoGainControl:r,echoCancellation:o,noiseSuppression:s,audioTrack:n,videoTrack:a,captureElement:u,preferDisplaySurface:m}){try{let g;return a||n?(g=new MediaStream,a&&g.addTrack(a),n&&g.addTrack(n)):(g=yield tE({audio:!1,systemAudio:e,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,autoGainControl:r,echoCancellation:o,noiseSuppression:s,captureElement:u,preferDisplaySurface:m}),this.sourceTrack=g.getVideoTracks()[0]),yield this.setInputMediaStreamTrack(g.getVideoTracks()[0]),g}catch(g){throw this.log.error(`getDisplayMedia error observed ${g}`),g instanceof de?g:new de({code:q.INITIALIZE_FAILED,name:g.name,message:g.message})}})}switchDevice(e){return y(this,null,function*(){throw new Error("Method not implemented.")})}};ee([po(function(e){this.setContentHint(e.contentHint||"detail")})],ri.prototype,"capture",1);var Es=class extends ti{constructor(t){super(t),this._log.id=`s-${this._log.id}`}addAudioProcessor(t,e,r){this.pipeline.silentNode.setNode(r),this.pipeline.mixNode.setNode(e),this.pipeline.aec.setNode(t),this.enableTrackAEC(!1)}removeAudioProcessor(t){this.pipeline.aec.node===t&&(this.pipeline.aec.deleteNode(),this.pipeline.silentNode.deleteNode(),this.pipeline.mixNode.deleteNode(),this.enableTrackAEC(!0))}};var iy='registerProcessor("dumper",class extends AudioWorkletProcessor{constructor(e){super(),this.sourceSampleRate=e.processorOptions.sourceSampleRate||48e3,this.targetSampleRate=e.processorOptions.targetSampleRate||48e3,this.port.onmessage=e=>{this.port2=e.data.port}}process(e){return(this.port2||this.port).postMessage(this.resampleAll(e,this.sourceSampleRate,this.targetSampleRate)),!0}resampleAll(r,s,a){if(s===a)return r;var o=[];for(let t=0;t<r.length;t++){o[t]=[];for(let e=0;e<r[t].length;e++)o[t][e]=this.resample(r[t][e],s,a)}return o}resample(t,e,r){if(e===r)return t;var s=Math.round(t.length*(this.targetSampleRate/this.sourceSampleRate)),a=new Float32Array(s),o=(t.length-1)/(s-1);a[0]=t[0];for(let e=1;e<s-1;e++){var l=e*o,p=Math.floor(l),h=Math.ceil(l);a[e]=t[p]+(t[h]-t[p])*(l-p)}return a[s-1]=t[t.length-1],a}});',Yh;function tc(i,t=48e3,e=1,r){return y(this,null,function*(){let o=We("dump");Yh||(Yh=xi(o,URL.createObjectURL(new Blob([iy],{type:"application/javascript"})))),yield Yh;let s=o.sampleRate,n=new AudioWorkletNode(o,"dumper",{numberOfInputs:i.length,numberOfOutputs:0,processorOptions:{sourceSampleRate:s,targetSampleRate:t}});return n.channelCountMode="explicit",n.channelCount=e,r&&n.port.postMessage({port:r},[r]),i.forEach((a,u)=>a.connect(n,0,u)),new ReadableStream({start(a){n.port.onmessage=u=>{a.enqueue(u.data)}},cancel(){i.forEach(a=>a.disconnect(n)),n.port.close()}})})}var Su=class extends qd{constructor(e){super();this.room=e;l(this,"_localAudioTrack");l(this,"_localScreenAudioTrack");l(this,"log",$.createLogger({id:"am"}));l(this,"denoiser");l(this,"voiceChanger");l(this,"mixChangedDebounce");l(this,"audioProcessor");l(this,"encodePipeline",[]);l(this,"decodePipeline",[]);l(this,"getPCMAbortCtrlMap",new Map);l(this,"audioFrameEventConfigMap",new Map);l(this,"audioReferenceMap",new Map);l(this,"isLocalAudioNeedAudioProcess",!1);l(this,"isScreenAudioNeedAudioProcess",!1);e&&(this.log.setUserId(e.userId),this.log.setSdkAppId(e.sdkAppId)),this.installEvent()}get _localAudioPipline(){var e;return(e=this._localAudioTrack)==null?void 0:e.pipeline}get _localScreenAudioPipeline(){var e;return(e=this._localScreenAudioTrack)==null?void 0:e.pipeline}dump(e){var p,g;if(!this._localAudioTrack)return;let r=[],o=[];(p=this._localAudioPipline)!=null&&p.source.node&&(r.push(this._localAudioPipline.source.node),o.push("mic")),(g=this._localAudioPipline)!=null&&g.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,n=[],a=setTimeout(()=>{this.log.info('dump audio track complete please input "download()" to download.'),s.abort("timeout")},e*1e3),u=()=>{for(let _=0;_<o.length;_++){let A=URL.createObjectURL(new Blob(n[_])),C=document.createElement("a");C.href=A,C.download=`${o[_]}.pcm`,C.style.display="none",document.body.appendChild(C),C.click(),URL.revokeObjectURL(A),C.remove()}clearTimeout(a),s.abort("download")},m=tc(r).then(_=>_.pipeTo(new WritableStream({write(A){A.forEach((C,N)=>n[N]=n[N]?n[N].concat(C[0]):[C[0]])}}),s).catch(A=>u));return{then:m.then.bind(m),download:u}}getPCM(e,r){var O,Z,ue;if(typeof WritableStream=="undefined"){this.log.warn("getPCM failed: browser not support WritableStream");return}let{enable:o,sampleRate:s=48e3,channelCount:n=1,port:a}=(r===""?this.audioFrameEventConfigMap.get(""):this.audioFrameEventConfigMap.get(r)||this.audioFrameEventConfigMap.get("*"))||{};if(!o)return;this.log.info(`getPCM ${r||"local"}`);let u=Math.floor(s*.04),m=new Float32Array(u),p=new Float32Array(u),g,_,A=0,C=new AbortController,N=r===""?(O=this._localAudioTrack)==null?void 0:O.mediaTrack:(ue=(Z=this.room)==null?void 0:Z.remotePublishedUserMap.get(r))==null?void 0:ue.remoteAudioTrack.mediaTrack;if(!N){this.log.info(`getPCM failed: ${r||"local"} has no audio track`);return}let D=We().createMediaStreamSource(new MediaStream([N]));return tc([D],s,n,a).then(Se=>Se.pipeTo(new WritableStream({write(Ye){Ye[0][0]&&(A+Ye[0][0].length>u?(m.set(Ye[0][0].subarray(0,u-A),A),g=Ye[0][0].subarray(u-A),Ye[0][1]&&(p.set(Ye[0][1].subarray(0,u-A),A),_=Ye[0][1].subarray(u-A)),A+=u-A):(g&&(m.set(g,A),A+=g.length,g=void 0),_&&(p.set(_,A),_=void 0),m.set(Ye[0][0],A),Ye[0][1]&&p.set(Ye[0][1],A),A+=Ye[0][0].length),A>=u&&(A=0,e({userId:r,sampleRate:s,channelCount:n,data:n===1?m:[m,p]}),m=new Float32Array(u),p=new Float32Array(u)))}}),C).catch(Ye=>this.log.warn(`stop getPCM reason:${Ye}`))),C}get hasScreenAudioTrack(){return!x(this._localScreenAudioTrack)}get hasAudioTrack(){return!x(this._localAudioTrack)}changeInput(e){var r,o;if(e instanceof Es)return this._localScreenAudioTrack=e,this.isScreenAudioNeedAudioProcess&&((r=this.audioProcessor)!=null&&r.screenAudioWorkletNode)&&(e.addAudioProcessor(this.audioProcessor.screenAudioWorkletNode,this.audioProcessor.mixNode,this.audioProcessor.silentNode),this.audioReferenceMap.forEach((s,n)=>{e.mixAudioReference(s,n)})),e.pipeline.connect(),this.mixOnChange();if(e instanceof ti)return this._localAudioTrack=e,this.denoiser&&e.addDenoiser(this.denoiser),this.isLocalAudioNeedAudioProcess&&((o=this.audioProcessor)!=null&&o.localAudioWorkletNode)&&(e.addAudioProcessor(this.audioProcessor.localAudioWorkletNode,this.audioProcessor.mixNode,this.audioProcessor.silentNode),this.audioReferenceMap.forEach((s,n)=>{e.mixAudioReference(s,n)})),e.pipeline.connect(),this.mixOnChange();if(e instanceof Li)return e.setOutputMediaStreamTrack(e.mediaTrack)}mixAudioReference(e,r){var o;(o=this._localAudioTrack)==null||o.mixAudioReference(e,r)}unMixAudioReference(e){var r;(r=this._localAudioTrack)==null||r.unMixAudioReference(e)}setAudioReferenceVolume(e,r){var o;(o=this._localAudioTrack)==null||o.setAudioReferenceVolume(e,r)}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 Es?delete this._localScreenAudioTrack:e instanceof ti?delete this._localAudioTrack:e instanceof Li}addDenoiser(e){var r;this.denoiser=e,(r=this._localAudioTrack)==null||r.addDenoiser(e)}addAudioProcessor(e,r,o,s){var n;this.audioProcessor={localAudioWorkletNode:o,mixNode:e,silentNode:r,screenAudioWorkletNode:s},this.isLocalAudioNeedAudioProcess&&this._localAudioTrack&&o&&(this._localAudioTrack.addAudioProcessor(o,e,r),this.audioReferenceMap.forEach((a,u)=>{var m;(m=this._localAudioTrack)==null||m.mixAudioReference(a,u)})),this.isScreenAudioNeedAudioProcess&&this._localScreenAudioTrack&&s&&((n=this._localScreenAudioTrack)==null||n.addAudioProcessor(s,e,r),this.audioReferenceMap.forEach((a,u)=>{var m;(m=this._localScreenAudioTrack)==null||m.mixAudioReference(a,u)}))}removeDenoiser(e){var r;return delete this.denoiser,(r=this._localAudioTrack)==null?void 0:r.removeDenoiser(e)}addVoiceChanger(e,r){var o;this.voiceChanger=[e,r],(o=this._localAudioTrack)==null||o.pipeline.voiceChanger.setNode(e,r)}removeVoiceChanger(){var e;delete this.voiceChanger,(e=this._localAudioTrack)==null||e.pipeline.voiceChanger.deleteNode()}removeAudioProcessor(e,r){var o,s;delete this.audioProcessor,(o=this._localAudioTrack)==null||o.removeAudioProcessor(e),(s=this._localScreenAudioTrack)==null||s.removeAudioProcessor(r)}destroy(){this.close(),this.audioReferenceMap.clear(),this.getPCMAbortCtrlMap.forEach(e=>e==null?void 0:e.abort("destroy")),this.getPCMAbortCtrlMap.clear(),this.audioFrameEventConfigMap.clear(),this.uninstallEvent()}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}handleLocalTrackStarted({room:e,userId:r}){var s;if(e!==this.room||this.getPCMAbortCtrlMap.get(r))return;let o=this.getPCM(n=>{var a;(a=this.room)==null||a.emit("audio-frame",n)},"");this.getPCMAbortCtrlMap.set(r,o),this.getPCMAbortCtrlMap.get(r)&&((s=this._localAudioTrack)==null||s.on("input-media-track-changed",()=>{let n=this.getPCMAbortCtrlMap.get(r);n&&(n.abort("inputMediaTrackChanged"),n=this.getPCM(a=>{var u;(u=this.room)==null||u.emit("audio-frame",a)},""),this.getPCMAbortCtrlMap.set(r,n))}))}handleLocalTrackStopped({room:e,userId:r}){if(e!==this.room)return;let o=this.getPCMAbortCtrlMap.get(r);o&&(o.abort("stopLocalAudio"),this.getPCMAbortCtrlMap.delete(r))}handleRemoteTrackStarted({room:e,userId:r}){if(e===this.room&&!this.getPCMAbortCtrlMap.get(r)){let o=this.room.audioManager.getPCM(s=>{var n;(n=this.room)==null||n.emit("audio-frame",s)},r);this.getPCMAbortCtrlMap.set(r,o)}}handleRemoteTrackStopped({room:e,userId:r}){if(e!==this.room)return;let o=this.getPCMAbortCtrlMap.get(r);o&&(o.abort("stopRemoteAudio"),this.getPCMAbortCtrlMap.delete(r))}installEvent(){V.on("113",this.handleLocalTrackStarted,this),V.on("114",this.handleLocalTrackStopped,this),V.on("115",this.handleRemoteTrackStarted,this),V.on("116",this.handleRemoteTrackStopped,this)}uninstallEvent(){V.off("113",this.handleLocalTrackStarted),V.off("114",this.handleLocalTrackStopped),V.off("115",this.handleRemoteTrackStarted),V.off("116",this.handleRemoteTrackStopped)}updateAudioReference({type:e,audioReference:r,refId:o,volume:s}){if(e==="add"){if(this.audioReferenceMap.get(o)||!r||(this.audioReferenceMap.set(o,r),!this.audioProcessor))return;this.mixAudioReference(r,o)}else if(e==="remove")this.audioReferenceMap.get(o)&&(this.audioReferenceMap.delete(o),this.unMixAudioReference(o));else if(e==="updateVolume"){if(!this.audioProcessor||x(s))return;this.setAudioReferenceVolume(o,s)}}};function rE(i=30,t=2){return Oe((e,r)=>function(...o){return new Promise((s,n)=>{let a=setTimeout(()=>{let u=new de({code:q.API_CALL_TIMEOUT,message:`checkPendingPromise ${r}() timeout ${i}s`});(this.log||this._log||$).warn(u),t===2?n(u):t===1&&s()},i*1e3);e.apply(this,o).then(s,n).finally(()=>{clearTimeout(a)})})})}var ii=class ii extends as{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,"availableState");l(this,"remotePublishState");l(this,"_triggerCheckDecodeSubject",Rt(be(this,ii.STATE_SUBSCRIBE)));this.tinyId=r.tinyId,this.availableState=new le(`${r.userId}-${this.mediaType}-available`,"remote-track-available"),this.remotePublishState=new le(`${r.userId}-${this.mediaType}-remote-publish`,"remote-track-publish"),Ae(za(be(this,le.STATECHANGED),be(this.remotePublishState,le.STATECHANGED)),go(()=>this.isRemotePublished&&(this.isSubscribed||this.isSubscribing)),Le(u=>{this.availableState.state!==(u?le.ON:le.OFF)&&(this.availableState.state=u?le.ON:le.OFF),this.updatePlayingState(u)}));let s=Ae(be(this.player,qe.ERROR),Jt(u=>u.code===MediaError.MEDIA_ERR_DECODE)),n=Ae(Xa(5e3),Jt(()=>this.ignoreDecodeError||!this.isSubscribed||!this.isPlayCalled||!this.stat.bytesReceived?!1:this.player.isPlaying||(this.kind===M.AUDIO?this.getAudioLevel()>0:this.stat.framesDecoded>0)?(this.reportDecodeResult(!0),!1):!0)),a=Ae(mh(s,n),ze(be(this,le.INIT)));Ae(this._triggerCheckDecodeSubject,Jt(()=>!this.ignoreDecodeError),ki(a),Le(u=>{this.reportDecodeResult(!1,u)}))}setMute(e){this.isRemotePublished&&super.setMute(e)}setInputMediaStreamTrack(e){super.setInputMediaStreamTrack(e),this.isRemotePublished&&this.isSubscribed&&this.player.setTrack(this.outMediaTrack)}checkDecodeResult(){this._triggerCheckDecodeSubject.next(!0)}waitHasMediaTrack(){return new Promise(e=>{this.mediaTrack?e():this.once("input-media-track-changed",e)})}get ignoreDecodeError(){var r,o;return(((o=(r=this.room)==null?void 0:r.networkQuality)==null?void 0:o.downlinkNetworkQuality)||0)>3||this.player.isInAutoPlayFailedState}get isSubscribing(){return this.state.toString()==="subscribeing"}get isSubscribed(){return this.state===ii.STATE_SUBSCRIBE}get isAvailable(){return this.availableState.state===le.ON}get isNeedPlay(){return this.isAvailable&&this.isPlayCalled}subscribe(e){return e}unsubscribe(){this.player.setTrack(null),this.streamType==="main"&&this.kind==="video"&&this.room.changeType(!1,this.user)}reportDecodeResult(e,r){var s,n;let o=this.kind===M.AUDIO;if(Q[e?"addSuccessEvent":"addFailedEvent"]({key:o?504700:514702}),!o){let a=((s=this.room)==null?void 0:s.downlinkVideoCodec.toUpperCase())||"H264";Q[e?"addSuccessEvent":"addFailedEvent"]({key:dn[`DECODE_${a}_RESULT`]}),e||this.log.warn(`${(n=this.room)==null?void 0:n.downlinkVideoCodec} decode failed`)}e||(Q.addEnum({key:o?504701:514703,value:Yo()}),He.uploadEvent({log:`stat-decode-failed-${this.kind}-${Ia()||Zo()}`,userId:this.room.userId}),this._log.warn(`decode failed: isPlaying: ${this.player.isPlaying} ${this.kind===M.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.isRemotePublished||!this.outMediaTrack)){this.log.info(`abort play, isSubscribed: ${this.isSubscribed} isAvailable: ${this.isRemotePublished} hasTrack: ${!!this.outMediaTrack} `);return}super.updatePlayingState(e)}}close(){super.close(),this.outMediaTrack&&this.uninstallTrackEvent(this.outMediaTrack)}onFlagChanged(){this.remotePublishState.state=this.isRemotePublished?le.ON:le.OFF,this.emit("remote-publish-changed",this.isRemotePublished)}onTrackMuted(){this.isNeedPlay&&super.onTrackMuted()}onTrackUnmuted(){this.isNeedPlay&&super.onTrackUnmuted()}onTrackEnded(){this.isNeedPlay&&super.onTrackEnded()}};l(ii,"STATE_SUBSCRIBE","subscribe"),ee([rE(5,1)],ii.prototype,"waitHasMediaTrack",1),ee([Ze(le.INIT,ii.STATE_SUBSCRIBE,{success(){this.log.info("subscribed"),V.emit(F.REMOTE_TRACK_SUBSCRIBED,{track:this})},ignoreError:!0}),tu(521716,!1)],ii.prototype,"subscribe",1),ee([Ze(ii.STATE_SUBSCRIBE,le.INIT,{sync:!0,success(){this.log.info("unsubscribed"),V.emit(F.REMOTE_TRACK_UNSUBSCRIBED,{track:this})}})],ii.prototype,"unsubscribe",1);var An=ii;var Li=class extends An{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}get dbVolume(){return Jd.isRunning?this.player.pipeline.volumeMeter.getVolumeDb():Math.floor(Math.max(10*Math.log10(this.volume)+100,0))}onPlayerError(e){this.enableDecodeFrame&&(this._log.warn("use audio decoder"),this.room.enableInsertableStreams())}get enableDecodeFrame(){var e,r;return this.manager?this.manager.decodePipeline.some(o=>o)||((r=(e=this.player.element)==null?void 0:e.error)==null?void 0:r.code)===MediaError.MEDIA_ERR_DECODE&&Fd().AudioDecoder&&os:!1}decodeFrame(e){if(!this.manager)return e;let r=e;for(let[o,s]of this.manager.decodePipeline.entries()){if(!s)continue;let n={frame:e,track:this};if(o===1&&this.isAvailable&&this.room.role==="audience"&&(n.onAudioFrameNTPTime=({ntp:a,frame:u,hasLeavingTag:m})=>{this.emit("audio-frame-with-ntp",{ntp:a,frame:u,hasLeavingTag:m})}),r=s(n),!r)return}return r}getAudioLevel(){let e=this.volume||super.getAudioLevel();return e>1?1:e}get isRemotePublished(){return this.user.muteState.audioAvailable}};function sy(i){return[15,30,45,60].reduce((e,r)=>Math.abs(r-i)<Math.abs(e-i)?r:e)}var To=class extends An{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,this.once("first-video-frame",s=>{this.room.emit("first-video-frame",s)})}play(e,r){return(Qe(r==null?void 0:r.canvasRender)?r.canvasRender:Ot===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 Dt({frameRate:15,logger:this.log,name:this.userId});e.create({alpha:!1});let r=new ps(e,{name:"remotePlayer",logger:this.log});this.source=e.createVideoPlayerSource(this.player),this.source.connect(r),this.player.setCanvas(e._canvas),Mi()||(this.updateCanvasPlayerFPS=this.updateCanvasPlayerFPS.bind(this,e),this.room.on("heartbeat-report",this.updateCanvasPlayerFPS,this))}updateCanvasPlayerFPS(e){let r=this.decodeFPS,o=sy(r);if(!ke(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 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))||{},r=this.mediaType===2?7:this.isSmall?3:2;if(!e||e.length===0)return 0;let o=e.find(a=>a.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 isRemotePublished(){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 To{constructor(e,r){super(e,r,2);l(this,"mediaType",2);l(this,"objectFit","contain")}get isRemotePublished(){return this.user.muteState.hasAuxiliary}};var bn=new Map;V.on(F.JOIN_SUCCESS,({room:i})=>{nt(i.userId,{eventId:32788})});V.on(F.LEAVE_START,({room:i})=>{nt(i.userId,{eventId:32789})});V.on(F.LOCAL_TRACK_PUBLISHED,({track:i})=>{if(i.room){let t=32769;i.mediaType===4?t=32768:i.mediaType===2&&(t=32805),nt(i.room.userId,{eventId:t})}});V.on(F.LOCAL_TRACK_UNPUBLISHED,({track:i})=>{if(i.room){let t=32771;i.mediaType===4?t=32770:i.mediaType===2&&(t=32806),nt(i.room.userId,{eventId:t})}});V.on(F.TRACK_MUTED,({track:i})=>{i.room&&(i.kind===M.AUDIO?nt(i.room.userId,{eventId:i.isRemote?32785:32772,remoteUserId:i.isRemote?i.userId:void 0}):nt(i.room.userId,{eventId:i.isRemote?32784:32773,remoteUserId:i.isRemote?i.userId:void 0}))});V.on(F.TRACK_UNMUTED,({track:i})=>{i.room&&(i.kind===M.AUDIO?nt(i.room.userId,{eventId:i.isRemote?32787:32774,remoteUserId:i.isRemote?i.userId:void 0}):nt(i.room.userId,{eventId:i.isRemote?32786:32775,remoteUserId:i.isRemote?i.userId:void 0}))});V.on(F.REMOTE_TRACK_SUBSCRIBED,({track:i})=>{i.room&&(i.mediaType===1&&nt(i.room.userId,{eventId:32777,remoteUserId:i.userId}),i.mediaType===4&&nt(i.room.userId,{eventId:32776,remoteUserId:i.userId}),i.mediaType===8&&nt(i.room.userId,{eventId:32803,remoteUserId:i.userId}))});V.on(F.REMOTE_TRACK_UNSUBSCRIBED,({track:i})=>{i.room&&(i.mediaType===1&&nt(i.room.userId,{eventId:32779,remoteUserId:i.userId}),i.mediaType===4&&nt(i.room.userId,{eventId:32778,remoteUserId:i.userId}),i.mediaType===8&&nt(i.room.userId,{eventId:32804,remoteUserId:i.userId}))});V.on(F.SWITCH_DEVICE_SUCCESS,({track:i})=>{i.room&&nt(i.room.userId,{eventId:i.kind===M.VIDEO?32780:32781})});V.on(F.LOCAL_TRACK_REPLACED,({track:i})=>{i.room&&nt(i.room.userId,{eventId:i.kind===M.VIDEO?32782:32783})});V.on(F.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&&nt(i.userId,{eventId:r})});V.on(F.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&&nt(i.userId,{eventId:s,remoteUserId:r})});V.on(F.VIDEO_CODEC_IMPLEMENTATION_CHANGED,({implementation:i,userId:t,remoteUserId:e,codec:r,isHWCodec:o,prevImplementation:s,streamType:n})=>{let a=o?1:0;s||(a=o?3:2);let u={H264:0,H265:1,VP8:2}[r.toUpperCase()],m={eventId:4004,param1:a,param2:u,streamType:n||2};e&&(m.remoteUserId=e,m.eventId=4005),nt(t,m),Q.addEnum({key:e?514701:513701,value:a}),Q.addEnum({key:e?514700:513700,value:u})});V.on(F.LOCAL_TRACK_RECAPTURE,({track:i,error:t})=>{if(i.userId){let e={eventId:2003,param1:0};i.kind===M.AUDIO?(e.streamType=1,t&&(e.param1=2)):(e.streamType=i.streamType==="auxiliary"?7:2,t&&(e.param1=8)),nt(i.userId,e)}});function nt(i,t){let e=ge(X({},t),{timestamp:fi()});bn.has(i)?bn.get(i).push(e):bn.set(i,[e])}function iE(i){if(bn.has(i)){let t=bn.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 bn.delete(i),t}return[]}function oE(...i){return Oe((t,e)=>function(...r){return ny.call(this,i,r,e,this._name),t.apply(this,r)})}function ny(i,t,e,r){try{if(st(i))for(let o=0;o<i.length;o++)Au.call(this,{rule:i[o],value:t[o],key:i[o].name,fnName:e,className:r});else Au.call(this,{rule:i,value:t[0],key:i.name,fnName:e,className:r})}catch(o){throw $.error(o),o}}function Au({rule:i,value:t,key:e,fnName:r,className:o}){if(x(t)){if(i.required)throw new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.INVALID_PARAMETER_REQUIRED,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(x(i.defaultValue))return;t=i.defaultValue}if(Array.isArray(i.type)){let a=!1;for(let u=0;u<i.type.length;u++)i.type[u]===null&&t===null&&(a=!0),Ge(i.type[u])&&t instanceof i.type[u]&&(a=!0),Ne(i.type[u])&&ct(t)===i.type[u].toLowerCase()&&(a=!0);if(!a)throw new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.INVALID_PARAMETER_TYPE,data:{key:e,rule:{type:i.type.map(u=>jo(u)?Hs(u):Ne(u)?u:ct(u))},fnName:r,value:t},link:{className:o,fnName:r}})})}else if(!x(i.type)&&ct(t)!==i.type)throw new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.INVALID_PARAMETER_TYPE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(i.allowEmpty===!1){let a=ke(t)&&(t===0||Number.isNaN(t)),u=Ne(t)&&t.trim()==="";if(a||u)throw new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.INVALID_PARAMETER_EMPTY,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})})}if(i.notLessThanZero&&ke(t)&&t<0)throw new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.CANNOT_LESS_THAN_ZERO,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(!x(i.min)&&ke(t)&&t<i.min)throw new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.INVALID_PARAMETER_MIN,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(!x(i.max)&&ke(t)&&t>i.max)throw new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.INVALID_PARAMETER_MAX,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(Ne(i.instanceOf)){if(!t||t._name!==i.instanceOf)throw new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.INVALID_PARAMETER_INSTANCE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})})}else if(Ge(i.instanceOf)&&!(t instanceof i.instanceOf))throw new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.INVALID_PARAMETER_INSTANCE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(i.values&&!i.values.includes(t))throw new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.INVALID_PARAMETER_RANGE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});let{properties:s}=i;Bt(s)&&ir(t)&&Object.keys(s).forEach(a=>{Au.call(this,{rule:s[a],value:t&&t[a],key:`${e}.${a}`,fnName:r,className:o})});let{arrayItem:n}=i;Bt(n)&&st(t)&&t.forEach((a,u)=>{Au.call(this,{rule:n,value:a,key:`${e}[${u}]`,fnName:r,className:o})}),Ge(i.validate)&&i.validate.call(this,t,e,r,o,this)}var ay=pi(bi(),1);var cy=Object.create,Nu=Object.defineProperty,dy=Object.defineProperties,cE=Object.getOwnPropertyDescriptor,uy=Object.getOwnPropertyDescriptors,dE=Object.getOwnPropertyNames,sE=Object.getOwnPropertySymbols,ly=Object.getPrototypeOf,uE=Object.prototype.hasOwnProperty,my=Object.prototype.propertyIsEnumerable,ep=(i,t,e)=>t in i?Nu(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Ru=(i,t)=>{for(var e in t||(t={}))uE.call(t,e)&&ep(i,e,t[e]);if(sE)for(var e of sE(t))my.call(t,e)&&ep(i,e,t[e]);return i},vu=(i,t)=>dy(i,uy(t)),hy=(i,t)=>function(){return t||(0,i[dE(i)[0]])((t={exports:{}}).exports,t),t.exports},py=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of dE(t))uE.call(i,o)||o===e||Nu(i,o,{get:()=>t[o],enumerable:!(r=cE(t,o))||r.enumerable});return i},fy=(i,t,e)=>(e=i!=null?cy(ly(i)):{},py(!t&&i&&i.__esModule?e:Nu(e,"default",{value:i,enumerable:!0}),i)),Ui=(i,t,e,r)=>{for(var o,s=r>1?void 0:r?cE(t,e):t,n=i.length-1;n>=0;n--)(o=i[n])&&(s=(r?o(t,e,s):o(s))||s);return r&&s&&Nu(t,e,s),s},$r=(i,t,e)=>ep(i,typeof t!="symbol"?t+"":t,e),gy=hy({"../node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.js"(i,t){"use strict";var e=Object.prototype.hasOwnProperty,r="~";function o(){}function s(m,p,g){this.fn=m,this.context=p,this.once=g||!1}function n(m,p,g,_,A){if(typeof g!="function")throw new TypeError("The listener must be a function");var C=new s(g,_||m,A),N=r?r+p:p;return m._events[N]?m._events[N].fn?m._events[N]=[m._events[N],C]:m._events[N].push(C):(m._events[N]=C,m._eventsCount++),m}function a(m,p){--m._eventsCount==0?m._events=new o:delete m._events[p]}function u(){this._events=new o,this._eventsCount=0}Object.create&&(o.prototype=Object.create(null),new o().__proto__||(r=!1)),u.prototype.eventNames=function(){var m,p,g=[];if(this._eventsCount===0)return g;for(p in m=this._events)e.call(m,p)&&g.push(r?p.slice(1):p);return Object.getOwnPropertySymbols?g.concat(Object.getOwnPropertySymbols(m)):g},u.prototype.listeners=function(m){var p=r?r+m:m,g=this._events[p];if(!g)return[];if(g.fn)return[g.fn];for(var _=0,A=g.length,C=new Array(A);_<A;_++)C[_]=g[_].fn;return C},u.prototype.listenerCount=function(m){var p=r?r+m:m,g=this._events[p];return g?g.fn?1:g.length:0},u.prototype.emit=function(m,p,g,_,A,C){var N=r?r+m:m;if(!this._events[N])return!1;var D,O,Z=this._events[N],ue=arguments.length;if(Z.fn){switch(Z.once&&this.removeListener(m,Z.fn,void 0,!0),ue){case 1:return Z.fn.call(Z.context),!0;case 2:return Z.fn.call(Z.context,p),!0;case 3:return Z.fn.call(Z.context,p,g),!0;case 4:return Z.fn.call(Z.context,p,g,_),!0;case 5:return Z.fn.call(Z.context,p,g,_,A),!0;case 6:return Z.fn.call(Z.context,p,g,_,A,C),!0}for(O=1,D=new Array(ue-1);O<ue;O++)D[O-1]=arguments[O];Z.fn.apply(Z.context,D)}else{var Se,Ye=Z.length;for(O=0;O<Ye;O++)switch(Z[O].once&&this.removeListener(m,Z[O].fn,void 0,!0),ue){case 1:Z[O].fn.call(Z[O].context);break;case 2:Z[O].fn.call(Z[O].context,p);break;case 3:Z[O].fn.call(Z[O].context,p,g);break;case 4:Z[O].fn.call(Z[O].context,p,g,_);break;default:if(!D)for(Se=1,D=new Array(ue-1);Se<ue;Se++)D[Se-1]=arguments[Se];Z[O].fn.apply(Z[O].context,D)}}return!0},u.prototype.on=function(m,p,g){return n(this,m,p,g,!1)},u.prototype.once=function(m,p,g){return n(this,m,p,g,!0)},u.prototype.removeListener=function(m,p,g,_){var A=r?r+m:m;if(!this._events[A])return this;if(!p)return a(this,A),this;var C=this._events[A];if(C.fn)C.fn!==p||_&&!C.once||g&&C.context!==g||a(this,A);else{for(var N=0,D=[],O=C.length;N<O;N++)(C[N].fn!==p||_&&!C[N].once||g&&C[N].context!==g)&&D.push(C[N]);D.length?this._events[A]=D.length===1?D[0]:D:a(this,A)}return this},u.prototype.removeAllListeners=function(m){var p;return m?(p=r?r+m:m,this._events[p]&&a(this,p)):(this._events=new o,this._eventsCount=0),this},u.prototype.off=u.prototype.removeListener,u.prototype.addListener=u.prototype.on,u.prefixed=r,u.EventEmitter=u,t!==void 0&&(t.exports=u)}}),Ey=fy(gy(),1),nE=Symbol("instance"),Yx=Symbol("abortCtrl"),bu=Symbol("cacheResult"),Zh=class{constructor(i,t,e){this.oldState=i,this.newState=t,this.action=e,this.aborted=!1}abort(i){this.aborted=!0,oc.call(i,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},Cu=class extends Error{constructor(i,t,e){super(t),this.state=i,this.message=t,this.cause=e}};function _y(i){return typeof i=="object"&&i&&"then"in i}var ic=new Map;function Io(i,t,e={}){return(r,o,s)=>{let n=e.action||o;if(!e.context){let u=ic.get(r)||[];ic.has(r)||ic.set(r,u),u.push({from:i,to:t,action:n})}let a=s.value;s.value=function(...u){let m=this;if(e.context&&(m=Xt.get(typeof e.context=="function"?e.context.call(this,...u):e.context)),m.state===t)return e.sync?m[bu]:Promise.resolve(m[bu]);m.state instanceof Zh&&m.state.action==e.abortAction&&m.state.abort(m);let p=null;Array.isArray(i)?i.length==0?m.state instanceof Zh&&m.state.abort(m):typeof m.state=="string"&&i.includes(m.state)||(p=new Cu(m._state,`${m.name} ${n} to ${t} failed: current state ${m._state} not from ${i.join("|")}`)):i!==m.state&&(p=new Cu(m._state,`${m.name} ${n} to ${t} failed: current state ${m._state} not from ${i}`));let g=D=>{if(e.fail&&e.fail.call(this,D),e.sync){if(e.ignoreError)return D;throw D}return e.ignoreError?Promise.resolve(D):Promise.reject(D)};if(p)return g(p);let _=m.state,A=new Zh(_,t,n);oc.call(m,A);let C=D=>{var O;return m[bu]=D,A.aborted||(oc.call(m,t),(O=e.success)===null||O===void 0||O.call(this,m[bu])),D},N=D=>(oc.call(m,_,D),g(D));try{let D=a.apply(this,u);return _y(D)?D.then(C).catch(N):e.sync?C(D):Promise.resolve(C(D))}catch(D){return N(new Cu(m._state,`${m.name} ${n} from ${i} to ${t} failed: ${D}`,D instanceof Error?D:new Error(String(D))))}}}}function Ty(...i){return(t,e,r)=>{let o=r.value,s=e;r.value=function(...n){if(!i.includes(this.state.toString()))throw new Cu(this.state,`${this.name} ${s} failed: current state ${this.state} not in ${i}`);return o.apply(this,n)}}}var Iy=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 oc(i,t){let e=this._state;this._state=i;let r=i.toString();i&&this.emit(r,e),this.emit(Xt.STATECHANGED,i,e,t),this.updateDevTools({value:i,old:e,err:t instanceof Error?t.message:String(t)})}var Xt=class _r extends Ey.default{constructor(t,e,r){super(),this.name=t,this.groupName=e,this._state=_r.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[nE];o?this.name=o.name+"-"+o.count++:r[nE]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let t=Object.getPrototypeOf(this),e=ic.get(t)||[],r=new Set,o=[],s=[],n=new Set,a=Object.getPrototypeOf(t);ic.has(a)&&(a.stateDiagram.forEach(m=>r.add(m)),a.allStates.forEach(m=>n.add(m))),e.forEach(({from:m,to:p,action:g})=>{typeof m=="string"?o.push({from:m,to:p,action:g}):m.length?m.forEach(_=>{o.push({from:_,to:p,action:g})}):s.push({to:p,action:g})}),o.forEach(({from:m,to:p,action:g})=>{n.add(m),n.add(p),n.add(g+"ing"),r.add(`${m} --> ${g}ing : ${g}`),r.add(`${g}ing --> ${p} : ${g} \u{1F7E2}`),r.add(`${g}ing --> ${m} : ${g} \u{1F534}`)}),s.forEach(({to:m,action:p})=>{r.add(`${p}ing --> ${m} : ${p} \u{1F7E2}`),n.forEach(g=>{g!==m&&r.add(`${g} --> ${p}ing : ${p}`)})});let u=[...r];return Object.defineProperties(t,{stateDiagram:{value:u},allStates:{value:n}}),u}static get(t){let e;return typeof t=="string"?(e=_r.instances.get(t),e||_r.instances.set(t,e=new _r(t,void 0,Object.create(_r.prototype)))):(e=_r.instances2.get(t),e||_r.instances2.set(t,e=new _r(t.constructor.name,void 0,Object.create(_r.prototype)))),e}static getState(t){var e;return(e=_r.get(t))===null||e===void 0?void 0:e.state}updateDevTools(t={}){Iy(_r.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(t){oc.call(this,t)}};Xt.STATECHANGED="stateChanged",Xt.UPDATEAFSM="updateAFSM",Xt.INIT="[*]",Xt.ON="on",Xt.OFF="off",Xt.instances=new Map,Xt.instances2=new WeakMap;var Rn=class extends Xt{constructor(){super(...arguments),$r(this,"decoder"),$r(this,"config")}initialize(){return y(this,null,function*(){this.decoder=new VideoDecoder({output:i=>{this.emit("videoFrame",i)},error:i=>{this.close(),this.emit("error",i)}})})}configure(i){this.config=i,this.decoder.configure(vu(Ru({},i),{codec:this.getCodec(i)}))}getCodec(i){switch(i.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 i.codec}}decode(i){this.decoder.state==="configured"&&this.decoder.decode(new EncodedVideoChunk(i))}flush(){this.decoder.flush()}reset(){this.decoder.reset()}close(){this.decoder.state!=="closed"&&this.decoder.close()}};function Sy(){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"),n=0,a=0,u={wasmBinary:o,postRun:()=>{i=new u.VideoDecoder({videoInfo(m,p){n=m,a=p,console.log("video info",m,p)},yuvData(m,p){let g=n*a,_=g>>2,A=u.HEAPU32[m>>2],C=u.HEAPU32[1+(m>>2)],N=u.HEAPU32[2+(m>>2)],D=u.HEAPU8.subarray(A,A+g),O=u.HEAPU8.subarray(C,C+_),Z=u.HEAPU8.subarray(N,N+_),ue=new Uint8Array(g+_+_);ue.set(D),ue.set(O,g),ue.set(Z,g+_);let Se=new VideoFrame(ue,{codedWidth:n,codedHeight:a,format:"I420",timestamp:p});e?(s==null||s.drawImage(Se,0,0,e.width,e.height),s==null||s.commit()):self.postMessage({type:"yuvData",videoFrame:Se},[Se])}}),self.postMessage({type:"ready"})}};Function("var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;return "+r)()(u)}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:"")}}}Ui([Io([Xt.INIT,"closed"],"initialized")],Rn.prototype,"initialize",1),Ui([Io("initialized","configured",{sync:!0})],Rn.prototype,"configure",1),Ui([Ty("configured")],Rn.prototype,"decode",1),Ui([Io([],Xt.INIT,{sync:!0})],Rn.prototype,"reset",1),Ui([Io([],"closed",{ignoreError:!0,sync:!0})],Rn.prototype,"close",1);var rc=class extends Xt{constructor(i,t,e=!1,r,o=!1){super(),this.createModule=i,this.wasmBinary=t,this.workerMode=e,this.canvas=r,this.yuvMode=o,$r(this,"worker"),$r(this,"decoder"),$r(this,"config"),$r(this,"module",{}),$r(this,"width",0),$r(this,"height",0)}initialize(i){return y(this,null,function*(){var t;if(this.workerMode){let r=new RegExp("\\{(.+)\\}","s").exec(Sy.toString())[1];this.worker=new Worker(URL.createObjectURL(new Blob([r],{type:"text/javascript"})));let o=(t=this.canvas)==null?void 0:t.transferControlToOffscreen(),s=yield this.wasmBinary;return console.warn("worker mode",s),this.worker.postMessage({type:"init",canvas:o,wasmScript:this.createModule.toString(),wasmBinary:s},o?[o,s]:[s]),new Promise(n=>{this.worker.onmessage=a=>{if(a.data.type==="ready")delete this.wasmBinary,n(),console.warn("worker mode initialize success");else if(a.data.type==="yuvData"){let{videoFrame:u}=a.data;this.emit("videoFrame",u)}}})}let e=this.module;return this.wasmBinary&&(e.wasmBinary=yield this.wasmBinary),e.print=r=>console.log(r),e.printErr=r=>console.log(`[JS] ERROR: ${r}`),e.onAbort=()=>console.log("[JS] FATAL: WASM ABORTED"),new Promise(r=>{e.postRun=o=>{this.decoder=new this.module.VideoDecoder(this),console.log("video soft decoder initialize success"),r()},i&&Object.assign(e,i),this.createModule(e)})})}configure(i){var t,e,r;this.config=i;let o=this.config.codec.startsWith("avc")?"avc":"hevc",s=this.config.description?o=="avc"?"avcc":"hvcc":"annexb";(e=this.decoder)==null||e.setCodec(o,s,(t=this.config.description)!=null?t:""),(r=this.worker)==null||r.postMessage({type:"setCodec",codec:o,format:s,description:this.config.description})}decode(i){var t,e;(t=this.decoder)==null||t.decode(i.data,i.type=="key",i.timestamp),this.state==="configured"&&((e=this.worker)==null||e.postMessage({type:"decode",packet:i}))}flush(){}reset(){this.config=void 0,this.decoder&&this.decoder.clear()}close(){this.removeAllListeners(),this.decoder&&(this.decoder.clear(),this.decoder.delete())}videoInfo(i,t){this.width=i,this.height=t;let e={width:i,height:t};this.emit("videoCodecInfo",e)}yuvData(i,t){if(!this.module)return;let e=this.width*this.height,r=e>>2,o=this.module.HEAPU32[i>>2],s=this.module.HEAPU32[1+(i>>2)],n=this.module.HEAPU32[2+(i>>2)],a=this.module.HEAPU8.subarray(o,o+e),u=this.module.HEAPU8.subarray(s,s+r),m=this.module.HEAPU8.subarray(n,n+r);if(this.yuvMode)return void this.emit("videoFrame",{y:a,u,v:m,timestamp:t});let p=new Uint8Array(e+r+r);p.set(a),p.set(u,e),p.set(m,e+r),this.emit("videoFrame",new VideoFrame(p,{codedWidth:this.width,codedHeight:this.height,format:"I420",timestamp:t}))}errorInfo(i){let t={errMsg:i};this.emit("error",t)}};Ui([Io([Xt.INIT,"closed"],"initialized")],rc.prototype,"initialize",1),Ui([Io("initialized","configured",{sync:!0})],rc.prototype,"configure",1),Ui([Io([],Xt.INIT,{sync:!0})],rc.prototype,"reset",1),Ui([Io([],"closed",{sync:!0})],rc.prototype,"close",1);var yy=(()=>{var i=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return function(t={}){var e,r,o=t;o.ready=new Promise((c,d)=>{e=c,r=d});var s,n,a,u=Object.assign({},o),m="./this.program",p=typeof window=="object",g=typeof importScripts=="function",_=(typeof process=="object"&&typeof process.versions=="object"&&process.versions.node,"");(p||g)&&(g?_=self.location.href:typeof document!="undefined"&&document.currentScript&&(_=document.currentScript.src),i&&(_=i),_=_.indexOf("blob:")!==0?_.substr(0,_.replace(/[?#].*/,"").lastIndexOf("/")+1):"",s=c=>{var d=new XMLHttpRequest;return d.open("GET",c,!1),d.send(null),d.responseText},g&&(a=c=>{var d=new XMLHttpRequest;return d.open("GET",c,!1),d.responseType="arraybuffer",d.send(null),new Uint8Array(d.response)}),n=(c,d,h)=>{var f=new XMLHttpRequest;f.open("GET",c,!0),f.responseType="arraybuffer",f.onload=()=>{f.status==200||f.status==0&&f.response?d(f.response):h()},f.onerror=h,f.send(null)});var A,C=o.print||console.log.bind(console),N=o.printErr||console.error.bind(console);Object.assign(o,u),u=null,o.arguments&&o.arguments,o.thisProgram&&(m=o.thisProgram),o.quit&&o.quit,o.wasmBinary&&(A=o.wasmBinary);var D,O;o.noExitRuntime,typeof WebAssembly!="object"&&Hr("no native wasm support detected");var Z,ue,Se,Ye,H,Pe,On,xn,Pn,kn=!1,Br=[],bs=[],Bi=[],cr=0,ci=null,di=null;function ie(c){cr++,o.monitorRunDependencies&&o.monitorRunDependencies(cr)}function No(c){if(cr--,o.monitorRunDependencies&&o.monitorRunDependencies(cr),cr==0&&(ci!==null&&(clearInterval(ci),ci=null),di)){var d=di;di=null,d()}}function Hr(c){o.onAbort&&o.onAbort(c),N(c="Aborted("+c+")"),kn=!0,c+=". Build with -sASSERTIONS for more info.";var d=new WebAssembly.RuntimeError(c);throw r(d),d}var ui,Ln,Ee,Ke;function kt(c){return c.startsWith("data:application/octet-stream;base64,")}function J(c){if(c==ui&&A)return new Uint8Array(A);if(a)return a(c);throw"both async and sync fetching of the wasm failed"}function Wr(c,d,h){return function(f){return A||!p&&!g||typeof fetch!="function"?Promise.resolve().then(()=>J(f)):fetch(f,{credentials:"same-origin"}).then(I=>{if(!I.ok)throw"failed to load wasm binary file at '"+f+"'";return I.arrayBuffer()}).catch(()=>J(f))}(c).then(f=>WebAssembly.instantiate(f,d)).then(f=>f).then(h,f=>{N("failed to asynchronously prepare wasm: "+f),Hr(f)})}kt(ui="videodec.wasm")||(Ln=ui,ui=o.locateFile?o.locateFile(Ln,_):_+Ln);var Hi=c=>{for(;c.length>0;)c.shift()(o)};function Wi(c){this.excPtr=c,this.ptr=c-24,this.set_type=function(d){Pe[this.ptr+4>>2]=d},this.get_type=function(){return Pe[this.ptr+4>>2]},this.set_destructor=function(d){Pe[this.ptr+8>>2]=d},this.get_destructor=function(){return Pe[this.ptr+8>>2]},this.set_caught=function(d){d=d?1:0,Z[this.ptr+12|0]=d},this.get_caught=function(){return Z[this.ptr+12|0]!=0},this.set_rethrown=function(d){d=d?1:0,Z[this.ptr+13|0]=d},this.get_rethrown=function(){return Z[this.ptr+13|0]!=0},this.init=function(d,h){this.set_adjusted_ptr(0),this.set_type(d),this.set_destructor(h)},this.set_adjusted_ptr=function(d){Pe[this.ptr+16>>2]=d},this.get_adjusted_ptr=function(){return Pe[this.ptr+16>>2]},this.get_exception_ptr=function(){if(Gn(this.get_type()))return Pe[this.excPtr>>2];var d=this.get_adjusted_ptr();return d!==0?d:this.excPtr}}var me={isAbs:c=>c.charAt(0)==="/",splitPath:c=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(c).slice(1),normalizeArray:(c,d)=>{for(var h=0,f=c.length-1;f>=0;f--){var I=c[f];I==="."?c.splice(f,1):I===".."?(c.splice(f,1),h++):h&&(c.splice(f,1),h--)}if(d)for(;h;h--)c.unshift("..");return c},normalize:c=>{var d=me.isAbs(c),h=c.substr(-1)==="/";return(c=me.normalizeArray(c.split("/").filter(f=>!!f),!d).join("/"))||d||(c="."),c&&h&&(c+="/"),(d?"/":"")+c},dirname:c=>{var d=me.splitPath(c),h=d[0],f=d[1];return h||f?(f&&(f=f.substr(0,f.length-1)),h+f):"."},basename:c=>{if(c==="/")return"/";var d=(c=(c=me.normalize(c)).replace(/\/$/,"")).lastIndexOf("/");return d===-1?c:c.substr(d+1)},join:function(){var c=Array.prototype.slice.call(arguments);return me.normalize(c.join("/"))},join2:(c,d)=>me.normalize(c+"/"+d)},Un=c=>(Un=(()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return d=>crypto.getRandomValues(d);Hr("initRandomDevice")})())(c),Qt={resolve:function(){for(var c="",d=!1,h=arguments.length-1;h>=-1&&!d;h--){var f=h>=0?arguments[h]:E.cwd();if(typeof f!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!f)return"";c=f+"/"+c,d=me.isAbs(f)}return(d?"/":"")+(c=me.normalizeArray(c.split("/").filter(I=>!!I),!d).join("/"))||"."},relative:(c,d)=>{function h(L){for(var K=0;K<L.length&&L[K]==="";K++);for(var ae=L.length-1;ae>=0&&L[ae]==="";ae--);return K>ae?[]:L.slice(K,ae-K+1)}c=Qt.resolve(c).substr(1),d=Qt.resolve(d).substr(1);for(var f=h(c.split("/")),I=h(d.split("/")),b=Math.min(f.length,I.length),R=b,v=0;v<b;v++)if(f[v]!==I[v]){R=v;break}var U=[];for(v=R;v<f.length;v++)U.push("..");return(U=U.concat(I.slice(R))).join("/")}},Gi=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,Lt=(c,d,h)=>{for(var f=d+h,I=d;c[I]&&!(I>=f);)++I;if(I-d>16&&c.buffer&&Gi)return Gi.decode(c.subarray(d,I));for(var b="";d<I;){var R=c[d++];if(128&R){var v=63&c[d++];if((224&R)!=192){var U=63&c[d++];if((R=(240&R)==224?(15&R)<<12|v<<6|U:(7&R)<<18|v<<12|U<<6|63&c[d++])<65536)b+=String.fromCharCode(R);else{var L=R-65536;b+=String.fromCharCode(55296|L>>10,56320|1023&L)}}else b+=String.fromCharCode((31&R)<<6|v)}else b+=String.fromCharCode(R)}return b},Vn=[],Do=c=>{for(var d=0,h=0;h<c.length;++h){var f=c.charCodeAt(h);f<=127?d++:f<=2047?d+=2:f>=55296&&f<=57343?(d+=4,++h):d+=3}return d},wo=(c,d,h,f)=>{if(!(f>0))return 0;for(var I=h,b=h+f-1,R=0;R<c.length;++R){var v=c.charCodeAt(R);if(v>=55296&&v<=57343&&(v=65536+((1023&v)<<10)|1023&c.charCodeAt(++R)),v<=127){if(h>=b)break;d[h++]=v}else if(v<=2047){if(h+1>=b)break;d[h++]=192|v>>6,d[h++]=128|63&v}else if(v<=65535){if(h+2>=b)break;d[h++]=224|v>>12,d[h++]=128|v>>6&63,d[h++]=128|63&v}else{if(h+3>=b)break;d[h++]=240|v>>18,d[h++]=128|v>>12&63,d[h++]=128|v>>6&63,d[h++]=128|63&v}}return d[h]=0,h-I};function Rs(c,d,h){var f=h>0?h:Do(c)+1,I=new Array(f),b=wo(c,I,0,I.length);return d&&(I.length=b),I}var Ir={ttys:[],init:function(){},shutdown:function(){},register:function(c,d){Ir.ttys[c]={input:[],output:[],ops:d},E.registerDevice(c,Ir.stream_ops)},stream_ops:{open:function(c){var d=Ir.ttys[c.node.rdev];if(!d)throw new E.ErrnoError(43);c.tty=d,c.seekable=!1},close:function(c){c.tty.ops.fsync(c.tty)},fsync:function(c){c.tty.ops.fsync(c.tty)},read:function(c,d,h,f,I){if(!c.tty||!c.tty.ops.get_char)throw new E.ErrnoError(60);for(var b=0,R=0;R<f;R++){var v;try{v=c.tty.ops.get_char(c.tty)}catch(U){throw new E.ErrnoError(29)}if(v===void 0&&b===0)throw new E.ErrnoError(6);if(v==null)break;b++,d[h+R]=v}return b&&(c.node.timestamp=Date.now()),b},write:function(c,d,h,f,I){if(!c.tty||!c.tty.ops.put_char)throw new E.ErrnoError(60);try{for(var b=0;b<f;b++)c.tty.ops.put_char(c.tty,d[h+b])}catch(R){throw new E.ErrnoError(29)}return f&&(c.node.timestamp=Date.now()),b}},default_tty_ops:{get_char:function(c){return(()=>{if(!Vn.length){var d=null;if(typeof window!="undefined"&&typeof window.prompt=="function"?(d=window.prompt("Input: "))!==null&&(d+=`
|
|
51
51
|
`):typeof readline=="function"&&(d=readline())!==null&&(d+=`
|
|
52
|
-
`),!d)return null;Ln=As(d,!0)}return Ln.shift()})()},put_char:function(c,d){d===null||d===10?(C(Pt(c.output,0)),c.output=[]):d!=0&&c.output.push(d)},fsync:function(c){c.output&&c.output.length>0&&(C(Pt(c.output,0)),c.output=[])},ioctl_tcgets:function(c){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(c,d,h){return 0},ioctl_tiocgwinsz:function(c){return[24,80]}},default_tty1_ops:{put_char:function(c,d){d===null||d===10?(D(Pt(c.output,0)),c.output=[]):d!=0&&c.output.push(d)},fsync:function(c){c.output&&c.output.length>0&&(D(Pt(c.output,0)),c.output=[])}}},Un=c=>{$r()},Re={ops_table:null,mount:c=>Re.createNode(null,"/",16895,0),createNode(c,d,h,f){if(E.isBlkdev(h)||E.isFIFO(h))throw new E.ErrnoError(63);Re.ops_table||(Re.ops_table={dir:{node:{getattr:Re.node_ops.getattr,setattr:Re.node_ops.setattr,lookup:Re.node_ops.lookup,mknod:Re.node_ops.mknod,rename:Re.node_ops.rename,unlink:Re.node_ops.unlink,rmdir:Re.node_ops.rmdir,readdir:Re.node_ops.readdir,symlink:Re.node_ops.symlink},stream:{llseek:Re.stream_ops.llseek}},file:{node:{getattr:Re.node_ops.getattr,setattr:Re.node_ops.setattr},stream:{llseek:Re.stream_ops.llseek,read:Re.stream_ops.read,write:Re.stream_ops.write,allocate:Re.stream_ops.allocate,mmap:Re.stream_ops.mmap,msync:Re.stream_ops.msync}},link:{node:{getattr:Re.node_ops.getattr,setattr:Re.node_ops.setattr,readlink:Re.node_ops.readlink},stream:{}},chrdev:{node:{getattr:Re.node_ops.getattr,setattr:Re.node_ops.setattr},stream:E.chrdev_stream_ops}});var S=E.createNode(c,d,h,f);return E.isDir(S.mode)?(S.node_ops=Re.ops_table.dir.node,S.stream_ops=Re.ops_table.dir.stream,S.contents={}):E.isFile(S.mode)?(S.node_ops=Re.ops_table.file.node,S.stream_ops=Re.ops_table.file.stream,S.usedBytes=0,S.contents=null):E.isLink(S.mode)?(S.node_ops=Re.ops_table.link.node,S.stream_ops=Re.ops_table.link.stream):E.isChrdev(S.mode)&&(S.node_ops=Re.ops_table.chrdev.node,S.stream_ops=Re.ops_table.chrdev.stream),S.timestamp=Date.now(),c&&(c.contents[d]=S,c.timestamp=S.timestamp),S},getFileDataAsTypedArray:c=>c.contents?c.contents.subarray?c.contents.subarray(0,c.usedBytes):new Uint8Array(c.contents):new Uint8Array(0),expandFileStorage(c,d){var h=c.contents?c.contents.length:0;if(!(h>=d)){d=Math.max(d,h*(h<1048576?2:1.125)>>>0),h!=0&&(d=Math.max(d,256));var f=c.contents;c.contents=new Uint8Array(d),c.usedBytes>0&&c.contents.set(f.subarray(0,c.usedBytes),0)}},resizeFileStorage(c,d){if(c.usedBytes!=d)if(d==0)c.contents=null,c.usedBytes=0;else{var h=c.contents;c.contents=new Uint8Array(d),h&&c.contents.set(h.subarray(0,Math.min(d,c.usedBytes))),c.usedBytes=d}},node_ops:{getattr(c){var d={};return d.dev=E.isChrdev(c.mode)?c.id:1,d.ino=c.id,d.mode=c.mode,d.nlink=1,d.uid=0,d.gid=0,d.rdev=c.rdev,E.isDir(c.mode)?d.size=4096:E.isFile(c.mode)?d.size=c.usedBytes:E.isLink(c.mode)?d.size=c.link.length:d.size=0,d.atime=new Date(c.timestamp),d.mtime=new Date(c.timestamp),d.ctime=new Date(c.timestamp),d.blksize=4096,d.blocks=Math.ceil(d.size/d.blksize),d},setattr(c,d){d.mode!==void 0&&(c.mode=d.mode),d.timestamp!==void 0&&(c.timestamp=d.timestamp),d.size!==void 0&&Re.resizeFileStorage(c,d.size)},lookup(c,d){throw E.genericErrors[44]},mknod:(c,d,h,f)=>Re.createNode(c,d,h,f),rename(c,d,h){if(E.isDir(c.mode)){var f;try{f=E.lookupNode(d,h)}catch(b){}if(f)for(var S in f.contents)throw new E.ErrnoError(55)}delete c.parent.contents[c.name],c.parent.timestamp=Date.now(),c.name=h,d.contents[h]=c,d.timestamp=c.parent.timestamp,c.parent=d},unlink(c,d){delete c.contents[d],c.timestamp=Date.now()},rmdir(c,d){var h=E.lookupNode(c,d);for(var f in h.contents)throw new E.ErrnoError(55);delete c.contents[d],c.timestamp=Date.now()},readdir(c){var d=[".",".."];for(var h in c.contents)c.contents.hasOwnProperty(h)&&d.push(h);return d},symlink(c,d,h){var f=Re.createNode(c,d,41471,0);return f.link=h,f},readlink(c){if(!E.isLink(c.mode))throw new E.ErrnoError(28);return c.link}},stream_ops:{read(c,d,h,f,S){var b=c.node.contents;if(S>=c.node.usedBytes)return 0;var R=Math.min(c.node.usedBytes-S,f);if(R>8&&b.subarray)d.set(b.subarray(S,S+R),h);else for(var v=0;v<R;v++)d[h+v]=b[S+v];return R},write(c,d,h,f,S,b){if(!f)return 0;var R=c.node;if(R.timestamp=Date.now(),d.subarray&&(!R.contents||R.contents.subarray)){if(b)return R.contents=d.subarray(h,h+f),R.usedBytes=f,f;if(R.usedBytes===0&&S===0)return R.contents=d.slice(h,h+f),R.usedBytes=f,f;if(S+f<=R.usedBytes)return R.contents.set(d.subarray(h,h+f),S),f}if(Re.expandFileStorage(R,S+f),R.contents.subarray&&d.subarray)R.contents.set(d.subarray(h,h+f),S);else for(var v=0;v<f;v++)R.contents[S+v]=d[h+v];return R.usedBytes=Math.max(R.usedBytes,S+f),f},llseek(c,d,h){var f=d;if(h===1?f+=c.position:h===2&&E.isFile(c.node.mode)&&(f+=c.node.usedBytes),f<0)throw new E.ErrnoError(28);return f},allocate(c,d,h){Re.expandFileStorage(c.node,d+h),c.node.usedBytes=Math.max(c.node.usedBytes,d+h)},mmap(c,d,h,f,S){if(!E.isFile(c.node.mode))throw new E.ErrnoError(43);var b,R,v=c.node.contents;if(2&S||v.buffer!==Y.buffer){if((h>0||h+d<v.length)&&(v=v.subarray?v.subarray(h,h+d):Array.prototype.slice.call(v,h,h+d)),R=!0,!(b=Un()))throw new E.ErrnoError(48);Y.set(v,b)}else R=!1,b=v.byteOffset;return{ptr:b,allocated:R}},msync:(c,d,h,f,S)=>(Re.stream_ops.write(c,d,0,f,h,!1),0)}},pl=(c,d,h,f)=>{var S=f?"":`al ${c}`;n(c,b=>{var R;R=`Loading data file "${c}" failed (no arrayBuffer).`,b||$r(R),d(new Uint8Array(b)),S&&Ao()},b=>{if(!h)throw`Loading data file "${c}" failed.`;h()}),S&&ys()},fl=o.preloadPlugins||[];function ci(c,d){var h=0;return c&&(h|=365),d&&(h|=146),h}var E={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(c,d={})=>{if(!(c=Xt.resolve(c)))return{path:"",node:null};if((d=Object.assign({follow_mount:!0,recurse_count:0},d)).recurse_count>8)throw new E.ErrnoError(32);for(var h=c.split("/").filter(L=>!!L),f=E.root,S="/",b=0;b<h.length;b++){var R=b===h.length-1;if(R&&d.parent)break;if(f=E.lookupNode(f,h[b]),S=me.join2(S,h[b]),E.isMountpoint(f)&&(!R||R&&d.follow_mount)&&(f=f.mounted.root),!R||d.follow)for(var v=0;E.isLink(f.mode);){var U=E.readlink(S);if(S=Xt.resolve(me.dirname(S),U),f=E.lookupPath(S,{recurse_count:d.recurse_count+1}).node,v++>40)throw new E.ErrnoError(32)}}return{path:S,node:f}},getPath:c=>{for(var d;;){if(E.isRoot(c)){var h=c.mount.mountpoint;return d?h[h.length-1]!=="/"?`${h}/${d}`:h+d:h}d=d?`${c.name}/${d}`:c.name,c=c.parent}},hashName:(c,d)=>{for(var h=0,f=0;f<d.length;f++)h=(h<<5)-h+d.charCodeAt(f)|0;return(c+h>>>0)%E.nameTable.length},hashAddNode:c=>{var d=E.hashName(c.parent.id,c.name);c.name_next=E.nameTable[d],E.nameTable[d]=c},hashRemoveNode:c=>{var d=E.hashName(c.parent.id,c.name);if(E.nameTable[d]===c)E.nameTable[d]=c.name_next;else for(var h=E.nameTable[d];h;){if(h.name_next===c){h.name_next=c.name_next;break}h=h.name_next}},lookupNode:(c,d)=>{var h=E.mayLookup(c);if(h)throw new E.ErrnoError(h,c);for(var f=E.hashName(c.id,d),S=E.nameTable[f];S;S=S.name_next){var b=S.name;if(S.parent.id===c.id&&b===d)return S}return E.lookup(c,d)},createNode:(c,d,h,f)=>{var S=new E.FSNode(c,d,h,f);return E.hashAddNode(S),S},destroyNode:c=>{E.hashRemoveNode(c)},isRoot:c=>c===c.parent,isMountpoint:c=>!!c.mounted,isFile:c=>(61440&c)==32768,isDir:c=>(61440&c)==16384,isLink:c=>(61440&c)==40960,isChrdev:c=>(61440&c)==8192,isBlkdev:c=>(61440&c)==24576,isFIFO:c=>(61440&c)==4096,isSocket:c=>!(49152&~c),flagsToPermissionString:c=>{var d=["r","w","rw"][3&c];return 512&c&&(d+="w"),d},nodePermissions:(c,d)=>E.ignorePermissions||(!d.includes("r")||292&c.mode)&&(!d.includes("w")||146&c.mode)&&(!d.includes("x")||73&c.mode)?0:2,mayLookup:c=>{var d=E.nodePermissions(c,"x");return d||(c.node_ops.lookup?0:2)},mayCreate:(c,d)=>{try{return E.lookupNode(c,d),20}catch(h){}return E.nodePermissions(c,"wx")},mayDelete:(c,d,h)=>{var f;try{f=E.lookupNode(c,d)}catch(b){return b.errno}var S=E.nodePermissions(c,"wx");if(S)return S;if(h){if(!E.isDir(f.mode))return 54;if(E.isRoot(f)||E.getPath(f)===E.cwd())return 10}else if(E.isDir(f.mode))return 31;return 0},mayOpen:(c,d)=>c?E.isLink(c.mode)?32:E.isDir(c.mode)&&(E.flagsToPermissionString(d)!=="r"||512&d)?31:E.nodePermissions(c,E.flagsToPermissionString(d)):44,MAX_OPEN_FDS:4096,nextfd:()=>{for(var c=0;c<=E.MAX_OPEN_FDS;c++)if(!E.streams[c])return c;throw new E.ErrnoError(33)},getStreamChecked:c=>{var d=E.getStream(c);if(!d)throw new E.ErrnoError(8);return d},getStream:c=>E.streams[c],createStream:(c,d=-1)=>(E.FSStream||(E.FSStream=function(){this.shared={}},E.FSStream.prototype={},Object.defineProperties(E.FSStream.prototype,{object:{get(){return this.node},set(h){this.node=h}},isRead:{get(){return(2097155&this.flags)!=1}},isWrite:{get(){return!!(2097155&this.flags)}},isAppend:{get(){return 1024&this.flags}},flags:{get(){return this.shared.flags},set(h){this.shared.flags=h}},position:{get(){return this.shared.position},set(h){this.shared.position=h}}})),c=Object.assign(new E.FSStream,c),d==-1&&(d=E.nextfd()),c.fd=d,E.streams[d]=c,c),closeStream:c=>{E.streams[c]=null},chrdev_stream_ops:{open:c=>{var d=E.getDevice(c.node.rdev);c.stream_ops=d.stream_ops,c.stream_ops.open&&c.stream_ops.open(c)},llseek:()=>{throw new E.ErrnoError(70)}},major:c=>c>>8,minor:c=>255&c,makedev:(c,d)=>c<<8|d,registerDevice:(c,d)=>{E.devices[c]={stream_ops:d}},getDevice:c=>E.devices[c],getMounts:c=>{for(var d=[],h=[c];h.length;){var f=h.pop();d.push(f),h.push.apply(h,f.mounts)}return d},syncfs:(c,d)=>{typeof c=="function"&&(d=c,c=!1),E.syncFSRequests++,E.syncFSRequests>1&&D(`warning: ${E.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var h=E.getMounts(E.root.mount),f=0;function S(R){return E.syncFSRequests--,d(R)}function b(R){if(R)return b.errored?void 0:(b.errored=!0,S(R));++f>=h.length&&S(null)}h.forEach(R=>{if(!R.type.syncfs)return b(null);R.type.syncfs(R,c,b)})},mount:(c,d,h)=>{var f,S=h==="/",b=!h;if(S&&E.root)throw new E.ErrnoError(10);if(!S&&!b){var R=E.lookupPath(h,{follow_mount:!1});if(h=R.path,f=R.node,E.isMountpoint(f))throw new E.ErrnoError(10);if(!E.isDir(f.mode))throw new E.ErrnoError(54)}var v={type:c,opts:d,mountpoint:h,mounts:[]},U=c.mount(v);return U.mount=v,v.root=U,S?E.root=U:f&&(f.mounted=v,f.mount&&f.mount.mounts.push(v)),U},unmount:c=>{var d=E.lookupPath(c,{follow_mount:!1});if(!E.isMountpoint(d.node))throw new E.ErrnoError(28);var h=d.node,f=h.mounted,S=E.getMounts(f);Object.keys(E.nameTable).forEach(R=>{for(var v=E.nameTable[R];v;){var U=v.name_next;S.includes(v.mount)&&E.destroyNode(v),v=U}}),h.mounted=null;var b=h.mount.mounts.indexOf(f);h.mount.mounts.splice(b,1)},lookup:(c,d)=>c.node_ops.lookup(c,d),mknod:(c,d,h)=>{var f=E.lookupPath(c,{parent:!0}).node,S=me.basename(c);if(!S||S==="."||S==="..")throw new E.ErrnoError(28);var b=E.mayCreate(f,S);if(b)throw new E.ErrnoError(b);if(!f.node_ops.mknod)throw new E.ErrnoError(63);return f.node_ops.mknod(f,S,d,h)},create:(c,d)=>(d=d!==void 0?d:438,d&=4095,d|=32768,E.mknod(c,d,0)),mkdir:(c,d)=>(d=d!==void 0?d:511,d&=1023,d|=16384,E.mknod(c,d,0)),mkdirTree:(c,d)=>{for(var h=c.split("/"),f="",S=0;S<h.length;++S)if(h[S]){f+="/"+h[S];try{E.mkdir(f,d)}catch(b){if(b.errno!=20)throw b}}},mkdev:(c,d,h)=>(h===void 0&&(h=d,d=438),d|=8192,E.mknod(c,d,h)),symlink:(c,d)=>{if(!Xt.resolve(c))throw new E.ErrnoError(44);var h=E.lookupPath(d,{parent:!0}).node;if(!h)throw new E.ErrnoError(44);var f=me.basename(d),S=E.mayCreate(h,f);if(S)throw new E.ErrnoError(S);if(!h.node_ops.symlink)throw new E.ErrnoError(63);return h.node_ops.symlink(h,f,c)},rename:(c,d)=>{var h,f,S=me.dirname(c),b=me.dirname(d),R=me.basename(c),v=me.basename(d);if(h=E.lookupPath(c,{parent:!0}).node,f=E.lookupPath(d,{parent:!0}).node,!h||!f)throw new E.ErrnoError(44);if(h.mount!==f.mount)throw new E.ErrnoError(75);var U,L=E.lookupNode(h,R),Z=Xt.relative(c,b);if(Z.charAt(0)!==".")throw new E.ErrnoError(28);if((Z=Xt.relative(d,S)).charAt(0)!==".")throw new E.ErrnoError(55);try{U=E.lookupNode(f,v)}catch(ne){}if(L!==U){var ae=E.isDir(L.mode),ce=E.mayDelete(h,R,ae);if(ce)throw new E.ErrnoError(ce);if(ce=U?E.mayDelete(f,v,ae):E.mayCreate(f,v))throw new E.ErrnoError(ce);if(!h.node_ops.rename)throw new E.ErrnoError(63);if(E.isMountpoint(L)||U&&E.isMountpoint(U))throw new E.ErrnoError(10);if(f!==h&&(ce=E.nodePermissions(h,"w")))throw new E.ErrnoError(ce);E.hashRemoveNode(L);try{h.node_ops.rename(L,f,v)}catch(ne){throw ne}finally{E.hashAddNode(L)}}},rmdir:c=>{var d=E.lookupPath(c,{parent:!0}).node,h=me.basename(c),f=E.lookupNode(d,h),S=E.mayDelete(d,h,!0);if(S)throw new E.ErrnoError(S);if(!d.node_ops.rmdir)throw new E.ErrnoError(63);if(E.isMountpoint(f))throw new E.ErrnoError(10);d.node_ops.rmdir(d,h),E.destroyNode(f)},readdir:c=>{var d=E.lookupPath(c,{follow:!0}).node;if(!d.node_ops.readdir)throw new E.ErrnoError(54);return d.node_ops.readdir(d)},unlink:c=>{var d=E.lookupPath(c,{parent:!0}).node;if(!d)throw new E.ErrnoError(44);var h=me.basename(c),f=E.lookupNode(d,h),S=E.mayDelete(d,h,!1);if(S)throw new E.ErrnoError(S);if(!d.node_ops.unlink)throw new E.ErrnoError(63);if(E.isMountpoint(f))throw new E.ErrnoError(10);d.node_ops.unlink(d,h),E.destroyNode(f)},readlink:c=>{var d=E.lookupPath(c).node;if(!d)throw new E.ErrnoError(44);if(!d.node_ops.readlink)throw new E.ErrnoError(28);return Xt.resolve(E.getPath(d.parent),d.node_ops.readlink(d))},stat:(c,d)=>{var h=E.lookupPath(c,{follow:!d}).node;if(!h)throw new E.ErrnoError(44);if(!h.node_ops.getattr)throw new E.ErrnoError(63);return h.node_ops.getattr(h)},lstat:c=>E.stat(c,!0),chmod:(c,d,h)=>{var f;if(typeof c=="string"?f=E.lookupPath(c,{follow:!h}).node:f=c,!f.node_ops.setattr)throw new E.ErrnoError(63);f.node_ops.setattr(f,{mode:4095&d|-4096&f.mode,timestamp:Date.now()})},lchmod:(c,d)=>{E.chmod(c,d,!0)},fchmod:(c,d)=>{var h=E.getStreamChecked(c);E.chmod(h.node,d)},chown:(c,d,h,f)=>{var S;if(typeof c=="string"?S=E.lookupPath(c,{follow:!f}).node:S=c,!S.node_ops.setattr)throw new E.ErrnoError(63);S.node_ops.setattr(S,{timestamp:Date.now()})},lchown:(c,d,h)=>{E.chown(c,d,h,!0)},fchown:(c,d,h)=>{var f=E.getStreamChecked(c);E.chown(f.node,d,h)},truncate:(c,d)=>{if(d<0)throw new E.ErrnoError(28);var h;if(typeof c=="string"?h=E.lookupPath(c,{follow:!0}).node:h=c,!h.node_ops.setattr)throw new E.ErrnoError(63);if(E.isDir(h.mode))throw new E.ErrnoError(31);if(!E.isFile(h.mode))throw new E.ErrnoError(28);var f=E.nodePermissions(h,"w");if(f)throw new E.ErrnoError(f);h.node_ops.setattr(h,{size:d,timestamp:Date.now()})},ftruncate:(c,d)=>{var h=E.getStreamChecked(c);if(!(2097155&h.flags))throw new E.ErrnoError(28);E.truncate(h.node,d)},utime:(c,d,h)=>{var f=E.lookupPath(c,{follow:!0}).node;f.node_ops.setattr(f,{timestamp:Math.max(d,h)})},open:(c,d,h)=>{if(c==="")throw new E.ErrnoError(44);var f;if(h=h===void 0?438:h,h=64&(d=typeof d=="string"?(function(v){var U={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[v];if(U===void 0)throw new Error(`Unknown file open mode: ${v}`);return U})(d):d)?4095&h|32768:0,typeof c=="object")f=c;else{c=me.normalize(c);try{f=E.lookupPath(c,{follow:!(131072&d)}).node}catch(v){}}var S=!1;if(64&d)if(f){if(128&d)throw new E.ErrnoError(20)}else f=E.mknod(c,h,0),S=!0;if(!f)throw new E.ErrnoError(44);if(E.isChrdev(f.mode)&&(d&=-513),65536&d&&!E.isDir(f.mode))throw new E.ErrnoError(54);if(!S){var b=E.mayOpen(f,d);if(b)throw new E.ErrnoError(b)}512&d&&!S&&E.truncate(f,0),d&=-131713;var R=E.createStream({node:f,path:E.getPath(f),flags:d,seekable:!0,position:0,stream_ops:f.stream_ops,ungotten:[],error:!1});return R.stream_ops.open&&R.stream_ops.open(R),!o.logReadFiles||1&d||(E.readFiles||(E.readFiles={}),c in E.readFiles||(E.readFiles[c]=1)),R},close:c=>{if(E.isClosed(c))throw new E.ErrnoError(8);c.getdents&&(c.getdents=null);try{c.stream_ops.close&&c.stream_ops.close(c)}catch(d){throw d}finally{E.closeStream(c.fd)}c.fd=null},isClosed:c=>c.fd===null,llseek:(c,d,h)=>{if(E.isClosed(c))throw new E.ErrnoError(8);if(!c.seekable||!c.stream_ops.llseek)throw new E.ErrnoError(70);if(h!=0&&h!=1&&h!=2)throw new E.ErrnoError(28);return c.position=c.stream_ops.llseek(c,d,h),c.ungotten=[],c.position},read:(c,d,h,f,S)=>{if(f<0||S<0)throw new E.ErrnoError(28);if(E.isClosed(c))throw new E.ErrnoError(8);if((2097155&c.flags)==1)throw new E.ErrnoError(8);if(E.isDir(c.node.mode))throw new E.ErrnoError(31);if(!c.stream_ops.read)throw new E.ErrnoError(28);var b=S!==void 0;if(b){if(!c.seekable)throw new E.ErrnoError(70)}else S=c.position;var R=c.stream_ops.read(c,d,h,f,S);return b||(c.position+=R),R},write:(c,d,h,f,S,b)=>{if(f<0||S<0)throw new E.ErrnoError(28);if(E.isClosed(c))throw new E.ErrnoError(8);if(!(2097155&c.flags))throw new E.ErrnoError(8);if(E.isDir(c.node.mode))throw new E.ErrnoError(31);if(!c.stream_ops.write)throw new E.ErrnoError(28);c.seekable&&1024&c.flags&&E.llseek(c,0,2);var R=S!==void 0;if(R){if(!c.seekable)throw new E.ErrnoError(70)}else S=c.position;var v=c.stream_ops.write(c,d,h,f,S,b);return R||(c.position+=v),v},allocate:(c,d,h)=>{if(E.isClosed(c))throw new E.ErrnoError(8);if(d<0||h<=0)throw new E.ErrnoError(28);if(!(2097155&c.flags))throw new E.ErrnoError(8);if(!E.isFile(c.node.mode)&&!E.isDir(c.node.mode))throw new E.ErrnoError(43);if(!c.stream_ops.allocate)throw new E.ErrnoError(138);c.stream_ops.allocate(c,d,h)},mmap:(c,d,h,f,S)=>{if(2&f&&!(2&S)&&(2097155&c.flags)!=2)throw new E.ErrnoError(2);if((2097155&c.flags)==1)throw new E.ErrnoError(2);if(!c.stream_ops.mmap)throw new E.ErrnoError(43);return c.stream_ops.mmap(c,d,h,f,S)},msync:(c,d,h,f,S)=>c.stream_ops.msync?c.stream_ops.msync(c,d,h,f,S):0,munmap:c=>0,ioctl:(c,d,h)=>{if(!c.stream_ops.ioctl)throw new E.ErrnoError(59);return c.stream_ops.ioctl(c,d,h)},readFile:(c,d={})=>{if(d.flags=d.flags||0,d.encoding=d.encoding||"binary",d.encoding!=="utf8"&&d.encoding!=="binary")throw new Error(`Invalid encoding type "${d.encoding}"`);var h,f=E.open(c,d.flags),S=E.stat(c).size,b=new Uint8Array(S);return E.read(f,b,0,S,0),d.encoding==="utf8"?h=Pt(b,0):d.encoding==="binary"&&(h=b),E.close(f),h},writeFile:(c,d,h={})=>{h.flags=h.flags||577;var f=E.open(c,h.flags,h.mode);if(typeof d=="string"){var S=new Uint8Array(bo(d)+1),b=Ro(d,S,0,S.length);E.write(f,S,0,b,void 0,h.canOwn)}else{if(!ArrayBuffer.isView(d))throw new Error("Unsupported data type");E.write(f,d,0,d.byteLength,void 0,h.canOwn)}E.close(f)},cwd:()=>E.currentPath,chdir:c=>{var d=E.lookupPath(c,{follow:!0});if(d.node===null)throw new E.ErrnoError(44);if(!E.isDir(d.node.mode))throw new E.ErrnoError(54);var h=E.nodePermissions(d.node,"x");if(h)throw new E.ErrnoError(h);E.currentPath=d.path},createDefaultDirectories:()=>{E.mkdir("/tmp"),E.mkdir("/home"),E.mkdir("/home/web_user")},createDefaultDevices:()=>{E.mkdir("/dev"),E.registerDevice(E.makedev(1,3),{read:()=>0,write:(f,S,b,R,v)=>R}),E.mkdev("/dev/null",E.makedev(1,3)),se.register(E.makedev(5,0),se.default_tty_ops),se.register(E.makedev(6,0),se.default_tty1_ops),E.mkdev("/dev/tty",E.makedev(5,0)),E.mkdev("/dev/tty1",E.makedev(6,0));var c=new Uint8Array(1024),d=0,h=()=>(d===0&&(d=kn(c).byteLength),c[--d]);E.createDevice("/dev","random",h),E.createDevice("/dev","urandom",h),E.mkdir("/dev/shm"),E.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{E.mkdir("/proc");var c=E.mkdir("/proc/self");E.mkdir("/proc/self/fd"),E.mount({mount:()=>{var d=E.createNode(c,"fd",16895,73);return d.node_ops={lookup:(h,f)=>{var S=+f,b=E.getStreamChecked(S),R={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>b.path}};return R.parent=R,R}},d}},{},"/proc/self/fd")},createStandardStreams:()=>{o.stdin?E.createDevice("/dev","stdin",o.stdin):E.symlink("/dev/tty","/dev/stdin"),o.stdout?E.createDevice("/dev","stdout",null,o.stdout):E.symlink("/dev/tty","/dev/stdout"),o.stderr?E.createDevice("/dev","stderr",null,o.stderr):E.symlink("/dev/tty1","/dev/stderr"),E.open("/dev/stdin",0),E.open("/dev/stdout",1),E.open("/dev/stderr",1)},ensureErrnoError:()=>{E.ErrnoError||(E.ErrnoError=function(c,d){this.name="ErrnoError",this.node=d,this.setErrno=function(h){this.errno=h},this.setErrno(c),this.message="FS error"},E.ErrnoError.prototype=new Error,E.ErrnoError.prototype.constructor=E.ErrnoError,[44].forEach(c=>{E.genericErrors[c]=new E.ErrnoError(c),E.genericErrors[c].stack="<generic error, no stack>"}))},staticInit:()=>{E.ensureErrnoError(),E.nameTable=new Array(4096),E.mount(Re,{},"/"),E.createDefaultDirectories(),E.createDefaultDevices(),E.createSpecialDirectories(),E.filesystems={MEMFS:Re}},init:(c,d,h)=>{E.init.initialized=!0,E.ensureErrnoError(),o.stdin=c||o.stdin,o.stdout=d||o.stdout,o.stderr=h||o.stderr,E.createStandardStreams()},quit:()=>{E.init.initialized=!1;for(var c=0;c<E.streams.length;c++){var d=E.streams[c];d&&E.close(d)}},findObject:(c,d)=>{var h=E.analyzePath(c,d);return h.exists?h.object:null},analyzePath:(c,d)=>{try{c=(f=E.lookupPath(c,{follow:!d})).path}catch(S){}var h={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var f=E.lookupPath(c,{parent:!0});h.parentExists=!0,h.parentPath=f.path,h.parentObject=f.node,h.name=me.basename(c),f=E.lookupPath(c,{follow:!d}),h.exists=!0,h.path=f.path,h.object=f.node,h.name=f.node.name,h.isRoot=f.path==="/"}catch(S){h.error=S.errno}return h},createPath:(c,d,h,f)=>{c=typeof c=="string"?c:E.getPath(c);for(var S=d.split("/").reverse();S.length;){var b=S.pop();if(b){var R=me.join2(c,b);try{E.mkdir(R)}catch(v){}c=R}}return R},createFile:(c,d,h,f,S)=>{var b=me.join2(typeof c=="string"?c:E.getPath(c),d),R=ci(f,S);return E.create(b,R)},createDataFile:(c,d,h,f,S,b)=>{var R=d;c&&(c=typeof c=="string"?c:E.getPath(c),R=d?me.join2(c,d):c);var v=ci(f,S),U=E.create(R,v);if(h){if(typeof h=="string"){for(var L=new Array(h.length),Z=0,ae=h.length;Z<ae;++Z)L[Z]=h.charCodeAt(Z);h=L}E.chmod(U,146|v);var ce=E.open(U,577);E.write(ce,h,0,h.length,0,b),E.close(ce),E.chmod(U,v)}return U},createDevice:(c,d,h,f)=>{var S=me.join2(typeof c=="string"?c:E.getPath(c),d),b=ci(!!h,!!f);E.createDevice.major||(E.createDevice.major=64);var R=E.makedev(E.createDevice.major++,0);return E.registerDevice(R,{open:v=>{v.seekable=!1},close:v=>{f&&f.buffer&&f.buffer.length&&f(10)},read:(v,U,L,Z,ae)=>{for(var ce=0,ne=0;ne<Z;ne++){var Ne;try{Ne=h()}catch(Fe){throw new E.ErrnoError(29)}if(Ne===void 0&&ce===0)throw new E.ErrnoError(6);if(Ne==null)break;ce++,U[L+ne]=Ne}return ce&&(v.node.timestamp=Date.now()),ce},write:(v,U,L,Z,ae)=>{for(var ce=0;ce<Z;ce++)try{f(U[L+ce])}catch(ne){throw new E.ErrnoError(29)}return Z&&(v.node.timestamp=Date.now()),ce}}),E.mkdev(S,b,R)},forceLoadFile:c=>{if(c.isDevice||c.isFolder||c.link||c.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(!s)throw new Error("Cannot load without read() or XMLHttpRequest.");try{c.contents=As(s(c.url),!0),c.usedBytes=c.contents.length}catch(d){throw new E.ErrnoError(29)}},createLazyFile:(c,d,h,f,S)=>{function b(){this.lengthKnown=!1,this.chunks=[]}if(b.prototype.get=function(ae){if(!(ae>this.length-1||ae<0)){var ce=ae%this.chunkSize,ne=ae/this.chunkSize|0;return this.getter(ne)[ce]}},b.prototype.setDataGetter=function(ae){this.getter=ae},b.prototype.cacheLength=function(){var ae=new XMLHttpRequest;if(ae.open("HEAD",h,!1),ae.send(null),!(ae.status>=200&&ae.status<300||ae.status===304))throw new Error("Couldn't load "+h+". Status: "+ae.status);var ce,ne=Number(ae.getResponseHeader("Content-length")),Ne=(ce=ae.getResponseHeader("Accept-Ranges"))&&ce==="bytes",Fe=(ce=ae.getResponseHeader("Content-Encoding"))&&ce==="gzip",we=1048576;Ne||(we=ne);var nt=this;nt.setDataGetter(ze=>{var Lt=ze*we,Jn=(ze+1)*we-1;if(Jn=Math.min(Jn,ne-1),nt.chunks[ze]===void 0&&(nt.chunks[ze]=((Ms,xo)=>{if(Ms>xo)throw new Error("invalid range ("+Ms+", "+xo+") or no bytes requested!");if(xo>ne-1)throw new Error("only "+ne+" bytes available! programmer error!");var mt=new XMLHttpRequest;if(mt.open("GET",h,!1),ne!==we&&mt.setRequestHeader("Range","bytes="+Ms+"-"+xo),mt.responseType="arraybuffer",mt.overrideMimeType&&mt.overrideMimeType("text/plain; charset=x-user-defined"),mt.send(null),!(mt.status>=200&&mt.status<300||mt.status===304))throw new Error("Couldn't load "+h+". Status: "+mt.status);return mt.response!==void 0?new Uint8Array(mt.response||[]):As(mt.responseText||"",!0)})(Lt,Jn)),nt.chunks[ze]===void 0)throw new Error("doXHR failed!");return nt.chunks[ze]}),!Fe&&ne||(we=ne=1,ne=this.getter(0).length,we=ne,C("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=ne,this._chunkSize=we,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!g)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var R=new b;Object.defineProperties(R,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var v={isDevice:!1,contents:R}}else v={isDevice:!1,url:h};var U=E.createFile(c,d,v,f,S);v.contents?U.contents=v.contents:v.url&&(U.contents=null,U.url=v.url),Object.defineProperties(U,{usedBytes:{get:function(){return this.contents.length}}});var L={};function Z(ae,ce,ne,Ne,Fe){var we=ae.node.contents;if(Fe>=we.length)return 0;var nt=Math.min(we.length-Fe,Ne);if(we.slice)for(var ze=0;ze<nt;ze++)ce[ne+ze]=we[Fe+ze];else for(ze=0;ze<nt;ze++)ce[ne+ze]=we.get(Fe+ze);return nt}return Object.keys(U.stream_ops).forEach(ae=>{var ce=U.stream_ops[ae];L[ae]=function(){return E.forceLoadFile(U),ce.apply(null,arguments)}}),L.read=(ae,ce,ne,Ne,Fe)=>(E.forceLoadFile(U),Z(ae,ce,ne,Ne,Fe)),L.mmap=(ae,ce,ne,Ne,Fe)=>{E.forceLoadFile(U);var we=Un();if(!we)throw new E.ErrnoError(48);return Z(ae,Y,we,ce,ne),{ptr:we,allocated:!0}},U.stream_ops=L,U}},Hi=(c,d)=>c?Pt(ue,c,d):"",St={DEFAULT_POLLMASK:5,calculateAt:function(c,d,h){if(me.isAbs(d))return d;var f;if(c===-100?f=E.cwd():f=St.getStreamFromFD(c).path,d.length==0){if(!h)throw new E.ErrnoError(44);return f}return me.join2(f,d)},doStat:function(c,d,h){try{var f=c(d)}catch(v){if(v&&v.node&&me.normalize(d)!==me.normalize(E.getPath(v.node)))return-54;throw v}W[h>>2]=f.dev,W[h+4>>2]=f.mode,Pe[h+8>>2]=f.nlink,W[h+12>>2]=f.uid,W[h+16>>2]=f.gid,W[h+20>>2]=f.rdev,H=[f.size>>>0,(Te=f.size,+Math.abs(Te)>=1?Te>0?+Math.floor(Te/4294967296)>>>0:~~+Math.ceil((Te-+(~~Te>>>0))/4294967296)>>>0:0)],W[h+24>>2]=H[0],W[h+28>>2]=H[1],W[h+32>>2]=4096,W[h+36>>2]=f.blocks;var S=f.atime.getTime(),b=f.mtime.getTime(),R=f.ctime.getTime();return H=[Math.floor(S/1e3)>>>0,(Te=Math.floor(S/1e3),+Math.abs(Te)>=1?Te>0?+Math.floor(Te/4294967296)>>>0:~~+Math.ceil((Te-+(~~Te>>>0))/4294967296)>>>0:0)],W[h+40>>2]=H[0],W[h+44>>2]=H[1],Pe[h+48>>2]=S%1e3*1e3,H=[Math.floor(b/1e3)>>>0,(Te=Math.floor(b/1e3),+Math.abs(Te)>=1?Te>0?+Math.floor(Te/4294967296)>>>0:~~+Math.ceil((Te-+(~~Te>>>0))/4294967296)>>>0:0)],W[h+56>>2]=H[0],W[h+60>>2]=H[1],Pe[h+64>>2]=b%1e3*1e3,H=[Math.floor(R/1e3)>>>0,(Te=Math.floor(R/1e3),+Math.abs(Te)>=1?Te>0?+Math.floor(Te/4294967296)>>>0:~~+Math.ceil((Te-+(~~Te>>>0))/4294967296)>>>0:0)],W[h+72>>2]=H[0],W[h+76>>2]=H[1],Pe[h+80>>2]=R%1e3*1e3,H=[f.ino>>>0,(Te=f.ino,+Math.abs(Te)>=1?Te>0?+Math.floor(Te/4294967296)>>>0:~~+Math.ceil((Te-+(~~Te>>>0))/4294967296)>>>0:0)],W[h+88>>2]=H[0],W[h+92>>2]=H[1],0},doMsync:function(c,d,h,f,S){if(!E.isFile(d.node.mode))throw new E.ErrnoError(43);if(2&f)return 0;var b=ue.slice(c,c+h);E.msync(d,b,S,h,f)},varargs:void 0,get:()=>(St.varargs+=4,W[St.varargs-4>>2]),getStr:c=>Hi(c),getStreamFromFD:function(c){return E.getStreamChecked(c)}};function k(c){switch(c){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${c}`)}}var Ac=void 0;function Ct(c){for(var d="",h=c;ue[h];)d+=Ac[ue[h++]];return d}var Wi={},ur={},bs={},Gi=void 0;function Ue(c){throw new Gi(c)}var bc=void 0;function Kt(c){throw new bc(c)}function Hr(c,d,h){function f(v){var U=h(v);U.length!==c.length&&Kt("Mismatched type converter count");for(var L=0;L<c.length;++L)er(c[L],U[L])}c.forEach(function(v){bs[v]=d});var S=new Array(d.length),b=[],R=0;d.forEach((v,U)=>{ur.hasOwnProperty(v)?S[U]=ur[v]:(b.push(v),Wi.hasOwnProperty(v)||(Wi[v]=[]),Wi[v].push(()=>{S[U]=ur[v],++R===b.length&&f(S)}))}),b.length===0&&f(S)}function er(c,d,h={}){if(!("argPackAdvance"in d))throw new TypeError("registerType registeredInstance requires argPackAdvance");return(function(f,S,b={}){var R=S.name;if(f||Ue(`type "${R}" must have a positive integer typeid pointer`),ur.hasOwnProperty(f)){if(b.ignoreDuplicateRegistrations)return;Ue(`Cannot register type '${R}' twice`)}if(ur[f]=S,delete bs[f],Wi.hasOwnProperty(f)){var v=Wi[f];delete Wi[f],v.forEach(U=>U())}})(c,d,h)}function Rc(c){if(!(this instanceof _r)||!(c instanceof _r))return!1;for(var d=this.$$.ptrType.registeredClass,h=this.$$.ptr,f=c.$$.ptrType.registeredClass,S=c.$$.ptr;d.baseClass;)h=d.upcast(h),d=d.baseClass;for(;f.baseClass;)S=f.upcast(S),f=f.baseClass;return d===f&&h===S}function Vn(c){Ue(c.$$.ptrType.registeredClass.name+" instance already deleted")}var vo=!1;function vc(c){}function Cc(c){c.count.value-=1,c.count.value===0&&(function(d){d.smartPtr?d.smartPtrType.rawDestructor(d.smartPtr):d.ptrType.registeredClass.rawDestructor(d.ptr)})(c)}function Nc(c,d,h){if(d===h)return c;if(h.baseClass===void 0)return null;var f=Nc(c,d,h.baseClass);return f===null?null:h.downcast(f)}var Co={};function gl(){return Object.keys(Do).length}function El(){var c=[];for(var d in Do)Do.hasOwnProperty(d)&&c.push(Do[d]);return c}var No=[];function tr(){for(;No.length;){var c=No.pop();c.$$.deleteScheduled=!1,c.delete()}}var Wr=void 0;function Dc(c){Wr=c,No.length&&Wr&&Wr(tr)}var Do={};function ji(c,d){return d=(function(h,f){for(f===void 0&&Ue("ptr should not be undefined");h.baseClass;)f=h.upcast(f),h=h.baseClass;return f})(c,d),Do[d]}function wo(c,d){return d.ptrType&&d.ptr||Kt("makeClassHandle requires ptr and ptrType"),!!d.smartPtrType!=!!d.smartPtr&&Kt("Both smartPtrType and smartPtr must be specified"),d.count={value:1},qi(Object.create(c,{$$:{value:d}}))}function wc(c){var d=this.getPointee(c);if(!d)return this.destructor(c),null;var h=ji(this.registeredClass,d);if(h!==void 0){if(h.$$.count.value===0)return h.$$.ptr=d,h.$$.smartPtr=c,h.clone();var f=h.clone();return this.destructor(c),f}function S(){return this.isSmartPointer?wo(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:d,smartPtrType:this,smartPtr:c}):wo(this.registeredClass.instancePrototype,{ptrType:this,ptr:c})}var b,R=this.registeredClass.getActualType(d),v=Co[R];if(!v)return S.call(this);b=this.isConst?v.constPointerType:v.pointerType;var U=Nc(d,this.registeredClass,b.registeredClass);return U===null?S.call(this):this.isSmartPointer?wo(b.registeredClass.instancePrototype,{ptrType:b,ptr:U,smartPtrType:this,smartPtr:c}):wo(b.registeredClass.instancePrototype,{ptrType:b,ptr:U})}var qi=function(c){return typeof FinalizationRegistry=="undefined"?(qi=d=>d,c):(vo=new FinalizationRegistry(d=>{Cc(d.$$)}),vc=d=>vo.unregister(d),(qi=d=>{var h=d.$$;if(h.smartPtr){var f={$$:h};vo.register(d,f,d)}return d})(c))};function Mc(){if(this.$$.ptr||Vn(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var c,d=qi(Object.create(Object.getPrototypeOf(this),{$$:{value:(c=this.$$,{count:c.count,deleteScheduled:c.deleteScheduled,preservePointerOnDelete:c.preservePointerOnDelete,ptr:c.ptr,ptrType:c.ptrType,smartPtr:c.smartPtr,smartPtrType:c.smartPtrType})}}));return d.$$.count.value+=1,d.$$.deleteScheduled=!1,d}function Tl(){this.$$.ptr||Vn(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Ue("Object already scheduled for deletion"),vc(this),Cc(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Oc(){return!this.$$.ptr}function xc(){return this.$$.ptr||Vn(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Ue("Object already scheduled for deletion"),No.push(this),No.length===1&&Wr&&Wr(tr),this.$$.deleteScheduled=!0,this}function _r(){}function kt(c){if(c===void 0)return"_unknown";var d=(c=c.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return d>=48&&d<=57?`_${c}`:c}function Rs(c,d){return c=kt(c),{[c]:function(){return d.apply(this,arguments)}}[c]}function Pc(c,d,h){if(c[d].overloadTable===void 0){var f=c[d];c[d]=function(){return c[d].overloadTable.hasOwnProperty(arguments.length)||Ue(`Function '${h}' called with an invalid number of arguments (${arguments.length}) - expects one of (${c[d].overloadTable})!`),c[d].overloadTable[arguments.length].apply(this,arguments)},c[d].overloadTable=[],c[d].overloadTable[f.argCount]=f}}function vs(c,d,h,f,S,b,R,v){this.name=c,this.constructor=d,this.instancePrototype=h,this.rawDestructor=f,this.baseClass=S,this.getActualType=b,this.upcast=R,this.downcast=v,this.pureVirtualFunctions=[]}function Mo(c,d,h){for(;d!==h;)d.upcast||Ue(`Expected null or instance of ${h.name}, got an instance of ${d.name}`),c=d.upcast(c),d=d.baseClass;return c}function _l(c,d){if(d===null)return this.isReference&&Ue(`null is not a valid ${this.name}`),0;d.$$||Ue(`Cannot pass "${ir(d)}" as a ${this.name}`),d.$$.ptr||Ue(`Cannot pass deleted object as a pointer of type ${this.name}`);var h=d.$$.ptrType.registeredClass;return Mo(d.$$.ptr,h,this.registeredClass)}function Il(c,d){var h;if(d===null)return this.isReference&&Ue(`null is not a valid ${this.name}`),this.isSmartPointer?(h=this.rawConstructor(),c!==null&&c.push(this.rawDestructor,h),h):0;d.$$||Ue(`Cannot pass "${ir(d)}" as a ${this.name}`),d.$$.ptr||Ue(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&d.$$.ptrType.isConst&&Ue(`Cannot convert argument of type ${d.$$.smartPtrType?d.$$.smartPtrType.name:d.$$.ptrType.name} to parameter type ${this.name}`);var f=d.$$.ptrType.registeredClass;if(h=Mo(d.$$.ptr,f,this.registeredClass),this.isSmartPointer)switch(d.$$.smartPtr===void 0&&Ue("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:d.$$.smartPtrType===this?h=d.$$.smartPtr:Ue(`Cannot convert argument of type ${d.$$.smartPtrType?d.$$.smartPtrType.name:d.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:h=d.$$.smartPtr;break;case 2:if(d.$$.smartPtrType===this)h=d.$$.smartPtr;else{var S=d.clone();h=this.rawShare(h,ws.toHandle(function(){S.delete()})),c!==null&&c.push(this.rawDestructor,h)}break;default:Ue("Unsupporting sharing policy")}return h}function kc(c,d){if(d===null)return this.isReference&&Ue(`null is not a valid ${this.name}`),0;d.$$||Ue(`Cannot pass "${ir(d)}" as a ${this.name}`),d.$$.ptr||Ue(`Cannot pass deleted object as a pointer of type ${this.name}`),d.$$.ptrType.isConst&&Ue(`Cannot convert argument of type ${d.$$.ptrType.name} to parameter type ${this.name}`);var h=d.$$.ptrType.registeredClass;return Mo(d.$$.ptr,h,this.registeredClass)}function Oo(c){return this.fromWireType(W[c>>2])}function Sl(c){return this.rawGetPointee&&(c=this.rawGetPointee(c)),c}function Lc(c){this.rawDestructor&&this.rawDestructor(c)}function yl(c){c!==null&&c.delete()}function Ir(c,d,h,f,S,b,R,v,U,L,Z){this.name=c,this.registeredClass=d,this.isReference=h,this.isConst=f,this.isSmartPointer=S,this.pointeeType=b,this.sharingPolicy=R,this.rawGetPointee=v,this.rawConstructor=U,this.rawShare=L,this.rawDestructor=Z,S||d.baseClass!==void 0?this.toWireType=Il:f?(this.toWireType=_l,this.destructorFunction=null):(this.toWireType=kc,this.destructorFunction=null)}var Cs=[],Uc=c=>{var d=Cs[c];return d||(c>=Cs.length&&(Cs.length=c+1),Cs[c]=d=Mn.get(c)),d},Al=(c,d,h)=>c.includes("j")?((f,S,b)=>{var R=o["dynCall_"+f];return b&&b.length?R.apply(null,[S].concat(b)):R.call(null,S)})(c,d,h):Uc(d).apply(null,h);function zi(c,d){var h,f,S,b=(c=Ct(c)).includes("j")?(h=c,f=d,S=[],function(){return S.length=0,Object.assign(S,arguments),Al(h,f,S)}):Uc(d);return typeof b!="function"&&Ue(`unknown function pointer with signature ${c}: ${d}`),b}var Vc=void 0;function Ns(c){var d=qn(c),h=Ct(d);return Sr(d),h}function Fn(c,d){var h=[],f={};throw d.forEach(function S(b){f[b]||ur[b]||(bs[b]?bs[b].forEach(S):(h.push(b),f[b]=!0))}),new Vc(`${c}: `+h.map(Ns).join([", "]))}function $n(c,d){for(var h=[],f=0;f<c;f++)h.push(Pe[d+4*f>>2]);return h}function Fc(c){for(;c.length;){var d=c.pop();c.pop()(d)}}function Bn(c,d){if(!(c instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof c} which is not a function`);var h=Rs(c.name||"unknownFunctionName",function(){});h.prototype=c.prototype;var f=new h,S=c.apply(f,d);return S instanceof Object?S:f}function Hn(c,d,h,f,S,b){var R=d.length;R<2&&Ue("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var v=d[1]!==null&&h!==null,U=!1,L=1;L<d.length;++L)if(d[L]!==null&&d[L].destructorFunction===void 0){U=!0;break}var Z=d[0].name!=="void",ae="",ce="";for(L=0;L<R-2;++L)ae+=(L!==0?", ":"")+"arg"+L,ce+=(L!==0?", ":"")+"arg"+L+"Wired";var ne=`
|
|
53
|
-
return function ${
|
|
52
|
+
`),!d)return null;Vn=Rs(d,!0)}return Vn.shift()})()},put_char:function(c,d){d===null||d===10?(C(Lt(c.output,0)),c.output=[]):d!=0&&c.output.push(d)},fsync:function(c){c.output&&c.output.length>0&&(C(Lt(c.output,0)),c.output=[])},ioctl_tcgets:function(c){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(c,d,h){return 0},ioctl_tiocgwinsz:function(c){return[24,80]}},default_tty1_ops:{put_char:function(c,d){d===null||d===10?(N(Lt(c.output,0)),c.output=[]):d!=0&&c.output.push(d)},fsync:function(c){c.output&&c.output.length>0&&(N(Lt(c.output,0)),c.output=[])}}},Fn=c=>{Hr()},j={ops_table:null,mount:c=>j.createNode(null,"/",16895,0),createNode(c,d,h,f){if(E.isBlkdev(h)||E.isFIFO(h))throw new E.ErrnoError(63);j.ops_table||(j.ops_table={dir:{node:{getattr:j.node_ops.getattr,setattr:j.node_ops.setattr,lookup:j.node_ops.lookup,mknod:j.node_ops.mknod,rename:j.node_ops.rename,unlink:j.node_ops.unlink,rmdir:j.node_ops.rmdir,readdir:j.node_ops.readdir,symlink:j.node_ops.symlink},stream:{llseek:j.stream_ops.llseek}},file:{node:{getattr:j.node_ops.getattr,setattr:j.node_ops.setattr},stream:{llseek:j.stream_ops.llseek,read:j.stream_ops.read,write:j.stream_ops.write,allocate:j.stream_ops.allocate,mmap:j.stream_ops.mmap,msync:j.stream_ops.msync}},link:{node:{getattr:j.node_ops.getattr,setattr:j.node_ops.setattr,readlink:j.node_ops.readlink},stream:{}},chrdev:{node:{getattr:j.node_ops.getattr,setattr:j.node_ops.setattr},stream:E.chrdev_stream_ops}});var I=E.createNode(c,d,h,f);return E.isDir(I.mode)?(I.node_ops=j.ops_table.dir.node,I.stream_ops=j.ops_table.dir.stream,I.contents={}):E.isFile(I.mode)?(I.node_ops=j.ops_table.file.node,I.stream_ops=j.ops_table.file.stream,I.usedBytes=0,I.contents=null):E.isLink(I.mode)?(I.node_ops=j.ops_table.link.node,I.stream_ops=j.ops_table.link.stream):E.isChrdev(I.mode)&&(I.node_ops=j.ops_table.chrdev.node,I.stream_ops=j.ops_table.chrdev.stream),I.timestamp=Date.now(),c&&(c.contents[d]=I,c.timestamp=I.timestamp),I},getFileDataAsTypedArray:c=>c.contents?c.contents.subarray?c.contents.subarray(0,c.usedBytes):new Uint8Array(c.contents):new Uint8Array(0),expandFileStorage(c,d){var h=c.contents?c.contents.length:0;if(!(h>=d)){d=Math.max(d,h*(h<1048576?2:1.125)>>>0),h!=0&&(d=Math.max(d,256));var f=c.contents;c.contents=new Uint8Array(d),c.usedBytes>0&&c.contents.set(f.subarray(0,c.usedBytes),0)}},resizeFileStorage(c,d){if(c.usedBytes!=d)if(d==0)c.contents=null,c.usedBytes=0;else{var h=c.contents;c.contents=new Uint8Array(d),h&&c.contents.set(h.subarray(0,Math.min(d,c.usedBytes))),c.usedBytes=d}},node_ops:{getattr(c){var d={};return d.dev=E.isChrdev(c.mode)?c.id:1,d.ino=c.id,d.mode=c.mode,d.nlink=1,d.uid=0,d.gid=0,d.rdev=c.rdev,E.isDir(c.mode)?d.size=4096:E.isFile(c.mode)?d.size=c.usedBytes:E.isLink(c.mode)?d.size=c.link.length:d.size=0,d.atime=new Date(c.timestamp),d.mtime=new Date(c.timestamp),d.ctime=new Date(c.timestamp),d.blksize=4096,d.blocks=Math.ceil(d.size/d.blksize),d},setattr(c,d){d.mode!==void 0&&(c.mode=d.mode),d.timestamp!==void 0&&(c.timestamp=d.timestamp),d.size!==void 0&&j.resizeFileStorage(c,d.size)},lookup(c,d){throw E.genericErrors[44]},mknod:(c,d,h,f)=>j.createNode(c,d,h,f),rename(c,d,h){if(E.isDir(c.mode)){var f;try{f=E.lookupNode(d,h)}catch(b){}if(f)for(var I in f.contents)throw new E.ErrnoError(55)}delete c.parent.contents[c.name],c.parent.timestamp=Date.now(),c.name=h,d.contents[h]=c,d.timestamp=c.parent.timestamp,c.parent=d},unlink(c,d){delete c.contents[d],c.timestamp=Date.now()},rmdir(c,d){var h=E.lookupNode(c,d);for(var f in h.contents)throw new E.ErrnoError(55);delete c.contents[d],c.timestamp=Date.now()},readdir(c){var d=[".",".."];for(var h in c.contents)c.contents.hasOwnProperty(h)&&d.push(h);return d},symlink(c,d,h){var f=j.createNode(c,d,41471,0);return f.link=h,f},readlink(c){if(!E.isLink(c.mode))throw new E.ErrnoError(28);return c.link}},stream_ops:{read(c,d,h,f,I){var b=c.node.contents;if(I>=c.node.usedBytes)return 0;var R=Math.min(c.node.usedBytes-I,f);if(R>8&&b.subarray)d.set(b.subarray(I,I+R),h);else for(var v=0;v<R;v++)d[h+v]=b[I+v];return R},write(c,d,h,f,I,b){if(!f)return 0;var R=c.node;if(R.timestamp=Date.now(),d.subarray&&(!R.contents||R.contents.subarray)){if(b)return R.contents=d.subarray(h,h+f),R.usedBytes=f,f;if(R.usedBytes===0&&I===0)return R.contents=d.slice(h,h+f),R.usedBytes=f,f;if(I+f<=R.usedBytes)return R.contents.set(d.subarray(h,h+f),I),f}if(j.expandFileStorage(R,I+f),R.contents.subarray&&d.subarray)R.contents.set(d.subarray(h,h+f),I);else for(var v=0;v<f;v++)R.contents[I+v]=d[h+v];return R.usedBytes=Math.max(R.usedBytes,I+f),f},llseek(c,d,h){var f=d;if(h===1?f+=c.position:h===2&&E.isFile(c.node.mode)&&(f+=c.node.usedBytes),f<0)throw new E.ErrnoError(28);return f},allocate(c,d,h){j.expandFileStorage(c.node,d+h),c.node.usedBytes=Math.max(c.node.usedBytes,d+h)},mmap(c,d,h,f,I){if(!E.isFile(c.node.mode))throw new E.ErrnoError(43);var b,R,v=c.node.contents;if(2&I||v.buffer!==Z.buffer){if((h>0||h+d<v.length)&&(v=v.subarray?v.subarray(h,h+d):Array.prototype.slice.call(v,h,h+d)),R=!0,!(b=Fn()))throw new E.ErrnoError(48);Z.set(v,b)}else R=!1,b=v.byteOffset;return{ptr:b,allocated:R}},msync:(c,d,h,f,I)=>(j.stream_ops.write(c,d,0,f,h,!1),0)}},ll=(c,d,h,f)=>{var I=f?"":`al ${c}`;n(c,b=>{var R;R=`Loading data file "${c}" failed (no arrayBuffer).`,b||Hr(R),d(new Uint8Array(b)),I&&No()},b=>{if(!h)throw`Loading data file "${c}" failed.`;h()}),I&&ie()},ml=o.preloadPlugins||[];function li(c,d){var h=0;return c&&(h|=365),d&&(h|=146),h}var E={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(c,d={})=>{if(!(c=Qt.resolve(c)))return{path:"",node:null};if((d=Object.assign({follow_mount:!0,recurse_count:0},d)).recurse_count>8)throw new E.ErrnoError(32);for(var h=c.split("/").filter(L=>!!L),f=E.root,I="/",b=0;b<h.length;b++){var R=b===h.length-1;if(R&&d.parent)break;if(f=E.lookupNode(f,h[b]),I=me.join2(I,h[b]),E.isMountpoint(f)&&(!R||R&&d.follow_mount)&&(f=f.mounted.root),!R||d.follow)for(var v=0;E.isLink(f.mode);){var U=E.readlink(I);if(I=Qt.resolve(me.dirname(I),U),f=E.lookupPath(I,{recurse_count:d.recurse_count+1}).node,v++>40)throw new E.ErrnoError(32)}}return{path:I,node:f}},getPath:c=>{for(var d;;){if(E.isRoot(c)){var h=c.mount.mountpoint;return d?h[h.length-1]!=="/"?`${h}/${d}`:h+d:h}d=d?`${c.name}/${d}`:c.name,c=c.parent}},hashName:(c,d)=>{for(var h=0,f=0;f<d.length;f++)h=(h<<5)-h+d.charCodeAt(f)|0;return(c+h>>>0)%E.nameTable.length},hashAddNode:c=>{var d=E.hashName(c.parent.id,c.name);c.name_next=E.nameTable[d],E.nameTable[d]=c},hashRemoveNode:c=>{var d=E.hashName(c.parent.id,c.name);if(E.nameTable[d]===c)E.nameTable[d]=c.name_next;else for(var h=E.nameTable[d];h;){if(h.name_next===c){h.name_next=c.name_next;break}h=h.name_next}},lookupNode:(c,d)=>{var h=E.mayLookup(c);if(h)throw new E.ErrnoError(h,c);for(var f=E.hashName(c.id,d),I=E.nameTable[f];I;I=I.name_next){var b=I.name;if(I.parent.id===c.id&&b===d)return I}return E.lookup(c,d)},createNode:(c,d,h,f)=>{var I=new E.FSNode(c,d,h,f);return E.hashAddNode(I),I},destroyNode:c=>{E.hashRemoveNode(c)},isRoot:c=>c===c.parent,isMountpoint:c=>!!c.mounted,isFile:c=>(61440&c)==32768,isDir:c=>(61440&c)==16384,isLink:c=>(61440&c)==40960,isChrdev:c=>(61440&c)==8192,isBlkdev:c=>(61440&c)==24576,isFIFO:c=>(61440&c)==4096,isSocket:c=>!(49152&~c),flagsToPermissionString:c=>{var d=["r","w","rw"][3&c];return 512&c&&(d+="w"),d},nodePermissions:(c,d)=>E.ignorePermissions||(!d.includes("r")||292&c.mode)&&(!d.includes("w")||146&c.mode)&&(!d.includes("x")||73&c.mode)?0:2,mayLookup:c=>{var d=E.nodePermissions(c,"x");return d||(c.node_ops.lookup?0:2)},mayCreate:(c,d)=>{try{return E.lookupNode(c,d),20}catch(h){}return E.nodePermissions(c,"wx")},mayDelete:(c,d,h)=>{var f;try{f=E.lookupNode(c,d)}catch(b){return b.errno}var I=E.nodePermissions(c,"wx");if(I)return I;if(h){if(!E.isDir(f.mode))return 54;if(E.isRoot(f)||E.getPath(f)===E.cwd())return 10}else if(E.isDir(f.mode))return 31;return 0},mayOpen:(c,d)=>c?E.isLink(c.mode)?32:E.isDir(c.mode)&&(E.flagsToPermissionString(d)!=="r"||512&d)?31:E.nodePermissions(c,E.flagsToPermissionString(d)):44,MAX_OPEN_FDS:4096,nextfd:()=>{for(var c=0;c<=E.MAX_OPEN_FDS;c++)if(!E.streams[c])return c;throw new E.ErrnoError(33)},getStreamChecked:c=>{var d=E.getStream(c);if(!d)throw new E.ErrnoError(8);return d},getStream:c=>E.streams[c],createStream:(c,d=-1)=>(E.FSStream||(E.FSStream=function(){this.shared={}},E.FSStream.prototype={},Object.defineProperties(E.FSStream.prototype,{object:{get(){return this.node},set(h){this.node=h}},isRead:{get(){return(2097155&this.flags)!=1}},isWrite:{get(){return!!(2097155&this.flags)}},isAppend:{get(){return 1024&this.flags}},flags:{get(){return this.shared.flags},set(h){this.shared.flags=h}},position:{get(){return this.shared.position},set(h){this.shared.position=h}}})),c=Object.assign(new E.FSStream,c),d==-1&&(d=E.nextfd()),c.fd=d,E.streams[d]=c,c),closeStream:c=>{E.streams[c]=null},chrdev_stream_ops:{open:c=>{var d=E.getDevice(c.node.rdev);c.stream_ops=d.stream_ops,c.stream_ops.open&&c.stream_ops.open(c)},llseek:()=>{throw new E.ErrnoError(70)}},major:c=>c>>8,minor:c=>255&c,makedev:(c,d)=>c<<8|d,registerDevice:(c,d)=>{E.devices[c]={stream_ops:d}},getDevice:c=>E.devices[c],getMounts:c=>{for(var d=[],h=[c];h.length;){var f=h.pop();d.push(f),h.push.apply(h,f.mounts)}return d},syncfs:(c,d)=>{typeof c=="function"&&(d=c,c=!1),E.syncFSRequests++,E.syncFSRequests>1&&N(`warning: ${E.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var h=E.getMounts(E.root.mount),f=0;function I(R){return E.syncFSRequests--,d(R)}function b(R){if(R)return b.errored?void 0:(b.errored=!0,I(R));++f>=h.length&&I(null)}h.forEach(R=>{if(!R.type.syncfs)return b(null);R.type.syncfs(R,c,b)})},mount:(c,d,h)=>{var f,I=h==="/",b=!h;if(I&&E.root)throw new E.ErrnoError(10);if(!I&&!b){var R=E.lookupPath(h,{follow_mount:!1});if(h=R.path,f=R.node,E.isMountpoint(f))throw new E.ErrnoError(10);if(!E.isDir(f.mode))throw new E.ErrnoError(54)}var v={type:c,opts:d,mountpoint:h,mounts:[]},U=c.mount(v);return U.mount=v,v.root=U,I?E.root=U:f&&(f.mounted=v,f.mount&&f.mount.mounts.push(v)),U},unmount:c=>{var d=E.lookupPath(c,{follow_mount:!1});if(!E.isMountpoint(d.node))throw new E.ErrnoError(28);var h=d.node,f=h.mounted,I=E.getMounts(f);Object.keys(E.nameTable).forEach(R=>{for(var v=E.nameTable[R];v;){var U=v.name_next;I.includes(v.mount)&&E.destroyNode(v),v=U}}),h.mounted=null;var b=h.mount.mounts.indexOf(f);h.mount.mounts.splice(b,1)},lookup:(c,d)=>c.node_ops.lookup(c,d),mknod:(c,d,h)=>{var f=E.lookupPath(c,{parent:!0}).node,I=me.basename(c);if(!I||I==="."||I==="..")throw new E.ErrnoError(28);var b=E.mayCreate(f,I);if(b)throw new E.ErrnoError(b);if(!f.node_ops.mknod)throw new E.ErrnoError(63);return f.node_ops.mknod(f,I,d,h)},create:(c,d)=>(d=d!==void 0?d:438,d&=4095,d|=32768,E.mknod(c,d,0)),mkdir:(c,d)=>(d=d!==void 0?d:511,d&=1023,d|=16384,E.mknod(c,d,0)),mkdirTree:(c,d)=>{for(var h=c.split("/"),f="",I=0;I<h.length;++I)if(h[I]){f+="/"+h[I];try{E.mkdir(f,d)}catch(b){if(b.errno!=20)throw b}}},mkdev:(c,d,h)=>(h===void 0&&(h=d,d=438),d|=8192,E.mknod(c,d,h)),symlink:(c,d)=>{if(!Qt.resolve(c))throw new E.ErrnoError(44);var h=E.lookupPath(d,{parent:!0}).node;if(!h)throw new E.ErrnoError(44);var f=me.basename(d),I=E.mayCreate(h,f);if(I)throw new E.ErrnoError(I);if(!h.node_ops.symlink)throw new E.ErrnoError(63);return h.node_ops.symlink(h,f,c)},rename:(c,d)=>{var h,f,I=me.dirname(c),b=me.dirname(d),R=me.basename(c),v=me.basename(d);if(h=E.lookupPath(c,{parent:!0}).node,f=E.lookupPath(d,{parent:!0}).node,!h||!f)throw new E.ErrnoError(44);if(h.mount!==f.mount)throw new E.ErrnoError(75);var U,L=E.lookupNode(h,R),K=Qt.relative(c,b);if(K.charAt(0)!==".")throw new E.ErrnoError(28);if((K=Qt.relative(d,I)).charAt(0)!==".")throw new E.ErrnoError(55);try{U=E.lookupNode(f,v)}catch(ne){}if(L!==U){var ae=E.isDir(L.mode),ce=E.mayDelete(h,R,ae);if(ce)throw new E.ErrnoError(ce);if(ce=U?E.mayDelete(f,v,ae):E.mayCreate(f,v))throw new E.ErrnoError(ce);if(!h.node_ops.rename)throw new E.ErrnoError(63);if(E.isMountpoint(L)||U&&E.isMountpoint(U))throw new E.ErrnoError(10);if(f!==h&&(ce=E.nodePermissions(h,"w")))throw new E.ErrnoError(ce);E.hashRemoveNode(L);try{h.node_ops.rename(L,f,v)}catch(ne){throw ne}finally{E.hashAddNode(L)}}},rmdir:c=>{var d=E.lookupPath(c,{parent:!0}).node,h=me.basename(c),f=E.lookupNode(d,h),I=E.mayDelete(d,h,!0);if(I)throw new E.ErrnoError(I);if(!d.node_ops.rmdir)throw new E.ErrnoError(63);if(E.isMountpoint(f))throw new E.ErrnoError(10);d.node_ops.rmdir(d,h),E.destroyNode(f)},readdir:c=>{var d=E.lookupPath(c,{follow:!0}).node;if(!d.node_ops.readdir)throw new E.ErrnoError(54);return d.node_ops.readdir(d)},unlink:c=>{var d=E.lookupPath(c,{parent:!0}).node;if(!d)throw new E.ErrnoError(44);var h=me.basename(c),f=E.lookupNode(d,h),I=E.mayDelete(d,h,!1);if(I)throw new E.ErrnoError(I);if(!d.node_ops.unlink)throw new E.ErrnoError(63);if(E.isMountpoint(f))throw new E.ErrnoError(10);d.node_ops.unlink(d,h),E.destroyNode(f)},readlink:c=>{var d=E.lookupPath(c).node;if(!d)throw new E.ErrnoError(44);if(!d.node_ops.readlink)throw new E.ErrnoError(28);return Qt.resolve(E.getPath(d.parent),d.node_ops.readlink(d))},stat:(c,d)=>{var h=E.lookupPath(c,{follow:!d}).node;if(!h)throw new E.ErrnoError(44);if(!h.node_ops.getattr)throw new E.ErrnoError(63);return h.node_ops.getattr(h)},lstat:c=>E.stat(c,!0),chmod:(c,d,h)=>{var f;if(typeof c=="string"?f=E.lookupPath(c,{follow:!h}).node:f=c,!f.node_ops.setattr)throw new E.ErrnoError(63);f.node_ops.setattr(f,{mode:4095&d|-4096&f.mode,timestamp:Date.now()})},lchmod:(c,d)=>{E.chmod(c,d,!0)},fchmod:(c,d)=>{var h=E.getStreamChecked(c);E.chmod(h.node,d)},chown:(c,d,h,f)=>{var I;if(typeof c=="string"?I=E.lookupPath(c,{follow:!f}).node:I=c,!I.node_ops.setattr)throw new E.ErrnoError(63);I.node_ops.setattr(I,{timestamp:Date.now()})},lchown:(c,d,h)=>{E.chown(c,d,h,!0)},fchown:(c,d,h)=>{var f=E.getStreamChecked(c);E.chown(f.node,d,h)},truncate:(c,d)=>{if(d<0)throw new E.ErrnoError(28);var h;if(typeof c=="string"?h=E.lookupPath(c,{follow:!0}).node:h=c,!h.node_ops.setattr)throw new E.ErrnoError(63);if(E.isDir(h.mode))throw new E.ErrnoError(31);if(!E.isFile(h.mode))throw new E.ErrnoError(28);var f=E.nodePermissions(h,"w");if(f)throw new E.ErrnoError(f);h.node_ops.setattr(h,{size:d,timestamp:Date.now()})},ftruncate:(c,d)=>{var h=E.getStreamChecked(c);if(!(2097155&h.flags))throw new E.ErrnoError(28);E.truncate(h.node,d)},utime:(c,d,h)=>{var f=E.lookupPath(c,{follow:!0}).node;f.node_ops.setattr(f,{timestamp:Math.max(d,h)})},open:(c,d,h)=>{if(c==="")throw new E.ErrnoError(44);var f;if(h=h===void 0?438:h,h=64&(d=typeof d=="string"?function(v){var U={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[v];if(U===void 0)throw new Error(`Unknown file open mode: ${v}`);return U}(d):d)?4095&h|32768:0,typeof c=="object")f=c;else{c=me.normalize(c);try{f=E.lookupPath(c,{follow:!(131072&d)}).node}catch(v){}}var I=!1;if(64&d)if(f){if(128&d)throw new E.ErrnoError(20)}else f=E.mknod(c,h,0),I=!0;if(!f)throw new E.ErrnoError(44);if(E.isChrdev(f.mode)&&(d&=-513),65536&d&&!E.isDir(f.mode))throw new E.ErrnoError(54);if(!I){var b=E.mayOpen(f,d);if(b)throw new E.ErrnoError(b)}512&d&&!I&&E.truncate(f,0),d&=-131713;var R=E.createStream({node:f,path:E.getPath(f),flags:d,seekable:!0,position:0,stream_ops:f.stream_ops,ungotten:[],error:!1});return R.stream_ops.open&&R.stream_ops.open(R),!o.logReadFiles||1&d||(E.readFiles||(E.readFiles={}),c in E.readFiles||(E.readFiles[c]=1)),R},close:c=>{if(E.isClosed(c))throw new E.ErrnoError(8);c.getdents&&(c.getdents=null);try{c.stream_ops.close&&c.stream_ops.close(c)}catch(d){throw d}finally{E.closeStream(c.fd)}c.fd=null},isClosed:c=>c.fd===null,llseek:(c,d,h)=>{if(E.isClosed(c))throw new E.ErrnoError(8);if(!c.seekable||!c.stream_ops.llseek)throw new E.ErrnoError(70);if(h!=0&&h!=1&&h!=2)throw new E.ErrnoError(28);return c.position=c.stream_ops.llseek(c,d,h),c.ungotten=[],c.position},read:(c,d,h,f,I)=>{if(f<0||I<0)throw new E.ErrnoError(28);if(E.isClosed(c))throw new E.ErrnoError(8);if((2097155&c.flags)==1)throw new E.ErrnoError(8);if(E.isDir(c.node.mode))throw new E.ErrnoError(31);if(!c.stream_ops.read)throw new E.ErrnoError(28);var b=I!==void 0;if(b){if(!c.seekable)throw new E.ErrnoError(70)}else I=c.position;var R=c.stream_ops.read(c,d,h,f,I);return b||(c.position+=R),R},write:(c,d,h,f,I,b)=>{if(f<0||I<0)throw new E.ErrnoError(28);if(E.isClosed(c))throw new E.ErrnoError(8);if(!(2097155&c.flags))throw new E.ErrnoError(8);if(E.isDir(c.node.mode))throw new E.ErrnoError(31);if(!c.stream_ops.write)throw new E.ErrnoError(28);c.seekable&&1024&c.flags&&E.llseek(c,0,2);var R=I!==void 0;if(R){if(!c.seekable)throw new E.ErrnoError(70)}else I=c.position;var v=c.stream_ops.write(c,d,h,f,I,b);return R||(c.position+=v),v},allocate:(c,d,h)=>{if(E.isClosed(c))throw new E.ErrnoError(8);if(d<0||h<=0)throw new E.ErrnoError(28);if(!(2097155&c.flags))throw new E.ErrnoError(8);if(!E.isFile(c.node.mode)&&!E.isDir(c.node.mode))throw new E.ErrnoError(43);if(!c.stream_ops.allocate)throw new E.ErrnoError(138);c.stream_ops.allocate(c,d,h)},mmap:(c,d,h,f,I)=>{if(2&f&&!(2&I)&&(2097155&c.flags)!=2)throw new E.ErrnoError(2);if((2097155&c.flags)==1)throw new E.ErrnoError(2);if(!c.stream_ops.mmap)throw new E.ErrnoError(43);return c.stream_ops.mmap(c,d,h,f,I)},msync:(c,d,h,f,I)=>c.stream_ops.msync?c.stream_ops.msync(c,d,h,f,I):0,munmap:c=>0,ioctl:(c,d,h)=>{if(!c.stream_ops.ioctl)throw new E.ErrnoError(59);return c.stream_ops.ioctl(c,d,h)},readFile:(c,d={})=>{if(d.flags=d.flags||0,d.encoding=d.encoding||"binary",d.encoding!=="utf8"&&d.encoding!=="binary")throw new Error(`Invalid encoding type "${d.encoding}"`);var h,f=E.open(c,d.flags),I=E.stat(c).size,b=new Uint8Array(I);return E.read(f,b,0,I,0),d.encoding==="utf8"?h=Lt(b,0):d.encoding==="binary"&&(h=b),E.close(f),h},writeFile:(c,d,h={})=>{h.flags=h.flags||577;var f=E.open(c,h.flags,h.mode);if(typeof d=="string"){var I=new Uint8Array(Do(d)+1),b=wo(d,I,0,I.length);E.write(f,I,0,b,void 0,h.canOwn)}else{if(!ArrayBuffer.isView(d))throw new Error("Unsupported data type");E.write(f,d,0,d.byteLength,void 0,h.canOwn)}E.close(f)},cwd:()=>E.currentPath,chdir:c=>{var d=E.lookupPath(c,{follow:!0});if(d.node===null)throw new E.ErrnoError(44);if(!E.isDir(d.node.mode))throw new E.ErrnoError(54);var h=E.nodePermissions(d.node,"x");if(h)throw new E.ErrnoError(h);E.currentPath=d.path},createDefaultDirectories:()=>{E.mkdir("/tmp"),E.mkdir("/home"),E.mkdir("/home/web_user")},createDefaultDevices:()=>{E.mkdir("/dev"),E.registerDevice(E.makedev(1,3),{read:()=>0,write:(f,I,b,R,v)=>R}),E.mkdev("/dev/null",E.makedev(1,3)),Ir.register(E.makedev(5,0),Ir.default_tty_ops),Ir.register(E.makedev(6,0),Ir.default_tty1_ops),E.mkdev("/dev/tty",E.makedev(5,0)),E.mkdev("/dev/tty1",E.makedev(6,0));var c=new Uint8Array(1024),d=0,h=()=>(d===0&&(d=Un(c).byteLength),c[--d]);E.createDevice("/dev","random",h),E.createDevice("/dev","urandom",h),E.mkdir("/dev/shm"),E.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{E.mkdir("/proc");var c=E.mkdir("/proc/self");E.mkdir("/proc/self/fd"),E.mount({mount:()=>{var d=E.createNode(c,"fd",16895,73);return d.node_ops={lookup:(h,f)=>{var I=+f,b=E.getStreamChecked(I),R={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>b.path}};return R.parent=R,R}},d}},{},"/proc/self/fd")},createStandardStreams:()=>{o.stdin?E.createDevice("/dev","stdin",o.stdin):E.symlink("/dev/tty","/dev/stdin"),o.stdout?E.createDevice("/dev","stdout",null,o.stdout):E.symlink("/dev/tty","/dev/stdout"),o.stderr?E.createDevice("/dev","stderr",null,o.stderr):E.symlink("/dev/tty1","/dev/stderr"),E.open("/dev/stdin",0),E.open("/dev/stdout",1),E.open("/dev/stderr",1)},ensureErrnoError:()=>{E.ErrnoError||(E.ErrnoError=function(c,d){this.name="ErrnoError",this.node=d,this.setErrno=function(h){this.errno=h},this.setErrno(c),this.message="FS error"},E.ErrnoError.prototype=new Error,E.ErrnoError.prototype.constructor=E.ErrnoError,[44].forEach(c=>{E.genericErrors[c]=new E.ErrnoError(c),E.genericErrors[c].stack="<generic error, no stack>"}))},staticInit:()=>{E.ensureErrnoError(),E.nameTable=new Array(4096),E.mount(j,{},"/"),E.createDefaultDirectories(),E.createDefaultDevices(),E.createSpecialDirectories(),E.filesystems={MEMFS:j}},init:(c,d,h)=>{E.init.initialized=!0,E.ensureErrnoError(),o.stdin=c||o.stdin,o.stdout=d||o.stdout,o.stderr=h||o.stderr,E.createStandardStreams()},quit:()=>{E.init.initialized=!1;for(var c=0;c<E.streams.length;c++){var d=E.streams[c];d&&E.close(d)}},findObject:(c,d)=>{var h=E.analyzePath(c,d);return h.exists?h.object:null},analyzePath:(c,d)=>{try{c=(f=E.lookupPath(c,{follow:!d})).path}catch(I){}var h={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var f=E.lookupPath(c,{parent:!0});h.parentExists=!0,h.parentPath=f.path,h.parentObject=f.node,h.name=me.basename(c),f=E.lookupPath(c,{follow:!d}),h.exists=!0,h.path=f.path,h.object=f.node,h.name=f.node.name,h.isRoot=f.path==="/"}catch(I){h.error=I.errno}return h},createPath:(c,d,h,f)=>{c=typeof c=="string"?c:E.getPath(c);for(var I=d.split("/").reverse();I.length;){var b=I.pop();if(b){var R=me.join2(c,b);try{E.mkdir(R)}catch(v){}c=R}}return R},createFile:(c,d,h,f,I)=>{var b=me.join2(typeof c=="string"?c:E.getPath(c),d),R=li(f,I);return E.create(b,R)},createDataFile:(c,d,h,f,I,b)=>{var R=d;c&&(c=typeof c=="string"?c:E.getPath(c),R=d?me.join2(c,d):c);var v=li(f,I),U=E.create(R,v);if(h){if(typeof h=="string"){for(var L=new Array(h.length),K=0,ae=h.length;K<ae;++K)L[K]=h.charCodeAt(K);h=L}E.chmod(U,146|v);var ce=E.open(U,577);E.write(ce,h,0,h.length,0,b),E.close(ce),E.chmod(U,v)}return U},createDevice:(c,d,h,f)=>{var I=me.join2(typeof c=="string"?c:E.getPath(c),d),b=li(!!h,!!f);E.createDevice.major||(E.createDevice.major=64);var R=E.makedev(E.createDevice.major++,0);return E.registerDevice(R,{open:v=>{v.seekable=!1},close:v=>{f&&f.buffer&&f.buffer.length&&f(10)},read:(v,U,L,K,ae)=>{for(var ce=0,ne=0;ne<K;ne++){var Ce;try{Ce=h()}catch(Ve){throw new E.ErrnoError(29)}if(Ce===void 0&&ce===0)throw new E.ErrnoError(6);if(Ce==null)break;ce++,U[L+ne]=Ce}return ce&&(v.node.timestamp=Date.now()),ce},write:(v,U,L,K,ae)=>{for(var ce=0;ce<K;ce++)try{f(U[L+ce])}catch(ne){throw new E.ErrnoError(29)}return K&&(v.node.timestamp=Date.now()),ce}}),E.mkdev(I,b,R)},forceLoadFile:c=>{if(c.isDevice||c.isFolder||c.link||c.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(!s)throw new Error("Cannot load without read() or XMLHttpRequest.");try{c.contents=Rs(s(c.url),!0),c.usedBytes=c.contents.length}catch(d){throw new E.ErrnoError(29)}},createLazyFile:(c,d,h,f,I)=>{function b(){this.lengthKnown=!1,this.chunks=[]}if(b.prototype.get=function(ae){if(!(ae>this.length-1||ae<0)){var ce=ae%this.chunkSize,ne=ae/this.chunkSize|0;return this.getter(ne)[ce]}},b.prototype.setDataGetter=function(ae){this.getter=ae},b.prototype.cacheLength=function(){var ae=new XMLHttpRequest;if(ae.open("HEAD",h,!1),ae.send(null),!(ae.status>=200&&ae.status<300||ae.status===304))throw new Error("Couldn't load "+h+". Status: "+ae.status);var ce,ne=Number(ae.getResponseHeader("Content-length")),Ce=(ce=ae.getResponseHeader("Accept-Ranges"))&&ce==="bytes",Ve=(ce=ae.getResponseHeader("Content-Encoding"))&&ce==="gzip",Me=1048576;Ce||(Me=ne);var ot=this;ot.setDataGetter(et=>{var Et=et*Me,eo=(et+1)*Me-1;if(eo=Math.min(eo,ne-1),ot.chunks[et]===void 0&&(ot.chunks[et]=((ur,Vo)=>{if(ur>Vo)throw new Error("invalid range ("+ur+", "+Vo+") or no bytes requested!");if(Vo>ne-1)throw new Error("only "+ne+" bytes available! programmer error!");var mt=new XMLHttpRequest;if(mt.open("GET",h,!1),ne!==Me&&mt.setRequestHeader("Range","bytes="+ur+"-"+Vo),mt.responseType="arraybuffer",mt.overrideMimeType&&mt.overrideMimeType("text/plain; charset=x-user-defined"),mt.send(null),!(mt.status>=200&&mt.status<300||mt.status===304))throw new Error("Couldn't load "+h+". Status: "+mt.status);return mt.response!==void 0?new Uint8Array(mt.response||[]):Rs(mt.responseText||"",!0)})(Et,eo)),ot.chunks[et]===void 0)throw new Error("doXHR failed!");return ot.chunks[et]}),!Ve&&ne||(Me=ne=1,ne=this.getter(0).length,Me=ne,C("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=ne,this._chunkSize=Me,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!g)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var R=new b;Object.defineProperties(R,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var v={isDevice:!1,contents:R}}else v={isDevice:!1,url:h};var U=E.createFile(c,d,v,f,I);v.contents?U.contents=v.contents:v.url&&(U.contents=null,U.url=v.url),Object.defineProperties(U,{usedBytes:{get:function(){return this.contents.length}}});var L={};function K(ae,ce,ne,Ce,Ve){var Me=ae.node.contents;if(Ve>=Me.length)return 0;var ot=Math.min(Me.length-Ve,Ce);if(Me.slice)for(var et=0;et<ot;et++)ce[ne+et]=Me[Ve+et];else for(et=0;et<ot;et++)ce[ne+et]=Me.get(Ve+et);return ot}return Object.keys(U.stream_ops).forEach(ae=>{var ce=U.stream_ops[ae];L[ae]=function(){return E.forceLoadFile(U),ce.apply(null,arguments)}}),L.read=(ae,ce,ne,Ce,Ve)=>(E.forceLoadFile(U),K(ae,ce,ne,Ce,Ve)),L.mmap=(ae,ce,ne,Ce,Ve)=>{E.forceLoadFile(U);var Me=Fn();if(!Me)throw new E.ErrnoError(48);return K(ae,Z,Me,ce,ne),{ptr:Me,allocated:!0}},U.stream_ops=L,U}},ji=(c,d)=>c?Lt(ue,c,d):"",yt={DEFAULT_POLLMASK:5,calculateAt:function(c,d,h){if(me.isAbs(d))return d;var f;if(c===-100?f=E.cwd():f=yt.getStreamFromFD(c).path,d.length==0){if(!h)throw new E.ErrnoError(44);return f}return me.join2(f,d)},doStat:function(c,d,h){try{var f=c(d)}catch(v){if(v&&v.node&&me.normalize(d)!==me.normalize(E.getPath(v.node)))return-54;throw v}H[h>>2]=f.dev,H[h+4>>2]=f.mode,Pe[h+8>>2]=f.nlink,H[h+12>>2]=f.uid,H[h+16>>2]=f.gid,H[h+20>>2]=f.rdev,Ke=[f.size>>>0,(Ee=f.size,+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],H[h+24>>2]=Ke[0],H[h+28>>2]=Ke[1],H[h+32>>2]=4096,H[h+36>>2]=f.blocks;var I=f.atime.getTime(),b=f.mtime.getTime(),R=f.ctime.getTime();return Ke=[Math.floor(I/1e3)>>>0,(Ee=Math.floor(I/1e3),+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],H[h+40>>2]=Ke[0],H[h+44>>2]=Ke[1],Pe[h+48>>2]=I%1e3*1e3,Ke=[Math.floor(b/1e3)>>>0,(Ee=Math.floor(b/1e3),+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],H[h+56>>2]=Ke[0],H[h+60>>2]=Ke[1],Pe[h+64>>2]=b%1e3*1e3,Ke=[Math.floor(R/1e3)>>>0,(Ee=Math.floor(R/1e3),+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],H[h+72>>2]=Ke[0],H[h+76>>2]=Ke[1],Pe[h+80>>2]=R%1e3*1e3,Ke=[f.ino>>>0,(Ee=f.ino,+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],H[h+88>>2]=Ke[0],H[h+92>>2]=Ke[1],0},doMsync:function(c,d,h,f,I){if(!E.isFile(d.node.mode))throw new E.ErrnoError(43);if(2&f)return 0;var b=ue.slice(c,c+h);E.msync(d,b,I,h,f)},varargs:void 0,get:()=>(yt.varargs+=4,H[yt.varargs-4>>2]),getStr:c=>ji(c),getStreamFromFD:function(c){return E.getStreamChecked(c)}};function mi(c){switch(c){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${c}`)}}var Ec=void 0;function k(c){for(var d="",h=c;ue[h];)d+=Ec[ue[h++]];return d}var qi={},dr={},vs={},zi=void 0;function Ue(c){throw new zi(c)}var _c=void 0;function er(c){throw new _c(c)}function Gr(c,d,h){function f(v){var U=h(v);U.length!==c.length&&er("Mismatched type converter count");for(var L=0;L<c.length;++L)tr(c[L],U[L])}c.forEach(function(v){vs[v]=d});var I=new Array(d.length),b=[],R=0;d.forEach((v,U)=>{dr.hasOwnProperty(v)?I[U]=dr[v]:(b.push(v),qi.hasOwnProperty(v)||(qi[v]=[]),qi[v].push(()=>{I[U]=dr[v],++R===b.length&&f(I)}))}),b.length===0&&f(I)}function tr(c,d,h={}){if(!("argPackAdvance"in d))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(f,I,b={}){var R=I.name;if(f||Ue(`type "${R}" must have a positive integer typeid pointer`),dr.hasOwnProperty(f)){if(b.ignoreDuplicateRegistrations)return;Ue(`Cannot register type '${R}' twice`)}if(dr[f]=I,delete vs[f],qi.hasOwnProperty(f)){var v=qi[f];delete qi[f],v.forEach(U=>U())}}(c,d,h)}function Tc(c){if(!(this instanceof Sr)||!(c instanceof Sr))return!1;for(var d=this.$$.ptrType.registeredClass,h=this.$$.ptr,f=c.$$.ptrType.registeredClass,I=c.$$.ptr;d.baseClass;)h=d.upcast(h),d=d.baseClass;for(;f.baseClass;)I=f.upcast(I),f=f.baseClass;return d===f&&h===I}function $n(c){Ue(c.$$.ptrType.registeredClass.name+" instance already deleted")}var Mo=!1;function Ic(c){}function Sc(c){c.count.value-=1,c.count.value===0&&function(d){d.smartPtr?d.smartPtrType.rawDestructor(d.smartPtr):d.ptrType.registeredClass.rawDestructor(d.ptr)}(c)}function yc(c,d,h){if(d===h)return c;if(h.baseClass===void 0)return null;var f=yc(c,d,h.baseClass);return f===null?null:h.downcast(f)}var Oo={};function hl(){return Object.keys(Po).length}function pl(){var c=[];for(var d in Po)Po.hasOwnProperty(d)&&c.push(Po[d]);return c}var xo=[];function rr(){for(;xo.length;){var c=xo.pop();c.$$.deleteScheduled=!1,c.delete()}}var jr=void 0;function Ac(c){jr=c,xo.length&&jr&&jr(rr)}var Po={};function Ji(c,d){return d=function(h,f){for(f===void 0&&Ue("ptr should not be undefined");h.baseClass;)f=h.upcast(f),h=h.baseClass;return f}(c,d),Po[d]}function ko(c,d){return d.ptrType&&d.ptr||er("makeClassHandle requires ptr and ptrType"),!!d.smartPtrType!=!!d.smartPtr&&er("Both smartPtrType and smartPtr must be specified"),d.count={value:1},Xi(Object.create(c,{$$:{value:d}}))}function bc(c){var d=this.getPointee(c);if(!d)return this.destructor(c),null;var h=Ji(this.registeredClass,d);if(h!==void 0){if(h.$$.count.value===0)return h.$$.ptr=d,h.$$.smartPtr=c,h.clone();var f=h.clone();return this.destructor(c),f}function I(){return this.isSmartPointer?ko(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:d,smartPtrType:this,smartPtr:c}):ko(this.registeredClass.instancePrototype,{ptrType:this,ptr:c})}var b,R=this.registeredClass.getActualType(d),v=Oo[R];if(!v)return I.call(this);b=this.isConst?v.constPointerType:v.pointerType;var U=yc(d,this.registeredClass,b.registeredClass);return U===null?I.call(this):this.isSmartPointer?ko(b.registeredClass.instancePrototype,{ptrType:b,ptr:U,smartPtrType:this,smartPtr:c}):ko(b.registeredClass.instancePrototype,{ptrType:b,ptr:U})}var Xi=function(c){return typeof FinalizationRegistry=="undefined"?(Xi=d=>d,c):(Mo=new FinalizationRegistry(d=>{Sc(d.$$)}),Ic=d=>Mo.unregister(d),(Xi=d=>{var h=d.$$;if(h.smartPtr){var f={$$:h};Mo.register(d,f,d)}return d})(c))};function Rc(){if(this.$$.ptr||$n(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var c,d=Xi(Object.create(Object.getPrototypeOf(this),{$$:{value:(c=this.$$,{count:c.count,deleteScheduled:c.deleteScheduled,preservePointerOnDelete:c.preservePointerOnDelete,ptr:c.ptr,ptrType:c.ptrType,smartPtr:c.smartPtr,smartPtrType:c.smartPtrType})}}));return d.$$.count.value+=1,d.$$.deleteScheduled=!1,d}function fl(){this.$$.ptr||$n(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Ue("Object already scheduled for deletion"),Ic(this),Sc(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function vc(){return!this.$$.ptr}function Cc(){return this.$$.ptr||$n(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Ue("Object already scheduled for deletion"),xo.push(this),xo.length===1&&jr&&jr(rr),this.$$.deleteScheduled=!0,this}function Sr(){}function Ut(c){if(c===void 0)return"_unknown";var d=(c=c.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return d>=48&&d<=57?`_${c}`:c}function Cs(c,d){return c=Ut(c),{[c]:function(){return d.apply(this,arguments)}}[c]}function Nc(c,d,h){if(c[d].overloadTable===void 0){var f=c[d];c[d]=function(){return c[d].overloadTable.hasOwnProperty(arguments.length)||Ue(`Function '${h}' called with an invalid number of arguments (${arguments.length}) - expects one of (${c[d].overloadTable})!`),c[d].overloadTable[arguments.length].apply(this,arguments)},c[d].overloadTable=[],c[d].overloadTable[f.argCount]=f}}function Ns(c,d,h,f,I,b,R,v){this.name=c,this.constructor=d,this.instancePrototype=h,this.rawDestructor=f,this.baseClass=I,this.getActualType=b,this.upcast=R,this.downcast=v,this.pureVirtualFunctions=[]}function Lo(c,d,h){for(;d!==h;)d.upcast||Ue(`Expected null or instance of ${h.name}, got an instance of ${d.name}`),c=d.upcast(c),d=d.baseClass;return c}function gl(c,d){if(d===null)return this.isReference&&Ue(`null is not a valid ${this.name}`),0;d.$$||Ue(`Cannot pass "${Os(d)}" as a ${this.name}`),d.$$.ptr||Ue(`Cannot pass deleted object as a pointer of type ${this.name}`);var h=d.$$.ptrType.registeredClass;return Lo(d.$$.ptr,h,this.registeredClass)}function El(c,d){var h;if(d===null)return this.isReference&&Ue(`null is not a valid ${this.name}`),this.isSmartPointer?(h=this.rawConstructor(),c!==null&&c.push(this.rawDestructor,h),h):0;d.$$||Ue(`Cannot pass "${Os(d)}" as a ${this.name}`),d.$$.ptr||Ue(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&d.$$.ptrType.isConst&&Ue(`Cannot convert argument of type ${d.$$.smartPtrType?d.$$.smartPtrType.name:d.$$.ptrType.name} to parameter type ${this.name}`);var f=d.$$.ptrType.registeredClass;if(h=Lo(d.$$.ptr,f,this.registeredClass),this.isSmartPointer)switch(d.$$.smartPtr===void 0&&Ue("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:d.$$.smartPtrType===this?h=d.$$.smartPtr:Ue(`Cannot convert argument of type ${d.$$.smartPtrType?d.$$.smartPtrType.name:d.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:h=d.$$.smartPtr;break;case 2:if(d.$$.smartPtrType===this)h=d.$$.smartPtr;else{var I=d.clone();h=this.rawShare(h,Zi.toHandle(function(){I.delete()})),c!==null&&c.push(this.rawDestructor,h)}break;default:Ue("Unsupporting sharing policy")}return h}function Dc(c,d){if(d===null)return this.isReference&&Ue(`null is not a valid ${this.name}`),0;d.$$||Ue(`Cannot pass "${Os(d)}" as a ${this.name}`),d.$$.ptr||Ue(`Cannot pass deleted object as a pointer of type ${this.name}`),d.$$.ptrType.isConst&&Ue(`Cannot convert argument of type ${d.$$.ptrType.name} to parameter type ${this.name}`);var h=d.$$.ptrType.registeredClass;return Lo(d.$$.ptr,h,this.registeredClass)}function Uo(c){return this.fromWireType(H[c>>2])}function _l(c){return this.rawGetPointee&&(c=this.rawGetPointee(c)),c}function wc(c){this.rawDestructor&&this.rawDestructor(c)}function Tl(c){c!==null&&c.delete()}function yr(c,d,h,f,I,b,R,v,U,L,K){this.name=c,this.registeredClass=d,this.isReference=h,this.isConst=f,this.isSmartPointer=I,this.pointeeType=b,this.sharingPolicy=R,this.rawGetPointee=v,this.rawConstructor=U,this.rawShare=L,this.rawDestructor=K,I||d.baseClass!==void 0?this.toWireType=El:f?(this.toWireType=gl,this.destructorFunction=null):(this.toWireType=Dc,this.destructorFunction=null)}var Ds=[],Mc=c=>{var d=Ds[c];return d||(c>=Ds.length&&(Ds.length=c+1),Ds[c]=d=Pn.get(c)),d},Il=(c,d,h)=>c.includes("j")?((f,I,b)=>{var R=o["dynCall_"+f];return b&&b.length?R.apply(null,[I].concat(b)):R.call(null,I)})(c,d,h):Mc(d).apply(null,h);function Qi(c,d){var h,f,I,b=(c=k(c)).includes("j")?(h=c,f=d,I=[],function(){return I.length=0,Object.assign(I,arguments),Il(h,f,I)}):Mc(d);return typeof b!="function"&&Ue(`unknown function pointer with signature ${c}: ${d}`),b}var Oc=void 0;function ws(c){var d=br(c),h=k(d);return Nt(d),h}function Ms(c,d){var h=[],f={};throw d.forEach(function I(b){f[b]||dr[b]||(vs[b]?vs[b].forEach(I):(h.push(b),f[b]=!0))}),new Oc(`${c}: `+h.map(ws).join([", "]))}function Bn(c,d){for(var h=[],f=0;f<c;f++)h.push(Pe[d+4*f>>2]);return h}function xc(c){for(;c.length;){var d=c.pop();c.pop()(d)}}function Hn(c,d){if(!(c instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof c} which is not a function`);var h=Cs(c.name||"unknownFunctionName",function(){});h.prototype=c.prototype;var f=new h,I=c.apply(f,d);return I instanceof Object?I:f}function Yi(c,d,h,f,I,b){var R=d.length;R<2&&Ue("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var v=d[1]!==null&&h!==null,U=!1,L=1;L<d.length;++L)if(d[L]!==null&&d[L].destructorFunction===void 0){U=!0;break}var K=d[0].name!=="void",ae="",ce="";for(L=0;L<R-2;++L)ae+=(L!==0?", ":"")+"arg"+L,ce+=(L!==0?", ":"")+"arg"+L+"Wired";var ne=`
|
|
53
|
+
return function ${Ut(c)}(${ae}) {
|
|
54
54
|
if (arguments.length !== ${R-2}) {
|
|
55
55
|
throwBindingError('function ${c} called with ${arguments.length} arguments, expected ${R-2} args!');
|
|
56
56
|
}`;U&&(ne+=`var destructors = [];
|
|
57
|
-
`);var
|
|
58
|
-
`),L=0;L<R-2;++L)ne+="var arg"+L+"Wired = argType"+L+".toWireType("+
|
|
59
|
-
`,
|
|
57
|
+
`);var Ce=U?"destructors":"null",Ve=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],Me=[Ue,f,I,xc,d[0],d[1]];for(v&&(ne+="var thisWired = classParam.toWireType("+Ce+`, this);
|
|
58
|
+
`),L=0;L<R-2;++L)ne+="var arg"+L+"Wired = argType"+L+".toWireType("+Ce+", arg"+L+"); // "+d[L+2].name+`
|
|
59
|
+
`,Ve.push("argType"+L),Me.push(d[L+2]);if(v&&(ce="thisWired"+(ce.length>0?", ":"")+ce),ne+=(K||b?"var rv = ":"")+"invoker(fn"+(ce.length>0?", ":"")+ce+`);
|
|
60
60
|
`,U)ne+=`runDestructors(destructors);
|
|
61
|
-
`;else for(L=v?1:2;L<d.length;++L){var
|
|
62
|
-
`,
|
|
61
|
+
`;else for(L=v?1:2;L<d.length;++L){var ot=L===1?"thisWired":"arg"+(L-2)+"Wired";d[L].destructorFunction!==null&&(ne+=ot+"_dtor("+ot+"); // "+d[L].name+`
|
|
62
|
+
`,Ve.push(ot+"_dtor"),Me.push(d[L].destructorFunction))}return K&&(ne+=`var ret = retType.fromWireType(rv);
|
|
63
63
|
return ret;
|
|
64
64
|
`),ne+=`}
|
|
65
|
-
`,
|
|
66
|
-
`+d.replace(/^Error(:[^\n]*)?\n/,""))})).prototype=Object.create(
|
|
67
|
-
`,ae=0;for(L=0;L<c-1;++L)
|
|
68
|
-
`,ae+=h[L+1].argPackAdvance;for(
|
|
69
|
-
`,L=0;L<c-1;++L)h[L+1].deleteObject&&(
|
|
70
|
-
`);f.isVoid||(
|
|
71
|
-
`),
|
|
72
|
-
`,R.push(Z);var ce,ne,Ne=Bn(Function,R).apply(null,v);return ce=Ne,ne=z.length,z.push(ce),b=ne,re[S]=b,b},a:()=>{$r("")},e:function(){return Date.now()},v:()=>ue.length,A:(c,d,h)=>ue.copyWithin(c,d,d+h),u:c=>{ue.length,$r("OOM")},y:(c,d)=>{var h=0;return pe().forEach(function(f,S){var b=d+h;Pe[c+4*S>>2]=b,((R,v)=>{for(var U=0;U<R.length;++U)Y[0|v++]=R.charCodeAt(U);Y[0|v]=0})(f,b),h+=f.length+1}),0},z:(c,d)=>{var h=pe();Pe[c>>2]=h.length;var f=0;return h.forEach(function(S){f+=S.length+1}),Pe[d>>2]=f,0},i:function(c){try{var d=St.getStreamFromFD(c);return E.close(d),0}catch(h){if(E===void 0||h.name!=="ErrnoError")throw h;return h.errno}},x:function(c,d){try{var h=St.getStreamFromFD(c),f=h.tty?2:E.isDir(h.mode)?3:E.isLink(h.mode)?7:4;return Y[d|0]=f,Se[d+2>>1]=0,H=[0,(Te=0,+Math.abs(Te)>=1?Te>0?+Math.floor(Te/4294967296)>>>0:~~+Math.ceil((Te-+(~~Te>>>0))/4294967296)>>>0:0)],W[d+8>>2]=H[0],W[d+12>>2]=H[1],H=[0,(Te=0,+Math.abs(Te)>=1?Te>0?+Math.floor(Te/4294967296)>>>0:~~+Math.ceil((Te-+(~~Te>>>0))/4294967296)>>>0:0)],W[d+16>>2]=H[0],W[d+20>>2]=H[1],0}catch(S){if(E===void 0||S.name!=="ErrnoError")throw S;return S.errno}},B:function(c,d,h,f){try{var S=((b,R,v,U)=>{for(var L=0,Z=0;Z<v;Z++){var ae=Pe[R>>2],ce=Pe[R+4>>2];R+=8;var ne=E.read(b,Y,ae,ce,U);if(ne<0)return-1;if(L+=ne,ne<ce)break;U!==void 0&&(U+=ne)}return L})(St.getStreamFromFD(c),d,h);return Pe[f>>2]=S,0}catch(b){if(E===void 0||b.name!=="ErrnoError")throw b;return b.errno}},s:function(c,d,h,f,S){var b,R,v=(R=h)+2097152>>>0<4194305-!!(b=d)?(b>>>0)+4294967296*R:NaN;try{if(isNaN(v))return 61;var U=St.getStreamFromFD(c);return E.llseek(U,v,f),H=[U.position>>>0,(Te=U.position,+Math.abs(Te)>=1?Te>0?+Math.floor(Te/4294967296)>>>0:~~+Math.ceil((Te-+(~~Te>>>0))/4294967296)>>>0:0)],W[S>>2]=H[0],W[S+4>>2]=H[1],U.getdents&&v===0&&f===0&&(U.getdents=null),0}catch(L){if(E===void 0||L.name!=="ErrnoError")throw L;return L.errno}},h:function(c,d,h,f){try{var S=((b,R,v,U)=>{for(var L=0,Z=0;Z<v;Z++){var ae=Pe[R>>2],ce=Pe[R+4>>2];R+=8;var ne=E.write(b,Y,ae,ce,U);if(ne<0)return-1;L+=ne,U!==void 0&&(U+=ne)}return L})(St.getStreamFromFD(c),d,h);return Pe[f>>2]=S,0}catch(b){if(E===void 0||b.name!=="ErrnoError")throw b;return b.errno}}},Wt=((function(){var c,d,h,f,S={a:Ye};function b(R,v){var U,L,Z=R.exports;return w=(O=Z).E,U=w.buffer,o.HEAP8=Y=new Int8Array(U),o.HEAP16=Se=new Int16Array(U),o.HEAP32=W=new Int32Array(U),o.HEAPU8=ue=new Uint8Array(U),o.HEAPU16=Ke=new Uint16Array(U),o.HEAPU32=Pe=new Uint32Array(U),o.HEAPF32=Dn=new Float32Array(U),o.HEAPF64=wn=new Float64Array(U),Mn=O.H,L=O.F,yc.unshift(L),Ao(),Z}if(ys(),o.instantiateWasm)try{return o.instantiateWasm(S,b)}catch(R){D("Module.instantiateWasm callback failed with error: "+R),r(R)}(c=A,d=ni,h=S,f=function(R){b(R.instance)},c||typeof WebAssembly.instantiateStreaming!="function"||xt(d)||typeof fetch!="function"?Br(d,h,f):fetch(d,{credentials:"same-origin"}).then(R=>WebAssembly.instantiateStreaming(R,h).then(f,function(v){return D("wasm streaming compile failed: "+v),D("falling back to ArrayBuffer instantiation"),Br(d,h,f)}))).catch(r)})(),c=>(Wt=O.G)(c)),Sr=c=>(Sr=O.I)(c),jn=()=>(jn=O.J)(),qn=c=>(qn=O.K)(c),yr=(o.__embind_initialize_bindings=()=>(o.__embind_initialize_bindings=O.L)(),c=>(yr=O.M)(c));o.dynCall_jiji=(c,d,h,f,S)=>(o.dynCall_jiji=O.N)(c,d,h,f,S),o._ff_h264_cabac_tables=67061;function zn(){function c(){ft||(ft=!0,o.calledRun=!0,On||(o.noFSInit||E.init.initialized||E.init(),E.ignorePermissions=!1,se.init(),Fi(yc),e(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),(function(){if(o.postRun)for(typeof o.postRun=="function"&&(o.postRun=[o.postRun]);o.postRun.length;)yo(o.postRun.shift());Fi(Fr)})()))}dr>0||((function(){if(o.preRun)for(typeof o.preRun=="function"&&(o.preRun=[o.preRun]);o.preRun.length;)xn(o.preRun.shift());Fi(Sc)})(),dr>0||(o.setStatus?(o.setStatus("Running..."),setTimeout(function(){setTimeout(function(){o.setStatus("")},1),c()},1)):c()))}if(si=function c(){ft||zn(),ft||(si=c)},o.preInit)for(typeof o.preInit=="function"&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return zn(),t.ready}})(),xy=Oy,Py=class extends nc{constructor(i){super(xy,i!=null&&i.wasmPath?fetch(i==null?void 0:i.wasmPath).then(t=>t.arrayBuffer()):void 0,i==null?void 0:i.workerMode,i==null?void 0:i.canvas,i==null?void 0:i.yuvMode)}},cP=(()=>{var i=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return function(t={}){var e,r,o=t;o.ready=new Promise((I,_)=>{e=I,r=_});var s,n=Object.assign({},o),a=typeof window=="object",u=typeof importScripts=="function",m=(typeof process=="object"&&typeof process.versions=="object"&&process.versions.node,"");(a||u)&&(u?m=self.location.href:typeof document!="undefined"&&document.currentScript&&(m=document.currentScript.src),i&&(m=i),m=m.indexOf("blob:")!==0?m.substr(0,m.replace(/[?#].*/,"").lastIndexOf("/")+1):"",u&&(s=I=>{var _=new XMLHttpRequest;return _.open("GET",I,!1),_.responseType="arraybuffer",_.send(null),new Uint8Array(_.response)}));var p,g=o.print||console.log.bind(console),T=o.printErr||console.error.bind(console);Object.assign(o,n),n=null,o.arguments&&o.arguments,o.thisProgram&&o.thisProgram,o.quit&&o.quit,o.wasmBinary&&(p=o.wasmBinary);var A,C;o.noExitRuntime,typeof WebAssembly!="object"&&dr("no native wasm support detected");var D,w,O,Y,ue,Se,Ke,W,Pe,Dn=!1,wn=[],Mn=[],On=[];function Sc(I){wn.unshift(I)}function yc(I){On.unshift(I)}var Fr=0,xn=null,yo=null;function dr(I){o.onAbort&&o.onAbort(I),T(I="Aborted("+I+")"),Dn=!0,I+=". Build with -sASSERTIONS for more info.";var _=new WebAssembly.RuntimeError(I);throw r(_),_}var te,si;function ys(I){return I.startsWith("data:application/octet-stream;base64,")}function Ao(I){if(I==te&&p)return new Uint8Array(p);if(s)return s(I);throw"both async and sync fetching of the wasm failed"}function $r(I,_,N){return(function(P){return p||!a&&!u||typeof fetch!="function"?Promise.resolve().then(()=>Ao(P)):fetch(P,{credentials:"same-origin"}).then(B=>{if(!B.ok)throw"failed to load wasm binary file at '"+P+"'";return B.arrayBuffer()}).catch(()=>Ao(P))})(I).then(P=>WebAssembly.instantiate(P,_)).then(P=>P).then(N,P=>{T("failed to asynchronously prepare wasm: "+P),dr(P)})}ys(te="videodec_simd.wasm")||(si=te,te=o.locateFile?o.locateFile(si,m):m+si);var ni=I=>{for(;I.length>0;)I.shift()(o)};function Pn(I){this.excPtr=I,this.ptr=I-24,this.set_type=function(_){Se[this.ptr+4>>2]=_},this.get_type=function(){return Se[this.ptr+4>>2]},this.set_destructor=function(_){Se[this.ptr+8>>2]=_},this.get_destructor=function(){return Se[this.ptr+8>>2]},this.set_caught=function(_){_=_?1:0,D[this.ptr+12|0]=_},this.get_caught=function(){return D[this.ptr+12|0]!=0},this.set_rethrown=function(_){_=_?1:0,D[this.ptr+13|0]=_},this.get_rethrown=function(){return D[this.ptr+13|0]!=0},this.init=function(_,N){this.set_adjusted_ptr(0),this.set_type(_),this.set_destructor(N)},this.set_adjusted_ptr=function(_){Se[this.ptr+16>>2]=_},this.get_adjusted_ptr=function(){return Se[this.ptr+16>>2]},this.get_exception_ptr=function(){if(Gn(this.get_type()))return Se[this.excPtr>>2];var _=this.get_adjusted_ptr();return _!==0?_:this.excPtr}}function Te(I){switch(I){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${I}`)}}var H=void 0;function xt(I){for(var _="",N=I;w[N];)_+=H[w[N++]];return _}var ai={},Br={},Fi={},$i=void 0;function me(I){throw new $i(I)}var kn=void 0;function Xt(I){throw new kn(I)}function Bi(I,_,N){function P(Q){var re=N(Q);re.length!==I.length&&Xt("Mismatched type converter count");for(var j=0;j<I.length;++j)Pt(I[j],re[j])}I.forEach(function(Q){Fi[Q]=_});var B=new Array(_.length),G=[],z=0;_.forEach((Q,re)=>{Br.hasOwnProperty(Q)?B[re]=Br[Q]:(G.push(Q),ai.hasOwnProperty(Q)||(ai[Q]=[]),ai[Q].push(()=>{B[re]=Br[Q],++z===G.length&&P(B)}))}),G.length===0&&P(B)}function Pt(I,_,N={}){if(!("argPackAdvance"in _))throw new TypeError("registerType registeredInstance requires argPackAdvance");return(function(P,B,G={}){var z=B.name;if(P||me(`type "${z}" must have a positive integer typeid pointer`),Br.hasOwnProperty(P)){if(G.ignoreDuplicateRegistrations)return;me(`Cannot register type '${z}' twice`)}if(Br[P]=B,delete Fi[P],ai.hasOwnProperty(P)){var Q=ai[P];delete ai[P],Q.forEach(re=>re())}})(I,_,N)}function Ln(I){if(!(this instanceof Kt)||!(I instanceof Kt))return!1;for(var _=this.$$.ptrType.registeredClass,N=this.$$.ptr,P=I.$$.ptrType.registeredClass,B=I.$$.ptr;_.baseClass;)N=_.upcast(N),_=_.baseClass;for(;P.baseClass;)B=P.upcast(B),P=P.baseClass;return _===P&&N===B}function bo(I){me(I.$$.ptrType.registeredClass.name+" instance already deleted")}var Ro=!1;function As(I){}function se(I){I.count.value-=1,I.count.value===0&&(function(_){_.smartPtr?_.smartPtrType.rawDestructor(_.smartPtr):_.ptrType.registeredClass.rawDestructor(_.ptr)})(I)}function Un(I,_,N){if(_===N)return I;if(N.baseClass===void 0)return null;var P=Un(I,_,N.baseClass);return P===null?null:N.downcast(P)}var Re={};function pl(){return Object.keys(k).length}function fl(){var I=[];for(var _ in k)k.hasOwnProperty(_)&&I.push(k[_]);return I}var ci=[];function E(){for(;ci.length;){var I=ci.pop();I.$$.deleteScheduled=!1,I.delete()}}var Hi=void 0;function St(I){Hi=I,ci.length&&Hi&&Hi(E)}var k={};function Ac(I,_){return _=(function(N,P){for(P===void 0&&me("ptr should not be undefined");N.baseClass;)P=N.upcast(P),N=N.baseClass;return P})(I,_),k[_]}function Ct(I,_){return _.ptrType&&_.ptr||Xt("makeClassHandle requires ptr and ptrType"),!!_.smartPtrType!=!!_.smartPtr&&Xt("Both smartPtrType and smartPtr must be specified"),_.count={value:1},ur(Object.create(I,{$$:{value:_}}))}function Wi(I){var _=this.getPointee(I);if(!_)return this.destructor(I),null;var N=Ac(this.registeredClass,_);if(N!==void 0){if(N.$$.count.value===0)return N.$$.ptr=_,N.$$.smartPtr=I,N.clone();var P=N.clone();return this.destructor(I),P}function B(){return this.isSmartPointer?Ct(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:_,smartPtrType:this,smartPtr:I}):Ct(this.registeredClass.instancePrototype,{ptrType:this,ptr:I})}var G,z=this.registeredClass.getActualType(_),Q=Re[z];if(!Q)return B.call(this);G=this.isConst?Q.constPointerType:Q.pointerType;var re=Un(_,this.registeredClass,G.registeredClass);return re===null?B.call(this):this.isSmartPointer?Ct(G.registeredClass.instancePrototype,{ptrType:G,ptr:re,smartPtrType:this,smartPtr:I}):Ct(G.registeredClass.instancePrototype,{ptrType:G,ptr:re})}var ur=function(I){return typeof FinalizationRegistry=="undefined"?(ur=_=>_,I):(Ro=new FinalizationRegistry(_=>{se(_.$$)}),As=_=>Ro.unregister(_),(ur=_=>{var N=_.$$;if(N.smartPtr){var P={$$:N};Ro.register(_,P,_)}return _})(I))};function bs(){if(this.$$.ptr||bo(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var I,_=ur(Object.create(Object.getPrototypeOf(this),{$$:{value:(I=this.$$,{count:I.count,deleteScheduled:I.deleteScheduled,preservePointerOnDelete:I.preservePointerOnDelete,ptr:I.ptr,ptrType:I.ptrType,smartPtr:I.smartPtr,smartPtrType:I.smartPtrType})}}));return _.$$.count.value+=1,_.$$.deleteScheduled=!1,_}function Gi(){this.$$.ptr||bo(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&me("Object already scheduled for deletion"),As(this),se(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Ue(){return!this.$$.ptr}function bc(){return this.$$.ptr||bo(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&me("Object already scheduled for deletion"),ci.push(this),ci.length===1&&Hi&&Hi(E),this.$$.deleteScheduled=!0,this}function Kt(){}function Hr(I){if(I===void 0)return"_unknown";var _=(I=I.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return _>=48&&_<=57?`_${I}`:I}function er(I,_){return I=Hr(I),{[I]:function(){return _.apply(this,arguments)}}[I]}function Rc(I,_,N){if(I[_].overloadTable===void 0){var P=I[_];I[_]=function(){return I[_].overloadTable.hasOwnProperty(arguments.length)||me(`Function '${N}' called with an invalid number of arguments (${arguments.length}) - expects one of (${I[_].overloadTable})!`),I[_].overloadTable[arguments.length].apply(this,arguments)},I[_].overloadTable=[],I[_].overloadTable[P.argCount]=P}}function Vn(I,_,N,P,B,G,z,Q){this.name=I,this.constructor=_,this.instancePrototype=N,this.rawDestructor=P,this.baseClass=B,this.getActualType=G,this.upcast=z,this.downcast=Q,this.pureVirtualFunctions=[]}function vo(I,_,N){for(;_!==N;)_.upcast||me(`Expected null or instance of ${N.name}, got an instance of ${_.name}`),I=_.upcast(I),_=_.baseClass;return I}function vc(I,_){if(_===null)return this.isReference&&me(`null is not a valid ${this.name}`),0;_.$$||me(`Cannot pass "${Mo(_)}" as a ${this.name}`),_.$$.ptr||me(`Cannot pass deleted object as a pointer of type ${this.name}`);var N=_.$$.ptrType.registeredClass;return vo(_.$$.ptr,N,this.registeredClass)}function Cc(I,_){var N;if(_===null)return this.isReference&&me(`null is not a valid ${this.name}`),this.isSmartPointer?(N=this.rawConstructor(),I!==null&&I.push(this.rawDestructor,N),N):0;_.$$||me(`Cannot pass "${Mo(_)}" as a ${this.name}`),_.$$.ptr||me(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&_.$$.ptrType.isConst&&me(`Cannot convert argument of type ${_.$$.smartPtrType?_.$$.smartPtrType.name:_.$$.ptrType.name} to parameter type ${this.name}`);var P=_.$$.ptrType.registeredClass;if(N=vo(_.$$.ptr,P,this.registeredClass),this.isSmartPointer)switch(_.$$.smartPtr===void 0&&me("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:_.$$.smartPtrType===this?N=_.$$.smartPtr:me(`Cannot convert argument of type ${_.$$.smartPtrType?_.$$.smartPtrType.name:_.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:N=_.$$.smartPtr;break;case 2:if(_.$$.smartPtrType===this)N=_.$$.smartPtr;else{var B=_.clone();N=this.rawShare(N,vs.toHandle(function(){B.delete()})),I!==null&&I.push(this.rawDestructor,N)}break;default:me("Unsupporting sharing policy")}return N}function Nc(I,_){if(_===null)return this.isReference&&me(`null is not a valid ${this.name}`),0;_.$$||me(`Cannot pass "${Mo(_)}" as a ${this.name}`),_.$$.ptr||me(`Cannot pass deleted object as a pointer of type ${this.name}`),_.$$.ptrType.isConst&&me(`Cannot convert argument of type ${_.$$.ptrType.name} to parameter type ${this.name}`);var N=_.$$.ptrType.registeredClass;return vo(_.$$.ptr,N,this.registeredClass)}function Co(I){return this.fromWireType(ue[I>>2])}function gl(I){return this.rawGetPointee&&(I=this.rawGetPointee(I)),I}function El(I){this.rawDestructor&&this.rawDestructor(I)}function No(I){I!==null&&I.delete()}function tr(I,_,N,P,B,G,z,Q,re,j,pe){this.name=I,this.registeredClass=_,this.isReference=N,this.isConst=P,this.isSmartPointer=B,this.pointeeType=G,this.sharingPolicy=z,this.rawGetPointee=Q,this.rawConstructor=re,this.rawShare=j,this.rawDestructor=pe,B||_.baseClass!==void 0?this.toWireType=Cc:P?(this.toWireType=vc,this.destructorFunction=null):(this.toWireType=Nc,this.destructorFunction=null)}var Wr=[],Dc=I=>{var _=Wr[I];return _||(I>=Wr.length&&(Wr.length=I+1),Wr[I]=_=Pe.get(I)),_},Do=(I,_,N)=>I.includes("j")?((P,B,G)=>{var z=o["dynCall_"+P];return G&&G.length?z.apply(null,[B].concat(G)):z.call(null,B)})(I,_,N):Dc(_).apply(null,N);function ji(I,_){var N,P,B,G=(I=xt(I)).includes("j")?(N=I,P=_,B=[],function(){return B.length=0,Object.assign(B,arguments),Do(N,P,B)}):Dc(_);return typeof G!="function"&&me(`unknown function pointer with signature ${I}: ${_}`),G}var wo=void 0;function wc(I){var _=Bc(I),N=xt(_);return ir(_),N}function qi(I,_){var N=[],P={};throw _.forEach(function B(G){P[G]||Br[G]||(Fi[G]?Fi[G].forEach(B):(N.push(G),P[G]=!0))}),new wo(`${I}: `+N.map(wc).join([", "]))}function Mc(I,_){for(var N=[],P=0;P<I;P++)N.push(Se[_+4*P>>2]);return N}function Tl(I){for(;I.length;){var _=I.pop();I.pop()(_)}}function Oc(I,_){if(!(I instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof I} which is not a function`);var N=er(I.name||"unknownFunctionName",function(){});N.prototype=I.prototype;var P=new N,B=I.apply(P,_);return B instanceof Object?B:P}function xc(I,_,N,P,B,G){var z=_.length;z<2&&me("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var Q=_[1]!==null&&N!==null,re=!1,j=1;j<_.length;++j)if(_[j]!==null&&_[j].destructorFunction===void 0){re=!0;break}var pe=_[0].name!=="void",Ve="",Ce="";for(j=0;j<z-2;++j)Ve+=(j!==0?", ":"")+"arg"+j,Ce+=(j!==0?", ":"")+"arg"+j+"Wired";var he=`
|
|
73
|
-
return function ${
|
|
65
|
+
`,Ve.push(ne),Hn(Function,Ve).apply(null,Me)}function Pc(){this.allocated=[void 0],this.freelist=[]}var Vt=new Pc;function kc(c){c>=Vt.reserved&&--Vt.get(c).refcount==0&&Vt.free(c)}function Ar(){for(var c=0,d=Vt.reserved;d<Vt.allocated.length;++d)Vt.allocated[d]!==void 0&&++c;return c}var Zi={toValue:c=>(c||Ue("Cannot use deleted val. handle = "+c),Vt.get(c).value),toHandle:c=>{switch(c){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return Vt.allocate({refcount:1,value:c})}}};function Os(c){if(c===null)return"null";var d=typeof c;return d==="object"||d==="array"||d==="function"?c.toString():""+c}function Lc(c,d){switch(d){case 2:return function(h){return this.fromWireType(On[h>>2])};case 3:return function(h){return this.fromWireType(xn[h>>3])};default:throw new TypeError("Unknown float type: "+c)}}function Uc(c,d,h){switch(d){case 0:return h?function(f){return Z[f]}:function(f){return ue[f]};case 1:return h?function(f){return Se[f>>1]}:function(f){return Ye[f>>1]};case 2:return h?function(f){return H[f>>2]}:function(f){return Pe[f>>2]};default:throw new TypeError("Unknown integer type: "+c)}}var S=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,T=(c,d)=>{for(var h=c,f=h>>1,I=f+d/2;!(f>=I)&&Ye[f];)++f;if((h=f<<1)-c>32&&S)return S.decode(ue.subarray(c,h));for(var b="",R=0;!(R>=d/2);++R){var v=Se[c+2*R>>1];if(v==0)break;b+=String.fromCharCode(v)}return b},w=(c,d,h)=>{if(h===void 0&&(h=2147483647),h<2)return 0;for(var f=d,I=(h-=2)<2*c.length?h/2:c.length,b=0;b<I;++b){var R=c.charCodeAt(b);Se[d>>1]=R,d+=2}return Se[d>>1]=0,d-f},P=c=>2*c.length,B=(c,d)=>{for(var h=0,f="";!(h>=d/4);){var I=H[c+4*h>>2];if(I==0)break;if(++h,I>=65536){var b=I-65536;f+=String.fromCharCode(55296|b>>10,56320|1023&b)}else f+=String.fromCharCode(I)}return f},W=(c,d,h)=>{if(h===void 0&&(h=2147483647),h<4)return 0;for(var f=d,I=f+h-4,b=0;b<c.length;++b){var R=c.charCodeAt(b);if(R>=55296&&R<=57343&&(R=65536+((1023&R)<<10)|1023&c.charCodeAt(++b)),H[d>>2]=R,(d+=4)+4>I)break}return H[d>>2]=0,d-f},z=c=>{for(var d=0,h=0;h<c.length;++h){var f=c.charCodeAt(h);f>=55296&&f<=57343&&++h,d+=4}return d},Y={},re=[],G=[],he={},De=()=>{if(!De.strings){var c={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:m||"./this.program"};for(var d in he)he[d]===void 0?delete c[d]:c[d]=he[d];var h=[];for(var d in c)h.push(`${d}=${c[d]}`);De.strings=h}return De.strings},ve,fe,we,it=function(c,d,h,f){c||(c=this),this.parent=c,this.mount=c.mount,this.mounted=null,this.id=E.nextInode++,this.name=d,this.mode=h,this.node_ops={},this.stream_ops={},this.rdev=f},Je=365,ft=146;Object.defineProperties(it.prototype,{read:{get:function(){return(this.mode&Je)===Je},set:function(c){c?this.mode|=Je:this.mode&=-366}},write:{get:function(){return(this.mode&ft)===ft},set:function(c){c?this.mode|=ft:this.mode&=-147}},isFolder:{get:function(){return E.isDir(this.mode)}},isDevice:{get:function(){return E.isChrdev(this.mode)}}}),E.FSNode=it,E.createPreloadedFile=function(c,d,h,f,I,b,R,v,U,L){var K=d?Qt.resolve(me.join2(c,d)):c;function ae(ce){function ne(Ce){L&&L(),v||E.createDataFile(c,d,Ce,f,I,U),b&&b(),No()}(function(Ce,Ve,Me,ot){typeof Browser!="undefined"&&Browser.init();var et=!1;return ml.forEach(function(Et){et||Et.canHandle(Ve)&&(Et.handle(Ce,Ve,Me,ot),et=!0)}),et})(ce,K,ne,()=>{R&&R(),No()})||ne(ce)}ie(),typeof h=="string"?ll(h,ce=>ae(ce),R):ae(h)},E.staticInit(),function(){for(var c=new Array(256),d=0;d<256;++d)c[d]=String.fromCharCode(d);Ec=c}(),zi=o.BindingError=class extends Error{constructor(c){super(c),this.name="BindingError"}},_c=o.InternalError=class extends Error{constructor(c){super(c),this.name="InternalError"}},Sr.prototype.isAliasOf=Tc,Sr.prototype.clone=Rc,Sr.prototype.delete=fl,Sr.prototype.isDeleted=vc,Sr.prototype.deleteLater=Cc,o.getInheritedInstanceCount=hl,o.getLiveInheritedInstances=pl,o.flushPendingDeletes=rr,o.setDelayFunction=Ac,yr.prototype.getPointee=_l,yr.prototype.destructor=wc,yr.prototype.argPackAdvance=8,yr.prototype.readValueFromPointer=Uo,yr.prototype.deleteObject=Tl,yr.prototype.fromWireType=bc,Oc=o.UnboundTypeError=(ve=Error,(we=Cs(fe="UnboundTypeError",function(c){this.name=fe,this.message=c;var d=new Error(c).stack;d!==void 0&&(this.stack=this.toString()+`
|
|
66
|
+
`+d.replace(/^Error(:[^\n]*)?\n/,""))})).prototype=Object.create(ve.prototype),we.prototype.constructor=we,we.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},we),Object.assign(Pc.prototype,{get(c){return this.allocated[c]},has(c){return this.allocated[c]!==void 0},allocate(c){var d=this.freelist.pop()||this.allocated.length;return this.allocated[d]=c,d},free(c){this.allocated[c]=void 0,this.freelist.push(c)}}),Vt.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),Vt.reserved=Vt.allocated.length,o.count_emval_handles=Ar;var Xe,Mt={p:function(c,d,h){throw new Wi(c).init(d,h),c},C:function(c,d,h){yt.varargs=h;try{var f=yt.getStreamFromFD(c);switch(d){case 0:return(I=yt.get())<0?-28:E.createStream(f,I).fd;case 1:case 2:case 6:case 7:return 0;case 3:return f.flags;case 4:var I=yt.get();return f.flags|=I,0;case 5:return I=yt.get(),Se[I+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return b=28,H[Wn()>>2]=b,-1}}catch(R){if(E===void 0||R.name!=="ErrnoError")throw R;return-R.errno}var b},w:function(c,d,h,f){yt.varargs=f;try{d=yt.getStr(d),d=yt.calculateAt(c,d);var I=f?yt.get():0;return E.open(d,h,I).fd}catch(b){if(E===void 0||b.name!=="ErrnoError")throw b;return-b.errno}},t:function(c,d,h,f,I){},n:function(c,d,h,f,I){var b=mi(h);tr(c,{name:d=k(d),fromWireType:function(R){return!!R},toWireType:function(R,v){return v?f:I},argPackAdvance:8,readValueFromPointer:function(R){var v;if(h===1)v=Z;else if(h===2)v=Se;else{if(h!==4)throw new TypeError("Unknown boolean type size: "+d);v=H}return this.fromWireType(v[R>>b])},destructorFunction:null})},r:function(c,d,h,f,I,b,R,v,U,L,K,ae,ce){K=k(K),b=Qi(I,b),v&&(v=Qi(R,v)),L&&(L=Qi(U,L)),ce=Qi(ae,ce);var ne=Ut(K);(function(Ce,Ve,Me){o.hasOwnProperty(Ce)?((Me===void 0||o[Ce].overloadTable!==void 0&&o[Ce].overloadTable[Me]!==void 0)&&Ue(`Cannot register public name '${Ce}' twice`),Nc(o,Ce,Ce),o.hasOwnProperty(Me)&&Ue(`Cannot register multiple overloads of a function with the same number of arguments (${Me})!`),o[Ce].overloadTable[Me]=Ve):(o[Ce]=Ve,Me!==void 0&&(o[Ce].numArguments=Me))})(ne,function(){Ms(`Cannot construct ${K} due to unbound types`,[f])}),Gr([c,d,h],f?[f]:[],function(Ce){var Ve,Me;Ce=Ce[0],Me=f?(Ve=Ce.registeredClass).instancePrototype:Sr.prototype;var ot=Cs(ne,function(){if(Object.getPrototypeOf(this)!==et)throw new zi("Use 'new' to construct "+K);if(Et.constructor_body===void 0)throw new zi(K+" has no accessible constructor");var mt=Et.constructor_body[arguments.length];if(mt===void 0)throw new zi(`Tried to invoke ctor of ${K} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(Et.constructor_body).toString()}) parameters instead!`);return mt.apply(this,arguments)}),et=Object.create(Me,{constructor:{value:ot}});ot.prototype=et;var Et=new Ns(K,ot,et,ce,Ve,b,v,L);Et.baseClass&&(Et.baseClass.__derivedClasses===void 0&&(Et.baseClass.__derivedClasses=[]),Et.baseClass.__derivedClasses.push(Et));var eo=new yr(K,Et,!0,!1,!1),ur=new yr(K+"*",Et,!1,!1,!1),Vo=new yr(K+" const*",Et,!1,!0,!1);return Oo[c]={pointerType:ur,constPointerType:Vo},function(mt,Fp,Sl){o.hasOwnProperty(mt)||er("Replacing nonexistant public symbol"),o[mt].overloadTable!==void 0&&Sl!==void 0?o[mt].overloadTable[Sl]=Fp:(o[mt]=Fp,o[mt].argCount=Sl)}(ne,ot),[eo,ur,Vo]})},q:function(c,d,h,f,I,b){var R=Bn(d,h);I=Qi(f,I),Gr([],[c],function(v){var U=`constructor ${(v=v[0]).name}`;if(v.registeredClass.constructor_body===void 0&&(v.registeredClass.constructor_body=[]),v.registeredClass.constructor_body[d-1]!==void 0)throw new zi(`Cannot register multiple constructors with identical number of parameters (${d-1}) for class '${v.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return v.registeredClass.constructor_body[d-1]=()=>{Ms(`Cannot construct ${v.name} due to unbound types`,R)},Gr([],R,function(L){return L.splice(1,0,null),v.registeredClass.constructor_body[d-1]=Yi(U,L,null,I,b),[]}),[]})},d:function(c,d,h,f,I,b,R,v,U){var L=Bn(h,f);d=k(d),b=Qi(I,b),Gr([],[c],function(K){var ae=`${(K=K[0]).name}.${d}`;function ce(){Ms(`Cannot call ${ae} due to unbound types`,L)}d.startsWith("@@")&&(d=Symbol[d.substring(2)]),v&&K.registeredClass.pureVirtualFunctions.push(d);var ne=K.registeredClass.instancePrototype,Ce=ne[d];return Ce===void 0||Ce.overloadTable===void 0&&Ce.className!==K.name&&Ce.argCount===h-2?(ce.argCount=h-2,ce.className=K.name,ne[d]=ce):(Nc(ne,d,ae),ne[d].overloadTable[h-2]=ce),Gr([],L,function(Ve){var Me=Yi(ae,Ve,K,b,R,U);return ne[d].overloadTable===void 0?(Me.argCount=h-2,ne[d]=Me):ne[d].overloadTable[h-2]=Me,[]}),[]})},D:function(c,d){tr(c,{name:d=k(d),fromWireType:function(h){var f=Zi.toValue(h);return kc(h),f},toWireType:function(h,f){return Zi.toHandle(f)},argPackAdvance:8,readValueFromPointer:Uo,destructorFunction:null})},k:function(c,d,h){var f=mi(h);tr(c,{name:d=k(d),fromWireType:function(I){return I},toWireType:function(I,b){return b},argPackAdvance:8,readValueFromPointer:Lc(d,f),destructorFunction:null})},c:function(c,d,h,f,I){d=k(d),I===-1&&(I=4294967295);var b=mi(h),R=L=>L;if(f===0){var v=32-8*h;R=L=>L<<v>>>v}var U=d.includes("unsigned");tr(c,{name:d,fromWireType:R,toWireType:U?function(L,K){return this.name,K>>>0}:function(L,K){return this.name,K},argPackAdvance:8,readValueFromPointer:Uc(d,b,f!==0),destructorFunction:null})},b:function(c,d,h){var f=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][d];function I(b){var R=Pe,v=R[b>>=2],U=R[b+1];return new f(R.buffer,U,v)}tr(c,{name:h=k(h),fromWireType:I,argPackAdvance:8,readValueFromPointer:I},{ignoreDuplicateRegistrations:!0})},j:function(c,d){var h=(d=k(d))==="std::string";tr(c,{name:d,fromWireType:function(f){var I,b=Pe[f>>2],R=f+4;if(h)for(var v=R,U=0;U<=b;++U){var L=R+U;if(U==b||ue[L]==0){var K=ji(v,L-v);I===void 0?I=K:(I+="\0",I+=K),v=L+1}}else{var ae=new Array(b);for(U=0;U<b;++U)ae[U]=String.fromCharCode(ue[R+U]);I=ae.join("")}return Nt(f),I},toWireType:function(f,I){var b;I instanceof ArrayBuffer&&(I=new Uint8Array(I));var R=typeof I=="string";R||I instanceof Uint8Array||I instanceof Uint8ClampedArray||I instanceof Int8Array||Ue("Cannot pass non-string to std::string"),b=h&&R?Do(I):I.length;var v=Ki(4+b+1),U=v+4;if(Pe[v>>2]=b,h&&R)wo(I,ue,U,b+1);else if(R)for(var L=0;L<b;++L){var K=I.charCodeAt(L);K>255&&(Nt(U),Ue("String has UTF-16 code units that do not fit in 8 bits")),ue[U+L]=K}else for(L=0;L<b;++L)ue[U+L]=I[L];return f!==null&&f.push(Nt,v),v},argPackAdvance:8,readValueFromPointer:Uo,destructorFunction:function(f){Nt(f)}})},f:function(c,d,h){var f,I,b,R,v;h=k(h),d===2?(f=T,I=w,R=P,b=()=>Ye,v=1):d===4&&(f=B,I=W,R=z,b=()=>Pe,v=2),tr(c,{name:h,fromWireType:function(U){for(var L,K=Pe[U>>2],ae=b(),ce=U+4,ne=0;ne<=K;++ne){var Ce=U+4+ne*d;if(ne==K||ae[Ce>>v]==0){var Ve=f(ce,Ce-ce);L===void 0?L=Ve:(L+="\0",L+=Ve),ce=Ce+d}}return Nt(U),L},toWireType:function(U,L){typeof L!="string"&&Ue(`Cannot pass non-string to C++ string type ${h}`);var K=R(L),ae=Ki(4+K+d);return Pe[ae>>2]=K>>v,I(L,ae+4,K+d),U!==null&&U.push(Nt,ae),ae},argPackAdvance:8,readValueFromPointer:Uo,destructorFunction:function(U){Nt(U)}})},o:function(c,d){tr(c,{isVoid:!0,name:d=k(d),argPackAdvance:0,fromWireType:function(){},toWireType:function(h,f){}})},g:function(c,d,h,f){var I,b;(c=re[c])(d=Zi.toValue(d),h=(b=Y[I=h])===void 0?k(I):b,null,f)},m:kc,l:function(c,d){var h=function(Ve,Me){for(var ot,et,Et,eo=new Array(Ve),ur=0;ur<Ve;++ur)eo[ur]=(ot=Pe[Me+4*ur>>2],et="parameter "+ur,Et=void 0,(Et=dr[ot])===void 0&&Ue(et+" has unknown type "+ws(ot)),Et);return eo}(c,d),f=h[0],I=f.name+"_$"+h.slice(1).map(function(Ve){return Ve.name}).join("_")+"$",b=G[I];if(b!==void 0)return b;for(var R=["retType"],v=[f],U="",L=0;L<c-1;++L)U+=(L!==0?", ":"")+"arg"+L,R.push("argType"+L),v.push(h[1+L]);var K="return function "+Ut("methodCaller_"+I)+`(handle, name, destructors, args) {
|
|
67
|
+
`,ae=0;for(L=0;L<c-1;++L)K+=" var arg"+L+" = argType"+L+".readValueFromPointer(args"+(ae?"+"+ae:"")+`);
|
|
68
|
+
`,ae+=h[L+1].argPackAdvance;for(K+=" var rv = handle[name]("+U+`);
|
|
69
|
+
`,L=0;L<c-1;++L)h[L+1].deleteObject&&(K+=" argType"+L+".deleteObject(arg"+L+`);
|
|
70
|
+
`);f.isVoid||(K+=` return retType.toWireType(destructors, rv);
|
|
71
|
+
`),K+=`};
|
|
72
|
+
`,R.push(K);var ce,ne,Ce=Hn(Function,R).apply(null,v);return ce=Ce,ne=re.length,re.push(ce),b=ne,G[I]=b,b},a:()=>{Hr("")},e:function(){return Date.now()},v:()=>ue.length,A:(c,d,h)=>ue.copyWithin(c,d,d+h),u:c=>{ue.length,Hr("OOM")},y:(c,d)=>{var h=0;return De().forEach(function(f,I){var b=d+h;Pe[c+4*I>>2]=b,((R,v)=>{for(var U=0;U<R.length;++U)Z[0|v++]=R.charCodeAt(U);Z[0|v]=0})(f,b),h+=f.length+1}),0},z:(c,d)=>{var h=De();Pe[c>>2]=h.length;var f=0;return h.forEach(function(I){f+=I.length+1}),Pe[d>>2]=f,0},i:function(c){try{var d=yt.getStreamFromFD(c);return E.close(d),0}catch(h){if(E===void 0||h.name!=="ErrnoError")throw h;return h.errno}},x:function(c,d){try{var h=yt.getStreamFromFD(c),f=h.tty?2:E.isDir(h.mode)?3:E.isLink(h.mode)?7:4;return Z[d|0]=f,Se[d+2>>1]=0,Ke=[0,(Ee=0,+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],H[d+8>>2]=Ke[0],H[d+12>>2]=Ke[1],Ke=[0,(Ee=0,+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],H[d+16>>2]=Ke[0],H[d+20>>2]=Ke[1],0}catch(I){if(E===void 0||I.name!=="ErrnoError")throw I;return I.errno}},B:function(c,d,h,f){try{var I=((b,R,v,U)=>{for(var L=0,K=0;K<v;K++){var ae=Pe[R>>2],ce=Pe[R+4>>2];R+=8;var ne=E.read(b,Z,ae,ce,U);if(ne<0)return-1;if(L+=ne,ne<ce)break;U!==void 0&&(U+=ne)}return L})(yt.getStreamFromFD(c),d,h);return Pe[f>>2]=I,0}catch(b){if(E===void 0||b.name!=="ErrnoError")throw b;return b.errno}},s:function(c,d,h,f,I){var b,R,v=(R=h)+2097152>>>0<4194305-!!(b=d)?(b>>>0)+4294967296*R:NaN;try{if(isNaN(v))return 61;var U=yt.getStreamFromFD(c);return E.llseek(U,v,f),Ke=[U.position>>>0,(Ee=U.position,+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],H[I>>2]=Ke[0],H[I+4>>2]=Ke[1],U.getdents&&v===0&&f===0&&(U.getdents=null),0}catch(L){if(E===void 0||L.name!=="ErrnoError")throw L;return L.errno}},h:function(c,d,h,f){try{var I=((b,R,v,U)=>{for(var L=0,K=0;K<v;K++){var ae=Pe[R>>2],ce=Pe[R+4>>2];R+=8;var ne=E.write(b,Z,ae,ce,U);if(ne<0)return-1;L+=ne,U!==void 0&&(U+=ne)}return L})(yt.getStreamFromFD(c),d,h);return Pe[f>>2]=I,0}catch(b){if(E===void 0||b.name!=="ErrnoError")throw b;return b.errno}}},Ki=(function(){var c,d,h,f,I={a:Mt};function b(R,v){var U,L,K=R.exports;return D=(O=K).E,U=D.buffer,o.HEAP8=Z=new Int8Array(U),o.HEAP16=Se=new Int16Array(U),o.HEAP32=H=new Int32Array(U),o.HEAPU8=ue=new Uint8Array(U),o.HEAPU16=Ye=new Uint16Array(U),o.HEAPU32=Pe=new Uint32Array(U),o.HEAPF32=On=new Float32Array(U),o.HEAPF64=xn=new Float64Array(U),Pn=O.H,L=O.F,bs.unshift(L),No(),K}if(ie(),o.instantiateWasm)try{return o.instantiateWasm(I,b)}catch(R){N("Module.instantiateWasm callback failed with error: "+R),r(R)}(c=A,d=ui,h=I,f=function(R){b(R.instance)},c||typeof WebAssembly.instantiateStreaming!="function"||kt(d)||typeof fetch!="function"?Wr(d,h,f):fetch(d,{credentials:"same-origin"}).then(R=>WebAssembly.instantiateStreaming(R,h).then(f,function(v){return N("wasm streaming compile failed: "+v),N("falling back to ArrayBuffer instantiation"),Wr(d,h,f)}))).catch(r)}(),c=>(Ki=O.G)(c)),Nt=c=>(Nt=O.I)(c),Wn=()=>(Wn=O.J)(),br=c=>(br=O.K)(c),Gn=(o.__embind_initialize_bindings=()=>(o.__embind_initialize_bindings=O.L)(),c=>(Gn=O.M)(c));o.dynCall_jiji=(c,d,h,f,I)=>(o.dynCall_jiji=O.N)(c,d,h,f,I),o._ff_h264_cabac_tables=67061;function xs(){function c(){Xe||(Xe=!0,o.calledRun=!0,kn||(o.noFSInit||E.init.initialized||E.init(),E.ignorePermissions=!1,Ir.init(),Hi(bs),e(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for(typeof o.postRun=="function"&&(o.postRun=[o.postRun]);o.postRun.length;)d=o.postRun.shift(),Bi.unshift(d);var d;Hi(Bi)}()))}cr>0||(function(){if(o.preRun)for(typeof o.preRun=="function"&&(o.preRun=[o.preRun]);o.preRun.length;)d=o.preRun.shift(),Br.unshift(d);var d;Hi(Br)}(),cr>0||(o.setStatus?(o.setStatus("Running..."),setTimeout(function(){setTimeout(function(){o.setStatus("")},1),c()},1)):c()))}if(di=function c(){Xe||xs(),Xe||(di=c)},o.preInit)for(typeof o.preInit=="function"&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return xs(),t.ready}})(),Ay=yy,by=class extends rc{constructor(i){super(Ay,i!=null&&i.wasmPath?fetch(i==null?void 0:i.wasmPath).then(t=>t.arrayBuffer()):void 0,i==null?void 0:i.workerMode,i==null?void 0:i.canvas,i==null?void 0:i.yuvMode)}},Zx=(()=>{var i=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return function(t={}){var e,r,o=t;o.ready=new Promise((S,T)=>{e=S,r=T});var s,n=Object.assign({},o),a=typeof window=="object",u=typeof importScripts=="function",m=(typeof process=="object"&&typeof process.versions=="object"&&process.versions.node,"");(a||u)&&(u?m=self.location.href:typeof document!="undefined"&&document.currentScript&&(m=document.currentScript.src),i&&(m=i),m=m.indexOf("blob:")!==0?m.substr(0,m.replace(/[?#].*/,"").lastIndexOf("/")+1):"",u&&(s=S=>{var T=new XMLHttpRequest;return T.open("GET",S,!1),T.responseType="arraybuffer",T.send(null),new Uint8Array(T.response)}));var p,g=o.print||console.log.bind(console),_=o.printErr||console.error.bind(console);Object.assign(o,n),n=null,o.arguments&&o.arguments,o.thisProgram&&o.thisProgram,o.quit&&o.quit,o.wasmBinary&&(p=o.wasmBinary);var A,C;o.noExitRuntime,typeof WebAssembly!="object"&&cr("no native wasm support detected");var N,D,O,Z,ue,Se,Ye,H,Pe,On=!1,xn=[],Pn=[],kn=[],Br=0,bs=null,Bi=null;function cr(S){o.onAbort&&o.onAbort(S),_(S="Aborted("+S+")"),On=!0,S+=". Build with -sASSERTIONS for more info.";var T=new WebAssembly.RuntimeError(S);throw r(T),T}var ci,di;function ie(S){return S.startsWith("data:application/octet-stream;base64,")}function No(S){if(S==ci&&p)return new Uint8Array(p);if(s)return s(S);throw"both async and sync fetching of the wasm failed"}function Hr(S,T,w){return function(P){return p||!a&&!u||typeof fetch!="function"?Promise.resolve().then(()=>No(P)):fetch(P,{credentials:"same-origin"}).then(B=>{if(!B.ok)throw"failed to load wasm binary file at '"+P+"'";return B.arrayBuffer()}).catch(()=>No(P))}(S).then(P=>WebAssembly.instantiate(P,T)).then(P=>P).then(w,P=>{_("failed to asynchronously prepare wasm: "+P),cr(P)})}ie(ci="videodec_simd.wasm")||(di=ci,ci=o.locateFile?o.locateFile(di,m):m+di);var ui=S=>{for(;S.length>0;)S.shift()(o)};function Ln(S){this.excPtr=S,this.ptr=S-24,this.set_type=function(T){Se[this.ptr+4>>2]=T},this.get_type=function(){return Se[this.ptr+4>>2]},this.set_destructor=function(T){Se[this.ptr+8>>2]=T},this.get_destructor=function(){return Se[this.ptr+8>>2]},this.set_caught=function(T){T=T?1:0,N[this.ptr+12|0]=T},this.get_caught=function(){return N[this.ptr+12|0]!=0},this.set_rethrown=function(T){T=T?1:0,N[this.ptr+13|0]=T},this.get_rethrown=function(){return N[this.ptr+13|0]!=0},this.init=function(T,w){this.set_adjusted_ptr(0),this.set_type(T),this.set_destructor(w)},this.set_adjusted_ptr=function(T){Se[this.ptr+16>>2]=T},this.get_adjusted_ptr=function(){return Se[this.ptr+16>>2]},this.get_exception_ptr=function(){if(Lc(this.get_type()))return Se[this.excPtr>>2];var T=this.get_adjusted_ptr();return T!==0?T:this.excPtr}}function Ee(S){switch(S){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${S}`)}}var Ke=void 0;function kt(S){for(var T="",w=S;D[w];)T+=Ke[D[w++]];return T}var J={},Wr={},Hi={},Wi=void 0;function me(S){throw new Wi(S)}var Un=void 0;function Qt(S){throw new Un(S)}function Gi(S,T,w){function P(Y){var re=w(Y);re.length!==S.length&&Qt("Mismatched type converter count");for(var G=0;G<S.length;++G)Lt(S[G],re[G])}S.forEach(function(Y){Hi[Y]=T});var B=new Array(T.length),W=[],z=0;T.forEach((Y,re)=>{Wr.hasOwnProperty(Y)?B[re]=Wr[Y]:(W.push(Y),J.hasOwnProperty(Y)||(J[Y]=[]),J[Y].push(()=>{B[re]=Wr[Y],++z===W.length&&P(B)}))}),W.length===0&&P(B)}function Lt(S,T,w={}){if(!("argPackAdvance"in T))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(P,B,W={}){var z=B.name;if(P||me(`type "${z}" must have a positive integer typeid pointer`),Wr.hasOwnProperty(P)){if(W.ignoreDuplicateRegistrations)return;me(`Cannot register type '${z}' twice`)}if(Wr[P]=B,delete Hi[P],J.hasOwnProperty(P)){var Y=J[P];delete J[P],Y.forEach(re=>re())}}(S,T,w)}function Vn(S){if(!(this instanceof er)||!(S instanceof er))return!1;for(var T=this.$$.ptrType.registeredClass,w=this.$$.ptr,P=S.$$.ptrType.registeredClass,B=S.$$.ptr;T.baseClass;)w=T.upcast(w),T=T.baseClass;for(;P.baseClass;)B=P.upcast(B),P=P.baseClass;return T===P&&w===B}function Do(S){me(S.$$.ptrType.registeredClass.name+" instance already deleted")}var wo=!1;function Rs(S){}function Ir(S){S.count.value-=1,S.count.value===0&&function(T){T.smartPtr?T.smartPtrType.rawDestructor(T.smartPtr):T.ptrType.registeredClass.rawDestructor(T.ptr)}(S)}function Fn(S,T,w){if(T===w)return S;if(w.baseClass===void 0)return null;var P=Fn(S,T,w.baseClass);return P===null?null:w.downcast(P)}var j={};function ll(){return Object.keys(mi).length}function ml(){var S=[];for(var T in mi)mi.hasOwnProperty(T)&&S.push(mi[T]);return S}var li=[];function E(){for(;li.length;){var S=li.pop();S.$$.deleteScheduled=!1,S.delete()}}var ji=void 0;function yt(S){ji=S,li.length&&ji&&ji(E)}var mi={};function Ec(S,T){return T=function(w,P){for(P===void 0&&me("ptr should not be undefined");w.baseClass;)P=w.upcast(P),w=w.baseClass;return P}(S,T),mi[T]}function k(S,T){return T.ptrType&&T.ptr||Qt("makeClassHandle requires ptr and ptrType"),!!T.smartPtrType!=!!T.smartPtr&&Qt("Both smartPtrType and smartPtr must be specified"),T.count={value:1},dr(Object.create(S,{$$:{value:T}}))}function qi(S){var T=this.getPointee(S);if(!T)return this.destructor(S),null;var w=Ec(this.registeredClass,T);if(w!==void 0){if(w.$$.count.value===0)return w.$$.ptr=T,w.$$.smartPtr=S,w.clone();var P=w.clone();return this.destructor(S),P}function B(){return this.isSmartPointer?k(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:T,smartPtrType:this,smartPtr:S}):k(this.registeredClass.instancePrototype,{ptrType:this,ptr:S})}var W,z=this.registeredClass.getActualType(T),Y=j[z];if(!Y)return B.call(this);W=this.isConst?Y.constPointerType:Y.pointerType;var re=Fn(T,this.registeredClass,W.registeredClass);return re===null?B.call(this):this.isSmartPointer?k(W.registeredClass.instancePrototype,{ptrType:W,ptr:re,smartPtrType:this,smartPtr:S}):k(W.registeredClass.instancePrototype,{ptrType:W,ptr:re})}var dr=function(S){return typeof FinalizationRegistry=="undefined"?(dr=T=>T,S):(wo=new FinalizationRegistry(T=>{Ir(T.$$)}),Rs=T=>wo.unregister(T),(dr=T=>{var w=T.$$;if(w.smartPtr){var P={$$:w};wo.register(T,P,T)}return T})(S))};function vs(){if(this.$$.ptr||Do(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var S,T=dr(Object.create(Object.getPrototypeOf(this),{$$:{value:(S=this.$$,{count:S.count,deleteScheduled:S.deleteScheduled,preservePointerOnDelete:S.preservePointerOnDelete,ptr:S.ptr,ptrType:S.ptrType,smartPtr:S.smartPtr,smartPtrType:S.smartPtrType})}}));return T.$$.count.value+=1,T.$$.deleteScheduled=!1,T}function zi(){this.$$.ptr||Do(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&me("Object already scheduled for deletion"),Rs(this),Ir(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Ue(){return!this.$$.ptr}function _c(){return this.$$.ptr||Do(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&me("Object already scheduled for deletion"),li.push(this),li.length===1&&ji&&ji(E),this.$$.deleteScheduled=!0,this}function er(){}function Gr(S){if(S===void 0)return"_unknown";var T=(S=S.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return T>=48&&T<=57?`_${S}`:S}function tr(S,T){return S=Gr(S),{[S]:function(){return T.apply(this,arguments)}}[S]}function Tc(S,T,w){if(S[T].overloadTable===void 0){var P=S[T];S[T]=function(){return S[T].overloadTable.hasOwnProperty(arguments.length)||me(`Function '${w}' called with an invalid number of arguments (${arguments.length}) - expects one of (${S[T].overloadTable})!`),S[T].overloadTable[arguments.length].apply(this,arguments)},S[T].overloadTable=[],S[T].overloadTable[P.argCount]=P}}function $n(S,T,w,P,B,W,z,Y){this.name=S,this.constructor=T,this.instancePrototype=w,this.rawDestructor=P,this.baseClass=B,this.getActualType=W,this.upcast=z,this.downcast=Y,this.pureVirtualFunctions=[]}function Mo(S,T,w){for(;T!==w;)T.upcast||me(`Expected null or instance of ${w.name}, got an instance of ${T.name}`),S=T.upcast(S),T=T.baseClass;return S}function Ic(S,T){if(T===null)return this.isReference&&me(`null is not a valid ${this.name}`),0;T.$$||me(`Cannot pass "${Lo(T)}" as a ${this.name}`),T.$$.ptr||me(`Cannot pass deleted object as a pointer of type ${this.name}`);var w=T.$$.ptrType.registeredClass;return Mo(T.$$.ptr,w,this.registeredClass)}function Sc(S,T){var w;if(T===null)return this.isReference&&me(`null is not a valid ${this.name}`),this.isSmartPointer?(w=this.rawConstructor(),S!==null&&S.push(this.rawDestructor,w),w):0;T.$$||me(`Cannot pass "${Lo(T)}" as a ${this.name}`),T.$$.ptr||me(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&T.$$.ptrType.isConst&&me(`Cannot convert argument of type ${T.$$.smartPtrType?T.$$.smartPtrType.name:T.$$.ptrType.name} to parameter type ${this.name}`);var P=T.$$.ptrType.registeredClass;if(w=Mo(T.$$.ptr,P,this.registeredClass),this.isSmartPointer)switch(T.$$.smartPtr===void 0&&me("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:T.$$.smartPtrType===this?w=T.$$.smartPtr:me(`Cannot convert argument of type ${T.$$.smartPtrType?T.$$.smartPtrType.name:T.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:w=T.$$.smartPtr;break;case 2:if(T.$$.smartPtrType===this)w=T.$$.smartPtr;else{var B=T.clone();w=this.rawShare(w,Ns.toHandle(function(){B.delete()})),S!==null&&S.push(this.rawDestructor,w)}break;default:me("Unsupporting sharing policy")}return w}function yc(S,T){if(T===null)return this.isReference&&me(`null is not a valid ${this.name}`),0;T.$$||me(`Cannot pass "${Lo(T)}" as a ${this.name}`),T.$$.ptr||me(`Cannot pass deleted object as a pointer of type ${this.name}`),T.$$.ptrType.isConst&&me(`Cannot convert argument of type ${T.$$.ptrType.name} to parameter type ${this.name}`);var w=T.$$.ptrType.registeredClass;return Mo(T.$$.ptr,w,this.registeredClass)}function Oo(S){return this.fromWireType(ue[S>>2])}function hl(S){return this.rawGetPointee&&(S=this.rawGetPointee(S)),S}function pl(S){this.rawDestructor&&this.rawDestructor(S)}function xo(S){S!==null&&S.delete()}function rr(S,T,w,P,B,W,z,Y,re,G,he){this.name=S,this.registeredClass=T,this.isReference=w,this.isConst=P,this.isSmartPointer=B,this.pointeeType=W,this.sharingPolicy=z,this.rawGetPointee=Y,this.rawConstructor=re,this.rawShare=G,this.rawDestructor=he,B||T.baseClass!==void 0?this.toWireType=Sc:P?(this.toWireType=Ic,this.destructorFunction=null):(this.toWireType=yc,this.destructorFunction=null)}var jr=[],Ac=S=>{var T=jr[S];return T||(S>=jr.length&&(jr.length=S+1),jr[S]=T=Pe.get(S)),T},Po=(S,T,w)=>S.includes("j")?((P,B,W)=>{var z=o["dynCall_"+P];return W&&W.length?z.apply(null,[B].concat(W)):z.call(null,B)})(S,T,w):Ac(T).apply(null,w);function Ji(S,T){var w,P,B,W=(S=kt(S)).includes("j")?(w=S,P=T,B=[],function(){return B.length=0,Object.assign(B,arguments),Po(w,P,B)}):Ac(T);return typeof W!="function"&&me(`unknown function pointer with signature ${S}: ${T}`),W}var ko=void 0;function bc(S){var T=Os(S),w=kt(T);return Ar(T),w}function Xi(S,T){var w=[],P={};throw T.forEach(function B(W){P[W]||Wr[W]||(Hi[W]?Hi[W].forEach(B):(w.push(W),P[W]=!0))}),new ko(`${S}: `+w.map(bc).join([", "]))}function Rc(S,T){for(var w=[],P=0;P<S;P++)w.push(Se[T+4*P>>2]);return w}function fl(S){for(;S.length;){var T=S.pop();S.pop()(T)}}function vc(S,T){if(!(S instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof S} which is not a function`);var w=tr(S.name||"unknownFunctionName",function(){});w.prototype=S.prototype;var P=new w,B=S.apply(P,T);return B instanceof Object?B:P}function Cc(S,T,w,P,B,W){var z=T.length;z<2&&me("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var Y=T[1]!==null&&w!==null,re=!1,G=1;G<T.length;++G)if(T[G]!==null&&T[G].destructorFunction===void 0){re=!0;break}var he=T[0].name!=="void",De="",ve="";for(G=0;G<z-2;++G)De+=(G!==0?", ":"")+"arg"+G,ve+=(G!==0?", ":"")+"arg"+G+"Wired";var fe=`
|
|
73
|
+
return function ${Gr(S)}(${De}) {
|
|
74
74
|
if (arguments.length !== ${z-2}) {
|
|
75
|
-
throwBindingError('function ${
|
|
76
|
-
}`;re&&(
|
|
77
|
-
`);var
|
|
78
|
-
`),
|
|
79
|
-
`,
|
|
80
|
-
`,re)
|
|
81
|
-
`;else for(
|
|
82
|
-
`,
|
|
75
|
+
throwBindingError('function ${S} called with ${arguments.length} arguments, expected ${z-2} args!');
|
|
76
|
+
}`;re&&(fe+=`var destructors = [];
|
|
77
|
+
`);var we=re?"destructors":"null",it=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],Je=[me,P,B,fl,T[0],T[1]];for(Y&&(fe+="var thisWired = classParam.toWireType("+we+`, this);
|
|
78
|
+
`),G=0;G<z-2;++G)fe+="var arg"+G+"Wired = argType"+G+".toWireType("+we+", arg"+G+"); // "+T[G+2].name+`
|
|
79
|
+
`,it.push("argType"+G),Je.push(T[G+2]);if(Y&&(ve="thisWired"+(ve.length>0?", ":"")+ve),fe+=(he||W?"var rv = ":"")+"invoker(fn"+(ve.length>0?", ":"")+ve+`);
|
|
80
|
+
`,re)fe+=`runDestructors(destructors);
|
|
81
|
+
`;else for(G=Y?1:2;G<T.length;++G){var ft=G===1?"thisWired":"arg"+(G-2)+"Wired";T[G].destructorFunction!==null&&(fe+=ft+"_dtor("+ft+"); // "+T[G].name+`
|
|
82
|
+
`,it.push(ft+"_dtor"),Je.push(T[G].destructorFunction))}return he&&(fe+=`var ret = retType.fromWireType(rv);
|
|
83
83
|
return ret;
|
|
84
|
-
`),
|
|
85
|
-
`,
|
|
86
|
-
`+
|
|
87
|
-
`,
|
|
88
|
-
`,
|
|
89
|
-
`,
|
|
90
|
-
`);P.isVoid||(
|
|
91
|
-
`),
|
|
92
|
-
`,z.push(pe);var Ce,he,Oe=Oc(Function,z).apply(null,Q);return Ce=Oe,he=Ns.length,Ns.push(Ce),G=he,$n[B]=G,G},f:()=>{dr("")},c:Fc,t:(I,_,N)=>w.copyWithin(I,_,_+N),s:I=>{w.length,dr("OOM")},i:(I,_,N,P)=>{for(var B=0,G=0;G<N;G++){var z=Se[_>>2],Q=Se[_+4>>2];_+=8;for(var re=0;re<Q;re++)$c(I,w[z+re]);B+=Q}return Se[P>>2]=B,0}},ir=((function(){var I,_,N,P,B={a:ws};function G(z,Q){var re,j,pe=z.exports;return A=(C=pe).v,re=A.buffer,o.HEAP8=D=new Int8Array(re),o.HEAP16=O=new Int16Array(re),o.HEAP32=ue=new Int32Array(re),o.HEAPU8=w=new Uint8Array(re),o.HEAPU16=Y=new Uint16Array(re),o.HEAPU32=Se=new Uint32Array(re),o.HEAPF32=Ke=new Float32Array(re),o.HEAPF64=W=new Float64Array(re),Pe=C.z,j=C.w,Mn.unshift(j),(function(){if(Fr--,o.monitorRunDependencies&&o.monitorRunDependencies(Fr),Fr==0&&(xn!==null&&(clearInterval(xn),xn=null),yo)){var Ve=yo;yo=null,Ve()}})(),pe}if(Fr++,o.monitorRunDependencies&&o.monitorRunDependencies(Fr),o.instantiateWasm)try{return o.instantiateWasm(B,G)}catch(z){T("Module.instantiateWasm callback failed with error: "+z),r(z)}(I=p,_=te,N=B,P=function(z){G(z.instance)},I||typeof WebAssembly.instantiateStreaming!="function"||ys(_)||typeof fetch!="function"?$r(_,N,P):fetch(_,{credentials:"same-origin"}).then(z=>WebAssembly.instantiateStreaming(z,N).then(P,function(Q){return T("wasm streaming compile failed: "+Q),T("falling back to ArrayBuffer instantiation"),$r(_,N,P)}))).catch(r)})(),I=>(ir=C.x)(I)),Wn=I=>(Wn=C.y)(I),Bc=I=>(Bc=C.A)(I),Gn=(o.__embind_initialize_bindings=()=>(o.__embind_initialize_bindings=C.B)(),I=>(Gn=C.C)(I));o.dynCall_jiji=(I,_,N,P,B)=>(o.dynCall_jiji=C.D)(I,_,N,P,B);function Hc(){function I(){Ds||(Ds=!0,o.calledRun=!0,Dn||(ni(Mn),e(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),(function(){if(o.postRun)for(typeof o.postRun=="function"&&(o.postRun=[o.postRun]);o.postRun.length;)yc(o.postRun.shift());ni(On)})()))}Fr>0||((function(){if(o.preRun)for(typeof o.preRun=="function"&&(o.preRun=[o.preRun]);o.preRun.length;)Sc(o.preRun.shift());ni(wn)})(),Fr>0||(o.setStatus?(o.setStatus("Running..."),setTimeout(function(){setTimeout(function(){o.setStatus("")},1),I()},1)):I()))}if(yo=function I(){Ds||Hc(),Ds||(yo=I)},o.preInit)for(typeof o.preInit=="function"&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return Hc(),t.ready}})();var ky="web.sdk.qcloud.com",Ly=`https://${ky}/trtc/webrtc/v5/doc`,dP=`${Ly}/zh-cn/`,TE=(i=>(i[i.TRACE=0]="TRACE",i[i.DEBUG=1]="DEBUG",i[i.INFO=2]="INFO",i[i.WARN=3]="WARN",i[i.ERROR=4]="ERROR",i[i.NONE=5]="NONE",i))(TE||{});var _E={"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}},uP=_E["480p_2"],lP=_E["120p_2"],Ou={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",RESIZE:"resize",TIME_UPDATE:"timeupdate"},mP=Ou.MAIN,hP=Ou.AUXILIARY,pP=Ou.BIG,fP=Ou.SMALL;var gP=Object.keys(TE);var Uy=function(i,t,e,r){return new(e||(e=Promise))(function(o,s){function n(m){try{u(r.next(m))}catch(p){s(p)}}function a(m){try{u(r.throw(m))}catch(p){s(p)}}function u(m){var p;m.done?o(m.value):(p=m.value,p instanceof e?p:new e(function(g){g(p)})).then(n,a)}u((r=r.apply(i,t||[])).next())})},ap=Symbol(32),cp=Symbol(16),dp=Symbol(8),sp=class{constructor(i){this.g=i,this.consumed=0,i&&(this.need=i.next().value)}setG(i){this.g=i,this.demand(i.next().value,!0)}consume(){this.buffer&&this.consumed&&(this.buffer.copyWithin(0,this.consumed),this.buffer=this.buffer.subarray(0,this.buffer.length-this.consumed),this.consumed=0)}demand(i,t){return t&&this.consume(),this.need=i,this.flush()}read(i){return Uy(this,void 0,void 0,function*(){return this.lastReadPromise&&(yield this.lastReadPromise),this.lastReadPromise=new Promise((t,e)=>{var r;this.reject=e,this.resolve=o=>{delete this.lastReadPromise,delete this.resolve,delete this.need,t(o)},this.demand(i,!0)||(r=this.pull)===null||r===void 0||r.call(this,i)})})}readU32(){return this.read(ap)}readU16(){return this.read(cp)}readU8(){return this.read(dp)}close(){var i;this.g&&this.g.return(),this.buffer&&this.buffer.subarray(0,0),(i=this.reject)===null||i===void 0||i.call(this,new Error("EOF")),delete this.lastReadPromise}flush(){if(!this.buffer||!this.need)return;let i=null,t=this.buffer.subarray(this.consumed),e=0,r=o=>t.length<(e=o);if(typeof this.need=="number"){if(r(this.need))return;i=t.subarray(0,e)}else if(this.need===ap){if(r(4))return;i=t[0]<<24|t[1]<<16|t[2]<<8|t[3]}else if(this.need===cp){if(r(2))return;i=t[0]<<8|t[1]}else if(this.need===dp){if(r(1))return;i=t[0]}else if("buffer"in this.need){if("byteOffset"in this.need){if(r(this.need.byteLength-this.need.byteOffset))return;new Uint8Array(this.need.buffer,this.need.byteOffset).set(t.subarray(0,e)),i=this.need}else if(this.g)return void this.g.throw(new Error("Unsupported type"))}else{if(r(this.need.byteLength))return;new Uint8Array(this.need).set(t.subarray(0,e)),i=this.need}return this.consumed+=e,this.g?this.demand(this.g.next(i).value,!0):this.resolve&&this.resolve(i),i}write(i){if(i instanceof Uint8Array?this.malloc(i.length).set(i):"buffer"in i?this.malloc(i.byteLength).set(new Uint8Array(i.buffer,i.byteOffset,i.byteLength)):this.malloc(i.byteLength).set(new Uint8Array(i)),!this.g&&!this.resolve)return new Promise(t=>this.pull=t);this.flush()}writeU32(i){this.malloc(4).set([i>>24&255,i>>16&255,i>>8&255,255&i]),this.flush()}writeU16(i){this.malloc(2).set([i>>8&255,255&i]),this.flush()}writeU8(i){this.malloc(1)[0]=i,this.flush()}malloc(i){if(this.buffer){let t=this.buffer.length,e=t+i;if(e<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,e);else{let r=new Uint8Array(e);r.set(this.buffer),this.buffer=r}return this.buffer.subarray(t,e)}return this.buffer=new Uint8Array(i),this.buffer}};sp.U32=ap,sp.U16=cp,sp.U8=dp;var Vy=127,EP=~Vy,TP=Math.pow(2,31),_P=typeof window!="undefined"&&typeof window.glog=="function"?window.glog:()=>{},IP=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype;function pE(){return performance&&performance.now?Math.floor(performance.now()):Date.now()}var{toString:SP}=Object.prototype,IE=class SE{constructor(t){this.core=t,Vr(this,"contextMap",new Map),Vr(this,"decodeProcessorMap",new WeakMap),this.addKVReportBeforeExitRoom=this.addKVReportBeforeExitRoom.bind(this),this.createDecoder=this.createDecoder.bind(this),this.core.innerEmitter.on("51",this.addKVReportBeforeExitRoom)}getAlias(){return"videoDecoder"}getGroup(t){return t!=null&&t.track?`${t.track.userId}${t.track.streamType}`:"*"}getName(){return SE.Name}getValidateRule(t){return{type:this.core.enums.BASIC_TYPE.Object}}createDecoder(t,e){switch(t){case"wasm":return new Py(Du(Nu({},e),{wasmPath:`${this.core.assetsPath||"."}/videodec.wasm`}));case"webCodecs":return new yn;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:n})=>{if(n!==t.track||s.type==="empty")return s;if(this.contextMap.has(n))return this.contextMap.get(n).decode(s);let a=this.core.room.videoManager.createDecodeContext(Du(Nu({},t),{createDecoder:this.createDecoder}));return e(a.trackDoneOB,r(1),o(()=>{this.core.clearStarted(this,this.getGroup(t)),this.stop({track:n})})),this.contextMap.set(n,a),a.decode(s)}}stop(t){if(t!=null&&t.track){let e=this.contextMap.get(t.track);e&&(e.close("stop"),this.report(e,t.track),this.contextMap.delete(t.track))}else this.contextMap.forEach((e,r)=>{e.close("stop"),this.contextMap.delete(r)});this.contextMap.size===0&&this.core.room.videoManager.removeDecodeProcessor({type:3})}report(t,e){if(t.isReported)return;t.isReported=!0;let r=pE()-t.startPerformanceTime,{renderFreezeTotal:o,dataFreezeTotal:s}=this.getRemoteTrackFreezeDuration(e,t),n=`report health data: ${t.track.userId} ${t.track.streamType} ${t.type}+${t.renderer} goodType\uFF1A${t.goodType} ${t.failedReason?`failedReason: ${t.failedReason}`:""}`;r&&(this.core.kvStatManager.addNumber({key:514850,value:Math.floor(o/r*100),split:1,max:100}),n+=` RENDER_FREEZE_RATE: ${Math.floor(o/r*100)}%`),r&&(this.core.kvStatManager.addNumber({key:514851,value:Math.floor(s/r*100),split:1,max:100}),n+=` DATA_FREEZE_RATE: ${Math.floor(s/r*100)}%`),t.inputFrameCount&&(this.core.kvStatManager.addNumber({key:514852,value:Math.floor(t.decodedFrameCount/t.inputFrameCount*100),split:1,max:100}),n+=` VIDEO_CONSUME_RENDER_RATE: ${Math.floor(t.decodedFrameCount/t.inputFrameCount*100)}%`),this.core.log.info(n)}addKVReportBeforeExitRoom({room:t}){t===this.core.room&&this.contextMap.forEach((e,r)=>{this.report(e,r)})}update(t){let e=this.contextMap.get(t.track);e&&(t.type!=="mock"?(e.close("update"),this.contextMap.set(t.track,this.core.room.videoManager.createDecodeContext(Du(Nu({},t),{createDecoder:this.createDecoder})))):e.mock(this.core.enums.DECODE_FAILED_ERROR_CODE.TEST))}getRemoteTrackFreezeDuration(t,e){let r=this.core.room.badCaseDetector.getRenderFreezeMap().get(`${t.userId}_${t.streamType}`),o=this.core.room.badCaseDetector.getDataFreezeMap().get(`${t.userId}_${t.streamType}`),s=0;r&&r.freezeTimeline.forEach(({startTime:a,endTime:u})=>{a>e.startPerformanceTime&&(s+=u===0?pE()-a:u-a)});let n=0;return o&&o.durationItemList.forEach(a=>{a.startTime>e.startPerformanceTime&&(n+=a.getDuration())}),{renderFreezeTotal:s,dataFreezeTotal:n}}destroy(){this.core.innerEmitter.off("51",this.addKVReportBeforeExitRoom)}};Vr(IE,"Name","TRTCVideoDecoder");var up=IE;var YE=ui(Si());function lp({timesInSecond:i,maxSizeInSecond:t,getSize:e}){return Me((r,o)=>{let s=new WeakMap;return V.on(F.ROOM_DESTROY,({room:n})=>s.delete(n)),function(...n){let a=s.get(this);if(a||(a={callCountInSecond:0,timestamp:0,totalSizeInSecond:0},s.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>=i||a.totalSizeInSecond>t))throw new de({code:q.INVALID_OPERATION,message:Be({key:$e.CALL_FREQUENCY_LIMIT,data:{isTimes:a.callCountInSecond>=i,isSize:a.totalSizeInSecond>t,name:o,timesInSecond:i,maxSizeInSecond:t}})});a.callCountInSecond++,r.call(this,...n)}})}var Fy="2025-08-26 19:47:31",yE=!0,AE=function(){var i;if(yE){yE=!1,$.getLogLevel()!==5&&(console.info("******************************************************************************"),console.info("* TRTC Web SDK"),console.info(`* API Document: ${Gr}/en/index.html`),console.info(`* Changelog: ${Gr}/en/tutorial-01-info-changelog.html`),console.info("* Report issues: https://github.com/LiteAVSDK/TRTC_Web/issues"),console.info("******************************************************************************")),$.info("TRTC Web SDK Version:",at),Mr||$.debug("Build Time:",Fy);let t=`UA: ${navigator.userAgent}
|
|
93
|
-
CPU core: ${navigator.hardwareConcurrency}, GPU: ${mm()}`,e=navigator.deviceMemory;e&&(t+=`, minRAM: ${e}GB`),$.info(t),$.info(`URL: ${location.href}${((i=self.frameElement)==null?void 0:i.tagName)==="IFRAME"?" in iframe":""}`),jo().then(r=>{r&&$.info(Cr)})}};var gs={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 oe={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},Tr=(k=>(k[k.INVALID_PARAMETER=5e3]="INVALID_PARAMETER",k[k.INVALID_PARAMETER_REQUIRED=5001]="INVALID_PARAMETER_REQUIRED",k[k.INVALID_PARAMETER_TYPE=5002]="INVALID_PARAMETER_TYPE",k[k.INVALID_PARAMETER_EMPTY=5003]="INVALID_PARAMETER_EMPTY",k[k.INVALID_PARAMETER_INSTANCE=5004]="INVALID_PARAMETER_INSTANCE",k[k.INVALID_PARAMETER_RANGE=5005]="INVALID_PARAMETER_RANGE",k[k.INVALID_PARAMETER_LESS_THAN_ZERO=5006]="INVALID_PARAMETER_LESS_THAN_ZERO",k[k.INVALID_PARAMETER_MIN=5007]="INVALID_PARAMETER_MIN",k[k.INVALID_PARAMETER_MAX=5008]="INVALID_PARAMETER_MAX",k[k.INVALID_ELEMENT_ID=5009]="INVALID_ELEMENT_ID",k[k.INVALID_ELEMENT_ID_TYPE=5010]="INVALID_ELEMENT_ID_TYPE",k[k.INVALID_STREAM_ID=5011]="INVALID_STREAM_ID",k[k.INVALID_ROOM_ID_STRING=5012]="INVALID_ROOM_ID_STRING",k[k.INVALID_ROOM_ID_INTEGER=5013]="INVALID_ROOM_ID_INTEGER",k[k.INVALID_STREAM_TYPE=5014]="INVALID_STREAM_TYPE",k[k.INVALID_ROOM_ID_REQUIRED=5015]="INVALID_ROOM_ID_REQUIRED",k[k.INVALID_ROOM_ID_INTEGER_STRING=5016]="INVALID_ROOM_ID_INTEGER_STRING",k[k.INVALID_BUFFER_EMPTY=5017]="INVALID_BUFFER_EMPTY",k[k.INVALID_BUFFER_OVERSIZE=5018]="INVALID_BUFFER_OVERSIZE",k[k.INVALID_ROOM_ID_TYPE_MISMATCH=5019]="INVALID_ROOM_ID_TYPE_MISMATCH",k[k.INVALID_ROOM_ID_DUPLICATE=5020]="INVALID_ROOM_ID_DUPLICATE",k[k.INVALID_OPERATION=5100]="INVALID_OPERATION",k[k.INVALID_OPERATION_NOT_JOINED=5101]="INVALID_OPERATION_NOT_JOINED",k[k.INVALID_OPERATION_REMOTE_USER_NOT_EXIST=5102]="INVALID_OPERATION_REMOTE_USER_NOT_EXIST",k[k.INVALID_OPERATION_STREAM_TYPE_NOT_EXIST=5103]="INVALID_OPERATION_STREAM_TYPE_NOT_EXIST",k[k.INVALID_OPERATION_REPEAT_CALL=5104]="INVALID_OPERATION_REPEAT_CALL",k[k.INVALID_OPERATION_NEED_VIDEO=5105]="INVALID_OPERATION_NEED_VIDEO",k[k.INVALID_OPERATION_NEED_AUDIO=5106]="INVALID_OPERATION_NEED_AUDIO",k[k.INVALID_ROLE_AUDIENCE=5107]="INVALID_ROLE_AUDIENCE",k[k.INVALID_NOT_ENABLE_SEI=5108]="INVALID_NOT_ENABLE_SEI",k[k.INVALID_NEED_CALL_PUBLISHED=5109]="INVALID_NEED_CALL_PUBLISHED",k[k.ENV_NOT_SUPPORTED=5200]="ENV_NOT_SUPPORTED",k[k.NOT_SUPPORTED_HTTP=5201]="NOT_SUPPORTED_HTTP",k[k.NOT_SUPPORTED_WEBRTC=5202]="NOT_SUPPORTED_WEBRTC",k[k.NOT_SUPPORTED_H264_ENCODE=5203]="NOT_SUPPORTED_H264_ENCODE",k[k.NOT_SUPPORTED_H264_DECODE=5204]="NOT_SUPPORTED_H264_DECODE",k[k.NOT_SUPPORTED_SCREEN_SHARE=5205]="NOT_SUPPORTED_SCREEN_SHARE",k[k.NOT_SUPPORTED_SMALL_VIDEO=5206]="NOT_SUPPORTED_SMALL_VIDEO",k[k.NOT_SUPPORTED_SEI=5207]="NOT_SUPPORTED_SEI",k[k.NOT_SUPPORTED_WEBGL=5208]="NOT_SUPPORTED_WEBGL",k[k.NOT_SUPPORTED_CHROME_VERSION=5209]="NOT_SUPPORTED_CHROME_VERSION",k[k.NOT_SUPPORTED_PLUGIN=5210]="NOT_SUPPORTED_PLUGIN",k[k.DEVICE_ERROR=5300]="DEVICE_ERROR",k[k.DEVICE_NOT_FOUND_ERROR=5301]="DEVICE_NOT_FOUND_ERROR",k[k.DEVICE_NOT_ALLOWED_ERROR=5302]="DEVICE_NOT_ALLOWED_ERROR",k[k.DEVICE_NOT_READABLE_ERROR=5303]="DEVICE_NOT_READABLE_ERROR",k[k.DEVICE_OVERCONSTRAINED_ERROR=5304]="DEVICE_OVERCONSTRAINED_ERROR",k[k.DEVICE_INVALID_STATE_ERROR=5305]="DEVICE_INVALID_STATE_ERROR",k[k.DEVICE_SECURITY_ERROR=5306]="DEVICE_SECURITY_ERROR",k[k.DEVICE_ABORT_ERROR=5307]="DEVICE_ABORT_ERROR",k[k.CAMERA_RECOVER_FAILED=5308]="CAMERA_RECOVER_FAILED",k[k.MICROPHONE_RECOVER_FAILED=5309]="MICROPHONE_RECOVER_FAILED",k[k.SERVER_ERROR=5400]="SERVER_ERROR",k[k.NEED_TO_BUY=5401]="NEED_TO_BUY",k[k.ACCOUNT_NO_MONEY=-100013]="ACCOUNT_NO_MONEY",k[k.OPERATION_FAILED=5500]="OPERATION_FAILED",k[k.FIREWALL_RESTRICTION=5501]="FIREWALL_RESTRICTION",k[k.REJOIN_FAILED=5502]="REJOIN_FAILED",k[k.EVENT_HANDLER_ERROR=5503]="EVENT_HANDLER_ERROR",k[k.VIDEO_CONTEXT_ERROR=5504]="VIDEO_CONTEXT_ERROR",k[k.VIDEO_ENCODE_FAILED=5505]="VIDEO_ENCODE_FAILED",k[k.AUDIO_ENCODE_FAILED=5506]="AUDIO_ENCODE_FAILED",k[k.VIDEO_DECODE_FAILED=5507]="VIDEO_DECODE_FAILED",k[k.AUDIO_DECODE_FAILED=5508]="AUDIO_DECODE_FAILED",k[k.OPERATION_ABORT=5998]="OPERATION_ABORT",k[k.UNKNOWN_ERROR=5999]="UNKNOWN_ERROR",k))(Tr||{});function RE({code:i,params:t,enableDocLink:e=!1}){let r="",o,s=Tr[i];try{o=bE[s]}catch(n){o=bE.UNKNOWN_ERROR}return Ge(o)?r=o(t):De(o)&&(r=o),t.fnName&&!r.includes(t.fnName)&&(r[r.length-1]!=="."&&(r+="."),r+=` thrown from ${t.fnName}()`),e&&(r+=" doc:"),r}var bE=ge(J({},Qt),{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: ${ct(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: ${ct(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_REQUIRED(){return"at least one of 'roomId'(between [1, 4294967294]) and 'strRoomId'(not empty) is required."},INVALID_ROOM_ID_TYPE_MISMATCH({key:i}){return`The type of target roomId must match the current roomId. Current room is using '${i}', but received '${i==="strRoomId"?"roomId":"strRoomId"}'.`},INVALID_ROOM_ID_DUPLICATE({key:i}){return`the target '${i}' must not be the same as the current '${i}'.`},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 or screen share 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=Es(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=Es(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=Es(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=Es(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=Es(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=Es(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=Es(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 Es(i){if(!i)return"camera";let t=i.toLowerCase();return t.includes("screen")?"screen share":t.includes("audio")?"microphone":"camera"}var mp=class i extends Error{constructor({code:e,extraCode:r,message:o="",messageParams:s,fnName:n="",originError:a,data:u}){var p;let m;o?m=o:m=RE({code:e===oe.SERVER_ERROR?e:r||e,params:J({fnName:n,error:a},s)});super(m);l(this,"name","RtcError");l(this,"code");l(this,"extraCode");l(this,"functionName");l(this,"message");l(this,"data");l(this,"handler");l(this,"originError");this.name=Tr[e],this.code=e,this.extraCode=r,this.functionName=n,this.originError=a,this.message=m,this.data=u,this.extraCode===5302&&((p=this.originError)!=null&&p.message.includes("system"))&&(this.handler=()=>{let g={startLocalVideo:"Camera",startLocalAudio:"Microphone",startScreenShare:"ScreenCapture"},T={startLocalVideo:"webcam",startLocalAudio:"microphone"},A=document.createElement("a");Go?A.href=`ms-settings:privacy-${T[this.functionName]}`:Dr&&(A.href=`x-apple.systempreferences:com.apple.preference.security?Privacy_${g[this.functionName]}`),A.href.length>0&&A.click()})}static convertFrom(e,r,o){let s=e;if(e instanceof de){let{stack:n}=e,a={code:oe.UNKNOWN_ERROR,fnName:r,originError:e};switch(e.getCode()){case q.INVALID_PARAMETER:a.code=oe.INVALID_PARAMETER,a.message=e.message;break;case q.INVALID_OPERATION:a.code=oe.INVALID_OPERATION;break;case q.NOT_SUPPORTED:case q.NOT_SUPPORTED_H264:a.code=oe.ENV_NOT_SUPPORTED,e.getCode()===q.NOT_SUPPORTED_H264&&(a.extraCode=e.message.includes(Qt.NOT_SUPPORTED_H264ENCODE)?5203:5204);break;case q.JOIN_ROOM_FAILED:a.messageParams={fnParams:o};case q.SERVER_TIMEOUT:case q.SWITCH_ROLE_FAILED:case q.SWITCH_ROOM_FAILED:a.code=oe.SERVER_ERROR,a.extraCode=e.getExtraCode();break;case q.API_CALL_ABORTED:a.code=oe.OPERATION_ABORT;break;case q.DEVICE_NOT_FOUND:case q.DEVICE_AUTO_RECOVER_FAILED:case q.INITIALIZE_FAILED:a.code=5300,e.name&&(a.extraCode=$y(e.name));break;case q.VIDEO_ENCODE_FAILED:a.extraCode=5505;case q.AUDIO_ENCODE_FAILED:a.extraCode=5506,a.code=oe.OPERATION_FAILED;break;case q.UNKNOWN:break;default:a.code=oe.OPERATION_FAILED}s=new i(a),n&&(s.stack+=n.substr(n.indexOf(`
|
|
94
|
-
`)))}else{if(e instanceof i)return e;s=new i({code:oe.UNKNOWN_ERROR,fnName:r,originError:e})}return s}};function $y(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 ie=mp;function ri(i){return i==="sub"?"auxiliary":i==="auxiliary"?"sub":"main"}function dc(i){return i===gs.QOS_PREFERENCE_CLEAR?"detail":i===gs.QOS_PREFERENCE_SMOOTH?"motion":""}function An(i,t){let e=t?Ml:ea;return Yl(i)?J(J({},e),i):br[i]?br[i]:e}var vE={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:{type:["string","object","boolean"],properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack}}},CE={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}}},bn={type:["string",HTMLElement,null,"array"],arrayItem:{instanceOf:HTMLElement},validate(i,t,e){if(De(i)&&!document.getElementById(i))throw new ie({code:oe.INVALID_PARAMETER,extraCode:5009,fnName:e,messageParams:{key:t}})}},NE={name:"userId",required:!0,type:"string"},DE={type:"object",properties:{microphoneId:{type:"string"},audioTrack:{instanceOf:MediaStreamTrack},captureVolume:{type:"number",min:0},earMonitorVolume:{type:"number",min:0,max:100},profile:{type:["string","object"],properties:{bitrate:{type:"number"},channelCount:{type:"number"}}},echoCancellation:{type:"boolean"},autoGainControl:{type:"boolean"},noiseSuppression:{type:"boolean"}}};function Rn(i,t){if(!i)throw new ie({code:oe.INVALID_OPERATION,extraCode:5101,fnName:t})}function wE(i,t,e){if(!i)throw new ie({code:oe.INVALID_OPERATION,extraCode:5102,fnName:t,messageParams:{value:e}})}function ME(i,t,e){if(!(/^[1-9]\d*$/.test(String(i))&&i<4294967295))throw new ie({code:oe.INVALID_PARAMETER,extraCode:5013,fnName:t,messageParams:{key:e}})}function OE(i,t,e){if(!/^[A-Za-z\d\s!#$%&()+\-:;<=.>?@[\]^_{}|~,]{1,64}$/.test(i))throw new ie({code:oe.INVALID_PARAMETER,extraCode:5012,fnName:t,messageParams:{key:e}})}var jk={type:"number",notLessThanZero:!0},By=(i,t)=>i.width*i.height>=t.width*t.height&&i.frameRate>=t.frameRate&&i.bitrate>=t.bitrate;function xE(i){var r;if(!((r=i==null?void 0:i.option)!=null&&r.small))return;if(!Hd()){$.warn("small stream is not supported"),delete i.option.small;return}let t=An(i.option.profile),e=An(i.option.small,!0);if(!By(t,e)){$.warn(`small stream profile must be less than big stream profile. Big: ${JSON.stringify(t)}, Small: ${JSON.stringify(e)}`),delete i.option.small;return}}var Hy={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 ie({code:oe.INVALID_OPERATION,extraCode:5104,fnName:e});if(i.roomId){if(De(i.roomId))throw new ie({code:oe.INVALID_PARAMETER,extraCode:5016,fnName:e,messageParams:{key:t}});ME(i.roomId,e,t)}else if(i.strRoomId)OE(i.strRoomId,e,t);else throw new ie({code:oe.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"},playoutDelay:{type:"object",properties:{min:{type:"number",min:0,max:1e3},max:{type:"number",min:0,max:1e4}}}}},startLocalVideo:{name:"LocalVideoConfig",type:"object",properties:{view:bn,mute:{type:["boolean","string"]},publish:{type:"boolean"},capture:{required:!1,type:"boolean"},option:vE},validate(i){var t,e;if(!((t=i==null?void 0:i.option)!=null&&t.videoTrack)&&Ci())throw new ie({code:oe.ENV_NOT_SUPPORTED,extraCode:5201});(e=i==null?void 0:i.option)!=null&&e.small&&xE(i)}},updateLocalVideo:{name:"updateLocalVideoConfig",type:"object",required:!0,properties:{view:ge(J({},bn),{required:!1}),publish:{type:"boolean"},capture:{required:!1,type:"boolean"},mute:{type:["boolean","string"]},option:vE},validate(i){var t;(t=i==null?void 0:i.option)!=null&&t.small&&xE(i)}},startLocalAudio:{name:"LocalAudioConfig",type:"object",properties:{publish:{type:"boolean"},option:DE},validate(i){var t;if(!((t=i==null?void 0:i.option)!=null&&t.audioTrack)&&Ci())throw new ie({code:oe.ENV_NOT_SUPPORTED,extraCode:5201})}},updateLocalAudio:{name:"updateLocalAudioConfig",type:"object",required:!0,properties:{publish:{type:"boolean"},mute:{type:"boolean"},option:DE}},startScreenShare:{name:"ScreenShareConfig",type:"object",properties:{view:bn,publish:{type:"boolean"},option:CE},validate(i,t,e,r,o){var s;if(!((s=i==null?void 0:i.option)!=null&&s.videoTrack)){if(Ci())throw new ie({code:oe.ENV_NOT_SUPPORTED,extraCode:5201});if(!ka())throw new ie({code:oe.ENV_NOT_SUPPORTED,fnName:e,extraCode:5205})}}},updateScreenShare:{name:"updateScreenShareConfig",type:"object",required:!0,properties:{view:bn,publish:{type:"boolean"},option:CE}},muteRemoteAudio:[NE,{name:"mute",required:!0,type:"boolean"}],setRemoteAudioVolume:[NE,{name:"volume",required:!0,type:"number",min:0}],startRemoteVideo:{name:"startRemoteVideoConfig",type:"object",required:!0,properties:{view:bn,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){Rn(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(wE(!!r,e,i),r&&(i.streamType==="main"&&!r.muteState.videoAvailable||i.streamType==="sub"&&!r.muteState.hasAuxiliary))throw new ie({code:oe.INVALID_OPERATION,extraCode:5103,fnName:e,messageParams:{value:i}})}},updateRemoteVideo:{name:"updateRemoteVideoConfig",type:"object",required:!0,properties:{view:ge(J({},bn),{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){Rn(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(wE(!!r,e,i),r&&(i.streamType==="main"&&!r.muteState.videoAvailable||i.streamType==="sub"&&!r.muteState.hasAuxiliary))throw new ie({code:oe.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!=="*"&&x(i.streamType))throw new ie({code:oe.INVALID_PARAMETER,extraCode:5014,fnName:e})}},switchRole:{name:"role",required:!0,values:["anchor","audience"],validate(i,t,e){Rn(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(!Ua)throw new ie({code:oe.ENV_NOT_SUPPORTED,fnName:e,extraCode:5207});if(!this._room.enableSEI)throw new ie({code:oe.INVALID_OPERATION,fnName:e,extraCode:5108});if(i.byteLength>1e3)throw new ie({code:oe.INVALID_PARAMETER,extraCode:5018,fnName:e});if(i.byteLength===0)throw new ie({code:oe.INVALID_PARAMETER,extraCode:5017,messageParams:{key:t},fnName:e});Rn(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 ie({code:oe.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 ie({code:oe.INVALID_PARAMETER,extraCode:5018,fnName:e});if(i.byteLength===0)throw new ie({code:oe.INVALID_PARAMETER,extraCode:5017,fnName:e,messageParams:{key:t}})}}},validate(i,t,e){if(Rn(this._room.isJoined,e),this._room.scene==="live"&&this._room.role==="audience")throw new ie({code:oe.INVALID_OPERATION,extraCode:5107,fnName:e,messageParams:{key:t}})}},switchRoom:{name:"switchRoomConfig",type:"object",required:!0,validate(i,t,e){if(Rn(this._room.isJoined,e),this._room.useStringRoomId&&i.strRoomId===this._room.roomId||!this._room.useStringRoomId&&i.roomId===Number(this._room.roomId))throw new ie({code:oe.INVALID_PARAMETER,extraCode:5020,fnName:e,messageParams:{key:this._room.useStringRoomId?"strRoomId":"roomId"}});if(i.roomId&&this._room.useStringRoomId||!i.roomId&&i.strRoomId&&!this._room.useStringRoomId)throw new ie({code:oe.INVALID_PARAMETER,extraCode:5019,fnName:e,messageParams:{key:this._room.useStringRoomId?"strRoomId":"roomId"}});if(i.roomId)ME(i.roomId,e,t);else if(i.strRoomId)OE(i.strRoomId,e,t);else throw new ie({code:oe.INVALID_PARAMETER,extraCode:5015,fnName:e})},properties:{roomId:{type:"number"},strRoomId:{type:"string"},privateMapKey:{type:"string"},userSig:{type:"string",required:!0},autoSubscribeCount:{type:"number",min:0,max:50}}}},vt={TRTC:Hy};var Ht=class extends Error{};function Wy(i,t){let e=Vo(i);for(let r=0;r<t.length;r++)vr(e[r],t[r]);return e}function Gy(i){this._resolve=Promise.resolve(i)}function jy(i){this._reject=Promise.reject(i)}var fo=class fo{constructor(t,e){this.instance=t;this.group=e;l(this,"started",!1);l(this,"ops",[]);l(this,"startSame",()=>!0);l(this,"mergeUpdate",Wy);let r=fo.instances.get(t);r?r.set(e,this):fo.instances.set(t,new Map([[e,this]]))}static get(t,e){if(!e)return;let r=fo.instances.get(t);return r&&r.get(e)||new fo(t,e)}static gets(t,e){let r=fo.instances.get(t),o=[];return r&&r.forEach((s,n)=>{e.test(n)&&o.push(s)}),o}action(t,e,r){let o=a=>{var u;return t===0?this.started=!0:t===3&&(this.started=!1),this.ops.shift(),(u=this.currentOp)==null||u.action(),a},s=a=>{var u,m;throw this.ops.shift(),t===0&&((u=this.currentOp)==null?void 0:u.type)===2&&this.ops.shift().reject(new Ht("start failed")),(m=this.currentOp)==null||m.action(),a},n={type:t,action:()=>e(...n.args).then(o,s),args:r,resolve:Gy,reject:jy};try{switch(this.state){case 1:if(t===0)throw new Ht("already started");break;case 4:if(t===2)throw new Ht("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(o,s)}cacheOp(t){if(this.ops.length===1)switch(this.state){case 0:case 2:if(t.type===0)throw new Ht("already start");break;case 3:switch(t.type){case 2:throw new Ht("update not allowed when stopping");case 3:return this.currentOp.promise}break;default:throw new Ht("unknown state")}else switch(t.type){case 3:switch(this.lastOpType){case 3:return this.lastOp.promise;default:let r=new Ht("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 Ht("update not allowed after stop")}break;case 0:switch(this.lastOpType){case 2:throw new Ht("start not allowed after update");case 0:throw new Ht("duplicate start");case 3:if(this.startSame(this.currentOp.args,t.args))throw this.ops.pop().reject(new Ht("keep start")),new Ht("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}};l(fo,"instances",new WeakMap);var ki=fo;var xu=new WeakMap,Pu=(i,t)=>{if(t instanceof Ht){let{stack:e}=t;t=new ie({code:oe.OPERATION_ABORT,message:`${i} abort: ${t.message}`,fnName:i}),e&&(t.stack+=e.substr(e.indexOf(`
|
|
95
|
-
`)))}throw t};function
|
|
96
|
-
`));function
|
|
84
|
+
`),fe+=`}
|
|
85
|
+
`,it.push(fe),vc(Function,it).apply(null,Je)}function Sr(){this.allocated=[void 0],this.freelist=[]}var Ut=new Sr;function Cs(S){S>=Ut.reserved&&--Ut.get(S).refcount==0&&Ut.free(S)}function Nc(){for(var S=0,T=Ut.reserved;T<Ut.allocated.length;++T)Ut.allocated[T]!==void 0&&++S;return S}var Ns={toValue:S=>(S||me("Cannot use deleted val. handle = "+S),Ut.get(S).value),toHandle:S=>{switch(S){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return Ut.allocate({refcount:1,value:S})}}};function Lo(S){if(S===null)return"null";var T=typeof S;return T==="object"||T==="array"||T==="function"?S.toString():""+S}function gl(S,T){switch(T){case 2:return function(w){return this.fromWireType(Ye[w>>2])};case 3:return function(w){return this.fromWireType(H[w>>3])};default:throw new TypeError("Unknown float type: "+S)}}function El(S,T,w){switch(T){case 0:return w?function(P){return N[P]}:function(P){return D[P]};case 1:return w?function(P){return O[P>>1]}:function(P){return Z[P>>1]};case 2:return w?function(P){return ue[P>>2]}:function(P){return Se[P>>2]};default:throw new TypeError("Unknown integer type: "+S)}}var Dc=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,Uo=(S,T,w)=>{for(var P=T+w,B=T;S[B]&&!(B>=P);)++B;if(B-T>16&&S.buffer&&Dc)return Dc.decode(S.subarray(T,B));for(var W="";T<B;){var z=S[T++];if(128&z){var Y=63&S[T++];if((224&z)!=192){var re=63&S[T++];if((z=(240&z)==224?(15&z)<<12|Y<<6|re:(7&z)<<18|Y<<12|re<<6|63&S[T++])<65536)W+=String.fromCharCode(z);else{var G=z-65536;W+=String.fromCharCode(55296|G>>10,56320|1023&G)}}else W+=String.fromCharCode((31&z)<<6|Y)}else W+=String.fromCharCode(z)}return W},_l=(S,T)=>S?Uo(D,S,T):"",wc=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,Tl=(S,T)=>{for(var w=S,P=w>>1,B=P+T/2;!(P>=B)&&Z[P];)++P;if((w=P<<1)-S>32&&wc)return wc.decode(D.subarray(S,w));for(var W="",z=0;!(z>=T/2);++z){var Y=O[S+2*z>>1];if(Y==0)break;W+=String.fromCharCode(Y)}return W},yr=(S,T,w)=>{if(w===void 0&&(w=2147483647),w<2)return 0;for(var P=T,B=(w-=2)<2*S.length?w/2:S.length,W=0;W<B;++W){var z=S.charCodeAt(W);O[T>>1]=z,T+=2}return O[T>>1]=0,T-P},Ds=S=>2*S.length,Mc=(S,T)=>{for(var w=0,P="";!(w>=T/4);){var B=ue[S+4*w>>2];if(B==0)break;if(++w,B>=65536){var W=B-65536;P+=String.fromCharCode(55296|W>>10,56320|1023&W)}else P+=String.fromCharCode(B)}return P},Il=(S,T,w)=>{if(w===void 0&&(w=2147483647),w<4)return 0;for(var P=T,B=P+w-4,W=0;W<S.length;++W){var z=S.charCodeAt(W);if(z>=55296&&z<=57343&&(z=65536+((1023&z)<<10)|1023&S.charCodeAt(++W)),ue[T>>2]=z,(T+=4)+4>B)break}return ue[T>>2]=0,T-P},Qi=S=>{for(var T=0,w=0;w<S.length;++w){var P=S.charCodeAt(w);P>=55296&&P<=57343&&++w,T+=4}return T},Oc={},ws=[],Ms=[],Bn;Bn=()=>performance.now();var xc,Hn,Yi,Pc=[null,[],[]];(function(){for(var S=new Array(256),T=0;T<256;++T)S[T]=String.fromCharCode(T);Ke=S})(),Wi=o.BindingError=class extends Error{constructor(S){super(S),this.name="BindingError"}},Un=o.InternalError=class extends Error{constructor(S){super(S),this.name="InternalError"}},er.prototype.isAliasOf=Vn,er.prototype.clone=vs,er.prototype.delete=zi,er.prototype.isDeleted=Ue,er.prototype.deleteLater=_c,o.getInheritedInstanceCount=ll,o.getLiveInheritedInstances=ml,o.flushPendingDeletes=E,o.setDelayFunction=yt,rr.prototype.getPointee=hl,rr.prototype.destructor=pl,rr.prototype.argPackAdvance=8,rr.prototype.readValueFromPointer=Oo,rr.prototype.deleteObject=xo,rr.prototype.fromWireType=qi,ko=o.UnboundTypeError=(xc=Error,(Yi=tr(Hn="UnboundTypeError",function(S){this.name=Hn,this.message=S;var T=new Error(S).stack;T!==void 0&&(this.stack=this.toString()+`
|
|
86
|
+
`+T.replace(/^Error(:[^\n]*)?\n/,""))})).prototype=Object.create(xc.prototype),Yi.prototype.constructor=Yi,Yi.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},Yi),Object.assign(Sr.prototype,{get(S){return this.allocated[S]},has(S){return this.allocated[S]!==void 0},allocate(S){var T=this.freelist.pop()||this.allocated.length;return this.allocated[T]=S,T},free(S){this.allocated[S]=void 0,this.freelist.push(S)}}),Ut.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),Ut.reserved=Ut.allocated.length,o.count_emval_handles=Nc;var Vt,kc={o:function(S,T,w){throw new Ln(S).init(T,w),S},r:function(S,T,w,P,B){},m:function(S,T,w,P,B){var W=Ee(w);Lt(S,{name:T=kt(T),fromWireType:function(z){return!!z},toWireType:function(z,Y){return Y?P:B},argPackAdvance:8,readValueFromPointer:function(z){var Y;if(w===1)Y=N;else if(w===2)Y=O;else{if(w!==4)throw new TypeError("Unknown boolean type size: "+T);Y=ue}return this.fromWireType(Y[z>>W])},destructorFunction:null})},q:function(S,T,w,P,B,W,z,Y,re,G,he,De,ve){he=kt(he),W=Ji(B,W),Y&&(Y=Ji(z,Y)),G&&(G=Ji(re,G)),ve=Ji(De,ve);var fe=Gr(he);(function(we,it,Je){o.hasOwnProperty(we)?((Je===void 0||o[we].overloadTable!==void 0&&o[we].overloadTable[Je]!==void 0)&&me(`Cannot register public name '${we}' twice`),Tc(o,we,we),o.hasOwnProperty(Je)&&me(`Cannot register multiple overloads of a function with the same number of arguments (${Je})!`),o[we].overloadTable[Je]=it):(o[we]=it,Je!==void 0&&(o[we].numArguments=Je))})(fe,function(){Xi(`Cannot construct ${he} due to unbound types`,[P])}),Gi([S,T,w],P?[P]:[],function(we){var it,Je;we=we[0],Je=P?(it=we.registeredClass).instancePrototype:er.prototype;var ft=tr(fe,function(){if(Object.getPrototypeOf(this)!==Xe)throw new Wi("Use 'new' to construct "+he);if(Mt.constructor_body===void 0)throw new Wi(he+" has no accessible constructor");var br=Mt.constructor_body[arguments.length];if(br===void 0)throw new Wi(`Tried to invoke ctor of ${he} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(Mt.constructor_body).toString()}) parameters instead!`);return br.apply(this,arguments)}),Xe=Object.create(Je,{constructor:{value:ft}});ft.prototype=Xe;var Mt=new $n(he,ft,Xe,ve,it,W,Y,G);Mt.baseClass&&(Mt.baseClass.__derivedClasses===void 0&&(Mt.baseClass.__derivedClasses=[]),Mt.baseClass.__derivedClasses.push(Mt));var Ki=new rr(he,Mt,!0,!1,!1),Nt=new rr(he+"*",Mt,!1,!1,!1),Wn=new rr(he+" const*",Mt,!1,!0,!1);return j[S]={pointerType:Nt,constPointerType:Wn},function(br,Gn,xs){o.hasOwnProperty(br)||Qt("Replacing nonexistant public symbol"),o[br].overloadTable!==void 0&&xs!==void 0?o[br].overloadTable[xs]=Gn:(o[br]=Gn,o[br].argCount=xs)}(fe,ft),[Ki,Nt,Wn]})},p:function(S,T,w,P,B,W){var z=Rc(T,w);B=Ji(P,B),Gi([],[S],function(Y){var re=`constructor ${(Y=Y[0]).name}`;if(Y.registeredClass.constructor_body===void 0&&(Y.registeredClass.constructor_body=[]),Y.registeredClass.constructor_body[T-1]!==void 0)throw new Wi(`Cannot register multiple constructors with identical number of parameters (${T-1}) for class '${Y.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return Y.registeredClass.constructor_body[T-1]=()=>{Xi(`Cannot construct ${Y.name} due to unbound types`,z)},Gi([],z,function(G){return G.splice(1,0,null),Y.registeredClass.constructor_body[T-1]=Cc(re,G,null,B,W),[]}),[]})},d:function(S,T,w,P,B,W,z,Y,re){var G=Rc(w,P);T=kt(T),W=Ji(B,W),Gi([],[S],function(he){var De=`${(he=he[0]).name}.${T}`;function ve(){Xi(`Cannot call ${De} due to unbound types`,G)}T.startsWith("@@")&&(T=Symbol[T.substring(2)]),Y&&he.registeredClass.pureVirtualFunctions.push(T);var fe=he.registeredClass.instancePrototype,we=fe[T];return we===void 0||we.overloadTable===void 0&&we.className!==he.name&&we.argCount===w-2?(ve.argCount=w-2,ve.className=he.name,fe[T]=ve):(Tc(fe,T,De),fe[T].overloadTable[w-2]=ve),Gi([],G,function(it){var Je=Cc(De,it,he,W,z,re);return fe[T].overloadTable===void 0?(Je.argCount=w-2,fe[T]=Je):fe[T].overloadTable[w-2]=Je,[]}),[]})},u:function(S,T){Lt(S,{name:T=kt(T),fromWireType:function(w){var P=Ns.toValue(w);return Cs(w),P},toWireType:function(w,P){return Ns.toHandle(P)},argPackAdvance:8,readValueFromPointer:Oo,destructorFunction:null})},k:function(S,T,w){var P=Ee(w);Lt(S,{name:T=kt(T),fromWireType:function(B){return B},toWireType:function(B,W){return W},argPackAdvance:8,readValueFromPointer:gl(T,P),destructorFunction:null})},b:function(S,T,w,P,B){T=kt(T),B===-1&&(B=4294967295);var W=Ee(w),z=G=>G;if(P===0){var Y=32-8*w;z=G=>G<<Y>>>Y}var re=T.includes("unsigned");Lt(S,{name:T,fromWireType:z,toWireType:re?function(G,he){return this.name,he>>>0}:function(G,he){return this.name,he},argPackAdvance:8,readValueFromPointer:El(T,W,P!==0),destructorFunction:null})},a:function(S,T,w){var P=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][T];function B(W){var z=Se,Y=z[W>>=2],re=z[W+1];return new P(z.buffer,re,Y)}Lt(S,{name:w=kt(w),fromWireType:B,argPackAdvance:8,readValueFromPointer:B},{ignoreDuplicateRegistrations:!0})},j:function(S,T){var w=(T=kt(T))==="std::string";Lt(S,{name:T,fromWireType:function(P){var B,W=Se[P>>2],z=P+4;if(w)for(var Y=z,re=0;re<=W;++re){var G=z+re;if(re==W||D[G]==0){var he=_l(Y,G-Y);B===void 0?B=he:(B+="\0",B+=he),Y=G+1}}else{var De=new Array(W);for(re=0;re<W;++re)De[re]=String.fromCharCode(D[z+re]);B=De.join("")}return Ar(P),B},toWireType:function(P,B){var W;B instanceof ArrayBuffer&&(B=new Uint8Array(B));var z=typeof B=="string";z||B instanceof Uint8Array||B instanceof Uint8ClampedArray||B instanceof Int8Array||me("Cannot pass non-string to std::string"),W=w&&z?(De=>{for(var ve=0,fe=0;fe<De.length;++fe){var we=De.charCodeAt(fe);we<=127?ve++:we<=2047?ve+=2:we>=55296&&we<=57343?(ve+=4,++fe):ve+=3}return ve})(B):B.length;var Y=Zi(4+W+1),re=Y+4;if(Se[Y>>2]=W,w&&z)((De,ve,fe,we)=>{if(!(we>0))return 0;for(var it=fe,Je=fe+we-1,ft=0;ft<De.length;++ft){var Xe=De.charCodeAt(ft);if(Xe>=55296&&Xe<=57343&&(Xe=65536+((1023&Xe)<<10)|1023&De.charCodeAt(++ft)),Xe<=127){if(fe>=Je)break;ve[fe++]=Xe}else if(Xe<=2047){if(fe+1>=Je)break;ve[fe++]=192|Xe>>6,ve[fe++]=128|63&Xe}else if(Xe<=65535){if(fe+2>=Je)break;ve[fe++]=224|Xe>>12,ve[fe++]=128|Xe>>6&63,ve[fe++]=128|63&Xe}else{if(fe+3>=Je)break;ve[fe++]=240|Xe>>18,ve[fe++]=128|Xe>>12&63,ve[fe++]=128|Xe>>6&63,ve[fe++]=128|63&Xe}}ve[fe]=0})(B,D,re,W+1);else if(z)for(var G=0;G<W;++G){var he=B.charCodeAt(G);he>255&&(Ar(re),me("String has UTF-16 code units that do not fit in 8 bits")),D[re+G]=he}else for(G=0;G<W;++G)D[re+G]=B[G];return P!==null&&P.push(Ar,Y),Y},argPackAdvance:8,readValueFromPointer:Oo,destructorFunction:function(P){Ar(P)}})},g:function(S,T,w){var P,B,W,z,Y;w=kt(w),T===2?(P=Tl,B=yr,z=Ds,W=()=>Z,Y=1):T===4&&(P=Mc,B=Il,z=Qi,W=()=>Se,Y=2),Lt(S,{name:w,fromWireType:function(re){for(var G,he=Se[re>>2],De=W(),ve=re+4,fe=0;fe<=he;++fe){var we=re+4+fe*T;if(fe==he||De[we>>Y]==0){var it=P(ve,we-ve);G===void 0?G=it:(G+="\0",G+=it),ve=we+T}}return Ar(re),G},toWireType:function(re,G){typeof G!="string"&&me(`Cannot pass non-string to C++ string type ${w}`);var he=z(G),De=Zi(4+he+T);return Se[De>>2]=he>>Y,B(G,De+4,he+T),re!==null&&re.push(Ar,De),De},argPackAdvance:8,readValueFromPointer:Oo,destructorFunction:function(re){Ar(re)}})},n:function(S,T){Lt(S,{isVoid:!0,name:T=kt(T),argPackAdvance:0,fromWireType:function(){},toWireType:function(w,P){}})},e:function(S,T,w,P){var B,W;(S=ws[S])(T=Ns.toValue(T),w=(W=Oc[B=w])===void 0?kt(B):W,null,P)},l:Cs,h:function(S,T){var w=function(it,Je){for(var ft,Xe,Mt,Ki=new Array(it),Nt=0;Nt<it;++Nt)Ki[Nt]=(ft=Se[Je+4*Nt>>2],Xe="parameter "+Nt,Mt=void 0,(Mt=Wr[ft])===void 0&&me(Xe+" has unknown type "+bc(ft)),Mt);return Ki}(S,T),P=w[0],B=P.name+"_$"+w.slice(1).map(function(it){return it.name}).join("_")+"$",W=Ms[B];if(W!==void 0)return W;for(var z=["retType"],Y=[P],re="",G=0;G<S-1;++G)re+=(G!==0?", ":"")+"arg"+G,z.push("argType"+G),Y.push(w[1+G]);var he="return function "+Gr("methodCaller_"+B)+`(handle, name, destructors, args) {
|
|
87
|
+
`,De=0;for(G=0;G<S-1;++G)he+=" var arg"+G+" = argType"+G+".readValueFromPointer(args"+(De?"+"+De:"")+`);
|
|
88
|
+
`,De+=w[G+1].argPackAdvance;for(he+=" var rv = handle[name]("+re+`);
|
|
89
|
+
`,G=0;G<S-1;++G)w[G+1].deleteObject&&(he+=" argType"+G+".deleteObject(arg"+G+`);
|
|
90
|
+
`);P.isVoid||(he+=` return retType.toWireType(destructors, rv);
|
|
91
|
+
`),he+=`};
|
|
92
|
+
`,z.push(he);var ve,fe,we=vc(Function,z).apply(null,Y);return ve=we,fe=ws.length,ws.push(ve),W=fe,Ms[B]=W,W},f:()=>{cr("")},c:Bn,t:(S,T,w)=>D.copyWithin(S,T,T+w),s:S=>{D.length,cr("OOM")},i:(S,T,w,P)=>{for(var B,W,z,Y=0,re=0;re<w;re++){var G=Se[T>>2],he=Se[T+4>>2];T+=8;for(var De=0;De<he;De++)B=S,W=D[G+De],z=void 0,z=Pc[B],W===0||W===10?((B===1?g:_)(Uo(z,0)),z.length=0):z.push(W);Y+=he}return Se[P>>2]=Y,0}},Ar=(function(){var S,T,w,P,B={a:kc};function W(z,Y){var re,G,he=z.exports;return A=(C=he).v,re=A.buffer,o.HEAP8=N=new Int8Array(re),o.HEAP16=O=new Int16Array(re),o.HEAP32=ue=new Int32Array(re),o.HEAPU8=D=new Uint8Array(re),o.HEAPU16=Z=new Uint16Array(re),o.HEAPU32=Se=new Uint32Array(re),o.HEAPF32=Ye=new Float32Array(re),o.HEAPF64=H=new Float64Array(re),Pe=C.z,G=C.w,Pn.unshift(G),function(){if(Br--,o.monitorRunDependencies&&o.monitorRunDependencies(Br),Br==0&&(bs!==null&&(clearInterval(bs),bs=null),Bi)){var De=Bi;Bi=null,De()}}(),he}if(Br++,o.monitorRunDependencies&&o.monitorRunDependencies(Br),o.instantiateWasm)try{return o.instantiateWasm(B,W)}catch(z){_("Module.instantiateWasm callback failed with error: "+z),r(z)}(S=p,T=ci,w=B,P=function(z){W(z.instance)},S||typeof WebAssembly.instantiateStreaming!="function"||ie(T)||typeof fetch!="function"?Hr(T,w,P):fetch(T,{credentials:"same-origin"}).then(z=>WebAssembly.instantiateStreaming(z,w).then(P,function(Y){return _("wasm streaming compile failed: "+Y),_("falling back to ArrayBuffer instantiation"),Hr(T,w,P)}))).catch(r)}(),S=>(Ar=C.x)(S)),Zi=S=>(Zi=C.y)(S),Os=S=>(Os=C.A)(S),Lc=(o.__embind_initialize_bindings=()=>(o.__embind_initialize_bindings=C.B)(),S=>(Lc=C.C)(S));o.dynCall_jiji=(S,T,w,P,B)=>(o.dynCall_jiji=C.D)(S,T,w,P,B);function Uc(){function S(){Vt||(Vt=!0,o.calledRun=!0,On||(ui(Pn),e(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for(typeof o.postRun=="function"&&(o.postRun=[o.postRun]);o.postRun.length;)T=o.postRun.shift(),kn.unshift(T);var T;ui(kn)}()))}Br>0||(function(){if(o.preRun)for(typeof o.preRun=="function"&&(o.preRun=[o.preRun]);o.preRun.length;)T=o.preRun.shift(),xn.unshift(T);var T;ui(xn)}(),Br>0||(o.setStatus?(o.setStatus("Running..."),setTimeout(function(){setTimeout(function(){o.setStatus("")},1),S()},1)):S()))}if(Bi=function S(){Vt||Uc(),Vt||(Bi=S)},o.preInit)for(typeof o.preInit=="function"&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return Uc(),t.ready}})();var Ry="web.sdk.qcloud.com",vy=`https://${Ry}/trtc/webrtc/v5/doc`,Kx=`${vy}/zh-cn/`,lE=(i=>(i[i.TRACE=0]="TRACE",i[i.DEBUG=1]="DEBUG",i[i.INFO=2]="INFO",i[i.WARN=3]="WARN",i[i.ERROR=4]="ERROR",i[i.NONE=5]="NONE",i))(lE||{});var mE={"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}},eP=mE["480p_2"],tP=mE["120p_2"],Du={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",RESIZE:"resize",TIME_UPDATE:"timeupdate"},rP=Du.MAIN,iP=Du.AUXILIARY,oP=Du.BIG,sP=Du.SMALL;var nP=Object.keys(lE);var Cy=function(i,t,e,r){return new(e||(e=Promise))(function(o,s){function n(m){try{u(r.next(m))}catch(p){s(p)}}function a(m){try{u(r.throw(m))}catch(p){s(p)}}function u(m){var p;m.done?o(m.value):(p=m.value,p instanceof e?p:new e(function(g){g(p)})).then(n,a)}u((r=r.apply(i,t||[])).next())})},tp=Symbol(32),rp=Symbol(16),ip=Symbol(8),Kh=class{constructor(i){this.g=i,this.consumed=0,i&&(this.need=i.next().value)}setG(i){this.g=i,this.demand(i.next().value,!0)}consume(){this.buffer&&this.consumed&&(this.buffer.copyWithin(0,this.consumed),this.buffer=this.buffer.subarray(0,this.buffer.length-this.consumed),this.consumed=0)}demand(i,t){return t&&this.consume(),this.need=i,this.flush()}read(i){return Cy(this,void 0,void 0,function*(){return this.lastReadPromise&&(yield this.lastReadPromise),this.lastReadPromise=new Promise((t,e)=>{var r;this.reject=e,this.resolve=o=>{delete this.lastReadPromise,delete this.resolve,delete this.need,t(o)},this.demand(i,!0)||(r=this.pull)===null||r===void 0||r.call(this,i)})})}readU32(){return this.read(tp)}readU16(){return this.read(rp)}readU8(){return this.read(ip)}close(){var i;this.g&&this.g.return(),this.buffer&&this.buffer.subarray(0,0),(i=this.reject)===null||i===void 0||i.call(this,new Error("EOF")),delete this.lastReadPromise}flush(){if(!this.buffer||!this.need)return;let i=null,t=this.buffer.subarray(this.consumed),e=0,r=o=>t.length<(e=o);if(typeof this.need=="number"){if(r(this.need))return;i=t.subarray(0,e)}else if(this.need===tp){if(r(4))return;i=t[0]<<24|t[1]<<16|t[2]<<8|t[3]}else if(this.need===rp){if(r(2))return;i=t[0]<<8|t[1]}else if(this.need===ip){if(r(1))return;i=t[0]}else if("buffer"in this.need){if("byteOffset"in this.need){if(r(this.need.byteLength-this.need.byteOffset))return;new Uint8Array(this.need.buffer,this.need.byteOffset).set(t.subarray(0,e)),i=this.need}else if(this.g)return void this.g.throw(new Error("Unsupported type"))}else{if(r(this.need.byteLength))return;new Uint8Array(this.need).set(t.subarray(0,e)),i=this.need}return this.consumed+=e,this.g?this.demand(this.g.next(i).value,!0):this.resolve&&this.resolve(i),i}write(i){if(i instanceof Uint8Array?this.malloc(i.length).set(i):"buffer"in i?this.malloc(i.byteLength).set(new Uint8Array(i.buffer,i.byteOffset,i.byteLength)):this.malloc(i.byteLength).set(new Uint8Array(i)),!this.g&&!this.resolve)return new Promise(t=>this.pull=t);this.flush()}writeU32(i){this.malloc(4).set([i>>24&255,i>>16&255,i>>8&255,255&i]),this.flush()}writeU16(i){this.malloc(2).set([i>>8&255,255&i]),this.flush()}writeU8(i){this.malloc(1)[0]=i,this.flush()}malloc(i){if(this.buffer){let t=this.buffer.length,e=t+i;if(e<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,e);else{let r=new Uint8Array(e);r.set(this.buffer),this.buffer=r}return this.buffer.subarray(t,e)}return this.buffer=new Uint8Array(i),this.buffer}};Kh.U32=tp,Kh.U16=rp,Kh.U8=ip;var Ny=127,aP=~Ny,cP=Math.pow(2,31),dP=typeof window!="undefined"&&typeof window.glog=="function"?window.glog:()=>{},uP=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype;function aE(){return performance&&performance.now?Math.floor(performance.now()):Date.now()}var{toString:lP}=Object.prototype,hE=class pE{constructor(t){this.core=t,$r(this,"contextMap",new Map),$r(this,"decodeProcessorMap",new WeakMap),this.addKVReportBeforeExitRoom=this.addKVReportBeforeExitRoom.bind(this),this.createDecoder=this.createDecoder.bind(this),this.core.innerEmitter.on("51",this.addKVReportBeforeExitRoom)}getAlias(){return"videoDecoder"}getGroup(t){return t!=null&&t.track?`${t.track.userId}${t.track.streamType}`:"*"}getName(){return pE.Name}getValidateRule(t){return{type:this.core.enums.BASIC_TYPE.Object}}createDecoder(t,e){switch(t){case"wasm":return new by(vu(Ru({},e),{wasmPath:`${this.core.assetsPath||"."}/videodec.wasm`}));case"webCodecs":return new Rn;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:n})=>{if(n!==t.track||s.type==="empty")return s;if(this.contextMap.has(n))return this.contextMap.get(n).decode(s);let a=this.core.room.videoManager.createDecodeContext(vu(Ru({},t),{createDecoder:this.createDecoder}));return e(a.trackDoneOB,r(1),o(()=>{this.core.clearStarted(this,this.getGroup(t)),this.stop({track:n})})),this.contextMap.set(n,a),a.decode(s)}}stop(t){if(t!=null&&t.track){let e=this.contextMap.get(t.track);e&&(e.close("stop"),this.report(e,t.track),this.contextMap.delete(t.track))}else this.contextMap.forEach((e,r)=>{e.close("stop"),this.contextMap.delete(r)});this.contextMap.size===0&&this.core.room.videoManager.removeDecodeProcessor({type:3})}report(t,e){if(t.isReported)return;t.isReported=!0;let r=aE()-t.startPerformanceTime,{renderFreezeTotal:o,dataFreezeTotal:s}=this.getRemoteTrackFreezeDuration(e,t),n=`report health data: ${t.track.userId} ${t.track.streamType} ${t.type}+${t.renderer} goodType\uFF1A${t.goodType} ${t.failedReason?`failedReason: ${t.failedReason}`:""}`;r&&(this.core.kvStatManager.addNumber({key:514850,value:Math.floor(o/r*100),split:1,max:100}),n+=` RENDER_FREEZE_RATE: ${Math.floor(o/r*100)}%`),r&&(this.core.kvStatManager.addNumber({key:514851,value:Math.floor(s/r*100),split:1,max:100}),n+=` DATA_FREEZE_RATE: ${Math.floor(s/r*100)}%`),t.inputFrameCount&&(this.core.kvStatManager.addNumber({key:514852,value:Math.floor(t.decodedFrameCount/t.inputFrameCount*100),split:1,max:100}),n+=` VIDEO_CONSUME_RENDER_RATE: ${Math.floor(t.decodedFrameCount/t.inputFrameCount*100)}%`),this.core.log.info(n)}addKVReportBeforeExitRoom({room:t}){t===this.core.room&&this.contextMap.forEach((e,r)=>{this.report(e,r)})}update(t){let e=this.contextMap.get(t.track);e&&(t.type!=="mock"?(e.close("update"),this.contextMap.set(t.track,this.core.room.videoManager.createDecodeContext(vu(Ru({},t),{createDecoder:this.createDecoder})))):e.mock(this.core.enums.DECODE_FAILED_ERROR_CODE.TEST))}getRemoteTrackFreezeDuration(t,e){let r=this.core.room.badCaseDetector.getRenderFreezeMap().get(`${t.userId}_${t.streamType}`),o=this.core.room.badCaseDetector.getDataFreezeMap().get(`${t.userId}_${t.streamType}`),s=0;r&&r.freezeTimeline.forEach(({startTime:a,endTime:u})=>{a>e.startPerformanceTime&&(s+=u===0?aE()-a:u-a)});let n=0;return o&&o.durationItemList.forEach(a=>{a.startTime>e.startPerformanceTime&&(n+=a.getDuration())}),{renderFreezeTotal:s,dataFreezeTotal:n}}destroy(){this.core.innerEmitter.off("51",this.addKVReportBeforeExitRoom)}};$r(hE,"Name","TRTCVideoDecoder");var op=hE;var GE=pi(bi());function sp({timesInSecond:i,maxSizeInSecond:t,getSize:e}){return Oe((r,o)=>{let s=new WeakMap;return V.on(F.ROOM_DESTROY,({room:n})=>s.delete(n)),function(...n){let a=s.get(this);if(a||(a={callCountInSecond:0,timestamp:0,totalSizeInSecond:0},s.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>=i||a.totalSizeInSecond>t))throw new de({code:q.INVALID_OPERATION,message:$e({key:Fe.CALL_FREQUENCY_LIMIT,data:{isTimes:a.callCountInSecond>=i,isSize:a.totalSizeInSecond>t,name:o,timesInSecond:i,maxSizeInSecond:t}})});a.callCountInSecond++,r.call(this,...n)}})}var Dy="2025-08-28 10:51:13",fE=!0,gE=function(){var i;if(fE){fE=!1,$.getLogLevel()!==5&&(console.info("******************************************************************************"),console.info("* TRTC Web SDK"),console.info(`* API Document: ${qr}/en/index.html`),console.info(`* Changelog: ${qr}/en/tutorial-01-info-changelog.html`),console.info("* Report issues: https://github.com/LiteAVSDK/TRTC_Web/issues"),console.info("******************************************************************************")),$.info("TRTC Web SDK Version:",at),xr||$.debug("Build Time:",Dy);let t=`UA: ${navigator.userAgent}
|
|
93
|
+
CPU core: ${navigator.hardwareConcurrency}, GPU: ${dm()}`,e=navigator.deviceMemory;e&&(t+=`, minRAM: ${e}GB`),$.info(t),$.info(`URL: ${location.href}${((i=self.frameElement)==null?void 0:i.tagName)==="IFRAME"?" in iframe":""}`),Qo().then(r=>{r&&$.info(Dr)})}};var _s={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 se={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},Tr=(k=>(k[k.INVALID_PARAMETER=5e3]="INVALID_PARAMETER",k[k.INVALID_PARAMETER_REQUIRED=5001]="INVALID_PARAMETER_REQUIRED",k[k.INVALID_PARAMETER_TYPE=5002]="INVALID_PARAMETER_TYPE",k[k.INVALID_PARAMETER_EMPTY=5003]="INVALID_PARAMETER_EMPTY",k[k.INVALID_PARAMETER_INSTANCE=5004]="INVALID_PARAMETER_INSTANCE",k[k.INVALID_PARAMETER_RANGE=5005]="INVALID_PARAMETER_RANGE",k[k.INVALID_PARAMETER_LESS_THAN_ZERO=5006]="INVALID_PARAMETER_LESS_THAN_ZERO",k[k.INVALID_PARAMETER_MIN=5007]="INVALID_PARAMETER_MIN",k[k.INVALID_PARAMETER_MAX=5008]="INVALID_PARAMETER_MAX",k[k.INVALID_ELEMENT_ID=5009]="INVALID_ELEMENT_ID",k[k.INVALID_ELEMENT_ID_TYPE=5010]="INVALID_ELEMENT_ID_TYPE",k[k.INVALID_STREAM_ID=5011]="INVALID_STREAM_ID",k[k.INVALID_ROOM_ID_STRING=5012]="INVALID_ROOM_ID_STRING",k[k.INVALID_ROOM_ID_INTEGER=5013]="INVALID_ROOM_ID_INTEGER",k[k.INVALID_STREAM_TYPE=5014]="INVALID_STREAM_TYPE",k[k.INVALID_ROOM_ID_REQUIRED=5015]="INVALID_ROOM_ID_REQUIRED",k[k.INVALID_ROOM_ID_INTEGER_STRING=5016]="INVALID_ROOM_ID_INTEGER_STRING",k[k.INVALID_BUFFER_EMPTY=5017]="INVALID_BUFFER_EMPTY",k[k.INVALID_BUFFER_OVERSIZE=5018]="INVALID_BUFFER_OVERSIZE",k[k.INVALID_ROOM_ID_TYPE_MISMATCH=5019]="INVALID_ROOM_ID_TYPE_MISMATCH",k[k.INVALID_ROOM_ID_DUPLICATE=5020]="INVALID_ROOM_ID_DUPLICATE",k[k.INVALID_OPERATION=5100]="INVALID_OPERATION",k[k.INVALID_OPERATION_NOT_JOINED=5101]="INVALID_OPERATION_NOT_JOINED",k[k.INVALID_OPERATION_REMOTE_USER_NOT_EXIST=5102]="INVALID_OPERATION_REMOTE_USER_NOT_EXIST",k[k.INVALID_OPERATION_STREAM_TYPE_NOT_EXIST=5103]="INVALID_OPERATION_STREAM_TYPE_NOT_EXIST",k[k.INVALID_OPERATION_REPEAT_CALL=5104]="INVALID_OPERATION_REPEAT_CALL",k[k.INVALID_OPERATION_NEED_VIDEO=5105]="INVALID_OPERATION_NEED_VIDEO",k[k.INVALID_OPERATION_NEED_AUDIO=5106]="INVALID_OPERATION_NEED_AUDIO",k[k.INVALID_ROLE_AUDIENCE=5107]="INVALID_ROLE_AUDIENCE",k[k.INVALID_NOT_ENABLE_SEI=5108]="INVALID_NOT_ENABLE_SEI",k[k.INVALID_NEED_CALL_PUBLISHED=5109]="INVALID_NEED_CALL_PUBLISHED",k[k.ENV_NOT_SUPPORTED=5200]="ENV_NOT_SUPPORTED",k[k.NOT_SUPPORTED_HTTP=5201]="NOT_SUPPORTED_HTTP",k[k.NOT_SUPPORTED_WEBRTC=5202]="NOT_SUPPORTED_WEBRTC",k[k.NOT_SUPPORTED_H264_ENCODE=5203]="NOT_SUPPORTED_H264_ENCODE",k[k.NOT_SUPPORTED_H264_DECODE=5204]="NOT_SUPPORTED_H264_DECODE",k[k.NOT_SUPPORTED_SCREEN_SHARE=5205]="NOT_SUPPORTED_SCREEN_SHARE",k[k.NOT_SUPPORTED_SMALL_VIDEO=5206]="NOT_SUPPORTED_SMALL_VIDEO",k[k.NOT_SUPPORTED_SEI=5207]="NOT_SUPPORTED_SEI",k[k.NOT_SUPPORTED_WEBGL=5208]="NOT_SUPPORTED_WEBGL",k[k.NOT_SUPPORTED_CHROME_VERSION=5209]="NOT_SUPPORTED_CHROME_VERSION",k[k.NOT_SUPPORTED_PLUGIN=5210]="NOT_SUPPORTED_PLUGIN",k[k.DEVICE_ERROR=5300]="DEVICE_ERROR",k[k.DEVICE_NOT_FOUND_ERROR=5301]="DEVICE_NOT_FOUND_ERROR",k[k.DEVICE_NOT_ALLOWED_ERROR=5302]="DEVICE_NOT_ALLOWED_ERROR",k[k.DEVICE_NOT_READABLE_ERROR=5303]="DEVICE_NOT_READABLE_ERROR",k[k.DEVICE_OVERCONSTRAINED_ERROR=5304]="DEVICE_OVERCONSTRAINED_ERROR",k[k.DEVICE_INVALID_STATE_ERROR=5305]="DEVICE_INVALID_STATE_ERROR",k[k.DEVICE_SECURITY_ERROR=5306]="DEVICE_SECURITY_ERROR",k[k.DEVICE_ABORT_ERROR=5307]="DEVICE_ABORT_ERROR",k[k.CAMERA_RECOVER_FAILED=5308]="CAMERA_RECOVER_FAILED",k[k.MICROPHONE_RECOVER_FAILED=5309]="MICROPHONE_RECOVER_FAILED",k[k.SERVER_ERROR=5400]="SERVER_ERROR",k[k.NEED_TO_BUY=5401]="NEED_TO_BUY",k[k.ACCOUNT_NO_MONEY=-100013]="ACCOUNT_NO_MONEY",k[k.OPERATION_FAILED=5500]="OPERATION_FAILED",k[k.FIREWALL_RESTRICTION=5501]="FIREWALL_RESTRICTION",k[k.REJOIN_FAILED=5502]="REJOIN_FAILED",k[k.EVENT_HANDLER_ERROR=5503]="EVENT_HANDLER_ERROR",k[k.VIDEO_CONTEXT_ERROR=5504]="VIDEO_CONTEXT_ERROR",k[k.VIDEO_ENCODE_FAILED=5505]="VIDEO_ENCODE_FAILED",k[k.AUDIO_ENCODE_FAILED=5506]="AUDIO_ENCODE_FAILED",k[k.VIDEO_DECODE_FAILED=5507]="VIDEO_DECODE_FAILED",k[k.AUDIO_DECODE_FAILED=5508]="AUDIO_DECODE_FAILED",k[k.OPERATION_ABORT=5998]="OPERATION_ABORT",k[k.UNKNOWN_ERROR=5999]="UNKNOWN_ERROR",k))(Tr||{});function _E({code:i,params:t,enableDocLink:e=!1}){let r="",o,s=Tr[i];try{o=EE[s]}catch(n){o=EE.UNKNOWN_ERROR}return Ge(o)?r=o(t):Ne(o)&&(r=o),t.fnName&&!r.includes(t.fnName)&&(r[r.length-1]!=="."&&(r+="."),r+=` thrown from ${t.fnName}()`),e&&(r+=" doc:"),r}var EE=ge(X({},Yt),{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: ${ct(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: ${ct(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_REQUIRED(){return"at least one of 'roomId'(between [1, 4294967294]) and 'strRoomId'(not empty) is required."},INVALID_ROOM_ID_TYPE_MISMATCH({key:i}){return`The type of target roomId must match the current roomId. Current room is using '${i}', but received '${i==="strRoomId"?"roomId":"strRoomId"}'.`},INVALID_ROOM_ID_DUPLICATE({key:i}){return`the target '${i}' must not be the same as the current '${i}'.`},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 or screen share 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=Ts(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=Ts(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=Ts(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=Ts(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=Ts(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=Ts(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=Ts(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 Ts(i){if(!i)return"camera";let t=i.toLowerCase();return t.includes("screen")?"screen share":t.includes("audio")?"microphone":"camera"}var np=class i extends Error{constructor({code:e,extraCode:r,message:o="",messageParams:s,fnName:n="",originError:a,data:u}){var p;let m;o?m=o:m=_E({code:e===se.SERVER_ERROR?e:r||e,params:X({fnName:n,error:a},s)});super(m);l(this,"name","RtcError");l(this,"code");l(this,"extraCode");l(this,"functionName");l(this,"message");l(this,"data");l(this,"handler");l(this,"originError");this.name=Tr[e],this.code=e,this.extraCode=r,this.functionName=n,this.originError=a,this.message=m,this.data=u,this.extraCode===5302&&((p=this.originError)!=null&&p.message.includes("system"))&&(this.handler=()=>{let g={startLocalVideo:"Camera",startLocalAudio:"Microphone",startScreenShare:"ScreenCapture"},_={startLocalVideo:"webcam",startLocalAudio:"microphone"},A=document.createElement("a");Xo?A.href=`ms-settings:privacy-${_[this.functionName]}`:Mr&&(A.href=`x-apple.systempreferences:com.apple.preference.security?Privacy_${g[this.functionName]}`),A.href.length>0&&A.click()})}static convertFrom(e,r,o){let s=e;if(e instanceof de){let{stack:n}=e,a={code:se.UNKNOWN_ERROR,fnName:r,originError:e};switch(e.getCode()){case q.INVALID_PARAMETER:a.code=se.INVALID_PARAMETER,a.message=e.message;break;case q.INVALID_OPERATION:a.code=se.INVALID_OPERATION;break;case q.NOT_SUPPORTED:case q.NOT_SUPPORTED_H264:a.code=se.ENV_NOT_SUPPORTED,e.getCode()===q.NOT_SUPPORTED_H264&&(a.extraCode=e.message.includes(Yt.NOT_SUPPORTED_H264ENCODE)?5203:5204);break;case q.JOIN_ROOM_FAILED:a.messageParams={fnParams:o};case q.SERVER_TIMEOUT:case q.SWITCH_ROLE_FAILED:case q.SWITCH_ROOM_FAILED:a.code=se.SERVER_ERROR,a.extraCode=e.getExtraCode();break;case q.API_CALL_ABORTED:a.code=se.OPERATION_ABORT;break;case q.DEVICE_NOT_FOUND:case q.DEVICE_AUTO_RECOVER_FAILED:case q.INITIALIZE_FAILED:a.code=5300,e.name&&(a.extraCode=wy(e.name));break;case q.VIDEO_ENCODE_FAILED:a.extraCode=5505;case q.AUDIO_ENCODE_FAILED:a.extraCode=5506,a.code=se.OPERATION_FAILED;break;case q.UNKNOWN:break;default:a.code=se.OPERATION_FAILED}s=new i(a),n&&(s.stack+=n.substr(n.indexOf(`
|
|
94
|
+
`)))}else{if(e instanceof i)return e;s=new i({code:se.UNKNOWN_ERROR,fnName:r,originError:e})}return s}};function wy(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=np;function oi(i){return i==="sub"?"auxiliary":i==="auxiliary"?"sub":"main"}function sc(i){return i===_s.QOS_PREFERENCE_CLEAR?"detail":i===_s.QOS_PREFERENCE_SMOOTH?"motion":""}function vn(i,t){let e=t?Nl:Qn;return Jl(i)?X(X({},e),i):vr[i]?vr[i]:e}var TE={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:{type:["string","object","boolean"],properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack}}},IE={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}}},Cn={type:["string",HTMLElement,null,"array"],arrayItem:{instanceOf:HTMLElement},validate(i,t,e){if(Ne(i)&&!document.getElementById(i))throw new oe({code:se.INVALID_PARAMETER,extraCode:5009,fnName:e,messageParams:{key:t}})}},SE={name:"userId",required:!0,type:"string"},yE={type:"object",properties:{microphoneId:{type:"string"},audioTrack:{instanceOf:MediaStreamTrack},captureVolume:{type:"number",min:0},earMonitorVolume:{type:"number",min:0,max:100},profile:{type:["string","object"],properties:{bitrate:{type:"number"},channelCount:{type:"number"}}},echoCancellation:{type:"boolean"},autoGainControl:{type:"boolean"},noiseSuppression:{type:"boolean"}}};function Nn(i,t){if(!i)throw new oe({code:se.INVALID_OPERATION,extraCode:5101,fnName:t})}function AE(i,t,e){if(!i)throw new oe({code:se.INVALID_OPERATION,extraCode:5102,fnName:t,messageParams:{value:e}})}function bE(i,t,e){if(!(/^[1-9]\d*$/.test(String(i))&&i<4294967295))throw new oe({code:se.INVALID_PARAMETER,extraCode:5013,fnName:t,messageParams:{key:e}})}function RE(i,t,e){if(!/^[A-Za-z\d\s!#$%&()+\-:;<=.>?@[\]^_{}|~,]{1,64}$/.test(i))throw new oe({code:se.INVALID_PARAMETER,extraCode:5012,fnName:t,messageParams:{key:e}})}var kk={type:"number",notLessThanZero:!0},My=(i,t)=>i.width*i.height>=t.width*t.height&&i.frameRate>=t.frameRate&&i.bitrate>=t.bitrate;function vE(i){var r;if(!((r=i==null?void 0:i.option)!=null&&r.small))return;if(!Ud()){$.warn("small stream is not supported"),delete i.option.small;return}let t=vn(i.option.profile),e=vn(i.option.small,!0);if(!My(t,e)){$.warn(`small stream profile must be less than big stream profile. Big: ${JSON.stringify(t)}, Small: ${JSON.stringify(e)}`),delete i.option.small;return}}var Oy={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:se.INVALID_OPERATION,extraCode:5104,fnName:e});if(i.roomId){if(Ne(i.roomId))throw new oe({code:se.INVALID_PARAMETER,extraCode:5016,fnName:e,messageParams:{key:t}});bE(i.roomId,e,t)}else if(i.strRoomId)RE(i.strRoomId,e,t);else throw new oe({code:se.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"},playoutDelay:{type:"object",properties:{min:{type:"number",min:0,max:1e3},max:{type:"number",min:0,max:1e4}}}}},startLocalVideo:{name:"LocalVideoConfig",type:"object",properties:{view:Cn,mute:{type:["boolean","string"]},publish:{type:"boolean"},capture:{required:!1,type:"boolean"},option:TE},validate(i){var t,e;if(!((t=i==null?void 0:i.option)!=null&&t.videoTrack)&&wi())throw new oe({code:se.ENV_NOT_SUPPORTED,extraCode:5201});(e=i==null?void 0:i.option)!=null&&e.small&&vE(i)}},updateLocalVideo:{name:"updateLocalVideoConfig",type:"object",required:!0,properties:{view:ge(X({},Cn),{required:!1}),publish:{type:"boolean"},capture:{required:!1,type:"boolean"},mute:{type:["boolean","string"]},option:TE},validate(i){var t;(t=i==null?void 0:i.option)!=null&&t.small&&vE(i)}},startLocalAudio:{name:"LocalAudioConfig",type:"object",properties:{publish:{type:"boolean"},option:yE},validate(i){var t;if(!((t=i==null?void 0:i.option)!=null&&t.audioTrack)&&wi())throw new oe({code:se.ENV_NOT_SUPPORTED,extraCode:5201})}},updateLocalAudio:{name:"updateLocalAudioConfig",type:"object",required:!0,properties:{publish:{type:"boolean"},mute:{type:"boolean"},option:yE}},startScreenShare:{name:"ScreenShareConfig",type:"object",properties:{view:Cn,publish:{type:"boolean"},option:IE},validate(i,t,e,r,o){var s;if(!((s=i==null?void 0:i.option)!=null&&s.videoTrack)){if(wi())throw new oe({code:se.ENV_NOT_SUPPORTED,extraCode:5201});if(!Ma())throw new oe({code:se.ENV_NOT_SUPPORTED,fnName:e,extraCode:5205})}}},updateScreenShare:{name:"updateScreenShareConfig",type:"object",required:!0,properties:{view:Cn,publish:{type:"boolean"},option:IE}},muteRemoteAudio:[SE,{name:"mute",required:!0,type:"boolean"}],setRemoteAudioVolume:[SE,{name:"volume",required:!0,type:"number",min:0}],startRemoteVideo:{name:"startRemoteVideoConfig",type:"object",required:!0,properties:{view:Cn,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){Nn(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(AE(!!r,e,i),r&&(i.streamType==="main"&&!r.muteState.videoAvailable||i.streamType==="sub"&&!r.muteState.hasAuxiliary))throw new oe({code:se.INVALID_OPERATION,extraCode:5103,fnName:e,messageParams:{value:i}})}},updateRemoteVideo:{name:"updateRemoteVideoConfig",type:"object",required:!0,properties:{view:ge(X({},Cn),{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){Nn(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(AE(!!r,e,i),r&&(i.streamType==="main"&&!r.muteState.videoAvailable||i.streamType==="sub"&&!r.muteState.hasAuxiliary))throw new oe({code:se.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!=="*"&&x(i.streamType))throw new oe({code:se.INVALID_PARAMETER,extraCode:5014,fnName:e})}},switchRole:{name:"role",required:!0,values:["anchor","audience"],validate(i,t,e){Nn(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(!xa)throw new oe({code:se.ENV_NOT_SUPPORTED,fnName:e,extraCode:5207});if(!this._room.enableSEI)throw new oe({code:se.INVALID_OPERATION,fnName:e,extraCode:5108});if(i.byteLength>1e3)throw new oe({code:se.INVALID_PARAMETER,extraCode:5018,fnName:e});if(i.byteLength===0)throw new oe({code:se.INVALID_PARAMETER,extraCode:5017,messageParams:{key:t},fnName:e});Nn(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:se.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:se.INVALID_PARAMETER,extraCode:5018,fnName:e});if(i.byteLength===0)throw new oe({code:se.INVALID_PARAMETER,extraCode:5017,fnName:e,messageParams:{key:t}})}}},validate(i,t,e){if(Nn(this._room.isJoined,e),this._room.scene==="live"&&this._room.role==="audience")throw new oe({code:se.INVALID_OPERATION,extraCode:5107,fnName:e,messageParams:{key:t}})}},switchRoom:{name:"switchRoomConfig",type:"object",required:!0,validate(i,t,e){if(Nn(this._room.isJoined,e),this._room.useStringRoomId&&i.strRoomId===this._room.roomId||!this._room.useStringRoomId&&i.roomId===Number(this._room.roomId))throw new oe({code:se.INVALID_PARAMETER,extraCode:5020,fnName:e,messageParams:{key:this._room.useStringRoomId?"strRoomId":"roomId"}});if(i.roomId&&this._room.useStringRoomId||!i.roomId&&i.strRoomId&&!this._room.useStringRoomId)throw new oe({code:se.INVALID_PARAMETER,extraCode:5019,fnName:e,messageParams:{key:this._room.useStringRoomId?"strRoomId":"roomId"}});if(i.roomId)bE(i.roomId,e,t);else if(i.strRoomId)RE(i.strRoomId,e,t);else throw new oe({code:se.INVALID_PARAMETER,extraCode:5015,fnName:e})},properties:{roomId:{type:"number"},strRoomId:{type:"string"},privateMapKey:{type:"string"},userSig:{type:"string",required:!0},autoSubscribeCount:{type:"number",min:0,max:50}}}},Ct={TRTC:Oy};var Gt=class extends Error{};function xy(i,t){let e=Wo(i);for(let r=0;r<t.length;r++)Nr(e[r],t[r]);return e}function Py(i){this._resolve=Promise.resolve(i)}function ky(i){this._reject=Promise.reject(i)}var So=class So{constructor(t,e){this.instance=t;this.group=e;l(this,"started",!1);l(this,"ops",[]);l(this,"startSame",()=>!0);l(this,"mergeUpdate",xy);let r=So.instances.get(t);r?r.set(e,this):So.instances.set(t,new Map([[e,this]]))}static get(t,e){if(!e)return;let r=So.instances.get(t);return r&&r.get(e)||new So(t,e)}static gets(t,e){let r=So.instances.get(t),o=[];return r&&r.forEach((s,n)=>{e.test(n)&&o.push(s)}),o}action(t,e,r){let o=a=>{var u;return t===0?this.started=!0:t===3&&(this.started=!1),this.ops.shift(),(u=this.currentOp)==null||u.action(),a},s=a=>{var u,m;throw this.ops.shift(),t===0&&((u=this.currentOp)==null?void 0:u.type)===2&&this.ops.shift().reject(new Gt("start failed")),(m=this.currentOp)==null||m.action(),a},n={type:t,action:()=>e(...n.args).then(o,s),args:r,resolve:Py,reject:ky};try{switch(this.state){case 1:if(t===0)throw new Gt("already started");break;case 4:if(t===2)throw new Gt("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(o,s)}cacheOp(t){if(this.ops.length===1)switch(this.state){case 0:case 2:if(t.type===0)throw new Gt("already start");break;case 3:switch(t.type){case 2:throw new Gt("update not allowed when stopping");case 3:return this.currentOp.promise}break;default:throw new Gt("unknown state")}else switch(t.type){case 3:switch(this.lastOpType){case 3:return this.lastOp.promise;default:let r=new Gt("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 Gt("update not allowed after stop")}break;case 0:switch(this.lastOpType){case 2:throw new Gt("start not allowed after update");case 0:throw new Gt("duplicate start");case 3:if(this.startSame(this.currentOp.args,t.args))throw this.ops.pop().reject(new Gt("keep start")),new Gt("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}};l(So,"instances",new WeakMap);var Vi=So;var wu=new WeakMap,Mu=(i,t)=>{if(t instanceof Gt){let{stack:e}=t;t=new oe({code:se.OPERATION_ABORT,message:`${i} abort: ${t.message}`,fnName:i}),e&&(t.stack+=e.substr(e.indexOf(`
|
|
95
|
+
`)))}throw t};function yo(i,t){return Oe((e,r)=>function(...o){let s=Vi.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(Mu.bind(null,r))):e.apply(this,o)})}function Is(i,t){let{merge:e,debounce:r}=t||{};return Oe((o,s)=>function(...n){let a=Vi.get(this,typeof i=="string"?i:i.call(this,...n));if(!a)return o.apply(this,n);if(e&&(a.mergeUpdate=e.bind(this)),r&&r.isNeedToDebounce.apply(this,n)){let{delay:u,getKey:m}=r;return new Promise((p,g)=>{var C,N;let _=(C=wu.get(this))==null?void 0:C.get(m(...n));if(_){let{timeoutId:D,resolve:O}=_;clearTimeout(D),O()}let A=setTimeout(()=>{if(a.state===3||a.state===4)return p();a.action(2,o.bind(this),n).catch(Mu.bind(null,s)).then(p,g)},u);wu.has(this)?(N=wu.get(this))==null||N.set(m(...n),{timeoutId:A,resolve:p}):wu.set(this,new Map([[m(...n),{timeoutId:A,resolve:p}]]))})}return a.action(2,o.bind(this),n).catch(Mu.bind(null,s))})}function Ao(i){return Oe((t,e)=>function(...r){let o=typeof i=="function"?i.call(this,...r):i;if(o instanceof RegExp)return Promise.all(Vi.gets(this,o).map(n=>n.action(3,()=>Promise.resolve(),r))).then(()=>t.call(this,...r));let s=Vi.get(this,o);return s?s.action(3,t.bind(this),r).catch(Mu.bind(null,e)):t.apply(this,r)})}var te={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",PERMISSION_STATE_CHANGE:"permission-state-change",VIDEO_SIZE_CHANGED:"video-size-changed"},CE=new Set([te.ERROR,te.AUTOPLAY_FAILED,te.KICKED_OUT,te.REMOTE_USER_ENTER,te.REMOTE_USER_EXIT,te.REMOTE_AUDIO_AVAILABLE,te.REMOTE_AUDIO_UNAVAILABLE,te.REMOTE_VIDEO_AVAILABLE,te.REMOTE_VIDEO_UNAVAILABLE,te.CONNECTION_STATE_CHANGED,te.PUBLISH_STATE_CHANGED,te.SCREEN_SHARE_STOPPED,te.DEVICE_CHANGED,te.FIRST_VIDEO_FRAME,te.PERMISSION_STATE_CHANGE,te.VIDEO_SIZE_CHANGED]);var up={};hi(up,{ScheduleRequestType:()=>DE,getAbilityConfig:()=>Uy,getScheduleDomain:()=>Pu,isNeedToSchedule:()=>Ou,scheduleProxy:()=>si,sendScheduleRequest:()=>dp,setIsNeedToSchedule:()=>Ss,setScheduleProxy:()=>xu});var cp=null,Ou=!0;typeof document!="undefined"&&document.head.insertAdjacentHTML("beforeend",Object.values(Ei).map(i=>`<link rel="dns-prefetch" href="https://${i}">`).join(`\r
|
|
96
|
+
`));function Ss(i){Qe(i)&&i!==Ou&&(Ou=i,$.info(`setIsNeedToSchedule ${i}`))}V.on("28",()=>Ss(!0));V.on("63",()=>Ss(!0));V.on("84",()=>Ss(!0));V.on("201",i=>{i.state==="RECONNECTING"&&Ss(!0)});V.on("202",i=>{i.state==="RECONNECTING"&&Ss(!0)});function Ly(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=bo(i,"config",M.MAIN),n=bo(i,"config",M.BACKUP);for(let a of o)if(a.startTime>=e&&(a.name===s||a.name===n)&&a.transferSize>0){let u=a.name===s?M.MAIN:M.BACKUP,m=Math.round(a.duration),p=Math.round(a.domainLookupStart-a.startTime),g=a.redirectStart>0?Math.round(a.redirectEnd-a.redirectStart):0,_=a.fetchStart>0?Math.round(a.domainLookupStart-a.fetchStart):0,A=Math.round(a.domainLookupEnd-a.domainLookupStart),C=Math.round(a.requestStart-a.secureConnectionStart),N=Math.round(a.secureConnectionStart-a.connectStart),D=Math.round(a.responseStart-a.requestStart),O=Math.round(a.responseEnd-a.responseStart),Z=[A,C,N,D,O];He.uploadEvent({log:`stat-schedule-net:${m}(${p}(${g}->${_})->${Z.join("->")}) ${u}`,userId:t}),r=ge(X({},r),{totalCost:m,local:p,dns:A,tcp:N,tls:C,request:D,response:O});break}}catch(o){$.error("getScheduleDetailCost error",o)}return r}function dp(m){return y(this,arguments,function*({userId:i,sdkAppId:t,useStringRoomId:e,roomId:r,userSig:o,version:s,frameWorkType:n,role:a,latencyLevel:u}){if(!Ou&&cp)return{isCached:!0,result:cp};let p={delta:0,count:[1,1],msg:[],detail:[]};try{let g=new FormData;g.append("userId",String(i)),g.append("sdkAppId",String(t)),g.append("isStrGroupId",String(e)),g.append("groupId",String(r)),g.append("sdkVersion",s),g.append("userSig",String(o));let _=yield Qo();_!=null&&_.model&&g.append("model",String(_==null?void 0:_.model)),a&&g.append("role",String(a)),u&&g.append("latencyLevel",String(u)),n&&g.append("frameWorkType",String(n));let A=_e(),C=yield Fy(g,p,t);C.config&&(C.config.loggerDomain&&Fo(C.config.loggerDomain),Qe(C.config.scheduleCache)&&Ss(!C.config.scheduleCache)),p.delta=_e()-A;let N=Ly(Number(t),i,A);return cp=C,{isCached:!1,result:C,detailCost:N}}catch(g){let _=st(g)?g[0]:g,A=ke(_.code)?_.code:0,C=`schedule failed${_.message?`: ${_.message}`:""}`,N=new de({code:q.SCHEDULE_FAILED,extraCode:A,message:$e({key:Fe.JOIN_ROOM_FAILED,data:{error:C,code:A}})});throw $.error(C,A),N}})}var si={main:"",backup:""};function xu(i){st(i)?(si.main=i[0],si.backup=i[1]):si.main=i}var DE=(r=>(r.CONFIG="config",r.TRTC_AUTO_CONF="trtcAutoConf",r.AUDIO_AI_AUTH="audioAiAuth",r))(DE||{});function bo(i,t,e=M.MAIN,r=!1){return`https://${si[e]||Pu(i,e,r)}/api/v1/${t}`}function Uy(i,t,e){let r=bo(i,t),o=bo(i,t,M.BACKUP),s=new URLSearchParams(e).toString(),n=fetch(`${r}?${s}`).then(u=>u.json()),a=fetch(`${o}?${s}`).then(u=>u.json());return oa([n,a])}function Pu(i,t=M.MAIN,e=!1){let r;return _i(i)?e?r=t===M.MAIN?Ei.MAIN_OVERSEA_BACKUP:Ei.BACKUP_OVERSEA:r=t===M.MAIN?Ei.MAIN_OVERSEA:Ei.BACKUP_OVERSEA:r=t===M.MAIN?Ei.MAIN:Ei.BACKUP,r}function Vy(i,t,e){return new Promise((r,o)=>{Si({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 NE=(i,t)=>so({retryFunction:Vy,settings:{retries:3,timeout:0},onError:t,onRetrying:i});function Fy(i,t,e){return new Promise((r,o)=>{let s=null;oa([NE(n=>t.count[0]=n+1,({error:n,retry:a,retriedCount:u,retryFuncArgs:m})=>{t.msg[0]=n.message,s||(u>=1&&(m[0]=bo(e,"config",M.MAIN,!0)),a())})(bo(e,"config",M.MAIN),i,{get timeout(){return Go(2+t.count[0])*1e3}}),NE(n=>t.count[1]=n+1,({error:n,retry:a,retriedCount:u,retryFuncArgs:m})=>{t.msg[1]=n.message,s||(u>=2&&(m[0]=bo(e,"config",M.BACKUP,!0)),a())})(bo(e,"config",M.BACKUP),i,{get timeout(){return Go(2+t.count[1])*1e3}})]).then(n=>{s=n,r(s)}).catch(o)})}var $y=i=>i.startsWith("data:application/octet-stream;base64,"),By=i=>i.startsWith("file://"),nc=class{constructor(){l(this,"_log");this._log=$.createLogger({id:"fd"})}download(t,e){return y(this,null,function*(){let{type:r="blob"}=e||{};t=zo(t);try{let o=_e(),s;if(Ge(fetch)?s=yield this.downloadWithFetch(t,r):s=yield this.downloadWithXHR(t,r),!s||!s.data)throw new Error("data is empty");let n=_e()-o;return this._log.info(`downloaded: ${t}, return type: ${r}, cost: ${n}ms`),Q.addSuccessEvent({key:522700,cost:_e()-o}),s.data}catch(o){throw this._log.error(`failed to download: ${t}, error: ${o}`),Q.addFailedEvent({key:522700,error:o}),o}})}downloadWithFetch(t,e){return y(this,null,function*(){this._log.info(`download with fetch: ${t}, return type: ${e}`);try{let r=yield fetch(t);if(!r.ok){let s=new Error(`network response was not ok: ${r.status}`);throw s.status=r.status,s}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=()=>{if(s.status===200||s.status===0&&s.response)r({data:s.response});else{let n=new Error(`XHR failed, status: ${s.status}`);n.status=s.status,o(n)}},s.onerror=o,s.send(null)})}loadWasm(t,e){return y(this,null,function*(){this._log.info(`loadWasm ${t}, importObject: ${JSON.stringify(e)}`);let r=_e(),o=null,s=null;if(Ge(WebAssembly.instantiateStreaming)&&!$y(t)&&!By(t)&&Ge(fetch))try{let n=fetch(t);o=(yield WebAssembly.instantiateStreaming(n,e)).instance}catch(n){s=n}if(!o)try{let n=yield this.download(t,{type:"arraybuffer"});o=(yield WebAssembly.instantiate(n,e)).instance}catch(n){s=n}if(o){let n=_e()-r;return this._log.info(`loadedWasm ${t}, cost: ${n}ms`),Q.addSuccessEvent({key:522701,cost:n}),o}throw this._log.error(`failed to loadWasm ${t}, error: ${s}`),Q.addFailedEvent({key:522701,error:s}),s})}loadScript(t){this._log.info(`loadScript ${t}`);let e=_e();return new Promise((r,o)=>{let s=document.createElement("script");s.type="text/javascript",s.onload=()=>{this._log.info(`loadedScript ${t}, cost: ${_e()-e}ms`),Q.addSuccessEvent({key:522702,cost:_e()-e,split:1e3}),r(s)},s.onerror=n=>{this._log.error(`failed to loadScript ${t}, error: ${(n==null?void 0:n.message)||JSON.stringify(n)}`),Q.addFailedEvent({key:522702}),o(n)},s.crossOrigin="anonymous",s.src=t,document.head.append?document.head.append(s):document.getElementsByTagName("head")[0].appendChild(s)})}};ee([ns({settings:{timeout:0,retries:3},onError(t,e,r){var o;(t==null?void 0:t.status)===404||(o=t==null?void 0:t.message)!=null&&o.includes("404")?(this._log.warn("download 404, stop retry"),r(t)):e()},onRetrying(t){this._log.warn(`download retrying: ${t}`)}})],nc.prototype,"download",1),ee([ns({settings:{timeout:3e3,retries:3},onRetrying(t){this._log.warn(`loadScript retrying: ${t}`)}})],nc.prototype,"loadScript",1);var lp=new nc;function wE({TRTC:i,room:t,errorModule:e,assetsPath:r}){return{TRTC:i,LocalMixVideoTrack:gs,LocalVideoTrack:ar,LocalScreenTrack:ri,room:t,assetsPath:r,fileDownloader:lp,innerEmitter:V,INNER_EVENT:F,constants:Ol,environment:nn,utils:Jh,eventLogger:He,log:this.room.getLogger(),loggerManager:$,errorModule:e,kvStatManager:Q,rtcDectection:lo,trtc:this,rx:jh,enums:Dm,schedule:up,getDevices:pn,initVisionTaskRegistry:(o,s="/mediapipe/vision.js")=>y(this,null,function*(){window.VisionTaskRegistry||(yield lp.loadScript(`${o}/${s}`.replace(/([^:]\/)\/+/g,"$1"))),yield(yield window.VisionTaskRegistry.getInstance(o)).preloadModels([window.VisionTaskType.ImageSegmenter])}),audioContext:We(),deviceDetector:rt,AudioPlayer:gn,AutoPlayDialog:Wd,Timer:dt,clearStarted:(o,s)=>{let n=o.getAlias(),a=Vi.instances.get(this);if(a)if(s){let u=a.get(n+s);if(!u)return;u.started=!1}else a.forEach((u,m)=>{m.startsWith(n)&&(u.started=!1)})},startGetPCM:tc,createAudioNode:Ha,getNetworkTimeOffset:qp}}var ME=(i,t)=>{let{emit:e}=i;return i.emit=(...r)=>{try{return e.apply(i,r)}catch(o){let s=$e({key:Fe.CATCH_HANDLER_ERROR,data:{name:t,event:r[0]},addDocLink:!1});return $.warn(`${s}
|
|
97
97
|
|
|
98
|
-
${o.stack}`),!1}},i};var vn=new WeakMap;function FE(i){let t=vn.get(i);t&&(t.forEach(e=>clearTimeout(e)),vn.delete(i))}function $E(i,t){return Me((e,r)=>function(...o){let s=vn.get(this);s||(s=new Map,vn.set(this,s));let n=t(...o),a=s.get(n);if(!a||a<=0){e.apply(this,o);let u=setTimeout(()=>{var m;(m=vn.get(this))==null||m.delete(n)},i);s.set(n,u)}else{clearTimeout(a);let u=window.setTimeout(()=>{var m;e.apply(this,o),(m=vn.get(this))==null||m.delete(n)},i);s.set(n,u)}})}var HE="trtc-sdk-v5",WE="5.13.0-wasm.3";function Mt(...i){return Me((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 Tp(...i){return Me((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(ot(i))for(let o=0;o<i.length;o++)Vu.call(this,{rule:i[o],value:t[o],key:i[o].name,fnName:e,className:r});else Vu.call(this,{rule:i,value:t[0],key:i.name,fnName:e,className:r})}function Vu({rule:i,value:t,key:e,fnName:r,className:o}){function s(u){return{code:oe.INVALID_PARAMETER,extraCode:u,fnName:r,messageParams:{key:e,rule:i,value:t}}}if(x(t)){if(i.required)throw new ie(s(5001));if(x(i.defaultValue)){Ge(i.validate)&&i.validate.call(this,t,e,r,o,this);return}t=i.defaultValue}if(Array.isArray(i.type)){let u=!1;for(let m=0;m<i.type.length;m++)i.type[m]===null&&t===null&&(u=!0),Ge(i.type[m])&&t instanceof i.type[m]&&(u=!0),De(i.type[m])&&ct(t)===i.type[m].toLowerCase()&&(u=!0);if(!u)throw new ie({code:oe.INVALID_PARAMETER,extraCode:5002,fnName:r,messageParams:{key:e,rule:{type:i.type.map(m=>$o(m)?$s(m):De(m)?m:ct(m))},value:t}})}else if(!x(i.type)&&ct(t)!==i.type)throw new ie(s(5002));if(i.allowEmpty===!1){let u=ke(t)&&(t===0||Number.isNaN(t)),m=De(t)&&t.trim()==="";if(u||m)throw new ie(s(5003))}if(i.notLessThanZero&&ke(t)&&t<0)throw new ie(s(5006));if(!x(i.min)&&ke(t)&&t<i.min)throw new ie(s(5007));if(!x(i.max)&&ke(t)&&t>i.max)throw new ie(s(5008));if(De(i.instanceOf)){if(!t||t._name!==i.instanceOf)throw new ie(s(5004))}else if(Ge(i.instanceOf)&&!(t instanceof i.instanceOf))throw new ie(s(5004));if(Array.isArray(i.values)&&!i.values.includes(t))throw new ie(s(5005));let{properties:n}=i;Ft(n)&&or(t)&&Object.keys(n).forEach(u=>{Vu.call(this,{rule:n[u],value:t&&t[u],key:`${u}`,fnName:r,className:o})});let{arrayItem:a}=i;Ft(a)&&ot(t)&&t.forEach((u,m)=>{Vu.call(this,{rule:a,value:u,key:`${e}[${m}]`,fnName:r,className:o})}),Ge(i.validate)&&i.validate.call(this,t,e,r,o,this)}function tt(i={}){let{getRemoteId:t=()=>"",replaceArg:e,getKVReportKey:r,ignoreLog:o,ignoreErrorLog:s}=i;return Me((n,a)=>function(...u){var A,C,D;function m(w,O,Y){if(Y&&Y.includes(w))return"hided";if(e){let ue=e(...u);if(u[ue.argIndex]===O)return ue.value}if(O===u||w in u)return O;try{return O instanceof HTMLElement?`id: ${O.id} type:${ct(O)}`:O instanceof MediaStreamTrack?nd(O):(JSON.stringify(O),O)}catch(ue){return`type:${ct(O)}`}}let p=this._log||$;if(o!=null&&o(...u))return n.apply(this,u);u.length>0?p.info(`${a}() ${JSON.stringify(u,(w,O)=>m(w,O,["userSig","privateMapKey"]))}`):p.info(`${a}()`);let g=r?r(...u):Ld[a],T=(s==null?void 0:s(...u))||!1;try{let w=n.apply(this,u),O=_e();if(Yi(w)){let Y=`${a.includes("Plugin")?`${((C=(A=u[0]).getName)==null?void 0:C.call(A))||""} `:" "}`;return w.then(ue=>(p.info(`${a}() success ${Y}${t.call(this,...u)}`),X.addSuccessEvent({key:g,cost:_e()-O}),ue)).catch(ue=>{var W;ue=ie.convertFrom.call(this,ue,a,u.length===1?u[0]:u);let Se=ue.extraCode||ue.code,Ke=(W=ue.message)!=null&&W.includes(Se)?"":` code:${Se}`;throw T||p.error(`${a}() failed ${Y}${t.call(this,...u)} ${ue}${Ke} params: ${JSON.stringify(u,m)}`),X.addFailedEvent({key:g,error:ue}),ue})}return X.addSuccessEvent({key:g}),w}catch(w){w=ie.convertFrom.call(this,w,a);let O=w.extraCode||w.code,Y=(D=w.message)!=null&&D.includes(O)?"":` code:${O}`;throw T||p.error(`${a}() failed ${w}${Y} params: ${JSON.stringify(u,m)}`),X.addFailedEvent({key:g,error:w}),w}})}var $u=i=>Me((t,e)=>function(r,o){return y(this,null,function*(){let s=this._plugins.get(r);if(!s)throw this._log.error(`plugin ${String(r)} is not found`),new ie({code:oe.OPERATION_ABORT,message:`plugin ${String(r)} is not found`,fnName:e});if(Ge(s.constructor.isSupported)&&!s.constructor.isSupported())throw this._log.error(`plugin ${String(r)} is not supported`),new ie({code:oe.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 Bu=0,_p,Li=class Li{constructor(t){this.core=t;l(this,"log");l(this,"customAudioReferenceMap",new Map);l(this,"audioRefId",0);l(this,"audioContext",We());l(this,"localAudioWorkletNode");l(this,"screenAudioWorkletNode");l(this,"mixNode");l(this,"silentNode");Bu=Bu+1,this.log=t.log.createChild({id:`${this.getAlias()}${Bu}`}),this.log.info(`created id=${this.getAlias()}${Bu}`),this.installEvent()}static getStartValidateRule(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&&!t.room.audioManager.hasScreenAudioTrack)throw new ie({code:oe.INVALID_OPERATION,extraCode:5106,fnName:o})}}}preload(t){return _p||(_p=this.doPreload(t)),_p}doPreload(t){return y(this,null,function*(){let e=yield this.core.fileDownloader.download(t,{type:"blob"}),r=URL.createObjectURL(e);try{yield wi(this.audioContext,r)}catch(o){this.log.error(`preload audioProcessor failed. ${o}`)}finally{URL.revokeObjectURL(r)}})}getName(){return Li.Name}getAlias(){return"ap"}getGroup(){return"ap"}getValidateRule(t){switch(t){case"start":return Li.getStartValidateRule(this.core);case"update":return Li.updateValidateRule;case"stop":return Li.stopValidateRule}}start(t){return y(this,null,function*(){var T,A,C,D;let{room:e}=this.core,{sdkAppId:r,userId:o,userSig:s,assetsPath:n=this.core.assetsPath,audioReference:a,processLevel:u,enableDump:m,isLocalAudioNeedAudioProcess:p=!0,isScreenAudioNeedAudioProcess:g=!1}=t;if(this.core.room.audioManager.isLocalAudioNeedAudioProcess=p,this.core.room.audioManager.isScreenAudioNeedAudioProcess=g,!n)throw new ie({code:oe.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});if(yield this.preload(`${n}/audioProcessor-wasm.js`),p&&!this.localAudioWorkletNode){let{sign:w,status:O,timestamp:Y}=yield this.getAuthData(r,o,s);this.localAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.localAudioWorkletNode,"localAudio",r,o,Y,w,O,e)}if(g&&!this.screenAudioWorkletNode){let{sign:w,status:O,timestamp:Y}=yield this.getAuthData(r,o,s);this.screenAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.screenAudioWorkletNode,"screenAudio",r,o,Y,w,O,e)}this.mixNode||(this.mixNode=this.audioContext.createGain(),this.mixNode.gain.value=1),this.silentNode||(this.silentNode=this.audioContext.createConstantSource(),this.silentNode.offset.setValueAtTime(0,this.audioContext.currentTime),this.silentNode.start()),(T=this.localAudioWorkletNode)==null||T.port.postMessage({type:"enable"}),(A=this.screenAudioWorkletNode)==null||A.port.postMessage({type:"enable"}),e.audioManager.addAudioProcessor(this.mixNode,this.silentNode,this.localAudioWorkletNode,this.screenAudioWorkletNode),x(a)||a.forEach(w=>{this.customAudioReferenceMap.set(w,`o-${this.audioRefId++}`),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:w,refId:`o-${this.audioRefId++}`})}),x(u)||(C=this.localAudioWorkletNode)==null||C.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:u}}),x(m)||(D=this.localAudioWorkletNode)==null||D.port.postMessage({type:"dump",data:{enable:m}})})}update(t){return y(this,null,function*(){var s,n,a;let{audioReference:e,enableDump:r,processLevel:o}=t;x(e)||(this.customAudioReferenceMap.forEach((u,m)=>{this.customAudioReferenceMap.delete(m),this.core.room.audioManager.updateAudioReference({type:"remove",refId:u})}),e.forEach(u=>{this.customAudioReferenceMap.set(u,`o-${this.audioRefId++}`),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:u,refId:`o-${this.audioRefId++}`})})),x(o)||(s=this.localAudioWorkletNode)==null||s.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:o}}),x(r)||((n=this.localAudioWorkletNode)==null||n.port.postMessage({type:"dump",data:{enable:r}}),(a=this.screenAudioWorkletNode)==null||a.port.postMessage({type:"dump",data:{enable:r}}))})}stop(){return y(this,null,function*(){var e,r;let{room:t}=this.core;(e=this.localAudioWorkletNode)==null||e.port.postMessage({type:"disable"}),(r=this.screenAudioWorkletNode)==null||r.port.postMessage({type:"disable"}),yield t.audioManager.removeAudioProcessor(this.localAudioWorkletNode,this.screenAudioWorkletNode)})}destroy(){this.localAudioWorkletNode&&(this.localAudioWorkletNode.port.onmessage=null),this.screenAudioWorkletNode&&(this.screenAudioWorkletNode.port.onmessage=null),this.uninstallEvent()}getAuthData(t,e,r){return y(this,null,function*(){let o=String(Date.now()).slice(0,-3),{auth:s,sign:n,status:a,message:u}=yield Ky({sdkAppId:t,userSig:r,userId:e,timestamp:o});if(!s)throw this.log.info(`audioProcessor: ${e} auth result: ${s}. Message: ${u}`),new ie({code:oe.INVALID_PARAMETER,message:u});return{sign:n,status:a,timestamp:o}})}initWorkletNode(t,e,r,o,s,n,a,u){t.port.postMessage({type:"init",data:{sdkAppId:String(r),userId:o,timestamp:s,sign:n,status:a}}),t.port.onmessage=m=>{var g;let{data:p}=m;switch(p.type){case"cost":let T=(p==null?void 0:p.value)>10?"info":"debug";this.log[T](`${e==="localAudio"?"":`[${e}] `}avg cost: ${p.value} max: ${p==null?void 0:p.max}(${Os(new Date(p==null?void 0:p.maxCostTimestamp))}) hist: ${(g=p==null?void 0:p.hist)==null?void 0:g.join(" ")}`);return;case"log":this.log[p.logLevel](`${e==="localAudio"?"":`[${e}] `}${p.value}`);return;case"dump":V.emit("265",{room:u,data:p.value,type:e==="localAudio"?"dump":"dump-screen-audio"});return}}}handleLocalAudioStarted(t){return y(this,null,function*(){var e;if(!(!this.hitTest(t.room)||((e=this.core.room.scheduleResult.config)==null?void 0:e.audioProcessor)!==!0))try{yield this.core.trtc.startPlugin("AudioProcessor",{sdkAppId:this.core.room.sdkAppId,userId:this.core.room.userId,userSig:this.core.room.userSig}),this.log.warn("audio processor auto start success")}catch(r){this.log.warn(`audio processor auto start failed, error: ${r}`)}})}handleLocalAudioStopped(t){return y(this,null,function*(){var e;!this.hitTest(t.room)||((e=this.core.room.scheduleResult.config)==null?void 0:e.audioProcessor)!==!0||(yield this.core.trtc.stopPlugin("AudioProcessor"))})}installEvent(){this.core.innerEmitter.on("104",this.handleLocalAudioStarted,this),this.core.innerEmitter.on("114",this.handleLocalAudioStopped,this)}uninstallEvent(){this.core.innerEmitter.off("104",this.handleLocalAudioStarted,this),this.core.innerEmitter.off("114",this.handleLocalAudioStopped,this)}hitTest(t){return t===this.core.room}};l(Li,"updateValidateRule",{type:"object"}),l(Li,"stopValidateRule",{type:"object"}),l(Li,"Name","AudioProcessor");var Hu=Li;function Zy(i,t=M.MAIN){return`https://${ii[t]||Uu(i,t)}/api/v1/audioAiAuth`}function Ky(o){return y(this,arguments,function*({sdkAppId:i,userId:t,userSig:e,timestamp:r}){let n=`${Zy(i)}?sdkAppId=${i}&userId=${t}&userSig=${e}×tamp=${r}`,a=yield fetch(n),{data:{errCode:u,errMsg:m,sign:p,status:g}}=yield a.json();if(g==="1")return{auth:!0,sign:p,status:g,message:m};let T=fi(i)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",A="Init RTCAudioProcessor failed.",C="";switch(u){case 1:C="Please check your params.";break;case 2:C=`You need to buy packages. Refer to: ${T}`;break;case 3:C="Server is invalid. Please contact our engineer. ";break;case 4:C=`Your packages is not active. Refer to: ${T}`;break;case 5:C=`Your packages is expired. Refer to: ${T}`;break;case 6:C="Your version is not supported.";break}return{auth:!1,status:g,message:m?`${A} Reason: ${m}. ${C}`:`${A}, ${C}`}})}var Wu=0,Ip=class{constructor(t,e){l(this,"player");l(this,"publisher");l(this,"mixInput");this.mixInput=new ln(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&&(x(t.volume)||(this.volume=t.volume),x(t.loop)||(this.loop=t.loop),x(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 ie({code:oe.INVALID_PARAMETER,message:`start audioMixer plugin: param ${i} should be a function.`})}var oi=class oi{constructor(t){this.core=t;l(this,"log");l(this,"mixedMusicMap",new Map);l(this,"cacheMusicMap",new Map);Wu=Wu+1,this.log=t.log.createChild({id:`${this.getAlias()}${Wu}`}),this.log.info(`created id=${this.getAlias()}${Wu}`)}getName(){return oi.Name}getAlias(){return"ax"}getGroup(t){return t==null?void 0:t.id}getValidateRule(t){switch(t){case"start":return oi.startValidateRule;case"update":return oi.updateValidateRule;case"stop":return oi.stopValidateRule}}start(t){return y(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 Ip(t,e.audioManager),this.cacheMusicMap.set(r,s)),s.updateListener(t),s.updateSettings(t),yield s.play(),this.mixedMusicMap.set(r,s),s.mixInput.source.node&&this.core.room.audioManager.updateAudioReference({type:"add",audioReference:s.mixInput.source.node,refId:`ax-${r}`}),this.log.info(`start mix audio track ${r} success.`),X.addEnum({key:502700,value:3}),this.kvUpload(t)})}update(t){return y(this,null,function*(){let{id:e,operation:r,seekFrom:o,playbackRate:s}=t;this.log.info(`update music source, ${JSON.stringify(t)}`);let n=this.mixedMusicMap.get(e);if(!n){this.log.warn(`update music source failed, music id: ${e} not found.`);return}n.updateSettings(t),n.updateListener(t),x(r)||n.setOperation(r),x(o)||n.seek(o),this.kvUpload(t)})}stop(e){return y(this,arguments,function*({id:t}){if(this.mixedMusicMap.has(t)){this.log.info(`remove music source, music id: ${t}`);let r=this.mixedMusicMap.get(t);r!=null&&r.mixInput.source.node&&this.core.room.audioManager.updateAudioReference({type:"remove",audioReference:r.mixInput.source.node,refId:`ax-${t}`}),r==null||r.stop(),this.mixedMusicMap.delete(t)}t==="*"&&this.destroyAllMusic()})}kvUpload(t){let{track:e,loop:r,volume:o,playbackRate:s,operation:n,seekFrom:a,onTimeUpdate:u,onDurationChange:m,onEnded:p}=t;e&&X.addCount({key:502711}),r&&X.addCount({key:502703}),o&&X.addCount({key:502704}),s&&X.addCount({key:502705}),n&&X.addCount({key:502706}),a&&X.addCount({key:502707}),typeof u!="function"&&X.addCount({key:502709}),typeof p!="function"&&X.addCount({key:502710}),typeof m!="function"&&X.addCount({key:502708})}destroyAllMusic(){this.log.info("destroy all music source."),this.mixedMusicMap.forEach((t,e)=>{t!=null&&t.mixInput.track&&this.core.room.audioManager.updateAudioReference({type:"remove",audioReference:t.mixInput.track,refId: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()}};l(oi,"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"],n=o.split(".").pop(),a=s.indexOf(n)>=0,u=o.startsWith("blob"),m=o.startsWith("data");if(!(a||u||m))throw new ie({code:oe.INVALID_PARAMETER,message:"start audioMixer plugin: music url is invalid, please check your file format.",fnName:r})}if(!t.url&&!t.track)throw new ie({code:oe.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(oi,"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(oi,"stopValidateRule",{name:"options",type:"object",required:!0,properties:{id:{type:"string",required:!0}}}),l(oi,"Name","AudioMixer");var Gu=oi;var ju=0,Sp,Ui=class Ui{constructor(t){this.core=t;l(this,"log");l(this,"audioContext",We("denoiser"));l(this,"workletNode");ju=ju+1,this.log=t.log.createChild({id:`${this.getAlias()}${ju}`}),this.log.info(`created id=${this.getAlias()}${ju}`)}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 ie({code:oe.INVALID_OPERATION,extraCode:5106,fnName:o})}}}preload(t){return Sp||(Sp=this.doPreload(t)),Sp}doPreload(t){return y(this,null,function*(){let e=yield this.core.fileDownloader.download(t,{type:"blob"}),r=URL.createObjectURL(e);try{yield wi(this.audioContext,r)}catch(o){throw this.log.error("load worklet failed",o),o}finally{URL.revokeObjectURL(r)}})}getName(){return Ui.Name}getAlias(){return"ad"}getGroup(){return`AIDenoiser_${Date.now()}`}getValidateRule(t){switch(t){case"start":return Ui.startValidateRule(this.core);case"update":return Ui.updateValidateRule;case"stop":return Ui.stopValidateRule}}start(t){return y(this,null,function*(){let{room:e,schedule:r}=this.core,{assetsPath:o=this.core.assetsPath}=t;if(!o)throw new ie({code:oe.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});if(yield this.preload(`${o}/denoiser-wasm.js`),!this.workletNode){let s=String(Date.now()).slice(0,-3),{auth:n,sign:a,status:u,message:m}=yield tA(r,ge(J({},t),{timestamp:s}));if(!n)throw this.log.info(`RTCAIDenoiser: ${t.userId} auth result: ${n}. Message: ${m}`),new ie({code:oe.INVALID_PARAMETER,message:m});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:s,sign:a,status:u}}),this.workletNode.port.onmessage=p=>{var T;let{data:g}=p;if(g.type==="cost"){let A=(g==null?void 0:g.max)>20?"warn":(g==null?void 0:g.max)>10?"info":"debug";this.log[A](`avg cost: ${g.value} max: ${g==null?void 0:g.max}(${Os(new Date(g==null?void 0:g.maxCostTimestamp))}) hist: ${(T=g==null?void 0:g.hist)==null?void 0:T.join(" ")}`)}else g.type==="log"&&this.log[g.logLevel](`${g.value}`)}}this.workletNode.port.postMessage({type:"enable"}),e.audioManager.addDenoiser(this.workletNode),e.sendAbilityStatus({ai_denoise:1})})}update(){return y(this,null,function*(){})}stop(){return y(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)}};l(Ui,"updateValidateRule",{type:"object"}),l(Ui,"stopValidateRule",{type:"object"}),l(Ui,"Name","AIDenoiser");var qu=Ui;function tA(s,n){return y(this,arguments,function*(i,{sdkAppId:t,userId:e,userSig:r,timestamp:o}){try{let{data:{errCode:a,errMsg:u,sign:m,status:p}}=yield i.getAbilityConfig(t,i.ScheduleRequestType.AUDIO_AI_AUTH,{sdkAppId:t,userId:e,userSig:r,timestamp:o});if(p==="1")return{auth:!0,sign:m,status:p,message:u};let g=fi(t)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",T="Init RTCAIDenoiser failed.",A="";switch(a){case 1:A="Please check your params.";break;case 2:A=`You need to buy packages. Refer to: ${g}`;break;case 3:A="Server is invalid. Please contact our engineer. ";break;case 4:A=`Your packages is not active. Refer to: ${g}`;break;case 5:A=`Your packages is expired. Refer to: ${g}`;break;case 6:A="Your version is not supported.";break}return{auth:!1,status:p,message:u?`${T} Reason: ${u}. ${A}`:`${T}, ${A}`}}catch(a){return{auth:!1,status:"0",message:`Init RTCAIDenoiser failed. All requests failed. ${a}`}}})}var jE=ui(Si(),1);var yp=class extends jE.EventEmitter{constructor(){super();l(this,"observer");l(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 y(this,null,function*(){if(!this.observer)try{"PressureObserver"in window&&!pt&&(this.observer=new PressureObserver(this.onPressureChange),yield this.observer.observe("cpu",{sampleInterval:2e3}))}catch(e){Je.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)&&$.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){Je.uploadEvent({log:"stat-pressure-detector-destroy-failed",error:r})}}},rA=new yp,Ap=rA;function iA([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 a=0;a<r;a++)s.push(255);s.push(o);let n=new DataView(t);return s.push(...new Uint8Array(n.buffer)),s.push(128),new us(new DataView(new Uint8Array(s).buffer),!0)}function oA(i){return i.type==="empty"||i.data.byteLength===0}function sA(i){return i.getInt32(0)===1&&i.getInt8(4)===6}function nA(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 bp({frame:i,seiMessageList:t}){if(!t||t.length===0||i.data.byteLength===0)return i;let r=9-nA(i.data);if(r<=0)return i;let o=t.splice(0,r).reverse().map(iA),s=o.reduce((p,g)=>p+g.dataView.byteLength,0),n=new ArrayBuffer(s+i.data.byteLength),a=new DataView(n),u=new DataView(i.data),m=0;for(let p=0;p<o.length;p++)for(let g=0;g<o[p].dataView.byteLength;g++)a.setInt8(m++,o[p].dataView.getInt8(g));for(let p=0;p<i.data.byteLength;p++)a.setInt8(m++,u.getInt8(p));return i.data=n,i}function Rp({frame:i,onSEI:t}){try{let e=new DataView(i.data);if(oA(i)||!sA(e))return i;let r=[],o=0,s=-1,n=-1;for(let a=0;a<i.data.byteLength;a++){let u=e.getUint8(a);if(u===0)o++;else if(u===1){if(o===2||o===3){let m=a-o;if(s===-1?s=m:n===-1&&(n=m,r.push(new us(new DataView(e.buffer.slice(s,n)))),s=m,n=-1),!(e.getUint8(a+1)===6)){i.data=e.buffer.slice(m);break}}o=0}else o=0}t==null||t(r.reverse())}catch(e){}return i}var vp=0,lc=class lc{constructor(t){this.core=t;l(this,"log");l(this,"_seiMessageList",[]);l(this,"_smallSeiMessageList",[]);l(this,"_subStreamSeiMessageList",[]);vp++,this.log=t.log.createChild({id:`${this.getAlias()}${vp}`}),this.log.info(`[sei] created id=${this.getAlias()}${vp}`),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 bp({frame:t,seiMessageList:r})}catch(r){this.log.warn(r)}return t}decode({frame:t,track:e}){return Rp({frame:t,onSEI:r=>{r.forEach(o=>{this.core.trtc.emit(ee.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:Ko?this.encode:bp,type:2}),this.core.room.videoManager.addDecodeProcessor({processor:Ko?this.decode:Rp,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 lc.Name}getAlias(){return"sei"}getGroup(){return"sei"}};l(lc,"autoStart",!0),l(lc,"Name","SEI");var zu=lc;function Cp({frame:i,onDump:t}){return t==null||t(),i}function Np({frame:i,onDump:t}){return t==null||t(),i}var qE={"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:
|
|
98
|
+
${o.stack}`),!1}},i};var Dn=new WeakMap;function OE(i){let t=Dn.get(i);t&&(t.forEach(e=>clearTimeout(e)),Dn.delete(i))}function xE(i,t){return Oe((e,r)=>function(...o){let s=Dn.get(this);s||(s=new Map,Dn.set(this,s));let n=t(...o),a=s.get(n);if(!a||a<=0){e.apply(this,o);let u=setTimeout(()=>{var m;(m=Dn.get(this))==null||m.delete(n)},i);s.set(n,u)}else{clearTimeout(a);let u=window.setTimeout(()=>{var m;e.apply(this,o),(m=Dn.get(this))==null||m.delete(n)},i);s.set(n,u)}})}var kE="trtc-sdk-v5",LE="5.13.0-wasm.5";function xt(...i){return Oe((t,e)=>function(...r){try{Lu.call(this,i,r,e,this._name)}catch(o){return Promise.reject(o)}return t.apply(this,r)})}function mp(...i){return Oe((t,e)=>function(...r){try{Lu.call(this,i,r,e,this._name)}catch(o){throw o}return t.apply(this,r)})}function Lu(i,t,e,r){if(st(i))for(let o=0;o<i.length;o++)ku.call(this,{rule:i[o],value:t[o],key:i[o].name,fnName:e,className:r});else ku.call(this,{rule:i,value:t[0],key:i.name,fnName:e,className:r})}function ku({rule:i,value:t,key:e,fnName:r,className:o}){function s(u){return{code:se.INVALID_PARAMETER,extraCode:u,fnName:r,messageParams:{key:e,rule:i,value:t}}}if(x(t)){if(i.required)throw new oe(s(5001));if(x(i.defaultValue)){Ge(i.validate)&&i.validate.call(this,t,e,r,o,this);return}t=i.defaultValue}if(Array.isArray(i.type)){let u=!1;for(let m=0;m<i.type.length;m++)i.type[m]===null&&t===null&&(u=!0),Ge(i.type[m])&&t instanceof i.type[m]&&(u=!0),Ne(i.type[m])&&ct(t)===i.type[m].toLowerCase()&&(u=!0);if(!u)throw new oe({code:se.INVALID_PARAMETER,extraCode:5002,fnName:r,messageParams:{key:e,rule:{type:i.type.map(m=>jo(m)?Hs(m):Ne(m)?m:ct(m))},value:t}})}else if(!x(i.type)&&ct(t)!==i.type)throw new oe(s(5002));if(i.allowEmpty===!1){let u=ke(t)&&(t===0||Number.isNaN(t)),m=Ne(t)&&t.trim()==="";if(u||m)throw new oe(s(5003))}if(i.notLessThanZero&&ke(t)&&t<0)throw new oe(s(5006));if(!x(i.min)&&ke(t)&&t<i.min)throw new oe(s(5007));if(!x(i.max)&&ke(t)&&t>i.max)throw new oe(s(5008));if(Ne(i.instanceOf)){if(!t||t._name!==i.instanceOf)throw new oe(s(5004))}else if(Ge(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:n}=i;Bt(n)&&ir(t)&&Object.keys(n).forEach(u=>{ku.call(this,{rule:n[u],value:t&&t[u],key:`${u}`,fnName:r,className:o})});let{arrayItem:a}=i;Bt(a)&&st(t)&&t.forEach((u,m)=>{ku.call(this,{rule:a,value:u,key:`${e}[${m}]`,fnName:r,className:o})}),Ge(i.validate)&&i.validate.call(this,t,e,r,o,this)}function tt(i={}){let{getRemoteId:t=()=>"",replaceArg:e,getKVReportKey:r,ignoreLog:o,ignoreErrorLog:s}=i;return Oe((n,a)=>function(...u){var A,C,N;function m(D,O,Z){if(Z&&Z.includes(D))return"hided";if(e){let ue=e(...u);if(u[ue.argIndex]===O)return ue.value}if(O===u||D in u)return O;try{return O instanceof HTMLElement?`id: ${O.id} type:${ct(O)}`:O instanceof MediaStreamTrack?td(O):(JSON.stringify(O),O)}catch(ue){return`type:${ct(O)}`}}let p=this._log||$;if(o!=null&&o(...u))return n.apply(this,u);u.length>0?p.info(`${a}() ${JSON.stringify(u,(D,O)=>m(D,O,["userSig","privateMapKey"]))}`):p.info(`${a}()`);let g=r?r(...u):Md[a],_=(s==null?void 0:s(...u))||!1;try{let D=n.apply(this,u),O=_e();if(io(D)){let Z=`${a.includes("Plugin")?`${((C=(A=u[0]).getName)==null?void 0:C.call(A))||""} `:" "}`;return D.then(ue=>(p.info(`${a}() success ${Z}${t.call(this,...u)}`),Q.addSuccessEvent({key:g,cost:_e()-O}),ue)).catch(ue=>{var H;ue=oe.convertFrom.call(this,ue,a,u.length===1?u[0]:u);let Se=ue.extraCode||ue.code,Ye=(H=ue.message)!=null&&H.includes(Se)?"":` code:${Se}`;throw _||p.error(`${a}() failed ${Z}${t.call(this,...u)} ${ue}${Ye} params: ${JSON.stringify(u,m)}`),Q.addFailedEvent({key:g,error:ue}),ue})}return Q.addSuccessEvent({key:g}),D}catch(D){D=oe.convertFrom.call(this,D,a);let O=D.extraCode||D.code,Z=(N=D.message)!=null&&N.includes(O)?"":` code:${O}`;throw _||p.error(`${a}() failed ${D}${Z} params: ${JSON.stringify(u,m)}`),Q.addFailedEvent({key:g,error:D}),D}})}var Uu=i=>Oe((t,e)=>function(r,o){return y(this,null,function*(){let s=this._plugins.get(r);if(!s)throw this._log.error(`plugin ${String(r)} is not found`),new oe({code:se.OPERATION_ABORT,message:`plugin ${String(r)} is not found`,fnName:e});if(Ge(s.constructor.isSupported)&&!s.constructor.isSupported())throw this._log.error(`plugin ${String(r)} is not supported`),new oe({code:se.ENV_NOT_SUPPORTED,message:`plugin ${String(r)} is not supported`,extraCode:5210,fnName:e});return Lu.call(this,s.getValidateRule(i),[o],e,"TRTC"),t.call(this,s,o)})});var Vu=0,hp,Fi=class Fi{constructor(t){this.core=t;l(this,"log");l(this,"customAudioReferenceMap",new Map);l(this,"audioRefId",0);l(this,"audioContext",We());l(this,"localAudioWorkletNode");l(this,"screenAudioWorkletNode");l(this,"mixNode");l(this,"silentNode");Vu=Vu+1,this.log=t.log.createChild({id:`${this.getAlias()}${Vu}`}),this.log.info(`created id=${this.getAlias()}${Vu}`),this.installEvent()}static getStartValidateRule(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&&!t.room.audioManager.hasScreenAudioTrack)throw new oe({code:se.INVALID_OPERATION,extraCode:5106,fnName:o})}}}preload(t){return hp||(hp=this.doPreload(t)),hp}doPreload(t){return y(this,null,function*(){let e=yield this.core.fileDownloader.download(t,{type:"blob"}),r=URL.createObjectURL(e);try{yield xi(this.audioContext,r)}catch(o){this.log.error(`preload audioProcessor failed. ${o}`)}finally{URL.revokeObjectURL(r)}})}getName(){return Fi.Name}getAlias(){return"ap"}getGroup(){return"ap"}getValidateRule(t){switch(t){case"start":return Fi.getStartValidateRule(this.core);case"update":return Fi.updateValidateRule;case"stop":return Fi.stopValidateRule}}start(t){return y(this,null,function*(){var _,A,C,N;let{room:e}=this.core,{sdkAppId:r,userId:o,userSig:s,assetsPath:n=this.core.assetsPath,audioReference:a,processLevel:u,enableDump:m,isLocalAudioNeedAudioProcess:p=!0,isScreenAudioNeedAudioProcess:g=!1}=t;if(this.core.room.audioManager.isLocalAudioNeedAudioProcess=p,this.core.room.audioManager.isScreenAudioNeedAudioProcess=g,!n)throw new oe({code:se.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});if(yield this.preload(`${n}/audioProcessor-wasm.js`),p&&!this.localAudioWorkletNode){let{sign:D,status:O,timestamp:Z}=yield this.getAuthData(r,o,s);this.localAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.localAudioWorkletNode,"localAudio",r,o,Z,D,O,e)}if(g&&!this.screenAudioWorkletNode){let{sign:D,status:O,timestamp:Z}=yield this.getAuthData(r,o,s);this.screenAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.screenAudioWorkletNode,"screenAudio",r,o,Z,D,O,e)}this.mixNode||(this.mixNode=this.audioContext.createGain(),this.mixNode.gain.value=1),this.silentNode||(this.silentNode=this.audioContext.createConstantSource(),this.silentNode.offset.setValueAtTime(0,this.audioContext.currentTime),this.silentNode.start()),(_=this.localAudioWorkletNode)==null||_.port.postMessage({type:"enable"}),(A=this.screenAudioWorkletNode)==null||A.port.postMessage({type:"enable"}),e.audioManager.addAudioProcessor(this.mixNode,this.silentNode,this.localAudioWorkletNode,this.screenAudioWorkletNode),x(a)||a.forEach(D=>{this.customAudioReferenceMap.set(D,`o-${this.audioRefId++}`),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:D,refId:`o-${this.audioRefId++}`})}),x(u)||(C=this.localAudioWorkletNode)==null||C.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:u}}),x(m)||(N=this.localAudioWorkletNode)==null||N.port.postMessage({type:"dump",data:{enable:m}})})}update(t){return y(this,null,function*(){var s,n,a;let{audioReference:e,enableDump:r,processLevel:o}=t;x(e)||(this.customAudioReferenceMap.forEach((u,m)=>{this.customAudioReferenceMap.delete(m),this.core.room.audioManager.updateAudioReference({type:"remove",refId:u})}),e.forEach(u=>{this.customAudioReferenceMap.set(u,`o-${this.audioRefId++}`),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:u,refId:`o-${this.audioRefId++}`})})),x(o)||(s=this.localAudioWorkletNode)==null||s.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:o}}),x(r)||((n=this.localAudioWorkletNode)==null||n.port.postMessage({type:"dump",data:{enable:r}}),(a=this.screenAudioWorkletNode)==null||a.port.postMessage({type:"dump",data:{enable:r}}))})}stop(){return y(this,null,function*(){var e,r;let{room:t}=this.core;(e=this.localAudioWorkletNode)==null||e.port.postMessage({type:"disable"}),(r=this.screenAudioWorkletNode)==null||r.port.postMessage({type:"disable"}),yield t.audioManager.removeAudioProcessor(this.localAudioWorkletNode,this.screenAudioWorkletNode)})}destroy(){this.localAudioWorkletNode&&(this.localAudioWorkletNode.port.onmessage=null),this.screenAudioWorkletNode&&(this.screenAudioWorkletNode.port.onmessage=null),this.uninstallEvent()}getAuthData(t,e,r){return y(this,null,function*(){let o=String(Date.now()).slice(0,-3),{auth:s,sign:n,status:a,message:u}=yield Wy({sdkAppId:t,userSig:r,userId:e,timestamp:o});if(!s)throw this.log.info(`audioProcessor: ${e} auth result: ${s}. Message: ${u}`),new oe({code:se.INVALID_PARAMETER,message:u});return{sign:n,status:a,timestamp:o}})}initWorkletNode(t,e,r,o,s,n,a,u){t.port.postMessage({type:"init",data:{sdkAppId:String(r),userId:o,timestamp:s,sign:n,status:a}}),t.port.onmessage=m=>{var g;let{data:p}=m;switch(p.type){case"cost":let _=(p==null?void 0:p.value)>10?"info":"debug";this.log[_](`${e==="localAudio"?"":`[${e}] `}avg cost: ${p.value} max: ${p==null?void 0:p.max}(${Ps(new Date(p==null?void 0:p.maxCostTimestamp))}) hist: ${(g=p==null?void 0:p.hist)==null?void 0:g.join(" ")}`);return;case"log":this.log[p.logLevel](`${e==="localAudio"?"":`[${e}] `}${p.value}`);return;case"dump":V.emit("265",{room:u,data:p.value,type:e==="localAudio"?"dump":"dump-screen-audio"});return}}}handleLocalAudioStarted(t){return y(this,null,function*(){var e;if(!(!this.hitTest(t.room)||((e=this.core.room.scheduleResult.config)==null?void 0:e.audioProcessor)!==!0))try{yield this.core.trtc.startPlugin("AudioProcessor",{sdkAppId:this.core.room.sdkAppId,userId:this.core.room.userId,userSig:this.core.room.userSig}),this.log.warn("audio processor auto start success")}catch(r){this.log.warn(`audio processor auto start failed, error: ${r}`)}})}handleLocalAudioStopped(t){return y(this,null,function*(){var e;!this.hitTest(t.room)||((e=this.core.room.scheduleResult.config)==null?void 0:e.audioProcessor)!==!0||(yield this.core.trtc.stopPlugin("AudioProcessor"))})}installEvent(){this.core.innerEmitter.on("104",this.handleLocalAudioStarted,this),this.core.innerEmitter.on("114",this.handleLocalAudioStopped,this)}uninstallEvent(){this.core.innerEmitter.off("104",this.handleLocalAudioStarted,this),this.core.innerEmitter.off("114",this.handleLocalAudioStopped,this)}hitTest(t){return t===this.core.room}};l(Fi,"updateValidateRule",{type:"object"}),l(Fi,"stopValidateRule",{type:"object"}),l(Fi,"Name","AudioProcessor");var Fu=Fi;function Hy(i,t=M.MAIN){return`https://${si[t]||Pu(i,t)}/api/v1/audioAiAuth`}function Wy(o){return y(this,arguments,function*({sdkAppId:i,userId:t,userSig:e,timestamp:r}){let n=`${Hy(i)}?sdkAppId=${i}&userId=${t}&userSig=${e}×tamp=${r}`,a=yield fetch(n),{data:{errCode:u,errMsg:m,sign:p,status:g}}=yield a.json();if(g==="1")return{auth:!0,sign:p,status:g,message:m};let _=_i(i)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",A="Init RTCAudioProcessor failed.",C="";switch(u){case 1:C="Please check your params.";break;case 2:C=`You need to buy packages. Refer to: ${_}`;break;case 3:C="Server is invalid. Please contact our engineer. ";break;case 4:C=`Your packages is not active. Refer to: ${_}`;break;case 5:C=`Your packages is expired. Refer to: ${_}`;break;case 6:C="Your version is not supported.";break}return{auth:!1,status:g,message:m?`${A} Reason: ${m}. ${C}`:`${A}, ${C}`}})}var $u=0,pp=class{constructor(t,e){l(this,"player");l(this,"publisher");l(this,"mixInput");this.mixInput=new hn(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&&(x(t.volume)||(this.volume=t.volume),x(t.loop)||(this.loop=t.loop),x(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 wn(i,t){if(t&&typeof t!="function")throw new oe({code:se.INVALID_PARAMETER,message:`start audioMixer plugin: param ${i} should be a function.`})}var ni=class ni{constructor(t){this.core=t;l(this,"log");l(this,"mixedMusicMap",new Map);l(this,"cacheMusicMap",new Map);$u=$u+1,this.log=t.log.createChild({id:`${this.getAlias()}${$u}`}),this.log.info(`created id=${this.getAlias()}${$u}`)}getName(){return ni.Name}getAlias(){return"ax"}getGroup(t){return t==null?void 0:t.id}getValidateRule(t){switch(t){case"start":return ni.startValidateRule;case"update":return ni.updateValidateRule;case"stop":return ni.stopValidateRule}}start(t){return y(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 pp(t,e.audioManager),this.cacheMusicMap.set(r,s)),s.updateListener(t),s.updateSettings(t),yield s.play(),this.mixedMusicMap.set(r,s),s.mixInput.source.node&&this.core.room.audioManager.updateAudioReference({type:"add",audioReference:s.mixInput.source.node,refId:`ax-${r}`}),this.log.info(`start mix audio track ${r} success.`),Q.addEnum({key:502700,value:3}),this.kvUpload(t)})}update(t){return y(this,null,function*(){let{id:e,operation:r,seekFrom:o,playbackRate:s}=t;this.log.info(`update music source, ${JSON.stringify(t)}`);let n=this.mixedMusicMap.get(e);if(!n){this.log.warn(`update music source failed, music id: ${e} not found.`);return}n.updateSettings(t),n.updateListener(t),x(r)||n.setOperation(r),x(o)||n.seek(o),this.kvUpload(t)})}stop(e){return y(this,arguments,function*({id:t}){if(this.mixedMusicMap.has(t)){this.log.info(`remove music source, music id: ${t}`);let r=this.mixedMusicMap.get(t);r!=null&&r.mixInput.source.node&&this.core.room.audioManager.updateAudioReference({type:"remove",audioReference:r.mixInput.source.node,refId:`ax-${t}`}),r==null||r.stop(),this.mixedMusicMap.delete(t)}t==="*"&&this.destroyAllMusic()})}kvUpload(t){let{track:e,loop:r,volume:o,playbackRate:s,operation:n,seekFrom:a,onTimeUpdate:u,onDurationChange:m,onEnded:p}=t;e&&Q.addCount({key:502711}),r&&Q.addCount({key:502703}),o&&Q.addCount({key:502704}),s&&Q.addCount({key:502705}),n&&Q.addCount({key:502706}),a&&Q.addCount({key:502707}),typeof u!="function"&&Q.addCount({key:502709}),typeof p!="function"&&Q.addCount({key:502710}),typeof m!="function"&&Q.addCount({key:502708})}destroyAllMusic(){this.log.info("destroy all music source."),this.mixedMusicMap.forEach((t,e)=>{t!=null&&t.mixInput.track&&this.core.room.audioManager.updateAudioReference({type:"remove",audioReference:t.mixInput.track,refId: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()}};l(ni,"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"],n=o.split(".").pop(),a=s.indexOf(n)>=0,u=o.startsWith("blob"),m=o.startsWith("data");if(!(a||u||m))throw new oe({code:se.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:se.INVALID_PARAMETER,message:"start audioMixer plugin: param url or track is required.",fnName:r});wn("onTimeUpdate",t.onTimeUpdate),wn("onEnded",t.onEnded),wn("onDurationChange",t.onDurationChange)}}),l(ni,"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){wn("onTimeUpdate",t.onTimeUpdate),wn("onEnded",t.onEnded),wn("onDurationChange",t.onDurationChange)}}),l(ni,"stopValidateRule",{name:"options",type:"object",required:!0,properties:{id:{type:"string",required:!0}}}),l(ni,"Name","AudioMixer");var Bu=ni;var Hu=0,fp,$i=class $i{constructor(t){this.core=t;l(this,"log");l(this,"audioContext",We("denoiser"));l(this,"workletNode");Hu=Hu+1,this.log=t.log.createChild({id:`${this.getAlias()}${Hu}`}),this.log.info(`created id=${this.getAlias()}${Hu}`)}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:se.INVALID_OPERATION,extraCode:5106,fnName:o})}}}preload(t){return fp||(fp=this.doPreload(t)),fp}doPreload(t){return y(this,null,function*(){let e=yield this.core.fileDownloader.download(t,{type:"blob"}),r=URL.createObjectURL(e);try{yield xi(this.audioContext,r)}catch(o){throw this.log.error("load worklet failed",o),o}finally{URL.revokeObjectURL(r)}})}getName(){return $i.Name}getAlias(){return"ad"}getGroup(){return`AIDenoiser_${Date.now()}`}getValidateRule(t){switch(t){case"start":return $i.startValidateRule(this.core);case"update":return $i.updateValidateRule;case"stop":return $i.stopValidateRule}}start(t){return y(this,null,function*(){let{room:e,schedule:r}=this.core,{assetsPath:o=this.core.assetsPath}=t;if(!o)throw new oe({code:se.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});if(yield this.preload(`${o}/denoiser-wasm.js`),!this.workletNode){let s=String(Date.now()).slice(0,-3),{auth:n,sign:a,status:u,message:m}=yield jy(r,ge(X({},t),{timestamp:s}));if(!n)throw this.log.info(`RTCAIDenoiser: ${t.userId} auth result: ${n}. Message: ${m}`),new oe({code:se.INVALID_PARAMETER,message:m});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:s,sign:a,status:u}}),this.workletNode.port.onmessage=p=>{var _;let{data:g}=p;if(g.type==="cost"){let A=(g==null?void 0:g.max)>20?"warn":(g==null?void 0:g.max)>10?"info":"debug";this.log[A](`avg cost: ${g.value} max: ${g==null?void 0:g.max}(${Ps(new Date(g==null?void 0:g.maxCostTimestamp))}) hist: ${(_=g==null?void 0:g.hist)==null?void 0:_.join(" ")}`)}else g.type==="log"&&this.log[g.logLevel](`${g.value}`)}}this.workletNode.port.postMessage({type:"enable"}),e.audioManager.addDenoiser(this.workletNode),e.sendAbilityStatus({ai_denoise:1})})}update(){return y(this,null,function*(){})}stop(){return y(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)}};l($i,"updateValidateRule",{type:"object"}),l($i,"stopValidateRule",{type:"object"}),l($i,"Name","AIDenoiser");var Wu=$i;function jy(s,n){return y(this,arguments,function*(i,{sdkAppId:t,userId:e,userSig:r,timestamp:o}){try{let{data:{errCode:a,errMsg:u,sign:m,status:p}}=yield i.getAbilityConfig(t,i.ScheduleRequestType.AUDIO_AI_AUTH,{sdkAppId:t,userId:e,userSig:r,timestamp:o});if(p==="1")return{auth:!0,sign:m,status:p,message:u};let g=_i(t)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",_="Init RTCAIDenoiser failed.",A="";switch(a){case 1:A="Please check your params.";break;case 2:A=`You need to buy packages. Refer to: ${g}`;break;case 3:A="Server is invalid. Please contact our engineer. ";break;case 4:A=`Your packages is not active. Refer to: ${g}`;break;case 5:A=`Your packages is expired. Refer to: ${g}`;break;case 6:A="Your version is not supported.";break}return{auth:!1,status:p,message:u?`${_} Reason: ${u}. ${A}`:`${_}, ${A}`}}catch(a){return{auth:!1,status:"0",message:`Init RTCAIDenoiser failed. All requests failed. ${a}`}}})}var VE=pi(bi(),1);var gp=class extends VE.EventEmitter{constructor(){super();l(this,"observer");l(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 y(this,null,function*(){if(!this.observer)try{"PressureObserver"in window&&!pt&&(this.observer=new PressureObserver(this.onPressureChange),yield this.observer.observe("cpu",{sampleInterval:2e3}))}catch(e){He.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)&&$.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){He.uploadEvent({log:"stat-pressure-detector-destroy-failed",error:r})}}},qy=new gp,Ep=qy;function zy([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 a=0;a<r;a++)s.push(255);s.push(o);let n=new DataView(t);return s.push(...new Uint8Array(n.buffer)),s.push(128),new ms(new DataView(new Uint8Array(s).buffer),!0)}function Jy(i){return i.type==="empty"||i.data.byteLength===0}function Xy(i){return i.getInt32(0)===1&&i.getInt8(4)===6}function Qy(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 _p({frame:i,seiMessageList:t}){if(!t||t.length===0||i.data.byteLength===0)return i;let r=9-Qy(i.data);if(r<=0)return i;let o=t.splice(0,r).reverse().map(zy),s=o.reduce((p,g)=>p+g.dataView.byteLength,0),n=new ArrayBuffer(s+i.data.byteLength),a=new DataView(n),u=new DataView(i.data),m=0;for(let p=0;p<o.length;p++)for(let g=0;g<o[p].dataView.byteLength;g++)a.setInt8(m++,o[p].dataView.getInt8(g));for(let p=0;p<i.data.byteLength;p++)a.setInt8(m++,u.getInt8(p));return i.data=n,i}function Tp({frame:i,onSEI:t}){try{let e=new DataView(i.data);if(Jy(i)||!Xy(e))return i;let r=[],o=0,s=-1,n=-1;for(let a=0;a<i.data.byteLength;a++){let u=e.getUint8(a);if(u===0)o++;else if(u===1){if(o===2||o===3){let m=a-o;if(s===-1?s=m:n===-1&&(n=m,r.push(new ms(new DataView(e.buffer.slice(s,n)))),s=m,n=-1),!(e.getUint8(a+1)===6)){i.data=e.buffer.slice(m);break}}o=0}else o=0}t==null||t(r.reverse())}catch(e){}return i}var Ip=0,ac=class ac{constructor(t){this.core=t;l(this,"log");l(this,"_seiMessageList",[]);l(this,"_smallSeiMessageList",[]);l(this,"_subStreamSeiMessageList",[]);Ip++,this.log=t.log.createChild({id:`${this.getAlias()}${Ip}`}),this.log.info(`[sei] created id=${this.getAlias()}${Ip}`),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 _p({frame:t,seiMessageList:r})}catch(r){this.log.warn(r)}return t}decode({frame:t,track:e}){return Tp({frame:t,onSEI:r=>{r.forEach(o=>{this.core.trtc.emit(te.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:os?this.encode:_p,type:2}),this.core.room.videoManager.addDecodeProcessor({processor:os?this.decode:Tp,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 ac.Name}getAlias(){return"sei"}getGroup(){return"sei"}};l(ac,"autoStart",!0),l(ac,"Name","SEI");var Gu=ac;function Sp({frame:i,onDump:t}){return t==null||t(),i}function yp({frame:i,onDump:t}){return t==null||t(),i}var FE={"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:
|
|
99
99
|
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.
|
|
100
100
|
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:
|
|
101
101
|
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.
|
|
102
|
-
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=>{qE[`${i}()`]={tips:`Call trtc.${i}`,color:"blue",class:"blue",textColor:"#fff"}});var wV=Object.keys(qE);var aA=0,Ju,mc=class mc{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()}${++aA}`}),this.log.info("created")}getName(){return mc.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 y(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(e){return y(this,arguments,function*({visible:t}){t?(yield this.openDebugDiaLog(),this.addVideoProcessor()):(this.closeDebugDiaLog(),this.removeVideoProcessor())})}stop(){this.closeDebugDiaLog(),this.removeVideoProcessor()}destroy(){this.stop()}openDebugDiaLog(){return y(this,null,function*(){var t;if(!this.dialog)try{if(Ju)yield Ju;else{let e=new URLSearchParams(location.search).get("trtcDebugDialogPath")||((t=window.sessionStorage)==null?void 0:t.getItem("TRTC_DEBUG_DIALOG_PATH"))||`https://unpkg.com/${HE}@${at}/assets/debug-dialog.js`;Ju=this._core.fileDownloader.loadScript(e),yield Ju}this.dialog=new TRTCDebugDialog(this._core,this.log,this.dumpLocalVideoMap,this.dumpRemoteVideoMap),this._core.kvStatManager.addSuccessEvent({key:592705})}catch(e){this._core.kvStatManager.addFailedEvent({key:592705}),this.log.error("load debug dialog script failed: ",JSON.stringify(e))}})}closeDebugDiaLog(){this.dialog&&(this.dialog.closeDialog(),this.dialog=null)}addVideoProcessor(){this._core.room.videoManager.addEncodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.encodeVideo.bind(this):Cp,type:1}),this._core.room.videoManager.addDecodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.decodeVideo.bind(this):Np,type:1})}removeVideoProcessor(){this._core.room.videoManager.removeEncodeProcessor({type:1}),this._core.room.videoManager.removeDecodeProcessor({type:1})}encodeVideo({frame:t,mediaType:e}){return Cp({frame:t,onDump:()=>{if(!e)return;let r=e===2?"sub":"main",o=this.dumpLocalVideoMap[r];o&&(o.data.push(t.data.slice(0)),o.duration>0&&Date.now()-o.startTimestamp>o.duration*1e3&&o.onDumpEnd())}})}decodeVideo({frame:t,track:e}){return Np({frame:t,onDump:()=>{if(!e)return;let r=this.dumpRemoteVideoMap[`${e.userId}-${e.streamType}`];r&&(r.data.push(t.data.slice(0)),r.duration>0&&Date.now()-r.startTimestamp>r.duration*1e3&&r.onDumpEnd())}})}};l(mc,"Name","Debug"),l(mc,"autoStart",!0);var Xu=mc;var zE=i=>{switch(i){case"webCodecs":return 504703;case"wasm":return 504704}throw new Error("decoder type not supported")},Qu=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=be(e,le.INIT),this.stopOB=bt(),this.startOB=bt(),r.type==="auto"?this.type="webCodecs":this.type=r.type;let n=bt(),a=u=>{let m=this.pipe(e);return n.next("STARTING"),e.log.info(`decoder type: ${this.type}`),Ae(m,Xe(this.stopOB),Le(()=>{},p=>{e.log.error(p),o.addFailedEvent({key:zE(this.type),error:p}),u>4?this.startOB.error(p):this.startOB.next(u+1)})),Ae(m,Ur(1),zh(ec))};Ae(this.startOB,Za(0),lo(a),Xe(this.stopOB),Le(()=>{e.player.setOutput(),n.next("STARTED")},u=>{n.next("FAILED")},()=>{o.addSuccessEvent({key:zE(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 Mi()(e=>y(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"}))}},cA={type:"object"},hc=class hc{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 hc.Name}getGroup(t){return t.track.userId+t.track.streamType}getName(){return hc.Name}getValidateRule(t){return cA}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 Qu(this.core,r,t);return Ae(o.trackDoneOB,Ur(1),Le(()=>{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 Qu(this.core,t.track,t))}}};l(hc,"Name","TRTCAudioDecoder");var pc=hc;var Yu=class{constructor(){l(this,"log");this.log=$.createLogger({id:"exp"})}call(t,e){return y(this,null,function*(){return Ge(this[t])?this[t](e):Promise.reject(new de({code:q.INVALID_PARAMETER,message:Be({key:$e.API_NOT_EXIST,data:{name:t}})}))})}enableAudioFrameEvent(t){return y(this,null,function*(){let{trtcInstance:e,enable:r,userId:o,sampleRate:s=48e3,channelCount:n=1,port:a}=t,{audioManager:u}=e.room,{getPCMAbortCtrlMap:m,audioFrameEventConfigMap:p}=u;if(p.set(o,{enable:r,sampleRate:s,channelCount:n,port:a}),r)if(o==="*")e.room.remotePublishedUserMap.forEach(g=>{if(g.remoteAudioTrack.isAvailable){if(m.get(g.userId))return;let T=u.getPCM(A=>{e.emit(ee.AUDIO_FRAME,A)},g.userId);m.set(g.userId,T)}});else{if(m.get(o))return;let g=u.getPCM(T=>{e.emit(ee.AUDIO_FRAME,T)},o);m.set(o,g)}else if(o==="*")e.room.remotePublishedUserMap.forEach(g=>{if(g.remoteAudioTrack.isSubscribed){let{userId:T}=g,A=m.get(T);A==null||A.abort("disable"),m.delete(T)}});else{let g=m.get(o);g==null||g.abort("disable"),m.delete(o)}})}};K([lE({name:"options",type:"object",required:!0,properties:{enable:{required:!0,type:"boolean"},userId:{required:!0,type:"string"},sampleRate:{type:"number",values:[8e3,16e3,32e3,44100,48e3]},channelCount:{type:"number",values:[1,2]},port:{type:"messageport"}}})],Yu.prototype,"enableAudioFrameEvent",1);var JE=new Yu;var XE=ui(Si(),1);var Dp=class extends XE.EventEmitter{constructor(){super();l(this,"states",{});l(this,"permissionChangeHandler");l(this,"log");this.log=$.createLogger({id:"pm"}),this.permissionChangeHandler=()=>{var e,r;this.emit("permission-state-change",{camera:(e=this.states.camera)==null?void 0:e.state,microphone:(r=this.states.microphone)==null?void 0:r.state})}}request(e){return y(this,null,function*(){if(this.log.info(`request ${e.join(", ")}`),e.length===0)return Promise.resolve();(yield navigator.mediaDevices.getUserMedia({video:e.includes("camera"),audio:e.includes("microphone")})).getTracks().forEach(o=>o.stop())})}get(e){return y(this,null,function*(){try{return this.states[e]||(this.states[e]=yield navigator.permissions.query({name:e}),this.states[e].addEventListener("change",this.permissionChangeHandler)),this.log.info(`get ${e} permission state: ${this.states[e].state}`),this.states[e].state}catch(r){return this.log.error(`get ${e} permission failed, error: ${r instanceof Error?r.message:r}`),null}})}destroy(){Object.values(this.states).forEach(e=>{e==null||e.removeEventListener("change",this.permissionChangeHandler)}),this.states={}}},fc=new Dp;var QE=0,gc=new Set,Dt=null;Cl(WE);sn.checkStorage();var Ie=class Ie 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",$.createLogger({id:`t${++QE}`}));l(this,"_plugins",new Map);l(this,"_networkQuality",null);l(this,"_speakerId");l(this,"enterRoomParams");l(this,"_enableAutoSwitchWhenRecapturing",!0);this._room=new e(J({logger:this._log,frameWorkType:Ie.frameWorkType},r)),this._room.videoDecodeFallbackType=r.videoDecodeFallback,Ze(r.enableAutoSwitchWhenRecapturing)&&(this._enableAutoSwitchWhenRecapturing=r.enableAutoSwitchWhenRecapturing),this._log.info(`create() ${JSON.stringify(r,(o,s)=>o==="plugins"?s.map(n=>n.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(Gu,r.assetsPath),this._use(Hu,r.assetsPath),this._use(qu,r.assetsPath),this._use(pc,r.assetsPath),this._use(Xu),r.enableSEI&&Ua&&this._use(zu),this._room.on("audio-volume",o=>{var s,n;!o.find(a=>a.userId==="")&&this._localAudioTrack&&o.push({userId:"",volume:Math.floor(((s=this._localAudioTrack.getInternalAudioLevelAfter3A())!=null?s:this._localAudioTrack.getAudioLevel())*100),floatVolume:(n=this._localAudioTrack.getInternalAudioLevelAfter3A())!=null?n:this._localAudioTrack.getInternalAudioLevel()}),r.volumeType===1&&o.forEach(a=>{var m;let u=a.userId===""?this._localAudioTrack:(m=this.room.remotePublishedUserMap.get(a.userId))==null?void 0:m.remoteAudioTrack;u&&(a.volume=u.dbVolume)}),r.enableDbVolume&&o.forEach(a=>{var m;let u=a.userId===""?this._localAudioTrack:(m=this.room.remotePublishedUserMap.get(a.userId))==null?void 0:m.remoteAudioTrack;u&&(a.volume=u.dbVolume)}),this.emit(ee.AUDIO_VOLUME,{result:o.sort((a,u)=>u.volume-a.volume)})}),this._room.videoManager.on("error",o=>{this._log.error(new ie({code:oe.OPERATION_FAILED,extraCode:5504,message:o.message,originError:o}))}),this._listenEvents(),this._initActiveSpeaker(),VE(this,"trtc")}static create(e){}static _create(e,r){AE();let o=new Ie(e,r||{});return gc.add(o),o.__v_skip=!0,o}get room(){return this._room}_listenEvents(){At(this,this._room).add("peer-join",e=>{let{userId:r}=e;this.emit(ee.REMOTE_USER_ENTER,{userId:r})}).add("peer-leave",e=>{this.emit(ee.REMOTE_USER_EXIT,{userId:e})}).add("banned",e=>{this._exitRoom().finally(()=>{this.emit(ee.KICKED_OUT,{reason:e.reason})})}).add("error",e=>{this._exitRoom().finally(()=>{this.emit(ee.ERROR,ie.convertFrom(e))})}).add("signal-connection-state-changed",e=>{this.emit(ee.CONNECTION_STATE_CHANGED,e)}).add("network-quality",e=>{this._networkQuality=e;let r=ge(J({},e),{uplinkRTT:Math.min(e.uplinkRTT,ia),downlinkRTT:Math.min(e.downlinkRTT,ia)});this.emit(ee.NETWORK_QUALITY,r)}).add("remote-published",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{At(o,o).add("player-state-changed",s=>{let n=ge(J({},s),{userId:e.userId});o.kind===M.VIDEO&&(n.streamType=ri(o.streamType)),this.emit(o.kind===M.AUDIO?ee.AUDIO_PLAY_STATE_CHANGED:ee.VIDEO_PLAY_STATE_CHANGED,n)}).add("error",s=>{s.getCode()===q.PLAY_NOT_ALLOWED&&this.emit(ee.AUTOPLAY_FAILED,{userId:o.userId,mediaType:o.strMediaType,resume:()=>o.player.resume()})})})}).add("remote-unpublished",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{ut(o)})}).add("remote-publish-state-changed",({prevMuteState:e,muteState:r})=>{let{userId:o}=r,s=e.audioAvailable,n=e.videoAvailable,{audioAvailable:a,videoAvailable:u}=r;a||this._remoteAudioConfigMap.delete(o),u||this._removeRemoteVideoConfig(o,"main"),r.hasAuxiliary||this._removeRemoteVideoConfig(o,"sub"),n!==u&&(u?this._onVideoAvailable({userId:o,streamType:"main"}):this._onVideoUnavailable({userId:o,streamType:"main"}),this.emit(u?ee.REMOTE_VIDEO_AVAILABLE:ee.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"main"})),s!==a&&(a?this._onAudioAvailable({userId:o}):this._onAudioUnavailable({userId:o,muteState:r}),this.emit(a?ee.REMOTE_AUDIO_AVAILABLE:ee.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?ee.REMOTE_VIDEO_AVAILABLE:ee.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"sub"}))}).add("sei-message",e=>{this.emit(ee.SEI_MESSAGE,ge(J({},e),{streamType:ri(e.streamType)}))}).add("firewall-restriction",()=>{this.emit(ee.ERROR,new ie({code:oe.OPERATION_FAILED,extraCode:5501}))}).add("heartbeat-report",e=>{var s,n,a,u,m,p,g;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)||((n=this._networkQuality)==null?void 0:n.uplinkRTT)||((a=this._networkQuality)==null?void 0:a.downlinkRTT)||0,ia),upLoss:((u=this._networkQuality)==null?void 0:u.uplinkLoss)||0,downLoss:((m=this._networkQuality)==null?void 0:m.downlinkLoss)||0,bytesSent:e.bytes_sent||0,bytesReceived:e.bytes_received||0,localStatistics:{audio:{bitrate:(((p=e.msg_up_stream_info.msg_audio_status)==null?void 0:p.uint32_audio_codec_bitrate)||0)/1e3,audioLevel:(((g=e.msg_up_stream_info.msg_audio_status)==null?void 0:g.uint32_audio_level)||0)/bi},video:e.msg_up_stream_info.msg_video_status.filter(T=>r[T.uint32_video_stream_type]).map(T=>({bitrate:(T.uint32_video_codec_bitrate||0)/1e3,width:T.uint32_video_width,height:T.uint32_video_height,frameRate:T.uint32_video_enc_fps,videoType:r[T.uint32_video_stream_type]}))},remoteStatistics:e.msg_down_stream_info.map(T=>({userId:T.msg_user_info.str_identifier,audio:{bitrate:(T.msg_audio_status.uint32_audio_codec_bitrate||0)/1e3,audioLevel:(T.msg_audio_status.uint32_audio_level||0)/bi,point2pointDelay:(T.msg_audio_status.uint32_audio_p2p_delay||0)+(T.msg_audio_status.uint32_audio_cache_ms||0),jitterBufferDelay:T.msg_audio_status.uint32_audio_cache_ms||0},video:T.msg_video_status.map(A=>({bitrate:(A.uint32_video_codec_bitrate||0)/1e3,width:A.uint32_video_width,height:A.uint32_video_height,frameRate:A.uint32_video_dec_fps,videoType:r[A.uint32_video_stream_type],point2pointDelay:(A.uint32_video_p2p_delay||0)+(A.uint32_video_cache_ms||0),jitterBufferDelay:A.uint32_video_cache_ms||0,codec:A.uint32_video_codec}))}))};this.emit(ee.STATISTICS,o)}).add("custom-message",e=>{this.emit(ee.CUSTOM_MESSAGE,e)}).add("layerData",e=>this.emit(ee.LAYER_DATA,e)).add("first-video-frame",e=>{this.emit(ee.FIRST_VIDEO_FRAME,ge(J({},e),{streamType:ri(e.streamType)}))}).add("audio-frame",e=>{this.emit(ee.AUDIO_FRAME,e)}),At(this,it).add("audioInputAdded",e=>{this.emit(ee.DEVICE_CHANGED,{type:"microphone",action:"add",device:e})}).add("audioInputRemoved",e=>{this.emit(ee.DEVICE_CHANGED,{type:"microphone",action:"remove",device:e})}).add("videoInputAdded",e=>{this.emit(ee.DEVICE_CHANGED,{type:"camera",action:"add",device:e})}).add("videoInputRemoved",e=>{this.emit(ee.DEVICE_CHANGED,{type:"camera",action:"remove",device:e})}).add("audioOutputAdded",e=>y(this,null,function*(){if(this.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"add",device:e}),Dt&&Dt.deviceId===ra){let r=(yield no()).find(o=>o.deviceId===ra);r&&Dt.groupId!==r.groupId&&(Dt=r,this.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))}})).add("audioOutputRemoved",e=>y(this,null,function*(){this.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"remove",device:e});let r=(yield no())[0];if(!r||!Dt||Dt.groupId===r.groupId)return;let o=Dt.deviceId===e.deviceId,s=Dt.deviceId===ra&&Dt.deviceId===r.deviceId;(o||s)&&(Dt=r,this.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))})),At(this,fc).add("permission-state-change",e=>{this.emit(ee.PERMISSION_STATE_CHANGE,e)})}getNetworkTime(){return li()}use(e){let r,o;return"plugin"in e?(r=e.plugin,o=e.assetsPath):r=e,r.Name==="Chorus"&&(this.room.enableChorus=!0),this._use(r,o)}_use(e,r){let o=this._plugins.get(e.Name);if(o)return this._log.warn("duplicate install plugin",e.Name),o;let s=new e(UE.call(this,{TRTC:Ie,room:this._room,assetsPath:r,errorModule:{RtcError:ie,ErrorCode:oe,CoreErrorCode:q,ErrorCodeDictionary:Tr}}));return this._plugins.set(e.Name,s),s.__v_skip=!0,e.autoStart&&this.startPlugin(e.Name),s}enterRoom(e){return y(this,null,function*(){var u,m;this.enterRoomParams=e;let{scene:r="rtc",enableAutoPlayDialog:o=!0,autoReceiveAudio:s=!0,autoReceiveVideo:n=!1}=e;e.proxy&&(this._room.setProxyServer(e.proxy),!De(e.proxy)&&e.proxy.turnServer&&((m=(u=this._room).setTurnServer)==null||m.call(u,e.proxy.turnServer,e.proxy.iceTransportPolicy))),this._room.enableAutoPlayDialog=o,this._room.autoReceiveAudio=s,this._room.autoReceiveVideo=n,Ze(e.preferHW)&&(this._room.preferHW=e.preferHW),e.playoutDelay&&(this._room.playoutDelay=e.playoutDelay),e.jitterBufferDelay&&(this._room.jitterBufferDelay=e.jitterBufferDelay);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,useH265:e.useH265,keepAlive:e.keepAlive};e.strRoomId&&!e.roomId?this._room.useStringRoomId=!0:this._room.useStringRoomId=!1,yield this._room.join(a,r,Ie.frameWorkType),this._checkTrackToPublish(),Ap.start()})}exitRoom(){return y(this,null,function*(){return yield this._exitRoom()})}switchRoom(e){return y(this,null,function*(){if(this.room.isSwitchRoomSupported())try{yield this._room.switchRoom(e)}catch(r){if(r instanceof Yn&&(r.code===q.API_CALL_TIMEOUT||r.code===q.SWITCH_ROOM_FAILED))this._log.warn(`switchRoom ${r.code===q.API_CALL_TIMEOUT?"timeout":"failed"}, fallback to exitRoom() and enterRoom()`),yield this._rejoinRoom(e);else throw r}else yield this._rejoinRoom(e)})}_rejoinRoom(e){return y(this,null,function*(){yield this.exitRoom();let r=J(J({},this.enterRoomParams),e);yield this.enterRoom(r)})}switchRole(e,r){return y(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(){ut(this),this.removeAllListeners(),this._room.destroy(),gc.delete(this),gc.size===0&&Ap.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)}),this._plugins.clear(),V.off("102",this._onLocalTrackCaptured,this)}startLocalAudio(){return y(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,n=new Kr(this._room.audioManager),a={},u={muted:!0};s&&(x(s.microphoneId)?x(s.audioTrack)||(a.customSource=s.audioTrack):a.deviceId=s.microphoneId,s&&ke(s.captureVolume)&&n.setCaptureVolume(s.captureVolume),x(s.profile)||(De(s.profile)?jc[s.profile]&&n.setProfile(jc[s.profile]):n.setProfile(s.profile)),ke(s.earMonitorVolume)&&(u.muted=!(s.earMonitorVolume>0),u.volume=s.earMonitorVolume),x(s.echoCancellation)||(n.profile.echoCancellation=s.echoCancellation),x(s.noiseSuppression)||(n.profile.noiseSuppression=s.noiseSuppression),x(s.autoGainControl)||(n.profile.autoGainControl=s.autoGainControl),Ze(this._enableAutoSwitchWhenRecapturing)&&(n.enableAutoSwitchWhenRecapturing=this._enableAutoSwitchWhenRecapturing)),n.on("5",m=>{this.emit(ee.ERROR,new ie({code:oe.DEVICE_ERROR,extraCode:5309,messageParams:{error:m}}))}),n.on("2",m=>{this.emit(ee.DEVICE_CHANGED,{type:"microphone",action:"active",device:m})}),n.on("4",m=>{let p;m.error&&(p=ie.convertFrom(m.error)),this.emit(ee.PUBLISH_STATE_CHANGED,ge(J({},m),{error:p}))}),n.on("6",()=>{this.emit(ee.ERROR,new ie({code:oe.OPERATION_FAILED,extraCode:5506,message:"audio encode failed"}))}),this._listenOutputTrackChanged(n),this._speakerId&&n.setAudioOutput(this._speakerId),yield n.capture(a),x(o)||n.setMute(o),At(n,n).add("player-state-changed",m=>{this.emit(ee.AUDIO_PLAY_STATE_CHANGED,ge(J({},m),{userId:""}))}),r&&this._room.isJoined&&this._room.publish(n).catch(()=>{}),this._localAudioTrack=n,this._localAudioConfig=ge(J({},e),{publish:r}),yield this._updateAudioPlayOption({playOption:u,track:n}),V.emit("113",{userId:"",room:this.room})})}updateLocalAudio(e){return y(this,null,function*(){if(!this._localAudioTrack||!this._localAudioConfig)return;let{publish:r,mute:o,option:s}=e,n={};s&&(s.microphoneId?yield this._localAudioTrack.switchDevice(s.microphoneId):x(s.audioTrack)||(yield this._localAudioTrack.setInputMediaStreamTrack(s.audioTrack)),x(s.captureVolume)||this._localAudioTrack.setCaptureVolume(s.captureVolume),x(s.earMonitorVolume)||(n.muted=!(s.earMonitorVolume>0),n.volume=s.earMonitorVolume),yield this._localAudioTrack.update3A(s)),this._room.isJoined&&!x(r)&&(r&&!this._localAudioConfig.publish&&this._room.publish(this._localAudioTrack).catch(()=>{}),this._localAudioConfig.publish&&!r&&this._room.unpublish(this._localAudioTrack).catch(()=>{})),x(o)||this._localAudioTrack.setMute(o),yield this._updateAudioPlayOption({playOption:n,track:this._localAudioTrack,prevConfig:this._localAudioConfig}),vr(this._localAudioConfig,e)})}stopLocalAudio(){return y(this,null,function*(){this._localAudioTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localAudioTrack).catch(()=>{})),V.emit("114",{userId:"",room:this.room}),this._localAudioTrack.stop(),this._localAudioTrack.close(),this._room.audioManager.removeInput(this._localAudioTrack),ut(this._localAudioTrack),this._localAudioTrack=null,this._localAudioConfig=null)})}startLocalVideo(){return y(this,arguments,function*(e={publish:!0,view:null,capture:!0}){var g;if(this._localVideoTrack){this._log.warn("local video is already started");return}let{view:r,publish:o=!0,capture:s=!0,mute:n,option:a}=e,u=new cr(this._room.videoManager),m={},p={};a&&(Ze(a.avoidCropping)&&(u.avoidCropping=a.avoidCropping),a.cameraId?m.deviceId=a.cameraId:x(a.useFrontCamera)?x(a.videoTrack)||(m.customSource=a.videoTrack):m.facingMode=a.useFrontCamera?M.FACING_MODE_USER:M.FACING_MODE_ENVIRONMENT,x(a.retryWhenExactFailed)||(m.retryWhenExactFailed=a.retryWhenExactFailed),a.qosPreference&&(m.contentHint=dc(a.qosPreference)),x(a.profile)||(De(a.profile)?br[a.profile]&&u.setProfile(br[a.profile]):u.setProfile(a.profile)),x(a.fillMode)||(p.objectFit=a.fillMode),x(a.mirror)||(p.mirror=a.mirror),x(a.small)||(x(a.smallMode)||(this._room.smallMode=a.smallMode),Ze(a.small)&&a.small===!1?u.stopSmall():u.updateSmallConfig(An(a.small,!0))),x(a.rotation)||u.setRotation(a.rotation),Ze(this._enableAutoSwitchWhenRecapturing)&&(u.enableAutoSwitchWhenRecapturing=this._enableAutoSwitchWhenRecapturing)),u.once("first-video-frame",T=>{this.emit(ee.FIRST_VIDEO_FRAME,ge(J({},T),{streamType:ri(T.streamType)}))}),u.on("5",T=>{this.emit(ee.ERROR,new ie({code:oe.DEVICE_ERROR,extraCode:5308,messageParams:{error:T}}))}),u.on("2",T=>{this.emit(ee.DEVICE_CHANGED,{type:"camera",action:"active",device:T})}),u.on("4",T=>{let A;T.error&&(A=ie.convertFrom(T.error)),this.emit(ee.PUBLISH_STATE_CHANGED,ge(J({},T),{error:A}))}),u.on("6",()=>{this.emit(ee.ERROR,new ie({code:oe.OPERATION_FAILED,extraCode:5505,message:"video encode failed"}))}),this._listenOutputTrackChanged(u),s?yield u.capture(m):(g=u.manager)==null||g.changeInput(u),x(n)||(yield u.setMute(n)),At(u,u).add("player-state-changed",T=>{this.emit(ee.VIDEO_PLAY_STATE_CHANGED,ge(J({},T),{userId:"",streamType:"main"}))}).add("video-size-changed",T=>{this.emit(ee.VIDEO_SIZE_CHANGED,ge(J({},T),{streamType:ri(T.streamType)}))}),o&&this._room.isJoined&&this._room.publish(u).catch(()=>{}),this._localVideoTrack=u,this._localVideoConfig=ge(J({},e),{view:r,publish:o,capture:s}),yield this._updateVideoPlayOption({view:r,playOption:p,track:u})})}updateLocalVideo(e){return y(this,null,function*(){var m,p,g;if(!this._localVideoTrack||!this._localVideoConfig)return;let{view:r,publish:o,mute:s,capture:n,option:a}=e,u={};if(this._localVideoConfig.capture)n!==!1?a!=null&&a.cameraId?yield this._localVideoTrack.switchDevice(a==null?void 0:a.cameraId):x(a==null?void 0:a.useFrontCamera)?x(a==null?void 0:a.videoTrack)||(yield this._localVideoTrack.setInputMediaStreamTrack(a==null?void 0:a.videoTrack)):yield this._localVideoTrack.switchDevice(a!=null&&a.useFrontCamera?M.FACING_MODE_USER:M.FACING_MODE_ENVIRONMENT):this._localVideoTrack.stopCapture();else if(n){let T={};T.deviceId=(a==null?void 0:a.cameraId)||((m=this._localVideoConfig.option)==null?void 0:m.cameraId),T.facingMode=a!=null&&a.useFrontCamera||(p=this._localVideoConfig.option)!=null&&p.useFrontCamera?M.FACING_MODE_USER:M.FACING_MODE_ENVIRONMENT,T.customSource=(a==null?void 0:a.videoTrack)||((g=this._localVideoConfig.option)==null?void 0:g.videoTrack),yield this._localVideoTrack.capture(T)}a&&(x(a.profile)||(De(a.profile)?br[a.profile]&&this._localVideoTrack.setProfile(br[a.profile]):this._localVideoTrack.setProfile(a.profile),(!a.cameraId||!this._localVideoTrack.isNeedToSwitchDevice(a.cameraId))&&x(a.useFrontCamera)&&(yield this._localVideoTrack.applyProfile())),x(a.fillMode)||(u.objectFit=a.fillMode),x(a.mirror)||(u.mirror=a.mirror),x(a.rotation)||this._localVideoTrack.setRotation(a.rotation),a.qosPreference&&this._localVideoTrack.mediaTrack&&this._localVideoTrack.setContentHint(dc(a.qosPreference)),x(a.small)||(Ze(a.small)&&!a.small?this._localVideoTrack.stopSmall():this._localVideoTrack.updateSmallConfig(An(a.small,!0)))),this._room.isJoined&&x(o)&&this._localVideoConfig.publish&&n&&!this._localVideoConfig.capture&&this._room.publish(this._localVideoTrack).catch(()=>{}),this._room.isJoined&&((o!=null?o:this._localVideoConfig.publish)?this._room.publish(this._localVideoTrack).catch(()=>{}):this._room.unpublish(this._localVideoTrack).catch(()=>{})),x(s)||(yield this._localVideoTrack.setMute(s)),yield this._updateVideoPlayOption({view:r,playOption:u,track:this._localVideoTrack,prevConfig:this._localVideoConfig}),vr(this._localVideoConfig,e)})}stopLocalVideo(){return y(this,null,function*(){this._localVideoTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localVideoTrack).catch(()=>{})),this._localVideoTrack.stop(),this._localVideoTrack.close(),ut(this._localVideoTrack),this._localVideoTrack=null,this._localVideoConfig=null)})}startScreenShare(){return y(this,arguments,function*(e={publish:!0,view:null}){var T,A;if(this._localScreenTrack){this._log.warn("screen share is already started");return}let{view:r=null,publish:o=!0,muteSystemAudio:s,option:n}=e,a=new ei(this._room.videoManager);a.on("4",C=>{let D;C.error&&(D=ie.convertFrom(C.error)),this.emit(ee.PUBLISH_STATE_CHANGED,ge(J({},C),{error:D}))}),a.once("first-video-frame",C=>{this.emit(ee.FIRST_VIDEO_FRAME,ge(J({},C),{streamType:ri(C.streamType)}))}),this._listenOutputTrackChanged(a),e.streamType==="main"&&(a.mediaType=4);let u=null,m={},p={};n&&(x(n.profile)||(De(n.profile)?qc[n.profile]&&a.setProfile(qc[n.profile]):a.setProfile(n.profile)),n.systemAudio&&(m.systemAudio=!0,m.echoCancellation=n.echoCancellation,m.noiseSuppression=n.noiseSuppression,m.autoGainControl=n.autoGainControl),x(n.fillMode)||(p.objectFit=n.fillMode),n.videoTrack&&(m.videoTrack=n.videoTrack),n.audioTrack&&(m.audioTrack=n.audioTrack),n.captureElement&&(m.captureElement=n.captureElement),n.preferDisplaySurface&&(m.preferDisplaySurface=n.preferDisplaySurface),n.qosPreference&&(m.contentHint=dc(n.qosPreference)));let g=yield a.capture(m);if(a.mediaTrack.addEventListener(M.ENDED,()=>{this._stopScreenShare(),this.emit(ee.SCREEN_SHARE_STOPPED)}),g.getAudioTracks()[0]){u=new fs(this._room.audioManager);let C=g.getAudioTracks()[0];(T=e.option)!=null&&T.systemAudio&&!((A=e.option)!=null&&A.audioTrack)&&(u.sourceTrack=C),yield u.setInputMediaStreamTrack(C),Ze(s)&&u.mediaTrack&&(u.mediaTrack.enabled=!s),this._speakerId&&u.setAudioOutput(this._speakerId)}if(At(a,a).add("player-state-changed",C=>{this.emit(ee.VIDEO_PLAY_STATE_CHANGED,ge(J({},C),{userId:"",streamType:"sub"}))}),o&&this._room.isJoined){let C=[a];u&&(C.push(u),this._checkScreenAudioEchoCancellation(a,u)),this._room.publish(...C).catch(()=>{})}this._localScreenTrack=a,this._localScreenAudioTrack=u,this._localScreenConfig=ge(J({},e),{view:r,publish:o}),yield this._updateVideoPlayOption({view:r,playOption:p,track:a})})}updateScreenShare(e){return y(this,null,function*(){var u;if(!this._localScreenTrack||!this._localScreenConfig)return;let{view:r,publish:o,muteSystemAudio:s,option:n}=e,a={};if(n&&(x(n.fillMode)||(a.objectFit=n.fillMode),n.qosPreference)){let m=dc(n.qosPreference);this._localScreenTrack.setContentHint(m)}if(this._room.isJoined&&!x(o)){if(o&&!this._localScreenConfig.publish){let m=[this._localScreenTrack];this._localScreenAudioTrack&&m.push(this._localScreenAudioTrack),this._room.publish(...m).catch(()=>{})}if(this._localScreenConfig.publish&&!o){let m=[this._localScreenTrack];this._localScreenAudioTrack&&m.push(this._localScreenAudioTrack),this._room.unpublish(...m).catch(()=>{})}}(u=this._localScreenAudioTrack)!=null&&u.mediaTrack&&Ze(s)&&(this._localScreenAudioTrack.mediaTrack.enabled=!s),yield this._updateVideoPlayOption({view:r,playOption:a,track:this._localScreenTrack,prevConfig:this._localScreenConfig}),vr(this._localScreenConfig,e)})}stopScreenShare(){return y(this,null,function*(){return yield this._stopScreenShare()})}startRemoteVideo(e){return y(this,null,function*(){let{view:r,userId:o,streamType:s,option:n}=e,a=`${o}_${s}`;if(this._remoteVideoConfigMap.has(a)){this._log.warn(`remote video has already started. userId:${o}, streamType:${s}`);return}let u=this._room.remotePublishedUserMap.get(o);if(!u)return;let m={},p=s==="main"?u.remoteVideoTrack:u.remoteAuxiliaryTrack;p.on("decode-failed",g=>{this.emit(ee.ERROR,new ie({code:oe.OPERATION_FAILED,extraCode:5507,message:"video decode failed"}))}),p.on("video-size-changed",g=>{this.emit(ee.VIDEO_SIZE_CHANGED,ge(J({},g),{streamType:ri(g.streamType)}))}),this._listenOutputTrackChanged(p),n&&(x(n.fillMode)||(m.objectFit=n.fillMode),x(n.mirror)||(m.mirror=n.mirror),x(n.poster)||(m.poster=n.poster),m.canvasRender=n.canvasRender,s==="main"&&!x(n.small)&&(!u.remoteVideoTrack.isSubscribing&&!u.remoteVideoTrack.isSubscribed&&u.remoteVideoTrack.setMediaType(n.small?8:4),this._room.changeType(n.small,p.user))),yield this._room.subscribe(p),yield this._enableVideoDecodeFallback(p,s),yield this._updateVideoPlayOption({view:r,playOption:m,track:p}),this._emitTrackEvent(p),this._remoteVideoConfigMap.set(a,{config:e}),n&&!x(n.receiveWhenViewVisible)&&this._observeView({remoteTrack:p,view:r,receiveWhenViewVisible:n.receiveWhenViewVisible,viewRoot:n==null?void 0:n.viewRoot})})}updateRemoteVideo(e){return y(this,null,function*(){var w,O;let{view:r,userId:o,streamType:s,option:n}=e,a=`${o}_${s}`,u=this._remoteVideoConfigMap.get(a);if(!u||!this._room.remotePublishedUserMap.has(o))return;let m={};n&&(x(n.fillMode)||(m.objectFit=n.fillMode),x(n.mirror)||(m.mirror=n.mirror));let p=null,g=this._room.remotePublishedUserMap.get(o);if(s==="main"&&(g!=null&&g.muteState.hasVideo)&&(p=g.remoteVideoTrack),s==="sub"&&(g!=null&&g.muteState.hasAuxiliary)&&(p=g.remoteAuxiliaryTrack),!p)return;let{config:T}=u;s==="main"&&n&&!x(n.small)&&this._room.changeType(n.small,p.user),yield this._updateVideoPlayOption({view:r,playOption:m,track:p,prevConfig:T}),vr(T,e);let A=x(n==null?void 0:n.receiveWhenViewVisible)?(w=T.option)==null?void 0:w.receiveWhenViewVisible:n.receiveWhenViewVisible,C=x(r)?T.view:r,D=x(n==null?void 0:n.viewRoot)?(O=T.option)==null?void 0:O.viewRoot:n.viewRoot;this._observeView({remoteTrack:p,view:C,receiveWhenViewVisible:A,viewRoot:D})})}stopRemoteVideo(e){return y(this,null,function*(){return this._stopRemoteVideo(e)})}_stopRemoteVideo(e,r=!0){return y(this,null,function*(){let o=[],s=this._room.remotePublishedUserMap.get(e.userId);if(s){let{muteState:n,remoteVideoTrack:a,remoteAuxiliaryTrack:u}=s;e.streamType==="main"&&(a.stop(),n.hasVideo&&o.push(a)),e.streamType==="sub"&&(u.stop(),n.hasAuxiliary&&o.push(u))}for(let n of o)r&&(yield this._room.unsubscribe(n),this._mediaTrackMap.delete(n.outMediaTrack));this._removeRemoteVideoConfig(e.userId,e.streamType)})}_removeRemoteVideoConfig(e,r){let o=`${e}_${r}`,s=this._remoteVideoConfigMap.get(o);s&&s.observer&&s.observer.disconnect(),this._remoteVideoConfigMap.delete(o)}muteRemoteAudio(e,r){return y(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 o.code!==oe.OPERATION_ABORT&&this._remoteAudioMuteMap.delete(e),o}})}setRemoteAudioVolume(e,r){if(e==="*"){this._remoteAudioVolumeMap.set("*",r),this._remoteAudioVolumeMap.forEach((s,n)=>this._remoteAudioVolumeMap.set(n,r));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 y(this,null,function*(){return e.start(r)})}updatePlugin(e,r){return y(this,null,function*(){return e.update(r)})}stopPlugin(e,r){return y(this,null,function*(){return e.stop(r)})}enableAudioVolumeEvaluation(e=2e3,r=!1){this._room.enableAudioVolumeEvaluation(e,r)}on(e,r,o){if(this.listeners(e).includes(r))return this;if(this._log.debug("on",e),super.on(e,r,o),this._eventListened.add(e),this.listeners(ee.AUDIO_FRAME).length>0){let{audioFrameEventConfigMap:s}=this.room.audioManager;s.get("")||s.set("",{enable:!0}),this._localAudioTrack&&this.room.audioManager.handleLocalTrackStarted({userId:"",room:this.room})}return this}emit(e,...r){try{PE.has(e)&&this._log.debug(`emit ${e} ${JSON.stringify(r)}`)}catch(o){}return super.emit(e,...r)}off(e,r,o){if(this._log.debug("off",e),e==="*"?(this._eventListened.clear(),this.removeAllListeners()):super.off(e,r,o),(e===Ie.EVENT.AUDIO_FRAME||e==="*")&&this.listeners(Ie.EVENT.AUDIO_FRAME).length===0){let{getPCMAbortCtrlMap:s}=this.room.audioManager;s.forEach(n=>{n==null||n.abort("off")}),s.clear()}return this}getAudioTrack(e={userId:"",streamType:"main"}){let r,o=null,s="main",n=!1;if(De(e)?r=e:(r=e.userId,n=e.processed===!0,e.streamType&&(s=e.streamType)),r){let a=this._room.remotePublishedUserMap.get(r);a&&(o=a.remoteAudioTrack)}else o=s==="sub"?this._localScreenAudioTrack:this._localAudioTrack;return o?n&&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,n=null;if(r==="")o==="main"&&this._localVideoTrack&&(n=this._localVideoTrack),o==="sub"&&this._localScreenTrack&&(n=this._localScreenTrack);else{let a=this._room.remotePublishedUserMap.get(r);a&&(n=o==="main"?a.remoteVideoTrack:a.remoteAuxiliaryTrack)}return n?s&&n.outMediaTrack&&n.outMediaTrack!==n.mediaTrack?n.outMediaTrack.clone():n.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&&s.muteState.hasVideo))return s.remoteVideoTrack.getVideoFrame();if(o==="sub"&&(s!=null&&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 y(this,null,function*(){(yield no()).forEach(o=>{o.deviceId===e&&(this._setCurrentSpeaker(e),this.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"active",device:o}),Dt=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 y(this,null,function*(){var a;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={},n=o.remoteAudioTrack;n.on("decode-failed",u=>{this.emit(ee.ERROR,new ie({code:oe.OPERATION_FAILED,extraCode:5506,message:"audio decode failed"}))}),this._listenOutputTrackChanged(n),this._speakerId&&n.setAudioOutput(this._speakerId);try{let u=(a=this._remoteAudioVolumeMap.get(r))!=null?a:this._remoteAudioVolumeMap.get("*"),m=ke(u)?u:100;s.volume=m,this._remoteAudioConfigMap.set(r,e),yield this._room.subscribe(n),Ae(be(n,"decode-failed"),Xe(be(n,le.INIT)),Le(()=>{this.startPlugin(pc.Name,{track:n,type:"auto",config:{codec:"opus",sampleRate:48e3,numberOfChannels:1}})})),yield this._updateAudioPlayOption({playOption:s,track:n}),V.emit("115",{userId:r,room:this.room}),n.outMediaTrack&&this.room.audioManager.updateAudioReference({type:"add",audioReference:n.outMediaTrack,refId:`ra-${r}`})}catch(u){throw this._remoteAudioConfigMap.delete(r),u}this._emitTrackEvent(n)})}_stopRemoteAudio(e,r=!0){return y(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.delete(o.remoteAudioTrack.outMediaTrack)),this._remoteAudioConfigMap.delete(`${e.userId}`),V.emit("116",{userId:e.userId,room:this.room}),this.room.audioManager.updateAudioReference({type:"remove",refId:`ra-${e.userId}`})})}_enableVideoDecodeFallback(e,r){let o=this._room.videoDecodeFallbackType;if(!o||!this._plugins.has("TRTCVideoDecoder"))return;e.log.debug("remote video will fall back when decode failed",e.id);let s;Ae(be(e,"decode-failed"),Xe(be(e,le.INIT)),tc(()=>{this._room.downlinkVideoCodec!=="h265"&&this.startPlugin("TRTCVideoDecoder",{type:"auto",renderer:"videoFrame",track:e,config:{codec:"avc1.420028"},fallback:o})}),Oi(be(e,"decode-downgrade-state-changed")),Le(n=>{s=n.state,this.emit(ee.VIDEO_DECODE_DOWNGRADE_STATE_CHANGED,ge(J({},n),{streamType:r,userId:e.userId}))},n=>{e.log.error("fallback",n)},()=>{s==="STARTED"&&e.log.info("fallback complete")}))}_updateVideoPlayOption(n){return y(this,arguments,function*({view:e,playOption:r,track:o,prevConfig:s}){if(o.setMirror(r.mirror),x(e)&&s&&s.view&&!Bs(r)){let a=Ws(s.view);a.length>0&&(yield o.play(a,r))}if(!x(e)){let a=Ws(e);a.length>0?yield o.play(a,r):o.stop()}})}_updateAudioPlayOption(s){return y(this,arguments,function*({playOption:e={},track:r,prevConfig:o}){if(!r.isPlayCalled)try{yield r.play(null,e)}catch(n){}if(x(e.muted)||r.setPlayerMute(e.muted),x(e.volume)||r.setAudioVolume(e.volume/100),r instanceof Kr&&r.mediaTrack){let n=e.muted===!1&&!x(e.volume)&&e.volume>0?"add":"remove";this.room.audioManager.updateAudioReference({type:n,audioReference:r.mediaTrack,refId:"em"})}else if(r instanceof xi){let n=e.muted?0:e.volume;if(x(n))return;this.room.audioManager.updateAudioReference({type:"updateVolume",refId:`ra-${r.userId}`,volume:e.volume})}})}_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(ee.TRACK,{userId:o,streamType:ri(e.streamType),track:e.outMediaTrack,sourceTrack:e.mediaTrack})))}_checkTrackToPublish(){var r,o,s;let e=[];if((r=this._localAudioConfig)!=null&&r.publish&&this._localAudioTrack&&e.push(this._localAudioTrack),(o=this._localVideoConfig)!=null&&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),this._checkScreenAudioEchoCancellation(this._localScreenTrack,this._localScreenAudioTrack)),e.length!==0)return this._room.publish(...e).catch(console.error)}_observeView({remoteTrack:e,view:r,receiveWhenViewVisible:o=!1,viewRoot:s}){if(x(r))return;let n=this._remoteVideoConfigMap.get(`${e.userId}_${ri(e.streamType)}`);if(!n)return;let a=n.observer||void 0;if(r===null||ot(r)&&r.length===0||!o){a==null||a.disconnect(),e.isSubscribed||this._room.subscribe(e).catch(()=>{});return}let m=n.visibleViewMap||new Map,p=-1;(!a||a.root!==s)&&(a==null||a.disconnect(),m.clear(),a=new IntersectionObserver(T=>{T.forEach(A=>{m.set(A.target,A.isIntersecting),e.log.info(`view ${A.target.id} is${A.isIntersecting?"":" not"} visible`)}),clearTimeout(p),p=window.setTimeout(()=>{[...m.values()].find(C=>C)?e.isSubscribed||this._room.subscribe(e).catch(()=>{}):e.isSubscribed&&this._room.unsubscribe(e).catch(()=>{})},200)},{root:s}));let g=new Set(Ws(r));m.forEach((T,A)=>{g.has(A)||(a.unobserve(A),m.delete(A))}),g.forEach(T=>{m.set(T,!0),a.observe(T)}),a.takeRecords().forEach(T=>{m.set(T.target,T.isIntersecting)}),n.visibleViewMap=m,n.observer=a}_exitRoom(){return y(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(),FE(this),this._room.remotePublishedUserMap.forEach(e=>{ut(e.remoteAudioTrack),ut(e.remoteVideoTrack),ut(e.remoteAuxiliaryTrack)})})}_stopScreenShare(){return y(this,null,function*(){var e,r;if(this._localScreenTrack){if(this._room.isJoined){let o=[this._localScreenTrack];this._localScreenAudioTrack&&o.push(this._localScreenAudioTrack),yield(e=this._room)==null?void 0:e.unpublish(...o).catch(()=>{})}this._localScreenTrack.stop(),this._localScreenTrack.close(),this._localScreenAudioTrack&&(((r=this._localScreenAudioTrack.trackSettings)==null?void 0:r.echoCancellation)===!1&&this.stopPlugin("AudioProcessor"),this._localScreenAudioTrack.stop(),this._localScreenAudioTrack.close(),this._room.audioManager.removeInput(this._localScreenAudioTrack),this._localScreenAudioTrack=null),ut(this._localScreenTrack),this._localScreenTrack=null,this._localScreenConfig=null}})}_checkScreenAudioEchoCancellation(e,r){return y(this,null,function*(){var s,n;if(!e||!r)return;let o=(s=e.trackSettings)==null?void 0:s.displaySurface;if(((n=r.trackSettings)==null?void 0:n.echoCancellation)===!1&&(o==="monitor"||o==="browser"&&e.isShareCurrentTab)){this._log.warn("echoCancellation of screen audio track is disable. Try starting audioProcessor plugin");try{yield this.startPlugin("AudioProcessor",{sdkAppId:Number(this.room.sdkAppId),userId:this._room.userId,userSig:this.room.userSig,isScreenAudioNeedAudioProcess:!0,isLocalAudioNeedAudioProcess:!1})}catch(a){this._log.warn("start audioProcessor plugin failed: ",a)}}})}_onLocalTrackCaptured({track:e}){e.kind==="audio"&&(!Dt||hn(Dt))&&(this._initActiveSpeaker(),V.off("102",this._onLocalTrackCaptured,this))}_initActiveSpeaker(){return y(this,null,function*(){if(Dt&&!hn(Dt))this.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"active",device:Dt});else{let e=yield no();e[0]&&!hn(e[0])?(Dt=e[0],this.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"active",device:e[0]})):V.on("102",this._onLocalTrackCaptured,this)}})}_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,n=[s];this._room.autoReceiveAudio&&o.remoteAudioTrack.isAvailable&&n.push(o.remoteAudioTrack),this._room.subscribe(...n).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:ge(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})}callExperimentalAPI(e,r){return y(this,null,function*(){return this._log.info(`callExperimentalAPI(${e}, ${JSON.stringify(r)})`),JE.call(e,J({trtcInstance:this},r))})}static setLogLevel(e,r){$.setLogLevel(e),x(r)||(r?$.enableUploadLog():$.disableUploadLog())}static isSupported(){return Bd(Ie.frameWorkType)}static getPermissions(o){return y(this,arguments,function*({request:e=!0,types:r=["camera","microphone"]}){e&&(yield fc.request(r).catch(a=>{var u;return $.error(`getPermissions request failed, error: ${(u=a==null?void 0:a.message)!=null?u:a}`)}));let[s,n]=yield Promise.all([fc.get("camera"),fc.get("microphone")]);return{camera:s,microphone:n}})}static getCameraList(e=!0){return Zt(e)}static getMicrophoneList(e=!0){return Yt(e)}static getSpeakerList(e=!0){return no(e)}static setCurrentSpeaker(e){return y(this,null,function*(){if(pt&&(e===gs.SPEAKER||e===gs.HEADSET)){let o=yield Ie.getMicrophoneList(),s="";if(o.forEach(n=>{n.label===e&&(s=n.deviceId)}),!s)return;gc.forEach(n=>y(null,null,function*(){n._localAudioTrack&&(yield n.updateLocalAudio({option:{microphoneId:s}}))}));return}(yield no()).forEach(o=>{o.deviceId===e&&(gc.forEach(s=>{s._setCurrentSpeaker(e),s.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"active",device:o})}),Dt=o)})})}static _addKVStat({type:e,key:r,value:o,base:s,useUV:n,version:a,max:u}){switch(a&&(Zo.version=a),e){case"count":Zo.addCount({key:r,useUV:n});break;case"enum":Zo.addEnum({key:r,value:o,useUV:n});break;case"number":Zo.addNumber({key:r,value:o,split:s,max:u});break}}};l(Ie,"_loggerManager",$),l(Ie,"EVENT",ee),l(Ie,"ERROR_CODE",oe),l(Ie,"TYPE",gs),l(Ie,"frameWorkType",30),K([tt({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"}})})],Ie.prototype,"use",1),K([Mt(vt.TRTC.enterRoom),go("room",([e],[r])=>(e.roomId||e.strRoomId)===(r.roomId||r.strRoomId)&&e.userId===r.userId&&e.sdkAppId===r.sdkAppId),Me(e=>function(r){return this._log.setUserId(r.userId),this._log.setSdkAppId(r.sdkAppId),e.call(this,r)}),tt()],Ie.prototype,"enterRoom",1),K([tt()],Ie.prototype,"exitRoom",1),K([Mt(vt.TRTC.switchRoom),tt(),is()],Ie.prototype,"switchRoom",1),K([Mt(vt.TRTC.switchRole),Ts("room",{merge:(e,r)=>r}),tt()],Ie.prototype,"switchRole",1),K([tt()],Ie.prototype,"destroy",1),K([Mt(vt.TRTC.startLocalAudio),go("audio",([e],[r])=>{var o,s;return((o=e==null?void 0:e.option)==null?void 0:o.microphoneId)===((s=r==null?void 0:r.option)==null?void 0:s.microphoneId)}),tt()],Ie.prototype,"startLocalAudio",1),K([Mt(vt.TRTC.updateLocalAudio),Ts("audio",{debounce:{delay:200,getKey:()=>`${QE}-localAudio`,isNeedToDebounce:e=>{var r;return!x((r=e.option)==null?void 0:r.captureVolume)}}}),tt()],Ie.prototype,"updateLocalAudio",1),K([Eo("audio"),tt()],Ie.prototype,"stopLocalAudio",1),K([Mt(vt.TRTC.startLocalVideo),go("video",([e],[r])=>{var o,s;return((o=e==null?void 0:e.option)==null?void 0:o.cameraId)===((s=r==null?void 0:r.option)==null?void 0:s.cameraId)}),tt()],Ie.prototype,"startLocalVideo",1),K([Mt(vt.TRTC.updateLocalVideo),Ts("video"),tt()],Ie.prototype,"updateLocalVideo",1),K([Eo("video"),tt()],Ie.prototype,"stopLocalVideo",1),K([Mt(vt.TRTC.startScreenShare),go("screen",()=>!0),tt()],Ie.prototype,"startScreenShare",1),K([Mt(vt.TRTC.updateScreenShare),Ts("screen"),tt()],Ie.prototype,"updateScreenShare",1),K([tt()],Ie.prototype,"stopScreenShare",1),K([Mt(vt.TRTC.startRemoteVideo),go(e=>`v${e.userId}${e.streamType}`,()=>!0),tt({getRemoteId:e=>`${e.userId}_${e.streamType}`})],Ie.prototype,"startRemoteVideo",1),K([Mt(vt.TRTC.updateRemoteVideo),Ts(e=>`v${e.userId}${e.streamType}`),tt({getRemoteId:e=>`${e.userId}_${e.streamType}`})],Ie.prototype,"updateRemoteVideo",1),K([Mt(vt.TRTC.stopRemoteVideo),Me(e=>function(r){return y(this,null,function*(){if(r.userId==="*"){let o=[];return this._room.remotePublishedUserMap.forEach(s=>{this._remoteVideoConfigMap.has(`${s.userId}_main`)&&o.push(this.stopRemoteVideo({streamType:"main",userId:s.userId}).catch(()=>{})),this._remoteVideoConfigMap.has(`${s.userId}_sub`)&&o.push(this.stopRemoteVideo({streamType:"sub",userId:s.userId}).catch(()=>{}))}),Promise.all(o)}return e.call(this,r)})}),tt({getRemoteId:e=>`${e.userId}_${e.streamType}`})],Ie.prototype,"stopRemoteVideo",1),K([Eo(e=>`v${e.userId}${e.streamType}`)],Ie.prototype,"_stopRemoteVideo",1),K([Mt(...vt.TRTC.muteRemoteAudio),tt({getRemoteId:e=>e})],Ie.prototype,"muteRemoteAudio",1),K([Tp(...vt.TRTC.setRemoteAudioVolume),$E(200,e=>e),tt({getRemoteId:e=>e})],Ie.prototype,"setRemoteAudioVolume",1),K([$u("start"),ao(e=>{var r;return(r=e.afterStart)==null?void 0:r.call(e)}),go((e,r)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(r)),tt({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>Pm[e.getName()],ignoreLog:e=>e.getName()==="Debug",ignoreErrorLog:e=>e.getName()==="AudioProcessor"})],Ie.prototype,"startPlugin",1),K([$u("update"),Ts((e,r)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(r),{merge:(e,r)=>(vr(e[1],r[1]),e)}),tt({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>km[e.getName()]})],Ie.prototype,"updatePlugin",1),K([$u("stop"),Eo((e,r)=>{if(e.disableRandomCall)return null;let o=e.getGroup(r),s=e.getAlias();return o==="*"?new RegExp(`${s}.*`):s+o}),tt({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>Lm[e.getName()]})],Ie.prototype,"stopPlugin",1),K([Tp(...vt.TRTC.enableAudioVolumeEvaluation)],Ie.prototype,"enableAudioVolumeEvaluation",1),K([tt()],Ie.prototype,"getVideoSnapshot",1),K([tt()],Ie.prototype,"_setCurrentSpeaker",1),K([go(e=>`a${e.userId}`,()=>!0)],Ie.prototype,"_startRemoteAudio",1),K([Me(e=>function(r){return y(this,null,function*(){return r.userId==="*"?Promise.all([...this._room.remotePublishedUserMap.values()].map(o=>this._stopRemoteAudio(ge(J({},r),{userId:o.userId})).catch(()=>{}))):e.call(this,r)})}),Eo(e=>`a${e.userId}`)],Ie.prototype,"_stopRemoteAudio",1),K([Eo("room")],Ie.prototype,"_exitRoom",1),K([Eo("screen")],Ie.prototype,"_stopScreenShare",1),K([Mt(...vt.TRTC.sendSEIMessage),lp({timesInSecond:30,maxSizeInSecond:8e3,getSize:(...e)=>e[0].byteLength})],Ie.prototype,"sendSEIMessage",1),K([Mt(vt.TRTC.sendCustomMessage),lp({timesInSecond:30,maxSizeInSecond:8e3,getSize:e=>e.data.byteLength})],Ie.prototype,"sendCustomMessage",1),K([Mt(vt.TRTC.create)],Ie,"_create",1);var wp=Ie,Nn=wp;var Zu=class{constructor(t,e){l(this,"_flag");l(this,"terminalType");l(this,"userId");l(this,"tinyId");l(this,"role");l(this,"remoteAudioTrack");l(this,"remoteVideoTrack");l(this,"remoteAuxiliaryTrack");this.userId=e.userId||"",this.tinyId=e.tinyId||"",this.role=e.role||"audience",this.terminalType=e.terminalType,this.remoteAudioTrack=new xi(t,this),this.remoteVideoTrack=new ho(t,this),this.remoteAuxiliaryTrack=new Ru(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 Bo(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 Mp=class{constructor(){l(this,"_set",new Set);V.on(F.LEAVE_SUCCESS,this.delete,this),V.on(F.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess,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))}handleSwitchRoomSuccess({room:t,currentRoomId:e,targetRoomId:r}){t.scene!=="rtc"&&(this._set.delete(this.getKey(t.userId,e,t.sdkAppId,t.useStringRoomId)),this._set.add(this.getKey(t.userId,r,t.sdkAppId,t.useStringRoomId)))}};function dA(){return y(this,null,function*(){let i,t;try{let A=yield Yt();i=A&&A.length}catch(A){}try{let A=yield Zt();t=A&&A.length}catch(A){}let e={microphone:i,camera:t},{isH264EncodeSupported:r,isVp8EncodeSupported:o,isH264DecodeSupported:s,isVp8DecodeSupported:n,isH265EncodeSupported:a,isH265DecodeSupported:u}=this.checkSystemResult.detail,m=oo.basis(),p={webRTC:m.isWebRTCSupported,getUserMedia:m.isGetUserMediaSupported,webSocket:m.isWebSocketsSupported,screenShare:m.isScreenShareSupported,webAudio:m.isWebAudioSupported,h264Encode:r,h264Decode:s,vp8Encode:o,vp8Decode:n,h265Encode:a,h265Decode:u},g={browser:m.browser,os:m.os,trtc:p,devices:e},T={isWebCodecSupported:m.isWebCodecSupported,isMediaSessionSupported:m.isMediaSessionSupported,isWebTransportSupported:m.isWebTransportSupported};Je.uploadEvent({log:`trtcstats-${JSON.stringify(g)}`,userId:this.userId}),this._log.info(`TrtcStats-${JSON.stringify(g)}`),Je.uploadEvent({log:`trtcadvancedstats-${JSON.stringify(T)}`,userId:this.userId}),qm()})}function ZE(){return Me(i=>{let t=new Mp;return function(e,r,o){return y(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:q.INVALID_OPERATION,message:Be({key:$e.INVALID_JOIN})});if(this.checkDestroy(),t.isJoined({userId:this.userId,roomId:s,sdkAppId:this.sdkAppId,room:this}))throw new de({code:q.INVALID_OPERATION,message:Be({key:$e.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}`),V.emit(F.JOIN_START,{room:this,roomId:s,params:e});let n=zr.getEnv();n||(n=mi.QCLOUD,this.proxy_ws&&(this.proxy_ws.startsWith(zc.OLD_CLOUD_LADDER)?n=mi.OLD_CLOUD_LADDER:this.proxy_ws.startsWith(zc.WEBRTC)&&(n=mi.WEBRTC))),Je.setConfig({env:n,sdkAppId:String(this.sdkAppId),userId:this.userId,roomId:s}),oo.checkSystemRequirementsInternal(o).then(a=>{this.checkSystemResult=a,dA.call(this)});try{!this.proxy_ws&&!this.proxy_wt&&!this.scheduleResult.domains&&!zr.getEnv()&&(yield this.schedule(e,o));let a=yield i.call(this,e,r,o);return this.roomId=s,this._joinedTimestamp=zr.performanceNow(),V.emit(F.JOIN_SUCCESS,{room:this}),o===30&&!e.component&&Je.uploadEvent({log:`stat-conv-${Number(Mr)}-${location.hostname}`,userId:this.userId}),a}catch(a){throw t.delete({room:this,roomId:s}),V.emit(F.JOIN_FAILED,{room:this,error:a}),a}})}})}var KE=()=>Me(i=>function(...t){return y(this,null,function*(){V.emit(F.LEAVE_START,{room:this}),yield i.call(this,...t),V.emit(F.LEAVE_SUCCESS,{room:this,roomId:this.roomId})})});function eT(){return Me(i=>function(...t){return y(this,null,function*(){if(this.scene==="live"&&this.role!=="anchor"||(t=t.filter(r=>r.outMediaTrack&&r.state==="ready"),!t.length))return;V.emit("61",{room:this});let e=i.apply(this,t);return Promise.all(t.map(r=>r.publish(this,e)))})})}function tT(){return Me(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>r.unpublish()),e})}function rT(){return Me(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>!r.isSubscribed&&r.subscribe(e)),e})}function uA({fn:i,context:t}){return function(...e){try{let r=i.apply(t,e);return Yi(r)?r.catch(o=>$.error(`${i.name}() error observed ${o}`)):r}catch(r){$.error(`${i.name}() error observed ${r}`)}}}var Ku=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=$.createLogger({id:"kpm",userId:this._room.userId,sdkAppId:this._room.sdkAppId}),Object.getOwnPropertyNames(this.__proto__).forEach(e=>{e.startsWith("handle")&&Ge(this[e])&&(this[e]=uA({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:at,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,jo().then(t=>{this._basicInfo.string_os_version=zo(),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),V.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(F.JOIN_START,this.handleJoinStart).addEvent(F.JOIN_SCHEDULE_SUCCESS,this.handleJoinScheduleSuccess).addEvent(F.JOIN_SIGNAL_CONNECTION_START,this.handleSignalConnectionStart).addEvent(F.JOIN_SIGNAL_CONNECTION_END,this.handleSignalConnectionEnd).addEvent(F.JOIN_SEND_CMD,this.handleJoinSendCMD).addEvent(F.JOIN_RECEIVED_CMD_RES,this.handleJoinReceivedCMDResponce).addEvent(F.JOIN_SUCCESS,this.handleJoinSuccess).addEvent(F.JOIN_FAILED,this.handleJoinFailed).addEvent(F.LEAVE_START,this.handleLeaveStart).addEvent(F.LEAVE_SUCCESS,this.handleLeaveSuccess).addEvent(F.LEAVE_SEND_CMD,this.handleLeaveSendCMD).addEvent(F.LOCAL_TRACK_CAPTURE_START,this.handleTrackCaptureStart).addEvent(F.LOCAL_TRACK_CAPTURE_SUCCESS,this.handleTrackCaptureSuccess).addEvent(F.LOCAL_TRACK_CAPTURE_FAILED,this.handleTrackCaptureFailed).addEvent(F.PUBLISH_START,this.handlePublishStart).addEvent(F.SEND_FIRST_VIDEO_FRAME,this.handleSendFirstVideoFrame).addEvent(F.SUBSCRIBE_START,this.handleSubscribeStart).addEvent(F.SUBSCRIBE_SUCCESS,this.handleSubscribed).addEvent(F.PLAY_TRACK_START,this.handlePlayStart).addEvent(F.VIDEO_LOADED_DATA,this.handleVideoLoadedData).addEvent(F.PLAYER_STATE_CHANGED,(({track:t,state:e,type:r})=>{!t.isRemote||!this.hitTest(t.room)||e==="PLAYING"&&(r===M.AUDIO?this.handleAudioPlaying(t):this.handleVideoPlaying(t))})).addEvent(F.SWITCH_ROOM_START,this.handleSwitchRoomStart).addEvent(F.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess).addEvent(F.SWITCH_ROOM_FAILED,this.handleSwitchRoomFailed).addEvent(F.NETWORK_QUALITY,this.handleNetworkQuality).addEvent(F.HEARTBEAT_REPORT,this.handleHeartbeatStats).addEvent(F.RECEIVED_PUBLISHED_USER_LIST,this.handleReceivedPublishUserList).addEvent(F.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,n=r.hasAudio||r.hasVideo||r.hasSmall,a=r.hasAuxiliary;!o&&n&&this.handleRemoteStreamAdded(r.userId,"main"),!s&&a&&this.handleRemoteStreamAdded(r.userId,"auxiliary")}).addEvent(F.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("pagehide",this.handleUnload),this._eventMap.forEach((t,e)=>V.off(e,t)),this._eventMap.clear()}destroy(){this.uninstallEvents(),dt.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&&(x(t.params.frameWorkType)||(this._frameWorkType=t.params.frameWorkType,this._basicInfo.uint32_framework=this._frameWorkType),x(t.params.component)||(this._component=t.params.component,this._basicInfo.uint32_component=this._component),x(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:n,tls:a,request:u,response:m}=e;this._pathJoinRoom.int32_schedule_cost=r,this._pathJoinRoom.int32_schedule_local=o,this._pathJoinRoom.int32_schedule_dns=s,this._pathJoinRoom.int32_schedule_tcp=n,this._pathJoinRoom.int32_schedule_tls=a,this._pathJoinRoom.int32_schedule_request=u,this._pathJoinRoom.int32_schedule_response=m}}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()):q.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())}handleSwitchRoomStart(t){if(this.hitTest(t.room)){let e=Date.now();this.report().then(()=>{this._pathJoinRoom.uint64_start_time=e,this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time=e})}}handleSwitchRoomSuccess({room:t}){if(this.hitTest(t)&&this._pathJoinRoom.uint64_end_time===0){let e=Date.now();this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=e,this._pathJoinRoom.uint64_end_time=e,this._pathJoinRoom.int32_end_ret}}handleSwitchRoomFailed({room:t,error:e}){if(this.hitTest(t)){let r=Date.now();this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=r,this._pathJoinRoom.uint64_end_time=r,e&&(this._pathJoinRoom.int32_end_ret=e instanceof de?Number(e.getExtraCode()||e.getCode()):q.UNKNOWN)}}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:ge(J({},lA),{msg_user_info:new Ec({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:n,role:a}=e,u=new Ec({userId:s,tinyId:n,role:a==="anchor"?20:21}),m=Date.now(),p=`${s}_${r}`,g=this._remoteStreamStatMap.get(p);g&&g.subscribeStartTime===0&&(g.subscribeStartTime=m),r==="main"?(e.muteState.hasVideo&&(o.video||o.smallVideo)&&!this._pathMainVideoMap.has(p)&&this._pathMainVideoMap.set(p,{statsToReport:{msg_user_info:u,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_render_first_frame_time:0,uint64_combine_first_frame_time:0},userId:s,sendSubscribeCMDTime:m}),e.muteState.hasAudio&&o.audio&&!this._pathMainAudioMap.has(p)&&this._pathMainAudioMap.set(p,{statsToReport:{msg_user_info:u,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_play_first_frame_time:0},userId:s,sendSubscribeCMDTime:m})):e.muteState.hasAuxiliary&&o.auxiliary&&!this._pathAuxiliaryMap.has(p)&&this._pathAuxiliaryMap.set(p,{sendSubscribeCMDTime:m})}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(s){let{statsToReport:n}=s;if(!n.uint32_video_render_first&&t.streamType==="main"?this.hasVideoFlag(t.userId):this.hasAuxFlag(t.userId)){let a=r-this._pathJoinRoom.uint64_start_time;n.uint32_video_render_first=a,X.addNumber({key:516820,value:a})}}(o==null?void 0:o.statsToReport.uint64_render_first_frame_time)===0&&(o.statsToReport.uint64_render_first_frame_time=r)}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:n})=>{let a=this._networkQuality.totalDownlinkRTTAndLossMap.get(o);if(a)a.totalRTT+=e,a.totalLoss+=r,s&&(a.totalVideoDelay=(a.totalVideoDelay||0)+s,a.videoDelayCount=(a.videoDelayCount||0)+1),n&&(a.totalAudioDelay=(a.totalAudioDelay||0)+n,a.audioDelayCount=(a.audioDelayCount||0)+1),a.count++;else{let u,m,p,g;s&&(m=s,p=1),n&&(u=n,g=1),this._networkQuality.totalDownlinkRTTAndLossMap.set(o,{totalRTT:e,totalLoss:r,count:1,totalAudioDelay:u,totalVideoDelay:m,audioDelayCount:g,videoDelayCount:p})}}))}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:n,uint32_video_width:a,uint32_video_height:u}=r.msg_video_status[0];this._localStreamStat.totalVideoBitrate+=s,this._localStreamStat.totalVideoFPS+=n,this._localStreamStat.totalVideoWidth+=a,this._localStreamStat.totalVideoHeight+=u,this._localStreamStat.videoCount++}if(r.msg_audio_status){let{uint32_audio_level:s}=r.msg_audio_status;Math.floor(s/bi*100)>0&&(this._localStreamStat.totalAudioLevel+=s/bi,this._localStreamStat.audioLevelCount++)}o.forEach(s=>{let{msg_user_info:n,msg_audio_status:a,msg_video_status:u}=s,m=n.str_identifier,p=this._room.remotePublishedUserMap.get(m);if(u.forEach(g=>{let T=g.uint32_video_stream_type===2,A=g.uint32_video_stream_type===7,C=`${m}_${T?"main":"auxiliary"}`,D=this._remoteStreamStatMap.get(C);if(D&&(T&&(p!=null&&p.remoteVideoTrack.isSubscribed)||A&&(p!=null&&p.remoteAuxiliaryTrack))){D.totalVideoFPS+=g.uint32_video_receive_fps,D.totalVideoBitrate+=g.uint32_video_codec_bitrate,D.videoCount++,D.statsToReport.uint32_video_width===0&&(D.statsToReport.uint32_video_width=g.uint32_video_width),D.statsToReport.uint32_video_height===0&&(D.statsToReport.uint32_video_height=g.uint32_video_height);let w=T?p.remoteVideoTrack:p.remoteAuxiliaryTrack;w.stat.jitterBufferDelay&&(D.videoJitterBufferDelay=w.stat.jitterBufferDelay),w.stat.framesReceived&&(D.statsToReport.uint32_video_consume_render_rate=Math.floor(w.stat.framesDecoded/w.stat.framesReceived*Xi(10,6)))}}),!Bs(a)){let g=`${m}_main`,T=this._remoteStreamStatMap.get(g);this._remoteStreamStatMap.has(g)&&T&&p!=null&&p.remoteAudioTrack.isSubscribed&&(T.totalAudioBitrate+=a.uint32_audio_codec_bitrate,T.audioCount++,p.remoteAudioTrack.stat.jitterBufferDelay&&(T.audioJitterBufferDelay=p.remoteAudioTrack.stat.jitterBufferDelay),Math.floor(a.uint32_audio_level/bi*100)>0&&(T.totalAudioLevel+=a.uint32_audio_level/bi,T.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():q.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&Ps)>=0}hasAudioFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&ks)>=0}hasAuxFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&ta)>=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:p,count:g,audioDelayCount:T,videoDelayCount:A,totalAudioDelay:C,totalVideoDelay:D}=o;t.statsToReport.uint32_avg_down_loss=Math.floor(p/g),T&&C&&(t.statsToReport.uint32_audio_network_p2p_delay=Math.floor(C/T),t.audioJitterBufferDelay&&(t.statsToReport.uint32_p2p_delay=Math.floor(t.statsToReport.uint32_audio_network_p2p_delay+t.audioJitterBufferDelay))),A&&D&&(t.statsToReport.uint32_video_network_p2p_delay=Math.floor(D/A))}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,M.AUDIO),t.statsToReport.uint32_video_play_time=s.getDuration(e,M.VIDEO)),t.statsToReport.uint32_video_render_first&&(t.statsToReport.uint32_video_render_first=Math.min(t.statsToReport.uint32_video_render_first,Is));let{badCaseDetector:n}=this._room,{dataFreeze:a,count:u}=n.getDataFreezeDuration(e),{renderFreeze:m}=n.getRenderFreezeDuration(e);t.statsToReport.uint32_video_block_count=u,t.statsToReport.uint32_video_block_time=Math.min(a,t.statsToReport.uint32_video_play_time),t.statsToReport.uint32_video_external_block_time=Math.min(m,t.statsToReport.uint32_video_play_time),n.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}),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>Is&&(t.statsToReport.uint64_play_first_frame_time=t.statsToReport.uint64_start_enter_time+Is)}),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>Is&&(t.statsToReport.uint64_render_first_frame_time=t.statsToReport.uint64_start_enter_time+Is)}),this._pathJoinRoom.uint64_end_time-this._pathJoinRoom.uint64_start_time>Is&&(this._pathJoinRoom.uint64_end_time=this._pathJoinRoom.uint64_start_time+Is)}getReportData(){this._basicInfo.uint32_networkType=rd();let t={uint32_sdk_app_id:Number(this._room.sdkAppId),msg_user_info:new Ec({userId:this._room.userId,tinyId:this._room.tinyId,role:this._room.role==="anchor"?20:21}),msg_basic_info:this._basicInfo,uint32_acc_ip:Hs(this._signalInfo.relayIp),uint32_client_ip:Hs(this._signalInfo.clientIp,!1),uint32_acc_port:this._signalInfo.relayPort||0,uint64_timestamp:Date.now(),uint32_seq:Math.floor(Math.random()*Xi(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:Hs(this._signalInfo.clientIp,!1),error_code:[],msg_local_statistics:this._localStreamStat.statsToReport,bytes_report_buf_from_0x1:this._signalInfo.endReportExtend};return ua(t),t}report(){return y(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 y(this,null,function*(){if(t.msg_path_enter_room.uint64_start_time===0)return;let e=Number(this._room.sdkAppId),r=to.enable?Ei(t,2001,e):yield Xl(t),o=r instanceof ArrayBuffer,s=`${gi(e,Qi.KEY_POINT)}&gzip=${+o}`,n=!1;navigator.sendBeacon&&(n=navigator.sendBeacon(s,r));let a=[this.uploadKVStat(X),this.uploadKVStat(Zo)];n||a.push(Ti({url:s,body:r,priority:"low"})),yield Promise.all(a)})}setConnectionType(t){this.connectionType=t,this._basicInfo.uint32_connection_type=t}uploadKVStat(t){return y(this,null,function*(){let e=t.getReportData();if(e.stats_count.length===0&&e.stats_distribution.length===0)return;e.msg_sdk_basic_info=ge(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=to.enable?Ei(e,2003,this._room.sdkAppId):yield Xl(e),o=r instanceof ArrayBuffer,s=`${gi(+this._room.sdkAppId,Qi.KV_STAT)}&gzip=${+o}`,n=!1;navigator.sendBeacon&&(n=navigator.sendBeacon(s,r)),n||Ti({url:s,body:r})})}};K([ts({settings:{timeout:500,retries:3}})],Ku.prototype,"upload",1);var Is=5e3,lA={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_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},Ec=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}},iT=Ku;var Op=class{constructor(){l(this,"_startTime");l(this,"_endTime");this._startTime=0,this._endTime=0,this.start()}start(){this._startTime===0&&(this._startTime=_e())}stop(){this._endTime===0&&(this._endTime=_e())}getDuration(){return this._endTime===0?_e()-this._startTime:this._endTime-this._startTime}get startTime(){return this._startTime}get endTime(){return this._endTime}},el=Op;var xp=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(F.REMOTE_TRACK_SUBSCRIBED,this.handleSubscribed).set(F.REMOTE_TRACK_UNSUBSCRIBED,this.handleUnsubscribed).set(F.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{var n;let{userId:o}=r;if(!this.hitTest(t))return;e.hasAudio&&!r.hasAudio&&this.stopDurationItem(`${o}_main`,M.AUDIO),e.hasVideo&&!r.hasVideo&&this.stopDurationItem(`${o}_main`,M.VIDEO),e.hasAuxiliary&&!r.hasAuxiliary&&this.stopDurationItem(`${o}_auxiliary`,M.VIDEO);let s=(n=this._room)==null?void 0:n.remotePublishedUserMap.get(o);s&&(!e.hasAudio&&r.hasAudio&&s.remoteAudioTrack.isSubscribed&&this.addDuractionItem(o,M.AUDIO,"main"),!e.hasVideo&&r.hasVideo&&s.remoteVideoTrack.isSubscribed&&this.addDuractionItem(o,M.VIDEO,"main"),!e.hasAuxiliary&&r.hasAuxiliary&&s.remoteAuxiliaryTrack.isSubscribed&&this.addDuractionItem(o,M.VIDEO,"auxiliary"))}),this._eventMap.forEach((t,e)=>V.on(e,t,this))}uninstallEvents(){this._eventMap.forEach((t,e)=>V.off(e,t,this)),this._eventMap.clear()}handleSubscribed({track:t}){if(!this.hitTest(t.room))return;let{userId:e,streamType:r,kind:o}=t;t.isSubscribed?this.addDuractionItem(e,o,r):this.stopDurationItem(`${e}_${r}`,o)}handleUnsubscribed({track:t}){this.hitTest(t.room)&&this.stopDurationItem(`${t.userId}_${t.streamType}`,t.kind)}isRecording(t){return t.findIndex(e=>e.endTime===0)>=0}addDuractionItem(t,e,r){let o=`${t}_${r}`,s=new el,n=this._durationMap.get(o);n?this.isRecording(n[e])||n[e].push(s):this._durationMap.set(o,{userId:t,type:r,audio:e===M.AUDIO?[s]:[],video:e===M.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()}},oT=xp;var Pp=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()}getRenderFreezeMap(){return this._renderFreezeMap}getDataFreezeMap(){return this._dataFreezeMap}installEvents(){this._eventMap.set(F.LEAVE_SUCCESS,({room:t})=>{this.hitTest(t)&&this.stop()}).set(F.PLAY_TRACK_START,this.onPlayTrackStart).set(F.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(F.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",n=`${r.userId}_${s}`;this.stopDataFreeze({key:n,userId:o,type:s})}if(e.hasAuxiliary&&!r.hasAuxiliary){let s="auxiliary",n=`${r.userId}_${s}`;this.stopDataFreeze({key:n,userId:o,type:s})}}).set(F.PLAYER_STATE_CHANGED,({track:t,state:e,reason:r,type:o})=>{if(!(!t.isRemote||!t.room||!this.hitTest(t.room)||o!==M.VIDEO)){if(e==="PLAYING"){let s=`${t.userId}_${t.streamType}`;this._isVideoPlayingEventFiredMap.set(s,!0)}r===M.MUTE?this.onVideoTrackMuted(t):r===M.UNMUTE&&this.onVideoTrackUnmuted(t)}}).set(F.HEARTBEAT_REPORT,this.onHearBeatReport),this._eventMap.forEach((t,e)=>V.on(e,t,this))}uninstallEvents(){this._eventMap.forEach((t,e)=>V.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),n=new el;s?s.durationItemList.push(n):this._dataFreezeMap.set(o,{userId:e,type:r,durationItemList:[n],isFreezing(){let a=this.durationItemList[this.durationItemList.length-1];return a&&a.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:n}=o;r.msg_video_status.forEach(a=>{a.uint32_video_stream_type===2&&n.hasVideo&&!n.videoMuted&&o.remoteVideoTrack.isSubscribed&&this.handleRenderFreeze({userId:s,fps:a.uint32_video_dec_fps,type:"main"}),a.uint32_video_stream_type===7&&n.hasAuxiliary&&o.remoteAuxiliaryTrack.isSubscribed&&this.handleRenderFreeze({userId:s,fps:a.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 n=s.getDuration();n>Qc?this._monitorFreezeData.set(t,{userId:e,type:r,duration:n}):o.durationItemList.pop()}getTotalDuration(t){return t.reduce((e,r)=>{let o=r.getDuration();return e+Math.min(o,5e3)},0)}handleRenderFreeze(o){return y(this,arguments,function*({userId:t,fps:e,type:r}){let s=`${t}_${r}`,n=this._renderFreezeMap.get(s);if(e<=2){let a=_e();n&&!n.isFreeze&&(n.freezeTimeline.push({startTime:a,endTime:0}),n.isFreeze=!0),n||this._renderFreezeMap.set(s,{userId:t,type:r,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=_e();let u=a.endTime-a.startTime;n.freezeTimeline.push(a),n.renderFreezeTotal+=Math.min(5e3,u)}}})}onPlayTrackStart({track:t}){if(!t.isRemote||!this.hitTest(t.room)||t.kind!==M.VIDEO||!t.isRemotePublished)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()<Qc&&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=_e(),n=e.freezeTimeline[e.freezeTimeline.length-1],a=s-n.startTime;r=e.renderFreezeTotal+Math.min(a,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()}},sT=Pp;var aT=ui(Si(),1);var tl=class{constructor(t,e,r,o,s=4/3){this.vbMode=t;this.faceDetectorHash=e;this.visionTaskRegistry=r;this.logger=o;l(this,"animationState");l(this,"originalAspect");l(this,"totalOffsetX",0);l(this,"totalOffsetY",0);l(this,"defaultScaleRatio",.1);l(this,"isRecovering",!1);l(this,"boundaryY",280);l(this,"lastActionTime",0);l(this,"restTime",400);this.animationState={current:null,target:null,animating:!1,debounceTimer:null,startTime:0,duration:3e3,debounceTime:150,movementThreshold:30,debounceThreshold:15},this.addEvent(this.vbMode,!!this.faceDetectorHash),this.originalAspect=s||4/3}addEvent(t,e,r){let s=[{key:570704,error:r!=null?r:e?void 0:11},{key:570705,error:r!=null?r:e?void 0:22}][t-1];s&&(e?X.addSuccessEvent({key:s.key}):X.addFailedEvent({key:s.key,error:s.error}))}actionCentering(t){let e=Date.now();if(this.animation(),!this.faceDetectorHash||e-this.lastActionTime<this.restTime||this.animationState.animating)return;let{videoWidth:r,videoHeight:o}=t;this.animationState.debounceThreshold=r/30,this.animationState.movementThreshold=r/20,this.boundaryY=o*.6;try{let s=this.visionTaskRegistry.getResult(this.faceDetectorHash);if(s.detections.length<=0){this.vbMode===1&&this.recoverOriginal(r,o);return}let n=s.detections[0].boundingBox,a=n.originX,u=n.originY,m=n.width,p=n.height;this.vbMode===1?this.dualStageCropping(r,o,a,u,m,p):this.vbMode===2&&this.movingPortrait(r,o,a,u,m,p)}catch(s){this.logger.error(s)}this.lastActionTime=e}calculateBoundary(t,e,r,o){let s,n;return t>e/2?(s=e-r-o,n=r-s):(s=r,n=0),{min:s,offset:n}}calculateTargetPosition(t,e,r,o,s,n,a=.4){let u=t+r/2,m=e+o/2,p,g,{min:T,offset:A}=this.calculateBoundary(u,s,t,r),{min:C,offset:D}=this.calculateBoundary(m,n,e,o);return p=2*T+r,g=2*C+o,p/g>this.originalAspect?(p=g*this.originalAspect,A=u-p/2):(g=p/this.originalAspect,D=m-g/2),r/s>a&&(A=0,D=0,p=s,g=n),A=Math.max(0,Math.min(A,s-p)),D=Math.max(0,Math.min(D,n-g)),{sx:A,sy:D,cropWidth:p,cropHeight:g,timestamp:Date.now()}}processFacePositionCrop(t,e,r){if(!this.animationState.current||!this.animationState.target){let a={sx:0,sy:0,cropWidth:e,cropHeight:r,timestamp:Date.now()};this.animationState.current=a,this.animationState.target=a;return}let o=this.positionDistance(this.animationState.target,t),s=this.positionDistance(this.animationState.current,t),n=this.animationState.current.cropWidth/e;o>this.animationState.debounceThreshold*n&&(clearTimeout(this.animationState.debounceTimer),this.animationState.animating=!1),!this.animationState.animating&&s>this.animationState.movementThreshold*n&&(this.animationState.target=t,this.animationState.debounceTimer=setTimeout(()=>{this.animationState.startTime=Date.now(),this.animationState.animating=!0},this.animationState.debounceTime))}processFacePositionPortrait(t){if(!this.animationState.current||!this.animationState.target){this.animationState.current=J({},t),this.animationState.target=J({},t);return}let e=this.positionDistance(this.animationState.current,t),r=this.positionDistance(this.animationState.target,t);e>this.animationState.debounceThreshold&&(clearTimeout(this.animationState.debounceTimer),this.animationState.animating=!1),!this.animationState.animating&&r>this.animationState.movementThreshold&&(this.animationState.current=t,this.animationState.debounceTimer=setTimeout(()=>{this.animationState.startTime=Date.now(),this.animationState.animating=!0},this.animationState.debounceTime))}animation(){if(!this.animationState.animating)return;let t=Date.now()-this.animationState.startTime,e=Math.min(t/this.animationState.duration,1),r=o=>o<.5?2*o*o:-1+(4-2*o)*o;if(this.animationState.current&&this.animationState.target){let o=(this.animationState.target.sx-this.animationState.current.sx)*r(e);this.animationState.current.sx+=o,this.totalOffsetX+=o;let s=(this.animationState.target.sy-this.animationState.current.sy)*r(e);if(this.animationState.current.sy+=s,this.totalOffsetY+=s,this.animationState.current.cropWidth+=(this.animationState.target.cropWidth-this.animationState.current.cropWidth)*r(e),this.animationState.current.cropHeight+=(this.animationState.target.cropHeight-this.animationState.current.cropHeight)*r(e),this.animationState.current.scaleRatio&&this.animationState.target.scaleRatio&&(this.animationState.current.scaleRatio+=(this.animationState.target.scaleRatio-this.animationState.current.scaleRatio)*r(e)),ke(this.animationState.current.scaleOffsetX)&&ke(this.animationState.target.scaleOffsetX)&&ke(this.animationState.current.scaleOffsetY)&&ke(this.animationState.target.scaleOffsetY)){let n=(this.animationState.target.scaleOffsetX-this.animationState.current.scaleOffsetX)*r(e);this.animationState.current.scaleOffsetX+=n;let a=(this.animationState.target.scaleOffsetY-this.animationState.current.scaleOffsetY)*r(e);this.animationState.current.scaleOffsetY+=a}}e>=1&&(this.animationState.animating=!1,this.animationState.current=this.animationState.target,this.isRecovering=!1)}positionDistance(t,e){return Math.sqrt(Xi(t.sx-e.sx,2)+Xi(t.sy-e.sy,2))}recoverOriginal(t,e){this.animationState.target={sx:0,sy:0,cropWidth:t,cropHeight:e,timestamp:Date.now()},this.animationState.animating=!0,this.animationState.startTime=Date.now(),this.isRecovering=!0}dualStageCropping(t,e,r,o,s,n,a=.3){if(this.isRecovering)return;let u=this.calculateTargetPosition(r,o,s,n,t,e);this.processFacePositionCrop(u,t,e),s*n/u.cropWidth/u.cropHeight>a&&this.recoverOriginal(t,e)}movingPortrait(t,e,r,o,s,n){var u,m,p,g,T,A,C,D,w,O,Y,ue;let a={sx:r+s/2+this.totalOffsetX,sy:o+n/2+this.totalOffsetY,cropWidth:t,cropHeight:e,scaleRatio:(m=(u=this.animationState.current)==null?void 0:u.scaleRatio)!=null?m:1,scaleOffsetX:(g=(p=this.animationState.current)==null?void 0:p.scaleOffsetX)!=null?g:0,scaleOffsetY:(A=(T=this.animationState.current)==null?void 0:T.scaleOffsetY)!=null?A:0,timestamp:Date.now()};this.animationState.target={sx:t/2,sy:o+n/2,cropWidth:t,cropHeight:e,scaleRatio:(D=(C=this.animationState.target)==null?void 0:C.scaleRatio)!=null?D:1,scaleOffsetX:(O=(w=this.animationState.target)==null?void 0:w.scaleOffsetX)!=null?O:0,scaleOffsetY:(ue=(Y=this.animationState.target)==null?void 0:Y.scaleOffsetY)!=null?ue:0,timestamp:Date.now()},this.animationState.animating||(this.animationState.target.scaleRatio=Math.sqrt(s*n/t/e/this.defaultScaleRatio),this.animationState.target.scaleOffsetX=-this.animationState.target.scaleRatio/2+.5,this.animationState.target.scaleOffsetY=-this.animationState.target.scaleRatio+1,(this.animationState.target.sy-this.animationState.target.scaleOffsetY*this.animationState.target.cropHeight)/this.animationState.target.scaleRatio<this.boundaryY&&(this.animationState.target.scaleOffsetY=(this.animationState.target.sy-this.boundaryY*this.animationState.target.scaleRatio)/this.animationState.target.cropHeight)),this.processFacePositionPortrait(a)}set aspectRatio(t){this.originalAspect=t}get current(){return this.animationState.current}get offset(){return{offsetX:this.totalOffsetX,offsetY:this.totalOffsetY}}get targetCrop(){return this.animationState.target}};var mA=`#version 300 es
|
|
102
|
+
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=>{FE[`${i}()`]={tips:`Call trtc.${i}`,color:"blue",class:"blue",textColor:"#fff"}});var IV=Object.keys(FE);var Yy=0,ju,cc=class cc{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()}${++Yy}`}),this.log.info("created")}getName(){return cc.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 y(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(e){return y(this,arguments,function*({visible:t}){t?(yield this.openDebugDiaLog(),this.addVideoProcessor()):(this.closeDebugDiaLog(),this.removeVideoProcessor())})}stop(){this.closeDebugDiaLog(),this.removeVideoProcessor()}destroy(){this.stop()}openDebugDiaLog(){return y(this,null,function*(){var t;if(!this.dialog)try{if(ju)yield ju;else{let e=new URLSearchParams(location.search).get("trtcDebugDialogPath")||((t=window.sessionStorage)==null?void 0:t.getItem("TRTC_DEBUG_DIALOG_PATH"))||`https://unpkg.com/${kE}@${at}/assets/debug-dialog.js`;ju=this._core.fileDownloader.loadScript(e),yield ju}this.dialog=new TRTCDebugDialog(this._core,this.log,this.dumpLocalVideoMap,this.dumpRemoteVideoMap),this._core.kvStatManager.addSuccessEvent({key:592705})}catch(e){this._core.kvStatManager.addFailedEvent({key:592705}),this.log.error("load debug dialog script failed: ",JSON.stringify(e))}})}closeDebugDiaLog(){this.dialog&&(this.dialog.closeDialog(),this.dialog=null)}addVideoProcessor(){this._core.room.videoManager.addEncodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.encodeVideo.bind(this):Sp,type:1}),this._core.room.videoManager.addDecodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.decodeVideo.bind(this):yp,type:1})}removeVideoProcessor(){this._core.room.videoManager.removeEncodeProcessor({type:1}),this._core.room.videoManager.removeDecodeProcessor({type:1})}encodeVideo({frame:t,mediaType:e}){return Sp({frame:t,onDump:()=>{if(!e)return;let r=e===2?"sub":"main",o=this.dumpLocalVideoMap[r];o&&(o.data.push(t.data.slice(0)),o.duration>0&&Date.now()-o.startTimestamp>o.duration*1e3&&o.onDumpEnd())}})}decodeVideo({frame:t,track:e}){return yp({frame:t,onDump:()=>{if(!e)return;let r=this.dumpRemoteVideoMap[`${e.userId}-${e.streamType}`];r&&(r.data.push(t.data.slice(0)),r.duration>0&&Date.now()-r.startTimestamp>r.duration*1e3&&r.onDumpEnd())}})}};l(cc,"Name","Debug"),l(cc,"autoStart",!0);var qu=cc;var $E=i=>{switch(i){case"webCodecs":return 504703;case"wasm":return 504704}throw new Error("decoder type not supported")},zu=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=be(e,le.INIT),this.stopOB=Rt(),this.startOB=Rt(),r.type==="auto"?this.type="webCodecs":this.type=r.type;let n=Rt(),a=u=>{let m=this.pipe(e);return n.next("STARTING"),e.log.info(`decoder type: ${this.type}`),Ae(m,ze(this.stopOB),Le(()=>{},p=>{e.log.error(p),o.addFailedEvent({key:$E(this.type),error:p}),u>4?this.startOB.error(p):this.startOB.next(u+1)})),Ae(m,Fr(1),Bh(Qa))};Ae(this.startOB,Ja(0),Eo(a),ze(this.stopOB),Le(()=>{e.player.setOutput(),n.next("STARTED")},u=>{n.next("FAILED")},()=>{o.addSuccessEvent({key:$E(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 Pi()(e=>y(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"}))}},Zy={type:"object"},dc=class dc{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 dc.Name}getGroup(t){return t.track.userId+t.track.streamType}getName(){return dc.Name}getValidateRule(t){return Zy}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 zu(this.core,r,t);return Ae(o.trackDoneOB,Fr(1),Le(()=>{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 zu(this.core,t.track,t))}}};l(dc,"Name","TRTCAudioDecoder");var uc=dc;var Ju=class{constructor(){l(this,"log");this.log=$.createLogger({id:"exp"})}call(t,e){return y(this,null,function*(){return Ge(this[t])?this[t](e):Promise.reject(new de({code:q.INVALID_PARAMETER,message:$e({key:Fe.API_NOT_EXIST,data:{name:t}})}))})}enableAudioFrameEvent(t){return y(this,null,function*(){let{trtcInstance:e,enable:r,userId:o,sampleRate:s=48e3,channelCount:n=1,port:a}=t,{audioManager:u}=e.room,{getPCMAbortCtrlMap:m,audioFrameEventConfigMap:p}=u;if(p.set(o,{enable:r,sampleRate:s,channelCount:n,port:a}),r)if(o==="*")e.room.remotePublishedUserMap.forEach(g=>{if(g.remoteAudioTrack.isAvailable){if(m.get(g.userId))return;let _=u.getPCM(A=>{e.emit(te.AUDIO_FRAME,A)},g.userId);m.set(g.userId,_)}});else{if(m.get(o))return;let g=u.getPCM(_=>{e.emit(te.AUDIO_FRAME,_)},o);m.set(o,g)}else if(o==="*")e.room.remotePublishedUserMap.forEach(g=>{if(g.remoteAudioTrack.isSubscribed){let{userId:_}=g,A=m.get(_);A==null||A.abort("disable"),m.delete(_)}});else{let g=m.get(o);g==null||g.abort("disable"),m.delete(o)}})}};ee([oE({name:"options",type:"object",required:!0,properties:{enable:{required:!0,type:"boolean"},userId:{required:!0,type:"string"},sampleRate:{type:"number",values:[8e3,16e3,32e3,44100,48e3]},channelCount:{type:"number",values:[1,2]},port:{type:"messageport"}}})],Ju.prototype,"enableAudioFrameEvent",1);var BE=new Ju;var HE=pi(bi(),1);var Ap=class extends HE.EventEmitter{constructor(){super();l(this,"states",{});l(this,"permissionChangeHandler");l(this,"log");this.log=$.createLogger({id:"pm"}),this.permissionChangeHandler=()=>{var e,r;this.emit("permission-state-change",{camera:(e=this.states.camera)==null?void 0:e.state,microphone:(r=this.states.microphone)==null?void 0:r.state})}}request(e){return y(this,null,function*(){if(this.log.info(`request ${e.join(", ")}`),e.length===0)return Promise.resolve();(yield navigator.mediaDevices.getUserMedia({video:e.includes("camera"),audio:e.includes("microphone")})).getTracks().forEach(o=>o.stop())})}get(e){return y(this,null,function*(){try{return this.states[e]||(this.states[e]=yield navigator.permissions.query({name:e}),this.states[e].addEventListener("change",this.permissionChangeHandler)),this.log.info(`get ${e} permission state: ${this.states[e].state}`),this.states[e].state}catch(r){return this.log.error(`get ${e} permission failed, error: ${r instanceof Error?r.message:r}`),null}})}destroy(){Object.values(this.states).forEach(e=>{e==null||e.removeEventListener("change",this.permissionChangeHandler)}),this.states={}}},lc=new Ap;var WE=0,mc=new Set,wt=null;bl(LE);an.checkStorage();var Ie=class Ie extends GE.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",$.createLogger({id:`t${++WE}`}));l(this,"_plugins",new Map);l(this,"_networkQuality",null);l(this,"_speakerId");l(this,"enterRoomParams");l(this,"_enableAutoSwitchWhenRecapturing",!0);this._room=new e(X({logger:this._log,frameWorkType:Ie.frameWorkType},r)),this._room.videoDecodeFallbackType=r.videoDecodeFallback,Qe(r.enableAutoSwitchWhenRecapturing)&&(this._enableAutoSwitchWhenRecapturing=r.enableAutoSwitchWhenRecapturing),this._log.info(`create() ${JSON.stringify(r,(o,s)=>o==="plugins"?s.map(n=>n.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(Bu,r.assetsPath),this._use(Fu,r.assetsPath),this._use(Wu,r.assetsPath),this._use(uc,r.assetsPath),this._use(qu),r.enableSEI&&xa&&this._use(Gu),this._room.on("audio-volume",o=>{var s,n;!o.find(a=>a.userId==="")&&this._localAudioTrack&&o.push({userId:"",volume:Math.floor(((s=this._localAudioTrack.getInternalAudioLevelAfter3A())!=null?s:this._localAudioTrack.getAudioLevel())*100),floatVolume:(n=this._localAudioTrack.getInternalAudioLevelAfter3A())!=null?n:this._localAudioTrack.getInternalAudioLevel()}),r.volumeType===1&&o.forEach(a=>{var m;let u=a.userId===""?this._localAudioTrack:(m=this.room.remotePublishedUserMap.get(a.userId))==null?void 0:m.remoteAudioTrack;u&&(a.volume=u.dbVolume)}),r.enableDbVolume&&o.forEach(a=>{var m;let u=a.userId===""?this._localAudioTrack:(m=this.room.remotePublishedUserMap.get(a.userId))==null?void 0:m.remoteAudioTrack;u&&(a.volume=u.dbVolume)}),this.emit(te.AUDIO_VOLUME,{result:o.sort((a,u)=>u.volume-a.volume)})}),this._room.videoManager.on("error",o=>{this._log.error(new oe({code:se.OPERATION_FAILED,extraCode:5504,message:o.message,originError:o}))}),this._listenEvents(),this._initActiveSpeaker(),ME(this,"trtc")}static create(e){}static _create(e,r){gE();let o=new Ie(e,r||{});return mc.add(o),o.__v_skip=!0,o}get room(){return this._room}_listenEvents(){bt(this,this._room).add("peer-join",e=>{let{userId:r}=e;this.emit(te.REMOTE_USER_ENTER,{userId:r})}).add("peer-leave",e=>{this.emit(te.REMOTE_USER_EXIT,{userId:e})}).add("banned",e=>{this._exitRoom().finally(()=>{this.emit(te.KICKED_OUT,{reason:e.reason})})}).add("error",e=>{this._exitRoom().finally(()=>{this.emit(te.ERROR,oe.convertFrom(e))})}).add("signal-connection-state-changed",e=>{this.emit(te.CONNECTION_STATE_CHANGED,e)}).add("network-quality",e=>{this._networkQuality=e;let r=ge(X({},e),{uplinkRTT:Math.min(e.uplinkRTT,Kn),downlinkRTT:Math.min(e.downlinkRTT,Kn)});this.emit(te.NETWORK_QUALITY,r)}).add("remote-published",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{bt(o,o).add("player-state-changed",s=>{let n=ge(X({},s),{userId:e.userId});o.kind===M.VIDEO&&(n.streamType=oi(o.streamType)),this.emit(o.kind===M.AUDIO?te.AUDIO_PLAY_STATE_CHANGED:te.VIDEO_PLAY_STATE_CHANGED,n)}).add("error",s=>{s.getCode()===q.PLAY_NOT_ALLOWED&&this.emit(te.AUTOPLAY_FAILED,{userId:o.userId,mediaType:o.strMediaType,resume:()=>o.player.resume()})})})}).add("remote-unpublished",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{ut(o)})}).add("remote-publish-state-changed",({prevMuteState:e,muteState:r})=>{let{userId:o}=r,s=e.audioAvailable,n=e.videoAvailable,{audioAvailable:a,videoAvailable:u}=r;a||this._remoteAudioConfigMap.delete(o),u||this._removeRemoteVideoConfig(o,"main"),r.hasAuxiliary||this._removeRemoteVideoConfig(o,"sub"),n!==u&&(u?this._onVideoAvailable({userId:o,streamType:"main"}):this._onVideoUnavailable({userId:o,streamType:"main"}),this.emit(u?te.REMOTE_VIDEO_AVAILABLE:te.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"main"})),s!==a&&(a?this._onAudioAvailable({userId:o}):this._onAudioUnavailable({userId:o,muteState:r}),this.emit(a?te.REMOTE_AUDIO_AVAILABLE:te.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?te.REMOTE_VIDEO_AVAILABLE:te.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"sub"}))}).add("sei-message",e=>{this.emit(te.SEI_MESSAGE,ge(X({},e),{streamType:oi(e.streamType)}))}).add("firewall-restriction",()=>{this.emit(te.ERROR,new oe({code:se.OPERATION_FAILED,extraCode:5501}))}).add("heartbeat-report",e=>{var s,n,a,u,m,p,g;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)||((n=this._networkQuality)==null?void 0:n.uplinkRTT)||((a=this._networkQuality)==null?void 0:a.downlinkRTT)||0,Kn),upLoss:((u=this._networkQuality)==null?void 0:u.uplinkLoss)||0,downLoss:((m=this._networkQuality)==null?void 0:m.downlinkLoss)||0,bytesSent:e.bytes_sent||0,bytesReceived:e.bytes_received||0,localStatistics:{audio:{bitrate:(((p=e.msg_up_stream_info.msg_audio_status)==null?void 0:p.uint32_audio_codec_bitrate)||0)/1e3,audioLevel:(((g=e.msg_up_stream_info.msg_audio_status)==null?void 0:g.uint32_audio_level)||0)/Ci},video:e.msg_up_stream_info.msg_video_status.filter(_=>r[_.uint32_video_stream_type]).map(_=>({bitrate:(_.uint32_video_codec_bitrate||0)/1e3,width:_.uint32_video_width,height:_.uint32_video_height,frameRate:_.uint32_video_enc_fps,videoType:r[_.uint32_video_stream_type]}))},remoteStatistics:e.msg_down_stream_info.map(_=>({userId:_.msg_user_info.str_identifier,audio:{bitrate:(_.msg_audio_status.uint32_audio_codec_bitrate||0)/1e3,audioLevel:(_.msg_audio_status.uint32_audio_level||0)/Ci,point2pointDelay:(_.msg_audio_status.uint32_audio_p2p_delay||0)+(_.msg_audio_status.uint32_audio_cache_ms||0),jitterBufferDelay:_.msg_audio_status.uint32_audio_cache_ms||0},video:_.msg_video_status.map(A=>({bitrate:(A.uint32_video_codec_bitrate||0)/1e3,width:A.uint32_video_width,height:A.uint32_video_height,frameRate:A.uint32_video_dec_fps,videoType:r[A.uint32_video_stream_type],point2pointDelay:(A.uint32_video_p2p_delay||0)+(A.uint32_video_cache_ms||0),jitterBufferDelay:A.uint32_video_cache_ms||0,codec:A.uint32_video_codec}))}))};this.emit(te.STATISTICS,o)}).add("custom-message",e=>{this.emit(te.CUSTOM_MESSAGE,e)}).add("layerData",e=>this.emit(te.LAYER_DATA,e)).add("first-video-frame",e=>{this.emit(te.FIRST_VIDEO_FRAME,ge(X({},e),{streamType:oi(e.streamType)}))}).add("audio-frame",e=>{this.emit(te.AUDIO_FRAME,e)}),bt(this,rt).add("audioInputAdded",e=>{this.emit(te.DEVICE_CHANGED,{type:"microphone",action:"add",device:e})}).add("audioInputRemoved",e=>{this.emit(te.DEVICE_CHANGED,{type:"microphone",action:"remove",device:e})}).add("videoInputAdded",e=>{this.emit(te.DEVICE_CHANGED,{type:"camera",action:"add",device:e})}).add("videoInputRemoved",e=>{this.emit(te.DEVICE_CHANGED,{type:"camera",action:"remove",device:e})}).add("audioOutputAdded",e=>y(this,null,function*(){if(this.emit(te.DEVICE_CHANGED,{type:"speaker",action:"add",device:e}),wt&&wt.deviceId===Zn){let r=(yield ho()).find(o=>o.deviceId===Zn);r&&wt.groupId!==r.groupId&&(wt=r,this.emit(te.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))}})).add("audioOutputRemoved",e=>y(this,null,function*(){this.emit(te.DEVICE_CHANGED,{type:"speaker",action:"remove",device:e});let r=(yield ho())[0];if(!r||!wt||wt.groupId===r.groupId)return;let o=wt.deviceId===e.deviceId,s=wt.deviceId===Zn&&wt.deviceId===r.deviceId;(o||s)&&(wt=r,this.emit(te.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))})),bt(this,lc).add("permission-state-change",e=>{this.emit(te.PERMISSION_STATE_CHANGE,e)})}getNetworkTime(){return fi()}use(e){let r,o;return"plugin"in e?(r=e.plugin,o=e.assetsPath):r=e,r.Name==="Chorus"&&(this.room.enableChorus=!0),this._use(r,o)}_use(e,r){let o=this._plugins.get(e.Name);if(o)return this._log.warn("duplicate install plugin",e.Name),o;let s=new e(wE.call(this,{TRTC:Ie,room:this._room,assetsPath:r,errorModule:{RtcError:oe,ErrorCode:se,CoreErrorCode:q,ErrorCodeDictionary:Tr}}));return this._plugins.set(e.Name,s),s.__v_skip=!0,e.autoStart&&this.startPlugin(e.Name),s}enterRoom(e){return y(this,null,function*(){var u,m;this.enterRoomParams=e;let{scene:r="rtc",enableAutoPlayDialog:o=!0,autoReceiveAudio:s=!0,autoReceiveVideo:n=!1}=e;e.proxy&&(this._room.setProxyServer(e.proxy),!Ne(e.proxy)&&e.proxy.turnServer&&((m=(u=this._room).setTurnServer)==null||m.call(u,e.proxy.turnServer,e.proxy.iceTransportPolicy))),this._room.enableAutoPlayDialog=o,this._room.autoReceiveAudio=s,this._room.autoReceiveVideo=n,Qe(e.preferHW)&&(this._room.preferHW=e.preferHW),e.playoutDelay&&(this._room.playoutDelay=e.playoutDelay),e.jitterBufferDelay&&(this._room.jitterBufferDelay=e.jitterBufferDelay);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,useH265:e.useH265,keepAlive:e.keepAlive};e.strRoomId&&!e.roomId?this._room.useStringRoomId=!0:this._room.useStringRoomId=!1,yield this._room.join(a,r,Ie.frameWorkType),this._checkTrackToPublish(),Ep.start()})}exitRoom(){return y(this,null,function*(){return yield this._exitRoom()})}switchRoom(e){return y(this,null,function*(){if(this.room.isSwitchRoomSupported())try{yield this._room.switchRoom(e)}catch(r){if(r instanceof zn&&(r.code===q.API_CALL_TIMEOUT||r.code===q.SWITCH_ROOM_FAILED))this._log.warn(`switchRoom ${r.code===q.API_CALL_TIMEOUT?"timeout":"failed"}, fallback to exitRoom() and enterRoom()`),yield this._rejoinRoom(e);else throw r}else yield this._rejoinRoom(e)})}_rejoinRoom(e){return y(this,null,function*(){yield this.exitRoom();let r=X(X({},this.enterRoomParams),e);yield this.enterRoom(r)})}switchRole(e,r){return y(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(){ut(this),this.removeAllListeners(),this._room.destroy(),mc.delete(this),mc.size===0&&Ep.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)}),this._plugins.clear(),V.off("102",this._onLocalTrackCaptured,this)}startLocalAudio(){return y(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,n=new ti(this._room.audioManager),a={},u={muted:!0};s&&(x(s.microphoneId)?x(s.audioTrack)||(a.customSource=s.audioTrack):a.deviceId=s.microphoneId,s&&ke(s.captureVolume)&&n.setCaptureVolume(s.captureVolume),x(s.profile)||(Ne(s.profile)?$c[s.profile]&&n.setProfile($c[s.profile]):n.setProfile(s.profile)),ke(s.earMonitorVolume)&&(u.muted=!(s.earMonitorVolume>0),u.volume=s.earMonitorVolume),x(s.echoCancellation)||(n.profile.echoCancellation=s.echoCancellation),x(s.noiseSuppression)||(n.profile.noiseSuppression=s.noiseSuppression),x(s.autoGainControl)||(n.profile.autoGainControl=s.autoGainControl),Qe(this._enableAutoSwitchWhenRecapturing)&&(n.enableAutoSwitchWhenRecapturing=this._enableAutoSwitchWhenRecapturing)),n.on("5",m=>{this.emit(te.ERROR,new oe({code:se.DEVICE_ERROR,extraCode:5309,messageParams:{error:m}}))}),n.on("2",m=>{this.emit(te.DEVICE_CHANGED,{type:"microphone",action:"active",device:m})}),n.on("4",m=>{let p;m.error&&(p=oe.convertFrom(m.error)),this.emit(te.PUBLISH_STATE_CHANGED,ge(X({},m),{error:p}))}),n.on("6",()=>{this.emit(te.ERROR,new oe({code:se.OPERATION_FAILED,extraCode:5506,message:"audio encode failed"}))}),this._listenOutputTrackChanged(n),this._speakerId&&n.setAudioOutput(this._speakerId),yield n.capture(a),x(o)||n.setMute(o),bt(n,n).add("player-state-changed",m=>{this.emit(te.AUDIO_PLAY_STATE_CHANGED,ge(X({},m),{userId:""}))}),r&&this._room.isJoined&&this._room.publish(n).catch(()=>{}),this._localAudioTrack=n,this._localAudioConfig=ge(X({},e),{publish:r}),yield this._updateAudioPlayOption({playOption:u,track:n}),V.emit("113",{userId:"",room:this.room})})}updateLocalAudio(e){return y(this,null,function*(){if(!this._localAudioTrack||!this._localAudioConfig)return;let{publish:r,mute:o,option:s}=e,n={};s&&(s.microphoneId?yield this._localAudioTrack.switchDevice(s.microphoneId):x(s.audioTrack)||(yield this._localAudioTrack.setInputMediaStreamTrack(s.audioTrack)),x(s.captureVolume)||this._localAudioTrack.setCaptureVolume(s.captureVolume),x(s.earMonitorVolume)||(n.muted=!(s.earMonitorVolume>0),n.volume=s.earMonitorVolume),yield this._localAudioTrack.update3A(s)),this._room.isJoined&&!x(r)&&(r&&!this._localAudioConfig.publish&&this._room.publish(this._localAudioTrack).catch(()=>{}),this._localAudioConfig.publish&&!r&&this._room.unpublish(this._localAudioTrack).catch(()=>{})),x(o)||this._localAudioTrack.setMute(o),yield this._updateAudioPlayOption({playOption:n,track:this._localAudioTrack,prevConfig:this._localAudioConfig}),Nr(this._localAudioConfig,e)})}stopLocalAudio(){return y(this,null,function*(){this._localAudioTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localAudioTrack).catch(()=>{})),V.emit("114",{userId:"",room:this.room}),this._localAudioTrack.stop(),this._localAudioTrack.close(),this._room.audioManager.removeInput(this._localAudioTrack),ut(this._localAudioTrack),this._localAudioTrack=null,this._localAudioConfig=null)})}startLocalVideo(){return y(this,arguments,function*(e={publish:!0,view:null,capture:!0}){var g;if(this._localVideoTrack){this._log.warn("local video is already started");return}let{view:r,publish:o=!0,capture:s=!0,mute:n,option:a}=e,u=new ar(this._room.videoManager),m={},p={};a&&(Qe(a.avoidCropping)&&(u.avoidCropping=a.avoidCropping),a.cameraId?m.deviceId=a.cameraId:x(a.useFrontCamera)?x(a.videoTrack)||(m.customSource=a.videoTrack):m.facingMode=a.useFrontCamera?M.FACING_MODE_USER:M.FACING_MODE_ENVIRONMENT,x(a.retryWhenExactFailed)||(m.retryWhenExactFailed=a.retryWhenExactFailed),a.qosPreference&&(m.contentHint=sc(a.qosPreference)),x(a.profile)||(Ne(a.profile)?vr[a.profile]&&u.setProfile(vr[a.profile]):u.setProfile(a.profile)),x(a.fillMode)||(p.objectFit=a.fillMode),x(a.mirror)||(p.mirror=a.mirror),x(a.small)||(x(a.smallMode)||(this._room.smallMode=a.smallMode),Qe(a.small)&&a.small===!1?u.stopSmall():u.updateSmallConfig(vn(a.small,!0))),x(a.rotation)||u.setRotation(a.rotation),Qe(this._enableAutoSwitchWhenRecapturing)&&(u.enableAutoSwitchWhenRecapturing=this._enableAutoSwitchWhenRecapturing)),u.once("first-video-frame",_=>{this.emit(te.FIRST_VIDEO_FRAME,ge(X({},_),{streamType:oi(_.streamType)}))}),u.on("5",_=>{this.emit(te.ERROR,new oe({code:se.DEVICE_ERROR,extraCode:5308,messageParams:{error:_}}))}),u.on("2",_=>{this.emit(te.DEVICE_CHANGED,{type:"camera",action:"active",device:_})}),u.on("4",_=>{let A;_.error&&(A=oe.convertFrom(_.error)),this.emit(te.PUBLISH_STATE_CHANGED,ge(X({},_),{error:A}))}),u.on("6",()=>{this.emit(te.ERROR,new oe({code:se.OPERATION_FAILED,extraCode:5505,message:"video encode failed"}))}),this._listenOutputTrackChanged(u),s?yield u.capture(m):(g=u.manager)==null||g.changeInput(u),x(n)||(yield u.setMute(n)),bt(u,u).add("player-state-changed",_=>{this.emit(te.VIDEO_PLAY_STATE_CHANGED,ge(X({},_),{userId:"",streamType:"main"}))}).add("video-size-changed",_=>{this.emit(te.VIDEO_SIZE_CHANGED,ge(X({},_),{streamType:oi(_.streamType)}))}),o&&this._room.isJoined&&this._room.publish(u).catch(()=>{}),this._localVideoTrack=u,this._localVideoConfig=ge(X({},e),{view:r,publish:o,capture:s}),yield this._updateVideoPlayOption({view:r,playOption:p,track:u})})}updateLocalVideo(e){return y(this,null,function*(){var m,p,g;if(!this._localVideoTrack||!this._localVideoConfig)return;let{view:r,publish:o,mute:s,capture:n,option:a}=e,u={};if(this._localVideoConfig.capture)n!==!1?a!=null&&a.cameraId?yield this._localVideoTrack.switchDevice(a==null?void 0:a.cameraId):x(a==null?void 0:a.useFrontCamera)?x(a==null?void 0:a.videoTrack)||(yield this._localVideoTrack.setInputMediaStreamTrack(a==null?void 0:a.videoTrack)):yield this._localVideoTrack.switchDevice(a!=null&&a.useFrontCamera?M.FACING_MODE_USER:M.FACING_MODE_ENVIRONMENT):this._localVideoTrack.stopCapture();else if(n){let _={};_.deviceId=(a==null?void 0:a.cameraId)||((m=this._localVideoConfig.option)==null?void 0:m.cameraId),_.facingMode=a!=null&&a.useFrontCamera||(p=this._localVideoConfig.option)!=null&&p.useFrontCamera?M.FACING_MODE_USER:M.FACING_MODE_ENVIRONMENT,_.customSource=(a==null?void 0:a.videoTrack)||((g=this._localVideoConfig.option)==null?void 0:g.videoTrack),yield this._localVideoTrack.capture(_)}a&&(x(a.profile)||(Ne(a.profile)?vr[a.profile]&&this._localVideoTrack.setProfile(vr[a.profile]):this._localVideoTrack.setProfile(a.profile),(!a.cameraId||!this._localVideoTrack.isNeedToSwitchDevice(a.cameraId))&&x(a.useFrontCamera)&&(yield this._localVideoTrack.applyProfile())),x(a.fillMode)||(u.objectFit=a.fillMode),x(a.mirror)||(u.mirror=a.mirror),x(a.rotation)||this._localVideoTrack.setRotation(a.rotation),a.qosPreference&&this._localVideoTrack.mediaTrack&&this._localVideoTrack.setContentHint(sc(a.qosPreference)),x(a.small)||(Qe(a.small)&&!a.small?this._localVideoTrack.stopSmall():this._localVideoTrack.updateSmallConfig(vn(a.small,!0)))),this._room.isJoined&&x(o)&&this._localVideoConfig.publish&&n&&!this._localVideoConfig.capture&&this._room.publish(this._localVideoTrack).catch(()=>{}),this._room.isJoined&&((o!=null?o:this._localVideoConfig.publish)?this._room.publish(this._localVideoTrack).catch(()=>{}):this._room.unpublish(this._localVideoTrack).catch(()=>{})),x(s)||(yield this._localVideoTrack.setMute(s)),yield this._updateVideoPlayOption({view:r,playOption:u,track:this._localVideoTrack,prevConfig:this._localVideoConfig}),Nr(this._localVideoConfig,e)})}stopLocalVideo(){return y(this,null,function*(){this._localVideoTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localVideoTrack).catch(()=>{})),this._localVideoTrack.stop(),this._localVideoTrack.close(),ut(this._localVideoTrack),this._localVideoTrack=null,this._localVideoConfig=null)})}startScreenShare(){return y(this,arguments,function*(e={publish:!0,view:null}){var _,A;if(this._localScreenTrack){this._log.warn("screen share is already started");return}let{view:r=null,publish:o=!0,muteSystemAudio:s,option:n}=e,a=new ri(this._room.videoManager);a.on("4",C=>{let N;C.error&&(N=oe.convertFrom(C.error)),this.emit(te.PUBLISH_STATE_CHANGED,ge(X({},C),{error:N}))}),a.once("first-video-frame",C=>{this.emit(te.FIRST_VIDEO_FRAME,ge(X({},C),{streamType:oi(C.streamType)}))}),this._listenOutputTrackChanged(a),e.streamType==="main"&&(a.mediaType=4);let u=null,m={},p={};n&&(x(n.profile)||(Ne(n.profile)?Bc[n.profile]&&a.setProfile(Bc[n.profile]):a.setProfile(n.profile)),n.systemAudio&&(m.systemAudio=!0,m.echoCancellation=n.echoCancellation,m.noiseSuppression=n.noiseSuppression,m.autoGainControl=n.autoGainControl),x(n.fillMode)||(p.objectFit=n.fillMode),n.videoTrack&&(m.videoTrack=n.videoTrack),n.audioTrack&&(m.audioTrack=n.audioTrack),n.captureElement&&(m.captureElement=n.captureElement),n.preferDisplaySurface&&(m.preferDisplaySurface=n.preferDisplaySurface),n.qosPreference&&(m.contentHint=sc(n.qosPreference)));let g=yield a.capture(m);if(a.mediaTrack.addEventListener(M.ENDED,()=>{this._stopScreenShare(),this.emit(te.SCREEN_SHARE_STOPPED)}),g.getAudioTracks()[0]){u=new Es(this._room.audioManager);let C=g.getAudioTracks()[0];(_=e.option)!=null&&_.systemAudio&&!((A=e.option)!=null&&A.audioTrack)&&(u.sourceTrack=C),yield u.setInputMediaStreamTrack(C),Qe(s)&&u.mediaTrack&&(u.mediaTrack.enabled=!s),this._speakerId&&u.setAudioOutput(this._speakerId)}if(bt(a,a).add("player-state-changed",C=>{this.emit(te.VIDEO_PLAY_STATE_CHANGED,ge(X({},C),{userId:"",streamType:"sub"}))}),o&&this._room.isJoined){let C=[a];u&&(C.push(u),this._checkScreenAudioEchoCancellation(a,u)),this._room.publish(...C).catch(()=>{})}this._localScreenTrack=a,this._localScreenAudioTrack=u,this._localScreenConfig=ge(X({},e),{view:r,publish:o}),yield this._updateVideoPlayOption({view:r,playOption:p,track:a})})}updateScreenShare(e){return y(this,null,function*(){var u;if(!this._localScreenTrack||!this._localScreenConfig)return;let{view:r,publish:o,muteSystemAudio:s,option:n}=e,a={};if(n&&(x(n.fillMode)||(a.objectFit=n.fillMode),n.qosPreference)){let m=sc(n.qosPreference);this._localScreenTrack.setContentHint(m)}if(this._room.isJoined&&!x(o)){if(o&&!this._localScreenConfig.publish){let m=[this._localScreenTrack];this._localScreenAudioTrack&&m.push(this._localScreenAudioTrack),this._room.publish(...m).catch(()=>{})}if(this._localScreenConfig.publish&&!o){let m=[this._localScreenTrack];this._localScreenAudioTrack&&m.push(this._localScreenAudioTrack),this._room.unpublish(...m).catch(()=>{})}}(u=this._localScreenAudioTrack)!=null&&u.mediaTrack&&Qe(s)&&(this._localScreenAudioTrack.mediaTrack.enabled=!s),yield this._updateVideoPlayOption({view:r,playOption:a,track:this._localScreenTrack,prevConfig:this._localScreenConfig}),Nr(this._localScreenConfig,e)})}stopScreenShare(){return y(this,null,function*(){return yield this._stopScreenShare()})}startRemoteVideo(e){return y(this,null,function*(){let{view:r,userId:o,streamType:s,option:n}=e,a=`${o}_${s}`;if(this._remoteVideoConfigMap.has(a)){this._log.warn(`remote video has already started. userId:${o}, streamType:${s}`);return}let u=this._room.remotePublishedUserMap.get(o);if(!u)return;let m={},p=s==="main"?u.remoteVideoTrack:u.remoteAuxiliaryTrack;p.on("decode-failed",g=>{this.emit(te.ERROR,new oe({code:se.OPERATION_FAILED,extraCode:5507,message:"video decode failed"}))}),p.on("video-size-changed",g=>{this.emit(te.VIDEO_SIZE_CHANGED,ge(X({},g),{streamType:oi(g.streamType)}))}),this._listenOutputTrackChanged(p),n&&(x(n.fillMode)||(m.objectFit=n.fillMode),x(n.mirror)||(m.mirror=n.mirror),x(n.poster)||(m.poster=n.poster),m.canvasRender=n.canvasRender,s==="main"&&!x(n.small)&&(!u.remoteVideoTrack.isSubscribing&&!u.remoteVideoTrack.isSubscribed&&u.remoteVideoTrack.setMediaType(n.small?8:4),this._room.changeType(n.small,p.user))),yield this._room.subscribe(p),yield this._enableVideoDecodeFallback(p,s),yield this._updateVideoPlayOption({view:r,playOption:m,track:p}),this._emitTrackEvent(p),this._remoteVideoConfigMap.set(a,{config:e}),n&&!x(n.receiveWhenViewVisible)&&this._observeView({remoteTrack:p,view:r,receiveWhenViewVisible:n.receiveWhenViewVisible,viewRoot:n==null?void 0:n.viewRoot})})}updateRemoteVideo(e){return y(this,null,function*(){var D,O;let{view:r,userId:o,streamType:s,option:n}=e,a=`${o}_${s}`,u=this._remoteVideoConfigMap.get(a);if(!u||!this._room.remotePublishedUserMap.has(o))return;let m={};n&&(x(n.fillMode)||(m.objectFit=n.fillMode),x(n.mirror)||(m.mirror=n.mirror));let p=null,g=this._room.remotePublishedUserMap.get(o);if(s==="main"&&(g!=null&&g.muteState.hasVideo)&&(p=g.remoteVideoTrack),s==="sub"&&(g!=null&&g.muteState.hasAuxiliary)&&(p=g.remoteAuxiliaryTrack),!p)return;let{config:_}=u;s==="main"&&n&&!x(n.small)&&this._room.changeType(n.small,p.user),yield this._updateVideoPlayOption({view:r,playOption:m,track:p,prevConfig:_}),Nr(_,e);let A=x(n==null?void 0:n.receiveWhenViewVisible)?(D=_.option)==null?void 0:D.receiveWhenViewVisible:n.receiveWhenViewVisible,C=x(r)?_.view:r,N=x(n==null?void 0:n.viewRoot)?(O=_.option)==null?void 0:O.viewRoot:n.viewRoot;this._observeView({remoteTrack:p,view:C,receiveWhenViewVisible:A,viewRoot:N})})}stopRemoteVideo(e){return y(this,null,function*(){return this._stopRemoteVideo(e)})}_stopRemoteVideo(e,r=!0){return y(this,null,function*(){let o=[],s=this._room.remotePublishedUserMap.get(e.userId);if(s){let{muteState:n,remoteVideoTrack:a,remoteAuxiliaryTrack:u}=s;e.streamType==="main"&&(a.stop(),n.hasVideo&&o.push(a)),e.streamType==="sub"&&(u.stop(),n.hasAuxiliary&&o.push(u))}for(let n of o)r&&(yield this._room.unsubscribe(n),this._mediaTrackMap.delete(n.outMediaTrack));this._removeRemoteVideoConfig(e.userId,e.streamType)})}_removeRemoteVideoConfig(e,r){let o=`${e}_${r}`,s=this._remoteVideoConfigMap.get(o);s&&s.observer&&s.observer.disconnect(),this._remoteVideoConfigMap.delete(o)}muteRemoteAudio(e,r){return y(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 o.code!==se.OPERATION_ABORT&&this._remoteAudioMuteMap.delete(e),o}})}setRemoteAudioVolume(e,r){if(e==="*"){this._remoteAudioVolumeMap.set("*",r),this._remoteAudioVolumeMap.forEach((s,n)=>this._remoteAudioVolumeMap.set(n,r));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 y(this,null,function*(){return e.start(r)})}updatePlugin(e,r){return y(this,null,function*(){return e.update(r)})}stopPlugin(e,r){return y(this,null,function*(){return e.stop(r)})}enableAudioVolumeEvaluation(e=2e3,r=!1){this._room.enableAudioVolumeEvaluation(e,r)}on(e,r,o){if(this.listeners(e).includes(r))return this;if(this._log.debug("on",e),super.on(e,r,o),this._eventListened.add(e),this.listeners(te.AUDIO_FRAME).length>0){let{audioFrameEventConfigMap:s}=this.room.audioManager;s.get("")||s.set("",{enable:!0}),this._localAudioTrack&&this.room.audioManager.handleLocalTrackStarted({userId:"",room:this.room})}return this}emit(e,...r){try{CE.has(e)&&this._log.debug(`emit ${e} ${JSON.stringify(r)}`)}catch(o){}return super.emit(e,...r)}off(e,r,o){if(this._log.debug("off",e),e==="*"?(this._eventListened.clear(),this.removeAllListeners()):super.off(e,r,o),(e===Ie.EVENT.AUDIO_FRAME||e==="*")&&this.listeners(Ie.EVENT.AUDIO_FRAME).length===0){let{getPCMAbortCtrlMap:s}=this.room.audioManager;s.forEach(n=>{n==null||n.abort("off")}),s.clear()}return this}getAudioTrack(e={userId:"",streamType:"main"}){let r,o=null,s="main",n=!1;if(Ne(e)?r=e:(r=e.userId,n=e.processed===!0,e.streamType&&(s=e.streamType)),r){let a=this._room.remotePublishedUserMap.get(r);a&&(o=a.remoteAudioTrack)}else o=s==="sub"?this._localScreenAudioTrack:this._localAudioTrack;return o?n&&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,n=null;if(r==="")o==="main"&&this._localVideoTrack&&(n=this._localVideoTrack),o==="sub"&&this._localScreenTrack&&(n=this._localScreenTrack);else{let a=this._room.remotePublishedUserMap.get(r);a&&(n=o==="main"?a.remoteVideoTrack:a.remoteAuxiliaryTrack)}return n?s&&n.outMediaTrack&&n.outMediaTrack!==n.mediaTrack?n.outMediaTrack.clone():n.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&&s.muteState.hasVideo))return s.remoteVideoTrack.getVideoFrame();if(o==="sub"&&(s!=null&&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 y(this,null,function*(){(yield ho()).forEach(o=>{o.deviceId===e&&(this._setCurrentSpeaker(e),this.emit(te.DEVICE_CHANGED,{type:"speaker",action:"active",device:o}),wt=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 y(this,null,function*(){var a;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={},n=o.remoteAudioTrack;n.on("decode-failed",u=>{this.emit(te.ERROR,new oe({code:se.OPERATION_FAILED,extraCode:5506,message:"audio decode failed"}))}),this._listenOutputTrackChanged(n),this._speakerId&&n.setAudioOutput(this._speakerId);try{let u=(a=this._remoteAudioVolumeMap.get(r))!=null?a:this._remoteAudioVolumeMap.get("*"),m=ke(u)?u:100;s.volume=m,this._remoteAudioConfigMap.set(r,e),yield this._room.subscribe(n),Ae(be(n,"decode-failed"),ze(be(n,le.INIT)),Le(()=>{this.startPlugin(uc.Name,{track:n,type:"auto",config:{codec:"opus",sampleRate:48e3,numberOfChannels:1}})})),yield this._updateAudioPlayOption({playOption:s,track:n}),V.emit("115",{userId:r,room:this.room}),n.outMediaTrack&&this.room.audioManager.updateAudioReference({type:"add",audioReference:n.outMediaTrack,refId:`ra-${r}`})}catch(u){throw this._remoteAudioConfigMap.delete(r),u}this._emitTrackEvent(n)})}_stopRemoteAudio(e,r=!0){return y(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.delete(o.remoteAudioTrack.outMediaTrack)),this._remoteAudioConfigMap.delete(`${e.userId}`),V.emit("116",{userId:e.userId,room:this.room}),this.room.audioManager.updateAudioReference({type:"remove",refId:`ra-${e.userId}`})})}_enableVideoDecodeFallback(e,r){let o=this._room.videoDecodeFallbackType;if(!o||!this._plugins.has("TRTCVideoDecoder"))return;e.log.debug("remote video will fall back when decode failed",e.id);let s;Ae(be(e,"decode-failed"),ze(be(e,le.INIT)),Ya(()=>{this._room.downlinkVideoCodec!=="h265"&&this.startPlugin("TRTCVideoDecoder",{type:"auto",renderer:"videoFrame",track:e,config:{codec:"avc1.420028"},fallback:o})}),ki(be(e,"decode-downgrade-state-changed")),Le(n=>{s=n.state,this.emit(te.VIDEO_DECODE_DOWNGRADE_STATE_CHANGED,ge(X({},n),{streamType:r,userId:e.userId}))},n=>{e.log.error("fallback",n)},()=>{s==="STARTED"&&e.log.info("fallback complete")}))}_updateVideoPlayOption(n){return y(this,arguments,function*({view:e,playOption:r,track:o,prevConfig:s}){if(o.setMirror(r.mirror),x(e)&&s&&s.view&&!Ws(r)){let a=js(s.view);a.length>0&&(yield o.play(a,r))}if(!x(e)){let a=js(e);a.length>0?yield o.play(a,r):o.stop()}})}_updateAudioPlayOption(s){return y(this,arguments,function*({playOption:e={},track:r,prevConfig:o}){if(!r.isPlayCalled)try{yield r.play(null,e)}catch(n){}if(x(e.muted)||r.setPlayerMute(e.muted),x(e.volume)||r.setAudioVolume(e.volume/100),r instanceof ti&&r.mediaTrack){let n=e.muted===!1&&!x(e.volume)&&e.volume>0?"add":"remove";this.room.audioManager.updateAudioReference({type:n,audioReference:r.mediaTrack,refId:"em"})}else if(r instanceof Li){let n=e.muted?0:e.volume;if(x(n))return;this.room.audioManager.updateAudioReference({type:"updateVolume",refId:`ra-${r.userId}`,volume:e.volume})}})}_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(te.TRACK,{userId:o,streamType:oi(e.streamType),track:e.outMediaTrack,sourceTrack:e.mediaTrack})))}_checkTrackToPublish(){var r,o,s;let e=[];if((r=this._localAudioConfig)!=null&&r.publish&&this._localAudioTrack&&e.push(this._localAudioTrack),(o=this._localVideoConfig)!=null&&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),this._checkScreenAudioEchoCancellation(this._localScreenTrack,this._localScreenAudioTrack)),e.length!==0)return this._room.publish(...e).catch(()=>{})}_observeView({remoteTrack:e,view:r,receiveWhenViewVisible:o=!1,viewRoot:s}){if(x(r))return;let n=this._remoteVideoConfigMap.get(`${e.userId}_${oi(e.streamType)}`);if(!n)return;let a=n.observer||void 0;if(r===null||st(r)&&r.length===0||!o){a==null||a.disconnect(),e.isSubscribed||this._room.subscribe(e).catch(()=>{});return}let m=n.visibleViewMap||new Map,p=-1;(!a||a.root!==s)&&(a==null||a.disconnect(),m.clear(),a=new IntersectionObserver(_=>{_.forEach(A=>{m.set(A.target,A.isIntersecting),e.log.info(`view ${A.target.id} is${A.isIntersecting?"":" not"} visible`)}),clearTimeout(p),p=window.setTimeout(()=>{[...m.values()].find(C=>C)?e.isSubscribed||this._room.subscribe(e).catch(()=>{}):e.isSubscribed&&this._room.unsubscribe(e).catch(()=>{})},200)},{root:s}));let g=new Set(js(r));m.forEach((_,A)=>{g.has(A)||(a.unobserve(A),m.delete(A))}),g.forEach(_=>{m.set(_,!0),a.observe(_)}),a.takeRecords().forEach(_=>{m.set(_.target,_.isIntersecting)}),n.visibleViewMap=m,n.observer=a}_exitRoom(){return y(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(),OE(this),this._room.remotePublishedUserMap.forEach(e=>{ut(e.remoteAudioTrack),ut(e.remoteVideoTrack),ut(e.remoteAuxiliaryTrack)})})}_stopScreenShare(){return y(this,null,function*(){var e,r;if(this._localScreenTrack){if(this._room.isJoined){let o=[this._localScreenTrack];this._localScreenAudioTrack&&o.push(this._localScreenAudioTrack),yield(e=this._room)==null?void 0:e.unpublish(...o).catch(()=>{})}this._localScreenTrack.stop(),this._localScreenTrack.close(),this._localScreenAudioTrack&&(((r=this._localScreenAudioTrack.trackSettings)==null?void 0:r.echoCancellation)===!1&&this.stopPlugin("AudioProcessor"),this._localScreenAudioTrack.stop(),this._localScreenAudioTrack.close(),this._room.audioManager.removeInput(this._localScreenAudioTrack),this._localScreenAudioTrack=null),ut(this._localScreenTrack),this._localScreenTrack=null,this._localScreenConfig=null}})}_checkScreenAudioEchoCancellation(e,r){return y(this,null,function*(){var s,n;if(!e||!r)return;let o=(s=e.trackSettings)==null?void 0:s.displaySurface;if(((n=r.trackSettings)==null?void 0:n.echoCancellation)===!1&&(o==="monitor"||o==="browser"&&e.isShareCurrentTab)){this._log.warn("echoCancellation of screen audio track is disable. Try starting audioProcessor plugin");try{yield this.startPlugin("AudioProcessor",{sdkAppId:Number(this.room.sdkAppId),userId:this._room.userId,userSig:this.room.userSig,isScreenAudioNeedAudioProcess:!0,isLocalAudioNeedAudioProcess:!1})}catch(a){this._log.warn("start audioProcessor plugin failed: ",a)}}})}_onLocalTrackCaptured({track:e}){e.kind==="audio"&&(!wt||fn(wt))&&(this._initActiveSpeaker(),V.off("102",this._onLocalTrackCaptured,this))}_initActiveSpeaker(){return y(this,null,function*(){if(wt&&!fn(wt))this.emit(te.DEVICE_CHANGED,{type:"speaker",action:"active",device:wt});else{let e=yield ho();e[0]&&!fn(e[0])?(wt=e[0],this.emit(te.DEVICE_CHANGED,{type:"speaker",action:"active",device:e[0]})):V.on("102",this._onLocalTrackCaptured,this)}})}_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,n=[s];this._room.autoReceiveAudio&&o.remoteAudioTrack.isAvailable&&n.push(o.remoteAudioTrack),this._room.subscribe(...n).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:ge(X({seiPayloadType:243},r),{small:!!((s=this._localVideoTrack)!=null&&s.small)})}),Q.addCount({key:5e5,useUV:!0}))}sendCustomMessage(e){var r,o;(o=(r=this._room).sendCustomMessage)==null||o.call(r,e),Q.addCount({key:500001,useUV:!0})}callExperimentalAPI(e,r){return y(this,null,function*(){return this._log.info(`callExperimentalAPI(${e}, ${JSON.stringify(r)})`),BE.call(e,X({trtcInstance:this},r))})}static setLogLevel(e,r){$.setLogLevel(e),x(r)||(r?$.enableUploadLog():$.disableUploadLog())}static isSupported(){return Ld(Ie.frameWorkType)}static getPermissions(o){return y(this,arguments,function*({request:e=!0,types:r=["camera","microphone"]}){e&&(yield lc.request(r).catch(a=>{var u;return $.error(`getPermissions request failed, error: ${(u=a==null?void 0:a.message)!=null?u:a}`)}));let[s,n]=yield Promise.all([lc.get("camera"),lc.get("microphone")]);return{camera:s,microphone:n}})}static getCameraList(e=!0){return Kt(e)}static getMicrophoneList(e=!0){return Zt(e)}static getSpeakerList(e=!0){return ho(e)}static setCurrentSpeaker(e){return y(this,null,function*(){if(pt&&(e===_s.SPEAKER||e===_s.HEADSET)){let o=yield Ie.getMicrophoneList(),s="";if(o.forEach(n=>{n.label===e&&(s=n.deviceId)}),!s)return;mc.forEach(n=>y(this,null,function*(){n._localAudioTrack&&(yield n.updateLocalAudio({option:{microphoneId:s}}))}));return}(yield ho()).forEach(o=>{o.deviceId===e&&(mc.forEach(s=>{s._setCurrentSpeaker(e),s.emit(te.DEVICE_CHANGED,{type:"speaker",action:"active",device:o})}),wt=o)})})}static _addKVStat({type:e,key:r,value:o,base:s,useUV:n,version:a,max:u}){switch(a&&(is.version=a),e){case"count":is.addCount({key:r,useUV:n});break;case"enum":is.addEnum({key:r,value:o,useUV:n});break;case"number":is.addNumber({key:r,value:o,split:s,max:u});break}}};l(Ie,"_loggerManager",$),l(Ie,"EVENT",te),l(Ie,"ERROR_CODE",se),l(Ie,"TYPE",_s),l(Ie,"frameWorkType",30),ee([tt({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"}})})],Ie.prototype,"use",1),ee([xt(Ct.TRTC.enterRoom),yo("room",([e],[r])=>(e.roomId||e.strRoomId)===(r.roomId||r.strRoomId)&&e.userId===r.userId&&e.sdkAppId===r.sdkAppId),Oe(e=>function(r){return this._log.setUserId(r.userId),this._log.setSdkAppId(r.sdkAppId),e.call(this,r)}),tt()],Ie.prototype,"enterRoom",1),ee([tt()],Ie.prototype,"exitRoom",1),ee([xt(Ct.TRTC.switchRoom),tt(),Kd()],Ie.prototype,"switchRoom",1),ee([xt(Ct.TRTC.switchRole),Is("room",{merge:(e,r)=>r}),tt()],Ie.prototype,"switchRole",1),ee([tt()],Ie.prototype,"destroy",1),ee([xt(Ct.TRTC.startLocalAudio),yo("audio",([e],[r])=>{var o,s;return((o=e==null?void 0:e.option)==null?void 0:o.microphoneId)===((s=r==null?void 0:r.option)==null?void 0:s.microphoneId)}),tt()],Ie.prototype,"startLocalAudio",1),ee([xt(Ct.TRTC.updateLocalAudio),Is("audio",{debounce:{delay:200,getKey:()=>`${WE}-localAudio`,isNeedToDebounce:e=>{var r;return!x((r=e.option)==null?void 0:r.captureVolume)}}}),tt()],Ie.prototype,"updateLocalAudio",1),ee([Ao("audio"),tt()],Ie.prototype,"stopLocalAudio",1),ee([xt(Ct.TRTC.startLocalVideo),yo("video",([e],[r])=>{var o,s;return((o=e==null?void 0:e.option)==null?void 0:o.cameraId)===((s=r==null?void 0:r.option)==null?void 0:s.cameraId)}),tt()],Ie.prototype,"startLocalVideo",1),ee([xt(Ct.TRTC.updateLocalVideo),Is("video"),tt()],Ie.prototype,"updateLocalVideo",1),ee([Ao("video"),tt()],Ie.prototype,"stopLocalVideo",1),ee([xt(Ct.TRTC.startScreenShare),yo("screen",()=>!0),tt()],Ie.prototype,"startScreenShare",1),ee([xt(Ct.TRTC.updateScreenShare),Is("screen"),tt()],Ie.prototype,"updateScreenShare",1),ee([tt()],Ie.prototype,"stopScreenShare",1),ee([xt(Ct.TRTC.startRemoteVideo),yo(e=>`v${e.userId}${e.streamType}`,()=>!0),tt({getRemoteId:e=>`${e.userId}_${e.streamType}`})],Ie.prototype,"startRemoteVideo",1),ee([xt(Ct.TRTC.updateRemoteVideo),Is(e=>`v${e.userId}${e.streamType}`),tt({getRemoteId:e=>`${e.userId}_${e.streamType}`})],Ie.prototype,"updateRemoteVideo",1),ee([xt(Ct.TRTC.stopRemoteVideo),Oe(e=>function(r){return y(this,null,function*(){if(r.userId==="*"){let o=[];return this._room.remotePublishedUserMap.forEach(s=>{this._remoteVideoConfigMap.has(`${s.userId}_main`)&&o.push(this.stopRemoteVideo({streamType:"main",userId:s.userId}).catch(()=>{})),this._remoteVideoConfigMap.has(`${s.userId}_sub`)&&o.push(this.stopRemoteVideo({streamType:"sub",userId:s.userId}).catch(()=>{}))}),Promise.all(o)}return e.call(this,r)})}),tt({getRemoteId:e=>`${e.userId}_${e.streamType}`})],Ie.prototype,"stopRemoteVideo",1),ee([Ao(e=>`v${e.userId}${e.streamType}`)],Ie.prototype,"_stopRemoteVideo",1),ee([xt(...Ct.TRTC.muteRemoteAudio),tt({getRemoteId:e=>e})],Ie.prototype,"muteRemoteAudio",1),ee([mp(...Ct.TRTC.setRemoteAudioVolume),xE(200,e=>e),tt({getRemoteId:e=>e})],Ie.prototype,"setRemoteAudioVolume",1),ee([Uu("start"),po(e=>{var r;return(r=e.afterStart)==null?void 0:r.call(e)}),yo((e,r)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(r)),tt({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>Mm[e.getName()],ignoreLog:e=>e.getName()==="Debug",ignoreErrorLog:e=>e.getName()==="AudioProcessor"})],Ie.prototype,"startPlugin",1),ee([Uu("update"),Is((e,r)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(r),{merge:(e,r)=>(Nr(e[1],r[1]),e)}),tt({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>Om[e.getName()]})],Ie.prototype,"updatePlugin",1),ee([Uu("stop"),Ao((e,r)=>{if(e.disableRandomCall)return null;let o=e.getGroup(r),s=e.getAlias();return o==="*"?new RegExp(`${s}.*`):s+o}),tt({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>xm[e.getName()]})],Ie.prototype,"stopPlugin",1),ee([mp(...Ct.TRTC.enableAudioVolumeEvaluation)],Ie.prototype,"enableAudioVolumeEvaluation",1),ee([tt()],Ie.prototype,"getVideoSnapshot",1),ee([tt()],Ie.prototype,"_setCurrentSpeaker",1),ee([yo(e=>`a${e.userId}`,()=>!0)],Ie.prototype,"_startRemoteAudio",1),ee([Oe(e=>function(r){return y(this,null,function*(){return r.userId==="*"?Promise.all([...this._room.remotePublishedUserMap.values()].map(o=>this._stopRemoteAudio(ge(X({},r),{userId:o.userId})).catch(()=>{}))):e.call(this,r)})}),Ao(e=>`a${e.userId}`)],Ie.prototype,"_stopRemoteAudio",1),ee([Ao("room")],Ie.prototype,"_exitRoom",1),ee([Ao("screen")],Ie.prototype,"_stopScreenShare",1),ee([xt(...Ct.TRTC.sendSEIMessage),sp({timesInSecond:30,maxSizeInSecond:8e3,getSize:(...e)=>e[0].byteLength})],Ie.prototype,"sendSEIMessage",1),ee([xt(Ct.TRTC.sendCustomMessage),sp({timesInSecond:30,maxSizeInSecond:8e3,getSize:e=>e.data.byteLength})],Ie.prototype,"sendCustomMessage",1),ee([xt(Ct.TRTC.create)],Ie,"_create",1);var bp=Ie,Mn=bp;var Xu=class{constructor(t,e){l(this,"_flag");l(this,"terminalType");l(this,"userId");l(this,"tinyId");l(this,"role");l(this,"remoteAudioTrack");l(this,"remoteVideoTrack");l(this,"remoteAuxiliaryTrack");this.userId=e.userId||"",this.tinyId=e.tinyId||"",this.role=e.role||"audience",this.terminalType=e.terminalType,this.remoteAudioTrack=new Li(t,this),this.remoteVideoTrack=new To(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 qo(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 Rp=class{constructor(){l(this,"_set",new Set);V.on(F.LEAVE_SUCCESS,this.delete,this),V.on(F.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess,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))}handleSwitchRoomSuccess({room:t,currentRoomId:e,targetRoomId:r}){t.scene!=="rtc"&&(this._set.delete(this.getKey(t.userId,e,t.sdkAppId,t.useStringRoomId)),this._set.add(this.getKey(t.userId,r,t.sdkAppId,t.useStringRoomId)))}};function Ky(){return y(this,null,function*(){let i,t;try{let A=yield Zt();i=A&&A.length}catch(A){}try{let A=yield Kt();t=A&&A.length}catch(A){}let e={microphone:i,camera:t},{isH264EncodeSupported:r,isVp8EncodeSupported:o,isH264DecodeSupported:s,isVp8DecodeSupported:n,isH265EncodeSupported:a,isH265DecodeSupported:u}=this.checkSystemResult.detail,m=lo.basis(),p={webRTC:m.isWebRTCSupported,getUserMedia:m.isGetUserMediaSupported,webSocket:m.isWebSocketsSupported,screenShare:m.isScreenShareSupported,webAudio:m.isWebAudioSupported,h264Encode:r,h264Decode:s,vp8Encode:o,vp8Decode:n,h265Encode:a,h265Decode:u},g={browser:m.browser,os:m.os,trtc:p,devices:e},_={isWebCodecSupported:m.isWebCodecSupported,isMediaSessionSupported:m.isMediaSessionSupported,isWebTransportSupported:m.isWebTransportSupported};He.uploadEvent({log:`trtcstats-${JSON.stringify(g)}`,userId:this.userId}),this._log.info(`TrtcStats-${JSON.stringify(g)}`),He.uploadEvent({log:`trtcadvancedstats-${JSON.stringify(_)}`,userId:this.userId}),Wm()})}function jE(){return Oe(i=>{let t=new Rp;return function(e,r,o){return y(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:q.INVALID_OPERATION,message:$e({key:Fe.INVALID_JOIN})});if(this.checkDestroy(),t.isJoined({userId:this.userId,roomId:s,sdkAppId:this.sdkAppId,room:this}))throw new de({code:q.INVALID_OPERATION,message:$e({key:Fe.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}`),V.emit(F.JOIN_START,{room:this,roomId:s,params:e});let n=Xr.getEnv();n||(n=gi.QCLOUD,this.proxy_ws&&(this.proxy_ws.startsWith(Hc.OLD_CLOUD_LADDER)?n=gi.OLD_CLOUD_LADDER:this.proxy_ws.startsWith(Hc.WEBRTC)&&(n=gi.WEBRTC))),He.setConfig({env:n,sdkAppId:String(this.sdkAppId),userId:this.userId,roomId:s}),lo.checkSystemRequirementsInternal(o).then(a=>{this.checkSystemResult=a,Ky.call(this)});try{!this.proxy_ws&&!this.proxy_wt&&!this.scheduleResult.domains&&!Xr.getEnv()&&(yield this.schedule(e,o));let a=yield i.call(this,e,r,o);return this.roomId=s,this._joinedTimestamp=Xr.performanceNow(),V.emit(F.JOIN_SUCCESS,{room:this}),o===30&&!e.component&&He.uploadEvent({log:`stat-conv-${Number(xr)}-${location.hostname}`,userId:this.userId}),a}catch(a){throw t.delete({room:this,roomId:s}),V.emit(F.JOIN_FAILED,{room:this,error:a}),a}})}})}var qE=()=>Oe(i=>function(...t){return y(this,null,function*(){V.emit(F.LEAVE_START,{room:this}),yield i.call(this,...t),V.emit(F.LEAVE_SUCCESS,{room:this,roomId:this.roomId})})});function zE(){return Oe(i=>function(...t){return y(this,null,function*(){if(this.scene==="live"&&this.role!=="anchor"||(t=t.filter(r=>r.outMediaTrack&&r.state==="ready"),!t.length))return;V.emit("61",{room:this});let e=i.apply(this,t);return Promise.all(t.map(r=>r.publish(this,e)))})})}function JE(){return Oe(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>r.unpublish()),e})}function XE(){return Oe(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>!r.isSubscribed&&r.subscribe(e)),e})}function eA({fn:i,context:t}){return function(...e){try{let r=i.apply(t,e);return io(r)?r.catch(o=>$.error(`${i.name}() error observed ${o}`)):r}catch(r){$.error(`${i.name}() error observed ${r}`)}}}var Qu=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=$.createLogger({id:"kpm",userId:this._room.userId,sdkAppId:this._room.sdkAppId}),Object.getOwnPropertyNames(this.__proto__).forEach(e=>{e.startsWith("handle")&&Ge(this[e])&&(this[e]=eA({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:at,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,Qo().then(t=>{this._basicInfo.string_os_version=Zo(),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),V.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(F.JOIN_START,this.handleJoinStart).addEvent(F.JOIN_SCHEDULE_SUCCESS,this.handleJoinScheduleSuccess).addEvent(F.JOIN_SIGNAL_CONNECTION_START,this.handleSignalConnectionStart).addEvent(F.JOIN_SIGNAL_CONNECTION_END,this.handleSignalConnectionEnd).addEvent(F.JOIN_SEND_CMD,this.handleJoinSendCMD).addEvent(F.JOIN_RECEIVED_CMD_RES,this.handleJoinReceivedCMDResponce).addEvent(F.JOIN_SUCCESS,this.handleJoinSuccess).addEvent(F.JOIN_FAILED,this.handleJoinFailed).addEvent(F.LEAVE_START,this.handleLeaveStart).addEvent(F.LEAVE_SUCCESS,this.handleLeaveSuccess).addEvent(F.LEAVE_SEND_CMD,this.handleLeaveSendCMD).addEvent(F.LOCAL_TRACK_CAPTURE_START,this.handleTrackCaptureStart).addEvent(F.LOCAL_TRACK_CAPTURE_SUCCESS,this.handleTrackCaptureSuccess).addEvent(F.LOCAL_TRACK_CAPTURE_FAILED,this.handleTrackCaptureFailed).addEvent(F.PUBLISH_START,this.handlePublishStart).addEvent(F.SEND_FIRST_VIDEO_FRAME,this.handleSendFirstVideoFrame).addEvent(F.SUBSCRIBE_START,this.handleSubscribeStart).addEvent(F.SUBSCRIBE_SUCCESS,this.handleSubscribed).addEvent(F.PLAY_TRACK_START,this.handlePlayStart).addEvent(F.VIDEO_LOADED_DATA,this.handleVideoLoadedData).addEvent(F.PLAYER_STATE_CHANGED,({track:t,state:e,type:r})=>{!t.isRemote||!this.hitTest(t.room)||e==="PLAYING"&&(r===M.AUDIO?this.handleAudioPlaying(t):this.handleVideoPlaying(t))}).addEvent(F.SWITCH_ROOM_START,this.handleSwitchRoomStart).addEvent(F.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess).addEvent(F.SWITCH_ROOM_FAILED,this.handleSwitchRoomFailed).addEvent(F.NETWORK_QUALITY,this.handleNetworkQuality).addEvent(F.HEARTBEAT_REPORT,this.handleHeartbeatStats).addEvent(F.RECEIVED_PUBLISHED_USER_LIST,this.handleReceivedPublishUserList).addEvent(F.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,n=r.hasAudio||r.hasVideo||r.hasSmall,a=r.hasAuxiliary;!o&&n&&this.handleRemoteStreamAdded(r.userId,"main"),!s&&a&&this.handleRemoteStreamAdded(r.userId,"auxiliary")}).addEvent(F.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("pagehide",this.handleUnload),this._eventMap.forEach((t,e)=>V.off(e,t)),this._eventMap.clear()}destroy(){this.uninstallEvents(),dt.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&&(x(t.params.frameWorkType)||(this._frameWorkType=t.params.frameWorkType,this._basicInfo.uint32_framework=this._frameWorkType),x(t.params.component)||(this._component=t.params.component,this._basicInfo.uint32_component=this._component),x(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:n,tls:a,request:u,response:m}=e;this._pathJoinRoom.int32_schedule_cost=r,this._pathJoinRoom.int32_schedule_local=o,this._pathJoinRoom.int32_schedule_dns=s,this._pathJoinRoom.int32_schedule_tcp=n,this._pathJoinRoom.int32_schedule_tls=a,this._pathJoinRoom.int32_schedule_request=u,this._pathJoinRoom.int32_schedule_response=m}}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()):q.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())}handleSwitchRoomStart(t){if(this.hitTest(t.room)){let e=Date.now();this.report().then(()=>{this._pathJoinRoom.uint64_start_time=e,this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time=e})}}handleSwitchRoomSuccess({room:t}){if(this.hitTest(t)&&this._pathJoinRoom.uint64_end_time===0){let e=Date.now();this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=e,this._pathJoinRoom.uint64_end_time=e,this._pathJoinRoom.int32_end_ret}}handleSwitchRoomFailed({room:t,error:e}){if(this.hitTest(t)){let r=Date.now();this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=r,this._pathJoinRoom.uint64_end_time=r,e&&(this._pathJoinRoom.int32_end_ret=e instanceof de?Number(e.getExtraCode()||e.getCode()):q.UNKNOWN)}}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:ge(X({},tA),{msg_user_info:new hc({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:n,role:a}=e,u=new hc({userId:s,tinyId:n,role:a==="anchor"?20:21}),m=Date.now(),p=`${s}_${r}`,g=this._remoteStreamStatMap.get(p);g&&g.subscribeStartTime===0&&(g.subscribeStartTime=m),r==="main"?(e.muteState.hasVideo&&(o.video||o.smallVideo)&&!this._pathMainVideoMap.has(p)&&this._pathMainVideoMap.set(p,{statsToReport:{msg_user_info:u,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_render_first_frame_time:0,uint64_combine_first_frame_time:0},userId:s,sendSubscribeCMDTime:m}),e.muteState.hasAudio&&o.audio&&!this._pathMainAudioMap.has(p)&&this._pathMainAudioMap.set(p,{statsToReport:{msg_user_info:u,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_play_first_frame_time:0},userId:s,sendSubscribeCMDTime:m})):e.muteState.hasAuxiliary&&o.auxiliary&&!this._pathAuxiliaryMap.has(p)&&this._pathAuxiliaryMap.set(p,{sendSubscribeCMDTime:m})}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(s){let{statsToReport:n}=s;if(!n.uint32_video_render_first&&t.streamType==="main"?this.hasVideoFlag(t.userId):this.hasAuxFlag(t.userId)){let a=r-this._pathJoinRoom.uint64_start_time;n.uint32_video_render_first=a,Q.addNumber({key:516820,value:a})}}(o==null?void 0:o.statsToReport.uint64_render_first_frame_time)===0&&(o.statsToReport.uint64_render_first_frame_time=r)}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:n})=>{let a=this._networkQuality.totalDownlinkRTTAndLossMap.get(o);if(a)a.totalRTT+=e,a.totalLoss+=r,s&&(a.totalVideoDelay=(a.totalVideoDelay||0)+s,a.videoDelayCount=(a.videoDelayCount||0)+1),n&&(a.totalAudioDelay=(a.totalAudioDelay||0)+n,a.audioDelayCount=(a.audioDelayCount||0)+1),a.count++;else{let u,m,p,g;s&&(m=s,p=1),n&&(u=n,g=1),this._networkQuality.totalDownlinkRTTAndLossMap.set(o,{totalRTT:e,totalLoss:r,count:1,totalAudioDelay:u,totalVideoDelay:m,audioDelayCount:g,videoDelayCount:p})}}))}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:n,uint32_video_width:a,uint32_video_height:u}=r.msg_video_status[0];this._localStreamStat.totalVideoBitrate+=s,this._localStreamStat.totalVideoFPS+=n,this._localStreamStat.totalVideoWidth+=a,this._localStreamStat.totalVideoHeight+=u,this._localStreamStat.videoCount++}if(r.msg_audio_status){let{uint32_audio_level:s}=r.msg_audio_status;Math.floor(s/Ci*100)>0&&(this._localStreamStat.totalAudioLevel+=s/Ci,this._localStreamStat.audioLevelCount++)}o.forEach(s=>{let{msg_user_info:n,msg_audio_status:a,msg_video_status:u}=s,m=n.str_identifier,p=this._room.remotePublishedUserMap.get(m);if(u.forEach(g=>{let _=g.uint32_video_stream_type===2,A=g.uint32_video_stream_type===7,C=`${m}_${_?"main":"auxiliary"}`,N=this._remoteStreamStatMap.get(C);if(N&&(_&&(p!=null&&p.remoteVideoTrack.isSubscribed)||A&&(p!=null&&p.remoteAuxiliaryTrack))){N.totalVideoFPS+=g.uint32_video_receive_fps,N.totalVideoBitrate+=g.uint32_video_codec_bitrate,N.videoCount++,N.statsToReport.uint32_video_width===0&&(N.statsToReport.uint32_video_width=g.uint32_video_width),N.statsToReport.uint32_video_height===0&&(N.statsToReport.uint32_video_height=g.uint32_video_height);let D=_?p.remoteVideoTrack:p.remoteAuxiliaryTrack;D.stat.jitterBufferDelay&&(N.videoJitterBufferDelay=D.stat.jitterBufferDelay),D.stat.framesReceived&&(N.statsToReport.uint32_video_consume_render_rate=Math.floor(D.stat.framesDecoded/D.stat.framesReceived*to(10,6)))}}),!Ws(a)){let g=`${m}_main`,_=this._remoteStreamStatMap.get(g);this._remoteStreamStatMap.has(g)&&_&&p!=null&&p.remoteAudioTrack.isSubscribed&&(_.totalAudioBitrate+=a.uint32_audio_codec_bitrate,_.audioCount++,p.remoteAudioTrack.stat.jitterBufferDelay&&(_.audioJitterBufferDelay=p.remoteAudioTrack.stat.jitterBufferDelay),Math.floor(a.uint32_audio_level/Ci*100)>0&&(_.totalAudioLevel+=a.uint32_audio_level/Ci,_.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():q.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&Ls)>=0}hasAudioFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&Us)>=0}hasAuxFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&Yn)>=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:p,count:g,audioDelayCount:_,videoDelayCount:A,totalAudioDelay:C,totalVideoDelay:N}=o;t.statsToReport.uint32_avg_down_loss=Math.floor(p/g),_&&C&&(t.statsToReport.uint32_audio_network_p2p_delay=Math.floor(C/_),t.audioJitterBufferDelay&&(t.statsToReport.uint32_p2p_delay=Math.floor(t.statsToReport.uint32_audio_network_p2p_delay+t.audioJitterBufferDelay))),A&&N&&(t.statsToReport.uint32_video_network_p2p_delay=Math.floor(N/A))}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,M.AUDIO),t.statsToReport.uint32_video_play_time=s.getDuration(e,M.VIDEO)),t.statsToReport.uint32_video_render_first&&(t.statsToReport.uint32_video_render_first=Math.min(t.statsToReport.uint32_video_render_first,ys));let{badCaseDetector:n}=this._room,{dataFreeze:a,count:u}=n.getDataFreezeDuration(e),{renderFreeze:m}=n.getRenderFreezeDuration(e);t.statsToReport.uint32_video_block_count=u,t.statsToReport.uint32_video_block_time=Math.min(a,t.statsToReport.uint32_video_play_time),t.statsToReport.uint32_video_external_block_time=Math.min(m,t.statsToReport.uint32_video_play_time),n.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}),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>ys&&(t.statsToReport.uint64_play_first_frame_time=t.statsToReport.uint64_start_enter_time+ys)}),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>ys&&(t.statsToReport.uint64_render_first_frame_time=t.statsToReport.uint64_start_enter_time+ys)}),this._pathJoinRoom.uint64_end_time-this._pathJoinRoom.uint64_start_time>ys&&(this._pathJoinRoom.uint64_end_time=this._pathJoinRoom.uint64_start_time+ys)}getReportData(){this._basicInfo.uint32_networkType=Yc();let t={uint32_sdk_app_id:Number(this._room.sdkAppId),msg_user_info:new hc({userId:this._room.userId,tinyId:this._room.tinyId,role:this._room.role==="anchor"?20:21}),msg_basic_info:this._basicInfo,uint32_acc_ip:Gs(this._signalInfo.relayIp),uint32_client_ip:Gs(this._signalInfo.clientIp,!1),uint32_acc_port:this._signalInfo.relayPort||0,uint64_timestamp:Date.now(),uint32_seq:Math.floor(Math.random()*to(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:Gs(this._signalInfo.clientIp,!1),error_code:[],msg_local_statistics:this._localStreamStat.statsToReport,bytes_report_buf_from_0x1:this._signalInfo.endReportExtend};return na(t),t}report(){return y(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 y(this,null,function*(){if(t.msg_path_enter_room.uint64_start_time===0)return;let e=Number(this._room.sdkAppId),r=ao.enable?Ii(t,2001,e):yield ql(t),o=r instanceof ArrayBuffer,s=`${Ti(e,ro.KEY_POINT)}&gzip=${+o}`,n=!1;navigator.sendBeacon&&(n=navigator.sendBeacon(s,r));let a=[this.uploadKVStat(Q),this.uploadKVStat(is)];n||a.push(Si({url:s,body:r,priority:"low"})),yield Promise.all(a)})}setConnectionType(t){this.connectionType=t,this._basicInfo.uint32_connection_type=t}uploadKVStat(t){return y(this,null,function*(){let e=t.getReportData();if(e.stats_count.length===0&&e.stats_distribution.length===0)return;e.msg_sdk_basic_info=ge(X({},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=ao.enable?Ii(e,2003,this._room.sdkAppId):yield ql(e),o=r instanceof ArrayBuffer,s=`${Ti(+this._room.sdkAppId,ro.KV_STAT)}&gzip=${+o}`,n=!1;navigator.sendBeacon&&(n=navigator.sendBeacon(s,r)),n||Si({url:s,body:r})})}};ee([ns({settings:{timeout:500,retries:3}})],Qu.prototype,"upload",1);var ys=5e3,tA={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_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},hc=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}},QE=Qu;var vp=class{constructor(){l(this,"_startTime");l(this,"_endTime");this._startTime=0,this._endTime=0,this.start()}start(){this._startTime===0&&(this._startTime=_e())}stop(){this._endTime===0&&(this._endTime=_e())}getDuration(){return this._endTime===0?_e()-this._startTime:this._endTime-this._startTime}get startTime(){return this._startTime}get endTime(){return this._endTime}},Yu=vp;var Cp=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(F.REMOTE_TRACK_SUBSCRIBED,this.handleSubscribed).set(F.REMOTE_TRACK_UNSUBSCRIBED,this.handleUnsubscribed).set(F.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{var n;let{userId:o}=r;if(!this.hitTest(t))return;e.hasAudio&&!r.hasAudio&&this.stopDurationItem(`${o}_main`,M.AUDIO),e.hasVideo&&!r.hasVideo&&this.stopDurationItem(`${o}_main`,M.VIDEO),e.hasAuxiliary&&!r.hasAuxiliary&&this.stopDurationItem(`${o}_auxiliary`,M.VIDEO);let s=(n=this._room)==null?void 0:n.remotePublishedUserMap.get(o);s&&(!e.hasAudio&&r.hasAudio&&s.remoteAudioTrack.isSubscribed&&this.addDuractionItem(o,M.AUDIO,"main"),!e.hasVideo&&r.hasVideo&&s.remoteVideoTrack.isSubscribed&&this.addDuractionItem(o,M.VIDEO,"main"),!e.hasAuxiliary&&r.hasAuxiliary&&s.remoteAuxiliaryTrack.isSubscribed&&this.addDuractionItem(o,M.VIDEO,"auxiliary"))}),this._eventMap.forEach((t,e)=>V.on(e,t,this))}uninstallEvents(){this._eventMap.forEach((t,e)=>V.off(e,t,this)),this._eventMap.clear()}handleSubscribed({track:t}){if(!this.hitTest(t.room))return;let{userId:e,streamType:r,kind:o}=t;t.isSubscribed?this.addDuractionItem(e,o,r):this.stopDurationItem(`${e}_${r}`,o)}handleUnsubscribed({track:t}){this.hitTest(t.room)&&this.stopDurationItem(`${t.userId}_${t.streamType}`,t.kind)}isRecording(t){return t.findIndex(e=>e.endTime===0)>=0}addDuractionItem(t,e,r){let o=`${t}_${r}`,s=new Yu,n=this._durationMap.get(o);n?this.isRecording(n[e])||n[e].push(s):this._durationMap.set(o,{userId:t,type:r,audio:e===M.AUDIO?[s]:[],video:e===M.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()}},YE=Cp;var Np=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);l(this,"_videoEncodeFailedCount",0);l(this,"_audioEncodeFailedCount",0);l(this,"_encodeFailedThreshold",3);this._room=t.room,this.installEvents()}getRenderFreezeMap(){return this._renderFreezeMap}getDataFreezeMap(){return this._dataFreezeMap}installEvents(){this._eventMap.set(F.LEAVE_SUCCESS,({room:t})=>{this.hitTest(t)&&this.stop()}).set(F.PLAY_TRACK_START,this.onPlayTrackStart).set(F.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(F.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",n=`${r.userId}_${s}`;this.stopDataFreeze({key:n,userId:o,type:s})}if(e.hasAuxiliary&&!r.hasAuxiliary){let s="auxiliary",n=`${r.userId}_${s}`;this.stopDataFreeze({key:n,userId:o,type:s})}}).set(F.PLAYER_STATE_CHANGED,({track:t,state:e,reason:r,type:o})=>{if(!(!t.isRemote||!t.room||!this.hitTest(t.room)||o!==M.VIDEO)){if(e==="PLAYING"){let s=`${t.userId}_${t.streamType}`;this._isVideoPlayingEventFiredMap.set(s,!0)}r===M.MUTE?this.onVideoTrackMuted(t):r===M.UNMUTE&&this.onVideoTrackUnmuted(t)}}).set(F.HEARTBEAT_REPORT,this.onHearBeatReport),this._eventMap.forEach((t,e)=>V.on(e,t,this))}uninstallEvents(){this._eventMap.forEach((t,e)=>V.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),n=new Yu;s?s.durationItemList.push(n):this._dataFreezeMap.set(o,{userId:e,type:r,durationItemList:[n],isFreezing(){let a=this.durationItemList[this.durationItemList.length-1];return a&&a.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}){if(this.hitTest(t)){if(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:n}=o;r.msg_video_status.forEach(a=>{a.uint32_video_stream_type===2&&n.hasVideo&&!n.videoMuted&&o.remoteVideoTrack.isSubscribed&&this.handleRenderFreeze({userId:s,fps:a.uint32_video_dec_fps,type:"main"}),a.uint32_video_stream_type===7&&n.hasAuxiliary&&o.remoteAuxiliaryTrack.isSubscribed&&this.handleRenderFreeze({userId:s,fps:a.uint32_video_dec_fps,type:"auxiliary"})})}),e.msg_up_stream_info.msg_video_status){let r=e.msg_up_stream_info.msg_video_status,o=Array.from(this._room.localTracks).find(n=>n.kind==="video"&&!n.isScreen),s=(o==null?void 0:o.stat.bytesSent)||0;if((o==null?void 0:o.isMediaTrackActive)===!1||s<=0)return;r.forEach(n=>{n.uint32_video_stream_type===2&&(n.uint32_video_capture_fps!==0&&n.uint32_video_codec_bitrate===0&&n.uint32_video_enc_fps===0&&(o!=null&&o.isPublished)?(this._videoEncodeFailedCount+=1,this._videoEncodeFailedCount===this._encodeFailedThreshold&&(He.uploadEvent({userId:this._room.userId,log:`stat-${lr.VIDEO_ENCODE_FAILED_DURING_CALL}`}),this._videoEncodeFailedCount=0)):this._videoEncodeFailedCount=0)})}if(e.msg_up_stream_info.msg_audio_status){let r=e.msg_up_stream_info.msg_audio_status,o=Array.from(this._room.localTracks).find(n=>n.kind==="audio"),s=(o==null?void 0:o.stat.bytesSent)||0;if((o==null?void 0:o.isMediaTrackActive)===!1||s<=0)return;r.uint32_audio_codec_bitrate===0&&(o!=null&&o.isPublished)?(this._audioEncodeFailedCount+=1,this._audioEncodeFailedCount===this._encodeFailedThreshold&&(He.uploadEvent({userId:this._room.userId,log:`stat-${lr.AUDIO_ENCODE_FAILED_DURING_CALL}`}),this._audioEncodeFailedCount=0)):this._audioEncodeFailedCount=0}}}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 n=s.getDuration();n>jc?this._monitorFreezeData.set(t,{userId:e,type:r,duration:n}):o.durationItemList.pop()}getTotalDuration(t){return t.reduce((e,r)=>{let o=r.getDuration();return e+Math.min(o,5e3)},0)}handleRenderFreeze(o){return y(this,arguments,function*({userId:t,fps:e,type:r}){let s=`${t}_${r}`,n=this._renderFreezeMap.get(s);if(e<=2){let a=_e();n&&!n.isFreeze&&(n.freezeTimeline.push({startTime:a,endTime:0}),n.isFreeze=!0),n||this._renderFreezeMap.set(s,{userId:t,type:r,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=_e();let u=a.endTime-a.startTime;n.freezeTimeline.push(a),n.renderFreezeTotal+=Math.min(5e3,u)}}})}onPlayTrackStart({track:t}){if(!t.isRemote||!this.hitTest(t.room)||t.kind!==M.VIDEO||!t.isRemotePublished)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()<jc&&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=_e(),n=e.freezeTimeline[e.freezeTimeline.length-1],a=s-n.startTime;r=e.renderFreezeTotal+Math.min(a,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()}},ZE=Np;var e_=pi(bi(),1);var Zu=class{constructor(t,e,r,o,s=4/3){this.vbMode=t;this.faceDetectorHash=e;this.visionTaskRegistry=r;this.logger=o;l(this,"animationState");l(this,"originalAspect");l(this,"totalOffsetX",0);l(this,"totalOffsetY",0);l(this,"defaultScaleRatio",.1);l(this,"isRecovering",!1);l(this,"boundaryY",280);l(this,"lastActionTime",0);l(this,"restTime",400);this.animationState={current:null,target:null,animating:!1,debounceTimer:null,startTime:0,duration:3e3,debounceTime:150,movementThreshold:30,debounceThreshold:15},this.addEvent(this.vbMode,!!this.faceDetectorHash),this.originalAspect=s||4/3}addEvent(t,e,r){let s=[{key:570704,error:r!=null?r:e?void 0:11},{key:570705,error:r!=null?r:e?void 0:22}][t-1];s&&(e?Q.addSuccessEvent({key:s.key}):Q.addFailedEvent({key:s.key,error:s.error}))}actionCentering(t){let e=Date.now();if(this.animation(),!this.faceDetectorHash||e-this.lastActionTime<this.restTime||this.animationState.animating)return;let{videoWidth:r,videoHeight:o}=t;this.animationState.debounceThreshold=r/30,this.animationState.movementThreshold=r/20,this.boundaryY=o*.6;try{let s=this.visionTaskRegistry.getResult(this.faceDetectorHash);if(s.detections.length<=0){this.vbMode===1&&this.recoverOriginal(r,o);return}let n=s.detections[0].boundingBox,a=n.originX,u=n.originY,m=n.width,p=n.height;this.vbMode===1?this.dualStageCropping(r,o,a,u,m,p):this.vbMode===2&&this.movingPortrait(r,o,a,u,m,p)}catch(s){this.logger.error(s)}this.lastActionTime=e}calculateBoundary(t,e,r,o){let s,n;return t>e/2?(s=e-r-o,n=r-s):(s=r,n=0),{min:s,offset:n}}calculateTargetPosition(t,e,r,o,s,n,a=.4){let u=t+r/2,m=e+o/2,p,g,{min:_,offset:A}=this.calculateBoundary(u,s,t,r),{min:C,offset:N}=this.calculateBoundary(m,n,e,o);return p=2*_+r,g=2*C+o,p/g>this.originalAspect?(p=g*this.originalAspect,A=u-p/2):(g=p/this.originalAspect,N=m-g/2),r/s>a&&(A=0,N=0,p=s,g=n),A=Math.max(0,Math.min(A,s-p)),N=Math.max(0,Math.min(N,n-g)),{sx:A,sy:N,cropWidth:p,cropHeight:g,timestamp:Date.now()}}processFacePositionCrop(t,e,r){if(!this.animationState.current||!this.animationState.target){let a={sx:0,sy:0,cropWidth:e,cropHeight:r,timestamp:Date.now()};this.animationState.current=a,this.animationState.target=a;return}let o=this.positionDistance(this.animationState.target,t),s=this.positionDistance(this.animationState.current,t),n=this.animationState.current.cropWidth/e;o>this.animationState.debounceThreshold*n&&(clearTimeout(this.animationState.debounceTimer),this.animationState.animating=!1),!this.animationState.animating&&s>this.animationState.movementThreshold*n&&(this.animationState.target=t,this.animationState.debounceTimer=setTimeout(()=>{this.animationState.startTime=Date.now(),this.animationState.animating=!0},this.animationState.debounceTime))}processFacePositionPortrait(t){if(!this.animationState.current||!this.animationState.target){this.animationState.current=X({},t),this.animationState.target=X({},t);return}let e=this.positionDistance(this.animationState.current,t),r=this.positionDistance(this.animationState.target,t);e>this.animationState.debounceThreshold&&(clearTimeout(this.animationState.debounceTimer),this.animationState.animating=!1),!this.animationState.animating&&r>this.animationState.movementThreshold&&(this.animationState.current=t,this.animationState.debounceTimer=setTimeout(()=>{this.animationState.startTime=Date.now(),this.animationState.animating=!0},this.animationState.debounceTime))}animation(){if(!this.animationState.animating)return;let t=Date.now()-this.animationState.startTime,e=Math.min(t/this.animationState.duration,1),r=o=>o<.5?2*o*o:-1+(4-2*o)*o;if(this.animationState.current&&this.animationState.target){let o=(this.animationState.target.sx-this.animationState.current.sx)*r(e);this.animationState.current.sx+=o,this.totalOffsetX+=o;let s=(this.animationState.target.sy-this.animationState.current.sy)*r(e);if(this.animationState.current.sy+=s,this.totalOffsetY+=s,this.animationState.current.cropWidth+=(this.animationState.target.cropWidth-this.animationState.current.cropWidth)*r(e),this.animationState.current.cropHeight+=(this.animationState.target.cropHeight-this.animationState.current.cropHeight)*r(e),this.animationState.current.scaleRatio&&this.animationState.target.scaleRatio&&(this.animationState.current.scaleRatio+=(this.animationState.target.scaleRatio-this.animationState.current.scaleRatio)*r(e)),ke(this.animationState.current.scaleOffsetX)&&ke(this.animationState.target.scaleOffsetX)&&ke(this.animationState.current.scaleOffsetY)&&ke(this.animationState.target.scaleOffsetY)){let n=(this.animationState.target.scaleOffsetX-this.animationState.current.scaleOffsetX)*r(e);this.animationState.current.scaleOffsetX+=n;let a=(this.animationState.target.scaleOffsetY-this.animationState.current.scaleOffsetY)*r(e);this.animationState.current.scaleOffsetY+=a}}e>=1&&(this.animationState.animating=!1,this.animationState.current=this.animationState.target,this.isRecovering=!1)}positionDistance(t,e){return Math.sqrt(to(t.sx-e.sx,2)+to(t.sy-e.sy,2))}recoverOriginal(t,e){this.animationState.target={sx:0,sy:0,cropWidth:t,cropHeight:e,timestamp:Date.now()},this.animationState.animating=!0,this.animationState.startTime=Date.now(),this.isRecovering=!0}dualStageCropping(t,e,r,o,s,n,a=.3){if(this.isRecovering)return;let u=this.calculateTargetPosition(r,o,s,n,t,e);this.processFacePositionCrop(u,t,e),s*n/u.cropWidth/u.cropHeight>a&&this.recoverOriginal(t,e)}movingPortrait(t,e,r,o,s,n){var u,m,p,g,_,A,C,N,D,O,Z,ue;let a={sx:r+s/2+this.totalOffsetX,sy:o+n/2+this.totalOffsetY,cropWidth:t,cropHeight:e,scaleRatio:(m=(u=this.animationState.current)==null?void 0:u.scaleRatio)!=null?m:1,scaleOffsetX:(g=(p=this.animationState.current)==null?void 0:p.scaleOffsetX)!=null?g:0,scaleOffsetY:(A=(_=this.animationState.current)==null?void 0:_.scaleOffsetY)!=null?A:0,timestamp:Date.now()};this.animationState.target={sx:t/2,sy:o+n/2,cropWidth:t,cropHeight:e,scaleRatio:(N=(C=this.animationState.target)==null?void 0:C.scaleRatio)!=null?N:1,scaleOffsetX:(O=(D=this.animationState.target)==null?void 0:D.scaleOffsetX)!=null?O:0,scaleOffsetY:(ue=(Z=this.animationState.target)==null?void 0:Z.scaleOffsetY)!=null?ue:0,timestamp:Date.now()},this.animationState.animating||(this.animationState.target.scaleRatio=Math.sqrt(s*n/t/e/this.defaultScaleRatio),this.animationState.target.scaleOffsetX=-this.animationState.target.scaleRatio/2+.5,this.animationState.target.scaleOffsetY=-this.animationState.target.scaleRatio+1,(this.animationState.target.sy-this.animationState.target.scaleOffsetY*this.animationState.target.cropHeight)/this.animationState.target.scaleRatio<this.boundaryY&&(this.animationState.target.scaleOffsetY=(this.animationState.target.sy-this.boundaryY*this.animationState.target.scaleRatio)/this.animationState.target.cropHeight)),this.processFacePositionPortrait(a)}set aspectRatio(t){this.originalAspect=t}get current(){return this.animationState.current}get offset(){return{offsetX:this.totalOffsetX,offsetY:this.totalOffsetY}}get targetCrop(){return this.animationState.target}};var rA=`#version 300 es
|
|
103
103
|
in vec2 a_position;
|
|
104
104
|
in vec2 a_texCoord;
|
|
105
105
|
out vec2 v_texCoord;
|
|
106
106
|
void main() {
|
|
107
107
|
gl_Position = vec4(a_position.x, a_position.y, 0, 1);
|
|
108
108
|
v_texCoord = a_texCoord;
|
|
109
|
-
}`,
|
|
109
|
+
}`,iA=`#version 300 es
|
|
110
110
|
precision highp float;
|
|
111
111
|
uniform sampler2D u_texture;
|
|
112
112
|
uniform sampler2D mask;
|
|
@@ -115,7 +115,7 @@ in vec2 v_texCoord;
|
|
|
115
115
|
out vec4 outColor;
|
|
116
116
|
void main() {
|
|
117
117
|
outColor = vec4(texture(u_texture, v_texCoord).rgb, texture(mask, v_texCoord).a);
|
|
118
|
-
}`,
|
|
118
|
+
}`,Ku=class extends gr{constructor(e,r){super(e,r.input,{name:"vb",create2d:!1,useDefaultProgram:!1,useFbo:!1,createTexture:!0,width:r.width,height:r.height,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,"_selfieSegmentationHash");l(this,"wasm");l(this,"predictReady");l(this,"_color");l(this,"_prePrograme");l(this,"_segmentationMask");l(this,"_weixin",!1);l(this,"_centerFace");l(this,"_textureMatrixLocation");l(this,"_offsetMatrixLocation");l(this,"_colorLocation");l(this,"_enableFaceCentering",!1);l(this,"_enableEffectOptimization",!1);l(this,"_mat4");l(this,"_postProcessing");l(this,"_onAbort");l(this,"_visionTaskRegistry");l(this,"resolvePreditReady");this.init(r).catch(o=>{e.log.error(o),e.destroy(new de({code:q.VIDEO_MANAGER_ERROR,extraCode:6,message:`init vb node error ${o.message||o}`})),this.resolvePreditReady()})}init(e){return y(this,null,function*(){var n,a,u;this.predictReady=new Promise(m=>{this.resolvePreditReady=m});let r=e.Wasm,o=this.context.ctx;if(e.color&&(this._color=e.color),e.mat4&&(this._mat4=e.mat4),e.postProcessing&&(this._postProcessing=e.postProcessing),this._enableFaceCentering=(n=e.enableFaceCentering)!=null?n:!1,this._enableEffectOptimization=(a=e.enableEffectOptimization)!=null?a:!1,this.wasm=new r.AllIn1(o),this.wasm.blurRadius=e.blurRadius||3,this.wasm.mirror=!!e.mirror,this.wasm.rotation=e.rotation||0,this.wasm.vbMode=e.bg==="blur"?1:e.bg instanceof HTMLImageElement?2:e.bg==="color"?3:0,this._onAbort=e.onAbort,e.bg||this.resolvePreditReady(),e.waterMark){let{x:m,y:p,width:g,height:_}=e.waterMark;this.wasm.setWaterMark(m,p,g,_)}if(e.beautyParams){let{beauty:m,brightness:p,ruddy:g}=e.beautyParams;this.wasm.setBeauty(m,p,g,e==null?void 0:e.width,e==null?void 0:e.height)}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));let s=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);if(this._textureMatrixLocation=o.getUniformLocation(this.program,"u_textureMatrix"),o.uniformMatrix4fv(this._textureMatrixLocation,!1,s),this._offsetMatrixLocation=o.getUniformLocation(this.program,"u_offsetMatrix"),o.uniformMatrix4fv(this._offsetMatrixLocation,!1,s),this._colorLocation=o.getUniformLocation(this.program,"u_color"),o.uniform1i(o.getUniformLocation(this.program,"lastMask"),4),this._weixin){let m=this.context.createShader(o.FRAGMENT_SHADER,iA),p=this.context.createShader(o.VERTEX_SHADER,rA);this._prePrograme=this.context.createProgram(p,m),o.useProgram(this._prePrograme),this.setAttributes(this.positionBuffer,this.texCoordBuffer),o.uniform1i(o.getUniformLocation(this._prePrograme,"mask"),1)}this._enableEffectOptimization&&(this.wasm.vbMode===2||this.wasm.vbMode===3)&&((u=this._postProcessing)==null||u.init(o,this.positionBuffer,this.texCoordBuffer,4/3)),yield this.initVisionTasks(e)})}initVisionTasks(e){return y(this,null,function*(){if(e.bg){if(this._visionTaskRegistry=yield window.VisionTaskRegistry.getInstance(),!window.VisionTaskRegistry||!this._visionTaskRegistry||!this._visionTaskRegistry.visionWasm)throw new Error("Virtual background assets not found. Please redeploy the assets of the npm package.");if(this._visionTaskRegistry.video=this.image,this._selfieSegmentationHash=yield this._visionTaskRegistry.register(window.VisionTaskType.ImageSegmenter,{canvas:this.context._canvas}),this._enableFaceCentering)try{this._visionTaskRegistry.models.has(window.VisionTaskType.FaceDetector)||(yield this._visionTaskRegistry.preloadModels([window.VisionTaskType.FaceDetector]));let r=yield this._visionTaskRegistry.register(window.VisionTaskType.FaceDetector);if(!r)return;this._centerFace=new Zu(this.wasm.vbMode,r,this._visionTaskRegistry,this.context.log)}catch(r){this.log.error("Face detector model not found. Please redeploy the assets of the npm package.")}}})}onPredict(e){let r=this.context.ctx;this._weixin&&(this._lastMaskTexture||(this._lastMaskTexture=this.createTexture(this.image),this._lastMaskFbo=this.createFramebuffer(this._lastMaskTexture)));let o=this.getMaskTexture(e);if(!o)return;let s=o;this._enableEffectOptimization&&this._postProcessing&&(this.wasm.vbMode===2||this.wasm.vbMode===3)&&(this._postProcessing.ratio=this.image.videoWidth/this.image.videoHeight,s=this._postProcessing.postProcessing(o)),this.useProgram(),this.setAttributes(this.positionBuffer,this.texCoordBuffer),this.useTexture(),r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,s||null),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.wasm.vbMode===3&&r.uniform3fv(this._colorLocation,this._color),this.useBufferFrame(),this._segmentationMask=e,this.totalFrames++,this.centerFace(),or(this.wasm.rotation)&&this.resize(this.image.height,this.image.width),r.viewport(0,0,r.canvas.width,r.canvas.height),r.drawArrays(r.TRIANGLE_STRIP,0,4),e.close()}getMaskTexture(e){return e.confidenceMasks?e.confidenceMasks[0].getAsWebGLTexture():void 0}onFirstFrame(){this.waitingFirstFrame=!1;let e=this.context.ctx;this.useTexture(),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,this.image)}render(e){let r=this.context.ctx,{image:o}=this;this.tryVideoFrameCallback();let{videoWidth:s,videoHeight:n}=o;if(or(this.wasm.rotation)&&!this._visionTaskRegistry&&([s,n]=[n,s]),s===0||n===0||!this.available)return!1;o.width=s,o.height=n;let a=!1;if(this.totalFrames)this.useTexture(),a=this._selfieTextureValid,this._selfieTextureValid=!0;else{if(this.program)this.useTexture();else return!1;a=this._textureValid,this._textureValid=!0}if(this.width!==s||this.height!==n||!a?(this.resize(s,n),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){if(r.useProgram(this._prePrograme),this.useTexture(),this._segmentationMask){let u=this.getMaskTexture(this._segmentationMask);r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,u||null),r.bindFramebuffer(r.FRAMEBUFFER,this._lastMaskFbo||null)}r.drawArrays(r.TRIANGLE_STRIP,0,4),this.useTexture(),this._segmentationMask?r.copyTexSubImage2D(r.TEXTURE_2D,0,0,0,0,0,s,n):r.copyTexImage2D(r.TEXTURE_2D,0,r.RGBA,0,0,s,n,0)}try{if(this._selfieSegmentationHash&&this._visionTaskRegistry){let u=this._visionTaskRegistry.getResult(this._selfieSegmentationHash);this.totalFrames===1&&this.context._canvas&&this.resolvePreditReady(),this.onPredict(u)}}catch(u){this._onAbort&&this._onAbort(u)}return 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)),this._visionTaskRegistry&&this._visionTaskRegistry.resetHashResults(),!1}centerFace(){if(!this._centerFace||!this._enableFaceCentering)return;let e=this.context.ctx;this._centerFace.aspectRatio=e.canvas.width/e.canvas.height,this._centerFace.actionCentering(this.image);let{current:r,offset:o}=this._centerFace;if(r&&(this.wasm.vbMode===1&&this.drawImage(r.sx,r.sy,r.cropWidth,r.cropHeight),o&&this.wasm.vbMode===2)){if(!this._mat4)return;let s=this._mat4.create(),{scaleRatio:n=1,scaleOffsetX:a=0,scaleOffsetY:u=0}=r;this._mat4.fromTranslation(s,[-o.offsetX/e.canvas.width+a,u,0]),this._mat4.scale(s,s,[n,n,1]),e.uniformMatrix4fv(this._offsetMatrixLocation,!1,s)}}drawImage(e,r,o,s){let n=this.context.ctx;if(!this._mat4)return;let{width:a,height:u}=n.canvas,m=this._mat4.create();this._mat4.fromTranslation(m,[e/a,1-(r+s)/u,0]),this._mat4.scale(m,m,[o/a,s/u,1]),n.uniformMatrix4fv(this._textureMatrixLocation,!1,m)}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),this._postProcessing&&this._postProcessing.close(),(r=this.wasm)==null||r.close()}};var el=class extends vt{constructor(e){super(e,{name:"yuv-source",useDefaultProgram:!1,create2d:!1,useFbo:!1,createTexture:!1,logger:e.log,fragmentShaderSource:`
|
|
119
119
|
precision highp float;
|
|
120
120
|
uniform sampler2D ySampler;
|
|
121
121
|
uniform sampler2D uSampler;
|
|
@@ -140,4 +140,4 @@ void main() {
|
|
|
140
140
|
void main() {
|
|
141
141
|
gl_Position = vertexPos;
|
|
142
142
|
textureCoord = texturePos;
|
|
143
|
-
}`});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 Vi=[i=>{i.codec="avc1.42e01f"},i=>{delete i.hardwareAcceleration}],nT=(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")};function pA(i){return i[0]===0&&i[1]===0&&i[2]===0&&i[3]===1}var fA=0,ol=class{constructor(t){l(this,"id",fA++);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,"startPerformanceTime",0);l(this,"inputFrameCount",0);l(this,"decodedFrameCount",0);l(this,"decodeFrameCount",0);l(this,"downgradeLevel",0);l(this,"lastDowngradeTime",0);l(this,"lastFrameDiff",0);l(this,"lastDecodeFrameTimestamp",0);l(this,"config");l(this,"gop_before_configure",[]);l(this,"videoElement");l(this,"type","wasm");l(this,"goodType");l(this,"renderer","2d");l(this,"wasmOption");l(this,"createDecoder");l(this,"_decodeSink");l(this,"isReported",!1);l(this,"track");l(this,"stateChangeOB");l(this,"failedReason");let{track:e,createDecoder:r}=t;if(this.stateChangeOB=bt(),this.track=e,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=be(e.availableState,le.OFF),this.stopOB=bt(),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),Ae(this.stateChangeOB,qh((o,s)=>(o!==s&&e.onDecodeDowngradeStateChanged({type:this.type,renderer:this.renderer,reason:this.failedReason,prevState:o,state:s}),s),"INITIALIZED"),Xe(this.stopOB),Le()),this.start()}start(t=0){this.waitFirstKeyFrame=!0,this.stateChangeOB.next("STARTING");let e=Ae(this.pipe(this.track),Xe(this.stopOB),Mi());Ae(e,Le(()=>{this.track.stat.framesDecoded++},r=>{if(this.track.log.error(`${this.id} play failed: ${r} retryCount: ${t}`),X.addFailedEvent({key:nT(this.type,this.renderer),error:r}),t>4)this.failedReason=r,this.stateChangeOB.next("FAILED"),X.addFailedEvent({key:514704});else{if(this.goodType){this.start(t);return}switch(this.type){case"webCodecs":this.type="wasm",this.changeRenderer("webgl");break;case"wasm":switch(this.renderer){case"webgl":this.changeRenderer("videoFrame");break}}this.start(t+1)}},()=>{this.track.log.warn(`${this.id} decoderOB completed`),X.addSuccessEvent({key:nT(this.type,this.renderer)}),X.addSuccessEvent({key:514704})})),Ae(e,Ur(1),Le(()=>{this.track.player.handlePlaying("canvas"),this.goodType=this.type,this.stateChangeOB.next("STARTED")}))}mock(t){this._decodeSink?this._decodeSink.error(t):this.start()}close(t){this.stopOB.next(t)}changeRenderer(t){this.renderer=t,this.renderer==="videoFrame"&&!$m()&&(this.renderer="2d"),this.wasmOption.yuvMode=this.renderer==="webgl"}decode(t,e=!1){var a,u;if(this.failedReason)return;this.inputFrameCount++;let r=new Uint8Array(t.data);if(!pA(r)||r.length<5)return this.stateChangeOB.next("FAILED"),this.close(`not h26x frame ${r.subarray(0,5)}`),t;let o=r[4]&31,s=!1;switch(o){case 5:case 7:s=!0;break}if(((a=this.decoder)==null?void 0:a.state)!=="configured")return this.track.log.debug(`not configured ${this.inputFrameCount}`),s&&(this.gop_before_configure=[]),this.gop_before_configure.push({data:t.data,timestamp:t.timestamp,type:t.type}),t;this.gop_before_configure.length>0&&!e&&(this.gop_before_configure.forEach(m=>this.decode(m,!0)),this.gop_before_configure=[]);let{timestamp:n}=t;if(s?(this.gop=this.gop_helper,this.gop_helper=0):this.gop_helper++,this.decoder){if(this.waitFirstKeyFrame)if(s)this.waitFirstKeyFrame=!1,this.startTimestamp=n,this.startTime=Date.now(),this.startPerformanceTime=_e();else{this.track.log.debug(`wait first key frame ${this.inputFrameCount} ${r.subarray(0,5).join(" ")}`);return}switch(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.decodeFrameCount<10||this.decodeFrameCount%500===0)&&this.track.log.debug(`decode ${this.decodeFrameCount} gop: ${this.gop} ${n} ${(u=t.getMetadata)==null?void 0:u.call(t).rtpTimestamp}`),this.decodeFrameCount++,this.lastDecodeFrameTimestamp=n,this.decoder.decode({data:t.data,type:t.type,timestamp:this.lastDecodeFrameTimestamp});return}return t}checkDowngradeByFrameDiff(){let t=this.downgradeLevel,e=this.decodeFrameCount-this.decodedFrameCount;e>this.lastFrameDiff?(this.downgradeLevel++,this.downgradeLevel>4&&(this.downgradeLevel=4)):e<=this.lastFrameDiff&&this.downgradeLevel>0&&this.downgradeLevel--,this.downgradeLevel!==t&&this.track.log.debug(`downgrade level ${t} to ${this.downgradeLevel} ${this.decodeFrameCount} frameDiff: ${e}, lastFrameDiff: ${this.lastFrameDiff}`),this.lastFrameDiff=e,this.lastDowngradeTime=Date.now()}checkDowngradeByTimestampDiff(t){let e=this.downgradeLevel;this.lastDecodeFrameTimestamp-t>9e4?(this.downgradeLevel++,this.downgradeLevel>4&&(this.downgradeLevel=4)):this.downgradeLevel>0&&this.downgradeLevel--,this.downgradeLevel!==e&&this.track.log.debug(`downgrade level ${e} to ${this.downgradeLevel}`)}pipe(t){return(e=>y(this,null,function*(){this._decodeSink=e;let r,o=t.mediaTrack;e.defer(()=>{var a;o&&(t.player.setCanvas(),t.setInputMediaStreamTrack(o)),r==null||r.close(),(a=this.videoContext)==null||a.destroy(),delete this._decodeSink});let{renderer:s,type:n}=this;t.log.info(`decoder type: ${this.type} renderer: ${this.renderer}`);try{switch(n){case"wasm":r=this.createDecoder(n,this.wasmOption);break;case"webCodecs":for(let u=0;u<=Vi.length;u++){let{supported:m}=yield VideoDecoder.isConfigSupported(this.config);if(m)break;if(u===Vi.length){e.error(3);return}Vi[u](this.config)}r=this.createDecoder(n);break;default:throw new Error("not supported yet")}let a=0;if(r.on("videoFrame",u=>{this.decodedFrameCount++,a++,(a<=10||a%500===0)&&t.log.debug(`frame ${a} ${this.decodedFrameCount}/${this.decodeFrameCount} decoded ${u.timestamp}`),Date.now()-this.lastDowngradeTime>5e3&&(this.type==="webCodecs"?this.checkDowngradeByFrameDiff():this.type==="wasm"&&this.checkDowngradeByTimestampDiff(u.timestamp)),e.next(u)}),r.on("error",u=>{t.log.error(u),e.error(n==="webCodecs"?4:8)}),yield r.initialize(this.videoElement),!this._decodeSink)return;if(r.configure(this.config),n==="wasm"&&s==="webgl"){this.videoContext=new It({frameRate:15,logger:t.log,name:t.userId}),this.videoContext.create(),this.videoContext.on(It.UNAVAILABLE,m=>{t.log.error(m),e.error(7)});let u=new il(this.videoContext);r.on("videoCodecInfo",m=>u.resize(m.width,m.height)),r.on("videoFrame",m=>{({y:u.Y,u:u.U,v:u.V}=m),this.downgradeLevel===1?this.decodedFrameCount%2===0&&u.render(this.decodedFrameCount):u.render(this.decodedFrameCount)}),t.source=u,t.player.setCanvas(this.videoContext._canvas,2)}else if(s==="videoFrame"){t.player.setCanvas();let u=new MediaStreamTrackGenerator({kind:"video"}),m=u.writable.getWriter();t.setInputMediaStreamTrack(u),r.on("videoFrame",p=>m.write(p))}else{this.videoContext=new Nt({frameRate:15,logger:t.log,name:t.userId}),this.videoContext.create({alpha:!1});let u=this.videoContext.createVideoImageSource();r.on("videoFrame",p=>{try{u.image=p,u.update()}catch(g){delete this.goodType,t.log.error(g),e.error(11)}});let m=new ms(this.videoContext,{name:"remotePlayer",logger:t.log});u.connect(m),t.source=u,t.player.setCanvas(this.videoContext._canvas,2)}this.decoder=r}catch(a){t.log.error(a),e.error(n==="webCodecs"?2:6)}}))}};var Tc=class extends aT.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,"_rotation",0);l(this,"cameraTrack");l(this,"cameraNode");l(this,"transformNode");l(this,"mixNode");l(this,"screenTrack");l(this,"screenNode");l(this,"selfModel",!1);l(this,"blurRadius",3);l(this,"arTrack");l(this,"_enableFaceCentering",!1);l(this,"_enableEffectOptimization",!1);l(this,"onAbort");l(this,"_color");l(this,"Wasm");l(this,"waterMarkNode");l(this,"_waterMarkOption");l(this,"watermarkImageList",[]);l(this,"_beautyParams");l(this,"isUsingArTrack",!1);l(this,"mixTrack");l(this,"_isMixScreen",!1);l(this,"_virtualBackground");l(this,"_virtualBackgroundAbortCallback");l(this,"virtualBackgroundInstance");l(this,"_bgAssetPath");l(this,"log",$.createLogger({id:"vm"}));l(this,"_mat4");l(this,"_postProcessing");l(this,"_checkId",0);l(this,"_use2d",!1);l(this,"_autoSwitchRenderMode",!0);l(this,"encodePipeline",[]);l(this,"decodePipeline",[]);e&&(this.log.setUserId(e.userId),this.log.setSdkAppId(e.sdkAppId)),this.smallVideoContext=new Nt({frameRate:15,logger:this.log,name:"s"}),this.enablePrintDetail()}get smallMode(){var e;return((e=this.room)==null?void 0:e.smallMode)||"canvas"}get _hasVirtualBg(){return!!this._virtualBackground}get _hasWaterMark(){return this.watermarkImageList.length>0}get _isRotate(){return this._rotation!==0}get _isTransform(){return this._isMirror||this._isRotate}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())}get cameraResolution(){var o;let{width:e,height:r}=((o=this.cameraTrack)==null?void 0:o.settings)||{};return sr(this._rotation)?{width:r,height:e}:{width:e,height:r}}get2dVideoContext(){return this._2dVideoContext?this._2dVideoContext.destroy():this._2dVideoContext=new Nt({frameRate:15,logger:this.log,name:"m"}),this._2dVideoContext.create({alpha:this._hasWaterMark||this._hasVirtualBg}),this._2dVideoContext}getGlVideoContext(){if(!this._glVideoContext)this._glVideoContext=new It({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(It.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(o=>{this.log.error(o)})})}catch(e){this.emit("error",e)}}initVirtualBackground(e,r,o){this.onAbort=e,this._mat4=r,this._postProcessing=o}enablePrintDetail(e=2e3){this._checkId=dt.run("interval",()=>{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(),dt.clearTask(this._checkId)}get needAlpha(){return this._hasWaterMark||this._hasVirtualBg}get active(){return(mr||this._isMixScreen||this._isTransform||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 It({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}setSmallVideo(e,r){if(this.smallMode!=="api")if(e){if(!this.smallVideoContext.available){if(this.smallVideoContext.create({alpha:!1}),!this.smallVideoContext.available)return;this.smallDestination=new Su(this.smallVideoContext,e,this.log),this.smallVideoContext.on(It.UNAVAILABLE,o=>{this.log.warn("small video context lost",o)})}if(this.smallVideoContext.frameRate=e.frameRate,this.smallDestination.resolution=e,r)this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource),this.smallImageSource?this.smallImageSource.image=r:(this.smallImageSource=this.smallVideoContext.createVideoImageSource(r),this.smallImageSource.resize(r.width,r.height),this.smallImageSource.connect(this.smallDestination));else if(this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource)this.smallTrackSource.replaceTrack(this.initialTrack);else{this.smallTrackSource=this.smallVideoContext.createVideoTrackSource(this.initialTrack,"smallTrackSource");let{width:o,height:s}=this.cameraTrack.settings;this.smallTrackSource.resize(o,s),this.smallTrackSource.connect(this.smallDestination)}}else this.smallVideoContext.available&&(this.smallVideoContext.destroy(),delete this.smallDestination,delete this.smallTrackSource,delete this.smallImageSource)}_setMainOutput(e){var r;try{let o=this.cameraTrack,{small:s,player:n}=o;mr&&n.setCanvas(e);let a=e&&((r=this.destination)==null?void 0:r.videoTrack)||this.initialTrack;return this.isUsingArTrack&&this.arTrack&&(this.emit("output-track-changed"),a=this.arTrack),this.log.info(`set main output ${a?a.label:"no output track"}`),this.setSmallVideo(s,e),o.setOutputMediaStreamTrack(a)}catch(o){this.log.error("set main output failed",o)}}update(e=!1){return y(this,null,function*(){var s;if(!this.cameraTrack||!this.initialTrack)return;if(!this.active)return this.cameraNode&&this.clear(),this._setMainOutput();let{settings:r,profile:o}=this.cameraTrack;if(this._use2d||!this._virtualBackground&&!this._beautyParams)this.destination||(this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log}),this.destination.on(Rt.RENDER,n=>{var a;(a=this.cameraTrack)==null||a.emit("render",n)})),wt===16?this.initialTrack instanceof CanvasCaptureMediaStreamTrack?(this.cameraNode&&(this.cameraNode instanceof fr?(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 fr?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(r.width,r.height);else if(e&&this.cameraNode&&this.destination)this.cameraNode.replaceTrack(this.initialTrack);else{this.cameraNode&&this.cameraNode.close(),this.destination?this.destination.disableCheckMute():(this.destination=new Iu(this.videoContext,{name:"mainDestination",logger:this.log}),this.destination.on(Rt.RENDER,m=>{var p;(p=this.cameraTrack)==null||p.emit("render",m)}));let{width:n,height:a}=this.cameraResolution,u=yield this.getWatermarkImage(n,a);this._waterMarkOption={x:0,y:0,width:u.width,height:u.height,image:u},this.cameraNode=new rl(this.videoContext,{input:this.initialTrack,width:n,height:a,mirror:this._isMirror,rotation:this._rotation,bg:this._virtualBackground,selfModel:this.selfModel,waterMark:this._waterMarkOption,beautyParams:this._beautyParams,useTflite:!0,blurRadius:this.blurRadius,assetPath:this._bgAssetPath,Wasm:this.Wasm,enableFaceCentering:this._enableFaceCentering,enableEffectOptimization:this._enableEffectOptimization,onAbort:this.onAbort,mat4:this._mat4,postProcessing:this._postProcessing,color:this._color}),this.cameraNode.connect(this.destination),this.destination.enableCheckMute(),yield this.cameraNode.predictReady}if(this.videoContext.frameRate=o.frameRate,this._use2d){let n=this.cameraNode;if(n.disconnect(),this._isTransform&&(this.transformNode?(this.transformNode.mirror=this._isMirror,this.transformNode.rotation=this._rotation):this.transformNode=new gr(this.videoContext,this.log,this._isMirror,this._rotation),n=n.connect(this.transformNode),n.disconnect(),this.log.info(`start mirror ${this._isMirror} rotate ${this.rotation}`)),this.mixNode&&this.mixNode.close(),delete this.mixNode,this._isMixScreen||this._hasWaterMark){if(this.mixNode=new _n(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;else if(this.waterMarkNode){let{width:u,height:m}=this.cameraResolution;this.waterMarkNode.image=yield this.getWatermarkImage(u,m),u&&m&&this.waterMarkNode.resize(u,m)}(s=this.waterMarkNode)==null||s.connect(this.mixNode,{zIndex:2}),this._isMixScreen&&this.screenTrack&&(this.screenNode||(this.screenNode=this.videoContext.createVideoTrackSource(this.screenTrack.mediaTrack,"screenNodeSource"),this.screenNode.resize(this.screenTrack.settings.width,this.screenTrack.settings.height)),this.screenNode.shouldUpdate=!1,this.screenNode.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)})}clearLastFrame(){var e;this.destination&&((e=this.destination.ctx2d)==null||e.clearRect(0,0,this.destination.width,this.destination.height))}changeInput(e){var r,o,s,n,a;if(e instanceof ei)return this.log.info("change screen input",(r=e.mediaTrack)==null?void 0:r.label),this.setScreenTrack(e);if(e instanceof cr)return this.log.info("change video input",(o=e.mediaTrack)==null?void 0:o.label),this.setCameraTrack(e);if(e instanceof ho){this.log.info("change remote input",(s=e.mediaTrack)==null?void 0:s.label);let u=e.mediaTrack;return e.setOutputMediaStreamTrack(u)}if(e instanceof ps)return this.log.info("change mix input",(n=e.outMediaTrack)==null?void 0:n.label),this.setMixTrack(e);this.log.warn("change unknown input",(a=e.mediaTrack)==null?void 0:a.label)}removeInput(e){var r;e instanceof ei?((r=this.screenNode)==null||r.close(),delete this.screenNode,delete this.screenTrack,this.update()):e instanceof cr?this._isMixScreen?(delete this.cameraNode,this.cameraTrack._inputTrack=null,this.update()):(this.clear(),delete this.cameraTrack,this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource)):e instanceof ho?e.source&&e.source.context.destroy():e instanceof ps&&(delete this.mixTrack,this.update())}setMixTrack(e){this.mixTrack=e}setCameraTrack(e){return this.cameraTrack=e,this.update(!0)}setScreenTrack(e){return y(this,null,function*(){return this.screenTrack=e,this._isMixScreen&&(this.screenNode?this.screenNode.replaceTrack(e.mediaTrack):yield this.update()),e.setOutputMediaStreamTrack(e.mediaTrack)})}getWatermarkImage(e,r){return y(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:q.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:u,width:m,height:p})=>{s.drawImage(n,a,u,m,p)}),Gs(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 y(this,null,function*(){this._beautyParams=e,this.update()})}stopBeauty(){return y(this,null,function*(){this._beautyParams=void 0,this.update()})}setWatermark(e){return y(this,null,function*(){let r;try{r=yield Gs((e==null?void 0:e.imageElement)||e.imageUrl)}catch(g){throw new de({code:q.INVALID_PARAMETER,message:`load image failed, url: ${e.imageUrl}`})}let{x:o=0,y:s=0,width:n=r.width,height:a=r.height,type:u="watermark",zIndex:m=2}=e;this.watermarkImageList.some(g=>g.type===u)?(this.watermarkImageList=this.watermarkImageList.filter(g=>g.type!==u),this.pushWaterMarkImageList({x:o,y:s,width:n,height:a,image:r,zIndex:m,type:u,imageUrl:e.imageUrl}),r=yield this.getWatermarkImage(this.cameraResolution.width,this.cameraResolution.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:n,height:a,image:r,zIndex:m,type:u,imageUrl:e.imageUrl}),yield this.freshWatermark()),this.log.info("set watermark",JSON.stringify(this.watermarkImageList,(g,T)=>g==="imageUrl"?void 0:T))})}deleteWatermark(e="watermark"){return y(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 y(this,null,function*(){var s;(s=this.waterMarkNode)==null||s.close(),delete this.waterMarkNode,delete this._waterMarkOption;let{width:e,height:r}=this.cameraResolution,o=yield this.getWatermarkImage(e,r);this._waterMarkOption={x:0,y:0,width:o.width,height:o.height,image:o},this.update()})}setVirtualBackground(e){return y(this,null,function*(){var r,o,s;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 Gs(e.imageUrl):(this.blurRadius=e.blurLevel||this.blurRadius||3,this._virtualBackground=e.type),this._enableFaceCentering=(r=e.enableFaceCentering)!=null?r:this._enableFaceCentering,this._enableEffectOptimization=(o=e.enableEffectOptimization)!=null?o:this._enableEffectOptimization,this._color=(s=e.color)!=null?s:[0,1,0]}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:q.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._isTransform||((r=this.transformNode)==null||r.close(),delete this.transformNode),this.update())}get mirror(){return this._isMirror}set rotation(e){var r;this._rotation!==e&&(this._rotation=e,this._isTransform||((r=this.transformNode)==null||r.close(),delete this.transformNode),this.update())}get rotation(){return this._rotation}enableAr(e){this.arTrack=e,this.isUsingArTrack=!0,this.update()}updateAr(){return y(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 ol(e)}clear(){var e,r;(e=this.videoContext)==null||e.disconnect(),(r=this.destination)==null||r.removeAllListeners(),delete this.destination,delete this.cameraNode,delete this.transformNode,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}};K([qg(function(e){this.log.error("update failed",e)})],Tc.prototype,"update",1);var gA=0;var sl=class extends le{constructor(e){super("room");l(this,"seq",++gA);l(this,"sdkAppId");l(this,"userId");l(this,"userSig");l(this,"privateMapKey");l(this,"latencyLevel");l(this,"tinyId");l(this,"scene");l(this,"roomId");l(this,"useStringRoomId");l(this,"role","anchor");l(this,"joinParams",null);l(this,"localPublishFlag",0);l(this,"localTracks",new Set);l(this,"enableAutoPlayDialog",!0);l(this,"autoReceiveAudio",!0);l(this,"autoReceiveVideo",!0);l(this,"proxy_ws");l(this,"proxy_wt");l(this,"proxy_unified");l(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,isH265EncodeSupported:!0,isH265DecodeSupported:!0}});l(this,"keyPointManager");l(this,"audioManager");l(this,"videoManager");l(this,"callDurationCalculator");l(this,"badCaseDetector");l(this,"scheduleResult",{domains:null,iceServers:null,iceTransportPolicy:null,trtcAutoConf:null});l(this,"videoDecodeFallbackType");l(this,"smallMode","canvas");l(this,"enableChorus",!1);l(this,"_isUsingCachedSchedule",!1);l(this,"_log",$.createLogger({id:`r${this.seq}`}));l(this,"_joinedTimestamp",0);l(this,"_sdkType");l(this,"heartbeatReport");l(this,"quality");l(this,"enableSEI");l(this,"isDestroyed",!1);this.useStringRoomId=!!e.useStringRoomId,Ze(e.autoReceiveAudio)&&(this.autoReceiveAudio=e.autoReceiveAudio),Ze(e.autoReceiveVideo)&&(this.autoReceiveVideo=e.autoReceiveVideo),Ze(e.enableAutoPlayDialog)&&(this.enableAutoPlayDialog=e.enableAutoPlayDialog),this._sdkType=e.sdkType,this.keyPointManager=new iT({room:this,frameWorkType:e.frameWorkType,component:e.component,language:e.language}),this.callDurationCalculator=new oT({room:this}),this.badCaseDetector=new sT({room:this}),this.audioManager=new bu(this),this.videoManager=new Tc(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 y(this,null,function*(){return this.publish(e)})}removeTrack(e){return y(this,null,function*(){return this.unpublish(e)})}replaceTrack(e){return y(this,null,function*(){})}setEncodedDataProcessingListener(e){throw new Error("Method not implemented.")}enableAIVoice(e){throw new Error("Method not implemented.")}setProxyServer(e){if(De(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:n,unifiedProxy:a}=e;this.proxy_ws=r,this.proxy_wt=o,this.proxy_unified=a,a?(Lu([a,a]),Po(`https://${a}`)):(s&&Po(s),n&&Lu(n))}V.once(F.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({sched_domain:ii.main,sched_back_domain:ii.backup,signal_domain:this.proxy_ws||this.proxy_wt||""}))}getRemoteAudioStats(){return y(this,null,function*(){let e={};return this.remotePublishedUserMap.forEach(r=>{e[r.userId]=r.remoteAudioTrack.stat}),e})}getTransportStats(){return y(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 y(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:q.INVALID_OPERATION,message:Be({key:$e.CLIENT_DESTROYED,data:{funName:"join"}})})}destroy(){if(this.isJoined)throw this._log.warn(Qt.INVALID_DESTROY),new de({code:q.INVALID_OPERATION,message:Be({key:$e.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,V.emit(F.ROOM_DESTROY,{room:this})}schedule(e,r){return y(this,null,function*(){var s,n,a,u;let o=_e();try{let{isCached:m,result:p,detailCost:g}=yield fp({userId:this.userId,sdkAppId:this.sdkAppId,roomId:this.useStringRoomId?e.strRoomId:e.roomId,useStringRoomId:this.useStringRoomId,version:at,userSig:this.userSig,role:this.scene==="live"?e.role:void 0,frameWorkType:r,latencyLevel:e.latencyLevel});this._isUsingCachedSchedule=m,this._log.info(`schedule cache:${+m} ${lr(p,{keysToExclude:["username","credential"]})}`),m&&V.once(F.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({scheduleCache:1})),this.scheduleResult=J(J({},this.scheduleResult),p),ke((s=p.config)==null?void 0:s.retryCount)&&xl(p.config.retryCount),De((n=p.config)==null?void 0:n.loggerDomain)&&Po(p.config.loggerDomain),this.videoDecodeFallbackType=((a=p.config)==null?void 0:a.videoDecodeFallback)||this.videoDecodeFallbackType,this.smallMode=((u=p.config)==null?void 0:u.smallMode)||this.smallMode,V.emit(F.JOIN_SCHEDULE_SUCCESS,{room:this,schedule:this.scheduleResult,detailCost:g}),X.addSuccessEvent({key:521700,cost:_e()-o})}catch(m){throw X.addFailedEvent({key:521700,error:m}),m}})}sendAbilityStatus(e){}enableInsertableStreams(){return Promise.resolve()}switchRoom(e){return Promise.reject()}isSwitchRoomSupported(){return!1}};function cT(i,t=!1){let e=Object.defineProperties(bt(),{postMessage:{value:i.postMessage.bind(i)},port:{get(){return i},set(o){i.onmessage=He,i.onmessageerror=He,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 kp=class extends fe{constructor(t,e){super(t);let r=new fe(t);r.next=He,e(r)}},jH=Ee(kp,"takeUntilComplete");var Ot={useWt:!0,useAINS:!0,useHardDecoder:"prefer-software",useHardEncoder:"prefer-software",unreliable:!1,debug:!1,assetsPath:"",enableUpload:!0},dT="__INLINE__WORKER__",uT="__INLINE__WASM__",{debug:lT}=console;Ot.debug||(console.debug=()=>{});var EA=!dT.startsWith("__"),TA=!uT.startsWith("__");function nl(){let i=Ho(`${Ot.assetsPath?`${Ot.assetsPath}/`:""}worker.js`);return EA?URL.createObjectURL(new Blob([atob(dT)],{type:"application/javascript"})):i.startsWith("http")?fetch(i).then(t=>t.blob().then(e=>URL.createObjectURL(e))):i}var _c;function al(){return y(this,null,function*(){let i=Ot.assetsPath?`${Ot.assetsPath}/`:"";return _c||(TA?_c=new TextEncoder().encode(atob(uT)).buffer:_c=yield fetch(Ho(`${i}av_processing.wasm`)).then(t=>t.arrayBuffer()),_c)})}var Lp=class{constructor(){l(this,"playPort");l(this,"playPortSent",!1);l(this,"worklet");l(this,"workletPromise")}init(){return this.workletPromise||(this.workletPromise=this._init()),this.workletPromise}_init(){return y(this,null,function*(){let t=We("player"),e=nl();try{yield t.audioWorklet.addModule(typeof e=="string"?e:yield e),$.info("global audio player worklet addModule success",e)}catch(r){throw $.error("global audio player worklet addModule failed:",r),r}return this.worklet=new AudioWorkletNode(t,"global-audio-player",{processorOptions:{wasm:yield al(),flag:Ot},numberOfInputs:2}),$.info("global audio player worklet created",t.state),this.worklet.connect(t.destination),this.playPort=this.worklet.port,this.playPort})}playAudio(t){return y(this,null,function*(){this.playPortSent||(this.playPortSent=!0,t(yield this.init()))})}},cl=new Lp;var Up=(()=>{if(typeof self=="undefined")return!1;if(!("top"in self&&self!==top)){if("showOpenFilePicker"in self)return"showOpenFilePicker"}return!1})(),KH=Up?Promise.resolve().then(function(){return yA}):Promise.resolve().then(function(){return NA});var e4=Up?Promise.resolve().then(function(){return bA}):Promise.resolve().then(function(){return wA});var _A=Up?Promise.resolve().then(function(){return vA}):Promise.resolve().then(function(){return OA});function Vp(...i){return y(this,null,function*(){return(yield _A).default(...i)})}var IA=i=>y(null,null,function*(){let t=yield i.getFile();return t.handle=i,t}),SA=(...t)=>y(null,[...t],function*(i=[{}]){Array.isArray(i)||(i=[i]);let e=[];i.forEach((s,n)=>{e[n]={description:s.description||"Files",accept:{}},s.mimeTypes?s.mimeTypes.map(a=>{e[n].accept[a]=s.extensions||[]}):e[n].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(IA));return i[0].multiple?o:o[0]}),yA={__proto__:null,default:SA};function dl(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 dl=function(e){this.s=e,this.n=e.next},dl.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 dl(i)}var mT=(o,s,...n)=>y(null,[o,s,...n],function*(i,t,e=i.name,r){let a=[],u=[];var m,p=!1,g=!1;try{for(var T,A=(function(C){var D,w,O,Y=2;for(typeof Symbol!="undefined"&&(w=Symbol.asyncIterator,O=Symbol.iterator);Y--;){if(w&&(D=C[w])!=null)return D.call(C);if(O&&(D=C[O])!=null)return new dl(D.call(C));w="@@asyncIterator",O="@@iterator"}throw new TypeError("Object is not async iterable")})(i.values());p=!(T=yield A.next()).done;p=!1){let C=T.value,D=`${e}/${C.name}`;C.kind==="file"?u.push(C.getFile().then(w=>(w.directoryHandle=i,w.handle=C,Object.defineProperty(w,"webkitRelativePath",{configurable:!0,enumerable:!0,get:()=>D})))):C.kind!=="directory"||!t||r&&r(C)||a.push(mT(C,t,D,r))}}catch(C){g=!0,m=C}finally{try{p&&A.return!=null&&(yield A.return())}finally{if(g)throw m}}return[...(yield Promise.all(a)).flat(),...yield Promise.all(u)]}),AA=(...t)=>y(null,[...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 mT(e,i.recursive,void 0,i.skipDirectory)}),bA={__proto__:null,default:AA},RA=(s,...n)=>y(null,[s,...n],function*(i,t=[{}],e=null,r=!1,o=null){Array.isArray(t)||(t=[t]),t[0].fileName=t[0].fileName||"Untitled";let a=[],u=null;if(i instanceof Blob&&i.type?u=i.type:i.headers&&i.headers.get("content-type")&&(u=i.headers.get("content-type")),t.forEach((g,T)=>{a[T]={description:g.description||"Files",accept:{}},g.mimeTypes?(T===0&&u&&g.mimeTypes.push(u),g.mimeTypes.map(A=>{a[T].accept[A]=g.extensions||[]})):u?a[T].accept[u]=g.extensions||[]:a[T].accept["*/*"]=g.extensions||[]}),e)try{yield e.getFile()}catch(g){if(e=null,r)throw g}let m=e||(yield window.showSaveFilePicker({suggestedName:t[0].fileName,id:t[0].id,startIn:t[0].startIn,types:a,excludeAcceptAllOption:t[0].excludeAcceptAllOption||!1}));!e&&o&&o(m);let p=yield m.createWritable();return"stream"in i?(yield i.stream().pipeTo(p),m):"body"in i?(yield i.body.pipeTo(p),m):(yield p.write(yield i),yield p.close(),m)}),vA={__proto__:null,default:RA},CA=(...t)=>y(null,[...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(m=>m.mimeTypes||[]),...i.map(m=>m.extensions||[])].join();o.multiple=i[0].multiple||!1,o.accept=s||"",o.style.display="none",document.body.append(o);let n=m=>{typeof a=="function"&&a(),e(m)},a=i[0].legacySetup&&i[0].legacySetup(n,()=>a(r),o),u=()=>{window.removeEventListener("focus",u),o.remove()};o.addEventListener("click",()=>{window.addEventListener("focus",u)}),o.addEventListener("change",()=>{window.removeEventListener("focus",u),o.remove(),n(o.multiple?Array.from(o.files):o.files[0])}),"showPicker"in HTMLInputElement.prototype?o.showPicker():o.click()})}),NA={__proto__:null,default:CA},DA=(...t)=>y(null,[...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=a=>{typeof n=="function"&&n(),e(a)},n=i[0].legacySetup&&i[0].legacySetup(s,()=>n(r),o);o.addEventListener("change",()=>{let a=Array.from(o.files);i[0].recursive?i[0].recursive&&i[0].skipDirectory&&(a=a.filter(u=>u.webkitRelativePath.split("/").every(m=>!i[0].skipDirectory({name:m,kind:"directory"})))):a=a.filter(u=>u.webkitRelativePath.split("/").length===2),s(a)}),"showPicker"in HTMLInputElement.prototype?o.showPicker():o.click()})}),wA={__proto__:null,default:DA},MA=(e,...r)=>y(null,[e,...r],function*(i,t={}){Array.isArray(t)&&(t=t[0]);let o=document.createElement("a"),s=i;"body"in i&&(s=yield(function(u,m){return y(this,null,function*(){let p=u.getReader(),g=new ReadableStream({start:C=>(function D(){return y(this,null,function*(){return p.read().then(({done:w,value:O})=>{if(!w)return C.enqueue(O),D();C.close()})})})()}),T=new Response(g),A=yield T.blob();return p.releaseLock(),new Blob([A],{type:m})})})(i.body,i.headers.get("content-type"))),o.download=t.fileName||"Untitled",o.href=URL.createObjectURL(yield s);let n=()=>{typeof a=="function"&&a()},a=t.legacySetup&&t.legacySetup(n,()=>a(),o);return o.addEventListener("click",()=>{setTimeout(()=>URL.revokeObjectURL(o.href),3e4),n()}),o.click(),null}),OA={__proto__:null,default:MA};var Fp=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){return y(this,null,function*(){if(this.ready)return this.ready;t||(t=this.name),console.time(`createWorker_${t}`);let e=nl(),r=new Worker(typeof e=="string"?e:yield e,{name:t});return this.worker=r,this.ready=new Promise((o,s)=>y(this,null,function*(){r.onmessage=({data:{id:n,type:a,payload:u}})=>{var m;if(n)(m=this.transactions.get(n))==null||m(u),this.transactions.delete(n);else switch(a){case"error":console.timeEnd(`createWorker_${t}`),console.warn("worker error:",u),s(u);break;case"ready":console.timeEnd(`createWorker_${t}`),o(this);break;case"updateAFSM":if(u.value){let p=typeof u.old=="string"?u.old:`${u.old.action}ing`,g=typeof u.value=="string"?u.value:`${u.value.action}ing`;console.log(id(),u.group,u.name,p,"\u{1F449}",g)}break;case"log":console.log(u);break;case"glog":window.dispatchEvent(new CustomEvent(a,{detail:u}));break}},r.postMessage({wasm:yield al(),flag:Ot},this.ports)}))})}destroy(){var t;console.log("destroy worker",this.name),delete this.ready,(t=this.worker)==null||t.terminate()}},$p=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()}},Bp=class i extends Fp{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 y(this,null,function*(){return this.ready?this.ready:(this.extendChannel=new MessageChannel,this.ports=[this.extendChannel.port2],yield Ut(i.prototype,this,"create").call(this),this.switchValue.forEach((e,r)=>{this.extendChannel.port1.postMessage([r,e])}),this)})}},_o=new Bp,Ss,xA=-1;function hT(i){return console.log(i),Ss.push(i.slice()),Ss.length>1e3&&Ss.shift(),i}function pT(i){return y(this,null,function*(){switch(xA){case 0:this.edpl.willDecodeAudio=hT;break;case 2:this.edpl.didEncodeAudio=hT;break}yield _o.create(),V.emit(F.JOIN_SEND_CMD,{room:this});let t=new $p(_o,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:n,payload:a}=s;this.onWorkerEvent(n,a)}}),{err:e,data:r}=yield t.ready;if(typeof e=="number"){if(V.emit(F.JOIN_RECEIVED_CMD_RES,{room:this,code:e}),e===0)return Object.assign(this,r,{session:t});throw new de({code:q.JOIN_ROOM_FAILED,extraCode:Number(e),message:Be({key:$e.SIGNAL_CHANNEL_SETUP_FAILED,data:{errorCode:e,errorMsg:""}})})}else throw e})}Object.defineProperties(window,{useAINS:{set:Hp},useWt:{set:PA},enableDebug:{set(i){console.debug=i?lT:()=>{},_o.setSwitchValue("enableDebug",i)}},useV2:{set:Wp},dump:{value(){if(Ss||(console.warn("dump audio will be activated at next time join room"),Ss=[]),!Ss.length){console.warn("no audio data to dump,try it later");return}let i=[];return Ss.forEach(t=>{i.push(new Uint16Array([t.length])),i.push(t)}),Vp(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;_o.extendChannel.port1.postMessage(["dump",i],[s.port1]),s.port2.onmessage=({data:n})=>{console.log(n),e.push(n),e.length>t&&(s.port2.onmessage=null,_o.extendChannel.port1.postMessage(["dump",i]),s.port2.close(),o(new Blob(e)))}});return Vp(r,{fileName:i,extensions:[".pcm"]})}},hardDec:{set(i){switch(i){case!0:Ot.useHardDecoder="prefer-hardware";break;case!1:Ot.useHardDecoder="prefer-software";break;default:Ot.useHardDecoder="no-preference"}}}});function Hp(i){return y(this,null,function*(){_o.setSwitchValue("useAINS",i)})}function Wp(i){return y(this,null,function*(){_o.setSwitchValue("useV2",i)})}function PA(i){return y(this,null,function*(){_o.setSwitchValue("useWt",i)})}function fT(i){let t=new MediaStreamTrackGenerator({kind:"audio"});i.setInputMediaStreamTrack(t),i.player.setVolume(0),this.postMessage({cmd:"pullAudio",payload:{tinyId:i.tinyId,writable:t.writable}},[t.writable])}function gT(i){return y(this,null,function*(){var o;this._log.info("pull video",i);let t=Date.now(),e=0,r=new MessageChannel;this.postMessage({cmd:"pullVideo",payload:{mediaType:i.mediaType,tinyId:i.tinyId}},[r.port1]),(o=i.stat).framesReceived||(o.framesReceived=0),Ae(cT(r.port2),Xe(be(i,le.INIT)),Le(s=>{let{data:n,packetsReceived:a}=s;i.stat.packetsReceived=a,i.stat.framesReceived++,e++;let u=n[4]&31;if(e<=10){let p=Array.from(n.slice(0,10)).map(g=>g.toString(16).padStart(2,"0")).join(" ");this._log.info(`Frame ${e} - Size: ${n.length} bytes, Type: ${u}, Timestamp: ${Date.now()-t}ms First 10 bytes: ${p}`)}let m;switch(u){case 5:case 7:m="key";break;default:m="delta";break}i.isAvailable?i.decodeFrame({data:n.buffer,type:m,timestamp:(Date.now()-t)*1e3}):console.warn("track is not available")},()=>{},()=>{r.port2.postMessage(null),r.port2.close()}))})}var ul=[];function TT(i){var u;let t=bt();if(this.state!=="joined")throw new Error("Room is not joined");if(i.state==="publish")return;for(let m=0;m<=ul.length;m++)if(!ul[m]){ul[m]=this,this.index=m;break}let e=i.profile;this._log.info("start push audio",this.index,e);let r=new MessageChannel,o=i.enableEncodeFrame?new MessageChannel:null;(u=this.session)==null||u.postMessage({cmd:"pushAudio",payload:J({index:this.index},e)},o?[r.port2,o.port2]:[r.port2]),r.port1.onmessage=m=>{m.data==null||(typeof m.data=="number"?t.next(m.data):o&&o.port1.postMessage(ge(J({},m.data),{data:new Uint8Array(i.encodeFrame({data:m.data.data.buffer,timestamp:m.data.timestamp}).data)})))};let s=new MediaStream,n,a=m=>{let p=s.getAudioTracks()[0];p&&(n.disconnect(),s.removeTrack(p)),s.addTrack(m),this._log.info("push audio track:",m.readyState,m.getSettings().deviceId),n=We("player").createMediaStreamSource(s),n.connect(cl.worklet,0,this.index)};Ae(be(i,"output-media-track-changed"),Xe(be(i,"ready")),Le(a,console.error,()=>{this._log.info("stop push audio",e),i.volume=0,n.disconnect(),ul[this.index]=null,o&&o.port1.postMessage(null),r.port1.postMessage(null)})),Ae(t,tc(m=>i.volume=m),Oi(_u(1e3)),Le(()=>{i.volume=0})),a(i.outMediaTrack)}var P4=new Intl.DateTimeFormat("zh-CN",{dateStyle:"short",timeStyle:"medium"});var Gp=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,"session");l(this,"tsMap",new Map);t._log.info("create Video Encoder",r)}trans(t,e,r){return y(this,null,function*(){let o=yield this.recreate(r,{recreateCount:0});e.signal.addEventListener("abort",()=>{o.encoder.close()});let s=0;return t.pipeThrough(new TransformStream({transform:(n,a)=>{o.encoder.state==="configured"&&(this.tsMap.set(s,Date.now()),this.encode(n),s++,a.enqueue(n))}}),e)})}encode(t){var e,r;(r=(e=this.session)==null?void 0:e.encoder)==null||r.encode(t,{keyFrame:this.insertKeyFrame}),this.insertKeyFrame=!1}start(t,e,r){return y(this,null,function*(){let o=yield this.recreate(r,{recreateCount:0,frameEncoded:0});this.session=o;let s=0;t.pipeTo(new WritableStream({write:n=>{o.encoder.state==="configured"&&(s<10&&this.localTrack.log.info(`capture ${this.label} track frame:`,s,Date.now(),n.timestamp,n.displayWidth,n.displayHeight),(n.displayWidth!==this.config.width||n.displayHeight!==this.config.height)&&(this.localTrack.log.info("resize video track frame:",n.displayWidth,n.displayHeight,this.config.width,this.config.height),this.configure({width:n.displayWidth,height:n.displayHeight},o)),this.tsMap.set(s,Date.now()),this.encode(n),s<10&&this.localTrack.log.info(`encode ${this.label} track frame:`,s),s++,n.close())}}),e).catch(n=>{this.localTrack.log.warn(n),o.encoder.close()})})}recreate(t,e){return y(this,null,function*(){let r=0,o=new VideoEncoder({output:s=>{let n=this.tsMap.get(r);if(this.tsMap.delete(s.timestamp),r<10&&(r===0&&e.recreateCount===0&&V.emit(F.SEND_FIRST_VIDEO_FRAME,{room:t}),this.localTrack.log.info(`encoded ${this.label} track frame:`,r,Date.now(),s.timestamp)),r++,e.frameEncoded=r,this.track.enabled===!1)return;let a=null;if(this.localTrack.enableEncodeFrame){a=new Uint8Array(s.byteLength),s.copyTo(a);let u=this.localTrack.encodeFrame({data:a.buffer},this.type===3);a=new Uint8Array(u.data)}a?(this.localTrack.stat.bytesSent+=a.length,this.port.postMessage({chunk:{type:s.type,timestamp:s.timestamp,data:a,duration:s.duration},timestamp:n},[a.buffer])):(this.localTrack.stat.bytesSent+=s.byteLength,this.port.postMessage({chunk:s,timestamp:n}))},error:s=>{this.localTrack.log.warn(s,this.config),e.recreateCount++,setTimeout(()=>this.recreate(t,e),100)}});return e.encoder=o,yield this.configure({},e),e})}configure(t,e){return y(this,null,function*(){var r;if(Object.assign(this.config,t),e.frameEncoded===0)for(let o=0;o<=Vi.length;o++){let{supported:s}=yield VideoDecoder.isConfigSupported(this.config);if(s)break;if(o===Vi.length)return;Vi[o](this.config)}else e.recreateCount<=Vi.length&&Vi[e.recreateCount-1](this.config);(r=e.encoder)==null||r.configure(this.config)})}close(){this.port.postMessage(null),this.port.close()}};function ll(i,t){return y(this,null,function*(){let e=i.mediaType===2,r=e?"screen":"video",o={codec:"avc1.640028",latencyMode:"realtime",avc:{format:"annexb"},hardwareAcceleration:Ot.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 n=new Gp(i,t.type,o,s.port2);return s.port2.onmessage=a=>{if(a.data===260)n.insertKeyFrame=!0;else if(!e){let{bitrate:u}=a.data;aa({configureBr:[a.data.bitrate,u]}),n.session&&n.configure({bitrate:u},n.session)}},this._log.info("start push",r,t),n})}function _T(i){return y(this,null,function*(){var p;let t=i.mediaType===2,e=t?"screen":"video",r={type:t?7:2,profile:i.profile,trackType:t?"screen":"camera",crypto:!!((p=i.manager)!=null&&p.encodePipeline[0])};!t&&i.outMediaTrack instanceof CanvasCaptureMediaStreamTrack&&(r.trackType="canvas");let{trackType:o}=r,{width:s,height:n}=i.outMediaTrack.getSettings();r.profile.width=s,r.profile.height=n;let a=yield ll.call(this,i,r);this._log.info("VideoEncoder created",r);let u,m=g=>y(this,null,function*(){if(u==null||u.abort("track changed"),!g)return;u=new AbortController;let{width:T,height:A,displaySurface:C}=g.getSettings();T&&(a.config.width=T),A&&(a.config.height=A);let D=nr.match(/Chrome\/(\d+)/);(D==null?void 0:D[1])==="114"&&C==="browser"&&delete a.config.hardwareAcceleration,this._log.info("push",e,"track:",g.readyState,g.getSettings());let w;if(typeof MediaStreamTrackProcessor!="undefined"&&!(g instanceof CanvasCaptureMediaStreamTrack))w=new MediaStreamTrackProcessor({track:g}).readable;else{let Y;w=new ReadableStream({start(ue){i.on("render",Se=>{if(i.player.mode!==0)try{ue.enqueue(new VideoFrame(Se,{timestamp:performance.now()*1e3}))}catch(Ke){console.warn(Ke)}})},pull(ue){return y(this,null,function*(){if(i.player.mode===0&&Ni()&&i.player.element)return new Promise(Se=>{i.player.element.requestVideoFrameCallback((Ke,W)=>{try{let Pe=new VideoFrame(i.player.element);ue.enqueue(Pe)}catch(Pe){console.warn(Pe)}Se()})})})}})}let O="small"in i&&i.small;return O?(this.smallEncoder||(this.smallEncoder=yield ll.call(this,i,{profile:O,type:3,trackType:o})),this.smallEncoder.track=g,this.smallEncoder.label="small",w=yield this.smallEncoder.trans(w,u,this)):this.smallEncoder&&(this.smallEncoder.close(),delete this.smallEncoder),a.track=g,a.label=e,a.start(w,u,this)});return Ae(be(i,"output-media-track-changed"),Xe(be(i,"ready")),Le(m,console.error,()=>{var g;this._log.info("stop push",e,r),u.abort("unpublish"),a.close(),(g=this.smallEncoder)==null||g.close()})),m(i.outMediaTrack)})}var Io=class Io extends le{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(Io.INTERVALCHANGED,this.interval)}),Ae(be(this,Io.INTERVALCHANGED),lo(s=>this.room.state==="joined"?this.room.fromWorker("getAudioEnergy",s):Ae(aE(s),uo(()=>[]))),Le(s=>{s.forEach(n=>{this.room.remotePublishedUserMap.has(n.userId)&&(this.room.remotePublishedUserMap.get(n.userId).remoteAudioTrack.volume=n.volume)}),(!document.hidden||this.enableInBackground)&&this.state==le.ON&&this.room.emit("audio-volume",s)}))}start(e,r){this.interval=e,this.enableInBackground=r,this.emit(Io.INTERVALCHANGED,this.interval)}stop(){}};l(Io,"INTERVALCHANGED","intervalChanged"),K([et([le.INIT,le.OFF],le.ON)],Io.prototype,"start",1),K([et([],le.OFF)],Io.prototype,"stop",1);var ml=Io;var So=class So extends sl{constructor(e){super(e);l(this,"index",0);l(this,"session");l(this,"tinyid");l(this,"roomid");l(this,"openid");l(this,"socketid");l(this,"relayip");l(this,"clientip");l(this,"remotePublishedUserMap",new Map);l(this,"bussinessInfo");l(this,"token");l(this,"audioVolumeEvalution",new ml(this));l(this,"enableAIVoice",Hp);l(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:pm(),uint32_device_type:0,str_os_verion:fm(),uint32_link_type:1,str_client_version:at,uint32_net_type:ko[zr.getNetworkType()],ua:navigator.userAgent,version:""}});l(this,"joinAbortController",new AbortController);l(this,"smallAbortCtrl");l(this,"smallEncoder");e.tinyId&&(this.tinyId=e.tinyId,Wp(!0)),this._log||(this._log=e.logger),this.bussinessInfo=e.bussinessInfo,e.encodedDataProcessingListener&&this.setEncodedDataProcessingListener(e.encodedDataProcessingListener)}replaceTrack(e){return y(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 n=new MessageChannel;this.postMessage({cmd:e,payload:r},[n.port1]),n.port2.onmessageerror=s,n.port2.onmessage=a=>{n.port2.close(),o(a.data)}})}fromWorker(e,r){if(this.state!="joined")throw"join room first";return o=>{var n;let s=new MessageChannel;s.port2.onmessage=a=>{a.data?o.next(a.data):o.complete()},s.port2.onmessageerror=a=>o.error(a),o.defer(()=>{s.port2.postMessage(null),s.port2.close()}),(n=this.session)==null||n.postMessage({cmd:e,payload:r},[s.port1])}}switchRole(e){return y(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 y(this,null,function*(){var u,m,p;let s=zr.getEnv(),n=Fd(),a={isH264EncodeSupported:this.checkSystemResult.detail.isH264EncodeSupported,isVp8EncodeSupported:this.checkSystemResult.detail.isVp8EncodeSupported,frameWorkType:o,params:e,proxy_wt:(u=this.proxy_wt)==null?void 0:u.replace("https://",""),proxy_ws:(m=this.proxy_ws)==null?void 0:m.replace("wss://",""),proxy_cloud:(p=this.scheduleResult.iceServers)!=null&&p.length?this.scheduleResult.iceServers[0].urls:[],proxy_unified:this.proxy_unified,domains:this.scheduleResult.domains,env:s,osName:rn(),browserInfo:Fd(),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:at,browserVersion:n.browserName+n.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 pT.call(this,a),console.log(this),cl.playAudio(g=>this.postMessage({cmd:"setAudioWorkletPort"},[g])),this.checkDestroy()})}leave(){return y(this,null,function*(){this.remotePublishedUserMap.forEach(e=>{e.remoteAudioTrack.close(),e.remoteAuxiliaryTrack.close(),e.remoteVideoTrack.close()}),this.postMessage(null),this.remotePublishedUserMap.clear(),this.localTracks.forEach((e,r)=>r.unpublish()),this.localTracks.clear()})}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 y(this,null,function*(){let e=Xe(be(this,"left"));Ae(r=>y(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,Le(({data:r,port:o})=>{let s=this.audioManager.decodePipeline[0]({frame:{data:r.data.buffer}});o.postMessage(ge(J({},r),{data:new Uint8Array(s.data)}),[s.data])}))})}onWorkerEvent(e,r){switch(e!=="network-quality"&&console.info(this.userId,"onWorkerEvent",e,JSON.stringify(r)),e){case F.RECEIVED_PUBLISHED_USER_LIST:V.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 g=r,T=this.remotePublishedUserMap.get(g);T&&(T.remoteVideoTrack.close(),T.remoteAuxiliaryTrack.close(),T.remoteAudioTrack.close(),this.remotePublishedUserMap.delete(g),this.emit("remote-unpublished",T))}return;case"banned":switch(r){case 8:this.emit("banned",{reason:"kick",message:""});return;case 2:case 6:case 4:this.emit("banned",{reason:"banned",message:""});return;case 7:case 5:this.emit("banned",{reason:"room_disband",message:""});return}break;case"6":{let{prevMuteState:g,muteState:T,flag:A}=r,C=this.remotePublishedUserMap.get(T.userId);if(!C){this.emit("remote-publish-state-changed",r);return}C.flag=A}V.emit(F.REMOTE_PUBLISH_STATE_CHANGED,J({room:this},r)),this.emit("remote-publish-state-changed",r);return;case"7":this.localPublishFlag!==r.flag&&(this.localPublishFlag=r.flag,this.emit("local-publish-flag-changed",r.flag));return;case"network-quality":this.quality=J({},r);let{uplinkLoss:s,uplinkRTT:n,uplinkInfo:a,downlinkInfo:u,msg_down_stream_info:m}=r,p={str_sdk_version:at,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:ko[na()]},msg_event_msg:uE(this.userId),str_acc_ip:this.relayip,str_client_ip:this.clientip,msg_up_stream_info:a,msg_down_stream_info:m};V.emit(F.HEARTBEAT_REPORT,{room:this,report:p}),this.emit("heartbeat-report",p),V.emit(F.NETWORK_QUALITY,{room:this,uplink:{rtt:n,loss:s},downlinks:u}),delete r.downlinkInfo;break;case"signal-connection-state-changed":V.emit(F.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 y(this,null,function*(){e.forEach(a=>this.localTracks.add(a));let r=e.reduce((a,u)=>u.mediaType|a,0),o=this.sendMessage("publish",r).then(a=>a.err!==0?Promise.reject(a.err):a),s=0,n=a=>y(this,null,function*(){switch(yield o,a.muted&&(s|=a.mediaType),At(a,a).add("mute",()=>{this.postMessage("mute",{mediaType:a.mediaType,userId:this.userId,srctinyid:this.tinyid,remove:!0})}).add("unmute",()=>{this.postMessage("unmute",{mediaType:a.mediaType,userId:this.userId,srctinyid:this.tinyid,add:!0})}),a.mediaType){case 1:TT.call(this,a);break;default:yield _T.call(this,a)}});yield Promise.all(e.map(n)),s&&this.postMessage("mute",{mediaType:s,srctinyid:this.tinyid,userId:this.openid,remove:!0})})}unpublish(...e){return y(this,null,function*(){e.forEach(ut),e.forEach(r=>this.localTracks.delete(r))})}subscribe(...e){return y(this,null,function*(){let r=e.reduce((g,T)=>T.mediaType|g,0),{userId:o,tinyId:s,streamType:n}=e[0],a=this.remotePublishedUserMap.get(o),u=J({},a.subscribeState),m=Object.assign(new Ca,u);m.mediaType|=r,V.emit(F.SUBSCRIBE_START,{room:this,streamType:n,remotePublishedUser:a,subscribeState:m});let p=yield this.sendMessage("subscribe",{mediaType:m.mediaType,userId:o,srctinyid:s,mediaDescription:{audioParam:{mediaType:1,payloadFmtps:[{payloadType:111,fmtp:"minptime=10;useinbandfec=1"}]},videoParam:[4,8,2].filter(g=>m.mediaType&g).map(g=>({mediaType:g,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]}))}});console.dir("subscribe",p),yield Promise.all(e.filter(g=>!g.isSubscribed).map(g=>{switch(g.mediaType){case 1:return fT.call(this,g);default:return gT.call(this,g)}})),V.emit(F.SUBSCRIBE_SUCCESS,{room:this,streamType:n,remotePublishedUser:a})})}unsubscribe(...e){return y(this,null,function*(){let r=0;for(let o of e)r|=o.mediaType;if(e.length){let{userId:o,streamType:s,tinyId:n}=e[0];yield this.sendMessage("unSubscribe",{mediaType:r,srctinyid:n,userId:o});for(let a of e)a.unsubscribe();V.emit(F.UNSUBSCRIBE_SUCCESS,{room:this,streamType:s,remotePublishedUser:this.remotePublishedUserMap.get(o)})}})}enableSmall(e){return y(this,null,function*(){var r;if(e){if(this.videoManager.smallTrack){let o=this.videoManager.cameraTrack;this.smallEncoder=yield ll.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);if(!o)return;let s=e?8:4;if(o.remoteVideoTrack.mediaType===s)return;let n={srctinyid:o.tinyId,mediaType:s,userId:r.userId,mediaDescription:{audioParam:{mediaType:1,payloadFmtps:[{payloadType:111,fmtp:"minptime=10;useinbandfec=1"}]},videoParam:[4,8].filter(a=>s&a).map(a=>({mediaType:a,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]}))}};o.remoteVideoTrack.mediaType=n.mediaType,this.postMessage("changetype",n)}destroy(){this.isDestroyed||(super.destroy(),this.isDestroyed=!0,this.joinAbortController.abort("destroy"))}};K([ao(So.prototype.afterJoin),et(["left",le.INIT],"joined"),ZE()],So.prototype,"join",1),K([et("joined","left",{ignoreError:!0}),KE()],So.prototype,"leave",1),K([is(),eT()],So.prototype,"publish",1),K([is(),tT()],So.prototype,"unpublish",1),K([Qg((...e)=>e[0].userId),rT()],So.prototype,"subscribe",1);var hl=So;Nn.frameWorkType=37;Nn.create=function(i){let t=Nn._create.call(this,hl,i);return t._use(up,i==null?void 0:i.assetsPath),i!=null&&i.assetsPath&&(Ot.assetsPath=i==null?void 0:i.assetsPath),console.log("trtc wasm sdk:",at,"created",Ot),t};Object.assign(Nn.prototype,{_setCurrentSpeaker(i){let t=We("player");return t!=null&&t.setSinkId?t.setSinkId(i):Promise.reject("not support")},_enableVideoDecodeFallback(i,t){return y(this,null,function*(){return this.startPlugin(up.Name,{type:"webCodecs",renderer:"videoFrame",track:i,config:{codec:"avc1.420028"},fallback:"wasm"}),new Promise((e,r)=>{Ae(be(i,"decode-downgrade-state-changed"),zt(o=>o.state==="STARTED"),Ur(1),Qh(1e4),Xe(be(i,le.INIT)),Le(e,r))})})}});jm(37);var nG=Nn;export{nG as default};
|
|
143
|
+
}`});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 ai=[i=>{i.codec="avc1.42e01f"},i=>{delete i.hardwareAcceleration}],KE=(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")};function oA(i){return i[0]===0&&i[1]===0&&i[2]===0&&i[3]===1}var sA=0,tl=class{constructor(t){l(this,"id",sA++);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,"startPerformanceTime",0);l(this,"inputFrameCount",0);l(this,"decodedFrameCount",0);l(this,"decodeFrameCount",0);l(this,"downgradeLevel",0);l(this,"lastDowngradeTime",0);l(this,"lastFrameDiff",0);l(this,"lastDecodeFrameTimestamp",0);l(this,"config");l(this,"gop_before_configure",[]);l(this,"videoElement");l(this,"type","wasm");l(this,"goodType");l(this,"renderer","2d");l(this,"wasmOption");l(this,"createDecoder");l(this,"_decodeSink");l(this,"isReported",!1);l(this,"track");l(this,"stateChangeOB");l(this,"failedReason");let{track:e,createDecoder:r}=t;if(this.stateChangeOB=Rt(),this.track=e,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=be(e.availableState,le.OFF),this.stopOB=Rt(),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),Ae(this.stateChangeOB,$h((o,s)=>(o!==s&&e.onDecodeDowngradeStateChanged({type:this.type,renderer:this.renderer,reason:this.failedReason,prevState:o,state:s}),s),"INITIALIZED"),ze(this.stopOB),Le()),this.start()}start(t=0){this.waitFirstKeyFrame=!0,this.stateChangeOB.next("STARTING");let e=Ae(this.pipe(this.track),ze(this.stopOB),Pi());Ae(e,Le(()=>{this.track.stat.framesDecoded++},r=>{if(this.track.log.error(`${this.id} play failed: ${r} retryCount: ${t}`),Q.addFailedEvent({key:KE(this.type,this.renderer),error:r}),t>4)this.failedReason=r,this.stateChangeOB.next("FAILED"),Q.addFailedEvent({key:514704});else{if(this.goodType){this.start(t);return}switch(this.type){case"webCodecs":this.type="wasm",this.changeRenderer("webgl");break;case"wasm":switch(this.renderer){case"webgl":this.changeRenderer("videoFrame");break}}this.start(t+1)}},()=>{this.track.log.warn(`${this.id} decoderOB completed`),Q.addSuccessEvent({key:KE(this.type,this.renderer)}),Q.addSuccessEvent({key:514704})})),Ae(e,Fr(1),Le(()=>{this.track.player.handlePlaying("canvas"),this.goodType=this.type,this.stateChangeOB.next("STARTED")}))}mock(t){this._decodeSink?this._decodeSink.error(t):this.start()}close(t){this.stopOB.next(t)}changeRenderer(t){this.renderer=t,this.renderer==="videoFrame"&&!Um()&&(this.renderer="2d"),this.wasmOption.yuvMode=this.renderer==="webgl"}decode(t,e=!1){var a,u;if(this.failedReason)return;this.inputFrameCount++;let r=new Uint8Array(t.data);if(!oA(r)||r.length<5)return this.stateChangeOB.next("FAILED"),this.close(`not h26x frame ${r.subarray(0,5)}`),t;let o=r[4]&31,s=!1;switch(o){case 5:case 7:s=!0;break}if(((a=this.decoder)==null?void 0:a.state)!=="configured")return this.track.log.debug(`not configured ${this.inputFrameCount}`),s&&(this.gop_before_configure=[]),this.gop_before_configure.push({data:t.data,timestamp:t.timestamp,type:t.type}),t;this.gop_before_configure.length>0&&!e&&(this.gop_before_configure.forEach(m=>this.decode(m,!0)),this.gop_before_configure=[]);let{timestamp:n}=t;if(s?(this.gop=this.gop_helper,this.gop_helper=0):this.gop_helper++,this.decoder){if(this.waitFirstKeyFrame)if(s)this.waitFirstKeyFrame=!1,this.startTimestamp=n,this.startTime=Date.now(),this.startPerformanceTime=_e();else{this.track.log.debug(`wait first key frame ${this.inputFrameCount} ${r.subarray(0,5).join(" ")}`);return}switch(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.decodeFrameCount<10||this.decodeFrameCount%500===0)&&this.track.log.debug(`decode ${this.decodeFrameCount} gop: ${this.gop} ${n} ${(u=t.getMetadata)==null?void 0:u.call(t).rtpTimestamp}`),this.decodeFrameCount++,this.lastDecodeFrameTimestamp=n,this.decoder.decode({data:t.data,type:t.type,timestamp:this.lastDecodeFrameTimestamp});return}return t}checkDowngradeByFrameDiff(){let t=this.downgradeLevel,e=this.decodeFrameCount-this.decodedFrameCount;e>this.lastFrameDiff?(this.downgradeLevel++,this.downgradeLevel>4&&(this.downgradeLevel=4)):e<=this.lastFrameDiff&&this.downgradeLevel>0&&this.downgradeLevel--,this.downgradeLevel!==t&&this.track.log.debug(`downgrade level ${t} to ${this.downgradeLevel} ${this.decodeFrameCount} frameDiff: ${e}, lastFrameDiff: ${this.lastFrameDiff}`),this.lastFrameDiff=e,this.lastDowngradeTime=Date.now()}checkDowngradeByTimestampDiff(t){let e=this.downgradeLevel;this.lastDecodeFrameTimestamp-t>9e4?(this.downgradeLevel++,this.downgradeLevel>4&&(this.downgradeLevel=4)):this.downgradeLevel>0&&this.downgradeLevel--,this.downgradeLevel!==e&&this.track.log.debug(`downgrade level ${e} to ${this.downgradeLevel}`)}pipe(t){return e=>y(this,null,function*(){this._decodeSink=e;let r,o=t.mediaTrack;e.defer(()=>{var a;o&&(t.player.setCanvas(),t.setInputMediaStreamTrack(o)),r==null||r.close(),(a=this.videoContext)==null||a.destroy(),delete this._decodeSink});let{renderer:s,type:n}=this;t.log.info(`decoder type: ${this.type} renderer: ${this.renderer}`);try{switch(n){case"wasm":r=this.createDecoder(n,this.wasmOption);break;case"webCodecs":for(let u=0;u<=ai.length;u++){let{supported:m}=yield VideoDecoder.isConfigSupported(this.config);if(m)break;if(u===ai.length){e.error(3);return}ai[u](this.config)}r=this.createDecoder(n);break;default:throw new Error("not supported yet")}let a=0;if(r.on("videoFrame",u=>{this.decodedFrameCount++,a++,(a<=10||a%500===0)&&t.log.debug(`frame ${a} ${this.decodedFrameCount}/${this.decodeFrameCount} decoded ${u.timestamp}`),Date.now()-this.lastDowngradeTime>5e3&&(this.type==="webCodecs"?this.checkDowngradeByFrameDiff():this.type==="wasm"&&this.checkDowngradeByTimestampDiff(u.timestamp)),e.next(u)}),r.on("error",u=>{t.log.error(u),e.error(n==="webCodecs"?4:8)}),yield r.initialize(this.videoElement),!this._decodeSink)return;if(r.configure(this.config),n==="wasm"&&s==="webgl"){this.videoContext=new St({frameRate:15,logger:t.log,name:t.userId}),this.videoContext.create(),this.videoContext.on(St.UNAVAILABLE,m=>{t.log.error(m),e.error(7)});let u=new el(this.videoContext);r.on("videoCodecInfo",m=>u.resize(m.width,m.height)),r.on("videoFrame",m=>{({y:u.Y,u:u.U,v:u.V}=m),this.downgradeLevel===1?this.decodedFrameCount%2===0&&u.render(this.decodedFrameCount):u.render(this.decodedFrameCount)}),t.source=u,t.player.setCanvas(this.videoContext._canvas,2)}else if(s==="videoFrame"){t.player.setCanvas();let u=new MediaStreamTrackGenerator({kind:"video"}),m=u.writable.getWriter();t.setInputMediaStreamTrack(u),r.on("videoFrame",p=>m.write(p))}else{this.videoContext=new Dt({frameRate:15,logger:t.log,name:t.userId}),this.videoContext.create({alpha:!1});let u=this.videoContext.createVideoImageSource();r.on("videoFrame",p=>{try{u.image=p,u.update()}catch(g){delete this.goodType,t.log.error(g),e.error(11)}});let m=new ps(this.videoContext,{name:"remotePlayer",logger:t.log});u.connect(m),t.source=u,t.player.setCanvas(this.videoContext._canvas,2)}this.decoder=r}catch(a){t.log.error(a),e.error(n==="webCodecs"?2:6)}})}};var pc=class extends e_.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,"_rotation",0);l(this,"cameraTrack");l(this,"cameraNode");l(this,"transformNode");l(this,"mixNode");l(this,"screenTrack");l(this,"screenNode");l(this,"selfModel",!1);l(this,"blurRadius",3);l(this,"arTrack");l(this,"_enableFaceCentering",!1);l(this,"_enableEffectOptimization",!1);l(this,"onAbort");l(this,"_color");l(this,"Wasm");l(this,"waterMarkNode");l(this,"_waterMarkOption");l(this,"watermarkImageList",[]);l(this,"_beautyParams");l(this,"isUsingArTrack",!1);l(this,"mixTrack");l(this,"_isMixScreen",!1);l(this,"_virtualBackground");l(this,"_virtualBackgroundAbortCallback");l(this,"virtualBackgroundInstance");l(this,"_bgAssetPath");l(this,"log",$.createLogger({id:"vm"}));l(this,"_mat4");l(this,"_postProcessing");l(this,"_checkId",0);l(this,"_use2d",!1);l(this,"_autoSwitchRenderMode",!0);l(this,"encodePipeline",[]);l(this,"decodePipeline",[]);e&&(this.log.setUserId(e.userId),this.log.setSdkAppId(e.sdkAppId)),this.smallVideoContext=new Dt({frameRate:15,logger:this.log,name:"s"}),this.enablePrintDetail()}get smallMode(){var e;return((e=this.room)==null?void 0:e.smallMode)||"canvas"}get _hasVirtualBg(){return!!this._virtualBackground}get _hasWaterMark(){return this.watermarkImageList.length>0}get _isRotate(){return this._rotation!==0}get _isTransform(){return this._isMirror||this._isRotate}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())}get cameraResolution(){var o;let{width:e,height:r}=((o=this.cameraTrack)==null?void 0:o.settings)||{};return or(this._rotation)?{width:r,height:e}:{width:e,height:r}}get2dVideoContext(){return this._2dVideoContext?this._2dVideoContext.destroy():this._2dVideoContext=new Dt({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(St.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(o=>{this.log.error(o)})})}catch(e){this.emit("error",e)}}initVirtualBackground(e,r,o){this.onAbort=e,this._mat4=r,this._postProcessing=o}enablePrintDetail(e=2e3){this._checkId=dt.run("interval",()=>{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(),dt.clearTask(this._checkId)}get needAlpha(){return this._hasWaterMark||this._hasVirtualBg}get active(){return(hr||this._isMixScreen||this._isTransform||this._hasWaterMark||this._hasVirtualBg||this._beautyParams)&&this.checkOrCreateVideoContext()}sendCreateResult(e="videoCtxGl",r){let o=e==="videoCtxGl"?512700:512701;r?Q.addFailedEvent({key:o,error:r}):Q.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}setSmallVideo(e,r){if(this.smallMode!=="api")if(e){if(!this.smallVideoContext.available){if(this.smallVideoContext.create({alpha:!1}),!this.smallVideoContext.available)return;this.smallDestination=new _u(this.smallVideoContext,e,this.log),this.smallVideoContext.on(St.UNAVAILABLE,o=>{this.log.warn("small video context lost",o)})}if(this.smallVideoContext.frameRate=e.frameRate,this.smallDestination.resolution=e,r)this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource),this.smallImageSource?this.smallImageSource.image=r:(this.smallImageSource=this.smallVideoContext.createVideoImageSource(r),this.smallImageSource.resize(r.width,r.height),this.smallImageSource.connect(this.smallDestination));else if(this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource)this.smallTrackSource.replaceTrack(this.initialTrack);else{this.smallTrackSource=this.smallVideoContext.createVideoTrackSource(this.initialTrack,"smallTrackSource");let{width:o,height:s}=this.cameraTrack.settings;this.smallTrackSource.resize(o,s),this.smallTrackSource.connect(this.smallDestination)}}else this.smallVideoContext.available&&(this.smallVideoContext.destroy(),delete this.smallDestination,delete this.smallTrackSource,delete this.smallImageSource)}_setMainOutput(e){var r;try{let o=this.cameraTrack,{small:s,player:n}=o;hr&&n.setCanvas(e);let a=e&&((r=this.destination)==null?void 0:r.videoTrack)||this.initialTrack;return this.isUsingArTrack&&this.arTrack&&(this.emit("output-track-changed"),a=this.arTrack),this.log.info(`set main output ${a?a.label:"no output track"}`),this.setSmallVideo(s,e),o.setOutputMediaStreamTrack(a)}catch(o){this.log.error("set main output failed",o)}}update(e=!1){return y(this,null,function*(){var s;if(!this.cameraTrack||!this.initialTrack)return;if(!this.active)return this.cameraNode&&this.clear(),this._setMainOutput();let{settings:r,profile:o}=this.cameraTrack;if(this._use2d||!this._virtualBackground&&!this._beautyParams)this.destination||(this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log}),this.destination.on(vt.RENDER,n=>{var a;(a=this.cameraTrack)==null||a.emit("render",n)})),Ot===16?this.initialTrack instanceof CanvasCaptureMediaStreamTrack?(this.cameraNode&&(this.cameraNode instanceof gr?(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 gr?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(r.width,r.height);else if(e&&this.cameraNode&&this.destination)this.cameraNode.replaceTrack(this.initialTrack);else{this.cameraNode&&this.cameraNode.close(),this.destination?this.destination.disableCheckMute():(this.destination=new Eu(this.videoContext,{name:"mainDestination",logger:this.log}),this.destination.on(vt.RENDER,m=>{var p;(p=this.cameraTrack)==null||p.emit("render",m)}));let{width:n,height:a}=this.cameraResolution,u=yield this.getWatermarkImage(n,a);this._waterMarkOption={x:0,y:0,width:u.width,height:u.height,image:u},this.cameraNode=new Ku(this.videoContext,{input:this.initialTrack,width:n,height:a,mirror:this._isMirror,rotation:this._rotation,bg:this._virtualBackground,selfModel:this.selfModel,waterMark:this._waterMarkOption,beautyParams:this._beautyParams,useTflite:!0,blurRadius:this.blurRadius,assetPath:this._bgAssetPath,Wasm:this.Wasm,enableFaceCentering:this._enableFaceCentering,enableEffectOptimization:this._enableEffectOptimization,onAbort:this.onAbort,mat4:this._mat4,postProcessing:this._postProcessing,color:this._color}),this.cameraNode.connect(this.destination),this.destination.enableCheckMute(),yield this.cameraNode.predictReady}if(this.videoContext.frameRate=o.frameRate,this._use2d){let n=this.cameraNode;if(n.disconnect(),this._isTransform&&(this.transformNode?(this.transformNode.mirror=this._isMirror,this.transformNode.rotation=this._rotation):this.transformNode=new Er(this.videoContext,this.log,this._isMirror,this._rotation),n=n.connect(this.transformNode),n.disconnect(),this.log.info(`start mirror ${this._isMirror} rotate ${this.rotation}`)),this.mixNode&&this.mixNode.close(),delete this.mixNode,this._isMixScreen||this._hasWaterMark){if(this.mixNode=new yn(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;else if(this.waterMarkNode){let{width:u,height:m}=this.cameraResolution;this.waterMarkNode.image=yield this.getWatermarkImage(u,m),u&&m&&this.waterMarkNode.resize(u,m)}(s=this.waterMarkNode)==null||s.connect(this.mixNode,{zIndex:2}),this._isMixScreen&&this.screenTrack&&(this.screenNode||(this.screenNode=this.videoContext.createVideoTrackSource(this.screenTrack.mediaTrack,"screenNodeSource"),this.screenNode.resize(this.screenTrack.settings.width,this.screenTrack.settings.height)),this.screenNode.shouldUpdate=!1,this.screenNode.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)})}clearLastFrame(){var e;this.destination&&((e=this.destination.ctx2d)==null||e.clearRect(0,0,this.destination.width,this.destination.height))}changeInput(e){var r,o,s,n,a;if(e instanceof ri)return this.log.info("change screen input",(r=e.mediaTrack)==null?void 0:r.label),this.setScreenTrack(e);if(e instanceof ar)return this.log.info("change video input",(o=e.mediaTrack)==null?void 0:o.label),this.setCameraTrack(e);if(e instanceof To){this.log.info("change remote input",(s=e.mediaTrack)==null?void 0:s.label);let u=e.mediaTrack;return e.setOutputMediaStreamTrack(u)}if(e instanceof gs)return this.log.info("change mix input",(n=e.outMediaTrack)==null?void 0:n.label),this.setMixTrack(e);this.log.warn("change unknown input",(a=e.mediaTrack)==null?void 0:a.label)}removeInput(e){var r;e instanceof ri?((r=this.screenNode)==null||r.close(),delete this.screenNode,delete this.screenTrack,this.update()):e instanceof ar?this._isMixScreen?(delete this.cameraNode,this.cameraTrack._inputTrack=null,this.update()):(this.clear(),delete this.cameraTrack,this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource)):e instanceof To?e.source&&e.source.context.destroy():e instanceof gs&&(delete this.mixTrack,this.update())}setMixTrack(e){this.mixTrack=e}setCameraTrack(e){return this.cameraTrack=e,this.update(!0)}setScreenTrack(e){return y(this,null,function*(){return this.screenTrack=e,this._isMixScreen&&(this.screenNode?this.screenNode.replaceTrack(e.mediaTrack):yield this.update()),e.setOutputMediaStreamTrack(e.mediaTrack)})}getWatermarkImage(e,r){return y(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:q.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:u,width:m,height:p})=>{s.drawImage(n,a,u,m,p)}),qs(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 y(this,null,function*(){this._beautyParams=e,this.update()})}stopBeauty(){return y(this,null,function*(){this._beautyParams=void 0,this.update()})}setWatermark(e){return y(this,null,function*(){let r;try{r=yield qs((e==null?void 0:e.imageElement)||e.imageUrl)}catch(g){throw new de({code:q.INVALID_PARAMETER,message:`load image failed, url: ${e.imageUrl}`})}let{x:o=0,y:s=0,width:n=r.width,height:a=r.height,type:u="watermark",zIndex:m=2}=e;this.watermarkImageList.some(g=>g.type===u)?(this.watermarkImageList=this.watermarkImageList.filter(g=>g.type!==u),this.pushWaterMarkImageList({x:o,y:s,width:n,height:a,image:r,zIndex:m,type:u,imageUrl:e.imageUrl}),r=yield this.getWatermarkImage(this.cameraResolution.width,this.cameraResolution.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:n,height:a,image:r,zIndex:m,type:u,imageUrl:e.imageUrl}),yield this.freshWatermark()),this.log.info("set watermark",JSON.stringify(this.watermarkImageList,(g,_)=>g==="imageUrl"?void 0:_))})}deleteWatermark(e="watermark"){return y(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 y(this,null,function*(){var s;(s=this.waterMarkNode)==null||s.close(),delete this.waterMarkNode,delete this._waterMarkOption;let{width:e,height:r}=this.cameraResolution,o=yield this.getWatermarkImage(e,r);this._waterMarkOption={x:0,y:0,width:o.width,height:o.height,image:o},this.update()})}setVirtualBackground(e){return y(this,null,function*(){var r,o,s;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 qs(e.imageUrl):(this.blurRadius=e.blurLevel||this.blurRadius||3,this._virtualBackground=e.type),this._enableFaceCentering=(r=e.enableFaceCentering)!=null?r:this._enableFaceCentering,this._enableEffectOptimization=(o=e.enableEffectOptimization)!=null?o:this._enableEffectOptimization,this._color=(s=e.color)!=null?s:[0,1,0]}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:q.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._isTransform||((r=this.transformNode)==null||r.close(),delete this.transformNode),this.update())}get mirror(){return this._isMirror}set rotation(e){var r;this._rotation!==e&&(this._rotation=e,this._isTransform||((r=this.transformNode)==null||r.close(),delete this.transformNode),this.update())}get rotation(){return this._rotation}enableAr(e){this.arTrack=e,this.isUsingArTrack=!0,this.update()}updateAr(){return y(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 tl(e)}clear(){var e,r;(e=this.videoContext)==null||e.disconnect(),(r=this.destination)==null||r.removeAllListeners(),delete this.destination,delete this.cameraNode,delete this.transformNode,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}};ee([$g(function(e){this.log.error("update failed",e)})],pc.prototype,"update",1);var nA=0;var rl=class extends le{constructor(e){super("room");l(this,"seq",++nA);l(this,"sdkAppId");l(this,"userId");l(this,"userSig");l(this,"privateMapKey");l(this,"latencyLevel");l(this,"tinyId");l(this,"scene");l(this,"roomId");l(this,"useStringRoomId");l(this,"role","anchor");l(this,"joinParams",null);l(this,"localPublishFlag",0);l(this,"localTracks",new Set);l(this,"enableAutoPlayDialog",!0);l(this,"autoReceiveAudio",!0);l(this,"autoReceiveVideo",!0);l(this,"proxy_ws");l(this,"proxy_wt");l(this,"proxy_unified");l(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,isH265EncodeSupported:!0,isH265DecodeSupported:!0}});l(this,"keyPointManager");l(this,"audioManager");l(this,"videoManager");l(this,"callDurationCalculator");l(this,"badCaseDetector");l(this,"scheduleResult",{domains:null,iceServers:null,iceTransportPolicy:null,trtcAutoConf:null});l(this,"videoDecodeFallbackType");l(this,"smallMode","canvas");l(this,"enableChorus",!1);l(this,"_isUsingCachedSchedule",!1);l(this,"_log",$.createLogger({id:`r${this.seq}`}));l(this,"_joinedTimestamp",0);l(this,"_sdkType");l(this,"heartbeatReport");l(this,"videoCodec");l(this,"quality");l(this,"enableSEI");l(this,"isDestroyed",!1);this.useStringRoomId=!!e.useStringRoomId,Qe(e.autoReceiveAudio)&&(this.autoReceiveAudio=e.autoReceiveAudio),Qe(e.autoReceiveVideo)&&(this.autoReceiveVideo=e.autoReceiveVideo),Qe(e.enableAutoPlayDialog)&&(this.enableAutoPlayDialog=e.enableAutoPlayDialog),this._sdkType=e.sdkType,this.keyPointManager=new QE({room:this,frameWorkType:e.frameWorkType,component:e.component,language:e.language}),this.callDurationCalculator=new YE({room:this}),this.badCaseDetector=new ZE({room:this}),this.audioManager=new Su(this),this.videoManager=new pc(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 y(this,null,function*(){return this.publish(e)})}removeTrack(e){return y(this,null,function*(){return this.unpublish(e)})}replaceTrack(e){return y(this,null,function*(){})}setEncodedDataProcessingListener(e){throw new Error("Method not implemented.")}enableAIVoice(e){throw new Error("Method not implemented.")}setProxyServer(e){if(Ne(e))e.startsWith("wss://")?this.proxy_ws=e:e.startsWith("https://")&&(this.proxy_wt=e);else if(Bt(e)){let{websocketProxy:r,webtransportProxy:o,loggerProxy:s,scheduleProxy:n,unifiedProxy:a}=e;this.proxy_ws=r,this.proxy_wt=o,this.proxy_unified=a,a?(xu([a,a]),Fo(`https://${a}`)):(s&&Fo(s),n&&xu(n))}V.once(F.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({sched_domain:si.main,sched_back_domain:si.backup,signal_domain:this.proxy_ws||this.proxy_wt||""}))}getRemoteAudioStats(){return y(this,null,function*(){let e={};return this.remotePublishedUserMap.forEach(r=>{e[r.userId]=r.remoteAudioTrack.stat}),e})}getTransportStats(){return y(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 y(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:q.INVALID_OPERATION,message:$e({key:Fe.CLIENT_DESTROYED,data:{funName:"join"}})})}destroy(){if(this.isJoined)throw this._log.warn(Yt.INVALID_DESTROY),new de({code:q.INVALID_OPERATION,message:$e({key:Fe.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,V.emit(F.ROOM_DESTROY,{room:this})}schedule(e,r){return y(this,null,function*(){var s,n,a,u;let o=_e();try{let{isCached:m,result:p,detailCost:g}=yield dp({userId:this.userId,sdkAppId:this.sdkAppId,roomId:this.useStringRoomId?e.strRoomId:e.roomId,useStringRoomId:this.useStringRoomId,version:at,userSig:this.userSig,role:this.scene==="live"?e.role:void 0,frameWorkType:r,latencyLevel:e.latencyLevel});this._isUsingCachedSchedule=m,this._log.info(`schedule cache:${+m} ${mr(p,{keysToExclude:["username","credential"]})}`),m&&V.once(F.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({scheduleCache:1})),this.scheduleResult=X(X({},this.scheduleResult),p),ke((s=p.config)==null?void 0:s.retryCount)&&wl(p.config.retryCount),Ne((n=p.config)==null?void 0:n.loggerDomain)&&Fo(p.config.loggerDomain),this.videoDecodeFallbackType=((a=p.config)==null?void 0:a.videoDecodeFallback)||this.videoDecodeFallbackType,this.smallMode=((u=p.config)==null?void 0:u.smallMode)||this.smallMode,V.emit(F.JOIN_SCHEDULE_SUCCESS,{room:this,schedule:this.scheduleResult,detailCost:g}),Q.addSuccessEvent({key:521700,cost:_e()-o})}catch(m){throw Q.addFailedEvent({key:521700,error:m}),m}})}sendAbilityStatus(e){}enableInsertableStreams(){return Promise.resolve()}switchRoom(e){return Promise.reject()}isSwitchRoomSupported(){return!1}};function t_(i,t=!1){let e=Object.defineProperties(Rt(),{postMessage:{value:i.postMessage.bind(i)},port:{get(){return i},set(o){i.onmessage=Be,i.onmessageerror=Be,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 Dp=class extends pe{constructor(t,e){super(t);let r=new pe(t);r.next=Be,e(r)}},LH=Te(Dp,"takeUntilComplete");var Pt={useWt:!0,useAINS:!0,useHardDecoder:"prefer-software",useHardEncoder:"prefer-software",unreliable:!1,debug:!1,assetsPath:"",enableUpload:!0},r_="__INLINE__WORKER__",i_="__INLINE__WASM__",{debug:o_}=console;Pt.debug||(console.debug=()=>{});var aA=!r_.startsWith("__"),cA=!i_.startsWith("__");function il(){let i=zo(`${Pt.assetsPath?`${Pt.assetsPath}/`:""}worker.js`);return aA?URL.createObjectURL(new Blob([atob(r_)],{type:"application/javascript"})):i.startsWith("http")?fetch(i).then(t=>t.blob().then(e=>URL.createObjectURL(e))):i}var fc;function ol(){return y(this,null,function*(){let i=Pt.assetsPath?`${Pt.assetsPath}/`:"";return fc||(cA?fc=new TextEncoder().encode(atob(i_)).buffer:fc=yield fetch(zo(`${i}av_processing.wasm`)).then(t=>t.arrayBuffer()),fc)})}var wp=class{constructor(){l(this,"playPort");l(this,"playPortSent",!1);l(this,"worklet");l(this,"workletPromise")}init(){return this.workletPromise||(this.workletPromise=this._init()),this.workletPromise}_init(){return y(this,null,function*(){let t=We("player"),e=il();try{yield t.audioWorklet.addModule(typeof e=="string"?e:yield e),$.info("global audio player worklet addModule success",e)}catch(r){throw $.error("global audio player worklet addModule failed:",r),r}return this.worklet=new AudioWorkletNode(t,"global-audio-player",{processorOptions:{wasm:yield ol(),flag:Pt},numberOfInputs:2}),$.info("global audio player worklet created",t.state),this.worklet.connect(t.destination),this.playPort=this.worklet.port,this.playPort})}playAudio(t){return y(this,null,function*(){this.playPortSent||(this.playPortSent=!0,t(yield this.init()))})}},sl=new wp;var Mp=(()=>{if(typeof self=="undefined")return!1;if(!("top"in self&&self!==top)){if("showOpenFilePicker"in self)return"showOpenFilePicker"}return!1})(),GH=Mp?Promise.resolve().then(function(){return mA}):Promise.resolve().then(function(){return _A});var jH=Mp?Promise.resolve().then(function(){return pA}):Promise.resolve().then(function(){return IA});var dA=Mp?Promise.resolve().then(function(){return gA}):Promise.resolve().then(function(){return yA});function Op(...i){return y(this,null,function*(){return(yield dA).default(...i)})}var uA=i=>y(void 0,null,function*(){let t=yield i.getFile();return t.handle=i,t}),lA=(...t)=>y(void 0,[...t],function*(i=[{}]){Array.isArray(i)||(i=[i]);let e=[];i.forEach((s,n)=>{e[n]={description:s.description||"Files",accept:{}},s.mimeTypes?s.mimeTypes.map(a=>{e[n].accept[a]=s.extensions||[]}):e[n].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(uA));return i[0].multiple?o:o[0]}),mA={__proto__:null,default:lA};function nl(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 nl=function(e){this.s=e,this.n=e.next},nl.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 nl(i)}var s_=(o,s,...n)=>y(void 0,[o,s,...n],function*(i,t,e=i.name,r){let a=[],u=[];var m,p=!1,g=!1;try{for(var _,A=function(C){var N,D,O,Z=2;for(typeof Symbol!="undefined"&&(D=Symbol.asyncIterator,O=Symbol.iterator);Z--;){if(D&&(N=C[D])!=null)return N.call(C);if(O&&(N=C[O])!=null)return new nl(N.call(C));D="@@asyncIterator",O="@@iterator"}throw new TypeError("Object is not async iterable")}(i.values());p=!(_=yield A.next()).done;p=!1){let C=_.value,N=`${e}/${C.name}`;C.kind==="file"?u.push(C.getFile().then(D=>(D.directoryHandle=i,D.handle=C,Object.defineProperty(D,"webkitRelativePath",{configurable:!0,enumerable:!0,get:()=>N})))):C.kind!=="directory"||!t||r&&r(C)||a.push(s_(C,t,N,r))}}catch(C){g=!0,m=C}finally{try{p&&A.return!=null&&(yield A.return())}finally{if(g)throw m}}return[...(yield Promise.all(a)).flat(),...yield Promise.all(u)]}),hA=(...t)=>y(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 s_(e,i.recursive,void 0,i.skipDirectory)}),pA={__proto__:null,default:hA},fA=(s,...n)=>y(void 0,[s,...n],function*(i,t=[{}],e=null,r=!1,o=null){Array.isArray(t)||(t=[t]),t[0].fileName=t[0].fileName||"Untitled";let a=[],u=null;if(i instanceof Blob&&i.type?u=i.type:i.headers&&i.headers.get("content-type")&&(u=i.headers.get("content-type")),t.forEach((g,_)=>{a[_]={description:g.description||"Files",accept:{}},g.mimeTypes?(_===0&&u&&g.mimeTypes.push(u),g.mimeTypes.map(A=>{a[_].accept[A]=g.extensions||[]})):u?a[_].accept[u]=g.extensions||[]:a[_].accept["*/*"]=g.extensions||[]}),e)try{yield e.getFile()}catch(g){if(e=null,r)throw g}let m=e||(yield window.showSaveFilePicker({suggestedName:t[0].fileName,id:t[0].id,startIn:t[0].startIn,types:a,excludeAcceptAllOption:t[0].excludeAcceptAllOption||!1}));!e&&o&&o(m);let p=yield m.createWritable();return"stream"in i?(yield i.stream().pipeTo(p),m):"body"in i?(yield i.body.pipeTo(p),m):(yield p.write(yield i),yield p.close(),m)}),gA={__proto__:null,default:fA},EA=(...t)=>y(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(m=>m.mimeTypes||[]),...i.map(m=>m.extensions||[])].join();o.multiple=i[0].multiple||!1,o.accept=s||"",o.style.display="none",document.body.append(o);let n=m=>{typeof a=="function"&&a(),e(m)},a=i[0].legacySetup&&i[0].legacySetup(n,()=>a(r),o),u=()=>{window.removeEventListener("focus",u),o.remove()};o.addEventListener("click",()=>{window.addEventListener("focus",u)}),o.addEventListener("change",()=>{window.removeEventListener("focus",u),o.remove(),n(o.multiple?Array.from(o.files):o.files[0])}),"showPicker"in HTMLInputElement.prototype?o.showPicker():o.click()})}),_A={__proto__:null,default:EA},TA=(...t)=>y(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=a=>{typeof n=="function"&&n(),e(a)},n=i[0].legacySetup&&i[0].legacySetup(s,()=>n(r),o);o.addEventListener("change",()=>{let a=Array.from(o.files);i[0].recursive?i[0].recursive&&i[0].skipDirectory&&(a=a.filter(u=>u.webkitRelativePath.split("/").every(m=>!i[0].skipDirectory({name:m,kind:"directory"})))):a=a.filter(u=>u.webkitRelativePath.split("/").length===2),s(a)}),"showPicker"in HTMLInputElement.prototype?o.showPicker():o.click()})}),IA={__proto__:null,default:TA},SA=(e,...r)=>y(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(u,m){return y(this,null,function*(){let p=u.getReader(),g=new ReadableStream({start:C=>function N(){return y(this,null,function*(){return p.read().then(({done:D,value:O})=>{if(!D)return C.enqueue(O),N();C.close()})})}()}),_=new Response(g),A=yield _.blob();return p.releaseLock(),new Blob([A],{type:m})})}(i.body,i.headers.get("content-type"))),o.download=t.fileName||"Untitled",o.href=URL.createObjectURL(yield s);let n=()=>{typeof a=="function"&&a()},a=t.legacySetup&&t.legacySetup(n,()=>a(),o);return o.addEventListener("click",()=>{setTimeout(()=>URL.revokeObjectURL(o.href),3e4),n()}),o.click(),null}),yA={__proto__:null,default:SA};var xp=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){return y(this,null,function*(){if(this.ready)return this.ready;t||(t=this.name),console.time(`createWorker_${t}`);let e=il(),r=new Worker(typeof e=="string"?e:yield e,{name:t});return this.worker=r,this.ready=new Promise((o,s)=>y(this,null,function*(){r.onmessage=({data:{id:n,type:a,payload:u}})=>{var m;if(n)(m=this.transactions.get(n))==null||m(u),this.transactions.delete(n);else switch(a){case"error":console.timeEnd(`createWorker_${t}`),console.warn("worker error:",u),s(u);break;case"ready":console.timeEnd(`createWorker_${t}`),o(this);break;case"updateAFSM":if(u.value){let p=typeof u.old=="string"?u.old:`${u.old.action}ing`,g=typeof u.value=="string"?u.value:`${u.value.action}ing`;console.log(Zc(),u.group,u.name,p,"\u{1F449}",g)}break;case"log":console.log(u);break;case"glog":window.dispatchEvent(new CustomEvent(a,{detail:u}));break}},r.postMessage({wasm:yield ol(),flag:Pt},this.ports)}))})}destroy(){var t;console.log("destroy worker",this.name),delete this.ready,(t=this.worker)==null||t.terminate()}},Pp=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()}},kp=class i extends xp{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 y(this,null,function*(){return this.ready?this.ready:(this.extendChannel=new MessageChannel,this.ports=[this.extendChannel.port2],yield Ft(i.prototype,this,"create").call(this),this.switchValue.forEach((e,r)=>{this.extendChannel.port1.postMessage([r,e])}),this)})}},Ro=new kp,As,AA=-1;function n_(i){return console.log(i),As.push(i.slice()),As.length>1e3&&As.shift(),i}function a_(i){return y(this,null,function*(){switch(AA){case 0:this.edpl.willDecodeAudio=n_;break;case 2:this.edpl.didEncodeAudio=n_;break}yield Ro.create(),V.emit(F.JOIN_SEND_CMD,{room:this});let t=new Pp(Ro,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:n,payload:a}=s;this.onWorkerEvent(n,a)}}),{err:e,data:r}=yield t.ready;if(typeof e=="number"){if(V.emit(F.JOIN_RECEIVED_CMD_RES,{room:this,code:e}),e===0)return Object.assign(this,r,{session:t});throw new de({code:q.JOIN_ROOM_FAILED,extraCode:Number(e),message:$e({key:Fe.SIGNAL_CHANNEL_SETUP_FAILED,data:{errorCode:e,errorMsg:""}})})}else throw e})}Object.defineProperties(window,{useAINS:{set:Lp},useWt:{set:bA},enableDebug:{set(i){console.debug=i?o_:()=>{},Ro.setSwitchValue("enableDebug",i)}},useV2:{set:Up},dump:{value(){if(As||(console.warn("dump audio will be activated at next time join room"),As=[]),!As.length){console.warn("no audio data to dump,try it later");return}let i=[];return As.forEach(t=>{i.push(new Uint16Array([t.length])),i.push(t)}),Op(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;Ro.extendChannel.port1.postMessage(["dump",i],[s.port1]),s.port2.onmessage=({data:n})=>{console.log(n),e.push(n),e.length>t&&(s.port2.onmessage=null,Ro.extendChannel.port1.postMessage(["dump",i]),s.port2.close(),o(new Blob(e)))}});return Op(r,{fileName:i,extensions:[".pcm"]})}},hardDec:{set(i){switch(i){case!0:Pt.useHardDecoder="prefer-hardware";break;case!1:Pt.useHardDecoder="prefer-software";break;default:Pt.useHardDecoder="no-preference"}}}});function Lp(i){return y(this,null,function*(){Ro.setSwitchValue("useAINS",i)})}function Up(i){return y(this,null,function*(){Ro.setSwitchValue("useV2",i)})}function bA(i){return y(this,null,function*(){Ro.setSwitchValue("useWt",i)})}function c_(i){let t=new MediaStreamTrackGenerator({kind:"audio"});i.setInputMediaStreamTrack(t),i.player.setVolume(0),this.postMessage({cmd:"pullAudio",payload:{tinyId:i.tinyId,writable:t.writable}},[t.writable])}function d_(i){return y(this,null,function*(){var o;this._log.info("pull video",i);let t=Date.now(),e=0,r=new MessageChannel;this.postMessage({cmd:"pullVideo",payload:{mediaType:i.mediaType,tinyId:i.tinyId}},[r.port1]),(o=i.stat).framesReceived||(o.framesReceived=0),Ae(t_(r.port2),ze(be(i,le.INIT)),Le(s=>{let{data:n,packetsReceived:a}=s;i.stat.packetsReceived=a,i.stat.framesReceived++,e++;let u=n[4]&31;if(e<=10){let p=Array.from(n.slice(0,10)).map(g=>g.toString(16).padStart(2,"0")).join(" ");this._log.info(`Frame ${e} - Size: ${n.length} bytes, Type: ${u}, Timestamp: ${Date.now()-t}ms First 10 bytes: ${p}`)}let m;switch(u){case 5:case 7:m="key";break;default:m="delta";break}i.isAvailable?i.decodeFrame({data:n.buffer,type:m,timestamp:(Date.now()-t)*1e3}):console.warn("track is not available")},()=>{},()=>{r.port2.postMessage(null),r.port2.close()}))})}var al=[];function l_(i){var u;let t=Rt();if(this.state!=="joined")throw new Error("Room is not joined");if(i.state==="publish")return;for(let m=0;m<=al.length;m++)if(!al[m]){al[m]=this,this.index=m;break}let e=i.profile;this._log.info("start push audio",this.index,e);let r=new MessageChannel,o=i.enableEncodeFrame?new MessageChannel:null;(u=this.session)==null||u.postMessage({cmd:"pushAudio",payload:X({index:this.index},e)},o?[r.port2,o.port2]:[r.port2]),r.port1.onmessage=m=>{m.data==null||(typeof m.data=="number"?t.next(m.data):o&&o.port1.postMessage(ge(X({},m.data),{data:new Uint8Array(i.encodeFrame({data:m.data.data.buffer,timestamp:m.data.timestamp}).data)})))};let s=new MediaStream,n,a=m=>{let p=s.getAudioTracks()[0];p&&(n.disconnect(),s.removeTrack(p)),s.addTrack(m),this._log.info("push audio track:",m.readyState,m.getSettings().deviceId),n=We("player").createMediaStreamSource(s),n.connect(sl.worklet,0,this.index)};Ae(be(i,"output-media-track-changed"),ze(be(i,"ready")),Le(a,console.error,()=>{this._log.info("stop push audio",e),i.volume=0,n.disconnect(),al[this.index]=null,o&&o.port1.postMessage(null),r.port1.postMessage(null)})),Ae(t,Ya(m=>i.volume=m),ki(gu(1e3)),Le(()=>{i.volume=0})),a(i.outMediaTrack)}var R4=new Intl.DateTimeFormat("zh-CN",{dateStyle:"short",timeStyle:"medium"});var Vp=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,"session");l(this,"tsMap",new Map);t._log.info("create Video Encoder",r)}trans(t,e,r){return y(this,null,function*(){let o=yield this.recreate(r,{recreateCount:0,frameEncoded:0,selectConfigIndex:0});e.signal.addEventListener("abort",()=>{o.encoder.close()});let s=0;return t.pipeThrough(new TransformStream({transform:(n,a)=>{o.encoder.state==="configured"&&(this.tsMap.set(s,Date.now()),this.encode(n),s++,a.enqueue(n))}}),e)})}encode(t){var e,r;(r=(e=this.session)==null?void 0:e.encoder)==null||r.encode(t,{keyFrame:this.insertKeyFrame}),this.insertKeyFrame=!1}start(t,e,r){return y(this,null,function*(){let o=yield this.recreate(r,{recreateCount:0,frameEncoded:0,selectConfigIndex:0});this.session=o;let s=0;t.pipeTo(new WritableStream({write:n=>{o.encoder.state==="configured"&&(s<10&&this.localTrack.log.info(`capture ${this.label} track frame:`,s,Date.now(),n.timestamp,n.displayWidth,n.displayHeight),(n.displayWidth!==this.config.width||n.displayHeight!==this.config.height)&&(this.localTrack.log.info("resize video track frame:",n.displayWidth,n.displayHeight,this.config.width,this.config.height),this.configure({width:n.displayWidth,height:n.displayHeight},o)),this.tsMap.set(s,Date.now()),this.encode(n),s<10&&this.localTrack.log.info(`encode ${this.label} track frame:`,s),s++,n.close())}}),e).catch(n=>{this.localTrack.log.warn(n),o.encoder.close()})})}recreate(t,e){return y(this,null,function*(){let r=0,o=new VideoEncoder({output:s=>{let n=this.tsMap.get(r);if(this.tsMap.delete(s.timestamp),r<10&&(r===0&&e.recreateCount===0&&V.emit(F.SEND_FIRST_VIDEO_FRAME,{room:t}),this.localTrack.log.info(`encoded ${this.label} track frame:`,r,Date.now(),s.timestamp)),r++,e.frameEncoded=r,this.track.enabled===!1)return;let a=null;if(this.localTrack.enableEncodeFrame){a=new Uint8Array(s.byteLength),s.copyTo(a);let u=this.localTrack.encodeFrame({data:a.buffer},this.type===3);a=new Uint8Array(u.data)}a?(this.localTrack.stat.bytesSent+=a.length,this.port.postMessage({chunk:{type:s.type,timestamp:s.timestamp,data:a,duration:s.duration},timestamp:n},[a.buffer])):(this.localTrack.stat.bytesSent+=s.byteLength,this.port.postMessage({chunk:s,timestamp:n}))},error:s=>{this.localTrack.log.warn(s,this.config),e.recreateCount++,setTimeout(()=>this.recreate(t,e),100)}});return e.encoder=o,yield this.configure(null,e),e})}configure(t,e){return y(this,null,function*(){var r;if(t)Object.assign(this.config,t);else if(e.frameEncoded===0)for(let o=0;o<=ai.length;o++){let{supported:s}=yield VideoDecoder.isConfigSupported(this.config);if(s)break;if(o===ai.length)return;ai[o](this.config),e.selectConfigIndex=o}else e.selectConfigIndex+e.recreateCount<=ai.length&&e.recreateCount>0?ai[e.selectConfigIndex+e.recreateCount-1](this.config):ai[e.selectConfigIndex](this.config);(r=e.encoder)==null||r.configure(this.config)})}close(){this.port.postMessage(null),this.port.close()}};function cl(i,t){return y(this,null,function*(){let e=i.mediaType===2,r=e?"screen":"video",o={codec:"avc1.640028",latencyMode:"realtime",avc:{format:"annexb"},hardwareAcceleration:Pt.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 n=new Vp(i,t.type,o,s.port2);return s.port2.onmessage=a=>{if(a.data===260)n.insertKeyFrame=!0;else if(!e){let{bitrate:u}=a.data;ia({configureBr:[a.data.bitrate,u]}),n.session&&n.configure({bitrate:u},n.session)}},this._log.info("start push",r,t),n})}function m_(i){return y(this,null,function*(){var p;let t=i.mediaType===2,e=t?"screen":"video",r={type:t?7:2,profile:i.profile,trackType:t?"screen":"camera",crypto:!!((p=i.manager)!=null&&p.encodePipeline[0])};!t&&i.outMediaTrack instanceof CanvasCaptureMediaStreamTrack&&(r.trackType="canvas");let{trackType:o}=r,{width:s,height:n}=i.outMediaTrack.getSettings();r.profile.width=s,r.profile.height=n;let a=yield cl.call(this,i,r);this._log.info("VideoEncoder created",r);let u,m=g=>y(this,null,function*(){if(u==null||u.abort("track changed"),!g)return;u=new AbortController;let{width:_,height:A,displaySurface:C}=g.getSettings();_&&(a.config.width=_),A&&(a.config.height=A);let N=sr.match(/Chrome\/(\d+)/);(N==null?void 0:N[1])==="114"&&C==="browser"&&delete a.config.hardwareAcceleration,this._log.info("push",e,"track:",g.readyState,g.getSettings());let D;if(typeof MediaStreamTrackProcessor!="undefined"&&!(g instanceof CanvasCaptureMediaStreamTrack))D=new MediaStreamTrackProcessor({track:g}).readable;else{let Z;D=new ReadableStream({start(ue){i.on("render",Se=>{if(i.player.mode!==0)try{ue.enqueue(new VideoFrame(Se,{timestamp:performance.now()*1e3}))}catch(Ye){console.warn(Ye)}})},pull(ue){return y(this,null,function*(){if(i.player.mode===0&&Mi()&&i.player.element)return new Promise(Se=>{i.player.element.requestVideoFrameCallback((Ye,H)=>{try{let Pe=new VideoFrame(i.player.element);ue.enqueue(Pe)}catch(Pe){console.warn(Pe)}Se()})})})}})}let O="small"in i&&i.small;return O?(this.smallEncoder||(this.smallEncoder=yield cl.call(this,i,{profile:O,type:3,trackType:o})),this.smallEncoder.track=g,this.smallEncoder.label="small",D=yield this.smallEncoder.trans(D,u,this)):this.smallEncoder&&(this.smallEncoder.close(),delete this.smallEncoder),a.track=g,a.label=e,a.start(D,u,this)});return Ae(be(i,"output-media-track-changed"),ze(be(i,"ready")),Le(m,console.error,()=>{var g;this._log.info("stop push",e,r),u.abort("unpublish"),a.close(),(g=this.smallEncoder)==null||g.close()})),m(i.outMediaTrack)})}var vo=class vo extends le{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(vo.INTERVALCHANGED,this.interval)}),Ae(be(this,vo.INTERVALCHANGED),Eo(s=>this.room.state==="joined"?this.room.fromWorker("getAudioEnergy",s):Ae(eE(s),go(()=>[]))),Le(s=>{s.forEach(n=>{this.room.remotePublishedUserMap.has(n.userId)&&(this.room.remotePublishedUserMap.get(n.userId).remoteAudioTrack.volume=n.volume)}),(!document.hidden||this.enableInBackground)&&this.state==le.ON&&this.room.emit("audio-volume",s)}))}start(e,r){this.interval=e,this.enableInBackground=r,this.emit(vo.INTERVALCHANGED,this.interval)}stop(){}};l(vo,"INTERVALCHANGED","intervalChanged"),ee([Ze([le.INIT,le.OFF],le.ON)],vo.prototype,"start",1),ee([Ze([],le.OFF)],vo.prototype,"stop",1);var dl=vo;var Co=class Co extends rl{constructor(e){super(e);l(this,"index",0);l(this,"session");l(this,"tinyid");l(this,"roomid");l(this,"openid");l(this,"socketid");l(this,"relayip");l(this,"clientip");l(this,"remotePublishedUserMap",new Map);l(this,"bussinessInfo");l(this,"token");l(this,"audioVolumeEvalution",new dl(this));l(this,"enableAIVoice",Lp);l(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:lm(),uint32_device_type:0,str_os_verion:mm(),uint32_link_type:1,str_client_version:at,uint32_net_type:$o[Xr.getNetworkType()],ua:navigator.userAgent,version:""}});l(this,"joinAbortController",new AbortController);l(this,"smallAbortCtrl");l(this,"smallEncoder");e.tinyId&&(this.tinyId=e.tinyId,Up(!0)),this._log||(this._log=e.logger),this.bussinessInfo=e.bussinessInfo,e.encodedDataProcessingListener&&this.setEncodedDataProcessingListener(e.encodedDataProcessingListener)}replaceTrack(e){return y(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 n=new MessageChannel;this.postMessage({cmd:e,payload:r},[n.port1]),n.port2.onmessageerror=s,n.port2.onmessage=a=>{n.port2.close(),o(a.data)}})}fromWorker(e,r){if(this.state!="joined")throw"join room first";return o=>{var n;let s=new MessageChannel;s.port2.onmessage=a=>{a.data?o.next(a.data):o.complete()},s.port2.onmessageerror=a=>o.error(a),o.defer(()=>{s.port2.postMessage(null),s.port2.close()}),(n=this.session)==null||n.postMessage({cmd:e,payload:r},[s.port1])}}switchRole(e){return y(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 y(this,null,function*(){var u,m,p;let s=Xr.getEnv(),n=Pd(),a={isH264EncodeSupported:this.checkSystemResult.detail.isH264EncodeSupported,isVp8EncodeSupported:this.checkSystemResult.detail.isVp8EncodeSupported,frameWorkType:o,params:e,proxy_wt:(u=this.proxy_wt)==null?void 0:u.replace("https://",""),proxy_ws:(m=this.proxy_ws)==null?void 0:m.replace("wss://",""),proxy_cloud:(p=this.scheduleResult.iceServers)!=null&&p.length?this.scheduleResult.iceServers[0].urls:[],proxy_unified:this.proxy_unified,domains:this.scheduleResult.domains,env:s,osName:sn(),browserInfo:Pd(),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:at,browserVersion:n.browserName+n.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 a_.call(this,a),console.log(this),sl.playAudio(g=>this.postMessage({cmd:"setAudioWorkletPort"},[g])),this.checkDestroy()})}leave(){return y(this,null,function*(){this.remotePublishedUserMap.forEach(e=>{e.remoteAudioTrack.close(),e.remoteAuxiliaryTrack.close(),e.remoteVideoTrack.close()}),this.postMessage(null),this.remotePublishedUserMap.clear(),this.localTracks.forEach((e,r)=>r.unpublish())})}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 y(this,null,function*(){let e=ze(be(this,"left"));Ae(r=>y(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,Le(({data:r,port:o})=>{let s=this.audioManager.decodePipeline[0]({frame:{data:r.data.buffer}});o.postMessage(ge(X({},r),{data:new Uint8Array(s.data)}),[s.data])}))})}onWorkerEvent(e,r){switch(e!=="network-quality"&&console.info(this.userId,"onWorkerEvent",e,JSON.stringify(r)),e){case F.RECEIVED_PUBLISHED_USER_LIST:V.emit(e,X({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 Xu(this,r);this.remotePublishedUserMap.set(r.userId,o),this.emit("remote-published",o);return;case"5":{let g=r,_=this.remotePublishedUserMap.get(g);_&&(_.remoteVideoTrack.close(),_.remoteAuxiliaryTrack.close(),_.remoteAudioTrack.close(),this.remotePublishedUserMap.delete(g),this.emit("remote-unpublished",_))}return;case"banned":switch(r){case 8:this.emit("banned",{reason:"kick",message:""});return;case 2:case 6:case 4:this.emit("banned",{reason:"banned",message:""});return;case 7:case 5:this.emit("banned",{reason:"room_disband",message:""});return}break;case"6":{let{prevMuteState:g,muteState:_,flag:A}=r,C=this.remotePublishedUserMap.get(_.userId);if(!C){this.emit("remote-publish-state-changed",r);return}C.flag=A}V.emit(F.REMOTE_PUBLISH_STATE_CHANGED,X({room:this},r)),this.emit("remote-publish-state-changed",r);return;case"network-quality":this.quality=X({},r);let{uplinkLoss:s,uplinkRTT:n,uplinkInfo:a,downlinkInfo:u,msg_down_stream_info:m}=r,p={str_sdk_version:at,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:$o[ra()]},msg_event_msg:iE(this.userId),str_acc_ip:this.relayip,str_client_ip:this.clientip,msg_up_stream_info:a,msg_down_stream_info:m};V.emit(F.HEARTBEAT_REPORT,{room:this,report:p}),this.emit("heartbeat-report",p),V.emit(F.NETWORK_QUALITY,{room:this,uplink:{rtt:n,loss:s},downlinks:u}),delete r.downlinkInfo;break;case"signal-connection-state-changed":V.emit(F.SIGNAL_CONNECTION_STATE_CHANGED,X({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 y(this,null,function*(){let r=e.reduce((a,u)=>u.mediaType|a,0),o=this.sendMessage("publish",r).then(a=>a.err!==0?Promise.reject(a.err):a),s=0,n=a=>y(this,null,function*(){switch(yield o,a.muted&&(s|=a.mediaType),bt(a,a).add("mute",()=>{this.postMessage("mute",{mediaType:a.mediaType,userId:this.userId,srctinyid:this.tinyid,remove:!0})}).add("unmute",()=>{this.postMessage("unmute",{mediaType:a.mediaType,userId:this.userId,srctinyid:this.tinyid,add:!0})}),a.mediaType){case 1:l_.call(this,a);break;default:yield m_.call(this,a)}});yield Promise.all(e.map(n)),s&&this.postMessage("mute",{mediaType:s,srctinyid:this.tinyid,userId:this.openid,remove:!0})})}unpublish(...e){return y(this,null,function*(){e.forEach(ut)})}subscribe(...e){return y(this,null,function*(){let r=e.reduce((g,_)=>_.mediaType|g,0),{userId:o,tinyId:s,streamType:n}=e[0],a=this.remotePublishedUserMap.get(o),u=X({},a.subscribeState),m=Object.assign(new Aa,u);m.mediaType|=r,V.emit(F.SUBSCRIBE_START,{room:this,streamType:n,remotePublishedUser:a,subscribeState:m});let p=yield this.sendMessage("subscribe",{mediaType:m.mediaType,userId:o,srctinyid:s,mediaDescription:{audioParam:{mediaType:1,payloadFmtps:[{payloadType:111,fmtp:"minptime=10;useinbandfec=1"}]},videoParam:[4,8,2].filter(g=>m.mediaType&g).map(g=>({mediaType:g,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]}))}});console.dir("subscribe",p),yield Promise.all(e.filter(g=>!g.isSubscribed).map(g=>{switch(g.mediaType){case 1:return c_.call(this,g);default:return d_.call(this,g)}})),V.emit(F.SUBSCRIBE_SUCCESS,{room:this,streamType:n,remotePublishedUser:a})})}unsubscribe(...e){return y(this,null,function*(){let r=0;for(let o of e)r|=o.mediaType;if(e.length){let{userId:o,streamType:s,tinyId:n}=e[0];yield this.sendMessage("unSubscribe",{mediaType:r,srctinyid:n,userId:o});for(let a of e)a.unsubscribe();V.emit(F.UNSUBSCRIBE_SUCCESS,{room:this,streamType:s,remotePublishedUser:this.remotePublishedUserMap.get(o)})}})}enableSmall(e){return y(this,null,function*(){var r;if(e){if(this.videoManager.smallTrack){let o=this.videoManager.cameraTrack;this.smallEncoder=yield cl.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);if(!o)return;let s=e?8:4;if(o.remoteVideoTrack.mediaType===s)return;let n={srctinyid:o.tinyId,mediaType:s,userId:r.userId,mediaDescription:{audioParam:{mediaType:1,payloadFmtps:[{payloadType:111,fmtp:"minptime=10;useinbandfec=1"}]},videoParam:[4,8].filter(a=>s&a).map(a=>({mediaType:a,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]}))}};o.remoteVideoTrack.mediaType=n.mediaType,this.postMessage("changetype",n)}destroy(){this.isDestroyed||(super.destroy(),this.isDestroyed=!0,this.joinAbortController.abort("destroy"))}};ee([po(Co.prototype.afterJoin),Ze(["left",le.INIT],"joined"),jE()],Co.prototype,"join",1),ee([Ze("joined","left",{ignoreError:!0}),qE()],Co.prototype,"leave",1),ee([eu((...e)=>0),zE()],Co.prototype,"publish",1),ee([eu((...e)=>0),JE()],Co.prototype,"unpublish",1),ee([eu((...e)=>e[0].userId),XE()],Co.prototype,"subscribe",1);var ul=Co;Mn.frameWorkType=37;Mn.create=function(i){let t=Mn._create.call(this,ul,i);return t._use(op,i==null?void 0:i.assetsPath),i!=null&&i.assetsPath&&(Pt.assetsPath=i==null?void 0:i.assetsPath),console.log("trtc wasm sdk:",at,"created",Pt),t};Object.assign(Mn.prototype,{_setCurrentSpeaker(i){let t=We("player");return t!=null&&t.setSinkId?t.setSinkId(i):Promise.reject("not support")},_enableVideoDecodeFallback(i,t){return y(this,null,function*(){return this.startPlugin(op.Name,{type:"webCodecs",renderer:"videoFrame",track:i,config:{codec:"avc1.420028"},fallback:"wasm"}),new Promise((e,r)=>{Ae(be(i,"decode-downgrade-state-changed"),Jt(o=>o.state==="STARTED"),Fr(1),Gh(1e4),ze(be(i,le.INIT)),Le(e,r))})})}});Hm(37);var YW=Mn;export{YW as default};
|