six-degrees 0.4.3 → 0.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-path-routes-manifest.json +3 -1
- package/.next/standalone/.next/build-manifest.json +3 -3
- package/.next/standalone/.next/prerender-manifest.json +41 -13
- package/.next/standalone/.next/routes-manifest.json +12 -0
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +18 -17
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +18 -17
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +14 -13
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/api/admin-delete/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/admin-update/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/bridges/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/bulk-import/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/company-scores/legacy/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/company-scores/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/connections/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/export/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/import/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/restart/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/reveal/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/delete-cluster/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ingest/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/outreach/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/queue/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/scraper/route.js +1 -1
- package/.next/standalone/.next/server/app/api/scraper/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/settings/sector-preview/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/settings/sector-suggestions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/setup-profile/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/social/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/social/route/build-manifest.json +12 -0
- package/.next/standalone/.next/server/app/api/social/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/social/route.js +8 -0
- package/.next/standalone/.next/server/app/api/social/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/social/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/social/route_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/api/unlock/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/update/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/update-images/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/users/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/avatars/[file]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/import/page.js +1 -1
- package/.next/standalone/.next/server/app/import/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/import/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/import.html +1 -1
- package/.next/standalone/.next/server/app/import.rsc +22 -21
- package/.next/standalone/.next/server/app/import.segments/_full.segment.rsc +22 -21
- package/.next/standalone/.next/server/app/import.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/import.segments/import/__PAGE__.segment.rsc +16 -15
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +20 -19
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +16 -15
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +20 -19
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/launch/page.js +1 -1
- package/.next/standalone/.next/server/app/launch/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/launch/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/launch.html +2 -2
- package/.next/standalone/.next/server/app/launch.rsc +22 -21
- package/.next/standalone/.next/server/app/launch.segments/_full.segment.rsc +22 -21
- package/.next/standalone/.next/server/app/launch.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/launch.segments/launch/__PAGE__.segment.rsc +16 -15
- package/.next/standalone/.next/server/app/page.js +1 -1
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/paths/page.js +1 -1
- package/.next/standalone/.next/server/app/paths/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/paths/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/paths.html +1 -1
- package/.next/standalone/.next/server/app/paths.rsc +22 -21
- package/.next/standalone/.next/server/app/paths.segments/_full.segment.rsc +22 -21
- package/.next/standalone/.next/server/app/paths.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/paths.segments/paths/__PAGE__.segment.rsc +16 -15
- package/.next/standalone/.next/server/app/profile/page.js +1 -1
- package/.next/standalone/.next/server/app/profile/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/profile/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/profile.html +1 -1
- package/.next/standalone/.next/server/app/profile.rsc +22 -21
- package/.next/standalone/.next/server/app/profile.segments/_full.segment.rsc +22 -21
- package/.next/standalone/.next/server/app/profile.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/profile.segments/profile/__PAGE__.segment.rsc +16 -15
- package/.next/standalone/.next/server/app/queue/page.js +1 -1
- package/.next/standalone/.next/server/app/queue/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/queue/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/queue.html +1 -1
- package/.next/standalone/.next/server/app/queue.rsc +22 -21
- package/.next/standalone/.next/server/app/queue.segments/_full.segment.rsc +22 -21
- package/.next/standalone/.next/server/app/queue.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/queue.segments/queue/__PAGE__.segment.rsc +16 -15
- package/.next/standalone/.next/server/app/scores/page.js +1 -1
- package/.next/standalone/.next/server/app/scores/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/scores/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/scores.html +1 -1
- package/.next/standalone/.next/server/app/scores.rsc +22 -21
- package/.next/standalone/.next/server/app/scores.segments/_full.segment.rsc +22 -21
- package/.next/standalone/.next/server/app/scores.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/scores.segments/scores/__PAGE__.segment.rsc +16 -15
- package/.next/standalone/.next/server/app/settings/page.js +1 -1
- package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings.html +1 -1
- package/.next/standalone/.next/server/app/settings.rsc +22 -21
- package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +22 -21
- package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +16 -15
- package/.next/standalone/.next/server/app/setup/page.js +1 -1
- package/.next/standalone/.next/server/app/setup/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/setup.html +1 -1
- package/.next/standalone/.next/server/app/setup.rsc +22 -21
- package/.next/standalone/.next/server/app/setup.segments/_full.segment.rsc +22 -21
- package/.next/standalone/.next/server/app/setup.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +16 -15
- package/.next/standalone/.next/server/app/social/page/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/social/page/build-manifest.json +20 -0
- package/.next/standalone/.next/server/app/social/page/next-font-manifest.json +11 -0
- package/.next/standalone/.next/server/app/social/page/react-loadable-manifest.json +1 -0
- package/.next/standalone/.next/server/app/social/page/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/social/page.js +13 -0
- package/.next/standalone/.next/server/app/social/page.js.map +5 -0
- package/.next/standalone/.next/server/app/social/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/social/page_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/social.html +1 -0
- package/.next/standalone/.next/server/app/social.meta +26 -0
- package/.next/standalone/.next/server/app/social.rsc +26 -0
- package/.next/standalone/.next/server/app/social.segments/_full.segment.rsc +26 -0
- package/.next/standalone/.next/server/app/social.segments/_tree.segment.rsc +4 -0
- package/.next/standalone/.next/server/app/social.segments/social/__PAGE__.segment.rsc +30 -0
- package/.next/standalone/.next/server/app-paths-manifest.json +3 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ljnyho._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__17kn1mk._.js +8 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0uag-k5._.js → [root-of-the-server]__1dmc7-t._.js} +1 -1
- package/.next/standalone/.next/server/chunks/_1_fynia._.js +1 -1
- package/.next/standalone/.next/server/chunks/_1itd1o_._.js +1 -1
- package/.next/standalone/.next/server/chunks/_1xh07bp._.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_social_route_actions_1_3c6qn.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_db-client_15le7cw.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__16hs8kw._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1feicqq._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1jeztd-._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_005q9n1._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0ezj4e0._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0j4-lc3._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_0hw_qnj._.js → _0wxbq78._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0xkur4p._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_14iv_zy._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_15x6q32._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_1cyxocj._.js → _1ap1tu_._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_1mj739k._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_212xw8q._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_217nddo._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_social_page_actions_176i1kl.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/app_0i3fw_m._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/app_page_1fazqbf.js +17 -4
- package/.next/standalone/.next/server/chunks/ssr/app_paths_page_1ol90m7.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/app_scores_page_09wepvv.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_setup_page_1-282zx.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/lib_0i8v-s3._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_client_components_server-async-storage_0t1dato.js +3 -0
- package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/.next/server/middleware-manifest.json +5 -5
- package/.next/standalone/.next/server/next-font-manifest.js +1 -1
- package/.next/standalone/.next/server/next-font-manifest.json +4 -0
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/prefetch-hints.json +14 -0
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/chunks/04a3zockahetx.js +1 -0
- package/.next/standalone/.next/static/chunks/{2wwmljnf7yn_5.js → 0a5iadnmt9u9k.js} +1 -1
- package/.next/standalone/.next/static/chunks/0g_p4p7oci18u.js +1 -0
- package/.next/standalone/.next/static/chunks/0y1yms5kez2f3.js +1 -0
- package/.next/standalone/.next/static/chunks/14m1zu-8warte.js +1 -0
- package/.next/standalone/.next/static/chunks/1e1n0kkz-psdb.js +1 -0
- package/.next/standalone/.next/static/chunks/236f0jtp68j_h.js +1 -0
- package/.next/standalone/.next/static/chunks/{1zwjy1mmpkdrg.js → 24m745q_85u34.js} +2 -2
- package/.next/standalone/.next/static/chunks/2_zu7rmb8flzl.js +2 -0
- package/.next/standalone/.next/static/chunks/38wwtni5e1ec1.js +31 -0
- package/.next/standalone/.next/static/chunks/3p_pwu5gx2i9h.js +1 -0
- package/.next/{static/chunks/0_3ubivay59bq.js → standalone/.next/static/chunks/3zw8bv7-mc4n6.js} +1 -1
- package/.next/standalone/CHANGELOG.md +58 -0
- package/.next/standalone/app/api/network/route.js +11 -0
- package/.next/standalone/app/api/scraper/route.js +2 -0
- package/.next/standalone/app/api/social/route.js +96 -0
- package/.next/standalone/app/components/AutoScanButton.js +41 -0
- package/.next/standalone/app/components/ChainView.js +7 -0
- package/.next/standalone/app/components/FilterPanel.js +6 -0
- package/.next/standalone/app/components/ForceGraph.js +257 -39
- package/.next/standalone/app/components/GalaxyLab.js +275 -0
- package/.next/standalone/app/components/ScanStatusBar.js +22 -8
- package/.next/standalone/app/components/SeparationView.js +9 -1
- package/.next/standalone/app/components/Sidebar.js +88 -26
- package/.next/standalone/app/components/SocialAutoSync.js +34 -0
- package/.next/standalone/app/components/settings/NetworkHealthSection.js +85 -0
- package/.next/standalone/app/layout.js +3 -0
- package/.next/standalone/app/page.js +29 -0
- package/.next/standalone/app/scores/page.js +3 -0
- package/.next/standalone/app/setup/page.js +1 -1
- package/.next/standalone/app/social/page.js +281 -0
- package/.next/standalone/lib/experimental-client.js +38 -0
- package/.next/standalone/lib/galaxy-export.js +152 -0
- package/.next/standalone/lib/galaxy-lab.js +296 -0
- package/.next/standalone/lib/insights.js +54 -0
- package/.next/standalone/lib/linkedin-export.js +156 -0
- package/.next/standalone/lib/network-health.js +42 -0
- package/.next/standalone/lib/network.js +1 -0
- package/.next/standalone/package-lock.json +2 -2
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/scripts/scrape.py +118 -2
- package/.next/static/chunks/04a3zockahetx.js +1 -0
- package/.next/static/chunks/{2wwmljnf7yn_5.js → 0a5iadnmt9u9k.js} +1 -1
- package/.next/static/chunks/0g_p4p7oci18u.js +1 -0
- package/.next/static/chunks/0y1yms5kez2f3.js +1 -0
- package/.next/static/chunks/14m1zu-8warte.js +1 -0
- package/.next/static/chunks/1e1n0kkz-psdb.js +1 -0
- package/.next/static/chunks/236f0jtp68j_h.js +1 -0
- package/.next/static/chunks/{1zwjy1mmpkdrg.js → 24m745q_85u34.js} +2 -2
- package/.next/static/chunks/2_zu7rmb8flzl.js +2 -0
- package/.next/static/chunks/38wwtni5e1ec1.js +31 -0
- package/.next/static/chunks/3p_pwu5gx2i9h.js +1 -0
- package/.next/{standalone/.next/static/chunks/0_3ubivay59bq.js → static/chunks/3zw8bv7-mc4n6.js} +1 -1
- package/CHANGELOG.md +58 -0
- package/lib/experimental-client.js +38 -0
- package/lib/galaxy-export.js +152 -0
- package/lib/galaxy-lab.js +296 -0
- package/lib/insights.js +54 -0
- package/lib/linkedin-export.js +156 -0
- package/lib/network-health.js +42 -0
- package/lib/network.js +1 -0
- package/package.json +1 -1
- package/scripts/scrape.py +118 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0d3vjsq._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0m4vk0b._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_012mop3._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_01f38ty._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_1163x49._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_1av11ws._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_1gpbbw9._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_1ig7em7._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_1vpfyd-._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_20w06i-._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/lib_1bn38gs._.js +0 -3
- package/.next/standalone/.next/static/chunks/0cuuo2jwc9h94.js +0 -1
- package/.next/standalone/.next/static/chunks/0f4ugd6v3ph0-.js +0 -1
- package/.next/standalone/.next/static/chunks/0l1568qff0efj.js +0 -1
- package/.next/standalone/.next/static/chunks/10ogurbcuf3nq.js +0 -1
- package/.next/standalone/.next/static/chunks/1489t7jrjojk_.js +0 -1
- package/.next/standalone/.next/static/chunks/1zunq4tk-u3ng.js +0 -1
- package/.next/standalone/.next/static/chunks/2p5yt1o9tnxjn.js +0 -2
- package/.next/standalone/.next/static/chunks/2pyo4j84prgp6.js +0 -18
- package/.next/standalone/.next/static/chunks/3kllnkb3hof1s.js +0 -1
- package/.next/static/chunks/0cuuo2jwc9h94.js +0 -1
- package/.next/static/chunks/0f4ugd6v3ph0-.js +0 -1
- package/.next/static/chunks/0l1568qff0efj.js +0 -1
- package/.next/static/chunks/10ogurbcuf3nq.js +0 -1
- package/.next/static/chunks/1489t7jrjojk_.js +0 -1
- package/.next/static/chunks/1zunq4tk-u3ng.js +0 -1
- package/.next/static/chunks/2p5yt1o9tnxjn.js +0 -2
- package/.next/static/chunks/2pyo4j84prgp6.js +0 -18
- package/.next/static/chunks/3kllnkb3hof1s.js +0 -1
- /package/.next/standalone/.next/static/{814ehZBeFO2rUKle7mzX- → 6LINKa6nyesvIEUnLDSck}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{814ehZBeFO2rUKle7mzX- → 6LINKa6nyesvIEUnLDSck}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{814ehZBeFO2rUKle7mzX- → 6LINKa6nyesvIEUnLDSck}/_ssgManifest.js +0 -0
- /package/.next/static/{814ehZBeFO2rUKle7mzX- → 6LINKa6nyesvIEUnLDSck}/_buildManifest.js +0 -0
- /package/.next/static/{814ehZBeFO2rUKle7mzX- → 6LINKa6nyesvIEUnLDSck}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{814ehZBeFO2rUKle7mzX- → 6LINKa6nyesvIEUnLDSck}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
1:"$Sreact.fragment"
|
|
2
|
+
2:I[47257,["/_next/static/chunks/04a3zockahetx.js","/_next/static/chunks/3p_pwu5gx2i9h.js"],"ClientPageRoot"]
|
|
3
|
+
3:I[60451,["/_next/static/chunks/04a3zockahetx.js","/_next/static/chunks/3p_pwu5gx2i9h.js","/_next/static/chunks/0y1yms5kez2f3.js"],"default"]
|
|
4
|
+
6:I[97367,["/_next/static/chunks/04a3zockahetx.js","/_next/static/chunks/3p_pwu5gx2i9h.js"],"OutletBoundary"]
|
|
5
|
+
7:"$Sreact.suspense"
|
|
6
|
+
b:I[97367,["/_next/static/chunks/04a3zockahetx.js","/_next/static/chunks/3p_pwu5gx2i9h.js"],"ViewportBoundary"]
|
|
7
|
+
c:I[97367,["/_next/static/chunks/04a3zockahetx.js","/_next/static/chunks/3p_pwu5gx2i9h.js"],"MetadataBoundary"]
|
|
8
|
+
d:I[27201,["/_next/static/chunks/04a3zockahetx.js","/_next/static/chunks/3p_pwu5gx2i9h.js"],"IconMark"]
|
|
9
|
+
f:I[39756,["/_next/static/chunks/04a3zockahetx.js","/_next/static/chunks/3p_pwu5gx2i9h.js"],"default"]
|
|
10
|
+
10:I[37457,["/_next/static/chunks/04a3zockahetx.js","/_next/static/chunks/3p_pwu5gx2i9h.js"],"default"]
|
|
11
|
+
13:I[15812,["/_next/static/chunks/04a3zockahetx.js","/_next/static/chunks/3p_pwu5gx2i9h.js"],"default"]
|
|
12
|
+
14:I[37711,["/_next/static/chunks/04a3zockahetx.js","/_next/static/chunks/3p_pwu5gx2i9h.js"],"default"]
|
|
13
|
+
15:I[40643,["/_next/static/chunks/04a3zockahetx.js","/_next/static/chunks/3p_pwu5gx2i9h.js"],"default"]
|
|
14
|
+
16:I[87915,["/_next/static/chunks/04a3zockahetx.js","/_next/static/chunks/3p_pwu5gx2i9h.js"],"default"]
|
|
15
|
+
:HL["/_next/static/chunks/0bo1dxn5gwzpk.css","style"]
|
|
16
|
+
a:X
|
|
17
|
+
12:X
|
|
18
|
+
12:C
|
|
19
|
+
0:{"buildId":"6LINKa6nyesvIEUnLDSck","data":[{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/0y1yms5kez2f3.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":"$@9","staleTime":"$a","varyParams":null},{"rsc":["$","$1","h",{"children":[null,["$","$Lb",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$Lc",null,{"children":["$","$7",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Six Degrees"}],["$","meta","1",{"name":"description","content":"Maps your LinkedIn network: who you know, who they know, and the shortest path to someone you haven't met. Runs on your own computer; nothing is uploaded."}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.0zdzw5kurn8m-.ico","sizes":"48x48","type":"image/x-icon"}],["$","$Ld","3",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":"$@e","staleTime":"$a","varyParams":null},{"rsc":["$","$1","c",{"children":[null,["$","$Lf",null,{"parallelRouterKey":"children","template":["$","$L10",null,{}]}]]}],"isPartial":"$@11","staleTime":"$a","varyParams":"$12"},{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0bo1dxn5gwzpk.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/04a3zockahetx.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/3p_pwu5gx2i9h.js","async":true}]],["$","html",null,{"lang":"en","className":"geist_2ae47f08-module__h69qWW__variable geist_mono_eb58308d-module__w_p2Lq__variable","children":["$","body",null,{"style":{"margin":0,"padding":0,"background":"#0a0a1a"},"children":["$","$L13",null,{"children":[["$","$Lf",null,{"parallelRouterKey":"children","template":["$","$L10",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}],["$","$L14",null,{}],["$","$L15",null,{}],["$","$L16",null,{}]]}]}]}]]}],"isPartial":"$@17","staleTime":"$a","varyParams":null}],"isUpgradeableISRFallback":false,"a":"$@18","rootVaryParams":null,"needsRuntimeRequest":"$@19"}
|
|
20
|
+
4:{}
|
|
21
|
+
5:"$0:data:0:rsc:props:children:0:props:serverProvidedParams:params"
|
|
22
|
+
8:null
|
|
23
|
+
a:300
|
|
24
|
+
19:true
|
|
25
|
+
a:C
|
|
26
|
+
18:0
|
|
27
|
+
e:"$undefined"
|
|
28
|
+
11:"$undefined"
|
|
29
|
+
17:"$undefined"
|
|
30
|
+
9:"$undefined"
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"/api/settings/sector-preview/route": "app/api/settings/sector-preview/route.js",
|
|
25
25
|
"/api/settings/sector-suggestions/route": "app/api/settings/sector-suggestions/route.js",
|
|
26
26
|
"/api/setup-profile/route": "app/api/setup-profile/route.js",
|
|
27
|
+
"/api/social/route": "app/api/social/route.js",
|
|
27
28
|
"/api/unlock/route": "app/api/unlock/route.js",
|
|
28
29
|
"/api/update-images/route": "app/api/update-images/route.js",
|
|
29
30
|
"/api/update/route": "app/api/update/route.js",
|
|
@@ -38,5 +39,6 @@
|
|
|
38
39
|
"/queue/page": "app/queue/page.js",
|
|
39
40
|
"/scores/page": "app/scores/page.js",
|
|
40
41
|
"/settings/page": "app/settings/page.js",
|
|
41
|
-
"/setup/page": "app/setup/page.js"
|
|
42
|
+
"/setup/page": "app/setup/page.js",
|
|
43
|
+
"/social/page": "app/social/page.js"
|
|
42
44
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},59043,(e,t,r)=>{t.exports=e.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},74533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},66680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},2157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},12714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},81111,(e,t,r)=>{t.exports=e.x("node:stream",()=>require("node:stream"))},6793,e=>{"use strict";var t=e.i(80998);async function r(e){try{let{searchParams:r}=new URL(e.url),s=r.get("userId"),a=e=>{let r=t.db.from("linkedin_connections").select("*").eq("degree",e).order("power_score",{ascending:!1});return s&&r.eq("user_id",s),r};try{await t.db.rpc("rescore_if_stale")}catch{}let[n,i,l]=await Promise.all([a(1),a(2),a(3)]),o=n.error||i.error||l.error;if(o)return Response.json({error:o.message},{status:500});return Response.json({degree1:n.data||[],degree2:i.data||[],degree3:l.data||[],counts:{degree1:n.data?.length||0,degree2:i.data?.length||0,degree3:l.data?.length||0}})}catch(e){return Response.json({error:e.message},{status:500})}}e.s(["GET",0,r])},37498,e=>{"use strict";var t=e.i(47909),r=e.i(74017),s=e.i(96250),a=e.i(59756),n=e.i(61916),i=e.i(74677),l=e.i(69741),o=e.i(16795),u=e.i(87718),p=e.i(95169),d=e.i(47587),c=e.i(66012),h=e.i(70101),m=e.i(26937),g=e.i(10372),f=e.i(93695);e.i(52474);var _=e.i(220);let R=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/network/route",pathname:"/api/network",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/network/route.js",nextConfigOutput:"standalone",userland:()=>e.r(6793),...{}}),{workAsyncStorage:x,workUnitAsyncStorage:E,serverHooks:b}=R;async function w(e,t,s){s.requestMeta&&(0,a.setRequestMeta)(e,s.requestMeta),R.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/network/route";x=x.replace(/\/index$/,"")||"/";let E=await R.prepare(e,t,{srcPage:x,multiZoneDraftMode:!1});if(!E)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:b,deploymentId:w,params:v,nextConfig:y,parsedUrl:T,isDraftMode:C,prerenderManifest:S,routerServerContext:$,isOnDemandRevalidate:q,revalidateOnlyGenerated:N,resolvedPathname:A,clientReferenceManifest:I,serverActionsManifest:O}=E,L=(0,l.normalizeAppPath)(x),P=!!(S.dynamicRoutes[L]||S.routes[A]),k=async()=>((null==$?void 0:$.render404)?await $.render404(e,t,T,!1):t.end("This page could not be found"),null);if(P&&!C){let e=!!S.routes[A],t=S.dynamicRoutes[L];if(t&&!1===t.fallback&&!e){if(y.adapterPath)return await k();throw new f.NoFallbackError}}let j=null;!P||R.isDev||C||(j="/index"===(j=A)?"/":j);let D=!0===R.isDev||!P,U=P&&!D;O&&I&&(0,i.setManifestsSingleton)({page:x,clientReferenceManifest:I,serverActionsManifest:O});let M=e.method||"GET",H=(0,n.getTracer)(),F=H.getActiveScopeSpan(),V=!!(null==$?void 0:$.isWrappedByNextServer),G=!!(0,a.getRequestMeta)(e,"minimalMode"),K=(0,a.getRequestMeta)(e,"incrementalCache")||await R.getIncrementalCache(e,y,S,G);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let B={params:v,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:D,incrementalCache:K,hmrRefreshHash:(0,a.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,a)=>R.onRequestError(e,t,s,a,$)},sharedContext:{buildId:b,deploymentId:w}},W=new o.NodeNextRequest(e),X=new o.NodeNextResponse(t),z=u.NextRequestAdapter.fromNodeNextRequest(W,(0,u.signalFromNodeResponse)(t)),J=async({previousCacheEntry:r})=>{try{if(!G&&q&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await R.handle(z,B);e.fetchMetrics=B.renderOpts.fetchMetrics;let n=B.renderOpts.pendingWaitUntil;n&&s.waitUntil&&(s.waitUntil(n),n=void 0);let i=B.renderOpts.collectedTags;if(!P)return await (0,c.sendResponse)(W,X,a,n),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);i&&(t[g.NEXT_CACHE_TAGS_HEADER]=i),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==B.renderOpts.collectedRevalidate&&!(B.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&B.renderOpts.collectedRevalidate,s=void 0===B.renderOpts.collectedExpire||B.renderOpts.collectedExpire>=g.INFINITE_CACHE?!1!==r&&r>0?y.expireTime:void 0:B.renderOpts.collectedExpire;return{value:{kind:_.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await R.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:q})},!1,$),t}},Q=async(a,i)=>{try{var l,o;let a=await R.handleResponse({req:e,nextConfig:y,cacheKey:j,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:q,revalidateOnlyGenerated:N,responseGenerator:J,waitUntil:s.waitUntil,isMinimalMode:G});if(!P)return;if((null==a||null==(l=a.value)?void 0:l.kind)!==_.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==a||null==(o=a.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});G||t.setHeader("x-nextjs-cache",q?"REVALIDATED":a.isMiss?"MISS":a.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let n=(0,h.fromNodeOutgoingHttpHeaders)(a.value.headers);G&&P||n.delete(g.NEXT_CACHE_TAGS_HEADER),!a.cacheControl||t.getHeader("Cache-Control")||n.get("Cache-Control")||n.set("Cache-Control",(0,m.getCacheControlHeader)(a.cacheControl)),await (0,c.sendResponse)(W,X,new Response(a.value.body,{headers:n,status:a.value.status||200}));return}catch(t){if(t instanceof f.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:L,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:q})},!1,$),P)throw t;await (0,c.sendResponse)(W,X,new Response(null,{status:500}));return}finally{(()=>{if(!a)return;let e=t.statusCode;a.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(a.setStatus({code:n.SpanStatusCode.ERROR}),a.setAttribute("error.type",e.toString()));let r=H.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=r.get("next.route")||L,l=`${M} ${s}`;a.setAttributes({"next.route":s,"http.route":s,"next.span_name":l}),a.updateName(l),i&&i!==a&&(i.setAttribute("http.route",s),i.updateName(l))})()}};if(V&&F)await Q(F,void 0);else{let t=H.getActiveScopeSpan();await H.withPropagatedContext(e.headers,()=>H.trace(p.BaseServerSpan.handleRequest,{spanName:`${M} ${x}`,kind:n.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},e=>Q(e,t)),void 0,!V)}}e.s(["handler",0,w,"patchFetch",0,function(){return(0,s.patchFetch)({workAsyncStorage:x,workUnitAsyncStorage:E})},"routeModule",0,R,"serverHooks",0,b,"workAsyncStorage",0,x,"workUnitAsyncStorage",0,E])},80998,e=>{"use strict";var t=e.i(88431);let r=/^[a-z_][a-z0-9_]*$/i;function s(e,t){if(!r.test(e))throw Error(`Unsafe ${t}: ${e}`);return e}class a{constructor(e){this.table=s(e,"table"),this._columns="*",this._filters=[],this._order=null,this._limit=null,this._single=!1,this._op="select",this._payload=null,this._onConflict=null,this._ignoreDuplicates=!1}select(e="*"){return"select"===this._op&&(this._columns="*"===e?"*":e),this._returning=!0,this}eq(e,r){return s(e,"column"),null===r?this._filters.push({sql:`"${e}" IS NULL`,params:[]}):this._filters.push({sql:`"${e}" = ?`,params:[(0,t.encodeValue)(this.table,e,r)]}),this}neq(e,r){return s(e,"column"),this._filters.push({sql:`"${e}" IS NOT ?`,params:[(0,t.encodeValue)(this.table,e,r)]}),this}in(e,r){s(e,"column");let a=Array.isArray(r)?r:[];return a.length?this._filters.push({sql:`"${e}" IN (${a.map(()=>"?").join(", ")})`,params:a.map(r=>(0,t.encodeValue)(this.table,e,r))}):this._filters.push({sql:"0 = 1",params:[]}),this}ilike(e,t){return s(e,"column"),this._filters.push({sql:`"${e}" LIKE ?`,params:[t]}),this}not(e,r,a){return s(e,"column"),"is"===r&&null===a?this._filters.push({sql:`"${e}" IS NOT NULL`,params:[]}):this._filters.push({sql:`NOT ("${e}" = ?)`,params:[(0,t.encodeValue)(this.table,e,a)]}),this}is(e,r){return s(e,"column"),null===r?this._filters.push({sql:`"${e}" IS NULL`,params:[]}):this._filters.push({sql:`"${e}" = ?`,params:[(0,t.encodeValue)(this.table,e,r)]}),this}order(e,{ascending:t=!0}={}){return s(e,"column"),this._order=`"${e}" ${t?"ASC":"DESC NULLS LAST"}`,this}limit(e){return this._limit=Number(e)||0,this}single(){return this._single=!0,this._limit=this._limit??1,this}maybeSingle(){return this.single()}insert(e){return this._op="insert",this._payload=Array.isArray(e)?e:[e],this}upsert(e,t={}){return this._op="upsert",this._payload=Array.isArray(e)?e:[e],this._onConflict=t.onConflict||null,this._ignoreDuplicates=!!t.ignoreDuplicates,this}update(e){return this._op="update",this._payload=e,this}delete(){return this._op="delete",this}_where(){return this._filters.length?{sql:" WHERE "+this._filters.map(e=>e.sql).join(" AND "),params:this._filters.flatMap(e=>e.params)}:{sql:"",params:[]}}_run(){let e=(0,t.getDb)(),s=this._where();if("select"===this._op){let r=`SELECT ${"*"===this._columns?"*":this._columns} FROM "${this.table}"${s.sql}`;this._order&&(r+=` ORDER BY ${this._order}`),null!=this._limit&&(r+=` LIMIT ${Number(this._limit)}`);let a=e.prepare(r).all(...s.params).map(e=>(0,t.decodeRow)(this.table,e));return this._single?a.length?{data:a[0],error:null}:{data:null,error:{message:"No rows found",code:"PGRST116"}}:{data:a,error:null}}if("insert"===this._op||"upsert"===this._op){let s=[];for(let a of this._payload){let n={id:a.id||(0,t.newId)(),...a};n.id||(n.id=(0,t.newId)());let i=Object.keys(n).filter(e=>r.test(e)),l=i.map(e=>(0,t.encodeValue)(this.table,e,n[e])),o=i.map(()=>"?").join(", "),u=i.map(e=>`"${e}"`).join(", "),p=`INSERT INTO "${this.table}" (${u}) VALUES (${o})`;if("upsert"===this._op)if(this._ignoreDuplicates)p+=" ON CONFLICT DO NOTHING";else{let e=this._onConflict?this._onConflict.split(",").map(e=>`"${e.trim()}"`).join(", "):'"id"',t=i.filter(e=>"id"!==e).map(e=>`"${e}" = excluded."${e}"`).join(", ");p+=` ON CONFLICT (${e}) DO UPDATE SET ${t||'"id" = "id"'}`}try{e.prepare(p).run(...l);let r=e.prepare(`SELECT * FROM "${this.table}" WHERE id = ?`).get(n.id);r&&s.push((0,t.decodeRow)(this.table,r))}catch(e){if("upsert"===this._op&&/UNIQUE constraint/i.test(e.message))continue;return{data:null,error:{message:e.message}}}}return this._single?{data:s[0]??null,error:s.length?null:{message:"Insert returned no row"}}:{data:s,error:null}}if("update"===this._op){let a={...this._payload};"updated_at"in a==!1&&"linkedin_connections"===this.table&&(a.updated_at=(0,t.nowIso)());let n=Object.keys(a).filter(e=>r.test(e));if(!n.length)return{data:[],error:null};let i=n.map(e=>`"${e}" = ?`).join(", "),l=n.map(e=>(0,t.encodeValue)(this.table,e,a[e])),o=`UPDATE "${this.table}" SET ${i}${s.sql}`;try{let r=e.prepare(`SELECT id FROM "${this.table}"${s.sql}`).all(...s.params);e.prepare(o).run(...l,...s.params);let a=r.map(t=>e.prepare(`SELECT * FROM "${this.table}" WHERE id = ?`).get(t.id)).filter(Boolean).map(e=>(0,t.decodeRow)(this.table,e));if(this._single)return{data:a[0]??null,error:a.length?null:{message:"No rows updated"}};return{data:a,error:null}}catch(e){return{data:null,error:{message:e.message}}}}if("delete"===this._op)try{let r=e.prepare(`SELECT * FROM "${this.table}"${s.sql}`).all(...s.params).map(e=>(0,t.decodeRow)(this.table,e));return e.prepare(`DELETE FROM "${this.table}"${s.sql}`).run(...s.params),{data:r,error:null}}catch(e){return{data:null,error:{message:e.message}}}return{data:null,error:{message:`Unsupported operation: ${this._op}`}}}then(e,t){let r;try{r=this._run()}catch(e){r={data:null,error:{message:e.message}}}return Promise.resolve(r).then(e,t)}catch(e){return this.then(void 0,e)}finally(e){return this.then(t=>(e?.(),t),t=>{throw e?.(),t})}}e.s(["db",0,{from:e=>new a(e),async rpc(t,r={}){let{runRpc:s}=await e.A(35862);return s(t,r)}}])},12506,1348,e=>{"use strict";e.s(["compareVersions",0,function(e,t){let r=e=>String(e||"").replace(/^v/i,"").split(/[-+]/)[0].split(".").map(e=>Number.parseInt(e,10)||0),s=r(e),a=r(t);for(let e=0;e<Math.max(s.length,a.length);e++){let t=(s[e]||0)-(a[e]||0);if(0!==t)return t>0?1:-1}return 0},"installKind",0,function(e=process.env,t=""){return["mac-app","source","npm"].includes(e.SIX_DEGREES_INSTALL)?e.SIX_DEGREES_INSTALL:/\.app\/Contents\/Resources/.test(t||"")?"mac-app":"npm"},"repoSlug",0,function(e){let t=("string"==typeof e?e:e?.url||"").match(/github\.com[/:]([^/]+)\/([^/.#?]+)/);return t?`${t[1]}/${t[2]}`:null},"updateCommand",0,function(e,t,{dataDir:r}={}){if("mac-app"===e)return`curl -fsSL https://raw.githubusercontent.com/${t}/main/install.sh | bash`;if("source"===e)return"git pull && npm ci && npm run build && npm run start:packaged";let s=r&&`'${String(r).replace(/'/g,"'\\''")}'`;return s?`npx six-degrees@latest --data-dir ${s}`:"npx six-degrees@latest"}],12506);let t=Symbol.for("six-degrees.scan-state");function r(){let e=globalThis[t];return e?.running!==!0?null:"string"==typeof e.action&&e.action?e.action:"scan"}function s(e){switch(e){case"install":return"The scanner's packages are being installed";case"setup":return"The scanner is being set up";case"login":return"The LinkedIn sign-in window is open";case"photos":return"Profile photos are being saved";default:return"A scan is running"}}e.s(["busyRefusal",0,function(e,t=r()){return t?`${s(t)}. ${e}`:null},"registerScanState",0,function(e){return globalThis[t]||(globalThis[t]=e),globalThis[t]},"runningNow",0,s,"scannerJob",0,r],1348)}];
|
|
1
|
+
module.exports=[70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},59043,(e,t,r)=>{t.exports=e.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},74533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},66680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},2157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},12714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},81111,(e,t,r)=>{t.exports=e.x("node:stream",()=>require("node:stream"))},6793,e=>{"use strict";var t=e.i(80998);async function r(e){try{let{searchParams:r}=new URL(e.url),s=r.get("userId"),a=e=>{let r=t.db.from("linkedin_connections").select("*").eq("degree",e).order("power_score",{ascending:!1});return s&&r.eq("user_id",s),r};try{await t.db.rpc("rescore_if_stale")}catch{}let[n,i,l]=await Promise.all([a(1),a(2),a(3)]),o=n.error||i.error||l.error;if(o)return Response.json({error:o.message},{status:500});let u=0;try{let e=t.db.from("connection_ties").select("a_url");s&&(e=e.eq("user_id",s));let{data:r}=await e;u=r?.length||0}catch{}return Response.json({ties:u,degree1:n.data||[],degree2:i.data||[],degree3:l.data||[],counts:{degree1:n.data?.length||0,degree2:i.data?.length||0,degree3:l.data?.length||0}})}catch(e){return Response.json({error:e.message},{status:500})}}e.s(["GET",0,r])},37498,e=>{"use strict";var t=e.i(47909),r=e.i(74017),s=e.i(96250),a=e.i(59756),n=e.i(61916),i=e.i(74677),l=e.i(69741),o=e.i(16795),u=e.i(87718),p=e.i(95169),d=e.i(47587),c=e.i(66012),h=e.i(70101),m=e.i(26937),g=e.i(10372),f=e.i(93695);e.i(52474);var _=e.i(220);let R=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/network/route",pathname:"/api/network",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/network/route.js",nextConfigOutput:"standalone",userland:()=>e.r(6793),...{}}),{workAsyncStorage:x,workUnitAsyncStorage:E,serverHooks:b}=R;async function w(e,t,s){s.requestMeta&&(0,a.setRequestMeta)(e,s.requestMeta),R.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/network/route";x=x.replace(/\/index$/,"")||"/";let E=await R.prepare(e,t,{srcPage:x,multiZoneDraftMode:!1});if(!E)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:b,deploymentId:w,params:v,nextConfig:y,parsedUrl:T,isDraftMode:C,prerenderManifest:S,routerServerContext:$,isOnDemandRevalidate:q,revalidateOnlyGenerated:N,resolvedPathname:A,clientReferenceManifest:I,serverActionsManifest:O}=E,L=(0,l.normalizeAppPath)(x),P=!!(S.dynamicRoutes[L]||S.routes[A]),k=async()=>((null==$?void 0:$.render404)?await $.render404(e,t,T,!1):t.end("This page could not be found"),null);if(P&&!C){let e=!!S.routes[A],t=S.dynamicRoutes[L];if(t&&!1===t.fallback&&!e){if(y.adapterPath)return await k();throw new f.NoFallbackError}}let j=null;!P||R.isDev||C||(j="/index"===(j=A)?"/":j);let D=!0===R.isDev||!P,U=P&&!D;O&&I&&(0,i.setManifestsSingleton)({page:x,clientReferenceManifest:I,serverActionsManifest:O});let M=e.method||"GET",H=(0,n.getTracer)(),F=H.getActiveScopeSpan(),V=!!(null==$?void 0:$.isWrappedByNextServer),G=!!(0,a.getRequestMeta)(e,"minimalMode"),K=(0,a.getRequestMeta)(e,"incrementalCache")||await R.getIncrementalCache(e,y,S,G);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let B={params:v,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:D,incrementalCache:K,hmrRefreshHash:(0,a.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,a)=>R.onRequestError(e,t,s,a,$)},sharedContext:{buildId:b,deploymentId:w}},W=new o.NodeNextRequest(e),X=new o.NodeNextResponse(t),z=u.NextRequestAdapter.fromNodeNextRequest(W,(0,u.signalFromNodeResponse)(t)),J=async({previousCacheEntry:r})=>{try{if(!G&&q&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await R.handle(z,B);e.fetchMetrics=B.renderOpts.fetchMetrics;let n=B.renderOpts.pendingWaitUntil;n&&s.waitUntil&&(s.waitUntil(n),n=void 0);let i=B.renderOpts.collectedTags;if(!P)return await (0,c.sendResponse)(W,X,a,n),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);i&&(t[g.NEXT_CACHE_TAGS_HEADER]=i),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==B.renderOpts.collectedRevalidate&&!(B.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&B.renderOpts.collectedRevalidate,s=void 0===B.renderOpts.collectedExpire||B.renderOpts.collectedExpire>=g.INFINITE_CACHE?!1!==r&&r>0?y.expireTime:void 0:B.renderOpts.collectedExpire;return{value:{kind:_.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await R.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:q})},!1,$),t}},Q=async(a,i)=>{try{var l,o;let a=await R.handleResponse({req:e,nextConfig:y,cacheKey:j,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:q,revalidateOnlyGenerated:N,responseGenerator:J,waitUntil:s.waitUntil,isMinimalMode:G});if(!P)return;if((null==a||null==(l=a.value)?void 0:l.kind)!==_.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==a||null==(o=a.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});G||t.setHeader("x-nextjs-cache",q?"REVALIDATED":a.isMiss?"MISS":a.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let n=(0,h.fromNodeOutgoingHttpHeaders)(a.value.headers);G&&P||n.delete(g.NEXT_CACHE_TAGS_HEADER),!a.cacheControl||t.getHeader("Cache-Control")||n.get("Cache-Control")||n.set("Cache-Control",(0,m.getCacheControlHeader)(a.cacheControl)),await (0,c.sendResponse)(W,X,new Response(a.value.body,{headers:n,status:a.value.status||200}));return}catch(t){if(t instanceof f.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:L,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:q})},!1,$),P)throw t;await (0,c.sendResponse)(W,X,new Response(null,{status:500}));return}finally{(()=>{if(!a)return;let e=t.statusCode;a.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(a.setStatus({code:n.SpanStatusCode.ERROR}),a.setAttribute("error.type",e.toString()));let r=H.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=r.get("next.route")||L,l=`${M} ${s}`;a.setAttributes({"next.route":s,"http.route":s,"next.span_name":l}),a.updateName(l),i&&i!==a&&(i.setAttribute("http.route",s),i.updateName(l))})()}};if(V&&F)await Q(F,void 0);else{let t=H.getActiveScopeSpan();await H.withPropagatedContext(e.headers,()=>H.trace(p.BaseServerSpan.handleRequest,{spanName:`${M} ${x}`,kind:n.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},e=>Q(e,t)),void 0,!V)}}e.s(["handler",0,w,"patchFetch",0,function(){return(0,s.patchFetch)({workAsyncStorage:x,workUnitAsyncStorage:E})},"routeModule",0,R,"serverHooks",0,b,"workAsyncStorage",0,x,"workUnitAsyncStorage",0,E])},80998,e=>{"use strict";var t=e.i(88431);let r=/^[a-z_][a-z0-9_]*$/i;function s(e,t){if(!r.test(e))throw Error(`Unsafe ${t}: ${e}`);return e}class a{constructor(e){this.table=s(e,"table"),this._columns="*",this._filters=[],this._order=null,this._limit=null,this._single=!1,this._op="select",this._payload=null,this._onConflict=null,this._ignoreDuplicates=!1}select(e="*"){return"select"===this._op&&(this._columns="*"===e?"*":e),this._returning=!0,this}eq(e,r){return s(e,"column"),null===r?this._filters.push({sql:`"${e}" IS NULL`,params:[]}):this._filters.push({sql:`"${e}" = ?`,params:[(0,t.encodeValue)(this.table,e,r)]}),this}neq(e,r){return s(e,"column"),this._filters.push({sql:`"${e}" IS NOT ?`,params:[(0,t.encodeValue)(this.table,e,r)]}),this}in(e,r){s(e,"column");let a=Array.isArray(r)?r:[];return a.length?this._filters.push({sql:`"${e}" IN (${a.map(()=>"?").join(", ")})`,params:a.map(r=>(0,t.encodeValue)(this.table,e,r))}):this._filters.push({sql:"0 = 1",params:[]}),this}ilike(e,t){return s(e,"column"),this._filters.push({sql:`"${e}" LIKE ?`,params:[t]}),this}not(e,r,a){return s(e,"column"),"is"===r&&null===a?this._filters.push({sql:`"${e}" IS NOT NULL`,params:[]}):this._filters.push({sql:`NOT ("${e}" = ?)`,params:[(0,t.encodeValue)(this.table,e,a)]}),this}is(e,r){return s(e,"column"),null===r?this._filters.push({sql:`"${e}" IS NULL`,params:[]}):this._filters.push({sql:`"${e}" = ?`,params:[(0,t.encodeValue)(this.table,e,r)]}),this}order(e,{ascending:t=!0}={}){return s(e,"column"),this._order=`"${e}" ${t?"ASC":"DESC NULLS LAST"}`,this}limit(e){return this._limit=Number(e)||0,this}single(){return this._single=!0,this._limit=this._limit??1,this}maybeSingle(){return this.single()}insert(e){return this._op="insert",this._payload=Array.isArray(e)?e:[e],this}upsert(e,t={}){return this._op="upsert",this._payload=Array.isArray(e)?e:[e],this._onConflict=t.onConflict||null,this._ignoreDuplicates=!!t.ignoreDuplicates,this}update(e){return this._op="update",this._payload=e,this}delete(){return this._op="delete",this}_where(){return this._filters.length?{sql:" WHERE "+this._filters.map(e=>e.sql).join(" AND "),params:this._filters.flatMap(e=>e.params)}:{sql:"",params:[]}}_run(){let e=(0,t.getDb)(),s=this._where();if("select"===this._op){let r=`SELECT ${"*"===this._columns?"*":this._columns} FROM "${this.table}"${s.sql}`;this._order&&(r+=` ORDER BY ${this._order}`),null!=this._limit&&(r+=` LIMIT ${Number(this._limit)}`);let a=e.prepare(r).all(...s.params).map(e=>(0,t.decodeRow)(this.table,e));return this._single?a.length?{data:a[0],error:null}:{data:null,error:{message:"No rows found",code:"PGRST116"}}:{data:a,error:null}}if("insert"===this._op||"upsert"===this._op){let s=[];for(let a of this._payload){let n={id:a.id||(0,t.newId)(),...a};n.id||(n.id=(0,t.newId)());let i=Object.keys(n).filter(e=>r.test(e)),l=i.map(e=>(0,t.encodeValue)(this.table,e,n[e])),o=i.map(()=>"?").join(", "),u=i.map(e=>`"${e}"`).join(", "),p=`INSERT INTO "${this.table}" (${u}) VALUES (${o})`;if("upsert"===this._op)if(this._ignoreDuplicates)p+=" ON CONFLICT DO NOTHING";else{let e=this._onConflict?this._onConflict.split(",").map(e=>`"${e.trim()}"`).join(", "):'"id"',t=i.filter(e=>"id"!==e).map(e=>`"${e}" = excluded."${e}"`).join(", ");p+=` ON CONFLICT (${e}) DO UPDATE SET ${t||'"id" = "id"'}`}try{e.prepare(p).run(...l);let r=e.prepare(`SELECT * FROM "${this.table}" WHERE id = ?`).get(n.id);r&&s.push((0,t.decodeRow)(this.table,r))}catch(e){if("upsert"===this._op&&/UNIQUE constraint/i.test(e.message))continue;return{data:null,error:{message:e.message}}}}return this._single?{data:s[0]??null,error:s.length?null:{message:"Insert returned no row"}}:{data:s,error:null}}if("update"===this._op){let a={...this._payload};"updated_at"in a==!1&&"linkedin_connections"===this.table&&(a.updated_at=(0,t.nowIso)());let n=Object.keys(a).filter(e=>r.test(e));if(!n.length)return{data:[],error:null};let i=n.map(e=>`"${e}" = ?`).join(", "),l=n.map(e=>(0,t.encodeValue)(this.table,e,a[e])),o=`UPDATE "${this.table}" SET ${i}${s.sql}`;try{let r=e.prepare(`SELECT id FROM "${this.table}"${s.sql}`).all(...s.params);e.prepare(o).run(...l,...s.params);let a=r.map(t=>e.prepare(`SELECT * FROM "${this.table}" WHERE id = ?`).get(t.id)).filter(Boolean).map(e=>(0,t.decodeRow)(this.table,e));if(this._single)return{data:a[0]??null,error:a.length?null:{message:"No rows updated"}};return{data:a,error:null}}catch(e){return{data:null,error:{message:e.message}}}}if("delete"===this._op)try{let r=e.prepare(`SELECT * FROM "${this.table}"${s.sql}`).all(...s.params).map(e=>(0,t.decodeRow)(this.table,e));return e.prepare(`DELETE FROM "${this.table}"${s.sql}`).run(...s.params),{data:r,error:null}}catch(e){return{data:null,error:{message:e.message}}}return{data:null,error:{message:`Unsupported operation: ${this._op}`}}}then(e,t){let r;try{r=this._run()}catch(e){r={data:null,error:{message:e.message}}}return Promise.resolve(r).then(e,t)}catch(e){return this.then(void 0,e)}finally(e){return this.then(t=>(e?.(),t),t=>{throw e?.(),t})}}e.s(["db",0,{from:e=>new a(e),async rpc(t,r={}){let{runRpc:s}=await e.A(35862);return s(t,r)}}])},12506,1348,e=>{"use strict";e.s(["compareVersions",0,function(e,t){let r=e=>String(e||"").replace(/^v/i,"").split(/[-+]/)[0].split(".").map(e=>Number.parseInt(e,10)||0),s=r(e),a=r(t);for(let e=0;e<Math.max(s.length,a.length);e++){let t=(s[e]||0)-(a[e]||0);if(0!==t)return t>0?1:-1}return 0},"installKind",0,function(e=process.env,t=""){return["mac-app","source","npm"].includes(e.SIX_DEGREES_INSTALL)?e.SIX_DEGREES_INSTALL:/\.app\/Contents\/Resources/.test(t||"")?"mac-app":"npm"},"repoSlug",0,function(e){let t=("string"==typeof e?e:e?.url||"").match(/github\.com[/:]([^/]+)\/([^/.#?]+)/);return t?`${t[1]}/${t[2]}`:null},"updateCommand",0,function(e,t,{dataDir:r}={}){if("mac-app"===e)return`curl -fsSL https://raw.githubusercontent.com/${t}/main/install.sh | bash`;if("source"===e)return"git pull && npm ci && npm run build && npm run start:packaged";let s=r&&`'${String(r).replace(/'/g,"'\\''")}'`;return s?`npx six-degrees@latest --data-dir ${s}`:"npx six-degrees@latest"}],12506);let t=Symbol.for("six-degrees.scan-state");function r(){let e=globalThis[t];return e?.running!==!0?null:"string"==typeof e.action&&e.action?e.action:"scan"}function s(e){switch(e){case"install":return"The scanner's packages are being installed";case"setup":return"The scanner is being set up";case"login":return"The LinkedIn sign-in window is open";case"photos":return"Profile photos are being saved";default:return"A scan is running"}}e.s(["busyRefusal",0,function(e,t=r()){return t?`${s(t)}. ${e}`:null},"registerScanState",0,function(e){return globalThis[t]||(globalThis[t]=e),globalThis[t]},"runningNow",0,s,"scannerJob",0,r],1348)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=%5Broot-of-the-server%5D__0ljnyho._.js.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
module.exports=[70406,(e,r,n)=>{r.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,r,n)=>{r.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,r,n)=>{r.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,r,n)=>{r.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},59043,(e,r,n)=>{r.exports=e.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},93695,(e,r,n)=>{r.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},74533,(e,r,n)=>{r.exports=e.x("node:child_process",()=>require("node:child_process"))},66680,(e,r,n)=>{r.exports=e.x("node:crypto",()=>require("node:crypto"))},2157,(e,r,n)=>{r.exports=e.x("node:fs",()=>require("node:fs"))},12714,(e,r,n)=>{r.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},60526,(e,r,n)=>{r.exports=e.x("node:os",()=>require("node:os"))},50227,(e,r,n)=>{r.exports=e.x("node:path",()=>require("node:path"))},81111,(e,r,n)=>{r.exports=e.x("node:stream",()=>require("node:stream"))},88602,e=>{"use strict";var r=e.i(88431);e.s(["networkCounts",0,function(e){let n=Object.fromEntries((0,r.getDb)().prepare("SELECT degree, COUNT(*) AS n FROM linkedin_connections WHERE user_id = ? GROUP BY degree").all(e).map(e=>[e.degree,e.n]));return{first:n[1]||0,second:n[2]||0,third:n[3]||0}},"resolveProfile",0,function({create:e=!0}={}){let[n]=(0,r.getDb)().prepare(`
|
|
2
|
+
SELECT u.*,
|
|
3
|
+
(SELECT COUNT(*) FROM linkedin_connections c WHERE c.user_id = u.id) AS connections
|
|
4
|
+
FROM users u
|
|
5
|
+
ORDER BY connections DESC, u.created_at ASC, u.rowid ASC
|
|
6
|
+
`).all().map(e=>(0,r.decodeRow)("users",e));if(n)return n;if(!e)return null;let t=(0,r.newId)();return(0,r.getDb)().prepare("INSERT INTO users (id, name) VALUES (?, ?)").run(t,"You"),{...(0,r.decodeRow)("users",(0,r.getDb)().prepare("SELECT * FROM users WHERE id = ?").get(t)),connections:0}}])},12506,1348,e=>{"use strict";e.s(["compareVersions",0,function(e,r){let n=e=>String(e||"").replace(/^v/i,"").split(/[-+]/)[0].split(".").map(e=>Number.parseInt(e,10)||0),t=n(e),s=n(r);for(let e=0;e<Math.max(t.length,s.length);e++){let r=(t[e]||0)-(s[e]||0);if(0!==r)return r>0?1:-1}return 0},"installKind",0,function(e=process.env,r=""){return["mac-app","source","npm"].includes(e.SIX_DEGREES_INSTALL)?e.SIX_DEGREES_INSTALL:/\.app\/Contents\/Resources/.test(r||"")?"mac-app":"npm"},"repoSlug",0,function(e){let r=("string"==typeof e?e:e?.url||"").match(/github\.com[/:]([^/]+)\/([^/.#?]+)/);return r?`${r[1]}/${r[2]}`:null},"updateCommand",0,function(e,r,{dataDir:n}={}){if("mac-app"===e)return`curl -fsSL https://raw.githubusercontent.com/${r}/main/install.sh | bash`;if("source"===e)return"git pull && npm ci && npm run build && npm run start:packaged";let t=n&&`'${String(n).replace(/'/g,"'\\''")}'`;return t?`npx six-degrees@latest --data-dir ${t}`:"npx six-degrees@latest"}],12506);let r=Symbol.for("six-degrees.scan-state");function n(){let e=globalThis[r];return e?.running!==!0?null:"string"==typeof e.action&&e.action?e.action:"scan"}function t(e){switch(e){case"install":return"The scanner's packages are being installed";case"setup":return"The scanner is being set up";case"login":return"The LinkedIn sign-in window is open";case"photos":return"Profile photos are being saved";default:return"A scan is running"}}e.s(["busyRefusal",0,function(e,r=n()){return r?`${t(r)}. ${e}`:null},"registerScanState",0,function(e){return globalThis[r]||(globalThis[r]=e),globalThis[r]},"runningNow",0,t,"scannerJob",0,n],1348)}];
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__17kn1mk._.js.map
|
|
@@ -5,4 +5,4 @@ module.exports=[70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry
|
|
|
5
5
|
ORDER BY connections DESC, u.created_at ASC, u.rowid ASC
|
|
6
6
|
`).all().map(e=>(0,t.decodeRow)("users",e));if(r)return r;if(!e)return null;let n=(0,t.newId)();return(0,t.getDb)().prepare("INSERT INTO users (id, name) VALUES (?, ?)").run(n,"You"),{...(0,t.decodeRow)("users",(0,t.getDb)().prepare("SELECT * FROM users WHERE id = ?").get(n)),connections:0}}])},12506,1348,e=>{"use strict";e.s(["compareVersions",0,function(e,t){let r=e=>String(e||"").replace(/^v/i,"").split(/[-+]/)[0].split(".").map(e=>Number.parseInt(e,10)||0),n=r(e),s=r(t);for(let e=0;e<Math.max(n.length,s.length);e++){let t=(n[e]||0)-(s[e]||0);if(0!==t)return t>0?1:-1}return 0},"installKind",0,function(e=process.env,t=""){return["mac-app","source","npm"].includes(e.SIX_DEGREES_INSTALL)?e.SIX_DEGREES_INSTALL:/\.app\/Contents\/Resources/.test(t||"")?"mac-app":"npm"},"repoSlug",0,function(e){let t=("string"==typeof e?e:e?.url||"").match(/github\.com[/:]([^/]+)\/([^/.#?]+)/);return t?`${t[1]}/${t[2]}`:null},"updateCommand",0,function(e,t,{dataDir:r}={}){if("mac-app"===e)return`curl -fsSL https://raw.githubusercontent.com/${t}/main/install.sh | bash`;if("source"===e)return"git pull && npm ci && npm run build && npm run start:packaged";let n=r&&`'${String(r).replace(/'/g,"'\\''")}'`;return n?`npx six-degrees@latest --data-dir ${n}`:"npx six-degrees@latest"}],12506);let t=Symbol.for("six-degrees.scan-state");function r(){let e=globalThis[t];return e?.running!==!0?null:"string"==typeof e.action&&e.action?e.action:"scan"}function n(e){switch(e){case"install":return"The scanner's packages are being installed";case"setup":return"The scanner is being set up";case"login":return"The LinkedIn sign-in window is open";case"photos":return"Profile photos are being saved";default:return"A scan is running"}}e.s(["busyRefusal",0,function(e,t=r()){return t?`${n(t)}. ${e}`:null},"registerScanState",0,function(e){return globalThis[t]||(globalThis[t]=e),globalThis[t]},"runningNow",0,n,"scannerJob",0,r],1348)},98199,e=>{"use strict";var t=e.i(50227),r=e.i(12506);let n="Six Degrees.app",s="SHA256SUMS",i=Object.freeze({apiBase:"https://api.github.com",downloadBase:"https://github.com"}),o=(e,t)=>({refusal:{code:e,message:t}}),a={arm64:"Apple Silicon",x64:"Intel"},l={0x1000007:"x64",0x100000c:"arm64"};e.s(["APP_BUNDLE_NAME",0,n,"BUNDLE_ID",0,"com.blakeburford.sixdegrees","CHIP_LABEL",0,a,"GITHUB",0,i,"UPDATE_HANDOFF_EXIT_CODE",0,76,"chipOf",0,function({sysctlArm64:e,processArch:t}={}){return"1"===String(e??"").trim()||"arm64"===t?"arm64":"x64"},"digestsMatch",0,function(e,t){let r=String(e||"").toLowerCase(),n=String(t||"").toLowerCase();return/^[0-9a-f]{64}$/.test(r)&&r===n},"foreignAppProcesses",0,function(e,{bundles:t=[],uid:r}){let n=t.filter(Boolean).map(e=>`${e}/Contents/`);if(!n.length||!Number.isInteger(r))return[];let s=[];for(let t of String(e||"").split("\n")){let e=t.match(/^\s*(\d+)\s+(\d+)\s+(.+)$/);e&&Number(e[1])!==r&&n.some(t=>e[3].startsWith(t))&&s.push(Number(e[2]))}return s},"helperArgs",0,function({target:e,staged:t,keepDir:r,statusFile:n,from:s,to:i,pids:o=[],waitSeconds:a=30,logFile:l,work:u,relaunch:d=[],confirmFile:p,confirmWaitSeconds:c=600}){let f=["--target",e,"--staged",t,"--keep",r,"--status",n,"--from",s,"--to",i,"--wait",String(a)];for(let e of o)Number.isInteger(e)&&e>1&&f.push("--pid",String(e));return p&&f.push("--confirm",p,"--confirm-wait",String(c)),l&&f.push("--log",l),u&&f.push("--work",u),[...f,"--",...d]},"installerTarget",0,function({applicationsWritable:e=!0,home:r=""}={}){return e?t.default.join("/Applications",n):t.default.join(r,"Applications",n)},"lastUpdateReport",0,function(e,{runningVersion:t,now:s=Date.now(),maxAgeDays:i=7}={}){if(!e||"object"!=typeof e||"string"!=typeof e.to)return null;let o=Date.parse(e.at);if(!Number.isFinite(o)||s-o>864e5*i)return null;let a=e.to,l="string"==typeof e.reason&&e.reason.trim()?e.reason.trim().replace(/\.$/,""):null,u={at:new Date(o).toISOString(),from:e.from||null,to:a,previous:"string"==typeof e.previous?e.previous:null},d=t?(0,r.compareVersions)(t,a):null,p=`The update to ${a} didn't finish${l?`: ${l}`:""}.`;switch(e.outcome){case"installed":case"started":if(0===d)return{...u,tone:"ok",text:`Updated to ${a}.`};if(d>0)return null;if("installed"===e.outcome)return{...u,tone:"bad",text:`Version ${a} was installed, but this copy is ${t}. If you have two copies of Six Degrees, open the one in Applications.`};return{...u,tone:"bad",text:`The update to ${a} didn't finish, and it didn't say why.${e.log?` Its log is ${e.log}.`:""}`};case"not-applied":if(null!==d&&d>=0)return null;return{...u,tone:"bad",text:`${p} Nothing was changed.`};case"rolled-back":if(null!==d&&d>=0)return null;return{...u,tone:"bad",text:`${p} Your previous version was put back.`};case"failed":if(null!==d&&d>=0)return null;return{...u,tone:"bad",text:`${p}${e.previous?` Your previous version is safe, in a hidden folder: ${e.previous}. To use it again, rename it to ${n} (in Finder, Shift-Command-. shows hidden files). Or install the newest version: Check for updates, below.`:""}`};default:return null}},"leftoversBeside",0,function(e,t){let r=`.${t}.`,n=[];for(let t of e){if("string"!=typeof t||!t.startsWith(r))continue;let e=t.slice(r.length);if("incoming"===e){n.push({name:t,kind:"incoming",pid:null});continue}let s=e.match(/^(previous|failed)-(\d+)(?:-\d+)?$/);s&&n.push({name:t,kind:s[1],pid:Number(s[2])})}return n},"machoArchs",0,function(e){let t=new Set;if(!e||e.length<8)return t;let r=e=>{l[e>>>0]&&t.add(l[e>>>0])},n=e.readUInt32LE(0);if(0xfeedfacf===n||0xfeedface===n)return r(e.readUInt32LE(4)),t;let s=e.readUInt32BE(0);if(0xcafebabe===s||0xcafebabf===s){let n=e.readUInt32BE(4),i=0xcafebabf===s?32:20;if(n<1||n>16)return t;for(let t=0;t<n;t++){let n=8+t*i;if(n+4>e.length)break;r(e.readUInt32BE(n))}}return t},"parseSha256Sums",0,function(e){let t=new Map;for(let r of String(e||"").split("\n")){let e=r.replace(/\r$/,"").match(/^([0-9a-fA-F]{64}) [ *](.+)$/);if(!e)continue;let[,n,s]=e,i=n.toLowerCase();t.has(s)&&t.get(s)!==i?t.set(s,null):t.set(s,i)}return t},"planFromRelease",0,function(e,{currentVersion:t,chip:n,slug:l,downloadBase:u=i.downloadBase}){if(!e||"object"!=typeof e||!e.tag_name)return o("no-release","GitHub did not describe a release.");let d=String(e.tag_name),p=d.replace(/^v/i,"");if(e.draft||e.prerelease||p.includes("-"))return o("prerelease",`Version ${p} is a test version, so it isn't installed from here.`);if(!/^\d+(\.\d+){1,3}$/.test(p))return o("bad-version",`GitHub's newest release has a version this app doesn't understand (${d}).`);if(0>=(0,r.compareVersions)(p,t))return o("not-newer",`You already have ${t}, and the newest version is ${p}.`);let c=Array.isArray(e.assets)?e.assets:[],f=e=>c.find(t=>t&&t.name===e)||null,m=f(`Six-Degrees-${p}-${n}.dmg`);if(!m)return o("no-download",`Version ${p} has no download for this Mac (${a[n]||n}).`);let g=f(s);if(!g)return o("no-checksums",`Version ${p} was published without its checksum file (${s}), so its download can't be checked.`);let h=`${u}/${l}/releases/download/${encodeURIComponent(d)}/`;for(let e of[m,g])if(e.browser_download_url!==h+encodeURIComponent(e.name))return o("unexpected-address",`GitHub listed ${e.name} at an unexpected address, so it wasn't downloaded.`);let x=Number(m.size)>0?Number(m.size):null;return x&&x>0x40000000?o("too-large",`The download for version ${p} is unexpectedly large, so it wasn't downloaded.`):{plan:{version:p,tag:d,notes:"string"==typeof e.html_url?e.html_url:null,dmg:{name:m.name,url:m.browser_download_url,size:x},sums:{name:g.name,url:g.browser_download_url}}}},"relaunchArgs",0,function({dataDir:e}={}){let r=["--after-update"];return e&&r.push("--data-dir",t.default.resolve(e)),r},"releaseSource",0,function(e={}){let t=e?.SIX_DEGREES_TEST_RELEASES;if(!t)return{...i,test:!1};let r=null;try{r=new URL(String(t))}catch{}return!r||"http:"!==r.protocol||"127.0.0.1"!==r.hostname||""===r.port||"/"!==r.pathname||r.search||r.hash||r.username||r.password?{...i,test:!1}:{apiBase:r.origin,downloadBase:r.origin,test:!0}},"stagingPath",0,function(e){return t.default.join(t.default.dirname(e),`.${t.default.basename(e)}.incoming`)},"terminalFallback",0,function({bundle:e,refusalCode:t=null,installsTo:r,dataDir:n=null}){if("data-inside-app"===t||"database-elsewhere"===t||"not-owner"===t&&e===r)return null;let s=n?{dataDir:n}:{};return e&&e===r?{mode:"replace",...s}:{mode:"elsewhere",installsTo:r,...s}},"versionAtLeast",0,function(e,t){return(0,r.compareVersions)(e,t)>=0}])}];
|
|
7
7
|
|
|
8
|
-
//# sourceMappingURL=%5Broot-of-the-server%
|
|
8
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__1dmc7-t._.js.map
|
|
@@ -13,7 +13,7 @@ except Exception as e:
|
|
|
13
13
|
FROM linkedin_connections WHERE user_id = ? AND degree = 1`).all(e),r=new Set(t.prepare(`SELECT DISTINCT source_connection_id AS id FROM linkedin_connections
|
|
14
14
|
WHERE user_id = ? AND degree = 2 AND source_connection_id IS NOT NULL`).all(e).map(e=>e.id));return b(n,r,g((0,o.dataDir)(),e),m((0,o.dataDir)()))}catch{return[]}}(n?.id)}}function eu(){return{running:V.running,action:V.action,target:V.target,startedAt:V.startedAt,exitCode:V.exitCode,failure:V.running?null:V.failure,progress:V.running?function(e,t){if(!Array.isArray(e)||0===e.length)return null;if("setup"===t){let t=String(e[e.length-1]).match(l);return t&&Number(t[2])?{done:Math.min(Number(t[1]),Number(t[2])),total:Number(t[2]),kind:"download"}:null}if("full"===t||"refresh"===t){for(let t=e.length-1;t>=0;t--){let n=String(e[t]);if(p.test(n))return{kind:"saving"};let r=n.match(d);if(r)return h(Number(r[1]),Number(r[1]));let i=n.match(u);if(i)return h(Number(i[1]),Number(i[2]));let o=n.match(s);if(o)return h(0,Number(o[1]))}return null}if(t&&(t.startsWith("auto-bridge")||"resume-all"===t))for(let t=e.length-1;t>=0;t--){let n=String(e[t]).match(c);if(n){let e=Number(n[1]),t=Number(n[2]);if(!t)return null;return{done:Math.min(e-1,t),total:t,current:e,kind:"batch"}}}return null}(V.log,V.action):null,log:V.log.slice(-120),recent:V.recent,budget:V.running?function(){try{let e=(0,f.linkedinState)((0,o.dataDir)());return{searches:e.searchesToday??0,cap:e.limits?.daily??null,profiles:e.profilesToday??0,profileCap:e.limits?.profiles??null}}catch{return null}}():null}}async function ed(e){let t=new URL(e?.url||"http://127.0.0.1/api/scraper").searchParams;return t.has("job")?Response.json(eu()):t.has("resume")?Response.json({resume:function(e){try{let t=(0,a.resolveProfile)({create:!1});if(!t)return null;let n=(0,y.getDb)(),r=n.prepare(`SELECT id, name, tier, profile_url, connected_date, created_at
|
|
15
15
|
FROM linkedin_connections WHERE id = ? AND user_id = ? AND degree = 1`).get(String(e??""),t.id);if(!r)return null;let i=n.prepare("SELECT 1 FROM linkedin_connections WHERE user_id = ? AND degree = 2 AND source_connection_id = ? LIMIT 1").get(t.id,r.id),[s]=b([r],new Set(i?[r.id]:[]),g((0,o.dataDir)(),t.id),m((0,o.dataDir)()));return s?{nextPage:s.nextPage,pagesRead:s.pagesRead,legacy:s.legacy}:null}catch{return null}}(t.get("resume"))}):t.has("reach")?Response.json(Q()):t.has("person")?Response.json(function(e){try{let t=(0,a.resolveProfile)({create:!1});if(!t)return{person:null};let n=(0,y.getDb)(),r=n.prepare(`SELECT id, name, tier, power_score, degree, profile_url, unlocked_from_bridge_id, unlocked_from_name
|
|
16
|
-
FROM linkedin_connections WHERE id = ? AND user_id = ? AND degree = 1`).get(String(e??""),t.id);if(!r)return{person:null};let i=n.prepare("SELECT 1 FROM linkedin_connections WHERE user_id = ? AND degree = 2 AND source_connection_id = ? LIMIT 1").get(t.id,r.id),o=function(e=[],t=[],n={}){let r=new Set;for(let e of t||[])e?.source_connection_id!=null&&r.add(e.source_connection_id);let i=new Set;for(let e of n?.skips||[])e?.profileUrl&&i.add(S({profile_url:e.profileUrl}));let o=new Set;for(let e of n?.read||[])e&&o.add(S({profile_url:e}));let a=new Map;for(let[e,t]of Object.entries(n?.lists||{}))e&&t&&a.set(S({profile_url:e}),t);let s=new Map;for(let t of e||[]){let e=t?.unlocked_from_bridge_id;if(null==e||1!==t.degree)continue;let n=s.get(e);n||s.set(e,n=[]),n.push(t)}return{scanned:r,read:o,hidden:i,reachedFrom:s,lists:a}}([],i?[{source_connection_id:r.id}]:[],Q());return{person:{id:r.id,name:r.name,tier:r.tier,power_score:r.power_score,unlocked_from_bridge_id:r.unlocked_from_bridge_id,unlocked_from_name:r.unlocked_from_name},circle:r?o.scanned.has(r.id)||r.profile_url&&o.read?.has(S(r))?"scanned":r.profile_url&&o.hidden.has(S(r))?"hidden":"todo":"todo"}}catch{return{person:null}}}(t.get("person"))):Response.json(await el())}let ec={install:{label:"Installing the scanner’s Python packages"},setup:{label:"Setting up the scanner"},login:{flag:"--login",label:"Opening LinkedIn so you can sign in"},full:{flag:"--full",label:"Scanning your whole network"},refresh:{flag:"--refresh",label:"Checking for new connections"},"auto-bridge":{flag:"--auto-bridge",label:"Mapping every bridge in turn"},"auto-bridge-retry":{flag:"--auto-bridge --retry-private",label:"Mapping every bridge, hidden ones included"},bridge:{flag:"--bridge",needsName:!0,byId:!0,label:"Mapping the circle behind"},resume:{flag:"--bridge-url",needsId:!0,label:"Carrying on with",searches:!0},"resume-all":{flag:"--auto-bridge --only-unfinished",label:"Carrying on with every paused list",searches:!0},rescrape:{flag:"--rescrape",needsName:!0,label:"Re-mapping the circle behind"},company:{flag:"--company",needsName:!0,label:"Scanning"},photos:{flag:"--save-photos",label:"Saving profile photos to this computer"}};async function ep(e){let t,s={};try{s=await e.json()}catch{}let l=String(s.action||"");if("cancel"===l)return!function(){if(V.abort){V.stopping=!0,J("Stopping…"),V.abort.abort(new G("Stopped."));return}let e=V.child;if(!e)return;V.stopping=!0,J("Stopping…");let t=e.pid;try{process.kill(-t,"SIGTERM")}catch{try{e.kill("SIGTERM")}catch{}}setTimeout(()=>{if(V.child&&V.child.pid===t){J("Still running — forcing it.");try{process.kill(-t,"SIGKILL")}catch{try{e.kill("SIGKILL")}catch{}}}},2e4)}(),Response.json({ok:!0,cancelled:!0});if("set-limits"===l){let e=(0,f.writeLimits)((0,o.dataDir)(),{daily:s.daily,monthly:s.monthly,profiles:s.profiles});return Response.json({ok:!0,limits:e})}if("lift-cooldown"===l)return(0,f.liftCooldown)((0,o.dataDir)()),Response.json({ok:!0});if(!Object.hasOwn(ec,l))return Response.json({error:`Unknown action '${l}'`},{status:400});let u=ec[l],d=Number.isInteger(s.maxBridges)&&s.maxBridges>0?Math.min(s.maxBridges,500):0,c=Array.isArray(s.tiers)?s.tiers.map(e=>String(e).toUpperCase()).filter(e=>"SABCD".includes(e)&&1===e.length):[],p="score"===s.order?"score":"newest",h=[10,25,50,100].includes(s.maxPages)?s.maxPages:100,g=l.startsWith("auto-bridge")||["bridge","rescrape","resume","resume-all"].includes(l),m=!0===s.deeper&&(l.startsWith("auto-bridge")||"bridge"===l),b=u.needsId||u.byId&&!!s.id,w=null;if(u.needsName&&!b){let e;if(!(w=!(e=String(s.name??"").trim())||e.length>120||/[\u0000-\u001f]/.test(e)?null:e))return Response.json({error:"A name is required for this action."},{status:400})}let _=null,S=null;if(b){try{var R;let e,t=(0,a.resolveProfile)({create:!1});S=t&&(0,y.getDb)().prepare("SELECT name, profile_url FROM linkedin_connections WHERE id = ? AND user_id = ? AND degree = 1").get(String(s.id??""),t.id),_=S?.profile_url&&(R=S.profile_url,(e=String(R??"").trim()).length>400||/[\u0000-\u001f\s]/.test(e)?null:/^https?:\/\/([a-z]{2,3}\.|www\.)?linkedin\.com\/in\/[^/?#]+\/?$/i.test(e)?e:null)}catch{_=null}if(!_)return Response.json({error:"That connection could not be found."},{status:400})}let E="string"==typeof s.id&&/^[\w-]{1,64}$/.test(s.id)?s.id:null,T=w||_?{id:E,name:w||S?.name||null}:null,k=u.searches||l.startsWith("auto-bridge")||["bridge","rescrape","company","full","refresh"].includes(l);if(!["install","setup","login"].includes(l)&&(0,v.pendingImport)((0,o.dataDir)()))return Response.json({error:"An import is waiting to finish. Restart Six Degrees first (Settings → Your data), then scan."},{status:409});let C=(0,f.linkedinState)((0,o.dataDir)()).cooldown;if(k&&C)return Response.json({error:`Scanning is paused until ${new Date(C.until).toLocaleString()} — ${C.reason}.`,cooldown:C},{status:409});if(V.running)return Response.json({error:"Something is already running.",action:V.action},{status:409});let N=(0,o.projectRoot)();if(!N)return Response.json({error:"Could not find scripts/scrape.py next to the app."},{status:500});er();let P=(await es()).python;if(V.running)return Response.json({error:"Something is already running.",action:V.action},{status:409});let A=null;if("install"===l||"setup"===l){let e=function(e,t,{root:n,data:o,say:a}){if(t.run)return{status:409,error:"bundled"===t.run.source?"The scanner is already set up: its Python comes with the app.":"The scanner is already set up."};let s=t.base;if("install"===e&&!s)return t.download?{status:409,error:"This computer has no Python the scanner can use. Use Set up the scanner instead."}:{status:500,error:"No Python 3.10 to 3.14 is installed, or none is on this app’s PATH."};if("setup"===e&&s?.source==="system")return{status:409,error:`This computer already has Python ${s.version}, so nothing needs downloading. Use Install instead.`};if("setup"===e&&!s&&!t.download)return{status:409,error:"There is no Python download for this computer. Install Python 3.10 to 3.14, then reload."};let l=i.default.join(n,"scripts","requirements.txt"),u=e=>(function({base:e,dataDir:t,requirements:n}){let r="downloaded"===e.source,i=U(t);return[{cmd:e.path,args:[...r?j:[],"-m","venv","--clear",L(t)],...r?{env:I}:{},note:"Creating the scanner’s own Python environment"},{cmd:i,args:["-m","pip","install","--disable-pip-version-check","--no-input","-r",n],env:H,note:"Installing Playwright, requests and Pillow"},{cmd:i,args:["-c",function(e=D){return`import sys
|
|
16
|
+
FROM linkedin_connections WHERE id = ? AND user_id = ? AND degree = 1`).get(String(e??""),t.id);if(!r)return{person:null};let i=n.prepare("SELECT 1 FROM linkedin_connections WHERE user_id = ? AND degree = 2 AND source_connection_id = ? LIMIT 1").get(t.id,r.id),o=function(e=[],t=[],n={}){let r=new Set;for(let e of t||[])e?.source_connection_id!=null&&r.add(e.source_connection_id);let i=new Set;for(let e of n?.skips||[])e?.profileUrl&&i.add(S({profile_url:e.profileUrl}));let o=new Set;for(let e of n?.read||[])e&&o.add(S({profile_url:e}));let a=new Map;for(let[e,t]of Object.entries(n?.lists||{}))e&&t&&a.set(S({profile_url:e}),t);let s=new Map;for(let t of e||[]){let e=t?.unlocked_from_bridge_id;if(null==e||1!==t.degree)continue;let n=s.get(e);n||s.set(e,n=[]),n.push(t)}return{scanned:r,read:o,hidden:i,reachedFrom:s,lists:a}}([],i?[{source_connection_id:r.id}]:[],Q());return{person:{id:r.id,name:r.name,tier:r.tier,power_score:r.power_score,unlocked_from_bridge_id:r.unlocked_from_bridge_id,unlocked_from_name:r.unlocked_from_name},circle:r?o.scanned.has(r.id)||r.profile_url&&o.read?.has(S(r))?"scanned":r.profile_url&&o.hidden.has(S(r))?"hidden":"todo":"todo"}}catch{return{person:null}}}(t.get("person"))):Response.json(await el())}let ec={install:{label:"Installing the scanner’s Python packages"},setup:{label:"Setting up the scanner"},login:{flag:"--login",label:"Opening LinkedIn so you can sign in"},full:{flag:"--full",label:"Scanning your whole network"},refresh:{flag:"--refresh",label:"Checking for new connections"},"auto-bridge":{flag:"--auto-bridge",label:"Mapping every bridge in turn"},"auto-bridge-retry":{flag:"--auto-bridge --retry-private",label:"Mapping every bridge, hidden ones included"},bridge:{flag:"--bridge",needsName:!0,byId:!0,label:"Mapping the circle behind"},resume:{flag:"--bridge-url",needsId:!0,label:"Carrying on with",searches:!0},"resume-all":{flag:"--auto-bridge --only-unfinished",label:"Carrying on with every paused list",searches:!0},rescrape:{flag:"--rescrape",needsName:!0,label:"Re-mapping the circle behind"},company:{flag:"--company",needsName:!0,label:"Scanning"},messages:{flag:"--messages",label:"Reading your messages list"},photos:{flag:"--save-photos",label:"Saving profile photos to this computer"}};async function ep(e){let t,s={};try{s=await e.json()}catch{}let l=String(s.action||"");if("cancel"===l)return!function(){if(V.abort){V.stopping=!0,J("Stopping…"),V.abort.abort(new G("Stopped."));return}let e=V.child;if(!e)return;V.stopping=!0,J("Stopping…");let t=e.pid;try{process.kill(-t,"SIGTERM")}catch{try{e.kill("SIGTERM")}catch{}}setTimeout(()=>{if(V.child&&V.child.pid===t){J("Still running — forcing it.");try{process.kill(-t,"SIGKILL")}catch{try{e.kill("SIGKILL")}catch{}}}},2e4)}(),Response.json({ok:!0,cancelled:!0});if("set-limits"===l){let e=(0,f.writeLimits)((0,o.dataDir)(),{daily:s.daily,monthly:s.monthly,profiles:s.profiles});return Response.json({ok:!0,limits:e})}if("lift-cooldown"===l)return(0,f.liftCooldown)((0,o.dataDir)()),Response.json({ok:!0});if(!Object.hasOwn(ec,l))return Response.json({error:`Unknown action '${l}'`},{status:400});let u=ec[l],d=Number.isInteger(s.maxBridges)&&s.maxBridges>0?Math.min(s.maxBridges,500):0,c=Array.isArray(s.tiers)?s.tiers.map(e=>String(e).toUpperCase()).filter(e=>"SABCD".includes(e)&&1===e.length):[],p="score"===s.order?"score":"newest",h=[10,25,50,100].includes(s.maxPages)?s.maxPages:100,g=l.startsWith("auto-bridge")||["bridge","rescrape","resume","resume-all"].includes(l),m=!0===s.deeper&&(l.startsWith("auto-bridge")||"bridge"===l),b=u.needsId||u.byId&&!!s.id,w=null;if(u.needsName&&!b){let e;if(!(w=!(e=String(s.name??"").trim())||e.length>120||/[\u0000-\u001f]/.test(e)?null:e))return Response.json({error:"A name is required for this action."},{status:400})}let _=null,S=null;if(b){try{var R;let e,t=(0,a.resolveProfile)({create:!1});S=t&&(0,y.getDb)().prepare("SELECT name, profile_url FROM linkedin_connections WHERE id = ? AND user_id = ? AND degree = 1").get(String(s.id??""),t.id),_=S?.profile_url&&(R=S.profile_url,(e=String(R??"").trim()).length>400||/[\u0000-\u001f\s]/.test(e)?null:/^https?:\/\/([a-z]{2,3}\.|www\.)?linkedin\.com\/in\/[^/?#]+\/?$/i.test(e)?e:null)}catch{_=null}if(!_)return Response.json({error:"That connection could not be found."},{status:400})}let E="string"==typeof s.id&&/^[\w-]{1,64}$/.test(s.id)?s.id:null,T=w||_?{id:E,name:w||S?.name||null}:null,k=u.searches||l.startsWith("auto-bridge")||["bridge","rescrape","company","full","refresh"].includes(l);if(!["install","setup","login"].includes(l)&&(0,v.pendingImport)((0,o.dataDir)()))return Response.json({error:"An import is waiting to finish. Restart Six Degrees first (Settings → Your data), then scan."},{status:409});let C=(0,f.linkedinState)((0,o.dataDir)()).cooldown;if(k&&C)return Response.json({error:`Scanning is paused until ${new Date(C.until).toLocaleString()} — ${C.reason}.`,cooldown:C},{status:409});if(V.running)return Response.json({error:"Something is already running.",action:V.action},{status:409});let N=(0,o.projectRoot)();if(!N)return Response.json({error:"Could not find scripts/scrape.py next to the app."},{status:500});er();let P=(await es()).python;if(V.running)return Response.json({error:"Something is already running.",action:V.action},{status:409});let A=null;if("install"===l||"setup"===l){let e=function(e,t,{root:n,data:o,say:a}){if(t.run)return{status:409,error:"bundled"===t.run.source?"The scanner is already set up: its Python comes with the app.":"The scanner is already set up."};let s=t.base;if("install"===e&&!s)return t.download?{status:409,error:"This computer has no Python the scanner can use. Use Set up the scanner instead."}:{status:500,error:"No Python 3.10 to 3.14 is installed, or none is on this app’s PATH."};if("setup"===e&&s?.source==="system")return{status:409,error:`This computer already has Python ${s.version}, so nothing needs downloading. Use Install instead.`};if("setup"===e&&!s&&!t.download)return{status:409,error:"There is no Python download for this computer. Install Python 3.10 to 3.14, then reload."};let l=i.default.join(n,"scripts","requirements.txt"),u=e=>(function({base:e,dataDir:t,requirements:n}){let r="downloaded"===e.source,i=U(t);return[{cmd:e.path,args:[...r?j:[],"-m","venv","--clear",L(t)],...r?{env:I}:{},note:"Creating the scanner’s own Python environment"},{cmd:i,args:["-m","pip","install","--disable-pip-version-check","--no-input","-r",n],env:H,note:"Installing Playwright, requests and Pillow"},{cmd:i,args:["-c",function(e=D){return`import sys
|
|
17
17
|
try:
|
|
18
18
|
${e}
|
|
19
19
|
except Exception as e:
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[24214,(e,t,n)=>{t.exports={name:"six-degrees",version:"0.4.
|
|
1
|
+
module.exports=[24214,(e,t,n)=>{t.exports={name:"six-degrees",version:"0.4.5",description:"Map your professional network as a galaxy — leverage tiers, bridges into new circles, and the shortest path to anyone. Runs locally on your own data.",license:"MIT",author:"Blake Burford",repository:{type:"git",url:"git+https://github.com/blakeb056/six-degrees.git"},bugs:{url:"https://github.com/blakeb056/six-degrees/issues"},homepage:"https://sixdegreesapp.com/",keywords:["linkedin","network","graph","visualization","d3","local-first","networking","career"],engines:{node:">=22.13"},os:["darwin","linux"],private:!1,bin:{"six-degrees":"bin/six-degrees.mjs"},files:["bin/",".next/standalone/",".next/static/","public/","db/","lib/","scripts/scrape.py","scripts/image_store.py","scripts/requirements.txt","README.md","LICENSE","CHANGELOG.md","SECURITY.md","scripts/check-node.mjs","scripts/audit-avatars.mjs","scripts/check-stale-server.mjs","scripts/update.mjs"],scripts:{dev:"NEXT_TELEMETRY_DISABLED=1 SIX_DEGREES_BIND=127.0.0.1 next dev -H 127.0.0.1",predev:"node scripts/check-node.mjs && node scripts/check-stale-server.mjs",fresh:"node scripts/check-node.mjs && node scripts/sandbox.mjs",build:"NEXT_TELEMETRY_DISABLED=1 next build && node scripts/prepare-standalone.mjs",prebuild:"node scripts/check-node.mjs",start:"NEXT_TELEMETRY_DISABLED=1 SIX_DEGREES_BIND=127.0.0.1 next start -H 127.0.0.1",lint:"eslint",test:"node --test tests/*.test.mjs","gen:demo":"node scripts/gen-synthetic.mjs",prepack:"npm run build","start:packaged":"node bin/six-degrees.mjs",scrape:"python3 scripts/scrape.py","scrape:login":"python3 scripts/scrape.py --login","scrape:server":"python3 scripts/scrape.py --server","setup:python":"python3 -m pip install -r scripts/requirements.txt","scrape:full":"python3 scripts/scrape.py --full","scrape:refresh":"python3 scripts/scrape.py --refresh","audit:avatars":"node scripts/audit-avatars.mjs","build:app":"node scripts/build-app.mjs","build:desktop":"node scripts/build-app.mjs --shell=electron",desktop:"electron desktop",update:"node scripts/update.mjs"},devDependencies:{"@electron/packager":"20.3.0",d3:"^7.9.0",electron:"44.4.5",eslint:"^9","eslint-config-next":"16.3.6",next:"16.3.6",react:"19.2.4","react-dom":"19.2.4"}}},34091,e=>{"use strict";var t=e.i(74533),n=e.i(2157),r=e.i(10960),a=e.i(60526),s=e.i(50227),i=e.i(12506),o=e.i(98199),l=e.i(66680),c=e.i(12714),u=e.i(1348);let d="/usr/bin/hdiutil",p="six-degrees-update",h=new Set(["checking","downloading","verifying","preparing","restarting"]),f=new Set(["checking","downloading","verifying","preparing"]);class m extends Error{constructor(e,t=null){super(e),this.code=t}}let g="cancelled";function w({home:e=a.default.homedir(),tmp:t=a.default.tmpdir()}={}){let n=s.default.join(e,"Library","Caches","Six Degrees");return{cacheDir:n,statusFile:s.default.join(n,"last-update.json"),confirmFile:s.default.join(n,"update-confirmed.json"),logFile:s.default.join(t,"six-degrees-update.log")}}function y(e){try{let t=JSON.parse(n.default.readFileSync(e,"utf8"));return t&&"object"==typeof t&&!Array.isArray(t)?t:null}catch{return null}}function b(e,t){n.default.mkdirSync(s.default.dirname(e),{recursive:!0});let r=`${e}.${process.pid}.tmp`;n.default.writeFileSync(r,`${JSON.stringify(t)}
|
|
2
2
|
`),n.default.renameSync(r,e)}function v(){let e=(e,n)=>{try{return(0,t.execFileSync)(e,n,{timeout:5e3,stdio:["ignore","pipe","ignore"]}).toString().trim()}catch{return""}};return{chip:(0,o.chipOf)({sysctlArm64:e("/usr/sbin/sysctl",["-n","hw.optional.arm64"]),processArch:process.arch}),macosVersion:e("/usr/bin/sw_vers",["-productVersion"])}}let S=Symbol.for("six-degrees.update-job");function R(){return globalThis[S]||(globalThis[S]={job:null}),globalThis[S]}function j(e){if(!e)return null;let{id:t,phase:n,version:r,notes:a,received:s,total:i,error:o,code:l,startedAt:c,endedAt:u}=e;return{id:t,phase:n,version:r,notes:a,received:s,total:i,error:o,code:l,startedAt:c,endedAt:u}}function x(){return j(R().job)}function T(e,n,{signal:r,timeoutMs:a=12e4}={}){return new Promise((s,i)=>{(0,t.execFile)(e,n,{signal:r,timeout:a,maxBuffer:8388608},(e,t,n)=>{if(e){e.detail=String(n||"").trim().split("\n").filter(Boolean).slice(-2).join(" ")||e.message,i(e);return}s(String(t))})})}let E=e=>Math.max(1,Math.round(e/1048576));function k(e,t,r){let a;try{let t=n.default.statfsSync(e);a=t.bavail*t.bsize}catch{return}if(a<t)throw new m(`There isn't enough free space ${r}: the update needs about ${E(t)} MB, and ${E(a)} MB is free.`)}async function A(e,t,n,r,a){return t.fetchImpl(e,{headers:{Accept:a,"User-Agent":p},signal:AbortSignal.any([n,AbortSignal.timeout(r)]),cache:"no-store",redirect:"follow"})}async function C(e,t,{job:n,c:r,signal:a,expectedSize:s}){let i=new AbortController,o=AbortSignal.any([a,i.signal]),u=null,d=()=>{clearTimeout(u),u=setTimeout(()=>i.abort(new m(`The download stopped for ${Math.round(r.idleMs/1e3)} seconds. Check your connection and try again.`)),r.idleMs)};d();let h=await c.default.open(t,"w"),f=(0,l.createHash)("sha256"),g=0;try{let t=await r.fetchImpl(e,{headers:{Accept:"application/octet-stream","User-Agent":p},signal:o,cache:"no-store",redirect:"follow"});if(!t.ok||!t.body)throw new m(`GitHub answered ${t.status} to the download. Try again later.`);let a=Number(t.headers.get("content-length"))||null;if(s&&a&&a!==s)throw new m("The download is not the size GitHub listed for it, so it was stopped.");let i=a||s||null;n.total=i;let l=i||r.maxBytes;for await(let e of t.body){if(d(),(g+=e.byteLength)>l)throw new m("The download is bigger than GitHub said it would be, so it was stopped.");f.update(e);let t=0;for(;t<e.byteLength;){let{bytesWritten:n}=await h.write(e,t,e.byteLength-t);t+=n}n.received=g}if(i&&g!==i)throw new m("The download ended early. Try again.");return f.digest("hex")}catch(e){if(o.aborted&&o.reason instanceof Error)throw o.reason;throw e}finally{clearTimeout(u),await h.close()}}async function $(e,t,n){let r;await c.default.mkdir(t.point,{recursive:!0});try{r=await T(d,["attach",e,"-nobrowse","-readonly","-noautoopen","-mountpoint",t.point,"-plist"],{signal:n,timeoutMs:18e4})}catch(e){if(n.aborted)throw e;throw new m(`The disk image wouldn't open (${e.detail}).`)}t.device=[...r.matchAll(/<key>dev-entry<\/key>\s*<string>([^<]+)<\/string>/g)].map(e=>e[1]).find(e=>/^\/dev\/disk\d+$/.test(e))||null}function D(e){try{return n.default.statSync(e).dev!==n.default.statSync(s.default.dirname(e)).dev}catch{return!1}}async function M({point:e,device:t},r){let a=[[],[],["-force"],["-force"],["-force"]],s=null;for(let i=0;i<a.length;i++){let o=D(e);if(!o&&(!t||!n.default.existsSync(t)))return;try{await T(d,["detach",o?e:t,...a[i]],{timeoutMs:6e4});return}catch(e){s=e,await r(1e3*(i+1))}}if(D(e)||t&&n.default.existsSync(t))throw s}async function N(e){for(let t of(await c.default.readdir(e,{recursive:!0,withFileTypes:!0}))){if(!t.isSymbolicLink())continue;let n=s.default.join(t.parentPath??t.path,t.name),r=await c.default.readlink(n),a=s.default.resolve(s.default.dirname(n),r);if(s.default.isAbsolute(r)||a!==e&&!a.startsWith(e+s.default.sep))return`${s.default.relative(e,n)} → ${r}`}return null}async function _(e,t=4096){let n=await c.default.open(e,"r");try{let e=Buffer.alloc(t),{bytesRead:r}=await n.read(e,0,t,0);return e.subarray(0,r)}finally{await n.close()}}async function B(e,{plan:t,c:n,signal:r,where:a}){let i=await c.default.lstat(e).catch(()=>null);if(!i||!i.isDirectory())throw new m(`The disk image doesn't contain ${o.APP_BUNDLE_NAME}.`);try{await T("/usr/bin/codesign",["--verify","--deep","--strict",e],{signal:r,timeoutMs:3e5})}catch(e){if(r.aborted)throw e;throw new m(`The new version's signature doesn't check out ${a} (${e.detail}), so it wasn't used.`)}let l=s.default.join(e,"Contents","Info.plist"),u=e=>T("/usr/bin/plutil",["-extract",e,"raw","-o","-",l],{signal:r,timeoutMs:15e3}).then(e=>e.trim()).catch(()=>""),[d,p,h,f]=await Promise.all([u("CFBundleIdentifier"),u("CFBundleShortVersionString"),u("LSMinimumSystemVersion"),u("CFBundleExecutable")]);if(d!==n.bundleId)throw new m(`The download isn't Six Degrees (it calls itself ${d||"nothing"}), so it wasn't used.`);if(p!==t.version)throw new m(`The download says it is version ${p||"(none)"}, not ${t.version}, so it wasn't used.`);if(h&&n.macosVersion&&!(0,o.versionAtLeast)(n.macosVersion,h))throw new m(`Version ${t.version} needs macOS ${h} or later, and this Mac has ${n.macosVersion}.`);for(let t of[f&&!f.includes("/")?s.default.join(e,"Contents","MacOS",f):null,s.default.join(e,"Contents","Resources","node")].filter(Boolean)){let e=(0,o.machoArchs)(await _(t).catch(()=>null));if(e.size){if(!e.has(n.chip))throw new m(`The download is built for ${[...e].map(e=>o.CHIP_LABEL[e]||e).join(" and ")} Macs, not this one, so it wasn't used.`);break}}let g=await N(e);if(g)throw new m(`The new version has a link that points outside it (${g}), so it wasn't used.`)}function F(){return{PATH:"/usr/bin:/bin:/usr/sbin:/sbin",HOME:a.default.homedir(),TMPDIR:a.default.tmpdir(),LANG:"en_US.UTF-8",LC_ALL:"en_US.UTF-8",...process.env.USER?{USER:process.env.USER,LOGNAME:process.env.USER}:{}}}let I=(...e)=>(globalThis.fetch?._nextOriginalFetch||globalThis.fetch)(...e),O={bundleId:o.BUNDLE_ID,apiBase:o.GITHUB.apiBase,downloadBase:o.GITHUB.downloadBase,idleMs:3e4,maxBytes:0x40000000,waitSeconds:30,confirmWaitSeconds:600,settleMs:400,scanRunning:()=>null,othersRunning:()=>[],launch:function({helper:e,args:r,cwd:a,logFile:s}){let i=F(),o=n.default.openSync(s,"w");try{let n=(0,t.spawn)("/bin/bash",[e,...r],{cwd:a,env:i,detached:!0,stdio:["ignore",o,o]});return new Promise((e,t)=>{n.once("error",t),n.once("spawn",()=>{n.unref(),e(n)})})}finally{n.default.closeSync(o)}},exit:function(){setTimeout(()=>process.exit(o.UPDATE_HANDOFF_EXIT_CODE),1200)},sleep:e=>new Promise(t=>setTimeout(t,e))};function P(e){if(e.othersRunning().length)throw new m("Another user of this Mac has Six Degrees open, so it can't be replaced now. Try again once they have quit it.")}async function H(e,r){let a={fetchImpl:I,...O,...r},{signal:i}=e.ctrl,l=null,p=null,h=null,f=!1,w=()=>{if(!f){if(p&&D(p.point))try{(0,t.execFileSync)(d,["detach",p.point,"-force"],{stdio:"ignore",timeout:15e3})}catch{}for(let e of[h,l])if(e)try{n.default.rmSync(e,{recursive:!0,force:!0})}catch{}}};process.once("exit",w);try{let t,r,d,g=await A(`${a.apiBase}/repos/${a.slug}/releases/latest`,a,i,15e3,"application/vnd.github+json");if(404===g.status)throw new m("No release has been published yet.");if(!g.ok)throw new m(`GitHub answered ${g.status}. Try again in a moment.`);let{plan:w,refusal:y}=(0,o.planFromRelease)(await g.json(),{currentVersion:a.currentVersion,chip:a.chip,slug:a.slug,downloadBase:a.downloadBase});if(y)throw new m(y.message);if(a.expectVersion&&w.version!==a.expectVersion)throw new m(`Version ${w.version} has come out since you checked, and you were offered ${a.expectVersion}. Check again, then install.`,"stale-check");r={version:w.version,notes:w.notes,total:w.dmg.size},Object.assign(e,r),P(a),l=await c.default.mkdtemp(s.default.join(a.tmpRoot,"six-degrees-update-")),k(a.tmpRoot,(w.dmg.size||0x20000000)+0x4000000,"for the download"),Object.assign(e,{phase:"downloading"});let v=await A(w.sums.url,a,i,3e4,"text/plain, application/octet-stream");if(!v.ok)throw new m(`GitHub answered ${v.status} for the checksum file. Try again later.`);let S=()=>new m("The checksum file is not what was expected, so nothing was downloaded.");if(Number(v.headers.get("content-length"))>65536)throw S();let R=await v.text();if(R.length>65536)throw S();let j=(0,o.parseSha256Sums)(R).get(w.dmg.name);if(!j)throw new m(`The checksum file doesn't list ${w.dmg.name}, so its download can't be checked.`);let x=s.default.join(l,w.dmg.name),E=await C(w.dmg.url,`${x}.part`,{job:e,c:a,signal:i,expectedSize:w.dmg.size});if(d={phase:"verifying"},Object.assign(e,d),!(0,o.digestsMatch)(j,E))throw new m("The download doesn't match the checksum published with it, so it wasn't used. Try again later.");await c.default.rename(`${x}.part`,x),Object.assign(e,{phase:"preparing"}),p={point:s.default.join(l,"mnt"),device:null},await $(x,p,i);let D=s.default.join(p.point,o.APP_BUNDLE_NAME);await B(D,{plan:w,c:a,signal:i,where:"in the disk image"});let N=Number.parseInt(await T("/usr/bin/du",["-sk",D],{signal:i,timeoutMs:12e4}),10)||0;k(s.default.dirname(a.bundle),1024*N+0x4000000,`in ${s.default.dirname(a.bundle)}`),h=(0,o.stagingPath)(a.bundle),await c.default.rm(h,{recursive:!0,force:!0});try{await T("/usr/bin/ditto",[D,h],{signal:i,timeoutMs:9e5})}catch(e){if(i.aborted)throw e;throw new m(`Could not copy the new version into ${s.default.dirname(a.bundle)} (${e.detail}).`)}if(await B(h,{plan:w,c:a,signal:i,where:"after copying"}),await T("/usr/bin/xattr",["-dr","com.apple.quarantine",h],{signal:i}).catch(()=>{}),await M(p,a.sleep),p=null,await c.default.rm(x,{force:!0}),i.aborted)throw i.reason;let _=await a.scanRunning();if(_)throw new m(`${(0,u.runningNow)(_)}, so the update was not applied. Try again when it has finished.`);if(P(a),i.aborted)throw i.reason;Object.assign(e,{phase:"restarting"});let F=s.default.join(l,"apply-update.sh");await c.default.copyFile(a.helper,F);let I=(0,o.helperArgs)({target:a.bundle,staged:h,keepDir:a.cacheDir,statusFile:a.statusFile,from:a.currentVersion,to:w.version,pids:a.pids||[process.ppid,process.pid],waitSeconds:a.waitSeconds,logFile:a.logFile,work:l,confirmFile:a.confirmFile,confirmWaitSeconds:a.confirmWaitSeconds,relaunch:(0,o.relaunchArgs)({dataDir:a.dataDir})}),O={outcome:"started",from:a.currentVersion,to:w.version,at:new Date().toISOString(),log:a.logFile};try{b(a.statusFile,O)}catch{}try{t=await a.launch({helper:F,args:I,cwd:a.tmpRoot,logFile:a.logFile}),await a.sleep(a.settleMs)}catch(e){throw n.default.rmSync(a.statusFile,{force:!0}),new m(`The update helper wouldn't start (${e.message}).`)}if(t&&(null!==t.exitCode||null!==t.signalCode)){n.default.rmSync(a.statusFile,{force:!0});let e=function(e){try{return n.default.readFileSync(e,"utf8").trim().split("\n").slice(-2).join(" ").replace(/^\S+ \S+ {2}/,"")}catch{return""}}(a.logFile);throw new m(`The update helper stopped before the app closed${e?` (${e})`:""}.`)}f=!0,a.exit()}catch(n){let t=i.aborted&&i.reason instanceof m&&i.reason.message===g;Object.assign(e,{phase:t?"cancelled":"failed",error:t?null:n instanceof m?n.message:n?.name==="TimeoutError"?"GitHub didn't answer in time. Try again in a moment.":n instanceof TypeError&&/fetch failed/i.test(n.message)?`Could not reach GitHub (${n.cause?.code||n.cause?.message||"no connection"}). Check your connection and try again.`:`The update stopped: ${n?.detail||n?.message||n}.`,code:!t&&n instanceof m?n.code:null})}finally{p&&await M(p,a.sleep).catch(()=>{}),!f&&(h&&await c.default.rm(h,{recursive:!0,force:!0}).catch(()=>{}),l&&await c.default.rm(l,{recursive:!0,force:!0}).catch(()=>{})),process.removeListener("exit",w),Object.assign(e,{endedAt:new Date().toISOString()})}}var U=e.i(24214);let L=null;function G(e,n){return new Promise(r=>{let a,s="",i="";try{a=(0,t.spawn)("git",e,{cwd:n})}catch(e){return r({code:-1,out:"",err:e.message})}let o=setTimeout(()=>{try{a.kill()}catch{}},6e4);a.stdout.on("data",e=>{s+=e.toString()}),a.stderr.on("data",e=>{i+=e.toString()}),a.on("error",e=>{clearTimeout(o),r({code:-1,out:s,err:e.message})}),a.on("close",e=>{clearTimeout(o),r({code:e,out:s.trim(),raw:s,err:i.trim()})})})}async function V(e){let[t,n,r,a]=await Promise.all([G(["rev-parse","--short","HEAD"],e),G(["log","-1","--pretty=%s"],e),G(["status","--porcelain"],e),G(["rev-parse","--abbrev-ref","HEAD"],e)]),s=(r.raw||"").split("\n").filter(e=>e.length>3).map(e=>e.slice(3).trim()).filter(Boolean),i=s.length>0&&s.every(e=>"package-lock.json"===e);return{sha:t.out,subject:n.out,branch:a.out,dirty:s,onlyLockfile:i}}function q(){let e=(0,r.dataDir)();return s.default.resolve(e)===s.default.join((0,a.homedir)(),".six-degrees")?null:e}function z(e){let t=(0,i.repoSlug)(U.default.repository),n=(0,i.installKind)(process.env,e||""),r={supported:!1,installed:!0,kind:n,version:U.default.version,slug:t,command:t?(0,i.updateCommand)(n,t,{dataDir:q()}):null};if("mac-app"===n){let e=w();!function({statusFile:e,confirmFile:t},n){let r=y(e);if(r&&"started"===r.outcome&&r.to===n&&y(t)?.version!==n)try{b(t,{version:n,pid:process.pid,at:new Date().toISOString()})}catch{return!1}}(e,U.default.version),r.lastUpdate=(0,o.lastUpdateReport)(y(e.statusFile),{runningVersion:U.default.version}),r.job=x()}let a=(0,o.releaseSource)(process.env);return a.test&&(r.testReleases=a.apiBase),r}async function K(e,t){let n=await fetch(`${t}/repos/${e}/releases/latest`,{headers:{Accept:"application/vnd.github+json","User-Agent":"six-degrees-update-check"},signal:AbortSignal.timeout(1e4),cache:"no-store"});if(404===n.status)return null;if(!n.ok)throw Error(`GitHub answered ${n.status}`);let r=await n.json();return{version:String(r.tag_name||"").replace(/^v/i,""),url:r.html_url||null,release:r}}function X(e){return{refusal:{code:"not-mac",message:"Installing an update from here works only in the Mac app."}}}function W(e,t){let r=!0;try{(0,n.accessSync)("/Applications",n.constants.W_OK)}catch{r=!1}return(0,o.terminalFallback)({bundle:e,refusalCode:t?.code||null,installsTo:(0,o.installerTarget)({applicationsWritable:r,home:(0,a.homedir)()}),dataDir:q()})}function Y(e){let r;if(!(!e||(r=R().job)&&h.has(r.phase)))try{!function({bundle:e,cacheDir:r,tmpRoot:a,statusFile:i,now:l=Date.now(),isAlive:c=function(e){try{return process.kill(e,0),!0}catch(e){return"EPERM"===e.code}},asideAgeMs:u=6e5}={}){let p=[],h=e=>l-Math.max(e.mtimeMs,e.ctimeMs),f=e=>{try{return n.default.lstatSync(e)}catch{return null}},m=e=>{try{return n.default.readdirSync(e)}catch{return[]}},g=e=>{try{n.default.rmSync(e,{recursive:!0,force:!0}),p.push(e)}catch{}},w=i?y(i):null,b=w?.outcome==="failed"&&"string"==typeof w.previous?s.default.resolve(w.previous):null;if(e){let t=s.default.dirname(e);for(let{name:n,kind:r,pid:a}of(0,o.leftoversBeside)(m(t),s.default.basename(e))){let e=s.default.join(t,n),i=f(e);i&&e!==b&&("incoming"===r?h(i)>36e5&&g(e):!c(a)&&h(i)>u&&g(e))}}if(r)for(let e of m(r)){if(!/^\.previous-[A-Za-z0-9]{6}$/.test(e)&&!/\.zip\.part$/.test(e)&&!/^(last-update|update-confirmed)\.json\.\d+\.tmp$/.test(e))continue;let t=s.default.join(r,e),n=f(t);n&&h(n)>36e5&&g(t)}if(a)for(let e of m(a)){if(!/^six-degrees-update-[A-Za-z0-9]{6}$/.test(e))continue;let n=s.default.join(a,e),r=f(n);if(!r||!r.isDirectory()||36e5>=h(r))continue;let i=s.default.join(n,"mnt");if(D(i)){try{(0,t.execFileSync)(d,["detach",i,"-force"],{stdio:"ignore",timeout:3e4})}catch{}if(D(i))continue}g(n)}}({bundle:e,tmpRoot:(0,a.tmpdir)(),...w()})}catch{}}async function J(e,c){var d;let p=z(c),y=(0,o.releaseSource)(process.env);if("update-status"===e)return Response.json({job:x()});if("cancel-install"===e){let e;return Response.json({job:((e=R().job)&&f.has(e.phase)&&e.ctrl.abort(new m(g)),j(e))})}if("check-release"===e){if(!p.slug)return Response.json({error:"This copy does not say where it was published."},{status:400});let e="mac-app"===p.kind?X(c):null;e&&Y(e.bundle);try{let t=await K(p.slug,y.apiBase),n=!!(t&&(0,i.compareVersions)(t.version,p.version)>0),r=null,a=null;if(n&&e){let n=e.refusal?null:(0,o.planFromRelease)(t.release,{currentVersion:p.version,chip:v().chip,slug:p.slug,downloadBase:y.downloadBase}),s=e.refusal||n?.refusal||null;r=s?{possible:!1,reason:s.message,code:s.code}:{possible:!0,size:n.plan.dmg.size},a=W(e.bundle,e.refusal)}return e&&(d=n?t.version:null,R().checked=d?String(d):null),Response.json({...p,latest:t&&{version:t.version,url:t.url},newer:n,install:r,fallback:a})}catch(e){return Response.json({error:`Could not reach GitHub (${e.message}). Try again in a moment.`},{status:502})}}if("install-release"===e){let e;if("mac-app"!==p.kind)return Response.json({error:"Only the Mac app can install an update itself. Use the line below instead.",command:p.command},{status:400});if(!p.slug)return Response.json({error:"This copy does not say where it was published."},{status:400});let{bundle:i,refusal:d}=X(c),f=W(i,d);if(d)return Response.json({error:d.message,refusal:d.code,fallback:f,command:p.command},{status:409});let m=(0,u.busyRefusal)("Let it finish or stop it, then install the update.");if(m)return Response.json({error:m,fallback:f,command:p.command},{status:409});let g=R().checked||null;if(!g)return Response.json({error:"Check for updates first, then install.",refusal:"not-checked",fallback:f,command:p.command},{status:409});Y(i);let b=v(),S=function(e){let t=R();if(t.job&&h.has(t.job.phase))return{error:"An update is already in progress.",job:j(t.job)};let n={id:(0,l.randomUUID)(),phase:"checking",version:null,notes:null,received:0,total:null,error:null,code:null,startedAt:new Date().toISOString(),endedAt:null,ctrl:new AbortController};t.job=n;let r=H(n,e);return{job:j(n),done:r}}({slug:p.slug,currentVersion:p.version,expectVersion:g,chip:b.chip,macosVersion:b.macosVersion,bundle:i,dataDir:(0,r.dataDir)(),helper:(e=c?s.default.join(c,"scripts","apply-update.sh"):null)&&(0,n.existsSync)(e)?e:null,tmpRoot:(0,a.tmpdir)(),...w(),apiBase:y.apiBase,downloadBase:y.downloadBase,scanRunning:u.scannerJob,othersRunning:()=>(function(e){if(!e||"function"!=typeof process.getuid)return[];let r="";try{r=(0,t.execFileSync)("/bin/ps",["-axo","uid=,pid=,comm="],{timeout:1e4,maxBuffer:0x1000000,stdio:["ignore","pipe","ignore"],env:F()}).toString()}catch{return[]}let a=e;try{a=n.default.realpathSync(e)}catch{}return(0,o.foreignAppProcesses)(r,{bundles:[e,a],uid:process.getuid()})})(i)});return S.error?Response.json({error:S.error,job:S.job},{status:409}):Response.json({job:S.job},{status:202})}return Response.json({error:"Not a git checkout."},{status:400})}async function Z(){let e=(0,r.projectRoot)();if(!(0,r.isGitCheckout)())return Response.json(z(e));let n=await V(e),a=function(e){if(null===L)try{L=(0,t.execFileSync)("git",["rev-parse","--short","HEAD"],{cwd:e}).toString().trim()}catch{L=""}return L}(e);return Response.json({supported:!0,...n,bootSha:a,restartNeeded:!!(a&&n.sha&&a!==n.sha)})}async function Q(e){let t=(0,r.projectRoot)(),n={};try{n=await e.json()}catch{}let a=String(n.action||"");if(!(0,r.isGitCheckout)())return J(a,t);if("check"===a){let e=await G(["fetch","--quiet","origin"],t);if(0!==e.code)return Response.json({error:`Could not reach GitHub: ${e.err.slice(0,200)}`},{status:502});let n=await V(t),r=`origin/${n.branch||"main"}`,[a,s]=await Promise.all([G(["rev-list","--count",`HEAD..${r}`],t),G(["log","--pretty=%h %s",`HEAD..${r}`],t)]),i=Number(a.out||0);return Response.json({...n,behind:Number.isFinite(i)?i:0,commits:(s.out||"").split("\n").filter(Boolean).slice(0,25)})}if("pull"===a){let e=await V(t);if(e.dirty.length&&!e.onlyLockfile)return Response.json({error:"There are local changes here, so nothing was updated.",dirty:e.dirty},{status:409});e.onlyLockfile&&await G(["checkout","--","package-lock.json"],t);let n=await G(["pull","--ff-only"],t);if(0!==n.code)return Response.json({error:n.err.slice(0,400)||"The update could not be applied automatically."},{status:409});let r=await V(t),a=/package(-lock)?\.json/.test(n.out);return Response.json({ok:!0,output:n.out.split("\n").slice(-40).join("\n"),sha:r.sha,subject:r.subject,needsRestart:a})}return Response.json({error:`Unknown action '${a}'`},{status:400})}e.s(["GET",0,Z,"POST",0,Q],34091)},81067,e=>{"use strict";var t=e.i(47909),n=e.i(74017),r=e.i(96250),a=e.i(59756),s=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),c=e.i(87718),u=e.i(95169),d=e.i(47587),p=e.i(66012),h=e.i(70101),f=e.i(26937),m=e.i(10372),g=e.i(93695);e.i(52474);var w=e.i(220);let y=new t.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/update/route",pathname:"/api/update",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/update/route.js",nextConfigOutput:"standalone",userland:()=>e.r(34091),...{}}),{workAsyncStorage:b,workUnitAsyncStorage:v,serverHooks:S}=y;async function R(e,t,r){r.requestMeta&&(0,a.setRequestMeta)(e,r.requestMeta),y.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let b="/api/update/route";b=b.replace(/\/index$/,"")||"/";let v=await y.prepare(e,t,{srcPage:b,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:S,deploymentId:R,params:j,nextConfig:x,parsedUrl:T,isDraftMode:E,prerenderManifest:k,routerServerContext:A,isOnDemandRevalidate:C,revalidateOnlyGenerated:$,resolvedPathname:D,clientReferenceManifest:M,serverActionsManifest:N}=v,_=(0,o.normalizeAppPath)(b),B=!!(k.dynamicRoutes[_]||k.routes[D]),F=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,T,!1):t.end("This page could not be found"),null);if(B&&!E){let e=!!k.routes[D],t=k.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(x.adapterPath)return await F();throw new g.NoFallbackError}}let I=null;!B||y.isDev||E||(I="/index"===(I=D)?"/":I);let O=!0===y.isDev||!B,P=B&&!O;N&&M&&(0,i.setManifestsSingleton)({page:b,clientReferenceManifest:M,serverActionsManifest:N});let H=e.method||"GET",U=(0,s.getTracer)(),L=U.getActiveScopeSpan(),G=!!(null==A?void 0:A.isWrappedByNextServer),V=!!(0,a.getRequestMeta)(e,"minimalMode"),q=(0,a.getRequestMeta)(e,"incrementalCache")||await y.getIncrementalCache(e,x,k,V);null==q||q.resetRequestCache(),globalThis.__incrementalCache=q;let z={params:j,previewProps:k.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts,useCacheTimeout:x.experimental.useCacheTimeout},cacheComponents:!!x.cacheComponents,validationLevel:x.experimental.instantInsights.validationLevel,supportsDynamicResponse:O,incrementalCache:q,hmrRefreshHash:(0,a.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:x.cacheLife,staticPageGenerationTimeout:x.staticPageGenerationTimeout,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,r,a)=>y.onRequestError(e,t,r,a,A)},sharedContext:{buildId:S,deploymentId:R}},K=new l.NodeNextRequest(e),X=new l.NodeNextResponse(t),W=c.NextRequestAdapter.fromNodeNextRequest(K,(0,c.signalFromNodeResponse)(t)),Y=async({previousCacheEntry:n})=>{try{if(!V&&C&&$&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await y.handle(W,z);e.fetchMetrics=z.renderOpts.fetchMetrics;let s=z.renderOpts.pendingWaitUntil;s&&r.waitUntil&&(r.waitUntil(s),s=void 0);let i=z.renderOpts.collectedTags;if(!B)return await (0,p.sendResponse)(K,X,a,s),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);i&&(t[m.NEXT_CACHE_TAGS_HEADER]=i),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,r=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=m.INFINITE_CACHE?!1!==n&&n>0?x.expireTime:void 0:z.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:r}}}}catch(t){throw(null==n?void 0:n.isStale)&&await y.onRequestError(e,t,{routerKind:"App Router",routePath:b,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:C})},!1,A),t}},J=async(a,i)=>{try{var o,l;let a=await y.handleResponse({req:e,nextConfig:x,cacheKey:I,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:k,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:$,responseGenerator:Y,waitUntil:r.waitUntil,isMinimalMode:V});if(!B)return;if((null==a||null==(o=a.value)?void 0:o.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==a||null==(l=a.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});V||t.setHeader("x-nextjs-cache",C?"REVALIDATED":a.isMiss?"MISS":a.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let s=(0,h.fromNodeOutgoingHttpHeaders)(a.value.headers);V&&B||s.delete(m.NEXT_CACHE_TAGS_HEADER),!a.cacheControl||t.getHeader("Cache-Control")||s.get("Cache-Control")||s.set("Cache-Control",(0,f.getCacheControlHeader)(a.cacheControl)),await (0,p.sendResponse)(K,X,new Response(a.value.body,{headers:s,status:a.value.status||200}));return}catch(t){if(t instanceof g.NoFallbackError||await y.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:C})},!1,A),B)throw t;await (0,p.sendResponse)(K,X,new Response(null,{status:500}));return}finally{(()=>{if(!a)return;let e=t.statusCode;a.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(a.setStatus({code:s.SpanStatusCode.ERROR}),a.setAttribute("error.type",e.toString()));let n=U.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==u.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=n.get("next.route")||_,o=`${H} ${r}`;a.setAttributes({"next.route":r,"http.route":r,"next.span_name":o}),a.updateName(o),i&&i!==a&&(i.setAttribute("http.route",r),i.updateName(o))})()}};if(G&&L)await J(L,void 0);else{let t=U.getActiveScopeSpan();await U.withPropagatedContext(e.headers,()=>U.trace(u.BaseServerSpan.handleRequest,{spanName:`${H} ${b}`,kind:s.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},e=>J(e,t)),void 0,!G)}}e.s(["handler",0,R,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:v})},"routeModule",0,y,"serverHooks",0,S,"workAsyncStorage",0,b,"workUnitAsyncStorage",0,v])}];
|
|
3
3
|
|
|
4
4
|
//# sourceMappingURL=_1itd1o_._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[52224,e=>{"use strict";var t=e.i(2157),r=e.i(50227),a=e.i(88431),n=e.i(88602);function s(){let e=(0,n.resolveProfile)({create:!1});return e?.id&&/^[\w-]+$/.test(String(e.id))?r.default.join((0,a.dataDir)(),`social-${e.id}.json`):null}async function o(){let e=s();if(!e)return Response.json({social:null});try{return Response.json({social:JSON.parse((0,t.readFileSync)(e,"utf8"))})}catch{return Response.json({social:null})}}async function i(e){let r,a=s();if(!a)return Response.json({error:"Pick a profile first."},{status:400});try{r=await e.json()}catch{return Response.json({error:"That isn’t readable."},{status:400})}let n={};try{n=JSON.parse((0,t.readFileSync)(a,"utf8"))||{}}catch{}let o={live:n.live||{},liveAt:n.liveAt||null,autoSync:!0===n.autoSync,importedAt:new Date().toISOString(),asOf:Number(r?.asOf)||null,people:r?.people&&"object"==typeof r.people?r.people:{},chapters:Array.isArray(r?.chapters)?r.chapters:[],posts:r?.posts&&"object"==typeof r.posts?r.posts:null,invites:r?.invites&&"object"==typeof r.invites?r.invites:null,emails:r?.emails===!0};for(let e of Object.values(o.people))if(e&&"object"==typeof e){for(let t of Object.keys(e))["last","lastFromThem","total","recent","email"].includes(t)||delete e[t];o.emails||delete e.email}let i=`${a}.${process.pid}.tmp`;return(0,t.writeFileSync)(i,JSON.stringify(o)),(0,t.renameSync)(i,a),Response.json({ok:!0,people:Object.keys(o.people).length})}async function l(e){let r,a=s();if(!a)return Response.json({error:"Pick a profile first."},{status:400});try{r=await e.json()}catch{return Response.json({error:"That isn’t readable."},{status:400})}let n={};try{n=JSON.parse((0,t.readFileSync)(a,"utf8"))||{}}catch{}let o={};for(let[e,t]of Object.entries(r?.live||{}))"string"==typeof e&&e.includes("/in/")&&t&&"object"==typeof t&&(o[e]={last:Number(t.last)||null,unread:Number.isFinite(Number(t.unread))?Number(t.unread):null});let i={...n,live:o,liveAt:new Date().toISOString()},l=`${a}.${process.pid}.tmp`;return(0,t.writeFileSync)(l,JSON.stringify(i)),(0,t.renameSync)(l,a),Response.json({ok:!0,people:Object.keys(o).length})}async function u(e){let r=s();if(!r)return Response.json({error:"Pick a profile first."},{status:400});let a={};try{a=await e.json()}catch{}let n={};try{n=JSON.parse((0,t.readFileSync)(r,"utf8"))||{}}catch{}let o={...n,autoSync:a?.autoSync===!0},i=`${r}.${process.pid}.tmp`;return(0,t.writeFileSync)(i,JSON.stringify(o)),(0,t.renameSync)(i,r),Response.json({ok:!0,autoSync:o.autoSync})}async function c(){let e=s();return e&&(0,t.rmSync)(e,{force:!0}),Response.json({ok:!0})}e.s(["DELETE",0,c,"GET",0,o,"PATCH",0,u,"POST",0,i,"PUT",0,l])},1958,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),s=e.i(61916),o=e.i(74677),i=e.i(69741),l=e.i(16795),u=e.i(87718),c=e.i(95169),p=e.i(47587),d=e.i(66012),h=e.i(70101),f=e.i(26937),R=e.i(10372),y=e.i(93695);e.i(52474);var v=e.i(220);let m=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/social/route",pathname:"/api/social",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/social/route.js",nextConfigOutput:"standalone",userland:()=>e.r(52224),...{}}),{workAsyncStorage:S,workUnitAsyncStorage:g,serverHooks:w}=m;async function E(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),m.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let S="/api/social/route";S=S.replace(/\/index$/,"")||"/";let g=await m.prepare(e,t,{srcPage:S,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,deploymentId:E,params:b,nextConfig:C,parsedUrl:A,isDraftMode:O,prerenderManifest:T,routerServerContext:N,isOnDemandRevalidate:j,revalidateOnlyGenerated:x,resolvedPathname:P,clientReferenceManifest:k,serverActionsManifest:_}=g,H=(0,i.normalizeAppPath)(S),q=!!(T.dynamicRoutes[H]||T.routes[P]),I=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,A,!1):t.end("This page could not be found"),null);if(q&&!O){let e=!!T.routes[P],t=T.dynamicRoutes[H];if(t&&!1===t.fallback&&!e){if(C.adapterPath)return await I();throw new y.NoFallbackError}}let D=null;!q||m.isDev||O||(D="/index"===(D=P)?"/":D);let F=!0===m.isDev||!q,M=q&&!F;_&&k&&(0,o.setManifestsSingleton)({page:S,clientReferenceManifest:k,serverActionsManifest:_});let U=e.method||"GET",$=(0,s.getTracer)(),K=$.getActiveScopeSpan(),L=!!(null==N?void 0:N.isWrappedByNextServer),J=!!(0,n.getRequestMeta)(e,"minimalMode"),B=(0,n.getRequestMeta)(e,"incrementalCache")||await m.getIncrementalCache(e,C,T,J);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let G={params:b,previewProps:T.preview,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,supportsDynamicResponse:F,incrementalCache:B,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>m.onRequestError(e,t,a,n,N)},sharedContext:{buildId:w,deploymentId:E}},V=new l.NodeNextRequest(e),X=new l.NodeNextResponse(t),W=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t)),z=async({previousCacheEntry:r})=>{try{if(!J&&j&&x&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await m.handle(W,G);e.fetchMetrics=G.renderOpts.fetchMetrics;let s=G.renderOpts.pendingWaitUntil;s&&a.waitUntil&&(a.waitUntil(s),s=void 0);let o=G.renderOpts.collectedTags;if(!q)return await (0,d.sendResponse)(V,X,n,s),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);o&&(t[R.NEXT_CACHE_TAGS_HEADER]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,a=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=R.INFINITE_CACHE?!1!==r&&r>0?C.expireTime:void 0:G.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await m.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:j})},!1,N),t}},Z=async(n,o)=>{try{var i,l;let n=await m.handleResponse({req:e,nextConfig:C,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:j,revalidateOnlyGenerated:x,responseGenerator:z,waitUntil:a.waitUntil,isMinimalMode:J});if(!q)return;if((null==n||null==(i=n.value)?void 0:i.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(l=n.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});J||t.setHeader("x-nextjs-cache",j?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),O&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let s=(0,h.fromNodeOutgoingHttpHeaders)(n.value.headers);J&&q||s.delete(R.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||s.get("Cache-Control")||s.set("Cache-Control",(0,f.getCacheControlHeader)(n.cacheControl)),await (0,d.sendResponse)(V,X,new Response(n.value.body,{headers:s,status:n.value.status||200}));return}catch(t){if(t instanceof y.NoFallbackError||await m.onRequestError(e,t,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:j})},!1,N),q)throw t;await (0,d.sendResponse)(V,X,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:s.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route")||H,i=`${U} ${a}`;n.setAttributes({"next.route":a,"http.route":a,"next.span_name":i}),n.updateName(i),o&&o!==n&&(o.setAttribute("http.route",a),o.updateName(i))})()}};if(L&&K)await Z(K,void 0);else{let t=$.getActiveScopeSpan();await $.withPropagatedContext(e.headers,()=>$.trace(c.BaseServerSpan.handleRequest,{spanName:`${U} ${S}`,kind:s.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},e=>Z(e,t)),void 0,!L)}}e.s(["handler",0,E,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:g})},"routeModule",0,m,"serverHooks",0,w,"workAsyncStorage",0,S,"workUnitAsyncStorage",0,g])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_1xh07bp._.js.map
|
|
@@ -159,7 +159,7 @@ CREATE TABLE IF NOT EXISTS user_profile (
|
|
|
159
159
|
created_at TEXT DEFAULT (datetime('now')),
|
|
160
160
|
updated_at TEXT DEFAULT (datetime('now'))
|
|
161
161
|
);
|
|
162
|
-
`;e.s(["SCHEMA_SQL",0,a],28681);let o="0.4.
|
|
162
|
+
`;e.s(["SCHEMA_SQL",0,a],28681);let o="0.4.5";e.s(["APP_VERSION",0,o],48170);var s=e.x("node:sqlite",()=>require("node:sqlite"),!0),l=e.i(12714),c=e.i(12506);let u=["/api/admin-delete","/api/admin-update","/api/delete-cluster","/api/setup-profile","/api/scraper","/api/update","/api/data/export","/api/data/import","/api/data/restart","/api/data/reveal"],f=new Set(["127.0.0.1","::1","localhost"]),d=new Set(["127.0.0.1","localhost","[::1]","0.0.0.0"]);function p(e){return f.has(String(e||"").toLowerCase())}function h({method:e,pathname:t,headers:n,env:r={}}){let i=e=>n?.get?.(e)??null,a=r.SIX_DEGREES_BIND||r.HOSTNAME;if(function({bind:e,host:t}){let n;if(!p(e)||!t)return!1;try{n=new URL(`http://${t}`).hostname.toLowerCase()}catch{return!0}return!d.has(n)}({bind:a,host:i("host")}))return{status:421,error:"This app only answers to 127.0.0.1 and localhost."};if(function({method:e,secFetchSite:t,origin:n,host:r}){if(!e||!["POST","PUT","PATCH","DELETE"].includes(e.toUpperCase()))return!1;if(t){if("same-origin"===t||"none"===t)return!1;if("same-site"!==t||!n)return!0}if(n)try{let e=new URL(n).host;return!!r&&e!==r}catch{return!0}return!1}({method:e,secFetchSite:i("sec-fetch-site"),origin:i("origin"),host:i("host")}))return{status:403,error:"Cross-site requests are not accepted. This app only answers to pages it serves."};if(!u.some(e=>t===e||t.startsWith(`${e}/`)))return null;let o=function({bind:e,token:t,bearer:n}){return t&&function(e,t){if("string"!=typeof e||"string"!=typeof t||e.length!==t.length)return!1;let n=0;for(let r=0;r<e.length;r++)n|=e.charCodeAt(r)^t.charCodeAt(r);return 0===n}(n,t)?{allow:!0,reason:"valid admin token"}:p(e)?{allow:!0,reason:"server is bound to loopback; only this machine can connect"}:t?{allow:!1,status:401,reason:"missing or incorrect admin token"}:{allow:!1,status:503,reason:"server is not bound to loopback and no ADMIN_TOKEN is configured"}}({bind:a,token:r.ADMIN_TOKEN,bearer:(i("authorization")||"").replace(/^Bearer\s+/i,"")});return o.allow?null:{status:o.status,error:o.reason}}e.s(["requestRefusal",0,h],54090);var T=e.i(1348);let m=new Set(["ENOENT","EINVAL","ENOTSUP","ENOSYS","EISDIR","EPERM","EBADF"]);function E(e){let t;try{t=n.default.openSync(e,"r")}catch(e){if(m.has(e.code))return;throw e}try{n.default.fsyncSync(t)}catch(e){if(!m.has(e.code))throw e}finally{n.default.closeSync(t)}}function y(e,t){let r=`${e}.${process.pid}.tmp`;try{let i=n.default.openSync(r,"w");try{n.default.writeFileSync(i,t),n.default.fsyncSync(i)}finally{n.default.closeSync(i)}n.default.renameSync(r,e)}catch(e){throw n.default.rmSync(r,{force:!0}),e}E(i.default.dirname(e))}let S=function(e){let t=n.default.openSync(e,"r");try{n.default.fsyncSync(t)}finally{n.default.closeSync(t)}},g=function(e,t){y(e,`${JSON.stringify(t,null,2)}
|
|
163
163
|
`)},w=[25,50,100,200,500],_=[100,250,500,1e3,0],A=[10,25,50,100],N="America/Los_Angeles";function b(e){try{return JSON.parse((0,n.readFileSync)(e,"utf8"))}catch{return null}}function R(e=Date.now()){let t=Object.fromEntries(new Intl.DateTimeFormat("en-US",{timeZone:N,year:"numeric",month:"numeric"}).formatToParts(new Date(e)).map(e=>[e.type,e.value])),n=Number(t.year),r=Number(t.month),i=Date.UTC(n,r-1,1,8);for(let e=0;e<2;e++)i=Date.UTC(n,r-1,1,-function(e){let t=(new Intl.DateTimeFormat("en-US",{timeZone:N,timeZoneName:"shortOffset"}).formatToParts(new Date(e)).find(e=>"timeZoneName"===e.type)?.value||"GMT-8").match(/GMT([+-]\d+)(?::(\d+))?/);return t?Number(t[1]):-8}(i));return i}function I(e){let t,n=b(i.default.join(e,"scan-limits.json"))||{},r=(e,t)=>Number.isInteger(e)&&e>=0?e:t;return{daily:r(n.daily,50),monthly:r(n.monthly,250),profiles:(t=r(n.profiles,0)||50,A.filter(e=>e<=t).pop()??A[0])}}let O="linkedin-activity.json",L="linkedin-cooldown.json",D="scan-limits.json",x=e=>!!e&&"object"==typeof e&&!Array.isArray(e),k=e=>void 0===e||Array.isArray(e)&&e.every(e=>"number"==typeof e&&Number.isFinite(e)&&e>=0),X=e=>"number"==typeof e&&Number.isFinite(e)&&e>=0;function F(e,t){if(!x(t))return"it is not a JSON object";if(e===O){if(!k(t.searches)||!k(t.profiles))return"its record of searches is not a list of times"}else if(e===L){if(!X(t.until))return"its pause has no end time";if(void 0!==t.reason&&"string"!=typeof t.reason)return"its pause has a reason that is not text";if(void 0!==t.set_at&&!X(t.set_at))return"its pause has a start time that is not a time"}else if(e===D){if(void 0!==t.daily&&!w.includes(t.daily))return`its daily limit (${String(t.daily).slice(0,20)}) is not one Six Degrees offers`;if(void 0!==t.monthly&&!_.includes(t.monthly))return`its monthly limit (${String(t.monthly).slice(0,20)}) is not one Six Degrees offers`;if(void 0!==t.profiles&&!A.includes(t.profiles))return`its limit on profile views (${String(t.profiles).slice(0,20)}) is not one Six Degrees offers`}return null}function $(e=[],t=[]){let n=e=>e.reduce((e,t)=>e.set(t,(e.get(t)||0)+1),new Map),r=n(e);for(let[e,i]of n(t))i>(r.get(e)||0)&&r.set(e,i);return[...r].sort((e,t)=>e[0]-t[0]).flatMap(([e,t])=>Array(t).fill(e))}function j(e){if(void 0===e)return[];if(!Array.isArray(e))return null;let t=e.map(Number);return t.every(Number.isFinite)?t:null}let v=e=>{try{return(0,n.lstatSync)(e),!0}catch{return!1}};function U({dir:e,from:t}){let n=t=>i.default.join(e,t),r=e=>{let n=b(i.default.join(t,e));return x(n)&&!F(e,n)?n:null},a=r(O);if(a){let e=v(n(O))?b(n(O)):{},t=x(e)?j(e.searches):null,r=x(e)?j(e.profiles):null;t&&r&&g(n(O),{searches:$(t,a.searches),profiles:$(r,a.profiles)})}let o=r(L);if(o){let e=b(n(L)),t=Number.isFinite(Number(e?.until))?Number(e.until):-1/0;o.until>t&&g(n(L),{until:o.until,reason:o.reason??"LinkedIn pushed back",set_at:o.set_at??null})}let s=r(D);s&&!v(n(D))&&g(n(D),{daily:s.daily??50,monthly:s.monthly??250,profiles:s.profiles??50})}e.s(["budgetFileProblem",0,F,"liftCooldown",0,function(e){try{(0,n.unlinkSync)(i.default.join(e,"linkedin-cooldown.json"))}catch{}},"linkedinState",0,function(e,t=Date.now()){let r=I(e),a=function(e,t=Date.now()){let r=i.default.join(e,"linkedin-activity.json"),a=(0,n.existsSync)(r)?b(r):{searches:[],profiles:[]};if(!a||"object"!=typeof a)return{searchesToday:1/0,searchesMonth:0,profilesToday:1/0,unreadable:!0};let o=(Array.isArray(a.searches)?a.searches:[]).map(Number),s=(Array.isArray(a.profiles)?a.profiles:[]).map(Number),l=t/1e3-86400,c=R(t)/1e3;return{searchesToday:o.filter(e=>e>l).length,searchesMonth:o.filter(e=>e>=c).length,profilesToday:s.filter(e=>e>l).length}}(e,t),o=(e,t)=>e?Math.max(0,e-t):null;return{...a,limits:r,leftToday:o(r.daily,a.searchesToday),leftMonth:o(r.monthly,a.searchesMonth),profilesLeftToday:o(r.profiles,a.profilesToday),monthResets:function(e=Date.now()){let t=R(e);return R(t+3456e6)}(t),cooldown:function(e,t=Date.now()){let n=b(i.default.join(e,"linkedin-cooldown.json")),r=1e3*Number(n?.until);return n&&Number.isFinite(r)&&!(r<=t)?{until:r,reason:String(n.reason||"LinkedIn pushed back"),setAt:1e3*Number(n.set_at)||null}:null}(e,t)}},"mergeBudgetFiles",0,U,"writeLimits",0,function(e,{daily:t,monthly:r,profiles:a}={}){var o;let s,l=I(e),c={daily:w.includes(t)?t:l.daily,monthly:_.includes(r)?r:l.monthly,profiles:A.includes(a)?a:l.profiles};return o=i.default.join(e,"scan-limits.json"),s=`${o}.${process.pid}.${Date.now()}.tmp`,(0,n.writeFileSync)(s,JSON.stringify(c,null,2)),(0,n.renameSync)(s,o),c}],41238);var C=e.i(74533);let M=/^[A-Za-z0-9_-]+\.(webp|jpg|jpeg|png)$/,P="/avatars/";function G(e){return"string"==typeof e&&e.startsWith(P)&&M.test(e.slice(P.length))?e:null}function q(e){return e.prepare(`SELECT DISTINCT profile_url AS profileUrl, profile_image_url AS imageUrl
|
|
164
164
|
FROM linkedin_connections
|
|
165
165
|
WHERE profile_image_url IS NOT NULL AND profile_image_url <> ''
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[9272,a=>{a.v({className:"geist_2ae47f08-module__h69qWW__className",variable:"geist_2ae47f08-module__h69qWW__variable"})},79474,a=>{a.v({className:"geist_mono_eb58308d-module__w_p2Lq__className",variable:"geist_mono_eb58308d-module__w_p2Lq__variable"})},26230,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/components/ScanStatusBar.js from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/components/ScanStatusBar.js","default")},21043,a=>{"use strict";var b=a.i(26230);a.n(b)},88999,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/components/SocialAutoSync.js from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/components/SocialAutoSync.js","default")},25493,a=>{"use strict";var b=a.i(88999);a.n(b)},62925,a=>{"use strict";var b=a.i(7997),c=a.i(9272);let d={className:c.default.className,style:{fontFamily:"'Geist', 'Geist Fallback'",fontStyle:"normal"}};null!=c.default.variable&&(d.variable=c.default.variable);var e=a.i(79474);let f={className:e.default.className,style:{fontFamily:"'Geist Mono', 'Geist Mono Fallback'",fontStyle:"normal"}};null!=e.default.variable&&(f.variable=e.default.variable);var g=a.i(68354),h=a.i(42041),i=a.i(21043),j=a.i(25493);a.s(["default",0,function({children:a}){return(0,b.jsx)("html",{lang:"en",className:`${d.variable} ${f.variable}`,children:(0,b.jsx)("body",{style:{margin:0,padding:0,background:"#0a0a1a"},children:(0,b.jsxs)(g.default,{children:[a,(0,b.jsx)(h.default,{}),(0,b.jsx)(i.default,{}),(0,b.jsx)(j.default,{})]})})})},"metadata",0,{title:"Six Degrees",description:"Maps your LinkedIn network: who you know, who they know, and the shortest path to someone you haven't met. Runs on your own computer; nothing is uploaded.",viewport:"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}],62925)},19325,function(a){a.n(a.i(62925))},61143,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/components/StaleServerBanner.js from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/components/StaleServerBanner.js","default")},42041,a=>{"use strict";var b=a.i(61143);a.n(b)},69067,a=>{"use strict";a.s(["default",()=>c,"useUser",()=>d]);var b=a.i(11857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/components/UserProvider.js from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/components/UserProvider.js","default"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call useUser() from the server but useUser is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/components/UserProvider.js","useUser")},68354,a=>{"use strict";var b=a.i(69067);a.n(b)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__16hs8kw._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},20635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},24725,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},43285,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/dynamic-access-async-storage.external.js",()=>require("next/dist/server/app-render/dynamic-access-async-storage.external.js"))},56704,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},59043,(a,b,c)=>{b.exports=a.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},42602,(a,b,c)=>{"use strict";b.exports=a.r(18622)},9270,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.AppRouterContext},36313,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.HooksClientContext},18341,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.ServerInsertedHtml},35112,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactDOM},87924,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactJsxRuntime},38783,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactServerDOMTurbopackClient},72131,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].React}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__1feicqq._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},26758,a=>{a.v("/_next/static/media/favicon.0zdzw5kurn8m-.ico"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},38872,a=>{"use strict";let b={src:a.i(26758).default,width:48,height:48};a.s(["default",0,b])},53115,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/social/page.js from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/social/page.js","default")},12004,a=>{"use strict";var b=a.i(53115);a.n(b)},62722,function(a){a.n(a.i(12004))},87583,a=>{"use strict";var b=a.i(12948),c=a.i(67436),d=a.i(94331);a.i(70408);let e=(0,b.instrumentModuleGetter)(()=>a.r(38872)),f=(0,b.instrumentModuleGetter)(()=>a.r(19325)),g=(0,b.instrumentModuleGetter)(()=>a.r(43619)),h=(0,b.instrumentModuleGetter)(()=>a.r(13718)),i=(0,b.instrumentModuleGetter)(()=>a.r(18198)),j=(0,b.instrumentModuleGetter)(()=>a.r(62212)),k=["",{children:["social",{children:["__PAGE__",{},{metadata:{},page:[(0,b.instrumentModuleGetter)(()=>a.r(62722)),"[project]/app/social/page.js"]},[]]},{metadata:{}},[]]},{metadata:{icon:[async()=>{let a=(0,d.interopDefault)(await e());return[{url:`/favicon.ico?${a.src.split("/").splice(-1)[0]}`,sizes:`${a.width}x${a.height}`,type:"image/x-icon"}]}]},layout:[f,"[project]/app/layout.js"],"not-found":[g,"[project]/node_modules/next/dist/client/components/builtin/not-found.js"],forbidden:[h,"[project]/node_modules/next/dist/client/components/builtin/forbidden.js"],unauthorized:[i,"[project]/node_modules/next/dist/client/components/builtin/unauthorized.js"],"global-error":[j,"[project]/node_modules/next/dist/client/components/builtin/global-error.js"]},[]],l=a.r.bind(a),m=a.l.bind(a),n=(0,c.createAppPageEntrypoint)({tree:k,page:"/social/page",pathname:"/social",require:l,loadChunk:m,interopDefault:d.interopDefault}),o=n.__next_app__,p=n.routeModule,q=n.handler;a.s(["__next_app__",0,o,"handler",0,q,"routeModule",0,p],93137),a.i(93137);var r=a.i(22922);a.s(["ClientPageRoot",()=>r.ClientPageRoot,"ClientSegmentRoot",()=>r.ClientSegmentRoot,"Fragment",()=>r.Fragment,"HTTPAccessFallbackBoundary",()=>r.HTTPAccessFallbackBoundary,"InstantValidation",()=>r.InstantValidation,"LayoutRouter",()=>r.LayoutRouter,"LoadingBoundaryProvider",()=>r.LoadingBoundaryProvider,"Postpone",()=>r.Postpone,"RenderFromTemplateContext",()=>r.RenderFromTemplateContext,"RootLayoutBoundary",()=>r.RootLayoutBoundary,"SegmentViewNode",()=>r.SegmentViewNode,"SegmentViewStateNode",()=>r.SegmentViewStateNode,"__next_app__",0,o,"captureOwnerStack",()=>r.captureOwnerStack,"collectPrefetchHints",()=>r.collectPrefetchHints,"collectSegmentData",()=>r.collectSegmentData,"createElement",()=>r.createElement,"createMetadataComponents",()=>r.createMetadataComponents,"createPrerenderParamsForClientSegment",()=>r.createPrerenderParamsForClientSegment,"createPrerenderSearchParamsForClientPage",()=>r.createPrerenderSearchParamsForClientPage,"createServerParamsForServerSegment",()=>r.createServerParamsForServerSegment,"createServerSearchParamsForServerPage",()=>r.createServerSearchParamsForServerPage,"createTemporaryReferenceSet",()=>r.createTemporaryReferenceSet,"decodeAction",()=>r.decodeAction,"decodeFormState",()=>r.decodeFormState,"decodeReply",()=>r.decodeReply,"handler",0,q,"isEmptyHTMLPrelude",()=>r.isEmptyHTMLPrelude,"patchFetch",()=>r.patchFetch,"preconnect",()=>r.preconnect,"preloadFont",()=>r.preloadFont,"preloadStyle",()=>r.preloadStyle,"prerender",()=>r.prerender,"prerenderToNodeStream",()=>r.prerenderToNodeStream,"renderToPipeableStream",()=>r.renderToPipeableStream,"renderToReadableStream",()=>r.renderToReadableStream,"routeModule",0,p,"serverHooks",()=>r.serverHooks,"taintObjectReference",()=>r.taintObjectReference],87583)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__1jeztd-._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[66537,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(38246),e=a.i(37732),f=a.i(7846);let g={full:"Scanning your network",refresh:"Checking for new connections",bridge:"Scanning a circle",resume:"Carrying on with a circle","resume-all":"Carrying on with circles","auto-bridge":"Auto-Bridge","auto-bridge-retry":"Auto-Bridge",rescrape:"Re-scanning a circle",login:"Signing in to LinkedIn",setup:"Setting up the scanner",company:"Scanning a company",photos:"Saving photos",messages:"Reading your messages list"};a.s(["default",0,function(){let a,h,[i,j]=(0,c.useState)(()=>(0,e.scannerNow)()),[k,l]=(0,c.useState)(!1),m=(0,c.useSyncExternalStore)(f.watchAllDay,f.allDayNow,()=>!1);(0,c.useEffect)(()=>(0,e.watchScanner)(()=>{let a=(0,e.scannerNow)();j(a),a.running||l(!1)}),[]);let n={position:"fixed",left:"50%",top:"var(--scan-bar-top, 94px)",transform:"translateX(-50%)",zIndex:60,maxWidth:"calc(100vw - 32px)",display:"flex",alignItems:"center",gap:12,flexWrap:"nowrap",whiteSpace:"nowrap",padding:"8px 12px",borderRadius:12,fontSize:12,color:"#cfd8d8",background:"rgba(14,16,32,0.94)"};if(!i?.running)return m?(0,b.jsxs)("div",{role:"status",style:{...n,opacity:.55,border:"1px solid rgba(255,255,255,0.1)"},children:[(0,b.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",background:"#556",flexShrink:0}}),(0,b.jsx)("b",{style:{color:"#b8c4c4"},children:"Auto scan"}),(0,b.jsx)("span",{style:{color:"#8b9a9a"},children:"ready · press Auto scan beside Scan to start"})]}):null;let o=i.progress,p=o?.kind==="batch"&&o.total?`${o.current||o.done||0} of ${o.total}`:o?.kind==="walk"&&o.total?`${(o.done||0).toLocaleString()} of ${o.total.toLocaleString()} read`:o?.kind==="saving"?"saving":null,q=i.budget,r=[...i.log||[]].reverse().find(a=>a&&a.trim())?.trim();return(0,b.jsxs)("div",{role:"status","aria-live":"polite",style:{...n,border:"1px solid rgba(0,255,136,0.25)"},children:[(0,b.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",background:"#00ff88",flexShrink:0}}),(0,b.jsx)("b",{style:{color:"#fff"},children:g[i.action]||"Scanning"}),i.target?.name&&(0,b.jsx)("span",{children:i.target.name}),p&&(0,b.jsx)("span",{style:{color:"#8b9a9a"},children:p}),q&&(0,b.jsxs)("span",{style:{color:(a=q.searches,(h=q.cap)?a/h>=.9?"#ff6b6b":a/h>=.6?"#FFD700":"#00ff88":"#8b9a9a")},title:"Searches on your LinkedIn account in the last 24 hours, and your daily budget",children:[q.searches,q.cap?` of ${q.cap}`:""," searches today"]}),r&&(0,b.jsx)("span",{style:{color:"#667",flex:"0 1 240px",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:r,children:r}),(0,b.jsx)(d.default,{href:"/setup",style:{color:"#3498DB",textDecoration:"none"},children:"Details"}),(0,b.jsx)("button",{onClick:async()=>{l(!0);try{await (0,e.stopScrape)()}catch{l(!1)}},disabled:k,title:"Stops after saving what's been read; Resume on the Scan page carries on from the same page",style:{padding:"4px 10px",borderRadius:8,fontSize:12,cursor:k?"default":"pointer",background:"rgba(255,107,107,0.12)",color:"#ff9b9b",border:"1px solid rgba(255,107,107,0.35)"},children:k?"Stopping…":"Stop"})]})}])},59617,a=>{"use strict";var b=a.i(72131),c=a.i(37732),d=a.i(58834);let e=!1;a.s(["default",0,function(){return(0,b.useEffect)(()=>{if(d.IS_DEMO||e)return;let a=()=>{};return fetch("/api/social").then(a=>a.json()).then(({social:b})=>{if(!b?.autoSync||e)return;let d=b.liveAt?Date.parse(b.liveAt):0,f=new Date().getHours();Date.now()-d<864e5||f<9||f>=19||(a=(0,c.watchScanner)(()=>{let b=(0,c.scannerNow)();b.known&&!e&&(e=!0,a(),b.running||(0,c.beginScrape)("messages").catch(()=>{}))}))}).catch(()=>{}),()=>a()},[]),null}])},17372,a=>{"use strict";var b=a.i(87924),c=a.i(72131);a.s(["default",0,function(){let[a,d]=(0,c.useState)(null);return((0,c.useEffect)(()=>{let a=!0;return fetch("/api/update").then(a=>a.json()).then(b=>{a&&b?.restartNeeded&&d(b)}).catch(()=>{}),()=>{a=!1}},[]),a)?(0,b.jsxs)("div",{role:"status",style:{position:"fixed",left:0,right:0,bottom:0,zIndex:9999,background:"linear-gradient(90deg, #FFD700, #FF6B35)",color:"#1a1200",padding:"9px 16px",fontSize:13,fontWeight:600,lineHeight:1.5,display:"flex",alignItems:"center",justifyContent:"center",gap:10,flexWrap:"wrap",textAlign:"center"},children:[(0,b.jsxs)("span",{children:["You have newer code on disk (",a.sha,") than this server is running (",a.bootSha,"). Restart it to see the changes — ",(0,b.jsx)("code",{style:{background:"rgba(0,0,0,0.16)",padding:"1px 6px",borderRadius:4},children:"Ctrl-C"})," in the terminal, then ",(0,b.jsx)("code",{style:{background:"rgba(0,0,0,0.16)",padding:"1px 6px",borderRadius:4},children:"npm run dev"}),"."]}),(0,b.jsx)("button",{onClick:()=>d(null),style:{border:"none",background:"rgba(0,0,0,0.18)",color:"#1a1200",borderRadius:6,padding:"3px 10px",fontWeight:700,cursor:"pointer"},children:"Dismiss"})]}):null}])},75857,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(73167),e=a.i(58834),f=a.i(42510);let g=(0,c.createContext)({userId:null,userName:null,userProfile:null,ready:!1});a.s(["default",0,function({children:a}){let[h,i]=(0,c.useState)(null),[j,k]=(0,c.useState)(null),[l,m]=(0,c.useState)(null),[n,o]=(0,c.useState)(!1);return(0,c.useEffect)(()=>{if(e.IS_DEMO){i(e.DEMO_USER.id),k(e.DEMO_USER.name),m({name:e.DEMO_USER.name,headline:e.DEMO_USER.headline,role:"",company:"",industry:"",sectors:[],goals:[],linkedin_url:""}),o(!0);return}if((0,f.hasCsvNetwork)()){i(f.CSV_USER.id),k(f.CSV_USER.name),m({name:f.CSV_USER.name,headline:"Imported from your LinkedIn CSV",role:"",company:"",industry:"",sectors:[],goals:[],linkedin_url:""}),o(!0);return}fetch("/api/users?me=1").then(a=>a.json()).then(a=>{let b=a.user;if(!b)throw Error("no profile");(0,d.setUser)(b.id,b.name),i(b.id),k(b.name),m({name:b.name,headline:b.headline||"",role:b.role||"",company:b.company||"",industry:b.industry||"",sectors:b.sectors||[],goals:b.goals||[],linkedin_url:b.linkedin_url||""})}).catch(()=>{(0,d.hasUser)()&&(i((0,d.getUserId)()),k((0,d.getUserName)()))}).finally(()=>o(!0))},[]),(0,b.jsx)(g.Provider,{value:{userId:h,userName:j,userProfile:l,ready:n,login:(a,b)=>{(0,d.setUser)(a,b),i(a),k(b),fetch(`/api/users?id=${a}`).then(a=>a.json()).then(a=>{a.user&&m({name:a.user.name,headline:a.user.headline||"",role:a.user.role||"",company:a.user.company||"",industry:a.user.industry||"",sectors:a.user.sectors||[],goals:a.user.goals||[],linkedin_url:a.user.linkedin_url||""})}).catch(()=>{})}},children:a})},"useUser",0,function(){return(0,c.useContext)(g)}])},58834,a=>{"use strict";var b=a.i(42510);let c="true"===process.env.NEXT_PUBLIC_DEMO_MODE,d=null;async function e(){if(d)return d;let a=await fetch("/demo-data.json",{cache:"no-cache"});if(!a.ok)throw Error("demo-data.json not found — run: node scripts/gen-synthetic.mjs");let b=await a.json();return d={degree1:b.degree1||[],degree2:b.degree2||[]}}async function f(){let a=await e();return(0,b.saveSessionNetwork)({degree1:a.degree1,degree2:a.degree2,source:"sample"}),{degree1:a.degree1.length,degree2:a.degree2.length}}a.s(["DEMO_USER",0,{id:"synthetic-demo-user",name:"You",headline:"Sample network"},"IS_DEMO",0,c,"loadDemoNetwork",0,e,"loadSampleIntoSession",0,f])},7846,a=>{"use strict";var b=a.i(37732);let c=(a,b)=>{try{let c=localStorage.getItem(a);return null===c?b:JSON.parse(c)}catch{return b}};a.s(["allDayNow",0,function(){try{return"true"===localStorage.getItem("six-degrees-experimental-auto")}catch{return!1}},"startAutoScan",0,function(){let a=c("six-degrees-bridge-order","newest");return(0,b.beginScrape)("auto-bridge",{experimental:!0,maxBridges:10,order:a,tiers:"score"===a?["S","A"]:[],maxPages:c("six-degrees-bridge-pages-v2",100),deeper:c("six-degrees-bridge-finish",!0)})},"watchAllDay",0,function(a){return window.addEventListener("storage",a),window.addEventListener("six-degrees:experimental",a),()=>{window.removeEventListener("storage",a),window.removeEventListener("six-degrees:experimental",a)}}])},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(a){let b=await fetch(`/api/scraper?resume=${encodeURIComponent(a)}`);return b.ok?(await b.json()).resume??null:null}Symbol.for("six-degrees.scan-state");let e=Object.freeze({skips:[],read:[]});async function f(){try{let a=await fetch("/api/scraper?reach=1");if(!a.ok)return e;let b=await a.json();return{skips:Array.isArray(b.skips)?b.skips:[],read:Array.isArray(b.read)?b.read:[]}}catch{return e}}async function g(a){let b=await fetch(`/api/scraper?person=${encodeURIComponent(a)}`);return b.ok?b.json():{person:null}}async function h(){await fetch("/api/scraper",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"cancel"})})}let i=Object.freeze({known:!1,running:!1,pending:!1,action:null,target:null,startedAt:null,progress:null,log:[],finished:[]}),j=new Set,k=i,l=JSON.stringify(k),m=null,n=null,o=0,p=!1,q=new Set;function r(a){let b=JSON.stringify(a);if(b!==l)for(let c of(l=b,k=Object.freeze(a),[...j]))c()}async function s(){(!("u">typeof document&&document.hidden)||k.running)&&await function(){if(n&&n.epoch===o)return n.promise;let a=o,b=fetch("/api/scraper?job=1").then(a=>a.ok?a.json():null).then(b=>{a===o&&function(a){if(!a||"object"!=typeof a)return;let b=!0===a.running;b&&null!=a.startedAt&&q.add(a.startedAt);let c=(Array.isArray(a.recent)?a.recent:[]).filter(a=>q.has(a.startedAt)).map(c=>({...c,log:!b&&c.startedAt===a.startedAt&&Array.isArray(a.log)?a.log:[]}));r({known:!0,running:b||p,pending:p&&!b,action:b?a.action??null:p?k.action:null,target:b?a.target??null:p?k.target:null,startedAt:b?a.startedAt??null:null,progress:b?a.progress??null:null,budget:b?a.budget??null:null,log:b&&Array.isArray(a.log)?a.log:[],finished:c})}(b)}).catch(()=>{}).finally(()=>{n?.promise===b&&(n=null)});return n={epoch:a,promise:b},b}(),clearTimeout(m),m=j.size?setTimeout(s,k.running?1500:5e3):null}function t(a){return j.add(a),1===j.size&&s(),()=>{j.delete(a),j.size||(clearTimeout(m),m=null)}}async function u(a,{name:b,id:d,onLog:e,...f}={}){let g;o++,p=!0,r({...k,known:!0,running:!0,pending:!0,action:a,target:b||d?{id:d??null,name:b??null}:null,startedAt:null,progress:null,log:[]});try{g=await c(a,b,{...d?{id:d}:{},...f})}catch(a){throw p=!1,o++,k.pending&&r({...k,running:!1,pending:!1,action:null,target:null,log:[]}),s(),a}p=!1,o++;let h=g?.startedAt??null;null!=h&&q.add(h);let i=new Promise(a=>{let b=t(()=>{k.running&&k.startedAt===h&&e?.(k.log);let c=null==h?k.running?null:{exitCode:null,failure:null,log:[]}:k.finished.find(a=>a.startedAt===h);c&&(b(),c.log.length&&e?.(c.log),a(c))});s()});return{startedAt:h,ended:i}}function v(a){return!!a?.target&&["bridge","rescrape","resume"].includes(a.action)}a.s(["NO_SCAN_NOTES",0,e,"SCANNER_UNKNOWN",0,i,"beginScrape",0,u,"busyReason",0,function(a=k){if(!a?.running)return null;let b=a.target?.name;switch(a.action){case"bridge":case"rescrape":case"resume":return b?`${b}’s circle is being scanned`:"A circle is being scanned";case"company":return b?`${b} is being scanned`:"A company is being scanned";case"auto-bridge":case"auto-bridge-retry":case"resume-all":return"Your bridges are being mapped, one by one";case"full":case"refresh":return"Your own connections are being scanned";default:switch(a.action){case"install":return"The scanner's packages are being installed";case"setup":return"The scanner is being set up";case"login":return"The LinkedIn sign-in window is open";case"photos":return"Profile photos are being saved";default:return"A scan is running"}}},"isCircleScan",0,v,"loadScanNotes",0,f,"notReadyMessage",0,function(a){if(!a)return"Could not reach the app.";let b=a.checks||{};return b.scriptsFound?b.dependencies?b.chrome?null:"Google Chrome is not installed.":b.python||b.download?"The scanner is not set up yet — open Scan to set it up.":"No Python 3.10 to 3.14 is installed on this machine.":"The scanner files are missing from this install."},"pickedPerson",0,g,"resumePoint",0,d,"runScrape",0,function(a,b={}){return u(a,b).then(a=>a.ended)},"scannerNow",0,function(){return k},"scansCircleOf",0,function(a,b){if(!v(a)||!b)return!1;let{id:c,name:d}=a.target;return c&&b.id?c===b.id:!!d&&d===b.name},"scraperStatus",0,b,"stopScrape",0,h,"watchScanner",0,t],37732)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_005q9n1._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
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 Six 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…"})})}])},1328,76433,a=>{"use strict";var b=a.i(90231),c=a.i(42510);function d(a){let b=String(a||"").trim();if(!b)return null;let c=b.match(/^(\d{4})-(\d{2})-(\d{2})[ T](\d{2}):(\d{2})(?::(\d{2}))?(?:\s*UTC)?$/);if(c)return Date.UTC(+c[1],c[2]-1,+c[3],+c[4],+c[5],+(c[6]||0));if(c=b.match(/^(\d{1,2})\/(\d{1,2})\/(\d{2,4}),?\s+(\d{1,2}):(\d{2})\s*(AM|PM)?$/i)){let a=100>+c[3]?2e3+ +c[3]:+c[3],b=c[4]%12;return"PM"===(c[6]||"").toUpperCase()&&(b+=12),Date.UTC(a,c[1]-1,+c[2],b,+c[5])}if(c=b.match(/^([A-Za-z]{3,9})\s+(\d{4})$/)){let a=Date.parse(`1 ${c[1]} ${c[2]} UTC`);return Number.isNaN(a)?null:a}let d=Date.parse(/\d{4}$/.test(b)?`${b} UTC`:b);return Number.isNaN(d)?null:d}let e=a=>(0,b.keyFor)({profile_url:a});function f(a,b){if(!a||!a.total)return"never";let c=b-a.last;return c<=2592e6||a.recent>=3?"warm":c<=31536e6?"cool":"dormant"}a.s(["careerChapters",0,function(a=[],b=[],c=Date.now()){let f=a.map(a=>({company:a["company name"]||"",title:a.title||"",from:d(a["started on"]),to:d(a["finished on"])})).filter(a=>a.company&&null!=a.from).sort((a,b)=>a.from-b.from),g=b.map(a=>({url:e(a.url||a.profile_url),t:d(a["connected on"]||a.connected_on)})).filter(a=>null!=a.t);return f.map(a=>{let b=a.to??c,d=g.filter(c=>c.t>=a.from&&c.t<b);return{...a,to:a.to,made:d.length,people:d.map(a=>a.url)}})},"invitationSplit",0,function(a=[]){let b=0,c=0;for(let d of a){let a=String(d.direction||"").toUpperCase();"INCOMING"===a?b+=1:"OUTGOING"===a&&(c+=1)}return{incoming:b,outgoing:c,total:b+c}},"messageStats",0,function(a=[]){let b=new Map,c=new Map;for(let f of a){let a=e(f["sender profile url"]),g=f["conversation id"];if(!g||!a)continue;let h=String(f["recipient profile urls"]||"").split(/[,;\s]+/).filter(Boolean).map(e),i=d(f.date);if(null==i)continue;b.has(g)||b.set(g,{people:new Set,msgs:[]});let j=b.get(g);j.people.add(a),h.forEach(a=>j.people.add(a)),j.msgs.push({from:a,t:i}),c.has(a)||c.set(a,new Set),c.get(a).add(g)}let f=null;for(let[a,b]of c)(!f||b.size>c.get(f).size)&&(f=a);let g=0,h=new Map;for(let a of b.values()){let b=[...a.people].filter(a=>a!==f);if(1!==b.length||!a.people.has(f))continue;let c=b[0],d=h.get(c)||{last:0,lastFromThem:!1,total:0,times:[]};for(let b of a.msgs)d.total+=1,d.times.push(b.t),b.t>=d.last&&(d.last=b.t,d.lastFromThem=b.from!==f),b.t>g&&(g=b.t);h.set(c,d)}for(let a of h.values())a.recent=a.times.filter(a=>a>g-7776e6).length,delete a.times;return{self:f,asOf:g||null,people:h}},"postingEffect",0,function(a=[],b=[]){let c=a.map(a=>({t:d(a.date),link:a.sharelink||a["share link"]||""})).filter(a=>null!=a.t).sort((a,b)=>a.t-b.t),e=b.map(a=>d(a["connected on"]||a.connected_on)).filter(a=>null!=a).sort((a,b)=>a-b);if(!e.length)return{posts:[],usualWeek:0,afterPosts:0};let f=Math.max(6048e5,e[e.length-1]-e[0]),g=e.length/f*6048e5,h=c.map(a=>({...a,week:e.filter(b=>b>=a.t&&b<a.t+6048e5).length})),i=h.length?h.reduce((a,b)=>a+b.week,0)/h.length:0;return{posts:h,usualWeek:g,afterPosts:i}},"readTable",0,function(a,b){let d=(0,c.parseCsv)(String(a||"")),e=d.findIndex(a=>a.some(a=>a.trim().toLowerCase()===b.toLowerCase()));if(e<0)return[];let f=d[e].map(a=>a.trim().toLowerCase());return d.slice(e+1).filter(a=>a.some(a=>a.trim())).map(a=>Object.fromEntries(f.map((b,c)=>[b,(a[c]??"").trim()])))},"repliesWaiting",0,function(a){let b=[];for(let[c,d]of a.people){let e=a.asOf-d.last;d.lastFromThem&&e>=2592e5&&e<=2592e6&&b.push({url:c,days:Math.round(e/864e5),total:d.total})}return b.sort((a,b)=>a.days-b.days)},"warmthOf",0,f],76433);let g="six-degrees-galaxy-lab",h="six-degrees-galaxy-layouts",i=Object.freeze({on:!1,gravity:0,rings:1,push:15,pull:1,distance:1,dotSize:1,lines:1,sizeBy:"power",names:"key",branch:!0,colourBy:"tier",speed:15,loop:!1,labels:!0}),j=["gravity","rings","push","pull","distance","dotSize","lines","sizeBy","names","branch","colourBy","speed","loop"],k=Object.freeze({gravity:.25,rings:0,push:25,pull:2.5,distance:.35,sizeBy:"reach"}),l=new Set,m=null;function n(){return m||(m=function(){try{let a=JSON.parse(localStorage.getItem(g)||"null");return a&&"object"==typeof a?{...i,...a}:i}catch{return i}}()),m}function o(a){m=null===a?{...i,on:n().on,labels:n().labels}:{...n(),...a};try{localStorage.setItem(g,JSON.stringify(m))}catch{}l.forEach(a=>a())}let p=null,q=new Set;function r(){if(!p){try{p=JSON.parse(localStorage.getItem(h)||"[]")}catch{p=[]}Array.isArray(p)||(p=[])}return p}function s(a){p=a;try{localStorage.setItem(h,JSON.stringify(a))}catch{}q.forEach(a=>a())}let t=new Set,u={at:null,playing:!1,min:null,max:null,of:0,find:"",fly:0,found:0,social:void 0},v=null;function w(a){let b={...u,...a};Object.keys(a).every(a=>Object.is(b[a],u[a]))||(u=b,t.forEach(a=>a()))}function x(){cancelAnimationFrame(v),v=null,w({playing:!1})}let y=null;function z(a){let c=new Map;for(let[d,e]of Object.entries(a?.people||{}))c.set((0,b.keyFor)({profile_url:d}),{...e});for(let[d,e]of Object.entries(a?.live||{})){let a=(0,b.keyFor)({profile_url:d}),f=c.get(a)||{total:0,recent:0};e.last&&(!f.last||e.last>f.last)&&(f.last=e.last),f.unread=e.unread,f.total=Math.max(f.total||0,1),c.set(a,f)}let d=Math.max(a?.asOf||0,a?.liveAt&&Date.parse(a.liveAt)||0);for(let a of c.values())(a.last||0)>d&&(d=a.last);return{merged:c,asOf:d,chapters:a?.chapters||[],posts:a?.posts?.posts||[]}}let A={1:"#4FC3F7",2:"#BA68C8",3:"#FFB74D"},B=["#FF6B6B","#4ECDC4","#FFD93D","#A29BFE","#00B894","#FD79A8","#74B9FF","#E17055"],C={warm:"#FF7043",cool:"#4FC3F7",dormant:"#8D6E63",never:"#546E7A"},D="#4a5568",E=a=>String(a||"").trim().toLowerCase();a.s(["CLUSTERS",0,k,"LAB_DEFAULTS",0,i,"applyLayout",0,function(a){let b=r().find(b=>b.name===a);b&&o(Object.fromEntries(j.filter(a=>a in b.settings).map(a=>[a,b.settings[a]])))},"bornTimes",0,function(a,b){let c=new Map(a.map(a=>[a.id,a])),d=new Map,e=(a,f=0)=>{if(d.has(a.id))return d.get(a.id);let g=-1/0,h=b.get(a.id);if(1===a.degree||null==h||f>6){let b=a.connected_date?Date.parse(a.connected_date):NaN;g=Number.isNaN(b)?-1/0:b}return null!=h&&c.has(h)&&f<=6&&(g=Math.max(g,e(c.get(h),f+1))),d.set(a.id,g),g};return a.map(a=>e(a))},"chapterAt",0,function(a,b){let c=null;for(let d of a?.chapters||[])Number.isFinite(d.from)&&d.from<=b&&(!c||d.from>c.from)&&(c=d);return c&&(!Number.isFinite(c.to)||c.to>b)?c:null},"clockNow",0,()=>u,"colourScheme",0,function(a,c,d,e){if("degree"===a)return{of:a=>A[Math.min(a.degree||1,3)],legend:[["1st",A[1]],["2nd",A[2]],["3rd+",A[3]]]};if("company"===a){let a=new Map;for(let b of c){let c=E(b.company);if(!c)continue;let d=a.get(c)||{name:String(b.company).trim(),n:0};d.n+=1,a.set(c,d)}let b=[...a.entries()].filter(([,a])=>a.n>1).sort((a,b)=>b[1].n-a[1].n).slice(0,B.length),d=new Map(b.map(([a],b)=>[a,B[b]]));return{of:a=>d.get(E(a.company))||D,legend:[...b.map(([,a],b)=>[a.name,B[b]]),["Other",D]]}}return"warmth"===a&&e?{of:a=>1===(a.degree||1)?C[f(e.merged.get((0,b.keyFor)(a)),e.asOf)]:"#2d3748",legend:[["Warm",C.warm],["Cool",C.cool],["Dormant",C.dormant],["Never messaged",C.never]]}:{of:a=>d[a.tier]||"#666",legend:Object.entries(d)}},"effectiveLab",0,a=>a.on?a:a.labels===i.labels?i:{...i,labels:a.labels},"findMatches",0,function(a,b){let c=String(b||"").trim().toLowerCase();if(c.length<2)return null;let d=new Set;for(let b of a)[b.name,b.company,b.role,b.headline].some(a=>a&&String(a).toLowerCase().includes(c))&&d.add(b.id);return d},"forgetLayout",0,function(a){s(r().filter(b=>b.name!==a))},"labNow",0,n,"layoutsNow",0,r,"loadSocial",0,function(){return y||(y=fetch("/api/social").then(a=>a.ok?a.json():{}).then(a=>{w({social:a.social?z(a.social):null})}).catch(()=>w({social:null}))),y},"mergeSocial",0,z,"milestones",0,function(a){let b=[];for(let c of a?.chapters||[])Number.isFinite(c.from)&&b.push({t:c.from,kind:"job",label:c.company});for(let c of a?.posts||[])Number.isFinite(c.t)&&b.push({t:c.t,kind:"post",label:"You posted"});return b.sort((a,b)=>a.t-b.t)},"pause",0,x,"play",0,function a(){if(null==u.min||null==u.max||u.max<=u.min)return;let b=u.max-u.min,c=1e3*Math.max(1,Number(n().speed)||15),d=null==u.at||u.at>=u.max?u.min:u.at,e=performance.now()-(d-u.min)/b*c;w({at:d,playing:!0});let f=d=>{let g=Math.min(u.max,u.min+(d-e)/c*b);if(w({at:g}),g>=u.max){v=null,w({playing:!1}),n().loop&&setTimeout(()=>{v||u.at!==u.max||(w({at:u.min}),a())},1200);return}v=requestAnimationFrame(f)};cancelAnimationFrame(v),v=requestAnimationFrame(f)},"reachCounts",0,function(a,b){let c=new Map(a.map(a=>[a.id,0]));for(let d of a){let a=b.get(d.id);for(let d=0;null!=a&&d<7;d++)c.set(a,(c.get(a)||0)+1),a=b.get(a)}return c},"saveLayout",0,function(a){let b=String(a||"").trim().slice(0,40);if(!b)return;let c=n(),d=Object.fromEntries(j.map(a=>[a,c[a]]));s([...r().filter(a=>a.name!==b),{name:b,settings:d}])},"setClock",0,w,"setLab",0,o,"stopReplay",0,function(){x(),w({at:null})},"watchClock",0,function(a){return t.add(a),()=>t.delete(a)},"watchLab",0,function(a){l.add(a);let b=b=>{b.key===g&&(m=null,a())};return window.addEventListener("storage",b),()=>{l.delete(a),window.removeEventListener("storage",b)}},"watchLayouts",0,function(a){return q.add(a),()=>q.delete(a)}],1328)},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||[],ties:Number(d.ties)||0}}a.s(["loadNetwork",0,b])},56377,a=>{"use strict";let b=/^[A-Za-z0-9_-]+\.(webp|jpg|jpeg|png)$/,c="/avatars/";a.s(["localPhoto",0,function(a){return"string"==typeof a&&a.startsWith(c)&&b.test(a.slice(c.length))?a:null}])},90231,a=>{"use strict";var b=a.i(56377);let c={S:0,A:1,B:2,C:3,D:4};function d(a){let b=parseFloat(a?.power_score);return Number.isFinite(b)?b:0}function e(a){return Math.round(10*d(a))/10}function f(a){return String(a?.profile_url||"").split(/[?#]/)[0].replace(/\/+$/,"")||`id:${a?.id}`}let g=(a,b)=>String(a??"").localeCompare(String(b??""),void 0,{numeric:!0});function h(a,b){return(c[a.tier]??9)-(c[b.tier]??9)||d(b)-d(a)||String(a.name||"").localeCompare(String(b.name||""))||g(a.id,b.id)}function i(a,b){return a.bridge&&b.bridge?h(a.bridge,b.bridge):a.bridge?-1:b.bridge?1:g(a.id,b.id)}function j(a,b){return b.score-a.score||b.waysIn-a.waysIn||i(a.routes[0]||k,b.routes[0]||k)||String(a.person.name||"").localeCompare(String(b.person.name||""))||(a.key<b.key?-1:+(a.key>b.key))}let k={id:null,bridge:null};function l(a){let b=String(a||"").trim().split(/\s+/).filter(Boolean);return b.length<2?b[0]||"":`${b[0]} ${b[b.length-1].charAt(0)}.`}function m(a,b){let c=String(a||"");return b<=1?c?"…":"":c.length>b?`${c.slice(0,b-1)}…`:c}a.s(["TIERS",0,["S","A","B","C","D"],"compareBridges",0,h,"compareWaysIn",0,function(a,b){return b.waysIn-a.waysIn||j(a,b)},"keyFor",0,f,"routeIndex",0,function(a=[]){let b=new Map;for(let c of a||[]){let a=f(c),d=b.get(a);d||(d=new Set,b.set(a,d)),d.add(c.source_connection_id??null)}return b},"routesFor",0,function(a,b,c){return a?[...b?.get(f(a))??(null!=a.source_connection_id?new Set([a.source_connection_id]):new Set)].map(a=>({id:a,bridge:c?.get(a)??null})).sort(i):[]},"score",0,d,"score1",0,e,"separationPeople",0,function(a=[],c=[]){let d=new Map;for(let a of c||[])d.set(a.id,a);let h=new Map,k=new Map;for(let c of a||[]){let a=f(c);k.set(c.id,a);let d=h.get(a);d?function(a,c){let d=e(a)-e(c);if(d)return d>0;let f=!!(0,b.localPhoto)(a.profile_image_url);return!!(0,b.localPhoto)(c.profile_image_url)!==f?f:0>g(a.id,c.id)}(c,d.person)&&(d.person=c):(d={key:a,person:c,rowIds:[],routeIds:new Set},h.set(a,d)),d.rowIds.push(c.id),d.routeIds.add(c.source_connection_id??null)}let l={people:h.size,byTier:{S:0,A:0,B:0,C:0,D:0},multi:0,bridges:0,unresolvedIds:0,peopleOnlyUnresolved:0,onlyUnresolvedVia:0},m=new Set,n=new Set,o=new Set,p=[];for(let a of h.values()){let b=[...a.routeIds].map(a=>({id:a,bridge:d.get(a)??null}));b.sort(i);let c=b.filter(a=>a.bridge);for(let a of b)(a.bridge?m:n).add(a.id);if(!c.length)for(let a of(l.peopleOnlyUnresolved++,b))o.add(a.id);let{person:f}=a,g=f.tier;void 0!==l.byTier[g]&&l.byTier[g]++,b.length>1&&l.multi++,p.push({key:a.key,person:f,score:e(f),tier:g,routes:b,waysIn:b.length,rowIds:a.rowIds,haystack:[f.name,f.headline,f.company,f.role,...c.map(a=>a.bridge.name)].filter(Boolean).join("\n").toLowerCase(),rank:0,tied:!1})}return l.bridges=m.size,l.unresolvedIds=n.size,l.onlyUnresolvedVia=o.size,p.sort(j),function(a){for(let b=0;b<a.length;b++){let c=a[b],d=a[b-1],e=d&&d.score===c.score&&d.waysIn===c.waysIn;c.rank=e?d.rank:b+1,e&&(c.tied=!0,d.tied=!0)}}(p),{people:p,rowToKey:k,summary:l}},"shortName",0,l,"summitLayout",0,function(a=[],b=800,c=!1){let d=c?36:26,e=Math.round(.42*b),f=Math.round(.58*b),g=a.map((a,c)=>{var e;return{key:a.key,p:a,x:f,y:16+c*d,r:(e=a.waysIn)>=4?8.5:3===e?7:2===e?5.5:4,label:m(`#${a.rank}${a.tied?"=":""} ${a.person.name||""}`,Math.floor((b-f-60)/6.2))}}),i=new Map,j="\0unresolved";for(let a of g)for(let b of a.p.routes){let c=b.bridge?b.id:j,d=i.get(c);d||(d={id:b.bridge?b.id:null,bridge:b.bridge,unresolved:!b.bridge,ys:[],count:0},i.set(c,d)),d.count++,d.ys.push(a.y)}let k=[...i.values()].map(a=>({...a,bary:a.ys.reduce((a,b)=>a+b,0)/a.ys.length}));k.sort((a,b)=>a.bary-b.bary||a.unresolved-b.unresolved||(a.bridge&&b.bridge?h(a.bridge,b.bridge):0));let n=g.length?g[g.length-1].y:16,o=k.length>1?Math.max(18,(n-16)/(k.length-1)):0,p=Math.max(4,Math.floor((e-10-42)/6));k.forEach((a,b)=>{if(a.x=e,a.y=1===k.length?(16+n)/2:16+b*o,a.r=5,a.unresolved)a.label=m(`can't be named (${a.count})`,p);else{let b=a.bridge.name||"";a.label=b.length<=p?b:m(l(b),p)}delete a.ys});let q=new Map(k.map(a=>[a.unresolved?j:a.id,a])),r=[];for(let a of g){let b=new Set;a.p.routes.forEach((c,d)=>{let e=c.bridge?c.id:j;if(b.has(e))return;b.add(e);let f=q.get(e);r.push({key:a.key,bridgeId:f.id,primary:0===d&&!f.unresolved,unresolved:f.unresolved,tier:f.bridge?.tier??null,x1:f.x,y1:f.y,x2:a.x,y2:a.y})})}let s=Math.max(n,k.length?k[k.length-1].y:0),t=g.length?Math.ceil(s+16):0,u={x:20,y:g.length?(16+Math.max(n,s))/2:16,r:14},v=k.map(a=>({id:a.id,x1:u.x,y1:u.y,x2:a.x,y2:a.y}));return{width:b,height:t,you:u,people:g,bridges:k,links:r,spokes:v}}])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_0ezj4e0._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
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 Six 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…"})})}])},76892,24475,a=>{"use strict";var b=a.i(72131),c=a.i(90231);let d=Object.freeze({known:!1,sent:new Set,mine:new Map,version:0}),e=new Set,f=d,g=null,h=new Map;function i(a=f.sent,b=f.known){for(let c of(f=Object.freeze({known:b,sent:a,mine:new Map(h),version:f.version+1}),[...e]))c()}function j(a){return e.add(a),g||f.known||(g=fetch("/api/outreach").then(a=>a.ok?a.json():null).then(a=>{a&&i(new Set((a.pending||[]).map(c.keyFor)),!0)}).catch(()=>{}).finally(()=>{g=null})),()=>e.delete(a)}function k(){return f}async function l(a){let b=await fetch("/api/outreach",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),c=await b.json().catch(()=>({}));if(!b.ok)throw Error(c.error||"Could not save that.");return c}async function m(a,{bridgeId:b}={}){let d=(0,c.keyFor)(a),e=h.has(d)?h.get(d):void 0;h.set(d,!0),i();try{return await l({action:"mark-sent",connectionId:a.id,profileUrl:a.profile_url,bridgeId:b})}catch(a){throw void 0===e?h.delete(d):h.set(d,e),i(),a}}async function n(a){let b=(0,c.keyFor)(a),d=h.has(b)?h.get(b):void 0;h.set(b,!1),i();try{return await l({action:"undo",connectionId:a.id,profileUrl:a.profile_url})}catch(a){throw void 0===d?h.delete(b):h.set(b,d),i(),a}}a.s(["REQUESTS_UNKNOWN",0,d,"hasRequest",0,function(a,b=f){if(!a)return!1;let d=(0,c.keyFor)(a);return b.mine.has(d)?b.mine.get(d):b.known?b.sent.has(d):"pending"===a.unlock_status||"sent"===a.outreach_status},"markRequested",0,m,"requestCount",0,function(a=f){let b=new Set(a.known?a.sent:[]);for(let[c,d]of a.mine)d?b.add(c):b.delete(c);return b.size},"requestsNow",0,k,"undoRequest",0,n,"watchRequests",0,j],24475),a.s(["default",0,function(){return(0,b.useSyncExternalStore)(j,k,()=>d)}],76892)},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||[],ties:Number(d.ties)||0}}a.s(["loadNetwork",0,b])},56377,a=>{"use strict";let b=/^[A-Za-z0-9_-]+\.(webp|jpg|jpeg|png)$/,c="/avatars/";a.s(["localPhoto",0,function(a){return"string"==typeof a&&a.startsWith(c)&&b.test(a.slice(c.length))?a:null}])},91443,a=>{"use strict";var b=a.i(90231);function c(a,c){return a?c.scanned.has(a.id)||a.profile_url&&c.read?.has((0,b.keyFor)(a))?"scanned":a.profile_url&&c.hidden.has((0,b.keyFor)(a))?"hidden":"todo":"todo"}function d(a,b){if(!a||1!==a.degree||null==a.unlocked_from_bridge_id)return null;let d=c(a,b);return"todo"===d?"ready":d}a.s(["circleScanCost",0,function(a=100){let b=Math.max(1,Math.min(100,Math.round(a)||100));return{profileViews:1,searches:b,minutes:b>=100?55:Math.max(5,Math.round(.55*b))}},"circleState",0,c,"reachIndex",0,function(a=[],c=[],d={}){let e=new Set;for(let a of c||[])a?.source_connection_id!=null&&e.add(a.source_connection_id);let f=new Set;for(let a of d?.skips||[])a?.profileUrl&&f.add((0,b.keyFor)({profile_url:a.profileUrl}));let g=new Set;for(let a of d?.read||[])a&&g.add((0,b.keyFor)({profile_url:a}));let h=new Map;for(let[a,c]of Object.entries(d?.lists||{}))a&&c&&h.set((0,b.keyFor)({profile_url:a}),c);let i=new Map;for(let b of a||[]){let a=b?.unlocked_from_bridge_id;if(null==a||1!==b.degree)continue;let c=i.get(a);c||i.set(a,c=[]),c.push(b)}return{scanned:e,read:g,hidden:f,reachedFrom:i,lists:h}},"reachState",0,d,"readyByCircle",0,function(a){let b=new Map;for(let[c,e]of a.reachedFrom){let f=e.filter(b=>"ready"===d(b,a)).length;f&&b.set(c,f)}return b},"readyToScan",0,function(a,c){return(a||[]).filter(a=>"ready"===d(a,c)).sort(b.compareBridges)},"scanBars",0,function(a,d){let e=c(a,d),f=a?.profile_url?d.lists?.get((0,b.keyFor)(a)):null;return"hidden"===e?null:f?f.more?f.total?Math.max(1,Math.min(4,Math.round(5*Math.min(1,10*f.pages/f.total)))):2:5:"scanned"===e?2:null}])},90231,a=>{"use strict";var b=a.i(56377);let c={S:0,A:1,B:2,C:3,D:4};function d(a){let b=parseFloat(a?.power_score);return Number.isFinite(b)?b:0}function e(a){return Math.round(10*d(a))/10}function f(a){return String(a?.profile_url||"").split(/[?#]/)[0].replace(/\/+$/,"")||`id:${a?.id}`}let g=(a,b)=>String(a??"").localeCompare(String(b??""),void 0,{numeric:!0});function h(a,b){return(c[a.tier]??9)-(c[b.tier]??9)||d(b)-d(a)||String(a.name||"").localeCompare(String(b.name||""))||g(a.id,b.id)}function i(a,b){return a.bridge&&b.bridge?h(a.bridge,b.bridge):a.bridge?-1:b.bridge?1:g(a.id,b.id)}function j(a,b){return b.score-a.score||b.waysIn-a.waysIn||i(a.routes[0]||k,b.routes[0]||k)||String(a.person.name||"").localeCompare(String(b.person.name||""))||(a.key<b.key?-1:+(a.key>b.key))}let k={id:null,bridge:null};function l(a){let b=String(a||"").trim().split(/\s+/).filter(Boolean);return b.length<2?b[0]||"":`${b[0]} ${b[b.length-1].charAt(0)}.`}function m(a,b){let c=String(a||"");return b<=1?c?"…":"":c.length>b?`${c.slice(0,b-1)}…`:c}a.s(["TIERS",0,["S","A","B","C","D"],"compareBridges",0,h,"compareWaysIn",0,function(a,b){return b.waysIn-a.waysIn||j(a,b)},"keyFor",0,f,"routeIndex",0,function(a=[]){let b=new Map;for(let c of a||[]){let a=f(c),d=b.get(a);d||(d=new Set,b.set(a,d)),d.add(c.source_connection_id??null)}return b},"routesFor",0,function(a,b,c){return a?[...b?.get(f(a))??(null!=a.source_connection_id?new Set([a.source_connection_id]):new Set)].map(a=>({id:a,bridge:c?.get(a)??null})).sort(i):[]},"score",0,d,"score1",0,e,"separationPeople",0,function(a=[],c=[]){let d=new Map;for(let a of c||[])d.set(a.id,a);let h=new Map,k=new Map;for(let c of a||[]){let a=f(c);k.set(c.id,a);let d=h.get(a);d?function(a,c){let d=e(a)-e(c);if(d)return d>0;let f=!!(0,b.localPhoto)(a.profile_image_url);return!!(0,b.localPhoto)(c.profile_image_url)!==f?f:0>g(a.id,c.id)}(c,d.person)&&(d.person=c):(d={key:a,person:c,rowIds:[],routeIds:new Set},h.set(a,d)),d.rowIds.push(c.id),d.routeIds.add(c.source_connection_id??null)}let l={people:h.size,byTier:{S:0,A:0,B:0,C:0,D:0},multi:0,bridges:0,unresolvedIds:0,peopleOnlyUnresolved:0,onlyUnresolvedVia:0},m=new Set,n=new Set,o=new Set,p=[];for(let a of h.values()){let b=[...a.routeIds].map(a=>({id:a,bridge:d.get(a)??null}));b.sort(i);let c=b.filter(a=>a.bridge);for(let a of b)(a.bridge?m:n).add(a.id);if(!c.length)for(let a of(l.peopleOnlyUnresolved++,b))o.add(a.id);let{person:f}=a,g=f.tier;void 0!==l.byTier[g]&&l.byTier[g]++,b.length>1&&l.multi++,p.push({key:a.key,person:f,score:e(f),tier:g,routes:b,waysIn:b.length,rowIds:a.rowIds,haystack:[f.name,f.headline,f.company,f.role,...c.map(a=>a.bridge.name)].filter(Boolean).join("\n").toLowerCase(),rank:0,tied:!1})}return l.bridges=m.size,l.unresolvedIds=n.size,l.onlyUnresolvedVia=o.size,p.sort(j),function(a){for(let b=0;b<a.length;b++){let c=a[b],d=a[b-1],e=d&&d.score===c.score&&d.waysIn===c.waysIn;c.rank=e?d.rank:b+1,e&&(c.tied=!0,d.tied=!0)}}(p),{people:p,rowToKey:k,summary:l}},"shortName",0,l,"summitLayout",0,function(a=[],b=800,c=!1){let d=c?36:26,e=Math.round(.42*b),f=Math.round(.58*b),g=a.map((a,c)=>{var e;return{key:a.key,p:a,x:f,y:16+c*d,r:(e=a.waysIn)>=4?8.5:3===e?7:2===e?5.5:4,label:m(`#${a.rank}${a.tied?"=":""} ${a.person.name||""}`,Math.floor((b-f-60)/6.2))}}),i=new Map,j="\0unresolved";for(let a of g)for(let b of a.p.routes){let c=b.bridge?b.id:j,d=i.get(c);d||(d={id:b.bridge?b.id:null,bridge:b.bridge,unresolved:!b.bridge,ys:[],count:0},i.set(c,d)),d.count++,d.ys.push(a.y)}let k=[...i.values()].map(a=>({...a,bary:a.ys.reduce((a,b)=>a+b,0)/a.ys.length}));k.sort((a,b)=>a.bary-b.bary||a.unresolved-b.unresolved||(a.bridge&&b.bridge?h(a.bridge,b.bridge):0));let n=g.length?g[g.length-1].y:16,o=k.length>1?Math.max(18,(n-16)/(k.length-1)):0,p=Math.max(4,Math.floor((e-10-42)/6));k.forEach((a,b)=>{if(a.x=e,a.y=1===k.length?(16+n)/2:16+b*o,a.r=5,a.unresolved)a.label=m(`can't be named (${a.count})`,p);else{let b=a.bridge.name||"";a.label=b.length<=p?b:m(l(b),p)}delete a.ys});let q=new Map(k.map(a=>[a.unresolved?j:a.id,a])),r=[];for(let a of g){let b=new Set;a.p.routes.forEach((c,d)=>{let e=c.bridge?c.id:j;if(b.has(e))return;b.add(e);let f=q.get(e);r.push({key:a.key,bridgeId:f.id,primary:0===d&&!f.unresolved,unresolved:f.unresolved,tier:f.bridge?.tier??null,x1:f.x,y1:f.y,x2:a.x,y2:a.y})})}let s=Math.max(n,k.length?k[k.length-1].y:0),t=g.length?Math.ceil(s+16):0,u={x:20,y:g.length?(16+Math.max(n,s))/2:16,r:14},v=k.map(a=>({id:a.id,x1:u.x,y1:u.y,x2:a.x,y2:a.y}));return{width:b,height:t,you:u,people:g,bridges:k,links:r,spokes:v}}])},76939,a=>{"use strict";a.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(a){let b=String(a||"").trim().split(/\s+/).filter(Boolean);return 0===b.length?"?":(b[0].charAt(0)+(b.length>1?b[b.length-1].charAt(0):"")).toUpperCase()}])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_0j4-lc3._.js.map
|