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
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
module.exports=[73156,28681,48170,54090,1348,99628,41238,98612,26525,92375,19041,97838,e=>{"use strict";var t=e.x("node:sqlite",()=>require("node:sqlite"),!0),n=e.i(2157),r=e.i(60526),i=e.i(50227);let a=`-- Six Degrees — local SQLite schema.
|
|
2
|
+
--
|
|
3
|
+
-- Ported from the Postgres schema this project ran on before it went
|
|
4
|
+
-- local-first. Type mapping: uuid -> TEXT (generated in JS), jsonb and
|
|
5
|
+
-- text[] -> TEXT holding JSON, boolean -> INTEGER 0/1, timestamptz and date
|
|
6
|
+
-- -> TEXT holding ISO-8601. lib/db.js encodes and decodes these so route
|
|
7
|
+
-- code sees the same shapes it always did.
|
|
8
|
+
|
|
9
|
+
PRAGMA journal_mode = WAL;
|
|
10
|
+
PRAGMA foreign_keys = ON;
|
|
11
|
+
|
|
12
|
+
CREATE TABLE IF NOT EXISTS users (
|
|
13
|
+
id TEXT PRIMARY KEY,
|
|
14
|
+
name TEXT NOT NULL,
|
|
15
|
+
headline TEXT,
|
|
16
|
+
role TEXT,
|
|
17
|
+
company TEXT,
|
|
18
|
+
industry TEXT,
|
|
19
|
+
sectors TEXT, -- JSON array
|
|
20
|
+
goals TEXT, -- JSON array
|
|
21
|
+
linkedin_url TEXT,
|
|
22
|
+
company_prestige_config TEXT, -- JSON object
|
|
23
|
+
created_at TEXT DEFAULT (datetime('now'))
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
CREATE TABLE IF NOT EXISTS linkedin_connections (
|
|
27
|
+
id TEXT PRIMARY KEY,
|
|
28
|
+
degree INTEGER NOT NULL DEFAULT 1,
|
|
29
|
+
source_connection_id TEXT,
|
|
30
|
+
name TEXT NOT NULL,
|
|
31
|
+
headline TEXT,
|
|
32
|
+
company TEXT,
|
|
33
|
+
role TEXT,
|
|
34
|
+
profile_url TEXT NOT NULL,
|
|
35
|
+
profile_image_url TEXT,
|
|
36
|
+
connected_date TEXT,
|
|
37
|
+
power_score REAL DEFAULT 0,
|
|
38
|
+
seniority_score REAL DEFAULT 0,
|
|
39
|
+
company_prestige_score REAL DEFAULT 0,
|
|
40
|
+
influence_signals TEXT DEFAULT '{}', -- JSON
|
|
41
|
+
tier TEXT,
|
|
42
|
+
is_catalyst INTEGER DEFAULT 0, -- boolean
|
|
43
|
+
catalyst_score REAL DEFAULT 0,
|
|
44
|
+
circle_power REAL DEFAULT 0,
|
|
45
|
+
circle_s_count INTEGER DEFAULT 0,
|
|
46
|
+
circle_a_count INTEGER DEFAULT 0,
|
|
47
|
+
circle_elite_pct REAL DEFAULT 0,
|
|
48
|
+
unlock_status TEXT DEFAULT 'locked',
|
|
49
|
+
unlocked_from_bridge_id TEXT,
|
|
50
|
+
unlocked_from_name TEXT,
|
|
51
|
+
outreach_status TEXT,
|
|
52
|
+
mutual_count INTEGER, -- LinkedIn's count of mutual connections (2nd degree), when a scan read one
|
|
53
|
+
scanned_company TEXT,
|
|
54
|
+
score_why TEXT,
|
|
55
|
+
user_id TEXT,
|
|
56
|
+
image_refreshed_at TEXT,
|
|
57
|
+
created_at TEXT DEFAULT (datetime('now')),
|
|
58
|
+
updated_at TEXT DEFAULT (datetime('now'))
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
-- Mirrors the Postgres uniqueness rule: one row per person, per bridge, per
|
|
62
|
+
-- user. COALESCE keeps NULLs from defeating the constraint the way they would
|
|
63
|
+
-- in a plain UNIQUE index.
|
|
64
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_connections_unique_per_user_bridge
|
|
65
|
+
ON linkedin_connections (
|
|
66
|
+
profile_url,
|
|
67
|
+
COALESCE(source_connection_id, ''),
|
|
68
|
+
COALESCE(user_id, '')
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
CREATE INDEX IF NOT EXISTS idx_connections_degree ON linkedin_connections(degree);
|
|
72
|
+
CREATE INDEX IF NOT EXISTS idx_connections_user ON linkedin_connections(user_id);
|
|
73
|
+
CREATE INDEX IF NOT EXISTS idx_connections_power ON linkedin_connections(power_score DESC);
|
|
74
|
+
CREATE INDEX IF NOT EXISTS idx_connections_source ON linkedin_connections(source_connection_id);
|
|
75
|
+
CREATE INDEX IF NOT EXISTS idx_connections_tier ON linkedin_connections(tier);
|
|
76
|
+
|
|
77
|
+
CREATE TABLE IF NOT EXISTS user_stats (
|
|
78
|
+
id TEXT PRIMARY KEY,
|
|
79
|
+
xp INTEGER DEFAULT 0,
|
|
80
|
+
level INTEGER DEFAULT 1,
|
|
81
|
+
streak_weeks INTEGER DEFAULT 0,
|
|
82
|
+
last_scrape_at TEXT,
|
|
83
|
+
last_active_at TEXT DEFAULT (datetime('now')),
|
|
84
|
+
created_at TEXT DEFAULT (datetime('now'))
|
|
85
|
+
);
|
|
86
|
+
|
|
87
|
+
CREATE TABLE IF NOT EXISTS notifications (
|
|
88
|
+
id TEXT PRIMARY KEY,
|
|
89
|
+
user_id TEXT,
|
|
90
|
+
type TEXT NOT NULL,
|
|
91
|
+
title TEXT NOT NULL,
|
|
92
|
+
message TEXT,
|
|
93
|
+
icon TEXT,
|
|
94
|
+
seen INTEGER DEFAULT 0, -- boolean
|
|
95
|
+
data TEXT DEFAULT '{}', -- JSON
|
|
96
|
+
created_at TEXT DEFAULT (datetime('now'))
|
|
97
|
+
);
|
|
98
|
+
|
|
99
|
+
CREATE INDEX IF NOT EXISTS idx_notifications_user ON notifications(user_id, created_at DESC);
|
|
100
|
+
|
|
101
|
+
CREATE TABLE IF NOT EXISTS queue_items (
|
|
102
|
+
id TEXT PRIMARY KEY,
|
|
103
|
+
connection_id TEXT,
|
|
104
|
+
profile_url TEXT NOT NULL UNIQUE,
|
|
105
|
+
name TEXT NOT NULL,
|
|
106
|
+
status TEXT DEFAULT 'suggested',
|
|
107
|
+
xp_reward INTEGER DEFAULT 10,
|
|
108
|
+
bridge_name TEXT,
|
|
109
|
+
created_at TEXT DEFAULT (datetime('now')),
|
|
110
|
+
sent_at TEXT,
|
|
111
|
+
accepted_at TEXT,
|
|
112
|
+
scanned_at TEXT
|
|
113
|
+
);
|
|
114
|
+
|
|
115
|
+
-- Company scores you set yourself (lib/scoring.js): they win over the curated
|
|
116
|
+
-- list and over the network estimate. One row per canonical company name.
|
|
117
|
+
CREATE TABLE IF NOT EXISTS company_scores (
|
|
118
|
+
id TEXT PRIMARY KEY,
|
|
119
|
+
name TEXT NOT NULL UNIQUE,
|
|
120
|
+
score REAL NOT NULL,
|
|
121
|
+
updated_at TEXT DEFAULT (datetime('now'))
|
|
122
|
+
);
|
|
123
|
+
|
|
124
|
+
-- Small key/value facts about this install, e.g. which scoring model the
|
|
125
|
+
-- stored scores were computed with.
|
|
126
|
+
-- Two of your own connections who know each other, seen when a circle scan
|
|
127
|
+
-- found one of them in the other's list (they're dropped from that circle,
|
|
128
|
+
-- being yours already). By profile URL, the smaller first, so a pair is one
|
|
129
|
+
-- row whichever circle showed it. No extra LinkedIn traffic: the scan read
|
|
130
|
+
-- them anyway. For clustering and communities later (lib/ties.js).
|
|
131
|
+
CREATE TABLE IF NOT EXISTS connection_ties (
|
|
132
|
+
id TEXT, -- lib/db.js gives every row one
|
|
133
|
+
user_id TEXT NOT NULL,
|
|
134
|
+
a_url TEXT NOT NULL,
|
|
135
|
+
b_url TEXT NOT NULL,
|
|
136
|
+
seen_at TEXT DEFAULT (datetime('now')),
|
|
137
|
+
PRIMARY KEY (user_id, a_url, b_url)
|
|
138
|
+
);
|
|
139
|
+
|
|
140
|
+
CREATE TABLE IF NOT EXISTS app_meta (
|
|
141
|
+
key TEXT PRIMARY KEY,
|
|
142
|
+
value TEXT
|
|
143
|
+
);
|
|
144
|
+
|
|
145
|
+
-- Referenced by app/api/setup-profile but absent from the old cloud schema,
|
|
146
|
+
-- so it is created here rather than inherited.
|
|
147
|
+
CREATE TABLE IF NOT EXISTS user_profile (
|
|
148
|
+
id TEXT PRIMARY KEY,
|
|
149
|
+
user_id TEXT,
|
|
150
|
+
name TEXT,
|
|
151
|
+
headline TEXT,
|
|
152
|
+
role TEXT,
|
|
153
|
+
company TEXT,
|
|
154
|
+
industry TEXT,
|
|
155
|
+
sectors TEXT, -- JSON array
|
|
156
|
+
goals TEXT, -- JSON array
|
|
157
|
+
linkedin_url TEXT,
|
|
158
|
+
company_prestige_config TEXT, -- JSON object
|
|
159
|
+
created_at TEXT DEFAULT (datetime('now')),
|
|
160
|
+
updated_at TEXT DEFAULT (datetime('now'))
|
|
161
|
+
);
|
|
162
|
+
`;e.s(["SCHEMA_SQL",0,a],28681);let o="0.7.0";e.s(["APP_VERSION",0,o],48170);var s=e.x("node:sqlite",()=>require("node:sqlite"),!0),l=e.i(12714),c=e.i(12506);let u=["/api/admin-delete","/api/admin-update","/api/delete-cluster","/api/setup-profile","/api/scraper","/api/update","/api/data/export","/api/data/import","/api/data/restart","/api/data/reveal","/api/data/backup","/api/data/restore","/api/data/csv"],f=new Set(["127.0.0.1","::1","localhost"]),d=new Set(["127.0.0.1","localhost","[::1]","0.0.0.0"]);function p(e){return f.has(String(e||"").toLowerCase())}function h({method:e,pathname:t,headers:n,env:r={}}){let i=e=>n?.get?.(e)??null,a=r.SIX_DEGREES_BIND||r.HOSTNAME;if(function({bind:e,host:t}){let n;if(!p(e)||!t)return!1;try{n=new URL(`http://${t}`).hostname.toLowerCase()}catch{return!0}return!d.has(n)}({bind:a,host:i("host")}))return{status:421,error:"This app only answers to 127.0.0.1 and localhost."};if(function({method:e,secFetchSite:t,origin:n,host:r}){if(!e||!["POST","PUT","PATCH","DELETE"].includes(e.toUpperCase()))return!1;if(t){if("same-origin"===t||"none"===t)return!1;if("same-site"!==t||!n)return!0}if(n)try{let e=new URL(n).host;return!!r&&e!==r}catch{return!0}return!1}({method:e,secFetchSite:i("sec-fetch-site"),origin:i("origin"),host:i("host")}))return{status:403,error:"Cross-site requests are not accepted. This app only answers to pages it serves."};if(!u.some(e=>t===e||t.startsWith(`${e}/`)))return null;let o=function({bind:e,token:t,bearer:n}){return t&&function(e,t){if("string"!=typeof e||"string"!=typeof t||e.length!==t.length)return!1;let n=0;for(let r=0;r<e.length;r++)n|=e.charCodeAt(r)^t.charCodeAt(r);return 0===n}(n,t)?{allow:!0,reason:"valid admin token"}:p(e)?{allow:!0,reason:"server is bound to loopback; only this machine can connect"}:t?{allow:!1,status:401,reason:"missing or incorrect admin token"}:{allow:!1,status:503,reason:"server is not bound to loopback and no ADMIN_TOKEN is configured"}}({bind:a,token:r.ADMIN_TOKEN,bearer:(i("authorization")||"").replace(/^Bearer\s+/i,"")});return o.allow?null:{status:o.status,error:o.reason}}e.s(["requestRefusal",0,h],54090);let m=Symbol.for("six-degrees.scan-state");function y(){let e=globalThis[m];return e?.running!==!0?null:"string"==typeof e.action&&e.action?e.action:"scan"}function T(e){switch(e){case"install":return"The scanner's packages are being installed";case"setup":return"The scanner is being set up";case"login":return"The LinkedIn sign-in window is open";case"photos":return"Profile photos are being saved";default:return"A scan is running"}}e.s(["busyRefusal",0,function(e,t=y()){return t?`${T(t)}. ${e}`:null},"registerScanState",0,function(e){return globalThis[m]||(globalThis[m]=e),globalThis[m]},"runningNow",0,T,"scannerJob",0,y],1348);let E=new Set(["ENOENT","EINVAL","ENOTSUP","ENOSYS","EISDIR","EPERM","EBADF"]);function g(e){let t;try{t=n.default.openSync(e,"r")}catch(e){if(E.has(e.code))return;throw e}try{n.default.fsyncSync(t)}catch(e){if(!E.has(e.code))throw e}finally{n.default.closeSync(t)}}function S(e,t){let r=`${e}.${process.pid}.tmp`;try{let i=n.default.openSync(r,"w");try{n.default.writeFileSync(i,t),n.default.fsyncSync(i)}finally{n.default.closeSync(i)}n.default.renameSync(r,e)}catch(e){throw n.default.rmSync(r,{force:!0}),e}g(i.default.dirname(e))}let w={syncFile:function(e){let t=n.default.openSync(e,"r");try{n.default.fsyncSync(t)}finally{n.default.closeSync(t)}},syncFolder:g,writeFileDurably:S,writeJsonDurably:function(e,t){S(e,`${JSON.stringify(t,null,2)}
|
|
163
|
+
`)}};e.s(["durable",0,w],99628);let b={fast:{label:"Fast",pagePause:20,chunkCooldown:60,profileGap:60},medium:{label:"Medium",pagePause:45,chunkCooldown:180,profileGap:90},slow:{label:"Slow",pagePause:90,chunkCooldown:300,profileGap:120}},_=[25,50,100,200,500],A=[100,250,500,1e3,0],k=[10,25,50,100],N="America/Los_Angeles";function I(e){try{return JSON.parse((0,n.readFileSync)(e,"utf8"))}catch{return null}}function R(e,t){let r=`${e}.${process.pid}.${Date.now()}.tmp`;(0,n.writeFileSync)(r,JSON.stringify(t,null,2)),(0,n.renameSync)(r,e)}function D(e=Date.now()){let t=Object.fromEntries(new Intl.DateTimeFormat("en-US",{timeZone:N,year:"numeric",month:"numeric"}).formatToParts(new Date(e)).map(e=>[e.type,e.value])),n=Number(t.year),r=Number(t.month),i=Date.UTC(n,r-1,1,8);for(let e=0;e<2;e++)i=Date.UTC(n,r-1,1,-function(e){let t=(new Intl.DateTimeFormat("en-US",{timeZone:N,timeZoneName:"shortOffset"}).formatToParts(new Date(e)).find(e=>"timeZoneName"===e.type)?.value||"GMT-8").match(/GMT([+-]\d+)(?::(\d+))?/);return t?Number(t[1]):-8}(i));return i}function O(e){let t,n=I(i.default.join(e,"scan-limits.json"))||{},r=(e,t)=>Number.isInteger(e)&&e>=0?e:t;return{daily:r(n.daily,50),monthly:r(n.monthly,250),profiles:(t=r(n.profiles,0)||50,k.filter(e=>e<=t).pop()??k[0]),pace:b[n.pace]?n.pace:"fast"}}function x(e){let t=i.default.join(e,"linkedin-activity.json"),r=(0,n.existsSync)(t)?I(t):{searches:[],profiles:[]};return r&&"object"==typeof r?{searches:(Array.isArray(r.searches)?r.searches:[]).map(Number),profiles:(Array.isArray(r.profiles)?r.profiles:[]).map(Number)}:null}function F(e,t=Date.now()){let n=O(e),r=function(e,t=Date.now()){let n=x(e);if(!n)return{searchesToday:1/0,searchesMonth:0,profilesToday:1/0,unreadable:!0};let{searches:r,profiles:i}=n,a=t/1e3-86400,o=D(t)/1e3;return{searchesToday:r.filter(e=>e>a).length,searchesMonth:r.filter(e=>e>=o).length,profilesToday:i.filter(e=>e>a).length}}(e,t),a=(e,t)=>e?Math.max(0,e-t):null;return{...r,limits:n,leftToday:a(n.daily,r.searchesToday),leftMonth:a(n.monthly,r.searchesMonth),profilesLeftToday:a(n.profiles,r.profilesToday),monthResets:function(e=Date.now()){let t=D(e);return D(t+3456e6)}(t),cooldown:function(e,t=Date.now()){let n=I(i.default.join(e,"linkedin-cooldown.json")),r=1e3*Number(n?.until);return n&&void 0===n.lifted_at&&Number.isFinite(r)&&!(r<=t)?{until:r,reason:String(n.reason||"LinkedIn pushed back"),setAt:1e3*Number(n.set_at)||null}:null}(e,t)}}function L(e,t,n){let r=t/1e3-n;return e.filter(e=>e>r).length}function $(e,t,n,r=86400){if(!n)return null;let i=e.filter(e=>e>t/1e3-r).sort((e,t)=>e-t);return i.length<n?null:(i[i.length-n]+r)*1e3}let j=/^(\d{4})-(\d{2})-(\d{2})_(\d{2})(\d{2})(\d{2})\.txt$/,X="linkedin-activity.json",v="linkedin-cooldown.json",U="scan-limits.json",C=e=>!!e&&"object"==typeof e&&!Array.isArray(e),M=e=>void 0===e||Array.isArray(e)&&e.every(e=>"number"==typeof e&&Number.isFinite(e)&&e>=0),P=e=>"number"==typeof e&&Number.isFinite(e)&&e>=0;function q(e,t){if(!C(t))return"it is not a JSON object";if(e===X){if(!M(t.searches)||!M(t.profiles))return"its record of searches is not a list of times"}else if(e===v){if(!P(t.until))return"its pause has no end time";if(void 0!==t.reason&&"string"!=typeof t.reason)return"its pause has a reason that is not text";if(void 0!==t.set_at&&!P(t.set_at))return"its pause has a start time that is not a time";for(let e of["lifted_at","was_until"])if(void 0!==t[e]&&!P(t[e]))return"its lifted pause has a time that is not a time"}else if(e===U){if(void 0!==t.daily&&!_.includes(t.daily))return`its daily limit (${String(t.daily).slice(0,20)}) is not one Six Degrees offers`;if(void 0!==t.monthly&&!A.includes(t.monthly))return`its monthly limit (${String(t.monthly).slice(0,20)}) is not one Six Degrees offers`;if(void 0!==t.profiles&&!k.includes(t.profiles))return`its limit on profile views (${String(t.profiles).slice(0,20)}) is not one Six Degrees offers`}return null}function G(e=[],t=[]){let n=e=>e.reduce((e,t)=>e.set(t,(e.get(t)||0)+1),new Map),r=n(e);for(let[e,i]of n(t))i>(r.get(e)||0)&&r.set(e,i);return[...r].sort((e,t)=>e[0]-t[0]).flatMap(([e,t])=>Array(t).fill(e))}function B(e){if(void 0===e)return[];if(!Array.isArray(e))return null;let t=e.map(Number);return t.every(Number.isFinite)?t:null}let W=e=>{try{return(0,n.lstatSync)(e),!0}catch{return!1}};function Y({dir:e,from:t}){let n=t=>i.default.join(e,t),r=e=>{let n=I(i.default.join(t,e));return C(n)&&!q(e,n)?n:null},a=r(X);if(a){let e=W(n(X))?I(n(X)):{},t=C(e)?B(e.searches):null,r=C(e)?B(e.profiles):null;t&&r&&w.writeJsonDurably(n(X),{searches:G(t,a.searches),profiles:G(r,a.profiles)})}let o=r(v);if(o){let e=I(n(v)),t=Number.isFinite(Number(e?.until))?Number(e.until):-1/0;o.until>t&&w.writeJsonDurably(n(v),{until:o.until,reason:o.reason??"LinkedIn pushed back",set_at:o.set_at??null,...void 0!==o.lifted_at&&{lifted_at:o.lifted_at,was_until:o.was_until??o.until}})}let s=r(U);s&&!W(n(U))&&w.writeJsonDurably(n(U),{daily:s.daily??50,monthly:s.monthly??250,profiles:s.profiles??50})}e.s(["budgetFileProblem",0,q,"liftCooldown",0,function(e,t=Date.now()){let r=i.default.join(e,v),a=I(r),o=Number(a?.until);if(!C(a)||!Number.isFinite(o)){try{(0,n.unlinkSync)(r)}catch{}return}let s=t/1e3;o<=s||R(r,{until:s,reason:"string"==typeof a.reason?a.reason:"LinkedIn pushed back",set_at:P(a.set_at)?a.set_at:null,lifted_at:s,was_until:o})},"linkedinState",0,F,"linkedinUsage",0,function(e,t=Date.now()){let r=F(e,t),a=x(e),o=function(e,t=Date.now()){let r,a=function(e){let t;try{t=(0,n.readdirSync)(i.default.join(e,"pushback"),{withFileTypes:!0}).filter(e=>e.isFile()&&j.test(e.name)).map(e=>e.name)}catch{return null}for(let r of t.sort().reverse()){let[,t,a,o,s,l,c]=r.match(j).map(Number),u=new Date(t,a-1,o,s,l,c);if(u.getMonth()===a-1&&u.getDate()===o&&!(s>23)&&!(l>59)&&!(c>59))return{at:u.getTime(),reason:function(e){let t;try{t=(0,n.openSync)(e,"r");let r=Buffer.alloc(256),i=(0,n.readSync)(t,r,0,256,0),a=r.subarray(0,i).toString("utf8").split(/\r?\n/)[0].match(/^reason: (.+)$/),o=a&&a[1].replace(/[\u0000-\u001f\u007f]/g,"").trim().slice(0,120);return o&&!/:\/\/|www\.|linkedin\.com|\/in\//i.test(o)?o:null}catch{return null}finally{void 0!==t&&(0,n.closeSync)(t)}}(i.default.join(e,"pushback",r))}}return null}(e),o=I(i.default.join(e,v)),s=Number(o?.until),l=C(o)&&Number.isFinite(s)?{at:P(o.set_at)?1e3*o.set_at:null,reason:"string"==typeof o.reason&&o.reason.trim()?o.reason.trim().slice(0,160):"LinkedIn pushed back",pausedUntil:(P(o.was_until)?o.was_until:s)*1e3,liftedAt:P(o.lifted_at)?1e3*o.lifted_at:null}:null,c=a&&{at:a.at,reason:a.reason?`LinkedIn pushed back: ${a.reason}`:"LinkedIn pushed back",pausedUntil:null,liftedAt:null};return(r=l&&c&&null!=l.at&&6e5>=Math.abs(l.at-c.at)?{...l,at:Math.min(l.at,c.at)}:l&&c?(l.at??-1/0)>=c.at?l:c:l||c)?{...r,active:!r.liftedAt&&null!=r.pausedUntil&&r.pausedUntil>t}:null}(e,t),s=e=>a?e(a):null;return{...r,now:t,searchesToday:a?r.searchesToday:null,profilesToday:a?r.profilesToday:null,searchesMonth:a?r.searchesMonth:null,leftMonth:a?r.leftMonth:null,searchesLastHour:s(e=>L(e.searches,t,3600)),searchesWeek:s(e=>L(e.searches,t,604800)),dayFreesAt:s(e=>$(e.searches,t,r.limits.daily)),dayClearAt:s(e=>(function(e,t,n=86400){let r=e.filter(e=>e>t/1e3-n);return r.length?(Math.max(...r)+n)*1e3:null})(e.searches,t)),profilesFreeAt:s(e=>$(e.profiles,t,r.limits.profiles)),lastPushback:o,searchesSincePushback:s(e=>(function(e,t){if(!Number.isFinite(t)||!Array.isArray(e))return 0;let n=(t+6e4)/1e3;return e.filter(e=>e>n).length})(e.searches,o?.at))}},"mergeBudgetFiles",0,Y,"writeLimits",0,function(e,{daily:t,monthly:n,profiles:r,pace:a}={}){let o=O(e),s={daily:_.includes(t)?t:o.daily,monthly:A.includes(n)?n:o.monthly,profiles:k.includes(r)?r:o.profiles,pace:b[a]?a:o.pace};return R(i.default.join(e,"scan-limits.json"),s),s}],41238);var J=e.i(74533);let H=/^[A-Za-z0-9_-]+\.(webp|jpg|jpeg|png)$/,K="/avatars/";function V(e){return"string"==typeof e&&e.startsWith(K)&&H.test(e.slice(K.length))?e:null}function z(e){return e.prepare(`SELECT DISTINCT profile_url AS profileUrl, profile_image_url AS imageUrl
|
|
164
|
+
FROM linkedin_connections
|
|
165
|
+
WHERE profile_image_url IS NOT NULL AND profile_image_url <> ''
|
|
166
|
+
AND substr(profile_image_url, 1, 9) <> '/avatars/'
|
|
167
|
+
ORDER BY profile_url`).all().filter(e=>e.profileUrl&&!V(e.imageUrl))}e.s(["AVATAR_FILE",0,H,"localPhoto",0,V,"waitingPhotoCount",0,function(e){return new Set(z(e).map(e=>e.profileUrl)).size},"waitingPhotos",0,z],98612);let Q="csv-network.json",Z=["bridge-progress.json","bridge-skips.json","bridge-unclear.json",Q],ee=["scan-limits.json","linkedin-activity.json","linkedin-cooldown.json"],et=/^(?:social|social-messages|crm)-[\w-]+\.json$/,en=[...Z,...ee],er="import-pending",ei="before-import-",ea=".export-",eo=".import-upload-",es=".python-setup-",el=[ea,eo,es],ec=/^import-pending\.(done|cancelled)-/;function eu(e){try{return(0,n.lstatSync)(e).isDirectory()?(0,n.readdirSync)(e):[]}catch{return[]}}function ef(e,t=()=>!0){let r=0,a=0;for(let o of eu(e))if(t(o))try{let t=(0,n.lstatSync)(i.default.join(e,o));t.isFile()&&(r++,a+=t.size)}catch{}return{count:r,bytes:a}}function ed(e,{autoPrefix:t}={}){let r=[];try{r=(0,n.readdirSync)(e)}catch{return[]}let a=[];for(let o of r){let r;if(o.startsWith(".")||o.endsWith(".partial"))continue;let s=i.default.join(e,o);try{r=(0,n.lstatSync)(s)}catch{continue}(r.isFile()||r.isDirectory())&&a.push({name:o,bytes:r.isFile()?r.size:function e(t,r={left:5e4}){let a=0,o=[];try{o=(0,n.readdirSync)(t)}catch{return 0}for(let s of o){if(r.left--<=0)break;let o=i.default.join(t,s);try{let t=(0,n.lstatSync)(o);t.isDirectory()?a+=e(o,r):t.isFile()&&(a+=t.size)}catch{}}return a}(s),modifiedAt:r.mtimeMs,kind:t&&o.startsWith(t)?"auto":o.startsWith(ei)?"import":"manual",folder:r.isDirectory()})}return a.sort((e,t)=>t.modifiedAt-e.modifiedAt||t.name.localeCompare(e.name))}function ep(e,{now:t=Date.now(),maxAgeMs:r=36e5}={}){let a=[];try{a=(0,n.readdirSync)(e)}catch{return 0}let o=0;for(let s of a){let a=el.some(e=>s.startsWith(e));if(!a&&!ec.test(s))continue;let l=i.default.join(e,s);try{let e=(0,n.lstatSync)(l);if(!e.isDirectory()||a&&t-e.mtimeMs<r)continue;(0,n.rmSync)(l,{recursive:!0,force:!0}),o++}catch{}}return o}e.s(["BUDGET_FILES",0,ee,"CSV_NETWORK_FILE",0,Q,"EXPORT_WORK_PREFIX",0,ea,"IMPORT_BACKUP_PREFIX",0,ei,"NETWORK_FILES",0,Z,"PENDING_DIR",0,er,"SETUP_WORK_PREFIX",0,es,"SOCIAL_FILE",0,et,"TRAVELLING_FILES",0,en,"UPLOAD_WORK_PREFIX",0,eo,"folderReport",0,function({dir:e,dbFile:t,autoPrefix:r,inNetwork:a=null}){let o=i.default.join(e,"avatars");return{dataDir:e,dbFile:t,databaseBytes:["","-wal","-shm"].reduce((e,r)=>e+function(e){try{let t=(0,n.lstatSync)(e);return t.isFile()?t.size:0}catch{return 0}}(t+r),0),photos:ef(o,e=>H.test(e)),photosInCopy:a?ef(o,e=>H.test(e)&&a.has(e)):null,backups:ed(i.default.join(i.default.dirname(t),"backups"),{autoPrefix:r}),linkedinSignIn:(0,n.existsSync)(i.default.join(e,"chrome-profile"))}},"listBackups",0,ed,"namesInFolder",0,eu,"revealFolder",0,function(e,{platform:t=process.platform,spawnImpl:n=J.spawn,waitMs:r=3e3,select:i=null}={}){let a=function(e=process.platform){return"darwin"===e?"open":"linux"===e?"xdg-open":null}(t);if(!a)return Promise.resolve({ok:!1,message:"There is no file browser to open it with on this computer."});let o=i&&"open"===a?["-R",i]:[e];return new Promise(e=>{let t,i=null,s=!1,l=t=>{s||(s=!0,clearTimeout(i),e(t))};try{t=n(a,o,{stdio:"ignore",detached:!0})}catch(e){l({ok:!1,message:`It couldn't be opened (${e.message}).`});return}t.on("error",e=>l({ok:!1,message:"ENOENT"===e.code?`This computer has no ${a}, so there is no file browser to open it with.`:`It couldn't be opened (${e.message}).`})),t.on("exit",e=>l(0===e?{ok:!0}:{ok:!1,message:`The file browser didn't open (${a} stopped with code ${e}).`})),i=setTimeout(()=>{try{t.unref()}catch{}l({ok:!0})},r)})},"sweepLeftovers",0,ep],26525);var eh=e.x("node:sqlite",()=>require("node:sqlite"),!0),em=e.i(66680);let ey=".sixdegrees",eT={sd_export_manifest:"CREATE TABLE sd_export_manifest (key TEXT PRIMARY KEY, value TEXT NOT NULL)",sd_export_files:"CREATE TABLE sd_export_files (path TEXT PRIMARY KEY, bytes BLOB NOT NULL, sha256 TEXT NOT NULL)"};function eE(e){return(0,em.createHash)("sha256").update(e).digest("hex")}function eg(e){return`'${String(e).replace(/'/g,"''")}'`}function eS(e){return[...e.matchAll(/CREATE TABLE IF NOT EXISTS (\w+)/g)].map(e=>e[1])}function ew(e){return[...e.matchAll(/CREATE (?:UNIQUE )?INDEX IF NOT EXISTS (\w+)/g)].map(e=>e[1])}function eb(e,t="main"){try{return e.prepare(`SELECT count(DISTINCT profile_url) AS n FROM ${t}.linkedin_connections`).get().n}catch{return 0}}function e_(e){return new Set(e.prepare(`SELECT DISTINCT substr(profile_image_url, 10) AS name FROM linkedin_connections
|
|
168
|
+
WHERE substr(profile_image_url, 1, 9) = '/avatars/'`).all().map(e=>e.name))}function eA(e,{dir:t,outFile:r,includePhotos:a=!0,includeSocial:o=!0,appVersion:s,schemaSql:l,now:c=new Date}){let u;e.exec(`VACUUM INTO ${eg(r)}`);let f=new eh.DatabaseSync(r);try{f.exec("PRAGMA journal_mode = DELETE"),f.exec(`${Object.values(eT).join(";\n")};`),f.exec("BEGIN"),a||f.exec("UPDATE linkedin_connections SET profile_image_url = NULL WHERE profile_image_url LIKE '/avatars/%'"),f.exec("DELETE FROM app_meta WHERE key = 'last_import'");let e=f.prepare("INSERT INTO sd_export_files (path, bytes, sha256) VALUES (?, ?, ?)"),r=0,d=0,p=a?e_(f):null;for(let s of function(e,{includePhotos:t=!0,photos:r=null,includeSocial:a=!0}={}){let o=e=>{try{return(0,n.lstatSync)(e).isFile()}catch{return!1}},s=[];for(let t of en){let n=i.default.join(e,t);o(n)&&s.push({rel:t,abs:n})}if(a)for(let t of eu(e).sort()){let n=i.default.join(e,t);et.test(t)&&o(n)&&s.push({rel:t,abs:n})}if(t)for(let t of eu(i.default.join(e,"avatars")).sort()){if(!H.test(t)||r&&!r.has(t))continue;let n=i.default.join(e,"avatars",t);o(n)&&s.push({rel:`avatars/${t}`,abs:n})}return s}(t,{includePhotos:a,photos:p,includeSocial:o})){let t;try{t=(0,n.readFileSync)(s.abs)}catch{continue}e.run(s.rel,t,eE(t)),d++,s.rel.startsWith("avatars/")&&r++}let h={};for(let e of eS(l))try{h[e]=f.prepare(`SELECT count(*) AS n FROM "${e}"`).get().n}catch{h[e]=0}let m="";try{m=f.prepare("SELECT value FROM app_meta WHERE key = 'scoring_version'").get()?.value??""}catch{}let y=eb(f),T={format:1,app_version:s,scoring_version:m,exported_at:c.toISOString(),include_photos:+!!a,people:y,photos:r,files:d,counts:JSON.stringify(h)},E=f.prepare("INSERT INTO sd_export_manifest (key, value) VALUES (?, ?)");for(let[e,t]of Object.entries(T))E.run(e,String(t));f.exec("COMMIT"),u={people:y,photos:r,files:d,counts:h}}catch(e){try{f.exec("ROLLBACK")}catch{}throw e}finally{f.close()}return{...u,bytes:(0,n.statSync)(r).size}}e.s(["EXPORT_EXTENSION",0,ey,"EXPORT_FORMAT",0,1,"EXPORT_TABLES",0,eT,"appIndexes",0,ew,"appTables",0,eS,"buildExport",0,eA,"countPeople",0,eb,"exportFileName",0,function(e=new Date){let t=e=>String(e).padStart(2,"0");return`Six Degrees backup ${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}${ey}`},"referencedPhotos",0,e_,"sha256",0,eE,"sqlString",0,eg],92375);let ek="/api/data/import",eN=Buffer.from("SQLite format 3\0","latin1");class eI extends Error{constructor(e,{status:t=400,...n}={}){super(e),this.status=t,this.extra=n}}function eR(e){let t=e/1024/1024;return`${t<10?t.toFixed(1):Math.round(t)} MB`}let eD=e=>String(e).slice(0,80);async function eO(e,t,{declared:n}){let r=await (0,l.open)(t,"wx",384),i=0;try{if(e)for await(let t of e){let e=t instanceof Uint8Array?t:new Uint8Array(t);if((i+=e.byteLength)>n)throw new eI("The file was bigger than the size it was sent with, so nothing was imported. Try again.");for(let t=0;t<e.byteLength;){let{bytesWritten:n}=await r.write(e,t,e.byteLength-t);t+=n}}}finally{await r.close()}if(i!==n)throw new eI(`The file didn't arrive whole (${i} of ${n} bytes), so nothing was imported. Try again.`);return i}function ex(e){return"string"!=typeof e?null:en.includes(e)?"file":et.test(e)?"social":e.startsWith("avatars/")&&H.test(e.slice(8))?"photo":null}let eF=["users","linkedin_connections",...Object.keys(eT)],eL=Object.freeze({tables:[],indexes:[],columns:{}});function e$(e,{applySchema:t,schemaSql:r,appVersion:i,retired:a=eL}){let o,l=Buffer.alloc(100),u=0,f=(0,n.openSync)(e,"r");try{u=(0,n.readSync)(f,l,0,100,0)}finally{(0,n.closeSync)(f)}if(u<100||!l.subarray(0,16).equals(eN))throw new eI("This isn't a Six Degrees export (a .sixdegrees file), so nothing was imported.");try{o=new s.DatabaseSync(e,{readOnly:!0})}catch(e){throw new eI(`This file couldn't be opened (${e.message}), so nothing was imported.`)}try{let e;o.exec("PRAGMA trusted_schema = OFF; PRAGMA query_only = ON; PRAGMA cell_size_check = ON;");try{e=o.prepare("PRAGMA integrity_check").all()}catch(t){e=[{integrity_check:t.message}]}if(1!==e.length||"ok"!==e[0].integrity_check)throw new eI("This file is damaged (its database fails SQLite's own check), so nothing was imported. Export it again on the other computer.");let n=function(e,t){let n=new s.DatabaseSync(":memory:");try{e(n),n.exec(`${Object.values(eT).join(";\n")};`);let r=new Map;for(let e of[...eS(t),...Object.keys(eT)]){let t=n.prepare(`PRAGMA table_info("${e}")`).all();r.set(e,{required:t.filter(e=>e.pk>0||e.notnull&&null===e.dflt_value).map(e=>e.name),allowed:new Set(t.map(e=>e.name))})}return{tables:r,indexes:new Set(ew(t))}}finally{n.close()}}(t,r),l=(e,t)=>new eI(`This file holds something a Six Degrees export never does (the ${eD(e)} “${eD(t)}”), so nothing was imported.`),u=new Map(o.prepare("PRAGMA main.table_list").all().map(e=>[e.name,e])),f=o.prepare("SELECT type, name, tbl_name FROM sqlite_master").all(),d=e=>n.tables.has(e)||a.tables.includes(e);for(let e of f){if("table"===e.type){let t=u.get(e.name)?.type;if("table"!==t)throw l(`${t||"unknown"} table`,e.name);if(d(e.name))continue}if(!("index"===e.type&&(n.indexes.has(e.name)||a.indexes.includes(e.name)||String(e.name).startsWith("sqlite_autoindex_")&&d(e.tbl_name))))throw l(e.type,e.name)}let p=new Set(f.filter(e=>"table"===e.type).map(e=>e.name));if(!p.has("sd_export_manifest")||!p.has("sd_export_files"))throw new eI("This is a database but not a Six Degrees export, so nothing was imported. Make one on the other computer with Export backup file… in Settings → Your data.");for(let[e,{required:t,allowed:r}]of n.tables){if(!p.has(e)){if(!eF.includes(e))continue;throw new eI(`This export has no “${e}” table, so nothing was imported.`)}let n=o.prepare(`PRAGMA table_xinfo("${e}")`).all(),i=n.map(e=>e.name),s=a.columns[e]||[];if(!(0===u.get(e).wr&&n.every(e=>0===e.hidden&&(r.has(e.name)||s.includes(e.name)))&&t.every(e=>i.includes(e))))throw new eI(`This export's “${e}” table isn't laid out the way Six Degrees makes it, so nothing was imported.`)}let h=Object.fromEntries(o.prepare("SELECT key, value FROM sd_export_manifest").all().map(e=>[e.key,e.value])),m=Number(h.format);if(1!==m)throw new eI(Number.isInteger(m)&&m>1?"This export was made by a newer Six Degrees than this copy. Update this copy first, then import it.":"This file's export details aren't ones Six Degrees writes, so nothing was imported.");let y=String(h.app_version??"");if(!/^v?\d+\.\d+\.\d+/.test(y))throw new eI("This file doesn't say which version of Six Degrees made it, so nothing was imported.");if((0,c.compareVersions)(y,i)>0)throw new eI(`This file comes from Six Degrees ${eD(y)}, which is newer than this copy (${i}). Update this copy first, then import it.`);let T=null;try{T=JSON.parse(h.counts)}catch{}if(!T||"object"!=typeof T||Array.isArray(T))throw new eI("This file's export details aren't ones Six Degrees writes, so nothing was imported.");let E=(e,t,n)=>new eI(`This file's ${e} doesn't match its own export details (${t}, where they say ${eD(n)}), so nothing was imported. Export it again on the other computer.`);for(let e of p){if(Object.hasOwn(eT,e))continue;let t=o.prepare(`SELECT count(*) AS n FROM "${e}"`).get().n;if(!Object.hasOwn(T,e)||Number(T[e])!==t)throw E(`“${e}” table`,`${t} rows`,T[e]??"nothing")}for(let[e,t]of Object.entries(T))if(!p.has(e)&&0!==Number(t))throw E(`“${eD(e)}” table`,"no table",t);let g=0,S=0,w=o.prepare("SELECT bytes, sha256 FROM sd_export_files WHERE path = ?");for(let{path:e}of o.prepare("SELECT path FROM sd_export_files").all()){let t,n=ex(e);if(!n)throw new eI(`This file carries “${eD(e)}”, which an export never includes, so nothing was imported.`);let r=w.get(e);if(!(r?.bytes instanceof Uint8Array)||eE(r.bytes)!==r.sha256)throw new eI(`“${e}” inside this file is damaged (it doesn't match its checksum), so nothing was imported.`);if("photo"===n){g++;continue}try{t=JSON.parse(Buffer.from(r.bytes).toString("utf8"))}catch{t=void 0}if(!t||"object"!=typeof t||Array.isArray(t))throw new eI(`“${e}” inside this file can't be read, so nothing was imported.`);let i=ee.includes(e)?q(e,t):null;if(i)throw new eI(`“${e}” inside this file can't be used (${i}), so nothing was imported.`);S++}if(Number(h.files)!==g+S)throw E("list of files",`${g+S} files`,h.files??"nothing");return{fromVersion:y,exportedAt:h.exported_at||null,people:eb(o),photos:g,files:S}}catch(e){if(e instanceof eI)throw e;throw new eI(`This file couldn't be read as a Six Degrees export (${eD(e.message)}), so nothing was imported.`)}finally{o.close()}}function ej(e,{dir:t,applySchema:r,schemaSql:a,appVersion:o,replacedPeople:l=0,now:c=new Date,retired:u=eL,restoredFrom:f=null}){let d=e$(e,{applySchema:r,schemaSql:a,appVersion:o,retired:u}),p=i.default.dirname(e),h=i.default.join(p,"files"),m=i.default.join(p,"data.sqlite"),y=[],T=new s.DatabaseSync(m);try{T.exec("PRAGMA trusted_schema = OFF; PRAGMA cell_size_check = ON;"),r(T),T.exec(`ATTACH DATABASE ${eg(e)} AS up`);try{for(let e of(T.exec("BEGIN"),eS(a))){let t=new Set(T.prepare(`PRAGMA main.table_info("${e}")`).all().map(e=>e.name)),n=T.prepare(`PRAGMA up.table_info("${e}")`).all().filter(e=>t.has(e.name)).map(e=>`"${e.name}"`).join(", ");n&&T.exec(`INSERT INTO main."${e}" (${n}) SELECT ${n} FROM up."${e}" ORDER BY rowid`)}T.exec("COMMIT")}catch(e){try{T.exec("ROLLBACK")}catch{}throw new eI(`This export's network doesn't fit this copy's database (${e.message}), so nothing was imported.`)}(0,n.mkdirSync)(i.default.join(h,"avatars"),{recursive:!0});let t=T.prepare("SELECT bytes, sha256 FROM up.sd_export_files WHERE path = ?");for(let{path:e}of T.prepare("SELECT path FROM up.sd_export_files").all()){let r=t.get(e),a=ex(e);if(!a||!(r?.bytes instanceof Uint8Array)||eE(r.bytes)!==r.sha256)throw new eI(`“${eD(e)}” inside this file is damaged, so nothing was imported.`);(0,n.writeFileSync)(i.default.join(h,e),r.bytes,{flag:"wx"}),("file"===a||"social"===a)&&y.push(i.default.join(h,e))}}finally{T.close()}(0,n.rmSync)(e,{force:!0});let E={stagedAt:c.toISOString(),exportedAt:d.exportedAt,fromVersion:d.fromVersion,people:d.people,photos:d.photos,replacedPeople:l,...f?{restoredFrom:f}:{}};for(let e of((0,n.writeFileSync)(i.default.join(p,"READY"),`${JSON.stringify(E,null,2)}
|
|
169
|
+
`),[m,...y,i.default.join(p,"READY")]))w.syncFile(e);for(let e of[i.default.join(h,"avatars"),h,p])w.syncFolder(e);return(0,n.renameSync)(p,i.default.join(t,er)),w.syncFolder(t),E}let eX=e=>{try{return(0,n.lstatSync)(e),!0}catch{return!1}};function ev(e){let t=Buffer.alloc(eN.length),r=(0,n.openSync)(e,"r");try{let e=(0,n.readSync)(r,t,0,t.length,0);return 0===e||e===t.length&&t.equals(eN)}finally{(0,n.closeSync)(r)}}function eU(e){try{return JSON.parse((0,n.readFileSync)(e,"utf8"))}catch{return null}}function eC(e,t){try{(0,n.renameSync)(e,t)}catch(r){if("EXDEV"!==r.code)throw r;(0,n.cpSync)(e,t,{recursive:!0}),(0,n.lstatSync)(t).isFile()&&w.syncFile(t),(0,n.rmSync)(e,{recursive:!0,force:!0})}}function eM(e,t){let r=`${t}.partial`;(0,n.rmSync)(r,{force:!0});try{let a=new s.DatabaseSync(e);try{a.exec(`VACUUM INTO ${eg(r)}`)}finally{a.close()}w.syncFile(r),(0,n.renameSync)(r,t),w.syncFolder(i.default.dirname(t))}catch(e){throw(0,n.rmSync)(r,{force:!0}),e}}function eP(e,t){let n=null,r=null;try{let i=(n=new s.DatabaseSync(t,{readOnly:!0})).prepare("PRAGMA quick_check").all();if(1!==i.length||"ok"!==i[0].quick_check)return!1;(r=new s.DatabaseSync(e)).exec("PRAGMA query_only = ON");let a=e=>e.prepare("SELECT name FROM sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%'").all().map(e=>e.name),o=(e,t)=>e.prepare(`SELECT count(*) AS n FROM "${t.replace(/"/g,'""')}"`).get().n,l=new Set(a(n));return a(r).every(e=>l.has(e)&&o(r,e)===o(n,e))}catch{return!1}finally{n?.close(),r?.close()}}function eq(e){let t=i.default.join(e,er);if(!eX(i.default.join(t,"READY")))return null;let r=eU(i.default.join(t,"READY"))||{},a=eU(i.default.join(t,"APPLYING")),o=null;try{o=(0,n.readFileSync)(i.default.join(t,"ERROR"),"utf8").trim()||null}catch{}let s=!!(a&&("start"!==a.phase||a.keptAsIs));return{...r,started:s,error:o}}function eG({dir:e,dbFile:t,now:r=new Date,copyDatabase:a=eM}){ep(e,{now:r.getTime()});let o=i.default.join(e,er);if(!eX(i.default.join(o,"READY")))return null;let l=eU(i.default.join(o,"READY"))||{},c=i.default.join(o,"APPLYING"),u=eU(c)||{stamp:r.toISOString().replace(/[:.]/g,"-"),phase:"start"},f=()=>w.writeFileDurably(c,JSON.stringify(u)),d=e=>{u.phase=e,f()},p=i.default.dirname(t),h=i.default.join(p,"backups"),m=i.default.join(h,`${ei}${u.stamp}.sqlite`),y=i.default.join(h,`${ei}${u.stamp}-files`),T=i.default.join(o,"data.sqlite"),E=["-wal","-shm","-journal"],g=()=>{for(let e of E)eX(`${t}${e}`)&&!eX(`${m}${e}`)&&eC(`${t}${e}`,`${m}${e}`);eX(t)&&!eX(m)&&eC(t,m),w.syncFolder(h),w.syncFolder(p)},S=!1,b=()=>{(0,n.mkdirSync)(h,{recursive:!0});try{if(!ev(t))throw Error("it is not a SQLite database");a(t,m),S=!0}catch(e){for(let e of["",...E])(0,n.rmSync)(`${m}${e}`,{force:!0});(0,n.rmSync)(`${m}.partial`,{force:!0}),u.keptAsIs=String(e.message||e).slice(0,200),f(),g()}};try{eX(c)||f();let r=["start","database-kept","files-kept"].includes(u.phase);if("start"===u.phase&&(!eX(T)||!function(e){let t=null;try{(t=new s.DatabaseSync(e)).exec("PRAGMA query_only = ON");let n=t.prepare("PRAGMA quick_check").all();return 1===n.length&&"ok"===n[0].quick_check&&1===t.prepare("SELECT count(*) AS n FROM sqlite_master WHERE type = 'table' AND name = 'linkedin_connections'").get().n}catch{return!1}finally{t?.close()}}(T)))throw Error("the imported network waiting here is damaged. Cancel the import and import the file again");if(r&&!u.keptAsIs&&eX(t)&&ev(t)&&function(e){let t=null;try{return(t=new s.DatabaseSync(e)).exec("PRAGMA locking_mode = EXCLUSIVE"),t.prepare("SELECT count(*) AS n FROM sqlite_master").get(),!1}catch(e){return 5===e.errcode||6===e.errcode||/database (table )?is locked/i.test(String(e.message))}finally{try{t?.close()}catch{}}}(t))throw Error("another copy of Six Degrees has this network open (one started with npx six-degrees or npm run dev, perhaps). Quit that copy, then restart this one");if(r&&u.keptAsIs&&g(),"start"===u.phase&&(!u.keptAsIs&&eX(t)&&b(),d("database-kept")),"database-kept"===u.phase){let t=()=>(0,n.mkdirSync)(y,{recursive:!0});for(let n of["avatars",...Z]){let r=i.default.join(e,n);eX(r)&&(t(),eC(r,i.default.join(y,n)))}if(eu(i.default.join(o,"files")).some(e=>et.test(e)))for(let n of eu(e).filter(e=>et.test(e)))t(),eC(i.default.join(e,n),i.default.join(y,n));for(let r of ee){let a=i.default.join(e,r);eX(a)&&(0,n.lstatSync)(a).isFile()&&(t(),(0,n.copyFileSync)(a,i.default.join(y,r)),w.syncFile(i.default.join(y,r)))}eX(y)&&w.syncFolder(y),w.syncFolder(h),w.syncFolder(e),d("files-kept")}if("files-kept"===u.phase){if(eX(T)){if(!u.keptAsIs&&eX(t)){let e=S&&eP(t,m);if(e||(b(),e=!!u.keptAsIs||eP(t,m)),!e)throw Error("the copy of the network here couldn't be checked, so it wasn't replaced")}for(let e of E)(0,n.rmSync)(`${t}${e}`,{force:!0});(0,n.mkdirSync)(p,{recursive:!0}),eC(T,t),w.syncFolder(p)}d("database-placed")}if("database-placed"===u.phase){let t=i.default.join(o,"files"),r=i.default.join(t,"avatars");if(eX(r)){for(let t of((0,n.mkdirSync)(i.default.join(e,"avatars"),{recursive:!0}),eu(r)))eC(i.default.join(r,t),i.default.join(e,"avatars",t));w.syncFolder(i.default.join(e,"avatars"))}for(let n of Z){let r=i.default.join(t,n);eX(r)&&eC(r,i.default.join(e,n))}for(let n of eu(t).filter(e=>et.test(e)))eC(i.default.join(t,n),i.default.join(e,n));Y({dir:e,from:t}),w.syncFolder(e),d("done")}}catch(e){try{(0,n.writeFileSync)(i.default.join(o,"ERROR"),`${e.message}
|
|
170
|
+
`)}catch{}throw e}let _=`${o}.done-${u.stamp}`;(0,n.renameSync)(o,_),(0,n.rmSync)(_,{recursive:!0,force:!0});let A=t=>{let n=i.default.relative(e,t);return!n||n.startsWith("..")||i.default.isAbsolute(n)?t:n};return{appliedAt:r.toISOString(),stagedAt:l.stagedAt??null,exportedAt:l.exportedAt??null,fromVersion:l.fromVersion??null,people:l.people??null,photos:l.photos??null,replacedPeople:l.replacedPeople??null,restoredFrom:l.restoredFrom??null,keptDatabase:eX(m)?A(m):null,keptFiles:eX(y)?A(y):null,keptAsIs:u.keptAsIs??null}}function eB(e,t){e.prepare(`INSERT INTO app_meta (key, value) VALUES ('last_import', ?)
|
|
171
|
+
ON CONFLICT(key) DO UPDATE SET value = excluded.value`).run(JSON.stringify(t))}e.s(["IMPORT_ROUTE",0,ek,"ImportError",0,eI,"MAX_IMPORT_BYTES",0,0x10000000,"admitImport",0,function(e,{env:t,scanRunning:n,pending:r,currentPeople:i,max:a=0x10000000}){let o=h({method:e.method,pathname:ek,headers:e.headers,env:t});if(o)return{refused:o};let s=Number(e.headers.get("x-six-degrees-size")),l=i(),c=function({scanRunning:e,pending:t,declared:n,currentPeople:r=0,confirmedPeople:i,max:a=0x10000000}){return e?new eI(`${T(e)}. Let it finish, or stop it on the Scan page, then import.`,{status:409}):t?new eI("An import is already waiting to finish. Restart Six Degrees to finish it, or cancel it first.",{status:409}):!Number.isSafeInteger(n)||n<=0?new eI("Choose a Six Degrees export (a .sixdegrees file) to import."):n>a?new eI(`That file is ${eR(n)}. This copy can import files up to ${eR(a)}.`,{status:413}):r>0&&i!==r?new eI(`This copy already has ${r.toLocaleString("en-US")} people. Confirm that the import replaces them.`,{status:409,needsConfirm:!0,people:r}):null}({scanRunning:n(),pending:r(),declared:s,currentPeople:l,confirmedPeople:Number(e.headers.get("x-six-degrees-replace")),max:a});return c?{refused:{status:c.status,error:c.message,...c.extra}}:{declared:s,currentPeople:l}},"applyPendingImport",0,eG,"cancelPendingImport",0,function(e){let t=eq(e);if(!t)return{cancelled:!1,reason:"none"};if(t.started)return{cancelled:!1,reason:"started"};let r=i.default.join(e,er),a=`${r}.cancelled-${Date.now()}`;return(0,n.renameSync)(r,a),(0,n.rmSync)(a,{recursive:!0,force:!0}),{cancelled:!0}},"lastImport",0,function(e){try{let t=e.prepare("SELECT value FROM app_meta WHERE key = 'last_import'").get()?.value,n=t?JSON.parse(t):null;return n&&"object"==typeof n?n:null}catch{return null}},"pendingImport",0,eq,"receiveUpload",0,eO,"recordImport",0,eB,"restartAdvice",0,function({kind:e,code:t,dataDir:n=null}){let r="It finishes the import as it starts.";if(t)return{canRestart:!0,how:"Click Restart now to finish it: Six Degrees restarts, which takes a few seconds, and finishes the import as it starts."};if("mac-app"===e)return{canRestart:!1,how:`Quit Six Degrees (⌘Q) and open it again. ${r}`};if("windows-app"===e||"linux-app"===e)return{canRestart:!1,how:`Quit Six Degrees (File → Exit) and open it again. ${r}`};if("npm"===e){let e=n?` --data-dir '${String(n).replace(/'/g,"'\\''")}'`:"";return{canRestart:!1,how:`Stop Six Degrees with Ctrl-C in its Terminal window, then start it again. ${r}`,command:`npx six-degrees${e}`}}return"source"===e?{canRestart:!1,how:`Stop Six Degrees with Ctrl-C in its Terminal window, then start it again. ${r}`,command:"npm run start:packaged"}:{canRestart:!1,how:`Stop the server with Ctrl-C and start it again the way you started it. ${r}`}},"restartCodeFrom",0,function(e=process.env){let t=Number(e.SIX_DEGREES_RESTART_CODE);return Number.isInteger(t)&&t>1&&t<126?t:null},"stageImport",0,ej,"validateImport",0,e$],19041);var eW=e.x("node:sqlite",()=>require("node:sqlite"),!0);let eY=["daily","before-update","manual"],eJ=Object.freeze({daily:7,"before-update":3,"before-import":3}),eH="auto-before-",eK=/^\..+\.partial(?:-journal)?$/,eV=/(\d{4}-\d{2}-\d{2})T(\d{2})-(\d{2})-(\d{2})-(\d{3})Z/,ez=/^(daily|before-update|manual)-(.+)-(\d{4}-\d{2}-\d{2}T\d{2}-\d{2}-\d{2}-\d{3}Z)\.sixdegrees$/,eQ=/^(.+\.sqlite)-(?:wal|shm|journal)$/,eZ=/^(.+)-files$/;function e0(e,{autoPrefix:t=eH}={}){let n=ed(e,{autoPrefix:t}),r=new Set(n.map(e=>e.name)),i=new Map,a=[];for(let e of n){let n=eQ.exec(e.name);if(!e.folder&&n&&r.has(n[1])){a.push([n[1],e]);continue}let o=eZ.exec(e.name);if(e.folder&&o&&r.has(`${o[1]}.sqlite`)){a.push([`${o[1]}.sqlite`,e]);continue}i.set(e.name,function(e,t){let{name:n}=e,r={name:n,kind:"manual",format:null,version:null,restorable:!1,byHand:!0,withFiles:null,parts:[],bytes:e.bytes,modifiedAt:e.modifiedAt,at:function(e){let t=eV.exec(String(e));if(!t)return null;let n=Date.parse(`${t[1]}T${t[2]}:${t[3]}:${t[4]}.${t[5]}Z`);return Number.isFinite(n)?n:null}(n)??e.modifiedAt,folder:e.folder};if(e.folder)return r;let i=ez.exec(n);if(i)Object.assign(r,{kind:i[1],version:i[2],format:"sixdegrees",byHand:!1});else if(n.startsWith(t)&&n.endsWith(".sqlite")){let e=n.slice(t.length,-7),i=eV.exec(e);Object.assign(r,{kind:"before-update",format:"database",byHand:!1,version:i&&e.slice(0,i.index).replace(/-$/,"")||null})}else n.startsWith(ei)&&n.endsWith(".sqlite")?Object.assign(r,{kind:"before-import",format:"database",byHand:!1}):n.endsWith(ey)?r.format="sixdegrees":n.endsWith(".sqlite")&&(r.format="database");return r.restorable=null!==r.format,r}(e,t))}for(let[e,t]of a){let n=i.get(e);n.bytes+=t.bytes||0,n.parts.push(t.name),t.folder&&(n.withFiles=t.name)}return[...i.values()].sort((e,t)=>t.at-e.at||t.name.localeCompare(e.name))}function e1(e,{now:t=Date.now(),keep:r=eJ,floorMs:a=2592e6,autoPrefix:o=eH}={}){let s=t instanceof Date?t.getTime():t,l=e0(e,{autoPrefix:o}),c=[];for(let[t,o]of Object.entries(r))for(let r of l.filter(e=>e.kind===t&&!e.byHand).slice(o))if("before-import"!==t||!(s-r.at<a)){for(let t of[...r.parts,r.name])(0,n.rmSync)(i.default.join(e,t),{recursive:!0,force:!0});c.push(r.name)}for(let t of eu(e))if(eK.test(t))try{s-(0,n.lstatSync)(i.default.join(e,t)).mtimeMs>=36e5&&(0,n.rmSync)(i.default.join(e,t),{force:!0})}catch{}return c.length&&w.syncFolder(e),c}let e2=Symbol.for("six-degrees.backups-checked"),e5=Symbol.for("six-degrees.backup-failed"),e6=()=>globalThis[e2]||=new Map;function e3(e){return String(e||"it could not be read").replace(/,? so nothing was imported\..*$/s,".").replace(/\s+Export it again on the other computer\.?$/,"")}function e8(e,{applySchema:t,schemaSql:n,appVersion:r}){try{let i=e$(e,{applySchema:t,schemaSql:n,appVersion:r});return{ok:!0,...i}}catch(e){return{ok:!1,problem:e3(e instanceof eI?e.message:`It could not be read (${e.message}).`).replace(/^This file/,"This backup")}}}function e4(e){try{let t=(0,n.lstatSync)(e);return t.isFile()?`${e}|${t.size}|${t.mtimeMs}`:null}catch{return null}}function e9(e,t,n=new Date){globalThis[e5]={kind:e,at:n.toISOString(),message:e3(t?.message||String(t))}}function e7(e,{db:t,dataDir:r,backupsDir:a,appVersion:o,dataVersion:s=o,schemaSql:l,applySchema:c,now:u=new Date,rotate:f=!0}){let d;if(!eY.includes(e))throw Error(`There is no kind of backup called '${e}'.`);(0,n.mkdirSync)(a,{recursive:!0});let p=function(e,t,n=new Date){return`${e}-${t}-${n.toISOString().replace(/[:.]/g,"-")}${ey}`}(e,o,u),h=i.default.join(a,p),m=i.default.join(a,`.${p}.partial`),y=()=>{(0,n.rmSync)(m,{force:!0}),(0,n.rmSync)(`${m}-journal`,{force:!0})};y();try{d=eA(t,{dir:r,outFile:m,includePhotos:!0,includeSocial:!1,appVersion:s,schemaSql:l,now:u}),w.syncFile(m);let e=e8(m,{applySchema:c,schemaSql:l,appVersion:o});if(!e.ok)throw Error(`the copy failed its check: ${e.problem}`);(0,n.renameSync)(m,h),w.syncFolder(a)}catch(e){throw y(),e}let T=e4(h);if(T&&e6().set(T,{ok:!0,people:d.people,photos:d.photos}),globalThis[e5]=null,f)try{e1(a,{now:u})}catch{}return{name:p,file:h,kind:e,bytes:d.bytes,people:d.people,photos:d.photos,verified:!0}}function te(e){var t;let n=e.now||new Date;if(!function(e,t=Date.now()){return null==e||t-e>=864e5||e-t>=864e5}((t=e.backupsDir,e0(t).find(e=>"daily"===e.kind)?.at??null),n.getTime())||0===eb(e.db))return null;try{return e7("daily",{...e,now:n})}catch(e){throw e9("daily",e,n),e}}function tt(e,t,{restorable:n=!0}={}){return"string"!=typeof t||!t||t!==i.default.basename(t)||"."===t||".."===t||/[\\/\0]/.test(t)||!ed(e).some(e=>e.name===t)?null:e0(e).find(e=>e.name===t&&(e.restorable||!n))||null}function tn(){let e=process.env.SIX_DEGREES_HOME||i.default.join((0,r.homedir)(),".six-degrees");return(0,n.existsSync)(e)||(0,n.mkdirSync)(e,{recursive:!0}),e}e.s(["AUTO_BACKUP_PREFIX",0,eH,"backupReport",0,function(e,{applySchema:t,schemaSql:n,appVersion:r}){let a=e0(e),o=a.find(e=>"sixdegrees"===e.format&&!e.byHand)||null,s=null;if(o){let a=function(e,t){let n=e4(e);if(!n)return{ok:!1,problem:"It is no longer there."};let r=e6();return r.has(n)||r.set(n,e8(e,t)),r.get(n)}(i.default.join(e,o.name),{applySchema:t,schemaSql:n,appVersion:r});s={name:o.name,kind:o.kind,at:new Date(o.at).toISOString(),verified:a.ok,people:a.ok?a.people??null:null,problem:a.ok?null:a.problem}}return{backups:a,last:s,failed:globalThis[e5]||null,keep:eJ,floorDays:30}},"dailyBackupIfDue",0,te,"findBackup",0,tt,"makeBackup",0,e7,"noteBackupFailure",0,e9,"restoreBackup",0,function(e,{dir:t,backupsDir:r,applySchema:a,schemaSql:o,appVersion:s,replacedPeople:l=0,now:c=new Date}){let u=tt(r,e);if(!u)throw new eI("There is no backup by that name in the backups folder.",{status:404});ep(t);let f=(0,n.mkdtempSync)(i.default.join(t,eo));try{let e=i.default.join(f,"upload.sixdegrees"),d=i.default.join(r,u.name);if("sixdegrees"===u.format)(0,n.copyFileSync)(d,e);else{let a,l=i.default.join(f,"backup.sqlite");(0,n.copyFileSync)(d,l);try{a=new eW.DatabaseSync(l)}catch(e){throw new eI(`This backup couldn't be opened (${e.message}).`)}try{eA(a,{dir:u.withFiles?i.default.join(r,u.withFiles):t,outFile:e,includePhotos:!0,includeSocial:!!u.withFiles,appVersion:s,schemaSql:o,now:c})}catch(e){throw new eI(`This backup couldn't be read (${e.message}).`)}finally{a.close()}(0,n.rmSync)(l,{force:!0})}return ej(e,{dir:t,applySchema:a,schemaSql:o,appVersion:s,replacedPeople:l,now:c,restoredFrom:u.name})}catch(e){if((0,n.rmSync)(f,{recursive:!0,force:!0}),e instanceof eI)throw new eI(e3(e.message).replace(/^This file/,"This backup"),{status:e.status,...e.extra});throw e}},"restorePreflight",0,function({scanRunning:e,pending:t,currentPeople:n=0,confirmedPeople:r}){return e?new eI(`${T(e)}. Let it finish, or stop it on the Scan page, then restore.`,{status:409}):t?new eI("An import or a restore is already waiting to finish. Restart Six Degrees to finish it, or cancel it first.",{status:409}):n>0&&r!==n?new eI(`This copy has ${n.toLocaleString("en-US")} people. Confirm that the backup replaces them.`,{status:409,needsConfirm:!0,people:n}):null},"rotateBackups",0,e1],97838);let tr={users:["sectors","goals","company_prestige_config"],user_profile:["sectors","goals","company_prestige_config"],linkedin_connections:["influence_signals"],notifications:["data"],queue_items:[],user_stats:[]},ti={linkedin_connections:["is_catalyst"],notifications:["seen"],users:[],user_profile:[],queue_items:[],user_stats:[]},ta=null,to=Symbol.for("six-degrees.db-opened");function ts(){return process.env.SIX_DEGREES_DB||i.default.join(tn(),"six-degrees.sqlite")}function tl(){if(ta)return ta;let e=ts(),r=null;if(!globalThis[to])try{(r=eG({dir:tn(),dbFile:e}))&&console.log(`Six Degrees: finished the import (${r.people} people). What was here before: ${r.keptDatabase||"nothing to keep"}.`)}catch(e){console.error(`Six Degrees: could not finish the import (will try again next start): ${e.message}`)}globalThis[to]=!0,ta=new t.DatabaseSync(e);try{let t=function(e,{dir:t,version:r,dataDir:o=t,now:s=new Date,schemaSql:l=a,applySchema:u=td}){let f=i.default.join(t,"app-version"),d=null;try{d=(0,n.readFileSync)(f,"utf8").trim()}catch{}if(d===r)return null;let p=null;if(e.prepare("SELECT count(*) AS n FROM sqlite_master WHERE type = 'table' AND name = 'linkedin_connections'").get().n>0){let a=i.default.join(t,"backups"),f=/^v?\d+\.\d+\.\d+/.test(d||"")&&0>=(0,c.compareVersions)(d,r);try{p=e7("before-update",{db:e,dataDir:o,backupsDir:a,appVersion:r,dataVersion:f?d:r,schemaSql:l,applySchema:u,now:s}).file}catch(o){e9("before-update",o,s),(0,n.mkdirSync)(a,{recursive:!0}),p=i.default.join(a,`${eH}${r}-${s.toISOString().replace(/[:.]/g,"-")}.sqlite`);let t=i.default.join(a,`.${i.default.basename(p)}.partial`);try{e.exec(`VACUUM INTO '${t.replace(/'/g,"''")}'`),w.syncFile(t),(0,n.renameSync)(t,p),w.syncFolder(a)}catch(e){throw(0,n.rmSync)(t,{force:!0}),e}try{e1(a,{now:s})}catch{}}}return(0,n.writeFileSync)(f,`${r}
|
|
172
|
+
`),p}(ta,{dir:i.default.dirname(e),dataDir:tn(),version:o});t&&console.log(`Six Degrees ${o}: backed up your data first → ${t}`)}catch(e){console.error(`Six Degrees: could not back up your data before ${o} (will try again next start): ${e.message}`)}if(td(ta),r){try{eB(ta,r)}catch{}try{e1(tc())}catch{}}try{let e=tf(ta);e&&console.log(`Six Degrees: made today's backup → ${e.file}`)}catch(e){console.error(`Six Degrees: could not make today's backup (will try again after the next scan or start): ${e.message}`)}return ta}function tc(){return i.default.join(i.default.dirname(ts()),"backups")}function tu(e=tl()){return{db:e,dataDir:tn(),backupsDir:tc(),appVersion:o,schemaSql:a,applySchema:td}}function tf(e=tl(),t=new Date){return te({...tu(e),now:t})}function td(e){e.exec(a),function(e){for(let[t,n,r]of tp)e.prepare(`PRAGMA table_info(${t})`).all().some(e=>e.name===n)||e.exec(`ALTER TABLE ${t} ADD COLUMN ${n} ${r}`)}(e)}let tp=[["linkedin_connections","score_why","TEXT"],["linkedin_connections","mutual_count","INTEGER"]];e.s(["applySchema",0,td,"backUpDailyIfDue",0,tf,"backupOptions",0,tu,"backupsFolder",0,tc,"dataDir",0,tn,"dbFile",0,ts,"decodeRow",0,function(e,t){if(!t)return t;let n={...t};for(let t of tr[e]||[])if("string"==typeof n[t])try{n[t]=JSON.parse(n[t])}catch{}for(let t of ti[e]||[])(0===n[t]||1===n[t])&&(n[t]=!!n[t]);return n},"encodeValue",0,function(e,t,n){return void 0===n?null:(tr[e]||[]).includes(t)?null===n?null:JSON.stringify(n):(ti[e]||[]).includes(t)?null===n?null:+!!n:"boolean"==typeof n?+!!n:null!==n&&"object"==typeof n?JSON.stringify(n):n},"getDb",0,tl,"newId",0,function(){return crypto.randomUUID()},"nowIso",0,function(){return new Date().toISOString()}],73156)}];
|
|
173
|
+
|
|
174
|
+
//# sourceMappingURL=lib_db-client_0_dch35.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[93836,19307,e=>{"use strict";e.i(68835);var t=e.i(1746);function l(e,t){let l=[];for(let n of e){let e=r(t(n));if(!e)return null;l.push(e)}return l.sort().join("|")}let r=e=>String(e||"").split(",")[0].normalize("NFD").replace(/[̀-ͯ]/g,"").toLowerCase().replace(/[^a-z0-9 ]+/g," ").replace(/\s+/g," ").trim(),n=/^https:\/\/www\.linkedin\.com\/messaging\/[\w\-/%=.]*$/;function i(e){let t=String(e||"").trim();return n.test(t)?t:null}function o(e=[]){let l=new Map,n=new Map;for(let i of e){let e=(0,t.keyFor)(i);l.set(e,e);let o=r(i.name);o&&n.set(o,n.has(o)?null:e)}return(e,i)=>l.get((0,t.keyFor)({profile_url:e}))||n.get(r(i))||null}let s=/^https:\/\/www\.linkedin\.com\/in\/[^/?#\s]+\/?$/,a=e=>"string"==typeof e?e.replace(/[\u0000-\u001f]/g," ").trim().slice(0,120):"";e.s(["conversationList",0,function(e=[],t={},{others:n={},groups:i=[],names:o={}}={}){let s=(Array.isArray(e)?e:[]).map(e=>({...e,unread:null,threadUrl:null})),a=new Map;for(let e of s){if(e.group||e.people?.length!==1)continue;let t=a.get(e.people[0]);(!t||(e.last||0)>(t.last||0))&&a.set(e.people[0],e)}let u=(e,t)=>{t.last&&(!e.last||t.last>e.last)&&(e.last=t.last,"boolean"==typeof t.lastFromThem&&(e.lastFromThem=t.lastFromThem)),e.unread=Number.isFinite(t.unread)?t.unread:e.unread,e.threadUrl=t.threadUrl||e.threadUrl},f=(e,t,l)=>({id:e,people:t,group:l,kind:null,folder:"",last:null,lastFromThem:null,count:null,mine:null,unread:null,threadUrl:null});for(let[e,l]of Object.entries(t||{})){if(!l||"object"!=typeof l)continue;let t=a.get(e);t||(t=f(`live:${e}`,[e],!1),s.push(t),a.set(e,t)),u(t,l)}let c=new Map;for(let[e,t]of a){let l=r(o[e]);l&&c.set(l,c.has(l)?null:t)}for(let[e,t]of Object.entries(n||{})){if(!t||"object"!=typeof t)continue;let l=a.get(e)||c.get(r(t.name))||null;l||(l=f(`live:${e}`,[e],!1),s.push(l),a.set(e,l)),l.liveKey=e,u(l,t)}let p=new Map;for(let e of s){if(!e.group)continue;let t=l(e.people,e=>o[e]);t&&p.set(t,p.has(t)?null:e)}for(let e of Array.isArray(i)?i:[]){if(!e||!Array.isArray(e.people)||!e.people.length)continue;let t=l(e.people,t=>e.names?.[t]||o[t]),r=t&&p.get(t)||null;!r&&(r=f(`live:${e.threadUrl||e.people.join(",")}`,e.people,!0),s.push(r),t&&p.set(t,r)),u(r,e)}return s},"matchLive",0,function(e={},l=[]){let r=o(l),n={},u={};for(let[l,o]of Object.entries(e||{})){if(!o||"object"!=typeof o)continue;let e=r(l,o.name),f={last:Number(o.last)||null,unread:Number.isFinite(Number(o.unread))&&null!==o.unread?Number(o.unread):null,threadUrl:i(o.threadUrl),lastFromThem:"boolean"==typeof o.lastFromThem?o.lastFromThem:null,preview:function(e){if(!e||"object"!=typeof e)return null;let t=Number(e.t)||null,l="string"==typeof e.text?e.text.slice(0,2e4):null;return t||l?{t,fromMe:!0===e.fromMe,text:l}:null}(o.preview)};if(!e){let e=(0,t.keyFor)({profile_url:l});s.test(l)&&!u[e]&&(u[e]={name:a(o.name),...f});continue}n[e]&&(n[e].last||0)>=(f.last||0)||(n[e]=f)}return{live:n,others:u,unmatched:Object.keys(u).length}},"matchLiveGroups",0,function(e=[],l=[]){let r=o(l),n=[];for(let l of Array.isArray(e)?e.slice(0,5e3):[]){if(!l||"object"!=typeof l||!Array.isArray(l.people))continue;let e=[],o={};for(let n of l.people.slice(0,200)){if("string"!=typeof n||!s.test(n))continue;let i=a(l.names?.[n]),u=r(n,i);if(u){e.push(u);continue}let f=(0,t.keyFor)({profile_url:n});e.push(f),i&&(o[f]=i)}e.length<2||n.push({threadUrl:i(l.threadUrl),people:[...new Set(e)].sort(),names:o,last:Number(l.last)||null,unread:Number.isFinite(Number(l.unread))&&null!==l.unread?Number(l.unread):null,lastFromThem:"boolean"==typeof l.lastFromThem?l.lastFromThem:null})}return n},"mergeLive",0,function(e={},t={}){let l={...e&&"object"==typeof e?e:{}};for(let[e,r]of Object.entries(t||{}))(!l[e]||(r.last||0)>=(l[e].last||0))&&(l[e]=r);return l}],93836);var u=e.i(2157),f=e.i(50227),c=e.i(
|
|
1
|
+
module.exports=[93836,19307,e=>{"use strict";e.i(68835);var t=e.i(1746);function l(e,t){let l=[];for(let n of e){let e=r(t(n));if(!e)return null;l.push(e)}return l.sort().join("|")}let r=e=>String(e||"").split(",")[0].normalize("NFD").replace(/[̀-ͯ]/g,"").toLowerCase().replace(/[^a-z0-9 ]+/g," ").replace(/\s+/g," ").trim(),n=/^https:\/\/www\.linkedin\.com\/messaging\/[\w\-/%=.]*$/;function i(e){let t=String(e||"").trim();return n.test(t)?t:null}function o(e=[]){let l=new Map,n=new Map;for(let i of e){let e=(0,t.keyFor)(i);l.set(e,e);let o=r(i.name);o&&n.set(o,n.has(o)?null:e)}return(e,i)=>l.get((0,t.keyFor)({profile_url:e}))||n.get(r(i))||null}let s=/^https:\/\/www\.linkedin\.com\/in\/[^/?#\s]+\/?$/,a=e=>"string"==typeof e?e.replace(/[\u0000-\u001f]/g," ").trim().slice(0,120):"";e.s(["conversationList",0,function(e=[],t={},{others:n={},groups:i=[],names:o={}}={}){let s=(Array.isArray(e)?e:[]).map(e=>({...e,unread:null,threadUrl:null})),a=new Map;for(let e of s){if(e.group||e.people?.length!==1)continue;let t=a.get(e.people[0]);(!t||(e.last||0)>(t.last||0))&&a.set(e.people[0],e)}let u=(e,t)=>{t.last&&(!e.last||t.last>e.last)&&(e.last=t.last,"boolean"==typeof t.lastFromThem&&(e.lastFromThem=t.lastFromThem)),e.unread=Number.isFinite(t.unread)?t.unread:e.unread,e.threadUrl=t.threadUrl||e.threadUrl},f=(e,t,l)=>({id:e,people:t,group:l,kind:null,folder:"",last:null,lastFromThem:null,count:null,mine:null,unread:null,threadUrl:null});for(let[e,l]of Object.entries(t||{})){if(!l||"object"!=typeof l)continue;let t=a.get(e);t||(t=f(`live:${e}`,[e],!1),s.push(t),a.set(e,t)),u(t,l)}let c=new Map;for(let[e,t]of a){let l=r(o[e]);l&&c.set(l,c.has(l)?null:t)}for(let[e,t]of Object.entries(n||{})){if(!t||"object"!=typeof t)continue;let l=a.get(e)||c.get(r(t.name))||null;l||(l=f(`live:${e}`,[e],!1),s.push(l),a.set(e,l)),l.liveKey=e,u(l,t)}let p=new Map;for(let e of s){if(!e.group)continue;let t=l(e.people,e=>o[e]);t&&p.set(t,p.has(t)?null:e)}for(let e of Array.isArray(i)?i:[]){if(!e||!Array.isArray(e.people)||!e.people.length)continue;let t=l(e.people,t=>e.names?.[t]||o[t]),r=t&&p.get(t)||null;!r&&(r=f(`live:${e.threadUrl||e.people.join(",")}`,e.people,!0),s.push(r),t&&p.set(t,r)),u(r,e)}return s},"matchLive",0,function(e={},l=[]){let r=o(l),n={},u={};for(let[l,o]of Object.entries(e||{})){if(!o||"object"!=typeof o)continue;let e=r(l,o.name),f={last:Number(o.last)||null,unread:Number.isFinite(Number(o.unread))&&null!==o.unread?Number(o.unread):null,threadUrl:i(o.threadUrl),lastFromThem:"boolean"==typeof o.lastFromThem?o.lastFromThem:null,preview:function(e){if(!e||"object"!=typeof e)return null;let t=Number(e.t)||null,l="string"==typeof e.text?e.text.slice(0,2e4):null;return t||l?{t,fromMe:!0===e.fromMe,text:l}:null}(o.preview)};if(!e){let e=(0,t.keyFor)({profile_url:l});s.test(l)&&!u[e]&&(u[e]={name:a(o.name),...f});continue}n[e]&&(n[e].last||0)>=(f.last||0)||(n[e]=f)}return{live:n,others:u,unmatched:Object.keys(u).length}},"matchLiveGroups",0,function(e=[],l=[]){let r=o(l),n=[];for(let l of Array.isArray(e)?e.slice(0,5e3):[]){if(!l||"object"!=typeof l||!Array.isArray(l.people))continue;let e=[],o={};for(let n of l.people.slice(0,200)){if("string"!=typeof n||!s.test(n))continue;let i=a(l.names?.[n]),u=r(n,i);if(u){e.push(u);continue}let f=(0,t.keyFor)({profile_url:n});e.push(f),i&&(o[f]=i)}e.length<2||n.push({threadUrl:i(l.threadUrl),people:[...new Set(e)].sort(),names:o,last:Number(l.last)||null,unread:Number.isFinite(Number(l.unread))&&null!==l.unread?Number(l.unread):null,lastFromThem:"boolean"==typeof l.lastFromThem?l.lastFromThem:null})}return n},"mergeLive",0,function(e={},t={}){let l={...e&&"object"==typeof e?e:{}};for(let[e,r]of Object.entries(t||{}))(!l[e]||(r.last||0)>=(l[e].last||0))&&(l[e]=r);return l}],93836);var u=e.i(2157),f=e.i(50227),c=e.i(73156),p=e.i(88602);let m={file:null,mtimeMs:0,size:0,data:null};function d(e,t=null){try{return JSON.parse((0,u.readFileSync)(e,"utf8"))??t}catch{return t}}e.s(["deleteMessages",0,function(e){e&&((0,u.rmSync)(e.messages,{force:!0}),(0,u.rmSync)(e.incoming,{force:!0}),m.file=null)},"readJson",0,d,"readMessages",0,function(e){let t;try{t=(0,u.statSync)(e)}catch{return{threads:{},previews:{},invites:{}}}if(m.file===e&&m.mtimeMs===t.mtimeMs&&m.size===t.size)return m.data;let l=d(e,{}),r={threads:l?.threads&&"object"==typeof l.threads?l.threads:{},previews:l?.previews&&"object"==typeof l.previews?l.previews:{},invites:l?.invites&&"object"==typeof l.invites?l.invites:{}};return Object.assign(m,{file:e,mtimeMs:t.mtimeMs,size:t.size,data:r}),r},"socialFiles",0,function(){let e=(0,p.resolveProfile)({create:!1});if(!e?.id||!/^[\w-]+$/.test(String(e.id)))return null;let t=(0,c.dataDir)(),l=f.default.join(t,`social-messages-${e.id}.json`);return{profileId:e.id,social:f.default.join(t,`social-${e.id}.json`),messages:l,crm:f.default.join(t,`crm-${e.id}.json`),incoming:`${l}.incoming`}},"writeJsonAtomic",0,function(e,t){let l=`${e}.${process.pid}.tmp`;(0,u.writeFileSync)(l,JSON.stringify(t)),(0,u.renameSync)(l,e),m.file===e&&(m.file=null)}],19307)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=lib_linkedin-export_12imqxg.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
module.exports=[33471,76407,e=>{"use strict";var r=e.i(66680),t=e.i(73156),n=e.i(68835),a=e.i(25232),i=e.i(73253),o=e.i(51373),c=e.i(14223);let s="legacy_scores_offer";e.s(["LEGACY_OFFER_KEY",0,s,"LEGACY_SCORES",0,[["Snap",9,/^(snap|snapchat)( inc)?( (specs|spectacles|(mena|emea|apac|latam|north america)( region)?))?$/,"media"],["Anduril",9,/^anduril( industries)?$/,"defense"],["Polymarket",9,/^polymarket$/,"finance"],["Kalshi",9,/^kalshi$/,"finance"],["Databricks",8,/^databricks$/,"tech"],["Figma",8,/^figma$/,"tech"],["Scale AI",8,/^(scale ai|scale\.ai|scale\.com)$/,"tech"],["Whatnot",8,/^whatnot$/,"consumer"],["Egon Zehnder",8,/^egon zehnder( international)?$/,"consulting"],["Heidrick & Struggles",8,/^heidrick( (&|and) struggles)?$/,"consulting"],["MrBeast",8,/^(mrbeast|beast industries)$/,"media"],["Whop",7,/^whop$/,"tech"],["Hims & Hers",7,/^hims( (&|and) hers( health)?)?$/,"health"],["Riot Games",7,/^riot games$/,"entertainment"],["Notion",7,/^notion( labs)?$/,"tech"],["Vercel",7,/^vercel$/,"tech"],["Plaid",7,/^plaid$/,"finance"],["Brex",7,/^brex$/,"finance"],["Ramp",7,/^ramp$/,"finance"],["Mercury",7,/^mercury$/,"finance"],["Chime",7,/^chime$/,"finance"],["U.S. Space Force",7,/^((u\.?s\.?|united states) )?space force$/,"defense"],["Grindr",6,/^grindr$/,"tech"],["Genius Sports",6,/^genius sports( group)?$/,"entertainment"],["Later",6,/^later$/,"media"],["Hard Rock Digital",6,/^hard rock digital$/,"entertainment"],["Vanta",6,/^vanta$/,"tech"],["Kaseya",6,/^kaseya$/,"tech"],["Havas",6,/^havas\b/,"media"],["VaynerMedia",6,/^vayner ?media$/,"media"],["AdventHealth",6,/^adventhealth\b/,"health"],["University of Florida",6,/^(uf|university of florida)$/,"education"],["The Athletic",6,/^the athletic( media( company)?)?$/,"media"],["UCF",5,/^(ucf|university of central florida)\b/,"education"]]],76407);var l=e.i(56029),u=e.i(19072);let p=function({known:e=n.KNOWN_COMPANIES,data:t=n.COMPANY_DATA,industries:a=i.INDUSTRIES,rules:o=n.RULE_TABLES}={}){return(0,r.createHash)("sha256").update(JSON.stringify([e.map(([e,r,t,n])=>[e,r,String(t),n]),t.map(([e,r,t,n])=>[e,r,String(t),n]),a.map(({key:e,label:r,words:t})=>[e,r,String(t)]),o],(e,r)=>r instanceof RegExp?String(r):r instanceof Set?[...r]:r)).digest("hex").slice(0,16)}();function d(e=(0,t.getDb)()){return new Map(e.prepare("SELECT name, score FROM company_scores").all().map(e=>[e.name,e.score]))}function g(e=(0,t.getDb)()){return(0,o.readSettings)(e,{sectorFocus:c.SECTOR_FOCUS_SETTING}).sectorFocus}function _(e=(0,t.getDb)()){return(0,o.readSettings)(e,{tierScale:n.TIER_SCALE_SETTING}).tierScale}function m(e=(0,t.getDb)()){let r=(0,o.readSettings)(e,{titleRanking:a.TITLE_RANKING_SETTING}).titleRanking;return(0,a.isDefaultRanking)(r)?null:r}function E(e=(0,t.getDb)(),{withPeople:r=!1}={}){return e.prepare(`SELECT id, degree, headline, role, company, scanned_company, profile_url, source_connection_id${r?", name":""}
|
|
2
|
+
FROM linkedin_connections`).all()}function S(e){return(0,n.readNetwork)(e,{industryOf:i.industryKeyOf,sectorsOf:(0,l.sectorMatcher)(),groupOf:l.sectorGroup})}function f({compareWith:e}={}){let r=(0,t.getDb)(),i=E(r),o=d(r),l=g(r),h=_(r),T=m(r),O=S(i),{scores:y}=(0,n.scoreNetwork)(i,{overrides:o,focus:l,tierScale:h,titles:T,read:O}),R=void 0===e?null:(0,c.previewSectorFocus)(i,{overrides:o,read:O,from:e,to:l,tierScale:h,titles:T,examples:0}),I=r.prepare(`UPDATE linkedin_connections SET seniority_score = ?, company_prestige_score = ?, power_score = ?, tier = ?,
|
|
3
|
+
score_why = ?, circle_power = ?, circle_s_count = ?, circle_a_count = ?, circle_elite_pct = ?, is_catalyst = ?, catalyst_score = ?, updated_at = ?
|
|
4
|
+
WHERE id = ?`),N=(0,t.nowIso)();r.exec("BEGIN");try{for(let e of(!r.prepare("SELECT 1 FROM app_meta WHERE key = 'scoring_list'").get()&&r.prepare("SELECT 1 FROM linkedin_connections WHERE tier IS NOT NULL LIMIT 1").get()&&r.prepare("INSERT OR IGNORE INTO app_meta (key, value) VALUES (?, 'open')").run(s),i)){let r=y.get(e.id),t=r.circle;I.run(r.title.points,r.companyScore,r.power,r.tier,(0,n.explainScore)(r,r.boost,{sectorLabel:u.sectorLabel}),t?Math.round(100*t.circlePower)/100:0,t?.sCount||0,t?.aCount||0,t?Math.round(100*t.elitePct)/100:0,+!!t?.isCatalyst,t?.isCatalyst?t.sCount+t.aCount:0,N,e.id)}let e=r.prepare("INSERT INTO app_meta (key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value");e.run("scoring_version",String(n.SCORING_VERSION)),e.run("scoring_list",p),e.run("scoring_focus",(0,c.focusFingerprint)(l)),e.run("scoring_tiers",h),e.run("scoring_titles",(0,a.rankingFingerprint)(T||void 0)),r.exec("COMMIT")}catch(e){throw r.exec("ROLLBACK"),e}return R?{scored:i.length,people:R.people,up:R.up,down:R.down}:{scored:i.length}}async function h(e,r={}){try{if("score_new_connections"===e||"rescore_all"===e)return{data:f(),error:null};if("rescore_if_stale"===e){let e,r;return{data:(e=(0,t.getDb)(),(r=r=>e.prepare("SELECT value FROM app_meta WHERE key = ?").get(r)?.value)("scoring_version")===String(n.SCORING_VERSION)&&r("scoring_list")===p&&r("scoring_focus")===(0,c.focusFingerprint)(g(e))&&r("scoring_tiers")===_(e)&&(r("scoring_titles")??"none")===(0,a.rankingFingerprint)(m(e)||void 0)?{scored:0}:f()),error:null}}if("increment_xp"===e)return{data:function({amount:e=0}={}){let r=(0,t.getDb)(),n=r.prepare("SELECT id, xp FROM user_stats LIMIT 1").get();if(!n){let t=crypto.randomUUID();return r.prepare("INSERT INTO user_stats (id, xp) VALUES (?, ?)").run(t,e),{xp:e}}let a=(n.xp||0)+e;return r.prepare("UPDATE user_stats SET xp = ?, last_active_at = ? WHERE id = ?").run(a,(0,t.nowIso)(),n.id),{xp:a}}(r),error:null};if("exec_sql"===e)return{data:null,error:{message:"exec_sql is not supported in the local build"}};return{data:null,error:{message:`Unknown function: ${e}`}}}catch(e){return{data:null,error:{message:e.message}}}}e.s(["companyOverrides",0,d,"readForScoring",0,S,"rescoreAll",0,f,"runRpc",0,h,"scoringRows",0,E,"sectorFocusOf",0,g,"setCompanyScores",0,function(e,r){let n=e.prepare(`INSERT INTO company_scores (id, name, score, updated_at) VALUES (?, ?, ?, ?)
|
|
5
|
+
ON CONFLICT(name) DO UPDATE SET score = excluded.score, updated_at = excluded.updated_at`),a=(0,t.nowIso)();for(let[e,i]of r)n.run((0,t.newId)(),e,i,a)},"tierScaleOf",0,_,"titleRankingOf",0,m],33471)}];
|
|
6
|
+
|
|
7
|
+
//# sourceMappingURL=lib_rpc_0c9d9ti.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[9272,a=>{a.v({className:"geist_2ae47f08-module__h69qWW__className",variable:"geist_2ae47f08-module__h69qWW__variable"})},79474,a=>{a.v({className:"geist_mono_eb58308d-module__w_p2Lq__className",variable:"geist_mono_eb58308d-module__w_p2Lq__variable"})},44848,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/components/LiquidGlass.js from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/components/LiquidGlass.js","default")},30394,a=>{"use strict";var b=a.i(44848);a.n(b)},62925,a=>{"use strict";var b=a.i(7997),c=a.i(9272);let d={className:c.default.className,style:{fontFamily:"'Geist', 'Geist Fallback'",fontStyle:"normal"}};null!=c.default.variable&&(d.variable=c.default.variable);var e=a.i(79474);let f={className:e.default.className,style:{fontFamily:"'Geist Mono', 'Geist Mono Fallback'",fontStyle:"normal"}};null!=e.default.variable&&(f.variable=e.default.variable);var g=a.i(68354),h=a.i(42041),i=a.i(21043),j=a.i(25493),k=a.i(73699),l=a.i(30394);function m(){return(0,b.jsx)("svg",{width:"0",height:"0","aria-hidden":"true",focusable:"false",style:{position:"absolute",width:0,height:0,pointerEvents:"none"},children:(0,b.jsxs)("defs",{children:[(0,b.jsxs)("filter",{id:"sd-droplet",x:"-30%",y:"-30%",width:"160%",height:"160%",colorInterpolationFilters:"sRGB",children:[(0,b.jsx)("feGaussianBlur",{in:"SourceAlpha",stdDeviation:"1.4",result:"soft"}),(0,b.jsx)("feSpecularLighting",{in:"soft",surfaceScale:"4",specularConstant:"1.15",specularExponent:"24",lightingColor:"#ffffff",result:"light",children:(0,b.jsx)("feDistantLight",{azimuth:"225",elevation:"52"})}),(0,b.jsx)("feComposite",{in:"light",in2:"SourceAlpha",operator:"in",result:"shine"}),(0,b.jsx)("feComponentTransfer",{in:"SourceGraphic",result:"clear",children:(0,b.jsx)("feFuncA",{type:"linear",slope:"0.72"})}),(0,b.jsx)("feMorphology",{in:"SourceAlpha",operator:"erode",radius:"0.8",result:"inner"}),(0,b.jsx)("feComposite",{in:"SourceAlpha",in2:"inner",operator:"out",result:"edge"}),(0,b.jsx)("feFlood",{floodColor:"#ffffff",floodOpacity:"0.55"}),(0,b.jsx)("feComposite",{in2:"edge",operator:"in",result:"rim"}),(0,b.jsxs)("feMerge",{children:[(0,b.jsx)("feMergeNode",{in:"clear"}),(0,b.jsx)("feMergeNode",{in:"shine"}),(0,b.jsx)("feMergeNode",{in:"rim"})]})]}),(0,b.jsxs)("filter",{id:"sd-glow",x:"-80%",y:"-80%",width:"260%",height:"260%",colorInterpolationFilters:"sRGB",children:[(0,b.jsx)("feGaussianBlur",{in:"SourceGraphic",stdDeviation:"2.4",result:"b"}),(0,b.jsxs)("feMerge",{children:[(0,b.jsx)("feMergeNode",{in:"b"}),(0,b.jsx)("feMergeNode",{in:"SourceGraphic"})]})]})]})})}a.s(["default",0,function({children:a}){return(0,b.jsxs)("html",{lang:"en","data-backdrop":"none","data-mode":"dark","data-buttons":"soft","data-dots":"solid",className:`${d.variable} ${f.variable}`,suppressHydrationWarning:!0,children:[(0,b.jsx)("head",{children:(0,b.jsx)("script",{dangerouslySetInnerHTML:{__html:"try{var t=JSON.parse(localStorage.getItem('six-degrees-theme-vars')||'null');if(t&&t.vars){var r=document.documentElement;for(var k in t.vars){var v=String(t.vars[k]);if(/^--sd-[a-z0-9-]+$/.test(k)&&!/[;{}<>]/.test(v))r.style.setProperty(k,v)}var a=t.attrs||{};['theme','backdrop','mode','buttons','dots'].forEach(function(n){if(/^[a-z]+$/.test(a[n]||''))r.dataset[n]=a[n]});r.style.colorScheme=a.mode==='light'?'light':'dark'}}catch(e){}"}})}),(0,b.jsxs)("body",{style:{margin:0,padding:0,background:"var(--sd-bg, #0a0a1a)"},children:[(0,b.jsx)(k.default,{}),(0,b.jsx)(l.default,{}),(0,b.jsx)(m,{}),(0,b.jsxs)(g.default,{children:[a,(0,b.jsx)(h.default,{}),(0,b.jsx)(i.default,{}),(0,b.jsx)(j.default,{})]})]})]})},"metadata",0,{title:"Six Degrees",description:"Maps your LinkedIn network: who you know, who they know, and the shortest path to someone you haven't met. Runs on your own computer; nothing is uploaded.",viewport:"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}],62925)},19325,function(a){a.n(a.i(62925))},26230,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/components/ScanStatusBar.js from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/components/ScanStatusBar.js","default")},21043,a=>{"use strict";var b=a.i(26230);a.n(b)},88999,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/components/SocialAutoSync.js from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/components/SocialAutoSync.js","default")},25493,a=>{"use strict";var b=a.i(88999);a.n(b)},61143,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/components/StaleServerBanner.js from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/components/StaleServerBanner.js","default")},42041,a=>{"use strict";var b=a.i(61143);a.n(b)},7164,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/components/ThemeLoader.js from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/components/ThemeLoader.js","default")},73699,a=>{"use strict";var b=a.i(7164);a.n(b)},69067,a=>{"use strict";a.s(["default",()=>c,"useUser",()=>d]);var b=a.i(11857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/components/UserProvider.js from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/components/UserProvider.js","default"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call useUser() from the server but useUser is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/components/UserProvider.js","useUser")},68354,a=>{"use strict";var b=a.i(69067);a.n(b)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0qd8pzm._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},20635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},24725,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},43285,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/dynamic-access-async-storage.external.js",()=>require("next/dist/server/app-render/dynamic-access-async-storage.external.js"))},56704,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},59043,(a,b,c)=>{b.exports=a.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},42602,(a,b,c)=>{"use strict";b.exports=a.r(18622)},9270,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.AppRouterContext},36313,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.HooksClientContext},18341,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.ServerInsertedHtml},35112,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactDOM},87924,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactJsxRuntime},38783,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactServerDOMTurbopackClient},72131,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].React}];
|
|
1
|
+
module.exports=[18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},20635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},24725,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},43285,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/dynamic-access-async-storage.external.js",()=>require("next/dist/server/app-render/dynamic-access-async-storage.external.js"))},56704,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},59043,(a,b,c)=>{b.exports=a.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},7315,a=>{a.v(b=>Promise.all(["server/chunks/ssr/lib_separation_1305zsx.js","server/chunks/ssr/lib_galaxy-lab_108_lu-.js"].map(b=>a.l(b))).then(()=>b(1328)))},42602,(a,b,c)=>{"use strict";b.exports=a.r(18622)},9270,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.AppRouterContext},36313,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.HooksClientContext},18341,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.ServerInsertedHtml},35112,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactDOM},87924,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactJsxRuntime},38783,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactServerDOMTurbopackClient},72131,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].React}];
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__1-012q1._.js.map
|