trtc-sdk-v5 5.13.0-wasm.2 → 5.13.0-wasm.3
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/index.d.ts +27 -2
- package/package.json +1 -1
- package/plugins/cdn-streaming/cdn-streaming.esm.js +1 -1
- package/plugins/cdn-streaming/cdn-streaming.umd.js +3 -1
- package/plugins/cdn-streaming/package.json +1 -1
- package/plugins/chorus/chorus.esm.d.ts +13 -0
- package/plugins/chorus/chorus.esm.js +1 -0
- package/plugins/chorus/chorus.umd.js +3 -0
- package/plugins/chorus/package.json +29 -0
- package/plugins/cross-room/cross-room.esm.js +1 -1
- package/plugins/cross-room/cross-room.umd.js +3 -1
- 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 +19 -45
- package/plugins/device-detector/device-detector.umd.js +8 -32
- 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 +3 -1
- package/plugins/video-effect/basic-beauty/basic-beauty.esm.js +1 -1
- package/plugins/video-effect/basic-beauty/basic-beauty.umd.js +3 -1
- 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 +3 -1
- 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 +3 -1
- 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 +3 -1
- package/plugins/video-effect/watermark/package.json +1 -1
- package/plugins/video-effect/watermark/watermark.esm.js +1 -1
- package/plugins/video-effect/watermark/watermark.umd.js +3 -1
- 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 +3 -1
- package/trtc.esm.js +57 -57
- package/trtc.js +1 -1
package/trtc.esm.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
var eT=Object.create;var $n=Object.defineProperty,tT=Object.defineProperties,Ph=Object.getOwnPropertyDescriptor,rT=Object.getOwnPropertyDescriptors,iT=Object.getOwnPropertyNames,kh=Object.getOwnPropertySymbols,Lh=Object.getPrototypeOf,Uh=Object.prototype.hasOwnProperty,oT=Object.prototype.propertyIsEnumerable,sT=Reflect.get;var eo=Math.pow,gl=(i,t,e)=>t in i?$n(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,j=(i,t)=>{for(var e in t||(t={}))Uh.call(t,e)&&gl(i,e,t[e]);if(kh)for(var e of kh(t))oT.call(t,e)&&gl(i,e,t[e]);return i},pe=(i,t)=>tT(i,rT(t));var Bn=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),li=(i,t)=>{for(var e in t)$n(i,e,{get:t[e],enumerable:!0})},nT=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of iT(t))!Uh.call(i,o)&&o!==e&&$n(i,o,{get:()=>t[o],enumerable:!(r=Ph(t,o))||r.enumerable});return i};var mi=(i,t,e)=>(e=i!=null?eT(Lh(i)):{},nT(t||!i||!i.__esModule?$n(e,"default",{value:i,enumerable:!0}):e,i));var K=(i,t,e,r)=>{for(var o=r>1?void 0:r?Ph(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&&$n(t,e,o),o};var l=(i,t,e)=>gl(i,typeof t!="symbol"?t+"":t,e);var Gt=(i,t,e)=>sT(Lh(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 yi=Bn((tb,am)=>{"use strict";var I_=Object.prototype.hasOwnProperty,jt="~";function Ea(){}Object.create&&(Ea.prototype=Object.create(null),new Ea().__proto__||(jt=!1));function S_(i,t,e){this.fn=i,this.context=t,this.once=e||!1}function Sf(i,t,e,r,o){if(typeof e!="function")throw new TypeError("The listener must be a function");var s=new S_(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 _d(i,t){--i._eventsCount===0?i._events=new Ea:delete i._events[t]}function Bt(){this._events=new Ea,this._eventsCount=0}Bt.prototype.eventNames=function(){var t=[],e,r;if(this._eventsCount===0)return t;for(r in e=this._events)I_.call(e,r)&&t.push(jt?r.slice(1):r);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(e)):t};Bt.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};Bt.prototype.listenerCount=function(t){var e=jt?jt+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=jt?jt+t:t;if(!this._events[a])return!1;var u=this._events[a],m=arguments.length,h,f;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(f=1,h=new Array(m-1);f<m;f++)h[f-1]=arguments[f];u.fn.apply(u.context,h)}else{var T=u.length,A;for(f=0;f<T;f++)switch(u[f].once&&this.removeListener(t,u[f].fn,void 0,!0),m){case 1:u[f].fn.call(u[f].context);break;case 2:u[f].fn.call(u[f].context,e);break;case 3:u[f].fn.call(u[f].context,e,r);break;case 4:u[f].fn.call(u[f].context,e,r,o);break;default:if(!h)for(A=1,h=new Array(m-1);A<m;A++)h[A-1]=arguments[A];u[f].fn.apply(u[f].context,h)}}return!0};Bt.prototype.on=function(t,e,r){return Sf(this,t,e,r,!1)};Bt.prototype.once=function(t,e,r){return Sf(this,t,e,r,!0)};Bt.prototype.removeListener=function(t,e,r,o){var s=jt?jt+t:t;if(!this._events[s])return this;if(!e)return _d(this,s),this;var n=this._events[s];if(n.fn)n.fn===e&&(!o||n.once)&&(!r||n.context===r)&&_d(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:_d(this,s)}return this};Bt.prototype.removeAllListeners=function(t){var e;return t?(e=jt?jt+t:t,this._events[e]&&_d(this,e)):(this._events=new Ea,this._eventsCount=0),this};Bt.prototype.off=Bt.prototype.removeListener;Bt.prototype.addListener=Bt.prototype.on;Bt.prefixed=jt;Bt.EventEmitter=Bt;typeof am!="undefined"&&(am.exports=Bt)});var Cd=Bn((Vb,kf)=>{"use strict";var xf=kf.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(xf).forEach(function(i){var t=xf[i];t.forEach(function(e){e.reg||(e.reg=/(.*)/),e.format||(e.format="%s")})})});var Uf=Bn(Ci=>{"use strict";var rn=function(i){return String(Number(i))===i?Number(i):i},D_=function(i,t,e,r){if(r&&!e)t[r]=rn(i[1]);else for(var o=0;o<e.length;o+=1)i[o+1]!=null&&(t[e[o]]=rn(i[o+1]))},w_=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;D_(e.match(i.reg),o,i.names,i.name),i.push&&t[i.push].push(o)},Pf=Cd(),M_=RegExp.prototype.test.bind(/^([a-z])=(.*)/);Ci.parse=function(i){var t={},e=[],r=t;return i.split(/(\r\n|\r|\n)/).filter(M_).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<(Pf[s]||[]).length;a+=1){var u=Pf[s][a];if(u.reg.test(n))return w_(u,r,n)}}),t.media=e,t};var Lf=function(i,t){var e=t.split(/=(.+)/,2);return e.length===2?i[e[0]]=rn(e[1]):e.length===1&&t.length>1&&(i[e[0]]=void 0),i};Ci.parseParams=function(i){return i.split(/;\s?/).reduce(Lf,{})};Ci.parseFmtpConfig=Ci.parseParams;Ci.parsePayloads=function(i){return i.toString().split(" ").map(Number)};Ci.parseRemoteCandidates=function(i){for(var t=[],e=i.split(" ").map(rn),r=0;r<e.length;r+=3)t.push({component:e[r],ip:e[r+1],port:e[r+2]});return t};Ci.parseImageAttributes=function(i){return i.split(" ").map(function(t){return t.substring(1,t.length-1).split(",").reduce(Lf,{})})};Ci.parseSimulcastStreamList=function(i){return i.split(";").map(function(t){return t.split(",").map(function(e){var r,o=!1;return e[0]!=="~"?r=rn(e):(r=rn(e.substring(1,e.length)),o=!0),{scid:r,paused:o}})})}});var Ff=Bn(($b,Vf)=>{"use strict";var bm=Cd(),O_=/%[sdv%]/g,x_=function(i){var t=1,e=arguments,r=e.length;return i.replace(O_,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""}})},va=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 x_.apply(null,o)},k_=["v","o","s","i","u","e","p","c","b","t","r","z","a"],P_=["i","c","b","a"];Vf.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||P_,o=[];return e.forEach(function(s){bm[s].forEach(function(n){n.name in i&&i[n.name]!=null?o.push(va(s,n,i)):n.push in i&&i[n.push]!=null&&i[n.push].forEach(function(a){o.push(va(s,n,a))})})}),i.media.forEach(function(s){o.push(va("m",bm.m[0],s)),r.forEach(function(n){bm[n].forEach(function(a){a.name in s&&s[a.name]!=null?o.push(va(n,a,s)):a.push in s&&s[a.push]!=null&&s[a.push].forEach(function(u){o.push(va(n,a,u))})})})}),o.join(`\r
|
|
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
|
|
2
2
|
`)+`\r
|
|
3
|
-
`}});var $f=Bn(Zr=>{"use strict";var Yo=Uf(),L_=Ff(),U_=Cd();Zr.grammar=U_;Zr.write=L_;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 Vh=(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))(Vh||{}),q=Vh;var aT=function(i){for(let t in q)if(q[t]===i)return t;return"UNKNOWN"},Hn=class extends Error{constructor({name:e="RtcError",message:r,code:o=q.UNKNOWN,extraCode:s=0,constraint:n}){let a=`<${aT(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=Hn;var EA=new Date().getTime(),cT=0;var Wn=function(){return new Date().getTime()+cT},Pc=function(){let i=new Date;return i.setTime(Wn()),i.toLocaleString()},Ns=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={};li(zr,{REPORT_TYPE:()=>Bs,buildSSOPackage:()=>Ti,bytes2ms:()=>Xh,calculateScaleResolutionDownNumber:()=>Kc,convertObjectNumberToInt:()=>ra,copyProperties:()=>Jh,deepClone:()=>Fo,deepCloneBasic:()=>zc,deepMerge:()=>Nr,delay:()=>ia,fibonacci:()=>$o,formatedTime:()=>Xc,getConstructorName:()=>Ls,getContainerFromElement:()=>sf,getEnv:()=>jh,getInternalVersion:()=>rf,getLoggerUrl:()=>Ei,getMediaStreamTrackInfo:()=>Zc,getMuteStateFromFlag:()=>Ho,getNetworkType:()=>Zn,getNumNetworkType:()=>Jc,getReconnectionTimeout:()=>Yh,getStringByteLength:()=>nf,getTurnServer:()=>of,getUint32Version:()=>Qc,getValueType:()=>at,getViewListFromView:()=>Fs,glog:()=>Kn,ipv4ToUint32:()=>Vs,isArray:()=>ot,isAudioWorkletSupported:()=>ef,isBoolean:()=>Xe,isConstructor:()=>Bo,isEmpty:()=>Us,isFunction:()=>We,isLangChinese:()=>Cr,isMediaStreamTrack:()=>Zh,isNumber:()=>Le,isObject:()=>ir,isOverseaSdkAppId:()=>gi,isPlainObject:()=>Ft,isPortrait:()=>Vl,isPromise:()=>ro,isRemoteTrack:()=>Kh,isRotate90Or270:()=>or,isSetSinkIdSupported:()=>tf,isString:()=>De,isUndefined:()=>O,loadImage:()=>$s,loadVideo:()=>af,ms2bytes:()=>Qh,ms2samples:()=>Ul,normalizeUrl:()=>Wo,performanceNow:()=>Te,promiseAny:()=>ea,samples2ms:()=>Ll,setNetworkType:()=>zh,stringify:()=>lr,stringifyIncludeValue:()=>ta,throttlePromise:()=>Yc});var vl={};li(vl,{AUDIO_MUTE_BIT:()=>$c,AUDIO_STAT_BIT:()=>Ms,AUX_STAT_BIT:()=>zn,AUX_STREAM_MSID:()=>IT,BACKEND_ENV:()=>Fc,BASE_DOC_URL:()=>Gr,BASE_HOST:()=>Fh,CAPABILITIES_KEYS:()=>Wc,CLASS_NAME:()=>GT,CLOUD_CONSOLE_URL:()=>mT,CROSS_ROOM_BIT:()=>TT,DATA_FREEZE_TIMING:()=>Hc,DOC_URL:()=>pT,DTLS_STATE_UNKNOWN:()=>wT,ENV_NAME:()=>pi,EXCHANGE_SDP_TIMEOUT:()=>LT,IS_WORKER:()=>Ds,IS_WORKLET:()=>Gn,KIBANA_EVENT:()=>hi,LOCAL_STREAM_PUBLISH_STATE:()=>Bh,LOGGER_CMD_TYPE:()=>to,LOGGER_DOMAIN:()=>_l,LOGGER_DOMAIN_OVERSEA:()=>Il,LOG_LEVEL:()=>Rr,LOG_LEVEL_NAME:()=>qT,MAIN_STREAM_MSID:()=>_T,MAX_RTT:()=>Xn,MICROPHONE_COMMUNICATIONS:()=>jT,MICROPHONE_DEFAULT:()=>Vo,MUTE_ALL_BIT:()=>ET,NAME:()=>M,NETWORK_TYPE:()=>Lo,NOT_SUPPORTED_H264:()=>VT,PAUSED_RETRY_COUNT:()=>Uo,PEERCONNECTION_CONNECTING_TIMEOUT:()=>HT,PEER_CONNECTION_STATE:()=>MT,PEER_LEAVE_REASON:()=>Hh,RECOVER_CAPTURE_INTERVAL:()=>Os,REMOTE_STREAM_TYPE_AUX:()=>yT,REMOTE_STREAM_TYPE_MAIN:()=>ST,RENDER_FREEZE_TIMING:()=>FT,SCHEDULE_DOMAIN:()=>fi,SCHEDULE_TIMEOUT:()=>WT,SDP_SEMANTICS_PLAN_B:()=>UT,SDP_SEMANTICS_UNIFIED_PLAN:()=>Rl,SECOND_HOST:()=>uT,SIGNAL_PING_PONG_INTERVAL:()=>fT,SIGNAL_PING_TIMEOUT:()=>hT,SIGNAL_RECONNECTION_COUNT:()=>xT,SMALL_STAT_BIT:()=>Al,SPEAKER_DEFAULT:()=>Jn,STORAGE_EXPIRES_TIME:()=>Lc,STREAM_TYPE_BIG:()=>$T,STREAM_TYPE_SMALL:()=>BT,SUBSCRIBE_SMALL_RETRY_COUNT:()=>zT,SYNC_USER_LIST_INTERVAL:()=>kT,Scene:()=>jr,THIRD_HOST:()=>lT,TRANSPORT_DIRECTION:()=>gT,TRTC_ERROR_ASSISTANCE:()=>Sl,TRTC_QUALITY_BAD:()=>CT,TRTC_QUALITY_DISCONNECTED:()=>DT,TRTC_QUALITY_EXCELLENT:()=>bT,TRTC_QUALITY_GOOD:()=>RT,TRTC_QUALITY_POOR:()=>vT,TRTC_QUALITY_UNKNOWN:()=>AT,TRTC_QUALITY_VERY_BAD:()=>NT,UPDATE_OFFER_TIMEOUT:()=>PT,VIDEO_MUTE_BIT:()=>Bc,VIDEO_STAT_BIT:()=>ws,audioProfileMap:()=>Uc,defaultBigVideoProfile:()=>qn,defaultSmallVideoProfile:()=>yl,getRetryCount:()=>OT,getScriptDir:()=>dT,innerVersion:()=>El,loggerProxy:()=>jn,screenProfileMap:()=>Vc,setLoggerProxy:()=>Po,setRetryCount:()=>bl,setVersion:()=>Tl,version:()=>nt,videoProfileMap:()=>vr});var El="4.15.00.1600",nt="5.0.0";function Tl(i){nt=i;let[t,e,r]=i.split(".").map(o=>parseInt(o,10));El=`${t}.${Math.min(15,e)}.${Math.min(15,r)}.${e.toString().padStart(2,"0")}${r.toString().padStart(2,"0")}`}var Ds=typeof importScripts!="undefined",Gn=typeof registerProcessor!="undefined",dT=()=>{let i=Ds?self.location.href:document.currentScript.src;return i.substring(0,i.lastIndexOf("/")+1)},jn="",Po=i=>jn=i,Fh="web.sdk.qcloud.com",uT="web.sdk.tencent.cn",lT="web.sdk.cloud.tencent.cn",mT="https://console.cloud.tencent.com/trtc",Gr=`https://${Fh}/trtc/webrtc/v5/doc`,pT=`${Gr}/zh-cn/`,_l="https://yun.tim.qq.com",Il="https://apisgp.my-imcloud.com",Sl="trtc_error_assistance",to={LOG:"jssdk_log",EVENT:"jssdk_event",KEY_POINT:"jssdk_new_endreport",KV_STAT:"jssdk_key_metrics_report"},pi={QCLOUD:"qcloud",OLD_CLOUD_LADDER:"trtc",WEBRTC:"webrtc"},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||{}),hT=18e3,fT=2e3,Lo={unknown:0,wifi:1,"3g":2,"2g":3,"4g":4,wired:5,"5g":6},Lc=7*24*3600*1e3,Uc={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"],yl=vr["120p_2"],Vc={"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"},gT={INACTIVE:"inactive",SENDONLY:"sendonly",RECVONLY:"recvonly"},Fc={OLD_CLOUD_LADDER:"wss://trtc.rtc.qq.com",WEBRTC:"wss://webrtc.qq.com"},jr=(e=>(e.LIVE="live",e.RTC="rtc",e))(jr||{}),ws=1,Al=2,zn=4,Ms=8,$c=64,Bc=16,ET=112,TT=128,_T="5Y2wZK8nANNAoVw6dSAHVjNxrD1ObBM2kBPV",IT="224d130c-7b5c-415b-aaa2-79c2eb5a6df2",ST=M.MAIN,yT=M.AUXILIARY,AT=0,bT=1,RT=2,vT=3,CT=4,NT=5,DT=6,wT="unknown",MT={NEW:"new",CONNECTING:"connecting",FAILED:"failed",CLOSED:"closed",DISCONNECTED:"disconnected",CONNECTED:"connected",COMPLETED:"completed"},$h=1/0;function bl(i){$h=i}function OT(){return $h}var xT=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,PT=1e4,LT=1e4,Rl="unified-plan",UT="plan-b",VT=1028,Bh=(r=>(r[r.UNPUBLISH=-1]="UNPUBLISH",r[r.PUBLISHING=0]="PUBLISHING",r[r.PUBLISHED=1]="PUBLISHED",r))(Bh||{}),Hc=500,FT=1e3,$T=M.BIG,BT=M.SMALL,HT=10*1e3,fi={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"},WT=2e3,GT={TRTC:"TRTC",CLIENT:"Client",LOCAL_STREAM:"LocalStream",REMOTE_STREAM:"RemoteStream",STREAM:"Stream"},Uo=5,Vo="default",Jn=Vo,jT="communications",qT=Object.keys(Rr),Hh=["normal leave","timeout leave","kick","role change"],zT=10,Os=2e3,Wc=["width","height","frameRate","facingMode","sampleRate","sampleSize","channelCount","deviceId","min","max"],Xn=10*1e3;var JT=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(h){try{m(r.next(h))}catch(f){n(f)}}function u(h){try{m(r.throw(h))}catch(f){n(f)}}function m(h){h.done?s(h.value):o(h.value).then(a,u)}m((r=r.apply(i,t||[])).next())})},Cl=Symbol(32),Nl=Symbol(16),Dl=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 JT(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(Cl)}readU16(){return this.read(Nl)}readU8(){return this.read(Dl)}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===Cl){if(o(4))return;t=e[0]<<24|e[1]<<16|e[2]<<8|e[3]}else if(this.need===Nl){if(o(2))return;t=e[0]<<8|e[1]}else if(this.need===Dl){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=Cl;qr.U16=Nl;qr.U8=Dl;var XT=128,QT=127,SA=~QT,yA=Math.pow(2,31);function wl(i){let t=new qr;for(;i>=128;)t.malloc(1)[0]=i&255|XT,i>>>=7;return t.malloc(1)[0]=i&255,t.buffer||new Uint8Array(0)}function Gc(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(wl(i));break;case"string":e.malloc(1)[0]=r|2;let s=new TextEncoder().encode(i);e.write(wl(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=Gc(i[u],u+1);m&&a.write(m)}else{let u=1;for(let m in i){let h=Gc(i[m],u++);h&&a.write(h)}}t===0?a.buffer&&e.write(a.buffer):(e.malloc(1)[0]=r|2,a.buffer&&(e.write(wl(a.buffer.length)),e.write(a.buffer)))}return e.buffer||new Uint8Array(0)}var Qn=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 Ml(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 Ol(i,t){return i[t]}function xs(i,t,e){return new TextDecoder().decode(YT(i,t,e))}function YT(i,t,e){return i.slice(t,t+e)}var xl=0,jc=2654435769,qc=16,Pl=4,ks=2,Ps=7;function ZT(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 Wh(i,t){let e=new Qn,r=ZT(t,i,xl);xl=xl+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 Qn;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 te=4;te<16;te++)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 h=new TextEncoder().encode(r.reqHead.imei);n.writeInt32(h.length+4),h.length&&n.writeBytes(h);let f=new TextEncoder().encode(r.reqHead.ksid);n.writeInt32(f.length+4),f.length&&n.writeBytes(f);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),N=null;r.encryption===1?N=new TextEncoder().encode(r.uin):r.encryption===2&&(N=new Uint8Array(16)),N&&(C=KT(C,N)),e.writeBytes(C);let w=new Uint8Array(e.data),x=w.length;return w[0]=x>>>24&255,w[1]=x>>>16&255,w[2]=x>>>8&255,w[3]=x&255,w}function KT(i,t){let e=i.length,o=(e+1+ks+Ps)%8;o&&(o=8-o);let s=e+1+ks+Ps+o,n=new Uint8Array(s),a=0,u=new Uint8Array(8),m=new Uint8Array(8),h=new Uint8Array(8),f=0;u[0]=Math.floor(Math.random()*256)&248|o,f=1;for(let A=0;A<o;A++)u[f]=Math.floor(Math.random()*256)&255,f+=1;for(let A=0;A<ks;)if(f<8&&(u[f]=Math.floor(Math.random()*256)&255,f+=1,A+=1),f===8){kl(u,t,m,h,n,a),a+=8,f=0;for(let C=0;C<8;C++)h[C]=n[a-8+C]}let T=0;for(;T<e;)if(f<8&&(u[f]=i[T],f+=1,T+=1),f===8){kl(u,t,m,h,n,a),a+=8,f=0;for(let A=0;A<8;A++)h[A]=n[a-8+A]}for(let A=0;A<Ps;)if(f<8&&(u[f]=0,f+=1,A+=1),f===8){kl(u,t,m,h,n,a),a+=8,f=0;for(let C=0;C<8;C++)h[C]=n[a-8+C]}return n}function kl(i,t,e,r,o,s){for(let n=0;n<8;n++)i[n]^=r[n];e_(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 e_(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<qc;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;Ml(e,o,r),Ml(e,s,r+4)}var jh=function(){return new URLSearchParams(location.search).get("trtc_env")||""},gi=i=>Number(i)<14e8,Ei=function(i,t){let e;jn?e=jn:e=gi(i)?Il:_l;let r=Math.floor(Math.random()*eo(2,31));return`${e}/v5/AVQualityReportSvc/C2S?random=${r}&sdkappid=${i}&cmdtype=${t}`},Yn="unknown";function Zn(){if(Yn!=="unknown")return Yn;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&&(Yn=qh(r,o)),Yn}function qh(i,t){if(Lo[i])return i;switch(i){case"cellular":case"wimax":return t||"unknown";case"ethernet":return"wired";case"none":case"other":default:return"unknown"}}function zh(i){Yn=qh(i)}function Jc(){return Lo[Zn()]}function Jh(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 Xh(i,t=48e3){return Ll(i/4,t)}function Ll(i,t=48e3){return i*1e3/t}function Qh(i,t=48e3){return Ul(i,t)*4}function Ul(i,t=48e3){return i*t/1e3}var Kn=typeof window!="undefined"&&typeof window.glog=="function"?window.glog:()=>{},Cr=()=>{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 $o(i,t=1,e=1){return i<=1?e:$o(i-1,e,t+e)}function Yh(i){return i>8?30*1e3:$o(i)*1e3}function at(i){return Reflect.apply(Object.prototype.toString,i,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}var We=i=>typeof i=="function",O=i=>typeof i=="undefined",De=i=>typeof i=="string",Le=i=>typeof i=="number",Xe=i=>typeof i=="boolean",ir=i=>at(i)==="object",ot=i=>at(i)==="array",Zh=i=>at(i)==="MediaStreamTrack".toLowerCase(),Kh=i=>i.isRemote,ro=i=>at(i)==="promise",Bo=i=>We(i)&&i.prototype.constructor===i,Ls=i=>Bo(i)?i.prototype.constructor.name:"",ef=typeof AudioWorkletNode!="undefined",tf=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype;function ea(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 Te(){return!performance||!performance.now?Date.now():Math.floor(performance.now())}var Gh=i=>+i<10?`0${i}`:i,rf=i=>{let t=i.match(/^\d+\.\d+\.\d+/)[0];if(!t)return i;let e=t.split("."),r=Gh(e[1])+Gh(e[2]);return e[1]-15>0&&(e[1]="15"),e[2]-15>0&&(e[2]="15"),`${e.join(".")}.${r}`},t_=Object.prototype.hasOwnProperty,{toString:kA}=Object.prototype;function Us(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(Ft(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":{for(let t in i)if(t_.call(i,t))return!1;return!0}}return!1}function Ho(i,t){return{userId:t,hasAudio:!!(i&Ms),hasVideo:!!(i&ws),hasAuxiliary:!!(i&zn),hasSmall:!!(i&Al),audioMuted:!!(i&$c),videoMuted:!!(i&Bc),audioAvailable:!!(i&Ms)&&!(i&$c),videoAvailable:!!(i&ws)&&!(i&Bc)}}function of(i){let t={urls:i.url.startsWith("turn:")||i.url.startsWith("turns:")?i.url:`turn:${i.url}`};return!O(i.username)&&!O(i.credential)&&(t.username=i.username,t.credential=i.credential,t.credentialType="password",O(i.credentialType)||(t.credentialType=i.credentialType)),t}function Vs(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 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],!(O(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]=Fo(t[n]),o+=1)}return o};function Fo(i){if(ot(i)){let t=[];return i.forEach((e,r)=>{t[r]=Fo(e)}),t}if(ir(i)){let t={};return Object.keys(i).forEach(e=>{t[e]=Fo(i[e])}),t}return i}var Fs=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},sf=i=>De(i)?document.getElementById(i):i,r_=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}`},Xc=()=>r_(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 ta(i,t=!1){let e=[];return Object.keys(i).forEach(r=>{t===i[r]&&e.push(r)}),lr(i,{keysToInclude:e})}function nf(i){return i.replace(/[\u4e00-\u9fa5]/g,"aa").length}var Vl=()=>{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},$s=i=>y(void 0,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}`}))}})}),Qc=i=>{let t=i.split(".");return+t[0]<<24|+t[1]<<16|+t[2]<<8|+t[3]<<0},ra=i=>(Object.keys(i).forEach(t=>{Le(i[t])&&(t.startsWith("uint")||t.startsWith("int"))?i[t]=Math.floor(i[t]):(Ft(i[t])||ot(i[t]))&&ra(i[t])}),i);function ia(i,t){return new Promise(e=>{let r=setTimeout(e,i);t&&t(r)})}function Yc(i,t){let e=null;return function(...r){return e||(e=i.apply(t||this,r),e.finally(()=>e=null),e)}}function Wo(i){return i.replace(/(^|[^:])\/{2,}/g,"$1/")}function Zc(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 Kc(i,t){return i.width*i.height===t.width*t.height?1:Vl()&&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 af(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 zc(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]=zc(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]=zc(i[r],t)}),e}return i}var Bs=(r=>(r[r.END_REPORT=2001]="END_REPORT",r[r.LOG=2002]="LOG",r[r.KEY_METRIC_REPORT=2003]="KEY_METRIC_REPORT",r))(Bs||{});function i_(i,t,e,r){let o={data:i,random:Math.floor(Math.random()*2147483648),sdkAppId:e};return O(r)||(o=pe(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 Ti(i,t,e,r){try{let o=i_(i,t,e,r),s=Gc(o);return Wh(s,e)}catch(o){return JSON.stringify(i)}}function cf(i){let t=o_(i);return t==null?void 0:t.busiBuff}function o_(i){try{let t={},e=0;t.totalLength=Vt(i,e),e+=4,t.version=Vt(i,e),e+=4,t.encryption=Ol(i,e),e+=1,t.uinType=Ol(i,e),e+=1,t.uinLength=Vt(i,e),e+=4,t.uin=t.uinLength>4?xs(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=s_(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?xs(i,e,t.retStrLength-4):"",e+=t.retStrLength-4,t.serviceCmdLength=Vt(i,e),e+=4,t.serviceCmd=t.serviceCmdLength?xs(i,e,t.serviceCmdLength-4):"",e+=t.serviceCmdLength-4,t.cookieLength=Vt(i,e),e+=4,t.cookie=t.cookieLength?xs(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?xs(i,e,t.busiBuffLength-4):"",e+=t.busiBuffLength-4,t}catch(t){}}function df(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*qc>>>0;for(let s=0;s<qc;s++)r-=(e<<Pl)+t[2]^e+o^(e>>>5)+t[3],r=r>>>0,e-=(r<<Pl)+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 s_(i,t){let e=0,r=new Uint8Array(8).fill(0),o=new Uint8Array(i.slice(0,8)),s=df(o,t),n=s[0]&7,a=i.length-1-n-ks-Ps,u=new Uint8Array(a),m=0,h=r,f=i.slice(0,8);e=8;let T=1;T+=n;for(let C=1;C<=ks;)if(T<8)T++,C++;else if(T===8){let N=Fl(i,e,h,f,s,t);h=N.ivPreCrypt,f=N.ivCurCrypt,s=N.debiBuf,e=N.bufPos,T=0}let A=a;for(;A>0;)if(T<8)u[m++]=s[T]^h[T],T++,A--;else if(T===8){let C=Fl(i,e,h,f,s,t);h=C.ivPreCrypt,f=C.ivCurCrypt,s=C.debiBuf,e=C.bufPos,T=0}for(let C=1;C<=Ps;)if(T<8)s[T]^h[T],T++,C++;else if(T===8){if(e>=i.length)break;let N=Fl(i,e,h,f,s,t);if(!N.success)break;h=N.ivPreCrypt,f=N.ivCurCrypt,s=N.debiBuf,e=N.bufPos,T=0}return u}function Fl(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 h=0;h<8;h++)u[h]=o[h]^a[h];let m=df(u,s);return{success:!0,ivPreCrypt:n,ivCurCrypt:a,debiBuf:m,bufPos:t+8}}var uf=typeof TextDecoder!="undefined"?new TextDecoder:void 0;function _i({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:cf(new Uint8Array(m))||(uf?uf.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 $l(i){return y(this,null,function*(){let t=Te(),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} ${Te()-t}ms`),a}catch(r){return e}})}var n_=Object.prototype.hasOwnProperty;var io=i=>typeof i=="function",lf=i=>typeof i=="undefined";var mf=i=>typeof i=="boolean";var Bl=i=>i.isRemote;var Hl=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 pf(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(Hl(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(n_.call(i,t))return!1;return!0}}return!1}var a_=0,c_=1,hf=2;function d_({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,h=0,f=-1,T=a_,A=(C,N)=>y(this,null,function*(){let w=n||this;try{let x=yield i.apply(w,a);h>0&&s&&s.call(this,h),h=0,C(x)}catch(x){let te=()=>{clearTimeout(f),h=0,T=hf,N(x)},ue=()=>{T!==hf&&h<(io(u)?u():u)?(h++,T=c_,io(r)&&r.call(this,h,te),f=window.setTimeout(()=>{f=-1,A(C,N)},io(m)?m(h):m)):(te(),io(o)&&o.call(this,x))};io(e)?e.call(this,{error:x,retry:ue,reject:N,retryFuncArgs:a,retriedCount:h}):ue()}});return new Promise(A)}}var oo=d_;var Hs=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=mf(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,lf(this.userId)||pf(this.userId),this.userId,this.sdkAppId)}info(...t){this.log(2,t)}debug(...t){this.log(1,t)}warn(...t){this.log(3,t)}error(...t){this.log(4,t)}};var Ks={};li(Ks,{ANDROID_VERSION:()=>jl,CHROME_MAJOR_VERSION:()=>Qr,CHROME_VERSION:()=>Td,EDGE_VERSION:()=>rd,EDG_MAJOR_VERSION:()=>ql,EDG_VERSION:()=>id,FIREFOX_MAJOR_VERSION:()=>td,FIREFOX_VERSION:()=>ed,HUAWEI_VERSION:()=>pd,IE_VERSION:()=>h_,IOS_MAIN_VERSION:()=>Mt,IOS_VERSION:()=>Or,IPADQQB_VERSION:()=>ld,IS_ANDROID:()=>pt,IS_ANDROID_WEBVIEW:()=>T_,IS_ANY_SAFARI:()=>mr,IS_CHROME:()=>Ys,IS_CHROME_OS:()=>zl,IS_CHROMIUM_BASE:()=>Xr,IS_DESKTOP_IOS_CHROME:()=>tm,IS_EDG:()=>js,IS_EDGE:()=>Go,IS_ELECTRON:()=>g_,IS_FIREFOX:()=>$t,IS_HEADLESS_CHROME:()=>Ql,IS_HONOR:()=>Xl,IS_HUAWEI:()=>ma,IS_HUAWEIBROWSER:()=>la,IS_IE:()=>Tf,IS_IE8:()=>p_,IS_IOS:()=>mt,IS_IOS_13_OR_14:()=>em,IS_IOS_15_1:()=>Kl,IS_IOS_CHROME:()=>_f,IS_IPAD:()=>Gs,IS_IPADQQB:()=>ca,IS_IPAD_PRO:()=>Gl,IS_IPHONE:()=>so,IS_IPOD:()=>Ef,IS_LINUX:()=>da,IS_LOCAL:()=>xr,IS_MAC:()=>Mr,IS_MACQQB:()=>aa,IS_MIBROWSER:()=>ua,IS_MQQB:()=>Xs,IS_NATIVE_ANDROID:()=>m_,IS_OLD_ANDROID:()=>l_,IS_OPENHARMONY:()=>Qs,IS_OPPOBROWSER:()=>ha,IS_SAFARI:()=>_t,IS_SAFARI_15_1:()=>__,IS_SAMSUNGBROWSER:()=>pa,IS_SOGOU:()=>sa,IS_SOGOUM:()=>oa,IS_TBS:()=>wr,IS_UCBROWSER:()=>Jl,IS_VIVOBROWSER:()=>fa,IS_WECHAT:()=>zs,IS_WIN:()=>jo,IS_WQQB:()=>na,IS_WX:()=>f_,IS_X5MQQB:()=>Js,IS_XWEB:()=>qs,MACQQB_VERSION:()=>ud,MI_VERSION:()=>md,MQQB_VERSION:()=>Ws,OPENHARMONY_VERSION:()=>E_,OPPO_VERSION:()=>fd,SAFARI_VERSION:()=>Ii,SAMSUNG_VERSION:()=>hd,SOGOUM_VERSION:()=>od,SOGOU_VERSION:()=>sd,TBS_VERSION:()=>nd,UA_DATA_STRING:()=>Dr,USER_AGENT:()=>sr,VIVO_VERSION:()=>gd,WECHAT_VERSION:()=>cd,WQQB_VERSION:()=>dd,XWEB_VERSION:()=>ad,browserInfo:()=>Jr,getBrowserCoreNumber:()=>om,getBrowserInfo:()=>If,getChromeMajorVersion:()=>Ed,getDeviceModel:()=>ga,getGPUInfo:()=>im,getOSName:()=>Zs,getOSNumber:()=>zo,getOSString:()=>Jo,getOSType:()=>nm,getTerminalType:()=>sm,getUserAgentData:()=>qo,isLocalStorageEnabled:()=>Si,isMobile:()=>rm,isVersionLargerThan:()=>Zl,isVersionSmallerThan:()=>Yl});var sr=typeof navigator=="undefined"?"":navigator.userAgent,Ae=i=>new RegExp(i,"i").test(sr),Tt=i=>{if(Ae(i)){let t=new RegExp(`${i}\\/([\\d.]+)`),e=sr.match(t);if(e&&e[1])return e[1]}return""},Wl=i=>{if(Ae(i)){let t=new RegExp(`${i}\\/(\\d+)`),e=sr.match(t);if(e&&e[1])return parseFloat(e[1])}return NaN},ff=/AppleWebKit\/([\d.]+)/i.exec(sr),u_=ff?parseFloat(ff[1]):NaN,Gs=Ae("iPad"),Gl=typeof navigator!="undefined"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&Ae("Macintosh"),so=Ae("iPhone")&&!Gs,Ef=Ae("iPod"),mt=so||Gs||Ef||Gl,pt=Ae("Android"),jl=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}(),l_=pt&&Ae("webkit")&&jl<2.3,m_=pt&&jl<5&&u_<537,$t=Ae("Firefox"),ed=Tt("Firefox"),td=Wl("Firefox"),Go=Ae("Edge"),rd=Tt("Edge"),js=Ae("Edg"),id=Tt("Edg"),ql=Wl("Edg"),oa=Ae("SogouMobileBrowser"),od=Tt("SogouMobileBrowser"),sa=Ae("MetaSr\\s"),sd=Tt("MetaSr\\s"),wr=Ae("TBS"),nd=Tt("TBS"),qs=Ae("XWEB"),ad=Tt("XWEB"),p_=Ae("MSIE\\s8\\.0"),Tf=Ae("MSIE\\/\\d+"),h_=function(){if(Tf){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}(),zs=Ae("(micromessenger|webbrowser)"),cd=Tt("MicroMessenger"),Js=!wr&&Ae("MQQBrowser")&&Ae("COVC"),Xs=!wr&&Ae("MQQBrowser")&&!Ae("COVC"),Ws=Xs||Js?Tt("MQQBrowser"):"",na=!wr&&Ae(" QQBrowser"),dd=Tt(" QQBrowser"),aa=!wr&&Ae("QQBrowserLite"),ud=Tt("QQBrowserLite"),ca=!wr&&Ae("MQBHD"),ld=Tt("MQBHD"),jo=Ae("Windows"),Mr=!mt&&Ae("MAC OS X"),da=!pt&&Ae("Linux"),zl=Ae("CrOS"),f_=Ae("MicroMessenger"),Jl=Ae("UCBrowser"),g_=Ae("Electron"),ua=Ae("MiuiBrowser"),md=Tt("MiuiBrowser"),la=Ae("HuaweiBrowser"),ma=Ae("Huawei")||Ae("HUAWEI"),Xl=Ae("Honor")||Ae("HONOR"),pd=Tt("HuaweiBrowser"),pa=Ae("SamsungBrowser"),hd=Tt("SamsungBrowser"),ha=Ae("HeyTapBrowser"),fd=Tt("HeyTapBrowser"),fa=Ae("VivoBrowser"),gd=Tt("VivoBrowser"),Qs=Ae("OpenHarmony"),E_=Tt("OpenHarmony"),Ed=()=>Wl("Chrome"),Xr=Ae("Chrome"),Ys=!Go&&!sa&&!oa&&!wr&&!qs&&!js&&!na&&!ua&&!la&&!pa&&!ha&&!fa&&Xr,Ql=Ae("HeadlessChrome"),Qr=Ed(),Td=Tt("Chrome"),_t=!Xr&&!Xs&&!Js&&!aa&&!ca&&Ae("Safari"),mr=_t||mt,Ii=Tt("Version"),T_=/Android.*(wv|.0.0.0)/.test(sr),Or=(()=>{if(Gl)return Ii;if(mt){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 Yl(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 Zl(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 Mt=Number(Or.split(".")[0]),__=Ii==="15.1",Kl=Or==="15.1",em=(()=>{let i=Number(Or.split(".")[0]);return i===14||i===13})(),_f=Ae("CriOS"),tm=_f&&Ii==="11.1.1",xr=typeof location=="undefined"?!1:location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1",Si=(()=>{let i;return()=>{if(typeof i=="undefined")try{i=!!window.localStorage}catch(t){i=!1}return i}})(),Jr=If();function If(){let i=new Map([[$t,["Firefox",ed]],[js,["Edg",id]],[Ys,["Chrome",Td]],[_t,["Safari",Ii]],[wr,["TBS",nd]],[qs,["XWEB",ad]],[zs&&so,["WeChat",cd]],[na,["QQ(Win)",dd]],[Xs,["QQ(Mobile)",Ws]],[Js,["QQ(Mobile X5)",Ws]],[aa,["QQ(Mac)",ud]],[ca,["QQ(iPad)",ld]],[ua,["MI",md]],[la,["HW",pd]],[pa,["Samsung",hd]],[ha,["OPPO",fd]],[fa,["VIVO",gd]],[Go,["EDGE",rd]],[oa,["SogouMobile",od]],[sa,["Sogou",sd]]]),t="unknown",e="unknown";return i.has(!0)&&([t,e]=i.get(!0)),{name:t,version:e}}var Ge=null;function rm(){return Ge&&typeof Ge.mobile=="boolean"?Ge.mobile:pt||mt||so||Gs||Qs}var Dr="";function qo(){return y(this,null,function*(){if(Ge)return Ge;if(!navigator.userAgentData||typeof navigator.userAgentData.getHighEntropyValues!="function")return null;try{return Ge=yield navigator.userAgentData.getHighEntropyValues(["architecture","bitness","model","platformVersion","fullVersionList"]),Ge&&!Dr&&(Dr=`UAData: ${Ge.platform}/${Ge.platformVersion}`,Ge.architecture&&Ge.bitness&&(Dr+=` ${Ge.architecture}/${Ge.bitness}`),Ge.mobile&&(Dr+=" mobile"),Ge.model&&(Dr+=` model: ${Ge.model.replace(/\s+/g,"/")}`),Ge.fullVersionList&&(Dr+=` ${Ge.fullVersionList.filter(i=>i.brand!=="Not/A)Brand").map(i=>`${i.brand}/${i.version}`).join(",")}`)),Ge}catch(i){return null}})}function im(){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 ga(){return(Ge==null?void 0:Ge.model)||""}var gf=new Map([[pt,"Android"],[mt,"iOS"],[jo,"Windows"],[Mr,"MacOS"],[da,"Linux"],[zl,"ChromeOS"]]),Zs=function(){return gf.get(!0)?gf.get(!0):Ge?Ge.platform:"unknown"};function zo(){return jo?1:pt?2:Mr?3:mt?4:da?5:zl?6:Qs?7:0}function om(){return Xr?1:_t?2:$t?3:0}var Jo=()=>{let i=Zs();return i+=`/${Jr.name}/${_t?Jr.version:Jr.version.split(".")[0]}`,Ge!=null&&Ge.platformVersion&&(i+=`/${Ge.platformVersion}`),Ge!=null&&Ge.architecture&&(i+=`/${Ge.architecture}`),i};function sm(){return pt?4:so?2:Gs?3:Mr?12:jo?5:da?13:Qs?22:1}function nm(){return pt?"Android":so?"iPhone":Gs?"iPad":Mr?"Mac":jo?"Windows":da?"Linux":"unknown"}var yf=mi(yi(),1),y_=new yf.default,V=y_;var kr=(G=>(G.ROOM_DESTROY="1",G.JOIN_START="21",G.JOIN_SCHEDULE_SUCCESS="22",G.JOIN_SIGNAL_CONNECTION_START="23",G.JOIN_SIGNAL_CONNECTION_END="24",G.JOIN_SEND_CMD="25",G.JOIN_RECEIVED_CMD_RES="26",G.JOIN_SUCCESS="27",G.JOIN_FAILED="28",G.LEAVE_START="51",G.LEAVE_SEND_CMD="52",G.LEAVE_SUCCESS="53",G.PUBLISH_START="61",G.SEND_FIRST_VIDEO_FRAME="62",G.PUBLISH_FAILED="63",G.SUBSCRIBE_START="81",G.SUBSCRIBE_SUCCESS="82",G.SUBSCRIBE_FAILED="84",G.UNSUBSCRIBE_SUCCESS="83",G.LOCAL_TRACK_CAPTURE_START="101",G.LOCAL_TRACK_CAPTURE_SUCCESS="102",G.LOCAL_TRACK_CAPTURE_FAILED="103",G.LOCAL_TRACK_PUBLISHED="104",G.LOCAL_TRACK_UNPUBLISHED="105",G.LOCAL_TRACK_REPLACED="106",G.SWITCH_DEVICE_SUCCESS="107",G.TRACK_MUTED="108",G.TRACK_UNMUTED="109",G.REMOTE_TRACK_SUBSCRIBED="110",G.REMOTE_TRACK_UNSUBSCRIBED="111",G.LOCAL_TRACK_RECAPTURE="112",G.LOCAL_AUDIO_STARTED="113",G.LOCAL_AUDIO_STOPPED="114",G.REMOTE_AUDIO_STARTED="115",G.REMOTE_AUDIO_STOPPED="116",G.PLAY_TRACK_START="151",G.PLAYER_STATE_CHANGED="152",G.VIDEO_LOADED_DATA="153",G.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",G.AUDIO_CONTEXT_LONG_SUSPENDED="155",G.SIGNAL_CONNECTION_STATE_CHANGED="201",G.PEER_CONNECTION_STATE_CHANGED="202",G.SINGLE_CONNECTION_STAT="203",G.SPC_RECONNECTED="204",G.HEARTBEAT_REPORT="251",G.RECEIVED_PUBLISHED_USER_LIST="252",G.REMOTE_PUBLISH_STATE_CHANGED="253",G.AUDIO_LEVEL_INTERVAL="260",G.NETWORK_QUALITY="261",G.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",G.QUALITY_LIMITATION_CHANGED="263",G.LOG="264",G.AUDIO_PROCESSOR_DEBUG="265",G.SSO_SWITCH="266",G.SWITCH_ROOM_START="401",G.SWITCH_ROOM_SUCCESS="407",G.SWITCH_ROOM_FAILED="408",G))(kr||{});var F=kr;var cm=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})}},no=new cm;var A_="%cTRTC%c%s",b_="padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;",R_="display: inline",Id=class Id{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);!Ds&&!Gn&&(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(De(r.userId)&&Le(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:Pc(),sdkAppId:String(a),userId:n,version:nt,log:u.map(T=>T.log).join(`
|
|
4
|
-
`)},h=JSON.stringify(m),f=no.enable?Ti(m,2002,a):h;yield this.uploadLogWithRetry(f,a,f instanceof Uint8Array,h),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 oo({retryFunction:()=>_i({url:Ei(e,to.LOG),body:t,timeout:5e3,priority:"low"}).then(s=>{r&&s.data!=="ok"&&(no.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(Wn()),`[${Ns(e)}] <${Rr[t]}>`}getLogLevel(){return this._logLevel}setLogLevel(t){O(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(De(t))return t;try{return t instanceof Error?t.toString():JSON.stringify(t)}catch(e){return""}}log(t,e,r=!0,o,s){var u;e.unshift(this.getPrefix(t));let n={log:e.reduce((m,h)=>`${m} ${this.logChunkToString(h)}`.trim(),""),level:t,userId:o,sdkAppId:s,forAllJoinedClients:r};if(V.emit(F.LOG,{log:n}),this._isEnableUploadLog&&t>=this._logLevelToUpload&&this._queue.push(n),t<this._logLevel)return;let a=((u=Rr[t])==null?void 0:u.toLowerCase())||"info";Id.PRINT_LOG_TAG?console[a](A_,b_,R_,...e):console[a](...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 Hs(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(Id,"PRINT_LOG_TAG",!(mt||pt||Ql));var dm=Id,$=new dm;var v_=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)})},Ta=v_;var um=class{constructor(){l(this,"_prefix","TRTC");l(this,"_queue",new Map)}getRealKey(t){return`${this._prefix}_${t}`}checkStorage(){if(!Si())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(Si())try{for(let[t,e]of this._queue)localStorage.setItem(t,JSON.stringify(e))}catch(t){$.warn(t)}}getItem(t){if(!Si())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(Si())try{let r={expiresIn:Date.now()+Lc,value:e};this._queue.set(this.getRealKey(t),r)}catch(r){$.warn(r)}}deleteItem(t){if(!Si())return!1;try{return t=this.getRealKey(t),this._queue.delete(t),localStorage.removeItem(t),!0}catch(e){return $.warn(e),!1}}clear(){if(Si())try{localStorage.clear()}catch(t){$.warn(t)}}},en=new um;var co={};li(co,{HTTPS_API:()=>z_,IS_GET_CAPABILITIES_FROM_INPUTDEVICE_SUPPORTED:()=>km,IS_GET_CAPABILITIES_SUPPORTED:()=>xm,IS_GET_SETTINGS_SUPPORTED:()=>sn,IS_GET_SYNCHRONIZATION_SOURCES_SUPPORTED:()=>rI,IS_INSERTABLE_STREAM_SUPPORTED:()=>Da,IS_JITTER_BUFFER_TARGET_SUPPORTED:()=>nI,IS_RTC_RTP_SENDER_SUPPORTED:()=>Na,IS_SCRIPT_TRANSFORM_SUPPORTED:()=>eg,IS_SEI_SUPPORTED:()=>wa,IS_SPC_SUPPORTED:()=>Z_,basis:()=>oI,capabilityCheck:()=>Lm,checkSystemRequirementsInternal:()=>kd,decodeSupportStatus:()=>qf,detectVideoCodecCapabilities:()=>Um,detectVideoDecoderCapabilities:()=>ng,detectVideoEncoderCapabilities:()=>sg,encodeSupportStatus:()=>Om,getBrowserInfo:()=>Od,getDisplayResolution:()=>zf,isAddTransceiverSupported:()=>Ld,isBrowserSupported:()=>Dm,isCanvasCaptureStreamAPISupported:()=>Qf,isCanvasSmallStreamSupported:()=>Yf,isGetReceiversSupported:()=>Q_,isGetSendersSupported:()=>Kf,isGetTransceiversSupported:()=>Y_,isGetUserMediaSupported:()=>Jf,isMediaDevicesSupported:()=>xd,isMediaSessionSupported:()=>rg,isMediaStreamTrackProcessorSupported:()=>Mm,isReplaceTrackSupported:()=>eI,isRequestVideoFrameCallbackSupported:()=>Di,isSIMDSupported:()=>iI,isScaleResolutionDownBySupported:()=>Zf,isScreenCaptureApiAvailable:()=>Ca,isSelectedCandidatePair:()=>J_,isSetParametersSupported:()=>tI,isSetSinkIdSupported:()=>G_,isSmallStreamSupported:()=>Pd,isStopTransceiverSupported:()=>K_,isTRTCSupported:()=>W_,isUnifiedPlanDefault:()=>X_,isUsedInHttpProtocol:()=>Ni,isWebAudioSupported:()=>Xf,isWebCodecSupported:()=>tg,isWebCodecsSupported:()=>wm,isWebRTCSupported:()=>Pm,isWebTransportSupported:()=>ig});var Am={};li(Am,{AUDIO_LEVEL_SCALE:()=>Ri,AudioCodecPipelineType:()=>bd,AudioDecoderDowngradeState:()=>pm,AudioPlayerMode:()=>Em,AudioType:()=>fm,BASIC_TYPE:()=>vi,BannedReason:()=>Tm,CONNECTION_CLOSED_REASON:()=>bf,CheckPermissionType:()=>ym,ClientEvent:()=>lm,CodecType:()=>Mf,ConnectionEvent:()=>Af,ConnectionState:()=>yd,DECODE_FAILED_ERROR_CODE:()=>Sm,DeviceType:()=>vd,FacingMode:()=>Ad,FrameWorkType:()=>Sd,LeaveReason:()=>_m,LocalTrackEvent:()=>Ia,MULTI_VIDEO_DATA_TYPE:()=>bi,MediaType:()=>At,MediaTypeLabel:()=>C_,MonitorEventId:()=>ya,MutedFlag:()=>vf,NetworkQualityValue:()=>Df,PlayerState:()=>Xo,ReceiveMode:()=>wf,RemoteStreamType:()=>Yr,RemoteTrackEvent:()=>tn,RoomEvent:()=>Ai,SMALL_MODE:()=>Rd,SceneNumber:()=>mm,StreamEvent:()=>Rf,StreamType:()=>Nf,SubscribeMediaType:()=>_a,TIMER_TYPE:()=>ao,TRACK_ACTION:()=>Cf,TRACK_KIND:()=>hm,TrackEvent:()=>Pr,UserRole:()=>Qt,UserRoleNumber:()=>Qo,VideoCodec:()=>Im,VideoCodecPipelineType:()=>ba,VideoContentHint:()=>Ra,VideoDecoderDowngradeState:()=>Sa,VideoPlayerMode:()=>Aa,VideoType:()=>gm});var Sd=(e=>(e[e.WEBRTC=30]="WEBRTC",e[e.WASM=37]="WASM",e))(Sd||{}),Af=(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))(Af||{}),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||{}),lm=(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))(lm||{}),Rf=(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))(Rf||{}),Ia=(a=>(a.DEVICE_AUTO_RECOVERED="1",a.DEVICE_RECOVER_FAILED="5",a.DEVICE_CHANGED="2",a.ERROR="3",a.PUBLISH_STATE_CHANGED="4",a.ENCODE_FAILED="6",a.TRACK_ENDED="7",a))(Ia||{}),Xo=(r=>(r.PAUSED="PAUSED",r.PLAYING="PLAYING",r.STOPPED="STOPPED",r))(Xo||{}),Ai=(Ie=>(Ie.PEER_JOIN="peer-join",Ie.PEER_LEAVE="peer-leave",Ie.SIGNAL_CONNECTION_STATE_CHANGED="signal-connection-state-changed",Ie.MEDIA_CONNECTION_STATE_CHANGED="media-connection-state-changed",Ie.BANNED="banned",Ie.NETWORK_QUALITY="network-quality",Ie.AUDIO_VOLUME="audio-volume",Ie.SEI_MESSAGE="sei-message",Ie.ERROR="error",Ie.REMOTE_PUBLISH_STATE_CHANGED="remote-publish-state-changed",Ie.REMOTE_PUBLISHED="remote-published",Ie.REMOTE_UNPUBLISHED="remote-unpublished",Ie.FIREWALL_RESTRICTION="firewall-restriction",Ie.HEARTBEAT_REPORT="heartbeat-report",Ie.CUSTOM_MESSAGE="custom-message",Ie.LAYER_DATA="layerData",Ie.FIRST_VIDEO_FRAME="first-video-frame",Ie.DUMP="dump",Ie.AUDIO_FRAME="audio-frame",Ie.SUBSCRIBE_SMALL_VIDEO_CHANGED="subscribe-small-video-changed",Ie.LOCAL_PUBLISH_FLAG_CHANGED="local-publish-flag-changed",Ie))(Ai||{}),Pr=(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))(Pr||{}),tn=(e=>(e.DECODE_FAILED="decode-failed",e.DECODE_DOWNGRADE_STATE_CHANGED="decode-downgrade-state-changed",e))(tn||{}),vf=(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))(vf||{}),mm=(e=>(e[e.RTC=1]="RTC",e[e.LIVE=2]="LIVE",e))(mm||{}),Qo=(e=>(e[e.ANCHOR=20]="ANCHOR",e[e.AUDIENCE=21]="AUDIENCE",e))(Qo||{}),Qt=(e=>(e.ANCHOR="anchor",e.AUDIENCE="audience",e))(Qt||{}),yd=(s=>(s.CONNECTED="CONNECTED",s.DISCONNECTED="DISCONNECTED",s.CONNECTING="CONNECTING",s.RECONNECTED="RECONNECTED",s.RECONNECTING="RECONNECTING",s))(yd||{}),pm=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(pm||{}),Sa=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(Sa||{}),hm=(r=>(r.AUDIO="audio",r.VIDEO="video",r.AUXILIARY="auxVideo",r))(hm||{}),Cf=(e=>(e.ADD="add",e.REMOVE="remove",e))(Cf||{}),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||{}),C_={1:"audio",2:"auxVideo",4:"video"},fm=(t=>(t[t.opus=111]="opus",t))(fm||{}),gm=(e=>(e[e.h264=100]="h264",e[e.vp8=101]="vp8",e))(gm||{}),Nf=(e=>(e.Big="big",e.Small="small",e))(Nf||{}),Yr=(e=>(e.Main="main",e.Aux="auxiliary",e))(Yr||{}),bi=(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))(bi||{}),ya=(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))(ya||{}),Df=(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))(Df||{}),wf=(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))(wf||{}),Ad=(e=>(e.user="user",e.environment="environment",e))(Ad||{}),Aa=(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))(Aa||{}),Em=(e=>(e[e.ELEMENT=0]="ELEMENT",e[e.CONTEXT=1]="CONTEXT",e))(Em||{}),Tm=(o=>(o.BANNED="banned",o.KICK="kick",o.USER_TIME_OUT="user_time_out",o.ROOM_DISBAND="room_disband",o))(Tm||{}),_m=(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))(_m||{}),Ri=1e8,_a=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)}},vi=(s=>(s.String="string",s.Number="number",s.Boolean="boolean",s.Array="array",s.Object="object",s))(vi||{}),Im=(s=>(s.H264="h264",s.H265="h265",s.VP8="vp8",s.VP9="vp9",s.AV1="av1",s))(Im||{}),ba=(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))(ba||{}),bd=(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))(bd||{}),Mf=(r=>(r.WebRTC="webrtc",r.WebCodecs="webcodecs",r.WebAssembly="webassembly",r))(Mf||{}),Sm=(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))(Sm||{}),Ra=(o=>(o.NONE="",o.DETAIL="detail",o.MOTION="motion",o.TEXT="text",o))(Ra||{}),ao=(s=>(s.INTERVAL="interval",s.TIMEOUT="timeout",s.RAF="raf",s.RIC="ric",s.INTERVAL_IN_WORKER="intervalInWorker",s))(ao||{}),Rd=(e=>(e.CANVAS="canvas",e.API="api",e))(Rd||{}),ym=(o=>(o[o.NONE=0]="NONE",o[o.MICROPHONE=1]="MICROPHONE",o[o.CAMERA=2]="CAMERA",o[o.BOTH=3]="BOTH",o))(ym||{}),vd=(e=>(e.CAMERA="camera",e.MICROPHONE="microphone",e))(vd||{});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"},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: ${at(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: ${at(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 Of=(i,t)=>t?`${Gr}/${i}/${t}`:`${Gr}/${i}/index.html`;var N_=()=>{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(Sl);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="";We(Yt[t])?s=Yt[t](e):De(Yt[t])&&(s=Yt[t]);let{TRTC_ERROR_INFO:u,TRTC_ERROR_LINK:m}=N_();r?a=`${r.className}.html#${r.fnName}`:m&&m[t]&&(We(m[t])?a=m[t](e):De(m[t])&&(a=m[t]));let h=s;return Cr()&&(u&&u[t]&&(We(u[t])?n=u[t](e):De(u[t])&&(n=u[t])),n&&(o?h=`${n}
|
|
5
|
-
\u8BF7\u67E5\u770B\u6587\u6863: ${
|
|
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: ${Xf("zh-cn",a)}
|
|
6
6
|
|
|
7
|
-
`:
|
|
7
|
+
`:p=`${n}
|
|
8
8
|
|
|
9
|
-
`,
|
|
10
|
-
Refer to: ${
|
|
11
|
-
`),h}var Nm=mi($f(),1);var V_=1,F_=0,Nd=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:Qc(this.version||nt),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(Le(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:V_,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&&(Le(e)?r=e:(!O(e.extraCode)||!O(e.code))&&(r=e.extraCode||e.code)),this.addEnum({key:t,value:F_,useUV:!1}),this.addEnum({key:t,value:Math.abs(r),useUV:!1})}},Dd=(Y=>(Y[Y.enterRoom=500700]="enterRoom",Y[Y.exitRoom=500701]="exitRoom",Y[Y.switchRole=500702]="switchRole",Y[Y.destroy=500703]="destroy",Y[Y.startLocalAudio=500704]="startLocalAudio",Y[Y.updateLocalAudio=500705]="updateLocalAudio",Y[Y.stopLocalAudio=500706]="stopLocalAudio",Y[Y.startLocalVideo=500707]="startLocalVideo",Y[Y.updateLocalVideo=500708]="updateLocalVideo",Y[Y.stopLocalVideo=500709]="stopLocalVideo",Y[Y.startScreenShare=500710]="startScreenShare",Y[Y.updateScreenShare=500711]="updateScreenShare",Y[Y.stopScreenShare=500712]="stopScreenShare",Y[Y.startRemoteVideo=500713]="startRemoteVideo",Y[Y.updateRemoteVideo=500714]="updateRemoteVideo",Y[Y.stopRemoteVideo=500715]="stopRemoteVideo",Y[Y.muteRemoteAudio=500716]="muteRemoteAudio",Y[Y.setRemoteAudioVolume=500717]="setRemoteAudioVolume",Y[Y.use=500718]="use",Y[Y.switchRoom=500719]="switchRoom",Y[Y.sendSEIMessage=5e5]="sendSEIMessage",Y[Y.sendCustomMessage=500001]="sendCustomMessage",Y))(Dd||{}),Rm=(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))(Rm||{}),vm=(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))(vm||{}),Cm=(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))(Cm||{});var on=(x=>(x[x.DECODER_TYPE=514700]="DECODER_TYPE",x[x.DECODER_HW_SW=514701]="DECODER_HW_SW",x[x.DECODE_RESULT=514702]="DECODE_RESULT",x[x.DECODE_FAILED_OS=514703]="DECODE_FAILED_OS",x[x.DOWNGRADE_RESULT=514704]="DOWNGRADE_RESULT",x[x.DOWNGRADE_WEBCODECS_VIDEO=514705]="DOWNGRADE_WEBCODECS_VIDEO",x[x.DOWNGRADE_WEBCODECS_2D=514706]="DOWNGRADE_WEBCODECS_2D",x[x.DOWNGRADE_WASM_WEGBL=514707]="DOWNGRADE_WASM_WEGBL",x[x.DOWNGRADE_WASM_VIDEO=514708]="DOWNGRADE_WASM_VIDEO",x[x.DOWNGRADE_WASM_2D=514709]="DOWNGRADE_WASM_2D",x[x.DECODE_H264_RESULT=514710]="DECODE_H264_RESULT",x[x.DECODE_H265_RESULT=514711]="DECODE_H265_RESULT",x[x.DECODE_VP8_RESULT=514712]="DECODE_VP8_RESULT",x[x.DECODE_CAPABILITIES=514713]="DECODE_CAPABILITIES",x[x.RENDER_FREEZE_RATE=514850]="RENDER_FREEZE_RATE",x[x.DATA_FREEZE_RATE=514851]="DATA_FREEZE_RATE",x[x.VIDEO_CONSUME_RENDER_RATE=514852]="VIDEO_CONSUME_RENDER_RATE",x))(on||{});var $_=new Nd(!0),Zo=new Nd(!1);var X=$_;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}},B_=new Map([[$t,["Firefox",ed]],[js,["Edg",id]],[Ys,["Chrome",Td]],[_t,["Safari",Ii]],[wr,["TBS",nd]],[qs,["XWEB",ad]],[zs&&so,["WeChat",cd]],[na,["QQ(Win)",dd]],[Xs,["QQ(Mobile)",Ws]],[Js,["QQ(Mobile X5)",Ws]],[aa,["QQ(Mac)",ud]],[ca,["QQ(iPad)",ld]],[ua,["MI",md]],[la,["HW",pd]],[pa,["Samsung",hd]],[ha,["OPPO",fd]],[fa,["VIVO",gd]],[Go,["EDGE",rd]],[oa,["SogouMobile",od]],[sa,["Sogou",sd]]]);function Od(){let i=B_.get(!0),t=i?i[0]:"unknown",e=i?i[1]:"unknown";return{browserName:t,browserVersion:e}}var Dm=function(){return!(Jl||Go||js&&ql<80||$t&&td<56)},wm=function(){return["VideoDecoder","VideoEncoder","AudioEncoder","AudioDecoder"].every(t=>t in window)},xd=function(){if(!navigator.mediaDevices)return Ni()||$.error(Yt.NOT_SUPPORTED_MEDIA),!1;let i=["getUserMedia","enumerateDevices"];return i.filter(t=>t in navigator.mediaDevices).length===i.length},Bf=!1;function Ni(){return location.protocol==="http:"&&!xr?(Bf||$.error(Be({key:$e.NOT_SUPPORTED_HTTP})),Bf=!0,!0):!1}var Mm=function(){return(window==null?void 0:window.OffscreenCanvas)&&(window==null?void 0:window.MediaStreamTrackProcessor)&&(window==null?void 0:window.MediaStreamTrackGenerator)},Om=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}}})},qf=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;Ld()?(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 H_(){return y(this,null,function*(){let[i,t]=yield Promise.all([Om(),qf()]);return{encode:{h264:i.isH264EncodeSupported,vp8:i.isVp8EncodeSupported,h265:i.isH265EncodeSupported},decode:{h264:t.isH264DecodeSupported,vp8:t.isVp8DecodeSupported,h265:t.isH265DecodeSupported}}})}var kd=Yc(i=>y(void 0,null,function*(){let t=Date.now(),e=Pm(),r=xd(),o=wm();if(ve.detail.isWebRTCSupported=e,ve.detail.isMediaDevicesSupported=r,ve.detail.isWebCodecsSupported=o,ve.detail.isScreenShareSupported=Ca(),ve.detail.isSmallStreamSupported=Pd(),i===37)return Object.assign(ve.detail,yield q_()),ve.detail.isBrowserSupported=o,ve.result=r&&o,ve.result||$.error(`${navigator.userAgent} ${ta(ve.detail,!1)}`),Hf(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=Dm(),{encode:n,decode:a}=yield H_(),{h264:u,vp8:m}=n,{h264:h}=a,{h265:f}=n,{vp8:T,h265:A}=a;if(!u||!m){let C=yield Om();$.warn(`detect encode again h264:${u} vp8:${m} result: ${JSON.stringify(C)}`),u=C.isH264EncodeSupported,m=C.isVp8EncodeSupported}if(u&&h&&pt&&Xr&&!qs&&!wr){let{encode:C,decode:N}=yield j_();u=C,h=N}return ve.result=s&&e&&r&&(u||m)&&(h||T),ve.detail.isBrowserSupported=s,ve.detail.isWebRTCSupported=e,ve.detail.isH264EncodeSupported=u,ve.detail.isVp8EncodeSupported=m,ve.detail.isH265EncodeSupported=f,ve.detail.isH264DecodeSupported=h,ve.detail.isVp8DecodeSupported=T,ve.detail.isH265DecodeSupported=A,ve.result||$.error(`${navigator.userAgent} ${ta(ve.detail,!1)}`),Hf(),X.addNumber({key:523800,value:Date.now()-t}),ve})),W_=function(){return ve.result},Ca=function(){return!!(navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)},G_=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype,wd=null;function j_(){return y(this,null,function*(){return wd||(wd=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(),h.close(),u.getTracks().forEach(N=>N.stop())},a=setTimeout(()=>{e(),i(t)},2*1e3);let u=r.captureStream(),m=new RTCPeerConnection({}),h=new RTCPeerConnection({offerToReceiveAudio:!0,offerToReceiveVideo:!0});m.addEventListener("icecandidate",N=>h.addIceCandidate(N.candidate)),h.addEventListener("icecandidate",N=>m.addIceCandidate(N.candidate)),m.addTrack(u.getVideoTracks()[0],u);let f=yield m.createOffer();yield m.setLocalDescription(f),yield h.setRemoteDescription(f);let T=yield h.createAnswer(),A=Nm.default.parse(T.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)),T.sdp=Nm.default.write(A),yield h.setLocalDescription(T),yield m.setRemoteDescription(T),n=setInterval(()=>y(this,null,function*(){t.encode&&t.decode&&(e(),i(t));let[N,w]=yield Promise.all([m.getSenders()[0].getStats(),h.getReceivers()[0].getStats()]);t.encode||N.forEach(x=>{x.type==="outbound-rtp"&&x.mediaType===M.VIDEO&&x.bytesSent>0&&(t.encode=!0)}),t.decode||w.forEach(x=>{x.type==="inbound-rtp"&&x.mediaType===M.VIDEO&&x.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)),wd)})}var Md=null;function q_(){return y(this,null,function*(){return Md||(Md=new Promise(i=>y(this,null,function*(){let t={isH264EncodeSupported:!1,isH264DecodeSupported:!1,isVp8EncodeSupported:!1,isVp8DecodeSupported:!1};if(!wm()){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(h=>y(this,null,function*(){let f={type:h.type,encodeSupported:!1,decodeSupported:!1},T;try{T=yield new Promise((A,C)=>y(this,null,function*(){try{let N=new VideoEncoder({output:x=>{A(x),f.encodeSupported=!0},error:C});N.configure(h.encodeConfig),a();let w=new VideoFrame(e,{timestamp:0});N.encode(w,{keyFrame:!0}),w.close(),yield N.flush(),N.close()}catch(N){C(N)}}))}catch(A){return $.warn(`${h.type} encoder error:`,A),f}try{yield new Promise((A,C)=>y(this,null,function*(){try{let N=new VideoDecoder({output:w=>{f.decodeSupported=!0,A(0),w.close()},error:C});N.configure(h.decodeConfig),N.decode(T),yield N.flush(),N.close()}catch(N){C(N)}}))}catch(A){$.warn(`${h.type} decoder error:`,A)}return f})))).forEach(h=>{h.type==="h264"?(t.isH264EncodeSupported=h.encodeSupported,t.isH264DecodeSupported=h.decodeSupported):h.type==="vp8"&&(t.isVp8EncodeSupported=h.encodeSupported,t.isVp8DecodeSupported=h.decodeSupported)}),s(),i(t)}catch(n){s(),$.warn("detectWebCodecsSupported failed:",n),i(t)}})),Md)})}var z_=(i,t,e)=>{location.protocol==="http:"&&!xr&&(i[t]=()=>{throw new de({code:q.INVALID_OPERATION,message:Yt.NOT_SUPPORTED_HTTP})})},J_=function(i){return i.type==="candidate-pair"&&i.nominated&&(i.state==="in-progress"||i.state==="succeeded")?!(Xe(i.selected)&&!i.selected):!1};function zf(){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 Jf(){return navigator.getUserMedia||navigator.mediaDevices&&navigator.mediaDevices.getUserMedia}function Xf(){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 Qf(){return"captureStream"in HTMLCanvasElement.prototype}function Yf(){return zs||mt||Qr&&Qr<63?!1:!!(Dm()&&Qf())}function Zf(){return!(Qr<74||Go||Mt<11||td<46)}function Pd(){return Yf()||Zf()}var X_=function(){if(O(window.RTCRtpTransceiver)||!Ld()||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let i=null,t=!1;try{i=new RTCPeerConnection({sdpSemantics:Rl}),i.addTransceiver(M.AUDIO),t=!0}catch(e){}return i==null||i.close(),t};function Q_(){return"RTCPeerConnection"in window&&"getReceivers"in window.RTCPeerConnection.prototype}function Kf(){return"RTCPeerConnection"in window&&"getSenders"in window.RTCPeerConnection.prototype}function Y_(){return"RTCPeerConnection"in window&&"getTransceivers"in window.RTCPeerConnection.prototype}function Ld(){return Mt===11&&!tm?!1:"RTCPeerConnection"in window&&"addTransceiver"in window.RTCPeerConnection.prototype}var Z_=!(!Ld()||Xr&&Qr<86);function K_(){return"RTCRtpTransceiver"in window&&"stop"in window.RTCRtpTransceiver.prototype}var Na="RTCRtpSender"in window;function eI(){return Na&&"replaceTrack"in window.RTCRtpSender.prototype}function tI(){return Na&&"setParameters"in window.RTCRtpSender.prototype&&Kf()}var rI="RTCRtpReceiver"in window&&"getSynchronizationSources"in window.RTCRtpReceiver.prototype,sn=window.MediaStreamTrack&&"getSettings"in MediaStreamTrack.prototype,xm=window.MediaStreamTrack&&"getCapabilities"in MediaStreamTrack.prototype,km=typeof InputDeviceInfo!="undefined"&&"getCapabilities"in InputDeviceInfo.prototype,Da=Na&&"createEncodedStreams"in window.RTCRtpSender.prototype&&Ed()>=86,eg="RTCRtpScriptTransform"in window,wa=Na&&(Da||eg),Pm=function(){return["RTCPeerConnection","webkitRTCPeerConnection","RTCIceGatherer"].filter(t=>t in window).length>0};function tg(){let i={AudioDecoder:!1,AudioEncoder:!1,VideoDecoder:!1,VideoEncoder:!1,ImageDecoder:!1};return O(window.AudioDecoder)||(i.AudioDecoder=!0),O(window.AudioEncoder)||(i.AudioEncoder=!0),O(window.VideoDecoder)||(i.VideoDecoder=!0),O(window.VideoEncoder)||(i.VideoEncoder=!0),O(window.ImageDecoder)||(i.ImageDecoder=!0),i}function rg(){return"mediaSession"in navigator&&!O(navigator.mediaSession.setActionHandler)}function ig(){return!O(window.WebTransport)}function iI(){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 oI(){let i={browser:`${Jr.name}/${Jr.version}`,os:Zs(),displayResolution:zf(),isScreenShareSupported:Ca(),isWebRTCSupported:Pm(),isGetUserMediaSupported:Jf(),isWebAudioSupported:Xf(),isWebSocketsSupported:"WebSocket"in window&&window.WebSocket.CLOSING===2,isWebCodecSupported:tg(),isMediaSessionSupported:rg(),isWebTransportSupported:ig()};return navigator.userAgent.includes("miniProgram")&&(i.browser=`mini/${i.browser}`),i}var og="checkResult";function Hf(i=30){en.setItem(og+i,{ua:navigator.userAgent,checkResult:ve})}function Lm(i){Ni();let t=en.getItem(og+i);t&&t.ua===navigator.userAgent&&t.checkResult&&sI(t.checkResult.detail,ve.detail)&&(ve=t.checkResult),kd(i)}function sI(i,t){return ir(i)?Object.keys(t).every(e=>e in i):!1}function Di(){return"requestVideoFrameCallback"in HTMLVideoElement.prototype}var nI="RTCRtpReceiver"in window&&"jitterBufferTarget"in window.RTCRtpReceiver.prototype;function Wf(i){return{h264:1,h265:2,vp8:3,vp9:4,av1:5}[i]}var Gf=!1;function Um(){return y(this,null,function*(){var i;try{if(Gf||!((i=navigator==null?void 0:navigator.mediaCapabilities)!=null&&i.encodingInfo))return;let t=zo(),e=om();if(t===0||e===0)return;Gf=!0;let r=["H264","VP8","VP9","AV1","H265"],[o,s]=yield Promise.all([sg(r),ng(r)]);o&&Object.keys(o).forEach(n=>{let a=Wf(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=Wf(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 ng(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 cg=mi(yi(),1);var ag=Symbol("instance"),uR=Symbol("abortCtrl"),Ud=Symbol("cacheResult"),Ma=class{constructor(t,e,r){this.oldState=t,this.newState=e,this.action=r,this.aborted=!1}abort(t){this.aborted=!0,ka.call(t,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},Oa=class extends Error{constructor(t,e,r){super(e),this.state=t,this.message=e,this.cause=r}};function aI(i){return typeof i=="object"&&i&&"then"in i}var xa=new Map;function Ze(i,t,e={}){return(r,o,s)=>{let n=e.action||o;if(!e.context){let u=xa.get(r)||[];xa.has(r)||xa.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[Ud]:Promise.resolve(m[Ud]);m.state instanceof Ma&&m.state.action==e.abortAction&&m.state.abort(m);let h=null;Array.isArray(i)?i.length==0?m.state instanceof Ma&&m.state.abort(m):(typeof m.state!="string"||!i.includes(m.state))&&(h=new Oa(m._state,`${m.name} ${n} to ${t} failed: current state ${m._state} not from ${i.join("|")}`)):i!==m.state&&(h=new Oa(m._state,`${m.name} ${n} to ${t} failed: current state ${m._state} not from ${i}`));let f=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(h)return f(h);let T=m.state,A=new Ma(T,t,n);ka.call(m,A);let C=w=>{var x;return m[Ud]=w,A.aborted||(ka.call(m,t),(x=e.success)===null||x===void 0||x.call(this,m[Ud])),w},N=w=>(ka.call(m,T,w),f(w));try{let w=a.apply(this,u);return aI(w)?w.then(C).catch(N):e.sync?C(w):Promise.resolve(C(w))}catch(w){return N(new Oa(m._state,`${m.name} ${n} from ${i} to ${t} failed: ${w}`,w instanceof Error?w:new Error(String(w))))}}}}var cI=typeof window!="undefined"&&window.__AFSM__?(e,r)=>{window.dispatchEvent(new CustomEvent(e,{detail:r}))}:typeof importScripts!="undefined"?(e,r)=>{postMessage({type:e,payload:r})}:()=>{};function ka(i,t){let e=this._state;this._state=i;let r=i.toString();i&&this.emit(r,e),this.emit(le.STATECHANGED,i,e,t),this.updateDevTools({value:i,old:e,err:t instanceof Error?t.message:String(t)})}var le=class i extends cg.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=xa.get(t)||[],r=new Set,o=[],s=[],n=new Set,a=Object.getPrototypeOf(t);xa.has(a)&&(a.stateDiagram.forEach(m=>r.add(m)),a.allStates.forEach(m=>n.add(m))),e.forEach(({from:m,to:h,action:f})=>{typeof m=="string"?o.push({from:m,to:h,action:f}):m.length?m.forEach(T=>{o.push({from:T,to:h,action:f})}):s.push({to:h,action:f})}),o.forEach(({from:m,to:h,action:f})=>{n.add(m),n.add(h),n.add(f+"ing"),r.add(`${m} --> ${f}ing : ${f}`),r.add(`${f}ing --> ${h} : ${f} \u{1F7E2}`),r.add(`${f}ing --> ${m} : ${f} \u{1F534}`)}),s.forEach(({to:m,action:h})=>{r.add(`${h}ing --> ${m} : ${h} \u{1F7E2}`),n.forEach(f=>{f!==m&&r.add(`${f} --> ${h}ing : ${h}`)})});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={}){cI(i.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(t){ka.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 Fm=typeof window!="undefined",dg=Fm&&window.requestIdleCallback||function(i){let t=Date.now();return setTimeout(()=>{i({didTimeout:!1,timeRemaining(){return Math.max(0,50-(Date.now()-t))}})},1e3)},dI=Fm&&window.cancelIdleCallback||function(i){clearTimeout(i)},ug=Fm&&(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=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=pe(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,It.isBreakLoop(t)};return t.intervalID=setInterval(e,t.delay)}static intervalInWorker(t){It.sharedWorker||(It.sharedWorker=new Worker(URL.createObjectURL(new Blob([`
|
|
9
|
+
`,p+=s)),o&&(p+=`
|
|
10
|
+
Refer to: ${Xf("en",a)}
|
|
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([`
|
|
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: ${Of("en",a)}
|
|
|
21
21
|
timers.delete(taskId);
|
|
22
22
|
}
|
|
23
23
|
};
|
|
24
|
-
`],{type:"application/javascript"}))),
|
|
25
|
-
${r.stack}`));let s=no.enable?Ti(o,2002,Number(this._configs.sdkAppId)):JSON.stringify(o);this.sendRequest(Ei(this._configs.sdkAppId,to.LOG),s)}sendRequest(t,e){setTimeout(()=>_i({url:t,body:e,priority:"low"}).catch(()=>{}),2e3)}},je=new $m;var Ko=new WeakMap;function es({settings:i={retries:5,timeout:2e3},onError:t,onRetrying:e,onRetryFailed:r}){return function(o,s,n){let a=oo({retryFunction:n.value,settings:i,onError({error:u,retry:m,reject:h,retryFuncArgs:f}){var T;t?t.call(this,u,()=>{var A;(A=Ko.get(o))!=null&&A.has(s)?m():h(u)},h,f):(T=Ko.get(o))!=null&&T.has(s)?m():h(u)},onRetrying(u,m){var h;io(e)&&e.call(this,u,m),(h=Ko.get(o))!=null&&h.has(s)&&(Ko.get(o).get(s).stopRetry=m)},onRetryFailed:r});return n.value=function(...u){let m=Ko.get(o);return m?m.set(s,{args:u}):Ko.set(o,new Map([[s,{args:u}]])),a.apply(this,u).finally(()=>{var h;return(h=Ko.get(o))==null?void 0:h.delete(s)})},n}}var Kr=class extends le{constructor(e,r){super(e.id,`${r}-player`);this.kind=r;l(this,"id");l(this,"element",null);l(this,"track");l(this,"url");l(this,"attr");l(this,"mode");l(this,"muted");l(this,"_log");l(this,"_pausedRetryCount");l(this,"_isElementPlayingFired",!1);l(this,"_interval");l(this,"_delayDestroyTimeoutId",0);l(this,"_playSuccessResolve");l(this,"_isReplayByRecreateMediaStreamCalled",!1);l(this,"isInAutoPlayFailedState",!1);this.id=e.id,this._log=e.log,this.track=e.track,this.muted=e.muted,this._pausedRetryCount=Uo,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._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&&ft.clearTask(this._interval)}destroyElement(){this.element&&(this._log.debug("destroy element"),this.element.remove(),this.element.srcObject=null,this.element=null),clearTimeout(this._delayDestroyTimeoutId),this._delayDestroyTimeoutId=0}pause(){var e;this.isPlaying&&((e=this.element)==null||e.pause())}resume(){return this._log.info("resume"),this.isPlaying?Promise.resolve():Kl?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&&ct(e)}unbindEvents(){this.element&&ct(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&&(ft.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),mt&&(this._interval=ft.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}),Xl||ma?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)=>{ia(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)}),ia(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;this._log.debug("handlePlaying",e),(r=this._playSuccessResolve)==null||r.call(this,e),this.emit(Qe.PLAYER_STATE_CHANGED,{type:this.kind,state:"PLAYING",reason:e})}handlePaused(e){this._log.debug("handlePaused",e),this.emit(Qe.PLAYER_STATE_CHANGED,{type:this.kind,state:"PAUSED",reason:e})}handleStopped(e){this._log.debug("handleStopped",e),this.emit(Qe.PLAYER_STATE_CHANGED,{type:this.kind,state:"STOPPED",reason:e})}getElement(){return this.element}};K([es({settings:{retries:2,timeout:0},onError(e,r,o,s){s[0]=(s[0]||1e3)+1e3,r()}})],Kr.prototype,"doReplayByRecreateMediaStream",1),K([Ze([],"PLAYING",{sync:!0})],Kr.prototype,"handlePlaying",1),K([Ze("PLAYING","PAUSED",{ignoreError:!0,sync:!0})],Kr.prototype,"handlePaused",1),K([Ze([],"STOPPED",{sync:!0})],Kr.prototype,"handleStopped",1);var wi="trtc_autoplay",Bm=`${wi}_mask`,nn=`${wi}_wrapper`,lg=`${wi}_header`,Hm=`${wi}_content`,Vd=`${wi}_action_wrapper`,Wm=`${wi}_question`,Gm=`${wi}_collapse`,Fd=`${wi}_action_confirm`,mg=`${wi}_detail`,pg="#2473E8",qm="dialog",lI=`${qm}-show`,mI=`${qm}-1`,pI=`${qm}-2`,hg=!1,zm=()=>!!document.querySelector(`.${nn}`),gg=`${Gr}/${Cr()?"zh-cn":"en"}/tutorial-21-advanced-auto-play-policy.html`,fg=`<br><a href='${gg}' target='_blank'>${Cr()?"\u5176\u4ED6\u65B9\u6848\uFF1F":"Any other solution?"}</a>`,hI=`${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${fg}`:`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. ${fg}`}`,jm=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.'),!hg){let t=document.createElement("style");t.innerHTML=`.${Bm}{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;}.${Bm} div:not(.${Vd}){display:block !important;}.${nn}{padding:14px;background:#fff;border-radius:3px;box-shadow:0px 3px 15px #434343;border:1px solid #d1cfcf;max-width:500px;}.${nn} a{color:${pg};}.${lg}{overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:600;}.${Hm}{margin:8px 0;}.${Vd}{width:100%;display:flex !important;align-items:center;justify-content:right;float:right;}.${Gm}{margin-right:auto;cursor:pointer}.${Wm}{height:100%;line-height:16px;cursor:pointer;}.${Fd}{margin-left:8px;color:#fff;background:${pg};padding:4px 12px;outline:none;border:1px solid;border-radius:3px;font-weight:bold;}.${Fd}:hover{opacity:0.9;}.${Gm},.${Fd},.${Hm},.${Wm}{font-size:14px;}@media screen and (max-width:750px){.${nn}{width:80vw;}}`,document.head.appendChild(t),hg=!0}this.addDiaLog()}createDiaLog(){let t=document.createElement("template");t.innerHTML=`<div class="${Bm}"><div class='${nn}'><div class='${lg}'>${location.host}</div><div class='${Hm}'>${this.content}</div><div class='${mg}' style="visibility:hidden;width:100%;height:0;font-size:12px;color:gray;">${hI}</div><div class='${Vd}'></div></div></div>`.trim();let e=document.createElement("button");e.className=Fd,e.innerText=Cr()?"\u6062\u590D\u64AD\u653E":"Resume",e.onclick=this.onConfirm.bind(this);let r=document.createElement("div");r.className=Wm,r.innerHTML=`<?xml version="1.0" encoding="UTF-8"?>
|
|
24
|
+
`],{type:"application/javascript"}))),_t.sharedWorker.onmessage=e=>{var r;if(e.data.type==="tick"){let o=_t.workerTasks.get(e.data.taskId);o&&(_t.isBreakLoop(o)?((r=_t.sharedWorker)==null||r.postMessage({type:"stop",taskId:o.taskID}),_t.workerTasks.delete(o.taskID)):(o.callback(),o.loopCount+=1))}}),_t.workerTasks.set(t.taskID,t),_t.sharedWorker.postMessage({taskId:t.taskID,delay:t.delay,type:"start"})}static timeout(t){let e=()=>{if(t.callback(),t.loopCount+=1,!_t.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),!_t.isBreakLoop(t))return t.ricID=Rg(o,{timeout:t.delay})};return t.ricID=Rg(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,_t.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),!_t.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&&vg&&vg(o),s&&DI(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(_t,"taskMap",new Map),l(_t,"currentTaskID",1),l(_t,"sharedWorker",null),l(_t,"workerTasks",new Map);var zm=_t,dt=zm;var GR={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 Pr={};di(Pr,{create:()=>At,remove:()=>ut});var Ha=new WeakMap;function At(i,t){Ha.has(i)||Ha.set(i,[]);let e=Ha.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=Ha.get(i);t&&(t.forEach(e=>e()),Ha.delete(i))}var Xm=class{constructor(){l(this,"_roomIdMap",new Map);l(this,"_configs");typeof registerProcessor=="undefined"&&(this._configs={sdkAppId:"",userId:"",version:at,env:mi.QCLOUD,browserVersion:Jr.name+Jr.version,ua:navigator.userAgent})}setConfig({sdkAppId:t,env:e,userId:r,roomId:o}){t!==this._configs.sdkAppId&&(this._configs.sdkAppId=String(t)),this._configs.env=e,this._configs.userId=r,this._roomIdMap.set(r,String(o))}logSuccessEvent(t){Mr||!$.isAbleToUpload||this._configs.env===mi.QCLOUD&&this.uploadEventToKibana(ge(J({},t),{result:"success"}))}logFailedEvent(t){if(Mr||!$.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===mi.QCLOUD&&this.uploadEventToKibana(ge(J({},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:Wc(),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=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"?>
|
|
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=Gm,o.innerText=`${Cr()?"\u8BE6\u60C5 >":"Detail >"}`,o.onclick=this.onCollapseClick.bind(this);let s=t.content.firstChild,n=s.querySelector(`.${Vd}`);return n.appendChild(o),n.appendChild(r),n.appendChild(e),s}addDiaLog(){zm()||(this._dialogNode=this.createDiaLog(),document.body.appendChild(this._dialogNode),this._dialogNode.onclick=this.onConfirm.bind(this),this._dialogNode.querySelector(`.${nn}`).onclick=t=>t.stopPropagation(),this._bodyPosition=document.body.style.position,document.body.style.position="fixed",$.info("show autoplay dialog"),je.uploadEvent({log:lI}))}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(`.${mg}`);t.style.visibility=`${this._showDetail?"hidden":"visible"}`,t.style.height=`${this._showDetail?0:"fit-content"}`,this._showDetail=!this._showDetail,this._isCollapseClicked||je.uploadEvent({log:mI}),this._isCollapseClicked=!0}onQuestionClick(){window.open(gg,"_blank"),this._isQuestionClicked||je.uploadEvent({log:pI}),this._isQuestionClicked=!0}},Eg=jm;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,O(e.viewMirror)||(this.viewMirror=e.viewMirror),O(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,h,f;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=Uo,this._log.info(`view container ${(s=this.container)==null?void 0:s.id} is recreated`)),this._pausedRetryCount>0&&!zm()&&(this._log.info(`[${Uo-this._pausedRetryCount+1}/${Uo}] ${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=((h=this.element)==null?void 0:h.videoHeight)||0,this._preSize.width=((f=this.element)==null?void 0:f.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(Di()&&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 Mi(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 La;typeof AudioContext!="undefined"?La=AudioContext:typeof webkitAudioContext!="undefined"?La=webkitAudioContext:typeof mozAudioContext!="undefined"&&(La=mozAudioContext);var Ym=1500,pr,Tg=-1,$d=0,Ua=-1,Qm=!1;_g();function _g(){try{if(pr)return;pr=new La({sampleRate:48e3}),pr.onstatechange=()=>{$.info(`context state: ${pr.state}${pr.state!=="running"?` visibilityState: ${document.visibilityState}`:""}`),an()},clearTimeout(Tg)}catch(i){$.error(`initAudioContext failed: ${i} typeof AudioContextClass: ${typeof La}`),Tg=setTimeout(_g,1e3)}}var an=()=>{pr.state==="suspended"?($d=Te(),fI(),cn(),document.addEventListener("click",an)):pr.state==="interrupted"?cn():($d&&(X.addNumber({key:507800,value:Te()-$d,split:[0,500,1e3,1500,2e3,3e3,4e3,5e3,1e4,3e4],max:6e4}),$d=0),gI(),document.removeEventListener("visibilitychange",an),document.removeEventListener("click",an))},Jm=0,Xm=-1;function cn(){return new Promise((i,t)=>{if(pr.state==="running")return i();Date.now()-Jm<1e3?(clearTimeout(Xm),Xm=setTimeout(()=>{Jm=Date.now(),pr.resume().then(i,t)},1e3)):(clearTimeout(Xm),Jm=Date.now(),pr.resume().then(i,t))}).catch(i=>{$.warn(`context resume failed: ${i}`),document.addEventListener("visibilitychange",an)})}document.addEventListener("click",an);function fI(){Ua===-1&&(Ua=setTimeout(()=>{pr.state==="suspended"&&(Qm=!0,V.emit("155",{isSuspended:!0}))},Ym))}function gI(){Ua!==-1&&(clearTimeout(Ua),Ua=-1,Qm&&(Qm=!1,V.emit("155",{isSuspended:!1})))}var Ye=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(),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}},Bd=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}},Va=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(Ye().createGain()),this.gain.node.gain.value=t}replaceSource(t){this.source.replaceNode(Fa(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}},dn=class extends Va{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}},Hd=class{constructor(){l(this,"audioContext",Ye("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]}},Ig=new WeakMap;function Fa(i){let t=Ig.get(i);if(t)return t;let e=Ye();if(i instanceof HTMLAudioElement)t=e.createMediaElementSource(i);else if(i instanceof MediaStreamTrack)t=e.createMediaStreamSource(new MediaStream([i]));else return i;return Ig.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=Mi(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}`),je.logFailedEvent({userId:this._log.userId,eventType:hi.LOAD_WORKLET,error:t}),this.initScriptProcessor()}}initScriptProcessor(){if(!this._scriptProcessorNode)try{this._scriptProcessorNode=Ye("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",Ye("volume-meter")),l(nr,"workletReady");var Wd=nr,$a=class extends gt{constructor(e){super();l(this,"_volumeMeter");this._volumeMeter=new Wd(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()}}},Gd=Wd;var bg=mi(yi(),1);var yg=i=>t=>t.deviceId===i;var Ba=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&&ln(this.devices[0])){this.devices=r;return}e&&(r.forEach(o=>{if(o.deviceId&&!this.devices.find(yg(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(yg(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)}},Zm=class extends bg.EventEmitter{constructor(){super();l(this,"audioInputs",new Ba(M.AUDIO,"Input"));l(this,"videoInputs",new Ba(M.VIDEO,"Input"));l(this,"audioOutputs",new Ba(M.AUDIO,"Output"));this.init(),navigator.mediaDevices&&(navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",()=>this.update()),"ondevicechange"in navigator.mediaDevices||ft.run("interval",()=>{this.update()},{delay:1e4}))}init(){un().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 un(e);return this.audioInputs.update(r,this),this.videoInputs.update(r,this),this.audioOutputs.update(r,this),this})}},dt=Gn||Ds?null:new Zm;function ln(i){return i.deviceId===i.groupId&&i.groupId===""}function un(){return y(this,arguments,function*(i=0){if(Ni()||!xd())return[];let t=yield navigator.mediaDevices.enumerateDevices();if(i!==0){let e={audio:!1,video:!1};if(t.forEach(r=>{ln(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&&cn()}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&&Km.add(`${e.deviceId}_${e.kind}`),e.getCapabilities&&(o.getCapabilities=()=>e.getCapabilities()),o})})}function Zt(i=!1){return dt.update(i?1:0).then(t=>t.audioInputs.devices)}function Kt(i=!1){return dt.update(i?2:0).then(t=>t.videoInputs.devices)}var Ag=!1;function Rg(){return y(this,null,function*(){try{Ag||(Ag=!0,$.info(`speakers:${(yield uo()).map(i=>` ${i.deviceId.slice(0,8)}: ${i.label}`)}`))}catch(i){}})}function uo(i=!1){return y(this,null,function*(){return(mt||_t)&&(i=!1),dt.update(i?1:0).then(t=>t.audioOutputs.devices)})}var Km=new Set;function vg(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!!Km.has(r)}function Cg(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!!Km.has(r)}function ep(i,t){return y(this,null,function*(){let r=(yield Zt()).find(o=>o.deviceId===Vo);return!t&&(r==null?void 0:r.groupId)===i||(r==null?void 0:r.groupId)===i&&r.label===t})}function Ng(s){return y(this,arguments,function*({newDeviceId:i,oldDeviceId:t,oldGroupId:e,oldLabel:r,kind:o}){return i!==t?!1:o===M.AUDIO&&i===Vo?yield ep(e,r):!0})}var jd,tp=class extends Va{constructor(e){super();this.log=e;l(this,"volumeMeter");l(this,"volumeMeterAfter3A");l(this,"volumeDestination");l(this,"analyser",new Bd);this.volumeMeter=new $a({log:this.log}),this.volumeMeterAfter3A=new $a({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()}},qd=class i extends Kr{constructor(e){super(e,M.AUDIO);l(this,"_outputDeviceId");l(this,"_volume",1);l(this,"_destination",Ye("player").createMediaStreamDestination());l(this,"pipeline");l(this,"volumeMeterMode","worklet");this.mode=0,this.pipeline=new tp(this._log)}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=jd||new Audio;o.setAttribute("autoplay","autoplay"),o.srcObject=this.getMediaStream(),o.muted=this.muted,this.element=o,Le(e)&&(this.element.volume=Math.min(Math.max(e,0),1)),o===jd&&(jd=void 0),this.bindElementEvents()}play(e){return y(this,null,function*(){if(this.track)return this.pipeline.source.node||this.pipeline.replaceSource(this.track),this.element||this.initializeElement(e==null?void 0:e.volume),this._outputDeviceId&&(yield this.setSinkId(this._outputDeviceId)),this.volumeMeterMode==="worklet"?(this.pipeline.volumeMeter.init(),this.pipeline.volumeMeterAfter3A.init()):this.volumeMeterMode==="analyser"&&this.pipeline.analyser.setNode(Ye("player").createAnalyser()),Rg(),Gt(i.prototype,this,"play").call(this)})}stop(e=0){this.pipeline.destroy(),super.stop(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()}},zd=class extends qd{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]))))}setVolume(t){this._volume=t,this.element&&(this.element.volume=t)}},Jd=class extends qd{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(Ye("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"):mt||(this._log.info(`start set pipeline volume: ${e}`),this.pipeline.setVolume(e),this.element&&!this._sourceElement&&(this.pipeline.destination.setNode(this._destination),ct(this.element),this._sourceElement=this.element,this._sourceElement.muted=!0,this.element=null,this.play()))}stop(e=0){this.pipeline.destroy();let r=this._sourceElement||this.element;r&&mr&&(jd=r),this._sourceElement&&(this._sourceElement.srcObject=null,delete this._sourceElement),super.stop(e)}};var ts=class extends le{constructor({userId:e,sdkAppId:r,mediaType:o,room:s,PlayerClass:n=o===1?Jd:qt}){var a;super();l(this,"id",Ta());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 Ur?void 0:this.userId,sdkAppId:r,type:this.mediaType===2?"auxiliary":"main",isLocal:this instanceof Ur}),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(h=>h.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 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&&!O(r.muted)&&this.setPlayerMute(r.muted),r&&!O(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&&!O(r.muted)?this.setPlayerMute(r.muted):(!this.isRemote||this.kind===M.VIDEO)&&this.setPlayerMute(!0),r&&!O(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof qt&&(this.player.setObjectFit(this.objectFit),r&&!O(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||O(e)||e===this.mirror)return;this.mirror=e;let o=this.player;r&&(o=r);let s=this.manager;if(Xe(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&&(O(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(Bl(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){ct(e)}setInputMediaStreamTrack(e){var o;let r=this._inputTrack;if(e!==r)return this._inputTrack=e,this.trackSettings=(o=e.getSettings)==null?void 0:o.call(e),e.enabled=!this.muted,r&&this.uninstallTrackEvent(r),this.installTrackEvent(e),this.emit("input-media-track-changed",e||null,r||null),this.manager?this.manager.changeInput(this):this.setOutputMediaStreamTrack(e)}setOutputMediaStreamTrack(e){var o;let r=this._outputTrack;e!==r&&(this.isRemote?this.log.debug("setOutputMediaStreamTrack",e.label):this.log.info("setOutputMediaStreamTrack",(o=e.getSettings)==null?void 0:o.call(e).deviceId,e.label),this._outputTrack=e,this._inputTrack&&(this._outputTrack.contentHint=this._inputTrack.contentHint,this._outputTrack.enabled=this._inputTrack.enabled),this.updatePlayingState(!!e),this.emit("output-media-track-changed",e))}setMediaType(e){this.mediaType=e}updatePlayingState(e){if(this.isPlayCalled){if(e){if(this.player.setTrack(this.playerMediaTrack),this.player.isStopped){this.player.play().catch(r=>this.handleAutoPlayFailed(r)),this.log.info(`playing state updated, play ${this.kind}`);return}}else if(!this.player.isStopped){this.player.stop(Bl(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 Eg;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.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`)}};K([Ze([],le.INIT,{sync:!0})],ts.prototype,"close",1);var EI=Object.prototype.hasOwnProperty,{toString:zC}=Object.prototype;function TI(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(EI.call(i,t))return!1;return!0}}return!1}var Ha=TI;var _I=function(i){return y(this,null,function*(){let t=SI(i);$.info(`getUserMedia with constraints: ${JSON.stringify(t)}`);let e=[],r=[],o=["label","deviceId","groupId"];t.audio&&(e=yield Zt(),$.info(`microphones: ${lr(e.map(s=>pe(j({},s),{groupId:s.groupId.substring(0,8)})),{keysToInclude:o})}`)),t.video&&(r=yield Kt(),$.info(`cameras: ${lr(r,{keysToInclude:o})}`));try{let s=yield navigator.mediaDevices.getUserMedia(t);return xm&&s.getTracks().forEach(n=>{$.info(`${n.kind} capabilities: ${lr(n.getCapabilities(),{keysToInclude:Wc})}`)}),t.audio&&cn(),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})}})},II=oo({retryFunction:_I,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,(!_t||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&&Dg(r[0].microphoneId,!1),r[0].cameraId&&Dg(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 Dg(i,t){return y(this,null,function*(){let r=(t?yield Kt():yield Zt()).find(o=>o.deviceId===i);r&&We(r.getCapabilities)&&$.warn(lr(r.getCapabilities(),{keysToInclude:Wc}))})}function SI(i){return{audio:yI(i),video:AI(i)}}function yI(i){if(!i.audio)return!1;if(i.useTrueAsConstraint)return!0;let t={echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:i.sampleRate};return!Ha(i.microphoneId)&&(t.deviceId=i.useExactDeviceId?{exact:i.microphoneId}:i.microphoneId,i.useDeviceIdOnly)?t:(Le(i.channelCount)&&(t.channelCount=i.channelCount),Xe(i.echoCancellation)&&!i.echoCancellation&&(t.echoCancellation=!1),Xe(i.noiseSuppression)&&!i.noiseSuppression&&(t.noiseSuppression=!1),Xe(i.autoGainControl)&&!i.autoGainControl&&(t.autoGainControl=!1),Ha(t)?!0:t)}function AI(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&&!Ha(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&&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),Ha(e)?!0:e)}var wg=II;function lo(i){return xe((t,e)=>function(...r){return y(this,null,function*(){let o=yield t.apply(this,r);return yield i.call(this,...r),o})})}function Mg(i){return xe((t,e)=>function(...r){return y(this,null,function*(){try{return yield t.apply(this,r)}catch(o){i.call(this,o)}})})}function xe(i){return function(t,e,r){return r.value=i(r.value,e),r}}var Og=(()=>{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 bI=0,Xd=class{constructor(){l(this,"log",$.createLogger({id:`fq${++bI}`}));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()})}},xg=new WeakMap,kg=new WeakMap;function Qd(i=!1){return function(t,e,r){let o=r.value;return r.value=function(...s){let n=xg.get(this)||new Xd;return xg.set(this,n),n.push({fn:o,args:s,context:this},i)},r}}function Yd(i){return function(t,e,r){let o=r.value,s=n=>i(...n);return r.value=function(...n){let a=kg.get(this)||new Map,u=a.get(s(n))||new Xd;return a.set(s(n),u),kg.set(this,a),u.push({fn:o,args:n,context:this})},r}}function Zd(i,t){return xe((e,r)=>function(...o){let s=i;try{let n=e.apply(this,o),a=Te();return ro(n)?n.then(u=>(t?X.addSuccessEvent({key:s,cost:Te()-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 Fp={};li(Fp,{Events:()=>ut,Inspect:()=>hr,LastSink:()=>rs,Sink:()=>fe,Subscribe:()=>is,TimeoutError:()=>Wa,audit:()=>sS,bindCallback:()=>GI,bindNodeCallback:()=>jI,buffer:()=>xI,bufferCount:()=>OI,bufferTime:()=>bS,call:()=>Pg,catchError:()=>Pp,combineLatest:()=>Ug,concat:()=>CI,concatMap:()=>gS,concatMapTo:()=>ES,count:()=>JI,create:()=>ke,debounce:()=>nS,debounceTime:()=>aS,defer:()=>Vg,delay:()=>RS,deliver:()=>_e,dispose:()=>Kd,elementAt:()=>cS,empty:()=>za,every:()=>pS,exhaustMap:()=>IS,exhaustMapTo:()=>SS,filter:()=>zt,find:()=>dS,findIndex:()=>uS,first:()=>lS,fromAnimationFrame:()=>HI,fromArray:()=>LI,fromEvent:()=>Re,fromEventPattern:()=>UI,fromFetch:()=>VI,fromIterable:()=>FI,fromPromise:()=>Bg,fromReadableStream:()=>BI,fromReader:()=>$I,groupBy:()=>yS,identity:()=>RI,ignoreElements:()=>ZI,iif:()=>DI,inspect:()=>Lg,interval:()=>ap,last:()=>mS,map:()=>po,mapTo:()=>fS,max:()=>XI,merge:()=>Ga,mergeMap:()=>TS,mergeMapTo:()=>_S,min:()=>QI,never:()=>qI,nothing:()=>He,of:()=>PI,pairwise:()=>hS,pipe:()=>be,race:()=>np,range:()=>WI,reduce:()=>cp,retry:()=>NS,scan:()=>kp,share:()=>Oi,shareReplay:()=>NI,skip:()=>eS,skipUntil:()=>tS,skipWhile:()=>ou,startWith:()=>ja,subject:()=>Rt,subscribe:()=>Ue,sum:()=>YI,switchMap:()=>ho,switchMapTo:()=>xi,take:()=>Vr,takeLast:()=>KI,takeUntil:()=>qe,takeWhile:()=>Hg,tap:()=>Ja,throttle:()=>iS,throwError:()=>zI,timeInterval:()=>AS,timeout:()=>Vp,timer:()=>qa,toPromise:()=>vS,toReadableStream:()=>CS,withLatestFrom:()=>MI,zip:()=>wI});function He(...i){}var Pg=i=>i(),RI=i=>i;function Kd(){this.dispose()}var Lg=()=>typeof __FASTRX_DEVTOOLS__!="undefined",vI=1,hr=class extends Function{toString(){return`${this.name}(${this.args.length?[...this.args].join(", "):""})`}subscribe(t){let e=new rp(t,this,this.streamId++);return ut.subscribe({id:this.id,end:!1},{nodeId:e.sourceId,streamId:e.id}),this(e),e}},rs=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 hr?t.subscribe(this):t(this),this}get bindSubscribe(){return t=>this.subscribe(t)}doDefer(){this.defers.forEach(Pg),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 rs{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)}},is=class extends rs{constructor(t,e=He,r=He,o=He){if(super(),this._next=e,this._error=r,this._complete=o,this.then=He,t instanceof hr){let s={toString:()=>"subscribe",id:0,source:t};this.defer(()=>{ut.defer(s,0)}),ut.create(s),ut.pipe(s),this.sourceId=s.id,this.subscribe(t),ut.subscribe({id:s.id,end:!0}),e==He?this._next=n=>ut.next(s,0,n):this.next=n=>{ut.next(s,0,n),e(n)},o==He?this._complete=()=>ut.complete(s,0):this.complete=()=>{this.dispose(),ut.complete(s,0),o()},r==He?this._error=n=>ut.complete(s,0,n):this.error=n=>{this.dispose(),ut.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 be(i,...t){return t.reduce((e,r)=>r(e),i)}function ke(i,t,e){if(Lg()){let r=Object.defineProperties(Object.setPrototypeOf(i,hr.prototype),{streamId:{value:0,writable:!0,configurable:!0},name:{value:t,writable:!0,configurable:!0},args:{value:e,writable:!0,configurable:!0},id:{value:0,writable:!0,configurable:!0}});ut.create(r);for(let o=0;o<e.length;o++){let s=e[o];typeof s=="function"&&s instanceof hr&&ut.addSource(r,s)}return r}return i}function _e(i,t){return function(...e){return r=>{if(r instanceof hr){let o=ke(s=>{let n=new i(s,...e);n.sourceId=o.id,n.subscribe(r)},t,arguments);return o.source=r,ut.pipe(o),o}else return o=>r(new i(o,...e))}}}function mo(i,t){window.postMessage({source:"fastrx-devtools-backend",payload:{event:i,payload:t}})}var rp=class extends fe{constructor(t,e,r){super(t),this.source=e,this.id=r,this.sourceId=t.sourceId,this.defer(()=>{ut.defer(this.source,this.id)})}next(t){ut.next(this.source,this.id,t),this.sink.next(t)}complete(){ut.complete(this.source,this.id),this.sink.complete()}error(t){ut.complete(this.source,this.id,t),this.sink.error(t)}},ut={addSource(i,t){mo("addSource",{id:i.id,name:i.toString(),source:{id:t.id,name:t.toString()}})},next(i,t,e){mo("next",{id:i.id,streamId:t,data:e&&e.toString()})},subscribe({id:i,end:t},e){mo("subscribe",{id:i,end:t,sink:{nodeId:e&&e.nodeId,streamId:e&&e.streamId}})},complete(i,t,e){mo("complete",{id:i.id,streamId:t,err:e?e.toString():null})},defer(i,t){mo("defer",{id:i.id,streamId:t})},pipe(i){mo("pipe",{name:i.toString(),id:i.id,source:{id:i.source.id,name:i.source.toString()}})},update(i){mo("update",{id:i.id,name:i.toString()})},create(i){i.id||(i.id=vI++),mo("create",{name:i.toString(),id:i.id})}},Wa=class extends Error{constructor(t){super(`timeout after ${t}ms`),this.timeout=t}};var eu=class extends rs{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 Oi(){return i=>{let t=new eu(i);if(i instanceof hr){let e=ke(r=>{t.add(r)},"share",arguments);return t.sourceId=e.id,e.source=i,ut.pipe(e),e}return ke(t.add.bind(t),"share",arguments)}}function Ga(...i){return ke(t=>{let e=new fe(t),r=i.length;e.complete=()=>{--r===0&&t.complete()},i.forEach(e.bindSubscribe)},"merge",arguments)}function np(...i){return ke(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 CI(...i){return ke(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 NI(i){return t=>{let e=new eu(t),r=[];return e.next=function(o){r.push(o),r.length>i&&r.shift(),this.sinks.forEach(s=>s.next(o))},ke(o=>{o.defer(()=>e.remove(o)),r.forEach(s=>o.next(s)),e.add(o)},"shareReplay",arguments)}}function DI(i,t,e){return ke(r=>i()?t(r):e(r),"iif",arguments)}function Ug(...i){return ke(t=>{let e=i.length,r=e,o=e,s=new Array(e),n=()=>{--o===0&&t.complete()},a=(u,m)=>{let h=new fe(t);h.next=f=>{--r===0?(h.next=T=>{s[m]=T,t.next(s)},h.next(f)):s[m]=f},h.complete=n,h.subscribe(u)};i.forEach(a)},"combineLatest",arguments)}function wI(...i){return ke(t=>{let e=i.length,r=e,o=new Array(e),s=()=>{--r===0&&t.complete()},n=(a,u)=>{let m=new fe(t),h=[];o[u]=h,m.next=f=>{h.push(f),o.every(T=>T.length)&&t.next(o.map(T=>T.shift()))},m.complete=s,m.subscribe(a)};i.forEach(n)},"zip",arguments)}function ja(...i){return t=>ke((e,r=0,o=i.length)=>{for(;r<o&&!e.disposed;)e.next(i[r++]);e.disposed||e.subscribe(t)},"startWith",arguments)}var ip=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(Ug(...e))}next(t){this.buffer&&this.sink.next([t,...this.buffer])}},MI=_e(ip,"withLatestFrom"),op=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()}},OI=_e(op,"bufferCount"),sp=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()}},xI=_e(sp,"buffer");var kI=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(h){try{m(r.next(h))}catch(f){n(f)}}function u(h){try{m(r.throw(h))}catch(f){n(f)}}function m(h){h.done?s(h.value):o(h.value).then(a,u)}m((r=r.apply(i,t||[])).next())})};function Rt(i){let t=arguments,e=Oi()(ke(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 Vg(i){return ke(t=>t.subscribe(i()),"defer",arguments)}var Fg=i=>t=>{setTimeout(()=>i(t))},$g=i=>Fg(t=>{for(let e=0;!t.disposed&&e<i.length;e++)t.next(i[e]);t.complete()});function PI(...i){return ke($g(i),"of",arguments)}function LI(i){return ke($g(i),"fromArray",arguments)}function ap(i){return ke(t=>{let e=0,r=setInterval(()=>t.next(e++),i);return t.defer(()=>{clearInterval(r)}),"interval"},"interval",arguments)}function qa(i,t){return ke(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 tu(i,t){return e=>{let r=o=>e.next(o);e.defer(()=>t(r)),i(r)}}function UI(i,t){return ke(tu(i,t),"fromEventPattern",arguments)}function Re(i,t){if("on"in i&&"off"in i)return ke(tu(e=>i.on(t,e),e=>i.off(t,e)),"fromEvent",arguments);if("addListener"in i&&"removeListener"in i)return ke(tu(e=>i.addListener(t,e),e=>i.removeListener(t,e)),"fromEvent",arguments);if("addEventListener"in i)return ke(tu(e=>i.addEventListener(t,e),e=>i.removeEventListener(t,e)),"fromEvent",arguments);throw"target is not a EventDispachter"}function Bg(i){return ke(t=>{i.then(t.next.bind(t),t.error.bind(t))},"fromPromise",arguments)}function VI(i,t){return ke(Vg(()=>Bg(fetch(i,t))),"fromFetch",arguments)}function FI(i){return ke(Fg(t=>{try{for(let e of i){if(t.disposed)return;t.next(e)}t.complete()}catch(e){t.error(e)}}),"fromIterable",arguments)}function $I(i){let t=e=>kI(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 ke(e=>{t(e)},"fromReader",arguments)}function BI(i){return ke(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 HI(){return ke(i=>{let t=requestAnimationFrame(function e(r){i.disposed||(i.next(r),t=requestAnimationFrame(e))});i.defer(()=>cancelAnimationFrame(t))},"fromAnimationFrame",arguments)}function WI(i,t){return ke((e,r=i,o=t+i)=>{for(;r<o&&!e.disposed;)e.next(r++);return e.complete(),"range"},"range",arguments)}function GI(i,t,...e){return ke(r=>{let o=e.concat(s=>(r.next(s),r.complete()));i.apply(t,o)},"bindCallback",arguments)}function jI(i,t,...e){return ke(r=>{let o=e.concat((s,n)=>s?r.error(s):(r.next(n),r.complete()));i.apply(t,o)},"bindNodeCallback",arguments)}function qI(){return ke(()=>{},"never",arguments)}function zI(i){return ke(t=>t.error(i),"throwError",arguments)}function za(){return ke(i=>i.complete(),"empty",arguments)}var os=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)}},cp=_e(os,"reduce"),JI=i=>_e(os,"count")((t,e)=>i(e)?t+1:t,0),XI=()=>_e(os,"max")(Math.max),QI=()=>_e(os,"min")(Math.min),YI=()=>_e(os,"sum")((i,t)=>i+t,0);var dp=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=_e(dp,"filter"),up=class extends fe{next(t){}},ZI=_e(up,"ignoreElements"),lp=class extends fe{constructor(t,e){super(t),this.count=e}next(t){this.sink.next(t),--this.count===0&&this.complete()}},Vr=_e(lp,"take"),mp=class extends fe{constructor(t,e){super(t);let r=new fe(t);r.next=()=>t.complete(),r.complete=Kd,r.subscribe(e)}},qe=_e(mp,"takeUntil"),pp=class extends fe{constructor(t,e){super(t),this.f=e}next(t){this.f(t)?this.sink.next(t):this.complete()}},Hg=_e(pp,"takeWhile"),KI=i=>cp((t,e)=>(t.push(e),t.length>i&&t.shift(),t),[]),hp=class extends fe{constructor(t,e){super(t),this.count=e}next(t){--this.count===0&&(this.next=super.next)}},eS=_e(hp,"skip"),fp=class extends fe{constructor(t,e){super(t),t.next=He;let r=new fe(t);r.next=()=>{r.dispose(),t.resetNext()},r.complete=Kd,r.subscribe(e)}},tS=_e(fp,"skipUntil"),gp=class extends fe{constructor(t,e){super(t),this.f=e}next(t){this.f(t)||(this.next=super.next,this.next(t))}},ou=_e(gp,"skipWhile"),rS={leading:!0,trailing:!1},Ep=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)}},ru=class extends fe{constructor(t,e,r=rS){super(t),this.durationSelector=e,this.config=r,this._throttle=new Ep(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()}},iS=_e(ru,"throttle"),oS={leading:!1,trailing:!0},sS=i=>_e(ru,"audit")(i,oS),Tp=class extends fe{next(){this.complete()}complete(){this.dispose(),this.sink.next(this.last)}},iu=class extends fe{constructor(t,e){super(t),this.durationSelector=e,this._debounce=new Tp(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=_e(iu,"debounce"),aS=i=>_e(iu,"debounceTime")(t=>qa(i)),_p=class extends fe{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()}},cS=_e(_p,"elementAt"),dS=i=>t=>Vr(1)(ou(e=>!i(e))(t)),Ip=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.complete()):++this.i}},uS=_e(Ip,"findIndex"),Sp=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.complete())}complete(){if(this.defaultValue===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},lS=_e(Sp,"first"),yp=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()}},mS=_e(yp,"last"),Ap=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.complete())}complete(){if(this.result===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.result);super.complete()}},pS=_e(Ap,"every");var bp=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))}},kp=_e(bp,"scan"),Rp=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}},hS=_e(Rp,"pairwise"),su=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))}},po=_e(su,"map"),fS=i=>_e(su,"mapTo")(t=>i),mn=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()}},pn=class 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=this.tryComplete,r.complete=r.tryComplete,r.subscribe(this.makeSource(t,this.index++))}tryComplete(){this.currentSink.resetComplete(),this.dispose()}},nu=class extends mn{},au=class extends pn{next(t){this.subInner(t,nu),this.next=e=>{this.currentSink.dispose(),this.subInner(e,nu)}}},ho=_e(au,"switchMap");function lu(i){return(t,e)=>i(()=>t,e)}var xi=lu(_e(au,"switchMapTo")),vp=class extends mn{tryComplete(){this.dispose(),this.context.sources.length?this.context.subNext():(this.context.resetNext(),this.context.resetComplete())}},cu=class extends pn{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(),vp),this.disposed&&this.sources.length===0&&this.currentSink.resetComplete()}tryComplete(){this.sources.length===0&&this.currentSink.resetComplete(),this.dispose()}},gS=_e(cu,"concatMap"),ES=lu(_e(cu,"concatMapTo")),Cp=class extends mn{tryComplete(){this.context.inners.delete(this),super.dispose(),this.context.inners.size===0&&this.context.resetComplete()}},du=class extends pn{constructor(){super(...arguments),this.inners=new Set}next(t){this.subInner(t,Cp),this.inners.add(this.currentSink)}tryComplete(){this.inners.size===1?this.inners.forEach(t=>t.resetComplete()):this.dispose()}},TS=_e(du,"mergeMap"),_S=lu(_e(du,"mergeMapTo")),Np=class extends mn{dispose(){this.context.resetNext(),super.dispose()}},uu=class extends pn{next(t){this.next=He,this.subInner(t,Np)}},IS=_e(uu,"exhaustMap"),SS=lu(_e(uu,"exhaustMapTo")),Dp=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=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)}},yS=_e(Dp,"groupBy"),wp=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}},AS=_e(wp,"timeInterval"),Mp=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()}},bS=_e(Mp,"bufferTime"),Op=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)}},RS=_e(Op,"delay"),xp=class extends fe{constructor(t,e){super(t),this.selector=e}error(t){this.dispose(),this.selector(t)(this.sink)}},Pp=_e(xp,"catchError");var vS=()=>i=>new Promise((t,e)=>{let r;new is(i,o=>r=o,e,()=>t(r))}),CS=()=>i=>{let t;return new ReadableStream({start(e){t=new is(i,e.enqueue.bind(e),e.error.bind(e),e.close.bind(e))},cancel(){t.dispose()}})},Ue=(i=He,t=He,e=He)=>r=>new is(r,i,t,e),Lp=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)}))}},Ja=_e(Lp,"tap"),Up=class extends fe{constructor(t,e){super(t),this.timeout=e,this.id=setTimeout(()=>this.error(new Wa(this.timeout)),this.timeout)}next(t){super.next(t),clearTimeout(this.id),this.next=super.next}dispose(){clearTimeout(this.id),super.dispose()}},Vp=_e(Up,"timeout"),NS=(i=1/0)=>t=>{if(t instanceof hr){let e=ke(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,ut.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 hn=(e=>(e[e.AUTO_SWITCH_NEW_DEVICE=0]="AUTO_SWITCH_NEW_DEVICE",e[e.WAIT_CURRENT_DEVICE=1]="WAIT_CURRENT_DEVICE",e))(hn||{}),ss=class ss extends ts{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){ct(e)}setStateToReady(){}capture(e){return y(this,null,function*(){var r;try{let o=Te();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 wg(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:Te()-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=Ho(((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():be(Re(e,"local-publish-flag-changed"),zt(()=>this.hasFlag),qe(Ga(Re(this,le.INIT),Re(this,"ready"))),Ue(o)),!((((u=(a=this.room)==null?void 0:a.networkQuality)==null?void 0:u.uplinkNetworkQuality)||0)>3)&&(this._encodeCheckTimeoutId=setTimeout(()=>{var h,f,T,A,C,N;if(!((((f=(h=this.room)==null?void 0:h.networkQuality)==null?void 0:f.uplinkNetworkQuality)||0)>3)&&this.isPublished&&this.isMediaTrackActive){let w=this.kind===M.AUDIO,x=this.stat.bytesSent>0;if(X[x?"addSuccessEvent":"addFailedEvent"]({key:w?503700:513702}),!w){let te=((A=(T=this.room)==null?void 0:T.videoCodec)==null?void 0:A.toUpperCase())||"H264",ue={H264:513704,H265:513705,VP8:513706}[te];ue&&X[x?"addSuccessEvent":"addFailedEvent"]({key:ue})}x||(X.addEnum({key:w?503701:513703,value:zo()}),je.uploadEvent({log:`stat-encode-failed-${this.kind}-${ga()||Jo()}`,userId:this.userId}),this.log.warn(w?"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: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&&sn){let{deviceId:e,groupId:r}=this.sourceTrack.getSettings(),{label:o}=this.sourceTrack;(yield Ng({newDeviceId:e,oldDeviceId:this.deviceId,oldGroupId:this.groupId,oldLabel:this.label,kind:this.kind}))||(this.deviceId=e,this.label=o,r&&(this.groupId=r),un().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&&!Cg(this.sourceTrack)||this.kind===M.VIDEO&&!vg(this.sourceTrack)||this._isRecapturing||e&&Mr&&_t)}onTrackMuted(){if(super.onTrackMuted(),Og(),!!this.isNeedToRecapture(!0)){if(Date.now()-this._lastRecaptureTime<Os){setTimeout(()=>this.onTrackMuted(),Os);return}this._onMuteTimeoutId=setTimeout(()=>y(this,null,function*(){var e;if((e=this.sourceTrack)!=null&&e.muted){if((mt||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(Gt(ss.prototype,this,"onTrackEnded").call(this),!!this.isNeedToRecapture()&&this.recaptureMode===0){if(Date.now()-this._lastRecaptureTime<Os){setTimeout(()=>this.onTrackEnded(),Os);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=(Xa.get(r)||0)+1;if(Xa.set(r,o),o>=3&&this.enableAutoSwitchWhenRecapturing){let s=e?(yield Kt()).find(n=>!Xa.has(n.deviceId)):(yield Zt()).find(n=>!Xa.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([Ze(le.INIT,"ready",{ignoreError:!0,sync:!0})],ss.prototype,"setStateToReady",1),K([Qd()],ss.prototype,"capture",1),K([Ze("ready","publish",{ignoreError:!0,success(){this.room.localTracks.add(this),V.emit(F.LOCAL_TRACK_PUBLISHED,{track:this}),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})}}),Zd(521714,!1)],ss.prototype,"publish",1),K([xe(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})],ss.prototype,"unpublish",1);var Ur=ss,Xa=new Map;V.on(F.SWITCH_DEVICE_SUCCESS,i=>{i.track.deviceId&&Xa.delete(i.track.deviceId)});var ei=class i extends Ur{constructor(e){super(1,zd);l(this,"mediaType",1);l(this,"volume",0);l(this,"profile",{echoCancellation:!0,autoGainControl:!0,noiseSuppression:!0,sampleRate:48e3,channelCount:1,bitrate:40});l(this,"playerMuted",!0);l(this,"pipeline");l(this,"earMonitorGainNode",new gt);l(this,"_output",new gt);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 dn(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 Gd.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 Gt(i.prototype,this,"setInputMediaStreamTrack").call(this,e),this.updatePlayingState(!!e)})}capture({deviceId:e,customSource:r,useExactDeviceId:o=!0,retryWhenExactFailed:s=!0}){return super.capture({video:!1,audio:!0,microphoneId:e,echoCancellation:this.profile.echoCancellation,autoGainControl:this.profile.autoGainControl,noiseSuppression:this.profile.noiseSuppression,sampleRate:this.profile.sampleRate,channelCount:this.profile.channelCount,useExactDeviceId:o,retryWhenExactFailed:s,customSource:r})}switchDevice(e){return y(this,null,function*(){if(this.mediaTrack){if(this.deviceId===e&&!this.isUseCustomSource)if(e===Vo){if(yield ep(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(){dt&&!dt.listeners("audioInputRemoved").includes(this.handleMicrophoneRemoved)&&dt.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: ${hn[this.recaptureMode]}. Current microphone is lost: ${JSON.stringify(e)}`),this.recaptureMode===0){st(this.userId,{eventId:2003,param1:6,streamType:1});let o=yield Zt();o[0]?this.recapture(o[0].deviceId):r=!0}r&&dt.on("audioInputAdded",this.handleMicrophoneAdded,this)}})}handleMicrophoneAdded(e){this.recaptureMode===1&&e.deviceId!==this.deviceId||(dt.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;!O(e)&&e!==this.profile.echoCancellation&&(this.profile.echoCancellation=e,a.echoCancellation=e,u=!0),!O(r)&&r!==this.profile.noiseSuppression&&(this.profile.noiseSuppression=r,a.noiseSuppression=r,u=!0),!O(o)&&o!==this.profile.autoGainControl&&(this.profile.autoGainControl=o,a.autoGainControl=o,u=!0),u&&($t||_t?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),mt&&this.player.setMuted(!0),this.earMonitorGainNode.node||(this.earMonitorGainNode.setNode(Ye().createGain()),this._output.setNode(Ye().destination)),this.earMonitorGainNode.node.gain.value=e}enableTrackANS(e){return this.update3A({noiseSuppression:e})}enableTrackAEC(e){if(this.sourceTrack&&!(_t||mt))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=Fa(e),s=new gt,n=Ye().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,s){this.pipeline.silentNode.setNode(o),this.pipeline.mixNode.setNode(r),this.pipeline.aec.setNode(e),this.enableTrackAEC(!1)}removeDenoiser(e){if(this.pipeline.denoiser.node===e)return this.pipeline.denoiser.deleteNode(),this.enableTrackANS(!0)}removeAudioProcessor(e,r,o,s){this.pipeline.aec.node===e&&(this.pipeline.aec.deleteNode(),this.pipeline.silentNode.deleteNode(),this.pipeline.mixNode.deleteNode(),this.enableTrackAEC(!0))}close(){this.mixedAudioReferenceMap.forEach(([e,r])=>{e.deleteNode(),r.deleteNode()}),this.mixedAudioReferenceMap.clear(),this.pipeline.remove(),this.earMonitorGainNode.deleteNode(),this._output.deleteNode(),dt.off("audioInputAdded",this.handleMicrophoneAdded,this),dt.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 Gt(i.prototype,this,"recapture").call(this,e)}catch(r){let o=(yield Zt()).find(s=>s.deviceId!==e);if(o)yield Gt(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}):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 ${Ym/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 ns=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 mu=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 ns(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),h=new DataView(t.data),f=0;for(let T=0;T<n.length;T++)for(let A=0;A<n[T].dataView.byteLength;A++)m.setInt8(f++,n[T].dataView.getInt8(A));for(let T=0;T<t.data.byteLength;T++)m.setInt8(f++,h.getInt8(T));return t.data=u,n.length}return 0}};var as=class as extends Ur{constructor(e,r=4){super(r,qt);l(this,"profile",j({},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});l(this,"small");l(this,"isNeedToSetBandwidth");l(this,"muteImage");l(this,"manager");l(this,"_seiCodec",new mu);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(pe(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(!(!sn||!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,Gt(as.prototype,this,"setMute").call(this,!1)}else this.muteImage&&(yield(s=this.manager)==null?void 0:s.deleteWatermark("mute"),this.muteImage=void 0),Gt(as.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(pe(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&&(Mt===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(),h=u*m;if(n&&h&&o&&h===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 sn&&r&&Object.assign(e,r.getSettings()),e}get scaleResolutionDownBy(){return this._scaleResolutionDownBy?this._scaleResolutionDownBy:Kc(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((ma||Qs)&&e==="environment"&&km){let s=(yield Kt(!0)).map(a=>{var u;return pe(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 f,T,A,C;let{capabilities:u}=a,m=(f=u.width)!=null&&f.max&&((T=u.height)!=null&&T.max)?u.width.max*u.height.max:0,h=(A=n.capabilities.width)!=null&&A.max&&((C=n.capabilities.height)!=null&&C.max)?n.capabilities.width.max*n.capabilities.height.max:0;m>h&&(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<=160*120&&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&&em&&(s.width=o?1280:720,s.height=o?720:1280,this.log.warn("reset to 1280 * 720 on iOS 13~14")),Yl(Or,"14.3")&&Zl(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&&(Xr||$t)&&!rm()&&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(){dt&&!dt.listeners("videoInputRemoved").includes(this.handleCameraRemoved)&&dt.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: ${hn[this.recaptureMode]}. Current camera is lost: ${JSON.stringify(e)}`),this.recaptureMode===0){st(this.userId,{eventId:2003,param1:7,streamType:2});let o=yield Kt();o[0]?this.recapture(o[0].deviceId):r=!0}r&&dt.on("videoInputAdded",this.handleCameraAdded,this)}})}handleCameraAdded(e){return y(this,null,function*(){this.recaptureMode===1&&e.deviceId!==this.deviceId||(dt.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 O(this.mirror)&&!this.isScreen&&this.setMirror("view"),super.play(e,r)}close(){dt.off("videoInputAdded",this.handleCameraAdded,this),dt.off("videoInputRemoved",this.handleCameraRemoved,this),super.close()}recapture(e){return y(this,null,function*(){try{yield Gt(as.prototype,this,"recapture").call(this,e)}catch(r){let o=(yield Kt()).find(s=>s.deviceId!==e);if(o)yield Gt(as.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||O(e)||e!==this.rotation&&(this.rotation=e,this.manager.rotation=e))}};K([lo(function(e){this.setContentHint(e.contentHint||"motion")})],as.prototype,"capture",1);var ar=as;var Hp={};li(Hp,{REPORT_TYPE:()=>Bs,buildSSOPackage:()=>Ti,bytes2ms:()=>Xh,calculateScaleResolutionDownNumber:()=>Kc,convertObjectNumberToInt:()=>ra,copyProperties:()=>Jh,deepClone:()=>Fo,deepCloneBasic:()=>zc,deepMerge:()=>Nr,delay:()=>ia,fibonacci:()=>$o,formatedTime:()=>Xc,getConstructorName:()=>Ls,getContainerFromElement:()=>sf,getEnv:()=>jh,getInternalVersion:()=>rf,getLoggerUrl:()=>Ei,getMediaStreamTrackInfo:()=>Zc,getMuteStateFromFlag:()=>Ho,getNetworkType:()=>Zn,getNumNetworkType:()=>Jc,getReconnectionTimeout:()=>Yh,getStringByteLength:()=>nf,getTurnServer:()=>of,getUint32Version:()=>Qc,getValueType:()=>at,getViewListFromView:()=>Fs,glog:()=>Kn,ipv4ToUint32:()=>Vs,isArray:()=>ot,isAudioWorkletSupported:()=>ef,isBoolean:()=>Xe,isConstructor:()=>Bo,isEmpty:()=>Us,isFunction:()=>We,isLangChinese:()=>Cr,isMediaStreamTrack:()=>Zh,isNumber:()=>Le,isObject:()=>ir,isOverseaSdkAppId:()=>gi,isPlainObject:()=>Ft,isPortrait:()=>Vl,isPromise:()=>ro,isRemoteTrack:()=>Kh,isRotate90Or270:()=>or,isSetSinkIdSupported:()=>tf,isString:()=>De,isUndefined:()=>O,loadImage:()=>$s,loadVideo:()=>af,ms2bytes:()=>Qh,ms2samples:()=>Ul,normalizeUrl:()=>Wo,performanceNow:()=>Te,promiseAny:()=>ea,samples2ms:()=>Ll,setNetworkType:()=>zh,stringify:()=>lr,stringifyIncludeValue:()=>ta,throttlePromise:()=>Yc});var wS=[-1,-1,1,-1,-1,1,1,1],MS=[0,0,1,0,0,1,1,1];var Ht=class 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"&&Mt!==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(MS),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 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 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,h){let f=!O(a)&&!O(u)&&!O(m)&&!O(h);return this.ctx2d&&e?(e instanceof ImageData?f?this.ctx2d.putImageData(e,r,o,a,u,m,h):this.ctx2d.putImageData(e,r,o):f?this.ctx2d.drawImage(e,a,u,m,h,r,o,s,n):this.ctx2d.drawImage(e,r,o,s,n),this.emit("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 f;let{totalFrames:e,x:r,y:o,width:s,height:n,name:a,cost:u}=this,m=Date.now(),h=(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:h,name:a,cost:u},j({parent:(f=this.input)==null?void 0:f.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}};K([Ze(le.INIT,"connected",{sync:!0})],Ht.prototype,"connect",1),K([Ze("connected",le.INIT,{ignoreError:!0,sync:!0})],Ht.prototype,"disconnect",1),K([Ze([],"closed",{sync:!0})],Ht.prototype,"close",1);var Gg=be(ap(250),po(()=>performance.now()),Oi()),jg=i=>t=>{let e=0,r=performance.now();be(Gg,po(o=>(o-r)/i>>0),zt(o=>o!=e?(e=o,!0):!1))(t)},pu=i=>t=>{let e=performance.now();be(Gg,ou(r=>r-e<i),Vr(1))(t)};var xS=[0,1,1,1,0,0,1,0],cs=class extends Ht{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(xS)}start(e){this.log.info(`${this.name} start render ${e} fps`),ft.clearTask(this._intervalId),this._intervalId=ft.run("intervalInWorker",()=>{if(e!==this.context.frameRate&&(ft.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("render",this.context._canvas),!0):!1}addInput(e,...r){super.addInput(e,...r),this.start(this.context.frameRate)}update(e=0){this._intervalId&&(ft.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),ft.clearTask(this._intervalId)}resize(e,r){super.resize(e,r),this.context.setSize(e,r)}close(){super.close(),ft.clearTask(this._intervalId),document.removeEventListener("visibilitychange",this.checkVisibilityChange)}},fn=class extends cs{constructor(e,r){super(e,r);l(this,"_videoTrack");l(this,"_muteOb");l(this,"_closedOb",Re(this,"closed"));l(this,"_subscription");l(this,"_canvasContainer");Number(Ii)<17&&(this._canvasContainer=document.createElement("div"),this._canvasContainer.style.display="none"),[this._videoTrack]=e._canvas.captureStream().getVideoTracks(),this._muteOb=Re(this._videoTrack,"mute"),be(Re(this._videoTrack,"ended"),qe(this._closedOb),Ue(()=>{this.context.destroy(new de({code:q.VIDEO_MANAGER_ERROR,extraCode:8,message:"video track ended"}))}))}enableCheckMute(){this._subscription=be(this._muteOb,qe(this._closedOb),xi(pu(5e3)),zt(()=>{var e;return!!((e=this._videoTrack)!=null&&e.muted)&&!document.hidden}),Ue(()=>{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()}},hu=class extends fn{render(t){var e;return!!((e=this.input)!=null&&e.requestFrame(t))}};var fu=class extends fn{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 Qa=class extends Ht{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,Mt===16&&(this._canvasRendered=Rt(),be(this._canvasRendered,ja(this._image),ho(o=>o instanceof HTMLCanvasElement?Re(o,"rendered"):za()),qe(Re(this,"closed")),Ue(()=>{this.update()})))}onFirstFrame(){this.waitingFirstFrame=!1}tryVideoFrameCallback(){if(!this.shouldUpdate)return;let e=this.image;this.videoCallbackId&&e.cancelVideoFrameCallback(this.videoCallbackId),Di()&&!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)}},Ya=class extends Qa{constructor(e,r,o){super(e,o);this._player=r;this.name="videoPlayerSource",be(Re(this._player,Qe.PLAYER_STATE_CHANGED),qe(Re(this,"closed")),zt(({state:s})=>s==="PLAYING"),Ue(()=>{this.tryVideoFrameCallback()}))}get image(){return this._player.element}},fr=class extends Ya{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()}},gu=class extends Ht{constructor(e,r,o){super(e,pe(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
|
|
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 oy=`
|
|
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
|
+
`,sy=`
|
|
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 ds=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 fn(this,e)}createVideoImageSource(e,r){return new Qa(this,r?Object.assign(r,{logger:this.log,image:e}):{logger:this.log,image:e})}createVideoPlayerSource(e,r){return new Ya(this,e,r?Object.assign(r,{logger:this.log}):{logger:this.log})}createTextSource(e,r){return new gu(this,e,r?Object.assign(r,{logger:this.log}):{logger:this.log})}get available(){return this.state==="created"}disconnect(){this.emit("disconnect")}};l(ds,"_ids",0);var US={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},gn=class gn extends ds{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}_${ds._ids++}`),this.ctx=this._canvas.getContext("webgl2",US),!this.ctx)throw new de({code:q.VIDEO_MANAGER_ERROR,extraCode:2,message:"webgl2 not supported"});this.defaultVShader=this.createShader(this.ctx.VERTEX_SHADER,PS),this.defaultFShader=this.createShader(this.ctx.FRAGMENT_SHADER,LS),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(gn,"UNAVAILABLE","unavailable"),K([Ze(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})}})],gn.prototype,"create",1),K([Ze("created",le.INIT,{ignoreError:!0,sync:!0,success(e){e&&this.emit(gn.UNAVAILABLE,e),this.removeAllListeners()}})],gn.prototype,"destroy",1);var St=gn,Nt=class extends ds{constructor(){super(...arguments);l(this,"ctx")}create(e){if(this.hasAlpha=e.alpha,this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${ds._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([Ze(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([Ze("created",le.INIT,{ignoreError:!0,sync:!0})],Nt.prototype,"destroy",1);function VS(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 Gp=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}},En=class extends Ht{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 Gp(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:h,rotation:f,hidden:T}=r;if(!O(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];O(s)||(A.layout.x=s),O(n)||(A.layout.y=n),O(a)||(A.layout.width=a),O(u)||(A.layout.height=u),O(f)||(A.layout.rotation=f),O(T)||(A.layout.hidden=T),h&&(A.layout.fillMode=h),!O(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=VS(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},j({parent:this.inputs.filter(h=>h).map(h=>h.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 FS=[1,0,0,0,1,1,0,1],gr=class extends Ht{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(FS)}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 us=class extends Ur{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("render",o=>{this.emit("render",o)}),this.mixNode=new En(this.videoContext,this.log),this.mixNode.matchInputSize=!1}listenDeviceChange(){throw new Error("Method not implemented.")}enablePrintDetail(e=2e3){this._checkId=ft.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,bt(this,dt).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;Mt===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(Mt===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&&(O(o)||(u.content=o),O(s)||(u.font=s),O(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&&(O(o)||(n.mirror=o),O(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(),ft.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(),ct(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 Eu=Ta();if(typeof navigator!="undefined"&&navigator.mediaDevices&&"setCaptureHandleConfig"in navigator.mediaDevices)try{navigator.mediaDevices.setCaptureHandleConfig({handle:Eu,exposeOrigin:!0,permittedOrigins:["*"]})}catch(i){}var $S=function(i){return y(this,null,function*(){let t=null,e=WS(i);$.info(`getDisplayMedia with constraints: ${JSON.stringify(e)}`);let r=yield navigator.mediaDevices.getDisplayMedia(e);i.systemAudio&&r.getAudioTracks().length===0&&(Ys&&Qr<74||_t||$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 BS(o,i.captureElement))}if(i.audio){let s=HS(i);$.info(`getUserMedia with constraints: ${JSON.stringify(s)}`),t=yield navigator.mediaDevices.getUserMedia(s),r.addTrack(t.getAudioTracks()[0])}return r})};function BS(i,t){return y(this,null,function*(){var e;if("CropTarget"in window&&"fromElement"in CropTarget&&We(i.cropTo))try{if(!(((e=i.getCaptureHandle())==null?void 0:e.handle)===Eu))return;let o=yield CropTarget.fromElement(t);yield i.cropTo(o)}catch(r){$.warn(`cropTo target failed ${r}`)}})}function HS(i){let t={echoCancellation:i.echoCancellation,autoGainControl:i.autoGainControl,noiseSuppression:i.noiseSuppression,sampleRate:i.sampleRate,channelCount:i.channelCount};return O(i.microphoneId)||(t.deviceId=i.microphoneId),{audio:t,video:!1}}function WS(i){let t={preferCurrentTab:i.preferDisplaySurface==="current-tab"||!!i.captureElement,systemAudio:"include",selfBrowserSurface:"include",surfaceSwitching:"include"},e={width:_t?{max:i.width}:{ideal:i.width,max:i.width},height:_t?{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 qg=$S;var ti=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 Eu===((r=(e=this.mediaTrack)==null?void 0:e.getCaptureHandle())==null?void 0:r.handle)}catch(o){return}}capture(h){return y(this,arguments,function*({systemAudio:e=!1,autoGainControl:r,echoCancellation:o,noiseSuppression:s,audioTrack:n,videoTrack:a,captureElement:u,preferDisplaySurface:m}){try{let f;return a||n?(f=new MediaStream,a&&f.addTrack(a),n&&f.addTrack(n)):(f=yield qg({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=f.getVideoTracks()[0]),yield this.setInputMediaStreamTrack(f.getVideoTracks()[0]),f}catch(f){throw this.log.error(`getDisplayMedia error observed ${f}`),f instanceof de?f:new de({code:q.INITIALIZE_FAILED,name:f.name,message:f.message})}})}switchDevice(e){return y(this,null,function*(){throw new Error("Method not implemented.")})}};K([lo(function(e){this.setContentHint(e.contentHint||"detail")})],ti.prototype,"capture",1);var ls=class extends ei{constructor(t){super(t),this._log.id=`s-${this._log.id}`}addAudioProcessor(t,e,r,o){this.pipeline.silentNode.setNode(r),this.pipeline.mixNode.setNode(e),this.pipeline.aec.setNode(o),this.enableTrackAEC(!1)}removeAudioProcessor(t,e,r,o){this.pipeline.aec.node===o&&(this.pipeline.aec.deleteNode(),this.pipeline.silentNode.deleteNode(),this.pipeline.mixNode.deleteNode(),this.enableTrackAEC(!0))}};var GS='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}});',jp;function Za(i,t=48e3,e=1,r){return y(this,null,function*(){let o=Ye("dump");jp||(jp=Mi(o,URL.createObjectURL(new Blob([GS],{type:"application/javascript"})))),yield jp;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 Tu=class extends Hd{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 h,f;if(!this._localAudioTrack)return;let r=[],o=[];(h=this._localAudioPipline)!=null&&h.source.node&&(r.push(this._localAudioPipline.source.node),o.push("mic")),(f=this._localAudioPipline)!=null&&f.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=Za(r).then(T=>T.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 x,te,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),h=new Float32Array(u),f,T,A=0,C=new AbortController,N=r===""?(x=this._localAudioTrack)==null?void 0:x.mediaTrack:(ue=(te=this.room)==null?void 0:te.remotePublishedUserMap.get(r))==null?void 0:ue.remoteAudioTrack.mediaTrack;if(!N){this.log.info(`getPCM failed: ${r||"local"} has no audio track`);return}let w=Ye().createMediaStreamSource(new MediaStream([N]));return Za([w],s,n,a).then(ye=>ye.pipeTo(new WritableStream({write(Ie){Ie[0][0]&&(A+Ie[0][0].length>u?(m.set(Ie[0][0].subarray(0,u-A),A),f=Ie[0][0].subarray(u-A),Ie[0][1]&&(h.set(Ie[0][1].subarray(0,u-A),A),T=Ie[0][1].subarray(u-A)),A+=u-A):(f&&(m.set(f,A),A+=f.length,f=void 0),T&&(h.set(T,A),T=void 0),m.set(Ie[0][0],A),Ie[0][1]&&h.set(Ie[0][1],A),A+=Ie[0][0].length),A>=u&&(A=0,e({userId:r,sampleRate:s,channelCount:n,data:n===1?m:[m,h]}),m=new Float32Array(u),h=new Float32Array(u)))}}),C).catch(Ie=>this.log.warn(`stop getPCM reason:${Ie}`))),C}get hasScreenAudioTrack(){return!O(this._localScreenAudioTrack)}get hasAudioTrack(){return!O(this._localAudioTrack)}changeInput(e){if(e instanceof ls)return this._localScreenAudioTrack=e,this.isScreenAudioNeedAudioProcess&&this.audioProcessor&&(e.addAudioProcessor(...this.audioProcessor),this.audioReferenceMap.forEach((r,o)=>{e.mixAudioReference(r,o)})),e.pipeline.connect(),this.mixOnChange();if(e instanceof ei)return this._localAudioTrack=e,this.denoiser&&e.addDenoiser(this.denoiser),this.isLocalAudioNeedAudioProcess&&this.audioProcessor&&(e.addAudioProcessor(...this.audioProcessor),this.audioReferenceMap.forEach((r,o)=>{e.mixAudioReference(r,o)})),e.pipeline.connect(),this.mixOnChange();if(e instanceof ki)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 ls?delete this._localScreenAudioTrack:e instanceof ei?delete this._localAudioTrack:e instanceof ki}addDenoiser(e){var r;this.denoiser=e,(r=this._localAudioTrack)==null||r.addDenoiser(e)}addAudioProcessor(e,r,o,s){var n;this.audioProcessor=[e,r,o,s],this.isLocalAudioNeedAudioProcess&&this._localAudioTrack&&(this._localAudioTrack.addAudioProcessor(...this.audioProcessor),this.audioReferenceMap.forEach((a,u)=>{var m;(m=this._localAudioTrack)==null||m.mixAudioReference(a,u)})),this.isScreenAudioNeedAudioProcess&&this._localScreenAudioTrack&&((n=this._localScreenAudioTrack)==null||n.addAudioProcessor(...this.audioProcessor),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,o,s){var n;delete this.audioProcessor,(n=this._localAudioTrack)==null||n.removeAudioProcessor(e,r,o,s)}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||O(s))return;this.setAudioReferenceVolume(o,s)}}};function zg(i=30,t=2){return xe((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`});$.warn(u),t===2?n(u):t===1&&s()},i*1e3);e.apply(this,o).then(s,n).finally(()=>{clearTimeout(a)})})})}var ri=class ri extends ts{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(Re(this,ri.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"),be(Ga(Re(this,le.STATECHANGED),Re(this.remotePublishState,le.STATECHANGED)),po(()=>this.isRemotePublished&&(this.isSubscribed||this.isSubscribing)),Ue(u=>{this.availableState.state!==(u?le.ON:le.OFF)&&(this.availableState.state=u?le.ON:le.OFF),this.updatePlayingState(u)}));let s=be(Re(this.player,Qe.ERROR),zt(u=>u.code===MediaError.MEDIA_ERR_DECODE)),n=be(qa(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=be(np(s,n),qe(Re(this,le.INIT)));be(this._triggerCheckDecodeSubject,zt(()=>!this.ignoreDecodeError),xi(a),Ue(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===ri.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:on[`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:zo()}),je.uploadEvent({log:`stat-decode-failed-${this.kind}-${ga()||Jo()}`,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}onTrackMuted(){this.isNeedPlay&&super.onTrackMuted()}onTrackUnmuted(){this.isNeedPlay&&super.onTrackUnmuted()}onTrackEnded(){this.isNeedPlay&&super.onTrackEnded()}};l(ri,"STATE_SUBSCRIBE","subscribe"),K([zg(5,1)],ri.prototype,"waitHasMediaTrack",1),K([Ze(le.INIT,ri.STATE_SUBSCRIBE,{success(){this.log.info("subscribed"),V.emit(F.REMOTE_TRACK_SUBSCRIBED,{track:this})},ignoreError:!0}),Zd(521716,!1)],ri.prototype,"subscribe",1),K([Ze(ri.STATE_SUBSCRIBE,le.INIT,{sync:!0,success(){this.log.info("unsubscribed"),V.emit(F.REMOTE_TRACK_UNSUBSCRIBED,{track:this})}})],ri.prototype,"unsubscribe",1);var Tn=ri;var ki=class extends Tn{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 Gd.isRunning?this.player.pipeline.volumeMeter.getVolumeDb():Math.floor(Math.max(10*Math.log10(this.volume)+100,0))}decodeFrame(e){if(!this.manager)return e;let r=e;for(let o of this.manager.decodePipeline)if(o&&(r=o({frame:r,track:this}),!r))return;return r}getAudioLevel(){let e=this.volume||super.getAudioLevel();return e>1?1:e}get isRemotePublished(){return this.user.muteState.audioAvailable}};function qS(i){return[15,30,45,60].reduce((e,r)=>Math.abs(r-i)<Math.abs(e-i)?r:e)}var fo=class extends Tn{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(Xe(r==null?void 0:r.canvasRender)?r.canvasRender:Mt===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 cs(e,{name:"remotePlayer",logger:this.log});this.source=e.createVideoPlayerSource(this.player),this.source.connect(r),this.player.setCanvas(e._canvas),Di()||(this.updateCanvasPlayerFPS=this.updateCanvasPlayerFPS.bind(this,e),this.room.on("heartbeat-report",this.updateCanvasPlayerFPS,this))}updateCanvasPlayerFPS(e){let r=this.decodeFPS,o=qS(r);if(!Le(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)}},_u=class extends fo{constructor(e,r){super(e,r,2);l(this,"mediaType",2);l(this,"objectFit","contain")}get isRemotePublished(){return this.user.muteState.hasAuxiliary}};var _n=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=pe(j({},t),{timestamp:Wn()});_n.has(i)?_n.get(i).push(e):_n.set(i,[e])}function Jg(i){if(_n.has(i)){let t=_n.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 _n.delete(i),t}return[]}function Xg(...i){return xe((t,e)=>function(...r){return zS.call(this,i,r,e,this._name),t.apply(this,r)})}function zS(i,t,e,r){try{if(ot(i))for(let o=0;o<i.length;o++)Iu.call(this,{rule:i[o],value:t[o],key:i[o].name,fnName:e,className:r});else Iu.call(this,{rule:i,value:t[0],key:i.name,fnName:e,className:r})}catch(o){throw $.error(o),o}}function Iu({rule:i,value:t,key:e,fnName:r,className:o}){if(O(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(O(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),We(i.type[u])&&t instanceof i.type[u]&&(a=!0),De(i.type[u])&&at(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=>Bo(u)?Ls(u):De(u)?u:at(u))},fnName:r,value:t},link:{className:o,fnName:r}})})}else if(!O(i.type)&&at(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=Le(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&&Le(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(!O(i.min)&&Le(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(!O(i.max)&&Le(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(We(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)&&ir(t)&&Object.keys(s).forEach(a=>{Iu.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)=>{Iu.call(this,{rule:n,value:a,key:`${e}[${u}]`,fnName:r,className:o})}),We(i.validate)&&i.validate.call(this,t,e,r,o,this)}var JS=mi(yi(),1);var XS=Object.create,Yp=Object.defineProperty,Zg=Object.getOwnPropertyDescriptor,Kg=Object.getOwnPropertyNames,QS=Object.getPrototypeOf,YS=Object.prototype.hasOwnProperty,ZS=(i,t)=>function(){return t||(0,i[Kg(i)[0]])((t={exports:{}}).exports,t),t.exports},KS=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Kg(t))YS.call(i,o)||o===e||Yp(i,o,{get:()=>t[o],enumerable:!(r=Zg(t,o))||r.enumerable});return i},ey=(i,t,e)=>(e=i!=null?XS(QS(i)):{},KS(!t&&i&&i.__esModule?e:Yp(e,"default",{value:i,enumerable:!0}),i)),Pi=(i,t,e,r)=>{for(var o,s=r>1?void 0:r?Zg(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&&Yp(t,e,s),s},ty=ZS({"../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,h,f){this.fn=m,this.context=h,this.once=f||!1}function n(m,h,f,T,A){if(typeof f!="function")throw new TypeError("The listener must be a function");var C=new s(f,T||m,A),N=r?r+h:h;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,h){--m._eventsCount==0?m._events=new o:delete m._events[h]}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,h,f=[];if(this._eventsCount===0)return f;for(h in m=this._events)e.call(m,h)&&f.push(r?h.slice(1):h);return Object.getOwnPropertySymbols?f.concat(Object.getOwnPropertySymbols(m)):f},u.prototype.listeners=function(m){var h=r?r+m:m,f=this._events[h];if(!f)return[];if(f.fn)return[f.fn];for(var T=0,A=f.length,C=new Array(A);T<A;T++)C[T]=f[T].fn;return C},u.prototype.listenerCount=function(m){var h=r?r+m:m,f=this._events[h];return f?f.fn?1:f.length:0},u.prototype.emit=function(m,h,f,T,A,C){var N=r?r+m:m;if(!this._events[N])return!1;var w,x,te=this._events[N],ue=arguments.length;if(te.fn){switch(te.once&&this.removeListener(m,te.fn,void 0,!0),ue){case 1:return te.fn.call(te.context),!0;case 2:return te.fn.call(te.context,h),!0;case 3:return te.fn.call(te.context,h,f),!0;case 4:return te.fn.call(te.context,h,f,T),!0;case 5:return te.fn.call(te.context,h,f,T,A),!0;case 6:return te.fn.call(te.context,h,f,T,A,C),!0}for(x=1,w=new Array(ue-1);x<ue;x++)w[x-1]=arguments[x];te.fn.apply(te.context,w)}else{var ye,Ie=te.length;for(x=0;x<Ie;x++)switch(te[x].once&&this.removeListener(m,te[x].fn,void 0,!0),ue){case 1:te[x].fn.call(te[x].context);break;case 2:te[x].fn.call(te[x].context,h);break;case 3:te[x].fn.call(te[x].context,h,f);break;case 4:te[x].fn.call(te[x].context,h,f,T);break;default:if(!w)for(ye=1,w=new Array(ue-1);ye<ue;ye++)w[ye-1]=arguments[ye];te[x].fn.apply(te[x].context,w)}}return!0},u.prototype.on=function(m,h,f){return n(this,m,h,f,!1)},u.prototype.once=function(m,h,f){return n(this,m,h,f,!0)},u.prototype.removeListener=function(m,h,f,T){var A=r?r+m:m;if(!this._events[A])return this;if(!h)return a(this,A),this;var C=this._events[A];if(C.fn)C.fn!==h||T&&!C.once||f&&C.context!==f||a(this,A);else{for(var N=0,w=[],x=C.length;N<x;N++)(C[N].fn!==h||T&&!C[N].once||f&&C[N].context!==f)&&w.push(C[N]);w.length?this._events[A]=w.length===1?w[0]:w:a(this,A)}return this},u.prototype.removeAllListeners=function(m){var h;return m?(h=r?r+m:m,this._events[h]&&a(this,h)):(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)}}),ry=ey(ty(),1),Qg=Symbol("instance"),Mx=Symbol("abortCtrl"),Su=Symbol("cacheResult"),qp=class{constructor(i,t,e){this.oldState=i,this.newState=t,this.action=e,this.aborted=!1}abort(i){this.aborted=!0,tc.call(i,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},yu=class extends Error{constructor(i,t,e){super(t),this.state=i,this.message=t,this.cause=e}};function iy(i){return typeof i=="object"&&i&&"then"in i}var ec=new Map;function go(i,t,e={}){return(r,o,s)=>{let n=e.action||o;if(!e.context){let u=ec.get(r)||[];ec.has(r)||ec.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[Su]:Promise.resolve(m[Su]);m.state instanceof qp&&m.state.action==e.abortAction&&m.state.abort(m);let h=null;Array.isArray(i)?i.length==0?m.state instanceof qp&&m.state.abort(m):typeof m.state=="string"&&i.includes(m.state)||(h=new yu(m._state,`${m.name} ${n} to ${t} failed: current state ${m._state} not from ${i.join("|")}`)):i!==m.state&&(h=new yu(m._state,`${m.name} ${n} to ${t} failed: current state ${m._state} not from ${i}`));let f=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(h)return f(h);let T=m.state,A=new qp(T,t,n);tc.call(m,A);let C=w=>{var x;return m[Su]=w,A.aborted||(tc.call(m,t),(x=e.success)===null||x===void 0||x.call(this,m[Su])),w},N=w=>(tc.call(m,T,w),f(w));try{let w=a.apply(this,u);return iy(w)?w.then(C).catch(N):e.sync?C(w):Promise.resolve(C(w))}catch(w){return N(new yu(m._state,`${m.name} ${n} from ${i} to ${t} failed: ${w}`,w instanceof Error?w:new Error(String(w))))}}}}function oy(...i){return(t,e,r)=>{let o=r.value,s=e;r.value=function(...n){if(!i.includes(this.state.toString()))throw new yu(this.state,`${this.name} ${s} failed: current state ${this.state} not in ${i}`);return o.apply(this,n)}}}var sy=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 tc(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 ry.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[Qg];o?this.name=o.name+"-"+o.count++:r[Qg]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let t=Object.getPrototypeOf(this),e=ec.get(t)||[],r=new Set,o=[],s=[],n=new Set,a=Object.getPrototypeOf(t);ec.has(a)&&(a.stateDiagram.forEach(m=>r.add(m)),a.allStates.forEach(m=>n.add(m))),e.forEach(({from:m,to:h,action:f})=>{typeof m=="string"?o.push({from:m,to:h,action:f}):m.length?m.forEach(T=>{o.push({from:T,to:h,action:f})}):s.push({to:h,action:f})}),o.forEach(({from:m,to:h,action:f})=>{n.add(m),n.add(h),n.add(f+"ing"),r.add(`${m} --> ${f}ing : ${f}`),r.add(`${f}ing --> ${h} : ${f} \u{1F7E2}`),r.add(`${f}ing --> ${m} : ${f} \u{1F534}`)}),s.forEach(({to:m,action:h})=>{r.add(`${h}ing --> ${m} : ${h} \u{1F7E2}`),n.forEach(f=>{f!==m&&r.add(`${f} --> ${h}ing : ${h}`)})});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={}){sy(Er.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(t){tc.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 In=class extends Jt{constructor(){super(...arguments);l(this,"decoder");l(this,"config")}initialize(){return y(this,null,function*(){this.decoder=new VideoDecoder({output:t=>{this.emit("videoFrame",t)},error:t=>{this.close(),this.emit("error",t)}})})}configure(t){this.config=t,this.decoder.configure(pe(j({},t),{codec:this.getCodec(t)}))}getCodec(t){switch(t.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 t.codec}}decode(t){this.decoder.state==="configured"&&this.decoder.decode(new EncodedVideoChunk(t))}flush(){this.decoder.flush()}reset(){this.decoder.reset()}close(){this.decoder.state!=="closed"&&this.decoder.close()}};function ny(){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,h){n=m,a=h,console.log("video info",m,h)},yuvData(m,h){let f=n*a,T=f>>2,A=u.HEAPU32[m>>2],C=u.HEAPU32[1+(m>>2)],N=u.HEAPU32[2+(m>>2)],w=u.HEAPU8.subarray(A,A+f),x=u.HEAPU8.subarray(C,C+T),te=u.HEAPU8.subarray(N,N+T),ue=new Uint8Array(f+T+T);ue.set(w),ue.set(x,f),ue.set(te,f+T);let ye=new VideoFrame(ue,{codedWidth:n,codedHeight:a,format:"I420",timestamp:h});e?(s==null||s.drawImage(ye,0,0,e.width,e.height),s==null||s.commit()):self.postMessage({type:"yuvData",videoFrame:ye},[ye])}}),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([go([Jt.INIT,"closed"],"initialized")],In.prototype,"initialize",1),Pi([go("initialized","configured",{sync:!0})],In.prototype,"configure",1),Pi([oy("configured")],In.prototype,"decode",1),Pi([go([],Jt.INIT,{sync:!0})],In.prototype,"reset",1),Pi([go([],"closed",{ignoreError:!0,sync:!0})],In.prototype,"close",1);var Ka=class extends Jt{constructor(t,e,r=!1,o,s=!1){super();l(this,"worker");l(this,"decoder");l(this,"config");l(this,"module",{});l(this,"width",0);l(this,"height",0);this.createModule=t,this.wasmBinary=e,this.workerMode=r,this.canvas=o,this.yuvMode=s}initialize(t){return y(this,null,function*(){var r;if(this.workerMode){let o=new RegExp("\\{(.+)\\}","s").exec(ny.toString())[1];this.worker=new Worker(URL.createObjectURL(new Blob([o],{type:"text/javascript"})));let s=(r=this.canvas)==null?void 0:r.transferControlToOffscreen(),n=yield this.wasmBinary;return console.warn("worker mode",n),this.worker.postMessage({type:"init",canvas:s,wasmScript:this.createModule.toString(),wasmBinary:n},s?[s,n]:[n]),new Promise(a=>{this.worker.onmessage=u=>{if(u.data.type==="ready")delete this.wasmBinary,a(),console.warn("worker mode initialize success");else if(u.data.type==="yuvData"){let{videoFrame:m}=u.data;this.emit("videoFrame",m)}}})}let e=this.module;return this.wasmBinary&&(e.wasmBinary=yield this.wasmBinary),e.print=o=>console.log(o),e.printErr=o=>console.log(`[JS] ERROR: ${o}`),e.onAbort=()=>console.log("[JS] FATAL: WASM ABORTED"),new Promise(o=>{e.postRun=s=>{this.decoder=new this.module.VideoDecoder(this),console.log("video soft decoder initialize success"),o()},t&&Object.assign(e,t),this.createModule(e)})})}configure(t){var o,s,n;this.config=t;let e=this.config.codec.startsWith("avc")?"avc":"hevc",r=this.config.description?e=="avc"?"avcc":"hvcc":"annexb";(s=this.decoder)==null||s.setCodec(e,r,(o=this.config.description)!=null?o:""),(n=this.worker)==null||n.postMessage({type:"setCodec",codec:e,format:r,description:this.config.description})}decode(t){var e,r;(e=this.decoder)==null||e.decode(t.data,t.type=="key",t.timestamp),this.state==="configured"&&((r=this.worker)==null||r.postMessage({type:"decode",packet:t}))}flush(){}reset(){this.config=void 0,this.decoder&&this.decoder.clear()}close(){this.removeAllListeners(),this.decoder&&(this.decoder.clear(),this.decoder.delete())}videoInfo(t,e){this.width=t,this.height=e;let r={width:t,height:e};this.emit("videoCodecInfo",r)}yuvData(t,e){if(!this.module)return;let r=this.width*this.height,o=r>>2,s=this.module.HEAPU32[t>>2],n=this.module.HEAPU32[1+(t>>2)],a=this.module.HEAPU32[2+(t>>2)],u=this.module.HEAPU8.subarray(s,s+r),m=this.module.HEAPU8.subarray(n,n+o),h=this.module.HEAPU8.subarray(a,a+o);if(this.yuvMode)return void this.emit("videoFrame",{y:u,u:m,v:h,timestamp:e});let f=new Uint8Array(r+o+o);f.set(u),f.set(m,r),f.set(h,r+o),this.emit("videoFrame",new VideoFrame(f,{codedWidth:this.width,codedHeight:this.height,format:"I420",timestamp:e}))}errorInfo(t){let e={errMsg:t};this.emit("error",e)}};Pi([go([Jt.INIT,"closed"],"initialized")],Ka.prototype,"initialize",1),Pi([go("initialized","configured",{sync:!0})],Ka.prototype,"configure",1),Pi([go([],Jt.INIT,{sync:!0})],Ka.prototype,"reset",1),Pi([go([],"closed",{sync:!0})],Ka.prototype,"close",1);var ay=(()=>{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",h=typeof window=="object",f=typeof importScripts=="function",T=(typeof process=="object"&&typeof process.versions=="object"&&process.versions.node,"");(h||f)&&(f?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},f&&(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,p)=>{var g=new XMLHttpRequest;g.open("GET",c,!0),g.responseType="arraybuffer",g.onload=()=>{g.status==200||g.status==0&&g.response?d(g.response):p()},g.onerror=p,g.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 w,x;o.noExitRuntime,typeof WebAssembly!="object"&&$r("no native wasm support detected");var te,ue,ye,Ie,Y,Pe,Cn,Nn,Dn,wn=!1,Fr=[],Ts=[],$i=[],cr=0,ni=null,ai=null;function ie(c){cr++,o.monitorRunDependencies&&o.monitorRunDependencies(cr)}function bo(c){if(cr--,o.monitorRunDependencies&&o.monitorRunDependencies(cr),cr==0&&(ni!==null&&(clearInterval(ni),ni=null),ai)){var d=ai;ai=null,d()}}function $r(c){o.onAbort&&o.onAbort(c),N(c="Aborted("+c+")"),wn=!0,c+=". Build with -sASSERTIONS for more info.";var d=new WebAssembly.RuntimeError(c);throw r(d),d}var ci,Mn,Ee,Ke;function kt(c){return c.startsWith("data:application/octet-stream;base64,")}function J(c){if(c==ci&&A)return new Uint8Array(A);if(a)return a(c);throw"both async and sync fetching of the wasm failed"}function Br(c,d,p){return function(g){return A||!h&&!f||typeof fetch!="function"?Promise.resolve().then(()=>J(g)):fetch(g,{credentials:"same-origin"}).then(I=>{if(!I.ok)throw"failed to load wasm binary file at '"+g+"'";return I.arrayBuffer()}).catch(()=>J(g))}(c).then(g=>WebAssembly.instantiate(g,d)).then(g=>g).then(p,g=>{N("failed to asynchronously prepare wasm: "+g),$r(g)})}kt(ci="videodec.wasm")||(Mn=ci,ci=o.locateFile?o.locateFile(Mn,T):T+Mn);var Bi=c=>{for(;c.length>0;)c.shift()(o)};function Hi(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,te[this.ptr+12|0]=d},this.get_caught=function(){return te[this.ptr+12|0]!=0},this.set_rethrown=function(d){d=d?1:0,te[this.ptr+13|0]=d},this.get_rethrown=function(){return te[this.ptr+13|0]!=0},this.init=function(d,p){this.set_adjusted_ptr(0),this.set_type(d),this.set_destructor(p)},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(Fn(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 p=0,g=c.length-1;g>=0;g--){var I=c[g];I==="."?c.splice(g,1):I===".."?(c.splice(g,1),p++):p&&(c.splice(g,1),p--)}if(d)for(;p;p--)c.unshift("..");return c},normalize:c=>{var d=me.isAbs(c),p=c.substr(-1)==="/";return(c=me.normalizeArray(c.split("/").filter(g=>!!g),!d).join("/"))||d||(c="."),c&&p&&(c+="/"),(d?"/":"")+c},dirname:c=>{var d=me.splitPath(c),p=d[0],g=d[1];return p||g?(g&&(g=g.substr(0,g.length-1)),p+g):"."},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)},On=c=>(On=(()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return d=>crypto.getRandomValues(d);$r("initRandomDevice")})())(c),Xt={resolve:function(){for(var c="",d=!1,p=arguments.length-1;p>=-1&&!d;p--){var g=p>=0?arguments[p]:E.cwd();if(typeof g!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!g)return"";c=g+"/"+c,d=me.isAbs(g)}return(d?"/":"")+(c=me.normalizeArray(c.split("/").filter(I=>!!I),!d).join("/"))||"."},relative:(c,d)=>{function p(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 g=p(c.split("/")),I=p(d.split("/")),b=Math.min(g.length,I.length),R=b,v=0;v<b;v++)if(g[v]!==I[v]){R=v;break}var U=[];for(v=R;v<g.length;v++)U.push("..");return(U=U.concat(I.slice(R))).join("/")}},Wi=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,Pt=(c,d,p)=>{for(var g=d+p,I=d;c[I]&&!(I>=g);)++I;if(I-d>16&&c.buffer&&Wi)return Wi.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},xn=[],Ro=c=>{for(var d=0,p=0;p<c.length;++p){var g=c.charCodeAt(p);g<=127?d++:g<=2047?d+=2:g>=55296&&g<=57343?(d+=4,++p):d+=3}return d},vo=(c,d,p,g)=>{if(!(g>0))return 0;for(var I=p,b=p+g-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(p>=b)break;d[p++]=v}else if(v<=2047){if(p+1>=b)break;d[p++]=192|v>>6,d[p++]=128|63&v}else if(v<=65535){if(p+2>=b)break;d[p++]=224|v>>12,d[p++]=128|v>>6&63,d[p++]=128|63&v}else{if(p+3>=b)break;d[p++]=240|v>>18,d[p++]=128|v>>12&63,d[p++]=128|v>>6&63,d[p++]=128|63&v}}return d[p]=0,p-I};function _s(c,d,p){var g=p>0?p:Ro(c)+1,I=new Array(g),b=vo(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,p,g,I){if(!c.tty||!c.tty.ops.get_char)throw new E.ErrnoError(60);for(var b=0,R=0;R<g;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[p+R]=v}return b&&(c.node.timestamp=Date.now()),b},write:function(c,d,p,g,I){if(!c.tty||!c.tty.ops.put_char)throw new E.ErrnoError(60);try{for(var b=0;b<g;b++)c.tty.ops.put_char(c.tty,d[p+b])}catch(R){throw new E.ErrnoError(29)}return g&&(c.node.timestamp=Date.now()),b}},default_tty_ops:{get_char:function(c){return(()=>{if(!xn.length){var d=null;if(typeof window!="undefined"&&typeof window.prompt=="function"?(d=window.prompt("Input: "))!==null&&(d+=`
|
|
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+=`
|
|
51
51
|
`):typeof readline=="function"&&(d=readline())!==null&&(d+=`
|
|
52
|
-
`),!d)return null;xn=_s(d,!0)}return xn.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,p){return 0},ioctl_tiocgwinsz:function(c){return[24,80]}},default_tty1_ops:{put_char:function(c,d){d===null||d===10?(N(Pt(c.output,0)),c.output=[]):d!=0&&c.output.push(d)},fsync:function(c){c.output&&c.output.length>0&&(N(Pt(c.output,0)),c.output=[])}}},kn=c=>{$r()},G={ops_table:null,mount:c=>G.createNode(null,"/",16895,0),createNode(c,d,p,g){if(E.isBlkdev(p)||E.isFIFO(p))throw new E.ErrnoError(63);G.ops_table||(G.ops_table={dir:{node:{getattr:G.node_ops.getattr,setattr:G.node_ops.setattr,lookup:G.node_ops.lookup,mknod:G.node_ops.mknod,rename:G.node_ops.rename,unlink:G.node_ops.unlink,rmdir:G.node_ops.rmdir,readdir:G.node_ops.readdir,symlink:G.node_ops.symlink},stream:{llseek:G.stream_ops.llseek}},file:{node:{getattr:G.node_ops.getattr,setattr:G.node_ops.setattr},stream:{llseek:G.stream_ops.llseek,read:G.stream_ops.read,write:G.stream_ops.write,allocate:G.stream_ops.allocate,mmap:G.stream_ops.mmap,msync:G.stream_ops.msync}},link:{node:{getattr:G.node_ops.getattr,setattr:G.node_ops.setattr,readlink:G.node_ops.readlink},stream:{}},chrdev:{node:{getattr:G.node_ops.getattr,setattr:G.node_ops.setattr},stream:E.chrdev_stream_ops}});var I=E.createNode(c,d,p,g);return E.isDir(I.mode)?(I.node_ops=G.ops_table.dir.node,I.stream_ops=G.ops_table.dir.stream,I.contents={}):E.isFile(I.mode)?(I.node_ops=G.ops_table.file.node,I.stream_ops=G.ops_table.file.stream,I.usedBytes=0,I.contents=null):E.isLink(I.mode)?(I.node_ops=G.ops_table.link.node,I.stream_ops=G.ops_table.link.stream):E.isChrdev(I.mode)&&(I.node_ops=G.ops_table.chrdev.node,I.stream_ops=G.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 p=c.contents?c.contents.length:0;if(!(p>=d)){d=Math.max(d,p*(p<1048576?2:1.125)>>>0),p!=0&&(d=Math.max(d,256));var g=c.contents;c.contents=new Uint8Array(d),c.usedBytes>0&&c.contents.set(g.subarray(0,c.usedBytes),0)}},resizeFileStorage(c,d){if(c.usedBytes!=d)if(d==0)c.contents=null,c.usedBytes=0;else{var p=c.contents;c.contents=new Uint8Array(d),p&&c.contents.set(p.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&&G.resizeFileStorage(c,d.size)},lookup(c,d){throw E.genericErrors[44]},mknod:(c,d,p,g)=>G.createNode(c,d,p,g),rename(c,d,p){if(E.isDir(c.mode)){var g;try{g=E.lookupNode(d,p)}catch(b){}if(g)for(var I in g.contents)throw new E.ErrnoError(55)}delete c.parent.contents[c.name],c.parent.timestamp=Date.now(),c.name=p,d.contents[p]=c,d.timestamp=c.parent.timestamp,c.parent=d},unlink(c,d){delete c.contents[d],c.timestamp=Date.now()},rmdir(c,d){var p=E.lookupNode(c,d);for(var g in p.contents)throw new E.ErrnoError(55);delete c.contents[d],c.timestamp=Date.now()},readdir(c){var d=[".",".."];for(var p in c.contents)c.contents.hasOwnProperty(p)&&d.push(p);return d},symlink(c,d,p){var g=G.createNode(c,d,41471,0);return g.link=p,g},readlink(c){if(!E.isLink(c.mode))throw new E.ErrnoError(28);return c.link}},stream_ops:{read(c,d,p,g,I){var b=c.node.contents;if(I>=c.node.usedBytes)return 0;var R=Math.min(c.node.usedBytes-I,g);if(R>8&&b.subarray)d.set(b.subarray(I,I+R),p);else for(var v=0;v<R;v++)d[p+v]=b[I+v];return R},write(c,d,p,g,I,b){if(!g)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(p,p+g),R.usedBytes=g,g;if(R.usedBytes===0&&I===0)return R.contents=d.slice(p,p+g),R.usedBytes=g,g;if(I+g<=R.usedBytes)return R.contents.set(d.subarray(p,p+g),I),g}if(G.expandFileStorage(R,I+g),R.contents.subarray&&d.subarray)R.contents.set(d.subarray(p,p+g),I);else for(var v=0;v<g;v++)R.contents[I+v]=d[p+v];return R.usedBytes=Math.max(R.usedBytes,I+g),g},llseek(c,d,p){var g=d;if(p===1?g+=c.position:p===2&&E.isFile(c.node.mode)&&(g+=c.node.usedBytes),g<0)throw new E.ErrnoError(28);return g},allocate(c,d,p){G.expandFileStorage(c.node,d+p),c.node.usedBytes=Math.max(c.node.usedBytes,d+p)},mmap(c,d,p,g,I){if(!E.isFile(c.node.mode))throw new E.ErrnoError(43);var b,R,v=c.node.contents;if(2&I||v.buffer!==te.buffer){if((p>0||p+d<v.length)&&(v=v.subarray?v.subarray(p,p+d):Array.prototype.slice.call(v,p,p+d)),R=!0,!(b=kn()))throw new E.ErrnoError(48);te.set(v,b)}else R=!1,b=v.byteOffset;return{ptr:b,allocated:R}},msync:(c,d,p,g,I)=>(G.stream_ops.write(c,d,0,g,p,!1),0)}},sl=(c,d,p,g)=>{var I=g?"":`al ${c}`;n(c,b=>{var R;R=`Loading data file "${c}" failed (no arrayBuffer).`,b||$r(R),d(new Uint8Array(b)),I&&bo()},b=>{if(!p)throw`Loading data file "${c}" failed.`;p()}),I&&ie()},nl=o.preloadPlugins||[];function di(c,d){var p=0;return c&&(p|=365),d&&(p|=146),p}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 p=c.split("/").filter(L=>!!L),g=E.root,I="/",b=0;b<p.length;b++){var R=b===p.length-1;if(R&&d.parent)break;if(g=E.lookupNode(g,p[b]),I=me.join2(I,p[b]),E.isMountpoint(g)&&(!R||R&&d.follow_mount)&&(g=g.mounted.root),!R||d.follow)for(var v=0;E.isLink(g.mode);){var U=E.readlink(I);if(I=Xt.resolve(me.dirname(I),U),g=E.lookupPath(I,{recurse_count:d.recurse_count+1}).node,v++>40)throw new E.ErrnoError(32)}}return{path:I,node:g}},getPath:c=>{for(var d;;){if(E.isRoot(c)){var p=c.mount.mountpoint;return d?p[p.length-1]!=="/"?`${p}/${d}`:p+d:p}d=d?`${c.name}/${d}`:c.name,c=c.parent}},hashName:(c,d)=>{for(var p=0,g=0;g<d.length;g++)p=(p<<5)-p+d.charCodeAt(g)|0;return(c+p>>>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 p=E.nameTable[d];p;){if(p.name_next===c){p.name_next=c.name_next;break}p=p.name_next}},lookupNode:(c,d)=>{var p=E.mayLookup(c);if(p)throw new E.ErrnoError(p,c);for(var g=E.hashName(c.id,d),I=E.nameTable[g];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,p,g)=>{var I=new E.FSNode(c,d,p,g);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(p){}return E.nodePermissions(c,"wx")},mayDelete:(c,d,p)=>{var g;try{g=E.lookupNode(c,d)}catch(b){return b.errno}var I=E.nodePermissions(c,"wx");if(I)return I;if(p){if(!E.isDir(g.mode))return 54;if(E.isRoot(g)||E.getPath(g)===E.cwd())return 10}else if(E.isDir(g.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(p){this.node=p}},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(p){this.shared.flags=p}},position:{get(){return this.shared.position},set(p){this.shared.position=p}}})),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=[],p=[c];p.length;){var g=p.pop();d.push(g),p.push.apply(p,g.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 p=E.getMounts(E.root.mount),g=0;function I(R){return E.syncFSRequests--,d(R)}function b(R){if(R)return b.errored?void 0:(b.errored=!0,I(R));++g>=p.length&&I(null)}p.forEach(R=>{if(!R.type.syncfs)return b(null);R.type.syncfs(R,c,b)})},mount:(c,d,p)=>{var g,I=p==="/",b=!p;if(I&&E.root)throw new E.ErrnoError(10);if(!I&&!b){var R=E.lookupPath(p,{follow_mount:!1});if(p=R.path,g=R.node,E.isMountpoint(g))throw new E.ErrnoError(10);if(!E.isDir(g.mode))throw new E.ErrnoError(54)}var v={type:c,opts:d,mountpoint:p,mounts:[]},U=c.mount(v);return U.mount=v,v.root=U,I?E.root=U:g&&(g.mounted=v,g.mount&&g.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 p=d.node,g=p.mounted,I=E.getMounts(g);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}}),p.mounted=null;var b=p.mount.mounts.indexOf(g);p.mount.mounts.splice(b,1)},lookup:(c,d)=>c.node_ops.lookup(c,d),mknod:(c,d,p)=>{var g=E.lookupPath(c,{parent:!0}).node,I=me.basename(c);if(!I||I==="."||I==="..")throw new E.ErrnoError(28);var b=E.mayCreate(g,I);if(b)throw new E.ErrnoError(b);if(!g.node_ops.mknod)throw new E.ErrnoError(63);return g.node_ops.mknod(g,I,d,p)},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 p=c.split("/"),g="",I=0;I<p.length;++I)if(p[I]){g+="/"+p[I];try{E.mkdir(g,d)}catch(b){if(b.errno!=20)throw b}}},mkdev:(c,d,p)=>(p===void 0&&(p=d,d=438),d|=8192,E.mknod(c,d,p)),symlink:(c,d)=>{if(!Xt.resolve(c))throw new E.ErrnoError(44);var p=E.lookupPath(d,{parent:!0}).node;if(!p)throw new E.ErrnoError(44);var g=me.basename(d),I=E.mayCreate(p,g);if(I)throw new E.ErrnoError(I);if(!p.node_ops.symlink)throw new E.ErrnoError(63);return p.node_ops.symlink(p,g,c)},rename:(c,d)=>{var p,g,I=me.dirname(c),b=me.dirname(d),R=me.basename(c),v=me.basename(d);if(p=E.lookupPath(c,{parent:!0}).node,g=E.lookupPath(d,{parent:!0}).node,!p||!g)throw new E.ErrnoError(44);if(p.mount!==g.mount)throw new E.ErrnoError(75);var U,L=E.lookupNode(p,R),Z=Xt.relative(c,b);if(Z.charAt(0)!==".")throw new E.ErrnoError(28);if((Z=Xt.relative(d,I)).charAt(0)!==".")throw new E.ErrnoError(55);try{U=E.lookupNode(g,v)}catch(se){}if(L!==U){var ae=E.isDir(L.mode),ce=E.mayDelete(p,R,ae);if(ce)throw new E.ErrnoError(ce);if(ce=U?E.mayDelete(g,v,ae):E.mayCreate(g,v))throw new E.ErrnoError(ce);if(!p.node_ops.rename)throw new E.ErrnoError(63);if(E.isMountpoint(L)||U&&E.isMountpoint(U))throw new E.ErrnoError(10);if(g!==p&&(ce=E.nodePermissions(p,"w")))throw new E.ErrnoError(ce);E.hashRemoveNode(L);try{p.node_ops.rename(L,g,v)}catch(se){throw se}finally{E.hashAddNode(L)}}},rmdir:c=>{var d=E.lookupPath(c,{parent:!0}).node,p=me.basename(c),g=E.lookupNode(d,p),I=E.mayDelete(d,p,!0);if(I)throw new E.ErrnoError(I);if(!d.node_ops.rmdir)throw new E.ErrnoError(63);if(E.isMountpoint(g))throw new E.ErrnoError(10);d.node_ops.rmdir(d,p),E.destroyNode(g)},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 p=me.basename(c),g=E.lookupNode(d,p),I=E.mayDelete(d,p,!1);if(I)throw new E.ErrnoError(I);if(!d.node_ops.unlink)throw new E.ErrnoError(63);if(E.isMountpoint(g))throw new E.ErrnoError(10);d.node_ops.unlink(d,p),E.destroyNode(g)},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 p=E.lookupPath(c,{follow:!d}).node;if(!p)throw new E.ErrnoError(44);if(!p.node_ops.getattr)throw new E.ErrnoError(63);return p.node_ops.getattr(p)},lstat:c=>E.stat(c,!0),chmod:(c,d,p)=>{var g;if(typeof c=="string"?g=E.lookupPath(c,{follow:!p}).node:g=c,!g.node_ops.setattr)throw new E.ErrnoError(63);g.node_ops.setattr(g,{mode:4095&d|-4096&g.mode,timestamp:Date.now()})},lchmod:(c,d)=>{E.chmod(c,d,!0)},fchmod:(c,d)=>{var p=E.getStreamChecked(c);E.chmod(p.node,d)},chown:(c,d,p,g)=>{var I;if(typeof c=="string"?I=E.lookupPath(c,{follow:!g}).node:I=c,!I.node_ops.setattr)throw new E.ErrnoError(63);I.node_ops.setattr(I,{timestamp:Date.now()})},lchown:(c,d,p)=>{E.chown(c,d,p,!0)},fchown:(c,d,p)=>{var g=E.getStreamChecked(c);E.chown(g.node,d,p)},truncate:(c,d)=>{if(d<0)throw new E.ErrnoError(28);var p;if(typeof c=="string"?p=E.lookupPath(c,{follow:!0}).node:p=c,!p.node_ops.setattr)throw new E.ErrnoError(63);if(E.isDir(p.mode))throw new E.ErrnoError(31);if(!E.isFile(p.mode))throw new E.ErrnoError(28);var g=E.nodePermissions(p,"w");if(g)throw new E.ErrnoError(g);p.node_ops.setattr(p,{size:d,timestamp:Date.now()})},ftruncate:(c,d)=>{var p=E.getStreamChecked(c);if(!(2097155&p.flags))throw new E.ErrnoError(28);E.truncate(p.node,d)},utime:(c,d,p)=>{var g=E.lookupPath(c,{follow:!0}).node;g.node_ops.setattr(g,{timestamp:Math.max(d,p)})},open:(c,d,p)=>{if(c==="")throw new E.ErrnoError(44);var g;if(p=p===void 0?438:p,p=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&p|32768:0,typeof c=="object")g=c;else{c=me.normalize(c);try{g=E.lookupPath(c,{follow:!(131072&d)}).node}catch(v){}}var I=!1;if(64&d)if(g){if(128&d)throw new E.ErrnoError(20)}else g=E.mknod(c,p,0),I=!0;if(!g)throw new E.ErrnoError(44);if(E.isChrdev(g.mode)&&(d&=-513),65536&d&&!E.isDir(g.mode))throw new E.ErrnoError(54);if(!I){var b=E.mayOpen(g,d);if(b)throw new E.ErrnoError(b)}512&d&&!I&&E.truncate(g,0),d&=-131713;var R=E.createStream({node:g,path:E.getPath(g),flags:d,seekable:!0,position:0,stream_ops:g.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,p)=>{if(E.isClosed(c))throw new E.ErrnoError(8);if(!c.seekable||!c.stream_ops.llseek)throw new E.ErrnoError(70);if(p!=0&&p!=1&&p!=2)throw new E.ErrnoError(28);return c.position=c.stream_ops.llseek(c,d,p),c.ungotten=[],c.position},read:(c,d,p,g,I)=>{if(g<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,p,g,I);return b||(c.position+=R),R},write:(c,d,p,g,I,b)=>{if(g<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,p,g,I,b);return R||(c.position+=v),v},allocate:(c,d,p)=>{if(E.isClosed(c))throw new E.ErrnoError(8);if(d<0||p<=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,p)},mmap:(c,d,p,g,I)=>{if(2&g&&!(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,p,g,I)},msync:(c,d,p,g,I)=>c.stream_ops.msync?c.stream_ops.msync(c,d,p,g,I):0,munmap:c=>0,ioctl:(c,d,p)=>{if(!c.stream_ops.ioctl)throw new E.ErrnoError(59);return c.stream_ops.ioctl(c,d,p)},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 p,g=E.open(c,d.flags),I=E.stat(c).size,b=new Uint8Array(I);return E.read(g,b,0,I,0),d.encoding==="utf8"?p=Pt(b,0):d.encoding==="binary"&&(p=b),E.close(g),p},writeFile:(c,d,p={})=>{p.flags=p.flags||577;var g=E.open(c,p.flags,p.mode);if(typeof d=="string"){var I=new Uint8Array(Ro(d)+1),b=vo(d,I,0,I.length);E.write(g,I,0,b,void 0,p.canOwn)}else{if(!ArrayBuffer.isView(d))throw new Error("Unsupported data type");E.write(g,d,0,d.byteLength,void 0,p.canOwn)}E.close(g)},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 p=E.nodePermissions(d.node,"x");if(p)throw new E.ErrnoError(p);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:(g,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,p=()=>(d===0&&(d=On(c).byteLength),c[--d]);E.createDevice("/dev","random",p),E.createDevice("/dev","urandom",p),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:(p,g)=>{var I=+g,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(p){this.errno=p},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(G,{},"/"),E.createDefaultDirectories(),E.createDefaultDevices(),E.createSpecialDirectories(),E.filesystems={MEMFS:G}},init:(c,d,p)=>{E.init.initialized=!0,E.ensureErrnoError(),o.stdin=c||o.stdin,o.stdout=d||o.stdout,o.stderr=p||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 p=E.analyzePath(c,d);return p.exists?p.object:null},analyzePath:(c,d)=>{try{c=(g=E.lookupPath(c,{follow:!d})).path}catch(I){}var p={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var g=E.lookupPath(c,{parent:!0});p.parentExists=!0,p.parentPath=g.path,p.parentObject=g.node,p.name=me.basename(c),g=E.lookupPath(c,{follow:!d}),p.exists=!0,p.path=g.path,p.object=g.node,p.name=g.node.name,p.isRoot=g.path==="/"}catch(I){p.error=I.errno}return p},createPath:(c,d,p,g)=>{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,p,g,I)=>{var b=me.join2(typeof c=="string"?c:E.getPath(c),d),R=di(g,I);return E.create(b,R)},createDataFile:(c,d,p,g,I,b)=>{var R=d;c&&(c=typeof c=="string"?c:E.getPath(c),R=d?me.join2(c,d):c);var v=di(g,I),U=E.create(R,v);if(p){if(typeof p=="string"){for(var L=new Array(p.length),Z=0,ae=p.length;Z<ae;++Z)L[Z]=p.charCodeAt(Z);p=L}E.chmod(U,146|v);var ce=E.open(U,577);E.write(ce,p,0,p.length,0,b),E.close(ce),E.chmod(U,v)}return U},createDevice:(c,d,p,g)=>{var I=me.join2(typeof c=="string"?c:E.getPath(c),d),b=di(!!p,!!g);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=>{g&&g.buffer&&g.buffer.length&&g(10)},read:(v,U,L,Z,ae)=>{for(var ce=0,se=0;se<Z;se++){var Ne;try{Ne=p()}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+se]=Ne}return ce&&(v.node.timestamp=Date.now()),ce},write:(v,U,L,Z,ae)=>{for(var ce=0;ce<Z;ce++)try{g(U[L+ce])}catch(se){throw new E.ErrnoError(29)}return Z&&(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=_s(s(c.url),!0),c.usedBytes=c.contents.length}catch(d){throw new E.ErrnoError(29)}},createLazyFile:(c,d,p,g,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,se=ae/this.chunkSize|0;return this.getter(se)[ce]}},b.prototype.setDataGetter=function(ae){this.getter=ae},b.prototype.cacheLength=function(){var ae=new XMLHttpRequest;if(ae.open("HEAD",p,!1),ae.send(null),!(ae.status>=200&&ae.status<300||ae.status===304))throw new Error("Couldn't load "+p+". Status: "+ae.status);var ce,se=Number(ae.getResponseHeader("Content-length")),Ne=(ce=ae.getResponseHeader("Accept-Ranges"))&&ce==="bytes",Fe=(ce=ae.getResponseHeader("Content-Encoding"))&&ce==="gzip",Oe=1048576;Ne||(Oe=se);var it=this;it.setDataGetter(et=>{var Et=et*Oe,Ki=(et+1)*Oe-1;if(Ki=Math.min(Ki,se-1),it.chunks[et]===void 0&&(it.chunks[et]=((ur,ko)=>{if(ur>ko)throw new Error("invalid range ("+ur+", "+ko+") or no bytes requested!");if(ko>se-1)throw new Error("only "+se+" bytes available! programmer error!");var lt=new XMLHttpRequest;if(lt.open("GET",p,!1),se!==Oe&<.setRequestHeader("Range","bytes="+ur+"-"+ko),lt.responseType="arraybuffer",lt.overrideMimeType&<.overrideMimeType("text/plain; charset=x-user-defined"),lt.send(null),!(lt.status>=200&<.status<300||lt.status===304))throw new Error("Couldn't load "+p+". Status: "+lt.status);return lt.response!==void 0?new Uint8Array(lt.response||[]):_s(lt.responseText||"",!0)})(Et,Ki)),it.chunks[et]===void 0)throw new Error("doXHR failed!");return it.chunks[et]}),!Fe&&se||(Oe=se=1,se=this.getter(0).length,Oe=se,C("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=se,this._chunkSize=Oe,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!f)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:p};var U=E.createFile(c,d,v,g,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 Z(ae,ce,se,Ne,Fe){var Oe=ae.node.contents;if(Fe>=Oe.length)return 0;var it=Math.min(Oe.length-Fe,Ne);if(Oe.slice)for(var et=0;et<it;et++)ce[se+et]=Oe[Fe+et];else for(et=0;et<it;et++)ce[se+et]=Oe.get(Fe+et);return it}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,se,Ne,Fe)=>(E.forceLoadFile(U),Z(ae,ce,se,Ne,Fe)),L.mmap=(ae,ce,se,Ne,Fe)=>{E.forceLoadFile(U);var Oe=kn();if(!Oe)throw new E.ErrnoError(48);return Z(ae,te,Oe,ce,se),{ptr:Oe,allocated:!0}},U.stream_ops=L,U}},Gi=(c,d)=>c?Pt(ue,c,d):"",yt={DEFAULT_POLLMASK:5,calculateAt:function(c,d,p){if(me.isAbs(d))return d;var g;if(c===-100?g=E.cwd():g=yt.getStreamFromFD(c).path,d.length==0){if(!p)throw new E.ErrnoError(44);return g}return me.join2(g,d)},doStat:function(c,d,p){try{var g=c(d)}catch(v){if(v&&v.node&&me.normalize(d)!==me.normalize(E.getPath(v.node)))return-54;throw v}Y[p>>2]=g.dev,Y[p+4>>2]=g.mode,Pe[p+8>>2]=g.nlink,Y[p+12>>2]=g.uid,Y[p+16>>2]=g.gid,Y[p+20>>2]=g.rdev,Ke=[g.size>>>0,(Ee=g.size,+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],Y[p+24>>2]=Ke[0],Y[p+28>>2]=Ke[1],Y[p+32>>2]=4096,Y[p+36>>2]=g.blocks;var I=g.atime.getTime(),b=g.mtime.getTime(),R=g.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)],Y[p+40>>2]=Ke[0],Y[p+44>>2]=Ke[1],Pe[p+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)],Y[p+56>>2]=Ke[0],Y[p+60>>2]=Ke[1],Pe[p+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)],Y[p+72>>2]=Ke[0],Y[p+76>>2]=Ke[1],Pe[p+80>>2]=R%1e3*1e3,Ke=[g.ino>>>0,(Ee=g.ino,+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],Y[p+88>>2]=Ke[0],Y[p+92>>2]=Ke[1],0},doMsync:function(c,d,p,g,I){if(!E.isFile(d.node.mode))throw new E.ErrnoError(43);if(2&g)return 0;var b=ue.slice(c,c+p);E.msync(d,b,I,p,g)},varargs:void 0,get:()=>(yt.varargs+=4,Y[yt.varargs-4>>2]),getStr:c=>Gi(c),getStreamFromFD:function(c){return E.getStreamChecked(c)}};function ui(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 hc=void 0;function P(c){for(var d="",p=c;ue[p];)d+=hc[ue[p++]];return d}var ji={},dr={},Is={},qi=void 0;function Ve(c){throw new qi(c)}var fc=void 0;function er(c){throw new fc(c)}function Hr(c,d,p){function g(v){var U=p(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){Is[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),ji.hasOwnProperty(v)||(ji[v]=[]),ji[v].push(()=>{I[U]=dr[v],++R===b.length&&g(I)}))}),b.length===0&&g(I)}function tr(c,d,p={}){if(!("argPackAdvance"in d))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(g,I,b={}){var R=I.name;if(g||Ve(`type "${R}" must have a positive integer typeid pointer`),dr.hasOwnProperty(g)){if(b.ignoreDuplicateRegistrations)return;Ve(`Cannot register type '${R}' twice`)}if(dr[g]=I,delete Is[g],ji.hasOwnProperty(g)){var v=ji[g];delete ji[g],v.forEach(U=>U())}}(c,d,p)}function gc(c){if(!(this instanceof Sr)||!(c instanceof Sr))return!1;for(var d=this.$$.ptrType.registeredClass,p=this.$$.ptr,g=c.$$.ptrType.registeredClass,I=c.$$.ptr;d.baseClass;)p=d.upcast(p),d=d.baseClass;for(;g.baseClass;)I=g.upcast(I),g=g.baseClass;return d===g&&p===I}function Pn(c){Ve(c.$$.ptrType.registeredClass.name+" instance already deleted")}var Co=!1;function Ec(c){}function Tc(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 _c(c,d,p){if(d===p)return c;if(p.baseClass===void 0)return null;var g=_c(c,d,p.baseClass);return g===null?null:p.downcast(g)}var No={};function al(){return Object.keys(wo).length}function cl(){var c=[];for(var d in wo)wo.hasOwnProperty(d)&&c.push(wo[d]);return c}var Do=[];function rr(){for(;Do.length;){var c=Do.pop();c.$$.deleteScheduled=!1,c.delete()}}var Wr=void 0;function Ic(c){Wr=c,Do.length&&Wr&&Wr(rr)}var wo={};function zi(c,d){return d=function(p,g){for(g===void 0&&Ve("ptr should not be undefined");p.baseClass;)g=p.upcast(g),p=p.baseClass;return g}(c,d),wo[d]}function Mo(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},Ji(Object.create(c,{$$:{value:d}}))}function Sc(c){var d=this.getPointee(c);if(!d)return this.destructor(c),null;var p=zi(this.registeredClass,d);if(p!==void 0){if(p.$$.count.value===0)return p.$$.ptr=d,p.$$.smartPtr=c,p.clone();var g=p.clone();return this.destructor(c),g}function I(){return this.isSmartPointer?Mo(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:d,smartPtrType:this,smartPtr:c}):Mo(this.registeredClass.instancePrototype,{ptrType:this,ptr:c})}var b,R=this.registeredClass.getActualType(d),v=No[R];if(!v)return I.call(this);b=this.isConst?v.constPointerType:v.pointerType;var U=_c(d,this.registeredClass,b.registeredClass);return U===null?I.call(this):this.isSmartPointer?Mo(b.registeredClass.instancePrototype,{ptrType:b,ptr:U,smartPtrType:this,smartPtr:c}):Mo(b.registeredClass.instancePrototype,{ptrType:b,ptr:U})}var Ji=function(c){return typeof FinalizationRegistry=="undefined"?(Ji=d=>d,c):(Co=new FinalizationRegistry(d=>{Tc(d.$$)}),Ec=d=>Co.unregister(d),(Ji=d=>{var p=d.$$;if(p.smartPtr){var g={$$:p};Co.register(d,g,d)}return d})(c))};function yc(){if(this.$$.ptr||Pn(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var c,d=Ji(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 dl(){this.$$.ptr||Pn(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Ve("Object already scheduled for deletion"),Ec(this),Tc(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Ac(){return!this.$$.ptr}function bc(){return this.$$.ptr||Pn(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Ve("Object already scheduled for deletion"),Do.push(this),Do.length===1&&Wr&&Wr(rr),this.$$.deleteScheduled=!0,this}function Sr(){}function Lt(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 Ss(c,d){return c=Lt(c),{[c]:function(){return d.apply(this,arguments)}}[c]}function Rc(c,d,p){if(c[d].overloadTable===void 0){var g=c[d];c[d]=function(){return c[d].overloadTable.hasOwnProperty(arguments.length)||Ve(`Function '${p}' 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[g.argCount]=g}}function ys(c,d,p,g,I,b,R,v){this.name=c,this.constructor=d,this.instancePrototype=p,this.rawDestructor=g,this.baseClass=I,this.getActualType=b,this.upcast=R,this.downcast=v,this.pureVirtualFunctions=[]}function Oo(c,d,p){for(;d!==p;)d.upcast||Ve(`Expected null or instance of ${p.name}, got an instance of ${d.name}`),c=d.upcast(c),d=d.baseClass;return c}function ul(c,d){if(d===null)return this.isReference&&Ve(`null is not a valid ${this.name}`),0;d.$$||Ve(`Cannot pass "${vs(d)}" as a ${this.name}`),d.$$.ptr||Ve(`Cannot pass deleted object as a pointer of type ${this.name}`);var p=d.$$.ptrType.registeredClass;return Oo(d.$$.ptr,p,this.registeredClass)}function ll(c,d){var p;if(d===null)return this.isReference&&Ve(`null is not a valid ${this.name}`),this.isSmartPointer?(p=this.rawConstructor(),c!==null&&c.push(this.rawDestructor,p),p):0;d.$$||Ve(`Cannot pass "${vs(d)}" as a ${this.name}`),d.$$.ptr||Ve(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&d.$$.ptrType.isConst&&Ve(`Cannot convert argument of type ${d.$$.smartPtrType?d.$$.smartPtrType.name:d.$$.ptrType.name} to parameter type ${this.name}`);var g=d.$$.ptrType.registeredClass;if(p=Oo(d.$$.ptr,g,this.registeredClass),this.isSmartPointer)switch(d.$$.smartPtr===void 0&&Ve("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:d.$$.smartPtrType===this?p=d.$$.smartPtr:Ve(`Cannot convert argument of type ${d.$$.smartPtrType?d.$$.smartPtrType.name:d.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:p=d.$$.smartPtr;break;case 2:if(d.$$.smartPtrType===this)p=d.$$.smartPtr;else{var I=d.clone();p=this.rawShare(p,Yi.toHandle(function(){I.delete()})),c!==null&&c.push(this.rawDestructor,p)}break;default:Ve("Unsupporting sharing policy")}return p}function vc(c,d){if(d===null)return this.isReference&&Ve(`null is not a valid ${this.name}`),0;d.$$||Ve(`Cannot pass "${vs(d)}" as a ${this.name}`),d.$$.ptr||Ve(`Cannot pass deleted object as a pointer of type ${this.name}`),d.$$.ptrType.isConst&&Ve(`Cannot convert argument of type ${d.$$.ptrType.name} to parameter type ${this.name}`);var p=d.$$.ptrType.registeredClass;return Oo(d.$$.ptr,p,this.registeredClass)}function xo(c){return this.fromWireType(Y[c>>2])}function ml(c){return this.rawGetPointee&&(c=this.rawGetPointee(c)),c}function Cc(c){this.rawDestructor&&this.rawDestructor(c)}function pl(c){c!==null&&c.delete()}function yr(c,d,p,g,I,b,R,v,U,L,Z){this.name=c,this.registeredClass=d,this.isReference=p,this.isConst=g,this.isSmartPointer=I,this.pointeeType=b,this.sharingPolicy=R,this.rawGetPointee=v,this.rawConstructor=U,this.rawShare=L,this.rawDestructor=Z,I||d.baseClass!==void 0?this.toWireType=ll:g?(this.toWireType=ul,this.destructorFunction=null):(this.toWireType=vc,this.destructorFunction=null)}var As=[],Nc=c=>{var d=As[c];return d||(c>=As.length&&(As.length=c+1),As[c]=d=Dn.get(c)),d},hl=(c,d,p)=>c.includes("j")?((g,I,b)=>{var R=o["dynCall_"+g];return b&&b.length?R.apply(null,[I].concat(b)):R.call(null,I)})(c,d,p):Nc(d).apply(null,p);function Xi(c,d){var p,g,I,b=(c=P(c)).includes("j")?(p=c,g=d,I=[],function(){return I.length=0,Object.assign(I,arguments),hl(p,g,I)}):Nc(d);return typeof b!="function"&&Ve(`unknown function pointer with signature ${c}: ${d}`),b}var Dc=void 0;function bs(c){var d=br(c),p=P(d);return Ct(d),p}function Rs(c,d){var p=[],g={};throw d.forEach(function I(b){g[b]||dr[b]||(Is[b]?Is[b].forEach(I):(p.push(b),g[b]=!0))}),new Dc(`${c}: `+p.map(bs).join([", "]))}function Ln(c,d){for(var p=[],g=0;g<c;g++)p.push(Pe[d+4*g>>2]);return p}function wc(c){for(;c.length;){var d=c.pop();c.pop()(d)}}function Un(c,d){if(!(c instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof c} which is not a function`);var p=Ss(c.name||"unknownFunctionName",function(){});p.prototype=c.prototype;var g=new p,I=c.apply(g,d);return I instanceof Object?I:g}function Qi(c,d,p,g,I,b){var R=d.length;R<2&&Ve("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var v=d[1]!==null&&p!==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 se=`
|
|
53
|
-
return function ${
|
|
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 ${kt(c)}(${ae}) {
|
|
54
54
|
if (arguments.length !== ${R-2}) {
|
|
55
55
|
throwBindingError('function ${c} called with ${arguments.length} arguments, expected ${R-2} args!');
|
|
56
|
-
}`;U&&(
|
|
57
|
-
`);var Ne=U?"destructors":"null",Fe=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],
|
|
58
|
-
`),L=0;L<R-2;++L)
|
|
59
|
-
`,Fe.push("argType"+L),
|
|
60
|
-
`,U)
|
|
61
|
-
`;else for(L=v?1:2;L<d.length;++L){var
|
|
62
|
-
`,Fe.push(
|
|
56
|
+
}`;U&&(ne+=`var destructors = [];
|
|
57
|
+
`);var Ne=U?"destructors":"null",Fe=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],we=[Ue,f,S,Fc,d[0],d[1]];for(v&&(ne+="var thisWired = classParam.toWireType("+Ne+`, this);
|
|
58
|
+
`),L=0;L<R-2;++L)ne+="var arg"+L+"Wired = argType"+L+".toWireType("+Ne+", arg"+L+"); // "+d[L+2].name+`
|
|
59
|
+
`,Fe.push("argType"+L),we.push(d[L+2]);if(v&&(ce="thisWired"+(ce.length>0?", ":"")+ce),ne+=(Z||b?"var rv = ":"")+"invoker(fn"+(ce.length>0?", ":"")+ce+`);
|
|
60
|
+
`,U)ne+=`runDestructors(destructors);
|
|
61
|
+
`;else for(L=v?1:2;L<d.length;++L){var nt=L===1?"thisWired":"arg"+(L-2)+"Wired";d[L].destructorFunction!==null&&(ne+=nt+"_dtor("+nt+"); // "+d[L].name+`
|
|
62
|
+
`,Fe.push(nt+"_dtor"),we.push(d[L].destructorFunction))}return Z&&(ne+=`var ret = retType.fromWireType(rv);
|
|
63
63
|
return ret;
|
|
64
|
-
`),
|
|
65
|
-
`,Fe.push(
|
|
66
|
-
`+d.replace(/^Error(:[^\n]*)?\n/,""))})).prototype=Object.create(
|
|
64
|
+
`),ne+=`}
|
|
65
|
+
`,Fe.push(ne),Bn(Function,Fe).apply(null,we)}function Ji(){this.allocated=[void 0],this.freelist=[]}var rr=new Ji;function $c(c){c>=rr.reserved&&--rr.get(c).refcount===0&&rr.free(c)}function Ds(){for(var c=0,d=rr.reserved;d<rr.allocated.length;++d)rr.allocated[d]!==void 0&&++c;return c}var ws={toValue:c=>(c||Ue("Cannot use deleted val. handle = "+c),rr.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 rr.allocate({refcount:1,value:c})}}};function ir(c){if(c===null)return"null";var d=typeof c;return d==="object"||d==="array"||d==="function"?c.toString():""+c}function Wn(c,d){switch(d){case 2:return function(h){return this.fromWireType(Dn[h>>2])};case 3:return function(h){return this.fromWireType(wn[h>>3])};default:throw new TypeError("Unknown float type: "+c)}}function Bc(c,d,h){switch(d){case 0:return h?function(f){return Y[f]}:function(f){return ue[f]};case 1:return h?function(f){return Se[f>>1]}:function(f){return Ke[f>>1]};case 2:return h?function(f){return W[f>>2]}:function(f){return Pe[f>>2]};default:throw new TypeError("Unknown integer type: "+c)}}var Gn=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,Hc=(c,d)=>{for(var h=c,f=h>>1,S=f+d/2;!(f>=S)&&Ke[f];)++f;if((h=f<<1)-c>32&&Gn)return Gn.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},I=(c,d,h)=>{if(h===void 0&&(h=2147483647),h<2)return 0;for(var f=d,S=(h-=2)<2*c.length?h/2:c.length,b=0;b<S;++b){var R=c.charCodeAt(b);Se[d>>1]=R,d+=2}return Se[d>>1]=0,d-f},_=c=>2*c.length,N=(c,d)=>{for(var h=0,f="";!(h>=d/4);){var S=W[c+4*h>>2];if(S==0)break;if(++h,S>=65536){var b=S-65536;f+=String.fromCharCode(55296|b>>10,56320|1023&b)}else f+=String.fromCharCode(S)}return f},P=(c,d,h)=>{if(h===void 0&&(h=2147483647),h<4)return 0;for(var f=d,S=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)),W[d>>2]=R,(d+=4)+4>S)break}return W[d>>2]=0,d-f},B=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},G={},z=[];function Q(c,d){var h=ur[c];return h===void 0&&Ue(d+" has unknown type "+Ns(c)),h}var re=[],j={},pe=()=>{if(!pe.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 j)j[d]===void 0?delete c[d]:c[d]=j[d];var h=[];for(var d in c)h.push(`${d}=${c[d]}`);pe.strings=h}return pe.strings},Ve,Ce,he,Oe=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},rt=365,Qe=146;Object.defineProperties(Oe.prototype,{read:{get:function(){return(this.mode&rt)===rt},set:function(c){c?this.mode|=rt:this.mode&=-366}},write:{get:function(){return(this.mode&Qe)===Qe},set:function(c){c?this.mode|=Qe:this.mode&=-147}},isFolder:{get:function(){return E.isDir(this.mode)}},isDevice:{get:function(){return E.isChrdev(this.mode)}}}),E.FSNode=Oe,E.createPreloadedFile=function(c,d,h,f,S,b,R,v,U,L){var Z=d?Xt.resolve(me.join2(c,d)):c;function ae(ce){function ne(Ne){L&&L(),v||E.createDataFile(c,d,Ne,f,S,U),b&&b(),Ao()}(function(Ne,Fe,we,nt){typeof Browser!="undefined"&&Browser.init();var ze=!1;return fl.forEach(function(Lt){ze||Lt.canHandle(Fe)&&(Lt.handle(Ne,Fe,we,nt),ze=!0)}),ze})(ce,Z,ne,()=>{R&&R(),Ao()})||ne(ce)}ys(),typeof h=="string"?pl(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);Ac=c})(),Gi=o.BindingError=class extends Error{constructor(c){super(c),this.name="BindingError"}},bc=o.InternalError=class extends Error{constructor(c){super(c),this.name="InternalError"}},_r.prototype.isAliasOf=Rc,_r.prototype.clone=Mc,_r.prototype.delete=Tl,_r.prototype.isDeleted=Oc,_r.prototype.deleteLater=xc,o.getInheritedInstanceCount=gl,o.getLiveInheritedInstances=El,o.flushPendingDeletes=tr,o.setDelayFunction=Dc,Ir.prototype.getPointee=Sl,Ir.prototype.destructor=Lc,Ir.prototype.argPackAdvance=8,Ir.prototype.readValueFromPointer=Oo,Ir.prototype.deleteObject=yl,Ir.prototype.fromWireType=wc,Vc=o.UnboundTypeError=(Ve=Error,(he=Rs(Ce="UnboundTypeError",function(c){this.name=Ce,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),he.prototype.constructor=he,he.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},he),Object.assign(Ji.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)}}),rr.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),rr.reserved=rr.allocated.length,o.count_emval_handles=Ds;var ft,Ye={p:function(c,d,h){throw new $i(c).init(d,h),c},C:function(c,d,h){St.varargs=h;try{var f=St.getStreamFromFD(c);switch(d){case 0:return(S=St.get())<0?-28:E.createStream(f,S).fd;case 1:case 2:case 6:case 7:return 0;case 3:return f.flags;case 4:var S=St.get();return f.flags|=S,0;case 5:return S=St.get(),Se[S+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return b=28,W[jn()>>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){St.varargs=f;try{d=St.getStr(d),d=St.calculateAt(c,d);var S=f?St.get():0;return E.open(d,h,S).fd}catch(b){if(E===void 0||b.name!=="ErrnoError")throw b;return-b.errno}},t:function(c,d,h,f,S){},n:function(c,d,h,f,S){var b=k(h);er(c,{name:d=Ct(d),fromWireType:function(R){return!!R},toWireType:function(R,v){return v?f:S},argPackAdvance:8,readValueFromPointer:function(R){var v;if(h===1)v=Y;else if(h===2)v=Se;else{if(h!==4)throw new TypeError("Unknown boolean type size: "+d);v=W}return this.fromWireType(v[R>>b])},destructorFunction:null})},r:function(c,d,h,f,S,b,R,v,U,L,Z,ae,ce){Z=Ct(Z),b=zi(S,b),v&&(v=zi(R,v)),L&&(L=zi(U,L)),ce=zi(ae,ce);var ne=kt(Z);(function(Ne,Fe,we){o.hasOwnProperty(Ne)?((we===void 0||o[Ne].overloadTable!==void 0&&o[Ne].overloadTable[we]!==void 0)&&Ue(`Cannot register public name '${Ne}' twice`),Pc(o,Ne,Ne),o.hasOwnProperty(we)&&Ue(`Cannot register multiple overloads of a function with the same number of arguments (${we})!`),o[Ne].overloadTable[we]=Fe):(o[Ne]=Fe,we!==void 0&&(o[Ne].numArguments=we))})(ne,function(){Fn(`Cannot construct ${Z} due to unbound types`,[f])}),Hr([c,d,h],f?[f]:[],function(Ne){var Fe,we;Ne=Ne[0],we=f?(Fe=Ne.registeredClass).instancePrototype:_r.prototype;var nt=Rs(ne,function(){if(Object.getPrototypeOf(this)!==ze)throw new Gi("Use 'new' to construct "+Z);if(Lt.constructor_body===void 0)throw new Gi(Z+" has no accessible constructor");var mt=Lt.constructor_body[arguments.length];if(mt===void 0)throw new Gi(`Tried to invoke ctor of ${Z} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(Lt.constructor_body).toString()}) parameters instead!`);return mt.apply(this,arguments)}),ze=Object.create(we,{constructor:{value:nt}});nt.prototype=ze;var Lt=new vs(Z,nt,ze,ce,Fe,b,v,L);Lt.baseClass&&(Lt.baseClass.__derivedClasses===void 0&&(Lt.baseClass.__derivedClasses=[]),Lt.baseClass.__derivedClasses.push(Lt));var Jn=new Ir(Z,Lt,!0,!1,!1),Ms=new Ir(Z+"*",Lt,!1,!1,!1),xo=new Ir(Z+" const*",Lt,!1,!0,!1);return Co[c]={pointerType:Ms,constPointerType:xo},(function(mt,jp,bl){o.hasOwnProperty(mt)||Kt("Replacing nonexistant public symbol"),o[mt].overloadTable!==void 0&&bl!==void 0?o[mt].overloadTable[bl]=jp:(o[mt]=jp,o[mt].argCount=bl)})(ne,nt),[Jn,Ms,xo]})},q:function(c,d,h,f,S,b){var R=$n(d,h);S=zi(f,S),Hr([],[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 Gi(`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]=()=>{Fn(`Cannot construct ${v.name} due to unbound types`,R)},Hr([],R,function(L){return L.splice(1,0,null),v.registeredClass.constructor_body[d-1]=Hn(U,L,null,S,b),[]}),[]})},d:function(c,d,h,f,S,b,R,v,U){var L=$n(h,f);d=Ct(d),b=zi(S,b),Hr([],[c],function(Z){var ae=`${(Z=Z[0]).name}.${d}`;function ce(){Fn(`Cannot call ${ae} due to unbound types`,L)}d.startsWith("@@")&&(d=Symbol[d.substring(2)]),v&&Z.registeredClass.pureVirtualFunctions.push(d);var ne=Z.registeredClass.instancePrototype,Ne=ne[d];return Ne===void 0||Ne.overloadTable===void 0&&Ne.className!==Z.name&&Ne.argCount===h-2?(ce.argCount=h-2,ce.className=Z.name,ne[d]=ce):(Pc(ne,d,ae),ne[d].overloadTable[h-2]=ce),Hr([],L,function(Fe){var we=Hn(ae,Fe,Z,b,R,U);return ne[d].overloadTable===void 0?(we.argCount=h-2,ne[d]=we):ne[d].overloadTable[h-2]=we,[]}),[]})},D:function(c,d){er(c,{name:d=Ct(d),fromWireType:function(h){var f=ws.toValue(h);return $c(h),f},toWireType:function(h,f){return ws.toHandle(f)},argPackAdvance:8,readValueFromPointer:Oo,destructorFunction:null})},k:function(c,d,h){var f=k(h);er(c,{name:d=Ct(d),fromWireType:function(S){return S},toWireType:function(S,b){return b},argPackAdvance:8,readValueFromPointer:Wn(d,f),destructorFunction:null})},c:function(c,d,h,f,S){d=Ct(d),S===-1&&(S=4294967295);var b=k(h),R=L=>L;if(f===0){var v=32-8*h;R=L=>L<<v>>>v}var U=d.includes("unsigned");er(c,{name:d,fromWireType:R,toWireType:U?function(L,Z){return this.name,Z>>>0}:function(L,Z){return this.name,Z},argPackAdvance:8,readValueFromPointer:Bc(d,b,f!==0),destructorFunction:null})},b:function(c,d,h){var f=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][d];function S(b){var R=Pe,v=R[b>>=2],U=R[b+1];return new f(R.buffer,U,v)}er(c,{name:h=Ct(h),fromWireType:S,argPackAdvance:8,readValueFromPointer:S},{ignoreDuplicateRegistrations:!0})},j:function(c,d){var h=(d=Ct(d))==="std::string";er(c,{name:d,fromWireType:function(f){var S,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 Z=Hi(v,L-v);S===void 0?S=Z:(S+="\0",S+=Z),v=L+1}}else{var ae=new Array(b);for(U=0;U<b;++U)ae[U]=String.fromCharCode(ue[R+U]);S=ae.join("")}return Sr(f),S},toWireType:function(f,S){var b;S instanceof ArrayBuffer&&(S=new Uint8Array(S));var R=typeof S=="string";R||S instanceof Uint8Array||S instanceof Uint8ClampedArray||S instanceof Int8Array||Ue("Cannot pass non-string to std::string"),b=h&&R?bo(S):S.length;var v=Wt(4+b+1),U=v+4;if(Pe[v>>2]=b,h&&R)Ro(S,ue,U,b+1);else if(R)for(var L=0;L<b;++L){var Z=S.charCodeAt(L);Z>255&&(Sr(U),Ue("String has UTF-16 code units that do not fit in 8 bits")),ue[U+L]=Z}else for(L=0;L<b;++L)ue[U+L]=S[L];return f!==null&&f.push(Sr,v),v},argPackAdvance:8,readValueFromPointer:Oo,destructorFunction:function(f){Sr(f)}})},f:function(c,d,h){var f,S,b,R,v;h=Ct(h),d===2?(f=Hc,S=I,R=_,b=()=>Ke,v=1):d===4&&(f=N,S=P,R=B,b=()=>Pe,v=2),er(c,{name:h,fromWireType:function(U){for(var L,Z=Pe[U>>2],ae=b(),ce=U+4,ne=0;ne<=Z;++ne){var Ne=U+4+ne*d;if(ne==Z||ae[Ne>>v]==0){var Fe=f(ce,Ne-ce);L===void 0?L=Fe:(L+="\0",L+=Fe),ce=Ne+d}}return Sr(U),L},toWireType:function(U,L){typeof L!="string"&&Ue(`Cannot pass non-string to C++ string type ${h}`);var Z=R(L),ae=Wt(4+Z+d);return Pe[ae>>2]=Z>>v,S(L,ae+4,Z+d),U!==null&&U.push(Sr,ae),ae},argPackAdvance:8,readValueFromPointer:Oo,destructorFunction:function(U){Sr(U)}})},o:function(c,d){er(c,{isVoid:!0,name:d=Ct(d),argPackAdvance:0,fromWireType:function(){},toWireType:function(h,f){}})},g:function(c,d,h,f){var S,b;(c=z[c])(d=ws.toValue(d),h=(b=G[S=h])===void 0?Ct(S):b,null,f)},m:$c,l:function(c,d){var h=(function(Fe,we){for(var nt=new Array(Fe),ze=0;ze<Fe;++ze)nt[ze]=Q(Pe[we+4*ze>>2],"parameter "+ze);return nt})(c,d),f=h[0],S=f.name+"_$"+h.slice(1).map(function(Fe){return Fe.name}).join("_")+"$",b=re[S];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 Z="return function "+kt("methodCaller_"+S)+`(handle, name, destructors, args) {
|
|
67
67
|
`,ae=0;for(L=0;L<c-1;++L)Z+=" var arg"+L+" = argType"+L+".readValueFromPointer(args"+(ae?"+"+ae:"")+`);
|
|
68
|
-
`,ae+=
|
|
69
|
-
`,L=0;L<c-1;++L)
|
|
70
|
-
`);
|
|
68
|
+
`,ae+=h[L+1].argPackAdvance;for(Z+=" var rv = handle[name]("+U+`);
|
|
69
|
+
`,L=0;L<c-1;++L)h[L+1].deleteObject&&(Z+=" argType"+L+".deleteObject(arg"+L+`);
|
|
70
|
+
`);f.isVoid||(Z+=` return retType.toWireType(destructors, rv);
|
|
71
71
|
`),Z+=`};
|
|
72
|
-
`,R.push(Z);var ce,se,Ne=Un(Function,R).apply(null,v);return ce=Ne,se=re.length,re.push(ce),b=se,W[I]=b,b},a:()=>{$r("")},e:function(){return Date.now()},v:()=>ue.length,A:(c,d,p)=>ue.copyWithin(c,d,d+p),u:c=>{ue.length,$r("OOM")},y:(c,d)=>{var p=0;return we().forEach(function(g,I){var b=d+p;Pe[c+4*I>>2]=b,((R,v)=>{for(var U=0;U<R.length;++U)te[0|v++]=R.charCodeAt(U);te[0|v]=0})(g,b),p+=g.length+1}),0},z:(c,d)=>{var p=we();Pe[c>>2]=p.length;var g=0;return p.forEach(function(I){g+=I.length+1}),Pe[d>>2]=g,0},i:function(c){try{var d=yt.getStreamFromFD(c);return E.close(d),0}catch(p){if(E===void 0||p.name!=="ErrnoError")throw p;return p.errno}},x:function(c,d){try{var p=yt.getStreamFromFD(c),g=p.tty?2:E.isDir(p.mode)?3:E.isLink(p.mode)?7:4;return te[d|0]=g,ye[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)],Y[d+8>>2]=Ke[0],Y[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)],Y[d+16>>2]=Ke[0],Y[d+20>>2]=Ke[1],0}catch(I){if(E===void 0||I.name!=="ErrnoError")throw I;return I.errno}},B:function(c,d,p,g){try{var I=((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 se=E.read(b,te,ae,ce,U);if(se<0)return-1;if(L+=se,se<ce)break;U!==void 0&&(U+=se)}return L})(yt.getStreamFromFD(c),d,p);return Pe[g>>2]=I,0}catch(b){if(E===void 0||b.name!=="ErrnoError")throw b;return b.errno}},s:function(c,d,p,g,I){var b,R,v=(R=p)+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,g),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)],Y[I>>2]=Ke[0],Y[I+4>>2]=Ke[1],U.getdents&&v===0&&g===0&&(U.getdents=null),0}catch(L){if(E===void 0||L.name!=="ErrnoError")throw L;return L.errno}},h:function(c,d,p,g){try{var I=((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 se=E.write(b,te,ae,ce,U);if(se<0)return-1;L+=se,U!==void 0&&(U+=se)}return L})(yt.getStreamFromFD(c),d,p);return Pe[g>>2]=I,0}catch(b){if(E===void 0||b.name!=="ErrnoError")throw b;return b.errno}}},Zi=(function(){var c,d,p,g,I={a:wt};function b(R,v){var U,L,Z=R.exports;return w=(x=Z).E,U=w.buffer,o.HEAP8=te=new Int8Array(U),o.HEAP16=ye=new Int16Array(U),o.HEAP32=Y=new Int32Array(U),o.HEAPU8=ue=new Uint8Array(U),o.HEAPU16=Ie=new Uint16Array(U),o.HEAPU32=Pe=new Uint32Array(U),o.HEAPF32=Cn=new Float32Array(U),o.HEAPF64=Nn=new Float64Array(U),Dn=x.H,L=x.F,Ts.unshift(L),bo(),Z}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=ci,p=I,g=function(R){b(R.instance)},c||typeof WebAssembly.instantiateStreaming!="function"||kt(d)||typeof fetch!="function"?Br(d,p,g):fetch(d,{credentials:"same-origin"}).then(R=>WebAssembly.instantiateStreaming(R,p).then(g,function(v){return N("wasm streaming compile failed: "+v),N("falling back to ArrayBuffer instantiation"),Br(d,p,g)}))).catch(r)}(),c=>(Zi=x.G)(c)),Ct=c=>(Ct=x.I)(c),Vn=()=>(Vn=x.J)(),br=c=>(br=x.K)(c),Fn=(o.__embind_initialize_bindings=()=>(o.__embind_initialize_bindings=x.L)(),c=>(Fn=x.M)(c));o.dynCall_jiji=(c,d,p,g,I)=>(o.dynCall_jiji=x.N)(c,d,p,g,I),o._ff_h264_cabac_tables=67061;function Cs(){function c(){Je||(Je=!0,o.calledRun=!0,wn||(o.noFSInit||E.init.initialized||E.init(),E.ignorePermissions=!1,Ir.init(),Bi(Ts),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(),$i.unshift(d);var d;Bi($i)}()))}cr>0||(function(){if(o.preRun)for(typeof o.preRun=="function"&&(o.preRun=[o.preRun]);o.preRun.length;)d=o.preRun.shift(),Fr.unshift(d);var d;Bi(Fr)}(),cr>0||(o.setStatus?(o.setStatus("Running..."),setTimeout(function(){setTimeout(function(){o.setStatus("")},1),c()},1)):c()))}if(ai=function c(){Je||Cs(),Je||(ai=c)},o.preInit)for(typeof o.preInit=="function"&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return Cs(),t.ready}})(),cy=ay,dy=class extends Ka{constructor(i){super(cy,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)}},Ox=(()=>{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,_)=>{e=S,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=S=>{var _=new XMLHttpRequest;return _.open("GET",S,!1),_.responseType="arraybuffer",_.send(null),new Uint8Array(_.response)}));var h,f=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&&(h=o.wasmBinary);var A,C;o.noExitRuntime,typeof WebAssembly!="object"&&cr("no native wasm support detected");var N,w,x,te,ue,ye,Ie,Y,Pe,Cn=!1,Nn=[],Dn=[],wn=[],Fr=0,Ts=null,$i=null;function cr(S){o.onAbort&&o.onAbort(S),T(S="Aborted("+S+")"),Cn=!0,S+=". Build with -sASSERTIONS for more info.";var _=new WebAssembly.RuntimeError(S);throw r(_),_}var ni,ai;function ie(S){return S.startsWith("data:application/octet-stream;base64,")}function bo(S){if(S==ni&&h)return new Uint8Array(h);if(s)return s(S);throw"both async and sync fetching of the wasm failed"}function $r(S,_,D){return function(k){return h||!a&&!u||typeof fetch!="function"?Promise.resolve().then(()=>bo(k)):fetch(k,{credentials:"same-origin"}).then(B=>{if(!B.ok)throw"failed to load wasm binary file at '"+k+"'";return B.arrayBuffer()}).catch(()=>bo(k))}(S).then(k=>WebAssembly.instantiate(k,_)).then(k=>k).then(D,k=>{T("failed to asynchronously prepare wasm: "+k),cr(k)})}ie(ni="videodec_simd.wasm")||(ai=ni,ni=o.locateFile?o.locateFile(ai,m):m+ai);var ci=S=>{for(;S.length>0;)S.shift()(o)};function Mn(S){this.excPtr=S,this.ptr=S-24,this.set_type=function(_){ye[this.ptr+4>>2]=_},this.get_type=function(){return ye[this.ptr+4>>2]},this.set_destructor=function(_){ye[this.ptr+8>>2]=_},this.get_destructor=function(){return ye[this.ptr+8>>2]},this.set_caught=function(_){_=_?1:0,N[this.ptr+12|0]=_},this.get_caught=function(){return N[this.ptr+12|0]!=0},this.set_rethrown=function(_){_=_?1:0,N[this.ptr+13|0]=_},this.get_rethrown=function(){return N[this.ptr+13|0]!=0},this.init=function(_,D){this.set_adjusted_ptr(0),this.set_type(_),this.set_destructor(D)},this.set_adjusted_ptr=function(_){ye[this.ptr+16>>2]=_},this.get_adjusted_ptr=function(){return ye[this.ptr+16>>2]},this.get_exception_ptr=function(){if(xc(this.get_type()))return ye[this.excPtr>>2];var _=this.get_adjusted_ptr();return _!==0?_: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 _="",D=S;w[D];)_+=Ke[w[D++]];return _}var J={},Br={},Bi={},Hi=void 0;function me(S){throw new Hi(S)}var On=void 0;function Xt(S){throw new On(S)}function Wi(S,_,D){function k(Q){var re=D(Q);re.length!==S.length&&Xt("Mismatched type converter count");for(var W=0;W<S.length;++W)Pt(S[W],re[W])}S.forEach(function(Q){Bi[Q]=_});var B=new Array(_.length),H=[],z=0;_.forEach((Q,re)=>{Br.hasOwnProperty(Q)?B[re]=Br[Q]:(H.push(Q),J.hasOwnProperty(Q)||(J[Q]=[]),J[Q].push(()=>{B[re]=Br[Q],++z===H.length&&k(B)}))}),H.length===0&&k(B)}function Pt(S,_,D={}){if(!("argPackAdvance"in _))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(k,B,H={}){var z=B.name;if(k||me(`type "${z}" must have a positive integer typeid pointer`),Br.hasOwnProperty(k)){if(H.ignoreDuplicateRegistrations)return;me(`Cannot register type '${z}' twice`)}if(Br[k]=B,delete Bi[k],J.hasOwnProperty(k)){var Q=J[k];delete J[k],Q.forEach(re=>re())}}(S,_,D)}function xn(S){if(!(this instanceof er)||!(S instanceof er))return!1;for(var _=this.$$.ptrType.registeredClass,D=this.$$.ptr,k=S.$$.ptrType.registeredClass,B=S.$$.ptr;_.baseClass;)D=_.upcast(D),_=_.baseClass;for(;k.baseClass;)B=k.upcast(B),k=k.baseClass;return _===k&&D===B}function Ro(S){me(S.$$.ptrType.registeredClass.name+" instance already deleted")}var vo=!1;function _s(S){}function Ir(S){S.count.value-=1,S.count.value===0&&function(_){_.smartPtr?_.smartPtrType.rawDestructor(_.smartPtr):_.ptrType.registeredClass.rawDestructor(_.ptr)}(S)}function kn(S,_,D){if(_===D)return S;if(D.baseClass===void 0)return null;var k=kn(S,_,D.baseClass);return k===null?null:D.downcast(k)}var G={};function sl(){return Object.keys(ui).length}function nl(){var S=[];for(var _ in ui)ui.hasOwnProperty(_)&&S.push(ui[_]);return S}var di=[];function E(){for(;di.length;){var S=di.pop();S.$$.deleteScheduled=!1,S.delete()}}var Gi=void 0;function yt(S){Gi=S,di.length&&Gi&&Gi(E)}var ui={};function hc(S,_){return _=function(D,k){for(k===void 0&&me("ptr should not be undefined");D.baseClass;)k=D.upcast(k),D=D.baseClass;return k}(S,_),ui[_]}function P(S,_){return _.ptrType&&_.ptr||Xt("makeClassHandle requires ptr and ptrType"),!!_.smartPtrType!=!!_.smartPtr&&Xt("Both smartPtrType and smartPtr must be specified"),_.count={value:1},dr(Object.create(S,{$$:{value:_}}))}function ji(S){var _=this.getPointee(S);if(!_)return this.destructor(S),null;var D=hc(this.registeredClass,_);if(D!==void 0){if(D.$$.count.value===0)return D.$$.ptr=_,D.$$.smartPtr=S,D.clone();var k=D.clone();return this.destructor(S),k}function B(){return this.isSmartPointer?P(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:_,smartPtrType:this,smartPtr:S}):P(this.registeredClass.instancePrototype,{ptrType:this,ptr:S})}var H,z=this.registeredClass.getActualType(_),Q=G[z];if(!Q)return B.call(this);H=this.isConst?Q.constPointerType:Q.pointerType;var re=kn(_,this.registeredClass,H.registeredClass);return re===null?B.call(this):this.isSmartPointer?P(H.registeredClass.instancePrototype,{ptrType:H,ptr:re,smartPtrType:this,smartPtr:S}):P(H.registeredClass.instancePrototype,{ptrType:H,ptr:re})}var dr=function(S){return typeof FinalizationRegistry=="undefined"?(dr=_=>_,S):(vo=new FinalizationRegistry(_=>{Ir(_.$$)}),_s=_=>vo.unregister(_),(dr=_=>{var D=_.$$;if(D.smartPtr){var k={$$:D};vo.register(_,k,_)}return _})(S))};function Is(){if(this.$$.ptr||Ro(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var S,_=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 _.$$.count.value+=1,_.$$.deleteScheduled=!1,_}function qi(){this.$$.ptr||Ro(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&me("Object already scheduled for deletion"),_s(this),Ir(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Ve(){return!this.$$.ptr}function fc(){return this.$$.ptr||Ro(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&me("Object already scheduled for deletion"),di.push(this),di.length===1&&Gi&&Gi(E),this.$$.deleteScheduled=!0,this}function er(){}function Hr(S){if(S===void 0)return"_unknown";var _=(S=S.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return _>=48&&_<=57?`_${S}`:S}function tr(S,_){return S=Hr(S),{[S]:function(){return _.apply(this,arguments)}}[S]}function gc(S,_,D){if(S[_].overloadTable===void 0){var k=S[_];S[_]=function(){return S[_].overloadTable.hasOwnProperty(arguments.length)||me(`Function '${D}' called with an invalid number of arguments (${arguments.length}) - expects one of (${S[_].overloadTable})!`),S[_].overloadTable[arguments.length].apply(this,arguments)},S[_].overloadTable=[],S[_].overloadTable[k.argCount]=k}}function Pn(S,_,D,k,B,H,z,Q){this.name=S,this.constructor=_,this.instancePrototype=D,this.rawDestructor=k,this.baseClass=B,this.getActualType=H,this.upcast=z,this.downcast=Q,this.pureVirtualFunctions=[]}function Co(S,_,D){for(;_!==D;)_.upcast||me(`Expected null or instance of ${D.name}, got an instance of ${_.name}`),S=_.upcast(S),_=_.baseClass;return S}function Ec(S,_){if(_===null)return this.isReference&&me(`null is not a valid ${this.name}`),0;_.$$||me(`Cannot pass "${Oo(_)}" as a ${this.name}`),_.$$.ptr||me(`Cannot pass deleted object as a pointer of type ${this.name}`);var D=_.$$.ptrType.registeredClass;return Co(_.$$.ptr,D,this.registeredClass)}function Tc(S,_){var D;if(_===null)return this.isReference&&me(`null is not a valid ${this.name}`),this.isSmartPointer?(D=this.rawConstructor(),S!==null&&S.push(this.rawDestructor,D),D):0;_.$$||me(`Cannot pass "${Oo(_)}" 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 k=_.$$.ptrType.registeredClass;if(D=Co(_.$$.ptr,k,this.registeredClass),this.isSmartPointer)switch(_.$$.smartPtr===void 0&&me("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:_.$$.smartPtrType===this?D=_.$$.smartPtr:me(`Cannot convert argument of type ${_.$$.smartPtrType?_.$$.smartPtrType.name:_.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:D=_.$$.smartPtr;break;case 2:if(_.$$.smartPtrType===this)D=_.$$.smartPtr;else{var B=_.clone();D=this.rawShare(D,ys.toHandle(function(){B.delete()})),S!==null&&S.push(this.rawDestructor,D)}break;default:me("Unsupporting sharing policy")}return D}function _c(S,_){if(_===null)return this.isReference&&me(`null is not a valid ${this.name}`),0;_.$$||me(`Cannot pass "${Oo(_)}" 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 D=_.$$.ptrType.registeredClass;return Co(_.$$.ptr,D,this.registeredClass)}function No(S){return this.fromWireType(ue[S>>2])}function al(S){return this.rawGetPointee&&(S=this.rawGetPointee(S)),S}function cl(S){this.rawDestructor&&this.rawDestructor(S)}function Do(S){S!==null&&S.delete()}function rr(S,_,D,k,B,H,z,Q,re,W,he){this.name=S,this.registeredClass=_,this.isReference=D,this.isConst=k,this.isSmartPointer=B,this.pointeeType=H,this.sharingPolicy=z,this.rawGetPointee=Q,this.rawConstructor=re,this.rawShare=W,this.rawDestructor=he,B||_.baseClass!==void 0?this.toWireType=Tc:k?(this.toWireType=Ec,this.destructorFunction=null):(this.toWireType=_c,this.destructorFunction=null)}var Wr=[],Ic=S=>{var _=Wr[S];return _||(S>=Wr.length&&(Wr.length=S+1),Wr[S]=_=Pe.get(S)),_},wo=(S,_,D)=>S.includes("j")?((k,B,H)=>{var z=o["dynCall_"+k];return H&&H.length?z.apply(null,[B].concat(H)):z.call(null,B)})(S,_,D):Ic(_).apply(null,D);function zi(S,_){var D,k,B,H=(S=kt(S)).includes("j")?(D=S,k=_,B=[],function(){return B.length=0,Object.assign(B,arguments),wo(D,k,B)}):Ic(_);return typeof H!="function"&&me(`unknown function pointer with signature ${S}: ${_}`),H}var Mo=void 0;function Sc(S){var _=vs(S),D=kt(_);return Ar(_),D}function Ji(S,_){var D=[],k={};throw _.forEach(function B(H){k[H]||Br[H]||(Bi[H]?Bi[H].forEach(B):(D.push(H),k[H]=!0))}),new Mo(`${S}: `+D.map(Sc).join([", "]))}function yc(S,_){for(var D=[],k=0;k<S;k++)D.push(ye[_+4*k>>2]);return D}function dl(S){for(;S.length;){var _=S.pop();S.pop()(_)}}function Ac(S,_){if(!(S instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof S} which is not a function`);var D=tr(S.name||"unknownFunctionName",function(){});D.prototype=S.prototype;var k=new D,B=S.apply(k,_);return B instanceof Object?B:k}function bc(S,_,D,k,B,H){var z=_.length;z<2&&me("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var Q=_[1]!==null&&D!==null,re=!1,W=1;W<_.length;++W)if(_[W]!==null&&_[W].destructorFunction===void 0){re=!0;break}var he=_[0].name!=="void",we="",Ce="";for(W=0;W<z-2;++W)we+=(W!==0?", ":"")+"arg"+W,Ce+=(W!==0?", ":"")+"arg"+W+"Wired";var ge=`
|
|
73
|
-
return function ${Hr(
|
|
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 ${Hr(I)}(${Ve}) {
|
|
74
74
|
if (arguments.length !== ${z-2}) {
|
|
75
|
-
throwBindingError('function ${
|
|
76
|
-
}`;re&&(
|
|
77
|
-
`);var
|
|
78
|
-
`),
|
|
79
|
-
`,rt.push("argType"+
|
|
80
|
-
`,re)
|
|
81
|
-
`;else for(
|
|
82
|
-
`,rt.push(
|
|
75
|
+
throwBindingError('function ${I} called with ${arguments.length} arguments, expected ${z-2} args!');
|
|
76
|
+
}`;re&&(he+=`var destructors = [];
|
|
77
|
+
`);var Oe=re?"destructors":"null",rt=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],Qe=[me,P,B,Tl,_[0],_[1]];for(Q&&(he+="var thisWired = classParam.toWireType("+Oe+`, this);
|
|
78
|
+
`),j=0;j<z-2;++j)he+="var arg"+j+"Wired = argType"+j+".toWireType("+Oe+", arg"+j+"); // "+_[j+2].name+`
|
|
79
|
+
`,rt.push("argType"+j),Qe.push(_[j+2]);if(Q&&(Ce="thisWired"+(Ce.length>0?", ":"")+Ce),he+=(pe||G?"var rv = ":"")+"invoker(fn"+(Ce.length>0?", ":"")+Ce+`);
|
|
80
|
+
`,re)he+=`runDestructors(destructors);
|
|
81
|
+
`;else for(j=Q?1:2;j<_.length;++j){var ft=j===1?"thisWired":"arg"+(j-2)+"Wired";_[j].destructorFunction!==null&&(he+=ft+"_dtor("+ft+"); // "+_[j].name+`
|
|
82
|
+
`,rt.push(ft+"_dtor"),Qe.push(_[j].destructorFunction))}return pe&&(he+=`var ret = retType.fromWireType(rv);
|
|
83
83
|
return ret;
|
|
84
|
-
`),
|
|
85
|
-
`,rt.push(
|
|
86
|
-
`+_.replace(/^Error(:[^\n]*)?\n/,""))})).prototype=Object.create(
|
|
87
|
-
`,
|
|
88
|
-
`,
|
|
89
|
-
`,
|
|
90
|
-
`);
|
|
91
|
-
`),
|
|
92
|
-
`,z.push(he);var Ce,ge,Me=Ac(Function,z).apply(null,Q);return Ce=Me,ge=bs.length,bs.push(Ce),H=ge,Rs[B]=H,H},f:()=>{cr("")},c:Ln,t:(S,_,D)=>w.copyWithin(S,_,_+D),s:S=>{w.length,cr("OOM")},i:(S,_,D,k)=>{for(var B,H,z,Q=0,re=0;re<D;re++){var W=ye[_>>2],he=ye[_+4>>2];_+=8;for(var we=0;we<he;we++)B=S,H=w[W+we],z=void 0,z=Mc[B],H===0||H===10?((B===1?f:T)(xo(z,0)),z.length=0):z.push(H);Q+=he}return ye[k>>2]=Q,0}},Ar=(function(){var S,_,D,k,B={a:Oc};function H(z,Q){var re,W,he=z.exports;return A=(C=he).v,re=A.buffer,o.HEAP8=N=new Int8Array(re),o.HEAP16=x=new Int16Array(re),o.HEAP32=ue=new Int32Array(re),o.HEAPU8=w=new Uint8Array(re),o.HEAPU16=te=new Uint16Array(re),o.HEAPU32=ye=new Uint32Array(re),o.HEAPF32=Ie=new Float32Array(re),o.HEAPF64=Y=new Float64Array(re),Pe=C.z,W=C.w,Dn.unshift(W),function(){if(Fr--,o.monitorRunDependencies&&o.monitorRunDependencies(Fr),Fr==0&&(Ts!==null&&(clearInterval(Ts),Ts=null),$i)){var we=$i;$i=null,we()}}(),he}if(Fr++,o.monitorRunDependencies&&o.monitorRunDependencies(Fr),o.instantiateWasm)try{return o.instantiateWasm(B,H)}catch(z){T("Module.instantiateWasm callback failed with error: "+z),r(z)}(S=h,_=ni,D=B,k=function(z){H(z.instance)},S||typeof WebAssembly.instantiateStreaming!="function"||ie(_)||typeof fetch!="function"?$r(_,D,k):fetch(_,{credentials:"same-origin"}).then(z=>WebAssembly.instantiateStreaming(z,D).then(k,function(Q){return T("wasm streaming compile failed: "+Q),T("falling back to ArrayBuffer instantiation"),$r(_,D,k)}))).catch(r)}(),S=>(Ar=C.x)(S)),Yi=S=>(Yi=C.y)(S),vs=S=>(vs=C.A)(S),xc=(o.__embind_initialize_bindings=()=>(o.__embind_initialize_bindings=C.B)(),S=>(xc=C.C)(S));o.dynCall_jiji=(S,_,D,k,B)=>(o.dynCall_jiji=C.D)(S,_,D,k,B);function kc(){function S(){Ut||(Ut=!0,o.calledRun=!0,Cn||(ci(Dn),e(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for(typeof o.postRun=="function"&&(o.postRun=[o.postRun]);o.postRun.length;)_=o.postRun.shift(),wn.unshift(_);var _;ci(wn)}()))}Fr>0||(function(){if(o.preRun)for(typeof o.preRun=="function"&&(o.preRun=[o.preRun]);o.preRun.length;)_=o.preRun.shift(),Nn.unshift(_);var _;ci(Nn)}(),Fr>0||(o.setStatus?(o.setStatus("Running..."),setTimeout(function(){setTimeout(function(){o.setStatus("")},1),S()},1)):S()))}if($i=function S(){Ut||kc(),Ut||($i=S)},o.preInit)for(typeof o.preInit=="function"&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return kc(),t.ready}})();var uy="web.sdk.qcloud.com",ly=`https://${uy}/trtc/webrtc/v5/doc`,xx=`${ly}/zh-cn/`,eE=(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))(eE||{});var tE={"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}},kx=tE["480p_2"],Px=tE["120p_2"],Au={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"},Lx=Au.MAIN,Ux=Au.AUXILIARY,Vx=Au.BIG,Fx=Au.SMALL;var $x=Object.keys(eE);var my=function(i,t,e,r){return new(e||(e=Promise))(function(o,s){function n(m){try{u(r.next(m))}catch(h){s(h)}}function a(m){try{u(r.throw(m))}catch(h){s(h)}}function u(m){var h;m.done?o(m.value):(h=m.value,h instanceof e?h:new e(function(f){f(h)})).then(n,a)}u((r=r.apply(i,t||[])).next())})},Jp=Symbol(32),Xp=Symbol(16),Qp=Symbol(8),zp=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 my(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(Jp)}readU16(){return this.read(Xp)}readU8(){return this.read(Qp)}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===Jp){if(r(4))return;i=t[0]<<24|t[1]<<16|t[2]<<8|t[3]}else if(this.need===Xp){if(r(2))return;i=t[0]<<8|t[1]}else if(this.need===Qp){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}};zp.U32=Jp,zp.U16=Xp,zp.U8=Qp;var py=127,Bx=~py,Hx=Math.pow(2,31),Wx=typeof window!="undefined"&&typeof window.glog=="function"?window.glog:()=>{},Gx=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype;function Yg(){return performance&&performance.now?Math.floor(performance.now()):Date.now()}var{toString:jx}=Object.prototype,ms,Zp=(ms=class{constructor(t){l(this,"contextMap",new Map);l(this,"decodeProcessorMap",new WeakMap);this.core=t,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 ms.Name}getValidateRule(t){return{type:this.core.enums.BASIC_TYPE.Object}}createDecoder(t,e){switch(t){case"wasm":return new dy(pe(j({},e),{wasmPath:`${this.core.assetsPath||"."}/videodec.wasm`}));case"webCodecs":return new In;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(pe(j({},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=Yg()-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(pe(j({},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?Yg()-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)}},l(ms,"Name","TRTCVideoDecoder"),ms);var ME=mi(yi());function Kp({timesInSecond:i,maxSizeInSecond:t,getSize:e}){return xe((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 hy="2025-08-22 11:10:30",rE=!0,iE=function(){var i;if(rE){rE=!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:",nt),xr||$.debug("Build Time:",hy);let t=`UA: ${navigator.userAgent}
|
|
93
|
-
CPU core: ${navigator.hardwareConcurrency}, GPU: ${im()}`,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 Tr={SCENE_LIVE:"live",SCENE_RTC:"rtc",ROLE_ANCHOR:"anchor",ROLE_AUDIENCE:"audience",STREAM_TYPE_MAIN:"main",STREAM_TYPE_SUB:"sub",AUDIO_PROFILE_STANDARD:"standard",AUDIO_PROFILE_STANDARD_STEREO:"standard-stereo",AUDIO_PROFILE_HIGH:"high",AUDIO_PROFILE_HIGH_STEREO:"high-stereo",QOS_PREFERENCE_SMOOTH:"smooth",QOS_PREFERENCE_CLEAR:"clear",SPEAKER:"Speakerphone",HEADSET:"Headset earpiece"};var ne={INVALID_PARAMETER:5e3,INVALID_OPERATION:5100,ENV_NOT_SUPPORTED:5200,DEVICE_ERROR:5300,SERVER_ERROR:5400,OPERATION_FAILED:5500,OPERATION_ABORT:5998,UNKNOWN_ERROR:5999},_r=(P=>(P[P.INVALID_PARAMETER=5e3]="INVALID_PARAMETER",P[P.INVALID_PARAMETER_REQUIRED=5001]="INVALID_PARAMETER_REQUIRED",P[P.INVALID_PARAMETER_TYPE=5002]="INVALID_PARAMETER_TYPE",P[P.INVALID_PARAMETER_EMPTY=5003]="INVALID_PARAMETER_EMPTY",P[P.INVALID_PARAMETER_INSTANCE=5004]="INVALID_PARAMETER_INSTANCE",P[P.INVALID_PARAMETER_RANGE=5005]="INVALID_PARAMETER_RANGE",P[P.INVALID_PARAMETER_LESS_THAN_ZERO=5006]="INVALID_PARAMETER_LESS_THAN_ZERO",P[P.INVALID_PARAMETER_MIN=5007]="INVALID_PARAMETER_MIN",P[P.INVALID_PARAMETER_MAX=5008]="INVALID_PARAMETER_MAX",P[P.INVALID_ELEMENT_ID=5009]="INVALID_ELEMENT_ID",P[P.INVALID_ELEMENT_ID_TYPE=5010]="INVALID_ELEMENT_ID_TYPE",P[P.INVALID_STREAM_ID=5011]="INVALID_STREAM_ID",P[P.INVALID_ROOM_ID_STRING=5012]="INVALID_ROOM_ID_STRING",P[P.INVALID_ROOM_ID_INTEGER=5013]="INVALID_ROOM_ID_INTEGER",P[P.INVALID_STREAM_TYPE=5014]="INVALID_STREAM_TYPE",P[P.INVALID_ROOM_ID_REQUIRED=5015]="INVALID_ROOM_ID_REQUIRED",P[P.INVALID_ROOM_ID_INTEGER_STRING=5016]="INVALID_ROOM_ID_INTEGER_STRING",P[P.INVALID_BUFFER_EMPTY=5017]="INVALID_BUFFER_EMPTY",P[P.INVALID_BUFFER_OVERSIZE=5018]="INVALID_BUFFER_OVERSIZE",P[P.INVALID_ROOM_ID_TYPE_MISMATCH=5019]="INVALID_ROOM_ID_TYPE_MISMATCH",P[P.INVALID_ROOM_ID_DUPLICATE=5020]="INVALID_ROOM_ID_DUPLICATE",P[P.INVALID_OPERATION=5100]="INVALID_OPERATION",P[P.INVALID_OPERATION_NOT_JOINED=5101]="INVALID_OPERATION_NOT_JOINED",P[P.INVALID_OPERATION_REMOTE_USER_NOT_EXIST=5102]="INVALID_OPERATION_REMOTE_USER_NOT_EXIST",P[P.INVALID_OPERATION_STREAM_TYPE_NOT_EXIST=5103]="INVALID_OPERATION_STREAM_TYPE_NOT_EXIST",P[P.INVALID_OPERATION_REPEAT_CALL=5104]="INVALID_OPERATION_REPEAT_CALL",P[P.INVALID_OPERATION_NEED_VIDEO=5105]="INVALID_OPERATION_NEED_VIDEO",P[P.INVALID_OPERATION_NEED_AUDIO=5106]="INVALID_OPERATION_NEED_AUDIO",P[P.INVALID_ROLE_AUDIENCE=5107]="INVALID_ROLE_AUDIENCE",P[P.INVALID_NOT_ENABLE_SEI=5108]="INVALID_NOT_ENABLE_SEI",P[P.INVALID_NEED_CALL_PUBLISHED=5109]="INVALID_NEED_CALL_PUBLISHED",P[P.ENV_NOT_SUPPORTED=5200]="ENV_NOT_SUPPORTED",P[P.NOT_SUPPORTED_HTTP=5201]="NOT_SUPPORTED_HTTP",P[P.NOT_SUPPORTED_WEBRTC=5202]="NOT_SUPPORTED_WEBRTC",P[P.NOT_SUPPORTED_H264_ENCODE=5203]="NOT_SUPPORTED_H264_ENCODE",P[P.NOT_SUPPORTED_H264_DECODE=5204]="NOT_SUPPORTED_H264_DECODE",P[P.NOT_SUPPORTED_SCREEN_SHARE=5205]="NOT_SUPPORTED_SCREEN_SHARE",P[P.NOT_SUPPORTED_SMALL_VIDEO=5206]="NOT_SUPPORTED_SMALL_VIDEO",P[P.NOT_SUPPORTED_SEI=5207]="NOT_SUPPORTED_SEI",P[P.NOT_SUPPORTED_WEBGL=5208]="NOT_SUPPORTED_WEBGL",P[P.NOT_SUPPORTED_CHROME_VERSION=5209]="NOT_SUPPORTED_CHROME_VERSION",P[P.NOT_SUPPORTED_PLUGIN=5210]="NOT_SUPPORTED_PLUGIN",P[P.DEVICE_ERROR=5300]="DEVICE_ERROR",P[P.DEVICE_NOT_FOUND_ERROR=5301]="DEVICE_NOT_FOUND_ERROR",P[P.DEVICE_NOT_ALLOWED_ERROR=5302]="DEVICE_NOT_ALLOWED_ERROR",P[P.DEVICE_NOT_READABLE_ERROR=5303]="DEVICE_NOT_READABLE_ERROR",P[P.DEVICE_OVERCONSTRAINED_ERROR=5304]="DEVICE_OVERCONSTRAINED_ERROR",P[P.DEVICE_INVALID_STATE_ERROR=5305]="DEVICE_INVALID_STATE_ERROR",P[P.DEVICE_SECURITY_ERROR=5306]="DEVICE_SECURITY_ERROR",P[P.DEVICE_ABORT_ERROR=5307]="DEVICE_ABORT_ERROR",P[P.CAMERA_RECOVER_FAILED=5308]="CAMERA_RECOVER_FAILED",P[P.MICROPHONE_RECOVER_FAILED=5309]="MICROPHONE_RECOVER_FAILED",P[P.SERVER_ERROR=5400]="SERVER_ERROR",P[P.NEED_TO_BUY=5401]="NEED_TO_BUY",P[P.ACCOUNT_NO_MONEY=-100013]="ACCOUNT_NO_MONEY",P[P.OPERATION_FAILED=5500]="OPERATION_FAILED",P[P.FIREWALL_RESTRICTION=5501]="FIREWALL_RESTRICTION",P[P.REJOIN_FAILED=5502]="REJOIN_FAILED",P[P.EVENT_HANDLER_ERROR=5503]="EVENT_HANDLER_ERROR",P[P.VIDEO_CONTEXT_ERROR=5504]="VIDEO_CONTEXT_ERROR",P[P.VIDEO_ENCODE_FAILED=5505]="VIDEO_ENCODE_FAILED",P[P.AUDIO_ENCODE_FAILED=5506]="AUDIO_ENCODE_FAILED",P[P.VIDEO_DECODE_FAILED=5507]="VIDEO_DECODE_FAILED",P[P.AUDIO_DECODE_FAILED=5508]="AUDIO_DECODE_FAILED",P[P.OPERATION_ABORT=5998]="OPERATION_ABORT",P[P.UNKNOWN_ERROR=5999]="UNKNOWN_ERROR",P))(_r||{});function sE({code:i,params:t,enableDocLink:e=!1}){let r="",o,s=_r[i];try{o=oE[s]}catch(n){o=oE.UNKNOWN_ERROR}return We(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 oE=pe(j({},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: ${at(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: ${at(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=ps(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=ps(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=ps(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=ps(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=ps(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=ps(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=ps(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 ps(i){if(!i)return"camera";let t=i.toLowerCase();return t.includes("screen")?"screen share":t.includes("audio")?"microphone":"camera"}var eh=class i extends Error{constructor({code:e,extraCode:r,message:o="",messageParams:s,fnName:n="",originError:a,data:u}){var h;let m;o?m=o:m=sE({code:e===ne.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=_r[e],this.code=e,this.extraCode=r,this.functionName=n,this.originError=a,this.message=m,this.data=u,this.extraCode===5302&&((h=this.originError)!=null&&h.message.includes("system"))&&(this.handler=()=>{let f={startLocalVideo:"Camera",startLocalAudio:"Microphone",startScreenShare:"ScreenCapture"},T={startLocalVideo:"webcam",startLocalAudio:"microphone"},A=document.createElement("a");jo?A.href=`ms-settings:privacy-${T[this.functionName]}`:Mr&&(A.href=`x-apple.systempreferences:com.apple.preference.security?Privacy_${f[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:ne.UNKNOWN_ERROR,fnName:r,originError:e};switch(e.getCode()){case q.INVALID_PARAMETER:a.code=ne.INVALID_PARAMETER,a.message=e.message;break;case q.INVALID_OPERATION:a.code=ne.INVALID_OPERATION;break;case q.NOT_SUPPORTED:case q.NOT_SUPPORTED_H264:a.code=ne.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=ne.SERVER_ERROR,a.extraCode=e.getExtraCode();break;case q.API_CALL_ABORTED:a.code=ne.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=fy(e.name));break;case q.VIDEO_ENCODE_FAILED:a.extraCode=5505;case q.AUDIO_ENCODE_FAILED:a.extraCode=5506,a.code=ne.OPERATION_FAILED;break;case q.UNKNOWN:break;default:a.code=ne.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:ne.UNKNOWN_ERROR,fnName:r,originError:e})}return s}};function fy(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=eh;function ii(i){return i==="sub"?"auxiliary":i==="auxiliary"?"sub":"main"}function rc(i){return i===Tr.QOS_PREFERENCE_CLEAR?"detail":i===Tr.QOS_PREFERENCE_SMOOTH?"motion":""}function Sn(i,t){let e=t?yl:qn;return Hl(i)?j(j({},e),i):vr[i]?vr[i]:e}var nE={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}}},aE={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}}},yn={type:["string",HTMLElement,null,"array"],arrayItem:{instanceOf:HTMLElement},validate(i,t,e){if(De(i)&&!document.getElementById(i))throw new oe({code:ne.INVALID_PARAMETER,extraCode:5009,fnName:e,messageParams:{key:t}})}},cE={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:{values:[Tr.AUDIO_PROFILE_STANDARD,Tr.AUDIO_PROFILE_STANDARD_STEREO,Tr.AUDIO_PROFILE_HIGH,Tr.AUDIO_PROFILE_HIGH_STEREO]},echoCancellation:{type:"boolean"},autoGainControl:{type:"boolean"},noiseSuppression:{type:"boolean"}}};function An(i,t){if(!i)throw new oe({code:ne.INVALID_OPERATION,extraCode:5101,fnName:t})}function uE(i,t,e){if(!i)throw new oe({code:ne.INVALID_OPERATION,extraCode:5102,fnName:t,messageParams:{value:e}})}function lE(i,t,e){if(!(/^[1-9]\d*$/.test(String(i))&&i<4294967295))throw new oe({code:ne.INVALID_PARAMETER,extraCode:5013,fnName:t,messageParams:{key:e}})}function mE(i,t,e){if(!/^[A-Za-z\d\s!#$%&()+\-:;<=.>?@[\]^_{}|~,]{1,64}$/.test(i))throw new oe({code:ne.INVALID_PARAMETER,extraCode:5012,fnName:t,messageParams:{key:e}})}var hP={type:"number",notLessThanZero:!0},gy=(i,t)=>i.width*i.height>=t.width*t.height&&i.frameRate>=t.frameRate&&i.bitrate>=t.bitrate;function pE(i){var r;if(!((r=i==null?void 0:i.option)!=null&&r.small))return;if(!Pd()){$.warn("small stream is not supported"),delete i.option.small;return}let t=Sn(i.option.profile),e=Sn(i.option.small,!0);if(!gy(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 Ey={create:[{name:"RoomConfig",instanceOf:Function},{name:"CreateConfig",type:"object",properties:{plugins:{type:"array",arrayItem:{instanceOf:Function}}}}],enterRoom:{name:"EnterRoomConfig",type:"object",required:!0,validate(i,t,e){if(this._room.isJoined)throw new oe({code:ne.INVALID_OPERATION,extraCode:5104,fnName:e});if(i.roomId){if(De(i.roomId))throw new oe({code:ne.INVALID_PARAMETER,extraCode:5016,fnName:e,messageParams:{key:t}});lE(i.roomId,e,t)}else if(i.strRoomId)mE(i.strRoomId,e,t);else throw new oe({code:ne.INVALID_PARAMETER,extraCode:5015,fnName:e})},properties:{sdkAppId:{required:!0,type:"number",allowEmpty:!1},userId:{required:!0,type:"string",allowEmpty:!1},userSig:{required:!0,type:"string",allowEmpty:!1},scene:{type:"string",values:["live","rtc"]},role:{type:"string",values:["audience","anchor"]},roomId:{type:["string","number"]},strRoomId:{type:"string"},proxy:{type:["object","string"],properties:{websocketProxy:{type:"string"},turnServer:{type:["object","array"],properties:{url:{required:!0,type:"string"},username:{type:"string"},credential:{type:"string"},credentialType:{type:"string",values:["password"]}}},loggerProxy:{type:"string"},webtransportProxy:{type:"string"}}},enableAutoPlayDialog:{type:"boolean"},userDefineRecordId:{type:"string"},latencyLevel:{type:"number"},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:yn,mute:{type:["boolean","string"]},publish:{type:"boolean"},capture:{required:!1,type:"boolean"},option:nE},validate(i){var t,e;if(!((t=i==null?void 0:i.option)!=null&&t.videoTrack)&&Ni())throw new oe({code:ne.ENV_NOT_SUPPORTED,extraCode:5201});(e=i==null?void 0:i.option)!=null&&e.small&&pE(i)}},updateLocalVideo:{name:"updateLocalVideoConfig",type:"object",required:!0,properties:{view:pe(j({},yn),{required:!1}),publish:{type:"boolean"},capture:{required:!1,type:"boolean"},mute:{type:["boolean","string"]},option:nE},validate(i){var t;(t=i==null?void 0:i.option)!=null&&t.small&&pE(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)&&Ni())throw new oe({code:ne.ENV_NOT_SUPPORTED,extraCode:5201})}},updateLocalAudio:{name:"updateLocalAudioConfig",type:"object",required:!0,properties:{publish:{type:"boolean"},mute:{type:"boolean"},option:dE}},startScreenShare:{name:"ScreenShareConfig",type:"object",properties:{view:yn,publish:{type:"boolean"},option:aE},validate(i,t,e,r,o){var s;if(!((s=i==null?void 0:i.option)!=null&&s.videoTrack)){if(Ni())throw new oe({code:ne.ENV_NOT_SUPPORTED,extraCode:5201});if(!Ca())throw new oe({code:ne.ENV_NOT_SUPPORTED,fnName:e,extraCode:5205})}}},updateScreenShare:{name:"updateScreenShareConfig",type:"object",required:!0,properties:{view:yn,publish:{type:"boolean"},option:aE}},muteRemoteAudio:[cE,{name:"mute",required:!0,type:"boolean"}],setRemoteAudioVolume:[cE,{name:"volume",required:!0,type:"number",min:0}],startRemoteVideo:{name:"startRemoteVideoConfig",type:"object",required:!0,properties:{view:yn,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){An(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(uE(!!r,e,i),r&&(i.streamType==="main"&&!r.muteState.videoAvailable||i.streamType==="sub"&&!r.muteState.hasAuxiliary))throw new oe({code:ne.INVALID_OPERATION,extraCode:5103,fnName:e,messageParams:{value:i}})}},updateRemoteVideo:{name:"updateRemoteVideoConfig",type:"object",required:!0,properties:{view:pe(j({},yn),{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){An(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(uE(!!r,e,i),r&&(i.streamType==="main"&&!r.muteState.videoAvailable||i.streamType==="sub"&&!r.muteState.hasAuxiliary))throw new oe({code:ne.INVALID_OPERATION,extraCode:5103,fnName:e,messageParams:{value:i}})}},stopRemoteVideo:{name:"stopRemoteVideoConfig",type:"object",required:!0,properties:{userId:{type:"string",required:!0},streamType:{values:["main","sub"]}},validate(i,t,e){if(i.userId!=="*"&&O(i.streamType))throw new oe({code:ne.INVALID_PARAMETER,extraCode:5014,fnName:e})}},switchRole:{name:"role",required:!0,values:["anchor","audience"],validate(i,t,e){An(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(!wa)throw new oe({code:ne.ENV_NOT_SUPPORTED,fnName:e,extraCode:5207});if(!this._room.enableSEI)throw new oe({code:ne.INVALID_OPERATION,fnName:e,extraCode:5108});if(i.byteLength>1e3)throw new oe({code:ne.INVALID_PARAMETER,extraCode:5018,fnName:e});if(i.byteLength===0)throw new oe({code:ne.INVALID_PARAMETER,extraCode:5017,messageParams:{key:t},fnName:e});An(this._room.isJoined,e)}},{name:"options",type:"object",properties:{seiPayloadType:{type:"number",values:[5,243]},toSubStream:{type:"boolean",validate(i,t,e){if(!i&&!this._room.isMainStreamPublished||i&&!this._room.isAuxStreamPublished)throw new oe({code:ne.INVALID_OPERATION,extraCode:5109,messageParams:{key:t},fnName:e})}}}}],sendCustomMessage:{name:"message",required:!0,type:"object",properties:{cmdId:{type:"number",required:!0,min:1,max:10},data:{instanceOf:ArrayBuffer,required:!0,validate(i,t,e,r){if(i.byteLength>1e3)throw new oe({code:ne.INVALID_PARAMETER,extraCode:5018,fnName:e});if(i.byteLength===0)throw new oe({code:ne.INVALID_PARAMETER,extraCode:5017,fnName:e,messageParams:{key:t}})}}},validate(i,t,e){if(An(this._room.isJoined,e),this._room.scene==="live"&&this._room.role==="audience")throw new oe({code:ne.INVALID_OPERATION,extraCode:5107,fnName:e,messageParams:{key:t}})}},switchRoom:{name:"switchRoomConfig",type:"object",required:!0,validate(i,t,e){if(An(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:ne.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:ne.INVALID_PARAMETER,extraCode:5019,fnName:e,messageParams:{key:this._room.useStringRoomId?"strRoomId":"roomId"}});if(i.roomId)lE(i.roomId,e,t);else if(i.strRoomId)mE(i.strRoomId,e,t);else throw new oe({code:ne.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:Ey};var Wt=class extends Error{};function Ty(i,t){let e=Fo(i);for(let r=0;r<t.length;r++)Nr(e[r],t[r]);return e}function _y(i){this._resolve=Promise.resolve(i)}function Iy(i){this._reject=Promise.reject(i)}var Eo=class Eo{constructor(t,e){this.instance=t;this.group=e;l(this,"started",!1);l(this,"ops",[]);l(this,"startSame",()=>!0);l(this,"mergeUpdate",Ty);let r=Eo.instances.get(t);r?r.set(e,this):Eo.instances.set(t,new Map([[e,this]]))}static get(t,e){if(!e)return;let r=Eo.instances.get(t);return r&&r.get(e)||new Eo(t,e)}static gets(t,e){let r=Eo.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 Wt("start failed")),(m=this.currentOp)==null||m.action(),a},n={type:t,action:()=>e(...n.args).then(o,s),args:r,resolve:_y,reject:Iy};try{switch(this.state){case 1:if(t===0)throw new Wt("already started");break;case 4:if(t===2)throw new Wt("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 Wt("already start");break;case 3:switch(t.type){case 2:throw new Wt("update not allowed when stopping");case 3:return this.currentOp.promise}break;default:throw new Wt("unknown state")}else switch(t.type){case 3:switch(this.lastOpType){case 3:return this.lastOp.promise;default:let r=new Wt("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 Wt("update not allowed after stop")}break;case 0:switch(this.lastOpType){case 2:throw new Wt("start not allowed after update");case 0:throw new Wt("duplicate start");case 3:if(this.startSame(this.currentOp.args,t.args))throw this.ops.pop().reject(new Wt("keep start")),new Wt("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(Eo,"instances",new WeakMap);var Li=Eo;var bu=new WeakMap,Ru=(i,t)=>{if(t instanceof Wt){let{stack:e}=t;t=new oe({code:ne.OPERATION_ABORT,message:`${i} abort: ${t.message}`,fnName:i}),e&&(t.stack+=e.substr(e.indexOf(`
|
|
95
|
-
`)))}throw t};function
|
|
96
|
-
`));function
|
|
84
|
+
`),he+=`}
|
|
85
|
+
`,rt.push(he),Oc(Function,rt).apply(null,Qe)}function _r(){this.allocated=[void 0],this.freelist=[]}var kt=new _r;function Rs(I){I>=kt.reserved&&--kt.get(I).refcount===0&&kt.free(I)}function Pc(){for(var I=0,_=kt.reserved;_<kt.allocated.length;++_)kt.allocated[_]!==void 0&&++I;return I}var vs={toValue:I=>(I||me("Cannot use deleted val. handle = "+I),kt.get(I).value),toHandle:I=>{switch(I){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return kt.allocate({refcount:1,value:I})}}};function Mo(I){if(I===null)return"null";var _=typeof I;return _==="object"||_==="array"||_==="function"?I.toString():""+I}function _l(I,_){switch(_){case 2:return function(N){return this.fromWireType(Ke[N>>2])};case 3:return function(N){return this.fromWireType(W[N>>3])};default:throw new TypeError("Unknown float type: "+I)}}function Il(I,_,N){switch(_){case 0:return N?function(P){return D[P]}:function(P){return w[P]};case 1:return N?function(P){return O[P>>1]}:function(P){return Y[P>>1]};case 2:return N?function(P){return ue[P>>2]}:function(P){return Se[P>>2]};default:throw new TypeError("Unknown integer type: "+I)}}var kc=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,Oo=(I,_,N)=>{for(var P=_+N,B=_;I[B]&&!(B>=P);)++B;if(B-_>16&&I.buffer&&kc)return kc.decode(I.subarray(_,B));for(var G="";_<B;){var z=I[_++];if(128&z){var Q=63&I[_++];if((224&z)!=192){var re=63&I[_++];if((z=(240&z)==224?(15&z)<<12|Q<<6|re:(7&z)<<18|Q<<12|re<<6|63&I[_++])<65536)G+=String.fromCharCode(z);else{var j=z-65536;G+=String.fromCharCode(55296|j>>10,56320|1023&j)}}else G+=String.fromCharCode((31&z)<<6|Q)}else G+=String.fromCharCode(z)}return G},Sl=(I,_)=>I?Oo(w,I,_):"",Lc=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,yl=(I,_)=>{for(var N=I,P=N>>1,B=P+_/2;!(P>=B)&&Y[P];)++P;if((N=P<<1)-I>32&&Lc)return Lc.decode(w.subarray(I,N));for(var G="",z=0;!(z>=_/2);++z){var Q=O[I+2*z>>1];if(Q==0)break;G+=String.fromCharCode(Q)}return G},Ir=(I,_,N)=>{if(N===void 0&&(N=2147483647),N<2)return 0;for(var P=_,B=(N-=2)<2*I.length?N/2:I.length,G=0;G<B;++G){var z=I.charCodeAt(G);O[_>>1]=z,_+=2}return O[_>>1]=0,_-P},Cs=I=>2*I.length,Uc=(I,_)=>{for(var N=0,P="";!(N>=_/4);){var B=ue[I+4*N>>2];if(B==0)break;if(++N,B>=65536){var G=B-65536;P+=String.fromCharCode(55296|G>>10,56320|1023&G)}else P+=String.fromCharCode(B)}return P},Al=(I,_,N)=>{if(N===void 0&&(N=2147483647),N<4)return 0;for(var P=_,B=P+N-4,G=0;G<I.length;++G){var z=I.charCodeAt(G);if(z>=55296&&z<=57343&&(z=65536+((1023&z)<<10)|1023&I.charCodeAt(++G)),ue[_>>2]=z,(_+=4)+4>B)break}return ue[_>>2]=0,_-P},zi=I=>{for(var _=0,N=0;N<I.length;++N){var P=I.charCodeAt(N);P>=55296&&P<=57343&&++N,_+=4}return _},Vc={},Ns=[];function Fn(I,_){var N=Br[I];return N===void 0&&me(_+" has unknown type "+wc(I)),N}var $n=[],Fc;Fc=()=>performance.now();var Bn,Hn,Ji,rr=[null,[],[]],$c=(I,_)=>{var N=rr[I];_===0||_===10?((I===1?g:T)(Oo(N,0)),N.length=0):N.push(_)};(function(){for(var I=new Array(256),_=0;_<256;++_)I[_]=String.fromCharCode(_);H=I})(),$i=o.BindingError=class extends Error{constructor(I){super(I),this.name="BindingError"}},kn=o.InternalError=class extends Error{constructor(I){super(I),this.name="InternalError"}},Kt.prototype.isAliasOf=Ln,Kt.prototype.clone=bs,Kt.prototype.delete=Gi,Kt.prototype.isDeleted=Ue,Kt.prototype.deleteLater=bc,o.getInheritedInstanceCount=pl,o.getLiveInheritedInstances=fl,o.flushPendingDeletes=E,o.setDelayFunction=St,tr.prototype.getPointee=gl,tr.prototype.destructor=El,tr.prototype.argPackAdvance=8,tr.prototype.readValueFromPointer=Co,tr.prototype.deleteObject=No,tr.prototype.fromWireType=Wi,wo=o.UnboundTypeError=(Bn=Error,(Ji=er(Hn="UnboundTypeError",function(I){this.name=Hn,this.message=I;var _=new Error(I).stack;_!==void 0&&(this.stack=this.toString()+`
|
|
86
|
+
`+_.replace(/^Error(:[^\n]*)?\n/,""))})).prototype=Object.create(Bn.prototype),Ji.prototype.constructor=Ji,Ji.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},Ji),Object.assign(_r.prototype,{get(I){return this.allocated[I]},has(I){return this.allocated[I]!==void 0},allocate(I){var _=this.freelist.pop()||this.allocated.length;return this.allocated[_]=I,_},free(I){this.allocated[I]=void 0,this.freelist.push(I)}}),kt.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),kt.reserved=kt.allocated.length,o.count_emval_handles=Pc;var Ds,ws={o:function(I,_,N){throw new Pn(I).init(_,N),I},r:function(I,_,N,P,B){},m:function(I,_,N,P,B){var G=Te(N);Pt(I,{name:_=xt(_),fromWireType:function(z){return!!z},toWireType:function(z,Q){return Q?P:B},argPackAdvance:8,readValueFromPointer:function(z){var Q;if(N===1)Q=D;else if(N===2)Q=O;else{if(N!==4)throw new TypeError("Unknown boolean type size: "+_);Q=ue}return this.fromWireType(Q[z>>G])},destructorFunction:null})},q:function(I,_,N,P,B,G,z,Q,re,j,pe,Ve,Ce){pe=xt(pe),G=ji(B,G),Q&&(Q=ji(z,Q)),j&&(j=ji(re,j)),Ce=ji(Ve,Ce);var he=Hr(pe);(function(Oe,rt,Qe){o.hasOwnProperty(Oe)?((Qe===void 0||o[Oe].overloadTable!==void 0&&o[Oe].overloadTable[Qe]!==void 0)&&me(`Cannot register public name '${Oe}' twice`),Rc(o,Oe,Oe),o.hasOwnProperty(Qe)&&me(`Cannot register multiple overloads of a function with the same number of arguments (${Qe})!`),o[Oe].overloadTable[Qe]=rt):(o[Oe]=rt,Qe!==void 0&&(o[Oe].numArguments=Qe))})(he,function(){qi(`Cannot construct ${pe} due to unbound types`,[P])}),Bi([I,_,N],P?[P]:[],function(Oe){var rt,Qe;Oe=Oe[0],Qe=P?(rt=Oe.registeredClass).instancePrototype:Kt.prototype;var ft=er(he,function(){if(Object.getPrototypeOf(this)!==Ye)throw new $i("Use 'new' to construct "+pe);if(Wt.constructor_body===void 0)throw new $i(pe+" has no accessible constructor");var yr=Wt.constructor_body[arguments.length];if(yr===void 0)throw new $i(`Tried to invoke ctor of ${pe} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(Wt.constructor_body).toString()}) parameters instead!`);return yr.apply(this,arguments)}),Ye=Object.create(Qe,{constructor:{value:ft}});ft.prototype=Ye;var Wt=new Vn(pe,ft,Ye,Ce,rt,G,Q,j);Wt.baseClass&&(Wt.baseClass.__derivedClasses===void 0&&(Wt.baseClass.__derivedClasses=[]),Wt.baseClass.__derivedClasses.push(Wt));var Sr=new tr(pe,Wt,!0,!1,!1),jn=new tr(pe+"*",Wt,!1,!1,!1),qn=new tr(pe+" const*",Wt,!1,!0,!1);return Re[I]={pointerType:jn,constPointerType:qn},(function(yr,zn,c){o.hasOwnProperty(yr)||Xt("Replacing nonexistant public symbol"),o[yr].overloadTable!==void 0&&c!==void 0?o[yr].overloadTable[c]=zn:(o[yr]=zn,o[yr].argCount=c)})(he,ft),[Sr,jn,qn]})},p:function(I,_,N,P,B,G){var z=Mc(_,N);B=ji(P,B),Bi([],[I],function(Q){var re=`constructor ${(Q=Q[0]).name}`;if(Q.registeredClass.constructor_body===void 0&&(Q.registeredClass.constructor_body=[]),Q.registeredClass.constructor_body[_-1]!==void 0)throw new $i(`Cannot register multiple constructors with identical number of parameters (${_-1}) for class '${Q.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return Q.registeredClass.constructor_body[_-1]=()=>{qi(`Cannot construct ${Q.name} due to unbound types`,z)},Bi([],z,function(j){return j.splice(1,0,null),Q.registeredClass.constructor_body[_-1]=xc(re,j,null,B,G),[]}),[]})},d:function(I,_,N,P,B,G,z,Q,re){var j=Mc(N,P);_=xt(_),G=ji(B,G),Bi([],[I],function(pe){var Ve=`${(pe=pe[0]).name}.${_}`;function Ce(){qi(`Cannot call ${Ve} due to unbound types`,j)}_.startsWith("@@")&&(_=Symbol[_.substring(2)]),Q&&pe.registeredClass.pureVirtualFunctions.push(_);var he=pe.registeredClass.instancePrototype,Oe=he[_];return Oe===void 0||Oe.overloadTable===void 0&&Oe.className!==pe.name&&Oe.argCount===N-2?(Ce.argCount=N-2,Ce.className=pe.name,he[_]=Ce):(Rc(he,_,Ve),he[_].overloadTable[N-2]=Ce),Bi([],j,function(rt){var Qe=xc(Ve,rt,pe,G,z,re);return he[_].overloadTable===void 0?(Qe.argCount=N-2,he[_]=Qe):he[_].overloadTable[N-2]=Qe,[]}),[]})},u:function(I,_){Pt(I,{name:_=xt(_),fromWireType:function(N){var P=vs.toValue(N);return Rs(N),P},toWireType:function(N,P){return vs.toHandle(P)},argPackAdvance:8,readValueFromPointer:Co,destructorFunction:null})},k:function(I,_,N){var P=Te(N);Pt(I,{name:_=xt(_),fromWireType:function(B){return B},toWireType:function(B,G){return G},argPackAdvance:8,readValueFromPointer:_l(_,P),destructorFunction:null})},b:function(I,_,N,P,B){_=xt(_),B===-1&&(B=4294967295);var G=Te(N),z=j=>j;if(P===0){var Q=32-8*N;z=j=>j<<Q>>>Q}var re=_.includes("unsigned");Pt(I,{name:_,fromWireType:z,toWireType:re?function(j,pe){return this.name,pe>>>0}:function(j,pe){return this.name,pe},argPackAdvance:8,readValueFromPointer:Il(_,G,P!==0),destructorFunction:null})},a:function(I,_,N){var P=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][_];function B(G){var z=Se,Q=z[G>>=2],re=z[G+1];return new P(z.buffer,re,Q)}Pt(I,{name:N=xt(N),fromWireType:B,argPackAdvance:8,readValueFromPointer:B},{ignoreDuplicateRegistrations:!0})},j:function(I,_){var N=(_=xt(_))==="std::string";Pt(I,{name:_,fromWireType:function(P){var B,G=Se[P>>2],z=P+4;if(N)for(var Q=z,re=0;re<=G;++re){var j=z+re;if(re==G||w[j]==0){var pe=Sl(Q,j-Q);B===void 0?B=pe:(B+="\0",B+=pe),Q=j+1}}else{var Ve=new Array(G);for(re=0;re<G;++re)Ve[re]=String.fromCharCode(w[z+re]);B=Ve.join("")}return ir(P),B},toWireType:function(P,B){var G;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"),G=N&&z?(Ve=>{for(var Ce=0,he=0;he<Ve.length;++he){var Oe=Ve.charCodeAt(he);Oe<=127?Ce++:Oe<=2047?Ce+=2:Oe>=55296&&Oe<=57343?(Ce+=4,++he):Ce+=3}return Ce})(B):B.length;var Q=Wn(4+G+1),re=Q+4;if(Se[Q>>2]=G,N&&z)((Ve,Ce,he,Oe)=>{if(!(Oe>0))return 0;for(var rt=he,Qe=he+Oe-1,ft=0;ft<Ve.length;++ft){var Ye=Ve.charCodeAt(ft);if(Ye>=55296&&Ye<=57343&&(Ye=65536+((1023&Ye)<<10)|1023&Ve.charCodeAt(++ft)),Ye<=127){if(he>=Qe)break;Ce[he++]=Ye}else if(Ye<=2047){if(he+1>=Qe)break;Ce[he++]=192|Ye>>6,Ce[he++]=128|63&Ye}else if(Ye<=65535){if(he+2>=Qe)break;Ce[he++]=224|Ye>>12,Ce[he++]=128|Ye>>6&63,Ce[he++]=128|63&Ye}else{if(he+3>=Qe)break;Ce[he++]=240|Ye>>18,Ce[he++]=128|Ye>>12&63,Ce[he++]=128|Ye>>6&63,Ce[he++]=128|63&Ye}}Ce[he]=0})(B,w,re,G+1);else if(z)for(var j=0;j<G;++j){var pe=B.charCodeAt(j);pe>255&&(ir(re),me("String has UTF-16 code units that do not fit in 8 bits")),w[re+j]=pe}else for(j=0;j<G;++j)w[re+j]=B[j];return P!==null&&P.push(ir,Q),Q},argPackAdvance:8,readValueFromPointer:Co,destructorFunction:function(P){ir(P)}})},g:function(I,_,N){var P,B,G,z,Q;N=xt(N),_===2?(P=yl,B=Ir,z=Cs,G=()=>Y,Q=1):_===4&&(P=Uc,B=Al,z=zi,G=()=>Se,Q=2),Pt(I,{name:N,fromWireType:function(re){for(var j,pe=Se[re>>2],Ve=G(),Ce=re+4,he=0;he<=pe;++he){var Oe=re+4+he*_;if(he==pe||Ve[Oe>>Q]==0){var rt=P(Ce,Oe-Ce);j===void 0?j=rt:(j+="\0",j+=rt),Ce=Oe+_}}return ir(re),j},toWireType:function(re,j){typeof j!="string"&&me(`Cannot pass non-string to C++ string type ${N}`);var pe=z(j),Ve=Wn(4+pe+_);return Se[Ve>>2]=pe>>Q,B(j,Ve+4,pe+_),re!==null&&re.push(ir,Ve),Ve},argPackAdvance:8,readValueFromPointer:Co,destructorFunction:function(re){ir(re)}})},n:function(I,_){Pt(I,{isVoid:!0,name:_=xt(_),argPackAdvance:0,fromWireType:function(){},toWireType:function(N,P){}})},e:function(I,_,N,P){var B,G;(I=Ns[I])(_=vs.toValue(_),N=(G=Vc[B=N])===void 0?xt(B):G,null,P)},l:Rs,h:function(I,_){var N=(function(rt,Qe){for(var ft=new Array(rt),Ye=0;Ye<rt;++Ye)ft[Ye]=Fn(Se[Qe+4*Ye>>2],"parameter "+Ye);return ft})(I,_),P=N[0],B=P.name+"_$"+N.slice(1).map(function(rt){return rt.name}).join("_")+"$",G=$n[B];if(G!==void 0)return G;for(var z=["retType"],Q=[P],re="",j=0;j<I-1;++j)re+=(j!==0?", ":"")+"arg"+j,z.push("argType"+j),Q.push(N[1+j]);var pe="return function "+Hr("methodCaller_"+B)+`(handle, name, destructors, args) {
|
|
87
|
+
`,Ve=0;for(j=0;j<I-1;++j)pe+=" var arg"+j+" = argType"+j+".readValueFromPointer(args"+(Ve?"+"+Ve:"")+`);
|
|
88
|
+
`,Ve+=N[j+1].argPackAdvance;for(pe+=" var rv = handle[name]("+re+`);
|
|
89
|
+
`,j=0;j<I-1;++j)N[j+1].deleteObject&&(pe+=" argType"+j+".deleteObject(arg"+j+`);
|
|
90
|
+
`);P.isVoid||(pe+=` return retType.toWireType(destructors, rv);
|
|
91
|
+
`),pe+=`};
|
|
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 go(i,t){return Me((e,r)=>function(...o){let s=ki.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(Pu.bind(null,r))):e.apply(this,o)})}function Ts(i,t){let{merge:e,debounce:r}=t||{};return Me((o,s)=>function(...n){let a=ki.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,D;let T=(C=xu.get(this))==null?void 0:C.get(m(...n));if(T){let{timeoutId:w,resolve:O}=T;clearTimeout(w),O()}let A=setTimeout(()=>{if(a.state===3||a.state===4)return p();a.action(2,o.bind(this),n).catch(Pu.bind(null,s)).then(p,g)},u);xu.has(this)?(D=xu.get(this))==null||D.set(m(...n),{timeoutId:A,resolve:p}):xu.set(this,new Map([[m(...n),{timeoutId:A,resolve:p}]]))})}return a.action(2,o.bind(this),n).catch(Pu.bind(null,s))})}function Eo(i){return Me((t,e)=>function(...r){let o=typeof i=="function"?i.call(this,...r):i;if(o instanceof RegExp)return Promise.all(ki.gets(this,o).map(n=>n.action(3,()=>Promise.resolve(),r))).then(()=>t.call(this,...r));let s=ki.get(this,o);return s?s.action(3,t.bind(this),r).catch(Pu.bind(null,e)):t.apply(this,r)})}var ee={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"},PE=new Set([ee.ERROR,ee.AUTOPLAY_FAILED,ee.KICKED_OUT,ee.REMOTE_USER_ENTER,ee.REMOTE_USER_EXIT,ee.REMOTE_AUDIO_AVAILABLE,ee.REMOTE_AUDIO_UNAVAILABLE,ee.REMOTE_VIDEO_AVAILABLE,ee.REMOTE_VIDEO_UNAVAILABLE,ee.CONNECTION_STATE_CHANGED,ee.PUBLISH_STATE_CHANGED,ee.SCREEN_SHARE_STOPPED,ee.DEVICE_CHANGED,ee.FIRST_VIDEO_FRAME,ee.PERMISSION_STATE_CHANGE,ee.VIDEO_SIZE_CHANGED]);var gp={};di(gp,{ScheduleRequestType:()=>LE,getAbilityConfig:()=>zy,getScheduleDomain:()=>Uu,isNeedToSchedule:()=>ku,scheduleProxy:()=>ii,sendScheduleRequest:()=>fp,setIsNeedToSchedule:()=>_s,setScheduleProxy:()=>Lu});var pp=null,ku=!0;typeof document!="undefined"&&document.head.insertAdjacentHTML("beforeend",Object.values(pi).map(i=>`<link rel="dns-prefetch" href="https://${i}">`).join(`\r
|
|
96
|
+
`));function _s(i){Ze(i)&&i!==ku&&(ku=i,$.info(`setIsNeedToSchedule ${i}`))}V.on("28",()=>_s(!0));V.on("63",()=>_s(!0));V.on("84",()=>_s(!0));V.on("201",i=>{i.state==="RECONNECTING"&&_s(!0)});V.on("202",i=>{i.state==="RECONNECTING"&&_s(!0)});function qy(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=To(i,"config",M.MAIN),n=To(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,T=a.fetchStart>0?Math.round(a.domainLookupStart-a.fetchStart):0,A=Math.round(a.domainLookupEnd-a.domainLookupStart),C=Math.round(a.requestStart-a.secureConnectionStart),D=Math.round(a.secureConnectionStart-a.connectStart),w=Math.round(a.responseStart-a.requestStart),O=Math.round(a.responseEnd-a.responseStart),Y=[A,C,D,w,O];Je.uploadEvent({log:`stat-schedule-net:${m}(${p}(${g}->${T})->${Y.join("->")}) ${u}`,userId:t}),r=ge(J({},r),{totalCost:m,local:p,dns:A,tcp:D,tls:C,request:w,response:O});break}}catch(o){$.error("getScheduleDetailCost error",o)}return r}function fp(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(!ku&&pp)return{isCached:!0,result:pp};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 T=yield jo();T!=null&&T.model&&g.append("model",String(T==null?void 0:T.model)),a&&g.append("role",String(a)),u&&g.append("latencyLevel",String(u)),n&&g.append("frameWorkType",String(n));let A=_e(),C=yield Xy(g,p,t);C.config&&(C.config.loggerDomain&&Po(C.config.loggerDomain),Ze(C.config.scheduleCache)&&_s(!C.config.scheduleCache)),p.delta=_e()-A;let D=qy(Number(t),i,A);return pp=C,{isCached:!1,result:C,detailCost:D}}catch(g){let T=ot(g)?g[0]:g,A=ke(T.code)?T.code:0,C=`schedule failed${T.message?`: ${T.message}`:""}`,D=new de({code:q.SCHEDULE_FAILED,extraCode:A,message:Be({key:$e.JOIN_ROOM_FAILED,data:{error:C,code:A}})});throw $.error(C,A),D}})}var ii={main:"",backup:""};function Lu(i){ot(i)?(ii.main=i[0],ii.backup=i[1]):ii.main=i}var LE=(r=>(r.CONFIG="config",r.TRTC_AUTO_CONF="trtcAutoConf",r.AUDIO_AI_AUTH="audioAiAuth",r))(LE||{});function To(i,t,e=M.MAIN,r=!1){return`https://${ii[e]||Uu(i,e,r)}/api/v1/${t}`}function zy(i,t,e){let r=To(i,t),o=To(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 ca([n,a])}function Uu(i,t=M.MAIN,e=!1){let r;return fi(i)?e?r=t===M.MAIN?pi.MAIN_OVERSEA_BACKUP:pi.BACKUP_OVERSEA:r=t===M.MAIN?pi.MAIN_OVERSEA:pi.BACKUP_OVERSEA:r=t===M.MAIN?pi.MAIN:pi.BACKUP,r}function Jy(i,t,e){return new Promise((r,o)=>{Ti({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 kE=(i,t)=>Ki({retryFunction:Jy,settings:{retries:3,timeout:0},onError:t,onRetrying:i});function Xy(i,t,e){return new Promise((r,o)=>{let s=null;ca([kE(n=>t.count[0]=n+1,({error:n,retry:a,retriedCount:u,retryFuncArgs:m})=>{t.msg[0]=n.message,s||(u>=1&&(m[0]=To(e,"config",M.MAIN,!0)),a())})(To(e,"config",M.MAIN),i,{get timeout(){return Fo(2+t.count[0])*1e3}}),kE(n=>t.count[1]=n+1,({error:n,retry:a,retriedCount:u,retryFuncArgs:m})=>{t.msg[1]=n.message,s||(u>=2&&(m[0]=To(e,"config",M.BACKUP,!0)),a())})(To(e,"config",M.BACKUP),i,{get timeout(){return Fo(2+t.count[1])*1e3}})]).then(n=>{s=n,r(s)}).catch(o)})}var Qy=i=>i.startsWith("data:application/octet-stream;base64,"),Yy=i=>i.startsWith("file://"),uc=class{constructor(){l(this,"_log");this._log=$.createLogger({id:"fd"})}download(t,e){return y(this,null,function*(){let{type:r="blob"}=e||{};t=Ho(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`),X.addSuccessEvent({key:522700,cost:_e()-o}),s.data}catch(o){throw this._log.error(`failed to download: ${t}, error: ${o}`),X.addFailedEvent({key:522700,error:o}),o}})}downloadWithFetch(t,e){return 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)&&!Qy(t)&&!Yy(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`),X.addSuccessEvent({key:522701,cost:n}),o}throw this._log.error(`failed to loadWasm ${t}, error: ${s}`),X.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`),X.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)}`),X.addFailedEvent({key:522702}),o(n)},s.crossOrigin="anonymous",s.src=t,document.head.append?document.head.append(s):document.getElementsByTagName("head")[0].appendChild(s)})}};K([ts({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}`)}})],uc.prototype,"download",1),K([ts({settings:{timeout:3e3,retries:3},onRetrying(t){this._log.warn(`loadScript retrying: ${t}`)}})],uc.prototype,"loadScript",1);var Ep=new uc;function UE({TRTC:i,room:t,errorModule:e,assetsPath:r}){return{TRTC:i,LocalMixVideoTrack:ps,LocalVideoTrack:cr,LocalScreenTrack:ei,room:t,assetsPath:r,fileDownloader:Ep,innerEmitter:V,INNER_EVENT:F,constants:kl,environment:on,utils:ep,eventLogger:Je,log:this.room.getLogger(),loggerManager:$,errorModule:e,kvStatManager:X,rtcDectection:oo,trtc:this,rx:Yh,enums:Om,schedule:gp,getDevices:mn,initVisionTaskRegistry:(o,s="/mediapipe/vision.js")=>y(this,null,function*(){window.VisionTaskRegistry||(yield Ep.loadScript(`${o}/${s}`.replace(/([^:]\/)\/+/g,"$1"))),yield(yield window.VisionTaskRegistry.getInstance(o)).preloadModels([window.VisionTaskType.ImageSegmenter])}),audioContext:We(),deviceDetector:it,AudioPlayer:pn,AutoPlayDialog:Jd,Timer:dt,clearStarted:(o,s)=>{let n=o.getAlias(),a=ki.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:sc,createAudioNode:qa,getNetworkTimeOffset:Zp}}var VE=(i,t)=>{let{emit:e}=i;return i.emit=(...r)=>{try{return e.apply(i,r)}catch(o){let s=Be({key:$e.CATCH_HANDLER_ERROR,data:{name:t,event:r[0]},addDocLink:!1});return $.warn(`${s}
|
|
97
97
|
|
|
98
|
-
${o.stack}`),!1}},i};var bn=new WeakMap;function _E(i){let t=bn.get(i);t&&(t.forEach(e=>clearTimeout(e)),bn.delete(i))}function IE(i,t){return xe((e,r)=>function(...o){let s=bn.get(this);s||(s=new Map,bn.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=bn.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=bn.get(this))==null||m.delete(n)},i);s.set(n,u)}})}var yE="trtc-sdk-v5",AE="5.13.0-wasm.2";function Ot(...i){return xe((t,e)=>function(...r){try{wu.call(this,i,r,e,this._name)}catch(o){return Promise.reject(o)}return t.apply(this,r)})}function nh(...i){return xe((t,e)=>function(...r){try{wu.call(this,i,r,e,this._name)}catch(o){throw o}return t.apply(this,r)})}function wu(i,t,e,r){if(ot(i))for(let o=0;o<i.length;o++)Du.call(this,{rule:i[o],value:t[o],key:i[o].name,fnName:e,className:r});else Du.call(this,{rule:i,value:t[0],key:i.name,fnName:e,className:r})}function Du({rule:i,value:t,key:e,fnName:r,className:o}){function s(u){return{code:ne.INVALID_PARAMETER,extraCode:u,fnName:r,messageParams:{key:e,rule:i,value:t}}}if(O(t)){if(i.required)throw new oe(s(5001));if(O(i.defaultValue)){We(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),We(i.type[m])&&t instanceof i.type[m]&&(u=!0),De(i.type[m])&&at(t)===i.type[m].toLowerCase()&&(u=!0);if(!u)throw new oe({code:ne.INVALID_PARAMETER,extraCode:5002,fnName:r,messageParams:{key:e,rule:{type:i.type.map(m=>Bo(m)?Ls(m):De(m)?m:at(m))},value:t}})}else if(!O(i.type)&&at(t)!==i.type)throw new oe(s(5002));if(i.allowEmpty===!1){let u=Le(t)&&(t===0||Number.isNaN(t)),m=De(t)&&t.trim()==="";if(u||m)throw new oe(s(5003))}if(i.notLessThanZero&&Le(t)&&t<0)throw new oe(s(5006));if(!O(i.min)&&Le(t)&&t<i.min)throw new oe(s(5007));if(!O(i.max)&&Le(t)&&t>i.max)throw new oe(s(5008));if(De(i.instanceOf)){if(!t||t._name!==i.instanceOf)throw new oe(s(5004))}else if(We(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;Ft(n)&&ir(t)&&Object.keys(n).forEach(u=>{Du.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)=>{Du.call(this,{rule:a,value:u,key:`${e}[${m}]`,fnName:r,className:o})}),We(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 xe((n,a)=>function(...u){var A,C,N;function m(w,x,te){if(te&&te.includes(w))return"hided";if(e){let ue=e(...u);if(u[ue.argIndex]===x)return ue.value}if(x===u||w in u)return x;try{return x instanceof HTMLElement?`id: ${x.id} type:${at(x)}`:x instanceof MediaStreamTrack?Zc(x):(JSON.stringify(x),x)}catch(ue){return`type:${at(x)}`}}let h=this._log||$;if(o!=null&&o(...u))return n.apply(this,u);u.length>0?h.info(`${a}() ${JSON.stringify(u,(w,x)=>m(w,x,["userSig","privateMapKey"]))}`):h.info(`${a}()`);let f=r?r(...u):Dd[a],T=(s==null?void 0:s(...u))||!1;try{let w=n.apply(this,u),x=Te();if(ro(w)){let te=`${a.includes("Plugin")?`${((C=(A=u[0]).getName)==null?void 0:C.call(A))||""} `:" "}`;return w.then(ue=>(h.info(`${a}() success ${te}${t.call(this,...u)}`),X.addSuccessEvent({key:f,cost:Te()-x}),ue)).catch(ue=>{var Y;ue=oe.convertFrom.call(this,ue,a,u.length===1?u[0]:u);let ye=ue.extraCode||ue.code,Ie=(Y=ue.message)!=null&&Y.includes(ye)?"":` code:${ye}`;throw T||h.error(`${a}() failed ${te}${t.call(this,...u)} ${ue}${Ie} params: ${JSON.stringify(u,m)}`),X.addFailedEvent({key:f,error:ue}),ue})}return X.addSuccessEvent({key:f}),w}catch(w){w=oe.convertFrom.call(this,w,a);let x=w.extraCode||w.code,te=(N=w.message)!=null&&N.includes(x)?"":` code:${x}`;throw T||h.error(`${a}() failed ${w}${te} params: ${JSON.stringify(u,m)}`),X.addFailedEvent({key:f,error:w}),w}})}var Mu=i=>xe((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:ne.OPERATION_ABORT,message:`plugin ${String(r)} is not found`,fnName:e});if(We(s.constructor.isSupported)&&!s.constructor.isSupported())throw this._log.error(`plugin ${String(r)} is not supported`),new oe({code:ne.ENV_NOT_SUPPORTED,message:`plugin ${String(r)} is not supported`,extraCode:5210,fnName:e});return wu.call(this,s.getValidateRule(i),[o],e,"TRTC"),t.call(this,s,o)})});var Ou=0,ah,Ui=class Ui{constructor(t){this.core=t;l(this,"log");l(this,"customAudioReferenceMap",new Map);l(this,"audioRefId",0);l(this,"audioContext",Ye());l(this,"localAudioWorkletNode");l(this,"screenAudioWorkletNode");l(this,"mixNode");l(this,"silentNode");Ou=Ou+1,this.log=t.log.createChild({id:`${this.getAlias()}${Ou}`}),this.log.info(`created id=${this.getAlias()}${Ou}`)}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:ne.INVALID_OPERATION,extraCode:5106,fnName:o})}}}preload(t){return ah||(ah=this.doPreload(t)),ah}doPreload(t){return y(this,null,function*(){let e=yield this.core.fileDownloader.download(t,{type:"blob"}),r=URL.createObjectURL(e);try{yield Mi(this.audioContext,r)}catch(o){this.log.error(`preload audioProcessor failed. ${o}`)}finally{URL.revokeObjectURL(r)}})}getName(){return Ui.Name}getAlias(){return"ap"}getGroup(){return"ap"}getValidateRule(t){switch(t){case"start":return Ui.getStartValidateRule(this.core);case"update":return Ui.updateValidateRule;case"stop":return Ui.stopValidateRule}}start(t){return y(this,null,function*(){let{room:e}=this.core,{sdkAppId:r,userId:o,assetsPath:s=this.core.assetsPath,audioReference:n,processLevel:a,enableDump:u,isLocalAudioNeedAudioProcess:m=!0,isScreenAudioNeedAudioProcess:h=!0}=t;if(this.core.room.audioManager.isLocalAudioNeedAudioProcess=m,this.core.room.audioManager.isScreenAudioNeedAudioProcess=h,!s)throw new oe({code:ne.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});if(yield this.preload(`${s}/audioProcessor-wasm.js`),!this.localAudioWorkletNode||!this.screenAudioWorkletNode){let f=String(Date.now()).slice(0,-3),{auth:T,sign:A,status:C,message:N}=yield Ny(pe(j({},t),{timestamp:f}));if(!T)throw this.log.info(`audioProcessor: ${o} auth result: ${T}. Message: ${N}`),new oe({code:ne.INVALID_PARAMETER,message:N});this.localAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.localAudioWorkletNode,"localAudio",r,o,f,A,C,e),this.screenAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.screenAudioWorkletNode,"screenAudio",r,o,f,A,C,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.port.postMessage({type:"enable"}),this.screenAudioWorkletNode.port.postMessage({type:"enable"}),e.audioManager.addAudioProcessor(this.localAudioWorkletNode,this.mixNode,this.silentNode,this.screenAudioWorkletNode),O(n)||n.forEach(f=>{this.customAudioReferenceMap.set(f,`o-${this.audioRefId++}`),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:f,refId:`o-${this.audioRefId++}`})}),O(a)||this.localAudioWorkletNode.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:a}}),O(u)||this.localAudioWorkletNode.port.postMessage({type:"dump",data:{enable:u}})})}update(t){return y(this,null,function*(){if(!this.localAudioWorkletNode||!this.screenAudioWorkletNode)return;let{audioReference:e,enableDump:r,processLevel:o}=t;O(e)||(this.customAudioReferenceMap.forEach((s,n)=>{this.customAudioReferenceMap.delete(n),this.core.room.audioManager.updateAudioReference({type:"remove",refId:s})}),e.forEach(s=>{this.customAudioReferenceMap.set(s,`o-${this.audioRefId++}`),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:s,refId:`o-${this.audioRefId++}`})})),O(o)||this.localAudioWorkletNode.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:o}}),O(r)||(this.localAudioWorkletNode.port.postMessage({type:"dump",data:{enable:r}}),this.screenAudioWorkletNode.port.postMessage({type:"dump",data:{enable:r}}))})}stop(){return y(this,null,function*(){if(!this.localAudioWorkletNode||!this.mixNode||!this.silentNode||!this.screenAudioWorkletNode)return;let{room:t}=this.core;this.localAudioWorkletNode.port.postMessage({type:"disable"}),this.screenAudioWorkletNode.port.postMessage({type:"disable"}),yield t.audioManager.removeAudioProcessor(this.localAudioWorkletNode,this.mixNode,this.silentNode,this.screenAudioWorkletNode)})}destroy(){this.localAudioWorkletNode&&(this.localAudioWorkletNode.port.onmessage=null),this.screenAudioWorkletNode&&(this.screenAudioWorkletNode.port.onmessage=null)}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 f;let{data:h}=m;switch(h.type){case"cost":let T=(h==null?void 0:h.value)>10?"info":"debug";this.log[T](`[${e}] avg cost: ${h.value} max: ${h==null?void 0:h.max}(${Ns(new Date(h==null?void 0:h.maxCostTimestamp))}) hist: ${(f=h==null?void 0:h.hist)==null?void 0:f.join(" ")}`);return;case"log":this.log[h.logLevel](`[${e}] ${h.value}`);return;case"dump":V.emit("265",{room:u,data:h.value,type:e==="localAudio"?"dump":"dump-screen-audio"});return}}}};l(Ui,"updateValidateRule",{type:"object"}),l(Ui,"stopValidateRule",{type:"object"}),l(Ui,"Name","AudioProcessor");var xu=Ui;function Cy(i,t=M.MAIN){return`https://${oi[t]||Nu(i,t)}/api/v1/audioAiAuth`}function Ny(o){return y(this,arguments,function*({sdkAppId:i,userId:t,userSig:e,timestamp:r}){let n=`${Cy(i)}?sdkAppId=${i}&userId=${t}&userSig=${e}×tamp=${r}`,a=yield fetch(n),{data:{errCode:u,errMsg:m,sign:h,status:f}}=yield a.json();if(f==="1")return{auth:!0,sign:h,status:f,message:m};let T=gi(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:f,message:m?`${A} Reason: ${m}. ${C}`:`${A}, ${C}`}})}var ku=0,ch=class{constructor(t,e){l(this,"player");l(this,"publisher");l(this,"mixInput");this.mixInput=new dn(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&&(O(t.volume)||(this.volume=t.volume),O(t.loop)||(this.loop=t.loop),O(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 Rn(i,t){if(t&&typeof t!="function")throw new oe({code:ne.INVALID_PARAMETER,message:`start audioMixer plugin: param ${i} should be a function.`})}var si=class si{constructor(t){this.core=t;l(this,"log");l(this,"mixedMusicMap",new Map);l(this,"cacheMusicMap",new Map);ku=ku+1,this.log=t.log.createChild({id:`${this.getAlias()}${ku}`}),this.log.info(`created id=${this.getAlias()}${ku}`)}getName(){return si.Name}getAlias(){return"ax"}getGroup(t){return t==null?void 0:t.id}getValidateRule(t){switch(t){case"start":return si.startValidateRule;case"update":return si.updateValidateRule;case"stop":return si.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 ch(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),O(r)||n.setOperation(r),O(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:h}=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 h!="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(si,"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:ne.INVALID_PARAMETER,message:"start audioMixer plugin: music url is invalid, please check your file format.",fnName:r})}if(!t.url&&!t.track)throw new oe({code:ne.INVALID_PARAMETER,message:"start audioMixer plugin: param url or track is required.",fnName:r});Rn("onTimeUpdate",t.onTimeUpdate),Rn("onEnded",t.onEnded),Rn("onDurationChange",t.onDurationChange)}}),l(si,"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){Rn("onTimeUpdate",t.onTimeUpdate),Rn("onEnded",t.onEnded),Rn("onDurationChange",t.onDurationChange)}}),l(si,"stopValidateRule",{name:"options",type:"object",required:!0,properties:{id:{type:"string",required:!0}}}),l(si,"Name","AudioMixer");var Pu=si;var Lu=0,dh,Vi=class Vi{constructor(t){this.core=t;l(this,"log");l(this,"audioContext",Ye("denoiser"));l(this,"workletNode");Lu=Lu+1,this.log=t.log.createChild({id:`${this.getAlias()}${Lu}`}),this.log.info(`created id=${this.getAlias()}${Lu}`)}static startValidateRule(t){return{name:"options",required:!0,type:"object",properties:{sdkAppId:{type:"number",required:!0},userId:{type:"string",required:!0},userSig:{type:"string",required:!0}},validate(e,r,o,s){if(!t.room.audioManager.hasAudioTrack)throw new oe({code:ne.INVALID_OPERATION,extraCode:5106,fnName:o})}}}preload(t){return dh||(dh=this.doPreload(t)),dh}doPreload(t){return y(this,null,function*(){let e=yield this.core.fileDownloader.download(t,{type:"blob"}),r=URL.createObjectURL(e);try{yield Mi(this.audioContext,r)}catch(o){throw this.log.error("load worklet failed",o),o}finally{URL.revokeObjectURL(r)}})}getName(){return Vi.Name}getAlias(){return"ad"}getGroup(){return`AIDenoiser_${Date.now()}`}getValidateRule(t){switch(t){case"start":return Vi.startValidateRule(this.core);case"update":return Vi.updateValidateRule;case"stop":return Vi.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:ne.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 wy(r,pe(j({},t),{timestamp:s}));if(!n)throw this.log.info(`RTCAIDenoiser: ${t.userId} auth result: ${n}. Message: ${m}`),new oe({code:ne.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=h=>{var T;let{data:f}=h;if(f.type==="cost"){let A=(f==null?void 0:f.max)>20?"warn":(f==null?void 0:f.max)>10?"info":"debug";this.log[A](`avg cost: ${f.value} max: ${f==null?void 0:f.max}(${Ns(new Date(f==null?void 0:f.maxCostTimestamp))}) hist: ${(T=f==null?void 0:f.hist)==null?void 0:T.join(" ")}`)}else f.type==="log"&&this.log[f.logLevel](`${f.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(Vi,"updateValidateRule",{type:"object"}),l(Vi,"stopValidateRule",{type:"object"}),l(Vi,"Name","AIDenoiser");var Uu=Vi;function wy(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:h}}=yield i.getAbilityConfig(t,i.ScheduleRequestType.AUDIO_AI_AUTH,{sdkAppId:t,userId:e,userSig:r,timestamp:o});if(h==="1")return{auth:!0,sign:m,status:h,message:u};let f=gi(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: ${f}`;break;case 3:A="Server is invalid. Please contact our engineer. ";break;case 4:A=`Your packages is not active. Refer to: ${f}`;break;case 5:A=`Your packages is expired. Refer to: ${f}`;break;case 6:A="Your version is not supported.";break}return{auth:!1,status:h,message:u?`${T} Reason: ${u}. ${A}`:`${T}, ${A}`}}catch(a){return{auth:!1,status:"0",message:`Init RTCAIDenoiser failed. All requests failed. ${a}`}}})}var RE=mi(yi(),1);var uh=class extends RE.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})}}},My=new uh,lh=My;function Oy([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 ns(new DataView(new Uint8Array(s).buffer),!0)}function xy(i){return i.type==="empty"||i.data.byteLength===0}function ky(i){return i.getInt32(0)===1&&i.getInt8(4)===6}function Py(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 mh({frame:i,seiMessageList:t}){if(!t||t.length===0||i.data.byteLength===0)return i;let r=9-Py(i.data);if(r<=0)return i;let o=t.splice(0,r).reverse().map(Oy),s=o.reduce((h,f)=>h+f.dataView.byteLength,0),n=new ArrayBuffer(s+i.data.byteLength),a=new DataView(n),u=new DataView(i.data),m=0;for(let h=0;h<o.length;h++)for(let f=0;f<o[h].dataView.byteLength;f++)a.setInt8(m++,o[h].dataView.getInt8(f));for(let h=0;h<i.data.byteLength;h++)a.setInt8(m++,u.getInt8(h));return i.data=n,i}function ph({frame:i,onSEI:t}){try{let e=new DataView(i.data);if(xy(i)||!ky(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 ns(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 hh=0,oc=class oc{constructor(t){this.core=t;l(this,"log");l(this,"_seiMessageList",[]);l(this,"_smallSeiMessageList",[]);l(this,"_subStreamSeiMessageList",[]);hh++,this.log=t.log.createChild({id:`${this.getAlias()}${hh}`}),this.log.info(`[sei] created id=${this.getAlias()}${hh}`),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 mh({frame:t,seiMessageList:r})}catch(r){this.log.warn(r)}return t}decode({frame:t,track:e}){return ph({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:Da?this.encode:mh,type:2}),this.core.room.videoManager.addDecodeProcessor({processor:Da?this.decode:ph,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 oc.Name}getAlias(){return"sei"}getGroup(){return"sei"}};l(oc,"autoStart",!0),l(oc,"Name","SEI");var Vu=oc;function fh({frame:i,onDump:t}){return t==null||t(),i}function gh({frame:i,onDump:t}){return t==null||t(),i}var vE={"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 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:
|
|
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=>{vE[`${i}()`]={tips:`Call trtc.${i}`,color:"blue",class:"blue",textColor:"#fff"}});var zU=Object.keys(vE);var Ly=0,Fu,sc=class sc{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()}${++Ly}`}),this.log.info("created")}getName(){return sc.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*({forceOpen:t}){O(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(Fu)yield Fu;else{let e=new URLSearchParams(location.search).get("trtcDebugDialogPath")||((t=window.sessionStorage)==null?void 0:t.getItem("TRTC_DEBUG_DIALOG_PATH"))||`https://unpkg.com/${yE}@${nt}/assets/debug-dialog.js`;Fu=this._core.fileDownloader.loadScript(e),yield Fu}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):fh,type:1}),this._core.room.videoManager.addDecodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.decodeVideo.bind(this):gh,type:1})}removeVideoProcessor(){this._core.room.videoManager.removeEncodeProcessor({type:1}),this._core.room.videoManager.removeDecodeProcessor({type:1})}encodeVideo({frame:t,mediaType:e}){return fh({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 gh({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(sc,"Name","Debug"),l(sc,"autoStart",!0);var $u=sc;var CE=i=>{switch(i){case"webCodecs":return 504703;case"wasm":return 504704}throw new Error("decoder type not supported")},Bu=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=Re(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}`),be(m,qe(this.stopOB),Ue(()=>{},h=>{e.log.error(h),o.addFailedEvent({key:CE(this.type),error:h}),u>4?this.startOB.error(h):this.startOB.next(u+1)})),be(m,Vr(1),Pp(za))};be(this.startOB,ja(0),ho(a),qe(this.stopOB),Ue(()=>{e.player.setOutput(),n.next("STARTED")},u=>{n.next("FAILED")},()=>{o.addSuccessEvent({key:CE(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 Oi()(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"}))}},Uy={type:"object"},nc=class nc{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 nc.Name}getGroup(t){return t.track.userId+t.track.streamType}getName(){return nc.Name}getValidateRule(t){return Uy}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 Bu(this.core,r,t);return be(o.trackDoneOB,Vr(1),Ue(()=>{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 Bu(this.core,t.track,t))}}};l(nc,"Name","TRTCAudioDecoder");var ac=nc;var Hu=class{constructor(){l(this,"log");this.log=$.createLogger({id:"exp"})}call(t,e){return y(this,null,function*(){return We(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:h}=u;if(h.set(o,{enable:r,sampleRate:s,channelCount:n,port:a}),r)if(o==="*")e.room.remotePublishedUserMap.forEach(f=>{if(f.remoteAudioTrack.isAvailable){if(m.get(f.userId))return;let T=u.getPCM(A=>{e.emit(ee.AUDIO_FRAME,A)},f.userId);m.set(f.userId,T)}});else{if(m.get(o))return;let f=u.getPCM(T=>{e.emit(ee.AUDIO_FRAME,T)},o);m.set(o,f)}else if(o==="*")e.room.remotePublishedUserMap.forEach(f=>{if(f.remoteAudioTrack.isSubscribed){let{userId:T}=f,A=m.get(T);A==null||A.abort("disable"),m.delete(T)}});else{let f=m.get(o);f==null||f.abort("disable"),m.delete(o)}})}};K([Xg({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"}}})],Hu.prototype,"enableAudioFrameEvent",1);var NE=new Hu;var DE=mi(yi(),1);var Eh=class extends DE.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={}}},cc=new Eh;var wE=0,dc=new Set,Dt=null;Tl(AE);en.checkStorage();var Se=class Se extends ME.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(j({logger:this._log,frameWorkType:Se.frameWorkType},r)),this._room.videoDecodeFallbackType=r.videoDecodeFallback,Xe(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(Pu,r.assetsPath),this._use(xu,r.assetsPath),this._use(Uu,r.assetsPath),this._use(ac,r.assetsPath),this._use($u),r.enableSEI&&wa&&this._use(Vu),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)}),this.emit(ee.AUDIO_VOLUME,{result:o.sort((a,u)=>u.volume-a.volume)})}),this._room.videoManager.on("error",o=>{this._log.error(new oe({code:ne.OPERATION_FAILED,extraCode:5504,message:o.message,originError:o}))}),this._listenEvents(),this._initActiveSpeaker(),TE(this,"trtc")}static create(e){}static _create(e,r){iE();let o=new Se(e,r||{});return dc.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(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,oe.convertFrom(e))})}).add("signal-connection-state-changed",e=>{this.emit(ee.CONNECTION_STATE_CHANGED,e)}).add("network-quality",e=>{this._networkQuality=e;let r=pe(j({},e),{uplinkRTT:Math.min(e.uplinkRTT,Xn),downlinkRTT:Math.min(e.downlinkRTT,Xn)});this.emit(ee.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=pe(j({},s),{userId:e.userId});o.kind===M.VIDEO&&(n.streamType=ii(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=>{ct(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,pe(j({},e),{streamType:ii(e.streamType)}))}).add("firewall-restriction",()=>{this.emit(ee.ERROR,new oe({code:ne.OPERATION_FAILED,extraCode:5501}))}).add("heartbeat-report",e=>{var s,n,a,u,m,h,f;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,Xn),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:(((h=e.msg_up_stream_info.msg_audio_status)==null?void 0:h.uint32_audio_codec_bitrate)||0)/1e3,audioLevel:(((f=e.msg_up_stream_info.msg_audio_status)==null?void 0:f.uint32_audio_level)||0)/Ri},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)/Ri,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,pe(j({},e),{streamType:ii(e.streamType)}))}).add("audio-frame",e=>{this.emit(ee.AUDIO_FRAME,e)}),bt(this,dt).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===Jn){let r=(yield uo()).find(o=>o.deviceId===Jn);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 uo())[0];if(!r||!Dt||Dt.groupId===r.groupId)return;let o=Dt.deviceId===e.deviceId,s=Dt.deviceId===Jn&&Dt.deviceId===r.deviceId;(o||s)&&(Dt=r,this.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))})),bt(this,cc).add("permission-state-change",e=>{this.emit(ee.PERMISSION_STATE_CHANGE,e)})}use(e){let r,o;"plugin"in e?(r=e.plugin,o=e.assetsPath):r=e,this._use(r,o)}_use(e,r){if(this._plugins.get(e.Name)){this._log.warn("duplicate install plugin",e.Name);return}let s=new e(EE.call(this,{TRTC:Se,room:this._room,assetsPath:r,errorModule:{RtcError:oe,ErrorCode:ne,CoreErrorCode:q,ErrorCodeDictionary:_r}}));this._plugins.set(e.Name,s),s.__v_skip=!0,e.autoStart&&this.startPlugin(e.Name)}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,Xe(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,Se.frameWorkType),this._checkTrackToPublish(),lh.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 Hn&&(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(){ct(this),this.removeAllListeners(),this._room.destroy(),dc.delete(this),dc.size===0&&lh.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 ei(this._room.audioManager),a={},u={muted:!0};s&&(O(s.microphoneId)?O(s.audioTrack)||(a.customSource=s.audioTrack):a.deviceId=s.microphoneId,s&&Le(s.captureVolume)&&n.setCaptureVolume(s.captureVolume),O(s.profile)||(De(s.profile)?Uc[s.profile]&&n.setProfile(Uc[s.profile]):n.setProfile(s.profile)),Le(s.earMonitorVolume)&&(u.muted=!(s.earMonitorVolume>0),u.volume=s.earMonitorVolume),O(s.echoCancellation)||(n.profile.echoCancellation=s.echoCancellation),O(s.noiseSuppression)||(n.profile.noiseSuppression=s.noiseSuppression),O(s.autoGainControl)||(n.profile.autoGainControl=s.autoGainControl),Xe(this._enableAutoSwitchWhenRecapturing)&&(n.enableAutoSwitchWhenRecapturing=this._enableAutoSwitchWhenRecapturing)),n.on("5",m=>{this.emit(ee.ERROR,new oe({code:ne.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 h;m.error&&(h=oe.convertFrom(m.error)),this.emit(ee.PUBLISH_STATE_CHANGED,pe(j({},m),{error:h}))}),n.on("6",()=>{this.emit(ee.ERROR,new oe({code:ne.OPERATION_FAILED,extraCode:5506,message:"audio encode failed"}))}),this._listenOutputTrackChanged(n),this._speakerId&&n.setAudioOutput(this._speakerId),yield n.capture(a),O(o)||n.setMute(o),bt(n,n).add("player-state-changed",m=>{this.emit(ee.AUDIO_PLAY_STATE_CHANGED,pe(j({},m),{userId:""}))}),r&&this._room.isJoined&&this._room.publish(n).catch(()=>{}),this._localAudioTrack=n,this._localAudioConfig=pe(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):O(s.audioTrack)||(yield this._localAudioTrack.setInputMediaStreamTrack(s.audioTrack)),O(s.captureVolume)||this._localAudioTrack.setCaptureVolume(s.captureVolume),O(s.earMonitorVolume)||(n.muted=!(s.earMonitorVolume>0),n.volume=s.earMonitorVolume),yield this._localAudioTrack.update3A(s)),this._room.isJoined&&!O(r)&&(r&&!this._localAudioConfig.publish&&this._room.publish(this._localAudioTrack).catch(()=>{}),this._localAudioConfig.publish&&!r&&this._room.unpublish(this._localAudioTrack).catch(()=>{})),O(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),ct(this._localAudioTrack),this._localAudioTrack=null,this._localAudioConfig=null)})}startLocalVideo(){return y(this,arguments,function*(e={publish:!0,view:null,capture:!0}){var f;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={},h={};a&&(Xe(a.avoidCropping)&&(u.avoidCropping=a.avoidCropping),a.cameraId?m.deviceId=a.cameraId:O(a.useFrontCamera)?O(a.videoTrack)||(m.customSource=a.videoTrack):m.facingMode=a.useFrontCamera?M.FACING_MODE_USER:M.FACING_MODE_ENVIRONMENT,O(a.retryWhenExactFailed)||(m.retryWhenExactFailed=a.retryWhenExactFailed),a.qosPreference&&(m.contentHint=rc(a.qosPreference)),O(a.profile)||(De(a.profile)?vr[a.profile]&&u.setProfile(vr[a.profile]):u.setProfile(a.profile)),O(a.fillMode)||(h.objectFit=a.fillMode),O(a.mirror)||(h.mirror=a.mirror),O(a.small)||(O(a.smallMode)||(this._room.smallMode=a.smallMode),Xe(a.small)&&a.small===!1?u.stopSmall():u.updateSmallConfig(Sn(a.small,!0))),O(a.rotation)||u.setRotation(a.rotation),Xe(this._enableAutoSwitchWhenRecapturing)&&(u.enableAutoSwitchWhenRecapturing=this._enableAutoSwitchWhenRecapturing)),u.once("first-video-frame",T=>{this.emit(ee.FIRST_VIDEO_FRAME,pe(j({},T),{streamType:ii(T.streamType)}))}),u.on("5",T=>{this.emit(ee.ERROR,new oe({code:ne.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=oe.convertFrom(T.error)),this.emit(ee.PUBLISH_STATE_CHANGED,pe(j({},T),{error:A}))}),u.on("6",()=>{this.emit(ee.ERROR,new oe({code:ne.OPERATION_FAILED,extraCode:5505,message:"video encode failed"}))}),this._listenOutputTrackChanged(u),s?yield u.capture(m):(f=u.manager)==null||f.changeInput(u),O(n)||(yield u.setMute(n)),bt(u,u).add("player-state-changed",T=>{this.emit(ee.VIDEO_PLAY_STATE_CHANGED,pe(j({},T),{userId:"",streamType:"main"}))}).add("video-size-changed",T=>{this.emit(ee.VIDEO_SIZE_CHANGED,pe(j({},T),{streamType:ii(T.streamType)}))}),o&&this._room.isJoined&&this._room.publish(u).catch(()=>{}),this._localVideoTrack=u,this._localVideoConfig=pe(j({},e),{view:r,publish:o,capture:s}),yield this._updateVideoPlayOption({view:r,playOption:h,track:u})})}updateLocalVideo(e){return y(this,null,function*(){var m,h,f;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):O(a==null?void 0:a.useFrontCamera)?O(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||(h=this._localVideoConfig.option)!=null&&h.useFrontCamera?M.FACING_MODE_USER:M.FACING_MODE_ENVIRONMENT,T.customSource=(a==null?void 0:a.videoTrack)||((f=this._localVideoConfig.option)==null?void 0:f.videoTrack),yield this._localVideoTrack.capture(T)}a&&(O(a.profile)||(De(a.profile)?vr[a.profile]&&this._localVideoTrack.setProfile(vr[a.profile]):this._localVideoTrack.setProfile(a.profile),(!a.cameraId||!this._localVideoTrack.isNeedToSwitchDevice(a.cameraId))&&O(a.useFrontCamera)&&(yield this._localVideoTrack.applyProfile())),O(a.fillMode)||(u.objectFit=a.fillMode),O(a.mirror)||(u.mirror=a.mirror),O(a.rotation)||this._localVideoTrack.setRotation(a.rotation),a.qosPreference&&this._localVideoTrack.mediaTrack&&this._localVideoTrack.setContentHint(rc(a.qosPreference)),O(a.small)||(Xe(a.small)&&!a.small?this._localVideoTrack.stopSmall():this._localVideoTrack.updateSmallConfig(Sn(a.small,!0)))),this._room.isJoined&&O(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(()=>{})),O(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(),ct(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 ti(this._room.videoManager);a.on("4",C=>{let N;C.error&&(N=oe.convertFrom(C.error)),this.emit(ee.PUBLISH_STATE_CHANGED,pe(j({},C),{error:N}))}),a.once("first-video-frame",C=>{this.emit(ee.FIRST_VIDEO_FRAME,pe(j({},C),{streamType:ii(C.streamType)}))}),this._listenOutputTrackChanged(a),e.streamType==="main"&&(a.mediaType=4);let u=null,m={},h={};n&&(O(n.profile)||(De(n.profile)?Vc[n.profile]&&a.setProfile(Vc[n.profile]):a.setProfile(n.profile)),n.systemAudio&&(m.systemAudio=!0,m.echoCancellation=n.echoCancellation,m.noiseSuppression=n.noiseSuppression,m.autoGainControl=n.autoGainControl),O(n.fillMode)||(h.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=rc(n.qosPreference)));let f=yield a.capture(m);if(a.mediaTrack.addEventListener(M.ENDED,()=>{this._stopScreenShare(),this.emit(ee.SCREEN_SHARE_STOPPED)}),f.getAudioTracks()[0]){u=new ls(this._room.audioManager);let C=f.getAudioTracks()[0];(T=e.option)!=null&&T.systemAudio&&!((A=e.option)!=null&&A.audioTrack)&&(u.sourceTrack=C),yield u.setInputMediaStreamTrack(C),Xe(s)&&u.mediaTrack&&(u.mediaTrack.enabled=!s),this._speakerId&&u.setAudioOutput(this._speakerId)}if(bt(a,a).add("player-state-changed",C=>{this.emit(ee.VIDEO_PLAY_STATE_CHANGED,pe(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=pe(j({},e),{view:r,publish:o}),yield this._updateVideoPlayOption({view:r,playOption:h,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&&(O(n.fillMode)||(a.objectFit=n.fillMode),n.qosPreference)){let m=rc(n.qosPreference);this._localScreenTrack.setContentHint(m)}if(this._room.isJoined&&!O(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&&Xe(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={},h=s==="main"?u.remoteVideoTrack:u.remoteAuxiliaryTrack;h.on("decode-failed",f=>{this.emit(ee.ERROR,new oe({code:ne.OPERATION_FAILED,extraCode:5507,message:"video decode failed"}))}),h.on("video-size-changed",f=>{this.emit(ee.VIDEO_SIZE_CHANGED,pe(j({},f),{streamType:ii(f.streamType)}))}),this._listenOutputTrackChanged(h),n&&(O(n.fillMode)||(m.objectFit=n.fillMode),O(n.mirror)||(m.mirror=n.mirror),O(n.poster)||(m.poster=n.poster),m.canvasRender=n.canvasRender,s==="main"&&!O(n.small)&&(!u.remoteVideoTrack.isSubscribing&&!u.remoteVideoTrack.isSubscribed&&u.remoteVideoTrack.setMediaType(n.small?8:4),this._room.changeType(n.small,h.user))),yield this._room.subscribe(h),yield this._enableVideoDecodeFallback(h,s),yield this._updateVideoPlayOption({view:r,playOption:m,track:h}),this._emitTrackEvent(h),this._remoteVideoConfigMap.set(a,{config:e}),n&&!O(n.receiveWhenViewVisible)&&this._observeView({remoteTrack:h,view:r,receiveWhenViewVisible:n.receiveWhenViewVisible,viewRoot:n==null?void 0:n.viewRoot})})}updateRemoteVideo(e){return y(this,null,function*(){var w,x;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&&(O(n.fillMode)||(m.objectFit=n.fillMode),O(n.mirror)||(m.mirror=n.mirror));let h=null,f=this._room.remotePublishedUserMap.get(o);if(s==="main"&&(f!=null&&f.muteState.hasVideo)&&(h=f.remoteVideoTrack),s==="sub"&&(f!=null&&f.muteState.hasAuxiliary)&&(h=f.remoteAuxiliaryTrack),!h)return;let{config:T}=u;s==="main"&&n&&!O(n.small)&&this._room.changeType(n.small,h.user),yield this._updateVideoPlayOption({view:r,playOption:m,track:h,prevConfig:T}),Nr(T,e);let A=O(n==null?void 0:n.receiveWhenViewVisible)?(w=T.option)==null?void 0:w.receiveWhenViewVisible:n.receiveWhenViewVisible,C=O(r)?T.view:r,N=O(n==null?void 0:n.viewRoot)?(x=T.option)==null?void 0:x.viewRoot:n.viewRoot;this._observeView({remoteTrack:h,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 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{hE.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===Se.EVENT.AUDIO_FRAME||e==="*")&&this.listeners(Se.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 uo()).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 oe({code:ne.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=Le(u)?u:100;s.volume=m,this._remoteAudioConfigMap.set(r,e),yield this._room.subscribe(n),be(Re(n,"decode-failed"),qe(Re(n,le.INIT)),Ue(()=>{this.startPlugin(ac.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;be(Re(e,"decode-failed"),qe(Re(e,le.INIT)),Ja(()=>{this._room.downlinkVideoCodec!=="h265"&&this.startPlugin("TRTCVideoDecoder",{type:"auto",renderer:"videoFrame",track:e,config:{codec:"avc1.420028"},fallback:o})}),xi(Re(e,"decode-downgrade-state-changed")),Ue(n=>{s=n.state,this.emit(ee.VIDEO_DECODE_DOWNGRADE_STATE_CHANGED,pe(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),O(e)&&s&&s.view&&!Us(r)){let a=Fs(s.view);a.length>0&&(yield o.play(a,r))}if(!O(e)){let a=Fs(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(O(e.muted)||r.setPlayerMute(e.muted),O(e.volume)||r.setAudioVolume(e.volume/100),r instanceof ei&&r.mediaTrack){let n=e.muted===!1&&!O(e.volume)&&e.volume>0?"add":"remove";this.room.audioManager.updateAudioReference({type:n,audioReference:r.mediaTrack,refId:"em"})}else if(r instanceof ki){let n=e.muted?0:e.volume;if(O(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:ii(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(O(r))return;let n=this._remoteVideoConfigMap.get(`${e.userId}_${ii(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,h=-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(h),h=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 f=new Set(Fs(r));m.forEach((T,A)=>{f.has(A)||(a.unobserve(A),m.delete(A))}),f.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(),_E(this),this._room.remotePublishedUserMap.forEach(e=>{ct(e.remoteAudioTrack),ct(e.remoteVideoTrack),ct(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),ct(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||ln(Dt))&&(this._initActiveSpeaker(),V.off("102",this._onLocalTrackCaptured,this))}_initActiveSpeaker(){return y(this,null,function*(){if(Dt&&!ln(Dt))this.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"active",device:Dt});else{let e=yield uo();e[0]&&!ln(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:pe(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)})`),NE.call(e,j({trtcInstance:this},r))})}static setLogLevel(e,r){$.setLogLevel(e),O(r)||(r?$.enableUploadLog():$.disableUploadLog())}static isSupported(){return kd(Se.frameWorkType)}static getPermissions(o){return y(this,arguments,function*({request:e=!0,types:r=["camera","microphone"]}){e&&(yield cc.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([cc.get("camera"),cc.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 uo(e)}static setCurrentSpeaker(e){return y(this,null,function*(){if(pt&&(e===Tr.SPEAKER||e===Tr.HEADSET)){let o=yield Se.getMicrophoneList(),s="";if(o.forEach(n=>{n.label===e&&(s=n.deviceId)}),!s)return;dc.forEach(n=>y(this,null,function*(){n._localAudioTrack&&(yield n.updateLocalAudio({option:{microphoneId:s}}))}));return}(yield uo()).forEach(o=>{o.deviceId===e&&(dc.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(Se,"_loggerManager",$),l(Se,"EVENT",ee),l(Se,"ERROR_CODE",ne),l(Se,"TYPE",Tr),l(Se,"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"}})})],Se.prototype,"use",1),K([Ot(vt.TRTC.enterRoom),To("room",([e],[r])=>(e.roomId||e.strRoomId)===(r.roomId||r.strRoomId)&&e.userId===r.userId&&e.sdkAppId===r.sdkAppId),xe(e=>function(r){return this._log.setUserId(r.userId),this._log.setSdkAppId(r.sdkAppId),e.call(this,r)}),tt()],Se.prototype,"enterRoom",1),K([tt()],Se.prototype,"exitRoom",1),K([Ot(vt.TRTC.switchRoom),tt(),Qd()],Se.prototype,"switchRoom",1),K([Ot(vt.TRTC.switchRole),hs("room",{merge:(e,r)=>r}),tt()],Se.prototype,"switchRole",1),K([tt()],Se.prototype,"destroy",1),K([Ot(vt.TRTC.startLocalAudio),To("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()],Se.prototype,"startLocalAudio",1),K([Ot(vt.TRTC.updateLocalAudio),hs("audio",{debounce:{delay:200,getKey:()=>`${wE}-localAudio`,isNeedToDebounce:e=>{var r;return!O((r=e.option)==null?void 0:r.captureVolume)}}}),tt()],Se.prototype,"updateLocalAudio",1),K([_o("audio"),tt()],Se.prototype,"stopLocalAudio",1),K([Ot(vt.TRTC.startLocalVideo),To("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()],Se.prototype,"startLocalVideo",1),K([Ot(vt.TRTC.updateLocalVideo),hs("video"),tt()],Se.prototype,"updateLocalVideo",1),K([_o("video"),tt()],Se.prototype,"stopLocalVideo",1),K([Ot(vt.TRTC.startScreenShare),To("screen",()=>!0),tt()],Se.prototype,"startScreenShare",1),K([Ot(vt.TRTC.updateScreenShare),hs("screen"),tt()],Se.prototype,"updateScreenShare",1),K([tt()],Se.prototype,"stopScreenShare",1),K([Ot(vt.TRTC.startRemoteVideo),To(e=>`v${e.userId}${e.streamType}`,()=>!0),tt({getRemoteId:e=>`${e.userId}_${e.streamType}`})],Se.prototype,"startRemoteVideo",1),K([Ot(vt.TRTC.updateRemoteVideo),hs(e=>`v${e.userId}${e.streamType}`),tt({getRemoteId:e=>`${e.userId}_${e.streamType}`})],Se.prototype,"updateRemoteVideo",1),K([Ot(vt.TRTC.stopRemoteVideo),xe(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}`})],Se.prototype,"stopRemoteVideo",1),K([_o(e=>`v${e.userId}${e.streamType}`)],Se.prototype,"_stopRemoteVideo",1),K([Ot(...vt.TRTC.muteRemoteAudio),tt({getRemoteId:e=>e})],Se.prototype,"muteRemoteAudio",1),K([nh(...vt.TRTC.setRemoteAudioVolume),IE(200,e=>e),tt({getRemoteId:e=>e})],Se.prototype,"setRemoteAudioVolume",1),K([Mu("start"),lo(e=>{var r;return(r=e.afterStart)==null?void 0:r.call(e)}),To((e,r)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(r)),tt({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>Rm[e.getName()],ignoreLog:e=>e.getName()==="Debug",ignoreErrorLog:e=>e.getName()==="AudioProcessor"})],Se.prototype,"startPlugin",1),K([Mu("update"),hs((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=>vm[e.getName()]})],Se.prototype,"updatePlugin",1),K([Mu("stop"),_o((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=>Cm[e.getName()]})],Se.prototype,"stopPlugin",1),K([nh(...vt.TRTC.enableAudioVolumeEvaluation)],Se.prototype,"enableAudioVolumeEvaluation",1),K([tt()],Se.prototype,"getVideoSnapshot",1),K([tt()],Se.prototype,"_setCurrentSpeaker",1),K([To(e=>`a${e.userId}`,()=>!0)],Se.prototype,"_startRemoteAudio",1),K([xe(e=>function(r){return y(this,null,function*(){return r.userId==="*"?Promise.all([...this._room.remotePublishedUserMap.values()].map(o=>this._stopRemoteAudio(pe(j({},r),{userId:o.userId})).catch(()=>{}))):e.call(this,r)})}),_o(e=>`a${e.userId}`)],Se.prototype,"_stopRemoteAudio",1),K([_o("room")],Se.prototype,"_exitRoom",1),K([_o("screen")],Se.prototype,"_stopScreenShare",1),K([Ot(...vt.TRTC.sendSEIMessage),Kp({timesInSecond:30,maxSizeInSecond:8e3,getSize:(...e)=>e[0].byteLength})],Se.prototype,"sendSEIMessage",1),K([Ot(vt.TRTC.sendCustomMessage),Kp({timesInSecond:30,maxSizeInSecond:8e3,getSize:e=>e.data.byteLength})],Se.prototype,"sendCustomMessage",1),K([Ot(vt.TRTC.create)],Se,"_create",1);var Th=Se,vn=Th;var Wu=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 ki(t,this),this.remoteVideoTrack=new fo(t,this),this.remoteAuxiliaryTrack=new _u(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 Ho(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 _h=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 Vy(){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=co.basis(),h={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},f={browser:m.browser,os:m.os,trtc:h,devices:e},T={isWebCodecSupported:m.isWebCodecSupported,isMediaSessionSupported:m.isMediaSessionSupported,isWebTransportSupported:m.isWebTransportSupported};je.uploadEvent({log:`trtcstats-${JSON.stringify(f)}`,userId:this.userId}),this._log.info(`TrtcStats-${JSON.stringify(f)}`),je.uploadEvent({log:`trtcadvancedstats-${JSON.stringify(T)}`,userId:this.userId}),Um()})}function OE(){return xe(i=>{let t=new _h;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=pi.QCLOUD,this.proxy_ws&&(this.proxy_ws.startsWith(Fc.OLD_CLOUD_LADDER)?n=pi.OLD_CLOUD_LADDER:this.proxy_ws.startsWith(Fc.WEBRTC)&&(n=pi.WEBRTC))),je.setConfig({env:n,sdkAppId:String(this.sdkAppId),userId:this.userId,roomId:s}),co.checkSystemRequirementsInternal(o).then(a=>{this.checkSystemResult=a,Vy.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(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 xE=()=>xe(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 kE(){return xe(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 PE(){return xe(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>r.unpublish()),e})}function LE(){return xe(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>!r.isSubscribed&&r.subscribe(e)),e})}function Fy({fn:i,context:t}){return function(...e){try{let r=i.apply(t,e);return ro(r)?r.catch(o=>$.error(`${i.name}() error observed ${o}`)):r}catch(r){$.error(`${i.name}() error observed ${r}`)}}}var Gu=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")&&We(this[e])&&(this[e]=Fy({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:nt,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=Jo(),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(),ft.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&&(O(t.params.frameWorkType)||(this._frameWorkType=t.params.frameWorkType,this._basicInfo.uint32_framework=this._frameWorkType),O(t.params.component)||(this._component=t.params.component,this._basicInfo.uint32_component=this._component),O(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:pe(j({},$y),{msg_user_info:new uc({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 uc({userId:s,tinyId:n,role:a==="anchor"?20:21}),m=Date.now(),h=`${s}_${r}`,f=this._remoteStreamStatMap.get(h);f&&f.subscribeStartTime===0&&(f.subscribeStartTime=m),r==="main"?(e.muteState.hasVideo&&(o.video||o.smallVideo)&&!this._pathMainVideoMap.has(h)&&this._pathMainVideoMap.set(h,{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(h)&&this._pathMainAudioMap.set(h,{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(h)&&this._pathAuxiliaryMap.set(h,{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,h,f;s&&(m=s,h=1),n&&(u=n,f=1),this._networkQuality.totalDownlinkRTTAndLossMap.set(o,{totalRTT:e,totalLoss:r,count:1,totalAudioDelay:u,totalVideoDelay:m,audioDelayCount:f,videoDelayCount:h})}}))}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/Ri*100)>0&&(this._localStreamStat.totalAudioLevel+=s/Ri,this._localStreamStat.audioLevelCount++)}o.forEach(s=>{let{msg_user_info:n,msg_audio_status:a,msg_video_status:u}=s,m=n.str_identifier,h=this._room.remotePublishedUserMap.get(m);if(u.forEach(f=>{let T=f.uint32_video_stream_type===2,A=f.uint32_video_stream_type===7,C=`${m}_${T?"main":"auxiliary"}`,N=this._remoteStreamStatMap.get(C);if(N&&(T&&(h!=null&&h.remoteVideoTrack.isSubscribed)||A&&(h!=null&&h.remoteAuxiliaryTrack))){N.totalVideoFPS+=f.uint32_video_receive_fps,N.totalVideoBitrate+=f.uint32_video_codec_bitrate,N.videoCount++,N.statsToReport.uint32_video_width===0&&(N.statsToReport.uint32_video_width=f.uint32_video_width),N.statsToReport.uint32_video_height===0&&(N.statsToReport.uint32_video_height=f.uint32_video_height);let w=T?h.remoteVideoTrack:h.remoteAuxiliaryTrack;w.stat.jitterBufferDelay&&(N.videoJitterBufferDelay=w.stat.jitterBufferDelay),w.stat.framesReceived&&(N.statsToReport.uint32_video_consume_render_rate=Math.floor(w.stat.framesDecoded/w.stat.framesReceived*eo(10,6)))}}),!Us(a)){let f=`${m}_main`,T=this._remoteStreamStatMap.get(f);this._remoteStreamStatMap.has(f)&&T&&h!=null&&h.remoteAudioTrack.isSubscribed&&(T.totalAudioBitrate+=a.uint32_audio_codec_bitrate,T.audioCount++,h.remoteAudioTrack.stat.jitterBufferDelay&&(T.audioJitterBufferDelay=h.remoteAudioTrack.stat.jitterBufferDelay),Math.floor(a.uint32_audio_level/Ri*100)>0&&(T.totalAudioLevel+=a.uint32_audio_level/Ri,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&ws)>=0}hasAudioFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&Ms)>=0}hasAuxFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&zn)>=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:h,count:f,audioDelayCount:T,videoDelayCount:A,totalAudioDelay:C,totalVideoDelay:N}=o;t.statsToReport.uint32_avg_down_loss=Math.floor(h/f),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&&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,gs));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>gs&&(t.statsToReport.uint64_play_first_frame_time=t.statsToReport.uint64_start_enter_time+gs)}),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>gs&&(t.statsToReport.uint64_render_first_frame_time=t.statsToReport.uint64_start_enter_time+gs)}),this._pathJoinRoom.uint64_end_time-this._pathJoinRoom.uint64_start_time>gs&&(this._pathJoinRoom.uint64_end_time=this._pathJoinRoom.uint64_start_time+gs)}getReportData(){this._basicInfo.uint32_networkType=Jc();let t={uint32_sdk_app_id:Number(this._room.sdkAppId),msg_user_info:new uc({userId:this._room.userId,tinyId:this._room.tinyId,role:this._room.role==="anchor"?20:21}),msg_basic_info:this._basicInfo,uint32_acc_ip:Vs(this._signalInfo.relayIp),uint32_client_ip:Vs(this._signalInfo.clientIp,!1),uint32_acc_port:this._signalInfo.relayPort||0,uint64_timestamp:Date.now(),uint32_seq:Math.floor(Math.random()*eo(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:Vs(this._signalInfo.clientIp,!1),error_code:[],msg_local_statistics:this._localStreamStat.statsToReport,bytes_report_buf_from_0x1:this._signalInfo.endReportExtend};return ra(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=no.enable?Ti(t,2001,e):yield $l(t),o=r instanceof ArrayBuffer,s=`${Ei(e,to.KEY_POINT)}&gzip=${+o}`,n=!1;navigator.sendBeacon&&(n=navigator.sendBeacon(s,r));let a=[this.uploadKVStat(X),this.uploadKVStat(Zo)];n||a.push(_i({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=pe(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=no.enable?Ti(e,2003,this._room.sdkAppId):yield $l(e),o=r instanceof ArrayBuffer,s=`${Ei(+this._room.sdkAppId,to.KV_STAT)}&gzip=${+o}`,n=!1;navigator.sendBeacon&&(n=navigator.sendBeacon(s,r)),n||_i({url:s,body:r})})}};K([es({settings:{timeout:500,retries:3}})],Gu.prototype,"upload",1);var gs=5e3,$y={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},uc=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}},UE=Gu;var Ih=class{constructor(){l(this,"_startTime");l(this,"_endTime");this._startTime=0,this._endTime=0,this.start()}start(){this._startTime===0&&(this._startTime=Te())}stop(){this._endTime===0&&(this._endTime=Te())}getDuration(){return this._endTime===0?Te()-this._startTime:this._endTime-this._startTime}get startTime(){return this._startTime}get endTime(){return this._endTime}},ju=Ih;var Sh=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 ju,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()}},VE=Sh;var yh=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 ju;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>Hc?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=Te();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=Te();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()<Hc&&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=Te(),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()}},FE=yh;var BE=mi(yi(),1);var qu=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,h=n.height;this.vbMode===1?this.dualStageCropping(r,o,a,u,m,h):this.vbMode===2&&this.movingPortrait(r,o,a,u,m,h)}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,h,f,{min:T,offset:A}=this.calculateBoundary(u,s,t,r),{min:C,offset:N}=this.calculateBoundary(m,n,e,o);return h=2*T+r,f=2*C+o,h/f>this.originalAspect?(h=f*this.originalAspect,A=u-h/2):(f=h/this.originalAspect,N=m-f/2),r/s>a&&(A=0,N=0,h=s,f=n),A=Math.max(0,Math.min(A,s-h)),N=Math.max(0,Math.min(N,n-f)),{sx:A,sy:N,cropWidth:h,cropHeight:f,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)),Le(this.animationState.current.scaleOffsetX)&&Le(this.animationState.target.scaleOffsetX)&&Le(this.animationState.current.scaleOffsetY)&&Le(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(eo(t.sx-e.sx,2)+eo(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,h,f,T,A,C,N,w,x,te,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:(f=(h=this.animationState.current)==null?void 0:h.scaleOffsetX)!=null?f: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:(N=(C=this.animationState.target)==null?void 0:C.scaleRatio)!=null?N:1,scaleOffsetX:(x=(w=this.animationState.target)==null?void 0:w.scaleOffsetX)!=null?x:0,scaleOffsetY:(ue=(te=this.animationState.target)==null?void 0:te.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 By=`#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=>{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
|
|
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
|
+
}`,hA=`#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
|
+
}`,rl=class extends fr{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:T}=e.waterMark;this.wasm.setWaterMark(m,p,g,T)}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,hA),p=this.context.createShader(o.VERTEX_SHADER,mA);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 tl(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(),sr(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(sr(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 il=class extends Rt{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 Fi=[i=>{i.codec="avc1.42e01f"},i=>{delete i.hardwareAcceleration}],$E=(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 Wy(i){return i[0]===0&&i[1]===0&&i[2]===0&&i[3]===1}var Gy=0,Xu=class{constructor(t){l(this,"id",Gy++);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=Re(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),be(this.stateChangeOB,kp((o,s)=>(o!==s&&e.onDecodeDowngradeStateChanged({type:this.type,renderer:this.renderer,reason:this.failedReason,prevState:o,state:s}),s),"INITIALIZED"),qe(this.stopOB),Ue()),this.start()}start(t=0){this.waitFirstKeyFrame=!0,this.stateChangeOB.next("STARTING");let e=be(this.pipe(this.track),qe(this.stopOB),Oi());be(e,Ue(()=>{this.track.stat.framesDecoded++},r=>{if(this.track.log.error(`${this.id} play failed: ${r} retryCount: ${t}`),X.addFailedEvent({key:$E(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:$E(this.type,this.renderer)}),X.addSuccessEvent({key:514704})})),be(e,Vr(1),Ue(()=>{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"&&!Mm()&&(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(!Wy(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=Te();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<=Fi.length;u++){let{supported:m}=yield VideoDecoder.isConfigSupported(this.config);if(m)break;if(u===Fi.length){e.error(3);return}Fi[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 Ju(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",h=>m.write(h))}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",h=>{try{u.image=h,u.update()}catch(f){delete this.goodType,t.log.error(f),e.error(11)}});let m=new cs(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 lc=class extends BE.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 or(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 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=ft.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(),ft.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 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 fu(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;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("render",n=>{var a;(a=this.cameraTrack)==null||a.emit("render",n)})),Mt===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 hu(this.videoContext,{name:"mainDestination",logger:this.log}),this.destination.on("render",m=>{var h;(h=this.cameraTrack)==null||h.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 zu(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 En(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 ti)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 fo){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 us)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 ti?((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 fo?e.source&&e.source.context.destroy():e instanceof us&&(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:h})=>{s.drawImage(n,a,u,m,h)}),$s(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 $s((e==null?void 0:e.imageElement)||e.imageUrl)}catch(f){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(f=>f.type===u)?(this.watermarkImageList=this.watermarkImageList.filter(f=>f.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,(f,T)=>f==="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 $s(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 Xu(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([Mg(function(e){this.log.error("update failed",e)})],lc.prototype,"update",1);var jy=0;var Qu=class extends le{constructor(e){super("room");l(this,"seq",++jy);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,"_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,Xe(e.autoReceiveAudio)&&(this.autoReceiveAudio=e.autoReceiveAudio),Xe(e.autoReceiveVideo)&&(this.autoReceiveVideo=e.autoReceiveVideo),Xe(e.enableAutoPlayDialog)&&(this.enableAutoPlayDialog=e.enableAutoPlayDialog),this._sdkType=e.sdkType,this.keyPointManager=new UE({room:this,frameWorkType:e.frameWorkType,component:e.component,language:e.language}),this.callDurationCalculator=new VE({room:this}),this.badCaseDetector=new FE({room:this}),this.audioManager=new Tu(this),this.videoManager=new lc(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?(Cu([a,a]),Po(`https://${a}`)):(s&&Po(s),n&&Cu(n))}V.once(F.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({sched_domain:oi.main,sched_back_domain:oi.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(Yt.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=Te();try{let{isCached:m,result:h,detailCost:f}=yield ih({userId:this.userId,sdkAppId:this.sdkAppId,roomId:this.useStringRoomId?e.strRoomId:e.roomId,useStringRoomId:this.useStringRoomId,version:nt,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(h,{keysToExclude:["username","credential"]})}`),m&&V.once(F.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({scheduleCache:1})),this.scheduleResult=j(j({},this.scheduleResult),h),Le((s=h.config)==null?void 0:s.retryCount)&&bl(h.config.retryCount),De((n=h.config)==null?void 0:n.loggerDomain)&&Po(h.config.loggerDomain),this.videoDecodeFallbackType=((a=h.config)==null?void 0:a.videoDecodeFallback)||this.videoDecodeFallbackType,this.smallMode=((u=h.config)==null?void 0:u.smallMode)||this.smallMode,V.emit(F.JOIN_SCHEDULE_SUCCESS,{room:this,schedule:this.scheduleResult,detailCost:f}),X.addSuccessEvent({key:521700,cost:Te()-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 HE(i,t=!1){let e=Object.defineProperties(Rt(),{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 Ah=class extends fe{constructor(t,e){super(t);let r=new fe(t);r.next=He,e(r)}},cH=_e(Ah,"takeUntilComplete");var xt={useWt:!0,useAINS:!0,useHardDecoder:"prefer-software",useHardEncoder:"prefer-software",unreliable:!1,debug:!1,assetsPath:"",enableUpload:!0},WE="__INLINE__WORKER__",GE="__INLINE__WASM__",{debug:jE}=console;xt.debug||(console.debug=()=>{});var qy=!WE.startsWith("__"),zy=!GE.startsWith("__");function Yu(){let i=Wo(`${xt.assetsPath?`${xt.assetsPath}/`:""}worker.js`);return qy?URL.createObjectURL(new Blob([atob(WE)],{type:"application/javascript"})):i.startsWith("http")?fetch(i).then(t=>t.blob().then(e=>URL.createObjectURL(e))):i}var mc;function Zu(){return y(this,null,function*(){let i=xt.assetsPath?`${xt.assetsPath}/`:"";return mc||(zy?mc=new TextEncoder().encode(atob(GE)).buffer:mc=yield fetch(Wo(`${i}av_processing.wasm`)).then(t=>t.arrayBuffer()),mc)})}var bh=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=Ye("player"),e=Yu();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 Zu(),flag:xt},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()))})}},Ku=new bh;var Rh=(()=>{if(typeof self=="undefined")return!1;if(!("top"in self&&self!==top)){if("showOpenFilePicker"in self)return"showOpenFilePicker"}return!1})(),gH=Rh?Promise.resolve().then(function(){return Yy}):Promise.resolve().then(function(){return iA});var EH=Rh?Promise.resolve().then(function(){return Ky}):Promise.resolve().then(function(){return sA});var Jy=Rh?Promise.resolve().then(function(){return tA}):Promise.resolve().then(function(){return aA});function vh(...i){return y(this,null,function*(){return(yield Jy).default(...i)})}var Xy=i=>y(void 0,null,function*(){let t=yield i.getFile();return t.handle=i,t}),Qy=(...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(Xy));return i[0].multiple?o:o[0]}),Yy={__proto__:null,default:Qy};function el(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 el=function(e){this.s=e,this.n=e.next},el.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 el(i)}var qE=(o,s,...n)=>y(void 0,[o,s,...n],function*(i,t,e=i.name,r){let a=[],u=[];var m,h=!1,f=!1;try{for(var T,A=function(C){var N,w,x,te=2;for(typeof Symbol!="undefined"&&(w=Symbol.asyncIterator,x=Symbol.iterator);te--;){if(w&&(N=C[w])!=null)return N.call(C);if(x&&(N=C[x])!=null)return new el(N.call(C));w="@@asyncIterator",x="@@iterator"}throw new TypeError("Object is not async iterable")}(i.values());h=!(T=yield A.next()).done;h=!1){let C=T.value,N=`${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:()=>N})))):C.kind!=="directory"||!t||r&&r(C)||a.push(qE(C,t,N,r))}}catch(C){f=!0,m=C}finally{try{h&&A.return!=null&&(yield A.return())}finally{if(f)throw m}}return[...(yield Promise.all(a)).flat(),...yield Promise.all(u)]}),Zy=(...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 qE(e,i.recursive,void 0,i.skipDirectory)}),Ky={__proto__:null,default:Zy},eA=(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((f,T)=>{a[T]={description:f.description||"Files",accept:{}},f.mimeTypes?(T===0&&u&&f.mimeTypes.push(u),f.mimeTypes.map(A=>{a[T].accept[A]=f.extensions||[]})):u?a[T].accept[u]=f.extensions||[]:a[T].accept["*/*"]=f.extensions||[]}),e)try{yield e.getFile()}catch(f){if(e=null,r)throw f}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 h=yield m.createWritable();return"stream"in i?(yield i.stream().pipeTo(h),m):"body"in i?(yield i.body.pipeTo(h),m):(yield h.write(yield i),yield h.close(),m)}),tA={__proto__:null,default:eA},rA=(...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()})}),iA={__proto__:null,default:rA},oA=(...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()})}),sA={__proto__:null,default:oA},nA=(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 h=u.getReader(),f=new ReadableStream({start:C=>function N(){return y(this,null,function*(){return h.read().then(({done:w,value:x})=>{if(!w)return C.enqueue(x),N();C.close()})})}()}),T=new Response(f),A=yield T.blob();return h.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}),aA={__proto__:null,default:nA};var Ch=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=Yu(),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 h=typeof u.old=="string"?u.old:`${u.old.action}ing`,f=typeof u.value=="string"?u.value:`${u.value.action}ing`;console.log(Xc(),u.group,u.name,h,"\u{1F449}",f)}break;case"log":console.log(u);break;case"glog":window.dispatchEvent(new CustomEvent(a,{detail:u}));break}},r.postMessage({wasm:yield Zu(),flag:xt},this.ports)}))})}destroy(){var t;console.log("destroy worker",this.name),delete this.ready,(t=this.worker)==null||t.terminate()}},Nh=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()}},Dh=class i extends Ch{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 Gt(i.prototype,this,"create").call(this),this.switchValue.forEach((e,r)=>{this.extendChannel.port1.postMessage([r,e])}),this)})}},So=new Dh,Es,cA=-1;function zE(i){return console.log(i),Es.push(i.slice()),Es.length>1e3&&Es.shift(),i}function JE(i){return y(this,null,function*(){switch(cA){case 0:this.edpl.willDecodeAudio=zE;break;case 2:this.edpl.didEncodeAudio=zE;break}yield So.create(),V.emit(F.JOIN_SEND_CMD,{room:this});let t=new Nh(So,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:wh},useWt:{set:dA},enableDebug:{set(i){console.debug=i?jE:()=>{},So.setSwitchValue("enableDebug",i)}},useV2:{set:Mh},dump:{value(){if(Es||(console.warn("dump audio will be activated at next time join room"),Es=[]),!Es.length){console.warn("no audio data to dump,try it later");return}let i=[];return Es.forEach(t=>{i.push(new Uint16Array([t.length])),i.push(t)}),vh(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;So.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,So.extendChannel.port1.postMessage(["dump",i]),s.port2.close(),o(new Blob(e)))}});return vh(r,{fileName:i,extensions:[".pcm"]})}},hardDec:{set(i){switch(i){case!0:xt.useHardDecoder="prefer-hardware";break;case!1:xt.useHardDecoder="prefer-software";break;default:xt.useHardDecoder="no-preference"}}}});function wh(i){return y(this,null,function*(){So.setSwitchValue("useAINS",i)})}function Mh(i){return y(this,null,function*(){So.setSwitchValue("useV2",i)})}function dA(i){return y(this,null,function*(){So.setSwitchValue("useWt",i)})}function XE(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 QE(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),be(HE(r.port2),qe(Re(i,le.INIT)),Ue(s=>{let{data:n,packetsReceived:a}=s;i.stat.packetsReceived=a,i.stat.framesReceived++,e++;let u=n[4]&31;if(e<=10){let h=Array.from(n.slice(0,10)).map(f=>f.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: ${h}`)}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 tl=[];function ZE(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<=tl.length;m++)if(!tl[m]){tl[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(pe(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 h=s.getAudioTracks()[0];h&&(n.disconnect(),s.removeTrack(h)),s.addTrack(m),this._log.info("push audio track:",m.readyState,m.getSettings().deviceId),n=Ye("player").createMediaStreamSource(s),n.connect(Ku.worklet,0,this.index)};be(Re(i,"output-media-track-changed"),qe(Re(i,"ready")),Ue(a,console.error,()=>{this._log.info("stop push audio",e),i.volume=0,n.disconnect(),tl[this.index]=null,o&&o.port1.postMessage(null),r.port1.postMessage(null)})),be(t,Ja(m=>i.volume=m),xi(pu(1e3)),Ue(()=>{i.volume=0})),a(i.outMediaTrack)}var YH=new Intl.DateTimeFormat("zh-CN",{dateStyle:"short",timeStyle:"medium"});var Oh=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<=Fi.length;o++){let{supported:s}=yield VideoDecoder.isConfigSupported(this.config);if(s)break;if(o===Fi.length)return;Fi[o](this.config)}else e.recreateCount<=Fi.length&&Fi[e.recreateCount-1](this.config);(r=e.encoder)==null||r.configure(this.config)})}close(){this.port.postMessage(null),this.port.close()}};function rl(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:xt.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 Oh(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;Kn({configureBr:[a.data.bitrate,u]}),n.session&&n.configure({bitrate:u},n.session)}},this._log.info("start push",r,t),n})}function KE(i){return y(this,null,function*(){var h;let t=i.mediaType===2,e=t?"screen":"video",r={type:t?7:2,profile:i.profile,trackType:t?"screen":"camera",crypto:!!((h=i.manager)!=null&&h.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 rl.call(this,i,r);this._log.info("VideoEncoder created",r);let u,m=f=>y(this,null,function*(){if(u==null||u.abort("track changed"),!f)return;u=new AbortController;let{width:T,height:A,displaySurface:C}=f.getSettings();T&&(a.config.width=T),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:",f.readyState,f.getSettings());let w;if(typeof MediaStreamTrackProcessor!="undefined"&&!(f instanceof CanvasCaptureMediaStreamTrack))w=new MediaStreamTrackProcessor({track:f}).readable;else{let te;w=new ReadableStream({start(ue){i.on("render",ye=>{if(i.player.mode!==0)try{ue.enqueue(new VideoFrame(ye,{timestamp:performance.now()*1e3}))}catch(Ie){console.warn(Ie)}})},pull(ue){return y(this,null,function*(){if(i.player.mode===0&&Di()&&i.player.element)return new Promise(ye=>{i.player.element.requestVideoFrameCallback((Ie,Y)=>{try{let Pe=new VideoFrame(i.player.element);ue.enqueue(Pe)}catch(Pe){console.warn(Pe)}ye()})})})}})}let x="small"in i&&i.small;return x?(this.smallEncoder||(this.smallEncoder=yield rl.call(this,i,{profile:x,type:3,trackType:o})),this.smallEncoder.track=f,this.smallEncoder.label="small",w=yield this.smallEncoder.trans(w,u,this)):this.smallEncoder&&(this.smallEncoder.close(),delete this.smallEncoder),a.track=f,a.label=e,a.start(w,u,this)});return be(Re(i,"output-media-track-changed"),qe(Re(i,"ready")),Ue(m,console.error,()=>{var f;this._log.info("stop push",e,r),u.abort("unpublish"),a.close(),(f=this.smallEncoder)==null||f.close()})),m(i.outMediaTrack)})}var yo=class yo 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(yo.INTERVALCHANGED,this.interval)}),be(Re(this,yo.INTERVALCHANGED),ho(s=>this.room.state==="joined"?this.room.fromWorker("getAudioEnergy",s):be(jg(s),po(()=>[]))),Ue(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(yo.INTERVALCHANGED,this.interval)}stop(){}};l(yo,"INTERVALCHANGED","intervalChanged"),K([Ze([le.INIT,le.OFF],le.ON)],yo.prototype,"start",1),K([Ze([],le.OFF)],yo.prototype,"stop",1);var il=yo;var Ao=class Ao extends Qu{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 il(this));l(this,"enableAIVoice",wh);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:sm(),uint32_device_type:0,str_os_verion:nm(),uint32_link_type:1,str_client_version:nt,uint32_net_type:Lo[zr.getNetworkType()],ua:navigator.userAgent,version:""}});l(this,"joinAbortController",new AbortController);l(this,"smallAbortCtrl");l(this,"smallEncoder");e.tinyId&&(this.tinyId=e.tinyId,Mh(!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,h;let s=zr.getEnv(),n=Od(),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:(h=this.scheduleResult.iceServers)!=null&&h.length?this.scheduleResult.iceServers[0].urls:[],proxy_unified:this.proxy_unified,domains:this.scheduleResult.domains,env:s,osName:Zs(),browserInfo:Od(),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:nt,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 JE.call(this,a),console.log(this),Ku.playAudio(f=>this.postMessage({cmd:"setAudioWorkletPort"},[f])),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=qe(Re(this,"left"));be(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,Ue(({data:r,port:o})=>{let s=this.audioManager.decodePipeline[0]({frame:{data:r.data.buffer}});o.postMessage(pe(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 Wu(this,r);this.remotePublishedUserMap.set(r.userId,o),this.emit("remote-published",o);return;case"5":{let f=r,T=this.remotePublishedUserMap.get(f);T&&(T.remoteVideoTrack.close(),T.remoteAuxiliaryTrack.close(),T.remoteAudioTrack.close(),this.remotePublishedUserMap.delete(f),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:f,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"network-quality":this.quality=j({},r);let{uplinkLoss:s,uplinkRTT:n,uplinkInfo:a,downlinkInfo:u,msg_down_stream_info:m}=r,h={str_sdk_version:nt,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:Lo[Zn()]},msg_event_msg:Jg(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:h}),this.emit("heartbeat-report",h),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*(){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:ZE.call(this,a);break;default:yield KE.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(ct)})}subscribe(...e){return y(this,null,function*(){let r=e.reduce((f,T)=>T.mediaType|f,0),{userId:o,tinyId:s,streamType:n}=e[0],a=this.remotePublishedUserMap.get(o),u=j({},a.subscribeState),m=Object.assign(new _a,u);m.mediaType|=r,V.emit(F.SUBSCRIBE_START,{room:this,streamType:n,remotePublishedUser:a,subscribeState:m});let h=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(f=>m.mediaType&f).map(f=>({mediaType:f,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]}))}});console.dir("subscribe",h),yield Promise.all(e.filter(f=>!f.isSubscribed).map(f=>{switch(f.mediaType){case 1:return XE.call(this,f);default:return QE.call(this,f)}})),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 rl.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([lo(Ao.prototype.afterJoin),Ze(["left",le.INIT],"joined"),OE()],Ao.prototype,"join",1),K([Ze("joined","left",{ignoreError:!0}),xE()],Ao.prototype,"leave",1),K([Yd((...e)=>0),kE()],Ao.prototype,"publish",1),K([Yd((...e)=>0),PE()],Ao.prototype,"unpublish",1),K([Yd((...e)=>e[0].userId),LE()],Ao.prototype,"subscribe",1);var ol=Ao;vn.frameWorkType=37;vn.create=function(i){let t=vn._create.call(this,ol,i);return t._use(Zp,i==null?void 0:i.assetsPath),i!=null&&i.assetsPath&&(xt.assetsPath=i==null?void 0:i.assetsPath),console.log("trtc wasm sdk:",nt,"created",xt),t};Object.assign(vn.prototype,{_setCurrentSpeaker(i){let t=Ye("player");return t!=null&&t.setSinkId?t.setSinkId(i):Promise.reject("not support")},_enableVideoDecodeFallback(i,t){return y(this,null,function*(){return this.startPlugin(Zp.Name,{type:"webCodecs",renderer:"videoFrame",track:i,config:{codec:"avc1.420028"},fallback:"wasm"}),new Promise((e,r)=>{be(Re(i,"decode-downgrade-state-changed"),zt(o=>o.state==="STARTED"),Vr(1),Vp(1e4),qe(Re(i,le.INIT)),Ue(e,r))})})}});Lm(37);var AW=vn;export{AW 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 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};
|