six-degrees 0.8.0 → 1.0.0
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/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +3 -3
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +14 -14
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +14 -14
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/api/admin-delete/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/admin-update/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/bridges/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/bulk-import/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/company-scores/legacy/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/company-scores/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/connections/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/backup/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/csv/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/export/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/import/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/restart/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/restore/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/reveal/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/delete-cluster/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ingest/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/outreach/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/queue/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/scraper/route.js +1 -1
- package/.next/standalone/.next/server/app/api/scraper/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/settings/sector-preview/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/settings/sector-suggestions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/setup-profile/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/social/crm/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/social/messages/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/social/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/unlock/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/update/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/update-images/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/users/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/avatars/[file]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/import/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/import/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/import.html +1 -1
- package/.next/standalone/.next/server/app/import.rsc +16 -16
- package/.next/standalone/.next/server/app/import.segments/_full.segment.rsc +16 -16
- package/.next/standalone/.next/server/app/import.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/import.segments/import/__PAGE__.segment.rsc +15 -15
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +16 -16
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +15 -15
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +16 -16
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/insights/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/insights/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/insights.html +1 -1
- package/.next/standalone/.next/server/app/insights.rsc +16 -16
- package/.next/standalone/.next/server/app/insights.segments/_full.segment.rsc +16 -16
- package/.next/standalone/.next/server/app/insights.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/insights.segments/insights/__PAGE__.segment.rsc +15 -15
- package/.next/standalone/.next/server/app/launch/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/launch/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/launch.html +2 -2
- package/.next/standalone/.next/server/app/launch.rsc +16 -16
- package/.next/standalone/.next/server/app/launch.segments/_full.segment.rsc +16 -16
- package/.next/standalone/.next/server/app/launch.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/launch.segments/launch/__PAGE__.segment.rsc +15 -15
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/paths/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/paths/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/paths.html +1 -1
- package/.next/standalone/.next/server/app/paths.rsc +16 -16
- package/.next/standalone/.next/server/app/paths.segments/_full.segment.rsc +16 -16
- package/.next/standalone/.next/server/app/paths.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/paths.segments/paths/__PAGE__.segment.rsc +15 -15
- package/.next/standalone/.next/server/app/profile/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/profile/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/profile.html +1 -1
- package/.next/standalone/.next/server/app/profile.rsc +16 -16
- package/.next/standalone/.next/server/app/profile.segments/_full.segment.rsc +16 -16
- package/.next/standalone/.next/server/app/profile.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/profile.segments/profile/__PAGE__.segment.rsc +15 -15
- package/.next/standalone/.next/server/app/queue/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/queue/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/queue.html +1 -1
- package/.next/standalone/.next/server/app/queue.rsc +16 -16
- package/.next/standalone/.next/server/app/queue.segments/_full.segment.rsc +16 -16
- package/.next/standalone/.next/server/app/queue.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/queue.segments/queue/__PAGE__.segment.rsc +15 -15
- package/.next/standalone/.next/server/app/scores/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/scores/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/scores.html +1 -1
- package/.next/standalone/.next/server/app/scores.rsc +16 -16
- package/.next/standalone/.next/server/app/scores.segments/_full.segment.rsc +16 -16
- package/.next/standalone/.next/server/app/scores.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/scores.segments/scores/__PAGE__.segment.rsc +15 -15
- package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings.html +1 -1
- package/.next/standalone/.next/server/app/settings.rsc +16 -16
- package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +16 -16
- package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +15 -15
- package/.next/standalone/.next/server/app/setup/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/setup.html +1 -1
- package/.next/standalone/.next/server/app/setup.rsc +17 -17
- package/.next/standalone/.next/server/app/setup.segments/_full.segment.rsc +17 -17
- package/.next/standalone/.next/server/app/setup.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +15 -15
- package/.next/standalone/.next/server/app/social/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/social/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/social.html +1 -1
- package/.next/standalone/.next/server/app/social.rsc +16 -16
- package/.next/standalone/.next/server/app/social.segments/_full.segment.rsc +16 -16
- package/.next/standalone/.next/server/app/social.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/social.segments/social/__PAGE__.segment.rsc +15 -15
- package/.next/standalone/.next/server/chunks/_1_fynia._.js +7 -7
- package/.next/standalone/.next/server/chunks/_1itd1o_._.js +1 -1
- package/.next/standalone/.next/server/chunks/lib_02iz_9q._.js +2 -2
- package/.next/standalone/.next/server/chunks/lib_05agvk3._.js +2 -2
- package/.next/standalone/.next/server/chunks/lib_0v84u66._.js +2 -2
- package/.next/standalone/.next/server/chunks/lib_db-client_0_dch35.js +1 -1
- package/.next/standalone/.next/server/chunks/{lib_rpc_0t552z6.js → lib_rpc_1hjjjr4.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0_79idq._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_setup_page_1-282zx.js +4 -4
- package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/.next/server/middleware-manifest.json +5 -5
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/chunks/0hggugbh84m4t.js +21 -0
- package/.next/standalone/.next/static/chunks/1ods5h86raivz.js +1 -0
- package/.next/standalone/CHANGELOG.md +23 -0
- package/.next/standalone/README.md +15 -13
- package/.next/standalone/SECURITY.md +9 -4
- package/.next/standalone/app/api/scraper/route.js +9 -1
- package/.next/standalone/app/setup/page.js +55 -4
- package/.next/standalone/install.sh +7 -6
- package/.next/standalone/lib/scanner-setup.js +82 -3
- package/.next/standalone/lib/settings.js +3 -0
- package/.next/standalone/package-lock.json +2 -2
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/scripts/build-app.mjs +167 -11
- package/.next/standalone/scripts/build-desktop.mjs +3 -2
- package/.next/standalone/scripts/ci-mac-signing.sh +128 -0
- package/.next/standalone/scripts/entitlements/electron.plist +23 -0
- package/.next/standalone/scripts/entitlements/node.plist +27 -0
- package/.next/standalone/scripts/mac-sign.mjs +563 -0
- package/.next/standalone/scripts/make-dmg-background.mjs +2 -1
- package/.next/standalone/scripts/set-signing-secrets.sh +96 -0
- package/.next/static/chunks/0hggugbh84m4t.js +21 -0
- package/.next/static/chunks/1ods5h86raivz.js +1 -0
- package/CHANGELOG.md +23 -0
- package/README.md +15 -13
- package/SECURITY.md +9 -4
- package/lib/scanner-setup.js +82 -3
- package/lib/settings.js +3 -0
- package/package.json +1 -1
- package/.next/standalone/.next/static/chunks/0838_s6w-i_ik.js +0 -1
- package/.next/standalone/.next/static/chunks/112mv-com-mqa.js +0 -21
- package/.next/static/chunks/0838_s6w-i_ik.js +0 -1
- package/.next/static/chunks/112mv-com-mqa.js +0 -21
- /package/.next/standalone/.next/static/{3NCyJyAPDCEYsYTwF1Ieu → mwCGF3OV3CWV4SjUgg5T8}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{3NCyJyAPDCEYsYTwF1Ieu → mwCGF3OV3CWV4SjUgg5T8}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{3NCyJyAPDCEYsYTwF1Ieu → mwCGF3OV3CWV4SjUgg5T8}/_ssgManifest.js +0 -0
- /package/.next/static/{3NCyJyAPDCEYsYTwF1Ieu → mwCGF3OV3CWV4SjUgg5T8}/_buildManifest.js +0 -0
- /package/.next/static/{3NCyJyAPDCEYsYTwF1Ieu → mwCGF3OV3CWV4SjUgg5T8}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{3NCyJyAPDCEYsYTwF1Ieu → mwCGF3OV3CWV4SjUgg5T8}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,89349,e=>{"use strict";var t=e.i(71645);let n="http://www.w3.org/2000/svg",r={side:{r:2,bezel:26,scale:56},bar:{r:20,bezel:12,scale:22}};e.s(["default",0,function(){return(0,t.useEffect)(()=>{let e=document.documentElement,t=window.matchMedia?.("(prefers-reduced-transparency: reduce)"),o=null,a=new Map,s=0,i=null,l=()=>{if(o)return o;let e=document.createElementNS(n,"svg");return e.setAttribute("width","0"),e.setAttribute("height","0"),e.setAttribute("aria-hidden","true"),e.style.position="absolute",e.style.pointerEvents="none",o=document.createElementNS(n,"defs"),e.appendChild(o),document.body.appendChild(e),o},u=()=>{let o="frosted"!==e.dataset.buttons||t?.matches?[]:[...document.querySelectorAll("[data-glass-panel]")];for(let[e,t]of a)o.includes(e)||(e.style.removeProperty("--lg-lens"),document.getElementById(t.id)?.remove(),a.delete(e));for(let e of o){let t=Math.round(e.offsetWidth),o=Math.round(e.offsetHeight);if(t<20||o<20)continue;let i=a.get(e);if(i&&i.w===t&&i.h===o)continue;let u=r[e.dataset.glassPanel]||r.side,c=i?.id||`lg-lens-${++s}`;document.getElementById(c)?.remove();let d=document.createElementNS(n,"filter");for(let[e,t]of(d.setAttribute("id",c),Object.entries({x:"0",y:"0",width:"100%",height:"100%","color-interpolation-filters":"sRGB"})))d.setAttribute(e,t);let f=document.createElementNS(n,"feImage");for(let[e,n]of Object.entries({x:"0",y:"0",width:String(t),height:String(o),preserveAspectRatio:"none",result:"map"}))f.setAttribute(e,n);f.setAttribute("href",function(e,t,n,r){let o=document.createElement("canvas");o.width=e,o.height=t;let a=o.getContext("2d"),s=a.createImageData(e,t),i=s.data;for(let o=0;o<t;o++)for(let a=0;a<e;a++){let s=(o*e+a)*4,[l,u]=a<r+n||o<r+n||a>=e-r-n||o>=t-r-n?function(e,t,n,r,o,a){let s=e+.5-n/2,i=t+.5-r/2,l=Math.abs(s)-(n/2-o),u=Math.abs(i)-(r/2-o),c=Math.max(l,0),d=Math.max(u,0),f=Math.hypot(c,d),h=o-(f+Math.min(Math.max(l,u),0)),p=0,g=0;f>0?(p=c/f,g=d/f):l>u?p=1:g=1;let m=Math.max(0,1-h/a),y=m*m;return[(p*=-Math.sign(s)||0)*y,(g*=-Math.sign(i)||0)*y]}(a,o,e,t,n,r):[0,0];i[s]=128+127*l,i[s+1]=128+127*u,i[s+2]=128,i[s+3]=255}return a.putImageData(s,0,0),o.toDataURL()}(t,o,Math.min(u.r,Math.floor(Math.min(t,o)/2)),u.bezel));let h=document.createElementNS(n,"feDisplacementMap");for(let[e,t]of Object.entries({in:"SourceGraphic",in2:"map",scale:String(u.scale),xChannelSelector:"R",yChannelSelector:"G"}))h.setAttribute(e,t);d.append(f,h),l().appendChild(d),e.style.setProperty("--lg-lens",`url(#${c})`),a.set(e,{id:c,w:t,h:o})}},c=()=>{clearTimeout(i),i=setTimeout(u,150)};u();let d=new ResizeObserver(c),f=()=>{d.disconnect(),document.querySelectorAll("[data-glass-panel]").forEach(e=>d.observe(e))};f();let h=new MutationObserver(e=>{e.some(e=>"attributes"===e.type||[...e.addedNodes,...e.removedNodes].some(e=>1===e.nodeType&&(e.matches?.("[data-glass-panel]")||e.querySelector?.("[data-glass-panel]"))))&&(f(),c())});return h.observe(document.body,{childList:!0,subtree:!0}),h.observe(e,{attributes:!0,attributeFilter:["data-buttons"]}),t?.addEventListener?.("change",c),()=>{clearTimeout(i),d.disconnect(),h.disconnect(),t?.removeEventListener?.("change",c)}},[]),null}],89349)},40643,e=>{"use strict";var t=e.i(43476),n=e.i(71645),r=e.i(18566),o=e.i(22016),a=e.i(40996),s=e.i(68792),i=e.i(99883);let l={full:"Scanning your network",refresh:"Checking for new connections",bridge:"Scanning a circle",resume:"Carrying on with a circle","resume-all":"Carrying on with circles","auto-bridge":"Auto-Bridge","auto-bridge-retry":"Auto-Bridge",rescrape:"Re-scanning a circle",login:"Signing in to LinkedIn",setup:"Setting up the scanner",company:"Scanning a company",photos:"Saving photos",messages:"Reading your messages list","messages-full":"Reading your whole messages history",connect:"Sending a connection request"};e.s(["default",0,function(){let e,u,[c,d]=(0,n.useState)(()=>(0,a.scannerNow)()),[f,h]=(0,n.useState)(!1),[p,g]=(0,n.useState)(!1),[m,y]=(0,n.useState)(!1),b=(0,n.useSyncExternalStore)(s.watchAllDay,s.allDayNow,()=>!1),w=(0,n.useSyncExternalStore)(i.watchActivities,i.activitiesNow,i.noActivities),v=(0,n.useSyncExternalStore)(i.watchNotchTabs,i.notchTabsNow,i.noNotchTabs);(0,n.useEffect)(()=>(0,a.watchScanner)(()=>{let e=(0,a.scannerNow)();d(e),e.running||h(!1)}),[]);let S=(0,r.usePathname)(),[x,E]=(0,n.useState)(null),A=(0,n.useRef)(null),[k,j]=(0,n.useState)(null);(0,n.useEffect)(()=>{let e=null,t=null,n=0,r=()=>{n=0;let r=document.querySelector("header");r!==e&&(t?.disconnect(),t=null,(e=r)&&(t=new ResizeObserver(o)).observe(e));let a=e?Math.round(e.getBoundingClientRect().bottom):null;E(e=>e===a?e:a);let s=document.getElementById("main-tabs")?.getBoundingClientRect(),i=s&&s.width?Math.round(s.left+s.width/2):null;j(e=>e===i?e:i)},o=()=>{n||(n=requestAnimationFrame(r))};o();let a=new MutationObserver(()=>{A.current&&(A.current.style.visibility=document.querySelector("header")?"":"hidden"),o()});return a.observe(document.body,{childList:!0,subtree:!0}),window.addEventListener("resize",o),()=>{cancelAnimationFrame(n),t?.disconnect(),a.disconnect(),window.removeEventListener("resize",o)}},[S]);let N=!!c?.running,O=w[w.length-1]||null,P=N||O||b,T=!!(P||v);if((0,n.useEffect)(()=>((0,i.setNotchShown)(T),()=>(0,i.setNotchShown)(!1)),[T]),!P&&!v||null==x)return null;let C=c?.progress,R=C?.kind==="batch"&&C.total?`${C.current||C.done||0} of ${C.total}`:C?.kind==="walk"&&C.total?`${(C.done||0).toLocaleString()} of ${C.total.toLocaleString()}`:C?.kind==="saving"?"saving":null,I=C?.total?Math.min(1,(C.current||C.done||0)/C.total):O?.progress??null,M=c?.budget,_=N?[...c.log||[]].reverse().find(e=>e&&e.trim())?.trim():null,L=p||m,$=N?"#00ff88":O?"warn"===O.tone?"#FFD700":"#3498DB":"#556",D=N?l[c.action]||"Scanning":O?O.label:"Auto scan",F=N?R:O?O.detail:null,z=null!=k?`clamp(170px, ${k}px, calc(100vw - 170px))`:"50%";return(0,t.jsxs)("div",{ref:A,"data-glass-panel":"bar",className:"notch-in",onMouseLeave:()=>g(!1),style:{position:"fixed",left:z,top:x,transform:"translateX(-50%)",zIndex:60,maxWidth:"calc(100vw - 16px)",padding:L&&P?"4px 6px 10px":"4px 6px 5px",borderRadius:"0 0 14px 14px",border:`1px solid ${N?"rgba(0,255,136,0.25)":"rgba(var(--sd-ink, 255, 255, 255), 0.1)"}`,borderTop:"none",background:"var(--sd-surface, rgba(8,10,22,0.96))",color:"var(--sd-fg-2, #cfd8d8)",fontSize:12,opacity:v||N||O||L?1:.55,boxShadow:N?"0 6px 20px rgba(0,0,0,0.35)":"none",transition:"padding 0.18s ease, opacity 0.18s ease"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4,overflowX:"auto"},children:[v&&(0,t.jsx)("div",{role:"tablist","aria-label":"View",style:{display:"flex",gap:2},children:v.items.map(e=>{let n=e.key===v.current;return(0,t.jsxs)("button",{role:"tab","aria-selected":n,title:e.title,onClick:()=>v.onPick(e.key),style:{display:"flex",alignItems:"center",gap:6,padding:"5px 11px",borderRadius:8,border:"none",cursor:"pointer",whiteSpace:"nowrap",fontSize:12,fontWeight:600,background:n?"rgba(52,152,219,0.22)":"transparent",color:n?"var(--sd-fg-1, #cfe6f7)":"var(--sd-fg-3, #8b9aa8)"},children:[e.icon&&(0,t.jsx)("span",{"aria-hidden":"true",children:e.icon}),e.label]},e.key)})}),v&&P&&(0,t.jsx)("span",{"aria-hidden":"true",style:{width:1,alignSelf:"stretch",margin:"3px 4px",background:"rgba(var(--sd-ink, 255, 255, 255), 0.12)"}}),P&&(0,t.jsxs)("button",{onMouseEnter:()=>g(!0),onClick:()=>y(e=>!e),"aria-expanded":L,title:L?"Close":"Open",style:{display:"flex",alignItems:"center",gap:8,background:"none",border:"none",color:"inherit",font:"inherit",cursor:"pointer",padding:"5px 8px",whiteSpace:"nowrap"},children:[(0,t.jsx)("span",{className:N?"notch-pulse":void 0,style:{width:7,height:7,borderRadius:"50%",background:$,flexShrink:0}}),(0,t.jsxs)("span",{role:"status","aria-live":"polite",style:{display:"flex",alignItems:"center",gap:8},children:[(0,t.jsx)("b",{style:{color:N||O?"var(--sd-fg-1, #fff)":"var(--sd-fg-2, #b8c4c4)",fontWeight:600},children:D}),F&&(0,t.jsx)("span",{style:{color:"var(--sd-fg-3, #8b9a9a)"},children:F})]}),!N&&!O&&L&&(0,t.jsx)("span",{style:{color:"var(--sd-fg-3, #8b9a9a)"},children:"ready · press Auto scan beside Scan to start"})]})]}),P&&null!=I&&(0,t.jsx)("div",{style:{height:2,margin:"3px 6px 0",borderRadius:2,background:"rgba(var(--sd-ink, 255, 255, 255), 0.08)",overflow:"hidden"},children:(0,t.jsx)("div",{style:{width:`${Math.round(100*I)}%`,height:"100%",background:N?"#00ff88":"#3498DB",transition:"width 0.4s ease"}})}),L&&N&&(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,margin:"8px 8px 0",flexWrap:"wrap"},children:[c.target?.name&&(0,t.jsx)("span",{children:c.target.name}),M&&(0,t.jsxs)(o.default,{href:"/settings#usage",style:{color:(e=M.searches,(u=M.cap)?e/u>=.9?"#ff6b6b":e/u>=.6?"#FFD700":"#00ff88":"#8b9a9a"),textDecoration:"none"},title:"Searches on your LinkedIn account in the last 24 hours, and your daily budget. Open LinkedIn usage",children:[M.searches,M.cap?` of ${M.cap}`:""," searches in the last 24 hours"]}),_&&(0,t.jsx)("span",{style:{color:"var(--sd-fg-4, #667)",maxWidth:280,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:_,children:_}),(0,t.jsx)(o.default,{href:"/setup",style:{color:"var(--sd-blue, #3498DB)",textDecoration:"none"},children:"Details"}),(0,t.jsx)("button",{onClick:async()=>{h(!0);try{await (0,a.stopScrape)()}catch{h(!1)}},disabled:f,title:"Stops after saving what's been read; Resume on the Scan page carries on from the same page",style:{padding:"3px 10px",borderRadius:8,fontSize:12,cursor:f?"default":"pointer",background:"rgba(255,107,107,0.12)",color:"var(--sd-fg-2, #ff9b9b)",border:"1px solid rgba(255,107,107,0.35)"},children:f?"Stopping…":"Stop"})]}),L&&!N&&O?.detail&&(0,t.jsx)("div",{style:{margin:"6px 8px 0",color:"var(--sd-fg-3, #8b9a9a)"},children:O.detail})]})}])},87915,e=>{"use strict";var t=e.i(71645),n=e.i(40996),r=e.i(64745);let o=!1;e.s(["default",0,function(){return(0,t.useEffect)(()=>{if(r.IS_DEMO||o)return;let e=()=>{};return fetch("/api/social").then(e=>e.json()).then(({social:t})=>{if(!t?.autoSync||o)return;let r=t.liveAt?Date.parse(t.liveAt):0,a=new Date().getHours();Date.now()-r<864e5||a<9||a>=19||(e=(0,n.watchScanner)(()=>{let t=(0,n.scannerNow)();t.known&&!o&&(o=!0,e(),t.running||(0,n.beginScrape)("messages").catch(()=>{}))}))}).catch(()=>{}),()=>e()},[]),null}])},37711,e=>{"use strict";var t=e.i(43476),n=e.i(71645);e.s(["default",0,function(){let[e,r]=(0,n.useState)(null);return((0,n.useEffect)(()=>{let e=!0;return fetch("/api/update").then(e=>e.json()).then(t=>{e&&t?.restartNeeded&&r(t)}).catch(()=>{}),()=>{e=!1}},[]),e)?(0,t.jsxs)("div",{role:"status",style:{position:"fixed",left:0,right:0,bottom:0,zIndex:9999,background:"linear-gradient(90deg, #FFD700, #FF6B35)",color:"#1a1200",padding:"9px 16px",fontSize:13,fontWeight:600,lineHeight:1.5,display:"flex",alignItems:"center",justifyContent:"center",gap:10,flexWrap:"wrap",textAlign:"center"},children:[(0,t.jsxs)("span",{children:["You have newer code on disk (",e.sha,") than this server is running (",e.bootSha,"). Restart it to see the changes: ",(0,t.jsx)("code",{style:{background:"rgba(var(--sd-shade, 0, 0, 0), 0.16)",padding:"1px 6px",borderRadius:4},children:"Ctrl-C"})," in the terminal, then ",(0,t.jsx)("code",{style:{background:"rgba(var(--sd-shade, 0, 0, 0), 0.16)",padding:"1px 6px",borderRadius:4},children:"npm run dev"}),"."]}),(0,t.jsx)("button",{onClick:()=>r(null),style:{border:"none",background:"rgba(var(--sd-shade, 0, 0, 0), 0.18)",color:"#1a1200",borderRadius:6,padding:"3px 10px",fontWeight:700,cursor:"pointer"},children:"Dismiss"})]}):null}])},56456,e=>{"use strict";var t=e.i(71645),n=e.i(58712);e.s(["default",0,function(){return(0,t.useEffect)(()=>{let t=!0;return fetch("/api/settings",{cache:"no-store"}).then(e=>e.ok?e.json():null).then(async r=>{if(!t||!r?.settings)return;(0,n.adoptSavedTheme)(r.settings.theme);let{adoptSavedLayouts:o}=await e.A(11678);t&&o(r.settings.galaxyLayouts)}).catch(()=>{}),()=>{t=!1}},[]),null}])},68792,e=>{"use strict";var t=e.i(40996);let n=(e,t)=>{try{let n=localStorage.getItem(e);return null===n?t:JSON.parse(n)}catch{return t}};e.s(["allDayNow",0,function(){try{return"true"===localStorage.getItem("six-degrees-experimental-auto")}catch{return!1}},"startAutoScan",0,function(){let e=n("six-degrees-bridge-order","newest");return(0,t.beginScrape)("auto-bridge",{experimental:!0,maxBridges:10,order:e,tiers:"score"===e?["S","A"]:[],maxPages:n("six-degrees-bridge-pages-v2",100),deeper:n("six-degrees-bridge-finish",!0)})},"watchAllDay",0,function(e){return window.addEventListener("storage",e),window.addEventListener("six-degrees:experimental",e),()=>{window.removeEventListener("storage",e),window.removeEventListener("six-degrees:experimental",e)}}])},99883,e=>{"use strict";let t=new Set,n=[],r=[],o=new Set,a=null,s=new Set,i=!1;e.s(["activitiesNow",0,()=>n,"noActivities",0,()=>r,"noNotch",0,()=>!1,"noNotchTabs",0,()=>null,"notchShownNow",0,()=>i,"notchTabsNow",0,()=>a,"setNotchShown",0,function(e){!!e!==i&&(i=!!e,s.forEach(e=>e()))},"setNotchTabs",0,function(e){a=e&&Array.isArray(e.items)&&e.items.length>1?e:null,o.forEach(e=>e())},"showActivity",0,function(e){return e?.id?(n=[...n.filter(t=>t.id!==e.id),e],t.forEach(e=>e()),()=>{var r;return r=e.id,void(n.some(e=>e.id===r)&&(n=n.filter(e=>e.id!==r),t.forEach(e=>e())))}):()=>{}},"watchActivities",0,function(e){return t.add(e),()=>t.delete(e)},"watchNotchShown",0,function(e){return s.add(e),()=>s.delete(e)},"watchNotchTabs",0,function(e){return o.add(e),()=>o.delete(e)}])},40996,16999,e=>{"use strict";Symbol.for("six-degrees.scan-state");let t="The scanner works in Google Chrome, and Chrome isn’t on this computer.",n="Install Google Chrome, then come back",r=`${t} ${n}.`,o={install:"Install",setup:"Set up the scanner"};async function a(){let e=await fetch("/api/scraper");if(!e.ok)throw Error("Could not reach the app.");return e.json()}e.s(["CHROME_REFUSAL",0,r,"askForField",0,function(e,t){if(!e)return null;let n=e.network;return!!n&&!!n.first&&!n.second&&!n.third&&!e.running&&(void 0===t?null:!!(t&&!t.fieldAsked&&!t.sectorFocus?.sectors?.length))},"setupStep",0,function(e){let r=function(e){let t=e?.checks||{},n=(t,n,r)=>e?.running&&e.action===t?r:n;if(t.dependencies)return"bundled"===t.pythonSource?{done:!0,text:"Ready. The scanner and its Python come with the app, so there is nothing to install.",button:null}:"custom"===t.pythonSource?{done:!0,text:`Ready, on the Python named in SIX_DEGREES_PYTHON (${t.pythonPath}).`,button:null}:{done:!0,text:"Installed.",button:null};let r=t.ownPython&&"bundled"!==t.ownPython.source?`The Python named in SIX_DEGREES_PYTHON didn't work (${t.ownPython.problem}), so the scanner needs setting up another way. `:"";if(t.installFrom)return{done:!1,text:r+("downloaded"===t.installFrom.source?"Its own Python is already here. One more step, about a minute: it installs the browser-automation packages into it.":"One-time, about a minute. Downloads the browser-automation packages."),button:{action:"install",label:n("install","Install","Installing…")}};if(t.download){let e=Math.round(t.download.size/1048576);return{done:!1,text:`${r}${function(e){if(!e?.version)return"This computer has no Python the scanner can use.";let[t,n]=String(e.version).split(".").map(Number);return 3===t&&n>=10&&n<=14&&!1===e.venv?`This computer's Python ${e.version} can't make the scanner's own environment (on Ubuntu or Debian, python3-venv isn't installed).`:`This computer has Python ${e.version}, and the scanner needs 3.10 to 3.14.`}(t.systemPython)} Set up the scanner downloads its own Python ${t.download.version} (${e} MB, from GitHub) and the scanner's packages (from PyPI) into your data folder. Nothing else on this computer changes. About two minutes.`,button:{action:"setup",label:n("setup","Set up the scanner","Setting up…")}}}return{done:!1,text:`${r}No Python 3.10 to 3.14 was found on this machine. Install one from python.org, then reload.`,button:null}}(e),a=function(e,{done:t,button:n}){if(e?.source!=="bundled")return null;let r=/SIGKILL|code signature|not valid for use in process|quarantine|not permitted/i.test(e.problem||""),a=[`The Python that comes with the app didn't work (${e.problem}).`];return r&&a.push("macOS may have blocked it."),!1===e.retry&&a.push("Six Degrees won't try it again until you restart it."),t?a.push("The scanner uses another Python on this computer instead."):n?a.push(`To scan now, use ${o[n.action]} below: it gives the scanner a Python of its own in your data folder.`):a.push("To scan now, install Python 3.10 to 3.14 from python.org, then reload."),a.join(" ")}(e?.checks?.ownPython,r);return e?.checks?.chrome!==!1?{...r,note:a,chrome:null}:{...r,done:!1,text:r.done?t:`${r.text} ${t}`,note:a,chrome:{label:n,href:"https://www.google.com/chrome/"}}}],16999);let s="six-degrees-hide-chrome";function i(e,t={},n=function(e="u">typeof localStorage?localStorage:null){try{return!0===JSON.parse(e?.getItem(s)||"false")}catch{return!1}}()){return{action:e,...t,...n?{headless:!0}:{}}}async function l(e,t,n={}){let r=await fetch("/api/scraper",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i(e,{...t?{name:t}:{},...n}))}),o=await r.json().catch(()=>({}));if(!r.ok){let e=Error(o.error||"Could not start the scanner.");throw e.details=o,e}return o}async function u(e){let t=await fetch(`/api/scraper?resume=${encodeURIComponent(e)}`);return t.ok?(await t.json()).resume??null:null}let c=Object.freeze({skips:[],read:[],lists:{}});async function d(){try{let e=await fetch("/api/scraper?reach=1");if(!e.ok)return c;let t=await e.json(),n=t.lists&&"object"==typeof t.lists&&!Array.isArray(t.lists)?t.lists:{};return{skips:Array.isArray(t.skips)?t.skips:[],read:Array.isArray(t.read)?t.read:[],lists:n}}catch{return c}}async function f(e){let t=await fetch(`/api/scraper?person=${encodeURIComponent(e)}`);return t.ok?t.json():{person:null}}async function h(){await fetch("/api/scraper",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"cancel"})})}let p=Object.freeze({known:!1,running:!1,pending:!1,action:null,target:null,startedAt:null,progress:null,pages:0,found:[],log:[],finished:[]}),g=new Set,m=p,y=JSON.stringify(m),b=null,w=null,v=0,S=!1,x=new Set;function E(e){let t=JSON.stringify(e);if(t!==y)for(let n of(y=t,m=Object.freeze(e),[...g]))n()}async function A(){(!("u">typeof document&&document.hidden)||m.running)&&await function(){if(w&&w.epoch===v)return w.promise;let e=v,t=fetch("/api/scraper?job=1").then(e=>e.ok?e.json():null).then(t=>{e===v&&function(e){if(!e||"object"!=typeof e)return;let t=!0===e.running;t&&null!=e.startedAt&&x.add(e.startedAt);let n=(Array.isArray(e.recent)?e.recent:[]).filter(e=>x.has(e.startedAt)).map(n=>({...n,log:!t&&n.startedAt===e.startedAt&&Array.isArray(e.log)?e.log:[]}));E({known:!0,running:t||S,pending:S&&!t,action:t?e.action??null:S?m.action:null,target:t?e.target??null:S?m.target:null,startedAt:t?e.startedAt??null:null,progress:t?e.progress??null:null,pages:t&&Number(e.pages)||0,found:t&&Array.isArray(e.found)?e.found.map(Number).filter(Number.isFinite):[],budget:t?e.budget??null:null,log:t&&Array.isArray(e.log)?e.log:[],finished:n})}(t)}).catch(()=>{}).finally(()=>{w?.promise===t&&(w=null)});return w={epoch:e,promise:t},t}(),clearTimeout(b),b=g.size?setTimeout(A,m.running?1500:5e3):null}function k(e){return g.add(e),1===g.size&&A(),()=>{g.delete(e),g.size||(clearTimeout(b),b=null)}}async function j(e,{name:t,id:n,onLog:r,...o}={}){let a;v++,S=!0,E({...m,known:!0,running:!0,pending:!0,action:e,target:t||n?{id:n??null,name:t??null}:null,startedAt:null,progress:null,log:[]});try{a=await l(e,t,{...n?{id:n}:{},...o})}catch(e){throw S=!1,v++,m.pending&&E({...m,running:!1,pending:!1,action:null,target:null,log:[]}),A(),e}S=!1,v++;let s=a?.startedAt??null;null!=s&&x.add(s);let i=new Promise(e=>{let t=k(()=>{m.running&&m.startedAt===s&&r?.(m.log);let n=null==s?m.running?null:{exitCode:null,failure:null,log:[]}:m.finished.find(e=>e.startedAt===s);n&&(t(),n.log.length&&r?.(n.log),e(n))});A()});return{startedAt:s,ended:i}}function N(e){return!!e?.target&&["bridge","rescrape","resume"].includes(e.action)}e.s(["HIDE_CHROME_KEY",0,s,"NO_SCAN_NOTES",0,c,"SCANNER_UNKNOWN",0,p,"beginScrape",0,j,"busyReason",0,function(e=m){if(!e?.running)return null;let t=e.target?.name;switch(e.action){case"bridge":case"rescrape":case"resume":return t?`${t}’s circle is being scanned`:"A circle is being scanned";case"company":return t?`${t} is being scanned`:"A company is being scanned";case"auto-bridge":case"auto-bridge-retry":case"resume-all":return"Your bridges are being mapped, one by one";case"full":case"refresh":return"Your own connections are being scanned";case"connect":return t?`A request to ${t} is being sent`:"A connection request is being sent";default:switch(e.action){case"install":return"The scanner's packages are being installed";case"setup":return"The scanner is being set up";case"login":return"The LinkedIn sign-in window is open";case"photos":return"Profile photos are being saved";case"connect":return"A connection request is being sent";default:return"A scan is running"}}},"fillsCircles",0,function(e){return N(e)||["auto-bridge","auto-bridge-retry","resume-all"].includes(e?.action)},"isCircleScan",0,N,"loadScanNotes",0,d,"notReadyMessage",0,function(e){if(!e)return"Could not reach the app.";let t=e.checks||{};return t.scriptsFound?t.dependencies?t.chrome?null:r:t.python||t.download?"The scanner is not set up yet. Open Scan to set it up.":"No Python 3.10 to 3.14 is installed on this machine.":"The scanner files are missing from this install."},"pickedPerson",0,f,"resumePoint",0,u,"runScrape",0,function(e,t={}){return j(e,t).then(e=>e.ended)},"scanRequest",0,i,"scannerNow",0,function(){return m},"scansCircleOf",0,function(e,t){if(!N(e)||!t)return!1;let{id:n,name:r}=e.target;return n&&t.id?n===t.id:!!r&&r===t.name},"scraperStatus",0,a,"stopScrape",0,h,"watchScanner",0,k],40996)},56899,e=>{"use strict";async function t(e,{keepalive:n=!1}={}){try{let t=await fetch("/api/settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:e}),keepalive:n}),r=await t.json();return{settings:r.settings||null,effects:r.effects||null,error:t.ok?null:r.error||"Could not save."}}catch{return{settings:null,effects:null,error:"Could not reach the app. Reload this page to see what is saved."}}}e.s(["saveSettings",0,t])},40827,e=>{"use strict";e.s(["laterSaver",0,function(e,t=400){let n,r=null,o=t=>{clearTimeout(r),r=null,Promise.resolve(e(n,{now:t})).catch(()=>{})},a=e=>{n=e,r&&clearTimeout(r),r=setTimeout(()=>o(!1),t)};return a.flush=()=>{r&&o(!0)},a},"reconcileSaved",0,function({saved:e,cached:t,isDefault:n,same:r}){return null==e?{use:t,save:!n(t),changed:!1}:{use:e,save:!1,changed:!r(e,t)}}])},58712,e=>{"use strict";var t=e.i(54322),n=e.i(56899),r=e.i(40827);let o="six-degrees-theme",a=Object.freeze({base:"standard",custom:{}}),s=new Set,i=a;function l(){try{return(0,t.cleanTheme)(JSON.parse(localStorage.getItem(o)||"null")||a)}catch{return a}}function u(e){let n=(0,t.resolveTheme)(e);Object.assign(t.TIER_COLORS,n.tiers);let r=(0,t.isLight)(n);if(Object.assign(t.MAP_LOOK,{you:n.you,lines:n.lines,line:n.line,bg:n.bg,dots:n.dots,light:r,text:r?"#11141c":"#ffffff"}),"u"<typeof document)return;let o=(0,t.themeVars)(e),a=document.documentElement;for(let e of[...a.style])!e.startsWith("--sd-")||e in o||a.style.removeProperty(e);for(let[e,t]of Object.entries(o))a.style.setProperty(e,t);Object.assign(a.dataset,(0,t.themeAttrs)(e)),a.style.colorScheme=r?"light":"dark";try{localStorage.setItem("six-degrees-theme-vars",JSON.stringify({vars:o,attrs:(0,t.themeAttrs)(e)}))}catch{}}u(i=l()),window.addEventListener("storage",e=>{e.key===o&&(u(i=l()),s.forEach(e=>e()))});let c=(e,n)=>JSON.stringify((0,t.cleanTheme)(e))===JSON.stringify((0,t.cleanTheme)(n)),d=(0,r.laterSaver)((e,{now:t})=>(0,n.saveSettings)({theme:e},{keepalive:t}));function f(e){i=(0,t.cleanTheme)(e);try{localStorage.setItem(o,JSON.stringify(i))}catch{}u(i),s.forEach(e=>e())}window.addEventListener("pagehide",()=>d.flush()),e.s(["adoptSavedTheme",0,function(e){let{use:o,save:s,changed:l}=(0,r.reconcileSaved)({saved:null==e?null:(0,t.cleanTheme)(e),cached:i,isDefault:e=>c(e,a),same:c});s&&(0,n.saveSettings)({theme:i}),l&&f(o)},"serverTheme",0,()=>a,"setTheme",0,function(e){f(e),d(i)},"themeNow",0,()=>i,"watchTheme",0,function(e){return s.add(e),()=>s.delete(e)}])},22016,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0});var r={default:function(){return y},useLinkStatus:function(){return w}};for(var o in r)Object.defineProperty(n,o,{enumerable:!0,get:r[o]});let a=e.r(90809),s=e.r(43476),i=a._(e.r(71645)),l=e.r(95057),u=e.r(8372),c=e.r(18581),d=e.r(18967),f=e.r(5550),h=e.r(88540),p=e.r(91949),g=e.r(73668),m=e.r(9396);function y(t){var n;let r,o,a,[y,w]=(0,i.useOptimistic)(p.IDLE_LINK_STATUS),v=(0,i.useRef)(null),{href:S,as:x,children:E,prefetch:A=null,passHref:k,replace:j,shallow:N,scroll:O,onClick:P,onMouseEnter:T,onTouchStart:C,legacyBehavior:R=!1,onNavigate:I,transitionTypes:M,ref:_,unstable_dynamicOnHover:L,...$}=t;r=E,R&&("string"==typeof r||"number"==typeof r)&&(r=(0,s.jsx)("a",{children:r}));let D=i.default.useContext(u.AppRouterContext),F=!1!==A,z=!1===A?"none":!0===A?"full":"auto",B="none"!==z?"auto"===z?m.FetchStrategy.PPR:m.FetchStrategy.Full:m.FetchStrategy.PPR,U="string"==typeof(n=x||S)?n:(0,l.formatUrl)(n);if(R){if(r?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});o=i.default.Children.only(r)}let q=R?o&&"object"==typeof o&&o.ref:_,J,W=i.default.useCallback(e=>(null!==D&&(v.current=(0,p.mountLinkInstance)(e,U,D,B,F,w,J)),()=>{v.current&&((0,p.unmountLinkForCurrentNavigation)(v.current),v.current=null),(0,p.unmountPrefetchableInstance)(e)}),[F,U,D,B,w,J]),K={ref:(0,c.useMergedRef)(W,q),onClick(t){R||"function"!=typeof P||P(t),R&&o.props&&"function"==typeof o.props.onClick&&o.props.onClick(t),!D||t.defaultPrevented||function(t,n,r,o,a,s,l,u="none"){if("u">typeof window){let c,{nodeName:d}=t.currentTarget;if("A"===d.toUpperCase()&&((c=t.currentTarget.getAttribute("target"))&&"_self"!==c||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,g.isLocalURL)(n)){o&&(t.preventDefault(),location.replace(n));return}if(t.preventDefault(),s){let e=!1;if(s({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:f}=e.r(99781);i.default.startTransition(()=>{f(n,o?"replace":"push",!1===a?h.ScrollBehavior.NoScroll:h.ScrollBehavior.Default,r.current,l,u)})}}(t,U,v,j,O,I,M,z)},onMouseEnter(e){R||"function"!=typeof T||T(e),R&&o.props&&"function"==typeof o.props.onMouseEnter&&o.props.onMouseEnter(e),D&&F&&(0,p.onNavigationIntent)(e.currentTarget,!0===L)},onTouchStart:function(e){R||"function"!=typeof C||C(e),R&&o.props&&"function"==typeof o.props.onTouchStart&&o.props.onTouchStart(e),D&&F&&(0,p.onNavigationIntent)(e.currentTarget,!0===L)}};return(0,d.isAbsoluteUrl)(U)?K.href=U:R&&!k&&("a"!==o.type||"href"in o.props)||(K.href=(0,f.addBasePath)(U)),a=R?i.default.cloneElement(o,K):(0,s.jsx)("a",{...$,...K,children:r}),(0,s.jsx)(b.Provider,{value:y,children:a})}let b=(0,i.createContext)(p.IDLE_LINK_STATUS),w=()=>(0,i.useContext)(b);("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},18581,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"useMergedRef",{enumerable:!0,get:function(){return o}});let r=e.r(71645);function o(e,t){let n=(0,r.useRef)(null),o=(0,r.useRef)(null);return(0,r.useCallback)(r=>{if(null===r){let e=n.current;e&&(n.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(n.current=a(e,r)),t&&(o.current=a(t,r))},[e,t])}function a(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let n=e(t);return"function"==typeof n?n:()=>e(null)}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},18967,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0});var r={DecodeError:function(){return y},MiddlewareNotFoundError:function(){return S},MissingStaticPage:function(){return v},NormalizeError:function(){return b},PageNotFoundError:function(){return w},SP:function(){return g},ST:function(){return m},WEB_VITALS:function(){return a},execOnce:function(){return s},getDisplayName:function(){return d},getLocationOrigin:function(){return u},getURL:function(){return c},isAbsoluteUrl:function(){return l},isResSent:function(){return f},loadGetInitialProps:function(){return p},normalizeRepeatedSlashes:function(){return h},stringifyError:function(){return x}};for(var o in r)Object.defineProperty(n,o,{enumerable:!0,get:r[o]});let a=["CLS","FCP","FID","INP","LCP","TTFB"];function s(e){let t,n=!1;return(...r)=>(n||(n=!0,t=e(...r)),t)}let i=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,l=e=>{let t=e.charCodeAt(0);return!!(t>=65&&t<=90||t>=97&&t<=122)&&i.test(e)};function u(){let{protocol:e,hostname:t,port:n}=window.location;return`${e}//${t}${n?":"+n:""}`}function c(){let{href:e}=window.location,t=u();return e.substring(t.length)}function d(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function h(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function p(e,t){let n=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await p(t.Component,t.ctx)}:{};let r=await e.getInitialProps(t);if(n&&f(n))return r;if(!r)throw Object.defineProperty(Error(`"${d(e)}.getInitialProps()" should resolve to an object. But found "${r}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return r}let g="u">typeof performance,m=g&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class y extends Error{}class b extends Error{}class w extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class v extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class S extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function x(e){return JSON.stringify({message:e.message,stack:e.stack})}},73668,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"isLocalURL",{enumerable:!0,get:function(){return a}});let r=e.r(18967),o=e.r(52817);function a(e){if(!(0,r.isAbsoluteUrl)(e))return!0;try{let t=(0,r.getLocationOrigin)(),n=new URL(e,t);return n.origin===t&&(0,o.hasBasePath)(n.pathname)}catch(e){return!1}}},98183,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={assign:function(){return l},searchParamsToUrlQuery:function(){return a},urlQueryToSearchParams:function(){return i}};for(var o in r)Object.defineProperty(n,o,{enumerable:!0,get:r[o]});function a(e){let t={};for(let[n,r]of e.entries()){let e=t[n];void 0===e?t[n]=r:Array.isArray(e)?e.push(r):t[n]=[e,r]}return t}function s(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function i(e){let t=new URLSearchParams;for(let[n,r]of Object.entries(e))if(Array.isArray(r))for(let e of r)t.append(n,s(e));else t.set(n,s(r));return t}function l(e,...t){for(let n of t){for(let t of n.keys())e.delete(t);for(let[t,r]of n.entries())e.append(t,r)}return e}},95057,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0});var r={formatUrl:function(){return i},formatWithValidation:function(){return u},urlObjectKeys:function(){return l}};for(var o in r)Object.defineProperty(n,o,{enumerable:!0,get:r[o]});let a=e.r(90809)._(e.r(98183)),s=/https?|ftp|gopher|file/;function i(e){let{auth:t,hostname:n}=e,r=e.protocol||"",o=e.pathname||"",i=e.hash||"",l=e.query||"",u=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?u=t+e.host:n&&(u=t+(~n.indexOf(":")?`[${n}]`:n),e.port&&(u+=":"+e.port)),l&&"object"==typeof l&&(l=String(a.urlQueryToSearchParams(l)));let c=e.search||l&&`?${l}`||"";return r&&!r.endsWith(":")&&(r+=":"),e.slashes||(!r||s.test(r))&&!1!==u?(u="//"+(u||""),o&&"/"!==o[0]&&(o="/"+o)):u||(u=""),i&&"#"!==i[0]&&(i="#"+i),c&&"?"!==c[0]&&(c="?"+c),o=o.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${r}${u}${o}${c}${i}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function u(e){return i(e)}},18566,(e,t,n)=>{t.exports=e.r(76562)}]);
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,68863,e=>{"use strict";var n=e.i(43476),i=e.i(71645),t=e.i(18566),s=e.i(2776),r=e.i(22016),a=e.i(40996),o=e.i(16999);let l=["It runs your own LinkedIn account automatically, in a Chrome window on this computer.","LinkedIn’s User Agreement doesn’t allow automated tools, and LinkedIn may restrict accounts that use them. The safe limits, 50 searches a day and 250 a month, stay on unless you change them.","Nothing leaves your computer. There is no account with us and nothing is uploaded."];var d=e.i(64745),c=e.i(48235),h=e.i(51798),p=e.i(70479),g=e.i(54322);let f=`
|
|
2
|
-
@keyframes clusterTurn { to { transform: rotate(360deg); } }
|
|
3
|
-
@keyframes clusterIn { from { opacity: 0; transform: scale(0.2); } }
|
|
4
|
-
@keyframes clusterHub { 0%, 100% { opacity: .35; } 50% { opacity: .8; } }
|
|
5
|
-
.cluster-turn { transform-origin: 118px 118px; animation: clusterTurn 90s linear infinite; }
|
|
6
|
-
.cluster-dot { transition: transform .6s cubic-bezier(.2,.8,.2,1); transform-box: fill-box; }
|
|
7
|
-
.cluster-dot.fresh circle { animation: clusterIn .45s cubic-bezier(.2,.9,.3,1.3) both; transform-box: fill-box; transform-origin: center; }
|
|
8
|
-
.cluster-hub { animation: clusterHub 1.8s ease-in-out infinite; }
|
|
9
|
-
.radar-go { transition: transform .15s ease, box-shadow .2s ease; }
|
|
10
|
-
.radar-go:not(:disabled):hover { transform: scale(1.04); box-shadow: 0 0 34px rgba(0,255,136,.45); }
|
|
11
|
-
.radar-go:not(:disabled):active { transform: scale(.97); }
|
|
12
|
-
@media (prefers-reduced-motion: reduce) { .cluster-turn, .cluster-dot.fresh circle, .cluster-hub { animation: none; } .cluster-dot { transition: none; } }
|
|
13
|
-
`;function u(e,n,i){let t=n=>`${(118+e*Math.cos(n)).toFixed(2)} ${(118+e*Math.sin(n)).toFixed(2)}`,s=+(i-n>Math.PI);return`M${t(n)} A${e} ${e} 0 ${s} 1 ${t(i)}`}function x({li:e,running:t,scanning:s,disabled:r,label:o,sublabel:l,onScan:d,onPace:c}){let y=(0,i.useSyncExternalStore)(a.watchScanner,a.scannerNow,()=>a.SCANNER_UNKNOWN),m=t&&y.found||[],b=e?.limits?.pace||"fast",v=e?.limits?.daily||0,j=e?.unreadable?v:e?.searchesToday||0,w=v?Math.max(0,v-j):null,k=v?Math.min(1,j/v):0,S=k>=.9?"#ff6b6b":k>=.6?"#FFD700":"#00ff88",I=-Math.PI/2,C=108,T=[g.TIER_COLORS.S,g.TIER_COLORS.A,g.TIER_COLORS.B],{dots:z,total:W}=function(e,n){let i=e.reduce((e,n)=>e+n,0),t=Math.min(i,420);if(!t)return{dots:[],total:i};let s=[];for(let n=e.length-1;n>=0&&s.length<t;n--)for(let i=0;i<e[n]&&s.length<t;i++)s.push(n);s.reverse();let{points:r}=(0,p.ringLayout)(t,{inner:72,outer:n-8,spacing:9,minSpacing:3.2}),a=e.length-1;return{dots:r.map((e,n)=>({x:118+e.x,y:118+e.y,page:s[n],fresh:s[n]===a})),total:i}}(m,C);return(0,n.jsxs)("div",{style:{display:"flex",gap:22,alignItems:"center",flexWrap:"wrap",padding:"14px 16px",borderRadius:14,border:"1px solid rgba(0,255,136,0.18)",background:"radial-gradient(circle at 20% 50%, rgba(0,255,136,0.06), rgba(var(--sd-ink, 255, 255, 255), 0.02) 60%)"},children:[(0,n.jsx)("style",{children:f}),(0,n.jsxs)("div",{style:{position:"relative",width:236,height:236,flexShrink:0},children:[(0,n.jsxs)("svg",{width:236,height:236,"aria-hidden":"true",style:{position:"absolute",inset:0},children:[(0,n.jsxs)("defs",{children:[(0,n.jsxs)("radialGradient",{id:"radarBg",children:[(0,n.jsx)("stop",{offset:"0",stopColor:"color-mix(in srgb, var(--sd-bg, #0a0a1a) 80%, #00ff88)"}),(0,n.jsx)("stop",{offset:"1",stopColor:"var(--sd-bg, #0a0a1a)"})]}),(0,n.jsxs)("linearGradient",{id:"radarBeam",x1:"0",y1:"0",x2:"1",y2:"0",children:[(0,n.jsx)("stop",{offset:"0",stopColor:"#00ff88",stopOpacity:"0"}),(0,n.jsx)("stop",{offset:"1",stopColor:"#00ff88",stopOpacity:"0.45"})]})]}),(0,n.jsx)("circle",{cx:118,cy:118,r:C,fill:"url(#radarBg)",stroke:"rgba(0,255,136,0.25)"}),[.33,.66].map(e=>(0,n.jsx)("circle",{cx:118,cy:118,r:C*e,fill:"none",stroke:"rgba(0,255,136,0.14)",strokeDasharray:"2 5"},e)),(0,n.jsx)("line",{x1:118-C,y1:118,x2:118+C,y2:118,stroke:"rgba(0,255,136,0.1)"}),(0,n.jsx)("line",{x1:118,y1:118-C,x2:118,y2:118+C,stroke:"rgba(0,255,136,0.1)"}),!z.length&&[72,(72+C)/2,C-8].map(e=>(0,n.jsx)("circle",{cx:118,cy:118,r:e,fill:"none",stroke:"rgba(0,255,136,0.13)",strokeDasharray:"2 6"},e)),t&&!z.length&&(0,n.jsx)("circle",{className:"cluster-hub",cx:118,cy:118,r:66,fill:"none",stroke:"#00ff88",strokeOpacity:.6}),z.length>0&&(0,n.jsxs)("g",{className:"cluster-turn",children:[(0,n.jsx)("path",{d:z.map(e=>`M118 118L${e.x.toFixed(1)} ${e.y.toFixed(1)}`).join(""),stroke:"#fff",strokeOpacity:.05,strokeWidth:.6}),z.map((e,i)=>(0,n.jsx)("g",{className:`cluster-dot${e.fresh?" fresh":""}`,style:{transform:`translate(${e.x}px, ${e.y}px)`},children:(0,n.jsx)("circle",{className:"sd-dot",r:e.fresh?3:2.5,fill:T[e.page%T.length],opacity:e.fresh?1:.85,style:e.fresh?{filter:`drop-shadow(0 0 3px ${T[e.page%T.length]})`}:void 0})},i))]}),(0,n.jsx)("path",{d:u(C+5,I,I+2*Math.PI-.001),fill:"none",stroke:"rgba(var(--sd-ink, 255, 255, 255), 0.08)",strokeWidth:5}),k>0&&(0,n.jsx)("path",{d:u(C+5,I,I+2*Math.PI*k-.001),fill:"none",stroke:S,strokeWidth:5,strokeLinecap:"round"})]}),(0,n.jsxs)("button",{type:"button",className:"radar-go",onClick:d,disabled:r,style:{position:"absolute",left:56,top:56,width:124,height:124,borderRadius:"50%",cursor:r?"not-allowed":"pointer",border:`2px solid ${r?"rgba(var(--sd-ink, 255, 255, 255), 0.12)":"#00ff88"}`,background:r?"var(--sd-card, rgba(20,24,40,0.92))":"radial-gradient(circle at 50% 35%, #134d3a, #0b2a22 70%)",color:r?"var(--sd-fg-4, #667)":"var(--sd-fg-1, #eafff5)",boxShadow:r?"none":"0 0 22px rgba(0,255,136,0.25)",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:2,padding:8},children:[(0,n.jsx)("span",{style:{fontSize:22,fontWeight:900,letterSpacing:2},children:s?"•••":"SCAN"}),(0,n.jsx)("span",{style:{fontSize:11,fontWeight:700,opacity:.85,lineHeight:1.25,textAlign:"center"},children:o}),l&&(0,n.jsx)("span",{style:{fontSize:10,opacity:.6,textAlign:"center",textWrap:"balance"},children:l})]}),t&&m.length>0&&(0,n.jsxs)("div",{style:{position:"absolute",left:0,right:0,bottom:-18,textAlign:"center",fontSize:11,fontWeight:700,color:"var(--sd-fg-2, #9fe8c4)",fontVariantNumeric:"tabular-nums"},children:[W.toLocaleString("en-US")," found · ",m.length," page",1===m.length?"":"s"]})]}),(0,n.jsxs)("div",{style:{flex:1,minWidth:260},children:[(0,n.jsx)("div",{style:{fontSize:10,fontWeight:800,letterSpacing:1,color:"var(--sd-fg-4, #6b7090)",textTransform:"uppercase",marginBottom:8},children:"Speed"}),(0,n.jsx)("div",{role:"radiogroup","aria-label":"Scan speed",style:{display:"grid",gridTemplateColumns:"repeat(3, 1fr)",gap:6},children:h.PACE_NAMES.map(e=>{let i=h.PACES[e],s=b===e,r="slow"===e?"#00E5FF":"medium"===e?"#FFD700":"#FF7043";return(0,n.jsxs)("button",{type:"button",role:"radio","aria-checked":s,disabled:t||!c,onClick:()=>c?.(e),title:`${i.pagePause} s before each page, ${i.chunkCooldown/60} min more after every 10, profiles ${i.profileGap} s apart`,style:{padding:"10px 8px",borderRadius:10,cursor:t?"not-allowed":"pointer",textAlign:"left",border:`1.5px solid ${s?r:"rgba(var(--sd-ink, 255, 255, 255), 0.1)"}`,background:s?`${r}1a`:"rgba(var(--sd-ink, 255, 255, 255), 0.03)",color:"var(--sd-fg-1, #ddd)"},children:[(0,n.jsx)("div",{style:{fontSize:14,fontWeight:800,color:s?r:"var(--sd-fg-2, #ccd)"},children:i.label}),(0,n.jsxs)("div",{style:{fontSize:11,color:"var(--sd-fg-3, #8a8fa8)",marginTop:2},children:["~",(0,h.searchesPerHour)(e)," searches an hour"]}),(0,n.jsxs)("div",{style:{fontSize:10.5,color:"var(--sd-fg-4, #6b7090)",marginTop:1},children:[i.pagePause," s between pages"]})]},e)})}),(0,n.jsx)("div",{style:{marginTop:10,fontSize:12.5,color:"var(--sd-fg-2, #b8c4c4)",lineHeight:1.6},children:e?null==w?(0,n.jsx)(n.Fragment,{children:"No daily cap is set."}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("b",{style:{color:S},children:w})," of ",v," searches left, counting the last 24 hours",w>0&&(0,n.jsxs)(n.Fragment,{children:[" · at ",(0,h.paceOf)(b).label,", ",(0,h.durationText)((0,h.paceSeconds)(b,w))," to use them"]}),"."]}):(0,n.jsx)(n.Fragment,{children:"Today’s searches show here once the scanner can read them."})}),(0,n.jsx)("div",{style:{marginTop:4,fontSize:11.5,color:"var(--sd-fg-4, #778)",lineHeight:1.55},children:"Fast is how the scanner has always run; Medium and Slow only add waiting, so fewer searches an hour reach LinkedIn. Your daily budget stays the cap at every speed: slower spreads it out, it doesn’t shrink it. Slower lowers the odds of a check from LinkedIn; it can’t promise there won’t be one."})]})]})}var y=e.i(33821),m=e.i(29962),b=e.i(27780);let v="1px solid rgba(var(--sd-ink, 255, 255, 255), 0.1)",j=g.TIER_COLORS,w=[25,50,100,200,500],k=[100,250,500,1e3,0],S=[10,25,50,100],I=e=>new Date(e).toLocaleDateString(void 0,{month:"short",day:"numeric"});function C({cooldown:e,onLift:t,disabled:s}){let[r,a]=(0,i.useState)(!1);return e?(0,n.jsxs)("div",{role:"status",style:{padding:"12px 14px",borderRadius:8,fontSize:13,lineHeight:1.6,background:"rgba(255,80,80,0.08)",border:"1px solid rgba(255,80,80,0.35)",color:"var(--sd-fg-2, #f3c9c9)"},children:[(0,n.jsxs)("b",{style:{color:"#ff8080"},children:["Scanning is paused until ",new Date(e.until).toLocaleString(void 0,{weekday:"short",month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}),"."]})," ",e.reason,". Nothing that searches LinkedIn will run until then, so the account can recover.",(0,n.jsx)("div",{style:{marginTop:8,display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"},children:r?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{style:{fontSize:12.5},children:"Only if people search works normally for you on linkedin.com right now."}),(0,n.jsx)("button",{onClick:()=>{a(!1),t()},style:{...F,color:"#ff8080"},children:"Yes, lift it"}),(0,n.jsx)("button",{onClick:()=>a(!1),style:F,children:"Keep it"})]}):(0,n.jsx)("button",{onClick:()=>a(!0),disabled:s,style:F,children:"Lift it early…"})})]}):null}function T({used:e,cap:i}){let t=i?Math.min(100,Math.round(e/i*100)):0;return(0,n.jsx)("div",{style:{height:5,borderRadius:3,background:"rgba(var(--sd-ink, 255, 255, 255), 0.07)",overflow:"hidden",marginTop:4},children:(0,n.jsx)("div",{style:{height:"100%",width:`${t}%`,background:t>=100?"#ff6b6b":t>=75?"#FFD700":"#3498DB"}})})}function z({li:e,onSetLimits:i,disabled:t}){if(!e)return null;let{limits:s}=e,a=e.unreadable?"?":e.searchesToday,o=e.unreadable?"?":e.profilesToday,l=e=>i({...s,...e}),d=e=>{let n=(0,m.limitQuestion)(s,{...s,...e});(!n||window.confirm(n))&&l(e)},c=(0,m.limitNote)(s);return(0,n.jsxs)("div",{style:{padding:"12px 14px",borderRadius:8,border:v,background:"rgba(var(--sd-ink, 255, 255, 255), 0.03)",fontSize:12.5,color:"var(--sd-fg-2, #b8c4c4)"},children:[(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(210px, 1fr))",gap:14},children:[(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("b",{style:{color:"var(--sd-fg-1, #fff)"},children:a})," of ",s.daily||"no limit"," searches in the last 24 hours"]}),(0,n.jsx)(T,{used:e.searchesToday||0,cap:s.daily})]}),(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("b",{style:{color:"var(--sd-fg-1, #fff)"},children:e.searchesMonth})," of ",s.monthly||"no limit"," this month · resets ",I(e.monthResets)]}),(0,n.jsx)(T,{used:e.searchesMonth,cap:s.monthly})]}),(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("b",{style:{color:"var(--sd-fg-1, #fff)"},children:o})," of ",s.profiles," profile views in the last 24 hours"]}),(0,n.jsx)(T,{used:e.unreadable?s.profiles:e.profilesToday,cap:s.profiles})]})]}),(0,n.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap",marginTop:10},children:[(0,n.jsx)("span",{children:"Budget:"}),(0,n.jsx)("select",{value:s.daily,disabled:t,onChange:e=>d({daily:Number(e.target.value)}),style:L,children:w.map(e=>(0,n.jsxs)("option",{value:e,children:[e," a day"]},e))}),(0,n.jsx)("select",{value:s.monthly,disabled:t,onChange:e=>d({monthly:Number(e.target.value)}),style:L,children:k.map(e=>(0,n.jsx)("option",{value:e,children:e?`${e} a month`:"no monthly cap (Premium)"},e))}),(0,n.jsx)("select",{value:s.profiles,disabled:t,onChange:e=>l({profiles:Number(e.target.value)}),style:L,children:S.map(e=>(0,n.jsxs)("option",{value:e,children:[e," profile views a day"]},e))})]}),(0,n.jsx)("div",{style:{marginTop:8,color:"var(--sd-fg-4, #778)",lineHeight:1.6},children:"Every page of someone’s connections is one search. LinkedIn limits a free account’s people searches by the month (it doesn’t say how many; reports put it around 250–350), resetting on the 1st. When a budget is used, a scan saves what it read and stops; the next one carries on from the same page."}),c&&(0,n.jsxs)("div",{style:{marginTop:8,display:"flex",gap:10,alignItems:"center",flexWrap:"wrap",color:"var(--sd-gold, #FFD700)",lineHeight:1.6},children:[(0,n.jsx)("b",{style:{flex:1,minWidth:200},children:c}),(0,n.jsxs)("button",{onClick:()=>l(m.SAFE_LIMITS),disabled:t,style:{...L,cursor:t?"not-allowed":"pointer",color:"var(--sd-gold, #FFD700)",borderColor:"rgba(255,215,0,0.4)"},children:["Back to ",m.SAFE_LIMITS.daily," a day, ",m.SAFE_LIMITS.monthly," a month"]})]}),(0,n.jsx)("div",{style:{marginTop:6,color:"var(--sd-fg-4, #778)",lineHeight:1.6},children:"Each circle scan opens the person’s profile once, which is one profile view. Profile views are what LinkedIn restricted an account for, after about 20 in an hour. The scanner opens at most one a minute, and once today’s are used, a scan stops before the next profile and tries that person next time."}),(0,n.jsx)(r.default,{href:"/settings#usage",style:{display:"inline-block",marginTop:8,color:"var(--sd-blue, #3498DB)",textDecoration:"none",fontWeight:600},children:"See all your LinkedIn usage →"})]})}function W({paused:e=[],onResume:t,onResumeAll:s,disabled:a}){let[o,l]=(0,i.useState)(!1);if(!e.length)return null;let d=o?e:e.slice(0,8);return(0,n.jsxs)("section",{"aria-labelledby":"in-progress-title",style:{margin:"20px 0 4px",borderRadius:14,overflow:"hidden",border:"1px solid rgba(255,215,0,0.3)",background:"rgba(255,215,0,0.035)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,padding:"16px 18px 14px",borderBottom:v,flexWrap:"wrap"},children:[(0,n.jsxs)("div",{style:{flex:1,minWidth:220},children:[(0,n.jsxs)("h2",{id:"in-progress-title",style:{fontSize:17,fontWeight:800,margin:0,display:"flex",alignItems:"center",gap:9},children:[(0,n.jsxs)("span",{"aria-hidden":"true",style:{display:"inline-flex",gap:2},children:[(0,n.jsx)("span",{style:{width:3,height:12,borderRadius:1,background:"var(--sd-gold, #FFD700)"}}),(0,n.jsx)("span",{style:{width:3,height:12,borderRadius:1,background:"var(--sd-gold, #FFD700)"}})]}),"In progress"]}),(0,n.jsx)("div",{style:{fontSize:13,color:"var(--sd-fg-3, #8b9a9a)",marginTop:4,lineHeight:1.5},children:(0,b.inProgressSummary)(e)})]}),(0,n.jsx)("button",{onClick:s,disabled:a,style:{...R,opacity:a?.4:1,cursor:a?"not-allowed":"pointer",background:a?"rgba(var(--sd-ink, 255, 255, 255), 0.06)":"linear-gradient(135deg, #3498DB, #9B59B6)",...a?{}:{color:"#fff"}},children:"Resume all"})]}),(0,n.jsx)("div",{children:d.map(e=>(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"9px 18px",borderBottom:"1px solid rgba(var(--sd-ink, 255, 255, 255), 0.04)"},children:[(0,n.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",background:j[e.tier]||"#667",flexShrink:0}}),(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:13,fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:(0,n.jsx)(r.default,{href:`/?chain=${encodeURIComponent(e.id)}`,title:`See ${e.name}’s circle on the map`,style:{color:"var(--sd-fg-1, #fff)",textDecoration:"underline",textDecorationColor:"rgba(var(--sd-ink, 255, 255, 255), 0.35)",textUnderlineOffset:3},children:e.name})}),(0,n.jsxs)("div",{style:{fontSize:11.5,color:"var(--sd-fg-3, #8b9a9a)"},children:["Read to page ",e.pagesRead," · carries on at ",e.nextPage,e.at?(0,n.jsxs)(n.Fragment,{children:[" ",(0,n.jsxs)("span",{style:{whiteSpace:"nowrap"},children:["· ",I(e.at)]})]}):"",e.unclear>=2?" · came back unclear twice, so it waits at the back of Resume all":""]})]}),(0,n.jsx)("button",{onClick:()=>t(e),disabled:a,style:{...R,padding:"6px 12px",fontSize:12,opacity:a?.4:1,cursor:a?"not-allowed":"pointer"},children:"Resume"})]},e.id))}),e.length>8&&(0,n.jsx)("button",{onClick:()=>l(!o),style:{...F,padding:"10px 18px"},children:o?"Show fewer":`Show all ${e.length}`})]})}let R={padding:"8px 14px",borderRadius:7,fontSize:13,fontWeight:700,cursor:"pointer",border:v,background:"rgba(var(--sd-ink, 255, 255, 255), 0.08)",color:"var(--sd-fg-1, #fff)"},F={background:"none",border:"none",color:"#8fb8d6",cursor:"pointer",fontSize:12.5,fontWeight:600,padding:0},L={padding:"6px 8px",borderRadius:6,fontSize:12.5,fontWeight:600,background:"rgba(var(--sd-ink, 255, 255, 255), 0.08)",color:"var(--sd-fg-1, #fff)",border:v};var B=e.i(8819),$=e.i(98197);e.i(77170);var N=e.i(69083),D=e.i(56899);let O={color:"var(--sd-blue, #3498DB)"};function M({onDone:e}){let[t,s]=(0,i.useState)([]),[r,a]=(0,i.useState)(null),[o,l]=(0,i.useState)(null);async function d(){a("pick"),l(null);let n=await (0,D.saveSettings)({sectorFocus:{sectors:t,strength:"lean"},fieldAsked:!0});n.settings?e(n.settings.sectorFocus.sectors):(l(n.error),a(null))}async function c(){a("skip"),l(null),await (0,D.saveSettings)({fieldAsked:!0}),e([])}return(0,n.jsxs)("section",{"aria-labelledby":"field-question","data-field-question":!0,style:{margin:"8px 0 0",padding:"20px 22px 0",borderRadius:12,border:B.LINE,background:"rgba(var(--sd-ink, 255, 255, 255), 0.03)"},children:[(0,n.jsx)("div",{style:{fontSize:12,color:"var(--sd-fg-3, #788)",textTransform:"uppercase",letterSpacing:.6},children:"One question · optional"}),(0,n.jsx)("h2",{id:"field-question",style:{fontSize:18,fontWeight:700,margin:"6px 0 4px"},children:"What field are you in?"}),(0,n.jsx)(B.Body,{style:{marginTop:0,marginBottom:14},children:"Pick up to three. Companies in your field count for more when your network is scored, so the people there rank higher. You can change it anytime in Settings."}),(0,n.jsx)($.default,{sectors:t,onChange:s,disabled:!!r}),(0,n.jsxs)("div",{style:{position:"sticky",bottom:0,margin:"16px -22px 0",padding:"12px 22px 16px",borderTop:B.LINE,borderRadius:"0 0 11px 11px",background:"#111121"},children:[(0,n.jsxs)("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[(0,n.jsx)(B.Btn,{primary:!0,onClick:d,disabled:!t.length||!!r,children:"pick"===r?"Saving…":"Continue"}),(0,n.jsx)(B.Btn,{onClick:c,disabled:!!r,children:"Skip for now"})]}),o&&(0,n.jsx)(B.Status,{tone:"bad",children:o})]})]})}function A({sectors:e}){return e.length?(0,n.jsxs)(B.Status,{tone:"ok",children:["Your field: ",e.map(e=>(0,N.sectorByKey)(e).label).join(" · "),". Your network is scored with it now, and every scan after. Change it anytime in ",(0,n.jsx)(r.default,{href:"/settings#sector",style:O,children:"Settings"}),"."]}):(0,n.jsxs)(B.Status,{children:["No field for now. You can pick one anytime in ",(0,n.jsx)(r.default,{href:"/settings#sector",style:O,children:"Settings"}),"."]})}var E=e.i(71639);let P="1px solid rgba(var(--sd-ink, 255, 255, 255), 0.1)",H={photos:"Saving profile photos to this computer",install:"Installing the scanner",setup:"Setting up the scanner",login:"Waiting for you to sign in",full:"Scanning your whole network",refresh:"Checking for new connections","auto-bridge":"Mapping 2nd-degree connections","auto-bridge-retry":"Mapping 2nd degree, hidden ones included",resume:"Carrying on with one paused list","resume-all":"Carrying on with every paused list",connect:"Sending a connection request (Auto)"};function _(){(0,i.useEffect)(()=>{"updates"===new URLSearchParams(window.location.search).get("check")&&window.location.replace("/settings?check=updates")},[]);let[e,s]=(0,i.useState)(null),[l,p]=(0,i.useState)(!1),[g,f]=(0,i.useState)(10),[u,m]=(0,i.useState)(["S","A"]),[b,v]=q("six-degrees-bridge-order","newest"),[j,w]=q("six-degrees-bridge-pages-v2",100),[k,S]=q("six-degrees-bridge-finish",!0),[I,T]=q("six-degrees-experimental-auto",!1),[R,F]=q(a.HIDE_CHROME_KEY,!1),[L,B]=(0,i.useState)(null),$=(0,i.useRef)(null),[N,D]=(0,i.useState)(void 0),[O,_]=(0,i.useState)(null),U=(0,t.useSearchParams)().get("scan"),[Q,er]=(0,i.useState)(null);(0,i.useEffect)(()=>{if(!U)return;let e=!0;return(0,a.pickedPerson)(U).then(n=>{e&&er(n?.person?n:null)},()=>{}),()=>{e=!1}},[U]);let ea=(0,i.useCallback)(async()=>{try{let e=await fetch("/api/scraper");s(await e.json())}catch{s(e=>e||{ready:!1,checks:{},log:[]})}},[]);async function eo(){B(null),await (0,a.stopScrape)().catch(e=>B(e.message)),ea()}async function el(){B(null),p(!0);try{let e=await fetch("/api/settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:{scanRiskAccepted:new Date().toISOString()}})});e.ok||B((await e.json().catch(()=>null))?.error||"Could not save that. Try again.")}catch(e){B(e.message)}finally{p(!1),ea()}}async function ed(e,n={}){B(null),p(!0);try{let i=await fetch("/api/scraper",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify((0,a.scanRequest)(e,n,R))}),t=await i.json();i.ok||B(t.error||"Could not start.")}catch(e){B(e.message)}finally{p(!1),ea()}}(0,i.useEffect)(()=>{ea();let e=setInterval(ea,1500);return()=>clearInterval(e)},[ea]),(0,i.useEffect)(()=>{if(d.IS_DEMO)return;let e=!1;return fetch("/api/settings").then(e=>e.ok?e.json():null).then(n=>{e||D(n?.settings||null)}).catch(()=>{e||D(null)}),()=>{e=!0}},[]),(0,i.useEffect)(()=>{$.current&&($.current.scrollTop=$.current.scrollHeight)},[e?.log?.length]);let ec=e?.checks||{},eh=e?.running,ep=(0,o.setupStep)(e);e&&ec.dependencies;let eg=e&&!1===ec.chrome,ef=e&&!ec.scriptsFound,eu=!1!==ec.riskAccepted,ex=e?.ready&&!eh&&eu,ey=e?.linkedin,em=!!ey?.cooldown,eb=ex&&!em,ev=e?.network||{first:0,second:0,third:0},ej=ev.first,ew=e&&ep.done?ec.signedIn?0===ej?3:4:2:1,ek=(e,n)=>n&&e!==ew?"done":e===ew?"now":e<ew?"done":"next",eS=!d.IS_DEMO&&!O&&(0,o.askForField)(e,N),eI=ey?.limits?.pace,eC=(0,h.durationText)((0,h.firstCircleSeconds)(eI)),eT=e&&!eh&&null!=e.exitCode&&0!==e.exitCode,ez=eT?e.failure?.length?e.failure.join("\n"):[...e.log||[]].reverse().find(e=>!/^Stopped \(exit/.test(e)&&!/Warning|warnings\.warn/.test(e)):null;return(0,n.jsxs)("div",{style:{minHeight:"100vh",background:"var(--sd-page)",color:"var(--sd-fg-1, #fff)",fontFamily:"var(--sd-font)"},children:[(0,n.jsx)(y.default,{active:"scan",brand:"span"}),(0,n.jsxs)("div",{style:{maxWidth:720,margin:"0 auto",padding:"32px 24px 64px"},children:[(0,n.jsxs)("div",{style:{padding:"26px 26px 22px",borderRadius:16,marginBottom:22,position:"relative",overflow:"hidden",background:"radial-gradient(120% 140% at 0% 0%, rgba(0,255,136,0.10), rgba(52,152,219,0.06) 45%, rgba(var(--sd-ink, 255, 255, 255), 0.02) 75%)",border:"1px solid rgba(0,255,136,0.22)"},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:800,letterSpacing:1.6,color:"var(--sd-green, #00ff88)"},children:"YOUR SCANNER"}),(0,n.jsx)("h1",{style:{fontSize:27,fontWeight:800,margin:"6px 0 8px",lineHeight:1.2},children:ej>0?"Your network is mapped. Send the scanner further.":(0,n.jsxs)(n.Fragment,{children:["Your galaxy in three steps.",(0,n.jsx)("span",{style:{display:"block",color:"var(--sd-fg-2, #aab7c4)",fontSize:20,fontWeight:700,marginTop:4},children:"Who they know fills in over days."})]})}),(0,n.jsx)("div",{style:{fontSize:14.5,color:"var(--sd-fg-2, #aab7c4)",lineHeight:1.6,maxWidth:560},children:"It works in your own Chrome on this Mac, slowly and in the open, and keeps everything here. You launch it; it does the reading; you watch it go."}),(0,n.jsx)("div",{style:{display:"flex",gap:"8px 18px",flexWrap:"wrap",marginTop:16},children:["Never posts or messages anyone; sends a request only when you press Auto","Never sees your password","Nothing leaves this Mac","Stops the moment you say"].map(e=>(0,n.jsxs)("span",{style:{fontSize:12.5,color:"var(--sd-fg-1, #cfe8dc)",display:"flex",alignItems:"center",gap:6},children:[(0,n.jsx)("span",{style:{color:"var(--sd-green, #00ff88)",fontWeight:900},children:"✓"}),e]},e))})]}),!e&&(0,n.jsx)("p",{style:{color:"var(--sd-fg-4, #778)",fontSize:13},children:"Checking your setup…"}),e&&(0,n.jsxs)(n.Fragment,{children:[Q?.person.id===U&&(0,n.jsx)(Y,{pick:Q,pages:j,setPages:w,li:ey,running:eh,s:e,canSearch:eb,busy:l,onUnpick:function(){er(null);try{window.history.replaceState(null,"",window.location.pathname)}catch{}},onStart:()=>ed("bridge",{id:Q.person.id,maxPages:j})}),ej>0&&!eh&&(0,n.jsx)(ei,{children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:14,flexWrap:"wrap"},children:[(0,n.jsxs)("div",{style:{flex:1,minWidth:200},children:[(0,n.jsxs)("b",{children:[ej.toLocaleString()," connections"]}),ev.second>0&&(0,n.jsxs)(n.Fragment,{children:[", plus ",ev.second.toLocaleString()," people in their circles"]}),ev.third>0&&(0,n.jsxs)(n.Fragment,{children:[" and ",ev.third.toLocaleString()," from company scans"]}),"."," ",(0,n.jsx)("span",{style:{color:"var(--sd-fg-3, #9aa)"},children:"Your galaxy is ready."})]}),(0,n.jsx)(r.default,{href:"/",style:{padding:"9px 18px",borderRadius:7,fontSize:13.5,fontWeight:700,color:"#0a0a1a",textDecoration:"none",background:"linear-gradient(135deg, #FFD700, #FF6B35)"},children:"See your network →"})]})}),eS&&(0,n.jsx)(M,{onDone:function(e){_({sectors:e}),window.scrollTo(0,0)}}),O&&(0,n.jsx)(A,{sectors:O.sectors}),e?.photosWaiting>0&&!eh&&(0,n.jsx)(ei,{children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:14,flexWrap:"wrap"},children:[(0,n.jsxs)("div",{style:{flex:1,minWidth:200},children:[(0,n.jsxs)("b",{children:[e.photosWaiting.toLocaleString()," ",1===e.photosWaiting?"photo isn’t":"photos aren’t"," saved on this computer yet."]})," ",(0,n.jsx)("span",{style:{color:"var(--sd-fg-3, #9aa)"},children:"An older version kept them as links to LinkedIn. The app doesn’t load photos from LinkedIn while you browse, so those people show initials until the photos are saved here: now, or at the end of your next scan. An expired link can’t be saved; that person’s photo comes back when they’re next scanned."}),e&&!ec.dependencies&&(0,n.jsx)("div",{style:{color:"var(--sd-fg-3, #8b9a9a)",fontSize:12.5,marginTop:6},children:"Set up the scanner first (step 1 below): it saves them."})]}),(0,n.jsx)(ee,{onClick:()=>ed("photos"),disabled:l||!ec.dependencies,children:"Save photos"})]})}),eT&&(0,n.jsxs)(ei,{tone:"bad",children:[(0,n.jsx)("b",{children:"The last run stopped before it finished."}),ez&&(0,n.jsx)("div",{style:{marginTop:6,color:"var(--sd-fg-2, #e8c4c4)",whiteSpace:"pre-wrap",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",fontSize:12.5},children:ez}),(0,n.jsx)("div",{style:{color:"var(--sd-fg-3, #9aa)",marginTop:6},children:"The full log is below."})]}),ef&&(0,n.jsxs)(ei,{tone:"bad",children:[(0,n.jsx)("b",{children:"Can’t find the scanner files."}),(0,n.jsx)("br",{}),(0,n.jsx)("span",{style:{color:"var(--sd-fg-3, #9aa)"},children:"This copy of Six Degrees is missing part of its scanner. Download it again from sixdegreesapp.com and put the new copy in place of this one."})]}),e&&ep.note&&(0,n.jsx)(ei,{tone:ep.done?void 0:"bad",children:ep.note}),e&&!eu&&(0,n.jsx)(en,{onAccept:el,busy:l}),(0,n.jsxs)("div",{role:"list","aria-label":"Scanning, step by step",style:{margin:"4px 0 8px"},children:[(0,n.jsx)("style",{children:K}),(0,n.jsx)(J,{n:1,label:"Get ready",state:ek(1,ep.done),children:(0,n.jsx)(V,{title:"Get your scanner ready",time:"A minute or two, once",done:ep.done,body:e?ep.text:"Checking…",launch:e&&ep.button&&(0,n.jsx)(X,{onClick:()=>ed(ep.button.action),disabled:l||eh,children:ep.button.label}),more:e&&ep.chrome&&(0,n.jsx)(X,{href:ep.chrome.href,quiet:!!ep.button,children:ep.chrome.label})})}),(0,n.jsx)(J,{n:2,label:"Sign in",state:ek(2,!!ec.signedIn),children:(0,n.jsx)(V,{title:"Sign in to LinkedIn, once",time:"You do this part",done:!!ec.signedIn,body:ec.signedIn?"Signed in on this Mac. If LinkedIn ever asks for a security check, or a scan says you were signed out, open LinkedIn here and finish it by hand.":(0,n.jsxs)(n.Fragment,{children:["A Chrome window opens. Sign in with your email and password there: the scanner never sees them.",(0,n.jsxs)("span",{style:{display:"block",marginTop:6},children:["Sign in to LinkedIn with Google or Apple? That can’t work in this window, so set a LinkedIn password first: on LinkedIn’s sign-in page, ",(0,n.jsx)("b",{children:"Forgot password"})," emails you a link to make one."]})]}),launch:ec.dependencies&&(0,n.jsx)(X,{onClick:()=>ed("login"),disabled:l||eh||ew<2||!eu||eg,quiet:!!ec.signedIn,children:eh&&"login"===e.action?"Waiting for you…":ec.signedIn?"Open LinkedIn again":"Open LinkedIn"})})}),(0,n.jsx)(J,{n:3,label:"Who you know",state:ek(3,ej>0),children:(0,n.jsx)(V,{title:"Map the people you know",time:"About a minute and a half for 750 people",done:ej>0,body:ej>0?`${ej.toLocaleString()} connections saved. Check for new picks up anyone you've added since; Scan it all again reads the whole list.`:"It reads your connections list and saves everyone here. After the first time, Check for new only looks at who you've added since.",launch:(0,n.jsx)(X,{onClick:()=>ed("full"),disabled:!eb||ew<3,quiet:ej>0,children:eh&&"full"===e.action?"Scanning…":ej>0?"Scan it all again":"Scan my network"}),more:ej>0&&(0,n.jsxs)(ee,{onClick:()=>ed("refresh"),disabled:!eb||ew<3,primary:!0,cluster:!0,active:!!(eh&&"refresh"===e.action),children:[(0,n.jsx)(E.default,{size:13,live:!!(eh&&"refresh"===e.action)}),eh&&"refresh"===e.action?"Checking…":"Check for new"]})})}),(0,n.jsx)(J,{n:4,label:"Who they know",state:ek(4,!1),last:!0,children:(0,n.jsxs)(V,{title:"Map who they know",time:`First circle in ${eC}`,body:(0,n.jsxs)(n.Fragment,{children:["It opens your connections one at a time and reads who ",(0,n.jsx)("i",{children:"they"})," know: that fills Degrees, Separation and Outlink. The first circle shows up in ",eC,". The rest fills in over days, a round at a time: every page is a LinkedIn search, and ",ey?.limits?.daily?(0,n.jsxs)(n.Fragment,{children:["your budget allows ",ey.limits.daily," a day"]}):(0,n.jsx)(n.Fragment,{children:"a day’s searches are best kept few"}),". Every round picks up where the last one stopped."]}),children:[(0,n.jsx)(C,{cooldown:ey?.cooldown,disabled:l,onLift:()=>ed("lift-cooldown")}),(0,n.jsxs)("div",{style:{display:"flex",gap:24,flexWrap:"wrap",alignItems:"center",marginTop:4},children:[(0,n.jsx)(x,{li:ey,running:!!eh,scanning:!!(eh&&e?.action?.startsWith("auto-bridge")),disabled:!eb||"score"===b&&!u.length,label:eh&&e?.action==="auto-bridge"?"Mapping…":"Map 2nd degree",sublabel:eh?g?`${g} people`:"everyone":`first circle in ${eC}`,onScan:()=>ed("auto-bridge",{maxBridges:g,tiers:"score"===b?u:[],order:b,maxPages:j,deeper:k,experimental:I}),onPace:l?void 0:e=>ed("set-limits",{...ey?.limits||{},pace:e})}),(0,n.jsxs)("div",{style:{flex:"1 1 230px",display:"flex",flexDirection:"column",gap:12},children:[(0,n.jsxs)("label",{style:{display:"flex",gap:10,alignItems:"center",fontSize:13,color:"var(--sd-fg-2, #cfd8d8)"},children:["This round",(0,n.jsxs)("select",{value:g,onChange:e=>f(Number(e.target.value)),disabled:eh,style:G,children:[(0,n.jsx)("option",{value:5,children:"5 people"}),(0,n.jsx)("option",{value:10,children:"10 people"}),(0,n.jsx)("option",{value:25,children:"25 people"}),(0,n.jsx)("option",{value:0,children:"everyone (not advised)"})]})]}),(0,n.jsxs)("label",{style:{display:"flex",gap:10,alignItems:"center",fontSize:13,color:"var(--sd-fg-2, #cfd8d8)"},children:["Start with",(0,n.jsxs)("select",{value:b,onChange:e=>v(e.target.value),disabled:eh,style:G,children:[(0,n.jsx)("option",{value:"newest",children:"Newest connections"}),(0,n.jsx)("option",{value:"score",children:"Highest tier"})]})]}),"score"===b&&(0,n.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"},children:[(0,n.jsx)("span",{style:{fontSize:12,color:"var(--sd-fg-3, #8b9a9a)"},children:"Work through"}),["S","A","B","C","D"].map(e=>{let i=u.includes(e);return(0,n.jsx)("button",{onClick:()=>m(n=>n.includes(e)?n.filter(n=>n!==e):[...n,e]),disabled:eh,style:{width:30,height:28,borderRadius:7,fontSize:12,fontWeight:700,cursor:eh?"not-allowed":"pointer",border:P,background:i?"rgba(52,152,219,0.22)":"rgba(var(--sd-ink, 255, 255, 255), 0.05)",color:i?"var(--sd-fg-1, #cfe6f7)":"var(--sd-fg-4, #667)"},children:e},e)}),(0,n.jsx)("span",{style:{fontSize:11.5,color:"var(--sd-fg-4, #667)"},children:u.length?"":"pick at least one"})]}),"newest"===b&&(0,n.jsxs)("div",{style:{fontSize:12,color:"var(--sd-fg-3, #8b9a9a)",lineHeight:1.6},children:["Goes by the date you connected, newest first, across every tier. Run"," ",(0,n.jsx)("b",{children:"Check for new"})," first so your latest connections are in the list."]}),(0,n.jsx)(Z,{})]})]}),eh&&e?.mapping?.id&&(0,n.jsxs)("div",{style:{marginTop:14,fontSize:13.5},children:[(0,n.jsx)(r.default,{href:`/?chain=${encodeURIComponent(e.mapping.id)}`,style:{color:"var(--sd-green, #00ff88)",fontWeight:700},children:"Watch it fill in →"}),(0,n.jsxs)("span",{style:{color:"var(--sd-fg-3, #8b9a9a)",marginLeft:8},children:[e.mapping.name?`${e.mapping.name}’s circle, `:"","saved every 10 pages."]})]})]})})]}),eh&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,marginTop:20,padding:"14px 16px",borderRadius:8,background:"rgba(0,255,136,0.06)",border:"1px solid rgba(0,255,136,0.3)"},children:[(0,n.jsx)(es,{}),(0,n.jsxs)("div",{style:{flex:1,fontSize:13.5},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:800,letterSpacing:1.2,color:"var(--sd-green, #00ff88)",marginBottom:2},children:"YOUR SCANNER IS WORKING"}),(0,n.jsx)("b",{children:H[e.action]||"Working"}),e.progress&&(0,n.jsx)(et,{p:e.progress,action:e.action}),(0,n.jsx)("div",{style:{color:"var(--sd-fg-3, #8b9a9a)",fontSize:12.5,marginTop:2},children:"Stopping closes the browser cleanly and keeps everything found so far."})]}),(0,n.jsx)(ee,{onClick:eo,tone:"bad",children:"Stop"})]}),(0,n.jsx)(W,{paused:e?.paused||[],disabled:!eb,onResume:e=>ed("resume",{id:e.id}),onResumeAll:()=>ed("resume-all",{maxBridges:g})}),(0,n.jsxs)("details",{style:{margin:"18px 0 4px",borderRadius:10,border:P,background:"rgba(var(--sd-ink, 255, 255, 255), 0.02)"},children:[(0,n.jsxs)("summary",{style:{padding:"12px 16px",cursor:"pointer",fontSize:13.5,fontWeight:650,color:"var(--sd-fg-2, #cfd8d8)"},children:["Fine-tune the scanner",(0,n.jsx)("span",{style:{fontWeight:500,color:"var(--sd-fg-4, #778)",marginLeft:8},children:"daily budget, how much of each list, the hidden window"})]}),(0,n.jsxs)("div",{style:{padding:"4px 16px 16px",display:"flex",flexDirection:"column",gap:12},children:[(0,n.jsx)(z,{li:ey,disabled:l,onSetLimits:e=>ed("set-limits",e)}),(0,n.jsxs)("label",{style:{display:"flex",gap:10,alignItems:"center",fontSize:12.5,color:"var(--sd-fg-2, #cfd8d8)"},children:["Read up to",(0,n.jsxs)("select",{value:j,onChange:e=>w(Number(e.target.value)),disabled:eh,style:G,children:[(0,n.jsx)("option",{value:100,children:"every page, to the end of their list"}),(0,n.jsx)("option",{value:50,children:"50 pages each"}),(0,n.jsx)("option",{value:25,children:"25 pages each"}),(0,n.jsx)("option",{value:10,children:"10 pages (~100 people) each"})]})]}),(0,n.jsxs)("label",{style:{display:"flex",gap:8,alignItems:"center",fontSize:12.5,color:"var(--sd-fg-2, #cfd8d8)",cursor:eh?"not-allowed":"pointer"},children:[(0,n.jsx)("input",{type:"checkbox",checked:k,onChange:e=>S(e.target.checked),disabled:eh}),"Also finish people already mapped, from the page each one stopped at"]}),(0,n.jsxs)("label",{style:{display:"flex",gap:8,alignItems:"flex-start",fontSize:12.5,color:"var(--sd-fg-2, #b8c4c4)",cursor:eh?"default":"pointer"},children:[(0,n.jsx)("input",{type:"checkbox",checked:I,disabled:eh,style:{marginTop:3},onChange:e=>{T(e.target.checked),window.dispatchEvent(new Event("six-degrees:experimental"))}}),(0,n.jsxs)("span",{children:[(0,n.jsx)("b",{style:{color:"var(--sd-gold, #FFD700)"},children:"Experimental:"})," all-day pacing. Up to 8 pages in a sitting, then an hour’s rest; searches only from 9:00 to 18:00; never more than 40 searches in a day or 200 in a week, however high your budget; two days’ rest after any check from LinkedIn; at the budget it waits instead of stopping; and it saves every page. It also reads LinkedIn’s own data beside the page text, to fill gaps and measure how the two compare. It keeps running while the app is open."]})]}),(0,n.jsxs)("label",{style:{display:"flex",gap:8,alignItems:"flex-start",fontSize:12.5,color:"var(--sd-fg-2, #b8c4c4)",cursor:eh?"default":"pointer"},children:[(0,n.jsx)("input",{type:"checkbox",checked:R,disabled:eh,style:{marginTop:3},onChange:e=>F(e.target.checked)}),(0,n.jsxs)("span",{children:[(0,n.jsx)("b",{style:{color:"var(--sd-gold, #FFD700)"},children:"Hide the Chrome window while scanning."})," Every scan runs with no window popping up; the status bar still shows what it’s doing, and Stop still works. Signing in always opens the window.",(0,n.jsx)("span",{style:{display:"block",marginTop:4,color:"#e0a080"},children:"The risks: a hidden Chrome is easier for LinkedIn to tell apart from a person, so it may make a warning or restriction more likely. If LinkedIn asks you to check it’s you (a code, a puzzle, signing in again) you won’t see it, and the scan will stop instead of waiting for you. Untick this and scan again to see what LinkedIn wants. It changes nothing about pacing or your daily budget."})]})]}),(0,n.jsxs)("div",{style:{fontSize:12,color:"var(--sd-gold, #FFD700)",lineHeight:1.6},children:["Every page is a LinkedIn search, so at ",(0,h.paceOf)(ey?.limits?.pace).label," it rests"," ",(0,h.paceOf)(ey?.limits?.pace).pagePause," seconds before each one and"," ",(0,h.paceOf)(ey?.limits?.pace).chunkCooldown/60==1?"a minute":`${(0,h.paceOf)(ey?.limits?.pace).chunkCooldown/60} minutes`," after every 10, and a long list can take"," ","about ",(0,c.circleScanCost)(j,ey?.limits?.pace).minutes," minutes a person. LinkedIn shows 100 pages of anyone’s connections at most. Free accounts have a monthly search limit: if LinkedIn says it has been reached, the scan saves what it read and stops, and carries on from that page next time. Keep batches small."]}),(0,n.jsxs)("div",{children:[(0,n.jsx)(ee,{onClick:()=>ed("auto-bridge-retry",{maxBridges:g,tiers:"score"===b?u:[],order:b,maxPages:j,deeper:k}),disabled:!eb||"score"===b&&!u.length,children:"Retry hidden ones"}),(0,n.jsx)("span",{style:{fontSize:12,color:"var(--sd-fg-3, #8b9a9a)",marginLeft:10},children:"People whose list was hidden last time, in case they’ve opened it."})]})]})]}),L&&(0,n.jsx)(ei,{tone:"bad",children:L}),e?.log?.length>0&&(0,n.jsxs)("details",{open:eT,style:{marginTop:20},children:[(0,n.jsxs)("summary",{style:{display:"flex",alignItems:"center",gap:10,cursor:"pointer",margin:"8px 0",fontSize:12,color:"var(--sd-fg-3, #788)",textTransform:"uppercase",letterSpacing:.6},children:[eh&&(0,n.jsx)(es,{}),eh?"What it’s doing (the log)":"The last run’s log"]}),(0,n.jsx)("pre",{ref:$,style:{background:"rgba(var(--sd-shade, 0, 0, 0), 0.45)",border:P,borderRadius:8,padding:14,maxHeight:280,overflow:"auto",margin:0,fontSize:12.5,lineHeight:1.7,color:"var(--sd-fg-2, #b9c6c6)",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:e.log.join("\n")})]})]})]}),(0,n.jsx)("style",{children:`@keyframes spin { to { transform: rotate(360deg) } }
|
|
14
|
-
@keyframes slide { 0% { transform: translateX(-100%) } 100% { transform: translateX(300%) } }`})]})}function Y({pick:e,pages:i,setPages:t,li:s,running:a,s:o,canSearch:l,busy:d,onStart:h,onUnpick:p}){let{person:g,circle:f}=e,u=String(g.name||"").trim().split(/\s+/)[0]||"them",x=(0,c.circleScanCost)(i,s?.limits?.pace),y=a&&o?.target?.id===g.id,m=s?.leftToday!=null&&s.leftToday<x.searches;return(0,n.jsxs)("div",{style:{margin:"16px 0",padding:"16px 18px",borderRadius:10,fontSize:13.5,lineHeight:1.6,background:"rgba(0,255,136,0.05)",border:"1px solid rgba(0,255,136,0.3)"},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--sd-green, #00ff88)",letterSpacing:.6,textTransform:"uppercase",marginBottom:4},children:"Scan one circle"}),(0,n.jsxs)("div",{style:{fontSize:16,fontWeight:700},children:[g.name," ",(0,n.jsxs)("span",{style:{fontSize:12,color:U[g.tier]||"#888"},children:[g.tier,"-tier"]})]}),g.unlocked_from_name&&(0,n.jsxs)("div",{style:{fontSize:12.5,color:"var(--sd-fg-3, #9aa)"},children:["Was in ",g.unlocked_from_name,"’s circle"]}),y?(0,n.jsxs)("div",{style:{marginTop:10},children:[(0,n.jsxs)("b",{children:["Scanning ",u,"’s circle."]})," It saves every 10 pages, and"," ",(0,n.jsx)(r.default,{href:`/?chain=${encodeURIComponent(g.id)}`,style:{color:"var(--sd-green, #00ff88)"},children:"Bridge Chains shows it filling in →"})]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{style:{color:"var(--sd-fg-2, #b8c4c4)",marginTop:10},children:["It costs ",(0,n.jsxs)("b",{children:[x.profileViews," profile view"]})," to find their list, then ",(0,n.jsx)("b",{children:"one LinkedIn search for every page"})," of it: up to ",x.searches," ",1===x.searches?"page":"pages",", about ",x.minutes," minutes.",s?.leftToday!=null&&(0,n.jsxs)(n.Fragment,{children:[" ",(0,n.jsx)("b",{children:s.leftToday})," of your ",s.limits?.daily," searches a day are left",m?"; the scan stops when they run out, and can carry on from that page later":"","."]})]}),"scanned"===f&&(0,n.jsx)("div",{style:{color:"var(--sd-gold, #FFD700)",fontSize:12.5,marginTop:6},children:"Their circle is already scanned. This reads their whole list again from page 1; to carry on from where a read stopped, use Resume on their card or under In progress below."}),"hidden"===f&&(0,n.jsx)("div",{style:{color:"var(--sd-gold, #FFD700)",fontSize:12.5,marginTop:6},children:"Their list was hidden last time it was tried. Trying again costs a profile view."}),(0,n.jsxs)("div",{style:{display:"flex",gap:10,alignItems:"center",flexWrap:"wrap",marginTop:12},children:[(0,n.jsxs)(ee,{onClick:h,disabled:!l||d,primary:!0,children:["Scan ",u,"’s circle"]}),(0,n.jsxs)("select",{value:i,onChange:e=>t(Number(e.target.value)),disabled:a,style:G,"aria-label":"How many pages of their list to read",children:[(0,n.jsx)("option",{value:100,children:"every page, to the end of their list"}),(0,n.jsx)("option",{value:50,children:"up to 50 pages"}),(0,n.jsx)("option",{value:25,children:"up to 25 pages"}),(0,n.jsx)("option",{value:10,children:"up to 10 pages (~100 people)"})]}),(0,n.jsx)(ee,{onClick:p,children:"Not now"})]}),!l&&(0,n.jsx)("div",{style:{fontSize:12.5,color:"var(--sd-fg-3, #8b9a9a)",marginTop:8},children:a?"Something else is running. One scan at a time: this one can start when it finishes.":s?.cooldown?"Scanning is paused for now (see below).":"The scanner isn’t ready yet: finish the steps below first."})]})]})}let U=g.TIER_COLORS;function q(e,n){let[t,s]=(0,i.useState)(n);return(0,i.useEffect)(()=>{try{let n=localStorage.getItem(e);null!==n&&s(JSON.parse(n))}catch{}},[e]),[t,n=>{s(n);try{localStorage.setItem(e,JSON.stringify(n))}catch{}}]}let G={padding:"9px 10px",borderRadius:7,fontSize:13.5,fontWeight:600,background:"rgba(var(--sd-ink, 255, 255, 255), 0.08)",color:"var(--sd-fg-1, #fff)",border:P},K=`
|
|
15
|
-
@keyframes stepPulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(0,255,136,.45); } 50% { box-shadow: 0 0 0 7px rgba(0,255,136,0); } }
|
|
16
|
-
.journey-now { animation: stepPulse 2.2s ease-in-out infinite; }
|
|
17
|
-
.launch-go { transition: transform .15s ease, box-shadow .2s ease, filter .2s ease; }
|
|
18
|
-
.launch-go:not(:disabled):hover { transform: translateY(-1px); box-shadow: 0 8px 30px rgba(0,255,136,.35); filter: brightness(1.08); }
|
|
19
|
-
.launch-go:not(:disabled):active { transform: translateY(0) scale(.98); }
|
|
20
|
-
@media (prefers-reduced-motion: reduce) { .journey-now { animation: none; } }
|
|
21
|
-
`;function J({n:e,label:i,state:t,last:s=!1,children:r}){let a="done"===t,o="now"===t;return(0,n.jsxs)("div",{role:"listitem","aria-label":`Step ${e}, ${i}: ${a?"done":o?"the one to do now":"still to come"}`,style:{display:"grid",gridTemplateColumns:"40px 1fr",columnGap:14},children:[(0,n.jsxs)("div",{style:{position:"relative",display:"flex",justifyContent:"center"},children:[(0,n.jsx)("span",{className:o?"journey-now":void 0,"aria-hidden":"true",style:{position:"relative",zIndex:1,width:38,height:38,borderRadius:"50%",display:"grid",placeItems:"center",fontSize:15,fontWeight:800,background:a?"rgba(0,255,136,0.16)":o?"linear-gradient(135deg, #00ff88, #1abc9c)":"var(--sd-card, #12142a)",color:a?"var(--sd-green, #00ff88)":o?"#04140c":"var(--sd-fg-4, #778)",border:`2px solid ${a?"rgba(0,255,136,0.55)":o?"transparent":"rgba(var(--sd-ink, 255, 255, 255), 0.14)"}`},children:a?"✓":e}),!s&&(0,n.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",top:40,bottom:0,left:"50%",width:2,marginLeft:-1,borderRadius:1,background:a?"linear-gradient(rgba(0,255,136,0.75), rgba(0,255,136,0.3))":"rgba(var(--sd-ink, 255, 255, 255), 0.1)"}})]}),(0,n.jsxs)("div",{style:{minWidth:0,paddingBottom:16*!s,opacity:"next"===t?.75:1},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,minHeight:38,marginBottom:6},children:[(0,n.jsxs)("span",{style:{fontSize:12,fontWeight:800,letterSpacing:1.2,textTransform:"uppercase",color:a?"var(--sd-green, #00ff88)":o?"var(--sd-fg-1, #fff)":"var(--sd-fg-3, #889)"},children:["Step ",e," · ",i]}),(0,n.jsx)("span",{style:{fontSize:10.5,fontWeight:800,padding:"2px 8px",borderRadius:10,color:a?"var(--sd-green, #00ff88)":o?"#04140c":"var(--sd-fg-3, #889)",background:a?"rgba(0,255,136,0.12)":o?"#00ff88":"rgba(var(--sd-ink, 255, 255, 255), 0.06)"},children:a?"Done":o?"Now":"Next"})]}),r]})]})}function V({title:e,time:i,body:t,launch:s,more:r,done:a=!1,children:o}){return(0,n.jsxs)("div",{style:{padding:a?"14px 18px":"18px 20px",borderRadius:14,background:a?"rgba(0,255,136,0.03)":"rgba(var(--sd-ink, 255, 255, 255), 0.035)",border:`1px solid ${a?"rgba(0,255,136,0.18)":"rgba(var(--sd-ink, 255, 255, 255), 0.1)"}`},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10,flexWrap:"wrap"},children:[(0,n.jsx)("span",{style:{fontSize:a?16:19,fontWeight:800},children:e}),i&&!a&&(0,n.jsxs)("span",{style:{fontSize:12,color:"var(--sd-fg-2, #8fd9b6)",marginLeft:"auto"},children:["⏱ ",i]})]}),(0,n.jsx)("div",{style:{fontSize:a?13:14,color:"var(--sd-fg-3, #9fb0bb)",lineHeight:1.6,margin:a?"6px 0 10px":"8px 0 14px",maxWidth:600},children:t}),o,(s||r)&&(0,n.jsxs)("div",{style:{display:"flex",gap:10,alignItems:"center",flexWrap:"wrap"},children:[s,r]})]})}function X({children:e,onClick:i,disabled:t,quiet:s=!1,href:r}){return r?(0,n.jsxs)("a",{className:"launch-go",href:r,target:"_blank",rel:"noreferrer",style:{...Q(!1,s),textDecoration:"none"},children:[(0,n.jsx)("span",{"aria-hidden":"true",style:{fontSize:s?11:13},children:"▶"}),e]}):(0,n.jsxs)("button",{type:"button",className:"launch-go",onClick:i,disabled:t,style:Q(t,s),children:[(0,n.jsx)("span",{"aria-hidden":"true",style:{fontSize:s?11:13},children:"▶"}),e]})}function Q(e,n){return{display:"inline-flex",alignItems:"center",gap:10,padding:n?"10px 18px":"13px 26px",borderRadius:12,fontSize:n?14:16,fontWeight:800,cursor:e?"not-allowed":"pointer",color:e?"var(--sd-fg-4, #667)":n?"var(--sd-fg-1, #cfe8dc)":"#04140c",border:n?"1px solid rgba(0,255,136,0.35)":"none",background:e?"rgba(var(--sd-ink, 255, 255, 255), 0.06)":n?"rgba(0,255,136,0.08)":"linear-gradient(135deg, #00ff88, #1abc9c)",boxShadow:e||n?"none":"0 4px 22px rgba(0,255,136,0.25)"}}function Z(){return(0,n.jsxs)("details",{style:{fontSize:12.5,color:"var(--sd-fg-3, #8b9a9a)",lineHeight:1.6},children:[(0,n.jsx)("summary",{style:{cursor:"pointer",color:"var(--sd-fg-2, #aab7c4)",fontWeight:600},children:"Why so slow?"}),(0,n.jsxs)("div",{style:{marginTop:6},children:["This is the part LinkedIn notices. While this app was being built, a real account was restricted for a while after roughly ",(0,n.jsx)("b",{children:"19 people in one sitting"}),". So: a small batch, a day’s rest, another batch, and stop the moment LinkedIn mentions unusual activity. Most people hide their connections; those are noted and never tried again. A list is read to the end, saving every 10 pages, and a stopped read carries on from the same page."]})]})}function ee({children:e,onClick:i,disabled:t,primary:s,tone:r,cluster:a=!1,active:o=!1}){return(0,n.jsx)("button",{onClick:i,disabled:t,className:a?"cluster-host":void 0,style:{padding:"9px 18px",borderRadius:7,fontSize:13.5,fontWeight:650,color:t&&!o?"var(--sd-fg-4, #667)":s?"#fff":"var(--sd-fg-1, #fff)",background:t&&!o?"rgba(var(--sd-ink, 255, 255, 255), 0.05)":"bad"===r?"rgba(255,80,80,0.15)":s?"linear-gradient(135deg, #9B59B6, #3498DB)":"rgba(var(--sd-ink, 255, 255, 255), 0.08)",border:P,cursor:o?"progress":t?"not-allowed":"pointer",...a?{display:"inline-flex",alignItems:"center",gap:8}:{}},children:e})}function en({onAccept:e,busy:i}){return(0,n.jsxs)("div",{role:"region","aria-label":"Before your first scan",style:{margin:"6px 0 18px",padding:"16px 18px",borderRadius:12,border:"1px solid rgba(var(--sd-ink, 255, 255, 255), 0.14)",background:"rgba(var(--sd-ink, 255, 255, 255), 0.04)"},children:[(0,n.jsx)("div",{style:{fontSize:15,fontWeight:700,color:"var(--sd-fg-1, #fff)",marginBottom:8},children:"Before your first scan"}),(0,n.jsx)("ul",{style:{margin:"0 0 14px",paddingLeft:18,color:"var(--sd-fg-2, #c8d0d0)",fontSize:13.5,lineHeight:1.65},children:l.map(e=>(0,n.jsx)("li",{style:{marginBottom:4},children:e},e))}),(0,n.jsxs)("div",{style:{display:"flex",gap:14,alignItems:"center",flexWrap:"wrap"},children:[(0,n.jsx)(ee,{onClick:e,disabled:i,primary:!0,children:"I understand"}),(0,n.jsxs)("span",{style:{fontSize:13,color:"var(--sd-fg-3, #8b9a9a)"},children:["Rather not? LinkedIn’s own CSV export needs none of this:"," ",(0,n.jsx)(r.default,{href:"/import",style:{color:"var(--sd-blue, #3498DB)"},children:"import a CSV instead"}),"."]})]})]})}function ei({children:e,tone:i}){return(0,n.jsx)("div",{style:{margin:"16px 0",padding:"14px 16px",borderRadius:8,fontSize:13.5,lineHeight:1.6,background:"bad"===i?"rgba(255,80,80,0.08)":"rgba(var(--sd-ink, 255, 255, 255), 0.05)",border:`1px solid ${"bad"===i?"rgba(255,80,80,0.3)":"rgba(var(--sd-ink, 255, 255, 255), 0.12)"}`},children:e})}function et({p:e,action:i}){let t;if("saving"===e.kind)return(0,n.jsxs)("div",{style:{margin:"8px 0 6px"},children:[(0,n.jsx)("div",{role:"progressbar","aria-label":"Saving",style:{height:8,borderRadius:4,overflow:"hidden",background:"rgba(var(--sd-ink, 255, 255, 255), 0.08)",marginBottom:6},children:(0,n.jsx)("div",{style:{width:"35%",height:"100%",borderRadius:4,background:"linear-gradient(90deg, #9B59B6, #3498DB)",animation:"slide 1.2s ease-in-out infinite"}})}),(0,n.jsx)("div",{style:{fontSize:12.5,color:"var(--sd-fg-1, #cfe6f7)"},children:"Saving to your network and fetching photos. This can take a minute or two."})]});let s=Math.max(0,Math.min(100,Math.round(e.done/e.total*100)));return t="download"===e.kind?`Downloading Python: ${e.done.toFixed(1)} of ${e.total.toFixed(1)} MB \xb7 ${s}%`:"batch"===e.kind?`Person ${e.current} of ${e.total}`:"refresh"===i?`Looked at ${e.done.toLocaleString()} so far, and stops once it reaches people already saved`:`${e.done.toLocaleString()} of ${e.total.toLocaleString()} connections \xb7 ${s}%`,(0,n.jsxs)("div",{style:{margin:"8px 0 6px"},children:["refresh"!==i&&(0,n.jsx)("div",{role:"progressbar","aria-valuemin":0,"aria-valuemax":e.total,"aria-valuenow":e.done,"aria-label":t,style:{height:8,borderRadius:4,overflow:"hidden",background:"rgba(var(--sd-ink, 255, 255, 255), 0.08)",marginBottom:6},children:(0,n.jsx)("div",{style:{width:`${s}%`,height:"100%",borderRadius:4,background:"linear-gradient(90deg, #9B59B6, #3498DB)",transition:"width 0.6s ease"}})}),(0,n.jsx)("div",{style:{fontSize:12.5,color:"var(--sd-fg-1, #cfe6f7)"},children:t})]})}function es(){return(0,n.jsx)("span",{style:{width:11,height:11,borderRadius:"50%",display:"inline-block",border:"2px solid rgba(var(--sd-ink, 255, 255, 255), 0.2)",borderTopColor:"#3498DB",animation:"spin 0.8s linear infinite"}})}e.s(["default",0,function(){return(0,n.jsx)(s.default,{children:(0,n.jsx)(i.Suspense,{children:(0,n.jsx)(_,{})})})}],68863)}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,89349,e=>{"use strict";var t=e.i(71645);let n="http://www.w3.org/2000/svg",r={side:{r:2,bezel:26,scale:56},bar:{r:20,bezel:12,scale:22}};e.s(["default",0,function(){return(0,t.useEffect)(()=>{let e=document.documentElement,t=window.matchMedia?.("(prefers-reduced-transparency: reduce)"),o=null,a=new Map,s=0,i=null,l=()=>{if(o)return o;let e=document.createElementNS(n,"svg");return e.setAttribute("width","0"),e.setAttribute("height","0"),e.setAttribute("aria-hidden","true"),e.style.position="absolute",e.style.pointerEvents="none",o=document.createElementNS(n,"defs"),e.appendChild(o),document.body.appendChild(e),o},u=()=>{let o="frosted"!==e.dataset.buttons||t?.matches?[]:[...document.querySelectorAll("[data-glass-panel]")];for(let[e,t]of a)o.includes(e)||(e.style.removeProperty("--lg-lens"),document.getElementById(t.id)?.remove(),a.delete(e));for(let e of o){let t=Math.round(e.offsetWidth),o=Math.round(e.offsetHeight);if(t<20||o<20)continue;let i=a.get(e);if(i&&i.w===t&&i.h===o)continue;let u=r[e.dataset.glassPanel]||r.side,c=i?.id||`lg-lens-${++s}`;document.getElementById(c)?.remove();let d=document.createElementNS(n,"filter");for(let[e,t]of(d.setAttribute("id",c),Object.entries({x:"0",y:"0",width:"100%",height:"100%","color-interpolation-filters":"sRGB"})))d.setAttribute(e,t);let f=document.createElementNS(n,"feImage");for(let[e,n]of Object.entries({x:"0",y:"0",width:String(t),height:String(o),preserveAspectRatio:"none",result:"map"}))f.setAttribute(e,n);f.setAttribute("href",function(e,t,n,r){let o=document.createElement("canvas");o.width=e,o.height=t;let a=o.getContext("2d"),s=a.createImageData(e,t),i=s.data;for(let o=0;o<t;o++)for(let a=0;a<e;a++){let s=(o*e+a)*4,[l,u]=a<r+n||o<r+n||a>=e-r-n||o>=t-r-n?function(e,t,n,r,o,a){let s=e+.5-n/2,i=t+.5-r/2,l=Math.abs(s)-(n/2-o),u=Math.abs(i)-(r/2-o),c=Math.max(l,0),d=Math.max(u,0),f=Math.hypot(c,d),h=o-(f+Math.min(Math.max(l,u),0)),p=0,g=0;f>0?(p=c/f,g=d/f):l>u?p=1:g=1;let m=Math.max(0,1-h/a),y=m*m;return[(p*=-Math.sign(s)||0)*y,(g*=-Math.sign(i)||0)*y]}(a,o,e,t,n,r):[0,0];i[s]=128+127*l,i[s+1]=128+127*u,i[s+2]=128,i[s+3]=255}return a.putImageData(s,0,0),o.toDataURL()}(t,o,Math.min(u.r,Math.floor(Math.min(t,o)/2)),u.bezel));let h=document.createElementNS(n,"feDisplacementMap");for(let[e,t]of Object.entries({in:"SourceGraphic",in2:"map",scale:String(u.scale),xChannelSelector:"R",yChannelSelector:"G"}))h.setAttribute(e,t);d.append(f,h),l().appendChild(d),e.style.setProperty("--lg-lens",`url(#${c})`),a.set(e,{id:c,w:t,h:o})}},c=()=>{clearTimeout(i),i=setTimeout(u,150)};u();let d=new ResizeObserver(c),f=()=>{d.disconnect(),document.querySelectorAll("[data-glass-panel]").forEach(e=>d.observe(e))};f();let h=new MutationObserver(e=>{e.some(e=>"attributes"===e.type||[...e.addedNodes,...e.removedNodes].some(e=>1===e.nodeType&&(e.matches?.("[data-glass-panel]")||e.querySelector?.("[data-glass-panel]"))))&&(f(),c())});return h.observe(document.body,{childList:!0,subtree:!0}),h.observe(e,{attributes:!0,attributeFilter:["data-buttons"]}),t?.addEventListener?.("change",c),()=>{clearTimeout(i),d.disconnect(),h.disconnect(),t?.removeEventListener?.("change",c)}},[]),null}],89349)},40643,e=>{"use strict";var t=e.i(43476),n=e.i(71645),r=e.i(18566),o=e.i(22016),a=e.i(40996),s=e.i(68792),i=e.i(99883);let l={full:"Scanning your network",refresh:"Checking for new connections",bridge:"Scanning a circle",resume:"Carrying on with a circle","resume-all":"Carrying on with circles","auto-bridge":"Auto-Bridge","auto-bridge-retry":"Auto-Bridge",rescrape:"Re-scanning a circle",login:"Signing in to LinkedIn",setup:"Setting up the scanner",company:"Scanning a company",photos:"Saving photos",messages:"Reading your messages list","messages-full":"Reading your whole messages history",connect:"Sending a connection request"};e.s(["default",0,function(){let e,u,[c,d]=(0,n.useState)(()=>(0,a.scannerNow)()),[f,h]=(0,n.useState)(!1),[p,g]=(0,n.useState)(!1),[m,y]=(0,n.useState)(!1),b=(0,n.useSyncExternalStore)(s.watchAllDay,s.allDayNow,()=>!1),w=(0,n.useSyncExternalStore)(i.watchActivities,i.activitiesNow,i.noActivities),v=(0,n.useSyncExternalStore)(i.watchNotchTabs,i.notchTabsNow,i.noNotchTabs);(0,n.useEffect)(()=>(0,a.watchScanner)(()=>{let e=(0,a.scannerNow)();d(e),e.running||h(!1)}),[]);let S=(0,r.usePathname)(),[x,E]=(0,n.useState)(null),A=(0,n.useRef)(null),[k,j]=(0,n.useState)(null);(0,n.useEffect)(()=>{let e=null,t=null,n=0,r=()=>{n=0;let r=document.querySelector("header");r!==e&&(t?.disconnect(),t=null,(e=r)&&(t=new ResizeObserver(o)).observe(e));let a=e?Math.round(e.getBoundingClientRect().bottom):null;E(e=>e===a?e:a);let s=document.getElementById("main-tabs")?.getBoundingClientRect(),i=s&&s.width?Math.round(s.left+s.width/2):null;j(e=>e===i?e:i)},o=()=>{n||(n=requestAnimationFrame(r))};o();let a=new MutationObserver(()=>{A.current&&(A.current.style.visibility=document.querySelector("header")?"":"hidden"),o()});return a.observe(document.body,{childList:!0,subtree:!0}),window.addEventListener("resize",o),()=>{cancelAnimationFrame(n),t?.disconnect(),a.disconnect(),window.removeEventListener("resize",o)}},[S]);let N=!!c?.running,O=w[w.length-1]||null,P=N||O||b,T=!!(P||v);if((0,n.useEffect)(()=>((0,i.setNotchShown)(T),()=>(0,i.setNotchShown)(!1)),[T]),!P&&!v||null==x)return null;let C=c?.progress,R=C?.kind==="batch"&&C.total?`${C.current||C.done||0} of ${C.total}`:C?.kind==="walk"&&C.total?`${(C.done||0).toLocaleString()} of ${C.total.toLocaleString()}`:C?.kind==="saving"?"saving":null,I=C?.total?Math.min(1,(C.current||C.done||0)/C.total):O?.progress??null,M=c?.budget,_=N?[...c.log||[]].reverse().find(e=>e&&e.trim())?.trim():null,L=p||m,$=N?"#00ff88":O?"warn"===O.tone?"#FFD700":"#3498DB":"#556",D=N?l[c.action]||"Scanning":O?O.label:"Auto scan",F=N?R:O?O.detail:null,z=null!=k?`clamp(170px, ${k}px, calc(100vw - 170px))`:"50%";return(0,t.jsxs)("div",{ref:A,"data-glass-panel":"bar",className:"notch-in",onMouseLeave:()=>g(!1),style:{position:"fixed",left:z,top:x,transform:"translateX(-50%)",zIndex:60,maxWidth:"calc(100vw - 16px)",padding:L&&P?"4px 6px 10px":"4px 6px 5px",borderRadius:"0 0 14px 14px",border:`1px solid ${N?"rgba(0,255,136,0.25)":"rgba(var(--sd-ink, 255, 255, 255), 0.1)"}`,borderTop:"none",background:"var(--sd-surface, rgba(8,10,22,0.96))",color:"var(--sd-fg-2, #cfd8d8)",fontSize:12,opacity:v||N||O||L?1:.55,boxShadow:N?"0 6px 20px rgba(0,0,0,0.35)":"none",transition:"padding 0.18s ease, opacity 0.18s ease"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4,overflowX:"auto"},children:[v&&(0,t.jsx)("div",{role:"tablist","aria-label":"View",style:{display:"flex",gap:2},children:v.items.map(e=>{let n=e.key===v.current;return(0,t.jsxs)("button",{role:"tab","aria-selected":n,title:e.title,onClick:()=>v.onPick(e.key),style:{display:"flex",alignItems:"center",gap:6,padding:"5px 11px",borderRadius:8,border:"none",cursor:"pointer",whiteSpace:"nowrap",fontSize:12,fontWeight:600,background:n?"rgba(52,152,219,0.22)":"transparent",color:n?"var(--sd-fg-1, #cfe6f7)":"var(--sd-fg-3, #8b9aa8)"},children:[e.icon&&(0,t.jsx)("span",{"aria-hidden":"true",children:e.icon}),e.label]},e.key)})}),v&&P&&(0,t.jsx)("span",{"aria-hidden":"true",style:{width:1,alignSelf:"stretch",margin:"3px 4px",background:"rgba(var(--sd-ink, 255, 255, 255), 0.12)"}}),P&&(0,t.jsxs)("button",{onMouseEnter:()=>g(!0),onClick:()=>y(e=>!e),"aria-expanded":L,title:L?"Close":"Open",style:{display:"flex",alignItems:"center",gap:8,background:"none",border:"none",color:"inherit",font:"inherit",cursor:"pointer",padding:"5px 8px",whiteSpace:"nowrap"},children:[(0,t.jsx)("span",{className:N?"notch-pulse":void 0,style:{width:7,height:7,borderRadius:"50%",background:$,flexShrink:0}}),(0,t.jsxs)("span",{role:"status","aria-live":"polite",style:{display:"flex",alignItems:"center",gap:8},children:[(0,t.jsx)("b",{style:{color:N||O?"var(--sd-fg-1, #fff)":"var(--sd-fg-2, #b8c4c4)",fontWeight:600},children:D}),F&&(0,t.jsx)("span",{style:{color:"var(--sd-fg-3, #8b9a9a)"},children:F})]}),!N&&!O&&L&&(0,t.jsx)("span",{style:{color:"var(--sd-fg-3, #8b9a9a)"},children:"ready · press Auto scan beside Scan to start"})]})]}),P&&null!=I&&(0,t.jsx)("div",{style:{height:2,margin:"3px 6px 0",borderRadius:2,background:"rgba(var(--sd-ink, 255, 255, 255), 0.08)",overflow:"hidden"},children:(0,t.jsx)("div",{style:{width:`${Math.round(100*I)}%`,height:"100%",background:N?"#00ff88":"#3498DB",transition:"width 0.4s ease"}})}),L&&N&&(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,margin:"8px 8px 0",flexWrap:"wrap"},children:[c.target?.name&&(0,t.jsx)("span",{children:c.target.name}),M&&(0,t.jsxs)(o.default,{href:"/settings#usage",style:{color:(e=M.searches,(u=M.cap)?e/u>=.9?"#ff6b6b":e/u>=.6?"#FFD700":"#00ff88":"#8b9a9a"),textDecoration:"none"},title:"Searches on your LinkedIn account in the last 24 hours, and your daily budget. Open LinkedIn usage",children:[M.searches,M.cap?` of ${M.cap}`:""," searches in the last 24 hours"]}),_&&(0,t.jsx)("span",{style:{color:"var(--sd-fg-4, #667)",maxWidth:280,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:_,children:_}),(0,t.jsx)(o.default,{href:"/setup",style:{color:"var(--sd-blue, #3498DB)",textDecoration:"none"},children:"Details"}),(0,t.jsx)("button",{onClick:async()=>{h(!0);try{await (0,a.stopScrape)()}catch{h(!1)}},disabled:f,title:"Stops after saving what's been read; Resume on the Scan page carries on from the same page",style:{padding:"3px 10px",borderRadius:8,fontSize:12,cursor:f?"default":"pointer",background:"rgba(255,107,107,0.12)",color:"var(--sd-fg-2, #ff9b9b)",border:"1px solid rgba(255,107,107,0.35)"},children:f?"Stopping…":"Stop"})]}),L&&!N&&O?.detail&&(0,t.jsx)("div",{style:{margin:"6px 8px 0",color:"var(--sd-fg-3, #8b9a9a)"},children:O.detail})]})}])},87915,e=>{"use strict";var t=e.i(71645),n=e.i(40996),r=e.i(64745);let o=!1;e.s(["default",0,function(){return(0,t.useEffect)(()=>{if(r.IS_DEMO||o)return;let e=()=>{};return fetch("/api/social").then(e=>e.json()).then(({social:t})=>{if(!t?.autoSync||o)return;let r=t.liveAt?Date.parse(t.liveAt):0,a=new Date().getHours();Date.now()-r<864e5||a<9||a>=19||(e=(0,n.watchScanner)(()=>{let t=(0,n.scannerNow)();t.known&&!o&&(o=!0,e(),t.running||(0,n.beginScrape)("messages").catch(()=>{}))}))}).catch(()=>{}),()=>e()},[]),null}])},37711,e=>{"use strict";var t=e.i(43476),n=e.i(71645);e.s(["default",0,function(){let[e,r]=(0,n.useState)(null);return((0,n.useEffect)(()=>{let e=!0;return fetch("/api/update").then(e=>e.json()).then(t=>{e&&t?.restartNeeded&&r(t)}).catch(()=>{}),()=>{e=!1}},[]),e)?(0,t.jsxs)("div",{role:"status",style:{position:"fixed",left:0,right:0,bottom:0,zIndex:9999,background:"linear-gradient(90deg, #FFD700, #FF6B35)",color:"#1a1200",padding:"9px 16px",fontSize:13,fontWeight:600,lineHeight:1.5,display:"flex",alignItems:"center",justifyContent:"center",gap:10,flexWrap:"wrap",textAlign:"center"},children:[(0,t.jsxs)("span",{children:["You have newer code on disk (",e.sha,") than this server is running (",e.bootSha,"). Restart it to see the changes: ",(0,t.jsx)("code",{style:{background:"rgba(var(--sd-shade, 0, 0, 0), 0.16)",padding:"1px 6px",borderRadius:4},children:"Ctrl-C"})," in the terminal, then ",(0,t.jsx)("code",{style:{background:"rgba(var(--sd-shade, 0, 0, 0), 0.16)",padding:"1px 6px",borderRadius:4},children:"npm run dev"}),"."]}),(0,t.jsx)("button",{onClick:()=>r(null),style:{border:"none",background:"rgba(var(--sd-shade, 0, 0, 0), 0.18)",color:"#1a1200",borderRadius:6,padding:"3px 10px",fontWeight:700,cursor:"pointer"},children:"Dismiss"})]}):null}])},56456,e=>{"use strict";var t=e.i(71645),n=e.i(58712);e.s(["default",0,function(){return(0,t.useEffect)(()=>{let t=!0;return fetch("/api/settings",{cache:"no-store"}).then(e=>e.ok?e.json():null).then(async r=>{if(!t||!r?.settings)return;(0,n.adoptSavedTheme)(r.settings.theme);let{adoptSavedLayouts:o}=await e.A(11678);t&&o(r.settings.galaxyLayouts)}).catch(()=>{}),()=>{t=!1}},[]),null}])},68792,e=>{"use strict";var t=e.i(40996);let n=(e,t)=>{try{let n=localStorage.getItem(e);return null===n?t:JSON.parse(n)}catch{return t}};e.s(["allDayNow",0,function(){try{return"true"===localStorage.getItem("six-degrees-experimental-auto")}catch{return!1}},"startAutoScan",0,function(){let e=n("six-degrees-bridge-order","newest");return(0,t.beginScrape)("auto-bridge",{experimental:!0,maxBridges:10,order:e,tiers:"score"===e?["S","A"]:[],maxPages:n("six-degrees-bridge-pages-v2",100),deeper:n("six-degrees-bridge-finish",!0)})},"watchAllDay",0,function(e){return window.addEventListener("storage",e),window.addEventListener("six-degrees:experimental",e),()=>{window.removeEventListener("storage",e),window.removeEventListener("six-degrees:experimental",e)}}])},99883,e=>{"use strict";let t=new Set,n=[],r=[],o=new Set,a=null,s=new Set,i=!1;e.s(["activitiesNow",0,()=>n,"noActivities",0,()=>r,"noNotch",0,()=>!1,"noNotchTabs",0,()=>null,"notchShownNow",0,()=>i,"notchTabsNow",0,()=>a,"setNotchShown",0,function(e){!!e!==i&&(i=!!e,s.forEach(e=>e()))},"setNotchTabs",0,function(e){a=e&&Array.isArray(e.items)&&e.items.length>1?e:null,o.forEach(e=>e())},"showActivity",0,function(e){return e?.id?(n=[...n.filter(t=>t.id!==e.id),e],t.forEach(e=>e()),()=>{var r;return r=e.id,void(n.some(e=>e.id===r)&&(n=n.filter(e=>e.id!==r),t.forEach(e=>e())))}):()=>{}},"watchActivities",0,function(e){return t.add(e),()=>t.delete(e)},"watchNotchShown",0,function(e){return s.add(e),()=>s.delete(e)},"watchNotchTabs",0,function(e){return o.add(e),()=>o.delete(e)}])},40996,16999,e=>{"use strict";Symbol.for("six-degrees.scan-state");let t="The scanner works in Google Chrome, and Chrome isn’t on this computer.",n="Install Google Chrome, then come back",r=`${t} ${n}.`,o={install:"Install",setup:"Set up the scanner"};async function a(){let e=await fetch("/api/scraper");if(!e.ok)throw Error("Could not reach the app.");return e.json()}e.s(["CHROME_REFUSAL",0,r,"askForField",0,function(e,t){if(!e)return null;let n=e.network;return!!n&&!!n.first&&!n.second&&!n.third&&!e.running&&(void 0===t?null:!!(t&&!t.fieldAsked&&!t.sectorFocus?.sectors?.length))},"setupStep",0,function(e){let r=function(e){let t=e?.checks||{},n=(t,n,r)=>e?.running&&e.action===t?r:n;if(t.dependencies)return"bundled"===t.pythonSource?{done:!0,text:"Ready. The scanner and its Python come with the app, so there is nothing to install.",button:null}:"custom"===t.pythonSource?{done:!0,text:`Ready, on the Python named in SIX_DEGREES_PYTHON (${t.pythonPath}).`,button:null}:{done:!0,text:"Installed.",button:null};let r=t.ownPython&&"bundled"!==t.ownPython.source?`The Python named in SIX_DEGREES_PYTHON didn't work (${t.ownPython.problem}), so the scanner needs setting up another way. `:"";if(t.installFrom)return{done:!1,text:r+("downloaded"===t.installFrom.source?"Its own Python is already here. One more step, about a minute: it installs the browser-automation packages into it.":"One-time, about a minute. Downloads the browser-automation packages."),button:{action:"install",label:n("install","Install","Installing…")}};if(t.download){let e=Math.round(t.download.size/1048576);return{done:!1,text:`${r}${function(e){if(!e?.version)return"This computer has no Python the scanner can use.";let[t,n]=String(e.version).split(".").map(Number);return 3===t&&n>=10&&n<=14&&!1===e.venv?`This computer's Python ${e.version} can't make the scanner's own environment (on Ubuntu or Debian, python3-venv isn't installed).`:`This computer has Python ${e.version}, and the scanner needs 3.10 to 3.14.`}(t.systemPython)} Set up the scanner downloads its own Python ${t.download.version} (${e} MB, from GitHub) and the scanner's packages (from PyPI) into your data folder. Nothing else on this computer changes. About two minutes.`,button:{action:"setup",label:n("setup","Set up the scanner","Setting up…")}}}return{done:!1,text:`${r}No Python 3.10 to 3.14 was found on this machine. Install one from python.org, then reload.`,button:null}}(e),a=function(e,{done:t,button:n}){if(e?.source!=="bundled")return null;let r=/SIGKILL|code signature|not valid for use in process|quarantine|not permitted/i.test(e.problem||""),a=[`The Python that comes with the app didn't work (${e.problem}).`];return r&&a.push("macOS may have blocked it."),!1===e.retry&&a.push("Six Degrees won't try it again until you restart it."),t?a.push("The scanner uses another Python on this computer instead."):n?a.push(`To scan now, use ${o[n.action]} below: it gives the scanner a Python of its own in your data folder.`):a.push("To scan now, install Python 3.10 to 3.14 from python.org, then reload."),a.join(" ")}(e?.checks?.ownPython,r);return e?.checks?.chrome!==!1?{...r,note:a,chrome:null}:{...r,done:!1,text:r.done?t:`${r.text} ${t}`,note:a,chrome:{label:n,href:"https://www.google.com/chrome/"}}}],16999);let s="six-degrees-hide-chrome";function i(e,t={},n=function(e="u">typeof localStorage?localStorage:null){try{return!0===JSON.parse(e?.getItem(s)||"false")}catch{return!1}}()){return{action:e,...t,...n?{headless:!0}:{}}}async function l(e,t,n={}){let r=await fetch("/api/scraper",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i(e,{...t?{name:t}:{},...n}))}),o=await r.json().catch(()=>({}));if(!r.ok){let e=Error(o.error||"Could not start the scanner.");throw e.details=o,e}return o}async function u(e){let t=await fetch(`/api/scraper?resume=${encodeURIComponent(e)}`);return t.ok?(await t.json()).resume??null:null}let c=Object.freeze({skips:[],read:[],lists:{}});async function d(){try{let e=await fetch("/api/scraper?reach=1");if(!e.ok)return c;let t=await e.json(),n=t.lists&&"object"==typeof t.lists&&!Array.isArray(t.lists)?t.lists:{};return{skips:Array.isArray(t.skips)?t.skips:[],read:Array.isArray(t.read)?t.read:[],lists:n}}catch{return c}}async function f(e){let t=await fetch(`/api/scraper?person=${encodeURIComponent(e)}`);return t.ok?t.json():{person:null}}async function h(){await fetch("/api/scraper",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"cancel"})})}let p=Object.freeze({known:!1,running:!1,pending:!1,action:null,target:null,startedAt:null,progress:null,pages:0,found:[],log:[],finished:[]}),g=new Set,m=p,y=JSON.stringify(m),b=null,w=null,v=0,S=!1,x=new Set;function E(e){let t=JSON.stringify(e);if(t!==y)for(let n of(y=t,m=Object.freeze(e),[...g]))n()}async function A(){(!("u">typeof document&&document.hidden)||m.running)&&await function(){if(w&&w.epoch===v)return w.promise;let e=v,t=fetch("/api/scraper?job=1").then(e=>e.ok?e.json():null).then(t=>{e===v&&function(e){if(!e||"object"!=typeof e)return;let t=!0===e.running;t&&null!=e.startedAt&&x.add(e.startedAt);let n=(Array.isArray(e.recent)?e.recent:[]).filter(e=>x.has(e.startedAt)).map(n=>({...n,log:!t&&n.startedAt===e.startedAt&&Array.isArray(e.log)?e.log:[]}));E({known:!0,running:t||S,pending:S&&!t,action:t?e.action??null:S?m.action:null,target:t?e.target??null:S?m.target:null,startedAt:t?e.startedAt??null:null,progress:t?e.progress??null:null,pages:t&&Number(e.pages)||0,found:t&&Array.isArray(e.found)?e.found.map(Number).filter(Number.isFinite):[],budget:t?e.budget??null:null,log:t&&Array.isArray(e.log)?e.log:[],finished:n})}(t)}).catch(()=>{}).finally(()=>{w?.promise===t&&(w=null)});return w={epoch:e,promise:t},t}(),clearTimeout(b),b=g.size?setTimeout(A,m.running?1500:5e3):null}function k(e){return g.add(e),1===g.size&&A(),()=>{g.delete(e),g.size||(clearTimeout(b),b=null)}}async function j(e,{name:t,id:n,onLog:r,...o}={}){let a;v++,S=!0,E({...m,known:!0,running:!0,pending:!0,action:e,target:t||n?{id:n??null,name:t??null}:null,startedAt:null,progress:null,log:[]});try{a=await l(e,t,{...n?{id:n}:{},...o})}catch(e){throw S=!1,v++,m.pending&&E({...m,running:!1,pending:!1,action:null,target:null,log:[]}),A(),e}S=!1,v++;let s=a?.startedAt??null;null!=s&&x.add(s);let i=new Promise(e=>{let t=k(()=>{m.running&&m.startedAt===s&&r?.(m.log);let n=null==s?m.running?null:{exitCode:null,failure:null,log:[]}:m.finished.find(e=>e.startedAt===s);n&&(t(),n.log.length&&r?.(n.log),e(n))});A()});return{startedAt:s,ended:i}}function N(e){return!!e?.target&&["bridge","rescrape","resume"].includes(e.action)}e.s(["HIDE_CHROME_KEY",0,s,"NO_SCAN_NOTES",0,c,"SCANNER_UNKNOWN",0,p,"beginScrape",0,j,"busyReason",0,function(e=m){if(!e?.running)return null;let t=e.target?.name;switch(e.action){case"bridge":case"rescrape":case"resume":return t?`${t}’s circle is being scanned`:"A circle is being scanned";case"company":return t?`${t} is being scanned`:"A company is being scanned";case"auto-bridge":case"auto-bridge-retry":case"resume-all":return"Your bridges are being mapped, one by one";case"full":case"refresh":return"Your own connections are being scanned";case"connect":return t?`A request to ${t} is being sent`:"A connection request is being sent";default:switch(e.action){case"install":return"The scanner's packages are being installed";case"setup":return"The scanner is being set up";case"login":return"The LinkedIn sign-in window is open";case"photos":return"Profile photos are being saved";case"connect":return"A connection request is being sent";default:return"A scan is running"}}},"fillsCircles",0,function(e){return N(e)||["auto-bridge","auto-bridge-retry","resume-all"].includes(e?.action)},"isCircleScan",0,N,"loadScanNotes",0,d,"notReadyMessage",0,function(e){if(!e)return"Could not reach the app.";let t=e.checks||{};return t.scriptsFound?t.dependencies?t.chrome?null:r:t.python||t.download?"The scanner is not set up yet. Open Scan to set it up.":"No Python 3.10 to 3.14 is installed on this machine.":"The scanner files are missing from this install."},"pickedPerson",0,f,"resumePoint",0,u,"runScrape",0,function(e,t={}){return j(e,t).then(e=>e.ended)},"scanRequest",0,i,"scannerNow",0,function(){return m},"scansCircleOf",0,function(e,t){if(!N(e)||!t)return!1;let{id:n,name:r}=e.target;return n&&t.id?n===t.id:!!r&&r===t.name},"scraperStatus",0,a,"stopScrape",0,h,"watchScanner",0,k],40996)},56899,e=>{"use strict";async function t(e,{keepalive:n=!1}={}){try{let t=await fetch("/api/settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:e}),keepalive:n}),r=await t.json();return{settings:r.settings||null,effects:r.effects||null,error:t.ok?null:r.error||"Could not save."}}catch{return{settings:null,effects:null,error:"Could not reach the app. Reload this page to see what is saved."}}}e.s(["saveSettings",0,t])},40827,e=>{"use strict";e.s(["laterSaver",0,function(e,t=400){let n,r=null,o=t=>{clearTimeout(r),r=null,Promise.resolve(e(n,{now:t})).catch(()=>{})},a=e=>{n=e,r&&clearTimeout(r),r=setTimeout(()=>o(!1),t)};return a.flush=()=>{r&&o(!0)},a},"reconcileSaved",0,function({saved:e,cached:t,isDefault:n,same:r}){return null==e?{use:t,save:!n(t),changed:!1}:{use:e,save:!1,changed:!r(e,t)}}])},58712,e=>{"use strict";var t=e.i(54322),n=e.i(56899),r=e.i(40827);let o="six-degrees-theme",a=Object.freeze({base:"standard",custom:{}}),s=new Set,i=a;function l(){try{return(0,t.cleanTheme)(JSON.parse(localStorage.getItem(o)||"null")||a)}catch{return a}}function u(e){let n=(0,t.resolveTheme)(e);Object.assign(t.TIER_COLORS,n.tiers);let r=(0,t.isLight)(n);if(Object.assign(t.MAP_LOOK,{you:n.you,lines:n.lines,line:n.line,bg:n.bg,dots:n.dots,light:r,text:r?"#11141c":"#ffffff"}),"u"<typeof document)return;let o=(0,t.themeVars)(e),a=document.documentElement;for(let e of[...a.style])!e.startsWith("--sd-")||e in o||a.style.removeProperty(e);for(let[e,t]of Object.entries(o))a.style.setProperty(e,t);Object.assign(a.dataset,(0,t.themeAttrs)(e)),a.style.colorScheme=r?"light":"dark";try{localStorage.setItem("six-degrees-theme-vars",JSON.stringify({vars:o,attrs:(0,t.themeAttrs)(e)}))}catch{}}u(i=l()),window.addEventListener("storage",e=>{e.key===o&&(u(i=l()),s.forEach(e=>e()))});let c=(e,n)=>JSON.stringify((0,t.cleanTheme)(e))===JSON.stringify((0,t.cleanTheme)(n)),d=(0,r.laterSaver)((e,{now:t})=>(0,n.saveSettings)({theme:e},{keepalive:t}));function f(e){i=(0,t.cleanTheme)(e);try{localStorage.setItem(o,JSON.stringify(i))}catch{}u(i),s.forEach(e=>e())}window.addEventListener("pagehide",()=>d.flush()),e.s(["adoptSavedTheme",0,function(e){let{use:o,save:s,changed:l}=(0,r.reconcileSaved)({saved:null==e?null:(0,t.cleanTheme)(e),cached:i,isDefault:e=>c(e,a),same:c});s&&(0,n.saveSettings)({theme:i}),l&&f(o)},"serverTheme",0,()=>a,"setTheme",0,function(e){f(e),d(i)},"themeNow",0,()=>i,"watchTheme",0,function(e){return s.add(e),()=>s.delete(e)}])},22016,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0});var r={default:function(){return y},useLinkStatus:function(){return w}};for(var o in r)Object.defineProperty(n,o,{enumerable:!0,get:r[o]});let a=e.r(90809),s=e.r(43476),i=a._(e.r(71645)),l=e.r(95057),u=e.r(8372),c=e.r(18581),d=e.r(18967),f=e.r(5550),h=e.r(88540),p=e.r(91949),g=e.r(73668),m=e.r(9396);function y(t){var n;let r,o,a,[y,w]=(0,i.useOptimistic)(p.IDLE_LINK_STATUS),v=(0,i.useRef)(null),{href:S,as:x,children:E,prefetch:A=null,passHref:k,replace:j,shallow:N,scroll:O,onClick:P,onMouseEnter:T,onTouchStart:C,legacyBehavior:R=!1,onNavigate:I,transitionTypes:M,ref:_,unstable_dynamicOnHover:L,...$}=t;r=E,R&&("string"==typeof r||"number"==typeof r)&&(r=(0,s.jsx)("a",{children:r}));let D=i.default.useContext(u.AppRouterContext),F=!1!==A,z=!1===A?"none":!0===A?"full":"auto",B="none"!==z?"auto"===z?m.FetchStrategy.PPR:m.FetchStrategy.Full:m.FetchStrategy.PPR,U="string"==typeof(n=x||S)?n:(0,l.formatUrl)(n);if(R){if(r?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});o=i.default.Children.only(r)}let q=R?o&&"object"==typeof o&&o.ref:_,J,W=i.default.useCallback(e=>(null!==D&&(v.current=(0,p.mountLinkInstance)(e,U,D,B,F,w,J)),()=>{v.current&&((0,p.unmountLinkForCurrentNavigation)(v.current),v.current=null),(0,p.unmountPrefetchableInstance)(e)}),[F,U,D,B,w,J]),K={ref:(0,c.useMergedRef)(W,q),onClick(t){R||"function"!=typeof P||P(t),R&&o.props&&"function"==typeof o.props.onClick&&o.props.onClick(t),!D||t.defaultPrevented||function(t,n,r,o,a,s,l,u="none"){if("u">typeof window){let c,{nodeName:d}=t.currentTarget;if("A"===d.toUpperCase()&&((c=t.currentTarget.getAttribute("target"))&&"_self"!==c||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,g.isLocalURL)(n)){o&&(t.preventDefault(),location.replace(n));return}if(t.preventDefault(),s){let e=!1;if(s({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:f}=e.r(99781);i.default.startTransition(()=>{f(n,o?"replace":"push",!1===a?h.ScrollBehavior.NoScroll:h.ScrollBehavior.Default,r.current,l,u)})}}(t,U,v,j,O,I,M,z)},onMouseEnter(e){R||"function"!=typeof T||T(e),R&&o.props&&"function"==typeof o.props.onMouseEnter&&o.props.onMouseEnter(e),D&&F&&(0,p.onNavigationIntent)(e.currentTarget,!0===L)},onTouchStart:function(e){R||"function"!=typeof C||C(e),R&&o.props&&"function"==typeof o.props.onTouchStart&&o.props.onTouchStart(e),D&&F&&(0,p.onNavigationIntent)(e.currentTarget,!0===L)}};return(0,d.isAbsoluteUrl)(U)?K.href=U:R&&!k&&("a"!==o.type||"href"in o.props)||(K.href=(0,f.addBasePath)(U)),a=R?i.default.cloneElement(o,K):(0,s.jsx)("a",{...$,...K,children:r}),(0,s.jsx)(b.Provider,{value:y,children:a})}let b=(0,i.createContext)(p.IDLE_LINK_STATUS),w=()=>(0,i.useContext)(b);("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},18581,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"useMergedRef",{enumerable:!0,get:function(){return o}});let r=e.r(71645);function o(e,t){let n=(0,r.useRef)(null),o=(0,r.useRef)(null);return(0,r.useCallback)(r=>{if(null===r){let e=n.current;e&&(n.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(n.current=a(e,r)),t&&(o.current=a(t,r))},[e,t])}function a(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let n=e(t);return"function"==typeof n?n:()=>e(null)}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},18967,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0});var r={DecodeError:function(){return y},MiddlewareNotFoundError:function(){return S},MissingStaticPage:function(){return v},NormalizeError:function(){return b},PageNotFoundError:function(){return w},SP:function(){return g},ST:function(){return m},WEB_VITALS:function(){return a},execOnce:function(){return s},getDisplayName:function(){return d},getLocationOrigin:function(){return u},getURL:function(){return c},isAbsoluteUrl:function(){return l},isResSent:function(){return f},loadGetInitialProps:function(){return p},normalizeRepeatedSlashes:function(){return h},stringifyError:function(){return x}};for(var o in r)Object.defineProperty(n,o,{enumerable:!0,get:r[o]});let a=["CLS","FCP","FID","INP","LCP","TTFB"];function s(e){let t,n=!1;return(...r)=>(n||(n=!0,t=e(...r)),t)}let i=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,l=e=>{let t=e.charCodeAt(0);return!!(t>=65&&t<=90||t>=97&&t<=122)&&i.test(e)};function u(){let{protocol:e,hostname:t,port:n}=window.location;return`${e}//${t}${n?":"+n:""}`}function c(){let{href:e}=window.location,t=u();return e.substring(t.length)}function d(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function h(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function p(e,t){let n=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await p(t.Component,t.ctx)}:{};let r=await e.getInitialProps(t);if(n&&f(n))return r;if(!r)throw Object.defineProperty(Error(`"${d(e)}.getInitialProps()" should resolve to an object. But found "${r}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return r}let g="u">typeof performance,m=g&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class y extends Error{}class b extends Error{}class w extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class v extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class S extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function x(e){return JSON.stringify({message:e.message,stack:e.stack})}},73668,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"isLocalURL",{enumerable:!0,get:function(){return a}});let r=e.r(18967),o=e.r(52817);function a(e){if(!(0,r.isAbsoluteUrl)(e))return!0;try{let t=(0,r.getLocationOrigin)(),n=new URL(e,t);return n.origin===t&&(0,o.hasBasePath)(n.pathname)}catch(e){return!1}}},98183,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={assign:function(){return l},searchParamsToUrlQuery:function(){return a},urlQueryToSearchParams:function(){return i}};for(var o in r)Object.defineProperty(n,o,{enumerable:!0,get:r[o]});function a(e){let t={};for(let[n,r]of e.entries()){let e=t[n];void 0===e?t[n]=r:Array.isArray(e)?e.push(r):t[n]=[e,r]}return t}function s(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function i(e){let t=new URLSearchParams;for(let[n,r]of Object.entries(e))if(Array.isArray(r))for(let e of r)t.append(n,s(e));else t.set(n,s(r));return t}function l(e,...t){for(let n of t){for(let t of n.keys())e.delete(t);for(let[t,r]of n.entries())e.append(t,r)}return e}},95057,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0});var r={formatUrl:function(){return i},formatWithValidation:function(){return u},urlObjectKeys:function(){return l}};for(var o in r)Object.defineProperty(n,o,{enumerable:!0,get:r[o]});let a=e.r(90809)._(e.r(98183)),s=/https?|ftp|gopher|file/;function i(e){let{auth:t,hostname:n}=e,r=e.protocol||"",o=e.pathname||"",i=e.hash||"",l=e.query||"",u=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?u=t+e.host:n&&(u=t+(~n.indexOf(":")?`[${n}]`:n),e.port&&(u+=":"+e.port)),l&&"object"==typeof l&&(l=String(a.urlQueryToSearchParams(l)));let c=e.search||l&&`?${l}`||"";return r&&!r.endsWith(":")&&(r+=":"),e.slashes||(!r||s.test(r))&&!1!==u?(u="//"+(u||""),o&&"/"!==o[0]&&(o="/"+o)):u||(u=""),i&&"#"!==i[0]&&(i="#"+i),c&&"?"!==c[0]&&(c="?"+c),o=o.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${r}${u}${o}${c}${i}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function u(e){return i(e)}},18566,(e,t,n)=>{t.exports=e.r(76562)}]);
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,68863,e=>{"use strict";var n=e.i(43476),i=e.i(71645),t=e.i(18566),s=e.i(2776),r=e.i(22016),a=e.i(40996),o=e.i(16999);let l=["It runs your own LinkedIn account automatically, in a Chrome window on this computer.","LinkedIn’s User Agreement doesn’t allow automated tools, and LinkedIn may restrict accounts that use them. The safe limits, 50 searches a day and 250 a month, stay on unless you change them.","Nothing leaves your computer. There is no account with us and nothing is uploaded."];var d=e.i(64745),c=e.i(48235),h=e.i(51798),p=e.i(70479),g=e.i(54322);let f=`
|
|
2
|
-
@keyframes clusterTurn { to { transform: rotate(360deg); } }
|
|
3
|
-
@keyframes clusterIn { from { opacity: 0; transform: scale(0.2); } }
|
|
4
|
-
@keyframes clusterHub { 0%, 100% { opacity: .35; } 50% { opacity: .8; } }
|
|
5
|
-
.cluster-turn { transform-origin: 118px 118px; animation: clusterTurn 90s linear infinite; }
|
|
6
|
-
.cluster-dot { transition: transform .6s cubic-bezier(.2,.8,.2,1); transform-box: fill-box; }
|
|
7
|
-
.cluster-dot.fresh circle { animation: clusterIn .45s cubic-bezier(.2,.9,.3,1.3) both; transform-box: fill-box; transform-origin: center; }
|
|
8
|
-
.cluster-hub { animation: clusterHub 1.8s ease-in-out infinite; }
|
|
9
|
-
.radar-go { transition: transform .15s ease, box-shadow .2s ease; }
|
|
10
|
-
.radar-go:not(:disabled):hover { transform: scale(1.04); box-shadow: 0 0 34px rgba(0,255,136,.45); }
|
|
11
|
-
.radar-go:not(:disabled):active { transform: scale(.97); }
|
|
12
|
-
@media (prefers-reduced-motion: reduce) { .cluster-turn, .cluster-dot.fresh circle, .cluster-hub { animation: none; } .cluster-dot { transition: none; } }
|
|
13
|
-
`;function u(e,n,i){let t=n=>`${(118+e*Math.cos(n)).toFixed(2)} ${(118+e*Math.sin(n)).toFixed(2)}`,s=+(i-n>Math.PI);return`M${t(n)} A${e} ${e} 0 ${s} 1 ${t(i)}`}function x({li:e,running:t,scanning:s,disabled:r,label:o,sublabel:l,onScan:d,onPace:c}){let y=(0,i.useSyncExternalStore)(a.watchScanner,a.scannerNow,()=>a.SCANNER_UNKNOWN),m=t&&y.found||[],b=e?.limits?.pace||"fast",v=e?.limits?.daily||0,j=e?.unreadable?v:e?.searchesToday||0,w=v?Math.max(0,v-j):null,k=v?Math.min(1,j/v):0,S=k>=.9?"#ff6b6b":k>=.6?"#FFD700":"#00ff88",I=-Math.PI/2,C=108,T=[g.TIER_COLORS.S,g.TIER_COLORS.A,g.TIER_COLORS.B],{dots:z,total:W}=function(e,n){let i=e.reduce((e,n)=>e+n,0),t=Math.min(i,420);if(!t)return{dots:[],total:i};let s=[];for(let n=e.length-1;n>=0&&s.length<t;n--)for(let i=0;i<e[n]&&s.length<t;i++)s.push(n);s.reverse();let{points:r}=(0,p.ringLayout)(t,{inner:72,outer:n-8,spacing:9,minSpacing:3.2}),a=e.length-1;return{dots:r.map((e,n)=>({x:118+e.x,y:118+e.y,page:s[n],fresh:s[n]===a})),total:i}}(m,C);return(0,n.jsxs)("div",{style:{display:"flex",gap:22,alignItems:"center",flexWrap:"wrap",padding:"14px 16px",borderRadius:14,border:"1px solid rgba(0,255,136,0.18)",background:"radial-gradient(circle at 20% 50%, rgba(0,255,136,0.06), rgba(var(--sd-ink, 255, 255, 255), 0.02) 60%)"},children:[(0,n.jsx)("style",{children:f}),(0,n.jsxs)("div",{style:{position:"relative",width:236,height:236,flexShrink:0},children:[(0,n.jsxs)("svg",{width:236,height:236,"aria-hidden":"true",style:{position:"absolute",inset:0},children:[(0,n.jsxs)("defs",{children:[(0,n.jsxs)("radialGradient",{id:"radarBg",children:[(0,n.jsx)("stop",{offset:"0",stopColor:"color-mix(in srgb, var(--sd-bg, #0a0a1a) 80%, #00ff88)"}),(0,n.jsx)("stop",{offset:"1",stopColor:"var(--sd-bg, #0a0a1a)"})]}),(0,n.jsxs)("linearGradient",{id:"radarBeam",x1:"0",y1:"0",x2:"1",y2:"0",children:[(0,n.jsx)("stop",{offset:"0",stopColor:"#00ff88",stopOpacity:"0"}),(0,n.jsx)("stop",{offset:"1",stopColor:"#00ff88",stopOpacity:"0.45"})]})]}),(0,n.jsx)("circle",{cx:118,cy:118,r:C,fill:"url(#radarBg)",stroke:"rgba(0,255,136,0.25)"}),[.33,.66].map(e=>(0,n.jsx)("circle",{cx:118,cy:118,r:C*e,fill:"none",stroke:"rgba(0,255,136,0.14)",strokeDasharray:"2 5"},e)),(0,n.jsx)("line",{x1:118-C,y1:118,x2:118+C,y2:118,stroke:"rgba(0,255,136,0.1)"}),(0,n.jsx)("line",{x1:118,y1:118-C,x2:118,y2:118+C,stroke:"rgba(0,255,136,0.1)"}),!z.length&&[72,(72+C)/2,C-8].map(e=>(0,n.jsx)("circle",{cx:118,cy:118,r:e,fill:"none",stroke:"rgba(0,255,136,0.13)",strokeDasharray:"2 6"},e)),t&&!z.length&&(0,n.jsx)("circle",{className:"cluster-hub",cx:118,cy:118,r:66,fill:"none",stroke:"#00ff88",strokeOpacity:.6}),z.length>0&&(0,n.jsxs)("g",{className:"cluster-turn",children:[(0,n.jsx)("path",{d:z.map(e=>`M118 118L${e.x.toFixed(1)} ${e.y.toFixed(1)}`).join(""),stroke:"#fff",strokeOpacity:.05,strokeWidth:.6}),z.map((e,i)=>(0,n.jsx)("g",{className:`cluster-dot${e.fresh?" fresh":""}`,style:{transform:`translate(${e.x}px, ${e.y}px)`},children:(0,n.jsx)("circle",{className:"sd-dot",r:e.fresh?3:2.5,fill:T[e.page%T.length],opacity:e.fresh?1:.85,style:e.fresh?{filter:`drop-shadow(0 0 3px ${T[e.page%T.length]})`}:void 0})},i))]}),(0,n.jsx)("path",{d:u(C+5,I,I+2*Math.PI-.001),fill:"none",stroke:"rgba(var(--sd-ink, 255, 255, 255), 0.08)",strokeWidth:5}),k>0&&(0,n.jsx)("path",{d:u(C+5,I,I+2*Math.PI*k-.001),fill:"none",stroke:S,strokeWidth:5,strokeLinecap:"round"})]}),(0,n.jsxs)("button",{type:"button",className:"radar-go",onClick:d,disabled:r,style:{position:"absolute",left:56,top:56,width:124,height:124,borderRadius:"50%",cursor:r?"not-allowed":"pointer",border:`2px solid ${r?"rgba(var(--sd-ink, 255, 255, 255), 0.12)":"#00ff88"}`,background:r?"var(--sd-card, rgba(20,24,40,0.92))":"radial-gradient(circle at 50% 35%, #134d3a, #0b2a22 70%)",color:r?"var(--sd-fg-4, #667)":"var(--sd-fg-1, #eafff5)",boxShadow:r?"none":"0 0 22px rgba(0,255,136,0.25)",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:2,padding:8},children:[(0,n.jsx)("span",{style:{fontSize:22,fontWeight:900,letterSpacing:2},children:s?"•••":"SCAN"}),(0,n.jsx)("span",{style:{fontSize:11,fontWeight:700,opacity:.85,lineHeight:1.25,textAlign:"center"},children:o}),l&&(0,n.jsx)("span",{style:{fontSize:10,opacity:.6,textAlign:"center",textWrap:"balance"},children:l})]}),t&&m.length>0&&(0,n.jsxs)("div",{style:{position:"absolute",left:0,right:0,bottom:-18,textAlign:"center",fontSize:11,fontWeight:700,color:"var(--sd-fg-2, #9fe8c4)",fontVariantNumeric:"tabular-nums"},children:[W.toLocaleString("en-US")," found · ",m.length," page",1===m.length?"":"s"]})]}),(0,n.jsxs)("div",{style:{flex:1,minWidth:260},children:[(0,n.jsx)("div",{style:{fontSize:10,fontWeight:800,letterSpacing:1,color:"var(--sd-fg-4, #6b7090)",textTransform:"uppercase",marginBottom:8},children:"Speed"}),(0,n.jsx)("div",{role:"radiogroup","aria-label":"Scan speed",style:{display:"grid",gridTemplateColumns:"repeat(3, 1fr)",gap:6},children:h.PACE_NAMES.map(e=>{let i=h.PACES[e],s=b===e,r="slow"===e?"#00E5FF":"medium"===e?"#FFD700":"#FF7043";return(0,n.jsxs)("button",{type:"button",role:"radio","aria-checked":s,disabled:t||!c,onClick:()=>c?.(e),title:`${i.pagePause} s before each page, ${i.chunkCooldown/60} min more after every 10, profiles ${i.profileGap} s apart`,style:{padding:"10px 8px",borderRadius:10,cursor:t?"not-allowed":"pointer",textAlign:"left",border:`1.5px solid ${s?r:"rgba(var(--sd-ink, 255, 255, 255), 0.1)"}`,background:s?`${r}1a`:"rgba(var(--sd-ink, 255, 255, 255), 0.03)",color:"var(--sd-fg-1, #ddd)"},children:[(0,n.jsx)("div",{style:{fontSize:14,fontWeight:800,color:s?r:"var(--sd-fg-2, #ccd)"},children:i.label}),(0,n.jsxs)("div",{style:{fontSize:11,color:"var(--sd-fg-3, #8a8fa8)",marginTop:2},children:["~",(0,h.searchesPerHour)(e)," searches an hour"]}),(0,n.jsxs)("div",{style:{fontSize:10.5,color:"var(--sd-fg-4, #6b7090)",marginTop:1},children:[i.pagePause," s between pages"]})]},e)})}),(0,n.jsx)("div",{style:{marginTop:10,fontSize:12.5,color:"var(--sd-fg-2, #b8c4c4)",lineHeight:1.6},children:e?null==w?(0,n.jsx)(n.Fragment,{children:"No daily cap is set."}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("b",{style:{color:S},children:w})," of ",v," searches left, counting the last 24 hours",w>0&&(0,n.jsxs)(n.Fragment,{children:[" · at ",(0,h.paceOf)(b).label,", ",(0,h.durationText)((0,h.paceSeconds)(b,w))," to use them"]}),"."]}):(0,n.jsx)(n.Fragment,{children:"Today’s searches show here once the scanner can read them."})}),(0,n.jsx)("div",{style:{marginTop:4,fontSize:11.5,color:"var(--sd-fg-4, #778)",lineHeight:1.55},children:"Fast is how the scanner has always run; Medium and Slow only add waiting, so fewer searches an hour reach LinkedIn. Your daily budget stays the cap at every speed: slower spreads it out, it doesn’t shrink it. Slower lowers the odds of a check from LinkedIn; it can’t promise there won’t be one."})]})]})}var y=e.i(33821),m=e.i(29962),b=e.i(27780);let v="1px solid rgba(var(--sd-ink, 255, 255, 255), 0.1)",j=g.TIER_COLORS,w=[25,50,100,200,500],k=[100,250,500,1e3,0],S=[10,25,50,100],I=e=>new Date(e).toLocaleDateString(void 0,{month:"short",day:"numeric"});function C({cooldown:e,onLift:t,disabled:s}){let[r,a]=(0,i.useState)(!1);return e?(0,n.jsxs)("div",{role:"status",style:{padding:"12px 14px",borderRadius:8,fontSize:13,lineHeight:1.6,background:"rgba(255,80,80,0.08)",border:"1px solid rgba(255,80,80,0.35)",color:"var(--sd-fg-2, #f3c9c9)"},children:[(0,n.jsxs)("b",{style:{color:"#ff8080"},children:["Scanning is paused until ",new Date(e.until).toLocaleString(void 0,{weekday:"short",month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}),"."]})," ",e.reason,". Nothing that searches LinkedIn will run until then, so the account can recover.",(0,n.jsx)("div",{style:{marginTop:8,display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"},children:r?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{style:{fontSize:12.5},children:"Only if people search works normally for you on linkedin.com right now."}),(0,n.jsx)("button",{onClick:()=>{a(!1),t()},style:{...F,color:"#ff8080"},children:"Yes, lift it"}),(0,n.jsx)("button",{onClick:()=>a(!1),style:F,children:"Keep it"})]}):(0,n.jsx)("button",{onClick:()=>a(!0),disabled:s,style:F,children:"Lift it early…"})})]}):null}function T({used:e,cap:i}){let t=i?Math.min(100,Math.round(e/i*100)):0;return(0,n.jsx)("div",{style:{height:5,borderRadius:3,background:"rgba(var(--sd-ink, 255, 255, 255), 0.07)",overflow:"hidden",marginTop:4},children:(0,n.jsx)("div",{style:{height:"100%",width:`${t}%`,background:t>=100?"#ff6b6b":t>=75?"#FFD700":"#3498DB"}})})}function z({li:e,onSetLimits:i,disabled:t}){if(!e)return null;let{limits:s}=e,a=e.unreadable?"?":e.searchesToday,o=e.unreadable?"?":e.profilesToday,l=e=>i({...s,...e}),d=e=>{let n=(0,m.limitQuestion)(s,{...s,...e});(!n||window.confirm(n))&&l(e)},c=(0,m.limitNote)(s);return(0,n.jsxs)("div",{style:{padding:"12px 14px",borderRadius:8,border:v,background:"rgba(var(--sd-ink, 255, 255, 255), 0.03)",fontSize:12.5,color:"var(--sd-fg-2, #b8c4c4)"},children:[(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(210px, 1fr))",gap:14},children:[(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("b",{style:{color:"var(--sd-fg-1, #fff)"},children:a})," of ",s.daily||"no limit"," searches in the last 24 hours"]}),(0,n.jsx)(T,{used:e.searchesToday||0,cap:s.daily})]}),(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("b",{style:{color:"var(--sd-fg-1, #fff)"},children:e.searchesMonth})," of ",s.monthly||"no limit"," this month · resets ",I(e.monthResets)]}),(0,n.jsx)(T,{used:e.searchesMonth,cap:s.monthly})]}),(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("b",{style:{color:"var(--sd-fg-1, #fff)"},children:o})," of ",s.profiles," profile views in the last 24 hours"]}),(0,n.jsx)(T,{used:e.unreadable?s.profiles:e.profilesToday,cap:s.profiles})]})]}),(0,n.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap",marginTop:10},children:[(0,n.jsx)("span",{children:"Budget:"}),(0,n.jsx)("select",{value:s.daily,disabled:t,onChange:e=>d({daily:Number(e.target.value)}),style:L,children:w.map(e=>(0,n.jsxs)("option",{value:e,children:[e," a day"]},e))}),(0,n.jsx)("select",{value:s.monthly,disabled:t,onChange:e=>d({monthly:Number(e.target.value)}),style:L,children:k.map(e=>(0,n.jsx)("option",{value:e,children:e?`${e} a month`:"no monthly cap (Premium)"},e))}),(0,n.jsx)("select",{value:s.profiles,disabled:t,onChange:e=>l({profiles:Number(e.target.value)}),style:L,children:S.map(e=>(0,n.jsxs)("option",{value:e,children:[e," profile views a day"]},e))})]}),(0,n.jsx)("div",{style:{marginTop:8,color:"var(--sd-fg-4, #778)",lineHeight:1.6},children:"Every page of someone’s connections is one search. LinkedIn limits a free account’s people searches by the month (it doesn’t say how many; reports put it around 250–350), resetting on the 1st. When a budget is used, a scan saves what it read and stops; the next one carries on from the same page."}),c&&(0,n.jsxs)("div",{style:{marginTop:8,display:"flex",gap:10,alignItems:"center",flexWrap:"wrap",color:"var(--sd-gold, #FFD700)",lineHeight:1.6},children:[(0,n.jsx)("b",{style:{flex:1,minWidth:200},children:c}),(0,n.jsxs)("button",{onClick:()=>l(m.SAFE_LIMITS),disabled:t,style:{...L,cursor:t?"not-allowed":"pointer",color:"var(--sd-gold, #FFD700)",borderColor:"rgba(255,215,0,0.4)"},children:["Back to ",m.SAFE_LIMITS.daily," a day, ",m.SAFE_LIMITS.monthly," a month"]})]}),(0,n.jsx)("div",{style:{marginTop:6,color:"var(--sd-fg-4, #778)",lineHeight:1.6},children:"Each circle scan opens the person’s profile once, which is one profile view. Profile views are what LinkedIn restricted an account for, after about 20 in an hour. The scanner opens at most one a minute, and once today’s are used, a scan stops before the next profile and tries that person next time."}),(0,n.jsx)(r.default,{href:"/settings#usage",style:{display:"inline-block",marginTop:8,color:"var(--sd-blue, #3498DB)",textDecoration:"none",fontWeight:600},children:"See all your LinkedIn usage →"})]})}function W({paused:e=[],onResume:t,onResumeAll:s,disabled:a}){let[o,l]=(0,i.useState)(!1);if(!e.length)return null;let d=o?e:e.slice(0,8);return(0,n.jsxs)("section",{"aria-labelledby":"in-progress-title",style:{margin:"20px 0 4px",borderRadius:14,overflow:"hidden",border:"1px solid rgba(255,215,0,0.3)",background:"rgba(255,215,0,0.035)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,padding:"16px 18px 14px",borderBottom:v,flexWrap:"wrap"},children:[(0,n.jsxs)("div",{style:{flex:1,minWidth:220},children:[(0,n.jsxs)("h2",{id:"in-progress-title",style:{fontSize:17,fontWeight:800,margin:0,display:"flex",alignItems:"center",gap:9},children:[(0,n.jsxs)("span",{"aria-hidden":"true",style:{display:"inline-flex",gap:2},children:[(0,n.jsx)("span",{style:{width:3,height:12,borderRadius:1,background:"var(--sd-gold, #FFD700)"}}),(0,n.jsx)("span",{style:{width:3,height:12,borderRadius:1,background:"var(--sd-gold, #FFD700)"}})]}),"In progress"]}),(0,n.jsx)("div",{style:{fontSize:13,color:"var(--sd-fg-3, #8b9a9a)",marginTop:4,lineHeight:1.5},children:(0,b.inProgressSummary)(e)})]}),(0,n.jsx)("button",{onClick:s,disabled:a,style:{...R,opacity:a?.4:1,cursor:a?"not-allowed":"pointer",background:a?"rgba(var(--sd-ink, 255, 255, 255), 0.06)":"linear-gradient(135deg, #3498DB, #9B59B6)",...a?{}:{color:"#fff"}},children:"Resume all"})]}),(0,n.jsx)("div",{children:d.map(e=>(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"9px 18px",borderBottom:"1px solid rgba(var(--sd-ink, 255, 255, 255), 0.04)"},children:[(0,n.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",background:j[e.tier]||"#667",flexShrink:0}}),(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:13,fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:(0,n.jsx)(r.default,{href:`/?chain=${encodeURIComponent(e.id)}`,title:`See ${e.name}’s circle on the map`,style:{color:"var(--sd-fg-1, #fff)",textDecoration:"underline",textDecorationColor:"rgba(var(--sd-ink, 255, 255, 255), 0.35)",textUnderlineOffset:3},children:e.name})}),(0,n.jsxs)("div",{style:{fontSize:11.5,color:"var(--sd-fg-3, #8b9a9a)"},children:["Read to page ",e.pagesRead," · carries on at ",e.nextPage,e.at?(0,n.jsxs)(n.Fragment,{children:[" ",(0,n.jsxs)("span",{style:{whiteSpace:"nowrap"},children:["· ",I(e.at)]})]}):"",e.unclear>=2?" · came back unclear twice, so it waits at the back of Resume all":""]})]}),(0,n.jsx)("button",{onClick:()=>t(e),disabled:a,style:{...R,padding:"6px 12px",fontSize:12,opacity:a?.4:1,cursor:a?"not-allowed":"pointer"},children:"Resume"})]},e.id))}),e.length>8&&(0,n.jsx)("button",{onClick:()=>l(!o),style:{...F,padding:"10px 18px"},children:o?"Show fewer":`Show all ${e.length}`})]})}let R={padding:"8px 14px",borderRadius:7,fontSize:13,fontWeight:700,cursor:"pointer",border:v,background:"rgba(var(--sd-ink, 255, 255, 255), 0.08)",color:"var(--sd-fg-1, #fff)"},F={background:"none",border:"none",color:"#8fb8d6",cursor:"pointer",fontSize:12.5,fontWeight:600,padding:0},L={padding:"6px 8px",borderRadius:6,fontSize:12.5,fontWeight:600,background:"rgba(var(--sd-ink, 255, 255, 255), 0.08)",color:"var(--sd-fg-1, #fff)",border:v};var B=e.i(8819),$=e.i(98197);e.i(77170);var N=e.i(69083),D=e.i(56899);let O={color:"var(--sd-blue, #3498DB)"};function M({onDone:e}){let[t,s]=(0,i.useState)([]),[r,a]=(0,i.useState)(null),[o,l]=(0,i.useState)(null);async function d(){a("pick"),l(null);let n=await (0,D.saveSettings)({sectorFocus:{sectors:t,strength:"lean"},fieldAsked:!0});n.settings?e(n.settings.sectorFocus.sectors):(l(n.error),a(null))}async function c(){a("skip"),l(null),await (0,D.saveSettings)({fieldAsked:!0}),e([])}return(0,n.jsxs)("section",{"aria-labelledby":"field-question","data-field-question":!0,style:{margin:"8px 0 0",padding:"20px 22px 0",borderRadius:12,border:B.LINE,background:"rgba(var(--sd-ink, 255, 255, 255), 0.03)"},children:[(0,n.jsx)("div",{style:{fontSize:12,color:"var(--sd-fg-3, #788)",textTransform:"uppercase",letterSpacing:.6},children:"One question · optional"}),(0,n.jsx)("h2",{id:"field-question",style:{fontSize:18,fontWeight:700,margin:"6px 0 4px"},children:"What field are you in?"}),(0,n.jsx)(B.Body,{style:{marginTop:0,marginBottom:14},children:"Pick up to three. Companies in your field count for more when your network is scored, so the people there rank higher. You can change it anytime in Settings."}),(0,n.jsx)($.default,{sectors:t,onChange:s,disabled:!!r}),(0,n.jsxs)("div",{style:{position:"sticky",bottom:0,margin:"16px -22px 0",padding:"12px 22px 16px",borderTop:B.LINE,borderRadius:"0 0 11px 11px",background:"#111121"},children:[(0,n.jsxs)("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[(0,n.jsx)(B.Btn,{primary:!0,onClick:d,disabled:!t.length||!!r,children:"pick"===r?"Saving…":"Continue"}),(0,n.jsx)(B.Btn,{onClick:c,disabled:!!r,children:"Skip for now"})]}),o&&(0,n.jsx)(B.Status,{tone:"bad",children:o})]})]})}function A({sectors:e}){return e.length?(0,n.jsxs)(B.Status,{tone:"ok",children:["Your field: ",e.map(e=>(0,N.sectorByKey)(e).label).join(" · "),". Your network is scored with it now, and every scan after. Change it anytime in ",(0,n.jsx)(r.default,{href:"/settings#sector",style:O,children:"Settings"}),"."]}):(0,n.jsxs)(B.Status,{children:["No field for now. You can pick one anytime in ",(0,n.jsx)(r.default,{href:"/settings#sector",style:O,children:"Settings"}),"."]})}var E=e.i(71639);let P="1px solid rgba(var(--sd-ink, 255, 255, 255), 0.1)",H={photos:"Saving profile photos to this computer",install:"Installing the scanner",setup:"Setting up the scanner",login:"Waiting for you to sign in",full:"Scanning your whole network",refresh:"Checking for new connections","auto-bridge":"Mapping 2nd-degree connections","auto-bridge-retry":"Mapping 2nd degree, hidden ones included",resume:"Carrying on with one paused list","resume-all":"Carrying on with every paused list",connect:"Sending a connection request (Auto)"};function _(){(0,i.useEffect)(()=>{"updates"===new URLSearchParams(window.location.search).get("check")&&window.location.replace("/settings?check=updates")},[]);let[e,s]=(0,i.useState)(null),[l,p]=(0,i.useState)(!1),[g,f]=(0,i.useState)(10),[u,m]=(0,i.useState)(["S","A"]),[b,v]=q("six-degrees-bridge-order","newest"),[j,w]=q("six-degrees-bridge-pages-v2",100),[k,S]=q("six-degrees-bridge-finish",!0),[I,T]=q("six-degrees-experimental-auto",!1),[R,F]=q(a.HIDE_CHROME_KEY,!1),[L,B]=(0,i.useState)(null),$=(0,i.useRef)(null),[N,D]=(0,i.useState)(void 0),[O,_]=(0,i.useState)(null),U=(0,t.useSearchParams)().get("scan"),[Q,er]=(0,i.useState)(null);(0,i.useEffect)(()=>{if(!U)return;let e=!0;return(0,a.pickedPerson)(U).then(n=>{e&&er(n?.person?n:null)},()=>{}),()=>{e=!1}},[U]);let ea=(0,i.useCallback)(async()=>{try{let e=await fetch("/api/scraper");s(await e.json())}catch{s(e=>e||{ready:!1,checks:{},log:[]})}},[]);async function eo(){B(null),await (0,a.stopScrape)().catch(e=>B(e.message)),ea()}async function el(){B(null),p(!0);try{let e=await fetch("/api/settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:{scanRiskAccepted:new Date().toISOString()}})});e.ok||B((await e.json().catch(()=>null))?.error||"Could not save that. Try again.")}catch(e){B(e.message)}finally{p(!1),ea()}}async function ed(e,n={}){B(null),p(!0);try{let i=await fetch("/api/scraper",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify((0,a.scanRequest)(e,n,R))}),t=await i.json();i.ok||B(t.error||"Could not start.")}catch(e){B(e.message)}finally{p(!1),ea()}}(0,i.useEffect)(()=>{ea();let e=setInterval(ea,1500);return()=>clearInterval(e)},[ea]),(0,i.useEffect)(()=>{if(d.IS_DEMO)return;let e=!1;return fetch("/api/settings").then(e=>e.ok?e.json():null).then(n=>{e||D(n?.settings||null)}).catch(()=>{e||D(null)}),()=>{e=!0}},[]),(0,i.useEffect)(()=>{$.current&&($.current.scrollTop=$.current.scrollHeight)},[e?.log?.length]);let ec=e?.checks||{},eh=e?.running,ep=(0,o.setupStep)(e);e&&ec.dependencies;let eg=e&&!1===ec.chrome,ef=e&&!ec.scriptsFound,eu=!1!==ec.riskAccepted,ex=e?.ready&&!eh&&eu,ey=e?.linkedin,em=!!ey?.cooldown,eb=ex&&!em,ev=e?.network||{first:0,second:0,third:0},ej=ev.first,ew=e&&ep.done?ec.signedIn?0===ej?3:4:2:1,ek=(e,n)=>n&&e!==ew?"done":e===ew?"now":e<ew?"done":"next",eS=!d.IS_DEMO&&!O&&(0,o.askForField)(e,N),eI=ey?.limits?.pace,eC=(0,h.durationText)((0,h.firstCircleSeconds)(eI)),eT=e&&!eh&&null!=e.exitCode&&0!==e.exitCode,ez=eT?e.failure?.length?e.failure.join("\n"):[...e.log||[]].reverse().find(e=>!/^Stopped \(exit/.test(e)&&!/Warning|warnings\.warn/.test(e)):null;return(0,n.jsxs)("div",{style:{minHeight:"100vh",background:"var(--sd-page)",color:"var(--sd-fg-1, #fff)",fontFamily:"var(--sd-font)"},children:[(0,n.jsx)(y.default,{active:"scan",brand:"span"}),(0,n.jsxs)("div",{style:{maxWidth:720,margin:"0 auto",padding:"32px 24px 64px"},children:[(0,n.jsxs)("div",{style:{padding:"26px 26px 22px",borderRadius:16,marginBottom:22,position:"relative",overflow:"hidden",background:"radial-gradient(120% 140% at 0% 0%, rgba(0,255,136,0.10), rgba(52,152,219,0.06) 45%, rgba(var(--sd-ink, 255, 255, 255), 0.02) 75%)",border:"1px solid rgba(0,255,136,0.22)"},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:800,letterSpacing:1.6,color:"var(--sd-green, #00ff88)"},children:"YOUR SCANNER"}),(0,n.jsx)("h1",{style:{fontSize:27,fontWeight:800,margin:"6px 0 8px",lineHeight:1.2},children:ej>0?"Your network is mapped. Send the scanner further.":(0,n.jsxs)(n.Fragment,{children:["Your galaxy in three steps.",(0,n.jsx)("span",{style:{display:"block",color:"var(--sd-fg-2, #aab7c4)",fontSize:20,fontWeight:700,marginTop:4},children:"Who they know fills in over days."})]})}),(0,n.jsx)("div",{style:{fontSize:14.5,color:"var(--sd-fg-2, #aab7c4)",lineHeight:1.6,maxWidth:560},children:"It works in your own Chrome on this Mac, slowly and in the open, and keeps everything here. You launch it; it does the reading; you watch it go."}),(0,n.jsx)("div",{style:{display:"flex",gap:"8px 18px",flexWrap:"wrap",marginTop:16},children:["Never posts or messages anyone; sends a request only when you press Auto","Never sees your password","Nothing leaves this Mac","Stops the moment you say"].map(e=>(0,n.jsxs)("span",{style:{fontSize:12.5,color:"var(--sd-fg-1, #cfe8dc)",display:"flex",alignItems:"center",gap:6},children:[(0,n.jsx)("span",{style:{color:"var(--sd-green, #00ff88)",fontWeight:900},children:"✓"}),e]},e))})]}),!e&&(0,n.jsx)("p",{style:{color:"var(--sd-fg-4, #778)",fontSize:13},children:"Checking your setup…"}),e&&(0,n.jsxs)(n.Fragment,{children:[Q?.person.id===U&&(0,n.jsx)(Y,{pick:Q,pages:j,setPages:w,li:ey,running:eh,s:e,canSearch:eb,busy:l,onUnpick:function(){er(null);try{window.history.replaceState(null,"",window.location.pathname)}catch{}},onStart:()=>ed("bridge",{id:Q.person.id,maxPages:j})}),ej>0&&!eh&&(0,n.jsx)(ei,{children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:14,flexWrap:"wrap"},children:[(0,n.jsxs)("div",{style:{flex:1,minWidth:200},children:[(0,n.jsxs)("b",{children:[ej.toLocaleString()," connections"]}),ev.second>0&&(0,n.jsxs)(n.Fragment,{children:[", plus ",ev.second.toLocaleString()," people in their circles"]}),ev.third>0&&(0,n.jsxs)(n.Fragment,{children:[" and ",ev.third.toLocaleString()," from company scans"]}),"."," ",(0,n.jsx)("span",{style:{color:"var(--sd-fg-3, #9aa)"},children:"Your galaxy is ready."})]}),(0,n.jsx)(r.default,{href:"/",style:{padding:"9px 18px",borderRadius:7,fontSize:13.5,fontWeight:700,color:"#0a0a1a",textDecoration:"none",background:"linear-gradient(135deg, #FFD700, #FF6B35)"},children:"See your network →"})]})}),eS&&(0,n.jsx)(M,{onDone:function(e){_({sectors:e}),window.scrollTo(0,0)}}),O&&(0,n.jsx)(A,{sectors:O.sectors}),e?.photosWaiting>0&&!eh&&(0,n.jsx)(ei,{children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:14,flexWrap:"wrap"},children:[(0,n.jsxs)("div",{style:{flex:1,minWidth:200},children:[(0,n.jsxs)("b",{children:[e.photosWaiting.toLocaleString()," ",1===e.photosWaiting?"photo isn’t":"photos aren’t"," saved on this computer yet."]})," ",(0,n.jsx)("span",{style:{color:"var(--sd-fg-3, #9aa)"},children:"An older version kept them as links to LinkedIn. The app doesn’t load photos from LinkedIn while you browse, so those people show initials until the photos are saved here: now, or at the end of your next scan. An expired link can’t be saved; that person’s photo comes back when they’re next scanned."}),e&&!ec.dependencies&&(0,n.jsx)("div",{style:{color:"var(--sd-fg-3, #8b9a9a)",fontSize:12.5,marginTop:6},children:"Set up the scanner first (step 1 below): it saves them."})]}),(0,n.jsx)(ee,{onClick:()=>ed("photos"),disabled:l||!ec.dependencies,children:"Save photos"})]})}),eT&&(0,n.jsxs)(ei,{tone:"bad",children:[(0,n.jsx)("b",{children:"The last run stopped before it finished."}),ez&&(0,n.jsx)("div",{style:{marginTop:6,color:"var(--sd-fg-2, #e8c4c4)",whiteSpace:"pre-wrap",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",fontSize:12.5},children:ez}),(0,n.jsx)("div",{style:{color:"var(--sd-fg-3, #9aa)",marginTop:6},children:"The full log is below."})]}),ef&&(0,n.jsxs)(ei,{tone:"bad",children:[(0,n.jsx)("b",{children:"Can’t find the scanner files."}),(0,n.jsx)("br",{}),(0,n.jsx)("span",{style:{color:"var(--sd-fg-3, #9aa)"},children:"This copy of Six Degrees is missing part of its scanner. Download it again from sixdegreesapp.com and put the new copy in place of this one."})]}),e&&ep.note&&(0,n.jsx)(ei,{tone:ep.done?void 0:"bad",children:ep.note}),e&&!eu&&(0,n.jsx)(en,{onAccept:el,busy:l}),(0,n.jsxs)("div",{role:"list","aria-label":"Scanning, step by step",style:{margin:"4px 0 8px"},children:[(0,n.jsx)("style",{children:K}),(0,n.jsx)(J,{n:1,label:"Get ready",state:ek(1,ep.done),children:(0,n.jsx)(V,{title:"Get your scanner ready",time:"A minute or two, once",done:ep.done,body:e?ep.text:"Checking…",launch:e&&ep.button&&(0,n.jsx)(X,{onClick:()=>ed(ep.button.action),disabled:l||eh,children:ep.button.label}),more:e&&ep.chrome&&(0,n.jsx)(X,{href:ep.chrome.href,quiet:!!ep.button,children:ep.chrome.label})})}),(0,n.jsx)(J,{n:2,label:"Sign in",state:ek(2,!!ec.signedIn),children:(0,n.jsx)(V,{title:"Sign in to LinkedIn, once",time:"You do this part",done:!!ec.signedIn,body:ec.signedIn?"Signed in on this Mac. If LinkedIn ever asks for a security check, or a scan says you were signed out, open LinkedIn here and finish it by hand.":(0,n.jsxs)(n.Fragment,{children:["A Chrome window opens. Sign in with your email and password there: the scanner never sees them.",(0,n.jsxs)("span",{style:{display:"block",marginTop:6},children:["Sign in to LinkedIn with Google or Apple? That can’t work in this window, so set a LinkedIn password first: on LinkedIn’s sign-in page, ",(0,n.jsx)("b",{children:"Forgot password"})," emails you a link to make one."]})]}),launch:ec.dependencies&&(0,n.jsx)(X,{onClick:()=>ed("login"),disabled:l||eh||ew<2||!eu||eg,quiet:!!ec.signedIn,children:eh&&"login"===e.action?"Waiting for you…":ec.signedIn?"Open LinkedIn again":"Open LinkedIn"})})}),(0,n.jsx)(J,{n:3,label:"Who you know",state:ek(3,ej>0),children:(0,n.jsx)(V,{title:"Map the people you know",time:"About a minute and a half for 750 people",done:ej>0,body:ej>0?`${ej.toLocaleString()} connections saved. Check for new picks up anyone you've added since; Scan it all again reads the whole list.`:"It reads your connections list and saves everyone here. After the first time, Check for new only looks at who you've added since.",launch:(0,n.jsx)(X,{onClick:()=>ed("full"),disabled:!eb||ew<3,quiet:ej>0,children:eh&&"full"===e.action?"Scanning…":ej>0?"Scan it all again":"Scan my network"}),more:ej>0&&(0,n.jsxs)(ee,{onClick:()=>ed("refresh"),disabled:!eb||ew<3,primary:!0,cluster:!0,active:!!(eh&&"refresh"===e.action),children:[(0,n.jsx)(E.default,{size:13,live:!!(eh&&"refresh"===e.action)}),eh&&"refresh"===e.action?"Checking…":"Check for new"]})})}),(0,n.jsx)(J,{n:4,label:"Who they know",state:ek(4,!1),last:!0,children:(0,n.jsxs)(V,{title:"Map who they know",time:`First circle in ${eC}`,body:(0,n.jsxs)(n.Fragment,{children:["It opens your connections one at a time and reads who ",(0,n.jsx)("i",{children:"they"})," know: that fills Degrees, Separation and Outlink. The first circle shows up in ",eC,". The rest fills in over days, a round at a time: every page is a LinkedIn search, and ",ey?.limits?.daily?(0,n.jsxs)(n.Fragment,{children:["your budget allows ",ey.limits.daily," a day"]}):(0,n.jsx)(n.Fragment,{children:"a day’s searches are best kept few"}),". Every round picks up where the last one stopped."]}),children:[(0,n.jsx)(C,{cooldown:ey?.cooldown,disabled:l,onLift:()=>ed("lift-cooldown")}),(0,n.jsxs)("div",{style:{display:"flex",gap:24,flexWrap:"wrap",alignItems:"center",marginTop:4},children:[(0,n.jsx)(x,{li:ey,running:!!eh,scanning:!!(eh&&e?.action?.startsWith("auto-bridge")),disabled:!eb||"score"===b&&!u.length,label:eh&&e?.action==="auto-bridge"?"Mapping…":"Map 2nd degree",sublabel:eh?g?`${g} people`:"everyone":`first circle in ${eC}`,onScan:()=>ed("auto-bridge",{maxBridges:g,tiers:"score"===b?u:[],order:b,maxPages:j,deeper:k,experimental:I}),onPace:l?void 0:e=>ed("set-limits",{...ey?.limits||{},pace:e})}),(0,n.jsxs)("div",{style:{flex:"1 1 230px",display:"flex",flexDirection:"column",gap:12},children:[(0,n.jsxs)("label",{style:{display:"flex",gap:10,alignItems:"center",fontSize:13,color:"var(--sd-fg-2, #cfd8d8)"},children:["This round",(0,n.jsxs)("select",{value:g,onChange:e=>f(Number(e.target.value)),disabled:eh,style:G,children:[(0,n.jsx)("option",{value:5,children:"5 people"}),(0,n.jsx)("option",{value:10,children:"10 people"}),(0,n.jsx)("option",{value:25,children:"25 people"}),(0,n.jsx)("option",{value:0,children:"everyone (not advised)"})]})]}),(0,n.jsxs)("label",{style:{display:"flex",gap:10,alignItems:"center",fontSize:13,color:"var(--sd-fg-2, #cfd8d8)"},children:["Start with",(0,n.jsxs)("select",{value:b,onChange:e=>v(e.target.value),disabled:eh,style:G,children:[(0,n.jsx)("option",{value:"newest",children:"Newest connections"}),(0,n.jsx)("option",{value:"score",children:"Highest tier"})]})]}),"score"===b&&(0,n.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"},children:[(0,n.jsx)("span",{style:{fontSize:12,color:"var(--sd-fg-3, #8b9a9a)"},children:"Work through"}),["S","A","B","C","D"].map(e=>{let i=u.includes(e);return(0,n.jsx)("button",{onClick:()=>m(n=>n.includes(e)?n.filter(n=>n!==e):[...n,e]),disabled:eh,style:{width:30,height:28,borderRadius:7,fontSize:12,fontWeight:700,cursor:eh?"not-allowed":"pointer",border:P,background:i?"rgba(52,152,219,0.22)":"rgba(var(--sd-ink, 255, 255, 255), 0.05)",color:i?"var(--sd-fg-1, #cfe6f7)":"var(--sd-fg-4, #667)"},children:e},e)}),(0,n.jsx)("span",{style:{fontSize:11.5,color:"var(--sd-fg-4, #667)"},children:u.length?"":"pick at least one"})]}),"newest"===b&&(0,n.jsxs)("div",{style:{fontSize:12,color:"var(--sd-fg-3, #8b9a9a)",lineHeight:1.6},children:["Goes by the date you connected, newest first, across every tier. Run"," ",(0,n.jsx)("b",{children:"Check for new"})," first so your latest connections are in the list."]}),(0,n.jsx)(Z,{})]})]}),eh&&e?.mapping?.id&&(0,n.jsxs)("div",{style:{marginTop:14,fontSize:13.5},children:[(0,n.jsx)(r.default,{href:`/?chain=${encodeURIComponent(e.mapping.id)}`,style:{color:"var(--sd-green, #00ff88)",fontWeight:700},children:"Watch it fill in →"}),(0,n.jsxs)("span",{style:{color:"var(--sd-fg-3, #8b9a9a)",marginLeft:8},children:[e.mapping.name?`${e.mapping.name}’s circle, `:"","saved every 10 pages."]})]})]})})]}),eh&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,marginTop:20,padding:"14px 16px",borderRadius:8,background:"rgba(0,255,136,0.06)",border:"1px solid rgba(0,255,136,0.3)"},children:[(0,n.jsx)(es,{}),(0,n.jsxs)("div",{style:{flex:1,fontSize:13.5},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:800,letterSpacing:1.2,color:"var(--sd-green, #00ff88)",marginBottom:2},children:"YOUR SCANNER IS WORKING"}),(0,n.jsx)("b",{children:H[e.action]||"Working"}),e.progress&&(0,n.jsx)(et,{p:e.progress,action:e.action}),(0,n.jsx)("div",{style:{color:"var(--sd-fg-3, #8b9a9a)",fontSize:12.5,marginTop:2},children:"Stopping closes the browser cleanly and keeps everything found so far."})]}),(0,n.jsx)(ee,{onClick:eo,tone:"bad",children:"Stop"})]}),(0,n.jsx)(W,{paused:e?.paused||[],disabled:!eb,onResume:e=>ed("resume",{id:e.id}),onResumeAll:()=>ed("resume-all",{maxBridges:g})}),(0,n.jsxs)("details",{style:{margin:"18px 0 4px",borderRadius:10,border:P,background:"rgba(var(--sd-ink, 255, 255, 255), 0.02)"},children:[(0,n.jsxs)("summary",{style:{padding:"12px 16px",cursor:"pointer",fontSize:13.5,fontWeight:650,color:"var(--sd-fg-2, #cfd8d8)"},children:["Fine-tune the scanner",(0,n.jsx)("span",{style:{fontWeight:500,color:"var(--sd-fg-4, #778)",marginLeft:8},children:"daily budget, how much of each list, the hidden window"})]}),(0,n.jsxs)("div",{style:{padding:"4px 16px 16px",display:"flex",flexDirection:"column",gap:12},children:[(0,n.jsx)(z,{li:ey,disabled:l,onSetLimits:e=>ed("set-limits",e)}),(0,n.jsxs)("label",{style:{display:"flex",gap:10,alignItems:"center",fontSize:12.5,color:"var(--sd-fg-2, #cfd8d8)"},children:["Read up to",(0,n.jsxs)("select",{value:j,onChange:e=>w(Number(e.target.value)),disabled:eh,style:G,children:[(0,n.jsx)("option",{value:100,children:"every page, to the end of their list"}),(0,n.jsx)("option",{value:50,children:"50 pages each"}),(0,n.jsx)("option",{value:25,children:"25 pages each"}),(0,n.jsx)("option",{value:10,children:"10 pages (~100 people) each"})]})]}),(0,n.jsxs)("label",{style:{display:"flex",gap:8,alignItems:"center",fontSize:12.5,color:"var(--sd-fg-2, #cfd8d8)",cursor:eh?"not-allowed":"pointer"},children:[(0,n.jsx)("input",{type:"checkbox",checked:k,onChange:e=>S(e.target.checked),disabled:eh}),"Also finish people already mapped, from the page each one stopped at"]}),(0,n.jsxs)("label",{style:{display:"flex",gap:8,alignItems:"flex-start",fontSize:12.5,color:"var(--sd-fg-2, #b8c4c4)",cursor:eh?"default":"pointer"},children:[(0,n.jsx)("input",{type:"checkbox",checked:I,disabled:eh,style:{marginTop:3},onChange:e=>{T(e.target.checked),window.dispatchEvent(new Event("six-degrees:experimental"))}}),(0,n.jsxs)("span",{children:[(0,n.jsx)("b",{style:{color:"var(--sd-gold, #FFD700)"},children:"Experimental:"})," all-day pacing. Up to 8 pages in a sitting, then an hour’s rest; searches only from 9:00 to 18:00; never more than 40 searches in a day or 200 in a week, however high your budget; two days’ rest after any check from LinkedIn; at the budget it waits instead of stopping; and it saves every page. It also reads LinkedIn’s own data beside the page text, to fill gaps and measure how the two compare. It keeps running while the app is open."]})]}),(0,n.jsxs)("label",{style:{display:"flex",gap:8,alignItems:"flex-start",fontSize:12.5,color:"var(--sd-fg-2, #b8c4c4)",cursor:eh?"default":"pointer"},children:[(0,n.jsx)("input",{type:"checkbox",checked:R,disabled:eh,style:{marginTop:3},onChange:e=>F(e.target.checked)}),(0,n.jsxs)("span",{children:[(0,n.jsx)("b",{style:{color:"var(--sd-gold, #FFD700)"},children:"Hide the Chrome window while scanning."})," Every scan runs with no window popping up; the status bar still shows what it’s doing, and Stop still works. Signing in always opens the window.",(0,n.jsx)("span",{style:{display:"block",marginTop:4,color:"#e0a080"},children:"The risks: a hidden Chrome is easier for LinkedIn to tell apart from a person, so it may make a warning or restriction more likely. If LinkedIn asks you to check it’s you (a code, a puzzle, signing in again) you won’t see it, and the scan will stop instead of waiting for you. Untick this and scan again to see what LinkedIn wants. It changes nothing about pacing or your daily budget."})]})]}),(0,n.jsxs)("div",{style:{fontSize:12,color:"var(--sd-gold, #FFD700)",lineHeight:1.6},children:["Every page is a LinkedIn search, so at ",(0,h.paceOf)(ey?.limits?.pace).label," it rests"," ",(0,h.paceOf)(ey?.limits?.pace).pagePause," seconds before each one and"," ",(0,h.paceOf)(ey?.limits?.pace).chunkCooldown/60==1?"a minute":`${(0,h.paceOf)(ey?.limits?.pace).chunkCooldown/60} minutes`," after every 10, and a long list can take"," ","about ",(0,c.circleScanCost)(j,ey?.limits?.pace).minutes," minutes a person. LinkedIn shows 100 pages of anyone’s connections at most. Free accounts have a monthly search limit: if LinkedIn says it has been reached, the scan saves what it read and stops, and carries on from that page next time. Keep batches small."]}),(0,n.jsxs)("div",{children:[(0,n.jsx)(ee,{onClick:()=>ed("auto-bridge-retry",{maxBridges:g,tiers:"score"===b?u:[],order:b,maxPages:j,deeper:k}),disabled:!eb||"score"===b&&!u.length,children:"Retry hidden ones"}),(0,n.jsx)("span",{style:{fontSize:12,color:"var(--sd-fg-3, #8b9a9a)",marginLeft:10},children:"People whose list was hidden last time, in case they’ve opened it."})]})]})]}),L&&(0,n.jsx)(ei,{tone:"bad",children:L}),e?.log?.length>0&&(0,n.jsxs)("details",{open:eT,style:{marginTop:20},children:[(0,n.jsxs)("summary",{style:{display:"flex",alignItems:"center",gap:10,cursor:"pointer",margin:"8px 0",fontSize:12,color:"var(--sd-fg-3, #788)",textTransform:"uppercase",letterSpacing:.6},children:[eh&&(0,n.jsx)(es,{}),eh?"What it’s doing (the log)":"The last run’s log"]}),(0,n.jsx)("pre",{ref:$,style:{background:"rgba(var(--sd-shade, 0, 0, 0), 0.45)",border:P,borderRadius:8,padding:14,maxHeight:280,overflow:"auto",margin:0,fontSize:12.5,lineHeight:1.7,color:"var(--sd-fg-2, #b9c6c6)",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:e.log.join("\n")})]})]})]}),(0,n.jsx)("style",{children:`@keyframes spin { to { transform: rotate(360deg) } }
|
|
14
|
-
@keyframes slide { 0% { transform: translateX(-100%) } 100% { transform: translateX(300%) } }`})]})}function Y({pick:e,pages:i,setPages:t,li:s,running:a,s:o,canSearch:l,busy:d,onStart:h,onUnpick:p}){let{person:g,circle:f}=e,u=String(g.name||"").trim().split(/\s+/)[0]||"them",x=(0,c.circleScanCost)(i,s?.limits?.pace),y=a&&o?.target?.id===g.id,m=s?.leftToday!=null&&s.leftToday<x.searches;return(0,n.jsxs)("div",{style:{margin:"16px 0",padding:"16px 18px",borderRadius:10,fontSize:13.5,lineHeight:1.6,background:"rgba(0,255,136,0.05)",border:"1px solid rgba(0,255,136,0.3)"},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--sd-green, #00ff88)",letterSpacing:.6,textTransform:"uppercase",marginBottom:4},children:"Scan one circle"}),(0,n.jsxs)("div",{style:{fontSize:16,fontWeight:700},children:[g.name," ",(0,n.jsxs)("span",{style:{fontSize:12,color:U[g.tier]||"#888"},children:[g.tier,"-tier"]})]}),g.unlocked_from_name&&(0,n.jsxs)("div",{style:{fontSize:12.5,color:"var(--sd-fg-3, #9aa)"},children:["Was in ",g.unlocked_from_name,"’s circle"]}),y?(0,n.jsxs)("div",{style:{marginTop:10},children:[(0,n.jsxs)("b",{children:["Scanning ",u,"’s circle."]})," It saves every 10 pages, and"," ",(0,n.jsx)(r.default,{href:`/?chain=${encodeURIComponent(g.id)}`,style:{color:"var(--sd-green, #00ff88)"},children:"Bridge Chains shows it filling in →"})]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{style:{color:"var(--sd-fg-2, #b8c4c4)",marginTop:10},children:["It costs ",(0,n.jsxs)("b",{children:[x.profileViews," profile view"]})," to find their list, then ",(0,n.jsx)("b",{children:"one LinkedIn search for every page"})," of it: up to ",x.searches," ",1===x.searches?"page":"pages",", about ",x.minutes," minutes.",s?.leftToday!=null&&(0,n.jsxs)(n.Fragment,{children:[" ",(0,n.jsx)("b",{children:s.leftToday})," of your ",s.limits?.daily," searches a day are left",m?"; the scan stops when they run out, and can carry on from that page later":"","."]})]}),"scanned"===f&&(0,n.jsx)("div",{style:{color:"var(--sd-gold, #FFD700)",fontSize:12.5,marginTop:6},children:"Their circle is already scanned. This reads their whole list again from page 1; to carry on from where a read stopped, use Resume on their card or under In progress below."}),"hidden"===f&&(0,n.jsx)("div",{style:{color:"var(--sd-gold, #FFD700)",fontSize:12.5,marginTop:6},children:"Their list was hidden last time it was tried. Trying again costs a profile view."}),(0,n.jsxs)("div",{style:{display:"flex",gap:10,alignItems:"center",flexWrap:"wrap",marginTop:12},children:[(0,n.jsxs)(ee,{onClick:h,disabled:!l||d,primary:!0,children:["Scan ",u,"’s circle"]}),(0,n.jsxs)("select",{value:i,onChange:e=>t(Number(e.target.value)),disabled:a,style:G,"aria-label":"How many pages of their list to read",children:[(0,n.jsx)("option",{value:100,children:"every page, to the end of their list"}),(0,n.jsx)("option",{value:50,children:"up to 50 pages"}),(0,n.jsx)("option",{value:25,children:"up to 25 pages"}),(0,n.jsx)("option",{value:10,children:"up to 10 pages (~100 people)"})]}),(0,n.jsx)(ee,{onClick:p,children:"Not now"})]}),!l&&(0,n.jsx)("div",{style:{fontSize:12.5,color:"var(--sd-fg-3, #8b9a9a)",marginTop:8},children:a?"Something else is running. One scan at a time: this one can start when it finishes.":s?.cooldown?"Scanning is paused for now (see below).":"The scanner isn’t ready yet: finish the steps below first."})]})]})}let U=g.TIER_COLORS;function q(e,n){let[t,s]=(0,i.useState)(n);return(0,i.useEffect)(()=>{try{let n=localStorage.getItem(e);null!==n&&s(JSON.parse(n))}catch{}},[e]),[t,n=>{s(n);try{localStorage.setItem(e,JSON.stringify(n))}catch{}}]}let G={padding:"9px 10px",borderRadius:7,fontSize:13.5,fontWeight:600,background:"rgba(var(--sd-ink, 255, 255, 255), 0.08)",color:"var(--sd-fg-1, #fff)",border:P},K=`
|
|
15
|
-
@keyframes stepPulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(0,255,136,.45); } 50% { box-shadow: 0 0 0 7px rgba(0,255,136,0); } }
|
|
16
|
-
.journey-now { animation: stepPulse 2.2s ease-in-out infinite; }
|
|
17
|
-
.launch-go { transition: transform .15s ease, box-shadow .2s ease, filter .2s ease; }
|
|
18
|
-
.launch-go:not(:disabled):hover { transform: translateY(-1px); box-shadow: 0 8px 30px rgba(0,255,136,.35); filter: brightness(1.08); }
|
|
19
|
-
.launch-go:not(:disabled):active { transform: translateY(0) scale(.98); }
|
|
20
|
-
@media (prefers-reduced-motion: reduce) { .journey-now { animation: none; } }
|
|
21
|
-
`;function J({n:e,label:i,state:t,last:s=!1,children:r}){let a="done"===t,o="now"===t;return(0,n.jsxs)("div",{role:"listitem","aria-label":`Step ${e}, ${i}: ${a?"done":o?"the one to do now":"still to come"}`,style:{display:"grid",gridTemplateColumns:"40px 1fr",columnGap:14},children:[(0,n.jsxs)("div",{style:{position:"relative",display:"flex",justifyContent:"center"},children:[(0,n.jsx)("span",{className:o?"journey-now":void 0,"aria-hidden":"true",style:{position:"relative",zIndex:1,width:38,height:38,borderRadius:"50%",display:"grid",placeItems:"center",fontSize:15,fontWeight:800,background:a?"rgba(0,255,136,0.16)":o?"linear-gradient(135deg, #00ff88, #1abc9c)":"var(--sd-card, #12142a)",color:a?"var(--sd-green, #00ff88)":o?"#04140c":"var(--sd-fg-4, #778)",border:`2px solid ${a?"rgba(0,255,136,0.55)":o?"transparent":"rgba(var(--sd-ink, 255, 255, 255), 0.14)"}`},children:a?"✓":e}),!s&&(0,n.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",top:40,bottom:0,left:"50%",width:2,marginLeft:-1,borderRadius:1,background:a?"linear-gradient(rgba(0,255,136,0.75), rgba(0,255,136,0.3))":"rgba(var(--sd-ink, 255, 255, 255), 0.1)"}})]}),(0,n.jsxs)("div",{style:{minWidth:0,paddingBottom:16*!s,opacity:"next"===t?.75:1},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,minHeight:38,marginBottom:6},children:[(0,n.jsxs)("span",{style:{fontSize:12,fontWeight:800,letterSpacing:1.2,textTransform:"uppercase",color:a?"var(--sd-green, #00ff88)":o?"var(--sd-fg-1, #fff)":"var(--sd-fg-3, #889)"},children:["Step ",e," · ",i]}),(0,n.jsx)("span",{style:{fontSize:10.5,fontWeight:800,padding:"2px 8px",borderRadius:10,color:a?"var(--sd-green, #00ff88)":o?"#04140c":"var(--sd-fg-3, #889)",background:a?"rgba(0,255,136,0.12)":o?"#00ff88":"rgba(var(--sd-ink, 255, 255, 255), 0.06)"},children:a?"Done":o?"Now":"Next"})]}),r]})]})}function V({title:e,time:i,body:t,launch:s,more:r,done:a=!1,children:o}){return(0,n.jsxs)("div",{style:{padding:a?"14px 18px":"18px 20px",borderRadius:14,background:a?"rgba(0,255,136,0.03)":"rgba(var(--sd-ink, 255, 255, 255), 0.035)",border:`1px solid ${a?"rgba(0,255,136,0.18)":"rgba(var(--sd-ink, 255, 255, 255), 0.1)"}`},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10,flexWrap:"wrap"},children:[(0,n.jsx)("span",{style:{fontSize:a?16:19,fontWeight:800},children:e}),i&&!a&&(0,n.jsxs)("span",{style:{fontSize:12,color:"var(--sd-fg-2, #8fd9b6)",marginLeft:"auto"},children:["⏱ ",i]})]}),(0,n.jsx)("div",{style:{fontSize:a?13:14,color:"var(--sd-fg-3, #9fb0bb)",lineHeight:1.6,margin:a?"6px 0 10px":"8px 0 14px",maxWidth:600},children:t}),o,(s||r)&&(0,n.jsxs)("div",{style:{display:"flex",gap:10,alignItems:"center",flexWrap:"wrap"},children:[s,r]})]})}function X({children:e,onClick:i,disabled:t,quiet:s=!1,href:r}){return r?(0,n.jsxs)("a",{className:"launch-go",href:r,target:"_blank",rel:"noreferrer",style:{...Q(!1,s),textDecoration:"none"},children:[(0,n.jsx)("span",{"aria-hidden":"true",style:{fontSize:s?11:13},children:"▶"}),e]}):(0,n.jsxs)("button",{type:"button",className:"launch-go",onClick:i,disabled:t,style:Q(t,s),children:[(0,n.jsx)("span",{"aria-hidden":"true",style:{fontSize:s?11:13},children:"▶"}),e]})}function Q(e,n){return{display:"inline-flex",alignItems:"center",gap:10,padding:n?"10px 18px":"13px 26px",borderRadius:12,fontSize:n?14:16,fontWeight:800,cursor:e?"not-allowed":"pointer",color:e?"var(--sd-fg-4, #667)":n?"var(--sd-fg-1, #cfe8dc)":"#04140c",border:n?"1px solid rgba(0,255,136,0.35)":"none",background:e?"rgba(var(--sd-ink, 255, 255, 255), 0.06)":n?"rgba(0,255,136,0.08)":"linear-gradient(135deg, #00ff88, #1abc9c)",boxShadow:e||n?"none":"0 4px 22px rgba(0,255,136,0.25)"}}function Z(){return(0,n.jsxs)("details",{style:{fontSize:12.5,color:"var(--sd-fg-3, #8b9a9a)",lineHeight:1.6},children:[(0,n.jsx)("summary",{style:{cursor:"pointer",color:"var(--sd-fg-2, #aab7c4)",fontWeight:600},children:"Why so slow?"}),(0,n.jsxs)("div",{style:{marginTop:6},children:["This is the part LinkedIn notices. While this app was being built, a real account was restricted for a while after roughly ",(0,n.jsx)("b",{children:"19 people in one sitting"}),". So: a small batch, a day’s rest, another batch, and stop the moment LinkedIn mentions unusual activity. Most people hide their connections; those are noted and never tried again. A list is read to the end, saving every 10 pages, and a stopped read carries on from the same page."]})]})}function ee({children:e,onClick:i,disabled:t,primary:s,tone:r,cluster:a=!1,active:o=!1}){return(0,n.jsx)("button",{onClick:i,disabled:t,className:a?"cluster-host":void 0,style:{padding:"9px 18px",borderRadius:7,fontSize:13.5,fontWeight:650,color:t&&!o?"var(--sd-fg-4, #667)":s?"#fff":"var(--sd-fg-1, #fff)",background:t&&!o?"rgba(var(--sd-ink, 255, 255, 255), 0.05)":"bad"===r?"rgba(255,80,80,0.15)":s?"linear-gradient(135deg, #9B59B6, #3498DB)":"rgba(var(--sd-ink, 255, 255, 255), 0.08)",border:P,cursor:o?"progress":t?"not-allowed":"pointer",...a?{display:"inline-flex",alignItems:"center",gap:8}:{}},children:e})}function en({onAccept:e,busy:i}){return(0,n.jsxs)("div",{role:"region","aria-label":"Before your first scan",style:{margin:"6px 0 18px",padding:"16px 18px",borderRadius:12,border:"1px solid rgba(var(--sd-ink, 255, 255, 255), 0.14)",background:"rgba(var(--sd-ink, 255, 255, 255), 0.04)"},children:[(0,n.jsx)("div",{style:{fontSize:15,fontWeight:700,color:"var(--sd-fg-1, #fff)",marginBottom:8},children:"Before your first scan"}),(0,n.jsx)("ul",{style:{margin:"0 0 14px",paddingLeft:18,color:"var(--sd-fg-2, #c8d0d0)",fontSize:13.5,lineHeight:1.65},children:l.map(e=>(0,n.jsx)("li",{style:{marginBottom:4},children:e},e))}),(0,n.jsxs)("div",{style:{display:"flex",gap:14,alignItems:"center",flexWrap:"wrap"},children:[(0,n.jsx)(ee,{onClick:e,disabled:i,primary:!0,children:"I understand"}),(0,n.jsxs)("span",{style:{fontSize:13,color:"var(--sd-fg-3, #8b9a9a)"},children:["Rather not? LinkedIn’s own CSV export needs none of this:"," ",(0,n.jsx)(r.default,{href:"/import",style:{color:"var(--sd-blue, #3498DB)"},children:"import a CSV instead"}),"."]})]})]})}function ei({children:e,tone:i}){return(0,n.jsx)("div",{style:{margin:"16px 0",padding:"14px 16px",borderRadius:8,fontSize:13.5,lineHeight:1.6,background:"bad"===i?"rgba(255,80,80,0.08)":"rgba(var(--sd-ink, 255, 255, 255), 0.05)",border:`1px solid ${"bad"===i?"rgba(255,80,80,0.3)":"rgba(var(--sd-ink, 255, 255, 255), 0.12)"}`},children:e})}function et({p:e,action:i}){let t;if("saving"===e.kind)return(0,n.jsxs)("div",{style:{margin:"8px 0 6px"},children:[(0,n.jsx)("div",{role:"progressbar","aria-label":"Saving",style:{height:8,borderRadius:4,overflow:"hidden",background:"rgba(var(--sd-ink, 255, 255, 255), 0.08)",marginBottom:6},children:(0,n.jsx)("div",{style:{width:"35%",height:"100%",borderRadius:4,background:"linear-gradient(90deg, #9B59B6, #3498DB)",animation:"slide 1.2s ease-in-out infinite"}})}),(0,n.jsx)("div",{style:{fontSize:12.5,color:"var(--sd-fg-1, #cfe6f7)"},children:"Saving to your network and fetching photos. This can take a minute or two."})]});let s=Math.max(0,Math.min(100,Math.round(e.done/e.total*100)));return t="download"===e.kind?`Downloading Python: ${e.done.toFixed(1)} of ${e.total.toFixed(1)} MB \xb7 ${s}%`:"batch"===e.kind?`Person ${e.current} of ${e.total}`:"refresh"===i?`Looked at ${e.done.toLocaleString()} so far, and stops once it reaches people already saved`:`${e.done.toLocaleString()} of ${e.total.toLocaleString()} connections \xb7 ${s}%`,(0,n.jsxs)("div",{style:{margin:"8px 0 6px"},children:["refresh"!==i&&(0,n.jsx)("div",{role:"progressbar","aria-valuemin":0,"aria-valuemax":e.total,"aria-valuenow":e.done,"aria-label":t,style:{height:8,borderRadius:4,overflow:"hidden",background:"rgba(var(--sd-ink, 255, 255, 255), 0.08)",marginBottom:6},children:(0,n.jsx)("div",{style:{width:`${s}%`,height:"100%",borderRadius:4,background:"linear-gradient(90deg, #9B59B6, #3498DB)",transition:"width 0.6s ease"}})}),(0,n.jsx)("div",{style:{fontSize:12.5,color:"var(--sd-fg-1, #cfe6f7)"},children:t})]})}function es(){return(0,n.jsx)("span",{style:{width:11,height:11,borderRadius:"50%",display:"inline-block",border:"2px solid rgba(var(--sd-ink, 255, 255, 255), 0.2)",borderTopColor:"#3498DB",animation:"spin 0.8s linear infinite"}})}e.s(["default",0,function(){return(0,n.jsx)(s.default,{children:(0,n.jsx)(i.Suspense,{children:(0,n.jsx)(_,{})})})}],68863)}]);
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/.next/static/{3NCyJyAPDCEYsYTwF1Ieu → mwCGF3OV3CWV4SjUgg5T8}/_clientMiddlewareManifest.js
RENAMED
|
File without changes
|
|
File without changes
|