six-degrees 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-path-routes-manifest.json +3 -0
- package/.next/standalone/.next/build-manifest.json +3 -3
- package/.next/standalone/.next/prerender-manifest.json +14 -14
- package/.next/standalone/.next/routes-manifest.json +18 -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 +26 -18
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +26 -18
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +25 -16
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/api/admin-delete/route.js +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +3 -3
- 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 +3 -3
- 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 +2 -2
- package/.next/standalone/.next/server/app/api/connections/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/backup/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/data/backup/route/build-manifest.json +12 -0
- package/.next/standalone/.next/server/app/api/data/backup/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/data/backup/route.js +7 -0
- package/.next/standalone/.next/server/app/api/data/backup/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/data/backup/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/data/backup/route_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/api/data/csv/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/data/csv/route/build-manifest.json +12 -0
- package/.next/standalone/.next/server/app/api/data/csv/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/data/csv/route.js +8 -0
- package/.next/standalone/.next/server/app/api/data/csv/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/data/csv/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/data/csv/route_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/api/data/export/route.js +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 +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 +1 -1
- package/.next/standalone/.next/server/app/api/data/restart/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/restore/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/data/restore/route/build-manifest.json +12 -0
- package/.next/standalone/.next/server/app/api/data/restore/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/data/restore/route.js +7 -0
- package/.next/standalone/.next/server/app/api/data/restore/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/data/restore/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/data/restore/route_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/api/data/reveal/route.js +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 +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 +2 -2
- 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 +2 -2
- package/.next/standalone/.next/server/app/api/ingest/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/route.js +2 -2
- package/.next/standalone/.next/server/app/api/network/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/notifications/route.js +2 -2
- package/.next/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/outreach/route.js +2 -2
- package/.next/standalone/.next/server/app/api/outreach/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/queue/route.js +2 -2
- package/.next/standalone/.next/server/app/api/queue/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/scraper/route.js +4 -2
- package/.next/standalone/.next/server/app/api/scraper/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/settings/route.js +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +2 -2
- package/.next/standalone/.next/server/app/api/setup-profile/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/social/crm/route.js +1 -1
- package/.next/standalone/.next/server/app/api/social/crm/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/social/messages/route.js +1 -1
- package/.next/standalone/.next/server/app/api/social/messages/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/social/route.js +2 -2
- package/.next/standalone/.next/server/app/api/social/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/unlock/route.js +2 -2
- 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 +2 -2
- 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 +2 -2
- package/.next/standalone/.next/server/app/api/users/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/avatars/[file]/route.js +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 +32 -24
- package/.next/standalone/.next/server/app/import.segments/_full.segment.rsc +32 -24
- package/.next/standalone/.next/server/app/import.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/import.segments/import/__PAGE__.segment.rsc +23 -18
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +29 -22
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +20 -15
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +29 -22
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- 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 +32 -24
- package/.next/standalone/.next/server/app/launch.segments/_full.segment.rsc +32 -24
- package/.next/standalone/.next/server/app/launch.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/launch.segments/launch/__PAGE__.segment.rsc +23 -18
- 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 +32 -24
- package/.next/standalone/.next/server/app/paths.segments/_full.segment.rsc +32 -24
- package/.next/standalone/.next/server/app/paths.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/paths.segments/paths/__PAGE__.segment.rsc +21 -18
- 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 +32 -24
- package/.next/standalone/.next/server/app/profile.segments/_full.segment.rsc +32 -24
- package/.next/standalone/.next/server/app/profile.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/profile.segments/profile/__PAGE__.segment.rsc +23 -18
- 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 +32 -24
- package/.next/standalone/.next/server/app/queue.segments/_full.segment.rsc +32 -24
- package/.next/standalone/.next/server/app/queue.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/queue.segments/queue/__PAGE__.segment.rsc +20 -18
- 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 +32 -24
- package/.next/standalone/.next/server/app/scores.segments/_full.segment.rsc +32 -24
- package/.next/standalone/.next/server/app/scores.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/scores.segments/scores/__PAGE__.segment.rsc +23 -18
- 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 +32 -24
- package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +32 -24
- package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +20 -18
- 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 +32 -24
- package/.next/standalone/.next/server/app/setup.segments/_full.segment.rsc +32 -24
- package/.next/standalone/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +21 -18
- package/.next/standalone/.next/server/app/social/page.js +1 -1
- package/.next/standalone/.next/server/app/social/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/social/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/social.html +1 -1
- package/.next/standalone/.next/server/app/social.rsc +32 -24
- package/.next/standalone/.next/server/app/social.segments/_full.segment.rsc +32 -24
- package/.next/standalone/.next/server/app/social.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/social.segments/social/__PAGE__.segment.rsc +23 -18
- package/.next/standalone/.next/server/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__00la_y0._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__05_3-22._.js +1 -1
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__15wc9e-._.js → [root-of-the-server]__063s0x7._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__066rab1._.js +7 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__07t47cm._.js +1 -1
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__13dx4sd._.js → [root-of-the-server]__0_4y8z7._.js} +3 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0cj5jqc._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0e0fei3._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0fooke1._.js +7 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ljnyho._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0o5-tcg._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qrnous._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0t3v1a1._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0t6y79e._.js +7 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0wmexuc._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0x29muh._.js +7 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0xu34sz._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__133knx1._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__15-17hl._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__19b7mig._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1a_6x37._.js +8 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1an_8pa._.js +7 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1bbcwub._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1ducpz2._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1eris29._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1gjo_cq._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1qcm08_._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1tir0vc._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1w25q0m._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1xhyinn._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__20rwfdw._.js +1 -1
- package/.next/standalone/.next/server/chunks/_02twlca._.js +1 -1
- package/.next/standalone/.next/server/chunks/_072jl0y._.js +1 -1
- package/.next/standalone/.next/server/chunks/_0lw8_i0._.js +1 -1
- package/.next/standalone/.next/server/chunks/_0sqqpzb._.js +3 -0
- package/.next/standalone/.next/server/chunks/_1_fynia._.js +7 -7
- package/.next/standalone/.next/server/chunks/_1fn30_l._.js +1 -1
- package/.next/standalone/.next/server/chunks/_1itd1o_._.js +1 -1
- package/.next/standalone/.next/server/chunks/_1iwkh8t._.js +1 -1
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_data_backup_route_actions_0zoj04p.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_data_csv_route_actions_0l6m7lg.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_data_restore_route_actions_0-b05bv.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_02iz_9q._.js +4 -0
- package/.next/standalone/.next/server/chunks/lib_05agvk3._.js +4 -0
- package/.next/standalone/.next/server/chunks/lib_0v84u66._.js +4 -0
- package/.next/standalone/.next/server/chunks/lib_db-client_0_dch35.js +174 -0
- package/.next/standalone/.next/server/chunks/lib_linkedin-export_12imqxg.js +1 -1
- package/.next/standalone/.next/server/chunks/lib_rpc_005abye.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_0b17r6v.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_0c9d9ti.js +7 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_0doq0t-.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_0fd2rlw.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_0is4qoc.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_0jnfp2e.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_0nef_n7.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_0plrzra.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_13a4m0c.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_1if17c-.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_1j-zw7v.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_1sngt-q.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_1v2sgme.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_1vh-tgx.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_1zaubz7.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0qd8pzm._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0qdeuyo._.js → [root-of-the-server]__1-012q1._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_01o3i5y._.js +7 -0
- package/.next/standalone/.next/server/chunks/ssr/_02sband._.js +7 -0
- package/.next/standalone/.next/server/chunks/ssr/_06rgzfh._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_07zb7lu._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0_79idq._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0gy11ar._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0hb-dhy._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_14nxd3q._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_189g8lg._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_1f_n00p._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_1fm1ih_._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_1k2nmbw._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_1k9qfsk._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/app_141w189._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_components_0t908t-._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_components_0uuff77._.js +25 -2
- package/.next/standalone/.next/server/chunks/ssr/app_components_1j3q-h5._.js +25 -2
- package/.next/standalone/.next/server/chunks/ssr/app_components_CompanyScores_1g0mytz.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_import_page_1fmu6_l.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_launch_page_19t0dyd.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_page_1fazqbf.js +25 -13
- package/.next/standalone/.next/server/chunks/ssr/app_paths_page_1ol90m7.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/app_profile_page_0u3-l5y.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_queue_page_0c6znd6.js +11 -11
- package/.next/standalone/.next/server/chunks/ssr/app_settings_page_1f8mjj_.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_setup_page_1-282zx.js +12 -13
- package/.next/standalone/.next/server/chunks/ssr/app_social_page_0h7zxda.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{lib_1c4ieuw._.js → lib_csv_1ttiu_h.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/lib_galaxy-lab_108_lu-.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/lib_separation_1305zsx.js +3 -0
- package/.next/standalone/.next/server/edge/chunks/[root-of-the-server]__0pco7a6._.js +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/.next/server/middleware-manifest.json +5 -5
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/chunks/03-_esd2x_yk6.js +1 -0
- package/.next/standalone/.next/static/chunks/03-demj2iy-0p.js +44 -0
- package/.next/standalone/.next/static/chunks/0_1r-3csplxnj.js +1 -0
- package/.next/standalone/.next/static/chunks/0an_b6zi1r_qq.js +5 -0
- package/.next/standalone/.next/static/chunks/0e3g0sil79cus.js +21 -0
- package/.next/standalone/.next/static/chunks/0kscsqnvfq3-r.js +1 -0
- package/.next/standalone/.next/static/chunks/0p3g5tfostsep.js +7 -0
- package/.next/standalone/.next/static/chunks/0zd0t7e60bn4z.js +1 -0
- package/.next/standalone/.next/static/chunks/163b-20vwa06i.js +34 -0
- package/.next/standalone/.next/static/chunks/{0ws7zy0w57ufi.js → 1eyajb9ntzlrl.js} +1 -1
- package/.next/standalone/.next/static/chunks/1pa-2v1ajvrko.js +1 -0
- package/.next/standalone/.next/static/chunks/1qbjermbf68xj.js +1 -0
- package/.next/standalone/.next/static/chunks/1z9lb-dbcg4aa.js +1 -0
- package/.next/standalone/.next/static/chunks/23_1z47al92nz.js +57 -0
- package/.next/standalone/.next/static/chunks/260bomtr214m8.js +34 -0
- package/.next/standalone/.next/static/chunks/2eo9pqq9gay3r.js +34 -0
- package/.next/standalone/.next/static/chunks/2xk2ra4piiuod.js +34 -0
- package/.next/standalone/.next/static/chunks/2z1-q0_vunbql.js +2 -0
- package/.next/standalone/.next/static/chunks/2zf4jmz9l3li2.js +1 -0
- package/.next/standalone/.next/static/chunks/34g73qhayuevu.js +1 -0
- package/.next/standalone/.next/static/chunks/3b0-14cxqsprt.js +1 -0
- package/.next/standalone/.next/static/chunks/3jarus1_38s2z.js +1 -0
- package/.next/standalone/.next/static/chunks/3ssu341hav_sq.css +3 -0
- package/.next/standalone/.next/static/chunks/3v1qd3sqhqn0d.js +1 -0
- package/.next/standalone/.next/static/chunks/43pg2sursiypz.js +1 -0
- package/.next/standalone/.next/static/chunks/44yn0tcd9dfk3.js +1 -0
- package/.next/standalone/CHANGELOG.md +143 -0
- package/.next/standalone/README.md +71 -49
- package/.next/standalone/SECURITY.md +17 -11
- package/.next/standalone/app/api/data/backup/route.js +25 -0
- package/.next/standalone/app/api/data/csv/route.js +74 -0
- package/.next/standalone/app/api/data/export/route.js +1 -1
- package/.next/standalone/app/api/data/restore/route.js +48 -0
- package/.next/standalone/app/api/data/reveal/route.js +19 -6
- package/.next/standalone/app/api/data/route.js +15 -4
- package/.next/standalone/app/api/ingest/route.js +1 -1
- package/.next/standalone/app/api/queue/route.js +1 -1
- package/.next/standalone/app/api/scraper/route.js +120 -32
- package/.next/standalone/app/api/social/crm/route.js +2 -1
- package/.next/standalone/app/components/AppHeader.js +20 -16
- package/.next/standalone/app/components/AppTabs.js +8 -8
- package/.next/standalone/app/components/AutoScanButton.js +2 -2
- package/.next/standalone/app/components/Avatar.js +1 -1
- package/.next/standalone/app/components/ChainView.js +184 -112
- package/.next/standalone/app/components/CirclePanel.js +16 -16
- package/.next/standalone/app/components/ClusterSpinner.js +64 -0
- package/.next/standalone/app/components/CompanyScores.js +20 -20
- package/.next/standalone/app/components/EmptyState.js +39 -18
- package/.next/standalone/app/components/FieldStep.js +15 -13
- package/.next/standalone/app/components/FilterPanel.js +17 -17
- package/.next/standalone/app/components/ForceGraph.js +49 -14
- package/.next/standalone/app/components/GalaxyLab.js +33 -33
- package/.next/standalone/app/components/GridView.js +18 -18
- package/.next/standalone/app/components/LegacyScoresCard.js +10 -11
- package/.next/standalone/app/components/LinkedInLimits.js +24 -19
- package/.next/standalone/app/components/LiquidGlass.js +99 -0
- package/.next/standalone/app/components/ListView.js +20 -20
- package/.next/standalone/app/components/MapControls.js +5 -5
- package/.next/standalone/app/components/MappingProgress.js +16 -16
- package/.next/standalone/app/components/NoteDetail.js +13 -13
- package/.next/standalone/app/components/OnboardingGate.js +4 -4
- package/.next/standalone/app/components/OutlinkQuest.js +25 -25
- package/.next/standalone/app/components/PathsAnalyzer.js +37 -36
- package/.next/standalone/app/components/PeopleMap.js +21 -21
- package/.next/standalone/app/components/RingsView.js +11 -11
- package/.next/standalone/app/components/ScanRadar.js +84 -39
- package/.next/standalone/app/components/ScanStatusBar.js +22 -18
- package/.next/standalone/app/components/ScanTrail.js +8 -5
- package/.next/standalone/app/components/SeparationView.js +168 -104
- package/.next/standalone/app/components/Sidebar.js +161 -161
- package/.next/standalone/app/components/StaleServerBanner.js +4 -4
- package/.next/standalone/app/components/TheirCircle.js +26 -26
- package/.next/standalone/app/components/ThemeDefs.js +42 -0
- package/.next/standalone/app/components/ThemeLoader.js +20 -1
- package/.next/standalone/app/components/UpdatePanel.js +22 -22
- package/.next/standalone/app/components/UserProvider.js +22 -15
- package/.next/standalone/app/components/settings/AppearanceSection.js +47 -24
- package/.next/standalone/app/components/settings/DataSection.js +276 -109
- package/.next/standalone/app/components/settings/NetworkHealthSection.js +13 -13
- package/.next/standalone/app/components/settings/SectorPicker.js +12 -12
- package/.next/standalone/app/components/settings/SectorSection.js +13 -14
- package/.next/standalone/app/components/settings/TierSection.js +9 -9
- package/.next/standalone/app/components/settings/TitleSection.js +11 -11
- package/.next/standalone/app/components/settings/UsageSection.js +313 -0
- package/.next/standalone/app/components/ui.js +8 -8
- package/.next/standalone/app/globals.css +159 -2
- package/.next/standalone/app/import/page.js +94 -38
- package/.next/standalone/app/launch/page.js +5 -5
- package/.next/standalone/app/layout.js +6 -2
- package/.next/standalone/app/page.js +53 -37
- package/.next/standalone/app/paths/page.js +63 -63
- package/.next/standalone/app/profile/page.js +58 -58
- package/.next/standalone/app/queue/page.js +54 -54
- package/.next/standalone/app/scores/page.js +2 -2
- package/.next/standalone/app/settings/page.js +16 -13
- package/.next/standalone/app/setup/page.js +221 -125
- package/.next/standalone/app/social/Crm.js +63 -62
- package/.next/standalone/app/social/SocialHub.js +22 -22
- package/.next/standalone/app/social/Thread.js +7 -7
- package/.next/standalone/app/social/page.js +2 -2
- package/.next/standalone/lib/backups.js +458 -0
- package/.next/standalone/lib/chain-layout.js +32 -0
- package/.next/standalone/lib/csv-store.js +131 -0
- package/.next/standalone/lib/csv.js +137 -39
- package/.next/standalone/lib/data-folder.js +19 -3
- package/.next/standalone/lib/data-import.js +5 -2
- package/.next/standalone/lib/db-client.js +78 -20
- package/.next/standalone/lib/demo.js +5 -4
- package/.next/standalone/lib/galaxy-export.js +9 -2
- package/.next/standalone/lib/galaxy-lab.js +19 -5
- package/.next/standalone/lib/galaxy-layouts.js +43 -0
- package/.next/standalone/lib/gate.js +10 -4
- package/.next/standalone/lib/ingest.js +1 -1
- package/.next/standalone/lib/linkedin-limits.js +212 -11
- package/.next/standalone/lib/liquid-glass.js +59 -0
- package/.next/standalone/lib/notifications.js +13 -0
- package/.next/standalone/lib/scan-pace.js +11 -0
- package/.next/standalone/lib/scan-progress.js +20 -0
- package/.next/standalone/lib/scan-risk.js +44 -0
- package/.next/standalone/lib/scanner-setup.js +97 -15
- package/.next/standalone/lib/scraper-client.js +17 -3
- package/.next/standalone/lib/search-risk.js +7 -3
- package/.next/standalone/lib/settings-client.js +5 -3
- package/.next/standalone/lib/settings.js +10 -0
- package/.next/standalone/lib/social-store.js +3 -2
- package/.next/standalone/lib/synced-setting.js +46 -0
- package/.next/standalone/lib/theme-store.js +42 -10
- package/.next/standalone/lib/themes.js +111 -21
- package/.next/standalone/lib/usage.js +195 -0
- package/.next/standalone/package-lock.json +2 -2
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/scripts/scrape.py +26 -2
- package/.next/static/chunks/03-_esd2x_yk6.js +1 -0
- package/.next/static/chunks/03-demj2iy-0p.js +44 -0
- package/.next/static/chunks/0_1r-3csplxnj.js +1 -0
- package/.next/static/chunks/0an_b6zi1r_qq.js +5 -0
- package/.next/static/chunks/0e3g0sil79cus.js +21 -0
- package/.next/static/chunks/0kscsqnvfq3-r.js +1 -0
- package/.next/static/chunks/0p3g5tfostsep.js +7 -0
- package/.next/static/chunks/0zd0t7e60bn4z.js +1 -0
- package/.next/static/chunks/163b-20vwa06i.js +34 -0
- package/.next/static/chunks/{0ws7zy0w57ufi.js → 1eyajb9ntzlrl.js} +1 -1
- package/.next/static/chunks/1pa-2v1ajvrko.js +1 -0
- package/.next/static/chunks/1qbjermbf68xj.js +1 -0
- package/.next/static/chunks/1z9lb-dbcg4aa.js +1 -0
- package/.next/static/chunks/23_1z47al92nz.js +57 -0
- package/.next/static/chunks/260bomtr214m8.js +34 -0
- package/.next/static/chunks/2eo9pqq9gay3r.js +34 -0
- package/.next/static/chunks/2xk2ra4piiuod.js +34 -0
- package/.next/static/chunks/2z1-q0_vunbql.js +2 -0
- package/.next/static/chunks/2zf4jmz9l3li2.js +1 -0
- package/.next/static/chunks/34g73qhayuevu.js +1 -0
- package/.next/static/chunks/3b0-14cxqsprt.js +1 -0
- package/.next/static/chunks/3jarus1_38s2z.js +1 -0
- package/.next/static/chunks/3ssu341hav_sq.css +3 -0
- package/.next/static/chunks/3v1qd3sqhqn0d.js +1 -0
- package/.next/static/chunks/43pg2sursiypz.js +1 -0
- package/.next/static/chunks/44yn0tcd9dfk3.js +1 -0
- package/CHANGELOG.md +143 -0
- package/README.md +71 -49
- package/SECURITY.md +17 -11
- package/lib/backups.js +458 -0
- package/lib/chain-layout.js +32 -0
- package/lib/csv-store.js +131 -0
- package/lib/csv.js +137 -39
- package/lib/data-folder.js +19 -3
- package/lib/data-import.js +5 -2
- package/lib/db-client.js +78 -20
- package/lib/demo.js +5 -4
- package/lib/galaxy-export.js +9 -2
- package/lib/galaxy-lab.js +19 -5
- package/lib/galaxy-layouts.js +43 -0
- package/lib/gate.js +10 -4
- package/lib/ingest.js +1 -1
- package/lib/linkedin-limits.js +212 -11
- package/lib/liquid-glass.js +59 -0
- package/lib/notifications.js +13 -0
- package/lib/scan-pace.js +11 -0
- package/lib/scan-progress.js +20 -0
- package/lib/scan-risk.js +44 -0
- package/lib/scanner-setup.js +97 -15
- package/lib/scraper-client.js +17 -3
- package/lib/search-risk.js +7 -3
- package/lib/settings-client.js +5 -3
- package/lib/settings.js +10 -0
- package/lib/social-store.js +3 -2
- package/lib/synced-setting.js +46 -0
- package/lib/theme-store.js +42 -10
- package/lib/themes.js +111 -21
- package/lib/usage.js +195 -0
- package/package.json +1 -1
- package/scripts/scrape.py +26 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0-rnla2._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__14ou7j5._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__16iu0hv._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1kbl21f._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1rphsdk._.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_0851sk0._.js +0 -8
- package/.next/standalone/.next/server/chunks/lib_1q7p2ro._.js +0 -8
- package/.next/standalone/.next/server/chunks/lib_1r6l86l._.js +0 -8
- package/.next/standalone/.next/server/chunks/lib_db-client_15le7cw.js +0 -174
- package/.next/standalone/.next/server/chunks/lib_rpc_04s8mzr.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_053z7as.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_0b_-2te.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_0dhbxdm.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_0dxlk31.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_0f8b-qc.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_0pzie7_.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_0r76fq_.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_0ut7pjp.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_15zyqaz.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_18zpjtq.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_1a8xkiz.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_1e_55xo.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_1oxfd1_.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_1s0lod0.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__08oxiqh._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_03l7vge._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_08g31gm._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0gk_ofx._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0nwsf93._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0vho1lb._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_1-658fq._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_1bc46kz._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_2105jz8._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/app_components_settings_SectorPicker_1c-29qw.js +0 -3
- package/.next/standalone/.next/static/chunks/02pq76u7y4v9-.js +0 -22
- package/.next/standalone/.next/static/chunks/0cmq0exd4d0h9.js +0 -1
- package/.next/standalone/.next/static/chunks/0i02yxppzds1o.js +0 -1
- package/.next/standalone/.next/static/chunks/0m_p4k-q2qh--.js +0 -1
- package/.next/standalone/.next/static/chunks/0oyslj62jkubd.js +0 -1
- package/.next/standalone/.next/static/chunks/0vo-l8hxneba6.css +0 -3
- package/.next/standalone/.next/static/chunks/0yh8z2tbrc5i_.js +0 -1
- package/.next/standalone/.next/static/chunks/17-rhp8sg4m1b.js +0 -44
- package/.next/standalone/.next/static/chunks/172e10mi-tpo_.js +0 -34
- package/.next/standalone/.next/static/chunks/1ei5vbe2uw6fl.js +0 -1
- package/.next/standalone/.next/static/chunks/1f7_pl_wq7lh3.js +0 -11
- package/.next/standalone/.next/static/chunks/1jzbe7zdx9vbj.js +0 -2
- package/.next/standalone/.next/static/chunks/1m3017gp790pw.js +0 -45
- package/.next/standalone/.next/static/chunks/1t20e8u0st7ep.js +0 -1
- package/.next/standalone/.next/static/chunks/2-ch9rm27eril.js +0 -11
- package/.next/standalone/.next/static/chunks/2ldv-v3s9yaif.js +0 -1
- package/.next/standalone/.next/static/chunks/3bp284gjf7dyq.js +0 -1
- package/.next/standalone/.next/static/chunks/3k1f6clbn3gj3.js +0 -7
- package/.next/standalone/.next/static/chunks/3l4t8je6iguzc.js +0 -1
- package/.next/standalone/.next/static/chunks/3tplzuc9jk-tl.js +0 -1
- package/.next/standalone/.next/static/chunks/42m0bqr8pbovz.js +0 -11
- package/.next/static/chunks/02pq76u7y4v9-.js +0 -22
- package/.next/static/chunks/0cmq0exd4d0h9.js +0 -1
- package/.next/static/chunks/0i02yxppzds1o.js +0 -1
- package/.next/static/chunks/0m_p4k-q2qh--.js +0 -1
- package/.next/static/chunks/0oyslj62jkubd.js +0 -1
- package/.next/static/chunks/0vo-l8hxneba6.css +0 -3
- package/.next/static/chunks/0yh8z2tbrc5i_.js +0 -1
- package/.next/static/chunks/17-rhp8sg4m1b.js +0 -44
- package/.next/static/chunks/172e10mi-tpo_.js +0 -34
- package/.next/static/chunks/1ei5vbe2uw6fl.js +0 -1
- package/.next/static/chunks/1f7_pl_wq7lh3.js +0 -11
- package/.next/static/chunks/1jzbe7zdx9vbj.js +0 -2
- package/.next/static/chunks/1m3017gp790pw.js +0 -45
- package/.next/static/chunks/1t20e8u0st7ep.js +0 -1
- package/.next/static/chunks/2-ch9rm27eril.js +0 -11
- package/.next/static/chunks/2ldv-v3s9yaif.js +0 -1
- package/.next/static/chunks/3bp284gjf7dyq.js +0 -1
- package/.next/static/chunks/3k1f6clbn3gj3.js +0 -7
- package/.next/static/chunks/3l4t8je6iguzc.js +0 -1
- package/.next/static/chunks/3tplzuc9jk-tl.js +0 -1
- package/.next/static/chunks/42m0bqr8pbovz.js +0 -11
- /package/.next/standalone/.next/static/{dQUvvVSXqbkEFC3-CNcwT → ZVpLBK-2vpllv2HxOFs2d}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{dQUvvVSXqbkEFC3-CNcwT → ZVpLBK-2vpllv2HxOFs2d}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{dQUvvVSXqbkEFC3-CNcwT → ZVpLBK-2vpllv2HxOFs2d}/_ssgManifest.js +0 -0
- /package/.next/static/{dQUvvVSXqbkEFC3-CNcwT → ZVpLBK-2vpllv2HxOFs2d}/_buildManifest.js +0 -0
- /package/.next/static/{dQUvvVSXqbkEFC3-CNcwT → ZVpLBK-2vpllv2HxOFs2d}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{dQUvvVSXqbkEFC3-CNcwT → ZVpLBK-2vpllv2HxOFs2d}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[78793,e=>{"use strict";var t=e.i(50227),r=e.i(60526),a=e.i(
|
|
1
|
+
module.exports=[78793,e=>{"use strict";var t=e.i(50227),r=e.i(60526),a=e.i(73156),n=e.i(51373),i=e.i(33471),s=e.i(14223),o=e.i(25232);function l(e){let t=()=>e.prepare("SELECT id, degree, profile_url, tier FROM linkedin_connections").all();try{let e=new Map(t().map(e=>[e.id,e.tier])),{scored:r}=(0,i.rescoreAll)(),{people:a,up:n,down:o}=(0,s.tierMoves)(t(),t=>e.get(t.id),e=>e.tier,{examples:0});return{scored:r,people:a,moved:n+o,up:n,down:o}}catch(e){throw Error(`Saved, but rescoring your network failed (${e.message}). It will try again the next time the map loads.`)}}let u={titleRanking:{changed:(e,t)=>(0,o.rankingFingerprint)(e)!==(0,o.rankingFingerprint)(t),run:e=>l(e)},tierScale:{run:e=>l(e)},sectorFocus:{changed:(e,t)=>!(0,s.sameFocus)(e,t),run(e,t,r){try{let{scored:e,people:t,up:a,down:n}=(0,i.rescoreAll)({compareWith:r??s.NO_FOCUS});return{scored:e,people:t,moved:a+n,up:a,down:n}}catch(e){throw Error(`Saved, but rescoring your network failed (${e.message}). It will try again the next time the map loads.`)}}}},d=(e,t)=>JSON.stringify(e)!==JSON.stringify(t);var c=e.i(10960),p=e.i(12506),h=e.i(48170);async function g(){try{let e;return Response.json({settings:(0,n.readSettings)((0,a.getDb)()),about:(e=t.default.resolve((0,c.dataDir)()),{version:h.APP_VERSION,kind:(0,c.isGitCheckout)()?"git":(0,p.installKind)(process.env,(0,c.projectRoot)()),dataDir:e,customDataDir:e!==t.default.join((0,r.homedir)(),".six-degrees")})})}catch(e){return Response.json({error:e.message},{status:500})}}async function R(e){let t,r,i;try{t=await e.json()}catch{return Response.json({error:"Send the settings as JSON."},{status:400})}try{r=(0,n.readSettings)((0,a.getDb)()),i=(0,n.writeSettings)((0,a.getDb)(),t?.settings)}catch(e){return Response.json({error:e.message},{status:e instanceof n.SettingsError?400:500})}try{let e=function(e,t,r,a=u){let n=null,i=[];for(let[s,{changed:o=d,run:l}]of Object.entries(a))if(o(t?.[s],r?.[s]))try{let a=l(e,r?.[s],t?.[s]);n={...n,[s]:a}}catch(e){i.push(e.message)}if(i.length)throw Object.assign(Error(i.join(" ")),{effects:n});return n}((0,a.getDb)(),r,i);return Response.json(e?{settings:i,effects:e}:{settings:i})}catch(e){return Response.json({settings:i,...e.effects?{effects:e.effects}:{},error:e.message},{status:500})}}e.s(["GET",0,g,"POST",0,R],78793)},85783,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),i=e.i(61916),s=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),g=e.i(26937),R=e.i(10372),f=e.i(93695);e.i(52474);var v=e.i(220);let m=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/settings/route",pathname:"/api/settings",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/settings/route.js",nextConfigOutput:"standalone",userland:()=>e.r(78793),...{}}),{workAsyncStorage:E,workUnitAsyncStorage:w,serverHooks:C}=m;async function y(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),m.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let E="/api/settings/route";E=E.replace(/\/index$/,"")||"/";let w=await m.prepare(e,t,{srcPage:E,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:C,deploymentId:y,params:S,nextConfig:x,parsedUrl:A,isDraftMode:b,prerenderManifest:T,routerServerContext:O,isOnDemandRevalidate:N,revalidateOnlyGenerated:P,resolvedPathname:_,clientReferenceManifest:k,serverActionsManifest:D}=w,j=(0,o.normalizeAppPath)(E),I=!!(T.dynamicRoutes[j]||T.routes[_]),q=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,A,!1):t.end("This page could not be found"),null);if(I&&!b){let e=!!T.routes[_],t=T.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(x.adapterPath)return await q();throw new f.NoFallbackError}}let H=null;!I||m.isDev||b||(H="/index"===(H=_)?"/":H);let M=!0===m.isDev||!I,U=I&&!M;D&&k&&(0,s.setManifestsSingleton)({page:E,clientReferenceManifest:k,serverActionsManifest:D});let F=e.method||"GET",K=(0,i.getTracer)(),$=K.getActiveScopeSpan(),L=!!(null==O?void 0:O.isWrappedByNextServer),G=!!(0,n.getRequestMeta)(e,"minimalMode"),B=(0,n.getRequestMeta)(e,"incrementalCache")||await m.getIncrementalCache(e,x,T,G);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let V={params:S,previewProps:T.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts,useCacheTimeout:x.experimental.useCacheTimeout},cacheComponents:!!x.cacheComponents,validationLevel:x.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:B,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:x.cacheLife,staticPageGenerationTimeout:x.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>m.onRequestError(e,t,a,n,O)},sharedContext:{buildId:C,deploymentId:y}},J=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),X=u.NextRequestAdapter.fromNodeNextRequest(J,(0,u.signalFromNodeResponse)(t)),z=async({previousCacheEntry:r})=>{try{if(!G&&N&&P&&!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(X,V);e.fetchMetrics=V.renderOpts.fetchMetrics;let i=V.renderOpts.pendingWaitUntil;i&&a.waitUntil&&(a.waitUntil(i),i=void 0);let s=V.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(J,W,n,i),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);s&&(t[R.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,a=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=R.INFINITE_CACHE?!1!==r&&r>0?x.expireTime:void 0:V.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:E,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:N})},!1,O),t}},Z=async(n,s)=>{try{var o,l;let n=await m.handleResponse({req:e,nextConfig:x,cacheKey:H,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:P,responseGenerator:z,waitUntil:a.waitUntil,isMinimalMode:G});if(!I)return;if((null==n||null==(o=n.value)?void 0:o.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});G||t.setHeader("x-nextjs-cache",N?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let i=(0,h.fromNodeOutgoingHttpHeaders)(n.value.headers);G&&I||i.delete(R.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||i.get("Cache-Control")||i.set("Cache-Control",(0,g.getCacheControlHeader)(n.cacheControl)),await (0,p.sendResponse)(J,W,new Response(n.value.body,{headers:i,status:n.value.status||200}));return}catch(t){if(t instanceof f.NoFallbackError||await m.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:N})},!1,O),I)throw t;await (0,p.sendResponse)(J,W,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:i.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let r=K.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.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")||j,o=`${F} ${a}`;n.setAttributes({"next.route":a,"http.route":a,"next.span_name":o}),n.updateName(o),s&&s!==n&&(s.setAttribute("http.route",a),s.updateName(o))})()}};if(L&&$)await Z($,void 0);else{let t=K.getActiveScopeSpan();await K.withPropagatedContext(e.headers,()=>K.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${E}`,kind:i.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>Z(e,t)),void 0,!L)}}e.s(["handler",0,y,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:w})},"routeModule",0,m,"serverHooks",0,C,"workAsyncStorage",0,E,"workUnitAsyncStorage",0,w])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_072jl0y._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[65790,e=>{"use strict";var t=e.i(
|
|
1
|
+
module.exports=[65790,e=>{"use strict";var t=e.i(73156),r=e.i(68835),a=e.i(73253),n=e.i(33471),o=e.i(76407);let s=new Set(r.KNOWN_COMPANIES.map(([e])=>e)),i=o.LEGACY_SCORES.map(([e,t,r,a])=>({name:e,score:t,names:r,industry:a})),l=new Map(i.map(e=>[e.name,e])),u=/\b(school|college|university)\b/;function c(e=(0,t.getDb)()){return e.prepare("SELECT value FROM app_meta WHERE key = ?").get(o.LEGACY_OFFER_KEY)?.value??null}function p(e=(0,t.getDb)()){if("open"!==c(e))return null;let o=(0,n.scoringRows)(e);if(!o.length)return d(e);let h=(0,n.companyOverrides)(e),m=(0,r.readNetwork)(o,{industryOf:a.industryKeyOf}),f=new Map,R=new Map;for(let[e,{headcount:t,industry:a}]of m.companies){if(!t||h.has(e))continue;let n=function(e){if(!e)return null;if(s.has(e))return l.get(e)||null;let t=e.toLowerCase(),r=t.replace(/^the /,""),a=u.test(t);for(let e of i)if(!s.has(e.name)&&(!a||"education"===e.industry)&&(e.names.test(t)||e.names.test(r)||t===e.name.toLowerCase()))return e;return null}(e);if(!n)continue;let o=(0,r.companyScore)(e,{headcount:t,industry:a});if(o.score===n.score)continue;let c=f.get(n.name)||{name:n.name,was:n.score,names:[],people:new Set};c.names.push({name:e,now:o,headcount:t}),f.set(n.name,c),R.set(e,c)}if(!f.size)return d(e);for(let e of o)for(let t of m.people.get(e).roles)!t.former&&R.has(t.company)&&R.get(t.company).people.add(e.profile_url||e.id);let E=[...f.values()].map(e=>{let t=e.names.reduce((e,t)=>t.headcount>e.headcount||t.headcount===e.headcount&&t.name<e.name?t:e);return{name:e.name,was:e.was,now:t.now.score,estimated:!["known","data"].includes(t.now.source),people:e.people.size,names:e.names.map(e=>e.name).sort()}});return E.sort((e,t)=>t.people-e.people||e.name.localeCompare(t.name)),{companies:E}}function d(e){return e.prepare("UPDATE app_meta SET value = 'none' WHERE key = ? AND value = 'open'").run(o.LEGACY_OFFER_KEY),null}async function h(){try{return Response.json({offer:p()})}catch(e){return Response.json({error:e.message},{status:500})}}async function m(e){let r;try{r=function(e){let t=e?.keep;if(!Array.isArray(t)||t.length>100||!t.every(e=>"string"==typeof e&&e.length<=200))throw Error("Send the companies to keep as a list of names (an empty list for No thanks).");return t}(await e.json())}catch(e){return Response.json({error:e instanceof SyntaxError?"Send the answer as JSON.":e.message},{status:400})}try{return Response.json({success:!0,...function(e=[],{db:r=(0,t.getDb)(),rescore:a=n.rescoreAll}={}){if("open"!==c(r))return{kept:[],scored:0};let s=new Set(e),i=(p(r)?.companies||[]).filter(e=>s.has(e.name)).map(e=>({name:e.name,score:e.was,names:e.names}));r.exec("BEGIN");try{(0,n.setCompanyScores)(r,i.flatMap(e=>e.names.map(t=>[t,e.score]))),r.prepare("UPDATE app_meta SET value = ? WHERE key = ?").run(i.length?"kept":"declined",o.LEGACY_OFFER_KEY),r.exec("COMMIT")}catch(e){throw r.exec("ROLLBACK"),e}if(!i.length)return{kept:i,scored:0};try{return{kept:i,scored:a().scored}}catch(e){try{r.prepare("DELETE FROM app_meta WHERE key = 'scoring_version'").run()}catch{}throw Object.assign(Error(`Kept, but rescoring your network failed (${e.message}). It will try again the next time the map loads.`),{kept:i})}}(r)})}catch(e){return Response.json({error:e.message,...e.kept?{kept:e.kept}:{}},{status:500})}}e.s(["GET",0,h,"POST",0,m],65790)},51814,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),o=e.i(61916),s=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),m=e.i(26937),f=e.i(10372),R=e.i(93695);e.i(52474);var E=e.i(220);let g=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/company-scores/legacy/route",pathname:"/api/company-scores/legacy",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/company-scores/legacy/route.js",nextConfigOutput:"standalone",userland:()=>e.r(65790),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:y,serverHooks:w}=g;async function C(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),g.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/company-scores/legacy/route";v=v.replace(/\/index$/,"")||"/";let y=await g.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,deploymentId:C,params:A,nextConfig:S,parsedUrl:x,isDraftMode:T,prerenderManifest:O,routerServerContext:_,isOnDemandRevalidate:N,revalidateOnlyGenerated:b,resolvedPathname:P,clientReferenceManifest:k,serverActionsManifest:M}=y,H=(0,i.normalizeAppPath)(v),I=!!(O.dynamicRoutes[H]||O.routes[P]),D=async()=>((null==_?void 0:_.render404)?await _.render404(e,t,x,!1):t.end("This page could not be found"),null);if(I&&!T){let e=!!O.routes[P],t=O.dynamicRoutes[H];if(t&&!1===t.fallback&&!e){if(S.adapterPath)return await D();throw new R.NoFallbackError}}let q=null;!I||g.isDev||T||(q="/index"===(q=P)?"/":q);let L=!0===g.isDev||!I,U=I&&!L;M&&k&&(0,s.setManifestsSingleton)({page:v,clientReferenceManifest:k,serverActionsManifest:M});let F=e.method||"GET",j=(0,o.getTracer)(),K=j.getActiveScopeSpan(),G=!!(null==_?void 0:_.isWrappedByNextServer),B=!!(0,n.getRequestMeta)(e,"minimalMode"),$=(0,n.getRequestMeta)(e,"incrementalCache")||await g.getIncrementalCache(e,S,O,B);null==$||$.resetRequestCache(),globalThis.__incrementalCache=$;let W={params:A,previewProps:O.preview,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts,useCacheTimeout:S.experimental.useCacheTimeout},cacheComponents:!!S.cacheComponents,validationLevel:S.experimental.instantInsights.validationLevel,supportsDynamicResponse:L,incrementalCache:$,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:S.cacheLife,staticPageGenerationTimeout:S.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>g.onRequestError(e,t,a,n,_)},sharedContext:{buildId:w,deploymentId:C}},Y=new l.NodeNextRequest(e),z=new l.NodeNextResponse(t),V=u.NextRequestAdapter.fromNodeNextRequest(Y,(0,u.signalFromNodeResponse)(t)),X=async({previousCacheEntry:r})=>{try{if(!B&&N&&b&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await g.handle(V,W);e.fetchMetrics=W.renderOpts.fetchMetrics;let o=W.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let s=W.renderOpts.collectedTags;if(!I)return await (0,d.sendResponse)(Y,z,n,o),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);s&&(t[f.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,a=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=f.INFINITE_CACHE?!1!==r&&r>0?S.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:E.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 g.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:N})},!1,_),t}},J=async(n,s)=>{try{var i,l;let n=await g.handleResponse({req:e,nextConfig:S,cacheKey:q,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:O,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:b,responseGenerator:X,waitUntil:a.waitUntil,isMinimalMode:B});if(!I)return;if((null==n||null==(i=n.value)?void 0:i.kind)!==E.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});B||t.setHeader("x-nextjs-cache",N?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let o=(0,h.fromNodeOutgoingHttpHeaders)(n.value.headers);B&&I||o.delete(f.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||o.get("Cache-Control")||o.set("Cache-Control",(0,m.getCacheControlHeader)(n.cacheControl)),await (0,d.sendResponse)(Y,z,new Response(n.value.body,{headers:o,status:n.value.status||200}));return}catch(t){if(t instanceof R.NoFallbackError||await g.onRequestError(e,t,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:N})},!1,_),I)throw t;await (0,d.sendResponse)(Y,z,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:o.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let r=j.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=`${F} ${a}`;n.setAttributes({"next.route":a,"http.route":a,"next.span_name":i}),n.updateName(i),s&&s!==n&&(s.setAttribute("http.route",a),s.updateName(i))})()}};if(G&&K)await J(K,void 0);else{let t=j.getActiveScopeSpan();await j.withPropagatedContext(e.headers,()=>j.trace(c.BaseServerSpan.handleRequest,{spanName:`${F} ${v}`,kind:o.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>J(e,t)),void 0,!G)}}e.s(["handler",0,C,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:y})},"routeModule",0,g,"serverHooks",0,w,"workAsyncStorage",0,v,"workUnitAsyncStorage",0,y])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_0lw8_i0._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[98992,e=>{"use strict";var t=e.i(73156),r=e.i(19041),n=e.i(88602),a=e.i(2157),o=e.i(50227),i=e.i(99628),s=e.i(26525);let l=["id","name","role","company","profile_url","connected_date"],u=/^\d{4}-\d{2}-\d{2}$/;class d extends Error{}let c=(e,{empty:t=!0}={})=>"string"==typeof e&&e.length<=2e3&&(t||""!==e.trim());function p(e){if(!Array.isArray(e))return"it has no list of people";if(!e.length)return"it has nobody in it";if(e.length>5e4)return`it has ${e.length.toLocaleString("en-US")} people, more than the ${5e4.toLocaleString("en-US")} it can hold`;let t=new Set;for(let r=0;r<e.length;r++){let n=e[r],a=`person ${r+1}`;if(!Array.isArray(n)||n.length!==l.length)return`${a} isn't laid out the way the import keeps people`;let[o,i,s,d,p,h]=n;if(!c(o,{empty:!1})||!c(i,{empty:!1}))return`${a} has a name or id that is missing or too long`;if(!c(s)||!c(d))return`${a} has a position or company that isn't text, or is too long`;if(null!==p&&!c(p))return`${a} has a profile link that isn't text, or is too long`;if(null!==h&&!("string"==typeof h&&u.test(h)))return`${a} has a date that isn't one`;if(t.has(o))return`two people share the id ${JSON.stringify(o.slice(0,40))}`;t.add(o)}return null}async function h(){let e,{csv:r,problem:i}=function(e){var t;let r,n,i=o.default.join(e,s.CSV_NETWORK_FILE);try{r=(0,a.lstatSync)(i)}catch(e){if("ENOENT"===e.code)return{csv:null,problem:null};return{csv:null,problem:`it couldn't be opened (${e.code||e.message})`}}if(!r.isFile())return{csv:null,problem:"it isn't a plain file"};try{n=JSON.parse((0,a.readFileSync)(i,"utf8"))}catch(e){return{csv:null,problem:e instanceof SyntaxError?"it isn't readable JSON":`it couldn't be read (${e.code||e.message})`}}let l=!(t=n)||"object"!=typeof t||Array.isArray(t)?"it isn't what Six Degrees writes":1!==t.format?Number.isInteger(t.format)&&t.format>1?"it was written by a newer Six Degrees than this one":"it isn't what Six Degrees writes":"string"!=typeof t.importedAt||Number.isNaN(Date.parse(t.importedAt))?"it doesn't say when it was imported":p(t.connections);return l?{csv:null,problem:l}:{csv:{connections:n.connections,importedAt:n.importedAt,people:n.connections.length},problem:null}}((0,t.dataDir)());try{let t=(0,n.resolveProfile)({create:!1});e=t?(0,n.networkCounts)(t.id).first:0}catch(e){return Response.json({error:`Your network couldn't be read (${e.message}).`},{status:500})}return Response.json({csv:r,scanned:e,problem:i?`Your kept CSV import couldn't be read: ${i}. Import Connections.csv again to replace it.`:null})}async function m(e){let n,a=(0,t.dataDir)();if((0,r.pendingImport)(a))return Response.json({error:"A copy of a network is waiting to finish importing. Restart Six Degrees to finish it first (Settings → Your data says how), then import the CSV."},{status:409});try{n=await e.json()}catch{return Response.json({error:"The import didn't arrive whole, so nothing was kept. Try again."},{status:400})}try{return Response.json({ok:!0,...function(e,t,{now:r=new Date}={}){let n=p(t);if(n)throw new d(n);let a={format:1,source:"csv",importedAt:r.toISOString(),columns:l,connections:t};return i.durable.writeFileDurably(o.default.join(e,s.CSV_NETWORK_FILE),JSON.stringify(a)),{people:t.length,importedAt:a.importedAt}}(a,n?.connections)})}catch(e){if(e instanceof d)return Response.json({error:`This import can't be kept (${e.message}), so nothing was saved.`},{status:400});return Response.json({error:`The import couldn't be saved on this computer (${e.message}).`},{status:500})}}async function f(){try{return Response.json({ok:!0,removed:function(e){let t=o.default.join(e,s.CSV_NETWORK_FILE),r=!0;try{(0,a.lstatSync)(t)}catch{r=!1}return(0,a.rmSync)(t,{force:!0}),r&&i.durable.syncFolder(e),r}((0,t.dataDir)())})}catch(e){return Response.json({error:`The import couldn't be removed (${e.message}). It is ${s.CSV_NETWORK_FILE} in your data folder.`},{status:500})}}e.s(["DELETE",0,f,"GET",0,h,"POST",0,m],98992)},71195,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),a=e.i(59756),o=e.i(61916),i=e.i(74677),s=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),m=e.i(26937),f=e.i(10372),g=e.i(93695);e.i(52474);var R=e.i(220);let v=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/data/csv/route",pathname:"/api/data/csv",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/data/csv/route.js",nextConfigOutput:"standalone",userland:()=>e.r(98992),...{}}),{workAsyncStorage:y,workUnitAsyncStorage:w,serverHooks:E}=v;async function S(e,t,n){n.requestMeta&&(0,a.setRequestMeta)(e,n.requestMeta),v.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/data/csv/route";y=y.replace(/\/index$/,"")||"/";let w=await v.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:E,deploymentId:S,params:C,nextConfig:b,parsedUrl:A,isDraftMode:T,prerenderManifest:x,routerServerContext:N,isOnDemandRevalidate:O,revalidateOnlyGenerated:_,resolvedPathname:P,clientReferenceManifest:I,serverActionsManifest:$}=w,D=(0,s.normalizeAppPath)(y),k=!!(x.dynamicRoutes[D]||x.routes[P]),j=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,A,!1):t.end("This page could not be found"),null);if(k&&!T){let e=!!x.routes[P],t=x.dynamicRoutes[D];if(t&&!1===t.fallback&&!e){if(b.adapterPath)return await j();throw new g.NoFallbackError}}let q=null;!k||v.isDev||T||(q="/index"===(q=P)?"/":q);let H=!0===v.isDev||!k,U=k&&!H;$&&I&&(0,i.setManifestsSingleton)({page:y,clientReferenceManifest:I,serverActionsManifest:$});let F=e.method||"GET",M=(0,o.getTracer)(),L=M.getActiveScopeSpan(),K=!!(null==N?void 0:N.isWrappedByNextServer),V=!!(0,a.getRequestMeta)(e,"minimalMode"),B=(0,a.getRequestMeta)(e,"incrementalCache")||await v.getIncrementalCache(e,b,x,V);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let G={params:C,previewProps:x.preview,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts,useCacheTimeout:b.experimental.useCacheTimeout},cacheComponents:!!b.cacheComponents,validationLevel:b.experimental.instantInsights.validationLevel,supportsDynamicResponse:H,incrementalCache:B,hmrRefreshHash:(0,a.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:b.cacheLife,staticPageGenerationTimeout:b.staticPageGenerationTimeout,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>v.onRequestError(e,t,n,a,N)},sharedContext:{buildId:E,deploymentId:S}},W=new l.NodeNextRequest(e),J=new l.NodeNextResponse(t),X=u.NextRequestAdapter.fromNodeNextRequest(W,(0,u.signalFromNodeResponse)(t)),Y=async({previousCacheEntry:r})=>{try{if(!V&&O&&_&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await v.handle(X,G);e.fetchMetrics=G.renderOpts.fetchMetrics;let o=G.renderOpts.pendingWaitUntil;o&&n.waitUntil&&(n.waitUntil(o),o=void 0);let i=G.renderOpts.collectedTags;if(!k)return await (0,p.sendResponse)(W,J,a,o),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);i&&(t[f.NEXT_CACHE_TAGS_HEADER]=i),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,n=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=f.INFINITE_CACHE?!1!==r&&r>0?b.expireTime:void 0:G.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await v.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:O})},!1,N),t}},z=async(a,i)=>{try{var s,l;let a=await v.handleResponse({req:e,nextConfig:b,cacheKey:q,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:x,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:_,responseGenerator:Y,waitUntil:n.waitUntil,isMinimalMode:V});if(!k)return;if((null==a||null==(s=a.value)?void 0:s.kind)!==R.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",O?"REVALIDATED":a.isMiss?"MISS":a.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let o=(0,h.fromNodeOutgoingHttpHeaders)(a.value.headers);V&&k||o.delete(f.NEXT_CACHE_TAGS_HEADER),!a.cacheControl||t.getHeader("Cache-Control")||o.get("Cache-Control")||o.set("Cache-Control",(0,m.getCacheControlHeader)(a.cacheControl)),await (0,p.sendResponse)(W,J,new Response(a.value.body,{headers:o,status:a.value.status||200}));return}catch(t){if(t instanceof g.NoFallbackError||await v.onRequestError(e,t,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:O})},!1,N),k)throw t;await (0,p.sendResponse)(W,J,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:o.SpanStatusCode.ERROR}),a.setAttribute("error.type",e.toString()));let r=M.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.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 n=r.get("next.route")||D,s=`${F} ${n}`;a.setAttributes({"next.route":n,"http.route":n,"next.span_name":s}),a.updateName(s),i&&i!==a&&(i.setAttribute("http.route",n),i.updateName(s))})()}};if(K&&L)await z(L,void 0);else{let t=M.getActiveScopeSpan();await M.withPropagatedContext(e.headers,()=>M.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${y}`,kind:o.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>z(e,t)),void 0,!K)}}e.s(["handler",0,S,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:y,workUnitAsyncStorage:w})},"routeModule",0,v,"serverHooks",0,E,"workAsyncStorage",0,y,"workUnitAsyncStorage",0,w])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_0sqqpzb._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[81638,e=>{"use strict";let t;var n=e.i(74533),r=e.i(2157),i=e.i(50227),o=e.i(10960),a=e.i(88602);let s=/LinkedIn reports (\d+) connections/,l=/^Downloading Python [\d.]+: ([\d.]+) of ([\d.]+) MB$/,u=/(\d+)\s*\/\s*(\d+)\s+collected/,d=/Collected all (\d+) connections/,c=/\[(\d+)\/(\d+)\]/,p=/^(Collected \d+ connections|Pushing \d+ connections|\s*Sent \d+ →|\s*Updating \d+ profile images|\s*\[image_store\]|\s*Images \d+-\d+)/;function
|
|
1
|
+
module.exports=[81638,e=>{"use strict";let t;var n=e.i(74533),r=e.i(2157),i=e.i(50227),o=e.i(10960),a=e.i(88602);let s=/LinkedIn reports (\d+) connections/,l=/^Downloading Python [\d.]+: ([\d.]+) of ([\d.]+) MB$/,u=/(\d+)\s*\/\s*(\d+)\s+collected/,d=/Collected all (\d+) connections/,c=/\[(\d+)\/(\d+)\]/,p=/^(Collected \d+ connections|Pushing \d+ connections|\s*Sent \d+ →|\s*Updating \d+ profile images|\s*\[image_store\]|\s*Images \d+-\d+)/,f=/^\[\d+\/\d+\] (.+) \([^()]*-tier, score [^()]*\)/;function h(e,t){return t?{done:Math.min(e,t),total:t,kind:"walk"}:null}var g=e.i(41238);function m(e,t){try{let n=JSON.parse((0,r.readFileSync)(i.default.join(e,"bridge-progress.json"),"utf8")),o=n?.[String(t||"default")];return o&&"object"==typeof o?o:{}}catch{return{}}}function y(e){try{return JSON.parse((0,r.readFileSync)(i.default.join(e,"bridge-unclear.json"),"utf8"))||{}}catch{return{}}}function b(e,t,n={},r={}){let i=[];for(let o of e){let e=o.profile_url,a=e?n[e]:void 0;if(!t.has(o.id)&&!a)continue;let s=function(e){if(!e)return 11;if(e.hidden||!e.more)return null;let t=(Number(e.pages)||0)+1;return t<=100?t:null}(a);null!=s&&i.push({id:o.id,name:o.name,tier:o.tier,profileUrl:e,pagesRead:s-1,nextPage:s,legacy:!a,at:a?.at||null,unclear:Number(r?.[e]?.n)||0,connected:o.connected_date||null,created:o.created_at||null})}let o=e=>`${+!!e.connected}|${e.connected||e.created||""}`;return i.sort((e,t)=>(e.unclear>=2)-(t.unclear>=2)||o(t).localeCompare(o(e))),i}var w=e.i(73156),v=e.i(80998),S=e.i(77524),R=e.i(1348),_=e.i(19041),E=e.i(98612),T=e.i(51373),k=e.i(95693),x=e.i(1746),C=e.i(66680),A=e.i(12714),N=e.i(98199),P=e.i(26525);let D=Object.freeze({release:"20260814",version:"3.12.14",builds:Object.freeze({"darwin-arm64":Object.freeze({file:"cpython-3.12.14+20260814-aarch64-apple-darwin-install_only.tar.gz",sha256:"4572133a5542f306b9bdb155da5800f9e38950cd0a98d469b832ce256fe299ea",size:0x17fc7f8}),"darwin-x64":Object.freeze({file:"cpython-3.12.14+20260814-x86_64-apple-darwin-install_only.tar.gz",sha256:"1a94c83264731e9603fbea78e57e7ca8f20e7d91eb866627ac2304621b0f6f1f",size:0x17b03bb}),"linux-x64":Object.freeze({file:"cpython-3.12.14+20260814-x86_64-unknown-linux-gnu-install_only_stripped.tar.gz",sha256:"5acfa3e9ba26b51ae161c83aff278da915b590d22373a424b2ba55b8afe91fcc",size:0x208fdfb}),"linux-arm64":Object.freeze({file:"cpython-3.12.14+20260814-aarch64-unknown-linux-gnu-install_only_stripped.tar.gz",sha256:"2d8e17dfd732102cfeb18e0e1fa6769b24caa034e159981129590fe409c7157a",size:0x1bdd3eb}),"win32-x64":Object.freeze({file:"cpython-3.12.14+20260814-x86_64-pc-windows-msvc-install_only_stripped.tar.gz",sha256:"89f18f6932917163b74339ebcec2645c8e47ae7f1c5f2ac37f2b4f4cf3beb647",size:0x14f5617})})}),j=Object.freeze({min:[3,10],max:[3,14]}),O=Object.freeze(["/usr/bin/python3","python3","python","python3.14","python3.13","python3.12","python3.11","python3.10"]),I=Object.freeze(["py","python","python3"]);function $(e,t=j){let n=String(e||"").match(/^(\d+)\.(\d+)/);if(!n)return!1;let r=[Number(n[1]),Number(n[2])],i=(e,t)=>e[0]-t[0]||e[1]-t[1];return i(r,t.min)>=0&&0>=i(r,t.max)}let M="import requests; from PIL import Image; from playwright.sync_api import sync_playwright",F=`import sys
|
|
2
2
|
print("version %d.%d.%d" % sys.version_info[:3])
|
|
3
3
|
try:
|
|
4
4
|
import venv, ensurepip
|
|
@@ -6,20 +6,20 @@ try:
|
|
|
6
6
|
except Exception:
|
|
7
7
|
pass
|
|
8
8
|
try:
|
|
9
|
-
${
|
|
9
|
+
${M}
|
|
10
10
|
print("imports")
|
|
11
11
|
except Exception as e:
|
|
12
|
-
print("missing %s: %s" % (type(e).__name__, (str(e).splitlines() or [""])[0][:200]))`;function $(e){let t={version:null,venv:!1,imports:!1,missing:null};for(let n of String(e||"").split("\n").map(e=>e.trim()))n.startsWith("version ")?t.version=n.slice(8).trim()||null:"venv"===n?t.venv=!0:"imports"===n?t.imports=!0:n.startsWith("missing ")&&(t.missing=n.slice(8).trim()||null);return t}let M=Object.freeze(["-E","-s","-B","-u","-X","utf8"]);function H(e=process.env){let t={};for(let[n,r]of Object.entries(e))n.startsWith("PYTHON")||(t[n]=r);return t.PYTHONNOUSERSITE="1",t.PYTHONDONTWRITEBYTECODE="1",t.PYTHONUTF8="1",t}function F(e=process.env){return{...e,PYTHONDONTWRITEBYTECODE:"1",PYTHONUTF8:"1"}}let U=new Set(["target","prefix","root","user"]);function L(e=process.env){let t={};for(let[n,r]of Object.entries(e))n.startsWith("PIP_")&&U.has(n.slice(4).toLowerCase().replace(/_/g,"-"))||(t[n]=r);return t}function z(e){return i.default.join(e,"venv")}function W(e,t=process.platform){return"win32"===t?i.default.join(z(e),"Scripts","python.exe"):i.default.join(z(e),"bin","python")}let q="python";function G(e,t=process.platform){return function(e,t=process.platform){return"win32"===t?i.default.join(e,"python.exe"):i.default.join(e,"bin","python3")}(i.default.join(e,q),t)}function B(e,t,{timeoutMs:r=8e3,env:i}={}){return new Promise(o=>{let a,s="",l="",u=!1,d=e=>{u||(u=!0,o(e))};try{a=(0,n.spawn)(e,t,{stdio:["ignore","pipe","pipe"],windowsHide:!0,...i?{env:i}:{}})}catch(e){d({ok:!1,stdout:s,stderr:l,problem:e.message});return}let c=(e,t)=>e.length<16384?e+t.toString():e;a.stdout.on("data",e=>{s=c(s,e)}),a.stderr.on("data",e=>{l=c(l,e)});let p=setTimeout(()=>{try{a.kill("SIGKILL")}catch{}d({ok:!1,stdout:s,stderr:l,problem:`it didn't answer within ${Math.round(r/1e3)} seconds`})},r);a.on("error",e=>{clearTimeout(p),d({ok:!1,stdout:s,stderr:l,problem:"ENOENT"===e.code?"it isn't there":e.message})}),a.on("close",(e,t)=>{clearTimeout(p);let n=l.trim().split("\n").pop()||"";d({ok:0===e,stdout:s,stderr:l,problem:0===e?null:t?`it was stopped (${t})`:n||`it exited with ${e}`})})})}async function K({bundled:e="",app:t="",dataDir:n,probe:o=B,exists:a=r.default.existsSync,host:s=null,systemCandidates:l=((e=process.platform)=>"win32"===e?D:j)(),timeouts:u={own:2e4,other:8e3},env:d=process.env}={}){let c={run:null,own:null,base:null,systemFound:null,download:null};if(e){let n=t&&i.default.resolve(e).startsWith(`${i.default.resolve(t)}${i.default.sep}`)?"bundled":"custom",r=await o(e,[...M,"-c",I],{timeoutMs:u.own,env:H(d)}),a=$(r.stdout);if(r.ok&&a.imports)return c.run={path:e,source:n,version:a.version},c;c.own={source:n,problem:a.missing||r.problem||"it didn't start"}}let p=W(n);if(a(p)){let e=await o(p,["-c",I],{timeoutMs:u.other,env:d}),t=$(e.stdout);if(e.ok&&t.imports)return c.run={path:p,source:"venv",version:t.version},c}let f=[];for(let e of l){let t=await o(e,["-c",I],{timeoutMs:u.other,env:d}),n=$(t.stdout);if(n.version){if(t.ok&&n.imports)return c.run={path:e,source:"system",version:n.version},c;f.push({path:e,version:n.version,venv:n.venv})}}let h=f.find(e=>e.venv&&O(e.version));if(h)return c.base={path:h.path,source:"system",version:h.version},c;let g=f.find(e=>O(e.version))||f[0];c.systemFound=g?{version:g.version,venv:g.venv}:null;let m=G(n);if(a(m)){let e=await o(m,[...M,"-c",I],{timeoutMs:u.other,env:H(d)}),t=$(e.stdout);if(e.ok&&t.venv)return c.base={path:m,source:"downloaded",version:t.version},c}return c.download=function(e,t=P){let n=e&&Object.hasOwn(t.builds,e)?t.builds[e]:null;return n?{key:e,version:t.version,release:t.release,...n,url:function(e,t=P){return`https://github.com/astral-sh/python-build-standalone/releases/download/${t.release}/${encodeURIComponent(e.file)}`}(n,t)}:null}(s),c}class X extends Error{}let Y=(...e)=>(globalThis.fetch?._nextOriginalFetch||globalThis.fetch)(...e),V=e=>(e/1048576).toFixed(1);async function J(e,t,{sha256:n,size:r,signal:i,onProgress:o,idleMs:a=3e4,fetchImpl:s=Y,from:l="GitHub"}={}){if(!/^[0-9a-f]{64}$/.test(String(n))||!(Number.isInteger(r)&&r>0))throw new X("There is no pinned checksum for this download, so it wasn't started.");let u=`${t}.part`,d=new AbortController,c=i?AbortSignal.any([i,d.signal]):d.signal,p=null,f=()=>{clearTimeout(p),p=setTimeout(()=>d.abort(new X(`The download stopped for ${Math.round(a/1e3)} seconds. Check your connection and try again.`)),a)};f();let h=await x.default.open(u,"w"),g=(0,T.createHash)("sha256"),m=0,y=!1;try{let t=await s(e,{signal:c,redirect:"follow",cache:"no-store",headers:{Accept:"application/octet-stream","User-Agent":"six-degrees-scanner-setup"}});if(!t.ok||!t.body)throw new X(`${l} answered ${t.status} to the download. Try again later.`);let i=Number(t.headers.get("content-length"))||null;if(i&&i!==r)throw new X(`The download isn't the size it should be (${i} bytes, not ${r}), so it was stopped.`);for await(let e of t.body){if(f(),(m+=e.byteLength)>r)throw new X("The download is bigger than it should be, so it was stopped.");g.update(e);let t=0;for(;t<e.byteLength;){let{bytesWritten:n}=await h.write(e,t,e.byteLength-t);t+=n}o?.(m,r)}if(m!==r)throw new X("The download ended early. Try again.");let a=g.digest("hex");if(a!==n)throw new X("The download doesn't match the checksum Six Degrees has for it, so it was deleted and nothing was unpacked.");return y=!0,a}catch(e){if(c.aborted&&c.reason instanceof Error)throw c.reason;throw e}finally{clearTimeout(p),await h.close(),y?await x.default.rename(u,t):await x.default.rm(u,{force:!0})}}async function Z(e,t,n){let o=i.default.join(e,"python");if(!await x.default.lstat(i.default.join(o,"bin","python3")).catch(()=>null))throw new X("The download didn't contain the Python it should have.");let a=i.default.join(t,q);return r.default.existsSync(a)&&await x.default.rename(a,i.default.join(n,"python-before")),await x.default.rename(o,a),G(t)}let Q=(0,_.registerScanState)({running:!1,action:null,target:null,recent:[],log:[],startedAt:null,exitCode:null,child:null,abort:null,stopping:!1,stderrTail:[],failure:null,pages:0}),ee=/^\s*Page \d+\.\.\.|\d+\s*\/\s*\d+\s+collected/;function et(e){for(let t of String(e).split("\n")){let e=t.replace(/\s+$/,"");e&&(Q.log.push(e),ee.test(e)&&(Q.pages+=1))}Q.log.length>500&&Q.log.splice(0,Q.log.length-500)}function en(){try{let e=(0,r.readFileSync)(i.default.join((0,o.dataDir)(),"bridge-skips.json"),"utf8"),t=JSON.parse(e);return Object.entries(t).map(([e,t])=>({profileUrl:e,name:t?.name??"",reason:t?.reason??"",at:t?.at??null}))}catch{return[]}}function er(){let e=[],t={};try{let n=(0,a.resolveProfile)({create:!1});if(n){let r=g((0,o.dataDir)(),n.id);for(let[n,i]of(e=Object.keys(r),Object.entries(r)))t[n]={pages:Number(i?.pages)||0,more:!!i?.more,total:Number(i?.total)||null}}}catch{}return{skips:en(),read:e,lists:t}}let ei={at:0,value:null},eo=null,ea=0;function es(){ea++,ei={at:0,value:null},eo=null}let el=Symbol.for("six-degrees.python-looker"),eu=globalThis[el]??=function({choose:e=K,now:t=Date.now,retryMs:n=6e4}={}){let r=null,i=null;return async function(o,a={}){if(o&&r?.path===o)return{run:r,own:null,base:null,systemFound:null,download:null};let s=!!o&&i?.path===o&&(!1===i.own.retry||t()-i.at<n),l=await e({...a,bundled:s?"":o});if(s)return{...l,own:i.own};if(o&&l.run?.path===o)r=l.run;else if(o&&l.own){let e="bundled"===l.own.source?{...l.own,retry:!1}:l.own;return i={path:o,at:t(),own:e},{...l,own:e}}return l}}();async function ed(){let e=(0,o.projectRoot)(),n=await eu(process.env.SIX_DEGREES_PYTHON||"",{app:process.env.SIX_DEGREES_APP||"",dataDir:(0,o.dataDir)(),host:(void 0===t&&(t=function({platform:e=process.platform,arch:t=process.arch,sysctlArm64:n=""}={}){return"darwin"===e?`darwin-${(0,k.chipOf)({sysctlArm64:n,processArch:t})}`:"linux"===e&&("x64"===t||"arm64"===t)?`linux-${t}`:null}({sysctlArm64:""})),t)}),a=(0,r.existsSync)("/opt/google/chrome/chrome"),s=i.default.join((0,o.dataDir)(),"chrome-profile","Default");return{root:e,python:n,chrome:a,signedIn:(0,r.existsSync)(i.default.join(s,"Cookies"))||(0,r.existsSync)(i.default.join(s,"Network","Cookies"))}}function ec(){if(Date.now()-ei.at<4e3&&ei.value)return Promise.resolve(ei.value);if(eo)return eo;let e=ea,t=ed().then(t=>(e===ea&&(ei={at:Date.now(),value:t}),t)).finally(()=>{eo===t&&(eo=null)});return eo=t,t}async function ep(){let e=await ec(),t={first:0,second:0,third:0},n=null;try{(n=(0,a.resolveProfile)({create:!1}))&&(t=(0,a.networkCounts)(n.id))}catch{}let r=0;try{r=(0,R.waitingPhotoCount)((0,b.getDb)())}catch{}let i=e.python;return{ready:!!(e.root&&i.run&&e.chrome),checks:{scriptsFound:!!e.root,python:!!(i.run||i.base),pythonPath:i.run?.path||i.base?.path||null,pythonVersion:i.run?.version||i.base?.version||null,pythonSource:i.run?.source||null,dependencies:!!i.run,ownPython:i.own,installFrom:i.base?{source:i.base.source,version:i.base.version}:null,systemPython:i.systemFound,download:i.download?{version:i.download.version,size:i.download.size,from:"github.com"}:null,chrome:e.chrome,signedIn:e.signedIn},network:t,photosWaiting:r,...ef(),skips:en(),linkedin:(0,h.linkedinState)((0,o.dataDir)()),paused:function(e){if(!e)return[];try{let t=(0,b.getDb)(),n=t.prepare(`SELECT id, name, tier, profile_url, connected_date, created_at
|
|
12
|
+
print("missing %s: %s" % (type(e).__name__, (str(e).splitlines() or [""])[0][:200]))`;function L(e){let t={version:null,venv:!1,imports:!1,missing:null};for(let n of String(e||"").split("\n").map(e=>e.trim()))n.startsWith("version ")?t.version=n.slice(8).trim()||null:"venv"===n?t.venv=!0:"imports"===n?t.imports=!0:n.startsWith("missing ")&&(t.missing=n.slice(8).trim()||null);return t}let H=Object.freeze(["-E","-s","-B","-u","-X","utf8"]);function U(e=process.env){let t={};for(let[n,r]of Object.entries(e))n.startsWith("PYTHON")||(t[n]=r);return t.PYTHONNOUSERSITE="1",t.PYTHONDONTWRITEBYTECODE="1",t.PYTHONUTF8="1",t}function W(e=process.env){return{...e,PYTHONDONTWRITEBYTECODE:"1",PYTHONUTF8:"1"}}let z=new Set(["target","prefix","root","user"]);function G(e=process.env){let t={};for(let[n,r]of Object.entries(e))n.startsWith("PIP_")&&z.has(n.slice(4).toLowerCase().replace(/_/g,"-"))||(t[n]=r);return t}function q(e){return i.default.join(e,"venv")}function B(e,t=process.platform){return"win32"===t?i.default.join(q(e),"Scripts","python.exe"):i.default.join(q(e),"bin","python")}let K="python";function X(e,t=process.platform){return function(e,t=process.platform){return"win32"===t?i.default.join(e,"python.exe"):i.default.join(e,"bin","python3")}(i.default.join(e,K),t)}function Y(e,t,{timeoutMs:r=8e3,env:i}={}){return new Promise(o=>{let a,s="",l="",u=!1,d=e=>{u||(u=!0,o(e))};try{a=(0,n.spawn)(e,t,{stdio:["ignore","pipe","pipe"],windowsHide:!0,...i?{env:i}:{}})}catch(e){d({ok:!1,stdout:s,stderr:l,problem:e.message});return}let c=(e,t)=>e.length<16384?e+t.toString():e;a.stdout.on("data",e=>{s=c(s,e)}),a.stderr.on("data",e=>{l=c(l,e)});let p=setTimeout(()=>{try{a.kill("SIGKILL")}catch{}d({ok:!1,stdout:s,stderr:l,problem:`it didn't answer within ${Math.round(r/1e3)} seconds`})},r);a.on("error",e=>{clearTimeout(p),d({ok:!1,stdout:s,stderr:l,problem:"ENOENT"===e.code?"it isn't there":e.message})}),a.on("close",(e,t)=>{clearTimeout(p);let n=l.trim().split("\n").pop()||"";d({ok:0===e,stdout:s,stderr:l,problem:0===e?null:t?`it was stopped (${t})`:n||`it exited with ${e}`})})})}async function J({bundled:e="",app:t="",dataDir:n,probe:o=Y,exists:a=r.default.existsSync,host:s=null,systemCandidates:l=((e=process.platform)=>"win32"===e?I:O)(),timeouts:u={own:2e4,other:8e3},env:d=process.env}={}){let c={run:null,own:null,base:null,systemFound:null,download:null};if(e){let n=t&&i.default.resolve(e).startsWith(`${i.default.resolve(t)}${i.default.sep}`)?"bundled":"custom",r=await o(e,[...H,"-c",F],{timeoutMs:u.own,env:U(d)}),a=L(r.stdout);if(r.ok&&a.imports)return c.run={path:e,source:n,version:a.version},c;c.own={source:n,problem:a.missing||r.problem||"it didn't start"}}let p=B(n);if(a(p)){let e=await o(p,["-c",F],{timeoutMs:u.other,env:d}),t=L(e.stdout);if(e.ok&&t.imports)return c.run={path:p,source:"venv",version:t.version},c}let f=[];for(let e of l){let t=await o(e,["-c",F],{timeoutMs:u.other,env:d}),n=L(t.stdout);if(n.version){if(t.ok&&n.imports)return c.run={path:e,source:"system",version:n.version},c;f.push({path:e,version:n.version,venv:n.venv})}}let h=f.find(e=>e.venv&&$(e.version));if(h)return c.base={path:h.path,source:"system",version:h.version},c;let g=f.find(e=>$(e.version))||f[0];c.systemFound=g?{version:g.version,venv:g.venv}:null;let m=X(n);if(a(m)){let e=await o(m,[...H,"-c",F],{timeoutMs:u.other,env:U(d)}),t=L(e.stdout);if(e.ok&&t.venv)return c.base={path:m,source:"downloaded",version:t.version},c}return c.download=function(e,t=D){let n=e&&Object.hasOwn(t.builds,e)?t.builds[e]:null;return n?{key:e,version:t.version,release:t.release,...n,url:function(e,t=D){return`https://github.com/astral-sh/python-build-standalone/releases/download/${t.release}/${encodeURIComponent(e.file)}`}(n,t)}:null}(s),c}class V extends Error{}let Z=(...e)=>(globalThis.fetch?._nextOriginalFetch||globalThis.fetch)(...e),Q=e=>(e/1048576).toFixed(1);async function ee(e,t,{sha256:n,size:r,signal:i,onProgress:o,idleMs:a=3e4,fetchImpl:s=Z,from:l="GitHub"}={}){if(!/^[0-9a-f]{64}$/.test(String(n))||!(Number.isInteger(r)&&r>0))throw new V("There is no pinned checksum for this download, so it wasn't started.");let u=`${t}.part`,d=new AbortController,c=i?AbortSignal.any([i,d.signal]):d.signal,p=null,f=()=>{clearTimeout(p),p=setTimeout(()=>d.abort(new V(`The download stopped for ${Math.round(a/1e3)} seconds. Check your connection and try again.`)),a)};f();let h=await A.default.open(u,"w"),g=(0,C.createHash)("sha256"),m=0,y=!1;try{let t=await s(e,{signal:c,redirect:"follow",cache:"no-store",headers:{Accept:"application/octet-stream","User-Agent":"six-degrees-scanner-setup"}});if(!t.ok||!t.body)throw new V(`${l} answered ${t.status} to the download. Try again later.`);let i=Number(t.headers.get("content-length"))||null;if(i&&i!==r)throw new V(`The download isn't the size it should be (${i} bytes, not ${r}), so it was stopped.`);for await(let e of t.body){if(f(),(m+=e.byteLength)>r)throw new V("The download is bigger than it should be, so it was stopped.");g.update(e);let t=0;for(;t<e.byteLength;){let{bytesWritten:n}=await h.write(e,t,e.byteLength-t);t+=n}o?.(m,r)}if(m!==r)throw new V("The download ended early. Try again.");let a=g.digest("hex");if(a!==n)throw new V("The download doesn't match the checksum Six Degrees has for it, so it was deleted and nothing was unpacked.");return y=!0,a}catch(e){if(c.aborted&&c.reason instanceof Error)throw c.reason;throw e}finally{clearTimeout(p),await h.close(),y?await A.default.rename(u,t):await A.default.rm(u,{force:!0})}}async function et(e,t,n){let o=i.default.join(e,"python");if(!await A.default.lstat(i.default.join(o,"bin","python3")).catch(()=>null))throw new V("The download didn't contain the Python it should have.");let a=i.default.join(t,K);return r.default.existsSync(a)&&await A.default.rename(a,i.default.join(n,"python-before")),await A.default.rename(o,a),X(t)}let en=(0,R.registerScanState)({running:!1,action:null,target:null,recent:[],log:[],startedAt:null,exitCode:null,child:null,abort:null,stopping:!1,stderrTail:[],failure:null,pages:0,found:[]}),er=/^\s*Page \d+\.\.\.|\d+\s*\/\s*\d+\s+collected/,ei=/(\d+) found \((?:total: \d+|\d+ with images)\)/;function eo(e){for(let t of String(e).split("\n")){let e=t.replace(/\s+$/,"");if(!e)continue;en.log.push(e),er.test(e)&&(en.pages+=1,en.found.push(50*!!/collected/.test(e)),en.found.length>400&&en.found.splice(0,en.found.length-400));let n=e.match(ei);n&&en.found.length&&(en.found[en.found.length-1]=Number(n[1]))}en.log.length>500&&en.log.splice(0,en.log.length-500)}function ea(){try{let e=(0,r.readFileSync)(i.default.join((0,o.dataDir)(),"bridge-skips.json"),"utf8"),t=JSON.parse(e);return Object.entries(t).map(([e,t])=>({profileUrl:e,name:t?.name??"",reason:t?.reason??"",at:t?.at??null}))}catch{return[]}}function es(){let e=[],t={};try{let n=(0,a.resolveProfile)({create:!1});if(n){let r=m((0,o.dataDir)(),n.id);for(let[n,i]of(e=Object.keys(r),Object.entries(r)))t[n]={pages:Number(i?.pages)||0,more:!!i?.more,total:Number(i?.total)||null}}}catch{}return{skips:ea(),read:e,lists:t}}let el={at:0,value:null},eu=null,ed=0;function ec(){ed++,el={at:0,value:null},eu=null}let ep=Symbol.for("six-degrees.python-looker"),ef=globalThis[ep]??=function({choose:e=J,now:t=Date.now,retryMs:n=6e4}={}){let r=null,i=null;return async function(o,a={}){if(o&&r?.path===o)return{run:r,own:null,base:null,systemFound:null,download:null};let s=!!o&&i?.path===o&&(!1===i.own.retry||t()-i.at<n),l=await e({...a,bundled:s?"":o});if(s)return{...l,own:i.own};if(o&&l.run?.path===o)r=l.run;else if(o&&l.own){let e="bundled"===l.own.source?{...l.own,retry:!1}:l.own;return i={path:o,at:t(),own:e},{...l,own:e}}return l}}();async function eh(){return{root:(0,o.projectRoot)(),python:await ef(process.env.SIX_DEGREES_PYTHON||"",{app:process.env.SIX_DEGREES_APP||"",dataDir:(0,o.dataDir)(),host:(void 0===t&&(t=function({platform:e=process.platform,arch:t=process.arch,sysctlArm64:n=""}={}){return"darwin"===e?`darwin-${(0,N.chipOf)({sysctlArm64:n,processArch:t})}`:"linux"===e&&("x64"===t||"arm64"===t)?`linux-${t}`:null}({sysctlArm64:""})),t)})}}function eg(){return function({platform:e,env:t={},exists:n}){let r=t.SIX_DEGREES_TEST_CHROME;return"found"===r||"missing"!==r&&("darwin"===e?n("/Applications/Google Chrome.app"):"linux"===e?n("/opt/google/chrome/chrome"):"win32"!==e||[t.LOCALAPPDATA,t.PROGRAMFILES,t["PROGRAMFILES(X86)"]].filter(Boolean).some(e=>n(`${String(e).replace(/[\\/]+$/,"")}\\Google\\Chrome\\Application\\chrome.exe`)))}({platform:process.platform,env:process.env,exists:r.existsSync})}function em(){let e=null;try{e=(0,T.readSettings)((0,w.getDb)()).scanRiskAccepted}catch{}return(0,k.riskAccepted)({acceptedAt:e,scannedBefore:(0,r.existsSync)(i.default.join((0,o.dataDir)(),"chrome-profile"))})}function ey(){if(Date.now()-el.at<4e3&&el.value)return Promise.resolve(el.value);if(eu)return eu;let e=ed,t=eh().then(t=>(e===ed&&(el={at:Date.now(),value:t}),t)).finally(()=>{eu===t&&(eu=null)});return eu=t,t}async function eb(){let e=await ey(),t=eg(),n={first:0,second:0,third:0},s=null;try{(s=(0,a.resolveProfile)({create:!1}))&&(n=(0,a.networkCounts)(s.id))}catch{}let l=0;try{l=(0,E.waitingPhotoCount)((0,w.getDb)())}catch{}let u=e.python;return{ready:!!(e.root&&u.run&&t),mapping:function(e){if(!en.running)return null;if(en.target?.id&&["bridge","rescrape","resume"].includes(en.action))return{id:en.target.id,name:en.target.name};let t=function(e,t){if(!Array.isArray(e)||!t||!(t.startsWith("auto-bridge")||"resume-all"===t))return null;for(let t=e.length-1;t>=0;t--){let n=String(e[t]).match(f);if(n)return n[1]}return null}(en.log,en.action);if(!t||!e)return null;try{let n=(0,w.getDb)().prepare("SELECT id FROM linkedin_connections WHERE user_id = ? AND degree = 1 AND name = ? LIMIT 2").all(e,t);return 1===n.length?{id:n[0].id,name:t}:null}catch{return null}}(s?.id),checks:{scriptsFound:!!e.root,python:!!(u.run||u.base),pythonPath:u.run?.path||u.base?.path||null,pythonVersion:u.run?.version||u.base?.version||null,pythonSource:u.run?.source||null,dependencies:!!u.run,ownPython:u.own,installFrom:u.base?{source:u.base.source,version:u.base.version}:null,systemPython:u.systemFound,download:u.download?{version:u.download.version,size:u.download.size,from:"github.com"}:null,chrome:t,signedIn:function(){let e=(0,o.dataDir)(),t=null;try{t=JSON.parse((0,r.readFileSync)(i.default.join(e,"signed-in.json"),"utf8"))}catch{}let n=i.default.join(e,"chrome-profile","Default");return function({note:e,profile:t,cookies:n}){return e&&"object"==typeof e&&"boolean"==typeof e.signedIn?e.signedIn&&!!t:!!n}({note:t,profile:(0,r.existsSync)(i.default.join(e,"chrome-profile")),cookies:(0,r.existsSync)(i.default.join(n,"Cookies"))||(0,r.existsSync)(i.default.join(n,"Network","Cookies"))})}(),riskAccepted:em()},network:n,photosWaiting:l,...ew(),skips:ea(),linkedin:(0,g.linkedinState)((0,o.dataDir)()),paused:function(e){if(!e)return[];try{let t=(0,w.getDb)(),n=t.prepare(`SELECT id, name, tier, profile_url, connected_date, created_at
|
|
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
|
-
WHERE user_id = ? AND degree = 2 AND source_connection_id IS NOT NULL`).all(e).map(e=>e.id));return
|
|
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]=
|
|
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((0,
|
|
14
|
+
WHERE user_id = ? AND degree = 2 AND source_connection_id IS NOT NULL`).all(e).map(e=>e.id));return b(n,r,m((0,o.dataDir)(),e),y((0,o.dataDir)()))}catch{return[]}}(s?.id)}}function ew(){return{running:en.running,action:en.action,target:en.target,startedAt:en.startedAt,exitCode:en.exitCode,failure:en.running?null:en.failure,progress:en.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}(en.log,en.action):null,pages:en.running?en.pages:0,found:en.running?en.found:[],log:en.log.slice(-120),recent:en.recent,budget:en.running?function(){try{let e=(0,g.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 ev(e){let t=new URL(e?.url||"http://127.0.0.1/api/scraper").searchParams;if(t.has("job"))return Response.json(ew());if(t.has("resume"))return Response.json({resume:function(e){try{let t=(0,a.resolveProfile)({create:!1});if(!t)return null;let n=(0,w.getDb)(),r=n.prepare(`SELECT id, name, tier, profile_url, connected_date, created_at
|
|
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]:[]),m((0,o.dataDir)(),t.id),y((0,o.dataDir)()));return s?{nextPage:s.nextPage,pagesRead:s.pagesRead,legacy:s.legacy}:null}catch{return null}}(t.get("resume"))});if(t.has("reach"))return Response.json(es());if(t.has("usage"))try{return Response.json((0,g.linkedinUsage)((0,o.dataDir)()))}catch{return Response.json({error:"The record of LinkedIn searches on this computer could not be read."},{status:500})}return t.has("person")?Response.json(function(e){try{let t=(0,a.resolveProfile)({create:!1});if(!t)return{person:null};let n=(0,w.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((0,x.keyFor)({profile_url:e.profileUrl}));let o=new Set;for(let e of n?.read||[])e&&o.add((0,x.keyFor)({profile_url:e}));let a=new Map;for(let[e,t]of Object.entries(n?.lists||{}))e&&t&&a.set((0,x.keyFor)({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}]:[],es());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((0,x.keyFor)(r))?"scanned":r.profile_url&&o.hidden.has((0,x.keyFor)(r))?"hidden":"todo":"todo"}}catch{return{person:null}}}(t.get("person"))):Response.json(await eb())}let eS={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"},"messages-full":{flag:"--messages --full-history",label:"Reading your whole messages history"},photos:{flag:"--save-photos",label:"Saving profile photos to this computer"}};async function eR(e){let t,s={};try{s=await e.json()}catch{}let l=String(s.action||"");if("cancel"===l)return!function(){if(en.abort){en.stopping=!0,eo("Stopping…"),en.abort.abort(new V("Stopped."));return}let e=en.child;if(!e)return;en.stopping=!0,eo("Stopping…");let t=e.pid;try{process.kill(-t,"SIGTERM")}catch{try{e.kill("SIGTERM")}catch{}}setTimeout(()=>{if(en.child&&en.child.pid===t){eo("Still running. Forcing it to stop.");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,g.writeLimits)((0,o.dataDir)(),{daily:s.daily,monthly:s.monthly,profiles:s.profiles,pace:s.pace});return Response.json({ok:!0,limits:e})}if("lift-cooldown"===l)return(0,g.liftCooldown)((0,o.dataDir)()),Response.json({ok:!0});if(!Object.hasOwn(eS,l))return Response.json({error:`Unknown action '${l}'`},{status:400});if((0,k.touchesLinkedIn)(l)&&!em())return Response.json({error:k.RISK_REFUSAL,needsRiskAcceptance:!0},{status:409});if((0,k.touchesLinkedIn)(l)&&!eg())return Response.json({error:"The scanner works in Google Chrome, and Chrome isn’t on this computer. Install Google Chrome, then come back.",needsChrome:!0},{status:409});let u=eS[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",f=[10,25,50,100].includes(s.maxPages)?s.maxPages:100,h=l.startsWith("auto-bridge")||["bridge","rescrape","resume","resume-all"].includes(l),m=!0===s.deeper&&(l.startsWith("auto-bridge")||"bridge"===l),y=u.needsId||u.byId&&!!s.id,b=null;if(u.needsName&&!y){let e;if(!(b=!(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 R=null,E=null;if(y){try{var T;let e,t=(0,a.resolveProfile)({create:!1});E=t&&(0,w.getDb)().prepare("SELECT name, profile_url FROM linkedin_connections WHERE id = ? AND user_id = ? AND degree = 1").get(String(s.id??""),t.id),R=E?.profile_url&&(T=E.profile_url,(e=String(T??"").trim()).length>400||/[\u0000-\u001f\s]/.test(e)?null:/^https?:\/\/([a-z]{2,3}\.|www\.)?linkedin\.com\/in\/[^/?#]+\/?$/i.test(e)?e:null)}catch{R=null}if(!R)return Response.json({error:"That connection could not be found."},{status:400})}let x="string"==typeof s.id&&/^[\w-]{1,64}$/.test(s.id)?s.id:null,C=b||R?{id:x,name:b||E?.name||null}:null,A=u.searches||l.startsWith("auto-bridge")||["bridge","rescrape","company","full","refresh"].includes(l);if(!["install","setup","login"].includes(l)&&(0,_.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 N=(0,g.linkedinState)((0,o.dataDir)()).cooldown;if(A&&N)return Response.json({error:`Scanning is paused until ${new Date(N.until).toLocaleString()}: ${N.reason}.`,cooldown:N},{status:409});if(en.running)return Response.json({error:"Something is already running.",action:en.action},{status:409});let D=(0,o.projectRoot)();if(!D)return Response.json({error:"Could not find scripts/scrape.py next to the app."},{status:500});ec();let j=(await ey()).python;if(en.running)return Response.json({error:"Something is already running.",action:en.action},{status:409});let O=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=B(t);return[{cmd:e.path,args:[...r?H:[],"-m","venv","--clear",q(t)],...r?{env:U}:{},note:"Creating the scanner’s own Python environment"},{cmd:i,args:["-m","pip","install","--disable-pip-version-check","--no-input","-r",n],env:G,note:"Installing Playwright, requests and Pillow"},{cmd:i,args:["-c",function(e=M){return`import sys
|
|
17
17
|
try:
|
|
18
18
|
${e}
|
|
19
19
|
except Exception as e:
|
|
20
20
|
first = (str(e).splitlines() or [""])[0][:200]
|
|
21
21
|
sys.stderr.write("pip said it installed them, but the scanner's environment can't load them (%s: %s). A pip setting may send packages somewhere else: pip config list shows yours.\\n" % (type(e).__name__, first))
|
|
22
22
|
sys.exit(1)
|
|
23
|
-
print("The scanner's packages load in its environment.")`}()],note:"Checking that they load"}]})({base:e,dataDir:o,requirements:l});if(s)return{plan:u(s),cleanup:null};let d=t.download;(0,r.mkdirSync)(o,{recursive:!0}),function(e,{now:t=Date.now(),maxAgeMs:n=36e5}={}){let o=[];try{o=r.default.readdirSync(e)}catch{return}for(let a of o){if(!a.startsWith(N.SETUP_WORK_PREFIX))continue;let o=i.default.join(e,a);try{let e=r.default.lstatSync(o);e.isDirectory()&&t-e.mtimeMs>n&&r.default.rmSync(o,{recursive:!0,force:!0})}catch{}}}(o);let c=(0,r.mkdtempSync)(i.default.join(o,N.SETUP_WORK_PREFIX)),p=i.default.join(c,d.file),f=-1;return{plan:[{note:`Downloading Python ${d.version} from GitHub (${V(d.size)} MB)`,run:async({signal:e})=>{await J(d.url,p,{sha256:d.sha256,size:d.size,signal:e,onProgress:(e,t)=>{let n=Math.floor(e/t*10);n>f&&(f=n,a(`Downloading Python ${d.version}: ${V(e)} of ${V(t)} MB`))}}),a("Its checksum matches the one Six Degrees has for it.")}},{cmd:"tar",args:["-xzf",p,"-C",c],note:"Unpacking it"},{run:()=>Z(c,o,c)},...u({path:G(o),source:"downloaded"})],cleanup:()=>(0,r.rmSync)(c,{recursive:!0,force:!0})}}(l,D,{root:j,data:(0,o.dataDir)(),say:et});if(e.error)return Response.json({error:e.error},{status:e.status});({plan:t,cleanup:O}=e)}else{if(!D.run)return Response.json({error:"The scanner’s packages are not installed yet. Do step 1 first."},{status:409});t=[function(e,t,n=[]){let r=e?.source==="bundled"||e?.source==="custom";return{cmd:e.path,args:[...r?M:[],t,...n],env:r?H:F}}(D.run,i.default.join(j,"scripts","scrape.py"),[..._?[`${u.flag}=${_}`]:R?[`--bridge-url=${R}`]:u.flag.split(" "),...R&&"bridge"===l&&!m?["--from-start"]:[],...d&&(l.startsWith("auto-bridge")||"resume-all"===l)?[`--max-bridges=${d}`]:[],...c.length&&l.startsWith("auto-bridge")?[`--tiers=${c.join(",")}`]:[],...l.startsWith("auto-bridge")?[`--order=${p}`]:[],...!0===s.experimental&&l.startsWith("auto-bridge")?["--experimental"]:[],...g?[`--max-pages=${l.startsWith("resume")?100:f}`]:[],...m?["--deeper"]:[],...!0===s.headless&&"login"!==l?["--headless"]:[]])]}let I=e.headers.get("host")||"127.0.0.1:3000",$=I.includes(":")?I.split(":").pop():"80";Q.running=!0,Q.stopping=!1,Q.action=l,Q.target=k,Q.exitCode=null,Q.startedAt=Date.now(),Q.log=[u.label+(k?.name?` ${k.name}…`:"…")],Q.pages=0,Q.stderrTail=[],Q.failure=null,es();let U="";try{U=(0,a.resolveProfile)().id}catch{}let q={...process.env,SIX_DEGREES_USER_ID:U,APP_URL:`http://127.0.0.1:${$}`,PYTHONUNBUFFERED:"1",SIX_DEGREES_ROOT:j,SIX_DEGREES_FROM_APP:"1"};function B(e){if(0!==e&&!Q.stopping&&Q.stderrTail.length){let e=new Set(Q.log),t=Q.stderrTail.filter(t=>!e.has(t));t.length&&et(t.join("\n"));let n=Q.stderrTail.filter(e=>!/Warning|warnings\.warn\(/.test(e)).slice(-6);Q.failure=n.length?n:null}let t=Q.stopping;et(Q.stopping?"Stopped.":0===e?"Finished.":`Stopped (exit ${e}).`),Q.stopping=!1,Q.running=!1,Q.child=null,Q.abort=null,Q.exitCode=e,Q.recent=[{action:Q.action,target:Q.target,startedAt:Q.startedAt,exitCode:e,failure:Q.failure},...Q.recent].slice(0,5);let n=(0,v.scanDoneNotification)({action:Q.action,target:Q.target,exitCode:e,stopped:t,log:Q.log.slice(-12),userId:U||null});if(n&&Promise.resolve(w.db.from("notifications").insert([n])).catch(()=>{}),O)try{O()}catch{}es()}return!function e(r){let i;if(r>=t.length)return B(0);let o=t[r];if(o.note&&et(o.note+"…"),o.run){let t=new AbortController;Q.abort=t,Promise.resolve().then(()=>o.run({signal:t.signal})).then(()=>{if(Q.abort=null,Q.stopping)return B(0);e(r+1)},e=>{if(Q.abort=null,Q.stopping)return B(0);Q.stderrTail.push(e instanceof X?e.message:`Could not finish: ${e.message}`),B(1)});return}try{let e="win32"===process.platform;i=(0,n.spawn)(o.cmd,o.args,{cwd:j,env:o.env?o.env(q):q,detached:!e,windowsHide:!0})}catch(e){return et(`Could not start: ${e.message}`),B(-1)}Q.child=i,i.stdout.on("data",e=>et(e.toString())),i.stderr.on("data",e=>{let t=e.toString();for(let e of t.split("\n")){let t=e.replace(/\s+$/,"");t&&Q.stderrTail.push(t)}Q.stderrTail.length>20&&Q.stderrTail.splice(0,Q.stderrTail.length-20),/error|Error|Traceback|No module|failed|externally-managed/.test(t)&&et(t)}),i.on("error",e=>{et(`Could not start: ${e.message}`),B(-1)}),i.on("close",t=>Q.stopping?B(t??0):0===t||o.tolerant?void e(r+1):B(t))}(0),Response.json({ok:!0,action:l,startedAt:Q.startedAt})}e.s(["GET",0,eh,"POST",0,em],81638)},14974,e=>{"use strict";var t=e.i(47909),n=e.i(74017),r=e.i(96250),i=e.i(59756),o=e.i(61916),a=e.i(74677),s=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(26937),g=e.i(10372),m=e.i(93695);e.i(52474);var y=e.i(220);let b=new t.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/scraper/route",pathname:"/api/scraper",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/scraper/route.js",nextConfigOutput:"standalone",userland:()=>e.r(81638),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:v,serverHooks:_}=b;async function S(e,t,r){r.requestMeta&&(0,i.setRequestMeta)(e,r.requestMeta),b.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/scraper/route";w=w.replace(/\/index$/,"")||"/";let v=await b.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:_,deploymentId:S,params:R,nextConfig:E,parsedUrl:T,isDraftMode:x,prerenderManifest:k,routerServerContext:N,isOnDemandRevalidate:P,revalidateOnlyGenerated:C,resolvedPathname:j,clientReferenceManifest:D,serverActionsManifest:O}=v,A=(0,s.normalizeAppPath)(w),I=!!(k.dynamicRoutes[A]||k.routes[j]),$=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,T,!1):t.end("This page could not be found"),null);if(I&&!x){let e=!!k.routes[j],t=k.dynamicRoutes[A];if(t&&!1===t.fallback&&!e){if(E.adapterPath)return await $();throw new m.NoFallbackError}}let M=null;!I||b.isDev||x||(M="/index"===(M=j)?"/":M);let H=!0===b.isDev||!I,F=I&&!H;O&&D&&(0,a.setManifestsSingleton)({page:w,clientReferenceManifest:D,serverActionsManifest:O});let U=e.method||"GET",L=(0,o.getTracer)(),z=L.getActiveScopeSpan(),W=!!(null==N?void 0:N.isWrappedByNextServer),q=!!(0,i.getRequestMeta)(e,"minimalMode"),G=(0,i.getRequestMeta)(e,"incrementalCache")||await b.getIncrementalCache(e,E,k,q);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let B={params:R,previewProps:k.preview,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts,useCacheTimeout:E.experimental.useCacheTimeout},cacheComponents:!!E.cacheComponents,validationLevel:E.experimental.instantInsights.validationLevel,supportsDynamicResponse:H,incrementalCache:G,hmrRefreshHash:(0,i.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:E.cacheLife,staticPageGenerationTimeout:E.staticPageGenerationTimeout,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,r,i)=>b.onRequestError(e,t,r,i,N)},sharedContext:{buildId:_,deploymentId:S}},K=new l.NodeNextRequest(e),X=new l.NodeNextResponse(t),Y=u.NextRequestAdapter.fromNodeNextRequest(K,(0,u.signalFromNodeResponse)(t)),V=async({previousCacheEntry:n})=>{try{if(!q&&P&&C&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await b.handle(Y,B);e.fetchMetrics=B.renderOpts.fetchMetrics;let o=B.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let a=B.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(K,X,i,o),null;{let e=await i.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(i.headers);a&&(t[g.NEXT_CACHE_TAGS_HEADER]=a),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==B.renderOpts.collectedRevalidate&&!(B.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&B.renderOpts.collectedRevalidate,r=void 0===B.renderOpts.collectedExpire||B.renderOpts.collectedExpire>=g.INFINITE_CACHE?!1!==n&&n>0?E.expireTime:void 0:B.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:r}}}}catch(t){throw(null==n?void 0:n.isStale)&&await b.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:P})},!1,N),t}},J=async(i,a)=>{try{var s,l;let i=await b.handleResponse({req:e,nextConfig:E,cacheKey:M,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:k,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:C,responseGenerator:V,waitUntil:r.waitUntil,isMinimalMode:q});if(!I)return;if((null==i||null==(s=i.value)?void 0:s.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==i||null==(l=i.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});q||t.setHeader("x-nextjs-cache",P?"REVALIDATED":i.isMiss?"MISS":i.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let o=(0,f.fromNodeOutgoingHttpHeaders)(i.value.headers);q&&I||o.delete(g.NEXT_CACHE_TAGS_HEADER),!i.cacheControl||t.getHeader("Cache-Control")||o.get("Cache-Control")||o.set("Cache-Control",(0,h.getCacheControlHeader)(i.cacheControl)),await (0,p.sendResponse)(K,X,new Response(i.value.body,{headers:o,status:i.value.status||200}));return}catch(t){if(t instanceof m.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:A,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:P})},!1,N),I)throw t;await (0,p.sendResponse)(K,X,new Response(null,{status:500}));return}finally{(()=>{if(!i)return;let e=t.statusCode;i.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(i.setStatus({code:o.SpanStatusCode.ERROR}),i.setAttribute("error.type",e.toString()));let n=L.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==d.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")||A,s=`${U} ${r}`;i.setAttributes({"next.route":r,"http.route":r,"next.span_name":s}),i.updateName(s),a&&a!==i&&(a.setAttribute("http.route",r),a.updateName(s))})()}};if(W&&z)await J(z,void 0);else{let t=L.getActiveScopeSpan();await L.withPropagatedContext(e.headers,()=>L.trace(d.BaseServerSpan.handleRequest,{spanName:`${U} ${w}`,kind:o.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},e=>J(e,t)),void 0,!W)}}e.s(["handler",0,S,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:v})},"routeModule",0,b,"serverHooks",0,_,"workAsyncStorage",0,w,"workUnitAsyncStorage",0,v])}];
|
|
23
|
+
print("The scanner's packages load in its environment.")`}()],note:"Checking that they load"}]})({base:e,dataDir:o,requirements:l});if(s)return{plan:u(s),cleanup:null};let d=t.download;(0,r.mkdirSync)(o,{recursive:!0}),function(e,{now:t=Date.now(),maxAgeMs:n=36e5}={}){let o=[];try{o=r.default.readdirSync(e)}catch{return}for(let a of o){if(!a.startsWith(P.SETUP_WORK_PREFIX))continue;let o=i.default.join(e,a);try{let e=r.default.lstatSync(o);e.isDirectory()&&t-e.mtimeMs>n&&r.default.rmSync(o,{recursive:!0,force:!0})}catch{}}}(o);let c=(0,r.mkdtempSync)(i.default.join(o,P.SETUP_WORK_PREFIX)),p=i.default.join(c,d.file),f=-1;return{plan:[{note:`Downloading Python ${d.version} from GitHub (${Q(d.size)} MB)`,run:async({signal:e})=>{await ee(d.url,p,{sha256:d.sha256,size:d.size,signal:e,onProgress:(e,t)=>{let n=Math.floor(e/t*10);n>f&&(f=n,a(`Downloading Python ${d.version}: ${Q(e)} of ${Q(t)} MB`))}}),a("Its checksum matches the one Six Degrees has for it.")}},{cmd:"tar",args:["-xzf",p,"-C",c],note:"Unpacking it"},{run:()=>et(c,o,c)},...u({path:X(o),source:"downloaded"})],cleanup:()=>(0,r.rmSync)(c,{recursive:!0,force:!0})}}(l,j,{root:D,data:(0,o.dataDir)(),say:eo});if(e.error)return Response.json({error:e.error},{status:e.status});({plan:t,cleanup:O}=e)}else{if(!j.run)return Response.json({error:"The scanner’s packages are not installed yet. Do step 1 first."},{status:409});t=[function(e,t,n=[]){let r=e?.source==="bundled"||e?.source==="custom";return{cmd:e.path,args:[...r?H:[],t,...n],env:r?U:W}}(j.run,i.default.join(D,"scripts","scrape.py"),[...b?[`${u.flag}=${b}`]:R?[`--bridge-url=${R}`]:u.flag.split(" "),...R&&"bridge"===l&&!m?["--from-start"]:[],...d&&(l.startsWith("auto-bridge")||"resume-all"===l)?[`--max-bridges=${d}`]:[],...c.length&&l.startsWith("auto-bridge")?[`--tiers=${c.join(",")}`]:[],...l.startsWith("auto-bridge")?[`--order=${p}`]:[],...!0===s.experimental&&l.startsWith("auto-bridge")?["--experimental"]:[],...h?[`--max-pages=${l.startsWith("resume")?100:f}`]:[],...m?["--deeper"]:[],...!0===s.headless&&"login"!==l?["--headless"]:[]])]}let I=e.headers.get("host")||"127.0.0.1:3000",$=I.includes(":")?I.split(":").pop():"80";en.running=!0,en.stopping=!1,en.action=l,en.target=C,en.exitCode=null,en.startedAt=Date.now(),en.log=[u.label+(C?.name?` ${C.name}…`:"…")],en.pages=0,en.found=[],en.stderrTail=[],en.failure=null,ec();let F="";try{F=(0,a.resolveProfile)().id}catch{}let L={...process.env,SIX_DEGREES_USER_ID:F,APP_URL:`http://127.0.0.1:${$}`,PYTHONUNBUFFERED:"1",SIX_DEGREES_ROOT:D,SIX_DEGREES_FROM_APP:"1"};function z(e){if(0!==e&&!en.stopping&&en.stderrTail.length){let e=new Set(en.log),t=en.stderrTail.filter(t=>!e.has(t));t.length&&eo(t.join("\n"));let n=en.stderrTail.filter(e=>!/Warning|warnings\.warn\(/.test(e)).slice(-6);en.failure=n.length?n:null}let t=en.stopping;eo(en.stopping?"Stopped.":0===e?"Finished.":`Stopped (exit ${e}).`),en.stopping=!1,en.running=!1,en.child=null,en.abort=null,en.exitCode=e,en.recent=[{action:en.action,target:en.target,startedAt:en.startedAt,exitCode:e,failure:en.failure},...en.recent].slice(0,5);let n=(0,S.scanDoneNotification)({action:en.action,target:en.target,exitCode:e,stopped:t,log:en.log.slice(-12),userId:F||null});if(n&&Promise.resolve(v.db.from("notifications").insert([n])).catch(()=>{}),O)try{O()}catch{}if(ec(),!["install","setup","login"].includes(en.action))try{(0,w.backUpDailyIfDue)()&&eo("Made today’s backup of your network (Settings → Your data).")}catch(e){eo(`Today’s backup couldn’t be made: ${e.message}`)}}return!function e(r){let i;if(r>=t.length)return z(0);let o=t[r];if(o.note&&eo(o.note+"…"),o.run){let t=new AbortController;en.abort=t,Promise.resolve().then(()=>o.run({signal:t.signal})).then(()=>{if(en.abort=null,en.stopping)return z(0);e(r+1)},e=>{if(en.abort=null,en.stopping)return z(0);en.stderrTail.push(e instanceof V?e.message:`Could not finish: ${e.message}`),z(1)});return}try{let e="win32"===process.platform;i=(0,n.spawn)(o.cmd,o.args,{cwd:D,env:o.env?o.env(L):L,detached:!e,windowsHide:!0})}catch(e){return eo(`Could not start: ${e.message}`),z(-1)}en.child=i,i.stdout.on("data",e=>eo(e.toString())),i.stderr.on("data",e=>{let t=e.toString();for(let e of t.split("\n")){let t=e.replace(/\s+$/,"");t&&en.stderrTail.push(t)}en.stderrTail.length>20&&en.stderrTail.splice(0,en.stderrTail.length-20),/error|Error|Traceback|No module|failed|externally-managed/.test(t)&&eo(t)}),i.on("error",e=>{eo(`Could not start: ${e.message}`),z(-1)}),i.on("close",t=>en.stopping?z(t??0):0===t||o.tolerant?void e(r+1):z(t))}(0),Response.json({ok:!0,action:l,startedAt:en.startedAt})}e.s(["GET",0,ev,"POST",0,eR],81638)},14974,e=>{"use strict";var t=e.i(47909),n=e.i(74017),r=e.i(96250),i=e.i(59756),o=e.i(61916),a=e.i(74677),s=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(26937),g=e.i(10372),m=e.i(93695);e.i(52474);var y=e.i(220);let b=new t.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/scraper/route",pathname:"/api/scraper",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/scraper/route.js",nextConfigOutput:"standalone",userland:()=>e.r(81638),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:v,serverHooks:S}=b;async function R(e,t,r){r.requestMeta&&(0,i.setRequestMeta)(e,r.requestMeta),b.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/scraper/route";w=w.replace(/\/index$/,"")||"/";let v=await b.prepare(e,t,{srcPage:w,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:_,nextConfig:E,parsedUrl:T,isDraftMode:k,prerenderManifest:x,routerServerContext:C,isOnDemandRevalidate:A,revalidateOnlyGenerated:N,resolvedPathname:P,clientReferenceManifest:D,serverActionsManifest:j}=v,O=(0,s.normalizeAppPath)(w),I=!!(x.dynamicRoutes[O]||x.routes[P]),$=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,T,!1):t.end("This page could not be found"),null);if(I&&!k){let e=!!x.routes[P],t=x.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(E.adapterPath)return await $();throw new m.NoFallbackError}}let M=null;!I||b.isDev||k||(M="/index"===(M=P)?"/":M);let F=!0===b.isDev||!I,L=I&&!F;j&&D&&(0,a.setManifestsSingleton)({page:w,clientReferenceManifest:D,serverActionsManifest:j});let H=e.method||"GET",U=(0,o.getTracer)(),W=U.getActiveScopeSpan(),z=!!(null==C?void 0:C.isWrappedByNextServer),G=!!(0,i.getRequestMeta)(e,"minimalMode"),q=(0,i.getRequestMeta)(e,"incrementalCache")||await b.getIncrementalCache(e,E,x,G);null==q||q.resetRequestCache(),globalThis.__incrementalCache=q;let B={params:_,previewProps:x.preview,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts,useCacheTimeout:E.experimental.useCacheTimeout},cacheComponents:!!E.cacheComponents,validationLevel:E.experimental.instantInsights.validationLevel,supportsDynamicResponse:F,incrementalCache:q,hmrRefreshHash:(0,i.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:E.cacheLife,staticPageGenerationTimeout:E.staticPageGenerationTimeout,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,r,i)=>b.onRequestError(e,t,r,i,C)},sharedContext:{buildId:S,deploymentId:R}},K=new l.NodeNextRequest(e),X=new l.NodeNextResponse(t),Y=u.NextRequestAdapter.fromNodeNextRequest(K,(0,u.signalFromNodeResponse)(t)),J=async({previousCacheEntry:n})=>{try{if(!G&&A&&N&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await b.handle(Y,B);e.fetchMetrics=B.renderOpts.fetchMetrics;let o=B.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let a=B.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(K,X,i,o),null;{let e=await i.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(i.headers);a&&(t[g.NEXT_CACHE_TAGS_HEADER]=a),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==B.renderOpts.collectedRevalidate&&!(B.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&B.renderOpts.collectedRevalidate,r=void 0===B.renderOpts.collectedExpire||B.renderOpts.collectedExpire>=g.INFINITE_CACHE?!1!==n&&n>0?E.expireTime:void 0:B.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:r}}}}catch(t){throw(null==n?void 0:n.isStale)&&await b.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:A})},!1,C),t}},V=async(i,a)=>{try{var s,l;let i=await b.handleResponse({req:e,nextConfig:E,cacheKey:M,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:x,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:N,responseGenerator:J,waitUntil:r.waitUntil,isMinimalMode:G});if(!I)return;if((null==i||null==(s=i.value)?void 0:s.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==i||null==(l=i.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});G||t.setHeader("x-nextjs-cache",A?"REVALIDATED":i.isMiss?"MISS":i.isStale?"STALE":"HIT"),k&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let o=(0,f.fromNodeOutgoingHttpHeaders)(i.value.headers);G&&I||o.delete(g.NEXT_CACHE_TAGS_HEADER),!i.cacheControl||t.getHeader("Cache-Control")||o.get("Cache-Control")||o.set("Cache-Control",(0,h.getCacheControlHeader)(i.cacheControl)),await (0,p.sendResponse)(K,X,new Response(i.value.body,{headers:o,status:i.value.status||200}));return}catch(t){if(t instanceof m.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:A})},!1,C),I)throw t;await (0,p.sendResponse)(K,X,new Response(null,{status:500}));return}finally{(()=>{if(!i)return;let e=t.statusCode;i.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(i.setStatus({code:o.SpanStatusCode.ERROR}),i.setAttribute("error.type",e.toString()));let n=U.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==d.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,s=`${H} ${r}`;i.setAttributes({"next.route":r,"http.route":r,"next.span_name":s}),i.updateName(s),a&&a!==i&&(a.setAttribute("http.route",r),a.updateName(s))})()}};if(z&&W)await V(W,void 0);else{let t=U.getActiveScopeSpan();await U.withPropagatedContext(e.headers,()=>U.trace(d.BaseServerSpan.handleRequest,{spanName:`${H} ${w}`,kind:o.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},e=>V(e,t)),void 0,!z)}}e.s(["handler",0,R,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:v})},"routeModule",0,b,"serverHooks",0,S,"workAsyncStorage",0,w,"workUnitAsyncStorage",0,v])}];
|
|
24
24
|
|
|
25
25
|
//# sourceMappingURL=_1_fynia._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[87258,e=>{"use strict";var t=e.i(2157),r=e.i(50227),a=e.i(
|
|
1
|
+
module.exports=[87258,e=>{"use strict";var t=e.i(2157),r=e.i(50227),a=e.i(73156),n=e.i(28681),o=e.i(48170),i=e.i(92375),s=e.i(26525),l=e.i(54090),u=e.i(19041),d=e.i(1348);async function p(e){let l=(0,u.admitImport)(e,{env:process.env,scanRunning:d.scannerJob,pending:()=>(0,u.pendingImport)((0,a.dataDir)()),currentPeople:()=>(0,i.countPeople)((0,a.getDb)())});if(l.refused){let{status:e,...t}=l.refused;return Response.json(t,{status:e})}let{declared:p,currentPeople:c}=l,h=(0,a.dataDir)();(0,s.sweepLeftovers)(h);let R=(0,t.mkdtempSync)(r.default.join(h,s.UPLOAD_WORK_PREFIX));try{let t=r.default.join(R,"upload.sixdegrees");await (0,u.receiveUpload)(e.body,t,{declared:p});let i=(0,d.scannerJob)();if(i)throw new u.ImportError(`${(0,d.runningNow)(i)}: it started while the file was arriving. Let it finish, then import again.`,{status:409});if((0,u.pendingImport)(h))throw new u.ImportError("Another import is already waiting to finish.",{status:409});let s=(0,u.stageImport)(t,{dir:h,applySchema:a.applySchema,schemaSql:n.SCHEMA_SQL,appVersion:o.APP_VERSION,replacedPeople:c});return Response.json({ok:!0,pending:s})}catch(e){if((0,t.rmSync)(R,{recursive:!0,force:!0}),e instanceof u.ImportError)return Response.json({error:e.message,...e.extra},{status:e.status});return Response.json({error:`The file couldn't be checked: ${e.message}`},{status:500})}}async function c(e){let t=(0,l.requestRefusal)({method:e.method,pathname:u.IMPORT_ROUTE,headers:e.headers,env:process.env});if(t)return Response.json({error:t.error},{status:t.status});let r=(0,u.cancelPendingImport)((0,a.dataDir)());return"started"===r.reason?Response.json({error:"This import has already started, so it can only go forward. Restart Six Degrees to finish it."},{status:409}):Response.json({ok:!0,cancelled:r.cancelled})}e.s(["DELETE",0,c,"POST",0,p])},92719,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),o=e.i(61916),i=e.i(74677),s=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),p=e.i(47587),c=e.i(66012),h=e.i(70101),R=e.i(26937),m=e.i(10372),f=e.i(93695);e.i(52474);var v=e.i(220);let g=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/data/import/route",pathname:"/api/data/import",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/data/import/route.js",nextConfigOutput:"standalone",userland:()=>e.r(87258),...{}}),{workAsyncStorage:E,workUnitAsyncStorage:w,serverHooks:C}=g;async function y(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),g.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let E="/api/data/import/route";E=E.replace(/\/index$/,"")||"/";let w=await g.prepare(e,t,{srcPage:E,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:C,deploymentId:y,params:x,nextConfig:A,parsedUrl:P,isDraftMode:S,prerenderManifest:T,routerServerContext:b,isOnDemandRevalidate:I,revalidateOnlyGenerated:O,resolvedPathname:_,clientReferenceManifest:N,serverActionsManifest:q}=w,D=(0,s.normalizeAppPath)(E),H=!!(T.dynamicRoutes[D]||T.routes[_]),M=async()=>((null==b?void 0:b.render404)?await b.render404(e,t,P,!1):t.end("This page could not be found"),null);if(H&&!S){let e=!!T.routes[_],t=T.dynamicRoutes[D];if(t&&!1===t.fallback&&!e){if(A.adapterPath)return await M();throw new f.NoFallbackError}}let U=null;!H||g.isDev||S||(U="/index"===(U=_)?"/":U);let j=!0===g.isDev||!H,k=H&&!j;q&&N&&(0,i.setManifestsSingleton)({page:E,clientReferenceManifest:N,serverActionsManifest:q});let L=e.method||"GET",F=(0,o.getTracer)(),K=F.getActiveScopeSpan(),$=!!(null==b?void 0:b.isWrappedByNextServer),B=!!(0,n.getRequestMeta)(e,"minimalMode"),G=(0,n.getRequestMeta)(e,"incrementalCache")||await g.getIncrementalCache(e,A,T,B);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let V={params:x,previewProps:T.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts,useCacheTimeout:A.experimental.useCacheTimeout},cacheComponents:!!A.cacheComponents,validationLevel:A.experimental.instantInsights.validationLevel,supportsDynamicResponse:j,incrementalCache:G,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:A.cacheLife,staticPageGenerationTimeout:A.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>g.onRequestError(e,t,a,n,b)},sharedContext:{buildId:C,deploymentId:y}},X=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),J=u.NextRequestAdapter.fromNodeNextRequest(X,(0,u.signalFromNodeResponse)(t)),z=async({previousCacheEntry:r})=>{try{if(!B&&I&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await g.handle(J,V);e.fetchMetrics=V.renderOpts.fetchMetrics;let o=V.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let i=V.renderOpts.collectedTags;if(!H)return await (0,c.sendResponse)(X,W,n,o),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);i&&(t[m.NEXT_CACHE_TAGS_HEADER]=i),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,a=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=m.INFINITE_CACHE?!1!==r&&r>0?A.expireTime:void 0:V.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 g.onRequestError(e,t,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:k,isOnDemandRevalidate:I})},!1,b),t}},Q=async(n,i)=>{try{var s,l;let n=await g.handleResponse({req:e,nextConfig:A,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:I,revalidateOnlyGenerated:O,responseGenerator:z,waitUntil:a.waitUntil,isMinimalMode:B});if(!H)return;if((null==n||null==(s=n.value)?void 0:s.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});B||t.setHeader("x-nextjs-cache",I?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let o=(0,h.fromNodeOutgoingHttpHeaders)(n.value.headers);B&&H||o.delete(m.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||o.get("Cache-Control")||o.set("Cache-Control",(0,R.getCacheControlHeader)(n.cacheControl)),await (0,c.sendResponse)(X,W,new Response(n.value.body,{headers:o,status:n.value.status||200}));return}catch(t){if(t instanceof f.NoFallbackError||await g.onRequestError(e,t,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:k,isOnDemandRevalidate:I})},!1,b),H)throw t;await (0,c.sendResponse)(X,W,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:o.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.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")||D,s=`${L} ${a}`;n.setAttributes({"next.route":a,"http.route":a,"next.span_name":s}),n.updateName(s),i&&i!==n&&(i.setAttribute("http.route",a),i.updateName(s))})()}};if($&&K)await Q(K,void 0);else{let t=F.getActiveScopeSpan();await F.withPropagatedContext(e.headers,()=>F.trace(d.BaseServerSpan.handleRequest,{spanName:`${L} ${E}`,kind:o.SpanKind.SERVER,attributes:{"http.method":L,"http.target":e.url}},e=>Q(e,t)),void 0,!$)}}e.s(["handler",0,y,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:w})},"routeModule",0,g,"serverHooks",0,C,"workAsyncStorage",0,E,"workUnitAsyncStorage",0,w])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_1fn30_l._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[24214,(e,t,r)=>{t.exports={name:"six-degrees",version:"0.
|
|
1
|
+
module.exports=[24214,(e,t,r)=>{t.exports={name:"six-degrees",version:"0.7.0",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:"node scripts/next.mjs 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:"node scripts/next.mjs build && node scripts/prepare-standalone.mjs",prebuild:"node scripts/check-node.mjs",start:"node scripts/next.mjs 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),r=e.i(2157),s=e.i(10960),n=e.i(60526),a=e.i(50227),i=e.i(12506),o=e.i(98199);e.i(66680),e.i(12714);let l=new Set(["checking","downloading","verifying","preparing","restarting"]),u=new Set(["checking","downloading","verifying","preparing"]);class c extends Error{constructor(e,t=null){super(e),this.code=t}}function d({home:e=n.default.homedir(),tmp:t=n.default.tmpdir()}={}){let r=a.default.join(e,"Library","Caches","Six Degrees");return{cacheDir:r,statusFile:a.default.join(r,"last-update.json"),confirmFile:a.default.join(r,"update-confirmed.json"),logFile:a.default.join(t,"six-degrees-update.log")}}function p(e){try{let t=JSON.parse(r.default.readFileSync(e,"utf8"));return t&&"object"==typeof t&&!Array.isArray(t)?t:null}catch{return null}}let h=Symbol.for("six-degrees.update-job");function f(){return globalThis[h]||(globalThis[h]={job:null}),globalThis[h]}function m(e){if(!e)return null;let{id:t,phase:r,version:s,notes:n,received:a,total:i,error:o,code:l,startedAt:u,endedAt:c}=e;return{id:t,phase:r,version:s,notes:n,received:a,total:i,error:o,code:l,startedAt:u,endedAt:c}}function g(){return m(f().job)}function y(e){try{return r.default.statSync(e).dev!==r.default.statSync(a.default.dirname(e)).dev}catch{return!1}}o.BUNDLE_ID,o.GITHUB.apiBase,o.GITHUB.downloadBase;var v=e.i(24214);let b=null;function R(e,r){return new Promise(s=>{let n,a="",i="";try{n=(0,t.spawn)("git",e,{cwd:r})}catch(e){return s({code:-1,out:"",err:e.message})}let o=setTimeout(()=>{try{n.kill()}catch{}},6e4);n.stdout.on("data",e=>{a+=e.toString()}),n.stderr.on("data",e=>{i+=e.toString()}),n.on("error",e=>{clearTimeout(o),s({code:-1,out:a,err:e.message})}),n.on("close",e=>{clearTimeout(o),s({code:e,out:a.trim(),raw:a,err:i.trim()})})})}async function w(e){let[t,r,s,n]=await Promise.all([R(["rev-parse","--short","HEAD"],e),R(["log","-1","--pretty=%s"],e),R(["status","--porcelain"],e),R(["rev-parse","--abbrev-ref","HEAD"],e)]),a=(s.raw||"").split("\n").filter(e=>e.length>3).map(e=>e.slice(3).trim()).filter(Boolean),i=a.length>0&&a.every(e=>"package-lock.json"===e);return{sha:t.out,subject:r.out,branch:n.out,dirty:a,onlyLockfile:i}}function j(){let e=(0,s.dataDir)();return a.default.resolve(e)===a.default.join((0,n.homedir)(),".six-degrees")?null:e}function S(e){let t=(0,i.repoSlug)(v.default.repository),s=(0,i.installKind)(process.env,e||""),n={supported:!1,installed:!0,kind:s,version:v.default.version,slug:t,command:t?(0,i.updateCommand)(s,t,{dataDir:j()}):null};if("mac-app"===s){let e=d();!function({statusFile:e,confirmFile:t},s){let n=p(e);if(n&&"started"===n.outcome&&n.to===s&&p(t)?.version!==s)try{var i;let e;i={version:s,pid:process.pid,at:new Date().toISOString()},r.default.mkdirSync(a.default.dirname(t),{recursive:!0}),e=`${t}.${process.pid}.tmp`,r.default.writeFileSync(e,`${JSON.stringify(i)}
|
|
2
2
|
`),r.default.renameSync(e,t)}catch{return!1}}(e,v.default.version),n.lastUpdate=(0,o.lastUpdateReport)(p(e.statusFile),{runningVersion:v.default.version}),n.job=g()}let l=(0,o.releaseSource)(process.env);return l.test&&(n.testReleases=l.apiBase),n}async function x(e,t){let r=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===r.status)return null;if(!r.ok)throw Error(`GitHub answered ${r.status}`);let s=await r.json();return{version:String(s.tag_name||"").replace(/^v/i,""),url:s.html_url||null,release:s}}async function k(e,s){let h=S(s),v=(0,o.releaseSource)(process.env);if("update-status"===e)return Response.json({job:g()});if("cancel-install"===e){let e;return Response.json({job:((e=f().job)&&u.has(e.phase)&&e.ctrl.abort(new c("cancelled")),m(e))})}if("check-release"===e){if(!h.slug)return Response.json({error:"This copy does not say where it was published."},{status:400});let e="mac-app"===h.kind?{refusal:{code:"not-mac",message:"Installing an update from here works only in the Mac app."}}:null;e&&function(e){let s;if(!(!e||(s=f().job)&&l.has(s.phase)))try{!function({bundle:e,cacheDir:s,tmpRoot:n,statusFile:i,now:l=Date.now(),isAlive:u=function(e){try{return process.kill(e,0),!0}catch(e){return"EPERM"===e.code}},asideAgeMs:c=6e5}={}){let d=[],h=e=>l-Math.max(e.mtimeMs,e.ctimeMs),f=e=>{try{return r.default.lstatSync(e)}catch{return null}},m=e=>{try{return r.default.readdirSync(e)}catch{return[]}},g=e=>{try{r.default.rmSync(e,{recursive:!0,force:!0}),d.push(e)}catch{}},v=i?p(i):null,b=v?.outcome==="failed"&&"string"==typeof v.previous?a.default.resolve(v.previous):null;if(e){let t=a.default.dirname(e);for(let{name:r,kind:s,pid:n}of(0,o.leftoversBeside)(m(t),a.default.basename(e))){let e=a.default.join(t,r),i=f(e);i&&e!==b&&("incoming"===s?h(i)>36e5&&g(e):!u(n)&&h(i)>c&&g(e))}}if(s)for(let e of m(s)){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=a.default.join(s,e),r=f(t);r&&h(r)>36e5&&g(t)}if(n)for(let e of m(n)){if(!/^six-degrees-update-[A-Za-z0-9]{6}$/.test(e))continue;let r=a.default.join(n,e),s=f(r);if(!s||!s.isDirectory()||36e5>=h(s))continue;let i=a.default.join(r,"mnt");if(y(i)){try{(0,t.execFileSync)("/usr/bin/hdiutil",["detach",i,"-force"],{stdio:"ignore",timeout:3e4})}catch{}if(y(i))continue}g(r)}}({bundle:e,tmpRoot:(0,n.tmpdir)(),...d()})}catch{}}(e.bundle);try{var b;let s=await x(h.slug,v.apiBase),a=!!(s&&(0,i.compareVersions)(s.version,h.version)>0),l=null,u=null;if(a&&e){let a,i=e.refusal?null:(0,o.planFromRelease)(s.release,{currentVersion:h.version,chip:(a=(e,r)=>{try{return(0,t.execFileSync)(e,r,{timeout:5e3,stdio:["ignore","pipe","ignore"]}).toString().trim()}catch{return""}},{chip:(0,o.chipOf)({sysctlArm64:a("/usr/sbin/sysctl",["-n","hw.optional.arm64"]),processArch:process.arch}),macosVersion:a("/usr/bin/sw_vers",["-productVersion"])}).chip,slug:h.slug,downloadBase:v.downloadBase}),c=e.refusal||i?.refusal||null;l=c?{possible:!1,reason:c.message,code:c.code}:{possible:!0,size:i.plan.dmg.size},u=function(e,t){let s=!0;try{(0,r.accessSync)("/Applications",r.constants.W_OK)}catch{s=!1}return(0,o.terminalFallback)({bundle:e,refusalCode:t?.code||null,installsTo:(0,o.installerTarget)({applicationsWritable:s,home:(0,n.homedir)()}),dataDir:j()})}(e.bundle,e.refusal)}e&&(b=a?s.version:null,f().checked=b?String(b):null);let c=`https://github.com/${h.slug}/releases/`,d=a&&i.INSTALLER_KINDS.includes(h.kind)&&s?.url&&String(s.url).startsWith(c)?{url:s.url}:null;return Response.json({...h,latest:s&&{version:s.version,url:s.url},newer:a,install:l,fallback:u,download:d})}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=i.INSTALLER_KINDS.includes(h.kind)?"On Windows and Linux an update is the new installer: download it from the release page and run it.":"Only the Mac app can install an update itself. Use the line below instead.";return Response.json({error:e,command:h.command},{status:400})}return Response.json({error:"Not a git checkout."},{status:400})}async function E(){let e=(0,s.projectRoot)();if(!(0,s.isGitCheckout)())return Response.json(S(e));let r=await w(e),n=function(e){if(null===b)try{b=(0,t.execFileSync)("git",["rev-parse","--short","HEAD"],{cwd:e}).toString().trim()}catch{b=""}return b}(e);return Response.json({supported:!0,...r,bootSha:n,restartNeeded:!!(n&&r.sha&&n!==r.sha)})}async function A(e){let t=(0,s.projectRoot)(),r={};try{r=await e.json()}catch{}let n=String(r.action||"");if(!(0,s.isGitCheckout)())return k(n,t);if("check"===n){let e=await R(["fetch","--quiet","origin"],t);if(0!==e.code)return Response.json({error:`Could not reach GitHub: ${e.err.slice(0,200)}`},{status:502});let r=await w(t),s=`origin/${r.branch||"main"}`,[n,a]=await Promise.all([R(["rev-list","--count",`HEAD..${s}`],t),R(["log","--pretty=%h %s",`HEAD..${s}`],t)]),i=Number(n.out||0);return Response.json({...r,behind:Number.isFinite(i)?i:0,commits:(a.out||"").split("\n").filter(Boolean).slice(0,25)})}if("pull"===n){let e=await w(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 R(["checkout","--","package-lock.json"],t);let r=await R(["pull","--ff-only"],t);if(0!==r.code)return Response.json({error:r.err.slice(0,400)||"The update could not be applied automatically."},{status:409});let s=await w(t),n=/package(-lock)?\.json/.test(r.out);return Response.json({ok:!0,output:r.out.split("\n").slice(-40).join("\n"),sha:s.sha,subject:s.subject,needsRestart:n})}return Response.json({error:`Unknown action '${n}'`},{status:400})}e.s(["GET",0,E,"POST",0,A],34091)},81067,e=>{"use strict";var t=e.i(47909),r=e.i(74017),s=e.i(96250),n=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),c=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 y=e.i(220);let v=new t.AppRouteRouteModule({definition:{kind:r.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:R,serverHooks:w}=v;async function j(e,t,s){s.requestMeta&&(0,n.setRequestMeta)(e,s.requestMeta),v.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let b="/api/update/route";b=b.replace(/\/index$/,"")||"/";let R=await v.prepare(e,t,{srcPage:b,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:w,deploymentId:j,params:S,nextConfig:x,parsedUrl:k,isDraftMode:E,prerenderManifest:A,routerServerContext:C,isOnDemandRevalidate:T,revalidateOnlyGenerated:N,resolvedPathname:H,clientReferenceManifest:D,serverActionsManifest:P}=R,O=(0,o.normalizeAppPath)(b),_=!!(A.dynamicRoutes[O]||A.routes[H]),I=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,k,!1):t.end("This page could not be found"),null);if(_&&!E){let e=!!A.routes[H],t=A.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(x.adapterPath)return await I();throw new g.NoFallbackError}}let M=null;!_||v.isDev||E||(M="/index"===(M=H)?"/":M);let U=!0===v.isDev||!_,$=_&&!U;P&&D&&(0,i.setManifestsSingleton)({page:b,clientReferenceManifest:D,serverActionsManifest:P});let q=e.method||"GET",B=(0,a.getTracer)(),F=B.getActiveScopeSpan(),L=!!(null==C?void 0:C.isWrappedByNextServer),G=!!(0,n.getRequestMeta)(e,"minimalMode"),K=(0,n.getRequestMeta)(e,"incrementalCache")||await v.getIncrementalCache(e,x,A,G);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let V={params:S,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts,useCacheTimeout:x.experimental.useCacheTimeout},cacheComponents:!!x.cacheComponents,validationLevel:x.experimental.instantInsights.validationLevel,supportsDynamicResponse:U,incrementalCache:K,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:x.cacheLife,staticPageGenerationTimeout:x.staticPageGenerationTimeout,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,n)=>v.onRequestError(e,t,s,n,C)},sharedContext:{buildId:w,deploymentId:j}},z=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),X=u.NextRequestAdapter.fromNodeNextRequest(z,(0,u.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:r})=>{try{if(!G&&T&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await v.handle(X,V);e.fetchMetrics=V.renderOpts.fetchMetrics;let a=V.renderOpts.pendingWaitUntil;a&&s.waitUntil&&(s.waitUntil(a),a=void 0);let i=V.renderOpts.collectedTags;if(!_)return await (0,p.sendResponse)(z,W,n,a),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);i&&(t[m.NEXT_CACHE_TAGS_HEADER]=i),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,s=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=m.INFINITE_CACHE?!1!==r&&r>0?x.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await v.onRequestError(e,t,{routerKind:"App Router",routePath:b,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:T})},!1,C),t}},J=async(n,i)=>{try{var o,l;let n=await v.handleResponse({req:e,nextConfig:x,cacheKey:M,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:N,responseGenerator:Z,waitUntil:s.waitUntil,isMinimalMode:G});if(!_)return;if((null==n||null==(o=n.value)?void 0:o.kind)!==y.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});G||t.setHeader("x-nextjs-cache",T?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let a=(0,h.fromNodeOutgoingHttpHeaders)(n.value.headers);G&&_||a.delete(m.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||a.get("Cache-Control")||a.set("Cache-Control",(0,f.getCacheControlHeader)(n.cacheControl)),await (0,p.sendResponse)(z,W,new Response(n.value.body,{headers:a,status:n.value.status||200}));return}catch(t){if(t instanceof g.NoFallbackError||await v.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:T})},!1,C),_)throw t;await (0,p.sendResponse)(z,W,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:a.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let r=B.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 s=r.get("next.route")||O,o=`${q} ${s}`;n.setAttributes({"next.route":s,"http.route":s,"next.span_name":o}),n.updateName(o),i&&i!==n&&(i.setAttribute("http.route",s),i.updateName(o))})()}};if(L&&F)await J(F,void 0);else{let t=B.getActiveScopeSpan();await B.withPropagatedContext(e.headers,()=>B.trace(c.BaseServerSpan.handleRequest,{spanName:`${q} ${b}`,kind:a.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},e=>J(e,t)),void 0,!L)}}e.s(["handler",0,j,"patchFetch",0,function(){return(0,s.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:R})},"routeModule",0,v,"serverHooks",0,w,"workAsyncStorage",0,b,"workUnitAsyncStorage",0,R])}];
|
|
3
3
|
|
|
4
4
|
//# sourceMappingURL=_1itd1o_._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[64935,e=>{"use strict";var t=e.i(80998);let i=["january","february","march","april","may","june","july","august","september","october","november","december"],n=new Set(["S","A"]);async function r(e,{profileUrl:t,userId:i,fields:n={}}){if(!t)return{promoted:!1,reason:"no profile url"};if(!i)return{promoted:!1,reason:"no profile"};let l=e.from("linkedin_connections").select("*").eq("profile_url",t);i&&(l=l.eq("user_id",i));let{data:s}=await l,d=s||[];if(0===d.length)return{promoted:!1,reason:"not on file"};let c=d.filter(e=>1===e.degree);if(c.length>0){let t=await o(e,c),i=d.filter(e=>e.id!==t.id&&e.user_id===t.user_id);for(let n of i)await a(e,n.id,t.id)&&await e.from("linkedin_connections").delete().eq("id",n.id);return Object.keys(n).length&&await e.from("linkedin_connections").update({...n,updated_at:new Date().toISOString()}).eq("id",t.id),{promoted:!1,reason:"already a direct connection",id:t.id,folded:i.length}}let u=d.find(e=>e.unlocked_from_bridge_id)||d.slice().sort((e,t)=>(t.degree||0)-(e.degree||0))[0],p=u.unlocked_from_bridge_id||u.source_connection_id||null,f=u.unlocked_from_name||null;if(p&&!f){let{data:t}=await e.from("linkedin_connections").select("name").eq("id",p).limit(1);f=t?.[0]?.name||null}let _={degree:1,source_connection_id:null,unlock_status:p?"unlocked":u.unlock_status,unlocked_from_bridge_id:p,unlocked_from_name:f,updated_at:new Date().toISOString(),...n};for(let t of d.filter(e=>e.id!==u.id))await a(e,t.id,u.id)&&await e.from("linkedin_connections").delete().eq("id",t.id);return await e.from("linkedin_connections").update(_).eq("id",u.id),{promoted:!0,id:u.id,originId:p,originName:f}}async function o(e,t){if(1===t.length)return t[0];let i=t[0],n=-1;for(let r of t){let{data:t}=await e.from("linkedin_connections").select("id").eq("source_connection_id",r.id),o=(t||[]).length;o>n&&(i=r,n=o)}return i}async function a(e,t,i){let{data:n,error:r}=await e.from("linkedin_connections").select("id, profile_url, user_id").eq("source_connection_id",t);if(r)return!1;for(let t of n||[]){let{data:n}=await e.from("linkedin_connections").select("id").eq("source_connection_id",i).eq("profile_url",t.profile_url).eq("user_id",t.user_id),{error:r}=(n||[]).length?await e.from("linkedin_connections").delete().eq("id",t.id):await e.from("linkedin_connections").update({source_connection_id:i}).eq("id",t.id);if(r)return!1}let{error:o}=await e.from("linkedin_connections").update({unlocked_from_bridge_id:i}).eq("unlocked_from_bridge_id",t);return!o}var l=e.i(77524),s=e.i(98612);async function d(e){try{var o;let a,{connections:d,type:c,bridgeId:u,userId:p,companyName:f}=await e.json();if(!d||!Array.isArray(d))return Response.json({error:"Missing connections array"},{status:400});let _="degree2"===c?2:"company"===c?3:1,m=d.map(e=>{var t;let n,{role:r,company:o}=function(e){if(!e)return{role:"",company:""};let t=e.match(/^(.+?)\s+(?:at|@)\s+(.+?)(?:\s*\|.*)?$/i);return t?{role:t[1].trim(),company:t[2].trim()}:{role:e.split("|")[0].trim(),company:""}}(e.headline),a={degree:_,name:e.name?.trim(),headline:(e.headline||"").trim().substring(0,200),company:(o||("company"===c?f:"")||"").substring(0,100),role:r.substring(0,100),profile_url:e.profileUrl?.trim(),profile_image_url:(0,s.localPhoto)(e.imageUrl),connected_date:function(e){let t,n,r,o=String(e||"").trim();if(/^\d{4}-\d{2}-\d{2}$/.test(o))return o;let a=o.match(/^([A-Za-z]+)\.?\s+(\d{1,2}),?\s+(\d{4})$/);if(a)[,t,n,r]=a;else{if(!(a=o.match(/^(\d{1,2})\s+([A-Za-z]+)\.?\s+(\d{4})$/)))return null;[,n,t,r]=a}let l=i.findIndex(e=>e.startsWith(t.toLowerCase())&&t.length>=3);return(n=Number(n),l<0||n<1||n>new Date(Date.UTC(Number(r),l+1,0)).getUTCDate())?null:`${r}-${String(l+1).padStart(2,"0")}-${String(n).padStart(2,"0")}`}(e.connectedDate),mutual_count:2===_?(t=e.mutualCount,n="string"==typeof t&&/^\d[\d,]*$/.test(t.trim())?Number(t.replace(/,/g,"")):t,Number.isInteger(n)&&n>=1&&n<=3e4?n:null):null};return 2===_&&u&&(a.source_connection_id=u),"company"===c&&f&&(a.scanned_company=f),p&&(a.user_id=p),a}).filter(e=>e.name&&e.profile_url),h=m.length;o=m,a=new Set,m=o.filter(e=>!(!e||!e.profile_url||a.has(e.profile_url))&&(a.add(e.profile_url),!0));let g=h-m.length,w=0;if(_>1&&p&&m.length>0){let e=new Set,i=m.map(e=>e.profile_url);for(let n=0;n<i.length;n+=100){let{data:r}=await t.db.from("linkedin_connections").select("profile_url").in("profile_url",i.slice(n,n+100)).eq("user_id",p).eq("degree",1);(r||[]).forEach(t=>e.add(t.profile_url))}let n=function(e,t){let i=[],n=[];for(let r of e)t.has(r.profile_url)?n.push(r.profile_url):i.push(r);return{keep:i,alreadyConnected:n.length,connected:n}}(m,e);if(m=n.keep,w=n.alreadyConnected,2===_&&u&&n.connected.length)try{let{data:e}=await t.db.from("linkedin_connections").select("profile_url").eq("id",u).eq("user_id",p).limit(1),i=(function(e,t=[]){let i=new Set,n=[];if(!e)return n;for(let r of t){if(!r||r===e)continue;let[t,o]=r<e?[r,e]:[e,r],a=`${t} ${o}`;i.has(a)||(i.add(a),n.push({a_url:t,b_url:o}))}return n})(e?.[0]?.profile_url,n.connected).map(e=>({user_id:p,...e}));i.length&&await t.db.from("connection_ties").upsert(i,{onConflict:"user_id,a_url,b_url",ignoreDuplicates:!0})}catch{}}let y=m.map(e=>e.profile_url).filter(Boolean),b=new Set;if(y.length>0)for(let e=0;e<y.length;e+=100){let i=y.slice(e,e+100),n=t.db.from("linkedin_connections").select("profile_url").in("profile_url",i);2===_&&u&&(n=n.eq("source_connection_id",u)),p&&(n=n.eq("user_id",p));let{data:r}=await n;(r||[]).forEach(e=>b.add(e.profile_url))}let R=m.filter(e=>!b.has(e.profile_url)),v=m.filter(e=>b.has(e.profile_url)),k=0,q=[];if(1===_&&v.length>0){let e=new Set;for(let i=0;i<v.length;i+=100){let n=v.slice(i,i+100).map(e=>e.profile_url),r=t.db.from("linkedin_connections").select("profile_url, degree").in("profile_url",n).eq("degree",2);p&&(r=r.eq("user_id",p));let{data:o}=await r;(o||[]).forEach(t=>e.add(t.profile_url))}for(let i of v){if(!e.has(i.profile_url))continue;let n=await r(t.db,{profileUrl:i.profile_url,userId:p,fields:{name:i.name,headline:i.headline,company:i.company,role:i.role,...i.profile_image_url?{profile_image_url:i.profile_image_url}:{}}});n.promoted&&(k+=1,q.push(n))}}let C=null;if(R.length>0){let{error:e}=await t.db.from("linkedin_connections").insert(R);C=e}if(1===_&&v.length>0)for(let e of v){let i={};e.headline&&(i.headline=e.headline),e.company&&(i.company=e.company),e.role&&(i.role=e.role),e.profile_image_url&&(i.profile_image_url=e.profile_image_url),e.connected_date&&(i.connected_date=e.connected_date),Object.keys(i).length>0&&await t.db.from("linkedin_connections").update(i).eq("profile_url",e.profile_url).eq("degree",1)}if(C)return console.error("Supabase insert error:",C),Response.json({error:C.message},{status:500});if(2===_)for(let e of m){if(null==e.mutual_count)continue;let i=t.db.from("linkedin_connections").update({mutual_count:e.mutual_count}).eq("profile_url",e.profile_url).eq("degree",2);p&&(i=i.eq("user_id",p)),await i}let E=2===_&&u?(await t.db.from("linkedin_connections").select("name, power_score, tier, is_catalyst").eq("id",u).single()).data:null;try{await t.db.rpc("score_new_connections")}catch(e){}if(E)try{let{data:e}=await t.db.from("linkedin_connections").select("name, power_score, tier, is_catalyst, circle_s_count, circle_a_count, circle_elite_pct").eq("id",u).single();if(e){let i=`${e.circle_s_count} S-tier, ${e.circle_a_count} A-tier, ${Math.round(100*(e.circle_elite_pct||0))}% A or S in their circle`,n=parseFloat(E.power_score)||0,r=parseFloat(e.power_score)||0;if(r>n){let o=e.tier!==E.tier;await t.db.from("notifications").insert([{user_id:p||null,type:"bridge_scored",title:o?`Bridge promoted: ${E.tier||"?"} → ${e.tier}`:`Bridge score updated: ${n.toFixed(1)} → ${r.toFixed(1)}`,message:i,icon:o?"⬆️":"📊"}]).catch(()=>{})}e.is_catalyst&&!E.is_catalyst&&await t.db.from("notifications").insert([{user_id:p||null,type:"catalyst_found",title:`Catalyst discovered: ${e.name||"Unknown"}`,message:i,icon:"⚡"}]).catch(()=>{})}}catch(e){}if(2===_&&u&&R.length)try{let e=[],i=R.map(e=>e.profile_url).filter(Boolean);for(let n=0;n<i.length;n+=100){let r=t.db.from("linkedin_connections").select("id, name, company, company_prestige_score, power_score, tier").in("profile_url",i.slice(n,n+100)).eq("source_connection_id",u);p&&(r=r.eq("user_id",p));let{data:o}=await r;e.push(...o||[])}let{data:n}=await t.db.from("linkedin_connections").select("id, name").eq("id",u).single(),r=(0,l.topCompanyNotification)({people:e,via:n,userId:p});r&&await t.db.from("notifications").insert([r])}catch(e){}if(q.length)try{let e=[];for(let i of q.slice(0,10)){let{data:n}=await t.db.from("linkedin_connections").select("id, name, tier, power_score, headline, unlocked_from_bridge_id").eq("id",i.id).single();if(!n)continue;let r=i.originId??n.unlocked_from_bridge_id,o=null!=r?{id:r,name:i.originName||null}:null,a=(0,l.addedBackNotification)({person:n,via:o,userId:p});a&&e.push(a)}e.length&&await t.db.from("notifications").insert(e)}catch(e){}if(1===_&&m.length>0)try{let e=m.map(e=>e.profile_url).filter(Boolean),{data:i}=await t.db.from("linkedin_connections").select("id, name, profile_url").eq("outreach_status","sent").in("profile_url",e.slice(0,200));if(i&&i.length>0){let{data:e}=await t.db.from("linkedin_connections").select("id, name, tier, profile_url, source_connection_id").in("id",i.map(e=>e.id)),n=i.map(e=>e.id);await t.db.from("linkedin_connections").update({outreach_status:"accepted"}).in("id",n);let r={S:100,A:60,B:35,C:15,D:5},o=0;if((e||[]).forEach(e=>{o+=r[e.tier]||5}),o>0&&p){let{data:e}=await t.db.from("user_stats").select("xp").eq("id",p).single();e?await t.db.from("user_stats").update({xp:(e.xp||0)+o}).eq("id",p):await t.db.from("user_stats").insert([{id:p,xp:o,level:1}]).catch(()=>{})}await t.db.from("notifications").insert((e||i).slice(0,5).map(e=>({user_id:p||null,type:"request_accepted",title:`${e.name} accepted! +${r[e.tier]||5} XP`,message:`${e.tier}-Tier connection — bridge their cluster to reach D3`,icon:"🤝",data:{personId:e.id,viaId:e.source_connection_id??null,tier:e.tier??null}}))).catch(()=>{})}}catch(e){}if(1===_&&m.length>0)try{let e=new Map,i=R.map(e=>e.profile_url);for(let n=0;n<i.length;n+=100){let r=t.db.from("linkedin_connections").select("profile_url, tier").in("profile_url",i.slice(n,n+100)).eq("degree",1);p&&(r=r.eq("user_id",p));let{data:o}=await r;(o||[]).forEach(t=>e.set(t.profile_url,t.tier))}let r=function({added:e=[],checked:t=0,tierOf:i=()=>null,userId:r=null}={}){let o=r||null;if(!e.length)return[{user_id:o,type:"refresh_summary",title:"Network up to date",message:`Checked ${t} connections — no new additions`,icon:"✓"}];let a=[{user_id:o,type:"refresh_summary",title:`${e.length} new connection${e.length>1?"s":""} found!`,message:e.slice(0,3).map(e=>e.name).join(", ")+(e.length>3?` +${e.length-3} more`:""),icon:"🔄"}];for(let t of e.filter(e=>n.has(i(e.profile_url))).slice(0,5))a.push({user_id:o,type:"new_elite_connection",title:`High-value connection: ${t.name}`,message:t.headline?.substring(0,60),icon:"👑",data:{profileUrl:t.profile_url}});return a}({added:R,checked:m.length,tierOf:t=>e.get(t),userId:p});await t.db.from("notifications").insert(r)}catch(e){}return Response.json({success:!0,received:d.length,processed:m.length,saved:R.length,alreadyKnown:v.length,alreadyConnected:w,duplicates:g,promoted:k})}catch(e){return console.error("Ingest error:",e),Response.json({error:e.message},{status:500})}}e.s(["POST",0,d],64935)},34140,e=>{"use strict";var t=e.i(47909),i=e.i(74017),n=e.i(96250),r=e.i(59756),o=e.i(61916),a=e.i(74677),l=e.i(69741),s=e.i(16795),d=e.i(87718),c=e.i(95169),u=e.i(47587),p=e.i(66012),f=e.i(70101),_=e.i(26937),m=e.i(10372),h=e.i(93695);e.i(52474);var g=e.i(220);let w=new t.AppRouteRouteModule({definition:{kind:i.RouteKind.APP_ROUTE,page:"/api/ingest/route",pathname:"/api/ingest",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/ingest/route.js",nextConfigOutput:"standalone",userland:()=>e.r(64935),...{}}),{workAsyncStorage:y,workUnitAsyncStorage:b,serverHooks:R}=w;async function v(e,t,n){n.requestMeta&&(0,r.setRequestMeta)(e,n.requestMeta),w.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/ingest/route";y=y.replace(/\/index$/,"")||"/";let b=await w.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!b)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:R,deploymentId:v,params:k,nextConfig:q,parsedUrl:C,isDraftMode:E,prerenderManifest:S,routerServerContext:x,isOnDemandRevalidate:A,revalidateOnlyGenerated:T,resolvedPathname:$,clientReferenceManifest:N,serverActionsManifest:P}=b,O=(0,l.normalizeAppPath)(y),I=!!(S.dynamicRoutes[O]||S.routes[$]),D=async()=>((null==x?void 0:x.render404)?await x.render404(e,t,C,!1):t.end("This page could not be found"),null);if(I&&!E){let e=!!S.routes[$],t=S.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(q.adapterPath)return await D();throw new h.NoFallbackError}}let U=null;!I||w.isDev||E||(U="/index"===(U=$)?"/":U);let H=!0===w.isDev||!I,j=I&&!H;P&&N&&(0,a.setManifestsSingleton)({page:y,clientReferenceManifest:N,serverActionsManifest:P});let M=e.method||"GET",B=(0,o.getTracer)(),F=B.getActiveScopeSpan(),K=!!(null==x?void 0:x.isWrappedByNextServer),L=!!(0,r.getRequestMeta)(e,"minimalMode"),G=(0,r.getRequestMeta)(e,"incrementalCache")||await w.getIncrementalCache(e,q,S,L);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let X={params:k,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!q.experimental.authInterrupts,useCacheTimeout:q.experimental.useCacheTimeout},cacheComponents:!!q.cacheComponents,validationLevel:q.experimental.instantInsights.validationLevel,supportsDynamicResponse:H,incrementalCache:G,hmrRefreshHash:(0,r.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:q.cacheLife,staticPageGenerationTimeout:q.staticPageGenerationTimeout,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,i,n,r)=>w.onRequestError(e,t,n,r,x)},sharedContext:{buildId:R,deploymentId:v}},z=new s.NodeNextRequest(e),V=new s.NodeNextResponse(t),W=d.NextRequestAdapter.fromNodeNextRequest(z,(0,d.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:i})=>{try{if(!L&&A&&T&&!i)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let r=await w.handle(W,X);e.fetchMetrics=X.renderOpts.fetchMetrics;let o=X.renderOpts.pendingWaitUntil;o&&n.waitUntil&&(n.waitUntil(o),o=void 0);let a=X.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(z,V,r,o),null;{let e=await r.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(r.headers);a&&(t[m.NEXT_CACHE_TAGS_HEADER]=a),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let i=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,n=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=m.INFINITE_CACHE?!1!==i&&i>0?q.expireTime:void 0:X.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:r.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:i,expire:n}}}}catch(t){throw(null==i?void 0:i.isStale)&&await w.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:A})},!1,x),t}},J=async(r,a)=>{try{var l,s;let r=await w.handleResponse({req:e,nextConfig:q,cacheKey:U,routeKind:i.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:T,responseGenerator:Z,waitUntil:n.waitUntil,isMinimalMode:L});if(!I)return;if((null==r||null==(l=r.value)?void 0:l.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==r||null==(s=r.value)?void 0:s.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",A?"REVALIDATED":r.isMiss?"MISS":r.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let o=(0,f.fromNodeOutgoingHttpHeaders)(r.value.headers);L&&I||o.delete(m.NEXT_CACHE_TAGS_HEADER),!r.cacheControl||t.getHeader("Cache-Control")||o.get("Cache-Control")||o.set("Cache-Control",(0,_.getCacheControlHeader)(r.cacheControl)),await (0,p.sendResponse)(z,V,new Response(r.value.body,{headers:o,status:r.value.status||200}));return}catch(t){if(t instanceof h.NoFallbackError||await w.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:A})},!1,x),I)throw t;await (0,p.sendResponse)(z,V,new Response(null,{status:500}));return}finally{(()=>{if(!r)return;let e=t.statusCode;r.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(r.setStatus({code:o.SpanStatusCode.ERROR}),r.setAttribute("error.type",e.toString()));let i=B.getRootSpanAttributes();if(!i)return;if(i.get("next.span_type")!==c.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${i.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=i.get("next.route")||O,l=`${M} ${n}`;r.setAttributes({"next.route":n,"http.route":n,"next.span_name":l}),r.updateName(l),a&&a!==r&&(a.setAttribute("http.route",n),a.updateName(l))})()}};if(K&&F)await J(F,void 0);else{let t=B.getActiveScopeSpan();await B.withPropagatedContext(e.headers,()=>B.trace(c.BaseServerSpan.handleRequest,{spanName:`${M} ${y}`,kind:o.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},e=>J(e,t)),void 0,!K)}}e.s(["handler",0,v,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:y,workUnitAsyncStorage:b})},"routeModule",0,w,"serverHooks",0,R,"workAsyncStorage",0,y,"workUnitAsyncStorage",0,b])}];
|
|
1
|
+
module.exports=[64935,e=>{"use strict";var t=e.i(80998);let i=["january","february","march","april","may","june","july","august","september","october","november","december"],n=new Set(["S","A"]);async function r(e,{profileUrl:t,userId:i,fields:n={}}){if(!t)return{promoted:!1,reason:"no profile url"};if(!i)return{promoted:!1,reason:"no profile"};let l=e.from("linkedin_connections").select("*").eq("profile_url",t);i&&(l=l.eq("user_id",i));let{data:s}=await l,d=s||[];if(0===d.length)return{promoted:!1,reason:"not on file"};let c=d.filter(e=>1===e.degree);if(c.length>0){let t=await o(e,c),i=d.filter(e=>e.id!==t.id&&e.user_id===t.user_id);for(let n of i)await a(e,n.id,t.id)&&await e.from("linkedin_connections").delete().eq("id",n.id);return Object.keys(n).length&&await e.from("linkedin_connections").update({...n,updated_at:new Date().toISOString()}).eq("id",t.id),{promoted:!1,reason:"already a direct connection",id:t.id,folded:i.length}}let u=d.find(e=>e.unlocked_from_bridge_id)||d.slice().sort((e,t)=>(t.degree||0)-(e.degree||0))[0],p=u.unlocked_from_bridge_id||u.source_connection_id||null,f=u.unlocked_from_name||null;if(p&&!f){let{data:t}=await e.from("linkedin_connections").select("name").eq("id",p).limit(1);f=t?.[0]?.name||null}let _={degree:1,source_connection_id:null,unlock_status:p?"unlocked":u.unlock_status,unlocked_from_bridge_id:p,unlocked_from_name:f,updated_at:new Date().toISOString(),...n};for(let t of d.filter(e=>e.id!==u.id))await a(e,t.id,u.id)&&await e.from("linkedin_connections").delete().eq("id",t.id);return await e.from("linkedin_connections").update(_).eq("id",u.id),{promoted:!0,id:u.id,originId:p,originName:f}}async function o(e,t){if(1===t.length)return t[0];let i=t[0],n=-1;for(let r of t){let{data:t}=await e.from("linkedin_connections").select("id").eq("source_connection_id",r.id),o=(t||[]).length;o>n&&(i=r,n=o)}return i}async function a(e,t,i){let{data:n,error:r}=await e.from("linkedin_connections").select("id, profile_url, user_id").eq("source_connection_id",t);if(r)return!1;for(let t of n||[]){let{data:n}=await e.from("linkedin_connections").select("id").eq("source_connection_id",i).eq("profile_url",t.profile_url).eq("user_id",t.user_id),{error:r}=(n||[]).length?await e.from("linkedin_connections").delete().eq("id",t.id):await e.from("linkedin_connections").update({source_connection_id:i}).eq("id",t.id);if(r)return!1}let{error:o}=await e.from("linkedin_connections").update({unlocked_from_bridge_id:i}).eq("unlocked_from_bridge_id",t);return!o}var l=e.i(77524),s=e.i(98612);async function d(e){try{var o;let a,{connections:d,type:c,bridgeId:u,userId:p,companyName:f}=await e.json();if(!d||!Array.isArray(d))return Response.json({error:"Missing connections array"},{status:400});let _="degree2"===c?2:"company"===c?3:1,m=d.map(e=>{var t;let n,{role:r,company:o}=function(e){if(!e)return{role:"",company:""};let t=e.match(/^(.+?)\s+(?:at|@)\s+(.+?)(?:\s*\|.*)?$/i);return t?{role:t[1].trim(),company:t[2].trim()}:{role:e.split("|")[0].trim(),company:""}}(e.headline),a={degree:_,name:e.name?.trim(),headline:(e.headline||"").trim().substring(0,200),company:(o||("company"===c?f:"")||"").substring(0,100),role:r.substring(0,100),profile_url:e.profileUrl?.trim(),profile_image_url:(0,s.localPhoto)(e.imageUrl),connected_date:function(e){let t,n,r,o=String(e||"").trim();if(/^\d{4}-\d{2}-\d{2}$/.test(o))return o;let a=o.match(/^([A-Za-z]+)\.?\s+(\d{1,2}),?\s+(\d{4})$/);if(a)[,t,n,r]=a;else{if(!(a=o.match(/^(\d{1,2})\s+([A-Za-z]+)\.?\s+(\d{4})$/)))return null;[,n,t,r]=a}let l=i.findIndex(e=>e.startsWith(t.toLowerCase())&&t.length>=3);return(n=Number(n),l<0||n<1||n>new Date(Date.UTC(Number(r),l+1,0)).getUTCDate())?null:`${r}-${String(l+1).padStart(2,"0")}-${String(n).padStart(2,"0")}`}(e.connectedDate),mutual_count:2===_?(t=e.mutualCount,n="string"==typeof t&&/^\d[\d,]*$/.test(t.trim())?Number(t.replace(/,/g,"")):t,Number.isInteger(n)&&n>=1&&n<=3e4?n:null):null};return 2===_&&u&&(a.source_connection_id=u),"company"===c&&f&&(a.scanned_company=f),p&&(a.user_id=p),a}).filter(e=>e.name&&e.profile_url),h=m.length;o=m,a=new Set,m=o.filter(e=>!(!e||!e.profile_url||a.has(e.profile_url))&&(a.add(e.profile_url),!0));let g=h-m.length,w=0;if(_>1&&p&&m.length>0){let e=new Set,i=m.map(e=>e.profile_url);for(let n=0;n<i.length;n+=100){let{data:r}=await t.db.from("linkedin_connections").select("profile_url").in("profile_url",i.slice(n,n+100)).eq("user_id",p).eq("degree",1);(r||[]).forEach(t=>e.add(t.profile_url))}let n=function(e,t){let i=[],n=[];for(let r of e)t.has(r.profile_url)?n.push(r.profile_url):i.push(r);return{keep:i,alreadyConnected:n.length,connected:n}}(m,e);if(m=n.keep,w=n.alreadyConnected,2===_&&u&&n.connected.length)try{let{data:e}=await t.db.from("linkedin_connections").select("profile_url").eq("id",u).eq("user_id",p).limit(1),i=(function(e,t=[]){let i=new Set,n=[];if(!e)return n;for(let r of t){if(!r||r===e)continue;let[t,o]=r<e?[r,e]:[e,r],a=`${t} ${o}`;i.has(a)||(i.add(a),n.push({a_url:t,b_url:o}))}return n})(e?.[0]?.profile_url,n.connected).map(e=>({user_id:p,...e}));i.length&&await t.db.from("connection_ties").upsert(i,{onConflict:"user_id,a_url,b_url",ignoreDuplicates:!0})}catch{}}let y=m.map(e=>e.profile_url).filter(Boolean),b=new Set;if(y.length>0)for(let e=0;e<y.length;e+=100){let i=y.slice(e,e+100),n=t.db.from("linkedin_connections").select("profile_url").in("profile_url",i);2===_&&u&&(n=n.eq("source_connection_id",u)),p&&(n=n.eq("user_id",p));let{data:r}=await n;(r||[]).forEach(e=>b.add(e.profile_url))}let R=m.filter(e=>!b.has(e.profile_url)),v=m.filter(e=>b.has(e.profile_url)),k=0,q=[];if(1===_&&v.length>0){let e=new Set;for(let i=0;i<v.length;i+=100){let n=v.slice(i,i+100).map(e=>e.profile_url),r=t.db.from("linkedin_connections").select("profile_url, degree").in("profile_url",n).eq("degree",2);p&&(r=r.eq("user_id",p));let{data:o}=await r;(o||[]).forEach(t=>e.add(t.profile_url))}for(let i of v){if(!e.has(i.profile_url))continue;let n=await r(t.db,{profileUrl:i.profile_url,userId:p,fields:{name:i.name,headline:i.headline,company:i.company,role:i.role,...i.profile_image_url?{profile_image_url:i.profile_image_url}:{}}});n.promoted&&(k+=1,q.push(n))}}let C=null;if(R.length>0){let{error:e}=await t.db.from("linkedin_connections").insert(R);C=e}if(1===_&&v.length>0)for(let e of v){let i={};e.headline&&(i.headline=e.headline),e.company&&(i.company=e.company),e.role&&(i.role=e.role),e.profile_image_url&&(i.profile_image_url=e.profile_image_url),e.connected_date&&(i.connected_date=e.connected_date),Object.keys(i).length>0&&await t.db.from("linkedin_connections").update(i).eq("profile_url",e.profile_url).eq("degree",1)}if(C)return console.error("Supabase insert error:",C),Response.json({error:C.message},{status:500});if(2===_)for(let e of m){if(null==e.mutual_count)continue;let i=t.db.from("linkedin_connections").update({mutual_count:e.mutual_count}).eq("profile_url",e.profile_url).eq("degree",2);p&&(i=i.eq("user_id",p)),await i}let E=2===_&&u?(await t.db.from("linkedin_connections").select("name, power_score, tier, is_catalyst").eq("id",u).single()).data:null;try{await t.db.rpc("score_new_connections")}catch(e){}if(E)try{let{data:e}=await t.db.from("linkedin_connections").select("name, power_score, tier, is_catalyst, circle_s_count, circle_a_count, circle_elite_pct").eq("id",u).single();if(e){let i=`${e.circle_s_count} S-tier, ${e.circle_a_count} A-tier, ${Math.round(100*(e.circle_elite_pct||0))}% A or S in their circle`,n=parseFloat(E.power_score)||0,r=parseFloat(e.power_score)||0;if(r>n){let o=e.tier!==E.tier;await t.db.from("notifications").insert([{user_id:p||null,type:"bridge_scored",title:o?`Bridge promoted: ${E.tier||"?"} → ${e.tier}`:`Bridge score updated: ${n.toFixed(1)} → ${r.toFixed(1)}`,message:i,icon:o?"⬆️":"📊"}]).catch(()=>{})}e.is_catalyst&&!E.is_catalyst&&await t.db.from("notifications").insert([{user_id:p||null,type:"catalyst_found",title:`Catalyst discovered: ${e.name||"Unknown"}`,message:i,icon:"⚡"}]).catch(()=>{})}}catch(e){}if(2===_&&u&&R.length)try{let e=[],i=R.map(e=>e.profile_url).filter(Boolean);for(let n=0;n<i.length;n+=100){let r=t.db.from("linkedin_connections").select("id, name, company, company_prestige_score, power_score, tier").in("profile_url",i.slice(n,n+100)).eq("source_connection_id",u);p&&(r=r.eq("user_id",p));let{data:o}=await r;e.push(...o||[])}let{data:n}=await t.db.from("linkedin_connections").select("id, name").eq("id",u).single(),r=(0,l.topCompanyNotification)({people:e,via:n,userId:p});r&&await t.db.from("notifications").insert([r])}catch(e){}if(q.length)try{let e=[];for(let i of q.slice(0,10)){let{data:n}=await t.db.from("linkedin_connections").select("id, name, tier, power_score, headline, unlocked_from_bridge_id").eq("id",i.id).single();if(!n)continue;let r=i.originId??n.unlocked_from_bridge_id,o=null!=r?{id:r,name:i.originName||null}:null,a=(0,l.addedBackNotification)({person:n,via:o,userId:p});a&&e.push(a)}e.length&&await t.db.from("notifications").insert(e)}catch(e){}if(1===_&&m.length>0)try{let e=m.map(e=>e.profile_url).filter(Boolean),{data:i}=await t.db.from("linkedin_connections").select("id, name, profile_url").eq("outreach_status","sent").in("profile_url",e.slice(0,200));if(i&&i.length>0){let{data:e}=await t.db.from("linkedin_connections").select("id, name, tier, profile_url, source_connection_id").in("id",i.map(e=>e.id)),n=i.map(e=>e.id);await t.db.from("linkedin_connections").update({outreach_status:"accepted"}).in("id",n);let r={S:100,A:60,B:35,C:15,D:5},o=0;if((e||[]).forEach(e=>{o+=r[e.tier]||5}),o>0&&p){let{data:e}=await t.db.from("user_stats").select("xp").eq("id",p).single();e?await t.db.from("user_stats").update({xp:(e.xp||0)+o}).eq("id",p):await t.db.from("user_stats").insert([{id:p,xp:o,level:1}]).catch(()=>{})}await t.db.from("notifications").insert((e||i).slice(0,5).map(e=>({user_id:p||null,type:"request_accepted",title:`${e.name} accepted! +${r[e.tier]||5} XP`,message:`${e.tier}-Tier connection: bridge their cluster to reach D3`,icon:"🤝",data:{personId:e.id,viaId:e.source_connection_id??null,tier:e.tier??null}}))).catch(()=>{})}}catch(e){}if(1===_&&m.length>0)try{let e=new Map,i=R.map(e=>e.profile_url);for(let n=0;n<i.length;n+=100){let r=t.db.from("linkedin_connections").select("profile_url, tier").in("profile_url",i.slice(n,n+100)).eq("degree",1);p&&(r=r.eq("user_id",p));let{data:o}=await r;(o||[]).forEach(t=>e.set(t.profile_url,t.tier))}let r=function({added:e=[],checked:t=0,tierOf:i=()=>null,userId:r=null}={}){let o=r||null;if(!e.length)return[{user_id:o,type:"refresh_summary",title:"Network up to date",message:`Checked ${t} connections: no new additions`,icon:"✓"}];let a=[{user_id:o,type:"refresh_summary",title:`${e.length} new connection${e.length>1?"s":""} found!`,message:e.slice(0,3).map(e=>e.name).join(", ")+(e.length>3?` +${e.length-3} more`:""),icon:"🔄"}];for(let t of e.filter(e=>n.has(i(e.profile_url))).slice(0,5))a.push({user_id:o,type:"new_elite_connection",title:`High-value connection: ${t.name}`,message:t.headline?.substring(0,60),icon:"👑",data:{profileUrl:t.profile_url}});return a}({added:R,checked:m.length,tierOf:t=>e.get(t),userId:p});await t.db.from("notifications").insert(r)}catch(e){}return Response.json({success:!0,received:d.length,processed:m.length,saved:R.length,alreadyKnown:v.length,alreadyConnected:w,duplicates:g,promoted:k})}catch(e){return console.error("Ingest error:",e),Response.json({error:e.message},{status:500})}}e.s(["POST",0,d],64935)},34140,e=>{"use strict";var t=e.i(47909),i=e.i(74017),n=e.i(96250),r=e.i(59756),o=e.i(61916),a=e.i(74677),l=e.i(69741),s=e.i(16795),d=e.i(87718),c=e.i(95169),u=e.i(47587),p=e.i(66012),f=e.i(70101),_=e.i(26937),m=e.i(10372),h=e.i(93695);e.i(52474);var g=e.i(220);let w=new t.AppRouteRouteModule({definition:{kind:i.RouteKind.APP_ROUTE,page:"/api/ingest/route",pathname:"/api/ingest",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/ingest/route.js",nextConfigOutput:"standalone",userland:()=>e.r(64935),...{}}),{workAsyncStorage:y,workUnitAsyncStorage:b,serverHooks:R}=w;async function v(e,t,n){n.requestMeta&&(0,r.setRequestMeta)(e,n.requestMeta),w.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/ingest/route";y=y.replace(/\/index$/,"")||"/";let b=await w.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!b)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:R,deploymentId:v,params:k,nextConfig:q,parsedUrl:C,isDraftMode:E,prerenderManifest:S,routerServerContext:x,isOnDemandRevalidate:A,revalidateOnlyGenerated:T,resolvedPathname:$,clientReferenceManifest:N,serverActionsManifest:P}=b,O=(0,l.normalizeAppPath)(y),I=!!(S.dynamicRoutes[O]||S.routes[$]),D=async()=>((null==x?void 0:x.render404)?await x.render404(e,t,C,!1):t.end("This page could not be found"),null);if(I&&!E){let e=!!S.routes[$],t=S.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(q.adapterPath)return await D();throw new h.NoFallbackError}}let U=null;!I||w.isDev||E||(U="/index"===(U=$)?"/":U);let H=!0===w.isDev||!I,j=I&&!H;P&&N&&(0,a.setManifestsSingleton)({page:y,clientReferenceManifest:N,serverActionsManifest:P});let M=e.method||"GET",B=(0,o.getTracer)(),F=B.getActiveScopeSpan(),K=!!(null==x?void 0:x.isWrappedByNextServer),L=!!(0,r.getRequestMeta)(e,"minimalMode"),G=(0,r.getRequestMeta)(e,"incrementalCache")||await w.getIncrementalCache(e,q,S,L);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let X={params:k,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!q.experimental.authInterrupts,useCacheTimeout:q.experimental.useCacheTimeout},cacheComponents:!!q.cacheComponents,validationLevel:q.experimental.instantInsights.validationLevel,supportsDynamicResponse:H,incrementalCache:G,hmrRefreshHash:(0,r.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:q.cacheLife,staticPageGenerationTimeout:q.staticPageGenerationTimeout,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,i,n,r)=>w.onRequestError(e,t,n,r,x)},sharedContext:{buildId:R,deploymentId:v}},z=new s.NodeNextRequest(e),V=new s.NodeNextResponse(t),W=d.NextRequestAdapter.fromNodeNextRequest(z,(0,d.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:i})=>{try{if(!L&&A&&T&&!i)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let r=await w.handle(W,X);e.fetchMetrics=X.renderOpts.fetchMetrics;let o=X.renderOpts.pendingWaitUntil;o&&n.waitUntil&&(n.waitUntil(o),o=void 0);let a=X.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(z,V,r,o),null;{let e=await r.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(r.headers);a&&(t[m.NEXT_CACHE_TAGS_HEADER]=a),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let i=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,n=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=m.INFINITE_CACHE?!1!==i&&i>0?q.expireTime:void 0:X.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:r.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:i,expire:n}}}}catch(t){throw(null==i?void 0:i.isStale)&&await w.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:A})},!1,x),t}},J=async(r,a)=>{try{var l,s;let r=await w.handleResponse({req:e,nextConfig:q,cacheKey:U,routeKind:i.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:T,responseGenerator:Z,waitUntil:n.waitUntil,isMinimalMode:L});if(!I)return;if((null==r||null==(l=r.value)?void 0:l.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==r||null==(s=r.value)?void 0:s.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",A?"REVALIDATED":r.isMiss?"MISS":r.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let o=(0,f.fromNodeOutgoingHttpHeaders)(r.value.headers);L&&I||o.delete(m.NEXT_CACHE_TAGS_HEADER),!r.cacheControl||t.getHeader("Cache-Control")||o.get("Cache-Control")||o.set("Cache-Control",(0,_.getCacheControlHeader)(r.cacheControl)),await (0,p.sendResponse)(z,V,new Response(r.value.body,{headers:o,status:r.value.status||200}));return}catch(t){if(t instanceof h.NoFallbackError||await w.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:A})},!1,x),I)throw t;await (0,p.sendResponse)(z,V,new Response(null,{status:500}));return}finally{(()=>{if(!r)return;let e=t.statusCode;r.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(r.setStatus({code:o.SpanStatusCode.ERROR}),r.setAttribute("error.type",e.toString()));let i=B.getRootSpanAttributes();if(!i)return;if(i.get("next.span_type")!==c.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${i.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=i.get("next.route")||O,l=`${M} ${n}`;r.setAttributes({"next.route":n,"http.route":n,"next.span_name":l}),r.updateName(l),a&&a!==r&&(a.setAttribute("http.route",n),a.updateName(l))})()}};if(K&&F)await J(F,void 0);else{let t=B.getActiveScopeSpan();await B.withPropagatedContext(e.headers,()=>B.trace(c.BaseServerSpan.handleRequest,{spanName:`${M} ${y}`,kind:o.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},e=>J(e,t)),void 0,!K)}}e.s(["handler",0,v,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:y,workUnitAsyncStorage:b})},"routeModule",0,w,"serverHooks",0,R,"workAsyncStorage",0,y,"workUnitAsyncStorage",0,b])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_1iwkh8t._.js.map
|