@nuxt/hints 1.0.0-alpha.3 → 1.0.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/200.html +1 -1
- package/dist/client/404.html +1 -1
- package/dist/client/_nuxt/6YZAjlve.js +1 -0
- package/dist/client/_nuxt/BXSELIT7.js +1 -0
- package/dist/client/_nuxt/BgVA9H9k.js +1 -0
- package/dist/client/_nuxt/BuasPzSQ.js +21 -0
- package/dist/client/_nuxt/By0zDdDR.js +6 -0
- package/dist/client/_nuxt/{CeyKylGo.js → C4-GUK1K.js} +3 -3
- package/dist/client/_nuxt/{DE7yhJ9n.js → CHRGnUwv.js} +1 -1
- package/dist/client/_nuxt/{3uZvltmj.js → CIn0yCh1.js} +1 -1
- package/dist/client/_nuxt/CeAnYTQ5.js +1 -0
- package/dist/client/_nuxt/{DyZ7ilof.js → Chg59sI4.js} +1 -1
- package/dist/client/_nuxt/CjPw6jm5.js +1 -0
- package/dist/client/_nuxt/GrcSzlUJ.js +1 -0
- package/dist/client/_nuxt/{BTIAbEX4.js → P-pLD3_d.js} +1 -1
- package/dist/client/_nuxt/{BYW8DJWC.js → Y-og_wyR.js} +1 -1
- package/dist/client/_nuxt/{DxmC8vYz.js → YA1k0SOY.js} +1 -1
- package/dist/client/_nuxt/builds/latest.json +1 -1
- package/dist/client/_nuxt/builds/meta/17377e6a-4112-4616-a57e-0db49b9956bf.json +1 -0
- package/dist/client/_nuxt/error-404.Db9gmKof.css +1 -0
- package/dist/client/_nuxt/error-500.BSnPHzYt.css +1 -0
- package/dist/client/_nuxt/hydration.Dg0tHOnZ.css +1 -0
- package/dist/client/_nuxt/sTshF0tC.js +1 -0
- package/dist/client/hydration/index.html +1 -1
- package/dist/client/index.html +1 -1
- package/dist/client/third-party-scripts/index.html +1 -1
- package/dist/client/web-vitals/index.html +1 -1
- package/dist/module.d.mts +1 -3
- package/dist/module.json +1 -1
- package/dist/module.mjs +60 -24
- package/dist/runtime/core/components/nuxt-island.d.ts +1 -136
- package/dist/runtime/core/plugins/vue-tracer-state.client.d.ts +1 -1
- package/dist/runtime/hydration/component.d.ts +1 -1
- package/dist/runtime/hydration/component.js +1 -2
- package/dist/runtime/hydration/composables.js +16 -26
- package/dist/runtime/hydration/handler.nitro.d.ts +5 -0
- package/dist/runtime/hydration/handler.nitro.js +52 -0
- package/dist/runtime/hydration/plugin.client.d.ts +1 -1
- package/dist/runtime/hydration/sse.nitro.d.ts +2 -0
- package/dist/runtime/hydration/sse.nitro.js +22 -0
- package/dist/runtime/hydration/types.d.ts +29 -0
- package/dist/runtime/hydration/types.js +0 -0
- package/dist/runtime/hydration/utils.d.ts +3 -0
- package/dist/runtime/hydration/utils.js +23 -0
- package/dist/runtime/third-party-scripts/nitro.plugin.js +2 -2
- package/dist/runtime/third-party-scripts/plugin.client.d.ts +1 -1
- package/dist/runtime/third-party-scripts/plugin.client.js +2 -2
- package/dist/runtime/types.d.ts +11 -2
- package/dist/runtime/web-vitals/plugin.client.d.ts +1 -1
- package/package.json +4 -4
- package/dist/client/_nuxt/BAIAvlAa.js +0 -1
- package/dist/client/_nuxt/Ckm7x3qc.js +0 -6
- package/dist/client/_nuxt/CsLEpyV7.js +0 -1
- package/dist/client/_nuxt/CzzNqrSg.js +0 -1
- package/dist/client/_nuxt/DBrXuSAZ.js +0 -1
- package/dist/client/_nuxt/DDotc1jX.js +0 -21
- package/dist/client/_nuxt/REBTOKr5.js +0 -1
- package/dist/client/_nuxt/builds/meta/b0fc6608-9102-4a88-9842-0a2ed6526798.json +0 -1
- package/dist/client/_nuxt/error-404.MLlw4bJt.css +0 -1
- package/dist/client/_nuxt/error-500.CBQQ1PSP.css +0 -1
- package/dist/client/_nuxt/hydration.B5wxUWyr.css +0 -1
- package/dist/client/_nuxt/s2_R2YM5.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as o,c as s,o as a,a as t,t as r}from"./
|
|
1
|
+
import{_ as o,c as s,o as a,a as t,t as r}from"./By0zDdDR.js";import{u as i}from"./Chg59sI4.js";const u={class:"antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide"},c={class:"max-w-520px text-center"},l=["textContent"],d=["textContent"],p=["textContent"],f={__name:"error-500",props:{appName:{type:String,default:"Nuxt"},statusCode:{type:Number,default:500},statusMessage:{type:String,default:"Internal server error"},description:{type:String,default:"This page is temporarily unavailable."},refresh:{type:String,default:"Refresh this page"}},setup(e){const n=e;return i({title:`${n.statusCode} - ${n.statusMessage} | ${n.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}h1,h2,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(g,h)=>(a(),s("div",u,[t("div",c,[t("h1",{class:"font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]",textContent:r(e.statusCode)},null,8,l),t("h2",{class:"font-semibold mb-2 sm:text-3xl text-2xl",textContent:r(e.statusMessage)},null,8,d),t("p",{class:"mb-4 px-2 text-[#64748B] text-md",textContent:r(e.description)},null,8,p)])]))}},x=o(f,[["__scopeId","data-v-279fdc89"]]);export{x as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{y as a}from"./By0zDdDR.js";function u(n){const t=a().value;if(!t||!t.host.inspector)throw new Error("`openElementSourceComponent` must be used when the devtools client is connected");const{findTraceFromElement:s}=t.host.nuxt.__tracerRecord,l=s(n);if(!l&&n.parentElement)return u(n.parentElement);l&&t.devtools.rpc.openInEditor(l.filepath),console.info("[@nuxt/hints] Source component not found for element",n)}let e=null;function d(){try{return window.parent?.parent||window.parent||window}catch{return window}}function p(){if(e)return e;const t=d().document;return e=t.createElement("div"),e.style.cssText=`
|
|
2
2
|
position: absolute;
|
|
3
3
|
pointer-events: none;
|
|
4
4
|
z-index: 999999;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as S}from"./BgVA9H9k.js";import{_ as D}from"./BXSELIT7.js";import E from"./C4-GUK1K.js";import{_ as H}from"./YA1k0SOY.js";import{g as q,z as A,k as f,c as b,o as d,a as t,l as a,m,b as u,w as n,n as p,F as I,v as M,t as i,d as c}from"./By0zDdDR.js";import"./sTshF0tC.js";import"./6YZAjlve.js";const U={class:"p-4 space-y-4"},V={class:"grid gap-3 md:grid-cols-5 grid-cols-2"},$={class:"text-2xl font-bold"},F={class:"text-2xl font-bold"},O={class:"text-xs text-neutral-500"},j={class:"text-2xl font-bold text-yellow-600"},G={class:"text-xs text-neutral-500"},J={class:"text-2xl font-bold text-orange-600"},K={class:"text-2xl font-bold text-red-600"},Q={class:"grid gap-3 md:grid-cols-2"},W={class:"flex items-start justify-between gap-3"},X={class:"min-w-0"},Y={class:"text-xs text-neutral-500"},Z=["href"],ee={class:"flex items-center gap-2 shrink-0"},te={class:"mt-2 flex flex-wrap gap-2 text-[11px]"},se={class:"mt-3 grid grid-cols-2 gap-2"},oe={class:"n-border-base border rounded p-2"},re={class:"font-mono"},ne={class:"n-border-base border rounded p-2"},ie={class:"font-mono"},le={class:"n-border-base border rounded p-2"},de={class:"font-mono"},ae={class:"n-border-base border rounded p-2"},ce={class:"font-mono"},ue={class:"mt-3 flex items-center gap-2"},ke=q({__name:"third-party-scripts",setup(me){const{scripts:w,isUsingNuxtScripts:T}=A(),g={network:300,parse:200},x=f(()=>(w.value||[]).map(e=>{const s=e.element,l=s.src,_=new URL(l,location.href),o=!!(s.ownerDocument&&s.ownerDocument.head&&s.ownerDocument.head.contains(s))&&!s.async&&!s.defer&&s.type!=="module";return{element:s,url:l,domain:_.host,https:_.protocol==="https:",loaded:e.loaded,renderBlocking:o,requestTime:s.requestTime,downloadTime:s.downloadTime,totalNetworkTime:s.totalNetworkTime,parseExecuteTime:s.parseExecuteTime,crossorigin:s.getAttribute("crossorigin"),integrity:s.getAttribute("integrity"),referrerPolicy:s.getAttribute("referrerpolicy"),async:s.async,defer:s.defer,isModule:s.type==="module"}})),h=f(()=>x.value.slice().sort((r,e)=>{const s=(r.totalNetworkTime||0)+(r.parseExecuteTime||0);return(e.totalNetworkTime||0)+(e.parseExecuteTime||0)-s})),k=f(()=>x.value.length),C=f(()=>x.value.filter(r=>r.loaded).length),N=f(()=>x.value.filter(r=>(r.totalNetworkTime||0)>g.network).length),z=f(()=>x.value.filter(r=>(r.parseExecuteTime||0)>g.parse).length),P=f(()=>x.value.filter(r=>r.renderBlocking).length);function y(r){return typeof r=="number"?`${r.toFixed(0)}ms`:"N/A"}function B(r){console.log("[@nuxt/hints]: Third-party script element",r)}async function L(r){try{await navigator.clipboard.writeText(r)}catch{}}return(r,e)=>{const s=S,l=D,_=E,v=H;return d(),b("div",U,[t("div",V,[u(s,{"p-3":""},{default:n(()=>[e[0]||(e[0]=t("div",{class:"text-xs text-neutral-500"}," 3rd-party scripts ",-1)),t("div",$,i(p(k)),1)]),_:1}),u(s,{"p-3":""},{default:n(()=>[e[1]||(e[1]=t("div",{class:"text-xs text-neutral-500"}," Loaded ",-1)),t("div",F,i(p(C)),1)]),_:1}),u(s,{"p-3":""},{default:n(()=>[t("div",O," Slow network (>"+i(g.network)+"ms) ",1),t("div",j,i(p(N)),1)]),_:1}),u(s,{"p-3":""},{default:n(()=>[t("div",G," Long parse (>"+i(g.parse)+"ms) ",1),t("div",J,i(p(z)),1)]),_:1}),u(s,{"p-3":""},{default:n(()=>[e[2]||(e[2]=t("div",{class:"text-xs text-neutral-500"}," Render-blocking ",-1)),t("div",K,i(p(P)),1)]),_:1})]),p(k)>0&&!p(T)?(d(),a(l,{key:0,n:"yellow6"},{default:n(()=>[...e[3]||(e[3]=[c(" Third-party scripts detected. Consider using @nuxt/scripts for best-practice loading and management. ",-1)])]),_:1})):m("",!0),t("div",Q,[(d(!0),b(I,null,M(p(h),o=>(d(),a(s,{key:o.url,"p-3":""},{default:n(()=>[t("div",W,[t("div",X,[t("div",Y,i(o.domain),1),t("a",{href:o.url,target:"_blank",rel:"noopener",class:"block truncate text-sm text-blue-600"},i(o.url),9,Z)]),t("div",ee,[u(l,{type:o.loaded?"success":"warning",size:"small"},{default:n(()=>[c(i(o.loaded?"Loaded":"Pending"),1)]),_:2},1032,["type"])])]),t("div",te,[o.renderBlocking?(d(),a(l,{key:0,type:"error",size:"small",title:"In document head and not async/defer/module; blocks HTML parsing and delays first paint. Prefer defer or type=module."},{default:n(()=>[...e[4]||(e[4]=[c(" render-blocking ",-1)])]),_:1})):m("",!0),o.isModule?(d(),a(l,{key:1,size:"small",title:"Module scripts are deferred by default and don't block parsing; execution order differs from classic scripts."},{default:n(()=>[...e[5]||(e[5]=[c(" module ",-1)])]),_:1})):m("",!0),o.async?(d(),a(l,{key:2,size:"small",title:"Doesn't block parsing; executes as soon as it's downloaded. Order is not guaranteed."},{default:n(()=>[...e[6]||(e[6]=[c(" async ",-1)])]),_:1})):m("",!0),o.defer?(d(),a(l,{key:3,size:"small",title:"Doesn't block parsing; executes after document parsing, preserving script order."},{default:n(()=>[...e[7]||(e[7]=[c(" defer ",-1)])]),_:1})):m("",!0),o.crossorigin?(d(),a(l,{key:4,size:"small",title:"CORS mode for this script. Use 'anonymous' for cross-origin with SRI and better error reporting."},{default:n(()=>[c(" crossorigin="+i(o.crossorigin),1)]),_:2},1024)):(d(),a(l,{key:5,type:"warning",size:"small",title:"Cross-origin script without crossorigin. Add crossorigin='anonymous' for SRI and better error reporting."},{default:n(()=>[...e[8]||(e[8]=[c(" missing crossorigin ",-1)])]),_:1})),o.integrity?(d(),a(l,{key:6,size:"small",title:"Subresource Integrity: protects against CDN/script tampering."},{default:n(()=>[...e[9]||(e[9]=[c(" sri ",-1)])]),_:1})):m("",!0),o.referrerPolicy?(d(),a(l,{key:7,size:"small",title:"Referrer policy controls the Referer header for this request."},{default:n(()=>[c(" referrer="+i(o.referrerPolicy),1)]),_:2},1024)):m("",!0),o.https===!1?(d(),a(l,{key:8,type:"error",size:"small",title:"Loaded over HTTP; use HTTPS to avoid mixed content and security risks."},{default:n(()=>[...e[10]||(e[10]=[c(" insecure http ",-1)])]),_:1})):m("",!0)]),t("div",se,[t("div",oe,[e[11]||(e[11]=t("div",{class:"text-xs text-neutral-500"}," Total network ",-1)),t("div",re,i(y(o.totalNetworkTime)),1)]),t("div",ne,[e[12]||(e[12]=t("div",{class:"text-xs text-neutral-500"}," Parse + execute ",-1)),t("div",ie,i(y(o.parseExecuteTime)),1)]),t("div",le,[e[13]||(e[13]=t("div",{class:"text-xs text-neutral-500"}," Request ",-1)),t("div",de,i(y(o.requestTime)),1)]),t("div",ae,[e[14]||(e[14]=t("div",{class:"text-xs text-neutral-500"}," Download ",-1)),t("div",ce,i(y(o.downloadTime)),1)])]),t("div",ue,[u(v,{onClick:R=>B(o.element)},{default:n(()=>[u(_,{name:"material-symbols:terminal",class:"text-lg"}),e[15]||(e[15]=t("span",{class:"ml-1"},"Log element",-1))]),_:1},8,["onClick"]),u(v,{onClick:R=>L(o.url)},{default:n(()=>[u(_,{name:"material-symbols:content-copy-outline",class:"text-lg"}),e[16]||(e[16]=t("span",{class:"ml-1"},"Copy URL",-1))]),_:1},8,["onClick"])])]),_:2},1024))),128))])])}}});export{ke as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as a,e as s,h as u,i as r,f as h}from"./
|
|
1
|
+
import{u as a,e as s,h as u,i as r,f as h}from"./By0zDdDR.js";function i(t){const e=t||s();return e.ssrContext?.head||e.runWithContext(()=>{if(u()){const n=r(h);if(!n)throw new Error("[nuxt] [unhead] Missing Unhead instance.");return n}})}function d(t,e={}){const n=e.head||i(e.nuxt);return a(t,{head:n,...e})}export{d as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as d}from"./6YZAjlve.js";import l from"./C4-GUK1K.js";import{g as u,B as i,k as p,c as n,o,b as a,m as x,x as f,n as t,w as b,d as h,F as k,a as g,t as N,_ as w,r as B}from"./By0zDdDR.js";const C={flex:"","px-4":"",border:"b base","h-49px":"","items-center":"","font-semibold":"","text-neutral-800":"","dark:text-white":"","gap-1":"","n-border-base":""},H=u({__name:"Header",setup(r){const s=i(),e=p(()=>s.meta.title);return(y,_)=>{const c=d,m=l;return o(),n("header",C,[a(c,{to:"/",class:f(t(e)?"text-neutral-500 dark:text-neutral-400":"text-neutral-800 dark:text-white")},{default:b(()=>[..._[0]||(_[0]=[h("Hints",-1)])]),_:1},8,["class"]),t(e)?(o(),n(k,{key:0},[a(m,{name:"carbon:chevron-right"}),g("div",null,N(t(e)),1)],64)):x("",!0)])}}}),V=Object.assign(H,{__name:"Header"}),v={};function $(r,s){const e=V;return o(),n("div",null,[a(e),B(r.$slots,"default")])}const j=w(v,[["render",$]]);export{j as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import h from"./C4-GUK1K.js";import{_ as g,c as f,o,r as k,g as w,j as N,e as $,k as C,b as e,w as s,a as t,l as _,m as u,n,d as p,t as x}from"./By0zDdDR.js";import{_ as V}from"./BgVA9H9k.js";import{_ as B}from"./6YZAjlve.js";import{_ as S}from"./BXSELIT7.js";import"./sTshF0tC.js";const j={},L={class:"n-badge"};function z(d,r){return o(),f("span",L,[k(d.$slots,"default")])}const A=Object.assign(g(j,[["render",z]]),{__name:"NBadge"}),H={class:"grid grid-cols-1 md:grid-cols-3 gap-3 p-4"},I={class:"flex items-center gap-3 min-w-0"},M={class:"flex items-center gap-3 min-w-0"},q=w({__name:"index",setup(d){const{allMetrics:r}=N(),b=$().$hydrationMismatches,m=C(()=>b.value.length);return(P,a)=>{const l=h,v=A,i=V,c=B,y=S;return o(),f("div",H,[e(c,{to:"/web-vitals",class:"block"},{default:s(()=>[e(i,{class:"flex items-center justify-between p-4 hover:border-neutral-400 dark:hover:border-neutral-500"},{default:s(()=>[t("div",I,[e(l,{name:"material-symbols:monitoring",class:"text-xl text-blue-500"}),a[0]||(a[0]=t("div",{class:"min-w-0"},[t("div",{class:"text-sm font-medium truncate"}," Web Vitals "),t("div",{class:"text-xs text-neutral-500"}," LCP / INP / CLS ")],-1))]),n(r).length?(o(),_(v,{key:0},{default:s(()=>[p(x(n(r).length)+" issues ",1)]),_:1})):u("",!0)]),_:1})]),_:1}),e(c,{to:"/hydration",class:"block"},{default:s(()=>[e(i,{class:"flex items-center justify-between p-4 hover:border-neutral-400 dark:hover:border-neutral-500"},{default:s(()=>[t("div",M,[e(l,{name:"material-symbols:water-full",class:"text-xl text-cyan-500"}),a[1]||(a[1]=t("div",{class:"min-w-0"},[t("div",{class:"text-sm font-medium truncate"}," Hydration "),t("div",{class:"text-xs text-neutral-500"}," SSR vs client diffs ")],-1))]),n(m)?(o(),_(y,{key:0,size:"small",type:"error",bordered:!1},{default:s(()=>[p(x(n(m))+" issues ",1)]),_:1})):u("",!0)]),_:1})]),_:1}),e(c,{to:"/third-party-scripts",class:"block"},{default:s(()=>[e(i,{class:"p-4 flex items-center gap-3 hover:border-neutral-400 dark:hover:border-neutral-500"},{default:s(()=>[e(l,{name:"material-symbols:extension",class:"text-xl text-violet-500"}),a[2]||(a[2]=t("div",{class:"min-w-0"},[t("div",{class:"text-sm font-medium truncate"}," Third party scripts "),t("div",{class:"text-xs text-neutral-500"}," Analyze third-party scripts speed. ")],-1))]),_:1})]),_:1})])}}});export{q as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as y,u as P}from"./CzzNqrSg.js";import E from"./CeyKylGo.js";import{u as T}from"./3uZvltmj.js";import{g as k,c as a,o as r,a as t,l as c,r as D,d as w,t as i,v as h,j as _,k as f,w as v,m as b,b as p,p as j,F as S,s as C}from"./Ckm7x3qc.js";const V={flex:"","items-center":"","justify-between":"","mb-1":""},F={"text-xs":"","text-neutral-500":"","dark:text-neutral-400":""},M={key:0,"text-blue-600":"","dark:text-blue-400":"","ml-1":""},N={key:0,"text-sm":"","text-purple-600":""},W=k({__name:"ElementInfo",props:{label:{},target:{},element:{}},setup(e){const u=e,{highlightElement:x,clearHighlight:o,inspectElementInEditor:m}=T(),n=()=>{u.element&&x(u.element)},l=()=>{o()},s=()=>{u.element&&m(u.element)};return(g,$)=>(r(),a("div",{border:"","border-neutral-200":"","dark:border-neutral-700":"",rounded:"","p-2":"","bg-neutral-50":"","dark:bg-neutral-800":"",class:h(e.element?"cursor-pointer hover:bg-neutral-100 dark:hover:bg-neutral-700 transition-colors":""),onMouseenter:n,onMouseleave:l,onClick:s},[t("div",V,[t("div",F,[w(i(e.label)+" ",1),e.element?(r(),a("span",M,"(hover to highlight, click to inspect)")):c("",!0)]),D(g.$slots,"header-right")]),e.target?(r(),a("code",N,i(e.target),1)):c("",!0),D(g.$slots,"sub")],34))}}),L=Object.assign(W,{__name:"ElementInfo"}),A={flex:"","flex-col":"","gap-3":""},B={flex:"","items-center":"","justify-between":""},H={flex:"","items-center":"","gap-2":""},O={"font-mono":"","text-xl":""},R={key:0,"text-xs":"","text-neutral-600":"","mt-1":"","break-all":""},U={grid:"","grid-cols-2":"","gap-2":""},z={border:"","border-neutral-200":"",rounded:"","p-2":""},q={"font-mono":"","text-sm":"","font-semibold":""},G={border:"","border-neutral-200":"",rounded:"","p-2":""},J={"font-mono":"","text-sm":"","font-semibold":""},K={border:"","border-neutral-200":"",rounded:"","p-2":""},Q={"font-mono":"","text-sm":"","font-semibold":""},X={border:"","border-neutral-200":"",rounded:"","p-2":""},Y={"font-mono":"","text-sm":"","font-semibold":""},Z={"text-xs":"","text-neutral-400":""},tt=k({__name:"LCPMetric",props:{metric:{}},setup(e){const u=e,x=_(()=>u.metric.entries[0]?.element),o=m=>`${m.toFixed(0)}ms`;return(m,n)=>{const l=L,s=y;return r(),f(s,{"p-2":""},{default:v(()=>[t("div",A,[t("div",B,[t("div",H,[n[0]||(n[0]=t("span",{"font-bold":"","text-lg":""},"LCP",-1)),t("span",O,i(o(e.metric.value)),1)]),t("span",{class:h({"text-green-500":e.metric.rating==="good","text-yellow-500":e.metric.rating==="needs-improvement","text-red-500":e.metric.rating==="poor"}),"font-semibold":"","text-sm":"",uppercase:""},i(e.metric.rating),3)]),e.metric.attribution.target?(r(),f(l,{key:0,label:"LCP Element",target:e.metric.attribution.target,element:b(x)},{sub:v(()=>[e.metric.attribution.url?(r(),a("div",R,i(e.metric.attribution.url),1)):c("",!0)]),_:1},8,["target","element"])):c("",!0),t("div",U,[t("div",z,[n[1]||(n[1]=t("div",{"text-xs":"","text-neutral-500":""}," Time to First Byte ",-1)),t("div",q,i(o(e.metric.attribution.timeToFirstByte)),1)]),t("div",G,[n[2]||(n[2]=t("div",{"text-xs":"","text-neutral-500":""}," Resource Load Delay ",-1)),t("div",J,i(o(e.metric.attribution.resourceLoadDelay)),1)]),t("div",K,[n[3]||(n[3]=t("div",{"text-xs":"","text-neutral-500":""}," Resource Load Duration ",-1)),t("div",Q,i(o(e.metric.attribution.resourceLoadDuration)),1)]),t("div",X,[n[4]||(n[4]=t("div",{"text-xs":"","text-neutral-500":""}," Element Render Delay ",-1)),t("div",Y,i(o(e.metric.attribution.elementRenderDelay)),1)])]),t("div",Z," ID: "+i(e.metric.id),1)])]),_:1})}}}),et=Object.assign(tt,{__name:"WebVitalsLCPMetric"}),nt={flex:"","flex-col":"","gap-3":""},it={flex:"","items-center":"","justify-between":""},rt={flex:"","items-center":"","gap-2":""},ot={"font-mono":"","text-xl":""},st={"text-xs":"","font-semibold":"","text-blue-600":"",uppercase:""},at={grid:"","grid-cols-3":"","gap-2":""},lt={border:"","border-neutral-200":"",rounded:"","p-2":""},dt={"font-mono":"","text-sm":"","font-semibold":""},ct={border:"","border-neutral-200":"",rounded:"","p-2":""},ut={"font-mono":"","text-sm":"","font-semibold":""},mt={border:"","border-neutral-200":"",rounded:"","p-2":""},xt={"font-mono":"","text-sm":"","font-semibold":""},bt={key:0,border:"","border-orange-200":"",rounded:"","p-2":"","bg-orange-50":""},gt={"text-xs":"","text-neutral-600":""},ft={key:0,"mt-2":"","text-xs":""},vt={"text-neutral-500":"","mb-1":""},ht={"font-mono":"","text-xs":""},kt={key:1,grid:"","grid-cols-2":"","gap-2":"","text-xs":""},pt={"font-mono":"","ml-1":""},yt={"font-mono":"","ml-1":""},_t={key:0},$t={"font-mono":"","ml-1":""},St={key:1},Lt={"font-mono":"","ml-1":""},Dt={flex:"","items-center":"","justify-between":"","text-xs":"","text-neutral-400":""},Ct=k({__name:"INPMetric",props:{metric:{}},setup(e){const u=e,x=_(()=>u.metric.entries[0]?.target),o=m=>`${m.toFixed(0)}ms`;return(m,n)=>{const l=L,s=y;return r(),f(s,{"p-2":""},{default:v(()=>[t("div",nt,[t("div",it,[t("div",rt,[n[0]||(n[0]=t("span",{"font-bold":"","text-lg":""},"INP",-1)),t("span",ot,i(o(e.metric.value)),1)]),t("span",{class:h({"text-green-500":e.metric.rating==="good","text-yellow-500":e.metric.rating==="needs-improvement","text-red-500":e.metric.rating==="poor"}),"font-semibold":"","text-sm":"",uppercase:""},i(e.metric.rating),3)]),p(l,{label:"Interaction Target",target:e.metric.attribution.interactionTarget,element:b(x)},{"header-right":v(()=>[t("span",st,i(e.metric.attribution.interactionType),1)]),_:1},8,["target","element"]),t("div",at,[t("div",lt,[n[1]||(n[1]=t("div",{"text-xs":"","text-neutral-500":""}," Input Delay ",-1)),t("div",dt,i(o(e.metric.attribution.inputDelay)),1)]),t("div",ct,[n[2]||(n[2]=t("div",{"text-xs":"","text-neutral-500":""}," Processing ",-1)),t("div",ut,i(o(e.metric.attribution.processingDuration)),1)]),t("div",mt,[n[3]||(n[3]=t("div",{"text-xs":"","text-neutral-500":""}," Presentation ",-1)),t("div",xt,i(o(e.metric.attribution.presentationDelay)),1)])]),e.metric.attribution.longAnimationFrameEntries?.length?(r(),a("div",bt,[n[4]||(n[4]=t("div",{"text-xs":"","text-orange-700":"","font-semibold":"","mb-1":""}," Long Animation Frames Detected ",-1)),t("div",gt,i(e.metric.attribution.longAnimationFrameEntries.length)+" frame(s) ",1),e.metric.attribution.longestScript?(r(),a("div",ft,[t("div",vt," Longest Script ("+i(e.metric.attribution.longestScript.subpart)+") ",1),t("div",ht,i(o(e.metric.attribution.longestScript.intersectingDuration)),1)])):c("",!0)])):c("",!0),e.metric.attribution.totalScriptDuration!==void 0?(r(),a("div",kt,[t("div",null,[n[5]||(n[5]=t("span",{"text-neutral-500":""},"Total Script:",-1)),t("span",pt,i(o(e.metric.attribution.totalScriptDuration)),1)]),t("div",null,[n[6]||(n[6]=t("span",{"text-neutral-500":""},"Style & Layout:",-1)),t("span",yt,i(o(e.metric.attribution.totalStyleAndLayoutDuration||0)),1)]),e.metric.attribution.totalPaintDuration!==void 0?(r(),a("div",_t,[n[7]||(n[7]=t("span",{"text-neutral-500":""},"Paint:",-1)),t("span",$t,i(o(e.metric.attribution.totalPaintDuration)),1)])):c("",!0),e.metric.attribution.totalUnattributedDuration!==void 0?(r(),a("div",St,[n[8]||(n[8]=t("span",{"text-neutral-500":""},"Unattributed:",-1)),t("span",Lt,i(o(e.metric.attribution.totalUnattributedDuration)),1)])):c("",!0)])):c("",!0),t("div",Dt,[t("span",null,"Load State: "+i(e.metric.attribution.loadState),1),t("span",null,"ID: "+i(e.metric.id),1)])])]),_:1})}}}),wt=Object.assign(Ct,{__name:"WebVitalsINPMetric"}),It={flex:"","flex-col":"","gap-3":""},Pt={flex:"","items-center":"","justify-between":""},Et={flex:"","items-center":"","gap-2":""},Tt={"font-mono":"","text-xl":""},jt={key:1,grid:"","grid-cols-2":"","gap-2":""},Vt={border:"","border-neutral-200":"","dark:border-neutral-800":"",rounded:"","p-2":""},Ft={"font-mono":"","text-sm":"","font-semibold":""},Mt={key:0,border:"","border-neutral-200":"","dark:border-neutral-800":"",rounded:"","p-2":""},Nt={"font-mono":"","text-sm":"","font-semibold":""},Wt={key:2,border:"",rounded:"","p-2":"",class:"bg-blue-50 dark:bg-blue-800/10 border-blue-200 dark:border-blue-800"},At={"text-xs":"","text-blue-700":"","dark:text-blue-400":"","font-semibold":""},Bt={flex:"","items-center":"","justify-between":"","text-xs":"","text-neutral-500":"","dark:text-neutral-400":""},Ht={key:0},Ot=k({__name:"CLSMetric",props:{metric:{}},setup(e){const u=e,x=_(()=>u.metric.entries[0]?.sources?.[0]?.node),o=n=>n.toFixed(4),m=n=>`${n.toFixed(0)}ms`;return(n,l)=>{const s=L,g=y;return r(),f(g,{"p-2":""},{default:v(()=>[t("div",It,[t("div",Pt,[t("div",Et,[l[0]||(l[0]=t("span",{"font-bold":"","text-lg":""},"CLS",-1)),t("span",Tt,i(o(e.metric.value)),1)]),t("span",{class:h({"text-green-500":e.metric.rating==="good","text-yellow-500":e.metric.rating==="needs-improvement","text-red-500":e.metric.rating==="poor"}),"font-semibold":"","text-sm":"",uppercase:""},i(e.metric.rating),3)]),e.metric.attribution.largestShiftTarget?(r(),f(s,{key:0,label:"Largest Shift Element",target:e.metric.attribution.largestShiftTarget,element:b(x)},null,8,["target","element"])):c("",!0),e.metric.attribution.largestShiftValue!==void 0?(r(),a("div",jt,[t("div",Vt,[l[1]||(l[1]=t("div",{"text-xs":"","text-neutral-500":"","dark:text-neutral-400":""}," Largest Shift Score ",-1)),t("div",Ft,i(o(e.metric.attribution.largestShiftValue)),1)]),e.metric.attribution.largestShiftTime!==void 0?(r(),a("div",Mt,[l[2]||(l[2]=t("div",{"text-xs":"","text-neutral-500":"","dark:text-neutral-400":""}," Shift Time ",-1)),t("div",Nt,i(m(e.metric.attribution.largestShiftTime)),1)])):c("",!0)])):c("",!0),e.metric.entries.length?(r(),a("div",Wt,[t("div",At," Total Layout Shifts: "+i(e.metric.entries.length),1)])):c("",!0),t("div",Bt,[e.metric.attribution.loadState?(r(),a("span",Ht,"Load State: "+i(e.metric.attribution.loadState),1)):c("",!0),t("span",null,"ID: "+i(e.metric.id),1)])])]),_:1})}}}),Rt=Object.assign(Ot,{__name:"WebVitalsCLSMetric"}),Ut={"p-4":"",grid:"","gap-4":""},zt={class:"overflow-x-auto grid gap-4 grid-cols-4"},qt={class:"text-lg font-bold"},Gt={class:"text-xs text-neutral-700 dark:text-neutral-300"},Jt=["href"],Kt={grid:"","gap-3":""},Qt={key:1,"text-center":"","py-8":"","text-neutral-500":""},ne=k({__name:"web-vitals",setup(e){const u=[{title:"LCP",key:"lcp",articleLink:"https://web.dev/articles/lcp",description:"Largest Contentful Paint"},{title:"INP",key:"inp",articleLink:"https://web.dev/articles/inp",description:"Interaction to Next Paint"},{title:"CLS",key:"cls",articleLink:"https://web.dev/articles/cls",description:"Cumulative Layout Shift"}],{lcp:x,inp:o,cls:m}=P(),n=j(),l=_(()=>n.value==="lcp"?x.value.map(s=>({type:"lcp",metric:s})):n.value==="inp"?o.value.map(s=>({type:"inp",metric:s})):n.value==="cls"?m.value.map(s=>({type:"cls",metric:s})):[...x.value.map(s=>({type:"lcp",metric:s})),...o.value.map(s=>({type:"inp",metric:s})),...m.value.map(s=>({type:"cls",metric:s}))]);return(s,g)=>{const $=y,I=E;return r(),a("div",Ut,[t("header",zt,[p($,{class:h(["p-2 flex flex-col justify-center gap-1 cursor-pointer",[b(n)?"hover:border-neutral-400 dark:hover:border-neutral-500":"border-neutral-500 dark:border-neutral-400 bg-neutral-50 dark:bg-neutral-800"]]),onClick:g[0]||(g[0]=d=>n.value=void 0)},{default:v(()=>[...g[1]||(g[1]=[t("span",{class:"text-lg font-bold"},"All",-1),t("span",{class:"text-xs text-neutral-700 dark:text-neutral-300"},"Show all issues",-1)])]),_:1},8,["class"]),(r(),a(S,null,C(u,d=>p($,{class:h(["p-2 gap-1 flex flex-col justify-center cursor-pointer",[b(n)===d.key?"border-neutral-500 dark:border-neutral-400 bg-neutral-50 dark:bg-neutral-800":"hover:border-neutral-400 dark:hover:border-neutral-500"]]),onClick:Xt=>n.value=b(n)===d.key?void 0:d.key},{default:v(()=>[t("span",qt,i(d.title),1),t("span",Gt,i(d.description),1),t("a",{href:d.articleLink,target:"_blank",class:"flex items-center gap-0.5 truncate max-w-full text-xs text-neutral-500 dark:text-neutral-400 hover:text-neutral-800 dark:hover:text-neutral-200",rel:"noopener noreferrer","text-sm":""},[w(i(d.articleLink)+" ",1),p(I,{name:"lucide:arrow-up-right"})],8,Jt)]),_:2},1032,["class","onClick"])),64))]),t("main",Kt,[b(l).length?(r(!0),a(S,{key:0},C(b(l),d=>(r(),a(S,null,[d.type==="cls"?(r(),f(Rt,{key:0,metric:d.metric},null,8,["metric"])):d.type==="lcp"?(r(),f(et,{key:1,metric:d.metric},null,8,["metric"])):d.type==="inp"?(r(),f(wt,{key:2,metric:d.metric},null,8,["metric"])):c("",!0)],64))),256)):(r(),a("div",Qt," No performance issues detected. "+i(b(n)?b(n)?.toUpperCase():"All")+" metrics are good! 🎉 ",1))])])}}});export{ne as default};
|
|
1
|
+
import{_ as p}from"./BgVA9H9k.js";import P from"./C4-GUK1K.js";import{u as E}from"./CIn0yCh1.js";import{g as k,c as a,o as r,a as t,m as c,r as D,d as w,t as i,x as h,k as _,l as f,w as v,n as b,b as y,j as T,q as j,F as S,v as C}from"./By0zDdDR.js";const V={flex:"","items-center":"","justify-between":"","mb-1":""},F={"text-xs":"","text-neutral-500":"","dark:text-neutral-400":""},M={key:0,"text-blue-600":"","dark:text-blue-400":"","ml-1":""},N={key:0,"text-sm":"","text-purple-600":""},W=k({__name:"ElementInfo",props:{label:{},target:{},element:{}},setup(e){const u=e,{highlightElement:x,clearHighlight:o,inspectElementInEditor:m}=E(),n=()=>{u.element&&x(u.element)},l=()=>{o()},s=()=>{u.element&&m(u.element)};return(g,$)=>(r(),a("div",{border:"","border-neutral-200":"","dark:border-neutral-700":"",rounded:"","p-2":"","bg-neutral-50":"","dark:bg-neutral-800":"",class:h(e.element?"cursor-pointer hover:bg-neutral-100 dark:hover:bg-neutral-700 transition-colors":""),onMouseenter:n,onMouseleave:l,onClick:s},[t("div",V,[t("div",F,[w(i(e.label)+" ",1),e.element?(r(),a("span",M,"(hover to highlight, click to inspect)")):c("",!0)]),D(g.$slots,"header-right")]),e.target?(r(),a("code",N,i(e.target),1)):c("",!0),D(g.$slots,"sub")],34))}}),L=Object.assign(W,{__name:"ElementInfo"}),A={flex:"","flex-col":"","gap-3":""},B={flex:"","items-center":"","justify-between":""},H={flex:"","items-center":"","gap-2":""},O={"font-mono":"","text-xl":""},R={key:0,"text-xs":"","text-neutral-600":"","mt-1":"","break-all":""},U={grid:"","grid-cols-2":"","gap-2":""},q={border:"","border-neutral-200":"",rounded:"","p-2":""},z={"font-mono":"","text-sm":"","font-semibold":""},G={border:"","border-neutral-200":"",rounded:"","p-2":""},J={"font-mono":"","text-sm":"","font-semibold":""},K={border:"","border-neutral-200":"",rounded:"","p-2":""},Q={"font-mono":"","text-sm":"","font-semibold":""},X={border:"","border-neutral-200":"",rounded:"","p-2":""},Y={"font-mono":"","text-sm":"","font-semibold":""},Z={"text-xs":"","text-neutral-400":""},tt=k({__name:"LCPMetric",props:{metric:{}},setup(e){const u=e,x=_(()=>u.metric.entries[0]?.element),o=m=>`${m.toFixed(0)}ms`;return(m,n)=>{const l=L,s=p;return r(),f(s,{"p-2":""},{default:v(()=>[t("div",A,[t("div",B,[t("div",H,[n[0]||(n[0]=t("span",{"font-bold":"","text-lg":""},"LCP",-1)),t("span",O,i(o(e.metric.value)),1)]),t("span",{class:h({"text-green-500":e.metric.rating==="good","text-yellow-500":e.metric.rating==="needs-improvement","text-red-500":e.metric.rating==="poor"}),"font-semibold":"","text-sm":"",uppercase:""},i(e.metric.rating),3)]),e.metric.attribution.target?(r(),f(l,{key:0,label:"LCP Element",target:e.metric.attribution.target,element:b(x)},{sub:v(()=>[e.metric.attribution.url?(r(),a("div",R,i(e.metric.attribution.url),1)):c("",!0)]),_:1},8,["target","element"])):c("",!0),t("div",U,[t("div",q,[n[1]||(n[1]=t("div",{"text-xs":"","text-neutral-500":""}," Time to First Byte ",-1)),t("div",z,i(o(e.metric.attribution.timeToFirstByte)),1)]),t("div",G,[n[2]||(n[2]=t("div",{"text-xs":"","text-neutral-500":""}," Resource Load Delay ",-1)),t("div",J,i(o(e.metric.attribution.resourceLoadDelay)),1)]),t("div",K,[n[3]||(n[3]=t("div",{"text-xs":"","text-neutral-500":""}," Resource Load Duration ",-1)),t("div",Q,i(o(e.metric.attribution.resourceLoadDuration)),1)]),t("div",X,[n[4]||(n[4]=t("div",{"text-xs":"","text-neutral-500":""}," Element Render Delay ",-1)),t("div",Y,i(o(e.metric.attribution.elementRenderDelay)),1)])]),t("div",Z," ID: "+i(e.metric.id),1)])]),_:1})}}}),et=Object.assign(tt,{__name:"WebVitalsLCPMetric"}),nt={flex:"","flex-col":"","gap-3":""},it={flex:"","items-center":"","justify-between":""},rt={flex:"","items-center":"","gap-2":""},ot={"font-mono":"","text-xl":""},st={"text-xs":"","font-semibold":"","text-blue-600":"",uppercase:""},at={grid:"","grid-cols-3":"","gap-2":""},lt={border:"","border-neutral-200":"",rounded:"","p-2":""},dt={"font-mono":"","text-sm":"","font-semibold":""},ct={border:"","border-neutral-200":"",rounded:"","p-2":""},ut={"font-mono":"","text-sm":"","font-semibold":""},mt={border:"","border-neutral-200":"",rounded:"","p-2":""},xt={"font-mono":"","text-sm":"","font-semibold":""},bt={key:0,border:"","border-orange-200":"",rounded:"","p-2":"","bg-orange-50":""},gt={"text-xs":"","text-neutral-600":""},ft={key:0,"mt-2":"","text-xs":""},vt={"text-neutral-500":"","mb-1":""},ht={"font-mono":"","text-xs":""},kt={key:1,grid:"","grid-cols-2":"","gap-2":"","text-xs":""},yt={"font-mono":"","ml-1":""},pt={"font-mono":"","ml-1":""},_t={key:0},$t={"font-mono":"","ml-1":""},St={key:1},Lt={"font-mono":"","ml-1":""},Dt={flex:"","items-center":"","justify-between":"","text-xs":"","text-neutral-400":""},Ct=k({__name:"INPMetric",props:{metric:{}},setup(e){const u=e,x=_(()=>u.metric.entries[0]?.target),o=m=>`${m.toFixed(0)}ms`;return(m,n)=>{const l=L,s=p;return r(),f(s,{"p-2":""},{default:v(()=>[t("div",nt,[t("div",it,[t("div",rt,[n[0]||(n[0]=t("span",{"font-bold":"","text-lg":""},"INP",-1)),t("span",ot,i(o(e.metric.value)),1)]),t("span",{class:h({"text-green-500":e.metric.rating==="good","text-yellow-500":e.metric.rating==="needs-improvement","text-red-500":e.metric.rating==="poor"}),"font-semibold":"","text-sm":"",uppercase:""},i(e.metric.rating),3)]),y(l,{label:"Interaction Target",target:e.metric.attribution.interactionTarget,element:b(x)},{"header-right":v(()=>[t("span",st,i(e.metric.attribution.interactionType),1)]),_:1},8,["target","element"]),t("div",at,[t("div",lt,[n[1]||(n[1]=t("div",{"text-xs":"","text-neutral-500":""}," Input Delay ",-1)),t("div",dt,i(o(e.metric.attribution.inputDelay)),1)]),t("div",ct,[n[2]||(n[2]=t("div",{"text-xs":"","text-neutral-500":""}," Processing ",-1)),t("div",ut,i(o(e.metric.attribution.processingDuration)),1)]),t("div",mt,[n[3]||(n[3]=t("div",{"text-xs":"","text-neutral-500":""}," Presentation ",-1)),t("div",xt,i(o(e.metric.attribution.presentationDelay)),1)])]),e.metric.attribution.longAnimationFrameEntries?.length?(r(),a("div",bt,[n[4]||(n[4]=t("div",{"text-xs":"","text-orange-700":"","font-semibold":"","mb-1":""}," Long Animation Frames Detected ",-1)),t("div",gt,i(e.metric.attribution.longAnimationFrameEntries.length)+" frame(s) ",1),e.metric.attribution.longestScript?(r(),a("div",ft,[t("div",vt," Longest Script ("+i(e.metric.attribution.longestScript.subpart)+") ",1),t("div",ht,i(o(e.metric.attribution.longestScript.intersectingDuration)),1)])):c("",!0)])):c("",!0),e.metric.attribution.totalScriptDuration!==void 0?(r(),a("div",kt,[t("div",null,[n[5]||(n[5]=t("span",{"text-neutral-500":""},"Total Script:",-1)),t("span",yt,i(o(e.metric.attribution.totalScriptDuration)),1)]),t("div",null,[n[6]||(n[6]=t("span",{"text-neutral-500":""},"Style & Layout:",-1)),t("span",pt,i(o(e.metric.attribution.totalStyleAndLayoutDuration||0)),1)]),e.metric.attribution.totalPaintDuration!==void 0?(r(),a("div",_t,[n[7]||(n[7]=t("span",{"text-neutral-500":""},"Paint:",-1)),t("span",$t,i(o(e.metric.attribution.totalPaintDuration)),1)])):c("",!0),e.metric.attribution.totalUnattributedDuration!==void 0?(r(),a("div",St,[n[8]||(n[8]=t("span",{"text-neutral-500":""},"Unattributed:",-1)),t("span",Lt,i(o(e.metric.attribution.totalUnattributedDuration)),1)])):c("",!0)])):c("",!0),t("div",Dt,[t("span",null,"Load State: "+i(e.metric.attribution.loadState),1),t("span",null,"ID: "+i(e.metric.id),1)])])]),_:1})}}}),wt=Object.assign(Ct,{__name:"WebVitalsINPMetric"}),It={flex:"","flex-col":"","gap-3":""},Pt={flex:"","items-center":"","justify-between":""},Et={flex:"","items-center":"","gap-2":""},Tt={"font-mono":"","text-xl":""},jt={key:1,grid:"","grid-cols-2":"","gap-2":""},Vt={border:"","border-neutral-200":"","dark:border-neutral-800":"",rounded:"","p-2":""},Ft={"font-mono":"","text-sm":"","font-semibold":""},Mt={key:0,border:"","border-neutral-200":"","dark:border-neutral-800":"",rounded:"","p-2":""},Nt={"font-mono":"","text-sm":"","font-semibold":""},Wt={key:2,border:"",rounded:"","p-2":"",class:"bg-blue-50 dark:bg-blue-800/10 border-blue-200 dark:border-blue-800"},At={"text-xs":"","text-blue-700":"","dark:text-blue-400":"","font-semibold":""},Bt={flex:"","items-center":"","justify-between":"","text-xs":"","text-neutral-500":"","dark:text-neutral-400":""},Ht={key:0},Ot=k({__name:"CLSMetric",props:{metric:{}},setup(e){const u=e,x=_(()=>u.metric.entries[0]?.sources?.[0]?.node),o=n=>n.toFixed(4),m=n=>`${n.toFixed(0)}ms`;return(n,l)=>{const s=L,g=p;return r(),f(g,{"p-2":""},{default:v(()=>[t("div",It,[t("div",Pt,[t("div",Et,[l[0]||(l[0]=t("span",{"font-bold":"","text-lg":""},"CLS",-1)),t("span",Tt,i(o(e.metric.value)),1)]),t("span",{class:h({"text-green-500":e.metric.rating==="good","text-yellow-500":e.metric.rating==="needs-improvement","text-red-500":e.metric.rating==="poor"}),"font-semibold":"","text-sm":"",uppercase:""},i(e.metric.rating),3)]),e.metric.attribution.largestShiftTarget?(r(),f(s,{key:0,label:"Largest Shift Element",target:e.metric.attribution.largestShiftTarget,element:b(x)},null,8,["target","element"])):c("",!0),e.metric.attribution.largestShiftValue!==void 0?(r(),a("div",jt,[t("div",Vt,[l[1]||(l[1]=t("div",{"text-xs":"","text-neutral-500":"","dark:text-neutral-400":""}," Largest Shift Score ",-1)),t("div",Ft,i(o(e.metric.attribution.largestShiftValue)),1)]),e.metric.attribution.largestShiftTime!==void 0?(r(),a("div",Mt,[l[2]||(l[2]=t("div",{"text-xs":"","text-neutral-500":"","dark:text-neutral-400":""}," Shift Time ",-1)),t("div",Nt,i(m(e.metric.attribution.largestShiftTime)),1)])):c("",!0)])):c("",!0),e.metric.entries.length?(r(),a("div",Wt,[t("div",At," Total Layout Shifts: "+i(e.metric.entries.length),1)])):c("",!0),t("div",Bt,[e.metric.attribution.loadState?(r(),a("span",Ht,"Load State: "+i(e.metric.attribution.loadState),1)):c("",!0),t("span",null,"ID: "+i(e.metric.id),1)])])]),_:1})}}}),Rt=Object.assign(Ot,{__name:"WebVitalsCLSMetric"}),Ut={"p-4":"",grid:"","gap-4":""},qt={class:"overflow-x-auto grid gap-4 grid-cols-4"},zt={class:"text-lg font-bold"},Gt={class:"text-xs text-neutral-700 dark:text-neutral-300"},Jt=["href"],Kt={grid:"","gap-3":""},Qt={key:1,"text-center":"","py-8":"","text-neutral-500":""},ne=k({__name:"web-vitals",setup(e){const u=[{title:"LCP",key:"lcp",articleLink:"https://web.dev/articles/lcp",description:"Largest Contentful Paint"},{title:"INP",key:"inp",articleLink:"https://web.dev/articles/inp",description:"Interaction to Next Paint"},{title:"CLS",key:"cls",articleLink:"https://web.dev/articles/cls",description:"Cumulative Layout Shift"}],{lcp:x,inp:o,cls:m}=T(),n=j(),l=_(()=>n.value==="lcp"?x.value.map(s=>({type:"lcp",metric:s})):n.value==="inp"?o.value.map(s=>({type:"inp",metric:s})):n.value==="cls"?m.value.map(s=>({type:"cls",metric:s})):[...x.value.map(s=>({type:"lcp",metric:s})),...o.value.map(s=>({type:"inp",metric:s})),...m.value.map(s=>({type:"cls",metric:s}))]);return(s,g)=>{const $=p,I=P;return r(),a("div",Ut,[t("header",qt,[y($,{class:h(["p-2 flex flex-col justify-center gap-1 cursor-pointer",[b(n)?"hover:border-neutral-400 dark:hover:border-neutral-500":"border-neutral-500 dark:border-neutral-400 bg-neutral-50 dark:bg-neutral-800"]]),onClick:g[0]||(g[0]=d=>n.value=void 0)},{default:v(()=>[...g[1]||(g[1]=[t("span",{class:"text-lg font-bold"},"All",-1),t("span",{class:"text-xs text-neutral-700 dark:text-neutral-300"},"Show all issues",-1)])]),_:1},8,["class"]),(r(),a(S,null,C(u,d=>y($,{class:h(["p-2 gap-1 flex flex-col justify-center cursor-pointer",[b(n)===d.key?"border-neutral-500 dark:border-neutral-400 bg-neutral-50 dark:bg-neutral-800":"hover:border-neutral-400 dark:hover:border-neutral-500"]]),onClick:Xt=>n.value=b(n)===d.key?void 0:d.key},{default:v(()=>[t("span",zt,i(d.title),1),t("span",Gt,i(d.description),1),t("a",{href:d.articleLink,target:"_blank",class:"flex items-center gap-0.5 truncate max-w-full text-xs text-neutral-500 dark:text-neutral-400 hover:text-neutral-800 dark:hover:text-neutral-200",rel:"noopener noreferrer","text-sm":""},[w(i(d.articleLink)+" ",1),y(I,{name:"lucide:arrow-up-right"})],8,Jt)]),_:2},1032,["class","onClick"])),64))]),t("main",Kt,[b(l).length?(r(!0),a(S,{key:0},C(b(l),d=>(r(),a(S,null,[d.type==="cls"?(r(),f(Rt,{key:0,metric:d.metric},null,8,["metric"])):d.type==="lcp"?(r(),f(et,{key:1,metric:d.metric},null,8,["metric"])):d.type==="inp"?(r(),f(wt,{key:2,metric:d.metric},null,8,["metric"])):c("",!0)],64))),256)):(r(),a("div",Qt," No performance issues detected. "+i(b(n)?b(n)?.toUpperCase():"All")+" metrics are good! 🎉 ",1))])])}}});export{ne as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as s}from"./
|
|
1
|
+
import{_ as s}from"./6YZAjlve.js";import{_ as a,c as i,o as u,a as t,t as n,b as c,w as l,d}from"./By0zDdDR.js";import{u as f}from"./Chg59sI4.js";const p={class:"antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide"},m={class:"max-w-520px text-center"},h=["textContent"],g=["textContent"],b=["textContent"],x={class:"flex items-center justify-center w-full"},y={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},statusCode:{type:Number,default:404},statusMessage:{type:String,default:"Page not found"},description:{type:String,default:"Sorry, the page you are looking for could not be found."},backHome:{type:String,default:"Go back home"}},setup(e){const r=e;return f({title:`${r.statusCode} - ${r.statusMessage} | ${r.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,h2,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(k,_)=>{const o=s;return u(),i("div",p,[t("div",m,[t("h1",{class:"font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]",textContent:n(e.statusCode)},null,8,h),t("h2",{class:"font-semibold mb-2 sm:text-3xl text-2xl",textContent:n(e.statusMessage)},null,8,g),t("p",{class:"mb-4 px-2 text-[#64748B] text-md",textContent:n(e.description)},null,8,b),t("div",x,[c(o,{to:"/",class:"font-medium hover:text-[#00DC82] text-sm underline underline-offset-3"},{default:l(()=>[d(n(e.backHome),1)]),_:1})])])])}}},N=a(y,[["__scopeId","data-v-94546318"]]);export{N as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{_ as i}from"./sTshF0tC.js";import{_ as u}from"./6YZAjlve.js";import{g as d,A as e,r as o}from"./By0zDdDR.js";const l=d({name:"NButton",props:{to:String,icon:String,border:{type:Boolean,default:!0},disabled:Boolean,type:{type:String,default:"button"}},setup(t,{attrs:a,slots:n}){return()=>e(t.to?u:"button",{to:t.to,...a,...!t.to&&{type:t.type},...t.disabled?{disabled:!0}:{tabindex:0},class:[t.border?"n-button-base active:n-button-active focus-visible:n-focus-base hover:n-button-hover":"",n.default?"":"n-icon-button","n-button n-transition n-disabled:n-disabled"].join(" ")},{default:()=>[o(n,"icon",{},()=>t.icon?[e(i,{icon:t.icon,class:n.default?"n-button-icon":""})]:[]),o(n,"default")]})}});export{l as _};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"
|
|
1
|
+
{"id":"17377e6a-4112-4616-a57e-0db49b9956bf","timestamp":1765969428485}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"17377e6a-4112-4616-a57e-0db49b9956bf","timestamp":1765969428485,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.grid[data-v-94546318]{display:grid}.mb-2[data-v-94546318]{margin-bottom:.5rem}.mb-4[data-v-94546318]{margin-bottom:1rem}.max-w-520px[data-v-94546318]{max-width:520px}.min-h-screen[data-v-94546318]{min-height:100vh}.w-full[data-v-94546318]{width:100%}.flex[data-v-94546318]{display:flex}.place-content-center[data-v-94546318]{place-content:center}.items-center[data-v-94546318]{align-items:center}.justify-center[data-v-94546318]{justify-content:center}.overflow-hidden[data-v-94546318]{overflow:hidden}.bg-white[data-v-94546318]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-2[data-v-94546318]{padding-left:.5rem;padding-right:.5rem}.text-center[data-v-94546318]{text-align:center}.text-\[80px\][data-v-94546318]{font-size:80px}.text-2xl[data-v-94546318]{font-size:1.5rem;line-height:2rem}.text-sm[data-v-94546318]{font-size:.875rem;line-height:1.25rem}.text-\[\#020420\][data-v-94546318]{--un-text-opacity:1;color:rgb(2 4 32/var(--un-text-opacity))}.text-\[\#64748B\][data-v-94546318]{--un-text-opacity:1;color:rgb(100 116 139/var(--un-text-opacity))}.hover\:text-\[\#00DC82\][data-v-94546318]:hover{--un-text-opacity:1;color:rgb(0 220 130/var(--un-text-opacity))}.font-medium[data-v-94546318]{font-weight:500}.font-semibold[data-v-94546318]{font-weight:600}.leading-none[data-v-94546318]{line-height:1}.tracking-wide[data-v-94546318]{letter-spacing:.025em}.font-sans[data-v-94546318]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.tabular-nums[data-v-94546318]{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal) var(--un-slashed-zero) var(--un-numeric-figure) var(--un-numeric-spacing) var(--un-numeric-fraction)}.underline[data-v-94546318]{text-decoration-line:underline}.underline-offset-3[data-v-94546318]{text-underline-offset:3px}.antialiased[data-v-94546318]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:dark){.dark\:bg-\[\#020420\][data-v-94546318]{--un-bg-opacity:1;background-color:rgb(2 4 32/var(--un-bg-opacity))}.dark\:text-white[data-v-94546318]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media(min-width:640px){.sm\:text-\[110px\][data-v-94546318]{font-size:110px}.sm\:text-3xl[data-v-94546318]{font-size:1.875rem;line-height:2.25rem}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.grid[data-v-279fdc89]{display:grid}.mb-2[data-v-279fdc89]{margin-bottom:.5rem}.mb-4[data-v-279fdc89]{margin-bottom:1rem}.max-w-520px[data-v-279fdc89]{max-width:520px}.min-h-screen[data-v-279fdc89]{min-height:100vh}.place-content-center[data-v-279fdc89]{place-content:center}.overflow-hidden[data-v-279fdc89]{overflow:hidden}.bg-white[data-v-279fdc89]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-2[data-v-279fdc89]{padding-left:.5rem;padding-right:.5rem}.text-center[data-v-279fdc89]{text-align:center}.text-\[80px\][data-v-279fdc89]{font-size:80px}.text-2xl[data-v-279fdc89]{font-size:1.5rem;line-height:2rem}.text-\[\#020420\][data-v-279fdc89]{--un-text-opacity:1;color:rgb(2 4 32/var(--un-text-opacity))}.text-\[\#64748B\][data-v-279fdc89]{--un-text-opacity:1;color:rgb(100 116 139/var(--un-text-opacity))}.font-semibold[data-v-279fdc89]{font-weight:600}.leading-none[data-v-279fdc89]{line-height:1}.tracking-wide[data-v-279fdc89]{letter-spacing:.025em}.font-sans[data-v-279fdc89]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.tabular-nums[data-v-279fdc89]{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal) var(--un-slashed-zero) var(--un-numeric-figure) var(--un-numeric-spacing) var(--un-numeric-fraction)}.antialiased[data-v-279fdc89]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:dark){.dark\:bg-\[\#020420\][data-v-279fdc89]{--un-bg-opacity:1;background-color:rgb(2 4 32/var(--un-bg-opacity))}.dark\:text-white[data-v-279fdc89]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media(min-width:640px){.sm\:text-\[110px\][data-v-279fdc89]{font-size:110px}.sm\:text-3xl[data-v-279fdc89]{font-size:1.875rem;line-height:2.25rem}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[data-v-69a9fa4c] .diff.add{background-color:#16a34a26}[data-v-69a9fa4c] .diff.remove{background-color:#dc262626}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as n,o as c,x as o}from"./By0zDdDR.js";const t={__name:"NIcon",props:{icon:{type:String,required:!1}},setup(e){return(r,s)=>(c(),n("div",{class:o(["n-icon",e.icon])},null,2))}};export{t as _};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__nuxt-hints/_nuxt/entry.CqH3PPiL.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-hints/_nuxt/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__nuxt-hints/_nuxt/entry.CqH3PPiL.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-hints/_nuxt/By0zDdDR.js"><script type="module" src="/__nuxt-hints/_nuxt/By0zDdDR.js" crossorigin></script></head><body><div id="__nuxt"></div><div id="teleports"></div><script type="application/json" data-nuxt-data="nuxt-hints-iframe" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1765969434451,false]</script><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-hints",buildId:"17377e6a-4112-4616-a57e-0db49b9956bf",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script></body></html>
|
package/dist/client/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__nuxt-hints/_nuxt/entry.CqH3PPiL.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-hints/_nuxt/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__nuxt-hints/_nuxt/entry.CqH3PPiL.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-hints/_nuxt/By0zDdDR.js"><script type="module" src="/__nuxt-hints/_nuxt/By0zDdDR.js" crossorigin></script></head><body><div id="__nuxt"></div><div id="teleports"></div><script type="application/json" data-nuxt-data="nuxt-hints-iframe" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1765969434452,false]</script><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-hints",buildId:"17377e6a-4112-4616-a57e-0db49b9956bf",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__nuxt-hints/_nuxt/entry.CqH3PPiL.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-hints/_nuxt/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__nuxt-hints/_nuxt/entry.CqH3PPiL.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-hints/_nuxt/By0zDdDR.js"><script type="module" src="/__nuxt-hints/_nuxt/By0zDdDR.js" crossorigin></script></head><body><div id="__nuxt"></div><div id="teleports"></div><script type="application/json" data-nuxt-data="nuxt-hints-iframe" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1765969434452,false]</script><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-hints",buildId:"17377e6a-4112-4616-a57e-0db49b9956bf",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__nuxt-hints/_nuxt/entry.CqH3PPiL.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-hints/_nuxt/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__nuxt-hints/_nuxt/entry.CqH3PPiL.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-hints/_nuxt/By0zDdDR.js"><script type="module" src="/__nuxt-hints/_nuxt/By0zDdDR.js" crossorigin></script></head><body><div id="__nuxt"></div><div id="teleports"></div><script type="application/json" data-nuxt-data="nuxt-hints-iframe" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1765969434452,false]</script><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-hints",buildId:"17377e6a-4112-4616-a57e-0db49b9956bf",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script></body></html>
|
package/dist/module.d.mts
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import * as _nuxt_schema from '@nuxt/schema';
|
|
2
|
-
|
|
3
1
|
interface ModuleOptions {
|
|
4
2
|
devtools: boolean;
|
|
5
3
|
}
|
|
6
|
-
declare const _default:
|
|
4
|
+
declare const _default: any;
|
|
7
5
|
|
|
8
6
|
export { _default as default };
|
|
9
7
|
export type { ModuleOptions };
|
package/dist/module.json
CHANGED
package/dist/module.mjs
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import { addDevServerHandler, defineNuxtModule, createResolver, addComponent, addPlugin, addBuildPlugin, addServerPlugin } from '@nuxt/kit';
|
|
1
|
+
import { addDevServerHandler, defineNuxtModule, createResolver, addComponent, addPlugin, addBuildPlugin, addServerHandler, addServerPlugin } from '@nuxt/kit';
|
|
2
|
+
import { HYDRATION_ROUTE, HYDRATION_SSE_ROUTE } from '../dist/runtime/hydration/utils.js';
|
|
2
3
|
import { existsSync } from 'node:fs';
|
|
3
4
|
import { eventHandler, proxyRequest } from 'h3';
|
|
4
5
|
import { genImport } from 'knitwork';
|
|
5
6
|
import MagicString from 'magic-string';
|
|
7
|
+
import { dirname, resolve } from 'node:path';
|
|
6
8
|
import { parseSync } from 'oxc-parser';
|
|
7
9
|
import { createUnplugin } from 'unplugin';
|
|
10
|
+
import { fileURLToPath } from 'node:url';
|
|
8
11
|
|
|
9
12
|
const DEVTOOLS_UI_ROUTE = "/__nuxt-hints";
|
|
10
13
|
const DEVTOOLS_UI_LOCAL_PORT = 3300;
|
|
@@ -41,10 +44,13 @@ function setupDevToolsUI(nuxt, resolver) {
|
|
|
41
44
|
});
|
|
42
45
|
}
|
|
43
46
|
|
|
47
|
+
const distDir = dirname(fileURLToPath(import.meta.url));
|
|
48
|
+
|
|
44
49
|
const INCLUDE_VUE_RE = /\.vue$/;
|
|
45
50
|
const EXCLUDE_NODE_MODULES = /node_modules/;
|
|
46
51
|
const DEFINE_COMPONENT_RE = /defineComponent/;
|
|
47
52
|
const DEFINE_NUXT_COMPONENT_RE = /defineNuxtComponent/;
|
|
53
|
+
const skipPath = normalizePath(resolve(distDir, "runtime/hydration/component.ts"));
|
|
48
54
|
const InjectHydrationPlugin = createUnplugin(() => {
|
|
49
55
|
return [
|
|
50
56
|
{
|
|
@@ -54,32 +60,42 @@ const InjectHydrationPlugin = createUnplugin(() => {
|
|
|
54
60
|
filter: {
|
|
55
61
|
id: {
|
|
56
62
|
include: /.(vue|ts|js|tsx|jsx)$/,
|
|
57
|
-
exclude: EXCLUDE_NODE_MODULES
|
|
63
|
+
exclude: [skipPath, EXCLUDE_NODE_MODULES]
|
|
58
64
|
},
|
|
59
|
-
code:
|
|
65
|
+
code: {
|
|
66
|
+
include: [DEFINE_COMPONENT_RE, DEFINE_NUXT_COMPONENT_RE]
|
|
67
|
+
}
|
|
60
68
|
},
|
|
61
|
-
handler(code, id) {
|
|
69
|
+
async handler(code, id) {
|
|
62
70
|
const m = new MagicString(code);
|
|
63
71
|
const { program } = parseSync(id, code);
|
|
64
72
|
const imports = program.body.filter((node) => node.type === "ImportDeclaration");
|
|
65
73
|
const hasDefineComponent = DEFINE_COMPONENT_RE.test(code);
|
|
66
74
|
const hasDefineNuxtComponent = DEFINE_NUXT_COMPONENT_RE.test(code);
|
|
67
|
-
const defineComponentImport = findImportSpecifier(
|
|
75
|
+
const defineComponentImport = findImportSpecifier(
|
|
76
|
+
imports,
|
|
77
|
+
"defineComponent",
|
|
78
|
+
["vue", "#imports"],
|
|
79
|
+
(specifier, nextSpecifier) => {
|
|
80
|
+
m.remove(
|
|
81
|
+
specifier.start,
|
|
82
|
+
nextSpecifier?.start ?? specifier.end
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
);
|
|
68
86
|
const defineComponentAlias = defineComponentImport?.local.name || "defineComponent";
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
)
|
|
74
|
-
|
|
75
|
-
|
|
87
|
+
const defineNuxtComponentImport = findImportSpecifier(
|
|
88
|
+
imports,
|
|
89
|
+
"defineNuxtComponent",
|
|
90
|
+
["#app/composables/component", "#imports", "#app", "nuxt/app"],
|
|
91
|
+
(specifier, next) => {
|
|
92
|
+
m.remove(
|
|
93
|
+
specifier.start,
|
|
94
|
+
next?.start ?? specifier.end
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
);
|
|
76
98
|
const defineNuxtComponentAlias = defineNuxtComponentImport?.local.name || "defineNuxtComponent";
|
|
77
|
-
if (defineNuxtComponentImport) {
|
|
78
|
-
m.remove(
|
|
79
|
-
defineNuxtComponentImport.start,
|
|
80
|
-
defineNuxtComponentImport.end
|
|
81
|
-
);
|
|
82
|
-
}
|
|
83
99
|
const importsToAdd = new Set([
|
|
84
100
|
hasDefineComponent && genImport(
|
|
85
101
|
"@nuxt/hints/runtime/hydration/component",
|
|
@@ -107,9 +123,11 @@ const InjectHydrationPlugin = createUnplugin(() => {
|
|
|
107
123
|
filter: {
|
|
108
124
|
id: {
|
|
109
125
|
include: INCLUDE_VUE_RE,
|
|
110
|
-
exclude: EXCLUDE_NODE_MODULES
|
|
126
|
+
exclude: [skipPath, EXCLUDE_NODE_MODULES]
|
|
111
127
|
},
|
|
112
|
-
code:
|
|
128
|
+
code: {
|
|
129
|
+
exclude: [DEFINE_COMPONENT_RE, DEFINE_NUXT_COMPONENT_RE]
|
|
130
|
+
}
|
|
113
131
|
},
|
|
114
132
|
handler(code, id) {
|
|
115
133
|
const m = new MagicString(code);
|
|
@@ -139,11 +157,19 @@ const InjectHydrationPlugin = createUnplugin(() => {
|
|
|
139
157
|
}
|
|
140
158
|
];
|
|
141
159
|
});
|
|
142
|
-
function findImportSpecifier(importDecl, importedName, pkgNames) {
|
|
160
|
+
function findImportSpecifier(importDecl, importedName, pkgNames, callback) {
|
|
143
161
|
const names = Array.isArray(pkgNames) ? pkgNames : [pkgNames];
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
162
|
+
const allSpecifiers = importDecl.filter((imp) => names.includes(imp.source.value)).flatMap((decl) => decl.specifiers.map((spec, i) => ({ spec, next: decl.specifiers[i + 1] })));
|
|
163
|
+
const match = allSpecifiers.find(
|
|
164
|
+
({ spec }) => spec.type === "ImportSpecifier" && spec.imported.type === "Identifier" && spec.imported.name === importedName
|
|
165
|
+
);
|
|
166
|
+
if (match) {
|
|
167
|
+
callback?.(match.spec, match.next);
|
|
168
|
+
return match.spec;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
function normalizePath(path) {
|
|
172
|
+
return path.replace(/\\/g, "/");
|
|
147
173
|
}
|
|
148
174
|
|
|
149
175
|
const moduleName = "@nuxt/hints";
|
|
@@ -159,6 +185,8 @@ const module$1 = defineNuxtModule({
|
|
|
159
185
|
if (!nuxt.options.dev) {
|
|
160
186
|
return;
|
|
161
187
|
}
|
|
188
|
+
nuxt.options.nitro.experimental = nuxt.options.nitro.experimental || {};
|
|
189
|
+
nuxt.options.nitro.experimental.websocket = true;
|
|
162
190
|
const resolver = createResolver(import.meta.url);
|
|
163
191
|
addComponent({
|
|
164
192
|
name: "NuxtIsland",
|
|
@@ -168,6 +196,14 @@ const module$1 = defineNuxtModule({
|
|
|
168
196
|
addPlugin(resolver.resolve("./runtime/web-vitals/plugin.client"));
|
|
169
197
|
addPlugin(resolver.resolve("./runtime/hydration/plugin.client"));
|
|
170
198
|
addBuildPlugin(InjectHydrationPlugin);
|
|
199
|
+
addServerHandler({
|
|
200
|
+
route: HYDRATION_ROUTE,
|
|
201
|
+
handler: resolver.resolve("./runtime/hydration/handler.nitro")
|
|
202
|
+
});
|
|
203
|
+
addServerHandler({
|
|
204
|
+
route: HYDRATION_SSE_ROUTE,
|
|
205
|
+
handler: resolver.resolve("./runtime/hydration/sse.nitro")
|
|
206
|
+
});
|
|
171
207
|
addPlugin(resolver.resolve("./runtime/third-party-scripts/plugin.client"));
|
|
172
208
|
addServerPlugin(resolver.resolve("./runtime/third-party-scripts/nitro.plugin"));
|
|
173
209
|
nuxt.hook("prepare:types", ({ references }) => {
|
|
@@ -1,137 +1,2 @@
|
|
|
1
|
-
declare const HintsNuxtIsland:
|
|
2
|
-
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
|
|
3
|
-
name: {
|
|
4
|
-
type: StringConstructor;
|
|
5
|
-
required: true;
|
|
6
|
-
};
|
|
7
|
-
lazy: BooleanConstructor;
|
|
8
|
-
props: {
|
|
9
|
-
type: ObjectConstructor;
|
|
10
|
-
default: () => undefined;
|
|
11
|
-
};
|
|
12
|
-
context: {
|
|
13
|
-
type: ObjectConstructor;
|
|
14
|
-
default: () => {};
|
|
15
|
-
};
|
|
16
|
-
scopeId: {
|
|
17
|
-
type: import("vue").PropType<string | undefined | null>;
|
|
18
|
-
default: () => undefined;
|
|
19
|
-
};
|
|
20
|
-
source: {
|
|
21
|
-
type: StringConstructor;
|
|
22
|
-
default: () => undefined;
|
|
23
|
-
};
|
|
24
|
-
dangerouslyLoadClientComponents: {
|
|
25
|
-
type: BooleanConstructor;
|
|
26
|
-
default: boolean;
|
|
27
|
-
};
|
|
28
|
-
}>> & Readonly<{
|
|
29
|
-
onError?: ((...args: any[]) => any) | undefined;
|
|
30
|
-
}>, (_ctx: any, _cache: any) => (import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
31
|
-
[key: string]: any;
|
|
32
|
-
}> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
33
|
-
[key: string]: any;
|
|
34
|
-
}>[])[] | import("vue").VNode<any, any, {
|
|
35
|
-
[key: string]: any;
|
|
36
|
-
}>[], {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "error"[], import("vue").PublicProps, {
|
|
37
|
-
props: Record<string, any>;
|
|
38
|
-
source: string;
|
|
39
|
-
scopeId: string | null | undefined;
|
|
40
|
-
lazy: boolean;
|
|
41
|
-
context: Record<string, any>;
|
|
42
|
-
dangerouslyLoadClientComponents: boolean;
|
|
43
|
-
}, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
|
|
44
|
-
P: {};
|
|
45
|
-
B: {};
|
|
46
|
-
D: {};
|
|
47
|
-
C: {};
|
|
48
|
-
M: {};
|
|
49
|
-
Defaults: {};
|
|
50
|
-
}, Readonly<import("vue").ExtractPropTypes<{
|
|
51
|
-
name: {
|
|
52
|
-
type: StringConstructor;
|
|
53
|
-
required: true;
|
|
54
|
-
};
|
|
55
|
-
lazy: BooleanConstructor;
|
|
56
|
-
props: {
|
|
57
|
-
type: ObjectConstructor;
|
|
58
|
-
default: () => undefined;
|
|
59
|
-
};
|
|
60
|
-
context: {
|
|
61
|
-
type: ObjectConstructor;
|
|
62
|
-
default: () => {};
|
|
63
|
-
};
|
|
64
|
-
scopeId: {
|
|
65
|
-
type: import("vue").PropType<string | undefined | null>;
|
|
66
|
-
default: () => undefined;
|
|
67
|
-
};
|
|
68
|
-
source: {
|
|
69
|
-
type: StringConstructor;
|
|
70
|
-
default: () => undefined;
|
|
71
|
-
};
|
|
72
|
-
dangerouslyLoadClientComponents: {
|
|
73
|
-
type: BooleanConstructor;
|
|
74
|
-
default: boolean;
|
|
75
|
-
};
|
|
76
|
-
}>> & Readonly<{
|
|
77
|
-
onError?: ((...args: any[]) => any) | undefined;
|
|
78
|
-
}>, (_ctx: any, _cache: any) => (import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
79
|
-
[key: string]: any;
|
|
80
|
-
}> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
81
|
-
[key: string]: any;
|
|
82
|
-
}>[])[] | import("vue").VNode<any, any, {
|
|
83
|
-
[key: string]: any;
|
|
84
|
-
}>[], {}, {}, {}, {
|
|
85
|
-
props: Record<string, any>;
|
|
86
|
-
source: string;
|
|
87
|
-
scopeId: string | null | undefined;
|
|
88
|
-
lazy: boolean;
|
|
89
|
-
context: Record<string, any>;
|
|
90
|
-
dangerouslyLoadClientComponents: boolean;
|
|
91
|
-
}>;
|
|
92
|
-
__isFragment?: never;
|
|
93
|
-
__isTeleport?: never;
|
|
94
|
-
__isSuspense?: never;
|
|
95
|
-
} & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
|
|
96
|
-
name: {
|
|
97
|
-
type: StringConstructor;
|
|
98
|
-
required: true;
|
|
99
|
-
};
|
|
100
|
-
lazy: BooleanConstructor;
|
|
101
|
-
props: {
|
|
102
|
-
type: ObjectConstructor;
|
|
103
|
-
default: () => undefined;
|
|
104
|
-
};
|
|
105
|
-
context: {
|
|
106
|
-
type: ObjectConstructor;
|
|
107
|
-
default: () => {};
|
|
108
|
-
};
|
|
109
|
-
scopeId: {
|
|
110
|
-
type: import("vue").PropType<string | undefined | null>;
|
|
111
|
-
default: () => undefined;
|
|
112
|
-
};
|
|
113
|
-
source: {
|
|
114
|
-
type: StringConstructor;
|
|
115
|
-
default: () => undefined;
|
|
116
|
-
};
|
|
117
|
-
dangerouslyLoadClientComponents: {
|
|
118
|
-
type: BooleanConstructor;
|
|
119
|
-
default: boolean;
|
|
120
|
-
};
|
|
121
|
-
}>> & Readonly<{
|
|
122
|
-
onError?: ((...args: any[]) => any) | undefined;
|
|
123
|
-
}>, (_ctx: any, _cache: any) => (import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
124
|
-
[key: string]: any;
|
|
125
|
-
}> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
126
|
-
[key: string]: any;
|
|
127
|
-
}>[])[] | import("vue").VNode<any, any, {
|
|
128
|
-
[key: string]: any;
|
|
129
|
-
}>[], {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "error"[], "error", {
|
|
130
|
-
props: Record<string, any>;
|
|
131
|
-
source: string;
|
|
132
|
-
scopeId: string | null | undefined;
|
|
133
|
-
lazy: boolean;
|
|
134
|
-
context: Record<string, any>;
|
|
135
|
-
dangerouslyLoadClientComponents: boolean;
|
|
136
|
-
}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
|
|
1
|
+
declare const HintsNuxtIsland: any;
|
|
137
2
|
export default HintsNuxtIsland;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default:
|
|
1
|
+
declare const _default: any;
|
|
2
2
|
export default _default;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { defineComponent as _defineComponent } from "
|
|
2
|
-
import { defineNuxtComponent as _defineNuxtComponent } from "nuxt/app";
|
|
1
|
+
import { defineNuxtComponent as _defineNuxtComponent, defineComponent as _defineComponent } from "#imports";
|
|
3
2
|
import { useHydrationCheck } from "./composables.js";
|
|
4
3
|
export const defineNuxtComponent = function defineNuxtComponent2(...args) {
|
|
5
4
|
const [options, key] = args;
|