UNPKG

@junobuild/analytics

Version:

Tracker for Juno analytics

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