@natchs/browser-mcp 2.0.0 → 2.0.2

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 (65) hide show
  1. package/README.md +79 -89
  2. package/dist/core/body-fetch.d.ts +19 -0
  3. package/dist/core/body-fetch.d.ts.map +1 -0
  4. package/dist/core/body-fetch.js +73 -0
  5. package/dist/core/body-fetch.js.map +1 -0
  6. package/dist/core/config.d.ts +24 -0
  7. package/dist/core/config.d.ts.map +1 -1
  8. package/dist/core/config.js +13 -3
  9. package/dist/core/config.js.map +1 -1
  10. package/dist/core/mime-types.d.ts +3 -0
  11. package/dist/core/mime-types.d.ts.map +1 -0
  12. package/dist/core/mime-types.js +110 -0
  13. package/dist/core/mime-types.js.map +1 -0
  14. package/dist/core/network-capture.d.ts +1 -0
  15. package/dist/core/network-capture.d.ts.map +1 -1
  16. package/dist/core/network-capture.js +3 -1
  17. package/dist/core/network-capture.js.map +1 -1
  18. package/dist/core/network-export.js +1 -1
  19. package/dist/core/registry.d.ts.map +1 -1
  20. package/dist/core/registry.js +2 -1
  21. package/dist/core/registry.js.map +1 -1
  22. package/dist/core/sandbox.d.ts.map +1 -1
  23. package/dist/core/sandbox.js +8 -6
  24. package/dist/core/sandbox.js.map +1 -1
  25. package/dist/core/session.js +1 -1
  26. package/dist/core/session.js.map +1 -1
  27. package/dist/core/utils.d.ts +8 -0
  28. package/dist/core/utils.d.ts.map +1 -0
  29. package/dist/core/utils.js +22 -0
  30. package/dist/core/utils.js.map +1 -0
  31. package/dist/index.d.ts +1 -0
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +2 -1
  34. package/dist/index.js.map +1 -1
  35. package/dist/tools/browser/cookies.d.ts.map +1 -1
  36. package/dist/tools/browser/cookies.js +5 -2
  37. package/dist/tools/browser/cookies.js.map +1 -1
  38. package/dist/tools/browser/download.d.ts +17 -0
  39. package/dist/tools/browser/download.d.ts.map +1 -0
  40. package/dist/tools/browser/download.js +175 -0
  41. package/dist/tools/browser/download.js.map +1 -0
  42. package/dist/tools/browser/index.d.ts.map +1 -1
  43. package/dist/tools/browser/index.js +2 -0
  44. package/dist/tools/browser/index.js.map +1 -1
  45. package/dist/tools/navigation/navigate.js +1 -1
  46. package/dist/tools/navigation/navigate.js.map +1 -1
  47. package/dist/tools/network/index.d.ts.map +1 -1
  48. package/dist/tools/network/index.js +2 -0
  49. package/dist/tools/network/index.js.map +1 -1
  50. package/dist/tools/network/network-entries.d.ts +2 -2
  51. package/dist/tools/network/network-entries.d.ts.map +1 -1
  52. package/dist/tools/network/network-entries.js +3 -5
  53. package/dist/tools/network/network-entries.js.map +1 -1
  54. package/dist/tools/network/network-requests.d.ts.map +1 -1
  55. package/dist/tools/network/network-requests.js +1 -4
  56. package/dist/tools/network/network-requests.js.map +1 -1
  57. package/dist/tools/network/network-response.d.ts +1 -1
  58. package/dist/tools/network/network-save.d.ts +17 -0
  59. package/dist/tools/network/network-save.d.ts.map +1 -0
  60. package/dist/tools/network/network-save.js +145 -0
  61. package/dist/tools/network/network-save.js.map +1 -0
  62. package/dist/tools/network/wait-nav.d.ts.map +1 -1
  63. package/dist/tools/network/wait-nav.js +4 -2
  64. package/dist/tools/network/wait-nav.js.map +1 -1
  65. package/package.json +15 -4
package/README.md CHANGED
@@ -1,107 +1,116 @@
1
- # Browser MCP
1
+ # @natchs/browser-mcp
2
2
 
3
- Reverse engineering ve web scraping odaklı, Cloudflare engelleri haricinde tam otonom çalışabilen bir browser MCP (Model Context Protocol) sunucusu.
3
+ **Browser automation MCP server** — reverse engineering, web scraping ve data extraction için tasarlanmış, AI ajanların tarayıcıyı tam kontrol etmesini sağlayan bir Model Context Protocol sunucusu.
4
4
 
5
- ## Özellikler
5
+ ---
6
6
 
7
- - **Phased Architecture**: 11 faz, 40+ tool, production-grade
8
- - **Rate Limiting**: Token bucket algoritması, global + per-tool limit
9
- - **Cache**: LRU cache + TTL, SHA-256 hash ile cache key
10
- - **Security**: SSRF koruması, path traversal engelleme, input sanitizasyonu
11
- - **Observability**: Structured JSON logging, tool metrikleri
12
- - **Session Management**: Session TTL, otomatik cleanup, çoklu session desteği
13
-
14
- ## Gereksinimler
15
-
16
- - Node.js >= 18
17
- - npm veya yarn
18
-
19
- ## Kurulum
7
+ ## Quick Start
20
8
 
21
9
  ```bash
22
- git clone <repo-url>
23
- cd browser-mcp
24
- npm ci
25
- npx playwright install chromium
26
- ```
10
+ # 1. Install
11
+ npm install @natchs/browser-mcp
27
12
 
28
- ## Kullanım
29
-
30
- ```bash
31
- # Geliştirme
32
- npx tsx src/index.ts
13
+ # 2. Install browser
14
+ npx playwright install chromium
33
15
 
34
- # Production build
35
- npm run build
36
- node dist/index.js
16
+ # 3. Run
17
+ npx @natchs/browser-mcp
37
18
  ```
38
19
 
39
- ## MCP Client Entegrasyonu
20
+ ### MCP Client Config
21
+
22
+ Claude Desktop, Cursor, VS Code veya herhangi bir MCP istemcisine eklemek için:
40
23
 
41
24
  ```json
42
25
  {
43
26
  "mcpServers": {
44
27
  "browser-mcp": {
45
- "command": "node",
46
- "args": ["path/to/browser-mcp/dist/index.js"]
28
+ "command": "npx",
29
+ "args": ["@natchs/browser-mcp"]
47
30
  }
48
31
  }
49
32
  }
50
33
  ```
51
34
 
52
- ## Docker
35
+ Alternatif: projeyi klonlayıp yerel build ile de kullanabilirsiniz:
53
36
 
54
37
  ```bash
55
- docker build -t browser-mcp .
56
- docker run --rm -i browser-mcp
38
+ git clone https://github.com/natchs/browser-mcp.git
39
+ cd browser-mcp
40
+ npm ci
41
+ npx playwright install chromium
42
+ npm run build
43
+ node dist/index.js
57
44
  ```
58
45
 
59
- ## Ortam Değişkenleri
46
+ ---
47
+
48
+ ## Detaylı Özellikler
49
+
50
+ ### Mevcut Yetenekler
51
+
52
+ | Kategori | Tool Sayısı | Neler Yapabilir? |
53
+ |----------|------------|-------------------|
54
+ | **Navigation** | 5 | Sayfa açma, geri/ileri gitme, refresh, element/url bekleme |
55
+ | **Interaction** | 8 | Tıklama, form doldurma, select kutusu, hover, drag-drop, klavye, dosya yükleme |
56
+ | **Extraction** | 7 | HTML, Markdown, plain text, CSS selector, tablo, Schema.org, Open Graph |
57
+ | **Network** | 10 | İstek/cevap takibi, HAR/JSON/CSV export, WebSocket frame yakalama, body kaydetme, console log |
58
+ | **Browser Control** | 8 | Screenshot, PDF, çerez yönetimi, JavaScript çalıştırma, dosya indirme |
59
+ | **Session** | 3 | Çoklu session açma/kapama/listeleme, otomatik TTL cleanup |
60
+ | **Admin** | 3 | Server durumu, cache istatistikleri, cache temizleme |
61
+ | **RE Tools** | 4 | JavaScript beautify/deobfuscate, API endpoint discovery, auth analizi |
62
+ | **Stealth** | 2 | Fingerprint değiştirme, human behavior simülasyonu |
60
63
 
61
- | Değişken | Varsayılan | Açıklama |
62
- |----------|-----------|----------|
63
- | `BROWSER_HEADLESS` | `true` | Headless mod |
64
- | `BROWSER_TIMEOUT` | `30000` | Sayfa timeout (ms) |
65
- | `BROWSER_VIEWPORT_WIDTH` | `1280` | Viewport genişlik |
66
- | `BROWSER_VIEWPORT_HEIGHT` | `720` | Viewport yükseklik |
67
- | `RATE_LIMIT_ENABLED` | `true` | Rate limit aktif |
68
- | `RATE_LIMIT_GLOBAL_RPM` | `120` | Global istek/dakika limiti |
69
- | `RATE_LIMIT_PER_TOOL_RPM` | `30` | Tool başına istek/dakika limiti |
70
- | `CACHE_MAX_ENTRIES` | `100` | Maksimum cache kaydı |
71
- | `CACHE_TTL_SECONDS` | `300` | Cache TTL (saniye) |
72
- | `SECURITY_ALLOWED_DIRS` | `[]` | İzin verilen dizinler (JSON array) |
73
- | `SECURITY_MAX_MEMORY_MB` | `512` | Maksimum bellek (MB) |
64
+ **Toplam: 40+ tool, 9 kategori, production-grade mimari**
74
65
 
75
- ## Tool Listesi
66
+ ### Ne Yapabilir?
76
67
 
77
- ### Navigation (5)
78
- `browser_navigate`, `browser_go_back`, `browser_go_forward`, `browser_refresh`, `browser_wait_for`
68
+ - **Reverse Engineering**: JS deobfuscation, API auth analizi, network isteklerini HAR formatında export
69
+ - **Web Scraping**: Cloudflare koruması olmayan sitelerden HTML/Markdown/text çekme, tablo ve Schema.org yapılandırılmış veri extraction
70
+ - **Network Monitoring**: HTTP/HTTPS isteklerini gerçek zamanlı yakalama, WebSocket frame'lerini izleme, binary body'leri diske kaydetme
71
+ - **Form Automation**: Login formları, search, multi-step form doldurma, dosya upload
72
+ - **Session Yönetimi**: Her biri izole, aynı anda birden çok browser session'ı yönetme, otomatik TTL ile cleanup
73
+ - **Güvenlik**: SSRF koruması (internal IP bloklama, DNS rebind engelleme, redirect bypass koruması), path traversal engelleme, MIME tabanlı extension blocklist, cookie leak koruması
74
+ - **Data Export**: network capture'ları HAR/JSON/CSV export, body save, WS frame save (.jsonl)
75
+ - **Observability**: Structured JSON logging, tool metrikleri (call count, süre, hata), LRU cache + TTL
76
+ - **Rate Limiting**: Token bucket, global + per-tool, yapılandırılabilir RPM
79
77
 
80
- ### Interaction (8)
81
- `browser_click`, `browser_fill`, `browser_select`, `browser_hover`, `browser_drag`, `browser_type`, `browser_press_key`, `browser_file_upload`
78
+ ### Ne Yapamaz? (Mevcut Sınırlamalar)
82
79
 
83
- ### Extraction (4+)
84
- `browser_extract_html`, `browser_extract_markdown`, `browser_extract_text`, `browser_extract_with_css`, `browser_extract_table`, `browser_extract_schema_org`, `browser_extract_open_graph`
80
+ - **Cloudflare/anti-bot korumalı siteler**: Challenge sayfalarını geçemez, manuel çözüm gerekir
81
+ - **Captcha çözümü**: Dahili captcha çözücü yoktur (üçüncü parti servislerle entegre edilebilir)
82
+ - **Görsel tanıma**: Screenshot alabilir ama içeriği yorumlayamaz
83
+ - **Native dosya indirme**: `browser_download` URL bazlıdır, Playwright native download event'ini kapsamaz
84
+ - **Canvas/WebGL fingerprinting**: Temel fingerprint değişir ama gelişmiş anti-bot sistemlerini geçemeyebilir
85
+ - **Mobil browser simülasyonu**: Sadece Chromium desktop, mobile viewport taklidi yapabilir
85
86
 
86
- ### Network (5)
87
- `browser_network_requests`, `browser_network_response`, `browser_get_console`, `browser_handle_dialog`, `browser_wait_for_navigation`
87
+ ### Güvenlik Özellikleri
88
88
 
89
- ### Browser Control (7)
90
- `browser_screenshot`, `browser_page_info`, `browser_get_cookies`, `browser_set_cookie`, `browser_delete_cookie`, `browser_evaluate`, `browser_pdf`
89
+ - `redirect: 'manual'` tüm URL fetch çağrılarında — SSRF redirect bypass koruması
90
+ - `validateUrlAsync` DNS lookup DNS rebind saldırılarına karşı
91
+ - `DANGEROUS_EXTENSIONS` blocklist (.exe, .bat, .sh vb) → güvenli `.bin` fallback
92
+ - Pseudo-FS path blocking (`/proc/`, `/sys/`, `/etc/` vb)
93
+ - Cookie header filtresi — Stage 3 HTTP re-fetch'te cross-origin credential sızıntısı önlenir
94
+ - `downloadEnabled` varsayılan **false** — kullanıcı açıkça enable etmeden download çalışmaz
95
+ - Input sanitizasyonu (null byte, path traversal, fileName injection)
91
96
 
92
- ### Session Management (3)
93
- `browser_open_session`, `browser_close_session`, `browser_list_sessions`
97
+ ### MCP Client Uyumluluğu
94
98
 
95
- ### Admin (3)
96
- `browser_server_status`, `browser_cache_stats`, `browser_clear_cache`
99
+ Claude Desktop, Cursor, VS Code (Cline, Roo Code), Continue.dev, özel MCP istemcileri — protocol uyumlu tüm platformlar.
97
100
 
98
- ### RE Tools (4)
99
- `browser_js_beautify`, `browser_js_deobfuscate`, `browser_api_discover`, `browser_auth_analyze`
101
+ ---
100
102
 
101
- ### Stealth (2)
102
- `browser_fingerprint`, `browser_human_behavior`
103
+ ## Daha Fazlası Yolda
103
104
 
104
- **Toplam**: 40+ tool, 9 kategori
105
+ Bu proje aktif geliştirme aşamasındadır. Kısa süre içinde:
106
+
107
+ - **Yeni tool'lar**: PDF extraction, screenshot annotation, form detection, cookie manager, session snapshot/restore
108
+ - **Cloudflare bypass**: Playwright Stealth entegrasyonu, rotatable proxy desteği
109
+ - **Batch scraping**: Çoklu sayfa scraping pipeline, queue sistemi
110
+ - **Performance**: Ring buffer optimizasyonu, streaming response, lazy evaluation
111
+ - **Developer Experience**: Interaktif CLI, playground UI, type-safe client SDK
112
+
113
+ ---
105
114
 
106
115
  ## Geliştirme
107
116
 
@@ -110,32 +119,13 @@ docker run --rm -i browser-mcp
110
119
  npm test
111
120
  npm run test:coverage
112
121
 
113
- # Type check
122
+ # Type check (tsc --noEmit)
114
123
  npm run lint
115
124
 
116
125
  # Build
117
126
  npm run build
118
127
  ```
119
128
 
120
- ## Mimari
121
-
122
- ```
123
- src/
124
- core/ # Config, rate-limit, cache, session, sandbox, logger, metrics
125
- tools/ # Tool implementasyonları (kategori bazlı)
126
- navigation/ # Sayfa navigasyonu
127
- interaction/ # Kullanıcı etkileşimi
128
- extraction/ # Veri çıkarma
129
- network/ # Network izleme
130
- browser/ # Browser kontrol
131
- session/ # Session yönetimi
132
- admin/ # Server yönetimi
133
- re/ # Reverse engineering
134
- stealth/ # Anti-detection
135
- prompts/ # Prompt şablonları
136
- index.ts # Entry point
137
- ```
138
-
139
129
  ## Lisans
140
130
 
141
131
  MIT
@@ -0,0 +1,19 @@
1
+ import type { RichEntry } from './network-capture.js';
2
+ import type { NetworkConfig } from './config.js';
3
+ import { ErrorCode } from './errors.js';
4
+ export type BodyFetchResult = {
5
+ body: Buffer;
6
+ source: 'cache' | 'ref' | 'http';
7
+ truncated: boolean;
8
+ };
9
+ export declare class BodyFetchService {
10
+ private config;
11
+ constructor(config: NetworkConfig);
12
+ fetch(entry: RichEntry, getResponseRef?: () => Promise<{
13
+ body: () => Promise<Buffer>;
14
+ } | null>): Promise<BodyFetchResult | {
15
+ error: string;
16
+ code: ErrorCode;
17
+ }>;
18
+ }
19
+ //# sourceMappingURL=body-fetch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"body-fetch.d.ts","sourceRoot":"","sources":["../../src/core/body-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAIxC,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;IACjC,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,qBAAa,gBAAgB;IACf,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAEnC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,eAAe,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC;CA0DrK"}
@@ -0,0 +1,73 @@
1
+ import { ErrorCode } from './errors.js';
2
+ import { validateUrl } from './sandbox.js';
3
+ import { logger } from './logger.js';
4
+ export class BodyFetchService {
5
+ config;
6
+ constructor(config) {
7
+ this.config = config;
8
+ }
9
+ async fetch(entry, getResponseRef) {
10
+ if (entry.responseBody) {
11
+ try {
12
+ const buf = Buffer.from(entry.responseBody, 'base64');
13
+ return { body: buf, source: 'cache', truncated: false };
14
+ }
15
+ catch {
16
+ logger.debug('body-fetch corrupted base64 in cache, falling through');
17
+ }
18
+ }
19
+ if (getResponseRef) {
20
+ try {
21
+ const ref = await getResponseRef();
22
+ if (ref) {
23
+ const buf = await ref.body();
24
+ return { body: buf, source: 'ref', truncated: false };
25
+ }
26
+ }
27
+ catch {
28
+ logger.debug('body-fetch ref expired or unavailable, falling through');
29
+ }
30
+ }
31
+ try {
32
+ const headers = {};
33
+ for (const [k, v] of Object.entries(entry.requestHeaders)) {
34
+ const lk = k.toLowerCase();
35
+ if (['accept', 'accept-language', 'range'].includes(lk)) {
36
+ headers[k] = v;
37
+ }
38
+ }
39
+ const urlCheck = validateUrl(entry.url);
40
+ if (!urlCheck.valid) {
41
+ return { error: 'SSRF blocked: ' + urlCheck.error, code: ErrorCode.NETWORK_RESPONSE_FAILED };
42
+ }
43
+ const controller = new AbortController();
44
+ const timeout = setTimeout(() => controller.abort(), 30000);
45
+ try {
46
+ const response = await fetch(entry.url, {
47
+ method: entry.method,
48
+ headers: Object.keys(headers).length > 0 ? headers : undefined,
49
+ signal: controller.signal,
50
+ redirect: 'manual',
51
+ });
52
+ if (!response.ok && response.status >= 400) {
53
+ return { error: `HTTP ${response.status} re-fetch failed`, code: ErrorCode.NETWORK_RESPONSE_FAILED };
54
+ }
55
+ const contentLength = response.headers.get('content-length');
56
+ const maxSize = this.config.maxDownloadSize;
57
+ if (contentLength && parseInt(contentLength, 10) > maxSize) {
58
+ return { error: `Response too large (${contentLength} bytes, max: ${maxSize})`, code: ErrorCode.INVALID_ARGS };
59
+ }
60
+ const buf = Buffer.from(await response.arrayBuffer());
61
+ return { body: buf, source: 'http', truncated: false };
62
+ }
63
+ finally {
64
+ clearTimeout(timeout);
65
+ }
66
+ }
67
+ catch (err) {
68
+ const message = err instanceof Error ? err.message : String(err);
69
+ return { error: `HTTP re-fetch failed: ${message}`, code: ErrorCode.NETWORK_RESPONSE_FAILED };
70
+ }
71
+ }
72
+ }
73
+ //# sourceMappingURL=body-fetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"body-fetch.js","sourceRoot":"","sources":["../../src/core/body-fetch.ts"],"names":[],"mappings":"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"}
@@ -85,6 +85,9 @@ declare const NetworkConfigSchema: z.ZodObject<{
85
85
  websocketMaxFramePayloadSize: z.ZodDefault<z.ZodNumber>;
86
86
  maxMemoryBudgetMb: z.ZodDefault<z.ZodNumber>;
87
87
  captureRequestBody: z.ZodDefault<z.ZodBoolean>;
88
+ downloadDir: z.ZodDefault<z.ZodString>;
89
+ maxDownloadSize: z.ZodDefault<z.ZodNumber>;
90
+ downloadEnabled: z.ZodDefault<z.ZodBoolean>;
88
91
  }, "strip", z.ZodTypeAny, {
89
92
  maxEntries: number;
90
93
  maxResponseBodySize: number;
@@ -97,6 +100,9 @@ declare const NetworkConfigSchema: z.ZodObject<{
97
100
  websocketMaxFramePayloadSize: number;
98
101
  maxMemoryBudgetMb: number;
99
102
  captureRequestBody: boolean;
103
+ downloadDir: string;
104
+ maxDownloadSize: number;
105
+ downloadEnabled: boolean;
100
106
  }, {
101
107
  maxEntries?: number | undefined;
102
108
  maxResponseBodySize?: number | undefined;
@@ -109,6 +115,9 @@ declare const NetworkConfigSchema: z.ZodObject<{
109
115
  websocketMaxFramePayloadSize?: number | undefined;
110
116
  maxMemoryBudgetMb?: number | undefined;
111
117
  captureRequestBody?: boolean | undefined;
118
+ downloadDir?: string | undefined;
119
+ maxDownloadSize?: number | undefined;
120
+ downloadEnabled?: boolean | undefined;
112
121
  }>;
113
122
  export type NetworkConfig = z.infer<typeof NetworkConfigSchema>;
114
123
  export { NetworkConfigSchema };
@@ -230,6 +239,9 @@ declare const ServerConfigSchema: z.ZodObject<{
230
239
  websocketMaxFramePayloadSize: z.ZodDefault<z.ZodNumber>;
231
240
  maxMemoryBudgetMb: z.ZodDefault<z.ZodNumber>;
232
241
  captureRequestBody: z.ZodDefault<z.ZodBoolean>;
242
+ downloadDir: z.ZodDefault<z.ZodString>;
243
+ maxDownloadSize: z.ZodDefault<z.ZodNumber>;
244
+ downloadEnabled: z.ZodDefault<z.ZodBoolean>;
233
245
  }, "strip", z.ZodTypeAny, {
234
246
  maxEntries: number;
235
247
  maxResponseBodySize: number;
@@ -242,6 +254,9 @@ declare const ServerConfigSchema: z.ZodObject<{
242
254
  websocketMaxFramePayloadSize: number;
243
255
  maxMemoryBudgetMb: number;
244
256
  captureRequestBody: boolean;
257
+ downloadDir: string;
258
+ maxDownloadSize: number;
259
+ downloadEnabled: boolean;
245
260
  }, {
246
261
  maxEntries?: number | undefined;
247
262
  maxResponseBodySize?: number | undefined;
@@ -254,6 +269,9 @@ declare const ServerConfigSchema: z.ZodObject<{
254
269
  websocketMaxFramePayloadSize?: number | undefined;
255
270
  maxMemoryBudgetMb?: number | undefined;
256
271
  captureRequestBody?: boolean | undefined;
272
+ downloadDir?: string | undefined;
273
+ maxDownloadSize?: number | undefined;
274
+ downloadEnabled?: boolean | undefined;
257
275
  }>>;
258
276
  }, "strip", z.ZodTypeAny, {
259
277
  browser: {
@@ -296,6 +314,9 @@ declare const ServerConfigSchema: z.ZodObject<{
296
314
  websocketMaxFramePayloadSize: number;
297
315
  maxMemoryBudgetMb: number;
298
316
  captureRequestBody: boolean;
317
+ downloadDir: string;
318
+ maxDownloadSize: number;
319
+ downloadEnabled: boolean;
299
320
  };
300
321
  }, {
301
322
  browser?: {
@@ -338,6 +359,9 @@ declare const ServerConfigSchema: z.ZodObject<{
338
359
  websocketMaxFramePayloadSize?: number | undefined;
339
360
  maxMemoryBudgetMb?: number | undefined;
340
361
  captureRequestBody?: boolean | undefined;
362
+ downloadDir?: string | undefined;
363
+ maxDownloadSize?: number | undefined;
364
+ downloadEnabled?: boolean | undefined;
341
365
  } | undefined;
342
366
  }>;
343
367
  export type ServerConfig = z.infer<typeof ServerConfigSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,QAAA,MAAM,cAAc;;;;;;;;;EAGlB,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAG5D,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMvB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAGhE,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;EAKzB,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAGpE,QAAA,MAAM,iBAAiB;;;;;;;;;EAGrB,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAG5D,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYvB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAG/B,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;EAOxB,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAGlE,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMtB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;AAE9D,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAC;IACT,MAAM,EAAE,YAAY,CAAC;CACtB;AAqKD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAItE;AAED,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,IAAI,CA8BlD;AAED,wBAAgB,YAAY,CAC1B,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,EACjC,SAAS,EAAE;IACT,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACpC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CACjC,EACD,QAAQ,EAAE,YAAY,GACrB,YAAY,CAQd;AAED,wBAAgB,UAAU,IAAI,YAAY,CAezC;AAED,wBAAgB,SAAS,IAAI,YAAY,CAKxC;AAED,gBAAgB;AAChB,wBAAgB,YAAY,IAAI,YAAY,CAG3C"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,QAAA,MAAM,cAAc;;;;;;;;;EAGlB,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAG5D,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMvB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAGhE,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;EAKzB,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAGpE,QAAA,MAAM,iBAAiB;;;;;;;;;EAGrB,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAG5D,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAevB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAG/B,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;EAOxB,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAGlE,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMtB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;AAE9D,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAC;IACT,MAAM,EAAE,YAAY,CAAC;CACtB;AA2KD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAItE;AAED,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,IAAI,CA8BlD;AAED,wBAAgB,YAAY,CAC1B,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,EACjC,SAAS,EAAE;IACT,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACpC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CACjC,EACD,QAAQ,EAAE,YAAY,GACrB,YAAY,CAQd;AAED,wBAAgB,UAAU,IAAI,YAAY,CAezC;AAED,wBAAgB,SAAS,IAAI,YAAY,CAKxC;AAED,gBAAgB;AAChB,wBAAgB,YAAY,IAAI,YAAY,CAG3C"}
@@ -1,6 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import * as fs from 'node:fs';
3
3
  import * as path from 'node:path';
4
+ import { logger } from './logger.js';
4
5
  const DEFAULT_MAX_SESSIONS = 10;
5
6
  // Viewport
6
7
  const ViewportSchema = z.object({
@@ -40,6 +41,9 @@ const NetworkConfigSchema = z.object({
40
41
  websocketMaxFramePayloadSize: z.number().int().min(1024).max(10485760).default(65536),
41
42
  maxMemoryBudgetMb: z.number().int().min(1).max(65536).default(256),
42
43
  captureRequestBody: z.boolean().default(false),
44
+ downloadDir: z.string().default('./downloads'),
45
+ maxDownloadSize: z.number().int().min(1024).max(1073741824).default(104857600),
46
+ downloadEnabled: z.boolean().default(false),
43
47
  });
44
48
  export { NetworkConfigSchema };
45
49
  // Security
@@ -89,7 +93,7 @@ function parseJsonArray(raw, fallback) {
89
93
  return fallback;
90
94
  }
91
95
  catch {
92
- // silently handled
96
+ logger.debug('parseJsonArray fallback after parse error', { raw });
93
97
  return fallback;
94
98
  }
95
99
  }
@@ -142,6 +146,9 @@ function buildNetworkConfig() {
142
146
  websocketMaxFramePayloadSize: parseIntOpt(env('NETWORK_WS_MAX_FRAME_SIZE'), 65536),
143
147
  maxMemoryBudgetMb: parseIntOpt(env('NETWORK_MAX_MEMORY_MB'), 256),
144
148
  captureRequestBody: parseBool(env('NETWORK_CAPTURE_REQUEST_BODY'), false),
149
+ downloadDir: env('NETWORK_DOWNLOAD_DIR') ?? './downloads',
150
+ maxDownloadSize: parseIntOpt(env('NETWORK_MAX_DOWNLOAD_SIZE'), 104857600),
151
+ downloadEnabled: parseBool(env('NETWORK_DOWNLOAD_ENABLED'), false),
145
152
  };
146
153
  }
147
154
  function buildSecurityConfig() {
@@ -198,6 +205,9 @@ function buildEnvPartialNetwork() {
198
205
  ['NETWORK_WS_MAX_FRAME_SIZE', 'websocketMaxFramePayloadSize', (v) => parseIntOpt(v, 65536)],
199
206
  ['NETWORK_MAX_MEMORY_MB', 'maxMemoryBudgetMb', (v) => parseIntOpt(v, 256)],
200
207
  ['NETWORK_CAPTURE_REQUEST_BODY', 'captureRequestBody', (v) => parseBool(v, false)],
208
+ ['NETWORK_DOWNLOAD_DIR', 'downloadDir', (v) => v],
209
+ ['NETWORK_MAX_DOWNLOAD_SIZE', 'maxDownloadSize', (v) => parseIntOpt(v, 104857600)],
210
+ ['NETWORK_DOWNLOAD_ENABLED', 'downloadEnabled', (v) => parseBool(v, false)],
201
211
  ]);
202
212
  }
203
213
  function buildEnvPartialSecurity() {
@@ -223,7 +233,7 @@ export function discoverConfigFile() {
223
233
  return envPath;
224
234
  }
225
235
  catch {
226
- // fall through
236
+ logger.debug('discoverConfigFile env path not accessible', { envPath });
227
237
  }
228
238
  }
229
239
  const cwd = process.cwd();
@@ -240,7 +250,7 @@ export function discoverConfigFile() {
240
250
  return fullPath;
241
251
  }
242
252
  catch {
243
- // not found
253
+ logger.debug('discoverConfigFile candidate not found', { candidate: fullPath });
244
254
  }
245
255
  }
246
256
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const DANGEROUS_EXTENSIONS: string[];
2
+ export declare function mimeToExtension(mimeType: string, url?: string, resourceType?: string): string;
3
+ //# sourceMappingURL=mime-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mime-types.d.ts","sourceRoot":"","sources":["../../src/core/mime-types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,UAA0E,CAAC;AA+E5G,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAgC7F"}