six-degrees 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (470) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +10 -0
  3. package/.next/standalone/.next/build-manifest.json +3 -3
  4. package/.next/standalone/.next/prerender-manifest.json +39 -11
  5. package/.next/standalone/.next/required-server-files.json +4 -1
  6. package/.next/standalone/.next/routes-manifest.json +60 -0
  7. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  8. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  12. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  14. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  15. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  17. package/.next/standalone/.next/server/app/_not-found.rsc +10 -10
  18. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +10 -10
  19. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +9 -9
  20. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  21. package/.next/standalone/.next/server/app/api/admin-delete/route.js +3 -2
  22. package/.next/standalone/.next/server/app/api/admin-delete/route.js.nft.json +1 -1
  23. package/.next/standalone/.next/server/app/api/admin-update/route.js +3 -2
  24. package/.next/standalone/.next/server/app/api/admin-update/route.js.nft.json +1 -1
  25. package/.next/standalone/.next/server/app/api/bridges/route.js +3 -2
  26. package/.next/standalone/.next/server/app/api/bridges/route.js.nft.json +1 -1
  27. package/.next/standalone/.next/server/app/api/bulk-import/route.js +3 -2
  28. package/.next/standalone/.next/server/app/api/bulk-import/route.js.nft.json +1 -1
  29. package/.next/standalone/.next/server/app/api/company-scores/legacy/route/app-paths-manifest.json +3 -0
  30. package/.next/standalone/.next/server/app/api/company-scores/legacy/route/build-manifest.json +12 -0
  31. package/.next/standalone/.next/server/app/api/company-scores/legacy/route/server-reference-manifest.json +4 -0
  32. package/.next/standalone/.next/server/app/api/company-scores/legacy/route.js +9 -0
  33. package/.next/standalone/.next/server/app/api/company-scores/legacy/route.js.map +5 -0
  34. package/.next/standalone/.next/server/app/api/company-scores/legacy/route.js.nft.json +1 -0
  35. package/.next/standalone/.next/server/app/api/company-scores/legacy/route_client-reference-manifest.js +3 -0
  36. package/.next/standalone/.next/server/app/api/company-scores/route.js +3 -2
  37. package/.next/standalone/.next/server/app/api/company-scores/route.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/api/connections/route.js +3 -2
  39. package/.next/standalone/.next/server/app/api/connections/route.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/api/data/export/route/app-paths-manifest.json +3 -0
  41. package/.next/standalone/.next/server/app/api/data/export/route/build-manifest.json +12 -0
  42. package/.next/standalone/.next/server/app/api/data/export/route/server-reference-manifest.json +4 -0
  43. package/.next/standalone/.next/server/app/api/data/export/route.js +7 -0
  44. package/.next/standalone/.next/server/app/api/data/export/route.js.map +5 -0
  45. package/.next/standalone/.next/server/app/api/data/export/route.js.nft.json +1 -0
  46. package/.next/standalone/.next/server/app/api/data/export/route_client-reference-manifest.js +3 -0
  47. package/.next/standalone/.next/server/app/api/data/import/route/app-paths-manifest.json +3 -0
  48. package/.next/standalone/.next/server/app/api/data/import/route/build-manifest.json +12 -0
  49. package/.next/standalone/.next/server/app/api/data/import/route/server-reference-manifest.json +4 -0
  50. package/.next/standalone/.next/server/app/api/data/import/route.js +8 -0
  51. package/.next/standalone/.next/server/app/api/data/import/route.js.map +5 -0
  52. package/.next/standalone/.next/server/app/api/data/import/route.js.nft.json +1 -0
  53. package/.next/standalone/.next/server/app/api/data/import/route_client-reference-manifest.js +3 -0
  54. package/.next/standalone/.next/server/app/api/data/restart/route/app-paths-manifest.json +3 -0
  55. package/.next/standalone/.next/server/app/api/data/restart/route/build-manifest.json +12 -0
  56. package/.next/standalone/.next/server/app/api/data/restart/route/server-reference-manifest.json +4 -0
  57. package/.next/standalone/.next/server/app/api/data/restart/route.js +8 -0
  58. package/.next/standalone/.next/server/app/api/data/restart/route.js.map +5 -0
  59. package/.next/standalone/.next/server/app/api/data/restart/route.js.nft.json +1 -0
  60. package/.next/standalone/.next/server/app/api/data/restart/route_client-reference-manifest.js +3 -0
  61. package/.next/standalone/.next/server/app/api/data/reveal/route/app-paths-manifest.json +3 -0
  62. package/.next/standalone/.next/server/app/api/data/reveal/route/build-manifest.json +12 -0
  63. package/.next/standalone/.next/server/app/api/data/reveal/route/server-reference-manifest.json +4 -0
  64. package/.next/standalone/.next/server/app/api/data/reveal/route.js +7 -0
  65. package/.next/standalone/.next/server/app/api/data/reveal/route.js.map +5 -0
  66. package/.next/standalone/.next/server/app/api/data/reveal/route.js.nft.json +1 -0
  67. package/.next/standalone/.next/server/app/api/data/reveal/route_client-reference-manifest.js +3 -0
  68. package/.next/standalone/.next/server/app/api/data/route/app-paths-manifest.json +3 -0
  69. package/.next/standalone/.next/server/app/api/data/route/build-manifest.json +12 -0
  70. package/.next/standalone/.next/server/app/api/data/route/server-reference-manifest.json +4 -0
  71. package/.next/standalone/.next/server/app/api/data/route.js +7 -0
  72. package/.next/standalone/.next/server/app/api/data/route.js.map +5 -0
  73. package/.next/standalone/.next/server/app/api/data/route.js.nft.json +1 -0
  74. package/.next/standalone/.next/server/app/api/data/route_client-reference-manifest.js +3 -0
  75. package/.next/standalone/.next/server/app/api/delete-cluster/route.js +3 -2
  76. package/.next/standalone/.next/server/app/api/delete-cluster/route.js.nft.json +1 -1
  77. package/.next/standalone/.next/server/app/api/ingest/route.js +2 -2
  78. package/.next/standalone/.next/server/app/api/ingest/route.js.nft.json +1 -1
  79. package/.next/standalone/.next/server/app/api/network/route.js +3 -2
  80. package/.next/standalone/.next/server/app/api/network/route.js.nft.json +1 -1
  81. package/.next/standalone/.next/server/app/api/notifications/route.js +3 -2
  82. package/.next/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
  83. package/.next/standalone/.next/server/app/api/outreach/route.js +3 -2
  84. package/.next/standalone/.next/server/app/api/outreach/route.js.nft.json +1 -1
  85. package/.next/standalone/.next/server/app/api/queue/route.js +3 -2
  86. package/.next/standalone/.next/server/app/api/queue/route.js.nft.json +1 -1
  87. package/.next/standalone/.next/server/app/api/scraper/route.js +3 -2
  88. package/.next/standalone/.next/server/app/api/scraper/route.js.nft.json +1 -1
  89. package/.next/standalone/.next/server/app/api/settings/route/app-paths-manifest.json +3 -0
  90. package/.next/standalone/.next/server/app/api/settings/route/build-manifest.json +12 -0
  91. package/.next/standalone/.next/server/app/api/settings/route/server-reference-manifest.json +4 -0
  92. package/.next/standalone/.next/server/app/api/settings/route.js +9 -0
  93. package/.next/standalone/.next/server/app/api/settings/route.js.map +5 -0
  94. package/.next/standalone/.next/server/app/api/settings/route.js.nft.json +1 -0
  95. package/.next/standalone/.next/server/app/api/settings/route_client-reference-manifest.js +3 -0
  96. package/.next/standalone/.next/server/app/api/settings/sector-preview/route/app-paths-manifest.json +3 -0
  97. package/.next/standalone/.next/server/app/api/settings/sector-preview/route/build-manifest.json +12 -0
  98. package/.next/standalone/.next/server/app/api/settings/sector-preview/route/server-reference-manifest.json +4 -0
  99. package/.next/standalone/.next/server/app/api/settings/sector-preview/route.js +8 -0
  100. package/.next/standalone/.next/server/app/api/settings/sector-preview/route.js.map +5 -0
  101. package/.next/standalone/.next/server/app/api/settings/sector-preview/route.js.nft.json +1 -0
  102. package/.next/standalone/.next/server/app/api/settings/sector-preview/route_client-reference-manifest.js +3 -0
  103. package/.next/standalone/.next/server/app/api/settings/sector-suggestions/route/app-paths-manifest.json +3 -0
  104. package/.next/standalone/.next/server/app/api/settings/sector-suggestions/route/build-manifest.json +12 -0
  105. package/.next/standalone/.next/server/app/api/settings/sector-suggestions/route/server-reference-manifest.json +4 -0
  106. package/.next/standalone/.next/server/app/api/settings/sector-suggestions/route.js +8 -0
  107. package/.next/standalone/.next/server/app/api/settings/sector-suggestions/route.js.map +5 -0
  108. package/.next/standalone/.next/server/app/api/settings/sector-suggestions/route.js.nft.json +1 -0
  109. package/.next/standalone/.next/server/app/api/settings/sector-suggestions/route_client-reference-manifest.js +3 -0
  110. package/.next/standalone/.next/server/app/api/setup-profile/route.js +3 -2
  111. package/.next/standalone/.next/server/app/api/setup-profile/route.js.nft.json +1 -1
  112. package/.next/standalone/.next/server/app/api/unlock/route.js +3 -2
  113. package/.next/standalone/.next/server/app/api/unlock/route.js.nft.json +1 -1
  114. package/.next/standalone/.next/server/app/api/update/route.js +1 -1
  115. package/.next/standalone/.next/server/app/api/update/route.js.nft.json +1 -1
  116. package/.next/standalone/.next/server/app/api/update-images/route.js +3 -2
  117. package/.next/standalone/.next/server/app/api/update-images/route.js.nft.json +1 -1
  118. package/.next/standalone/.next/server/app/api/users/route.js +3 -2
  119. package/.next/standalone/.next/server/app/api/users/route.js.nft.json +1 -1
  120. package/.next/standalone/.next/server/app/avatars/[file]/route.js +2 -1
  121. package/.next/standalone/.next/server/app/avatars/[file]/route.js.nft.json +1 -1
  122. package/.next/standalone/.next/server/app/favicon.ico/route.js +2 -1
  123. package/.next/standalone/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  124. package/.next/standalone/.next/server/app/import/page.js.nft.json +1 -1
  125. package/.next/standalone/.next/server/app/import/page_client-reference-manifest.js +1 -1
  126. package/.next/standalone/.next/server/app/import.html +1 -1
  127. package/.next/standalone/.next/server/app/import.rsc +12 -12
  128. package/.next/standalone/.next/server/app/import.segments/_full.segment.rsc +12 -12
  129. package/.next/standalone/.next/server/app/import.segments/_tree.segment.rsc +1 -1
  130. package/.next/standalone/.next/server/app/import.segments/import/__PAGE__.segment.rsc +11 -11
  131. package/.next/standalone/.next/server/app/index.html +1 -1
  132. package/.next/standalone/.next/server/app/index.rsc +12 -12
  133. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +11 -11
  134. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +12 -12
  135. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  136. package/.next/standalone/.next/server/app/launch/page.js.nft.json +1 -1
  137. package/.next/standalone/.next/server/app/launch/page_client-reference-manifest.js +1 -1
  138. package/.next/standalone/.next/server/app/launch.html +2 -2
  139. package/.next/standalone/.next/server/app/launch.rsc +12 -12
  140. package/.next/standalone/.next/server/app/launch.segments/_full.segment.rsc +12 -12
  141. package/.next/standalone/.next/server/app/launch.segments/_tree.segment.rsc +1 -1
  142. package/.next/standalone/.next/server/app/launch.segments/launch/__PAGE__.segment.rsc +11 -11
  143. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  144. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  145. package/.next/standalone/.next/server/app/paths/page.js.nft.json +1 -1
  146. package/.next/standalone/.next/server/app/paths/page_client-reference-manifest.js +1 -1
  147. package/.next/standalone/.next/server/app/paths.html +1 -1
  148. package/.next/standalone/.next/server/app/paths.rsc +12 -12
  149. package/.next/standalone/.next/server/app/paths.segments/_full.segment.rsc +12 -12
  150. package/.next/standalone/.next/server/app/paths.segments/_tree.segment.rsc +1 -1
  151. package/.next/standalone/.next/server/app/paths.segments/paths/__PAGE__.segment.rsc +11 -11
  152. package/.next/standalone/.next/server/app/profile/page.js.nft.json +1 -1
  153. package/.next/standalone/.next/server/app/profile/page_client-reference-manifest.js +1 -1
  154. package/.next/standalone/.next/server/app/profile.html +1 -1
  155. package/.next/standalone/.next/server/app/profile.rsc +12 -12
  156. package/.next/standalone/.next/server/app/profile.segments/_full.segment.rsc +12 -12
  157. package/.next/standalone/.next/server/app/profile.segments/_tree.segment.rsc +1 -1
  158. package/.next/standalone/.next/server/app/profile.segments/profile/__PAGE__.segment.rsc +11 -11
  159. package/.next/standalone/.next/server/app/queue/page.js.nft.json +1 -1
  160. package/.next/standalone/.next/server/app/queue/page_client-reference-manifest.js +1 -1
  161. package/.next/standalone/.next/server/app/queue.html +1 -1
  162. package/.next/standalone/.next/server/app/queue.rsc +12 -12
  163. package/.next/standalone/.next/server/app/queue.segments/_full.segment.rsc +12 -12
  164. package/.next/standalone/.next/server/app/queue.segments/_tree.segment.rsc +1 -1
  165. package/.next/standalone/.next/server/app/queue.segments/queue/__PAGE__.segment.rsc +11 -11
  166. package/.next/standalone/.next/server/app/settings/page/app-paths-manifest.json +3 -0
  167. package/.next/standalone/.next/server/app/settings/page/build-manifest.json +20 -0
  168. package/.next/standalone/.next/server/app/settings/page/next-font-manifest.json +11 -0
  169. package/.next/standalone/.next/server/app/settings/page/react-loadable-manifest.json +1 -0
  170. package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +4 -0
  171. package/.next/standalone/.next/server/app/settings/page.js +13 -0
  172. package/.next/standalone/.next/server/app/settings/page.js.map +5 -0
  173. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -0
  174. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +3 -0
  175. package/.next/standalone/.next/server/app/settings.html +1 -0
  176. package/.next/standalone/.next/server/app/settings.meta +26 -0
  177. package/.next/standalone/.next/server/app/settings.rsc +24 -0
  178. package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +24 -0
  179. package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +4 -0
  180. package/.next/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +28 -0
  181. package/.next/standalone/.next/server/app/setup/page.js.nft.json +1 -1
  182. package/.next/standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  183. package/.next/standalone/.next/server/app/setup.html +1 -1
  184. package/.next/standalone/.next/server/app/setup.rsc +12 -12
  185. package/.next/standalone/.next/server/app/setup.segments/_full.segment.rsc +12 -12
  186. package/.next/standalone/.next/server/app/setup.segments/_tree.segment.rsc +1 -1
  187. package/.next/standalone/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +11 -11
  188. package/.next/standalone/.next/server/app-paths-manifest.json +10 -0
  189. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0-rnla2._.js +3 -0
  190. package/.next/standalone/.next/server/chunks/[root-of-the-server]__00la_y0._.js +3 -0
  191. package/.next/standalone/.next/server/chunks/[root-of-the-server]__07t47cm._.js +3 -0
  192. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0cj5jqc._.js +3 -0
  193. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0e0fei3._.js +3 -0
  194. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0i5hdu4._.js +3 -0
  195. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ljcioj._.js +3 -0
  196. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ljnyho._.js +3 -0
  197. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0o5-tcg._.js +3 -0
  198. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qrnous._.js +3 -0
  199. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0t3v1a1._.js +3 -0
  200. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0uag-k5._.js +8 -0
  201. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0um1uey._.js +3 -0
  202. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0wmexuc._.js +3 -0
  203. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0xu34sz._.js +3 -0
  204. package/.next/standalone/.next/server/chunks/[root-of-the-server]__133knx1._.js +3 -0
  205. package/.next/standalone/.next/server/chunks/[root-of-the-server]__14ou7j5._.js +3 -0
  206. package/.next/standalone/.next/server/chunks/[root-of-the-server]__15-17hl._.js +3 -0
  207. package/.next/standalone/.next/server/chunks/[root-of-the-server]__16iu0hv._.js +3 -0
  208. package/.next/standalone/.next/server/chunks/[root-of-the-server]__19b7mig._.js +3 -0
  209. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1bbcwub._.js +8 -0
  210. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1eris29._.js +3 -0
  211. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1gjo_cq._.js +3 -0
  212. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1kbl21f._.js +3 -0
  213. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1qcm08_._.js +3 -0
  214. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1rphsdk._.js +3 -0
  215. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1t3rugi._.js +3 -0
  216. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1w25q0m._.js +3 -0
  217. package/.next/standalone/.next/server/chunks/_072jl0y._.js +3 -0
  218. package/.next/standalone/.next/server/chunks/_0lw8_i0._.js +3 -0
  219. package/.next/standalone/.next/server/chunks/_1_fynia._.js +21 -3
  220. package/.next/standalone/.next/server/chunks/_1fn30_l._.js +3 -0
  221. package/.next/standalone/.next/server/chunks/_1itd1o_._.js +2 -1
  222. package/.next/standalone/.next/server/chunks/_1iwkh8t._.js +1 -1
  223. package/.next/standalone/.next/server/chunks/_1mxn_lb._.js +3 -0
  224. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_company-scores_legacy_route_actions_1ncspu_.js +3 -0
  225. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_data_export_route_actions_1lkimty.js +3 -0
  226. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_data_import_route_actions_1eji0kd.js +3 -0
  227. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_data_restart_route_actions_00_-u6o.js +3 -0
  228. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_data_reveal_route_actions_0-moqtn.js +3 -0
  229. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_data_route_actions_0j0w5ep.js +3 -0
  230. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_settings_route_actions_1bpm9ac.js +3 -0
  231. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_settings_sector-preview_route_actions_0w79454.js +3 -0
  232. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_settings_sector-suggestions_route_actions_1eoqugp.js +3 -0
  233. package/.next/standalone/.next/server/chunks/lib_db-client_15le7cw.js +155 -0
  234. package/.next/standalone/.next/server/chunks/{lib_rpc_0mc73lk.js → lib_rpc_00tx2sm.js} +1 -1
  235. package/.next/standalone/.next/server/chunks/lib_rpc_02-qa4d.js +3 -0
  236. package/.next/standalone/.next/server/chunks/lib_rpc_02ndsg2.js +3 -0
  237. package/.next/standalone/.next/server/chunks/lib_rpc_08q5vp6.js +3 -0
  238. package/.next/standalone/.next/server/chunks/lib_rpc_0_8i3ft.js +3 -0
  239. package/.next/standalone/.next/server/chunks/lib_rpc_0c9d9ti.js +5 -2
  240. package/.next/standalone/.next/server/chunks/lib_rpc_0huvw-3.js +3 -0
  241. package/.next/standalone/.next/server/chunks/lib_rpc_0ip2vdh.js +3 -0
  242. package/.next/standalone/.next/server/chunks/lib_rpc_0jzisgh.js +3 -0
  243. package/.next/standalone/.next/server/chunks/lib_rpc_0yi9xvd.js +3 -0
  244. package/.next/standalone/.next/server/chunks/lib_rpc_1jyhd0o.js +3 -0
  245. package/.next/standalone/.next/server/chunks/lib_rpc_1kn59-i.js +3 -0
  246. package/.next/standalone/.next/server/chunks/lib_rpc_1q2jkza.js +3 -0
  247. package/.next/standalone/.next/server/chunks/lib_rpc_1vpm1sk.js +3 -0
  248. package/.next/standalone/.next/server/chunks/lib_rpc_1x6p_31.js +3 -0
  249. package/.next/standalone/.next/server/chunks/node_modules_next_1zc5q0a._.js +158 -0
  250. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0mocm6d._.js → [root-of-the-server]__0an6blh._.js} +3 -3
  251. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1m0255u._.js +3 -0
  252. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0bipr5s._.js → [root-of-the-server]__1z1j3ek._.js} +2 -2
  253. package/.next/standalone/.next/server/chunks/ssr/_07u8byv._.js +3 -0
  254. package/.next/standalone/.next/server/chunks/ssr/_08r_mlf._.js +3 -0
  255. package/.next/standalone/.next/server/chunks/ssr/{_0ggabjc._.js → _0942v8n._.js} +1 -1
  256. package/.next/standalone/.next/server/chunks/ssr/{_1djpk8t._.js → _0hl_t7r._.js} +2 -2
  257. package/.next/standalone/.next/server/chunks/ssr/_0tb83dw._.js +132 -0
  258. package/.next/standalone/.next/server/chunks/ssr/_1-87bs1._.js +3 -0
  259. package/.next/standalone/.next/server/chunks/ssr/_17gui6a._.js +1 -1
  260. package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_settings_page_actions_11x4dq5.js +3 -0
  261. package/.next/standalone/.next/server/chunks/ssr/app_launch_page_19t0dyd.js +2 -2
  262. package/.next/standalone/.next/server/chunks/ssr/app_page_1fazqbf.js +4 -4
  263. package/.next/standalone/.next/server/chunks/ssr/app_profile_page_0u3-l5y.js +1 -1
  264. package/.next/standalone/.next/server/chunks/ssr/app_queue_page_0c6znd6.js +5 -5
  265. package/.next/standalone/.next/server/chunks/ssr/app_settings_page_1f8mjj_.js +3 -0
  266. package/.next/standalone/.next/server/chunks/ssr/app_setup_page_1-282zx.js +2 -2
  267. package/.next/standalone/.next/server/chunks/ssr/lib_0i8v-s3._.js +1 -1
  268. package/.next/standalone/.next/server/chunks/ssr/node_modules_1f8t_rp._.js +23 -0
  269. package/.next/standalone/.next/server/chunks/ssr/node_modules_1nkgb45._.js +2 -2
  270. package/.next/standalone/.next/server/chunks/ssr/{node_modules_01xbj_9._.js → node_modules_1wax83z._.js} +3 -3
  271. package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_dist_00nap8h._.js → node_modules_next_dist_1bunoni._.js} +2 -2
  272. package/.next/standalone/.next/server/edge/chunks/[root-of-the-server]__0pco7a6._.js +2 -2
  273. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  274. package/.next/standalone/.next/server/middleware-manifest.json +15 -7
  275. package/.next/standalone/.next/server/next-font-manifest.js +1 -1
  276. package/.next/standalone/.next/server/next-font-manifest.json +4 -0
  277. package/.next/standalone/.next/server/pages/404.html +1 -1
  278. package/.next/standalone/.next/server/pages/500.html +1 -1
  279. package/.next/standalone/.next/server/prefetch-hints.json +14 -0
  280. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  281. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  282. package/.next/standalone/.next/static/chunks/06x3jiiz96m5t.js +1 -0
  283. package/.next/standalone/.next/static/chunks/{34at5d2ifl62i.js → 0ngx9s6-zgshe.js} +5 -5
  284. package/.next/standalone/.next/static/chunks/0q-_khndfxubv.js +2 -0
  285. package/.next/standalone/.next/static/chunks/1c79veqedvubt.js +1 -0
  286. package/.next/standalone/.next/static/chunks/1chp3nx45meg5.js +44 -0
  287. package/.next/standalone/.next/static/chunks/1irqj0lf-fu3d.js +1 -0
  288. package/.next/standalone/.next/static/chunks/1uadqylrod5_v.js +1 -0
  289. package/.next/standalone/.next/static/chunks/23u0zclgwpc4d.js +1 -0
  290. package/.next/standalone/.next/static/chunks/289ktj97di6zg.js +1 -0
  291. package/.next/standalone/.next/static/chunks/2b3lmf8e6uj8m.js +16 -0
  292. package/.next/standalone/.next/static/chunks/2jz311xl1pp_8.js +1 -0
  293. package/.next/standalone/.next/static/chunks/3npq5yd7c4dmn.js +2 -0
  294. package/.next/standalone/.next/static/qqqcxvzBUizkECrT4swyK/_clientMiddlewareManifest.js +14 -0
  295. package/.next/standalone/CHANGELOG.md +298 -0
  296. package/.next/standalone/CONTRIBUTING.md +5 -2
  297. package/.next/standalone/README.md +138 -30
  298. package/.next/standalone/SECURITY.md +117 -10
  299. package/.next/standalone/app/api/company-scores/legacy/route.js +32 -0
  300. package/.next/standalone/app/api/company-scores/route.js +20 -11
  301. package/.next/standalone/app/api/data/export/route.js +49 -0
  302. package/.next/standalone/app/api/data/import/route.js +83 -0
  303. package/.next/standalone/app/api/data/restart/route.js +37 -0
  304. package/.next/standalone/app/api/data/reveal/route.js +14 -0
  305. package/.next/standalone/app/api/data/route.js +39 -0
  306. package/.next/standalone/app/api/ingest/route.js +15 -47
  307. package/.next/standalone/app/api/scraper/route.js +264 -125
  308. package/.next/standalone/app/api/settings/route.js +58 -0
  309. package/.next/standalone/app/api/settings/sector-preview/route.js +38 -0
  310. package/.next/standalone/app/api/settings/sector-suggestions/route.js +20 -0
  311. package/.next/standalone/app/api/update/route.js +188 -23
  312. package/.next/standalone/app/avatars/[file]/route.js +4 -2
  313. package/.next/standalone/app/components/CompanyScores.js +28 -7
  314. package/.next/standalone/app/components/EmptyState.js +8 -0
  315. package/.next/standalone/app/components/ForceGraph.js +39 -35
  316. package/.next/standalone/app/components/LegacyScoresCard.js +129 -0
  317. package/.next/standalone/app/components/Sidebar.js +11 -10
  318. package/.next/standalone/app/components/UpdatePanel.js +306 -119
  319. package/.next/standalone/app/components/UserProvider.js +4 -3
  320. package/.next/standalone/app/components/settings/DataSection.js +437 -0
  321. package/.next/standalone/app/components/settings/SectorSection.js +445 -0
  322. package/.next/standalone/app/components/ui.js +62 -0
  323. package/.next/standalone/app/launch/page.js +30 -20
  324. package/.next/standalone/app/page.js +13 -0
  325. package/.next/standalone/app/paths/page.js +12 -4
  326. package/.next/standalone/app/profile/page.js +41 -8
  327. package/.next/standalone/app/queue/page.js +8 -2
  328. package/.next/standalone/app/settings/page.js +96 -0
  329. package/.next/standalone/app/setup/page.js +32 -16
  330. package/.next/standalone/bin/args.mjs +44 -0
  331. package/.next/standalone/bin/six-degrees.mjs +9 -15
  332. package/.next/standalone/lib/companies.js +44 -119
  333. package/.next/standalone/lib/csv.js +8 -0
  334. package/.next/standalone/lib/data-export.js +170 -0
  335. package/.next/standalone/lib/data-folder.js +238 -0
  336. package/.next/standalone/lib/data-import.js +878 -0
  337. package/.next/standalone/lib/db-client.js +48 -3
  338. package/.next/standalone/lib/durable.js +73 -0
  339. package/.next/standalone/lib/gate.js +90 -1
  340. package/.next/standalone/lib/ingest.js +40 -0
  341. package/.next/standalone/lib/legacy-offer.js +185 -0
  342. package/.next/standalone/lib/legacy-scores.js +77 -0
  343. package/.next/standalone/lib/linkedin-limits.js +124 -1
  344. package/.next/standalone/lib/rpc.js +121 -13
  345. package/.next/standalone/lib/sample-stats.js +16 -0
  346. package/.next/standalone/lib/scan-progress.js +13 -0
  347. package/.next/standalone/lib/scan-state.js +53 -0
  348. package/.next/standalone/lib/scanner-python.js +685 -0
  349. package/.next/standalone/lib/scanner-setup.js +104 -0
  350. package/.next/standalone/lib/scoring.js +747 -138
  351. package/.next/standalone/lib/scraper-client.js +9 -5
  352. package/.next/standalone/lib/sector-directory.js +1532 -0
  353. package/.next/standalone/lib/sector-focus.js +163 -0
  354. package/.next/standalone/lib/sector-labels.js +81 -0
  355. package/.next/standalone/lib/settings-effects.js +59 -0
  356. package/.next/standalone/lib/settings.js +83 -0
  357. package/.next/standalone/lib/updater-job.js +838 -0
  358. package/.next/standalone/lib/updater.js +494 -0
  359. package/.next/standalone/middleware.js +25 -28
  360. package/.next/standalone/next.config.mjs +19 -3
  361. package/.next/standalone/package-lock.json +2 -2
  362. package/.next/standalone/package.json +1 -2
  363. package/.next/standalone/scripts/apply-update.sh +482 -0
  364. package/.next/standalone/scripts/build-app.mjs +251 -9
  365. package/.next/standalone/scripts/requirements.txt +106 -4
  366. package/.next/standalone/scripts/test-release-server.mjs +143 -0
  367. package/.next/standalone/server.js +1 -1
  368. package/.next/static/chunks/06x3jiiz96m5t.js +1 -0
  369. package/.next/static/chunks/{34at5d2ifl62i.js → 0ngx9s6-zgshe.js} +5 -5
  370. package/.next/static/chunks/0q-_khndfxubv.js +2 -0
  371. package/.next/static/chunks/1c79veqedvubt.js +1 -0
  372. package/.next/static/chunks/1chp3nx45meg5.js +44 -0
  373. package/.next/static/chunks/1irqj0lf-fu3d.js +1 -0
  374. package/.next/static/chunks/1uadqylrod5_v.js +1 -0
  375. package/.next/static/chunks/23u0zclgwpc4d.js +1 -0
  376. package/.next/static/chunks/289ktj97di6zg.js +1 -0
  377. package/.next/static/chunks/2b3lmf8e6uj8m.js +16 -0
  378. package/.next/static/chunks/2jz311xl1pp_8.js +1 -0
  379. package/.next/static/chunks/3npq5yd7c4dmn.js +2 -0
  380. package/.next/static/qqqcxvzBUizkECrT4swyK/_clientMiddlewareManifest.js +14 -0
  381. package/CHANGELOG.md +298 -0
  382. package/README.md +138 -30
  383. package/SECURITY.md +117 -10
  384. package/bin/args.mjs +44 -0
  385. package/bin/six-degrees.mjs +9 -15
  386. package/lib/companies.js +44 -119
  387. package/lib/csv.js +8 -0
  388. package/lib/data-export.js +170 -0
  389. package/lib/data-folder.js +238 -0
  390. package/lib/data-import.js +878 -0
  391. package/lib/db-client.js +48 -3
  392. package/lib/durable.js +73 -0
  393. package/lib/gate.js +90 -1
  394. package/lib/ingest.js +40 -0
  395. package/lib/legacy-offer.js +185 -0
  396. package/lib/legacy-scores.js +77 -0
  397. package/lib/linkedin-limits.js +124 -1
  398. package/lib/rpc.js +121 -13
  399. package/lib/sample-stats.js +16 -0
  400. package/lib/scan-progress.js +13 -0
  401. package/lib/scan-state.js +53 -0
  402. package/lib/scanner-python.js +685 -0
  403. package/lib/scanner-setup.js +104 -0
  404. package/lib/scoring.js +747 -138
  405. package/lib/scraper-client.js +9 -5
  406. package/lib/sector-directory.js +1532 -0
  407. package/lib/sector-focus.js +163 -0
  408. package/lib/sector-labels.js +81 -0
  409. package/lib/settings-effects.js +59 -0
  410. package/lib/settings.js +83 -0
  411. package/lib/updater-job.js +838 -0
  412. package/lib/updater.js +494 -0
  413. package/package.json +1 -2
  414. package/scripts/requirements.txt +106 -4
  415. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0jrmmj-._.js +0 -150
  416. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qx548g._.js +0 -151
  417. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1an3leo._.js +0 -150
  418. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1m8zedk._.js +0 -155
  419. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1zor0ys._.js +0 -3
  420. package/.next/standalone/.next/server/chunks/_0_rp-01._.js +0 -3
  421. package/.next/standalone/.next/server/chunks/_0hzdk79._.js +0 -3
  422. package/.next/standalone/.next/server/chunks/_0ow7u5r._.js +0 -3
  423. package/.next/standalone/.next/server/chunks/_0t0zc2d._.js +0 -3
  424. package/.next/standalone/.next/server/chunks/_0wa631d._.js +0 -3
  425. package/.next/standalone/.next/server/chunks/_13ccnao._.js +0 -3
  426. package/.next/standalone/.next/server/chunks/_13es063._.js +0 -3
  427. package/.next/standalone/.next/server/chunks/_142872j._.js +0 -3
  428. package/.next/standalone/.next/server/chunks/_18wsb_a._.js +0 -8
  429. package/.next/standalone/.next/server/chunks/_1e-4h5h._.js +0 -3
  430. package/.next/standalone/.next/server/chunks/_1gvvd7n._.js +0 -158
  431. package/.next/standalone/.next/server/chunks/_1moda66._.js +0 -3
  432. package/.next/standalone/.next/server/chunks/_1p6ghzv._.js +0 -3
  433. package/.next/standalone/.next/server/chunks/_1xmmi_v._.js +0 -3
  434. package/.next/standalone/.next/server/chunks/_1z-yrlf._.js +0 -3
  435. package/.next/standalone/.next/server/chunks/ssr/_0bf3x4q._.js +0 -3
  436. package/.next/standalone/.next/server/chunks/ssr/app_paths_page_1ol90m7.js +0 -4
  437. package/.next/standalone/.next/static/ZGTiDrZ5NHGETgGdlhssu/_clientMiddlewareManifest.js +0 -6
  438. package/.next/standalone/.next/static/chunks/0jk64vo17avsb.js +0 -1
  439. package/.next/standalone/.next/static/chunks/0s65dsrthylo6.js +0 -2
  440. package/.next/standalone/.next/static/chunks/0uyfdhi8dek85.js +0 -16
  441. package/.next/standalone/.next/static/chunks/220-ne82aus0c.js +0 -44
  442. package/.next/standalone/.next/static/chunks/229haorf0f19b.js +0 -2
  443. package/.next/standalone/.next/static/chunks/2g54uafnwuakc.js +0 -1
  444. package/.next/standalone/.next/static/chunks/2spwqs6b6dx13.js +0 -1
  445. package/.next/standalone/.next/static/chunks/38dlepuubiox0.js +0 -1
  446. package/.next/standalone/scripts/score-connections.sql +0 -80
  447. package/.next/standalone/scripts/score_new_connections.sql +0 -77
  448. package/.next/standalone/site/app.js +0 -84
  449. package/.next/standalone/site/index.html +0 -221
  450. package/.next/standalone/site/style.css +0 -155
  451. package/.next/standalone/site/video/install-mac-poster.jpg +0 -0
  452. package/.next/standalone/site/video/install-mac.mp4 +0 -0
  453. package/.next/standalone/site/video/linux-poster.jpg +0 -0
  454. package/.next/standalone/site/video/linux.mp4 +0 -0
  455. package/.next/standalone/site/video/scan-poster.jpg +0 -0
  456. package/.next/standalone/site/video/scan.mp4 +0 -0
  457. package/.next/static/ZGTiDrZ5NHGETgGdlhssu/_clientMiddlewareManifest.js +0 -6
  458. package/.next/static/chunks/0jk64vo17avsb.js +0 -1
  459. package/.next/static/chunks/0s65dsrthylo6.js +0 -2
  460. package/.next/static/chunks/0uyfdhi8dek85.js +0 -16
  461. package/.next/static/chunks/220-ne82aus0c.js +0 -44
  462. package/.next/static/chunks/229haorf0f19b.js +0 -2
  463. package/.next/static/chunks/2g54uafnwuakc.js +0 -1
  464. package/.next/static/chunks/2spwqs6b6dx13.js +0 -1
  465. package/.next/static/chunks/38dlepuubiox0.js +0 -1
  466. package/scripts/score_new_connections.sql +0 -77
  467. /package/.next/standalone/.next/static/{ZGTiDrZ5NHGETgGdlhssu → qqqcxvzBUizkECrT4swyK}/_buildManifest.js +0 -0
  468. /package/.next/standalone/.next/static/{ZGTiDrZ5NHGETgGdlhssu → qqqcxvzBUizkECrT4swyK}/_ssgManifest.js +0 -0
  469. /package/.next/static/{ZGTiDrZ5NHGETgGdlhssu → qqqcxvzBUizkECrT4swyK}/_buildManifest.js +0 -0
  470. /package/.next/static/{ZGTiDrZ5NHGETgGdlhssu → qqqcxvzBUizkECrT4swyK}/_ssgManifest.js +0 -0
@@ -1,3 +0,0 @@
1
- module.exports=[36839,a=>{"use strict";var b=a.i(87924),c=a.i(75857);a.s(["default",0,function({children:a}){let{userId:d,ready:e}=(0,c.useUser)();return e&&d?a:(0,b.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:e?(0,b.jsxs)("div",{style:{maxWidth:420},children:[(0,b.jsx)("div",{style:{fontSize:18,fontWeight:700,marginBottom:8},children:"Can’t reach 6 Degrees’ local server"}),(0,b.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,b.jsx)("div",{style:{fontSize:18,fontWeight:600},children:"Loading…"})})}])},23310,a=>{"use strict";async function b(a){let b=a?`/api/network?userId=${encodeURIComponent(a)}`:"/api/network",c=await fetch(b);if(!c.ok)throw Error(`Failed to load network (${c.status})`);let d=await c.json();return{degree1:d.degree1||[],degree2:d.degree2||[],degree3:d.degree3||[]}}a.s(["loadNetwork",0,b])},37732,a=>{"use strict";async function b(){let a=await fetch("/api/scraper");if(!a.ok)throw Error("Could not reach the app.");return a.json()}async function c(a,b,d={}){let e=await fetch("/api/scraper",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:a,...b?{name:b}:{},...d})}),f=await e.json().catch(()=>({}));if(!e.ok)throw Error(f.error||"Could not start the scanner.");return f}async function d(){await fetch("/api/scraper",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"cancel"})})}a.s(["notReadyMessage",0,function(a){return a?a.checks?.scriptsFound?a.checks?.python?a.checks?.dependencies?a.checks?.chrome?null:"Google Chrome is not installed.":"The scanner is not installed yet — open Scan to set it up.":"Python 3 is not installed on this machine.":"The scanner files are missing from this install.":"Could not reach the app."},"runScrape",0,function(a,{name:d,onLog:e,...f}={}){return new Promise((g,h)=>{c(a,d,f).then(()=>{let a=setInterval(async()=>{try{let c=await b();e?.(c.log||[]),c.running||(clearInterval(a),g(c))}catch{}},1500)}).catch(h)})},"scraperStatus",0,b,"startScrape",0,c,"stopScrape",0,d])}];
2
-
3
- //# sourceMappingURL=_0bf3x4q._.js.map
@@ -1,4 +0,0 @@
1
- module.exports=[90195,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(37732),e=a.i(23310),f=a.i(58834),g=a.i(42510),h=a.i(36839);a.i(75930);var i=a.i(74365),j=a.i(72243),k=a.i(11366),l=a.i(53877),m=a.i(7656);let n="1px solid rgba(255,255,255,0.1)",o={yours:{label:"your score",color:"#00ff88"},known:{label:"known list",color:"#3498DB"},network:{label:"estimated: many of your people",color:"#FF6B35"},default:{label:"unknown company",color:"#778"}};async function p(){let a=await fetch("/api/company-scores"),b=await a.json();if(!a.ok)throw Error(b.error||"Could not load company scores");return b.companies}function q(){let[a,b]=(0,c.useState)(null),[d,e]=(0,c.useState)(null);return(0,c.useEffect)(()=>{let a=!1;return p().then(c=>{a||b(c)}).catch(b=>{a||e(b.message)}),()=>{a=!0}},[]),{companies:a,error:d,setScore:(0,c.useCallback)(async(a,c)=>{let d=await fetch("/api/company-scores",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:a,score:c})}),e=await d.json();if(!d.ok)throw Error(e.error||"Could not save");return b(await p()),e},[])}}function r({company:a,onSet:d,compact:e}){let[f,g]=(0,c.useState)(!1),h=async b=>{g(!0);try{await d(a.name,"auto"===b?null:Number(b))}finally{g(!1)}};return(0,b.jsxs)("select",{disabled:f,value:"yours"===a.source?String(a.score):"auto",onChange:a=>h(a.target.value),title:"Set this company's score. Auto uses the known list or an estimate.",style:{padding:e?"2px 4px":"4px 6px",borderRadius:6,border:n,background:"#11131c",color:"#dfe6e9",fontSize:12},children:[(0,b.jsxs)("option",{value:"auto",children:["Auto (","yours"===a.source?a.suggested??"est.":a.score,")"]}),[10,9,8,7,6,5,4,3,2,1].map(a=>(0,b.jsx)("option",{value:a,children:a},a))]})}function s({onRescored:a}){let{companies:d,error:e,setScore:f}=q(),[g,h]=(0,c.useState)(""),[i,j]=(0,c.useState)("all"),[k,l]=(0,c.useState)(150),[m,p]=(0,c.useState)(null),t=async(b,c)=>{let d=await f(b,c);p(`${b}: ${null==c?"back to auto":`set to ${c}`} \xb7 rescored ${d.scored} people`),setTimeout(()=>p(null),3500),a?.()},u=(0,c.useMemo)(()=>{if(!d)return[];let a=g.trim().toLowerCase();return d.filter(b=>(!a||b.name.toLowerCase().includes(a))&&("all"===i||b.source===i))},[d,g,i]);if(e)return(0,b.jsx)("div",{style:{padding:24,color:"#e74c3c"},children:e});if(!d)return(0,b.jsx)("div",{style:{padding:24,color:"#778"},children:"Loading companies…"});let v=a=>d.filter(b=>b.source===a).length;return(0,b.jsxs)("div",{style:{flex:1,overflow:"auto",padding:16},children:[(0,b.jsxs)("div",{style:{maxWidth:980,margin:"0 auto"},children:[(0,b.jsxs)("div",{style:{padding:14,borderRadius:10,border:n,background:"rgba(255,255,255,0.03)",fontSize:12.5,color:"#cfd8d8",lineHeight:1.6},children:[(0,b.jsx)("b",{style:{color:"#fff"},children:"How a power score works."})," power = ",(0,b.jsx)("b",{children:"title"})," × ",(0,b.jsx)("b",{children:"company weight"})," + bonus. The title (student 1 … founder or C-suite 10) comes from someone’s current role, with former roles at 70%. The company weight runs from 0.56 (no company found) to 1.0 (a company scored 10), so seniority counts for more at a bigger company. The bonus is at most +1.5, for investor, YC or an audience in the millions, and counts half at an unknown company. A 1st-degree person whose circle is unusually strong gets up to +1 more. S ≥ 7.5 · A ≥ 5.5 · B ≥ 4 · C ≥ 2.5.",(0,b.jsx)("div",{style:{marginTop:6,color:"#8b9a9a"},children:"So a VP at a 10 scores 9.0, a founder at an unknown company 6.7, a director at an unknown company 5.0, and an intern at a 10 scores 2.0. Set a company’s score below and everyone there is rescored."})]}),(0,b.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap",margin:"14px 0 10px"},children:[(0,b.jsx)("input",{value:g,onChange:a=>h(a.target.value),placeholder:"Find a company",style:{padding:"6px 10px",borderRadius:7,border:n,background:"rgba(255,255,255,0.05)",color:"#fff",fontSize:13,minWidth:180}}),[["all",`All ${d.length}`],["known",`Known list ${v("known")}`],["yours",`Yours ${v("yours")}`],["network",`Estimated ${v("network")}`],["default",`Unknown ${v("default")}`]].map(([a,c])=>(0,b.jsx)("button",{onClick:()=>j(a),style:{padding:"5px 10px",borderRadius:7,border:n,cursor:"pointer",fontSize:11.5,fontWeight:600,background:i===a?"rgba(52,152,219,0.25)":"transparent",color:i===a?"#cfe6f7":"#8b9a9a"},children:c},a))]}),(0,b.jsxs)("div",{style:{borderRadius:10,border:n,overflow:"hidden"},children:[(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 70px 70px 70px 60px 180px 110px",gap:8,padding:"8px 12px",fontSize:10.5,letterSpacing:.6,color:"#8b9a9a",background:"rgba(255,255,255,0.04)"},children:[(0,b.jsx)("span",{children:"COMPANY"}),(0,b.jsx)("span",{style:{textAlign:"right"},children:"PEOPLE"}),(0,b.jsx)("span",{style:{textAlign:"right"},children:"YOU KNOW"}),(0,b.jsx)("span",{style:{textAlign:"right"},children:"DIRECTOR+"}),(0,b.jsx)("span",{style:{textAlign:"right"},children:"SCORE"}),(0,b.jsx)("span",{children:"SOURCE"}),(0,b.jsx)("span",{children:"SET"})]}),u.slice(0,k).map(a=>(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 70px 70px 70px 60px 180px 110px",gap:8,padding:"7px 12px",alignItems:"center",borderTop:"1px solid rgba(255,255,255,0.05)",fontSize:12.5},children:[(0,b.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0},children:[(0,b.jsx)("span",{title:`${a.industry.label} (inferred)`,style:{width:8,height:8,borderRadius:"50%",background:a.industry.color,flexShrink:0}}),(0,b.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.name})]}),(0,b.jsx)("span",{style:{textAlign:"right"},children:a.people}),(0,b.jsx)("span",{style:{textAlign:"right",color:a.d1?"#00ff88":"#556"},children:a.d1}),(0,b.jsx)("span",{style:{textAlign:"right",color:a.senior?"#FFD700":"#556"},children:a.senior}),(0,b.jsx)("b",{style:{textAlign:"right",fontSize:15},children:a.score}),(0,b.jsx)("span",{style:{fontSize:11,color:o[a.source]?.color},children:o[a.source]?.label}),(0,b.jsx)(r,{company:a,onSet:t,compact:!0})]},a.name))]}),u.length>k&&(0,b.jsxs)("button",{onClick:()=>l(a=>a+300),style:{marginTop:10,padding:"7px 14px",borderRadius:8,border:n,background:"rgba(255,255,255,0.05)",color:"#dfe6e9",cursor:"pointer",fontSize:12},children:["Show more (",u.length-k," left)"]})]}),m&&(0,b.jsx)("div",{role:"status",style:{position:"fixed",bottom:24,left:"50%",transform:"translateX(-50%)",padding:"10px 18px",borderRadius:24,background:"linear-gradient(135deg, #00ff88, #3498DB)",color:"#000",fontWeight:800,fontSize:13,zIndex:50},children:m})]})}var t=a.i(30889);function u(a){let b=(0,t.readTitle)(a);return{key:b.key,label:b.label,level:b.level}}function v(a){let b,c=(0,t.currentCompany)(a);return c?((b=(c||"").trim().toLowerCase()).includes("snap")&&(b.includes("inc")||"snap"===b||"snapchat"===b)?"Snap":b.includes("meta")&&(b.includes("platform")||"meta"===b||b.includes("facebook"))?"Meta":b.includes("tiktok")||b.includes("bytedance")?"TikTok":b.includes("pinterest")?"Pinterest":"google"===b||b.includes("alphabet")||b.includes("google")&&b.includes("llc")?"Google":"apple"===b||"apple inc"===b||"apple inc."===b?"Apple":b.includes("amazon")&&!b.includes("amazon ")?"Amazon":b.includes("microsoft")?"Microsoft":b.includes("anthropic")?"Anthropic":b.includes("openai")||"open ai"===b?"OpenAI":b.includes("deepmind")?"DeepMind":b.includes("cohere")?"Cohere":b.includes("mistral")?"Mistral":b.includes("hugging")&&b.includes("face")?"Hugging Face":b.includes("stripe")?"Stripe":b.includes("coinbase")?"Coinbase":b.includes("polymarket")?"Polymarket":b.includes("blackrock")?"BlackRock":b.includes("robinhood")?"Robinhood":b.includes("whatnot")?"Whatnot":b.includes("shopify")?"Shopify":b.includes("palantir")?"Palantir":b.includes("anduril")?"Anduril":b.includes("netflix")?"Netflix":b.includes("spotify")?"Spotify":b.includes("tesla")?"Tesla":b.includes("spacex")?"SpaceX":b.includes("nvidia")?"NVIDIA":b.includes("lockheed")?"Lockheed Martin":b.includes("northrop")?"Northrop Grumman":b.includes("boeing")?"Boeing":b.includes("l3harris")||b.includes("l3 harris")?"L3Harris":b.includes("leidos")?"Leidos":b.includes("nasa")?"NASA":b.includes("sandia")?"Sandia National Labs":b.includes("blue origin")?"Blue Origin":b.includes("raytheon")?"Raytheon":b.includes("general dynamics")?"General Dynamics":b.includes("bae systems")?"BAE Systems":b.includes("goldman")?"Goldman Sachs":b.includes("jpmorgan")||b.includes("jp morgan")?"JPMorgan Chase":b.includes("wells fargo")?"Wells Fargo":b.includes("citi")&&!b.includes("citizen")?"Citi":b.includes("mastercard")?"Mastercard":b.includes("visa")&&b.length<15?"Visa":b.includes("paypal")?"PayPal":b.includes("bny")||b.includes("bank of new york")||b.includes("mellon")?"BNY Mellon":b.includes("deloitte")?"Deloitte":b.includes("bain")?"Bain & Company":b.includes("bloomberg")?"Bloomberg":b.includes("usaa")?"USAA":b.includes("navy federal")?"Navy Federal":b.includes("raymond james")?"Raymond James":b.includes("geico")?"GEICO":b.includes("oracle")?"Oracle":b.includes("ibm")?"IBM":b.includes("servicenow")?"ServiceNow":b.includes("siemens")?"Siemens":b.includes("texas instruments")?"Texas Instruments":b.includes("qualcomm")?"Qualcomm":b.includes("databricks")?"Databricks":b.includes("together.ai")||b.includes("together ai")?"Together AI":b.includes("zoox")?"Zoox":b.includes("nbcuniversal")||b.includes("nbc universal")?"NBCUniversal":b.includes("universal destinations")?"Universal Destinations":b.includes("humana")?"Humana":b.includes("booz allen")?"Booz Allen Hamilton":b.includes("abbott")?"Abbott":b.includes("walmart")?"Walmart":b.includes("publix")?"Publix":b.includes("mitsubishi")?"Mitsubishi Power":b.includes("oscar health")?"Oscar Health":b.includes("ford")&&b.length<15?"Ford":b.includes("coca")&&b.includes("cola")?"Coca-Cola":b.includes("nike")?"Nike":b.includes("disney")?"Disney":b.includes("ucf")||b.includes("university of central florida")?"UCF":(c||"").trim())||c:null}let w=[{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|anduril|sandia|blue origin|spacex|public sector)\b/i},{key:"finance",label:"Finance, VC & Crypto",color:"#2ecc71",words:/\b(bank|banking|capital|ventures?|vc|investments?|investor|fund|private equity|asset management|wealth|trading|trader|hedge|crypto|blockchain|web3|defi|fintech|stripe|coinbase|blackrock|robinhood|polymarket|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|ucf|phd|faculty|alumni)\b/i},{key:"media",label:"Marketing, Media & Creator",color:"#e67e22",words:/\b(marketing|brand|branding|advertising|agency|media|content|social media|creative|creator|influencer|pr|public relations|communications|snap|snapchat|tiktok|pinterest|youtube|lens|ar|growth)\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|whatnot|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}],x={key:"unknown",label:"Unclear",color:"#555c66"},y=Object.fromEntries([...w,x].map(a=>[a.key,a])),z=a=>y[a]||x;function A(a,b){for(let c of[a,b]){if(!c)continue;let a=w.find(a=>a.words.test(c));if(a)return a}return x}let B=a=>u(a).level>=4,C={S:"#FFD700",A:"#9B59B6",B:"#3498DB",C:"#95A5A6",D:"#BDC3C7"},D="1px solid rgba(255,255,255,0.1)",E=[...w,x];function F(a){let b=0x811c9dc5;for(let c=0;c<a.length;c++)b=Math.imul(b^a.charCodeAt(c),0x1000193);return(b>>>0)%1e3/1e3}function G({value:a,onChange:c,options:d}){return(0,b.jsx)("div",{style:{display:"flex",borderRadius:7,overflow:"hidden",border:D},children:d.map(([d,e])=>(0,b.jsx)("button",{onClick:()=>c(d),style:{padding:"5px 10px",fontSize:11.5,fontWeight:600,border:"none",cursor:"pointer",background:a===d?"rgba(52,152,219,0.25)":"transparent",color:a===d?"#cfe6f7":"#8b9a9a"},children:e},d))})}function H(a,b){return("all"===b.degree||String(a.degree)===b.degree)&&("senior"!==b.seniority||!!B(a.headline))&&("csuite"!==b.seniority||!(u(a.headline).level<6))&&("SA"!==b.tier||"S"===a.tier||"A"===a.tier)}function I({d1:a=[],d2:d=[],d3:e=[],tab:f="map",onOpenCompany:g}){let[h,i]=(0,c.useState)({degree:"all",seniority:"all",tier:"all"}),[j,k]=(0,c.useState)(()=>new Set),[l,m]=(0,c.useState)(""),[n,o]=(0,c.useState)(null),p=(0,c.useMemo)(()=>[...a,...d,...e],[a,d,e]),q=(0,c.useMemo)(()=>(function(a=[]){let b=new Map;for(let c of a){let a=c.profile_url||`id:${c.id}`,d=b.get(a);(!d||(c.degree||9)<(d.degree||9))&&b.set(a,c)}let c=new Map;for(let a of b.values()){let b=v(a);if(!b)continue;let d=c.get(b);d||(d={name:b,people:[],d1:0,d2:0,d3:0,S:0,A:0,senior:0,votes:{}},c.set(b,d)),d.people.push(a),1===a.degree?d.d1++:2===a.degree?d.d2++:d.d3++,"S"===a.tier&&d.S++,"A"===a.tier&&d.A++,B(a.headline)&&d.senior++;let e=A(b,a.headline).key;d.votes[e]=(d.votes[e]||0)+1}for(let a of c.values()){let b=A(a.name,null);if(b!==x)a.industry=b;else{let[b]=Object.entries(a.votes).filter(([a])=>"unknown"!==a).sort((a,b)=>b[1]-a[1]);a.industry=b?z(b[0]):x}delete a.votes}return c})(p),[p]),r=(0,c.useMemo)(()=>(function(a=[],b=[]){let c=new Map;for(let b of a){let a=v(b);a&&c.set(b.id,a)}let d=new Map;for(let a of b){let b=c.get(a.source_connection_id),e=v(a);if(!b||!e||b===e)continue;let[f,g]=b<e?[b,e]:[e,b],h=`${f}\u0000${g}`,i=d.get(h);i||(i={a:f,b:g,weight:0,via:new Set},d.set(h,i)),i.weight++,i.via.add(a.source_connection_id)}return[...d.values()]})(a,d),[a,d]),s=(0,c.useMemo)(()=>{let a=l.trim().toLowerCase(),b=[];for(let c of q.values()){if(j.has(c.industry.key)||a&&!c.name.toLowerCase().includes(a))continue;let d=c.people.filter(a=>H(a,h));d.length&&b.push({...c,shown:d})}return b.sort((a,b)=>b.shown.length-a.shown.length)},[q,h,j,l]),t=(0,c.useMemo)(()=>{let a=new Map(E.map(a=>[a.key,{...a,people:[],companies:new Map}])),b=new Set;for(let c of p){let d=c.profile_url||`id:${c.id}`;if(b.has(d)||(b.add(d),!H(c,h)))continue;let e=v(c),f=e?q.get(e)?.industry||A(e,c.headline):A(null,c.headline),g=a.get(f.key);g.people.push(c),e&&g.companies.set(e,(g.companies.get(e)||0)+1)}return[...a.values()].filter(a=>a.people.length).sort((a,b)=>b.people.length-a.people.length)},[p,q,h]),u=n?.kind==="company"?q.get(n.key):n?.kind==="industry"?t.find(a=>a.key===n.key):null;return(0,b.jsxs)("div",{style:{display:"flex",flex:1,minHeight:0},children:[(0,b.jsxs)("div",{style:{flex:1,minWidth:0,display:"flex",flexDirection:"column"},children:[(0,b.jsx)(J,{filters:h,setFilters:i,query:l,setQuery:m,industries:t,hidden:j,setHidden:k,onIndustry:a=>o({kind:"industry",key:a})}),"map"===f?(0,b.jsx)(K,{companies:s,links:r,focus:n,onCompany:a=>o({kind:"company",key:a}),onIndustry:a=>o({kind:"industry",key:a}),onClear:()=>o(null)}):(0,b.jsx)(M,{industries:t,index:q,d1:a,d2:d,onIndustry:a=>o({kind:"industry",key:a}),onCompany:a=>o({kind:"company",key:a})})]}),u&&(0,b.jsx)(O,{focus:n,data:u,index:q,links:r,d1:a,d2:d,filters:h,onClose:()=>o(null),onCompany:a=>o({kind:"company",key:a}),onOpenCompany:g})]})}function J({filters:a,setFilters:c,query:d,setQuery:e,industries:f,hidden:g,setHidden:h,onIndustry:i}){let j=(a,b)=>c(c=>({...c,[a]:b}));return(0,b.jsxs)("div",{style:{padding:"10px 16px",borderBottom:D,display:"flex",flexDirection:"column",gap:8},children:[(0,b.jsxs)("div",{style:{display:"flex",gap:8,flexWrap:"wrap",alignItems:"center"},children:[(0,b.jsx)("input",{value:d,onChange:a=>e(a.target.value),placeholder:"Find a company",style:{padding:"6px 10px",borderRadius:7,border:D,background:"rgba(255,255,255,0.05)",color:"#fff",fontSize:13,minWidth:170}}),(0,b.jsx)(G,{value:a.degree,onChange:a=>j("degree",a),options:[["all","All degrees"],["1","1st"],["2","2nd"],["3","3rd"]]}),(0,b.jsx)(G,{value:a.seniority,onChange:a=>j("seniority",a),options:[["all","Any level"],["senior","Director+"],["csuite","C-suite"]]}),(0,b.jsx)(G,{value:a.tier,onChange:a=>j("tier",a),options:[["all","All tiers"],["SA","S & A only"]]})]}),(0,b.jsxs)("div",{style:{display:"flex",gap:6,flexWrap:"wrap"},children:[f.map(a=>{let c=g.has(a.key);return(0,b.jsxs)("span",{style:{display:"inline-flex",borderRadius:14,border:`1px solid ${a.color}55`,overflow:"hidden",opacity:c?.4:1},children:[(0,b.jsx)("button",{title:c?"Show on the map":"Hide from the map",onClick:()=>h(b=>{let c=new Set(b);return c.has(a.key)?c.delete(a.key):c.add(a.key),c}),style:{padding:"3px 7px",border:"none",background:`${a.color}22`,cursor:"pointer",color:a.color,fontSize:11},children:"●"}),(0,b.jsxs)("button",{onClick:()=>i(a.key),title:"Analyse this industry",style:{padding:"3px 9px 3px 5px",border:"none",background:"transparent",cursor:"pointer",color:"#cfd8d8",fontSize:11.5},children:[a.label," ",(0,b.jsx)("span",{style:{color:"#778"},children:a.people.length})]})]},a.key)}),(0,b.jsx)("span",{style:{fontSize:11,color:"#667",alignSelf:"center"},children:"industries inferred from companies and headlines"})]})]})}function K({companies:a,links:d,focus:e,onCompany:f,onIndustry:g,onClear:h}){let n=(0,c.useRef)(null),{w:o,h:p}=function(a){let[b,d]=(0,c.useState)({w:0,h:0});return(0,c.useEffect)(()=>{let b=a.current;if(!b)return;let c=()=>{let a=b.getBoundingClientRect();d(b=>b.w===Math.round(a.width)&&b.h===Math.round(a.height)?b:{w:Math.round(a.width),h:Math.round(a.height)})};c();let e=new ResizeObserver(c);return e.observe(b),()=>e.disconnect()},[a]),b}(n),[q,r]=(0,c.useState)(null),s=(0,c.useMemo)(()=>{let b=a.slice(0,140),c=new Set(b.map(a=>a.name)),e=[...new Set(b.map(a=>a.industry.key))],f=new Map(e.map((a,b)=>{let c=b/Math.max(1,e.length)*Math.PI*2-Math.PI/2;return[a,{x:260*Math.cos(c),y:260*Math.sin(c)}]})),g=b.map(a=>({id:a.name,co:a,r:4+3.4*Math.sqrt(a.shown.length),x:f.get(a.industry.key).x+(F(a.name)-.5)*40,y:f.get(a.industry.key).y+(F(a.name+"#")-.5)*40})),h=d.filter(a=>c.has(a.a)&&c.has(a.b)).map(a=>({source:a.a,target:a.b,weight:a.weight,via:a.via.size})),n=(0,l.forceSimulation)(g).force("x",(function(a){var b,c,d,e=(0,m.default)(.1);function f(a){for(var e,f=0,g=b.length;f<g;++f)e=b[f],e.vx+=(d[f]-e.x)*c[f]*a}function g(){if(b){var f,g=b.length;for(c=Array(g),d=Array(g),f=0;f<g;++f)c[f]=isNaN(d[f]=+a(b[f],f,b))?0:+e(b[f],f,b)}}return"function"!=typeof a&&(a=(0,m.default)(null==a?0:+a)),f.initialize=function(a){b=a,g()},f.strength=function(a){return arguments.length?(e="function"==typeof a?a:(0,m.default)(+a),g(),f):e},f.x=function(b){return arguments.length?(a="function"==typeof b?b:(0,m.default)(+b),g(),f):a},f})(a=>f.get(a.co.industry.key).x).strength(.12)).force("y",(function(a){var b,c,d,e=(0,m.default)(.1);function f(a){for(var e,f=0,g=b.length;f<g;++f)e=b[f],e.vy+=(d[f]-e.y)*c[f]*a}function g(){if(b){var f,g=b.length;for(c=Array(g),d=Array(g),f=0;f<g;++f)c[f]=isNaN(d[f]=+a(b[f],f,b))?0:+e(b[f],f,b)}}return"function"!=typeof a&&(a=(0,m.default)(null==a?0:+a)),f.initialize=function(a){b=a,g()},f.strength=function(a){return arguments.length?(e="function"==typeof a?a:(0,m.default)(+a),g(),f):e},f.y=function(b){return arguments.length?(a="function"==typeof b?b:(0,m.default)(+b),g(),f):a},f})(a=>f.get(a.co.industry.key).y).strength(.12)).force("collide",(0,i.forceCollide)(a=>a.r+3)).force("charge",(0,k.forceManyBody)().strength(-25)).force("link",(0,j.forceLink)(h).id(a=>a.id).strength(a=>Math.min(.25,.03*a.weight)).distance(60)).stop();for(let a=0;a<320;a++)n.tick();let o=g.flatMap(a=>[a.x-a.r,a.x+a.r]),p=g.flatMap(a=>[a.y-a.r,a.y+a.r]),q=g.length?{x:Math.min(...o)-60,y:Math.min(...p)-40,w:Math.max(...o)-Math.min(...o)+120,h:Math.max(...p)-Math.min(...p)+80}:{x:-300,y:-300,w:600,h:600},r=e.map(a=>{let b=g.filter(b=>b.co.industry.key===a),c=b.reduce((a,b)=>a+b.x,0)/b.length,d=b.reduce((a,b)=>a+b.y,0)/b.length,e=Math.hypot(c,d)||1,f=c/e,h=d/e,i=Math.max(...b.map(a=>(a.x-c)*f+(a.y-d)*h+a.r));return{key:a,x:c+f*(i+16),y:d+h*(i+16)+4,anchor:f>.35?"start":f<-.35?"end":"middle",ind:z(a)}});for(let a of r){let b=7.5*a.ind.label.length,c="start"===a.anchor?a.x:"end"===a.anchor?a.x-b:a.x-b/2,d=Math.max(q.x+q.w,c+b+10);q.x=Math.min(q.x,c-10),q.w=d-q.x;let e=Math.max(q.y+q.h,a.y+12);q.y=Math.min(q.y,a.y-18),q.h=e-q.y}return q.h+=Math.max(60,.1*q.h),{nodes:g,edges:h,box:q,labels:r,cut:Math.max(0,a.length-b.length)}},[a,d]),t=q||(e?.kind==="company"?e.key:null),u=e?.kind==="industry"?e.key:null,v=(0,c.useMemo)(()=>{if(!t)return null;let a=new Set([t]);for(let b of s.edges)b.source.id===t&&a.add(b.target.id),b.target.id===t&&a.add(b.source.id);return a},[t,s]),w=(0,c.useMemo)(()=>new Set(s.nodes.slice(0,28).map(a=>a.id)),[s]);return(0,b.jsxs)("div",{ref:n,style:{flex:1,minHeight:360,position:"relative"},onClick:h,children:[o>0&&(0,b.jsxs)("svg",{width:o,height:p,viewBox:`${s.box.x} ${s.box.y} ${s.box.w} ${s.box.h}`,style:{display:"block"},children:[(0,b.jsx)("g",{children:s.edges.map((a,c)=>{let d=t&&(a.source.id===t||a.target.id===t);return(0,b.jsx)("line",{x1:a.source.x,y1:a.source.y,x2:a.target.x,y2:a.target.y,stroke:d?"#FF6B35":"#8fa6c0",strokeOpacity:d?.8:t?.04:.14,strokeWidth:d?1+Math.log2(1+a.weight):.4+.5*Math.log2(1+a.weight)},c)})}),s.labels.map(a=>(0,b.jsx)("text",{x:a.x,y:a.y,textAnchor:a.anchor,fontSize:13,fontWeight:800,fill:a.ind.color,opacity:u&&u!==a.key?.25:.85,style:{cursor:"pointer"},onClick:b=>{b.stopPropagation(),g(a.key)},children:a.ind.label},a.key)),s.nodes.map(a=>{let c=v&&!v.has(a.id)||u&&a.co.industry.key!==u,d=e?.kind==="company"&&e.key===a.id;return(0,b.jsxs)("g",{transform:`translate(${a.x},${a.y})`,style:{cursor:"pointer"},opacity:c?.18:1,onMouseEnter:()=>r(a.id),onMouseLeave:()=>r(null),onClick:b=>{b.stopPropagation(),f(a.id)},children:[(0,b.jsx)("title",{children:`${a.co.name} \xb7 ${a.co.industry.label} (inferred)
2
- ${a.co.d1} you know \xb7 ${a.co.d2} reachable${a.co.d3?` \xb7 ${a.co.d3} further`:""}`}),(0,b.jsx)("circle",{r:a.r,fill:a.co.industry.color,fillOpacity:.75,stroke:d?"#fff":a.co.S?C.S:"rgba(0,0,0,0.35)",strokeWidth:d?2.5:a.co.S?1.5:.6}),a.co.d1>0&&(0,b.jsx)("circle",{r:a.r*Math.sqrt(a.co.d1/Math.max(1,a.co.people.length)),fill:"#fff",fillOpacity:.35}),(w.has(a.id)||a.id===t||d)&&(0,b.jsx)("text",{y:a.r+11,textAnchor:"middle",fontSize:10,fill:"#e6edf0",style:{pointerEvents:"none"},children:a.co.name})]},a.id)})]}),(0,b.jsxs)("div",{style:{position:"absolute",left:12,bottom:10,fontSize:11,color:"#778",lineHeight:1.6,pointerEvents:"none"},children:["Bubble = a company, sized by your people there; white centre = the share you already know; gold ring = an S-tier person inside.",(0,b.jsx)("br",{}),"A line = one of your connections at one company knows people at the other.",s.cut?` Showing the 140 largest; ${s.cut} smaller companies are in Industries.`:""]})]})}function L({parts:a,total:c}){return(0,b.jsx)("div",{style:{display:"flex",height:6,borderRadius:3,overflow:"hidden",background:"rgba(255,255,255,0.06)"},children:a.map(([a,d],e)=>(0,b.jsx)("div",{style:{width:`${a/Math.max(1,c)*100}%`,background:d}},e))})}function M({industries:a,index:d,d1:e,d2:f,onIndustry:g,onCompany:h}){let i=(0,c.useMemo)(()=>{let a=new Map(e.map(a=>[a.id,a])),b=new Map;for(let a of f){let c=v(a),e=c?d.get(c)?.industry.key:A(null,a.headline).key;if(!e)continue;let f=b.get(e)||new Map;f.set(a.source_connection_id,(f.get(a.source_connection_id)||0)+1),b.set(e,f)}let c=new Map;for(let[d,e]of b){let[b,f]=[...e.entries()].sort((a,b)=>b[1]-a[1])[0]||[];a.get(b)&&c.set(d,{bridge:a.get(b),n:f})}return c},[d,e,f]);return(0,b.jsx)("div",{style:{flex:1,overflow:"auto",padding:16},children:(0,b.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(280px, 1fr))",gap:12},children:a.map(a=>{let c=a.people.filter(a=>1===a.degree).length,d=a.people.filter(a=>2===a.degree).length,e=a.people.filter(a=>B(a.headline)).length,f=a.people.filter(a=>"S"===a.tier).length,j=[...a.companies.entries()].sort((a,b)=>b[1]-a[1]).slice(0,3),k=i.get(a.key);return(0,b.jsxs)("div",{onClick:()=>g(a.key),style:{padding:14,borderRadius:10,border:D,borderTop:`3px solid ${a.color}`,background:"rgba(255,255,255,0.03)",cursor:"pointer"},children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"baseline"},children:[(0,b.jsx)("b",{style:{fontSize:14,color:a.color},children:a.label}),(0,b.jsx)("span",{style:{fontSize:20,fontWeight:800},children:a.people.length})]}),(0,b.jsxs)("div",{style:{fontSize:11.5,color:"#8b9a9a",margin:"4px 0 6px"},children:[c," you know · ",d," reachable · ",a.companies.size," companies · ",e," director+ · ",f," S-tier"]}),(0,b.jsx)(L,{total:a.people.length,parts:[[c,"#00ff88"],[d,"#FF6B35"]]}),j.length>0&&(0,b.jsx)("div",{style:{marginTop:8,display:"flex",gap:6,flexWrap:"wrap"},children:j.map(([a,c])=>(0,b.jsxs)("button",{onClick:b=>{b.stopPropagation(),h(a)},style:{padding:"2px 8px",borderRadius:10,border:D,background:"rgba(255,255,255,0.05)",color:"#dfe6e9",fontSize:11,cursor:"pointer"},children:[a," ",(0,b.jsx)("span",{style:{color:"#778"},children:c})]},a))}),k&&(0,b.jsxs)("div",{style:{marginTop:8,fontSize:11.5,color:"#aab7b7"},children:["Best way in: ",(0,b.jsx)("b",{style:{color:C[k.bridge.tier]||"#ccc"},children:k.bridge.name})," knows ",k.n," here"]})]},a.key)})})})}function N({p:a,note:c}){return(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"5px 0",fontSize:12.5},children:[(0,b.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:C[a.tier]||"#667",flexShrink:0}}),(0,b.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,b.jsx)("div",{style:{fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.name}),(0,b.jsx)("div",{style:{fontSize:11,color:"#8b9a9a",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:c||a.headline})]})]})}function O({focus:a,data:d,index:e,links:f,d1:g,d2:h,filters:i,onClose:j,onCompany:k,onOpenCompany:l}){let m,n,o,p="company"===a.kind,q=d.people.filter(a=>H(a,i)),r=(0,c.useMemo)(()=>{let a=new Map;for(let b of q){let c=u(b.headline);a.set(c.label,{n:(a.get(c.label)?.n||0)+1,level:c.level})}return[...a.entries()].sort((a,b)=>b[1].level-a[1].level)},[q]),s=(0,c.useMemo)(()=>p?function(a,b=[],c=[]){let d=b.filter(b=>v(b)===a),e=new Map;for(let b of c)v(b)===a&&e.set(b.source_connection_id,(e.get(b.source_connection_id)||0)+1);let f=new Map(b.map(a=>[a.id,a]));return{direct:d,bridges:[...e.entries()].map(([a,b])=>({bridge:f.get(a),n:b})).filter(a=>a.bridge).sort((a,b)=>b.n-a.n||(Number(b.bridge.power_score)||0)-(Number(a.bridge.power_score)||0))}}(d.name,g,h):null,[p,d,g,h]),t=(0,c.useMemo)(()=>p?f.filter(a=>a.a===d.name||a.b===d.name).map(a=>({name:a.a===d.name?a.b:a.a,weight:a.weight})).sort((a,b)=>b.weight-a.weight).slice(0,8):[],[p,f,d]),w=[...q].sort((a,b)=>(Number(b.power_score)||0)-(Number(a.power_score)||0)).slice(0,6),x=p?d.industry:d,y=q.filter(a=>1===a.degree).length,z=q.filter(a=>2===a.degree).length,A=p?[]:[...d.companies.entries()].sort((a,b)=>b[1]-a[1]).slice(0,10);return(0,b.jsxs)("aside",{style:{width:360,flexShrink:0,borderLeft:D,overflow:"auto",padding:16,background:"rgba(255,255,255,0.02)"},children:[(0,b.jsx)("button",{onClick:j,style:{background:"none",border:"none",color:"#888",cursor:"pointer",fontSize:12,padding:0},children:"✕ Close"}),(0,b.jsxs)("div",{style:{fontSize:10,letterSpacing:1,color:"#8b9a9a",marginTop:8},children:[p?"COMPANY":"INDUSTRY"," ANALYZER"]}),(0,b.jsx)("h2",{style:{margin:"4px 0 6px",fontSize:20},children:p?d.name:d.label}),(0,b.jsxs)("span",{style:{fontSize:11,padding:"2px 8px",borderRadius:10,background:`${x.color}22`,color:x.color},children:[x.label,p?" · inferred":""]}),p&&(0,b.jsx)(Q,{name:d.name}),(0,b.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(3, 1fr)",gap:8,margin:"14px 0"},children:[[y,"you know","#00ff88"],[z,"reachable","#FF6B35"],[q.filter(a=>B(a.headline)).length,"director+","#FFD700"]].map(([a,c,d])=>(0,b.jsxs)("div",{style:{padding:8,borderRadius:8,background:"rgba(255,255,255,0.04)",textAlign:"center"},children:[(0,b.jsx)("div",{style:{fontSize:20,fontWeight:800,color:d},children:a}),(0,b.jsx)("div",{style:{fontSize:10.5,color:"#8b9a9a"},children:c})]},c))}),(0,b.jsx)(P,{title:"By level",children:r.map(([a,{n:c}])=>(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"110px 1fr 28px",gap:8,alignItems:"center",fontSize:11.5,marginBottom:4},children:[(0,b.jsx)("span",{style:{color:"#aab7b7"},children:a}),(0,b.jsx)(L,{total:q.length,parts:[[c,"#3498DB"]]}),(0,b.jsx)("span",{style:{color:"#778",textAlign:"right"},children:c})]},a))}),p&&s&&(0,b.jsxs)(P,{title:"Ways in",children:[s.direct.length>0&&(0,b.jsxs)("div",{style:{fontSize:11,color:"#00ff88",margin:"2px 0"},children:["You already know ",s.direct.length," here"]}),(m=new Map(s.bridges.map(({bridge:a,n:b})=>[a.id,b])),n=[...s.direct].sort((a,b)=>(m.get(b.id)||0)-(m.get(a.id)||0)).slice(0,4),o=new Set(s.direct.map(a=>a.id)),(0,b.jsxs)(b.Fragment,{children:[n.map(a=>(0,b.jsx)(N,{p:a,note:m.get(a.id)?`works here \xb7 knows ${m.get(a.id)} here`:`works here \xb7 ${a.headline||""}`},a.id)),s.bridges.filter(({bridge:a})=>!o.has(a.id)).slice(0,5).map(({bridge:a,n:c})=>(0,b.jsx)(N,{p:a,note:`knows ${c} ${1===c?"person":"people"} here`},a.id))]})),!s.direct.length&&!s.bridges.length&&(0,b.jsx)("div",{style:{fontSize:12,color:"#778"},children:"No one you know links here yet."})]}),(0,b.jsx)(P,{title:p?"Most powerful people here":"Most powerful people in this industry",children:w.map(a=>(0,b.jsx)(N,{p:a,note:`${1===a.degree?"you know them":2===a.degree?"2nd degree":"3rd+"} \xb7 ${a.headline||""}`},a.id))}),p&&t.length>0&&(0,b.jsx)(P,{title:"Connected companies",children:(0,b.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap"},children:t.map(a=>(0,b.jsxs)("button",{onClick:()=>k(a.name),style:{padding:"3px 9px",borderRadius:10,border:D,background:`${e.get(a.name)?.industry.color||"#666"}22`,color:"#dfe6e9",fontSize:11.5,cursor:"pointer"},children:[a.name," ",(0,b.jsx)("span",{style:{color:"#778"},children:a.weight})]},a.name))})}),!p&&(0,b.jsx)(P,{title:"Companies",children:A.map(([a,c])=>(0,b.jsxs)("div",{onClick:()=>k(a),style:{display:"grid",gridTemplateColumns:"1fr 60px 24px",gap:8,alignItems:"center",fontSize:12,padding:"3px 0",cursor:"pointer"},children:[(0,b.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a}),(0,b.jsx)(L,{total:A[0][1],parts:[[c,x.color]]}),(0,b.jsx)("span",{style:{color:"#778",textAlign:"right"},children:c})]},a))}),p&&l&&(0,b.jsxs)("button",{onClick:()=>l(d),style:{marginTop:14,width:"100%",padding:"10px",borderRadius:8,border:"none",cursor:"pointer",fontWeight:700,background:"linear-gradient(135deg, #00ff88, #3498DB)",color:"#000"},children:["Path to the top of ",d.name," →"]})]})}function P({title:a,children:c}){return(0,b.jsxs)("div",{style:{marginTop:14},children:[(0,b.jsx)("div",{style:{fontSize:10.5,letterSpacing:.8,color:"#8b9a9a",fontWeight:700,marginBottom:6},children:a.toUpperCase()}),c]})}function Q({name:a}){let{companies:c,setScore:d}=q(),e=c?.find(b=>b.name===a);if(!e)return null;let f={yours:"your score",known:"known list",network:"estimated",default:"unknown company"}[e.source];return(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:10,fontSize:12,color:"#aab7b7"},children:["Company score ",(0,b.jsx)("b",{style:{color:"#fff",fontSize:15},children:e.score}),"/10 · ",f,(0,b.jsx)("span",{style:{marginLeft:"auto"},children:(0,b.jsx)(r,{company:e,onSet:d,compact:!0})})]})}var R=a.i(75857),S=a.i(38246);function T(){let{userId:a}=(0,R.useUser)(),[h,i]=(0,c.useState)([]),[j,k]=(0,c.useState)(null),[l,m]=(0,c.useState)([]),[n,o]=(0,c.useState)(!0),[p,q]=(0,c.useState)([]),[r,t]=(0,c.useState)([]),[w,x]=(0,c.useState)([]),[y,z]=(0,c.useState)("map"),[A,B]=(0,c.useState)(0);(0,c.useEffect)(()=>{!f.IS_DEMO&&a&&b();async function b(){let b=(0,g.hasCsvNetwork)()?(0,g.loadCsvNetwork)():null,c=[],d=[],f=[];if(b)c=b.degree1,d=b.degree2||[];else{let b=await (0,e.loadNetwork)(a);c=b.degree1,d=b.degree2,f=b.degree3}q(c),t(d),x(f||[]);let h={},j=new Set;[...c,...d,...f].forEach(a=>{if(j.has(a.profile_url))return;j.add(a.profile_url);let b=v(a);b&&(h[b]||(h[b]={name:b,d1:0,d2:0,d3:0,sCount:0,aCount:0,people:[]}),1===a.degree?h[b].d1++:2===a.degree?h[b].d2++:h[b].d3++,"S"===a.tier&&h[b].sCount++,"A"===a.tier&&h[b].aCount++,h[b].people.push(a))}),i(Object.values(h).filter(a=>a.d1+a.d2+a.d3>=3).sort((a,b)=>3*b.sCount+2*b.aCount+b.d1+b.d2+b.d3-(3*a.sCount+2*a.aCount+a.d1+a.d2+a.d3))),o(!1)}},[a,A]);let[C,D]=(0,c.useState)(!1),[E,F]=(0,c.useState)([]);function G(a){let b=new Set(p.map(a=>a.profile_url)),c=new Set([...p,...r].map(a=>a.profile_url));return a.map(d=>({...d,connected:b.has(d.profile_url||d.profileUrl),known:c.has(d.profile_url||d.profileUrl),seniority:u(d.headline),mutualCount:a.filter(a=>b.has(a.profile_url||a.profileUrl)&&a.id!==d.id).length}))}function H(a){k(a),m(G(a.people))}async function J(){if(f.IS_DEMO||!j)return;let a=!1;try{a="1"===localStorage.getItem("six-degrees-company-scan-ok")}catch{}if(!a){if(!window.confirm("Company scans are experimental: they have not been tested against live LinkedIn yet, so the results may be incomplete. Like any scan, it opens a Chrome window and counts toward the profile views LinkedIn watches.\n\nRun it anyway?"))return;try{localStorage.setItem("six-degrees-company-scan-ok","1")}catch{}}D(!0),F(["Checking the scanner..."]);let b=(0,d.notReadyMessage)(await (0,d.scraperStatus)().catch(()=>null));if(b){F([b]),D(!1);return}try{let a=await (0,d.runScrape)("company",{name:j.name,onLog:F});if(0===a.exitCode){F(a=>[...a,"Loading the new people..."]);let a=await fetch(`/api/connections?scanned_company=${encodeURIComponent(j.name)}&limit=500`),b=(await a.json()).connections||[];b.length?(m(G(b)),F(a=>[...a,`${b.length} people at ${j.name}.`])):F(a=>[...a,"Nothing new was found."])}}catch(a){F([a.message||"Failed to start the scan"])}finally{D(!1)}}let K={},L=0;l.forEach(a=>{let b=a.seniority.key;K[b]||(K[b]={...a.seniority,people:[]}),a.connected&&L++;let c=Math.min(90,12*a.mutualCount);a.seniority.level<=1?c+=20:a.seniority.level<=2?c+=10:a.seniority.level>=5&&(c-=10),c=Math.max(5,Math.min(95,c)),a.connected&&(c=100);let d=null;if(2===a.degree&&a.source_connection_id){let b=p.find(b=>b.id===a.source_connection_id);b&&(d=b.name)}let e={0:5,1:10,2:20,3:35,4:50,5:75,6:100}[a.seniority.level]||10;K[b].people.push({...a,likelihood:c,bridgeName:d,xp:e})}),Object.values(K).forEach(a=>a.people.sort((a,b)=>b.likelihood-a.likelihood));let M=Object.values(K).sort((a,b)=>b.level-a.level);return f.IS_DEMO?(0,b.jsxs)("div",{style:{minHeight:"100vh",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:12,background:"#0a0a1a",color:"rgba(255,255,255,0.7)",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'},children:[(0,b.jsx)("h1",{style:{fontSize:20,fontWeight:700,margin:0,color:"#fff"},children:"Not part of the demo"}),(0,b.jsx)("p",{style:{fontSize:13,margin:0},children:"The public demo includes the Network Circle and Degrees views only."}),(0,b.jsx)(S.default,{href:"/",style:{fontSize:13,color:"#888",textDecoration:"none"},children:"← Back to the network"})]}):n?(0,b.jsx)("div",{style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",background:"#0a0a1a",color:"#fff"},children:"Loading..."}):(0,b.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,b.jsx)("header",{style:{padding:"14px 24px",borderBottom:"1px solid rgba(255,255,255,0.1)",flexShrink:0},children:(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12},children:[(0,b.jsxs)(S.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,b.jsx)("span",{style:{fontSize:16},children:"←"})," Map"]}),(0,b.jsx)("h1",{style:{fontSize:20,fontWeight:700,margin:0,background:"linear-gradient(135deg, #00ff88, #3498DB)",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent"},children:"Paths"}),!j&&(0,b.jsx)("div",{style:{display:"flex",gap:4,marginLeft:8,padding:3,borderRadius:8,background:"rgba(255,255,255,0.05)"},children:[["map","Map"],["industries","Industries"],["companies","Companies"],["scores","Scores"]].map(([a,c])=>(0,b.jsx)("button",{onClick:()=>z(a),style:{padding:"5px 12px",borderRadius:6,border:"none",cursor:"pointer",fontSize:12.5,fontWeight:700,background:y===a?"linear-gradient(135deg, #00ff88, #3498DB)":"transparent",color:y===a?"#000":"#aab"},children:c},a))}),j&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("button",{onClick:()=>{k(null),m([])},style:{background:"none",border:"none",color:"#888",cursor:"pointer",fontSize:12},children:"← Companies"}),(0,b.jsx)("span",{style:{fontSize:13,fontWeight:600},children:j.name}),(0,b.jsxs)("span",{style:{fontSize:11,color:"#888"},children:[L,"/",l.length," connected"]}),(0,b.jsx)("button",{onClick:J,disabled:C,style:{marginLeft:"auto",padding:"5px 12px",borderRadius:6,border:"none",cursor:C?"not-allowed":"pointer",background:C?"#333":"rgba(0,255,136,0.15)",color:C?"#555":"#00ff88",fontSize:11,fontWeight:600},children:C?"Scanning...":"+ Scan Full Company"}),(0,b.jsx)("span",{title:"Not yet tested against live LinkedIn. Results may be incomplete.",style:{fontSize:9.5,fontWeight:800,letterSpacing:.6,padding:"3px 7px",borderRadius:20,border:"1px solid rgba(255,215,0,0.45)",color:"#FFD700"},children:"EXPERIMENTAL"})]})]})}),j||"scores"!==y?j||"companies"===y?(0,b.jsx)("div",{style:{flex:1,overflow:"auto",padding:"16px 24px"},children:(0,b.jsxs)("div",{style:{maxWidth:700,margin:"0 auto"},children:[!j&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("p",{style:{fontSize:13,color:"#888",marginBottom:16},children:["Pick a company to see your path to the top. Based on ",p.length+r.length," people in your network."]}),(0,b.jsx)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:h.slice(0,60).map(a=>(0,b.jsxs)("button",{onClick:()=>H(a),style:{padding:"14px",borderRadius:10,border:"none",cursor:"pointer",textAlign:"left",background:"rgba(255,255,255,0.04)",transition:"background 0.15s",borderLeft:`3px solid ${a.sCount>0?"#FFD700":a.aCount>0?"#9B59B6":"#3498DB"}`},onMouseEnter:a=>a.currentTarget.style.background="rgba(255,255,255,0.08)",onMouseLeave:a=>a.currentTarget.style.background="rgba(255,255,255,0.04)",children:[(0,b.jsx)("div",{style:{fontSize:14,fontWeight:700,color:"#fff",marginBottom:4},children:a.name}),(0,b.jsxs)("div",{style:{display:"flex",gap:8,fontSize:10,color:"#888"},children:[(0,b.jsxs)("span",{style:{color:"#00ff88"},children:[a.d1," connected"]}),(0,b.jsxs)("span",{children:[a.d2+a.d3," locked"]})]}),(0,b.jsxs)("div",{style:{display:"flex",gap:6,marginTop:4,fontSize:9},children:[a.sCount>0&&(0,b.jsxs)("span",{style:{color:"#FFD700",fontWeight:600},children:[a.sCount,"S"]}),a.aCount>0&&(0,b.jsxs)("span",{style:{color:"#9B59B6",fontWeight:600},children:[a.aCount,"A"]}),(0,b.jsxs)("span",{style:{color:"#555"},children:[a.d1+a.d2," total"]})]}),(0,b.jsx)("div",{style:{height:3,background:"rgba(255,255,255,0.08)",borderRadius:2,marginTop:6},children:(0,b.jsx)("div",{style:{height:"100%",borderRadius:2,width:`${a.d1/Math.max(a.d1+a.d2+a.d3,1)*100}%`,background:a.sCount>0?"#FFD700":"#00ff88"}})})]},a.name))})]}),C&&(0,b.jsxs)("div",{style:{padding:"10px",borderRadius:8,background:"rgba(0,255,136,0.06)",border:"1px solid rgba(0,255,136,0.2)",marginBottom:12},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:4},children:[(0,b.jsx)("div",{style:{width:6,height:6,borderRadius:"50%",background:"#00ff88",animation:"pulse 1s infinite"}}),(0,b.jsx)("span",{style:{fontSize:10,fontWeight:600,color:"#00ff88"},children:"Scanning LinkedIn..."})]}),(0,b.jsx)("div",{style:{fontFamily:"monospace",fontSize:9,color:"#777",maxHeight:60,overflow:"auto"},children:E.map((a,c)=>(0,b.jsx)("div",{children:a},c))})]}),j&&M.map(a=>(0,b.jsxs)("div",{style:{marginBottom:16},children:[(0,b.jsxs)("div",{style:{padding:"8px 12px",borderRadius:6,marginBottom:4,background:a.level>=5?"rgba(255,215,0,0.08)":a.level>=3?"rgba(155,89,182,0.08)":"rgba(52,152,219,0.08)",borderLeft:`3px solid ${a.level>=5?"#FFD700":a.level>=3?"#9B59B6":"#3498DB"}`,display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("span",{style:{fontSize:12,fontWeight:700,color:a.level>=5?"#FFD700":a.level>=3?"#9B59B6":"#3498DB"},children:a.label}),a.level>=5&&(0,b.jsx)("span",{style:{fontSize:9,color:"#FF6B35",marginLeft:8,fontWeight:700},children:"TARGET"})]}),(0,b.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[(0,b.jsxs)("span",{style:{fontSize:9,color:"#FF6B35",fontWeight:600},children:["+",a.people.filter(a=>!a.connected).reduce((a,b)=>a+(b.xp||0),0)," XP"]}),(0,b.jsxs)("span",{style:{fontSize:10,color:"#666"},children:[a.people.filter(a=>a.connected).length,"/",a.people.length]})]})]}),a.people.map((c,d)=>(0,b.jsx)(U,{p:c,level:a,companyPeople:l,d1Data:p,selectedCompany:j},c.id||d))]},a.key))]})}):(0,b.jsx)(I,{d1:p,d2:r,d3:w,tab:y,onOpenCompany:a=>H({...a,sCount:a.S,aCount:a.A})}):(0,b.jsx)(s,{onRescored:()=>B(a=>a+1)})]})}function U({p:a,level:d,companyPeople:e,d1Data:f,selectedCompany:g}){let[h,i]=(0,c.useState)(!1),j=new Set(f.map(a=>a.profile_url));e.filter(a=>j.has(a.profile_url||a.profileUrl));let k=e.filter(b=>u(b.headline).level>a.seniority.level&&!j.has(b.profile_url||b.profileUrl)),l=e.filter(b=>u(b.headline).level===a.seniority.level&&b.id!==a.id),m=[];if(!a.connected){let b=k.length;b>0&&m.push({icon:"⬆️",text:`Adding them gives you a mutual with ${b} people above in the hierarchy`,color:"#00ff88"});let c=l.filter(a=>j.has(a.profile_url||a.profileUrl)).length;c>0?m.push({icon:"🤝",text:`${c} people at their level already connected — high social proof`,color:"#FFD700"}):m.push({icon:"🎯",text:"First connection at this level — opens a new layer",color:"#3498DB"}),a.bridgeName&&m.push({icon:"🔗",text:`Reachable through ${a.bridgeName} — warm intro possible`,color:"#FF6B35"}),a.seniority.level>=5?m.push({icon:"👑",text:`${a.seniority.label} — decision maker, high strategic value but low accept rate`,color:"#FFD700"}):a.seniority.level>=3?m.push({icon:"📊",text:`${a.seniority.label} — middle management, good balance of access and accept rate`,color:"#9B59B6"}):m.push({icon:"✅",text:`${a.seniority.label} — highest accept rate, builds mutual foundation for people above`,color:"#00ff88"}),a.likelihood>=60?m.push({icon:"🔥",text:`${a.likelihood}% likely to accept — strong mutual overlap + approachable role`,color:"#00ff88"}):a.likelihood>=30?m.push({icon:"⚡",text:`${a.likelihood}% likely — moderate chance, add more people at their level first`,color:"#FFD700"}):m.push({icon:"🔒",text:`${a.likelihood}% likely — low chance right now, build more connections below them first`,color:"#ff5050"})}return(0,b.jsxs)("div",{style:{borderBottom:"1px solid rgba(255,255,255,0.03)"},children:[(0,b.jsxs)("div",{onClick:()=>i(!h),style:{display:"flex",alignItems:"center",gap:8,padding:"6px 8px",cursor:"pointer",opacity:a.connected?.7:1},onMouseEnter:a=>a.currentTarget.style.background="rgba(255,255,255,0.04)",onMouseLeave:a=>a.currentTarget.style.background="transparent",children:[(0,b.jsx)("span",{style:{fontSize:8,color:"#555",flexShrink:0,width:10},children:h?"▾":"▸"}),(0,b.jsx)("div",{style:{width:18,height:18,borderRadius:"50%",flexShrink:0,fontSize:8,display:"flex",alignItems:"center",justifyContent:"center",background:a.connected?"rgba(0,255,136,0.2)":"rgba(255,255,255,0.05)",color:a.connected?"#00ff88":"#555",border:`1px solid ${a.connected?"rgba(0,255,136,0.3)":"rgba(255,255,255,0.1)"}`},children:a.connected?"✓":"🔒"}),a.profile_image_url||a.imageUrl?(0,b.jsx)("img",{src:a.profile_image_url||a.imageUrl,alt:"",style:{width:26,height:26,borderRadius:"50%",objectFit:"cover",flexShrink:0},onError:a=>a.target.style.display="none"}):(0,b.jsx)("div",{style:{width:26,height:26,borderRadius:"50%",flexShrink:0,fontSize:10,fontWeight:700,background:"#333",color:"#888",display:"flex",alignItems:"center",justifyContent:"center"},children:a.name?.charAt(0)}),(0,b.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,b.jsx)("div",{style:{fontSize:11,fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.name}),(0,b.jsx)("div",{style:{fontSize:8,color:"#666",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.headline?.substring(0,45)})]}),!a.connected&&a.bridgeName&&(0,b.jsxs)("span",{style:{fontSize:8,color:"#FF6B35",flexShrink:0,maxWidth:55,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:["via ",a.bridgeName.split(" ")[0]]}),!a.connected&&(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,flexShrink:0},children:[(0,b.jsxs)("span",{style:{fontSize:8,fontWeight:700,color:"#FF6B35"},children:["+",a.xp]}),(0,b.jsxs)("div",{style:{fontSize:9,fontWeight:700,minWidth:30,textAlign:"right",color:a.likelihood>=60?"#00ff88":a.likelihood>=30?"#FFD700":"#ff5050"},children:[a.likelihood,"%"]})]}),!a.connected&&(0,b.jsx)("a",{href:a.profile_url||a.profileUrl,target:"_blank",rel:"noopener noreferrer",onClick:a=>a.stopPropagation(),style:{padding:"3px 7px",borderRadius:4,fontSize:8,fontWeight:700,background:"#0077B5",color:"#fff",textDecoration:"none",flexShrink:0},children:"Add"})]}),h&&(0,b.jsxs)("div",{style:{padding:"8px 12px 10px 44px",background:"rgba(255,255,255,0.02)",borderTop:"1px solid rgba(255,255,255,0.04)"},children:[(0,b.jsx)("div",{style:{fontSize:11,color:"#aaa",marginBottom:8},children:a.headline||"No headline available"}),(0,b.jsxs)("div",{style:{display:"flex",gap:6,alignItems:"center",marginBottom:8,flexWrap:"wrap"},children:[(0,b.jsxs)("div",{style:{display:"inline-block",padding:"2px 8px",borderRadius:4,fontSize:9,fontWeight:600,background:a.seniority.level>=5?"rgba(255,215,0,0.1)":a.seniority.level>=3?"rgba(155,89,182,0.1)":"rgba(52,152,219,0.1)",color:a.seniority.level>=5?"#FFD700":a.seniority.level>=3?"#9B59B6":"#3498DB",border:`1px solid ${a.seniority.level>=5?"rgba(255,215,0,0.2)":a.seniority.level>=3?"rgba(155,89,182,0.2)":"rgba(52,152,219,0.2)"}`},children:[a.seniority.label," · Level ",a.seniority.level]}),!a.connected&&(0,b.jsxs)("div",{style:{display:"inline-block",padding:"2px 8px",borderRadius:4,fontSize:9,fontWeight:700,background:"rgba(255,107,53,0.1)",color:"#FF6B35",border:"1px solid rgba(255,107,53,0.2)"},children:["+",a.xp," XP"]})]}),!a.connected&&m.length>0&&(0,b.jsxs)("div",{style:{marginTop:4},children:[(0,b.jsx)("div",{style:{fontSize:9,fontWeight:700,color:"#888",letterSpacing:.5,marginBottom:4},children:"STRATEGIC VALUE"}),m.map((a,c)=>(0,b.jsxs)("div",{style:{display:"flex",gap:6,alignItems:"flex-start",padding:"2px 0",fontSize:10,color:"#bbb"},children:[(0,b.jsx)("span",{style:{fontSize:11,lineHeight:1},children:a.icon}),(0,b.jsx)("span",{style:{color:a.color},children:a.text})]},c))]}),a.connected&&(0,b.jsxs)("div",{style:{fontSize:10,color:"#00ff88",fontWeight:600},children:["✓ Already connected — contributes as mutual for others at ",g?.name]})]})]})}a.s(["default",0,function(){return(0,b.jsx)(h.default,{children:(0,b.jsx)(T,{})})}],90195)}];
3
-
4
- //# sourceMappingURL=app_paths_page_1ol90m7.js.map
@@ -1,6 +0,0 @@
1
- self.__MIDDLEWARE_MATCHERS = [
2
- {
3
- "regexp": "^(?:\\/(_next\\/data\\/[^/]{1,}))?\\/api(?:\\/((?:[^\\/#\\?]+?)(?:\\/(?:[^\\/#\\?]+?))*))?(\\.json|\\.rsc|\\.segments\\/.+\\.segment\\.rsc)?[\\/#\\?]?$",
4
- "originalSource": "/api/:path*"
5
- }
6
- ];self.__MIDDLEWARE_MATCHERS_CB && self.__MIDDLEWARE_MATCHERS_CB()
@@ -1 +0,0 @@
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:o}=(0,r.useUser)();return o&&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:o?(0,t.jsxs)("div",{style:{maxWidth:420},children:[(0,t.jsx)("div",{style:{fontSize:18,fontWeight:700,marginBottom:8},children:"Can’t reach 6 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),o=e.i(5258);let i={height:10,borderRadius:6},l={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 d=function(e=[],t=[],r=[]){let n=new Set(t.map(e=>e.source_connection_id).filter(Boolean)),o=new Set(r.map(e=>e.profileUrl).filter(Boolean)),i=e=>n.has(e.id)?"mapped":e.profile_url&&o.has(e.profile_url)?"hidden":"todo",l={mapped:0,hidden:0,todo:0},s={};for(let t of e){let e=i(t);l[e]+=1;let r=t.tier||"D";s[r]=s[r]||{mapped:0,hidden:0,todo:0,total:0},s[r][e]+=1,s[r].total+=1}let a=e.length,d=l.mapped+l.hidden;return{...l,total:a,resolved:d,percent:a?Math.round(d/a*100):0,batches:Math.ceil(l.todo/25),byTier:s}}(e,r,n);if(!d.total)return null;let c=e=>d.total?e/d.total*100:0,u=0===d.todo;return(0,t.jsxs)("div",{style:l,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:u?"#00ff88":"#8b9a9a",fontWeight:600},children:u?"Everything reachable is mapped":`${d.percent}%`})]}),(0,t.jsxs)("div",{style:{...i,display:"flex",overflow:"hidden",background:"rgba(255,255,255,0.06)"},children:[(0,t.jsx)("div",{style:{width:`${c(d.mapped)}%`,background:"#00ff88"}}),(0,t.jsx)("div",{style:{width:`${c(d.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)(a,{color:"#00ff88",label:"mapped",value:d.mapped}),(0,t.jsx)(a,{color:"rgba(255,255,255,0.35)",label:"hidden",value:d.hidden}),(0,t.jsx)(a,{color:"rgba(255,255,255,0.12)",label:"to go",value:d.todo}),(0,t.jsxs)("span",{style:{color:"#667",marginLeft:"auto"},children:["of ",d.total]})]}),d.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."}),!u&&(0,t.jsxs)("p",{style:{fontSize:11.5,color:"#8b9a9a",margin:"10px 0 0",lineHeight:1.6},children:[d.todo," left — about ",(0,t.jsxs)("b",{children:[d.batches," ",1===d.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=>d.byTier[e]?.total).map(e=>{let r=d.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:o.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:o.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 a({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 d=e.i(64745),c=e.i(2776),u=e.i(15812),f=e.i(22016);let g={1:"Observer",11:"Connector",31:"Networker",51:"Strategist",76:"Architect"};function h(){let{userId:e,userName:o,userProfile:i}=(0,u.useUser)(),l=i||{name:o||"User",headline:"",sectors:[],goals:[]},[a,c]=(0,r.useState)(null),[h,y]=(0,r.useState)(!0),[x,b]=(0,r.useState)([]),[m,j]=(0,r.useState)({total:0,sent:0,accepted:0}),[v,S]=(0,r.useState)({degree1:[],degree2:[],skips:[]});if((0,r.useEffect)(()=>{!d.IS_DEMO&&e&&t();async function t(){let t=await (0,n.loadNetwork)(e),r=t.degree1,o=t.degree2,i={S:0,A:0,B:0,C:0,D:0};r.forEach(e=>{i[e.tier]=(i[e.tier]||0)+1});let l={S:0,A:0,B:0,C:0,D:0};o.forEach(e=>{l[e.tier]=(l[e.tier]||0)+1});let s=[...new Set(o.map(e=>e.source_connection_id).filter(Boolean))].length,a=r.filter(e=>e.is_catalyst).length,d={};r.forEach(e=>{e.company&&(d[e.company]=(d[e.company]||0)+1)});let u=Object.entries(d).sort((e,t)=>t[1]-e[1]).slice(0,10),f=100*i.S+40*i.A+15*i.B+5*i.C+ +i.D+200*s+150*a+50*l.S+r.length,g=Math.floor(Math.sqrt(f/10)),h=g*g*10,p=(g+1)*(g+1)*10;c({d1Count:r.length,d2Count:o.length,tiers:i,d2Tiers:l,clusters:s,catalysts:a,networkPower:f,level:g,xpProgress:(f-h)/(p-h)*100,topCompanies:u,unlockedPaths:0}),fetch("/api/scraper").then(e=>e.json()).then(e=>S({degree1:r,degree2:o,skips:e.skips||[]})).catch(()=>S({degree1:r,degree2:o,skips:[]})),fetch(`/api/notifications?userId=${e}`).then(e=>e.json()).then(e=>b(e.notifications||[])).catch(()=>{}),fetch("/api/queue").then(e=>e.json()).then(e=>{let t=e.items||[];j({total:t.length,sent:t.filter(e=>"sent"===e.status).length,accepted:t.filter(e=>"accepted"===e.status).length})}).catch(()=>{}),y(!1)}},[e]),d.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)(f.default,{href:"/",style:{fontSize:12,color:"rgba(255,255,255,0.5)",textDecoration:"none"},children:"← Back to the network"})]});if(h)return(0,t.jsx)("div",{style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",background:"#0a0a1a",color:"#fff"},children:"Loading profile..."});let C={S:"#FFD700",A:"#9B59B6",B:"#3498DB",C:"#95A5A6",D:"#BDC3C7"},k=[{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)(f.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(g))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:v.degree1,degree2:v.degree2,skips:v.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)(f.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:m.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:m.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:m.accepted}),(0,t.jsx)("div",{style:{fontSize:10,color:"#888"},children:"Accepted"})]})]})]}),x.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 (",x.filter(e=>!e.seen).length," new)"]}),(0,t.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6,maxHeight:200,overflowY:"auto"},children:x.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)(p,{label:"Connections",value:a.d1Count}),(0,t.jsx)(p,{label:"Degree-2 Reach",value:a.d2Count}),(0,t.jsx)(p,{label:"Clusters",value:a.clusters}),(0,t.jsx)(p,{label:"S-Tier",value:a.tiers.S,color:"#FFD700"}),(0,t.jsx)(p,{label:"A-Tier",value:a.tiers.A,color:"#9B59B6"}),(0,t.jsx)(p,{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:C[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:C[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 (",k.filter(e=>e.done).length,"/",k.length,")"]}),(0,t.jsx)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:8},children:k.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.jsx)("h3",{style:{fontSize:14,fontWeight:700,marginTop:0,marginBottom:12},children:"Your Sectors"}),(0,t.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:l.sectors.map((e,r)=>(0,t.jsx)("span",{style:{padding:"4px 12px",borderRadius:20,fontSize:11,fontWeight:600,background:"rgba(52,152,219,0.15)",border:"1px solid rgba(52,152,219,0.3)",color:"#3498DB"},children:e},r))})]})]})})]})}function p({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)(c.default,{children:(0,t.jsx)(h,{})})}],99201)},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])},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 x},useLinkStatus:function(){return m}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i=e.r(90809),l=e.r(43476),s=i._(e.r(71645)),a=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 x(t){var r;let n,o,i,[x,m]=(0,s.useOptimistic)(h.IDLE_LINK_STATUS),j=(0,s.useRef)(null),{href:v,as:S,children:C,prefetch:k=null,passHref:B,replace:w,shallow:R,scroll:T,onClick:D,onMouseEnter:F,onTouchStart:_,legacyBehavior:z=!1,onNavigate:A,transitionTypes:E,ref:I,unstable_dynamicOnHover:P,...O}=t;n=C,z&&("string"==typeof n||"number"==typeof n)&&(n=(0,l.jsx)("a",{children:n}));let W=s.default.useContext(d.AppRouterContext),L=!1!==k,N=!1===k?"none":!0===k?"full":"auto",M="none"!==N?"auto"===N?y.FetchStrategy.PPR:y.FetchStrategy.Full:y.FetchStrategy.PPR,U="string"==typeof(r=S||v)?r:(0,a.formatUrl)(r);if(z){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});o=s.default.Children.only(n)}let $=z?o&&"object"==typeof o&&o.ref:I,K,H=s.default.useCallback(e=>(null!==W&&(j.current=(0,h.mountLinkInstance)(e,U,W,M,L,m,K)),()=>{j.current&&((0,h.unmountLinkForCurrentNavigation)(j.current),j.current=null),(0,h.unmountPrefetchableInstance)(e)}),[L,U,W,M,m,K]),Q={ref:(0,c.useMergedRef)(H,$),onClick(t){z||"function"!=typeof D||D(t),z&&o.props&&"function"==typeof o.props.onClick&&o.props.onClick(t),!W||t.defaultPrevented||function(t,r,n,o,i,l,a,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)){o&&(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);s.default.startTransition(()=>{f(r,o?"replace":"push",!1===i?g.ScrollBehavior.NoScroll:g.ScrollBehavior.Default,n.current,a,d)})}}(t,U,j,w,T,A,E,N)},onMouseEnter(e){z||"function"!=typeof F||F(e),z&&o.props&&"function"==typeof o.props.onMouseEnter&&o.props.onMouseEnter(e),W&&L&&(0,h.onNavigationIntent)(e.currentTarget,!0===P)},onTouchStart:function(e){z||"function"!=typeof _||_(e),z&&o.props&&"function"==typeof o.props.onTouchStart&&o.props.onTouchStart(e),W&&L&&(0,h.onNavigationIntent)(e.currentTarget,!0===P)}};return(0,u.isAbsoluteUrl)(U)?Q.href=U:z&&!B&&("a"!==o.type||"href"in o.props)||(Q.href=(0,f.addBasePath)(U)),i=z?s.default.cloneElement(o,Q):(0,l.jsx)("a",{...O,...Q,children:n}),(0,l.jsx)(b.Provider,{value:x,children:i})}let b=(0,s.createContext)(h.IDLE_LINK_STATUS),m=()=>(0,s.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 o}});let n=e.r(71645);function o(e,t){let r=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(r.current=i(e,n)),t&&(o.current=i(t,n))},[e,t])}function i(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 x},MiddlewareNotFoundError:function(){return v},MissingStaticPage:function(){return j},NormalizeError:function(){return b},PageNotFoundError:function(){return m},SP:function(){return p},ST:function(){return y},WEB_VITALS:function(){return i},execOnce:function(){return l},getDisplayName:function(){return u},getLocationOrigin:function(){return d},getURL:function(){return c},isAbsoluteUrl:function(){return a},isResSent:function(){return f},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return g},stringifyError:function(){return S}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i=["CLS","FCP","FID","INP","LCP","TTFB"];function l(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let s=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,a=e=>{let t=e.charCodeAt(0);return!!(t>=65&&t<=90||t>=97&&t<=122)&&s.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 x extends Error{}class b extends Error{}class m extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class j extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class v extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function S(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 i}});let n=e.r(18967),o=e.r(52817);function i(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,o.hasBasePath)(r.pathname)}catch(e){return!1}}},98183,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return a},searchParamsToUrlQuery:function(){return i},urlQueryToSearchParams:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function i(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 s(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 a(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 s},formatWithValidation:function(){return d},urlObjectKeys:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i=e.r(90809)._(e.r(98183)),l=/https?|ftp|gopher|file/;function s(e){let{auth:t,hostname:r}=e,n=e.protocol||"",o=e.pathname||"",s=e.hash||"",a=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)),a&&"object"==typeof a&&(a=String(i.urlQueryToSearchParams(a)));let c=e.search||a&&`?${a}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||l.test(n))&&!1!==d?(d="//"+(d||""),o&&"/"!==o[0]&&(o="/"+o)):d||(d=""),s&&"#"!==s[0]&&(s="#"+s),c&&"?"!==c[0]&&(c="?"+c),o=o.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${n}${d}${o}${c}${s}`}let a=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function d(e){return s(e)}}]);
@@ -1,2 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,2776,e=>{"use strict";var t=e.i(43476),n=e.i(15812);e.s(["default",0,function({children:e}){let{userId:r,ready:o}=(0,n.useUser)();return o&&r?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:o?(0,t.jsxs)("div",{style:{maxWidth:420},children:[(0,t.jsx)("div",{style:{fontSize:18,fontWeight:700,marginBottom:8},children:"Can’t reach 6 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…"})})}])},68863,e=>{"use strict";var t=e.i(43476),n=e.i(71645),r=e.i(2776),o=e.i(22016),i=e.i(40996);let a="1px solid rgba(255,255,255,0.1)",s={S:"#FFD700",A:"#9B59B6",B:"#3498DB",C:"#95A5A6",D:"#BDC3C7"},l=[25,50,100,200,500],d=[100,250,500,1e3,0],c=e=>new Date(e).toLocaleDateString(void 0,{month:"short",day:"numeric"});function u({cooldown:e,onLift:r,disabled:o}){let[i,a]=(0,n.useState)(!1);return e?(0,t.jsxs)("div",{role:"status",style:{padding:"12px 14px",borderRadius:8,fontSize:13,lineHeight:1.6,background:"rgba(255,80,80,0.08)",border:"1px solid rgba(255,80,80,0.35)",color:"#f3c9c9"},children:[(0,t.jsxs)("b",{style:{color:"#ff8080"},children:["Scanning is paused until ",new Date(e.until).toLocaleString(void 0,{weekday:"short",month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}),"."]})," ",e.reason,". Nothing that searches LinkedIn will run until then, so the account can recover.",(0,t.jsx)("div",{style:{marginTop:8,display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"},children:i?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{style:{fontSize:12.5},children:"Only if people search works normally for you on linkedin.com right now."}),(0,t.jsx)("button",{onClick:()=>{a(!1),r()},style:{...y,color:"#ff8080"},children:"Yes, lift it"}),(0,t.jsx)("button",{onClick:()=>a(!1),style:y,children:"Keep it"})]}):(0,t.jsx)("button",{onClick:()=>a(!0),disabled:o,style:y,children:"Lift it early…"})})]}):null}function h({used:e,cap:n}){let r=n?Math.min(100,Math.round(e/n*100)):0;return(0,t.jsx)("div",{style:{height:5,borderRadius:3,background:"rgba(255,255,255,0.07)",overflow:"hidden",marginTop:4},children:(0,t.jsx)("div",{style:{height:"100%",width:`${r}%`,background:r>=100?"#ff6b6b":r>=75?"#FFD700":"#3498DB"}})})}function p({li:e,onSetLimits:n,disabled:r}){if(!e)return null;let{limits:o}=e,i=e.unreadable?"?":e.searchesToday;return(0,t.jsxs)("div",{style:{padding:"12px 14px",borderRadius:8,border:a,background:"rgba(255,255,255,0.03)",fontSize:12.5,color:"#b8c4c4"},children:[(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(210px, 1fr))",gap:14},children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("b",{style:{color:"#fff"},children:i})," of ",o.daily||"no limit"," searches in the last 24 hours"]}),(0,t.jsx)(h,{used:e.searchesToday||0,cap:o.daily})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("b",{style:{color:"#fff"},children:e.searchesMonth})," of ",o.monthly||"no limit"," this month · resets ",c(e.monthResets)]}),(0,t.jsx)(h,{used:e.searchesMonth,cap:o.monthly})]})]}),(0,t.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap",marginTop:10},children:[(0,t.jsx)("span",{children:"Budget:"}),(0,t.jsx)("select",{value:o.daily,disabled:r,onChange:e=>n({daily:Number(e.target.value),monthly:o.monthly}),style:x,children:l.map(e=>(0,t.jsxs)("option",{value:e,children:[e," a day"]},e))}),(0,t.jsx)("select",{value:o.monthly,disabled:r,onChange:e=>n({daily:o.daily,monthly:Number(e.target.value)}),style:x,children:d.map(e=>(0,t.jsx)("option",{value:e,children:e?`${e} a month`:"no monthly cap (Premium)"},e))}),(0,t.jsxs)("span",{style:{color:"#778"},children:[e.profilesToday," profile views today"]})]}),(0,t.jsxs)("div",{style:{marginTop:8,color:"#778",lineHeight:1.6},children:["Every page of someone’s connections is one search. LinkedIn limits a free account’s people searches by the month (it doesn’t say how many; reports put it around 250–350), resetting on the 1st. When a budget is used, a scan saves what it read and stops; the next one carries on from the same page.",o.daily>100&&(0,t.jsxs)("b",{style:{color:"#FFD700"},children:[" ",o.daily," a day can use up a free account’s month in a day or two."]})]})]})}function f({paused:e=[],onResume:r,onResumeAll:o,disabled:i}){let[l,d]=(0,n.useState)(!1);if(!e.length)return null;let u=e.filter(e=>e.legacy).length,h=l?e:e.slice(0,8);return(0,t.jsxs)("div",{style:{borderRadius:8,border:a,background:"rgba(255,255,255,0.03)"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"10px 14px",borderBottom:a,flexWrap:"wrap"},children:[(0,t.jsxs)("div",{style:{flex:1,minWidth:200},children:[(0,t.jsxs)("b",{style:{fontSize:13.5},children:["Paused — ",e.length," ",1===e.length?"list":"lists"," with more to read"]}),(0,t.jsxs)("div",{style:{fontSize:12,color:"#8b9a9a",marginTop:2},children:["Each carries on from the page it stopped at",u?`; ${u} were read to page 10 before whole lists were read`:"","."]})]}),(0,t.jsx)("button",{onClick:o,disabled:i,style:{...g,opacity:i?.4:1,cursor:i?"not-allowed":"pointer",background:i?"rgba(255,255,255,0.06)":"linear-gradient(135deg, #3498DB, #9B59B6)"},children:"Resume all"})]}),(0,t.jsx)("div",{children:h.map(e=>(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"8px 14px",borderBottom:"1px solid rgba(255,255,255,0.04)"},children:[(0,t.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",background:s[e.tier]||"#667",flexShrink:0}}),(0,t.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,t.jsx)("div",{style:{fontSize:13,fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),(0,t.jsxs)("div",{style:{fontSize:11.5,color:"#8b9a9a"},children:["Read to page ",e.pagesRead," · carries on at ",e.nextPage,e.at?` \xb7 ${c(e.at)}`:"",e.unclear>=2?" · came back unclear twice, so it waits at the back of Resume all":""]})]}),(0,t.jsx)("button",{onClick:()=>r(e),disabled:i,style:{...g,padding:"6px 12px",fontSize:12,opacity:i?.4:1,cursor:i?"not-allowed":"pointer"},children:"Resume"})]},e.id))}),e.length>8&&(0,t.jsx)("button",{onClick:()=>d(!l),style:{...y,padding:"10px 14px"},children:l?"Show fewer":`Show all ${e.length}`})]})}let g={padding:"8px 14px",borderRadius:7,fontSize:13,fontWeight:700,cursor:"pointer",border:a,background:"rgba(255,255,255,0.08)",color:"#fff"},y={background:"none",border:"none",color:"#8fb8d6",cursor:"pointer",fontSize:12.5,fontWeight:600,padding:0},x={padding:"6px 8px",borderRadius:6,fontSize:12.5,fontWeight:600,background:"rgba(255,255,255,0.08)",color:"#fff",border:a},b="1px solid rgba(255,255,255,0.1)";function m(){let[e,r]=(0,n.useState)(null),[o,i]=(0,n.useState)(null),[a,s]=(0,n.useState)(null),[l,d]=(0,n.useState)(null),[c,u]=(0,n.useState)(null);async function h(e){s(e),d(null);try{let t=await fetch("/api/update",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e})}),n=await t.json();if(!t.ok){d(n.error||"Something went wrong."),n.dirty&&i({dirty:n.dirty});return}"check"===e?i(n):(u(n),i(null))}catch(e){d(e.message)}finally{s(null)}}return((0,n.useEffect)(()=>{fetch("/api/update").then(e=>e.json()).then(r).catch(()=>{})},[]),e)?e.installed?(0,t.jsx)(j,{local:e}):!1===e.supported?(0,t.jsxs)(v,{children:[(0,t.jsx)(S,{children:"Updates"}),(0,t.jsx)(C,{children:e.reason})]}):(0,t.jsxs)(v,{children:[(0,t.jsx)(S,{children:"Updates"}),c?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(C,{children:["Updated to ",(0,t.jsx)(T,{children:c.sha})," — “",c.subject,"”."]}),(0,t.jsx)(C,{style:{color:c.needsRestart?"#FFD700":void 0},children:c.needsRestart?"Stop the app in your terminal and start it again — this update changed how it starts.":"The page will pick up most changes on its own. Restart the app if anything looks odd."})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(C,{children:["You are on ",(0,t.jsx)(T,{children:e.sha})," — “",e.subject,"”."]}),o&&0===o.behind&&(0,t.jsx)(k,{ok:!0,children:"You’re up to date."}),o&&o.behind>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(C,{style:{color:"#00ff88"},children:[o.behind," update",1===o.behind?"":"s"," available."]}),(0,t.jsx)("pre",{style:w,children:o.commits.join("\n")})]}),o?.dirty?.length>0&&(0,t.jsxs)(C,{children:["Changed files here:"," ",(0,t.jsx)(T,{children:o.dirty.join(", ")}),". Commit or discard them first — this will not throw away your work."]}),(0,t.jsxs)("div",{style:{display:"flex",gap:10,marginTop:12,flexWrap:"wrap"},children:[(0,t.jsx)(I,{onClick:()=>h("check"),disabled:!!a,children:"check"===a?"Checking…":"Check for updates"}),o?.behind>0&&(0,t.jsx)(I,{onClick:()=>h("pull"),disabled:!!a,primary:!0,children:"pull"===a?"Updating…":`Install ${o.behind} update${1===o.behind?"":"s"}`})]})]}),l&&(0,t.jsx)(C,{style:{color:"#ff7676"},children:l}),(0,t.jsxs)(C,{style:{fontSize:12,color:"#667",marginTop:12},children:["Nothing is checked automatically and nothing about you is sent — this runs the same ",(0,t.jsx)(T,{children:"git fetch"})," and ",(0,t.jsx)(T,{children:"git pull"})," you would type yourself."]})]}):null}function j({local:e}){let[r,o]=(0,n.useState)(!1),[i,a]=(0,n.useState)(null),[s,l]=(0,n.useState)(null),[d,c]=(0,n.useState)(!1),[u,h]=(0,n.useState)(null);async function p(){o(!0),a(null),l(null);try{let e=await fetch("/api/update",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"check-release"})}),t=await e.json();e.ok?(a(t),h(new Date)):l(t.error||"Could not check.")}catch(e){l(e.message)}finally{o(!1)}}async function f(){try{await navigator.clipboard.writeText(e.command),c(!0),setTimeout(()=>c(!1),1600)}catch{l("Could not copy — select the line and copy it by hand.")}}(0,n.useEffect)(()=>{"updates"!==new URLSearchParams(window.location.search).get("check")||(document.getElementById("updates")?.scrollIntoView({block:"center"}),p().then(()=>document.getElementById("updates")?.scrollIntoView({block:"end",behavior:"smooth"})),window.history.replaceState(null,"",window.location.pathname))},[]);let g="mac-app"===e.kind?"Paste this into Terminal. It closes this app, puts the new version in its place and opens it. Your network stays where it is.":"source"===e.kind?"Stop the app (Ctrl-C), then run this in the six-degrees folder. It fetches the newest code, builds it and starts it again. Your network stays where it is.":"Stop this copy first (Ctrl-C in the terminal it runs in), then run this to start the newest version. Your network stays where it is.";return(0,t.jsxs)(v,{children:[(0,t.jsx)(S,{children:"Updates"}),(0,t.jsxs)(C,{children:["You have version ",(0,t.jsx)(T,{children:e.version}),"."]}),i&&!i.latest&&(0,t.jsx)(k,{children:"No release has been published yet."}),i?.latest&&!i.newer&&(0,t.jsxs)(k,{ok:!0,children:["You’re up to date: ",i.latest.version," is the newest version.",u&&(0,t.jsxs)("span",{style:{color:"#8b9a9a"},children:[" Checked at ",u.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"}),"."]})]}),i?.newer&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(C,{style:{color:"#00ff88"},children:["Version ",i.latest.version," is available."]}),(0,t.jsx)(C,{children:g}),(0,t.jsx)("pre",{style:w,children:e.command}),(0,t.jsxs)("div",{style:{display:"flex",gap:10,marginTop:10,flexWrap:"wrap",alignItems:"center"},children:[(0,t.jsx)(I,{onClick:f,primary:!0,children:d?"Copied":"Copy"}),i.latest.url&&(0,t.jsx)("a",{href:i.latest.url,target:"_blank",rel:"noreferrer",style:{color:"#3498DB",fontSize:13.5},children:"What changed →"})]})]}),!i?.newer&&(0,t.jsx)("div",{style:{marginTop:12},children:(0,t.jsx)(I,{onClick:p,disabled:r,children:r?"Checking…":i?"Check again":"Check for updates"})}),s&&(0,t.jsx)(C,{style:{color:"#ff7676"},children:s}),(0,t.jsx)(C,{style:{fontSize:12,color:"#667",marginTop:12},children:"Nothing is checked automatically. The button asks GitHub for the newest version number and nothing about you is sent."})]})}let w={background:"rgba(0,0,0,0.45)",border:b,borderRadius:8,padding:12,margin:"8px 0 0",fontSize:12,lineHeight:1.7,color:"#b9c6c6",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",whiteSpace:"pre-wrap",maxHeight:180,overflow:"auto"};function v({children:e}){return(0,t.jsx)("div",{id:"updates",style:{marginTop:32,paddingTop:24,borderTop:b},children:e})}function k({children:e,ok:n}){return(0,t.jsxs)("div",{role:"status",style:{marginTop:10,padding:"10px 14px",borderRadius:8,fontSize:13.5,lineHeight:1.6,color:n?"#00ff88":"#e8e8ee",background:n?"rgba(0,255,136,0.08)":"rgba(255,255,255,0.05)",border:`1px solid ${n?"rgba(0,255,136,0.3)":"rgba(255,255,255,0.12)"}`},children:[n&&"✓ ",e]})}function S({children:e}){return(0,t.jsx)("div",{style:{fontSize:15.5,fontWeight:650,marginBottom:6},children:e})}function C({children:e,style:n}){return(0,t.jsx)("div",{style:{fontSize:13.5,color:"#8b9a9a",lineHeight:1.6,marginTop:4,...n},children:e})}function T({children:e}){return(0,t.jsx)("code",{style:{background:"rgba(255,255,255,0.08)",padding:"1px 5px",borderRadius:4},children:e})}function I({children:e,onClick:n,disabled:r,primary:o}){return(0,t.jsx)("button",{onClick:n,disabled:r,style:{padding:"9px 18px",borderRadius:7,fontSize:13.5,fontWeight:650,color:r?"#667":"#fff",border:b,background:r?"rgba(255,255,255,0.05)":o?"linear-gradient(135deg, #9B59B6, #3498DB)":"rgba(255,255,255,0.08)",cursor:r?"not-allowed":"pointer"},children:e})}let R="1px solid rgba(255,255,255,0.1)",B={install:"Installing the scanner",login:"Waiting for you to sign in",full:"Scanning your whole network",refresh:"Checking for new connections","auto-bridge":"Mapping 2nd-degree connections","auto-bridge-retry":"Mapping 2nd degree, hidden ones included",resume:"Carrying on with one paused list","resume-all":"Carrying on with every paused list"};function P(){let[e,r]=(0,n.useState)(null),[a,s]=(0,n.useState)(!1),[l,d]=(0,n.useState)(10),[c,h]=(0,n.useState)(["S","A"]),[g,y]=z("six-degrees-bridge-order","newest"),[x,b]=z("six-degrees-bridge-pages-v2",100),[j,w]=z("six-degrees-bridge-finish",!0),[v,k]=(0,n.useState)(null),S=(0,n.useRef)(null),C=(0,n.useCallback)(async()=>{try{let e=await fetch("/api/scraper");r(await e.json())}catch{r(e=>e||{ready:!1,checks:{},log:[]})}},[]);async function T(){k(null),await (0,i.stopScrape)().catch(e=>k(e.message)),C()}async function I(e,t={}){k(null),s(!0);try{let n=await fetch("/api/scraper",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e,...t})}),r=await n.json();n.ok||k(r.error||"Could not start.")}catch(e){k(e.message)}finally{s(!1),C()}}(0,n.useEffect)(()=>{C();let e=setInterval(C,1500);return()=>clearInterval(e)},[C]),(0,n.useEffect)(()=>{S.current&&(S.current.scrollTop=S.current.scrollHeight)},[e?.log?.length]);let P=e?.checks||{},N=e?.running;e&&P.dependencies;let _=e&&!P.chrome,$=e&&!P.scriptsFound,A=e?.ready&&!N,U=e?.linkedin,H=!!U?.cooldown,K=A&&!H,J=e?.network||{first:0,second:0,third:0},Y=J.first,G=e&&!N&&null!=e.exitCode&&0!==e.exitCode,V=G?e.failure?.length?e.failure.join("\n"):[...e.log||[]].reverse().find(e=>!/^Stopped \(exit/.test(e)&&!/Warning|warnings\.warn/.test(e)):null;return(0,t.jsxs)("div",{style:{minHeight:"100vh",background:"#0a0a1a",color:"#fff",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'},children:[(0,t.jsxs)("header",{style:{padding:"16px 24px",borderBottom:R,display:"flex",alignItems:"center",gap:16},children:[(0,t.jsx)(o.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:R},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:"Scan your network"})]}),(0,t.jsxs)("div",{style:{maxWidth:720,margin:"0 auto",padding:"32px 24px 64px"},children:[(0,t.jsxs)("p",{style:{color:"#9aa",fontSize:15,lineHeight:1.6,marginTop:0},children:["This reads your own LinkedIn connections in a real Chrome window on this machine and saves them here. Nothing leaves your computer, and you will never be asked for your password — you sign in yourself, once.",!Y&&" Three steps and your galaxy appears; each one ticks itself off."]}),Y>0&&!N&&(0,t.jsx)(W,{children:(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:14,flexWrap:"wrap"},children:[(0,t.jsxs)("div",{style:{flex:1,minWidth:200},children:[(0,t.jsxs)("b",{children:[Y.toLocaleString()," connections"]}),J.second>0&&(0,t.jsxs)(t.Fragment,{children:[", plus ",J.second.toLocaleString()," people in their circles"]}),J.third>0&&(0,t.jsxs)(t.Fragment,{children:[" and ",J.third.toLocaleString()," from company scans"]}),"."," ",(0,t.jsx)("span",{style:{color:"#9aa"},children:"Your galaxy is ready."})]}),(0,t.jsx)(o.default,{href:"/",style:{padding:"9px 18px",borderRadius:7,fontSize:13.5,fontWeight:700,color:"#0a0a1a",textDecoration:"none",background:"linear-gradient(135deg, #FFD700, #FF6B35)"},children:"See your network →"})]})}),G&&(0,t.jsxs)(W,{tone:"bad",children:[(0,t.jsx)("b",{children:"The last run stopped before it finished."}),V&&(0,t.jsx)("div",{style:{marginTop:6,color:"#e8c4c4",whiteSpace:"pre-wrap",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",fontSize:12.5},children:V}),(0,t.jsx)("div",{style:{color:"#9aa",marginTop:6},children:"The full log is below."})]}),$&&(0,t.jsxs)(W,{tone:"bad",children:[(0,t.jsx)("b",{children:"Can’t find the scanner files."}),(0,t.jsx)("br",{}),(0,t.jsxs)("span",{style:{color:"#9aa"},children:["Expected ",(0,t.jsx)("code",{style:O,children:"scripts/scrape.py"})," next to the app. If you downloaded a zip, run the app from inside the project folder."]})]}),_&&(0,t.jsxs)(W,{tone:"bad",children:[(0,t.jsx)("b",{children:"Google Chrome isn’t installed."}),(0,t.jsx)("br",{}),(0,t.jsxs)("span",{style:{color:"#9aa"},children:["The scanner drives your real Chrome. Install it from"," ",(0,t.jsx)("a",{href:"https://www.google.com/chrome/",target:"_blank",rel:"noreferrer",style:{color:"#3498DB"},children:"google.com/chrome"}),", then reload this page."]})]}),(0,t.jsx)(F,{n:1,done:!!P.dependencies,title:"Install what the scanner needs",body:P.dependencies?"Installed.":P.python?"One-time, about a minute. Downloads the browser-automation packages.":"Python 3 was not found on this machine. Install it from python.org, then reload.",action:!P.dependencies&&P.python&&(0,t.jsx)(L,{onClick:()=>I("install"),disabled:a||N,children:N&&"install"===e.action?"Installing…":"Install"})}),(0,t.jsx)(F,{n:2,done:!!P.signedIn,title:"Sign into LinkedIn",body:P.signedIn?"Signed in on this machine. If LinkedIn ever asks for a security check, or a scan says you were signed out, open LinkedIn here and finish it by hand.":"Opens a Chrome window. Sign in with your email and password — “Continue with Google” cannot work here, because Google blocks its sign-in inside automated browsers.",action:P.dependencies&&(0,t.jsx)(L,{onClick:()=>I("login"),disabled:a||N,children:N&&"login"===e.action?"Waiting for you…":"Open LinkedIn"})}),(0,t.jsx)(F,{n:3,done:Y>0,title:"1st degree — the people you know",body:"The first scan walks your whole connections list, about a minute and a half for 750 people. After that, Check for new only looks at what has been added since.",action:(0,t.jsxs)("div",{style:{display:"flex",gap:10,flexWrap:"wrap"},children:[(0,t.jsx)(L,{onClick:()=>I("full"),disabled:!K,primary:!0,children:N&&"full"===e.action?"Scanning…":"Scan my whole network"}),(0,t.jsx)(L,{onClick:()=>I("refresh"),disabled:!K,children:N&&"refresh"===e.action?"Checking…":"Check for new"})]})}),(0,t.jsx)(F,{n:4,done:!1,title:"2nd degree — the people they know",body:(0,t.jsxs)(t.Fragment,{children:["This is what fills ",(0,t.jsx)("b",{children:"Degrees"})," and ",(0,t.jsx)("b",{children:"Outlink"}),": it opens each of your connections in turn and reads who ",(0,t.jsx)("i",{children:"they"})," know. Most people hide their connections — those are noted and never tried again.",(0,t.jsx)("br",{}),(0,t.jsx)("br",{}),"It is slow on purpose, about two minutes between each person, because this is the part LinkedIn notices. During development a real account was temporarily restricted after roughly ",(0,t.jsx)("b",{children:"19 people in one sitting"}),". Run a batch, leave it for a day, run another — and stop the moment LinkedIn mentions unusual activity. It always picks up where it left off: anyone still without a mapped circle, in the order you choose below — your newest connections first, or highest tier first. Each person’s list is read to the end, saving every 10 pages, and a read that is stopped carries on from the same page next time."]}),action:(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[(0,t.jsx)(u,{cooldown:U?.cooldown,disabled:a,onLift:()=>I("lift-cooldown")}),(0,t.jsx)(p,{li:U,disabled:a,onSetLimits:e=>I("set-limits",e)}),"score"===g&&(0,t.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"},children:[(0,t.jsx)("span",{style:{fontSize:12,color:"#8b9a9a"},children:"Work through"}),["S","A","B","C","D"].map(e=>{let n=c.includes(e);return(0,t.jsx)("button",{onClick:()=>h(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e]),disabled:N,style:{width:30,height:28,borderRadius:7,fontSize:12,fontWeight:700,cursor:N?"not-allowed":"pointer",border:R,background:n?"rgba(52,152,219,0.22)":"rgba(255,255,255,0.05)",color:n?"#cfe6f7":"#667"},children:e},e)}),(0,t.jsx)("span",{style:{fontSize:11.5,color:"#667"},children:c.length?"":"pick at least one"})]}),"newest"===g&&(0,t.jsxs)("div",{style:{fontSize:12,color:"#8b9a9a",lineHeight:1.6},children:["Goes by the date you connected, newest first, across every tier. Run"," ",(0,t.jsx)("b",{children:"Check for new"})," first so your latest connections are in the list."]}),(0,t.jsxs)("div",{style:{display:"flex",gap:10,flexWrap:"wrap",alignItems:"center"},children:[(0,t.jsx)("span",{style:{fontSize:12,color:"#8b9a9a"},children:"Start with"}),(0,t.jsxs)("select",{value:g,onChange:e=>y(e.target.value),disabled:N,style:E,children:[(0,t.jsx)("option",{value:"newest",children:"Newest connections first"}),(0,t.jsx)("option",{value:"score",children:"Highest tier first"})]}),(0,t.jsx)("span",{style:{fontSize:12,color:"#8b9a9a"},children:"Read up to"}),(0,t.jsxs)("select",{value:x,onChange:e=>b(Number(e.target.value)),disabled:N,style:E,children:[(0,t.jsx)("option",{value:100,children:"every page, to the end of their list"}),(0,t.jsx)("option",{value:50,children:"50 pages each"}),(0,t.jsx)("option",{value:25,children:"25 pages each"}),(0,t.jsx)("option",{value:10,children:"10 pages (~100 people) each"})]})]}),(0,t.jsxs)("label",{style:{display:"flex",gap:8,alignItems:"center",fontSize:12.5,color:"#cfd8d8",cursor:N?"not-allowed":"pointer"},children:[(0,t.jsx)("input",{type:"checkbox",checked:j,onChange:e=>w(e.target.checked),disabled:N}),"Also finish people already mapped, from the page each one stopped at"]}),(0,t.jsxs)("div",{style:{fontSize:12,color:"#FFD700",lineHeight:1.6},children:["Every page is a LinkedIn search, so it rests 20 seconds before each one and a minute after every 10, and a long list can take"," ",x>=100?"about 55 minutes a person":`about ${Math.max(5,Math.round(.55*x))} minutes a person`,". LinkedIn shows 100 pages of anyone’s connections at most. Free accounts have a monthly search limit: if LinkedIn says it has been reached, the scan saves what it read and stops, and carries on from that page next time. Keep batches small."]}),(0,t.jsxs)("div",{style:{display:"flex",gap:10,flexWrap:"wrap",alignItems:"center"},children:[(0,t.jsx)(L,{onClick:()=>I("auto-bridge",{maxBridges:l,tiers:"score"===g?c:[],order:g,maxPages:x,deeper:j}),disabled:!K||"score"===g&&!c.length,primary:!0,children:N&&"auto-bridge"===e.action?"Mapping…":"Map 2nd degree"}),(0,t.jsxs)("select",{value:l,onChange:e=>d(Number(e.target.value)),disabled:N,style:E,children:[(0,t.jsx)("option",{value:5,children:"5 people"}),(0,t.jsx)("option",{value:10,children:"10 people"}),(0,t.jsx)("option",{value:25,children:"25 people"}),(0,t.jsx)("option",{value:0,children:"everyone — not advised"})]}),(0,t.jsx)(L,{onClick:()=>I("auto-bridge-retry",{maxBridges:l,tiers:"score"===g?c:[],order:g,maxPages:x,deeper:j}),disabled:!K||"score"===g&&!c.length,children:"Retry hidden ones"})]}),(0,t.jsx)(f,{paused:e?.paused||[],disabled:!K,onResume:e=>I("resume",{id:e.id}),onResumeAll:()=>I("resume-all",{maxBridges:l})})]})}),N&&(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,marginTop:20,padding:"14px 16px",borderRadius:8,background:"rgba(255,255,255,0.05)",border:R},children:[(0,t.jsx)(M,{}),(0,t.jsxs)("div",{style:{flex:1,fontSize:13.5},children:[(0,t.jsx)("b",{children:B[e.action]||"Working"}),e.progress&&(0,t.jsx)(D,{p:e.progress,action:e.action}),(0,t.jsx)("div",{style:{color:"#8b9a9a",fontSize:12.5,marginTop:2},children:"Stopping closes the browser cleanly and keeps everything found so far."})]}),(0,t.jsx)(L,{onClick:T,tone:"bad",children:"Stop"})]}),v&&(0,t.jsx)(W,{tone:"bad",children:v}),e?.log?.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,margin:"28px 0 8px",fontSize:12,color:"#788",textTransform:"uppercase",letterSpacing:.6},children:[N&&(0,t.jsx)(M,{}),N?"Working":"Last run"]}),(0,t.jsx)("pre",{ref:S,style:{background:"rgba(0,0,0,0.45)",border:R,borderRadius:8,padding:14,maxHeight:280,overflow:"auto",margin:0,fontSize:12.5,lineHeight:1.7,color:"#b9c6c6",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:e.log.join("\n")})]}),(0,t.jsx)(m,{}),(0,t.jsxs)("p",{style:{color:"#667",fontSize:12.5,lineHeight:1.7,marginTop:32},children:["Automating LinkedIn may go against its User Agreement, and accounts have been restricted for it. This runs locally against your own account, at your own risk. LinkedIn’s own CSV export is the supported route and needs none of this —"," ",(0,t.jsx)(o.default,{href:"/import",style:{color:"#3498DB"},children:"import a CSV instead"}),"."]})]}),(0,t.jsx)("style",{children:`@keyframes spin { to { transform: rotate(360deg) } }
2
- @keyframes slide { 0% { transform: translateX(-100%) } 100% { transform: translateX(300%) } }`})]})}function z(e,t){let[r,o]=(0,n.useState)(t);return(0,n.useEffect)(()=>{try{let t=localStorage.getItem(e);null!==t&&o(JSON.parse(t))}catch{}},[e]),[r,t=>{o(t);try{localStorage.setItem(e,JSON.stringify(t))}catch{}}]}let O={background:"rgba(255,255,255,0.08)",padding:"1px 5px",borderRadius:4},E={padding:"9px 10px",borderRadius:7,fontSize:13.5,fontWeight:600,background:"rgba(255,255,255,0.08)",color:"#fff",border:R};function F({n:e,done:n,title:r,body:o,action:i}){return(0,t.jsxs)("div",{style:{display:"flex",gap:16,padding:"20px 0",borderBottom:R,alignItems:"flex-start"},children:[(0,t.jsx)("div",{style:{flexShrink:0,width:28,height:28,borderRadius:"50%",display:"grid",placeItems:"center",fontSize:13,fontWeight:700,background:n?"rgba(0,255,136,0.15)":"rgba(255,255,255,0.08)",color:n?"#00ff88":"#889",border:`1px solid ${n?"rgba(0,255,136,0.4)":"rgba(255,255,255,0.14)"}`},children:n?"✓":e}),(0,t.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,t.jsx)("div",{style:{fontSize:15.5,fontWeight:650,marginBottom:4},children:r}),(0,t.jsx)("div",{style:{fontSize:13.5,color:"#8b9a9a",lineHeight:1.6,marginBottom:12*!!i},children:o}),i]})]})}function L({children:e,onClick:n,disabled:r,primary:o,tone:i}){return(0,t.jsx)("button",{onClick:n,disabled:r,style:{padding:"9px 18px",borderRadius:7,fontSize:13.5,fontWeight:650,color:r?"#667":"#fff",background:r?"rgba(255,255,255,0.05)":"bad"===i?"rgba(255,80,80,0.15)":o?"linear-gradient(135deg, #9B59B6, #3498DB)":"rgba(255,255,255,0.08)",border:R,cursor:r?"not-allowed":"pointer"},children:e})}function W({children:e,tone:n}){return(0,t.jsx)("div",{style:{margin:"16px 0",padding:"14px 16px",borderRadius:8,fontSize:13.5,lineHeight:1.6,background:"bad"===n?"rgba(255,80,80,0.08)":"rgba(255,255,255,0.05)",border:`1px solid ${"bad"===n?"rgba(255,80,80,0.3)":"rgba(255,255,255,0.12)"}`},children:e})}function D({p:e,action:n}){let r;if("saving"===e.kind)return(0,t.jsxs)("div",{style:{margin:"8px 0 6px"},children:[(0,t.jsx)("div",{role:"progressbar","aria-label":"Saving",style:{height:8,borderRadius:4,overflow:"hidden",background:"rgba(255,255,255,0.08)",marginBottom:6},children:(0,t.jsx)("div",{style:{width:"35%",height:"100%",borderRadius:4,background:"linear-gradient(90deg, #9B59B6, #3498DB)",animation:"slide 1.2s ease-in-out infinite"}})}),(0,t.jsx)("div",{style:{fontSize:12.5,color:"#cfe6f7"},children:"Saving to your network and fetching photos — this can take a minute or two."})]});let o=Math.max(0,Math.min(100,Math.round(e.done/e.total*100)));return r="batch"===e.kind?`Person ${e.current} of ${e.total}`:"refresh"===n?`Looked at ${e.done.toLocaleString()} so far — stops once it reaches people already saved`:`${e.done.toLocaleString()} of ${e.total.toLocaleString()} connections \xb7 ${o}%`,(0,t.jsxs)("div",{style:{margin:"8px 0 6px"},children:["refresh"!==n&&(0,t.jsx)("div",{role:"progressbar","aria-valuemin":0,"aria-valuemax":e.total,"aria-valuenow":e.done,"aria-label":r,style:{height:8,borderRadius:4,overflow:"hidden",background:"rgba(255,255,255,0.08)",marginBottom:6},children:(0,t.jsx)("div",{style:{width:`${o}%`,height:"100%",borderRadius:4,background:"linear-gradient(90deg, #9B59B6, #3498DB)",transition:"width 0.6s ease"}})}),(0,t.jsx)("div",{style:{fontSize:12.5,color:"#cfe6f7"},children:r})]})}function M(){return(0,t.jsx)("span",{style:{width:11,height:11,borderRadius:"50%",display:"inline-block",border:"2px solid rgba(255,255,255,0.2)",borderTopColor:"#3498DB",animation:"spin 0.8s linear infinite"}})}e.s(["default",0,function(){return(0,t.jsx)(r.default,{children:(0,t.jsx)(P,{})})}],68863)},40996,e=>{"use strict";async function t(){let e=await fetch("/api/scraper");if(!e.ok)throw Error("Could not reach the app.");return e.json()}async function n(e,t,r={}){let o=await fetch("/api/scraper",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e,...t?{name:t}:{},...r})}),i=await o.json().catch(()=>({}));if(!o.ok)throw Error(i.error||"Could not start the scanner.");return i}async function r(){await fetch("/api/scraper",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"cancel"})})}e.s(["notReadyMessage",0,function(e){return e?e.checks?.scriptsFound?e.checks?.python?e.checks?.dependencies?e.checks?.chrome?null:"Google Chrome is not installed.":"The scanner is not installed yet — open Scan to set it up.":"Python 3 is not installed on this machine.":"The scanner files are missing from this install.":"Could not reach the app."},"runScrape",0,function(e,{name:r,onLog:o,...i}={}){return new Promise((a,s)=>{n(e,r,i).then(()=>{let e=setInterval(async()=>{try{let n=await t();o?.(n.log||[]),n.running||(clearInterval(e),a(n))}catch{}},1500)}).catch(s)})},"scraperStatus",0,t,"startScrape",0,n,"stopScrape",0,r])},22016,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0});var r={default:function(){return x},useLinkStatus:function(){return m}};for(var o in r)Object.defineProperty(n,o,{enumerable:!0,get:r[o]});let i=e.r(90809),a=e.r(43476),s=i._(e.r(71645)),l=e.r(95057),d=e.r(8372),c=e.r(18581),u=e.r(18967),h=e.r(5550),p=e.r(88540),f=e.r(91949),g=e.r(73668),y=e.r(9396);function x(t){var n;let r,o,i,[x,m]=(0,s.useOptimistic)(f.IDLE_LINK_STATUS),j=(0,s.useRef)(null),{href:w,as:v,children:k,prefetch:S=null,passHref:C,replace:T,shallow:I,scroll:R,onClick:B,onMouseEnter:P,onTouchStart:z,legacyBehavior:O=!1,onNavigate:E,transitionTypes:F,ref:L,unstable_dynamicOnHover:W,...D}=t;r=k,O&&("string"==typeof r||"number"==typeof r)&&(r=(0,a.jsx)("a",{children:r}));let M=s.default.useContext(d.AppRouterContext),N=!1!==S,_=!1===S?"none":!0===S?"full":"auto",$="none"!==_?"auto"===_?y.FetchStrategy.PPR:y.FetchStrategy.Full:y.FetchStrategy.PPR,A="string"==typeof(n=v||w)?n:(0,l.formatUrl)(n);if(O){if(r?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});o=s.default.Children.only(r)}let U=O?o&&"object"==typeof o&&o.ref:L,H,K=s.default.useCallback(e=>(null!==M&&(j.current=(0,f.mountLinkInstance)(e,A,M,$,N,m,H)),()=>{j.current&&((0,f.unmountLinkForCurrentNavigation)(j.current),j.current=null),(0,f.unmountPrefetchableInstance)(e)}),[N,A,M,$,m,H]),J={ref:(0,c.useMergedRef)(K,U),onClick(t){O||"function"!=typeof B||B(t),O&&o.props&&"function"==typeof o.props.onClick&&o.props.onClick(t),!M||t.defaultPrevented||function(t,n,r,o,i,a,l,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,g.isLocalURL)(n)){o&&(t.preventDefault(),location.replace(n));return}if(t.preventDefault(),a){let e=!1;if(a({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:h}=e.r(99781);s.default.startTransition(()=>{h(n,o?"replace":"push",!1===i?p.ScrollBehavior.NoScroll:p.ScrollBehavior.Default,r.current,l,d)})}}(t,A,j,T,R,E,F,_)},onMouseEnter(e){O||"function"!=typeof P||P(e),O&&o.props&&"function"==typeof o.props.onMouseEnter&&o.props.onMouseEnter(e),M&&N&&(0,f.onNavigationIntent)(e.currentTarget,!0===W)},onTouchStart:function(e){O||"function"!=typeof z||z(e),O&&o.props&&"function"==typeof o.props.onTouchStart&&o.props.onTouchStart(e),M&&N&&(0,f.onNavigationIntent)(e.currentTarget,!0===W)}};return(0,u.isAbsoluteUrl)(A)?J.href=A:O&&!C&&("a"!==o.type||"href"in o.props)||(J.href=(0,h.addBasePath)(A)),i=O?s.default.cloneElement(o,J):(0,a.jsx)("a",{...D,...J,children:r}),(0,a.jsx)(b.Provider,{value:x,children:i})}let b=(0,s.createContext)(f.IDLE_LINK_STATUS),m=()=>(0,s.useContext)(b);("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},18581,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"useMergedRef",{enumerable:!0,get:function(){return o}});let r=e.r(71645);function o(e,t){let n=(0,r.useRef)(null),o=(0,r.useRef)(null);return(0,r.useCallback)(r=>{if(null===r){let e=n.current;e&&(n.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(n.current=i(e,r)),t&&(o.current=i(t,r))},[e,t])}function i(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let n=e(t);return"function"==typeof n?n:()=>e(null)}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},18967,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0});var r={DecodeError:function(){return x},MiddlewareNotFoundError:function(){return w},MissingStaticPage:function(){return j},NormalizeError:function(){return b},PageNotFoundError:function(){return m},SP:function(){return g},ST:function(){return y},WEB_VITALS:function(){return i},execOnce:function(){return a},getDisplayName:function(){return u},getLocationOrigin:function(){return d},getURL:function(){return c},isAbsoluteUrl:function(){return l},isResSent:function(){return h},loadGetInitialProps:function(){return f},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return v}};for(var o in r)Object.defineProperty(n,o,{enumerable:!0,get:r[o]});let i=["CLS","FCP","FID","INP","LCP","TTFB"];function a(e){let t,n=!1;return(...r)=>(n||(n=!0,t=e(...r)),t)}let s=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,l=e=>{let t=e.charCodeAt(0);return!!(t>=65&&t<=90||t>=97&&t<=122)&&s.test(e)};function d(){let{protocol:e,hostname:t,port:n}=window.location;return`${e}//${t}${n?":"+n:""}`}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 h(e){return e.finished||e.headersSent}function p(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function f(e,t){let n=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await f(t.Component,t.ctx)}:{};let r=await e.getInitialProps(t);if(n&&h(n))return r;if(!r)throw Object.defineProperty(Error(`"${u(e)}.getInitialProps()" should resolve to an object. But found "${r}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return r}let g="u">typeof performance,y=g&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class x extends Error{}class b extends Error{}class m extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class j extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class w extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function v(e){return JSON.stringify({message:e.message,stack:e.stack})}},73668,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"isLocalURL",{enumerable:!0,get:function(){return i}});let r=e.r(18967),o=e.r(52817);function i(e){if(!(0,r.isAbsoluteUrl)(e))return!0;try{let t=(0,r.getLocationOrigin)(),n=new URL(e,t);return n.origin===t&&(0,o.hasBasePath)(n.pathname)}catch(e){return!1}}},98183,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={assign:function(){return l},searchParamsToUrlQuery:function(){return i},urlQueryToSearchParams:function(){return s}};for(var o in r)Object.defineProperty(n,o,{enumerable:!0,get:r[o]});function i(e){let t={};for(let[n,r]of e.entries()){let e=t[n];void 0===e?t[n]=r:Array.isArray(e)?e.push(r):t[n]=[e,r]}return t}function a(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function s(e){let t=new URLSearchParams;for(let[n,r]of Object.entries(e))if(Array.isArray(r))for(let e of r)t.append(n,a(e));else t.set(n,a(r));return t}function l(e,...t){for(let n of t){for(let t of n.keys())e.delete(t);for(let[t,r]of n.entries())e.append(t,r)}return e}},95057,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0});var r={formatUrl:function(){return s},formatWithValidation:function(){return d},urlObjectKeys:function(){return l}};for(var o in r)Object.defineProperty(n,o,{enumerable:!0,get:r[o]});let i=e.r(90809)._(e.r(98183)),a=/https?|ftp|gopher|file/;function s(e){let{auth:t,hostname:n}=e,r=e.protocol||"",o=e.pathname||"",s=e.hash||"",l=e.query||"",d=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?d=t+e.host:n&&(d=t+(~n.indexOf(":")?`[${n}]`:n),e.port&&(d+=":"+e.port)),l&&"object"==typeof l&&(l=String(i.urlQueryToSearchParams(l)));let c=e.search||l&&`?${l}`||"";return r&&!r.endsWith(":")&&(r+=":"),e.slashes||(!r||a.test(r))&&!1!==d?(d="//"+(d||""),o&&"/"!==o[0]&&(o="/"+o)):d||(d=""),s&&"#"!==s[0]&&(s="#"+s),c&&"?"!==c[0]&&(c="?"+c),o=o.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${r}${d}${o}${c}${s}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function d(e){return s(e)}}]);