atlas-browser 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/.github/FUNDING.yml +1 -0
  2. package/.github/ISSUE_TEMPLATE/bug_report.md +26 -0
  3. package/.github/ISSUE_TEMPLATE/feature_request.md +16 -0
  4. package/CONTRIBUTING.md +63 -0
  5. package/LICENSE +21 -0
  6. package/PRIVACY.md +37 -0
  7. package/README.md +163 -0
  8. package/SECURITY.md +29 -0
  9. package/assets/logo.png +0 -0
  10. package/bin/cli.js +142 -0
  11. package/dist-electron/main/blocker.js +109 -0
  12. package/dist-electron/main/blocker.js.map +1 -0
  13. package/dist-electron/main/bookmark-manager.js +121 -0
  14. package/dist-electron/main/bookmark-manager.js.map +1 -0
  15. package/dist-electron/main/download-manager.js +118 -0
  16. package/dist-electron/main/download-manager.js.map +1 -0
  17. package/dist-electron/main/index.js +116 -0
  18. package/dist-electron/main/index.js.map +1 -0
  19. package/dist-electron/main/ipc-handlers.js +303 -0
  20. package/dist-electron/main/ipc-handlers.js.map +1 -0
  21. package/dist-electron/main/menu.js +229 -0
  22. package/dist-electron/main/menu.js.map +1 -0
  23. package/dist-electron/main/security-analyzer.js +71 -0
  24. package/dist-electron/main/security-analyzer.js.map +1 -0
  25. package/dist-electron/main/settings-manager.js +105 -0
  26. package/dist-electron/main/settings-manager.js.map +1 -0
  27. package/dist-electron/main/tab-manager.js +205 -0
  28. package/dist-electron/main/tab-manager.js.map +1 -0
  29. package/dist-electron/main/tor-manager.js +59 -0
  30. package/dist-electron/main/tor-manager.js.map +1 -0
  31. package/dist-electron/preload/preload.js +73 -0
  32. package/dist-electron/preload/preload.js.map +1 -0
  33. package/install.sh +120 -0
  34. package/package.json +67 -0
  35. package/src/main/blocker.ts +121 -0
  36. package/src/main/bookmark-manager.ts +99 -0
  37. package/src/main/download-manager.ts +103 -0
  38. package/src/main/index.ts +93 -0
  39. package/src/main/ipc-handlers.ts +283 -0
  40. package/src/main/menu.ts +192 -0
  41. package/src/main/security-analyzer.ts +97 -0
  42. package/src/main/settings-manager.ts +84 -0
  43. package/src/main/tab-manager.ts +249 -0
  44. package/src/main/tor-manager.ts +59 -0
  45. package/src/preload/preload.ts +85 -0
  46. package/src/renderer/bookmarks.html +84 -0
  47. package/src/renderer/browser-ui.js +427 -0
  48. package/src/renderer/downloads.html +94 -0
  49. package/src/renderer/history.html +111 -0
  50. package/src/renderer/index.html +152 -0
  51. package/src/renderer/internet-map.html +313 -0
  52. package/src/renderer/network-map.js +131 -0
  53. package/src/renderer/security-panel.js +13 -0
  54. package/src/renderer/settings.html +138 -0
  55. package/src/renderer/styles.css +688 -0
  56. package/tsconfig.json +18 -0
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.BookmarkManager = void 0;
37
+ const electron_1 = require("electron");
38
+ const fs = __importStar(require("fs"));
39
+ const path = __importStar(require("path"));
40
+ const STORE_PATH = path.join(electron_1.app.getPath('userData'), 'bookmarks.json');
41
+ function readStore() {
42
+ try {
43
+ return JSON.parse(fs.readFileSync(STORE_PATH, 'utf8'));
44
+ }
45
+ catch {
46
+ return [];
47
+ }
48
+ }
49
+ function writeStore(data) {
50
+ fs.writeFileSync(STORE_PATH, JSON.stringify(data, null, 2));
51
+ }
52
+ class BookmarkManager {
53
+ getAll() {
54
+ return readStore();
55
+ }
56
+ getByFolder(folder) {
57
+ return this.getAll().filter(b => b.folder === folder);
58
+ }
59
+ getBarBookmarks() {
60
+ return this.getByFolder('bar');
61
+ }
62
+ add(title, url, favicon = '', folder = 'bar') {
63
+ const bookmark = {
64
+ id: Date.now().toString(36) + Math.random().toString(36).slice(2, 6),
65
+ title,
66
+ url,
67
+ favicon,
68
+ folder,
69
+ createdAt: Date.now(),
70
+ };
71
+ const all = this.getAll();
72
+ all.push(bookmark);
73
+ writeStore(all);
74
+ return bookmark;
75
+ }
76
+ remove(id) {
77
+ const all = this.getAll();
78
+ const filtered = all.filter(b => b.id !== id);
79
+ if (filtered.length === all.length)
80
+ return false;
81
+ writeStore(filtered);
82
+ return true;
83
+ }
84
+ update(id, updates) {
85
+ const all = this.getAll();
86
+ const idx = all.findIndex(b => b.id === id);
87
+ if (idx < 0)
88
+ return false;
89
+ all[idx] = { ...all[idx], ...updates };
90
+ writeStore(all);
91
+ return true;
92
+ }
93
+ isBookmarked(url) {
94
+ return this.getAll().some(b => b.url === url);
95
+ }
96
+ findByUrl(url) {
97
+ return this.getAll().find(b => b.url === url);
98
+ }
99
+ getFolders() {
100
+ const folders = new Set(this.getAll().map(b => b.folder));
101
+ return Array.from(folders);
102
+ }
103
+ exportAll() {
104
+ return JSON.stringify(this.getAll(), null, 2);
105
+ }
106
+ importAll(json) {
107
+ const imported = JSON.parse(json);
108
+ const all = this.getAll();
109
+ let count = 0;
110
+ for (const bm of imported) {
111
+ if (!all.some(b => b.url === bm.url)) {
112
+ all.push({ ...bm, id: Date.now().toString(36) + Math.random().toString(36).slice(2, 6) });
113
+ count++;
114
+ }
115
+ }
116
+ writeStore(all);
117
+ return count;
118
+ }
119
+ }
120
+ exports.BookmarkManager = BookmarkManager;
121
+ //# sourceMappingURL=bookmark-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bookmark-manager.js","sourceRoot":"","sources":["../../src/main/bookmark-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.DownloadManager = void 0;
37
+ const path = __importStar(require("path"));
38
+ const fs = __importStar(require("fs"));
39
+ const electron_1 = require("electron");
40
+ const STORE_PATH = path.join(electron_1.app.getPath('userData'), 'downloads.json');
41
+ function readDL() { try {
42
+ return JSON.parse(fs.readFileSync(STORE_PATH, 'utf8'));
43
+ }
44
+ catch {
45
+ return [];
46
+ } }
47
+ function writeDL(d) { fs.writeFileSync(STORE_PATH, JSON.stringify(d, null, 2)); }
48
+ class DownloadManager {
49
+ activeDownloads = new Map();
50
+ window;
51
+ constructor(window) {
52
+ this.window = window;
53
+ }
54
+ setup(session) {
55
+ session.on('will-download', (_event, item, _webContents) => {
56
+ const id = Date.now().toString(36) + Math.random().toString(36).slice(2, 6);
57
+ const filename = item.getFilename();
58
+ const savePath = path.join(electron_1.app.getPath('downloads'), filename);
59
+ item.setSavePath(savePath);
60
+ this.activeDownloads.set(id, item);
61
+ const record = {
62
+ id,
63
+ filename,
64
+ url: item.getURL(),
65
+ savePath,
66
+ totalBytes: item.getTotalBytes(),
67
+ receivedBytes: 0,
68
+ state: 'progressing',
69
+ startTime: Date.now(),
70
+ };
71
+ // Save to history
72
+ const all = readDL();
73
+ all.unshift(record);
74
+ writeDL(all);
75
+ // Notify renderer
76
+ this.window.webContents.send('download-started', record);
77
+ item.on('updated', (_e, state) => {
78
+ record.receivedBytes = item.getReceivedBytes();
79
+ record.totalBytes = item.getTotalBytes();
80
+ record.state = state === 'progressing' ? 'progressing' : 'interrupted';
81
+ this.updateRecord(record);
82
+ this.window.webContents.send('download-progress', record);
83
+ });
84
+ item.once('done', (_e, state) => {
85
+ record.receivedBytes = item.getReceivedBytes();
86
+ record.state = state === 'completed' ? 'completed' : 'cancelled';
87
+ this.updateRecord(record);
88
+ this.activeDownloads.delete(id);
89
+ this.window.webContents.send('download-done', record);
90
+ });
91
+ });
92
+ }
93
+ getHistory() {
94
+ return readDL();
95
+ }
96
+ clearHistory() {
97
+ writeDL([]);
98
+ }
99
+ pause(id) {
100
+ this.activeDownloads.get(id)?.pause();
101
+ }
102
+ resume(id) {
103
+ this.activeDownloads.get(id)?.resume();
104
+ }
105
+ cancel(id) {
106
+ this.activeDownloads.get(id)?.cancel();
107
+ }
108
+ updateRecord(record) {
109
+ const all = readDL();
110
+ const idx = all.findIndex(d => d.id === record.id);
111
+ if (idx >= 0) {
112
+ all[idx] = record;
113
+ writeDL(all);
114
+ }
115
+ }
116
+ }
117
+ exports.DownloadManager = DownloadManager;
118
+ //# sourceMappingURL=download-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"download-manager.js","sourceRoot":"","sources":["../../src/main/download-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const electron_1 = require("electron");
37
+ const path = __importStar(require("path"));
38
+ const tab_manager_1 = require("./tab-manager");
39
+ const blocker_1 = require("./blocker");
40
+ const security_analyzer_1 = require("./security-analyzer");
41
+ const tor_manager_1 = require("./tor-manager");
42
+ const bookmark_manager_1 = require("./bookmark-manager");
43
+ const download_manager_1 = require("./download-manager");
44
+ const settings_manager_1 = require("./settings-manager");
45
+ const menu_1 = require("./menu");
46
+ const ipc_handlers_1 = require("./ipc-handlers");
47
+ const settingsManager = new settings_manager_1.SettingsManager();
48
+ const SEARCH_ANGEL_URL = settingsManager.get('homepage');
49
+ let mainWindow = null;
50
+ let tabManager = null;
51
+ let blocker = null;
52
+ let securityAnalyzer = null;
53
+ let torManager = null;
54
+ let bookmarkManager = null;
55
+ let downloadManager = null;
56
+ function createWindow() {
57
+ mainWindow = new electron_1.BrowserWindow({
58
+ width: 1400,
59
+ height: 900,
60
+ minWidth: 800,
61
+ minHeight: 600,
62
+ title: 'Atlas Browser',
63
+ titleBarStyle: 'hiddenInset',
64
+ trafficLightPosition: { x: 12, y: 12 },
65
+ backgroundColor: '#0a0a0f',
66
+ webPreferences: {
67
+ preload: path.join(__dirname, '..', 'preload', 'preload.js'),
68
+ nodeIntegration: false,
69
+ contextIsolation: true,
70
+ sandbox: false,
71
+ },
72
+ });
73
+ mainWindow.loadFile(path.join(__dirname, '..', '..', 'src', 'renderer', 'index.html'));
74
+ // Initialize all components
75
+ blocker = new blocker_1.Blocker();
76
+ securityAnalyzer = new security_analyzer_1.SecurityAnalyzer();
77
+ torManager = new tor_manager_1.TorManager();
78
+ bookmarkManager = new bookmark_manager_1.BookmarkManager();
79
+ downloadManager = new download_manager_1.DownloadManager(mainWindow);
80
+ tabManager = new tab_manager_1.TabManager(mainWindow, SEARCH_ANGEL_URL, blocker, securityAnalyzer);
81
+ // Setup
82
+ (0, ipc_handlers_1.setupIpcHandlers)(mainWindow, tabManager, blocker, securityAnalyzer, torManager, bookmarkManager, downloadManager, settingsManager);
83
+ (0, menu_1.setupMenu)(mainWindow, tabManager);
84
+ blocker.setup(electron_1.session.defaultSession);
85
+ downloadManager.setup(electron_1.session.defaultSession);
86
+ // First tab
87
+ mainWindow.webContents.once('did-finish-load', () => {
88
+ tabManager.createTab(SEARCH_ANGEL_URL);
89
+ });
90
+ mainWindow.on('closed', () => {
91
+ mainWindow = null;
92
+ tabManager = null;
93
+ });
94
+ }
95
+ // Privacy flags
96
+ electron_1.app.commandLine.appendSwitch('disable-features', 'SpareRendererForSitePerProcess');
97
+ electron_1.app.commandLine.appendSwitch('disable-client-side-phishing-detection');
98
+ electron_1.app.commandLine.appendSwitch('disable-component-update');
99
+ electron_1.app.whenReady().then(() => {
100
+ electron_1.session.defaultSession.setUserAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36');
101
+ electron_1.session.defaultSession.cookies.flushStore();
102
+ createWindow();
103
+ });
104
+ electron_1.app.on('window-all-closed', () => {
105
+ if (settingsManager.get('clearDataOnExit')) {
106
+ electron_1.session.defaultSession.clearStorageData({
107
+ storages: ['cookies', 'localstorage', 'cachestorage'],
108
+ });
109
+ }
110
+ electron_1.app.quit();
111
+ });
112
+ electron_1.app.on('activate', () => {
113
+ if (electron_1.BrowserWindow.getAllWindows().length === 0)
114
+ createWindow();
115
+ });
116
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/main/index.ts"],"names":[],"mappings":"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"}