six-degrees 0.4.1 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.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.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- 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/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/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.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/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.html +1 -1
- package/.next/standalone/.next/server/app/import.rsc +1 -1
- package/.next/standalone/.next/server/app/import.segments/_full.segment.rsc +1 -1
- 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 +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/launch.html +1 -1
- package/.next/standalone/.next/server/app/launch.rsc +1 -1
- package/.next/standalone/.next/server/app/launch.segments/_full.segment.rsc +1 -1
- 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 +1 -1
- 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.html +1 -1
- package/.next/standalone/.next/server/app/paths.rsc +1 -1
- package/.next/standalone/.next/server/app/paths.segments/_full.segment.rsc +1 -1
- 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 +1 -1
- 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 +2 -2
- package/.next/standalone/.next/server/app/profile.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- 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 +2 -2
- package/.next/standalone/.next/server/app/queue.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- package/.next/standalone/.next/server/app/scores.html +1 -1
- package/.next/standalone/.next/server/app/scores.rsc +1 -1
- package/.next/standalone/.next/server/app/scores.segments/_full.segment.rsc +1 -1
- 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 +1 -1
- package/.next/standalone/.next/server/app/settings.html +1 -1
- package/.next/standalone/.next/server/app/settings.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +1 -1
- 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 +1 -1
- 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 +2 -2
- package/.next/standalone/.next/server/app/setup.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- package/.next/standalone/.next/server/chunks/_1_fynia._.js +6 -6
- package/.next/standalone/.next/server/chunks/_1itd1o_._.js +1 -1
- package/.next/standalone/.next/server/chunks/lib_db-client_15le7cw.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_15xuwkv._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_1hgd5dp._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_20w06i-._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_page_1fazqbf.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/{3e8zg6ctvvb8p.js → 049vavjsmqgmn.js} +3 -3
- package/.next/standalone/.next/static/chunks/0ljxa-wk_iu__.js +18 -0
- package/.next/{static/chunks/3ol1xux1-ofm4.js → standalone/.next/static/chunks/0mp9b72fm-jp6.js} +2 -2
- package/.next/standalone/.next/static/chunks/1pre1cotntk6-.js +1 -0
- package/.next/standalone/.next/static/chunks/{18xu0fbgo_qz-.js → 22x2_r768-u5i.js} +1 -1
- package/.next/standalone/CHANGELOG.md +27 -0
- package/.next/standalone/app/api/scraper/route.js +10 -2
- package/.next/standalone/app/components/ChainView.js +17 -10
- package/.next/standalone/app/components/ForceGraph.js +106 -13
- package/.next/standalone/app/components/OrbitGraph.js +92 -30
- package/.next/standalone/lib/dot-rings.js +21 -0
- package/.next/standalone/lib/reach.js +22 -1
- package/.next/standalone/package-lock.json +2 -2
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/scripts/scrape.py +10 -0
- package/.next/static/chunks/{3e8zg6ctvvb8p.js → 049vavjsmqgmn.js} +3 -3
- package/.next/static/chunks/0ljxa-wk_iu__.js +18 -0
- package/.next/{standalone/.next/static/chunks/3ol1xux1-ofm4.js → static/chunks/0mp9b72fm-jp6.js} +2 -2
- package/.next/static/chunks/1pre1cotntk6-.js +1 -0
- package/.next/static/chunks/{18xu0fbgo_qz-.js → 22x2_r768-u5i.js} +1 -1
- package/CHANGELOG.md +27 -0
- package/lib/dot-rings.js +21 -0
- package/lib/reach.js +22 -1
- package/package.json +1 -1
- package/scripts/scrape.py +10 -0
- package/.next/standalone/.next/static/chunks/10784r7w7t5gw.js +0 -18
- package/.next/standalone/.next/static/chunks/2pnbm1z6j7xab.js +0 -1
- package/.next/static/chunks/10784r7w7t5gw.js +0 -18
- package/.next/static/chunks/2pnbm1z6j7xab.js +0 -1
- /package/.next/standalone/.next/static/{LlDgA9g8ToBkDLlo9Qtov → wGVrXBkFLmEB4snfhtOcO}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{LlDgA9g8ToBkDLlo9Qtov → wGVrXBkFLmEB4snfhtOcO}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{LlDgA9g8ToBkDLlo9Qtov → wGVrXBkFLmEB4snfhtOcO}/_ssgManifest.js +0 -0
- /package/.next/static/{LlDgA9g8ToBkDLlo9Qtov → wGVrXBkFLmEB4snfhtOcO}/_buildManifest.js +0 -0
- /package/.next/static/{LlDgA9g8ToBkDLlo9Qtov → wGVrXBkFLmEB4snfhtOcO}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{LlDgA9g8ToBkDLlo9Qtov → wGVrXBkFLmEB4snfhtOcO}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,2776,e=>{"use strict";var t=e.i(43476),r=e.i(15812);e.s(["default",0,function({children:e}){let{userId:n,ready:i}=(0,r.useUser)();return i&&n?e:(0,t.jsx)("div",{style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",background:"#0a0a1a",color:"#fff",padding:24,textAlign:"center",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'},children:i?(0,t.jsxs)("div",{style:{maxWidth:420},children:[(0,t.jsx)("div",{style:{fontSize:18,fontWeight:700,marginBottom:8},children:"Can’t reach Six Degrees’ local server"}),(0,t.jsx)("div",{style:{color:"#888",fontSize:14,lineHeight:1.6},children:"The page loaded but the app behind it is not answering. If you started it from a terminal, check that window for an error, then reload this page."})]}):(0,t.jsx)("div",{style:{fontSize:18,fontWeight:600},children:"Loading…"})})}])},99201,e=>{"use strict";var t=e.i(43476),r=e.i(71645),n=e.i(19821),i=e.i(5258),o=e.i(48235);let l={height:10,borderRadius:6},a={background:"rgba(52,152,219,0.06)",borderRadius:12,padding:20,marginBottom:24,border:"1px solid rgba(52,152,219,0.2)"};function s({degree1:e=[],degree2:r=[],skips:n=[]}){let c=function(e=[],t=[],r=[]){let n=(0,o.reachIndex)(e,t,{skips:r}),i=e=>{let t=(0,o.circleState)(e,n);return"scanned"===t?"mapped":t},l={mapped:0,hidden:0,todo:0},a={};for(let t of e){let e=i(t);l[e]+=1;let r=t.tier||"D";a[r]=a[r]||{mapped:0,hidden:0,todo:0,total:0},a[r][e]+=1,a[r].total+=1}let s=e.length,d=l.mapped+l.hidden;return{...l,total:s,resolved:d,percent:s?Math.round(d/s*100):0,batches:Math.ceil(l.todo/25),byTier:a}}(e,r,n);if(!c.total)return null;let u=e=>c.total?e/c.total*100:0,f=0===c.todo;return(0,t.jsxs)("div",{style:a,children:[(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"baseline",marginBottom:10},children:[(0,t.jsx)("h3",{style:{fontSize:14,fontWeight:700,margin:0,color:"#3498DB"},children:"2nd-degree mapping"}),(0,t.jsx)("span",{style:{fontSize:12,color:f?"#00ff88":"#8b9a9a",fontWeight:600},children:f?"Everything reachable is mapped":`${c.percent}%`})]}),(0,t.jsxs)("div",{style:{...l,display:"flex",overflow:"hidden",background:"rgba(255,255,255,0.06)"},children:[(0,t.jsx)("div",{style:{width:`${u(c.mapped)}%`,background:"#00ff88"}}),(0,t.jsx)("div",{style:{width:`${u(c.hidden)}%`,background:"rgba(255,255,255,0.22)"}})]}),(0,t.jsxs)("div",{style:{display:"flex",gap:16,marginTop:10,fontSize:12,flexWrap:"wrap"},children:[(0,t.jsx)(d,{color:"#00ff88",label:"mapped",value:c.mapped}),(0,t.jsx)(d,{color:"rgba(255,255,255,0.35)",label:"hidden",value:c.hidden}),(0,t.jsx)(d,{color:"rgba(255,255,255,0.12)",label:"to go",value:c.todo}),(0,t.jsxs)("span",{style:{color:"#667",marginLeft:"auto"},children:["of ",c.total]})]}),c.hidden>0&&(0,t.jsx)("p",{style:{fontSize:11.5,color:"#667",margin:"10px 0 0",lineHeight:1.6},children:"Hidden means they keep their connections private — that will not change, and it does not count against you."}),!f&&(0,t.jsxs)("p",{style:{fontSize:11.5,color:"#8b9a9a",margin:"10px 0 0",lineHeight:1.6},children:[c.todo," left — about ",(0,t.jsxs)("b",{children:[c.batches," ",1===c.batches?"batch":"batches"]})," of ",25,". Run one, leave it a while, run another. Long unbroken runs are what gets an account restricted."]}),(0,t.jsx)("div",{style:{marginTop:16,display:"flex",flexDirection:"column",gap:7},children:["S","A","B","C","D"].filter(e=>c.byTier[e]?.total).map(e=>{let r=c.byTier[e];return(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,fontSize:11},children:[(0,t.jsx)("span",{style:{width:14,color:i.TIER_COLORS_CLASSIC[e],fontWeight:700},children:e}),(0,t.jsxs)("div",{style:{flex:1,height:5,borderRadius:3,display:"flex",overflow:"hidden",background:"rgba(255,255,255,0.06)"},children:[(0,t.jsx)("div",{style:{width:`${r.mapped/r.total*100}%`,background:i.TIER_COLORS_CLASSIC[e]}}),(0,t.jsx)("div",{style:{width:`${r.hidden/r.total*100}%`,background:"rgba(255,255,255,0.22)"}})]}),(0,t.jsxs)("span",{style:{color:"#667",width:62,textAlign:"right"},children:[r.mapped,"/",r.total]})]},e)})})]})}function d({color:e,label:r,value:n}){return(0,t.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:6,color:"#8b9a9a"},children:[(0,t.jsx)("span",{style:{width:8,height:8,borderRadius:2,background:e}}),(0,t.jsx)("b",{style:{color:"#e2e8f0"},children:n})," ",r]})}var c=e.i(64745),u=e.i(2776),f=e.i(15812),g=e.i(69083),h=e.i(22016);let p={1:"Observer",11:"Connector",31:"Networker",51:"Strategist",76:"Architect"};function y(){let{userId:e,userName:i,userProfile:o}=(0,f.useUser)(),l=o||{name:i||"User",headline:"",sectors:[],goals:[]},[a,d]=(0,r.useState)(null),[u,y]=(0,r.useState)(!0),[b,x]=(0,r.useState)([]),[v,S]=(0,r.useState)({total:0,sent:0,accepted:0}),[j,w]=(0,r.useState)({degree1:[],degree2:[],skips:[]}),[k,C]=(0,r.useState)(null);if((0,r.useEffect)(()=>{!c.IS_DEMO&&e&&t();async function t(){fetch("/api/settings").then(e=>e.json().then(t=>e.ok&&t.settings?t:Promise.reject(Error(t.error)))).then(e=>C(e.settings.sectorFocus||{sectors:[],strength:"lean"})).catch(()=>C({failed:!0}));let t=await (0,n.loadNetwork)(e),r=t.degree1,i=t.degree2,o={S:0,A:0,B:0,C:0,D:0};r.forEach(e=>{o[e.tier]=(o[e.tier]||0)+1});let l={S:0,A:0,B:0,C:0,D:0};i.forEach(e=>{l[e.tier]=(l[e.tier]||0)+1});let a=[...new Set(i.map(e=>e.source_connection_id).filter(Boolean))].length,s=r.filter(e=>e.is_catalyst).length,c={};r.forEach(e=>{e.company&&(c[e.company]=(c[e.company]||0)+1)});let u=Object.entries(c).sort((e,t)=>t[1]-e[1]).slice(0,10),f=100*o.S+40*o.A+15*o.B+5*o.C+ +o.D+200*a+150*s+50*l.S+r.length,g=Math.floor(Math.sqrt(f/10)),h=g*g*10,p=(g+1)*(g+1)*10;d({d1Count:r.length,d2Count:i.length,tiers:o,d2Tiers:l,clusters:a,catalysts:s,networkPower:f,level:g,xpProgress:(f-h)/(p-h)*100,topCompanies:u,unlockedPaths:0}),fetch("/api/scraper").then(e=>e.json()).then(e=>w({degree1:r,degree2:i,skips:e.skips||[]})).catch(()=>w({degree1:r,degree2:i,skips:[]})),fetch(`/api/notifications?userId=${e}`).then(e=>e.json()).then(e=>x(e.notifications||[])).catch(()=>{}),fetch("/api/queue").then(e=>e.json()).then(e=>{let t=e.items||[];S({total:t.length,sent:t.filter(e=>"sent"===e.status).length,accepted:t.filter(e=>"accepted"===e.status).length})}).catch(()=>{}),y(!1)}},[e]),c.IS_DEMO)return(0,t.jsxs)("div",{style:{minHeight:"100vh",background:"#0a0a1a",color:"rgba(255,255,255,0.7)",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:12,textAlign:"center",padding:24,fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'},children:[(0,t.jsx)("h2",{style:{margin:0,fontSize:20,fontWeight:700,color:"#fff"},children:"Not part of the demo"}),(0,t.jsx)("p",{style:{margin:0,fontSize:13},children:"The public demo includes the Network Circle and Degrees views only."}),(0,t.jsx)(h.default,{href:"/",style:{fontSize:12,color:"rgba(255,255,255,0.5)",textDecoration:"none"},children:"← Back to the network"})]});if(u)return(0,t.jsx)("div",{style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",background:"#0a0a1a",color:"#fff"},children:"Loading profile..."});let _={S:"#FFD700",A:"#9B59B6",B:"#3498DB",C:"#95A5A6",D:"#BDC3C7"},I=[{label:"First S-Tier",done:a.tiers.S>0,icon:"👑"},{label:"100 Connections",done:a.d1Count>=100,icon:"🔗"},{label:"500 Connections",done:a.d1Count>=500,icon:"🌐"},{label:"First Cluster",done:a.clusters>0,icon:"🔭"},{label:"10 Clusters",done:a.clusters>=10,icon:"🏰"},{label:"50 S-Tier",done:a.tiers.S>=50,icon:"💎"},{label:"Catalyst Found",done:a.catalysts>0,icon:"⚡"},{label:"Level 25",done:a.level>=25,icon:"🎯"},{label:"Level 50",done:a.level>=50,icon:"🚀"},{label:"D2 S-Tier > 50",done:a.d2Tiers.S>=50,icon:"🌟"}];return(0,t.jsxs)("div",{style:{height:"100vh",background:"#0a0a1a",color:"#fff",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',display:"flex",flexDirection:"column",overflow:"hidden"},children:[(0,t.jsxs)("header",{style:{padding:"16px 24px",borderBottom:"1px solid rgba(255,255,255,0.1)",display:"flex",alignItems:"center",gap:16},children:[(0,t.jsxs)(h.default,{href:"/",style:{display:"flex",alignItems:"center",gap:6,color:"#888",textDecoration:"none",fontSize:13,fontWeight:600,padding:"6px 14px",borderRadius:6,background:"rgba(255,255,255,0.06)",border:"1px solid rgba(255,255,255,0.1)"},children:[(0,t.jsx)("span",{style:{fontSize:16},children:"←"})," Back to Map"]}),(0,t.jsx)("h1",{style:{fontSize:22,fontWeight:700,margin:0,background:"linear-gradient(135deg, #FFD700, #9B59B6, #3498DB)",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent"},children:"Profile"})]}),(0,t.jsx)("div",{style:{flex:1,overflow:"auto",padding:"30px 20px"},children:(0,t.jsxs)("div",{style:{maxWidth:700,margin:"0 auto"},children:[(0,t.jsxs)("div",{style:{background:"rgba(255,255,255,0.05)",borderRadius:16,padding:32,marginBottom:24,border:"1px solid rgba(255,215,0,0.2)",textAlign:"center"},children:[(0,t.jsx)("div",{style:{width:100,height:100,borderRadius:"50%",margin:"0 auto 16px",background:"linear-gradient(135deg, #FFD700, #FF6B35)",display:"flex",alignItems:"center",justifyContent:"center",fontSize:36,fontWeight:800,color:"#000",boxShadow:"0 0 30px rgba(255,215,0,0.3)"},children:a.level}),(0,t.jsx)("div",{style:{fontSize:24,fontWeight:700,marginBottom:4},children:l.name}),(0,t.jsx)("div",{style:{fontSize:14,color:"#888",marginBottom:4},children:l.headline}),(0,t.jsx)("div",{style:{display:"inline-block",padding:"4px 16px",borderRadius:20,background:"rgba(255,215,0,0.15)",border:"1px solid rgba(255,215,0,0.3)",color:"#FFD700",fontSize:13,fontWeight:700,marginBottom:16},children:function(e){let t="Observer";for(let[r,n]of Object.entries(p))e>=parseInt(r)&&(t=n);return t}(a.level)}),(0,t.jsxs)("div",{style:{maxWidth:300,margin:"0 auto"},children:[(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",fontSize:10,color:"#666",marginBottom:4},children:[(0,t.jsxs)("span",{children:["Level ",a.level]}),(0,t.jsxs)("span",{children:["Level ",a.level+1]})]}),(0,t.jsx)("div",{style:{height:8,background:"rgba(255,255,255,0.1)",borderRadius:4},children:(0,t.jsx)("div",{style:{height:"100%",width:`${Math.min(a.xpProgress,100)}%`,background:"linear-gradient(90deg, #FFD700, #FF6B35)",borderRadius:4,transition:"width 1s ease"}})}),(0,t.jsxs)("div",{style:{fontSize:10,color:"#888",marginTop:4},children:["Network Power: ",a.networkPower.toLocaleString()]})]})]}),(0,t.jsx)(s,{degree1:j.degree1,degree2:j.degree2,skips:j.skips}),(0,t.jsxs)("div",{style:{background:"rgba(255,107,53,0.06)",borderRadius:12,padding:20,marginBottom:24,border:"1px solid rgba(255,107,53,0.2)"},children:[(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:12},children:[(0,t.jsx)("h3",{style:{fontSize:14,fontWeight:700,margin:0,color:"#FF6B35"},children:"Queue Progress"}),(0,t.jsx)(h.default,{href:"/queue",style:{fontSize:11,color:"#FF6B35",textDecoration:"none",fontWeight:600},children:"View Queue →"})]}),(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gap:12},children:[(0,t.jsxs)("div",{style:{textAlign:"center"},children:[(0,t.jsx)("div",{style:{fontSize:22,fontWeight:700,color:"#FFA500"},children:v.total}),(0,t.jsx)("div",{style:{fontSize:10,color:"#888"},children:"In Queue"})]}),(0,t.jsxs)("div",{style:{textAlign:"center"},children:[(0,t.jsx)("div",{style:{fontSize:22,fontWeight:700,color:"#3498DB"},children:v.sent}),(0,t.jsx)("div",{style:{fontSize:10,color:"#888"},children:"Sent"})]}),(0,t.jsxs)("div",{style:{textAlign:"center"},children:[(0,t.jsx)("div",{style:{fontSize:22,fontWeight:700,color:"#00ff88"},children:v.accepted}),(0,t.jsx)("div",{style:{fontSize:10,color:"#888"},children:"Accepted"})]})]})]}),b.length>0&&(0,t.jsxs)("div",{style:{background:"rgba(255,255,255,0.04)",borderRadius:12,padding:20,marginBottom:24,border:"1px solid rgba(255,255,255,0.08)"},children:[(0,t.jsxs)("h3",{style:{fontSize:14,fontWeight:700,marginTop:0,marginBottom:12},children:["Recent Activity (",b.filter(e=>!e.seen).length," new)"]}),(0,t.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6,maxHeight:200,overflowY:"auto"},children:b.slice(0,10).map(e=>(0,t.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center",padding:"6px 8px",borderRadius:6,background:e.seen?"transparent":"rgba(255,215,0,0.05)",borderLeft:e.seen?"none":"2px solid #FFD700"},children:[(0,t.jsx)("span",{style:{fontSize:16},children:e.icon||"📌"}),(0,t.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,t.jsx)("div",{style:{fontSize:12,fontWeight:600,color:e.seen?"#888":"#fff"},children:e.title}),e.message&&(0,t.jsx)("div",{style:{fontSize:10,color:"#666"},children:e.message})]}),(0,t.jsx)("span",{style:{fontSize:9,color:"#555",flexShrink:0},children:new Date(e.created_at).toLocaleDateString()})]},e.id))})]}),(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gap:12,marginBottom:24},children:[(0,t.jsx)(m,{label:"Connections",value:a.d1Count}),(0,t.jsx)(m,{label:"Degree-2 Reach",value:a.d2Count}),(0,t.jsx)(m,{label:"Clusters",value:a.clusters}),(0,t.jsx)(m,{label:"S-Tier",value:a.tiers.S,color:"#FFD700"}),(0,t.jsx)(m,{label:"A-Tier",value:a.tiers.A,color:"#9B59B6"}),(0,t.jsx)(m,{label:"Catalysts",value:a.catalysts,color:"#00ff88"})]}),(0,t.jsxs)("div",{style:{background:"rgba(255,255,255,0.04)",borderRadius:12,padding:20,marginBottom:24,border:"1px solid rgba(255,255,255,0.08)"},children:[(0,t.jsx)("h3",{style:{fontSize:14,fontWeight:700,marginTop:0,marginBottom:12},children:"Tier Distribution"}),["S","A","B","C","D"].map(e=>{let r=a.tiers[e]||0,n=a.d1Count>0?r/a.d1Count*100:0;return(0,t.jsxs)("div",{style:{marginBottom:8},children:[(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",fontSize:11,marginBottom:2},children:[(0,t.jsxs)("span",{style:{color:_[e],fontWeight:600},children:[e,"-Tier"]}),(0,t.jsxs)("span",{style:{color:"#888"},children:[r," (",n.toFixed(1),"%)"]})]}),(0,t.jsx)("div",{style:{height:6,background:"rgba(255,255,255,0.08)",borderRadius:3},children:(0,t.jsx)("div",{style:{height:"100%",width:`${n}%`,background:_[e],borderRadius:3}})})]},e)})]}),(0,t.jsxs)("div",{style:{background:"rgba(255,255,255,0.04)",borderRadius:12,padding:20,marginBottom:24,border:"1px solid rgba(255,255,255,0.08)"},children:[(0,t.jsx)("h3",{style:{fontSize:14,fontWeight:700,marginTop:0,marginBottom:12},children:"Degree-2 Reach"}),(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:12},children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{style:{fontSize:24,fontWeight:700,color:"#FF6B35"},children:a.d2Count}),(0,t.jsx)("div",{style:{fontSize:11,color:"#888"},children:"People reachable via bridges"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{style:{fontSize:24,fontWeight:700,color:"#FFD700"},children:a.d2Tiers.S}),(0,t.jsx)("div",{style:{fontSize:11,color:"#888"},children:"S-Tier degree-2"})]})]})]}),(0,t.jsxs)("div",{style:{background:"rgba(255,255,255,0.04)",borderRadius:12,padding:20,marginBottom:24,border:"1px solid rgba(255,255,255,0.08)"},children:[(0,t.jsxs)("h3",{style:{fontSize:14,fontWeight:700,marginTop:0,marginBottom:12},children:["Milestones (",I.filter(e=>e.done).length,"/",I.length,")"]}),(0,t.jsx)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:8},children:I.map((e,r)=>(0,t.jsxs)("div",{style:{padding:"8px 10px",borderRadius:8,fontSize:12,background:e.done?"rgba(255,215,0,0.08)":"rgba(255,255,255,0.02)",border:`1px solid ${e.done?"rgba(255,215,0,0.2)":"rgba(255,255,255,0.05)"}`,color:e.done?"#FFD700":"#555",display:"flex",alignItems:"center",gap:6},children:[(0,t.jsx)("span",{style:{fontSize:16},children:e.done?e.icon:"🔒"}),(0,t.jsx)("span",{style:{fontWeight:e.done?600:400},children:e.label})]},r))})]}),(0,t.jsxs)("div",{style:{background:"rgba(255,255,255,0.04)",borderRadius:12,padding:20,marginBottom:24,border:"1px solid rgba(255,255,255,0.08)"},children:[(0,t.jsx)("h3",{style:{fontSize:14,fontWeight:700,marginTop:0,marginBottom:12},children:"Top Companies in Your Network"}),a.topCompanies.map(([e,r],n)=>(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",padding:"4px 0",borderBottom:n<a.topCompanies.length-1?"1px solid rgba(255,255,255,0.04)":"none",fontSize:12},children:[(0,t.jsx)("span",{children:e}),(0,t.jsx)("span",{style:{color:"#888"},children:r})]},n))]}),(0,t.jsxs)("div",{style:{background:"rgba(255,255,255,0.04)",borderRadius:12,padding:20,border:"1px solid rgba(255,255,255,0.08)"},children:[(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:12},children:[(0,t.jsx)("h3",{style:{fontSize:14,fontWeight:700,margin:0},children:"Your Sectors"}),(0,t.jsxs)(h.default,{href:"/scores#sector",style:{fontSize:11,color:"#3498DB",textDecoration:"none",fontWeight:600},children:[k?.sectors?.length?"Change":k&&!k.failed?"Pick on Scores":"Scores"," →"]})]}),k?k.failed?(0,t.jsx)("div",{style:{fontSize:12,color:"#ff7676"},children:"Couldn’t load your sectors. Reload this page, or open Settings to see them."}):k.sectors?.length?(0,t.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:6,alignItems:"center"},children:[k.sectors.map(e=>{let r=(0,g.sectorByKey)(e);return(0,t.jsx)("span",{style:{padding:"4px 12px",borderRadius:20,fontSize:11,fontWeight:600,background:`${r.color}26`,border:`1px solid ${r.color}66`,color:r.color},children:r.label},e)}),(0,t.jsxs)("span",{style:{fontSize:11,color:"#888"},children:["strong"===k.strength?"Strong":"Lean",": companies here count for more in your scores."]})]}):(0,t.jsx)("div",{style:{fontSize:12,color:"#888"},children:"None picked. Pick up to three in Settings and companies in them count for more in your scores."}):(0,t.jsx)("div",{style:{fontSize:12,color:"#888"},children:"Loading…"})]})]})})]})}function m({label:e,value:r,color:n}){return(0,t.jsxs)("div",{style:{background:"rgba(255,255,255,0.04)",borderRadius:10,padding:"14px 12px",border:"1px solid rgba(255,255,255,0.08)",textAlign:"center"},children:[(0,t.jsx)("div",{style:{fontSize:22,fontWeight:700,color:n||"#fff"},children:r}),(0,t.jsx)("div",{style:{fontSize:10,color:"#888",marginTop:2},children:e})]})}e.s(["default",0,function(){return(0,t.jsx)(u.default,{children:(0,t.jsx)(y,{})})}],99201)},89154,e=>{"use strict";var t=e.i(90179);function r(e){let r=(0,t.readTitle)(e);return{key:r.key,label:r.label,level:r.level}}function n(e){return(0,t.currentCompany)(e)}let i=[{key:"defense",label:"Government, Defense & Aerospace",color:"#7f8c8d",words:/\b(government|federal|state of|county|city of|defen[cs]e|army|navy|air force|marine corps|military|dod|nasa|aerospace|lockheed|northrop|boeing|raytheon|l3harris|leidos|blue origin|spacex|public sector)\b/i},{key:"finance",label:"Finance & Investing",color:"#2ecc71",words:/\b(bank|banking|capital|ventures?|vc|investments?|investor|fund|private equity|growth equity|asset management|wealth|trading|trader|hedge|crypto|blockchain|web3|defi|fintech|stripe|coinbase|blackrock|robinhood|goldman|morgan stanley|jpmorgan|chase|bny|mellon|wells fargo|citi|citigroup|capital one|fidelity|vanguard|schwab|visa|mastercard|amex|american express|paypal|insurance|accounting|cpa|financial)\b/i},{key:"health",label:"Healthcare & Biotech",color:"#e74c3c",words:/\b(health|healthcare|medical|medicine|hospital|clinic|pharma|pharmaceutical|biotech|nurse|nursing|physician|doctor|dental|therapy|therapist|wellness)\b/i},{key:"education",label:"Education",color:"#f1c40f",words:/\b(university|college|school|education|student|professor|teacher|academy|phd|faculty|alumni)\b/i},{key:"media",label:"Marketing & Media",color:"#e67e22",words:/\b(marketing|brand|branding|advertising|agency|media|content|social media|creative|creator|influencer|pr|public relations|communications|tiktok|pinterest|youtube|growth marketing)\b/i},{key:"entertainment",label:"Entertainment & Gaming",color:"#9b59b6",words:/\b(entertainment|film|movie|music|records|gaming|games?|esports|studio|studios|netflix|disney|spotify|hollywood|theater|theatre|sports)\b/i},{key:"tech",label:"Tech, Software & AI",color:"#3498db",words:/\b(software|saas|engineer|engineering|developer|tech|technology|technologies|ai|artificial intelligence|machine learning|ml|data|cloud|cyber|security|devops|product manager|google|microsoft|apple|meta|amazon|nvidia|openai|anthropic|palantir|salesforce|oracle|ibm|intel|app|apps|startup|platform|labs?)\b/i},{key:"consulting",label:"Consulting, Legal & Services",color:"#1abc9c",words:/\b(consulting|consultant|consultancy|deloitte|accenture|mckinsey|kpmg|pwc|ey|bain|bcg|legal|law|lawyer|attorney|paralegal|recruiting|recruiter|staffing|talent)\b/i},{key:"realestate",label:"Real Estate & Construction",color:"#d35400",words:/\b(real estate|realtor|realty|property|properties|construction|architecture|architect|mortgage|homes|housing|builders?)\b/i},{key:"consumer",label:"Retail, Consumer & Hospitality",color:"#ff79c6",words:/\b(retail|e-?commerce|shopify|consumer|cpg|fashion|apparel|beauty|cosmetics|food|beverage|restaurant|hospitality|hotel|travel|tourism|coca-cola|nike|store|shop)\b/i},{key:"industry",label:"Manufacturing, Energy & Logistics",color:"#95a5a6",words:/\b(manufacturing|energy|oil|gas|solar|utilities|automotive|tesla|siemens|ge|general electric|honeywell|3m|logistics|supply chain|shipping|freight|fedex|ups|industrial|mining|chemicals?)\b/i},{key:"nonprofit",label:"Nonprofit & Community",color:"#bdc3c7",words:/\b(nonprofit|non-profit|foundation|charity|ngo|church|ministry|volunteer)\b/i}],o={key:"unknown",label:"Unclear",color:"#555c66"},l=Object.fromEntries([...i,o].map(e=>[e.key,e])),a=e=>l[e]||o;function s(e,t){for(let r of[e,t]){if(!r)continue;let e=i.find(e=>e.words.test(r));if(e)return e}return o}let d=(e,t)=>s(e,t).key,c=e=>r(e).level>=4;e.s(["INDUSTRIES",0,i,"UNKNOWN_INDUSTRY",0,o,"buildCompanyIndex",0,function(e=[]){let r=new Map,n=e=>(r.has(e)||r.set(e,(0,t.rolesWithCompanies)(e)),r.get(e)),{industries:i}=(0,t.networkCompanies)(e,{industryOf:d,rolesOf:n}),o=new Map;for(let t of e){let e=t.profile_url||`id:${t.id}`,r=o.get(e);(!r||(t.degree||9)<(r.degree||9))&&o.set(e,t)}let l=new Map;for(let e of o.values()){let t=n(e).find(e=>!e.former)?.company;if(!t)continue;let r=l.get(t);r||(r={name:t,people:[],d1:0,d2:0,d3:0,S:0,A:0,senior:0},l.set(t,r)),r.people.push(e),1===e.degree?r.d1++:2===e.degree?r.d2++:r.d3++,"S"===e.tier&&r.S++,"A"===e.tier&&r.A++,c(e.headline)&&r.senior++}for(let e of l.values())e.industry=a(i.get(e.name));return l},"companyLinks",0,function(e=[],t=[]){let r=new Map;for(let t of e){let e=n(t);e&&r.set(t.id,e)}let i=new Map;for(let e of t){let t=r.get(e.source_connection_id),o=n(e);if(!t||!o||t===o)continue;let[l,a]=t<o?[t,o]:[o,t],s=`${l}\u0000${a}`,d=i.get(s);d||(d={a:l,b:a,weight:0,via:new Set},i.set(s,d)),d.weight++,d.via.add(e.source_connection_id)}return[...i.values()]},"companyOf",0,n,"getSeniority",0,r,"industryByKey",0,a,"industryOf",0,s,"isSenior",0,c,"waysInto",0,function(e,t=[],r=[]){let i=t.filter(t=>n(t)===e),o=new Map;for(let t of r)n(t)===e&&o.set(t.source_connection_id,(o.get(t.source_connection_id)||0)+1);let l=new Map(t.map(e=>[e.id,e]));return{direct:i,bridges:[...o.entries()].map(([e,t])=>({bridge:l.get(e),n:t})).filter(e=>e.bridge).sort((e,t)=>t.n-e.n||(Number(t.bridge.power_score)||0)-(Number(e.bridge.power_score)||0))}}])},19821,e=>{"use strict";async function t(e){let t=e?`/api/network?userId=${encodeURIComponent(e)}`:"/api/network",r=await fetch(t);if(!r.ok)throw Error(`Failed to load network (${r.status})`);let n=await r.json();return{degree1:n.degree1||[],degree2:n.degree2||[],degree3:n.degree3||[]}}e.s(["loadNetwork",0,t])},36774,e=>{"use strict";let t=/^[A-Za-z0-9_-]+\.(webp|jpg|jpeg|png)$/,r="/avatars/";e.s(["localPhoto",0,function(e){return"string"==typeof e&&e.startsWith(r)&&t.test(e.slice(r.length))?e:null}])},48235,7214,e=>{"use strict";var t=e.i(36774);let r={S:0,A:1,B:2,C:3,D:4};function n(e){let t=parseFloat(e?.power_score);return Number.isFinite(t)?t:0}function i(e){return Math.round(10*n(e))/10}function o(e){return String(e?.profile_url||"").split(/[?#]/)[0].replace(/\/+$/,"")||`id:${e?.id}`}let l=(e,t)=>String(e??"").localeCompare(String(t??""),void 0,{numeric:!0});function a(e,t){return(r[e.tier]??9)-(r[t.tier]??9)||n(t)-n(e)||String(e.name||"").localeCompare(String(t.name||""))||l(e.id,t.id)}function s(e,t){return e.bridge&&t.bridge?a(e.bridge,t.bridge):e.bridge?-1:t.bridge?1:l(e.id,t.id)}function d(e,t){return t.score-e.score||t.waysIn-e.waysIn||s(e.routes[0]||c,t.routes[0]||c)||String(e.person.name||"").localeCompare(String(t.person.name||""))||(e.key<t.key?-1:+(e.key>t.key))}let c={id:null,bridge:null};function u(e){let t=String(e||"").trim().split(/\s+/).filter(Boolean);return t.length<2?t[0]||"":`${t[0]} ${t[t.length-1].charAt(0)}.`}function f(e,t){let r=String(e||"");return t<=1?r?"…":"":r.length>t?`${r.slice(0,t-1)}…`:r}function g(e,t){return e?t.scanned.has(e.id)||e.profile_url&&t.read?.has(o(e))?"scanned":e.profile_url&&t.hidden.has(o(e))?"hidden":"todo":"todo"}function h(e,t){if(!e||1!==e.degree||null==e.unlocked_from_bridge_id)return null;let r=g(e,t);return"todo"===r?"ready":r}e.s(["TIERS",0,["S","A","B","C","D"],"compareBridges",0,a,"compareWaysIn",0,function(e,t){return t.waysIn-e.waysIn||d(e,t)},"keyFor",0,o,"routeIndex",0,function(e=[]){let t=new Map;for(let r of e||[]){let e=o(r),n=t.get(e);n||(n=new Set,t.set(e,n)),n.add(r.source_connection_id??null)}return t},"routesFor",0,function(e,t,r){return e?[...t?.get(o(e))??(null!=e.source_connection_id?new Set([e.source_connection_id]):new Set)].map(e=>({id:e,bridge:r?.get(e)??null})).sort(s):[]},"score",0,n,"score1",0,i,"separationPeople",0,function(e=[],r=[]){let n=new Map;for(let e of r||[])n.set(e.id,e);let a=new Map,c=new Map;for(let r of e||[]){let e=o(r);c.set(r.id,e);let n=a.get(e);n?function(e,r){let n=i(e)-i(r);if(n)return n>0;let o=!!(0,t.localPhoto)(e.profile_image_url);return!!(0,t.localPhoto)(r.profile_image_url)!==o?o:0>l(e.id,r.id)}(r,n.person)&&(n.person=r):(n={key:e,person:r,rowIds:[],routeIds:new Set},a.set(e,n)),n.rowIds.push(r.id),n.routeIds.add(r.source_connection_id??null)}let u={people:a.size,byTier:{S:0,A:0,B:0,C:0,D:0},multi:0,bridges:0,unresolvedIds:0,peopleOnlyUnresolved:0,onlyUnresolvedVia:0},f=new Set,g=new Set,h=new Set,p=[];for(let e of a.values()){let t=[...e.routeIds].map(e=>({id:e,bridge:n.get(e)??null}));t.sort(s);let r=t.filter(e=>e.bridge);for(let e of t)(e.bridge?f:g).add(e.id);if(!r.length)for(let e of(u.peopleOnlyUnresolved++,t))h.add(e.id);let{person:o}=e,l=o.tier;void 0!==u.byTier[l]&&u.byTier[l]++,t.length>1&&u.multi++,p.push({key:e.key,person:o,score:i(o),tier:l,routes:t,waysIn:t.length,rowIds:e.rowIds,haystack:[o.name,o.headline,o.company,o.role,...r.map(e=>e.bridge.name)].filter(Boolean).join("\n").toLowerCase(),rank:0,tied:!1})}return u.bridges=f.size,u.unresolvedIds=g.size,u.onlyUnresolvedVia=h.size,p.sort(d),function(e){for(let t=0;t<e.length;t++){let r=e[t],n=e[t-1],i=n&&n.score===r.score&&n.waysIn===r.waysIn;r.rank=i?n.rank:t+1,i&&(r.tied=!0,n.tied=!0)}}(p),{people:p,rowToKey:c,summary:u}},"shortName",0,u,"summitLayout",0,function(e=[],t=800,r=!1){let n=r?36:26,i=Math.round(.42*t),o=Math.round(.58*t),l=e.map((e,r)=>{var i;return{key:e.key,p:e,x:o,y:16+r*n,r:(i=e.waysIn)>=4?8.5:3===i?7:2===i?5.5:4,label:f(`#${e.rank}${e.tied?"=":""} ${e.person.name||""}`,Math.floor((t-o-60)/6.2))}}),s=new Map,d="\0unresolved";for(let e of l)for(let t of e.p.routes){let r=t.bridge?t.id:d,n=s.get(r);n||(n={id:t.bridge?t.id:null,bridge:t.bridge,unresolved:!t.bridge,ys:[],count:0},s.set(r,n)),n.count++,n.ys.push(e.y)}let c=[...s.values()].map(e=>({...e,bary:e.ys.reduce((e,t)=>e+t,0)/e.ys.length}));c.sort((e,t)=>e.bary-t.bary||e.unresolved-t.unresolved||(e.bridge&&t.bridge?a(e.bridge,t.bridge):0));let g=l.length?l[l.length-1].y:16,h=c.length>1?Math.max(18,(g-16)/(c.length-1)):0,p=Math.max(4,Math.floor((i-10-42)/6));c.forEach((e,t)=>{if(e.x=i,e.y=1===c.length?(16+g)/2:16+t*h,e.r=5,e.unresolved)e.label=f(`can't be named (${e.count})`,p);else{let t=e.bridge.name||"";e.label=t.length<=p?t:f(u(t),p)}delete e.ys});let y=new Map(c.map(e=>[e.unresolved?d:e.id,e])),m=[];for(let e of l){let t=new Set;e.p.routes.forEach((r,n)=>{let i=r.bridge?r.id:d;if(t.has(i))return;t.add(i);let o=y.get(i);m.push({key:e.key,bridgeId:o.id,primary:0===n&&!o.unresolved,unresolved:o.unresolved,tier:o.bridge?.tier??null,x1:o.x,y1:o.y,x2:e.x,y2:e.y})})}let b=Math.max(g,c.length?c[c.length-1].y:0),x=l.length?Math.ceil(b+16):0,v={x:20,y:l.length?(16+Math.max(g,b))/2:16,r:14},S=c.map(e=>({id:e.id,x1:v.x,y1:v.y,x2:e.x,y2:e.y}));return{width:t,height:x,you:v,people:l,bridges:c,links:m,spokes:S}}],7214),e.s(["circleScanCost",0,function(e=100){let t=Math.max(1,Math.min(100,Math.round(e)||100));return{profileViews:1,searches:t,minutes:t>=100?55:Math.max(5,Math.round(.55*t))}},"circleState",0,g,"reachIndex",0,function(e=[],t=[],r={}){let n=new Set;for(let e of t||[])e?.source_connection_id!=null&&n.add(e.source_connection_id);let i=new Set;for(let e of r?.skips||[])e?.profileUrl&&i.add(o({profile_url:e.profileUrl}));let l=new Set;for(let e of r?.read||[])e&&l.add(o({profile_url:e}));let a=new Map;for(let t of e||[]){let e=t?.unlocked_from_bridge_id;if(null==e||1!==t.degree)continue;let r=a.get(e);r||a.set(e,r=[]),r.push(t)}return{scanned:n,read:l,hidden:i,reachedFrom:a}},"reachState",0,h,"readyByCircle",0,function(e){let t=new Map;for(let[r,n]of e.reachedFrom){let i=n.filter(t=>"ready"===h(t,e)).length;i&&t.set(r,i)}return t},"readyToScan",0,function(e,t){return(e||[]).filter(e=>"ready"===h(e,t)).sort(a)}],48235)},69083,e=>{"use strict";var t=e.i(89154);let r=new Map(t.INDUSTRIES.map(e=>[e.key,e.color])),n=new Map([...t.INDUSTRIES.map(e=>[e.key,Object.freeze({key:e.key,label:e.label,color:e.color,group:e.key,kind:"industry"})]),...Object.entries({software:["Software & SaaS","tech","function"],"ai-data":["AI & Data","tech","function"],cybersecurity:["Cybersecurity","tech","function"],telecom:["Telecom","tech","industry"],fintech:["Fintech & Payments","finance","industry"],banking:["Banking & Lending","finance","industry"],"vc-pe":["Venture Capital & Private Equity","finance","industry"],wealth:["Wealth & Asset Management","finance","industry"],insurance:["Insurance","finance","industry"],accounting:["Accounting & Tax","finance","function"],crypto:["Crypto & Web3","finance","industry"],hospitals:["Hospitals & Clinics","health","industry"],dental:["Dental","health","industry"],"pharma-biotech":["Pharma & Biotech","health","industry"],"medical-devices":["Medical Devices","health","industry"],"mental-health":["Mental Health","health","industry"],"fitness-wellness":["Fitness & Wellness","health","industry"],veterinary:["Veterinary & Animal Care","health","industry"],k12:["K-12 Education","education","industry"],"higher-ed":["Higher Education","education","industry"],"marketing-advertising":["Marketing & Advertising","media","function"],"pr-comms":["PR & Communications","media","function"],"media-publishing":["Media & Publishing","media","industry"],"creator-economy":["Creator Economy","media","industry"],"film-tv-music":["Film, TV & Music","entertainment","industry"],"gaming-esports":["Gaming & Esports","entertainment","industry"],sports:["Sports","entertainment","industry"],"ecommerce-retail":["E-commerce & Retail","consumer","industry"],"consumer-goods":["Consumer Goods","consumer","industry"],restaurants:["Restaurants & Food Service","consumer","industry"],"hospitality-travel":["Hospitality & Travel","consumer","industry"],"beauty-personal-care":["Beauty & Personal Care","consumer","industry"],logistics:["Logistics & Supply Chain","industry","industry"],manufacturing:["Manufacturing","industry","industry"],energy:["Energy & Utilities","industry","industry"],automotive:["Automotive","industry","industry"],agriculture:["Agriculture & Farming","industry","industry"],"aerospace-defense":["Aerospace & Defense","defense","industry"],military:["Military","defense","industry"],government:["Government & Public Sector","defense","industry"],legal:["Legal","consulting","function"],"management-consulting":["Management Consulting","consulting","function"],"hr-recruiting":["HR & Recruiting","consulting","function"],"security-services":["Security Services","consulting","function"],"real-estate":["Real Estate","realestate","industry"],"construction-trades":["Construction & Trades","realestate","industry"],charities:["Nonprofits & Charities","nonprofit","industry"],"social-work":["Social Work & Human Services","nonprofit","industry"],faith:["Faith & Ministry","nonprofit","industry"]}).map(([e,[n,i,o]])=>[e,Object.freeze({key:e,label:n,color:r.get(i)||t.UNKNOWN_INDUSTRY.color,group:i,kind:o})])]);e.s(["sectorByKey",0,function(e){return n.get(e)||{key:e,label:t.UNKNOWN_INDUSTRY.label,color:t.UNKNOWN_INDUSTRY.color,group:null,kind:null}}])},5258,e=>{"use strict";e.s(["TIER_COLORS",0,{S:"#f6c344",A:"#a78bfa",B:"#60a5fa",C:"#94a3b8",D:"#6b7280"},"TIER_COLORS_CLASSIC",0,{S:"#FFD700",A:"#9B59B6",B:"#3498DB",C:"#95A5A6",D:"#BDC3C7"},"TIER_ORDER",0,["S","A","B","C","D"],"TIER_RING_RADIUS",0,{S:150,A:230,B:310,C:390,D:470},"initialsFor",0,function(e){let t=String(e||"").trim().split(/\s+/).filter(Boolean);return 0===t.length?"?":(t[0].charAt(0)+(t.length>1?t[t.length-1].charAt(0):"")).toUpperCase()}])},22016,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return m},useLinkStatus:function(){return x}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=e.r(90809),l=e.r(43476),a=o._(e.r(71645)),s=e.r(95057),d=e.r(8372),c=e.r(18581),u=e.r(18967),f=e.r(5550),g=e.r(88540),h=e.r(91949),p=e.r(73668),y=e.r(9396);function m(t){var r;let n,i,o,[m,x]=(0,a.useOptimistic)(h.IDLE_LINK_STATUS),v=(0,a.useRef)(null),{href:S,as:j,children:w,prefetch:k=null,passHref:C,replace:_,shallow:I,scroll:B,onClick:R,onMouseEnter:T,onTouchStart:D,legacyBehavior:M=!1,onNavigate:A,transitionTypes:E,ref:F,unstable_dynamicOnHover:z,...P}=t;n=w,M&&("string"==typeof n||"number"==typeof n)&&(n=(0,l.jsx)("a",{children:n}));let O=a.default.useContext(d.AppRouterContext),N=!1!==k,W=!1===k?"none":!0===k?"full":"auto",L="none"!==W?"auto"===W?y.FetchStrategy.PPR:y.FetchStrategy.Full:y.FetchStrategy.PPR,U="string"==typeof(r=j||S)?r:(0,s.formatUrl)(r);if(M){if(n?.$$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});i=a.default.Children.only(n)}let $=M?i&&"object"==typeof i&&i.ref:F,K,H=a.default.useCallback(e=>(null!==O&&(v.current=(0,h.mountLinkInstance)(e,U,O,L,N,x,K)),()=>{v.current&&((0,h.unmountLinkForCurrentNavigation)(v.current),v.current=null),(0,h.unmountPrefetchableInstance)(e)}),[N,U,O,L,x,K]),V={ref:(0,c.useMergedRef)(H,$),onClick(t){M||"function"!=typeof R||R(t),M&&i.props&&"function"==typeof i.props.onClick&&i.props.onClick(t),!O||t.defaultPrevented||function(t,r,n,i,o,l,s,d="none"){if("u">typeof window){let c,{nodeName:u}=t.currentTarget;if("A"===u.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,p.isLocalURL)(r)){i&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),l){let e=!1;if(l({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:f}=e.r(99781);a.default.startTransition(()=>{f(r,i?"replace":"push",!1===o?g.ScrollBehavior.NoScroll:g.ScrollBehavior.Default,n.current,s,d)})}}(t,U,v,_,B,A,E,W)},onMouseEnter(e){M||"function"!=typeof T||T(e),M&&i.props&&"function"==typeof i.props.onMouseEnter&&i.props.onMouseEnter(e),O&&N&&(0,h.onNavigationIntent)(e.currentTarget,!0===z)},onTouchStart:function(e){M||"function"!=typeof D||D(e),M&&i.props&&"function"==typeof i.props.onTouchStart&&i.props.onTouchStart(e),O&&N&&(0,h.onNavigationIntent)(e.currentTarget,!0===z)}};return(0,u.isAbsoluteUrl)(U)?V.href=U:M&&!C&&("a"!==i.type||"href"in i.props)||(V.href=(0,f.addBasePath)(U)),o=M?a.default.cloneElement(i,V):(0,l.jsx)("a",{...P,...V,children:n}),(0,l.jsx)(b.Provider,{value:m,children:o})}let b=(0,a.createContext)(h.IDLE_LINK_STATUS),x=()=>(0,a.useContext)(b);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return i}});let n=e.r(71645);function i(e,t){let r=(0,n.useRef)(null),i=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=i.current;t&&(i.current=null,t())}else e&&(r.current=o(e,n)),t&&(i.current=o(t,n))},[e,t])}function o(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18967,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return m},MiddlewareNotFoundError:function(){return S},MissingStaticPage:function(){return v},NormalizeError:function(){return b},PageNotFoundError:function(){return x},SP:function(){return p},ST:function(){return y},WEB_VITALS:function(){return o},execOnce:function(){return l},getDisplayName:function(){return u},getLocationOrigin:function(){return d},getURL:function(){return c},isAbsoluteUrl:function(){return s},isResSent:function(){return f},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return g},stringifyError:function(){return j}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=["CLS","FCP","FID","INP","LCP","TTFB"];function l(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let a=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,s=e=>{let t=e.charCodeAt(0);return!!(t>=65&&t<=90||t>=97&&t<=122)&&a.test(e)};function d(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function c(){let{href:e}=window.location,t=d();return e.substring(t.length)}function u(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function g(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function h(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await h(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&f(r))return n;if(!n)throw Object.defineProperty(Error(`"${u(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return n}let p="u">typeof performance,y=p&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class m extends Error{}class b extends Error{}class x 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 j(e){return JSON.stringify({message:e.message,stack:e.stack})}},73668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return o}});let n=e.r(18967),i=e.r(52817);function o(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,i.hasBasePath)(r.pathname)}catch(e){return!1}}},98183,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return s},searchParamsToUrlQuery:function(){return o},urlQueryToSearchParams:function(){return a}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});function o(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function l(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function a(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,l(e));else t.set(r,l(n));return t}function s(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},95057,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return a},formatWithValidation:function(){return d},urlObjectKeys:function(){return s}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=e.r(90809)._(e.r(98183)),l=/https?|ftp|gopher|file/;function a(e){let{auth:t,hostname:r}=e,n=e.protocol||"",i=e.pathname||"",a=e.hash||"",s=e.query||"",d=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?d=t+e.host:r&&(d=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(d+=":"+e.port)),s&&"object"==typeof s&&(s=String(o.urlQueryToSearchParams(s)));let c=e.search||s&&`?${s}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||l.test(n))&&!1!==d?(d="//"+(d||""),i&&"/"!==i[0]&&(i="/"+i)):d||(d=""),a&&"#"!==a[0]&&(a="#"+a),c&&"?"!==c[0]&&(c="?"+c),i=i.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${n}${d}${i}${c}${a}`}let s=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function d(e){return a(e)}}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,2776,e=>{"use strict";var t=e.i(43476),r=e.i(15812);e.s(["default",0,function({children:e}){let{userId:n,ready:i}=(0,r.useUser)();return i&&n?e:(0,t.jsx)("div",{style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",background:"#0a0a1a",color:"#fff",padding:24,textAlign:"center",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'},children:i?(0,t.jsxs)("div",{style:{maxWidth:420},children:[(0,t.jsx)("div",{style:{fontSize:18,fontWeight:700,marginBottom:8},children:"Can’t reach Six Degrees’ local server"}),(0,t.jsx)("div",{style:{color:"#888",fontSize:14,lineHeight:1.6},children:"The page loaded but the app behind it is not answering. If you started it from a terminal, check that window for an error, then reload this page."})]}):(0,t.jsx)("div",{style:{fontSize:18,fontWeight:600},children:"Loading…"})})}])},99201,e=>{"use strict";var t=e.i(43476),r=e.i(71645),n=e.i(19821),i=e.i(5258),o=e.i(48235);let l={height:10,borderRadius:6},a={background:"rgba(52,152,219,0.06)",borderRadius:12,padding:20,marginBottom:24,border:"1px solid rgba(52,152,219,0.2)"};function s({degree1:e=[],degree2:r=[],skips:n=[]}){let c=function(e=[],t=[],r=[]){let n=(0,o.reachIndex)(e,t,{skips:r}),i=e=>{let t=(0,o.circleState)(e,n);return"scanned"===t?"mapped":t},l={mapped:0,hidden:0,todo:0},a={};for(let t of e){let e=i(t);l[e]+=1;let r=t.tier||"D";a[r]=a[r]||{mapped:0,hidden:0,todo:0,total:0},a[r][e]+=1,a[r].total+=1}let s=e.length,d=l.mapped+l.hidden;return{...l,total:s,resolved:d,percent:s?Math.round(d/s*100):0,batches:Math.ceil(l.todo/25),byTier:a}}(e,r,n);if(!c.total)return null;let u=e=>c.total?e/c.total*100:0,f=0===c.todo;return(0,t.jsxs)("div",{style:a,children:[(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"baseline",marginBottom:10},children:[(0,t.jsx)("h3",{style:{fontSize:14,fontWeight:700,margin:0,color:"#3498DB"},children:"2nd-degree mapping"}),(0,t.jsx)("span",{style:{fontSize:12,color:f?"#00ff88":"#8b9a9a",fontWeight:600},children:f?"Everything reachable is mapped":`${c.percent}%`})]}),(0,t.jsxs)("div",{style:{...l,display:"flex",overflow:"hidden",background:"rgba(255,255,255,0.06)"},children:[(0,t.jsx)("div",{style:{width:`${u(c.mapped)}%`,background:"#00ff88"}}),(0,t.jsx)("div",{style:{width:`${u(c.hidden)}%`,background:"rgba(255,255,255,0.22)"}})]}),(0,t.jsxs)("div",{style:{display:"flex",gap:16,marginTop:10,fontSize:12,flexWrap:"wrap"},children:[(0,t.jsx)(d,{color:"#00ff88",label:"mapped",value:c.mapped}),(0,t.jsx)(d,{color:"rgba(255,255,255,0.35)",label:"hidden",value:c.hidden}),(0,t.jsx)(d,{color:"rgba(255,255,255,0.12)",label:"to go",value:c.todo}),(0,t.jsxs)("span",{style:{color:"#667",marginLeft:"auto"},children:["of ",c.total]})]}),c.hidden>0&&(0,t.jsx)("p",{style:{fontSize:11.5,color:"#667",margin:"10px 0 0",lineHeight:1.6},children:"Hidden means they keep their connections private — that will not change, and it does not count against you."}),!f&&(0,t.jsxs)("p",{style:{fontSize:11.5,color:"#8b9a9a",margin:"10px 0 0",lineHeight:1.6},children:[c.todo," left — about ",(0,t.jsxs)("b",{children:[c.batches," ",1===c.batches?"batch":"batches"]})," of ",25,". Run one, leave it a while, run another. Long unbroken runs are what gets an account restricted."]}),(0,t.jsx)("div",{style:{marginTop:16,display:"flex",flexDirection:"column",gap:7},children:["S","A","B","C","D"].filter(e=>c.byTier[e]?.total).map(e=>{let r=c.byTier[e];return(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,fontSize:11},children:[(0,t.jsx)("span",{style:{width:14,color:i.TIER_COLORS_CLASSIC[e],fontWeight:700},children:e}),(0,t.jsxs)("div",{style:{flex:1,height:5,borderRadius:3,display:"flex",overflow:"hidden",background:"rgba(255,255,255,0.06)"},children:[(0,t.jsx)("div",{style:{width:`${r.mapped/r.total*100}%`,background:i.TIER_COLORS_CLASSIC[e]}}),(0,t.jsx)("div",{style:{width:`${r.hidden/r.total*100}%`,background:"rgba(255,255,255,0.22)"}})]}),(0,t.jsxs)("span",{style:{color:"#667",width:62,textAlign:"right"},children:[r.mapped,"/",r.total]})]},e)})})]})}function d({color:e,label:r,value:n}){return(0,t.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:6,color:"#8b9a9a"},children:[(0,t.jsx)("span",{style:{width:8,height:8,borderRadius:2,background:e}}),(0,t.jsx)("b",{style:{color:"#e2e8f0"},children:n})," ",r]})}var c=e.i(64745),u=e.i(2776),f=e.i(15812),g=e.i(69083),h=e.i(22016);let p={1:"Observer",11:"Connector",31:"Networker",51:"Strategist",76:"Architect"};function y(){let{userId:e,userName:i,userProfile:o}=(0,f.useUser)(),l=o||{name:i||"User",headline:"",sectors:[],goals:[]},[a,d]=(0,r.useState)(null),[u,y]=(0,r.useState)(!0),[b,x]=(0,r.useState)([]),[v,S]=(0,r.useState)({total:0,sent:0,accepted:0}),[j,w]=(0,r.useState)({degree1:[],degree2:[],skips:[]}),[k,C]=(0,r.useState)(null);if((0,r.useEffect)(()=>{!c.IS_DEMO&&e&&t();async function t(){fetch("/api/settings").then(e=>e.json().then(t=>e.ok&&t.settings?t:Promise.reject(Error(t.error)))).then(e=>C(e.settings.sectorFocus||{sectors:[],strength:"lean"})).catch(()=>C({failed:!0}));let t=await (0,n.loadNetwork)(e),r=t.degree1,i=t.degree2,o={S:0,A:0,B:0,C:0,D:0};r.forEach(e=>{o[e.tier]=(o[e.tier]||0)+1});let l={S:0,A:0,B:0,C:0,D:0};i.forEach(e=>{l[e.tier]=(l[e.tier]||0)+1});let a=[...new Set(i.map(e=>e.source_connection_id).filter(Boolean))].length,s=r.filter(e=>e.is_catalyst).length,c={};r.forEach(e=>{e.company&&(c[e.company]=(c[e.company]||0)+1)});let u=Object.entries(c).sort((e,t)=>t[1]-e[1]).slice(0,10),f=100*o.S+40*o.A+15*o.B+5*o.C+ +o.D+200*a+150*s+50*l.S+r.length,g=Math.floor(Math.sqrt(f/10)),h=g*g*10,p=(g+1)*(g+1)*10;d({d1Count:r.length,d2Count:i.length,tiers:o,d2Tiers:l,clusters:a,catalysts:s,networkPower:f,level:g,xpProgress:(f-h)/(p-h)*100,topCompanies:u,unlockedPaths:0}),fetch("/api/scraper").then(e=>e.json()).then(e=>w({degree1:r,degree2:i,skips:e.skips||[]})).catch(()=>w({degree1:r,degree2:i,skips:[]})),fetch(`/api/notifications?userId=${e}`).then(e=>e.json()).then(e=>x(e.notifications||[])).catch(()=>{}),fetch("/api/queue").then(e=>e.json()).then(e=>{let t=e.items||[];S({total:t.length,sent:t.filter(e=>"sent"===e.status).length,accepted:t.filter(e=>"accepted"===e.status).length})}).catch(()=>{}),y(!1)}},[e]),c.IS_DEMO)return(0,t.jsxs)("div",{style:{minHeight:"100vh",background:"#0a0a1a",color:"rgba(255,255,255,0.7)",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:12,textAlign:"center",padding:24,fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'},children:[(0,t.jsx)("h2",{style:{margin:0,fontSize:20,fontWeight:700,color:"#fff"},children:"Not part of the demo"}),(0,t.jsx)("p",{style:{margin:0,fontSize:13},children:"The public demo includes the Network Circle and Degrees views only."}),(0,t.jsx)(h.default,{href:"/",style:{fontSize:12,color:"rgba(255,255,255,0.5)",textDecoration:"none"},children:"← Back to the network"})]});if(u)return(0,t.jsx)("div",{style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",background:"#0a0a1a",color:"#fff"},children:"Loading profile..."});let _={S:"#FFD700",A:"#9B59B6",B:"#3498DB",C:"#95A5A6",D:"#BDC3C7"},B=[{label:"First S-Tier",done:a.tiers.S>0,icon:"👑"},{label:"100 Connections",done:a.d1Count>=100,icon:"🔗"},{label:"500 Connections",done:a.d1Count>=500,icon:"🌐"},{label:"First Cluster",done:a.clusters>0,icon:"🔭"},{label:"10 Clusters",done:a.clusters>=10,icon:"🏰"},{label:"50 S-Tier",done:a.tiers.S>=50,icon:"💎"},{label:"Catalyst Found",done:a.catalysts>0,icon:"⚡"},{label:"Level 25",done:a.level>=25,icon:"🎯"},{label:"Level 50",done:a.level>=50,icon:"🚀"},{label:"D2 S-Tier > 50",done:a.d2Tiers.S>=50,icon:"🌟"}];return(0,t.jsxs)("div",{style:{height:"100vh",background:"#0a0a1a",color:"#fff",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',display:"flex",flexDirection:"column",overflow:"hidden"},children:[(0,t.jsxs)("header",{style:{padding:"16px 24px",borderBottom:"1px solid rgba(255,255,255,0.1)",display:"flex",alignItems:"center",gap:16},children:[(0,t.jsxs)(h.default,{href:"/",style:{display:"flex",alignItems:"center",gap:6,color:"#888",textDecoration:"none",fontSize:13,fontWeight:600,padding:"6px 14px",borderRadius:6,background:"rgba(255,255,255,0.06)",border:"1px solid rgba(255,255,255,0.1)"},children:[(0,t.jsx)("span",{style:{fontSize:16},children:"←"})," Back to Map"]}),(0,t.jsx)("h1",{style:{fontSize:22,fontWeight:700,margin:0,background:"linear-gradient(135deg, #FFD700, #9B59B6, #3498DB)",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent"},children:"Profile"})]}),(0,t.jsx)("div",{style:{flex:1,overflow:"auto",padding:"30px 20px"},children:(0,t.jsxs)("div",{style:{maxWidth:700,margin:"0 auto"},children:[(0,t.jsxs)("div",{style:{background:"rgba(255,255,255,0.05)",borderRadius:16,padding:32,marginBottom:24,border:"1px solid rgba(255,215,0,0.2)",textAlign:"center"},children:[(0,t.jsx)("div",{style:{width:100,height:100,borderRadius:"50%",margin:"0 auto 16px",background:"linear-gradient(135deg, #FFD700, #FF6B35)",display:"flex",alignItems:"center",justifyContent:"center",fontSize:36,fontWeight:800,color:"#000",boxShadow:"0 0 30px rgba(255,215,0,0.3)"},children:a.level}),(0,t.jsx)("div",{style:{fontSize:24,fontWeight:700,marginBottom:4},children:l.name}),(0,t.jsx)("div",{style:{fontSize:14,color:"#888",marginBottom:4},children:l.headline}),(0,t.jsx)("div",{style:{display:"inline-block",padding:"4px 16px",borderRadius:20,background:"rgba(255,215,0,0.15)",border:"1px solid rgba(255,215,0,0.3)",color:"#FFD700",fontSize:13,fontWeight:700,marginBottom:16},children:function(e){let t="Observer";for(let[r,n]of Object.entries(p))e>=parseInt(r)&&(t=n);return t}(a.level)}),(0,t.jsxs)("div",{style:{maxWidth:300,margin:"0 auto"},children:[(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",fontSize:10,color:"#666",marginBottom:4},children:[(0,t.jsxs)("span",{children:["Level ",a.level]}),(0,t.jsxs)("span",{children:["Level ",a.level+1]})]}),(0,t.jsx)("div",{style:{height:8,background:"rgba(255,255,255,0.1)",borderRadius:4},children:(0,t.jsx)("div",{style:{height:"100%",width:`${Math.min(a.xpProgress,100)}%`,background:"linear-gradient(90deg, #FFD700, #FF6B35)",borderRadius:4,transition:"width 1s ease"}})}),(0,t.jsxs)("div",{style:{fontSize:10,color:"#888",marginTop:4},children:["Network Power: ",a.networkPower.toLocaleString()]})]})]}),(0,t.jsx)(s,{degree1:j.degree1,degree2:j.degree2,skips:j.skips}),(0,t.jsxs)("div",{style:{background:"rgba(255,107,53,0.06)",borderRadius:12,padding:20,marginBottom:24,border:"1px solid rgba(255,107,53,0.2)"},children:[(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:12},children:[(0,t.jsx)("h3",{style:{fontSize:14,fontWeight:700,margin:0,color:"#FF6B35"},children:"Queue Progress"}),(0,t.jsx)(h.default,{href:"/queue",style:{fontSize:11,color:"#FF6B35",textDecoration:"none",fontWeight:600},children:"View Queue →"})]}),(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gap:12},children:[(0,t.jsxs)("div",{style:{textAlign:"center"},children:[(0,t.jsx)("div",{style:{fontSize:22,fontWeight:700,color:"#FFA500"},children:v.total}),(0,t.jsx)("div",{style:{fontSize:10,color:"#888"},children:"In Queue"})]}),(0,t.jsxs)("div",{style:{textAlign:"center"},children:[(0,t.jsx)("div",{style:{fontSize:22,fontWeight:700,color:"#3498DB"},children:v.sent}),(0,t.jsx)("div",{style:{fontSize:10,color:"#888"},children:"Sent"})]}),(0,t.jsxs)("div",{style:{textAlign:"center"},children:[(0,t.jsx)("div",{style:{fontSize:22,fontWeight:700,color:"#00ff88"},children:v.accepted}),(0,t.jsx)("div",{style:{fontSize:10,color:"#888"},children:"Accepted"})]})]})]}),b.length>0&&(0,t.jsxs)("div",{style:{background:"rgba(255,255,255,0.04)",borderRadius:12,padding:20,marginBottom:24,border:"1px solid rgba(255,255,255,0.08)"},children:[(0,t.jsxs)("h3",{style:{fontSize:14,fontWeight:700,marginTop:0,marginBottom:12},children:["Recent Activity (",b.filter(e=>!e.seen).length," new)"]}),(0,t.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6,maxHeight:200,overflowY:"auto"},children:b.slice(0,10).map(e=>(0,t.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center",padding:"6px 8px",borderRadius:6,background:e.seen?"transparent":"rgba(255,215,0,0.05)",borderLeft:e.seen?"none":"2px solid #FFD700"},children:[(0,t.jsx)("span",{style:{fontSize:16},children:e.icon||"📌"}),(0,t.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,t.jsx)("div",{style:{fontSize:12,fontWeight:600,color:e.seen?"#888":"#fff"},children:e.title}),e.message&&(0,t.jsx)("div",{style:{fontSize:10,color:"#666"},children:e.message})]}),(0,t.jsx)("span",{style:{fontSize:9,color:"#555",flexShrink:0},children:new Date(e.created_at).toLocaleDateString()})]},e.id))})]}),(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gap:12,marginBottom:24},children:[(0,t.jsx)(m,{label:"Connections",value:a.d1Count}),(0,t.jsx)(m,{label:"Degree-2 Reach",value:a.d2Count}),(0,t.jsx)(m,{label:"Clusters",value:a.clusters}),(0,t.jsx)(m,{label:"S-Tier",value:a.tiers.S,color:"#FFD700"}),(0,t.jsx)(m,{label:"A-Tier",value:a.tiers.A,color:"#9B59B6"}),(0,t.jsx)(m,{label:"Catalysts",value:a.catalysts,color:"#00ff88"})]}),(0,t.jsxs)("div",{style:{background:"rgba(255,255,255,0.04)",borderRadius:12,padding:20,marginBottom:24,border:"1px solid rgba(255,255,255,0.08)"},children:[(0,t.jsx)("h3",{style:{fontSize:14,fontWeight:700,marginTop:0,marginBottom:12},children:"Tier Distribution"}),["S","A","B","C","D"].map(e=>{let r=a.tiers[e]||0,n=a.d1Count>0?r/a.d1Count*100:0;return(0,t.jsxs)("div",{style:{marginBottom:8},children:[(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",fontSize:11,marginBottom:2},children:[(0,t.jsxs)("span",{style:{color:_[e],fontWeight:600},children:[e,"-Tier"]}),(0,t.jsxs)("span",{style:{color:"#888"},children:[r," (",n.toFixed(1),"%)"]})]}),(0,t.jsx)("div",{style:{height:6,background:"rgba(255,255,255,0.08)",borderRadius:3},children:(0,t.jsx)("div",{style:{height:"100%",width:`${n}%`,background:_[e],borderRadius:3}})})]},e)})]}),(0,t.jsxs)("div",{style:{background:"rgba(255,255,255,0.04)",borderRadius:12,padding:20,marginBottom:24,border:"1px solid rgba(255,255,255,0.08)"},children:[(0,t.jsx)("h3",{style:{fontSize:14,fontWeight:700,marginTop:0,marginBottom:12},children:"Degree-2 Reach"}),(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:12},children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{style:{fontSize:24,fontWeight:700,color:"#FF6B35"},children:a.d2Count}),(0,t.jsx)("div",{style:{fontSize:11,color:"#888"},children:"People reachable via bridges"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{style:{fontSize:24,fontWeight:700,color:"#FFD700"},children:a.d2Tiers.S}),(0,t.jsx)("div",{style:{fontSize:11,color:"#888"},children:"S-Tier degree-2"})]})]})]}),(0,t.jsxs)("div",{style:{background:"rgba(255,255,255,0.04)",borderRadius:12,padding:20,marginBottom:24,border:"1px solid rgba(255,255,255,0.08)"},children:[(0,t.jsxs)("h3",{style:{fontSize:14,fontWeight:700,marginTop:0,marginBottom:12},children:["Milestones (",B.filter(e=>e.done).length,"/",B.length,")"]}),(0,t.jsx)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:8},children:B.map((e,r)=>(0,t.jsxs)("div",{style:{padding:"8px 10px",borderRadius:8,fontSize:12,background:e.done?"rgba(255,215,0,0.08)":"rgba(255,255,255,0.02)",border:`1px solid ${e.done?"rgba(255,215,0,0.2)":"rgba(255,255,255,0.05)"}`,color:e.done?"#FFD700":"#555",display:"flex",alignItems:"center",gap:6},children:[(0,t.jsx)("span",{style:{fontSize:16},children:e.done?e.icon:"🔒"}),(0,t.jsx)("span",{style:{fontWeight:e.done?600:400},children:e.label})]},r))})]}),(0,t.jsxs)("div",{style:{background:"rgba(255,255,255,0.04)",borderRadius:12,padding:20,marginBottom:24,border:"1px solid rgba(255,255,255,0.08)"},children:[(0,t.jsx)("h3",{style:{fontSize:14,fontWeight:700,marginTop:0,marginBottom:12},children:"Top Companies in Your Network"}),a.topCompanies.map(([e,r],n)=>(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",padding:"4px 0",borderBottom:n<a.topCompanies.length-1?"1px solid rgba(255,255,255,0.04)":"none",fontSize:12},children:[(0,t.jsx)("span",{children:e}),(0,t.jsx)("span",{style:{color:"#888"},children:r})]},n))]}),(0,t.jsxs)("div",{style:{background:"rgba(255,255,255,0.04)",borderRadius:12,padding:20,border:"1px solid rgba(255,255,255,0.08)"},children:[(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:12},children:[(0,t.jsx)("h3",{style:{fontSize:14,fontWeight:700,margin:0},children:"Your Sectors"}),(0,t.jsxs)(h.default,{href:"/scores#sector",style:{fontSize:11,color:"#3498DB",textDecoration:"none",fontWeight:600},children:[k?.sectors?.length?"Change":k&&!k.failed?"Pick on Scores":"Scores"," →"]})]}),k?k.failed?(0,t.jsx)("div",{style:{fontSize:12,color:"#ff7676"},children:"Couldn’t load your sectors. Reload this page, or open Settings to see them."}):k.sectors?.length?(0,t.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:6,alignItems:"center"},children:[k.sectors.map(e=>{let r=(0,g.sectorByKey)(e);return(0,t.jsx)("span",{style:{padding:"4px 12px",borderRadius:20,fontSize:11,fontWeight:600,background:`${r.color}26`,border:`1px solid ${r.color}66`,color:r.color},children:r.label},e)}),(0,t.jsxs)("span",{style:{fontSize:11,color:"#888"},children:["strong"===k.strength?"Strong":"Lean",": companies here count for more in your scores."]})]}):(0,t.jsx)("div",{style:{fontSize:12,color:"#888"},children:"None picked. Pick up to three in Settings and companies in them count for more in your scores."}):(0,t.jsx)("div",{style:{fontSize:12,color:"#888"},children:"Loading…"})]})]})})]})}function m({label:e,value:r,color:n}){return(0,t.jsxs)("div",{style:{background:"rgba(255,255,255,0.04)",borderRadius:10,padding:"14px 12px",border:"1px solid rgba(255,255,255,0.08)",textAlign:"center"},children:[(0,t.jsx)("div",{style:{fontSize:22,fontWeight:700,color:n||"#fff"},children:r}),(0,t.jsx)("div",{style:{fontSize:10,color:"#888",marginTop:2},children:e})]})}e.s(["default",0,function(){return(0,t.jsx)(u.default,{children:(0,t.jsx)(y,{})})}],99201)},89154,e=>{"use strict";var t=e.i(90179);function r(e){let r=(0,t.readTitle)(e);return{key:r.key,label:r.label,level:r.level}}function n(e){return(0,t.currentCompany)(e)}let i=[{key:"defense",label:"Government, Defense & Aerospace",color:"#7f8c8d",words:/\b(government|federal|state of|county|city of|defen[cs]e|army|navy|air force|marine corps|military|dod|nasa|aerospace|lockheed|northrop|boeing|raytheon|l3harris|leidos|blue origin|spacex|public sector)\b/i},{key:"finance",label:"Finance & Investing",color:"#2ecc71",words:/\b(bank|banking|capital|ventures?|vc|investments?|investor|fund|private equity|growth equity|asset management|wealth|trading|trader|hedge|crypto|blockchain|web3|defi|fintech|stripe|coinbase|blackrock|robinhood|goldman|morgan stanley|jpmorgan|chase|bny|mellon|wells fargo|citi|citigroup|capital one|fidelity|vanguard|schwab|visa|mastercard|amex|american express|paypal|insurance|accounting|cpa|financial)\b/i},{key:"health",label:"Healthcare & Biotech",color:"#e74c3c",words:/\b(health|healthcare|medical|medicine|hospital|clinic|pharma|pharmaceutical|biotech|nurse|nursing|physician|doctor|dental|therapy|therapist|wellness)\b/i},{key:"education",label:"Education",color:"#f1c40f",words:/\b(university|college|school|education|student|professor|teacher|academy|phd|faculty|alumni)\b/i},{key:"media",label:"Marketing & Media",color:"#e67e22",words:/\b(marketing|brand|branding|advertising|agency|media|content|social media|creative|creator|influencer|pr|public relations|communications|tiktok|pinterest|youtube|growth marketing)\b/i},{key:"entertainment",label:"Entertainment & Gaming",color:"#9b59b6",words:/\b(entertainment|film|movie|music|records|gaming|games?|esports|studio|studios|netflix|disney|spotify|hollywood|theater|theatre|sports)\b/i},{key:"tech",label:"Tech, Software & AI",color:"#3498db",words:/\b(software|saas|engineer|engineering|developer|tech|technology|technologies|ai|artificial intelligence|machine learning|ml|data|cloud|cyber|security|devops|product manager|google|microsoft|apple|meta|amazon|nvidia|openai|anthropic|palantir|salesforce|oracle|ibm|intel|app|apps|startup|platform|labs?)\b/i},{key:"consulting",label:"Consulting, Legal & Services",color:"#1abc9c",words:/\b(consulting|consultant|consultancy|deloitte|accenture|mckinsey|kpmg|pwc|ey|bain|bcg|legal|law|lawyer|attorney|paralegal|recruiting|recruiter|staffing|talent)\b/i},{key:"realestate",label:"Real Estate & Construction",color:"#d35400",words:/\b(real estate|realtor|realty|property|properties|construction|architecture|architect|mortgage|homes|housing|builders?)\b/i},{key:"consumer",label:"Retail, Consumer & Hospitality",color:"#ff79c6",words:/\b(retail|e-?commerce|shopify|consumer|cpg|fashion|apparel|beauty|cosmetics|food|beverage|restaurant|hospitality|hotel|travel|tourism|coca-cola|nike|store|shop)\b/i},{key:"industry",label:"Manufacturing, Energy & Logistics",color:"#95a5a6",words:/\b(manufacturing|energy|oil|gas|solar|utilities|automotive|tesla|siemens|ge|general electric|honeywell|3m|logistics|supply chain|shipping|freight|fedex|ups|industrial|mining|chemicals?)\b/i},{key:"nonprofit",label:"Nonprofit & Community",color:"#bdc3c7",words:/\b(nonprofit|non-profit|foundation|charity|ngo|church|ministry|volunteer)\b/i}],o={key:"unknown",label:"Unclear",color:"#555c66"},l=Object.fromEntries([...i,o].map(e=>[e.key,e])),a=e=>l[e]||o;function s(e,t){for(let r of[e,t]){if(!r)continue;let e=i.find(e=>e.words.test(r));if(e)return e}return o}let d=(e,t)=>s(e,t).key,c=e=>r(e).level>=4;e.s(["INDUSTRIES",0,i,"UNKNOWN_INDUSTRY",0,o,"buildCompanyIndex",0,function(e=[]){let r=new Map,n=e=>(r.has(e)||r.set(e,(0,t.rolesWithCompanies)(e)),r.get(e)),{industries:i}=(0,t.networkCompanies)(e,{industryOf:d,rolesOf:n}),o=new Map;for(let t of e){let e=t.profile_url||`id:${t.id}`,r=o.get(e);(!r||(t.degree||9)<(r.degree||9))&&o.set(e,t)}let l=new Map;for(let e of o.values()){let t=n(e).find(e=>!e.former)?.company;if(!t)continue;let r=l.get(t);r||(r={name:t,people:[],d1:0,d2:0,d3:0,S:0,A:0,senior:0},l.set(t,r)),r.people.push(e),1===e.degree?r.d1++:2===e.degree?r.d2++:r.d3++,"S"===e.tier&&r.S++,"A"===e.tier&&r.A++,c(e.headline)&&r.senior++}for(let e of l.values())e.industry=a(i.get(e.name));return l},"companyLinks",0,function(e=[],t=[]){let r=new Map;for(let t of e){let e=n(t);e&&r.set(t.id,e)}let i=new Map;for(let e of t){let t=r.get(e.source_connection_id),o=n(e);if(!t||!o||t===o)continue;let[l,a]=t<o?[t,o]:[o,t],s=`${l}\u0000${a}`,d=i.get(s);d||(d={a:l,b:a,weight:0,via:new Set},i.set(s,d)),d.weight++,d.via.add(e.source_connection_id)}return[...i.values()]},"companyOf",0,n,"getSeniority",0,r,"industryByKey",0,a,"industryOf",0,s,"isSenior",0,c,"waysInto",0,function(e,t=[],r=[]){let i=t.filter(t=>n(t)===e),o=new Map;for(let t of r)n(t)===e&&o.set(t.source_connection_id,(o.get(t.source_connection_id)||0)+1);let l=new Map(t.map(e=>[e.id,e]));return{direct:i,bridges:[...o.entries()].map(([e,t])=>({bridge:l.get(e),n:t})).filter(e=>e.bridge).sort((e,t)=>t.n-e.n||(Number(t.bridge.power_score)||0)-(Number(e.bridge.power_score)||0))}}])},19821,e=>{"use strict";async function t(e){let t=e?`/api/network?userId=${encodeURIComponent(e)}`:"/api/network",r=await fetch(t);if(!r.ok)throw Error(`Failed to load network (${r.status})`);let n=await r.json();return{degree1:n.degree1||[],degree2:n.degree2||[],degree3:n.degree3||[]}}e.s(["loadNetwork",0,t])},36774,e=>{"use strict";let t=/^[A-Za-z0-9_-]+\.(webp|jpg|jpeg|png)$/,r="/avatars/";e.s(["localPhoto",0,function(e){return"string"==typeof e&&e.startsWith(r)&&t.test(e.slice(r.length))?e:null}])},48235,7214,e=>{"use strict";var t=e.i(36774);let r={S:0,A:1,B:2,C:3,D:4};function n(e){let t=parseFloat(e?.power_score);return Number.isFinite(t)?t:0}function i(e){return Math.round(10*n(e))/10}function o(e){return String(e?.profile_url||"").split(/[?#]/)[0].replace(/\/+$/,"")||`id:${e?.id}`}let l=(e,t)=>String(e??"").localeCompare(String(t??""),void 0,{numeric:!0});function a(e,t){return(r[e.tier]??9)-(r[t.tier]??9)||n(t)-n(e)||String(e.name||"").localeCompare(String(t.name||""))||l(e.id,t.id)}function s(e,t){return e.bridge&&t.bridge?a(e.bridge,t.bridge):e.bridge?-1:t.bridge?1:l(e.id,t.id)}function d(e,t){return t.score-e.score||t.waysIn-e.waysIn||s(e.routes[0]||c,t.routes[0]||c)||String(e.person.name||"").localeCompare(String(t.person.name||""))||(e.key<t.key?-1:+(e.key>t.key))}let c={id:null,bridge:null};function u(e){let t=String(e||"").trim().split(/\s+/).filter(Boolean);return t.length<2?t[0]||"":`${t[0]} ${t[t.length-1].charAt(0)}.`}function f(e,t){let r=String(e||"");return t<=1?r?"…":"":r.length>t?`${r.slice(0,t-1)}…`:r}function g(e,t){return e?t.scanned.has(e.id)||e.profile_url&&t.read?.has(o(e))?"scanned":e.profile_url&&t.hidden.has(o(e))?"hidden":"todo":"todo"}function h(e,t){if(!e||1!==e.degree||null==e.unlocked_from_bridge_id)return null;let r=g(e,t);return"todo"===r?"ready":r}e.s(["TIERS",0,["S","A","B","C","D"],"compareBridges",0,a,"compareWaysIn",0,function(e,t){return t.waysIn-e.waysIn||d(e,t)},"keyFor",0,o,"routeIndex",0,function(e=[]){let t=new Map;for(let r of e||[]){let e=o(r),n=t.get(e);n||(n=new Set,t.set(e,n)),n.add(r.source_connection_id??null)}return t},"routesFor",0,function(e,t,r){return e?[...t?.get(o(e))??(null!=e.source_connection_id?new Set([e.source_connection_id]):new Set)].map(e=>({id:e,bridge:r?.get(e)??null})).sort(s):[]},"score",0,n,"score1",0,i,"separationPeople",0,function(e=[],r=[]){let n=new Map;for(let e of r||[])n.set(e.id,e);let a=new Map,c=new Map;for(let r of e||[]){let e=o(r);c.set(r.id,e);let n=a.get(e);n?function(e,r){let n=i(e)-i(r);if(n)return n>0;let o=!!(0,t.localPhoto)(e.profile_image_url);return!!(0,t.localPhoto)(r.profile_image_url)!==o?o:0>l(e.id,r.id)}(r,n.person)&&(n.person=r):(n={key:e,person:r,rowIds:[],routeIds:new Set},a.set(e,n)),n.rowIds.push(r.id),n.routeIds.add(r.source_connection_id??null)}let u={people:a.size,byTier:{S:0,A:0,B:0,C:0,D:0},multi:0,bridges:0,unresolvedIds:0,peopleOnlyUnresolved:0,onlyUnresolvedVia:0},f=new Set,g=new Set,h=new Set,p=[];for(let e of a.values()){let t=[...e.routeIds].map(e=>({id:e,bridge:n.get(e)??null}));t.sort(s);let r=t.filter(e=>e.bridge);for(let e of t)(e.bridge?f:g).add(e.id);if(!r.length)for(let e of(u.peopleOnlyUnresolved++,t))h.add(e.id);let{person:o}=e,l=o.tier;void 0!==u.byTier[l]&&u.byTier[l]++,t.length>1&&u.multi++,p.push({key:e.key,person:o,score:i(o),tier:l,routes:t,waysIn:t.length,rowIds:e.rowIds,haystack:[o.name,o.headline,o.company,o.role,...r.map(e=>e.bridge.name)].filter(Boolean).join("\n").toLowerCase(),rank:0,tied:!1})}return u.bridges=f.size,u.unresolvedIds=g.size,u.onlyUnresolvedVia=h.size,p.sort(d),function(e){for(let t=0;t<e.length;t++){let r=e[t],n=e[t-1],i=n&&n.score===r.score&&n.waysIn===r.waysIn;r.rank=i?n.rank:t+1,i&&(r.tied=!0,n.tied=!0)}}(p),{people:p,rowToKey:c,summary:u}},"shortName",0,u,"summitLayout",0,function(e=[],t=800,r=!1){let n=r?36:26,i=Math.round(.42*t),o=Math.round(.58*t),l=e.map((e,r)=>{var i;return{key:e.key,p:e,x:o,y:16+r*n,r:(i=e.waysIn)>=4?8.5:3===i?7:2===i?5.5:4,label:f(`#${e.rank}${e.tied?"=":""} ${e.person.name||""}`,Math.floor((t-o-60)/6.2))}}),s=new Map,d="\0unresolved";for(let e of l)for(let t of e.p.routes){let r=t.bridge?t.id:d,n=s.get(r);n||(n={id:t.bridge?t.id:null,bridge:t.bridge,unresolved:!t.bridge,ys:[],count:0},s.set(r,n)),n.count++,n.ys.push(e.y)}let c=[...s.values()].map(e=>({...e,bary:e.ys.reduce((e,t)=>e+t,0)/e.ys.length}));c.sort((e,t)=>e.bary-t.bary||e.unresolved-t.unresolved||(e.bridge&&t.bridge?a(e.bridge,t.bridge):0));let g=l.length?l[l.length-1].y:16,h=c.length>1?Math.max(18,(g-16)/(c.length-1)):0,p=Math.max(4,Math.floor((i-10-42)/6));c.forEach((e,t)=>{if(e.x=i,e.y=1===c.length?(16+g)/2:16+t*h,e.r=5,e.unresolved)e.label=f(`can't be named (${e.count})`,p);else{let t=e.bridge.name||"";e.label=t.length<=p?t:f(u(t),p)}delete e.ys});let y=new Map(c.map(e=>[e.unresolved?d:e.id,e])),m=[];for(let e of l){let t=new Set;e.p.routes.forEach((r,n)=>{let i=r.bridge?r.id:d;if(t.has(i))return;t.add(i);let o=y.get(i);m.push({key:e.key,bridgeId:o.id,primary:0===n&&!o.unresolved,unresolved:o.unresolved,tier:o.bridge?.tier??null,x1:o.x,y1:o.y,x2:e.x,y2:e.y})})}let b=Math.max(g,c.length?c[c.length-1].y:0),x=l.length?Math.ceil(b+16):0,v={x:20,y:l.length?(16+Math.max(g,b))/2:16,r:14},S=c.map(e=>({id:e.id,x1:v.x,y1:v.y,x2:e.x,y2:e.y}));return{width:t,height:x,you:v,people:l,bridges:c,links:m,spokes:S}}],7214),e.s(["circleScanCost",0,function(e=100){let t=Math.max(1,Math.min(100,Math.round(e)||100));return{profileViews:1,searches:t,minutes:t>=100?55:Math.max(5,Math.round(.55*t))}},"circleState",0,g,"reachIndex",0,function(e=[],t=[],r={}){let n=new Set;for(let e of t||[])e?.source_connection_id!=null&&n.add(e.source_connection_id);let i=new Set;for(let e of r?.skips||[])e?.profileUrl&&i.add(o({profile_url:e.profileUrl}));let l=new Set;for(let e of r?.read||[])e&&l.add(o({profile_url:e}));let a=new Map;for(let[e,t]of Object.entries(r?.lists||{}))e&&t&&a.set(o({profile_url:e}),t);let s=new Map;for(let t of e||[]){let e=t?.unlocked_from_bridge_id;if(null==e||1!==t.degree)continue;let r=s.get(e);r||s.set(e,r=[]),r.push(t)}return{scanned:n,read:l,hidden:i,reachedFrom:s,lists:a}},"reachState",0,h,"readyByCircle",0,function(e){let t=new Map;for(let[r,n]of e.reachedFrom){let i=n.filter(t=>"ready"===h(t,e)).length;i&&t.set(r,i)}return t},"readyToScan",0,function(e,t){return(e||[]).filter(e=>"ready"===h(e,t)).sort(a)},"scanBars",0,function(e,t){let r=g(e,t),n=e?.profile_url?t.lists?.get(o(e)):null;return"hidden"===r?null:n?n.more?n.total?Math.max(1,Math.min(4,Math.round(5*Math.min(1,10*n.pages/n.total)))):2:5:"scanned"===r?2:null}],48235)},69083,e=>{"use strict";var t=e.i(89154);let r=new Map(t.INDUSTRIES.map(e=>[e.key,e.color])),n=new Map([...t.INDUSTRIES.map(e=>[e.key,Object.freeze({key:e.key,label:e.label,color:e.color,group:e.key,kind:"industry"})]),...Object.entries({software:["Software & SaaS","tech","function"],"ai-data":["AI & Data","tech","function"],cybersecurity:["Cybersecurity","tech","function"],telecom:["Telecom","tech","industry"],fintech:["Fintech & Payments","finance","industry"],banking:["Banking & Lending","finance","industry"],"vc-pe":["Venture Capital & Private Equity","finance","industry"],wealth:["Wealth & Asset Management","finance","industry"],insurance:["Insurance","finance","industry"],accounting:["Accounting & Tax","finance","function"],crypto:["Crypto & Web3","finance","industry"],hospitals:["Hospitals & Clinics","health","industry"],dental:["Dental","health","industry"],"pharma-biotech":["Pharma & Biotech","health","industry"],"medical-devices":["Medical Devices","health","industry"],"mental-health":["Mental Health","health","industry"],"fitness-wellness":["Fitness & Wellness","health","industry"],veterinary:["Veterinary & Animal Care","health","industry"],k12:["K-12 Education","education","industry"],"higher-ed":["Higher Education","education","industry"],"marketing-advertising":["Marketing & Advertising","media","function"],"pr-comms":["PR & Communications","media","function"],"media-publishing":["Media & Publishing","media","industry"],"creator-economy":["Creator Economy","media","industry"],"film-tv-music":["Film, TV & Music","entertainment","industry"],"gaming-esports":["Gaming & Esports","entertainment","industry"],sports:["Sports","entertainment","industry"],"ecommerce-retail":["E-commerce & Retail","consumer","industry"],"consumer-goods":["Consumer Goods","consumer","industry"],restaurants:["Restaurants & Food Service","consumer","industry"],"hospitality-travel":["Hospitality & Travel","consumer","industry"],"beauty-personal-care":["Beauty & Personal Care","consumer","industry"],logistics:["Logistics & Supply Chain","industry","industry"],manufacturing:["Manufacturing","industry","industry"],energy:["Energy & Utilities","industry","industry"],automotive:["Automotive","industry","industry"],agriculture:["Agriculture & Farming","industry","industry"],"aerospace-defense":["Aerospace & Defense","defense","industry"],military:["Military","defense","industry"],government:["Government & Public Sector","defense","industry"],legal:["Legal","consulting","function"],"management-consulting":["Management Consulting","consulting","function"],"hr-recruiting":["HR & Recruiting","consulting","function"],"security-services":["Security Services","consulting","function"],"real-estate":["Real Estate","realestate","industry"],"construction-trades":["Construction & Trades","realestate","industry"],charities:["Nonprofits & Charities","nonprofit","industry"],"social-work":["Social Work & Human Services","nonprofit","industry"],faith:["Faith & Ministry","nonprofit","industry"]}).map(([e,[n,i,o]])=>[e,Object.freeze({key:e,label:n,color:r.get(i)||t.UNKNOWN_INDUSTRY.color,group:i,kind:o})])]);e.s(["sectorByKey",0,function(e){return n.get(e)||{key:e,label:t.UNKNOWN_INDUSTRY.label,color:t.UNKNOWN_INDUSTRY.color,group:null,kind:null}}])},5258,e=>{"use strict";e.s(["TIER_COLORS",0,{S:"#f6c344",A:"#a78bfa",B:"#60a5fa",C:"#94a3b8",D:"#6b7280"},"TIER_COLORS_CLASSIC",0,{S:"#FFD700",A:"#9B59B6",B:"#3498DB",C:"#95A5A6",D:"#BDC3C7"},"TIER_ORDER",0,["S","A","B","C","D"],"TIER_RING_RADIUS",0,{S:150,A:230,B:310,C:390,D:470},"initialsFor",0,function(e){let t=String(e||"").trim().split(/\s+/).filter(Boolean);return 0===t.length?"?":(t[0].charAt(0)+(t.length>1?t[t.length-1].charAt(0):"")).toUpperCase()}])},22016,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return m},useLinkStatus:function(){return x}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=e.r(90809),l=e.r(43476),a=o._(e.r(71645)),s=e.r(95057),d=e.r(8372),c=e.r(18581),u=e.r(18967),f=e.r(5550),g=e.r(88540),h=e.r(91949),p=e.r(73668),y=e.r(9396);function m(t){var r;let n,i,o,[m,x]=(0,a.useOptimistic)(h.IDLE_LINK_STATUS),v=(0,a.useRef)(null),{href:S,as:j,children:w,prefetch:k=null,passHref:C,replace:_,shallow:B,scroll:I,onClick:R,onMouseEnter:T,onTouchStart:M,legacyBehavior:D=!1,onNavigate:A,transitionTypes:E,ref:F,unstable_dynamicOnHover:z,...P}=t;n=w,D&&("string"==typeof n||"number"==typeof n)&&(n=(0,l.jsx)("a",{children:n}));let O=a.default.useContext(d.AppRouterContext),N=!1!==k,W=!1===k?"none":!0===k?"full":"auto",L="none"!==W?"auto"===W?y.FetchStrategy.PPR:y.FetchStrategy.Full:y.FetchStrategy.PPR,U="string"==typeof(r=j||S)?r:(0,s.formatUrl)(r);if(D){if(n?.$$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});i=a.default.Children.only(n)}let $=D?i&&"object"==typeof i&&i.ref:F,K,H=a.default.useCallback(e=>(null!==O&&(v.current=(0,h.mountLinkInstance)(e,U,O,L,N,x,K)),()=>{v.current&&((0,h.unmountLinkForCurrentNavigation)(v.current),v.current=null),(0,h.unmountPrefetchableInstance)(e)}),[N,U,O,L,x,K]),V={ref:(0,c.useMergedRef)(H,$),onClick(t){D||"function"!=typeof R||R(t),D&&i.props&&"function"==typeof i.props.onClick&&i.props.onClick(t),!O||t.defaultPrevented||function(t,r,n,i,o,l,s,d="none"){if("u">typeof window){let c,{nodeName:u}=t.currentTarget;if("A"===u.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,p.isLocalURL)(r)){i&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),l){let e=!1;if(l({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:f}=e.r(99781);a.default.startTransition(()=>{f(r,i?"replace":"push",!1===o?g.ScrollBehavior.NoScroll:g.ScrollBehavior.Default,n.current,s,d)})}}(t,U,v,_,I,A,E,W)},onMouseEnter(e){D||"function"!=typeof T||T(e),D&&i.props&&"function"==typeof i.props.onMouseEnter&&i.props.onMouseEnter(e),O&&N&&(0,h.onNavigationIntent)(e.currentTarget,!0===z)},onTouchStart:function(e){D||"function"!=typeof M||M(e),D&&i.props&&"function"==typeof i.props.onTouchStart&&i.props.onTouchStart(e),O&&N&&(0,h.onNavigationIntent)(e.currentTarget,!0===z)}};return(0,u.isAbsoluteUrl)(U)?V.href=U:D&&!C&&("a"!==i.type||"href"in i.props)||(V.href=(0,f.addBasePath)(U)),o=D?a.default.cloneElement(i,V):(0,l.jsx)("a",{...P,...V,children:n}),(0,l.jsx)(b.Provider,{value:m,children:o})}let b=(0,a.createContext)(h.IDLE_LINK_STATUS),x=()=>(0,a.useContext)(b);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return i}});let n=e.r(71645);function i(e,t){let r=(0,n.useRef)(null),i=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=i.current;t&&(i.current=null,t())}else e&&(r.current=o(e,n)),t&&(i.current=o(t,n))},[e,t])}function o(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18967,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return m},MiddlewareNotFoundError:function(){return S},MissingStaticPage:function(){return v},NormalizeError:function(){return b},PageNotFoundError:function(){return x},SP:function(){return p},ST:function(){return y},WEB_VITALS:function(){return o},execOnce:function(){return l},getDisplayName:function(){return u},getLocationOrigin:function(){return d},getURL:function(){return c},isAbsoluteUrl:function(){return s},isResSent:function(){return f},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return g},stringifyError:function(){return j}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=["CLS","FCP","FID","INP","LCP","TTFB"];function l(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let a=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,s=e=>{let t=e.charCodeAt(0);return!!(t>=65&&t<=90||t>=97&&t<=122)&&a.test(e)};function d(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function c(){let{href:e}=window.location,t=d();return e.substring(t.length)}function u(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function g(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function h(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await h(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&f(r))return n;if(!n)throw Object.defineProperty(Error(`"${u(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return n}let p="u">typeof performance,y=p&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class m extends Error{}class b extends Error{}class x 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 j(e){return JSON.stringify({message:e.message,stack:e.stack})}},73668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return o}});let n=e.r(18967),i=e.r(52817);function o(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,i.hasBasePath)(r.pathname)}catch(e){return!1}}},98183,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return s},searchParamsToUrlQuery:function(){return o},urlQueryToSearchParams:function(){return a}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});function o(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function l(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function a(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,l(e));else t.set(r,l(n));return t}function s(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},95057,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return a},formatWithValidation:function(){return d},urlObjectKeys:function(){return s}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=e.r(90809)._(e.r(98183)),l=/https?|ftp|gopher|file/;function a(e){let{auth:t,hostname:r}=e,n=e.protocol||"",i=e.pathname||"",a=e.hash||"",s=e.query||"",d=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?d=t+e.host:r&&(d=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(d+=":"+e.port)),s&&"object"==typeof s&&(s=String(o.urlQueryToSearchParams(s)));let c=e.search||s&&`?${s}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||l.test(n))&&!1!==d?(d="//"+(d||""),i&&"/"!==i[0]&&(i="/"+i)):d||(d=""),a&&"#"!==a[0]&&(a="#"+a),c&&"?"!==c[0]&&(c="?"+c),i=i.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${n}${d}${i}${c}${a}`}let s=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function d(e){return a(e)}}]);
|
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.4.2] - 2026-09-29
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
- **Orbit goes past 2nd degree.** Someone you added through a circle, whose own circle is
|
|
13
|
+
scanned, now sits in the fan of the circle they came from, green-ringed, and their people fan
|
|
14
|
+
out behind them a band further out, fainter, with a faint line to each. Their added people's
|
|
15
|
+
circles go further out again, to 6th degree. Before, they sat on the ring as one more bridge,
|
|
16
|
+
and Orbit showed only 2nd degree.
|
|
17
|
+
- **A ring round each connection's dot.** Five thin bars show how much of their circle is
|
|
18
|
+
scanned: all five once their list is read to the end, and part-way the pages read against
|
|
19
|
+
LinkedIn's own count of the list, which scans now keep (no extra traffic). Lists read before
|
|
20
|
+
scans kept a count show two. A small badge counts the people in their circle ready to scan,
|
|
21
|
+
and a catalyst is the green outline on the dot. It's on the Galaxy and on Bridge Chains'
|
|
22
|
+
bridges.
|
|
23
|
+
|
|
24
|
+
### Changed
|
|
25
|
+
- **The Galaxy in bands when more than your connections are drawn.** With 2nd (or 3rd) degree
|
|
26
|
+
on, your connections sit on a tighter inner ring, their circles in a band outside it, and past
|
|
27
|
+
someone you added through a circle, their people further out again. Each band is sorted by
|
|
28
|
+
tier, S nearest, and has a faint label. Lines follow the chain: from you to your connections,
|
|
29
|
+
from each connection to their circle, and from someone you added to theirs. Your connections
|
|
30
|
+
alone keep the roomier tier rings.
|
|
31
|
+
|
|
32
|
+
### Removed
|
|
33
|
+
- **The "N only here" line under each bridge in Bridge Chains.** Their card still says who is
|
|
34
|
+
reached only through them.
|
|
35
|
+
|
|
9
36
|
## [0.4.1] - 2026-09-29
|
|
10
37
|
|
|
11
38
|
### Added
|
package/lib/dot-rings.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// The thin ring of five bars round a person's dot: how much of their circle is
|
|
2
|
+
// scanned (lib/reach.js scanBars). Blake's pick, design C: thin bars, a
|
|
3
|
+
// catalyst's green outline on the dot itself, a small count badge.
|
|
4
|
+
//
|
|
5
|
+
// Plain path strings, so the Galaxy (d3) and Bridge Chains (React) draw the
|
|
6
|
+
// same shape. Bars run clockwise from the top.
|
|
7
|
+
|
|
8
|
+
const GAP = 0.32; // radians between bars
|
|
9
|
+
|
|
10
|
+
/** Five arcs of radius r around (0, 0): [{ d, i }] */
|
|
11
|
+
export function ringSegments(r) {
|
|
12
|
+
const span = (2 * Math.PI - 5 * GAP) / 5;
|
|
13
|
+
return Array.from({ length: 5 }, (_, i) => {
|
|
14
|
+
const a0 = -Math.PI / 2 + GAP / 2 + i * (span + GAP);
|
|
15
|
+
const a1 = a0 + span;
|
|
16
|
+
const p = (a) => `${(r * Math.cos(a)).toFixed(2)} ${(r * Math.sin(a)).toFixed(2)}`;
|
|
17
|
+
return { i, d: `M${p(a0)} A${r} ${r} 0 0 1 ${p(a1)}` };
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export const RING = { filled: '#1abc9c', empty: 'rgba(255,255,255,0.16)', badge: '#7F77DD' };
|
package/lib/reach.js
CHANGED
|
@@ -45,6 +45,10 @@ export function reachIndex(connections = [], degree2 = [], notes = {}) {
|
|
|
45
45
|
for (const url of notes?.read || []) {
|
|
46
46
|
if (url) read.add(keyFor({ profile_url: url }));
|
|
47
47
|
}
|
|
48
|
+
const lists = new Map();
|
|
49
|
+
for (const [url, list] of Object.entries(notes?.lists || {})) {
|
|
50
|
+
if (url && list) lists.set(keyFor({ profile_url: url }), list);
|
|
51
|
+
}
|
|
48
52
|
const reachedFrom = new Map();
|
|
49
53
|
for (const row of connections || []) {
|
|
50
54
|
const from = row?.unlocked_from_bridge_id;
|
|
@@ -53,7 +57,7 @@ export function reachIndex(connections = [], degree2 = [], notes = {}) {
|
|
|
53
57
|
if (!list) reachedFrom.set(from, (list = []));
|
|
54
58
|
list.push(row);
|
|
55
59
|
}
|
|
56
|
-
return { scanned, read, hidden, reachedFrom };
|
|
60
|
+
return { scanned, read, hidden, reachedFrom, lists };
|
|
57
61
|
}
|
|
58
62
|
|
|
59
63
|
/**
|
|
@@ -111,3 +115,20 @@ export function circleScanCost(pages = 100) {
|
|
|
111
115
|
minutes: searches >= 100 ? 55 : Math.max(5, Math.round(searches * 0.55)),
|
|
112
116
|
};
|
|
113
117
|
}
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* How much of someone's circle is scanned, as 0–5 bars for the ring round
|
|
121
|
+
* their dot; null for no ring (not scanned, or their list is hidden).
|
|
122
|
+
* A list read to the end is 5. Part-read, it's the pages read against
|
|
123
|
+
* LinkedIn's own count of the list (about 10 a page), 1 to 4; with no count
|
|
124
|
+
* (read before the scanner kept one), 2.
|
|
125
|
+
*/
|
|
126
|
+
export function scanBars(person, reach) {
|
|
127
|
+
const state = circleState(person, reach);
|
|
128
|
+
const list = person?.profile_url ? reach.lists?.get(keyFor(person)) : null;
|
|
129
|
+
if (state === 'hidden') return null;
|
|
130
|
+
if (!list) return state === 'scanned' ? 2 : null;
|
|
131
|
+
if (!list.more) return 5;
|
|
132
|
+
if (!list.total) return 2;
|
|
133
|
+
return Math.max(1, Math.min(4, Math.round((5 * Math.min(1, (list.pages * 10) / list.total)))));
|
|
134
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "six-degrees",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"description": "Map your professional network as a galaxy — leverage tiers, bridges into new circles, and the shortest path to anyone. Runs locally on your own data.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Blake Burford",
|
package/scripts/scrape.py
CHANGED
|
@@ -1701,6 +1701,12 @@ def _change_progress(change):
|
|
|
1701
1701
|
print(f" (could not note how far this read got: {exc})")
|
|
1702
1702
|
|
|
1703
1703
|
|
|
1704
|
+
# How long each list is, from LinkedIn's "About N results" line on the first
|
|
1705
|
+
# page read (RESULT_COUNT_JS), kept until the read's progress is written: the
|
|
1706
|
+
# app's rings round a dot show pages read against it. Approximate, like the line.
|
|
1707
|
+
_LIST_TOTALS = {}
|
|
1708
|
+
|
|
1709
|
+
|
|
1704
1710
|
def record_bridge_progress(profile_url, name, pages, more, urn=None):
|
|
1705
1711
|
"""Note that someone's connections have been read through page `pages`.
|
|
1706
1712
|
|
|
@@ -1717,6 +1723,9 @@ def record_bridge_progress(profile_url, name, pages, more, urn=None):
|
|
|
1717
1723
|
"at": datetime.now().isoformat(timespec="seconds")}
|
|
1718
1724
|
if urn or old.get("urn"):
|
|
1719
1725
|
entry["urn"] = urn or old.get("urn")
|
|
1726
|
+
total = _LIST_TOTALS.get(profile_url) or old.get("total")
|
|
1727
|
+
if total:
|
|
1728
|
+
entry["total"] = int(total)
|
|
1720
1729
|
mine[profile_url] = entry
|
|
1721
1730
|
_change_progress(change)
|
|
1722
1731
|
|
|
@@ -2478,6 +2487,7 @@ def _scrape_one_bridge(page, bridge_name, bridge_id, profile_url, max_pages=LINK
|
|
|
2478
2487
|
except Exception:
|
|
2479
2488
|
total = None
|
|
2480
2489
|
if total:
|
|
2490
|
+
_LIST_TOTALS[profile_url] = int(total)
|
|
2481
2491
|
pages = -(-total // 10)
|
|
2482
2492
|
print(f" About {total:,} results in their list: {pages} pages"
|
|
2483
2493
|
+ (f", and LinkedIn shows the first {LINKEDIN_MAX_PAGES}." if pages > LINKEDIN_MAX_PAGES else "."))
|