@junobuild/analytics
Version:
Tracker for Juno analytics
3 lines (2 loc) • 5.78 kB
JavaScript
import"./chunk-YVLJX3HV.js";var D=-1,m=t=>{addEventListener("pageshow",(e=>{e.persisted&&(D=e.timeStamp,t(e))}),!0)},l=(t,e,i,n)=>{let r,s;return a=>{e.value>=0&&(a||n)&&(s=e.value-(r??0),(s||r===void 0)&&(r=e.value,e.delta=s,e.rating=((o,d)=>o>d[1]?"poor":o>d[0]?"needs-improvement":"good")(e.value,i),t(e)))}},I=t=>{requestAnimationFrame((()=>requestAnimationFrame((()=>t()))))},F=()=>{let t=performance.getEntriesByType("navigation")[0];if(t&&t.responseStart>0&&t.responseStart<performance.now())return t},f=()=>F()?.activationStart??0,h=(t,e=-1)=>{let i=F(),n="navigate";return D>=0?n="back-forward-cache":i&&(document.prerendering||f()>0?n="prerender":document.wasDiscarded?n="restore":i.type&&(n=i.type.replace(/_/g,"-"))),{name:t,value:e,rating:"good",delta:0,entries:[],id:`v5-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,navigationType:n}},C=new WeakMap;function M(t,e){return C.get(t)||C.set(t,new e),C.get(t)}var b=class{t;i=0;o=[];h(e){if(e.hadRecentInput)return;let i=this.o[0],n=this.o.at(-1);this.i&&i&&n&&e.startTime-n.startTime<1e3&&e.startTime-i.startTime<5e3?(this.i+=e.value,this.o.push(e)):(this.i=e.value,this.o=[e]),this.t?.(e)}},v=(t,e,i={})=>{try{if(PerformanceObserver.supportedEntryTypes.includes(t)){let n=new PerformanceObserver((r=>{Promise.resolve().then((()=>{e(r.getEntries())}))}));return n.observe({type:t,buffered:!0,...i}),n}}catch{}},k=t=>{let e=!1;return()=>{e||(t(),e=!0)}},p=-1,_=new Set,B=()=>document.visibilityState!=="hidden"||document.prerendering?1/0:0,L=t=>{if(document.visibilityState==="hidden"){if(t.type==="visibilitychange")for(let e of _)e();isFinite(p)||(p=t.type==="visibilitychange"?t.timeStamp:0,removeEventListener("prerenderingchange",L,!0))}},T=()=>{if(p<0){let t=f();p=(document.prerendering?void 0:globalThis.performance.getEntriesByType("visibility-state").filter((i=>i.name==="hidden"&&i.startTime>t))[0]?.startTime)??B(),addEventListener("visibilitychange",L,!0),addEventListener("prerenderingchange",L,!0),m((()=>{setTimeout((()=>{p=B()}))}))}return{get firstHiddenTime(){return p},onHidden(t){_.add(t)}}},y=t=>{document.prerendering?addEventListener("prerenderingchange",(()=>t()),!0):t()},H=[1800,3e3],z=(t,e={})=>{y((()=>{let i=T(),n,r=h("FCP"),s=v("paint",(a=>{for(let o of a)o.name==="first-contentful-paint"&&(s.disconnect(),o.startTime<i.firstHiddenTime&&(r.value=Math.max(o.startTime-f(),0),r.entries.push(o),n(!0)))}));s&&(n=l(t,r,H,e.reportAllChanges),m((a=>{r=h("FCP"),n=l(t,r,H,e.reportAllChanges),I((()=>{r.value=performance.now()-a.timeStamp,n(!0)}))})))}))},x=[.1,.25],K=(t,e={})=>{let i=T();z(k((()=>{let n,r=h("CLS",0),s=M(e,b),a=d=>{for(let c of d)s.h(c);s.i>r.value&&(r.value=s.i,r.entries=s.o,n())},o=v("layout-shift",a);o&&(n=l(t,r,x,e.reportAllChanges),i.onHidden((()=>{a(o.takeRecords()),n(!0)})),m((()=>{s.i=0,r=h("CLS",0),n=l(t,r,x,e.reportAllChanges),I((()=>n()))})),setTimeout(n))})))},W=0,P=1/0,g=0,G=t=>{for(let e of t)e.interactionId&&(P=Math.min(P,e.interactionId),g=Math.max(g,e.interactionId),W=g?(g-P)/7+1:0)},S,q=()=>S?W:performance.interactionCount??0,J=()=>{"interactionCount"in performance||S||(S=v("event",G,{type:"event",buffered:!0,durationThreshold:0}))},R=0,E=class{u=[];l=new Map;m;p;v(){R=q(),this.u.length=0,this.l.clear()}L(){let e=Math.min(this.u.length-1,Math.floor((q()-R)/50));return this.u[e]}h(e){if(this.m?.(e),!e.interactionId&&e.entryType!=="first-input")return;let i=this.u.at(-1),n=this.l.get(e.interactionId);if(n||this.u.length<10||e.duration>i.P){if(n?e.duration>n.P?(n.entries=[e],n.P=e.duration):e.duration===n.P&&e.startTime===n.entries[0].startTime&&n.entries.push(e):(n={id:e.interactionId,entries:[e],P:e.duration},this.l.set(n.id,n),this.u.push(n)),this.u.sort(((r,s)=>s.P-r.P)),this.u.length>10){let r=this.u.splice(10);for(let s of r)this.l.delete(s.id)}this.p?.(n)}}},j=t=>{let e=globalThis.requestIdleCallback||setTimeout;document.visibilityState==="hidden"?t():(t=k(t),addEventListener("visibilitychange",t,{once:!0,capture:!0}),e((()=>{t(),removeEventListener("visibilitychange",t,{capture:!0})})))},N=[200,500],Q=(t,e={})=>{if(!globalThis.PerformanceEventTiming||!("interactionId"in PerformanceEventTiming.prototype))return;let i=T();y((()=>{J();let n,r=h("INP"),s=M(e,E),a=d=>{j((()=>{for(let u of d)s.h(u);let c=s.L();c&&c.P!==r.value&&(r.value=c.P,r.entries=c.entries,n())}))},o=v("event",a,{durationThreshold:e.durationThreshold??40});n=l(t,r,N,e.reportAllChanges),o&&(o.observe({type:"first-input",buffered:!0}),i.onHidden((()=>{a(o.takeRecords()),n(!0)})),m((()=>{s.v(),r=h("INP"),n=l(t,r,N,e.reportAllChanges)})))}))},w=class{m;h(e){this.m?.(e)}},O=[2500,4e3],U=(t,e={})=>{y((()=>{let i=T(),n,r=h("LCP"),s=M(e,w),a=d=>{e.reportAllChanges||(d=d.slice(-1));for(let c of d)s.h(c),c.startTime<i.firstHiddenTime&&(r.value=Math.max(c.startTime-f(),0),r.entries=[c],n())},o=v("largest-contentful-paint",a);if(o){n=l(t,r,O,e.reportAllChanges);let d=k((()=>{a(o.takeRecords()),o.disconnect(),n(!0)})),c=u=>{u.isTrusted&&(j(d),removeEventListener(u.type,c,{capture:!0}))};for(let u of["keydown","click","visibilitychange"])addEventListener(u,c,{capture:!0});m((u=>{r=h("LCP"),n=l(t,r,O,e.reportAllChanges),I((()=>{r.value=performance.now()-u.timeStamp,n(!0)}))}))}}))},$=[800,1800],A=t=>{document.prerendering?y((()=>A(t))):document.readyState!=="complete"?addEventListener("load",(()=>A(t)),!0):setTimeout(t)},V=(t,e={})=>{let i=h("TTFB"),n=l(t,i,$,e.reportAllChanges);A((()=>{let r=F();r&&(i.value=Math.max(r.responseStart-f(),0),i.entries=[r],n(!0),m((()=>{i=h("TTFB",0),n=l(t,i,$,e.reportAllChanges),n(!0)})))}))};export{x as CLSThresholds,H as FCPThresholds,N as INPThresholds,O as LCPThresholds,$ as TTFBThresholds,K as onCLS,z as onFCP,Q as onINP,U as onLCP,V as onTTFB};
//# sourceMappingURL=web-vitals-6ZNYHHDJ.js.map