1let y={value:null,expires:0},v=null;function N(){return y.value&&y.expires>Date.now()?y.value:null}function j(t){return y.value&&y.expires>Date.now()?Promise.resolve(y.value):v||(v=new Promise((e,r)=>{const n=window.turnstile;if(!n){v=null,r(new Error("Turnstile not loaded"));return}const o=n.render(t,{sitekey:"0x4AAAAAAA7T-UQPOsl1iU3B",retry:"auto",size:"flexible",callback:u=>{const a=()=>{n.remove(o),v=null};fetch("https://api.companyenrich.com/internal/turnstile",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({token:u})}).then(i=>i.json()).then(i=>{a(),y.value=i,y.expires=Date.now()+1e3*60*5,e(i)}).catch(i=>{a(),r(i)})},"error-callback":()=>{setTimeout(()=>{n.remove(o),v=null,r(new Error("Turnstile challenge failed"))},1e3)}})}),v)}const O="modulepreload",z=function(t){return"/"+t},C={},M=function(e,r,n){let o=Promise.resolve();if(r&&r.length>0){let m=function(p){return Promise.all(p.map(h=>Promise.resolve(h).then(l=>({status:"fulfilled",value:l}),l=>({status:"rejected",reason:l}))))};var a=m;document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),d=i?.nonce||i?.getAttribute("nonce");o=m(r.map(p=>{if(p=z(p),p in C)return;C[p]=!0;const h=p.endsWith(".css"),l=h?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${p}"]${l}`))return;const g=document.createElement("link");if(g.rel=h?"stylesheet":O,h||(g.as="script"),g.crossOrigin="",g.href=p,d&&g.setAttribute("nonce",d),document.head.appendChild(g),h)return new Promise((L,F)=>{g.addEventListener("load",L),g.addEventListener("error",()=>F(new Error(`Unable to preload CSS for ${p}`)))})}))}function u(i){const d=new Event("vite:preloadError",{cancelable:!0});if(d.payload=i,window.dispatchEvent(d),!d.defaultPrevented)throw i}return o.then(i=>{for(const d of i||[])d.status==="rejected"&&u(d.reason);return e().catch(u)})};let x=null;async function D(){return x||(x=(await M(()=>import("./naics-Bn9SBo-p.js"),[])).default,x)}const I={"under-1m":"< $1M","1m-10m":"$1M - $10M","10m-50m":"$10M - $50M","50m-100m":"$50M - $100M","100m-200m":"$100M - $200M","200m-1b":"$200M - $1B","over-1b":"Over $1B"},R={"1-10":"1-10 Employees","11-50":"10-50 Employees","51-200":"50-200 Employees","201-500":"200-500 Employees","501-1K":"500-1000 Employees","1K-5K":"1000-2000 Employees","5K-10K":"2000-5000 Employees","over-10K":"Over 10000 Employees"},U={unknown:"Unknown",private:"Private",public:"Public","self-employed":"Self Employed","self-owned":"Self Owned",partnership:"Partnership",nonprofit:"Nonprofit",educational:"Educational",government:"Government"},B=t=>I[t]??"-",q=t=>R[t]??"-",K=t=>U[t]??"-",H=async t=>{const e=await D();for(let r=0;r<=4;r++){const n=t.slice(0,-r||void 0),o=e[n];if(o)return{naicsCode:n,title:o}}return null},_="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=",E={orange:"bg-orange-500/15 text-orange-700",lime:"bg-lime-400/20 text-lime-700",sky:"bg-sky-500/15 text-sky-700",blue:"bg-blue-500/15 text-blue-700",indigo:"bg-indigo-500/15 text-indigo-700",purple:"bg-purple-500/15 text-purple-700",zinc:"bg-zinc-600/10 text-zinc-700"};function s(t){return t?t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""):""}function f(t,e="blue",r="",n=""){return`<span class="${r} inline-flex items-center gap-x-1.5 rounded-md px-1.5 py-0.5 text-sm/5 font-medium sm:text-xs/5 forced-colors:outline ${E[e]||E.blue}" ${n?`title="${s(n)}"`:""}>${s(t)}</span>`}function w(t,e,r,n=!1){const o=e?`https://ui-avatars.com/api/?size=256&name=${encodeURIComponent(e)}`:_;return`<span class="${r} inline-grid shrink-0 align-middle [--ring-opacity:20%] *:col-start-1 *:row-start-1 outline outline-1 -outline-offset-1 outline-black/[--ring-opacity] ${n?"!outline-none ring-0 rounded-lg *:rounded-lg":"rounded-full *:rounded-full"}"><img class="size-full" src="${s(t||o)}" data-fallback-name="${s(e)}" alt="" /></span>`}function J(t){return`<dt class="col-start-1 border-t border-zinc-950/5 pt-3 text-zinc-500 first:border-none sm:border-t sm:border-zinc-950/5 sm:py-3">${s(t)}</dt>`}function Y(t,e=""){return`<dd class="${e} pb-3 pt-1 text-zinc-950 sm:border-t sm:border-zinc-950/5 sm:py-3 sm:[&:nth-child(2)]:border-none">${t}</dd>`}function c(t,e,r=""){return J(t)+Y(e,r)}function S(t){return`<div class="bg-zinc-100 px-2 py-0.5 rounded-md uppercase text-[10px] text-zinc-500 transition-transform hover:scale-110">${s(t)}</div>`}async function T(t){const e=(await Promise.all(t.map(n=>H(n)))).filter(n=>n!==null),r=e.map(n=>n.naicsCode);return e.filter(({naicsCode:n},o)=>!r.includes(n,o+1))}function G(t){t.querySelectorAll("img[data-fallback-name]").forEach(e
1=>{if(e.onerror=function(){this.onerror=null;const r=this.dataset.fallbackName;this.src=r?`https://ui-avatars.com/api/?size=256&name=${encodeURIComponent(r)}`:_},e.complete&&e.naturalWidth===0&&e.src){const r=e.src;e.src="",e.src=r}})}function W(){return`<div role="status" class="animate-pulse">${[0,1,2].map(t=>`<div> 2 <div class="h-2.5 bg-gray-200 rounded-full w-48 ${t===0?"mb-4":"my-4"}"></div> 3 <div class="h-2 bg-gray-200 rounded-full max-w-[360px] mb-2.5"></div> 4 <div class="h-2 bg-gray-200 rounded-full mb-2.5"></div> 5 <div class="h-2 bg-gray-200 rounded-full max-w-[330px] mb-2.5"></div> 6 <div class="h-2 bg-gray-200 rounded-full max-w-[300px] mb-2.5"></div> 7 <div class="h-2 bg-gray-200 rounded-full min-w-full"></div> 8 </div>`).join("")}</div>`}function b(t="We couldn't find any company matching your search criteria."){return`<p class="text-gray-500 text-base p-6">${s(t)}</p>`}function V(t){return`<div class="flex border-b justify-center border-gray-200">${[{key:"html",label:"Formatted"},{key:"json",label:"Plain JSON"},{key:"api",label:"API Call"}].map(({key:r,label:n})=>`<button data-format="${r}" class="py-2 px-4 font-medium text-sm focus:outline-none transition-colors duration-300 ${t===r?"text-[#086CD9] border-b-2 border-[#086CD9]":"text-gray-500 hover:text-gray-700"}">${n}</button>`).join("")}</div>`}function P(t){return t?JSON.stringify(t,null,2).replace(/(\"(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\\"])*\"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g,r=>{let n="text-[#086CD9]";return/^\"/.test(r)?/:$/.test(r)&&(n="text-[#404C59]"):/null/.test(r)?n="text-[#CBD2DA]":n="text-[#6C48FF]",`<span class="${n}">${r}</span>`}):""}function Q(t){return`<pre class="text-xs border bg-[#F9FAFB] border-[#F0F2F4] shadow-sm rounded-lg py-4 px-6 max-h-[500px] w-full overflow-y-auto">${P(t)}</pre>`}function X(t){if(!t)return'<p class="text-gray-500">API details not available</p>';const e=(m,p)=>`<div><h3 class="font-semibold text-gray-700 mb-2">${m}</h3><div class="bg-gray-900 text-gray-100 p-4 rounded-md overflow-x-auto">${p}</div></div>`,r=t.headers["Content-Type"],n=r?`<div>Content-Type: ${s(r)}</div>`:"",o=t.body?`<div class="mt-2"></div><div>${P(t.body)}</div>`:"",u=r?` \\ 9 -H "Content-Type: ${r}"`:"",a=t.body?` \\ 10 -d '${JSON.stringify(t.body,null,2).replace(/\n/g,` 11 `)}'`:"",i=r?`, 12 "Content-Type": "${r}"`:"",d=t.body?`, 13 body: JSON.stringify(${JSON.stringify(t.body,null,2).replace(/\n/g,` 14 `)})`:"";return`<div class="text-xs border bg-[#F9FAFB] border-[#F0F2F4] shadow-sm rounded-lg py-4 px-6 max-h-[500px] w-full overflow-y-auto"> 15 <div class="space-y-4"> 16 ${e("Request",`<div class="font-mono text-xs"> 17 <div><span class="text-green-400">${s(t.method)}</span> <span class="text-blue-300">${s(t.url)}</span></div> 18 <div>Authorization: Bearer <YOUR TOKEN></div> 19 ${n} 20 ${o} 21 </div>`)} 22 ${e("Example cURL",`<pre class="font-mono text-xs">curl -X ${t.method} "${t.url}" \\ 23 -H "Authorization: Bearer <YOUR TOKEN>"${u}${a}</pre>`)} 24 ${e("Example JavaScript (fetch)",`<pre class="font-mono text-xs">const response = await fetch("${t.url}", { 25 method: "${t.method}", 26 headers: { 27 "Authorization": "Bearer <YOUR TOKEN>"${i} 28 }${d} 29}); 30 31const data = await response.json(); 32console.log(data);</pre>`)} 33 </div> 34 </div>`}const Z=[{key:"linkedin_url",name:"LinkedIn"},{key:"twitter_url",name:"Twitter"},{key:"facebook_url",name:"Facebook"},{key:"instagram_url",name:"Instagram"},{key:"angellist_url",name:"AngelList"},{key:"crunchbase_url",name:"Crunchbase"},{key:"youtube_url",name:"YouTube"}];async function ee(t){const e=t,r=e.categories?.length?e.categories.map(a=>S(a)).join(""):"",n=Z.filter(({key:a})=>e.socials?.[a]).map(({key:a,name:i})=>`<a target="_blank" href="${s(e.socials[a])}" class="group transition-transform duration-300 hover:scale-110">${f(i)}</a>`).join("");let o="";if(e.location?.address&&(o+=c("Address",s(e.location.address))),e.location?.country?.name&&(o+=c("Country",s(e.location.country.name))),e.location?.state?.name&&(o+=c("State",s(e.location.state.name))),e.location?.city?.name&&(o+=c("City",s(e.location.city.name))),e.location?.phone&&(o+=c("Phone",s(e.location.phone))),e.type&&(o+=c("Type",s(K(e.type)),"capitalize")),e.industry&&(o+=c("Main Industry",f(e.industry.replace(/-/g," ").replace(/\//g," / "),"indigo","capitalize"))),e.
34industries?.length){const a=e.industries.map(i=>f(i.replace(/-/g," ").replace(/\//g," / "),"sky","capitalize")).join("");o+=c("Industries",a,"flex flex-wrap gap-2 max-h-80")}if(e.naics_codes){const i=(await T(e.naics_codes)).map(({naicsCode:d,title:m})=>f(`${d} - ${m}`,"blue","",d)).join("");o+=c("NAICS",i,"flex flex-wrap gap-2 max-h-80")}if(e.revenue&&(o+=c("Revenue",s(B(e.revenue)),"capitalize")),e.financial?.stock_exchange&&(o+=c("Stock Exchange",s(e.financial.stock_exchange),"uppercase")),e.financial?.stock_symbol&&(o+=c("Stock Symbol",s(e.financial.stock_symbol),"uppercase")),e.employees&&(o+=c("Employees",s(q(e.employees)),"capitalize")),e.founded_year&&(o+=c("Founded",s(String(e.founded_year)),"capitalize")),e.technologies?.length){const a=e.technologies.map(i=>f(i.replace("-"," "),"orange","capitalize transition-transform hover:scale-110 cursor-pointer")).join("");o+=c("Technologies",a,"capitalize flex flex-wrap gap-2 max-h-80 !py-2")}if(e.keywords?.length){const a=e.keywords.map(i=>f(i.replace(/-/g," "),"lime","capitalize")).join("");o+=c("Keywords",a,"flex flex-wrap gap-2 max-h-80")}return`<div> 35 <div class="bg-gradient-to-b from-[#1488CC] to-[#086CD9] p-6 rounded-t-lg"> 36 <div class="flex items-center gap-4"> 37 ${e.logo_url?w(e.logo_url,e.name,"h-20 w-20 border-4 border-white shadow-lg rounded-full"):`<div class="w-20 h-20 bg-white rounded-full flex items-center justify-center shadow-lg"><p class="text-3xl font-bold text-[#086CD9]">${s(e.name?.charAt(0))}</p></div>`} 38 <div> 39 <p class="text-2xl font-bold text-white">${s(e.name)}</p> 40 <a class="text-sm text-white transition-colors duration-300 flex items-center gap-1 mb-2" target="_blank" href="${s(e.website)}">${s(e.website)}</a> 41 <div class="flex flex-wrap gap-1">${r}</div> 42 </div> 43 </div> 44 </div> 45 <div class="p-6"> 46 <div class="flex flex-wrap gap-2 mb-4">${n}</div> 47 <div class="mb-4"><p class="text-sm text-gray-600 italic">${s(e.description)}</p></div> 48 <dl class="grid grid-cols-1 text-base/6 sm:grid-cols-[min(50%,theme(spacing.80))_auto] sm:text-sm/6">${o}</dl> 49 </div> 50 </div>`}function te(t){const e="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",r=t.map(n=>{const o=n.logo_url?w(n.logo_url,n.name,"h-10 w-10 rounded-full mr-3"):`<div class="h-10 w-10 rounded-full bg-blue-100 flex items-center justify-center mr-3"><span class="text-[#086CD9] font-bold">${s(n.name.charAt(0))}</span></div>`,u=n.categories?.length?n.categories.map(i=>S(i)).join(""):"",a=n.industry?f(n.industry.replace("-"," "),"purple","capitalize transition-transform hover:scale-110 cursor-pointer whitespace-nowrap"):"";return`<tr class="hover:bg-gray-50"> 51 <td class="px-6 py-4 whitespace-nowrap"> 52 <div class="flex items-center"> 53 ${o} 54 <div class="max-w-[400px]"> 55 <div class="flex items-center gap-2"> 56 <div class="text-sm font-medium text-gray-900 truncate" title="${s(n.name)}">${s(n.name)}</div> 57 <div class="flex gap-1">${u}</div> 58 </div> 59 <a href="${s(n.website)}" target="_blank" rel="noopener noreferrer" class="text-sm text-[#086CD9] hover:underline truncate block" title="${s(n.website)}">${s(n.website)}</a> 60 </div> 61 </div> 62 </td> 63 <td class="px-6 py-4 overflow-x-auto flex gap-2 max-w-[400px]">${a}</td> 64 <td class="px-6 py-4 whitespace-nowrap">${n.founded_year||""}</td> 65 </tr>`}).join("");return`<div class="overflow-x-auto"> 66 <table class="min-w-full divide-y divide-gray-200"> 67 <thead class="bg-gray-50"> 68 <tr> 69 <th scope="col" class="${e}">Company Name</th> 70 <th scope="col" class="${e}">Main Industry</th> 71 <th scope="col" class="${e}">Founded</th> 72 </tr> 73 </thead> 74 <tbody class="bg-white divide-y divide-gray-200">${r}</tbody> 75 </table> 76 </div>`}function ne(t){const e=t,r=e.image_url?w(e.image_url,e.name,"h-20 w-20 border-4 border-white shadow-lg rounded-full"):`<div class="w-20 h-20 bg-white rounded-full flex items-center justify-center shadow-lg"><p class="text-3xl font-bold text-[#086CD9]">${s(e.name?.charAt(0))}</p></div>`,n=e.socials?.linkedin_url?`<a target="_blank" href="${s(e.socials.linkedin_url)}" class="group transition-transform duration-300 hover:scale-110">${f("LinkedIn")}</a>`:"";let o="";e.location?.address&&(o+=c("Location",s(e.location.address))),e.location?.country?.name&&(o+=c("Country",s(e.location.country.name))),e.position&&(o+=c("Headline",s(e.position))),e.seniority&&(o+=c("Seniority",f(e.seniority.replace(/-/g," "),"indigo","capitalize"))),e.department&&(o+=c("Department",f(e.department.replace(/\//g," / "),"sky","capitalize")));const u=e.experiences?.length?`<div class="mt-4"> 77 <h3 class="text-sm font-semibold text-gray-700 mb-3">Experience</h3> 78 <div class="space-y-3">${e.experiences.map(a=>{const i=a.company?.name||a.companyName||"",d=a.company?.logo_url?w(a.company.logo_url,i,"h-8 w-8 rounded-full mr-3",!0):`<div class="h-8 w-8 rounded-full bg-blue-100 flex items-center justify-center mr-3 shrink-0"><span class="text-[#086CD9] font-bold text-xs">${s(i.charAt(0))}</span></div>`,m=a.startDate?new Date(a.startDate).toLocaleDateString("en-US",{month:"short",year:"numeric"}):"",p=a.isCurrent?"Present":a.endDate?new Date(a.endDate).toLocaleDateString("en-US",{month:"short",year:"numeric"}):"",h=m?`${m} â ${p}`:"";return`<div class="flex items-start p-2 rounded-md hover:bg-gray-50"> 79 ${d} 80 <div class="min-w-0"> 81 <div class="text-sm font-medium text-gray-900">${s(a.position)}</div> 82 <div class="text-sm text-gray-600">${s(i)}</div> 83 <div class="text-xs text-gray-400">${s(h)}</div> 84 </div> 85 ${a.isCurrent?`<span class="ml-auto shrink-0">${f("Current","lime")}</span>`:""} 86 </div>`}).join("")}</div> 87 </div>`:"";return`<div> 88 <div class="bg-gradient-to-b from-[#1488CC] to-[#086CD9] p-6 rounded-t-lg"> 89 <div class="flex items-center gap-4"> 90 ${r} 91 <div> 92 <p class="text-2xl font-bold text-white">${s(e.name)}</p> 93 <p class="text-sm text-white/80">${s(e.position||"")}</p> 94 <div class="flex flex-wrap gap-1 mt-1">${n}</div> 95 </div> 96 </div> 97 </div> 98 <div class="p-6"> 99 <dl class="grid grid-cols-1 text-base/6 sm:grid-cols-[min(50%,theme(spacing.80))_auto] sm:text-sm/6">${o}</dl> 100 ${u} 101 </div> 102 </div>`}async function re(t,e){switch(t){case"enrich":return e?.name?ee(e):b();case"reverseEmail":return e?.name?ne(e):b("We couldn't find anyone matching that email address.");case"similar":case"search":return te(e.items||[]);case"naics":{if(!e?.naics_codes)return b();const r=await T(e.naics_codes);return r.length>0?`<div class="flex flex-wrap gap-2 p-2">${r.map(({naicsCode:n,title:o})=>f(`${n} - ${o}`,"blue","p-2 !text-sm",n)).join("")}</div>`:`<div class="flex flex-wrap gap-2 p-2">${f(e.naics_codes[0],"blue","p-2 !text-sm",e.naics_codes[0])}</div>`}case"technologies":return e?.technologies?.length?`<div class="flex flex-wrap gap-2 p-2">${e.technologies.map(r=>f(r.replace("-"," "),"orange","p-2 !text-sm capitalize",r)).join("")}</div>`:b();default:return""}}const $="https://api.companyenrich.com",A={enrich:{placeholder:"e.g. salesforce.com",title:"Enrich",selector:"#enrich"},naics:{placeholder:"e.g. stripe.com",title:"Lookup",selector:"#naics"},technologies:{placeholder:"e.g. airbnb.com",title:"Lookup",selector:"#technologies"},similar:{placeholder:"e.g. cnn.com",title:"Find",selector:"#similar"},search:{placeholder:"e.g. crypto exchange companies",title:"Search",selector:"#search"},reverseEmail:{placeholder:"e.g. [email protected]",title:"Lookup",selector:"#reverse-email"}};function oe(t){return t.replace(/^https?:\/\//,"").replace(/\/.*$/,"").trim()}function se(t){const e=t.indexOf("@");return e===-1?t:t.slice(e+1).trim()}function ae(t,e){const r=t==="reverseEmail"?se(e):oe(e),n={"x-companyenrich-token":N()??""};switch(t){case"enrich":case"naics":case"technologies":return{url:`${$}/companies/enrich?domain=${r}`,method:"GET",headers:n};case"reverseEmail":return{url:`${$}/people/lookup`,method:"POST",headers:{...n,"Content-Type":"application/json"},body:{email:e.trim()}};case"similar":return{url:`${$}/companies/similar`,method:"POST",headers:{...n,"Content-Type":"application/json"},body:{domain:r}};case"search":return{url:`${$}/companies/search`,method:"POST",headers:{...n,"Content-Type":"application/json"},body:{semanticQuery:e}}}}function ie(t,e){const r=A[t];let n=null,o=null,u="html";e.innerHTML=`<div class="flex flex-col gap-1 w-full text-start"> 103 <div class="relative"> 104 <input class="shadow-sm border !border-[#F0F2F4] hover:!border-dark focus:!border-dark w-full !mr-0 !py-4 !px-5 !pr-28 bg-white text-[#6E7191] !rounded-[6px] font-normal outline-none transition-colors duration-150" type="text" placeholder="${r.placeholder}" /> 105 <button class="absolute right-1.5 top-1/2 -translate-y-1/2 py-2.5 px-5 bg-gradient-to-b from-[#1488CC] to-[#086CD9] text-white rounded-[6px] font-medium hover:opacity-90 hover:shadow-[0_4px_12px_rgba(8,108,217,0.4)] transition-all duration-150" type="submit">${r.title}</button> 106 </div> 107 <div class="turnstile mx-16"></div> 108 <div class="widget-content"></div> 109 </div>`;const a=e.querySelector("input"),i=e.querySelector('button[type="submit"]'),d=e.querySelector(".turnstile"),m=e.querySelector(".widget-content");async function p(){if(!n)return;let l;u==="json"?l=Q(n):u==="api"?l=X(o):l=`<div class="text-xs border bg-[#F9FAFB] border-[#F0F2F4] shadow-sm rounded-[6px] overflow-hidden">${await re(t,n)}</div>`,m.innerHTML=`${V(u)}<div class="format-content">${l}</div>`,m.querySelectorAll("[data-format]").forEach(g=>{g.addEventListener("click",()=>{u=g.dataset.format,p()})}),G(m)}async function h(){if(a.value){try{await j(d)}catch(l){console.error("Turnstile verification failed:",l),m.innerHTML=b("Verification failed. Please try again.");return}m.innerHTML=W(),i.setAttribute("disabled","");try{const l=ae(t,a.value);o=l,n=await(await fetch(l.url,{method:l.method,headers:l.headers,body:l.body?JSON.stringify(l.body):void 0})).json(),p()}catch{m.innerHTML=b()}finally{"usermotion"in window&&window.usermotion.track("LANDING_WIDGET_CALL_"+t.toUpperCase()),i.removeAttribute("disabled")}}}i.addEventListener("click",h),a.addEventListener("keydown",l=>{l.key==="Enter"&&a.value.length>0&&h()})}window.onloadTurnstileCallback=()=>{for(const t of Object.keys(A)){const e=document.querySelector(A[t].selector);e&&ie(t,e)}};const k=document.createElement("script");k.src="https://challenges.cloudflare.com/turnstile/v0/api.js?onload=onloadTurnstileCallback";k.async=!0;document.head.appendChild(k);
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.