@module-federation/treeshake-frontend 2.9.0 → 2.9.2
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/index.html +1 -1
- package/dist/static/js/{637.b47e0403af.js → 637.3241169e95.js} +2 -2
- package/dist/static/js/async/{503.7bd056737e.js → 503.80102da6f9.js} +3 -3
- package/dist/static/js/async/{515.1b7f26d7ec.js → 515.94e03bda91.js} +1 -1
- package/dist/static/js/{index.ace3fa3d0e.js → index.109b094298.js} +1 -1
- package/package.json +2 -2
- /package/dist/static/js/{637.b47e0403af.js.LICENSE.txt → 637.3241169e95.js.LICENSE.txt} +0 -0
- /package/dist/static/js/async/{503.7bd056737e.js.LICENSE.txt → 503.80102da6f9.js.LICENSE.txt} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.rspackChunk_module_federation_treeshake_frontend=self.rspackChunk_module_federation_treeshake_frontend||[]).push([[515],{2835(e,t,a){var s=a(5723);a(2155);var r=a(5445),l=a(127);let n=(0,r.F)("inline-flex items-center rounded-md border border-zinc-200 px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-zinc-950 focus:ring-offset-2 dark:border-zinc-800 dark:focus:ring-zinc-300",{variants:{variant:{default:"border-transparent bg-zinc-900 text-zinc-50 shadow hover:bg-zinc-900/80 dark:bg-zinc-50 dark:text-zinc-900 dark:hover:bg-zinc-50/80",secondary:"border-transparent bg-zinc-100 text-zinc-900 hover:bg-zinc-100/80 dark:bg-zinc-800 dark:text-zinc-50 dark:hover:bg-zinc-800/80",destructive:"border-transparent bg-red-500 text-zinc-50 shadow hover:bg-red-500/80 dark:bg-red-900 dark:text-zinc-50 dark:hover:bg-red-900/80",outline:"text-zinc-950 dark:text-zinc-50"}},defaultVariants:{variant:"default"}});function i(e){let{className:t,variant:a,...r}=e;return(0,s.jsx)("div",{className:(0,l.cn)(n({variant:a}),t),...r})}a.d(t,{E:()=>i})},678(e,t,a){a.r(t),a.d(t,{default:()=>eV});var s=a(5723),r=a(2155),l=a(2903),n=a(7184),i=a(127);let d=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("div",{ref:t,className:(0,i.cn)("rounded-xl border border-zinc-200 bg-white text-zinc-950 shadow dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-50",a),...r})});d.displayName="Card";let o=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("div",{ref:t,className:(0,i.cn)("flex flex-col space-y-1.5 p-6",a),...r})});o.displayName="CardHeader";let c=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("div",{ref:t,className:(0,i.cn)("font-semibold leading-none tracking-tight",a),...r})});c.displayName="CardTitle";let m=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("div",{ref:t,className:(0,i.cn)("text-sm text-zinc-500 dark:text-zinc-400",a),...r})});m.displayName="CardDescription";let x=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("div",{ref:t,className:(0,i.cn)("p-6 pt-0",a),...r})});x.displayName="CardContent",r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("div",{ref:t,className:(0,i.cn)("flex items-center p-6 pt-0",a),...r})}).displayName="CardFooter";let h=r.forwardRef((e,t)=>{let{className:a,type:r,...l}=e;return(0,s.jsx)("input",{type:r,className:(0,i.cn)("flex h-9 w-full rounded-md border border-zinc-200 bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-zinc-950 placeholder:text-zinc-500 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-zinc-950 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:border-zinc-800 dark:file:text-zinc-50 dark:placeholder:text-zinc-400 dark:focus-visible:ring-zinc-300",a),ref:t,...l})});h.displayName="Input";let u=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("textarea",{className:(0,i.cn)("flex min-h-[60px] w-full rounded-md border border-zinc-200 bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-zinc-500 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-zinc-950 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:border-zinc-800 dark:placeholder:text-zinc-400 dark:focus-visible:ring-zinc-300",a),ref:t,...r})});u.displayName="Textarea";var p=a(1762);let f=p.bL,g=p.R6,b=p.Ke;var j=a(2423),y=a(6317),v=a(970),k=a(4712),N=a(841),w=a(5436),z=a(1048),S=a(2835),C=a(7997),E=a(6886),R=a(6726),T=a(1784);let B=R.bL;R.l9;let $=R.ZL;R.bm;let D=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(R.hJ,{ref:t,className:(0,i.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...r})});D.displayName=R.hJ.displayName;let A=r.forwardRef((e,t)=>{let{className:a,children:r,...l}=e;return(0,s.jsxs)($,{children:[(0,s.jsx)(D,{}),(0,s.jsxs)(R.UC,{ref:t,className:(0,i.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-zinc-200 bg-white p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg dark:border-zinc-800 dark:bg-zinc-950",a),...l,children:[r,(0,s.jsxs)(R.bm,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-zinc-950 focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-zinc-100 data-[state=open]:text-zinc-500 dark:ring-offset-zinc-950 dark:focus:ring-zinc-300 dark:data-[state=open]:bg-zinc-800 dark:data-[state=open]:text-zinc-400 dark:text-zinc-100",children:[(0,s.jsx)(T.A,{className:"h-4 w-4"}),(0,s.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});A.displayName=R.UC.displayName;let U=e=>{let{className:t,...a}=e;return(0,s.jsx)("div",{className:(0,i.cn)("flex flex-col space-y-1.5 text-center sm:text-left",t),...a})};U.displayName="DialogHeader";let L=e=>{let{className:t,...a}=e;return(0,s.jsx)("div",{className:(0,i.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...a})};L.displayName="DialogFooter";let F=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(R.hE,{ref:t,className:(0,i.cn)("text-lg font-semibold leading-none tracking-tight",a),...r})});F.displayName=R.hE.displayName;let P=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(R.VY,{ref:t,className:(0,i.cn)("text-sm text-zinc-500 dark:text-zinc-400",a),...r})});P.displayName=R.VY.displayName;let I=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(C.uB,{ref:t,className:(0,i.cn)("flex h-full w-full flex-col overflow-hidden rounded-md bg-white text-zinc-950 dark:bg-zinc-950 dark:text-zinc-50",a),...r})});I.displayName=C.uB.displayName;let M=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsxs)("div",{className:"flex items-center border-b px-3 flex-1","cmdk-input-wrapper":"",children:[(0,s.jsx)(E.A,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),(0,s.jsx)(C.uB.Input,{ref:t,className:(0,i.cn)("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-zinc-500 disabled:cursor-not-allowed disabled:opacity-50 dark:placeholder:text-zinc-400",a),...r})]})});M.displayName=C.uB.Input.displayName;let _=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(C.uB.List,{ref:t,className:(0,i.cn)("max-h-[300px] overflow-y-auto overflow-x-hidden",a),...r})});_.displayName=C.uB.List.displayName;let O=r.forwardRef((e,t)=>(0,s.jsx)(C.uB.Empty,{ref:t,className:"py-6 text-center text-sm",...e}));O.displayName=C.uB.Empty.displayName;let V=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(C.uB.Group,{ref:t,className:(0,i.cn)("overflow-hidden p-1 text-zinc-950 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-zinc-500 dark:text-zinc-50 dark:[&_[cmdk-group-heading]]:text-zinc-400",a),...r})});V.displayName=C.uB.Group.displayName,r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(C.uB.Separator,{ref:t,className:(0,i.cn)("-mx-1 h-px bg-zinc-200 dark:bg-zinc-800",a),...r})}).displayName=C.uB.Separator.displayName;let H=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(C.uB.Item,{ref:t,className:(0,i.cn)("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-zinc-100 data-[selected=true]:text-zinc-900 data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 dark:data-[selected=true]:bg-zinc-800 dark:data-[selected=true]:text-zinc-50",a),...r})});H.displayName=C.uB.Item.displayName;var K=a(510);let q=K.bL,J=K.l9;K.Mz;let W=r.forwardRef((e,t)=>{let{className:a,align:r="center",sideOffset:l=4,...n}=e;return(0,s.jsx)(K.ZL,{children:(0,s.jsx)(K.UC,{ref:t,align:r,sideOffset:l,className:(0,i.cn)("z-50 w-72 rounded-md border border-zinc-200 bg-white p-4 text-zinc-950 shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-50",a),...n})})});W.displayName=K.UC.displayName;var Y=a(6078),G=a(3587),Z=a(6396);let X=("u">typeof window?window.localStorage.getItem("treeshake_server_url"):null)||"http://localhost:3000/tree-shaking-shared";async function Q(e){let t=new Headers;t.append("Content-Type","application/json");let{shared:a,target:s,plugins:r,sharedName:l,sharedVersion:n}=e,i=JSON.stringify({shared:a,target:s,plugins:r,libraryType:"global",hostName:"@treeshake/shared-host"}),d=await window.fetch(`${X}/build/check-tree-shaking`,{method:"POST",headers:t,body:i});if(!d.ok)throw Error(`HTTP ${d.status}`);let{status:o,data:c}=await d.json();if("success"!==o)throw Error(c);let m=c.find(e=>e.name===l&&e.version===n);if(!m)throw Error(`未能正常获取到目标${l}@${n}信息`);return!!m.canTreeShaking&&m}var ee=a(7748);function et(e){return e?e.split(/[\n,]/).map(e=>e.trim()).filter(Boolean).map(e=>{let t=e.split("@");if(t.length<2)throw Error(ee.A.t("analyze.sharedVersionRequired",{name:e}));let a=t.pop();return[t.join("@"),a,[]]}):[]}function ea(e){let{values:t,onChange:a,error:d,disabled:o,options:c,placeholder:m,loading:x,item:h,onMoveToShared:u}=e,[p,f]=(0,r.useState)(""),[g,b]=(0,r.useState)(!1),{t:j}=(0,l.Bd)(),y=e=>{let s=e.trim();!s||t.includes(s)||(a([...t,s]),f(""))},v=e=>{o||a(t.filter(t=>t!==e))},k="This module does not support treeshake"===m;return x?(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)("div",{className:"flex min-h-12 w-full items-center justify-center gap-2 rounded-xl border border-zinc-200/70 bg-white/70 px-3 py-2 text-sm shadow-sm backdrop-blur-md dark:border-zinc-800/80 dark:bg-zinc-900/70 opacity-80 cursor-not-allowed",children:[(0,s.jsx)(Y.A,{className:"h-4 w-4 animate-spin text-zinc-500"}),(0,s.jsx)("span",{className:"text-zinc-500",children:m||"Loading..."})]}),d&&(0,s.jsx)("p",{className:"text-xs text-red-500",children:d})]}):c&&c.length>0?(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)(q,{open:g,onOpenChange:b,children:[(0,s.jsx)(J,{asChild:!0,children:(0,s.jsxs)("div",{className:(0,i.cn)("flex min-h-12 w-full flex-wrap items-center gap-2 rounded-xl border bg-white/70 px-3 py-2 text-sm shadow-sm backdrop-blur-md transition-colors dark:bg-zinc-900/70 cursor-pointer",d?"border-red-500/70 ring-1 ring-red-500/40":"border-zinc-200/70 hover:border-zinc-300 dark:border-zinc-800/80 dark:hover:border-zinc-700",o&&"opacity-60 cursor-not-allowed"),children:[t.map(e=>(0,s.jsxs)(S.E,{variant:"secondary",className:"flex items-center gap-1 rounded-full bg-zinc-900/90 px-2 py-1 text-xs text-zinc-50 shadow-sm dark:bg-zinc-100 dark:text-zinc-900",children:[(0,s.jsx)("span",{children:e}),(0,s.jsx)("button",{type:"button",className:"inline-flex h-4 w-4 items-center justify-center rounded-full bg-zinc-800/80 text-[10px] text-zinc-50 transition hover:bg-zinc-700 dark:bg-zinc-200 dark:text-zinc-900 dark:hover:bg-zinc-300",onClick:t=>{t.stopPropagation(),v(e)},children:"✕"})]},e)),(0,s.jsx)("div",{className:(0,i.cn)("flex-1 min-w-20 text-sm text-zinc-500 dark:text-zinc-400",k&&"text-red-500"),children:0===t.length&&(m||"Select exports...")}),(0,s.jsx)(G.A,{className:"ml-auto h-4 w-4 shrink-0 opacity-50"})]})}),(0,s.jsx)(W,{className:"w-[--radix-popover-trigger-width] p-0",align:"start",children:(0,s.jsxs)(I,{children:[(0,s.jsxs)("div",{className:"flex items-center border-b pr-3",children:[(0,s.jsx)(M,{placeholder:"Search exports...",className:"flex-1 border-0 focus:ring-0"}),(0,s.jsx)("button",{type:"button",className:"ml-2 whitespace-nowrap text-xs font-medium text-slate-500 hover:text-slate-800 dark:text-slate-400 dark:hover:text-slate-200",onClick:()=>{t.length===c.length?a([]):a([...c])},children:t.length===c.length?"Unselect All":"Select All"})]}),(0,s.jsxs)(_,{children:[(0,s.jsx)(O,{children:"No export found."}),(0,s.jsx)(V,{className:"max-h-64 overflow-y-auto",children:c.map(e=>(0,s.jsxs)(H,{value:e,onSelect:()=>{t.includes(e)?a(t.filter(t=>t!==e)):a([...t,e])},children:[(0,s.jsx)(z.A,{className:(0,i.cn)("mr-2 h-4 w-4",t.includes(e)?"opacity-100":"opacity-0")}),e]},e))})]})]})})]}),d&&(0,s.jsx)("p",{className:"text-xs text-red-500",children:d})]}):(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)("div",{className:(0,i.cn)("flex min-h-12 w-full flex-wrap items-center gap-2 rounded-xl border bg-white/70 px-3 py-2 text-sm shadow-sm backdrop-blur-md transition-colors dark:bg-zinc-900/70",d?"border-red-500/70 ring-1 ring-red-500/40":"border-zinc-200/70 hover:border-zinc-300 dark:border-zinc-800/80 dark:hover:border-zinc-700",o&&"opacity-60 cursor-not-allowed"),children:[t.map(e=>(0,s.jsxs)(S.E,{variant:"secondary",className:"flex items-center gap-1 rounded-full bg-zinc-900/90 px-2 py-1 text-xs text-zinc-50 shadow-sm dark:bg-zinc-100 dark:text-zinc-900",children:[(0,s.jsx)("span",{children:e}),(0,s.jsx)("button",{type:"button",className:"inline-flex h-4 w-4 items-center justify-center rounded-full bg-zinc-800/80 text-[10px] text-zinc-50 transition hover:bg-zinc-700 dark:bg-zinc-200 dark:text-zinc-900 dark:hover:bg-zinc-300",onClick:t=>{t.stopPropagation(),v(e)},children:"✕"})]},e)),(0,s.jsx)("input",{disabled:o,value:p,onChange:e=>f(e.target.value),onKeyDown:e=>{o||("Enter"===e.key||","===e.key||" "===e.key?(e.preventDefault(),y(p)):"Backspace"===e.key&&!p&&t.length&&(e.preventDefault(),a(t.slice(0,-1))))},onBlur:()=>{!o&&p.trim()&&y(p)},placeholder:t.length?j("analyze.fieldExportsPlaceholderMore"):m||j("analyze.fieldExportsPlaceholderEmpty"),className:(0,i.cn)("flex-1 min-w-20 border-none bg-transparent text-sm text-zinc-900 outline-none placeholder:text-zinc-400 dark:text-zinc-50 dark:placeholder:text-zinc-500 disabled:cursor-not-allowed",k&&"placeholder:text-red-500")})]}),d&&(0,s.jsx)("p",{className:"text-xs text-red-500",children:d}),k&&h&&u&&(0,s.jsxs)("div",{className:"mt-1 flex items-center justify-between rounded-md bg-yellow-50 p-2 text-xs text-yellow-700 dark:bg-yellow-900/20 dark:text-yellow-400",children:[(0,s.jsx)("span",{children:j("analyze.suggestionMoveToShared")}),(0,s.jsx)(n.$,{type:"button",variant:"ghost",size:"sm",className:"h-6 px-2 text-xs hover:bg-yellow-100 hover:text-yellow-800 dark:hover:bg-yellow-900/40 dark:hover:text-yellow-300",onClick:u,children:j("analyze.btnMoveToShared")})]})]})}function es(e){let{item:t,updateItem:a,config:d,setConfig:o,removeItem:c,formErrors:m,loading:x,setFullTreeshakeResult:u,allItems:p}=e,{t:f}=(0,l.Bd)(),[g,b]=(0,r.useState)([]),[j,y]=(0,r.useState)(!1),[v,k]=(0,r.useState)(!1),[N,w]=(0,r.useState)(!1),[S,C]=(0,r.useState)(null),[E,R]=(0,r.useState)([]),[T,B]=(0,r.useState)(null);return(0,r.useEffect)(()=>{if(!t.name||!t.version){C(null),R([]);return}(async()=>{w(!0);try{let e={sharedName:t.name.trim(),sharedVersion:t.version.trim(),shared:[[t.name.trim(),t.version.trim(),[]]],target:d.target?d.target.split("\n").map(e=>e.trim()).filter(Boolean):["web","browserslist:> 0.01%,not dead,not op_mini all"],plugins:d.plugins?d.plugins.split(",").map(e=>e.trim()).filter(Boolean):[]},a=p.filter(e=>e.id!==t.id&&e.name&&e.version).map(e=>[e.name.trim(),e.version.trim(),e.exports]);if(e.shared.push(...a),d.shared)try{let t=et(d.shared);e.shared.push(...t)}catch(e){console.warn("Failed to parse shared config for check",e)}let s=e.shared.map(e=>e[0]);if(new Set(s).size!==s.length){let e=s.filter((e,t)=>s.indexOf(e)!==t),a=[...new Set(e)];a.includes(t.name.trim())?B(f("analyze.errorDuplicateSharedCurrent",{name:t.name.trim()})):(Z.oR.error(f("analyze.errorDuplicateSharedDeps",{names:a.join(", ")})),B(f("analyze.errorDuplicateSharedDeps",{names:a.join(", ")}))),C(null),u&&u(null),w(!1);return}let r=await Q(e);!1===r?(C(!1),R([]),u&&u(null)):(C(!0),u&&u(r),r.modules&&R(r.modules))}catch(e){console.error("Check treeshake failed",e),C(null),u&&u(null),Z.oR.error(e.message||"Failed to check treeshake support")}finally{w(!1)}})()},[t.name,t.version,d.target,d.plugins,d.shared,f]),(0,r.useEffect)(()=>{if(!t.name){b([]),B(null);return}let e=t.name.trim(),a=p.filter(e=>e.id!==t.id&&e.name).map(e=>e.name.trim()),s=[];if(d.shared)try{s=et(d.shared).map(e=>e[0])}catch(e){}if(new Set([...a,...s]).has(e)){b([]),B(f("analyze.errorDuplicateSharedCurrent",{name:e}));return}let r=setTimeout(async()=>{y(!0),B(null);try{let e=await fetch(`https://data.jsdelivr.com/v1/package/npm/${t.name}`);if(e.ok){let t=await e.json(),a=(t.versions||[]).map(e=>({version:e})),s=t.tags||{};Object.entries(s).forEach(e=>{let[t,s]=e,r=a.find(e=>e.version===s);r&&(r.tag=t)}),b(a)}else 404===e.status?(b([]),B(`Package "${t.name}" not found or has no versions`),Z.oR.error(`Package "${t.name}" not found`)):b([])}catch(e){console.error("Failed to fetch versions",e),b([])}finally{y(!1)}},500);return()=>clearTimeout(r)},[t.name,p,d.shared]),(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,s.jsxs)("div",{className:"space-y-1.5",children:[(0,s.jsxs)("label",{className:"flex items-center justify-between text-xs font-medium text-slate-700 dark:text-slate-200",children:[(0,s.jsx)("span",{children:f("analyze.fieldSharedLabel")}),m?.name&&(0,s.jsx)("span",{className:"text-[11px] text-red-500",children:m.name})]}),(0,s.jsx)(h,{value:t.name,onChange:e=>{a(t.id,"name",e.target.value),a(t.id,"version",""),a(t.id,"exports",[])},placeholder:f("analyze.fieldSharedPlaceholder"),className:(0,i.cn)("h-9 bg-white/70 text-sm backdrop-blur-sm dark:bg-slate-900/70",(m?.name||T)&&"border-red-500/70 ring-1 ring-red-500/40")}),T&&(0,s.jsx)("span",{className:"text-[11px] text-red-500",children:T})]}),(0,s.jsxs)("div",{className:"space-y-1.5",children:[(0,s.jsxs)("label",{className:"flex items-center justify-between text-xs font-medium text-slate-700 dark:text-slate-200",children:[(0,s.jsx)("span",{children:f("analyze.fieldVersionLabel")}),m?.version&&(0,s.jsx)("span",{className:"text-[11px] text-red-500",children:m.version})]}),(0,s.jsxs)(q,{open:v,onOpenChange:k,children:[(0,s.jsx)(J,{asChild:!0,children:(0,s.jsxs)(n.$,{variant:"outline",role:"combobox","aria-expanded":v,className:(0,i.cn)("h-9 w-full justify-between bg-white/70 text-sm font-normal backdrop-blur-sm dark:bg-slate-900/70",!t.version&&"text-muted-foreground",m?.version&&"border-red-500/70 ring-1 ring-red-500/40"),disabled:!t.name||j,children:[t.version?g.find(e=>e.version===t.version)?.tag?`${t.version} (${g.find(e=>e.version===t.version)?.tag})`:t.version:j?"Loading versions...":f("analyze.fieldVersionPlaceholder"),(0,s.jsx)(G.A,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,s.jsx)(W,{className:"w-[--radix-popover-trigger-width] p-0",children:(0,s.jsxs)(I,{children:[(0,s.jsx)(M,{placeholder:"Search version..."}),(0,s.jsxs)(_,{children:[(0,s.jsx)(O,{children:"No version found."}),(0,s.jsx)(V,{children:g.map(e=>(0,s.jsxs)(H,{value:e.version,onSelect:e=>{a(t.id,"version",e===t.version?"":e),k(!1)},children:[(0,s.jsx)(z.A,{className:(0,i.cn)("mr-2 h-4 w-4",t.version===e.version?"opacity-100":"opacity-0")}),e.version,e.tag&&(0,s.jsx)("span",{className:"ml-2 rounded bg-slate-100 px-1.5 py-0.5 text-[10px] text-slate-500 dark:bg-slate-800 dark:text-slate-400",children:e.tag})]},e.version))})]})]})})]})]})]}),(0,s.jsxs)("div",{className:"space-y-1.5",children:[(0,s.jsxs)("label",{className:"flex items-center justify-between text-xs font-medium text-slate-700 dark:text-slate-200",children:[(0,s.jsx)("span",{children:f("analyze.fieldExportsLabel")}),m?.exports&&(0,s.jsx)("span",{className:"text-[11px] text-red-500",children:m.exports})]}),(0,s.jsx)(ea,{values:t.exports,onChange:e=>a(t.id,"exports",e),error:m?.exports,disabled:x||N||!1===S||!S,options:S?E:void 0,placeholder:!1===S?"This module does not support treeshake":N?"Checking treeshake support...":S?void 0:"Please select a version first",loading:N,item:t,onMoveToShared:()=>{if(!t.name||!t.version)return;let e=`${t.name}@${t.version}`;o(t=>({...t,shared:t.shared?`${t.shared}
|
|
1
|
+
"use strict";(self.rspackChunk_module_federation_treeshake_frontend=self.rspackChunk_module_federation_treeshake_frontend||[]).push([[515],{2835(e,t,a){var s=a(5723);a(2155);var r=a(5445),l=a(127);let n=(0,r.F)("inline-flex items-center rounded-md border border-zinc-200 px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-zinc-950 focus:ring-offset-2 dark:border-zinc-800 dark:focus:ring-zinc-300",{variants:{variant:{default:"border-transparent bg-zinc-900 text-zinc-50 shadow hover:bg-zinc-900/80 dark:bg-zinc-50 dark:text-zinc-900 dark:hover:bg-zinc-50/80",secondary:"border-transparent bg-zinc-100 text-zinc-900 hover:bg-zinc-100/80 dark:bg-zinc-800 dark:text-zinc-50 dark:hover:bg-zinc-800/80",destructive:"border-transparent bg-red-500 text-zinc-50 shadow hover:bg-red-500/80 dark:bg-red-900 dark:text-zinc-50 dark:hover:bg-red-900/80",outline:"text-zinc-950 dark:text-zinc-50"}},defaultVariants:{variant:"default"}});function i(e){let{className:t,variant:a,...r}=e;return(0,s.jsx)("div",{className:(0,l.cn)(n({variant:a}),t),...r})}a.d(t,{E:()=>i})},678(e,t,a){a.r(t),a.d(t,{default:()=>eV});var s=a(5723),r=a(2155),l=a(2903),n=a(7184),i=a(127);let d=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("div",{ref:t,className:(0,i.cn)("rounded-xl border border-zinc-200 bg-white text-zinc-950 shadow dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-50",a),...r})});d.displayName="Card";let o=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("div",{ref:t,className:(0,i.cn)("flex flex-col space-y-1.5 p-6",a),...r})});o.displayName="CardHeader";let c=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("div",{ref:t,className:(0,i.cn)("font-semibold leading-none tracking-tight",a),...r})});c.displayName="CardTitle";let m=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("div",{ref:t,className:(0,i.cn)("text-sm text-zinc-500 dark:text-zinc-400",a),...r})});m.displayName="CardDescription";let x=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("div",{ref:t,className:(0,i.cn)("p-6 pt-0",a),...r})});x.displayName="CardContent",(r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("div",{ref:t,className:(0,i.cn)("flex items-center p-6 pt-0",a),...r})})).displayName="CardFooter";let h=r.forwardRef((e,t)=>{let{className:a,type:r,...l}=e;return(0,s.jsx)("input",{type:r,className:(0,i.cn)("flex h-9 w-full rounded-md border border-zinc-200 bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-zinc-950 placeholder:text-zinc-500 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-zinc-950 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:border-zinc-800 dark:file:text-zinc-50 dark:placeholder:text-zinc-400 dark:focus-visible:ring-zinc-300",a),ref:t,...l})});h.displayName="Input";let u=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("textarea",{className:(0,i.cn)("flex min-h-[60px] w-full rounded-md border border-zinc-200 bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-zinc-500 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-zinc-950 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:border-zinc-800 dark:placeholder:text-zinc-400 dark:focus-visible:ring-zinc-300",a),ref:t,...r})});u.displayName="Textarea";var p=a(1762);let f=p.bL,g=p.R6,b=p.Ke;var j=a(2423),y=a(6317),v=a(970),k=a(4712),N=a(841),w=a(5436),z=a(1048),S=a(2835),C=a(7997),E=a(6886),R=a(6726),T=a(1784);let B=R.bL;R.l9;let $=R.ZL;R.bm;let D=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(R.hJ,{ref:t,className:(0,i.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...r})});D.displayName=R.hJ.displayName;let A=r.forwardRef((e,t)=>{let{className:a,children:r,...l}=e;return(0,s.jsxs)($,{children:[(0,s.jsx)(D,{}),(0,s.jsxs)(R.UC,{ref:t,className:(0,i.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-zinc-200 bg-white p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg dark:border-zinc-800 dark:bg-zinc-950",a),...l,children:[r,(0,s.jsxs)(R.bm,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-zinc-950 focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-zinc-100 data-[state=open]:text-zinc-500 dark:ring-offset-zinc-950 dark:focus:ring-zinc-300 dark:data-[state=open]:bg-zinc-800 dark:data-[state=open]:text-zinc-400 dark:text-zinc-100",children:[(0,s.jsx)(T.A,{className:"h-4 w-4"}),(0,s.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});A.displayName=R.UC.displayName;let U=e=>{let{className:t,...a}=e;return(0,s.jsx)("div",{className:(0,i.cn)("flex flex-col space-y-1.5 text-center sm:text-left",t),...a})};U.displayName="DialogHeader";let L=e=>{let{className:t,...a}=e;return(0,s.jsx)("div",{className:(0,i.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...a})};L.displayName="DialogFooter";let F=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(R.hE,{ref:t,className:(0,i.cn)("text-lg font-semibold leading-none tracking-tight",a),...r})});F.displayName=R.hE.displayName;let P=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(R.VY,{ref:t,className:(0,i.cn)("text-sm text-zinc-500 dark:text-zinc-400",a),...r})});P.displayName=R.VY.displayName;let I=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(C.uB,{ref:t,className:(0,i.cn)("flex h-full w-full flex-col overflow-hidden rounded-md bg-white text-zinc-950 dark:bg-zinc-950 dark:text-zinc-50",a),...r})});I.displayName=C.uB.displayName;let M=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsxs)("div",{className:"flex items-center border-b px-3 flex-1","cmdk-input-wrapper":"",children:[(0,s.jsx)(E.A,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),(0,s.jsx)(C.uB.Input,{ref:t,className:(0,i.cn)("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-zinc-500 disabled:cursor-not-allowed disabled:opacity-50 dark:placeholder:text-zinc-400",a),...r})]})});M.displayName=C.uB.Input.displayName;let _=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(C.uB.List,{ref:t,className:(0,i.cn)("max-h-[300px] overflow-y-auto overflow-x-hidden",a),...r})});_.displayName=C.uB.List.displayName;let O=r.forwardRef((e,t)=>(0,s.jsx)(C.uB.Empty,{ref:t,className:"py-6 text-center text-sm",...e}));O.displayName=C.uB.Empty.displayName;let V=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(C.uB.Group,{ref:t,className:(0,i.cn)("overflow-hidden p-1 text-zinc-950 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-zinc-500 dark:text-zinc-50 dark:[&_[cmdk-group-heading]]:text-zinc-400",a),...r})});V.displayName=C.uB.Group.displayName,(r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(C.uB.Separator,{ref:t,className:(0,i.cn)("-mx-1 h-px bg-zinc-200 dark:bg-zinc-800",a),...r})})).displayName=C.uB.Separator.displayName;let H=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(C.uB.Item,{ref:t,className:(0,i.cn)("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-zinc-100 data-[selected=true]:text-zinc-900 data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 dark:data-[selected=true]:bg-zinc-800 dark:data-[selected=true]:text-zinc-50",a),...r})});H.displayName=C.uB.Item.displayName;var K=a(510);let q=K.bL,J=K.l9;K.Mz;let W=r.forwardRef((e,t)=>{let{className:a,align:r="center",sideOffset:l=4,...n}=e;return(0,s.jsx)(K.ZL,{children:(0,s.jsx)(K.UC,{ref:t,align:r,sideOffset:l,className:(0,i.cn)("z-50 w-72 rounded-md border border-zinc-200 bg-white p-4 text-zinc-950 shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-50",a),...n})})});W.displayName=K.UC.displayName;var Y=a(6078),G=a(3587),Z=a(6396);let X=("u">typeof window?window.localStorage.getItem("treeshake_server_url"):null)||"http://localhost:3000/tree-shaking-shared";async function Q(e){let t=new Headers;t.append("Content-Type","application/json");let{shared:a,target:s,plugins:r,sharedName:l,sharedVersion:n}=e,i=JSON.stringify({shared:a,target:s,plugins:r,libraryType:"global",hostName:"@treeshake/shared-host"}),d=await window.fetch(`${X}/build/check-tree-shaking`,{method:"POST",headers:t,body:i});if(!d.ok)throw Error(`HTTP ${d.status}`);let{status:o,data:c}=await d.json();if("success"!==o)throw Error(c);let m=c.find(e=>e.name===l&&e.version===n);if(!m)throw Error(`未能正常获取到目标${l}@${n}信息`);return!!m.canTreeShaking&&m}var ee=a(7748);function et(e){return e?e.split(/[\n,]/).map(e=>e.trim()).filter(Boolean).map(e=>{let t=e.split("@");if(t.length<2)throw Error(ee.A.t("analyze.sharedVersionRequired",{name:e}));let a=t.pop();return[t.join("@"),a,[]]}):[]}function ea(e){let{values:t,onChange:a,error:d,disabled:o,options:c,placeholder:m,loading:x,item:h,onMoveToShared:u}=e,[p,f]=(0,r.useState)(""),[g,b]=(0,r.useState)(!1),{t:j}=(0,l.Bd)(),y=e=>{let s=e.trim();!s||t.includes(s)||(a([...t,s]),f(""))},v=e=>{o||a(t.filter(t=>t!==e))},k="This module does not support treeshake"===m;return x?(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)("div",{className:"flex min-h-12 w-full items-center justify-center gap-2 rounded-xl border border-zinc-200/70 bg-white/70 px-3 py-2 text-sm shadow-sm backdrop-blur-md dark:border-zinc-800/80 dark:bg-zinc-900/70 opacity-80 cursor-not-allowed",children:[(0,s.jsx)(Y.A,{className:"h-4 w-4 animate-spin text-zinc-500"}),(0,s.jsx)("span",{className:"text-zinc-500",children:m||"Loading..."})]}),d&&(0,s.jsx)("p",{className:"text-xs text-red-500",children:d})]}):c&&c.length>0?(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)(q,{open:g,onOpenChange:b,children:[(0,s.jsx)(J,{asChild:!0,children:(0,s.jsxs)("div",{className:(0,i.cn)("flex min-h-12 w-full flex-wrap items-center gap-2 rounded-xl border bg-white/70 px-3 py-2 text-sm shadow-sm backdrop-blur-md transition-colors dark:bg-zinc-900/70 cursor-pointer",d?"border-red-500/70 ring-1 ring-red-500/40":"border-zinc-200/70 hover:border-zinc-300 dark:border-zinc-800/80 dark:hover:border-zinc-700",o&&"opacity-60 cursor-not-allowed"),children:[t.map(e=>(0,s.jsxs)(S.E,{variant:"secondary",className:"flex items-center gap-1 rounded-full bg-zinc-900/90 px-2 py-1 text-xs text-zinc-50 shadow-sm dark:bg-zinc-100 dark:text-zinc-900",children:[(0,s.jsx)("span",{children:e}),(0,s.jsx)("button",{type:"button",className:"inline-flex h-4 w-4 items-center justify-center rounded-full bg-zinc-800/80 text-[10px] text-zinc-50 transition hover:bg-zinc-700 dark:bg-zinc-200 dark:text-zinc-900 dark:hover:bg-zinc-300",onClick:t=>{t.stopPropagation(),v(e)},children:"✕"})]},e)),(0,s.jsx)("div",{className:(0,i.cn)("flex-1 min-w-20 text-sm text-zinc-500 dark:text-zinc-400",k&&"text-red-500"),children:0===t.length&&(m||"Select exports...")}),(0,s.jsx)(G.A,{className:"ml-auto h-4 w-4 shrink-0 opacity-50"})]})}),(0,s.jsx)(W,{className:"w-[--radix-popover-trigger-width] p-0",align:"start",children:(0,s.jsxs)(I,{children:[(0,s.jsxs)("div",{className:"flex items-center border-b pr-3",children:[(0,s.jsx)(M,{placeholder:"Search exports...",className:"flex-1 border-0 focus:ring-0"}),(0,s.jsx)("button",{type:"button",className:"ml-2 whitespace-nowrap text-xs font-medium text-slate-500 hover:text-slate-800 dark:text-slate-400 dark:hover:text-slate-200",onClick:()=>{t.length===c.length?a([]):a([...c])},children:t.length===c.length?"Unselect All":"Select All"})]}),(0,s.jsxs)(_,{children:[(0,s.jsx)(O,{children:"No export found."}),(0,s.jsx)(V,{className:"max-h-64 overflow-y-auto",children:c.map(e=>(0,s.jsxs)(H,{value:e,onSelect:()=>{t.includes(e)?a(t.filter(t=>t!==e)):a([...t,e])},children:[(0,s.jsx)(z.A,{className:(0,i.cn)("mr-2 h-4 w-4",t.includes(e)?"opacity-100":"opacity-0")}),e]},e))})]})]})})]}),d&&(0,s.jsx)("p",{className:"text-xs text-red-500",children:d})]}):(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)("div",{className:(0,i.cn)("flex min-h-12 w-full flex-wrap items-center gap-2 rounded-xl border bg-white/70 px-3 py-2 text-sm shadow-sm backdrop-blur-md transition-colors dark:bg-zinc-900/70",d?"border-red-500/70 ring-1 ring-red-500/40":"border-zinc-200/70 hover:border-zinc-300 dark:border-zinc-800/80 dark:hover:border-zinc-700",o&&"opacity-60 cursor-not-allowed"),children:[t.map(e=>(0,s.jsxs)(S.E,{variant:"secondary",className:"flex items-center gap-1 rounded-full bg-zinc-900/90 px-2 py-1 text-xs text-zinc-50 shadow-sm dark:bg-zinc-100 dark:text-zinc-900",children:[(0,s.jsx)("span",{children:e}),(0,s.jsx)("button",{type:"button",className:"inline-flex h-4 w-4 items-center justify-center rounded-full bg-zinc-800/80 text-[10px] text-zinc-50 transition hover:bg-zinc-700 dark:bg-zinc-200 dark:text-zinc-900 dark:hover:bg-zinc-300",onClick:t=>{t.stopPropagation(),v(e)},children:"✕"})]},e)),(0,s.jsx)("input",{disabled:o,value:p,onChange:e=>f(e.target.value),onKeyDown:e=>{o||("Enter"===e.key||","===e.key||" "===e.key?(e.preventDefault(),y(p)):"Backspace"===e.key&&!p&&t.length&&(e.preventDefault(),a(t.slice(0,-1))))},onBlur:()=>{!o&&p.trim()&&y(p)},placeholder:t.length?j("analyze.fieldExportsPlaceholderMore"):m||j("analyze.fieldExportsPlaceholderEmpty"),className:(0,i.cn)("flex-1 min-w-20 border-none bg-transparent text-sm text-zinc-900 outline-none placeholder:text-zinc-400 dark:text-zinc-50 dark:placeholder:text-zinc-500 disabled:cursor-not-allowed",k&&"placeholder:text-red-500")})]}),d&&(0,s.jsx)("p",{className:"text-xs text-red-500",children:d}),k&&h&&u&&(0,s.jsxs)("div",{className:"mt-1 flex items-center justify-between rounded-md bg-yellow-50 p-2 text-xs text-yellow-700 dark:bg-yellow-900/20 dark:text-yellow-400",children:[(0,s.jsx)("span",{children:j("analyze.suggestionMoveToShared")}),(0,s.jsx)(n.$,{type:"button",variant:"ghost",size:"sm",className:"h-6 px-2 text-xs hover:bg-yellow-100 hover:text-yellow-800 dark:hover:bg-yellow-900/40 dark:hover:text-yellow-300",onClick:u,children:j("analyze.btnMoveToShared")})]})]})}function es(e){let{item:t,updateItem:a,config:d,setConfig:o,removeItem:c,formErrors:m,loading:x,setFullTreeshakeResult:u,allItems:p}=e,{t:f}=(0,l.Bd)(),[g,b]=(0,r.useState)([]),[j,y]=(0,r.useState)(!1),[v,k]=(0,r.useState)(!1),[N,w]=(0,r.useState)(!1),[S,C]=(0,r.useState)(null),[E,R]=(0,r.useState)([]),[T,B]=(0,r.useState)(null);return(0,r.useEffect)(()=>{if(!t.name||!t.version){C(null),R([]);return}(async()=>{w(!0);try{let e={sharedName:t.name.trim(),sharedVersion:t.version.trim(),shared:[[t.name.trim(),t.version.trim(),[]]],target:d.target?d.target.split("\n").map(e=>e.trim()).filter(Boolean):["web","browserslist:> 0.01%,not dead,not op_mini all"],plugins:d.plugins?d.plugins.split(",").map(e=>e.trim()).filter(Boolean):[]},a=p.filter(e=>e.id!==t.id&&e.name&&e.version).map(e=>[e.name.trim(),e.version.trim(),e.exports]);if(e.shared.push(...a),d.shared)try{let t=et(d.shared);e.shared.push(...t)}catch(e){console.warn("Failed to parse shared config for check",e)}let s=e.shared.map(e=>e[0]);if(new Set(s).size!==s.length){let e=s.filter((e,t)=>s.indexOf(e)!==t),a=[...new Set(e)];a.includes(t.name.trim())?B(f("analyze.errorDuplicateSharedCurrent",{name:t.name.trim()})):(Z.oR.error(f("analyze.errorDuplicateSharedDeps",{names:a.join(", ")})),B(f("analyze.errorDuplicateSharedDeps",{names:a.join(", ")}))),C(null),u&&u(null),w(!1);return}let r=await Q(e);!1===r?(C(!1),R([]),u&&u(null)):(C(!0),u&&u(r),r.modules&&R(r.modules))}catch(e){console.error("Check treeshake failed",e),C(null),u&&u(null),Z.oR.error(e.message||"Failed to check treeshake support")}finally{w(!1)}})()},[t.name,t.version,d.target,d.plugins,d.shared,f]),(0,r.useEffect)(()=>{if(!t.name){b([]),B(null);return}let e=t.name.trim(),a=p.filter(e=>e.id!==t.id&&e.name).map(e=>e.name.trim()),s=[];if(d.shared)try{s=et(d.shared).map(e=>e[0])}catch(e){}if(new Set([...a,...s]).has(e)){b([]),B(f("analyze.errorDuplicateSharedCurrent",{name:e}));return}let r=setTimeout(async()=>{y(!0),B(null);try{let e=await fetch(`https://data.jsdelivr.com/v1/package/npm/${t.name}`);if(e.ok){let t=await e.json(),a=(t.versions||[]).map(e=>({version:e})),s=t.tags||{};Object.entries(s).forEach(e=>{let[t,s]=e,r=a.find(e=>e.version===s);r&&(r.tag=t)}),b(a)}else 404===e.status?(b([]),B(`Package "${t.name}" not found or has no versions`),Z.oR.error(`Package "${t.name}" not found`)):b([])}catch(e){console.error("Failed to fetch versions",e),b([])}finally{y(!1)}},500);return()=>clearTimeout(r)},[t.name,p,d.shared]),(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,s.jsxs)("div",{className:"space-y-1.5",children:[(0,s.jsxs)("label",{className:"flex items-center justify-between text-xs font-medium text-slate-700 dark:text-slate-200",children:[(0,s.jsx)("span",{children:f("analyze.fieldSharedLabel")}),m?.name&&(0,s.jsx)("span",{className:"text-[11px] text-red-500",children:m.name})]}),(0,s.jsx)(h,{value:t.name,onChange:e=>{a(t.id,"name",e.target.value),a(t.id,"version",""),a(t.id,"exports",[])},placeholder:f("analyze.fieldSharedPlaceholder"),className:(0,i.cn)("h-9 bg-white/70 text-sm backdrop-blur-sm dark:bg-slate-900/70",(m?.name||T)&&"border-red-500/70 ring-1 ring-red-500/40")}),T&&(0,s.jsx)("span",{className:"text-[11px] text-red-500",children:T})]}),(0,s.jsxs)("div",{className:"space-y-1.5",children:[(0,s.jsxs)("label",{className:"flex items-center justify-between text-xs font-medium text-slate-700 dark:text-slate-200",children:[(0,s.jsx)("span",{children:f("analyze.fieldVersionLabel")}),m?.version&&(0,s.jsx)("span",{className:"text-[11px] text-red-500",children:m.version})]}),(0,s.jsxs)(q,{open:v,onOpenChange:k,children:[(0,s.jsx)(J,{asChild:!0,children:(0,s.jsxs)(n.$,{variant:"outline",role:"combobox","aria-expanded":v,className:(0,i.cn)("h-9 w-full justify-between bg-white/70 text-sm font-normal backdrop-blur-sm dark:bg-slate-900/70",!t.version&&"text-muted-foreground",m?.version&&"border-red-500/70 ring-1 ring-red-500/40"),disabled:!t.name||j,children:[t.version?g.find(e=>e.version===t.version)?.tag?`${t.version} (${g.find(e=>e.version===t.version)?.tag})`:t.version:j?"Loading versions...":f("analyze.fieldVersionPlaceholder"),(0,s.jsx)(G.A,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,s.jsx)(W,{className:"w-[--radix-popover-trigger-width] p-0",children:(0,s.jsxs)(I,{children:[(0,s.jsx)(M,{placeholder:"Search version..."}),(0,s.jsxs)(_,{children:[(0,s.jsx)(O,{children:"No version found."}),(0,s.jsx)(V,{children:g.map(e=>(0,s.jsxs)(H,{value:e.version,onSelect:e=>{a(t.id,"version",e===t.version?"":e),k(!1)},children:[(0,s.jsx)(z.A,{className:(0,i.cn)("mr-2 h-4 w-4",t.version===e.version?"opacity-100":"opacity-0")}),e.version,e.tag&&(0,s.jsx)("span",{className:"ml-2 rounded bg-slate-100 px-1.5 py-0.5 text-[10px] text-slate-500 dark:bg-slate-800 dark:text-slate-400",children:e.tag})]},e.version))})]})]})})]})]})]}),(0,s.jsxs)("div",{className:"space-y-1.5",children:[(0,s.jsxs)("label",{className:"flex items-center justify-between text-xs font-medium text-slate-700 dark:text-slate-200",children:[(0,s.jsx)("span",{children:f("analyze.fieldExportsLabel")}),m?.exports&&(0,s.jsx)("span",{className:"text-[11px] text-red-500",children:m.exports})]}),(0,s.jsx)(ea,{values:t.exports,onChange:e=>a(t.id,"exports",e),error:m?.exports,disabled:x||N||!1===S||!S,options:S?E:void 0,placeholder:!1===S?"This module does not support treeshake":N?"Checking treeshake support...":S?void 0:"Please select a version first",loading:N,item:t,onMoveToShared:()=>{if(!t.name||!t.version)return;let e=`${t.name}@${t.version}`;o(t=>({...t,shared:t.shared?`${t.shared}
|
|
2
2
|
${e}`:e})),p.length>1?c(t.id):(a(t.id,"name",""),a(t.id,"version",""),a(t.id,"exports",[])),Z.oR.success(`Moved ${t.name} to shared config`)}}),(0,s.jsx)("p",{className:"text-[11px] text-slate-500 dark:text-slate-400",children:f("analyze.fieldExportsHelp")})]})]})}var er=a(5227);let el=(0,a(5445).F)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),en=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(er.b,{ref:t,className:(0,i.cn)(el(),a),...r})});en.displayName=er.b.displayName;var ei=a(2314);async function ed(e,t){try{if("u"<typeof window||"u"<typeof AbortController){let t=await fetch(e.href,{method:"HEAD"}),a=t.headers.get("Content-Length")??t.headers.get("content-length");if(!a)return null;let s=Number(a);if(Number.isNaN(s)||s<=0)return null;return s}let a=new AbortController,s=window.setTimeout(()=>a.abort(),t);try{let t=await fetch(e.href,{method:"HEAD",signal:a.signal}),s=t.headers.get("Content-Length")??t.headers.get("content-length");if(!s)return null;let r=Number(s);if(Number.isNaN(r)||r<=0)return null;return r}finally{window.clearTimeout(s)}}catch{return null}}async function eo(e,t,a){let s,r=e.transferSize||0,l=e.encodedBodySize||0,n=e.decodedBodySize||0,i=e.duration||0,d="unknown",o="ok";if(r>0||l>0||n>0)d="performance";else{let e=await ed(t,5e3);if(null!==e)r=r||e,l=l||e,d="head",o="restricted",s="Performance 体积为 0,使用 HEAD Content-Length 作为回退。";else if(a)try{let e=new TextEncoder().encode(a).length;e>0?(r=r||e,l=l||e,n=n||e,d="estimated",o="restricted",s="无法从浏览器获取准确体积,使用 TextEncoder 估算字节数。"):(o="unavailable",s="无法从 Performance、HEAD 或估算中获取脚本体积。")}catch{o="unavailable",s="当前环境不支持 TextEncoder 估算脚本体积。"}}return r||l||n||(o="unavailable"),{transferSize:r||null,encodedBodySize:l||null,decodedBodySize:n||null,sizeSource:d,sizeStatus:o,notes:s,duration:i}}async function ec(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if("u"<typeof window||"u"<typeof performance)throw Error("当前环境不支持 Performance API,无法读取资源体积。");if(!("getEntriesByType"in performance))throw Error("当前浏览器未暴露 performance.getEntriesByType,无法扫描资源。");let t=performance.getEntriesByType("resource").filter(e=>{if("script"===e.initiatorType)return!0;if("other"===e.initiatorType){let t=e.name||"";return t.endsWith(".js")||t.includes(".js?")}return!1}).map(async t=>{let a;try{a=new URL(t.name,window.location.href)}catch{return null}let s=a.href.toLowerCase(),r=new Set;if(e.forEach(e=>{s.includes(e.toLowerCase())&&r.add(e)}),!r.size)return null;let l="";try{let e=await fetch(a.href);e.ok&&(l=await e.text())}catch(e){console.warn("Failed to fetch script content:",a.href,e)}let n=await eo(t,a,l);return{id:a.href,url:a.href,libraries:Array.from(r),transferSize:n.transferSize,encodedBodySize:n.encodedBodySize,decodedBodySize:n.decodedBodySize,sizeSource:n.sizeSource,sizeStatus:n.sizeStatus,notes:n.notes,duration:n.duration,content:l||void 0}}),a=(await Promise.all(t)).filter(e=>!!e);return a.sort((e,t)=>{let a=e.transferSize??e.encodedBodySize??0;return(t.transferSize??t.encodedBodySize??0)-a}),a}let em=e=>e.startsWith("//")?window.location.protocol+e:e,ex=e=>new Promise((t,a)=>{if(document.querySelector(`script[src="${e}"]`))return void t();let s=document.createElement("script");s.src=e,s.crossOrigin="anonymous",s.onload=()=>t(),s.onerror=()=>a(Error(`Failed to load script: ${e}`)),document.body.appendChild(s)}),eh=async e=>{let{sharedName:t,sharedVersion:a,raw:s,treeshakeModules:r,fullTreeshakeResult:l}=e,n=s.find(e=>e.name===t&&e.version===a);if(!l||!n)throw Error(ee.A.t("analyze.responseMissingJs"));l.cdnUrl=em(l.cdnUrl),n.cdnUrl=em(n.cdnUrl),await Promise.all([ex(l.cdnUrl),ex(n.cdnUrl)]);let i=await ec([l.cdnUrl,n.cdnUrl]),d=e=>i.find(t=>t.url===e)||{id:e,url:e,libraries:[],transferSize:0,encodedBodySize:0,decodedBodySize:0,sizeSource:"unknown",sizeStatus:"unavailable",duration:0},o=d(l.cdnUrl),c=d(n.cdnUrl),m={js:o.content||l.cdnUrl,size:o.encodedBodySize||0,modules:{names:l.modules},resourcePerf:o},x={js:c.content||n.cdnUrl,size:c.encodedBodySize||0,modules:{names:r||n.modules},resourcePerf:c};return console.log("fullRecord: ",o),console.log("treeshakeRecord: ",c),{full:m,treeshake:x}};async function eu(e,t){let a=new Headers;a.append("Content-Type","application/json");let{shared:s,target:r,plugins:l,sharedName:n,sharedVersion:i}=e,d=JSON.stringify({shared:s,target:r,plugins:l,libraryType:"global",hostName:"@treeshake/shared-host"}),o=await window.fetch(`${X}/build`,{method:"POST",headers:a,body:d});if(!o.ok)throw Error(`HTTP ${o.status}`);let{status:c,data:m}=await o.json();if("success"!==c)throw Error(m);let x=[];for(let e of s){let a=e[0],s=e[1],r=e[2],l=a===n&&s===i,d=m.find(e=>e.name===a&&e.version===s);if(!d)continue;let o=l?t:d;try{let e=await eh({sharedName:a,sharedVersion:s,raw:m,treeshakeModules:r,fullTreeshakeResult:o});x.push({...e,sharedName:a})}catch(e){console.error(`Failed to normalize response for ${a}`,e)}}return x}let ep=async e=>{let t=em(e),a=[],s=[],r=[],l=await fetch(t);if(!l.ok)throw Error(`Failed to fetch manifest: HTTP ${l.status}`);let n=await l.json();if(n.shared?.length){let e=n.shared.some(e=>e.usedExports&&e.usedExports.length>0);n.shared.forEach(t=>{e&&(!t.usedExports||0===t.usedExports.length)?s.push(`${t.name}@${t.version}`):a.push({id:`${t.name}@${t.version}`,name:t.name,version:t.version,exports:t.usedExports??[]})})}return n.remotes?.length&&n.remotes.forEach(e=>{let t=e.federationContainerName??e.name??"";if(!t)return;let a=t.replace(/^app:/,""),s=e.version??(e.entry?String(e.entry):void 0);r.push({name:a,version:s})}),{pureShared:s,sharedItems:a,remotes:r}};async function ef(e){return ep(e)}var eg=a(3222);let eb=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(eg.bL,{ref:t,className:(0,i.cn)("peer h-4 w-4 shrink-0 rounded-sm border border-zinc-200 border-zinc-900 shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-zinc-950 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-zinc-900 data-[state=checked]:text-zinc-50 dark:border-zinc-800 dark:border-zinc-50 dark:focus-visible:ring-zinc-300 dark:data-[state=checked]:bg-zinc-50 dark:data-[state=checked]:text-zinc-900",a),...r,children:(0,s.jsx)(eg.C1,{className:(0,i.cn)("flex items-center justify-center text-current"),children:(0,s.jsx)(z.A,{className:"h-4 w-4"})})})});function ej(e){let{open:t,onOpenChange:a,remotes:l,onConfirm:i}=e,[d,o]=(0,r.useState)([]);return(0,r.useEffect)(()=>{t&&o(l.map(e=>e.name))},[t,l]),(0,s.jsx)(B,{open:t,onOpenChange:a,children:(0,s.jsxs)(A,{className:"sm:max-w-[425px] dark:bg-slate-900 dark:border-slate-800",children:[(0,s.jsxs)(U,{children:[(0,s.jsx)(F,{className:"dark:text-slate-100",children:"Select Remotes to Add"}),(0,s.jsx)(P,{children:"Choose which remote modules you want to add to the analysis."})]}),(0,s.jsx)("div",{className:"grid gap-4 py-4 max-h-[60vh] overflow-y-auto",children:l.map(e=>(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)(eb,{id:`remote-${e.name}`,checked:d.includes(e.name),onCheckedChange:()=>{var t;return t=e.name,void o(e=>e.includes(t)?e.filter(e=>e!==t):[...e,t])}}),(0,s.jsxs)("label",{htmlFor:`remote-${e.name}`,className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 dark:text-slate-200",children:[e.name," ",e.version?(0,s.jsxs)("span",{className:"text-muted-foreground text-xs dark:text-slate-400",children:["(",e.version,")"]}):null]})]},e.name))}),(0,s.jsxs)(L,{children:[(0,s.jsx)(n.$,{variant:"outline",onClick:()=>a(!1),className:"dark:border-slate-700 dark:text-slate-300 dark:hover:bg-slate-800",children:"Cancel"}),(0,s.jsxs)(n.$,{onClick:()=>{i(l.filter(e=>d.includes(e.name))),a(!1)},children:["Confirm (",d.length,")"]})]})]})})}eb.displayName=eg.bL.displayName;let ey=e=>e.startsWith("http://")||e.startsWith("https://")||e.startsWith("//");function ev(e){let{open:t,onOpenChange:a,setSharedItems:l,setConfig:d}=e,[o,c]=(0,r.useState)([{id:"1",name:"",manifestUrl:""}]),[m,x]=(0,r.useState)(!1),u=(0,r.useRef)({}),[p,f]=(0,r.useState)(!1),[g,b]=(0,r.useState)([]),j=(0,r.useCallback)((e,t)=>{if(!ey(t))return;let a=`${e}-config`;u.current[a]&&clearTimeout(u.current[a]),u.current[a]=setTimeout(()=>{k(e,t),delete u.current[a]},500)},[]),k=(0,r.useCallback)(async(e,t)=>{if(t){c(t=>t.map(t=>t.id===e?{...t,error:null}:t));try{let a=await ef(t);c(t=>t.map(t=>t.id===e?{...t,error:null,configData:a?{pureShared:a.pureShared,sharedItems:a.sharedItems||[],remotes:a.remotes}:null}:t))}catch(s){console.error(`Failed to fetch config for ${t}`,s);let a="Failed to load config";"object"==typeof s&&null!==s&&("response"in s&&s.response?.status===404?a="Manifest not found":"message"in s&&"string"==typeof s.message&&(a=s.message)),c(t=>t.map(t=>t.id===e?{...t,configData:null,error:a}:t))}}},[]),N=(e,t)=>{c(a=>{let s=a.map(a=>{if(a.id!==e)return a;let s={...a,...t};return(void 0!==t.name&&t.name!==a.name||void 0!==t.manifestUrl&&t.manifestUrl!==a.manifestUrl)&&(s.configData=null),s}),r=s.find(t=>t.id===e);return r?.manifestUrl&&j(e,r.manifestUrl),s})},w=async()=>{let e=o.filter(e=>e.name&&e.manifestUrl);if(0===e.length)return void Z.oR.error("Please fill in at least one module");x(!0);try{let t=[],s={},r=[],n=0;for(let a of e)a.configData?(t.push(...a.configData.sharedItems),a.configData.pureShared&&r.push(...a.configData.pureShared)):n++;if(n>0){let a=e.filter(e=>!e.configData);(await Promise.all(a.map(e=>ef(e.manifestUrl).catch(()=>null)))).forEach(e=>{e&&(e.sharedItems&&t.push(...e.sharedItems),e.pureShared.length>0&&r.push(...e.pureShared))})}if(r.length>0){let e=new Set(t.map(e=>e.name)),a=r.filter(t=>{let a=t.split("@"),s=t;return a.length>1&&(s=t.startsWith("@")?a.length>2?"@"+a[1]:t:a[0]),!e.has(s)});a.length>0&&(s.shared=a.join("\n"))}s.target||(s.target="web,\nbrowserslist:> 0.01%,not dead,not op_mini all"),t.length>0?(l(t),d(e=>({...e,...s})),a(!1),Z.oR.success(`Loaded config for ${e.length} modules`)):Z.oR.error("Failed to load manifest config or no data returned")}catch(e){console.error(e),Z.oR.error("Error loading manifest config")}finally{x(!1)}},z=o.every(e=>e.name&&e.manifestUrl&&!e.error);return(0,s.jsxs)(B,{open:t,onOpenChange:a,children:[(0,s.jsx)(ej,{open:p,onOpenChange:f,remotes:g,onConfirm:e=>{c(t=>{let a=[...t],s=new Set(t.map(e=>e.name)),r=[];return e.forEach(e=>{if(!s.has(e.name)){let t=ey(e.version??"")?e.version:"",l={id:crypto.randomUUID(),name:e.name,manifestUrl:t};a.push(l),r.push(l),s.add(e.name)}}),setTimeout(()=>{r.forEach(e=>{e.manifestUrl&&j(e.id,e.manifestUrl)})},0),a}),Z.oR.success(`Added ${e.length} remote modules`)}}),(0,s.jsxs)(A,{className:"sm:max-w-[650px] dark:bg-slate-900 dark:border-slate-800",children:[(0,s.jsxs)(U,{children:[(0,s.jsx)(F,{className:"dark:text-slate-100",children:"Import Manifest Config"}),(0,s.jsx)(P,{children:"Provide a manifest stats URL to prefill shared exports."})]}),(0,s.jsxs)("div",{className:"grid gap-4 py-4 max-h-[60vh] overflow-y-auto",children:[o.map(e=>(0,s.jsxs)("div",{className:(0,i.cn)("relative grid gap-4 rounded-lg border border-slate-200/60 bg-white/50 px-8 py-6 dark:border-slate-800/60 dark:bg-slate-900/50",e.error&&"border-red-500/50 dark:border-red-500/50 bg-red-50/10 dark:bg-red-900/10"),children:[o.length>1&&(0,s.jsx)("button",{type:"button",onClick:()=>{var t;return t=e.id,void c(e=>e.length<=1?e:e.filter(e=>e.id!==t))},className:"absolute right-2 top-2 z-10 text-slate-400 hover:text-red-500 dark:text-slate-500 dark:hover:text-red-400",children:(0,s.jsx)(y.A,{className:"h-4 w-4"})}),(0,s.jsxs)("div",{className:"grid grid-cols-4 items-center gap-4",children:[(0,s.jsx)(en,{htmlFor:`registry-name-${e.id}`,className:"text-right dark:text-slate-300",children:"Name"}),(0,s.jsx)(h,{id:`registry-name-${e.id}`,value:e.name,onChange:t=>N(e.id,{name:t.target.value}),placeholder:"@scope/name",className:"col-span-3 dark:bg-slate-900/50 dark:border-slate-800/60 dark:text-slate-200 dark:placeholder:text-slate-500"})]}),(0,s.jsxs)("div",{className:"grid grid-cols-4 items-center gap-4",children:[(0,s.jsx)(en,{className:"text-right dark:text-slate-300",children:"Manifest URL"}),(0,s.jsx)(h,{value:e.manifestUrl,onChange:t=>N(e.id,{manifestUrl:t.target.value}),placeholder:"https://.../mf-manifest-stats.json",className:"col-span-3 dark:bg-slate-900/50 dark:border-slate-800/60 dark:text-slate-200 dark:placeholder:text-slate-500"})]}),e.error&&(0,s.jsx)("div",{className:"text-xs text-red-500 mt-2",children:e.error}),e.configData?.remotes&&e.configData.remotes.length>0?(0,s.jsx)("div",{className:"mt-2",children:(0,s.jsxs)(n.$,{type:"button",variant:"outline",size:"sm",className:"h-7 text-xs flex items-center gap-1 w-full dark:border-slate-700 dark:text-slate-300 dark:hover:bg-slate-800",onClick:()=>{b(e.configData.remotes),f(!0)},children:[(0,s.jsx)(ei.A,{className:"h-3 w-3"}),"Add Remotes (",e.configData.remotes.length,")"]})}):null]},e.id)),(0,s.jsxs)(n.$,{type:"button",variant:"outline",size:"sm",onClick:()=>{c(e=>[...e,{id:crypto.randomUUID(),name:"",manifestUrl:""}])},className:"w-full border-dashed dark:border-slate-700 dark:bg-slate-900/50 dark:text-slate-300 dark:hover:bg-slate-800",children:[(0,s.jsx)(v.A,{className:"mr-2 h-4 w-4"})," Add another module"]})]}),(0,s.jsx)(L,{children:(0,s.jsx)(n.$,{type:"button",onClick:w,disabled:m||!z,children:m?"Loading...":"Load Config"})})]})]})}function ek(e){let{sharedItems:t,setSharedItems:a,config:p,setConfig:S,formErrors:C,loading:E,advancedOpen:R,setAdvancedOpen:T,onSubmit:B,onReset:$,setFullTreeshakeResult:D}=e,{t:A}=(0,l.Bd)(),[U,L]=(0,r.useState)(!1),F=(e,t,s)=>{a(a=>a.map(a=>a.id===e?{...a,[t]:s}:a))},P=e=>{a(t=>t.length<=1?t:t.filter(t=>t.id!==e))};return(0,s.jsxs)(d,{className:"relative border-slate-200/80 bg-white/80 shadow-xl shadow-sky-500/20 backdrop-blur-2xl dark:border-slate-800/80 dark:bg-slate-900/90",children:[(0,s.jsx)(o,{className:"pb-4",children:(0,s.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,s.jsxs)("div",{children:[(0,s.jsxs)(c,{className:"flex items-center gap-2 text-sm font-semibold",children:[(0,s.jsx)(j.A,{className:"h-4 w-4 text-sky-500"}),A("analyze.formCardTitle")]}),(0,s.jsx)(m,{className:"mt-1 text-xs",children:A("analyze.formCardDesc")})]}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(n.$,{type:"button",size:"sm",variant:"ghost",className:"h-8 text-xs text-slate-500 hover:text-slate-800 dark:text-slate-400 dark:hover:text-slate-200",onClick:()=>{a([{id:"1",name:"antd",version:"6.1.0",exports:["Button","List","Badge"]}]),S(e=>({...e,shared:"react@18.2.0\nreact-dom@18.2.0",target:"web\nbrowserslist:> 0.01%,not dead,not op_mini all",plugins:""}))},children:A("common.fillDemo")}),(0,s.jsx)(n.$,{type:"button",size:"sm",variant:"ghost",className:"h-8 text-xs text-slate-500 hover:text-slate-800 dark:text-slate-400 dark:hover:text-slate-200",onClick:()=>L(!0),children:A("common.importManifest")}),(0,s.jsx)(n.$,{type:"button",size:"sm",variant:"outline",className:"h-8 text-xs",onClick:$,children:A("common.reset")})]})]})}),(0,s.jsxs)(x,{className:"space-y-4 pb-5 text-sm",children:[(0,s.jsx)(ev,{open:U,onOpenChange:L,setSharedItems:a,setConfig:S}),(0,s.jsxs)("form",{className:"space-y-4",onSubmit:B,children:[t.map((e,a)=>(0,s.jsxs)("div",{className:"relative rounded-lg border border-slate-200/60 bg-white/50 p-3 dark:border-slate-800/60 dark:bg-slate-900/50",children:[t.length>1&&(0,s.jsx)("button",{type:"button",onClick:()=>P(e.id),className:"absolute right-2 top-2 text-slate-400 hover:text-red-500",children:(0,s.jsx)(y.A,{className:"h-4 w-4"})}),(0,s.jsx)(es,{item:e,updateItem:F,config:p,setConfig:S,removeItem:P,formErrors:C.items?.[e.id],loading:E,setFullTreeshakeResult:0===a?D:void 0,allItems:t})]},e.id)),(0,s.jsxs)(n.$,{type:"button",variant:"outline",size:"sm",className:"w-full border-dashed text-xs",onClick:()=>{a(e=>[...e,{id:crypto.randomUUID(),name:"",version:"",exports:[]}])},children:[(0,s.jsx)(v.A,{className:"mr-2 h-3 w-3"})," Add another shared module"]}),(0,s.jsxs)(f,{open:R,onOpenChange:T,children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-2 rounded-xl bg-slate-50/90 px-3 py-2 text-xs shadow-sm dark:bg-slate-900/80",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("div",{className:"flex h-6 w-6 items-center justify-center rounded-full bg-sky-500/10 text-sky-600 dark:bg-sky-500/20 dark:text-sky-300",children:(0,s.jsx)(k.A,{className:"h-3 w-3"})}),(0,s.jsxs)("div",{className:"flex flex-col",children:[(0,s.jsx)("span",{className:"font-medium text-slate-700 dark:text-slate-200",children:A("advanced.title")}),(0,s.jsx)("span",{className:"text-[11px] text-slate-500 dark:text-slate-400",children:A("advanced.subtitle")})]})]}),(0,s.jsx)("div",{className:"flex items-center gap-2",children:(0,s.jsx)(g,{asChild:!0,children:(0,s.jsx)(n.$,{type:"button",size:"sm",variant:"ghost",className:"h-7 px-2 text-[11px]",children:R?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(s.Fragment,{children:A("advanced.collapse")}),(0,s.jsx)(N.A,{className:"ml-1 h-3 w-3"})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(s.Fragment,{children:A("advanced.expand")}),(0,s.jsx)(w.A,{className:"ml-1 h-3 w-3"})]})})})})]}),(0,s.jsxs)(b,{className:"mt-3 space-y-3 rounded-xl border border-slate-200/80 bg-white/90 p-3 text-xs shadow-sm dark:border-slate-700 dark:bg-slate-900/90",children:[(0,s.jsxs)("div",{className:"space-y-1.5",children:[(0,s.jsxs)("label",{className:"flex items-center justify-between text-[11px] font-medium text-slate-600 dark:text-slate-300",children:[(0,s.jsx)("span",{children:A("advanced.sharedLabel")}),C.sharedConfig&&(0,s.jsx)("span",{className:"text-[11px] text-red-500",children:C.sharedConfig})]}),(0,s.jsx)(u,{value:p.shared||"",onChange:e=>S(t=>({...t,shared:e.target.value})),placeholder:A("advanced.sharedPlaceholder"),className:(0,i.cn)("h-20 bg-slate-50/80 text-xs dark:bg-slate-900/80",C.sharedConfig&&"border-red-500/70 ring-1 ring-red-500/40")}),(0,s.jsx)("p",{className:"text-[11px] text-slate-500 dark:text-slate-400",children:A("advanced.sharedDesc")})]}),(0,s.jsxs)("div",{className:"space-y-1.5",children:[(0,s.jsx)("label",{className:"text-[11px] font-medium text-slate-600 dark:text-slate-300",children:A("advanced.targetLabel")}),(0,s.jsx)(u,{value:p.target,onChange:e=>S(t=>({...t,target:e.target.value})),placeholder:A("advanced.targetPlaceholder"),className:"h-20 bg-slate-50/80 text-xs dark:bg-slate-900/80"}),(0,s.jsx)("p",{className:"text-[11px] text-slate-500 dark:text-slate-400",children:A("advanced.targetDesc")})]}),(0,s.jsxs)("div",{className:"space-y-1.5",children:[(0,s.jsx)("label",{className:"text-[11px] font-medium text-slate-600 dark:text-slate-300",children:A("advanced.pluginsLabel")}),(0,s.jsx)(h,{value:p.plugins||"",onChange:e=>S(t=>({...t,plugins:e.target.value})),placeholder:A("advanced.pluginsPlaceholder"),className:"h-8 bg-slate-50/80 text-xs dark:bg-slate-900/80"}),(0,s.jsx)("p",{className:"text-[11px] text-slate-500 dark:text-slate-400",children:A("advanced.pluginsDesc")})]})]})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-3 pt-2 sm:flex-row sm:items-center sm:justify-between",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 text-[11px] text-slate-500 dark:text-slate-400",children:[(0,s.jsx)("div",{className:"flex h-5 w-5 items-center justify-center rounded-full bg-emerald-500/10 text-emerald-600 dark:bg-emerald-500/20 dark:text-emerald-300",children:(0,s.jsx)(z.A,{className:"h-3 w-3"})}),(0,s.jsx)("span",{children:A("common.formSubmitHint")})]}),(0,s.jsx)("div",{className:"flex items-center gap-2",children:(0,s.jsx)(n.$,{type:"submit",className:"inline-flex items-center gap-2 rounded-full bg-gradient-to-r from-sky-500 via-fuchsia-500 to-emerald-500 px-5 text-sm font-medium text-white shadow-lg shadow-sky-500/40 transition-transform hover:translate-y-0.5 hover:shadow-xl disabled:opacity-70",disabled:E,children:E?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(j.A,{className:"h-4 w-4 animate-spin"}),A("common.submitLoading")]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(j.A,{className:"h-4 w-4"}),A("common.submitIdle")]})})})]})]})]})]})}var eN=a(6210);let ew=r.forwardRef((e,t)=>{let{className:a,value:r,...l}=e;return(0,s.jsx)(eN.bL,{ref:t,className:(0,i.cn)("relative h-2 w-full overflow-hidden rounded-full bg-zinc-900/20 dark:bg-zinc-50/20",a),...l,children:(0,s.jsx)(eN.C1,{className:"h-full w-full flex-1 bg-zinc-900 transition-all dark:bg-zinc-50",style:{transform:`translateX(-${100-(r||0)}%)`}})})});ew.displayName=eN.bL.displayName;var ez=a(6253);let eS=r.forwardRef((e,t)=>{let{className:a,children:r,...l}=e;return(0,s.jsxs)(ez.bL,{ref:t,className:(0,i.cn)("relative overflow-hidden",a),...l,children:[(0,s.jsx)(ez.LM,{className:"h-full w-full rounded-[inherit]",children:r}),(0,s.jsx)(eC,{}),(0,s.jsx)(ez.OK,{})]})});eS.displayName=ez.bL.displayName;let eC=r.forwardRef((e,t)=>{let{className:a,orientation:r="vertical",...l}=e;return(0,s.jsx)(ez.VM,{ref:t,orientation:r,className:(0,i.cn)("flex touch-none select-none transition-colors","vertical"===r&&"h-full w-2.5 border-l border-l-transparent p-[1px]","horizontal"===r&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",a),...l,children:(0,s.jsx)(ez.lr,{className:"relative flex-1 rounded-full bg-zinc-200 dark:bg-zinc-800"})})});eC.displayName=ez.VM.displayName;var eE=a(3386);let eR=eE.bL,eT=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(eE.B8,{ref:t,className:(0,i.cn)("inline-flex h-9 items-center justify-center rounded-lg bg-zinc-100 p-1 text-zinc-500 dark:bg-zinc-800 dark:text-zinc-400",a),...r})});eT.displayName=eE.B8.displayName;let eB=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(eE.l9,{ref:t,className:(0,i.cn)("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-white transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-zinc-950 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-white data-[state=active]:text-zinc-950 data-[state=active]:shadow dark:ring-offset-zinc-950 dark:focus-visible:ring-zinc-300 dark:data-[state=active]:bg-zinc-950 dark:data-[state=active]:text-zinc-50",a),...r})});eB.displayName=eE.l9.displayName;let e$=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(eE.UC,{ref:t,className:(0,i.cn)("mt-2 ring-offset-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-zinc-950 focus-visible:ring-offset-2 dark:ring-offset-zinc-950 dark:focus-visible:ring-zinc-300",a),...r})});e$.displayName=eE.UC.displayName;var eD=a(2547),eA=a(559),eU=a(7654),eL=a(6425),eF=a(3226),eP=a(908);function eI(e){let{title:t,code:a,fileName:i}=e,[h,u]=(0,r.useState)(!1),[p,f]=(0,r.useState)(!1),{t:g}=(0,l.Bd)(),{displayCode:b,truncated:j}=(0,r.useMemo)(()=>{let e=a?a.split("\n"):[];return e.length?p||e.length<=80?{displayCode:a,truncated:!1}:{displayCode:e.slice(0,80).join("\n"),truncated:!0}:{displayCode:g("common.bundleEmptyPlaceholder"),truncated:!1}},[a,p,g]),y=(0,r.useMemo)(()=>b.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/(\/\/.*$)|(".*?"|'.*?'|`.*?`)|\b(export|import|from|const|let|var|function|return|if|else|class|extends|new|async|await|try|catch|finally|switch|case|default)\b|\b(string|number|boolean|Promise|Array|Record|any|void|unknown)\b/gm,(e,t,a,s,r)=>t?`<span class="text-zinc-500">${t}</span>`:a?`<span class="text-emerald-400">${a}</span>`:s?`<span class="text-sky-400 font-semibold">${s}</span>`:r?`<span class="text-purple-300">${r}</span>`:e),[b]),v=async()=>{try{await navigator.clipboard.writeText(a),u(!0),(0,eP.oR)({title:g("common.copySuccessTitle"),description:g("common.copySuccessDescFile",{file:i})}),setTimeout(()=>u(!1),1200)}catch{(0,eP.oR)({title:g("common.copyErrorTitle"),description:g("common.copyErrorDesc"),variant:"destructive"})}};return(0,s.jsxs)(d,{className:"flex h-full flex-col border-zinc-200/70 bg-white/80 shadow-lg shadow-sky-500/5 backdrop-blur-xl dark:border-zinc-800/80 dark:bg-zinc-900/80",children:[(0,s.jsxs)(o,{className:"flex flex-row items-center justify-between pb-3",children:[(0,s.jsxs)("div",{className:"space-y-1",children:[(0,s.jsxs)(c,{className:"flex items-center gap-2 text-sm font-semibold",children:[(0,s.jsx)(eD.A,{className:"h-4 w-4 text-sky-500"}),t]}),(0,s.jsx)(m,{className:"text-xs",children:i})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsxs)(n.$,{type:"button",size:"sm",variant:"ghost",className:"h-8 px-2 text-xs",onClick:v,children:[(0,s.jsx)(eA.A,{className:"mr-1 h-3 w-3"}),h?g("common.copied"):g("common.copy")]}),(0,s.jsxs)(n.$,{type:"button",size:"sm",variant:"outline",className:"h-8 px-2 text-xs",onClick:()=>{try{let e=new Blob([a||""],{type:"text/javascript;charset=utf-8"}),t=URL.createObjectURL(e),s=document.createElement("a");s.href=t,s.download=i,document.body.appendChild(s),s.click(),document.body.removeChild(s),URL.revokeObjectURL(t)}catch{(0,eP.oR)({title:g("common.downloadErrorTitle"),description:g("common.downloadErrorDesc"),variant:"destructive"})}},children:[(0,s.jsx)(eU.A,{className:"mr-1 h-3 w-3"}),g("common.download")]})]})]}),(0,s.jsxs)(x,{className:"flex-1 space-y-3 pb-4",children:[(0,s.jsxs)("div",{className:"relative max-h-96 overflow-auto rounded-xl bg-gradient-to-b from-zinc-900 via-zinc-950 to-black p-4 text-xs leading-relaxed text-zinc-50 shadow-inner",children:[(0,s.jsx)("pre",{className:"whitespace-pre text-[11px]",children:(0,s.jsx)("code",{dangerouslySetInnerHTML:{__html:y}})}),j&&(0,s.jsx)("div",{className:"pointer-events-none absolute inset-x-0 bottom-0 h-12 bg-gradient-to-t from-black/90 to-transparent"})]}),j&&(0,s.jsx)(n.$,{type:"button",variant:"ghost",size:"sm",className:"mt-1 h-8 w-full text-xs",onClick:()=>f(!0),children:g("common.showAllCode")})]})]})}function eM(e){let{result:t}=e,{t:a}=(0,l.Bd)(),r=t.full.size??0,i=t.treeshake.size??0,h=Math.max(r-i,0),u=r>0?h/r*100:0,p=r/1024,f=i/1024;return(0,s.jsxs)("div",{className:"space-y-6",children:[(0,s.jsx)("div",{className:"flex justify-center",children:(0,s.jsxs)("div",{className:"w-full overflow-hidden rounded-2xl border border-slate-200/80 bg-white/90 shadow-lg shadow-sky-500/10 backdrop-blur-xl dark:border-slate-800/80 dark:bg-slate-900/90",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between border-b border-slate-200/70 px-4 py-2.5 text-[11px] font-medium tracking-wide text-slate-600 dark:border-slate-700 dark:text-slate-300",children:[(0,s.jsx)("span",{children:a("results.overviewTitle")}),(0,s.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-emerald-500/10 px-2 py-0.5 text-[10px] text-emerald-700 dark:bg-emerald-500/15 dark:text-emerald-300",children:[(0,s.jsx)(eL.A,{className:"h-3 w-3"}),a("results.overviewDoneBadge")]})]}),(0,s.jsx)("div",{className:"overflow-x-auto",children:(0,s.jsxs)("table",{className:"min-w-full border-separate border-spacing-0 text-xs",children:[(0,s.jsx)("thead",{children:(0,s.jsxs)("tr",{className:"bg-slate-50/90 text-slate-500 dark:bg-slate-900/80 dark:text-slate-400",children:[(0,s.jsx)("th",{className:"w-32 px-4 py-2 text-left font-medium",children:a("results.tableMetric")}),(0,s.jsx)("th",{className:"px-4 py-2 text-left font-medium",children:a("results.tableFull")}),(0,s.jsx)("th",{className:"px-4 py-2 text-left font-medium",children:a("results.tableTreeshake")})]})}),(0,s.jsxs)("tbody",{children:[(0,s.jsxs)("tr",{className:"border-t border-slate-100/90 dark:border-slate-800/90",children:[(0,s.jsx)("td",{className:"px-4 py-2 text-slate-500 dark:text-slate-400",children:a("results.metricSize")}),(0,s.jsx)("td",{className:"px-4 py-2 font-mono text-[11px] text-slate-800 dark:text-slate-100",children:p?`${p.toFixed(1)} KB`:"--"}),(0,s.jsx)("td",{className:"px-4 py-2 font-mono text-[11px] text-emerald-500 dark:text-emerald-300",children:f?`${f.toFixed(1)} KB`:"--"})]}),(0,s.jsxs)("tr",{className:"border-t border-slate-100/90 dark:border-slate-800/90",children:[(0,s.jsx)("td",{className:"px-4 py-2 text-slate-500 dark:text-slate-400",children:a("results.metricLoadTime")}),(0,s.jsx)("td",{className:"px-4 py-2 font-mono text-[11px] text-slate-800 dark:text-slate-100",children:`~${Math.round(t.full.resourcePerf.duration||0)} ms`}),(0,s.jsx)("td",{className:"px-4 py-2 font-mono text-[11px] text-emerald-500 dark:text-emerald-300",children:`~${Math.round(t.treeshake.resourcePerf.duration||0)} ms`})]}),(0,s.jsxs)("tr",{className:"border-t border-slate-100/90 dark:border-slate-800/90",children:[(0,s.jsx)("td",{className:"px-4 py-2 text-slate-500 dark:text-slate-400",children:a("results.metricModules")}),(0,s.jsx)("td",{className:"px-4 py-2 font-mono text-[11px] text-slate-800 dark:text-slate-100",children:t.full.modules.names?.length}),(0,s.jsx)("td",{className:"px-4 py-2 font-mono text-[11px] text-emerald-500 dark:text-emerald-300",children:t.treeshake.modules.names?.length})]}),(0,s.jsxs)("tr",{className:"border-t border-slate-100/90 dark:border-slate-800/90",children:[(0,s.jsx)("td",{className:"px-4 py-2 text-slate-500 dark:text-slate-400",children:a("results.metricSavedPercent")}),(0,s.jsx)("td",{className:"px-4 py-2 text-[11px] text-slate-400",children:a("results.metricSavedPercentNA")}),(0,s.jsx)("td",{className:"px-4 py-2 font-mono text-[11px] text-fuchsia-500 dark:text-fuchsia-300",children:u>0?`${u.toFixed(1)}%`:"--"})]})]})]})})]})}),(0,s.jsxs)("div",{className:"grid gap-4 md:grid-cols-4",children:[(0,s.jsxs)(d,{className:"border-zinc-200/80 bg-white/90 shadow-md shadow-sky-500/10 backdrop-blur-xl dark:border-zinc-800/80 dark:bg-zinc-900/90",children:[(0,s.jsxs)(o,{className:"pb-3",children:[(0,s.jsx)(m,{className:"text-[11px] uppercase tracking-wide text-slate-500 dark:text-slate-400",children:a("results.cardFullTitle")}),(0,s.jsxs)(c,{className:"flex items-baseline gap-2 text-xl",children:[(0,s.jsx)("span",{children:p>0?p.toFixed(1):"--"}),(0,s.jsx)("span",{className:"text-xs font-normal text-slate-500 dark:text-slate-400",children:"KB"})]})]}),(0,s.jsxs)(x,{className:"space-y-2 text-xs text-slate-500 dark:text-slate-400",children:[(0,s.jsx)("p",{children:a("results.cardFullDesc")}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("p",{children:a("results.cardFullModules",{count:t.full.modules.names?.length})}),t.full.modules.names?.length&&(0,s.jsxs)(q,{children:[(0,s.jsx)(J,{asChild:!0,children:(0,s.jsxs)(n.$,{variant:"ghost",size:"icon",className:"h-4 w-4 rounded-full hover:bg-slate-100 dark:hover:bg-slate-800",children:[(0,s.jsx)(eF.A,{className:"h-3 w-3 text-slate-400"}),(0,s.jsx)("span",{className:"sr-only",children:"View modules"})]})}),(0,s.jsxs)(W,{className:"w-64 p-0",align:"start",children:[(0,s.jsx)("div",{className:"border-b border-slate-100 px-3 py-2 text-xs font-medium text-slate-600 dark:border-slate-800 dark:text-slate-300",children:"Module Exports"}),(0,s.jsx)(eS,{className:"h-64",children:(0,s.jsx)("div",{className:"p-2",children:t.full.modules.names.map((e,t)=>(0,s.jsx)("div",{className:"rounded px-2 py-1 text-[11px] text-slate-600 hover:bg-slate-50 dark:text-slate-400 dark:hover:bg-slate-900",children:e},t))})})]})]})]})]})]}),(0,s.jsxs)(d,{className:"border-zinc-200/80 bg-white/90 shadow-md shadow-emerald-500/10 backdrop-blur-xl dark:border-zinc-800/80 dark:bg-zinc-900/90",children:[(0,s.jsxs)(o,{className:"pb-3",children:[(0,s.jsx)(m,{className:"text-[11px] uppercase tracking-wide text-slate-500 dark:text-slate-400",children:a("results.cardTreeshakeTitle")}),(0,s.jsxs)(c,{className:"flex items-baseline gap-2 text-xl",children:[(0,s.jsx)("span",{children:f>0?f.toFixed(1):"--"}),(0,s.jsx)("span",{className:"text-xs font-normal text-slate-500 dark:text-slate-400",children:"KB"})]})]}),(0,s.jsxs)(x,{className:"space-y-2 text-xs text-slate-500 dark:text-slate-400",children:[(0,s.jsx)("p",{children:a("results.cardTreeshakeDesc")}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("p",{children:a("results.cardTreeshakeModules",{count:t.treeshake.modules.names?.length})}),t.treeshake.modules.names?.length&&(0,s.jsxs)(q,{children:[(0,s.jsx)(J,{asChild:!0,children:(0,s.jsxs)(n.$,{variant:"ghost",size:"icon",className:"h-4 w-4 rounded-full hover:bg-slate-100 dark:hover:bg-slate-800",children:[(0,s.jsx)(eF.A,{className:"h-3 w-3 text-slate-400"}),(0,s.jsx)("span",{className:"sr-only",children:"View modules"})]})}),(0,s.jsxs)(W,{className:"w-64 p-0",align:"start",children:[(0,s.jsx)("div",{className:"border-b border-slate-100 px-3 py-2 text-xs font-medium text-slate-600 dark:border-slate-800 dark:text-slate-300",children:"Module Exports"}),(0,s.jsx)(eS,{className:"h-64",children:(0,s.jsx)("div",{className:"p-2",children:t.treeshake.modules.names.map((e,t)=>(0,s.jsx)("div",{className:"rounded px-2 py-1 text-[11px] text-slate-600 hover:bg-slate-50 dark:text-slate-400 dark:hover:bg-slate-900",children:e},t))})})]})]})]})]})]}),(0,s.jsxs)(d,{className:"border-zinc-200/80 bg-white/90 shadow-md shadow-fuchsia-500/10 backdrop-blur-xl dark:border-zinc-800/80 dark:bg-zinc-900/90",children:[(0,s.jsxs)(o,{className:"pb-3",children:[(0,s.jsx)(m,{className:"text-[11px] uppercase tracking-wide text-slate-500 dark:text-slate-400",children:a("results.cardSavedTitle")}),(0,s.jsxs)(c,{className:"flex items-baseline gap-2 text-xl",children:[(0,s.jsx)("span",{children:h>0?(h/1024).toFixed(1):"--"}),(0,s.jsx)("span",{className:"text-xs font-normal text-slate-500 dark:text-slate-400",children:"KB"})]})]}),(0,s.jsxs)(x,{className:"space-y-2 text-xs text-slate-500 dark:text-slate-400",children:[(0,s.jsx)("p",{children:a("results.cardSavedDesc")}),(0,s.jsxs)("div",{className:"space-y-1",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between text-[11px]",children:[(0,s.jsx)("span",{children:a("results.cardSavedPercentLabel")}),(0,s.jsxs)("span",{children:[u>0?u.toFixed(1):"--",a("results.cardSavedPercentUnit")]})]}),(0,s.jsx)(ew,{value:u,className:"h-2 bg-fuchsia-500/10"})]})]})]}),(0,s.jsxs)(d,{className:"border-zinc-200/80 bg-white/90 shadow-md shadow-emerald-500/10 backdrop-blur-xl dark:border-zinc-800/80 dark:bg-zinc-900/90",children:[(0,s.jsxs)(o,{className:"pb-3",children:[(0,s.jsx)(m,{className:"text-[11px] uppercase tracking-wide text-slate-500 dark:text-slate-400",children:a("results.cardKeptTitle")}),(0,s.jsxs)(c,{className:"flex items-baseline gap-2 text-xl",children:[(0,s.jsx)("span",{children:t.treeshake.modules.names?.length}),(0,s.jsx)("span",{className:"text-xs font-normal text-slate-500 dark:text-slate-400",children:a("results.cardKeptExportsUnit")})]})]}),(0,s.jsxs)(x,{className:"space-y-2 text-xs text-slate-500 dark:text-slate-400",children:[(0,s.jsx)("p",{children:a("results.cardKeptDesc")}),(0,s.jsx)("p",{children:a("results.cardKeptFullCount",{count:t.full.modules.names?.length})})]})]})]}),(0,s.jsxs)("section",{className:"space-y-4",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold tracking-tight text-slate-800 dark:text-slate-100",children:a("results.codeCompareTitle")}),(0,s.jsx)("p",{className:"text-xs text-slate-500 dark:text-slate-400",children:a("results.codeCompareDesc")})]}),(0,s.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,s.jsx)(eI,{title:a("results.cardFullTitle"),code:t.full.js??"",fileName:"shared.full.js"}),(0,s.jsx)(eI,{title:a("results.cardTreeshakeTitle"),code:t.treeshake.js??"",fileName:"shared.treeshake.js"})]})]})]})}function e_(e){let{result:t}=e;return t&&0!==t.length?(0,s.jsx)("section",{id:"results",className:"space-y-6",children:(0,s.jsxs)(eR,{defaultValue:t[0].sharedName,className:"w-full",children:[(0,s.jsx)(eT,{className:"w-full justify-start overflow-x-auto",children:t.map(e=>(0,s.jsx)(eB,{value:e.sharedName,children:e.sharedName},e.sharedName))}),t.map(e=>(0,s.jsx)(e$,{value:e.sharedName,children:(0,s.jsx)(eM,{result:e})},e.sharedName))]})}):null}var eO=a(8855);function eV(){let{t:e}=(0,l.Bd)(),[t,a]=(0,r.useState)([{id:"1",name:"",version:"",exports:[]}]),[n,i]=(0,r.useState)(()=>(function(){let e={target:"web,\nbrowserslist:> 0.01%,not dead,not op_mini all",plugins:"",shared:""};if("u"<typeof window)return e;try{let t=window.localStorage.getItem("tree-shaking-config-v1");if(!t)return e;let a=JSON.parse(t);return{...e,...a}}catch{return e}})()),[d,o]=(0,r.useState)({}),[c,m]=(0,r.useState)(!1),[x,h]=(0,r.useState)(null),[u,p]=(0,r.useState)(!1),[f,g]=(0,r.useState)(null),b=()=>{if("u"<typeof document)return;let e=document.getElementById("results");if(e){let t=e.getBoundingClientRect().top+window.scrollY-96;window.scrollTo({top:t,behavior:"smooth"})}},j=e=>{if("u"<typeof window)return;let{x:t=.5,y:a=.5}=e||{};(0,eO.A)({origin:{x:t,y:a},zIndex:100,particleCount:150,spread:180,startVelocity:45,angle:90,gravity:1.2,drift:0,ticks:300})},y=async a=>{let s;if(a){a.preventDefault();let e=a.nativeEvent;e.submitter&&(s=e.submitter.getBoundingClientRect())}let r={items:{}},l=!1;if(t.forEach(t=>{let a={};t.name.trim()||(a.name=e("analyze.formErrorSharedRequired")),t.version.trim()||(a.version=e("analyze.formErrorVersionRequired")),t.exports.length||(a.exports=e("analyze.formErrorExportsRequired")),Object.keys(a).length>0&&(l=!0,r.items[t.id]=a)}),n.shared){for(let t of n.shared.split(/[\n,]/).map(e=>e.trim()).filter(Boolean))if(t.split("@").length<2){r.sharedConfig=e("analyze.sharedVersionRequired",{name:t}),l=!0;break}}if(o(r),l)return void(0,eP.oR)({title:e("analyze.formErrorTitleIncomplete"),description:e("analyze.formErrorDescIncomplete"),variant:"destructive"});try{let a=t[0],r=t.slice(1).map(e=>[e.name.trim(),e.version.trim(),e.exports.map(e=>e.trim()).filter(Boolean)]),l={sharedName:a.name.trim(),sharedVersion:a.version.trim(),shared:[[a.name.trim(),a.version.trim(),a.exports.map(e=>e.trim()).filter(Boolean)]],target:n.target?n.target.split("\n").map(e=>e.trim()).filter(Boolean):["web","browserslist:> 0.01%,not dead,not op_mini all"],plugins:n.plugins?n.plugins.split(",").map(e=>e.trim()).filter(Boolean):[]};if(l.shared.push(...r),n.shared){let e=et(n.shared);l.shared.push(...e)}let i=l.shared.map(e=>e[0]);if(new Set(i).size!==i.length){let t=i.filter((e,t)=>i.indexOf(e)!==t),a=[...new Set(t)];throw Error(e("analyze.errorDuplicateSharedDeps",{names:a.join(", ")}))}if(m(!0),!f)throw Error(e("analyze.errorNoFullResult"));let d=await eu(l,f);if(!d||0===d.length)throw Error(e("analyze.errorRequestFailed"));if(h(d),(0,eP.oR)({title:e("analyze.analyzeSuccessTitle"),description:e("analyze.analyzeSuccessDesc")}),s){let e=(s.top+s.height/2)/window.innerHeight;j({x:.5,y:e})}else j();setTimeout(b,300)}catch(a){let t=a instanceof Error?a.message:e("analyze.analyzeErrorDescFallback");(0,eP.oR)({title:e("analyze.analyzeErrorTitle"),description:t,variant:"destructive"})}finally{m(!1)}};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("section",{className:"mx-auto flex min-h-[calc(100vh-12rem)] w-full max-w-3xl flex-col justify-center pb-24 pt-10",children:(0,s.jsx)(ek,{sharedItems:t,setSharedItems:a,config:n,setConfig:i,formErrors:d,loading:c,advancedOpen:u,setAdvancedOpen:p,onSubmit:y,onReset:()=>{a([{id:"1",name:"",version:"",exports:[]}]),o({}),h(null)},setFullTreeshakeResult:g})}),x&&(0,s.jsx)(e_,{result:x})]})}}}]);
|
|
@@ -85,4 +85,4 @@ writeFileSync("./shared.treeshake.js", treeshakeJs)
|
|
|
85
85
|
// - Or hand them over to your bundler / runtime
|
|
86
86
|
|
|
87
87
|
// Note: to avoid executing untrusted code, do this only in
|
|
88
|
-
// trusted build environments or sandboxed runtimes.`},faq:{title:"FAQ",q1:"What does Mock Mode do?",a1:"When no real build service is wired, Mock Mode synthesizes a local response so you can experience the full UX and visualizations. Turn it off once a real backend is connected.",q2:"Where does API Base URL come from?",a2:"We first read the value from the Advanced Config panel (persisted in localStorage), then fall back to environment variable VITE_API_BASE_URL, and finally to http://localhost:4000/build.",q3:"Why might treeshake results differ slightly from real outputs?",a3:"The page only displays returned JS text plus export info inferred with simple heuristics, to make savings intuitive. It never executes JS. Your real production build behaviour is defined by your own build service."},footer:{jsSafety:"Frontend only renders text and never executes returned JS."},lang:{zh:"中文",en:"English"}}}};a.Ay.use(o.A).use(s.r9).init({resources:l,fallbackLng:"zh-CN",supportedLngs:["zh-CN","en"],lng:"zh-CN",interpolation:{escapeValue:!1},detection:{order:["localStorage","navigator","htmlTag"],caches:["localStorage"]}}),t.A=a.Ay},127(e,t,r){var a=r(851),s=r(834);function o(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,s.QP)((0,a.$)(t))}r.d(t,{cn:()=>o})},3554(e,t,r){var a=r(5723),s=r(2155),o=r(8997);r(7748);var l=r(2903),n=r(6325),i=r(7184),d=r(8646),c=r(127);let u=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(d.bL,{className:(0,c.cn)("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-zinc-950 focus-visible:ring-offset-2 focus-visible:ring-offset-white disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-zinc-900 data-[state=unchecked]:bg-zinc-200 dark:focus-visible:ring-zinc-300 dark:focus-visible:ring-offset-zinc-950 dark:data-[state=checked]:bg-zinc-50 dark:data-[state=unchecked]:bg-zinc-800",r),...s,ref:t,children:(0,a.jsx)(d.zi,{className:(0,c.cn)("pointer-events-none block h-4 w-4 rounded-full bg-white shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0 dark:bg-zinc-950")})})});function h(e){let{className:t,...r}=e;return(0,a.jsx)("div",{className:(0,c.cn)("animate-pulse rounded-md bg-zinc-900/10 dark:bg-zinc-50/10",t),...r})}u.displayName=d.bL.displayName;var p=r(908),m=r(6700),f=r(5445),b=r(1784);let g=m.Kq,v=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(m.LM,{ref:t,className:(0,c.cn)("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",r),...s})});v.displayName=m.LM.displayName;let k=(0,f.F)("group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border border-zinc-200 p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full dark:border-zinc-800",{variants:{variant:{default:"border bg-white text-zinc-950 dark:bg-zinc-950 dark:text-zinc-50",destructive:"destructive group border-red-500 bg-red-500 text-zinc-50 dark:border-red-900 dark:bg-red-900 dark:text-zinc-50"}},defaultVariants:{variant:"default"}}),x=s.forwardRef((e,t)=>{let{className:r,variant:s,...o}=e;return(0,a.jsx)(m.bL,{ref:t,className:(0,c.cn)(k({variant:s}),r),...o})});x.displayName=m.bL.displayName,s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(m.rc,{ref:t,className:(0,c.cn)("inline-flex h-8 shrink-0 items-center justify-center rounded-md border border-zinc-200 bg-transparent px-3 text-sm font-medium transition-colors hover:bg-zinc-100 focus:outline-none focus:ring-1 focus:ring-zinc-950 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-zinc-100/40 group-[.destructive]:hover:border-red-500/30 group-[.destructive]:hover:bg-red-500 group-[.destructive]:hover:text-zinc-50 group-[.destructive]:focus:ring-red-500 dark:border-zinc-800 dark:hover:bg-zinc-800 dark:focus:ring-zinc-300 dark:group-[.destructive]:border-zinc-800/40 dark:group-[.destructive]:hover:border-red-900/30 dark:group-[.destructive]:hover:bg-red-900 dark:group-[.destructive]:hover:text-zinc-50 dark:group-[.destructive]:focus:ring-red-900",r),...s})}).displayName=m.rc.displayName;let y=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(m.bm,{ref:t,className:(0,c.cn)("absolute right-1 top-1 rounded-md p-1 text-zinc-950/50 opacity-0 transition-opacity hover:text-zinc-950 focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600 dark:text-zinc-50/50 dark:hover:text-zinc-50",r),"toast-close":"",...s,children:(0,a.jsx)(b.A,{className:"h-4 w-4"})})});y.displayName=m.bm.displayName;let S=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(m.hE,{ref:t,className:(0,c.cn)("text-sm font-semibold [&+div]:text-xs",r),...s})});S.displayName=m.hE.displayName;let w=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(m.VY,{ref:t,className:(0,c.cn)("text-sm opacity-90",r),...s})});function T(){let{toasts:e}=(0,p.dj)();return(0,a.jsxs)(g,{children:[e.map(function(e){let{id:t,title:r,description:s,action:o,...l}=e;return(0,a.jsxs)(x,{...l,children:[(0,a.jsxs)("div",{className:"grid gap-1",children:[r&&(0,a.jsx)(S,{children:r}),s&&(0,a.jsx)(w,{children:s})]}),o,(0,a.jsx)(y,{})]},t)}),(0,a.jsx)(v,{})]})}w.displayName=m.VY.displayName;var z=r(6425),j=r(5539),E=r(9086);function N(){let{i18n:e,t}=(0,l.Bd)(),r=(e.language||"zh-CN").startsWith("en")?"en":"zh-CN",s=t=>a=>{if(a.preventDefault(),t!==r){e.changeLanguage(t);try{"u">typeof window&&window.localStorage.setItem("i18nextLng",t)}catch{}}};return(0,a.jsxs)("div",{className:"flex items-center gap-1 rounded-full bg-white/60 px-1 py-0.5 text-[11px] shadow-sm backdrop-blur-md dark:bg-slate-900/70",children:[(0,a.jsx)("button",{type:"button",onClick:s("zh-CN"),className:(0,c.cn)("rounded-full px-2 py-0.5 transition-colors","zh-CN"===r?"bg-slate-900 text-slate-50 dark:bg-slate-100 dark:text-slate-900":"text-slate-600 hover:bg-slate-200/70 dark:text-slate-300 dark:hover:bg-slate-800/70"),children:t("lang.zh")}),(0,a.jsx)("span",{className:"text-slate-400 dark:text-slate-500",children:"/"}),(0,a.jsx)("button",{type:"button",onClick:s("en"),className:(0,c.cn)("rounded-full px-2 py-0.5 transition-colors","en"===r?"bg-slate-900 text-slate-50 dark:bg-slate-100 dark:text-slate-900":"text-slate-600 hover:bg-slate-200/70 dark:text-slate-300 dark:hover:bg-slate-800/70"),children:t("lang.en")})]})}let L=(0,s.lazy)(()=>r.e(427).then(r.bind(r,4526))),M=(0,s.lazy)(()=>Promise.all([r.e(503),r.e(515)]).then(r.bind(r,678))),R="tree-shaking-theme";(0,o.H)(document.getElementById("root")).render((0,a.jsx)(s.StrictMode,{children:(0,a.jsx)(n.I9,{children:(0,a.jsx)(function(){let{t:e}=(0,l.Bd)(),[t,r]=(0,s.useState)(()=>(function(){if("u"<typeof window)return"light";let e=window.localStorage.getItem(R);return"light"===e||"dark"===e?e:window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"})()),[o,d]=(0,s.useState)(!1),[p,m]=(0,s.useState)(!1),f=(0,n.zy)();return(0,s.useEffect)(()=>{"u">typeof window&&m(!!window.localStorage.getItem("treeshake_mock_mode"))},[]),(0,s.useEffect)(()=>{"u">typeof document&&(document.documentElement.classList.toggle("dark","dark"===t),window.localStorage.setItem(R,t))},[t]),(0,a.jsxs)("div",{className:(0,c.cn)("min-h-screen text-slate-900 transition-colors duration-500 dark:text-slate-50","/analyze"===f.pathname?"bg-gradient-to-b from-sky-50 via-slate-50 to-slate-100 dark:from-slate-950 dark:via-slate-950 dark:to-slate-900":"bg-white dark:bg-slate-950"),children:["/analyze"===f.pathname&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"pointer-events-none absolute inset-x-0 top-0 -z-10 h-64 bg-gradient-to-br from-sky-400/25 via-fuchsia-500/15 to-emerald-400/25 blur-3xl opacity-80"}),(0,a.jsx)("div",{className:"pointer-events-none absolute inset-y-0 right-0 -z-10 w-1/3 bg-gradient-to-tl from-sky-500/10 via-transparent to-emerald-500/10 blur-3xl"})]}),(0,a.jsxs)("div",{className:"relative mx-auto flex min-h-screen max-w-6xl flex-col px-4 pb-8 pt-6 md:px-8 md:pb-12 md:pt-10",children:[(0,a.jsxs)("header",{className:"flex items-center justify-between gap-4",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("div",{className:"flex h-9 w-9 items-center justify-center rounded-xl bg-gradient-to-tr from-sky-500 to-fuchsia-500 text-white shadow-lg shadow-sky-500/40",children:(0,a.jsx)(z.A,{className:"h-4 w-4"})}),(0,a.jsxs)("div",{className:"flex flex-col",children:[(0,a.jsx)("span",{className:"text-sm font-semibold tracking-tight",children:e("common.appName")}),(0,a.jsx)("span",{className:"text-xs text-slate-500 dark:text-slate-400",children:e("common.appSubtitle")})]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-4",children:[(0,a.jsx)(N,{}),p&&(0,a.jsxs)("div",{className:"flex items-center gap-2 rounded-full bg-white/60 px-3 py-1 text-xs shadow-sm backdrop-blur-md dark:bg-slate-900/70",children:[(0,a.jsx)("span",{className:"text-[11px] text-slate-500 dark:text-slate-400",children:e("common.mockModeLabel")}),(0,a.jsx)(u,{checked:o,onCheckedChange:e=>d(!!e)}),(0,a.jsx)("span",{className:"text-[11px] text-emerald-600 dark:text-emerald-400",children:e(o?"common.mockModeLocal":"common.mockModeRemote")})]}),(0,a.jsx)(i.$,{type:"button",variant:"ghost",size:"icon","aria-label":e("common.themeToggleAria"),className:"h-9 w-9 rounded-full border border-slate-200/70 bg-white/70 shadow-sm backdrop-blur-md dark:border-slate-700 dark:bg-slate-900",onClick:()=>r(e=>"light"===e?"dark":"light"),children:"light"===t?(0,a.jsx)(j.A,{className:"h-4 w-4 text-slate-700"}):(0,a.jsx)(E.A,{className:"h-4 w-4 text-amber-300"})})]})]}),(0,a.jsx)("main",{className:"mt-8 flex flex-1 flex-col gap-8 md:mt-10",children:"/analyze"===f.pathname?(0,a.jsx)(s.Suspense,{fallback:(0,a.jsx)(h,{className:"h-40 w-full"}),children:(0,a.jsx)(M,{mockMode:o})}):"/"===f.pathname?(0,a.jsx)(s.Suspense,{fallback:(0,a.jsx)(h,{className:"h-40 w-full"}),children:(0,a.jsx)(L,{})}):null}),(0,a.jsx)("footer",{className:"mt-8 border-t border-slate-200/80 pt-4 text-[11px] text-slate-500 dark:border-slate-800/80 dark:text-slate-400",children:(0,a.jsx)("div",{className:"flex justify-center text-center",children:(0,a.jsx)("span",{className:"text-slate-400",children:e("footer.jsSafety")})})})]}),(0,a.jsx)(T,{})]})},{})})}))}},i={};function d(e){var t=i[e];if(void 0!==t)return t.exports;var r=i[e]={exports:{}};return n[e](r,r.exports,d),r.exports}d.m=n,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,d.t=function(r,a){if(1&a&&(r=this(r)),8&a||"object"==typeof r&&r&&(4&a&&r.__esModule||16&a&&"function"==typeof r.then))return r;var s=Object.create(null);d.r(s);var o={};e=e||[null,t({}),t([]),t(t)];for(var l=2&a&&r;("object"==typeof l||"function"==typeof l)&&!~e.indexOf(l);l=t(l))Object.getOwnPropertyNames(l).forEach(e=>{o[e]=()=>r[e]});return o.default=()=>r,d.d(s,o),s},d.d=(e,t,r)=>{var a=(t,r)=>{for(var a in t)d.o(t,a)&&!d.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,[r]:t[a]})};a(t,"get"),a(r,"value")},d.f={},d.e=e=>Promise.all(Object.keys(d.f).reduce((t,r)=>(d.f[r](e,t),t),[])),d.u=e=>"static/js/async/"+e+"."+({427:"dbb8b74259",503:"7bd056737e",515:"1b7f26d7ec"})[e]+".js",d.miniCssF=e=>""+e+".css",d.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},d.l=function(e,t,a,s){if(r[e])return void r[e].push(t);if(void 0!==a)for(var o,l,n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var c=n[i];if(c.getAttribute("src")==e||c.getAttribute("data-rspack")=="@module-federation/treeshake-frontend:"+a){o=c;break}}o||(l=!0,(o=document.createElement("script")).timeout=120,d.nc&&o.setAttribute("nonce",d.nc),o.setAttribute("data-rspack","@module-federation/treeshake-frontend:"+a),o.src=e),r[e]=[t];var u=function(t,a){o.onerror=o.onload=null,clearTimeout(h);var s=r[e];if(delete r[e],o.parentNode&&o.parentNode.removeChild(o),s&&s.forEach(function(e){return e(a)}),t)return t(a)},h=setTimeout(u.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=u.bind(null,o.onerror),o.onload=u.bind(null,o.onload),l&&document.head.appendChild(o)},d.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.nc=void 0,a=[],d.O=(e,t,r,s)=>{if(t){s=s||0;for(var o=a.length;o>0&&a[o-1][2]>s;o--)a[o]=a[o-1];a[o]=[t,r,s];return}for(var l=1/0,o=0;o<a.length;o++){for(var[t,r,s]=a[o],n=!0,i=0;i<t.length;i++)(!1&s||l>=s)&&Object.keys(d.O).every(e=>d.O[e](t[i]))?t.splice(i--,1):(n=!1,s<l&&(l=s));if(n){a.splice(o--,1);var c=r();void 0!==c&&(e=c)}}return e},d.p="/tree-shaking/",s={410:0},d.f.j=function(e,t){var r=d.o(s,e)?s[e]:void 0;if(0!==r)if(r)t.push(r[2]);else{var a=new Promise((t,a)=>r=s[e]=[t,a]);t.push(r[2]=a);var o=d.p+d.u(e),l=Error();d.l(o,function(t){if(d.o(s,e)&&(0!==(r=s[e])&&(s[e]=void 0),r)){var a=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;l.message="Loading chunk "+e+" failed.\n("+a+": "+o+")",l.name="ChunkLoadError",l.type=a,l.request=o,r[1](l)}},"chunk-"+e,e)}},d.O.j=e=>0===s[e],o=(e,t)=>{var r,a,[o,l,n]=t,i=0;if(o.some(e=>0!==s[e])){for(r in l)d.o(l,r)&&(d.m[r]=l[r]);if(n)var c=n(d)}for(e&&e(t);i<o.length;i++)a=o[i],d.o(s,a)&&s[a]&&s[a][0](),s[a]=0;return d.O(c)},(l=self.rspackChunk_module_federation_treeshake_frontend=self.rspackChunk_module_federation_treeshake_frontend||[]).forEach(o.bind(null,0)),l.push=o.bind(null,l.push.bind(l));var c=d.O(void 0,["783","535","637"],()=>d(3554));c=d.O(c)})();
|
|
88
|
+
// trusted build environments or sandboxed runtimes.`},faq:{title:"FAQ",q1:"What does Mock Mode do?",a1:"When no real build service is wired, Mock Mode synthesizes a local response so you can experience the full UX and visualizations. Turn it off once a real backend is connected.",q2:"Where does API Base URL come from?",a2:"We first read the value from the Advanced Config panel (persisted in localStorage), then fall back to environment variable VITE_API_BASE_URL, and finally to http://localhost:4000/build.",q3:"Why might treeshake results differ slightly from real outputs?",a3:"The page only displays returned JS text plus export info inferred with simple heuristics, to make savings intuitive. It never executes JS. Your real production build behaviour is defined by your own build service."},footer:{jsSafety:"Frontend only renders text and never executes returned JS."},lang:{zh:"中文",en:"English"}}}};a.Ay.use(o.A).use(s.r9).init({resources:l,fallbackLng:"zh-CN",supportedLngs:["zh-CN","en"],lng:"zh-CN",interpolation:{escapeValue:!1},detection:{order:["localStorage","navigator","htmlTag"],caches:["localStorage"]}}),t.A=a.Ay},127(e,t,r){var a=r(851),s=r(834);function o(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,s.QP)((0,a.$)(t))}r.d(t,{cn:()=>o})},3554(e,t,r){var a=r(5723),s=r(2155),o=r(8997);r(7748);var l=r(2903),n=r(6325),i=r(7184),d=r(8646),c=r(127);let u=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(d.bL,{className:(0,c.cn)("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-zinc-950 focus-visible:ring-offset-2 focus-visible:ring-offset-white disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-zinc-900 data-[state=unchecked]:bg-zinc-200 dark:focus-visible:ring-zinc-300 dark:focus-visible:ring-offset-zinc-950 dark:data-[state=checked]:bg-zinc-50 dark:data-[state=unchecked]:bg-zinc-800",r),...s,ref:t,children:(0,a.jsx)(d.zi,{className:(0,c.cn)("pointer-events-none block h-4 w-4 rounded-full bg-white shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0 dark:bg-zinc-950")})})});function h(e){let{className:t,...r}=e;return(0,a.jsx)("div",{className:(0,c.cn)("animate-pulse rounded-md bg-zinc-900/10 dark:bg-zinc-50/10",t),...r})}u.displayName=d.bL.displayName;var p=r(908),m=r(6700),f=r(5445),b=r(1784);let g=m.Kq,v=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(m.LM,{ref:t,className:(0,c.cn)("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",r),...s})});v.displayName=m.LM.displayName;let k=(0,f.F)("group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border border-zinc-200 p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full dark:border-zinc-800",{variants:{variant:{default:"border bg-white text-zinc-950 dark:bg-zinc-950 dark:text-zinc-50",destructive:"destructive group border-red-500 bg-red-500 text-zinc-50 dark:border-red-900 dark:bg-red-900 dark:text-zinc-50"}},defaultVariants:{variant:"default"}}),x=s.forwardRef((e,t)=>{let{className:r,variant:s,...o}=e;return(0,a.jsx)(m.bL,{ref:t,className:(0,c.cn)(k({variant:s}),r),...o})});x.displayName=m.bL.displayName,(s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(m.rc,{ref:t,className:(0,c.cn)("inline-flex h-8 shrink-0 items-center justify-center rounded-md border border-zinc-200 bg-transparent px-3 text-sm font-medium transition-colors hover:bg-zinc-100 focus:outline-none focus:ring-1 focus:ring-zinc-950 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-zinc-100/40 group-[.destructive]:hover:border-red-500/30 group-[.destructive]:hover:bg-red-500 group-[.destructive]:hover:text-zinc-50 group-[.destructive]:focus:ring-red-500 dark:border-zinc-800 dark:hover:bg-zinc-800 dark:focus:ring-zinc-300 dark:group-[.destructive]:border-zinc-800/40 dark:group-[.destructive]:hover:border-red-900/30 dark:group-[.destructive]:hover:bg-red-900 dark:group-[.destructive]:hover:text-zinc-50 dark:group-[.destructive]:focus:ring-red-900",r),...s})})).displayName=m.rc.displayName;let y=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(m.bm,{ref:t,className:(0,c.cn)("absolute right-1 top-1 rounded-md p-1 text-zinc-950/50 opacity-0 transition-opacity hover:text-zinc-950 focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600 dark:text-zinc-50/50 dark:hover:text-zinc-50",r),"toast-close":"",...s,children:(0,a.jsx)(b.A,{className:"h-4 w-4"})})});y.displayName=m.bm.displayName;let S=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(m.hE,{ref:t,className:(0,c.cn)("text-sm font-semibold [&+div]:text-xs",r),...s})});S.displayName=m.hE.displayName;let w=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(m.VY,{ref:t,className:(0,c.cn)("text-sm opacity-90",r),...s})});function T(){let{toasts:e}=(0,p.dj)();return(0,a.jsxs)(g,{children:[e.map(function(e){let{id:t,title:r,description:s,action:o,...l}=e;return(0,a.jsxs)(x,{...l,children:[(0,a.jsxs)("div",{className:"grid gap-1",children:[r&&(0,a.jsx)(S,{children:r}),s&&(0,a.jsx)(w,{children:s})]}),o,(0,a.jsx)(y,{})]},t)}),(0,a.jsx)(v,{})]})}w.displayName=m.VY.displayName;var z=r(6425),j=r(5539),E=r(9086);function N(){let{i18n:e,t}=(0,l.Bd)(),r=(e.language||"zh-CN").startsWith("en")?"en":"zh-CN",s=t=>a=>{if(a.preventDefault(),t!==r){e.changeLanguage(t);try{"u">typeof window&&window.localStorage.setItem("i18nextLng",t)}catch{}}};return(0,a.jsxs)("div",{className:"flex items-center gap-1 rounded-full bg-white/60 px-1 py-0.5 text-[11px] shadow-sm backdrop-blur-md dark:bg-slate-900/70",children:[(0,a.jsx)("button",{type:"button",onClick:s("zh-CN"),className:(0,c.cn)("rounded-full px-2 py-0.5 transition-colors","zh-CN"===r?"bg-slate-900 text-slate-50 dark:bg-slate-100 dark:text-slate-900":"text-slate-600 hover:bg-slate-200/70 dark:text-slate-300 dark:hover:bg-slate-800/70"),children:t("lang.zh")}),(0,a.jsx)("span",{className:"text-slate-400 dark:text-slate-500",children:"/"}),(0,a.jsx)("button",{type:"button",onClick:s("en"),className:(0,c.cn)("rounded-full px-2 py-0.5 transition-colors","en"===r?"bg-slate-900 text-slate-50 dark:bg-slate-100 dark:text-slate-900":"text-slate-600 hover:bg-slate-200/70 dark:text-slate-300 dark:hover:bg-slate-800/70"),children:t("lang.en")})]})}let L=(0,s.lazy)(()=>r.e(427).then(r.bind(r,4526))),M=(0,s.lazy)(()=>Promise.all([r.e(503),r.e(515)]).then(r.bind(r,678))),R="tree-shaking-theme";(0,o.H)(document.getElementById("root")).render((0,a.jsx)(s.StrictMode,{children:(0,a.jsx)(n.I9,{children:(0,a.jsx)(function(){let{t:e}=(0,l.Bd)(),[t,r]=(0,s.useState)(()=>(function(){if("u"<typeof window)return"light";let e=window.localStorage.getItem(R);return"light"===e||"dark"===e?e:window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"})()),[o,d]=(0,s.useState)(!1),[p,m]=(0,s.useState)(!1),f=(0,n.zy)();return(0,s.useEffect)(()=>{"u">typeof window&&m(!!window.localStorage.getItem("treeshake_mock_mode"))},[]),(0,s.useEffect)(()=>{"u">typeof document&&(document.documentElement.classList.toggle("dark","dark"===t),window.localStorage.setItem(R,t))},[t]),(0,a.jsxs)("div",{className:(0,c.cn)("min-h-screen text-slate-900 transition-colors duration-500 dark:text-slate-50","/analyze"===f.pathname?"bg-gradient-to-b from-sky-50 via-slate-50 to-slate-100 dark:from-slate-950 dark:via-slate-950 dark:to-slate-900":"bg-white dark:bg-slate-950"),children:["/analyze"===f.pathname&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"pointer-events-none absolute inset-x-0 top-0 -z-10 h-64 bg-gradient-to-br from-sky-400/25 via-fuchsia-500/15 to-emerald-400/25 blur-3xl opacity-80"}),(0,a.jsx)("div",{className:"pointer-events-none absolute inset-y-0 right-0 -z-10 w-1/3 bg-gradient-to-tl from-sky-500/10 via-transparent to-emerald-500/10 blur-3xl"})]}),(0,a.jsxs)("div",{className:"relative mx-auto flex min-h-screen max-w-6xl flex-col px-4 pb-8 pt-6 md:px-8 md:pb-12 md:pt-10",children:[(0,a.jsxs)("header",{className:"flex items-center justify-between gap-4",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("div",{className:"flex h-9 w-9 items-center justify-center rounded-xl bg-gradient-to-tr from-sky-500 to-fuchsia-500 text-white shadow-lg shadow-sky-500/40",children:(0,a.jsx)(z.A,{className:"h-4 w-4"})}),(0,a.jsxs)("div",{className:"flex flex-col",children:[(0,a.jsx)("span",{className:"text-sm font-semibold tracking-tight",children:e("common.appName")}),(0,a.jsx)("span",{className:"text-xs text-slate-500 dark:text-slate-400",children:e("common.appSubtitle")})]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-4",children:[(0,a.jsx)(N,{}),p&&(0,a.jsxs)("div",{className:"flex items-center gap-2 rounded-full bg-white/60 px-3 py-1 text-xs shadow-sm backdrop-blur-md dark:bg-slate-900/70",children:[(0,a.jsx)("span",{className:"text-[11px] text-slate-500 dark:text-slate-400",children:e("common.mockModeLabel")}),(0,a.jsx)(u,{checked:o,onCheckedChange:e=>d(!!e)}),(0,a.jsx)("span",{className:"text-[11px] text-emerald-600 dark:text-emerald-400",children:e(o?"common.mockModeLocal":"common.mockModeRemote")})]}),(0,a.jsx)(i.$,{type:"button",variant:"ghost",size:"icon","aria-label":e("common.themeToggleAria"),className:"h-9 w-9 rounded-full border border-slate-200/70 bg-white/70 shadow-sm backdrop-blur-md dark:border-slate-700 dark:bg-slate-900",onClick:()=>r(e=>"light"===e?"dark":"light"),children:"light"===t?(0,a.jsx)(j.A,{className:"h-4 w-4 text-slate-700"}):(0,a.jsx)(E.A,{className:"h-4 w-4 text-amber-300"})})]})]}),(0,a.jsx)("main",{className:"mt-8 flex flex-1 flex-col gap-8 md:mt-10",children:"/analyze"===f.pathname?(0,a.jsx)(s.Suspense,{fallback:(0,a.jsx)(h,{className:"h-40 w-full"}),children:(0,a.jsx)(M,{mockMode:o})}):"/"===f.pathname?(0,a.jsx)(s.Suspense,{fallback:(0,a.jsx)(h,{className:"h-40 w-full"}),children:(0,a.jsx)(L,{})}):null}),(0,a.jsx)("footer",{className:"mt-8 border-t border-slate-200/80 pt-4 text-[11px] text-slate-500 dark:border-slate-800/80 dark:text-slate-400",children:(0,a.jsx)("div",{className:"flex justify-center text-center",children:(0,a.jsx)("span",{className:"text-slate-400",children:e("footer.jsSafety")})})})]}),(0,a.jsx)(T,{})]})},{})})}))}},i={};function d(e){var t=i[e];if(void 0!==t)return t.exports;var r=i[e]={exports:{}};return n[e](r,r.exports,d),r.exports}d.m=n,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,d.t=function(r,a){if(1&a&&(r=this(r)),8&a||"object"==typeof r&&r&&(4&a&&r.__esModule||16&a&&"function"==typeof r.then))return r;var s=Object.create(null);d.r(s);var o={};e=e||[null,t({}),t([]),t(t)];for(var l=2&a&&r;("object"==typeof l||"function"==typeof l)&&!~e.indexOf(l);l=t(l))Object.getOwnPropertyNames(l).forEach(e=>{o[e]=()=>r[e]});return o.default=()=>r,d.d(s,o),s},d.d=(e,t,r)=>{var a=(t,r)=>{for(var a in t)d.o(t,a)&&!d.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,[r]:t[a]})};a(t,"get"),a(r,"value")},d.f={},d.e=e=>Promise.all(Object.keys(d.f).reduce((t,r)=>(d.f[r](e,t),t),[])),d.u=e=>"static/js/async/"+e+"."+({427:"dbb8b74259",503:"80102da6f9",515:"94e03bda91"})[e]+".js",d.miniCssF=e=>""+e+".css",d.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},d.l=function(e,t,a,s){if(r[e])return void r[e].push(t);if(void 0!==a)for(var o,l,n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var c=n[i];if(c.getAttribute("src")==e||c.getAttribute("data-rspack")=="@module-federation/treeshake-frontend:"+a){o=c;break}}o||(l=!0,(o=document.createElement("script")).timeout=120,d.nc&&o.setAttribute("nonce",d.nc),o.setAttribute("data-rspack","@module-federation/treeshake-frontend:"+a),o.src=e),r[e]=[t];var u=function(t,a){o.onerror=o.onload=null,clearTimeout(h);var s=r[e];if(delete r[e],o.parentNode&&o.parentNode.removeChild(o),s&&s.forEach(function(e){return e(a)}),t)return t(a)},h=setTimeout(u.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=u.bind(null,o.onerror),o.onload=u.bind(null,o.onload),l&&document.head.appendChild(o)},d.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.nc=void 0,a=[],d.O=(e,t,r,s)=>{if(t){s=s||0;for(var o=a.length;o>0&&a[o-1][2]>s;o--)a[o]=a[o-1];a[o]=[t,r,s];return}for(var l=1/0,o=0;o<a.length;o++){for(var[t,r,s]=a[o],n=!0,i=0;i<t.length;i++)(!1&s||l>=s)&&Object.keys(d.O).every(e=>d.O[e](t[i]))?t.splice(i--,1):(n=!1,s<l&&(l=s));if(n){a.splice(o--,1);var c=r();void 0!==c&&(e=c)}}return e},d.p="/tree-shaking/",s={410:0},d.f.j=function(e,t){var r=d.o(s,e)?s[e]:void 0;if(0!==r)if(r)t.push(r[2]);else{var a=new Promise((t,a)=>r=s[e]=[t,a]);t.push(r[2]=a);var o=d.p+d.u(e),l=Error();d.l(o,function(t){if(d.o(s,e)&&(0!==(r=s[e])&&(s[e]=void 0),r)){var a=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;l.message="Loading chunk "+e+" failed.\n("+a+": "+o+")",l.name="ChunkLoadError",l.type=a,l.request=o,r[1](l)}},"chunk-"+e,e)}},d.O.j=e=>0===s[e],o=(e,t)=>{var r,a,[o,l,n]=t,i=0;if(o.some(e=>0!==s[e])){for(r in l)d.o(l,r)&&(d.m[r]=l[r]);if(n)var c=n(d)}for(e&&e(t);i<o.length;i++)a=o[i],d.o(s,a)&&s[a]&&s[a][0](),s[a]=0;return d.O(c)},(l=self.rspackChunk_module_federation_treeshake_frontend=self.rspackChunk_module_federation_treeshake_frontend||[]).forEach(o.bind(null,0)),l.push=o.bind(null,l.push.bind(l));var c=d.O(void 0,["783","535","637"],()=>d(3554));c=d.O(c)})();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@module-federation/treeshake-frontend",
|
|
3
|
-
"version": "2.9.
|
|
3
|
+
"version": "2.9.2",
|
|
4
4
|
"dependencies": {
|
|
5
5
|
"@hookform/resolvers": "3.10.0",
|
|
6
6
|
"@radix-ui/react-accordion": "1.2.2",
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
"tailwindcss": "v3.4.16",
|
|
77
77
|
"typescript": "^6.0.3",
|
|
78
78
|
"typescript-eslint": "^8.15.0",
|
|
79
|
-
"@module-federation/treeshake-server": "2.9.
|
|
79
|
+
"@module-federation/treeshake-server": "2.9.2"
|
|
80
80
|
},
|
|
81
81
|
"exports": {
|
|
82
82
|
"./adapter": {
|
|
File without changes
|
/package/dist/static/js/async/{503.7bd056737e.js.LICENSE.txt → 503.80102da6f9.js.LICENSE.txt}
RENAMED
|
File without changes
|