@volcengine/vepusher 2.0.4-rc.17 → 2.0.4-rc.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.umd.js CHANGED
@@ -63,10 +63,10 @@ registerProcessor('vumeter', class extends AudioWorkletProcessor {
63
63
  cursor: pointer;
64
64
  z-index:100;
65
65
  background-size: 45px;
66
- }`,t=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.appendChild(document.createTextNode(e)),t.appendChild(r);var n=document.createElement("div");n.innerHTML='<div id="debugger-applog-web" class="debugger-applog-web"></div>';var s=document.createElement("div");s.innerHTML='<div id="debugger-container" class="debugger-container"></div>',document.getElementsByTagName("body")[0].appendChild(n),document.getElementsByTagName("body")[0].appendChild(s);var a=document.getElementById("debugger-applog-web");a&&a.addEventListener("click",function(){window&&window.postMessage({type:"devtool:web:open-draw"},location.origin)})},i}(),Sn={autotrack:{src:{cn:te("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z21z22z18z22z1gz1az4az18z1nz1nz1jz1mz1ez1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz18z1nz1nz1jz1mz1ez49z21z1bz1iz49z21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz4hz4bz1nz1jz23z1ez1gz1lz4bz18z23z22z1mz22z20z18z1az1iz4az1hz21"),sg:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-sg/log-sdk/collect/5/plugin/autotrack.js",va:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-us/log-sdk/collect/5/plugin/autotrack.js"},object:"LogAutoTrack"},ab:{src:{cn:te("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z21z22z18z22z1gz1az4az18z1nz1nz1jz1mz1ez1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz18z1nz1nz1jz1mz1ez49z21z1bz1iz49z21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz4hz4bz1nz1jz23z1ez1gz1lz4bz18z19z4az1hz21"),sg:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-sg/log-sdk/collect/5/plugin/ab.js",va:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-us/log-sdk/collect/5/plugin/ab.js"},object:"LogAb"},stay:{src:{cn:te("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z21z22z18z22z1gz1az4az18z1nz1nz1jz1mz1ez1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz18z1nz1nz1jz1mz1ez49z21z1bz1iz49z21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz4hz4bz1nz1jz23z1ez1gz1lz4bz21z22z18z27z4az1hz21"),sg:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-sg/log-sdk/collect/5/plugin/stay.js",va:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-us/log-sdk/collect/5/plugin/stay.js"},object:"LogStay"},route:{src:{cn:te("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z21z22z18z22z1gz1az4az18z1nz1nz1jz1mz1ez1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz18z1nz1nz1jz1mz1ez49z21z1bz1iz49z21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz4hz4bz1nz1jz23z1ez1gz1lz4bz20z1mz23z22z1cz4az1hz21"),sg:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-sg/log-sdk/collect/5/plugin/route.js",va:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-us/log-sdk/collect/5/plugin/route.js"},object:"LogRoute"},tracer:{src:{cn:te("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z21z22z18z22z1gz1az4az18z1nz1nz1jz1mz1ez1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz18z1nz1nz1jz1mz1ez49z21z1bz1iz49z21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz4hz4bz1nz1jz23z1ez1gz1lz4bz22z20z18z1az1cz20z4az1hz21"),sg:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-sg/log-sdk/collect/5/plugin/tracer.js",va:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-us/log-sdk/collect/5/plugin/tracer.js"},object:"LogTracer"},retry:{src:{cn:te("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z21z22z18z22z1gz1az4az18z1nz1nz1jz1mz1ez1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz18z1nz1nz1jz1mz1ez49z21z1bz1iz49z21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz4hz4bz1nz1jz23z1ez1gz1lz4bz20z1cz22z20z27z4az1hz21"),sg:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-sg/log-sdk/collect/5/plugin/retry.js",va:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-us/log-sdk/collect/5/plugin/retry.js"},object:"LogRetry"},visual:{src:{cn:te("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z21z22z18z22z1gz1az4az18z1nz1nz1jz1mz1ez1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz18z1nz1nz1jz1mz1ez49z21z1bz1iz49z21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz4hz4bz1nz1jz23z1ez1gz1lz4bz24z1gz21z23z18z1jz4az1hz21"),sg:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-sg/log-sdk/collect/5/plugin/visual.js",va:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-us/log-sdk/collect/5/plugin/visual.js"},object:"LogVisual"}},Qm=["ab","autotrack","Stay","store","et","profile","cep","heartbeat","monitor","route","tracer"],be=function(){function i(e){this.disableAutoPageView=!1,this.bridgeReport=!1,this.staging=!1,this.pluginInstances=[],this.sended=!1,this.started=!1,this.destroy=!1,this.sdkReady=!1,this.adapters={},this.loadType="base",this.sdkStop=!1,this.name=e,this.hook=new Uf,this.remotePlugin=new Map,this.Types=w,this.adapters.storage=He,this.loadType="full"}return i.usePlugin=function(e,t,r){if(t){for(var n=!1,s=0,a=i.plugins.length;s<a;s++)if(i.plugins[s].name===t){i.plugins[s].plugin=e,i.plugins[s].options=r||{},n=!0;break}n||i.plugins.push({name:t,plugin:e,options:r})}else i.plugins.push({plugin:e})},i.prototype.usePlugin=function(e,t,r){e&&(this.loadType==="full"&&Qm.includes(e)?console.info("your sdk version has "+e+" plugin already ~"):t?typeof t=="string"?this.remotePlugin.get(e)||this.remotePlugin.set(e,{src:t,call:r}):this.remotePlugin.get(e)||this.remotePlugin.set(e,{instance:t}):this.remotePlugin.get(e)||this.remotePlugin.set(e,"sdk"))},i.prototype.init=function(e){var t,r=this;this.logger=new Zf(this.name,e.log),this.inited?this.logger.warn("[instance: "+this.name+"], every instance's api: init, can be call only one time!"):e&&ei(e)?e.app_id&&typeof(t=e.app_id)=="number"&&!isNaN(t)?!e.app_key||function(n){return typeof n=="string"}(e.app_key)?(e.channel_domain||["cn","sg","va","my"].indexOf(e.channel)!==-1||(this.logger.warn("channel must be `cn`, `sg`,`va`, `my` !"),e.channel="cn"),this.spider=new Qf,this.spider.checkSpider(e)?this.logger.warn("your env may be a spider, can not report!"):(this.appBridge=new Yf(this,e.enable_native),this.requestManager=new Xm(this,e),this.bridgeReport=this.appBridge.bridgeInject(),this.configManager=new Xf(this,e),this.debugger=new Zm(this,e),this.initConfig=e,this.emit(w.Init),this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行Init",data:e,level:"info",time:Date.now(),infoType:"cus"}),this.destroy=!1,e.disable_auto_pv&&(this.disableAutoPageView=!0),this.bridgeReport||(this.configManager.set({app_id:e.app_id}),this.eventManager=new tm,this.tokenManager=new im,this.sessionManager=new em,Promise.all([new Promise(function(n){r.once(w.TokenComplete,function(){n(!0)})}),new Promise(function(n){r.once(w.Start,function(){n(!0)})})]).then(function(){try{i.plugins.reduce(function(n,s){var a=s.plugin,o=s.options,d=Object.assign(r.initConfig,o),c=new a;return c.apply(r,d),n.push(c),r.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK加载"+s.name+"插件",level:"info",time:Date.now(),infoType:"sdk"}),n},r.pluginInstances)}catch(n){console.warn("load plugin error, "+n.message),r.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK加载插件发生了异常",level:"error",time:Date.now(),data:n.message,infoType:"sdk"})}r.sdkReady=!0,r.emit(w.Ready),r.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 用户信息初始化完成",time:Date.now(),secType:"USER",level:"info",data:r.configManager.get("user"),infoType:"sdk"}),r.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 初始化完成",time:Date.now(),level:"info",data:r.configManager.get("user"),infoType:"sdk"}),r.logger.info("appid: "+e.app_id+", userInfo:"+JSON.stringify(r.configManager.get("user"))),r.logger.info("appid: "+e.app_id+", sdk is ready, version type is "+r.loadType+", version is "+Ye+", you can report now !!!"),e.disable_auto_pv&&(r.disableAutoPageView=!0);try{r.loadType==="full"&&(e.enable_ab_test||e.autotrack)&&(window.opener||window.parent).postMessage("[tea-sdk]ready","*")}catch(n){r.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK发生了异常",level:"error",time:Date.now(),data:n.message,infoType:"sdk"})}r.pageView(),r.on(w.TokenChange,function(n){n==="webid"&&r.pageView(),r.logger.info("appid: "+e.app_id+" token change, new userInfo:"+JSON.stringify(r.configManager.get("user"))),r.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 设置了用户信息",time:Date.now(),secType:"USER",level:"info",data:r.configManager.get("user"),infoType:"sdk"})}),r.on(w.TokenReset,function(){r.logger.info("appid: "+e.app_id+" token reset, new userInfo:"+JSON.stringify(r.configManager.get("user"))),r.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 重置了用户信息",time:Date.now(),secType:"USER",level:"info",data:r.configManager.get("user"),infoType:"sdk"})}),r.on(w.RouteChange,function(n){n.init||e.disable_route_report||r.pageView()})}),this.tokenManager.apply(this,e),this.eventManager.apply(this,e),this.sessionManager.apply(this,e)),this.inited=!0)):this.logger.warn("app_key param is error, must be string, please check!"):this.logger.warn("app_id param is error, must be number, please check!"):this.logger.warn("init params error,please check!")},i.prototype.config=function(e){if(!this.inited)return console.warn("config must be use after function init"),void this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK执行Config发生了异常",level:"error",time:Date.now(),data:"config must be use after function init",infoType:"sdk"});if(!e||!ei(e))return console.warn("config params is error, please check"),void this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK执行Config发生了异常",level:"error",time:Date.now(),data:"config params is error, please check",infoType:"sdk"});if(this.bridgeReport)this.appBridge.setConfig(e);else{e._staging_flag&&e._staging_flag===1&&(this.staging=!0),e.disable_auto_pv&&(this.disableAutoPageView=!0,delete e.disable_auto_pv);var t=B({},e),r=this.initConfig.configPersist||this.initConfig.config_persist||!1;if(this.initConfig&&r){var n=this.configManager.getStore();n&&(t=Object.assign(n,e)),this.configManager.setStore(e)}t.web_id,t.user_unique_id;var s=function(a,o){var d={};for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&o.indexOf(c)<0&&(d[c]=a[c]);if(a!=null&&typeof Object.getOwnPropertySymbols=="function"){var u=0;for(c=Object.getOwnPropertySymbols(a);u<c.length;u++)o.indexOf(c[u])<0&&(d[c[u]]=a[c[u]])}return d}(t,["web_id","user_unique_id"]);this.configManager.set(s),t.hasOwnProperty("web_id")&&this.emit(w.ConfigWebId,t.web_id),t.hasOwnProperty("user_unique_id")&&this.emit(w.ConfigUuid,t.user_unique_id),this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行Config",level:"info",time:Date.now(),data:t,infoType:"cus"})}},i.prototype.setUserUniqueID=function(e){this.config({user_unique_id:e})},i.prototype.setHeaderInfo=function(e,t){var r={};r[e]=t,this.config(r)},i.prototype.removeHeaderInfo=function(e){var t={};t[e]=void 0,this.config(t)},i.prototype.setDomain=function(e){this.configManager&&this.configManager.setDomain(e),this.emit(w.ConfigDomain)},i.prototype.getConfig=function(e){var t;return(t=this.configManager)===null||t===void 0?void 0:t.get(e)},i.prototype.send=function(){this.start()},i.prototype.start=function(){this.inited&&!this.sended&&(this.sended=!0,this.started=!0,this.emit(w.Start),this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行Start",level:"info",time:Date.now(),infoType:"cus"}),this.bridgeReport&&(this.pageView(),this.emit(w.Ready)))},i.prototype.event=function(e,t){var r=this;try{var n=[];if(Array.isArray(e))e.forEach(function(a){var o=r.processEvent(a[0],a[1]||{});o&&n.push(o)});else{var s=this.processEvent(e,t);if(!s)return;n.push(s)}this.bridgeReport?n.forEach(function(a){var o=a.event,d=a.params;r.appBridge.onEventV3(o,JSON.stringify(d))}):n.length&&(this.emit(w.Event,n),this.emit(w.SessionResetTime)),this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行Event",level:"info",time:Date.now(),data:e,infoType:"cus"})}catch(a){this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行Event发生了异常",level:"error",time:Date.now(),data:a.message,infoType:"sdk"})}},i.prototype.beconEvent=function(e,t){if(Array.isArray(e))console.warn("beconEvent not support batch report, please check");else{var r=[],n=this.processEvent(e,t||{});n&&(r.push(n),r.length&&(this.emit(w.BeconEvent,r),this.emit(w.SessionResetTime)),this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行Beacon Event",level:"info",time:Date.now(),data:e,infoType:"sdk"}))}},i.prototype.beaconEvent=function(e,t){this.beconEvent(e,t)},i.prototype.processEvent=function(e,t){t===void 0&&(t={});try{if(!e)return console.warn("eventName is null, please check"),null;var r=e;/^event\./.test(e)&&(r=e.slice(6));var n=t;typeof n!="object"&&(n={}),n.profile?delete n.profile:n.event_index=Gf();var s=void 0;return n.local_ms?(s=n.local_ms,delete n.local_ms):s=+new Date,{event:r,params:n,local_time_ms:s,is_bav:this.initConfig&&this.initConfig.autotrack?1:0}}catch(a){return this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK发生了异常",level:"error",time:Date.now(),data:a.message,infoType:"sdk"}),{event:e,params:t}}},i.prototype.filterEvent=function(e){this.eventFilter=e},i.prototype.on=function(e,t){this.hook.on(e,t)},i.prototype.once=function(e,t){this.hook.once(e,t)},i.prototype.off=function(e,t){this.hook.off(e,t)},i.prototype.emit=function(e,t,r){this.hook.emit(e,t,r)},i.prototype.set=function(e){this.hook.set(e)},i.prototype.stop=function(){this.sdkStop=!0},i.prototype.reStart=function(){this.sdkStop=!1},i.prototype.pageView=function(){this.disableAutoPageView||this.predefinePageView()},i.prototype.predefinePageView=function(e){if(e===void 0&&(e={}),this.inited){var t={title:document.title||location.pathname,url:location.href,url_path:this.handlePath(),time:Date.now(),referrer:window.document.referrer,$is_first_time:""+(this.configManager&&this.configManager.is_first_time||!1)},r=B(B({},t),e);this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 上报PV",level:"info",time:Date.now(),infoType:"sdk"}),this.event("predefine_pageview",r)}else console.warn("predefinePageView must be use after function init")},i.prototype.handlePath=function(){var e=location.pathname;try{if(this.initConfig.allow_hash){var t=new URL(location.href).hash.match(/#\/([^?#]+)/i);return t&&t.length?t[1]:location.pathname}}catch{e=location.pathname}return e},i.prototype.clearEventCache=function(){this.emit(w.CleanEvents)},i.prototype.setWebIDviaUnionID=function(e){if(e){var t=Lo(e);this.config({web_id:""+t,wechat_unionid:e}),this.emit(w.CustomWebId)}},i.prototype.setWebId=function(e){this.config({web_id:""+e})},i.prototype.setWebIDviaOpenID=function(e){if(e){var t=Lo(e);this.config({web_id:""+t,wechat_openid:e}),this.emit(w.CustomWebId)}},i.prototype.setNativeAppId=function(e){this.bridgeReport&&this.appBridge.setNativeAppId(e)},i.prototype.setRequestHeaders=function(e){this.emit(w.CustomHeader,e)},i.prototype.getSessionId=function(){return Dt()},i.prototype.setSessionId=function(e){this.emit(w.SessionReset,e)},i.prototype.resetStayDuration=function(e,t,r){this.emit(w.ResetStay,{url_path:e,title:t,url:r},w.Stay)},i.prototype.resetStayParams=function(e,t,r){e===void 0&&(e=""),t===void 0&&(t=""),r===void 0&&(r=""),this.emit(w.SetStay,{url_path:e,title:t,url:r},w.Stay)},i.prototype.getToken=function(e,t){var r=this;if(this.inited){var n=!1,s=function(o){if(!n){n=!0;var d=r.configManager.get().user;return o&&(d.tobid=o,d["diss".split("").reverse().join("")]=o),e(B({},d))}},a=function(){r.tokenManager.getTobId().then(function(o){s(o)})};this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行GetToken",level:"info",time:Date.now(),infoType:"cus"}),this.sdkReady?a():(t&&setTimeout(function(){s()},t),this.on(w.Ready,function(){a()}))}else console.warn("getToken must be use after function init")},i.prototype.profileSet=function(e){this.bridgeReport?this.appBridge.profileSet(JSON.stringify(e)):this.emit(w.ProfileSet,e,w.Profile),this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行profileSet",level:"info",time:Date.now(),data:e,infoType:"cus"})},i.prototype.profileSetOnce=function(e){this.bridgeReport?this.appBridge.profileSetOnce(JSON.stringify(e)):this.emit(w.ProfileSetOnce,e,w.Profile),this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行profileSetOnce",level:"info",time:Date.now(),data:e,infoType:"cus"})},i.prototype.profileIncrement=function(e){this.bridgeReport?this.appBridge.profileIncrement(JSON.stringify(e)):this.emit(w.ProfileIncrement,e,w.Profile),this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行profileIncrement",level:"info",time:Date.now(),data:e,infoType:"cus"})},i.prototype.profileUnset=function(e){this.bridgeReport?this.appBridge.profileUnset(e):this.emit(w.ProfileUnset,e,w.Profile),this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行profileUnset",level:"info",time:Date.now(),data:e,infoType:"cus"})},i.prototype.profileAppend=function(e){this.bridgeReport?this.appBridge.profileAppend(JSON.stringify(e)):this.emit(w.ProfileAppend,e,w.Profile),this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行profileAppend",level:"info",time:Date.now(),data:e,infoType:"cus"})},i.prototype.setExternalAbVersion=function(e){this.emit(w.AbExternalVersion,typeof e=="string"&&e?(""+e).trim():null,w.Ab)},i.prototype.getVar=function(e,t,r){this.emit(w.AbVar,{name:e,defaultValue:t,callback:r},w.Ab)},i.prototype.getABconfig=function(e,t){this.emit(w.AbConfig,{params:e,callback:t},w.Ab)},i.prototype.getABConfig=function(e,t){this.emit(w.AbConfig,{params:e,callback:t},w.Ab)},i.prototype.getAbSdkVersion=function(){return this.configManager.getAbVersion()},i.prototype.onAbSdkVersionChange=function(e){var t=this;return this.emit(w.AbVersionChangeOn,e,w.Ab),function(){t.emit(w.AbVersionChangeOff,e,w.Ab)}},i.prototype.offAbSdkVersionChange=function(e){this.emit(w.AbVersionChangeOff,e,w.Ab)},i.prototype.openOverlayer=function(){this.emit(w.AbOpenLayer,"",w.Ab)},i.prototype.closeOverlayer=function(){this.emit(w.AbCloseLayer,"",w.Ab)},i.prototype.getAllVars=function(e){this.emit(w.AbAllVars,e,w.Ab)},i.prototype.destoryInstace=function(){this.destroy||(this.destroy=!0,this.off(w.TokenComplete),this.emit(w.DestoryInstance))},i.prototype.destroyInstance=function(){this.destroy||(this.destroy=!0,this.off(w.TokenComplete),this.emit(w.DestoryInstance))},i.plugins=[],i}(),En="__rangers_ab_style__";(function(i){i[i.Var=0]="Var",i[i.All=1]="All"})(vi||(vi={}));var Ym=function(){function i(){this.fetchStatus="no",this.refreshFetchStatus="complete",this.versions=[],this.extVersions=[],this.mulilinkVersions=[],this.enable_multilink=!1,this.enable_ab_visual=!1,this.editMode=!1,this.callbacks=[],this.data=null,this.changeListener=new Map,this.readyStatus=!1,this.exposureCache=[]}return i.prototype.apply=function(e,t){var r=this;if(t.enable_ab_test){this.collect=e,this.config=t;var n=t.enable_multilink,s=t.ab_channel_domain,a=t.enable_ab_visual,o=t.ab_cross,d=t.ab_cookie_domain,c=t.ab_timeout,u=s||te(Go[t.channel||"cn"]),l=e.adapters.storage,h=this.collect.Types;this.types=h,this.cacheStorgae=new l(!1),this.timeout=c||3e3,this.enable_multilink=n,this.enable_ab_visual=a,this.abKey="__tea_sdk_ab_version_"+t.app_id,this.ab_cross=o,this.ab_cookie_domain=d||"",this.fetchUrl=u+"/service/2/abtest_config/",this.reportUrl=""+e.configManager.getUrl("event"),this.exposureLimit=t.exposure_limit||20,this.ab_batch_time=t.ab_batch_time||500,this.ab_user_mode=t.ab_user_mode||"user_unique_id",this.callbackMap=new Map,this.collect.on(h.TokenChange,function(p){p==="uuid"&&r.readyStatus&&(r.clearCache(),r.fetchAB())}),this.collect.on(h.TokenReset,function(p){p==="uuid"&&r.readyStatus&&(r.clearCache(),r.fetchAB())}),this.collect.on(h.AbVar,function(p){var f=p.name,v=p.defaultValue,m=p.callback;r.getVar(f,v,m)}),this.collect.on(h.AbAllVars,function(p){r.getAllVars(p)}),this.collect.on(h.AbConfig,function(p){var f=p.params,v=p.callback;r.getABconfig(f,v)}),this.collect.on(h.AbExternalVersion,function(p){r.setExternalAbVersion(p)}),this.collect.on(h.AbOpenLayer,function(){r.openOverlayer()}),this.collect.on(h.AbCloseLayer,function(){r.closeOverlayer()}),this.collect.on(h.AbVersionChangeOn,function(p){r.changeListener.set(p,p)}),this.collect.on(h.AbVersionChangeOff,function(p){r.changeListener.get(p)&&r.changeListener.delete(p)}),this.loadMode(),(this.enable_ab_visual||this.enable_multilink)&&this.openOverlayer(this.config.multilink_timeout_ms||500),this.checkLocal(),this.ready("ab"),this.readyStatus||(this.fetchAB(),this.readyStatus=!0),this.collect.emit(h.AbReady)}},i.prototype.ready=function(e){var t=this;if(this.collect.set(e),this.collect.hook._hooksCache.hasOwnProperty(e)){var r=this.collect.hook._hooksCache[e];if(!Object.keys(r).length)return;var n=function(a){r[a].length&&r[a].forEach(function(o){t.collect.hook.emit(a,o)})};for(var s in r)n(s)}},i.prototype.loadMode=function(){var e=function(){try{var s=JSON.parse(atob(window.name));return s||void 0}catch{return}}(),t="";if(e){var r=e.scenario,n=e.href;r?(this.editMode=!0,t=r):!n||n.indexOf("datatester")===-1&&n.indexOf("visual-editor")===-1||(this.editMode=!0,t="visual-editor")}this.enable_ab_visual&&t==="visual-editor"&&this.collect.destoryInstace()},i.prototype.checkLocal=function(){var e=this.getABCache(),t=e.ab_version,r=e.ab_ext_version,n=e.ab_version_multilink,s=e.data,a=this.checkFromUrl();a?this.mulilinkVersions.push(a):this.mulilinkVersions=n||[],this.extVersions=r||[],this.versions=t||[],this.data=s;var o=this.versions.concat(this.extVersions);this.enable_multilink&&(o=o.concat(this.mulilinkVersions)),this.configVersions(o.join(","))},i.prototype.checkFromUrl=function(){var e=Ki(window.location.href);return e&&e.vid?e.vid:""},i.prototype.updateVersions=function(){var e=this.extVersions.length?this.versions.concat(this.extVersions):this.versions;this.enable_multilink&&(e=e.concat(this.mulilinkVersions)),this.configVersions(e.join(",")),this.updateABCache(),this.changeListener.size>0&&this.changeListener.forEach(function(t){typeof t=="function"&&t(e)})},i.prototype.configVersions=function(e){this.collect.configManager.setAbVersion(e)},i.prototype.getVar=function(e,t,r){if(!e)throw new Error("getVar key must not be empty");if(t===void 0&&console.warn("getVar defaultValue is illegal, please check!"),typeof r!="function")throw new Error("getVar callback must be a function");var n={name:e,defaultValue:t,callback:r,type:vi.Var};this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,secType:"AB",info:"SDK 调用GetVar",level:"info",time:Date.now(),data:e,infoType:"cus"}),this.fetchStatus==="complete"&&this.refreshFetchStatus==="complete"?this.getRealVar(n,e):(this.callbackMap.get(e),this.callbackMap.set(e,n))},i.prototype.getRealVar=function(e,t){var r=e.name,n=e.defaultValue,s=e.callback,a=this.data;if(a){var o=a[r];if(o&&ei(o)){var d=a[r].vid;return t==="$ab_url"?this.mulilinkVersions.includes(d)||this.mulilinkVersions.push(d):this.versions.includes(d)||this.versions.push(d),this.updateVersions(),this.fechEvent(d,t||r,n,s,o.val),void this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,secType:"AB",info:"SDK执行GetVar,并曝光了实验"+r,level:"info",time:Date.now(),data:a[r],infoType:"sdk"})}this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,secType:"AB",info:"SDK执行GerVar默认回调",level:"info",time:Date.now(),data:this.data,infoType:"sdk"}),s(n)}else s(n)},i.prototype.getAllVars=function(e){if(typeof e!="function")throw new Error("getAllVars callback must be a function");var t={callback:e,type:vi.All};this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,secType:"AB",info:"SDK 调用GetAllVars",level:"info",time:Date.now(),infoType:"cus"}),this.fetchStatus==="complete"&&this.refreshFetchStatus==="complete"?this.getRealAllVars(t):this.callbackMap.set("allVars",t)},i.prototype.getRealAllVars=function(e){(0,e.callback)(this.data?JSON.parse(JSON.stringify(this.data)):{}),this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,secType:"AB",info:"SDK 执行GetAllVars",level:"info",time:Date.now(),data:this.data,infoType:"sdk"})},i.prototype.fechEvent=function(e,t,r,n,s){try{if(this.config.disable_track_event||!e)return;var a=this.collect.configManager.get(),o=a.header,d=a.user,c=this.getABCache(),u=d[this.ab_user_mode]||d.user_unique_id;if(c&&c.uuid&&c.uuid!==u)return;var l={event:"abtest_exposure",ab_sdk_version:""+e,params:JSON.stringify({app_id:this.config.appId,ab_url:t==="$ab_url"?r:window.location.href}),local_time_ms:Date.now()};o.custom=JSON.stringify(o.custom);var h={events:[l],user:d,header:o};this.reportExposure(h,t),n&&n(s)}catch(p){this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 发生了异常",level:"error",time:Date.now(),data:p.message,infoType:"sdk"})}},i.prototype.reportExposure=function(e,t){var r=this;this.exposureCache.push(e),this.reportTimeout&&clearTimeout(this.reportTimeout),this.exposureCache.length>=this.exposureLimit?this.report(t):this.reportTimeout=setTimeout(function(){r.report(t),clearTimeout(r.reportTimeout)},this.ab_batch_time)},i.prototype.report=function(e){var t=this;this.collect.requestManager.useRequest({url:this.reportUrl,data:this.exposureCache,timeout:2e4,useBeacon:e==="$ab_url",zip:!0}),this.exposureCache.forEach(function(r){t.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_EVENT,info:"曝光埋点上报成功",time:Date.now(),data:[r],code:200,status:"success",infoType:"sdk"})}),this.collect.emit(this.types.AbVerify,this.exposureCache),this.exposureCache=[]},i.prototype.setExternalAbVersion=function(e){this.extVersions=[e],this.updateVersions()},i.prototype.getABconfig=function(e,t){var r=Object.keys(e);r&&r.length&&this.collect.configManager.set(e),this.fetchAB(t)},i.prototype.get=function(e){if(this.ab_cross){var t=this.cacheStorgae.getCookie(e,this.ab_cookie_domain);return t?JSON.parse(t):{}}return this.cacheStorgae.getItem(e)},i.prototype.set=function(e,t){this.ab_cross?this.cacheStorgae.setCookie(e,t,2592e6,this.ab_cookie_domain):this.cacheStorgae.setItem(e,t),this.collect.configManager.setAbCache(t)},i.prototype.getABCache=function(e){var t={ab_version:[],ab_ext_version:[],ab_version_multilink:[],data:null,timestamp:+new Date,uuid:""};return t=this.get(this.abKey)||t,e?t[e]:t},i.prototype.updateABCache=function(){var e=this.getABCache();e.ab_version_multilink=this.mulilinkVersions,e.ab_ext_version=this.extVersions,e.ab_version=this.versions,e.timestamp=Date.now(),this.set(this.abKey,e)},i.prototype.setAbCache=function(e){var t=this.getABCache();t.data=this.data,t.uuid=e,t.timestamp=Date.now(),this.set(this.abKey,t)},i.prototype.clearCache=function(){this.refreshFetchStatus="ing",this.data={},this.extVersions=[],this.mulilinkVersions=[],this.versions=[],this.collect.configManager.clearAbCache()},i.prototype.openOverlayer=function(e){var t=this;if(function(){if(!document.getElementById(En)){var n="body { opacity: 0 !important; }",s=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.id=En,a.type="text/css",a.styleSheet?a.styleSheet.cssText=n:a.appendChild(document.createTextNode(n)),s.appendChild(a)}}(),e)var r=setTimeout(function(){t.closeOverlayer(),clearTimeout(r)},e)},i.prototype.closeOverlayer=function(){var e;(e=document.getElementById(En))&&e.parentElement.removeChild(e)},i.prototype.fetchComplete=function(e,t){var r=this;try{if(e&&Object.prototype.toString.call(e)=="[object Object]"){var n=this.collect.configManager.get().user;if(t&&t!==n.user_unique_id)return;this.data=e,this.setAbCache(t);var s=[];Object.keys(e).forEach(function(u){var l=e[u].vid;l&&s.push(l)}),this.versions=this.versions.filter(function(u){return s.includes(u)});var a=e.$ab_url,o=e.$ab_modification;if(o&&o.val&&this.enable_ab_visual){if(this.collect.destroy)return;this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行可视化实验",level:"info",logType:"fetch",time:Date.now(),infoType:"sdk",data:{$ab_modification:o}})}else if(a&&this.enable_multilink){this.mulilinkVersions=this.mulilinkVersions.filter(function(u){return s.includes(u)}),this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行多链接实验",level:"info",logType:"fetch",time:Date.now(),infoType:"sdk",data:{$ab_url:a}});var d=a.val,c=a.vid;d&&c&&this.getVar("$ab_url",d,function(){r.editMode||(d!==window.location.href?setTimeout(function(){if(!r.collect.destroy){var u=""+d;u=u.indexOf("http")===-1?"https://"+u:u,Xr(u).host!==location.host?u=u+"&vid="+c:window.history.replaceState("","",u),window.location.href=u}},100):r.closeOverlayer())})}this.updateVersions()}else this.closeOverlayer();this.callbackMap.forEach(function(u){return r[u.type===vi.Var?"getRealVar":"getRealAllVars"](u,"")})}catch{}},i.prototype.fetchAB=function(e){var t=this,r=this.collect.configManager.get(),n={header:B(B(B({aid:this.config.app_id},r.user||{}),r.header||{}),{ab_sdk_version:this.collect.configManager.getAbVersion(),ab_url:window.location.href})};this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 发起AB实验请求",level:"info",logType:"fetch",time:Date.now(),data:n,infoType:"sdk"});var s=r.user[this.ab_user_mode]||r.user.user_unique_id;this.collect.requestManager.useRequest({url:this.fetchUrl,data:n,success:function(a){t.fetchStatus="complete",t.refreshFetchStatus="complete";var o=a.data;a.message==="success"?(t.fetchComplete(o,s),e&&e(o)):(t.fetchComplete(null,s),e&&e(null)),t.collect.emit(t.types.AbComplete,o),t.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,secType:"AB",info:"AB实验请求成功",level:"info",logType:"fetch",time:Date.now(),data:o,infoType:"sdk"})},fail:function(){t.fetchStatus="complete",t.refreshFetchStatus="complete",t.fetchComplete(null,s),t.collect.emit(t.types.AbTimeout),e&&e(null),t.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,secType:"AB",info:"AB实验请求网络异常",level:"error",logType:"fetch",time:Date.now(),infoType:"sdk"})},timeout:this.timeout})},i}(),e_=function(){function i(){}return i.prototype.apply=function(e,t){var r=this;t.event_verify_url&&(typeof t.event_verify_url=="string"?(this.collect=e,this.url=t.event_verify_url+"/v1/list_test",e.on(e.Types.SubmitBefore,function(n){r.verify(n)}),e.on(e.Types.AbVerify,function(n){r.verify(n)})):console.log("please use correct et_test url"))},i.prototype.verify=function(e){this.collect.requestManager.useBeacon({url:this.url,data:e}),this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_EVENT,info:"SDK Report ByteIo Verify Request",time:Date.now(),data:e,code:200,status:"success",verifyType:!0})},i}();function rr(i,e,t){if(e===void 0&&(e="list"),!i)return!1;if(e&&e==="list"){if(["LI","TR","DL"].includes(i.nodeName)||i.dataset&&i.dataset.hasOwnProperty("teaIdx")||i.hasAttribute&&i.hasAttribute("data-tea-idx"))return!0}else if(["A","BUTTON"].includes(i.nodeName)||i.dataset&&i.dataset.hasOwnProperty("teaContainer")||i.hasAttribute&&i.hasAttribute("data-tea-container")||t&&i.hasAttribute&&i.hasAttribute(t))return!0;return!1}var ka=function(i,e){return!!i_(i,e)};function wn(i,e){for(var t=i;t&&!rr(t,"container",e.container_attr||"");){if(t.nodeName==="HTML"||t.nodeName==="BODY")return i;t=t.parentElement}return t||i}var t_=function(i){if(!i)return"";var e="";try{i.textContent?e=i.textContent.trim().replace(/\s+/g,","):i.innerText&&(e=i.innerText.trim().replace(/\s+/g,",")),i.tagName!=="input"&&i.tagName!=="INPUT"||(e=i.value||"")}finally{return e}};function Ta(i){try{for(var e=i;e&&e.parentNode;){if(e.hasAttribute("data-tea-ignore")||e.classList&&e.classList.contains("applog-web-devtools-con"))return!0;if(e.nodeName==="HTML"||e.nodeName==="body")return!1;e=e.parentNode}return!1}catch{return!1}}var nr=function(i,e){return i.hasAttribute?i.hasAttribute(e):i.attributes?!(!i.attributes[e]||!i.attributes[e].specified):void 0},i_=function(i,e){if(typeof e=="string")return nr(i,e);if(qi(e)){for(var t=!1,r=0;r<e.length;r++)if(nr(i,e[r])){t=!0;break}return t}},za=function(i,e){var t={};if(typeof e=="string")nr(i,e)&&(t[e]=i.getAttribute(e));else if(qi(e))for(var r=0;r<e.length;r++)nr(i,e[r])&&(t[e[r]]=i.getAttribute(e[r]));return t};function Aa(i){var e=[];if(!i)return{element_path:"",positions:[]};for(;i.parentElement!==null;)e.push(i),i=i.parentElement;var t=[],r=[];return e.forEach(function(n){var s=function(d){if(d===null)return{str:"",index:0};var c=0,u=d.parentElement;if(u)for(var l=u.children,h=0;h<l.length&&l[h]!==d;h++)l[h].nodeName===d.nodeName&&c++;return{str:[d.nodeName.toLowerCase(),rr(d,"list")?"[]":""].join(""),index:c}}(n),a=s.str,o=s.index;t.unshift(a),r.unshift(o)}),{element_path:"/"+t.join("/"),positions:r}}var r_=function(){function i(e,t){this.maxDuration=432e5,this.aliveDTime=6e4,this.options={aliveName:"predefine_page_alive",params:{},container:null},this.focusState=!0,this.collect=e,this.config=t,this.pageStartTime=Date.now(),this.sessionStartTime=this.pageStartTime,this.timerHandler=null,ei(t.enable_stay_duration)&&(this.options=Object.assign(this.options,t.enable_stay_duration)),this.hard=this.options.mode&&this.options.mode==="hard",this.focusState=document.hasFocus(),this.aliveDTime=this.options.aliveTime||6e4}return i.prototype.setParams=function(e,t,r){this.set_path=e,this.set_url=r,this.set_title=t},i.prototype.enable=function(e,t,r){this.url_path=e,this.url=r,this.title=t,this.disableCallback=this.enablePageAlive(),this.hard&&(this.removeMode=this.hardMode())},i.prototype.disable=function(){this.disableCallback(),this.pageStartTime=Date.now(),this.hard&&this.removeMode&&this.removeMode()},i.prototype.sendEvent=function(e,t){t===void 0&&(t=!1);var r=t?this.aliveDTime:Date.now()-this.sessionStartTime;if(!(r<0||r>this.aliveDTime||Date.now()-this.pageStartTime>this.maxDuration)&&(!t||document.visibilityState!=="hidden")&&(!this.hard||this.focusState)){var n=B({url_path:this.getParams("url_path"),title:this.getParams("title"),url:this.getParams("url"),duration:r,is_support_visibility_change:Po(),startTime:this.sessionStartTime,hidden:document.visibilityState,leave:e,mode:this.hard?"hard":"normal",focusState:this.focusState,aliveType:this.options.container?"dom":"page"},this.options.params);if(this.options.container){var s=Aa(this.options.container).element_path;n=Object.assign(n,{element_path:s,aliveType:this.options.container?"dom":"page"})}this.collect.beconEvent(this.options.aliveName,n),this.sessionStartTime=Date.now()}},i.prototype.getParams=function(e){switch(e){case"url_path":return this.set_path||this.url_path||location.pathname;case"title":return this.set_title||this.title||document.title||location.pathname;case"url":return this.set_url||this.url||location.href}},i.prototype.setUpTimer=function(){var e=this;return this.timerHandler&&clearInterval(this.timerHandler),setInterval(function(){Date.now()-e.sessionStartTime>e.aliveDTime&&e.sendEvent(!1,!0)},1e3)},i.prototype.visibilitychange=function(){this.getDisplayStatus()==="hidden"?this.timerHandler&&(clearInterval(this.timerHandler),this.sendEvent(!1)):this.getDisplayStatus()==="visible"&&(this.sessionStartTime=Date.now(),this.timerHandler=this.setUpTimer())},i.prototype.getDisplayStatus=function(){if(!this.options.container)return document.visibilityState;try{var e=window.getComputedStyle(this.options.container);return e.display!=="none"&&e.visibility!=="hidden"&&e.opacity!=="0"?"visible":"hidden"}catch{return"visible"}},i.prototype.beforeunload=function(){document.hidden||this.sendEvent(!0)},i.prototype.muition=function(){var e=this;new MutationObserver(function(t){t.forEach(function(r){e.visibilitychange()})}).observe(this.options.container,{attributes:!0,attributeFilter:["style"]})},i.prototype.enablePageAlive=function(){var e=this;this.timerHandler=this.setUpTimer();var t=this.visibilitychange.bind(this),r=this.beforeunload.bind(this);return this.options.container?this.muition():document.addEventListener("visibilitychange",t),window.addEventListener("pagehide",r),function(){e.beforeunload(),document.removeEventListener("visibilitychange",t),window.removeEventListener("pagehide",r)}},i.prototype.hardMode=function(){var e=this,t=function(){e.timerHandler&&(clearInterval(e.timerHandler),e.sendEvent(!1)),e.focusState=!1},r=function(){e.focusState=!0,e.sessionStartTime=Date.now(),e.timerHandler=e.setUpTimer()};return window.addEventListener("blur",t),window.addEventListener("focus",r),function(){window.removeEventListener("blur",t),window.removeEventListener("focus",r)}},i}(),n_=function(){function i(e,t){var r=this;this.maxDuration=432e5,this.aliveDTime=6e4,this.options={closeName:"predefine_page_close",params:{}},this.focusState=!0,this.visibilitychange=function(){document.visibilityState==="hidden"?r.activeEndTime=Date.now():document.visibilityState==="visible"&&(r.activeEndTime&&(r.totalTime+=r.activeEndTime-r.activeStartTime,r.activeTimes+=1),r.activeEndTime=void 0,r.activeStartTime=Date.now())},this.beforeunload=function(){if(r.totalTime+=(r.activeEndTime||Date.now())-r.activeStartTime,r.config.autotrack)try{window.sessionStorage.setItem("_tea_cache_duration",JSON.stringify({duration:r.totalTime,page_title:document.title||location.pathname}))}catch{}r.sendEventPageClose()},this.collect=e,this.config=t,this.maxDuration=t.maxDuration||t.max_duration||864e5,this.pageStartTime=Date.now(),ei(t.enable_stay_duration)&&(this.options=Object.assign(this.options,t.enable_stay_duration)),this.hard=this.options.mode&&this.options.mode==="hard",this.focusState=document.hasFocus(),this.resetData()}return i.prototype.setParams=function(e,t,r){this.set_path=e,this.set_url=r,this.set_title=t},i.prototype.resetParams=function(e,t,r){this.url_path=e,this.url=r,this.title=t},i.prototype.enable=function(e,t,r){this.url_path=e,this.url=r,this.title=t,this.disableCallback=this.enablePageClose(),this.hard&&(this.removeMode=this.hardMode())},i.prototype.disable=function(){this.disableCallback(),this.hard&&this.removeMode&&this.removeMode(),this.resetData()},i.prototype.resetData=function(){this.activeStartTime=this.activeStartTime===void 0?this.pageStartTime:Date.now(),this.activeEndTime=void 0,this.activeTimes=1,this.totalTime=0,this.resetParams(location.pathname,document.title,location.href)},i.prototype.sendEventPageClose=function(){var e=Date.now()-this.pageStartTime;this.totalTime<0||e<0||this.totalTime>=this.maxDuration||this.hard&&!this.focusState||(this.collect.beconEvent(this.options.closeName,B({url_path:this.getParams("url_path"),title:this.getParams("title"),url:this.getParams("url"),active_times:this.activeTimes,duration:this.totalTime,total_duration:e,is_support_visibility_change:Po(),mode:this.hard?"hard":"normal",focusState:this.focusState},this.options.params)),this.pageStartTime=Date.now(),this.resetData())},i.prototype.getParams=function(e){switch(e){case"url_path":return this.set_path||this.url_path||location.pathname;case"title":return this.set_title||this.title||document.title||location.pathname;case"url":return this.set_url||this.url||location.href}},i.prototype.enablePageClose=function(){var e=this,t=this.visibilitychange.bind(this),r=this.beforeunload.bind(this);return document.addEventListener("visibilitychange",t),window.addEventListener("pagehide",r),function(){e.beforeunload(),document.removeEventListener("visibilitychange",t),window.removeEventListener("pagehide",r)}},i.prototype.hardMode=function(){var e=this,t=function(){e.focusState=!1},r=function(){e.focusState=!0};return window.addEventListener("blur",t),window.addEventListener("focus",r),function(){window.removeEventListener("blur",t),window.removeEventListener("focus",r)}},i}(),s_=function(){function i(){}return i.prototype.apply=function(e,t){var r=this;if(this.collect=e,this.config=t,this.config.enable_stay_duration){this.title=document.title||location.pathname,this.url=location.href,this.url_path=location.pathname,this.pageAlive=new r_(e,t),this.pageClose=new n_(e,t);var n=this.collect.Types;this.collect.on(n.DestoryInstance,function(){r.disable()}),this.collect.on(n.ResetStay,function(s){var a=s.url_path,o=s.title,d=s.url;r.resetStayDuration(a,o,d)}),this.collect.on(n.RouteChange,function(s){s.init||t.disable_route_report||r.resetStayDuration()}),this.collect.on(n.SetStay,function(s){var a=s.url_path,o=s.title,d=s.url;r.setStayParmas(a,o,d)}),this.enable(this.url_path,this.title,this.url),this.ready(n.Stay),this.collect.emit(n.StayReady)}},i.prototype.ready=function(e){var t=this;if(this.collect.set(e),this.collect.hook._hooksCache.hasOwnProperty(e)){var r=this.collect.hook._hooksCache[e];if(!Object.keys(r).length)return;var n=function(a){r[a].length&&r[a].forEach(function(o){t.collect.hook.emit(a,o)})};for(var s in r)n(s)}},i.prototype.enable=function(e,t,r){this.pageAlive.enable(e,t,r),this.pageClose.enable(e,t,r)},i.prototype.disable=function(){this.pageAlive.disable(),this.pageClose.disable()},i.prototype.setStayParmas=function(e,t,r){e===void 0&&(e=""),t===void 0&&(t=""),r===void 0&&(r=""),this.pageAlive.setParams(e,t,r),this.pageClose.setParams(e,t,r),this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行 resetStayParams",level:"info",time:Date.now(),data:{url_path:e,title:t,url:r}})},i.prototype.reset=function(e,t,r){this.disable(),this.enable(e,t,r)},i.prototype.resetStayDuration=function(e,t,r){this.reset(e,t,r),this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行 resetStayDuration",level:"info",time:Date.now(),data:{url_path:e,title:t,url:r}})},i}(),o_=function(){function i(){}return i.prototype.apply=function(e,t){var r=this;this.collect=e,this.config=t,this.duration=6e4,this.reportUrl=e.configManager.getDomain()+"/profile/list";var n=e.Types;this.eventCheck=new rn(e,t),this.cache={},this.collect.on(n.ProfileSet,function(s){r.setProfile(s)}),this.collect.on(n.ProfileSetOnce,function(s){r.setOnceProfile(s)}),this.collect.on(n.ProfileUnset,function(s){r.unsetProfile(s)}),this.collect.on(n.ProfileIncrement,function(s){r.incrementProfile(s)}),this.collect.on(n.ProfileAppend,function(s){r.appendProfile(s)}),this.collect.on(n.ProfileClear,function(){r.cache={}}),this.ready(n.Profile)},i.prototype.ready=function(e){var t=this;if(this.collect.set(e),this.collect.hook._hooksCache.hasOwnProperty(e)){var r=this.collect.hook._hooksCache[e];if(!Object.keys(r).length)return;var n=function(a){r[a].length&&r[a].forEach(function(o){t.collect.hook.emit(a,o)})};for(var s in r)n(s)}},i.prototype.report=function(e,t){t===void 0&&(t={});try{if(this.config.disable_track_event)return;var r=[];r.push(this.collect.processEvent(e,t));var n=this.collect.eventManager.merge(r);this.collect.requestManager.useRequest({url:this.reportUrl,data:n}),this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_EVENT,info:"埋点上报成功",time:Date.now(),data:n,code:200,status:"success"})}catch(s){this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:s.message})}},i.prototype.setProfile=function(e){var t=this.formatParams(e);t&&Object.keys(t).length&&(this.pushCache(t),this.report("__profile_set",B(B({},t),{profile:!0})))},i.prototype.setOnceProfile=function(e){var t=this.formatParams(e,!0);t&&Object.keys(t).length&&(this.pushCache(t),this.report("__profile_set_once",B(B({},t),{profile:!0})))},i.prototype.incrementProfile=function(e){e?this.report("__profile_increment",B(B({},e),{profile:!0})):console.warn("please check the params, must be object!!!")},i.prototype.unsetProfile=function(e){if(e){var t={};t[e]="1",this.report("__profile_unset",B(B({},t),{profile:!0}))}else console.warn("please check the key, must be string!!!")},i.prototype.appendProfile=function(e){if(e){var t={};for(var r in e)typeof e[r]=="string"||Object.prototype.toString.call(e[r]).slice(8,-1)==="Array"?t[r]=e[r]:console.warn("please check the value of param: "+r+", must be string or array !!!");Object.keys(t).length&&this.report("__profile_append",B(B({},t),{profile:!0}))}else console.warn("please check the params, must be object!!!")},i.prototype.pushCache=function(e){var t=this;Object.keys(e).forEach(function(r){t.cache[r]={val:t.clone(e[r]),timestamp:Date.now()}})},i.prototype.formatParams=function(e,t){var r=this;t===void 0&&(t=!1);try{if(!e||Object.prototype.toString.call(e)!=="[object Object]")return void console.warn("please check the params type, must be object !!!");var n={};for(var s in e)typeof e[s]=="string"||typeof e[s]=="number"||Object.prototype.toString.call(e[s]).slice(8,-1)==="Array"?n[s]=e[s]:console.warn("please check the value of params:"+s+", must be string,number,Array !!!");var a=Object.keys(n);if(!a.length||!this.eventCheck.checkEventParams(n))return;var o=Date.now();return a.filter(function(d){var c=r.cache[d];return t?!c:!(c&&r.compare(c.val,e[d])&&o-c.timestamp<r.duration)}).reduce(function(d,c){return d[c]=n[c],d},{})}catch(d){this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:d.message}),console.log("error")}},i.prototype.compare=function(e,t){try{return JSON.stringify(e)===JSON.stringify(t)}catch(r){return this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:r.message}),!1}},i.prototype.clone=function(e){try{return JSON.parse(JSON.stringify(e))}catch(t){return this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:t.message}),e}},i.prototype.unReady=function(){console.warn("sdk is not ready, please use this api after start")},i}(),a_=function(){function i(){var e=this;this.setInterval=function(){e.clearIntervalFunc=Bf(function(){e.isSessionhasEvent&&e.endCurrentSession()},e.sessionInterval)},this.clearInterval=function(){e.clearIntervalFunc&&e.clearIntervalFunc()}}return i.prototype.apply=function(e,t){var r=this;if(this.collect=e,!t.disable_heartbeat){this.sessionInterval=6e4,this.startTime=0,this.lastTime=0,this.setInterval();var n=this.collect.Types;this.collect.on(n.SessionResetTime,function(){r.process()})}},i.prototype.endCurrentSession=function(){this.collect.event("_be_active",{start_time:this.startTime,end_time:this.lastTime,url:window.location.href,referrer:window.document.referrer,title:document.title||location.pathname}),this.isSessionhasEvent=!1,this.startTime=0},i.prototype.process=function(){this.isSessionhasEvent||(this.isSessionhasEvent=!0,this.startTime=+new Date);var e=this.lastTime||+new Date;this.lastTime=+new Date,this.lastTime-e>this.sessionInterval&&(this.clearInterval(),this.endCurrentSession(),this.setInterval())},i}(),c_=function(){function i(){}return i.prototype.apply=function(e,t){var r=this;t.channel_domain||t.disable_track_event||t.disable_sdk_monitor||(this.collect=e,this.config=t,this.url=e.configManager.getUrl("event"),this.collect.on(e.Types.Ready,function(){r.sdkOnload()}),this.collect.on(e.Types.SubmitError,function(n){var s=n.type,a=n.eventData,o=n.errorCode,d=n.response;s==="f_data"&&r.sdkError(a,o,d)}),this.collect.on(e.Types.SDKInnerError,function(n){var s=n.type,a=n.eventData,o=n.errorCode,d=n.msg;r.sdkInnerError(s,a,o,d)}))},i.prototype.sdkOnload=function(){var e=this;try{var t=this.collect.configManager.get(),r=t.header,n=t.user,s=r.app_id,a=r.app_name,o=r.sdk_version,d=n.web_id,c={events:[{event:"onload",params:JSON.stringify({app_id:s,app_name:a||"",sdk_version:o,sdk_type:"npm",sdk_config:this.config,sdk_desc:"TOC",url:location.href}),local_time_ms:Date.now()}],user:{user_unique_id:d},header:{}};setTimeout(function(){e.collect.requestManager.useRequest({url:e.url,data:[c],timeout:3e4,app_key:"566f58151b0ed37e",forceXhr:!0})},16)}catch{}},i.prototype.sdkError=function(e,t,r){var n=this;try{var s=e[0],a=s.user,o=s.header,d=[];e.forEach(function(u){u.events.forEach(function(l){d.push(l)})});var c={events:d.map(function(u){return{event:"on_error",params:JSON.stringify({type:"sdk_event_error",error_code:t,app_id:o.app_id,app_name:o.app_name||"",error_event:u.event,sdk_version:o.sdk_version,local_time_ms:u.local_time_ms,tea_event_index:Date.now(),params:u.params,header:o,user:a,err_msg:r.m||""}),local_time_ms:Date.now()}}),user:{user_unique_id:a.user_unique_id},header:{}};setTimeout(function(){n.collect.requestManager.useRequest({url:n.url,data:[c],timeout:3e4,app_key:"566f58151b0ed37e",forceXhr:!0})},16)}catch{}},i.prototype.sdkInnerError=function(e,t,r,n){var s=this;try{var a=t[0],o=a.user,d=a.header,c=[];t.forEach(function(l){l.events.forEach(function(h){c.push(h)})});var u={events:c.map(function(l){return{event:"on_error",params:JSON.stringify({type:e,error_code:r,app_id:d.app_id,app_name:d.app_name||"",error_event:l.event,sdk_version:d.sdk_version,local_time_ms:l.local_time_ms,tea_event_index:Date.now(),params:l.params,header:d,user:o,ua:window.navigator.userAgent,err_msg:n}),local_time_ms:Date.now()}}),user:o,header:{}};setTimeout(function(){s.collect.requestManager.useRequest({url:s.url,data:[u],timeout:3e4,app_key:"566f58151b0ed37e",forceXhr:!0})},16)}catch{}},i}(),u_=function(i){if(i.children.length){var e=i.children;return![].slice.call(e).some(function(t){return t.children.length>0})}return!0},d_=function(i){if(i.tagName.toLowerCase()==="svg")return!0;for(var e=i.parentElement,t=!1;e;)e.tagName.toLowerCase()==="svg"?(e=null,t=!0):e=e.parentElement;return t};function h_(i,e){if(i.nodeType!==1||!e.svg&&d_(i)||["HTML","BODY"].includes(i.tagName.toUpperCase()))return!1;var t=i;return t.style.display!=="none"&&(!!rr(t,"container",e.container_attr||"")||!!(function(r,n){for(var s=r,a=!1;s&&!rr(s,"container",n.container_attr||"");){if(s.nodeName==="HTML"||s.nodeName==="BODY")return a;s=s.parentElement}return a=!0}(t,e)||u_(t)||e.svg))}var l_=function(){function i(e,t,r){var n=this;this.statistics=!1,this.pageView=!1,this.clickEvent=function(s){h_(s.target,n.options)&&n.eventHandel({eventType:"dom",eventName:"click"},s)},this.changeEvent=function(s){n.eventHandel({eventType:"dom",eventName:"change"},s)},this.submitEvent=function(s){n.eventHandel({eventType:"dom",eventName:"submit"},s)},this.getPageViewEvent=function(s,a){a&&a==="pushState"&&n.eventHandel({eventType:"dom",eventName:"beat"},B({beat_type:0},s)),n.eventHandel({eventType:"dom",eventName:"page_view"},s)},this.getPageLoadEvent=function(s){n.eventHandel({eventType:"dom",eventName:"page_statistics"},{lcp:s})},this.config=r.getConfig().eventConfig,this.collect=t,this.options=e,this.beatTime=e.beat,this.domContainer=e.container||document}return i.prototype.init=function(e){this.eventHandel=e;var t=this.config.mode;this.addListener(t)},i.prototype.addListener=function(e){var t=this;if(e==="proxy-capturing"){if(this.config.click&&(qi(this.domContainer)?this.domContainer.forEach(function(c){c.addEventListener("click",t.clickEvent,!0)}):this.domContainer.addEventListener("click",this.clickEvent,!0)),this.config.pv){this.collect.on("route-change",function(c){var u=c.config,l=c.name;t.getPageViewEvent(u,l),t.pageView=!0});var r=setTimeout(function(){t.pageView||(t.getPageViewEvent(t.getDefaultConfig()),t.pageView=!0,clearTimeout(r))},2e3)}if(this.config.beat){try{document.readyState==="complete"?this.beatEvent(this.beatTime):window.addEventListener("load",function(){t.beatEvent(t.beatTime)});var n=0,s=null;window.addEventListener("scroll",function(){clearTimeout(s),s=setTimeout(a,500),n=document.documentElement.scrollTop||document.body.scrollTop});var a=function(){(document.documentElement.scrollTop||document.body.scrollTop)==n&&t.eventHandel({eventType:"dom",eventName:"beat"},{beat_type:1})}}catch{}try{var o=window.performance&&window.performance.getEntriesByType("paint");if(o&&o.length){new PerformanceObserver(function(c){var u=c.getEntries(),l=u[u.length-1],h=l.renderTime||l.loadTime;t.statistics||(t.getPageLoadEvent(h),t.statistics=!0)}).observe({entryTypes:["largest-contentful-paint"]});var d=setTimeout(function(){t.statistics||(t.getPageLoadEvent(o[0].startTime||0),t.statistics=!0,clearTimeout(d))},2e3)}else this.getPageLoadEvent(0)}catch{this.getPageLoadEvent(0)}}}},i.prototype.removeListener=function(){var e=this;qi(this.domContainer)?this.domContainer.forEach(function(t){t.removeEventListener("click",e.clickEvent,!0)}):this.domContainer.removeEventListener("click",this.clickEvent,!0)},i.prototype.beatEvent=function(e){var t=this;try{var r;this.eventHandel({eventType:"dom",eventName:"beat"},{beat_type:3}),this.beatTime&&(r=setInterval(function(){t.eventHandel({eventType:"dom",eventName:"beat"},{beat_type:2})},e)),Jr(function(){t.eventHandel({eventType:"dom",eventName:"beat",eventSend:"becon"},{beat_type:0}),t.beatTime&&clearInterval(r)})}catch{}},i.prototype.getDefaultConfig=function(){return{is_html:1,url:location.href,referrer:document.referrer,page_key:location.href,refer_page_key:document.referrer,page_title:document.title||location.pathname,page_manual_key:"",refer_page_manual_key:"",refer_page_title:"",page_path:location.pathname,page_host:location.host}},i}(),p_={eventConfig:{mode:"proxy-capturing",submit:!1,click:!0,change:!1,pv:!0,beat:!0,hashTag:!1,impr:!1},scoutConfig:{mode:"xpath"}},f_=function(){function i(e,t){this.config=e,this.config.eventConfig=Object.assign(this.config.eventConfig,t)}return i.prototype.getConfig=function(){return this.config},i.prototype.setConfig=function(e){return this.config=e},i}();function m_(i,e,t,r){var n={},s=function(R){if(R){var A=R.getBoundingClientRect(),D=A.width,P=A.height;return{left:A.left,top:A.top,element_width:D,element_height:P}}}(e=wn(e,t)),a=function(R,A){R===void 0&&(R={}),A===void 0&&(A={});var D=R.clientX,P=R.clientY,K=A.left,H=A.top,J=D-K>=0?D-K:0,X=P-H>=0?P-H:0;return{touch_x:Math.floor(J),touch_y:Math.floor(X)}}(i,s),o=s.element_width,d=s.element_height,c=a.touch_x,u=a.touch_y,l=Aa(e),h=l.element_path,p=l.positions,f=function(R,A){var D=wn(R,A),P=[];return function K(H){var J=function(q){var ne="";return q.nodeType===3?ne=q.textContent.trim():q.dataset&&q.dataset.hasOwnProperty("teaTitle")||q.hasAttribute("ata-tea-title")?ne=q.getAttribute("data-tea-title"):q.nodeName==="INPUT"&&["button","submit"].includes(q.getAttribute("type"))?ne=q.getAttribute("value"):q.nodeName==="IMG"&&q.getAttribute("alt")&&(ne=q.getAttribute("alt")),ne.slice(0,200)}(H);if(J&&P.indexOf(J)===-1&&P.push(J),H.childNodes.length>0)for(var X=H.childNodes,ue=0;ue<X.length;ue++)X[ue].nodeType!==8&&K(X[ue])}(D),P}(e,t),v=window.performance.timing.navigationStart,m=Date.now()-v,b=p.map(function(R){return""+R}),y=null;if(window.TEAVisualEditor&&window.TEAVisualEditor.getOriginXpath&&(y=window.TEAVisualEditor.getOriginXpath({xpath:h,positions:b})),n.element_path=y&&y.xpath||h,n.positions=y&&y.positions||b,r&&!r.text&&(n.texts=f,n.element_title=e.getAttribute("data-tea-title")||e.getAttribute("title")||t_(e)),n.element_id=e.getAttribute("id")||"",n.element_class_name=e.getAttribute("class")||"",n.element_type=e.nodeType,n.element_width=Math.floor(o),n.element_height=Math.floor(d),n.touch_x=c,n.touch_y=u,n.page_manual_key="",n.elememt_manual_key="",n.since_page_start_ms=m,n.page_start_ms=v,n.page_path=location.pathname,n.page_host=location.host,t.track_attr&&ka(e,t.track_attr)){var _=za(e,t.track_attr);for(var E in _)n[E]=_[E]}if(t.custom_attr)try{if(ka(e,t.custom_attr)){_=za(e,t.custom_attr),E=decodeURIComponent(_[t.custom_attr]);var z=JSON.parse(E);if(Object.keys(z))for(var T in z)n[T]=z[T]}}catch{console.log("custom attr error")}var x=wn(e,t);return x.tagName==="A"&&(n.href=x.getAttribute("href")),e.tagName==="IMG"&&(n.src=e.getAttribute("src")),n}var Mt=function(i,e,t,r,n){return B(B({event:i},m_(e,t,r,n)),{is_html:1,page_key:window.location.href,page_title:document.title})},__=function(){function i(e,t){this.ignore={text:!1},this.initConfig=e,this.options=t,this.eventName=t&&t.custom==="tea"?{click:"__bav_click",page:"__bav_page",beat:"__bav_beat",static:"__bav_page_statistics",exposure:"__bav_page_exposure",scroll:"__bav_slide"}:{click:"bav2b_click",page:"bav2b_page",beat:"bav2b_beat",static:"bav2b_page_statistics",exposure:"bav2b_exposure",scroll:"$bav2b_slide"},t&&t.text===!1&&(this.ignore.text=!0),t&&t.exposure&&t.exposure.eventName&&(this.eventName.exposure=t.exposure.eventName)}return i.prototype.handleEvent=function(e,t){try{if(Ta(e.target))return null;var r="bav2b_click";switch(t){case"click":return r=e.target.getAttribute("data-applog-click-event")||this.eventName.click||"",Mt(r,e,e.target,this.options,this.ignore);case"exposure":return r=e.target.getAttribute("data-applog-exposure-event")||this.eventName.exposure||"",Mt(r,e,e.target||e,this.options,this.ignore);case"change":return B(B({},Mt(r="bav2b_change",e,e.target,this.options)),function(n,s){try{if(n==="bav2b_change")return s.hasAttribute("data-tea-track")?{value:s.value}:{}}catch{return{}}}(r,e.target));case"submit":return Mt(r="bav2b_submit",e,e.target,this.options)}}catch(n){return console.error(n),null}},i.prototype.handleViewEvent=function(e){e.event=this.eventName.page,e.page_title=document.title,e.page_total_width=window.innerWidth,e.page_total_height=window.innerHeight;try{var t=window.sessionStorage.getItem("_tea_cache_duration");if(t){var r=JSON.parse(t);e.refer_page_duration_ms=r?r.duration:""}e.scroll_width=document.documentElement.scrollLeft?document.documentElement.scrollLeft+window.innerWidth:window.innerWidth,e.scroll_height=document.documentElement.scrollTop?document.documentElement.scrollTop+window.innerHeight:window.innerHeight,e.page_start_ms=window.performance.timing.navigationStart}catch(n){console.log("page event error "+JSON.stringify(n))}return e},i.prototype.handleStatisticsEvent=function(e){var t={};t.event=this.eventName.static,t.is_html=1,t.page_key=location.href,t.refer_page_key=document.referrer||"",t.page_title=document.title,t.page_manual_key=this.initConfig.autotrack.page_manual_key||"",t.refer_page_manual_key="";try{var r=e.lcp,n=window.performance.timing,s=n.loadEventEnd-n.navigationStart;t.page_init_cost_ms=parseInt(r||(s>0?s:0)),t.page_start_ms=n.navigationStart}catch(a){console.log("page_statistics event error "+JSON.stringify(a))}return t},i.prototype.handleBeadtEvent=function(e){e.event=this.eventName.beat,e.page_key=window.location.href,e.is_html=1,e.page_title=document.title,e.page_manual_key=this.initConfig.autotrack.page_manual_key||"";try{e.page_viewport_width=window.innerWidth,e.page_viewport_height=window.innerHeight,e.page_total_width=document.documentElement.scrollWidth,e.page_total_height=document.documentElement.scrollHeight,e.scroll_width=document.documentElement.scrollLeft+window.innerWidth,e.scroll_height=document.documentElement.scrollTop+window.innerHeight,e.since_page_start_ms=Date.now()-window.performance.timing.navigationStart,e.page_start_ms=window.performance.timing.navigationStart}catch(t){console.log("beat event error "+JSON.stringify(t))}return e},i.prototype.handleExposureEvent=function(e,t){if(Ta(t.target))return null;var r=Mt(e.event||this.eventName.exposure,t,t.target||t,this.options,this.ignore);if(r.$exposure_type=e.exposureType,this.options.exposure.callback){var n=this.options.exposure.callback(r);return n||Object.keys(n).length?n:(console.warn("exposure callback must return data!"),r)}return r},i.prototype.handleScrollEvent=function(e,t){var r=Mt(e.event||this.eventName.scroll,t,t.target||t,this.options,this.ignore);if(r=Object.assign(r,e.params),!this.options.scroll.callback||(r=this.options.scroll.callback(r))||Object.keys(r).length)return r;console.warn("scroll callback must return data!")},i}(),g_=function(){function i(e){this.collect=e,this.eventNameList=["report_click_event","report_change_event","report_submit_event","report_exposure_event","report_page_view_event","report_page_statistics_event","report_beat_event"]}return i.prototype.send=function(e,t){var r=t.event;delete t.event,e&&e.eventSend==="becon"?this.collect.beconEvent(r,t):this.collect.event(r,t)},i.prototype.get=function(e,t){var r=Object.assign({headers:{"content-type":"application/json"},method:"GET"},t);fetch(e,r)},i.prototype.post=function(e,t){var r=Object.assign({headers:{"content-type":"application/json"},method:"POST"},t);fetch(e,r)},i}(),yi={},Ra=[],v_=function(i){i.length&&i.forEach(function(e){Ra.push(e)})};function Da(i,e,t,r){var n=i&&i.source||window.opener||window.parent,s=i&&i.origin||r||"*",a={type:e,payload:t};n.postMessage(JSON.stringify(a),s)}function y_(i){if(Ra.some(function(n){return i.origin.indexOf(n)>-1})){var e=i.data;if(typeof i.data=="string")try{e=JSON.parse(i.data)}catch{e=void 0}if(!e)return;var t=e.type,r=e.payload;yi[t]&&yi[t].forEach(function(n){typeof n=="function"&&n(i,r)})}}var Cn=!1;function b_(i,e){window.TEAVisualEditor=window.TEAVisualEditor||{},window.TEAVisualEditor.appId=e.app_id;var t=e.channel_domain,r="";if(v_(qf),t){var n=void 0,s="";try{var a=window.performance.getEntriesByType("resource");if(a&&a.length&&(a.forEach(function(c){c.initiatorType==="script"&&c.name&&c.name.indexOf("collect")!==-1&&(s=c.name)}),s&&(n=s.split("/"))&&n.length)){r="https:/";for(var o=2;o<n.length&&o!==n.length-1;o++)r=r+"/"+n[o];if(r&&r.indexOf("/5.0")){var d=r.split("/5.0");r=d[0]||r}}}catch{}}(function(c,u){var l={};if(Object.keys(c).length)for(var h in c){if(h==="filter"||h==="autotrack"||h==="enable_stay_duration")break;l[h]=c[h]}var p=c.domain;(window.opener||window.parent).postMessage({type:"tea:sdk:info",config:l,version:u},p),window.addEventListener("message",y_,!1)})(e,Ye);try{(function(c,u){yi[c]=yi[c]||[],yi[c].push(u)})("tea:openHeatMapCore",function(c){var u=$f,l=c.data.app_id;l&&l!==e.app_id||function(h){var p=h.event,f=h.editorUrl,v=h.autoTrackInstance;Cn||(Cn=!0,Nf(f,function(){Da(p,"editorScriptloadSuccess"),v.destroy()},function(){p&&Da(p,"editorScriptloadError"),Cn=!1}))}({event:c,editorUrl:u+".js?query="+Date.now(),autoTrackInstance:i})})}catch{console.log("openHeatMapCore error")}}var Me,S_=function(){function i(e,t){this._instance=null,this._intersection=e,this.config=t,this._intersection&&this.init()}return i.prototype.init=function(){var e=this;if(window.MutationObserver)try{if(this._instance=new MutationObserver(function(r){r.forEach(function(n){n.type==="attributes"&&e.attributeChangeObserve(n),n.type==="childList"&&e.modifyNodeObserve(n)})}),!document||!document.body)return void console.warn("please use sdk api init after body element");var t=this.config.autotrack.exposure.attributes!==!1;this._instance.observe(document.body,{childList:!0,attributes:t,subtree:!0,attributeOldValue:!1})}catch{console.log("your browser cannot support MutationObserver,so cannot report exposure event, please update")}else console.log("your browser cannot support MutationObserver,so cannot report exposure event, please update")},i.prototype.attributeChangeObserve=function(e){e.target.hasAttribute("data-exposure")?this.exposureAdd(e,"mutation"):this.exposureRemove(e)},i.prototype.modifyNodeObserve=function(e){var t=this;Array.prototype.forEach.call(e.addedNodes,function(r){r.nodeType===1&&r.hasAttribute("data-exposure")&&t.exposureAdd(r,"intersect"),t.mapChild(r,t.exposureAdd.bind(t))}),Array.prototype.forEach.call(e.removedNodes,function(r){r.nodeType===1&&r.hasAttribute("data-exposure")&&t.exposureRemove(r),t.mapChild(r,t.exposureRemove.bind(t))})},i.prototype.mapChild=function(e,t){var r=this;e.nodeType===1&&e.children.length&&Array.prototype.forEach.call(e.children,function(n){n.nodeType===1&&n.hasAttribute("data-exposure")&&t(n),r.mapChild(n,t)})},i.prototype.exposureAdd=function(e,t){try{this._intersection&&this._intersection.exposureAdd(e,t)}catch(r){console.log("intersection error",JSON.stringify(r.message))}},i.prototype.exposureRemove=function(e){try{this._intersection&&this._intersection.exposureRemove(e)}catch(t){console.log("intersection error",JSON.stringify(t.message))}},i._exposure_observer=null,i}();(function(i){i[i.EXPOSURE_ONCE=0]="EXPOSURE_ONCE",i[i.LIFECYCLE_SHOW_NEW=3]="LIFECYCLE_SHOW_NEW",i[i.RESUME_FORM_PAGE=6]="RESUME_FORM_PAGE",i[i.RESUME_FORM_BACK=7]="RESUME_FORM_BACK",i[i.NOT_EXPOSURE=-1]="NOT_EXPOSURE"})(Me||(Me={}));var yt,E_=function(){function i(e,t,r){var n=this;this.backStatus=!1,this.instance=this.buildObserver(),this.collect=e,this.observeMap=i._observer_map,t.autotrack.exposure.ratio?this.ratio=t.autotrack.exposure.ratio:t.autotrack.exposure.ratio===0?this.ratio=0:this.ratio=.5,this.timeLimit=t.autotrack.exposure.stay||0,this.exposureType=Me.NOT_EXPOSURE,this.eventHandle=r,this.hashMap=new Map,this.backStatus=!1,this.lastState=null,this.collect.on("re-start-sdk",function(){n.visibilitychange()}),this.addListen()}return i.prototype.buildObserver=function(){var e=this;if(i._observer_instance)return console.log("your browser cannot support IntersectionObserver, so cannot report exposure event, please update"),null;if(window.IntersectionObserver){for(var t=[],r=0;r<=1;r+=.01)t.push(r);t.push(1);try{i._observer_instance=new IntersectionObserver(function(n){n.forEach(function(s){var a=s.target.observeId,o=e.observeMap.get(a),d=(s.target,s.isIntersecting,s.intersectionRatio);if(o.intersectionRatio=d,d<=.1&&(s.target.backStatus=!1),e.observeMap.set(a,o),d<e.ratio)return o.isIntersecting=!1,o.added=!1,o.exposured=!1,o.startTime=Date.now(),void e.observeMap.set(a,o);if(!o.added){if(o.startTime=Date.now(),o.added=!0,o.isIntersecting=!0,e.timeLimit){var c=setTimeout(function(){try{if(o.isIntersecting&&!o.exposured&&e.observeMap.get(a)){var u=e.observeMap.get(a).intersectionRatio;e.exposureEvent(s,u,a,o)}}catch(l){console.log("IntersectionObserver setTimeout error,msg: "+JSON.stringify(l))}},e.timeLimit);o.wait=c}e.observeMap.set(a,o)}Date.now()-o.startTime>=e.timeLimit&&!o.exposured&&e.exposureEvent(s,d,a,o)})},{threshold:t})}catch(n){console.log("IntersectionObserver error,msg: "+JSON.stringify(n))}return i._observer_instance}return console.log("your browser cannot support IntersectionObserver, so cannot report exposure event, please update"),null},i.prototype.exposureAdd=function(e,t){var r=t==="mutation"?e.target:e,n=r.observeId,s=ti();if(n||this.observeMap.has(n)){var a=this.observeMap.get(n);if(a&&r!==a.instance)this.unobserve(r),this.observeMap.delete(n),r.observeId=s,r.visible=!1,this.observeMap.set(s,{instance:r.cloneNode(!0),isIntersecting:!1}),this.observe(r);else{if(r.visible===!0)return;this.handleBoundingExposure(r)}}else r.observeId=s,r.visible=!1,this.observeMap.set(s,{instance:r.cloneNode(!0),isIntersecting:!1}),this.observe(r)},i.prototype.exposureRemove=function(e){this.observeMap.has(e.observeId)&&(this.observeMap.delete(e.observeId),this.unobserve(e),e.observeId="",e.visible=!1)},i.prototype.exposureEvent=function(e,t,r,n){if(t>=this.ratio){if(e.target.style.opacity==="0"||e.target.style.visibility==="hidden"||n.exposured===!0)return;n.startWait&&clearTimeout(n.startWait);var s=e.target.getAttribute("data-exposure-event");this.eventHandle({eventType:"dom",eventName:"exposure",event:s,exposureType:this.getExposureType(e.target)},e),e.target.visible=!0,e.target.hasExposure=!0,n.startTime=Date.now(),n.exposured=!0}else n.startTime=Date.now(),n.exposured=!1;this.observeMap.set(r,n)},i.prototype.observe=function(e){this.instance&&this.instance.observe(e)},i.prototype.unobserve=function(e){this.instance&&this.instance.unobserve(e)},i.prototype.getExposureDomToExposure=function(){var e=this;Array.prototype.forEach.call(document.querySelectorAll("[data-exposure]"),function(t){e.handleBoundingExposure(t)})},i.prototype.visibilitychange=function(){var e=this,t=null;document.visibilityState==="visible"?this.timeLimit?t=setTimeout(function(){e.getExposureDomToExposure()},this.timeLimit):this.getExposureDomToExposure():(clearTimeout(t),this.customType=void 0)},i.prototype.handleBoundingExposure=function(e){if(this.getBoundingRatio(e)>=this.ratio){e.visible=!0;var t=e.getAttribute&&e.getAttribute("data-exposure-event");this.eventHandle({eventType:"dom",eventName:"exposure",event:t,exposureType:this.customType||Me.RESUME_FORM_BACK},e)}},i.prototype.getBoundingRatio=function(e){var t=e.getBoundingClientRect(),r=t.top,n=t.left,s=t.width,a=t.height,o=window.innerWidth||document.documentElement.clientWidth,d=window.innerHeight||document.documentElement.clientHeight;return r>=0&&n>=0&&r<=d&&n<=o?(s>o?o:s)*(d-r)/(s*a):0},i.prototype.getExposureType=function(e){return e.visible?e.backStatus!==!1&&(this.backStatus||this.customType||window.performance.navigation.type===2)?this.exposureType=Me.RESUME_FORM_PAGE:this.exposureType=Me.LIFECYCLE_SHOW_NEW:(e.hasExposure,e.backStatus!==!1&&(this.backStatus||this.customType||window.performance.navigation.type===2)?this.exposureType=Me.RESUME_FORM_PAGE:this.exposureType=Me.EXPOSURE_ONCE),this.exposureType},i.prototype.addListen=function(){var e=this;this.collect.on("set-exposure-type",function(c){e.customType=c});var t,r,n,s,a=this.visibilitychange.bind(this);if(t=document,r="visibilitychange",n=a,s=!1,t.addEventListener?t.addEventListener(r,n,s):t.attachEven?t.attachEven("on"+r,n):t["on"+r]=n,window.addEventListener("hashchange",function(c){var u=e.hashMap.get(c.oldURL);u&&location.href===u.prev?(e.backStatus=!0,e.exposureType=Me.RESUME_FORM_PAGE):(e.backStatus=!1,e.hashMap.set(location.href,{current:c.newURL,prev:c.oldURL}))}),this.collect.bridgeReport){var o=window.history.pushState;history.pushState=function(c){for(var u=[],l=1;l<arguments.length;l++)u[l-1]=arguments[l];typeof history.onpushstate=="function"&&history.onpushstate({state:c});var h=o.call.apply(o,ft([history,c],u));return e.lastState=c,h};var d=history.replaceState;history.replaceState=function(c){for(var u=[],l=1;l<arguments.length;l++)u[l-1]=arguments[l];typeof history.onreplacestate=="function"&&history.onreplacestate({state:c});var h=d.call.apply(d,ft([history,c],u));return e.lastState=c,h}}else this.collect.on("STATE_CHANGE",function(c){e.lastState=c});return window.addEventListener("popstate",function(c){var u=c.state;u&&u.current&&e.lastState&&e.lastState.back&&u.current===e.lastState.back?(e.backStatus=!0,e.exposureType=Me.RESUME_FORM_PAGE):e.backStatus=!1}),function(){(function(c,u,l,h){c.addEventListener?c.removeEventListener(u,l,h):c.attachEven&&c.detachEven("on"+u,l)})(document,"visibilitychange",a,!1)}},i._observer_instance=null,i._observer_map=new Map,i}(),w_=function(){function i(e,t,r){t.autotrack&&t.autotrack.exposure&&(this._intersection=new E_(e,t,r),this._observer=new S_(this._intersection,t),this._intersection&&this._observer?this.initObserver():console.log("your browser version cannot support exposure event, please update~"))}return i.prototype.initObserver=function(){var e=this;Array.prototype.forEach.call(document.querySelectorAll("[data-exposure]"),function(t){e._intersection.exposureAdd(t,"intersect")})},i}();(function(i){i[i.SCROLL_UP=1]="SCROLL_UP",i[i.SCROLL_DOWN=2]="SCROLL_DOWN",i[i.SCROLL_LEFT=3]="SCROLL_LEFT",i[i.SCROLL_RIGHT=4]="SCROLL_RIGHT",i[i.NOT_SCROLL=-1]="NOT_SCROLL"})(yt||(yt={}));var xa,C_=function(){function i(e,t){this.distance=30,e.autotrack&&e.autotrack.scroll&&(e.autotrack.scroll.distance&&(this.distance=e.autotrack.scroll.distance),this.eventHandle=t,this.addLinstenr(),this.mutation())}return i.prototype.addLinstenr=function(){var e=this;Array.prototype.forEach.call(document.querySelectorAll("[data-scroll]"),function(t){e.scrollHandle(t)})},i.prototype.mutation=function(){var e=this;if(window.MutationObserver)try{var t=new MutationObserver(function(r){r.forEach(function(n){n.type==="childList"&&e.modifyNodeObserve(n)})});if(!document||!document.body)return void console.warn("please use sdk api init after body element");t.observe(document.body,{childList:!0,attributes:!0,subtree:!0,attributeOldValue:!1})}catch{console.log("your browser cannot support MutationObserver")}else console.log("your browser cannot support MutationObserver")},i.prototype.modifyNodeObserve=function(e){var t=this;Array.prototype.forEach.call(e.addedNodes,function(r){r.nodeType===1&&r.hasAttribute("data-scroll")&&t.scrollHandle(r),t.mapChild(r,t.scrollHandle.bind(t))}),Array.prototype.forEach.call(e.removedNodes,function(r){r.nodeType===1&&r.hasAttribute("data-scroll")&&t.scrollHandle(r,"remove"),t.mapChild(r,t.scrollHandle.bind(t))})},i.prototype.mapChild=function(e,t){var r=this;e.nodeType===1&&e.children.length&&Array.prototype.forEach.call(e.children,function(n){n.nodeType===1&&n.hasAttribute("data-scroll")&&t(n),r.mapChild(n,t)})},i.prototype.scrollHandle=function(e,t){var r=this;try{var n=e.scrollTop,s=e.scrollLeft,a=null,o=0,d=0,c=function(u){clearTimeout(a),a=setTimeout(function(){var f=e.scrollTop,v=e.scrollLeft,m=u.target&&u.target.getAttribute("data-scroll-event")||"";p===1||p===2?f===l&&(d=l-n,Math.abs(d)>=r.distance&&r.distance&&r.eventHandle({eventType:"dom",eventName:"scroll",event:m,params:{$direction:p,$offsetY:d,$offsetX:o}},u)):p!==3&&p!==4||v===h&&(o=h-s,Math.abs(o)>=r.distance&&r.distance&&r.eventHandle({eventType:"dom",eventName:"scroll",event:m,params:{$direction:p,$offsetY:d,$offsetX:o}},u)),n=l,s=h},100);var l=e.scrollTop,h=e.scrollLeft,p=yt.NOT_SCROLL;l>n?p=yt.SCROLL_DOWN:l<n?p=yt.SCROLL_UP:h>s?p=yt.SCROLL_LEFT:h<s&&(p=yt.SCROLL_RIGHT)};return t==="remove"?e.removeEventListener("scroll",c,!1):e.addEventListener("scroll",c,!1),function(){e.removeEventListener("scroll",c,!1)}}catch(u){console.warn("scroll event error",JSON.stringify(u))}},i}(),k_={hashTag:!1,impr:!1},T_=function(){function i(){}return i.prototype.apply=function(e,t){if(this.autoTrackStart=!1,this.collect=e,this.config=t,t.autotrack){var r=e.Types;this.ready(r.Autotrack),this.collect.emit(r.AutotrackReady)}},i.prototype.ready=function(e){this.collect.set(e);var t=this.config.autotrack;t=typeof t=="object"?t:{},t=Object.assign(k_,t),this.destroyed=!1,this.options=t,this.Config=new f_(p_,this.options),this.Exposure=new w_(this.collect,this.config,this.handle.bind(this)),this.Scroll=new C_(this.config,this.handle.bind(this)),this.Listener=new l_(t,this.collect,this.Config),this.EventHandle=new __(this.config,t),this.Request=new g_(this.collect),this.autoTrackStart=!0,this.init(),b_(this,this.config)},i.prototype.init=function(){this.Listener.init(this.handle.bind(this));try{this.collect.loadType==="base"&&(window.opener||window.parent).postMessage("[tea-sdk]ready","*")}catch{}},i.prototype.handle=function(e,t){try{if(this.config.autotrack.collect_url&&!this.config.autotrack.collect_url())return}catch{}e.eventType==="dom"&&this.handleDom(e,t)},i.prototype.handleDom=function(e,t){try{var r=e.eventName;if(r==="click"||r==="change"||r==="submit")(o=this.EventHandle.handleEvent(t,r))&&this.Request.send({eventType:"custom"},o);else if(r==="page_view"||r==="page_statistics"){var n=void 0;(n=r==="page_view"?this.EventHandle.handleViewEvent(t):this.EventHandle.handleStatisticsEvent(t))&&this.Request.send({eventType:"custom"},n)}else if(r==="beat"){var s=this.EventHandle.handleBeadtEvent(t),a=e.eventSend;s&&this.Request.send({eventType:"custom",eventSend:a},s)}else if(r==="exposure")(o=this.EventHandle.handleExposureEvent(e,t))&&this.Request.send({eventType:"custom"},o);else if(r==="scroll"){var o;(o=this.EventHandle.handleScrollEvent(e,t))&&this.Request.send({eventType:"custom"},o)}}catch(d){console.log("handel dom event error "+JSON.stringify(d))}},i.prototype.destroy=function(){if(!this.autoTrackStart)return console.warn("engine is undefined, make sure you have called autoTrack.start()");this.autoTrackStart=!1,this.Listener.removeListener()},i}();(function(i){i.Net="net",i.FailNet="f_net",i.FailData="f_data"})(xa||(xa={}));var Ia={pv:["predefine_pageview"],sdk:["_be_active","predefine_page_alive","predefine_page_close","__profile_set","__profile_set_once","__profile_increment","__profile_unset","__profile_append"],autotrack:["bav2b_click","bav2b_page","bav2b_beat","bav2b_page_statistics","__bav_click","__bav_page","__bav_beat","__bav_page_statistics"]},z_=function(){function i(){}return i.prototype.apply=function(e,t){var r=this;if(t.app_id&&t.enable_tracer&&!t.disable_track_event){this.limit={pv:1,sdk:3,autotrack:3,log:3},this.errorCode={f_net:0,f_data:0},this.tracerCache=new Map,this.collect=e,this.appid=t.app_id,this.reportUrl=e.configManager.getUrl("event");var n=this.collect.Types;this.collect.on(n.Event,function(){r.addCount("log")}),this.collect.on(n.SubmitError,function(s){var a=s.type,o=s.eventDate,d=s.errorCode,c=s.response;r.addErrorCount(o,a,d,c)}),this.listener(),this.collect.emit(n.TracerReady)}},i.prototype.addCount=function(e,t,r){t===void 0&&(t="net"),r===void 0&&(r=1);try{this.tracerCache||(this.tracerCache=new Map);var n=void 0;if(this.tracerCache.has(e))(s=this.tracerCache.get(e)).has(t)?(n=s.get(t).params.count,n++,s.set(t,this.processTracer(n,e,t))):(n=r,s.set(t,this.processTracer(r,e,t)));else{var s=new Map;n=r,s.set(t,this.processTracer(r,e,t)),this.tracerCache.set(e,s)}t==="net"&&n>=this.limit[e]&&this.report(!1)}catch(a){console.log(a)}},i.prototype.addErrorCount=function(e,t,r,n){var s=this;try{if(e&&e.length){var a=e[0].events;a&&a.length&&(t==="f_data"?(n&&n.hasOwnProperty("sc")?this.addCount("log",t,a.length-n.sc):this.addCount("log",t,a.length),this.errorCode[t]=r):a.forEach(function(o){var d="log";for(var c in Ia)if(Ia[c].indexOf(o.event)!==-1){d=c;break}s.addCount(d,t,1),s.errorCode[t]=r}))}}catch{}},i.prototype.report=function(e){if(this.tracerCache){var t=[];this.tracerCache.forEach(function(r){console.log(r),r.forEach(function(n){t.push(n)})}),t&&t.length&&this.sendTracer(t,e)}},i.prototype.sendTracer=function(e,t){try{var r=this.collect.eventManager.merge(e);this.collect.requestManager.useRequest({url:this.reportUrl,data:r,useBeacon:t}),this.tracerCache=null}catch{}},i.prototype.processTracer=function(e,t,r){var n={count:e,state:r,key:t,params_for_special:"applog_trace",aid:this.appid,platform:"web",_staging_flag:1,sdk_version:Ye};r!=="f_net"&&r!=="f_data"||(n.errorCode=this.errorCode[r]);var s=this.collect.processEvent("applog_trace",n);if(s&&s.event)return delete s.is_bav,s},i.prototype.listener=function(){var e=this;document.addEventListener("visibilitychange",function(){document.visibilityState==="hidden"&&e.leavePage()}),Jr(function(){e.leavePage()})},i.prototype.leavePage=function(){this.report(!0)},i}(),A_=function(){function i(){this.retryWaitTime=3e3,this.retryStatus=!1,this.retryCacheStatus=!1}return i.prototype.apply=function(e,t){var r=this;if(t.enable_storage&&!t.disable_storage&&(this.collect=e,this.config=t,!this.collect.destroy)){var n=e.Types,s=e.adapters.storage;this.storage=new s(!1),this.eventUrl=this.collect.configManager.getUrl("event"),this.eventKey="__tea_cache_events_"+t.app_id,this.storageNum=t.storage_num||50,this.retryNum=t.retry_num||3,this.retryInterval=1e3,e.on(n.SubmitError,function(a){a.type!=="f_data"&&r.storeData(a)}),e.on(n.Ready,function(){r.checkStorage()})}},i.prototype.retryRightNow=function(e){var t=this;if(this.retryStatus)this.errorCache.push(e);else{var r=0;this.retryStatus=!0;var n=setInterval(function(){if(r===3)return t.storeData(t.errorCache),t.retryStatus=!1,void clearInterval(n);var s=e.eventData;t.fetchData(s,function(){t.retryStatus=!1,clearInterval(n),t.retryCacheStatus&&t.errorCache.splice(0,1),t.errorCache.length&&(t.retryCacheStatus=!0,t.retryRightNow(t.errorCache[0]))},function(){r++})},this.retryInterval)}},i.prototype.storeData=function(e){var t=this.storage.getItem(this.eventKey),r=e.eventData;Object.keys(t).length!==this.storageNum&&(t[Date.now()]=r,this.storage.setItem(this.eventKey,t))},i.prototype.checkStorage=function(){var e=this;try{if(!window.navigator.onLine)return;var t=this.storage.getItem(this.eventKey);if(!t||!Object.keys(t).length)return;var r={events:[{event:"ontest",params:{app_id:this.config.app_id},local_time_ms:Date.now()}],user:{user_unique_id:this.collect.configManager.get("web_id")},header:{}};this.fetchData([r],function(){var n=JSON.parse(JSON.stringify(t)),s=function(o){e.fetchData(t[o],function(){delete n[o],e.storage.setItem(e.eventKey,n)},function(){},!1)};for(var a in t)s(a)},function(){console.log("network error,compensate report fail")},!0)}catch{console.warn("error check storage")}},i.prototype.fetchData=function(e,t,r,n){this.collect.requestManager.useRequest({url:this.eventUrl,data:e,timeout:3e4,success:t,fail:r,app_key:n?"566f58151b0ed37e":""})},i}(),kn=typeof window<"u"?(window.LogPluginObject||(window.LogPluginObject={}),window.LogPluginObject):null,R_=function(){function i(){}return i.prototype.apply=function(e,t){this._plugin={},this.config=t,this.collect=e,this.channel=t.channel||"cn",this.loadExtend()},i.prototype.loadExtend=function(){var e=this;try{this.collect.remotePlugin.forEach(function(t,r){if(t==="sdk")if(Sn.hasOwnProperty(r)){var n=Sn[r].object,s=Sn[r].src[e.channel]+"?query="+Date.now();e.exist(r,n,s)}else console.warn("your "+r+" is not exist,please check plugin name");else typeof t=="object"&&(t.src?e.exist(r,t.call,t.src):e.process(r,t.instance,"INSTANCE"))})}catch(t){this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:t.message}),console.log("load extend error")}},i.prototype.exist=function(e,t,r){var n=this;kn[t]?(this.process(e,kn[t]),console.log("已有"+e+"插件,避免重复加载~")):this.loadPlugin(e,r,function(){n.process(e,kn[t]),console.log(" %c %s %s %s","color: yellow; background-color: black;","–","load plugin:"+e+" success","-")},function(){console.log(" %c %s %s %s","color: red; background-color: yellow;","–","load plugin:"+e+" error","-")})},i.prototype.process=function(e,t,r){try{if(r){var n=new t;n.apply&&n.apply(this.collect,this.config),console.log("excude "+e+" success")}else t&&t(this.collect,this.config)}catch(s){this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:s.message}),console.log("excude "+e+" error, message:"+s.message)}},i.prototype.loadPlugin=function(e,t,r,n){var s=this;try{var a=document.createElement("script");a.src=t,this._plugin[e]||(this._plugin[e]=[]),this._plugin[e].push(r),a.onerror=function(){n(t)},a.onload=function(){s._plugin[e].forEach(function(o){o()})},document.getElementsByTagName("head")[0].appendChild(a)}catch(o){this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:o.message})}},i}(),D_=function(){function i(){this.autotrack=!1,this.spa=!1,this.cache={},this.allowHash=!1}return i.prototype.apply=function(e,t){if(t.spa||t.autotrack){var r=e.Types;this.collect=e,this.config=t,this.appid=t.app_id,this.allowHash=t.allow_hash,this.fncArray=new Map,this.setKey(),this.setLocation(),this.hack(),this.init(),this.listener(),e.emit(r.RouteReady)}},i.prototype.setKey=function(){var e=this.collect.adapters.storage;this.storage=new e(!1),this.cache_key="__tea_cache_refer_"+this.appid,this.cache={refer_key:"",refer_title:document.title||location.pathname,refer_manual_key:"",routeChange:!1},this.config.autotrack&&typeof this.config.autotrack=="object"&&this.config.autotrack.page_manual_key&&(this.cache.refer_manual_key=this.config.autotrack.page_manual_key),this.storage.setItem(this.cache_key,this.cache)},i.prototype.hack=function(){var e=this,t=window.history.pushState;history.pushState=function(n){for(var s=[],a=1;a<arguments.length;a++)s[a-1]=arguments[a];typeof history.onpushstate=="function"&&history.onpushstate({state:n});var o=t.call.apply(t,ft([history,n],s));if(e.collect.sdkStop||e.collect.destroy)return o;if(!(e.lastLocation===location.href||e.config.disable_spa_query&&e.pathEquel())){e.setReferCache(e.lastLocation);var d=e.getPopStateChangeEventData();return e.lastLocation=location.href,e.sendPv(d,"pushState"),o}};var r=history.replaceState;history.replaceState=function(n){for(var s=[],a=1;a<arguments.length;a++)s[a-1]=arguments[a];typeof history.onreplacestate=="function"&&history.onreplacestate({state:n});var o=r.call.apply(r,ft([history,n],s));if(e.collect.sdkStop||e.collect.destroy)return o;if(!(e.lastLocation===location.href||e.config.disable_spa_query&&e.pathEquel())){e.setReferCache(e.lastLocation);var d=e.getPopStateChangeEventData();return e.lastLocation=location.href,e.sendPv(d),o}}},i.prototype.setLocation=function(){typeof window<"u"&&(this.lastLocation=window.location.href)},i.prototype.getLocation=function(){return this.lastLocation},i.prototype.pathEquel=function(){try{return new URL(this.lastLocation).origin+new URL(this.lastLocation).pathname===new URL(location.href).origin+new URL(location.href).pathname}catch{return!1}},i.prototype.init=function(){var e=this.getPopStateChangeEventData();this.collect.emit("route-change",{config:e,init:!0})},i.prototype.listener=function(){var e=this;window.addEventListener("hashchange",function(t){if(!e.collect.sdkStop&&!e.collect.destroy&&e.lastLocation!==window.location.href&&(!e.config.disable_spa_query||!e.pathEquel())&&e.allowHash){e.setReferCache(e.lastLocation),e.lastLocation=window.location.href;var r=e.getPopStateChangeEventData();e.sendPv(r)}}),window.addEventListener("popstate",function(t){if(!e.collect.sdkStop&&!e.collect.destroy&&!(e.lastLocation===window.location.href||e.config.disable_spa_query&&e.pathEquel())){e.setReferCache(e.lastLocation),e.lastLocation=window.location.href;var r=e.getPopStateChangeEventData();e.sendPv(r)}})},i.prototype.getPopStateChangeEventData=function(){var e=this.pageConfig();return e.is_back=0,e},i.prototype.pageConfig=function(){try{var e=this.storage.getItem(this.cache_key)||{},t=!1,r=this.storage.getItem("__tea_cache_first_"+this.appid);return t=!r||r!=1,{is_html:1,url:location.href,referrer:this.handleRefer(),page_key:location.href,refer_page_key:this.handleRefer(),page_title:document.title||location.pathname,page_manual_key:this.config.autotrack&&this.config.autotrack.page_manual_key||"",refer_page_manual_key:e&&e.refer_manual_key||"",refer_page_title:e&&e.refer_title||"",page_path:location.pathname,page_host:location.host,is_first_time:""+t}}catch(n){return this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:n.message}),{}}},i.prototype.sendPv=function(e,t){this.collect.emit("route-change",{config:e,init:!1})},i.prototype.handleRefer=function(){var e="";try{var t=this.storage.getItem(this.cache_key)||{};e=t.routeChange?t.refer_key:this.collect.configManager.get("referrer")}catch{e=document.referrer}return e},i.prototype.removeQuery=function(e){try{var t=new URL(e);return t.search="",t.href}catch{return e.split(/[?#]/)[0]}},i.prototype.setReferCache=function(e){var t=this.storage.getItem(this.cache_key)||{},r=this.removeQuery(e);t.refer_key=r,t.routeChange=!0,this.storage.setItem(this.cache_key,t)},i}();be.usePlugin(R_,"extend"),be.usePlugin(e_,"et"),be.usePlugin(Ym,"ab"),be.usePlugin(s_,"stay"),be.usePlugin(T_,"autotrack"),be.usePlugin(o_,"profile"),be.usePlugin(A_,"retry"),be.usePlugin(a_,"heartbeat"),be.usePlugin(c_,"monitor"),be.usePlugin(D_,"route"),be.usePlugin(z_,"tracer");var bi=new be("default");const Tn="VEPUSHER_DEVICE_ID",zn="VEPUSHER_USER_ID",Oa=i=>Math.floor((Math.random()*9+1)*Math.pow(10,i-1)).toString();function x_(i){const e={};if(!(i instanceof Object))throw new Error("params type error");for(const[t,r]of Object.entries(i))if(["string","number","boolean"].includes(typeof r))e[t]=r;else try{e[t]=JSON.stringify(r)}catch(n){console.error("serialize error",n)}return e}function I_(i){if(i)return localStorage.setItem(zn,i),i;const e=localStorage.getItem(zn);if(e)return e;const t=Oa(12);return localStorage.setItem(zn,t),i}function O_(i){if(i)return localStorage.setItem(Tn,i),i;const e=localStorage.getItem(Tn);if(e)return e;const t=Oa(11);return localStorage.setItem(Tn,t),t}const I={PUSHER_INIT:"pusher_init",SET_PROPERTY_CALL:"set_property_call",SET_VIDEO_QUALITY:"set_video_quality",SET_AUDIO_QUALITY:"set_audio_quality",PAGE_VISIBLE_CHANGE:"page_visible_change",PUSHER_DESTROY:"pusher_destroy",...{GET_DEVICES_RESULT:"get_devices_result",CAMERA_CAPTURE_RESULT:"camera_capture_result",MICROPHONE_CAPTURE_RESULT:"microphone_capture_result",SCREEN_CAPTURE_RESULT:"screen_capture_result",VIDEO_FILE_CAPTURE_RESULT:"video_file_capture_result",AUDIO_FILE_CAPTURE_RESULT:"audio_file_capture_result",IMAGE_FILE_CAPTURE_RESULT:"image_file_capture_result",VOLUME_DETECTOR_START_RESULT:"volume_detector_start_result",STOP_CAPTURE:"stop_capture"},...{SWITCH_ENABLE_MIXING:"switch_enable_mixing",SET_MIXING_CONFIG:"set_mixing_config",ADD_VIDEO_STREAM:"add_video_stream",UPDATE_VIDEO_STREAM:"update_video_stream",DELETE_VIDEO_STREAM:"delete_video_stream",CHANGE_VIDEO_STREAM_MUTE:"change_video_stream_mute",ADD_AUDIO_STREAM:"add_audio_stream",UPDATE_AUDIO_STREAM:"update_audio_stream",DELETE_AUDIO_STREAM:"delete_audio_stream",CHANGE_AUDIO_STREAM_MUTE:"change_audio_stream_mute"},...{START_PUSH:"start_push",STOP_PUSH_STREAM:"stop_push_stream",STOP_PUSH_STREAM_API_CALL:"stop_push_stream_api_call",START_PUSH_STATUS:"start_push_status",PUSH_RECONNECT_START:"push_reconnect_start",PUSH_RECONNECT_STATUS:"push_reconnect_status",PUSH_STATS:"push_stats",PUSH_AUDIO_CONTEXT_START_FAILED:"push_audio_context_start_failed",PUSH_RTC_STATE_CHANGE:"push_rtc_state_change",PUSH_SDP_INFO:"push_sdp_info"}};class M_{constructor({showLogInConsole:e=!1}){this._showLogInConsole=!1,this.markCollectTeaEventReady=()=>{this.isReady=!0,bi.start(),this.queueTeaEvent.forEach(t=>this.sendTeaEvent(...t)),this.queueTeaEvent=[]},this.configTea=(t,r)=>{const n={...t,evtParams:{page_url_fe:encodeURIComponent(window.location.href)||"",page_path_fe:window.location.pathname||"unknown",page_host_fe:window.location.hostname||"unknown",sdk_version:"2.0.3",build_version:"1.0.0.136",...r}};bi.config(n),this.markCollectTeaEventReady()},this.isReady=!1,this.queueTeaEvent=[],bi.init({app_id:699880,channel:"cn"}),this._showLogInConsole=e}sendTeaEvent(e,t,r=!1){if(e)if(this.isReady)try{const n={...x_(t||{})};bi.event(e,n),this._showLogInConsole&&!r&&console.log("[VePusher logger]:",e,n)}catch(n){console.error(n)}else this._showLogInConsole&&!r&&console.log("[VePusher logger]:",e,t),this.queueTeaEvent.push([e,t])}getIsReady(){return this.isReady}getRawTea(){return bi}}let Si;function P_({showLogInConsole:i}){Si=new M_({showLogInConsole:i})}function O(i,e,t=!1){Si&&Si.sendTeaEvent(i,e,t)}function L_(i,e){Si&&Si.configTea(i,e)}const Ma=()=>{O(I.PAGE_VISIBLE_CHANGE,{page_visible:!document.hidden})},U_=()=>{document.addEventListener("visibilitychange",Ma)},G_=()=>{document.removeEventListener("visibilitychange",Ma)};function Pt(i){var e;return{error:i,error_code:i.code,error_message:i.message,original_error_message:(e=i.error)==null?void 0:e.message}}class N_ extends Xe{constructor(e){super(),this._videoConstraints={width:1080,height:720,frameRate:30},this._cameraStreams={},this._screenStreams={},this._videoFileStreams={},this._microphoneStreams={},this._audioFileStreams={},this._imageStreams={},this._customVideoStreams={},this._customAudioStreams={};const{width:t,height:r,frameRate:n}=Rt(_s,"video"),{sampleRate:s}=Rt(gs,"audio");this._videoConstraints={width:t,height:r,frameRate:n},this._audioConstraints={sampleRate:s,enableAutoGainControl:!0,enableNoiseSuppression:!0,enableEchoCancellation:!0},this._livePusher=e}_notifyCaptured(e){this.emit(Ae.DeviceCaptured,e)}_notifyStopCapture(e){this.emit(Ae.DeviceStopCapture,e)}_bindStreamEvent(e){e.bindTrackEnd(()=>{this.emit(Ae.Interrupted,e),this.stopCapture({streamId:e.id,type:e.type})})}_handleError(e,t){const r=new At(t,e.message);this.emit(Ae.Error,r)}setVideoResolution(e){this._videoConstraints={...this._videoConstraints,...e}}setVideoFps(e){this._videoConstraints={...this._videoConstraints,frameRate:e}}setAudioSampleRate(e){this._audioConstraints={...this._audioConstraints,sampleRate:e}}async getDevicesList(e){try{const t=await fd(e?[e]:["audioinput","videoinput"]);return O(I.GET_DEVICES_RESULT,{type:e,is_success:!0,devices:t}),t}catch(t){return O(I.GET_DEVICES_RESULT,{type:e,is_success:!1,error:t,origin_error:t.error,error_code:t.code,error_message:t.message}),[]}}async getMicrophones(){return this.getDevicesList("audioinput")}async getCameras(){return this.getDevicesList("videoinput")}stopCapture({streamId:e,type:t}){let r;switch(t){case V.Camera:r="_cameraStreams";break;case V.Screen:r="_screenStreams";break;case V.VideoFile:r="_videoFileStreams";break;case V.Microphone:r="_microphoneStreams";break;case V.AudioFile:r="_audioFileStreams";break;case V.Image:r="_imageStreams";break;case V.CustomVideo:r="_customVideoStreams";break;case V.CustomAudio:r="_customAudioStreams";break}if(r){let n=[];if(e){const s=this[r][e];n.push(s)}else n=je(this[r]);O(I.STOP_CAPTURE,{stream_id:e,type:t,number:n.length}),n.forEach(s=>{this._notifyStopCapture(s),s.destroy(),delete this[r][s.id]})}}async startCameraCapture(e){let t={};If.includes(e)?t={facingMode:e}:e&&(t={deviceId:{exact:e}});const r={...t,...this._videoConstraints};try{const n=await md(r,!this._livePusher.isEnableMixing),s=new Vd(n,{frameRate:this._videoConstraints.frameRate});return this._cameraStreams[s.id]=s,this._notifyCaptured(s),this._bindStreamEvent(s),O(I.CAMERA_CAPTURE_RESULT,{is_success:!0,stream_id:s.id,device_id:e,capture_params:r}),s.id}catch(n){throw O(I.CAMERA_CAPTURE_RESULT,{is_success:!1,device_id:e,capture_params:r,...Pt(n)}),this._handleError(n,me.OPEN_CAMERA_FAILED),n}}async startMicrophoneCapture(e){let t={};e&&(t={deviceId:{exact:e}});const r={...this._audioConstraints,...t};try{const n=await gd(r),s=new kf(n);return this._microphoneStreams[s.id]=s,this._notifyCaptured(s),this._bindStreamEvent(s),O(I.MICROPHONE_CAPTURE_RESULT,{is_success:!0,stream_id:s.id,device_id:e,capture_params:r}),s.id}catch(n){throw O(I.MICROPHONE_CAPTURE_RESULT,{is_success:!1,device_id:e,capture_params:r,...Pt(n)}),this._handleError(n,me.OPEN_MICROPHONE_FAILED),n}}async startScreenCapture(e){const t={audio:e,video:this._videoConstraints};try{const r=await vd(t,void 0,!this._livePusher.isEnableMixing),n=new zf(r,{frameRate:this._videoConstraints.frameRate});return this._screenStreams[n.id]=n,this._notifyCaptured(n),this._bindStreamEvent(n),O(I.SCREEN_CAPTURE_RESULT,{is_success:!0,stream_id:n.id,capture_params:t}),n.id}catch(r){throw O(I.SCREEN_CAPTURE_RESULT,{is_success:!1,capture_params:t,...Pt(r)}),this._handleError(r,me.OPEN_SCREEN_FAILED),r}}async startVideoFileCapture(e){try{const t=await Ls({url:e,video:!0,audio:!0,loop:!0}),r=new Tf(t);return this._videoFileStreams[r.id]=r,this._notifyCaptured(r),this._bindStreamEvent(r),O(I.VIDEO_FILE_CAPTURE_RESULT,{is_success:!0,stream_id:r.id,file_url:e}),r.id}catch(t){throw this._handleError(t,me.VIDEO_FILE_CAPTURE_FAILED),O(I.VIDEO_FILE_CAPTURE_RESULT,{is_success:!1,file_url:e,...Pt(t)}),t}}async startAudioFileCapture(e){try{const t=await Ls({url:e,video:!1,audio:!0,loop:!0}),r=new Af(t);return this._audioFileStreams[r.id]=r,this._notifyCaptured(r),this._bindStreamEvent(r),O(I.AUDIO_FILE_CAPTURE_RESULT,{is_success:!0,stream_id:r.id,file_url:e}),r.id}catch(t){throw O(I.AUDIO_FILE_CAPTURE_RESULT,{is_success:!1,file_url:e,...Pt(t)}),this._handleError(t,me.AUDIO_FILE_CAPTURE_FAILED),t}}async startImageCapture(e){try{const t=await _d({url:e,width:0,height:0,frameRate:30}),r=new Rf(t);return this._imageStreams[r.id]=r,this._notifyCaptured(r),this._bindStreamEvent(r),O(I.IMAGE_FILE_CAPTURE_RESULT,{is_success:!0,stream_id:r.id,file_url:e}),r.id}catch(t){throw O(I.IMAGE_FILE_CAPTURE_RESULT,{is_success:!1,file_url:e,...Pt(t)}),this._handleError(t,me.IMAGE_FILE_CAPTURE_FAILED),t}}startCustomVideoCapture(e){const t=bd(e);if(t){const r=new Df(t);return this._customVideoStreams[r.id]=r,this._notifyCaptured(r),this._bindStreamEvent(r),r.id}}startCustomAudioCapture(e){const t=Sd(e);if(t){const r=new xf(t);return this._customAudioStreams[r.id]=r,this._notifyCaptured(r),this._bindStreamEvent(r),r.id}}async startVolumeDetect(e){const t=this.getStreamById(e);if(t)try{await t.startVolumeDetect(),O(I.VOLUME_DETECTOR_START_RESULT,{is_success:!0,stream_id:t.id})}catch(r){O(I.VOLUME_DETECTOR_START_RESULT,{is_success:!1,stream_id:t.id,error_message:r.message}),this._handleError(r,me.VOLUME_DETECT_FAILED)}}stopVolumeDetect(e){const t=this.getStreamById(e);t&&t.stopVolumeDetect()}getDefaultVideoStream(){return je(this._cameraStreams)[0]||je(this._screenStreams)[0]||je(this._videoFileStreams)[0]||je(this._imageStreams)[0]||je(this._customVideoStreams)[0]}getDefaultAudioStream(){return je(this._microphoneStreams)[0]||je(this._audioFileStreams)[0]||je(this._customAudioStreams)[0]}getVideoStream(e){return this._cameraStreams[e]||this._screenStreams[e]||this._videoFileStreams[e]||this._imageStreams[e]||this._customVideoStreams[e]}getAudioStream(e){return this._microphoneStreams[e]||this._audioFileStreams[e]||this._customAudioStreams[e]}getStreamById(e){return this.getAudioStream(e)||this.getVideoStream(e)}getVolume(e){const t=this.getStreamById(e);return(t==null?void 0:t.volume)||0}destroy(){Object.values(V).forEach(e=>{this.stopCapture({type:e})})}}let st=class{constructor(e){this._enabled=!1,this.group=(...t)=>{this._enabled&&console.group(`[${this._prefix}]: `,...t)},this.groupCollapsed=(...t)=>{this._enabled&&console.groupCollapsed(`[${this._prefix}]: `,...t)},this.groupEnd=()=>{this._enabled&&console.groupEnd()},this.log=(...t)=>{this._enabled&&console.log(`[${this._prefix}]: `,...t)},this.warn=(...t)=>{this._enabled&&console.warn(`[${this._prefix}]: `,...t)},this.error=(...t)=>{this._enabled&&console.error(`[${this._prefix}]: `,...t)},this.table=(...t)=>{this._enabled&&console.table(...t)},this._prefix=e;try{this._enabled=location.href.indexOf("rtmdebug")!==-1}catch{}}};class An{constructor({streamManagerController:e,composedStream:t,streamComposeController:r}){this._streamManagerController=e,this._composedStream=t,this._streamComposeController=r,this._active=!1,this.bindStreamManagerControllerEvent()}bindStreamManagerControllerEvent(){this._streamManagerController.on(Ae.DeviceCaptured,e=>{this._active&&this.onStreamCapture(e)}),this._streamManagerController.on(Ae.DeviceStopCapture,e=>{this._active&&this.onStreamStopCapture(e)})}getComposedStream(){return this._composedStream}enable(){this._active=!0}disable(){this._active=!1}}const Pa=new st("SingleComposer");class B_ extends An{onStreamCapture(e){e.isVideoStream?this._handleVideoStreamCapture(e):this._handleAudioStreamCapture(e)}onStreamStopCapture(e){e&&(e.isVideoStream?this._handleVideoStreamStopCapture(e):this._handleAudioStreamStopCapture(e))}enable(){if(super.enable(),this._composedStream.videoStream){const e=this._streamManagerController.getDefaultVideoStream();e&&this._handleVideoStreamCapture(e)}}async setVideoQuality({width:e,height:t,frameRate:r}){var n,s;if(this._active)try{await((s=(n=this._composedStream.videoStream)==null?void 0:n.videoTrack)==null?void 0:s.applyConstraints({width:{min:e,ideal:e},height:{min:t,ideal:t},frameRate:{min:r,ideal:r}}))}catch(a){Pa.error("setVideoQuality error",a)}}_handleVideoStreamCapture(e){const t=this._composedStream.videoStream;t!=null&&t.id&&this._streamComposeController.getMixerComposer().haveMixedStream(t.id)&&this._streamComposeController.removeAudioStream(t.id),e.audioTrack&&this._streamComposeController.addAudioStream({streamId:e.id,volume:100}),this._composedStream.setVideoStream(e)}_handleAudioStreamCapture(e){const t=this._streamComposeController.getMixerComposer().getMixedStreamByType(e.type);t.length>0&&t.forEach(r=>{this._streamComposeController.removeAudioStream(r.id)}),this._streamComposeController.addAudioStream({streamId:e.id,volume:100})}_handleVideoStreamStopCapture(e){const t=this._composedStream.videoStream;if((t==null?void 0:t.id)===e.id){const r=this._streamManagerController.getDefaultVideoStream();r?this._handleVideoStreamCapture(r):Pa.error("all video stream stop capture")}}muteVideoStream(){var e;(e=this._composedStream.videoStream)!=null&&e.videoTrack&&(this._composedStream.videoStream.videoTrack.enabled=!1)}unmuteVideoStream(){var e;(e=this._composedStream.videoStream)!=null&&e.videoTrack&&(this._composedStream.videoStream.videoTrack.enabled=!0)}_handleAudioStreamStopCapture(e){this._streamComposeController.removeAudioStream(e.id)}getComposedStream(){return this._composedStream}}class V_ extends Xe{constructor(e,{width:t,height:r,x:n,y:s,zOrder:a,keepRatio:o,mirrorType:d}){super(),this._rect={x:0,y:0,width:0,height:0,zOrder:0},this._isHidden=!1,this._paintSize={width:0,height:0},this._rect.width=t??e.width,this._rect.height=r??e.height,this._rect.x=n??0,this._rect.y=s??0,this._rect.zOrder=a??0,this._rect.sourceHeight=e.height,this._rect.sourceWidth=e.width,this._rect.keepRatio=o??!1,this._rect.mirrorType=d,this._stream=e,this._bindVideoTrackSizeChange()}_getPaintSize({elementWidth:e,elementHeight:t}){const r=this._rect.width,n=this._rect.height;if(r===0&&n===0)return{width:0,height:0};if(r===0)return{height:n,width:e*(n/t)};if(n===0)return{width:r,height:t*(r/e)};const s=e/t,a=r/n;let o=r,d=n;return s>a?(o=r,d=2*Math.round(r/s/2)):s<a&&(o=2*Math.round(n*s/2),d=n),{width:o,height:d}}_bindVideoTrackSizeChange(){this._stream.on(ms.SizeChange,({width:e,height:t})=>{this.setBaseProps("sourceWidth",e),this.setBaseProps("sourceHeight",t)})}getViewNode(){var n;if(!this._stream)return;let e={width:this._rect.width,height:this._rect.height};this._rect.keepRatio&&(e=this._getPaintSize({elementWidth:this._stream.width,elementHeight:this._stream.height})),this._paintSize=e;const t=(n=this._stream.viewNode)==null?void 0:n.size(e.width,e.height);let r;return this._rect.mirrorType!==void 0&&this._rect.mirrorType!==ds.None?r=t==null?void 0:t.mirror(this._rect.mirrorType):r=t,r=r==null?void 0:r.position(this._rect.x,this._rect.y),r}get x(){return this._rect.x}set x(e){this.setBaseProps("x",e)}get y(){return this._rect.y}set y(e){this.setBaseProps("y",e)}get width(){return this._rect.width}set width(e){this.setBaseProps("width",e)}get height(){return this._rect.height}set height(e){this.setBaseProps("height",e)}get zOrder(){return this._rect.zOrder}set zOrder(e){this.setBaseProps("zOrder",e)}get keepRatio(){return this._rect.keepRatio??!1}set keepRatio(e){this.setBaseProps("keepRatio",e)}set mirrorType(e){this.setBaseProps("mirrorType",e)}get paintSize(){return this._paintSize}setBaseProps(e,t){const r=this._rect[e]!==t;switch(e){case"width":this._rect.width=t;break;case"height":this._rect.height=t;break;case"x":this._rect.x=t;break;case"y":this._rect.y=t;break;case"zOrder":this._rect.zOrder=t;break;case"keepRatio":this._rect.keepRatio=t;break;case"mirrorType":this._rect.mirrorType=t;break}r&&this.emit("propsChange",{[e]:t})}show(){this._isHidden=!1}hide(){this._isHidden=!0}get stream(){return this._stream}get isHidden(){return this._isHidden}destroy(){}}class La extends Ct{constructor(e,t){super({type:V.MixVideo,stream:e}),this._trackMap.video=e,this._frameRate=(t==null?void 0:t.frameRate)??1}get source(){return this._source}replaceVideoTrack(e){this._trackMap.video=e,this._source=e}get viewNode(){return null}get mixerNode(){return null}bindTrackEnd(e){this.source.onended=e}destroy(){this.source.stop(),delete this._trackMap.video}}var F_=Object.defineProperty,j_=Object.getOwnPropertyDescriptor,Ei=(i,e,t,r)=>{for(var n=j_(e,t),s=i.length-1,a;s>=0;s--)(a=i[s])&&(n=a(e,t,n)||n);return n&&F_(e,t,n),n};const Ua=new st("composition-composer");function wi(i,e,t){const r=t.value;return t.value=function(...n){return this._active||Ua.error("composer is not active"),r.apply(this,n)},t}class Lt extends An{constructor(e){super(e),this._compositionViewConfig={width:1080,height:720,frameRate:30,backgroundColor:"#000000"},this._sprites=[],this._videoMixer=new Ld}onStreamCapture(e){}onStreamStopCapture(e){e&&e.isVideoStream&&this.removeVideoStream(e.id)}enable(){var r;if(this._active)return;super.enable();const e=this._videoMixer.track(),t=this._mixedVideoStream;this._mixedVideoStream=new La(e,{frameRate:this._compositionViewConfig.frameRate}),this._composedStream.setVideoStream(this._mixedVideoStream),t&&((r=t.videoTrack)==null?void 0:r.id)!==e.id&&t.destroy()}disable(){super.disable(),this._videoMixer.stop()}_updateSpriteToMixer(){const e=xo(this._sprites.map(t=>t.isHidden?null:t.getViewNode()));this._videoMixer.draw(e)}_removeSprite(e){this._sprites=this._sprites.filter(t=>t!==e),e.destroy(),this._updateSpriteToMixer()}_addSprite(e){this._sprites.push(e),this._sprites=this._sprites.sort((t,r)=>t.zOrder-r.zOrder),e.on("propsChange",t=>{Cf(t.zOrder)||(this._sprites=this._sprites.sort((r,n)=>r.zOrder-n.zOrder)),this._updateSpriteToMixer()}),this._updateSpriteToMixer()}setMixingConfig(e){const t=e.frameRate&&e.frameRate!==this._compositionViewConfig.frameRate;if(this._compositionViewConfig={...this._compositionViewConfig,...e},this._compositionViewConfig.frameRate<1&&(this._compositionViewConfig.frameRate=1),this._videoMixer.updateConfig(this._compositionViewConfig),t&&this._mixedVideoStream){const r=this._mixedVideoStream,n=this._videoMixer.updateFps();this._mixedVideoStream=new La(n,{frameRate:this._compositionViewConfig.frameRate}),this._composedStream.setVideoStream(this._mixedVideoStream),r.destroy()}}getMixingConfig(){return this._compositionViewConfig}addVideoStream(e,t){if(!e.viewNode){Ua.error("have no viewNode for composition");return}e.audioTrack&&this._streamComposeController.addAudioStream({streamId:e.id,volume:100});const r=new V_(e,t);this._addSprite(r)}_updateSingleVideoStream(e){const t=e.streamId;if(!t)return;const r=this._sprites.find(n=>n.stream.id===t);r&&(r.height=e.height,r.width=e.width,r.x=e.x,r.y=e.y,r.zOrder=e.zOrder,r.keepRatio=e.keepRatio??!1,r.mirrorType=e.mirrorType)}updateVideoStream(e){e.forEach(t=>{this._updateSingleVideoStream(t)}),this._updateSpriteToMixer()}removeVideoStream(e){if(!e)return;const t=this._sprites.find(r=>r.stream.id===e);t&&this._removeSprite(t)}muteVideoStream(e){if(e){const t=this._sprites.find(r=>r.stream.id===e);t&&t.hide()}else this._sprites.forEach(t=>{t.hide()});this._updateSpriteToMixer()}unmuteVideoStream(e){if(e){const t=this._sprites.find(r=>r.stream.id===e);t&&t.show()}else this._sprites.forEach(t=>{t.show()});this._updateSpriteToMixer()}setMixerWorkerScript(e){this._videoMixer.setWorkerTimerScriptUrl(e)}getVideoStreamRenderConfig(e){const t=this._sprites.find(r=>r.stream.id===e);if(t)return{width:t.width,height:t.height,paintWidth:t.paintSize.width,paintHeight:t.paintSize.height,x:t.x,y:t.y,zOrder:t.zOrder}}getDrawCountPerSecond(){return this._videoMixer.getDrawCountPerSecond()}}Ei([wi],Lt.prototype,"addVideoStream"),Ei([wi],Lt.prototype,"updateVideoStream"),Ei([wi],Lt.prototype,"removeVideoStream"),Ei([wi],Lt.prototype,"muteVideoStream"),Ei([wi],Lt.prototype,"unmuteVideoStream");class H_ extends Xe{constructor(e,{volume:t}){super(),this._volume=100,this._isMute=!1,this._volume=t??100,this._stream=e}get volume(){return this._volume}set volume(e){const t=this._volume!==e;this._volume=e,t&&this.emit("propsChange",{volume:e})}getMixerNode(){var e;return(e=this._stream.mixerNode)==null?void 0:e.gain(this._volume/100)}mute(){this._isMute=!0}unmute(){this._isMute=!1}get isMute(){return this._isMute}get stream(){return this._stream}}class $_ extends Ui{constructor(e){super({type:V.MixAudio,stream:e}),this._trackMap.audio=e}get source(){return this._source}hasVideoTrack(){return!1}get mixerNode(){return null}bindTrackEnd(e){this.source.onended=e}destroy(){var e;(e=this._trackMap.audio)==null||e.stop(),delete this._trackMap.audio}}class q_ extends An{constructor(e){super(e),this._spriteList=[],this._audioMixer=new wd({keepAlive:!0})}onStreamCapture(e){}onStreamStopCapture(e){e&&this.removeAudioStream(e.id)}_updateSpriteToMixer(){const e=xo(this._spriteList.map(t=>t.isMute?null:t.getMixerNode()));this._audioMixer.mix(e)}_updateSingleAudioStream(e){const{streamId:t,volume:r}=e,n=this._spriteList.find(s=>s.stream.id===t);n?r!==void 0&&(n.volume=r):console.error("can not find stream"+t)}enable(){super.enable();const e=this._audioMixer.track(),t=new $_(e);this._composedStream.setAudioStream(t),this._audioMixer.mix([])}resumeMixer(){this._audioMixer.resume()}addAudioStream(e,t){const r=new H_(e,t);this._spriteList.push(r),this._updateSpriteToMixer()}tryResume(){return this._audioMixer.resume()}removeAudioStream(e){const t=this._spriteList.find(r=>r.stream.id===e);t&&(this._spriteList=this._spriteList.filter(r=>r!==t),this._updateSpriteToMixer())}updateAudioStream(e){e.forEach(t=>{this._updateSingleAudioStream(t)}),this._updateSpriteToMixer()}muteAudioStream(e){if(e){const t=this._spriteList.find(r=>r.stream.id===e);t&&t.mute()}else this._spriteList.forEach(t=>{t.mute()});this._updateSpriteToMixer()}unmuteAudioStream(e){if(e){const t=this._spriteList.find(r=>r.stream.id===e);t&&t.unmute()}else this._spriteList.forEach(t=>{t.unmute()});this._updateSpriteToMixer()}haveMixedStream(e){return this._spriteList.some(t=>t.stream.id===e)}getMixedStreamByType(e){return this._spriteList.filter(t=>t.stream.type===e).map(t=>t.stream)}}class K_ extends Xe{constructor({videoStream:e,audioStream:t}={}){super(),this._videoStream=e,this._audioStream=t}setVideoStream(e){var t;((t=this._videoStream)==null?void 0:t.id)!==(e==null?void 0:e.id)&&(this._videoStream=e,this.emit(dt.VideoStreamChange,e))}setAudioStream(e){var t;((t=this._audioStream)==null?void 0:t.id)!==e.id&&(this._audioStream=e,this.emit(dt.AudioStreamChange,e))}get audioStream(){return this._audioStream}get videoStream(){return this._videoStream}get videoTrack(){var e;return(e=this._videoStream)==null?void 0:e.videoTrack}get audioTrack(){var e;return(e=this._audioStream)==null?void 0:e.audioTrack}}const W_=new st("streamComposeController");class J_{constructor(e){this._streamManagerController=e,this._composedStream=new K_,this.singleComposer=new B_({streamManagerController:this._streamManagerController,composedStream:this._composedStream,streamComposeController:this}),this.compositionComposer=new Lt({streamManagerController:this._streamManagerController,composedStream:this._composedStream,streamComposeController:this}),this.mixerComposer=new q_({streamManagerController:this._streamManagerController,composedStream:this._composedStream,streamComposeController:this}),this.singleComposer.enable(),this.mixerComposer.enable()}enableMixing(e){e?(this.compositionComposer.enable(),this.singleComposer.disable()):(this.compositionComposer.disable(),this.singleComposer.enable())}setVideoQuality({width:e,height:t,frameRate:r}){this.singleComposer.setVideoQuality({width:e,height:t,frameRate:r}),this.compositionComposer.setMixingConfig({width:e,height:t,frameRate:r})}setMixingConfig(e){this.compositionComposer.setMixingConfig(e)}getMixingConfig(){return this.compositionComposer.getMixingConfig()}addAudioStream(e){const t=this._streamManagerController.getStreamById(e.streamId);this.mixerComposer.addAudioStream(t,{volume:e.volume??100})}removeAudioStream(e){return this.mixerComposer.removeAudioStream(e)}updateAudioStream(e){this.mixerComposer.updateAudioStream(e)}addVideoStream(e){const t=this._streamManagerController.getVideoStream(e.streamId);if(!t){W_.error("can not find video stream"+e.streamId);return}this.compositionComposer.addVideoStream(t,e)}updateVideoStream(e){this.compositionComposer.updateVideoStream(e);const t=e.map(r=>({streamId:r.streamId,volume:r.volume}));this.mixerComposer.updateAudioStream(t)}removeVideoStream(e){this.compositionComposer.removeVideoStream(e),this.mixerComposer.removeAudioStream(e)}getComposer(){return this.isEnableMixing?this.compositionComposer:this.singleComposer}getComposedStream(){return this._composedStream}muteVideoStream(e){this.isEnableMixing?this.compositionComposer.muteVideoStream(e):this.singleComposer.muteVideoStream()}unmuteVideoStream(e){this.isEnableMixing?this.compositionComposer.unmuteVideoStream(e):this.singleComposer.unmuteVideoStream()}muteAudioStream(e){this.mixerComposer.muteAudioStream(e)}unmuteAudioStream(e){this.mixerComposer.unmuteAudioStream(e)}get isEnableMixing(){return this.compositionComposer._active}getMixerComposer(){return this.mixerComposer}setMixerWorkerScript(e){this.compositionComposer.setMixerWorkerScript(e)}getVideoStreamRenderConfig(e){if(this.compositionComposer._active)return this.compositionComposer.getVideoStreamRenderConfig(e)}resumeMixer(){return this.mixerComposer.tryResume()}getCompositionDrawCountPerSecond(){return this.compositionComposer.getDrawCountPerSecond()}}class Ga{constructor(e){this._hasBindComposedStreamEvent=!1,this._composedStream=e}bindComposedStreamEvent(){this._hasBindComposedStreamEvent||(this._composedStream.on(dt.VideoStreamChange,this.handleVideoStreamChange),this._composedStream.on(dt.AudioStreamChange,this.handleAudioStreamChange),this._hasBindComposedStreamEvent=!0)}unbindComposedStreamEvent(){this._hasBindComposedStreamEvent&&(this._composedStream.off(dt.VideoStreamChange,this.handleVideoStreamChange),this._composedStream.off(dt.AudioStreamChange,this.handleAudioStreamChange),this._hasBindComposedStreamEvent=!1)}}const Ut=new st("PreviewConsumer");class X_ extends Ga{constructor(e,{streamConsumeController:t}){super(e),this._isPreviewing=!1,this._previewElement=null,this.handleAudioStreamChange=r=>{this.startPreview()},this.handleVideoStreamChange=r=>{this.startPreview()},this._streamConsumeController=t}start(){this.bindComposedStreamEvent()}stop(){this.unbindComposedStreamEvent()}setRenderView(e){if(!e)return;const t=document.getElementById(e);if(!t)throw new Error(`can not found element with id ${e}`);if(t===this._previewElement)return;if(this._previewElement){if(t.contains(this._previewElement))return;t.appendChild(this._previewElement);return}const r=document.createElement("video");r.style.width="100%",r.style.height="100%",r.autoplay=!0,r.playsInline=!0,r.setAttribute("webkit-playsinline",""),r.setAttribute("x5-playsinline",""),this._previewElement=r;const n={video:null,audio:null};r.addEventListener("loadeddata",()=>{const s=r.srcObject.getVideoTracks()[0],a=r.srcObject.getAudioTracks()[0];s&&s!==n.video&&(this._streamConsumeController.emit(Z.CaptureFirstVideoFrame),n.video=s),a&&a!==n.audio&&(this._streamConsumeController.emit(Z.CaptureFirstAudioFrame),n.audio=a)}),t.appendChild(r)}startPreview(){if(Ut.log("startPreview"),!this._previewElement){Ut.warn("preview element not found");return}this._isPreviewing||this.start();const e=this._composedStream.audioTrack,t=this._composedStream.videoTrack;e&&(this._appendTrack(this._previewElement,e),this._removeTrack(this._previewElement,null)),t&&(this._appendTrack(this._previewElement,t),this._removeTrack(this._previewElement,null)),this._previewElement.play().catch(r=>{this._streamConsumeController.emit(Z.NotAllowedAutoPlay)}),this._isPreviewing=!0}stopPreview(){this._isPreviewing=!1;const e=this._composedStream.audioTrack,t=this._composedStream.videoTrack;e&&this._removeTrack(this._previewElement,e),t&&this._removeTrack(this._previewElement,t),this.stop()}destroy(){this.stopPreview(),this._previewElement=null,this.unbindComposedStreamEvent()}_appendTrack(e,t){if(!e||!t)return;const r=e.srcObject||new MediaStream;r.getTracks().find(n=>n.id===t.id)||(t.kind==="audio"&&r.getTracks().forEach(n=>{n.kind==="audio"&&(Ut.log(`remove preview track, ${n.label}, readyState=${n.readyState}`),r.removeTrack(n))}),t.kind==="video"&&r.getTracks().forEach(n=>{n.kind==="video"&&(r.removeTrack(n),Ut.log(`remove preview track, ${n.label}, readyState=${n.readyState}`))}),r.addTrack(t),e.srcObject?e.load():e.srcObject=r)}_removeTrack(e,t){if(!e)return;const r=e.srcObject;r&&(r.getTracks().forEach(n=>{(n.id===(t==null?void 0:t.id)||n.readyState==="ended")&&(Ut.log(`remove preview track ${n.label}`),r.removeTrack(n))}),r.getTracks().length===0&&(e.srcObject=null,Ut.log("set srcObject null")))}getPreviewElement(){if(this.isPreviewing)return this._previewElement}get isPreviewing(){return this._isPreviewing}}var ke={},Rn={},Dn={exports:{}},Na;function xn(){if(Na)return Dn.exports;Na=1;var i=Dn.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(e){return e.encoding?"rtpmap:%d %s/%s/%s":e.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(e){return e.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(e){return e.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(e){return"extmap:%d"+(e.direction?"/%s":"%v")+(e["encrypt-uri"]?" %s":"%v")+" %s"+(e.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(e){return e.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(e){var t="candidate:%s %d %s %d %s %d typ %s";return t+=e.raddr!=null?" raddr %s rport %d":"%v%v",t+=e.tcptype!=null?" tcptype %s":"%v",e.generation!=null&&(t+=" generation %d"),t+=e["network-id"]!=null?" network-id %d":"%v",t+=e["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(e){var t="ssrc:%d";return e.attribute!=null&&(t+=" %s",e.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(e){return e.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(e){return e.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(e){return"imageattr:%s %s %s"+(e.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(e){return"simulcast:%s %s"+(e.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(e){return"ts-refclk:%s"+(e.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(e){var t="mediaclk:";return t+=e.id!=null?"id=%s %s":"%v%s",t+=e.mediaClockValue!=null?"=%s":"",t+=e.rateNumerator!=null?" rate=%s":"",t+=e.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"]}]};return Object.keys(i).forEach(function(e){var t=i[e];t.forEach(function(r){r.reg||(r.reg=/(.*)/),r.format||(r.format="%s")})}),Dn.exports}var Ba;function Z_(){return Ba||(Ba=1,function(i){var e=function(o){return String(Number(o))===o?Number(o):o},t=function(o,d,c,u){if(u&&!c)d[u]=e(o[1]);else for(var l=0;l<c.length;l+=1)o[l+1]!=null&&(d[c[l]]=e(o[l+1]))},r=function(o,d,c){var u=o.name&&o.names;o.push&&!d[o.push]?d[o.push]=[]:u&&!d[o.name]&&(d[o.name]={});var l=o.push?{}:u?d[o.name]:d;t(c.match(o.reg),l,o.names,o.name),o.push&&d[o.push].push(l)},n=xn(),s=RegExp.prototype.test.bind(/^([a-z])=(.*)/);i.parse=function(o){var d={},c=[],u=d;return o.split(/(\r\n|\r|\n)/).filter(s).forEach(function(l){var h=l[0],p=l.slice(2);h==="m"&&(c.push({rtp:[],fmtp:[]}),u=c[c.length-1]);for(var f=0;f<(n[h]||[]).length;f+=1){var v=n[h][f];if(v.reg.test(p))return r(v,u,p)}}),d.media=c,d};var a=function(o,d){var c=d.split(/=(.+)/,2);return c.length===2?o[c[0]]=e(c[1]):c.length===1&&d.length>1&&(o[c[0]]=void 0),o};i.parseParams=function(o){return o.split(/;\s?/).reduce(a,{})},i.parseFmtpConfig=i.parseParams,i.parsePayloads=function(o){return o.toString().split(" ").map(Number)},i.parseRemoteCandidates=function(o){for(var d=[],c=o.split(" ").map(e),u=0;u<c.length;u+=3)d.push({component:c[u],ip:c[u+1],port:c[u+2]});return d},i.parseImageAttributes=function(o){return o.split(" ").map(function(d){return d.substring(1,d.length-1).split(",").reduce(a,{})})},i.parseSimulcastStreamList=function(o){return o.split(";").map(function(d){return d.split(",").map(function(c){var u,l=!1;return c[0]!=="~"?u=e(c):(u=e(c.substring(1,c.length)),l=!0),{scid:u,paused:l}})})}}(Rn)),Rn}var In,Va;function Q_(){if(Va)return In;Va=1;var i=xn(),e=/%[sdv%]/g,t=function(a){var o=1,d=arguments,c=d.length;return a.replace(e,function(u){if(o>=c)return u;var l=d[o];switch(o+=1,u){case"%%":return"%";case"%s":return String(l);case"%d":return Number(l);case"%v":return""}})},r=function(a,o,d){var c=o.format instanceof Function?o.format(o.push?d:d[o.name]):o.format,u=[a+"="+c];if(o.names)for(var l=0;l<o.names.length;l+=1){var h=o.names[l];o.name?u.push(d[o.name][h]):u.push(d[o.names[l]])}else u.push(d[o.name]);return t.apply(null,u)},n=["v","o","s","i","u","e","p","c","b","t","r","z","a"],s=["i","c","b","a"];return In=function(a,o){o=o||{},a.version==null&&(a.version=0),a.name==null&&(a.name=" "),a.media.forEach(function(l){l.payloads==null&&(l.payloads="")});var d=o.outerOrder||n,c=o.innerOrder||s,u=[];return d.forEach(function(l){i[l].forEach(function(h){h.name in a&&a[h.name]!=null?u.push(r(l,h,a)):h.push in a&&a[h.push]!=null&&a[h.push].forEach(function(p){u.push(r(l,h,p))})})}),a.media.forEach(function(l){u.push(r("m",i.m[0],l)),c.forEach(function(h){i[h].forEach(function(p){p.name in l&&l[p.name]!=null?u.push(r(h,p,l)):p.push in l&&l[p.push]!=null&&l[p.push].forEach(function(f){u.push(r(h,p,f))})})})}),u.join(`\r
66
+ }`,t=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.appendChild(document.createTextNode(e)),t.appendChild(r);var n=document.createElement("div");n.innerHTML='<div id="debugger-applog-web" class="debugger-applog-web"></div>';var s=document.createElement("div");s.innerHTML='<div id="debugger-container" class="debugger-container"></div>',document.getElementsByTagName("body")[0].appendChild(n),document.getElementsByTagName("body")[0].appendChild(s);var a=document.getElementById("debugger-applog-web");a&&a.addEventListener("click",function(){window&&window.postMessage({type:"devtool:web:open-draw"},location.origin)})},i}(),Sn={autotrack:{src:{cn:te("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z21z22z18z22z1gz1az4az18z1nz1nz1jz1mz1ez1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz18z1nz1nz1jz1mz1ez49z21z1bz1iz49z21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz4hz4bz1nz1jz23z1ez1gz1lz4bz18z23z22z1mz22z20z18z1az1iz4az1hz21"),sg:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-sg/log-sdk/collect/5/plugin/autotrack.js",va:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-us/log-sdk/collect/5/plugin/autotrack.js"},object:"LogAutoTrack"},ab:{src:{cn:te("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z21z22z18z22z1gz1az4az18z1nz1nz1jz1mz1ez1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz18z1nz1nz1jz1mz1ez49z21z1bz1iz49z21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz4hz4bz1nz1jz23z1ez1gz1lz4bz18z19z4az1hz21"),sg:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-sg/log-sdk/collect/5/plugin/ab.js",va:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-us/log-sdk/collect/5/plugin/ab.js"},object:"LogAb"},stay:{src:{cn:te("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z21z22z18z22z1gz1az4az18z1nz1nz1jz1mz1ez1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz18z1nz1nz1jz1mz1ez49z21z1bz1iz49z21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz4hz4bz1nz1jz23z1ez1gz1lz4bz21z22z18z27z4az1hz21"),sg:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-sg/log-sdk/collect/5/plugin/stay.js",va:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-us/log-sdk/collect/5/plugin/stay.js"},object:"LogStay"},route:{src:{cn:te("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z21z22z18z22z1gz1az4az18z1nz1nz1jz1mz1ez1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz18z1nz1nz1jz1mz1ez49z21z1bz1iz49z21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz4hz4bz1nz1jz23z1ez1gz1lz4bz20z1mz23z22z1cz4az1hz21"),sg:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-sg/log-sdk/collect/5/plugin/route.js",va:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-us/log-sdk/collect/5/plugin/route.js"},object:"LogRoute"},tracer:{src:{cn:te("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z21z22z18z22z1gz1az4az18z1nz1nz1jz1mz1ez1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz18z1nz1nz1jz1mz1ez49z21z1bz1iz49z21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz4hz4bz1nz1jz23z1ez1gz1lz4bz22z20z18z1az1cz20z4az1hz21"),sg:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-sg/log-sdk/collect/5/plugin/tracer.js",va:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-us/log-sdk/collect/5/plugin/tracer.js"},object:"LogTracer"},retry:{src:{cn:te("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z21z22z18z22z1gz1az4az18z1nz1nz1jz1mz1ez1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz18z1nz1nz1jz1mz1ez49z21z1bz1iz49z21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz4hz4bz1nz1jz23z1ez1gz1lz4bz20z1cz22z20z27z4az1hz21"),sg:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-sg/log-sdk/collect/5/plugin/retry.js",va:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-us/log-sdk/collect/5/plugin/retry.js"},object:"LogRetry"},visual:{src:{cn:te("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z21z22z18z22z1gz1az4az18z1nz1nz1jz1mz1ez1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz18z1nz1nz1jz1mz1ez49z21z1bz1iz49z21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz4hz4bz1nz1jz23z1ez1gz1lz4bz24z1gz21z23z18z1jz4az1hz21"),sg:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-sg/log-sdk/collect/5/plugin/visual.js",va:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-us/log-sdk/collect/5/plugin/visual.js"},object:"LogVisual"}},Qm=["ab","autotrack","Stay","store","et","profile","cep","heartbeat","monitor","route","tracer"],be=function(){function i(e){this.disableAutoPageView=!1,this.bridgeReport=!1,this.staging=!1,this.pluginInstances=[],this.sended=!1,this.started=!1,this.destroy=!1,this.sdkReady=!1,this.adapters={},this.loadType="base",this.sdkStop=!1,this.name=e,this.hook=new Uf,this.remotePlugin=new Map,this.Types=w,this.adapters.storage=He,this.loadType="full"}return i.usePlugin=function(e,t,r){if(t){for(var n=!1,s=0,a=i.plugins.length;s<a;s++)if(i.plugins[s].name===t){i.plugins[s].plugin=e,i.plugins[s].options=r||{},n=!0;break}n||i.plugins.push({name:t,plugin:e,options:r})}else i.plugins.push({plugin:e})},i.prototype.usePlugin=function(e,t,r){e&&(this.loadType==="full"&&Qm.includes(e)?console.info("your sdk version has "+e+" plugin already ~"):t?typeof t=="string"?this.remotePlugin.get(e)||this.remotePlugin.set(e,{src:t,call:r}):this.remotePlugin.get(e)||this.remotePlugin.set(e,{instance:t}):this.remotePlugin.get(e)||this.remotePlugin.set(e,"sdk"))},i.prototype.init=function(e){var t,r=this;this.logger=new Zf(this.name,e.log),this.inited?this.logger.warn("[instance: "+this.name+"], every instance's api: init, can be call only one time!"):e&&ei(e)?e.app_id&&typeof(t=e.app_id)=="number"&&!isNaN(t)?!e.app_key||function(n){return typeof n=="string"}(e.app_key)?(e.channel_domain||["cn","sg","va","my"].indexOf(e.channel)!==-1||(this.logger.warn("channel must be `cn`, `sg`,`va`, `my` !"),e.channel="cn"),this.spider=new Qf,this.spider.checkSpider(e)?this.logger.warn("your env may be a spider, can not report!"):(this.appBridge=new Yf(this,e.enable_native),this.requestManager=new Xm(this,e),this.bridgeReport=this.appBridge.bridgeInject(),this.configManager=new Xf(this,e),this.debugger=new Zm(this,e),this.initConfig=e,this.emit(w.Init),this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行Init",data:e,level:"info",time:Date.now(),infoType:"cus"}),this.destroy=!1,e.disable_auto_pv&&(this.disableAutoPageView=!0),this.bridgeReport||(this.configManager.set({app_id:e.app_id}),this.eventManager=new tm,this.tokenManager=new im,this.sessionManager=new em,Promise.all([new Promise(function(n){r.once(w.TokenComplete,function(){n(!0)})}),new Promise(function(n){r.once(w.Start,function(){n(!0)})})]).then(function(){try{i.plugins.reduce(function(n,s){var a=s.plugin,o=s.options,d=Object.assign(r.initConfig,o),c=new a;return c.apply(r,d),n.push(c),r.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK加载"+s.name+"插件",level:"info",time:Date.now(),infoType:"sdk"}),n},r.pluginInstances)}catch(n){console.warn("load plugin error, "+n.message),r.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK加载插件发生了异常",level:"error",time:Date.now(),data:n.message,infoType:"sdk"})}r.sdkReady=!0,r.emit(w.Ready),r.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 用户信息初始化完成",time:Date.now(),secType:"USER",level:"info",data:r.configManager.get("user"),infoType:"sdk"}),r.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 初始化完成",time:Date.now(),level:"info",data:r.configManager.get("user"),infoType:"sdk"}),r.logger.info("appid: "+e.app_id+", userInfo:"+JSON.stringify(r.configManager.get("user"))),r.logger.info("appid: "+e.app_id+", sdk is ready, version type is "+r.loadType+", version is "+Ye+", you can report now !!!"),e.disable_auto_pv&&(r.disableAutoPageView=!0);try{r.loadType==="full"&&(e.enable_ab_test||e.autotrack)&&(window.opener||window.parent).postMessage("[tea-sdk]ready","*")}catch(n){r.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK发生了异常",level:"error",time:Date.now(),data:n.message,infoType:"sdk"})}r.pageView(),r.on(w.TokenChange,function(n){n==="webid"&&r.pageView(),r.logger.info("appid: "+e.app_id+" token change, new userInfo:"+JSON.stringify(r.configManager.get("user"))),r.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 设置了用户信息",time:Date.now(),secType:"USER",level:"info",data:r.configManager.get("user"),infoType:"sdk"})}),r.on(w.TokenReset,function(){r.logger.info("appid: "+e.app_id+" token reset, new userInfo:"+JSON.stringify(r.configManager.get("user"))),r.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 重置了用户信息",time:Date.now(),secType:"USER",level:"info",data:r.configManager.get("user"),infoType:"sdk"})}),r.on(w.RouteChange,function(n){n.init||e.disable_route_report||r.pageView()})}),this.tokenManager.apply(this,e),this.eventManager.apply(this,e),this.sessionManager.apply(this,e)),this.inited=!0)):this.logger.warn("app_key param is error, must be string, please check!"):this.logger.warn("app_id param is error, must be number, please check!"):this.logger.warn("init params error,please check!")},i.prototype.config=function(e){if(!this.inited)return console.warn("config must be use after function init"),void this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK执行Config发生了异常",level:"error",time:Date.now(),data:"config must be use after function init",infoType:"sdk"});if(!e||!ei(e))return console.warn("config params is error, please check"),void this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK执行Config发生了异常",level:"error",time:Date.now(),data:"config params is error, please check",infoType:"sdk"});if(this.bridgeReport)this.appBridge.setConfig(e);else{e._staging_flag&&e._staging_flag===1&&(this.staging=!0),e.disable_auto_pv&&(this.disableAutoPageView=!0,delete e.disable_auto_pv);var t=B({},e),r=this.initConfig.configPersist||this.initConfig.config_persist||!1;if(this.initConfig&&r){var n=this.configManager.getStore();n&&(t=Object.assign(n,e)),this.configManager.setStore(e)}t.web_id,t.user_unique_id;var s=function(a,o){var d={};for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&o.indexOf(c)<0&&(d[c]=a[c]);if(a!=null&&typeof Object.getOwnPropertySymbols=="function"){var u=0;for(c=Object.getOwnPropertySymbols(a);u<c.length;u++)o.indexOf(c[u])<0&&(d[c[u]]=a[c[u]])}return d}(t,["web_id","user_unique_id"]);this.configManager.set(s),t.hasOwnProperty("web_id")&&this.emit(w.ConfigWebId,t.web_id),t.hasOwnProperty("user_unique_id")&&this.emit(w.ConfigUuid,t.user_unique_id),this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行Config",level:"info",time:Date.now(),data:t,infoType:"cus"})}},i.prototype.setUserUniqueID=function(e){this.config({user_unique_id:e})},i.prototype.setHeaderInfo=function(e,t){var r={};r[e]=t,this.config(r)},i.prototype.removeHeaderInfo=function(e){var t={};t[e]=void 0,this.config(t)},i.prototype.setDomain=function(e){this.configManager&&this.configManager.setDomain(e),this.emit(w.ConfigDomain)},i.prototype.getConfig=function(e){var t;return(t=this.configManager)===null||t===void 0?void 0:t.get(e)},i.prototype.send=function(){this.start()},i.prototype.start=function(){this.inited&&!this.sended&&(this.sended=!0,this.started=!0,this.emit(w.Start),this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行Start",level:"info",time:Date.now(),infoType:"cus"}),this.bridgeReport&&(this.pageView(),this.emit(w.Ready)))},i.prototype.event=function(e,t){var r=this;try{var n=[];if(Array.isArray(e))e.forEach(function(a){var o=r.processEvent(a[0],a[1]||{});o&&n.push(o)});else{var s=this.processEvent(e,t);if(!s)return;n.push(s)}this.bridgeReport?n.forEach(function(a){var o=a.event,d=a.params;r.appBridge.onEventV3(o,JSON.stringify(d))}):n.length&&(this.emit(w.Event,n),this.emit(w.SessionResetTime)),this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行Event",level:"info",time:Date.now(),data:e,infoType:"cus"})}catch(a){this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行Event发生了异常",level:"error",time:Date.now(),data:a.message,infoType:"sdk"})}},i.prototype.beconEvent=function(e,t){if(Array.isArray(e))console.warn("beconEvent not support batch report, please check");else{var r=[],n=this.processEvent(e,t||{});n&&(r.push(n),r.length&&(this.emit(w.BeconEvent,r),this.emit(w.SessionResetTime)),this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行Beacon Event",level:"info",time:Date.now(),data:e,infoType:"sdk"}))}},i.prototype.beaconEvent=function(e,t){this.beconEvent(e,t)},i.prototype.processEvent=function(e,t){t===void 0&&(t={});try{if(!e)return console.warn("eventName is null, please check"),null;var r=e;/^event\./.test(e)&&(r=e.slice(6));var n=t;typeof n!="object"&&(n={}),n.profile?delete n.profile:n.event_index=Gf();var s=void 0;return n.local_ms?(s=n.local_ms,delete n.local_ms):s=+new Date,{event:r,params:n,local_time_ms:s,is_bav:this.initConfig&&this.initConfig.autotrack?1:0}}catch(a){return this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK发生了异常",level:"error",time:Date.now(),data:a.message,infoType:"sdk"}),{event:e,params:t}}},i.prototype.filterEvent=function(e){this.eventFilter=e},i.prototype.on=function(e,t){this.hook.on(e,t)},i.prototype.once=function(e,t){this.hook.once(e,t)},i.prototype.off=function(e,t){this.hook.off(e,t)},i.prototype.emit=function(e,t,r){this.hook.emit(e,t,r)},i.prototype.set=function(e){this.hook.set(e)},i.prototype.stop=function(){this.sdkStop=!0},i.prototype.reStart=function(){this.sdkStop=!1},i.prototype.pageView=function(){this.disableAutoPageView||this.predefinePageView()},i.prototype.predefinePageView=function(e){if(e===void 0&&(e={}),this.inited){var t={title:document.title||location.pathname,url:location.href,url_path:this.handlePath(),time:Date.now(),referrer:window.document.referrer,$is_first_time:""+(this.configManager&&this.configManager.is_first_time||!1)},r=B(B({},t),e);this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 上报PV",level:"info",time:Date.now(),infoType:"sdk"}),this.event("predefine_pageview",r)}else console.warn("predefinePageView must be use after function init")},i.prototype.handlePath=function(){var e=location.pathname;try{if(this.initConfig.allow_hash){var t=new URL(location.href).hash.match(/#\/([^?#]+)/i);return t&&t.length?t[1]:location.pathname}}catch{e=location.pathname}return e},i.prototype.clearEventCache=function(){this.emit(w.CleanEvents)},i.prototype.setWebIDviaUnionID=function(e){if(e){var t=Lo(e);this.config({web_id:""+t,wechat_unionid:e}),this.emit(w.CustomWebId)}},i.prototype.setWebId=function(e){this.config({web_id:""+e})},i.prototype.setWebIDviaOpenID=function(e){if(e){var t=Lo(e);this.config({web_id:""+t,wechat_openid:e}),this.emit(w.CustomWebId)}},i.prototype.setNativeAppId=function(e){this.bridgeReport&&this.appBridge.setNativeAppId(e)},i.prototype.setRequestHeaders=function(e){this.emit(w.CustomHeader,e)},i.prototype.getSessionId=function(){return Dt()},i.prototype.setSessionId=function(e){this.emit(w.SessionReset,e)},i.prototype.resetStayDuration=function(e,t,r){this.emit(w.ResetStay,{url_path:e,title:t,url:r},w.Stay)},i.prototype.resetStayParams=function(e,t,r){e===void 0&&(e=""),t===void 0&&(t=""),r===void 0&&(r=""),this.emit(w.SetStay,{url_path:e,title:t,url:r},w.Stay)},i.prototype.getToken=function(e,t){var r=this;if(this.inited){var n=!1,s=function(o){if(!n){n=!0;var d=r.configManager.get().user;return o&&(d.tobid=o,d["diss".split("").reverse().join("")]=o),e(B({},d))}},a=function(){r.tokenManager.getTobId().then(function(o){s(o)})};this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行GetToken",level:"info",time:Date.now(),infoType:"cus"}),this.sdkReady?a():(t&&setTimeout(function(){s()},t),this.on(w.Ready,function(){a()}))}else console.warn("getToken must be use after function init")},i.prototype.profileSet=function(e){this.bridgeReport?this.appBridge.profileSet(JSON.stringify(e)):this.emit(w.ProfileSet,e,w.Profile),this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行profileSet",level:"info",time:Date.now(),data:e,infoType:"cus"})},i.prototype.profileSetOnce=function(e){this.bridgeReport?this.appBridge.profileSetOnce(JSON.stringify(e)):this.emit(w.ProfileSetOnce,e,w.Profile),this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行profileSetOnce",level:"info",time:Date.now(),data:e,infoType:"cus"})},i.prototype.profileIncrement=function(e){this.bridgeReport?this.appBridge.profileIncrement(JSON.stringify(e)):this.emit(w.ProfileIncrement,e,w.Profile),this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行profileIncrement",level:"info",time:Date.now(),data:e,infoType:"cus"})},i.prototype.profileUnset=function(e){this.bridgeReport?this.appBridge.profileUnset(e):this.emit(w.ProfileUnset,e,w.Profile),this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行profileUnset",level:"info",time:Date.now(),data:e,infoType:"cus"})},i.prototype.profileAppend=function(e){this.bridgeReport?this.appBridge.profileAppend(JSON.stringify(e)):this.emit(w.ProfileAppend,e,w.Profile),this.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行profileAppend",level:"info",time:Date.now(),data:e,infoType:"cus"})},i.prototype.setExternalAbVersion=function(e){this.emit(w.AbExternalVersion,typeof e=="string"&&e?(""+e).trim():null,w.Ab)},i.prototype.getVar=function(e,t,r){this.emit(w.AbVar,{name:e,defaultValue:t,callback:r},w.Ab)},i.prototype.getABconfig=function(e,t){this.emit(w.AbConfig,{params:e,callback:t},w.Ab)},i.prototype.getABConfig=function(e,t){this.emit(w.AbConfig,{params:e,callback:t},w.Ab)},i.prototype.getAbSdkVersion=function(){return this.configManager.getAbVersion()},i.prototype.onAbSdkVersionChange=function(e){var t=this;return this.emit(w.AbVersionChangeOn,e,w.Ab),function(){t.emit(w.AbVersionChangeOff,e,w.Ab)}},i.prototype.offAbSdkVersionChange=function(e){this.emit(w.AbVersionChangeOff,e,w.Ab)},i.prototype.openOverlayer=function(){this.emit(w.AbOpenLayer,"",w.Ab)},i.prototype.closeOverlayer=function(){this.emit(w.AbCloseLayer,"",w.Ab)},i.prototype.getAllVars=function(e){this.emit(w.AbAllVars,e,w.Ab)},i.prototype.destoryInstace=function(){this.destroy||(this.destroy=!0,this.off(w.TokenComplete),this.emit(w.DestoryInstance))},i.prototype.destroyInstance=function(){this.destroy||(this.destroy=!0,this.off(w.TokenComplete),this.emit(w.DestoryInstance))},i.plugins=[],i}(),En="__rangers_ab_style__";(function(i){i[i.Var=0]="Var",i[i.All=1]="All"})(vi||(vi={}));var Ym=function(){function i(){this.fetchStatus="no",this.refreshFetchStatus="complete",this.versions=[],this.extVersions=[],this.mulilinkVersions=[],this.enable_multilink=!1,this.enable_ab_visual=!1,this.editMode=!1,this.callbacks=[],this.data=null,this.changeListener=new Map,this.readyStatus=!1,this.exposureCache=[]}return i.prototype.apply=function(e,t){var r=this;if(t.enable_ab_test){this.collect=e,this.config=t;var n=t.enable_multilink,s=t.ab_channel_domain,a=t.enable_ab_visual,o=t.ab_cross,d=t.ab_cookie_domain,c=t.ab_timeout,u=s||te(Go[t.channel||"cn"]),l=e.adapters.storage,h=this.collect.Types;this.types=h,this.cacheStorgae=new l(!1),this.timeout=c||3e3,this.enable_multilink=n,this.enable_ab_visual=a,this.abKey="__tea_sdk_ab_version_"+t.app_id,this.ab_cross=o,this.ab_cookie_domain=d||"",this.fetchUrl=u+"/service/2/abtest_config/",this.reportUrl=""+e.configManager.getUrl("event"),this.exposureLimit=t.exposure_limit||20,this.ab_batch_time=t.ab_batch_time||500,this.ab_user_mode=t.ab_user_mode||"user_unique_id",this.callbackMap=new Map,this.collect.on(h.TokenChange,function(p){p==="uuid"&&r.readyStatus&&(r.clearCache(),r.fetchAB())}),this.collect.on(h.TokenReset,function(p){p==="uuid"&&r.readyStatus&&(r.clearCache(),r.fetchAB())}),this.collect.on(h.AbVar,function(p){var f=p.name,v=p.defaultValue,m=p.callback;r.getVar(f,v,m)}),this.collect.on(h.AbAllVars,function(p){r.getAllVars(p)}),this.collect.on(h.AbConfig,function(p){var f=p.params,v=p.callback;r.getABconfig(f,v)}),this.collect.on(h.AbExternalVersion,function(p){r.setExternalAbVersion(p)}),this.collect.on(h.AbOpenLayer,function(){r.openOverlayer()}),this.collect.on(h.AbCloseLayer,function(){r.closeOverlayer()}),this.collect.on(h.AbVersionChangeOn,function(p){r.changeListener.set(p,p)}),this.collect.on(h.AbVersionChangeOff,function(p){r.changeListener.get(p)&&r.changeListener.delete(p)}),this.loadMode(),(this.enable_ab_visual||this.enable_multilink)&&this.openOverlayer(this.config.multilink_timeout_ms||500),this.checkLocal(),this.ready("ab"),this.readyStatus||(this.fetchAB(),this.readyStatus=!0),this.collect.emit(h.AbReady)}},i.prototype.ready=function(e){var t=this;if(this.collect.set(e),this.collect.hook._hooksCache.hasOwnProperty(e)){var r=this.collect.hook._hooksCache[e];if(!Object.keys(r).length)return;var n=function(a){r[a].length&&r[a].forEach(function(o){t.collect.hook.emit(a,o)})};for(var s in r)n(s)}},i.prototype.loadMode=function(){var e=function(){try{var s=JSON.parse(atob(window.name));return s||void 0}catch{return}}(),t="";if(e){var r=e.scenario,n=e.href;r?(this.editMode=!0,t=r):!n||n.indexOf("datatester")===-1&&n.indexOf("visual-editor")===-1||(this.editMode=!0,t="visual-editor")}this.enable_ab_visual&&t==="visual-editor"&&this.collect.destoryInstace()},i.prototype.checkLocal=function(){var e=this.getABCache(),t=e.ab_version,r=e.ab_ext_version,n=e.ab_version_multilink,s=e.data,a=this.checkFromUrl();a?this.mulilinkVersions.push(a):this.mulilinkVersions=n||[],this.extVersions=r||[],this.versions=t||[],this.data=s;var o=this.versions.concat(this.extVersions);this.enable_multilink&&(o=o.concat(this.mulilinkVersions)),this.configVersions(o.join(","))},i.prototype.checkFromUrl=function(){var e=Ki(window.location.href);return e&&e.vid?e.vid:""},i.prototype.updateVersions=function(){var e=this.extVersions.length?this.versions.concat(this.extVersions):this.versions;this.enable_multilink&&(e=e.concat(this.mulilinkVersions)),this.configVersions(e.join(",")),this.updateABCache(),this.changeListener.size>0&&this.changeListener.forEach(function(t){typeof t=="function"&&t(e)})},i.prototype.configVersions=function(e){this.collect.configManager.setAbVersion(e)},i.prototype.getVar=function(e,t,r){if(!e)throw new Error("getVar key must not be empty");if(t===void 0&&console.warn("getVar defaultValue is illegal, please check!"),typeof r!="function")throw new Error("getVar callback must be a function");var n={name:e,defaultValue:t,callback:r,type:vi.Var};this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,secType:"AB",info:"SDK 调用GetVar",level:"info",time:Date.now(),data:e,infoType:"cus"}),this.fetchStatus==="complete"&&this.refreshFetchStatus==="complete"?this.getRealVar(n,e):(this.callbackMap.get(e),this.callbackMap.set(e,n))},i.prototype.getRealVar=function(e,t){var r=e.name,n=e.defaultValue,s=e.callback,a=this.data;if(a){var o=a[r];if(o&&ei(o)){var d=a[r].vid;return t==="$ab_url"?this.mulilinkVersions.includes(d)||this.mulilinkVersions.push(d):this.versions.includes(d)||this.versions.push(d),this.updateVersions(),this.fechEvent(d,t||r,n,s,o.val),void this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,secType:"AB",info:"SDK执行GetVar,并曝光了实验"+r,level:"info",time:Date.now(),data:a[r],infoType:"sdk"})}this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,secType:"AB",info:"SDK执行GerVar默认回调",level:"info",time:Date.now(),data:this.data,infoType:"sdk"}),s(n)}else s(n)},i.prototype.getAllVars=function(e){if(typeof e!="function")throw new Error("getAllVars callback must be a function");var t={callback:e,type:vi.All};this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,secType:"AB",info:"SDK 调用GetAllVars",level:"info",time:Date.now(),infoType:"cus"}),this.fetchStatus==="complete"&&this.refreshFetchStatus==="complete"?this.getRealAllVars(t):this.callbackMap.set("allVars",t)},i.prototype.getRealAllVars=function(e){(0,e.callback)(this.data?JSON.parse(JSON.stringify(this.data)):{}),this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,secType:"AB",info:"SDK 执行GetAllVars",level:"info",time:Date.now(),data:this.data,infoType:"sdk"})},i.prototype.fechEvent=function(e,t,r,n,s){try{if(this.config.disable_track_event||!e)return;var a=this.collect.configManager.get(),o=a.header,d=a.user,c=this.getABCache(),u=d[this.ab_user_mode]||d.user_unique_id;if(c&&c.uuid&&c.uuid!==u)return;var l={event:"abtest_exposure",ab_sdk_version:""+e,params:JSON.stringify({app_id:this.config.appId,ab_url:t==="$ab_url"?r:window.location.href}),local_time_ms:Date.now()};o.custom=JSON.stringify(o.custom);var h={events:[l],user:d,header:o};this.reportExposure(h,t),n&&n(s)}catch(p){this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 发生了异常",level:"error",time:Date.now(),data:p.message,infoType:"sdk"})}},i.prototype.reportExposure=function(e,t){var r=this;this.exposureCache.push(e),this.reportTimeout&&clearTimeout(this.reportTimeout),this.exposureCache.length>=this.exposureLimit?this.report(t):this.reportTimeout=setTimeout(function(){r.report(t),clearTimeout(r.reportTimeout)},this.ab_batch_time)},i.prototype.report=function(e){var t=this;this.collect.requestManager.useRequest({url:this.reportUrl,data:this.exposureCache,timeout:2e4,useBeacon:e==="$ab_url",zip:!0}),this.exposureCache.forEach(function(r){t.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_EVENT,info:"曝光埋点上报成功",time:Date.now(),data:[r],code:200,status:"success",infoType:"sdk"})}),this.collect.emit(this.types.AbVerify,this.exposureCache),this.exposureCache=[]},i.prototype.setExternalAbVersion=function(e){this.extVersions=[e],this.updateVersions()},i.prototype.getABconfig=function(e,t){var r=Object.keys(e);r&&r.length&&this.collect.configManager.set(e),this.fetchAB(t)},i.prototype.get=function(e){if(this.ab_cross){var t=this.cacheStorgae.getCookie(e,this.ab_cookie_domain);return t?JSON.parse(t):{}}return this.cacheStorgae.getItem(e)},i.prototype.set=function(e,t){this.ab_cross?this.cacheStorgae.setCookie(e,t,2592e6,this.ab_cookie_domain):this.cacheStorgae.setItem(e,t),this.collect.configManager.setAbCache(t)},i.prototype.getABCache=function(e){var t={ab_version:[],ab_ext_version:[],ab_version_multilink:[],data:null,timestamp:+new Date,uuid:""};return t=this.get(this.abKey)||t,e?t[e]:t},i.prototype.updateABCache=function(){var e=this.getABCache();e.ab_version_multilink=this.mulilinkVersions,e.ab_ext_version=this.extVersions,e.ab_version=this.versions,e.timestamp=Date.now(),this.set(this.abKey,e)},i.prototype.setAbCache=function(e){var t=this.getABCache();t.data=this.data,t.uuid=e,t.timestamp=Date.now(),this.set(this.abKey,t)},i.prototype.clearCache=function(){this.refreshFetchStatus="ing",this.data={},this.extVersions=[],this.mulilinkVersions=[],this.versions=[],this.collect.configManager.clearAbCache()},i.prototype.openOverlayer=function(e){var t=this;if(function(){if(!document.getElementById(En)){var n="body { opacity: 0 !important; }",s=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.id=En,a.type="text/css",a.styleSheet?a.styleSheet.cssText=n:a.appendChild(document.createTextNode(n)),s.appendChild(a)}}(),e)var r=setTimeout(function(){t.closeOverlayer(),clearTimeout(r)},e)},i.prototype.closeOverlayer=function(){var e;(e=document.getElementById(En))&&e.parentElement.removeChild(e)},i.prototype.fetchComplete=function(e,t){var r=this;try{if(e&&Object.prototype.toString.call(e)=="[object Object]"){var n=this.collect.configManager.get().user;if(t&&t!==n.user_unique_id)return;this.data=e,this.setAbCache(t);var s=[];Object.keys(e).forEach(function(u){var l=e[u].vid;l&&s.push(l)}),this.versions=this.versions.filter(function(u){return s.includes(u)});var a=e.$ab_url,o=e.$ab_modification;if(o&&o.val&&this.enable_ab_visual){if(this.collect.destroy)return;this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行可视化实验",level:"info",logType:"fetch",time:Date.now(),infoType:"sdk",data:{$ab_modification:o}})}else if(a&&this.enable_multilink){this.mulilinkVersions=this.mulilinkVersions.filter(function(u){return s.includes(u)}),this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行多链接实验",level:"info",logType:"fetch",time:Date.now(),infoType:"sdk",data:{$ab_url:a}});var d=a.val,c=a.vid;d&&c&&this.getVar("$ab_url",d,function(){r.editMode||(d!==window.location.href?setTimeout(function(){if(!r.collect.destroy){var u=""+d;u=u.indexOf("http")===-1?"https://"+u:u,Xr(u).host!==location.host?u=u+"&vid="+c:window.history.replaceState("","",u),window.location.href=u}},100):r.closeOverlayer())})}this.updateVersions()}else this.closeOverlayer();this.callbackMap.forEach(function(u){return r[u.type===vi.Var?"getRealVar":"getRealAllVars"](u,"")})}catch{}},i.prototype.fetchAB=function(e){var t=this,r=this.collect.configManager.get(),n={header:B(B(B({aid:this.config.app_id},r.user||{}),r.header||{}),{ab_sdk_version:this.collect.configManager.getAbVersion(),ab_url:window.location.href})};this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 发起AB实验请求",level:"info",logType:"fetch",time:Date.now(),data:n,infoType:"sdk"});var s=r.user[this.ab_user_mode]||r.user.user_unique_id;this.collect.requestManager.useRequest({url:this.fetchUrl,data:n,success:function(a){t.fetchStatus="complete",t.refreshFetchStatus="complete";var o=a.data;a.message==="success"?(t.fetchComplete(o,s),e&&e(o)):(t.fetchComplete(null,s),e&&e(null)),t.collect.emit(t.types.AbComplete,o),t.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,secType:"AB",info:"AB实验请求成功",level:"info",logType:"fetch",time:Date.now(),data:o,infoType:"sdk"})},fail:function(){t.fetchStatus="complete",t.refreshFetchStatus="complete",t.fetchComplete(null,s),t.collect.emit(t.types.AbTimeout),e&&e(null),t.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,secType:"AB",info:"AB实验请求网络异常",level:"error",logType:"fetch",time:Date.now(),infoType:"sdk"})},timeout:this.timeout})},i}(),e_=function(){function i(){}return i.prototype.apply=function(e,t){var r=this;t.event_verify_url&&(typeof t.event_verify_url=="string"?(this.collect=e,this.url=t.event_verify_url+"/v1/list_test",e.on(e.Types.SubmitBefore,function(n){r.verify(n)}),e.on(e.Types.AbVerify,function(n){r.verify(n)})):console.log("please use correct et_test url"))},i.prototype.verify=function(e){this.collect.requestManager.useBeacon({url:this.url,data:e}),this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_EVENT,info:"SDK Report ByteIo Verify Request",time:Date.now(),data:e,code:200,status:"success",verifyType:!0})},i}();function rr(i,e,t){if(e===void 0&&(e="list"),!i)return!1;if(e&&e==="list"){if(["LI","TR","DL"].includes(i.nodeName)||i.dataset&&i.dataset.hasOwnProperty("teaIdx")||i.hasAttribute&&i.hasAttribute("data-tea-idx"))return!0}else if(["A","BUTTON"].includes(i.nodeName)||i.dataset&&i.dataset.hasOwnProperty("teaContainer")||i.hasAttribute&&i.hasAttribute("data-tea-container")||t&&i.hasAttribute&&i.hasAttribute(t))return!0;return!1}var ka=function(i,e){return!!i_(i,e)};function wn(i,e){for(var t=i;t&&!rr(t,"container",e.container_attr||"");){if(t.nodeName==="HTML"||t.nodeName==="BODY")return i;t=t.parentElement}return t||i}var t_=function(i){if(!i)return"";var e="";try{i.textContent?e=i.textContent.trim().replace(/\s+/g,","):i.innerText&&(e=i.innerText.trim().replace(/\s+/g,",")),i.tagName!=="input"&&i.tagName!=="INPUT"||(e=i.value||"")}finally{return e}};function Ta(i){try{for(var e=i;e&&e.parentNode;){if(e.hasAttribute("data-tea-ignore")||e.classList&&e.classList.contains("applog-web-devtools-con"))return!0;if(e.nodeName==="HTML"||e.nodeName==="body")return!1;e=e.parentNode}return!1}catch{return!1}}var nr=function(i,e){return i.hasAttribute?i.hasAttribute(e):i.attributes?!(!i.attributes[e]||!i.attributes[e].specified):void 0},i_=function(i,e){if(typeof e=="string")return nr(i,e);if(qi(e)){for(var t=!1,r=0;r<e.length;r++)if(nr(i,e[r])){t=!0;break}return t}},za=function(i,e){var t={};if(typeof e=="string")nr(i,e)&&(t[e]=i.getAttribute(e));else if(qi(e))for(var r=0;r<e.length;r++)nr(i,e[r])&&(t[e[r]]=i.getAttribute(e[r]));return t};function Aa(i){var e=[];if(!i)return{element_path:"",positions:[]};for(;i.parentElement!==null;)e.push(i),i=i.parentElement;var t=[],r=[];return e.forEach(function(n){var s=function(d){if(d===null)return{str:"",index:0};var c=0,u=d.parentElement;if(u)for(var l=u.children,h=0;h<l.length&&l[h]!==d;h++)l[h].nodeName===d.nodeName&&c++;return{str:[d.nodeName.toLowerCase(),rr(d,"list")?"[]":""].join(""),index:c}}(n),a=s.str,o=s.index;t.unshift(a),r.unshift(o)}),{element_path:"/"+t.join("/"),positions:r}}var r_=function(){function i(e,t){this.maxDuration=432e5,this.aliveDTime=6e4,this.options={aliveName:"predefine_page_alive",params:{},container:null},this.focusState=!0,this.collect=e,this.config=t,this.pageStartTime=Date.now(),this.sessionStartTime=this.pageStartTime,this.timerHandler=null,ei(t.enable_stay_duration)&&(this.options=Object.assign(this.options,t.enable_stay_duration)),this.hard=this.options.mode&&this.options.mode==="hard",this.focusState=document.hasFocus(),this.aliveDTime=this.options.aliveTime||6e4}return i.prototype.setParams=function(e,t,r){this.set_path=e,this.set_url=r,this.set_title=t},i.prototype.enable=function(e,t,r){this.url_path=e,this.url=r,this.title=t,this.disableCallback=this.enablePageAlive(),this.hard&&(this.removeMode=this.hardMode())},i.prototype.disable=function(){this.disableCallback(),this.pageStartTime=Date.now(),this.hard&&this.removeMode&&this.removeMode()},i.prototype.sendEvent=function(e,t){t===void 0&&(t=!1);var r=t?this.aliveDTime:Date.now()-this.sessionStartTime;if(!(r<0||r>this.aliveDTime||Date.now()-this.pageStartTime>this.maxDuration)&&(!t||document.visibilityState!=="hidden")&&(!this.hard||this.focusState)){var n=B({url_path:this.getParams("url_path"),title:this.getParams("title"),url:this.getParams("url"),duration:r,is_support_visibility_change:Po(),startTime:this.sessionStartTime,hidden:document.visibilityState,leave:e,mode:this.hard?"hard":"normal",focusState:this.focusState,aliveType:this.options.container?"dom":"page"},this.options.params);if(this.options.container){var s=Aa(this.options.container).element_path;n=Object.assign(n,{element_path:s,aliveType:this.options.container?"dom":"page"})}this.collect.beconEvent(this.options.aliveName,n),this.sessionStartTime=Date.now()}},i.prototype.getParams=function(e){switch(e){case"url_path":return this.set_path||this.url_path||location.pathname;case"title":return this.set_title||this.title||document.title||location.pathname;case"url":return this.set_url||this.url||location.href}},i.prototype.setUpTimer=function(){var e=this;return this.timerHandler&&clearInterval(this.timerHandler),setInterval(function(){Date.now()-e.sessionStartTime>e.aliveDTime&&e.sendEvent(!1,!0)},1e3)},i.prototype.visibilitychange=function(){this.getDisplayStatus()==="hidden"?this.timerHandler&&(clearInterval(this.timerHandler),this.sendEvent(!1)):this.getDisplayStatus()==="visible"&&(this.sessionStartTime=Date.now(),this.timerHandler=this.setUpTimer())},i.prototype.getDisplayStatus=function(){if(!this.options.container)return document.visibilityState;try{var e=window.getComputedStyle(this.options.container);return e.display!=="none"&&e.visibility!=="hidden"&&e.opacity!=="0"?"visible":"hidden"}catch{return"visible"}},i.prototype.beforeunload=function(){document.hidden||this.sendEvent(!0)},i.prototype.muition=function(){var e=this;new MutationObserver(function(t){t.forEach(function(r){e.visibilitychange()})}).observe(this.options.container,{attributes:!0,attributeFilter:["style"]})},i.prototype.enablePageAlive=function(){var e=this;this.timerHandler=this.setUpTimer();var t=this.visibilitychange.bind(this),r=this.beforeunload.bind(this);return this.options.container?this.muition():document.addEventListener("visibilitychange",t),window.addEventListener("pagehide",r),function(){e.beforeunload(),document.removeEventListener("visibilitychange",t),window.removeEventListener("pagehide",r)}},i.prototype.hardMode=function(){var e=this,t=function(){e.timerHandler&&(clearInterval(e.timerHandler),e.sendEvent(!1)),e.focusState=!1},r=function(){e.focusState=!0,e.sessionStartTime=Date.now(),e.timerHandler=e.setUpTimer()};return window.addEventListener("blur",t),window.addEventListener("focus",r),function(){window.removeEventListener("blur",t),window.removeEventListener("focus",r)}},i}(),n_=function(){function i(e,t){var r=this;this.maxDuration=432e5,this.aliveDTime=6e4,this.options={closeName:"predefine_page_close",params:{}},this.focusState=!0,this.visibilitychange=function(){document.visibilityState==="hidden"?r.activeEndTime=Date.now():document.visibilityState==="visible"&&(r.activeEndTime&&(r.totalTime+=r.activeEndTime-r.activeStartTime,r.activeTimes+=1),r.activeEndTime=void 0,r.activeStartTime=Date.now())},this.beforeunload=function(){if(r.totalTime+=(r.activeEndTime||Date.now())-r.activeStartTime,r.config.autotrack)try{window.sessionStorage.setItem("_tea_cache_duration",JSON.stringify({duration:r.totalTime,page_title:document.title||location.pathname}))}catch{}r.sendEventPageClose()},this.collect=e,this.config=t,this.maxDuration=t.maxDuration||t.max_duration||864e5,this.pageStartTime=Date.now(),ei(t.enable_stay_duration)&&(this.options=Object.assign(this.options,t.enable_stay_duration)),this.hard=this.options.mode&&this.options.mode==="hard",this.focusState=document.hasFocus(),this.resetData()}return i.prototype.setParams=function(e,t,r){this.set_path=e,this.set_url=r,this.set_title=t},i.prototype.resetParams=function(e,t,r){this.url_path=e,this.url=r,this.title=t},i.prototype.enable=function(e,t,r){this.url_path=e,this.url=r,this.title=t,this.disableCallback=this.enablePageClose(),this.hard&&(this.removeMode=this.hardMode())},i.prototype.disable=function(){this.disableCallback(),this.hard&&this.removeMode&&this.removeMode(),this.resetData()},i.prototype.resetData=function(){this.activeStartTime=this.activeStartTime===void 0?this.pageStartTime:Date.now(),this.activeEndTime=void 0,this.activeTimes=1,this.totalTime=0,this.resetParams(location.pathname,document.title,location.href)},i.prototype.sendEventPageClose=function(){var e=Date.now()-this.pageStartTime;this.totalTime<0||e<0||this.totalTime>=this.maxDuration||this.hard&&!this.focusState||(this.collect.beconEvent(this.options.closeName,B({url_path:this.getParams("url_path"),title:this.getParams("title"),url:this.getParams("url"),active_times:this.activeTimes,duration:this.totalTime,total_duration:e,is_support_visibility_change:Po(),mode:this.hard?"hard":"normal",focusState:this.focusState},this.options.params)),this.pageStartTime=Date.now(),this.resetData())},i.prototype.getParams=function(e){switch(e){case"url_path":return this.set_path||this.url_path||location.pathname;case"title":return this.set_title||this.title||document.title||location.pathname;case"url":return this.set_url||this.url||location.href}},i.prototype.enablePageClose=function(){var e=this,t=this.visibilitychange.bind(this),r=this.beforeunload.bind(this);return document.addEventListener("visibilitychange",t),window.addEventListener("pagehide",r),function(){e.beforeunload(),document.removeEventListener("visibilitychange",t),window.removeEventListener("pagehide",r)}},i.prototype.hardMode=function(){var e=this,t=function(){e.focusState=!1},r=function(){e.focusState=!0};return window.addEventListener("blur",t),window.addEventListener("focus",r),function(){window.removeEventListener("blur",t),window.removeEventListener("focus",r)}},i}(),s_=function(){function i(){}return i.prototype.apply=function(e,t){var r=this;if(this.collect=e,this.config=t,this.config.enable_stay_duration){this.title=document.title||location.pathname,this.url=location.href,this.url_path=location.pathname,this.pageAlive=new r_(e,t),this.pageClose=new n_(e,t);var n=this.collect.Types;this.collect.on(n.DestoryInstance,function(){r.disable()}),this.collect.on(n.ResetStay,function(s){var a=s.url_path,o=s.title,d=s.url;r.resetStayDuration(a,o,d)}),this.collect.on(n.RouteChange,function(s){s.init||t.disable_route_report||r.resetStayDuration()}),this.collect.on(n.SetStay,function(s){var a=s.url_path,o=s.title,d=s.url;r.setStayParmas(a,o,d)}),this.enable(this.url_path,this.title,this.url),this.ready(n.Stay),this.collect.emit(n.StayReady)}},i.prototype.ready=function(e){var t=this;if(this.collect.set(e),this.collect.hook._hooksCache.hasOwnProperty(e)){var r=this.collect.hook._hooksCache[e];if(!Object.keys(r).length)return;var n=function(a){r[a].length&&r[a].forEach(function(o){t.collect.hook.emit(a,o)})};for(var s in r)n(s)}},i.prototype.enable=function(e,t,r){this.pageAlive.enable(e,t,r),this.pageClose.enable(e,t,r)},i.prototype.disable=function(){this.pageAlive.disable(),this.pageClose.disable()},i.prototype.setStayParmas=function(e,t,r){e===void 0&&(e=""),t===void 0&&(t=""),r===void 0&&(r=""),this.pageAlive.setParams(e,t,r),this.pageClose.setParams(e,t,r),this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行 resetStayParams",level:"info",time:Date.now(),data:{url_path:e,title:t,url:r}})},i.prototype.reset=function(e,t,r){this.disable(),this.enable(e,t,r)},i.prototype.resetStayDuration=function(e,t,r){this.reset(e,t,r),this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"SDK 执行 resetStayDuration",level:"info",time:Date.now(),data:{url_path:e,title:t,url:r}})},i}(),o_=function(){function i(){}return i.prototype.apply=function(e,t){var r=this;this.collect=e,this.config=t,this.duration=6e4,this.reportUrl=e.configManager.getDomain()+"/profile/list";var n=e.Types;this.eventCheck=new rn(e,t),this.cache={},this.collect.on(n.ProfileSet,function(s){r.setProfile(s)}),this.collect.on(n.ProfileSetOnce,function(s){r.setOnceProfile(s)}),this.collect.on(n.ProfileUnset,function(s){r.unsetProfile(s)}),this.collect.on(n.ProfileIncrement,function(s){r.incrementProfile(s)}),this.collect.on(n.ProfileAppend,function(s){r.appendProfile(s)}),this.collect.on(n.ProfileClear,function(){r.cache={}}),this.ready(n.Profile)},i.prototype.ready=function(e){var t=this;if(this.collect.set(e),this.collect.hook._hooksCache.hasOwnProperty(e)){var r=this.collect.hook._hooksCache[e];if(!Object.keys(r).length)return;var n=function(a){r[a].length&&r[a].forEach(function(o){t.collect.hook.emit(a,o)})};for(var s in r)n(s)}},i.prototype.report=function(e,t){t===void 0&&(t={});try{if(this.config.disable_track_event)return;var r=[];r.push(this.collect.processEvent(e,t));var n=this.collect.eventManager.merge(r);this.collect.requestManager.useRequest({url:this.reportUrl,data:n}),this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_EVENT,info:"埋点上报成功",time:Date.now(),data:n,code:200,status:"success"})}catch(s){this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:s.message})}},i.prototype.setProfile=function(e){var t=this.formatParams(e);t&&Object.keys(t).length&&(this.pushCache(t),this.report("__profile_set",B(B({},t),{profile:!0})))},i.prototype.setOnceProfile=function(e){var t=this.formatParams(e,!0);t&&Object.keys(t).length&&(this.pushCache(t),this.report("__profile_set_once",B(B({},t),{profile:!0})))},i.prototype.incrementProfile=function(e){e?this.report("__profile_increment",B(B({},e),{profile:!0})):console.warn("please check the params, must be object!!!")},i.prototype.unsetProfile=function(e){if(e){var t={};t[e]="1",this.report("__profile_unset",B(B({},t),{profile:!0}))}else console.warn("please check the key, must be string!!!")},i.prototype.appendProfile=function(e){if(e){var t={};for(var r in e)typeof e[r]=="string"||Object.prototype.toString.call(e[r]).slice(8,-1)==="Array"?t[r]=e[r]:console.warn("please check the value of param: "+r+", must be string or array !!!");Object.keys(t).length&&this.report("__profile_append",B(B({},t),{profile:!0}))}else console.warn("please check the params, must be object!!!")},i.prototype.pushCache=function(e){var t=this;Object.keys(e).forEach(function(r){t.cache[r]={val:t.clone(e[r]),timestamp:Date.now()}})},i.prototype.formatParams=function(e,t){var r=this;t===void 0&&(t=!1);try{if(!e||Object.prototype.toString.call(e)!=="[object Object]")return void console.warn("please check the params type, must be object !!!");var n={};for(var s in e)typeof e[s]=="string"||typeof e[s]=="number"||Object.prototype.toString.call(e[s]).slice(8,-1)==="Array"?n[s]=e[s]:console.warn("please check the value of params:"+s+", must be string,number,Array !!!");var a=Object.keys(n);if(!a.length||!this.eventCheck.checkEventParams(n))return;var o=Date.now();return a.filter(function(d){var c=r.cache[d];return t?!c:!(c&&r.compare(c.val,e[d])&&o-c.timestamp<r.duration)}).reduce(function(d,c){return d[c]=n[c],d},{})}catch(d){this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:d.message}),console.log("error")}},i.prototype.compare=function(e,t){try{return JSON.stringify(e)===JSON.stringify(t)}catch(r){return this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:r.message}),!1}},i.prototype.clone=function(e){try{return JSON.parse(JSON.stringify(e))}catch(t){return this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:t.message}),e}},i.prototype.unReady=function(){console.warn("sdk is not ready, please use this api after start")},i}(),a_=function(){function i(){var e=this;this.setInterval=function(){e.clearIntervalFunc=Bf(function(){e.isSessionhasEvent&&e.endCurrentSession()},e.sessionInterval)},this.clearInterval=function(){e.clearIntervalFunc&&e.clearIntervalFunc()}}return i.prototype.apply=function(e,t){var r=this;if(this.collect=e,!t.disable_heartbeat){this.sessionInterval=6e4,this.startTime=0,this.lastTime=0,this.setInterval();var n=this.collect.Types;this.collect.on(n.SessionResetTime,function(){r.process()})}},i.prototype.endCurrentSession=function(){this.collect.event("_be_active",{start_time:this.startTime,end_time:this.lastTime,url:window.location.href,referrer:window.document.referrer,title:document.title||location.pathname}),this.isSessionhasEvent=!1,this.startTime=0},i.prototype.process=function(){this.isSessionhasEvent||(this.isSessionhasEvent=!0,this.startTime=+new Date);var e=this.lastTime||+new Date;this.lastTime=+new Date,this.lastTime-e>this.sessionInterval&&(this.clearInterval(),this.endCurrentSession(),this.setInterval())},i}(),c_=function(){function i(){}return i.prototype.apply=function(e,t){var r=this;t.channel_domain||t.disable_track_event||t.disable_sdk_monitor||(this.collect=e,this.config=t,this.url=e.configManager.getUrl("event"),this.collect.on(e.Types.Ready,function(){r.sdkOnload()}),this.collect.on(e.Types.SubmitError,function(n){var s=n.type,a=n.eventData,o=n.errorCode,d=n.response;s==="f_data"&&r.sdkError(a,o,d)}),this.collect.on(e.Types.SDKInnerError,function(n){var s=n.type,a=n.eventData,o=n.errorCode,d=n.msg;r.sdkInnerError(s,a,o,d)}))},i.prototype.sdkOnload=function(){var e=this;try{var t=this.collect.configManager.get(),r=t.header,n=t.user,s=r.app_id,a=r.app_name,o=r.sdk_version,d=n.web_id,c={events:[{event:"onload",params:JSON.stringify({app_id:s,app_name:a||"",sdk_version:o,sdk_type:"npm",sdk_config:this.config,sdk_desc:"TOC",url:location.href}),local_time_ms:Date.now()}],user:{user_unique_id:d},header:{}};setTimeout(function(){e.collect.requestManager.useRequest({url:e.url,data:[c],timeout:3e4,app_key:"566f58151b0ed37e",forceXhr:!0})},16)}catch{}},i.prototype.sdkError=function(e,t,r){var n=this;try{var s=e[0],a=s.user,o=s.header,d=[];e.forEach(function(u){u.events.forEach(function(l){d.push(l)})});var c={events:d.map(function(u){return{event:"on_error",params:JSON.stringify({type:"sdk_event_error",error_code:t,app_id:o.app_id,app_name:o.app_name||"",error_event:u.event,sdk_version:o.sdk_version,local_time_ms:u.local_time_ms,tea_event_index:Date.now(),params:u.params,header:o,user:a,err_msg:r.m||""}),local_time_ms:Date.now()}}),user:{user_unique_id:a.user_unique_id},header:{}};setTimeout(function(){n.collect.requestManager.useRequest({url:n.url,data:[c],timeout:3e4,app_key:"566f58151b0ed37e",forceXhr:!0})},16)}catch{}},i.prototype.sdkInnerError=function(e,t,r,n){var s=this;try{var a=t[0],o=a.user,d=a.header,c=[];t.forEach(function(l){l.events.forEach(function(h){c.push(h)})});var u={events:c.map(function(l){return{event:"on_error",params:JSON.stringify({type:e,error_code:r,app_id:d.app_id,app_name:d.app_name||"",error_event:l.event,sdk_version:d.sdk_version,local_time_ms:l.local_time_ms,tea_event_index:Date.now(),params:l.params,header:d,user:o,ua:window.navigator.userAgent,err_msg:n}),local_time_ms:Date.now()}}),user:o,header:{}};setTimeout(function(){s.collect.requestManager.useRequest({url:s.url,data:[u],timeout:3e4,app_key:"566f58151b0ed37e",forceXhr:!0})},16)}catch{}},i}(),u_=function(i){if(i.children.length){var e=i.children;return![].slice.call(e).some(function(t){return t.children.length>0})}return!0},d_=function(i){if(i.tagName.toLowerCase()==="svg")return!0;for(var e=i.parentElement,t=!1;e;)e.tagName.toLowerCase()==="svg"?(e=null,t=!0):e=e.parentElement;return t};function h_(i,e){if(i.nodeType!==1||!e.svg&&d_(i)||["HTML","BODY"].includes(i.tagName.toUpperCase()))return!1;var t=i;return t.style.display!=="none"&&(!!rr(t,"container",e.container_attr||"")||!!(function(r,n){for(var s=r,a=!1;s&&!rr(s,"container",n.container_attr||"");){if(s.nodeName==="HTML"||s.nodeName==="BODY")return a;s=s.parentElement}return a=!0}(t,e)||u_(t)||e.svg))}var l_=function(){function i(e,t,r){var n=this;this.statistics=!1,this.pageView=!1,this.clickEvent=function(s){h_(s.target,n.options)&&n.eventHandel({eventType:"dom",eventName:"click"},s)},this.changeEvent=function(s){n.eventHandel({eventType:"dom",eventName:"change"},s)},this.submitEvent=function(s){n.eventHandel({eventType:"dom",eventName:"submit"},s)},this.getPageViewEvent=function(s,a){a&&a==="pushState"&&n.eventHandel({eventType:"dom",eventName:"beat"},B({beat_type:0},s)),n.eventHandel({eventType:"dom",eventName:"page_view"},s)},this.getPageLoadEvent=function(s){n.eventHandel({eventType:"dom",eventName:"page_statistics"},{lcp:s})},this.config=r.getConfig().eventConfig,this.collect=t,this.options=e,this.beatTime=e.beat,this.domContainer=e.container||document}return i.prototype.init=function(e){this.eventHandel=e;var t=this.config.mode;this.addListener(t)},i.prototype.addListener=function(e){var t=this;if(e==="proxy-capturing"){if(this.config.click&&(qi(this.domContainer)?this.domContainer.forEach(function(c){c.addEventListener("click",t.clickEvent,!0)}):this.domContainer.addEventListener("click",this.clickEvent,!0)),this.config.pv){this.collect.on("route-change",function(c){var u=c.config,l=c.name;t.getPageViewEvent(u,l),t.pageView=!0});var r=setTimeout(function(){t.pageView||(t.getPageViewEvent(t.getDefaultConfig()),t.pageView=!0,clearTimeout(r))},2e3)}if(this.config.beat){try{document.readyState==="complete"?this.beatEvent(this.beatTime):window.addEventListener("load",function(){t.beatEvent(t.beatTime)});var n=0,s=null;window.addEventListener("scroll",function(){clearTimeout(s),s=setTimeout(a,500),n=document.documentElement.scrollTop||document.body.scrollTop});var a=function(){(document.documentElement.scrollTop||document.body.scrollTop)==n&&t.eventHandel({eventType:"dom",eventName:"beat"},{beat_type:1})}}catch{}try{var o=window.performance&&window.performance.getEntriesByType("paint");if(o&&o.length){new PerformanceObserver(function(c){var u=c.getEntries(),l=u[u.length-1],h=l.renderTime||l.loadTime;t.statistics||(t.getPageLoadEvent(h),t.statistics=!0)}).observe({entryTypes:["largest-contentful-paint"]});var d=setTimeout(function(){t.statistics||(t.getPageLoadEvent(o[0].startTime||0),t.statistics=!0,clearTimeout(d))},2e3)}else this.getPageLoadEvent(0)}catch{this.getPageLoadEvent(0)}}}},i.prototype.removeListener=function(){var e=this;qi(this.domContainer)?this.domContainer.forEach(function(t){t.removeEventListener("click",e.clickEvent,!0)}):this.domContainer.removeEventListener("click",this.clickEvent,!0)},i.prototype.beatEvent=function(e){var t=this;try{var r;this.eventHandel({eventType:"dom",eventName:"beat"},{beat_type:3}),this.beatTime&&(r=setInterval(function(){t.eventHandel({eventType:"dom",eventName:"beat"},{beat_type:2})},e)),Jr(function(){t.eventHandel({eventType:"dom",eventName:"beat",eventSend:"becon"},{beat_type:0}),t.beatTime&&clearInterval(r)})}catch{}},i.prototype.getDefaultConfig=function(){return{is_html:1,url:location.href,referrer:document.referrer,page_key:location.href,refer_page_key:document.referrer,page_title:document.title||location.pathname,page_manual_key:"",refer_page_manual_key:"",refer_page_title:"",page_path:location.pathname,page_host:location.host}},i}(),p_={eventConfig:{mode:"proxy-capturing",submit:!1,click:!0,change:!1,pv:!0,beat:!0,hashTag:!1,impr:!1},scoutConfig:{mode:"xpath"}},f_=function(){function i(e,t){this.config=e,this.config.eventConfig=Object.assign(this.config.eventConfig,t)}return i.prototype.getConfig=function(){return this.config},i.prototype.setConfig=function(e){return this.config=e},i}();function m_(i,e,t,r){var n={},s=function(R){if(R){var A=R.getBoundingClientRect(),D=A.width,P=A.height;return{left:A.left,top:A.top,element_width:D,element_height:P}}}(e=wn(e,t)),a=function(R,A){R===void 0&&(R={}),A===void 0&&(A={});var D=R.clientX,P=R.clientY,K=A.left,H=A.top,J=D-K>=0?D-K:0,X=P-H>=0?P-H:0;return{touch_x:Math.floor(J),touch_y:Math.floor(X)}}(i,s),o=s.element_width,d=s.element_height,c=a.touch_x,u=a.touch_y,l=Aa(e),h=l.element_path,p=l.positions,f=function(R,A){var D=wn(R,A),P=[];return function K(H){var J=function(q){var ne="";return q.nodeType===3?ne=q.textContent.trim():q.dataset&&q.dataset.hasOwnProperty("teaTitle")||q.hasAttribute("ata-tea-title")?ne=q.getAttribute("data-tea-title"):q.nodeName==="INPUT"&&["button","submit"].includes(q.getAttribute("type"))?ne=q.getAttribute("value"):q.nodeName==="IMG"&&q.getAttribute("alt")&&(ne=q.getAttribute("alt")),ne.slice(0,200)}(H);if(J&&P.indexOf(J)===-1&&P.push(J),H.childNodes.length>0)for(var X=H.childNodes,ue=0;ue<X.length;ue++)X[ue].nodeType!==8&&K(X[ue])}(D),P}(e,t),v=window.performance.timing.navigationStart,m=Date.now()-v,b=p.map(function(R){return""+R}),y=null;if(window.TEAVisualEditor&&window.TEAVisualEditor.getOriginXpath&&(y=window.TEAVisualEditor.getOriginXpath({xpath:h,positions:b})),n.element_path=y&&y.xpath||h,n.positions=y&&y.positions||b,r&&!r.text&&(n.texts=f,n.element_title=e.getAttribute("data-tea-title")||e.getAttribute("title")||t_(e)),n.element_id=e.getAttribute("id")||"",n.element_class_name=e.getAttribute("class")||"",n.element_type=e.nodeType,n.element_width=Math.floor(o),n.element_height=Math.floor(d),n.touch_x=c,n.touch_y=u,n.page_manual_key="",n.elememt_manual_key="",n.since_page_start_ms=m,n.page_start_ms=v,n.page_path=location.pathname,n.page_host=location.host,t.track_attr&&ka(e,t.track_attr)){var _=za(e,t.track_attr);for(var E in _)n[E]=_[E]}if(t.custom_attr)try{if(ka(e,t.custom_attr)){_=za(e,t.custom_attr),E=decodeURIComponent(_[t.custom_attr]);var z=JSON.parse(E);if(Object.keys(z))for(var T in z)n[T]=z[T]}}catch{console.log("custom attr error")}var x=wn(e,t);return x.tagName==="A"&&(n.href=x.getAttribute("href")),e.tagName==="IMG"&&(n.src=e.getAttribute("src")),n}var Mt=function(i,e,t,r,n){return B(B({event:i},m_(e,t,r,n)),{is_html:1,page_key:window.location.href,page_title:document.title})},__=function(){function i(e,t){this.ignore={text:!1},this.initConfig=e,this.options=t,this.eventName=t&&t.custom==="tea"?{click:"__bav_click",page:"__bav_page",beat:"__bav_beat",static:"__bav_page_statistics",exposure:"__bav_page_exposure",scroll:"__bav_slide"}:{click:"bav2b_click",page:"bav2b_page",beat:"bav2b_beat",static:"bav2b_page_statistics",exposure:"bav2b_exposure",scroll:"$bav2b_slide"},t&&t.text===!1&&(this.ignore.text=!0),t&&t.exposure&&t.exposure.eventName&&(this.eventName.exposure=t.exposure.eventName)}return i.prototype.handleEvent=function(e,t){try{if(Ta(e.target))return null;var r="bav2b_click";switch(t){case"click":return r=e.target.getAttribute("data-applog-click-event")||this.eventName.click||"",Mt(r,e,e.target,this.options,this.ignore);case"exposure":return r=e.target.getAttribute("data-applog-exposure-event")||this.eventName.exposure||"",Mt(r,e,e.target||e,this.options,this.ignore);case"change":return B(B({},Mt(r="bav2b_change",e,e.target,this.options)),function(n,s){try{if(n==="bav2b_change")return s.hasAttribute("data-tea-track")?{value:s.value}:{}}catch{return{}}}(r,e.target));case"submit":return Mt(r="bav2b_submit",e,e.target,this.options)}}catch(n){return console.error(n),null}},i.prototype.handleViewEvent=function(e){e.event=this.eventName.page,e.page_title=document.title,e.page_total_width=window.innerWidth,e.page_total_height=window.innerHeight;try{var t=window.sessionStorage.getItem("_tea_cache_duration");if(t){var r=JSON.parse(t);e.refer_page_duration_ms=r?r.duration:""}e.scroll_width=document.documentElement.scrollLeft?document.documentElement.scrollLeft+window.innerWidth:window.innerWidth,e.scroll_height=document.documentElement.scrollTop?document.documentElement.scrollTop+window.innerHeight:window.innerHeight,e.page_start_ms=window.performance.timing.navigationStart}catch(n){console.log("page event error "+JSON.stringify(n))}return e},i.prototype.handleStatisticsEvent=function(e){var t={};t.event=this.eventName.static,t.is_html=1,t.page_key=location.href,t.refer_page_key=document.referrer||"",t.page_title=document.title,t.page_manual_key=this.initConfig.autotrack.page_manual_key||"",t.refer_page_manual_key="";try{var r=e.lcp,n=window.performance.timing,s=n.loadEventEnd-n.navigationStart;t.page_init_cost_ms=parseInt(r||(s>0?s:0)),t.page_start_ms=n.navigationStart}catch(a){console.log("page_statistics event error "+JSON.stringify(a))}return t},i.prototype.handleBeadtEvent=function(e){e.event=this.eventName.beat,e.page_key=window.location.href,e.is_html=1,e.page_title=document.title,e.page_manual_key=this.initConfig.autotrack.page_manual_key||"";try{e.page_viewport_width=window.innerWidth,e.page_viewport_height=window.innerHeight,e.page_total_width=document.documentElement.scrollWidth,e.page_total_height=document.documentElement.scrollHeight,e.scroll_width=document.documentElement.scrollLeft+window.innerWidth,e.scroll_height=document.documentElement.scrollTop+window.innerHeight,e.since_page_start_ms=Date.now()-window.performance.timing.navigationStart,e.page_start_ms=window.performance.timing.navigationStart}catch(t){console.log("beat event error "+JSON.stringify(t))}return e},i.prototype.handleExposureEvent=function(e,t){if(Ta(t.target))return null;var r=Mt(e.event||this.eventName.exposure,t,t.target||t,this.options,this.ignore);if(r.$exposure_type=e.exposureType,this.options.exposure.callback){var n=this.options.exposure.callback(r);return n||Object.keys(n).length?n:(console.warn("exposure callback must return data!"),r)}return r},i.prototype.handleScrollEvent=function(e,t){var r=Mt(e.event||this.eventName.scroll,t,t.target||t,this.options,this.ignore);if(r=Object.assign(r,e.params),!this.options.scroll.callback||(r=this.options.scroll.callback(r))||Object.keys(r).length)return r;console.warn("scroll callback must return data!")},i}(),g_=function(){function i(e){this.collect=e,this.eventNameList=["report_click_event","report_change_event","report_submit_event","report_exposure_event","report_page_view_event","report_page_statistics_event","report_beat_event"]}return i.prototype.send=function(e,t){var r=t.event;delete t.event,e&&e.eventSend==="becon"?this.collect.beconEvent(r,t):this.collect.event(r,t)},i.prototype.get=function(e,t){var r=Object.assign({headers:{"content-type":"application/json"},method:"GET"},t);fetch(e,r)},i.prototype.post=function(e,t){var r=Object.assign({headers:{"content-type":"application/json"},method:"POST"},t);fetch(e,r)},i}(),yi={},Ra=[],v_=function(i){i.length&&i.forEach(function(e){Ra.push(e)})};function Da(i,e,t,r){var n=i&&i.source||window.opener||window.parent,s=i&&i.origin||r||"*",a={type:e,payload:t};n.postMessage(JSON.stringify(a),s)}function y_(i){if(Ra.some(function(n){return i.origin.indexOf(n)>-1})){var e=i.data;if(typeof i.data=="string")try{e=JSON.parse(i.data)}catch{e=void 0}if(!e)return;var t=e.type,r=e.payload;yi[t]&&yi[t].forEach(function(n){typeof n=="function"&&n(i,r)})}}var Cn=!1;function b_(i,e){window.TEAVisualEditor=window.TEAVisualEditor||{},window.TEAVisualEditor.appId=e.app_id;var t=e.channel_domain,r="";if(v_(qf),t){var n=void 0,s="";try{var a=window.performance.getEntriesByType("resource");if(a&&a.length&&(a.forEach(function(c){c.initiatorType==="script"&&c.name&&c.name.indexOf("collect")!==-1&&(s=c.name)}),s&&(n=s.split("/"))&&n.length)){r="https:/";for(var o=2;o<n.length&&o!==n.length-1;o++)r=r+"/"+n[o];if(r&&r.indexOf("/5.0")){var d=r.split("/5.0");r=d[0]||r}}}catch{}}(function(c,u){var l={};if(Object.keys(c).length)for(var h in c){if(h==="filter"||h==="autotrack"||h==="enable_stay_duration")break;l[h]=c[h]}var p=c.domain;(window.opener||window.parent).postMessage({type:"tea:sdk:info",config:l,version:u},p),window.addEventListener("message",y_,!1)})(e,Ye);try{(function(c,u){yi[c]=yi[c]||[],yi[c].push(u)})("tea:openHeatMapCore",function(c){var u=$f,l=c.data.app_id;l&&l!==e.app_id||function(h){var p=h.event,f=h.editorUrl,v=h.autoTrackInstance;Cn||(Cn=!0,Nf(f,function(){Da(p,"editorScriptloadSuccess"),v.destroy()},function(){p&&Da(p,"editorScriptloadError"),Cn=!1}))}({event:c,editorUrl:u+".js?query="+Date.now(),autoTrackInstance:i})})}catch{console.log("openHeatMapCore error")}}var Me,S_=function(){function i(e,t){this._instance=null,this._intersection=e,this.config=t,this._intersection&&this.init()}return i.prototype.init=function(){var e=this;if(window.MutationObserver)try{if(this._instance=new MutationObserver(function(r){r.forEach(function(n){n.type==="attributes"&&e.attributeChangeObserve(n),n.type==="childList"&&e.modifyNodeObserve(n)})}),!document||!document.body)return void console.warn("please use sdk api init after body element");var t=this.config.autotrack.exposure.attributes!==!1;this._instance.observe(document.body,{childList:!0,attributes:t,subtree:!0,attributeOldValue:!1})}catch{console.log("your browser cannot support MutationObserver,so cannot report exposure event, please update")}else console.log("your browser cannot support MutationObserver,so cannot report exposure event, please update")},i.prototype.attributeChangeObserve=function(e){e.target.hasAttribute("data-exposure")?this.exposureAdd(e,"mutation"):this.exposureRemove(e)},i.prototype.modifyNodeObserve=function(e){var t=this;Array.prototype.forEach.call(e.addedNodes,function(r){r.nodeType===1&&r.hasAttribute("data-exposure")&&t.exposureAdd(r,"intersect"),t.mapChild(r,t.exposureAdd.bind(t))}),Array.prototype.forEach.call(e.removedNodes,function(r){r.nodeType===1&&r.hasAttribute("data-exposure")&&t.exposureRemove(r),t.mapChild(r,t.exposureRemove.bind(t))})},i.prototype.mapChild=function(e,t){var r=this;e.nodeType===1&&e.children.length&&Array.prototype.forEach.call(e.children,function(n){n.nodeType===1&&n.hasAttribute("data-exposure")&&t(n),r.mapChild(n,t)})},i.prototype.exposureAdd=function(e,t){try{this._intersection&&this._intersection.exposureAdd(e,t)}catch(r){console.log("intersection error",JSON.stringify(r.message))}},i.prototype.exposureRemove=function(e){try{this._intersection&&this._intersection.exposureRemove(e)}catch(t){console.log("intersection error",JSON.stringify(t.message))}},i._exposure_observer=null,i}();(function(i){i[i.EXPOSURE_ONCE=0]="EXPOSURE_ONCE",i[i.LIFECYCLE_SHOW_NEW=3]="LIFECYCLE_SHOW_NEW",i[i.RESUME_FORM_PAGE=6]="RESUME_FORM_PAGE",i[i.RESUME_FORM_BACK=7]="RESUME_FORM_BACK",i[i.NOT_EXPOSURE=-1]="NOT_EXPOSURE"})(Me||(Me={}));var yt,E_=function(){function i(e,t,r){var n=this;this.backStatus=!1,this.instance=this.buildObserver(),this.collect=e,this.observeMap=i._observer_map,t.autotrack.exposure.ratio?this.ratio=t.autotrack.exposure.ratio:t.autotrack.exposure.ratio===0?this.ratio=0:this.ratio=.5,this.timeLimit=t.autotrack.exposure.stay||0,this.exposureType=Me.NOT_EXPOSURE,this.eventHandle=r,this.hashMap=new Map,this.backStatus=!1,this.lastState=null,this.collect.on("re-start-sdk",function(){n.visibilitychange()}),this.addListen()}return i.prototype.buildObserver=function(){var e=this;if(i._observer_instance)return console.log("your browser cannot support IntersectionObserver, so cannot report exposure event, please update"),null;if(window.IntersectionObserver){for(var t=[],r=0;r<=1;r+=.01)t.push(r);t.push(1);try{i._observer_instance=new IntersectionObserver(function(n){n.forEach(function(s){var a=s.target.observeId,o=e.observeMap.get(a),d=(s.target,s.isIntersecting,s.intersectionRatio);if(o.intersectionRatio=d,d<=.1&&(s.target.backStatus=!1),e.observeMap.set(a,o),d<e.ratio)return o.isIntersecting=!1,o.added=!1,o.exposured=!1,o.startTime=Date.now(),void e.observeMap.set(a,o);if(!o.added){if(o.startTime=Date.now(),o.added=!0,o.isIntersecting=!0,e.timeLimit){var c=setTimeout(function(){try{if(o.isIntersecting&&!o.exposured&&e.observeMap.get(a)){var u=e.observeMap.get(a).intersectionRatio;e.exposureEvent(s,u,a,o)}}catch(l){console.log("IntersectionObserver setTimeout error,msg: "+JSON.stringify(l))}},e.timeLimit);o.wait=c}e.observeMap.set(a,o)}Date.now()-o.startTime>=e.timeLimit&&!o.exposured&&e.exposureEvent(s,d,a,o)})},{threshold:t})}catch(n){console.log("IntersectionObserver error,msg: "+JSON.stringify(n))}return i._observer_instance}return console.log("your browser cannot support IntersectionObserver, so cannot report exposure event, please update"),null},i.prototype.exposureAdd=function(e,t){var r=t==="mutation"?e.target:e,n=r.observeId,s=ti();if(n||this.observeMap.has(n)){var a=this.observeMap.get(n);if(a&&r!==a.instance)this.unobserve(r),this.observeMap.delete(n),r.observeId=s,r.visible=!1,this.observeMap.set(s,{instance:r.cloneNode(!0),isIntersecting:!1}),this.observe(r);else{if(r.visible===!0)return;this.handleBoundingExposure(r)}}else r.observeId=s,r.visible=!1,this.observeMap.set(s,{instance:r.cloneNode(!0),isIntersecting:!1}),this.observe(r)},i.prototype.exposureRemove=function(e){this.observeMap.has(e.observeId)&&(this.observeMap.delete(e.observeId),this.unobserve(e),e.observeId="",e.visible=!1)},i.prototype.exposureEvent=function(e,t,r,n){if(t>=this.ratio){if(e.target.style.opacity==="0"||e.target.style.visibility==="hidden"||n.exposured===!0)return;n.startWait&&clearTimeout(n.startWait);var s=e.target.getAttribute("data-exposure-event");this.eventHandle({eventType:"dom",eventName:"exposure",event:s,exposureType:this.getExposureType(e.target)},e),e.target.visible=!0,e.target.hasExposure=!0,n.startTime=Date.now(),n.exposured=!0}else n.startTime=Date.now(),n.exposured=!1;this.observeMap.set(r,n)},i.prototype.observe=function(e){this.instance&&this.instance.observe(e)},i.prototype.unobserve=function(e){this.instance&&this.instance.unobserve(e)},i.prototype.getExposureDomToExposure=function(){var e=this;Array.prototype.forEach.call(document.querySelectorAll("[data-exposure]"),function(t){e.handleBoundingExposure(t)})},i.prototype.visibilitychange=function(){var e=this,t=null;document.visibilityState==="visible"?this.timeLimit?t=setTimeout(function(){e.getExposureDomToExposure()},this.timeLimit):this.getExposureDomToExposure():(clearTimeout(t),this.customType=void 0)},i.prototype.handleBoundingExposure=function(e){if(this.getBoundingRatio(e)>=this.ratio){e.visible=!0;var t=e.getAttribute&&e.getAttribute("data-exposure-event");this.eventHandle({eventType:"dom",eventName:"exposure",event:t,exposureType:this.customType||Me.RESUME_FORM_BACK},e)}},i.prototype.getBoundingRatio=function(e){var t=e.getBoundingClientRect(),r=t.top,n=t.left,s=t.width,a=t.height,o=window.innerWidth||document.documentElement.clientWidth,d=window.innerHeight||document.documentElement.clientHeight;return r>=0&&n>=0&&r<=d&&n<=o?(s>o?o:s)*(d-r)/(s*a):0},i.prototype.getExposureType=function(e){return e.visible?e.backStatus!==!1&&(this.backStatus||this.customType||window.performance.navigation.type===2)?this.exposureType=Me.RESUME_FORM_PAGE:this.exposureType=Me.LIFECYCLE_SHOW_NEW:(e.hasExposure,e.backStatus!==!1&&(this.backStatus||this.customType||window.performance.navigation.type===2)?this.exposureType=Me.RESUME_FORM_PAGE:this.exposureType=Me.EXPOSURE_ONCE),this.exposureType},i.prototype.addListen=function(){var e=this;this.collect.on("set-exposure-type",function(c){e.customType=c});var t,r,n,s,a=this.visibilitychange.bind(this);if(t=document,r="visibilitychange",n=a,s=!1,t.addEventListener?t.addEventListener(r,n,s):t.attachEven?t.attachEven("on"+r,n):t["on"+r]=n,window.addEventListener("hashchange",function(c){var u=e.hashMap.get(c.oldURL);u&&location.href===u.prev?(e.backStatus=!0,e.exposureType=Me.RESUME_FORM_PAGE):(e.backStatus=!1,e.hashMap.set(location.href,{current:c.newURL,prev:c.oldURL}))}),this.collect.bridgeReport){var o=window.history.pushState;history.pushState=function(c){for(var u=[],l=1;l<arguments.length;l++)u[l-1]=arguments[l];typeof history.onpushstate=="function"&&history.onpushstate({state:c});var h=o.call.apply(o,ft([history,c],u));return e.lastState=c,h};var d=history.replaceState;history.replaceState=function(c){for(var u=[],l=1;l<arguments.length;l++)u[l-1]=arguments[l];typeof history.onreplacestate=="function"&&history.onreplacestate({state:c});var h=d.call.apply(d,ft([history,c],u));return e.lastState=c,h}}else this.collect.on("STATE_CHANGE",function(c){e.lastState=c});return window.addEventListener("popstate",function(c){var u=c.state;u&&u.current&&e.lastState&&e.lastState.back&&u.current===e.lastState.back?(e.backStatus=!0,e.exposureType=Me.RESUME_FORM_PAGE):e.backStatus=!1}),function(){(function(c,u,l,h){c.addEventListener?c.removeEventListener(u,l,h):c.attachEven&&c.detachEven("on"+u,l)})(document,"visibilitychange",a,!1)}},i._observer_instance=null,i._observer_map=new Map,i}(),w_=function(){function i(e,t,r){t.autotrack&&t.autotrack.exposure&&(this._intersection=new E_(e,t,r),this._observer=new S_(this._intersection,t),this._intersection&&this._observer?this.initObserver():console.log("your browser version cannot support exposure event, please update~"))}return i.prototype.initObserver=function(){var e=this;Array.prototype.forEach.call(document.querySelectorAll("[data-exposure]"),function(t){e._intersection.exposureAdd(t,"intersect")})},i}();(function(i){i[i.SCROLL_UP=1]="SCROLL_UP",i[i.SCROLL_DOWN=2]="SCROLL_DOWN",i[i.SCROLL_LEFT=3]="SCROLL_LEFT",i[i.SCROLL_RIGHT=4]="SCROLL_RIGHT",i[i.NOT_SCROLL=-1]="NOT_SCROLL"})(yt||(yt={}));var xa,C_=function(){function i(e,t){this.distance=30,e.autotrack&&e.autotrack.scroll&&(e.autotrack.scroll.distance&&(this.distance=e.autotrack.scroll.distance),this.eventHandle=t,this.addLinstenr(),this.mutation())}return i.prototype.addLinstenr=function(){var e=this;Array.prototype.forEach.call(document.querySelectorAll("[data-scroll]"),function(t){e.scrollHandle(t)})},i.prototype.mutation=function(){var e=this;if(window.MutationObserver)try{var t=new MutationObserver(function(r){r.forEach(function(n){n.type==="childList"&&e.modifyNodeObserve(n)})});if(!document||!document.body)return void console.warn("please use sdk api init after body element");t.observe(document.body,{childList:!0,attributes:!0,subtree:!0,attributeOldValue:!1})}catch{console.log("your browser cannot support MutationObserver")}else console.log("your browser cannot support MutationObserver")},i.prototype.modifyNodeObserve=function(e){var t=this;Array.prototype.forEach.call(e.addedNodes,function(r){r.nodeType===1&&r.hasAttribute("data-scroll")&&t.scrollHandle(r),t.mapChild(r,t.scrollHandle.bind(t))}),Array.prototype.forEach.call(e.removedNodes,function(r){r.nodeType===1&&r.hasAttribute("data-scroll")&&t.scrollHandle(r,"remove"),t.mapChild(r,t.scrollHandle.bind(t))})},i.prototype.mapChild=function(e,t){var r=this;e.nodeType===1&&e.children.length&&Array.prototype.forEach.call(e.children,function(n){n.nodeType===1&&n.hasAttribute("data-scroll")&&t(n),r.mapChild(n,t)})},i.prototype.scrollHandle=function(e,t){var r=this;try{var n=e.scrollTop,s=e.scrollLeft,a=null,o=0,d=0,c=function(u){clearTimeout(a),a=setTimeout(function(){var f=e.scrollTop,v=e.scrollLeft,m=u.target&&u.target.getAttribute("data-scroll-event")||"";p===1||p===2?f===l&&(d=l-n,Math.abs(d)>=r.distance&&r.distance&&r.eventHandle({eventType:"dom",eventName:"scroll",event:m,params:{$direction:p,$offsetY:d,$offsetX:o}},u)):p!==3&&p!==4||v===h&&(o=h-s,Math.abs(o)>=r.distance&&r.distance&&r.eventHandle({eventType:"dom",eventName:"scroll",event:m,params:{$direction:p,$offsetY:d,$offsetX:o}},u)),n=l,s=h},100);var l=e.scrollTop,h=e.scrollLeft,p=yt.NOT_SCROLL;l>n?p=yt.SCROLL_DOWN:l<n?p=yt.SCROLL_UP:h>s?p=yt.SCROLL_LEFT:h<s&&(p=yt.SCROLL_RIGHT)};return t==="remove"?e.removeEventListener("scroll",c,!1):e.addEventListener("scroll",c,!1),function(){e.removeEventListener("scroll",c,!1)}}catch(u){console.warn("scroll event error",JSON.stringify(u))}},i}(),k_={hashTag:!1,impr:!1},T_=function(){function i(){}return i.prototype.apply=function(e,t){if(this.autoTrackStart=!1,this.collect=e,this.config=t,t.autotrack){var r=e.Types;this.ready(r.Autotrack),this.collect.emit(r.AutotrackReady)}},i.prototype.ready=function(e){this.collect.set(e);var t=this.config.autotrack;t=typeof t=="object"?t:{},t=Object.assign(k_,t),this.destroyed=!1,this.options=t,this.Config=new f_(p_,this.options),this.Exposure=new w_(this.collect,this.config,this.handle.bind(this)),this.Scroll=new C_(this.config,this.handle.bind(this)),this.Listener=new l_(t,this.collect,this.Config),this.EventHandle=new __(this.config,t),this.Request=new g_(this.collect),this.autoTrackStart=!0,this.init(),b_(this,this.config)},i.prototype.init=function(){this.Listener.init(this.handle.bind(this));try{this.collect.loadType==="base"&&(window.opener||window.parent).postMessage("[tea-sdk]ready","*")}catch{}},i.prototype.handle=function(e,t){try{if(this.config.autotrack.collect_url&&!this.config.autotrack.collect_url())return}catch{}e.eventType==="dom"&&this.handleDom(e,t)},i.prototype.handleDom=function(e,t){try{var r=e.eventName;if(r==="click"||r==="change"||r==="submit")(o=this.EventHandle.handleEvent(t,r))&&this.Request.send({eventType:"custom"},o);else if(r==="page_view"||r==="page_statistics"){var n=void 0;(n=r==="page_view"?this.EventHandle.handleViewEvent(t):this.EventHandle.handleStatisticsEvent(t))&&this.Request.send({eventType:"custom"},n)}else if(r==="beat"){var s=this.EventHandle.handleBeadtEvent(t),a=e.eventSend;s&&this.Request.send({eventType:"custom",eventSend:a},s)}else if(r==="exposure")(o=this.EventHandle.handleExposureEvent(e,t))&&this.Request.send({eventType:"custom"},o);else if(r==="scroll"){var o;(o=this.EventHandle.handleScrollEvent(e,t))&&this.Request.send({eventType:"custom"},o)}}catch(d){console.log("handel dom event error "+JSON.stringify(d))}},i.prototype.destroy=function(){if(!this.autoTrackStart)return console.warn("engine is undefined, make sure you have called autoTrack.start()");this.autoTrackStart=!1,this.Listener.removeListener()},i}();(function(i){i.Net="net",i.FailNet="f_net",i.FailData="f_data"})(xa||(xa={}));var Ia={pv:["predefine_pageview"],sdk:["_be_active","predefine_page_alive","predefine_page_close","__profile_set","__profile_set_once","__profile_increment","__profile_unset","__profile_append"],autotrack:["bav2b_click","bav2b_page","bav2b_beat","bav2b_page_statistics","__bav_click","__bav_page","__bav_beat","__bav_page_statistics"]},z_=function(){function i(){}return i.prototype.apply=function(e,t){var r=this;if(t.app_id&&t.enable_tracer&&!t.disable_track_event){this.limit={pv:1,sdk:3,autotrack:3,log:3},this.errorCode={f_net:0,f_data:0},this.tracerCache=new Map,this.collect=e,this.appid=t.app_id,this.reportUrl=e.configManager.getUrl("event");var n=this.collect.Types;this.collect.on(n.Event,function(){r.addCount("log")}),this.collect.on(n.SubmitError,function(s){var a=s.type,o=s.eventDate,d=s.errorCode,c=s.response;r.addErrorCount(o,a,d,c)}),this.listener(),this.collect.emit(n.TracerReady)}},i.prototype.addCount=function(e,t,r){t===void 0&&(t="net"),r===void 0&&(r=1);try{this.tracerCache||(this.tracerCache=new Map);var n=void 0;if(this.tracerCache.has(e))(s=this.tracerCache.get(e)).has(t)?(n=s.get(t).params.count,n++,s.set(t,this.processTracer(n,e,t))):(n=r,s.set(t,this.processTracer(r,e,t)));else{var s=new Map;n=r,s.set(t,this.processTracer(r,e,t)),this.tracerCache.set(e,s)}t==="net"&&n>=this.limit[e]&&this.report(!1)}catch(a){console.log(a)}},i.prototype.addErrorCount=function(e,t,r,n){var s=this;try{if(e&&e.length){var a=e[0].events;a&&a.length&&(t==="f_data"?(n&&n.hasOwnProperty("sc")?this.addCount("log",t,a.length-n.sc):this.addCount("log",t,a.length),this.errorCode[t]=r):a.forEach(function(o){var d="log";for(var c in Ia)if(Ia[c].indexOf(o.event)!==-1){d=c;break}s.addCount(d,t,1),s.errorCode[t]=r}))}}catch{}},i.prototype.report=function(e){if(this.tracerCache){var t=[];this.tracerCache.forEach(function(r){console.log(r),r.forEach(function(n){t.push(n)})}),t&&t.length&&this.sendTracer(t,e)}},i.prototype.sendTracer=function(e,t){try{var r=this.collect.eventManager.merge(e);this.collect.requestManager.useRequest({url:this.reportUrl,data:r,useBeacon:t}),this.tracerCache=null}catch{}},i.prototype.processTracer=function(e,t,r){var n={count:e,state:r,key:t,params_for_special:"applog_trace",aid:this.appid,platform:"web",_staging_flag:1,sdk_version:Ye};r!=="f_net"&&r!=="f_data"||(n.errorCode=this.errorCode[r]);var s=this.collect.processEvent("applog_trace",n);if(s&&s.event)return delete s.is_bav,s},i.prototype.listener=function(){var e=this;document.addEventListener("visibilitychange",function(){document.visibilityState==="hidden"&&e.leavePage()}),Jr(function(){e.leavePage()})},i.prototype.leavePage=function(){this.report(!0)},i}(),A_=function(){function i(){this.retryWaitTime=3e3,this.retryStatus=!1,this.retryCacheStatus=!1}return i.prototype.apply=function(e,t){var r=this;if(t.enable_storage&&!t.disable_storage&&(this.collect=e,this.config=t,!this.collect.destroy)){var n=e.Types,s=e.adapters.storage;this.storage=new s(!1),this.eventUrl=this.collect.configManager.getUrl("event"),this.eventKey="__tea_cache_events_"+t.app_id,this.storageNum=t.storage_num||50,this.retryNum=t.retry_num||3,this.retryInterval=1e3,e.on(n.SubmitError,function(a){a.type!=="f_data"&&r.storeData(a)}),e.on(n.Ready,function(){r.checkStorage()})}},i.prototype.retryRightNow=function(e){var t=this;if(this.retryStatus)this.errorCache.push(e);else{var r=0;this.retryStatus=!0;var n=setInterval(function(){if(r===3)return t.storeData(t.errorCache),t.retryStatus=!1,void clearInterval(n);var s=e.eventData;t.fetchData(s,function(){t.retryStatus=!1,clearInterval(n),t.retryCacheStatus&&t.errorCache.splice(0,1),t.errorCache.length&&(t.retryCacheStatus=!0,t.retryRightNow(t.errorCache[0]))},function(){r++})},this.retryInterval)}},i.prototype.storeData=function(e){var t=this.storage.getItem(this.eventKey),r=e.eventData;Object.keys(t).length!==this.storageNum&&(t[Date.now()]=r,this.storage.setItem(this.eventKey,t))},i.prototype.checkStorage=function(){var e=this;try{if(!window.navigator.onLine)return;var t=this.storage.getItem(this.eventKey);if(!t||!Object.keys(t).length)return;var r={events:[{event:"ontest",params:{app_id:this.config.app_id},local_time_ms:Date.now()}],user:{user_unique_id:this.collect.configManager.get("web_id")},header:{}};this.fetchData([r],function(){var n=JSON.parse(JSON.stringify(t)),s=function(o){e.fetchData(t[o],function(){delete n[o],e.storage.setItem(e.eventKey,n)},function(){},!1)};for(var a in t)s(a)},function(){console.log("network error,compensate report fail")},!0)}catch{console.warn("error check storage")}},i.prototype.fetchData=function(e,t,r,n){this.collect.requestManager.useRequest({url:this.eventUrl,data:e,timeout:3e4,success:t,fail:r,app_key:n?"566f58151b0ed37e":""})},i}(),kn=typeof window<"u"?(window.LogPluginObject||(window.LogPluginObject={}),window.LogPluginObject):null,R_=function(){function i(){}return i.prototype.apply=function(e,t){this._plugin={},this.config=t,this.collect=e,this.channel=t.channel||"cn",this.loadExtend()},i.prototype.loadExtend=function(){var e=this;try{this.collect.remotePlugin.forEach(function(t,r){if(t==="sdk")if(Sn.hasOwnProperty(r)){var n=Sn[r].object,s=Sn[r].src[e.channel]+"?query="+Date.now();e.exist(r,n,s)}else console.warn("your "+r+" is not exist,please check plugin name");else typeof t=="object"&&(t.src?e.exist(r,t.call,t.src):e.process(r,t.instance,"INSTANCE"))})}catch(t){this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:t.message}),console.log("load extend error")}},i.prototype.exist=function(e,t,r){var n=this;kn[t]?(this.process(e,kn[t]),console.log("已有"+e+"插件,避免重复加载~")):this.loadPlugin(e,r,function(){n.process(e,kn[t]),console.log(" %c %s %s %s","color: yellow; background-color: black;","–","load plugin:"+e+" success","-")},function(){console.log(" %c %s %s %s","color: red; background-color: yellow;","–","load plugin:"+e+" error","-")})},i.prototype.process=function(e,t,r){try{if(r){var n=new t;n.apply&&n.apply(this.collect,this.config),console.log("excude "+e+" success")}else t&&t(this.collect,this.config)}catch(s){this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:s.message}),console.log("excude "+e+" error, message:"+s.message)}},i.prototype.loadPlugin=function(e,t,r,n){var s=this;try{var a=document.createElement("script");a.src=t,this._plugin[e]||(this._plugin[e]=[]),this._plugin[e].push(r),a.onerror=function(){n(t)},a.onload=function(){s._plugin[e].forEach(function(o){o()})},document.getElementsByTagName("head")[0].appendChild(a)}catch(o){this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:o.message})}},i}(),D_=function(){function i(){this.autotrack=!1,this.spa=!1,this.cache={},this.allowHash=!1}return i.prototype.apply=function(e,t){if(t.spa||t.autotrack){var r=e.Types;this.collect=e,this.config=t,this.appid=t.app_id,this.allowHash=t.allow_hash,this.fncArray=new Map,this.setKey(),this.setLocation(),this.hack(),this.init(),this.listener(),e.emit(r.RouteReady)}},i.prototype.setKey=function(){var e=this.collect.adapters.storage;this.storage=new e(!1),this.cache_key="__tea_cache_refer_"+this.appid,this.cache={refer_key:"",refer_title:document.title||location.pathname,refer_manual_key:"",routeChange:!1},this.config.autotrack&&typeof this.config.autotrack=="object"&&this.config.autotrack.page_manual_key&&(this.cache.refer_manual_key=this.config.autotrack.page_manual_key),this.storage.setItem(this.cache_key,this.cache)},i.prototype.hack=function(){var e=this,t=window.history.pushState;history.pushState=function(n){for(var s=[],a=1;a<arguments.length;a++)s[a-1]=arguments[a];typeof history.onpushstate=="function"&&history.onpushstate({state:n});var o=t.call.apply(t,ft([history,n],s));if(e.collect.sdkStop||e.collect.destroy)return o;if(!(e.lastLocation===location.href||e.config.disable_spa_query&&e.pathEquel())){e.setReferCache(e.lastLocation);var d=e.getPopStateChangeEventData();return e.lastLocation=location.href,e.sendPv(d,"pushState"),o}};var r=history.replaceState;history.replaceState=function(n){for(var s=[],a=1;a<arguments.length;a++)s[a-1]=arguments[a];typeof history.onreplacestate=="function"&&history.onreplacestate({state:n});var o=r.call.apply(r,ft([history,n],s));if(e.collect.sdkStop||e.collect.destroy)return o;if(!(e.lastLocation===location.href||e.config.disable_spa_query&&e.pathEquel())){e.setReferCache(e.lastLocation);var d=e.getPopStateChangeEventData();return e.lastLocation=location.href,e.sendPv(d),o}}},i.prototype.setLocation=function(){typeof window<"u"&&(this.lastLocation=window.location.href)},i.prototype.getLocation=function(){return this.lastLocation},i.prototype.pathEquel=function(){try{return new URL(this.lastLocation).origin+new URL(this.lastLocation).pathname===new URL(location.href).origin+new URL(location.href).pathname}catch{return!1}},i.prototype.init=function(){var e=this.getPopStateChangeEventData();this.collect.emit("route-change",{config:e,init:!0})},i.prototype.listener=function(){var e=this;window.addEventListener("hashchange",function(t){if(!e.collect.sdkStop&&!e.collect.destroy&&e.lastLocation!==window.location.href&&(!e.config.disable_spa_query||!e.pathEquel())&&e.allowHash){e.setReferCache(e.lastLocation),e.lastLocation=window.location.href;var r=e.getPopStateChangeEventData();e.sendPv(r)}}),window.addEventListener("popstate",function(t){if(!e.collect.sdkStop&&!e.collect.destroy&&!(e.lastLocation===window.location.href||e.config.disable_spa_query&&e.pathEquel())){e.setReferCache(e.lastLocation),e.lastLocation=window.location.href;var r=e.getPopStateChangeEventData();e.sendPv(r)}})},i.prototype.getPopStateChangeEventData=function(){var e=this.pageConfig();return e.is_back=0,e},i.prototype.pageConfig=function(){try{var e=this.storage.getItem(this.cache_key)||{},t=!1,r=this.storage.getItem("__tea_cache_first_"+this.appid);return t=!r||r!=1,{is_html:1,url:location.href,referrer:this.handleRefer(),page_key:location.href,refer_page_key:this.handleRefer(),page_title:document.title||location.pathname,page_manual_key:this.config.autotrack&&this.config.autotrack.page_manual_key||"",refer_page_manual_key:e&&e.refer_manual_key||"",refer_page_title:e&&e.refer_title||"",page_path:location.pathname,page_host:location.host,is_first_time:""+t}}catch(n){return this.collect.emit(g.DEBUGGER_MESSAGE,{type:g.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:n.message}),{}}},i.prototype.sendPv=function(e,t){this.collect.emit("route-change",{config:e,init:!1})},i.prototype.handleRefer=function(){var e="";try{var t=this.storage.getItem(this.cache_key)||{};e=t.routeChange?t.refer_key:this.collect.configManager.get("referrer")}catch{e=document.referrer}return e},i.prototype.removeQuery=function(e){try{var t=new URL(e);return t.search="",t.href}catch{return e.split(/[?#]/)[0]}},i.prototype.setReferCache=function(e){var t=this.storage.getItem(this.cache_key)||{},r=this.removeQuery(e);t.refer_key=r,t.routeChange=!0,this.storage.setItem(this.cache_key,t)},i}();be.usePlugin(R_,"extend"),be.usePlugin(e_,"et"),be.usePlugin(Ym,"ab"),be.usePlugin(s_,"stay"),be.usePlugin(T_,"autotrack"),be.usePlugin(o_,"profile"),be.usePlugin(A_,"retry"),be.usePlugin(a_,"heartbeat"),be.usePlugin(c_,"monitor"),be.usePlugin(D_,"route"),be.usePlugin(z_,"tracer");var bi=new be("default");const Tn="VEPUSHER_DEVICE_ID",zn="VEPUSHER_USER_ID",Oa=i=>Math.floor((Math.random()*9+1)*Math.pow(10,i-1)).toString();function x_(i){const e={};if(!(i instanceof Object))throw new Error("params type error");for(const[t,r]of Object.entries(i))if(["string","number","boolean"].includes(typeof r))e[t]=r;else try{e[t]=JSON.stringify(r)}catch(n){console.error("serialize error",n)}return e}function I_(i){if(i)return localStorage.setItem(zn,i),i;const e=localStorage.getItem(zn);if(e)return e;const t=Oa(12);return localStorage.setItem(zn,t),i}function O_(i){if(i)return localStorage.setItem(Tn,i),i;const e=localStorage.getItem(Tn);if(e)return e;const t=Oa(11);return localStorage.setItem(Tn,t),t}const I={PUSHER_INIT:"pusher_init",SET_PROPERTY_CALL:"set_property_call",SET_VIDEO_QUALITY:"set_video_quality",SET_AUDIO_QUALITY:"set_audio_quality",PAGE_VISIBLE_CHANGE:"page_visible_change",PUSHER_DESTROY:"pusher_destroy",...{GET_DEVICES_RESULT:"get_devices_result",CAMERA_CAPTURE_RESULT:"camera_capture_result",MICROPHONE_CAPTURE_RESULT:"microphone_capture_result",SCREEN_CAPTURE_RESULT:"screen_capture_result",VIDEO_FILE_CAPTURE_RESULT:"video_file_capture_result",AUDIO_FILE_CAPTURE_RESULT:"audio_file_capture_result",IMAGE_FILE_CAPTURE_RESULT:"image_file_capture_result",VOLUME_DETECTOR_START_RESULT:"volume_detector_start_result",STOP_CAPTURE:"stop_capture"},...{SWITCH_ENABLE_MIXING:"switch_enable_mixing",SET_MIXING_CONFIG:"set_mixing_config",ADD_VIDEO_STREAM:"add_video_stream",UPDATE_VIDEO_STREAM:"update_video_stream",DELETE_VIDEO_STREAM:"delete_video_stream",CHANGE_VIDEO_STREAM_MUTE:"change_video_stream_mute",ADD_AUDIO_STREAM:"add_audio_stream",UPDATE_AUDIO_STREAM:"update_audio_stream",DELETE_AUDIO_STREAM:"delete_audio_stream",CHANGE_AUDIO_STREAM_MUTE:"change_audio_stream_mute"},...{START_PUSH:"start_push",STOP_PUSH_STREAM:"stop_push_stream",STOP_PUSH_STREAM_API_CALL:"stop_push_stream_api_call",START_PUSH_STATUS:"start_push_status",PUSH_RECONNECT_START:"push_reconnect_start",PUSH_RECONNECT_STATUS:"push_reconnect_status",PUSH_STATS:"push_stats",PUSH_AUDIO_CONTEXT_START_FAILED:"push_audio_context_start_failed",PUSH_RTC_STATE_CHANGE:"push_rtc_state_change",PUSH_SDP_INFO:"push_sdp_info"}};class M_{constructor({showLogInConsole:e=!1}){this._showLogInConsole=!1,this.markCollectTeaEventReady=()=>{this.isReady=!0,bi.start(),this.queueTeaEvent.forEach(t=>this.sendTeaEvent(...t)),this.queueTeaEvent=[]},this.configTea=(t,r)=>{const n={...t,evtParams:{page_url_fe:encodeURIComponent(window.location.href)||"",page_path_fe:window.location.pathname||"unknown",page_host_fe:window.location.hostname||"unknown",sdk_version:"2.0.3",build_version:"1.0.0.139",...r}};bi.config(n),this.markCollectTeaEventReady()},this.isReady=!1,this.queueTeaEvent=[],bi.init({app_id:699880,channel:"cn"}),this._showLogInConsole=e}sendTeaEvent(e,t,r=!1){if(e)if(this.isReady)try{const n={...x_(t||{})};bi.event(e,n),this._showLogInConsole&&!r&&console.log("[VePusher logger]:",e,n)}catch(n){console.error(n)}else this._showLogInConsole&&!r&&console.log("[VePusher logger]:",e,t),this.queueTeaEvent.push([e,t])}getIsReady(){return this.isReady}getRawTea(){return bi}}let Si;function P_({showLogInConsole:i}){Si=new M_({showLogInConsole:i})}function O(i,e,t=!1){Si&&Si.sendTeaEvent(i,e,t)}function L_(i,e){Si&&Si.configTea(i,e)}const Ma=()=>{O(I.PAGE_VISIBLE_CHANGE,{page_visible:!document.hidden})},U_=()=>{document.addEventListener("visibilitychange",Ma)},G_=()=>{document.removeEventListener("visibilitychange",Ma)};function Pt(i){var e;return{error:i,error_code:i.code,error_message:i.message,original_error_message:(e=i.error)==null?void 0:e.message}}class N_ extends Xe{constructor(e){super(),this._videoConstraints={width:1080,height:720,frameRate:30},this._cameraStreams={},this._screenStreams={},this._videoFileStreams={},this._microphoneStreams={},this._audioFileStreams={},this._imageStreams={},this._customVideoStreams={},this._customAudioStreams={};const{width:t,height:r,frameRate:n}=Rt(_s,"video"),{sampleRate:s}=Rt(gs,"audio");this._videoConstraints={width:t,height:r,frameRate:n},this._audioConstraints={sampleRate:s,enableAutoGainControl:!0,enableNoiseSuppression:!0,enableEchoCancellation:!0},this._livePusher=e}_notifyCaptured(e){this.emit(Ae.DeviceCaptured,e)}_notifyStopCapture(e){this.emit(Ae.DeviceStopCapture,e)}_bindStreamEvent(e){e.bindTrackEnd(()=>{this.emit(Ae.Interrupted,e),this.stopCapture({streamId:e.id,type:e.type})})}_handleError(e,t){const r=new At(t,e.message);this.emit(Ae.Error,r)}setVideoResolution(e){this._videoConstraints={...this._videoConstraints,...e}}setVideoFps(e){this._videoConstraints={...this._videoConstraints,frameRate:e}}setAudioSampleRate(e){this._audioConstraints={...this._audioConstraints,sampleRate:e}}async getDevicesList(e){try{const t=await fd(e?[e]:["audioinput","videoinput"]);return O(I.GET_DEVICES_RESULT,{type:e,is_success:!0,devices:t}),t}catch(t){return O(I.GET_DEVICES_RESULT,{type:e,is_success:!1,error:t,origin_error:t.error,error_code:t.code,error_message:t.message}),[]}}async getMicrophones(){return this.getDevicesList("audioinput")}async getCameras(){return this.getDevicesList("videoinput")}stopCapture({streamId:e,type:t}){let r;switch(t){case V.Camera:r="_cameraStreams";break;case V.Screen:r="_screenStreams";break;case V.VideoFile:r="_videoFileStreams";break;case V.Microphone:r="_microphoneStreams";break;case V.AudioFile:r="_audioFileStreams";break;case V.Image:r="_imageStreams";break;case V.CustomVideo:r="_customVideoStreams";break;case V.CustomAudio:r="_customAudioStreams";break}if(r){let n=[];if(e){const s=this[r][e];n.push(s)}else n=je(this[r]);O(I.STOP_CAPTURE,{stream_id:e,type:t,number:n.length}),n.forEach(s=>{this._notifyStopCapture(s),s.destroy(),delete this[r][s.id]})}}async startCameraCapture(e){let t={};If.includes(e)?t={facingMode:e}:e&&(t={deviceId:{exact:e}});const r={...t,...this._videoConstraints};try{const n=await md(r,!this._livePusher.isEnableMixing),s=new Vd(n,{frameRate:this._videoConstraints.frameRate});return this._cameraStreams[s.id]=s,this._notifyCaptured(s),this._bindStreamEvent(s),O(I.CAMERA_CAPTURE_RESULT,{is_success:!0,stream_id:s.id,device_id:e,capture_params:r}),s.id}catch(n){throw O(I.CAMERA_CAPTURE_RESULT,{is_success:!1,device_id:e,capture_params:r,...Pt(n)}),this._handleError(n,me.OPEN_CAMERA_FAILED),n}}async startMicrophoneCapture(e){let t={};e&&(t={deviceId:{exact:e}});const r={...this._audioConstraints,...t};try{const n=await gd(r),s=new kf(n);return this._microphoneStreams[s.id]=s,this._notifyCaptured(s),this._bindStreamEvent(s),O(I.MICROPHONE_CAPTURE_RESULT,{is_success:!0,stream_id:s.id,device_id:e,capture_params:r}),s.id}catch(n){throw O(I.MICROPHONE_CAPTURE_RESULT,{is_success:!1,device_id:e,capture_params:r,...Pt(n)}),this._handleError(n,me.OPEN_MICROPHONE_FAILED),n}}async startScreenCapture(e){const t={audio:e,video:this._videoConstraints};try{const r=await vd(t,void 0,!this._livePusher.isEnableMixing),n=new zf(r,{frameRate:this._videoConstraints.frameRate});return this._screenStreams[n.id]=n,this._notifyCaptured(n),this._bindStreamEvent(n),O(I.SCREEN_CAPTURE_RESULT,{is_success:!0,stream_id:n.id,capture_params:t}),n.id}catch(r){throw O(I.SCREEN_CAPTURE_RESULT,{is_success:!1,capture_params:t,...Pt(r)}),this._handleError(r,me.OPEN_SCREEN_FAILED),r}}async startVideoFileCapture(e){try{const t=await Ls({url:e,video:!0,audio:!0,loop:!0}),r=new Tf(t);return this._videoFileStreams[r.id]=r,this._notifyCaptured(r),this._bindStreamEvent(r),O(I.VIDEO_FILE_CAPTURE_RESULT,{is_success:!0,stream_id:r.id,file_url:e}),r.id}catch(t){throw this._handleError(t,me.VIDEO_FILE_CAPTURE_FAILED),O(I.VIDEO_FILE_CAPTURE_RESULT,{is_success:!1,file_url:e,...Pt(t)}),t}}async startAudioFileCapture(e){try{const t=await Ls({url:e,video:!1,audio:!0,loop:!0}),r=new Af(t);return this._audioFileStreams[r.id]=r,this._notifyCaptured(r),this._bindStreamEvent(r),O(I.AUDIO_FILE_CAPTURE_RESULT,{is_success:!0,stream_id:r.id,file_url:e}),r.id}catch(t){throw O(I.AUDIO_FILE_CAPTURE_RESULT,{is_success:!1,file_url:e,...Pt(t)}),this._handleError(t,me.AUDIO_FILE_CAPTURE_FAILED),t}}async startImageCapture(e){try{const t=await _d({url:e,width:0,height:0,frameRate:30}),r=new Rf(t);return this._imageStreams[r.id]=r,this._notifyCaptured(r),this._bindStreamEvent(r),O(I.IMAGE_FILE_CAPTURE_RESULT,{is_success:!0,stream_id:r.id,file_url:e}),r.id}catch(t){throw O(I.IMAGE_FILE_CAPTURE_RESULT,{is_success:!1,file_url:e,...Pt(t)}),this._handleError(t,me.IMAGE_FILE_CAPTURE_FAILED),t}}startCustomVideoCapture(e){const t=bd(e);if(t){const r=new Df(t);return this._customVideoStreams[r.id]=r,this._notifyCaptured(r),this._bindStreamEvent(r),r.id}}startCustomAudioCapture(e){const t=Sd(e);if(t){const r=new xf(t);return this._customAudioStreams[r.id]=r,this._notifyCaptured(r),this._bindStreamEvent(r),r.id}}async startVolumeDetect(e){const t=this.getStreamById(e);if(t)try{await t.startVolumeDetect(),O(I.VOLUME_DETECTOR_START_RESULT,{is_success:!0,stream_id:t.id})}catch(r){O(I.VOLUME_DETECTOR_START_RESULT,{is_success:!1,stream_id:t.id,error_message:r.message}),this._handleError(r,me.VOLUME_DETECT_FAILED)}}stopVolumeDetect(e){const t=this.getStreamById(e);t&&t.stopVolumeDetect()}getDefaultVideoStream(){return je(this._cameraStreams)[0]||je(this._screenStreams)[0]||je(this._videoFileStreams)[0]||je(this._imageStreams)[0]||je(this._customVideoStreams)[0]}getDefaultAudioStream(){return je(this._microphoneStreams)[0]||je(this._audioFileStreams)[0]||je(this._customAudioStreams)[0]}getVideoStream(e){return this._cameraStreams[e]||this._screenStreams[e]||this._videoFileStreams[e]||this._imageStreams[e]||this._customVideoStreams[e]}getAudioStream(e){return this._microphoneStreams[e]||this._audioFileStreams[e]||this._customAudioStreams[e]}getStreamById(e){return this.getAudioStream(e)||this.getVideoStream(e)}getVolume(e){const t=this.getStreamById(e);return(t==null?void 0:t.volume)||0}destroy(){Object.values(V).forEach(e=>{this.stopCapture({type:e})})}}let st=class{constructor(e){this._enabled=!1,this.group=(...t)=>{this._enabled&&console.group(`[${this._prefix}]: `,...t)},this.groupCollapsed=(...t)=>{this._enabled&&console.groupCollapsed(`[${this._prefix}]: `,...t)},this.groupEnd=()=>{this._enabled&&console.groupEnd()},this.log=(...t)=>{this._enabled&&console.log(`[${this._prefix}]: `,...t)},this.warn=(...t)=>{this._enabled&&console.warn(`[${this._prefix}]: `,...t)},this.error=(...t)=>{this._enabled&&console.error(`[${this._prefix}]: `,...t)},this.table=(...t)=>{this._enabled&&console.table(...t)},this._prefix=e;try{this._enabled=location.href.indexOf("rtmdebug")!==-1}catch{}}};class An{constructor({streamManagerController:e,composedStream:t,streamComposeController:r}){this._streamManagerController=e,this._composedStream=t,this._streamComposeController=r,this._active=!1,this.bindStreamManagerControllerEvent()}bindStreamManagerControllerEvent(){this._streamManagerController.on(Ae.DeviceCaptured,e=>{this._active&&this.onStreamCapture(e)}),this._streamManagerController.on(Ae.DeviceStopCapture,e=>{this._active&&this.onStreamStopCapture(e)})}getComposedStream(){return this._composedStream}enable(){this._active=!0}disable(){this._active=!1}}const Pa=new st("SingleComposer");class B_ extends An{onStreamCapture(e){e.isVideoStream?this._handleVideoStreamCapture(e):this._handleAudioStreamCapture(e)}onStreamStopCapture(e){e&&(e.isVideoStream?this._handleVideoStreamStopCapture(e):this._handleAudioStreamStopCapture(e))}enable(){if(super.enable(),this._composedStream.videoStream){const e=this._streamManagerController.getDefaultVideoStream();e&&this._handleVideoStreamCapture(e)}}async setVideoQuality({width:e,height:t,frameRate:r}){var n,s;if(this._active)try{await((s=(n=this._composedStream.videoStream)==null?void 0:n.videoTrack)==null?void 0:s.applyConstraints({width:{min:e,ideal:e},height:{min:t,ideal:t},frameRate:{min:r,ideal:r}}))}catch(a){Pa.error("setVideoQuality error",a)}}_handleVideoStreamCapture(e){const t=this._composedStream.videoStream;t!=null&&t.id&&this._streamComposeController.getMixerComposer().haveMixedStream(t.id)&&this._streamComposeController.removeAudioStream(t.id),e.audioTrack&&this._streamComposeController.addAudioStream({streamId:e.id,volume:100}),this._composedStream.setVideoStream(e)}_handleAudioStreamCapture(e){const t=this._streamComposeController.getMixerComposer().getMixedStreamByType(e.type);t.length>0&&t.forEach(r=>{this._streamComposeController.removeAudioStream(r.id)}),this._streamComposeController.addAudioStream({streamId:e.id,volume:100})}_handleVideoStreamStopCapture(e){const t=this._composedStream.videoStream;if((t==null?void 0:t.id)===e.id){const r=this._streamManagerController.getDefaultVideoStream();r?this._handleVideoStreamCapture(r):Pa.error("all video stream stop capture")}}muteVideoStream(){var e;(e=this._composedStream.videoStream)!=null&&e.videoTrack&&(this._composedStream.videoStream.videoTrack.enabled=!1)}unmuteVideoStream(){var e;(e=this._composedStream.videoStream)!=null&&e.videoTrack&&(this._composedStream.videoStream.videoTrack.enabled=!0)}_handleAudioStreamStopCapture(e){this._streamComposeController.removeAudioStream(e.id)}getComposedStream(){return this._composedStream}}class V_ extends Xe{constructor(e,{width:t,height:r,x:n,y:s,zOrder:a,keepRatio:o,mirrorType:d}){super(),this._rect={x:0,y:0,width:0,height:0,zOrder:0},this._isHidden=!1,this._paintSize={width:0,height:0},this._rect.width=t??e.width,this._rect.height=r??e.height,this._rect.x=n??0,this._rect.y=s??0,this._rect.zOrder=a??0,this._rect.sourceHeight=e.height,this._rect.sourceWidth=e.width,this._rect.keepRatio=o??!1,this._rect.mirrorType=d,this._stream=e,this._bindVideoTrackSizeChange()}_getPaintSize({elementWidth:e,elementHeight:t}){const r=this._rect.width,n=this._rect.height;if(r===0&&n===0)return{width:0,height:0};if(r===0)return{height:n,width:e*(n/t)};if(n===0)return{width:r,height:t*(r/e)};const s=e/t,a=r/n;let o=r,d=n;return s>a?(o=r,d=2*Math.round(r/s/2)):s<a&&(o=2*Math.round(n*s/2),d=n),{width:o,height:d}}_bindVideoTrackSizeChange(){this._stream.on(ms.SizeChange,({width:e,height:t})=>{this.setBaseProps("sourceWidth",e),this.setBaseProps("sourceHeight",t)})}getViewNode(){var n;if(!this._stream)return;let e={width:this._rect.width,height:this._rect.height};this._rect.keepRatio&&(e=this._getPaintSize({elementWidth:this._stream.width,elementHeight:this._stream.height})),this._paintSize=e;const t=(n=this._stream.viewNode)==null?void 0:n.size(e.width,e.height);let r;return this._rect.mirrorType!==void 0&&this._rect.mirrorType!==ds.None?r=t==null?void 0:t.mirror(this._rect.mirrorType):r=t,r=r==null?void 0:r.position(this._rect.x,this._rect.y),r}get x(){return this._rect.x}set x(e){this.setBaseProps("x",e)}get y(){return this._rect.y}set y(e){this.setBaseProps("y",e)}get width(){return this._rect.width}set width(e){this.setBaseProps("width",e)}get height(){return this._rect.height}set height(e){this.setBaseProps("height",e)}get zOrder(){return this._rect.zOrder}set zOrder(e){this.setBaseProps("zOrder",e)}get keepRatio(){return this._rect.keepRatio??!1}set keepRatio(e){this.setBaseProps("keepRatio",e)}set mirrorType(e){this.setBaseProps("mirrorType",e)}get paintSize(){return this._paintSize}setBaseProps(e,t){const r=this._rect[e]!==t;switch(e){case"width":this._rect.width=t;break;case"height":this._rect.height=t;break;case"x":this._rect.x=t;break;case"y":this._rect.y=t;break;case"zOrder":this._rect.zOrder=t;break;case"keepRatio":this._rect.keepRatio=t;break;case"mirrorType":this._rect.mirrorType=t;break}r&&this.emit("propsChange",{[e]:t})}show(){this._isHidden=!1}hide(){this._isHidden=!0}get stream(){return this._stream}get isHidden(){return this._isHidden}destroy(){}}class La extends Ct{constructor(e,t){super({type:V.MixVideo,stream:e}),this._trackMap.video=e,this._frameRate=(t==null?void 0:t.frameRate)??1}get source(){return this._source}replaceVideoTrack(e){this._trackMap.video=e,this._source=e}get viewNode(){return null}get mixerNode(){return null}bindTrackEnd(e){this.source.onended=e}destroy(){this.source.stop(),delete this._trackMap.video}}var F_=Object.defineProperty,j_=Object.getOwnPropertyDescriptor,Ei=(i,e,t,r)=>{for(var n=j_(e,t),s=i.length-1,a;s>=0;s--)(a=i[s])&&(n=a(e,t,n)||n);return n&&F_(e,t,n),n};const Ua=new st("composition-composer");function wi(i,e,t){const r=t.value;return t.value=function(...n){return this._active||Ua.error("composer is not active"),r.apply(this,n)},t}class Lt extends An{constructor(e){super(e),this._compositionViewConfig={width:1080,height:720,frameRate:30,backgroundColor:"#000000"},this._sprites=[],this._videoMixer=new Ld}onStreamCapture(e){}onStreamStopCapture(e){e&&e.isVideoStream&&this.removeVideoStream(e.id)}enable(){var r;if(this._active)return;super.enable();const e=this._videoMixer.track(),t=this._mixedVideoStream;this._mixedVideoStream=new La(e,{frameRate:this._compositionViewConfig.frameRate}),this._composedStream.setVideoStream(this._mixedVideoStream),t&&((r=t.videoTrack)==null?void 0:r.id)!==e.id&&t.destroy()}disable(){super.disable(),this._videoMixer.stop()}_updateSpriteToMixer(){const e=xo(this._sprites.map(t=>t.isHidden?null:t.getViewNode()));this._videoMixer.draw(e)}_removeSprite(e){this._sprites=this._sprites.filter(t=>t!==e),e.destroy(),this._updateSpriteToMixer()}_addSprite(e){this._sprites.push(e),this._sprites=this._sprites.sort((t,r)=>t.zOrder-r.zOrder),e.on("propsChange",t=>{Cf(t.zOrder)||(this._sprites=this._sprites.sort((r,n)=>r.zOrder-n.zOrder)),this._updateSpriteToMixer()}),this._updateSpriteToMixer()}setMixingConfig(e){const t=e.frameRate&&e.frameRate!==this._compositionViewConfig.frameRate;if(this._compositionViewConfig={...this._compositionViewConfig,...e},this._compositionViewConfig.frameRate<1&&(this._compositionViewConfig.frameRate=1),this._videoMixer.updateConfig(this._compositionViewConfig),t&&this._mixedVideoStream){const r=this._mixedVideoStream,n=this._videoMixer.updateFps();this._mixedVideoStream=new La(n,{frameRate:this._compositionViewConfig.frameRate}),this._composedStream.setVideoStream(this._mixedVideoStream),r.destroy()}}getMixingConfig(){return this._compositionViewConfig}addVideoStream(e,t){if(!e.viewNode){Ua.error("have no viewNode for composition");return}e.audioTrack&&this._streamComposeController.addAudioStream({streamId:e.id,volume:100});const r=new V_(e,t);this._addSprite(r)}_updateSingleVideoStream(e){const t=e.streamId;if(!t)return;const r=this._sprites.find(n=>n.stream.id===t);r&&(r.height=e.height,r.width=e.width,r.x=e.x,r.y=e.y,r.zOrder=e.zOrder,r.keepRatio=e.keepRatio??!1,r.mirrorType=e.mirrorType)}updateVideoStream(e){e.forEach(t=>{this._updateSingleVideoStream(t)}),this._updateSpriteToMixer()}removeVideoStream(e){if(!e)return;const t=this._sprites.find(r=>r.stream.id===e);t&&this._removeSprite(t)}muteVideoStream(e){if(e){const t=this._sprites.find(r=>r.stream.id===e);t&&t.hide()}else this._sprites.forEach(t=>{t.hide()});this._updateSpriteToMixer()}unmuteVideoStream(e){if(e){const t=this._sprites.find(r=>r.stream.id===e);t&&t.show()}else this._sprites.forEach(t=>{t.show()});this._updateSpriteToMixer()}setMixerWorkerScript(e){this._videoMixer.setWorkerTimerScriptUrl(e)}getVideoStreamRenderConfig(e){const t=this._sprites.find(r=>r.stream.id===e);if(t)return{width:t.width,height:t.height,paintWidth:t.paintSize.width,paintHeight:t.paintSize.height,x:t.x,y:t.y,zOrder:t.zOrder}}getDrawCountPerSecond(){return this._videoMixer.getDrawCountPerSecond()}}Ei([wi],Lt.prototype,"addVideoStream"),Ei([wi],Lt.prototype,"updateVideoStream"),Ei([wi],Lt.prototype,"removeVideoStream"),Ei([wi],Lt.prototype,"muteVideoStream"),Ei([wi],Lt.prototype,"unmuteVideoStream");class H_ extends Xe{constructor(e,{volume:t}){super(),this._volume=100,this._isMute=!1,this._volume=t??100,this._stream=e}get volume(){return this._volume}set volume(e){const t=this._volume!==e;this._volume=e,t&&this.emit("propsChange",{volume:e})}getMixerNode(){var e;return(e=this._stream.mixerNode)==null?void 0:e.gain(this._volume/100)}mute(){this._isMute=!0}unmute(){this._isMute=!1}get isMute(){return this._isMute}get stream(){return this._stream}}class $_ extends Ui{constructor(e){super({type:V.MixAudio,stream:e}),this._trackMap.audio=e}get source(){return this._source}hasVideoTrack(){return!1}get mixerNode(){return null}bindTrackEnd(e){this.source.onended=e}destroy(){var e;(e=this._trackMap.audio)==null||e.stop(),delete this._trackMap.audio}}class q_ extends An{constructor(e){super(e),this._spriteList=[],this._audioMixer=new wd({keepAlive:!0})}onStreamCapture(e){}onStreamStopCapture(e){e&&this.removeAudioStream(e.id)}_updateSpriteToMixer(){const e=xo(this._spriteList.map(t=>t.isMute?null:t.getMixerNode()));this._audioMixer.mix(e)}_updateSingleAudioStream(e){const{streamId:t,volume:r}=e,n=this._spriteList.find(s=>s.stream.id===t);n?r!==void 0&&(n.volume=r):console.error("can not find stream"+t)}enable(){super.enable();const e=this._audioMixer.track(),t=new $_(e);this._composedStream.setAudioStream(t),this._audioMixer.mix([])}resumeMixer(){this._audioMixer.resume()}addAudioStream(e,t){const r=new H_(e,t);this._spriteList.push(r),this._updateSpriteToMixer()}tryResume(){return this._audioMixer.resume()}removeAudioStream(e){const t=this._spriteList.find(r=>r.stream.id===e);t&&(this._spriteList=this._spriteList.filter(r=>r!==t),this._updateSpriteToMixer())}updateAudioStream(e){e.forEach(t=>{this._updateSingleAudioStream(t)}),this._updateSpriteToMixer()}muteAudioStream(e){if(e){const t=this._spriteList.find(r=>r.stream.id===e);t&&t.mute()}else this._spriteList.forEach(t=>{t.mute()});this._updateSpriteToMixer()}unmuteAudioStream(e){if(e){const t=this._spriteList.find(r=>r.stream.id===e);t&&t.unmute()}else this._spriteList.forEach(t=>{t.unmute()});this._updateSpriteToMixer()}haveMixedStream(e){return this._spriteList.some(t=>t.stream.id===e)}getMixedStreamByType(e){return this._spriteList.filter(t=>t.stream.type===e).map(t=>t.stream)}}class K_ extends Xe{constructor({videoStream:e,audioStream:t}={}){super(),this._videoStream=e,this._audioStream=t}setVideoStream(e){var t;((t=this._videoStream)==null?void 0:t.id)!==(e==null?void 0:e.id)&&(this._videoStream=e,this.emit(dt.VideoStreamChange,e))}setAudioStream(e){var t;((t=this._audioStream)==null?void 0:t.id)!==e.id&&(this._audioStream=e,this.emit(dt.AudioStreamChange,e))}get audioStream(){return this._audioStream}get videoStream(){return this._videoStream}get videoTrack(){var e;return(e=this._videoStream)==null?void 0:e.videoTrack}get audioTrack(){var e;return(e=this._audioStream)==null?void 0:e.audioTrack}}const W_=new st("streamComposeController");class J_{constructor(e){this._streamManagerController=e,this._composedStream=new K_,this.singleComposer=new B_({streamManagerController:this._streamManagerController,composedStream:this._composedStream,streamComposeController:this}),this.compositionComposer=new Lt({streamManagerController:this._streamManagerController,composedStream:this._composedStream,streamComposeController:this}),this.mixerComposer=new q_({streamManagerController:this._streamManagerController,composedStream:this._composedStream,streamComposeController:this}),this.singleComposer.enable(),this.mixerComposer.enable()}enableMixing(e){e?(this.compositionComposer.enable(),this.singleComposer.disable()):(this.compositionComposer.disable(),this.singleComposer.enable())}setVideoQuality({width:e,height:t,frameRate:r}){this.singleComposer.setVideoQuality({width:e,height:t,frameRate:r}),this.compositionComposer.setMixingConfig({width:e,height:t,frameRate:r})}setMixingConfig(e){this.compositionComposer.setMixingConfig(e)}getMixingConfig(){return this.compositionComposer.getMixingConfig()}addAudioStream(e){const t=this._streamManagerController.getStreamById(e.streamId);this.mixerComposer.addAudioStream(t,{volume:e.volume??100})}removeAudioStream(e){return this.mixerComposer.removeAudioStream(e)}updateAudioStream(e){this.mixerComposer.updateAudioStream(e)}addVideoStream(e){const t=this._streamManagerController.getVideoStream(e.streamId);if(!t){W_.error("can not find video stream"+e.streamId);return}this.compositionComposer.addVideoStream(t,e)}updateVideoStream(e){this.compositionComposer.updateVideoStream(e);const t=e.map(r=>({streamId:r.streamId,volume:r.volume}));this.mixerComposer.updateAudioStream(t)}removeVideoStream(e){this.compositionComposer.removeVideoStream(e),this.mixerComposer.removeAudioStream(e)}getComposer(){return this.isEnableMixing?this.compositionComposer:this.singleComposer}getComposedStream(){return this._composedStream}muteVideoStream(e){this.isEnableMixing?this.compositionComposer.muteVideoStream(e):this.singleComposer.muteVideoStream()}unmuteVideoStream(e){this.isEnableMixing?this.compositionComposer.unmuteVideoStream(e):this.singleComposer.unmuteVideoStream()}muteAudioStream(e){this.mixerComposer.muteAudioStream(e)}unmuteAudioStream(e){this.mixerComposer.unmuteAudioStream(e)}get isEnableMixing(){return this.compositionComposer._active}getMixerComposer(){return this.mixerComposer}setMixerWorkerScript(e){this.compositionComposer.setMixerWorkerScript(e)}getVideoStreamRenderConfig(e){if(this.compositionComposer._active)return this.compositionComposer.getVideoStreamRenderConfig(e)}resumeMixer(){return this.mixerComposer.tryResume()}getCompositionDrawCountPerSecond(){return this.compositionComposer.getDrawCountPerSecond()}}class Ga{constructor(e){this._hasBindComposedStreamEvent=!1,this._composedStream=e}bindComposedStreamEvent(){this._hasBindComposedStreamEvent||(this._composedStream.on(dt.VideoStreamChange,this.handleVideoStreamChange),this._composedStream.on(dt.AudioStreamChange,this.handleAudioStreamChange),this._hasBindComposedStreamEvent=!0)}unbindComposedStreamEvent(){this._hasBindComposedStreamEvent&&(this._composedStream.off(dt.VideoStreamChange,this.handleVideoStreamChange),this._composedStream.off(dt.AudioStreamChange,this.handleAudioStreamChange),this._hasBindComposedStreamEvent=!1)}}const Ut=new st("PreviewConsumer");class X_ extends Ga{constructor(e,{streamConsumeController:t}){super(e),this._isPreviewing=!1,this._previewElement=null,this.handleAudioStreamChange=r=>{this.startPreview()},this.handleVideoStreamChange=r=>{this.startPreview()},this._streamConsumeController=t}start(){this.bindComposedStreamEvent()}stop(){this.unbindComposedStreamEvent()}setRenderView(e){if(!e)return;const t=document.getElementById(e);if(!t)throw new Error(`can not found element with id ${e}`);if(t===this._previewElement)return;if(this._previewElement){if(t.contains(this._previewElement))return;t.appendChild(this._previewElement);return}const r=document.createElement("video");r.style.width="100%",r.style.height="100%",r.autoplay=!0,r.playsInline=!0,r.setAttribute("webkit-playsinline",""),r.setAttribute("x5-playsinline",""),this._previewElement=r;const n={video:null,audio:null};r.addEventListener("loadeddata",()=>{const s=r.srcObject.getVideoTracks()[0],a=r.srcObject.getAudioTracks()[0];s&&s!==n.video&&(this._streamConsumeController.emit(Z.CaptureFirstVideoFrame),n.video=s),a&&a!==n.audio&&(this._streamConsumeController.emit(Z.CaptureFirstAudioFrame),n.audio=a)}),t.appendChild(r)}startPreview(){if(Ut.log("startPreview"),!this._previewElement){Ut.warn("preview element not found");return}this._isPreviewing||this.start();const e=this._composedStream.audioTrack,t=this._composedStream.videoTrack;e&&(this._appendTrack(this._previewElement,e),this._removeTrack(this._previewElement,null)),t&&(this._appendTrack(this._previewElement,t),this._removeTrack(this._previewElement,null)),this._previewElement.play().catch(r=>{this._streamConsumeController.emit(Z.NotAllowedAutoPlay)}),this._isPreviewing=!0}stopPreview(){this._isPreviewing=!1;const e=this._composedStream.audioTrack,t=this._composedStream.videoTrack;e&&this._removeTrack(this._previewElement,e),t&&this._removeTrack(this._previewElement,t),this.stop()}destroy(){this.stopPreview(),this._previewElement=null,this.unbindComposedStreamEvent()}_appendTrack(e,t){if(!e||!t)return;const r=e.srcObject||new MediaStream;r.getTracks().find(n=>n.id===t.id)||(t.kind==="audio"&&r.getTracks().forEach(n=>{n.kind==="audio"&&(Ut.log(`remove preview track, ${n.label}, readyState=${n.readyState}`),r.removeTrack(n))}),t.kind==="video"&&r.getTracks().forEach(n=>{n.kind==="video"&&(r.removeTrack(n),Ut.log(`remove preview track, ${n.label}, readyState=${n.readyState}`))}),r.addTrack(t),e.srcObject?e.load():e.srcObject=r)}_removeTrack(e,t){if(!e)return;const r=e.srcObject;r&&(r.getTracks().forEach(n=>{(n.id===(t==null?void 0:t.id)||n.readyState==="ended")&&(Ut.log(`remove preview track ${n.label}`),r.removeTrack(n))}),r.getTracks().length===0&&(e.srcObject=null,Ut.log("set srcObject null")))}getPreviewElement(){if(this.isPreviewing)return this._previewElement}get isPreviewing(){return this._isPreviewing}}var ke={},Rn={},Dn={exports:{}},Na;function xn(){if(Na)return Dn.exports;Na=1;var i=Dn.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(e){return e.encoding?"rtpmap:%d %s/%s/%s":e.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(e){return e.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(e){return e.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(e){return"extmap:%d"+(e.direction?"/%s":"%v")+(e["encrypt-uri"]?" %s":"%v")+" %s"+(e.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(e){return e.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(e){var t="candidate:%s %d %s %d %s %d typ %s";return t+=e.raddr!=null?" raddr %s rport %d":"%v%v",t+=e.tcptype!=null?" tcptype %s":"%v",e.generation!=null&&(t+=" generation %d"),t+=e["network-id"]!=null?" network-id %d":"%v",t+=e["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(e){var t="ssrc:%d";return e.attribute!=null&&(t+=" %s",e.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(e){return e.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(e){return e.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(e){return"imageattr:%s %s %s"+(e.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(e){return"simulcast:%s %s"+(e.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(e){return"ts-refclk:%s"+(e.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(e){var t="mediaclk:";return t+=e.id!=null?"id=%s %s":"%v%s",t+=e.mediaClockValue!=null?"=%s":"",t+=e.rateNumerator!=null?" rate=%s":"",t+=e.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"]}]};return Object.keys(i).forEach(function(e){var t=i[e];t.forEach(function(r){r.reg||(r.reg=/(.*)/),r.format||(r.format="%s")})}),Dn.exports}var Ba;function Z_(){return Ba||(Ba=1,function(i){var e=function(o){return String(Number(o))===o?Number(o):o},t=function(o,d,c,u){if(u&&!c)d[u]=e(o[1]);else for(var l=0;l<c.length;l+=1)o[l+1]!=null&&(d[c[l]]=e(o[l+1]))},r=function(o,d,c){var u=o.name&&o.names;o.push&&!d[o.push]?d[o.push]=[]:u&&!d[o.name]&&(d[o.name]={});var l=o.push?{}:u?d[o.name]:d;t(c.match(o.reg),l,o.names,o.name),o.push&&d[o.push].push(l)},n=xn(),s=RegExp.prototype.test.bind(/^([a-z])=(.*)/);i.parse=function(o){var d={},c=[],u=d;return o.split(/(\r\n|\r|\n)/).filter(s).forEach(function(l){var h=l[0],p=l.slice(2);h==="m"&&(c.push({rtp:[],fmtp:[]}),u=c[c.length-1]);for(var f=0;f<(n[h]||[]).length;f+=1){var v=n[h][f];if(v.reg.test(p))return r(v,u,p)}}),d.media=c,d};var a=function(o,d){var c=d.split(/=(.+)/,2);return c.length===2?o[c[0]]=e(c[1]):c.length===1&&d.length>1&&(o[c[0]]=void 0),o};i.parseParams=function(o){return o.split(/;\s?/).reduce(a,{})},i.parseFmtpConfig=i.parseParams,i.parsePayloads=function(o){return o.toString().split(" ").map(Number)},i.parseRemoteCandidates=function(o){for(var d=[],c=o.split(" ").map(e),u=0;u<c.length;u+=3)d.push({component:c[u],ip:c[u+1],port:c[u+2]});return d},i.parseImageAttributes=function(o){return o.split(" ").map(function(d){return d.substring(1,d.length-1).split(",").reduce(a,{})})},i.parseSimulcastStreamList=function(o){return o.split(";").map(function(d){return d.split(",").map(function(c){var u,l=!1;return c[0]!=="~"?u=e(c):(u=e(c.substring(1,c.length)),l=!0),{scid:u,paused:l}})})}}(Rn)),Rn}var In,Va;function Q_(){if(Va)return In;Va=1;var i=xn(),e=/%[sdv%]/g,t=function(a){var o=1,d=arguments,c=d.length;return a.replace(e,function(u){if(o>=c)return u;var l=d[o];switch(o+=1,u){case"%%":return"%";case"%s":return String(l);case"%d":return Number(l);case"%v":return""}})},r=function(a,o,d){var c=o.format instanceof Function?o.format(o.push?d:d[o.name]):o.format,u=[a+"="+c];if(o.names)for(var l=0;l<o.names.length;l+=1){var h=o.names[l];o.name?u.push(d[o.name][h]):u.push(d[o.names[l]])}else u.push(d[o.name]);return t.apply(null,u)},n=["v","o","s","i","u","e","p","c","b","t","r","z","a"],s=["i","c","b","a"];return In=function(a,o){o=o||{},a.version==null&&(a.version=0),a.name==null&&(a.name=" "),a.media.forEach(function(l){l.payloads==null&&(l.payloads="")});var d=o.outerOrder||n,c=o.innerOrder||s,u=[];return d.forEach(function(l){i[l].forEach(function(h){h.name in a&&a[h.name]!=null?u.push(r(l,h,a)):h.push in a&&a[h.push]!=null&&a[h.push].forEach(function(p){u.push(r(l,h,p))})})}),a.media.forEach(function(l){u.push(r("m",i.m[0],l)),c.forEach(function(h){i[h].forEach(function(p){p.name in l&&l[p.name]!=null?u.push(r(h,p,l)):p.push in l&&l[p.push]!=null&&l[p.push].forEach(function(f){u.push(r(h,p,f))})})})}),u.join(`\r
67
67
  `)+`\r
68
68
  `},In}var Fa;function Y_(){if(Fa)return ke;Fa=1;var i=Z_(),e=Q_(),t=xn();return ke.grammar=t,ke.write=e,ke.parse=i.parse,ke.parseParams=i.parseParams,ke.parseFmtpConfig=i.parseFmtpConfig,ke.parsePayloads=i.parsePayloads,ke.parseRemoteCandidates=i.parseRemoteCandidates,ke.parseImageAttributes=i.parseImageAttributes,ke.parseSimulcastStreamList=i.parseSimulcastStreamList,ke}var eg=Y_();const sr=ae(eg);function Ci(i){return new Promise(e=>{setTimeout(e,i)})}async function tg(i,e={},t=0){const r=new AbortController;let n=!1;e=Object.assign({},e,{signal:r.signal});const s=[fetch(i,e)];t&&s.push(new Promise((a,o)=>{setTimeout(()=>{n||(o({httpCode:0,message:"Timeout"}),r.abort())},t)}));try{const a=await Promise.race(s);if(n=!0,!a.ok||a.status<200||a.status>=300)throw{httpCode:a.status,message:a.statusText};return a.json()}catch(a){throw n=!0,a}}async function ja(i,e={},t={}){const{timeout:r=0,retryDelay:n=0}=t;let{retryCount:s=0}=t;try{return await tg(i,e,r)}catch(a){if(s--,t.retryCount=s,s<0)throw a;return await Ci(n),await ja(i,e,t)}}const On=-1;function re(i,e){let t;return e.forEach(r=>{r.type===i&&(t=r)}),t}async function Mn(i,e){const t={},r=await(i==null?void 0:i.getStats()),n=await(e==null?void 0:e.getStats());return r&&(t.audio={mediaSource:re("media-source",r),codec:re("codec",r),candidatePair:re("candidate-pair",r),remoteCandidate:re("remote-candidate",r),localCandidate:re("local-candidate",r),track:re("track",r),outboundRtp:re("outbound-rtp",r),remoteInboundRtp:re("remote-inbound-rtp",r),transport:re("transport",r)}),n&&(t.video={mediaSource:re("media-source",n),codec:re("codec",n),candidatePair:re("candidate-pair",n),remoteCandidate:re("remote-candidate",n),localCandidate:re("local-candidate",n),track:re("track",n),outboundRtp:re("outbound-rtp",n),remoteInboundRtp:re("remote-inbound-rtp",n),transport:re("transport",n)}),t}async function ig(i,e,t){var u,l,h,p,f,v,m,b,y,_,E,z,T,x,R,A,D,P,K,H,J,X,ue,q,ne,ze,ct,ut,zi,Ai,Ri,Di,cu,uu,du,hu,lu,pu,fu;const r=await Mn(e,t);await Ci(i);const n=await Mn(e,t),{audio:s,video:a}=r,{audio:o,video:d}=n,c={};if(s!=null&&s.codec&&(o!=null&&o.codec)){const jt=((u=o.outboundRtp)==null?void 0:u.timestamp)-((l=s.outboundRtp)==null?void 0:l.timestamp),os=((h=o.outboundRtp)==null?void 0:h.bytesSent)-((p=s.outboundRtp)==null?void 0:p.bytesSent),vr=((f=o.remoteInboundRtp)==null?void 0:f.packetsLost)-((v=s.remoteInboundRtp)==null?void 0:v.packetsLost),as=((m=o.outboundRtp)==null?void 0:m.packetsSent)-((b=s.outboundRtp)==null?void 0:b.packetsSent),cs=(((y=o.mediaSource)==null?void 0:y.totalAudioEnergy)??0)-(((_=s.mediaSource)==null?void 0:_.totalAudioEnergy)??0);c.audio={codec:o.codec.mimeType,channels:o.codec.channels,sendBitrate:os/jt*8e3,packetsSent:(E=o.outboundRtp)==null?void 0:E.packetsSent,nackCount:(z=o.outboundRtp)==null?void 0:z.nackCount,packetsLost:(T=o.remoteInboundRtp)==null?void 0:T.packetsLost,packetsLostPercent:vr/as,deltaAudioEnergy:cs}}if(a!=null&&a.codec&&(d!=null&&d.codec)){const jt=((x=d.outboundRtp)==null?void 0:x.timestamp)-((R=a.outboundRtp)==null?void 0:R.timestamp),os=((A=d.outboundRtp)==null?void 0:A.bytesSent)-((D=a.outboundRtp)==null?void 0:D.bytesSent),vr=((P=d.outboundRtp)==null?void 0:P.framesEncoded)-((K=a.outboundRtp)==null?void 0:K.framesEncoded),as=((H=d.outboundRtp)==null?void 0:H.totalEncodeTime)-((J=a.outboundRtp)==null?void 0:J.totalEncodeTime),cs=((X=d.outboundRtp)==null?void 0:X.framesSent)-((ue=a.outboundRtp)==null?void 0:ue.framesSent),mu=((q=d.outboundRtp)==null?void 0:q.packetsSent)-((ne=a.outboundRtp)==null?void 0:ne.packetsSent),Bv=((ze=d.outboundRtp)==null?void 0:ze.totalPacketSendDelay)-((ct=a.outboundRtp)==null?void 0:ct.totalPacketSendDelay),Vv=((ut=d.remoteInboundRtp)==null?void 0:ut.packetsLost)-((zi=a.remoteInboundRtp)==null?void 0:zi.packetsLost);c.video={codec:d.codec.mimeType,sendBitrate:os/jt*8e3,frameWidth:(Ai=d.outboundRtp)==null?void 0:Ai.frameWidth,frameHeight:(Ri=d.outboundRtp)==null?void 0:Ri.frameHeight,framesPerSecond:Math.floor(cs/jt*1e3||0),framesEncoded:(Di=d.outboundRtp)==null?void 0:Di.framesEncoded,framesEncodedPerSecond:vr*1e3/jt,keyFramesEncoded:(cu=d.outboundRtp)==null?void 0:cu.keyFramesEncoded,framesSent:(uu=d.outboundRtp)==null?void 0:uu.frameHeight,frameEncodeAvgTime:as*1e3/vr,packetsSent:(du=d.outboundRtp)==null?void 0:du.packetsSent,packetSendDelay:Bv*1e3/mu,nackCount:(hu=d.outboundRtp)==null?void 0:hu.nackCount,firCount:(lu=d.outboundRtp)==null?void 0:lu.firCount,pliCount:(pu=d.outboundRtp)==null?void 0:pu.pliCount,packetsLost:(fu=d.remoteInboundRtp)==null?void 0:fu.packetsLost,packetsLostPercent:Vv/mu,deltaTime:jt}}return{stats:c,originStats:{audio:o,video:d}}}function Y(i,e=On){return i??e}function rg(i){var e,t,r,n,s,a,o,d,c,u,l,h,p,f,v,m,b,y,_,E,z,T,x,R,A,D,P,K,H,J,X,ue,q,ne,ze,ct,ut,zi,Ai,Ri,Di;return{audio_bytes:(e=i.outboundRtp)==null?void 0:e.bytesSent,audio_packets_sent:(t=i.outboundRtp)==null?void 0:t.packetsSent,audio_nack_count:(r=i.outboundRtp)==null?void 0:r.nackCount,audio_ssrc:(n=i.outboundRtp)==null?void 0:n.ssrc,audio_retransmitted_bytes_sent:(s=i.outboundRtp)==null?void 0:s.retransmittedBytesSent,audio_retransmitted_packets_sent:(a=i.outboundRtp)==null?void 0:a.retransmittedPacketsSent,audio_record_sample_rate:(o=i.codec)==null?void 0:o.clockRate,audio_num_channels:(d=i.codec)==null?void 0:d.channels,audio_level:(c=i.mediaSource)!=null&&c.audioLevel?-10*Math.log10(Math.pow((u=i.mediaSource)==null?void 0:u.audioLevel,2)):(l=i.mediaSource)==null?void 0:l.audioLevel,audio_volume:(h=i.mediaSource)!=null&&h.audioLevel?((p=i.mediaSource)==null?void 0:p.audioLevel)*255:(f=i.mediaSource)==null?void 0:f.audioLevel,audio_total_audio_energy:(v=i.mediaSource)==null?void 0:v.totalAudioEnergy,audio_total_input_duration:(m=i.mediaSource)==null?void 0:m.totalSamplesDuration,audio_send_level:(b=i.mediaSource)==null?void 0:b.audioLevel,audio_ice_available_outgoing_bitrate:(y=i.candidatePair)==null?void 0:y.availableOutgoingBitrate,audio_ice_bytes_received:(_=i.candidatePair)==null?void 0:_.bytesReceived,audio_ice_bytes_sent:(E=i.candidatePair)==null?void 0:E.bytesSent,audio_ice_nominated:(z=i.candidatePair)==null?void 0:z.nominated,audio_ice_pair_id:(T=i.candidatePair)==null?void 0:T.id,audio_ice_pair_rtt:(x=i.candidatePair)==null?void 0:x.currentRoundTripTime,audio_ice_pair_state:(R=i.candidatePair)==null?void 0:R.state,audio_ice_pair_writable:(A=i.candidatePair)==null?void 0:A.writable,audio_recv_ping_requests:(D=i.candidatePair)==null?void 0:D.requestsReceived,audio_recv_ping_responses:(P=i.candidatePair)==null?void 0:P.responsesReceived,audio_sent_ping_requests_before_first_response:(K=i.candidatePair)==null?void 0:K.requestsSent,audio_sent_ping_requests_total:(((H=i.candidatePair)==null?void 0:H.requestsSent)??0)+(((J=i.candidatePair)==null?void 0:J.consentRequestsSent)??0),audio_sent_ping_responses:(X=i.candidatePair)==null?void 0:X.responsesSent,audio_local_candidate_type:(ue=i.localCandidate)==null?void 0:ue.candidateType,audio_local_ip:((q=i.localCandidate)==null?void 0:q.ip)||((ne=i.localCandidate)==null?void 0:ne.address),audio_local_network_type:(ze=i.localCandidate)==null?void 0:ze.networkType,audio_local_port:(ct=i.localCandidate)==null?void 0:ct.port,audio_local_protocol:(ut=i.localCandidate)==null?void 0:ut.protocol,audio_remote_candidate_type:(zi=i.remoteCandidate)==null?void 0:zi.candidateType,audio_remote_ip:((Ai=i.remoteCandidate)==null?void 0:Ai.ip)||((Ri=i.remoteCandidate)==null?void 0:Ri.address),audio_remote_port:(Di=i.remoteCandidate)==null?void 0:Di.port}}function ng(i){var e,t,r,n,s,a,o,d,c,u,l,h,p,f,v,m,b,y,_,E,z,T,x,R,A,D,P,K,H,J,X,ue,q,ne,ze,ct,ut;return{video_qp_sum:(e=i.outboundRtp)==null?void 0:e.qpSum,video_pli_count:(t=i.outboundRtp)==null?void 0:t.pliCount,video_ssrc:(r=i.outboundRtp)==null?void 0:r.ssrc,video_quality_limitation_reason:(n=i.outboundRtp)==null?void 0:n.qualityLimitationReason,video_quality_limitation_durations:(s=i.outboundRtp)==null?void 0:s.qualityLimitationDurations,video_target_bitrate:(a=i.outboundRtp)==null?void 0:a.targetBitrate,video_rtt:(((o=i.remoteInboundRtp)==null?void 0:o.roundTripTime)||0)*1e3,video_jitter:(((d=i.remoteInboundRtp)==null?void 0:d.jitter)||0)*1e3,video_packets_lost:(c=i.remoteInboundRtp)==null?void 0:c.packetsLost,video_fraction_lost:(u=i.remoteInboundRtp)==null?void 0:u.fractionLost,video_ice_available_outgoing_bitrate:(l=i.candidatePair)==null?void 0:l.availableOutgoingBitrate,video_ice_bytes_received:(h=i.candidatePair)==null?void 0:h.bytesReceived,video_ice_bytes_sent:(p=i.candidatePair)==null?void 0:p.bytesSent,video_ice_nominated:(f=i.candidatePair)==null?void 0:f.nominated,video_ice_pair_id:(v=i.candidatePair)==null?void 0:v.id,video_ice_pair_rtt:(m=i.candidatePair)==null?void 0:m.currentRoundTripTime,video_ice_pair_state:(b=i.candidatePair)==null?void 0:b.state,video_ice_pair_writable:(y=i.candidatePair)==null?void 0:y.writable,video_recv_ping_requests:(_=i.candidatePair)==null?void 0:_.requestsReceived,video_recv_ping_responses:(E=i.candidatePair)==null?void 0:E.responsesReceived,video_sent_ping_requests_before_first_response:(z=i.candidatePair)==null?void 0:z.requestsSent,video_sent_ping_requests_total:(((T=i.candidatePair)==null?void 0:T.requestsSent)??0)+(((x=i.candidatePair)==null?void 0:x.consentRequestsSent)??0),video_sent_ping_responses:(R=i.candidatePair)==null?void 0:R.responsesSent,video_local_candidate_type:(A=i.localCandidate)==null?void 0:A.candidateType,video_local_ip:((D=i.localCandidate)==null?void 0:D.ip)||((P=i.localCandidate)==null?void 0:P.address),video_local_network_type:(K=i.localCandidate)==null?void 0:K.networkType,video_local_port:(H=i.localCandidate)==null?void 0:H.port,video_local_protocol:(J=i.localCandidate)==null?void 0:J.protocol,video_remote_candidate_type:(X=i.remoteCandidate)==null?void 0:X.candidateType,video_remote_ip:((ue=i.remoteCandidate)==null?void 0:ue.ip)||((q=i.remoteCandidate)==null?void 0:q.address),video_remote_port:(ne=i.remoteCandidate)==null?void 0:ne.port,video_input_frame_rate:(ze=i.mediaSource)==null?void 0:ze.framesPerSecond,video_input_frame_width:(ct=i.mediaSource)==null?void 0:ct.width,video_input_frame_height:(ut=i.mediaSource)==null?void 0:ut.height}}function sg(i,e,t){var c,u,l,h,p,f,v,m,b,y,_,E,z,T,x,R,A,D,P,K,H,J,X,ue,q,ne,ze;const r=ng(e.video??{}),{video_input_frame_width:n,video_input_frame_height:s}=r,a=Y((c=i.video)==null?void 0:c.frameWidth),o=Y((u=i.video)==null?void 0:u.frameHeight),d=a<Number(n)||o<Number(s);return{...r,video_send_k_bitrate:Y((l=i.video)==null?void 0:l.sendBitrate)/1e3,video_send_frame_rate:Y((h=i.video)==null?void 0:h.framesPerSecond),video_encode_avg_time:Y((p=i.video)==null?void 0:p.frameEncodeAvgTime),video_encoder_output_frame_rate:Y((f=i.video)==null?void 0:f.framesEncodedPerSecond),video_encoded_frame_width:Y((v=i.video)==null?void 0:v.frameWidth),video_encoded_frame_height:Y((m=i.video)==null?void 0:m.frameHeight),video_encoded_key_frames:Y((b=i.video)==null?void 0:b.keyFramesEncoded),video_delta_time:Y((y=i.video)==null?void 0:y.deltaTime,2e3),video_packets_sent:Y((_=i.video)==null?void 0:_.packetsSent),video_nack_count:Y((E=i.video)==null?void 0:E.nackCount),video_fir_count:Y((z=i.video)==null?void 0:z.firCount),video_pli_count:Y((T=i.video)==null?void 0:T.pliCount),video_packets_lost:Y((x=i.video)==null?void 0:x.packetsLost),video_packets_lost_percent:(R=i.video)==null?void 0:R.packetsLostPercent,video_codec:(A=i.video)==null?void 0:A.codec,video_duration:(D=i.video)==null?void 0:D.deltaTime,video_frame_rate_compliance:t!=null&&t.idealFrameRate?Math.min(Y((P=i.video)==null?void 0:P.framesPerSecond)/t.idealFrameRate,1)*100:On,video_bitrate_compliance:t!=null&&t.idealBitrate?Math.min(Y((K=i.video)==null?void 0:K.sendBitrate)/t.idealBitrate,1)*100:On,video_resolution_downgrade:d,...rg(e.audio??{}),audio_send_k_bitrate:Y((H=i.audio)==null?void 0:H.sendBitrate)/1e3,audio_send_channels:Y((J=i.audio)==null?void 0:J.channels),audio_packets_sent:Y((X=i.audio)==null?void 0:X.packetsSent),audio_packets_lost:Y((ue=i.audio)==null?void 0:ue.packetsLost),audio_packets_lost_percent:(q=i.audio)==null?void 0:q.packetsLostPercent,audio_codec:(ne=i.audio)==null?void 0:ne.codec,audio_delta_energy:(ze=i.audio)==null?void 0:ze.deltaAudioEnergy}}function og(i){return{video_send_k_bitrate:i.video.sendBitrate/1e3,video_send_frame_rate:i.video.framesPerSecond,video_encoded_frame_width:i.video.frameWidth,video_encoded_frame_height:i.video.frameHeight,video_encoded_key_frames:i.video.keyFramesEncoded,video_send_speed:i.video.sendSpeed/1e3,video_gop_size:i.video.gopSize,video_codec:i.video.codec,video_duration:0,audio_send_k_bitrate:i.audio.sendBitrate/1e3,audio_codec:i.audio.codec,audio_send_channels:i.audio.channels,audio_send_sample_rate:i.audio.sampleRate}}const ag="42001f",cg="42e01f",ug=i=>{var t;if(!Cs)return;const e=(t=i.rtp.filter(r=>r.codec==="opus")[0])==null?void 0:t.payload;e&&i.fmtp.forEach(r=>{r.payload===e&&(r.config="minptime=10;useinbandfec=1")})},dg=i=>{i.ext&&(Tu||xi)&&(i.ext=i.ext.filter(e=>{var t;return!((t=e.uri)!=null&&t.includes("video-orientation"))}))};function hg(i,e){i==null||i.rtp.forEach(({codec:t,payload:r})=>{if(["vp8","h264"].includes(t.toLocaleLowerCase())){const n=i.fmtp.find(s=>s.payload===r);if(n){if(n.config.includes("x-google-max-bitrate")||n.config.includes("x-google-start-bitrate")||n.config.includes("x-google-min-bitrate"))return;n.config=[...n.config.split(";"),`x-google-min-bitrate=${e*.4}`,`x-google-start-bitrate=${e}`].join(";")}else i.fmtp.push({payload:r,config:`x-google-min-bitrate=${e*.4};x-google-start-bitrate=${e}`})}})}function Ha(i,e){if(!Array.isArray(i.fmtp)||!Array.isArray(i.rtp))return;const t=i.fmtp.find(a=>a.config&&a.config.includes(ag)),r=i.fmtp.find(a=>a.config&&a.config.includes(cg));if(!t||!r)return;const n=i.rtp.findIndex(a=>a.payload===t.payload),s=i.rtp.findIndex(a=>a.payload===r.payload);if(n!==-1&&s!==-1){if(e==="hardware"){if(s<n){const a=i.rtp[s];i.rtp[s]=i.rtp[n],i.rtp[n]=a}}else if(n<s){const a=i.rtp[n];i.rtp[n]=i.rtp[s],i.rtp[s]=a}}i.payloads=i.rtp.map(a=>a.payload).join(" ")}const lg=()=>typeof window>"u",Pe={},or=async i=>{const e=new RTCPeerConnection({sdpSemantics:"unified-plan"});e.addTransceiver("video",{direction:i});const t=await e.createOffer();return e.close(),t.sdp.toLowerCase()};function $a(i){const e=i.split(`
69
- `);let t=!1;for(const r of e)if(r.includes("level-asymmetry-allowed=1")&&r.includes("packetization-mode=1")&&r.includes("profile-level-id=42e0")){t=!0;break}if(t){const r=navigator.userAgent.toLowerCase();let n=!1;const s=[/miuibrowser/,/70.*HeyTapBrowser/i];for(const a of s)a.test(r)&&(n=!0);return!n}return!1}const pg=async()=>{let i=await or("sendonly");return navigator.userAgent.includes("VivoBrowser")&&(i=await or("sendonly")),Pe.h264encode=$a(i),Pe.vp8encode=i.indexOf("vp8")>-1,Pe},fg=async()=>{let i=await or("recvonly");return navigator.userAgent.includes("VivoBrowser")&&(i=await or("recvonly")),Pe.h264decode=$a(i),Pe.vp8decode=i.indexOf("vp8")>-1,Pe},mg=async()=>{if(typeof Pe.h264encode>"u")try{await pg()}catch{return!1}return Pe.h264encode||!1},_g=async()=>{if(typeof Pe.h264decode>"u")try{await fg()}catch{return!1}return Pe.h264decode||!1},le=new st("PCConnect"),ss=class ss{constructor(e,t,r){this._pc=null,this._ms=new MediaStream,this._signalUrl="",this._videoTransceiver=null,this._audioTransceiver=null,this._opts=void 0,this._sessionId=Date.now(),this._signalUrl=e,this._opts=t,this._onConnectStateChange=r}get isPushing(){var e,t,r,n;return!!((t=(e=this._videoTransceiver)==null?void 0:e.sender)!=null&&t.track||(n=(r=this._audioTransceiver)==null?void 0:r.sender)!=null&&n.track)}get videoSenderTrackStats(){var e,t,r,n;return{track_enabled:(t=(e=this._videoTransceiver)==null?void 0:e.sender.track)==null?void 0:t.enabled,track_muted:(n=(r=this._videoTransceiver)==null?void 0:r.sender.track)==null?void 0:n.muted}}get pushUrl(){return this._signalUrl}get sessionId(){return this._sessionId}async getSdpWithSdp({url:e,offer:t,isReconnect:r}){var s;return await ja(e,{method:"POST",mode:"cors",body:JSON.stringify({sessionId:""+this._sessionId,version:"1.0-html",localSdp:t,metadata:{platform:"Web"}})},{...this._opts,timeout:r?10*Io:(s=this._opts)==null?void 0:s.timeout})}async getCustomRTMAnswerSdp(e){var t,r;try{const n=await((r=(t=De.instance).getCustomRTMAnswerSdp)==null?void 0:r.call(t,e));return n?{code:200,message:"success",remoteSdp:n}:{code:400,message:"getCustomRTMAnswerSdp return empty sdp",remoteSdp:null}}catch{return{code:500,message:"getCustomRTMAnswerSdp error",remoteSdp:null}}}async publish(e,t,r){const n=new RTCPeerConnection;this._pc=n,this._bindRTCEvent();const s=e.filter(u=>(u==null?void 0:u.kind)==="audio")[0],a=e.filter(u=>(u==null?void 0:u.kind)==="video")[0];s&&this._ms.addTrack(s),a&&this._ms.addTrack(a),this._audioTransceiver=n.addTransceiver(s||"audio",{direction:"sendonly",sendEncodings:[{maxBitrate:t[0]}],streams:[this._ms]}),le.log("add track to pc,",s),this._videoTransceiver=n.addTransceiver(a||"video",{direction:"sendonly",sendEncodings:[{maxBitrate:t[1]}],streams:[this._ms]}),le.log("add track to pc,",a);const o=await n.createOffer();le.groupCollapsed("local offer"),le.log(o.sdp),await n.setLocalDescription(o);let d;if(De.instance.getCustomRTMAnswerSdp?d=await this.getCustomRTMAnswerSdp(o):d=await this.getSdpWithSdp({url:this._signalUrl,offer:o,isReconnect:r==null?void 0:r.isReconnect}),(d==null?void 0:d.code)!==200)throw{code:d.code,message:d.message};le.log("remote answer:"),le.log(d.remoteSdp.sdp);const c=sr.parse(d.remoteSdp.sdp);if(c.media.forEach(u=>{var l;(l=u.fingerprint)!=null&&l.hash&&(u.fingerprint.hash=u.fingerprint.hash.toUpperCase()),u.type==="audio"?ug(u):u.type==="video"&&(dg(u),Ha(u,"software"),hg(u,t[1]))}),d.remoteSdp.sdp=sr.write(c),le.log("remote answer modified"),le.log(d.remoteSdp.sdp),le.groupEnd(),n.connectionState==="closed"){le.log("PeerConnection is closed, skipping setRemoteDescription");return}O(I.PUSH_SDP_INFO,{offer_sdp:o.sdp,answer_sdp:d.remoteSdp.sdp}),await n.setRemoteDescription(d.remoteSdp)}updateVideoEncodeType(e){var s,a;const t=this._pc,r=(s=t==null?void 0:t.localDescription)==null?void 0:s.sdp,n=(a=t==null?void 0:t.remoteDescription)==null?void 0:a.sdp;if(r&&n){const o=sr.parse(n);o.media.forEach(d=>{d.type==="video"&&Ha(d,e)}),t.setLocalDescription(t.localDescription),t.setRemoteDescription({type:"answer",sdp:sr.write(o)})}}async updatePublish(e,t){var s,a;let r;t==="video"?r=this._videoTransceiver:r=this._audioTransceiver;const n=(s=r==null?void 0:r.sender)==null?void 0:s.track;(n==null?void 0:n.id)!==(e==null?void 0:e.id)&&(await((a=r==null?void 0:r.sender)==null?void 0:a.replaceTrack(e)),le.log(`replace ${t} track done! ${n==null?void 0:n.label} -> ${e==null?void 0:e.label}`))}applyBitrate(e,t,r){var a,o,d;const n=t==="video"?(a=this._videoTransceiver)==null?void 0:a.sender:(o=this._audioTransceiver)==null?void 0:o.sender;if(!n)return;const s=n.getParameters();s.encodings=(d=s.encodings)!=null&&d.length?s.encodings:[{}],r?s.encodings[0].minBitrate=e:s.encodings[0].maxBitrate=e,n.setParameters(s),le.log(`set bitrate for ${t}, ${e} bps, min:${r}`)}unpublish(){var e,t;(e=this._pc)==null||e.getSenders().forEach(r=>{var n;(n=this._pc)==null||n.removeTrack(r)}),(t=this._pc)==null||t.close(),this._audioTransceiver=null,this._videoTransceiver=null,this._pc=null,le.log("close pc!")}getStats(){var e,t;return Mn((e=this._audioTransceiver)==null?void 0:e.sender,(t=this._videoTransceiver)==null?void 0:t.sender)}getStatsSnapshoot(e){var t,r;return ig(e||100,(t=this._audioTransceiver)==null?void 0:t.sender,(r=this._videoTransceiver)==null?void 0:r.sender)}_bindRTCEvent(){const e=this._pc;e==null||e.addEventListener("connectionstatechange",()=>{le.log("onconnectionstatechange:",e.connectionState),this._onConnectStateChange(e.connectionState)})}};ss.isSupported=async()=>{try{return lg()||!window.RTCPeerConnection||!window.RTCPeerConnection.prototype.addTransceiver||!window.RTCPeerConnection.prototype.createDataChannel?!1:await _g()&&await mg()}catch{return!1}};let ar=ss;var ot=(i=>(i.OnError="onerror",i.OnConnectClosed="onconnectclosed",i.OnFirstFramePushed="onfirstframepushed",i))(ot||{}),at=(i=>(i.Video="video",i.Audio="audio",i))(at||{}),Se=(i=>(i.Init="init",i.AvExist="avexist",i.VideoFrame="videoframe",i.MockVideoEncode="mockvideoencode",i.AudioFrame="audioframe",i.AdjustBitrate="adjustbitrate",i.Publish="publish",i.UnPublish="unpublish",i.Download="download",i.GetStats="getstats",i.EncodeConfig="encodeconfig",i))(Se||{}),bt=(i=>(i.Ready="ready",i.Error="error",i.FirstFramePushed="firstframepushed",i.Flvfile="flvfile",i.STATS="stats",i.Close="close",i))(bt||{}),Pn={exports:{}},qa;function gg(){return qa||(qa=1,function(i){var e=Object.prototype.hasOwnProperty,t="~";function r(){}Object.create&&(r.prototype=Object.create(null),new r().__proto__||(t=!1));function n(d,c,u){this.fn=d,this.context=c,this.once=u||!1}function s(d,c,u,l,h){if(typeof u!="function")throw new TypeError("The listener must be a function");var p=new n(u,l||d,h),f=t?t+c:c;return d._events[f]?d._events[f].fn?d._events[f]=[d._events[f],p]:d._events[f].push(p):(d._events[f]=p,d._eventsCount++),d}function a(d,c){--d._eventsCount===0?d._events=new r:delete d._events[c]}function o(){this._events=new r,this._eventsCount=0}o.prototype.eventNames=function(){var c=[],u,l;if(this._eventsCount===0)return c;for(l in u=this._events)e.call(u,l)&&c.push(t?l.slice(1):l);return Object.getOwnPropertySymbols?c.concat(Object.getOwnPropertySymbols(u)):c},o.prototype.listeners=function(c){var u=t?t+c:c,l=this._events[u];if(!l)return[];if(l.fn)return[l.fn];for(var h=0,p=l.length,f=new Array(p);h<p;h++)f[h]=l[h].fn;return f},o.prototype.listenerCount=function(c){var u=t?t+c:c,l=this._events[u];return l?l.fn?1:l.length:0},o.prototype.emit=function(c,u,l,h,p,f){var v=t?t+c:c;if(!this._events[v])return!1;var m=this._events[v],b=arguments.length,y,_;if(m.fn){switch(m.once&&this.removeListener(c,m.fn,void 0,!0),b){case 1:return m.fn.call(m.context),!0;case 2:return m.fn.call(m.context,u),!0;case 3:return m.fn.call(m.context,u,l),!0;case 4:return m.fn.call(m.context,u,l,h),!0;case 5:return m.fn.call(m.context,u,l,h,p),!0;case 6:return m.fn.call(m.context,u,l,h,p,f),!0}for(_=1,y=new Array(b-1);_<b;_++)y[_-1]=arguments[_];m.fn.apply(m.context,y)}else{var E=m.length,z;for(_=0;_<E;_++)switch(m[_].once&&this.removeListener(c,m[_].fn,void 0,!0),b){case 1:m[_].fn.call(m[_].context);break;case 2:m[_].fn.call(m[_].context,u);break;case 3:m[_].fn.call(m[_].context,u,l);break;case 4:m[_].fn.call(m[_].context,u,l,h);break;default:if(!y)for(z=1,y=new Array(b-1);z<b;z++)y[z-1]=arguments[z];m[_].fn.apply(m[_].context,y)}}return!0},o.prototype.on=function(c,u,l){return s(this,c,u,l,!1)},o.prototype.once=function(c,u,l){return s(this,c,u,l,!0)},o.prototype.removeListener=function(c,u,l,h){var p=t?t+c:c;if(!this._events[p])return this;if(!u)return a(this,p),this;var f=this._events[p];if(f.fn)f.fn===u&&(!h||f.once)&&(!l||f.context===l)&&a(this,p);else{for(var v=0,m=[],b=f.length;v<b;v++)(f[v].fn!==u||h&&!f[v].once||l&&f[v].context!==l)&&m.push(f[v]);m.length?this._events[p]=m.length===1?m[0]:m:a(this,p)}return this},o.prototype.removeAllListeners=function(c){var u;return c?(u=t?t+c:c,this._events[u]&&a(this,u)):(this._events=new r,this._eventsCount=0),this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prefixed=t,o.EventEmitter=o,i.exports=o}(Pn)),Pn.exports}var vg=gg();const yg=ae(vg);var cr=(i=>(i[i.RTMP_INIT_FAIL=3e3]="RTMP_INIT_FAIL",i[i.AUDIO_ENCODER_INIT_FAIL=3001]="AUDIO_ENCODER_INIT_FAIL",i[i.AUDIO_RRNOISE_INIT_FAIL=3002]="AUDIO_RRNOISE_INIT_FAIL",i[i.AUDIO_ENCODE_FAIL=3003]="AUDIO_ENCODE_FAIL",i[i.VIDEO_ENCODE_CONFIGURE_FAIL=3004]="VIDEO_ENCODE_CONFIGURE_FAIL",i[i.VIDEO_ENCODE_FAIL=3005]="VIDEO_ENCODE_FAIL",i[i.WTP_OPEN_FAIL=3006]="WTP_OPEN_FAIL",i[i.WTP_CONNECT_FAIL=3007]="WTP_CONNECT_FAIL",i[i.WORKER_ERROR=3008]="WORKER_ERROR",i))(cr||{});class Ka extends Error{constructor(e,t,r){super(),this.code=e,this.message=t,r&&(this.ext=r),this.toJson=()=>({code:this.code,message:this.message,ext:this.ext})}}function Wa(i,e,t){return new Ka(i,e,t)}let Gt=(We=class{constructor(e){this.group=(...t)=>{this._enabled&&console.group(`[${this._prefix}]: `,...t)},this.groupCollapsed=(...t)=>{this._enabled&&console.groupCollapsed(`[${this._prefix}]: `,...t)},this.groupEnd=()=>{this._enabled&&console.groupEnd()},this.log=(...t)=>{this._enabled&&console.log(`[${this._prefix}]: `,...t)},this.warn=(...t)=>{this._enabled&&console.warn(`[${this._prefix}]: `,...t)},this.error=(...t)=>{this._enabled&&console.error(`[${this._prefix}]: `,...t)},this.table=(...t)=>{this._enabled&&console.table(...t)},this._prefix=e}get _enabled(){return We.enable}get _enableLong(){return We.enableLong}get long(){return this._enableLong}},We.enable=!1,We.enableLong=!1,We);const Ee=new Gt("RTMP_Capture");class bg{constructor(e){this._videoFirstframeCaptured=!1,this._audioFirstframeCaptured=!1,this._videoProcessorReader=null,this._audioProcessorReader=null,this._bridge=e}get audioTrack(){return this._bridge.audioMsTrack}get videoTrack(){return this._bridge.videoMsTrack}start(){this._startVideoCapture(),this._startAudioCapture()}restartCapture(e){if(Ee.log(`replace ${e} track`),e===at.Video){if(this._videoProcessorReader){this._videoProcessorReader.cancel().finally(()=>{this._startVideoCapture()});return}this._startVideoCapture();return}if(this._audioProcessorReader){this._audioProcessorReader.cancel().finally(()=>{this._startAudioCapture()});return}this._startAudioCapture()}async _startVideoCapture(){var n;if(!this.videoTrack){Ee.log("no video track to capture");return}if(this.videoTrack.readyState!=="live"){Ee.warn("video track not live");return}const e=new MediaStreamTrackProcessor(this.videoTrack);e.track=this.videoTrack;const t=e.readable.getReader();this._videoProcessorReader=t,Ee.log("start capture video frame",this.videoTrack);let r;for(;;){r&&clearInterval(r),r=setTimeout(()=>{Ee.warn("long time no capture output"),this._bridge._postMockVideoEncodeFlag()},1500);const s=await t.read();if(clearInterval(r),this._videoFirstframeCaptured||(this._videoFirstframeCaptured=!0,Ee.log("video first frame captured")),s.done||!s.value){(n=s.value)==null||n.close();break}this._bridge._postVideoFrame(s.value,this.videoTrack.getSettings())}clearInterval(r),this._videoFirstframeCaptured=!1,this._videoProcessorReader=null,Ee.log("video track read done!",e.track)}async _startAudioCapture(){if(!this.audioTrack){Ee.log("no audio track to capture");return}if(this.audioTrack.readyState!=="live"){Ee.warn("audio track not live");return}const e=new MediaStreamTrackProcessor(this.audioTrack);e.track=this.audioTrack;const t=e.readable.getReader();for(this._audioProcessorReader=t,Ee.log("start capture audio frame");;){const r=await t.read();if(this._audioFirstframeCaptured||(this._audioFirstframeCaptured=!0,Ee.log("audio first frame captured")),r.done||!r.value)break;this._bridge._postAudioFrame(r.value,this.audioTrack.getSettings())}this._audioFirstframeCaptured=!1,this._audioProcessorReader=null,Ee.log("audio track read done!",e.track)}destroy(){var e,t;(e=this._audioProcessorReader)==null||e.cancel().catch(()=>{}),(t=this._videoProcessorReader)==null||t.cancel().catch(()=>{})}}const Ja='(function(){"use strict";var l=(i=>(i.OnVideoCaptured="onvideocaptured",i.OnAudioCaptured="onaudiocaptured",i.OnVideoCaptureNoOutput="onvideocapturenooutput",i.OnVideoEncoded="onvideoencoded",i.OnAudioEncoded="onaudioencoded",i.OnEncodedFrame="onencodedframe",i.OnPacketed="onpacketed",i.OnUpstreamFeedback="onupstreamfeedback",i.OnBitrateChanged="onbitratechanged",i))(l||{}),O=(i=>(i.OnError="onerror",i.OnConnectClosed="onconnectclosed",i.OnFirstFramePushed="onfirstframepushed",i))(O||{}),I=(i=>(i.Video="video",i.Audio="audio",i))(I||{}),v=(i=>(i.Init="init",i.AvExist="avexist",i.VideoFrame="videoframe",i.MockVideoEncode="mockvideoencode",i.AudioFrame="audioframe",i.AdjustBitrate="adjustbitrate",i.Publish="publish",i.UnPublish="unpublish",i.Download="download",i.GetStats="getstats",i.EncodeConfig="encodeconfig",i))(v||{}),w=(i=>(i.Ready="ready",i.Error="error",i.FirstFramePushed="firstframepushed",i.Flvfile="flvfile",i.STATS="stats",i.Close="close",i))(w||{});function $(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}var k={exports:{}},U;function q(){return U||(U=1,function(i){var t=Object.prototype.hasOwnProperty,e="~";function s(){}Object.create&&(s.prototype=Object.create(null),new s().__proto__||(e=!1));function r(u,a,n){this.fn=u,this.context=a,this.once=n||!1}function o(u,a,n,h,m){if(typeof n!="function")throw new TypeError("The listener must be a function");var g=new r(n,h||u,m),f=e?e+a:a;return u._events[f]?u._events[f].fn?u._events[f]=[u._events[f],g]:u._events[f].push(g):(u._events[f]=g,u._eventsCount++),u}function _(u,a){--u._eventsCount===0?u._events=new s:delete u._events[a]}function c(){this._events=new s,this._eventsCount=0}c.prototype.eventNames=function(){var a=[],n,h;if(this._eventsCount===0)return a;for(h in n=this._events)t.call(n,h)&&a.push(e?h.slice(1):h);return Object.getOwnPropertySymbols?a.concat(Object.getOwnPropertySymbols(n)):a},c.prototype.listeners=function(a){var n=e?e+a:a,h=this._events[n];if(!h)return[];if(h.fn)return[h.fn];for(var m=0,g=h.length,f=new Array(g);m<g;m++)f[m]=h[m].fn;return f},c.prototype.listenerCount=function(a){var n=e?e+a:a,h=this._events[n];return h?h.fn?1:h.length:0},c.prototype.emit=function(a,n,h,m,g,f){var F=e?e+a:a;if(!this._events[F])return!1;var d=this._events[F],C=arguments.length,B,p;if(d.fn){switch(d.once&&this.removeListener(a,d.fn,void 0,!0),C){case 1:return d.fn.call(d.context),!0;case 2:return d.fn.call(d.context,n),!0;case 3:return d.fn.call(d.context,n,h),!0;case 4:return d.fn.call(d.context,n,h,m),!0;case 5:return d.fn.call(d.context,n,h,m,g),!0;case 6:return d.fn.call(d.context,n,h,m,g,f),!0}for(p=1,B=new Array(C-1);p<C;p++)B[p-1]=arguments[p];d.fn.apply(d.context,B)}else{var fe=d.length,R;for(p=0;p<fe;p++)switch(d[p].once&&this.removeListener(a,d[p].fn,void 0,!0),C){case 1:d[p].fn.call(d[p].context);break;case 2:d[p].fn.call(d[p].context,n);break;case 3:d[p].fn.call(d[p].context,n,h);break;case 4:d[p].fn.call(d[p].context,n,h,m);break;default:if(!B)for(R=1,B=new Array(C-1);R<C;R++)B[R-1]=arguments[R];d[p].fn.apply(d[p].context,B)}}return!0},c.prototype.on=function(a,n,h){return o(this,a,n,h,!1)},c.prototype.once=function(a,n,h){return o(this,a,n,h,!0)},c.prototype.removeListener=function(a,n,h,m){var g=e?e+a:a;if(!this._events[g])return this;if(!n)return _(this,g),this;var f=this._events[g];if(f.fn)f.fn===n&&(!m||f.once)&&(!h||f.context===h)&&_(this,g);else{for(var F=0,d=[],C=f.length;F<C;F++)(f[F].fn!==n||m&&!f[F].once||h&&f[F].context!==h)&&d.push(f[F]);d.length?this._events[g]=d.length===1?d[0]:d:_(this,g)}return this},c.prototype.removeAllListeners=function(a){var n;return a?(n=e?e+a:a,this._events[n]&&_(this,n)):(this._events=new s,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=e,c.EventEmitter=c,i.exports=c}(k)),k.exports}var z=q(),H=$(z);const N=class N{constructor(t){this.group=(...e)=>{this._enabled&&console.group(`[${this._prefix}]: `,...e)},this.groupCollapsed=(...e)=>{this._enabled&&console.groupCollapsed(`[${this._prefix}]: `,...e)},this.groupEnd=()=>{this._enabled&&console.groupEnd()},this.log=(...e)=>{this._enabled&&console.log(`[${this._prefix}]: `,...e)},this.warn=(...e)=>{this._enabled&&console.warn(`[${this._prefix}]: `,...e)},this.error=(...e)=>{this._enabled&&console.error(`[${this._prefix}]: `,...e)},this.table=(...e)=>{this._enabled&&console.table(...e)},this._prefix=t}get _enabled(){return N.enable}get _enableLong(){return N.enableLong}get long(){return this._enableLong}};N.enable=!1,N.enableLong=!1;let E=N;function S(i){i=i.filter(Boolean);const t=new Uint8Array(i.reduce((s,r)=>s+r.byteLength,0));let e=0;return i.forEach(s=>{t.set(s,e),e+=s.byteLength}),t}const A={codec:"avc1.4DE033",MaxCachedFrameSize:100,RealSpeedPercent:.8,UplinkBitrateCheckInterval:60*1e3,VideoBitrateDefault:1e6,AudioBitrateDefault:68e3,gopSize:90,sampleRate:48e3,channel:2,audioEncoderPath:"https://lf-unpkg.volccdn.com/obj/vcloudfe/sdk/Web_push/1.0.1/1735619140327/pcm2aac.js",audioEncoderWasmPath:"https://lf-unpkg.volccdn.com/obj/vcloudfe/sdk/Web_push/1.0.2/1735619208418/pcm2aac.wasm",ignoreRelPublish:!1},T=new E("RTMP_AudioEncoder");class j{constructor(t){this._encodedFrameCount=0,this._ready=!1,this._lastFrame=null,this._aacOutput=(e,s)=>{const r=this._module.HEAPU8.subarray(e,e+s);if(!this._lastFrame)return;this._encodedFrameCount++;const{props:o}=this._lastFrame,_={buffer:new Uint8Array(r),props:{timestamp:parseInt(o.timestamp/1e3),originTs:parseInt(o.timestamp/1e3)}};this._core.emit(l.OnAudioEncoded,_)},this._core=t}async init(){const t=await fetch(A.audioEncoderPath).then(_=>_.text());new Function(`self.exports={};${t}`)();const e=self.exports.m;let s,r;const o=new Promise((_,c)=>{r=_,s=c});return e({instantiateWasm:function(_,c){fetch(A.audioEncoderWasmPath).then(u=>u.arrayBuffer()).then(u=>WebAssembly.instantiate(u,_)).then(function(u){return c(u.instance)}).then(()=>{r(),T.log("aac module inited")}).catch(u=>{s(u)})}}).then(_=>{const c=_.addFunction(this._aacOutput,"vii");_._init_callback(c),this._module=_}).catch(s),o}rnnoise(t){var s;const e=t.length;for(let r=0;r<e;r++)t[r]=t[r]*32768;(s=this._rnnoiseModule)==null||s.processFrame(t);for(let r=0;r<e;r++)t[r]=t[r]/32768}updateConfigure(){this._module._flush(),this._module._free_encoder(),this._ready=!1}encode(t){if(!this._ready){const o=this._start_encoder();if(o<0)throw new Error(`init aac encoder error, code:${o}`)}this._lastFrame=t;const e=t.buffer.buffer,s=this._module._malloc(e.byteLength);this._module.HEAPU8.subarray(s,s+e.byteLength).set(new Uint8Array(e));const r=this._module._encode_one_frame(s);if(r<0)throw new Error(`encode aac frame error, code:${r}`)}_start_encoder(){const t=this._core.getSetting(),e=this._module._init_encoder(t.sampleRate,t.channel,t.audioBitrate);if(e<0)return e;this._ready=!0,T.log(`init encoder: sampleRate=${t.sampleRate}, channel:${t.channel}, bitrate:${t.audioBitrate}`)}destroy(){var t;(t=this._module)==null||t._free_encoder()}}const P=1024;class M{constructor(){this._queue=[],this._sampleCount=0}compose(t){if(this._queue.push(t),this._sampleCount+=t.data.audioData.numberOfFrames,this._sampleCount>=P)return this._doCompose()}_doCompose(){const t=new Float32Array(P);let e=0,s=P;const r=this._queue[0];for(;;){const o=this._queue[0];if(!o)break;const _=Math.min(s,o.data.audioData.numberOfFrames-o.offset,480),c=o.data.buffer.slice(o.offset,o.offset+_);if(o.offset+=_,o.offset>=o.data.audioData.numberOfFrames&&this._queue.shift(),s-=_,this._sampleCount-=_,t.set(c,e),e+=_,s<=0)break}return{buffer:t,props:{timestamp:r.data.audioData.timestamp,sampleRate:r.data.audioData.sampleRate,numberOfChannels:r.data.audioData.numberOfChannels}}}}var y=(i=>(i[i.RTMP_INIT_FAIL=3e3]="RTMP_INIT_FAIL",i[i.AUDIO_ENCODER_INIT_FAIL=3001]="AUDIO_ENCODER_INIT_FAIL",i[i.AUDIO_RRNOISE_INIT_FAIL=3002]="AUDIO_RRNOISE_INIT_FAIL",i[i.AUDIO_ENCODE_FAIL=3003]="AUDIO_ENCODE_FAIL",i[i.VIDEO_ENCODE_CONFIGURE_FAIL=3004]="VIDEO_ENCODE_CONFIGURE_FAIL",i[i.VIDEO_ENCODE_FAIL=3005]="VIDEO_ENCODE_FAIL",i[i.WTP_OPEN_FAIL=3006]="WTP_OPEN_FAIL",i[i.WTP_CONNECT_FAIL=3007]="WTP_CONNECT_FAIL",i[i.WORKER_ERROR=3008]="WORKER_ERROR",i))(y||{});class W extends Error{constructor(t,e,s){super(),this.code=t,this.message=e,s&&(this.ext=s),this.toJson=()=>({code:this.code,message:this.message,ext:this.ext})}}function b(i,t,e){return new W(i,t,e)}class G{constructor(t){this._audioFrameQueue=new M,this.encode=e=>{const s=new Float32Array(e.numberOfFrames);e.copyTo(s,{planeIndex:0,frameOffset:0,frameCount:e.numberOfFrames});const r=this._audioFrameQueue.compose({offset:0,data:{audioData:e,buffer:s}});if(r)try{this._encoder.encode(r)}catch(o){this._core.emit(O.OnError,b(y.AUDIO_ENCODE_FAIL,o.message))}},this._core=t,this._encoder=new j(t)}async init(){try{await this._encoder.init()}catch(t){throw b(y.AUDIO_ENCODER_INIT_FAIL,t.message)}}setConfiguration(t){const e=Object.assign({},this._core.getSetting(),{audioBitrate:t});this._core.updateSetting(e),this._encoder.updateConfigure()}destroy(){this._encoder.destroy()}}const x=new E("RTMP_VEncoder");class J{constructor(t){this._encoder=null,this._queue=[],this._encodeTimer=0,this._loopEncodeTimer=0,this._frameIndex=0,this._gopSize=0,this._encodedFrameCount=0,this._lastFrame=null,this._startTimer=()=>{this._clearEncodeTimer(),this._encodeTimer=setInterval(()=>{const e=this._queue.shift();if(!(!e||!this._encoder||this._encoder.state==="closed"))try{this._encoder.encode(e,{keyFrame:this._frameIndex%this._gopSize===0}),this._frameIndex++,this._lastFrame&&this._lastFrame.close(),this._lastFrame=e}catch(s){x.log("encode frame error",s)}},5)},this._core=t}configurate(t){return this._gopSize=t.gopSize,this._encoder?this.flush().then(()=>this._configure(t)):this._configure(t)}_configure(t){return this._clearEncodeTimer(),x.log("start config encoder",t),VideoEncoder.isConfigSupported(t).then(e=>{if(!e.supported)throw new Error(`VideoEncoder not support config, ${JSON.stringify(t)}`);this._encoder=new VideoEncoder({output:(s,r)=>{const o=new Uint8Array(s.byteLength);s.copyTo(o),this._emitFrame(o,s,r)},error:s=>{this._clearEncodeTimer(),this._core.emit(O.OnError,b(y.VIDEO_ENCODE_FAIL,s.message))}}),this._encoder.configure(t),x.log("encoder configured")}).then(this._startTimer).catch(e=>{throw b(y.VIDEO_ENCODE_CONFIGURE_FAIL,e.message)})}_emitFrame(t,e,s){this._encodedFrameCount++,this._core.emit(l.OnVideoEncoded,{buffer:t,props:{byteLength:e.byteLength,duration:e.duration,timestamp:parseInt(e.timestamp/1e3),originTs:parseInt(e.timestamp/1e3),type:e.type},cfg:s.decoderConfig})}_clearEncodeTimer(){clearInterval(this._encodeTimer)}_clearLoopEncodeTimer(){this._loopEncodeTimer&&clearInterval(this._loopEncodeTimer)}flush(){return this._encoder?this._encoder.flush().then(()=>{var t;this._clearEncodeTimer(),(t=this._encoder)==null||t.close(),this._frameIndex=0,this._encoder=null,x.log("encoder flush & closed")}).catch(t=>{console.log("encoder flush & close error:",t)}):Promise.resolve()}encode(t){this._clearLoopEncodeTimer(),this._queue.push(t)}startLoop(t){if(!this._lastFrame)return;const e=Math.floor(1e3/t*1e3);x.log("start encode last frame looped, ",t,"increment:",e),this._loopEncodeTimer=setInterval(()=>{if(!this._lastFrame)return;const s=new VideoFrame(this._lastFrame,{duration:e,timestamp:(this._lastFrame.timestamp||0)+e});this._queue.push(s)},Math.floor(1e3/t))}destroy(){this._queue.forEach(t=>t.close()),this._lastFrame&&this._lastFrame.close(),this._clearEncodeTimer(),this._clearLoopEncodeTimer(),this.flush()}}const Q=new E("RTMP_VideoEncode");class K{constructor(t){this._core=t,this._encoder=new J(t)}async setConfiguration(t={}){const e=Object.assign({},this._core.getSetting(),t),s={width:e.width,height:e.height,displayWidth:e.width,displayHeight:e.height,bitrate:e.videoBitrate,framerate:Math.floor(e.frameRate),codec:e.codec,gopSize:e.gopSize,hardwareAcceleration:e.hardwareAcceleration};this._core.updateSetting(e),Q.log("set Configuration:",s,t);try{await this._encoder.configurate(s)}catch(r){this._core.emit(O.OnError,r)}}encode(t){this._encoder.encode(t)}startLoopEncodeLastFrame(){this._encoder.startLoop(this._core.getSetting().frameRate)}flushEncoder(){this._encoder.flush()}destroy(){this._encoder.destroy()}}const V=new E("RTMP_AVSync");class Z{constructor(t){this._videoFrameGot=!1,this._videoBaseDts=0,this._audioBaseDts=0,this._videoNextDts=0,this._videoLastDts=0,this._audioNextDts=0,this._lastVideoReceived=0,this._core=t}get avExist(){return this._core.getSetting().hasVideo&&this._core.getSetting().hasAudio}get videoRefDuration(){return parseInt(1e3/this._core.getSetting().frameRate)}get audioRefDuration(){return parseInt(1024/this._core.getSetting().sampleRate*1e3)}addVideoFrame(t){this._videoFrameGot||(this._videoFrameGot=!0);const e=t.props;if(Math.abs(this._videoNextDts-e.timestamp-this._videoBaseDts)>1e3){const r=Date.now()-this._lastVideoReceived;this._videoNextDts=this._videoNextDts===this._audioNextDts?this._videoNextDts+this.videoRefDuration:this._audioNextDts||this._videoNextDts+r,this._videoBaseDts=this._videoNextDts-e.timestamp,V.warn(`video stream timestamp breaked! dts:${this._videoNextDts} -> ${e.timestamp}, videoBaseDts=${this._videoBaseDts}, deltaToLastFrame=${r}`)}e.timestamp=e.timestamp+this._videoBaseDts;const s=e.timestamp-this._videoLastDts;return s>100&&V.warn("video frame large gap",s),this._videoLastDts=this._videoNextDts=e.timestamp,V.long&&V.log(`V frame, dts: ${e.timestamp}, originDts:${e.originTs}, videoBaseDts=${this._videoBaseDts}, type=${e.type}, duration=${s}`),this._lastVideoReceived=Date.now(),this._core.emit(l.OnEncodedFrame,I.Video,t),{size:t.buffer.length,duration:s,key:t.props.type==="key"}}addAudioFrame(t){if(this.avExist&&!this._videoFrameGot)return;const e=t.props;return this._audioBaseDts||(this._audioBaseDts=e.timestamp-this._videoNextDts),Math.abs(e.timestamp-this._audioBaseDts-this._audioNextDts)>1e3&&(this._audioBaseDts=this._audioNextDts+this.audioRefDuration-e.timestamp,V.warn(`audio stream timestamp breaked! dts:${this._audioNextDts} -> ${e.timestamp}, audioBaseDts=${this._audioBaseDts}`)),this._audioNextDts=e.timestamp=e.timestamp-this._audioBaseDts,V.long&&V.log(`A frame, dts: ${e.timestamp}, originDts:${e.originTs}`),this._core.emit(l.OnEncodedFrame,I.Audio,t),{size:t.buffer.length,duration:this.audioRefDuration}}}class X{constructor(){this._videoSize=0,this._videoDuration=0,this._videoBitrate=0,this._frameCount=0,this._fps=0,this._videoEncodedCount=0,this._keyCount=0,this._audioSize=0,this._audioDuration=0,this._audioBitrate=0,this._audioEncodedCount=0}get videoStats(){return{sendBitrate:this._videoBitrate,framesPerSecond:this._fps,framesEncoded:this._videoEncodedCount,keyFramesEncoded:this._keyCount}}get audioStats(){return{sendBitrate:this._audioBitrate,framesEncoded:this._audioEncodedCount}}addVideoSample({size:t,duration:e,key:s}){this._videoEncodedCount++,this._videoSize+=t,this._videoDuration+=e,this._frameCount++,s&&this._keyCount++,this._videoDuration>=1e3&&(this._videoBitrate=Math.floor(this._videoSize/this._videoDuration*8e3),this._fps=this._frameCount,this._frameCount=0,this._videoSize=0,this._videoDuration=0)}addAudioSample({size:t,duration:e}){this._audioEncodedCount++,this._audioSize+=t,this._audioDuration+=e,this._audioDuration>=1e3&&(this._audioBitrate=Math.floor(this._audioSize/this._audioDuration*1e3),this._audioSize=0,this._audioDuration=0)}}const Y=new E("RTMP_EncodeController");class ee{constructor(t){this._analyse=new X,this._gotFrame=!1,this._OnVideoCaptured=(e,s)=>{this._gotFrame=!0,this._videoSettingChanged(s)&&(Y.log("video track setting changed!",s),this._core.updateSetting({width:s.width,height:s.height,frameRate:s.frameRate,vDeviceId:s.deviceId}),this._videoEncode.setConfiguration()),this._videoEncode.encode(e)},this._OnVideoCaptureNoOutput=()=>{this._videoEncode.startLoopEncodeLastFrame()},this._OnAudioCaptured=e=>{this._gotFrame=!0,this._audioEncode.encode(e)},this._OnVideoEncoded=e=>{const s=this._avSync.addVideoFrame(e);this._analyse.addVideoSample(s)},this._OnAudioEncoded=e=>{if(!e.buffer.length)return;const s=this._avSync.addAudioFrame(e);s&&this._analyse.addAudioSample(s)},this._OnUpstreamFeedback=e=>{this._videoEncode.setConfiguration(e)},this._OnBitrateChanged=(e,s)=>{this._gotFrame&&(e===I.Video&&this._videoEncode.setConfiguration({videoBitrate:s}),e===I.Audio&&this._audioEncode.setConfiguration(s))},this._core=t,this._audioEncode=new G(t),this._videoEncode=new K(t),this._avSync=new Z(t),this._bindEvents()}getStats(){return{video:this._analyse.videoStats,audio:this._analyse.audioStats}}init(){return this._audioEncode.init()}_bindEvents(){this._core.on(l.OnVideoCaptured,this._OnVideoCaptured),this._core.on(l.OnAudioCaptured,this._OnAudioCaptured),this._core.on(l.OnVideoCaptureNoOutput,this._OnVideoCaptureNoOutput),this._core.on(l.OnVideoEncoded,this._OnVideoEncoded),this._core.on(l.OnAudioEncoded,this._OnAudioEncoded),this._core.on(l.OnUpstreamFeedback,this._OnUpstreamFeedback),this._core.on(l.OnBitrateChanged,this._OnBitrateChanged)}_videoSettingChanged(t){const e=this._core.getSetting();return t.width!==e.width||t.height!==e.height||Math.floor(t.frameRate)!==Math.floor(e.frameRate)||t.deviceId!==e.vDeviceId}destroy(){this._videoEncode.destroy(),this._audioEncode.destroy()}}var L=(i=>(i[i.AUDIO=8]="AUDIO",i[i.VIDEO=9]="VIDEO",i[i.SCRIPT_DATA=18]="SCRIPT_DATA",i))(L||{});const te=10,ie=1,se=7,oe={96e3:0,48e3:3,44100:4,22050:7,16e3:8,8e3:11};function re(i){const t=(i[4]&3)+1;let e;const s=[],r=[];let o=6;const _=i[5]&31;let c;for(let n=0;n<_;n++){if(c=i[o]<<8|i[o+1],o+=2,!c)continue;const h=i.subarray(o,o+c);o+=c,s.push(h)}const u=i[o];o++;let a;for(let n=0;n<u;n++)a=i[o]<<8|i[o+1],o+=2,a&&(r.push(i.subarray(o,o+a)),o+=a);return{sps:e,spsArr:s,ppsArr:r,nalUnitSize:t}}class ne{constructor(){this._cfg={hasVideo:!1,hasAudio:!1,sampleRate:48e3,channelCount:1},this._hasAudioSeqHeader=!1,this._hasVideoSeqHeader=!1}setConfig(t){this._cfg=Object.assign(this._cfg,t)}genHeader(){const t=[70,76,86,1,(this._cfg.hasAudio?1:0)<<2|(this._cfg.hasVideo?1:0),0,0,0,9,0,0,0,0];return new Uint8Array(t)}genSeqTag(t,e){let s;t===8?(s=this._genAudioTagPaylod(0,e),this._hasAudioSeqHeader=!0):(s=this._genVideoTagPayload(0,e),this._hasVideoSeqHeader=!0);const r=this._genTagHeader(t,s.length,e.props.timestamp),o=r.length+s.length;return S([r,s,new Uint8Array([o>>>24,o>>>16,o>>>8,o])])}genFrameTag(t,e){let s;t===8?s=this._genAudioTagPaylod(1,e):s=this._genVideoTagPayload(1,e);const r=this._genTagHeader(t,s.length,e.props.timestamp),o=r.length+s.length;return S([r,s,new Uint8Array([o>>>24,o>>>16,o>>>8,o])])}_genTagHeader(t,e,s){return new Uint8Array([t,e>>>16,e>>>8,e,s>>>16,s>>>8,s,s>>>24,0,0,0])}_genAudioTagPaylod(t,e){return S(t===0?[this._genAudioTagHeader(),this._genAudioSequenceHeader()]:[this._genAudioTagHeader(),this._genAudioData(e)])}_genAudioTagHeader(){return new Uint8Array([te<<4|12|ie<<1|this._cfg.channelCount-1])}_genAudioSequenceHeader(){const t=4096|oe[this._cfg.sampleRate]<<7|this._cfg.channelCount<<3;return new Uint8Array([0,t>>8,t])}_genAudioData(t){const e=new Uint8Array(1+t.buffer.length);return e.set([1],0),e.set(t.buffer,1),e}_genVideoTagPayload(t,e){return S(t===0?[this._genVideoTagHeader(e),this._genVideoSequenceHeader(e)]:[this._genVideoTagHeader(e),this._genVideoData(e)])}_genVideoTagHeader(t){return new Uint8Array([(t.props.type==="key"?1:2)<<4|se,this._hasVideoSeqHeader?1:0,0,0,0])}_genVideoSequenceHeader(t){return new Uint8Array(t.cfg.description)}_genVideoData(t){if(t.props.type==="delta")return t.buffer;const e=re(new Uint8Array(t.cfg.description)),s=e.spsArr[0].length,r=e.ppsArr[0].length;return S([new Uint8Array([0,0,s>>8,s%256]),e.spsArr[0],new Uint8Array([0,0,r>>8,r%256]),e.ppsArr[0],t.buffer])}}const ae=new E("RTMP_Packet");class de{constructor(t){this._firstFrame=!0,this._flv=new ne,this._OnEncodedFrame=(e,s)=>{if(this._firstFrame){const o=this._core.getSetting();this._flv.setConfig({hasVideo:o.hasVideo,hasAudio:o.hasAudio,sampleRate:o.sampleRate,channelCount:o.channel});const _=this._flv.genHeader();if(this._core.emit(l.OnPacketed,_),o.hasVideo){const c=this._flv.genSeqTag(L.VIDEO,s);this._core.emit(l.OnPacketed,c)}if(o.hasAudio){const c=this._flv.genSeqTag(L.AUDIO,s);this._core.emit(l.OnPacketed,c)}this._firstFrame=!1,ae.log("first frame encoded & packed")}const r=this._flv.genFrameTag(e==="video"?L.VIDEO:L.AUDIO,s);this._core.emit(l.OnPacketed,r,s.props.type==="key")},this._core=t,this._bindEvents()}_bindEvents(){this._core.on(l.OnEncodedFrame,this._OnEncodedFrame)}destroy(){}}class he{constructor(){this._lastDot=0,this._totalSize=0,this._speed=[]}addSample(t){this._lastDot||(this._lastDot=Date.now()),this._totalSize+=t;const e=Date.now()-this._lastDot;e>=500&&(this._addSpeedSample(this._totalSize/e*8e3),this._totalSize=0,this._lastDot=Date.now())}_addSpeedSample(t){this._speed.push(t),this._speed=this._speed.slice(-6)}reset(){this._speed=[]}getUpSpeed(){return this._speed.length?parseInt(this._speed.reduce((t,e)=>t+=e,0)/this._speed.length):0}}const D=new E("RTMP_Wtp");class ce{constructor(t){this._queue=[],this._url="",this._connectClosed=!1,this._upSpeed=new he,this._transport=null,this._writer=null,this._inWriting=!1,this._inAdjustEncode=!1,this._increaseTimer=0,this._firstFramePushed=!1,this._core=t,this._bindEvents()}get sendSpeed(){return this._upSpeed.getUpSpeed()}getStats(){var t;return(t=this._transport)==null?void 0:t.getStats()}_bindEvents(){this._core.on(l.OnPacketed,(t,e=!1)=>{this._checkDecreaseBitrate(),this._checkDeleteCache(e),this._queue.push(t),this._inWriting||this._write()})}_checkDecreaseBitrate(){if(this._inAdjustEncode)return;const t=this._upSpeed.getUpSpeed();if(!t||this._queue.length<A.MaxCachedFrameSize)return;D.log(`up speed: ${t} low, ajust encode setting`);const e=this._core.getSetting();this._core.emit(l.OnUpstreamFeedback,{videoBitrate:t*A.RealSpeedPercent,width:e.width,height:e.height,frameRate:e.frameRate}),this._inAdjustEncode=!0,this._checkIncreaseBitrate()}_checkIncreaseBitrate(){D.log("add timer to check uplink speed increased"),clearInterval(this._increaseTimer),this._increaseTimer=setTimeout(()=>{const t=this._core.getSetting();D.log(`set encode bitrate to specified ${t.originVideoBitrate}`),this._core.emit(l.OnUpstreamFeedback,{videoBitrate:t.originVideoBitrate,width:t.width,height:t.height,frameRate:t.frameRate}),this._inAdjustEncode=!0},A.UplinkBitrateCheckInterval)}_checkDeleteCache(t){this._inAdjustEncode&&t&&(D.log(`ajust encode setting finish, delete cached ${this._queue.length} frame`),this._queue=[],this._upSpeed.reset(),this._inAdjustEncode=!1)}async start(t){this._url=t;try{await this._connect()}catch(e){throw b(y.WTP_OPEN_FAIL,e.message)}}async _connect(){const t=new WebTransport(this._url);let e;t.closed.then(()=>{D.log("webtransport closed")}).catch(r=>{e=r.message,D.log("webtransport closed due to",r)}).finally(()=>{this._connectClosed=!0,this._core.emit(O.OnConnectClosed,e),this._core.emit(O.OnError,b(y.WTP_CONNECT_FAIL,e))}),await t.ready,this._transport=t;const s=await t.createBidirectionalStream();this._writer=s.writable.getWriter(),this._write(),D.log("transport opend")}async _write(){var e;if(!this._writer)return;this._inWriting=!0;const t=this._queue.shift();if(!t){this._inWriting=!1;return}await((e=this._writer)==null?void 0:e.write(t)),this._firstFramePushed||(this._firstFramePushed=!0,this._core.emit(O.OnFirstFramePushed),D.log("first frame pushed")),this._upSpeed.addSample(t.length);try{await this._write()}catch(s){D.log("writer error:",s)}}getFile(){return S(this._queue)}destroy(){var t,e;clearTimeout(this._increaseTimer),this._connectClosed||(t=this._writer)==null||t.close(),this._writer=null,(e=this._transport)==null||e.close(),this._transport=null}}const ue=new E("LiveRTMP");class _e extends H{constructor(){super(),this._ts=0,this._setting={codec:A.codec,hardwareAcceleration:"prefer-hardware",width:-1,height:-1,frameRate:-1,sampleRate:A.sampleRate,channel:A.channel,gopSize:A.gopSize,videoBitrate:A.VideoBitrateDefault,originVideoBitrate:A.VideoBitrateDefault,audioBitrate:A.AudioBitrateDefault,hasAudio:!1,hasVideo:!1,vDeviceId:"",aDeviceId:""},this._encode=new ee(this),this._packet=new de(this),this._transport=new ce(this)}async checkVideoHardwareAcceleration(){const t=["prefer-hardware","prefer-software","no-preference"],e=this.getSetting(),s={codec:e.codec,width:1280,height:720,framerate:15,bitrate:e.videoBitrate};for(const r of t)try{if((await VideoEncoder.isConfigSupported({...s,hardwareAcceleration:r})).supported)return this.updateSetting({hardwareAcceleration:r,originVideoBitrate:e.originVideoBitrate}),Promise.resolve()}catch{throw b(y.VIDEO_ENCODE_CONFIGURE_FAIL,`VideoEncoder not support hardwareAcceleration, ${JSON.stringify({...s,hardwareAcceleration:r})}`)}throw b(y.VIDEO_ENCODE_CONFIGURE_FAIL,"VideoEncoder not support hardwareAcceleration")}async ready(){await Promise.all([this.checkVideoHardwareAcceleration(),this._encode.init()])}getSetting(){return this._setting}updateSetting(t){this._setting=Object.assign({},this._setting,t)}videoFrameCaptured(t,e){this.emit(l.OnVideoCaptured,t,e)}audioFrameCaptured(t,e){this.emit(l.OnAudioCaptured,t,e)}startMockVideoEncode(){this.emit(l.OnVideoCaptureNoOutput)}adjustBitrate(t,e){t===I.Video&&this.updateSetting({videoBitrate:e,originVideoBitrate:e}),t===I.Audio&&this.updateSetting({audioBitrate:e}),this.emit(l.OnBitrateChanged,t,e)}avExist(t,e){this._setting.hasVideo=t,this._setting.hasAudio=e}publish(t){return this._transport.start(t)}setEncodeCapacity(t){this._setting=Object.assign({},this._setting,t)}getStats(){return{video:{...this._encode.getStats().video,sendSpeed:this._transport.sendSpeed,codec:this._setting.codec,frameWidth:this._setting.width,frameHeight:this._setting.height,gopSize:this._setting.gopSize},audio:{...this._encode.getStats().audio,codec:"aac",channels:this._setting.channel,sampleRate:this._setting.sampleRate}}}destroy(){ue.log("destroy"),this._encode.destroy(),this._packet.destroy(),this._transport.destroy()}down(){return this._transport.getFile()}}self.constructor.name!=="Window"&&le();function le(){let i={};self.addEventListener("message",async t=>{switch(t.data.type){case v.Init:{const{options:e}=t.data;e.logEnable&&(E.enable=!0),e.logEnableLong&&(E.enableLong=!0),i=new _e,i.on(O.OnError,s=>{self.postMessage({type:w.Error,data:s.toJson()})}),i.on(O.OnConnectClosed,()=>{self.postMessage({type:w.Close})}),i.on(O.OnFirstFramePushed,()=>{self.postMessage({type:w.FirstFramePushed})});try{await i.ready(),self.postMessage({type:w.Ready})}catch(s){self.postMessage({type:w.Error,data:s.toJson()})}}break;case v.AvExist:{const{hasAudio:e,hasVideo:s}=t.data;i.avExist(s,e)}break;case v.VideoFrame:{const{frame:e,setting:s}=t.data;i.videoFrameCaptured(e,s)}break;case v.MockVideoEncode:i.startMockVideoEncode();break;case v.AudioFrame:{const{frame:e,setting:s}=t.data;i.audioFrameCaptured(e,s)}break;case v.AdjustBitrate:{const{kind:e,bitrate:s}=t.data;i.adjustBitrate(e,s)}break;case v.Publish:{const{url:e}=t.data;try{await i.publish(e)}catch(s){self.postMessage({type:w.Error,data:s.toJson()})}}break;case v.GetStats:self.postMessage({type:w.STATS,data:i.getStats()});break;case v.EncodeConfig:{i.setEncodeCapacity(t.data.cfg);break}case v.Download:{const e=i.down();self.postMessage({type:w.Flvfile,buffer:e},[e.buffer])}break;case v.UnPublish:{i.destroy();break}}})}})();\n',Xa=typeof self<"u"&&self.Blob&&new Blob([Ja],{type:"text/javascript;charset=utf-8"});function Sg(i){let e;try{if(e=Xa&&(self.URL||self.webkitURL).createObjectURL(Xa),!e)throw"";const t=new Worker(e,{name:i==null?void 0:i.name});return t.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(e)}),t}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(Ja),{name:i==null?void 0:i.name})}finally{e&&(self.URL||self.webkitURL).revokeObjectURL(e)}}try{Gt.enable=location.href.indexOf("rtmpdebug")!==-1,Gt.enableLong=location.href.indexOf("rtmpdebug=long")!==-1}catch{}const ur=new Gt("Bridge");class Za extends yg{constructor(){super(),this._worker=null,this._audioMsTrack=null,this._videoMsTrack=null,this._capture=new bg(this)}static isSupported(){return typeof WebTransport<"u"&&typeof MediaStreamTrackProcessor<"u"&&typeof MediaStreamTrackGenerator<"u"&&typeof VideoEncoder<"u"}get audioMsTrack(){return this._audioMsTrack}get videoMsTrack(){return this._videoMsTrack}async ready(){var s,a;let e,t;const r=new Promise((o,d)=>{e=o,t=d}),n=o=>{var d;switch((d=this._worker)==null||d.removeEventListener("message",n),o.data.type){case bt.Error:t(o.data.data);break;default:this._bindWorkerEvent(),ur.log("rtmp ready!"),e(!0)}};try{this._worker=new Sg}catch(o){t(Wa(cr.RTMP_INIT_FAIL,o.message))}return(s=this._worker)==null||s.postMessage({type:Se.Init,options:{logEnable:Gt.enable,logEnableLong:Gt.enableLong}}),(a=this._worker)==null||a.addEventListener("message",n),r}_bindWorkerEvent(){var e,t;(e=this._worker)==null||e.addEventListener("message",r=>{switch(r.data.type){case bt.Error:ur.table(r.data.data),this.emit(ot.OnError,r.data.data);break;case bt.Flvfile:Eg(r.data.buffer);break;case bt.FirstFramePushed:this.emit(ot.OnFirstFramePushed);break;case bt.Close:this.emit(ot.OnConnectClosed),this.destroy();break}}),(t=this._worker)==null||t.addEventListener("error",r=>{this.emit(ot.OnError,Wa(cr.WORKER_ERROR,r.message))})}addTrack(e){e.kind===at.Video&&(this._videoMsTrack=e),e.kind===at.Audio&&(this._audioMsTrack=e),this._setAVExist(!!this._videoMsTrack,!!this._audioMsTrack)}replaceTrack(e,t){e===at.Video&&(this._videoMsTrack=t),e===at.Audio&&(this._audioMsTrack=t),this._setAVExist(!!this._videoMsTrack,!!this._audioMsTrack),this._capture.restartCapture(e)}async getStats(){var s,a;let e,t;const r=new Promise((o,d)=>{e=o,t=d});this._worker||setTimeout(()=>{t()},0);const n=o=>{var d;switch(o.data.type){case bt.STATS:e(o.data.data),(d=this._worker)==null||d.removeEventListener("message",n);break}};return(s=this._worker)==null||s.addEventListener("message",n),(a=this._worker)==null||a.postMessage({type:Se.GetStats}),r}_postVideoFrame(e,t){var r;(r=this._worker)==null||r.postMessage({type:Se.VideoFrame,frame:e,setting:t},[e])}_postMockVideoEncodeFlag(){var e;(e=this._worker)==null||e.postMessage({type:Se.MockVideoEncode})}_setAVExist(e,t){var r;(r=this._worker)==null||r.postMessage({type:Se.AvExist,hasVideo:e,hasAudio:t})}_postAudioFrame(e,t){var r;(r=this._worker)==null||r.postMessage({type:Se.AudioFrame,frame:e,setting:t},[e])}setEncodeCapacity(e){var t;(t=this._worker)==null||t.postMessage({type:Se.EncodeConfig,cfg:e})}adjustBitrate(e,t){var r;(r=this._worker)==null||r.postMessage({type:Se.AdjustBitrate,kind:e,bitrate:t})}publish(e){var t;ur.log("start capture & connect"),this._capture.start(),(t=this._worker)==null||t.postMessage({type:Se.Publish,url:e})}unpublish(){var e;this._capture.destroy(),(e=this._worker)==null||e.postMessage({type:Se.UnPublish})}destroy(){var e;ur.log("destroy capture & rtmp worker"),this._capture.destroy(),(e=this._worker)==null||e.terminate(),this._worker=null}download(){var e;(e=this._worker)==null||e.postMessage({type:Se.Download})}}function Eg(i){const e=document.createElement("a");e.href=URL.createObjectURL(new Blob([i])),e.download=Date.now()+".flv",e.click()}const Qa=new st("RTMPConnect");class wg{constructor(e,t,r,n){this._opts=void 0,this._isPushing=!1,this._url=e,this._opts=t,this._onError=r,this._OnSuccess=n,this._rtmp=new Za,this._bindEvents()}get isPushing(){return this._isPushing}get pushUrl(){return this._url}get sessionId(){return 0}_bindEvents(){this._rtmp.on(ot.OnError,e=>{this._isPushing=!1,this._onError(e)}),this._rtmp.on(ot.OnConnectClosed,()=>{this._isPushing=!1,this._onError(new Ka(cr.WTP_CONNECT_FAIL,"connect lost"))}),this._rtmp.on(ot.OnFirstFramePushed,()=>{this._isPushing=!0,this._OnSuccess()})}async publish(e,t,r){await this._rtmp.ready(),r!=null&&r.cfg&&this._rtmp.setEncodeCapacity(r.cfg),e.filter(Boolean).forEach(n=>this._rtmp.addTrack(n)),t[0]&&this._rtmp.adjustBitrate(at.Audio,t[0]),t[1]&&this._rtmp.adjustBitrate(at.Video,t[1]),this._rtmp.publish(this._url)}updatePublish(e,t){Qa.log(`replace track to ${e==null?void 0:e.label}`),this._rtmp.replaceTrack(t,e)}applyBitrate(e,t){this._rtmp.adjustBitrate(t,e)}async getStats(){return this._rtmp.getStats()}async getStatsSnapshoot(e){return e&&await Ci(e),{stats:await this._rtmp.getStats(),originStats:void 0}}unpublish(){Qa.warn("unpublish"),this._rtmp.unpublish(),this._isPushing=!1}}var Te=(i=>(i[i.Start=0]="Start",i[i.Stop=1]="Stop",i[i.GameControl=2]="GameControl",i[i.InitPushReader=3]="InitPushReader",i[i.Online=4]="Online",i[i.Reconnect=5]="Reconnect",i[i.UpdateTrack=6]="UpdateTrack",i[i.SetBitrate=7]="SetBitrate",i[i.PassEngineEvent=8]="PassEngineEvent",i[i.StopSuccess=9]="StopSuccess",i[i.VideoLog=10]="VideoLog",i[i.SetJitterBuffer=11]="SetJitterBuffer",i[i.ResetEngine=12]="ResetEngine",i[i.GetStats=13]="GetStats",i[i.Test=14]="Test",i[i.Plugin=15]="Plugin",i[i.EnableLogger=16]="EnableLogger",i[i.SendLogToMain=17]="SendLogToMain",i))(Te||{});const Cg=1e3;function kg(){return!1}class Ya{constructor(){this.maxSize=Cg,this.supported=kg(),this.supported&&(this.buffer=new SharedArrayBuffer(this.maxSize),this.arr=new Uint8Array(this.buffer))}share(e){return this.supported?(this.arr.set(e),this.buffer):e.buffer}}class Tg{constructor(e){this.encoder=new TextEncoder,this.decoder=new TextDecoder,this.buffer=new Ya,this.client=e}send(e){this.client.postMessage(e)}sendTransportable(e,t){Object.assign(e,t);const r=Object.values(t);this.client.postMessage(e,r)}onMessage(e){this.client.addEventListener("message",t=>{e(t.data)})}destroy(){var e,t;(t=(e=this.client).terminate)==null||t.call(e)}}class zg{constructor(){this.usePrevEmit=!0,this._map={},this._prevData={}}hasEvent(e){return!!this._map[e]}on(e,t){if(typeof e=="object"){const r=[];for(const n in e)r.push(this.on(n,e[n]));return()=>{r.forEach(n=>n())}}else{if(!t)throw new Error("fn is required");const r=this._formatTarget(t);return this._checkPrev(e,r)&&r.once?()=>{}:(this._getList(e).push(r),()=>{this.off(e,r)})}}_formatTarget(e,t){return typeof e=="function"?{listener:e,once:t??!1,prev:this.usePrevEmit}:(typeof t=="boolean"&&(e.once=t),e)}emit(e,...t){this._prevData[e]=t;const r=this._map[e];if(!r)return!1;for(let n=0;n<r.length;n++){const s=r[n];s.listener(...t),s.once&&(r.splice(n,1),n--)}return!0}off(e,t){const r=this._map[e];if(!r)return!1;const n=r.findIndex(s=>s===t||s.listener===t);return n===-1?!1:(r.splice(n,1),!0)}clear(e){return this._map[e]?(delete this._map[e],delete this._prevData[e],!0):!1}async onWait(e,t){return new Promise(r=>{var a;let n=(...o)=>r(o);t&&(n={listener:n,...t});const s=this.once(e,n);(a=t==null?void 0:t.onclear)==null||a.call(t,s)})}destroy(){this._map={},this._prevData={}}_checkPrev(e,t){if(!t.prev)return!1;const r=this._prevData[e];return typeof r<"u"?(t.listener(...r),!0):!1}once(e,t){return this.on(e,this._formatTarget(t,!0))}head(e,t){const r=this._formatTarget(t);return this._checkPrev(e,r)&&r.once?()=>{}:(this._getList(e).unshift(t),()=>{this.off(e,t)})}headOnce(e,t){return this.head(e,this._formatTarget(t,!0))}_getList(e){let t=this._map[e];return t||(this._map[e]=t=[]),t}passEvents(e,t){t.forEach(r=>{e.on(r,n=>{this.emit(r,n)})})}}class Ag extends zg{constructor(e){super();const t=new e;this.messenger=new Tg(t),this.buffer=new Ya,this.onMessage(r=>{this.receiveWorkerMessage(r)})}onMessage(e){this.messenger.onMessage(e)}sendMessage(e){var t;e.type===Te.GameControl&&((t=window.__vecg_debug_helper)==null||t.log("debugtouch sendMessage",e.data.byteLength)),this.messenger.send(e)}sendTransportable(e,t){this.messenger.sendTransportable(e,t)}}const ec='(function(){"use strict";var g=(s=>(s[s.Start=0]="Start",s[s.Stop=1]="Stop",s[s.GameControl=2]="GameControl",s[s.InitPushReader=3]="InitPushReader",s[s.Online=4]="Online",s[s.Reconnect=5]="Reconnect",s[s.UpdateTrack=6]="UpdateTrack",s[s.SetBitrate=7]="SetBitrate",s[s.PassEngineEvent=8]="PassEngineEvent",s[s.StopSuccess=9]="StopSuccess",s[s.VideoLog=10]="VideoLog",s[s.SetJitterBuffer=11]="SetJitterBuffer",s[s.ResetEngine=12]="ResetEngine",s[s.GetStats=13]="GetStats",s[s.Test=14]="Test",s[s.Plugin=15]="Plugin",s[s.EnableLogger=16]="EnableLogger",s[s.SendLogToMain=17]="SendLogToMain",s))(g||{});const j=1e3;function $(){return!1}class G{constructor(){this.maxSize=j,this.supported=$(),this.supported&&(this.buffer=new SharedArrayBuffer(this.maxSize),this.arr=new Uint8Array(this.buffer))}share(e){return this.supported?(this.arr.set(e),this.buffer):e.buffer}}class q{constructor(e){this.encoder=new TextEncoder,this.decoder=new TextDecoder,this.buffer=new G,this.client=e}send(e){this.client.postMessage(e)}sendTransportable(e,t){Object.assign(e,t);const i=Object.values(t);this.client.postMessage(e,i)}onMessage(e){this.client.addEventListener("message",t=>{e(t.data)})}destroy(){var e,t;(t=(e=this.client).terminate)==null||t.call(e)}}class p{constructor(){this.usePrevEmit=!0,this._map={},this._prevData={}}hasEvent(e){return!!this._map[e]}on(e,t){if(typeof e=="object"){const i=[];for(const n in e)i.push(this.on(n,e[n]));return()=>{i.forEach(n=>n())}}else{if(!t)throw new Error("fn is required");const i=this._formatTarget(t);return this._checkPrev(e,i)&&i.once?()=>{}:(this._getList(e).push(i),()=>{this.off(e,i)})}}_formatTarget(e,t){return typeof e=="function"?{listener:e,once:t??!1,prev:this.usePrevEmit}:(typeof t=="boolean"&&(e.once=t),e)}emit(e,...t){this._prevData[e]=t;const i=this._map[e];if(!i)return!1;for(let n=0;n<i.length;n++){const r=i[n];r.listener(...t),r.once&&(i.splice(n,1),n--)}return!0}off(e,t){const i=this._map[e];if(!i)return!1;const n=i.findIndex(r=>r===t||r.listener===t);return n===-1?!1:(i.splice(n,1),!0)}clear(e){return this._map[e]?(delete this._map[e],delete this._prevData[e],!0):!1}async onWait(e,t){return new Promise(i=>{var a;let n=(...o)=>i(o);t&&(n={listener:n,...t});const r=this.once(e,n);(a=t==null?void 0:t.onclear)==null||a.call(t,r)})}destroy(){this._map={},this._prevData={}}_checkPrev(e,t){if(!t.prev)return!1;const i=this._prevData[e];return typeof i<"u"?(t.listener(...i),!0):!1}once(e,t){return this.on(e,this._formatTarget(t,!0))}head(e,t){const i=this._formatTarget(t);return this._checkPrev(e,i)&&i.once?()=>{}:(this._getList(e).unshift(t),()=>{this.off(e,t)})}headOnce(e,t){return this.head(e,this._formatTarget(t,!0))}_getList(e){let t=this._map[e];return t||(this._map[e]=t=[]),t}passEvents(e,t){t.forEach(i=>{e.on(i,n=>{this.emit(i,n)})})}}class M extends p{constructor(){super(),this.messenger=new q(globalThis),this.messenger.onMessage(this.receiveMainMessage.bind(this))}onMessage(e){this.messenger.onMessage(e)}send(e,t){this.messenger.send({type:e,data:t})}}var l=(s=>(s[s.Connecting=0]="Connecting",s[s.Open=1]="Open",s[s.Closing=2]="Closing",s[s.Closed=3]="Closed",s))(l||{}),S=(s=>(s.Init="init",s.Online="online",s.Error="error",s.ApiCall="api_call",s))(S||{});function E(){let s,e;return{ready:new Promise((i,n)=>{s=i,e=n}),resolve:s,reject:e}}function J(s=500,e){const{ready:t,resolve:i}=E(),n=setTimeout(i,s);return e==null||e(n),t}function V(s){let e=!0,t="";for(const i of s)if(!(i in window)){e=!1,t=`${i} not Supported`;break}return{supported:e,info:t}}function x({task:s,timeout:e,time:t=200}){const{ready:i,resolve:n}=E(),r=setTimeout(async()=>{let a;typeof e<"u"&&(typeof e=="function"?(a=e(),a instanceof Promise&&(a=await a)):a=e),n(a)},t);return s().then(a=>{clearTimeout(r),n(a)}),i}const K=24*60*60*1e3;function F(s,e="1d"){const t=`_me_expire_${s}`;let i=0;if(typeof e=="string"){if(!/^[0-9]+d$/.test(e))throw new Error("expire format error");i=K*parseInt(e)}else i=e;return{get(){const n=localStorage.getItem(t);if(!n)return null;let r=null;try{r=JSON.parse(n)}catch{return null}const{value:a,expire:o}=r;return o<Date.now()?(localStorage.removeItem(t),null):a},set(n){localStorage.setItem(t,JSON.stringify({value:n,expire:Date.now()+i}))},remove(){localStorage.removeItem(t)}}}function C(s){let e=s.length,t=0;for(let r=e-1;r>=0;r--)s[r]?t+=s[r].byteLength:(e--,s.splice(r,1));const i=new Uint8Array(t);let n=0;for(let r=0;r<e;r++)i.set(s[r],n),n+=s[r].byteLength;return i}function _(s){for(const e in s)typeof s[e]>"u"&&delete s[e];return s}function X(s,e){let t=Number.MAX_SAFE_INTEGER,i=0;for(const n of e){const r=Math.abs(s-n);if(r===0)return n;r<t&&(t=r,i=n)}return i}var f=(s=>(s[s.AAC=0]="AAC",s[s.OPUS=1]="OPUS",s[s.H264=2]="H264",s[s.H265=3]="H265",s[s.AV1=4]="AV1",s))(f||{});f.AAC+"",f.OPUS+"",f.H264+"",f.H265+"",f.AV1+"";const U={[f.AAC]:"mp4a.40.2",[f.OPUS]:"opus",[f.H264]:"avc1.4DE033",[f.H265]:"hev1.1.6.L93.B0"};function O({readable:s,onFrame:e,onFinish:t,onError:i}){if(!s)return()=>{};const n=s.getReader();console.log("getReader");let r=!0;return Z({reader:n,flag:()=>r,onFrame:e,onFinish:t,onError:i}),()=>{r=!1}}async function Z({reader:s,flag:e,onFrame:t,onFinish:i,onError:n}){for(;e();)try{const{done:r,value:a}=await s.read();if(r){console.warn("Stream complete"),i==null||i();return}t(a),a.close()}catch(r){console.error("read error,",r),n==null||n(r)}}function W(s){const{video:e,audio:t}=Y(s);return{video:e?R(e):void 0,audio:t?R(t):void 0}}function R(s){const e=new MediaStreamTrackProcessor(s),{readable:t}=e,i=s.getSettings();return{readable:t,settings:i}}function Y(s){return{video:s.getVideoTracks()[0],audio:s.getAudioTracks()[0]}}function ee(s){const e=new Uint8Array(s.byteLength);return s.copyTo(e),e}const u={log(){},send(){},$custom:{},$enableLog(s=!0){u.log=s?(...e)=>{console.log(L(),...e),u.enableLogSend&&z(e)}:()=>{}},$enableSend(){u.send=(...s)=>{z(s)}}};function te(){var n;typeof window=="object"&&!window.__me_debug_helper&&(window.__me_debug_helper=u);let s=location.search.substring(1);const e="_medh_",t=((n=u.$isInnerEnv)==null?void 0:n.call(u))||!0;if(!s){const{hash:r}=location,a=r.indexOf("?");if(!r||a===-1||(s=r.substring(a+1),!s))return}const i=s.split("&");for(const r of i){const[a,o]=r.split("=");if(a.startsWith(e)){let c=a.replace(e,"");if(c.startsWith("inner_")){if(!t)continue;c=c.replace("inner_","")}c==="log"?u.$enableLog():c==="send"?u.$enableSend():u[c]=o||!0}}location.hostname==="localhost"&&u.$enableLog()}function z(s){if(u.$logger)try{u.$logger(s)}catch(e){console.error(L(),"debug send fail:",e)}}function L(){const s=new Date;return`[${s.toLocaleTimeString()} ${s.getMilliseconds().toString().padStart(3,"0")} media-engine]`}te();let ie=class{constructor(){this._lastDot=0,this._totalSize=0,this._speed=[]}addSample(e){this._lastDot||(this._lastDot=Date.now()),this._totalSize+=e;const t=Date.now()-this._lastDot;t>=500&&(this._addSpeedSample(this._totalSize/t*8e3),this._totalSize=0,this._lastDot=Date.now())}_addSpeedSample(e){this._speed.push(e),this._speed=this._speed.slice(-6)}reset(){this._speed=[]}getUpSpeed(){return this._speed.length?parseInt(this._speed.reduce((e,t)=>e+=t,0)/this._speed.length):0}};class se{constructor(){this._bandwidth=0,this._dbrDataSize=0,this.MAX_ESTIMATE_DURATION_MS=2e3,this.MIN_ESTIMATE_DURATION_MS=1e3,this.packets=[]}addDbrPacket(e){this.packets.push(e),this._dbrDataSize+=e.size;const t=this.packets[0],i=e.sendEndTime-t.sendBeginTime;for(;this.packets.length>0;){const n=this.packets[0];if(e.sendEndTime-n.sendBeginTime>this.MAX_ESTIMATE_DURATION_MS)this._dbrDataSize-=n.size,this.packets.shift();else break}this._bandwidth=i>=this.MIN_ESTIMATE_DURATION_MS?this._dbrDataSize*1e3/i*8:0}getEstimateBandwidth(){return this._bandwidth}reset(){this._bandwidth=0,this._dbrDataSize=0,this.packets=[]}}class ne extends p{constructor(e,t,i){super(),this.streamWriter=null,this.datagramWriter=null,this.failQueue=[],this.bandwidth=0,this.smoothTime=0,this.failCount=0,this.timeoutCount=0,this.streamWriter=e.writable.getWriter(),this.datagramWriter=t.writable.getWriter(),this.upspeed=new ie,this.bandwidthEstimate=new se,i&&(this.strategy=i,i.upstream=this)}async resetStream(e){var t;(t=this.streamWriter)==null||t.releaseLock(),this.streamWriter=e.writable.getWriter(),this.failQueue.forEach(({data:i,config:n})=>{this.sendStream(i,n)}),this.failQueue=[]}async sendStream(e,{extra:t,force:i}={extra:{},force:!1}){var d;if(!i&&((d=this.strategy)==null?void 0:d.onSendStream(e,t))===!1)return;const n={sendBeginTime:performance.now(),size:e.byteLength,sendEndTime:0};this.upspeed.addSample(e.byteLength);const r=performance.now(),a=await this._writeData(e);if(a){(a==="error"||a==="timeout")&&(this.failQueue.push({data:e,config:{extra:t,force:i}}),this.emit("write-error",a));return}n.sendEndTime=performance.now(),this.bandwidthEstimate.addDbrPacket(n);const o=performance.now()-r||.001;this.smoothTime=this.smoothTime===0?o:this.smoothTime*.7+o*.3;const h=e.byteLength/1024*8/(this.smoothTime/1e3);this.bandwidth=Math.min(this.bandwidth===0?h:this.bandwidth*.7+h*.3,1e4)}async _writeData(e){return await x({task:()=>{if(!this.streamWriter)return Promise.resolve("no_stream");const{ready:i,resolve:n}=E();return this.streamWriter.write(e).then(()=>{n("")}).catch(()=>{this.failCount++,n("error")}),i},timeout:()=>(this.timeoutCount++,"timeout"),time:1e3})}async sendDgm(e,{extra:t,force:i}={extra:{},force:!0}){var n,r;!i&&((n=this.strategy)==null?void 0:n.onSendDgm(e,t))===!1||(this.upspeed.addSample(e.byteLength),await((r=this.datagramWriter)==null?void 0:r.write(e).catch(a=>{console.log("send dgm fail",a)})))}async destroy(){var e,t,i;try{await((e=this.streamWriter)==null?void 0:e.close()),await((t=this.datagramWriter)==null?void 0:t.close())}catch(n){console.warn("upstream destroy:",n)}this.upspeed.reset(),(i=this.strategy)==null||i.destroy()}getSpeed(){return this.upspeed.getUpSpeed()}getBandwidth(){return this.bandwidth}getEstimateBandwidth(){return this.bandwidthEstimate.getEstimateBandwidth()}clearEstimateBandwidth(){this.bandwidthEstimate.reset()}}class re extends p{constructor(e,t){super(),this.destroyed=!1,this.read(e.readable,i=>{this.emit("stream",i)},!0),this.read(t.readable,i=>{this.emit("datagram",i)})}async read(e,t=()=>{},i=!1){const n=e.getReader();for(i&&(this.streamReader=n);!this.destroyed;){const{value:r,done:a}=await n.read().catch(()=>({done:!0,value:null}));if(a)break;t(r)}}resetStream(e){this.streamReader.releaseLock(),this.read(e.readable,t=>{this.emit("stream",t)})}destroy(){this.destroyed=!0,super.destroy()}}const P={clearConnection:()=>Promise.resolve(),sendStream:async()=>{},sendDgm:async()=>{},getUpSpeed:()=>0,getUpBandwidth:()=>0,getId:()=>0};class ae extends p{constructor(e){super(),this.destroyed=!1,this._resetLock=!1,this.options=e,this.ready=this.connect(),this.ready.then(t=>{var i;t&&(this.initStream(),(i=this.transport)==null||i.closed.then(n=>{this.emit("closed",n)}).catch(n=>{this.emit("closed",{closeCode:-1,reason:`catch ${n.toString()}`})}))})}get id(){return this.options.id}async destroy(){var e,t,i,n;if(super.destroy(),!this.destroyed){this.destroyed=!0,await((e=this.upstream)==null?void 0:e.destroy()),(t=this.downstream)==null||t.destroy();try{(i=this.transport)==null||i.close(),await((n=this.transport)==null?void 0:n.closed)}catch(r){console.warn("close fail",r)}this.transport=null,u.log("close transport"),this.emit("destroyed")}}async connect(){try{const e=new WebTransport(this.options.url);if(!e)this.onFail("Init error");else{this.transport=e;const t=await x({task:async()=>{var i;try{return await((i=this.transport)==null?void 0:i.ready),u.log("transport ready"),""}catch(n){return`Ready Catch: ${(n==null?void 0:n.toString())||"Fail"}`}},timeout:"Init timeout",time:2e3});if(t)this.onFail(t);else return this.emit("success"),!0}}catch(e){this.onFail(`Init Catch: ${(e==null?void 0:e.toString())||"Fail"}`)}return!1}onFail(e){this.emit("fail",e),this.transport=null,this.destroy()}async initStream(){const{transport:e}=this;if(!e)return;const t=await this.createBidStream();if(!t)return;this._prevStream=t;const i=e.datagrams;this.upstream=new ne(t,i,this.options.strategy),this.downstream=new re(t,i),this.downstream.on({stream:n=>this.emit("stream",n),datagram:n=>{this.emit("datagram",n)}}),this.upstream.on("write-error",()=>{this.resetStream()}),this.emit("upstream-ready")}async resetStream(){var t,i,n,r;if(this._resetLock)return;this._resetLock=!0;const e=await this.createBidStream();if(!e){this._resetLock=!1;return}(t=this.upstream)==null||t.resetStream(e),(i=this._prevStream)==null||i.writable.close(),(n=this.downstream)==null||n.resetStream(e),(r=this._prevStream)==null||r.readable.cancel(),this._prevStream=e,this._resetLock=!1}async createBidStream(){var e;return(e=this.transport)==null?void 0:e.createBidirectionalStream()}}class oe{constructor(e){this.index=0,this.gaps=[5,5,5,5,10,10,10,20,20,30,30,40,50,70,100],this.count=0,this.n=this.gaps.length,this.max=this.gaps[this.n-1]*100,this.maxCount=e}reset(){this.index=0,this.count=0}get gap(){return typeof this.maxCount=="number"&&this.count>=this.maxCount?0:(this.count++,this.index>=this.n-1?this.max:this.gaps[this.index++]*100)}}class ce extends p{constructor(){super(...arguments),this.readyState=l.Connecting,this.connectId=0,this.connectionUtil=P,this.destroyed=!1}setState(e){this.readyState=e}get isConnecting(){return this.readyState===l.Connecting}async init(e){this.options=Object.assign({autoReconnect:!0,useDownstream:!0},e),this.reconnectGap=new oe(e.maxCount),await this.connect({connectReason:S.Init})}async connect({first:e=!0,connectReason:t,url:i}){if(this.destroyed)return this.setState(l.Closed),Promise.resolve("Reconnector destroyed");const n=t===S.Init;e&&(this.reconnectGap.reset(),n||this.emit("reconnecting",t)),this.setState(l.Connecting);const{success:r,reason:a}=await this.singleConnect(i);if(this.destroyed)return this.setState(l.Closed),Promise.resolve("Reconnector destroyed stage2");if(!r){const{gap:o}=this.reconnectGap,c=e&&n?"connect-fail":"reconnect-fail";return this.emit(c,a),o===0||!this.options.autoReconnect?(this.emit("end"),this.setState(l.Closed),a):(await J(o,h=>this.delayTimer=h),this.connect({first:!1,url:i,connectReason:S.Error}))}return this.setState(l.Open),this.emit("connect-open",n),this.onConnected(),n||this.onMonitorConnectionNormal(),""}async onConnected(){var t;(t=this.clearWaitClosed)==null||t.call(this);const[e]=await this.onWait("connection-closed",{onclear:i=>this.clearWaitClosed=i});if(e.closeCode!==-1){if(console.log("reason",e.reason),this.emit("connect-close",e.reason||""),this.isConnecting){console.warn("isConnecting",e.reason);return}console.log("close: webts closed gracefully.",e.reason),e.closeCode===0&&(this.emit("end"),this.setState(l.Closed))}else{const i=e.reason;console.error("close: webts closed due to ",e),this.emit("connect-close",i),this.emit("disconnected",i),this.options.autoReconnect?this.connect({connectReason:S.Error}):(this.emit("connect-fail",i),this.emit("end"))}}onMonitorConnectionNormal(){this.options.useDownstream&&(this.waitTimer=setTimeout(()=>{this.emit("reconnect-fail","no packet"),this.emit("connect-close","no packet received"),this.emit("end"),this.setState(l.Closed)},3e3))}onReceivePacket(e){this.waitTimer!==null&&(e<10||(clearTimeout(this.waitTimer),this.waitTimer=null,console.warn("DEBUG 重连恢复收包"),this.emit("reconnected")))}async singleConnect(e){const{resolve:t,ready:i}=E();await this.clearReconnect();const n=new ae({id:this.connectId++,url:e||this.options.url,strategy:this.options.strategy});n.on({success:()=>{t({success:!0,reason:""})},fail:a=>{t({success:!1,reason:a})},destroyed:()=>{t({success:!1,reason:"Connection destroyed"})},datagram:a=>{this.onReceivePacket(a.byteLength),this.emit("datagram",a)},closed:a=>{this.emit("connection-closed",a)}}),this.passEvents(n,["upstream-ready","stream"]);const r=n.onWait("upstream-ready");return this.connectionUtil={clearConnection:()=>n.destroy(),sendStream:async(a,o)=>{var c;if(!n.destroyed)return await r,(c=n.upstream)==null?void 0:c.sendStream(a,o)},sendDgm:async(a,o)=>{var c;if(!n.destroyed)return await r,(c=n.upstream)==null?void 0:c.sendDgm(a,o)},getUpSpeed:()=>{var a;return((a=n.upstream)==null?void 0:a.getSpeed())||0},getUpBandwidth:()=>{var a;return((a=n.upstream)==null?void 0:a.getBandwidth())||0},getId:()=>n.id},i}async destroy(){this.destroyed||(this.destroyed=!0,await this.clearReconnect(),this.emit("connect-close","api call"),this.emit("disconnected","api call"),super.destroy())}async clearReconnect(){var e;await((e=this.connectionUtil)==null?void 0:e.clearConnection()),clearTimeout(this.delayTimer),clearTimeout(this.waitTimer),this.waitTimer=this.delayTimer=null}onlineReconnect(){this.options.autoReconnect&&(this.clearReconnect(),this.connect({first:!0,connectReason:S.Online}))}}class he extends p{get readyState(){var e;return((e=this.reconnector)==null?void 0:e.readyState)||l.Closed}get closed(){return this.readyState===l.Closed}get connection(){var e;return((e=this.reconnector)==null?void 0:e.connectionUtil)||P}async init(e){this.reconnector=new ce,this.initEvents(),this.ready=this.reconnector.init({...Object.assign({useDownstream:!0},e)}),await this.ready}async close(){await this.reconnector.destroy()}online(){this.reconnector.onlineReconnect()}reconnect(e){this.reconnector.connect({connectReason:S.ApiCall,url:e})}async sendStream(e,t){var i;return await this.ready,(i=this.connection)==null?void 0:i.sendStream(e,t)}async sendDgm(e,t){var i;return await this.ready,(i=this.connection)==null?void 0:i.sendDgm(e,t)}initEvents(){this.passEvents(this.reconnector,["reconnected","reconnect-fail","connect-close","disconnected","reconnecting","connect-fail","connect-open","upstream-ready","stream","datagram"])}getUpSpeed(){return this.connection.getUpSpeed()}getUpBandwidth(){return this.connection.getUpBandwidth()}async destroy(){await this.close(),super.destroy()}}class de extends p{sendStream(e,t){return this.upstream.sendStream(e,{force:!0,extra:t})}sendDgm(e,t){return this.upstream.sendDgm(e,{force:!0,extra:t})}}class ue{constructor(){this.totalFrames=0,this.periodFrames=0,this.periodSize=0,this.periodDuration=0,this.keyFrames=0,this.bitrate=0,this.framerate=0,this.lastTs=0}addFrame(e){const t=e.byteLength;let i=0;const n=Math.round(e.timestamp/1e3);this.lastTs!==0&&(i=n-this.lastTs),this.lastTs=n,this.totalFrames++,this.periodFrames++,this.periodSize+=t,this.periodDuration+=i,e.type==="key"&&this.keyFrames++,this.periodDuration>=1e3&&(this.bitrate=Math.floor(this.periodSize/this.periodDuration*8e3),this.framerate=this.periodFrames,this.periodFrames=0,this.periodDuration=0,this.periodSize=0)}getStats(){return{bitrate:this.bitrate,framerate:this.framerate,encodedFrames:this.totalFrames,encodedKeyFrames:this.keyFrames,codec:""}}reset(){this.totalFrames=0,this.periodFrames=0,this.periodSize=0,this.periodDuration=0,this.keyFrames=0,this.bitrate=0,this.framerate=0,this.lastTs=0}}class H extends p{constructor(){super(...arguments),this.configInitialized=!1,this.firstFrame=!1,this.stats=new ue,this._config={},this._finalConfig={},this._decoderConfig={},this._destroyed=!1}extraEncodeConfig(){return{}}getStats(){return this.stats.getStats()}get mediaType(){return this._config.mediaType}async updateConfig(e){if(e=_(e),Object.keys(e).length===0)return;Object.assign(this._config,e),this.encoder&&(await this.encoder.flush(),this.encoder.close(),this.init());const t=await this.checkConfigSupported(this.formatConfig());this._config={...this._config,...t},this._finalConfig=this.formatConfig(),this.configInitialized=!1}getConfig(){return this._config}getDecoderConfig(){return this._decoderConfig}init(e){e&&this.updateConfig(e),u.log("init encoder"),this.encoder=new this.Encoder({output:(t,i)=>{t.syncTimestamp=t.timestamp,this.stats.addFrame(t);const n=i==null?void 0:i.decoderConfig;let r;n&&(r=n,Object.assign(this._decoderConfig,n),this.emit("decoder-config-change",this._decoderConfig)),this.emit("frame-encoded",t,r),this.firstFrame||(this.emit("first-frame-encoded",t,r),this.firstFrame=!0)},error:t=>{this.emit("encode-error",t)}})}encode(e){var t;if(!this._destroyed){if(!this.configInitialized){const i=this._finalConfig;(t=this.encoder)==null||t.configure(i),this.configInitialized=!0,console.warn("configure final done",i)}this.encoder.encode(e,this.extraEncodeConfig())}}async destroy(){var e,t;this.stats.reset(),this._destroyed=!0;try{await((e=this.encoder)==null?void 0:e.flush()),(t=this.encoder)==null||t.close()}catch{}super.destroy()}async checkConfigSupported(e,t=!1){if(this.Encoder.isConfigSupported)try{const{config:i,supported:n}=await this.Encoder.isConfigSupported(e);if(n)return e;if(!t&&this.retryConfig)return this.checkConfigSupported(this.retryConfig(e),!0);this.emit("config-error",{message:"config not supported",config:i})}catch(i){if(!t&&this.retryConfig)return this.checkConfigSupported(this.retryConfig(e));this.emit("config-error",{message:"config uncaught error",err:i,config:e})}}}F("audio_encoder_support","3d");function le(){return V(["EncodedAudioChunk","AudioEncoder","AudioData"])}const m={mediaType:f.H264,format:"annexb",bitrate:2e5,framerate:15,bitrateMode:"variable",keyInterval:3e3,keyGopSize:90,hardwareAcceleration:"prefer-hardware",latencyMode:"quality"},w={mediaType:f.AAC,bitrate:96e3,sampleRate:48e3,numberOfChannels:2,bitrateMode:"constant"},T=class T extends H{constructor(){super(...arguments),this.Encoder=AudioEncoder,this.isAudio=!0}updateConfig(e){if(typeof e.bitrate=="number"){const t=[96e3,128e3,16e4,192e3],i=X(e.bitrate,t);i!==e.bitrate&&(console.warn(`audio bitrate ${e.bitrate} not supported, use ${i} instead`),e.bitrate=i)}return super.updateConfig(e)}getStats(){const{codec:e="",numberOfChannels:t=0,sampleRate:i=0}=this._finalConfig;return{...super.getStats(),codec:e,numberOfChannels:t,sampleRate:i}}formatConfig(e){const{bitrate:t=w.bitrate,bitrateMode:i=w.bitrateMode,codec:n=w.codec||U[this._config.mediaType??w.mediaType],numberOfChannels:r=w.numberOfChannels,format:a=w.format||(e==null?void 0:e.format),sampleRate:o=w.sampleRate}=this._config,c=_({codec:n,sampleRate:o,numberOfChannels:r,bitrate:t,bitrateMode:i,format:a});return this.emit("config-change",c),c}};T.isSupported=le;let v=T;F("video_encoder_support","3d");function fe(){return V(["EncodedVideoChunk","VideoEncoder","VideoFrame"])}function me(s=m.keyInterval){let e=!0,t;return{is(){return e?(e=!1,t=setTimeout(()=>{e=!0},s),!0):!1},reset(){e=!0,clearTimeout(t)}}}function pe(s=m.keyGopSize){let e=s;return{is(){return e++,e>=s?(e=0,!0):!1},reset(){e=s}}}const B=class B extends H{constructor(){super(...arguments),this.Encoder=VideoEncoder,this.isAudio=!1,this.retryConfig=e=>(e.hardwareAcceleration==="prefer-hardware"&&(e.hardwareAcceleration="prefer-software",this._config.hardwareAcceleration="prefer-software",console.warn("retry config with software hardwareAcceleration")),e)}getStats(){const e=super.getStats();let{keyGopSize:t}=this._finalConfig;const{keyInterval:i=m.keyInterval}=this._config,{width:n=0,height:r=0,codec:a="",framerate:o=0}=this._finalConfig;return typeof t>"u"&&(t=Math.round(i/1e3*o)),{...e,width:n,height:r,codec:a,keyGopSize:t}}formatConfig(e){const{codec:t=m.codec||U[this._config.mediaType??m.mediaType],bitrate:i=m.bitrate,framerate:n=m.framerate,keyInterval:r=m.keyInterval,hardwareAcceleration:a=m.hardwareAcceleration,latencyMode:o=m.latencyMode,keyGopSize:c,width:h=m.width||(e==null?void 0:e.codedWidth),height:d=m.height||(e==null?void 0:e.codedHeight)}=this._config;this.keyframe=c?pe(c):me(r);const b=_({latencyMode:o,codec:t,hardwareAcceleration:a,bitrate:i,width:h,height:d,framerate:n});return console.log("config video",JSON.stringify(b,null,2)),this.emit("config-change",b),b}extraEncodeConfig(){return{keyFrame:this.keyframe.is()}}resetKeyFrame(){var e;(e=this.keyframe)==null||e.reset()}async destroy(){try{this.resetKeyFrame()}catch{}await super.destroy()}};B.isSupported=fe;let k=B;const N=16;function Q(){let s=-1,e=-1,t=-1;return{getLatest(){return s},setBase(i){t===-1&&(t=i)},check(i){return s===-1?s=t:s+=i-e,e=i,s},reset(){s=e=t=-1}}}class ge extends p{constructor(){super(...arguments),this.video=Q(),this.audio=Q(),this.base=N,this._sendQueue=[],this._processedVideo=!1,this._processedAudio=!1,this._maximumVideoSyncTimestamp=0,this._maximumAudioSyncTimestamp=0,this.cacheAudioChunk=[],this.cacheVideoChunk=[],this.hasGetFirstVideoFrame=!1,this.SYNC_THRESHOLD=40}insertPacket(e,t,i){let n=0;for(;n<this._sendQueue.length&&!(this._sendQueue[n].frame.syncTimestamp===e.syncTimestamp&&t==="video"||this._sendQueue[n].frame.syncTimestamp>e.syncTimestamp);n++);this._sendQueue.splice(n,0,{frame:e,type:t,cfg:i})}processPacket(e,t,i){switch(this._processedAudio&&this._processedVideo||(t==="video"?this._processedVideo=!0:this._processedAudio=!0),this.insertPacket(e,t,i),t){case"video":this._maximumVideoSyncTimestamp<e.syncTimestamp&&(this._maximumVideoSyncTimestamp=e.syncTimestamp);break;case"audio":this._maximumAudioSyncTimestamp<e.syncTimestamp&&(this._maximumAudioSyncTimestamp=e.syncTimestamp);break}if(this._processedAudio&&this._processedVideo)for(;this._sendQueue.length>0;){const r=this._sendQueue[0];if(!this.checkOpposingTimestamp(r.frame,r.type))return!1;this.emit("processed-frame",r.frame,r.type,r.cfg),this._sendQueue.shift()}}checkOpposingTimestamp(e,t){switch(t){case"audio":return this._maximumVideoSyncTimestamp>e.syncTimestamp;case"video":return this._maximumAudioSyncTimestamp>e.syncTimestamp;default:return!1}}formatFrame(e,t,i,n){this[t].setBase(this.base);const a=Math.round(e.timestamp/1e3),o=this[t].check(a);return e.syncTimestamp=o,this.processPacket(e,t,n),[e]}syncAVFrame(e,t){if(t==="audio")this.cacheAudioChunk.push(e),this.cacheAudioChunk.sort((i,n)=>i.syncTimestamp-n.syncTimestamp);else if(this.cacheVideoChunk.push(e),this.cacheVideoChunk.sort((i,n)=>i.syncTimestamp-n.syncTimestamp),!this.hasGetFirstVideoFrame)return this.hasGetFirstVideoFrame=!0,null;return this.flushSynchronizedFrames()}flushSynchronizedFrames(){const e=[];for(;this.canSendFrame();){const t=this.getNextFrameToSend();if(t)e.push(t);else break}return e}canSendFrame(){if(this.cacheAudioChunk.length===0&&this.cacheVideoChunk.length===0)return!1;if(this.cacheAudioChunk.length===0)return this.cacheVideoChunk.length>0;if(this.cacheVideoChunk.length===0)return!1;const e=this.cacheAudioChunk[0],t=this.cacheVideoChunk[0];return Math.abs(e.syncTimestamp-t.syncTimestamp)<=this.SYNC_THRESHOLD}getNextFrameToSend(){if(this.cacheAudioChunk.length===0&&this.cacheVideoChunk.length>0)return this.cacheVideoChunk.shift()||null;if(this.cacheVideoChunk.length===0&&this.cacheAudioChunk.length>0||this.cacheAudioChunk.length===0&&this.cacheVideoChunk.length===0)return null;const e=this.cacheAudioChunk[0],t=this.cacheVideoChunk[0];return e.syncTimestamp<=t.syncTimestamp?this.cacheAudioChunk.shift()||null:this.cacheVideoChunk.shift()||null}reset(){this.audio.reset(),this.video.reset(),this.base=N,this._processedAudio=!1,this._processedVideo=!1,this._maximumAudioSyncTimestamp=0,this._maximumVideoSyncTimestamp=0,this.cacheAudioChunk=[],this.cacheVideoChunk=[],this.hasGetFirstVideoFrame=!1}}var y=(s=>(s[s.AUDIO=8]="AUDIO",s[s.VIDEO=9]="VIDEO",s[s.SCRIPT_DATA=18]="SCRIPT_DATA",s))(y||{}),A=(s=>(s[s.SEQUENCE_HEADER=0]="SEQUENCE_HEADER",s[s.AAC=1]="AAC",s))(A||{}),D=(s=>(s[s.SEQUENCE_HEADER=0]="SEQUENCE_HEADER",s[s.NALU=1]="NALU",s))(D||{}),I=(s=>(s[s.KEY=1]="KEY",s[s.INNER=2]="INNER",s))(I||{});const _e=10,ye=1,Se=7,we={96e3:0,48e3:3,44100:4,22050:7,16e3:8,8e3:11};function be(s){const e=(s[4]&3)+1;let t;const i=[],n=[];let r=6;const a=s[5]&31;let o;for(let d=0;d<a;d++){if(o=s[r]<<8|s[r+1],r+=2,!o)continue;const b=s.subarray(r,r+o);r+=o,i.push(b)}const c=s[r];r++;let h;for(let d=0;d<c;d++)h=s[r]<<8|s[r+1],r+=2,h&&(n.push(s.subarray(r,r+h)),r+=h);return{sps:t,spsArr:i,ppsArr:n,nalUnitSize:e}}class Ce{constructor(){this._cfg={hasVideo:!1,hasAudio:!1,sampleRate:48e3,numberOfChannels:1},this._hasVideoSeqHeader=!1}get hasVideo(){return!!this._cfg.hasVideo}get hasAudio(){return!!this._cfg.hasAudio}setConfig(e){this._cfg=Object.assign(this._cfg,e),console.log("---flv setConfig",this._cfg)}genHeader(){const e=[70,76,86,1,(this.hasAudio?1:0)<<2|(this.hasVideo?1:0),0,0,0,9,0,0,0,0];return new Uint8Array(e)}geneSEQ(e,t){let i;return e===y.AUDIO?i=this._genAudioSEQPayload():(i=this._genVideoSEQPayload(t.frame.type,t.description),this._hasVideoSeqHeader=!0),this._concatPayload(e,t.frame.syncTimestamp,i)}genPayload(e){const t=e.type===y.AUDIO,i=ee(e.frame),n=C([t?this._genAudioTagHeader():this._genVideoTagHeader(e.frame.type),t?this._genAudioData(i):this._genVideoData(e,i)]);return this._concatPayload(e.type,e.frame.syncTimestamp,n)}_concatPayload(e,t,i){const n=this._genTagHeader(e,i.length,t),r=n.length+i.length;return C([n,i,new Uint8Array([r>>>24,r>>>16,r>>>8,r])])}_genTagHeader(e,t,i){return new Uint8Array([e,t>>>16,t>>>8,t,i>>>16,i>>>8,i,i>>>24,0,0,0])}_genAudioSEQPayload(){return C([this._genAudioTagHeader(),this._genAudioSequenceHeader()])}_genVideoSEQPayload(e,t){return C([this._genVideoTagHeader(e),this._genVideoSequenceHeader(t)])}_genAudioTagHeader(){return new Uint8Array([_e<<4|12|ye<<1|this._cfg.numberOfChannels-1])}_genVideoTagHeader(e){return new Uint8Array([(e==="key"?I.KEY:I.INNER)<<4|Se,this._hasVideoSeqHeader?D.NALU:D.SEQUENCE_HEADER,0,0,0])}_genAudioSequenceHeader(){const e=4096|we[this._cfg.sampleRate]<<7|this._cfg.numberOfChannels<<3;return new Uint8Array([A.SEQUENCE_HEADER,e>>8,e])}_genAudioData(e){const t=new Uint8Array(1+e.length);return t.set([A.AAC],0),t.set(e,1),t}_genVideoSequenceHeader(e){return new Uint8Array(e||[])}_genVideoData(e,t){if(e.frame.type==="delta")return t;const i=be(new Uint8Array(e.description)),n=i.spsArr[0].length,r=i.ppsArr[0].length;return C([new Uint8Array([0,0,n>>8,n%256]),i.spsArr[0],new Uint8Array([0,0,r>>8,r%256]),i.ppsArr[0],t])}reset(){this._hasVideoSeqHeader=!1}}class Ee{constructor(){this._firstFrame=!0,this._flv=new Ce}updateConfig(e){e&&this._flv.setConfig(e)}receiveMediaFrame(e,t){const i=e.type===y.AUDIO;this._firstFrame&&i||(this._firstFrame&&(t({buffer:this._flv.genHeader(),type:"header"}),this._flv.hasAudio&&t({buffer:this._flv.geneSEQ(y.AUDIO,e),type:"seq"}),this._flv.hasVideo&&t({buffer:this._flv.geneSEQ(y.VIDEO,e),type:"seq"}),this._firstFrame=!1),t({buffer:this._flv.genPayload(e),type:"payload"}))}reset(){this._firstFrame=!0,this._flv.reset()}destroy(){this.reset()}}class ve{constructor(e=1e3){this._packets=[],this._latestDts=0,this._videoDuration=0,this._batchSize=e}addPacket(e,t){this._packets.push({data:e,isSeparator:!1,...t}),t.mediaType==="video"&&(this._latestDts=t.dts||0)}getVideoDuration(){const e=this._packets.find(t=>t.mediaType==="video");return!e||!e.dts?0:this._latestDts-e.dts}shift(){if(this._packets.length===0)return;let e=0;for(const r of this._packets)e+=r.data.byteLength;if(e<this._batchSize)return;const t=new Uint8Array(this._batchSize);let i=0,n=this._batchSize;for(;n>0&&this._packets.length>0;){const r=this._packets[0],a=r.data.byteLength;if(a<=n)t.set(r.data,i),i+=a,n-=a,this._packets.shift();else{const o=r.data.slice(0,n);t.set(o,i),this._packets[0]={...r,data:r.data.slice(n),isSeparator:!0},n=0}}return t}shiftSinglePacket(){if(this._packets.length===0)return;const e=this._packets.shift();return e==null?void 0:e.data}forceShift(){if(this._packets.length===0)return;let e=0;for(const a of this._packets)e+=a.data.byteLength;const t=Math.min(e,this._batchSize),i=new Uint8Array(t);let n=0,r=t;for(;r>0&&this._packets.length>0;){const a=this._packets[0],o=a.data.byteLength;if(o<=r)i.set(a.data,n),n+=o,r-=o,this._packets.shift();else{const c=a.data.slice(0,r);i.set(c,n),this._packets[0]={...a,data:a.data.slice(r),isSeparator:!0},r=0}}return i}dropPackets(e){const t=Math.min(e,this._packets.length);this._packets.splice(0,t)}dropVideoPackets(){this._packets=this._packets.filter(e=>e.mediaType!=="video")}get size(){return this._packets.length}get totalBytes(){return this._packets.reduce((e,t)=>e+t.data.byteLength,0)}get hasEnoughData(){return this.totalBytes>=this._batchSize}reset(){this._packets=[]}setBatchSize(e){this._batchSize=e}}class ke{constructor(){this._lastDot=0,this._totalSize=0,this._speed=[]}addSample(e){this._lastDot||(this._lastDot=Date.now()),this._totalSize+=e;const t=Date.now()-this._lastDot;t>=500&&(this._addSpeedSample(this._totalSize/t*8e3),this._totalSize=0,this._lastDot=Date.now())}_addSpeedSample(e){this._speed.push(e),this._speed=this._speed.slice(-6)}reset(){this._speed=[]}getUpSpeed(){return this._speed.length?parseInt(this._speed.reduce((e,t)=>e+=t,0)/this._speed.length):0}}class Ae extends de{constructor(e,t){super(),this.context=e,this.upSpeed=new ke,this.streamBuffer=new ve,this._inAdjustEncode=!1,this._dbrIncTimeout=0,this._dbrPrevBitrate=0,this._increaseTimer=0,this.isSending=!1,this.config={maxCacheSize:50,realSpeedPercent:.8,setting:{},uplinkBitrateCheckInterval:4*1e3,dbrIncreaseStep:.1},this.getCurrentBitrate=()=>this.context.videoEncoderConfig.bitrate??0,t&&this.updateConfig(t)}reset(){this.upSpeed.reset(),this.streamBuffer.reset(),this.isSending=!1,clearInterval(this._increaseTimer),this._increaseTimer=0,this._inAdjustEncode=!1}updateConfig(e){Object.assign(this.config,e)}_isHavingCongestion(){return this.streamBuffer.size>this.config.maxCacheSize}_setEncoderBitrate(e){const{width:t,height:i,framerate:n}=this.context.videoEncoderConfig;console.log(`set encode bitrate to specified ${e}`),this.context.emit("video-encoder-config",{bitrate:e,width:t,height:i,framerate:n}),this._inAdjustEncode=!0}_increaseBitrate(){this._dbrIncTimeout=0,this._dbrPrevBitrate=this.getCurrentBitrate();const e=this.context.videoEncoderConfig.originBitrate;if(!e)return;let t=this.getCurrentBitrate()+e*this.config.dbrIncreaseStep;t>=e?t=e:this._dbrIncTimeout=Date.now()+this.config.uplinkBitrateCheckInterval,this._setEncoderBitrate(t)}_decreaseBitrate(){const e=this._dbrPrevBitrate;let t=0,i;if(this.upstream.getEstimateBandwidth()&&this.upstream.getEstimateBandwidth()<this.getCurrentBitrate()&&(t=Math.floor(this.upstream.getEstimateBandwidth()*90/100/1e5)*1e5,t<50*1e3&&(t=50*1e3),this.upstream.clearEstimateBandwidth()),t)i=t;else if(e)console.log("use prev bitrate",e),i=e;else return;this._dbrPrevBitrate=0,this._dbrIncTimeout=Date.now()+this.config.uplinkBitrateCheckInterval,this._setEncoderBitrate(i)}_checkBitrate(){this._dbrIncTimeout&&Date.now()>=this._dbrIncTimeout&&(this._isHavingCongestion()?this._dbrIncTimeout=Date.now()+this.config.uplinkBitrateCheckInterval:this._increaseBitrate()),this._isHavingCongestion()&&this.streamBuffer.getVideoDuration()>500&&this._decreaseBitrate()}onSendStream(e,t){return this._checkBitrate(),this.streamBuffer.addPacket(e,t),this.upSpeed.addSample(e.byteLength),this._sendBuffer(),!1}async _sendBuffer(){if(!this.isSending){for(this.isSending=!0;;){const e=this.streamBuffer.shiftSinglePacket();if(!e)break;await this.sendStream(e)}this.isSending=!1}}onSendDgm(){return!0}_checkDeleteCache(e=!1){this._inAdjustEncode&&e&&(console.log(`ajust encode setting finish, delete cached ${this.streamBuffer.size} frame`),this.streamBuffer.reset(),this.upSpeed.reset(),this._inAdjustEncode=!1)}}class De extends p{constructor(e){super(),this.entry=e,this.on({"video-encoder-config":t=>{this.entry.videoEncoder.updateConfig(t)},"audio-encoder-config":t=>{this.entry.audioEncoder.updateConfig(t)}})}get videoEncoderConfig(){return this.entry.videoEncoder.getConfig()}get audioEncoderConfig(){return this.entry.audioEncoder.getConfig()}}class Ie extends p{constructor({videoEncoder:e,audioEncoder:t,transport:i,flv:n,strategy:r,formatAV:a=!0}={}){super(),this.hasVideo=!0,this.stopVideoInput=()=>{},this.stopAudioInput=()=>{},this._isVideoEncoded=!1,this._destroy=!1,this.reconnecting=!1,this.context=new De(this),this.videoEncoder=e||new k,this.audioEncoder=t||new v,this.transport=i||new he,this.flv=n||new Ee,a&&(this.avFormat=new ge,this.initAvFormatEventListener()),this.strategy=r||new Ae(this.context);const{sampleRate:o,numberOfChannels:c}=this.audioEncoder.getConfig();this.flv.updateConfig(_({sampleRate:o,numberOfChannels:c}))}initAvFormatEventListener(){this.avFormat.on("processed-frame",(e,t,i)=>{const n=e;if(n instanceof EncodedAudioChunk&&this.flv.receiveMediaFrame({type:y.AUDIO,frame:n},({buffer:r,type:a})=>{this.transport.sendStream(r,{extra:{isAudio:!0,type:a,key:!0,mediaType:"audio",dts:n.syncTimestamp}})}),n instanceof EncodedVideoChunk){const r=n.type==="key";this.flv.receiveMediaFrame({type:y.VIDEO,frame:n,description:i==null?void 0:i.description},({buffer:a,type:o})=>{this.transport.sendStream(a,{extra:{isAudio:!1,type:o,key:r,mediaType:"video",dts:n.syncTimestamp}})})}})}start(e){const t=e.data,i={},n={};if(e.video){const{width:r,height:a,frameRate:o}=t.setting.video||{};Object.assign(i,_({width:r,height:a,framerate:o}))}if(e.audio){const{sampleRate:r,channelCount:a}=t.setting.audio||{};Object.assign(n,_({sampleRate:r,numberOfChannels:a}))}if(t.cfg){const{channel:r,gopSize:a,sampleRate:o}=t.cfg;e.video&&Object.assign(i,_({keyGopSize:a,bitrate:t.bitrate.video,originBitrate:t.bitrate.video})),e.audio&&Object.assign(n,_({numberOfChannels:r,sampleRate:o,bitrate:t.bitrate.audio}))}this.videoEncoder.updateConfig(i),this.audioEncoder.updateConfig(n),this.init({transport:{url:t.url,maxReconnectCount:t.maxReconnectCount,autoReconnect:t.autoReconnect},input:{audio:e.audio,video:e.video}}),console.log("On worker start",t)}async init(e){this.initPassEvents();const{url:t,maxReconnectCount:i,autoReconnect:n}=e.transport;this.options=e,await this.transport.init({url:t,maxReconnectCount:i,autoReconnect:n,strategy:this.strategy,useDownstream:!1}),this.initSyncStuff(e),this.emit("engine-ready")}initPassEvents(){this.passEvents(this.transport,["connect-open","connect-close","disconnected","reconnecting","reconnected","reconnect-fail","connect-fail"])}initWriter(e){e&&(e.stream?this.initInputWithStream(e.stream):(e.audio||e.video)&&this.initInput({video:e.video,audio:e.audio}))}initSyncStuff({encoder:e,input:t,flv:i}){this.videoEncoder.init(e==null?void 0:e.video),this.audioEncoder.init(e==null?void 0:e.audio),this.initWriter(t),this.flv.updateConfig(i),this.initEngineEvents()}async initInput({audio:e,video:t}){this.hasVideo=!!t,this.flv.updateConfig({hasAudio:!!e,hasVideo:!!t}),await this.transport.onWait("upstream-ready");const i=(r=!1)=>()=>{console.log("encode finish: ",r)},n=(r=!1)=>a=>{console.warn("encode error: ",r,a)};e&&(this.stopAudioInput=O({readable:e,onFrame:r=>{this._destroy||this.reconnecting||this.audioEncoder.encode(r)},onFinish:i(!0),onError:n(!0)})),t&&(this.stopVideoInput=O({readable:t,onFrame:r=>{this._destroy||this.reconnecting||this.videoEncoder.encode(r)},onFinish:i(),onError:n()}))}initInputWithStream(e){const{video:t,audio:i}=W(e);this.hasVideo=!!t,t&&this.videoEncoder.updateConfig(t.settings),i&&this.audioEncoder.updateConfig(i.settings),this.initInput({video:t==null?void 0:t.readable,audio:i==null?void 0:i.readable})}muxAndSend(e,t,i){this.avFormat.formatFrame(e,t,this.hasVideo,i)}initEngineEvents(){this._isVideoEncoded=!this.hasVideo,this.audioEncoder.on({"first-frame-encoded":()=>{this.emit("first-audio-frame-encoded")},"frame-encoded":e=>{this.reconnecting||this.muxAndSend(e,"audio")},"encode-error":e=>{this.triggerError("audio encode error",e)},"config-error":e=>{this.triggerError("audio config error",e)},"config-change":e=>{console.log("Encoder config audio",e)},"decoder-config-change":e=>{this.flv.updateConfig(e)}}),this.videoEncoder.on({"first-frame-encoded":()=>{this.emit("first-video-frame-encoded")},"frame-encoded":(e,t)=>{this.reconnecting||(this._isVideoEncoded||(this._isVideoEncoded=!0),this.muxAndSend(e,"video",t))},"encode-error":e=>{this.triggerError("video encode error",e)},"config-error":e=>{this.triggerError("video config error",e)},"config-change":e=>{console.log("Encoder config video",e)}})}triggerError(e,t){this.emit("error",{info:e,err:t})}async destroy(){this.stopVideoInput(),this.stopAudioInput(),console.log("transport close 1"),await this.transport.destroy(),await this.videoEncoder.destroy(),await this.audioEncoder.destroy(),this.flv.destroy(),super.destroy()}online(){this.transport.online()}setBitrate(e,t){(t==="audio"?this.audioEncoder:this.videoEncoder).updateConfig({bitrate:e,originBitrate:e})}getStats(){return{video:this.videoEncoder.getStats(),audio:this.audioEncoder.getStats(),upspeed:this.transport.getUpSpeed(),upBandwidth:this.transport.getUpBandwidth()}}async reconnect(e){this.reconnecting=!0,this.strategy.reset(),this.avFormat.reset(),this.flv.reset(),this._isVideoEncoded=!this.hasVideo,this.videoEncoder.resetKeyFrame(),this.transport.reconnect(e),await this.transport.onWait("upstream-ready",{prev:!1}),this.reconnecting=!1}}class Te extends M{receiveMainMessage(e){var t,i,n,r,a,o,c;switch(e.type){case g.Start:{this.startMsg=e,this.engine=new Ie,this.initPassEvents(),this.engine.start(e);break}case g.Stop:(t=this.engine)==null||t.destroy();break;case g.UpdateTrack:{const{engine:h}=this;if(!h)return;const d=e.data;d.isAudio?h.stopAudioInput():h.stopVideoInput(),h.initInput({[d.isAudio?"audio":"video"]:d.stream}),(i=h.avFormat)==null||i.reset(),d.setting&&(d.isAudio?h.audioEncoder:h.videoEncoder).updateConfig(d.setting)}break;case g.SetBitrate:(n=this.engine)==null||n.setBitrate(e.data.bitrate,e.data.type);break;case g.Online:(r=this.engine)==null||r.online();break;case g.Reconnect:(o=this.engine)==null||o.reconnect((a=e.data)==null?void 0:a.url);break;case g.GetStats:this.send(g.GetStats,((c=this.engine)==null?void 0:c.getStats())||{});break}}initPassEvents(){["engine-ready","first-audio-frame-encoded","first-video-frame-encoded","error","connect-fail","connect-open","disconnected","reconnected","reconnecting","reconnect-fail","connect-close"].forEach(e=>{this.engine.on(e,t=>{this.send(g.PassEngineEvent,{event:e,data:t})})})}}new Te})();\n',tc=typeof self<"u"&&self.Blob&&new Blob([ec],{type:"text/javascript;charset=utf-8"});function Rg(i){let e;try{if(e=tc&&(self.URL||self.webkitURL).createObjectURL(tc),!e)throw"";const t=new Worker(e,{name:i==null?void 0:i.name});return t.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(e)}),t}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(ec),{name:i==null?void 0:i.name})}finally{e&&(self.URL||self.webkitURL).revokeObjectURL(e)}}var we=function(){return(we=Object.assign||function(i){for(var e,t=1,r=arguments.length;t<r;t++)for(var n in e=arguments[t])Object.prototype.hasOwnProperty.call(e,n)&&(i[n]=e[n]);return i}).apply(this,arguments)};function Dg(i,e){var t,r,n,s,a={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return s={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function o(d){return function(c){return function(u){if(t)throw new TypeError("Generator is already executing.");for(;a;)try{if(t=1,r&&(n=2&u[0]?r.return:u[0]?r.throw||((n=r.return)&&n.call(r),0):r.next)&&!(n=n.call(r,u[1])).done)return n;switch(r=0,n&&(u=[2&u[0],n.value]),u[0]){case 0:case 1:n=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,r=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(n=(n=a.trys).length>0&&n[n.length-1])&&(u[0]===6||u[0]===2)){a=0;continue}if(u[0]===3&&(!n||u[1]>n[0]&&u[1]<n[3])){a.label=u[1];break}if(u[0]===6&&a.label<n[1]){a.label=n[1],n=u;break}if(n&&a.label<n[2]){a.label=n[2],a.ops.push(u);break}n[2]&&a.ops.pop(),a.trys.pop();continue}u=e.call(i,a)}catch(l){u=[6,l],r=0}finally{t=n=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([d,c])}}}function xg(i,e){var t=typeof Symbol=="function"&&i[Symbol.iterator];if(!t)return i;var r,n,s=t.call(i),a=[];try{for(;(e===void 0||e-- >0)&&!(r=s.next()).done;)a.push(r.value)}catch(o){n={error:o}}finally{try{r&&!r.done&&(t=s.return)&&t.call(s)}finally{if(n)throw n.error}}return a}function Ln(){for(var i=[],e=0;e<arguments.length;e++)i=i.concat(xg(arguments[e]));return i}var ic,Ig=function(){function i(){this._hooks={},this._cache=[],this._hooksCache={}}return i.prototype.on=function(e,t){e&&t&&typeof t=="function"&&(this._hooks[e]||(this._hooks[e]=[]),this._hooks[e].push(t))},i.prototype.once=function(e,t){var r=this;e&&t&&typeof t=="function"&&this.on(e,function n(s){t(s),r.off(e,n)})},i.prototype.off=function(e,t){if(e&&this._hooks[e]&&this._hooks[e].length)if(t){var r=this._hooks[e].indexOf(t);r!==-1&&this._hooks[e].splice(r,1)}else this._hooks[e]=[]},i.prototype.emit=function(e,t,r){if(r){if(!e)return;this._cache.indexOf(r)!==-1?this._emit(e,t):(this._hooksCache.hasOwnProperty(r)||(this._hooksCache[r]={}),this._hooksCache[r].hasOwnProperty(e)||(this._hooksCache[r][e]=[]),this._hooksCache[r][e].push(t))}else this._emit(e,t)},i.prototype._emit=function(e,t){e&&this._hooks[e]&&this._hooks[e].length&&Ln(this._hooks[e]).forEach(function(r){try{r(t)}catch{}})},i.prototype.set=function(e){e&&this._cache.indexOf(e)===-1&&this._cache.push(e)},i}(),rc=function(i){return i!=null&&Object.prototype.toString.call(i)=="[object Object]"},Og=(ic=+Date.now()+Number((""+Math.random()).slice(2,8)),function(){return ic+=1}),Un=function(i){return function(e,t,r){if(typeof e=="string"&&typeof r=="number"){var n,s=[];r=r<=25?r:r%25;var a=String.fromCharCode(r+97);n=e.split(a);for(var o=0;o<n.length;o++){var d=parseInt(n[o],r);d=1*d^t;var c=String.fromCharCode(d);s.push(c)}return s.join("")}}(i,64,25)},Mg=function(i,e){i===void 0&&(i=function(){}),e===void 0&&(e=1e3);var t,r=Date.now()+e;return t=window.setTimeout(function n(){var s=Date.now()-r;i(),r+=e,t=window.setTimeout(n,Math.max(0,e-s))},e),function(){window.clearTimeout(t)}},nc=function(i){var e=document.createElement("a");return e.href=i,e},Gn=function(i){var e={};try{var t=nc(i).search;if(!t)return e;(t=t.slice(1)).split("&").forEach(function(r){var n,s,a=r.split("=");a.length&&(n=a[0],s=a[1]);try{e[n]=decodeURIComponent(s===void 0?"":s)}catch{e[n]=s}})}catch{}return e},sc=function(i){for(var e=0,t=0,r=(i+="").length,n=0;n<r;n++)((e=31*e+i.charCodeAt(t++))>0x7fffffffffff||e<-0x800000000000)&&(e&=0xffffffffffff);return e<0&&(e+=0x7ffffffffffff),e},Nn,Bn=(function(i,e){var t;t=function(){function r(){for(var s=0,a={};s<arguments.length;s++){var o=arguments[s];for(var d in o)a[d]=o[d]}return a}function n(s){return s.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)}return function s(a){function o(){}function d(u,l,h){if(typeof document<"u"){typeof(h=r({path:"/"},o.defaults,h)).expires=="number"&&(h.expires=new Date(1*new Date+864e5*h.expires)),h.expires=h.expires?h.expires.toUTCString():"";try{var p=JSON.stringify(l);/^[\{\[]/.test(p)&&(l=p)}catch{}l=a.write?a.write(l,u):encodeURIComponent(String(l)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),u=encodeURIComponent(String(u)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var f="";for(var v in h)h[v]&&(f+="; "+v,h[v]!==!0&&(f+="="+h[v].split(";")[0]));return document.cookie=u+"="+l+f}}function c(u,l){if(typeof document<"u"){for(var h={},p=document.cookie?document.cookie.split("; "):[],f=0;f<p.length;f++){var v=p[f].split("="),m=v.slice(1).join("=");l||m.charAt(0)!=='"'||(m=m.slice(1,-1));try{var b=n(v[0]);if(m=(a.read||a)(m,b)||n(m),l)try{m=JSON.parse(m)}catch{}if(h[b]=m,u===b)break}catch{}}return u?h[u]:h}}return o.set=d,o.get=function(u){return c(u,!1)},o.getJSON=function(u){return c(u,!0)},o.remove=function(u,l){d(u,"",r(l,{expires:-1}))},o.defaults={},o.withConverter=s,o}(function(){})},i.exports=t()}(Nn={exports:{}},Nn.exports),Nn.exports),Vn=function(i,e){try{return i?Bn.get(i,{domain:e||document.domain}):Bn.get()}catch{return""}},Fn=function(i,e,t,r){try{var n=r||document.domain,s=+new Date+(t||6048e5);Bn.set(i,e,{expires:new Date(s),path:"/",domain:n})}catch{}},Pg=function(){function i(){this.cache={}}return i.prototype.setItem=function(e,t){this.cache[e]=t},i.prototype.getItem=function(e){return this.cache[e]},i.prototype.removeItem=function(e){this.cache[e]=void 0},i.prototype.getCookie=function(e,t){return Vn(e,t)},i.prototype.setCookie=function(e,t,r,n){Fn(e,t,r,n)},i}(),jn,k,oc={getItem:function(i){try{var e=localStorage.getItem(i),t=e;try{e&&typeof e=="string"&&(t=JSON.parse(e))}catch{}return t||{}}catch{}return{}},setItem:function(i,e){try{var t=typeof e=="string"?e:JSON.stringify(e);localStorage.setItem(i,t)}catch{}},removeItem:function(i){try{localStorage.removeItem(i)}catch{}},getCookie:function(i,e){return Vn(i,e)},setCookie:function(i,e,t,r){Fn(i,e,t,r)},isSupportLS:function(){try{return localStorage.setItem("_ranger-test-key","hi"),localStorage.getItem("_ranger-test-key"),localStorage.removeItem("_ranger-test-key"),!0}catch{return!1}}()},Lg={getItem:function(i){try{var e=sessionStorage.getItem(i),t=e;try{e&&typeof e=="string"&&(t=JSON.parse(e))}catch{}return t||{}}catch{}return{}},setItem:function(i,e){try{var t=typeof e=="string"?e:JSON.stringify(e);sessionStorage.setItem(i,t)}catch{}},removeItem:function(i){try{sessionStorage.removeItem(i)}catch{}},getCookie:function(i,e){return Vn(i,e)},setCookie:function(i,e,t,r){Fn(i,e,t,r)},isSupportSession:function(){try{return sessionStorage.setItem("_ranger-test-key","hi"),sessionStorage.getItem("_ranger-test-key"),sessionStorage.removeItem("_ranger-test-key"),!0}catch{return!1}}()},Ke=function(){function i(e,t){this._storage=t&&t==="session"?Lg:!e&&oc.isSupportLS?oc:new Pg}return i.prototype.getItem=function(e){return this._storage.getItem(e)},i.prototype.setItem=function(e,t){this._storage.setItem(e,t)},i.prototype.getCookie=function(e,t){return this._storage.getCookie(e,t)},i.prototype.setCookie=function(e,t,r,n){this._storage.setCookie(e,t,r,n)},i.prototype.removeItem=function(e){this._storage.removeItem(e)},i}(),Ug=function(){function i(e,t,r){this.appid=e,this.domain=t,this.userAgent=window.navigator.userAgent,this.appVersion=window.navigator.appVersion,this.cookie_expire=r}return i.prototype.init=function(){var e=window.navigator.userAgent,t=window.navigator.language,r=document.referrer,n=r?nc(r).hostname:"",s=Gn(window.location.href),a=/Mobile|htc|mini|Android|iP(ad|od|hone)/.test(this.appVersion)?"wap":"web";this.utm=function(c,u,l,h){var p=new Ke(!1),f=new Ke(!1,"session"),v=c?"_tea_utm_cache_"+c:"_tea_utm_cache",m=c?"_$utm_from_url_"+c:"_$utm_from_url",b={},y=["tr_shareuser","tr_admaster","tr_param1","tr_param2","tr_param3","tr_param4","$utm_from_url"],_={ad_id:Number(u.ad_id)||void 0,campaign_id:Number(u.campaign_id)||void 0,creative_id:Number(u.creative_id)||void 0,utm_source:u.utm_source,utm_medium:u.utm_medium,utm_campaign:u.utm_campaign,utm_term:u.utm_term,utm_content:u.utm_content,tr_shareuser:u.tr_shareuser,tr_admaster:u.tr_admaster,tr_param1:u.tr_param1,tr_param2:u.tr_param2,tr_param3:u.tr_param3,tr_param4:u.tr_param4};try{var E=!1;for(var z in _)_[z]&&(y.indexOf(z)!==-1?(b.hasOwnProperty("tracer_data")||(b.tracer_data={}),b.tracer_data[z]=_[z]):b[z]=_[z],E=!0);if(E)f.setItem(m,"1"),p.setCookie(v,JSON.stringify(b),h,l);else{var T=p.getCookie(v,l);T&&(b=JSON.parse(T))}f.getItem(m)&&(b.hasOwnProperty("tracer_data")||(b.tracer_data={}),b.tracer_data.$utm_from_url=1)}catch{return _}return b}(this.appid,s,this.domain,this.cookie_expire);var o=this.browser(),d=this.os();return{browser:o.browser,browser_version:o.browser_version,platform:a,os_name:d.os_name,os_version:d.os_version,userAgent:e,screen_width:window.screen&&window.screen.width,screen_height:window.screen&&window.screen.height,device_model:this.getDeviceModel(d.os_name),language:t,referrer:r,referrer_host:n,utm:this.utm,latest_data:this.last(r,n)}},i.prototype.last=function(e,t){var r="",n="",s="",a=location.hostname,o=!1;if(e&&t&&a!==t){r=e,n=t,o=!0;var d=Gn(e);d.keyword&&(s=d.keyword)}return{$latest_referrer:r,$latest_referrer_host:n,$latest_search_keyword:s,isLast:o}},i.prototype.browser=function(){var e,t,r="",n=""+parseFloat(this.appVersion),s=this.userAgent;return s.indexOf("Edge")!==-1||s.indexOf("Edg")!==-1?(r="Microsoft Edge",s.indexOf("Edge")!==-1?(e=s.indexOf("Edge"),n=s.substring(e+5)):(e=s.indexOf("Edg"),n=s.substring(e+4))):(e=s.indexOf("MSIE"))!==-1?(r="Microsoft Internet Explorer",n=s.substring(e+5)):(e=s.indexOf("Lark"))!==-1?(r="Lark",n=s.substring(e+5,e+11)):(e=s.indexOf("MetaSr"))!==-1?(r="sougoubrowser",n=s.substring(e+7,e+10)):s.indexOf("MQQBrowser")!==-1||s.indexOf("QQBrowser")!==-1?(r="qqbrowser",s.indexOf("MQQBrowser")!==-1?(e=s.indexOf("MQQBrowser"),n=s.substring(e+11,e+15)):s.indexOf("QQBrowser")!==-1&&(e=s.indexOf("QQBrowser"),n=s.substring(e+10,e+17))):s.indexOf("Chrome")!==-1?(e=s.indexOf("MicroMessenger"))!==-1?(r="weixin",n=s.substring(e+15,e+20)):(e=s.indexOf("360"))!==-1?(r="360browser",n=s.substring(s.indexOf("Chrome")+7)):s.indexOf("baidubrowser")!==-1||s.indexOf("BIDUBrowser")!==-1?(s.indexOf("baidubrowser")!==-1?(e=s.indexOf("baidubrowser"),n=s.substring(e+13,e+16)):s.indexOf("BIDUBrowser")!==-1&&(e=s.indexOf("BIDUBrowser"),n=s.substring(e+12,e+15)),r="baidubrowser"):(e=s.indexOf("xiaomi"))!==-1?s.indexOf("openlanguagexiaomi")!==-1?(r="openlanguage xiaomi",n=s.substring(e+7,e+13)):(r="xiaomi",n=s.substring(e-7,e-1)):(e=s.indexOf("TTWebView"))!==-1?(r="TTWebView",n=s.substring(e+10,e+23)):((e=s.indexOf("Chrome"))!==-1||(e=s.indexOf("Chrome"))!==-1)&&(r="Chrome",n=s.substring(e+7)):s.indexOf("Safari")!==-1?(e=s.indexOf("QQ"))!==-1?(r="qqbrowser",n=s.substring(e+10,e+16)):(e=s.indexOf("Safari"))!==-1&&(r="Safari",n=s.substring(e+7),(e=s.indexOf("Version"))!==-1&&(n=s.substring(e+8))):(e=s.indexOf("Firefox"))!==-1?(r="Firefox",n=s.substring(e+8)):(e=s.indexOf("MicroMessenger"))!==-1?(r="weixin",n=s.substring(e+15,e+20)):(e=s.indexOf("QQ"))!==-1&&(r="qqbrowser",n=s.substring(e+3,e+8)),(t=n.indexOf(";"))!==-1&&(n=n.substring(0,t)),(t=n.indexOf(" "))!==-1&&(n=n.substring(0,t)),(t=n.indexOf(")"))!==-1&&(n=n.substring(0,t)),{browser:r,browser_version:n}},i.prototype.os=function(){for(var e="",t="",r=[{s:"Windows 10",r:/(Windows 10.0|Windows NT 10.0|Windows NT 10.1)/},{s:"Windows 8.1",r:/(Windows 8.1|Windows NT 6.3)/},{s:"Windows 8",r:/(Windows 8|Windows NT 6.2)/},{s:"Windows 7",r:/(Windows 7|Windows NT 6.1)/},{s:"Android",r:/Android/},{s:"iOS",r:/(iPhone|iPad|iPod)/},{s:"Mac OS X",r:/Mac OS X/},{s:"Mac OS",r:/(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/},{s:"chromeOS",r:/CrOS/},{s:"Linux",r:/(Linux|X11)/},{s:"Sun OS",r:/SunOS/}],n=0;n<r.length;n++){var s=r[n];if(s.r.test(this.userAgent)){(e=s.s)==="Mac OS X"&&this.isNewIpad()&&(e="iOS");break}}var a=function(l,h){var p=l.exec(h);return p&&p[1]?p[1]:""},o=function(l,h){var p=RegExp("(?:^|[^A-Z0-9-_]|[^A-Z0-9-]_|sprd-)(?:"+l+")","i").exec(h);return p?p.slice(1)[0]:""};/Windows/.test(e)&&(t=a(/Windows (.*)/,e),e="windows");var d,c;switch(e){case"Mac OS X":t=o("Mac[ +]OS[ +]X(?:[ /](?:Version )?(\\d+(?:[_\\.]\\d+)+))?",this.userAgent),e="mac";break;case"Android":d=this.userAgent,(c=a(/Android ([\.\_\d]+)/,d))||(c=a(/Android\/([\.\_\d]+)/,d)),t=c,e="android";break;case"iOS":t=this.isNewIpad()?o("Mac[ +]OS[ +]X(?:[ /](?:Version )?(\\d+(?:[_\\.]\\d+)+))?",this.userAgent):(t=/OS (\d+)_(\d+)_?(\d+)?/.exec(this.appVersion))?t[1]+"."+t[2]+"."+(0|t[3]):"",e="ios";break;case"chromeOS":var u=this.userAgent.indexOf("x86_64");t=this.userAgent.substring(u+7,u+16)}return{os_name:e,os_version:t}},i.prototype.getDeviceModel=function(e){var t="";try{if(e==="android")navigator.userAgent.split(";").forEach(function(s){s.indexOf("Build/")>-1&&(t=s.slice(0,s.indexOf("Build/")))});else if(e==="ios"||e==="mac"||e==="windows")if(this.isNewIpad())t="iPad";else{var r=navigator.userAgent.replace("Mozilla/5.0 (",""),n=r.indexOf(";");t=r.slice(0,n)}}catch{return t.trim()}return t.trim()},i.prototype.isNewIpad=function(){return this.userAgent!==void 0&&navigator.platform==="MacIntel"&&typeof navigator.maxTouchPoints=="number"&&navigator.maxTouchPoints>1},i}(),Gg={cn:"1fz22z22z1nz21z4mz4bz4bz22z1mz19z1jz1mz1ez4az1az22z1mz19z21z1lz21z21z1bz1iz4az1az1mz1k",va:"1fz22z22z1nz21z4mz4bz4bz22z1mz19z1jz1mz1ez4az1gz22z1mz19z21z1lz21z21z1bz1iz4az1az1mz1k",sg:"1fz22z22z1nz21z4mz4bz4bz22z1mz19z1jz1mz1ez4az22z1mz19z21z1lz21z21z1bz1iz4az1az1mz1k"},Ng={cn:"1fz22z22z1nz21z4mz4bz4bz1kz1az21z4az28z1gz1hz1gz1cz18z1nz1gz4az1az1mz1k",sg:"1fz22z22z1nz21z4mz4bz4bz21z1ez18z1jz1gz49z1kz1az21z4az19z27z22z1cz1mz24z1cz20z21z1cz18z4az1az1mz1k",va:"1fz22z22z1nz21z4mz4bz4bz1kz18z1jz1gz24z18z49z1kz1az21z4az19z27z22z1cz1mz24z1cz20z21z1cz18z4az1az1mz1k"},ki="5.1.10",Hn=function(){function i(e,t){this.collector=e,this.config=t,this.eventNameWhiteList=["__bav_page","__bav_beat","__bav_page_statistics","__bav_click","__bav_page_exposure"],this.paramsNameWhiteList=["$inactive","$inline","$target_uuid_list","$source_uuid","$is_spider","$source_id","$is_first_time","_staging_flag"],this.regStr=new RegExp("^[a-zA-Z0-9][a-z0-9A-Z_.-]{1,255}$")}return i.prototype.checkVerify=function(e){var t=this;if(!e||!e.length)return!1;var r=e[0];if(!r)return!1;var n=r.events,s=r.header;if(!n||!n.length)return!1;var a=!0;return n.forEach(function(o){if(!o)return a=!1,void(o.checkEvent="事件异常");t.checkEventName(o.event)||(a=!1,o.checkEvent="事件名不能以 $ or __开头"),t.checkEventParams(o.params)||(a=!1,o.checkParams="属性名不能以 $ or __开头")}),this.checkEventParams(s)||(a=!1),a},i.prototype.checkEventName=function(e){return!!e&&this.calculate(e,"event")},i.prototype.checkEventParams=function(e){var t=e;if(typeof e=="string"&&(t=JSON.parse(t)),!Object.keys(t).length)return!0;for(var r in t)return!!this.calculate(r,"params")&&(!(typeof t[r]=="string"&&t[r].length>1024)||(console.warn("params: "+r+" can not over 1024 byte, please check;"),!1));return!0},i.prototype.calculate=function(e,t){return(t==="event"?this.eventNameWhiteList:this.paramsNameWhiteList).indexOf(e)!==-1||!new RegExp("^\\$").test(e)&&!new RegExp("^__").test(e)||(console.warn((t==="event"?"event":"params")+" name: "+e+" can not start with $ or __, pleace check;"),!1)},i}();(function(i){i.Init="init",i.Config="config",i.Start="start",i.Ready="ready",i.UnReady="un-ready",i.TokenComplete="token-complete",i.TokenStorage="token-storage",i.TokenFetch="token-fetch",i.TokenError="token-error",i.ConfigUuid="config-uuid",i.ConfigWebId="config-webid",i.ConfigDomain="config-domain",i.CustomWebId="custom-webid",i.TokenChange="token-change",i.TokenReset="token-reset",i.ConfigTransform="config-transform",i.EnvTransform="env-transform",i.SessionReset="session-reset",i.SessionResetTime="session-reset-time",i.SetSessionId="set-session-id",i.Event="event",i.Events="events",i.EventNow="event-now",i.CleanEvents="clean-events",i.BeconEvent="becon-event",i.SubmitBefore="submit-before",i.SubmitScuess="submit-scuess",i.SubmitAfter="submit-after",i.SubmitError="submit-error",i.SubmitVerify="submit-verify",i.Stay="stay",i.ResetStay="reset-stay",i.StayReady="stay-ready",i.SetStay="set-stay",i.RouteChange="route-change",i.RouteReady="route-ready",i.Ab="ab",i.AbVar="ab-var",i.AbAllVars="ab-all-vars",i.AbConfig="ab-config",i.AbExternalVersion="ab-external-version",i.AbVersionChangeOn="ab-version-change-on",i.AbVersionChangeOff="ab-version-change-off",i.AbOpenLayer="ab-open-layer",i.AbCloseLayer="ab-close-layer",i.AbReady="ab-ready",i.AbComplete="ab-complete",i.AbTimeout="ab-timeout",i.Profile="profile",i.ProfileSet="profile-set",i.ProfileSetOnce="profile-set-once",i.ProfileUnset="profile-unset",i.ProfileIncrement="profile-increment",i.ProfileAppend="profile-append",i.ProfileClear="profile-clear",i.Autotrack="autotrack",i.AutotrackReady="autotrack-ready",i.CepReady="cep-ready",i.TracerReady="tracer-ready",i.sessionRecord="session-record",i.SessionRecordStart="session-record-start",i.SessionRecordPause="session-record-pause",i.SessionRecordEnd="session-record-end",i.SessionRecordReport="session-record-report",i.DestoryInstance="destory-instance",i.VisualCollectReady="visual-collect-ready",i.VisualApiReady="visual-api-ready",i.VisualApiUpdate="visual-api-update"})(jn||(jn={})),function(i){i.DEBUGGER_MESSAGE="debugger-message",i.DEBUGGER_MESSAGE_SDK="debugger-message-sdk",i.DEBUGGER_MESSAGE_FETCH="debugger-message-fetch",i.DEBUGGER_MESSAGE_FETCH_RESULT="debugger-message-fetch-result",i.DEBUGGER_MESSAGE_EVENT="debugger-message-event",i.DEVTOOL_WEB_READY="devtool-web-ready"}(k||(k={}));var C=jn,N=void 0,ac=new Date().getTimezoneOffset(),Bg=parseInt(""+-ac/60,10),Vg=60*ac,Fg=7776e6,jg=function(){function i(e,t){this.is_first_time=!0,this.configPersist=!1,this.initConfig=t,this.collect=e;var r=new Ug(t.app_id,t.cookie_domain||"",t.cookie_expire||Fg).init();this.eventCheck=new Hn(e,t);var n="__tea_cache_first_"+t.app_id;this.configKey="__tea_cache_config_"+t.app_id,this.sessionStorage=new Ke(!1,"session"),this.localStorage=new Ke(!1,"local"),t.configPersist&&(this.configPersist=!0,this.storage=t.configPersist===1?this.sessionStorage:this.localStorage);var s=this.localStorage.getItem(n);s&&s==1?this.is_first_time=!1:(this.is_first_time=!0,this.localStorage.setItem(n,"1")),this.envInfo={user:{user_unique_id:N,user_type:N,user_id:N,user_is_auth:N,user_is_login:N,device_id:N,web_id:N,ip_addr_id:N,user_unique_id_type:N},header:{app_id:N,app_name:N,app_install_id:N,install_id:N,app_package:N,app_channel:N,app_version:N,ab_version:N,os_name:r.os_name,os_version:r.os_version,device_model:r.device_model,ab_client:N,traffic_type:N,client_ip:N,device_brand:N,os_api:N,access:N,language:r.language,region:N,app_language:N,app_region:N,creative_id:r.utm.creative_id,ad_id:r.utm.ad_id,campaign_id:r.utm.campaign_id,log_type:N,rnd:N,platform:r.platform,sdk_version:ki,sdk_lib:"js",province:N,city:N,timezone:Bg,tz_offset:Vg,tz_name:N,sim_region:N,carrier:N,resolution:r.screen_width+"x"+r.screen_height,browser:r.browser,browser_version:r.browser_version,referrer:r.referrer,referrer_host:r.referrer_host,width:r.screen_width,height:r.screen_height,screen_width:r.screen_width,screen_height:r.screen_height,utm_term:r.utm.utm_term,utm_content:r.utm.utm_content,utm_source:r.utm.utm_source,utm_medium:r.utm.utm_medium,utm_campaign:r.utm.utm_campaign,tracer_data:JSON.stringify(r.utm.tracer_data),custom:{},wechat_unionid:N,wechat_openid:N}},this.ab_version="",this.evtParams={},this.reportErrorCallback=function(){},this.isLast=!1,this.setCustom(r),this.initDomain(),this.initABData()}return i.prototype.initDomain=function(){var e=this.initConfig.channel_domain;if(e)this.domain=e;else{var t=this.initConfig.channel;this.domain=Un(Ng[t])}},i.prototype.setDomain=function(e){this.domain=e},i.prototype.getDomain=function(){return this.domain},i.prototype.initABData=function(){var e="__tea_sdk_ab_version_"+this.initConfig.app_id,t=null;if(this.initConfig.ab_cross){var r=this.localStorage.getCookie(e,this.initConfig.ab_cookie_domain);t=r?JSON.parse(r):null}else t=this.localStorage.getItem(e);this.setAbCache(t)},i.prototype.setAbCache=function(e){this.ab_cache=e},i.prototype.getAbCache=function(){return this.ab_cache},i.prototype.setAbVersion=function(e){this.ab_version=e},i.prototype.getAbVersion=function(){return this.ab_version},i.prototype.clearAbCache=function(){this.ab_version="",this.ab_cache={}},i.prototype.getUrl=function(e){var t="";switch(e){case"event":t="/list";break;case"webid":t="/webid";break;case"tobid":t="/tobid"}var r="";return this.initConfig.caller&&(r="?sdk_version="+ki+"&sdk_name=web&app_id="+this.initConfig.app_id+"&caller="+this.initConfig.caller),""+this.getDomain()+t+r},i.prototype.setCustom=function(e){if(e&&e.latest_data&&e.latest_data.isLast)for(var t in delete e.latest_data.isLast,this.isLast=!0,e.latest_data)this.envInfo.header.custom[t]=e.latest_data[t]},i.prototype.set=function(e){var t=this;Object.keys(e).forEach(function(r){e[r]!==void 0&&e[r]!==null||t.delete(r);try{t.eventCheck.calculate(r,"config")}catch{}if(r==="traffic_type"&&t.isLast&&(t.envInfo.header.custom.$latest_traffic_source_type=e[r]),r==="evtParams")t.evtParams=we({},t.evtParams||{},e.evtParams||{});else if(r==="_staging_flag")t.evtParams=we({},t.evtParams||{},{_staging_flag:e._staging_flag});else if(r==="reportErrorCallback"&&typeof e[r]=="function")t.reportErrorCallback=e[r];else{var n="",s="";if(r.indexOf(".")>-1){var a=r.split(".");n=a[0],s=a[1]}n?n==="user"||n==="header"?t.envInfo[n][s]=e[r]:t.envInfo.header.custom[s]=e[r]:Object.hasOwnProperty.call(t.envInfo.user,r)?["user_type","ip_addr_id"].indexOf(r)>-1?t.envInfo.user[r]=e[r]?Number(e[r]):e[r]:["user_id","web_id","user_unique_id","user_unique_id_type"].indexOf(r)>-1?t.envInfo.user[r]=e[r]?String(e[r]):e[r]:["user_is_auth","user_is_login"].indexOf(r)>-1?t.envInfo.user[r]=!!e[r]:r==="device_id"&&(t.envInfo.user[r]=e[r]):Object.hasOwnProperty.call(t.envInfo.header,r)?t.envInfo.header[r]=e[r]:t.envInfo.header.custom[r]=e[r]}})},i.prototype.get=function(e){try{return e?e==="evtParams"?this.evtParams:e==="reportErrorCallback"?this[e]:Object.hasOwnProperty.call(this.envInfo.user,e)?this.envInfo.user[e]:Object.hasOwnProperty.call(this.envInfo.header,e)?this.envInfo.header[e]:JSON.parse(JSON.stringify(this.envInfo[e])):JSON.parse(JSON.stringify(this.envInfo))}catch(t){console.log("get config stringify error "),this.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:t.message})}},i.prototype.setStore=function(e){try{if(!this.configPersist)return;var t=this.storage.getItem(this.configKey)||{};if(t&&Object.keys(e).length){var r=Object.assign(e,t);this.storage.setItem(this.configKey,r)}}catch(n){console.log("setStore error"),this.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:n.message})}},i.prototype.getStore=function(){try{if(!this.configPersist)return null;var e=this.storage.getItem(this.configKey)||{};return e&&Object.keys(e).length?e:null}catch(t){return this.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:t.message}),null}},i.prototype.delete=function(e){try{if(!this.configPersist)return;var t=this.storage.getItem(this.configKey)||{};t&&Object.hasOwnProperty.call(t,e)&&(delete t[e],this.storage.setItem(this.configKey,t))}catch(r){this.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:r.message}),console.log("delete error")}},i}(),Hg=function(){function i(e,t){this.isLog=t||!1,this.name=e||""}return i.prototype.info=function(e){this.isLog&&console.log("%c %s","color: yellow; background-color: black;","[AppLog WEB SDK] [instance: "+this.name+"] "+e)},i.prototype.warn=function(e){this.isLog&&console.warn("[AppLog WEB SDK] [instance: "+this.name+"] "+e)},i.prototype.error=function(e){this.isLog&&console.error("[AppLog WEB SDK] [instance: "+this.name+"] "+e)},i.prototype.throw=function(e){throw this.error(this.name),new Error(e)},i}(),$g=function(){function i(){this.spiderBot=["Baiduspider","googlebot","360Spider","haosouspider","YoudaoBot","Sogou News Spider","Yisouspider","Googlebot","Headless","Applebot","Bingbot","PetalBot"]}return i.prototype.checkSpider=function(e){if(!e.enable_spider)return!1;var t=window.navigator.userAgent;if(!t)return!0;var r=!1;return this.spiderBot.forEach(function(n){t.indexOf(n)!==-1&&(r=!0)}),r},i}(),qg=function(){function i(t,r){this.collect=t,this.native=r}var e=i.prototype;return e.bridgeInject=function(){try{return!!this.native&&(AppLogBridge?(console.log("AppLogBridge is injected"),!0):(console.log("AppLogBridge is not inject"),!1))}catch{return console.log("AppLogBridge is not inject"),!1}},e.bridgeReady=function(){var t=this;return new Promise(function(r,n){try{t.bridgeInject()?AppLogBridge.hasStarted(function(s){console.log("AppLogBridge is started? : "+s),s?r(!0):n(!1)}):n(!1)}catch(s){console.log("AppLogBridge, error:"+JSON.stringify(s.stack)),n(!1)}})},e.setNativeAppId=function(t){try{AppLogBridge.setNativeAppId(JSON.stringify(t)),console.log("change bridge appid, event report with appid: "+t)}catch{console.error("setNativeAppId error")}},e.setConfig=function(t){var r=this;try{Object.keys(t).forEach(function(n){n==="user_unique_id"?r.setUserUniqueId(t[n]):t[n]?r.addHeaderInfo(n,t[n]):r.removeHeaderInfo(n)})}catch{console.error("setConfig error")}},e.setUserUniqueId=function(t){try{AppLogBridge.setUserUniqueId(t)}catch{console.error("setUserUniqueId error")}},e.addHeaderInfo=function(t,r){try{AppLogBridge.addHeaderInfo(t,r)}catch{console.error("addHeaderInfo error")}},e.setHeaderInfo=function(t){try{AppLogBridge.setHeaderInfo(JSON.stringify(t))}catch{console.error("setHeaderInfo error")}},e.removeHeaderInfo=function(t){try{AppLogBridge.removeHeaderInfo(t)}catch{console.error("removeHeaderInfo error")}},e.reportPv=function(t){this.onEventV3("predefine_pageview",t)},e.onEventV3=function(t,r){try{AppLogBridge.onEventV3(t,r),this.collect.emit(DebuggerMesssge.DEBUGGER_MESSAGE,{type:DebuggerMesssge.DEBUGGER_MESSAGE_EVENT,info:"bridge埋点上报",time:Date.now(),data:[{events:[{event:t,params:r}]}],code:200,status:"success"})}catch{console.error("onEventV3 error")}},e.profileSet=function(t){try{AppLogBridge.profileSet(t)}catch{console.error("profileSet error")}},e.profileSetOnce=function(t){try{AppLogBridge.profileSetOnce(t)}catch{console.error("profileSetOnce error")}},e.profileIncrement=function(t){try{AppLogBridge.profileIncrement(t)}catch{console.error("profileIncrement error")}},e.profileUnset=function(t){try{AppLogBridge.profileUnset(t)}catch{console.error("profileUnset error")}},e.profileAppend=function(t){try{AppLogBridge.profileAppend(t)}catch{console.error("profileAppend error")}},i}(),Nt=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(i){var e=16*Math.random()|0;return(i==="x"?e:3&e|8).toString(16)})},Kg=function(){function i(){}return i.prototype.apply=function(e,t){var r=this;this.collect=e,this.storage=new Ke(!1,"session"),this.sessionKey="__tea_session_id_"+t.app_id,this.expireTime=t.expireTime||18e5,this.disableSession=t.disable_session,this.disableSessionTimeCheck=t.disable_session_check,this.disableSession||(this.setSessionId(),this.collect.on(C.SessionReset,function(n){r.resetSessionId(n)}),this.collect.on(C.SessionResetTime,function(){r.updateSessionIdTime()}))},i.prototype.updateSessionIdTime=function(){var e=this.storage.getItem(this.sessionKey);if(e&&e.sessionId){var t=e.timestamp;Date.now()-t>this.expireTime?e={sessionId:Nt(),timestamp:Date.now()}:e.timestamp=Date.now(),this.storage.setItem(this.sessionKey,e),this.resetExpTime()}},i.prototype.setSessionId=function(){var e=this,t=this.storage.getItem(this.sessionKey);t&&t.sessionId?t.timestamp=Date.now():t={sessionId:Nt(),timestamp:Date.now()},this.storage.setItem(this.sessionKey,t),this.disableSessionTimeCheck||(this.sessionExp=setInterval(function(){e.checkEXp()},this.expireTime))},i.prototype.getSessionId=function(){var e=this.storage.getItem(this.sessionKey);return this.disableSession?"":e&&e.sessionId?e.sessionId:""},i.prototype.resetExpTime=function(){var e=this;this.sessionExp&&(clearInterval(this.sessionExp),this.sessionExp=setInterval(function(){e.checkEXp()},this.expireTime))},i.prototype.resetSessionId=function(e){var t={sessionId:e||Nt(),timestamp:Date.now()};this.storage.setItem(this.sessionKey,t)},i.prototype.checkEXp=function(){var e=this.storage.getItem(this.sessionKey);e&&e.sessionId&&Date.now()-e.timestamp+30>=this.expireTime&&(e={sessionId:Nt(),timestamp:Date.now()},this.storage.setItem(this.sessionKey,e))},i}(),Wg=function(){function i(){this.eventLimit=50,this.enable_ttwebid=!1,this.eventCache=[],this.beconEventCache=[]}return i.prototype.apply=function(e,t){var r=this;this.collect=e,this.config=t,this.configManager=e.configManager,this.eventCheck=new Hn(e,t),this.cacheStorgae=new Ke(!0),this.localStorage=new Ke(!1),this.maxReport=t.max_report||10,this.reportTime=t.reportTime||t.report_time||30,this.timeout=t.timeout||1e5,this.enable_ttwebid=t.enable_ttwebid,this.reportUrl=t.report_url||this.configManager.getUrl("event"),this.eventKey="__tea_cache_events_"+this.configManager.get("app_id"),this.beconKey="__tea_cache_events_becon_"+this.configManager.get("app_id"),this.abKey="__tea_sdk_ab_version_"+this.configManager.get("app_id"),this.refer_key="__tea_cache_refer_"+this.configManager.get("app_id"),this.pageId=Nt(),this.collect.on(C.Ready,function(){r.reportAll(!1)}),this.collect.on(C.ConfigDomain,function(){r.reportUrl=r.configManager.getUrl("event")}),this.collect.on(C.Event,function(s){r.event(s)}),this.collect.on(C.BeconEvent,function(s){r.beconEvent(s)}),this.collect.on(C.CleanEvents,function(){r.reportAll(!1)});var n=this.linster();this.collect.on(C.DestoryInstance,function(){n&&n()})},i.prototype.linster=function(){var e=this,t=function(){e.reportAll(!0)};window.addEventListener("unload",t,!1),function(n){navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)?window.addEventListener("pagehide",n,!1):window.addEventListener("beforeunload",n,!1)}(t);var r=function(){document.visibilityState==="hidden"&&e.reportAll(!0)};return document.addEventListener("visibilitychange",r,!1),function(){window.removeEventListener("unload",t),window.removeEventListener("pagehide",t,!1),window.removeEventListener("beforeunload",t,!1),document.removeEventListener("visibilitychange",r,!1)}},i.prototype.reportAll=function(e){this.report(e),this.reportBecon()},i.prototype.event=function(e){var t=this;try{var r=Ln(e,this.cacheStorgae.getItem(this.eventKey)||[]);if(this.cacheStorgae.setItem(this.eventKey,r),this.reportTimeout&&clearTimeout(this.reportTimeout),r.length>=this.maxReport)this.report(!1);else{var n=this.reportTime;this.reportTimeout=setTimeout(function(){t.report(!1),t.reportTimeout=null},n)}}catch(s){this.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:s.message})}},i.prototype.beconEvent=function(e){var t=Ln(e,this.cacheStorgae.getItem(this.beconKey)||[]);this.cacheStorgae.setItem(this.beconKey,t),this.collect.destroy||this.collect.sdkStop||this.collect.tokenManager.getReady()&&this.collect.sdkReady&&(this.cacheStorgae.removeItem(this.beconKey),this.send(this.split(this.merge(t)),!0))},i.prototype.reportBecon=function(){if(!this.collect.destroy&&!this.collect.sdkStop&&this.collect.tokenManager.getReady()&&this.collect.sdkReady){var e=this.cacheStorgae.getItem(this.beconKey)||[];e&&e.length&&(this.cacheStorgae.removeItem(this.beconKey),this.send(this.split(this.merge(e)),!0))}},i.prototype.report=function(e){if(!this.collect.destroy&&!this.collect.sdkStop&&this.collect.tokenManager.getReady()&&this.collect.sdkReady){var t=this.cacheStorgae.getItem(this.eventKey)||[];t.length&&(this.cacheStorgae.removeItem(this.eventKey),this.sliceEvent(t,e))}},i.prototype.sliceEvent=function(e,t){if(e.length>this.eventLimit)for(var r=0;r<e.length;r+=this.eventLimit){var n;n=e.slice(r,r+this.eventLimit);var s=this.split(this.merge(n));this.send(s,t)}else s=this.split(this.merge(e)),this.send(s,t)},i.prototype.handleRefer=function(){var e="";try{if(this.config.spa||this.config.autotrack){var t=this.localStorage.getItem(this.refer_key)||{};e=t.routeChange?t.refer_key:this.configManager.get("referrer")}else e=this.configManager.get("referrer")}catch{e=document.referrer}return e},i.prototype.merge=function(e,t){var r=this,n=this.configManager.get(),s=n.header,a=n.user;this.config.enable_pageid&&(s.custom.page_id=this.pageId),s.referrer=this.handleRefer(),s.custom=JSON.stringify(s.custom);var o=this.configManager.get("evtParams"),d=this.configManager.get("user_unique_id_type"),c=e.map(function(h){try{Object.keys(o).length&&!t&&(h.params=we({},o,h.params)),d&&(h.params.$user_unique_id_type=d);var p=r.configManager.getAbCache(),f=a[r.config.ab_user_mode]||a.user_unique_id;return p&&p.uuid&&p.uuid===f&&r.configManager.getAbVersion()&&(h.ab_sdk_version=r.configManager.getAbVersion()),h.session_id=r.collect.sessionManager.getSessionId(),h.params=JSON.stringify(h.params),h}catch(v){return r.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:v.message}),h}}),u=JSON.parse(JSON.stringify({events:c,user:a,header:s}));u.local_time=Math.floor(Date.now()/1e3),u.user_unique_type=this.config.enable_ttwebid?this.config.user_unique_type:void 0,u.verbose=1;var l=[];return l.push(u),l},i.prototype.split=function(e){return e=e.map(function(t){var r=[];return r.push(t),r})},i.prototype.send=function(e,t){var r=this;e.length&&(this.config.disable_track_event||e.forEach(function(n){try{var s=JSON.parse(JSON.stringify(n));r.config.filter&&((s=r.config.filter(s))||console.warn("filter must return data !!")),r.collect.eventFilter&&s&&((s=r.collect.eventFilter(s))||console.warn("filterEvent api must return data !!"));var a=s||n,o=JSON.parse(JSON.stringify(a));if(r.eventCheck.checkVerify(o),!a.length)return;var d=!0;if(a.forEach(function(c){c.events.length||(d=!1)}),!d)return;r.collect.emit(C.SubmitBefore,a),r.collect.requestManager.useRequest({url:r.reportUrl,data:a,success:function(c,u){c&&c.e!==0?(r.collect.emit(C.SubmitError,{type:"f_data",eventData:u,errorCode:c.e,response:c}),r.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_EVENT,info:"埋点上报失败",time:Date.now(),data:o,code:c.e,failType:"数据异常失败",status:"fail"})):(r.collect.emit(C.SubmitScuess,{eventData:u,res:c}),r.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_EVENT,info:"埋点上报成功",time:Date.now(),data:o,code:200,status:"success"}))},fail:function(c,u){r.configManager.get("reportErrorCallback")(c,u),r.collect.emit(C.SubmitError,{type:"f_net",eventData:c,errorCode:u}),r.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_EVENT,info:"埋点上报网络异常",time:Date.now(),data:o,code:u,failType:"网络异常失败",status:"fail"})},timeout:r.timeout,useBeacon:t,withCredentials:r.enable_ttwebid}),r.collect.emit(C.SubmitAfter,a)}catch(c){console.warn("something error, "+JSON.stringify(c.stack)),r.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:c.message})}}))},i}(),dr=function(){return function i(e){return e?(e^16*Math.random()>>e/4).toString(10):("10000000-1000-4000-8000"+-1e11).replace(/[018]/g,i)}().replace(/-/g,"").slice(0,19)},Jg=function(){function i(){this.cacheToken={},this.enableCookie=!1,this.enable_ttwebid=!1,this.enableCustomWebid=!1}return i.prototype.apply=function(e,t){var r=this;this.collect=e,this.config=t,this.configManager=this.collect.configManager,this.storage=new Ke(!1),this.tokenKey="__tea_cache_tokens_"+t.app_id,this.enable_ttwebid=t.enable_ttwebid,this.enableCustomWebid=t.enable_custom_webid,this.collect.on(C.ConfigUuid,function(n){r.setUuid(n)}),this.collect.on(C.ConfigWebId,function(n){r.setWebId(n)}),this.enableCookie=t.cross_subdomain,this.expiresTime=t.cookie_expire||6048e5,this.cookieDomain=t.cookie_domain||"",this.checkStorage()},i.prototype.checkStorage=function(){var e=this;if(this.enableCookie){var t=this.storage.getCookie(this.tokenKey,this.cookieDomain);this.cacheToken=t&&typeof t=="string"?JSON.parse(t):{}}else this.cacheToken=this.storage.getItem(this.tokenKey)||{};this.tokenType=this.cacheToken&&this.cacheToken._type_?this.cacheToken._type_:"default",this.tokenType!=="custom"||this.enableCustomWebid?this.enableCustomWebid?this.collect.on(C.CustomWebId,function(){e.tokenReady=!0,e.collect.emit(C.TokenComplete)}):this.checkEnv()||(this.enable_ttwebid?this.completeTtWid(this.cacheToken):this.check()):this.remoteWebid()},i.prototype.check=function(){this.cacheToken&&this.cacheToken.web_id?this.complete(this.cacheToken):this.config.disable_webid?this.complete({web_id:dr(),user_unique_id:this.configManager.get("user_unique_id")||dr()}):this.remoteWebid()},i.prototype.checkEnv=function(){var e=window.navigator.userAgent;if(e.indexOf("miniProgram")!==-1||e.indexOf("MiniProgram")!==-1){var t=Gn(window.location.href);return!(!t||!t.Web_ID)&&(this.complete({web_id:""+t.Web_ID,user_unique_id:this.configManager.get("user_unique_id")||""+t.Web_ID}),!0)}return!1},i.prototype.remoteWebid=function(){var e=this,t=this.configManager.getUrl("webid"),r={app_key:this.config.app_key,app_id:this.config.app_id,url:location.href,user_agent:window.navigator.userAgent,referer:document.referrer,user_unique_id:""};this.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"SDK 发起WEBID请求",logType:"fetch",level:"info",time:Date.now(),data:r}),this.collect.requestManager.useRequest({url:t,data:r,success:function(n){var s;if(n&&n.e===0)s=n.web_id,e.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"WEBID请求成功",logType:"fetch",level:"info",time:Date.now(),data:n});else{var a=dr();s=a,e.collect.configManager.set({localWebId:a}),e.collect.emit(C.TokenError),e.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"WEBID请求返回值异常",logType:"fetch",level:"warn",time:Date.now(),data:n}),e.collect.logger.warn("appid: "+e.config.app_id+" get webid error, use local webid~")}e.complete({web_id:e.configManager.get("web_id")||s,user_unique_id:e.configManager.get("user_unique_id")||s})},fail:function(){var n=dr();e.complete({web_id:e.configManager.get("web_id")||n,user_unique_id:e.configManager.get("user_unique_id")||n}),e.collect.configManager.set({localWebId:n}),e.collect.emit(C.TokenError),e.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"WEBID请求网络异常",logType:"fetch",level:"error",time:Date.now(),data:null}),e.collect.logger.warn("appid: "+e.config.app_id+", get webid error, use local webid~")},timeout:3e5})},i.prototype.complete=function(e){var t=e.web_id,r=e.user_unique_id;e.timestamp=Date.now(),this.collect.configManager.set({web_id:t,user_unique_id:r}),this.setStorage(e),this.tokenReady=!0,this.collect.emit(C.TokenComplete)},i.prototype.completeTtWid=function(e){var t=e.user_unique_id||"",r=this.configManager.get("user_unique_id");(r||t)&&this.configManager.set({user_unique_id:r||t}),this.setStorage(e),this.tokenReady=!0,this.collect.emit(C.TokenComplete)},i.prototype.setUuid=function(e){if(e&&["null","undefined","Null","None"].indexOf(e)===-1){var t=String(e),r=this.configManager.get("user_unique_id"),n=this.cacheToken&&this.cacheToken.user_unique_id;if(t===r&&t===n)return;this.configManager.set({user_unique_id:t}),this.cacheToken?this.cacheToken.user_unique_id=t:(this.cacheToken={},this.cacheToken.user_unique_id=t),this.cacheToken.timestamp=Date.now(),this.setStorage(this.cacheToken),this.collect.emit(C.TokenChange,"uuid"),this.collect.emit(C.SessionReset)}else this.clearUuid()},i.prototype.clearUuid=function(){this.config.enable_ttwebid||this.configManager.get("web_id")&&this.configManager.get("user_unique_id")!==this.configManager.get("web_id")&&(this.configManager.set({user_unique_id:this.configManager.get("web_id")}),this.cacheToken&&this.cacheToken.web_id&&(this.cacheToken.user_unique_id=this.cacheToken.web_id,this.cacheToken.timestamp=Date.now(),this.setStorage(this.cacheToken)),this.collect.emit(C.TokenReset,"uuid"))},i.prototype.setWebId=function(e){if(e&&!this.config.enable_ttwebid){this.cacheToken&&this.cacheToken.web_id?this.cacheToken.web_id!==e&&(this.cacheToken.user_unique_id=this.cacheToken.web_id===this.cacheToken.user_unique_id?e:this.cacheToken.user_unique_id,this.cacheToken.web_id=e):(this.cacheToken={},this.cacheToken.web_id=e,this.cacheToken.user_unique_id=e),this.cacheToken.timestamp=Date.now();var t=this.configManager.get("web_id"),r=this.configManager.get("user_unique_id");r&&r!==t||(this.configManager.set({user_unique_id:e}),this.collect.emit(C.TokenChange,"uuid")),t!==e&&(this.configManager.set({web_id:e}),this.collect.emit(C.TokenChange,"webid")),this.setStorage(this.cacheToken)}},i.prototype.setStorage=function(e){e._type_=this.enableCustomWebid?"custom":"default",delete e["diss".split("").reverse().join("")],this.enableCookie||this.enable_ttwebid?(this.storage.setCookie(this.tokenKey,e,this.expiresTime,this.cookieDomain),this.enable_ttwebid&&(delete e.web_id,this.storage.setItem(this.tokenKey,e))):this.storage.setItem(this.tokenKey,e),this.cacheToken=e},i.prototype.getReady=function(){return this.tokenReady},i.prototype.getTobId=function(){var e=this;return new Promise(function(t){e.collect.requestManager.useRequest({url:e.configManager.getUrl("tobid"),data:{app_id:e.config.app_id,user_unique_id:e.configManager.get("user_unique_id"),web_id:e.configManager.get("web_id"),user_unique_id_type:e.configManager.get("user_unique_id_type")},success:function(r){r&&r.e===0?t(r.tobid):t("")},fail:function(){t("")},time:3e4,withCredentials:e.enable_ttwebid})})},i}(),Xg=function(){return!(!window.navigator||!window.navigator.sendBeacon)},Zg=function(){function i(e,t){this.collector=e,this.config=t,this.requestType=t.request_type||"xhr",this.supportBeacon=Xg(),this.errorCode={NO_URL:4001,IMG_ON:4e3,IMG_CATCH:4002,BEACON_FALSE:4003,XHR_ON:500,RESPONSE:5001,TIMEOUT:5005},this.customHeader=t.custom_request_header||{}}return i.prototype.useFetch=function(e){var t=e.url,r=e.data,n=e.method,s=e.success,a=e.fail,o={"Content-Type":"application/json; charset=utf-8"};if(Object.keys(this.customHeader).length)for(var d in this.customHeader)o[d]=this.customHeader[d];window.fetch?fetch(t,{method:n||"POST",headers:o,body:JSON.stringify(r)}).then(function(c){return c.json()}).then(function(c){s&&s(c)}).catch(function(c){a&&a(r,c)}):(this.requestType="xhr",console.log("your brwoser not support fetch, use xhr"),this.useRequest({url:t,data:r,method:n,success:s,fail:a}))},i.prototype.useBeacon=function(e){var t=e.url,r=e.data,n=e.success,s=e.fail;window.navigator.sendBeacon(t,JSON.stringify(r))?n&&n():s&&s(r,this.errorCode.BEACON_FALSE)},i.prototype.useRequest=function(e){var t=this,r=e.url,n=e.data,s=e.method,a=e.success,o=e.fail,d=e.timeout,c=e.useBeacon,u=e.withCredentials,l=e.app_key,h=e.forceXhr;if(c&&this.supportBeacon)this.useBeacon({url:r,data:n,method:s,success:a,fail:o});else if(this.requestType!=="fetch"||h)try{var p=new XMLHttpRequest,f=s||"POST";if(p.open(f,""+r,!0),p.setRequestHeader("Content-Type","application/json; charset=utf-8"),l&&p.setRequestHeader("X-MCS-AppKey",""+l),Object.keys(this.customHeader).length)for(var v in this.customHeader)p.setRequestHeader(v,this.customHeader[v]);u&&(p.withCredentials=!0),d&&(p.timeout=d,p.ontimeout=function(){o&&o(n,t.errorCode.TIMEOUT)}),p.onload=function(){if(a){var m=null;if(p.responseText){try{m=JSON.parse(p.responseText)}catch{m={}}a(m,n)}}},p.onerror=function(){p.abort(),o&&o(n,t.errorCode.XHR_ON)},p.send(JSON.stringify(n))}catch{}else this.useFetch({url:r,data:n,method:s,success:a,fail:o})},i}(),Qg=function(){function i(e,t){if(this.devToolReady=!1,this.devToolOrigin="*",this.sendAlready=!1,this.eventVerifyReady=!1,t.enable_debug){var r=e.adapters.storage;this.collect=e,this.config=t,this.app_id=t.app_id,this.cacheStorgae=new r(!1,"session"),this.eventVerifyInfo=[],this.sdk_type=ki.includes("tob")?"tob":"inner",this.filterEvent=["__bav_page","__bav_beat","__bav_page_statistics","__bav_click","__bav_page_exposure","bav2b_page","bav2b_beat","bav2b_page_statistics","bav2b_click","bav2b_page_exposure","_be_active","predefine_pageview","__profile_set","__profile_set_once","__profile_increment","__profile_unset","__profile_append","predefine_page_alive","predefine_page_close","abtest_exposure"],this.load()}}return i.prototype.loadScript=function(e){try{var t=document.createElement("script");t.src=e,t.onerror=function(){console.log("load DevTool render fail")},t.onload=function(){console.log("load DevTool render success")},document.getElementsByTagName("body")[0].appendChild(t)}catch(r){console.log("devTool load fail, "+r.message)}},i.prototype.parseUrl=function(){var e={};try{var t=window.location.href.split("?")[1].split("&");t.length&&t.forEach(function(r){var n=r.split("=");e[decodeURIComponent(n[0])]=decodeURIComponent(n[1])})}catch{}return e},i.prototype.load=function(){return e=this,t=void 0,n=function(){var s,a,o;return Dg(this,function(d){switch(d.label){case 0:if(d.trys.push([0,2,,3]),(s=this.parseUrl()).open_devtool_web&&s.app_id){if(parseInt(s.app_id)!==this.app_id)return[2]}else if(!this.getStorage())return[2];return this.loadBaseInfo(),this.loadHook(),this.setStorage(),this.addLintener(),this.loadDebuggerModule(),this.loadDevTool(),[4,this.fetchEventInfo()];case 1:return a=d.sent(),this.sendData("devtool:web:verify",a.verifyStatus),this.eventVerifyInfo=a.data,[3,3];case 2:return o=d.sent(),console.log("debug fail, "+o.message),[3,3];case 3:return[2]}})},new((r=void 0)||(r=Promise))(function(s,a){function o(u){try{c(n.next(u))}catch(l){a(l)}}function d(u){try{c(n.throw(u))}catch(l){a(l)}}function c(u){u.done?s(u.value):new r(function(l){l(u.value)}).then(o,d)}c((n=n.apply(e,t||[])).next())});var e,t,r,n},i.prototype.getStorage=function(){var e=this.cacheStorgae.getItem("__applog_devtool_web");return e&&parseInt(e)===this.app_id},i.prototype.setStorage=function(){this.cacheStorgae.setItem("__applog_devtool_web",this.app_id)},i.prototype.loadDevTool=function(){this.loadScript("https://lf3-cdn-tos.bytescm.com/obj/static/log-sdk/collect/devtool/debug-web.0.0.2.js")},i.prototype.loadBaseInfo=function(){var e=this;this.info=[{title:"基本信息",type:1,infoName:{app_id:this.config.app_id,channel:this.config.channel,上报域名:this.collect.configManager.getDomain(),SDK版本:ki,SDK引入方式:"npm"}},{title:"用户信息",type:2,infoName:{uuid:this.collect.configManager.get("user").user_unique_id||"",web_id:this.collect.configManager.get("user").web_id||"",ssid:"点击获取SSID"}},{title:"公共参数信息",type:2,infoName:{浏览器:this.collect.configManager.get("browser"),浏览器版本:this.collect.configManager.get("browser_version"),平台:this.collect.configManager.get("platform"),设备型号:this.collect.configManager.get("device_model"),操作系统:this.collect.configManager.get("os_name"),操作系统版本:this.collect.configManager.get("os_version"),屏幕分辨率:this.collect.configManager.get("resolution"),来源:this.collect.configManager.get("referrer"),自定义信息:""}},{title:"配置信息",type:3,infoName:{全埋点:!!this.config.autotrack,停留时长:!!this.config.enable_stay_duration}},{title:"A/B配置信息",type:4,infoName:{"A/B实验":!!this.config.enable_ab_test}},{title:"客户端信息",type:3,infoName:{打通开关:!!this.config.Native}}],this.log=[],this.event=[],this.collect.on(C.Ready,function(){e.info[1].infoName.uuid=e.collect.configManager.get("user").user_unique_id,e.info[1].infoName.web_id=e.collect.configManager.get("user").web_id,e.info[2].infoName.自定义信息=JSON.stringify(e.collect.configManager.get("custom")),e.config.enable_ab_test&&(e.info[4].infoName.已曝光VID=e.collect.configManager.getAbVersion(),e.info[4].infoName["A/B域名"]=e.config.ab_channel_domain||Un(Gg[e.config.channel]),e.info[4].infoName.全部配置=e.collect.configManager.getAbData()),e.config.Native&&(e.info[5].infoName.是否打通=!!e.collect.bridgeReport)})},i.prototype.loadHook=function(){var e=this;this.collect.stop(),this.collect.on(k.DEBUGGER_MESSAGE,function(t){switch(t.type){case k.DEBUGGER_MESSAGE_SDK:var r={time:t.time,type:t.logType||"sdk",level:t.level,name:t.info,show:!0,levelShow:!0,needDesc:!!t.data};return t.data&&(r.desc={content:JSON.stringify(t.data)}),e.updateLog(r),t.secType&&t.secType==="AB"?(e.info[4].infoName.已曝光VID=e.collect.configManager.getAbVersion(),e.info[4].infoName.全部配置=e.collect.configManager.getAbData()):t.secType==="USER"&&(e.info[1].infoName.uuid=e.collect.configManager.get("user").user_unique_id,e.info[1].infoName.web_id=e.collect.configManager.get("user").web_id),void e.updateInfo();case k.DEBUGGER_MESSAGE_EVENT:if(t.data&&t.data.length){var n=t.data[0],s=n.events,a=n.header;if(a.custom=JSON.parse(a.custom),!s.length)return;s.forEach(function(o){o.checkShow=!0,o.searchShow=!0,o.type=e.filterEvent.indexOf(o.event)!==-1?"sdk":"cus",o.type=e.collect.bridgeReport?"bridge":o.type,o.params=JSON.parse(o.params),t.status==="fail"&&(o.info={message:"code: "+t.code+", msg: "+t.failType},o.failType=t.failType);var d=!1,c=!1,u=[];e.eventVerifyInfo&&e.eventVerifyInfo.length&&(e.eventVerifyInfo.forEach(function(l){l.eventStatus=!1}),e.eventVerifyInfo.forEach(function(l){o.event===l.name&&(c=!0,d=!0,o.verifyStatus=l.status,Object.keys(o.params).forEach(function(h){if(h!=="event_index"){var p={};p.paramsKey=h,p.paramsKeyValue=o.params[""+h],p.paramsStatus=!1,p.paramsStatusInfo="属性未录入",l.params.forEach(function(f){h===f.name&&(f.checked=!0,typeof o.params[""+h]!==e.formatParamsType(f.value_type)?p.paramsStatusInfo="属性类型错误,应为"+e.formatParamsType(f.value_type):(p.paramsStatus=!0,p.paramsStatusInfo=""))}),u.push(p),p.paramsStatusInfo&&(c=!1)}}),l.params.forEach(function(h){h.checked||(c=!1,u.push({paramsKey:h.name,paramsStatus:!1,paramsStatusInfo:"缺少属性"+h.name}))}))})),o.reportStatus=t.status==="success",o.paramsInfo=u,o.eventStatus=c&&t.status==="success",o.eventRecord=d}),e.updateEvent(n)}return}})},i.prototype.formatParamsType=function(e){switch(e){case 0:return"string";case 1:case 2:return"number";case 3:return"boolean"}},i.prototype.fetchEventInfo=function(){var e=this;try{return new Promise(function(t){var r=Un("1fz22z22z1nz21z4mz4bz4bz18z1nz1nz1jz1mz1ez1fz1mz1kz1cz4az19z27z22z1cz1bz18z1lz1az1cz4az1lz1cz22z4bz18z1nz1nz1jz1mz1ez1bz1cz24z22z1mz1mz1jz21z4bz1mz1nz1cz1lz18z1nz1gz4bz24z4dz4bz18z1nz1nz16z1jz1mz1ez16z1kz1cz22z18")+"?app_id="+e.app_id+"&t="+e.sdk_type+"&nc=false";e.collect.requestManager.useRequest({url:r,method:"GET",success:function(n){e.eventVerifyReady=!0,e.collect.reStart(),t({data:n.data,verifyStatus:!0})},fail:function(){e.eventVerifyReady=!0,e.collect.reStart(),t({data:[],verifyStatus:!1})},timeout:3e3})})}catch{return{data:[],verifyStatus:!1}}},i.prototype.addLintener=function(){var e=this;window.addEventListener("message",function(t){if(t.origin===location.origin){if(t&&t.data&&t.data.type==="devtool:web:ready"){if(e.devToolOrigin=t.origin,e.devToolReady=!0,e.sendAlready)return;e.sendData("devtool:web:init",{info:e.info,log:e.log,event:e.event,appid:e.app_id}),e.sendAlready=!0}t&&t.data&&t.data.type==="devtool:web:ssid"&&e.collect.getToken(function(r){e.info[1].infoName.ssid=r.tobid,e.updateInfo()}),t&&t.data&&t.data.type}})},i.prototype.sendData=function(e,t){try{var r={type:e,payload:t};(window.opener||window.parent).postMessage(r,this.devToolOrigin)}catch{}},i.prototype.updateInfo=function(){this.devToolReady&&this.sendData("devtool:web:info",this.info)},i.prototype.updateLog=function(e){this.devToolReady?this.sendData("devtool:web:log",e):this.log.push(e)},i.prototype.updateEvent=function(e){this.devToolReady||this.eventVerifyReady?this.sendData("devtool:web:event",e):this.event.push(e)},i.prototype.loadDebuggerModule=function(){var e=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.appendChild(document.createTextNode(`#debugger-applog-web {
69
+ `);let t=!1;for(const r of e)if(r.includes("level-asymmetry-allowed=1")&&r.includes("packetization-mode=1")&&r.includes("profile-level-id=42e0")){t=!0;break}if(t){const r=navigator.userAgent.toLowerCase();let n=!1;const s=[/miuibrowser/,/70.*HeyTapBrowser/i];for(const a of s)a.test(r)&&(n=!0);return!n}return!1}const pg=async()=>{let i=await or("sendonly");return navigator.userAgent.includes("VivoBrowser")&&(i=await or("sendonly")),Pe.h264encode=$a(i),Pe.vp8encode=i.indexOf("vp8")>-1,Pe},fg=async()=>{let i=await or("recvonly");return navigator.userAgent.includes("VivoBrowser")&&(i=await or("recvonly")),Pe.h264decode=$a(i),Pe.vp8decode=i.indexOf("vp8")>-1,Pe},mg=async()=>{if(typeof Pe.h264encode>"u")try{await pg()}catch{return!1}return Pe.h264encode||!1},_g=async()=>{if(typeof Pe.h264decode>"u")try{await fg()}catch{return!1}return Pe.h264decode||!1},le=new st("PCConnect"),ss=class ss{constructor(e,t,r){this._pc=null,this._ms=new MediaStream,this._signalUrl="",this._videoTransceiver=null,this._audioTransceiver=null,this._opts=void 0,this._sessionId=Date.now(),this._signalUrl=e,this._opts=t,this._onConnectStateChange=r}get isPushing(){var e,t,r,n;return!!((t=(e=this._videoTransceiver)==null?void 0:e.sender)!=null&&t.track||(n=(r=this._audioTransceiver)==null?void 0:r.sender)!=null&&n.track)}get videoSenderTrackStats(){var e,t,r,n;return{track_enabled:(t=(e=this._videoTransceiver)==null?void 0:e.sender.track)==null?void 0:t.enabled,track_muted:(n=(r=this._videoTransceiver)==null?void 0:r.sender.track)==null?void 0:n.muted}}get pushUrl(){return this._signalUrl}get sessionId(){return this._sessionId}async getSdpWithSdp({url:e,offer:t,frameRate:r,isReconnect:n}){var a;return await ja(e,{method:"POST",mode:"cors",body:JSON.stringify({sessionId:""+this._sessionId,version:"1.0-html",localSdp:t,metadata:{platform:"Web",framerate:r}})},{...this._opts,timeout:n?10*Io:(a=this._opts)==null?void 0:a.timeout})}async getCustomRTMAnswerSdp(e){var t,r;try{const n=await((r=(t=De.instance).getCustomRTMAnswerSdp)==null?void 0:r.call(t,e));return n?{code:200,message:"success",remoteSdp:n}:{code:400,message:"getCustomRTMAnswerSdp return empty sdp",remoteSdp:null}}catch{return{code:500,message:"getCustomRTMAnswerSdp error",remoteSdp:null}}}async publish(e,t,r){const n=new RTCPeerConnection;this._pc=n,this._bindRTCEvent();const s=e.filter(u=>(u==null?void 0:u.kind)==="audio")[0],a=e.filter(u=>(u==null?void 0:u.kind)==="video")[0];s&&this._ms.addTrack(s),a&&this._ms.addTrack(a),this._audioTransceiver=n.addTransceiver(s||"audio",{direction:"sendonly",sendEncodings:[{maxBitrate:t[0]}],streams:[this._ms]}),le.log("add track to pc,",s),this._videoTransceiver=n.addTransceiver(a||"video",{direction:"sendonly",sendEncodings:[{maxBitrate:t[1]}],streams:[this._ms]}),le.log("add track to pc,",a);const o=await n.createOffer();le.groupCollapsed("local offer"),le.log(o.sdp),await n.setLocalDescription(o);let d;if(De.instance.getCustomRTMAnswerSdp?d=await this.getCustomRTMAnswerSdp(o):d=await this.getSdpWithSdp({url:this._signalUrl,offer:o,frameRate:r==null?void 0:r.frameRate,isReconnect:r==null?void 0:r.isReconnect}),(d==null?void 0:d.code)!==200)throw{code:d.code,message:d.message};le.log("remote answer:"),le.log(d.remoteSdp.sdp);const c=sr.parse(d.remoteSdp.sdp);if(c.media.forEach(u=>{var l;(l=u.fingerprint)!=null&&l.hash&&(u.fingerprint.hash=u.fingerprint.hash.toUpperCase()),u.type==="audio"?ug(u):u.type==="video"&&(dg(u),Ha(u,"software"),hg(u,t[1]))}),d.remoteSdp.sdp=sr.write(c),le.log("remote answer modified"),le.log(d.remoteSdp.sdp),le.groupEnd(),n.connectionState==="closed"){le.log("PeerConnection is closed, skipping setRemoteDescription");return}O(I.PUSH_SDP_INFO,{offer_sdp:o.sdp,answer_sdp:d.remoteSdp.sdp}),await n.setRemoteDescription(d.remoteSdp)}updateVideoEncodeType(e){var s,a;const t=this._pc,r=(s=t==null?void 0:t.localDescription)==null?void 0:s.sdp,n=(a=t==null?void 0:t.remoteDescription)==null?void 0:a.sdp;if(r&&n){const o=sr.parse(n);o.media.forEach(d=>{d.type==="video"&&Ha(d,e)}),t.setLocalDescription(t.localDescription),t.setRemoteDescription({type:"answer",sdp:sr.write(o)})}}async updatePublish(e,t){var s,a;let r;t==="video"?r=this._videoTransceiver:r=this._audioTransceiver;const n=(s=r==null?void 0:r.sender)==null?void 0:s.track;(n==null?void 0:n.id)!==(e==null?void 0:e.id)&&(await((a=r==null?void 0:r.sender)==null?void 0:a.replaceTrack(e)),le.log(`replace ${t} track done! ${n==null?void 0:n.label} -> ${e==null?void 0:e.label}`))}applyBitrate(e,t,r){var a,o,d;const n=t==="video"?(a=this._videoTransceiver)==null?void 0:a.sender:(o=this._audioTransceiver)==null?void 0:o.sender;if(!n)return;const s=n.getParameters();s.encodings=(d=s.encodings)!=null&&d.length?s.encodings:[{}],r?s.encodings[0].minBitrate=e:s.encodings[0].maxBitrate=e,n.setParameters(s),le.log(`set bitrate for ${t}, ${e} bps, min:${r}`)}unpublish(){var e,t;(e=this._pc)==null||e.getSenders().forEach(r=>{var n;(n=this._pc)==null||n.removeTrack(r)}),(t=this._pc)==null||t.close(),this._audioTransceiver=null,this._videoTransceiver=null,this._pc=null,le.log("close pc!")}getStats(){var e,t;return Mn((e=this._audioTransceiver)==null?void 0:e.sender,(t=this._videoTransceiver)==null?void 0:t.sender)}getStatsSnapshoot(e){var t,r;return ig(e||100,(t=this._audioTransceiver)==null?void 0:t.sender,(r=this._videoTransceiver)==null?void 0:r.sender)}_bindRTCEvent(){const e=this._pc;e==null||e.addEventListener("connectionstatechange",()=>{le.log("onconnectionstatechange:",e.connectionState),this._onConnectStateChange(e.connectionState)})}};ss.isSupported=async()=>{try{return lg()||!window.RTCPeerConnection||!window.RTCPeerConnection.prototype.addTransceiver||!window.RTCPeerConnection.prototype.createDataChannel?!1:await _g()&&await mg()}catch{return!1}};let ar=ss;var ot=(i=>(i.OnError="onerror",i.OnConnectClosed="onconnectclosed",i.OnFirstFramePushed="onfirstframepushed",i))(ot||{}),at=(i=>(i.Video="video",i.Audio="audio",i))(at||{}),Se=(i=>(i.Init="init",i.AvExist="avexist",i.VideoFrame="videoframe",i.MockVideoEncode="mockvideoencode",i.AudioFrame="audioframe",i.AdjustBitrate="adjustbitrate",i.Publish="publish",i.UnPublish="unpublish",i.Download="download",i.GetStats="getstats",i.EncodeConfig="encodeconfig",i))(Se||{}),bt=(i=>(i.Ready="ready",i.Error="error",i.FirstFramePushed="firstframepushed",i.Flvfile="flvfile",i.STATS="stats",i.Close="close",i))(bt||{}),Pn={exports:{}},qa;function gg(){return qa||(qa=1,function(i){var e=Object.prototype.hasOwnProperty,t="~";function r(){}Object.create&&(r.prototype=Object.create(null),new r().__proto__||(t=!1));function n(d,c,u){this.fn=d,this.context=c,this.once=u||!1}function s(d,c,u,l,h){if(typeof u!="function")throw new TypeError("The listener must be a function");var p=new n(u,l||d,h),f=t?t+c:c;return d._events[f]?d._events[f].fn?d._events[f]=[d._events[f],p]:d._events[f].push(p):(d._events[f]=p,d._eventsCount++),d}function a(d,c){--d._eventsCount===0?d._events=new r:delete d._events[c]}function o(){this._events=new r,this._eventsCount=0}o.prototype.eventNames=function(){var c=[],u,l;if(this._eventsCount===0)return c;for(l in u=this._events)e.call(u,l)&&c.push(t?l.slice(1):l);return Object.getOwnPropertySymbols?c.concat(Object.getOwnPropertySymbols(u)):c},o.prototype.listeners=function(c){var u=t?t+c:c,l=this._events[u];if(!l)return[];if(l.fn)return[l.fn];for(var h=0,p=l.length,f=new Array(p);h<p;h++)f[h]=l[h].fn;return f},o.prototype.listenerCount=function(c){var u=t?t+c:c,l=this._events[u];return l?l.fn?1:l.length:0},o.prototype.emit=function(c,u,l,h,p,f){var v=t?t+c:c;if(!this._events[v])return!1;var m=this._events[v],b=arguments.length,y,_;if(m.fn){switch(m.once&&this.removeListener(c,m.fn,void 0,!0),b){case 1:return m.fn.call(m.context),!0;case 2:return m.fn.call(m.context,u),!0;case 3:return m.fn.call(m.context,u,l),!0;case 4:return m.fn.call(m.context,u,l,h),!0;case 5:return m.fn.call(m.context,u,l,h,p),!0;case 6:return m.fn.call(m.context,u,l,h,p,f),!0}for(_=1,y=new Array(b-1);_<b;_++)y[_-1]=arguments[_];m.fn.apply(m.context,y)}else{var E=m.length,z;for(_=0;_<E;_++)switch(m[_].once&&this.removeListener(c,m[_].fn,void 0,!0),b){case 1:m[_].fn.call(m[_].context);break;case 2:m[_].fn.call(m[_].context,u);break;case 3:m[_].fn.call(m[_].context,u,l);break;case 4:m[_].fn.call(m[_].context,u,l,h);break;default:if(!y)for(z=1,y=new Array(b-1);z<b;z++)y[z-1]=arguments[z];m[_].fn.apply(m[_].context,y)}}return!0},o.prototype.on=function(c,u,l){return s(this,c,u,l,!1)},o.prototype.once=function(c,u,l){return s(this,c,u,l,!0)},o.prototype.removeListener=function(c,u,l,h){var p=t?t+c:c;if(!this._events[p])return this;if(!u)return a(this,p),this;var f=this._events[p];if(f.fn)f.fn===u&&(!h||f.once)&&(!l||f.context===l)&&a(this,p);else{for(var v=0,m=[],b=f.length;v<b;v++)(f[v].fn!==u||h&&!f[v].once||l&&f[v].context!==l)&&m.push(f[v]);m.length?this._events[p]=m.length===1?m[0]:m:a(this,p)}return this},o.prototype.removeAllListeners=function(c){var u;return c?(u=t?t+c:c,this._events[u]&&a(this,u)):(this._events=new r,this._eventsCount=0),this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prefixed=t,o.EventEmitter=o,i.exports=o}(Pn)),Pn.exports}var vg=gg();const yg=ae(vg);var cr=(i=>(i[i.RTMP_INIT_FAIL=3e3]="RTMP_INIT_FAIL",i[i.AUDIO_ENCODER_INIT_FAIL=3001]="AUDIO_ENCODER_INIT_FAIL",i[i.AUDIO_RRNOISE_INIT_FAIL=3002]="AUDIO_RRNOISE_INIT_FAIL",i[i.AUDIO_ENCODE_FAIL=3003]="AUDIO_ENCODE_FAIL",i[i.VIDEO_ENCODE_CONFIGURE_FAIL=3004]="VIDEO_ENCODE_CONFIGURE_FAIL",i[i.VIDEO_ENCODE_FAIL=3005]="VIDEO_ENCODE_FAIL",i[i.WTP_OPEN_FAIL=3006]="WTP_OPEN_FAIL",i[i.WTP_CONNECT_FAIL=3007]="WTP_CONNECT_FAIL",i[i.WORKER_ERROR=3008]="WORKER_ERROR",i))(cr||{});class Ka extends Error{constructor(e,t,r){super(),this.code=e,this.message=t,r&&(this.ext=r),this.toJson=()=>({code:this.code,message:this.message,ext:this.ext})}}function Wa(i,e,t){return new Ka(i,e,t)}let Gt=(We=class{constructor(e){this.group=(...t)=>{this._enabled&&console.group(`[${this._prefix}]: `,...t)},this.groupCollapsed=(...t)=>{this._enabled&&console.groupCollapsed(`[${this._prefix}]: `,...t)},this.groupEnd=()=>{this._enabled&&console.groupEnd()},this.log=(...t)=>{this._enabled&&console.log(`[${this._prefix}]: `,...t)},this.warn=(...t)=>{this._enabled&&console.warn(`[${this._prefix}]: `,...t)},this.error=(...t)=>{this._enabled&&console.error(`[${this._prefix}]: `,...t)},this.table=(...t)=>{this._enabled&&console.table(...t)},this._prefix=e}get _enabled(){return We.enable}get _enableLong(){return We.enableLong}get long(){return this._enableLong}},We.enable=!1,We.enableLong=!1,We);const Ee=new Gt("RTMP_Capture");class bg{constructor(e){this._videoFirstframeCaptured=!1,this._audioFirstframeCaptured=!1,this._videoProcessorReader=null,this._audioProcessorReader=null,this._bridge=e}get audioTrack(){return this._bridge.audioMsTrack}get videoTrack(){return this._bridge.videoMsTrack}start(){this._startVideoCapture(),this._startAudioCapture()}restartCapture(e){if(Ee.log(`replace ${e} track`),e===at.Video){if(this._videoProcessorReader){this._videoProcessorReader.cancel().finally(()=>{this._startVideoCapture()});return}this._startVideoCapture();return}if(this._audioProcessorReader){this._audioProcessorReader.cancel().finally(()=>{this._startAudioCapture()});return}this._startAudioCapture()}async _startVideoCapture(){var n;if(!this.videoTrack){Ee.log("no video track to capture");return}if(this.videoTrack.readyState!=="live"){Ee.warn("video track not live");return}const e=new MediaStreamTrackProcessor(this.videoTrack);e.track=this.videoTrack;const t=e.readable.getReader();this._videoProcessorReader=t,Ee.log("start capture video frame",this.videoTrack);let r;for(;;){r&&clearInterval(r),r=setTimeout(()=>{Ee.warn("long time no capture output"),this._bridge._postMockVideoEncodeFlag()},1500);const s=await t.read();if(clearInterval(r),this._videoFirstframeCaptured||(this._videoFirstframeCaptured=!0,Ee.log("video first frame captured")),s.done||!s.value){(n=s.value)==null||n.close();break}this._bridge._postVideoFrame(s.value,this.videoTrack.getSettings())}clearInterval(r),this._videoFirstframeCaptured=!1,this._videoProcessorReader=null,Ee.log("video track read done!",e.track)}async _startAudioCapture(){if(!this.audioTrack){Ee.log("no audio track to capture");return}if(this.audioTrack.readyState!=="live"){Ee.warn("audio track not live");return}const e=new MediaStreamTrackProcessor(this.audioTrack);e.track=this.audioTrack;const t=e.readable.getReader();for(this._audioProcessorReader=t,Ee.log("start capture audio frame");;){const r=await t.read();if(this._audioFirstframeCaptured||(this._audioFirstframeCaptured=!0,Ee.log("audio first frame captured")),r.done||!r.value)break;this._bridge._postAudioFrame(r.value,this.audioTrack.getSettings())}this._audioFirstframeCaptured=!1,this._audioProcessorReader=null,Ee.log("audio track read done!",e.track)}destroy(){var e,t;(e=this._audioProcessorReader)==null||e.cancel().catch(()=>{}),(t=this._videoProcessorReader)==null||t.cancel().catch(()=>{})}}const Ja='(function(){"use strict";var l=(i=>(i.OnVideoCaptured="onvideocaptured",i.OnAudioCaptured="onaudiocaptured",i.OnVideoCaptureNoOutput="onvideocapturenooutput",i.OnVideoEncoded="onvideoencoded",i.OnAudioEncoded="onaudioencoded",i.OnEncodedFrame="onencodedframe",i.OnPacketed="onpacketed",i.OnUpstreamFeedback="onupstreamfeedback",i.OnBitrateChanged="onbitratechanged",i))(l||{}),O=(i=>(i.OnError="onerror",i.OnConnectClosed="onconnectclosed",i.OnFirstFramePushed="onfirstframepushed",i))(O||{}),I=(i=>(i.Video="video",i.Audio="audio",i))(I||{}),v=(i=>(i.Init="init",i.AvExist="avexist",i.VideoFrame="videoframe",i.MockVideoEncode="mockvideoencode",i.AudioFrame="audioframe",i.AdjustBitrate="adjustbitrate",i.Publish="publish",i.UnPublish="unpublish",i.Download="download",i.GetStats="getstats",i.EncodeConfig="encodeconfig",i))(v||{}),w=(i=>(i.Ready="ready",i.Error="error",i.FirstFramePushed="firstframepushed",i.Flvfile="flvfile",i.STATS="stats",i.Close="close",i))(w||{});function $(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}var k={exports:{}},U;function q(){return U||(U=1,function(i){var t=Object.prototype.hasOwnProperty,e="~";function s(){}Object.create&&(s.prototype=Object.create(null),new s().__proto__||(e=!1));function r(u,a,n){this.fn=u,this.context=a,this.once=n||!1}function o(u,a,n,h,m){if(typeof n!="function")throw new TypeError("The listener must be a function");var g=new r(n,h||u,m),f=e?e+a:a;return u._events[f]?u._events[f].fn?u._events[f]=[u._events[f],g]:u._events[f].push(g):(u._events[f]=g,u._eventsCount++),u}function _(u,a){--u._eventsCount===0?u._events=new s:delete u._events[a]}function c(){this._events=new s,this._eventsCount=0}c.prototype.eventNames=function(){var a=[],n,h;if(this._eventsCount===0)return a;for(h in n=this._events)t.call(n,h)&&a.push(e?h.slice(1):h);return Object.getOwnPropertySymbols?a.concat(Object.getOwnPropertySymbols(n)):a},c.prototype.listeners=function(a){var n=e?e+a:a,h=this._events[n];if(!h)return[];if(h.fn)return[h.fn];for(var m=0,g=h.length,f=new Array(g);m<g;m++)f[m]=h[m].fn;return f},c.prototype.listenerCount=function(a){var n=e?e+a:a,h=this._events[n];return h?h.fn?1:h.length:0},c.prototype.emit=function(a,n,h,m,g,f){var F=e?e+a:a;if(!this._events[F])return!1;var d=this._events[F],C=arguments.length,B,p;if(d.fn){switch(d.once&&this.removeListener(a,d.fn,void 0,!0),C){case 1:return d.fn.call(d.context),!0;case 2:return d.fn.call(d.context,n),!0;case 3:return d.fn.call(d.context,n,h),!0;case 4:return d.fn.call(d.context,n,h,m),!0;case 5:return d.fn.call(d.context,n,h,m,g),!0;case 6:return d.fn.call(d.context,n,h,m,g,f),!0}for(p=1,B=new Array(C-1);p<C;p++)B[p-1]=arguments[p];d.fn.apply(d.context,B)}else{var fe=d.length,R;for(p=0;p<fe;p++)switch(d[p].once&&this.removeListener(a,d[p].fn,void 0,!0),C){case 1:d[p].fn.call(d[p].context);break;case 2:d[p].fn.call(d[p].context,n);break;case 3:d[p].fn.call(d[p].context,n,h);break;case 4:d[p].fn.call(d[p].context,n,h,m);break;default:if(!B)for(R=1,B=new Array(C-1);R<C;R++)B[R-1]=arguments[R];d[p].fn.apply(d[p].context,B)}}return!0},c.prototype.on=function(a,n,h){return o(this,a,n,h,!1)},c.prototype.once=function(a,n,h){return o(this,a,n,h,!0)},c.prototype.removeListener=function(a,n,h,m){var g=e?e+a:a;if(!this._events[g])return this;if(!n)return _(this,g),this;var f=this._events[g];if(f.fn)f.fn===n&&(!m||f.once)&&(!h||f.context===h)&&_(this,g);else{for(var F=0,d=[],C=f.length;F<C;F++)(f[F].fn!==n||m&&!f[F].once||h&&f[F].context!==h)&&d.push(f[F]);d.length?this._events[g]=d.length===1?d[0]:d:_(this,g)}return this},c.prototype.removeAllListeners=function(a){var n;return a?(n=e?e+a:a,this._events[n]&&_(this,n)):(this._events=new s,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=e,c.EventEmitter=c,i.exports=c}(k)),k.exports}var z=q(),H=$(z);const N=class N{constructor(t){this.group=(...e)=>{this._enabled&&console.group(`[${this._prefix}]: `,...e)},this.groupCollapsed=(...e)=>{this._enabled&&console.groupCollapsed(`[${this._prefix}]: `,...e)},this.groupEnd=()=>{this._enabled&&console.groupEnd()},this.log=(...e)=>{this._enabled&&console.log(`[${this._prefix}]: `,...e)},this.warn=(...e)=>{this._enabled&&console.warn(`[${this._prefix}]: `,...e)},this.error=(...e)=>{this._enabled&&console.error(`[${this._prefix}]: `,...e)},this.table=(...e)=>{this._enabled&&console.table(...e)},this._prefix=t}get _enabled(){return N.enable}get _enableLong(){return N.enableLong}get long(){return this._enableLong}};N.enable=!1,N.enableLong=!1;let E=N;function S(i){i=i.filter(Boolean);const t=new Uint8Array(i.reduce((s,r)=>s+r.byteLength,0));let e=0;return i.forEach(s=>{t.set(s,e),e+=s.byteLength}),t}const A={codec:"avc1.4DE033",MaxCachedFrameSize:100,RealSpeedPercent:.8,UplinkBitrateCheckInterval:60*1e3,VideoBitrateDefault:1e6,AudioBitrateDefault:68e3,gopSize:90,sampleRate:48e3,channel:2,audioEncoderPath:"https://lf-unpkg.volccdn.com/obj/vcloudfe/sdk/Web_push/1.0.1/1735619140327/pcm2aac.js",audioEncoderWasmPath:"https://lf-unpkg.volccdn.com/obj/vcloudfe/sdk/Web_push/1.0.2/1735619208418/pcm2aac.wasm",ignoreRelPublish:!1},T=new E("RTMP_AudioEncoder");class j{constructor(t){this._encodedFrameCount=0,this._ready=!1,this._lastFrame=null,this._aacOutput=(e,s)=>{const r=this._module.HEAPU8.subarray(e,e+s);if(!this._lastFrame)return;this._encodedFrameCount++;const{props:o}=this._lastFrame,_={buffer:new Uint8Array(r),props:{timestamp:parseInt(o.timestamp/1e3),originTs:parseInt(o.timestamp/1e3)}};this._core.emit(l.OnAudioEncoded,_)},this._core=t}async init(){const t=await fetch(A.audioEncoderPath).then(_=>_.text());new Function(`self.exports={};${t}`)();const e=self.exports.m;let s,r;const o=new Promise((_,c)=>{r=_,s=c});return e({instantiateWasm:function(_,c){fetch(A.audioEncoderWasmPath).then(u=>u.arrayBuffer()).then(u=>WebAssembly.instantiate(u,_)).then(function(u){return c(u.instance)}).then(()=>{r(),T.log("aac module inited")}).catch(u=>{s(u)})}}).then(_=>{const c=_.addFunction(this._aacOutput,"vii");_._init_callback(c),this._module=_}).catch(s),o}rnnoise(t){var s;const e=t.length;for(let r=0;r<e;r++)t[r]=t[r]*32768;(s=this._rnnoiseModule)==null||s.processFrame(t);for(let r=0;r<e;r++)t[r]=t[r]/32768}updateConfigure(){this._module._flush(),this._module._free_encoder(),this._ready=!1}encode(t){if(!this._ready){const o=this._start_encoder();if(o<0)throw new Error(`init aac encoder error, code:${o}`)}this._lastFrame=t;const e=t.buffer.buffer,s=this._module._malloc(e.byteLength);this._module.HEAPU8.subarray(s,s+e.byteLength).set(new Uint8Array(e));const r=this._module._encode_one_frame(s);if(r<0)throw new Error(`encode aac frame error, code:${r}`)}_start_encoder(){const t=this._core.getSetting(),e=this._module._init_encoder(t.sampleRate,t.channel,t.audioBitrate);if(e<0)return e;this._ready=!0,T.log(`init encoder: sampleRate=${t.sampleRate}, channel:${t.channel}, bitrate:${t.audioBitrate}`)}destroy(){var t;(t=this._module)==null||t._free_encoder()}}const P=1024;class M{constructor(){this._queue=[],this._sampleCount=0}compose(t){if(this._queue.push(t),this._sampleCount+=t.data.audioData.numberOfFrames,this._sampleCount>=P)return this._doCompose()}_doCompose(){const t=new Float32Array(P);let e=0,s=P;const r=this._queue[0];for(;;){const o=this._queue[0];if(!o)break;const _=Math.min(s,o.data.audioData.numberOfFrames-o.offset,480),c=o.data.buffer.slice(o.offset,o.offset+_);if(o.offset+=_,o.offset>=o.data.audioData.numberOfFrames&&this._queue.shift(),s-=_,this._sampleCount-=_,t.set(c,e),e+=_,s<=0)break}return{buffer:t,props:{timestamp:r.data.audioData.timestamp,sampleRate:r.data.audioData.sampleRate,numberOfChannels:r.data.audioData.numberOfChannels}}}}var y=(i=>(i[i.RTMP_INIT_FAIL=3e3]="RTMP_INIT_FAIL",i[i.AUDIO_ENCODER_INIT_FAIL=3001]="AUDIO_ENCODER_INIT_FAIL",i[i.AUDIO_RRNOISE_INIT_FAIL=3002]="AUDIO_RRNOISE_INIT_FAIL",i[i.AUDIO_ENCODE_FAIL=3003]="AUDIO_ENCODE_FAIL",i[i.VIDEO_ENCODE_CONFIGURE_FAIL=3004]="VIDEO_ENCODE_CONFIGURE_FAIL",i[i.VIDEO_ENCODE_FAIL=3005]="VIDEO_ENCODE_FAIL",i[i.WTP_OPEN_FAIL=3006]="WTP_OPEN_FAIL",i[i.WTP_CONNECT_FAIL=3007]="WTP_CONNECT_FAIL",i[i.WORKER_ERROR=3008]="WORKER_ERROR",i))(y||{});class W extends Error{constructor(t,e,s){super(),this.code=t,this.message=e,s&&(this.ext=s),this.toJson=()=>({code:this.code,message:this.message,ext:this.ext})}}function b(i,t,e){return new W(i,t,e)}class G{constructor(t){this._audioFrameQueue=new M,this.encode=e=>{const s=new Float32Array(e.numberOfFrames);e.copyTo(s,{planeIndex:0,frameOffset:0,frameCount:e.numberOfFrames});const r=this._audioFrameQueue.compose({offset:0,data:{audioData:e,buffer:s}});if(r)try{this._encoder.encode(r)}catch(o){this._core.emit(O.OnError,b(y.AUDIO_ENCODE_FAIL,o.message))}},this._core=t,this._encoder=new j(t)}async init(){try{await this._encoder.init()}catch(t){throw b(y.AUDIO_ENCODER_INIT_FAIL,t.message)}}setConfiguration(t){const e=Object.assign({},this._core.getSetting(),{audioBitrate:t});this._core.updateSetting(e),this._encoder.updateConfigure()}destroy(){this._encoder.destroy()}}const x=new E("RTMP_VEncoder");class J{constructor(t){this._encoder=null,this._queue=[],this._encodeTimer=0,this._loopEncodeTimer=0,this._frameIndex=0,this._gopSize=0,this._encodedFrameCount=0,this._lastFrame=null,this._startTimer=()=>{this._clearEncodeTimer(),this._encodeTimer=setInterval(()=>{const e=this._queue.shift();if(!(!e||!this._encoder||this._encoder.state==="closed"))try{this._encoder.encode(e,{keyFrame:this._frameIndex%this._gopSize===0}),this._frameIndex++,this._lastFrame&&this._lastFrame.close(),this._lastFrame=e}catch(s){x.log("encode frame error",s)}},5)},this._core=t}configurate(t){return this._gopSize=t.gopSize,this._encoder?this.flush().then(()=>this._configure(t)):this._configure(t)}_configure(t){return this._clearEncodeTimer(),x.log("start config encoder",t),VideoEncoder.isConfigSupported(t).then(e=>{if(!e.supported)throw new Error(`VideoEncoder not support config, ${JSON.stringify(t)}`);this._encoder=new VideoEncoder({output:(s,r)=>{const o=new Uint8Array(s.byteLength);s.copyTo(o),this._emitFrame(o,s,r)},error:s=>{this._clearEncodeTimer(),this._core.emit(O.OnError,b(y.VIDEO_ENCODE_FAIL,s.message))}}),this._encoder.configure(t),x.log("encoder configured")}).then(this._startTimer).catch(e=>{throw b(y.VIDEO_ENCODE_CONFIGURE_FAIL,e.message)})}_emitFrame(t,e,s){this._encodedFrameCount++,this._core.emit(l.OnVideoEncoded,{buffer:t,props:{byteLength:e.byteLength,duration:e.duration,timestamp:parseInt(e.timestamp/1e3),originTs:parseInt(e.timestamp/1e3),type:e.type},cfg:s.decoderConfig})}_clearEncodeTimer(){clearInterval(this._encodeTimer)}_clearLoopEncodeTimer(){this._loopEncodeTimer&&clearInterval(this._loopEncodeTimer)}flush(){return this._encoder?this._encoder.flush().then(()=>{var t;this._clearEncodeTimer(),(t=this._encoder)==null||t.close(),this._frameIndex=0,this._encoder=null,x.log("encoder flush & closed")}).catch(t=>{console.log("encoder flush & close error:",t)}):Promise.resolve()}encode(t){this._clearLoopEncodeTimer(),this._queue.push(t)}startLoop(t){if(!this._lastFrame)return;const e=Math.floor(1e3/t*1e3);x.log("start encode last frame looped, ",t,"increment:",e),this._loopEncodeTimer=setInterval(()=>{if(!this._lastFrame)return;const s=new VideoFrame(this._lastFrame,{duration:e,timestamp:(this._lastFrame.timestamp||0)+e});this._queue.push(s)},Math.floor(1e3/t))}destroy(){this._queue.forEach(t=>t.close()),this._lastFrame&&this._lastFrame.close(),this._clearEncodeTimer(),this._clearLoopEncodeTimer(),this.flush()}}const Q=new E("RTMP_VideoEncode");class K{constructor(t){this._core=t,this._encoder=new J(t)}async setConfiguration(t={}){const e=Object.assign({},this._core.getSetting(),t),s={width:e.width,height:e.height,displayWidth:e.width,displayHeight:e.height,bitrate:e.videoBitrate,framerate:Math.floor(e.frameRate),codec:e.codec,gopSize:e.gopSize,hardwareAcceleration:e.hardwareAcceleration};this._core.updateSetting(e),Q.log("set Configuration:",s,t);try{await this._encoder.configurate(s)}catch(r){this._core.emit(O.OnError,r)}}encode(t){this._encoder.encode(t)}startLoopEncodeLastFrame(){this._encoder.startLoop(this._core.getSetting().frameRate)}flushEncoder(){this._encoder.flush()}destroy(){this._encoder.destroy()}}const V=new E("RTMP_AVSync");class Z{constructor(t){this._videoFrameGot=!1,this._videoBaseDts=0,this._audioBaseDts=0,this._videoNextDts=0,this._videoLastDts=0,this._audioNextDts=0,this._lastVideoReceived=0,this._core=t}get avExist(){return this._core.getSetting().hasVideo&&this._core.getSetting().hasAudio}get videoRefDuration(){return parseInt(1e3/this._core.getSetting().frameRate)}get audioRefDuration(){return parseInt(1024/this._core.getSetting().sampleRate*1e3)}addVideoFrame(t){this._videoFrameGot||(this._videoFrameGot=!0);const e=t.props;if(Math.abs(this._videoNextDts-e.timestamp-this._videoBaseDts)>1e3){const r=Date.now()-this._lastVideoReceived;this._videoNextDts=this._videoNextDts===this._audioNextDts?this._videoNextDts+this.videoRefDuration:this._audioNextDts||this._videoNextDts+r,this._videoBaseDts=this._videoNextDts-e.timestamp,V.warn(`video stream timestamp breaked! dts:${this._videoNextDts} -> ${e.timestamp}, videoBaseDts=${this._videoBaseDts}, deltaToLastFrame=${r}`)}e.timestamp=e.timestamp+this._videoBaseDts;const s=e.timestamp-this._videoLastDts;return s>100&&V.warn("video frame large gap",s),this._videoLastDts=this._videoNextDts=e.timestamp,V.long&&V.log(`V frame, dts: ${e.timestamp}, originDts:${e.originTs}, videoBaseDts=${this._videoBaseDts}, type=${e.type}, duration=${s}`),this._lastVideoReceived=Date.now(),this._core.emit(l.OnEncodedFrame,I.Video,t),{size:t.buffer.length,duration:s,key:t.props.type==="key"}}addAudioFrame(t){if(this.avExist&&!this._videoFrameGot)return;const e=t.props;return this._audioBaseDts||(this._audioBaseDts=e.timestamp-this._videoNextDts),Math.abs(e.timestamp-this._audioBaseDts-this._audioNextDts)>1e3&&(this._audioBaseDts=this._audioNextDts+this.audioRefDuration-e.timestamp,V.warn(`audio stream timestamp breaked! dts:${this._audioNextDts} -> ${e.timestamp}, audioBaseDts=${this._audioBaseDts}`)),this._audioNextDts=e.timestamp=e.timestamp-this._audioBaseDts,V.long&&V.log(`A frame, dts: ${e.timestamp}, originDts:${e.originTs}`),this._core.emit(l.OnEncodedFrame,I.Audio,t),{size:t.buffer.length,duration:this.audioRefDuration}}}class X{constructor(){this._videoSize=0,this._videoDuration=0,this._videoBitrate=0,this._frameCount=0,this._fps=0,this._videoEncodedCount=0,this._keyCount=0,this._audioSize=0,this._audioDuration=0,this._audioBitrate=0,this._audioEncodedCount=0}get videoStats(){return{sendBitrate:this._videoBitrate,framesPerSecond:this._fps,framesEncoded:this._videoEncodedCount,keyFramesEncoded:this._keyCount}}get audioStats(){return{sendBitrate:this._audioBitrate,framesEncoded:this._audioEncodedCount}}addVideoSample({size:t,duration:e,key:s}){this._videoEncodedCount++,this._videoSize+=t,this._videoDuration+=e,this._frameCount++,s&&this._keyCount++,this._videoDuration>=1e3&&(this._videoBitrate=Math.floor(this._videoSize/this._videoDuration*8e3),this._fps=this._frameCount,this._frameCount=0,this._videoSize=0,this._videoDuration=0)}addAudioSample({size:t,duration:e}){this._audioEncodedCount++,this._audioSize+=t,this._audioDuration+=e,this._audioDuration>=1e3&&(this._audioBitrate=Math.floor(this._audioSize/this._audioDuration*1e3),this._audioSize=0,this._audioDuration=0)}}const Y=new E("RTMP_EncodeController");class ee{constructor(t){this._analyse=new X,this._gotFrame=!1,this._OnVideoCaptured=(e,s)=>{this._gotFrame=!0,this._videoSettingChanged(s)&&(Y.log("video track setting changed!",s),this._core.updateSetting({width:s.width,height:s.height,frameRate:s.frameRate,vDeviceId:s.deviceId}),this._videoEncode.setConfiguration()),this._videoEncode.encode(e)},this._OnVideoCaptureNoOutput=()=>{this._videoEncode.startLoopEncodeLastFrame()},this._OnAudioCaptured=e=>{this._gotFrame=!0,this._audioEncode.encode(e)},this._OnVideoEncoded=e=>{const s=this._avSync.addVideoFrame(e);this._analyse.addVideoSample(s)},this._OnAudioEncoded=e=>{if(!e.buffer.length)return;const s=this._avSync.addAudioFrame(e);s&&this._analyse.addAudioSample(s)},this._OnUpstreamFeedback=e=>{this._videoEncode.setConfiguration(e)},this._OnBitrateChanged=(e,s)=>{this._gotFrame&&(e===I.Video&&this._videoEncode.setConfiguration({videoBitrate:s}),e===I.Audio&&this._audioEncode.setConfiguration(s))},this._core=t,this._audioEncode=new G(t),this._videoEncode=new K(t),this._avSync=new Z(t),this._bindEvents()}getStats(){return{video:this._analyse.videoStats,audio:this._analyse.audioStats}}init(){return this._audioEncode.init()}_bindEvents(){this._core.on(l.OnVideoCaptured,this._OnVideoCaptured),this._core.on(l.OnAudioCaptured,this._OnAudioCaptured),this._core.on(l.OnVideoCaptureNoOutput,this._OnVideoCaptureNoOutput),this._core.on(l.OnVideoEncoded,this._OnVideoEncoded),this._core.on(l.OnAudioEncoded,this._OnAudioEncoded),this._core.on(l.OnUpstreamFeedback,this._OnUpstreamFeedback),this._core.on(l.OnBitrateChanged,this._OnBitrateChanged)}_videoSettingChanged(t){const e=this._core.getSetting();return t.width!==e.width||t.height!==e.height||Math.floor(t.frameRate)!==Math.floor(e.frameRate)||t.deviceId!==e.vDeviceId}destroy(){this._videoEncode.destroy(),this._audioEncode.destroy()}}var L=(i=>(i[i.AUDIO=8]="AUDIO",i[i.VIDEO=9]="VIDEO",i[i.SCRIPT_DATA=18]="SCRIPT_DATA",i))(L||{});const te=10,ie=1,se=7,oe={96e3:0,48e3:3,44100:4,22050:7,16e3:8,8e3:11};function re(i){const t=(i[4]&3)+1;let e;const s=[],r=[];let o=6;const _=i[5]&31;let c;for(let n=0;n<_;n++){if(c=i[o]<<8|i[o+1],o+=2,!c)continue;const h=i.subarray(o,o+c);o+=c,s.push(h)}const u=i[o];o++;let a;for(let n=0;n<u;n++)a=i[o]<<8|i[o+1],o+=2,a&&(r.push(i.subarray(o,o+a)),o+=a);return{sps:e,spsArr:s,ppsArr:r,nalUnitSize:t}}class ne{constructor(){this._cfg={hasVideo:!1,hasAudio:!1,sampleRate:48e3,channelCount:1},this._hasAudioSeqHeader=!1,this._hasVideoSeqHeader=!1}setConfig(t){this._cfg=Object.assign(this._cfg,t)}genHeader(){const t=[70,76,86,1,(this._cfg.hasAudio?1:0)<<2|(this._cfg.hasVideo?1:0),0,0,0,9,0,0,0,0];return new Uint8Array(t)}genSeqTag(t,e){let s;t===8?(s=this._genAudioTagPaylod(0,e),this._hasAudioSeqHeader=!0):(s=this._genVideoTagPayload(0,e),this._hasVideoSeqHeader=!0);const r=this._genTagHeader(t,s.length,e.props.timestamp),o=r.length+s.length;return S([r,s,new Uint8Array([o>>>24,o>>>16,o>>>8,o])])}genFrameTag(t,e){let s;t===8?s=this._genAudioTagPaylod(1,e):s=this._genVideoTagPayload(1,e);const r=this._genTagHeader(t,s.length,e.props.timestamp),o=r.length+s.length;return S([r,s,new Uint8Array([o>>>24,o>>>16,o>>>8,o])])}_genTagHeader(t,e,s){return new Uint8Array([t,e>>>16,e>>>8,e,s>>>16,s>>>8,s,s>>>24,0,0,0])}_genAudioTagPaylod(t,e){return S(t===0?[this._genAudioTagHeader(),this._genAudioSequenceHeader()]:[this._genAudioTagHeader(),this._genAudioData(e)])}_genAudioTagHeader(){return new Uint8Array([te<<4|12|ie<<1|this._cfg.channelCount-1])}_genAudioSequenceHeader(){const t=4096|oe[this._cfg.sampleRate]<<7|this._cfg.channelCount<<3;return new Uint8Array([0,t>>8,t])}_genAudioData(t){const e=new Uint8Array(1+t.buffer.length);return e.set([1],0),e.set(t.buffer,1),e}_genVideoTagPayload(t,e){return S(t===0?[this._genVideoTagHeader(e),this._genVideoSequenceHeader(e)]:[this._genVideoTagHeader(e),this._genVideoData(e)])}_genVideoTagHeader(t){return new Uint8Array([(t.props.type==="key"?1:2)<<4|se,this._hasVideoSeqHeader?1:0,0,0,0])}_genVideoSequenceHeader(t){return new Uint8Array(t.cfg.description)}_genVideoData(t){if(t.props.type==="delta")return t.buffer;const e=re(new Uint8Array(t.cfg.description)),s=e.spsArr[0].length,r=e.ppsArr[0].length;return S([new Uint8Array([0,0,s>>8,s%256]),e.spsArr[0],new Uint8Array([0,0,r>>8,r%256]),e.ppsArr[0],t.buffer])}}const ae=new E("RTMP_Packet");class de{constructor(t){this._firstFrame=!0,this._flv=new ne,this._OnEncodedFrame=(e,s)=>{if(this._firstFrame){const o=this._core.getSetting();this._flv.setConfig({hasVideo:o.hasVideo,hasAudio:o.hasAudio,sampleRate:o.sampleRate,channelCount:o.channel});const _=this._flv.genHeader();if(this._core.emit(l.OnPacketed,_),o.hasVideo){const c=this._flv.genSeqTag(L.VIDEO,s);this._core.emit(l.OnPacketed,c)}if(o.hasAudio){const c=this._flv.genSeqTag(L.AUDIO,s);this._core.emit(l.OnPacketed,c)}this._firstFrame=!1,ae.log("first frame encoded & packed")}const r=this._flv.genFrameTag(e==="video"?L.VIDEO:L.AUDIO,s);this._core.emit(l.OnPacketed,r,s.props.type==="key")},this._core=t,this._bindEvents()}_bindEvents(){this._core.on(l.OnEncodedFrame,this._OnEncodedFrame)}destroy(){}}class he{constructor(){this._lastDot=0,this._totalSize=0,this._speed=[]}addSample(t){this._lastDot||(this._lastDot=Date.now()),this._totalSize+=t;const e=Date.now()-this._lastDot;e>=500&&(this._addSpeedSample(this._totalSize/e*8e3),this._totalSize=0,this._lastDot=Date.now())}_addSpeedSample(t){this._speed.push(t),this._speed=this._speed.slice(-6)}reset(){this._speed=[]}getUpSpeed(){return this._speed.length?parseInt(this._speed.reduce((t,e)=>t+=e,0)/this._speed.length):0}}const D=new E("RTMP_Wtp");class ce{constructor(t){this._queue=[],this._url="",this._connectClosed=!1,this._upSpeed=new he,this._transport=null,this._writer=null,this._inWriting=!1,this._inAdjustEncode=!1,this._increaseTimer=0,this._firstFramePushed=!1,this._core=t,this._bindEvents()}get sendSpeed(){return this._upSpeed.getUpSpeed()}getStats(){var t;return(t=this._transport)==null?void 0:t.getStats()}_bindEvents(){this._core.on(l.OnPacketed,(t,e=!1)=>{this._checkDecreaseBitrate(),this._checkDeleteCache(e),this._queue.push(t),this._inWriting||this._write()})}_checkDecreaseBitrate(){if(this._inAdjustEncode)return;const t=this._upSpeed.getUpSpeed();if(!t||this._queue.length<A.MaxCachedFrameSize)return;D.log(`up speed: ${t} low, ajust encode setting`);const e=this._core.getSetting();this._core.emit(l.OnUpstreamFeedback,{videoBitrate:t*A.RealSpeedPercent,width:e.width,height:e.height,frameRate:e.frameRate}),this._inAdjustEncode=!0,this._checkIncreaseBitrate()}_checkIncreaseBitrate(){D.log("add timer to check uplink speed increased"),clearInterval(this._increaseTimer),this._increaseTimer=setTimeout(()=>{const t=this._core.getSetting();D.log(`set encode bitrate to specified ${t.originVideoBitrate}`),this._core.emit(l.OnUpstreamFeedback,{videoBitrate:t.originVideoBitrate,width:t.width,height:t.height,frameRate:t.frameRate}),this._inAdjustEncode=!0},A.UplinkBitrateCheckInterval)}_checkDeleteCache(t){this._inAdjustEncode&&t&&(D.log(`ajust encode setting finish, delete cached ${this._queue.length} frame`),this._queue=[],this._upSpeed.reset(),this._inAdjustEncode=!1)}async start(t){this._url=t;try{await this._connect()}catch(e){throw b(y.WTP_OPEN_FAIL,e.message)}}async _connect(){const t=new WebTransport(this._url);let e;t.closed.then(()=>{D.log("webtransport closed")}).catch(r=>{e=r.message,D.log("webtransport closed due to",r)}).finally(()=>{this._connectClosed=!0,this._core.emit(O.OnConnectClosed,e),this._core.emit(O.OnError,b(y.WTP_CONNECT_FAIL,e))}),await t.ready,this._transport=t;const s=await t.createBidirectionalStream();this._writer=s.writable.getWriter(),this._write(),D.log("transport opend")}async _write(){var e;if(!this._writer)return;this._inWriting=!0;const t=this._queue.shift();if(!t){this._inWriting=!1;return}await((e=this._writer)==null?void 0:e.write(t)),this._firstFramePushed||(this._firstFramePushed=!0,this._core.emit(O.OnFirstFramePushed),D.log("first frame pushed")),this._upSpeed.addSample(t.length);try{await this._write()}catch(s){D.log("writer error:",s)}}getFile(){return S(this._queue)}destroy(){var t,e;clearTimeout(this._increaseTimer),this._connectClosed||(t=this._writer)==null||t.close(),this._writer=null,(e=this._transport)==null||e.close(),this._transport=null}}const ue=new E("LiveRTMP");class _e extends H{constructor(){super(),this._ts=0,this._setting={codec:A.codec,hardwareAcceleration:"prefer-hardware",width:-1,height:-1,frameRate:-1,sampleRate:A.sampleRate,channel:A.channel,gopSize:A.gopSize,videoBitrate:A.VideoBitrateDefault,originVideoBitrate:A.VideoBitrateDefault,audioBitrate:A.AudioBitrateDefault,hasAudio:!1,hasVideo:!1,vDeviceId:"",aDeviceId:""},this._encode=new ee(this),this._packet=new de(this),this._transport=new ce(this)}async checkVideoHardwareAcceleration(){const t=["prefer-hardware","prefer-software","no-preference"],e=this.getSetting(),s={codec:e.codec,width:1280,height:720,framerate:15,bitrate:e.videoBitrate};for(const r of t)try{if((await VideoEncoder.isConfigSupported({...s,hardwareAcceleration:r})).supported)return this.updateSetting({hardwareAcceleration:r,originVideoBitrate:e.originVideoBitrate}),Promise.resolve()}catch{throw b(y.VIDEO_ENCODE_CONFIGURE_FAIL,`VideoEncoder not support hardwareAcceleration, ${JSON.stringify({...s,hardwareAcceleration:r})}`)}throw b(y.VIDEO_ENCODE_CONFIGURE_FAIL,"VideoEncoder not support hardwareAcceleration")}async ready(){await Promise.all([this.checkVideoHardwareAcceleration(),this._encode.init()])}getSetting(){return this._setting}updateSetting(t){this._setting=Object.assign({},this._setting,t)}videoFrameCaptured(t,e){this.emit(l.OnVideoCaptured,t,e)}audioFrameCaptured(t,e){this.emit(l.OnAudioCaptured,t,e)}startMockVideoEncode(){this.emit(l.OnVideoCaptureNoOutput)}adjustBitrate(t,e){t===I.Video&&this.updateSetting({videoBitrate:e,originVideoBitrate:e}),t===I.Audio&&this.updateSetting({audioBitrate:e}),this.emit(l.OnBitrateChanged,t,e)}avExist(t,e){this._setting.hasVideo=t,this._setting.hasAudio=e}publish(t){return this._transport.start(t)}setEncodeCapacity(t){this._setting=Object.assign({},this._setting,t)}getStats(){return{video:{...this._encode.getStats().video,sendSpeed:this._transport.sendSpeed,codec:this._setting.codec,frameWidth:this._setting.width,frameHeight:this._setting.height,gopSize:this._setting.gopSize},audio:{...this._encode.getStats().audio,codec:"aac",channels:this._setting.channel,sampleRate:this._setting.sampleRate}}}destroy(){ue.log("destroy"),this._encode.destroy(),this._packet.destroy(),this._transport.destroy()}down(){return this._transport.getFile()}}self.constructor.name!=="Window"&&le();function le(){let i={};self.addEventListener("message",async t=>{switch(t.data.type){case v.Init:{const{options:e}=t.data;e.logEnable&&(E.enable=!0),e.logEnableLong&&(E.enableLong=!0),i=new _e,i.on(O.OnError,s=>{self.postMessage({type:w.Error,data:s.toJson()})}),i.on(O.OnConnectClosed,()=>{self.postMessage({type:w.Close})}),i.on(O.OnFirstFramePushed,()=>{self.postMessage({type:w.FirstFramePushed})});try{await i.ready(),self.postMessage({type:w.Ready})}catch(s){self.postMessage({type:w.Error,data:s.toJson()})}}break;case v.AvExist:{const{hasAudio:e,hasVideo:s}=t.data;i.avExist(s,e)}break;case v.VideoFrame:{const{frame:e,setting:s}=t.data;i.videoFrameCaptured(e,s)}break;case v.MockVideoEncode:i.startMockVideoEncode();break;case v.AudioFrame:{const{frame:e,setting:s}=t.data;i.audioFrameCaptured(e,s)}break;case v.AdjustBitrate:{const{kind:e,bitrate:s}=t.data;i.adjustBitrate(e,s)}break;case v.Publish:{const{url:e}=t.data;try{await i.publish(e)}catch(s){self.postMessage({type:w.Error,data:s.toJson()})}}break;case v.GetStats:self.postMessage({type:w.STATS,data:i.getStats()});break;case v.EncodeConfig:{i.setEncodeCapacity(t.data.cfg);break}case v.Download:{const e=i.down();self.postMessage({type:w.Flvfile,buffer:e},[e.buffer])}break;case v.UnPublish:{i.destroy();break}}})}})();\n',Xa=typeof self<"u"&&self.Blob&&new Blob([Ja],{type:"text/javascript;charset=utf-8"});function Sg(i){let e;try{if(e=Xa&&(self.URL||self.webkitURL).createObjectURL(Xa),!e)throw"";const t=new Worker(e,{name:i==null?void 0:i.name});return t.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(e)}),t}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(Ja),{name:i==null?void 0:i.name})}finally{e&&(self.URL||self.webkitURL).revokeObjectURL(e)}}try{Gt.enable=location.href.indexOf("rtmpdebug")!==-1,Gt.enableLong=location.href.indexOf("rtmpdebug=long")!==-1}catch{}const ur=new Gt("Bridge");class Za extends yg{constructor(){super(),this._worker=null,this._audioMsTrack=null,this._videoMsTrack=null,this._capture=new bg(this)}static isSupported(){return typeof WebTransport<"u"&&typeof MediaStreamTrackProcessor<"u"&&typeof MediaStreamTrackGenerator<"u"&&typeof VideoEncoder<"u"}get audioMsTrack(){return this._audioMsTrack}get videoMsTrack(){return this._videoMsTrack}async ready(){var s,a;let e,t;const r=new Promise((o,d)=>{e=o,t=d}),n=o=>{var d;switch((d=this._worker)==null||d.removeEventListener("message",n),o.data.type){case bt.Error:t(o.data.data);break;default:this._bindWorkerEvent(),ur.log("rtmp ready!"),e(!0)}};try{this._worker=new Sg}catch(o){t(Wa(cr.RTMP_INIT_FAIL,o.message))}return(s=this._worker)==null||s.postMessage({type:Se.Init,options:{logEnable:Gt.enable,logEnableLong:Gt.enableLong}}),(a=this._worker)==null||a.addEventListener("message",n),r}_bindWorkerEvent(){var e,t;(e=this._worker)==null||e.addEventListener("message",r=>{switch(r.data.type){case bt.Error:ur.table(r.data.data),this.emit(ot.OnError,r.data.data);break;case bt.Flvfile:Eg(r.data.buffer);break;case bt.FirstFramePushed:this.emit(ot.OnFirstFramePushed);break;case bt.Close:this.emit(ot.OnConnectClosed),this.destroy();break}}),(t=this._worker)==null||t.addEventListener("error",r=>{this.emit(ot.OnError,Wa(cr.WORKER_ERROR,r.message))})}addTrack(e){e.kind===at.Video&&(this._videoMsTrack=e),e.kind===at.Audio&&(this._audioMsTrack=e),this._setAVExist(!!this._videoMsTrack,!!this._audioMsTrack)}replaceTrack(e,t){e===at.Video&&(this._videoMsTrack=t),e===at.Audio&&(this._audioMsTrack=t),this._setAVExist(!!this._videoMsTrack,!!this._audioMsTrack),this._capture.restartCapture(e)}async getStats(){var s,a;let e,t;const r=new Promise((o,d)=>{e=o,t=d});this._worker||setTimeout(()=>{t()},0);const n=o=>{var d;switch(o.data.type){case bt.STATS:e(o.data.data),(d=this._worker)==null||d.removeEventListener("message",n);break}};return(s=this._worker)==null||s.addEventListener("message",n),(a=this._worker)==null||a.postMessage({type:Se.GetStats}),r}_postVideoFrame(e,t){var r;(r=this._worker)==null||r.postMessage({type:Se.VideoFrame,frame:e,setting:t},[e])}_postMockVideoEncodeFlag(){var e;(e=this._worker)==null||e.postMessage({type:Se.MockVideoEncode})}_setAVExist(e,t){var r;(r=this._worker)==null||r.postMessage({type:Se.AvExist,hasVideo:e,hasAudio:t})}_postAudioFrame(e,t){var r;(r=this._worker)==null||r.postMessage({type:Se.AudioFrame,frame:e,setting:t},[e])}setEncodeCapacity(e){var t;(t=this._worker)==null||t.postMessage({type:Se.EncodeConfig,cfg:e})}adjustBitrate(e,t){var r;(r=this._worker)==null||r.postMessage({type:Se.AdjustBitrate,kind:e,bitrate:t})}publish(e){var t;ur.log("start capture & connect"),this._capture.start(),(t=this._worker)==null||t.postMessage({type:Se.Publish,url:e})}unpublish(){var e;this._capture.destroy(),(e=this._worker)==null||e.postMessage({type:Se.UnPublish})}destroy(){var e;ur.log("destroy capture & rtmp worker"),this._capture.destroy(),(e=this._worker)==null||e.terminate(),this._worker=null}download(){var e;(e=this._worker)==null||e.postMessage({type:Se.Download})}}function Eg(i){const e=document.createElement("a");e.href=URL.createObjectURL(new Blob([i])),e.download=Date.now()+".flv",e.click()}const Qa=new st("RTMPConnect");class wg{constructor(e,t,r,n){this._opts=void 0,this._isPushing=!1,this._url=e,this._opts=t,this._onError=r,this._OnSuccess=n,this._rtmp=new Za,this._bindEvents()}get isPushing(){return this._isPushing}get pushUrl(){return this._url}get sessionId(){return 0}_bindEvents(){this._rtmp.on(ot.OnError,e=>{this._isPushing=!1,this._onError(e)}),this._rtmp.on(ot.OnConnectClosed,()=>{this._isPushing=!1,this._onError(new Ka(cr.WTP_CONNECT_FAIL,"connect lost"))}),this._rtmp.on(ot.OnFirstFramePushed,()=>{this._isPushing=!0,this._OnSuccess()})}async publish(e,t,r){await this._rtmp.ready(),r!=null&&r.cfg&&this._rtmp.setEncodeCapacity(r.cfg),e.filter(Boolean).forEach(n=>this._rtmp.addTrack(n)),t[0]&&this._rtmp.adjustBitrate(at.Audio,t[0]),t[1]&&this._rtmp.adjustBitrate(at.Video,t[1]),this._rtmp.publish(this._url)}updatePublish(e,t){Qa.log(`replace track to ${e==null?void 0:e.label}`),this._rtmp.replaceTrack(t,e)}applyBitrate(e,t){this._rtmp.adjustBitrate(t,e)}async getStats(){return this._rtmp.getStats()}async getStatsSnapshoot(e){return e&&await Ci(e),{stats:await this._rtmp.getStats(),originStats:void 0}}unpublish(){Qa.warn("unpublish"),this._rtmp.unpublish(),this._isPushing=!1}}var Te=(i=>(i[i.Start=0]="Start",i[i.Stop=1]="Stop",i[i.GameControl=2]="GameControl",i[i.InitPushReader=3]="InitPushReader",i[i.Online=4]="Online",i[i.Reconnect=5]="Reconnect",i[i.UpdateTrack=6]="UpdateTrack",i[i.SetBitrate=7]="SetBitrate",i[i.PassEngineEvent=8]="PassEngineEvent",i[i.StopSuccess=9]="StopSuccess",i[i.VideoLog=10]="VideoLog",i[i.SetJitterBuffer=11]="SetJitterBuffer",i[i.ResetEngine=12]="ResetEngine",i[i.GetStats=13]="GetStats",i[i.Test=14]="Test",i[i.Plugin=15]="Plugin",i[i.EnableLogger=16]="EnableLogger",i[i.SendLogToMain=17]="SendLogToMain",i))(Te||{});const Cg=1e3;function kg(){return!1}class Ya{constructor(){this.maxSize=Cg,this.supported=kg(),this.supported&&(this.buffer=new SharedArrayBuffer(this.maxSize),this.arr=new Uint8Array(this.buffer))}share(e){return this.supported?(this.arr.set(e),this.buffer):e.buffer}}class Tg{constructor(e){this.encoder=new TextEncoder,this.decoder=new TextDecoder,this.buffer=new Ya,this.client=e}send(e){this.client.postMessage(e)}sendTransportable(e,t){Object.assign(e,t);const r=Object.values(t);this.client.postMessage(e,r)}onMessage(e){this.client.addEventListener("message",t=>{e(t.data)})}destroy(){var e,t;(t=(e=this.client).terminate)==null||t.call(e)}}class zg{constructor(){this.usePrevEmit=!0,this._map={},this._prevData={}}hasEvent(e){return!!this._map[e]}on(e,t){if(typeof e=="object"){const r=[];for(const n in e)r.push(this.on(n,e[n]));return()=>{r.forEach(n=>n())}}else{if(!t)throw new Error("fn is required");const r=this._formatTarget(t);return this._checkPrev(e,r)&&r.once?()=>{}:(this._getList(e).push(r),()=>{this.off(e,r)})}}_formatTarget(e,t){return typeof e=="function"?{listener:e,once:t??!1,prev:this.usePrevEmit}:(typeof t=="boolean"&&(e.once=t),e)}emit(e,...t){this._prevData[e]=t;const r=this._map[e];if(!r)return!1;for(let n=0;n<r.length;n++){const s=r[n];s.listener(...t),s.once&&(r.splice(n,1),n--)}return!0}off(e,t){const r=this._map[e];if(!r)return!1;const n=r.findIndex(s=>s===t||s.listener===t);return n===-1?!1:(r.splice(n,1),!0)}clear(e){return this._map[e]?(delete this._map[e],delete this._prevData[e],!0):!1}async onWait(e,t){return new Promise(r=>{var a;let n=(...o)=>r(o);t&&(n={listener:n,...t});const s=this.once(e,n);(a=t==null?void 0:t.onclear)==null||a.call(t,s)})}destroy(){this._map={},this._prevData={}}_checkPrev(e,t){if(!t.prev)return!1;const r=this._prevData[e];return typeof r<"u"?(t.listener(...r),!0):!1}once(e,t){return this.on(e,this._formatTarget(t,!0))}head(e,t){const r=this._formatTarget(t);return this._checkPrev(e,r)&&r.once?()=>{}:(this._getList(e).unshift(t),()=>{this.off(e,t)})}headOnce(e,t){return this.head(e,this._formatTarget(t,!0))}_getList(e){let t=this._map[e];return t||(this._map[e]=t=[]),t}passEvents(e,t){t.forEach(r=>{e.on(r,n=>{this.emit(r,n)})})}}class Ag extends zg{constructor(e){super();const t=new e;this.messenger=new Tg(t),this.buffer=new Ya,this.onMessage(r=>{this.receiveWorkerMessage(r)})}onMessage(e){this.messenger.onMessage(e)}sendMessage(e){var t;e.type===Te.GameControl&&((t=window.__vecg_debug_helper)==null||t.log("debugtouch sendMessage",e.data.byteLength)),this.messenger.send(e)}sendTransportable(e,t){this.messenger.sendTransportable(e,t)}}const ec='(function(){"use strict";var g=(s=>(s[s.Start=0]="Start",s[s.Stop=1]="Stop",s[s.GameControl=2]="GameControl",s[s.InitPushReader=3]="InitPushReader",s[s.Online=4]="Online",s[s.Reconnect=5]="Reconnect",s[s.UpdateTrack=6]="UpdateTrack",s[s.SetBitrate=7]="SetBitrate",s[s.PassEngineEvent=8]="PassEngineEvent",s[s.StopSuccess=9]="StopSuccess",s[s.VideoLog=10]="VideoLog",s[s.SetJitterBuffer=11]="SetJitterBuffer",s[s.ResetEngine=12]="ResetEngine",s[s.GetStats=13]="GetStats",s[s.Test=14]="Test",s[s.Plugin=15]="Plugin",s[s.EnableLogger=16]="EnableLogger",s[s.SendLogToMain=17]="SendLogToMain",s))(g||{});const j=1e3;function $(){return!1}class G{constructor(){this.maxSize=j,this.supported=$(),this.supported&&(this.buffer=new SharedArrayBuffer(this.maxSize),this.arr=new Uint8Array(this.buffer))}share(e){return this.supported?(this.arr.set(e),this.buffer):e.buffer}}class q{constructor(e){this.encoder=new TextEncoder,this.decoder=new TextDecoder,this.buffer=new G,this.client=e}send(e){this.client.postMessage(e)}sendTransportable(e,t){Object.assign(e,t);const i=Object.values(t);this.client.postMessage(e,i)}onMessage(e){this.client.addEventListener("message",t=>{e(t.data)})}destroy(){var e,t;(t=(e=this.client).terminate)==null||t.call(e)}}class p{constructor(){this.usePrevEmit=!0,this._map={},this._prevData={}}hasEvent(e){return!!this._map[e]}on(e,t){if(typeof e=="object"){const i=[];for(const n in e)i.push(this.on(n,e[n]));return()=>{i.forEach(n=>n())}}else{if(!t)throw new Error("fn is required");const i=this._formatTarget(t);return this._checkPrev(e,i)&&i.once?()=>{}:(this._getList(e).push(i),()=>{this.off(e,i)})}}_formatTarget(e,t){return typeof e=="function"?{listener:e,once:t??!1,prev:this.usePrevEmit}:(typeof t=="boolean"&&(e.once=t),e)}emit(e,...t){this._prevData[e]=t;const i=this._map[e];if(!i)return!1;for(let n=0;n<i.length;n++){const r=i[n];r.listener(...t),r.once&&(i.splice(n,1),n--)}return!0}off(e,t){const i=this._map[e];if(!i)return!1;const n=i.findIndex(r=>r===t||r.listener===t);return n===-1?!1:(i.splice(n,1),!0)}clear(e){return this._map[e]?(delete this._map[e],delete this._prevData[e],!0):!1}async onWait(e,t){return new Promise(i=>{var a;let n=(...o)=>i(o);t&&(n={listener:n,...t});const r=this.once(e,n);(a=t==null?void 0:t.onclear)==null||a.call(t,r)})}destroy(){this._map={},this._prevData={}}_checkPrev(e,t){if(!t.prev)return!1;const i=this._prevData[e];return typeof i<"u"?(t.listener(...i),!0):!1}once(e,t){return this.on(e,this._formatTarget(t,!0))}head(e,t){const i=this._formatTarget(t);return this._checkPrev(e,i)&&i.once?()=>{}:(this._getList(e).unshift(t),()=>{this.off(e,t)})}headOnce(e,t){return this.head(e,this._formatTarget(t,!0))}_getList(e){let t=this._map[e];return t||(this._map[e]=t=[]),t}passEvents(e,t){t.forEach(i=>{e.on(i,n=>{this.emit(i,n)})})}}class M extends p{constructor(){super(),this.messenger=new q(globalThis),this.messenger.onMessage(this.receiveMainMessage.bind(this))}onMessage(e){this.messenger.onMessage(e)}send(e,t){this.messenger.send({type:e,data:t})}}var l=(s=>(s[s.Connecting=0]="Connecting",s[s.Open=1]="Open",s[s.Closing=2]="Closing",s[s.Closed=3]="Closed",s))(l||{}),S=(s=>(s.Init="init",s.Online="online",s.Error="error",s.ApiCall="api_call",s))(S||{});function E(){let s,e;return{ready:new Promise((i,n)=>{s=i,e=n}),resolve:s,reject:e}}function J(s=500,e){const{ready:t,resolve:i}=E(),n=setTimeout(i,s);return e==null||e(n),t}function V(s){let e=!0,t="";for(const i of s)if(!(i in window)){e=!1,t=`${i} not Supported`;break}return{supported:e,info:t}}function x({task:s,timeout:e,time:t=200}){const{ready:i,resolve:n}=E(),r=setTimeout(async()=>{let a;typeof e<"u"&&(typeof e=="function"?(a=e(),a instanceof Promise&&(a=await a)):a=e),n(a)},t);return s().then(a=>{clearTimeout(r),n(a)}),i}const K=24*60*60*1e3;function F(s,e="1d"){const t=`_me_expire_${s}`;let i=0;if(typeof e=="string"){if(!/^[0-9]+d$/.test(e))throw new Error("expire format error");i=K*parseInt(e)}else i=e;return{get(){const n=localStorage.getItem(t);if(!n)return null;let r=null;try{r=JSON.parse(n)}catch{return null}const{value:a,expire:o}=r;return o<Date.now()?(localStorage.removeItem(t),null):a},set(n){localStorage.setItem(t,JSON.stringify({value:n,expire:Date.now()+i}))},remove(){localStorage.removeItem(t)}}}function C(s){let e=s.length,t=0;for(let r=e-1;r>=0;r--)s[r]?t+=s[r].byteLength:(e--,s.splice(r,1));const i=new Uint8Array(t);let n=0;for(let r=0;r<e;r++)i.set(s[r],n),n+=s[r].byteLength;return i}function _(s){for(const e in s)typeof s[e]>"u"&&delete s[e];return s}function X(s,e){let t=Number.MAX_SAFE_INTEGER,i=0;for(const n of e){const r=Math.abs(s-n);if(r===0)return n;r<t&&(t=r,i=n)}return i}var f=(s=>(s[s.AAC=0]="AAC",s[s.OPUS=1]="OPUS",s[s.H264=2]="H264",s[s.H265=3]="H265",s[s.AV1=4]="AV1",s))(f||{});f.AAC+"",f.OPUS+"",f.H264+"",f.H265+"",f.AV1+"";const U={[f.AAC]:"mp4a.40.2",[f.OPUS]:"opus",[f.H264]:"avc1.4DE033",[f.H265]:"hev1.1.6.L93.B0"};function O({readable:s,onFrame:e,onFinish:t,onError:i}){if(!s)return()=>{};const n=s.getReader();console.log("getReader");let r=!0;return Z({reader:n,flag:()=>r,onFrame:e,onFinish:t,onError:i}),()=>{r=!1}}async function Z({reader:s,flag:e,onFrame:t,onFinish:i,onError:n}){for(;e();)try{const{done:r,value:a}=await s.read();if(r){console.warn("Stream complete"),i==null||i();return}t(a),a.close()}catch(r){console.error("read error,",r),n==null||n(r)}}function W(s){const{video:e,audio:t}=Y(s);return{video:e?R(e):void 0,audio:t?R(t):void 0}}function R(s){const e=new MediaStreamTrackProcessor(s),{readable:t}=e,i=s.getSettings();return{readable:t,settings:i}}function Y(s){return{video:s.getVideoTracks()[0],audio:s.getAudioTracks()[0]}}function ee(s){const e=new Uint8Array(s.byteLength);return s.copyTo(e),e}const u={log(){},send(){},$custom:{},$enableLog(s=!0){u.log=s?(...e)=>{console.log(L(),...e),u.enableLogSend&&z(e)}:()=>{}},$enableSend(){u.send=(...s)=>{z(s)}}};function te(){var n;typeof window=="object"&&!window.__me_debug_helper&&(window.__me_debug_helper=u);let s=location.search.substring(1);const e="_medh_",t=((n=u.$isInnerEnv)==null?void 0:n.call(u))||!0;if(!s){const{hash:r}=location,a=r.indexOf("?");if(!r||a===-1||(s=r.substring(a+1),!s))return}const i=s.split("&");for(const r of i){const[a,o]=r.split("=");if(a.startsWith(e)){let c=a.replace(e,"");if(c.startsWith("inner_")){if(!t)continue;c=c.replace("inner_","")}c==="log"?u.$enableLog():c==="send"?u.$enableSend():u[c]=o||!0}}location.hostname==="localhost"&&u.$enableLog()}function z(s){if(u.$logger)try{u.$logger(s)}catch(e){console.error(L(),"debug send fail:",e)}}function L(){const s=new Date;return`[${s.toLocaleTimeString()} ${s.getMilliseconds().toString().padStart(3,"0")} media-engine]`}te();let ie=class{constructor(){this._lastDot=0,this._totalSize=0,this._speed=[]}addSample(e){this._lastDot||(this._lastDot=Date.now()),this._totalSize+=e;const t=Date.now()-this._lastDot;t>=500&&(this._addSpeedSample(this._totalSize/t*8e3),this._totalSize=0,this._lastDot=Date.now())}_addSpeedSample(e){this._speed.push(e),this._speed=this._speed.slice(-6)}reset(){this._speed=[]}getUpSpeed(){return this._speed.length?parseInt(this._speed.reduce((e,t)=>e+=t,0)/this._speed.length):0}};class se{constructor(){this._bandwidth=0,this._dbrDataSize=0,this.MAX_ESTIMATE_DURATION_MS=2e3,this.MIN_ESTIMATE_DURATION_MS=1e3,this.packets=[]}addDbrPacket(e){this.packets.push(e),this._dbrDataSize+=e.size;const t=this.packets[0],i=e.sendEndTime-t.sendBeginTime;for(;this.packets.length>0;){const n=this.packets[0];if(e.sendEndTime-n.sendBeginTime>this.MAX_ESTIMATE_DURATION_MS)this._dbrDataSize-=n.size,this.packets.shift();else break}this._bandwidth=i>=this.MIN_ESTIMATE_DURATION_MS?this._dbrDataSize*1e3/i*8:0}getEstimateBandwidth(){return this._bandwidth}reset(){this._bandwidth=0,this._dbrDataSize=0,this.packets=[]}}class ne extends p{constructor(e,t,i){super(),this.streamWriter=null,this.datagramWriter=null,this.failQueue=[],this.bandwidth=0,this.smoothTime=0,this.failCount=0,this.timeoutCount=0,this.streamWriter=e.writable.getWriter(),this.datagramWriter=t.writable.getWriter(),this.upspeed=new ie,this.bandwidthEstimate=new se,i&&(this.strategy=i,i.upstream=this)}async resetStream(e){var t;(t=this.streamWriter)==null||t.releaseLock(),this.streamWriter=e.writable.getWriter(),this.failQueue.forEach(({data:i,config:n})=>{this.sendStream(i,n)}),this.failQueue=[]}async sendStream(e,{extra:t,force:i}={extra:{},force:!1}){var d;if(!i&&((d=this.strategy)==null?void 0:d.onSendStream(e,t))===!1)return;const n={sendBeginTime:performance.now(),size:e.byteLength,sendEndTime:0};this.upspeed.addSample(e.byteLength);const r=performance.now(),a=await this._writeData(e);if(a){(a==="error"||a==="timeout")&&(this.failQueue.push({data:e,config:{extra:t,force:i}}),this.emit("write-error",a));return}n.sendEndTime=performance.now(),this.bandwidthEstimate.addDbrPacket(n);const o=performance.now()-r||.001;this.smoothTime=this.smoothTime===0?o:this.smoothTime*.7+o*.3;const h=e.byteLength/1024*8/(this.smoothTime/1e3);this.bandwidth=Math.min(this.bandwidth===0?h:this.bandwidth*.7+h*.3,1e4)}async _writeData(e){return await x({task:()=>{if(!this.streamWriter)return Promise.resolve("no_stream");const{ready:i,resolve:n}=E();return this.streamWriter.write(e).then(()=>{n("")}).catch(()=>{this.failCount++,n("error")}),i},timeout:()=>(this.timeoutCount++,"timeout"),time:1e3})}async sendDgm(e,{extra:t,force:i}={extra:{},force:!0}){var n,r;!i&&((n=this.strategy)==null?void 0:n.onSendDgm(e,t))===!1||(this.upspeed.addSample(e.byteLength),await((r=this.datagramWriter)==null?void 0:r.write(e).catch(a=>{console.log("send dgm fail",a)})))}async destroy(){var e,t,i;try{await((e=this.streamWriter)==null?void 0:e.close()),await((t=this.datagramWriter)==null?void 0:t.close())}catch(n){console.warn("upstream destroy:",n)}this.upspeed.reset(),(i=this.strategy)==null||i.destroy()}getSpeed(){return this.upspeed.getUpSpeed()}getBandwidth(){return this.bandwidth}getEstimateBandwidth(){return this.bandwidthEstimate.getEstimateBandwidth()}clearEstimateBandwidth(){this.bandwidthEstimate.reset()}}class re extends p{constructor(e,t){super(),this.destroyed=!1,this.read(e.readable,i=>{this.emit("stream",i)},!0),this.read(t.readable,i=>{this.emit("datagram",i)})}async read(e,t=()=>{},i=!1){const n=e.getReader();for(i&&(this.streamReader=n);!this.destroyed;){const{value:r,done:a}=await n.read().catch(()=>({done:!0,value:null}));if(a)break;t(r)}}resetStream(e){this.streamReader.releaseLock(),this.read(e.readable,t=>{this.emit("stream",t)})}destroy(){this.destroyed=!0,super.destroy()}}const P={clearConnection:()=>Promise.resolve(),sendStream:async()=>{},sendDgm:async()=>{},getUpSpeed:()=>0,getUpBandwidth:()=>0,getId:()=>0};class ae extends p{constructor(e){super(),this.destroyed=!1,this._resetLock=!1,this.options=e,this.ready=this.connect(),this.ready.then(t=>{var i;t&&(this.initStream(),(i=this.transport)==null||i.closed.then(n=>{this.emit("closed",n)}).catch(n=>{this.emit("closed",{closeCode:-1,reason:`catch ${n.toString()}`})}))})}get id(){return this.options.id}async destroy(){var e,t,i,n;if(super.destroy(),!this.destroyed){this.destroyed=!0,await((e=this.upstream)==null?void 0:e.destroy()),(t=this.downstream)==null||t.destroy();try{(i=this.transport)==null||i.close(),await((n=this.transport)==null?void 0:n.closed)}catch(r){console.warn("close fail",r)}this.transport=null,u.log("close transport"),this.emit("destroyed")}}async connect(){try{const e=new WebTransport(this.options.url);if(!e)this.onFail("Init error");else{this.transport=e;const t=await x({task:async()=>{var i;try{return await((i=this.transport)==null?void 0:i.ready),u.log("transport ready"),""}catch(n){return`Ready Catch: ${(n==null?void 0:n.toString())||"Fail"}`}},timeout:"Init timeout",time:2e3});if(t)this.onFail(t);else return this.emit("success"),!0}}catch(e){this.onFail(`Init Catch: ${(e==null?void 0:e.toString())||"Fail"}`)}return!1}onFail(e){this.emit("fail",e),this.transport=null,this.destroy()}async initStream(){const{transport:e}=this;if(!e)return;const t=await this.createBidStream();if(!t)return;this._prevStream=t;const i=e.datagrams;this.upstream=new ne(t,i,this.options.strategy),this.downstream=new re(t,i),this.downstream.on({stream:n=>this.emit("stream",n),datagram:n=>{this.emit("datagram",n)}}),this.upstream.on("write-error",()=>{this.resetStream()}),this.emit("upstream-ready")}async resetStream(){var t,i,n,r;if(this._resetLock)return;this._resetLock=!0;const e=await this.createBidStream();if(!e){this._resetLock=!1;return}(t=this.upstream)==null||t.resetStream(e),(i=this._prevStream)==null||i.writable.close(),(n=this.downstream)==null||n.resetStream(e),(r=this._prevStream)==null||r.readable.cancel(),this._prevStream=e,this._resetLock=!1}async createBidStream(){var e;return(e=this.transport)==null?void 0:e.createBidirectionalStream()}}class oe{constructor(e){this.index=0,this.gaps=[5,5,5,5,10,10,10,20,20,30,30,40,50,70,100],this.count=0,this.n=this.gaps.length,this.max=this.gaps[this.n-1]*100,this.maxCount=e}reset(){this.index=0,this.count=0}get gap(){return typeof this.maxCount=="number"&&this.count>=this.maxCount?0:(this.count++,this.index>=this.n-1?this.max:this.gaps[this.index++]*100)}}class ce extends p{constructor(){super(...arguments),this.readyState=l.Connecting,this.connectId=0,this.connectionUtil=P,this.destroyed=!1}setState(e){this.readyState=e}get isConnecting(){return this.readyState===l.Connecting}async init(e){this.options=Object.assign({autoReconnect:!0,useDownstream:!0},e),this.reconnectGap=new oe(e.maxCount),await this.connect({connectReason:S.Init})}async connect({first:e=!0,connectReason:t,url:i}){if(this.destroyed)return this.setState(l.Closed),Promise.resolve("Reconnector destroyed");const n=t===S.Init;e&&(this.reconnectGap.reset(),n||this.emit("reconnecting",t)),this.setState(l.Connecting);const{success:r,reason:a}=await this.singleConnect(i);if(this.destroyed)return this.setState(l.Closed),Promise.resolve("Reconnector destroyed stage2");if(!r){const{gap:o}=this.reconnectGap,c=e&&n?"connect-fail":"reconnect-fail";return this.emit(c,a),o===0||!this.options.autoReconnect?(this.emit("end"),this.setState(l.Closed),a):(await J(o,h=>this.delayTimer=h),this.connect({first:!1,url:i,connectReason:S.Error}))}return this.setState(l.Open),this.emit("connect-open",n),this.onConnected(),n||this.onMonitorConnectionNormal(),""}async onConnected(){var t;(t=this.clearWaitClosed)==null||t.call(this);const[e]=await this.onWait("connection-closed",{onclear:i=>this.clearWaitClosed=i});if(e.closeCode!==-1){if(console.log("reason",e.reason),this.emit("connect-close",e.reason||""),this.isConnecting){console.warn("isConnecting",e.reason);return}console.log("close: webts closed gracefully.",e.reason),e.closeCode===0&&(this.emit("end"),this.setState(l.Closed))}else{const i=e.reason;console.error("close: webts closed due to ",e),this.emit("connect-close",i),this.emit("disconnected",i),this.options.autoReconnect?this.connect({connectReason:S.Error}):(this.emit("connect-fail",i),this.emit("end"))}}onMonitorConnectionNormal(){this.options.useDownstream&&(this.waitTimer=setTimeout(()=>{this.emit("reconnect-fail","no packet"),this.emit("connect-close","no packet received"),this.emit("end"),this.setState(l.Closed)},3e3))}onReceivePacket(e){this.waitTimer!==null&&(e<10||(clearTimeout(this.waitTimer),this.waitTimer=null,console.warn("DEBUG 重连恢复收包"),this.emit("reconnected")))}async singleConnect(e){const{resolve:t,ready:i}=E();await this.clearReconnect();const n=new ae({id:this.connectId++,url:e||this.options.url,strategy:this.options.strategy});n.on({success:()=>{t({success:!0,reason:""})},fail:a=>{t({success:!1,reason:a})},destroyed:()=>{t({success:!1,reason:"Connection destroyed"})},datagram:a=>{this.onReceivePacket(a.byteLength),this.emit("datagram",a)},closed:a=>{this.emit("connection-closed",a)}}),this.passEvents(n,["upstream-ready","stream"]);const r=n.onWait("upstream-ready");return this.connectionUtil={clearConnection:()=>n.destroy(),sendStream:async(a,o)=>{var c;if(!n.destroyed)return await r,(c=n.upstream)==null?void 0:c.sendStream(a,o)},sendDgm:async(a,o)=>{var c;if(!n.destroyed)return await r,(c=n.upstream)==null?void 0:c.sendDgm(a,o)},getUpSpeed:()=>{var a;return((a=n.upstream)==null?void 0:a.getSpeed())||0},getUpBandwidth:()=>{var a;return((a=n.upstream)==null?void 0:a.getBandwidth())||0},getId:()=>n.id},i}async destroy(){this.destroyed||(this.destroyed=!0,await this.clearReconnect(),this.emit("connect-close","api call"),this.emit("disconnected","api call"),super.destroy())}async clearReconnect(){var e;await((e=this.connectionUtil)==null?void 0:e.clearConnection()),clearTimeout(this.delayTimer),clearTimeout(this.waitTimer),this.waitTimer=this.delayTimer=null}onlineReconnect(){this.options.autoReconnect&&(this.clearReconnect(),this.connect({first:!0,connectReason:S.Online}))}}class he extends p{get readyState(){var e;return((e=this.reconnector)==null?void 0:e.readyState)||l.Closed}get closed(){return this.readyState===l.Closed}get connection(){var e;return((e=this.reconnector)==null?void 0:e.connectionUtil)||P}async init(e){this.reconnector=new ce,this.initEvents(),this.ready=this.reconnector.init({...Object.assign({useDownstream:!0},e)}),await this.ready}async close(){await this.reconnector.destroy()}online(){this.reconnector.onlineReconnect()}reconnect(e){this.reconnector.connect({connectReason:S.ApiCall,url:e})}async sendStream(e,t){var i;return await this.ready,(i=this.connection)==null?void 0:i.sendStream(e,t)}async sendDgm(e,t){var i;return await this.ready,(i=this.connection)==null?void 0:i.sendDgm(e,t)}initEvents(){this.passEvents(this.reconnector,["reconnected","reconnect-fail","connect-close","disconnected","reconnecting","connect-fail","connect-open","upstream-ready","stream","datagram"])}getUpSpeed(){return this.connection.getUpSpeed()}getUpBandwidth(){return this.connection.getUpBandwidth()}async destroy(){await this.close(),super.destroy()}}class de extends p{sendStream(e,t){return this.upstream.sendStream(e,{force:!0,extra:t})}sendDgm(e,t){return this.upstream.sendDgm(e,{force:!0,extra:t})}}class ue{constructor(){this.totalFrames=0,this.periodFrames=0,this.periodSize=0,this.periodDuration=0,this.keyFrames=0,this.bitrate=0,this.framerate=0,this.lastTs=0}addFrame(e){const t=e.byteLength;let i=0;const n=Math.round(e.timestamp/1e3);this.lastTs!==0&&(i=n-this.lastTs),this.lastTs=n,this.totalFrames++,this.periodFrames++,this.periodSize+=t,this.periodDuration+=i,e.type==="key"&&this.keyFrames++,this.periodDuration>=1e3&&(this.bitrate=Math.floor(this.periodSize/this.periodDuration*8e3),this.framerate=this.periodFrames,this.periodFrames=0,this.periodDuration=0,this.periodSize=0)}getStats(){return{bitrate:this.bitrate,framerate:this.framerate,encodedFrames:this.totalFrames,encodedKeyFrames:this.keyFrames,codec:""}}reset(){this.totalFrames=0,this.periodFrames=0,this.periodSize=0,this.periodDuration=0,this.keyFrames=0,this.bitrate=0,this.framerate=0,this.lastTs=0}}class H extends p{constructor(){super(...arguments),this.configInitialized=!1,this.firstFrame=!1,this.stats=new ue,this._config={},this._finalConfig={},this._decoderConfig={},this._destroyed=!1}extraEncodeConfig(){return{}}getStats(){return this.stats.getStats()}get mediaType(){return this._config.mediaType}async updateConfig(e){if(e=_(e),Object.keys(e).length===0)return;Object.assign(this._config,e),this.encoder&&(await this.encoder.flush(),this.encoder.close(),this.init());const t=await this.checkConfigSupported(this.formatConfig());this._config={...this._config,...t},this._finalConfig=this.formatConfig(),this.configInitialized=!1}getConfig(){return this._config}getDecoderConfig(){return this._decoderConfig}init(e){e&&this.updateConfig(e),u.log("init encoder"),this.encoder=new this.Encoder({output:(t,i)=>{t.syncTimestamp=t.timestamp,this.stats.addFrame(t);const n=i==null?void 0:i.decoderConfig;let r;n&&(r=n,Object.assign(this._decoderConfig,n),this.emit("decoder-config-change",this._decoderConfig)),this.emit("frame-encoded",t,r),this.firstFrame||(this.emit("first-frame-encoded",t,r),this.firstFrame=!0)},error:t=>{this.emit("encode-error",t)}})}encode(e){var t;if(!this._destroyed){if(!this.configInitialized){const i=this._finalConfig;(t=this.encoder)==null||t.configure(i),this.configInitialized=!0,console.warn("configure final done",i)}this.encoder.encode(e,this.extraEncodeConfig())}}async destroy(){var e,t;this.stats.reset(),this._destroyed=!0;try{await((e=this.encoder)==null?void 0:e.flush()),(t=this.encoder)==null||t.close()}catch{}super.destroy()}async checkConfigSupported(e,t=!1){if(this.Encoder.isConfigSupported)try{const{config:i,supported:n}=await this.Encoder.isConfigSupported(e);if(n)return e;if(!t&&this.retryConfig)return this.checkConfigSupported(this.retryConfig(e),!0);this.emit("config-error",{message:"config not supported",config:i})}catch(i){if(!t&&this.retryConfig)return this.checkConfigSupported(this.retryConfig(e));this.emit("config-error",{message:"config uncaught error",err:i,config:e})}}}F("audio_encoder_support","3d");function le(){return V(["EncodedAudioChunk","AudioEncoder","AudioData"])}const m={mediaType:f.H264,format:"annexb",bitrate:2e5,framerate:15,bitrateMode:"variable",keyInterval:3e3,keyGopSize:90,hardwareAcceleration:"prefer-hardware",latencyMode:"quality"},w={mediaType:f.AAC,bitrate:96e3,sampleRate:48e3,numberOfChannels:2,bitrateMode:"constant"},T=class T extends H{constructor(){super(...arguments),this.Encoder=AudioEncoder,this.isAudio=!0}updateConfig(e){if(typeof e.bitrate=="number"){const t=[96e3,128e3,16e4,192e3],i=X(e.bitrate,t);i!==e.bitrate&&(console.warn(`audio bitrate ${e.bitrate} not supported, use ${i} instead`),e.bitrate=i)}return super.updateConfig(e)}getStats(){const{codec:e="",numberOfChannels:t=0,sampleRate:i=0}=this._finalConfig;return{...super.getStats(),codec:e,numberOfChannels:t,sampleRate:i}}formatConfig(e){const{bitrate:t=w.bitrate,bitrateMode:i=w.bitrateMode,codec:n=w.codec||U[this._config.mediaType??w.mediaType],numberOfChannels:r=w.numberOfChannels,format:a=w.format||(e==null?void 0:e.format),sampleRate:o=w.sampleRate}=this._config,c=_({codec:n,sampleRate:o,numberOfChannels:r,bitrate:t,bitrateMode:i,format:a});return this.emit("config-change",c),c}};T.isSupported=le;let v=T;F("video_encoder_support","3d");function fe(){return V(["EncodedVideoChunk","VideoEncoder","VideoFrame"])}function me(s=m.keyInterval){let e=!0,t;return{is(){return e?(e=!1,t=setTimeout(()=>{e=!0},s),!0):!1},reset(){e=!0,clearTimeout(t)}}}function pe(s=m.keyGopSize){let e=s;return{is(){return e++,e>=s?(e=0,!0):!1},reset(){e=s}}}const B=class B extends H{constructor(){super(...arguments),this.Encoder=VideoEncoder,this.isAudio=!1,this.retryConfig=e=>(e.hardwareAcceleration==="prefer-hardware"&&(e.hardwareAcceleration="prefer-software",this._config.hardwareAcceleration="prefer-software",console.warn("retry config with software hardwareAcceleration")),e)}getStats(){const e=super.getStats();let{keyGopSize:t}=this._finalConfig;const{keyInterval:i=m.keyInterval}=this._config,{width:n=0,height:r=0,codec:a="",framerate:o=0}=this._finalConfig;return typeof t>"u"&&(t=Math.round(i/1e3*o)),{...e,width:n,height:r,codec:a,keyGopSize:t}}formatConfig(e){const{codec:t=m.codec||U[this._config.mediaType??m.mediaType],bitrate:i=m.bitrate,framerate:n=m.framerate,keyInterval:r=m.keyInterval,hardwareAcceleration:a=m.hardwareAcceleration,latencyMode:o=m.latencyMode,keyGopSize:c,width:h=m.width||(e==null?void 0:e.codedWidth),height:d=m.height||(e==null?void 0:e.codedHeight)}=this._config;this.keyframe=c?pe(c):me(r);const b=_({latencyMode:o,codec:t,hardwareAcceleration:a,bitrate:i,width:h,height:d,framerate:n});return console.log("config video",JSON.stringify(b,null,2)),this.emit("config-change",b),b}extraEncodeConfig(){return{keyFrame:this.keyframe.is()}}resetKeyFrame(){var e;(e=this.keyframe)==null||e.reset()}async destroy(){try{this.resetKeyFrame()}catch{}await super.destroy()}};B.isSupported=fe;let k=B;const N=16;function Q(){let s=-1,e=-1,t=-1;return{getLatest(){return s},setBase(i){t===-1&&(t=i)},check(i){return s===-1?s=t:s+=i-e,e=i,s},reset(){s=e=t=-1}}}class ge extends p{constructor(){super(...arguments),this.video=Q(),this.audio=Q(),this.base=N,this._sendQueue=[],this._processedVideo=!1,this._processedAudio=!1,this._maximumVideoSyncTimestamp=0,this._maximumAudioSyncTimestamp=0,this.cacheAudioChunk=[],this.cacheVideoChunk=[],this.hasGetFirstVideoFrame=!1,this.SYNC_THRESHOLD=40}insertPacket(e,t,i){let n=0;for(;n<this._sendQueue.length&&!(this._sendQueue[n].frame.syncTimestamp===e.syncTimestamp&&t==="video"||this._sendQueue[n].frame.syncTimestamp>e.syncTimestamp);n++);this._sendQueue.splice(n,0,{frame:e,type:t,cfg:i})}processPacket(e,t,i){switch(this._processedAudio&&this._processedVideo||(t==="video"?this._processedVideo=!0:this._processedAudio=!0),this.insertPacket(e,t,i),t){case"video":this._maximumVideoSyncTimestamp<e.syncTimestamp&&(this._maximumVideoSyncTimestamp=e.syncTimestamp);break;case"audio":this._maximumAudioSyncTimestamp<e.syncTimestamp&&(this._maximumAudioSyncTimestamp=e.syncTimestamp);break}if(this._processedAudio&&this._processedVideo)for(;this._sendQueue.length>0;){const r=this._sendQueue[0];if(!this.checkOpposingTimestamp(r.frame,r.type))return!1;this.emit("processed-frame",r.frame,r.type,r.cfg),this._sendQueue.shift()}}checkOpposingTimestamp(e,t){switch(t){case"audio":return this._maximumVideoSyncTimestamp>e.syncTimestamp;case"video":return this._maximumAudioSyncTimestamp>e.syncTimestamp;default:return!1}}formatFrame(e,t,i,n){this[t].setBase(this.base);const a=Math.round(e.timestamp/1e3),o=this[t].check(a);return e.syncTimestamp=o,this.processPacket(e,t,n),[e]}syncAVFrame(e,t){if(t==="audio")this.cacheAudioChunk.push(e),this.cacheAudioChunk.sort((i,n)=>i.syncTimestamp-n.syncTimestamp);else if(this.cacheVideoChunk.push(e),this.cacheVideoChunk.sort((i,n)=>i.syncTimestamp-n.syncTimestamp),!this.hasGetFirstVideoFrame)return this.hasGetFirstVideoFrame=!0,null;return this.flushSynchronizedFrames()}flushSynchronizedFrames(){const e=[];for(;this.canSendFrame();){const t=this.getNextFrameToSend();if(t)e.push(t);else break}return e}canSendFrame(){if(this.cacheAudioChunk.length===0&&this.cacheVideoChunk.length===0)return!1;if(this.cacheAudioChunk.length===0)return this.cacheVideoChunk.length>0;if(this.cacheVideoChunk.length===0)return!1;const e=this.cacheAudioChunk[0],t=this.cacheVideoChunk[0];return Math.abs(e.syncTimestamp-t.syncTimestamp)<=this.SYNC_THRESHOLD}getNextFrameToSend(){if(this.cacheAudioChunk.length===0&&this.cacheVideoChunk.length>0)return this.cacheVideoChunk.shift()||null;if(this.cacheVideoChunk.length===0&&this.cacheAudioChunk.length>0||this.cacheAudioChunk.length===0&&this.cacheVideoChunk.length===0)return null;const e=this.cacheAudioChunk[0],t=this.cacheVideoChunk[0];return e.syncTimestamp<=t.syncTimestamp?this.cacheAudioChunk.shift()||null:this.cacheVideoChunk.shift()||null}reset(){this.audio.reset(),this.video.reset(),this.base=N,this._processedAudio=!1,this._processedVideo=!1,this._maximumAudioSyncTimestamp=0,this._maximumVideoSyncTimestamp=0,this.cacheAudioChunk=[],this.cacheVideoChunk=[],this.hasGetFirstVideoFrame=!1}}var y=(s=>(s[s.AUDIO=8]="AUDIO",s[s.VIDEO=9]="VIDEO",s[s.SCRIPT_DATA=18]="SCRIPT_DATA",s))(y||{}),A=(s=>(s[s.SEQUENCE_HEADER=0]="SEQUENCE_HEADER",s[s.AAC=1]="AAC",s))(A||{}),D=(s=>(s[s.SEQUENCE_HEADER=0]="SEQUENCE_HEADER",s[s.NALU=1]="NALU",s))(D||{}),I=(s=>(s[s.KEY=1]="KEY",s[s.INNER=2]="INNER",s))(I||{});const _e=10,ye=1,Se=7,we={96e3:0,48e3:3,44100:4,22050:7,16e3:8,8e3:11};function be(s){const e=(s[4]&3)+1;let t;const i=[],n=[];let r=6;const a=s[5]&31;let o;for(let d=0;d<a;d++){if(o=s[r]<<8|s[r+1],r+=2,!o)continue;const b=s.subarray(r,r+o);r+=o,i.push(b)}const c=s[r];r++;let h;for(let d=0;d<c;d++)h=s[r]<<8|s[r+1],r+=2,h&&(n.push(s.subarray(r,r+h)),r+=h);return{sps:t,spsArr:i,ppsArr:n,nalUnitSize:e}}class Ce{constructor(){this._cfg={hasVideo:!1,hasAudio:!1,sampleRate:48e3,numberOfChannels:1},this._hasVideoSeqHeader=!1}get hasVideo(){return!!this._cfg.hasVideo}get hasAudio(){return!!this._cfg.hasAudio}setConfig(e){this._cfg=Object.assign(this._cfg,e),console.log("---flv setConfig",this._cfg)}genHeader(){const e=[70,76,86,1,(this.hasAudio?1:0)<<2|(this.hasVideo?1:0),0,0,0,9,0,0,0,0];return new Uint8Array(e)}geneSEQ(e,t){let i;return e===y.AUDIO?i=this._genAudioSEQPayload():(i=this._genVideoSEQPayload(t.frame.type,t.description),this._hasVideoSeqHeader=!0),this._concatPayload(e,t.frame.syncTimestamp,i)}genPayload(e){const t=e.type===y.AUDIO,i=ee(e.frame),n=C([t?this._genAudioTagHeader():this._genVideoTagHeader(e.frame.type),t?this._genAudioData(i):this._genVideoData(e,i)]);return this._concatPayload(e.type,e.frame.syncTimestamp,n)}_concatPayload(e,t,i){const n=this._genTagHeader(e,i.length,t),r=n.length+i.length;return C([n,i,new Uint8Array([r>>>24,r>>>16,r>>>8,r])])}_genTagHeader(e,t,i){return new Uint8Array([e,t>>>16,t>>>8,t,i>>>16,i>>>8,i,i>>>24,0,0,0])}_genAudioSEQPayload(){return C([this._genAudioTagHeader(),this._genAudioSequenceHeader()])}_genVideoSEQPayload(e,t){return C([this._genVideoTagHeader(e),this._genVideoSequenceHeader(t)])}_genAudioTagHeader(){return new Uint8Array([_e<<4|12|ye<<1|this._cfg.numberOfChannels-1])}_genVideoTagHeader(e){return new Uint8Array([(e==="key"?I.KEY:I.INNER)<<4|Se,this._hasVideoSeqHeader?D.NALU:D.SEQUENCE_HEADER,0,0,0])}_genAudioSequenceHeader(){const e=4096|we[this._cfg.sampleRate]<<7|this._cfg.numberOfChannels<<3;return new Uint8Array([A.SEQUENCE_HEADER,e>>8,e])}_genAudioData(e){const t=new Uint8Array(1+e.length);return t.set([A.AAC],0),t.set(e,1),t}_genVideoSequenceHeader(e){return new Uint8Array(e||[])}_genVideoData(e,t){if(e.frame.type==="delta")return t;const i=be(new Uint8Array(e.description)),n=i.spsArr[0].length,r=i.ppsArr[0].length;return C([new Uint8Array([0,0,n>>8,n%256]),i.spsArr[0],new Uint8Array([0,0,r>>8,r%256]),i.ppsArr[0],t])}reset(){this._hasVideoSeqHeader=!1}}class Ee{constructor(){this._firstFrame=!0,this._flv=new Ce}updateConfig(e){e&&this._flv.setConfig(e)}receiveMediaFrame(e,t){const i=e.type===y.AUDIO;this._firstFrame&&i||(this._firstFrame&&(t({buffer:this._flv.genHeader(),type:"header"}),this._flv.hasAudio&&t({buffer:this._flv.geneSEQ(y.AUDIO,e),type:"seq"}),this._flv.hasVideo&&t({buffer:this._flv.geneSEQ(y.VIDEO,e),type:"seq"}),this._firstFrame=!1),t({buffer:this._flv.genPayload(e),type:"payload"}))}reset(){this._firstFrame=!0,this._flv.reset()}destroy(){this.reset()}}class ve{constructor(e=1e3){this._packets=[],this._latestDts=0,this._videoDuration=0,this._batchSize=e}addPacket(e,t){this._packets.push({data:e,isSeparator:!1,...t}),t.mediaType==="video"&&(this._latestDts=t.dts||0)}getVideoDuration(){const e=this._packets.find(t=>t.mediaType==="video");return!e||!e.dts?0:this._latestDts-e.dts}shift(){if(this._packets.length===0)return;let e=0;for(const r of this._packets)e+=r.data.byteLength;if(e<this._batchSize)return;const t=new Uint8Array(this._batchSize);let i=0,n=this._batchSize;for(;n>0&&this._packets.length>0;){const r=this._packets[0],a=r.data.byteLength;if(a<=n)t.set(r.data,i),i+=a,n-=a,this._packets.shift();else{const o=r.data.slice(0,n);t.set(o,i),this._packets[0]={...r,data:r.data.slice(n),isSeparator:!0},n=0}}return t}shiftSinglePacket(){if(this._packets.length===0)return;const e=this._packets.shift();return e==null?void 0:e.data}forceShift(){if(this._packets.length===0)return;let e=0;for(const a of this._packets)e+=a.data.byteLength;const t=Math.min(e,this._batchSize),i=new Uint8Array(t);let n=0,r=t;for(;r>0&&this._packets.length>0;){const a=this._packets[0],o=a.data.byteLength;if(o<=r)i.set(a.data,n),n+=o,r-=o,this._packets.shift();else{const c=a.data.slice(0,r);i.set(c,n),this._packets[0]={...a,data:a.data.slice(r),isSeparator:!0},r=0}}return i}dropPackets(e){const t=Math.min(e,this._packets.length);this._packets.splice(0,t)}dropVideoPackets(){this._packets=this._packets.filter(e=>e.mediaType!=="video")}get size(){return this._packets.length}get totalBytes(){return this._packets.reduce((e,t)=>e+t.data.byteLength,0)}get hasEnoughData(){return this.totalBytes>=this._batchSize}reset(){this._packets=[]}setBatchSize(e){this._batchSize=e}}class ke{constructor(){this._lastDot=0,this._totalSize=0,this._speed=[]}addSample(e){this._lastDot||(this._lastDot=Date.now()),this._totalSize+=e;const t=Date.now()-this._lastDot;t>=500&&(this._addSpeedSample(this._totalSize/t*8e3),this._totalSize=0,this._lastDot=Date.now())}_addSpeedSample(e){this._speed.push(e),this._speed=this._speed.slice(-6)}reset(){this._speed=[]}getUpSpeed(){return this._speed.length?parseInt(this._speed.reduce((e,t)=>e+=t,0)/this._speed.length):0}}class Ae extends de{constructor(e,t){super(),this.context=e,this.upSpeed=new ke,this.streamBuffer=new ve,this._inAdjustEncode=!1,this._dbrIncTimeout=0,this._dbrPrevBitrate=0,this._increaseTimer=0,this.isSending=!1,this.config={maxCacheSize:50,realSpeedPercent:.8,setting:{},uplinkBitrateCheckInterval:4*1e3,dbrIncreaseStep:.1},this.getCurrentBitrate=()=>this.context.videoEncoderConfig.bitrate??0,t&&this.updateConfig(t)}reset(){this.upSpeed.reset(),this.streamBuffer.reset(),this.isSending=!1,clearInterval(this._increaseTimer),this._increaseTimer=0,this._inAdjustEncode=!1}updateConfig(e){Object.assign(this.config,e)}_isHavingCongestion(){return this.streamBuffer.size>this.config.maxCacheSize}_setEncoderBitrate(e){const{width:t,height:i,framerate:n}=this.context.videoEncoderConfig;console.log(`set encode bitrate to specified ${e}`),this.context.emit("video-encoder-config",{bitrate:e,width:t,height:i,framerate:n}),this._inAdjustEncode=!0}_increaseBitrate(){this._dbrIncTimeout=0,this._dbrPrevBitrate=this.getCurrentBitrate();const e=this.context.videoEncoderConfig.originBitrate;if(!e)return;let t=this.getCurrentBitrate()+e*this.config.dbrIncreaseStep;t>=e?t=e:this._dbrIncTimeout=Date.now()+this.config.uplinkBitrateCheckInterval,this._setEncoderBitrate(t)}_decreaseBitrate(){const e=this._dbrPrevBitrate;let t=0,i;if(this.upstream.getEstimateBandwidth()&&this.upstream.getEstimateBandwidth()<this.getCurrentBitrate()&&(t=Math.floor(this.upstream.getEstimateBandwidth()*90/100/1e5)*1e5,t<50*1e3&&(t=50*1e3),this.upstream.clearEstimateBandwidth()),t)i=t;else if(e)console.log("use prev bitrate",e),i=e;else return;this._dbrPrevBitrate=0,this._dbrIncTimeout=Date.now()+this.config.uplinkBitrateCheckInterval,this._setEncoderBitrate(i)}_checkBitrate(){this._dbrIncTimeout&&Date.now()>=this._dbrIncTimeout&&(this._isHavingCongestion()?this._dbrIncTimeout=Date.now()+this.config.uplinkBitrateCheckInterval:this._increaseBitrate()),this._isHavingCongestion()&&this.streamBuffer.getVideoDuration()>500&&this._decreaseBitrate()}onSendStream(e,t){return this._checkBitrate(),this.streamBuffer.addPacket(e,t),this.upSpeed.addSample(e.byteLength),this._sendBuffer(),!1}async _sendBuffer(){if(!this.isSending){for(this.isSending=!0;;){const e=this.streamBuffer.shiftSinglePacket();if(!e)break;await this.sendStream(e)}this.isSending=!1}}onSendDgm(){return!0}_checkDeleteCache(e=!1){this._inAdjustEncode&&e&&(console.log(`ajust encode setting finish, delete cached ${this.streamBuffer.size} frame`),this.streamBuffer.reset(),this.upSpeed.reset(),this._inAdjustEncode=!1)}}class De extends p{constructor(e){super(),this.entry=e,this.on({"video-encoder-config":t=>{this.entry.videoEncoder.updateConfig(t)},"audio-encoder-config":t=>{this.entry.audioEncoder.updateConfig(t)}})}get videoEncoderConfig(){return this.entry.videoEncoder.getConfig()}get audioEncoderConfig(){return this.entry.audioEncoder.getConfig()}}class Ie extends p{constructor({videoEncoder:e,audioEncoder:t,transport:i,flv:n,strategy:r,formatAV:a=!0}={}){super(),this.hasVideo=!0,this.stopVideoInput=()=>{},this.stopAudioInput=()=>{},this._isVideoEncoded=!1,this._destroy=!1,this.reconnecting=!1,this.context=new De(this),this.videoEncoder=e||new k,this.audioEncoder=t||new v,this.transport=i||new he,this.flv=n||new Ee,a&&(this.avFormat=new ge,this.initAvFormatEventListener()),this.strategy=r||new Ae(this.context);const{sampleRate:o,numberOfChannels:c}=this.audioEncoder.getConfig();this.flv.updateConfig(_({sampleRate:o,numberOfChannels:c}))}initAvFormatEventListener(){this.avFormat.on("processed-frame",(e,t,i)=>{const n=e;if(n instanceof EncodedAudioChunk&&this.flv.receiveMediaFrame({type:y.AUDIO,frame:n},({buffer:r,type:a})=>{this.transport.sendStream(r,{extra:{isAudio:!0,type:a,key:!0,mediaType:"audio",dts:n.syncTimestamp}})}),n instanceof EncodedVideoChunk){const r=n.type==="key";this.flv.receiveMediaFrame({type:y.VIDEO,frame:n,description:i==null?void 0:i.description},({buffer:a,type:o})=>{this.transport.sendStream(a,{extra:{isAudio:!1,type:o,key:r,mediaType:"video",dts:n.syncTimestamp}})})}})}start(e){const t=e.data,i={},n={};if(e.video){const{width:r,height:a,frameRate:o}=t.setting.video||{};Object.assign(i,_({width:r,height:a,framerate:o}))}if(e.audio){const{sampleRate:r,channelCount:a}=t.setting.audio||{};Object.assign(n,_({sampleRate:r,numberOfChannels:a}))}if(t.cfg){const{channel:r,gopSize:a,sampleRate:o}=t.cfg;e.video&&Object.assign(i,_({keyGopSize:a,bitrate:t.bitrate.video,originBitrate:t.bitrate.video})),e.audio&&Object.assign(n,_({numberOfChannels:r,sampleRate:o,bitrate:t.bitrate.audio}))}this.videoEncoder.updateConfig(i),this.audioEncoder.updateConfig(n),this.init({transport:{url:t.url,maxReconnectCount:t.maxReconnectCount,autoReconnect:t.autoReconnect},input:{audio:e.audio,video:e.video}}),console.log("On worker start",t)}async init(e){this.initPassEvents();const{url:t,maxReconnectCount:i,autoReconnect:n}=e.transport;this.options=e,await this.transport.init({url:t,maxReconnectCount:i,autoReconnect:n,strategy:this.strategy,useDownstream:!1}),this.initSyncStuff(e),this.emit("engine-ready")}initPassEvents(){this.passEvents(this.transport,["connect-open","connect-close","disconnected","reconnecting","reconnected","reconnect-fail","connect-fail"])}initWriter(e){e&&(e.stream?this.initInputWithStream(e.stream):(e.audio||e.video)&&this.initInput({video:e.video,audio:e.audio}))}initSyncStuff({encoder:e,input:t,flv:i}){this.videoEncoder.init(e==null?void 0:e.video),this.audioEncoder.init(e==null?void 0:e.audio),this.initWriter(t),this.flv.updateConfig(i),this.initEngineEvents()}async initInput({audio:e,video:t}){this.hasVideo=!!t,this.flv.updateConfig({hasAudio:!!e,hasVideo:!!t}),await this.transport.onWait("upstream-ready");const i=(r=!1)=>()=>{console.log("encode finish: ",r)},n=(r=!1)=>a=>{console.warn("encode error: ",r,a)};e&&(this.stopAudioInput=O({readable:e,onFrame:r=>{this._destroy||this.reconnecting||this.audioEncoder.encode(r)},onFinish:i(!0),onError:n(!0)})),t&&(this.stopVideoInput=O({readable:t,onFrame:r=>{this._destroy||this.reconnecting||this.videoEncoder.encode(r)},onFinish:i(),onError:n()}))}initInputWithStream(e){const{video:t,audio:i}=W(e);this.hasVideo=!!t,t&&this.videoEncoder.updateConfig(t.settings),i&&this.audioEncoder.updateConfig(i.settings),this.initInput({video:t==null?void 0:t.readable,audio:i==null?void 0:i.readable})}muxAndSend(e,t,i){this.avFormat.formatFrame(e,t,this.hasVideo,i)}initEngineEvents(){this._isVideoEncoded=!this.hasVideo,this.audioEncoder.on({"first-frame-encoded":()=>{this.emit("first-audio-frame-encoded")},"frame-encoded":e=>{this.reconnecting||this.muxAndSend(e,"audio")},"encode-error":e=>{this.triggerError("audio encode error",e)},"config-error":e=>{this.triggerError("audio config error",e)},"config-change":e=>{console.log("Encoder config audio",e)},"decoder-config-change":e=>{this.flv.updateConfig(e)}}),this.videoEncoder.on({"first-frame-encoded":()=>{this.emit("first-video-frame-encoded")},"frame-encoded":(e,t)=>{this.reconnecting||(this._isVideoEncoded||(this._isVideoEncoded=!0),this.muxAndSend(e,"video",t))},"encode-error":e=>{this.triggerError("video encode error",e)},"config-error":e=>{this.triggerError("video config error",e)},"config-change":e=>{console.log("Encoder config video",e)}})}triggerError(e,t){this.emit("error",{info:e,err:t})}async destroy(){this.stopVideoInput(),this.stopAudioInput(),console.log("transport close 1"),await this.transport.destroy(),await this.videoEncoder.destroy(),await this.audioEncoder.destroy(),this.flv.destroy(),super.destroy()}online(){this.transport.online()}setBitrate(e,t){(t==="audio"?this.audioEncoder:this.videoEncoder).updateConfig({bitrate:e,originBitrate:e})}getStats(){return{video:this.videoEncoder.getStats(),audio:this.audioEncoder.getStats(),upspeed:this.transport.getUpSpeed(),upBandwidth:this.transport.getUpBandwidth()}}async reconnect(e){this.reconnecting=!0,this.strategy.reset(),this.avFormat.reset(),this.flv.reset(),this._isVideoEncoded=!this.hasVideo,this.videoEncoder.resetKeyFrame(),this.transport.reconnect(e),await this.transport.onWait("upstream-ready",{prev:!1}),this.reconnecting=!1}}class Te extends M{receiveMainMessage(e){var t,i,n,r,a,o,c;switch(e.type){case g.Start:{this.startMsg=e,this.engine=new Ie,this.initPassEvents(),this.engine.start(e);break}case g.Stop:(t=this.engine)==null||t.destroy();break;case g.UpdateTrack:{const{engine:h}=this;if(!h)return;const d=e.data;d.isAudio?h.stopAudioInput():h.stopVideoInput(),h.initInput({[d.isAudio?"audio":"video"]:d.stream}),(i=h.avFormat)==null||i.reset(),d.setting&&(d.isAudio?h.audioEncoder:h.videoEncoder).updateConfig(d.setting)}break;case g.SetBitrate:(n=this.engine)==null||n.setBitrate(e.data.bitrate,e.data.type);break;case g.Online:(r=this.engine)==null||r.online();break;case g.Reconnect:(o=this.engine)==null||o.reconnect((a=e.data)==null?void 0:a.url);break;case g.GetStats:this.send(g.GetStats,((c=this.engine)==null?void 0:c.getStats())||{});break}}initPassEvents(){["engine-ready","first-audio-frame-encoded","first-video-frame-encoded","error","connect-fail","connect-open","disconnected","reconnected","reconnecting","reconnect-fail","connect-close"].forEach(e=>{this.engine.on(e,t=>{this.send(g.PassEngineEvent,{event:e,data:t})})})}}new Te})();\n',tc=typeof self<"u"&&self.Blob&&new Blob([ec],{type:"text/javascript;charset=utf-8"});function Rg(i){let e;try{if(e=tc&&(self.URL||self.webkitURL).createObjectURL(tc),!e)throw"";const t=new Worker(e,{name:i==null?void 0:i.name});return t.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(e)}),t}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(ec),{name:i==null?void 0:i.name})}finally{e&&(self.URL||self.webkitURL).revokeObjectURL(e)}}var we=function(){return(we=Object.assign||function(i){for(var e,t=1,r=arguments.length;t<r;t++)for(var n in e=arguments[t])Object.prototype.hasOwnProperty.call(e,n)&&(i[n]=e[n]);return i}).apply(this,arguments)};function Dg(i,e){var t,r,n,s,a={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return s={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function o(d){return function(c){return function(u){if(t)throw new TypeError("Generator is already executing.");for(;a;)try{if(t=1,r&&(n=2&u[0]?r.return:u[0]?r.throw||((n=r.return)&&n.call(r),0):r.next)&&!(n=n.call(r,u[1])).done)return n;switch(r=0,n&&(u=[2&u[0],n.value]),u[0]){case 0:case 1:n=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,r=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(n=(n=a.trys).length>0&&n[n.length-1])&&(u[0]===6||u[0]===2)){a=0;continue}if(u[0]===3&&(!n||u[1]>n[0]&&u[1]<n[3])){a.label=u[1];break}if(u[0]===6&&a.label<n[1]){a.label=n[1],n=u;break}if(n&&a.label<n[2]){a.label=n[2],a.ops.push(u);break}n[2]&&a.ops.pop(),a.trys.pop();continue}u=e.call(i,a)}catch(l){u=[6,l],r=0}finally{t=n=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([d,c])}}}function xg(i,e){var t=typeof Symbol=="function"&&i[Symbol.iterator];if(!t)return i;var r,n,s=t.call(i),a=[];try{for(;(e===void 0||e-- >0)&&!(r=s.next()).done;)a.push(r.value)}catch(o){n={error:o}}finally{try{r&&!r.done&&(t=s.return)&&t.call(s)}finally{if(n)throw n.error}}return a}function Ln(){for(var i=[],e=0;e<arguments.length;e++)i=i.concat(xg(arguments[e]));return i}var ic,Ig=function(){function i(){this._hooks={},this._cache=[],this._hooksCache={}}return i.prototype.on=function(e,t){e&&t&&typeof t=="function"&&(this._hooks[e]||(this._hooks[e]=[]),this._hooks[e].push(t))},i.prototype.once=function(e,t){var r=this;e&&t&&typeof t=="function"&&this.on(e,function n(s){t(s),r.off(e,n)})},i.prototype.off=function(e,t){if(e&&this._hooks[e]&&this._hooks[e].length)if(t){var r=this._hooks[e].indexOf(t);r!==-1&&this._hooks[e].splice(r,1)}else this._hooks[e]=[]},i.prototype.emit=function(e,t,r){if(r){if(!e)return;this._cache.indexOf(r)!==-1?this._emit(e,t):(this._hooksCache.hasOwnProperty(r)||(this._hooksCache[r]={}),this._hooksCache[r].hasOwnProperty(e)||(this._hooksCache[r][e]=[]),this._hooksCache[r][e].push(t))}else this._emit(e,t)},i.prototype._emit=function(e,t){e&&this._hooks[e]&&this._hooks[e].length&&Ln(this._hooks[e]).forEach(function(r){try{r(t)}catch{}})},i.prototype.set=function(e){e&&this._cache.indexOf(e)===-1&&this._cache.push(e)},i}(),rc=function(i){return i!=null&&Object.prototype.toString.call(i)=="[object Object]"},Og=(ic=+Date.now()+Number((""+Math.random()).slice(2,8)),function(){return ic+=1}),Un=function(i){return function(e,t,r){if(typeof e=="string"&&typeof r=="number"){var n,s=[];r=r<=25?r:r%25;var a=String.fromCharCode(r+97);n=e.split(a);for(var o=0;o<n.length;o++){var d=parseInt(n[o],r);d=1*d^t;var c=String.fromCharCode(d);s.push(c)}return s.join("")}}(i,64,25)},Mg=function(i,e){i===void 0&&(i=function(){}),e===void 0&&(e=1e3);var t,r=Date.now()+e;return t=window.setTimeout(function n(){var s=Date.now()-r;i(),r+=e,t=window.setTimeout(n,Math.max(0,e-s))},e),function(){window.clearTimeout(t)}},nc=function(i){var e=document.createElement("a");return e.href=i,e},Gn=function(i){var e={};try{var t=nc(i).search;if(!t)return e;(t=t.slice(1)).split("&").forEach(function(r){var n,s,a=r.split("=");a.length&&(n=a[0],s=a[1]);try{e[n]=decodeURIComponent(s===void 0?"":s)}catch{e[n]=s}})}catch{}return e},sc=function(i){for(var e=0,t=0,r=(i+="").length,n=0;n<r;n++)((e=31*e+i.charCodeAt(t++))>0x7fffffffffff||e<-0x800000000000)&&(e&=0xffffffffffff);return e<0&&(e+=0x7ffffffffffff),e},Nn,Bn=(function(i,e){var t;t=function(){function r(){for(var s=0,a={};s<arguments.length;s++){var o=arguments[s];for(var d in o)a[d]=o[d]}return a}function n(s){return s.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)}return function s(a){function o(){}function d(u,l,h){if(typeof document<"u"){typeof(h=r({path:"/"},o.defaults,h)).expires=="number"&&(h.expires=new Date(1*new Date+864e5*h.expires)),h.expires=h.expires?h.expires.toUTCString():"";try{var p=JSON.stringify(l);/^[\{\[]/.test(p)&&(l=p)}catch{}l=a.write?a.write(l,u):encodeURIComponent(String(l)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),u=encodeURIComponent(String(u)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var f="";for(var v in h)h[v]&&(f+="; "+v,h[v]!==!0&&(f+="="+h[v].split(";")[0]));return document.cookie=u+"="+l+f}}function c(u,l){if(typeof document<"u"){for(var h={},p=document.cookie?document.cookie.split("; "):[],f=0;f<p.length;f++){var v=p[f].split("="),m=v.slice(1).join("=");l||m.charAt(0)!=='"'||(m=m.slice(1,-1));try{var b=n(v[0]);if(m=(a.read||a)(m,b)||n(m),l)try{m=JSON.parse(m)}catch{}if(h[b]=m,u===b)break}catch{}}return u?h[u]:h}}return o.set=d,o.get=function(u){return c(u,!1)},o.getJSON=function(u){return c(u,!0)},o.remove=function(u,l){d(u,"",r(l,{expires:-1}))},o.defaults={},o.withConverter=s,o}(function(){})},i.exports=t()}(Nn={exports:{}},Nn.exports),Nn.exports),Vn=function(i,e){try{return i?Bn.get(i,{domain:e||document.domain}):Bn.get()}catch{return""}},Fn=function(i,e,t,r){try{var n=r||document.domain,s=+new Date+(t||6048e5);Bn.set(i,e,{expires:new Date(s),path:"/",domain:n})}catch{}},Pg=function(){function i(){this.cache={}}return i.prototype.setItem=function(e,t){this.cache[e]=t},i.prototype.getItem=function(e){return this.cache[e]},i.prototype.removeItem=function(e){this.cache[e]=void 0},i.prototype.getCookie=function(e,t){return Vn(e,t)},i.prototype.setCookie=function(e,t,r,n){Fn(e,t,r,n)},i}(),jn,k,oc={getItem:function(i){try{var e=localStorage.getItem(i),t=e;try{e&&typeof e=="string"&&(t=JSON.parse(e))}catch{}return t||{}}catch{}return{}},setItem:function(i,e){try{var t=typeof e=="string"?e:JSON.stringify(e);localStorage.setItem(i,t)}catch{}},removeItem:function(i){try{localStorage.removeItem(i)}catch{}},getCookie:function(i,e){return Vn(i,e)},setCookie:function(i,e,t,r){Fn(i,e,t,r)},isSupportLS:function(){try{return localStorage.setItem("_ranger-test-key","hi"),localStorage.getItem("_ranger-test-key"),localStorage.removeItem("_ranger-test-key"),!0}catch{return!1}}()},Lg={getItem:function(i){try{var e=sessionStorage.getItem(i),t=e;try{e&&typeof e=="string"&&(t=JSON.parse(e))}catch{}return t||{}}catch{}return{}},setItem:function(i,e){try{var t=typeof e=="string"?e:JSON.stringify(e);sessionStorage.setItem(i,t)}catch{}},removeItem:function(i){try{sessionStorage.removeItem(i)}catch{}},getCookie:function(i,e){return Vn(i,e)},setCookie:function(i,e,t,r){Fn(i,e,t,r)},isSupportSession:function(){try{return sessionStorage.setItem("_ranger-test-key","hi"),sessionStorage.getItem("_ranger-test-key"),sessionStorage.removeItem("_ranger-test-key"),!0}catch{return!1}}()},Ke=function(){function i(e,t){this._storage=t&&t==="session"?Lg:!e&&oc.isSupportLS?oc:new Pg}return i.prototype.getItem=function(e){return this._storage.getItem(e)},i.prototype.setItem=function(e,t){this._storage.setItem(e,t)},i.prototype.getCookie=function(e,t){return this._storage.getCookie(e,t)},i.prototype.setCookie=function(e,t,r,n){this._storage.setCookie(e,t,r,n)},i.prototype.removeItem=function(e){this._storage.removeItem(e)},i}(),Ug=function(){function i(e,t,r){this.appid=e,this.domain=t,this.userAgent=window.navigator.userAgent,this.appVersion=window.navigator.appVersion,this.cookie_expire=r}return i.prototype.init=function(){var e=window.navigator.userAgent,t=window.navigator.language,r=document.referrer,n=r?nc(r).hostname:"",s=Gn(window.location.href),a=/Mobile|htc|mini|Android|iP(ad|od|hone)/.test(this.appVersion)?"wap":"web";this.utm=function(c,u,l,h){var p=new Ke(!1),f=new Ke(!1,"session"),v=c?"_tea_utm_cache_"+c:"_tea_utm_cache",m=c?"_$utm_from_url_"+c:"_$utm_from_url",b={},y=["tr_shareuser","tr_admaster","tr_param1","tr_param2","tr_param3","tr_param4","$utm_from_url"],_={ad_id:Number(u.ad_id)||void 0,campaign_id:Number(u.campaign_id)||void 0,creative_id:Number(u.creative_id)||void 0,utm_source:u.utm_source,utm_medium:u.utm_medium,utm_campaign:u.utm_campaign,utm_term:u.utm_term,utm_content:u.utm_content,tr_shareuser:u.tr_shareuser,tr_admaster:u.tr_admaster,tr_param1:u.tr_param1,tr_param2:u.tr_param2,tr_param3:u.tr_param3,tr_param4:u.tr_param4};try{var E=!1;for(var z in _)_[z]&&(y.indexOf(z)!==-1?(b.hasOwnProperty("tracer_data")||(b.tracer_data={}),b.tracer_data[z]=_[z]):b[z]=_[z],E=!0);if(E)f.setItem(m,"1"),p.setCookie(v,JSON.stringify(b),h,l);else{var T=p.getCookie(v,l);T&&(b=JSON.parse(T))}f.getItem(m)&&(b.hasOwnProperty("tracer_data")||(b.tracer_data={}),b.tracer_data.$utm_from_url=1)}catch{return _}return b}(this.appid,s,this.domain,this.cookie_expire);var o=this.browser(),d=this.os();return{browser:o.browser,browser_version:o.browser_version,platform:a,os_name:d.os_name,os_version:d.os_version,userAgent:e,screen_width:window.screen&&window.screen.width,screen_height:window.screen&&window.screen.height,device_model:this.getDeviceModel(d.os_name),language:t,referrer:r,referrer_host:n,utm:this.utm,latest_data:this.last(r,n)}},i.prototype.last=function(e,t){var r="",n="",s="",a=location.hostname,o=!1;if(e&&t&&a!==t){r=e,n=t,o=!0;var d=Gn(e);d.keyword&&(s=d.keyword)}return{$latest_referrer:r,$latest_referrer_host:n,$latest_search_keyword:s,isLast:o}},i.prototype.browser=function(){var e,t,r="",n=""+parseFloat(this.appVersion),s=this.userAgent;return s.indexOf("Edge")!==-1||s.indexOf("Edg")!==-1?(r="Microsoft Edge",s.indexOf("Edge")!==-1?(e=s.indexOf("Edge"),n=s.substring(e+5)):(e=s.indexOf("Edg"),n=s.substring(e+4))):(e=s.indexOf("MSIE"))!==-1?(r="Microsoft Internet Explorer",n=s.substring(e+5)):(e=s.indexOf("Lark"))!==-1?(r="Lark",n=s.substring(e+5,e+11)):(e=s.indexOf("MetaSr"))!==-1?(r="sougoubrowser",n=s.substring(e+7,e+10)):s.indexOf("MQQBrowser")!==-1||s.indexOf("QQBrowser")!==-1?(r="qqbrowser",s.indexOf("MQQBrowser")!==-1?(e=s.indexOf("MQQBrowser"),n=s.substring(e+11,e+15)):s.indexOf("QQBrowser")!==-1&&(e=s.indexOf("QQBrowser"),n=s.substring(e+10,e+17))):s.indexOf("Chrome")!==-1?(e=s.indexOf("MicroMessenger"))!==-1?(r="weixin",n=s.substring(e+15,e+20)):(e=s.indexOf("360"))!==-1?(r="360browser",n=s.substring(s.indexOf("Chrome")+7)):s.indexOf("baidubrowser")!==-1||s.indexOf("BIDUBrowser")!==-1?(s.indexOf("baidubrowser")!==-1?(e=s.indexOf("baidubrowser"),n=s.substring(e+13,e+16)):s.indexOf("BIDUBrowser")!==-1&&(e=s.indexOf("BIDUBrowser"),n=s.substring(e+12,e+15)),r="baidubrowser"):(e=s.indexOf("xiaomi"))!==-1?s.indexOf("openlanguagexiaomi")!==-1?(r="openlanguage xiaomi",n=s.substring(e+7,e+13)):(r="xiaomi",n=s.substring(e-7,e-1)):(e=s.indexOf("TTWebView"))!==-1?(r="TTWebView",n=s.substring(e+10,e+23)):((e=s.indexOf("Chrome"))!==-1||(e=s.indexOf("Chrome"))!==-1)&&(r="Chrome",n=s.substring(e+7)):s.indexOf("Safari")!==-1?(e=s.indexOf("QQ"))!==-1?(r="qqbrowser",n=s.substring(e+10,e+16)):(e=s.indexOf("Safari"))!==-1&&(r="Safari",n=s.substring(e+7),(e=s.indexOf("Version"))!==-1&&(n=s.substring(e+8))):(e=s.indexOf("Firefox"))!==-1?(r="Firefox",n=s.substring(e+8)):(e=s.indexOf("MicroMessenger"))!==-1?(r="weixin",n=s.substring(e+15,e+20)):(e=s.indexOf("QQ"))!==-1&&(r="qqbrowser",n=s.substring(e+3,e+8)),(t=n.indexOf(";"))!==-1&&(n=n.substring(0,t)),(t=n.indexOf(" "))!==-1&&(n=n.substring(0,t)),(t=n.indexOf(")"))!==-1&&(n=n.substring(0,t)),{browser:r,browser_version:n}},i.prototype.os=function(){for(var e="",t="",r=[{s:"Windows 10",r:/(Windows 10.0|Windows NT 10.0|Windows NT 10.1)/},{s:"Windows 8.1",r:/(Windows 8.1|Windows NT 6.3)/},{s:"Windows 8",r:/(Windows 8|Windows NT 6.2)/},{s:"Windows 7",r:/(Windows 7|Windows NT 6.1)/},{s:"Android",r:/Android/},{s:"iOS",r:/(iPhone|iPad|iPod)/},{s:"Mac OS X",r:/Mac OS X/},{s:"Mac OS",r:/(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/},{s:"chromeOS",r:/CrOS/},{s:"Linux",r:/(Linux|X11)/},{s:"Sun OS",r:/SunOS/}],n=0;n<r.length;n++){var s=r[n];if(s.r.test(this.userAgent)){(e=s.s)==="Mac OS X"&&this.isNewIpad()&&(e="iOS");break}}var a=function(l,h){var p=l.exec(h);return p&&p[1]?p[1]:""},o=function(l,h){var p=RegExp("(?:^|[^A-Z0-9-_]|[^A-Z0-9-]_|sprd-)(?:"+l+")","i").exec(h);return p?p.slice(1)[0]:""};/Windows/.test(e)&&(t=a(/Windows (.*)/,e),e="windows");var d,c;switch(e){case"Mac OS X":t=o("Mac[ +]OS[ +]X(?:[ /](?:Version )?(\\d+(?:[_\\.]\\d+)+))?",this.userAgent),e="mac";break;case"Android":d=this.userAgent,(c=a(/Android ([\.\_\d]+)/,d))||(c=a(/Android\/([\.\_\d]+)/,d)),t=c,e="android";break;case"iOS":t=this.isNewIpad()?o("Mac[ +]OS[ +]X(?:[ /](?:Version )?(\\d+(?:[_\\.]\\d+)+))?",this.userAgent):(t=/OS (\d+)_(\d+)_?(\d+)?/.exec(this.appVersion))?t[1]+"."+t[2]+"."+(0|t[3]):"",e="ios";break;case"chromeOS":var u=this.userAgent.indexOf("x86_64");t=this.userAgent.substring(u+7,u+16)}return{os_name:e,os_version:t}},i.prototype.getDeviceModel=function(e){var t="";try{if(e==="android")navigator.userAgent.split(";").forEach(function(s){s.indexOf("Build/")>-1&&(t=s.slice(0,s.indexOf("Build/")))});else if(e==="ios"||e==="mac"||e==="windows")if(this.isNewIpad())t="iPad";else{var r=navigator.userAgent.replace("Mozilla/5.0 (",""),n=r.indexOf(";");t=r.slice(0,n)}}catch{return t.trim()}return t.trim()},i.prototype.isNewIpad=function(){return this.userAgent!==void 0&&navigator.platform==="MacIntel"&&typeof navigator.maxTouchPoints=="number"&&navigator.maxTouchPoints>1},i}(),Gg={cn:"1fz22z22z1nz21z4mz4bz4bz22z1mz19z1jz1mz1ez4az1az22z1mz19z21z1lz21z21z1bz1iz4az1az1mz1k",va:"1fz22z22z1nz21z4mz4bz4bz22z1mz19z1jz1mz1ez4az1gz22z1mz19z21z1lz21z21z1bz1iz4az1az1mz1k",sg:"1fz22z22z1nz21z4mz4bz4bz22z1mz19z1jz1mz1ez4az22z1mz19z21z1lz21z21z1bz1iz4az1az1mz1k"},Ng={cn:"1fz22z22z1nz21z4mz4bz4bz1kz1az21z4az28z1gz1hz1gz1cz18z1nz1gz4az1az1mz1k",sg:"1fz22z22z1nz21z4mz4bz4bz21z1ez18z1jz1gz49z1kz1az21z4az19z27z22z1cz1mz24z1cz20z21z1cz18z4az1az1mz1k",va:"1fz22z22z1nz21z4mz4bz4bz1kz18z1jz1gz24z18z49z1kz1az21z4az19z27z22z1cz1mz24z1cz20z21z1cz18z4az1az1mz1k"},ki="5.1.10",Hn=function(){function i(e,t){this.collector=e,this.config=t,this.eventNameWhiteList=["__bav_page","__bav_beat","__bav_page_statistics","__bav_click","__bav_page_exposure"],this.paramsNameWhiteList=["$inactive","$inline","$target_uuid_list","$source_uuid","$is_spider","$source_id","$is_first_time","_staging_flag"],this.regStr=new RegExp("^[a-zA-Z0-9][a-z0-9A-Z_.-]{1,255}$")}return i.prototype.checkVerify=function(e){var t=this;if(!e||!e.length)return!1;var r=e[0];if(!r)return!1;var n=r.events,s=r.header;if(!n||!n.length)return!1;var a=!0;return n.forEach(function(o){if(!o)return a=!1,void(o.checkEvent="事件异常");t.checkEventName(o.event)||(a=!1,o.checkEvent="事件名不能以 $ or __开头"),t.checkEventParams(o.params)||(a=!1,o.checkParams="属性名不能以 $ or __开头")}),this.checkEventParams(s)||(a=!1),a},i.prototype.checkEventName=function(e){return!!e&&this.calculate(e,"event")},i.prototype.checkEventParams=function(e){var t=e;if(typeof e=="string"&&(t=JSON.parse(t)),!Object.keys(t).length)return!0;for(var r in t)return!!this.calculate(r,"params")&&(!(typeof t[r]=="string"&&t[r].length>1024)||(console.warn("params: "+r+" can not over 1024 byte, please check;"),!1));return!0},i.prototype.calculate=function(e,t){return(t==="event"?this.eventNameWhiteList:this.paramsNameWhiteList).indexOf(e)!==-1||!new RegExp("^\\$").test(e)&&!new RegExp("^__").test(e)||(console.warn((t==="event"?"event":"params")+" name: "+e+" can not start with $ or __, pleace check;"),!1)},i}();(function(i){i.Init="init",i.Config="config",i.Start="start",i.Ready="ready",i.UnReady="un-ready",i.TokenComplete="token-complete",i.TokenStorage="token-storage",i.TokenFetch="token-fetch",i.TokenError="token-error",i.ConfigUuid="config-uuid",i.ConfigWebId="config-webid",i.ConfigDomain="config-domain",i.CustomWebId="custom-webid",i.TokenChange="token-change",i.TokenReset="token-reset",i.ConfigTransform="config-transform",i.EnvTransform="env-transform",i.SessionReset="session-reset",i.SessionResetTime="session-reset-time",i.SetSessionId="set-session-id",i.Event="event",i.Events="events",i.EventNow="event-now",i.CleanEvents="clean-events",i.BeconEvent="becon-event",i.SubmitBefore="submit-before",i.SubmitScuess="submit-scuess",i.SubmitAfter="submit-after",i.SubmitError="submit-error",i.SubmitVerify="submit-verify",i.Stay="stay",i.ResetStay="reset-stay",i.StayReady="stay-ready",i.SetStay="set-stay",i.RouteChange="route-change",i.RouteReady="route-ready",i.Ab="ab",i.AbVar="ab-var",i.AbAllVars="ab-all-vars",i.AbConfig="ab-config",i.AbExternalVersion="ab-external-version",i.AbVersionChangeOn="ab-version-change-on",i.AbVersionChangeOff="ab-version-change-off",i.AbOpenLayer="ab-open-layer",i.AbCloseLayer="ab-close-layer",i.AbReady="ab-ready",i.AbComplete="ab-complete",i.AbTimeout="ab-timeout",i.Profile="profile",i.ProfileSet="profile-set",i.ProfileSetOnce="profile-set-once",i.ProfileUnset="profile-unset",i.ProfileIncrement="profile-increment",i.ProfileAppend="profile-append",i.ProfileClear="profile-clear",i.Autotrack="autotrack",i.AutotrackReady="autotrack-ready",i.CepReady="cep-ready",i.TracerReady="tracer-ready",i.sessionRecord="session-record",i.SessionRecordStart="session-record-start",i.SessionRecordPause="session-record-pause",i.SessionRecordEnd="session-record-end",i.SessionRecordReport="session-record-report",i.DestoryInstance="destory-instance",i.VisualCollectReady="visual-collect-ready",i.VisualApiReady="visual-api-ready",i.VisualApiUpdate="visual-api-update"})(jn||(jn={})),function(i){i.DEBUGGER_MESSAGE="debugger-message",i.DEBUGGER_MESSAGE_SDK="debugger-message-sdk",i.DEBUGGER_MESSAGE_FETCH="debugger-message-fetch",i.DEBUGGER_MESSAGE_FETCH_RESULT="debugger-message-fetch-result",i.DEBUGGER_MESSAGE_EVENT="debugger-message-event",i.DEVTOOL_WEB_READY="devtool-web-ready"}(k||(k={}));var C=jn,N=void 0,ac=new Date().getTimezoneOffset(),Bg=parseInt(""+-ac/60,10),Vg=60*ac,Fg=7776e6,jg=function(){function i(e,t){this.is_first_time=!0,this.configPersist=!1,this.initConfig=t,this.collect=e;var r=new Ug(t.app_id,t.cookie_domain||"",t.cookie_expire||Fg).init();this.eventCheck=new Hn(e,t);var n="__tea_cache_first_"+t.app_id;this.configKey="__tea_cache_config_"+t.app_id,this.sessionStorage=new Ke(!1,"session"),this.localStorage=new Ke(!1,"local"),t.configPersist&&(this.configPersist=!0,this.storage=t.configPersist===1?this.sessionStorage:this.localStorage);var s=this.localStorage.getItem(n);s&&s==1?this.is_first_time=!1:(this.is_first_time=!0,this.localStorage.setItem(n,"1")),this.envInfo={user:{user_unique_id:N,user_type:N,user_id:N,user_is_auth:N,user_is_login:N,device_id:N,web_id:N,ip_addr_id:N,user_unique_id_type:N},header:{app_id:N,app_name:N,app_install_id:N,install_id:N,app_package:N,app_channel:N,app_version:N,ab_version:N,os_name:r.os_name,os_version:r.os_version,device_model:r.device_model,ab_client:N,traffic_type:N,client_ip:N,device_brand:N,os_api:N,access:N,language:r.language,region:N,app_language:N,app_region:N,creative_id:r.utm.creative_id,ad_id:r.utm.ad_id,campaign_id:r.utm.campaign_id,log_type:N,rnd:N,platform:r.platform,sdk_version:ki,sdk_lib:"js",province:N,city:N,timezone:Bg,tz_offset:Vg,tz_name:N,sim_region:N,carrier:N,resolution:r.screen_width+"x"+r.screen_height,browser:r.browser,browser_version:r.browser_version,referrer:r.referrer,referrer_host:r.referrer_host,width:r.screen_width,height:r.screen_height,screen_width:r.screen_width,screen_height:r.screen_height,utm_term:r.utm.utm_term,utm_content:r.utm.utm_content,utm_source:r.utm.utm_source,utm_medium:r.utm.utm_medium,utm_campaign:r.utm.utm_campaign,tracer_data:JSON.stringify(r.utm.tracer_data),custom:{},wechat_unionid:N,wechat_openid:N}},this.ab_version="",this.evtParams={},this.reportErrorCallback=function(){},this.isLast=!1,this.setCustom(r),this.initDomain(),this.initABData()}return i.prototype.initDomain=function(){var e=this.initConfig.channel_domain;if(e)this.domain=e;else{var t=this.initConfig.channel;this.domain=Un(Ng[t])}},i.prototype.setDomain=function(e){this.domain=e},i.prototype.getDomain=function(){return this.domain},i.prototype.initABData=function(){var e="__tea_sdk_ab_version_"+this.initConfig.app_id,t=null;if(this.initConfig.ab_cross){var r=this.localStorage.getCookie(e,this.initConfig.ab_cookie_domain);t=r?JSON.parse(r):null}else t=this.localStorage.getItem(e);this.setAbCache(t)},i.prototype.setAbCache=function(e){this.ab_cache=e},i.prototype.getAbCache=function(){return this.ab_cache},i.prototype.setAbVersion=function(e){this.ab_version=e},i.prototype.getAbVersion=function(){return this.ab_version},i.prototype.clearAbCache=function(){this.ab_version="",this.ab_cache={}},i.prototype.getUrl=function(e){var t="";switch(e){case"event":t="/list";break;case"webid":t="/webid";break;case"tobid":t="/tobid"}var r="";return this.initConfig.caller&&(r="?sdk_version="+ki+"&sdk_name=web&app_id="+this.initConfig.app_id+"&caller="+this.initConfig.caller),""+this.getDomain()+t+r},i.prototype.setCustom=function(e){if(e&&e.latest_data&&e.latest_data.isLast)for(var t in delete e.latest_data.isLast,this.isLast=!0,e.latest_data)this.envInfo.header.custom[t]=e.latest_data[t]},i.prototype.set=function(e){var t=this;Object.keys(e).forEach(function(r){e[r]!==void 0&&e[r]!==null||t.delete(r);try{t.eventCheck.calculate(r,"config")}catch{}if(r==="traffic_type"&&t.isLast&&(t.envInfo.header.custom.$latest_traffic_source_type=e[r]),r==="evtParams")t.evtParams=we({},t.evtParams||{},e.evtParams||{});else if(r==="_staging_flag")t.evtParams=we({},t.evtParams||{},{_staging_flag:e._staging_flag});else if(r==="reportErrorCallback"&&typeof e[r]=="function")t.reportErrorCallback=e[r];else{var n="",s="";if(r.indexOf(".")>-1){var a=r.split(".");n=a[0],s=a[1]}n?n==="user"||n==="header"?t.envInfo[n][s]=e[r]:t.envInfo.header.custom[s]=e[r]:Object.hasOwnProperty.call(t.envInfo.user,r)?["user_type","ip_addr_id"].indexOf(r)>-1?t.envInfo.user[r]=e[r]?Number(e[r]):e[r]:["user_id","web_id","user_unique_id","user_unique_id_type"].indexOf(r)>-1?t.envInfo.user[r]=e[r]?String(e[r]):e[r]:["user_is_auth","user_is_login"].indexOf(r)>-1?t.envInfo.user[r]=!!e[r]:r==="device_id"&&(t.envInfo.user[r]=e[r]):Object.hasOwnProperty.call(t.envInfo.header,r)?t.envInfo.header[r]=e[r]:t.envInfo.header.custom[r]=e[r]}})},i.prototype.get=function(e){try{return e?e==="evtParams"?this.evtParams:e==="reportErrorCallback"?this[e]:Object.hasOwnProperty.call(this.envInfo.user,e)?this.envInfo.user[e]:Object.hasOwnProperty.call(this.envInfo.header,e)?this.envInfo.header[e]:JSON.parse(JSON.stringify(this.envInfo[e])):JSON.parse(JSON.stringify(this.envInfo))}catch(t){console.log("get config stringify error "),this.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:t.message})}},i.prototype.setStore=function(e){try{if(!this.configPersist)return;var t=this.storage.getItem(this.configKey)||{};if(t&&Object.keys(e).length){var r=Object.assign(e,t);this.storage.setItem(this.configKey,r)}}catch(n){console.log("setStore error"),this.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:n.message})}},i.prototype.getStore=function(){try{if(!this.configPersist)return null;var e=this.storage.getItem(this.configKey)||{};return e&&Object.keys(e).length?e:null}catch(t){return this.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:t.message}),null}},i.prototype.delete=function(e){try{if(!this.configPersist)return;var t=this.storage.getItem(this.configKey)||{};t&&Object.hasOwnProperty.call(t,e)&&(delete t[e],this.storage.setItem(this.configKey,t))}catch(r){this.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:r.message}),console.log("delete error")}},i}(),Hg=function(){function i(e,t){this.isLog=t||!1,this.name=e||""}return i.prototype.info=function(e){this.isLog&&console.log("%c %s","color: yellow; background-color: black;","[AppLog WEB SDK] [instance: "+this.name+"] "+e)},i.prototype.warn=function(e){this.isLog&&console.warn("[AppLog WEB SDK] [instance: "+this.name+"] "+e)},i.prototype.error=function(e){this.isLog&&console.error("[AppLog WEB SDK] [instance: "+this.name+"] "+e)},i.prototype.throw=function(e){throw this.error(this.name),new Error(e)},i}(),$g=function(){function i(){this.spiderBot=["Baiduspider","googlebot","360Spider","haosouspider","YoudaoBot","Sogou News Spider","Yisouspider","Googlebot","Headless","Applebot","Bingbot","PetalBot"]}return i.prototype.checkSpider=function(e){if(!e.enable_spider)return!1;var t=window.navigator.userAgent;if(!t)return!0;var r=!1;return this.spiderBot.forEach(function(n){t.indexOf(n)!==-1&&(r=!0)}),r},i}(),qg=function(){function i(t,r){this.collect=t,this.native=r}var e=i.prototype;return e.bridgeInject=function(){try{return!!this.native&&(AppLogBridge?(console.log("AppLogBridge is injected"),!0):(console.log("AppLogBridge is not inject"),!1))}catch{return console.log("AppLogBridge is not inject"),!1}},e.bridgeReady=function(){var t=this;return new Promise(function(r,n){try{t.bridgeInject()?AppLogBridge.hasStarted(function(s){console.log("AppLogBridge is started? : "+s),s?r(!0):n(!1)}):n(!1)}catch(s){console.log("AppLogBridge, error:"+JSON.stringify(s.stack)),n(!1)}})},e.setNativeAppId=function(t){try{AppLogBridge.setNativeAppId(JSON.stringify(t)),console.log("change bridge appid, event report with appid: "+t)}catch{console.error("setNativeAppId error")}},e.setConfig=function(t){var r=this;try{Object.keys(t).forEach(function(n){n==="user_unique_id"?r.setUserUniqueId(t[n]):t[n]?r.addHeaderInfo(n,t[n]):r.removeHeaderInfo(n)})}catch{console.error("setConfig error")}},e.setUserUniqueId=function(t){try{AppLogBridge.setUserUniqueId(t)}catch{console.error("setUserUniqueId error")}},e.addHeaderInfo=function(t,r){try{AppLogBridge.addHeaderInfo(t,r)}catch{console.error("addHeaderInfo error")}},e.setHeaderInfo=function(t){try{AppLogBridge.setHeaderInfo(JSON.stringify(t))}catch{console.error("setHeaderInfo error")}},e.removeHeaderInfo=function(t){try{AppLogBridge.removeHeaderInfo(t)}catch{console.error("removeHeaderInfo error")}},e.reportPv=function(t){this.onEventV3("predefine_pageview",t)},e.onEventV3=function(t,r){try{AppLogBridge.onEventV3(t,r),this.collect.emit(DebuggerMesssge.DEBUGGER_MESSAGE,{type:DebuggerMesssge.DEBUGGER_MESSAGE_EVENT,info:"bridge埋点上报",time:Date.now(),data:[{events:[{event:t,params:r}]}],code:200,status:"success"})}catch{console.error("onEventV3 error")}},e.profileSet=function(t){try{AppLogBridge.profileSet(t)}catch{console.error("profileSet error")}},e.profileSetOnce=function(t){try{AppLogBridge.profileSetOnce(t)}catch{console.error("profileSetOnce error")}},e.profileIncrement=function(t){try{AppLogBridge.profileIncrement(t)}catch{console.error("profileIncrement error")}},e.profileUnset=function(t){try{AppLogBridge.profileUnset(t)}catch{console.error("profileUnset error")}},e.profileAppend=function(t){try{AppLogBridge.profileAppend(t)}catch{console.error("profileAppend error")}},i}(),Nt=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(i){var e=16*Math.random()|0;return(i==="x"?e:3&e|8).toString(16)})},Kg=function(){function i(){}return i.prototype.apply=function(e,t){var r=this;this.collect=e,this.storage=new Ke(!1,"session"),this.sessionKey="__tea_session_id_"+t.app_id,this.expireTime=t.expireTime||18e5,this.disableSession=t.disable_session,this.disableSessionTimeCheck=t.disable_session_check,this.disableSession||(this.setSessionId(),this.collect.on(C.SessionReset,function(n){r.resetSessionId(n)}),this.collect.on(C.SessionResetTime,function(){r.updateSessionIdTime()}))},i.prototype.updateSessionIdTime=function(){var e=this.storage.getItem(this.sessionKey);if(e&&e.sessionId){var t=e.timestamp;Date.now()-t>this.expireTime?e={sessionId:Nt(),timestamp:Date.now()}:e.timestamp=Date.now(),this.storage.setItem(this.sessionKey,e),this.resetExpTime()}},i.prototype.setSessionId=function(){var e=this,t=this.storage.getItem(this.sessionKey);t&&t.sessionId?t.timestamp=Date.now():t={sessionId:Nt(),timestamp:Date.now()},this.storage.setItem(this.sessionKey,t),this.disableSessionTimeCheck||(this.sessionExp=setInterval(function(){e.checkEXp()},this.expireTime))},i.prototype.getSessionId=function(){var e=this.storage.getItem(this.sessionKey);return this.disableSession?"":e&&e.sessionId?e.sessionId:""},i.prototype.resetExpTime=function(){var e=this;this.sessionExp&&(clearInterval(this.sessionExp),this.sessionExp=setInterval(function(){e.checkEXp()},this.expireTime))},i.prototype.resetSessionId=function(e){var t={sessionId:e||Nt(),timestamp:Date.now()};this.storage.setItem(this.sessionKey,t)},i.prototype.checkEXp=function(){var e=this.storage.getItem(this.sessionKey);e&&e.sessionId&&Date.now()-e.timestamp+30>=this.expireTime&&(e={sessionId:Nt(),timestamp:Date.now()},this.storage.setItem(this.sessionKey,e))},i}(),Wg=function(){function i(){this.eventLimit=50,this.enable_ttwebid=!1,this.eventCache=[],this.beconEventCache=[]}return i.prototype.apply=function(e,t){var r=this;this.collect=e,this.config=t,this.configManager=e.configManager,this.eventCheck=new Hn(e,t),this.cacheStorgae=new Ke(!0),this.localStorage=new Ke(!1),this.maxReport=t.max_report||10,this.reportTime=t.reportTime||t.report_time||30,this.timeout=t.timeout||1e5,this.enable_ttwebid=t.enable_ttwebid,this.reportUrl=t.report_url||this.configManager.getUrl("event"),this.eventKey="__tea_cache_events_"+this.configManager.get("app_id"),this.beconKey="__tea_cache_events_becon_"+this.configManager.get("app_id"),this.abKey="__tea_sdk_ab_version_"+this.configManager.get("app_id"),this.refer_key="__tea_cache_refer_"+this.configManager.get("app_id"),this.pageId=Nt(),this.collect.on(C.Ready,function(){r.reportAll(!1)}),this.collect.on(C.ConfigDomain,function(){r.reportUrl=r.configManager.getUrl("event")}),this.collect.on(C.Event,function(s){r.event(s)}),this.collect.on(C.BeconEvent,function(s){r.beconEvent(s)}),this.collect.on(C.CleanEvents,function(){r.reportAll(!1)});var n=this.linster();this.collect.on(C.DestoryInstance,function(){n&&n()})},i.prototype.linster=function(){var e=this,t=function(){e.reportAll(!0)};window.addEventListener("unload",t,!1),function(n){navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)?window.addEventListener("pagehide",n,!1):window.addEventListener("beforeunload",n,!1)}(t);var r=function(){document.visibilityState==="hidden"&&e.reportAll(!0)};return document.addEventListener("visibilitychange",r,!1),function(){window.removeEventListener("unload",t),window.removeEventListener("pagehide",t,!1),window.removeEventListener("beforeunload",t,!1),document.removeEventListener("visibilitychange",r,!1)}},i.prototype.reportAll=function(e){this.report(e),this.reportBecon()},i.prototype.event=function(e){var t=this;try{var r=Ln(e,this.cacheStorgae.getItem(this.eventKey)||[]);if(this.cacheStorgae.setItem(this.eventKey,r),this.reportTimeout&&clearTimeout(this.reportTimeout),r.length>=this.maxReport)this.report(!1);else{var n=this.reportTime;this.reportTimeout=setTimeout(function(){t.report(!1),t.reportTimeout=null},n)}}catch(s){this.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:s.message})}},i.prototype.beconEvent=function(e){var t=Ln(e,this.cacheStorgae.getItem(this.beconKey)||[]);this.cacheStorgae.setItem(this.beconKey,t),this.collect.destroy||this.collect.sdkStop||this.collect.tokenManager.getReady()&&this.collect.sdkReady&&(this.cacheStorgae.removeItem(this.beconKey),this.send(this.split(this.merge(t)),!0))},i.prototype.reportBecon=function(){if(!this.collect.destroy&&!this.collect.sdkStop&&this.collect.tokenManager.getReady()&&this.collect.sdkReady){var e=this.cacheStorgae.getItem(this.beconKey)||[];e&&e.length&&(this.cacheStorgae.removeItem(this.beconKey),this.send(this.split(this.merge(e)),!0))}},i.prototype.report=function(e){if(!this.collect.destroy&&!this.collect.sdkStop&&this.collect.tokenManager.getReady()&&this.collect.sdkReady){var t=this.cacheStorgae.getItem(this.eventKey)||[];t.length&&(this.cacheStorgae.removeItem(this.eventKey),this.sliceEvent(t,e))}},i.prototype.sliceEvent=function(e,t){if(e.length>this.eventLimit)for(var r=0;r<e.length;r+=this.eventLimit){var n;n=e.slice(r,r+this.eventLimit);var s=this.split(this.merge(n));this.send(s,t)}else s=this.split(this.merge(e)),this.send(s,t)},i.prototype.handleRefer=function(){var e="";try{if(this.config.spa||this.config.autotrack){var t=this.localStorage.getItem(this.refer_key)||{};e=t.routeChange?t.refer_key:this.configManager.get("referrer")}else e=this.configManager.get("referrer")}catch{e=document.referrer}return e},i.prototype.merge=function(e,t){var r=this,n=this.configManager.get(),s=n.header,a=n.user;this.config.enable_pageid&&(s.custom.page_id=this.pageId),s.referrer=this.handleRefer(),s.custom=JSON.stringify(s.custom);var o=this.configManager.get("evtParams"),d=this.configManager.get("user_unique_id_type"),c=e.map(function(h){try{Object.keys(o).length&&!t&&(h.params=we({},o,h.params)),d&&(h.params.$user_unique_id_type=d);var p=r.configManager.getAbCache(),f=a[r.config.ab_user_mode]||a.user_unique_id;return p&&p.uuid&&p.uuid===f&&r.configManager.getAbVersion()&&(h.ab_sdk_version=r.configManager.getAbVersion()),h.session_id=r.collect.sessionManager.getSessionId(),h.params=JSON.stringify(h.params),h}catch(v){return r.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:v.message}),h}}),u=JSON.parse(JSON.stringify({events:c,user:a,header:s}));u.local_time=Math.floor(Date.now()/1e3),u.user_unique_type=this.config.enable_ttwebid?this.config.user_unique_type:void 0,u.verbose=1;var l=[];return l.push(u),l},i.prototype.split=function(e){return e=e.map(function(t){var r=[];return r.push(t),r})},i.prototype.send=function(e,t){var r=this;e.length&&(this.config.disable_track_event||e.forEach(function(n){try{var s=JSON.parse(JSON.stringify(n));r.config.filter&&((s=r.config.filter(s))||console.warn("filter must return data !!")),r.collect.eventFilter&&s&&((s=r.collect.eventFilter(s))||console.warn("filterEvent api must return data !!"));var a=s||n,o=JSON.parse(JSON.stringify(a));if(r.eventCheck.checkVerify(o),!a.length)return;var d=!0;if(a.forEach(function(c){c.events.length||(d=!1)}),!d)return;r.collect.emit(C.SubmitBefore,a),r.collect.requestManager.useRequest({url:r.reportUrl,data:a,success:function(c,u){c&&c.e!==0?(r.collect.emit(C.SubmitError,{type:"f_data",eventData:u,errorCode:c.e,response:c}),r.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_EVENT,info:"埋点上报失败",time:Date.now(),data:o,code:c.e,failType:"数据异常失败",status:"fail"})):(r.collect.emit(C.SubmitScuess,{eventData:u,res:c}),r.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_EVENT,info:"埋点上报成功",time:Date.now(),data:o,code:200,status:"success"}))},fail:function(c,u){r.configManager.get("reportErrorCallback")(c,u),r.collect.emit(C.SubmitError,{type:"f_net",eventData:c,errorCode:u}),r.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_EVENT,info:"埋点上报网络异常",time:Date.now(),data:o,code:u,failType:"网络异常失败",status:"fail"})},timeout:r.timeout,useBeacon:t,withCredentials:r.enable_ttwebid}),r.collect.emit(C.SubmitAfter,a)}catch(c){console.warn("something error, "+JSON.stringify(c.stack)),r.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:c.message})}}))},i}(),dr=function(){return function i(e){return e?(e^16*Math.random()>>e/4).toString(10):("10000000-1000-4000-8000"+-1e11).replace(/[018]/g,i)}().replace(/-/g,"").slice(0,19)},Jg=function(){function i(){this.cacheToken={},this.enableCookie=!1,this.enable_ttwebid=!1,this.enableCustomWebid=!1}return i.prototype.apply=function(e,t){var r=this;this.collect=e,this.config=t,this.configManager=this.collect.configManager,this.storage=new Ke(!1),this.tokenKey="__tea_cache_tokens_"+t.app_id,this.enable_ttwebid=t.enable_ttwebid,this.enableCustomWebid=t.enable_custom_webid,this.collect.on(C.ConfigUuid,function(n){r.setUuid(n)}),this.collect.on(C.ConfigWebId,function(n){r.setWebId(n)}),this.enableCookie=t.cross_subdomain,this.expiresTime=t.cookie_expire||6048e5,this.cookieDomain=t.cookie_domain||"",this.checkStorage()},i.prototype.checkStorage=function(){var e=this;if(this.enableCookie){var t=this.storage.getCookie(this.tokenKey,this.cookieDomain);this.cacheToken=t&&typeof t=="string"?JSON.parse(t):{}}else this.cacheToken=this.storage.getItem(this.tokenKey)||{};this.tokenType=this.cacheToken&&this.cacheToken._type_?this.cacheToken._type_:"default",this.tokenType!=="custom"||this.enableCustomWebid?this.enableCustomWebid?this.collect.on(C.CustomWebId,function(){e.tokenReady=!0,e.collect.emit(C.TokenComplete)}):this.checkEnv()||(this.enable_ttwebid?this.completeTtWid(this.cacheToken):this.check()):this.remoteWebid()},i.prototype.check=function(){this.cacheToken&&this.cacheToken.web_id?this.complete(this.cacheToken):this.config.disable_webid?this.complete({web_id:dr(),user_unique_id:this.configManager.get("user_unique_id")||dr()}):this.remoteWebid()},i.prototype.checkEnv=function(){var e=window.navigator.userAgent;if(e.indexOf("miniProgram")!==-1||e.indexOf("MiniProgram")!==-1){var t=Gn(window.location.href);return!(!t||!t.Web_ID)&&(this.complete({web_id:""+t.Web_ID,user_unique_id:this.configManager.get("user_unique_id")||""+t.Web_ID}),!0)}return!1},i.prototype.remoteWebid=function(){var e=this,t=this.configManager.getUrl("webid"),r={app_key:this.config.app_key,app_id:this.config.app_id,url:location.href,user_agent:window.navigator.userAgent,referer:document.referrer,user_unique_id:""};this.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"SDK 发起WEBID请求",logType:"fetch",level:"info",time:Date.now(),data:r}),this.collect.requestManager.useRequest({url:t,data:r,success:function(n){var s;if(n&&n.e===0)s=n.web_id,e.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"WEBID请求成功",logType:"fetch",level:"info",time:Date.now(),data:n});else{var a=dr();s=a,e.collect.configManager.set({localWebId:a}),e.collect.emit(C.TokenError),e.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"WEBID请求返回值异常",logType:"fetch",level:"warn",time:Date.now(),data:n}),e.collect.logger.warn("appid: "+e.config.app_id+" get webid error, use local webid~")}e.complete({web_id:e.configManager.get("web_id")||s,user_unique_id:e.configManager.get("user_unique_id")||s})},fail:function(){var n=dr();e.complete({web_id:e.configManager.get("web_id")||n,user_unique_id:e.configManager.get("user_unique_id")||n}),e.collect.configManager.set({localWebId:n}),e.collect.emit(C.TokenError),e.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"WEBID请求网络异常",logType:"fetch",level:"error",time:Date.now(),data:null}),e.collect.logger.warn("appid: "+e.config.app_id+", get webid error, use local webid~")},timeout:3e5})},i.prototype.complete=function(e){var t=e.web_id,r=e.user_unique_id;e.timestamp=Date.now(),this.collect.configManager.set({web_id:t,user_unique_id:r}),this.setStorage(e),this.tokenReady=!0,this.collect.emit(C.TokenComplete)},i.prototype.completeTtWid=function(e){var t=e.user_unique_id||"",r=this.configManager.get("user_unique_id");(r||t)&&this.configManager.set({user_unique_id:r||t}),this.setStorage(e),this.tokenReady=!0,this.collect.emit(C.TokenComplete)},i.prototype.setUuid=function(e){if(e&&["null","undefined","Null","None"].indexOf(e)===-1){var t=String(e),r=this.configManager.get("user_unique_id"),n=this.cacheToken&&this.cacheToken.user_unique_id;if(t===r&&t===n)return;this.configManager.set({user_unique_id:t}),this.cacheToken?this.cacheToken.user_unique_id=t:(this.cacheToken={},this.cacheToken.user_unique_id=t),this.cacheToken.timestamp=Date.now(),this.setStorage(this.cacheToken),this.collect.emit(C.TokenChange,"uuid"),this.collect.emit(C.SessionReset)}else this.clearUuid()},i.prototype.clearUuid=function(){this.config.enable_ttwebid||this.configManager.get("web_id")&&this.configManager.get("user_unique_id")!==this.configManager.get("web_id")&&(this.configManager.set({user_unique_id:this.configManager.get("web_id")}),this.cacheToken&&this.cacheToken.web_id&&(this.cacheToken.user_unique_id=this.cacheToken.web_id,this.cacheToken.timestamp=Date.now(),this.setStorage(this.cacheToken)),this.collect.emit(C.TokenReset,"uuid"))},i.prototype.setWebId=function(e){if(e&&!this.config.enable_ttwebid){this.cacheToken&&this.cacheToken.web_id?this.cacheToken.web_id!==e&&(this.cacheToken.user_unique_id=this.cacheToken.web_id===this.cacheToken.user_unique_id?e:this.cacheToken.user_unique_id,this.cacheToken.web_id=e):(this.cacheToken={},this.cacheToken.web_id=e,this.cacheToken.user_unique_id=e),this.cacheToken.timestamp=Date.now();var t=this.configManager.get("web_id"),r=this.configManager.get("user_unique_id");r&&r!==t||(this.configManager.set({user_unique_id:e}),this.collect.emit(C.TokenChange,"uuid")),t!==e&&(this.configManager.set({web_id:e}),this.collect.emit(C.TokenChange,"webid")),this.setStorage(this.cacheToken)}},i.prototype.setStorage=function(e){e._type_=this.enableCustomWebid?"custom":"default",delete e["diss".split("").reverse().join("")],this.enableCookie||this.enable_ttwebid?(this.storage.setCookie(this.tokenKey,e,this.expiresTime,this.cookieDomain),this.enable_ttwebid&&(delete e.web_id,this.storage.setItem(this.tokenKey,e))):this.storage.setItem(this.tokenKey,e),this.cacheToken=e},i.prototype.getReady=function(){return this.tokenReady},i.prototype.getTobId=function(){var e=this;return new Promise(function(t){e.collect.requestManager.useRequest({url:e.configManager.getUrl("tobid"),data:{app_id:e.config.app_id,user_unique_id:e.configManager.get("user_unique_id"),web_id:e.configManager.get("web_id"),user_unique_id_type:e.configManager.get("user_unique_id_type")},success:function(r){r&&r.e===0?t(r.tobid):t("")},fail:function(){t("")},time:3e4,withCredentials:e.enable_ttwebid})})},i}(),Xg=function(){return!(!window.navigator||!window.navigator.sendBeacon)},Zg=function(){function i(e,t){this.collector=e,this.config=t,this.requestType=t.request_type||"xhr",this.supportBeacon=Xg(),this.errorCode={NO_URL:4001,IMG_ON:4e3,IMG_CATCH:4002,BEACON_FALSE:4003,XHR_ON:500,RESPONSE:5001,TIMEOUT:5005},this.customHeader=t.custom_request_header||{}}return i.prototype.useFetch=function(e){var t=e.url,r=e.data,n=e.method,s=e.success,a=e.fail,o={"Content-Type":"application/json; charset=utf-8"};if(Object.keys(this.customHeader).length)for(var d in this.customHeader)o[d]=this.customHeader[d];window.fetch?fetch(t,{method:n||"POST",headers:o,body:JSON.stringify(r)}).then(function(c){return c.json()}).then(function(c){s&&s(c)}).catch(function(c){a&&a(r,c)}):(this.requestType="xhr",console.log("your brwoser not support fetch, use xhr"),this.useRequest({url:t,data:r,method:n,success:s,fail:a}))},i.prototype.useBeacon=function(e){var t=e.url,r=e.data,n=e.success,s=e.fail;window.navigator.sendBeacon(t,JSON.stringify(r))?n&&n():s&&s(r,this.errorCode.BEACON_FALSE)},i.prototype.useRequest=function(e){var t=this,r=e.url,n=e.data,s=e.method,a=e.success,o=e.fail,d=e.timeout,c=e.useBeacon,u=e.withCredentials,l=e.app_key,h=e.forceXhr;if(c&&this.supportBeacon)this.useBeacon({url:r,data:n,method:s,success:a,fail:o});else if(this.requestType!=="fetch"||h)try{var p=new XMLHttpRequest,f=s||"POST";if(p.open(f,""+r,!0),p.setRequestHeader("Content-Type","application/json; charset=utf-8"),l&&p.setRequestHeader("X-MCS-AppKey",""+l),Object.keys(this.customHeader).length)for(var v in this.customHeader)p.setRequestHeader(v,this.customHeader[v]);u&&(p.withCredentials=!0),d&&(p.timeout=d,p.ontimeout=function(){o&&o(n,t.errorCode.TIMEOUT)}),p.onload=function(){if(a){var m=null;if(p.responseText){try{m=JSON.parse(p.responseText)}catch{m={}}a(m,n)}}},p.onerror=function(){p.abort(),o&&o(n,t.errorCode.XHR_ON)},p.send(JSON.stringify(n))}catch{}else this.useFetch({url:r,data:n,method:s,success:a,fail:o})},i}(),Qg=function(){function i(e,t){if(this.devToolReady=!1,this.devToolOrigin="*",this.sendAlready=!1,this.eventVerifyReady=!1,t.enable_debug){var r=e.adapters.storage;this.collect=e,this.config=t,this.app_id=t.app_id,this.cacheStorgae=new r(!1,"session"),this.eventVerifyInfo=[],this.sdk_type=ki.includes("tob")?"tob":"inner",this.filterEvent=["__bav_page","__bav_beat","__bav_page_statistics","__bav_click","__bav_page_exposure","bav2b_page","bav2b_beat","bav2b_page_statistics","bav2b_click","bav2b_page_exposure","_be_active","predefine_pageview","__profile_set","__profile_set_once","__profile_increment","__profile_unset","__profile_append","predefine_page_alive","predefine_page_close","abtest_exposure"],this.load()}}return i.prototype.loadScript=function(e){try{var t=document.createElement("script");t.src=e,t.onerror=function(){console.log("load DevTool render fail")},t.onload=function(){console.log("load DevTool render success")},document.getElementsByTagName("body")[0].appendChild(t)}catch(r){console.log("devTool load fail, "+r.message)}},i.prototype.parseUrl=function(){var e={};try{var t=window.location.href.split("?")[1].split("&");t.length&&t.forEach(function(r){var n=r.split("=");e[decodeURIComponent(n[0])]=decodeURIComponent(n[1])})}catch{}return e},i.prototype.load=function(){return e=this,t=void 0,n=function(){var s,a,o;return Dg(this,function(d){switch(d.label){case 0:if(d.trys.push([0,2,,3]),(s=this.parseUrl()).open_devtool_web&&s.app_id){if(parseInt(s.app_id)!==this.app_id)return[2]}else if(!this.getStorage())return[2];return this.loadBaseInfo(),this.loadHook(),this.setStorage(),this.addLintener(),this.loadDebuggerModule(),this.loadDevTool(),[4,this.fetchEventInfo()];case 1:return a=d.sent(),this.sendData("devtool:web:verify",a.verifyStatus),this.eventVerifyInfo=a.data,[3,3];case 2:return o=d.sent(),console.log("debug fail, "+o.message),[3,3];case 3:return[2]}})},new((r=void 0)||(r=Promise))(function(s,a){function o(u){try{c(n.next(u))}catch(l){a(l)}}function d(u){try{c(n.throw(u))}catch(l){a(l)}}function c(u){u.done?s(u.value):new r(function(l){l(u.value)}).then(o,d)}c((n=n.apply(e,t||[])).next())});var e,t,r,n},i.prototype.getStorage=function(){var e=this.cacheStorgae.getItem("__applog_devtool_web");return e&&parseInt(e)===this.app_id},i.prototype.setStorage=function(){this.cacheStorgae.setItem("__applog_devtool_web",this.app_id)},i.prototype.loadDevTool=function(){this.loadScript("https://lf3-cdn-tos.bytescm.com/obj/static/log-sdk/collect/devtool/debug-web.0.0.2.js")},i.prototype.loadBaseInfo=function(){var e=this;this.info=[{title:"基本信息",type:1,infoName:{app_id:this.config.app_id,channel:this.config.channel,上报域名:this.collect.configManager.getDomain(),SDK版本:ki,SDK引入方式:"npm"}},{title:"用户信息",type:2,infoName:{uuid:this.collect.configManager.get("user").user_unique_id||"",web_id:this.collect.configManager.get("user").web_id||"",ssid:"点击获取SSID"}},{title:"公共参数信息",type:2,infoName:{浏览器:this.collect.configManager.get("browser"),浏览器版本:this.collect.configManager.get("browser_version"),平台:this.collect.configManager.get("platform"),设备型号:this.collect.configManager.get("device_model"),操作系统:this.collect.configManager.get("os_name"),操作系统版本:this.collect.configManager.get("os_version"),屏幕分辨率:this.collect.configManager.get("resolution"),来源:this.collect.configManager.get("referrer"),自定义信息:""}},{title:"配置信息",type:3,infoName:{全埋点:!!this.config.autotrack,停留时长:!!this.config.enable_stay_duration}},{title:"A/B配置信息",type:4,infoName:{"A/B实验":!!this.config.enable_ab_test}},{title:"客户端信息",type:3,infoName:{打通开关:!!this.config.Native}}],this.log=[],this.event=[],this.collect.on(C.Ready,function(){e.info[1].infoName.uuid=e.collect.configManager.get("user").user_unique_id,e.info[1].infoName.web_id=e.collect.configManager.get("user").web_id,e.info[2].infoName.自定义信息=JSON.stringify(e.collect.configManager.get("custom")),e.config.enable_ab_test&&(e.info[4].infoName.已曝光VID=e.collect.configManager.getAbVersion(),e.info[4].infoName["A/B域名"]=e.config.ab_channel_domain||Un(Gg[e.config.channel]),e.info[4].infoName.全部配置=e.collect.configManager.getAbData()),e.config.Native&&(e.info[5].infoName.是否打通=!!e.collect.bridgeReport)})},i.prototype.loadHook=function(){var e=this;this.collect.stop(),this.collect.on(k.DEBUGGER_MESSAGE,function(t){switch(t.type){case k.DEBUGGER_MESSAGE_SDK:var r={time:t.time,type:t.logType||"sdk",level:t.level,name:t.info,show:!0,levelShow:!0,needDesc:!!t.data};return t.data&&(r.desc={content:JSON.stringify(t.data)}),e.updateLog(r),t.secType&&t.secType==="AB"?(e.info[4].infoName.已曝光VID=e.collect.configManager.getAbVersion(),e.info[4].infoName.全部配置=e.collect.configManager.getAbData()):t.secType==="USER"&&(e.info[1].infoName.uuid=e.collect.configManager.get("user").user_unique_id,e.info[1].infoName.web_id=e.collect.configManager.get("user").web_id),void e.updateInfo();case k.DEBUGGER_MESSAGE_EVENT:if(t.data&&t.data.length){var n=t.data[0],s=n.events,a=n.header;if(a.custom=JSON.parse(a.custom),!s.length)return;s.forEach(function(o){o.checkShow=!0,o.searchShow=!0,o.type=e.filterEvent.indexOf(o.event)!==-1?"sdk":"cus",o.type=e.collect.bridgeReport?"bridge":o.type,o.params=JSON.parse(o.params),t.status==="fail"&&(o.info={message:"code: "+t.code+", msg: "+t.failType},o.failType=t.failType);var d=!1,c=!1,u=[];e.eventVerifyInfo&&e.eventVerifyInfo.length&&(e.eventVerifyInfo.forEach(function(l){l.eventStatus=!1}),e.eventVerifyInfo.forEach(function(l){o.event===l.name&&(c=!0,d=!0,o.verifyStatus=l.status,Object.keys(o.params).forEach(function(h){if(h!=="event_index"){var p={};p.paramsKey=h,p.paramsKeyValue=o.params[""+h],p.paramsStatus=!1,p.paramsStatusInfo="属性未录入",l.params.forEach(function(f){h===f.name&&(f.checked=!0,typeof o.params[""+h]!==e.formatParamsType(f.value_type)?p.paramsStatusInfo="属性类型错误,应为"+e.formatParamsType(f.value_type):(p.paramsStatus=!0,p.paramsStatusInfo=""))}),u.push(p),p.paramsStatusInfo&&(c=!1)}}),l.params.forEach(function(h){h.checked||(c=!1,u.push({paramsKey:h.name,paramsStatus:!1,paramsStatusInfo:"缺少属性"+h.name}))}))})),o.reportStatus=t.status==="success",o.paramsInfo=u,o.eventStatus=c&&t.status==="success",o.eventRecord=d}),e.updateEvent(n)}return}})},i.prototype.formatParamsType=function(e){switch(e){case 0:return"string";case 1:case 2:return"number";case 3:return"boolean"}},i.prototype.fetchEventInfo=function(){var e=this;try{return new Promise(function(t){var r=Un("1fz22z22z1nz21z4mz4bz4bz18z1nz1nz1jz1mz1ez1fz1mz1kz1cz4az19z27z22z1cz1bz18z1lz1az1cz4az1lz1cz22z4bz18z1nz1nz1jz1mz1ez1bz1cz24z22z1mz1mz1jz21z4bz1mz1nz1cz1lz18z1nz1gz4bz24z4dz4bz18z1nz1nz16z1jz1mz1ez16z1kz1cz22z18")+"?app_id="+e.app_id+"&t="+e.sdk_type+"&nc=false";e.collect.requestManager.useRequest({url:r,method:"GET",success:function(n){e.eventVerifyReady=!0,e.collect.reStart(),t({data:n.data,verifyStatus:!0})},fail:function(){e.eventVerifyReady=!0,e.collect.reStart(),t({data:[],verifyStatus:!1})},timeout:3e3})})}catch{return{data:[],verifyStatus:!1}}},i.prototype.addLintener=function(){var e=this;window.addEventListener("message",function(t){if(t.origin===location.origin){if(t&&t.data&&t.data.type==="devtool:web:ready"){if(e.devToolOrigin=t.origin,e.devToolReady=!0,e.sendAlready)return;e.sendData("devtool:web:init",{info:e.info,log:e.log,event:e.event,appid:e.app_id}),e.sendAlready=!0}t&&t.data&&t.data.type==="devtool:web:ssid"&&e.collect.getToken(function(r){e.info[1].infoName.ssid=r.tobid,e.updateInfo()}),t&&t.data&&t.data.type}})},i.prototype.sendData=function(e,t){try{var r={type:e,payload:t};(window.opener||window.parent).postMessage(r,this.devToolOrigin)}catch{}},i.prototype.updateInfo=function(){this.devToolReady&&this.sendData("devtool:web:info",this.info)},i.prototype.updateLog=function(e){this.devToolReady?this.sendData("devtool:web:log",e):this.log.push(e)},i.prototype.updateEvent=function(e){this.devToolReady||this.eventVerifyReady?this.sendData("devtool:web:event",e):this.event.push(e)},i.prototype.loadDebuggerModule=function(){var e=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.appendChild(document.createTextNode(`#debugger-applog-web {
70
70
  position: fixed;
71
71
  width: 50px;
72
72
  height: 50px;
@@ -76,7 +76,7 @@ registerProcessor('vumeter', class extends AudioWorkletProcessor {
76
76
  cursor: pointer;
77
77
  z-index:100;
78
78
  background-size: 50px;
79
- }`)),e.appendChild(t);var r=document.createElement("div");r.innerHTML='<div id="debugger-applog-web" class="debugger-applog-web"></div>';var n=document.createElement("div");n.innerHTML='<div id="debugger-container" class="debugger-container"></div>',document.getElementsByTagName("body")[0].appendChild(r),document.getElementsByTagName("body")[0].appendChild(n),document.getElementById("debugger-applog-web").addEventListener("click",function(){(window.opener||window.parent).postMessage({type:"devtool:web:open-draw"},location.origin)})},i}(),$n={autotrack:{src:{cn:"https://lf3-cdn-tos.bytescm.com/obj/static/log-sdk/collect/5.0/plugin/autotrack.js",sg:"https://sf16-scmcdn-sg.ibytedtos.com/obj/static-sg/log-sdk/collect/5.0/plugin/autotrack.js",va:"https://sf16-scmcdn-va.ibytedtos.com/obj/static-us/log-sdk/collect/5.0/plugin/autotrack.js"},object:"LogAutoTrack"},ab:{src:{cn:"https://lf3-cdn-tos.bytescm.com/obj/static/log-sdk/collect/5.0/plugin/ab.js",sg:"https://sf16-scmcdn-sg.ibytedtos.com/obj/static-sg/log-sdk/collect/5.0/plugin/ab.js",va:"https://sf16-scmcdn-va.ibytedtos.com/obj/static-us/log-sdk/collect/5.0/plugin/ab.js"},object:"LogAb"},stay:{src:{cn:"https://lf3-cdn-tos.bytescm.com/obj/static/log-sdk/collect/5.0/plugin/stay.js",sg:"https://sf16-scmcdn-sg.ibytedtos.com/obj/static-sg/log-sdk/collect/5.0/plugin/stay.js",va:"https://sf16-scmcdn-va.ibytedtos.com/obj/static-us/log-sdk/collect/5.0/plugin/stay.js"},object:"LogStay"},route:{src:{cn:"https://lf3-cdn-tos.bytescm.com/obj/static/log-sdk/collect/5.0/plugin/route.js",sg:"https://sf16-scmcdn-sg.ibytedtos.com/obj/static-sg/log-sdk/collect/5.0/plugin/route.js",va:"https://sf16-scmcdn-va.ibytedtos.com/obj/static-us/log-sdk/collect/5.0/plugin/route.js"},object:"LogRoute"},cep:{src:{cn:"https://lf3-cdn-tos.bytescm.com/obj/static/log-sdk/collect/5.0/plugin/cep.js",sg:"https://sf16-scmcdn-sg.ibytedtos.com/obj/static-sg/log-sdk/collect/5.0/plugin/cep.js",va:"https://sf16-scmcdn-va.ibytedtos.com/obj/static-us/log-sdk/collect/5.0/plugin/cep.js"},object:"LogCep"},tracer:{src:{cn:"https://lf3-cdn-tos.bytescm.com/obj/static/log-sdk/collect/5.0/plugin/tracer.js",sg:"https://sf16-scmcdn-sg.ibytedtos.com/obj/static-sg/log-sdk/collect/5.0/plugin/tracer.js",va:"https://sf16-scmcdn-va.ibytedtos.com/obj/static-us/log-sdk/collect/5.0/plugin/tracer.js"},object:"LogTracer"},retry:{src:{cn:"https://lf3-cdn-tos.bytescm.com/obj/static/log-sdk/collect/5.0/plugin/retry.js",sg:"https://sf16-scmcdn-sg.ibytedtos.com/obj/static-sg/log-sdk/collect/5.0/plugin/retry.js",va:"https://sf16-scmcdn-va.ibytedtos.com/obj/static-us/log-sdk/collect/5.0/plugin/retry.js"},object:"LogRetry"},visual:{src:{cn:"https://lf3-cdn-tos.bytescm.com/obj/static/log-sdk/collect/5.0/plugin/visual.js",sg:"https://sf16-scmcdn-sg.ibytedtos.com/obj/static-sg/log-sdk/collect/5.0/plugin/visual.js",va:"https://sf16-scmcdn-va.ibytedtos.com/obj/static-us/log-sdk/collect/5.0/plugin/visual.js"},object:"LogVisual"}},Yg=["et","profile","heartbeat","monitor"],St=function(){function i(e){this.disableAutoPageView=!1,this.bridgeReport=!1,this.staging=!1,this.pluginInstances=[],this.sended=!1,this.started=!1,this.destroy=!1,this.sdkReady=!1,this.adapters={},this.loadType="base",this.sdkStop=!1,this.name=e,this.hook=new Ig,this.remotePlugin=new Map,this.Types=C,this.adapters.storage=Ke}return i.usePlugin=function(e,t,r){if(t){for(var n=!1,s=0,a=i.plugins.length;s<a;s++)if(i.plugins[s].name===t){i.plugins[s].plugin=e,i.plugins[s].options=r||{},n=!0;break}n||i.plugins.push({name:t,plugin:e,options:r})}else i.plugins.push({plugin:e})},i.prototype.usePlugin=function(e,t,r){e&&(this.loadType==="full"&&Yg.includes(e)?console.info("your sdk version has "+e+" plugin already ~"):t?typeof t=="string"?this.remotePlugin.get(e)||this.remotePlugin.set(e,{src:t,call:r}):this.remotePlugin.get(e)||this.remotePlugin.set(e,{instance:t}):this.remotePlugin.get(e)||this.remotePlugin.set(e,"sdk"))},i.prototype.init=function(e){var t,r=this;this.logger=new Hg(this.name,e.log),this.inited?this.logger.warn("[instance: "+this.name+"], every instance's api: init, can be call only one time!"):e&&rc(e)?e.app_id&&typeof(t=e.app_id)=="number"&&!isNaN(t)?!e.app_key||function(n){return typeof n=="string"}(e.app_key)?(e.channel_domain||["cn","sg","va"].indexOf(e.channel)!==-1||(this.logger.warn("channel must be `cn`, `sg`,`va` !"),e.channel="cn"),this.spider=new $g,this.spider.checkSpider(e)?this.logger.warn("your env may be a spider, can not report!"):(this.appBridge=new qg(this,e.enable_native),this.requestManager=new Zg(this,e),this.bridgeReport=this.appBridge.bridgeInject(),this.configManager=new jg(this,e),this.debugger=new Qg(this,e),this.initConfig=e,this.emit(C.Init),this.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"SDK 执行INIT",data:e,level:"info",time:Date.now()}),this.destroy=!1,e.disable_auto_pv&&(this.disableAutoPageView=!0),this.bridgeReport||(this.configManager.set({app_id:e.app_id}),this.eventManager=new Wg,this.tokenManager=new Jg,this.sessionManager=new Kg,Promise.all([new Promise(function(n){r.once(C.TokenComplete,function(){n(!0)})}),new Promise(function(n){r.once(C.Start,function(){n(!0)})})]).then(function(){try{i.plugins.reduce(function(n,s){var a=s.plugin,o=s.options,d=Object.assign(r.initConfig,o),c=new a;return c.apply(r,d),n.push(c),n},r.pluginInstances)}catch(n){console.warn("load plugin error, "+n.message),r.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:n.message})}r.sdkReady=!0,r.emit(C.Ready),r.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"SDK 初始化完成",time:Date.now(),level:"info",data:r.configManager.get("user")}),r.logger.info("appid: "+e.app_id+", userInfo:"+JSON.stringify(r.configManager.get("user"))),r.logger.info("appid: "+e.app_id+", sdk is ready, version type is "+r.loadType+", version is "+ki+", you can report now !!!"),e.disable_auto_pv&&(r.disableAutoPageView=!0);try{r.loadType==="full"&&(e.enable_ab_test||e.autotrack)&&(window.opener||window.parent).postMessage("[tea-sdk]ready","*")}catch(n){r.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:n.message})}r.pageView(),r.on(C.TokenChange,function(n){n==="webid"&&r.pageView(),r.logger.info("appid: "+e.app_id+" token change, new userInfo:"+JSON.stringify(r.configManager.get("user"))),r.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"SDK 设置了用户信息",time:Date.now(),secType:"USER",level:"info",data:r.configManager.get("user")})}),r.on(C.TokenReset,function(){r.logger.info("appid: "+e.app_id+" token reset, new userInfo:"+JSON.stringify(r.configManager.get("user"))),r.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"SDK 重置了用户信息",time:Date.now(),secType:"USER",level:"info",data:r.configManager.get("user")})}),r.on(C.RouteChange,function(n){n.init||e.disable_route_report||r.pageView()})}),this.tokenManager.apply(this,e),this.eventManager.apply(this,e),this.sessionManager.apply(this,e)),this.inited=!0)):this.logger.warn("app_key param is error, must be string, please check!"):this.logger.warn("app_id param is error, must be number, please check!"):this.logger.warn("init params error,please check!")},i.prototype.config=function(e){if(this.inited)if(e&&rc(e))if(this.bridgeReport)this.appBridge.setConfig(e);else{e._staging_flag&&e._staging_flag===1&&(this.staging=!0),e.disable_auto_pv&&(this.disableAutoPageView=!0,delete e.disable_auto_pv);var t=we({},e),r=this.initConfig.configPersist||this.initConfig.config_persist||!1;if(this.initConfig&&r){var n=this.configManager.getStore();n&&(t=Object.assign(n,e)),this.configManager.setStore(e)}t.web_id,t.user_unique_id;var s=function(a,o){var d={};for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&o.indexOf(c)<0&&(d[c]=a[c]);if(a!=null&&typeof Object.getOwnPropertySymbols=="function"){var u=0;for(c=Object.getOwnPropertySymbols(a);u<c.length;u++)o.indexOf(c[u])<0&&(d[c[u]]=a[c[u]])}return d}(t,["web_id","user_unique_id"]);this.configManager.set(s),t.hasOwnProperty("web_id")&&this.emit(C.ConfigWebId,t.web_id),t.hasOwnProperty("user_unique_id")&&this.emit(C.ConfigUuid,t.user_unique_id),this.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"SDK 执行CONFIG",level:"info",time:Date.now(),data:t})}else console.warn("config params is error, please check");else console.warn("config must be use after function init")},i.prototype.setUserUniqueID=function(e){this.config({user_unique_id:e})},i.prototype.setHeaderInfo=function(e,t){var r={};r[e]=t,this.config(r)},i.prototype.removeHeaderInfo=function(e){var t={};t[e]=void 0,this.config(t)},i.prototype.setDomain=function(e){this.configManager&&this.configManager.setDomain(e),this.emit(C.ConfigDomain)},i.prototype.getConfig=function(e){return this.configManager.get(e)},i.prototype.send=function(){this.start()},i.prototype.start=function(){this.inited&&!this.sended&&(this.sended=!0,this.started=!0,this.emit(C.Start),this.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"SDK 执行START",level:"info",time:Date.now()}),this.bridgeReport&&(this.pageView(),this.emit(C.Ready)))},i.prototype.event=function(e,t){var r=this;try{var n=[];if(Array.isArray(e))e.forEach(function(a){var o=r.processEvent(a[0],a[1]||{});o&&n.push(o)});else{var s=this.processEvent(e,t);if(!s)return;n.push(s)}this.bridgeReport?n.forEach(function(a){var o=a.event,d=a.params;r.appBridge.onEventV3(o,JSON.stringify(d))}):n.length&&(this.emit(C.Event,n),this.emit(C.SessionResetTime))}catch(a){this.logger.warn("something error, please check"),this.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:a.message})}},i.prototype.beconEvent=function(e,t){if(Array.isArray(e))console.warn("beconEvent not support batch report, please check");else{var r=[],n=this.processEvent(e,t||{});n&&(r.push(n),r.length&&(this.emit(C.BeconEvent,r),this.emit(C.SessionResetTime)))}},i.prototype.beaconEvent=function(e,t){this.beconEvent(e,t)},i.prototype.processEvent=function(e,t){t===void 0&&(t={});try{if(!e)return console.warn("eventName is null, please check"),null;var r=e;/^event\./.test(e)&&(r=e.slice(6));var n=t;typeof n!="object"&&(n={}),n.profile?delete n.profile:n.event_index=Og();var s=void 0;return n.local_ms?(s=n.local_ms,delete n.local_ms):s=+new Date,{event:r,params:n,local_time_ms:s,is_bav:this.initConfig&&this.initConfig.autotrack?1:0}}catch(a){return this.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:a.message}),{event:e,params:t}}},i.prototype.filterEvent=function(e){this.eventFilter=e},i.prototype.on=function(e,t){this.hook.on(e,t)},i.prototype.once=function(e,t){this.hook.once(e,t)},i.prototype.off=function(e,t){this.hook.off(e,t)},i.prototype.emit=function(e,t,r){this.hook.emit(e,t,r)},i.prototype.set=function(e){this.hook.set(e)},i.prototype.stop=function(){this.sdkStop=!0},i.prototype.reStart=function(){this.sdkStop=!1},i.prototype.pageView=function(){this.disableAutoPageView||this.predefinePageView()},i.prototype.predefinePageView=function(e){if(e===void 0&&(e={}),this.inited){var t={title:document.title||location.pathname,url:location.href,url_path:location.pathname,time:Date.now(),referrer:window.document.referrer,$is_first_time:""+(this.configManager&&this.configManager.is_first_time||!1)},r=we({},t,e);this.event("predefine_pageview",r)}else console.warn("predefinePageView must be use after function init")},i.prototype.clearEventCache=function(){this.emit(C.CleanEvents)},i.prototype.setWebIDviaUnionID=function(e){if(e){var t=sc(e);this.config({web_id:""+t,wechat_unionid:e}),this.emit(C.CustomWebId)}},i.prototype.setWebId=function(e){this.config({web_id:""+e})},i.prototype.setWebIDviaOpenID=function(e){if(e){var t=sc(e);this.config({web_id:""+t,wechat_openid:e}),this.emit(C.CustomWebId)}},i.prototype.setNativeAppId=function(e){this.bridgeReport&&this.appBridge.setNativeAppId(e)},i.prototype.getSessionId=function(){return Nt()},i.prototype.setSessionId=function(e){this.emit(C.SessionReset,e)},i.prototype.resetStayDuration=function(e,t,r){this.emit(C.ResetStay,{url_path:e,title:t,url:r},C.Stay)},i.prototype.resetStayParams=function(e,t,r){e===void 0&&(e=""),t===void 0&&(t=""),r===void 0&&(r=""),this.emit(C.SetStay,{url_path:e,title:t,url:r},C.Stay)},i.prototype.getToken=function(e,t){var r=this;if(this.inited){var n=!1,s=function(o){if(!n){n=!0;var d=r.configManager.get().user;return o&&(d.tobid=o,d["diss".split("").reverse().join("")]=o),e(we({},d))}},a=function(){r.tokenManager.getTobId().then(function(o){s(o)})};this.sdkReady?a():(t&&setTimeout(function(){s()},t),this.on(C.Ready,function(){a()}))}else console.warn("getToken must be use after function init")},i.prototype.profileSet=function(e){this.bridgeReport?this.appBridge.profileSet(JSON.stringify(e)):this.emit(C.ProfileSet,e,C.Profile),this.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"SDK 执行profileSet",level:"info",time:Date.now(),data:e})},i.prototype.profileSetOnce=function(e){this.bridgeReport?this.appBridge.profileSetOnce(JSON.stringify(e)):this.emit(C.ProfileSetOnce,e,C.Profile),this.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"SDK 执行profileSetOnce",level:"info",time:Date.now(),data:e})},i.prototype.profileIncrement=function(e){this.bridgeReport?this.appBridge.profileIncrement(JSON.stringify(e)):this.emit(C.ProfileIncrement,e,C.Profile),this.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"SDK 执行profileIncrement",level:"info",time:Date.now(),data:e})},i.prototype.profileUnset=function(e){this.bridgeReport?this.appBridge.profileUnset(e):this.emit(C.ProfileUnset,e,C.Profile),this.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"SDK 执行profileUnset",level:"info",time:Date.now(),data:e})},i.prototype.profileAppend=function(e){this.bridgeReport?this.appBridge.profileAppend(JSON.stringify(e)):this.emit(C.ProfileAppend,e,C.Profile),this.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"SDK 执行profileAppend",level:"info",time:Date.now(),data:e})},i.prototype.setExternalAbVersion=function(e){this.emit(C.AbExternalVersion,typeof e=="string"&&e?(""+e).trim():null,C.Ab)},i.prototype.getVar=function(e,t,r){this.emit(C.AbVar,{name:e,defaultValue:t,callback:r},C.Ab)},i.prototype.getABconfig=function(e,t){this.emit(C.AbConfig,{params:e,callback:t},C.Ab)},i.prototype.getAbSdkVersion=function(){return this.configManager.getAbVersion()},i.prototype.onAbSdkVersionChange=function(e){var t=this;return this.emit(C.AbVersionChangeOn,e,C.Ab),function(){t.emit(C.AbVersionChangeOff,e,C.Ab)}},i.prototype.offAbSdkVersionChange=function(e){this.emit(C.AbVersionChangeOff,e,C.Ab)},i.prototype.openOverlayer=function(){this.emit(C.AbOpenLayer,"",C.Ab)},i.prototype.closeOverlayer=function(){this.emit(C.AbCloseLayer,"",C.Ab)},i.prototype.getAllVars=function(e){this.emit(C.AbAllVars,e,C.Ab)},i.prototype.destoryInstace=function(){this.destroy||(this.destroy=!0,this.off(C.TokenComplete),this.emit(C.DestoryInstance))},i.prototype.destroyInstance=function(){this.destroy||(this.destroy=!0,this.off(C.TokenComplete),this.emit(C.DestoryInstance))},i.plugins=[],i}(),ev=function(){function i(){}return i.prototype.apply=function(e,t){var r=this;t.event_verify_url&&(typeof t.event_verify_url=="string"?(this.url=t.event_verify_url+"/v1/list_test",e.on(e.Types.SubmitBefore,function(n){e.requestManager.useBeacon({url:r.url,data:n})})):console.log("please use correct et_test url"))},i}(),tv=function(){function i(){}return i.prototype.apply=function(e,t){var r=this;this.collect=e,this.config=t,this.duration=6e4,this.reportUrl=e.configManager.getDomain()+"/profile/list";var n=e.Types;this.eventCheck=new Hn(e,t),this.cache={},this.collect.on(n.ProfileSet,function(s){r.setProfile(s)}),this.collect.on(n.ProfileSetOnce,function(s){r.setOnceProfile(s)}),this.collect.on(n.ProfileUnset,function(s){r.unsetProfile(s)}),this.collect.on(n.ProfileIncrement,function(s){r.incrementProfile(s)}),this.collect.on(n.ProfileAppend,function(s){r.appendProfile(s)}),this.collect.on(n.ProfileClear,function(){r.cache={}}),this.ready(n.Profile)},i.prototype.ready=function(e){var t=this;if(this.collect.set(e),this.collect.hook._hooksCache.hasOwnProperty(e)){var r=this.collect.hook._hooksCache[e];if(!Object.keys(r).length)return;var n=function(a){r[a].length&&r[a].forEach(function(o){t.collect.hook.emit(a,o)})};for(var s in r)n(s)}},i.prototype.report=function(e,t){t===void 0&&(t={});try{if(this.config.disable_track_event)return;var r=[];r.push(this.collect.processEvent(e,t));var n=this.collect.eventManager.merge(r);this.collect.requestManager.useRequest({url:this.reportUrl,data:n}),this.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_EVENT,info:"埋点上报成功",time:Date.now(),data:n,code:200,status:"success"})}catch(s){this.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:s.message})}},i.prototype.setProfile=function(e){var t=this.formatParams(e);t&&Object.keys(t).length&&(this.pushCache(t),this.report("__profile_set",we({},t,{profile:!0})))},i.prototype.setOnceProfile=function(e){var t=this.formatParams(e,!0);t&&Object.keys(t).length&&(this.pushCache(t),this.report("__profile_set_once",we({},t,{profile:!0})))},i.prototype.incrementProfile=function(e){e?this.report("__profile_increment",we({},e,{profile:!0})):console.warn("please check the params, must be object!!!")},i.prototype.unsetProfile=function(e){if(e){var t={};t[e]="1",this.report("__profile_unset",we({},t,{profile:!0}))}else console.warn("please check the key, must be string!!!")},i.prototype.appendProfile=function(e){if(e){var t={};for(var r in e)typeof e[r]=="string"||Object.prototype.toString.call(e[r]).slice(8,-1)==="Array"?t[r]=e[r]:console.warn("please check the value of param: "+r+", must be string or array !!!");Object.keys(t).length&&this.report("__profile_append",we({},t,{profile:!0}))}else console.warn("please check the params, must be object!!!")},i.prototype.pushCache=function(e){var t=this;Object.keys(e).forEach(function(r){t.cache[r]={val:t.clone(e[r]),timestamp:Date.now()}})},i.prototype.formatParams=function(e,t){var r=this;t===void 0&&(t=!1);try{if(!e||Object.prototype.toString.call(e)!=="[object Object]")return void console.warn("please check the params type, must be object !!!");var n={};for(var s in e)typeof e[s]=="string"||typeof e[s]=="number"||Object.prototype.toString.call(e[s]).slice(8,-1)==="Array"?n[s]=e[s]:console.warn("please check the value of params:"+s+", must be string,number,Array !!!");var a=Object.keys(n);if(!a.length||!this.eventCheck.checkEventParams(n))return;var o=Date.now();return a.filter(function(d){var c=r.cache[d];return t?!c:!(c&&r.compare(c.val,e[d])&&o-c.timestamp<r.duration)}).reduce(function(d,c){return d[c]=n[c],d},{})}catch(d){this.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:d.message}),console.log("error")}},i.prototype.compare=function(e,t){try{return JSON.stringify(e)===JSON.stringify(t)}catch(r){return this.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:r.message}),!1}},i.prototype.clone=function(e){try{return JSON.parse(JSON.stringify(e))}catch(t){return this.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:t.message}),e}},i.prototype.unReady=function(){console.warn("sdk is not ready, please use this api after start")},i}(),iv=function(){function i(){var e=this;this.setInterval=function(){e.clearIntervalFunc=Mg(function(){e.isSessionhasEvent&&e.endCurrentSession()},e.sessionInterval)},this.clearInterval=function(){e.clearIntervalFunc&&e.clearIntervalFunc()}}return i.prototype.apply=function(e,t){var r=this;if(this.collect=e,!t.disable_heartbeat){this.sessionInterval=6e4,this.startTime=0,this.lastTime=0,this.setInterval();var n=this.collect.Types;this.collect.on(n.SessionResetTime,function(){r.process()})}},i.prototype.endCurrentSession=function(){this.collect.event("_be_active",{start_time:this.startTime,end_time:this.lastTime,url:window.location.href,referrer:window.document.referrer,title:document.title||location.pathname}),this.isSessionhasEvent=!1,this.startTime=0},i.prototype.process=function(){this.isSessionhasEvent||(this.isSessionhasEvent=!0,this.startTime=+new Date);var e=this.lastTime||+new Date;this.lastTime=+new Date,this.lastTime-e>this.sessionInterval&&(this.clearInterval(),this.endCurrentSession(),this.setInterval())},i}(),rv=function(){function i(){}return i.prototype.apply=function(e,t){var r=this;t.channel_domain||t.disable_track_event||t.disable_sdk_monitor||(this.collect=e,this.config=t,this.url=e.configManager.getUrl("event"),this.collect.on(e.Types.Ready,function(){r.sdkOnload()}),this.collect.on(e.Types.SubmitError,function(n){var s=n.type,a=n.eventData,o=n.errorCode;s==="f_data"&&r.sdkError(a,o)}))},i.prototype.sdkOnload=function(){var e=this;try{var t=this.collect.configManager.get(),r=t.header,n=t.user,s=r.app_id,a=r.app_name,o=r.sdk_version,d=n.web_id,c={events:[{event:"onload",params:JSON.stringify({app_id:s,app_name:a||"",sdk_version:o,sdk_type:"npm",sdk_config:this.config,sdk_desc:"TOC",url:location.href}),local_time_ms:Date.now()}],user:{user_unique_id:d},header:{}};setTimeout(function(){e.collect.requestManager.useRequest({url:e.url,data:[c],timeout:3e4,app_key:"566f58151b0ed37e",forceXhr:!0})},16)}catch{}},i.prototype.sdkError=function(e,t){var r=this;try{var n=e[0],s=n.user,a=n.header,o=[];e.forEach(function(c){c.events.forEach(function(u){o.push(u)})});var d={events:o.map(function(c){return{event:"on_error",params:JSON.stringify({error_code:t,app_id:a.app_id,app_name:a.app_name||"",error_event:c.event,sdk_version:a.sdk_version,local_time_ms:c.local_time_ms,tea_event_index:Date.now(),params:c.params,header:JSON.stringify(a),user:JSON.stringify(s)}),local_time_ms:Date.now()}}),user:{user_unique_id:s.user_unique_id},header:{}};setTimeout(function(){r.collect.requestManager.useRequest({url:r.url,data:[d],timeout:3e4,app_key:"566f58151b0ed37e",forceXhr:!0})},16)}catch{}},i}(),qn=typeof window<"u"?(window.LogPluginObject||(window.LogPluginObject={}),window.LogPluginObject):null,nv=function(){function i(){}return i.prototype.apply=function(e,t){this._plugin={},this.config=t,this.collect=e,this.channel=t.channel||"cn",this.loadExtend()},i.prototype.loadExtend=function(){var e=this;try{this.collect.remotePlugin.forEach(function(t,r){if(t==="sdk")if($n.hasOwnProperty(r)){var n=$n[r].object,s=$n[r].src[e.channel]+"?query="+Date.now();e.exist(r,n,s)}else console.warn("your "+r+" is not exist,please check plugin name");else typeof t=="object"&&(t.src?e.exist(r,t.call,t.src):e.process(r,t.instance,"INSTANCE"))})}catch(t){this.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:t.message}),console.log("load extend error")}},i.prototype.exist=function(e,t,r){var n=this;qn[t]?(this.process(e,qn[t]),console.log("已有"+e+"插件,避免重复加载~")):this.loadPlugin(e,r,function(){n.process(e,qn[t]),console.log(" %c %s %s %s","color: yellow; background-color: black;","–","load plugin:"+e+" success","-")},function(){console.log(" %c %s %s %s","color: red; background-color: yellow;","–","load plugin:"+e+" error","-")})},i.prototype.process=function(e,t,r){try{if(r){var n=new t;n.apply&&n.apply(this.collect,this.config),console.log("excude "+e+" success")}else t&&t(this.collect,this.config)}catch(s){this.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:s.message}),console.log("excude "+e+" error, message:"+s.message)}},i.prototype.loadPlugin=function(e,t,r,n){var s=this;try{var a=document.createElement("script");a.src=t,this._plugin[e]||(this._plugin[e]=[]),this._plugin[e].push(r),a.onerror=function(){n(t)},a.onload=function(){s._plugin[e].forEach(function(o){o()})},document.getElementsByTagName("head")[0].appendChild(a)}catch(o){this.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:o.message})}},i}();St.usePlugin(nv,"extend"),St.usePlugin(ev,"et"),St.usePlugin(tv,"profile"),St.usePlugin(iv,"heartbeat"),St.usePlugin(rv,"monitor"),new St("default");var sv=St;class Bt{constructor({userId:e}){this.collector=new sv("media-engine-logger"),this.collector.init({app_id:834499,channel:"cn",disable_sdk_monitor:!0}),this.collector.config({user_unique_id:e||"media-engine",evtParams:{sdk_version:"1.0.0"}}),this.collector.start()}static getInstance({userId:e}){return Bt.instance||(Bt.instance=new Bt({userId:e})),Bt.instance}event(e,t){this.collector.event(e,t||{})}}class ov extends Ag{constructor({userId:e}){super(Rg),this.logger=Bt.getInstance({userId:e})}receiveWorkerMessage({type:e,data:t}){switch(e){case Te.PassEngineEvent:{const r=t.event,n=t.data;this.emit(r,n)}break;case Te.GetStats:this.emit("_receive_stats",t);break}}start(e){const{video:t}=e,{audio:r}=e;delete e.video,delete e.audio,this.sendTransportable({type:Te.Start,data:e},{video:t,audio:r}),this.logger.event("pusher_engine_start")}stop(){this.sendMessage({type:Te.Stop}),this.logger.event("pusher_engine_stop")}updateTrack(e,t,r){this.sendTransportable({type:Te.UpdateTrack,data:{isAudio:t==="audio",setting:r}},{stream:e}),this.logger.event("pusher_engine_update_track",{type:t,setting:r})}setBitrate(e,t){this.sendMessage({type:Te.SetBitrate,data:{bitrate:e,type:t}}),this.logger.event("pusher_engine_set_bitrate",{bitrate:e,type:t})}online(){this.sendMessage({type:Te.Online})}reconnect(e){this.sendMessage({type:Te.Reconnect,data:{url:e}}),this.logger.event("pusher_engine_reconnect",{url:e})}async getStats(){this.sendMessage({type:Te.GetStats});const[e]=await this.onWait("_receive_stats");return e}destroy(){super.destroy(),this.stop()}}function cc(i){let e=!0,t="";for(const r of i)if(!(r in window)){e=!1,t=`${r} not Supported`;break}return{supported:e,info:t}}const av=24*60*60*1e3;function uc(i,e="1d"){const t=`_me_expire_${i}`;let r=0;if(typeof e=="string"){if(!/^[0-9]+d$/.test(e))throw new Error("expire format error");r=av*parseInt(e)}else r=e;return{get(){const n=localStorage.getItem(t);if(!n)return null;let s=null;try{s=JSON.parse(n)}catch{return null}const{value:a,expire:o}=s;return o<Date.now()?(localStorage.removeItem(t),null):a},set(n){localStorage.setItem(t,JSON.stringify({value:n,expire:Date.now()+r}))},remove(){localStorage.removeItem(t)}}}var pe=(i=>(i[i.AAC=0]="AAC",i[i.OPUS=1]="OPUS",i[i.H264=2]="H264",i[i.H265=3]="H265",i[i.AV1=4]="AV1",i))(pe||{});pe.AAC+"",pe.OPUS+"",pe.H264+"",pe.H265+"",pe.AV1+"";const hr={[pe.AAC]:"mp4a.40.2",[pe.OPUS]:"opus",[pe.H264]:"avc1.4DE033",[pe.H265]:"hev1.1.6.L93.B0"};function dc(i){const e=new MediaStreamTrackProcessor(i),{readable:t}=e,r=i.getSettings();return{readable:t,settings:r}}const Kn=uc("audio_encoder_support","3d");function cv(){return cc(["EncodedAudioChunk","AudioEncoder","AudioData"])}function uv(i){const e=Kn.get(),t=`${i}_support`;return e&&e[t]?e[t]:null}function dv(i,e){const t=Kn.get()||{},r=`${i}_support`;t[r]=e,Kn.set(t)}async function hv(i){if(!AudioEncoder.isConfigSupported)return{supported:!1,info:"isConfigSupported method is undefined"};try{const e={codec:i,sampleRate:48e3,numberOfChannels:2,bitrate:128e3},t=await AudioEncoder.isConfigSupported(e);return t.supported!==void 0?{supported:t.supported,info:t.supported?"isConfigSupported: true":"isConfigSupported: false"}:{supported:!1,info:"isConfigSupported returned undefined"}}catch{return{supported:!1,info:"isConfigSupported method throws error"}}}async function hc(i){const e=uv(i);if(e)return console.log(`Audio encoder ${i} support result from cache:`,e),e;const t=await hv(i);return dv(i,t),t}function lv(){return hc(hr[pe.OPUS])}function pv(){return hc(hr[pe.AAC])}const Wn=uc("video_encoder_support","3d");function Jn(){return cc(["EncodedVideoChunk","VideoEncoder","VideoFrame"])}function lc(i){const e=Wn.get(),t=`${i}_support`;return e&&e[t]?e[t]:null}function Xn(i,e){const t=Wn.get()||{},r=`${i}_support`;t[r]=e,Wn.set(t)}async function pc(i){if(!VideoEncoder.isConfigSupported)return{supported:!1,info:"isConfigSupported method is undefined"};try{const e={codec:i,width:640,height:480,bitrate:1e6,framerate:30},t=await VideoEncoder.isConfigSupported(e);return{supported:t.supported??!1,info:t.supported?"isConfigSupported: true":"isConfigSupported: false"}}catch(e){return{supported:!1,info:`isConfigSupported error: ${e instanceof Error?e.message:String(e)}`}}}async function fv(i,e=3e3){return new Promise(t=>{let r=!1;const n=setTimeout(()=>{r||(r=!0,t({supported:!1,info:"encoding test timeout"}))},e);try{const s=new VideoEncoder({output:h=>{r||(r=!0,clearTimeout(n),s.state!=="closed"&&s.close(),t({supported:!0,info:"encoding test success"}))},error:h=>{r||(r=!0,clearTimeout(n),s.state!=="closed"&&s.close(),t({supported:!1,info:`encoding test error: ${h.message}`}))}}),a={codec:i,width:640,height:480,bitrate:1e6,framerate:30};s.configure(a);const o=640,d=480,c=new OffscreenCanvas(o,d),u=c.getContext("2d");u&&(u.fillStyle="#FF0000",u.fillRect(0,0,o,d));const l=new VideoFrame(c,{timestamp:0});s.encode(l)}catch(s){r||(r=!0,clearTimeout(n),t({supported:!1,info:`encoding test catch: ${s.message}`}))}})}async function mv(i){if(!Jn())return{supported:!1,info:"VideoEncoder API not supported"};const e=lc(i);if(e)return console.log(`Video encoder ${i} support result from cache:`,e),e;const t=await pc(i);return Xn(i,t),t}async function _v(i,e=3e3){if(!Jn())return{supported:!1,info:"VideoEncoder API not supported"};const t=lc(i);if(t)return console.log(`Video encoder ${i} support result from cache:`,t),t;const r=await pc(i);if(!r.supported)return Xn(i,r),r;const n=await fv(i,e);return Xn(i,n),n}function gv(){return mv(hr[pe.H264])}function vv(){return _v(hr[pe.H265])}function yv(){return cv().supported}function bv(){return Jn().supported}async function Sv(i){if(!yv())return{supported:!1,info:"AudioEncoder API not supported"};try{switch(i){case"aac":return await pv();case"opus":return await lv();default:return{supported:!1,info:`Unsupported audio codec: ${i}`}}}catch(e){return{supported:!1,info:`${i} 检测失败: ${e instanceof Error?e.message:String(e)}`}}}async function Ev(i){if(!bv())return{supported:!1,info:"VideoEncoder API not supported"};try{switch(i){case"h264":return await gv();case"h265":return await vv();default:return{supported:!1,info:`Unsupported video codec: ${i}`}}}catch(e){return{supported:!1,info:`${i} 检测失败: ${e instanceof Error?e.message:String(e)}`}}}async function wv(i,e=!1){const t=["aac"],r=["h264"],n={audioCodecs:{},videoCodecs:{}};for(const l of t)n.audioCodecs[l]=await Sv(l);for(const l of r)n.videoCodecs[l]=await Ev(l);const s=[],a=[],o=[],d=[];Object.entries(n.audioCodecs).forEach(([l,h])=>{h.supported?s.push(l):a.push(l)}),Object.entries(n.videoCodecs).forEach(([l,h])=>{h.supported?o.push(l):d.push(l)});const u={supported:a.length===0&&d.length===0,supportedAudio:s,supportedVideo:o,unsupportedAudio:a,unsupportedVideo:d};return e&&(u.details=n),u}async function Cv(){return(await wv()).supported}class fc{constructor(e,t,r,n,s){this.url=e,this.config=t,this.onError=r,this.onSuccess=n,this.onReconnectError=s,this._isPushing=!1,this._clearOnline=()=>{},this.sessionId=Date.now(),this.engine=new ov({userId:De.instance.userId??""});const a=()=>{this.engine.online()};window.addEventListener("online",a),this._clearOnline=()=>{window.removeEventListener("online",a)}}static async isSupported(){return await Cv()&&typeof WebTransport<"u"&&typeof MediaStreamTrackProcessor<"u"&&typeof MediaStreamTrackGenerator<"u"&&typeof VideoEncoder<"u"}get isPushing(){return this._isPushing}get pushUrl(){return this.url}async getStatsSnapshoot(e){e&&await Ci(e);const{video:t,audio:r,upspeed:n}=await this.engine.getStats();return{stats:{video:{sendBitrate:t.bitrate,framesPerSecond:t.framerate,framesEncoded:t.encodedFrames,keyFramesEncoded:t.encodedKeyFrames,sendSpeed:n,codec:t.codec,frameWidth:t.width,frameHeight:t.height,gopSize:t.keyGopSize},audio:{sendBitrate:r.bitrate,framesEncoded:r.encodedFrames,codec:r.codec,channels:r.numberOfChannels,sampleRate:r.sampleRate}},originStats:void 0}}publish(e,t,r){const n={url:this.url,maxReconnectCount:10,autoReconnect:!1,bitrate:{},cfg:Object.assign({gopSize:90},r||{}),setting:{}};e.forEach((s,a)=>{if(s.kind==="video"||s.kind==="audio"){const o=dc(s);n[s.kind]=o.readable,n.bitrate[s.kind]=t[a],n.setting[s.kind]=o.settings}}),this.engine.start(n),this._isPushing=!0,this.engine.on({"connect-open":()=>{this._isPushing=!0,this.onSuccess()},error:s=>{this.onError(new Error(JSON.stringify(s)))},"connect-close":s=>{this._isPushing=!1,s==="api call"?console.log("Connection close by api call"):this.onError(new Error(`Connect close, reason=${s}`))},"reconnect-fail":s=>{this._isPushing=!1,this.onReconnectError(new Error(`Reconnect fail, reason=${s}`))}})}unpublish(){this.engine.stop(),this._isPushing=!1}async updatePublish(e,t){e&&this.engine.updateTrack(dc(e).readable,t)}applyBitrate(e,t){this.engine.setBitrate(e,t)}reconnect(e){this.engine.reconnect(e)}destroy(){this._clearOnline(),this.engine.destroy(),this._isPushing=!1}}function mc({pushUrl:i,addPri:e=!1,disableTCC:t=!1}){const r=new URL(i),n=Date.now();return e&&r.searchParams.set("pri",n.toString()),t&&r.searchParams.set("tcc","false"),r.href}class kv{constructor(e,t=Of){this._reconnectDelay=0,this._reconnectCount=0,this._timeoutTimerId=null,this._reconnectTimeout=null,this._totalReconnectInfo={totalReconnectCount:0,totalReconnectDuration:0},this.handleOnlineReconnect=()=>{this.execute(!0)},this.execute=(r=!1)=>{var n;this._logger.log("start reconnect strategy"),this.state==="idle"&&(this._reconnectStartTime=Date.now(),this._totalReconnectInfo.totalReconnectCount+=1,O(I.PUSH_RECONNECT_START,{start_time:this._reconnectStartTime,session_id:this._pushConsumer.pushSessionId,max_timeout:this._maxTimeout}),this.bindOnlineEvent(),this.setStrategyState("executing"),(n=this._logger)==null||n.log("start reconnecting with max timeout: ",this._maxTimeout),this.startTimeoutTimer(this._maxTimeout),this._pushConsumer.emitReconnectStateChange({state:wt.START,teaParams:{is_online:navigator.onLine,start_time:this._reconnectStartTime,max_timeout:this._maxTimeout,session_id:this._pushConsumer.pushSessionId}})),this.state==="executing"&&(this._reconnectTimeout&&clearTimeout(this._reconnectTimeout),this.executeStrategy(r))},this.attemptReconnect=async()=>{var r;if(this.state==="executing"){this.setStrategyState("reconnecting"),this._reconnectCount+=1;const n=this.getNextPushUrl();try{if(this._pushConsumer.emitReconnectStateChange({state:wt.RECONNECTING,params:{retryTime:this._reconnectCount},teaParams:{retry_push_url:n,session_id:this._pushConsumer.pushSessionId}}),await this._pushConsumer.reconnect(n),!this.isActive())return;this.setStrategyState("executing")}catch(s){const a=s.ext||{},{httpCode:o}=a;if(o!==void 0&&String(o).startsWith("4"))this.stop({isSuccess:!1,reason:br.PushUrlInvalid,failedError:s}),(r=this._onReconnectError)==null||r.call(this,"pushError",s);else{if(!this.isActive())return;this.setStrategyState("executing"),this.execute()}}}},this.executeStrategy=(r=!1)=>{const n=r?0:this._reconnectDelay;this._pushConsumer.emitReconnectStateChange({state:wt.WAITING,params:{waitingTime:n,retryTime:this._reconnectCount+1},teaParams:{is_online:navigator.onLine,session_id:this._pushConsumer.pushSessionId}}),this._logger.log("reconnect after delay: ",n,Date.now()),this._reconnectTimeout=window.setTimeout(this.attemptReconnect,n),this._reconnectDelay=this._reconnectDelay===0?2e3:Math.min(this._reconnectDelay*2,Mf)},this.state="idle",this._pushConsumer=e,this._maxTimeout=t,this._logger=new st("ReconnectStrategy")}getNextPushUrl(){const e=this._pushConsumer.pushUrl;return e?mc({pushUrl:e,addPri:!0}):""}set onReconnectError(e){this._onReconnectError=e}bindOnlineEvent(){window.addEventListener("online",this.handleOnlineReconnect)}unbindOnlineEvent(){window.removeEventListener("online",this.handleOnlineReconnect)}setStrategyState(e){this._logger.log("reconnect state change to: ",e),this.state=e}stop({isSuccess:e,reason:t,quiet:r=!1,failedError:n}){var a;if(this.state==="idle")return;const s=(Date.now()-this._reconnectStartTime)/1e3;r||(e?this._pushConsumer.emitReconnectStateChange({state:wt.SUCCESS,teaParams:{reconnect_duration:s,session_id:this._pushConsumer.pushSessionId}}):(this._logger.log("Reconnect strategy stopped: ",t),this._pushConsumer.emitReconnectStateChange({state:wt.FAILED,params:{failedCode:t},teaParams:{reason:t,reconnect_duration:s,error_message:n==null?void 0:n.message,http_code:(a=n==null?void 0:n.ext)==null?void 0:a.httpCode,ext:n==null?void 0:n.ext,session_id:this._pushConsumer.pushSessionId}})),this._totalReconnectInfo.totalReconnectDuration+=s),this.setStrategyState("idle"),this._timeoutTimerId&&clearTimeout(this._timeoutTimerId),this._reconnectTimeout&&clearTimeout(this._reconnectTimeout),this._reconnectDelay=0,this._reconnectCount=0,this._reconnectStartTime=void 0,this.unbindOnlineEvent()}startTimeoutTimer(e){this._timeoutTimerId=window.setTimeout(()=>{var t;this.state!=="idle"&&(this._logger.log("Reconnect strategy timed out"),this.stop({isSuccess:!1,reason:br.ReconnectTimeout}),(t=this._onReconnectError)==null||t.call(this,"timeout"))},e)}clearReconnectInfo(){this._totalReconnectInfo={totalReconnectCount:0,totalReconnectDuration:0}}getReconnectInfo(){return this._totalReconnectInfo}isActive(){return this.state!=="idle"}}const Ti={ManualStop:0,ReconnectFailed:1,StartPushError:2,PushError:3},Vt={PushCheck:0,PushError:1},_c=new st("PushController");class Tv extends Ga{constructor(e,{config:t,streamConsumeController:r,streamComposedController:n}){var s,a;if(super(e),this._connect=null,this._connectionState=fe.DISCONNECTED,this._pushSessionId=0,this._isReportStart=!1,this._pushMode="rtm",this._reconnectStrategy=null,this._needCheckAudioTrack=!1,this._pushConfig={timeout:5e3,retryCount:1,retryDelay:1e3},this._audioBitrate=Rt(gs,"audio").bitrate,this._videoBitrate=Rt(_s,"video").bitrate,this.handleReconnectError=(o,d)=>{var c,u;O(I.STOP_PUSH_STREAM,{reason:Ti.ReconnectFailed,error_message:o,session_id:this._pushSessionId,push_mode:this._pushMode,duration:this.pushDuration,reconnect_times:(c=this._reconnectStrategy)==null?void 0:c.getReconnectInfo().totalReconnectCount,reconnect_duration:(u=this._reconnectStrategy)==null?void 0:u.getReconnectInfo().totalReconnectDuration}),this.unpublish()},this.handleAudioStreamChange=o=>{this.updatePush({audioTrack:o.audioTrack})},this.handleVideoStreamChange=o=>{this.updatePush({videoTrack:o.videoTrack})},this._OnRTMPSuccess=()=>{this.setConnectState(fe.CONNECTED)},this._OnMediaReconnectFailed=()=>{this._executeReconnect()},this._OnRTMPError=o=>{const d=new At(me.PUBLISH_FAILED,`${o.code?`code:${o.code},`:""} message: ${o.message}`);this.pushDuration<Pf||!this._reconnectStrategy||this.pushMode==="webTransport"?(this._streamConsumeController.emit(Z.PushError,d),O(I.STOP_PUSH_STREAM,{reason:Ti.PushError,duration:this.pushDuration,session_id:this._pushSessionId,push_mode:this._pushMode,error_msg:o.message,error_code:o.code}),O(I.START_PUSH_STATUS,{is_success:!1,reason:Vt.PushError,error_message:o.message,session_id:this._pushSessionId,push_mode:this._pushMode,push_url:this._pushUrl}),this.unpublish()):this._executeReconnect()},this._executeReconnect=()=>{var o;(o=this._reconnectStrategy)==null||o.execute(),this.setConnectState(fe.RECONNECTING),this.unpublish({isReconnecting:!0})},this._OnRtcStateChange=o=>{var d;switch(O(I.PUSH_RTC_STATE_CHANGE,{state:o,push_url:this._pushUrl,session_id:this._pushSessionId,push_mode:this._pushMode}),this._streamConsumeController.emit(Z.RTCConnectStateChanged,o),o){case"connected":this.setConnectState(fe.CONNECTED);break;case"disconnected":this._reconnectStrategy&&this._executeReconnect();break;case"failed":(d=this._reconnectStrategy)!=null&&d.isActive()?this._executeReconnect():(this.connectionState===fe.CONNECTED?O(I.STOP_PUSH_STREAM,{reason:Ti.PushError,error_message:"peerconnection failed",duration:this.pushDuration,session_id:this._pushSessionId,push_mode:this._pushMode}):O(I.START_PUSH_STATUS,{is_success:!1,reason:Vt.PushError,error_message:"peerconnection failed",session_id:this._pushSessionId,push_mode:this._pushMode,push_url:this._pushUrl}),this.unpublish(),this._streamConsumeController.emit(Z.PushError,new At(me.PUSH_CONNECT_FAILED,"pc failed")));break}},this._pushMode=(t==null?void 0:t.mode)||"rtm",this._streamConsumeController=r,t&&(this._pushConfig=t,this._needCheckAudioTrack=t.checkAudio??!1),(s=t==null?void 0:t.reconnectConfig)!=null&&s.enable||!(t!=null&&t.reconnectConfig)){const o=(a=t==null?void 0:t.reconnectConfig)!=null&&a.maxTimeout?t.reconnectConfig.maxTimeout*Io:void 0;this._reconnectStrategy=new kv(this,o),this._reconnectStrategy.onReconnectError=this.handleReconnectError}this._streamComposedController=n}get isPushing(){return this._connectionState===fe.CONNECTED||this._connectionState===fe.RECONNECTING}get pushUrl(){return this._pushUrl}get pushEncodeConfig(){return this._pushEncodeConfig}get sessionId(){var e;return((e=this._connect)==null?void 0:e.sessionId)||0}start(){this.bindComposedStreamEvent()}stop(){this.unbindComposedStreamEvent()}setPushConfig(e){e&&(this._pushConfig=e)}setConnectState(e){var t;switch(this._connectionState=e,this._streamConsumeController.emit(Z.LiveConnectStateChange,e),e){case fe.CONNECTED:(t=this._reconnectStrategy)!=null&&t.isActive()?this._reconnectStrategy.stop({isSuccess:!0}):(this._streamConsumeController.emit(Z.PushStart),this.setPushStatsInterval(),O(I.START_PUSH_STATUS,{is_success:!0,push_url:this._pushUrl,session_id:this._pushSessionId,push_mode:this._pushMode}));break}}async getStats(){return this._prevStats}async startPush(e,t={}){var a,o,d;if(t.isReconnect||(this._pushSessionId=Date.now(),O(I.START_PUSH,{push_url:e,session_id:this._pushSessionId})),!e)throw O(I.START_PUSH_STATUS,{is_success:!1,session_id:this._pushSessionId,reason:Vt.PushCheck,push_url:this._pushUrl}),new Error("lack publish url");if(this._connect)return;this.start(),this._pushUrl=mc({pushUrl:e,disableTCC:!0}),this._pushEncodeConfig=t.cfg;const r=this._composedStream.videoTrack,n=this._composedStream.audioTrack;if(this._needCheckAudioTrack&&(!r||!n)){O(I.START_PUSH_STATUS,{is_success:!1,reason:Vt.PushCheck,push_url:this._pushUrl,error_message:"lack videoTrack or audioTrack",video_track_id:r==null?void 0:r.id,audio_track_id:n==null?void 0:n.id,video_track_name:r==null?void 0:r.label,audio_track_name:n==null?void 0:n.label,push_mode:this._pushMode,session_id:this._pushSessionId});return}else if(!r&&!n){O(I.START_PUSH_STATUS,{is_success:!1,reason:Vt.PushCheck,push_url:this._pushUrl,error_message:"lack videoTrack and audioTrack",push_mode:this._pushMode,session_id:this._pushSessionId});return}let s;if(this._pushMode==="rtm")s=new ar(e,this._pushConfig,this._OnRtcStateChange);else if(this._pushMode==="webTransport")s=new wg(e,this._pushConfig,this._OnRTMPError,this._OnRTMPSuccess);else if(this._pushMode==="mediaEngine")s=new fc(e,this._pushConfig,this._OnRTMPError,this._OnRTMPSuccess,this._OnMediaReconnectFailed);else throw new Error(`not support push mode: ${this._pushMode}`);this._connect=s;try{!t.isReconnect&&((a=this._reconnectStrategy)!=null&&a.isActive())&&this._reconnectStrategy.stop({quiet:!0}),(o=this._reconnectStrategy)!=null&&o.isActive()||this.setConnectState(fe.CONNECTING),await s.publish([n,r],[this._audioBitrate,this._videoBitrate],{cfg:t.cfg,isReconnect:t.isReconnect}),t.isReconnect||(_c.log("startPush begin"),this._connectionStartDate=Date.now())}catch(c){const u=new At(me.PUBLISH_FAILED,c.message,c);if(_c.groupEnd(),(d=this._reconnectStrategy)!=null&&d.isActive())throw this.unpublish({isReconnecting:!0}),u;this._streamConsumeController.emit(Z.PushError,u),O(I.STOP_PUSH_STREAM,{reason:Ti.PushError,error_message:u.message,enable_reconnect:!1,push_mode:this._pushMode,session_id:this._pushSessionId,duration:this.pushDuration}),O(I.START_PUSH_STATUS,{is_success:!1,push_url:this._pushUrl,reason:Vt.PushError,error_message:u.message,session_id:this._pushSessionId,push_mode:this._pushMode}),this.unpublish()}}setPushStatsInterval(){if(this._isReportStart)return;this._isReportStart=!0;const e=async()=>{var t,r,n,s,a;if((t=this._connect)!=null&&t.isPushing){const o=Date.now(),{stats:d,originStats:c}=await this._connect.getStatsSnapshoot(2e3),l=Date.now()-o;!wf(d)&&((r=this._connect)!=null&&r.isPushing)&&this.connectionState===fe.CONNECTED?this._prevStats=d:this._prevStats=void 0;const h=this.pushMode==="rtm"?sg(d,c,{idealFrameRate:(n=this._composedStream._videoStream)==null?void 0:n.frameRate,idealBitrate:this._videoBitrate}):og(d),p=this.pushMode==="rtm"?(s=this._connect)==null?void 0:s.videoSenderTrackStats:{};O(I.PUSH_STATS,{...h,...p,video_draw_frame:this._streamComposedController.getCompositionDrawCountPerSecond(),stats:d,push_url:this._pushUrl,push_mode:this._pushMode,session_id:this._pushSessionId,duration:h.video_duration||l,video_duration:h.video_duration||l,is_push:!0},!0)}else await Ci(2e3),O(I.PUSH_STATS,{push_url:this._pushUrl,push_mode:this._pushMode,session_id:this._pushSessionId,duration:2e3,is_push:!1,is_reconnecting:((a=this._reconnectStrategy)==null?void 0:a.isActive())??!1},!0);this.connectionState!==fe.DISCONNECTED&&(this._statsLoopTimer=window.setTimeout(e,0))};e()}async reconnect(e){if(this.pushMode==="rtm")return this.startPush(e,{isReconnect:!0});if(this.pushMode==="mediaEngine")return this._connect.reconnect(e)}async updatePush({videoTrack:e,audioTrack:t}){if(this._connect)try{const r=[];e&&r.push(()=>{var n;return(n=this._connect)==null?void 0:n.updatePublish(e,"video")}),t&&r.push(()=>{var n;return(n=this._connect)==null?void 0:n.updatePublish(t,"audio")}),await Promise.all(r.map(n=>n()))}catch(r){const n=new At(me.UPDATE_PUBLISH_FAILED,`${r.name}, code:${r.code}`);this._streamConsumeController.emit(Z.PushError,n)}}unpublish(e={isReconnecting:!1,isManual:!1}){var t,r,n,s,a;e.isReconnecting&&this.pushMode==="mediaEngine"||((t=this._connect)==null||t.unpublish(),this._connect=null),this._prevStats=void 0,e.isManual&&(O(I.STOP_PUSH_STREAM,{reason:Ti.ManualStop,duration:this.pushDuration,session_id:this._streamConsumeController.pushSessionId,push_mode:this._pushMode,reconnect_times:(r=this._reconnectStrategy)==null?void 0:r.getReconnectInfo().totalReconnectCount,reconnect_duration:(n=this._reconnectStrategy)==null?void 0:n.getReconnectInfo().totalReconnectDuration}),(s=this._reconnectStrategy)==null||s.clearReconnectInfo()),e.isReconnecting||(this._statsLoopTimer&&window.clearTimeout(this._statsLoopTimer),this._isReportStart=!1,this._pushEncodeConfig=void 0,this._pushUrl=void 0,this._connectionStartDate=void 0,this._pushSessionId=0,this.setConnectState(fe.DISCONNECTED),(a=this._reconnectStrategy)==null||a.stop({quiet:!0}),this._streamConsumeController.emit(Z.PushStop))}async destroy(){this._statsLoopTimer&&window.clearTimeout(this._statsLoopTimer),this._prevStats=void 0,this._isReportStart=!1,this._connect&&await this.unpublish(),this.unbindComposedStreamEvent()}setPushMode(e){this._pushMode=e}updatePushUrl(e){this._pushUrl=e}setBitrate(e,t,r){var n;t==="video"?this._videoBitrate=e:this._audioBitrate=e,(n=this._connect)==null||n.applyBitrate(e,t,r)}getReconnectDetail(){var e;return(e=this._reconnectStrategy)==null?void 0:e.getReconnectInfo()}get pushMode(){return this._pushMode}get connectionState(){return this._connectionState}get pushSessionId(){return this._pushSessionId}get pushDuration(){return this._connectionStartDate?(Date.now()-this._connectionStartDate)/1e3:0}emitReconnectStateChange({state:e,params:t,teaParams:r}){O(I.PUSH_RECONNECT_STATUS,{status:e,...t,...r}),this._streamConsumeController.emit(Z.ReconnectStateChange,e,t)}}class zv extends Xe{constructor(e,t){super(),this._previewConsumer=new X_(e.getComposedStream(),{streamConsumeController:this}),this._pushConsumer=new Tv(e.getComposedStream(),{streamConsumeController:this,streamComposedController:e,config:t})}startPreview(){this._previewConsumer.startPreview()}setRenderView(e){this._previewConsumer.setRenderView(e)}async startPush(e,t){return this._pushConsumer.startPush(e,{cfg:t})}async stopPush(){return this._pushConsumer.unpublish({isReconnecting:!1,isManual:!0})}setPushMode(e){this._pushConsumer.setPushMode(e)}isPushing(){return this._pushConsumer.isPushing}getStats(){return this._pushConsumer.getStats()}getPreviewElement(){return this._previewConsumer.getPreviewElement()}stopPreview(){this._previewConsumer.stopPreview()}setBitrate(e,t,r){this._pushConsumer.setBitrate(e,t,r)}setPushConfig(e){this._pushConsumer.setPushConfig(e)}updatePushUrl(e){this._pushConsumer.updatePushUrl(e)}getPushDuration(){return this._pushConsumer.pushDuration}getReconnectDetail(){return this._pushConsumer.getReconnectDetail()}get pushSessionId(){return this._pushConsumer.pushSessionId}get pushMode(){return this._pushConsumer.pushMode}async destroy(){await this._pushConsumer.destroy(),this._previewConsumer.destroy()}}class Av{constructor(){this.onError=(e,t,r)=>{},this.onWarning=e=>{},this.onCaptureFirstAudioFrame=()=>{},this.onCaptureFirstVideoFrame=()=>{},this.onPushStatusUpdate=(e,t)=>{},this.onMicrophoneChanged=e=>{},this.onCameraChanged=e=>{},this.onCaptureInterrupted=e=>{},this.onPushStart=()=>{},this.onPushStop=()=>{},this.onStopCapture=e=>{},this.onLiveConnectStateChange=e=>{},this.onReconnectStateChange=(e,t)=>{}}}const Rv=new Av;let gc=!0,vc=!0;function lr(i,e,t){const r=i.match(e);return r&&r.length>=t&&parseInt(r[t],10)}function Et(i,e,t){if(!i.RTCPeerConnection)return;const r=i.RTCPeerConnection.prototype,n=r.addEventListener;r.addEventListener=function(a,o){if(a!==e)return n.apply(this,arguments);const d=c=>{const u=t(c);u&&(o.handleEvent?o.handleEvent(u):o(u))};return this._eventMap=this._eventMap||{},this._eventMap[e]||(this._eventMap[e]=new Map),this._eventMap[e].set(o,d),n.apply(this,[a,d])};const s=r.removeEventListener;r.removeEventListener=function(a,o){if(a!==e||!this._eventMap||!this._eventMap[e])return s.apply(this,arguments);if(!this._eventMap[e].has(o))return s.apply(this,arguments);const d=this._eventMap[e].get(o);return this._eventMap[e].delete(o),this._eventMap[e].size===0&&delete this._eventMap[e],Object.keys(this._eventMap).length===0&&delete this._eventMap,s.apply(this,[a,d])},Object.defineProperty(r,"on"+e,{get(){return this["_on"+e]},set(a){this["_on"+e]&&(this.removeEventListener(e,this["_on"+e]),delete this["_on"+e]),a&&this.addEventListener(e,this["_on"+e]=a)},enumerable:!0,configurable:!0})}function Dv(i){return typeof i!="boolean"?new Error("Argument type: "+typeof i+". Please use a boolean."):(gc=i,i?"adapter.js logging disabled":"adapter.js logging enabled")}function xv(i){return typeof i!="boolean"?new Error("Argument type: "+typeof i+". Please use a boolean."):(vc=!i,"adapter.js deprecation warnings "+(i?"disabled":"enabled"))}function yc(){if(typeof window=="object"){if(gc)return;typeof console<"u"&&typeof console.log=="function"&&console.log.apply(console,arguments)}}function Zn(i,e){vc&&console.warn(i+" is deprecated, please use "+e+" instead.")}function Iv(i){const e={browser:null,version:null};if(typeof i>"u"||!i.navigator||!i.navigator.userAgent)return e.browser="Not a browser.",e;const{navigator:t}=i;if(t.userAgentData&&t.userAgentData.brands){const r=t.userAgentData.brands.find(n=>n.brand==="Chromium");if(r)return{browser:"chrome",version:parseInt(r.version,10)}}if(t.mozGetUserMedia)e.browser="firefox",e.version=lr(t.userAgent,/Firefox\/(\d+)\./,1);else if(t.webkitGetUserMedia||i.isSecureContext===!1&&i.webkitRTCPeerConnection)e.browser="chrome",e.version=lr(t.userAgent,/Chrom(e|ium)\/(\d+)\./,2);else if(i.RTCPeerConnection&&t.userAgent.match(/AppleWebKit\/(\d+)\./))e.browser="safari",e.version=lr(t.userAgent,/AppleWebKit\/(\d+)\./,1),e.supportsUnifiedPlan=i.RTCRtpTransceiver&&"currentDirection"in i.RTCRtpTransceiver.prototype;else return e.browser="Not a supported browser.",e;return e}function bc(i){return Object.prototype.toString.call(i)==="[object Object]"}function Sc(i){return bc(i)?Object.keys(i).reduce(function(e,t){const r=bc(i[t]),n=r?Sc(i[t]):i[t],s=r&&!Object.keys(n).length;return n===void 0||s?e:Object.assign(e,{[t]:n})},{}):i}function Qn(i,e,t){!e||t.has(e.id)||(t.set(e.id,e),Object.keys(e).forEach(r=>{r.endsWith("Id")?Qn(i,i.get(e[r]),t):r.endsWith("Ids")&&e[r].forEach(n=>{Qn(i,i.get(n),t)})}))}function Ec(i,e,t){const r=t?"outbound-rtp":"inbound-rtp",n=new Map;if(e===null)return n;const s=[];return i.forEach(a=>{a.type==="track"&&a.trackIdentifier===e.id&&s.push(a)}),s.forEach(a=>{i.forEach(o=>{o.type===r&&o.trackId===a.id&&Qn(i,o,n)})}),n}const wc=yc;function Cc(i,e){const t=i&&i.navigator;if(!t.mediaDevices)return;const r=function(o){if(typeof o!="object"||o.mandatory||o.optional)return o;const d={};return Object.keys(o).forEach(c=>{if(c==="require"||c==="advanced"||c==="mediaSource")return;const u=typeof o[c]=="object"?o[c]:{ideal:o[c]};u.exact!==void 0&&typeof u.exact=="number"&&(u.min=u.max=u.exact);const l=function(h,p){return h?h+p.charAt(0).toUpperCase()+p.slice(1):p==="deviceId"?"sourceId":p};if(u.ideal!==void 0){d.optional=d.optional||[];let h={};typeof u.ideal=="number"?(h[l("min",c)]=u.ideal,d.optional.push(h),h={},h[l("max",c)]=u.ideal,d.optional.push(h)):(h[l("",c)]=u.ideal,d.optional.push(h))}u.exact!==void 0&&typeof u.exact!="number"?(d.mandatory=d.mandatory||{},d.mandatory[l("",c)]=u.exact):["min","max"].forEach(h=>{u[h]!==void 0&&(d.mandatory=d.mandatory||{},d.mandatory[l(h,c)]=u[h])})}),o.advanced&&(d.optional=(d.optional||[]).concat(o.advanced)),d},n=function(o,d){if(e.version>=61)return d(o);if(o=JSON.parse(JSON.stringify(o)),o&&typeof o.audio=="object"){const c=function(u,l,h){l in u&&!(h in u)&&(u[h]=u[l],delete u[l])};o=JSON.parse(JSON.stringify(o)),c(o.audio,"autoGainControl","googAutoGainControl"),c(o.audio,"noiseSuppression","googNoiseSuppression"),o.audio=r(o.audio)}if(o&&typeof o.video=="object"){let c=o.video.facingMode;c=c&&(typeof c=="object"?c:{ideal:c});const u=e.version<66;if(c&&(c.exact==="user"||c.exact==="environment"||c.ideal==="user"||c.ideal==="environment")&&!(t.mediaDevices.getSupportedConstraints&&t.mediaDevices.getSupportedConstraints().facingMode&&!u)){delete o.video.facingMode;let l;if(c.exact==="environment"||c.ideal==="environment"?l=["back","rear"]:(c.exact==="user"||c.ideal==="user")&&(l=["front"]),l)return t.mediaDevices.enumerateDevices().then(h=>{h=h.filter(f=>f.kind==="videoinput");let p=h.find(f=>l.some(v=>f.label.toLowerCase().includes(v)));return!p&&h.length&&l.includes("back")&&(p=h[h.length-1]),p&&(o.video.deviceId=c.exact?{exact:p.deviceId}:{ideal:p.deviceId}),o.video=r(o.video),wc("chrome: "+JSON.stringify(o)),d(o)})}o.video=r(o.video)}return wc("chrome: "+JSON.stringify(o)),d(o)},s=function(o){return e.version>=64?o:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[o.name]||o.name,message:o.message,constraint:o.constraint||o.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}},a=function(o,d,c){n(o,u=>{t.webkitGetUserMedia(u,d,l=>{c&&c(s(l))})})};if(t.getUserMedia=a.bind(t),t.mediaDevices.getUserMedia){const o=t.mediaDevices.getUserMedia.bind(t.mediaDevices);t.mediaDevices.getUserMedia=function(d){return n(d,c=>o(c).then(u=>{if(c.audio&&!u.getAudioTracks().length||c.video&&!u.getVideoTracks().length)throw u.getTracks().forEach(l=>{l.stop()}),new DOMException("","NotFoundError");return u},u=>Promise.reject(s(u))))}}}function kc(i){i.MediaStream=i.MediaStream||i.webkitMediaStream}function Tc(i){if(typeof i=="object"&&i.RTCPeerConnection&&!("ontrack"in i.RTCPeerConnection.prototype)){Object.defineProperty(i.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(t){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=t)},enumerable:!0,configurable:!0});const e=i.RTCPeerConnection.prototype.setRemoteDescription;i.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=r=>{r.stream.addEventListener("addtrack",n=>{let s;i.RTCPeerConnection.prototype.getReceivers?s=this.getReceivers().find(o=>o.track&&o.track.id===n.track.id):s={track:n.track};const a=new Event("track");a.track=n.track,a.receiver=s,a.transceiver={receiver:s},a.streams=[r.stream],this.dispatchEvent(a)}),r.stream.getTracks().forEach(n=>{let s;i.RTCPeerConnection.prototype.getReceivers?s=this.getReceivers().find(o=>o.track&&o.track.id===n.id):s={track:n};const a=new Event("track");a.track=n,a.receiver=s,a.transceiver={receiver:s},a.streams=[r.stream],this.dispatchEvent(a)})},this.addEventListener("addstream",this._ontrackpoly)),e.apply(this,arguments)}}else Et(i,"track",e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e))}function zc(i){if(typeof i=="object"&&i.RTCPeerConnection&&!("getSenders"in i.RTCPeerConnection.prototype)&&"createDTMFSender"in i.RTCPeerConnection.prototype){const e=function(n,s){return{track:s,get dtmf(){return this._dtmf===void 0&&(s.kind==="audio"?this._dtmf=n.createDTMFSender(s):this._dtmf=null),this._dtmf},_pc:n}};if(!i.RTCPeerConnection.prototype.getSenders){i.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};const n=i.RTCPeerConnection.prototype.addTrack;i.RTCPeerConnection.prototype.addTrack=function(o,d){let c=n.apply(this,arguments);return c||(c=e(this,o),this._senders.push(c)),c};const s=i.RTCPeerConnection.prototype.removeTrack;i.RTCPeerConnection.prototype.removeTrack=function(o){s.apply(this,arguments);const d=this._senders.indexOf(o);d!==-1&&this._senders.splice(d,1)}}const t=i.RTCPeerConnection.prototype.addStream;i.RTCPeerConnection.prototype.addStream=function(s){this._senders=this._senders||[],t.apply(this,[s]),s.getTracks().forEach(a=>{this._senders.push(e(this,a))})};const r=i.RTCPeerConnection.prototype.removeStream;i.RTCPeerConnection.prototype.removeStream=function(s){this._senders=this._senders||[],r.apply(this,[s]),s.getTracks().forEach(a=>{const o=this._senders.find(d=>d.track===a);o&&this._senders.splice(this._senders.indexOf(o),1)})}}else if(typeof i=="object"&&i.RTCPeerConnection&&"getSenders"in i.RTCPeerConnection.prototype&&"createDTMFSender"in i.RTCPeerConnection.prototype&&i.RTCRtpSender&&!("dtmf"in i.RTCRtpSender.prototype)){const e=i.RTCPeerConnection.prototype.getSenders;i.RTCPeerConnection.prototype.getSenders=function(){const r=e.apply(this,[]);return r.forEach(n=>n._pc=this),r},Object.defineProperty(i.RTCRtpSender.prototype,"dtmf",{get(){return this._dtmf===void 0&&(this.track.kind==="audio"?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function Ac(i){if(!(typeof i=="object"&&i.RTCPeerConnection&&i.RTCRtpSender&&i.RTCRtpReceiver))return;if(!("getStats"in i.RTCRtpSender.prototype)){const t=i.RTCPeerConnection.prototype.getSenders;t&&(i.RTCPeerConnection.prototype.getSenders=function(){const s=t.apply(this,[]);return s.forEach(a=>a._pc=this),s});const r=i.RTCPeerConnection.prototype.addTrack;r&&(i.RTCPeerConnection.prototype.addTrack=function(){const s=r.apply(this,arguments);return s._pc=this,s}),i.RTCRtpSender.prototype.getStats=function(){const s=this;return this._pc.getStats().then(a=>Ec(a,s.track,!0))}}if(!("getStats"in i.RTCRtpReceiver.prototype)){const t=i.RTCPeerConnection.prototype.getReceivers;t&&(i.RTCPeerConnection.prototype.getReceivers=function(){const n=t.apply(this,[]);return n.forEach(s=>s._pc=this),n}),Et(i,"track",r=>(r.receiver._pc=r.srcElement,r)),i.RTCRtpReceiver.prototype.getStats=function(){const n=this;return this._pc.getStats().then(s=>Ec(s,n.track,!1))}}if(!("getStats"in i.RTCRtpSender.prototype&&"getStats"in i.RTCRtpReceiver.prototype))return;const e=i.RTCPeerConnection.prototype.getStats;i.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof i.MediaStreamTrack){const r=arguments[0];let n,s,a;return this.getSenders().forEach(o=>{o.track===r&&(n?a=!0:n=o)}),this.getReceivers().forEach(o=>(o.track===r&&(s?a=!0:s=o),o.track===r)),a||n&&s?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):n?n.getStats():s?s.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return e.apply(this,arguments)}}function Rc(i){i.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(a=>this._shimmedLocalStreams[a][0])};const e=i.RTCPeerConnection.prototype.addTrack;i.RTCPeerConnection.prototype.addTrack=function(a,o){if(!o)return e.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};const d=e.apply(this,arguments);return this._shimmedLocalStreams[o.id]?this._shimmedLocalStreams[o.id].indexOf(d)===-1&&this._shimmedLocalStreams[o.id].push(d):this._shimmedLocalStreams[o.id]=[o,d],d};const t=i.RTCPeerConnection.prototype.addStream;i.RTCPeerConnection.prototype.addStream=function(a){this._shimmedLocalStreams=this._shimmedLocalStreams||{},a.getTracks().forEach(c=>{if(this.getSenders().find(l=>l.track===c))throw new DOMException("Track already exists.","InvalidAccessError")});const o=this.getSenders();t.apply(this,arguments);const d=this.getSenders().filter(c=>o.indexOf(c)===-1);this._shimmedLocalStreams[a.id]=[a].concat(d)};const r=i.RTCPeerConnection.prototype.removeStream;i.RTCPeerConnection.prototype.removeStream=function(a){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[a.id],r.apply(this,arguments)};const n=i.RTCPeerConnection.prototype.removeTrack;i.RTCPeerConnection.prototype.removeTrack=function(a){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},a&&Object.keys(this._shimmedLocalStreams).forEach(o=>{const d=this._shimmedLocalStreams[o].indexOf(a);d!==-1&&this._shimmedLocalStreams[o].splice(d,1),this._shimmedLocalStreams[o].length===1&&delete this._shimmedLocalStreams[o]}),n.apply(this,arguments)}}function Dc(i,e){if(!i.RTCPeerConnection)return;if(i.RTCPeerConnection.prototype.addTrack&&e.version>=65)return Rc(i);const t=i.RTCPeerConnection.prototype.getLocalStreams;i.RTCPeerConnection.prototype.getLocalStreams=function(){const u=t.apply(this);return this._reverseStreams=this._reverseStreams||{},u.map(l=>this._reverseStreams[l.id])};const r=i.RTCPeerConnection.prototype.addStream;i.RTCPeerConnection.prototype.addStream=function(u){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},u.getTracks().forEach(l=>{if(this.getSenders().find(p=>p.track===l))throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[u.id]){const l=new i.MediaStream(u.getTracks());this._streams[u.id]=l,this._reverseStreams[l.id]=u,u=l}r.apply(this,[u])};const n=i.RTCPeerConnection.prototype.removeStream;i.RTCPeerConnection.prototype.removeStream=function(u){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},n.apply(this,[this._streams[u.id]||u]),delete this._reverseStreams[this._streams[u.id]?this._streams[u.id].id:u.id],delete this._streams[u.id]},i.RTCPeerConnection.prototype.addTrack=function(u,l){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");const h=[].slice.call(arguments,1);if(h.length!==1||!h[0].getTracks().find(v=>v===u))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");if(this.getSenders().find(v=>v.track===u))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};const f=this._streams[l.id];if(f)f.addTrack(u),Promise.resolve().then(()=>{this.dispatchEvent(new Event("negotiationneeded"))});else{const v=new i.MediaStream([u]);this._streams[l.id]=v,this._reverseStreams[v.id]=l,this.addStream(v)}return this.getSenders().find(v=>v.track===u)};function s(c,u){let l=u.sdp;return Object.keys(c._reverseStreams||[]).forEach(h=>{const p=c._reverseStreams[h],f=c._streams[p.id];l=l.replace(new RegExp(f.id,"g"),p.id)}),new RTCSessionDescription({type:u.type,sdp:l})}function a(c,u){let l=u.sdp;return Object.keys(c._reverseStreams||[]).forEach(h=>{const p=c._reverseStreams[h],f=c._streams[p.id];l=l.replace(new RegExp(p.id,"g"),f.id)}),new RTCSessionDescription({type:u.type,sdp:l})}["createOffer","createAnswer"].forEach(function(c){const u=i.RTCPeerConnection.prototype[c],l={[c](){const h=arguments;return arguments.length&&typeof arguments[0]=="function"?u.apply(this,[f=>{const v=s(this,f);h[0].apply(null,[v])},f=>{h[1]&&h[1].apply(null,f)},arguments[2]]):u.apply(this,arguments).then(f=>s(this,f))}};i.RTCPeerConnection.prototype[c]=l[c]});const o=i.RTCPeerConnection.prototype.setLocalDescription;i.RTCPeerConnection.prototype.setLocalDescription=function(){return!arguments.length||!arguments[0].type?o.apply(this,arguments):(arguments[0]=a(this,arguments[0]),o.apply(this,arguments))};const d=Object.getOwnPropertyDescriptor(i.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(i.RTCPeerConnection.prototype,"localDescription",{get(){const c=d.get.apply(this);return c.type===""?c:s(this,c)}}),i.RTCPeerConnection.prototype.removeTrack=function(u){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!u._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(!(u._pc===this))throw new DOMException("Sender was not created by this connection.","InvalidAccessError");this._streams=this._streams||{};let h;Object.keys(this._streams).forEach(p=>{this._streams[p].getTracks().find(v=>u.track===v)&&(h=this._streams[p])}),h&&(h.getTracks().length===1?this.removeStream(this._reverseStreams[h.id]):h.removeTrack(u.track),this.dispatchEvent(new Event("negotiationneeded")))}}function Yn(i,e){!i.RTCPeerConnection&&i.webkitRTCPeerConnection&&(i.RTCPeerConnection=i.webkitRTCPeerConnection),i.RTCPeerConnection&&e.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(t){const r=i.RTCPeerConnection.prototype[t],n={[t](){return arguments[0]=new(t==="addIceCandidate"?i.RTCIceCandidate:i.RTCSessionDescription)(arguments[0]),r.apply(this,arguments)}};i.RTCPeerConnection.prototype[t]=n[t]})}function xc(i,e){Et(i,"negotiationneeded",t=>{const r=t.target;if(!((e.version<72||r.getConfiguration&&r.getConfiguration().sdpSemantics==="plan-b")&&r.signalingState!=="stable"))return t})}const Ic=Object.freeze(Object.defineProperty({__proto__:null,fixNegotiationNeeded:xc,shimAddTrackRemoveTrack:Dc,shimAddTrackRemoveTrackWithNative:Rc,shimGetSendersWithDtmf:zc,shimGetUserMedia:Cc,shimMediaStream:kc,shimOnTrack:Tc,shimPeerConnection:Yn,shimSenderReceiverGetStats:Ac},Symbol.toStringTag,{value:"Module"}));function Oc(i,e){const t=i&&i.navigator,r=i&&i.MediaStreamTrack;if(t.getUserMedia=function(n,s,a){Zn("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),t.mediaDevices.getUserMedia(n).then(s,a)},!(e.version>55&&"autoGainControl"in t.mediaDevices.getSupportedConstraints())){const n=function(a,o,d){o in a&&!(d in a)&&(a[d]=a[o],delete a[o])},s=t.mediaDevices.getUserMedia.bind(t.mediaDevices);if(t.mediaDevices.getUserMedia=function(a){return typeof a=="object"&&typeof a.audio=="object"&&(a=JSON.parse(JSON.stringify(a)),n(a.audio,"autoGainControl","mozAutoGainControl"),n(a.audio,"noiseSuppression","mozNoiseSuppression")),s(a)},r&&r.prototype.getSettings){const a=r.prototype.getSettings;r.prototype.getSettings=function(){const o=a.apply(this,arguments);return n(o,"mozAutoGainControl","autoGainControl"),n(o,"mozNoiseSuppression","noiseSuppression"),o}}if(r&&r.prototype.applyConstraints){const a=r.prototype.applyConstraints;r.prototype.applyConstraints=function(o){return this.kind==="audio"&&typeof o=="object"&&(o=JSON.parse(JSON.stringify(o)),n(o,"autoGainControl","mozAutoGainControl"),n(o,"noiseSuppression","mozNoiseSuppression")),a.apply(this,[o])}}}}function Ov(i,e){i.navigator.mediaDevices&&"getDisplayMedia"in i.navigator.mediaDevices||i.navigator.mediaDevices&&(i.navigator.mediaDevices.getDisplayMedia=function(r){if(!(r&&r.video)){const n=new DOMException("getDisplayMedia without video constraints is undefined");return n.name="NotFoundError",n.code=8,Promise.reject(n)}return r.video===!0?r.video={mediaSource:e}:r.video.mediaSource=e,i.navigator.mediaDevices.getUserMedia(r)})}function Mc(i){typeof i=="object"&&i.RTCTrackEvent&&"receiver"in i.RTCTrackEvent.prototype&&!("transceiver"in i.RTCTrackEvent.prototype)&&Object.defineProperty(i.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function es(i,e){if(typeof i!="object"||!(i.RTCPeerConnection||i.mozRTCPeerConnection))return;!i.RTCPeerConnection&&i.mozRTCPeerConnection&&(i.RTCPeerConnection=i.mozRTCPeerConnection),e.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(n){const s=i.RTCPeerConnection.prototype[n],a={[n](){return arguments[0]=new(n==="addIceCandidate"?i.RTCIceCandidate:i.RTCSessionDescription)(arguments[0]),s.apply(this,arguments)}};i.RTCPeerConnection.prototype[n]=a[n]});const t={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},r=i.RTCPeerConnection.prototype.getStats;i.RTCPeerConnection.prototype.getStats=function(){const[s,a,o]=arguments;return r.apply(this,[s||null]).then(d=>{if(e.version<53&&!a)try{d.forEach(c=>{c.type=t[c.type]||c.type})}catch(c){if(c.name!=="TypeError")throw c;d.forEach((u,l)=>{d.set(l,Object.assign({},u,{type:t[u.type]||u.type}))})}return d}).then(a,o)}}function Pc(i){if(!(typeof i=="object"&&i.RTCPeerConnection&&i.RTCRtpSender)||i.RTCRtpSender&&"getStats"in i.RTCRtpSender.prototype)return;const e=i.RTCPeerConnection.prototype.getSenders;e&&(i.RTCPeerConnection.prototype.getSenders=function(){const n=e.apply(this,[]);return n.forEach(s=>s._pc=this),n});const t=i.RTCPeerConnection.prototype.addTrack;t&&(i.RTCPeerConnection.prototype.addTrack=function(){const n=t.apply(this,arguments);return n._pc=this,n}),i.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}}function Lc(i){if(!(typeof i=="object"&&i.RTCPeerConnection&&i.RTCRtpSender)||i.RTCRtpSender&&"getStats"in i.RTCRtpReceiver.prototype)return;const e=i.RTCPeerConnection.prototype.getReceivers;e&&(i.RTCPeerConnection.prototype.getReceivers=function(){const r=e.apply(this,[]);return r.forEach(n=>n._pc=this),r}),Et(i,"track",t=>(t.receiver._pc=t.srcElement,t)),i.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function Uc(i){!i.RTCPeerConnection||"removeStream"in i.RTCPeerConnection.prototype||(i.RTCPeerConnection.prototype.removeStream=function(t){Zn("removeStream","removeTrack"),this.getSenders().forEach(r=>{r.track&&t.getTracks().includes(r.track)&&this.removeTrack(r)})})}function Gc(i){i.DataChannel&&!i.RTCDataChannel&&(i.RTCDataChannel=i.DataChannel)}function Nc(i){if(!(typeof i=="object"&&i.RTCPeerConnection))return;const e=i.RTCPeerConnection.prototype.addTransceiver;e&&(i.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let r=arguments[1]&&arguments[1].sendEncodings;r===void 0&&(r=[]),r=[...r];const n=r.length>0;n&&r.forEach(a=>{if("rid"in a&&!/^[a-z0-9]{0,16}$/i.test(a.rid))throw new TypeError("Invalid RID value provided.");if("scaleResolutionDownBy"in a&&!(parseFloat(a.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in a&&!(parseFloat(a.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")});const s=e.apply(this,arguments);if(n){const{sender:a}=s,o=a.getParameters();(!("encodings"in o)||o.encodings.length===1&&Object.keys(o.encodings[0]).length===0)&&(o.encodings=r,a.sendEncodings=r,this.setParametersPromises.push(a.setParameters(o).then(()=>{delete a.sendEncodings}).catch(()=>{delete a.sendEncodings})))}return s})}function Bc(i){if(!(typeof i=="object"&&i.RTCRtpSender))return;const e=i.RTCRtpSender.prototype.getParameters;e&&(i.RTCRtpSender.prototype.getParameters=function(){const r=e.apply(this,arguments);return"encodings"in r||(r.encodings=[].concat(this.sendEncodings||[{}])),r})}function Vc(i){if(!(typeof i=="object"&&i.RTCPeerConnection))return;const e=i.RTCPeerConnection.prototype.createOffer;i.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>e.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):e.apply(this,arguments)}}function Fc(i){if(!(typeof i=="object"&&i.RTCPeerConnection))return;const e=i.RTCPeerConnection.prototype.createAnswer;i.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>e.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):e.apply(this,arguments)}}const jc=Object.freeze(Object.defineProperty({__proto__:null,shimAddTransceiver:Nc,shimCreateAnswer:Fc,shimCreateOffer:Vc,shimGetDisplayMedia:Ov,shimGetParameters:Bc,shimGetUserMedia:Oc,shimOnTrack:Mc,shimPeerConnection:es,shimRTCDataChannel:Gc,shimReceiverGetStats:Lc,shimRemoveStream:Uc,shimSenderGetStats:Pc},Symbol.toStringTag,{value:"Module"}));function Hc(i){if(!(typeof i!="object"||!i.RTCPeerConnection)){if("getLocalStreams"in i.RTCPeerConnection.prototype||(i.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in i.RTCPeerConnection.prototype)){const e=i.RTCPeerConnection.prototype.addTrack;i.RTCPeerConnection.prototype.addStream=function(r){this._localStreams||(this._localStreams=[]),this._localStreams.includes(r)||this._localStreams.push(r),r.getAudioTracks().forEach(n=>e.call(this,n,r)),r.getVideoTracks().forEach(n=>e.call(this,n,r))},i.RTCPeerConnection.prototype.addTrack=function(r,...n){return n&&n.forEach(s=>{this._localStreams?this._localStreams.includes(s)||this._localStreams.push(s):this._localStreams=[s]}),e.apply(this,arguments)}}"removeStream"in i.RTCPeerConnection.prototype||(i.RTCPeerConnection.prototype.removeStream=function(t){this._localStreams||(this._localStreams=[]);const r=this._localStreams.indexOf(t);if(r===-1)return;this._localStreams.splice(r,1);const n=t.getTracks();this.getSenders().forEach(s=>{n.includes(s.track)&&this.removeTrack(s)})})}}function $c(i){if(!(typeof i!="object"||!i.RTCPeerConnection)&&("getRemoteStreams"in i.RTCPeerConnection.prototype||(i.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in i.RTCPeerConnection.prototype))){Object.defineProperty(i.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(t){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=t),this.addEventListener("track",this._onaddstreampoly=r=>{r.streams.forEach(n=>{if(this._remoteStreams||(this._remoteStreams=[]),this._remoteStreams.includes(n))return;this._remoteStreams.push(n);const s=new Event("addstream");s.stream=n,this.dispatchEvent(s)})})}});const e=i.RTCPeerConnection.prototype.setRemoteDescription;i.RTCPeerConnection.prototype.setRemoteDescription=function(){const r=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(n){n.streams.forEach(s=>{if(r._remoteStreams||(r._remoteStreams=[]),r._remoteStreams.indexOf(s)>=0)return;r._remoteStreams.push(s);const a=new Event("addstream");a.stream=s,r.dispatchEvent(a)})}),e.apply(r,arguments)}}}function qc(i){if(typeof i!="object"||!i.RTCPeerConnection)return;const e=i.RTCPeerConnection.prototype,t=e.createOffer,r=e.createAnswer,n=e.setLocalDescription,s=e.setRemoteDescription,a=e.addIceCandidate;e.createOffer=function(c,u){const l=arguments.length>=2?arguments[2]:arguments[0],h=t.apply(this,[l]);return u?(h.then(c,u),Promise.resolve()):h},e.createAnswer=function(c,u){const l=arguments.length>=2?arguments[2]:arguments[0],h=r.apply(this,[l]);return u?(h.then(c,u),Promise.resolve()):h};let o=function(d,c,u){const l=n.apply(this,[d]);return u?(l.then(c,u),Promise.resolve()):l};e.setLocalDescription=o,o=function(d,c,u){const l=s.apply(this,[d]);return u?(l.then(c,u),Promise.resolve()):l},e.setRemoteDescription=o,o=function(d,c,u){const l=a.apply(this,[d]);return u?(l.then(c,u),Promise.resolve()):l},e.addIceCandidate=o}function Kc(i){const e=i&&i.navigator;if(e.mediaDevices&&e.mediaDevices.getUserMedia){const t=e.mediaDevices,r=t.getUserMedia.bind(t);e.mediaDevices.getUserMedia=n=>r(Wc(n))}!e.getUserMedia&&e.mediaDevices&&e.mediaDevices.getUserMedia&&(e.getUserMedia=(function(r,n,s){e.mediaDevices.getUserMedia(r).then(n,s)}).bind(e))}function Wc(i){return i&&i.video!==void 0?Object.assign({},i,{video:Sc(i.video)}):i}function Jc(i){if(!i.RTCPeerConnection)return;const e=i.RTCPeerConnection;i.RTCPeerConnection=function(r,n){if(r&&r.iceServers){const s=[];for(let a=0;a<r.iceServers.length;a++){let o=r.iceServers[a];o.urls===void 0&&o.url?(Zn("RTCIceServer.url","RTCIceServer.urls"),o=JSON.parse(JSON.stringify(o)),o.urls=o.url,delete o.url,s.push(o)):s.push(r.iceServers[a])}r.iceServers=s}return new e(r,n)},i.RTCPeerConnection.prototype=e.prototype,"generateCertificate"in e&&Object.defineProperty(i.RTCPeerConnection,"generateCertificate",{get(){return e.generateCertificate}})}function Xc(i){typeof i=="object"&&i.RTCTrackEvent&&"receiver"in i.RTCTrackEvent.prototype&&!("transceiver"in i.RTCTrackEvent.prototype)&&Object.defineProperty(i.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function Zc(i){const e=i.RTCPeerConnection.prototype.createOffer;i.RTCPeerConnection.prototype.createOffer=function(r){if(r){typeof r.offerToReceiveAudio<"u"&&(r.offerToReceiveAudio=!!r.offerToReceiveAudio);const n=this.getTransceivers().find(a=>a.receiver.track.kind==="audio");r.offerToReceiveAudio===!1&&n?n.direction==="sendrecv"?n.setDirection?n.setDirection("sendonly"):n.direction="sendonly":n.direction==="recvonly"&&(n.setDirection?n.setDirection("inactive"):n.direction="inactive"):r.offerToReceiveAudio===!0&&!n&&this.addTransceiver("audio",{direction:"recvonly"}),typeof r.offerToReceiveVideo<"u"&&(r.offerToReceiveVideo=!!r.offerToReceiveVideo);const s=this.getTransceivers().find(a=>a.receiver.track.kind==="video");r.offerToReceiveVideo===!1&&s?s.direction==="sendrecv"?s.setDirection?s.setDirection("sendonly"):s.direction="sendonly":s.direction==="recvonly"&&(s.setDirection?s.setDirection("inactive"):s.direction="inactive"):r.offerToReceiveVideo===!0&&!s&&this.addTransceiver("video",{direction:"recvonly"})}return e.apply(this,arguments)}}function Qc(i){typeof i!="object"||i.AudioContext||(i.AudioContext=i.webkitAudioContext)}const Yc=Object.freeze(Object.defineProperty({__proto__:null,shimAudioContext:Qc,shimCallbacksAPI:qc,shimConstraints:Wc,shimCreateOfferLegacy:Zc,shimGetUserMedia:Kc,shimLocalStreamsAPI:Hc,shimRTCIceServerUrls:Jc,shimRemoteStreamsAPI:$c,shimTrackEventTransceiver:Xc},Symbol.toStringTag,{value:"Module"}));var ts={exports:{}},eu;function Mv(){return eu||(eu=1,function(i){const e={};e.generateIdentifier=function(){return Math.random().toString(36).substring(2,12)},e.localCName=e.generateIdentifier(),e.splitLines=function(t){return t.trim().split(`
79
+ }`)),e.appendChild(t);var r=document.createElement("div");r.innerHTML='<div id="debugger-applog-web" class="debugger-applog-web"></div>';var n=document.createElement("div");n.innerHTML='<div id="debugger-container" class="debugger-container"></div>',document.getElementsByTagName("body")[0].appendChild(r),document.getElementsByTagName("body")[0].appendChild(n),document.getElementById("debugger-applog-web").addEventListener("click",function(){(window.opener||window.parent).postMessage({type:"devtool:web:open-draw"},location.origin)})},i}(),$n={autotrack:{src:{cn:"https://lf3-cdn-tos.bytescm.com/obj/static/log-sdk/collect/5.0/plugin/autotrack.js",sg:"https://sf16-scmcdn-sg.ibytedtos.com/obj/static-sg/log-sdk/collect/5.0/plugin/autotrack.js",va:"https://sf16-scmcdn-va.ibytedtos.com/obj/static-us/log-sdk/collect/5.0/plugin/autotrack.js"},object:"LogAutoTrack"},ab:{src:{cn:"https://lf3-cdn-tos.bytescm.com/obj/static/log-sdk/collect/5.0/plugin/ab.js",sg:"https://sf16-scmcdn-sg.ibytedtos.com/obj/static-sg/log-sdk/collect/5.0/plugin/ab.js",va:"https://sf16-scmcdn-va.ibytedtos.com/obj/static-us/log-sdk/collect/5.0/plugin/ab.js"},object:"LogAb"},stay:{src:{cn:"https://lf3-cdn-tos.bytescm.com/obj/static/log-sdk/collect/5.0/plugin/stay.js",sg:"https://sf16-scmcdn-sg.ibytedtos.com/obj/static-sg/log-sdk/collect/5.0/plugin/stay.js",va:"https://sf16-scmcdn-va.ibytedtos.com/obj/static-us/log-sdk/collect/5.0/plugin/stay.js"},object:"LogStay"},route:{src:{cn:"https://lf3-cdn-tos.bytescm.com/obj/static/log-sdk/collect/5.0/plugin/route.js",sg:"https://sf16-scmcdn-sg.ibytedtos.com/obj/static-sg/log-sdk/collect/5.0/plugin/route.js",va:"https://sf16-scmcdn-va.ibytedtos.com/obj/static-us/log-sdk/collect/5.0/plugin/route.js"},object:"LogRoute"},cep:{src:{cn:"https://lf3-cdn-tos.bytescm.com/obj/static/log-sdk/collect/5.0/plugin/cep.js",sg:"https://sf16-scmcdn-sg.ibytedtos.com/obj/static-sg/log-sdk/collect/5.0/plugin/cep.js",va:"https://sf16-scmcdn-va.ibytedtos.com/obj/static-us/log-sdk/collect/5.0/plugin/cep.js"},object:"LogCep"},tracer:{src:{cn:"https://lf3-cdn-tos.bytescm.com/obj/static/log-sdk/collect/5.0/plugin/tracer.js",sg:"https://sf16-scmcdn-sg.ibytedtos.com/obj/static-sg/log-sdk/collect/5.0/plugin/tracer.js",va:"https://sf16-scmcdn-va.ibytedtos.com/obj/static-us/log-sdk/collect/5.0/plugin/tracer.js"},object:"LogTracer"},retry:{src:{cn:"https://lf3-cdn-tos.bytescm.com/obj/static/log-sdk/collect/5.0/plugin/retry.js",sg:"https://sf16-scmcdn-sg.ibytedtos.com/obj/static-sg/log-sdk/collect/5.0/plugin/retry.js",va:"https://sf16-scmcdn-va.ibytedtos.com/obj/static-us/log-sdk/collect/5.0/plugin/retry.js"},object:"LogRetry"},visual:{src:{cn:"https://lf3-cdn-tos.bytescm.com/obj/static/log-sdk/collect/5.0/plugin/visual.js",sg:"https://sf16-scmcdn-sg.ibytedtos.com/obj/static-sg/log-sdk/collect/5.0/plugin/visual.js",va:"https://sf16-scmcdn-va.ibytedtos.com/obj/static-us/log-sdk/collect/5.0/plugin/visual.js"},object:"LogVisual"}},Yg=["et","profile","heartbeat","monitor"],St=function(){function i(e){this.disableAutoPageView=!1,this.bridgeReport=!1,this.staging=!1,this.pluginInstances=[],this.sended=!1,this.started=!1,this.destroy=!1,this.sdkReady=!1,this.adapters={},this.loadType="base",this.sdkStop=!1,this.name=e,this.hook=new Ig,this.remotePlugin=new Map,this.Types=C,this.adapters.storage=Ke}return i.usePlugin=function(e,t,r){if(t){for(var n=!1,s=0,a=i.plugins.length;s<a;s++)if(i.plugins[s].name===t){i.plugins[s].plugin=e,i.plugins[s].options=r||{},n=!0;break}n||i.plugins.push({name:t,plugin:e,options:r})}else i.plugins.push({plugin:e})},i.prototype.usePlugin=function(e,t,r){e&&(this.loadType==="full"&&Yg.includes(e)?console.info("your sdk version has "+e+" plugin already ~"):t?typeof t=="string"?this.remotePlugin.get(e)||this.remotePlugin.set(e,{src:t,call:r}):this.remotePlugin.get(e)||this.remotePlugin.set(e,{instance:t}):this.remotePlugin.get(e)||this.remotePlugin.set(e,"sdk"))},i.prototype.init=function(e){var t,r=this;this.logger=new Hg(this.name,e.log),this.inited?this.logger.warn("[instance: "+this.name+"], every instance's api: init, can be call only one time!"):e&&rc(e)?e.app_id&&typeof(t=e.app_id)=="number"&&!isNaN(t)?!e.app_key||function(n){return typeof n=="string"}(e.app_key)?(e.channel_domain||["cn","sg","va"].indexOf(e.channel)!==-1||(this.logger.warn("channel must be `cn`, `sg`,`va` !"),e.channel="cn"),this.spider=new $g,this.spider.checkSpider(e)?this.logger.warn("your env may be a spider, can not report!"):(this.appBridge=new qg(this,e.enable_native),this.requestManager=new Zg(this,e),this.bridgeReport=this.appBridge.bridgeInject(),this.configManager=new jg(this,e),this.debugger=new Qg(this,e),this.initConfig=e,this.emit(C.Init),this.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"SDK 执行INIT",data:e,level:"info",time:Date.now()}),this.destroy=!1,e.disable_auto_pv&&(this.disableAutoPageView=!0),this.bridgeReport||(this.configManager.set({app_id:e.app_id}),this.eventManager=new Wg,this.tokenManager=new Jg,this.sessionManager=new Kg,Promise.all([new Promise(function(n){r.once(C.TokenComplete,function(){n(!0)})}),new Promise(function(n){r.once(C.Start,function(){n(!0)})})]).then(function(){try{i.plugins.reduce(function(n,s){var a=s.plugin,o=s.options,d=Object.assign(r.initConfig,o),c=new a;return c.apply(r,d),n.push(c),n},r.pluginInstances)}catch(n){console.warn("load plugin error, "+n.message),r.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:n.message})}r.sdkReady=!0,r.emit(C.Ready),r.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"SDK 初始化完成",time:Date.now(),level:"info",data:r.configManager.get("user")}),r.logger.info("appid: "+e.app_id+", userInfo:"+JSON.stringify(r.configManager.get("user"))),r.logger.info("appid: "+e.app_id+", sdk is ready, version type is "+r.loadType+", version is "+ki+", you can report now !!!"),e.disable_auto_pv&&(r.disableAutoPageView=!0);try{r.loadType==="full"&&(e.enable_ab_test||e.autotrack)&&(window.opener||window.parent).postMessage("[tea-sdk]ready","*")}catch(n){r.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:n.message})}r.pageView(),r.on(C.TokenChange,function(n){n==="webid"&&r.pageView(),r.logger.info("appid: "+e.app_id+" token change, new userInfo:"+JSON.stringify(r.configManager.get("user"))),r.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"SDK 设置了用户信息",time:Date.now(),secType:"USER",level:"info",data:r.configManager.get("user")})}),r.on(C.TokenReset,function(){r.logger.info("appid: "+e.app_id+" token reset, new userInfo:"+JSON.stringify(r.configManager.get("user"))),r.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"SDK 重置了用户信息",time:Date.now(),secType:"USER",level:"info",data:r.configManager.get("user")})}),r.on(C.RouteChange,function(n){n.init||e.disable_route_report||r.pageView()})}),this.tokenManager.apply(this,e),this.eventManager.apply(this,e),this.sessionManager.apply(this,e)),this.inited=!0)):this.logger.warn("app_key param is error, must be string, please check!"):this.logger.warn("app_id param is error, must be number, please check!"):this.logger.warn("init params error,please check!")},i.prototype.config=function(e){if(this.inited)if(e&&rc(e))if(this.bridgeReport)this.appBridge.setConfig(e);else{e._staging_flag&&e._staging_flag===1&&(this.staging=!0),e.disable_auto_pv&&(this.disableAutoPageView=!0,delete e.disable_auto_pv);var t=we({},e),r=this.initConfig.configPersist||this.initConfig.config_persist||!1;if(this.initConfig&&r){var n=this.configManager.getStore();n&&(t=Object.assign(n,e)),this.configManager.setStore(e)}t.web_id,t.user_unique_id;var s=function(a,o){var d={};for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&o.indexOf(c)<0&&(d[c]=a[c]);if(a!=null&&typeof Object.getOwnPropertySymbols=="function"){var u=0;for(c=Object.getOwnPropertySymbols(a);u<c.length;u++)o.indexOf(c[u])<0&&(d[c[u]]=a[c[u]])}return d}(t,["web_id","user_unique_id"]);this.configManager.set(s),t.hasOwnProperty("web_id")&&this.emit(C.ConfigWebId,t.web_id),t.hasOwnProperty("user_unique_id")&&this.emit(C.ConfigUuid,t.user_unique_id),this.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"SDK 执行CONFIG",level:"info",time:Date.now(),data:t})}else console.warn("config params is error, please check");else console.warn("config must be use after function init")},i.prototype.setUserUniqueID=function(e){this.config({user_unique_id:e})},i.prototype.setHeaderInfo=function(e,t){var r={};r[e]=t,this.config(r)},i.prototype.removeHeaderInfo=function(e){var t={};t[e]=void 0,this.config(t)},i.prototype.setDomain=function(e){this.configManager&&this.configManager.setDomain(e),this.emit(C.ConfigDomain)},i.prototype.getConfig=function(e){return this.configManager.get(e)},i.prototype.send=function(){this.start()},i.prototype.start=function(){this.inited&&!this.sended&&(this.sended=!0,this.started=!0,this.emit(C.Start),this.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"SDK 执行START",level:"info",time:Date.now()}),this.bridgeReport&&(this.pageView(),this.emit(C.Ready)))},i.prototype.event=function(e,t){var r=this;try{var n=[];if(Array.isArray(e))e.forEach(function(a){var o=r.processEvent(a[0],a[1]||{});o&&n.push(o)});else{var s=this.processEvent(e,t);if(!s)return;n.push(s)}this.bridgeReport?n.forEach(function(a){var o=a.event,d=a.params;r.appBridge.onEventV3(o,JSON.stringify(d))}):n.length&&(this.emit(C.Event,n),this.emit(C.SessionResetTime))}catch(a){this.logger.warn("something error, please check"),this.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:a.message})}},i.prototype.beconEvent=function(e,t){if(Array.isArray(e))console.warn("beconEvent not support batch report, please check");else{var r=[],n=this.processEvent(e,t||{});n&&(r.push(n),r.length&&(this.emit(C.BeconEvent,r),this.emit(C.SessionResetTime)))}},i.prototype.beaconEvent=function(e,t){this.beconEvent(e,t)},i.prototype.processEvent=function(e,t){t===void 0&&(t={});try{if(!e)return console.warn("eventName is null, please check"),null;var r=e;/^event\./.test(e)&&(r=e.slice(6));var n=t;typeof n!="object"&&(n={}),n.profile?delete n.profile:n.event_index=Og();var s=void 0;return n.local_ms?(s=n.local_ms,delete n.local_ms):s=+new Date,{event:r,params:n,local_time_ms:s,is_bav:this.initConfig&&this.initConfig.autotrack?1:0}}catch(a){return this.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:a.message}),{event:e,params:t}}},i.prototype.filterEvent=function(e){this.eventFilter=e},i.prototype.on=function(e,t){this.hook.on(e,t)},i.prototype.once=function(e,t){this.hook.once(e,t)},i.prototype.off=function(e,t){this.hook.off(e,t)},i.prototype.emit=function(e,t,r){this.hook.emit(e,t,r)},i.prototype.set=function(e){this.hook.set(e)},i.prototype.stop=function(){this.sdkStop=!0},i.prototype.reStart=function(){this.sdkStop=!1},i.prototype.pageView=function(){this.disableAutoPageView||this.predefinePageView()},i.prototype.predefinePageView=function(e){if(e===void 0&&(e={}),this.inited){var t={title:document.title||location.pathname,url:location.href,url_path:location.pathname,time:Date.now(),referrer:window.document.referrer,$is_first_time:""+(this.configManager&&this.configManager.is_first_time||!1)},r=we({},t,e);this.event("predefine_pageview",r)}else console.warn("predefinePageView must be use after function init")},i.prototype.clearEventCache=function(){this.emit(C.CleanEvents)},i.prototype.setWebIDviaUnionID=function(e){if(e){var t=sc(e);this.config({web_id:""+t,wechat_unionid:e}),this.emit(C.CustomWebId)}},i.prototype.setWebId=function(e){this.config({web_id:""+e})},i.prototype.setWebIDviaOpenID=function(e){if(e){var t=sc(e);this.config({web_id:""+t,wechat_openid:e}),this.emit(C.CustomWebId)}},i.prototype.setNativeAppId=function(e){this.bridgeReport&&this.appBridge.setNativeAppId(e)},i.prototype.getSessionId=function(){return Nt()},i.prototype.setSessionId=function(e){this.emit(C.SessionReset,e)},i.prototype.resetStayDuration=function(e,t,r){this.emit(C.ResetStay,{url_path:e,title:t,url:r},C.Stay)},i.prototype.resetStayParams=function(e,t,r){e===void 0&&(e=""),t===void 0&&(t=""),r===void 0&&(r=""),this.emit(C.SetStay,{url_path:e,title:t,url:r},C.Stay)},i.prototype.getToken=function(e,t){var r=this;if(this.inited){var n=!1,s=function(o){if(!n){n=!0;var d=r.configManager.get().user;return o&&(d.tobid=o,d["diss".split("").reverse().join("")]=o),e(we({},d))}},a=function(){r.tokenManager.getTobId().then(function(o){s(o)})};this.sdkReady?a():(t&&setTimeout(function(){s()},t),this.on(C.Ready,function(){a()}))}else console.warn("getToken must be use after function init")},i.prototype.profileSet=function(e){this.bridgeReport?this.appBridge.profileSet(JSON.stringify(e)):this.emit(C.ProfileSet,e,C.Profile),this.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"SDK 执行profileSet",level:"info",time:Date.now(),data:e})},i.prototype.profileSetOnce=function(e){this.bridgeReport?this.appBridge.profileSetOnce(JSON.stringify(e)):this.emit(C.ProfileSetOnce,e,C.Profile),this.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"SDK 执行profileSetOnce",level:"info",time:Date.now(),data:e})},i.prototype.profileIncrement=function(e){this.bridgeReport?this.appBridge.profileIncrement(JSON.stringify(e)):this.emit(C.ProfileIncrement,e,C.Profile),this.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"SDK 执行profileIncrement",level:"info",time:Date.now(),data:e})},i.prototype.profileUnset=function(e){this.bridgeReport?this.appBridge.profileUnset(e):this.emit(C.ProfileUnset,e,C.Profile),this.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"SDK 执行profileUnset",level:"info",time:Date.now(),data:e})},i.prototype.profileAppend=function(e){this.bridgeReport?this.appBridge.profileAppend(JSON.stringify(e)):this.emit(C.ProfileAppend,e,C.Profile),this.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"SDK 执行profileAppend",level:"info",time:Date.now(),data:e})},i.prototype.setExternalAbVersion=function(e){this.emit(C.AbExternalVersion,typeof e=="string"&&e?(""+e).trim():null,C.Ab)},i.prototype.getVar=function(e,t,r){this.emit(C.AbVar,{name:e,defaultValue:t,callback:r},C.Ab)},i.prototype.getABconfig=function(e,t){this.emit(C.AbConfig,{params:e,callback:t},C.Ab)},i.prototype.getAbSdkVersion=function(){return this.configManager.getAbVersion()},i.prototype.onAbSdkVersionChange=function(e){var t=this;return this.emit(C.AbVersionChangeOn,e,C.Ab),function(){t.emit(C.AbVersionChangeOff,e,C.Ab)}},i.prototype.offAbSdkVersionChange=function(e){this.emit(C.AbVersionChangeOff,e,C.Ab)},i.prototype.openOverlayer=function(){this.emit(C.AbOpenLayer,"",C.Ab)},i.prototype.closeOverlayer=function(){this.emit(C.AbCloseLayer,"",C.Ab)},i.prototype.getAllVars=function(e){this.emit(C.AbAllVars,e,C.Ab)},i.prototype.destoryInstace=function(){this.destroy||(this.destroy=!0,this.off(C.TokenComplete),this.emit(C.DestoryInstance))},i.prototype.destroyInstance=function(){this.destroy||(this.destroy=!0,this.off(C.TokenComplete),this.emit(C.DestoryInstance))},i.plugins=[],i}(),ev=function(){function i(){}return i.prototype.apply=function(e,t){var r=this;t.event_verify_url&&(typeof t.event_verify_url=="string"?(this.url=t.event_verify_url+"/v1/list_test",e.on(e.Types.SubmitBefore,function(n){e.requestManager.useBeacon({url:r.url,data:n})})):console.log("please use correct et_test url"))},i}(),tv=function(){function i(){}return i.prototype.apply=function(e,t){var r=this;this.collect=e,this.config=t,this.duration=6e4,this.reportUrl=e.configManager.getDomain()+"/profile/list";var n=e.Types;this.eventCheck=new Hn(e,t),this.cache={},this.collect.on(n.ProfileSet,function(s){r.setProfile(s)}),this.collect.on(n.ProfileSetOnce,function(s){r.setOnceProfile(s)}),this.collect.on(n.ProfileUnset,function(s){r.unsetProfile(s)}),this.collect.on(n.ProfileIncrement,function(s){r.incrementProfile(s)}),this.collect.on(n.ProfileAppend,function(s){r.appendProfile(s)}),this.collect.on(n.ProfileClear,function(){r.cache={}}),this.ready(n.Profile)},i.prototype.ready=function(e){var t=this;if(this.collect.set(e),this.collect.hook._hooksCache.hasOwnProperty(e)){var r=this.collect.hook._hooksCache[e];if(!Object.keys(r).length)return;var n=function(a){r[a].length&&r[a].forEach(function(o){t.collect.hook.emit(a,o)})};for(var s in r)n(s)}},i.prototype.report=function(e,t){t===void 0&&(t={});try{if(this.config.disable_track_event)return;var r=[];r.push(this.collect.processEvent(e,t));var n=this.collect.eventManager.merge(r);this.collect.requestManager.useRequest({url:this.reportUrl,data:n}),this.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_EVENT,info:"埋点上报成功",time:Date.now(),data:n,code:200,status:"success"})}catch(s){this.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:s.message})}},i.prototype.setProfile=function(e){var t=this.formatParams(e);t&&Object.keys(t).length&&(this.pushCache(t),this.report("__profile_set",we({},t,{profile:!0})))},i.prototype.setOnceProfile=function(e){var t=this.formatParams(e,!0);t&&Object.keys(t).length&&(this.pushCache(t),this.report("__profile_set_once",we({},t,{profile:!0})))},i.prototype.incrementProfile=function(e){e?this.report("__profile_increment",we({},e,{profile:!0})):console.warn("please check the params, must be object!!!")},i.prototype.unsetProfile=function(e){if(e){var t={};t[e]="1",this.report("__profile_unset",we({},t,{profile:!0}))}else console.warn("please check the key, must be string!!!")},i.prototype.appendProfile=function(e){if(e){var t={};for(var r in e)typeof e[r]=="string"||Object.prototype.toString.call(e[r]).slice(8,-1)==="Array"?t[r]=e[r]:console.warn("please check the value of param: "+r+", must be string or array !!!");Object.keys(t).length&&this.report("__profile_append",we({},t,{profile:!0}))}else console.warn("please check the params, must be object!!!")},i.prototype.pushCache=function(e){var t=this;Object.keys(e).forEach(function(r){t.cache[r]={val:t.clone(e[r]),timestamp:Date.now()}})},i.prototype.formatParams=function(e,t){var r=this;t===void 0&&(t=!1);try{if(!e||Object.prototype.toString.call(e)!=="[object Object]")return void console.warn("please check the params type, must be object !!!");var n={};for(var s in e)typeof e[s]=="string"||typeof e[s]=="number"||Object.prototype.toString.call(e[s]).slice(8,-1)==="Array"?n[s]=e[s]:console.warn("please check the value of params:"+s+", must be string,number,Array !!!");var a=Object.keys(n);if(!a.length||!this.eventCheck.checkEventParams(n))return;var o=Date.now();return a.filter(function(d){var c=r.cache[d];return t?!c:!(c&&r.compare(c.val,e[d])&&o-c.timestamp<r.duration)}).reduce(function(d,c){return d[c]=n[c],d},{})}catch(d){this.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:d.message}),console.log("error")}},i.prototype.compare=function(e,t){try{return JSON.stringify(e)===JSON.stringify(t)}catch(r){return this.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:r.message}),!1}},i.prototype.clone=function(e){try{return JSON.parse(JSON.stringify(e))}catch(t){return this.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:t.message}),e}},i.prototype.unReady=function(){console.warn("sdk is not ready, please use this api after start")},i}(),iv=function(){function i(){var e=this;this.setInterval=function(){e.clearIntervalFunc=Mg(function(){e.isSessionhasEvent&&e.endCurrentSession()},e.sessionInterval)},this.clearInterval=function(){e.clearIntervalFunc&&e.clearIntervalFunc()}}return i.prototype.apply=function(e,t){var r=this;if(this.collect=e,!t.disable_heartbeat){this.sessionInterval=6e4,this.startTime=0,this.lastTime=0,this.setInterval();var n=this.collect.Types;this.collect.on(n.SessionResetTime,function(){r.process()})}},i.prototype.endCurrentSession=function(){this.collect.event("_be_active",{start_time:this.startTime,end_time:this.lastTime,url:window.location.href,referrer:window.document.referrer,title:document.title||location.pathname}),this.isSessionhasEvent=!1,this.startTime=0},i.prototype.process=function(){this.isSessionhasEvent||(this.isSessionhasEvent=!0,this.startTime=+new Date);var e=this.lastTime||+new Date;this.lastTime=+new Date,this.lastTime-e>this.sessionInterval&&(this.clearInterval(),this.endCurrentSession(),this.setInterval())},i}(),rv=function(){function i(){}return i.prototype.apply=function(e,t){var r=this;t.channel_domain||t.disable_track_event||t.disable_sdk_monitor||(this.collect=e,this.config=t,this.url=e.configManager.getUrl("event"),this.collect.on(e.Types.Ready,function(){r.sdkOnload()}),this.collect.on(e.Types.SubmitError,function(n){var s=n.type,a=n.eventData,o=n.errorCode;s==="f_data"&&r.sdkError(a,o)}))},i.prototype.sdkOnload=function(){var e=this;try{var t=this.collect.configManager.get(),r=t.header,n=t.user,s=r.app_id,a=r.app_name,o=r.sdk_version,d=n.web_id,c={events:[{event:"onload",params:JSON.stringify({app_id:s,app_name:a||"",sdk_version:o,sdk_type:"npm",sdk_config:this.config,sdk_desc:"TOC",url:location.href}),local_time_ms:Date.now()}],user:{user_unique_id:d},header:{}};setTimeout(function(){e.collect.requestManager.useRequest({url:e.url,data:[c],timeout:3e4,app_key:"566f58151b0ed37e",forceXhr:!0})},16)}catch{}},i.prototype.sdkError=function(e,t){var r=this;try{var n=e[0],s=n.user,a=n.header,o=[];e.forEach(function(c){c.events.forEach(function(u){o.push(u)})});var d={events:o.map(function(c){return{event:"on_error",params:JSON.stringify({error_code:t,app_id:a.app_id,app_name:a.app_name||"",error_event:c.event,sdk_version:a.sdk_version,local_time_ms:c.local_time_ms,tea_event_index:Date.now(),params:c.params,header:JSON.stringify(a),user:JSON.stringify(s)}),local_time_ms:Date.now()}}),user:{user_unique_id:s.user_unique_id},header:{}};setTimeout(function(){r.collect.requestManager.useRequest({url:r.url,data:[d],timeout:3e4,app_key:"566f58151b0ed37e",forceXhr:!0})},16)}catch{}},i}(),qn=typeof window<"u"?(window.LogPluginObject||(window.LogPluginObject={}),window.LogPluginObject):null,nv=function(){function i(){}return i.prototype.apply=function(e,t){this._plugin={},this.config=t,this.collect=e,this.channel=t.channel||"cn",this.loadExtend()},i.prototype.loadExtend=function(){var e=this;try{this.collect.remotePlugin.forEach(function(t,r){if(t==="sdk")if($n.hasOwnProperty(r)){var n=$n[r].object,s=$n[r].src[e.channel]+"?query="+Date.now();e.exist(r,n,s)}else console.warn("your "+r+" is not exist,please check plugin name");else typeof t=="object"&&(t.src?e.exist(r,t.call,t.src):e.process(r,t.instance,"INSTANCE"))})}catch(t){this.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:t.message}),console.log("load extend error")}},i.prototype.exist=function(e,t,r){var n=this;qn[t]?(this.process(e,qn[t]),console.log("已有"+e+"插件,避免重复加载~")):this.loadPlugin(e,r,function(){n.process(e,qn[t]),console.log(" %c %s %s %s","color: yellow; background-color: black;","–","load plugin:"+e+" success","-")},function(){console.log(" %c %s %s %s","color: red; background-color: yellow;","–","load plugin:"+e+" error","-")})},i.prototype.process=function(e,t,r){try{if(r){var n=new t;n.apply&&n.apply(this.collect,this.config),console.log("excude "+e+" success")}else t&&t(this.collect,this.config)}catch(s){this.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:s.message}),console.log("excude "+e+" error, message:"+s.message)}},i.prototype.loadPlugin=function(e,t,r,n){var s=this;try{var a=document.createElement("script");a.src=t,this._plugin[e]||(this._plugin[e]=[]),this._plugin[e].push(r),a.onerror=function(){n(t)},a.onload=function(){s._plugin[e].forEach(function(o){o()})},document.getElementsByTagName("head")[0].appendChild(a)}catch(o){this.collect.emit(k.DEBUGGER_MESSAGE,{type:k.DEBUGGER_MESSAGE_SDK,info:"发生了异常",level:"error",time:Date.now(),data:o.message})}},i}();St.usePlugin(nv,"extend"),St.usePlugin(ev,"et"),St.usePlugin(tv,"profile"),St.usePlugin(iv,"heartbeat"),St.usePlugin(rv,"monitor"),new St("default");var sv=St;class Bt{constructor({userId:e}){this.collector=new sv("media-engine-logger"),this.collector.init({app_id:834499,channel:"cn",disable_sdk_monitor:!0}),this.collector.config({user_unique_id:e||"media-engine",evtParams:{sdk_version:"1.0.0"}}),this.collector.start()}static getInstance({userId:e}){return Bt.instance||(Bt.instance=new Bt({userId:e})),Bt.instance}event(e,t){this.collector.event(e,t||{})}}class ov extends Ag{constructor({userId:e}){super(Rg),this.logger=Bt.getInstance({userId:e})}receiveWorkerMessage({type:e,data:t}){switch(e){case Te.PassEngineEvent:{const r=t.event,n=t.data;this.emit(r,n)}break;case Te.GetStats:this.emit("_receive_stats",t);break}}start(e){const{video:t}=e,{audio:r}=e;delete e.video,delete e.audio,this.sendTransportable({type:Te.Start,data:e},{video:t,audio:r}),this.logger.event("pusher_engine_start")}stop(){this.sendMessage({type:Te.Stop}),this.logger.event("pusher_engine_stop")}updateTrack(e,t,r){this.sendTransportable({type:Te.UpdateTrack,data:{isAudio:t==="audio",setting:r}},{stream:e}),this.logger.event("pusher_engine_update_track",{type:t,setting:r})}setBitrate(e,t){this.sendMessage({type:Te.SetBitrate,data:{bitrate:e,type:t}}),this.logger.event("pusher_engine_set_bitrate",{bitrate:e,type:t})}online(){this.sendMessage({type:Te.Online})}reconnect(e){this.sendMessage({type:Te.Reconnect,data:{url:e}}),this.logger.event("pusher_engine_reconnect",{url:e})}async getStats(){this.sendMessage({type:Te.GetStats});const[e]=await this.onWait("_receive_stats");return e}destroy(){super.destroy(),this.stop()}}function cc(i){let e=!0,t="";for(const r of i)if(!(r in window)){e=!1,t=`${r} not Supported`;break}return{supported:e,info:t}}const av=24*60*60*1e3;function uc(i,e="1d"){const t=`_me_expire_${i}`;let r=0;if(typeof e=="string"){if(!/^[0-9]+d$/.test(e))throw new Error("expire format error");r=av*parseInt(e)}else r=e;return{get(){const n=localStorage.getItem(t);if(!n)return null;let s=null;try{s=JSON.parse(n)}catch{return null}const{value:a,expire:o}=s;return o<Date.now()?(localStorage.removeItem(t),null):a},set(n){localStorage.setItem(t,JSON.stringify({value:n,expire:Date.now()+r}))},remove(){localStorage.removeItem(t)}}}var pe=(i=>(i[i.AAC=0]="AAC",i[i.OPUS=1]="OPUS",i[i.H264=2]="H264",i[i.H265=3]="H265",i[i.AV1=4]="AV1",i))(pe||{});pe.AAC+"",pe.OPUS+"",pe.H264+"",pe.H265+"",pe.AV1+"";const hr={[pe.AAC]:"mp4a.40.2",[pe.OPUS]:"opus",[pe.H264]:"avc1.4DE033",[pe.H265]:"hev1.1.6.L93.B0"};function dc(i){const e=new MediaStreamTrackProcessor(i),{readable:t}=e,r=i.getSettings();return{readable:t,settings:r}}const Kn=uc("audio_encoder_support","3d");function cv(){return cc(["EncodedAudioChunk","AudioEncoder","AudioData"])}function uv(i){const e=Kn.get(),t=`${i}_support`;return e&&e[t]?e[t]:null}function dv(i,e){const t=Kn.get()||{},r=`${i}_support`;t[r]=e,Kn.set(t)}async function hv(i){if(!AudioEncoder.isConfigSupported)return{supported:!1,info:"isConfigSupported method is undefined"};try{const e={codec:i,sampleRate:48e3,numberOfChannels:2,bitrate:128e3},t=await AudioEncoder.isConfigSupported(e);return t.supported!==void 0?{supported:t.supported,info:t.supported?"isConfigSupported: true":"isConfigSupported: false"}:{supported:!1,info:"isConfigSupported returned undefined"}}catch{return{supported:!1,info:"isConfigSupported method throws error"}}}async function hc(i){const e=uv(i);if(e)return console.log(`Audio encoder ${i} support result from cache:`,e),e;const t=await hv(i);return dv(i,t),t}function lv(){return hc(hr[pe.OPUS])}function pv(){return hc(hr[pe.AAC])}const Wn=uc("video_encoder_support","3d");function Jn(){return cc(["EncodedVideoChunk","VideoEncoder","VideoFrame"])}function lc(i){const e=Wn.get(),t=`${i}_support`;return e&&e[t]?e[t]:null}function Xn(i,e){const t=Wn.get()||{},r=`${i}_support`;t[r]=e,Wn.set(t)}async function pc(i){if(!VideoEncoder.isConfigSupported)return{supported:!1,info:"isConfigSupported method is undefined"};try{const e={codec:i,width:640,height:480,bitrate:1e6,framerate:30},t=await VideoEncoder.isConfigSupported(e);return{supported:t.supported??!1,info:t.supported?"isConfigSupported: true":"isConfigSupported: false"}}catch(e){return{supported:!1,info:`isConfigSupported error: ${e instanceof Error?e.message:String(e)}`}}}async function fv(i,e=3e3){return new Promise(t=>{let r=!1;const n=setTimeout(()=>{r||(r=!0,t({supported:!1,info:"encoding test timeout"}))},e);try{const s=new VideoEncoder({output:h=>{r||(r=!0,clearTimeout(n),s.state!=="closed"&&s.close(),t({supported:!0,info:"encoding test success"}))},error:h=>{r||(r=!0,clearTimeout(n),s.state!=="closed"&&s.close(),t({supported:!1,info:`encoding test error: ${h.message}`}))}}),a={codec:i,width:640,height:480,bitrate:1e6,framerate:30};s.configure(a);const o=640,d=480,c=new OffscreenCanvas(o,d),u=c.getContext("2d");u&&(u.fillStyle="#FF0000",u.fillRect(0,0,o,d));const l=new VideoFrame(c,{timestamp:0});s.encode(l)}catch(s){r||(r=!0,clearTimeout(n),t({supported:!1,info:`encoding test catch: ${s.message}`}))}})}async function mv(i){if(!Jn())return{supported:!1,info:"VideoEncoder API not supported"};const e=lc(i);if(e)return console.log(`Video encoder ${i} support result from cache:`,e),e;const t=await pc(i);return Xn(i,t),t}async function _v(i,e=3e3){if(!Jn())return{supported:!1,info:"VideoEncoder API not supported"};const t=lc(i);if(t)return console.log(`Video encoder ${i} support result from cache:`,t),t;const r=await pc(i);if(!r.supported)return Xn(i,r),r;const n=await fv(i,e);return Xn(i,n),n}function gv(){return mv(hr[pe.H264])}function vv(){return _v(hr[pe.H265])}function yv(){return cv().supported}function bv(){return Jn().supported}async function Sv(i){if(!yv())return{supported:!1,info:"AudioEncoder API not supported"};try{switch(i){case"aac":return await pv();case"opus":return await lv();default:return{supported:!1,info:`Unsupported audio codec: ${i}`}}}catch(e){return{supported:!1,info:`${i} 检测失败: ${e instanceof Error?e.message:String(e)}`}}}async function Ev(i){if(!bv())return{supported:!1,info:"VideoEncoder API not supported"};try{switch(i){case"h264":return await gv();case"h265":return await vv();default:return{supported:!1,info:`Unsupported video codec: ${i}`}}}catch(e){return{supported:!1,info:`${i} 检测失败: ${e instanceof Error?e.message:String(e)}`}}}async function wv(i,e=!1){const t=["aac"],r=["h264"],n={audioCodecs:{},videoCodecs:{}};for(const l of t)n.audioCodecs[l]=await Sv(l);for(const l of r)n.videoCodecs[l]=await Ev(l);const s=[],a=[],o=[],d=[];Object.entries(n.audioCodecs).forEach(([l,h])=>{h.supported?s.push(l):a.push(l)}),Object.entries(n.videoCodecs).forEach(([l,h])=>{h.supported?o.push(l):d.push(l)});const u={supported:a.length===0&&d.length===0,supportedAudio:s,supportedVideo:o,unsupportedAudio:a,unsupportedVideo:d};return e&&(u.details=n),u}async function Cv(){return(await wv()).supported}class fc{constructor(e,t,r,n,s){this.url=e,this.config=t,this.onError=r,this.onSuccess=n,this.onReconnectError=s,this._isPushing=!1,this._clearOnline=()=>{},this.sessionId=Date.now(),this.engine=new ov({userId:De.instance.userId??""});const a=()=>{this.engine.online()};window.addEventListener("online",a),this._clearOnline=()=>{window.removeEventListener("online",a)}}static async isSupported(){return await Cv()&&typeof WebTransport<"u"&&typeof MediaStreamTrackProcessor<"u"&&typeof MediaStreamTrackGenerator<"u"&&typeof VideoEncoder<"u"}get isPushing(){return this._isPushing}get pushUrl(){return this.url}async getStatsSnapshoot(e){e&&await Ci(e);const{video:t,audio:r,upspeed:n}=await this.engine.getStats();return{stats:{video:{sendBitrate:t.bitrate,framesPerSecond:t.framerate,framesEncoded:t.encodedFrames,keyFramesEncoded:t.encodedKeyFrames,sendSpeed:n,codec:t.codec,frameWidth:t.width,frameHeight:t.height,gopSize:t.keyGopSize},audio:{sendBitrate:r.bitrate,framesEncoded:r.encodedFrames,codec:r.codec,channels:r.numberOfChannels,sampleRate:r.sampleRate}},originStats:void 0}}publish(e,t,r){const n={url:this.url,maxReconnectCount:10,autoReconnect:!1,bitrate:{},cfg:Object.assign({gopSize:90},r||{}),setting:{}};e.forEach((s,a)=>{if(s.kind==="video"||s.kind==="audio"){const o=dc(s);n[s.kind]=o.readable,n.bitrate[s.kind]=t[a],n.setting[s.kind]=o.settings}}),this.engine.start(n),this._isPushing=!0,this.engine.on({"connect-open":()=>{this._isPushing=!0,this.onSuccess()},error:s=>{this.onError(new Error(JSON.stringify(s)))},"connect-close":s=>{this._isPushing=!1,s==="api call"?console.log("Connection close by api call"):this.onError(new Error(`Connect close, reason=${s}`))},"reconnect-fail":s=>{this._isPushing=!1,this.onReconnectError(new Error(`Reconnect fail, reason=${s}`))}})}unpublish(){this.engine.stop(),this._isPushing=!1}async updatePublish(e,t){e&&this.engine.updateTrack(dc(e).readable,t)}applyBitrate(e,t){this.engine.setBitrate(e,t)}reconnect(e){this.engine.reconnect(e)}destroy(){this._clearOnline(),this.engine.destroy(),this._isPushing=!1}}function mc({pushUrl:i,addPri:e=!1,disableTCC:t=!1}){const r=new URL(i),n=Date.now();return e&&r.searchParams.set("pri",n.toString()),t&&r.searchParams.set("tcc","false"),r.href}class kv{constructor(e,t=Of){this._reconnectDelay=0,this._reconnectCount=0,this._timeoutTimerId=null,this._reconnectTimeout=null,this._totalReconnectInfo={totalReconnectCount:0,totalReconnectDuration:0},this.handleOnlineReconnect=()=>{this.execute(!0)},this.execute=(r=!1)=>{var n;this._logger.log("start reconnect strategy"),this.state==="idle"&&(this._reconnectStartTime=Date.now(),this._totalReconnectInfo.totalReconnectCount+=1,O(I.PUSH_RECONNECT_START,{start_time:this._reconnectStartTime,session_id:this._pushConsumer.pushSessionId,max_timeout:this._maxTimeout}),this.bindOnlineEvent(),this.setStrategyState("executing"),(n=this._logger)==null||n.log("start reconnecting with max timeout: ",this._maxTimeout),this.startTimeoutTimer(this._maxTimeout),this._pushConsumer.emitReconnectStateChange({state:wt.START,teaParams:{is_online:navigator.onLine,start_time:this._reconnectStartTime,max_timeout:this._maxTimeout,session_id:this._pushConsumer.pushSessionId}})),this.state==="executing"&&(this._reconnectTimeout&&clearTimeout(this._reconnectTimeout),this.executeStrategy(r))},this.attemptReconnect=async()=>{var r;if(this.state==="executing"){this.setStrategyState("reconnecting"),this._reconnectCount+=1;const n=this.getNextPushUrl();try{if(this._pushConsumer.emitReconnectStateChange({state:wt.RECONNECTING,params:{retryTime:this._reconnectCount},teaParams:{retry_push_url:n,session_id:this._pushConsumer.pushSessionId}}),await this._pushConsumer.reconnect(n),!this.isActive())return;this.setStrategyState("executing")}catch(s){const a=s.ext||{},{httpCode:o}=a;if(o!==void 0&&String(o).startsWith("4"))this.stop({isSuccess:!1,reason:br.PushUrlInvalid,failedError:s}),(r=this._onReconnectError)==null||r.call(this,"pushError",s);else{if(!this.isActive())return;this.setStrategyState("executing"),this.execute()}}}},this.executeStrategy=(r=!1)=>{const n=r?0:this._reconnectDelay;this._pushConsumer.emitReconnectStateChange({state:wt.WAITING,params:{waitingTime:n,retryTime:this._reconnectCount+1},teaParams:{is_online:navigator.onLine,session_id:this._pushConsumer.pushSessionId}}),this._logger.log("reconnect after delay: ",n,Date.now()),this._reconnectTimeout=window.setTimeout(this.attemptReconnect,n),this._reconnectDelay=this._reconnectDelay===0?2e3:Math.min(this._reconnectDelay*2,Mf)},this.state="idle",this._pushConsumer=e,this._maxTimeout=t,this._logger=new st("ReconnectStrategy")}getNextPushUrl(){const e=this._pushConsumer.pushUrl;return e?mc({pushUrl:e,addPri:!0}):""}set onReconnectError(e){this._onReconnectError=e}bindOnlineEvent(){window.addEventListener("online",this.handleOnlineReconnect)}unbindOnlineEvent(){window.removeEventListener("online",this.handleOnlineReconnect)}setStrategyState(e){this._logger.log("reconnect state change to: ",e),this.state=e}stop({isSuccess:e,reason:t,quiet:r=!1,failedError:n}){var a;if(this.state==="idle")return;const s=(Date.now()-this._reconnectStartTime)/1e3;r||(e?this._pushConsumer.emitReconnectStateChange({state:wt.SUCCESS,teaParams:{reconnect_duration:s,session_id:this._pushConsumer.pushSessionId}}):(this._logger.log("Reconnect strategy stopped: ",t),this._pushConsumer.emitReconnectStateChange({state:wt.FAILED,params:{failedCode:t},teaParams:{reason:t,reconnect_duration:s,error_message:n==null?void 0:n.message,http_code:(a=n==null?void 0:n.ext)==null?void 0:a.httpCode,ext:n==null?void 0:n.ext,session_id:this._pushConsumer.pushSessionId}})),this._totalReconnectInfo.totalReconnectDuration+=s),this.setStrategyState("idle"),this._timeoutTimerId&&clearTimeout(this._timeoutTimerId),this._reconnectTimeout&&clearTimeout(this._reconnectTimeout),this._reconnectDelay=0,this._reconnectCount=0,this._reconnectStartTime=void 0,this.unbindOnlineEvent()}startTimeoutTimer(e){this._timeoutTimerId=window.setTimeout(()=>{var t;this.state!=="idle"&&(this._logger.log("Reconnect strategy timed out"),this.stop({isSuccess:!1,reason:br.ReconnectTimeout}),(t=this._onReconnectError)==null||t.call(this,"timeout"))},e)}clearReconnectInfo(){this._totalReconnectInfo={totalReconnectCount:0,totalReconnectDuration:0}}getReconnectInfo(){return this._totalReconnectInfo}isActive(){return this.state!=="idle"}}const Ti={ManualStop:0,ReconnectFailed:1,StartPushError:2,PushError:3},Vt={PushCheck:0,PushError:1},_c=new st("PushController");class Tv extends Ga{constructor(e,{config:t,streamConsumeController:r,streamComposedController:n}){var s,a;if(super(e),this._connect=null,this._connectionState=fe.DISCONNECTED,this._pushSessionId=0,this._isReportStart=!1,this._pushMode="rtm",this._reconnectStrategy=null,this._needCheckAudioTrack=!1,this._pushConfig={timeout:5e3,retryCount:1,retryDelay:1e3},this._audioBitrate=Rt(gs,"audio").bitrate,this._videoBitrate=Rt(_s,"video").bitrate,this.handleReconnectError=(o,d)=>{var c,u;O(I.STOP_PUSH_STREAM,{reason:Ti.ReconnectFailed,error_message:o,session_id:this._pushSessionId,push_mode:this._pushMode,duration:this.pushDuration,reconnect_times:(c=this._reconnectStrategy)==null?void 0:c.getReconnectInfo().totalReconnectCount,reconnect_duration:(u=this._reconnectStrategy)==null?void 0:u.getReconnectInfo().totalReconnectDuration}),this.unpublish()},this.handleAudioStreamChange=o=>{this.updatePush({audioTrack:o.audioTrack})},this.handleVideoStreamChange=o=>{this.updatePush({videoTrack:o.videoTrack})},this._OnRTMPSuccess=()=>{this.setConnectState(fe.CONNECTED)},this._OnMediaReconnectFailed=()=>{this._executeReconnect()},this._OnRTMPError=o=>{const d=new At(me.PUBLISH_FAILED,`${o.code?`code:${o.code},`:""} message: ${o.message}`);this.pushDuration<Pf||!this._reconnectStrategy||this.pushMode==="webTransport"?(this._streamConsumeController.emit(Z.PushError,d),O(I.STOP_PUSH_STREAM,{reason:Ti.PushError,duration:this.pushDuration,session_id:this._pushSessionId,push_mode:this._pushMode,error_msg:o.message,error_code:o.code}),O(I.START_PUSH_STATUS,{is_success:!1,reason:Vt.PushError,error_message:o.message,session_id:this._pushSessionId,push_mode:this._pushMode,push_url:this._pushUrl}),this.unpublish()):this._executeReconnect()},this._executeReconnect=()=>{var o;(o=this._reconnectStrategy)==null||o.execute(),this.setConnectState(fe.RECONNECTING),this.unpublish({isReconnecting:!0})},this._OnRtcStateChange=o=>{var d;switch(O(I.PUSH_RTC_STATE_CHANGE,{state:o,push_url:this._pushUrl,session_id:this._pushSessionId,push_mode:this._pushMode}),this._streamConsumeController.emit(Z.RTCConnectStateChanged,o),o){case"connected":this.setConnectState(fe.CONNECTED);break;case"disconnected":this._reconnectStrategy&&this._executeReconnect();break;case"failed":(d=this._reconnectStrategy)!=null&&d.isActive()?this._executeReconnect():(this.connectionState===fe.CONNECTED?O(I.STOP_PUSH_STREAM,{reason:Ti.PushError,error_message:"peerconnection failed",duration:this.pushDuration,session_id:this._pushSessionId,push_mode:this._pushMode}):O(I.START_PUSH_STATUS,{is_success:!1,reason:Vt.PushError,error_message:"peerconnection failed",session_id:this._pushSessionId,push_mode:this._pushMode,push_url:this._pushUrl}),this.unpublish(),this._streamConsumeController.emit(Z.PushError,new At(me.PUSH_CONNECT_FAILED,"pc failed")));break}},this._pushMode=(t==null?void 0:t.mode)||"rtm",this._streamConsumeController=r,t&&(this._pushConfig=t,this._needCheckAudioTrack=t.checkAudio??!1),(s=t==null?void 0:t.reconnectConfig)!=null&&s.enable||!(t!=null&&t.reconnectConfig)){const o=(a=t==null?void 0:t.reconnectConfig)!=null&&a.maxTimeout?t.reconnectConfig.maxTimeout*Io:void 0;this._reconnectStrategy=new kv(this,o),this._reconnectStrategy.onReconnectError=this.handleReconnectError}this._streamComposedController=n}get isPushing(){return this._connectionState===fe.CONNECTED||this._connectionState===fe.RECONNECTING}get pushUrl(){return this._pushUrl}get pushEncodeConfig(){return this._pushEncodeConfig}get sessionId(){var e;return((e=this._connect)==null?void 0:e.sessionId)||0}start(){this.bindComposedStreamEvent()}stop(){this.unbindComposedStreamEvent()}setPushConfig(e){e&&(this._pushConfig=e)}setConnectState(e){var t;switch(this._connectionState=e,this._streamConsumeController.emit(Z.LiveConnectStateChange,e),e){case fe.CONNECTED:(t=this._reconnectStrategy)!=null&&t.isActive()?this._reconnectStrategy.stop({isSuccess:!0}):(this._streamConsumeController.emit(Z.PushStart),this.setPushStatsInterval(),O(I.START_PUSH_STATUS,{is_success:!0,push_url:this._pushUrl,session_id:this._pushSessionId,push_mode:this._pushMode}));break}}async getStats(){return this._prevStats}async startPush(e,t={}){var a,o,d,c,u,l;if(t.isReconnect||(this._pushSessionId=Date.now(),O(I.START_PUSH,{push_url:e,session_id:this._pushSessionId})),!e)throw O(I.START_PUSH_STATUS,{is_success:!1,session_id:this._pushSessionId,reason:Vt.PushCheck,push_url:this._pushUrl}),new Error("lack publish url");if(this._connect)return;this.start(),this._pushUrl=mc({pushUrl:e,disableTCC:!0}),this._pushEncodeConfig=t.cfg;const r=this._composedStream.videoTrack,n=this._composedStream.audioTrack;if(this._needCheckAudioTrack&&(!r||!n)){O(I.START_PUSH_STATUS,{is_success:!1,reason:Vt.PushCheck,push_url:this._pushUrl,error_message:"lack videoTrack or audioTrack",video_track_id:r==null?void 0:r.id,audio_track_id:n==null?void 0:n.id,video_track_name:r==null?void 0:r.label,audio_track_name:n==null?void 0:n.label,push_mode:this._pushMode,session_id:this._pushSessionId});return}else if(!r&&!n){O(I.START_PUSH_STATUS,{is_success:!1,reason:Vt.PushCheck,push_url:this._pushUrl,error_message:"lack videoTrack and audioTrack",push_mode:this._pushMode,session_id:this._pushSessionId});return}let s;if(this._pushMode==="rtm")s=new ar(e,this._pushConfig,this._OnRtcStateChange);else if(this._pushMode==="webTransport")s=new wg(e,this._pushConfig,this._OnRTMPError,this._OnRTMPSuccess);else if(this._pushMode==="mediaEngine")s=new fc(e,this._pushConfig,this._OnRTMPError,this._OnRTMPSuccess,this._OnMediaReconnectFailed);else throw new Error(`not support push mode: ${this._pushMode}`);this._connect=s;try{!t.isReconnect&&((a=this._reconnectStrategy)!=null&&a.isActive())&&this._reconnectStrategy.stop({quiet:!0}),(o=this._reconnectStrategy)!=null&&o.isActive()||this.setConnectState(fe.CONNECTING);let h;((d=this._composedStream.videoStream)==null?void 0:d.frameRate)!==1?h=(c=this._composedStream.videoStream)==null?void 0:c.frameRate:h=(u=r==null?void 0:r.getSettings())==null?void 0:u.frameRate,await s.publish([n,r],[this._audioBitrate,this._videoBitrate],{cfg:t.cfg,isReconnect:t.isReconnect,frameRate:h}),t.isReconnect||(_c.log("startPush begin"),this._connectionStartDate=Date.now())}catch(h){const p=new At(me.PUBLISH_FAILED,h.message,h);if(_c.groupEnd(),(l=this._reconnectStrategy)!=null&&l.isActive())throw this.unpublish({isReconnecting:!0}),p;this._streamConsumeController.emit(Z.PushError,p),O(I.STOP_PUSH_STREAM,{reason:Ti.PushError,error_message:p.message,enable_reconnect:!1,push_mode:this._pushMode,session_id:this._pushSessionId,duration:this.pushDuration}),O(I.START_PUSH_STATUS,{is_success:!1,push_url:this._pushUrl,reason:Vt.PushError,error_message:p.message,session_id:this._pushSessionId,push_mode:this._pushMode}),this.unpublish()}}setPushStatsInterval(){if(this._isReportStart)return;this._isReportStart=!0;const e=async()=>{var t,r,n,s,a;if((t=this._connect)!=null&&t.isPushing){const o=Date.now(),{stats:d,originStats:c}=await this._connect.getStatsSnapshoot(2e3),l=Date.now()-o;!wf(d)&&((r=this._connect)!=null&&r.isPushing)&&this.connectionState===fe.CONNECTED?this._prevStats=d:this._prevStats=void 0;const h=this.pushMode==="rtm"?sg(d,c,{idealFrameRate:(n=this._composedStream._videoStream)==null?void 0:n.frameRate,idealBitrate:this._videoBitrate}):og(d),p=this.pushMode==="rtm"?(s=this._connect)==null?void 0:s.videoSenderTrackStats:{};O(I.PUSH_STATS,{...h,...p,video_draw_frame:this._streamComposedController.getCompositionDrawCountPerSecond(),stats:d,push_url:this._pushUrl,push_mode:this._pushMode,session_id:this._pushSessionId,duration:h.video_duration||l,video_duration:h.video_duration||l,is_push:!0},!0)}else await Ci(2e3),O(I.PUSH_STATS,{push_url:this._pushUrl,push_mode:this._pushMode,session_id:this._pushSessionId,duration:2e3,is_push:!1,is_reconnecting:((a=this._reconnectStrategy)==null?void 0:a.isActive())??!1},!0);this.connectionState!==fe.DISCONNECTED&&(this._statsLoopTimer=window.setTimeout(e,0))};e()}async reconnect(e){if(this.pushMode==="rtm")return this.startPush(e,{isReconnect:!0});if(this.pushMode==="mediaEngine")return this._connect.reconnect(e)}async updatePush({videoTrack:e,audioTrack:t}){if(this._connect)try{const r=[];e&&r.push(()=>{var n;return(n=this._connect)==null?void 0:n.updatePublish(e,"video")}),t&&r.push(()=>{var n;return(n=this._connect)==null?void 0:n.updatePublish(t,"audio")}),await Promise.all(r.map(n=>n()))}catch(r){const n=new At(me.UPDATE_PUBLISH_FAILED,`${r.name}, code:${r.code}`);this._streamConsumeController.emit(Z.PushError,n)}}unpublish(e={isReconnecting:!1,isManual:!1}){var t,r,n,s,a;e.isReconnecting&&this.pushMode==="mediaEngine"||((t=this._connect)==null||t.unpublish(),this._connect=null),this._prevStats=void 0,e.isManual&&(O(I.STOP_PUSH_STREAM,{reason:Ti.ManualStop,duration:this.pushDuration,session_id:this._streamConsumeController.pushSessionId,push_mode:this._pushMode,reconnect_times:(r=this._reconnectStrategy)==null?void 0:r.getReconnectInfo().totalReconnectCount,reconnect_duration:(n=this._reconnectStrategy)==null?void 0:n.getReconnectInfo().totalReconnectDuration}),(s=this._reconnectStrategy)==null||s.clearReconnectInfo()),e.isReconnecting||(this._statsLoopTimer&&window.clearTimeout(this._statsLoopTimer),this._isReportStart=!1,this._pushEncodeConfig=void 0,this._pushUrl=void 0,this._connectionStartDate=void 0,this._pushSessionId=0,this.setConnectState(fe.DISCONNECTED),(a=this._reconnectStrategy)==null||a.stop({quiet:!0}),this._streamConsumeController.emit(Z.PushStop))}async destroy(){this._statsLoopTimer&&window.clearTimeout(this._statsLoopTimer),this._prevStats=void 0,this._isReportStart=!1,this._connect&&await this.unpublish(),this.unbindComposedStreamEvent()}setPushMode(e){this._pushMode=e}updatePushUrl(e){this._pushUrl=e}setBitrate(e,t,r){var n;t==="video"?this._videoBitrate=e:this._audioBitrate=e,(n=this._connect)==null||n.applyBitrate(e,t,r)}getReconnectDetail(){var e;return(e=this._reconnectStrategy)==null?void 0:e.getReconnectInfo()}get pushMode(){return this._pushMode}get connectionState(){return this._connectionState}get pushSessionId(){return this._pushSessionId}get pushDuration(){return this._connectionStartDate?(Date.now()-this._connectionStartDate)/1e3:0}emitReconnectStateChange({state:e,params:t,teaParams:r}){O(I.PUSH_RECONNECT_STATUS,{status:e,...t,...r}),this._streamConsumeController.emit(Z.ReconnectStateChange,e,t)}}class zv extends Xe{constructor(e,t){super(),this._previewConsumer=new X_(e.getComposedStream(),{streamConsumeController:this}),this._pushConsumer=new Tv(e.getComposedStream(),{streamConsumeController:this,streamComposedController:e,config:t})}startPreview(){this._previewConsumer.startPreview()}setRenderView(e){this._previewConsumer.setRenderView(e)}async startPush(e,t){return this._pushConsumer.startPush(e,{cfg:t})}async stopPush(){return this._pushConsumer.unpublish({isReconnecting:!1,isManual:!0})}setPushMode(e){this._pushConsumer.setPushMode(e)}isPushing(){return this._pushConsumer.isPushing}getStats(){return this._pushConsumer.getStats()}getPreviewElement(){return this._previewConsumer.getPreviewElement()}stopPreview(){this._previewConsumer.stopPreview()}setBitrate(e,t,r){this._pushConsumer.setBitrate(e,t,r)}setPushConfig(e){this._pushConsumer.setPushConfig(e)}updatePushUrl(e){this._pushConsumer.updatePushUrl(e)}getPushDuration(){return this._pushConsumer.pushDuration}getReconnectDetail(){return this._pushConsumer.getReconnectDetail()}get pushSessionId(){return this._pushConsumer.pushSessionId}get pushMode(){return this._pushConsumer.pushMode}async destroy(){await this._pushConsumer.destroy(),this._previewConsumer.destroy()}}class Av{constructor(){this.onError=(e,t,r)=>{},this.onWarning=e=>{},this.onCaptureFirstAudioFrame=()=>{},this.onCaptureFirstVideoFrame=()=>{},this.onPushStatusUpdate=(e,t)=>{},this.onMicrophoneChanged=e=>{},this.onCameraChanged=e=>{},this.onCaptureInterrupted=e=>{},this.onPushStart=()=>{},this.onPushStop=()=>{},this.onStopCapture=e=>{},this.onLiveConnectStateChange=e=>{},this.onReconnectStateChange=(e,t)=>{}}}const Rv=new Av;let gc=!0,vc=!0;function lr(i,e,t){const r=i.match(e);return r&&r.length>=t&&parseInt(r[t],10)}function Et(i,e,t){if(!i.RTCPeerConnection)return;const r=i.RTCPeerConnection.prototype,n=r.addEventListener;r.addEventListener=function(a,o){if(a!==e)return n.apply(this,arguments);const d=c=>{const u=t(c);u&&(o.handleEvent?o.handleEvent(u):o(u))};return this._eventMap=this._eventMap||{},this._eventMap[e]||(this._eventMap[e]=new Map),this._eventMap[e].set(o,d),n.apply(this,[a,d])};const s=r.removeEventListener;r.removeEventListener=function(a,o){if(a!==e||!this._eventMap||!this._eventMap[e])return s.apply(this,arguments);if(!this._eventMap[e].has(o))return s.apply(this,arguments);const d=this._eventMap[e].get(o);return this._eventMap[e].delete(o),this._eventMap[e].size===0&&delete this._eventMap[e],Object.keys(this._eventMap).length===0&&delete this._eventMap,s.apply(this,[a,d])},Object.defineProperty(r,"on"+e,{get(){return this["_on"+e]},set(a){this["_on"+e]&&(this.removeEventListener(e,this["_on"+e]),delete this["_on"+e]),a&&this.addEventListener(e,this["_on"+e]=a)},enumerable:!0,configurable:!0})}function Dv(i){return typeof i!="boolean"?new Error("Argument type: "+typeof i+". Please use a boolean."):(gc=i,i?"adapter.js logging disabled":"adapter.js logging enabled")}function xv(i){return typeof i!="boolean"?new Error("Argument type: "+typeof i+". Please use a boolean."):(vc=!i,"adapter.js deprecation warnings "+(i?"disabled":"enabled"))}function yc(){if(typeof window=="object"){if(gc)return;typeof console<"u"&&typeof console.log=="function"&&console.log.apply(console,arguments)}}function Zn(i,e){vc&&console.warn(i+" is deprecated, please use "+e+" instead.")}function Iv(i){const e={browser:null,version:null};if(typeof i>"u"||!i.navigator||!i.navigator.userAgent)return e.browser="Not a browser.",e;const{navigator:t}=i;if(t.userAgentData&&t.userAgentData.brands){const r=t.userAgentData.brands.find(n=>n.brand==="Chromium");if(r)return{browser:"chrome",version:parseInt(r.version,10)}}if(t.mozGetUserMedia)e.browser="firefox",e.version=lr(t.userAgent,/Firefox\/(\d+)\./,1);else if(t.webkitGetUserMedia||i.isSecureContext===!1&&i.webkitRTCPeerConnection)e.browser="chrome",e.version=lr(t.userAgent,/Chrom(e|ium)\/(\d+)\./,2);else if(i.RTCPeerConnection&&t.userAgent.match(/AppleWebKit\/(\d+)\./))e.browser="safari",e.version=lr(t.userAgent,/AppleWebKit\/(\d+)\./,1),e.supportsUnifiedPlan=i.RTCRtpTransceiver&&"currentDirection"in i.RTCRtpTransceiver.prototype;else return e.browser="Not a supported browser.",e;return e}function bc(i){return Object.prototype.toString.call(i)==="[object Object]"}function Sc(i){return bc(i)?Object.keys(i).reduce(function(e,t){const r=bc(i[t]),n=r?Sc(i[t]):i[t],s=r&&!Object.keys(n).length;return n===void 0||s?e:Object.assign(e,{[t]:n})},{}):i}function Qn(i,e,t){!e||t.has(e.id)||(t.set(e.id,e),Object.keys(e).forEach(r=>{r.endsWith("Id")?Qn(i,i.get(e[r]),t):r.endsWith("Ids")&&e[r].forEach(n=>{Qn(i,i.get(n),t)})}))}function Ec(i,e,t){const r=t?"outbound-rtp":"inbound-rtp",n=new Map;if(e===null)return n;const s=[];return i.forEach(a=>{a.type==="track"&&a.trackIdentifier===e.id&&s.push(a)}),s.forEach(a=>{i.forEach(o=>{o.type===r&&o.trackId===a.id&&Qn(i,o,n)})}),n}const wc=yc;function Cc(i,e){const t=i&&i.navigator;if(!t.mediaDevices)return;const r=function(o){if(typeof o!="object"||o.mandatory||o.optional)return o;const d={};return Object.keys(o).forEach(c=>{if(c==="require"||c==="advanced"||c==="mediaSource")return;const u=typeof o[c]=="object"?o[c]:{ideal:o[c]};u.exact!==void 0&&typeof u.exact=="number"&&(u.min=u.max=u.exact);const l=function(h,p){return h?h+p.charAt(0).toUpperCase()+p.slice(1):p==="deviceId"?"sourceId":p};if(u.ideal!==void 0){d.optional=d.optional||[];let h={};typeof u.ideal=="number"?(h[l("min",c)]=u.ideal,d.optional.push(h),h={},h[l("max",c)]=u.ideal,d.optional.push(h)):(h[l("",c)]=u.ideal,d.optional.push(h))}u.exact!==void 0&&typeof u.exact!="number"?(d.mandatory=d.mandatory||{},d.mandatory[l("",c)]=u.exact):["min","max"].forEach(h=>{u[h]!==void 0&&(d.mandatory=d.mandatory||{},d.mandatory[l(h,c)]=u[h])})}),o.advanced&&(d.optional=(d.optional||[]).concat(o.advanced)),d},n=function(o,d){if(e.version>=61)return d(o);if(o=JSON.parse(JSON.stringify(o)),o&&typeof o.audio=="object"){const c=function(u,l,h){l in u&&!(h in u)&&(u[h]=u[l],delete u[l])};o=JSON.parse(JSON.stringify(o)),c(o.audio,"autoGainControl","googAutoGainControl"),c(o.audio,"noiseSuppression","googNoiseSuppression"),o.audio=r(o.audio)}if(o&&typeof o.video=="object"){let c=o.video.facingMode;c=c&&(typeof c=="object"?c:{ideal:c});const u=e.version<66;if(c&&(c.exact==="user"||c.exact==="environment"||c.ideal==="user"||c.ideal==="environment")&&!(t.mediaDevices.getSupportedConstraints&&t.mediaDevices.getSupportedConstraints().facingMode&&!u)){delete o.video.facingMode;let l;if(c.exact==="environment"||c.ideal==="environment"?l=["back","rear"]:(c.exact==="user"||c.ideal==="user")&&(l=["front"]),l)return t.mediaDevices.enumerateDevices().then(h=>{h=h.filter(f=>f.kind==="videoinput");let p=h.find(f=>l.some(v=>f.label.toLowerCase().includes(v)));return!p&&h.length&&l.includes("back")&&(p=h[h.length-1]),p&&(o.video.deviceId=c.exact?{exact:p.deviceId}:{ideal:p.deviceId}),o.video=r(o.video),wc("chrome: "+JSON.stringify(o)),d(o)})}o.video=r(o.video)}return wc("chrome: "+JSON.stringify(o)),d(o)},s=function(o){return e.version>=64?o:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[o.name]||o.name,message:o.message,constraint:o.constraint||o.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}},a=function(o,d,c){n(o,u=>{t.webkitGetUserMedia(u,d,l=>{c&&c(s(l))})})};if(t.getUserMedia=a.bind(t),t.mediaDevices.getUserMedia){const o=t.mediaDevices.getUserMedia.bind(t.mediaDevices);t.mediaDevices.getUserMedia=function(d){return n(d,c=>o(c).then(u=>{if(c.audio&&!u.getAudioTracks().length||c.video&&!u.getVideoTracks().length)throw u.getTracks().forEach(l=>{l.stop()}),new DOMException("","NotFoundError");return u},u=>Promise.reject(s(u))))}}}function kc(i){i.MediaStream=i.MediaStream||i.webkitMediaStream}function Tc(i){if(typeof i=="object"&&i.RTCPeerConnection&&!("ontrack"in i.RTCPeerConnection.prototype)){Object.defineProperty(i.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(t){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=t)},enumerable:!0,configurable:!0});const e=i.RTCPeerConnection.prototype.setRemoteDescription;i.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=r=>{r.stream.addEventListener("addtrack",n=>{let s;i.RTCPeerConnection.prototype.getReceivers?s=this.getReceivers().find(o=>o.track&&o.track.id===n.track.id):s={track:n.track};const a=new Event("track");a.track=n.track,a.receiver=s,a.transceiver={receiver:s},a.streams=[r.stream],this.dispatchEvent(a)}),r.stream.getTracks().forEach(n=>{let s;i.RTCPeerConnection.prototype.getReceivers?s=this.getReceivers().find(o=>o.track&&o.track.id===n.id):s={track:n};const a=new Event("track");a.track=n,a.receiver=s,a.transceiver={receiver:s},a.streams=[r.stream],this.dispatchEvent(a)})},this.addEventListener("addstream",this._ontrackpoly)),e.apply(this,arguments)}}else Et(i,"track",e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e))}function zc(i){if(typeof i=="object"&&i.RTCPeerConnection&&!("getSenders"in i.RTCPeerConnection.prototype)&&"createDTMFSender"in i.RTCPeerConnection.prototype){const e=function(n,s){return{track:s,get dtmf(){return this._dtmf===void 0&&(s.kind==="audio"?this._dtmf=n.createDTMFSender(s):this._dtmf=null),this._dtmf},_pc:n}};if(!i.RTCPeerConnection.prototype.getSenders){i.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};const n=i.RTCPeerConnection.prototype.addTrack;i.RTCPeerConnection.prototype.addTrack=function(o,d){let c=n.apply(this,arguments);return c||(c=e(this,o),this._senders.push(c)),c};const s=i.RTCPeerConnection.prototype.removeTrack;i.RTCPeerConnection.prototype.removeTrack=function(o){s.apply(this,arguments);const d=this._senders.indexOf(o);d!==-1&&this._senders.splice(d,1)}}const t=i.RTCPeerConnection.prototype.addStream;i.RTCPeerConnection.prototype.addStream=function(s){this._senders=this._senders||[],t.apply(this,[s]),s.getTracks().forEach(a=>{this._senders.push(e(this,a))})};const r=i.RTCPeerConnection.prototype.removeStream;i.RTCPeerConnection.prototype.removeStream=function(s){this._senders=this._senders||[],r.apply(this,[s]),s.getTracks().forEach(a=>{const o=this._senders.find(d=>d.track===a);o&&this._senders.splice(this._senders.indexOf(o),1)})}}else if(typeof i=="object"&&i.RTCPeerConnection&&"getSenders"in i.RTCPeerConnection.prototype&&"createDTMFSender"in i.RTCPeerConnection.prototype&&i.RTCRtpSender&&!("dtmf"in i.RTCRtpSender.prototype)){const e=i.RTCPeerConnection.prototype.getSenders;i.RTCPeerConnection.prototype.getSenders=function(){const r=e.apply(this,[]);return r.forEach(n=>n._pc=this),r},Object.defineProperty(i.RTCRtpSender.prototype,"dtmf",{get(){return this._dtmf===void 0&&(this.track.kind==="audio"?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function Ac(i){if(!(typeof i=="object"&&i.RTCPeerConnection&&i.RTCRtpSender&&i.RTCRtpReceiver))return;if(!("getStats"in i.RTCRtpSender.prototype)){const t=i.RTCPeerConnection.prototype.getSenders;t&&(i.RTCPeerConnection.prototype.getSenders=function(){const s=t.apply(this,[]);return s.forEach(a=>a._pc=this),s});const r=i.RTCPeerConnection.prototype.addTrack;r&&(i.RTCPeerConnection.prototype.addTrack=function(){const s=r.apply(this,arguments);return s._pc=this,s}),i.RTCRtpSender.prototype.getStats=function(){const s=this;return this._pc.getStats().then(a=>Ec(a,s.track,!0))}}if(!("getStats"in i.RTCRtpReceiver.prototype)){const t=i.RTCPeerConnection.prototype.getReceivers;t&&(i.RTCPeerConnection.prototype.getReceivers=function(){const n=t.apply(this,[]);return n.forEach(s=>s._pc=this),n}),Et(i,"track",r=>(r.receiver._pc=r.srcElement,r)),i.RTCRtpReceiver.prototype.getStats=function(){const n=this;return this._pc.getStats().then(s=>Ec(s,n.track,!1))}}if(!("getStats"in i.RTCRtpSender.prototype&&"getStats"in i.RTCRtpReceiver.prototype))return;const e=i.RTCPeerConnection.prototype.getStats;i.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof i.MediaStreamTrack){const r=arguments[0];let n,s,a;return this.getSenders().forEach(o=>{o.track===r&&(n?a=!0:n=o)}),this.getReceivers().forEach(o=>(o.track===r&&(s?a=!0:s=o),o.track===r)),a||n&&s?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):n?n.getStats():s?s.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return e.apply(this,arguments)}}function Rc(i){i.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(a=>this._shimmedLocalStreams[a][0])};const e=i.RTCPeerConnection.prototype.addTrack;i.RTCPeerConnection.prototype.addTrack=function(a,o){if(!o)return e.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};const d=e.apply(this,arguments);return this._shimmedLocalStreams[o.id]?this._shimmedLocalStreams[o.id].indexOf(d)===-1&&this._shimmedLocalStreams[o.id].push(d):this._shimmedLocalStreams[o.id]=[o,d],d};const t=i.RTCPeerConnection.prototype.addStream;i.RTCPeerConnection.prototype.addStream=function(a){this._shimmedLocalStreams=this._shimmedLocalStreams||{},a.getTracks().forEach(c=>{if(this.getSenders().find(l=>l.track===c))throw new DOMException("Track already exists.","InvalidAccessError")});const o=this.getSenders();t.apply(this,arguments);const d=this.getSenders().filter(c=>o.indexOf(c)===-1);this._shimmedLocalStreams[a.id]=[a].concat(d)};const r=i.RTCPeerConnection.prototype.removeStream;i.RTCPeerConnection.prototype.removeStream=function(a){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[a.id],r.apply(this,arguments)};const n=i.RTCPeerConnection.prototype.removeTrack;i.RTCPeerConnection.prototype.removeTrack=function(a){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},a&&Object.keys(this._shimmedLocalStreams).forEach(o=>{const d=this._shimmedLocalStreams[o].indexOf(a);d!==-1&&this._shimmedLocalStreams[o].splice(d,1),this._shimmedLocalStreams[o].length===1&&delete this._shimmedLocalStreams[o]}),n.apply(this,arguments)}}function Dc(i,e){if(!i.RTCPeerConnection)return;if(i.RTCPeerConnection.prototype.addTrack&&e.version>=65)return Rc(i);const t=i.RTCPeerConnection.prototype.getLocalStreams;i.RTCPeerConnection.prototype.getLocalStreams=function(){const u=t.apply(this);return this._reverseStreams=this._reverseStreams||{},u.map(l=>this._reverseStreams[l.id])};const r=i.RTCPeerConnection.prototype.addStream;i.RTCPeerConnection.prototype.addStream=function(u){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},u.getTracks().forEach(l=>{if(this.getSenders().find(p=>p.track===l))throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[u.id]){const l=new i.MediaStream(u.getTracks());this._streams[u.id]=l,this._reverseStreams[l.id]=u,u=l}r.apply(this,[u])};const n=i.RTCPeerConnection.prototype.removeStream;i.RTCPeerConnection.prototype.removeStream=function(u){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},n.apply(this,[this._streams[u.id]||u]),delete this._reverseStreams[this._streams[u.id]?this._streams[u.id].id:u.id],delete this._streams[u.id]},i.RTCPeerConnection.prototype.addTrack=function(u,l){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");const h=[].slice.call(arguments,1);if(h.length!==1||!h[0].getTracks().find(v=>v===u))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");if(this.getSenders().find(v=>v.track===u))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};const f=this._streams[l.id];if(f)f.addTrack(u),Promise.resolve().then(()=>{this.dispatchEvent(new Event("negotiationneeded"))});else{const v=new i.MediaStream([u]);this._streams[l.id]=v,this._reverseStreams[v.id]=l,this.addStream(v)}return this.getSenders().find(v=>v.track===u)};function s(c,u){let l=u.sdp;return Object.keys(c._reverseStreams||[]).forEach(h=>{const p=c._reverseStreams[h],f=c._streams[p.id];l=l.replace(new RegExp(f.id,"g"),p.id)}),new RTCSessionDescription({type:u.type,sdp:l})}function a(c,u){let l=u.sdp;return Object.keys(c._reverseStreams||[]).forEach(h=>{const p=c._reverseStreams[h],f=c._streams[p.id];l=l.replace(new RegExp(p.id,"g"),f.id)}),new RTCSessionDescription({type:u.type,sdp:l})}["createOffer","createAnswer"].forEach(function(c){const u=i.RTCPeerConnection.prototype[c],l={[c](){const h=arguments;return arguments.length&&typeof arguments[0]=="function"?u.apply(this,[f=>{const v=s(this,f);h[0].apply(null,[v])},f=>{h[1]&&h[1].apply(null,f)},arguments[2]]):u.apply(this,arguments).then(f=>s(this,f))}};i.RTCPeerConnection.prototype[c]=l[c]});const o=i.RTCPeerConnection.prototype.setLocalDescription;i.RTCPeerConnection.prototype.setLocalDescription=function(){return!arguments.length||!arguments[0].type?o.apply(this,arguments):(arguments[0]=a(this,arguments[0]),o.apply(this,arguments))};const d=Object.getOwnPropertyDescriptor(i.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(i.RTCPeerConnection.prototype,"localDescription",{get(){const c=d.get.apply(this);return c.type===""?c:s(this,c)}}),i.RTCPeerConnection.prototype.removeTrack=function(u){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!u._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(!(u._pc===this))throw new DOMException("Sender was not created by this connection.","InvalidAccessError");this._streams=this._streams||{};let h;Object.keys(this._streams).forEach(p=>{this._streams[p].getTracks().find(v=>u.track===v)&&(h=this._streams[p])}),h&&(h.getTracks().length===1?this.removeStream(this._reverseStreams[h.id]):h.removeTrack(u.track),this.dispatchEvent(new Event("negotiationneeded")))}}function Yn(i,e){!i.RTCPeerConnection&&i.webkitRTCPeerConnection&&(i.RTCPeerConnection=i.webkitRTCPeerConnection),i.RTCPeerConnection&&e.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(t){const r=i.RTCPeerConnection.prototype[t],n={[t](){return arguments[0]=new(t==="addIceCandidate"?i.RTCIceCandidate:i.RTCSessionDescription)(arguments[0]),r.apply(this,arguments)}};i.RTCPeerConnection.prototype[t]=n[t]})}function xc(i,e){Et(i,"negotiationneeded",t=>{const r=t.target;if(!((e.version<72||r.getConfiguration&&r.getConfiguration().sdpSemantics==="plan-b")&&r.signalingState!=="stable"))return t})}const Ic=Object.freeze(Object.defineProperty({__proto__:null,fixNegotiationNeeded:xc,shimAddTrackRemoveTrack:Dc,shimAddTrackRemoveTrackWithNative:Rc,shimGetSendersWithDtmf:zc,shimGetUserMedia:Cc,shimMediaStream:kc,shimOnTrack:Tc,shimPeerConnection:Yn,shimSenderReceiverGetStats:Ac},Symbol.toStringTag,{value:"Module"}));function Oc(i,e){const t=i&&i.navigator,r=i&&i.MediaStreamTrack;if(t.getUserMedia=function(n,s,a){Zn("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),t.mediaDevices.getUserMedia(n).then(s,a)},!(e.version>55&&"autoGainControl"in t.mediaDevices.getSupportedConstraints())){const n=function(a,o,d){o in a&&!(d in a)&&(a[d]=a[o],delete a[o])},s=t.mediaDevices.getUserMedia.bind(t.mediaDevices);if(t.mediaDevices.getUserMedia=function(a){return typeof a=="object"&&typeof a.audio=="object"&&(a=JSON.parse(JSON.stringify(a)),n(a.audio,"autoGainControl","mozAutoGainControl"),n(a.audio,"noiseSuppression","mozNoiseSuppression")),s(a)},r&&r.prototype.getSettings){const a=r.prototype.getSettings;r.prototype.getSettings=function(){const o=a.apply(this,arguments);return n(o,"mozAutoGainControl","autoGainControl"),n(o,"mozNoiseSuppression","noiseSuppression"),o}}if(r&&r.prototype.applyConstraints){const a=r.prototype.applyConstraints;r.prototype.applyConstraints=function(o){return this.kind==="audio"&&typeof o=="object"&&(o=JSON.parse(JSON.stringify(o)),n(o,"autoGainControl","mozAutoGainControl"),n(o,"noiseSuppression","mozNoiseSuppression")),a.apply(this,[o])}}}}function Ov(i,e){i.navigator.mediaDevices&&"getDisplayMedia"in i.navigator.mediaDevices||i.navigator.mediaDevices&&(i.navigator.mediaDevices.getDisplayMedia=function(r){if(!(r&&r.video)){const n=new DOMException("getDisplayMedia without video constraints is undefined");return n.name="NotFoundError",n.code=8,Promise.reject(n)}return r.video===!0?r.video={mediaSource:e}:r.video.mediaSource=e,i.navigator.mediaDevices.getUserMedia(r)})}function Mc(i){typeof i=="object"&&i.RTCTrackEvent&&"receiver"in i.RTCTrackEvent.prototype&&!("transceiver"in i.RTCTrackEvent.prototype)&&Object.defineProperty(i.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function es(i,e){if(typeof i!="object"||!(i.RTCPeerConnection||i.mozRTCPeerConnection))return;!i.RTCPeerConnection&&i.mozRTCPeerConnection&&(i.RTCPeerConnection=i.mozRTCPeerConnection),e.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(n){const s=i.RTCPeerConnection.prototype[n],a={[n](){return arguments[0]=new(n==="addIceCandidate"?i.RTCIceCandidate:i.RTCSessionDescription)(arguments[0]),s.apply(this,arguments)}};i.RTCPeerConnection.prototype[n]=a[n]});const t={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},r=i.RTCPeerConnection.prototype.getStats;i.RTCPeerConnection.prototype.getStats=function(){const[s,a,o]=arguments;return r.apply(this,[s||null]).then(d=>{if(e.version<53&&!a)try{d.forEach(c=>{c.type=t[c.type]||c.type})}catch(c){if(c.name!=="TypeError")throw c;d.forEach((u,l)=>{d.set(l,Object.assign({},u,{type:t[u.type]||u.type}))})}return d}).then(a,o)}}function Pc(i){if(!(typeof i=="object"&&i.RTCPeerConnection&&i.RTCRtpSender)||i.RTCRtpSender&&"getStats"in i.RTCRtpSender.prototype)return;const e=i.RTCPeerConnection.prototype.getSenders;e&&(i.RTCPeerConnection.prototype.getSenders=function(){const n=e.apply(this,[]);return n.forEach(s=>s._pc=this),n});const t=i.RTCPeerConnection.prototype.addTrack;t&&(i.RTCPeerConnection.prototype.addTrack=function(){const n=t.apply(this,arguments);return n._pc=this,n}),i.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}}function Lc(i){if(!(typeof i=="object"&&i.RTCPeerConnection&&i.RTCRtpSender)||i.RTCRtpSender&&"getStats"in i.RTCRtpReceiver.prototype)return;const e=i.RTCPeerConnection.prototype.getReceivers;e&&(i.RTCPeerConnection.prototype.getReceivers=function(){const r=e.apply(this,[]);return r.forEach(n=>n._pc=this),r}),Et(i,"track",t=>(t.receiver._pc=t.srcElement,t)),i.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function Uc(i){!i.RTCPeerConnection||"removeStream"in i.RTCPeerConnection.prototype||(i.RTCPeerConnection.prototype.removeStream=function(t){Zn("removeStream","removeTrack"),this.getSenders().forEach(r=>{r.track&&t.getTracks().includes(r.track)&&this.removeTrack(r)})})}function Gc(i){i.DataChannel&&!i.RTCDataChannel&&(i.RTCDataChannel=i.DataChannel)}function Nc(i){if(!(typeof i=="object"&&i.RTCPeerConnection))return;const e=i.RTCPeerConnection.prototype.addTransceiver;e&&(i.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let r=arguments[1]&&arguments[1].sendEncodings;r===void 0&&(r=[]),r=[...r];const n=r.length>0;n&&r.forEach(a=>{if("rid"in a&&!/^[a-z0-9]{0,16}$/i.test(a.rid))throw new TypeError("Invalid RID value provided.");if("scaleResolutionDownBy"in a&&!(parseFloat(a.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in a&&!(parseFloat(a.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")});const s=e.apply(this,arguments);if(n){const{sender:a}=s,o=a.getParameters();(!("encodings"in o)||o.encodings.length===1&&Object.keys(o.encodings[0]).length===0)&&(o.encodings=r,a.sendEncodings=r,this.setParametersPromises.push(a.setParameters(o).then(()=>{delete a.sendEncodings}).catch(()=>{delete a.sendEncodings})))}return s})}function Bc(i){if(!(typeof i=="object"&&i.RTCRtpSender))return;const e=i.RTCRtpSender.prototype.getParameters;e&&(i.RTCRtpSender.prototype.getParameters=function(){const r=e.apply(this,arguments);return"encodings"in r||(r.encodings=[].concat(this.sendEncodings||[{}])),r})}function Vc(i){if(!(typeof i=="object"&&i.RTCPeerConnection))return;const e=i.RTCPeerConnection.prototype.createOffer;i.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>e.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):e.apply(this,arguments)}}function Fc(i){if(!(typeof i=="object"&&i.RTCPeerConnection))return;const e=i.RTCPeerConnection.prototype.createAnswer;i.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>e.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):e.apply(this,arguments)}}const jc=Object.freeze(Object.defineProperty({__proto__:null,shimAddTransceiver:Nc,shimCreateAnswer:Fc,shimCreateOffer:Vc,shimGetDisplayMedia:Ov,shimGetParameters:Bc,shimGetUserMedia:Oc,shimOnTrack:Mc,shimPeerConnection:es,shimRTCDataChannel:Gc,shimReceiverGetStats:Lc,shimRemoveStream:Uc,shimSenderGetStats:Pc},Symbol.toStringTag,{value:"Module"}));function Hc(i){if(!(typeof i!="object"||!i.RTCPeerConnection)){if("getLocalStreams"in i.RTCPeerConnection.prototype||(i.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in i.RTCPeerConnection.prototype)){const e=i.RTCPeerConnection.prototype.addTrack;i.RTCPeerConnection.prototype.addStream=function(r){this._localStreams||(this._localStreams=[]),this._localStreams.includes(r)||this._localStreams.push(r),r.getAudioTracks().forEach(n=>e.call(this,n,r)),r.getVideoTracks().forEach(n=>e.call(this,n,r))},i.RTCPeerConnection.prototype.addTrack=function(r,...n){return n&&n.forEach(s=>{this._localStreams?this._localStreams.includes(s)||this._localStreams.push(s):this._localStreams=[s]}),e.apply(this,arguments)}}"removeStream"in i.RTCPeerConnection.prototype||(i.RTCPeerConnection.prototype.removeStream=function(t){this._localStreams||(this._localStreams=[]);const r=this._localStreams.indexOf(t);if(r===-1)return;this._localStreams.splice(r,1);const n=t.getTracks();this.getSenders().forEach(s=>{n.includes(s.track)&&this.removeTrack(s)})})}}function $c(i){if(!(typeof i!="object"||!i.RTCPeerConnection)&&("getRemoteStreams"in i.RTCPeerConnection.prototype||(i.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in i.RTCPeerConnection.prototype))){Object.defineProperty(i.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(t){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=t),this.addEventListener("track",this._onaddstreampoly=r=>{r.streams.forEach(n=>{if(this._remoteStreams||(this._remoteStreams=[]),this._remoteStreams.includes(n))return;this._remoteStreams.push(n);const s=new Event("addstream");s.stream=n,this.dispatchEvent(s)})})}});const e=i.RTCPeerConnection.prototype.setRemoteDescription;i.RTCPeerConnection.prototype.setRemoteDescription=function(){const r=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(n){n.streams.forEach(s=>{if(r._remoteStreams||(r._remoteStreams=[]),r._remoteStreams.indexOf(s)>=0)return;r._remoteStreams.push(s);const a=new Event("addstream");a.stream=s,r.dispatchEvent(a)})}),e.apply(r,arguments)}}}function qc(i){if(typeof i!="object"||!i.RTCPeerConnection)return;const e=i.RTCPeerConnection.prototype,t=e.createOffer,r=e.createAnswer,n=e.setLocalDescription,s=e.setRemoteDescription,a=e.addIceCandidate;e.createOffer=function(c,u){const l=arguments.length>=2?arguments[2]:arguments[0],h=t.apply(this,[l]);return u?(h.then(c,u),Promise.resolve()):h},e.createAnswer=function(c,u){const l=arguments.length>=2?arguments[2]:arguments[0],h=r.apply(this,[l]);return u?(h.then(c,u),Promise.resolve()):h};let o=function(d,c,u){const l=n.apply(this,[d]);return u?(l.then(c,u),Promise.resolve()):l};e.setLocalDescription=o,o=function(d,c,u){const l=s.apply(this,[d]);return u?(l.then(c,u),Promise.resolve()):l},e.setRemoteDescription=o,o=function(d,c,u){const l=a.apply(this,[d]);return u?(l.then(c,u),Promise.resolve()):l},e.addIceCandidate=o}function Kc(i){const e=i&&i.navigator;if(e.mediaDevices&&e.mediaDevices.getUserMedia){const t=e.mediaDevices,r=t.getUserMedia.bind(t);e.mediaDevices.getUserMedia=n=>r(Wc(n))}!e.getUserMedia&&e.mediaDevices&&e.mediaDevices.getUserMedia&&(e.getUserMedia=(function(r,n,s){e.mediaDevices.getUserMedia(r).then(n,s)}).bind(e))}function Wc(i){return i&&i.video!==void 0?Object.assign({},i,{video:Sc(i.video)}):i}function Jc(i){if(!i.RTCPeerConnection)return;const e=i.RTCPeerConnection;i.RTCPeerConnection=function(r,n){if(r&&r.iceServers){const s=[];for(let a=0;a<r.iceServers.length;a++){let o=r.iceServers[a];o.urls===void 0&&o.url?(Zn("RTCIceServer.url","RTCIceServer.urls"),o=JSON.parse(JSON.stringify(o)),o.urls=o.url,delete o.url,s.push(o)):s.push(r.iceServers[a])}r.iceServers=s}return new e(r,n)},i.RTCPeerConnection.prototype=e.prototype,"generateCertificate"in e&&Object.defineProperty(i.RTCPeerConnection,"generateCertificate",{get(){return e.generateCertificate}})}function Xc(i){typeof i=="object"&&i.RTCTrackEvent&&"receiver"in i.RTCTrackEvent.prototype&&!("transceiver"in i.RTCTrackEvent.prototype)&&Object.defineProperty(i.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function Zc(i){const e=i.RTCPeerConnection.prototype.createOffer;i.RTCPeerConnection.prototype.createOffer=function(r){if(r){typeof r.offerToReceiveAudio<"u"&&(r.offerToReceiveAudio=!!r.offerToReceiveAudio);const n=this.getTransceivers().find(a=>a.receiver.track.kind==="audio");r.offerToReceiveAudio===!1&&n?n.direction==="sendrecv"?n.setDirection?n.setDirection("sendonly"):n.direction="sendonly":n.direction==="recvonly"&&(n.setDirection?n.setDirection("inactive"):n.direction="inactive"):r.offerToReceiveAudio===!0&&!n&&this.addTransceiver("audio",{direction:"recvonly"}),typeof r.offerToReceiveVideo<"u"&&(r.offerToReceiveVideo=!!r.offerToReceiveVideo);const s=this.getTransceivers().find(a=>a.receiver.track.kind==="video");r.offerToReceiveVideo===!1&&s?s.direction==="sendrecv"?s.setDirection?s.setDirection("sendonly"):s.direction="sendonly":s.direction==="recvonly"&&(s.setDirection?s.setDirection("inactive"):s.direction="inactive"):r.offerToReceiveVideo===!0&&!s&&this.addTransceiver("video",{direction:"recvonly"})}return e.apply(this,arguments)}}function Qc(i){typeof i!="object"||i.AudioContext||(i.AudioContext=i.webkitAudioContext)}const Yc=Object.freeze(Object.defineProperty({__proto__:null,shimAudioContext:Qc,shimCallbacksAPI:qc,shimConstraints:Wc,shimCreateOfferLegacy:Zc,shimGetUserMedia:Kc,shimLocalStreamsAPI:Hc,shimRTCIceServerUrls:Jc,shimRemoteStreamsAPI:$c,shimTrackEventTransceiver:Xc},Symbol.toStringTag,{value:"Module"}));var ts={exports:{}},eu;function Mv(){return eu||(eu=1,function(i){const e={};e.generateIdentifier=function(){return Math.random().toString(36).substring(2,12)},e.localCName=e.generateIdentifier(),e.splitLines=function(t){return t.trim().split(`
80
80
  `).map(r=>r.trim())},e.splitSections=function(t){return t.split(`
81
81
  m=`).map((n,s)=>(s>0?"m="+n:n).trim()+`\r
82
82
  `)},e.getDescription=function(t){const r=e.splitSections(t);return r&&r[0]},e.getMediaSections=function(t){const r=e.splitSections(t);return r.shift(),r},e.matchPrefix=function(t,r){return e.splitLines(t).filter(n=>n.indexOf(r)===0)},e.parseCandidate=function(t){let r;t.indexOf("a=candidate:")===0?r=t.substring(12).split(" "):r=t.substring(10).split(" ");const n={foundation:r[0],component:{1:"rtp",2:"rtcp"}[r[1]]||r[1],protocol:r[2].toLowerCase(),priority:parseInt(r[3],10),ip:r[4],address:r[4],port:parseInt(r[5],10),type:r[7]};for(let s=8;s<r.length;s+=2)switch(r[s]){case"raddr":n.relatedAddress=r[s+1];break;case"rport":n.relatedPort=parseInt(r[s+1],10);break;case"tcptype":n.tcpType=r[s+1];break;case"ufrag":n.ufrag=r[s+1],n.usernameFragment=r[s+1];break;default:n[r[s]]===void 0&&(n[r[s]]=r[s+1]);break}return n},e.writeCandidate=function(t){const r=[];r.push(t.foundation);const n=t.component;n==="rtp"?r.push(1):n==="rtcp"?r.push(2):r.push(n),r.push(t.protocol.toUpperCase()),r.push(t.priority),r.push(t.address||t.ip),r.push(t.port);const s=t.type;return r.push("typ"),r.push(s),s!=="host"&&t.relatedAddress&&t.relatedPort&&(r.push("raddr"),r.push(t.relatedAddress),r.push("rport"),r.push(t.relatedPort)),t.tcpType&&t.protocol.toLowerCase()==="tcp"&&(r.push("tcptype"),r.push(t.tcpType)),(t.usernameFragment||t.ufrag)&&(r.push("ufrag"),r.push(t.usernameFragment||t.ufrag)),"candidate:"+r.join(" ")},e.parseIceOptions=function(t){return t.substring(14).split(" ")},e.parseRtpMap=function(t){let r=t.substring(9).split(" ");const n={payloadType:parseInt(r.shift(),10)};return r=r[0].split("/"),n.name=r[0],n.clockRate=parseInt(r[1],10),n.channels=r.length===3?parseInt(r[2],10):1,n.numChannels=n.channels,n},e.writeRtpMap=function(t){let r=t.payloadType;t.preferredPayloadType!==void 0&&(r=t.preferredPayloadType);const n=t.channels||t.numChannels||1;return"a=rtpmap:"+r+" "+t.name+"/"+t.clockRate+(n!==1?"/"+n:"")+`\r