UNPKG

next

Version:

The React Framework

1 lines • 16.4 kB
(function(){"use strict";var a={};!function(){a.d=function(S,I){for(var C in I){if(a.o(I,C)&&!a.o(S,C)){Object.defineProperty(S,C,{enumerable:true,get:I[C]})}}}}();!function(){a.o=function(a,S){return Object.prototype.hasOwnProperty.call(a,S)}}();!function(){a.r=function(a){if(typeof Symbol!=="undefined"&&Symbol.toStringTag){Object.defineProperty(a,Symbol.toStringTag,{value:"Module"})}Object.defineProperty(a,"__esModule",{value:true})}}();if(typeof a!=="undefined")a.ab=__dirname+"/";var S={};a.r(S);a.d(S,{CLSThresholds:function(){return j},FCPThresholds:function(){return B},INPThresholds:function(){return Q},LCPThresholds:function(){return X},TTFBThresholds:function(){return tt},onCLS:function(){return F},onFCP:function(){return _},onINP:function(){return R},onLCP:function(){return z},onTTFB:function(){return K}});class t{t;o=0;i=[];l(a){if(a.hadRecentInput)return;const S=this.i[0],I=this.i.at(-1);this.o&&S&&I&&a.startTime-I.startTime<1e3&&a.startTime-S.startTime<5e3?(this.o+=a.value,this.i.push(a)):(this.o=a.value,this.i=[a]),this.t?.(a)}}const n=()=>{const a=performance.getEntriesByType("navigation")[0];if(a&&a.responseStart>0&&a.responseStart<performance.now())return a},e=a=>{if("loading"===document.readyState)return"loading";const S=n();if(S){if(a<S.domInteractive)return"loading";if(0===S.domContentLoadedEventStart||a<S.domContentLoadedEventStart)return"dom-interactive";if(0===S.domComplete||a<S.domComplete)return"dom-content-loaded"}return"complete"},o=a=>{const S=a.nodeName;return 1===a.nodeType?S.toLowerCase():S.toUpperCase().replace(/^#/,"")},i=a=>{let S="";try{for(;9!==a?.nodeType;){const I=a,C=I.id?"#"+I.id:[o(I),...Array.from(I.classList??[]).sort()].join(".");if(S.length+C.length>99)return S||C;if(S=S?C+">"+S:C,I.id)break;a=I.parentNode}}catch{}return S},I=new WeakMap;function r(a,S){let C=I.get(S);return C||(C=new WeakMap,I.set(S,C)),C.get(a)||C.set(a,new S),C.get(a)}let C=-1;const c=()=>C,f=a=>{addEventListener("pageshow",(S=>{S.persisted&&(C=S.timeStamp,a(S))}),!0)},l=(a,S,I,C)=>{let L,x;return B=>{S.value>=0&&(B||C)&&(x=S.value-(L??0),(x||void 0===L)&&(L=S.value,S.delta=x,S.rating=((a,S)=>a>S[1]?"poor":a>S[0]?"needs-improvement":"good")(S.value,I),a(S)))}},u=a=>{requestAnimationFrame((()=>requestAnimationFrame((()=>a()))))},d=()=>n()?.activationStart??0;let L=-1;const x=new Set,v=()=>"hidden"!==document.visibilityState||document.prerendering?1/0:0,p=a=>{if("hidden"===document.visibilityState){if("visibilitychange"===a.type)for(const a of x)a();isFinite(L)||(L="visibilitychange"===a.type?a.timeStamp:0,removeEventListener("prerenderingchange",p,!0))}},m=(a=!1)=>{if(a&&(L=1/0),L<0){const a=d(),S=document.prerendering?void 0:globalThis.performance.getEntriesByType("visibility-state").find((S=>"hidden"===S.name&&S.startTime>=a))?.startTime;L=S??v(),addEventListener("visibilitychange",p,!0),addEventListener("prerenderingchange",p,!0),f((()=>{setTimeout((()=>{L=v()}))}))}return{get firstHiddenTime(){return L},onHidden(a){x.add(a)}}},y=(a,S=-1,I,C=0,L,x,B)=>{const j=n(),H=j?.navigationId||0;let $="navigate";I?$=I:c()>=0?$="back-forward-cache":j&&(document.prerendering||d()>0?$="prerender":document.wasDiscarded?$="restore":j.type&&($=j.type.replace(/_/g,"-")));return{name:a,value:S,rating:"good",delta:0,entries:[],id:`v6-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,navigationType:$,navigationId:C||H,navigationInteractionId:L,navigationURL:x||j?.name,navigationStartTime:B||0}},b=(a,S,I={})=>{try{const C=a.filter((a=>PerformanceObserver.supportedEntryTypes.includes(a)));if(C.length>0){const a=new PerformanceObserver((a=>{queueMicrotask((()=>{const I=a.getEntries();C.length>1&&I.sort(((a,S)=>a.startTime+a.duration-(S.startTime+S.duration))),S(I)}))}));for(const S of C)a.observe({type:S,buffered:!0,...I});return a}}catch{}},M=a=>globalThis.PerformanceObserver?.supportedEntryTypes?.includes("soft-navigation")&&"function"==typeof globalThis.PerformanceSoftNavigation?.prototype?.getLargestInteractionContentfulPaint&&a&&a.reportSoftNavs,T=(a,S)=>{if(a.set(S.navigationId,S),a.size>2){const S=a.keys().next().value;void 0!==S&&a.delete(S)}},E=a=>{let S=!1;return()=>{S||(a(),S=!0)}};class D{u}const w=a=>{document.prerendering?addEventListener("prerenderingchange",a,!0):a()},B=[1800,3e3],k=(a,S={})=>{const I=M(S);w((()=>{const C=r(S,D),L=m();let x,j=y("FCP");const H=b(["paint"],(a=>{for(const S of a)"first-contentful-paint"===S.name&&(H.disconnect(),S.startTime<L.firstHiddenTime&&(j.value=Math.max(S.startTime-d(),0),j.entries.push(S),j.navigationId=S.navigationId||j.navigationId,x(!0)))}));if(H&&(x=l(a,j,B,S.reportAllChanges),f((I=>{j=y("FCP",-1,"back-forward-cache",j.navigationId,j.navigationInteractionId,j.navigationURL,c()),x=l(a,j,B,S.reportAllChanges),u((()=>{j.value=performance.now()-I.timeStamp,x(!0)}))}))),I){b(["soft-navigation"],(I=>{I.forEach((I=>{C.u&&I.navigationId&&T(C.u,I);const L=Math.max((I.presentationTime||I.paintTime||0)-I.startTime,0);j=y("FCP",L,"soft-navigation",I.navigationId,I.interactionId,I.name,I.startTime),x=l(a,j,B,S.reportAllChanges),x(!0)}))}),S)}}))},j=[.1,.25],P=a=>a.find((a=>1===a.node?.nodeType))||a[0],F=(a,S={})=>{const I=r(S=Object.assign({},S),t),C=new WeakMap;I.t=a=>{if(a?.sources?.length){const I=P(a.sources),L=I?.node;if(L){const a=S.generateTarget?.(L)??i(L);C.set(I,a)}}};((a,S={})=>{const I=m();k(E((()=>{let C,L=y("CLS",0);const x=r(S,t),d=(I,B,H,$,V)=>{L=y("CLS",0,I,B,H,$,V),x.o=0,C=l(a,L,j,S.reportAllChanges)},h=(a=!1)=>{x.o>L.value&&(L.value=x.o,L.entries=x.i),C(a)},g=a=>{h(!0),d("soft-navigation",a.navigationId,a.interactionId,a.name,a.startTime)},v=a=>{for(const S of a)"soft-navigation"!==S.entryType?x.l(S):g(S);h()},B=["layout-shift"];M(S)&&B.push("soft-navigation");const H=b(B,v);H&&(C=l(a,L,j,S.reportAllChanges),I.onHidden((()=>{v(H.takeRecords()),C(!0)})),f((()=>{d("back-forward-cache",L.navigationId,L.navigationInteractionId,L.navigationURL,c()),u(C)})),setTimeout(C))})))})((S=>{a((a=>{let S={};if(a.entries.length){const I=a.entries.reduce(((a,S)=>a.value>S.value?a:S));if(I?.sources?.length){const a=P(I.sources);a&&(S={largestShiftTarget:C.get(a),largestShiftTime:I.startTime,largestShiftValue:I.value,largestShiftSource:a,largestShiftEntry:I,loadState:e(I.startTime)})}}return Object.assign(a,{attribution:S})})(S))}),S)},_=(a,S={})=>{const I=r(S=Object.assign({},S),D);M(S)&&(I.u=new Map);k((S=>{a((a=>{let S={timeToFirstByte:0,firstByteToFCP:a.value,loadState:e(c())};if("soft-navigation"!==a.navigationType){if(a.entries.length){const I=n(),C=a.entries.at(-1);if(I){const L=I.responseStart,x=I.activationStart||0,B=Math.max(0,L-x);S={timeToFirstByte:B,firstByteToFCP:a.value-B,loadState:e(a.entries[0].startTime),navigationEntry:I,fcpEntry:C}}}}else{const C=I.u?.get(a.navigationId);C&&(S={timeToFirstByte:0,firstByteToFCP:a.value,loadState:"complete",navigationEntry:C})}return Object.assign(a,{attribution:S})})(S))}),S)};let H=0,$=1/0,V=0;const O=a=>{for(const S of a)S.interactionId&&($=Math.min($,S.interactionId),V=Math.max(V,S.interactionId),H=V?(V-$)/7+1:0)};let G;const A=()=>G?H:performance.interactionCount??0,N=()=>{"interactionCount"in performance||G||(G=b(["event"],O,{durationThreshold:0}))};class q{h=0;v=[];p=new Map;m;M;T(){return A()-this.h}D(){this.h=A(),this.v.length=0,this.p.clear()}S(a){const S=this.T(),I=Math.min(this.v.length-1,Math.floor(S/50));return!S||-1!==I||"soft-navigation"!==a&&"back-forward-cache"!==a?this.v[I]:{k:8,id:-1,entries:[]}}l(a){if(this.m?.(a),!a.interactionId)return;const S=this.v.at(-1);let I=this.p.get(a.interactionId);if(I||this.v.length<10||a.duration>S.k){if(I?a.duration>I.k?(I.entries=[a],I.k=a.duration):a.duration===I.k&&a.startTime===I.entries[0].startTime&&I.entries.push(a):(I={id:a.interactionId,entries:[a],k:a.duration},this.p.set(I.id,I),this.v.push(I)),this.v.sort(((a,S)=>S.k-a.k)),this.v.length>10){const a=this.v.splice(10);for(const S of a)this.p.delete(S.id)}this.M?.(I)}}}const W=a=>{const S="requestIdleCallback"in globalThis?1e3:0,I=globalThis.requestIdleCallback||setTimeout,C=globalThis.cancelIdleCallback||clearTimeout;if("hidden"===document.visibilityState)a();else{const L=E(a);let x=-1;const r=()=>{C(x),L()};addEventListener("visibilitychange",r,{once:!0,capture:!0}),x=I((()=>{removeEventListener("visibilitychange",r,{capture:!0}),L()}),{timeout:S})}},Q=[200,500],R=(a,S={})=>{const I=r(S=Object.assign({},S),q);let C=[],L=[],x=0;const B=new WeakMap,j=new WeakMap;let H=!1;const v=()=>{H||(W(p),H=!0)},p=()=>{const a=new Set(I.v.map((a=>B.get(a.entries[0])))),S=L.length-10;L=L.filter(((I,C)=>C>=S||a.has(I)));const j=new Set;for(const a of L){const S=T(a.startTime,a.processingEnd);for(const a of S)j.add(a)}C=C.filter((a=>a.startTime>x||j.has(a))),H=!1};I.m=a=>{const I=a.startTime+a.duration;let C;x=Math.max(x,a.processingEnd);for(let x=L.length-1;x>=0;x--){const B=L[x];if(Math.abs(I-B.renderTime)<=8){C=B,C.startTime=Math.min(a.startTime,C.startTime),C.processingStart=Math.min(a.processingStart,C.processingStart),C.processingEnd=Math.max(a.processingEnd,C.processingEnd),S.includeProcessedEventEntries&&C.entries.push(a);break}}C||(C={startTime:a.startTime,processingStart:a.processingStart,processingEnd:a.processingEnd,renderTime:I,entries:S.includeProcessedEventEntries?[a]:[]},L.push(C)),a.interactionId&&B.set(a,C),v()},I.M=a=>{if(!j.get(a)){const I=a.entries.find((a=>a.target))?.target;if(I){const C=S.generateTarget?.(I)??i(I);j.set(a,C)}else{const S=a.entries.find((a=>a.targetSelector))?.targetSelector;S&&j.set(a,S)}}};const T=(a,S)=>{const I=[];for(const L of C)if(!(L.startTime+L.duration<a)){if(L.startTime>S)break;I.push(L)}return I},E=a=>{if(0===a.entries.length){const S=a.navigationStartTime||0,I={processedEventEntries:[],longAnimationFrameEntries:[],inputDelay:0,processingDuration:0,presentationDelay:a.value,loadState:e(S)};return Object.assign(a,{attribution:I})}const S=a.entries[0],C=B.get(S),L=Math.max(C.processingStart,S.startTime),x=Math.max(S.startTime+S.duration,L),H=Math.min(C.processingEnd,x),$=C.entries.sort(((a,S)=>a.processingStart-S.processingStart)),V=T(S.startTime,H),G=I.p.get(S.interactionId),Q={interactionTarget:j.get(G),interactionType:S.name.startsWith("key")?"keyboard":"pointer",interactionTime:S.startTime,nextPaintTime:x,processedEventEntries:$,longAnimationFrameEntries:V,inputDelay:L-S.startTime,processingDuration:H-L,presentationDelay:x-H,loadState:e(S.startTime),longestScript:void 0,totalScriptDuration:void 0,totalStyleAndLayoutDuration:void 0,totalPaintDuration:void 0,totalUnattributedDuration:void 0};return(a=>{const S=a.interactionTime,I=a.nextPaintTime;if(!a.longAnimationFrameEntries?.length||!S||!I)return;const C=a.inputDelay,L=a.processingDuration;let x,B,j=0,H=0,$=0,V=0;for(const I of a.longAnimationFrameEntries){H=H+I.startTime+I.duration-I.styleAndLayoutStart;for(const a of I.scripts){const I=a.startTime+a.duration;if(I<S)continue;const $=I-Math.max(S,a.startTime),G=a.duration?$/a.duration*a.forcedStyleAndLayoutDuration:0;j+=$-G,H+=G,$>V&&(B=a.startTime<S+C?"input-delay":a.startTime>=S+C+L?"presentation-delay":"processing-duration",x=a,V=$)}}const G=a.longAnimationFrameEntries.at(-1),Q=G?G.startTime+G.duration:0;Q>=S+C+L&&($=I-Q),x&&B&&(a.longestScript={entry:x,subpart:B,intersectingDuration:V}),a.totalScriptDuration=j,a.totalStyleAndLayoutDuration=H,a.totalPaintDuration=$,a.totalUnattributedDuration=I-S-j-H-$})(Q),Object.assign(a,{attribution:Q})};b(["long-animation-frame"],(a=>{C=C.concat(a),v()}),S),((a,S={})=>{if(!globalThis.PerformanceEventTiming||!("interactionId"in PerformanceEventTiming.prototype))return;const I=m();w((()=>{N();let C,L=y("INP");const x=r(S,q),s=(I,B,j,H,$)=>{x.D(),L=y("INP",-1,I,B,j,H,$),C=l(a,L,Q,S.reportAllChanges)},u=()=>{const a=x.S(L.navigationType);a&&a.k!==L.value&&(L.value=a.k,L.entries=a.entries,C())},d=a=>{u(),C(!0),s("soft-navigation",a.navigationId,a.interactionId,a.name,a.startTime)},h=(a,S=!1)=>{W((()=>{for(const S of a)"soft-navigation"!==S.entryType?x.l(S):d(S);u(),S&&C(!0)}))},B=["event","first-input"];M(S)&&B.push("soft-navigation");const j=b(B,h,{...S,durationThreshold:S.durationThreshold??40});C=l(a,L,Q,S.reportAllChanges),j&&(I.onHidden((()=>{h(j.takeRecords(),!0)})),f((()=>{s("back-forward-cache",L.navigationId,L.navigationInteractionId,L.navigationURL,c())})))}))})((S=>{a(E(S))}),S)};class U{m;u;l(a){this.m?.(a)}}const X=[2500,4e3];let Y=50;const Z=[];b(["resource"],(a=>{for(const S of a)Z.push(S),Z.length>Y&&Z.shift()}));const z=(a,S={})=>{null!=(S=Object.assign({},S)).resourceBufferSize&&(Y=S.resourceBufferSize);const I=r(S,U),C=new WeakMap;M(S)&&(I.u=new Map),I.m=a=>{const I=a.element;if(I){const L=S.generateTarget?.(I)??i(I);C.set(a,L)}else a.id&&C.set(a,`#${a.id}`)};((a,S={})=>{let I=!1;const C=M(S);w((()=>{let L,x=m(),B=y("LCP");const j=r(S,U),g=(C,j,H,$,V)=>{B=y("LCP",-1,C,j,H,$,V),L=l(a,B,X,S.reportAllChanges),I=!1,"soft-navigation"===C&&(x=m(!0))},v=a=>{j.u&&a.navigationId&&T(j.u,a),I||L(!0),g("soft-navigation",a.navigationId,a.interactionId,a.name,a.startTime);const S=a.getLargestInteractionContentfulPaint?.();S&&p([S])},p=a=>{S.reportAllChanges||C||(a=a.slice(-1));for(const S of a){if(!S)continue;if("soft-navigation"===S.entryType){v(S);continue}let a=0,I=[],C=S.startTime;if("largest-contentful-paint"===S.entryType)a=Math.max(S.startTime-d(),0),j.l(S),I=[S];else if("interaction-contentful-paint"===S.entryType){const L=S;if(!B.navigationId)continue;if("interactionId"in L&&L.interactionId!=B.navigationInteractionId)continue;C=L.largestContentfulPaint?.renderTime||0,a=Math.max(C-S.startTime,0),L.largestContentfulPaint&&(j.l(L.largestContentfulPaint),I=[L.largestContentfulPaint])}C<x.firstHiddenTime&&(B.value=a,B.entries=I,L())}},H=["largest-contentful-paint"];C&&H.push("interaction-contentful-paint","soft-navigation");const $=b(H,p);if($){L=l(a,B,X,S.reportAllChanges);const x=["keydown","click","visibilitychange"],r=a=>{if(a.isTrusted&&!I){const a=B.id;W((()=>{if(!I){if(!C){$.disconnect();for(const a of x)removeEventListener(a,r,{capture:!0})}a===B.id&&(I=!0,L(!0))}}))}};for(const a of x)addEventListener(a,r,{capture:!0});f((C=>{g("back-forward-cache",B.navigationId,B.navigationInteractionId,B.navigationURL,c()),L=l(a,B,X,S.reportAllChanges),u((()=>{B.value=performance.now()-C.timeStamp,I=!0,L(!0)}))}))}}))})((S=>{a((a=>{let S={timeToFirstByte:0,resourceLoadDelay:0,resourceLoadDuration:0,elementRenderDelay:a.value};if(a.entries.length){const L=a.entries.at(-1),x=L.url&&(Z.findLast((a=>a.name===L.url))||performance.getEntriesByType("resource").findLast((a=>a.name===L.url)));let B;S.target=C.get(L),S.lcpEntry=L,L.url&&(S.url=L.url),x&&(S.lcpResourceEntry=x);let j=0,H=0;if("soft-navigation"!==a.navigationType?(B=n(),j=B?.activationStart??0,H=B?.responseStart??0):(j=a.navigationStartTime||0,B=I.u?.get(a.navigationId)),B){const I=Math.max(0,H-j),C=Math.max(I,x?(x.requestStart||x.startTime)-j:0),L=Math.min(a.value,Math.max(C,x?x.responseEnd-j:0));S={...S,timeToFirstByte:I,resourceLoadDelay:C-I,resourceLoadDuration:L-C,elementRenderDelay:a.value-L,navigationEntry:B}}}return Object.assign(a,{attribution:S})})(S))}),S)},tt=[800,1800],J=a=>{document.prerendering?w((()=>J(a))):"complete"!==document.readyState?addEventListener("load",(()=>J(a)),!0):setTimeout(a)},K=(a,S={})=>{((a,S={})=>{const I=M(S);let C=y("TTFB"),L=l(a,C,tt,S.reportAllChanges);J((()=>{const x=n();if(x){const B=x.responseStart;C.value=Math.max(B-d(),0),C.entries=[x],L(!0),f((()=>{C=y("TTFB",0,"back-forward-cache",C.navigationId,C.navigationInteractionId,C.navigationURL,c()),L=l(a,C,tt,S.reportAllChanges),L(!0)})),I&&b(["soft-navigation"],(I=>{I.forEach((I=>{I.navigationId&&(C=y("TTFB",0,"soft-navigation",I.navigationId,I.interactionId,I.name,I.startTime),C.entries=[I],L=l(a,C,tt,S.reportAllChanges),L(!0))}))}),S)}}))})((S=>{a((a=>{const S=a.entries[0];let I={waitingDuration:0,cacheDuration:0,dnsDuration:0,connectionDuration:0,requestDuration:0,navigationEntry:S};if(a.entries.length&&S instanceof PerformanceNavigationTiming){const C=S.activationStart||0,L=Math.max((S.workerStart||S.fetchStart||0)-C,0),x=Math.max(S.domainLookupStart-C,0),B=Math.max(S.connectStart-C,0),j=Math.max(S.connectEnd-C,0);I={waitingDuration:L,cacheDuration:x-L,dnsDuration:B-x,connectionDuration:j-B,requestDuration:a.value-j,navigationEntry:S}}return Object.assign(a,{attribution:I})})(S))}),S)};module.exports=S})();