six-degrees 0.7.0 → 0.8.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 (349) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +1 -0
  3. package/.next/standalone/.next/build-manifest.json +3 -3
  4. package/.next/standalone/.next/prerender-manifest.json +32 -4
  5. package/.next/standalone/.next/routes-manifest.json +6 -0
  6. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  7. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  12. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  14. package/.next/standalone/.next/server/app/_not-found.rsc +16 -16
  15. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +16 -16
  16. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +14 -14
  17. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  18. package/.next/standalone/.next/server/app/api/admin-delete/route.js +1 -1
  19. package/.next/standalone/.next/server/app/api/admin-delete/route.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/app/api/admin-update/route.js +1 -1
  21. package/.next/standalone/.next/server/app/api/admin-update/route.js.nft.json +1 -1
  22. package/.next/standalone/.next/server/app/api/bridges/route.js +1 -1
  23. package/.next/standalone/.next/server/app/api/bridges/route.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/api/bulk-import/route.js +1 -1
  25. package/.next/standalone/.next/server/app/api/bulk-import/route.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/api/company-scores/legacy/route.js.nft.json +1 -1
  27. package/.next/standalone/.next/server/app/api/company-scores/route.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/api/connections/route.js +1 -1
  29. package/.next/standalone/.next/server/app/api/connections/route.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/api/data/backup/route.js.nft.json +1 -1
  31. package/.next/standalone/.next/server/app/api/data/csv/route.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/api/data/export/route.js.nft.json +1 -1
  33. package/.next/standalone/.next/server/app/api/data/import/route.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/api/data/restart/route.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/api/data/restore/route.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/api/data/reveal/route.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/api/data/route.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/api/delete-cluster/route.js +1 -1
  39. package/.next/standalone/.next/server/app/api/delete-cluster/route.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/api/ingest/route.js +1 -1
  41. package/.next/standalone/.next/server/app/api/ingest/route.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/api/network/route.js +1 -1
  43. package/.next/standalone/.next/server/app/api/network/route.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/api/notifications/route.js +1 -1
  45. package/.next/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/api/outreach/route.js +3 -3
  47. package/.next/standalone/.next/server/app/api/outreach/route.js.nft.json +1 -1
  48. package/.next/standalone/.next/server/app/api/queue/route.js +1 -1
  49. package/.next/standalone/.next/server/app/api/queue/route.js.nft.json +1 -1
  50. package/.next/standalone/.next/server/app/api/scraper/route.js +4 -4
  51. package/.next/standalone/.next/server/app/api/scraper/route.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/api/settings/route.js.nft.json +1 -1
  53. package/.next/standalone/.next/server/app/api/settings/sector-preview/route.js.nft.json +1 -1
  54. package/.next/standalone/.next/server/app/api/settings/sector-suggestions/route.js.nft.json +1 -1
  55. package/.next/standalone/.next/server/app/api/setup-profile/route.js +1 -1
  56. package/.next/standalone/.next/server/app/api/setup-profile/route.js.nft.json +1 -1
  57. package/.next/standalone/.next/server/app/api/social/crm/route.js.nft.json +1 -1
  58. package/.next/standalone/.next/server/app/api/social/messages/route.js.nft.json +1 -1
  59. package/.next/standalone/.next/server/app/api/social/route.js +1 -1
  60. package/.next/standalone/.next/server/app/api/social/route.js.nft.json +1 -1
  61. package/.next/standalone/.next/server/app/api/unlock/route.js +1 -1
  62. package/.next/standalone/.next/server/app/api/unlock/route.js.nft.json +1 -1
  63. package/.next/standalone/.next/server/app/api/update/route.js.nft.json +1 -1
  64. package/.next/standalone/.next/server/app/api/update-images/route.js +1 -1
  65. package/.next/standalone/.next/server/app/api/update-images/route.js.nft.json +1 -1
  66. package/.next/standalone/.next/server/app/api/users/route.js +1 -1
  67. package/.next/standalone/.next/server/app/api/users/route.js.nft.json +1 -1
  68. package/.next/standalone/.next/server/app/avatars/[file]/route.js.nft.json +1 -1
  69. package/.next/standalone/.next/server/app/import/page.js.nft.json +1 -1
  70. package/.next/standalone/.next/server/app/import/page_client-reference-manifest.js +1 -1
  71. package/.next/standalone/.next/server/app/import.html +1 -1
  72. package/.next/standalone/.next/server/app/import.rsc +18 -18
  73. package/.next/standalone/.next/server/app/import.segments/_full.segment.rsc +18 -18
  74. package/.next/standalone/.next/server/app/import.segments/_tree.segment.rsc +2 -2
  75. package/.next/standalone/.next/server/app/import.segments/import/__PAGE__.segment.rsc +16 -16
  76. package/.next/standalone/.next/server/app/index.html +1 -1
  77. package/.next/standalone/.next/server/app/index.rsc +19 -19
  78. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +16 -16
  79. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +19 -19
  80. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  81. package/.next/standalone/.next/server/app/insights/page/app-paths-manifest.json +3 -0
  82. package/.next/standalone/.next/server/app/insights/page/build-manifest.json +20 -0
  83. package/.next/standalone/.next/server/app/insights/page/next-font-manifest.json +11 -0
  84. package/.next/standalone/.next/server/app/insights/page/react-loadable-manifest.json +1 -0
  85. package/.next/standalone/.next/server/app/insights/page/server-reference-manifest.json +4 -0
  86. package/.next/standalone/.next/server/app/insights/page.js +13 -0
  87. package/.next/standalone/.next/server/app/insights/page.js.map +5 -0
  88. package/.next/standalone/.next/server/app/insights/page.js.nft.json +1 -0
  89. package/.next/standalone/.next/server/app/insights/page_client-reference-manifest.js +3 -0
  90. package/.next/standalone/.next/server/app/insights.html +1 -0
  91. package/.next/standalone/.next/server/app/insights.meta +26 -0
  92. package/.next/standalone/.next/server/app/insights.rsc +35 -0
  93. package/.next/standalone/.next/server/app/insights.segments/_full.segment.rsc +35 -0
  94. package/.next/standalone/.next/server/app/insights.segments/_tree.segment.rsc +4 -0
  95. package/.next/standalone/.next/server/app/insights.segments/insights/__PAGE__.segment.rsc +33 -0
  96. package/.next/standalone/.next/server/app/launch/page.js.nft.json +1 -1
  97. package/.next/standalone/.next/server/app/launch/page_client-reference-manifest.js +1 -1
  98. package/.next/standalone/.next/server/app/launch.html +2 -2
  99. package/.next/standalone/.next/server/app/launch.rsc +18 -18
  100. package/.next/standalone/.next/server/app/launch.segments/_full.segment.rsc +18 -18
  101. package/.next/standalone/.next/server/app/launch.segments/_tree.segment.rsc +2 -2
  102. package/.next/standalone/.next/server/app/launch.segments/launch/__PAGE__.segment.rsc +16 -16
  103. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  104. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  105. package/.next/standalone/.next/server/app/paths/page.js.nft.json +1 -1
  106. package/.next/standalone/.next/server/app/paths/page_client-reference-manifest.js +1 -1
  107. package/.next/standalone/.next/server/app/paths.html +1 -1
  108. package/.next/standalone/.next/server/app/paths.rsc +19 -19
  109. package/.next/standalone/.next/server/app/paths.segments/_full.segment.rsc +19 -19
  110. package/.next/standalone/.next/server/app/paths.segments/_tree.segment.rsc +2 -2
  111. package/.next/standalone/.next/server/app/paths.segments/paths/__PAGE__.segment.rsc +16 -16
  112. package/.next/standalone/.next/server/app/profile/page.js.nft.json +1 -1
  113. package/.next/standalone/.next/server/app/profile/page_client-reference-manifest.js +1 -1
  114. package/.next/standalone/.next/server/app/profile.html +1 -1
  115. package/.next/standalone/.next/server/app/profile.rsc +19 -19
  116. package/.next/standalone/.next/server/app/profile.segments/_full.segment.rsc +19 -19
  117. package/.next/standalone/.next/server/app/profile.segments/_tree.segment.rsc +2 -2
  118. package/.next/standalone/.next/server/app/profile.segments/profile/__PAGE__.segment.rsc +16 -16
  119. package/.next/standalone/.next/server/app/queue/page.js.nft.json +1 -1
  120. package/.next/standalone/.next/server/app/queue/page_client-reference-manifest.js +1 -1
  121. package/.next/standalone/.next/server/app/queue.html +1 -1
  122. package/.next/standalone/.next/server/app/queue.rsc +19 -19
  123. package/.next/standalone/.next/server/app/queue.segments/_full.segment.rsc +19 -19
  124. package/.next/standalone/.next/server/app/queue.segments/_tree.segment.rsc +2 -2
  125. package/.next/standalone/.next/server/app/queue.segments/queue/__PAGE__.segment.rsc +21 -20
  126. package/.next/standalone/.next/server/app/scores/page.js.nft.json +1 -1
  127. package/.next/standalone/.next/server/app/scores/page_client-reference-manifest.js +1 -1
  128. package/.next/standalone/.next/server/app/scores.html +1 -1
  129. package/.next/standalone/.next/server/app/scores.rsc +18 -18
  130. package/.next/standalone/.next/server/app/scores.segments/_full.segment.rsc +18 -18
  131. package/.next/standalone/.next/server/app/scores.segments/_tree.segment.rsc +2 -2
  132. package/.next/standalone/.next/server/app/scores.segments/scores/__PAGE__.segment.rsc +16 -16
  133. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
  134. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  135. package/.next/standalone/.next/server/app/settings.html +1 -1
  136. package/.next/standalone/.next/server/app/settings.rsc +19 -19
  137. package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +19 -19
  138. package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  139. package/.next/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +16 -16
  140. package/.next/standalone/.next/server/app/setup/page.js.nft.json +1 -1
  141. package/.next/standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  142. package/.next/standalone/.next/server/app/setup.html +1 -1
  143. package/.next/standalone/.next/server/app/setup.rsc +19 -19
  144. package/.next/standalone/.next/server/app/setup.segments/_full.segment.rsc +19 -19
  145. package/.next/standalone/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
  146. package/.next/standalone/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +16 -16
  147. package/.next/standalone/.next/server/app/social/page.js.nft.json +1 -1
  148. package/.next/standalone/.next/server/app/social/page_client-reference-manifest.js +1 -1
  149. package/.next/standalone/.next/server/app/social.html +1 -1
  150. package/.next/standalone/.next/server/app/social.rsc +18 -18
  151. package/.next/standalone/.next/server/app/social.segments/_full.segment.rsc +18 -18
  152. package/.next/standalone/.next/server/app/social.segments/_tree.segment.rsc +2 -2
  153. package/.next/standalone/.next/server/app/social.segments/social/__PAGE__.segment.rsc +16 -16
  154. package/.next/standalone/.next/server/app-paths-manifest.json +1 -0
  155. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__063s0x7._.js → [root-of-the-server]__0r-0t-9._.js} +1 -1
  156. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ra6xyg._.js +15 -0
  157. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__20rwfdw._.js → [root-of-the-server]__0rcpjad._.js} +5 -2
  158. package/.next/standalone/.next/server/chunks/_1_fynia._.js +7 -7
  159. package/.next/standalone/.next/server/chunks/_1itd1o_._.js +1 -1
  160. package/.next/standalone/.next/server/chunks/lib_02iz_9q._.js +2 -2
  161. package/.next/standalone/.next/server/chunks/lib_05agvk3._.js +2 -2
  162. package/.next/standalone/.next/server/chunks/lib_0v84u66._.js +2 -2
  163. package/.next/standalone/.next/server/chunks/lib_db-client_0_dch35.js +9 -9
  164. package/.next/standalone/.next/server/chunks/{lib_rpc_0jnfp2e.js → lib_rpc_00nndai.js} +1 -1
  165. package/.next/standalone/.next/server/chunks/{lib_rpc_0b17r6v.js → lib_rpc_03ibb-x.js} +1 -1
  166. package/.next/standalone/.next/server/chunks/{lib_rpc_0doq0t-.js → lib_rpc_03ri3ji.js} +1 -1
  167. package/.next/standalone/.next/server/chunks/{lib_rpc_0fd2rlw.js → lib_rpc_078ce48.js} +1 -1
  168. package/.next/standalone/.next/server/chunks/lib_rpc_0a69mgr.js +3 -0
  169. package/.next/standalone/.next/server/chunks/{lib_rpc_005abye.js → lib_rpc_0cej3t8.js} +1 -1
  170. package/.next/standalone/.next/server/chunks/lib_rpc_0cmh4g6.js +3 -0
  171. package/.next/standalone/.next/server/chunks/lib_rpc_0nx2_pc.js +3 -0
  172. package/.next/standalone/.next/server/chunks/lib_rpc_0r79-w1.js +3 -0
  173. package/.next/standalone/.next/server/chunks/{lib_rpc_0is4qoc.js → lib_rpc_0t552z6.js} +1 -1
  174. package/.next/standalone/.next/server/chunks/lib_rpc_0yx8ynd.js +3 -0
  175. package/.next/standalone/.next/server/chunks/lib_rpc_12p-o9-.js +3 -0
  176. package/.next/standalone/.next/server/chunks/lib_rpc_1466dnb.js +3 -0
  177. package/.next/standalone/.next/server/chunks/lib_rpc_1sryxv6.js +3 -0
  178. package/.next/standalone/.next/server/chunks/lib_rpc_1trn-x5.js +3 -0
  179. package/.next/standalone/.next/server/chunks/lib_rpc_1ygu_mv.js +3 -0
  180. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0egamyq._.js +3 -0
  181. package/.next/standalone/.next/server/chunks/ssr/_04am_h8._.js +3 -0
  182. package/.next/standalone/.next/server/chunks/ssr/_07zb7lu._.js +1 -1
  183. package/.next/standalone/.next/server/chunks/ssr/_0_79idq._.js +1 -1
  184. package/.next/standalone/.next/server/chunks/ssr/_0gds903._.js +3 -0
  185. package/.next/standalone/.next/server/chunks/ssr/_0klqt9z._.js +3 -0
  186. package/.next/standalone/.next/server/chunks/ssr/{_1k9qfsk._.js → _14jak5s._.js} +6 -2
  187. package/.next/standalone/.next/server/chunks/ssr/_14nxd3q._.js +1 -1
  188. package/.next/standalone/.next/server/chunks/ssr/_1cj2yog._.js +3 -0
  189. package/.next/standalone/.next/server/chunks/ssr/_1fm1ih_._.js +1 -1
  190. package/.next/standalone/.next/server/chunks/ssr/_1hdqw0-._.js +7 -0
  191. package/.next/standalone/.next/server/chunks/ssr/_1k2nmbw._.js +1 -1
  192. package/.next/standalone/.next/server/chunks/ssr/{_0gy11ar._.js → _1r62six._.js} +6 -2
  193. package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_insights_page_actions_0-0tf75.js +3 -0
  194. package/.next/standalone/.next/server/chunks/ssr/app_components_0uuff77._.js +2 -2
  195. package/.next/standalone/.next/server/chunks/ssr/app_components_1j3q-h5._.js +2 -2
  196. package/.next/standalone/.next/server/chunks/ssr/{_01o3i5y._.js → app_components_settings_SectorPicker_1c-29qw.js} +2 -6
  197. package/.next/standalone/.next/server/chunks/ssr/app_components_ui_0pdmz2z.js +3 -0
  198. package/.next/standalone/.next/server/chunks/ssr/app_insights_page_1d_chja.js +3 -0
  199. package/.next/standalone/.next/server/chunks/ssr/app_page_1fazqbf.js +14 -14
  200. package/.next/standalone/.next/server/chunks/ssr/app_queue_page_0c6znd6.js +3 -3
  201. package/.next/standalone/.next/server/chunks/ssr/app_settings_page_1f8mjj_.js +1 -1
  202. package/.next/standalone/.next/server/chunks/ssr/app_setup_page_1-282zx.js +3 -3
  203. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  204. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  205. package/.next/standalone/.next/server/next-font-manifest.js +1 -1
  206. package/.next/standalone/.next/server/next-font-manifest.json +4 -0
  207. package/.next/standalone/.next/server/pages/404.html +1 -1
  208. package/.next/standalone/.next/server/pages/500.html +1 -1
  209. package/.next/standalone/.next/server/prefetch-hints.json +14 -0
  210. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  211. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  212. package/.next/standalone/.next/static/chunks/02wnf8dkxegxg.js +34 -0
  213. package/.next/standalone/.next/static/chunks/0838_s6w-i_ik.js +1 -0
  214. package/.next/{static/chunks/2eo9pqq9gay3r.js → standalone/.next/static/chunks/0ka4prpk3w9wn.js} +4 -4
  215. package/.next/standalone/.next/static/chunks/0s_xxwp7z88vv.js +1 -0
  216. package/.next/standalone/.next/static/chunks/1-nnl8amfm4yh.js +57 -0
  217. package/.next/standalone/.next/static/chunks/112mv-com-mqa.js +21 -0
  218. package/.next/{static/chunks/44yn0tcd9dfk3.js → standalone/.next/static/chunks/1bkt_hhjzvbh8.js} +1 -1
  219. package/.next/standalone/.next/static/chunks/1cmphb3kh2ers.css +3 -0
  220. package/.next/{static/chunks/1qbjermbf68xj.js → standalone/.next/static/chunks/1d8yv3k_atka7.js} +1 -1
  221. package/.next/standalone/.next/static/chunks/23hc51oa4vkhc.js +5 -0
  222. package/.next/standalone/.next/static/chunks/27n8k9wxlz5-7.js +1 -0
  223. package/.next/standalone/.next/static/chunks/{0p3g5tfostsep.js → 2q9i7pcxcnph1.js} +2 -2
  224. package/.next/{static/chunks/2zf4jmz9l3li2.js → standalone/.next/static/chunks/2w-y83mjlpnse.js} +1 -1
  225. package/.next/standalone/.next/static/chunks/2ws1xf293j-tm.js +5 -0
  226. package/.next/standalone/.next/static/chunks/3cqn-r-y5rrw1.js +5 -0
  227. package/.next/standalone/.next/static/chunks/3opgg1efrx8q6.js +1 -0
  228. package/.next/standalone/.next/static/chunks/3p51fpxxi4d5y.js +34 -0
  229. package/.next/{static/chunks/0an_b6zi1r_qq.js → standalone/.next/static/chunks/3y40z6of3r9py.js} +1 -5
  230. package/.next/standalone/.next/static/chunks/403dpflln8ah5.js +1 -0
  231. package/.next/standalone/CHANGELOG.md +60 -0
  232. package/.next/standalone/README.md +25 -1
  233. package/.next/standalone/SECURITY.md +8 -0
  234. package/.next/standalone/app/api/outreach/route.js +13 -73
  235. package/.next/standalone/app/api/scraper/route.js +97 -4
  236. package/.next/standalone/app/components/AppHeader.js +22 -6
  237. package/.next/standalone/app/components/AppTabs.js +4 -0
  238. package/.next/standalone/app/components/AutoConnect.js +286 -0
  239. package/.next/standalone/app/components/ChainView.js +75 -2
  240. package/.next/standalone/app/components/FilterPanel.js +8 -1
  241. package/.next/standalone/app/components/LinkedInLimits.js +38 -13
  242. package/.next/standalone/app/components/OutlinkQuest.js +32 -11
  243. package/.next/standalone/app/components/ScanStatusBar.js +18 -3
  244. package/.next/standalone/app/components/ScanTrail.js +13 -3
  245. package/.next/standalone/app/components/SeparationView.js +6 -22
  246. package/.next/standalone/app/components/Sidebar.js +147 -38
  247. package/.next/standalone/app/components/insights/Boards.js +275 -0
  248. package/.next/standalone/app/components/insights/PeopleView.js +266 -0
  249. package/.next/standalone/app/components/insights/Rail.js +156 -0
  250. package/.next/standalone/app/components/insights/Report.js +382 -0
  251. package/.next/standalone/app/components/insights/parts.js +239 -0
  252. package/.next/standalone/app/components/settings/UsageSection.js +50 -3
  253. package/.next/standalone/app/globals.css +2 -3
  254. package/.next/standalone/app/insights/page.js +220 -0
  255. package/.next/standalone/app/page.js +1 -17
  256. package/.next/standalone/app/queue/page.js +30 -18
  257. package/.next/standalone/app/setup/page.js +16 -9
  258. package/.next/standalone/lib/auto-connect.js +145 -0
  259. package/.next/standalone/lib/companies.js +1 -1
  260. package/.next/standalone/lib/in-progress.js +46 -0
  261. package/.next/standalone/lib/insights-board.js +613 -0
  262. package/.next/standalone/lib/linkedin-limits.js +36 -11
  263. package/.next/standalone/lib/requests-client.js +10 -0
  264. package/.next/standalone/lib/requests.js +124 -0
  265. package/.next/standalone/lib/scan-state.js +1 -0
  266. package/.next/standalone/lib/scraper-client.js +18 -5
  267. package/.next/standalone/lib/settings.js +3 -0
  268. package/.next/standalone/lib/usage.js +5 -0
  269. package/.next/standalone/package-lock.json +2 -2
  270. package/.next/standalone/package.json +1 -1
  271. package/.next/standalone/scripts/scrape.py +569 -9
  272. package/.next/static/chunks/02wnf8dkxegxg.js +34 -0
  273. package/.next/static/chunks/0838_s6w-i_ik.js +1 -0
  274. package/.next/{standalone/.next/static/chunks/2eo9pqq9gay3r.js → static/chunks/0ka4prpk3w9wn.js} +4 -4
  275. package/.next/static/chunks/0s_xxwp7z88vv.js +1 -0
  276. package/.next/static/chunks/1-nnl8amfm4yh.js +57 -0
  277. package/.next/static/chunks/112mv-com-mqa.js +21 -0
  278. package/.next/{standalone/.next/static/chunks/44yn0tcd9dfk3.js → static/chunks/1bkt_hhjzvbh8.js} +1 -1
  279. package/.next/static/chunks/1cmphb3kh2ers.css +3 -0
  280. package/.next/{standalone/.next/static/chunks/1qbjermbf68xj.js → static/chunks/1d8yv3k_atka7.js} +1 -1
  281. package/.next/static/chunks/23hc51oa4vkhc.js +5 -0
  282. package/.next/static/chunks/27n8k9wxlz5-7.js +1 -0
  283. package/.next/static/chunks/{0p3g5tfostsep.js → 2q9i7pcxcnph1.js} +2 -2
  284. package/.next/{standalone/.next/static/chunks/2zf4jmz9l3li2.js → static/chunks/2w-y83mjlpnse.js} +1 -1
  285. package/.next/static/chunks/2ws1xf293j-tm.js +5 -0
  286. package/.next/static/chunks/3cqn-r-y5rrw1.js +5 -0
  287. package/.next/static/chunks/3opgg1efrx8q6.js +1 -0
  288. package/.next/static/chunks/3p51fpxxi4d5y.js +34 -0
  289. package/.next/{standalone/.next/static/chunks/0an_b6zi1r_qq.js → static/chunks/3y40z6of3r9py.js} +1 -5
  290. package/.next/static/chunks/403dpflln8ah5.js +1 -0
  291. package/CHANGELOG.md +60 -0
  292. package/README.md +25 -1
  293. package/SECURITY.md +8 -0
  294. package/lib/auto-connect.js +145 -0
  295. package/lib/companies.js +1 -1
  296. package/lib/in-progress.js +46 -0
  297. package/lib/insights-board.js +613 -0
  298. package/lib/linkedin-limits.js +36 -11
  299. package/lib/requests-client.js +10 -0
  300. package/lib/requests.js +124 -0
  301. package/lib/scan-state.js +1 -0
  302. package/lib/scraper-client.js +18 -5
  303. package/lib/settings.js +3 -0
  304. package/lib/usage.js +5 -0
  305. package/package.json +1 -1
  306. package/scripts/scrape.py +569 -9
  307. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_4y8z7._.js +0 -8
  308. package/.next/standalone/.next/server/chunks/_02twlca._.js +0 -10
  309. package/.next/standalone/.next/server/chunks/lib_rpc_0nef_n7.js +0 -3
  310. package/.next/standalone/.next/server/chunks/lib_rpc_0plrzra.js +0 -3
  311. package/.next/standalone/.next/server/chunks/lib_rpc_13a4m0c.js +0 -3
  312. package/.next/standalone/.next/server/chunks/lib_rpc_1if17c-.js +0 -3
  313. package/.next/standalone/.next/server/chunks/lib_rpc_1j-zw7v.js +0 -3
  314. package/.next/standalone/.next/server/chunks/lib_rpc_1sngt-q.js +0 -3
  315. package/.next/standalone/.next/server/chunks/lib_rpc_1v2sgme.js +0 -3
  316. package/.next/standalone/.next/server/chunks/lib_rpc_1vh-tgx.js +0 -3
  317. package/.next/standalone/.next/server/chunks/lib_rpc_1zaubz7.js +0 -3
  318. package/.next/standalone/.next/server/chunks/ssr/_02sband._.js +0 -7
  319. package/.next/standalone/.next/server/chunks/ssr/_189g8lg._.js +0 -3
  320. package/.next/standalone/.next/server/chunks/ssr/_1f_n00p._.js +0 -3
  321. package/.next/standalone/.next/server/chunks/ssr/app_components_0t908t-._.js +0 -3
  322. package/.next/standalone/.next/static/chunks/0e3g0sil79cus.js +0 -21
  323. package/.next/standalone/.next/static/chunks/0zd0t7e60bn4z.js +0 -1
  324. package/.next/standalone/.next/static/chunks/163b-20vwa06i.js +0 -34
  325. package/.next/standalone/.next/static/chunks/1pa-2v1ajvrko.js +0 -1
  326. package/.next/standalone/.next/static/chunks/23_1z47al92nz.js +0 -57
  327. package/.next/standalone/.next/static/chunks/260bomtr214m8.js +0 -34
  328. package/.next/standalone/.next/static/chunks/2xk2ra4piiuod.js +0 -34
  329. package/.next/standalone/.next/static/chunks/3b0-14cxqsprt.js +0 -1
  330. package/.next/standalone/.next/static/chunks/3jarus1_38s2z.js +0 -1
  331. package/.next/standalone/.next/static/chunks/3ssu341hav_sq.css +0 -3
  332. package/.next/standalone/.next/static/chunks/3v1qd3sqhqn0d.js +0 -1
  333. package/.next/static/chunks/0e3g0sil79cus.js +0 -21
  334. package/.next/static/chunks/0zd0t7e60bn4z.js +0 -1
  335. package/.next/static/chunks/163b-20vwa06i.js +0 -34
  336. package/.next/static/chunks/1pa-2v1ajvrko.js +0 -1
  337. package/.next/static/chunks/23_1z47al92nz.js +0 -57
  338. package/.next/static/chunks/260bomtr214m8.js +0 -34
  339. package/.next/static/chunks/2xk2ra4piiuod.js +0 -34
  340. package/.next/static/chunks/3b0-14cxqsprt.js +0 -1
  341. package/.next/static/chunks/3jarus1_38s2z.js +0 -1
  342. package/.next/static/chunks/3ssu341hav_sq.css +0 -3
  343. package/.next/static/chunks/3v1qd3sqhqn0d.js +0 -1
  344. /package/.next/standalone/.next/static/{ZVpLBK-2vpllv2HxOFs2d → 3NCyJyAPDCEYsYTwF1Ieu}/_buildManifest.js +0 -0
  345. /package/.next/standalone/.next/static/{ZVpLBK-2vpllv2HxOFs2d → 3NCyJyAPDCEYsYTwF1Ieu}/_clientMiddlewareManifest.js +0 -0
  346. /package/.next/standalone/.next/static/{ZVpLBK-2vpllv2HxOFs2d → 3NCyJyAPDCEYsYTwF1Ieu}/_ssgManifest.js +0 -0
  347. /package/.next/static/{ZVpLBK-2vpllv2HxOFs2d → 3NCyJyAPDCEYsYTwF1Ieu}/_buildManifest.js +0 -0
  348. /package/.next/static/{ZVpLBK-2vpllv2HxOFs2d → 3NCyJyAPDCEYsYTwF1Ieu}/_clientMiddlewareManifest.js +0 -0
  349. /package/.next/static/{ZVpLBK-2vpllv2HxOFs2d → 3NCyJyAPDCEYsYTwF1Ieu}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,46090,e=>{"use strict";var t=e.i(43476),n=e.i(71645),r=e.i(74080),o=e.i(30215),i=e.i(40996),a=e.i(86106),l=e.i(18306);let s="linear-gradient(135deg, #FFD700, #FF6B35)",c=!1;async function u(){if(c)return!0;try{let e=await fetch("/api/settings",{cache:"no-store"}),t=await e.json();c=!!t?.settings?.autoConnectAccepted}catch{c=!1}return c}async function d(){let e=await fetch("/api/settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:{autoConnectAccepted:new Date().toISOString()}})});if(!e.ok)throw Error((await e.json().catch(()=>({}))).error||"Your answer couldn’t be saved.");c=!0}function f({onSend:e,onCancel:o}){let i=(0,n.useRef)(null);return(0,n.useEffect)(()=>{i.current?.focus();let e=e=>{"Escape"===e.key&&o()};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[o]),(0,r.createPortal)((0,t.jsx)("div",{role:"dialog","aria-modal":"true","aria-label":"Auto sends connection requests",onClick:o,style:{position:"fixed",inset:0,zIndex:400,background:"rgba(var(--sd-shade, 0, 0, 0), 0.72)",display:"flex",alignItems:"center",justifyContent:"center",padding:16},children:(0,t.jsxs)("div",{"data-auto-ask":!0,onClick:e=>e.stopPropagation(),style:{width:"min(420px, 100%)",boxSizing:"border-box",borderRadius:14,padding:"20px 20px 16px",background:"var(--sd-surface, #12111c)",border:"1px solid rgba(255,215,0,0.28)",boxShadow:"0 18px 60px rgba(0,0,0,0.5)",textAlign:"left"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:10},children:[(0,t.jsx)("span",{style:{padding:"3px 9px",borderRadius:6,background:s,color:"#000",fontWeight:800,fontSize:12},children:"Auto"}),(0,t.jsx)("span",{style:{fontSize:15,fontWeight:750,color:"var(--sd-fg-1, #fff)"},children:"Before the first one"})]}),(0,t.jsx)("p",{style:{margin:0,fontSize:13.5,lineHeight:1.6,color:"var(--sd-fg-2, #d6dbe4)"},children:l.AUTO_CONFIRM}),(0,t.jsxs)("p",{style:{margin:"10px 0 0",fontSize:12,lineHeight:1.55,color:"var(--sd-fg-3, #8b9a9a)"},children:["It never adds a note, and stops at ",l.INVITE_CAPS.day," in any 24 hours and ",l.INVITE_CAPS.week," in any 7 days. This is asked once."]}),(0,t.jsxs)("div",{style:{display:"flex",gap:8,justifyContent:"flex-end",marginTop:16},children:[(0,t.jsx)("button",{type:"button",onClick:o,style:{padding:"9px 16px",borderRadius:8,fontSize:13,fontWeight:650,cursor:"pointer",background:"transparent",color:"var(--sd-fg-2, #ccc)",border:"1px solid rgba(var(--sd-ink, 255, 255, 255), 0.18)"},children:"Cancel"}),(0,t.jsx)("button",{ref:i,type:"button",onClick:e,style:{padding:"9px 18px",borderRadius:8,fontSize:13,fontWeight:800,cursor:"pointer",background:s,color:"#000",border:"none"},children:"Send it"})]})]})}),document.body)}let p={card:{padding:"10px 18px",fontSize:13,radius:8,minWidth:104},quest:{padding:"7px 14px",fontSize:12.5,radius:8,minWidth:92},row:{padding:"4px 9px",fontSize:9.5,radius:4,minWidth:0},table:{padding:"6px 11px",fontSize:12,radius:7,minWidth:0}};function h({auto:e,size:n,label:r="Auto"}){let o=p[n]||p.card,i=e.sending||!!e.busy||!!e.result?.marks,a=e.busy?`${e.busy}. Auto waits for it to finish.`:l.AUTO_EXPLAIN;return(0,t.jsx)("button",{type:"button","data-auto-connect":!0,onClick:t=>{t.stopPropagation(),e.press()},disabled:i,title:a,"aria-label":e.sending?"Sending the request":`${r}: ${l.AUTO_EXPLAIN}`,style:{padding:o.padding,borderRadius:o.radius,fontSize:o.fontSize,fontWeight:800,border:"none",minWidth:o.minWidth,background:s,color:"#000",cursor:i?"not-allowed":"pointer",opacity:e.busy?.45:1,whiteSpace:"nowrap",flexShrink:0,boxShadow:i?"none":"0 2px 12px rgba(255,140,50,0.28)"},children:e.sending?"Sending…":r})}let m=e=>e.ok?"var(--sd-green, #00ff88)":"var(--sd-coral, #ff8a7a)";function g({person:e,size:r,connect:s,onSent:p,style:y}){let b=function(e,t){let r=(0,o.default)(),[s,f]=(0,n.useState)(!1),[p,h]=(0,n.useState)(!1),[m,g]=(0,n.useState)(null),y=(0,n.useRef)(new Set),b=(0,n.useRef)(null),w=r.running&&"connect"===r.action&&!!e?.id&&r.target?.id===e.id,k=!r.running||w||p?null:(0,i.busyReason)(r),x=n=>{g(n),n.marks&&setTimeout(()=>{(0,a.sawRequested)(e),t?.(e)},2500)},S=(r.finished||[]).find(t=>"connect"===t.action&&t.target?.id===e?.id);async function v(){f(!1),h(!0),g(null);try{let{startedAt:t,ended:n}=await (0,i.beginScrape)("connect",{id:e.id,name:e.name});y.current.add(t),b.current=t,x((0,l.connectOutcome)(await n))}catch(e){e.details?.needsAutoAcceptance?(c=!1,f(!0)):g({ok:!1,text:e.message})}finally{h(!1)}}return(0,n.useEffect)(()=>{!S||y.current.has(S.startedAt)||b.current===S.startedAt||(b.current=S.startedAt,x((0,l.connectOutcome)(S)))},[S?.startedAt]),{press:async function(){p||w||k||(g(null),await u()?v():f(!0))},confirm:async function(){try{await d(),v()}catch(e){f(!1),g({ok:!1,text:e.message})}},cancel:()=>f(!1),dismiss:()=>g(null),asking:s,sending:p||w,busy:k,result:m}}(e,p),w=b.asking&&(0,t.jsx)(f,{onSend:b.confirm,onCancel:b.cancel});if("row"===r||"table"===r)return(0,t.jsxs)("span",{style:{position:"relative",display:"inline-flex",gap:4,alignItems:"center",flexShrink:0,...y},onClick:e=>e.stopPropagation(),children:[(0,t.jsx)(h,{auto:b,size:r}),s(!0),b.result&&(0,t.jsxs)("span",{role:"status",style:{position:"absolute",top:"calc(100% + 4px)",right:0,zIndex:20,width:230,boxSizing:"border-box",padding:"7px 24px 7px 9px",borderRadius:7,fontSize:11,lineHeight:1.45,fontWeight:600,textAlign:"left",color:m(b.result),background:"var(--sd-surface, #14131d)",border:`1px solid ${b.result.ok?"rgba(0,255,136,0.35)":"rgba(255,138,122,0.4)"}`,boxShadow:"0 8px 24px rgba(0,0,0,0.4)"},children:[b.result.text,(0,t.jsx)("button",{type:"button","aria-label":"Close",onClick:b.dismiss,style:{position:"absolute",top:3,right:4,background:"none",border:"none",cursor:"pointer",color:"var(--sd-fg-3, #888)",fontSize:12,lineHeight:1},children:"×"})]}),w]});let k="card"===r;return(0,t.jsxs)("div",{style:y,children:[(0,t.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"stretch",flexWrap:"wrap"},children:[(0,t.jsx)(h,{auto:b,size:r}),s(!0)]}),k&&(0,t.jsx)("div",{style:{fontSize:11,lineHeight:1.5,color:"var(--sd-fg-3, #8b9a9a)",marginTop:8},children:b.busy?`${b.busy}. Auto waits for it to finish.`:l.AUTO_EXPLAIN}),b.result&&(0,t.jsx)("div",{role:"status",style:{fontSize:12,lineHeight:1.5,fontWeight:650,marginTop:8,color:m(b.result)},children:b.result.text}),w]})}e.s(["default",0,function({person:e,canAuto:n=!0,size:r="card",connect:o,onSent:i,style:a}){return n&&e?.id&&e?.profile_url?(0,t.jsx)(g,{person:e,size:r,connect:o,onSent:i,style:a},e.id):o(!1)},"secondaryLook",0,function(e="card",{color:t="var(--sd-gold, #FFD700)",line:n="rgba(255,215,0,0.5)"}={}){let r=p[e]||p.card;return{padding:r.padding,borderRadius:r.radius,fontSize:r.fontSize,fontWeight:700,background:"transparent",color:t,border:`1px solid ${n}`,textDecoration:"none",cursor:"pointer",whiteSpace:"nowrap",boxSizing:"border-box",display:"inline-flex",alignItems:"center",justifyContent:"center"}}])},64984,e=>{"use strict";var t=e.i(43476),n=e.i(46949),r=e.i(36774);let o=e.i(54322).TIER_COLORS;e.s(["default",0,function({person:e,size:i=32,tierColors:a=o}){let l=a[e?.tier]||"#666",s=(0,r.localPhoto)(e?.profile_image_url);return(0,t.jsxs)("span",{className:"sd-dot-html",style:{position:"relative",display:"inline-block",width:i,height:i,flexShrink:0,borderRadius:"50%",boxShadow:`0 0 0 ${i>=24?2:1}px ${l}`},children:[(0,t.jsx)("span",{style:{position:"absolute",inset:0,borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",background:`${l}2e`,color:l,fontWeight:800,fontSize:Math.max(7,Math.round(.36*i)),lineHeight:1},children:(0,n.initialsFor)(e?.name)}),s&&(0,t.jsx)("img",{src:s,alt:"",loading:"lazy",decoding:"async",onError:e=>{e.currentTarget.style.display="none"},style:{position:"absolute",inset:0,width:i,height:i,borderRadius:"50%",objectFit:"cover"}})]})}])},28867,e=>{"use strict";var t=e.i(71645),n=e.i(86106);e.s(["default",0,function(){return(0,t.useSyncExternalStore)(n.watchRequests,n.requestsNow,()=>n.REQUESTS_UNKNOWN)}])},18306,e=>{"use strict";let t={day:15,week:80},n=t.day,r=t.week,o={sent:{ok:!0,marks:!0,text:"Request sent"},"already-pending":{ok:!0,marks:!0,text:"A request to them was already pending on LinkedIn, so nothing new was sent. It’s marked as sent here."},"email-needed":{text:"LinkedIn wants their email address before it sends this one. Use Connect to add them yourself."},"no-connect":{text:"LinkedIn shows no Connect for them here, only Follow or Message, or a request is already out. Nothing was sent."},"not-sent":{text:"LinkedIn asked something Auto doesn’t answer for you, so it closed that and sent nothing. Use Connect to add them yourself."},unclear:{text:"Auto pressed Send but couldn’t see the request go through, so it isn’t marked as sent. Use Connect to check their profile."},"not-loaded":{text:"Their profile didn’t load, so nothing was sent. Try again in a while."},unavailable:{text:"LinkedIn says their profile isn’t available, so nothing was sent."},"linkedin-limit":{text:"LinkedIn says this account has reached its invitation limit for now. Nothing was sent."},pushback:{text:"LinkedIn pushed back, so scanning and Auto are paused for a day. Settings, LinkedIn usage says when it ends."},stopped:{text:"Stopped before anything was sent."},"not-signed-in":{text:"LinkedIn isn’t signed in in the scanner’s Chrome. Sign in on the Scan page (step 2), then try again."},cooldown:{text:"Scanning is paused after LinkedIn pushed back, and Auto waits with it. Nothing was sent."},"invites-day":{text:`Auto has sent ${n} requests in the last 24 hours, its limit. Nothing was sent.`},"invites-week":{text:`Auto has sent ${r} requests in the last 7 days, its limit. Nothing was sent.`},profiles:{text:"Today’s profile views are used, and Auto opens their profile to send. Nothing was sent."},"not-found":{text:"That person isn’t in your network on this computer, so nothing was sent."}};Object.keys(o),e.s(["AUTO_CONFIRM",0,"Auto sends connection requests from your LinkedIn account, one each time you press it. LinkedIn limits how many invitations an account can send, and may restrict accounts that send many.","AUTO_EXPLAIN",0,"Sends the request for you from the scanner’s Chrome, without a note. Counts toward your LinkedIn usage.","INVITE_CAPS",0,t,"REPORTED_WEEKLY_INVITES",0,100,"connectOutcome",0,function(e){let t=e?.outcome&&Object.hasOwn(o,e.outcome)?e.outcome:null;if(t){let e=o[t];return{result:t,ok:!!e.ok,marks:!!e.marks,text:e.text}}let n=Array.isArray(e?.failure)?e.failure.filter(Boolean).slice(-2).join(" "):"";return{result:null,ok:!1,marks:!1,text:n?`Auto couldn’t finish, and nothing is marked as sent: ${n}`:"Auto couldn’t finish, and nothing is marked as sent."}}])},64666,e=>{"use strict";var t=e.i(7214);function n(e=[],r=[]){let o=new Set((r||[]).map(t.keyFor)),i=new Map;for(let n of e||[]){let e=n?.source_connection_id;if(null==e)continue;let r=(0,t.keyFor)(n);if(o.has(r))continue;let a=i.get(r);a||i.set(r,a=new Set),a.add(e)}let a=new Map;for(let e of i.values())for(let t of e){let n=a.get(t)||{reach:0,only:0,total:0};n.reach+=1/e.size,n.total+=1,1===e.size&&(n.only+=1),a.set(t,n)}return a}e.s(["bridgeOverlap",0,function(e=[],r=[]){let o=n(e,r),i=new Set((r||[]).map(t.keyFor)),a=new Map;for(let n of e||[]){let e=n?.source_connection_id;if(null==e)continue;let r=(0,t.keyFor)(n);if(i.has(r))continue;let o=a.get(r);o||a.set(r,o=new Set),o.add(e)}let l=new Map;for(let e of a.values()){if(e.size<2)continue;let t=[...e];for(let e=0;e<t.length;e++)for(let n=e+1;n<t.length;n++){let r=t[e]<t[n]?`${t[e]}|${t[n]}`:`${t[n]}|${t[e]}`;l.set(r,(l.get(r)||0)+1)}}let s=new Map;for(let[e,t]of l){let[n,r]=e.split("|"),i=o.get(n).total+o.get(r).total-t,a=i?t/i:0;for(let[e,o]of[[n,r],[r,n]]){let n=s.get(e);(!n||a>n.share)&&s.set(e,{with:o,share:a,shared:t})}}return s},"exclusiveReach",0,n,"redundancy",0,function(e=[],t=[]){let r=n(e,t),o=0,i=0;for(let e of r.values())o+=e.reach,i+=e.only;return o?1-i/o:0}])},70479,e=>{"use strict";let t=2*Math.PI;function n(e,n,r){if(e<=0)return 1;let o=r*e;return Math.max(1,r>=t-1e-9?Math.floor(o/n):Math.floor(o/n)+1)}function r(e,t,o,i,a=o){let l=[],s=0;for(let r=t;s<e;r+=Math.max(o,a))l.push(r),s+=n(r,o,i);return l}let o=(e,t,n,o,i)=>{let a=r(e,t,n,o,i);return a[a.length-1]};function i(e,{inner:a,outer:l,spacing:s,minSpacing:c=s/3,innerMin:u=a,start:d=-Math.PI/2,sweep:f=t,ringGap:p=0}={}){let h=Math.max(0,Math.floor(e)||0);if(!h)return{spacing:s,inner:a,rings:[],points:[]};let m=s,g=a;if(o(h,g,m,f,p)>l)if(o(h,u,m,f,p)<=l){let e=u,t=a;for(let n=0;n<24;n++){let n=(e+t)/2;o(h,n,m,f,p)<=l?e=n:t=n}g=e}else{let e=c,t=s;if(o(h,g=u,e,f,p)<=l)for(let n=0;n<24;n++){let n=(e+t)/2;o(h,g,n,f,p)<=l?e=n:t=n}m=e}let y=r(h,g,m,f,p),b=y.map(e=>n(e,m,f)),w=b.reduce((e,t)=>e+t,0),k=b.map(e=>Math.min(e,Math.floor(h*e/w))),x=h-k.reduce((e,t)=>e+t,0);for(;x>0;){let e=-1;for(let t=0;t<b.length;t++)k[t]<b[t]&&(e<0||b[t]-k[t]>b[e]-k[e])&&(e=t);k[e]++,x--}let S=f>=t-1e-9,v=[],M=[];return y.forEach((e,n)=>{let r=k[n];if(!r)return;M.push({radius:e,count:r});let o=S?t/r:r>1?f/(r-1):0,i=S?d+(n%2?o/2:0):r>1?d:d+f/2,a=S?null:function(e){let t=Math.floor((e-1)/2),n=t+1,r=[t--];for(;r.length<e;)n<e&&r.push(n++),r.length<e&&t>=0&&r.push(t--);return r}(r);for(let t=0;t<r;t++){let n=i+(a?a[t]:t)*o;v.push({x:e*Math.cos(n),y:e*Math.sin(n),angle:n,ring:M.length-1})}}),{spacing:m,inner:g,rings:M,points:v}}let a=["S","A","B","C","D"];e.s(["chainTree",0,function(e=[],{from:n=0,hop:r=60,spacing:o=46,toward:i=0,angles:a=[]}={}){let l=e.length,s=e.map((e,t)=>Number.isInteger(e)&&e>=0&&e<l&&e!==t?e:-1),c=Array(l).fill(0);for(let e=0;e<l;e++){let t=[],n=e;for(;n>=0&&!c[n]&&!t.includes(n);)t.push(n),n=s[n];n>=0&&!c[n]&&(s[t[t.length-1]]=-1,n=-1);let r=n>=0?c[n]+1:1;for(let e=t.length-1;e>=0;e--)c[t[e]]=r++}let u=Array(l),d=[];for(let e=1;e<=Math.max(0,...c);e++){let f=[];for(let t=0;t<l;t++)c[t]===e&&f.push(t);let p=n+(e-1)*r,h=function(e,n){let r=e.length;if(r<2)return e.slice();let o=e=>(e%t+t)%t,i=e.map((e,t)=>t).sort((t,n)=>o(e[t])-o(e[n])||t-n),a=0,l=-1;i.forEach((n,s)=>{let c=o(o(e[i[(s+1)%r]])-o(e[n]))||(r>1&&s===r-1?t:0);c>l&&(l=c,a=(s+1)%r)});let s=i.slice(a).concat(i.slice(0,a)),c=o(e[s[0]]),u=s.map(t=>c+o(o(e[t])-c)),d=[];u.forEach((e,t)=>{for(d.push({sum:e-t*n,count:1});d.length>1&&d[d.length-2].sum/d[d.length-2].count>d[d.length-1].sum/d[d.length-1].count;){let e=d.pop();d[d.length-1].sum+=e.sum,d[d.length-1].count+=e.count}});let f=d.flatMap(e=>Array(e.count).fill(e.sum/e.count)).map((e,t)=>e+t*n);if(f[r-1]-f[0]>t-n){let e=(f[0]+f[r-1])/2;f=f.map((n,o)=>e+t/r*(o-(r-1)/2))}let p=Array(r);return s.forEach((e,t)=>{p[e]=f[t]}),p}(f.map(e=>s[e]<0?Number.isFinite(a[e])?a[e]:i:u[s[e]].angle),Math.min(o/Math.max(1,p),t/f.length));f.forEach((t,n)=>{let r=h[n];u[t]={x:p*Math.cos(r),y:p*Math.sin(r),angle:r,radius:p,depth:e,parent:s[t]}}),d.push({radius:p,count:f.length,depth:e})}return{rings:d,points:u}},"circleActivity",0,function(e,{notes:t=[],ready:n=new Map,chained:r=new Map}={}){let o=new Map;for(let e of t){if(e?.circle==null)continue;let t=o.get(e.circle)||{notes:0,unread:0};t.notes+=1,e.seen||(t.unread+=1),o.set(e.circle,t)}let i=new Map;for(let t of e){let e=o.get(String(t.id))||{notes:0,unread:0},a=n.get(t.id)||0,l=r.get(t.id)||0;i.set(t.id,{score:e.notes+e.unread+a+l,notes:e.notes,unread:e.unread,ready:a,chains:l})}return i},"dotRadius",0,function(e,t){return Math.max(1.4,Math.min(7,.42*e*("S"===t?1:"A"===t?.86:"B"===t?.72:.6)))},"previewBand",0,function(e,t=[],n=34){let r=Math.max(0,...t.map(e=>e.radius)),o=Math.max(.66*e,r?r+n:0);return{inner:o,outer:Math.max(.8*e,o+.14*e)}},"ringLayout",0,i,"tierBandLayout",0,function(e,{inner:n,outer:r,spacing:o,minSpacing:l=o/3,gap:s=o,start:c=-Math.PI/2}){let u=a.map(e=>({tier:e,idx:[]}));e.forEach((e,t)=>{let n=a.indexOf(e?.tier);u[n<0?4:n].idx.push(t)});let d=u.filter(e=>e.idx.length),f=r=>{let a=Array(e.length),l=[],u=n;for(let e of d){let n=i(e.idx.length,{inner:u,outer:1/0,spacing:r,minSpacing:r,start:c});e.idx.forEach((e,r)=>{let o=n.points[r];a[e]={x:o.x,y:o.y,angle:o.angle,slot:t/n.rings[o.ring].count}});let d=Math.max(u,...n.rings.map(e=>e.radius));l.push({tier:e.tier,inner:u,outer:d}),u=d+r/o*s}return{spacing:r,points:a,bands:l,edge:l.length?l[l.length-1].outer:n}},p=f(o);if(p.edge<=r)return p;let h=l,m=o;if((p=f(h)).edge>r)return p;for(let e=0;e<20;e++){let e=(h+m)/2,t=f(e);t.edge<=r?(h=e,p=t):m=e}return p}])},89154,e=>{"use strict";var t=e.i(90179);function n(e){let n=(0,t.readTitle)(e);return{key:n.key,label:n.label,level:n.level}}function r(e){return(0,t.currentCompany)(e)}let o=[{key:"defense",label:"Government, Defense & Aerospace",color:"#7f8c8d",words:/\b(government|federal|state of|county|city of|defen[cs]e|army|navy|air force|marine corps|military|dod|nasa|aerospace|lockheed|northrop|boeing|raytheon|l3harris|leidos|blue origin|spacex|public sector)\b/i},{key:"finance",label:"Finance & Investing",color:"#2ecc71",words:/\b(bank|banking|capital|ventures?|vc|investments?|investor|fund|private equity|growth equity|asset management|wealth|trading|trader|hedge|crypto|blockchain|web3|defi|fintech|stripe|coinbase|blackrock|robinhood|goldman|morgan stanley|jpmorgan|chase|bny|mellon|wells fargo|citi|citigroup|capital one|fidelity|vanguard|schwab|visa|mastercard|amex|american express|paypal|insurance|accounting|cpa|financial)\b/i},{key:"health",label:"Healthcare & Biotech",color:"#e74c3c",words:/\b(health|healthcare|medical|medicine|hospital|clinic|pharma|pharmaceutical|biotech|nurse|nursing|physician|doctor|dental|therapy|therapist|wellness)\b/i},{key:"education",label:"Education",color:"#f1c40f",words:/\b(university|college|school|education|student|professor|teacher|academy|phd|faculty|alumni)\b/i},{key:"media",label:"Marketing & Media",color:"#e67e22",words:/\b(marketing|brand|branding|advertising|agency|media|content|social media|creative|creator|influencer|pr|public relations|communications|tiktok|pinterest|youtube|growth marketing)\b/i},{key:"entertainment",label:"Entertainment & Gaming",color:"#9b59b6",words:/\b(entertainment|film|movie|music|records|gaming|games?|esports|studio|studios|netflix|disney|spotify|hollywood|theater|theatre|sports)\b/i},{key:"tech",label:"Tech, Software & AI",color:"#3498db",words:/\b(software|saas|engineer|engineering|developer|tech|technology|technologies|ai|artificial intelligence|machine learning|ml|data|cloud|cyber|security|devops|product manager|google|microsoft|apple|meta|amazon|nvidia|openai|anthropic|palantir|salesforce|oracle|ibm|intel|app|apps|startup|platform|labs?)\b/i},{key:"consulting",label:"Consulting, Legal & Services",color:"#1abc9c",words:/\b(consulting|consultant|consultancy|deloitte|accenture|mckinsey|kpmg|pwc|ey|bain|bcg|legal|law|lawyer|attorney|paralegal|recruiting|recruiter|staffing|talent)\b/i},{key:"realestate",label:"Real Estate & Construction",color:"#d35400",words:/\b(real estate|realtor|realty|property|properties|construction|architecture|architect|mortgage|homes|housing|builders?)\b/i},{key:"consumer",label:"Retail, Consumer & Hospitality",color:"#ff79c6",words:/\b(retail|e-?commerce|shopify|consumer|cpg|fashion|apparel|beauty|cosmetics|foods?|beverages?|restaurant|hospitality|hotel|travel|tourism|coca-cola|nike|store|shop)\b/i},{key:"industry",label:"Manufacturing, Energy & Logistics",color:"#95a5a6",words:/\b(manufacturing|energy|oil|gas|solar|utilities|automotive|tesla|siemens|ge|general electric|honeywell|3m|logistics|supply chain|shipping|freight|fedex|ups|industrial|mining|chemicals?)\b/i},{key:"nonprofit",label:"Nonprofit & Community",color:"#bdc3c7",words:/\b(nonprofit|non-profit|foundation|charity|ngo|church|ministry|volunteer)\b/i}],i={key:"unknown",label:"Unclear",color:"#555c66"},a=Object.fromEntries([...o,i].map(e=>[e.key,e])),l=e=>a[e]||i;function s(e,t){for(let n of[e,t]){if(!n)continue;let e=o.find(e=>e.words.test(n));if(e)return e}return i}let c=(e,t)=>s(e,t).key,u=e=>n(e).level>=4;e.s(["INDUSTRIES",0,o,"UNKNOWN_INDUSTRY",0,i,"buildCompanyIndex",0,function(e=[]){let n=new Map,r=e=>(n.has(e)||n.set(e,(0,t.rolesWithCompanies)(e)),n.get(e)),{industries:o}=(0,t.networkCompanies)(e,{industryOf:c,rolesOf:r}),i=new Map;for(let t of e){let e=t.profile_url||`id:${t.id}`,n=i.get(e);(!n||(t.degree||9)<(n.degree||9))&&i.set(e,t)}let a=new Map;for(let e of i.values()){let t=r(e).find(e=>!e.former)?.company;if(!t)continue;let n=a.get(t);n||(n={name:t,people:[],d1:0,d2:0,d3:0,S:0,A:0,senior:0},a.set(t,n)),n.people.push(e),1===e.degree?n.d1++:2===e.degree?n.d2++:n.d3++,"S"===e.tier&&n.S++,"A"===e.tier&&n.A++,u(e.headline)&&n.senior++}for(let e of a.values())e.industry=l(o.get(e.name));return a},"companyLinks",0,function(e=[],t=[]){let n=new Map;for(let t of e){let e=r(t);e&&n.set(t.id,e)}let o=new Map;for(let e of t){let t=n.get(e.source_connection_id),i=r(e);if(!t||!i||t===i)continue;let[a,l]=t<i?[t,i]:[i,t],s=`${a}\u0000${l}`,c=o.get(s);c||(c={a:a,b:l,weight:0,via:new Set},o.set(s,c)),c.weight++,c.via.add(e.source_connection_id)}return[...o.values()]},"companyOf",0,r,"getSeniority",0,n,"industryByKey",0,l,"industryOf",0,s,"isSenior",0,u,"waysInto",0,function(e,t=[],n=[]){let o=t.filter(t=>r(t)===e),i=new Map;for(let t of n)r(t)===e&&i.set(t.source_connection_id,(i.get(t.source_connection_id)||0)+1);let a=new Map(t.map(e=>[e.id,e]));return{direct:o,bridges:[...i.entries()].map(([e,t])=>({bridge:a.get(e),n:t})).filter(e=>e.bridge).sort((e,t)=>t.n-e.n||(Number(t.bridge.power_score)||0)-(Number(e.bridge.power_score)||0))}}])},39160,84278,e=>{"use strict";var t=e.i(7214),n=e.i(7837);function r(e){let t=String(e||"").trim();if(!t)return null;let n=t.match(/^(\d{4})-(\d{2})-(\d{2})[ T](\d{2}):(\d{2})(?::(\d{2}))?(?:\s*UTC)?$/);if(n)return Date.UTC(+n[1],n[2]-1,+n[3],+n[4],+n[5],+(n[6]||0));if(n=t.match(/^(\d{1,2})\/(\d{1,2})\/(\d{2,4}),?\s+(\d{1,2}):(\d{2})\s*(AM|PM)?$/i)){let e=100>+n[3]?2e3+ +n[3]:+n[3],t=n[4]%12;return"PM"===(n[6]||"").toUpperCase()&&(t+=12),Date.UTC(e,n[1]-1,+n[2],t,+n[5])}if(n=t.match(/^([A-Za-z]{3,9})\s+(\d{4})$/)){let e=Date.parse(`1 ${n[1]} ${n[2]} UTC`);return Number.isNaN(e)?null:e}let r=Date.parse(/\d{4}$/.test(t)?`${t} UTC`:t);return Number.isNaN(r)?null:r}let o=e=>(0,t.keyFor)({profile_url:e});function i(e=[]){let t=new Map;for(let n of e){let e=o(n["sender profile url"]),r=n["conversation id"];r&&e&&(t.has(e)||t.set(e,new Set),t.get(e).add(r))}let n=null;for(let[e,r]of t)(!n||r.size>t.get(n).size)&&(n=e);return n}let a=e=>{let t=f(e);return t?`name:${t}`:null},l=/sponsored/i,s=/in\s?mail/i,c=/linkedin\.com\/(company|showcase|school)\//i,u=e=>/^(yes|true|1)$/i.test(String(e||"").trim());function d(e,t){if(!e||!e.total)return"never";let n=t-e.last;return n<=2592e6||e.recent>=3?"warm":n<=31536e6?"cool":"dormant"}let f=e=>String(e||"").split(",")[0].normalize("NFD").replace(/[̀-ͯ]/g,"").toLowerCase().replace(/[^a-z0-9 ]+/g," ").replace(/\s+/g," ").trim();e.s(["buildConversations",0,function(e=[],{keepText:t=!1}={}){let n=i(e),d=new Map;for(let t of e)n&&o(t["sender profile url"])===n&&t.from&&d.set(t.from,(d.get(t.from)||0)+1);let p=f([...d].sort((e,t)=>t[1]-e[1])[0]?.[0]||""),h=e=>!!e&&(e===n||!!p&&e===`name:${p}`),m={},g=new Map,y=0,b=0;for(let n of e){let e=n["conversation id"],i=r(n.date);if(!e||null==i){b+=1;continue}if(u(n["is message draft"])){y+=1;continue}let d=o(n["sender profile url"])||a(n.from);d&&n.from&&!m[d]&&(m[d]=String(n.from).trim());let f=String(n["recipient profile urls"]||"").split(/[,;\s]+/).filter(Boolean).map(o),p=String(n.to||"").split(",").map(e=>e.trim()).filter(Boolean),w=f.length?f:p.map(a).filter(Boolean);f.length&&f.length===p.length&&f.forEach((e,t)=>{m[e]||(m[e]=p[t])}),f.length||p.forEach(e=>{let t=a(e);t&&!m[t]&&(m[t]=e)}),g.has(e)||g.set(e,{id:e,title:"",everyone:new Set,messages:[],kind:null,folder:"",newest:-1/0});let k=g.get(e);d&&k.everyone.add(d),w.forEach(e=>k.everyone.add(e)),k.kind=k.kind||function(e){let t=String(e.folder||""),n=String(e["conversation title"]||"");return l.test(t)||l.test(n)||c.test(String(e["sender profile url"]||""))?"sponsored":s.test(t)||s.test(n)?"inmail":null}(n),i>=k.newest&&(k.newest=i,k.folder=String(n.folder||"").trim().toLowerCase().slice(0,30));let x={t:i,fromMe:h(d)};t&&(x.text=[n.subject,n.content].map(e=>String(e||"").trim()).filter(Boolean).join("\n\n"),!k.title&&n["conversation title"]&&(k.title=String(n["conversation title"]).trim())),k.messages.push(x)}let w=[];for(let e of g.values()){let n=[...e.everyone].filter(e=>e&&!h(e)).sort();e.messages.sort((e,t)=>e.t-t.t);let r={id:e.id,people:n,group:n.length>1,kind:e.kind,folder:e.folder,messages:e.messages};t&&(r.title=e.title),w.push(r)}for(let e of Object.keys(m))h(e)&&delete m[e];return{self:n,conversations:w,names:m,drafts:y,skipped:b}},"buildInvitations",0,function(e=[],{keepText:t=!1}={}){let n=[];for(let i of e){let e=String(i.direction||"").toUpperCase();if("INCOMING"!==e&&"OUTGOING"!==e)continue;let l="INCOMING"===e?"in":"out",s=String(("in"===l?i.from:i.to)||"").trim(),c=o("in"===l?i.inviterprofileurl:i.inviteeprofileurl),u=(c&&/\/in\//.test(c)?c:null)||a(s);if(!u)continue;let d=r(i["sent at"]),f={id:`${l}|${u}|${d??""}`,dir:l,key:u,name:s.slice(0,120),t:d};t&&String(i.message||"").trim()&&(f.note=String(i.message).trim().slice(0,2e3)),n.push(f)}return n.sort((e,t)=>(t.t||0)-(e.t||0))},"careerChapters",0,function(e=[],t=[],n=Date.now()){let i=e.map(e=>({company:e["company name"]||"",title:e.title||"",from:r(e["started on"]),to:r(e["finished on"])})).filter(e=>e.company&&null!=e.from).sort((e,t)=>e.from-t.from),a=t.map(e=>({url:o(e.url||e.profile_url),t:r(e["connected on"]||e.connected_on)})).filter(e=>null!=e.t);return i.map(e=>{let t=e.to??n,r=a.filter(n=>n.t>=e.from&&n.t<t);return{...e,to:e.to,made:r.length,people:r.map(e=>e.url)}})},"conversationSummary",0,function(e){let t=e.messages[e.messages.length-1];return{id:e.id,people:e.people,group:e.group,kind:e.kind||null,folder:e.folder||"",last:t?t.t:null,lastFromThem:t?!t.fromMe:null,count:e.messages.length,mine:e.messages.filter(e=>e.fromMe).length}},"invitationSplit",0,function(e=[]){let t=0,n=0;for(let r of e){let e=String(r.direction||"").toUpperCase();"INCOMING"===e?t+=1:"OUTGOING"===e&&(n+=1)}return{incoming:t,outgoing:n,total:t+n}},"messageStats",0,function(e=[]){let t=i(e),n=new Map;for(let t of e){let e=o(t["sender profile url"]),i=t["conversation id"];if(!i||!e)continue;let a=String(t["recipient profile urls"]||"").split(/[,;\s]+/).filter(Boolean).map(o),l=r(t.date);if(null==l)continue;n.has(i)||n.set(i,{people:new Set,msgs:[]});let s=n.get(i);s.people.add(e),a.forEach(e=>s.people.add(e)),s.msgs.push({from:e,t:l})}let a=0,l=new Map;for(let e of n.values()){let n=[...e.people].filter(e=>e!==t);if(1!==n.length||!e.people.has(t))continue;let r=n[0],o=l.get(r)||{last:0,lastFromThem:!1,total:0,times:[]};for(let n of e.msgs)o.total+=1,o.times.push(n.t),n.t>=o.last&&(o.last=n.t,o.lastFromThem=n.from!==t),n.t>a&&(a=n.t);l.set(r,o)}for(let e of l.values())e.recent=e.times.filter(e=>e>a-7776e6).length,delete e.times;return{self:t,asOf:a||null,people:l}},"nameKey",0,f,"postingEffect",0,function(e=[],t=[]){let n=e.map(e=>({t:r(e.date),link:e.sharelink||e["share link"]||""})).filter(e=>null!=e.t).sort((e,t)=>e.t-t.t),o=t.map(e=>r(e["connected on"]||e.connected_on)).filter(e=>null!=e).sort((e,t)=>e-t);if(!o.length)return{posts:[],usualWeek:0,afterPosts:0};let i=Math.max(6048e5,o[o.length-1]-o[0]),a=o.length/i*6048e5,l=n.map(e=>({...e,week:o.filter(t=>t>=e.t&&t<e.t+6048e5).length})),s=l.length?l.reduce((e,t)=>e+t.week,0)/l.length:0;return{posts:l,usualWeek:a,afterPosts:s}},"readTable",0,function(e,t){let r=(0,n.parseCsv)(String(e||"")),o=r.findIndex(e=>e.some(e=>e.trim().toLowerCase()===t.toLowerCase()));if(o<0)return[];let i=r[o].map(e=>e.trim().toLowerCase());return r.slice(o+1).filter(e=>e.some(e=>e.trim())).map(e=>Object.fromEntries(i.map((t,n)=>[t,(e[n]??"").trim()])))},"warmthOf",0,d],84278);let p=["gravity","rings","push","pull","distance","orbit","dotSize","lines","sizeBy","names","branch","colourBy","speed","loop"],h=e=>"boolean"==typeof e||"number"==typeof e&&Number.isFinite(e)&&1e3>=Math.abs(e)||"string"==typeof e&&/^[a-z]{1,20}$/i.test(e);function m(e){if(!Array.isArray(e))return[];let t=new Map;for(let n of e){let e="string"==typeof n?.name?n.name.trim().slice(0,40):"";if(!e||!n.settings||"object"!=typeof n.settings||Array.isArray(n.settings))continue;let r={};for(let e of p)Object.hasOwn(n.settings,e)&&h(n.settings[e])&&(r[e]=n.settings[e]);t.set(e,{name:e,settings:r})}return[...t.values()].slice(0,50)}var g=e.i(56899),y=e.i(40827);let b="six-degrees-galaxy-lab",w="six-degrees-galaxy-layouts",k=Object.freeze({on:!0,gravity:0,rings:1,push:15,pull:1,distance:1,dotSize:1,lines:1,sizeBy:"power",orbit:0,names:"key",branch:!1,colourBy:"tier",speed:15,loop:!1,labels:!0,v:2}),x=["gravity","rings","push","pull","distance"],S=Object.freeze({gravity:.8,rings:0,push:6,pull:6,distance:.15,sizeBy:"links"}),v=Object.freeze({rings:{lines:1},orbit:{lines:1},clusters:{lines:3}}),M=Object.freeze({gravity:0,rings:3,push:6,pull:4,distance:.22,sizeBy:"power"}),A=new Set,C=null;function N(){return C||(C=function(){try{let e=JSON.parse(localStorage.getItem(b)||"null");if(!e||"object"!=typeof e)return k;return{...k,...e,...e.v===k.v?{}:{branch:!1},v:k.v,on:!0}}catch{return k}}()),C}function O(e){C=null===e?{...k,labels:N().labels}:{...N(),...e,on:!0};try{localStorage.setItem(b,JSON.stringify(C))}catch{}A.forEach(e=>e())}let I=null,E=new Set;function T(){if(!I){try{I=JSON.parse(localStorage.getItem(w)||"[]")}catch{I=[]}Array.isArray(I)||(I=[])}return I}function F(e,{save:t=!0}={}){I=e;try{localStorage.setItem(w,JSON.stringify(e))}catch{}E.forEach(e=>e()),t&&(0,g.saveSettings)({galaxyLayouts:e})}let j=new Set,L={at:null,playing:!1,min:null,max:null,of:0,find:"",fly:0,found:0,fit:0,social:void 0},R=null;function _(e){let t={...L,...e};Object.keys(e).every(e=>Object.is(t[e],L[e]))||(L=t,j.forEach(e=>e()))}function z(){cancelAnimationFrame(R),R=null,_({playing:!1})}let $=null;function B(e){let n=new Map;for(let[r,o]of Object.entries(e?.people||{}))n.set((0,t.keyFor)({profile_url:r}),{...o});for(let[r,o]of Object.entries(e?.live||{})){let e=(0,t.keyFor)({profile_url:r}),i=n.get(e)||{total:0,recent:0};o.last&&(!i.last||o.last>i.last)&&(i.last=o.last,"boolean"==typeof o.lastFromThem&&(i.lastFromThem=o.lastFromThem)),i.unread=o.unread,i.total=Math.max(i.total||0,1),n.set(e,i)}let r=Math.max(e?.asOf||0,e?.liveAt&&Date.parse(e.liveAt)||0);for(let e of n.values())(e.last||0)>r&&(r=e.last);return{merged:n,asOf:r,chapters:e?.chapters||[],posts:e?.posts?.posts||[]}}let U={1:"#4FC3F7",2:"#BA68C8",3:"#FFB74D"},D=["#FF6B6B","#4ECDC4","#FFD93D","#A29BFE","#00B894","#FD79A8","#74B9FF","#E17055"],W={warm:"#FF7043",cool:"#4FC3F7",dormant:"#8D6E63",never:"#546E7A"},P="#4a5568",q=["#2b1b6b","#6a1b9a","#c2185b","#f4511e","#ffb300","#fff3b0"];function H(e){let t=Math.max(0,Math.min(1,Number(e)||0))*(q.length-1),n=Math.min(q.length-2,Math.floor(t)),r=t-n,o=q[n],i=q[n+1];return`#${[1,3,5].map(e=>Math.round(parseInt(o.slice(e,e+2),16)*(1-r)+parseInt(i.slice(e,e+2),16)*r).toString(16).padStart(2,"0")).join("")}`}function G(e=[],t=()=>0){let n=[...new Set(e.map(t))].sort((e,t)=>e-t),r=new Map(n.map((e,t)=>[e,n.length>1?t/(n.length-1):1]));return e=>r.get(t(e))??0}let K=e=>String(e||"").trim().toLowerCase();e.s(["CLUSTERS",0,S,"FORCE_KEYS",0,x,"LAB_DEFAULTS",0,k,"LAYOUT_LOOKS",0,v,"ORBIT",0,M,"adoptSavedLayouts",0,function(e){let t=m(T()),{use:n,save:r,changed:o}=(0,y.reconcileSaved)({saved:null==e?null:m(e),cached:t,isDefault:e=>0===e.length,same:(e,t)=>JSON.stringify(e)===JSON.stringify(t)});r&&(0,g.saveSettings)({galaxyLayouts:t}),o&&F(n,{save:!1})},"applyLayout",0,function(e){let t=T().find(t=>t.name===e);t&&O(Object.fromEntries(p.filter(e=>e in t.settings).map(e=>[e,t.settings[e]])))},"bornTimes",0,function(e,t){let n=new Map(e.map(e=>[e.id,e])),r=new Map,o=(e,i=0)=>{if(r.has(e.id))return r.get(e.id);let a=-1/0,l=t.get(e.id);if(1===e.degree||null==l||i>6){let t=e.connected_date?Date.parse(e.connected_date):NaN;a=Number.isNaN(t)?-1/0:t}return null!=l&&n.has(l)&&i<=6&&(a=Math.max(a,o(n.get(l),i+1))),r.set(e.id,a),a};return e.map(e=>o(e))},"chapterAt",0,function(e,t){let n=null;for(let r of e?.chapters||[])Number.isFinite(r.from)&&r.from<=t&&(!n||r.from>n.from)&&(n=r);return n&&(!Number.isFinite(n.to)||n.to>t)?n:null},"clockNow",0,()=>L,"colourScheme",0,function(e,n,r,o){if("degree"===e)return{of:e=>U[Math.min(e.degree||1,3)],legend:[["1st",U[1]],["2nd",U[2]],["3rd+",U[3]]]};if("company"===e){let e=new Map;for(let t of n){let n=K(t.company);if(!n)continue;let r=e.get(n)||{name:String(t.company).trim(),n:0};r.n+=1,e.set(n,r)}let t=[...e.entries()].filter(([,e])=>e.n>1).sort((e,t)=>t[1].n-e[1].n).slice(0,D.length),r=new Map(t.map(([e],t)=>[e,D[t]]));return{of:e=>r.get(K(e.company))||P,legend:[...t.map(([,e],t)=>[e.name,D[t]]),["Other",P]]}}if("heat"===e){let e=function(e=[]){return G(e,t.score)}(n);return{of:t=>H(e(t)),heat:e,legend:[["Cold",H(.1)],["Warm",H(.45)],["Hot",H(.75)],["Hottest",H(1)]]}}return"warmth"===e&&o?{of:e=>1===(e.degree||1)?W[d(o.merged.get((0,t.keyFor)(e)),o.asOf)]:"#2d3748",legend:[["Warm",W.warm],["Cool",W.cool],["Dormant",W.dormant],["Never messaged",W.never]]}:{of:e=>r[e.tier]||"#666",legend:Object.entries(r)}},"effectiveLab",0,e=>e.on?e:e.labels===k.labels?k:{...k,labels:e.labels},"findMatches",0,function(e,t){let n=String(t||"").trim().toLowerCase();if(n.length<2)return null;let r=new Set;for(let t of e)[t.name,t.company,t.role,t.headline].some(e=>e&&String(e).toLowerCase().includes(n))&&r.add(t.id);return r},"forgetLayout",0,function(e){F(T().filter(t=>t.name!==e))},"heatBy",0,G,"heatColour",0,H,"labNow",0,N,"layoutOf",0,function(e){let t=t=>Object.entries(t).every(([t,n])=>e[t]===n);return x.every(t=>e[t]===k[t])?"rings":t(S)?"clusters":t(M)?"orbit":null},"layoutsNow",0,T,"loadSocial",0,function(){return $||($=fetch("/api/social").then(e=>e.ok?e.json():{}).then(e=>{_({social:e.social?B(e.social):null})}).catch(()=>_({social:null}))),$},"mergeSocial",0,B,"milestones",0,function(e){let t=[];for(let n of e?.chapters||[])Number.isFinite(n.from)&&t.push({t:n.from,kind:"job",label:n.company});for(let n of e?.posts||[])Number.isFinite(n.t)&&t.push({t:n.t,kind:"post",label:"You posted"});return t.sort((e,t)=>e.t-t.t)},"pause",0,z,"play",0,function e(){if(null==L.min||null==L.max||L.max<=L.min)return;let t=L.max-L.min,n=1e3*Math.max(1,Number(N().speed)||15),r=null==L.at||L.at>=L.max?L.min:L.at,o=performance.now()-(r-L.min)/t*n;_({at:r,playing:!0});let i=r=>{let a=Math.min(L.max,L.min+(r-o)/n*t);if(_({at:a}),a>=L.max){R=null,_({playing:!1}),N().loop&&setTimeout(()=>{R||L.at!==L.max||(_({at:L.min}),e())},1200);return}R=requestAnimationFrame(i)};cancelAnimationFrame(R),R=requestAnimationFrame(i)},"reachCounts",0,function(e,t){let n=new Map(e.map(e=>[e.id,0]));for(let r of e){let e=t.get(r.id);for(let r=0;null!=e&&r<7;r++)n.set(e,(n.get(e)||0)+1),e=t.get(e)}return n},"saveLayout",0,function(e){let t=String(e||"").trim().slice(0,40);if(!t)return;let n=N(),r=Object.fromEntries(p.map(e=>[e,n[e]]));F([...T().filter(e=>e.name!==t),{name:t,settings:r}])},"setClock",0,_,"setLab",0,O,"stopReplay",0,function(){z(),_({at:null})},"watchClock",0,function(e){return j.add(e),()=>j.delete(e)},"watchLab",0,function(e){A.add(e);let t=t=>{t.key===b&&(C=null,e())};return window.addEventListener("storage",t),()=>{A.delete(e),window.removeEventListener("storage",t)}},"watchLayouts",0,function(e){return E.add(e),()=>E.delete(e)}],39160)},27780,e=>{"use strict";e.s(["inProgressSummary",0,function(e=[]){let t=Array.isArray(e)?e:[],n=t.length;if(!n)return null;let r=t.filter(e=>e?.legacy).length,o=1===n?"1 person stopped partway. Resume carries on from the page they stopped at.":`${n} people stopped partway. Resume carries on from the page each one stopped at.`;if(!r)return o;let i=1===n?"Their list was":1===r?"1 of them was":`${r} of them were`;return`${o} ${i} read to page 10, before whole lists were read.`},"scanBoxTitle",0,function({resume:e,hasCluster:t}){return e?"SCAN IN PROGRESS":t?"CLUSTER ACTIVE":"CREATE CLUSTER"},"stoppedLine",0,function(e){if(!e)return null;let t=Number(e.pagesRead)||0;return t>0?`Scan stopped after page ${t}`:"Scan stopped before its first page"}])},87580,e=>{"use strict";let t=[{key:"only",label:"Only way in",range:"1",max:1,color:"#00E5FF"},{key:"rare",label:"Rare",range:"2–3",max:3,color:"#4FC3F7"},{key:"uncommon",label:"Uncommon",range:"4–10",max:10,color:"#B0BEC5"},{key:"common",label:"Common",range:"11–30",max:30,color:"#FFB74D"},{key:"warm",label:"Warm",range:"31+",max:1/0,color:"#FF7043"}],n=new Map(t.map(e=>[e.key,e]));function r(e){return Math.min(1,Math.log(Math.max(1,Math.floor(Number(e)||1)))/Math.log(31))}e.s(["RARITY",0,t,"SLIDER_MIDDLE",0,50,"countByRarity",0,function(e=[]){let n=Object.fromEntries(t.map(e=>[e.key,0]));for(let t of e)t?.rarity&&void 0!==n[t.rarity]&&n[t.rarity]++;return n},"easeOf",0,r,"passes",0,function({tier:e,rarity:t},{tiers:n=new Set,rarities:r=new Set}={}){return(!n.size||!!n.has(e))&&(!r.size||!!(t&&r.has(t)))},"rarityInfo",0,function(e){return n.get(e)??null},"rarityOf",0,function(e,n=1){let r,o=function(e,t=1){let n=Number(e?.mutual_count),r=Math.max(1,Math.floor(Number(t)||1));return Number.isFinite(n)&&n>=r?{count:Math.floor(n),from:"linkedin"}:{count:r,from:"scans"}}(e,n);return{key:(r=Math.max(1,Math.floor(Number(o.count)||1)),t.find(e=>r<=e.max).key),...o}},"slideLabel",0,function(e=50){let t=Math.max(0,Math.min(100,Math.round(Number(e)||0)));return t<=10?{name:"Rarest first",detail:"Strong people with one way in: the connection who knows them is the only door you have."}:t<45?{name:"Leaning rare",detail:"Strong people with few mutual connections move up; the ones everybody knows move down."}:t<=55?{name:"By power",detail:"Each person’s own score alone. How many of your connections know them doesn’t change the order."}:t<90?{name:"Leaning easy",detail:"Strong people you share more mutual connections with move up: more people who could introduce you."}:{name:"Easiest first",detail:"Strong people you share the most mutual connections with: the warmest introductions. All the way right, the map aims at whoever you share the most with, with the ones in circles you haven’t scanned yet as grey dots."}},"slideValue",0,function(e,t,n=50){let o=(Math.max(0,Math.min(100,Number(n)||0))-50)/50;if(!o)return e;let i=r(t),a=Math.abs(o);return e*(1-a+a*(o<0?1-i:i))},"toggle",0,function(e,t){let n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n}])},86106,e=>{"use strict";var t=e.i(7214);let n=Object.freeze({known:!1,sent:new Set,mine:new Map,version:0}),r=new Set,o=n,i=null,a=new Map;function l(e=o.sent,t=o.known){for(let n of(o=Object.freeze({known:t,sent:e,mine:new Map(a),version:o.version+1}),[...r]))n()}async function s(e){let t=await fetch("/api/outreach",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),n=await t.json().catch(()=>({}));if(!t.ok)throw Error(n.error||"Could not save that.");return n}async function c(e,{bridgeId:n}={}){let r=(0,t.keyFor)(e),o=a.has(r)?a.get(r):void 0;a.set(r,!0),l();try{return await s({action:"mark-sent",connectionId:e.id,profileUrl:e.profile_url,bridgeId:n})}catch(e){throw void 0===o?a.delete(r):a.set(r,o),l(),e}}async function u(e){let n=(0,t.keyFor)(e),r=a.has(n)?a.get(n):void 0;a.set(n,!1),l();try{return await s({action:"undo",connectionId:e.id,profileUrl:e.profile_url})}catch(e){throw void 0===r?a.delete(n):a.set(n,r),l(),e}}e.s(["REQUESTS_UNKNOWN",0,n,"hasRequest",0,function(e,n=o){if(!e)return!1;let r=(0,t.keyFor)(e);return n.mine.has(r)?n.mine.get(r):n.known?n.sent.has(r):"pending"===e.unlock_status||"sent"===e.outreach_status},"markRequested",0,c,"requestsNow",0,function(){return o},"sawRequested",0,function(e){a.set((0,t.keyFor)(e),!0),l()},"undoRequest",0,u,"watchRequests",0,function(e){return r.add(e),i||o.known||(i=fetch("/api/outreach").then(e=>e.ok?e.json():null).then(e=>{e&&l(new Set((e.pending||[]).map(t.keyFor)),!0)}).catch(()=>{}).finally(()=>{i=null})),()=>r.delete(e)}])},2844,e=>{"use strict";var t=e.i(90179);let n=/\/10, (your|sample) score\)/,r=/^(?:Former )?(?:Student · )?(.+?) \([\d.]+\) · (no company found|.+?) \(\d+(?:\.\d+)?\/10(?:[:,][^)]*)?\)/;e.s(["scoreGuess",0,function(e){let o,i,a,l;if(!e)return null;if(null==e.power_score||""===e.power_score||!e.tier)return{title:!1,company:!1,never:!0,companyName:null,reason:"They haven’t been scored yet."};let s=String(e.score_why||"").match(r);if(s)o=s[1],a=!(i="no company found"===s[2]?null:s[2])||!n.test(e.score_why)&&!["known","data"].includes((0,t.companyScore)(i).source);else{let n=(0,t.scorePerson)(e);o=n.title.label,i=n.company||null,a=["none","default","network"].includes(n.companySource)}let c=o.startsWith("Audience of"),u="Title unclear"===o||o.includes("Works there");return(c&&(a=!1),u||a)?(l=u&&a?i?`Their headline doesn’t say their title, and the app doesn’t know ${i}.`:"Their headline names no title or company the app can read.":u?"Their headline doesn’t say their title.":i?`The app doesn’t know ${i}, so it counts as the middle of the scale.`:"The app couldn’t find where they work.",{title:u,company:a,never:!1,companyName:i,reason:l}):null}])}]);