@vkontakte/videoplayer-statistics 1.0.54-dev.cf4e48ed.0 → 1.0.54-dev.e8d7fe49.0

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/esnext.esm.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
- * @vkontakte/videoplayer-statistics v1.0.54-dev.cf4e48ed.0
3
- * Fri, 30 Aug 2024 10:31:27 GMT
2
+ * @vkontakte/videoplayer-statistics v1.0.54-dev.e8d7fe49.0
3
+ * Wed, 04 Sep 2024 18:36:52 GMT
4
4
  * https://st.mycdn.me/static/vkontakte-videoplayer/1-0-54/doc/
5
5
  */
6
- var Hc=Object.create;var Di=Object.defineProperty;var zc=Object.getOwnPropertyDescriptor;var Qc=Object.getOwnPropertyNames;var Yc=Object.getPrototypeOf,Jc=Object.prototype.hasOwnProperty;var n=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var Xc=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Qc(e))!Jc.call(r,o)&&o!==t&&Di(r,o,{get:()=>e[o],enumerable:!(i=zc(e,o))||i.enumerable});return r};var $i=(r,e,t)=>(t=r!=null?Hc(Yc(r)):{},Xc(e||!r||!r.__esModule?Di(t,"default",{value:r,enumerable:!0}):t,r));var Gi=n(()=>{"use strict"});var m=n((jr,Ki)=>{"use strict";var he=function(r){return r&&r.Math===Math&&r};Ki.exports=he(typeof globalThis=="object"&&globalThis)||he(typeof window=="object"&&window)||he(typeof self=="object"&&self)||he(typeof global=="object"&&global)||he(typeof jr=="object"&&jr)||function(){return this}()||Function("return this")()});var P=n((jm,Wi)=>{"use strict";Wi.exports=function(r){try{return!!r()}catch{return!0}}});var ge=n((Mm,Hi)=>{"use strict";var rl=P();Hi.exports=!rl(function(){var r=function(){}.bind();return typeof r!="function"||r.hasOwnProperty("prototype")})});var Mr=n((Fm,Ji)=>{"use strict";var tl=ge(),Yi=Function.prototype,zi=Yi.apply,Qi=Yi.call;Ji.exports=typeof Reflect=="object"&&Reflect.apply||(tl?Qi.bind(zi):function(){return Qi.apply(zi,arguments)})});var O=n((Bm,eo)=>{"use strict";var Xi=ge(),Zi=Function.prototype,Fr=Zi.call,il=Xi&&Zi.bind.bind(Fr,Fr);eo.exports=Xi?il:function(r){return function(){return Fr.apply(r,arguments)}}});var me=n((Um,to)=>{"use strict";var ro=O(),ol=ro({}.toString),nl=ro("".slice);to.exports=function(r){return nl(ol(r),8,-1)}});var Br=n((Vm,io)=>{"use strict";var al=me(),sl=O();io.exports=function(r){if(al(r)==="Function")return sl(r)}});var b=n((Gm,oo)=>{"use strict";var Ur=typeof document=="object"&&document.all;oo.exports=typeof Ur>"u"&&Ur!==void 0?function(r){return typeof r=="function"||r===Ur}:function(r){return typeof r=="function"}});var _=n((Km,no)=>{"use strict";var ul=P();no.exports=!ul(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})});var w=n((Wm,ao)=>{"use strict";var cl=ge(),Be=Function.prototype.call;ao.exports=cl?Be.bind(Be):function(){return Be.apply(Be,arguments)}});var lo=n(co=>{"use strict";var so={}.propertyIsEnumerable,uo=Object.getOwnPropertyDescriptor,ll=uo&&!so.call({1:2},1);co.f=ll?function(e){var t=uo(this,e);return!!t&&t.enumerable}:so});var be=n((zm,fo)=>{"use strict";fo.exports=function(r,e){return{enumerable:!(r&1),configurable:!(r&2),writable:!(r&4),value:e}}});var vo=n((Qm,po)=>{"use strict";var fl=O(),dl=P(),pl=me(),Vr=Object,vl=fl("".split);po.exports=dl(function(){return!Vr("z").propertyIsEnumerable(0)})?function(r){return pl(r)==="String"?vl(r,""):Vr(r)}:Vr});var ye=n((Ym,ho)=>{"use strict";ho.exports=function(r){return r==null}});var Ue=n((Jm,go)=>{"use strict";var hl=ye(),gl=TypeError;go.exports=function(r){if(hl(r))throw new gl("Can't call method on "+r);return r}});var Q=n((Xm,mo)=>{"use strict";var ml=vo(),bl=Ue();mo.exports=function(r){return ml(bl(r))}});var R=n((Zm,bo)=>{"use strict";var yl=b();bo.exports=function(r){return typeof r=="object"?r!==null:yl(r)}});var Ve=n((eb,yo)=>{"use strict";yo.exports={}});var D=n((rb,So)=>{"use strict";var Gr=Ve(),Kr=m(),Il=b(),Io=function(r){return Il(r)?r:void 0};So.exports=function(r,e){return arguments.length<2?Io(Gr[r])||Io(Kr[r]):Gr[r]&&Gr[r][e]||Kr[r]&&Kr[r][e]}});var Ge=n((tb,Eo)=>{"use strict";var Sl=O();Eo.exports=Sl({}.isPrototypeOf)});var Y=n((ib,qo)=>{"use strict";var El=m(),Po=El.navigator,To=Po&&Po.userAgent;qo.exports=To?String(To):""});var Hr=n((ob,Co)=>{"use strict";var xo=m(),Wr=Y(),Oo=xo.process,_o=xo.Deno,wo=Oo&&Oo.versions||_o&&_o.version,Ro=wo&&wo.v8,x,Ke;Ro&&(x=Ro.split("."),Ke=x[0]>0&&x[0]<4?1:+(x[0]+x[1]));!Ke&&Wr&&(x=Wr.match(/Edge\/(\d+)/),(!x||x[1]>=74)&&(x=Wr.match(/Chrome\/(\d+)/),x&&(Ke=+x[1])));Co.exports=Ke});var zr=n((nb,No)=>{"use strict";var Ao=Hr(),Pl=P(),Tl=m(),ql=Tl.String;No.exports=!!Object.getOwnPropertySymbols&&!Pl(function(){var r=Symbol("symbol detection");return!ql(r)||!(Object(r)instanceof Symbol)||!Symbol.sham&&Ao&&Ao<41})});var Qr=n((ab,Lo)=>{"use strict";var Ol=zr();Lo.exports=Ol&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var Yr=n((sb,ko)=>{"use strict";var _l=D(),wl=b(),Rl=Ge(),xl=Qr(),Cl=Object;ko.exports=xl?function(r){return typeof r=="symbol"}:function(r){var e=_l("Symbol");return wl(e)&&Rl(e.prototype,Cl(r))}});var Ie=n((ub,Do)=>{"use strict";var Al=String;Do.exports=function(r){try{return Al(r)}catch{return"Object"}}});var $=n((cb,$o)=>{"use strict";var Nl=b(),Ll=Ie(),kl=TypeError;$o.exports=function(r){if(Nl(r))return r;throw new kl(Ll(r)+" is not a function")}});var We=n((lb,jo)=>{"use strict";var Dl=$(),$l=ye();jo.exports=function(r,e){var t=r[e];return $l(t)?void 0:Dl(t)}});var Fo=n((fb,Mo)=>{"use strict";var Jr=w(),Xr=b(),Zr=R(),jl=TypeError;Mo.exports=function(r,e){var t,i;if(e==="string"&&Xr(t=r.toString)&&!Zr(i=Jr(t,r))||Xr(t=r.valueOf)&&!Zr(i=Jr(t,r))||e!=="string"&&Xr(t=r.toString)&&!Zr(i=Jr(t,r)))return i;throw new jl("Can't convert object to primitive value")}});var A=n((db,Bo)=>{"use strict";Bo.exports=!0});var Go=n((pb,Vo)=>{"use strict";var Uo=m(),Ml=Object.defineProperty;Vo.exports=function(r,e){try{Ml(Uo,r,{value:e,configurable:!0,writable:!0})}catch{Uo[r]=e}return e}});var Se=n((vb,Ho)=>{"use strict";var Fl=A(),Bl=m(),Ul=Go(),Ko="__core-js_shared__",Wo=Ho.exports=Bl[Ko]||Ul(Ko,{});(Wo.versions||(Wo.versions=[])).push({version:"3.38.0",mode:Fl?"pure":"global",copyright:"\xA9 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.38.0/LICENSE",source:"https://github.com/zloirock/core-js"})});var et=n((hb,Qo)=>{"use strict";var zo=Se();Qo.exports=function(r,e){return zo[r]||(zo[r]=e||{})}});var rt=n((gb,Yo)=>{"use strict";var Vl=Ue(),Gl=Object;Yo.exports=function(r){return Gl(Vl(r))}});var N=n((mb,Jo)=>{"use strict";var Kl=O(),Wl=rt(),Hl=Kl({}.hasOwnProperty);Jo.exports=Object.hasOwn||function(e,t){return Hl(Wl(e),t)}});var tt=n((bb,Xo)=>{"use strict";var zl=O(),Ql=0,Yl=Math.random(),Jl=zl(1 .toString);Xo.exports=function(r){return"Symbol("+(r===void 0?"":r)+")_"+Jl(++Ql+Yl,36)}});var T=n((yb,en)=>{"use strict";var Xl=m(),Zl=et(),Zo=N(),ef=tt(),rf=zr(),tf=Qr(),J=Xl.Symbol,it=Zl("wks"),of=tf?J.for||J:J&&J.withoutSetter||ef;en.exports=function(r){return Zo(it,r)||(it[r]=rf&&Zo(J,r)?J[r]:of("Symbol."+r)),it[r]}});var nn=n((Ib,on)=>{"use strict";var nf=w(),rn=R(),tn=Yr(),af=We(),sf=Fo(),uf=T(),cf=TypeError,lf=uf("toPrimitive");on.exports=function(r,e){if(!rn(r)||tn(r))return r;var t=af(r,lf),i;if(t){if(e===void 0&&(e="default"),i=nf(t,r,e),!rn(i)||tn(i))return i;throw new cf("Can't convert object to primitive value")}return e===void 0&&(e="number"),sf(r,e)}});var ot=n((Sb,an)=>{"use strict";var ff=nn(),df=Yr();an.exports=function(r){var e=ff(r,"string");return df(e)?e:e+""}});var He=n((Eb,un)=>{"use strict";var pf=m(),sn=R(),nt=pf.document,vf=sn(nt)&&sn(nt.createElement);un.exports=function(r){return vf?nt.createElement(r):{}}});var at=n((Pb,cn)=>{"use strict";var hf=_(),gf=P(),mf=He();cn.exports=!hf&&!gf(function(){return Object.defineProperty(mf("div"),"a",{get:function(){return 7}}).a!==7})});var dn=n(fn=>{"use strict";var bf=_(),yf=w(),If=lo(),Sf=be(),Ef=Q(),Pf=ot(),Tf=N(),qf=at(),ln=Object.getOwnPropertyDescriptor;fn.f=bf?ln:function(e,t){if(e=Ef(e),t=Pf(t),qf)try{return ln(e,t)}catch{}if(Tf(e,t))return Sf(!yf(If.f,e,t),e[t])}});var st=n((qb,pn)=>{"use strict";var Of=P(),_f=b(),wf=/#|\.prototype\./,Ee=function(r,e){var t=xf[Rf(r)];return t===Af?!0:t===Cf?!1:_f(e)?Of(e):!!e},Rf=Ee.normalize=function(r){return String(r).replace(wf,".").toLowerCase()},xf=Ee.data={},Cf=Ee.NATIVE="N",Af=Ee.POLYFILL="P";pn.exports=Ee});var Pe=n((Ob,hn)=>{"use strict";var vn=Br(),Nf=$(),Lf=ge(),kf=vn(vn.bind);hn.exports=function(r,e){return Nf(r),e===void 0?r:Lf?kf(r,e):function(){return r.apply(e,arguments)}}});var ut=n((_b,gn)=>{"use strict";var Df=_(),$f=P();gn.exports=Df&&$f(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})});var j=n((wb,mn)=>{"use strict";var jf=R(),Mf=String,Ff=TypeError;mn.exports=function(r){if(jf(r))return r;throw new Ff(Mf(r)+" is not an object")}});var V=n(yn=>{"use strict";var Bf=_(),Uf=at(),Vf=ut(),ze=j(),bn=ot(),Gf=TypeError,ct=Object.defineProperty,Kf=Object.getOwnPropertyDescriptor,lt="enumerable",ft="configurable",dt="writable";yn.f=Bf?Vf?function(e,t,i){if(ze(e),t=bn(t),ze(i),typeof e=="function"&&t==="prototype"&&"value"in i&&dt in i&&!i[dt]){var o=Kf(e,t);o&&o[dt]&&(e[t]=i.value,i={configurable:ft in i?i[ft]:o[ft],enumerable:lt in i?i[lt]:o[lt],writable:!1})}return ct(e,t,i)}:ct:function(e,t,i){if(ze(e),t=bn(t),ze(i),Uf)try{return ct(e,t,i)}catch{}if("get"in i||"set"in i)throw new Gf("Accessors not supported");return"value"in i&&(e[t]=i.value),e}});var X=n((xb,In)=>{"use strict";var Wf=_(),Hf=V(),zf=be();In.exports=Wf?function(r,e,t){return Hf.f(r,e,zf(1,t))}:function(r,e,t){return r[e]=t,r}});var L=n((Cb,En)=>{"use strict";var Te=m(),Qf=Mr(),Yf=Br(),Jf=b(),Xf=dn().f,Zf=st(),Z=Ve(),ed=Pe(),ee=X(),Sn=N();Se();var rd=function(r){var e=function(t,i,o){if(this instanceof e){switch(arguments.length){case 0:return new r;case 1:return new r(t);case 2:return new r(t,i)}return new r(t,i,o)}return Qf(r,this,arguments)};return e.prototype=r.prototype,e};En.exports=function(r,e){var t=r.target,i=r.global,o=r.stat,a=r.proto,u=i?Te:o?Te[t]:Te[t]&&Te[t].prototype,l=i?Z:Z[t]||ee(Z,t,{})[t],p=l.prototype,f,d,v,s,c,h,y,I,g;for(s in e)f=Zf(i?s:t+(o?".":"#")+s,r.forced),d=!f&&u&&Sn(u,s),h=l[s],d&&(r.dontCallGetSet?(g=Xf(u,s),y=g&&g.value):y=u[s]),c=d&&y?y:e[s],!(!f&&!a&&typeof h==typeof c)&&(r.bind&&d?I=ed(c,Te):r.wrap&&d?I=rd(c):a&&Jf(c)?I=Yf(c):I=c,(r.sham||c&&c.sham||h&&h.sham)&&ee(I,"sham",!0),ee(l,s,I),a&&(v=t+"Prototype",Sn(Z,v)||ee(Z,v,{}),ee(Z[v],s,c),r.real&&p&&(f||!p[s])&&ee(p,s,c)))}});var pt=n((Ab,Pn)=>{"use strict";var qe=m(),td=Y(),id=me(),Qe=function(r){return td.slice(0,r.length)===r};Pn.exports=function(){return Qe("Bun/")?"BUN":Qe("Cloudflare-Workers")?"CLOUDFLARE":Qe("Deno/")?"DENO":Qe("Node.js/")?"NODE":qe.Bun&&typeof Bun.version=="string"?"BUN":qe.Deno&&typeof Deno.version=="object"?"DENO":id(qe.process)==="process"?"NODE":qe.window&&qe.document?"BROWSER":"REST"}()});var Ye=n((Nb,Tn)=>{"use strict";var od=pt();Tn.exports=od==="NODE"});var re=n((Lb,qn)=>{"use strict";var nd=X();qn.exports=function(r,e,t,i){return i&&i.enumerable?r[e]=t:nd(r,e,t),r}});var _n=n((kb,On)=>{"use strict";var ad=O(),sd=$();On.exports=function(r,e,t){try{return ad(sd(Object.getOwnPropertyDescriptor(r,e)[t]))}catch{}}});var Rn=n((Db,wn)=>{"use strict";var ud=R();wn.exports=function(r){return ud(r)||r===null}});var Cn=n(($b,xn)=>{"use strict";var cd=Rn(),ld=String,fd=TypeError;xn.exports=function(r){if(cd(r))return r;throw new fd("Can't set "+ld(r)+" as a prototype")}});var vt=n((jb,An)=>{"use strict";var dd=_n(),pd=R(),vd=Ue(),hd=Cn();An.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var r=!1,e={},t;try{t=dd(Object.prototype,"__proto__","set"),t(e,[]),r=e instanceof Array}catch{}return function(o,a){return vd(o),hd(a),pd(o)&&(r?t(o,a):o.__proto__=a),o}}():void 0)});var Je=n((Mb,Ln)=>{"use strict";var gd=T(),md=gd("toStringTag"),Nn={};Nn[md]="z";Ln.exports=String(Nn)==="[object z]"});var Ze=n((Fb,kn)=>{"use strict";var bd=Je(),yd=b(),Xe=me(),Id=T(),Sd=Id("toStringTag"),Ed=Object,Pd=Xe(function(){return arguments}())==="Arguments",Td=function(r,e){try{return r[e]}catch{}};kn.exports=bd?Xe:function(r){var e,t,i;return r===void 0?"Undefined":r===null?"Null":typeof(t=Td(e=Ed(r),Sd))=="string"?t:Pd?Xe(e):(i=Xe(e))==="Object"&&yd(e.callee)?"Arguments":i}});var $n=n((Bb,Dn)=>{"use strict";var qd=Je(),Od=Ze();Dn.exports=qd?{}.toString:function(){return"[object "+Od(this)+"]"}});var Oe=n((Ub,Mn)=>{"use strict";var _d=Je(),wd=V().f,Rd=X(),xd=N(),Cd=$n(),Ad=T(),jn=Ad("toStringTag");Mn.exports=function(r,e,t,i){var o=t?r:r&&r.prototype;o&&(xd(o,jn)||wd(o,jn,{configurable:!0,value:e}),i&&!_d&&Rd(o,"toString",Cd))}});var Bn=n((Vb,Fn)=>{"use strict";var Nd=V();Fn.exports=function(r,e,t){return Nd.f(r,e,t)}});var Gn=n((Gb,Vn)=>{"use strict";var Ld=D(),kd=Bn(),Dd=T(),$d=_(),Un=Dd("species");Vn.exports=function(r){var e=Ld(r);$d&&e&&!e[Un]&&kd(e,Un,{configurable:!0,get:function(){return this}})}});var Wn=n((Kb,Kn)=>{"use strict";var jd=Ge(),Md=TypeError;Kn.exports=function(r,e){if(jd(e,r))return r;throw new Md("Incorrect invocation")}});var gt=n((Wb,Hn)=>{"use strict";var Fd=O(),Bd=b(),ht=Se(),Ud=Fd(Function.toString);Bd(ht.inspectSource)||(ht.inspectSource=function(r){return Ud(r)});Hn.exports=ht.inspectSource});var Zn=n((Hb,Xn)=>{"use strict";var Vd=O(),Gd=P(),zn=b(),Kd=Ze(),Wd=D(),Hd=gt(),Qn=function(){},Yn=Wd("Reflect","construct"),mt=/^\s*(?:class|function)\b/,zd=Vd(mt.exec),Qd=!mt.test(Qn),_e=function(e){if(!zn(e))return!1;try{return Yn(Qn,[],e),!0}catch{return!1}},Jn=function(e){if(!zn(e))return!1;switch(Kd(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return Qd||!!zd(mt,Hd(e))}catch{return!0}};Jn.sham=!0;Xn.exports=!Yn||Gd(function(){var r;return _e(_e.call)||!_e(Object)||!_e(function(){r=!0})||r})?Jn:_e});var ra=n((zb,ea)=>{"use strict";var Yd=Zn(),Jd=Ie(),Xd=TypeError;ea.exports=function(r){if(Yd(r))return r;throw new Xd(Jd(r)+" is not a constructor")}});var bt=n((Qb,ia)=>{"use strict";var ta=j(),Zd=ra(),ep=ye(),rp=T(),tp=rp("species");ia.exports=function(r,e){var t=ta(r).constructor,i;return t===void 0||ep(i=ta(t)[tp])?e:Zd(i)}});var yt=n((Yb,oa)=>{"use strict";var ip=D();oa.exports=ip("document","documentElement")});var aa=n((Jb,na)=>{"use strict";var op=O();na.exports=op([].slice)});var ua=n((Xb,sa)=>{"use strict";var np=TypeError;sa.exports=function(r,e){if(r<e)throw new np("Not enough arguments");return r}});var It=n((Zb,ca)=>{"use strict";var ap=Y();ca.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(ap)});var Rt=n((ey,ba)=>{"use strict";var q=m(),sp=Mr(),up=Pe(),la=b(),cp=N(),ma=P(),fa=yt(),lp=aa(),da=He(),fp=ua(),dp=It(),pp=Ye(),Ot=q.setImmediate,_t=q.clearImmediate,vp=q.process,St=q.Dispatch,hp=q.Function,pa=q.MessageChannel,gp=q.String,Et=0,we={},va="onreadystatechange",Re,G,Pt,Tt;ma(function(){Re=q.location});var wt=function(r){if(cp(we,r)){var e=we[r];delete we[r],e()}},qt=function(r){return function(){wt(r)}},ha=function(r){wt(r.data)},ga=function(r){q.postMessage(gp(r),Re.protocol+"//"+Re.host)};(!Ot||!_t)&&(Ot=function(e){fp(arguments.length,1);var t=la(e)?e:hp(e),i=lp(arguments,1);return we[++Et]=function(){sp(t,void 0,i)},G(Et),Et},_t=function(e){delete we[e]},pp?G=function(r){vp.nextTick(qt(r))}:St&&St.now?G=function(r){St.now(qt(r))}:pa&&!dp?(Pt=new pa,Tt=Pt.port2,Pt.port1.onmessage=ha,G=up(Tt.postMessage,Tt)):q.addEventListener&&la(q.postMessage)&&!q.importScripts&&Re&&Re.protocol!=="file:"&&!ma(ga)?(G=ga,q.addEventListener("message",ha,!1)):va in da("script")?G=function(r){fa.appendChild(da("script"))[va]=function(){fa.removeChild(this),wt(r)}}:G=function(r){setTimeout(qt(r),0)});ba.exports={set:Ot,clear:_t}});var Sa=n((ry,Ia)=>{"use strict";var ya=m(),mp=_(),bp=Object.getOwnPropertyDescriptor;Ia.exports=function(r){if(!mp)return ya[r];var e=bp(ya,r);return e&&e.value}});var xt=n((ty,Pa)=>{"use strict";var Ea=function(){this.head=null,this.tail=null};Ea.prototype={add:function(r){var e={item:r,next:null},t=this.tail;t?t.next=e:this.head=e,this.tail=e},get:function(){var r=this.head;if(r){var e=this.head=r.next;return e===null&&(this.tail=null),r.item}}};Pa.exports=Ea});var qa=n((iy,Ta)=>{"use strict";var yp=Y();Ta.exports=/ipad|iphone|ipod/i.test(yp)&&typeof Pebble<"u"});var _a=n((oy,Oa)=>{"use strict";var Ip=Y();Oa.exports=/web0s(?!.*chrome)/i.test(Ip)});var La=n((ny,Na)=>{"use strict";var ie=m(),Sp=Sa(),wa=Pe(),Ct=Rt().set,Ep=xt(),Pp=It(),Tp=qa(),qp=_a(),At=Ye(),Ra=ie.MutationObserver||ie.WebKitMutationObserver,xa=ie.document,Ca=ie.process,er=ie.Promise,kt=Sp("queueMicrotask"),te,Nt,Lt,rr,Aa;kt||(xe=new Ep,Ce=function(){var r,e;for(At&&(r=Ca.domain)&&r.exit();e=xe.get();)try{e()}catch(t){throw xe.head&&te(),t}r&&r.enter()},!Pp&&!At&&!qp&&Ra&&xa?(Nt=!0,Lt=xa.createTextNode(""),new Ra(Ce).observe(Lt,{characterData:!0}),te=function(){Lt.data=Nt=!Nt}):!Tp&&er&&er.resolve?(rr=er.resolve(void 0),rr.constructor=er,Aa=wa(rr.then,rr),te=function(){Aa(Ce)}):At?te=function(){Ca.nextTick(Ce)}:(Ct=wa(Ct,ie),te=function(){Ct(Ce)}),kt=function(r){xe.head||te(),xe.add(r)});var xe,Ce;Na.exports=kt});var Da=n((ay,ka)=>{"use strict";ka.exports=function(r,e){try{arguments.length===1?console.error(r):console.error(r,e)}catch{}}});var tr=n((sy,$a)=>{"use strict";$a.exports=function(r){try{return{error:!1,value:r()}}catch(e){return{error:!0,value:e}}}});var Fa=n((uy,Ma)=>{"use strict";var Op=m(),_p=b(),ja=Op.WeakMap;Ma.exports=_p(ja)&&/native code/.test(String(ja))});var ir=n((cy,Ua)=>{"use strict";var wp=et(),Rp=tt(),Ba=wp("keys");Ua.exports=function(r){return Ba[r]||(Ba[r]=Rp(r))}});var or=n((ly,Va)=>{"use strict";Va.exports={}});var Mt=n((fy,Wa)=>{"use strict";var xp=Fa(),Ka=m(),Cp=R(),Ap=X(),Dt=N(),$t=Se(),Np=ir(),Lp=or(),Ga="Object already initialized",jt=Ka.TypeError,kp=Ka.WeakMap,nr,Ae,ar,Dp=function(r){return ar(r)?Ae(r):nr(r,{})},$p=function(r){return function(e){var t;if(!Cp(e)||(t=Ae(e)).type!==r)throw new jt("Incompatible receiver, "+r+" required");return t}};xp||$t.state?(C=$t.state||($t.state=new kp),C.get=C.get,C.has=C.has,C.set=C.set,nr=function(r,e){if(C.has(r))throw new jt(Ga);return e.facade=r,C.set(r,e),e},Ae=function(r){return C.get(r)||{}},ar=function(r){return C.has(r)}):(K=Np("state"),Lp[K]=!0,nr=function(r,e){if(Dt(r,K))throw new jt(Ga);return e.facade=r,Ap(r,K,e),e},Ae=function(r){return Dt(r,K)?r[K]:{}},ar=function(r){return Dt(r,K)});var C,K;Wa.exports={set:nr,get:Ae,has:ar,enforce:Dp,getterFor:$p}});var W=n((dy,Ha)=>{"use strict";var jp=m();Ha.exports=jp.Promise});var oe=n((py,Ja)=>{"use strict";var Mp=m(),Ne=W(),Fp=b(),Bp=st(),Up=gt(),Vp=T(),za=pt(),Gp=A(),Ft=Hr(),Qa=Ne&&Ne.prototype,Kp=Vp("species"),Bt=!1,Ya=Fp(Mp.PromiseRejectionEvent),Wp=Bp("Promise",function(){var r=Up(Ne),e=r!==String(Ne);if(!e&&Ft===66||Gp&&!(Qa.catch&&Qa.finally))return!0;if(!Ft||Ft<51||!/native code/.test(r)){var t=new Ne(function(a){a(1)}),i=function(a){a(function(){},function(){})},o=t.constructor={};if(o[Kp]=i,Bt=t.then(function(){})instanceof i,!Bt)return!0}return!e&&(za==="BROWSER"||za==="DENO")&&!Ya});Ja.exports={CONSTRUCTOR:Wp,REJECTION_EVENT:Ya,SUBCLASSING:Bt}});var ne=n((vy,Za)=>{"use strict";var Xa=$(),Hp=TypeError,zp=function(r){var e,t;this.promise=new r(function(i,o){if(e!==void 0||t!==void 0)throw new Hp("Bad Promise constructor");e=i,t=o}),this.resolve=Xa(e),this.reject=Xa(t)};Za.exports.f=function(r){return new zp(r)}});var bs=n(()=>{"use strict";var Qp=L(),Yp=A(),lr=Ye(),U=m(),ce=w(),es=re(),rs=vt(),Jp=Oe(),Xp=Gn(),Zp=$(),cr=b(),ev=R(),rv=Wn(),tv=bt(),as=Rt().set,Wt=La(),iv=Da(),ov=tr(),nv=xt(),ss=Mt(),fr=W(),Ht=oe(),us=ne(),dr="Promise",cs=Ht.CONSTRUCTOR,av=Ht.REJECTION_EVENT,sv=Ht.SUBCLASSING,Ut=ss.getterFor(dr),uv=ss.set,ae=fr&&fr.prototype,H=fr,sr=ae,ls=U.TypeError,Vt=U.document,zt=U.process,Gt=us.f,cv=Gt,lv=!!(Vt&&Vt.createEvent&&U.dispatchEvent),fs="unhandledrejection",fv="rejectionhandled",ts=0,ds=1,dv=2,Qt=1,ps=2,ur,is,pv,os,vs=function(r){var e;return ev(r)&&cr(e=r.then)?e:!1},hs=function(r,e){var t=e.value,i=e.state===ds,o=i?r.ok:r.fail,a=r.resolve,u=r.reject,l=r.domain,p,f,d;try{o?(i||(e.rejection===ps&&hv(e),e.rejection=Qt),o===!0?p=t:(l&&l.enter(),p=o(t),l&&(l.exit(),d=!0)),p===r.promise?u(new ls("Promise-chain cycle")):(f=vs(p))?ce(f,p,a,u):a(p)):u(t)}catch(v){l&&!d&&l.exit(),u(v)}},gs=function(r,e){r.notified||(r.notified=!0,Wt(function(){for(var t=r.reactions,i;i=t.get();)hs(i,r);r.notified=!1,e&&!r.rejection&&vv(r)}))},ms=function(r,e,t){var i,o;lv?(i=Vt.createEvent("Event"),i.promise=e,i.reason=t,i.initEvent(r,!1,!0),U.dispatchEvent(i)):i={promise:e,reason:t},!av&&(o=U["on"+r])?o(i):r===fs&&iv("Unhandled promise rejection",t)},vv=function(r){ce(as,U,function(){var e=r.facade,t=r.value,i=ns(r),o;if(i&&(o=ov(function(){lr?zt.emit("unhandledRejection",t,e):ms(fs,e,t)}),r.rejection=lr||ns(r)?ps:Qt,o.error))throw o.value})},ns=function(r){return r.rejection!==Qt&&!r.parent},hv=function(r){ce(as,U,function(){var e=r.facade;lr?zt.emit("rejectionHandled",e):ms(fv,e,r.value)})},se=function(r,e,t){return function(i){r(e,i,t)}},ue=function(r,e,t){r.done||(r.done=!0,t&&(r=t),r.value=e,r.state=dv,gs(r,!0))},Kt=function(r,e,t){if(!r.done){r.done=!0,t&&(r=t);try{if(r.facade===e)throw new ls("Promise can't be resolved itself");var i=vs(e);i?Wt(function(){var o={done:!1};try{ce(i,e,se(Kt,o,r),se(ue,o,r))}catch(a){ue(o,a,r)}}):(r.value=e,r.state=ds,gs(r,!1))}catch(o){ue({done:!1},o,r)}}};if(cs&&(H=function(e){rv(this,sr),Zp(e),ce(ur,this);var t=Ut(this);try{e(se(Kt,t),se(ue,t))}catch(i){ue(t,i)}},sr=H.prototype,ur=function(e){uv(this,{type:dr,done:!1,notified:!1,parent:!1,reactions:new nv,rejection:!1,state:ts,value:void 0})},ur.prototype=es(sr,"then",function(e,t){var i=Ut(this),o=Gt(tv(this,H));return i.parent=!0,o.ok=cr(e)?e:!0,o.fail=cr(t)&&t,o.domain=lr?zt.domain:void 0,i.state===ts?i.reactions.add(o):Wt(function(){hs(o,i)}),o.promise}),is=function(){var r=new ur,e=Ut(r);this.promise=r,this.resolve=se(Kt,e),this.reject=se(ue,e)},us.f=Gt=function(r){return r===H||r===pv?new is(r):cv(r)},!Yp&&cr(fr)&&ae!==Object.prototype)){os=ae.then,sv||es(ae,"then",function(e,t){var i=this;return new H(function(o,a){ce(os,i,o,a)}).then(e,t)},{unsafe:!0});try{delete ae.constructor}catch{}rs&&rs(ae,sr)}Qp({global:!0,constructor:!0,wrap:!0,forced:cs},{Promise:H});Jp(H,dr,!1,!0);Xp(dr)});var z=n((my,ys)=>{"use strict";ys.exports={}});var Ss=n((by,Is)=>{"use strict";var gv=T(),mv=z(),bv=gv("iterator"),yv=Array.prototype;Is.exports=function(r){return r!==void 0&&(mv.Array===r||yv[bv]===r)}});var Ps=n((yy,Es)=>{"use strict";var Iv=Math.ceil,Sv=Math.floor;Es.exports=Math.trunc||function(e){var t=+e;return(t>0?Sv:Iv)(t)}});var Yt=n((Iy,Ts)=>{"use strict";var Ev=Ps();Ts.exports=function(r){var e=+r;return e!==e||e===0?0:Ev(e)}});var Os=n((Sy,qs)=>{"use strict";var Pv=Yt(),Tv=Math.min;qs.exports=function(r){var e=Pv(r);return e>0?Tv(e,9007199254740991):0}});var Jt=n((Ey,_s)=>{"use strict";var qv=Os();_s.exports=function(r){return qv(r.length)}});var Xt=n((Py,Rs)=>{"use strict";var Ov=Ze(),ws=We(),_v=ye(),wv=z(),Rv=T(),xv=Rv("iterator");Rs.exports=function(r){if(!_v(r))return ws(r,xv)||ws(r,"@@iterator")||wv[Ov(r)]}});var Cs=n((Ty,xs)=>{"use strict";var Cv=w(),Av=$(),Nv=j(),Lv=Ie(),kv=Xt(),Dv=TypeError;xs.exports=function(r,e){var t=arguments.length<2?kv(r):e;if(Av(t))return Nv(Cv(t,r));throw new Dv(Lv(r)+" is not iterable")}});var Ls=n((qy,Ns)=>{"use strict";var $v=w(),As=j(),jv=We();Ns.exports=function(r,e,t){var i,o;As(r);try{if(i=jv(r,"return"),!i){if(e==="throw")throw t;return t}i=$v(i,r)}catch(a){o=!0,i=a}if(e==="throw")throw t;if(o)throw i;return As(i),t}});var vr=n((Oy,js)=>{"use strict";var Mv=Pe(),Fv=w(),Bv=j(),Uv=Ie(),Vv=Ss(),Gv=Jt(),ks=Ge(),Kv=Cs(),Wv=Xt(),Ds=Ls(),Hv=TypeError,pr=function(r,e){this.stopped=r,this.result=e},$s=pr.prototype;js.exports=function(r,e,t){var i=t&&t.that,o=!!(t&&t.AS_ENTRIES),a=!!(t&&t.IS_RECORD),u=!!(t&&t.IS_ITERATOR),l=!!(t&&t.INTERRUPTED),p=Mv(e,i),f,d,v,s,c,h,y,I=function(S){return f&&Ds(f,"normal",S),new pr(!0,S)},g=function(S){return o?(Bv(S),l?p(S[0],S[1],I):p(S[0],S[1])):l?p(S,I):p(S)};if(a)f=r.iterator;else if(u)f=r;else{if(d=Wv(r),!d)throw new Hv(Uv(r)+" is not iterable");if(Vv(d)){for(v=0,s=Gv(r);s>v;v++)if(c=g(r[v]),c&&ks($s,c))return c;return new pr(!1)}f=Kv(r,d)}for(h=a?r.next:f.next;!(y=Fv(h,f)).done;){try{c=g(y.value)}catch(S){Ds(f,"throw",S)}if(typeof c=="object"&&c&&ks($s,c))return c}return new pr(!1)}});var Vs=n((_y,Us)=>{"use strict";var zv=T(),Fs=zv("iterator"),Bs=!1;try{Ms=0,Zt={next:function(){return{done:!!Ms++}},return:function(){Bs=!0}},Zt[Fs]=function(){return this},Array.from(Zt,function(){throw 2})}catch{}var Ms,Zt;Us.exports=function(r,e){try{if(!e&&!Bs)return!1}catch{return!1}var t=!1;try{var i={};i[Fs]=function(){return{next:function(){return{done:t=!0}}}},r(i)}catch{}return t}});var ei=n((wy,Gs)=>{"use strict";var Qv=W(),Yv=Vs(),Jv=oe().CONSTRUCTOR;Gs.exports=Jv||!Yv(function(r){Qv.all(r).then(void 0,function(){})})});var Ks=n(()=>{"use strict";var Xv=L(),Zv=w(),eh=$(),rh=ne(),th=tr(),ih=vr(),oh=ei();Xv({target:"Promise",stat:!0,forced:oh},{all:function(e){var t=this,i=rh.f(t),o=i.resolve,a=i.reject,u=th(function(){var l=eh(t.resolve),p=[],f=0,d=1;ih(e,function(v){var s=f++,c=!1;d++,Zv(l,t,v).then(function(h){c||(c=!0,p[s]=h,--d||o(p))},a)}),--d||o(p)});return u.error&&a(u.value),i.promise}})});var Hs=n(()=>{"use strict";var nh=L(),ah=A(),sh=oe().CONSTRUCTOR,ti=W(),uh=D(),ch=b(),lh=re(),Ws=ti&&ti.prototype;nh({target:"Promise",proto:!0,forced:sh,real:!0},{catch:function(r){return this.then(void 0,r)}});!ah&&ch(ti)&&(ri=uh("Promise").prototype.catch,Ws.catch!==ri&&lh(Ws,"catch",ri,{unsafe:!0}));var ri});var zs=n(()=>{"use strict";var fh=L(),dh=w(),ph=$(),vh=ne(),hh=tr(),gh=vr(),mh=ei();fh({target:"Promise",stat:!0,forced:mh},{race:function(e){var t=this,i=vh.f(t),o=i.reject,a=hh(function(){var u=ph(t.resolve);gh(e,function(l){dh(u,t,l).then(i.resolve,o)})});return a.error&&o(a.value),i.promise}})});var Qs=n(()=>{"use strict";var bh=L(),yh=ne(),Ih=oe().CONSTRUCTOR;bh({target:"Promise",stat:!0,forced:Ih},{reject:function(e){var t=yh.f(this),i=t.reject;return i(e),t.promise}})});var ii=n(($y,Ys)=>{"use strict";var Sh=j(),Eh=R(),Ph=ne();Ys.exports=function(r,e){if(Sh(r),Eh(e)&&e.constructor===r)return e;var t=Ph.f(r),i=t.resolve;return i(e),t.promise}});var Zs=n(()=>{"use strict";var Th=L(),qh=D(),Js=A(),Oh=W(),Xs=oe().CONSTRUCTOR,_h=ii(),wh=qh("Promise"),Rh=Js&&!Xs;Th({target:"Promise",stat:!0,forced:Js||Xs},{resolve:function(e){return _h(Rh&&this===wh?Oh:this,e)}})});var eu=n(()=>{"use strict";bs();Ks();Hs();zs();Qs();Zs()});var ou=n(()=>{"use strict";var xh=L(),Ch=A(),hr=W(),Ah=P(),tu=D(),iu=b(),Nh=bt(),ru=ii(),Lh=re(),ni=hr&&hr.prototype,kh=!!hr&&Ah(function(){ni.finally.call({then:function(){}},function(){})});xh({target:"Promise",proto:!0,real:!0,forced:kh},{finally:function(r){var e=Nh(this,tu("Promise")),t=iu(r);return this.then(t?function(i){return ru(e,r()).then(function(){return i})}:r,t?function(i){return ru(e,r()).then(function(){throw i})}:r)}});!Ch&&iu(hr)&&(oi=tu("Promise").prototype.finally,ni.finally!==oi&&Lh(ni,"finally",oi,{unsafe:!0}));var oi});var au=n((Gy,nu)=>{"use strict";var Dh=D();nu.exports=Dh});var uu=n((Ky,su)=>{"use strict";Gi();eu();ou();var $h=au();su.exports=$h("Promise","finally")});var lu=n((Wy,cu)=>{"use strict";var jh=uu();cu.exports=jh});var du=n((Hy,fu)=>{"use strict";var Mh=lu();fu.exports=Mh});var vu=n((zy,pu)=>{"use strict";pu.exports=function(){}});var mu=n((Qy,gu)=>{"use strict";var ai=_(),Fh=N(),hu=Function.prototype,Bh=ai&&Object.getOwnPropertyDescriptor,si=Fh(hu,"name"),Uh=si&&function(){}.name==="something",Vh=si&&(!ai||ai&&Bh(hu,"name").configurable);gu.exports={EXISTS:si,PROPER:Uh,CONFIGURABLE:Vh}});var yu=n((Yy,bu)=>{"use strict";var Gh=Yt(),Kh=Math.max,Wh=Math.min;bu.exports=function(r,e){var t=Gh(r);return t<0?Kh(t+e,0):Wh(t,e)}});var Eu=n((Jy,Su)=>{"use strict";var Hh=Q(),zh=yu(),Qh=Jt(),Iu=function(r){return function(e,t,i){var o=Hh(e),a=Qh(o);if(a===0)return!r&&-1;var u=zh(i,a),l;if(r&&t!==t){for(;a>u;)if(l=o[u++],l!==l)return!0}else for(;a>u;u++)if((r||u in o)&&o[u]===t)return r||u||0;return!r&&-1}};Su.exports={includes:Iu(!0),indexOf:Iu(!1)}});var qu=n((Xy,Tu)=>{"use strict";var Yh=O(),ui=N(),Jh=Q(),Xh=Eu().indexOf,Zh=or(),Pu=Yh([].push);Tu.exports=function(r,e){var t=Jh(r),i=0,o=[],a;for(a in t)!ui(Zh,a)&&ui(t,a)&&Pu(o,a);for(;e.length>i;)ui(t,a=e[i++])&&(~Xh(o,a)||Pu(o,a));return o}});var ci=n((Zy,Ou)=>{"use strict";Ou.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var wu=n((eI,_u)=>{"use strict";var eg=qu(),rg=ci();_u.exports=Object.keys||function(e){return eg(e,rg)}});var xu=n(Ru=>{"use strict";var tg=_(),ig=ut(),og=V(),ng=j(),ag=Q(),sg=wu();Ru.f=tg&&!ig?Object.defineProperties:function(e,t){ng(e);for(var i=ag(t),o=sg(t),a=o.length,u=0,l;a>u;)og.f(e,l=o[u++],i[l]);return e}});var pi=n((tI,$u)=>{"use strict";var ug=j(),cg=xu(),Cu=ci(),lg=or(),fg=yt(),dg=He(),pg=ir(),Au=">",Nu="<",fi="prototype",di="script",ku=pg("IE_PROTO"),li=function(){},Du=function(r){return Nu+di+Au+r+Nu+"/"+di+Au},Lu=function(r){r.write(Du("")),r.close();var e=r.parentWindow.Object;return r=null,e},vg=function(){var r=dg("iframe"),e="java"+di+":",t;return r.style.display="none",fg.appendChild(r),r.src=String(e),t=r.contentWindow.document,t.open(),t.write(Du("document.F=Object")),t.close(),t.F},gr,mr=function(){try{gr=new ActiveXObject("htmlfile")}catch{}mr=typeof document<"u"?document.domain&&gr?Lu(gr):vg():Lu(gr);for(var r=Cu.length;r--;)delete mr[fi][Cu[r]];return mr()};lg[ku]=!0;$u.exports=Object.create||function(e,t){var i;return e!==null?(li[fi]=ug(e),i=new li,li[fi]=null,i[ku]=e):i=mr(),t===void 0?i:cg.f(i,t)}});var Mu=n((iI,ju)=>{"use strict";var hg=P();ju.exports=!hg(function(){function r(){}return r.prototype.constructor=null,Object.getPrototypeOf(new r)!==r.prototype})});var hi=n((oI,Bu)=>{"use strict";var gg=N(),mg=b(),bg=rt(),yg=ir(),Ig=Mu(),Fu=yg("IE_PROTO"),vi=Object,Sg=vi.prototype;Bu.exports=Ig?vi.getPrototypeOf:function(r){var e=bg(r);if(gg(e,Fu))return e[Fu];var t=e.constructor;return mg(t)&&e instanceof t?t.prototype:e instanceof vi?Sg:null}});var yi=n((nI,Gu)=>{"use strict";var Eg=P(),Pg=b(),Tg=R(),qg=pi(),Uu=hi(),Og=re(),_g=T(),wg=A(),bi=_g("iterator"),Vu=!1,M,gi,mi;[].keys&&(mi=[].keys(),"next"in mi?(gi=Uu(Uu(mi)),gi!==Object.prototype&&(M=gi)):Vu=!0);var Rg=!Tg(M)||Eg(function(){var r={};return M[bi].call(r)!==r});Rg?M={}:wg&&(M=qg(M));Pg(M[bi])||Og(M,bi,function(){return this});Gu.exports={IteratorPrototype:M,BUGGY_SAFARI_ITERATORS:Vu}});var Wu=n((aI,Ku)=>{"use strict";var xg=yi().IteratorPrototype,Cg=pi(),Ag=be(),Ng=Oe(),Lg=z(),kg=function(){return this};Ku.exports=function(r,e,t,i){var o=e+" Iterator";return r.prototype=Cg(xg,{next:Ag(+!i,t)}),Ng(r,o,!1,!0),Lg[o]=kg,r}});var ic=n((sI,tc)=>{"use strict";var Dg=L(),$g=w(),br=A(),ec=mu(),jg=b(),Mg=Wu(),Hu=hi(),zu=vt(),Fg=Oe(),Bg=X(),Ii=re(),Ug=T(),Qu=z(),rc=yi(),Vg=ec.PROPER,Gg=ec.CONFIGURABLE,Yu=rc.IteratorPrototype,yr=rc.BUGGY_SAFARI_ITERATORS,Le=Ug("iterator"),Ju="keys",ke="values",Xu="entries",Zu=function(){return this};tc.exports=function(r,e,t,i,o,a,u){Mg(t,e,i);var l=function(g){if(g===o&&s)return s;if(!yr&&g&&g in d)return d[g];switch(g){case Ju:return function(){return new t(this,g)};case ke:return function(){return new t(this,g)};case Xu:return function(){return new t(this,g)}}return function(){return new t(this)}},p=e+" Iterator",f=!1,d=r.prototype,v=d[Le]||d["@@iterator"]||o&&d[o],s=!yr&&v||l(o),c=e==="Array"&&d.entries||v,h,y,I;if(c&&(h=Hu(c.call(new r)),h!==Object.prototype&&h.next&&(!br&&Hu(h)!==Yu&&(zu?zu(h,Yu):jg(h[Le])||Ii(h,Le,Zu)),Fg(h,p,!0,!0),br&&(Qu[p]=Zu))),Vg&&o===ke&&v&&v.name!==ke&&(!br&&Gg?Bg(d,"name",ke):(f=!0,s=function(){return $g(v,this)})),o)if(y={values:l(ke),keys:a?s:l(Ju),entries:l(Xu)},u)for(I in y)(yr||f||!(I in d))&&Ii(d,I,y[I]);else Dg({target:e,proto:!0,forced:yr||f},y);return(!br||u)&&d[Le]!==s&&Ii(d,Le,s,{name:o}),Qu[e]=s,y}});var nc=n((uI,oc)=>{"use strict";oc.exports=function(r,e){return{value:r,done:e}}});var Ei=n((cI,lc)=>{"use strict";var Kg=Q(),Si=vu(),ac=z(),uc=Mt(),Wg=V().f,Hg=ic(),Ir=nc(),zg=A(),Qg=_(),cc="Array Iterator",Yg=uc.set,Jg=uc.getterFor(cc);lc.exports=Hg(Array,"Array",function(r,e){Yg(this,{type:cc,target:Kg(r),index:0,kind:e})},function(){var r=Jg(this),e=r.target,t=r.index++;if(!e||t>=e.length)return r.target=void 0,Ir(void 0,!0);switch(r.kind){case"keys":return Ir(t,!1);case"values":return Ir(e[t],!1)}return Ir([t,e[t]],!1)},"values");var sc=ac.Arguments=ac.Array;Si("keys");Si("values");Si("entries");if(!zg&&Qg&&sc.name!=="values")try{Wg(sc,"name",{value:"values"})}catch{}});var dc=n((lI,fc)=>{"use strict";var Xg=_(),Zg=V(),em=be();fc.exports=function(r,e,t){Xg?Zg.f(r,e,em(0,t)):r[e]=t}});var pc=n(()=>{"use strict";var rm=L(),tm=vr(),im=dc();rm({target:"Object",stat:!0},{fromEntries:function(e){var t={};return tm(e,function(i,o){im(t,i,o)},{AS_ENTRIES:!0}),t}})});var hc=n((pI,vc)=>{"use strict";Ei();pc();var om=Ve();vc.exports=om.Object.fromEntries});var mc=n((vI,gc)=>{"use strict";gc.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}});var yc=n(()=>{"use strict";Ei();var nm=mc(),am=m(),sm=Oe(),bc=z();for(Sr in nm)sm(am[Sr],Sr),bc[Sr]=bc.Array;var Sr});var Sc=n((mI,Ic)=>{"use strict";var um=hc();yc();Ic.exports=um});var Pc=n((bI,Ec)=>{"use strict";var cm=Sc();Ec.exports=cm});var ve=(u=>(u.PROD="prod",u.VK_ALIAS="vk_alias",u.VIDEOTEST="videotest",u.TEST="test",u.OKCDN="okcdn",u.AUTO="auto",u))(ve||{}),Nr=(f=>(f.Q144P="mobile",f.Q240P="lowest",f.Q360P="low",f.Q480P="medium",f.Q720P="high",f.Q1080P="fullhd",f.Q1440P="quadhd",f.Q2160P="ultrahd",f.UNKNOWN="unknown",f))(Nr||{}),Lr=(c=>(c.MP4="mp4",c.DASH="dash",c.DASH_SEP="dash_sep",c.ONDEMAND_DASH="ondemand_dash",c.HLS="hls",c.ONDEMAND_HLS="ondemand_hls",c.WEBM="webm",c.AV1="av1",c.ONDEMAND_DASH_LIVE="ondemand_dash_live",c.ONDEMAND_HLS_LIVE="ondemand_hls_live",c.WEBRTC="webrtc",c.UNKNOWN="unknown",c.RTMP="rtmp",c))(Lr||{});var kr=(i=>(i.HTTP1="http1",i.HTTP2="http2",i.HTTP3="http3",i))(kr||{});var Dr=(l=>(l.SLIDER="slider",l.DOUBLE_TAP="double_tap",l.TIME_CODE="time_code",l.EPISODE="episode",l.REWIND="rewind",l.LIVE="live",l.UNKNOWN="unknown",l))(Dr||{}),ji=(a=>(a.GRAPH_SHOW="iGraphShow",a.GRAPH_HIDE="iGraphHide",a.NEXT_AREA="iNextChapterArea",a.NEXT_BUTTON="iNextChapterBtn",a.WATCH_AGAIN="iWatchAgainBtn",a))(ji||{}),Mi={action_play:"ap",action_play_interactive:"api",first_bytes:"fb",player_ready:"pr",first_frame:"ff",seek:"sk",watch_coverage_record:"wr",watch_coverage_live:"wl",empty_buffer:"eb",action_stop:"as",close_at_empty_buffer:"cb",content_error:"er",player_interface_click:"pc",next_movie:"nm",track_switch:"ts",failover:"fo"},Fi={vsid:"si",isid:"is",vid:"vi",place:"pl",quality:"qt",cdn_host:"ch",stat_type:"st",param:"pm",vk_app_id:"va",track_code:"tc",connection_type:"cnt",connection_reused:"cr",cached_data:"cd",live:"lv",muted:"mu",mode:"mo",subtitles:"sb",failover:"fo",download_speed:"ds",manual_quality:"mq",ref_domain:"rd",direct_url:"du"},Bi={unknown:"un",mobile:"m",lowest:"ls",low:"l",medium:"md",high:"h",fullhd:"f",quadhd:"q",ultrahd:"u"},Ui={pip:"pi",fullscreen:"fs",external:"ex",prefetch:"pr",airplay:"ap",chromecast:"cc",invisible:"iv"};import{fillWithDefault as Zc}from"@vkontakte/videoplayer-shared";var el={apiEnv:"vk_alias",requestRetryCount:1,firstFlushTime:5e3,flushDebounceTime:1e4,flushMaxWait:6e4,storageExpiration:36*60*60*1e3,watchCoverageInterval:15e3,disabledOperations:[],disabledCustomFields:[],shorten:!0,maxLoops:100,embedUrlParams:[],useBeacon:!0,synchronizeTime:!0,debugLog:!1,backoff:{start:1e3,factor:1.5,max:5*60*1e3,random:.1}},Vi=r=>Zc(r,el);function $r(){let r="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),e=new Array(36),t=0,i,o;for(o=0;o<36;o++)o===8||o===13||o===18||o===23?e[o]="-":o===14?e[o]="4":(t<=2&&(t=33554432+Math.random()*16777216|0),i=t&15,t=t>>4,e[o]=r[o===19?i&3|8:i]);return e.join("")}import{assertNonNullable as Sm,combine as Mc,fromEvent as Fc,isNonNullable as pe,isNullable as Bc,merge as Em,now as F,observableFrom as Pm,once as Tm,safeStorage as Cr,Subject as qm,Subscription as Li,ValueSubject as Ai}from"@vkontakte/videoplayer-shared";import{Logger as Om,detectEmbed as _m}from"@vkontakte/videoplayer-shared";var Pr=$i(du(),1);var Tc=$i(Pc(),1);var qc=r=>{let{operation:e,custom:t}=r,i=(0,Tc.default)(Object.entries(t).map(([o,a])=>{let u=Fi[o]??o,l=a;return a&&(o==="mode"?l=Ui[a]??a:o==="quality"&&(l=Bi[a]??a)),[u,l]}));return{...r,operation:Mi[e]??e,custom:i}};var Er="1.0.54-dev.cf4e48ed.0",Oc="CIOPGQJGDIHBABABA",Pi={prod:"https://api.ok.ru",vk_alias:"https://api.mycdn.me",videotest:"https://videotestapi.ok.ru/api",test:"https://apitest.ok.ru",okcdn:"https://api.okcdn.ru",auto:""};import{ValueSubject as lm,getExponentialDelay as fm,ErrorCategory as le}from"@vkontakte/videoplayer-shared";var De=class{constructor(e){this.consequentAuthErrors=0;this.authorized$=new lm(!1);this.params=e}async authorize(e){return this.authToken=e??await this.refreshAuthToken(),this._authorizeWithBackoff()}logBeacon(e){let t="log.externalLog",i=this.createLogParams(e),o=this.sessionKey;if(!o)return;this.params.apiTransport.sendBeacon(t,i,o)||this.logRequest(e)}async logRequest(e){let t="log.externalLog",i=this.createLogParams(e),o=this.sessionKey??await this._authorizeWithBackoff();if(!o)return;let a=async(u,l=this.params.config.requestRetryCount)=>{try{return await this.params.apiTransport.sendRequest(t,i,o)}catch(p){if(!p||!("error_code"in p)){this.params.error$.next({id:"logRequestUnknown",category:le.NETWORK,message:`Unknown ${t} error`,thrown:p});return}let f=p?.error_code;switch(f){case 102:case 103:case 104:return this.authorized$.next(!1),this.sessionKey=await this._authorizeWithBackoff(),l>0?a(u,l-1):void 0;case 401:return this.authorized$.next(!1),this.authToken=await this.refreshAuthToken(),this.sessionKey=await this._authorizeWithBackoff(),l>0?a(u,l-1):void 0;default:{this.params.error$.next({id:`LogRequest#${f}`,category:le.EXTERNAL_API,message:`${t} error`,data:p});return}}}};return a(e)}destroy(){window.clearTimeout(this.backoffTimeoutId),this.backoffTimeoutId=0}async refreshAuthToken(){if(this.params.refreshAuthToken)return this.refreshAuthTokenPromise||(this.refreshAuthTokenPromise=(0,Pr.default)(this.params.refreshAuthToken(),()=>{this.refreshAuthTokenPromise=void 0})),this.refreshAuthTokenPromise}createLogParams(e){return{collector:"ok.mobile.apps.video",data:JSON.stringify({application:`@vkontakte/videoplayer-statistics:${Er}`,platform:this.params.mobile?"M_WEB":"WEB",items:this.params.config.shorten?e.map(qc):e})}}_authorizeWithBackoff(){if(!this.consequentAuthErrors)return this._authorize();let e=fm(this.consequentAuthErrors,this.params.config.backoff);return new Promise(t=>{this.backoffTimeoutId||(this.backoffTimeoutId=window.setTimeout(()=>{(0,Pr.default)(this._authorize().then(t).catch(i=>this.params.error$.next({id:"AuthorizeBackoff",category:le.NETWORK,message:"Otherwise unhandled error in authorization",thrown:i})),()=>this.backoffTimeoutId=0)},e))})}async _authorize(){if(this.authorizePromise)return this.authorizePromise;this.sessionKey=void 0,this.authorized$.next(!1);let e="auth.anonymLogin",t={session_data:{version:2,device_id:this.params.deviceId,client_version:Er.split("-")[0],client_type:"SDK_JS"}};return this.authToken!==void 0&&(t.session_data.auth_token=this.authToken,t.session_data.version=3),this.authorizePromise=(0,Pr.default)(this.params.apiTransport.sendRequest(e,t).then(i=>((!i||!i.session_key)&&this.params.error$.next({id:"AuthorizeFailed",category:le.EXTERNAL_API,message:"No session key",data:i}),this.sessionKey=i?.session_key??void 0,this.sessionKey)).catch(async i=>{this.sessionKey=void 0;let o=i?.error_code;switch(o){case 401:return this.authToken=await this.refreshAuthToken(),this._authorizeWithBackoff()}o?this.params.error$.next({id:`Authorize#${o}`,category:le.EXTERNAL_API,message:"authorize error",data:i}):this.params.error$.next({id:"AuthorizeUnknown",category:le.NETWORK,message:"authorize error",thrown:i})}),()=>{this.authorizePromise=void 0,this.consequentAuthErrors=this.sessionKey?0:this.consequentAuthErrors+1,this.authorized$.next(this.sessionKey!==void 0)}),this.authorizePromise}};var Tr=class{constructor(){Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}addEventListener(e,t,i){e in this.listeners||(this.listeners[e]=[]),this.listeners[e].push({callback:t,options:i})}removeEventListener(e,t){if(!(e in this.listeners))return;let i=this.listeners[e];for(let o=0,a=i.length;o<a;o++)if(i[o].callback===t){i.splice(o,1);return}}dispatchEvent(e){if(!(e.type in this.listeners))return;let i=this.listeners[e.type].slice();for(let o=0,a=i.length;o<a;o++){let u=i[o];try{u.callback.call(this,e)}catch(l){Promise.resolve().then(()=>{throw l})}u.options&&u.options.once&&this.removeEventListener(e.type,u.callback)}return!e.defaultPrevented}},fe=class extends Tr{constructor(){super(),this.listeners||Tr.call(this),Object.defineProperty(this,"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(this,"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(this,"reason",{value:void 0,writable:!0,configurable:!0})}toString(){return"[object AbortSignal]"}dispatchEvent(e){e.type==="abort"&&(this.aborted=!0,typeof this.onabort=="function"&&this.onabort.call(this,e)),super.dispatchEvent(e)}},$e=class{constructor(){Object.defineProperty(this,"signal",{value:new fe,writable:!0,configurable:!0})}abort(e){let t;try{t=new Event("abort")}catch{typeof document<"u"?document.createEvent?(t=document.createEvent("Event"),t.initEvent("abort",!1,!1)):(t=document.createEventObject(),t.type="abort"):t={type:"abort",bubbles:!1,cancelable:!1}}let i=e;if(i===void 0)if(typeof document>"u")i=new Error("This operation was aborted"),i.name="AbortError";else try{i=new DOMException("signal is aborted without reason")}catch{i=new Error("This operation was aborted"),i.name="AbortError"}this.signal.reason=i,this.signal.dispatchEvent(t)}toString(){return"[object AbortController]"}};typeof Symbol<"u"&&Symbol.toStringTag&&($e.prototype[Symbol.toStringTag]="AbortController",fe.prototype[Symbol.toStringTag]="AbortSignal");function qr(r){return r.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL?(console.log("__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL=true is set, will force install polyfill"),!0):typeof r.Request=="function"&&!r.Request.prototype.hasOwnProperty("signal")||!r.AbortController}function Ti(r){typeof r=="function"&&(r={fetch:r});let{fetch:e,Request:t=e.Request,AbortController:i,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:o=!1}=r;if(!qr({fetch:e,Request:t,AbortController:i,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:o}))return{fetch:e,Request:a};let a=t;(a&&!a.prototype.hasOwnProperty("signal")||o)&&(a=function(f,d){let v;d&&d.signal&&(v=d.signal,delete d.signal);let s=new t(f,d);return v&&Object.defineProperty(s,"signal",{writable:!1,enumerable:!1,configurable:!0,value:v}),s},a.prototype=t.prototype);let u=e;return{fetch:(p,f)=>{let d=a&&a.prototype.isPrototypeOf(p)?p.signal:f?f.signal:void 0;if(d){let v;try{v=new DOMException("Aborted","AbortError")}catch{v=new Error("Aborted"),v.name="AbortError"}if(d.aborted)return Promise.reject(v);let s=new Promise((c,h)=>{d.addEventListener("abort",()=>h(v),{once:!0})});return f&&f.signal&&delete f.signal,Promise.race([s,u(p,f)])}return u(p,f)},Request:a}}var je=qr({fetch:window.fetch,Request:window.Request,AbortController:window.AbortController}),_c=je?Ti({fetch:window.fetch,Request:window.Request,AbortController:window.AbortController}):void 0,qi=je?_c.fetch:window.fetch,MI=je?_c.Request:window.Request,FI=je?$e:window.AbortController,BI=je?fe:window.AbortSignal;import{ErrorCategory as Or,now as Oi}from"@vkontakte/videoplayer-shared";var Me=class{constructor(e){this.params=e,this.apiKey=e.apiKey,this.apiEnv=e.config.apiEnv,this.apiBaseUrl=Pi[this.apiEnv],this.timeSynchronisation=e.timeSynchronisation,this.isApiBaseUrlFetched=!1}async resolveApiBaseUrl(){if(this.apiEnv!=="auto"||this.isApiBaseUrlFetched)return this.apiBaseUrl;try{let e=atob("aHR0cHM6Ly9kbnMuZ29vZ2xlL3Jlc29sdmU/bmFtZT12aWRlby5fZW5kcG9pbnQub2sucnUmdHlwZT1UWFQ="),o=(await(await qi(e,{method:"GET",mode:"cors",cache:"no-cache"})).json())?.Answer[0]?.data;if(!o)throw new Error("Wrong DNS response");return o}catch(e){return this.params.error$.next({id:"OneStat:ApiTransport:resolveApiBaseUrl",category:Or.NETWORK,message:"Unhandled resolve api base url error",thrown:e}),Pi.vk_alias}finally{this.isApiBaseUrlFetched=!0}}sendBeacon(e,t,i){if(!window.Blob||!window.navigator.sendBeacon)return!1;let o=this._prepareQueryParams({method:e,queryParams:t,sessionKey:i}),a=new window.Blob([o.toString()],{type:"application/x-www-form-urlencoded"});try{return window.navigator.sendBeacon(`${this.apiBaseUrl}/fb.do`,a)}catch(u){this.params.error$.next({id:"OneStat:ApiTransport:sendBeacon",category:Or.NETWORK,message:"Unhandled beacon error",thrown:u,data:{method:e,params:t}})}return!1}async sendRequest(e,t,i){let o=Oi(),a=u=>{if(u instanceof TypeError&&["Failed to fetch","NetworkError when attempting to fetch resource."].includes(u.message)){this.params.error$.next({id:"Network",category:Or.NETWORK,message:"Request failed",thrown:u});return}this.params.error$.next({id:"OneStat:ApiTransport:sendRequest",category:Or.NETWORK,message:"Unhandled request error",thrown:u,data:{method:e,params:t,sessionKey:i,time:Oi()-o}})};return this.apiBaseUrl=await this.resolveApiBaseUrl(),qi(`${this.apiBaseUrl}/fb.do`,{method:"post",headers:{"Content-type":"application/x-www-form-urlencoded"},body:this._prepareQueryParams({method:e,queryParams:t,sessionKey:i})}).then(u=>{let l=Number(u.headers.get("content-length"))===0,p=new Date(u.headers.get("date")??"").getTime(),f=Oi()-o;if(isFinite(p)&&this.timeSynchronisation?.addServerTime(p,f),!l)return u.json().then(d=>Object.prototype.hasOwnProperty.call(d,"error_msg")?Promise.reject(d):d,a)},a)}_prepareQueryParams(e){let t=new URLSearchParams({format:"JSON",method:e.method,application_key:this.apiKey});return e.sessionKey!==void 0&&t.append("session_key",e.sessionKey),Object.entries(e.queryParams).forEach(([i,o])=>t.append(i,typeof o=="string"?o:JSON.stringify(o))),t}};import{ErrorCategory as dm,now as pm,safeStorage as Fe,debounceFn as wc}from"@vkontakte/videoplayer-shared";var _r="onestat_events",_i=r=>e=>e.timestamp+r>=pm(),wr=class{constructor(e){this.unsaltedStorage=[];this.isPaused=!1;this.isUrgent=e=>{let{operation:t}=e;return["action_play","watch_coverage_record","watch_coverage_live"].includes(t)};this.params=e,this.api=e.api,this.error$=e.error$,this.userSalt=e.userSalt,this.loggerDebugLog=e.debugLogger.createComponentLog("stat logger"),this.firstFlush=wc(()=>this.safeFlush(),this.params.config.firstFlushTime,{maxWait:this.params.config.firstFlushTime});let t=Fe.isPersistent()?this.params.config.flushMaxWait:0;this.debouncedFlush=wc(()=>this.safeFlush(),this.params.config.flushDebounceTime,{maxWait:t}),this.subscription=this.api.authorized$.subscribe(i=>{i&&this.debouncedFlush()}),this.housekeepStorage()}safeFlush(){try{this.flush()}catch(e){this.error$.next({id:"LoggerError",category:dm.WTF,message:String(e)??"Unknown logger error",thrown:e})}}readFromStorage(){let e=Fe.get(_r);try{return e?JSON.parse(e):{}}catch{}return{}}addToStorage(e){if(!this.userSalt){this.unsaltedStorage.push(e);return}let t=this.readFromStorage(),o=(t[this.userSalt]??[]).filter(_i(this.params.config.storageExpiration));Fe.set(_r,JSON.stringify({...t,[this.userSalt]:[...o,e]}))}getFromStorage(){return this.userSalt?(this.readFromStorage()[this.userSalt]??[]).filter(_i(this.params.config.storageExpiration)):this.unsaltedStorage}markStorageSent(){if(!this.userSalt){this.unsaltedStorage=[];return}let e=this.readFromStorage();delete e[this.userSalt],Fe.set(_r,JSON.stringify(e))}housekeepStorage(){let e=this.readFromStorage();for(let[t,i]of Object.entries(e)){let o=i.filter(_i(this.params.config.storageExpiration));o.length?e[t]=o:delete e[t],this.loggerDebugLog({message:`${i.length} retrieved from storage, ${o.length} of them actual`})}Fe.set(_r,JSON.stringify(e))}log(e){this.addToStorage(e),!this.isPaused&&(this.isUrgent(e)?this.flush():this.lastVsid!==e.custom.vsid?this.firstFlush():this.debouncedFlush(),this.lastVsid=e.custom.vsid)}flush(e=!1){let t=this.getFromStorage();t.length!==0&&(this.api.authorized$.getValue()?(e&&this.params.config.useBeacon?(this.loggerDebugLog({message:`Flushing ${t.length} events through beacon`}),this.api.logBeacon(t)):(this.loggerDebugLog({message:`Flushing ${t.length} events`}),this.api.logRequest(t)),this.markStorageSent()):this.api.authorize(),this.firstFlush.cancel(),this.debouncedFlush.cancel())}pause(){this.isPaused=!0,this.debouncedFlush.cancel()}resume(){this.isPaused=!1,this.debouncedFlush()}destroy(){this.subscription.unsubscribe(),this.firstFlush.cancel(),this.debouncedFlush.cancel()}};import{HttpConnectionType as wi,Surface as de,VideoFormat as E,VideoQuality as k}from"@vkontakte/videoplayer-core";import{assertNever as Rc}from"@vkontakte/videoplayer-shared";var xc=r=>r&&{[k.INVARIANT]:"unknown",[k.Q_144P]:"mobile",[k.Q_240P]:"lowest",[k.Q_360P]:"low",[k.Q_480P]:"medium",[k.Q_720P]:"high",[k.Q_1080P]:"fullhd",[k.Q_1440P]:"quadhd",[k.Q_2160P]:"ultrahd",[k.Q_4320P]:"unknown"}[r],Ri=r=>r&&{[wi.HTTP1]:"http1",[wi.HTTP2]:"http2",[wi.QUIC]:"http3"}[r],Cc=r=>{if(r!==void 0)switch(r){case E.MPEG:return"mp4";case E.DASH:case E.DASH_LIVE:case E.DASH_STREAMS:return"dash";case E.DASH_SEP:return"dash_sep";case E.DASH_ONDEMAND:return"ondemand_dash";case E.DASH_WEBM:case E.DASH_LIVE_WEBM:return"webm";case E.DASH_WEBM_AV1:return"av1";case E.DASH_LIVE_CMAF:return"ondemand_dash_live";case E.HLS:case E.HLS_LIVE:return"hls";case E.HLS_ONDEMAND:return"ondemand_hls";case E.HLS_LIVE_CMAF:return"ondemand_hls_live";case E.WEB_RTC_LIVE:return"webrtc";default:return Rc(r)}},Rr=r=>{if(r!==void 0)switch(r){case de.NONE:case de.INLINE:return;case de.FULLSCREEN:return"fullscreen";case de.SECOND_SCREEN:return"chromecast";case de.PIP:return"pip";case de.INVISIBLE:return"invisible";default:return Rc(r)}},Ac=r=>{switch(r){case"slow-2g":return"poor";case"2g":return"poor";case"3g":return"good";case"4g":return"excellent"}};var xr=class{constructor(e){this.offset=void 0;this.offset=e}getOffset(){return this.offset??0}setOffset(e){this.offset=e}now(){return Date.now()+(this.offset??0)}date(e=new Date){return e.setTime(e.getTime()+(this.offset??0)),e}addServerTime(e,t){let i=Date.now(),o=e-i-t/2;if(Math.abs(o)<1e3){this.offset=0;return}this.offset===void 0?this.offset=Math.round(o):this.offset=Math.round(.2*o+(1-.2)*this.offset)}};var Nc=()=>Math.floor(Math.random()*4294967296).toString(36).padStart(7,"0"),Lc=()=>Math.floor(Math.random()*18446744073709552e3).toString(36).padStart(13,"0");import{PlaybackState as kc}from"@vkontakte/videoplayer-core";import{filter as Dc,filterChanged as hm,fromEvent as gm,isNullable as $c,map as mm,merge as xi,Observable as bm,Subject as Ci,Subscription as ym,ValueSubject as Im}from"@vkontakte/videoplayer-shared";var jc=(r,e)=>new bm(t=>{let i=new ym,o=xi(gm(window,"beforeunload"),r.events.willDestruct$),a=new Im(void 0),u;i.add(r.info.isLive$.pipe(hm()).subscribe(B=>{u&&(u.unsubscribe(),a.next(void 0)),B?u=r.info.liveTime$.pipe(mm(Ar=>Ar&&Ar/1e3)).subscribe(a):u=r.info.position$.subscribe(a),i.add(u)}));let{playing$:l,paused$:p}=r.events,f=r.events.willSeek$.pipe(Dc(()=>r.info.playbackState$.getValue()===kc.PLAYING)),d=r.events.seeked$.pipe(Dc(()=>r.info.playbackState$.getValue()===kc.PLAYING)),v=!1,s=new Ci;i.add(f.subscribe(()=>{v||s.next(),v=!0})),i.add(d.subscribe(()=>v=!1));let c=new Ci,h=new Ci,y=xi(l,d,c),I=xi(p,s,o,r.events.looped$,h),g,S=()=>g=a.getValue(),Kc=()=>{let B=a.getValue();$c(g)||g===B||$c(B)||(t.next({from:g,to:B}),g=void 0)},Wc=()=>{h.next(),c.next()};if(i.add(y.subscribe(S)),i.add(I.subscribe(Kc)),e.forceInterval&&isFinite(e.forceInterval)){let B=0;i.add(y.subscribe(()=>B=window.setTimeout(Wc,e.forceInterval))),i.add(I.subscribe(()=>window.clearTimeout(B)))}return i});var Gc="_one-stat_",Uc=`${Gc}uuid`,Vc=`${Gc}deviceId`,Ni=()=>{let r=new Li;return{subscription:r,subscribe:(e,t)=>{e&&r.add(e.subscribe(t))}}},ki=class{constructor(e,t){this.subscription=new Li;this.debugLogger=new Om;this.oneStatDebugLog=this.debugLogger.createComponentLog("onestat");this.loopCounter=0;this.disabled=!1;this.vsid$=new Ai(void 0);this.isid$=new Ai(void 0);this.seekAction$=new Ai("unknown");this.statContext=e,this.config=Vi(t.config??{}),pe(t.apiEnv)&&(this.config.apiEnv=t.apiEnv),this.config.synchronizeTime&&(this.timeSynchronisation=new xr);let i=new qm;this.experimental={error$:i},Cr.get(Uc)&&Cr.remove(Uc);let a=Cr.get(Vc);this.statContext.deviceId?this.deviceId=this.statContext.deviceId:a?this.deviceId=a:(this.deviceId=$r(),Cr.set(Vc,this.deviceId)),this.resetViewSession(),t.useIsid&&this.isid$.next(t.isid??Lc());let u=new Me({apiKey:Oc,config:this.config,error$:i,timeSynchronisation:this.timeSynchronisation});this.api=new De({config:this.config,apiTransport:u,refreshAuthToken:t.refreshAuthToken,mobile:this.statContext.mobile??!1,deviceId:this.deviceId,error$:i}),this.logger=new wr({config:this.config,debugLogger:this.debugLogger,api:this.api,error$:i,userSalt:t.userSalt});let{isEmbed:l,host:p}=_m();this.isEmbed=l,this.embedParent=p,this.subscribe()}updateContext(e){this.statContext={...this.statContext,...e}}attachTo(e){let t=new Li,i=(s,c)=>t.add(s.subscribe(c));i(e.events.willStart$,()=>{let s=e.info.position$.getValue();this.logActionPlay({position:s}),this.statContext.projectId&&this.logActionPlayInteractive()}),i(e.events.looped$,()=>{this.resetViewSession(),++this.loopCounter>this.config.maxLoops&&(this.disabled=!0),this.logActionPlay({position:e.info.position$.getValue()})}),i(e.events.seeked$,()=>{this.logSeek({action:this.seekAction$.getValue(),time:e.info.position$.getValue()}),this.seekAction$.next("unknown")}),i(e.events.paused$,()=>{this.logPause({position:e.info.position$.getValue()})}),i(e.events.willResume$,()=>{this.logPlay()}),i(e.events.started$,()=>{this.statContext.clip&&this.logWatchCoverageRecord({start:0,end:0})}),i(e.events.playing$,()=>{this.logPlaying()}),i(jc(e,{forceInterval:this.config.watchCoverageInterval}),s=>{let c=e.info.isLive$.getValue(),h={start:parseFloat(s.from.toFixed(3)),end:parseFloat(s.to.toFixed(3))};c?this.logWatchCoverageLive(h):this.logWatchCoverageRecord(h)});let o;i(e.info.isStalled$,s=>{s?o=F():(pe(o)&&this.logEmptyBuffer({duration:F()-o}),o=void 0)});let a=!1;t.add(e.events.fatalError$.pipe(Tm()).subscribe(()=>a=!0)),i(e.events.willStop$,()=>{if(e.info.isStalled$.getValue()){let c=pe(o)?F()-o:void 0;this.logCloseAtEmptyBuffer({duration:c??0}),o=void 0}else a||this.logActionStop()}),i(e.events.managedError$,({id:s})=>{this.logError({fatal:!1,errorType:s})}),i(e.events.fatalError$,({id:s})=>{this.logError({fatal:!0,errorType:s})});let u,l,p=!1;i(e.events.firstBytes$,s=>{u=F(),this.logFirstBytes({time:s})}),i(e.events.willStart$,()=>l=F()),i(e.info.currentBuffer$,s=>{!p&&s&&s.end-s.start>0&&pe(u)&&(this.logPlayerReady({duration:F()-u}),p=!0)}),i(e.events.firstFrame$,()=>{pe(u)&&!p&&(this.logPlayerReady({duration:F()-u}),p=!0),pe(l)&&this.logFirstFrame({time:F()-l})});let f;i(e.info.currentVideoStream$,s=>{s&&(f&&s.id!==f&&this.logTrackSwitch(s),f=s.id)});let d;i(e.info.currentAudioStream$,s=>{s&&(d&&s.id!==d&&this.logTrackSwitch(s),d=s.id)}),i(e.info.atLiveEdge$,s=>this.updateContext({liveEdge:s})),i(Mc({muted:e.info.muted$,volume:e.info.volume$}),({muted:s,volume:c})=>this.updateContext({audible:!s&&c>0})),i(e.info.currentQuality$,s=>this.updateContext({quality:xc(s)})),i(e.info.isAutoQualityEnabled$,s=>this.updateContext({autoQuality:s})),i(e.info.currentFormat$,s=>this.updateContext({contentType:Cc(s)})),i(e.info.currentPlaybackRate$,s=>this.updateContext({rate:s})),i(e.info.is3DVideo$,s=>this.updateContext({is3d:s}));let v;return i(e.info.hostname$,s=>{let c=v!==void 0&&v!==s;this.updateContext({cdnHostname:s,failover:c}),c&&this.logFailover(s),v=s}),i(e.info.throughputEstimation$,s=>this.updateContext({downloadSpeed:s})),i(e.info.httpConnectionType$,s=>{this.statContext.firstConnectionType||this.updateContext({firstConnectionType:Ri(s)}),this.updateContext({connectionType:Ri(s)})}),i(e.info.httpConnectionReused$,s=>{Bc(this.statContext.firstConnectionReused)&&this.updateContext({firstConnectionReused:s}),this.updateContext({connectionReused:s})}),i(e.info.surface$,s=>this.updateContext({mode:Rr(s)})),i(Mc({current:e.info.currentTextTrack$,available:e.info.availableTextTracks$}),({current:s,available:c})=>{let h=c.find(({id:I})=>I===s),y=h&&(h.isAuto?`${h.language}_auto`:h.language);this.updateContext({subtitles:y})}),this.player=e,this.uiEvents&&this.attachToUi(this.uiEvents),this.resubscribeBeforeunload(),this.subscription.add(t),t}attachToUi(e){this.uiEvents=e;let{subscription:t,subscribe:i}=Ni();return this.player&&(i(e.actionRewind$,()=>{this.player&&(this.resetViewSession(),this.logActionPlay({position:this.player.info.position$.getValue()}))}),i(e.actionSeek$,this.seekAction$),i(e.inPiP$,o=>{let a=o?"pip":Rr(this.player?.info.surface$.getValue());this.updateContext({mode:a})}),i(e.inFullscreen$,o=>{let a=o?"fullscreen":Rr(this.player?.info.surface$.getValue());this.updateContext({mode:a})}),i(e.actionSetSubtitle$,o=>this.updateContext({subtitles:o})),i(e.nextMovie$,o=>this.logNextMovie(o)),this.resubscribeBeforeunload(),this.subscription.add(t)),t}attachToAds(e){let{subscription:t,subscribe:i}=Ni();return i(e.slotRequested$,()=>this.logAdSlotRequest()),i(e.started$,o=>this.logAdStarted(o)),i(e.paused$,()=>this.logAdPaused()),i(e.resumed$,()=>this.logAdResumed()),i(e.ended$,()=>this.logAdEnded()),i(e.skipped$,()=>this.logAdSkipped()),i(e.clicked$,()=>this.logAdClicked()),this.resubscribeBeforeunload(),this.subscription.add(t),t}attachToInteractive(e){let{subscription:t,subscribe:i}=Ni();return i(e.click$,o=>this.logInterfaceClick(o)),i(e.nextMovie$,o=>this.logNextMovie(o)),this.resubscribeBeforeunload(),this.subscription.add(t),t}authorize(e){return this.api.authorize(e)}pause(){this.logger.pause(),this.oneStatDebugLog({message:"paused"})}resume(){this.logger.resume(),this.oneStatDebugLog({message:"resumed"})}destroy(){this.logger.flush(),this.subscription.unsubscribe(),this.api.destroy(),this.logger.destroy()}resetViewSession(){this.oneStatDebugLog({message:"VSID reset"}),this.vsid$.next(Nc())}getDeviceId(){return this.deviceId}setFieldBlacklist(){}logInited(){}logReady(e){this.log({operation:"player_ready",param:String(e.time)})}logStarted(...e){this.logActionPlay(...e)}logPlay(){this.log({operation:"play_toggle"})}logPlaying(){this.log({operation:"playing"})}logPause(e){this.log({operation:"pause",param:String(Math.round(e.position))})}logSeek(e){this.log({operation:"seek",param:e.action,time:e.time})}logFirstBytes(e){this.log({operation:"first_bytes",param:String(e.time)})}logFirstFrame(e){this.log({operation:"first_frame",param:String(e.time)})}logError(e){this.log({operation:"content_error",param:`${e.fatal?"fatal":"recoverable"}_${e.errorType}`})}logWatchCoverageRecord(e){this.log({operation:"watch_coverage_record",param:`${e.start}-${e.end}`},{in_history:this.statContext.inHistory?1:void 0})}logWatchCoverageLive(e){let t=this.timeSynchronisation?.getOffset()??0,i=e.start+t,o=e.end+t;this.log({operation:"watch_coverage_live",param:`${i}-${o}`},{in_history:this.statContext.inHistory?1:void 0})}logEmptyBuffer(e){this.log({operation:"empty_buffer",param:String(e.duration)})}logDownloadSpeed(){}logAdSlotRequest(){this.log({operation:"adv",param:"slot_request"})}logAdStarted(e){this.log({operation:"adv",param:e})}logAdPaused(){this.log({operation:"adv",param:"pause"})}logAdResumed(){this.log({operation:"adv",param:"resume"})}logAdEnded(){this.log({operation:"adv",param:"ended"})}logAdSkipped(){this.log({operation:"adv",param:"skip"})}logAdClicked(){this.log({operation:"adv",param:"click"})}logInterfaceClick(e){this.log({operation:"player_interface_click",param:e})}logNextMovie(e){this.log({operation:"next_movie",param:String(e)})}subscribe(){this.resubscribeBeforeunload();let e=window.navigator.connection;e&&"onchange"in e&&"effectiveType"in e&&this.subscription.add(Em(Fc(e,"change"),Pm(["init"])).subscribe(()=>this.updateContext({network:Ac(e.effectiveType)}))),this.config.debugLog&&this.debugLogger.log$.subscribe(t=>{console.debug("%c stat ","background:#fa6470;",`component: ${t.component}.`,t.message)})}resubscribeBeforeunload(){this.beforeunloadSubscription?.unsubscribe(),this.beforeunloadSubscription=Fc(window,"beforeunload").subscribe(()=>this.logger.flush(!0)),this.subscription.add(this.beforeunloadSubscription)}logPlayerReady(e){this.log({operation:"player_ready",param:String(Math.round(e.duration))})}logActionPlay(e){this.log({operation:"action_play",param:String(Math.round(e.position))})}logActionPlayInteractive(){this.statContext.projectId&&this.log({operation:"action_play_interactive",param:String(this.statContext.movieId)},{vid:this.statContext.projectId})}logFailover(e){this.log({operation:"failover",param:e})}logCloseAtEmptyBuffer(e){this.log({operation:"close_at_empty_buffer",param:String(Math.round(e.duration))})}logActionStop(){this.log({operation:"action_stop"})}logTrackSwitch(e){this.log({operation:"track_switch",param:e.id})}log(e,t={}){if(this.disabled){this.oneStatDebugLog({message:`operation ${e.operation} but statistics is disabled`});return}if(this.config.disabledOperations.includes(e.operation)){this.oneStatDebugLog({message:`operation ${e.operation} but it is disabled`});return}this.oneStatDebugLog({message:`operation ${e.operation} ${e.param}`});let i=this.createLogItem(e,t);this.logger.log(i)}createLogItem({operation:e,param:t,time:i},o={}){let a=this.timeSynchronisation?.now()??F(),u=this.vsid$.getValue();Sm(u);let l=this.isid$.getValue(),p=e==="empty_buffer"||e==="close_at_empty_buffer"?this.statContext.connectionType:this.statContext.firstConnectionType,f=this.statContext.firstConnectionReused,d,v;if(this.isEmbed){d=this.embedParent;let c=[...new URLSearchParams(location.search).entries()].filter(([h,y])=>this.config.embedUrlParams.includes(h));v=new URLSearchParams(c).toString()}else this.statContext.place==="direct"&&((this.statContext.refDomain||document.referrer)&&(d=new URL(this.statContext.refDomain||document.referrer).hostname),v=location.href.substring(0,1024));let s={vsid:u,isid:l,vid:this.statContext.movieId,ct:this.statContext.contentType,place:this.isEmbed?"embed":this.statContext.place,quality:this.statContext.quality,cdn_host:this.statContext.cdnHostname,stat_type:this.statContext.autoplay===!0?"auto":this.statContext.autoplay===!1?"":void 0,param:t,vk_app_id:this.statContext.vkAppId,track_code:this.statContext.trackCode,connection_type:p,connection_reused:f===!0?1:f===!1?0:void 0,cached_data:this.statContext.cached===!0?1:this.statContext.cached===!1?0:void 0,live:this.statContext.liveEdge?1:void 0,muted:this.statContext.audible===!1?1:void 0,mode:this.statContext.mode,subtitles:this.statContext.subtitles,download_speed:this.statContext.downloadSpeed,manual_quality:this.statContext.autoQuality?void 0:1,ref_domain:d,direct_url:v,rate:this.statContext.rate===1||Bc(this.statContext.rate)?void 0:this.statContext.rate.toFixed(2),view_360:this.statContext.is3d?1:void 0,aid:this.statContext.albumId,vk_playlist_id:this.statContext.vkPlaylistId,...o};for(let c of this.config.disabledCustomFields)delete s[c];return{operation:e,type:1,time:i,network:this.statContext.network,timestamp:a,custom:s}}};export{ve as ApiEnv,kr as ConnectionType,Lr as ContentType,ji as InteractiveInterfaceClick,ki as OneStat,Nr as Quality,Dr as SeekAction,Er as VERSION};
6
+ var Hc=Object.create;var Di=Object.defineProperty;var zc=Object.getOwnPropertyDescriptor;var Qc=Object.getOwnPropertyNames;var Yc=Object.getPrototypeOf,Jc=Object.prototype.hasOwnProperty;var n=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var Xc=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Qc(e))!Jc.call(r,o)&&o!==t&&Di(r,o,{get:()=>e[o],enumerable:!(i=zc(e,o))||i.enumerable});return r};var $i=(r,e,t)=>(t=r!=null?Hc(Yc(r)):{},Xc(e||!r||!r.__esModule?Di(t,"default",{value:r,enumerable:!0}):t,r));var Gi=n(()=>{"use strict"});var m=n((Mr,Ki)=>{"use strict";var he=function(r){return r&&r.Math===Math&&r};Ki.exports=he(typeof globalThis=="object"&&globalThis)||he(typeof window=="object"&&window)||he(typeof self=="object"&&self)||he(typeof global=="object"&&global)||he(typeof Mr=="object"&&Mr)||function(){return this}()||Function("return this")()});var P=n((Mm,Wi)=>{"use strict";Wi.exports=function(r){try{return!!r()}catch{return!0}}});var ge=n((jm,Hi)=>{"use strict";var rl=P();Hi.exports=!rl(function(){var r=function(){}.bind();return typeof r!="function"||r.hasOwnProperty("prototype")})});var jr=n((Fm,Ji)=>{"use strict";var tl=ge(),Yi=Function.prototype,zi=Yi.apply,Qi=Yi.call;Ji.exports=typeof Reflect=="object"&&Reflect.apply||(tl?Qi.bind(zi):function(){return Qi.apply(zi,arguments)})});var O=n((Bm,eo)=>{"use strict";var Xi=ge(),Zi=Function.prototype,Fr=Zi.call,il=Xi&&Zi.bind.bind(Fr,Fr);eo.exports=Xi?il:function(r){return function(){return Fr.apply(r,arguments)}}});var me=n((Um,to)=>{"use strict";var ro=O(),ol=ro({}.toString),nl=ro("".slice);to.exports=function(r){return nl(ol(r),8,-1)}});var Br=n((Vm,io)=>{"use strict";var al=me(),sl=O();io.exports=function(r){if(al(r)==="Function")return sl(r)}});var b=n((Gm,oo)=>{"use strict";var Ur=typeof document=="object"&&document.all;oo.exports=typeof Ur>"u"&&Ur!==void 0?function(r){return typeof r=="function"||r===Ur}:function(r){return typeof r=="function"}});var _=n((Km,no)=>{"use strict";var ul=P();no.exports=!ul(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})});var w=n((Wm,ao)=>{"use strict";var cl=ge(),Be=Function.prototype.call;ao.exports=cl?Be.bind(Be):function(){return Be.apply(Be,arguments)}});var lo=n(co=>{"use strict";var so={}.propertyIsEnumerable,uo=Object.getOwnPropertyDescriptor,ll=uo&&!so.call({1:2},1);co.f=ll?function(e){var t=uo(this,e);return!!t&&t.enumerable}:so});var be=n((zm,fo)=>{"use strict";fo.exports=function(r,e){return{enumerable:!(r&1),configurable:!(r&2),writable:!(r&4),value:e}}});var vo=n((Qm,po)=>{"use strict";var fl=O(),dl=P(),pl=me(),Vr=Object,vl=fl("".split);po.exports=dl(function(){return!Vr("z").propertyIsEnumerable(0)})?function(r){return pl(r)==="String"?vl(r,""):Vr(r)}:Vr});var ye=n((Ym,ho)=>{"use strict";ho.exports=function(r){return r==null}});var Ue=n((Jm,go)=>{"use strict";var hl=ye(),gl=TypeError;go.exports=function(r){if(hl(r))throw new gl("Can't call method on "+r);return r}});var Q=n((Xm,mo)=>{"use strict";var ml=vo(),bl=Ue();mo.exports=function(r){return ml(bl(r))}});var R=n((Zm,bo)=>{"use strict";var yl=b();bo.exports=function(r){return typeof r=="object"?r!==null:yl(r)}});var Ve=n((eb,yo)=>{"use strict";yo.exports={}});var D=n((rb,So)=>{"use strict";var Gr=Ve(),Kr=m(),Il=b(),Io=function(r){return Il(r)?r:void 0};So.exports=function(r,e){return arguments.length<2?Io(Gr[r])||Io(Kr[r]):Gr[r]&&Gr[r][e]||Kr[r]&&Kr[r][e]}});var Ge=n((tb,Eo)=>{"use strict";var Sl=O();Eo.exports=Sl({}.isPrototypeOf)});var Y=n((ib,qo)=>{"use strict";var El=m(),Po=El.navigator,To=Po&&Po.userAgent;qo.exports=To?String(To):""});var Hr=n((ob,Co)=>{"use strict";var xo=m(),Wr=Y(),Oo=xo.process,_o=xo.Deno,wo=Oo&&Oo.versions||_o&&_o.version,Ro=wo&&wo.v8,x,Ke;Ro&&(x=Ro.split("."),Ke=x[0]>0&&x[0]<4?1:+(x[0]+x[1]));!Ke&&Wr&&(x=Wr.match(/Edge\/(\d+)/),(!x||x[1]>=74)&&(x=Wr.match(/Chrome\/(\d+)/),x&&(Ke=+x[1])));Co.exports=Ke});var zr=n((nb,No)=>{"use strict";var Ao=Hr(),Pl=P(),Tl=m(),ql=Tl.String;No.exports=!!Object.getOwnPropertySymbols&&!Pl(function(){var r=Symbol("symbol detection");return!ql(r)||!(Object(r)instanceof Symbol)||!Symbol.sham&&Ao&&Ao<41})});var Qr=n((ab,Lo)=>{"use strict";var Ol=zr();Lo.exports=Ol&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var Yr=n((sb,ko)=>{"use strict";var _l=D(),wl=b(),Rl=Ge(),xl=Qr(),Cl=Object;ko.exports=xl?function(r){return typeof r=="symbol"}:function(r){var e=_l("Symbol");return wl(e)&&Rl(e.prototype,Cl(r))}});var Ie=n((ub,Do)=>{"use strict";var Al=String;Do.exports=function(r){try{return Al(r)}catch{return"Object"}}});var $=n((cb,$o)=>{"use strict";var Nl=b(),Ll=Ie(),kl=TypeError;$o.exports=function(r){if(Nl(r))return r;throw new kl(Ll(r)+" is not a function")}});var We=n((lb,Mo)=>{"use strict";var Dl=$(),$l=ye();Mo.exports=function(r,e){var t=r[e];return $l(t)?void 0:Dl(t)}});var Fo=n((fb,jo)=>{"use strict";var Jr=w(),Xr=b(),Zr=R(),Ml=TypeError;jo.exports=function(r,e){var t,i;if(e==="string"&&Xr(t=r.toString)&&!Zr(i=Jr(t,r))||Xr(t=r.valueOf)&&!Zr(i=Jr(t,r))||e!=="string"&&Xr(t=r.toString)&&!Zr(i=Jr(t,r)))return i;throw new Ml("Can't convert object to primitive value")}});var A=n((db,Bo)=>{"use strict";Bo.exports=!0});var Go=n((pb,Vo)=>{"use strict";var Uo=m(),jl=Object.defineProperty;Vo.exports=function(r,e){try{jl(Uo,r,{value:e,configurable:!0,writable:!0})}catch{Uo[r]=e}return e}});var Se=n((vb,Ho)=>{"use strict";var Fl=A(),Bl=m(),Ul=Go(),Ko="__core-js_shared__",Wo=Ho.exports=Bl[Ko]||Ul(Ko,{});(Wo.versions||(Wo.versions=[])).push({version:"3.38.0",mode:Fl?"pure":"global",copyright:"\xA9 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.38.0/LICENSE",source:"https://github.com/zloirock/core-js"})});var et=n((hb,Qo)=>{"use strict";var zo=Se();Qo.exports=function(r,e){return zo[r]||(zo[r]=e||{})}});var rt=n((gb,Yo)=>{"use strict";var Vl=Ue(),Gl=Object;Yo.exports=function(r){return Gl(Vl(r))}});var N=n((mb,Jo)=>{"use strict";var Kl=O(),Wl=rt(),Hl=Kl({}.hasOwnProperty);Jo.exports=Object.hasOwn||function(e,t){return Hl(Wl(e),t)}});var tt=n((bb,Xo)=>{"use strict";var zl=O(),Ql=0,Yl=Math.random(),Jl=zl(1 .toString);Xo.exports=function(r){return"Symbol("+(r===void 0?"":r)+")_"+Jl(++Ql+Yl,36)}});var T=n((yb,en)=>{"use strict";var Xl=m(),Zl=et(),Zo=N(),ef=tt(),rf=zr(),tf=Qr(),J=Xl.Symbol,it=Zl("wks"),of=tf?J.for||J:J&&J.withoutSetter||ef;en.exports=function(r){return Zo(it,r)||(it[r]=rf&&Zo(J,r)?J[r]:of("Symbol."+r)),it[r]}});var nn=n((Ib,on)=>{"use strict";var nf=w(),rn=R(),tn=Yr(),af=We(),sf=Fo(),uf=T(),cf=TypeError,lf=uf("toPrimitive");on.exports=function(r,e){if(!rn(r)||tn(r))return r;var t=af(r,lf),i;if(t){if(e===void 0&&(e="default"),i=nf(t,r,e),!rn(i)||tn(i))return i;throw new cf("Can't convert object to primitive value")}return e===void 0&&(e="number"),sf(r,e)}});var ot=n((Sb,an)=>{"use strict";var ff=nn(),df=Yr();an.exports=function(r){var e=ff(r,"string");return df(e)?e:e+""}});var He=n((Eb,un)=>{"use strict";var pf=m(),sn=R(),nt=pf.document,vf=sn(nt)&&sn(nt.createElement);un.exports=function(r){return vf?nt.createElement(r):{}}});var at=n((Pb,cn)=>{"use strict";var hf=_(),gf=P(),mf=He();cn.exports=!hf&&!gf(function(){return Object.defineProperty(mf("div"),"a",{get:function(){return 7}}).a!==7})});var dn=n(fn=>{"use strict";var bf=_(),yf=w(),If=lo(),Sf=be(),Ef=Q(),Pf=ot(),Tf=N(),qf=at(),ln=Object.getOwnPropertyDescriptor;fn.f=bf?ln:function(e,t){if(e=Ef(e),t=Pf(t),qf)try{return ln(e,t)}catch{}if(Tf(e,t))return Sf(!yf(If.f,e,t),e[t])}});var st=n((qb,pn)=>{"use strict";var Of=P(),_f=b(),wf=/#|\.prototype\./,Ee=function(r,e){var t=xf[Rf(r)];return t===Af?!0:t===Cf?!1:_f(e)?Of(e):!!e},Rf=Ee.normalize=function(r){return String(r).replace(wf,".").toLowerCase()},xf=Ee.data={},Cf=Ee.NATIVE="N",Af=Ee.POLYFILL="P";pn.exports=Ee});var Pe=n((Ob,hn)=>{"use strict";var vn=Br(),Nf=$(),Lf=ge(),kf=vn(vn.bind);hn.exports=function(r,e){return Nf(r),e===void 0?r:Lf?kf(r,e):function(){return r.apply(e,arguments)}}});var ut=n((_b,gn)=>{"use strict";var Df=_(),$f=P();gn.exports=Df&&$f(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})});var M=n((wb,mn)=>{"use strict";var Mf=R(),jf=String,Ff=TypeError;mn.exports=function(r){if(Mf(r))return r;throw new Ff(jf(r)+" is not an object")}});var V=n(yn=>{"use strict";var Bf=_(),Uf=at(),Vf=ut(),ze=M(),bn=ot(),Gf=TypeError,ct=Object.defineProperty,Kf=Object.getOwnPropertyDescriptor,lt="enumerable",ft="configurable",dt="writable";yn.f=Bf?Vf?function(e,t,i){if(ze(e),t=bn(t),ze(i),typeof e=="function"&&t==="prototype"&&"value"in i&&dt in i&&!i[dt]){var o=Kf(e,t);o&&o[dt]&&(e[t]=i.value,i={configurable:ft in i?i[ft]:o[ft],enumerable:lt in i?i[lt]:o[lt],writable:!1})}return ct(e,t,i)}:ct:function(e,t,i){if(ze(e),t=bn(t),ze(i),Uf)try{return ct(e,t,i)}catch{}if("get"in i||"set"in i)throw new Gf("Accessors not supported");return"value"in i&&(e[t]=i.value),e}});var X=n((xb,In)=>{"use strict";var Wf=_(),Hf=V(),zf=be();In.exports=Wf?function(r,e,t){return Hf.f(r,e,zf(1,t))}:function(r,e,t){return r[e]=t,r}});var L=n((Cb,En)=>{"use strict";var Te=m(),Qf=jr(),Yf=Br(),Jf=b(),Xf=dn().f,Zf=st(),Z=Ve(),ed=Pe(),ee=X(),Sn=N();Se();var rd=function(r){var e=function(t,i,o){if(this instanceof e){switch(arguments.length){case 0:return new r;case 1:return new r(t);case 2:return new r(t,i)}return new r(t,i,o)}return Qf(r,this,arguments)};return e.prototype=r.prototype,e};En.exports=function(r,e){var t=r.target,i=r.global,o=r.stat,a=r.proto,u=i?Te:o?Te[t]:Te[t]&&Te[t].prototype,l=i?Z:Z[t]||ee(Z,t,{})[t],p=l.prototype,f,d,v,s,c,h,y,I,g;for(s in e)f=Zf(i?s:t+(o?".":"#")+s,r.forced),d=!f&&u&&Sn(u,s),h=l[s],d&&(r.dontCallGetSet?(g=Xf(u,s),y=g&&g.value):y=u[s]),c=d&&y?y:e[s],!(!f&&!a&&typeof h==typeof c)&&(r.bind&&d?I=ed(c,Te):r.wrap&&d?I=rd(c):a&&Jf(c)?I=Yf(c):I=c,(r.sham||c&&c.sham||h&&h.sham)&&ee(I,"sham",!0),ee(l,s,I),a&&(v=t+"Prototype",Sn(Z,v)||ee(Z,v,{}),ee(Z[v],s,c),r.real&&p&&(f||!p[s])&&ee(p,s,c)))}});var pt=n((Ab,Pn)=>{"use strict";var qe=m(),td=Y(),id=me(),Qe=function(r){return td.slice(0,r.length)===r};Pn.exports=function(){return Qe("Bun/")?"BUN":Qe("Cloudflare-Workers")?"CLOUDFLARE":Qe("Deno/")?"DENO":Qe("Node.js/")?"NODE":qe.Bun&&typeof Bun.version=="string"?"BUN":qe.Deno&&typeof Deno.version=="object"?"DENO":id(qe.process)==="process"?"NODE":qe.window&&qe.document?"BROWSER":"REST"}()});var Ye=n((Nb,Tn)=>{"use strict";var od=pt();Tn.exports=od==="NODE"});var re=n((Lb,qn)=>{"use strict";var nd=X();qn.exports=function(r,e,t,i){return i&&i.enumerable?r[e]=t:nd(r,e,t),r}});var _n=n((kb,On)=>{"use strict";var ad=O(),sd=$();On.exports=function(r,e,t){try{return ad(sd(Object.getOwnPropertyDescriptor(r,e)[t]))}catch{}}});var Rn=n((Db,wn)=>{"use strict";var ud=R();wn.exports=function(r){return ud(r)||r===null}});var Cn=n(($b,xn)=>{"use strict";var cd=Rn(),ld=String,fd=TypeError;xn.exports=function(r){if(cd(r))return r;throw new fd("Can't set "+ld(r)+" as a prototype")}});var vt=n((Mb,An)=>{"use strict";var dd=_n(),pd=R(),vd=Ue(),hd=Cn();An.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var r=!1,e={},t;try{t=dd(Object.prototype,"__proto__","set"),t(e,[]),r=e instanceof Array}catch{}return function(o,a){return vd(o),hd(a),pd(o)&&(r?t(o,a):o.__proto__=a),o}}():void 0)});var Je=n((jb,Ln)=>{"use strict";var gd=T(),md=gd("toStringTag"),Nn={};Nn[md]="z";Ln.exports=String(Nn)==="[object z]"});var Ze=n((Fb,kn)=>{"use strict";var bd=Je(),yd=b(),Xe=me(),Id=T(),Sd=Id("toStringTag"),Ed=Object,Pd=Xe(function(){return arguments}())==="Arguments",Td=function(r,e){try{return r[e]}catch{}};kn.exports=bd?Xe:function(r){var e,t,i;return r===void 0?"Undefined":r===null?"Null":typeof(t=Td(e=Ed(r),Sd))=="string"?t:Pd?Xe(e):(i=Xe(e))==="Object"&&yd(e.callee)?"Arguments":i}});var $n=n((Bb,Dn)=>{"use strict";var qd=Je(),Od=Ze();Dn.exports=qd?{}.toString:function(){return"[object "+Od(this)+"]"}});var Oe=n((Ub,jn)=>{"use strict";var _d=Je(),wd=V().f,Rd=X(),xd=N(),Cd=$n(),Ad=T(),Mn=Ad("toStringTag");jn.exports=function(r,e,t,i){var o=t?r:r&&r.prototype;o&&(xd(o,Mn)||wd(o,Mn,{configurable:!0,value:e}),i&&!_d&&Rd(o,"toString",Cd))}});var Bn=n((Vb,Fn)=>{"use strict";var Nd=V();Fn.exports=function(r,e,t){return Nd.f(r,e,t)}});var Gn=n((Gb,Vn)=>{"use strict";var Ld=D(),kd=Bn(),Dd=T(),$d=_(),Un=Dd("species");Vn.exports=function(r){var e=Ld(r);$d&&e&&!e[Un]&&kd(e,Un,{configurable:!0,get:function(){return this}})}});var Wn=n((Kb,Kn)=>{"use strict";var Md=Ge(),jd=TypeError;Kn.exports=function(r,e){if(Md(e,r))return r;throw new jd("Incorrect invocation")}});var gt=n((Wb,Hn)=>{"use strict";var Fd=O(),Bd=b(),ht=Se(),Ud=Fd(Function.toString);Bd(ht.inspectSource)||(ht.inspectSource=function(r){return Ud(r)});Hn.exports=ht.inspectSource});var Zn=n((Hb,Xn)=>{"use strict";var Vd=O(),Gd=P(),zn=b(),Kd=Ze(),Wd=D(),Hd=gt(),Qn=function(){},Yn=Wd("Reflect","construct"),mt=/^\s*(?:class|function)\b/,zd=Vd(mt.exec),Qd=!mt.test(Qn),_e=function(e){if(!zn(e))return!1;try{return Yn(Qn,[],e),!0}catch{return!1}},Jn=function(e){if(!zn(e))return!1;switch(Kd(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return Qd||!!zd(mt,Hd(e))}catch{return!0}};Jn.sham=!0;Xn.exports=!Yn||Gd(function(){var r;return _e(_e.call)||!_e(Object)||!_e(function(){r=!0})||r})?Jn:_e});var ra=n((zb,ea)=>{"use strict";var Yd=Zn(),Jd=Ie(),Xd=TypeError;ea.exports=function(r){if(Yd(r))return r;throw new Xd(Jd(r)+" is not a constructor")}});var bt=n((Qb,ia)=>{"use strict";var ta=M(),Zd=ra(),ep=ye(),rp=T(),tp=rp("species");ia.exports=function(r,e){var t=ta(r).constructor,i;return t===void 0||ep(i=ta(t)[tp])?e:Zd(i)}});var yt=n((Yb,oa)=>{"use strict";var ip=D();oa.exports=ip("document","documentElement")});var aa=n((Jb,na)=>{"use strict";var op=O();na.exports=op([].slice)});var ua=n((Xb,sa)=>{"use strict";var np=TypeError;sa.exports=function(r,e){if(r<e)throw new np("Not enough arguments");return r}});var It=n((Zb,ca)=>{"use strict";var ap=Y();ca.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(ap)});var Rt=n((ey,ba)=>{"use strict";var q=m(),sp=jr(),up=Pe(),la=b(),cp=N(),ma=P(),fa=yt(),lp=aa(),da=He(),fp=ua(),dp=It(),pp=Ye(),Ot=q.setImmediate,_t=q.clearImmediate,vp=q.process,St=q.Dispatch,hp=q.Function,pa=q.MessageChannel,gp=q.String,Et=0,we={},va="onreadystatechange",Re,G,Pt,Tt;ma(function(){Re=q.location});var wt=function(r){if(cp(we,r)){var e=we[r];delete we[r],e()}},qt=function(r){return function(){wt(r)}},ha=function(r){wt(r.data)},ga=function(r){q.postMessage(gp(r),Re.protocol+"//"+Re.host)};(!Ot||!_t)&&(Ot=function(e){fp(arguments.length,1);var t=la(e)?e:hp(e),i=lp(arguments,1);return we[++Et]=function(){sp(t,void 0,i)},G(Et),Et},_t=function(e){delete we[e]},pp?G=function(r){vp.nextTick(qt(r))}:St&&St.now?G=function(r){St.now(qt(r))}:pa&&!dp?(Pt=new pa,Tt=Pt.port2,Pt.port1.onmessage=ha,G=up(Tt.postMessage,Tt)):q.addEventListener&&la(q.postMessage)&&!q.importScripts&&Re&&Re.protocol!=="file:"&&!ma(ga)?(G=ga,q.addEventListener("message",ha,!1)):va in da("script")?G=function(r){fa.appendChild(da("script"))[va]=function(){fa.removeChild(this),wt(r)}}:G=function(r){setTimeout(qt(r),0)});ba.exports={set:Ot,clear:_t}});var Sa=n((ry,Ia)=>{"use strict";var ya=m(),mp=_(),bp=Object.getOwnPropertyDescriptor;Ia.exports=function(r){if(!mp)return ya[r];var e=bp(ya,r);return e&&e.value}});var xt=n((ty,Pa)=>{"use strict";var Ea=function(){this.head=null,this.tail=null};Ea.prototype={add:function(r){var e={item:r,next:null},t=this.tail;t?t.next=e:this.head=e,this.tail=e},get:function(){var r=this.head;if(r){var e=this.head=r.next;return e===null&&(this.tail=null),r.item}}};Pa.exports=Ea});var qa=n((iy,Ta)=>{"use strict";var yp=Y();Ta.exports=/ipad|iphone|ipod/i.test(yp)&&typeof Pebble<"u"});var _a=n((oy,Oa)=>{"use strict";var Ip=Y();Oa.exports=/web0s(?!.*chrome)/i.test(Ip)});var La=n((ny,Na)=>{"use strict";var ie=m(),Sp=Sa(),wa=Pe(),Ct=Rt().set,Ep=xt(),Pp=It(),Tp=qa(),qp=_a(),At=Ye(),Ra=ie.MutationObserver||ie.WebKitMutationObserver,xa=ie.document,Ca=ie.process,er=ie.Promise,kt=Sp("queueMicrotask"),te,Nt,Lt,rr,Aa;kt||(xe=new Ep,Ce=function(){var r,e;for(At&&(r=Ca.domain)&&r.exit();e=xe.get();)try{e()}catch(t){throw xe.head&&te(),t}r&&r.enter()},!Pp&&!At&&!qp&&Ra&&xa?(Nt=!0,Lt=xa.createTextNode(""),new Ra(Ce).observe(Lt,{characterData:!0}),te=function(){Lt.data=Nt=!Nt}):!Tp&&er&&er.resolve?(rr=er.resolve(void 0),rr.constructor=er,Aa=wa(rr.then,rr),te=function(){Aa(Ce)}):At?te=function(){Ca.nextTick(Ce)}:(Ct=wa(Ct,ie),te=function(){Ct(Ce)}),kt=function(r){xe.head||te(),xe.add(r)});var xe,Ce;Na.exports=kt});var Da=n((ay,ka)=>{"use strict";ka.exports=function(r,e){try{arguments.length===1?console.error(r):console.error(r,e)}catch{}}});var tr=n((sy,$a)=>{"use strict";$a.exports=function(r){try{return{error:!1,value:r()}}catch(e){return{error:!0,value:e}}}});var Fa=n((uy,ja)=>{"use strict";var Op=m(),_p=b(),Ma=Op.WeakMap;ja.exports=_p(Ma)&&/native code/.test(String(Ma))});var ir=n((cy,Ua)=>{"use strict";var wp=et(),Rp=tt(),Ba=wp("keys");Ua.exports=function(r){return Ba[r]||(Ba[r]=Rp(r))}});var or=n((ly,Va)=>{"use strict";Va.exports={}});var jt=n((fy,Wa)=>{"use strict";var xp=Fa(),Ka=m(),Cp=R(),Ap=X(),Dt=N(),$t=Se(),Np=ir(),Lp=or(),Ga="Object already initialized",Mt=Ka.TypeError,kp=Ka.WeakMap,nr,Ae,ar,Dp=function(r){return ar(r)?Ae(r):nr(r,{})},$p=function(r){return function(e){var t;if(!Cp(e)||(t=Ae(e)).type!==r)throw new Mt("Incompatible receiver, "+r+" required");return t}};xp||$t.state?(C=$t.state||($t.state=new kp),C.get=C.get,C.has=C.has,C.set=C.set,nr=function(r,e){if(C.has(r))throw new Mt(Ga);return e.facade=r,C.set(r,e),e},Ae=function(r){return C.get(r)||{}},ar=function(r){return C.has(r)}):(K=Np("state"),Lp[K]=!0,nr=function(r,e){if(Dt(r,K))throw new Mt(Ga);return e.facade=r,Ap(r,K,e),e},Ae=function(r){return Dt(r,K)?r[K]:{}},ar=function(r){return Dt(r,K)});var C,K;Wa.exports={set:nr,get:Ae,has:ar,enforce:Dp,getterFor:$p}});var W=n((dy,Ha)=>{"use strict";var Mp=m();Ha.exports=Mp.Promise});var oe=n((py,Ja)=>{"use strict";var jp=m(),Ne=W(),Fp=b(),Bp=st(),Up=gt(),Vp=T(),za=pt(),Gp=A(),Ft=Hr(),Qa=Ne&&Ne.prototype,Kp=Vp("species"),Bt=!1,Ya=Fp(jp.PromiseRejectionEvent),Wp=Bp("Promise",function(){var r=Up(Ne),e=r!==String(Ne);if(!e&&Ft===66||Gp&&!(Qa.catch&&Qa.finally))return!0;if(!Ft||Ft<51||!/native code/.test(r)){var t=new Ne(function(a){a(1)}),i=function(a){a(function(){},function(){})},o=t.constructor={};if(o[Kp]=i,Bt=t.then(function(){})instanceof i,!Bt)return!0}return!e&&(za==="BROWSER"||za==="DENO")&&!Ya});Ja.exports={CONSTRUCTOR:Wp,REJECTION_EVENT:Ya,SUBCLASSING:Bt}});var ne=n((vy,Za)=>{"use strict";var Xa=$(),Hp=TypeError,zp=function(r){var e,t;this.promise=new r(function(i,o){if(e!==void 0||t!==void 0)throw new Hp("Bad Promise constructor");e=i,t=o}),this.resolve=Xa(e),this.reject=Xa(t)};Za.exports.f=function(r){return new zp(r)}});var bs=n(()=>{"use strict";var Qp=L(),Yp=A(),lr=Ye(),U=m(),ce=w(),es=re(),rs=vt(),Jp=Oe(),Xp=Gn(),Zp=$(),cr=b(),ev=R(),rv=Wn(),tv=bt(),as=Rt().set,Wt=La(),iv=Da(),ov=tr(),nv=xt(),ss=jt(),fr=W(),Ht=oe(),us=ne(),dr="Promise",cs=Ht.CONSTRUCTOR,av=Ht.REJECTION_EVENT,sv=Ht.SUBCLASSING,Ut=ss.getterFor(dr),uv=ss.set,ae=fr&&fr.prototype,H=fr,sr=ae,ls=U.TypeError,Vt=U.document,zt=U.process,Gt=us.f,cv=Gt,lv=!!(Vt&&Vt.createEvent&&U.dispatchEvent),fs="unhandledrejection",fv="rejectionhandled",ts=0,ds=1,dv=2,Qt=1,ps=2,ur,is,pv,os,vs=function(r){var e;return ev(r)&&cr(e=r.then)?e:!1},hs=function(r,e){var t=e.value,i=e.state===ds,o=i?r.ok:r.fail,a=r.resolve,u=r.reject,l=r.domain,p,f,d;try{o?(i||(e.rejection===ps&&hv(e),e.rejection=Qt),o===!0?p=t:(l&&l.enter(),p=o(t),l&&(l.exit(),d=!0)),p===r.promise?u(new ls("Promise-chain cycle")):(f=vs(p))?ce(f,p,a,u):a(p)):u(t)}catch(v){l&&!d&&l.exit(),u(v)}},gs=function(r,e){r.notified||(r.notified=!0,Wt(function(){for(var t=r.reactions,i;i=t.get();)hs(i,r);r.notified=!1,e&&!r.rejection&&vv(r)}))},ms=function(r,e,t){var i,o;lv?(i=Vt.createEvent("Event"),i.promise=e,i.reason=t,i.initEvent(r,!1,!0),U.dispatchEvent(i)):i={promise:e,reason:t},!av&&(o=U["on"+r])?o(i):r===fs&&iv("Unhandled promise rejection",t)},vv=function(r){ce(as,U,function(){var e=r.facade,t=r.value,i=ns(r),o;if(i&&(o=ov(function(){lr?zt.emit("unhandledRejection",t,e):ms(fs,e,t)}),r.rejection=lr||ns(r)?ps:Qt,o.error))throw o.value})},ns=function(r){return r.rejection!==Qt&&!r.parent},hv=function(r){ce(as,U,function(){var e=r.facade;lr?zt.emit("rejectionHandled",e):ms(fv,e,r.value)})},se=function(r,e,t){return function(i){r(e,i,t)}},ue=function(r,e,t){r.done||(r.done=!0,t&&(r=t),r.value=e,r.state=dv,gs(r,!0))},Kt=function(r,e,t){if(!r.done){r.done=!0,t&&(r=t);try{if(r.facade===e)throw new ls("Promise can't be resolved itself");var i=vs(e);i?Wt(function(){var o={done:!1};try{ce(i,e,se(Kt,o,r),se(ue,o,r))}catch(a){ue(o,a,r)}}):(r.value=e,r.state=ds,gs(r,!1))}catch(o){ue({done:!1},o,r)}}};if(cs&&(H=function(e){rv(this,sr),Zp(e),ce(ur,this);var t=Ut(this);try{e(se(Kt,t),se(ue,t))}catch(i){ue(t,i)}},sr=H.prototype,ur=function(e){uv(this,{type:dr,done:!1,notified:!1,parent:!1,reactions:new nv,rejection:!1,state:ts,value:void 0})},ur.prototype=es(sr,"then",function(e,t){var i=Ut(this),o=Gt(tv(this,H));return i.parent=!0,o.ok=cr(e)?e:!0,o.fail=cr(t)&&t,o.domain=lr?zt.domain:void 0,i.state===ts?i.reactions.add(o):Wt(function(){hs(o,i)}),o.promise}),is=function(){var r=new ur,e=Ut(r);this.promise=r,this.resolve=se(Kt,e),this.reject=se(ue,e)},us.f=Gt=function(r){return r===H||r===pv?new is(r):cv(r)},!Yp&&cr(fr)&&ae!==Object.prototype)){os=ae.then,sv||es(ae,"then",function(e,t){var i=this;return new H(function(o,a){ce(os,i,o,a)}).then(e,t)},{unsafe:!0});try{delete ae.constructor}catch{}rs&&rs(ae,sr)}Qp({global:!0,constructor:!0,wrap:!0,forced:cs},{Promise:H});Jp(H,dr,!1,!0);Xp(dr)});var z=n((my,ys)=>{"use strict";ys.exports={}});var Ss=n((by,Is)=>{"use strict";var gv=T(),mv=z(),bv=gv("iterator"),yv=Array.prototype;Is.exports=function(r){return r!==void 0&&(mv.Array===r||yv[bv]===r)}});var Ps=n((yy,Es)=>{"use strict";var Iv=Math.ceil,Sv=Math.floor;Es.exports=Math.trunc||function(e){var t=+e;return(t>0?Sv:Iv)(t)}});var Yt=n((Iy,Ts)=>{"use strict";var Ev=Ps();Ts.exports=function(r){var e=+r;return e!==e||e===0?0:Ev(e)}});var Os=n((Sy,qs)=>{"use strict";var Pv=Yt(),Tv=Math.min;qs.exports=function(r){var e=Pv(r);return e>0?Tv(e,9007199254740991):0}});var Jt=n((Ey,_s)=>{"use strict";var qv=Os();_s.exports=function(r){return qv(r.length)}});var Xt=n((Py,Rs)=>{"use strict";var Ov=Ze(),ws=We(),_v=ye(),wv=z(),Rv=T(),xv=Rv("iterator");Rs.exports=function(r){if(!_v(r))return ws(r,xv)||ws(r,"@@iterator")||wv[Ov(r)]}});var Cs=n((Ty,xs)=>{"use strict";var Cv=w(),Av=$(),Nv=M(),Lv=Ie(),kv=Xt(),Dv=TypeError;xs.exports=function(r,e){var t=arguments.length<2?kv(r):e;if(Av(t))return Nv(Cv(t,r));throw new Dv(Lv(r)+" is not iterable")}});var Ls=n((qy,Ns)=>{"use strict";var $v=w(),As=M(),Mv=We();Ns.exports=function(r,e,t){var i,o;As(r);try{if(i=Mv(r,"return"),!i){if(e==="throw")throw t;return t}i=$v(i,r)}catch(a){o=!0,i=a}if(e==="throw")throw t;if(o)throw i;return As(i),t}});var vr=n((Oy,Ms)=>{"use strict";var jv=Pe(),Fv=w(),Bv=M(),Uv=Ie(),Vv=Ss(),Gv=Jt(),ks=Ge(),Kv=Cs(),Wv=Xt(),Ds=Ls(),Hv=TypeError,pr=function(r,e){this.stopped=r,this.result=e},$s=pr.prototype;Ms.exports=function(r,e,t){var i=t&&t.that,o=!!(t&&t.AS_ENTRIES),a=!!(t&&t.IS_RECORD),u=!!(t&&t.IS_ITERATOR),l=!!(t&&t.INTERRUPTED),p=jv(e,i),f,d,v,s,c,h,y,I=function(S){return f&&Ds(f,"normal",S),new pr(!0,S)},g=function(S){return o?(Bv(S),l?p(S[0],S[1],I):p(S[0],S[1])):l?p(S,I):p(S)};if(a)f=r.iterator;else if(u)f=r;else{if(d=Wv(r),!d)throw new Hv(Uv(r)+" is not iterable");if(Vv(d)){for(v=0,s=Gv(r);s>v;v++)if(c=g(r[v]),c&&ks($s,c))return c;return new pr(!1)}f=Kv(r,d)}for(h=a?r.next:f.next;!(y=Fv(h,f)).done;){try{c=g(y.value)}catch(S){Ds(f,"throw",S)}if(typeof c=="object"&&c&&ks($s,c))return c}return new pr(!1)}});var Vs=n((_y,Us)=>{"use strict";var zv=T(),Fs=zv("iterator"),Bs=!1;try{js=0,Zt={next:function(){return{done:!!js++}},return:function(){Bs=!0}},Zt[Fs]=function(){return this},Array.from(Zt,function(){throw 2})}catch{}var js,Zt;Us.exports=function(r,e){try{if(!e&&!Bs)return!1}catch{return!1}var t=!1;try{var i={};i[Fs]=function(){return{next:function(){return{done:t=!0}}}},r(i)}catch{}return t}});var ei=n((wy,Gs)=>{"use strict";var Qv=W(),Yv=Vs(),Jv=oe().CONSTRUCTOR;Gs.exports=Jv||!Yv(function(r){Qv.all(r).then(void 0,function(){})})});var Ks=n(()=>{"use strict";var Xv=L(),Zv=w(),eh=$(),rh=ne(),th=tr(),ih=vr(),oh=ei();Xv({target:"Promise",stat:!0,forced:oh},{all:function(e){var t=this,i=rh.f(t),o=i.resolve,a=i.reject,u=th(function(){var l=eh(t.resolve),p=[],f=0,d=1;ih(e,function(v){var s=f++,c=!1;d++,Zv(l,t,v).then(function(h){c||(c=!0,p[s]=h,--d||o(p))},a)}),--d||o(p)});return u.error&&a(u.value),i.promise}})});var Hs=n(()=>{"use strict";var nh=L(),ah=A(),sh=oe().CONSTRUCTOR,ti=W(),uh=D(),ch=b(),lh=re(),Ws=ti&&ti.prototype;nh({target:"Promise",proto:!0,forced:sh,real:!0},{catch:function(r){return this.then(void 0,r)}});!ah&&ch(ti)&&(ri=uh("Promise").prototype.catch,Ws.catch!==ri&&lh(Ws,"catch",ri,{unsafe:!0}));var ri});var zs=n(()=>{"use strict";var fh=L(),dh=w(),ph=$(),vh=ne(),hh=tr(),gh=vr(),mh=ei();fh({target:"Promise",stat:!0,forced:mh},{race:function(e){var t=this,i=vh.f(t),o=i.reject,a=hh(function(){var u=ph(t.resolve);gh(e,function(l){dh(u,t,l).then(i.resolve,o)})});return a.error&&o(a.value),i.promise}})});var Qs=n(()=>{"use strict";var bh=L(),yh=ne(),Ih=oe().CONSTRUCTOR;bh({target:"Promise",stat:!0,forced:Ih},{reject:function(e){var t=yh.f(this),i=t.reject;return i(e),t.promise}})});var ii=n(($y,Ys)=>{"use strict";var Sh=M(),Eh=R(),Ph=ne();Ys.exports=function(r,e){if(Sh(r),Eh(e)&&e.constructor===r)return e;var t=Ph.f(r),i=t.resolve;return i(e),t.promise}});var Zs=n(()=>{"use strict";var Th=L(),qh=D(),Js=A(),Oh=W(),Xs=oe().CONSTRUCTOR,_h=ii(),wh=qh("Promise"),Rh=Js&&!Xs;Th({target:"Promise",stat:!0,forced:Js||Xs},{resolve:function(e){return _h(Rh&&this===wh?Oh:this,e)}})});var eu=n(()=>{"use strict";bs();Ks();Hs();zs();Qs();Zs()});var ou=n(()=>{"use strict";var xh=L(),Ch=A(),hr=W(),Ah=P(),tu=D(),iu=b(),Nh=bt(),ru=ii(),Lh=re(),ni=hr&&hr.prototype,kh=!!hr&&Ah(function(){ni.finally.call({then:function(){}},function(){})});xh({target:"Promise",proto:!0,real:!0,forced:kh},{finally:function(r){var e=Nh(this,tu("Promise")),t=iu(r);return this.then(t?function(i){return ru(e,r()).then(function(){return i})}:r,t?function(i){return ru(e,r()).then(function(){throw i})}:r)}});!Ch&&iu(hr)&&(oi=tu("Promise").prototype.finally,ni.finally!==oi&&Lh(ni,"finally",oi,{unsafe:!0}));var oi});var au=n((Gy,nu)=>{"use strict";var Dh=D();nu.exports=Dh});var uu=n((Ky,su)=>{"use strict";Gi();eu();ou();var $h=au();su.exports=$h("Promise","finally")});var lu=n((Wy,cu)=>{"use strict";var Mh=uu();cu.exports=Mh});var du=n((Hy,fu)=>{"use strict";var jh=lu();fu.exports=jh});var vu=n((zy,pu)=>{"use strict";pu.exports=function(){}});var mu=n((Qy,gu)=>{"use strict";var ai=_(),Fh=N(),hu=Function.prototype,Bh=ai&&Object.getOwnPropertyDescriptor,si=Fh(hu,"name"),Uh=si&&function(){}.name==="something",Vh=si&&(!ai||ai&&Bh(hu,"name").configurable);gu.exports={EXISTS:si,PROPER:Uh,CONFIGURABLE:Vh}});var yu=n((Yy,bu)=>{"use strict";var Gh=Yt(),Kh=Math.max,Wh=Math.min;bu.exports=function(r,e){var t=Gh(r);return t<0?Kh(t+e,0):Wh(t,e)}});var Eu=n((Jy,Su)=>{"use strict";var Hh=Q(),zh=yu(),Qh=Jt(),Iu=function(r){return function(e,t,i){var o=Hh(e),a=Qh(o);if(a===0)return!r&&-1;var u=zh(i,a),l;if(r&&t!==t){for(;a>u;)if(l=o[u++],l!==l)return!0}else for(;a>u;u++)if((r||u in o)&&o[u]===t)return r||u||0;return!r&&-1}};Su.exports={includes:Iu(!0),indexOf:Iu(!1)}});var qu=n((Xy,Tu)=>{"use strict";var Yh=O(),ui=N(),Jh=Q(),Xh=Eu().indexOf,Zh=or(),Pu=Yh([].push);Tu.exports=function(r,e){var t=Jh(r),i=0,o=[],a;for(a in t)!ui(Zh,a)&&ui(t,a)&&Pu(o,a);for(;e.length>i;)ui(t,a=e[i++])&&(~Xh(o,a)||Pu(o,a));return o}});var ci=n((Zy,Ou)=>{"use strict";Ou.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var wu=n((eI,_u)=>{"use strict";var eg=qu(),rg=ci();_u.exports=Object.keys||function(e){return eg(e,rg)}});var xu=n(Ru=>{"use strict";var tg=_(),ig=ut(),og=V(),ng=M(),ag=Q(),sg=wu();Ru.f=tg&&!ig?Object.defineProperties:function(e,t){ng(e);for(var i=ag(t),o=sg(t),a=o.length,u=0,l;a>u;)og.f(e,l=o[u++],i[l]);return e}});var pi=n((tI,$u)=>{"use strict";var ug=M(),cg=xu(),Cu=ci(),lg=or(),fg=yt(),dg=He(),pg=ir(),Au=">",Nu="<",fi="prototype",di="script",ku=pg("IE_PROTO"),li=function(){},Du=function(r){return Nu+di+Au+r+Nu+"/"+di+Au},Lu=function(r){r.write(Du("")),r.close();var e=r.parentWindow.Object;return r=null,e},vg=function(){var r=dg("iframe"),e="java"+di+":",t;return r.style.display="none",fg.appendChild(r),r.src=String(e),t=r.contentWindow.document,t.open(),t.write(Du("document.F=Object")),t.close(),t.F},gr,mr=function(){try{gr=new ActiveXObject("htmlfile")}catch{}mr=typeof document<"u"?document.domain&&gr?Lu(gr):vg():Lu(gr);for(var r=Cu.length;r--;)delete mr[fi][Cu[r]];return mr()};lg[ku]=!0;$u.exports=Object.create||function(e,t){var i;return e!==null?(li[fi]=ug(e),i=new li,li[fi]=null,i[ku]=e):i=mr(),t===void 0?i:cg.f(i,t)}});var ju=n((iI,Mu)=>{"use strict";var hg=P();Mu.exports=!hg(function(){function r(){}return r.prototype.constructor=null,Object.getPrototypeOf(new r)!==r.prototype})});var hi=n((oI,Bu)=>{"use strict";var gg=N(),mg=b(),bg=rt(),yg=ir(),Ig=ju(),Fu=yg("IE_PROTO"),vi=Object,Sg=vi.prototype;Bu.exports=Ig?vi.getPrototypeOf:function(r){var e=bg(r);if(gg(e,Fu))return e[Fu];var t=e.constructor;return mg(t)&&e instanceof t?t.prototype:e instanceof vi?Sg:null}});var yi=n((nI,Gu)=>{"use strict";var Eg=P(),Pg=b(),Tg=R(),qg=pi(),Uu=hi(),Og=re(),_g=T(),wg=A(),bi=_g("iterator"),Vu=!1,j,gi,mi;[].keys&&(mi=[].keys(),"next"in mi?(gi=Uu(Uu(mi)),gi!==Object.prototype&&(j=gi)):Vu=!0);var Rg=!Tg(j)||Eg(function(){var r={};return j[bi].call(r)!==r});Rg?j={}:wg&&(j=qg(j));Pg(j[bi])||Og(j,bi,function(){return this});Gu.exports={IteratorPrototype:j,BUGGY_SAFARI_ITERATORS:Vu}});var Wu=n((aI,Ku)=>{"use strict";var xg=yi().IteratorPrototype,Cg=pi(),Ag=be(),Ng=Oe(),Lg=z(),kg=function(){return this};Ku.exports=function(r,e,t,i){var o=e+" Iterator";return r.prototype=Cg(xg,{next:Ag(+!i,t)}),Ng(r,o,!1,!0),Lg[o]=kg,r}});var ic=n((sI,tc)=>{"use strict";var Dg=L(),$g=w(),br=A(),ec=mu(),Mg=b(),jg=Wu(),Hu=hi(),zu=vt(),Fg=Oe(),Bg=X(),Ii=re(),Ug=T(),Qu=z(),rc=yi(),Vg=ec.PROPER,Gg=ec.CONFIGURABLE,Yu=rc.IteratorPrototype,yr=rc.BUGGY_SAFARI_ITERATORS,Le=Ug("iterator"),Ju="keys",ke="values",Xu="entries",Zu=function(){return this};tc.exports=function(r,e,t,i,o,a,u){jg(t,e,i);var l=function(g){if(g===o&&s)return s;if(!yr&&g&&g in d)return d[g];switch(g){case Ju:return function(){return new t(this,g)};case ke:return function(){return new t(this,g)};case Xu:return function(){return new t(this,g)}}return function(){return new t(this)}},p=e+" Iterator",f=!1,d=r.prototype,v=d[Le]||d["@@iterator"]||o&&d[o],s=!yr&&v||l(o),c=e==="Array"&&d.entries||v,h,y,I;if(c&&(h=Hu(c.call(new r)),h!==Object.prototype&&h.next&&(!br&&Hu(h)!==Yu&&(zu?zu(h,Yu):Mg(h[Le])||Ii(h,Le,Zu)),Fg(h,p,!0,!0),br&&(Qu[p]=Zu))),Vg&&o===ke&&v&&v.name!==ke&&(!br&&Gg?Bg(d,"name",ke):(f=!0,s=function(){return $g(v,this)})),o)if(y={values:l(ke),keys:a?s:l(Ju),entries:l(Xu)},u)for(I in y)(yr||f||!(I in d))&&Ii(d,I,y[I]);else Dg({target:e,proto:!0,forced:yr||f},y);return(!br||u)&&d[Le]!==s&&Ii(d,Le,s,{name:o}),Qu[e]=s,y}});var nc=n((uI,oc)=>{"use strict";oc.exports=function(r,e){return{value:r,done:e}}});var Ei=n((cI,lc)=>{"use strict";var Kg=Q(),Si=vu(),ac=z(),uc=jt(),Wg=V().f,Hg=ic(),Ir=nc(),zg=A(),Qg=_(),cc="Array Iterator",Yg=uc.set,Jg=uc.getterFor(cc);lc.exports=Hg(Array,"Array",function(r,e){Yg(this,{type:cc,target:Kg(r),index:0,kind:e})},function(){var r=Jg(this),e=r.target,t=r.index++;if(!e||t>=e.length)return r.target=void 0,Ir(void 0,!0);switch(r.kind){case"keys":return Ir(t,!1);case"values":return Ir(e[t],!1)}return Ir([t,e[t]],!1)},"values");var sc=ac.Arguments=ac.Array;Si("keys");Si("values");Si("entries");if(!zg&&Qg&&sc.name!=="values")try{Wg(sc,"name",{value:"values"})}catch{}});var dc=n((lI,fc)=>{"use strict";var Xg=_(),Zg=V(),em=be();fc.exports=function(r,e,t){Xg?Zg.f(r,e,em(0,t)):r[e]=t}});var pc=n(()=>{"use strict";var rm=L(),tm=vr(),im=dc();rm({target:"Object",stat:!0},{fromEntries:function(e){var t={};return tm(e,function(i,o){im(t,i,o)},{AS_ENTRIES:!0}),t}})});var hc=n((pI,vc)=>{"use strict";Ei();pc();var om=Ve();vc.exports=om.Object.fromEntries});var mc=n((vI,gc)=>{"use strict";gc.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}});var yc=n(()=>{"use strict";Ei();var nm=mc(),am=m(),sm=Oe(),bc=z();for(Sr in nm)sm(am[Sr],Sr),bc[Sr]=bc.Array;var Sr});var Sc=n((mI,Ic)=>{"use strict";var um=hc();yc();Ic.exports=um});var Pc=n((bI,Ec)=>{"use strict";var cm=Sc();Ec.exports=cm});var ve=(u=>(u.PROD="prod",u.VK_ALIAS="vk_alias",u.VIDEOTEST="videotest",u.TEST="test",u.OKCDN="okcdn",u.AUTO="auto",u))(ve||{}),Nr=(f=>(f.Q144P="mobile",f.Q240P="lowest",f.Q360P="low",f.Q480P="medium",f.Q720P="high",f.Q1080P="fullhd",f.Q1440P="quadhd",f.Q2160P="ultrahd",f.UNKNOWN="unknown",f))(Nr||{}),Lr=(c=>(c.MP4="mp4",c.DASH="dash",c.DASH_SEP="dash_sep",c.ONDEMAND_DASH="ondemand_dash",c.HLS="hls",c.ONDEMAND_HLS="ondemand_hls",c.WEBM="webm",c.AV1="av1",c.ONDEMAND_DASH_LIVE="ondemand_dash_live",c.ONDEMAND_HLS_LIVE="ondemand_hls_live",c.WEBRTC="webrtc",c.UNKNOWN="unknown",c.RTMP="rtmp",c))(Lr||{});var kr=(i=>(i.HTTP1="http1",i.HTTP2="http2",i.HTTP3="http3",i))(kr||{});var Dr=(l=>(l.SLIDER="slider",l.DOUBLE_TAP="double_tap",l.TIME_CODE="time_code",l.EPISODE="episode",l.REWIND="rewind",l.LIVE="live",l.UNKNOWN="unknown",l))(Dr||{}),Mi=(a=>(a.GRAPH_SHOW="iGraphShow",a.GRAPH_HIDE="iGraphHide",a.NEXT_AREA="iNextChapterArea",a.NEXT_BUTTON="iNextChapterBtn",a.WATCH_AGAIN="iWatchAgainBtn",a))(Mi||{}),ji={action_play:"ap",action_play_interactive:"api",first_bytes:"fb",player_ready:"pr",first_frame:"ff",seek:"sk",watch_coverage_record:"wr",watch_coverage_live:"wl",empty_buffer:"eb",action_stop:"as",close_at_empty_buffer:"cb",content_error:"er",player_interface_click:"pc",next_movie:"nm",track_switch:"ts",failover:"fo"},Fi={vsid:"si",isid:"is",vid:"vi",place:"pl",quality:"qt",cdn_host:"ch",stat_type:"st",param:"pm",vk_app_id:"va",track_code:"tc",connection_type:"cnt",connection_reused:"cr",cached_data:"cd",live:"lv",muted:"mu",mode:"mo",subtitles:"sb",failover:"fo",download_speed:"ds",manual_quality:"mq",ref_domain:"rd",direct_url:"du"},Bi={unknown:"un",mobile:"m",lowest:"ls",low:"l",medium:"md",high:"h",fullhd:"f",quadhd:"q",ultrahd:"u"},Ui={pip:"pi",fullscreen:"fs",external:"ex",prefetch:"pr",airplay:"ap",chromecast:"cc",invisible:"iv"};import{fillWithDefault as Zc}from"@vkontakte/videoplayer-shared";var el={apiEnv:"vk_alias",requestRetryCount:1,firstFlushTime:5e3,flushDebounceTime:1e4,flushMaxWait:6e4,storageExpiration:36*60*60*1e3,watchCoverageInterval:15e3,disabledOperations:[],disabledCustomFields:[],shorten:!0,maxLoops:100,embedUrlParams:[],useBeacon:!0,synchronizeTime:!0,debugLog:!1,backoff:{start:1e3,factor:1.5,max:5*60*1e3,random:.1}},Vi=r=>Zc(r,el);function $r(){let r="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),e=new Array(36),t=0,i,o;for(o=0;o<36;o++)o===8||o===13||o===18||o===23?e[o]="-":o===14?e[o]="4":(t<=2&&(t=33554432+Math.random()*16777216|0),i=t&15,t=t>>4,e[o]=r[o===19?i&3|8:i]);return e.join("")}import{assertNonNullable as Sm,combine as jc,fromEvent as Fc,isNonNullable as pe,isNullable as Bc,merge as Em,now as F,observableFrom as Pm,once as Tm,safeStorage as Cr,Subject as qm,Subscription as Li,ValueSubject as Ai}from"@vkontakte/videoplayer-shared";import{Logger as Om,detectEmbed as _m}from"@vkontakte/videoplayer-shared";var Pr=$i(du(),1);var Tc=$i(Pc(),1);var qc=r=>{let{operation:e,custom:t}=r,i=(0,Tc.default)(Object.entries(t).map(([o,a])=>{let u=Fi[o]??o,l=a;return a&&(o==="mode"?l=Ui[a]??a:o==="quality"&&(l=Bi[a]??a)),[u,l]}));return{...r,operation:ji[e]??e,custom:i}};var Er="1.0.54-dev.e8d7fe49.0",Oc="CIOPGQJGDIHBABABA",Pi={prod:"https://api.ok.ru",vk_alias:"https://api.mycdn.me",videotest:"https://videotestapi.ok.ru/api",test:"https://apitest.ok.ru",okcdn:"https://api.okcdn.ru",auto:""};import{ValueSubject as lm,getExponentialDelay as fm,ErrorCategory as le}from"@vkontakte/videoplayer-shared";var De=class{constructor(e){this.consequentAuthErrors=0;this.authorized$=new lm(!1);this.params=e}async authorize(e){return this.authToken=e??await this.refreshAuthToken(),this._authorizeWithBackoff()}logBeacon(e){let t="log.externalLog",i=this.createLogParams(e),o=this.sessionKey;if(!o)return;this.params.apiTransport.sendBeacon(t,i,o)||this.logRequest(e)}async logRequest(e){let t="log.externalLog",i=this.createLogParams(e),o=this.sessionKey??await this._authorizeWithBackoff();if(!o)return;let a=async(u,l=this.params.config.requestRetryCount)=>{try{return await this.params.apiTransport.sendRequest(t,i,o)}catch(p){if(!p||!("error_code"in p)){this.params.error$.next({id:"logRequestUnknown",category:le.NETWORK,message:`Unknown ${t} error`,thrown:p});return}let f=p?.error_code;switch(f){case 102:case 103:case 104:return this.authorized$.next(!1),this.sessionKey=await this._authorizeWithBackoff(),l>0?a(u,l-1):void 0;case 401:return this.authorized$.next(!1),this.authToken=await this.refreshAuthToken(),this.sessionKey=await this._authorizeWithBackoff(),l>0?a(u,l-1):void 0;default:{this.params.error$.next({id:`LogRequest#${f}`,category:le.EXTERNAL_API,message:`${t} error`,data:p});return}}}};return a(e)}destroy(){window.clearTimeout(this.backoffTimeoutId),this.backoffTimeoutId=0}async refreshAuthToken(){if(this.params.refreshAuthToken)return this.refreshAuthTokenPromise||(this.refreshAuthTokenPromise=(0,Pr.default)(this.params.refreshAuthToken(),()=>{this.refreshAuthTokenPromise=void 0})),this.refreshAuthTokenPromise}createLogParams(e){return{collector:"ok.mobile.apps.video",data:JSON.stringify({application:`@vkontakte/videoplayer-statistics:${Er}`,platform:this.params.mobile?"M_WEB":"WEB",items:this.params.config.shorten?e.map(qc):e})}}_authorizeWithBackoff(){if(!this.consequentAuthErrors)return this._authorize();let e=fm(this.consequentAuthErrors,this.params.config.backoff);return new Promise(t=>{this.backoffTimeoutId||(this.backoffTimeoutId=window.setTimeout(()=>{(0,Pr.default)(this._authorize().then(t).catch(i=>this.params.error$.next({id:"AuthorizeBackoff",category:le.NETWORK,message:"Otherwise unhandled error in authorization",thrown:i})),()=>this.backoffTimeoutId=0)},e))})}async _authorize(){if(this.authorizePromise)return this.authorizePromise;this.sessionKey=void 0,this.authorized$.next(!1);let e="auth.anonymLogin",t={session_data:{version:2,device_id:this.params.deviceId,client_version:Er.split("-")[0],client_type:"SDK_JS"}};return this.authToken!==void 0&&(t.session_data.auth_token=this.authToken,t.session_data.version=3),this.authorizePromise=(0,Pr.default)(this.params.apiTransport.sendRequest(e,t).then(i=>((!i||!i.session_key)&&this.params.error$.next({id:"AuthorizeFailed",category:le.EXTERNAL_API,message:"No session key",data:i}),this.sessionKey=i?.session_key??void 0,this.sessionKey)).catch(async i=>{this.sessionKey=void 0;let o=i?.error_code;switch(o){case 401:return this.authToken=await this.refreshAuthToken(),this._authorizeWithBackoff()}o?this.params.error$.next({id:`Authorize#${o}`,category:le.EXTERNAL_API,message:"authorize error",data:i}):this.params.error$.next({id:"AuthorizeUnknown",category:le.NETWORK,message:"authorize error",thrown:i})}),()=>{this.authorizePromise=void 0,this.consequentAuthErrors=this.sessionKey?0:this.consequentAuthErrors+1,this.authorized$.next(this.sessionKey!==void 0)}),this.authorizePromise}};var Tr=class{constructor(){Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}addEventListener(e,t,i){e in this.listeners||(this.listeners[e]=[]),this.listeners[e].push({callback:t,options:i})}removeEventListener(e,t){if(!(e in this.listeners))return;let i=this.listeners[e];for(let o=0,a=i.length;o<a;o++)if(i[o].callback===t){i.splice(o,1);return}}dispatchEvent(e){if(!(e.type in this.listeners))return;let i=this.listeners[e.type].slice();for(let o=0,a=i.length;o<a;o++){let u=i[o];try{u.callback.call(this,e)}catch(l){Promise.resolve().then(()=>{throw l})}u.options&&u.options.once&&this.removeEventListener(e.type,u.callback)}return!e.defaultPrevented}},fe=class extends Tr{constructor(){super(),this.listeners||Tr.call(this),Object.defineProperty(this,"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(this,"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(this,"reason",{value:void 0,writable:!0,configurable:!0})}toString(){return"[object AbortSignal]"}dispatchEvent(e){e.type==="abort"&&(this.aborted=!0,typeof this.onabort=="function"&&this.onabort.call(this,e)),super.dispatchEvent(e)}},$e=class{constructor(){Object.defineProperty(this,"signal",{value:new fe,writable:!0,configurable:!0})}abort(e){let t;try{t=new Event("abort")}catch{typeof document<"u"?document.createEvent?(t=document.createEvent("Event"),t.initEvent("abort",!1,!1)):(t=document.createEventObject(),t.type="abort"):t={type:"abort",bubbles:!1,cancelable:!1}}let i=e;if(i===void 0)if(typeof document>"u")i=new Error("This operation was aborted"),i.name="AbortError";else try{i=new DOMException("signal is aborted without reason")}catch{i=new Error("This operation was aborted"),i.name="AbortError"}this.signal.reason=i,this.signal.dispatchEvent(t)}toString(){return"[object AbortController]"}};typeof Symbol<"u"&&Symbol.toStringTag&&($e.prototype[Symbol.toStringTag]="AbortController",fe.prototype[Symbol.toStringTag]="AbortSignal");function qr(r){return r.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL?(console.log("__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL=true is set, will force install polyfill"),!0):typeof r.Request=="function"&&!r.Request.prototype.hasOwnProperty("signal")||!r.AbortController}function Ti(r){typeof r=="function"&&(r={fetch:r});let{fetch:e,Request:t=e.Request,AbortController:i,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:o=!1}=r;if(!qr({fetch:e,Request:t,AbortController:i,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:o}))return{fetch:e,Request:a};let a=t;(a&&!a.prototype.hasOwnProperty("signal")||o)&&(a=function(f,d){let v;d&&d.signal&&(v=d.signal,delete d.signal);let s=new t(f,d);return v&&Object.defineProperty(s,"signal",{writable:!1,enumerable:!1,configurable:!0,value:v}),s},a.prototype=t.prototype);let u=e;return{fetch:(p,f)=>{let d=a&&a.prototype.isPrototypeOf(p)?p.signal:f?f.signal:void 0;if(d){let v;try{v=new DOMException("Aborted","AbortError")}catch{v=new Error("Aborted"),v.name="AbortError"}if(d.aborted)return Promise.reject(v);let s=new Promise((c,h)=>{d.addEventListener("abort",()=>h(v),{once:!0})});return f&&f.signal&&delete f.signal,Promise.race([s,u(p,f)])}return u(p,f)},Request:a}}var Me=qr({fetch:window.fetch,Request:window.Request,AbortController:window.AbortController}),_c=Me?Ti({fetch:window.fetch,Request:window.Request,AbortController:window.AbortController}):void 0,qi=Me?_c.fetch:window.fetch,jI=Me?_c.Request:window.Request,FI=Me?$e:window.AbortController,BI=Me?fe:window.AbortSignal;import{ErrorCategory as Or,now as Oi}from"@vkontakte/videoplayer-shared";var je=class{constructor(e){this.params=e,this.apiKey=e.apiKey,this.apiEnv=e.config.apiEnv,this.apiBaseUrl=Pi[this.apiEnv],this.timeSynchronisation=e.timeSynchronisation,this.isApiBaseUrlFetched=!1}async resolveApiBaseUrl(){if(this.apiEnv!=="auto"||this.isApiBaseUrlFetched)return this.apiBaseUrl;try{let e=atob("aHR0cHM6Ly9kbnMuZ29vZ2xlL3Jlc29sdmU/bmFtZT12aWRlby5fZW5kcG9pbnQub2sucnUmdHlwZT1UWFQ="),o=(await(await qi(e,{method:"GET",mode:"cors",cache:"no-cache"})).json())?.Answer[0]?.data;if(!o)throw new Error("Wrong DNS response");return o}catch(e){return this.params.error$.next({id:"OneStat:ApiTransport:resolveApiBaseUrl",category:Or.NETWORK,message:"Unhandled resolve api base url error",thrown:e}),Pi.vk_alias}finally{this.isApiBaseUrlFetched=!0}}sendBeacon(e,t,i){if(!window.Blob||!window.navigator.sendBeacon)return!1;let o=this._prepareQueryParams({method:e,queryParams:t,sessionKey:i}),a=new window.Blob([o.toString()],{type:"application/x-www-form-urlencoded"});try{return window.navigator.sendBeacon(`${this.apiBaseUrl}/fb.do`,a)}catch(u){this.params.error$.next({id:"OneStat:ApiTransport:sendBeacon",category:Or.NETWORK,message:"Unhandled beacon error",thrown:u,data:{method:e,params:t}})}return!1}async sendRequest(e,t,i){let o=Oi(),a=u=>{if(u instanceof TypeError&&["Failed to fetch","NetworkError when attempting to fetch resource."].includes(u.message)){this.params.error$.next({id:"Network",category:Or.NETWORK,message:"Request failed",thrown:u});return}this.params.error$.next({id:"OneStat:ApiTransport:sendRequest",category:Or.NETWORK,message:"Unhandled request error",thrown:u,data:{method:e,params:t,sessionKey:i,time:Oi()-o}})};return this.apiBaseUrl=await this.resolveApiBaseUrl(),qi(`${this.apiBaseUrl}/fb.do`,{method:"post",headers:{"Content-type":"application/x-www-form-urlencoded"},body:this._prepareQueryParams({method:e,queryParams:t,sessionKey:i})}).then(u=>{let l=Number(u.headers.get("content-length"))===0,p=new Date(u.headers.get("date")??"").getTime(),f=Oi()-o;if(isFinite(p)&&this.timeSynchronisation?.addServerTime(p,f),!l)return u.json().then(d=>Object.prototype.hasOwnProperty.call(d,"error_msg")?Promise.reject(d):d,a)},a)}_prepareQueryParams(e){let t=new URLSearchParams({format:"JSON",method:e.method,application_key:this.apiKey});return e.sessionKey!==void 0&&t.append("session_key",e.sessionKey),Object.entries(e.queryParams).forEach(([i,o])=>t.append(i,typeof o=="string"?o:JSON.stringify(o))),t}};import{ErrorCategory as dm,now as pm,safeStorage as Fe,debounceFn as wc}from"@vkontakte/videoplayer-shared";var _r="onestat_events",_i=r=>e=>e.timestamp+r>=pm(),wr=class{constructor(e){this.unsaltedStorage=[];this.isPaused=!1;this.isUrgent=e=>{let{operation:t}=e;return["action_play","watch_coverage_record","watch_coverage_live"].includes(t)};this.params=e,this.api=e.api,this.error$=e.error$,this.userSalt=e.userSalt,this.loggerDebugLog=e.debugLogger.createComponentLog("stat logger"),this.firstFlush=wc(()=>this.safeFlush(),this.params.config.firstFlushTime,{maxWait:this.params.config.firstFlushTime});let t=Fe.isPersistent()?this.params.config.flushMaxWait:0;this.debouncedFlush=wc(()=>this.safeFlush(),this.params.config.flushDebounceTime,{maxWait:t}),this.subscription=this.api.authorized$.subscribe(i=>{i&&this.debouncedFlush()}),this.housekeepStorage()}safeFlush(){try{this.flush()}catch(e){this.error$.next({id:"LoggerError",category:dm.WTF,message:String(e)??"Unknown logger error",thrown:e})}}readFromStorage(){let e=Fe.get(_r);try{return e?JSON.parse(e):{}}catch{}return{}}addToStorage(e){if(!this.userSalt){this.unsaltedStorage.push(e);return}let t=this.readFromStorage(),o=(t[this.userSalt]??[]).filter(_i(this.params.config.storageExpiration));Fe.set(_r,JSON.stringify({...t,[this.userSalt]:[...o,e]}))}getFromStorage(){return this.userSalt?(this.readFromStorage()[this.userSalt]??[]).filter(_i(this.params.config.storageExpiration)):this.unsaltedStorage}markStorageSent(){if(!this.userSalt){this.unsaltedStorage=[];return}let e=this.readFromStorage();delete e[this.userSalt],Fe.set(_r,JSON.stringify(e))}housekeepStorage(){let e=this.readFromStorage();for(let[t,i]of Object.entries(e)){let o=i.filter(_i(this.params.config.storageExpiration));o.length?e[t]=o:delete e[t],this.loggerDebugLog({message:`${i.length} retrieved from storage, ${o.length} of them actual`})}Fe.set(_r,JSON.stringify(e))}log(e){this.addToStorage(e),!this.isPaused&&(this.isUrgent(e)?this.flush():this.lastVsid!==e.custom.vsid?this.firstFlush():this.debouncedFlush(),this.lastVsid=e.custom.vsid)}flush(e=!1){let t=this.getFromStorage();t.length!==0&&(this.api.authorized$.getValue()?(e&&this.params.config.useBeacon?(this.loggerDebugLog({message:`Flushing ${t.length} events through beacon`}),this.api.logBeacon(t)):(this.loggerDebugLog({message:`Flushing ${t.length} events`}),this.api.logRequest(t)),this.markStorageSent()):this.api.authorize(),this.firstFlush.cancel(),this.debouncedFlush.cancel())}pause(){this.isPaused=!0,this.debouncedFlush.cancel()}resume(){this.isPaused=!1,this.debouncedFlush()}destroy(){this.subscription.unsubscribe(),this.firstFlush.cancel(),this.debouncedFlush.cancel()}};import{HttpConnectionType as wi,Surface as de,VideoFormat as E,VideoQuality as k}from"@vkontakte/videoplayer-core";import{assertNever as Rc}from"@vkontakte/videoplayer-shared";var xc=r=>r&&{[k.INVARIANT]:"unknown",[k.Q_144P]:"mobile",[k.Q_240P]:"lowest",[k.Q_360P]:"low",[k.Q_480P]:"medium",[k.Q_720P]:"high",[k.Q_1080P]:"fullhd",[k.Q_1440P]:"quadhd",[k.Q_2160P]:"ultrahd",[k.Q_4320P]:"unknown"}[r],Ri=r=>r&&{[wi.HTTP1]:"http1",[wi.HTTP2]:"http2",[wi.QUIC]:"http3"}[r],Cc=r=>{if(r!==void 0)switch(r){case E.MPEG:return"mp4";case E.DASH:case E.DASH_LIVE:case E.DASH_STREAMS:return"dash";case E.DASH_SEP:return"dash_sep";case E.DASH_ONDEMAND:return"ondemand_dash";case E.DASH_WEBM:case E.DASH_LIVE_WEBM:return"webm";case E.DASH_WEBM_AV1:return"av1";case E.DASH_LIVE_CMAF:return"ondemand_dash_live";case E.HLS:case E.HLS_LIVE:return"hls";case E.HLS_ONDEMAND:return"ondemand_hls";case E.HLS_LIVE_CMAF:return"ondemand_hls_live";case E.WEB_RTC_LIVE:return"webrtc";default:return Rc(r)}},Rr=r=>{if(r!==void 0)switch(r){case de.NONE:case de.INLINE:return;case de.FULLSCREEN:return"fullscreen";case de.SECOND_SCREEN:return"chromecast";case de.PIP:return"pip";case de.INVISIBLE:return"invisible";default:return Rc(r)}},Ac=r=>{switch(r){case"slow-2g":return"poor";case"2g":return"poor";case"3g":return"good";case"4g":return"excellent"}};var xr=class{constructor(e){this.offset=void 0;this.offset=e}getOffset(){return this.offset??0}setOffset(e){this.offset=e}now(){return Date.now()+(this.offset??0)}date(e=new Date){return e.setTime(e.getTime()+(this.offset??0)),e}addServerTime(e,t){let i=Date.now(),o=e-i-t/2;if(Math.abs(o)<1e3){this.offset=0;return}this.offset===void 0?this.offset=Math.round(o):this.offset=Math.round(.2*o+(1-.2)*this.offset)}};var Nc=()=>Math.floor(Math.random()*4294967296).toString(36).padStart(7,"0"),Lc=()=>Math.floor(Math.random()*18446744073709552e3).toString(36).padStart(13,"0");import{PlaybackState as kc}from"@vkontakte/videoplayer-core";import{filter as Dc,filterChanged as hm,fromEvent as gm,isNullable as $c,map as mm,merge as xi,Observable as bm,Subject as Ci,Subscription as ym,ValueSubject as Im}from"@vkontakte/videoplayer-shared";var Mc=(r,e)=>new bm(t=>{let i=new ym,o=xi(gm(window,"beforeunload"),r.events.willDestruct$),a=new Im(void 0),u;i.add(r.info.isLive$.pipe(hm()).subscribe(B=>{u&&(u.unsubscribe(),a.next(void 0)),B?u=r.info.liveTime$.pipe(mm(Ar=>Ar&&Ar/1e3)).subscribe(a):u=r.info.position$.subscribe(a),i.add(u)}));let{playing$:l,paused$:p}=r.events,f=r.events.willSeek$.pipe(Dc(()=>r.info.playbackState$.getValue()===kc.PLAYING)),d=r.events.seeked$.pipe(Dc(()=>r.info.playbackState$.getValue()===kc.PLAYING)),v=!1,s=new Ci;i.add(f.subscribe(()=>{v||s.next(),v=!0})),i.add(d.subscribe(()=>v=!1));let c=new Ci,h=new Ci,y=xi(l,d,c),I=xi(p,s,o,r.events.looped$,h),g,S=()=>g=a.getValue(),Kc=()=>{let B=a.getValue();$c(g)||g===B||$c(B)||(t.next({from:g,to:B}),g=void 0)},Wc=()=>{h.next(),c.next()};if(i.add(y.subscribe(S)),i.add(I.subscribe(Kc)),e.forceInterval&&isFinite(e.forceInterval)){let B=0;i.add(y.subscribe(()=>B=window.setTimeout(Wc,e.forceInterval))),i.add(I.subscribe(()=>window.clearTimeout(B)))}return i});var Gc="_one-stat_",Uc=`${Gc}uuid`,Vc=`${Gc}deviceId`,Ni=()=>{let r=new Li;return{subscription:r,subscribe:(e,t)=>{e&&r.add(e.subscribe(t))}}},ki=class{constructor(e,t){this.subscription=new Li;this.debugLogger=new Om;this.oneStatDebugLog=this.debugLogger.createComponentLog("onestat");this.loopCounter=0;this.disabled=!1;this.vsid$=new Ai(void 0);this.isid$=new Ai(void 0);this.seekAction$=new Ai("unknown");this.statContext=e,this.config=Vi(t.config??{}),pe(t.apiEnv)&&(this.config.apiEnv=t.apiEnv),this.config.synchronizeTime&&(this.timeSynchronisation=new xr);let i=new qm;this.experimental={error$:i},Cr.get(Uc)&&Cr.remove(Uc);let a=Cr.get(Vc);this.statContext.deviceId?this.deviceId=this.statContext.deviceId:a?this.deviceId=a:(this.deviceId=$r(),Cr.set(Vc,this.deviceId)),this.resetViewSession(),t.useIsid&&this.isid$.next(t.isid??Lc());let u=new je({apiKey:Oc,config:this.config,error$:i,timeSynchronisation:this.timeSynchronisation});this.api=new De({config:this.config,apiTransport:u,refreshAuthToken:t.refreshAuthToken,mobile:this.statContext.mobile??!1,deviceId:this.deviceId,error$:i}),this.logger=new wr({config:this.config,debugLogger:this.debugLogger,api:this.api,error$:i,userSalt:t.userSalt});let{isEmbed:l,host:p}=_m();this.isEmbed=l,this.embedParent=p,this.subscribe()}updateContext(e){this.statContext={...this.statContext,...e}}attachTo(e){let t=new Li,i=(s,c)=>t.add(s.subscribe(c));i(e.events.willStart$,()=>{let s=e.info.position$.getValue();this.logActionPlay({position:s}),this.statContext.projectId&&this.logActionPlayInteractive()}),i(e.events.looped$,()=>{this.resetViewSession(),++this.loopCounter>this.config.maxLoops&&(this.disabled=!0),this.logActionPlay({position:e.info.position$.getValue()})}),i(e.events.seeked$,()=>{this.logSeek({action:this.seekAction$.getValue(),time:e.info.position$.getValue()}),this.seekAction$.next("unknown")}),i(e.events.paused$,()=>{this.logPause({position:e.info.position$.getValue()})}),i(e.events.willResume$,()=>{this.logPlay()}),i(e.events.started$,()=>{this.statContext.clip&&this.logWatchCoverageRecord({start:0,end:0})}),i(e.events.playing$,()=>{this.logPlaying()}),i(Mc(e,{forceInterval:this.config.watchCoverageInterval}),s=>{let c=e.info.isLive$.getValue(),h={start:parseFloat(s.from.toFixed(3)),end:parseFloat(s.to.toFixed(3))};c?this.logWatchCoverageLive(h):this.logWatchCoverageRecord(h)});let o;i(e.info.isStalled$,s=>{s?o=F():(pe(o)&&this.logEmptyBuffer({duration:F()-o}),o=void 0)});let a=!1;t.add(e.events.fatalError$.pipe(Tm()).subscribe(()=>a=!0)),i(e.events.willStop$,()=>{if(e.info.isStalled$.getValue()){let c=pe(o)?F()-o:void 0;this.logCloseAtEmptyBuffer({duration:c??0}),o=void 0}else a||this.logActionStop()}),i(e.events.managedError$,({id:s})=>{this.logError({fatal:!1,errorType:s})}),i(e.events.fatalError$,({id:s})=>{this.logError({fatal:!0,errorType:s})});let u,l,p=!1;i(e.events.firstBytes$,s=>{u=F(),this.logFirstBytes({time:s})}),i(e.events.willStart$,()=>l=F()),i(e.info.currentBuffer$,s=>{!p&&s&&s.end-s.start>0&&pe(u)&&(this.logPlayerReady({duration:F()-u}),p=!0)}),i(e.events.firstFrame$,()=>{pe(u)&&!p&&(this.logPlayerReady({duration:F()-u}),p=!0),pe(l)&&this.logFirstFrame({time:F()-l})});let f;i(e.info.currentVideoStream$,s=>{s&&(f&&s.id!==f&&this.logTrackSwitch(s),f=s.id)});let d;i(e.info.currentAudioStream$,s=>{s&&(d&&s.id!==d&&this.logTrackSwitch(s),d=s.id)}),i(e.info.atLiveEdge$,s=>this.updateContext({liveEdge:s})),i(jc({muted:e.info.muted$,volume:e.info.volume$}),({muted:s,volume:c})=>this.updateContext({audible:!s&&c>0})),i(e.info.currentQuality$,s=>this.updateContext({quality:xc(s)})),i(e.info.isAutoQualityEnabled$,s=>this.updateContext({autoQuality:s})),i(e.info.currentFormat$,s=>this.updateContext({contentType:Cc(s)})),i(e.info.currentPlaybackRate$,s=>this.updateContext({rate:s})),i(e.info.is3DVideo$,s=>this.updateContext({is3d:s}));let v;return i(e.info.hostname$,s=>{let c=v!==void 0&&v!==s;this.updateContext({cdnHostname:s,failover:c}),c&&this.logFailover(s),v=s}),i(e.info.throughputEstimation$,s=>this.updateContext({downloadSpeed:s})),i(e.info.httpConnectionType$,s=>{this.statContext.firstConnectionType||this.updateContext({firstConnectionType:Ri(s)}),this.updateContext({connectionType:Ri(s)})}),i(e.info.httpConnectionReused$,s=>{Bc(this.statContext.firstConnectionReused)&&this.updateContext({firstConnectionReused:s}),this.updateContext({connectionReused:s})}),i(e.info.surface$,s=>this.updateContext({mode:Rr(s)})),i(jc({current:e.info.currentTextTrack$,available:e.info.availableTextTracks$}),({current:s,available:c})=>{let h=c.find(({id:I})=>I===s),y=h&&(h.isAuto?`${h.language}_auto`:h.language);this.updateContext({subtitles:y})}),this.player=e,this.uiEvents&&this.attachToUi(this.uiEvents),this.resubscribeBeforeunload(),this.subscription.add(t),t}attachToUi(e){this.uiEvents=e;let{subscription:t,subscribe:i}=Ni();return this.player&&(i(e.actionRewind$,()=>{this.player&&(this.resetViewSession(),this.logActionPlay({position:this.player.info.position$.getValue()}))}),i(e.actionSeek$,this.seekAction$),i(e.inPiP$,o=>{let a=o?"pip":Rr(this.player?.info.surface$.getValue());this.updateContext({mode:a})}),i(e.inFullscreen$,o=>{let a=o?"fullscreen":Rr(this.player?.info.surface$.getValue());this.updateContext({mode:a})}),i(e.actionSetSubtitle$,o=>this.updateContext({subtitles:o})),i(e.nextMovie$,o=>this.logNextMovie(o)),this.resubscribeBeforeunload(),this.subscription.add(t)),t}attachToAds(e){let{subscription:t,subscribe:i}=Ni();return i(e.slotRequested$,()=>this.logAdSlotRequest()),i(e.started$,o=>this.logAdStarted(o)),i(e.paused$,()=>this.logAdPaused()),i(e.resumed$,()=>this.logAdResumed()),i(e.ended$,()=>this.logAdEnded()),i(e.skipped$,()=>this.logAdSkipped()),i(e.clicked$,()=>this.logAdClicked()),this.resubscribeBeforeunload(),this.subscription.add(t),t}attachToInteractive(e){let{subscription:t,subscribe:i}=Ni();return i(e.click$,o=>this.logInterfaceClick(o)),i(e.nextMovie$,o=>this.logNextMovie(o)),this.resubscribeBeforeunload(),this.subscription.add(t),t}authorize(e){return this.api.authorize(e)}pause(){this.logger.pause(),this.oneStatDebugLog({message:"paused"})}resume(){this.logger.resume(),this.oneStatDebugLog({message:"resumed"})}destroy(){this.logger.flush(),this.subscription.unsubscribe(),this.api.destroy(),this.logger.destroy()}resetViewSession(){this.oneStatDebugLog({message:"VSID reset"}),this.vsid$.next(Nc())}getDeviceId(){return this.deviceId}setFieldBlacklist(){}logInited(){}logReady(e){this.log({operation:"player_ready",param:String(e.time)})}logStarted(...e){this.logActionPlay(...e)}logPlay(){this.log({operation:"play_toggle"})}logPlaying(){this.log({operation:"playing"})}logPause(e){this.log({operation:"pause",param:String(Math.round(e.position))})}logSeek(e){this.log({operation:"seek",param:e.action,time:e.time})}logFirstBytes(e){this.log({operation:"first_bytes",param:String(e.time)})}logFirstFrame(e){this.log({operation:"first_frame",param:String(e.time)})}logError(e){this.log({operation:"content_error",param:`${e.fatal?"fatal":"recoverable"}_${e.errorType}`})}logWatchCoverageRecord(e){this.log({operation:"watch_coverage_record",param:`${e.start}-${e.end}`},{in_history:this.statContext.inHistory?1:void 0})}logWatchCoverageLive(e){let t=this.timeSynchronisation?.getOffset()??0,i=e.start+t,o=e.end+t;this.log({operation:"watch_coverage_live",param:`${i}-${o}`},{in_history:this.statContext.inHistory?1:void 0})}logEmptyBuffer(e){this.log({operation:"empty_buffer",param:String(e.duration)})}logDownloadSpeed(){}logAdSlotRequest(){this.log({operation:"adv",param:"slot_request"})}logAdStarted(e){this.log({operation:"adv",param:e})}logAdPaused(){this.log({operation:"adv",param:"pause"})}logAdResumed(){this.log({operation:"adv",param:"resume"})}logAdEnded(){this.log({operation:"adv",param:"ended"})}logAdSkipped(){this.log({operation:"adv",param:"skip"})}logAdClicked(){this.log({operation:"adv",param:"click"})}logInterfaceClick(e){this.log({operation:"player_interface_click",param:e})}logNextMovie(e){this.log({operation:"next_movie",param:String(e)})}subscribe(){this.resubscribeBeforeunload();let e=window.navigator.connection;e&&"onchange"in e&&"effectiveType"in e&&this.subscription.add(Em(Fc(e,"change"),Pm(["init"])).subscribe(()=>this.updateContext({network:Ac(e.effectiveType)}))),this.config.debugLog&&this.debugLogger.log$.subscribe(t=>{console.debug("%c stat ","background:#fa6470;",`component: ${t.component}.`,t.message)})}resubscribeBeforeunload(){this.beforeunloadSubscription?.unsubscribe(),this.beforeunloadSubscription=Fc(window,"beforeunload").subscribe(()=>this.logger.flush(!0)),this.subscription.add(this.beforeunloadSubscription)}logPlayerReady(e){this.log({operation:"player_ready",param:String(Math.round(e.duration))})}logActionPlay(e){this.log({operation:"action_play",param:String(Math.round(e.position))})}logActionPlayInteractive(){this.statContext.projectId&&this.log({operation:"action_play_interactive",param:String(this.statContext.movieId)},{vid:this.statContext.projectId})}logFailover(e){this.log({operation:"failover",param:e})}logCloseAtEmptyBuffer(e){this.log({operation:"close_at_empty_buffer",param:String(Math.round(e.duration))})}logActionStop(){this.log({operation:"action_stop"})}logTrackSwitch(e){this.log({operation:"track_switch",param:e.id})}log(e,t={}){if(this.disabled){this.oneStatDebugLog({message:`operation ${e.operation} but statistics is disabled`});return}if(this.config.disabledOperations.includes(e.operation)){this.oneStatDebugLog({message:`operation ${e.operation} but it is disabled`});return}this.oneStatDebugLog({message:`operation ${e.operation} ${e.param}`});let i=this.createLogItem(e,t);this.logger.log(i)}createLogItem({operation:e,param:t,time:i},o={}){let a=this.timeSynchronisation?.now()??F(),u=this.vsid$.getValue();Sm(u);let l=this.isid$.getValue(),p=e==="empty_buffer"||e==="close_at_empty_buffer"?this.statContext.connectionType:this.statContext.firstConnectionType,f=this.statContext.firstConnectionReused,d,v;if(this.isEmbed){d=this.embedParent;let c=[...new URLSearchParams(location.search).entries()].filter(([h,y])=>this.config.embedUrlParams.includes(h));v=new URLSearchParams(c).toString()}else this.statContext.place==="direct"&&((this.statContext.refDomain||document.referrer)&&(d=new URL(this.statContext.refDomain||document.referrer).hostname),v=location.href.substring(0,1024));let s={vsid:u,isid:l,vid:this.statContext.movieId,ct:this.statContext.contentType,place:this.isEmbed?"embed":this.statContext.place,quality:this.statContext.quality,cdn_host:this.statContext.cdnHostname,stat_type:this.statContext.autoplay===!0?"auto":this.statContext.autoplay===!1?"":void 0,param:t,vk_app_id:this.statContext.vkAppId,track_code:this.statContext.trackCode,connection_type:p,connection_reused:f===!0?1:f===!1?0:void 0,cached_data:this.statContext.cached===!0?1:this.statContext.cached===!1?0:void 0,live:this.statContext.liveEdge?1:void 0,muted:this.statContext.audible===!1?1:void 0,mode:this.statContext.mode,subtitles:this.statContext.subtitles,download_speed:this.statContext.downloadSpeed,manual_quality:this.statContext.autoQuality?void 0:1,ref_domain:d,direct_url:v,rate:this.statContext.rate===1||Bc(this.statContext.rate)?void 0:this.statContext.rate.toFixed(2),view_360:this.statContext.is3d?1:void 0,aid:this.statContext.albumId,vk_playlist_id:this.statContext.vkPlaylistId,...o};for(let c of this.config.disabledCustomFields)delete s[c];return{operation:e,type:1,time:i,network:this.statContext.network,timestamp:a,custom:s}}};export{ve as ApiEnv,kr as ConnectionType,Lr as ContentType,Mi as InteractiveInterfaceClick,ki as OneStat,Nr as Quality,Dr as SeekAction,Er as VERSION};
package/evergreen.esm.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
- * @vkontakte/videoplayer-statistics v1.0.54-dev.cf4e48ed.0
3
- * Fri, 30 Aug 2024 10:31:27 GMT
2
+ * @vkontakte/videoplayer-statistics v1.0.54-dev.e8d7fe49.0
3
+ * Wed, 04 Sep 2024 18:36:52 GMT
4
4
  * https://st.mycdn.me/static/vkontakte-videoplayer/1-0-54/doc/
5
5
  */
6
- var E=(a=>(a.PROD="prod",a.VK_ALIAS="vk_alias",a.VIDEOTEST="videotest",a.TEST="test",a.OKCDN="okcdn",a.AUTO="auto",a))(E||{}),M=(u=>(u.Q144P="mobile",u.Q240P="lowest",u.Q360P="low",u.Q480P="medium",u.Q720P="high",u.Q1080P="fullhd",u.Q1440P="quadhd",u.Q2160P="ultrahd",u.UNKNOWN="unknown",u))(M||{}),B=(d=>(d.MP4="mp4",d.DASH="dash",d.DASH_SEP="dash_sep",d.ONDEMAND_DASH="ondemand_dash",d.HLS="hls",d.ONDEMAND_HLS="ondemand_hls",d.WEBM="webm",d.AV1="av1",d.ONDEMAND_DASH_LIVE="ondemand_dash_live",d.ONDEMAND_HLS_LIVE="ondemand_hls_live",d.WEBRTC="webrtc",d.UNKNOWN="unknown",d.RTMP="rtmp",d))(B||{});var F=(t=>(t.HTTP1="http1",t.HTTP2="http2",t.HTTP3="http3",t))(F||{});var V=(c=>(c.SLIDER="slider",c.DOUBLE_TAP="double_tap",c.TIME_CODE="time_code",c.EPISODE="episode",c.REWIND="rewind",c.LIVE="live",c.UNKNOWN="unknown",c))(V||{}),Z=(n=>(n.GRAPH_SHOW="iGraphShow",n.GRAPH_HIDE="iGraphHide",n.NEXT_AREA="iNextChapterArea",n.NEXT_BUTTON="iNextChapterBtn",n.WATCH_AGAIN="iWatchAgainBtn",n))(Z||{}),ee={action_play:"ap",action_play_interactive:"api",first_bytes:"fb",player_ready:"pr",first_frame:"ff",seek:"sk",watch_coverage_record:"wr",watch_coverage_live:"wl",empty_buffer:"eb",action_stop:"as",close_at_empty_buffer:"cb",content_error:"er",player_interface_click:"pc",next_movie:"nm",track_switch:"ts",failover:"fo"},te={vsid:"si",isid:"is",vid:"vi",place:"pl",quality:"qt",cdn_host:"ch",stat_type:"st",param:"pm",vk_app_id:"va",track_code:"tc",connection_type:"cnt",connection_reused:"cr",cached_data:"cd",live:"lv",muted:"mu",mode:"mo",subtitles:"sb",failover:"fo",download_speed:"ds",manual_quality:"mq",ref_domain:"rd",direct_url:"du"},ie={unknown:"un",mobile:"m",lowest:"ls",low:"l",medium:"md",high:"h",fullhd:"f",quadhd:"q",ultrahd:"u"},oe={pip:"pi",fullscreen:"fs",external:"ex",prefetch:"pr",airplay:"ap",chromecast:"cc",invisible:"iv"};import{fillWithDefault as Ce}from"@vkontakte/videoplayer-shared";var Te={apiEnv:"vk_alias",requestRetryCount:1,firstFlushTime:5e3,flushDebounceTime:1e4,flushMaxWait:6e4,storageExpiration:36*60*60*1e3,watchCoverageInterval:15e3,disabledOperations:[],disabledCustomFields:[],shorten:!0,maxLoops:100,embedUrlParams:[],useBeacon:!0,synchronizeTime:!0,debugLog:!1,backoff:{start:1e3,factor:1.5,max:5*60*1e3,random:.1}},se=r=>Ce(r,Te);function U(){let r="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),e=new Array(36),i=0,t,o;for(o=0;o<36;o++)o===8||o===13||o===18||o===23?e[o]="-":o===14?e[o]="4":(i<=2&&(i=33554432+Math.random()*16777216|0),t=i&15,i=i>>4,e[o]=r[o===19?t&3|8:t]);return e.join("")}import{assertNonNullable as Ve,combine as ve,fromEvent as Ie,isNonNullable as y,isNullable as Se,merge as Ue,now as b,observableFrom as He,once as We,safeStorage as O,Subject as Ke,Subscription as X,ValueSubject as G}from"@vkontakte/videoplayer-shared";import{Logger as qe,detectEmbed as ze}from"@vkontakte/videoplayer-shared";var re=r=>{let{operation:e,custom:i}=r,t=Object.fromEntries(Object.entries(i).map(([o,n])=>{let a=te[o]??o,c=n;return n&&(o==="mode"?c=oe[n]??n:o==="quality"&&(c=ie[n]??n)),[a,c]}));return{...r,operation:ee[e]??e,custom:t}};var w="1.0.54-dev.cf4e48ed.0",ne="CIOPGQJGDIHBABABA",H={prod:"https://api.ok.ru",vk_alias:"https://api.mycdn.me",videotest:"https://videotestapi.ok.ru/api",test:"https://apitest.ok.ru",okcdn:"https://api.okcdn.ru",auto:""};import{ValueSubject as we,getExponentialDelay as ke,ErrorCategory as I}from"@vkontakte/videoplayer-shared";var A=class{constructor(e){this.consequentAuthErrors=0;this.authorized$=new we(!1);this.params=e}async authorize(e){return this.authToken=e??await this.refreshAuthToken(),this._authorizeWithBackoff()}logBeacon(e){let i="log.externalLog",t=this.createLogParams(e),o=this.sessionKey;if(!o)return;this.params.apiTransport.sendBeacon(i,t,o)||this.logRequest(e)}async logRequest(e){let i="log.externalLog",t=this.createLogParams(e),o=this.sessionKey??await this._authorizeWithBackoff();if(!o)return;let n=async(a,c=this.params.config.requestRetryCount)=>{try{return await this.params.apiTransport.sendRequest(i,t,o)}catch(l){if(!l||!("error_code"in l)){this.params.error$.next({id:"logRequestUnknown",category:I.NETWORK,message:`Unknown ${i} error`,thrown:l});return}let u=l?.error_code;switch(u){case 102:case 103:case 104:return this.authorized$.next(!1),this.sessionKey=await this._authorizeWithBackoff(),c>0?n(a,c-1):void 0;case 401:return this.authorized$.next(!1),this.authToken=await this.refreshAuthToken(),this.sessionKey=await this._authorizeWithBackoff(),c>0?n(a,c-1):void 0;default:{this.params.error$.next({id:`LogRequest#${u}`,category:I.EXTERNAL_API,message:`${i} error`,data:l});return}}}};return n(e)}destroy(){window.clearTimeout(this.backoffTimeoutId),this.backoffTimeoutId=0}async refreshAuthToken(){if(this.params.refreshAuthToken)return this.refreshAuthTokenPromise||(this.refreshAuthTokenPromise=this.params.refreshAuthToken().finally(()=>{this.refreshAuthTokenPromise=void 0})),this.refreshAuthTokenPromise}createLogParams(e){return{collector:"ok.mobile.apps.video",data:JSON.stringify({application:`@vkontakte/videoplayer-statistics:${w}`,platform:this.params.mobile?"M_WEB":"WEB",items:this.params.config.shorten?e.map(re):e})}}_authorizeWithBackoff(){if(!this.consequentAuthErrors)return this._authorize();let e=ke(this.consequentAuthErrors,this.params.config.backoff);return new Promise(i=>{this.backoffTimeoutId||(this.backoffTimeoutId=window.setTimeout(()=>{this._authorize().then(i).catch(t=>this.params.error$.next({id:"AuthorizeBackoff",category:I.NETWORK,message:"Otherwise unhandled error in authorization",thrown:t})).finally(()=>this.backoffTimeoutId=0)},e))})}async _authorize(){if(this.authorizePromise)return this.authorizePromise;this.sessionKey=void 0,this.authorized$.next(!1);let e="auth.anonymLogin",i={session_data:{version:2,device_id:this.params.deviceId,client_version:w.split("-")[0],client_type:"SDK_JS"}};return this.authToken!==void 0&&(i.session_data.auth_token=this.authToken,i.session_data.version=3),this.authorizePromise=this.params.apiTransport.sendRequest(e,i).then(t=>((!t||!t.session_key)&&this.params.error$.next({id:"AuthorizeFailed",category:I.EXTERNAL_API,message:"No session key",data:t}),this.sessionKey=t?.session_key??void 0,this.sessionKey)).catch(async t=>{this.sessionKey=void 0;let o=t?.error_code;switch(o){case 401:return this.authToken=await this.refreshAuthToken(),this._authorizeWithBackoff()}o?this.params.error$.next({id:`Authorize#${o}`,category:I.EXTERNAL_API,message:"authorize error",data:t}):this.params.error$.next({id:"AuthorizeUnknown",category:I.NETWORK,message:"authorize error",thrown:t})}).finally(()=>{this.authorizePromise=void 0,this.consequentAuthErrors=this.sessionKey?0:this.consequentAuthErrors+1,this.authorized$.next(this.sessionKey!==void 0)}),this.authorizePromise}};import{ErrorCategory as k,now as W}from"@vkontakte/videoplayer-shared";var x=class{constructor(e){this.params=e,this.apiKey=e.apiKey,this.apiEnv=e.config.apiEnv,this.apiBaseUrl=H[this.apiEnv],this.timeSynchronisation=e.timeSynchronisation,this.isApiBaseUrlFetched=!1}async resolveApiBaseUrl(){if(this.apiEnv!=="auto"||this.isApiBaseUrlFetched)return this.apiBaseUrl;try{let e=atob("aHR0cHM6Ly9kbnMuZ29vZ2xlL3Jlc29sdmU/bmFtZT12aWRlby5fZW5kcG9pbnQub2sucnUmdHlwZT1UWFQ="),o=(await(await fetch(e,{method:"GET",mode:"cors",cache:"no-cache"})).json())?.Answer[0]?.data;if(!o)throw new Error("Wrong DNS response");return o}catch(e){return this.params.error$.next({id:"OneStat:ApiTransport:resolveApiBaseUrl",category:k.NETWORK,message:"Unhandled resolve api base url error",thrown:e}),H.vk_alias}finally{this.isApiBaseUrlFetched=!0}}sendBeacon(e,i,t){if(!window.Blob||!window.navigator.sendBeacon)return!1;let o=this._prepareQueryParams({method:e,queryParams:i,sessionKey:t}),n=new window.Blob([o.toString()],{type:"application/x-www-form-urlencoded"});try{return window.navigator.sendBeacon(`${this.apiBaseUrl}/fb.do`,n)}catch(a){this.params.error$.next({id:"OneStat:ApiTransport:sendBeacon",category:k.NETWORK,message:"Unhandled beacon error",thrown:a,data:{method:e,params:i}})}return!1}async sendRequest(e,i,t){let o=W(),n=a=>{if(a instanceof TypeError&&["Failed to fetch","NetworkError when attempting to fetch resource."].includes(a.message)){this.params.error$.next({id:"Network",category:k.NETWORK,message:"Request failed",thrown:a});return}this.params.error$.next({id:"OneStat:ApiTransport:sendRequest",category:k.NETWORK,message:"Unhandled request error",thrown:a,data:{method:e,params:i,sessionKey:t,time:W()-o}})};return this.apiBaseUrl=await this.resolveApiBaseUrl(),fetch(`${this.apiBaseUrl}/fb.do`,{method:"post",headers:{"Content-type":"application/x-www-form-urlencoded"},body:this._prepareQueryParams({method:e,queryParams:i,sessionKey:t})}).then(a=>{let c=Number(a.headers.get("content-length"))===0,l=new Date(a.headers.get("date")??"").getTime(),u=W()-o;if(isFinite(l)&&this.timeSynchronisation?.addServerTime(l,u),!c)return a.json().then(h=>Object.prototype.hasOwnProperty.call(h,"error_msg")?Promise.reject(h):h,n)},n)}_prepareQueryParams(e){let i=new URLSearchParams({format:"JSON",method:e.method,application_key:this.apiKey});return e.sessionKey!==void 0&&i.append("session_key",e.sessionKey),Object.entries(e.queryParams).forEach(([t,o])=>i.append(t,typeof o=="string"?o:JSON.stringify(o))),i}};import{ErrorCategory as Le,now as $e,safeStorage as C,debounceFn as ae}from"@vkontakte/videoplayer-shared";var L="onestat_events",K=r=>e=>e.timestamp+r>=$e(),$=class{constructor(e){this.unsaltedStorage=[];this.isPaused=!1;this.isUrgent=e=>{let{operation:i}=e;return["action_play","watch_coverage_record","watch_coverage_live"].includes(i)};this.params=e,this.api=e.api,this.error$=e.error$,this.userSalt=e.userSalt,this.loggerDebugLog=e.debugLogger.createComponentLog("stat logger"),this.firstFlush=ae(()=>this.safeFlush(),this.params.config.firstFlushTime,{maxWait:this.params.config.firstFlushTime});let i=C.isPersistent()?this.params.config.flushMaxWait:0;this.debouncedFlush=ae(()=>this.safeFlush(),this.params.config.flushDebounceTime,{maxWait:i}),this.subscription=this.api.authorized$.subscribe(t=>{t&&this.debouncedFlush()}),this.housekeepStorage()}safeFlush(){try{this.flush()}catch(e){this.error$.next({id:"LoggerError",category:Le.WTF,message:String(e)??"Unknown logger error",thrown:e})}}readFromStorage(){let e=C.get(L);try{return e?JSON.parse(e):{}}catch{}return{}}addToStorage(e){if(!this.userSalt){this.unsaltedStorage.push(e);return}let i=this.readFromStorage(),o=(i[this.userSalt]??[]).filter(K(this.params.config.storageExpiration));C.set(L,JSON.stringify({...i,[this.userSalt]:[...o,e]}))}getFromStorage(){return this.userSalt?(this.readFromStorage()[this.userSalt]??[]).filter(K(this.params.config.storageExpiration)):this.unsaltedStorage}markStorageSent(){if(!this.userSalt){this.unsaltedStorage=[];return}let e=this.readFromStorage();delete e[this.userSalt],C.set(L,JSON.stringify(e))}housekeepStorage(){let e=this.readFromStorage();for(let[i,t]of Object.entries(e)){let o=t.filter(K(this.params.config.storageExpiration));o.length?e[i]=o:delete e[i],this.loggerDebugLog({message:`${t.length} retrieved from storage, ${o.length} of them actual`})}C.set(L,JSON.stringify(e))}log(e){this.addToStorage(e),!this.isPaused&&(this.isUrgent(e)?this.flush():this.lastVsid!==e.custom.vsid?this.firstFlush():this.debouncedFlush(),this.lastVsid=e.custom.vsid)}flush(e=!1){let i=this.getFromStorage();i.length!==0&&(this.api.authorized$.getValue()?(e&&this.params.config.useBeacon?(this.loggerDebugLog({message:`Flushing ${i.length} events through beacon`}),this.api.logBeacon(i)):(this.loggerDebugLog({message:`Flushing ${i.length} events`}),this.api.logRequest(i)),this.markStorageSent()):this.api.authorize(),this.firstFlush.cancel(),this.debouncedFlush.cancel())}pause(){this.isPaused=!0,this.debouncedFlush.cancel()}resume(){this.isPaused=!1,this.debouncedFlush()}destroy(){this.subscription.unsubscribe(),this.firstFlush.cancel(),this.debouncedFlush.cancel()}};import{HttpConnectionType as q,Surface as S,VideoFormat as p,VideoQuality as m}from"@vkontakte/videoplayer-core";import{assertNever as de}from"@vkontakte/videoplayer-shared";var ce=r=>r&&{[m.INVARIANT]:"unknown",[m.Q_144P]:"mobile",[m.Q_240P]:"lowest",[m.Q_360P]:"low",[m.Q_480P]:"medium",[m.Q_720P]:"high",[m.Q_1080P]:"fullhd",[m.Q_1440P]:"quadhd",[m.Q_2160P]:"ultrahd",[m.Q_4320P]:"unknown"}[r],z=r=>r&&{[q.HTTP1]:"http1",[q.HTTP2]:"http2",[q.QUIC]:"http3"}[r],ue=r=>{if(r!==void 0)switch(r){case p.MPEG:return"mp4";case p.DASH:case p.DASH_LIVE:case p.DASH_STREAMS:return"dash";case p.DASH_SEP:return"dash_sep";case p.DASH_ONDEMAND:return"ondemand_dash";case p.DASH_WEBM:case p.DASH_LIVE_WEBM:return"webm";case p.DASH_WEBM_AV1:return"av1";case p.DASH_LIVE_CMAF:return"ondemand_dash_live";case p.HLS:case p.HLS_LIVE:return"hls";case p.HLS_ONDEMAND:return"ondemand_hls";case p.HLS_LIVE_CMAF:return"ondemand_hls_live";case p.WEB_RTC_LIVE:return"webrtc";default:return de(r)}},R=r=>{if(r!==void 0)switch(r){case S.NONE:case S.INLINE:return;case S.FULLSCREEN:return"fullscreen";case S.SECOND_SCREEN:return"chromecast";case S.PIP:return"pip";case S.INVISIBLE:return"invisible";default:return de(r)}},le=r=>{switch(r){case"slow-2g":return"poor";case"2g":return"poor";case"3g":return"good";case"4g":return"excellent"}};var D=class{constructor(e){this.offset=void 0;this.offset=e}getOffset(){return this.offset??0}setOffset(e){this.offset=e}now(){return Date.now()+(this.offset??0)}date(e=new Date){return e.setTime(e.getTime()+(this.offset??0)),e}addServerTime(e,i){let t=Date.now(),o=e-t-i/2;if(Math.abs(o)<1e3){this.offset=0;return}this.offset===void 0?this.offset=Math.round(o):this.offset=Math.round(.2*o+(1-.2)*this.offset)}};var pe=()=>Math.floor(Math.random()*4294967296).toString(36).padStart(7,"0"),he=()=>Math.floor(Math.random()*18446744073709552e3).toString(36).padStart(13,"0");import{PlaybackState as fe}from"@vkontakte/videoplayer-core";import{filter as ge,filterChanged as De,fromEvent as Oe,isNullable as me,map as Ne,merge as Q,Observable as Me,Subject as j,Subscription as Be,ValueSubject as Fe}from"@vkontakte/videoplayer-shared";var be=(r,e)=>new Me(i=>{let t=new Be,o=Q(Oe(window,"beforeunload"),r.events.willDestruct$),n=new Fe(void 0),a;t.add(r.info.isLive$.pipe(De()).subscribe(v=>{a&&(a.unsubscribe(),n.next(void 0)),v?a=r.info.liveTime$.pipe(Ne(N=>N&&N/1e3)).subscribe(n):a=r.info.position$.subscribe(n),t.add(a)}));let{playing$:c,paused$:l}=r.events,u=r.events.willSeek$.pipe(ge(()=>r.info.playbackState$.getValue()===fe.PLAYING)),h=r.events.seeked$.pipe(ge(()=>r.info.playbackState$.getValue()===fe.PLAYING)),g=!1,s=new j;t.add(u.subscribe(()=>{g||s.next(),g=!0})),t.add(h.subscribe(()=>g=!1));let d=new j,f=new j,P=Q(c,h,d),T=Q(l,s,o,r.events.looped$,f),_,Ee=()=>_=n.getValue(),Ae=()=>{let v=n.getValue();me(_)||_===v||me(v)||(i.next({from:_,to:v}),_=void 0)},xe=()=>{f.next(),d.next()};if(t.add(P.subscribe(Ee)),t.add(T.subscribe(Ae)),e.forceInterval&&isFinite(e.forceInterval)){let v=0;t.add(P.subscribe(()=>v=window.setTimeout(xe,e.forceInterval))),t.add(T.subscribe(()=>window.clearTimeout(v)))}return t});var _e="_one-stat_",ye=`${_e}uuid`,Pe=`${_e}deviceId`,Y=()=>{let r=new X;return{subscription:r,subscribe:(e,i)=>{e&&r.add(e.subscribe(i))}}},J=class{constructor(e,i){this.subscription=new X;this.debugLogger=new qe;this.oneStatDebugLog=this.debugLogger.createComponentLog("onestat");this.loopCounter=0;this.disabled=!1;this.vsid$=new G(void 0);this.isid$=new G(void 0);this.seekAction$=new G("unknown");this.statContext=e,this.config=se(i.config??{}),y(i.apiEnv)&&(this.config.apiEnv=i.apiEnv),this.config.synchronizeTime&&(this.timeSynchronisation=new D);let t=new Ke;this.experimental={error$:t},O.get(ye)&&O.remove(ye);let n=O.get(Pe);this.statContext.deviceId?this.deviceId=this.statContext.deviceId:n?this.deviceId=n:(this.deviceId=U(),O.set(Pe,this.deviceId)),this.resetViewSession(),i.useIsid&&this.isid$.next(i.isid??he());let a=new x({apiKey:ne,config:this.config,error$:t,timeSynchronisation:this.timeSynchronisation});this.api=new A({config:this.config,apiTransport:a,refreshAuthToken:i.refreshAuthToken,mobile:this.statContext.mobile??!1,deviceId:this.deviceId,error$:t}),this.logger=new $({config:this.config,debugLogger:this.debugLogger,api:this.api,error$:t,userSalt:i.userSalt});let{isEmbed:c,host:l}=ze();this.isEmbed=c,this.embedParent=l,this.subscribe()}updateContext(e){this.statContext={...this.statContext,...e}}attachTo(e){let i=new X,t=(s,d)=>i.add(s.subscribe(d));t(e.events.willStart$,()=>{let s=e.info.position$.getValue();this.logActionPlay({position:s}),this.statContext.projectId&&this.logActionPlayInteractive()}),t(e.events.looped$,()=>{this.resetViewSession(),++this.loopCounter>this.config.maxLoops&&(this.disabled=!0),this.logActionPlay({position:e.info.position$.getValue()})}),t(e.events.seeked$,()=>{this.logSeek({action:this.seekAction$.getValue(),time:e.info.position$.getValue()}),this.seekAction$.next("unknown")}),t(e.events.paused$,()=>{this.logPause({position:e.info.position$.getValue()})}),t(e.events.willResume$,()=>{this.logPlay()}),t(e.events.started$,()=>{this.statContext.clip&&this.logWatchCoverageRecord({start:0,end:0})}),t(e.events.playing$,()=>{this.logPlaying()}),t(be(e,{forceInterval:this.config.watchCoverageInterval}),s=>{let d=e.info.isLive$.getValue(),f={start:parseFloat(s.from.toFixed(3)),end:parseFloat(s.to.toFixed(3))};d?this.logWatchCoverageLive(f):this.logWatchCoverageRecord(f)});let o;t(e.info.isStalled$,s=>{s?o=b():(y(o)&&this.logEmptyBuffer({duration:b()-o}),o=void 0)});let n=!1;i.add(e.events.fatalError$.pipe(We()).subscribe(()=>n=!0)),t(e.events.willStop$,()=>{if(e.info.isStalled$.getValue()){let d=y(o)?b()-o:void 0;this.logCloseAtEmptyBuffer({duration:d??0}),o=void 0}else n||this.logActionStop()}),t(e.events.managedError$,({id:s})=>{this.logError({fatal:!1,errorType:s})}),t(e.events.fatalError$,({id:s})=>{this.logError({fatal:!0,errorType:s})});let a,c,l=!1;t(e.events.firstBytes$,s=>{a=b(),this.logFirstBytes({time:s})}),t(e.events.willStart$,()=>c=b()),t(e.info.currentBuffer$,s=>{!l&&s&&s.end-s.start>0&&y(a)&&(this.logPlayerReady({duration:b()-a}),l=!0)}),t(e.events.firstFrame$,()=>{y(a)&&!l&&(this.logPlayerReady({duration:b()-a}),l=!0),y(c)&&this.logFirstFrame({time:b()-c})});let u;t(e.info.currentVideoStream$,s=>{s&&(u&&s.id!==u&&this.logTrackSwitch(s),u=s.id)});let h;t(e.info.currentAudioStream$,s=>{s&&(h&&s.id!==h&&this.logTrackSwitch(s),h=s.id)}),t(e.info.atLiveEdge$,s=>this.updateContext({liveEdge:s})),t(ve({muted:e.info.muted$,volume:e.info.volume$}),({muted:s,volume:d})=>this.updateContext({audible:!s&&d>0})),t(e.info.currentQuality$,s=>this.updateContext({quality:ce(s)})),t(e.info.isAutoQualityEnabled$,s=>this.updateContext({autoQuality:s})),t(e.info.currentFormat$,s=>this.updateContext({contentType:ue(s)})),t(e.info.currentPlaybackRate$,s=>this.updateContext({rate:s})),t(e.info.is3DVideo$,s=>this.updateContext({is3d:s}));let g;return t(e.info.hostname$,s=>{let d=g!==void 0&&g!==s;this.updateContext({cdnHostname:s,failover:d}),d&&this.logFailover(s),g=s}),t(e.info.throughputEstimation$,s=>this.updateContext({downloadSpeed:s})),t(e.info.httpConnectionType$,s=>{this.statContext.firstConnectionType||this.updateContext({firstConnectionType:z(s)}),this.updateContext({connectionType:z(s)})}),t(e.info.httpConnectionReused$,s=>{Se(this.statContext.firstConnectionReused)&&this.updateContext({firstConnectionReused:s}),this.updateContext({connectionReused:s})}),t(e.info.surface$,s=>this.updateContext({mode:R(s)})),t(ve({current:e.info.currentTextTrack$,available:e.info.availableTextTracks$}),({current:s,available:d})=>{let f=d.find(({id:T})=>T===s),P=f&&(f.isAuto?`${f.language}_auto`:f.language);this.updateContext({subtitles:P})}),this.player=e,this.uiEvents&&this.attachToUi(this.uiEvents),this.resubscribeBeforeunload(),this.subscription.add(i),i}attachToUi(e){this.uiEvents=e;let{subscription:i,subscribe:t}=Y();return this.player&&(t(e.actionRewind$,()=>{this.player&&(this.resetViewSession(),this.logActionPlay({position:this.player.info.position$.getValue()}))}),t(e.actionSeek$,this.seekAction$),t(e.inPiP$,o=>{let n=o?"pip":R(this.player?.info.surface$.getValue());this.updateContext({mode:n})}),t(e.inFullscreen$,o=>{let n=o?"fullscreen":R(this.player?.info.surface$.getValue());this.updateContext({mode:n})}),t(e.actionSetSubtitle$,o=>this.updateContext({subtitles:o})),t(e.nextMovie$,o=>this.logNextMovie(o)),this.resubscribeBeforeunload(),this.subscription.add(i)),i}attachToAds(e){let{subscription:i,subscribe:t}=Y();return t(e.slotRequested$,()=>this.logAdSlotRequest()),t(e.started$,o=>this.logAdStarted(o)),t(e.paused$,()=>this.logAdPaused()),t(e.resumed$,()=>this.logAdResumed()),t(e.ended$,()=>this.logAdEnded()),t(e.skipped$,()=>this.logAdSkipped()),t(e.clicked$,()=>this.logAdClicked()),this.resubscribeBeforeunload(),this.subscription.add(i),i}attachToInteractive(e){let{subscription:i,subscribe:t}=Y();return t(e.click$,o=>this.logInterfaceClick(o)),t(e.nextMovie$,o=>this.logNextMovie(o)),this.resubscribeBeforeunload(),this.subscription.add(i),i}authorize(e){return this.api.authorize(e)}pause(){this.logger.pause(),this.oneStatDebugLog({message:"paused"})}resume(){this.logger.resume(),this.oneStatDebugLog({message:"resumed"})}destroy(){this.logger.flush(),this.subscription.unsubscribe(),this.api.destroy(),this.logger.destroy()}resetViewSession(){this.oneStatDebugLog({message:"VSID reset"}),this.vsid$.next(pe())}getDeviceId(){return this.deviceId}setFieldBlacklist(){}logInited(){}logReady(e){this.log({operation:"player_ready",param:String(e.time)})}logStarted(...e){this.logActionPlay(...e)}logPlay(){this.log({operation:"play_toggle"})}logPlaying(){this.log({operation:"playing"})}logPause(e){this.log({operation:"pause",param:String(Math.round(e.position))})}logSeek(e){this.log({operation:"seek",param:e.action,time:e.time})}logFirstBytes(e){this.log({operation:"first_bytes",param:String(e.time)})}logFirstFrame(e){this.log({operation:"first_frame",param:String(e.time)})}logError(e){this.log({operation:"content_error",param:`${e.fatal?"fatal":"recoverable"}_${e.errorType}`})}logWatchCoverageRecord(e){this.log({operation:"watch_coverage_record",param:`${e.start}-${e.end}`},{in_history:this.statContext.inHistory?1:void 0})}logWatchCoverageLive(e){let i=this.timeSynchronisation?.getOffset()??0,t=e.start+i,o=e.end+i;this.log({operation:"watch_coverage_live",param:`${t}-${o}`},{in_history:this.statContext.inHistory?1:void 0})}logEmptyBuffer(e){this.log({operation:"empty_buffer",param:String(e.duration)})}logDownloadSpeed(){}logAdSlotRequest(){this.log({operation:"adv",param:"slot_request"})}logAdStarted(e){this.log({operation:"adv",param:e})}logAdPaused(){this.log({operation:"adv",param:"pause"})}logAdResumed(){this.log({operation:"adv",param:"resume"})}logAdEnded(){this.log({operation:"adv",param:"ended"})}logAdSkipped(){this.log({operation:"adv",param:"skip"})}logAdClicked(){this.log({operation:"adv",param:"click"})}logInterfaceClick(e){this.log({operation:"player_interface_click",param:e})}logNextMovie(e){this.log({operation:"next_movie",param:String(e)})}subscribe(){this.resubscribeBeforeunload();let e=window.navigator.connection;e&&"onchange"in e&&"effectiveType"in e&&this.subscription.add(Ue(Ie(e,"change"),He(["init"])).subscribe(()=>this.updateContext({network:le(e.effectiveType)}))),this.config.debugLog&&this.debugLogger.log$.subscribe(i=>{console.debug("%c stat ","background:#fa6470;",`component: ${i.component}.`,i.message)})}resubscribeBeforeunload(){this.beforeunloadSubscription?.unsubscribe(),this.beforeunloadSubscription=Ie(window,"beforeunload").subscribe(()=>this.logger.flush(!0)),this.subscription.add(this.beforeunloadSubscription)}logPlayerReady(e){this.log({operation:"player_ready",param:String(Math.round(e.duration))})}logActionPlay(e){this.log({operation:"action_play",param:String(Math.round(e.position))})}logActionPlayInteractive(){this.statContext.projectId&&this.log({operation:"action_play_interactive",param:String(this.statContext.movieId)},{vid:this.statContext.projectId})}logFailover(e){this.log({operation:"failover",param:e})}logCloseAtEmptyBuffer(e){this.log({operation:"close_at_empty_buffer",param:String(Math.round(e.duration))})}logActionStop(){this.log({operation:"action_stop"})}logTrackSwitch(e){this.log({operation:"track_switch",param:e.id})}log(e,i={}){if(this.disabled){this.oneStatDebugLog({message:`operation ${e.operation} but statistics is disabled`});return}if(this.config.disabledOperations.includes(e.operation)){this.oneStatDebugLog({message:`operation ${e.operation} but it is disabled`});return}this.oneStatDebugLog({message:`operation ${e.operation} ${e.param}`});let t=this.createLogItem(e,i);this.logger.log(t)}createLogItem({operation:e,param:i,time:t},o={}){let n=this.timeSynchronisation?.now()??b(),a=this.vsid$.getValue();Ve(a);let c=this.isid$.getValue(),l=e==="empty_buffer"||e==="close_at_empty_buffer"?this.statContext.connectionType:this.statContext.firstConnectionType,u=this.statContext.firstConnectionReused,h,g;if(this.isEmbed){h=this.embedParent;let d=[...new URLSearchParams(location.search).entries()].filter(([f,P])=>this.config.embedUrlParams.includes(f));g=new URLSearchParams(d).toString()}else this.statContext.place==="direct"&&((this.statContext.refDomain||document.referrer)&&(h=new URL(this.statContext.refDomain||document.referrer).hostname),g=location.href.substring(0,1024));let s={vsid:a,isid:c,vid:this.statContext.movieId,ct:this.statContext.contentType,place:this.isEmbed?"embed":this.statContext.place,quality:this.statContext.quality,cdn_host:this.statContext.cdnHostname,stat_type:this.statContext.autoplay===!0?"auto":this.statContext.autoplay===!1?"":void 0,param:i,vk_app_id:this.statContext.vkAppId,track_code:this.statContext.trackCode,connection_type:l,connection_reused:u===!0?1:u===!1?0:void 0,cached_data:this.statContext.cached===!0?1:this.statContext.cached===!1?0:void 0,live:this.statContext.liveEdge?1:void 0,muted:this.statContext.audible===!1?1:void 0,mode:this.statContext.mode,subtitles:this.statContext.subtitles,download_speed:this.statContext.downloadSpeed,manual_quality:this.statContext.autoQuality?void 0:1,ref_domain:h,direct_url:g,rate:this.statContext.rate===1||Se(this.statContext.rate)?void 0:this.statContext.rate.toFixed(2),view_360:this.statContext.is3d?1:void 0,aid:this.statContext.albumId,vk_playlist_id:this.statContext.vkPlaylistId,...o};for(let d of this.config.disabledCustomFields)delete s[d];return{operation:e,type:1,time:t,network:this.statContext.network,timestamp:n,custom:s}}};export{E as ApiEnv,F as ConnectionType,B as ContentType,Z as InteractiveInterfaceClick,J as OneStat,M as Quality,V as SeekAction,w as VERSION};
6
+ var E=(a=>(a.PROD="prod",a.VK_ALIAS="vk_alias",a.VIDEOTEST="videotest",a.TEST="test",a.OKCDN="okcdn",a.AUTO="auto",a))(E||{}),M=(u=>(u.Q144P="mobile",u.Q240P="lowest",u.Q360P="low",u.Q480P="medium",u.Q720P="high",u.Q1080P="fullhd",u.Q1440P="quadhd",u.Q2160P="ultrahd",u.UNKNOWN="unknown",u))(M||{}),B=(d=>(d.MP4="mp4",d.DASH="dash",d.DASH_SEP="dash_sep",d.ONDEMAND_DASH="ondemand_dash",d.HLS="hls",d.ONDEMAND_HLS="ondemand_hls",d.WEBM="webm",d.AV1="av1",d.ONDEMAND_DASH_LIVE="ondemand_dash_live",d.ONDEMAND_HLS_LIVE="ondemand_hls_live",d.WEBRTC="webrtc",d.UNKNOWN="unknown",d.RTMP="rtmp",d))(B||{});var F=(t=>(t.HTTP1="http1",t.HTTP2="http2",t.HTTP3="http3",t))(F||{});var V=(c=>(c.SLIDER="slider",c.DOUBLE_TAP="double_tap",c.TIME_CODE="time_code",c.EPISODE="episode",c.REWIND="rewind",c.LIVE="live",c.UNKNOWN="unknown",c))(V||{}),Z=(n=>(n.GRAPH_SHOW="iGraphShow",n.GRAPH_HIDE="iGraphHide",n.NEXT_AREA="iNextChapterArea",n.NEXT_BUTTON="iNextChapterBtn",n.WATCH_AGAIN="iWatchAgainBtn",n))(Z||{}),ee={action_play:"ap",action_play_interactive:"api",first_bytes:"fb",player_ready:"pr",first_frame:"ff",seek:"sk",watch_coverage_record:"wr",watch_coverage_live:"wl",empty_buffer:"eb",action_stop:"as",close_at_empty_buffer:"cb",content_error:"er",player_interface_click:"pc",next_movie:"nm",track_switch:"ts",failover:"fo"},te={vsid:"si",isid:"is",vid:"vi",place:"pl",quality:"qt",cdn_host:"ch",stat_type:"st",param:"pm",vk_app_id:"va",track_code:"tc",connection_type:"cnt",connection_reused:"cr",cached_data:"cd",live:"lv",muted:"mu",mode:"mo",subtitles:"sb",failover:"fo",download_speed:"ds",manual_quality:"mq",ref_domain:"rd",direct_url:"du"},ie={unknown:"un",mobile:"m",lowest:"ls",low:"l",medium:"md",high:"h",fullhd:"f",quadhd:"q",ultrahd:"u"},oe={pip:"pi",fullscreen:"fs",external:"ex",prefetch:"pr",airplay:"ap",chromecast:"cc",invisible:"iv"};import{fillWithDefault as Ce}from"@vkontakte/videoplayer-shared";var Te={apiEnv:"vk_alias",requestRetryCount:1,firstFlushTime:5e3,flushDebounceTime:1e4,flushMaxWait:6e4,storageExpiration:36*60*60*1e3,watchCoverageInterval:15e3,disabledOperations:[],disabledCustomFields:[],shorten:!0,maxLoops:100,embedUrlParams:[],useBeacon:!0,synchronizeTime:!0,debugLog:!1,backoff:{start:1e3,factor:1.5,max:5*60*1e3,random:.1}},se=r=>Ce(r,Te);function U(){let r="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),e=new Array(36),i=0,t,o;for(o=0;o<36;o++)o===8||o===13||o===18||o===23?e[o]="-":o===14?e[o]="4":(i<=2&&(i=33554432+Math.random()*16777216|0),t=i&15,i=i>>4,e[o]=r[o===19?t&3|8:t]);return e.join("")}import{assertNonNullable as Ve,combine as ve,fromEvent as Ie,isNonNullable as y,isNullable as Se,merge as Ue,now as b,observableFrom as He,once as We,safeStorage as O,Subject as Ke,Subscription as X,ValueSubject as G}from"@vkontakte/videoplayer-shared";import{Logger as qe,detectEmbed as ze}from"@vkontakte/videoplayer-shared";var re=r=>{let{operation:e,custom:i}=r,t=Object.fromEntries(Object.entries(i).map(([o,n])=>{let a=te[o]??o,c=n;return n&&(o==="mode"?c=oe[n]??n:o==="quality"&&(c=ie[n]??n)),[a,c]}));return{...r,operation:ee[e]??e,custom:t}};var w="1.0.54-dev.e8d7fe49.0",ne="CIOPGQJGDIHBABABA",H={prod:"https://api.ok.ru",vk_alias:"https://api.mycdn.me",videotest:"https://videotestapi.ok.ru/api",test:"https://apitest.ok.ru",okcdn:"https://api.okcdn.ru",auto:""};import{ValueSubject as we,getExponentialDelay as ke,ErrorCategory as I}from"@vkontakte/videoplayer-shared";var A=class{constructor(e){this.consequentAuthErrors=0;this.authorized$=new we(!1);this.params=e}async authorize(e){return this.authToken=e??await this.refreshAuthToken(),this._authorizeWithBackoff()}logBeacon(e){let i="log.externalLog",t=this.createLogParams(e),o=this.sessionKey;if(!o)return;this.params.apiTransport.sendBeacon(i,t,o)||this.logRequest(e)}async logRequest(e){let i="log.externalLog",t=this.createLogParams(e),o=this.sessionKey??await this._authorizeWithBackoff();if(!o)return;let n=async(a,c=this.params.config.requestRetryCount)=>{try{return await this.params.apiTransport.sendRequest(i,t,o)}catch(l){if(!l||!("error_code"in l)){this.params.error$.next({id:"logRequestUnknown",category:I.NETWORK,message:`Unknown ${i} error`,thrown:l});return}let u=l?.error_code;switch(u){case 102:case 103:case 104:return this.authorized$.next(!1),this.sessionKey=await this._authorizeWithBackoff(),c>0?n(a,c-1):void 0;case 401:return this.authorized$.next(!1),this.authToken=await this.refreshAuthToken(),this.sessionKey=await this._authorizeWithBackoff(),c>0?n(a,c-1):void 0;default:{this.params.error$.next({id:`LogRequest#${u}`,category:I.EXTERNAL_API,message:`${i} error`,data:l});return}}}};return n(e)}destroy(){window.clearTimeout(this.backoffTimeoutId),this.backoffTimeoutId=0}async refreshAuthToken(){if(this.params.refreshAuthToken)return this.refreshAuthTokenPromise||(this.refreshAuthTokenPromise=this.params.refreshAuthToken().finally(()=>{this.refreshAuthTokenPromise=void 0})),this.refreshAuthTokenPromise}createLogParams(e){return{collector:"ok.mobile.apps.video",data:JSON.stringify({application:`@vkontakte/videoplayer-statistics:${w}`,platform:this.params.mobile?"M_WEB":"WEB",items:this.params.config.shorten?e.map(re):e})}}_authorizeWithBackoff(){if(!this.consequentAuthErrors)return this._authorize();let e=ke(this.consequentAuthErrors,this.params.config.backoff);return new Promise(i=>{this.backoffTimeoutId||(this.backoffTimeoutId=window.setTimeout(()=>{this._authorize().then(i).catch(t=>this.params.error$.next({id:"AuthorizeBackoff",category:I.NETWORK,message:"Otherwise unhandled error in authorization",thrown:t})).finally(()=>this.backoffTimeoutId=0)},e))})}async _authorize(){if(this.authorizePromise)return this.authorizePromise;this.sessionKey=void 0,this.authorized$.next(!1);let e="auth.anonymLogin",i={session_data:{version:2,device_id:this.params.deviceId,client_version:w.split("-")[0],client_type:"SDK_JS"}};return this.authToken!==void 0&&(i.session_data.auth_token=this.authToken,i.session_data.version=3),this.authorizePromise=this.params.apiTransport.sendRequest(e,i).then(t=>((!t||!t.session_key)&&this.params.error$.next({id:"AuthorizeFailed",category:I.EXTERNAL_API,message:"No session key",data:t}),this.sessionKey=t?.session_key??void 0,this.sessionKey)).catch(async t=>{this.sessionKey=void 0;let o=t?.error_code;switch(o){case 401:return this.authToken=await this.refreshAuthToken(),this._authorizeWithBackoff()}o?this.params.error$.next({id:`Authorize#${o}`,category:I.EXTERNAL_API,message:"authorize error",data:t}):this.params.error$.next({id:"AuthorizeUnknown",category:I.NETWORK,message:"authorize error",thrown:t})}).finally(()=>{this.authorizePromise=void 0,this.consequentAuthErrors=this.sessionKey?0:this.consequentAuthErrors+1,this.authorized$.next(this.sessionKey!==void 0)}),this.authorizePromise}};import{ErrorCategory as k,now as W}from"@vkontakte/videoplayer-shared";var x=class{constructor(e){this.params=e,this.apiKey=e.apiKey,this.apiEnv=e.config.apiEnv,this.apiBaseUrl=H[this.apiEnv],this.timeSynchronisation=e.timeSynchronisation,this.isApiBaseUrlFetched=!1}async resolveApiBaseUrl(){if(this.apiEnv!=="auto"||this.isApiBaseUrlFetched)return this.apiBaseUrl;try{let e=atob("aHR0cHM6Ly9kbnMuZ29vZ2xlL3Jlc29sdmU/bmFtZT12aWRlby5fZW5kcG9pbnQub2sucnUmdHlwZT1UWFQ="),o=(await(await fetch(e,{method:"GET",mode:"cors",cache:"no-cache"})).json())?.Answer[0]?.data;if(!o)throw new Error("Wrong DNS response");return o}catch(e){return this.params.error$.next({id:"OneStat:ApiTransport:resolveApiBaseUrl",category:k.NETWORK,message:"Unhandled resolve api base url error",thrown:e}),H.vk_alias}finally{this.isApiBaseUrlFetched=!0}}sendBeacon(e,i,t){if(!window.Blob||!window.navigator.sendBeacon)return!1;let o=this._prepareQueryParams({method:e,queryParams:i,sessionKey:t}),n=new window.Blob([o.toString()],{type:"application/x-www-form-urlencoded"});try{return window.navigator.sendBeacon(`${this.apiBaseUrl}/fb.do`,n)}catch(a){this.params.error$.next({id:"OneStat:ApiTransport:sendBeacon",category:k.NETWORK,message:"Unhandled beacon error",thrown:a,data:{method:e,params:i}})}return!1}async sendRequest(e,i,t){let o=W(),n=a=>{if(a instanceof TypeError&&["Failed to fetch","NetworkError when attempting to fetch resource."].includes(a.message)){this.params.error$.next({id:"Network",category:k.NETWORK,message:"Request failed",thrown:a});return}this.params.error$.next({id:"OneStat:ApiTransport:sendRequest",category:k.NETWORK,message:"Unhandled request error",thrown:a,data:{method:e,params:i,sessionKey:t,time:W()-o}})};return this.apiBaseUrl=await this.resolveApiBaseUrl(),fetch(`${this.apiBaseUrl}/fb.do`,{method:"post",headers:{"Content-type":"application/x-www-form-urlencoded"},body:this._prepareQueryParams({method:e,queryParams:i,sessionKey:t})}).then(a=>{let c=Number(a.headers.get("content-length"))===0,l=new Date(a.headers.get("date")??"").getTime(),u=W()-o;if(isFinite(l)&&this.timeSynchronisation?.addServerTime(l,u),!c)return a.json().then(h=>Object.prototype.hasOwnProperty.call(h,"error_msg")?Promise.reject(h):h,n)},n)}_prepareQueryParams(e){let i=new URLSearchParams({format:"JSON",method:e.method,application_key:this.apiKey});return e.sessionKey!==void 0&&i.append("session_key",e.sessionKey),Object.entries(e.queryParams).forEach(([t,o])=>i.append(t,typeof o=="string"?o:JSON.stringify(o))),i}};import{ErrorCategory as Le,now as $e,safeStorage as C,debounceFn as ae}from"@vkontakte/videoplayer-shared";var L="onestat_events",K=r=>e=>e.timestamp+r>=$e(),$=class{constructor(e){this.unsaltedStorage=[];this.isPaused=!1;this.isUrgent=e=>{let{operation:i}=e;return["action_play","watch_coverage_record","watch_coverage_live"].includes(i)};this.params=e,this.api=e.api,this.error$=e.error$,this.userSalt=e.userSalt,this.loggerDebugLog=e.debugLogger.createComponentLog("stat logger"),this.firstFlush=ae(()=>this.safeFlush(),this.params.config.firstFlushTime,{maxWait:this.params.config.firstFlushTime});let i=C.isPersistent()?this.params.config.flushMaxWait:0;this.debouncedFlush=ae(()=>this.safeFlush(),this.params.config.flushDebounceTime,{maxWait:i}),this.subscription=this.api.authorized$.subscribe(t=>{t&&this.debouncedFlush()}),this.housekeepStorage()}safeFlush(){try{this.flush()}catch(e){this.error$.next({id:"LoggerError",category:Le.WTF,message:String(e)??"Unknown logger error",thrown:e})}}readFromStorage(){let e=C.get(L);try{return e?JSON.parse(e):{}}catch{}return{}}addToStorage(e){if(!this.userSalt){this.unsaltedStorage.push(e);return}let i=this.readFromStorage(),o=(i[this.userSalt]??[]).filter(K(this.params.config.storageExpiration));C.set(L,JSON.stringify({...i,[this.userSalt]:[...o,e]}))}getFromStorage(){return this.userSalt?(this.readFromStorage()[this.userSalt]??[]).filter(K(this.params.config.storageExpiration)):this.unsaltedStorage}markStorageSent(){if(!this.userSalt){this.unsaltedStorage=[];return}let e=this.readFromStorage();delete e[this.userSalt],C.set(L,JSON.stringify(e))}housekeepStorage(){let e=this.readFromStorage();for(let[i,t]of Object.entries(e)){let o=t.filter(K(this.params.config.storageExpiration));o.length?e[i]=o:delete e[i],this.loggerDebugLog({message:`${t.length} retrieved from storage, ${o.length} of them actual`})}C.set(L,JSON.stringify(e))}log(e){this.addToStorage(e),!this.isPaused&&(this.isUrgent(e)?this.flush():this.lastVsid!==e.custom.vsid?this.firstFlush():this.debouncedFlush(),this.lastVsid=e.custom.vsid)}flush(e=!1){let i=this.getFromStorage();i.length!==0&&(this.api.authorized$.getValue()?(e&&this.params.config.useBeacon?(this.loggerDebugLog({message:`Flushing ${i.length} events through beacon`}),this.api.logBeacon(i)):(this.loggerDebugLog({message:`Flushing ${i.length} events`}),this.api.logRequest(i)),this.markStorageSent()):this.api.authorize(),this.firstFlush.cancel(),this.debouncedFlush.cancel())}pause(){this.isPaused=!0,this.debouncedFlush.cancel()}resume(){this.isPaused=!1,this.debouncedFlush()}destroy(){this.subscription.unsubscribe(),this.firstFlush.cancel(),this.debouncedFlush.cancel()}};import{HttpConnectionType as q,Surface as S,VideoFormat as p,VideoQuality as m}from"@vkontakte/videoplayer-core";import{assertNever as de}from"@vkontakte/videoplayer-shared";var ce=r=>r&&{[m.INVARIANT]:"unknown",[m.Q_144P]:"mobile",[m.Q_240P]:"lowest",[m.Q_360P]:"low",[m.Q_480P]:"medium",[m.Q_720P]:"high",[m.Q_1080P]:"fullhd",[m.Q_1440P]:"quadhd",[m.Q_2160P]:"ultrahd",[m.Q_4320P]:"unknown"}[r],z=r=>r&&{[q.HTTP1]:"http1",[q.HTTP2]:"http2",[q.QUIC]:"http3"}[r],ue=r=>{if(r!==void 0)switch(r){case p.MPEG:return"mp4";case p.DASH:case p.DASH_LIVE:case p.DASH_STREAMS:return"dash";case p.DASH_SEP:return"dash_sep";case p.DASH_ONDEMAND:return"ondemand_dash";case p.DASH_WEBM:case p.DASH_LIVE_WEBM:return"webm";case p.DASH_WEBM_AV1:return"av1";case p.DASH_LIVE_CMAF:return"ondemand_dash_live";case p.HLS:case p.HLS_LIVE:return"hls";case p.HLS_ONDEMAND:return"ondemand_hls";case p.HLS_LIVE_CMAF:return"ondemand_hls_live";case p.WEB_RTC_LIVE:return"webrtc";default:return de(r)}},R=r=>{if(r!==void 0)switch(r){case S.NONE:case S.INLINE:return;case S.FULLSCREEN:return"fullscreen";case S.SECOND_SCREEN:return"chromecast";case S.PIP:return"pip";case S.INVISIBLE:return"invisible";default:return de(r)}},le=r=>{switch(r){case"slow-2g":return"poor";case"2g":return"poor";case"3g":return"good";case"4g":return"excellent"}};var D=class{constructor(e){this.offset=void 0;this.offset=e}getOffset(){return this.offset??0}setOffset(e){this.offset=e}now(){return Date.now()+(this.offset??0)}date(e=new Date){return e.setTime(e.getTime()+(this.offset??0)),e}addServerTime(e,i){let t=Date.now(),o=e-t-i/2;if(Math.abs(o)<1e3){this.offset=0;return}this.offset===void 0?this.offset=Math.round(o):this.offset=Math.round(.2*o+(1-.2)*this.offset)}};var pe=()=>Math.floor(Math.random()*4294967296).toString(36).padStart(7,"0"),he=()=>Math.floor(Math.random()*18446744073709552e3).toString(36).padStart(13,"0");import{PlaybackState as fe}from"@vkontakte/videoplayer-core";import{filter as ge,filterChanged as De,fromEvent as Oe,isNullable as me,map as Ne,merge as Q,Observable as Me,Subject as j,Subscription as Be,ValueSubject as Fe}from"@vkontakte/videoplayer-shared";var be=(r,e)=>new Me(i=>{let t=new Be,o=Q(Oe(window,"beforeunload"),r.events.willDestruct$),n=new Fe(void 0),a;t.add(r.info.isLive$.pipe(De()).subscribe(v=>{a&&(a.unsubscribe(),n.next(void 0)),v?a=r.info.liveTime$.pipe(Ne(N=>N&&N/1e3)).subscribe(n):a=r.info.position$.subscribe(n),t.add(a)}));let{playing$:c,paused$:l}=r.events,u=r.events.willSeek$.pipe(ge(()=>r.info.playbackState$.getValue()===fe.PLAYING)),h=r.events.seeked$.pipe(ge(()=>r.info.playbackState$.getValue()===fe.PLAYING)),g=!1,s=new j;t.add(u.subscribe(()=>{g||s.next(),g=!0})),t.add(h.subscribe(()=>g=!1));let d=new j,f=new j,P=Q(c,h,d),T=Q(l,s,o,r.events.looped$,f),_,Ee=()=>_=n.getValue(),Ae=()=>{let v=n.getValue();me(_)||_===v||me(v)||(i.next({from:_,to:v}),_=void 0)},xe=()=>{f.next(),d.next()};if(t.add(P.subscribe(Ee)),t.add(T.subscribe(Ae)),e.forceInterval&&isFinite(e.forceInterval)){let v=0;t.add(P.subscribe(()=>v=window.setTimeout(xe,e.forceInterval))),t.add(T.subscribe(()=>window.clearTimeout(v)))}return t});var _e="_one-stat_",ye=`${_e}uuid`,Pe=`${_e}deviceId`,Y=()=>{let r=new X;return{subscription:r,subscribe:(e,i)=>{e&&r.add(e.subscribe(i))}}},J=class{constructor(e,i){this.subscription=new X;this.debugLogger=new qe;this.oneStatDebugLog=this.debugLogger.createComponentLog("onestat");this.loopCounter=0;this.disabled=!1;this.vsid$=new G(void 0);this.isid$=new G(void 0);this.seekAction$=new G("unknown");this.statContext=e,this.config=se(i.config??{}),y(i.apiEnv)&&(this.config.apiEnv=i.apiEnv),this.config.synchronizeTime&&(this.timeSynchronisation=new D);let t=new Ke;this.experimental={error$:t},O.get(ye)&&O.remove(ye);let n=O.get(Pe);this.statContext.deviceId?this.deviceId=this.statContext.deviceId:n?this.deviceId=n:(this.deviceId=U(),O.set(Pe,this.deviceId)),this.resetViewSession(),i.useIsid&&this.isid$.next(i.isid??he());let a=new x({apiKey:ne,config:this.config,error$:t,timeSynchronisation:this.timeSynchronisation});this.api=new A({config:this.config,apiTransport:a,refreshAuthToken:i.refreshAuthToken,mobile:this.statContext.mobile??!1,deviceId:this.deviceId,error$:t}),this.logger=new $({config:this.config,debugLogger:this.debugLogger,api:this.api,error$:t,userSalt:i.userSalt});let{isEmbed:c,host:l}=ze();this.isEmbed=c,this.embedParent=l,this.subscribe()}updateContext(e){this.statContext={...this.statContext,...e}}attachTo(e){let i=new X,t=(s,d)=>i.add(s.subscribe(d));t(e.events.willStart$,()=>{let s=e.info.position$.getValue();this.logActionPlay({position:s}),this.statContext.projectId&&this.logActionPlayInteractive()}),t(e.events.looped$,()=>{this.resetViewSession(),++this.loopCounter>this.config.maxLoops&&(this.disabled=!0),this.logActionPlay({position:e.info.position$.getValue()})}),t(e.events.seeked$,()=>{this.logSeek({action:this.seekAction$.getValue(),time:e.info.position$.getValue()}),this.seekAction$.next("unknown")}),t(e.events.paused$,()=>{this.logPause({position:e.info.position$.getValue()})}),t(e.events.willResume$,()=>{this.logPlay()}),t(e.events.started$,()=>{this.statContext.clip&&this.logWatchCoverageRecord({start:0,end:0})}),t(e.events.playing$,()=>{this.logPlaying()}),t(be(e,{forceInterval:this.config.watchCoverageInterval}),s=>{let d=e.info.isLive$.getValue(),f={start:parseFloat(s.from.toFixed(3)),end:parseFloat(s.to.toFixed(3))};d?this.logWatchCoverageLive(f):this.logWatchCoverageRecord(f)});let o;t(e.info.isStalled$,s=>{s?o=b():(y(o)&&this.logEmptyBuffer({duration:b()-o}),o=void 0)});let n=!1;i.add(e.events.fatalError$.pipe(We()).subscribe(()=>n=!0)),t(e.events.willStop$,()=>{if(e.info.isStalled$.getValue()){let d=y(o)?b()-o:void 0;this.logCloseAtEmptyBuffer({duration:d??0}),o=void 0}else n||this.logActionStop()}),t(e.events.managedError$,({id:s})=>{this.logError({fatal:!1,errorType:s})}),t(e.events.fatalError$,({id:s})=>{this.logError({fatal:!0,errorType:s})});let a,c,l=!1;t(e.events.firstBytes$,s=>{a=b(),this.logFirstBytes({time:s})}),t(e.events.willStart$,()=>c=b()),t(e.info.currentBuffer$,s=>{!l&&s&&s.end-s.start>0&&y(a)&&(this.logPlayerReady({duration:b()-a}),l=!0)}),t(e.events.firstFrame$,()=>{y(a)&&!l&&(this.logPlayerReady({duration:b()-a}),l=!0),y(c)&&this.logFirstFrame({time:b()-c})});let u;t(e.info.currentVideoStream$,s=>{s&&(u&&s.id!==u&&this.logTrackSwitch(s),u=s.id)});let h;t(e.info.currentAudioStream$,s=>{s&&(h&&s.id!==h&&this.logTrackSwitch(s),h=s.id)}),t(e.info.atLiveEdge$,s=>this.updateContext({liveEdge:s})),t(ve({muted:e.info.muted$,volume:e.info.volume$}),({muted:s,volume:d})=>this.updateContext({audible:!s&&d>0})),t(e.info.currentQuality$,s=>this.updateContext({quality:ce(s)})),t(e.info.isAutoQualityEnabled$,s=>this.updateContext({autoQuality:s})),t(e.info.currentFormat$,s=>this.updateContext({contentType:ue(s)})),t(e.info.currentPlaybackRate$,s=>this.updateContext({rate:s})),t(e.info.is3DVideo$,s=>this.updateContext({is3d:s}));let g;return t(e.info.hostname$,s=>{let d=g!==void 0&&g!==s;this.updateContext({cdnHostname:s,failover:d}),d&&this.logFailover(s),g=s}),t(e.info.throughputEstimation$,s=>this.updateContext({downloadSpeed:s})),t(e.info.httpConnectionType$,s=>{this.statContext.firstConnectionType||this.updateContext({firstConnectionType:z(s)}),this.updateContext({connectionType:z(s)})}),t(e.info.httpConnectionReused$,s=>{Se(this.statContext.firstConnectionReused)&&this.updateContext({firstConnectionReused:s}),this.updateContext({connectionReused:s})}),t(e.info.surface$,s=>this.updateContext({mode:R(s)})),t(ve({current:e.info.currentTextTrack$,available:e.info.availableTextTracks$}),({current:s,available:d})=>{let f=d.find(({id:T})=>T===s),P=f&&(f.isAuto?`${f.language}_auto`:f.language);this.updateContext({subtitles:P})}),this.player=e,this.uiEvents&&this.attachToUi(this.uiEvents),this.resubscribeBeforeunload(),this.subscription.add(i),i}attachToUi(e){this.uiEvents=e;let{subscription:i,subscribe:t}=Y();return this.player&&(t(e.actionRewind$,()=>{this.player&&(this.resetViewSession(),this.logActionPlay({position:this.player.info.position$.getValue()}))}),t(e.actionSeek$,this.seekAction$),t(e.inPiP$,o=>{let n=o?"pip":R(this.player?.info.surface$.getValue());this.updateContext({mode:n})}),t(e.inFullscreen$,o=>{let n=o?"fullscreen":R(this.player?.info.surface$.getValue());this.updateContext({mode:n})}),t(e.actionSetSubtitle$,o=>this.updateContext({subtitles:o})),t(e.nextMovie$,o=>this.logNextMovie(o)),this.resubscribeBeforeunload(),this.subscription.add(i)),i}attachToAds(e){let{subscription:i,subscribe:t}=Y();return t(e.slotRequested$,()=>this.logAdSlotRequest()),t(e.started$,o=>this.logAdStarted(o)),t(e.paused$,()=>this.logAdPaused()),t(e.resumed$,()=>this.logAdResumed()),t(e.ended$,()=>this.logAdEnded()),t(e.skipped$,()=>this.logAdSkipped()),t(e.clicked$,()=>this.logAdClicked()),this.resubscribeBeforeunload(),this.subscription.add(i),i}attachToInteractive(e){let{subscription:i,subscribe:t}=Y();return t(e.click$,o=>this.logInterfaceClick(o)),t(e.nextMovie$,o=>this.logNextMovie(o)),this.resubscribeBeforeunload(),this.subscription.add(i),i}authorize(e){return this.api.authorize(e)}pause(){this.logger.pause(),this.oneStatDebugLog({message:"paused"})}resume(){this.logger.resume(),this.oneStatDebugLog({message:"resumed"})}destroy(){this.logger.flush(),this.subscription.unsubscribe(),this.api.destroy(),this.logger.destroy()}resetViewSession(){this.oneStatDebugLog({message:"VSID reset"}),this.vsid$.next(pe())}getDeviceId(){return this.deviceId}setFieldBlacklist(){}logInited(){}logReady(e){this.log({operation:"player_ready",param:String(e.time)})}logStarted(...e){this.logActionPlay(...e)}logPlay(){this.log({operation:"play_toggle"})}logPlaying(){this.log({operation:"playing"})}logPause(e){this.log({operation:"pause",param:String(Math.round(e.position))})}logSeek(e){this.log({operation:"seek",param:e.action,time:e.time})}logFirstBytes(e){this.log({operation:"first_bytes",param:String(e.time)})}logFirstFrame(e){this.log({operation:"first_frame",param:String(e.time)})}logError(e){this.log({operation:"content_error",param:`${e.fatal?"fatal":"recoverable"}_${e.errorType}`})}logWatchCoverageRecord(e){this.log({operation:"watch_coverage_record",param:`${e.start}-${e.end}`},{in_history:this.statContext.inHistory?1:void 0})}logWatchCoverageLive(e){let i=this.timeSynchronisation?.getOffset()??0,t=e.start+i,o=e.end+i;this.log({operation:"watch_coverage_live",param:`${t}-${o}`},{in_history:this.statContext.inHistory?1:void 0})}logEmptyBuffer(e){this.log({operation:"empty_buffer",param:String(e.duration)})}logDownloadSpeed(){}logAdSlotRequest(){this.log({operation:"adv",param:"slot_request"})}logAdStarted(e){this.log({operation:"adv",param:e})}logAdPaused(){this.log({operation:"adv",param:"pause"})}logAdResumed(){this.log({operation:"adv",param:"resume"})}logAdEnded(){this.log({operation:"adv",param:"ended"})}logAdSkipped(){this.log({operation:"adv",param:"skip"})}logAdClicked(){this.log({operation:"adv",param:"click"})}logInterfaceClick(e){this.log({operation:"player_interface_click",param:e})}logNextMovie(e){this.log({operation:"next_movie",param:String(e)})}subscribe(){this.resubscribeBeforeunload();let e=window.navigator.connection;e&&"onchange"in e&&"effectiveType"in e&&this.subscription.add(Ue(Ie(e,"change"),He(["init"])).subscribe(()=>this.updateContext({network:le(e.effectiveType)}))),this.config.debugLog&&this.debugLogger.log$.subscribe(i=>{console.debug("%c stat ","background:#fa6470;",`component: ${i.component}.`,i.message)})}resubscribeBeforeunload(){this.beforeunloadSubscription?.unsubscribe(),this.beforeunloadSubscription=Ie(window,"beforeunload").subscribe(()=>this.logger.flush(!0)),this.subscription.add(this.beforeunloadSubscription)}logPlayerReady(e){this.log({operation:"player_ready",param:String(Math.round(e.duration))})}logActionPlay(e){this.log({operation:"action_play",param:String(Math.round(e.position))})}logActionPlayInteractive(){this.statContext.projectId&&this.log({operation:"action_play_interactive",param:String(this.statContext.movieId)},{vid:this.statContext.projectId})}logFailover(e){this.log({operation:"failover",param:e})}logCloseAtEmptyBuffer(e){this.log({operation:"close_at_empty_buffer",param:String(Math.round(e.duration))})}logActionStop(){this.log({operation:"action_stop"})}logTrackSwitch(e){this.log({operation:"track_switch",param:e.id})}log(e,i={}){if(this.disabled){this.oneStatDebugLog({message:`operation ${e.operation} but statistics is disabled`});return}if(this.config.disabledOperations.includes(e.operation)){this.oneStatDebugLog({message:`operation ${e.operation} but it is disabled`});return}this.oneStatDebugLog({message:`operation ${e.operation} ${e.param}`});let t=this.createLogItem(e,i);this.logger.log(t)}createLogItem({operation:e,param:i,time:t},o={}){let n=this.timeSynchronisation?.now()??b(),a=this.vsid$.getValue();Ve(a);let c=this.isid$.getValue(),l=e==="empty_buffer"||e==="close_at_empty_buffer"?this.statContext.connectionType:this.statContext.firstConnectionType,u=this.statContext.firstConnectionReused,h,g;if(this.isEmbed){h=this.embedParent;let d=[...new URLSearchParams(location.search).entries()].filter(([f,P])=>this.config.embedUrlParams.includes(f));g=new URLSearchParams(d).toString()}else this.statContext.place==="direct"&&((this.statContext.refDomain||document.referrer)&&(h=new URL(this.statContext.refDomain||document.referrer).hostname),g=location.href.substring(0,1024));let s={vsid:a,isid:c,vid:this.statContext.movieId,ct:this.statContext.contentType,place:this.isEmbed?"embed":this.statContext.place,quality:this.statContext.quality,cdn_host:this.statContext.cdnHostname,stat_type:this.statContext.autoplay===!0?"auto":this.statContext.autoplay===!1?"":void 0,param:i,vk_app_id:this.statContext.vkAppId,track_code:this.statContext.trackCode,connection_type:l,connection_reused:u===!0?1:u===!1?0:void 0,cached_data:this.statContext.cached===!0?1:this.statContext.cached===!1?0:void 0,live:this.statContext.liveEdge?1:void 0,muted:this.statContext.audible===!1?1:void 0,mode:this.statContext.mode,subtitles:this.statContext.subtitles,download_speed:this.statContext.downloadSpeed,manual_quality:this.statContext.autoQuality?void 0:1,ref_domain:h,direct_url:g,rate:this.statContext.rate===1||Se(this.statContext.rate)?void 0:this.statContext.rate.toFixed(2),view_360:this.statContext.is3d?1:void 0,aid:this.statContext.albumId,vk_playlist_id:this.statContext.vkPlaylistId,...o};for(let d of this.config.disabledCustomFields)delete s[d];return{operation:e,type:1,time:t,network:this.statContext.network,timestamp:n,custom:s}}};export{E as ApiEnv,F as ConnectionType,B as ContentType,Z as InteractiveInterfaceClick,J as OneStat,M as Quality,V as SeekAction,w as VERSION};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vkontakte/videoplayer-statistics",
3
- "version": "1.0.54-dev.cf4e48ed.0",
3
+ "version": "1.0.54-dev.e8d7fe49.0",
4
4
  "author": "vk.com",
5
5
  "description": "Statistics library for vk.com videoplayer",
6
6
  "homepage": "https://vk.com",
@@ -49,9 +49,9 @@
49
49
  "**/*.d.ts"
50
50
  ],
51
51
  "dependencies": {
52
- "@vkontakte/videoplayer-shared": "^1.0.39"
52
+ "@vkontakte/videoplayer-shared": "1.0.40-dev.15d093cb.0"
53
53
  },
54
54
  "peerDependencies": {
55
- "@vkontakte/videoplayer-core": "2.0.108-dev.377c6d18.0"
55
+ "@vkontakte/videoplayer-core": "2.0.108-dev.3ff897f5.0"
56
56
  }
57
57
  }