1import{r as l,j as o}from"./vendor-radix-al_OTMAN.js";import{V as u,e as d,d as a}from"./index-JlZLcK8n.js";import"./vendor-recharts-BJ3gX3uR.js";import"./vendor-framer-motion-BYr8tkHJ.js";function g(){const{id:c}=u(),s=d();return l.useEffect(()=>{let r=!1;const n=(t="")=>t.trim().toLowerCase().replace(/^https?:\/\//,"").replace(/^www\./,"").replace(/\/+$/,"");return(async()=>{try{const t=await a.entities.Analysis.get(c);if(r)return;let e=t==null?void 0:t.app_id;if(!e&&(t!=null&&t.url)){let i=(await a.entities.App.list("created_date",50)).find(p=>n(p.url)===n(t.url));if(!i){const p=(()=>{try{return new URL(t.url.startsWith("http")?t.url:`https://${t.url}`).hostname.replace(/^www\./,"")}catch{return t.url.slice(0,80)}})();i=await a.entities.App.create({name:p,url:t.url,monitor_status:"none"})}e=i.id,a.entities.Analysis.update(t.id,{app_id:e}).catch(()=>{})}if(r)return;s(e?`/workspace/product?app=${e}`:"/workspace/product",{replace:!0})}catch{r||s("/workspace/product",{replace:!0})}})(),()=>{r=!0}},[c,s]),o.jsx("div",{className:"fixed inset-0 flex items-center justify-center",children:o.jsx("div",{className:"loader",role:"status","aria-label":"Loading"})})}export{g as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.