@pyrokine/mcp-chrome 1.1.0 → 1.4.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 (91) hide show
  1. package/README.md +130 -54
  2. package/dist/anti-detection/behavior.d.ts +0 -8
  3. package/dist/anti-detection/behavior.d.ts.map +1 -1
  4. package/dist/anti-detection/behavior.js +0 -16
  5. package/dist/anti-detection/behavior.js.map +1 -1
  6. package/dist/cdp/client.d.ts +0 -2
  7. package/dist/cdp/client.d.ts.map +1 -1
  8. package/dist/cdp/client.js +30 -45
  9. package/dist/cdp/client.js.map +1 -1
  10. package/dist/cdp/launcher.d.ts +1 -8
  11. package/dist/cdp/launcher.d.ts.map +1 -1
  12. package/dist/cdp/launcher.js +11 -21
  13. package/dist/cdp/launcher.js.map +1 -1
  14. package/dist/core/auto-wait.d.ts +2 -2
  15. package/dist/core/auto-wait.d.ts.map +1 -1
  16. package/dist/core/auto-wait.js +1 -1
  17. package/dist/core/auto-wait.js.map +1 -1
  18. package/dist/core/errors.d.ts +10 -13
  19. package/dist/core/errors.d.ts.map +1 -1
  20. package/dist/core/errors.js +19 -25
  21. package/dist/core/errors.js.map +1 -1
  22. package/dist/core/locator.d.ts +6 -7
  23. package/dist/core/locator.d.ts.map +1 -1
  24. package/dist/core/locator.js +77 -31
  25. package/dist/core/locator.js.map +1 -1
  26. package/dist/core/retry.d.ts.map +1 -1
  27. package/dist/core/retry.js +1 -1
  28. package/dist/core/retry.js.map +1 -1
  29. package/dist/core/session.d.ts +37 -33
  30. package/dist/core/session.d.ts.map +1 -1
  31. package/dist/core/session.js +159 -116
  32. package/dist/core/session.js.map +1 -1
  33. package/dist/core/types.d.ts +25 -1
  34. package/dist/core/types.d.ts.map +1 -1
  35. package/dist/core/types.js +20 -0
  36. package/dist/core/types.js.map +1 -1
  37. package/dist/core/unified-session.d.ts +105 -67
  38. package/dist/core/unified-session.d.ts.map +1 -1
  39. package/dist/core/unified-session.js +347 -186
  40. package/dist/core/unified-session.js.map +1 -1
  41. package/dist/extension/bridge.d.ts +25 -19
  42. package/dist/extension/bridge.d.ts.map +1 -1
  43. package/dist/extension/bridge.js +29 -52
  44. package/dist/extension/bridge.js.map +1 -1
  45. package/dist/extension/http-server.d.ts +13 -11
  46. package/dist/extension/http-server.d.ts.map +1 -1
  47. package/dist/extension/http-server.js +101 -95
  48. package/dist/extension/http-server.js.map +1 -1
  49. package/dist/index.js +18 -64
  50. package/dist/index.js.map +1 -1
  51. package/dist/tools/browse.d.ts +3 -80
  52. package/dist/tools/browse.d.ts.map +1 -1
  53. package/dist/tools/browse.js +135 -291
  54. package/dist/tools/browse.js.map +1 -1
  55. package/dist/tools/cookies.d.ts +3 -71
  56. package/dist/tools/cookies.d.ts.map +1 -1
  57. package/dist/tools/cookies.js +75 -157
  58. package/dist/tools/cookies.js.map +1 -1
  59. package/dist/tools/evaluate.d.ts +3 -52
  60. package/dist/tools/evaluate.d.ts.map +1 -1
  61. package/dist/tools/evaluate.js +35 -86
  62. package/dist/tools/evaluate.js.map +1 -1
  63. package/dist/tools/extract.d.ts +5 -227
  64. package/dist/tools/extract.d.ts.map +1 -1
  65. package/dist/tools/extract.js +586 -184
  66. package/dist/tools/extract.js.map +1 -1
  67. package/dist/tools/index.d.ts +9 -9
  68. package/dist/tools/index.d.ts.map +1 -1
  69. package/dist/tools/index.js +9 -9
  70. package/dist/tools/index.js.map +1 -1
  71. package/dist/tools/input.d.ts +3 -258
  72. package/dist/tools/input.d.ts.map +1 -1
  73. package/dist/tools/input.js +95 -147
  74. package/dist/tools/input.js.map +1 -1
  75. package/dist/tools/logs.d.ts +3 -51
  76. package/dist/tools/logs.d.ts.map +1 -1
  77. package/dist/tools/logs.js +47 -108
  78. package/dist/tools/logs.js.map +1 -1
  79. package/dist/tools/manage.d.ts +3 -64
  80. package/dist/tools/manage.d.ts.map +1 -1
  81. package/dist/tools/manage.js +243 -373
  82. package/dist/tools/manage.js.map +1 -1
  83. package/dist/tools/schema.d.ts +16 -182
  84. package/dist/tools/schema.d.ts.map +1 -1
  85. package/dist/tools/schema.js +70 -159
  86. package/dist/tools/schema.js.map +1 -1
  87. package/dist/tools/wait.d.ts +3 -221
  88. package/dist/tools/wait.d.ts.map +1 -1
  89. package/dist/tools/wait.js +74 -145
  90. package/dist/tools/wait.js.map +1 -1
  91. package/package.json +1 -1
package/README.md CHANGED
@@ -2,7 +2,8 @@
2
2
 
3
3
  English | [中文](README_zh.md)
4
4
 
5
- Chrome browser automation MCP Server with dual-mode architecture: **Extension mode** (recommended) controls your existing browser, **CDP mode** (fallback) launches a dedicated instance.
5
+ Chrome browser automation MCP Server with dual-mode architecture: **Extension mode** (recommended) controls your
6
+ existing browser, **CDP mode** (fallback) launches a dedicated instance.
6
7
 
7
8
  [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
8
9
  [![Node](https://img.shields.io/badge/node-%3E%3D18-green.svg)](https://nodejs.org/)
@@ -17,7 +18,8 @@ Chrome browser automation MCP Server with dual-mode architecture: **Extension mo
17
18
  - **Semantic Targeting**: 11 ways to locate elements (role, text, label, css, css+text combo, xpath, coordinates, etc.)
18
19
  - **Auto-Wait**: Built-in clickability and input-ready detection with deadline-based timeout budget
19
20
  - **Dual Input Mode**: `precise` (debugger API, bypasses CSP) or `stealth` (JS injection, no debug banner)
20
- - **Smart Output**: Bare `return` auto-wrapped in IIFE; large results (>100KB) auto-saved to file; `output` writes raw text for strings
21
+ - **Smart Output**: Bare `return` auto-wrapped in IIFE; large results (>100KB) auto-saved to file; `output` writes raw
22
+ text for strings
21
23
  - **Multi-Server**: Extension auto-discovers and connects to multiple MCP Server instances simultaneously
22
24
  - **Anti-Detection**: Optional fingerprint masking and behavior simulation
23
25
  - **Structured Errors**: Every error includes code, message, suggestion, and context
@@ -81,7 +83,8 @@ claude mcp add chrome -- node /path/to/mcp-chrome/dist/index.js
81
83
 
82
84
  **Step 3: Connect**
83
85
 
84
- The Extension auto-connects to the MCP Server via HTTP/WebSocket (port 19222-19299). Click the toolbar icon to verify connection status.
86
+ The Extension auto-connects to the MCP Server via HTTP/WebSocket (port 19222-19299). Click the toolbar icon to verify
87
+ connection status.
85
88
 
86
89
  ```
87
90
  browse(action="list") // List all tabs
@@ -91,7 +94,8 @@ extract(type="screenshot")
91
94
 
92
95
  ### Mode 2: CDP Mode (Fallback)
93
96
 
94
- CDP mode launches or connects to a dedicated Chrome instance. Used when the Extension is not installed, or for headless/isolated scenarios.
97
+ CDP mode launches or connects to a dedicated Chrome instance. Used when the Extension is not installed, or for
98
+ headless/isolated scenarios.
95
99
 
96
100
  ```bash
97
101
  # Start Chrome with remote debugging
@@ -103,25 +107,27 @@ browse(action="connect", port=9222)
103
107
  browse(action="open", url="https://example.com")
104
108
  ```
105
109
 
106
- > When the Extension is connected, all tools use Extension mode automatically. CDP mode activates only when the Extension is unavailable.
110
+ > When the Extension is connected, all tools use Extension mode automatically. CDP mode activates only when the
111
+ > Extension is unavailable.
107
112
 
108
113
  ## Available Tools (8 Tools)
109
114
 
110
115
  ### browse - Browser Management & Navigation
111
116
 
112
- | Action | Description |
113
- |-----------|------------------------------------------------|
114
- | `launch` | Launch new Chrome instance (CDP mode) |
115
- | `connect` | Connect to running Chrome (CDP mode) |
116
- | `list` | List all pages/tabs |
117
- | `attach` | Attach to a specific page/tab |
118
- | `open` | Navigate to URL |
119
- | `back` | Go back in history |
120
- | `forward` | Go forward in history |
121
- | `refresh` | Reload page |
122
- | `close` | Close browser connection |
123
-
124
- Extension-specific: `list` returns `managed` field (whether tab is in MCP Chrome group) and `isActive` field (whether it's the current operation target). `open` auto-creates tab group (cyan color).
117
+ | Action | Description |
118
+ |-----------|---------------------------------------|
119
+ | `launch` | Launch new Chrome instance (CDP mode) |
120
+ | `connect` | Connect to running Chrome (CDP mode) |
121
+ | `list` | List all pages/tabs |
122
+ | `attach` | Attach to a specific page/tab |
123
+ | `open` | Navigate to URL |
124
+ | `back` | Go back in history |
125
+ | `forward` | Go forward in history |
126
+ | `refresh` | Reload page |
127
+ | `close` | Close browser connection |
128
+
129
+ Extension-specific: `list` returns `managed` field (whether tab is in MCP Chrome group) and `isActive` field (whether
130
+ it's the current operation target). `open` auto-creates tab group (cyan color).
125
131
 
126
132
  ### input - Keyboard & Mouse Input
127
133
 
@@ -130,6 +136,7 @@ Event sequence model supporting arbitrary combinations:
130
136
  | Event Type | Description |
131
137
  |-----------------------------------------|----------------------------|
132
138
  | `keydown` / `keyup` | Key press/release |
139
+ | `click` | Click (mousedown + mouseup) |
133
140
  | `mousedown` / `mouseup` | Mouse button press/release |
134
141
  | `mousemove` | Mouse movement |
135
142
  | `wheel` | Mouse wheel scroll |
@@ -137,7 +144,8 @@ Event sequence model supporting arbitrary combinations:
137
144
  | `type` | Type text |
138
145
  | `wait` | Pause between events |
139
146
 
140
- Parameters: `humanize` enables Bézier curve movement and random delays. `tabId` targets a specific tab. `frame` targets an iframe (CSS selector or index). Both Extension mode only.
147
+ Parameters: `humanize` enables Bézier curve movement and random delays. `tabId` targets a specific tab. `frame` targets
148
+ an iframe (CSS selector or index). Both Extension mode only.
141
149
 
142
150
  ### extract - Content Extraction
143
151
 
@@ -146,10 +154,12 @@ Parameters: `humanize` enables Bézier curve movement and random delays. `tabId`
146
154
  | `text` | Extract text content |
147
155
  | `html` | Extract HTML source |
148
156
  | `attribute` | Extract element attribute |
149
- | `screenshot` | Take screenshot |
157
+ | `screenshot` | Take screenshot (supports `target` element crop) |
150
158
  | `state` | Get page state (URL, title, interactive elements) |
159
+ | `metadata` | Extract page metadata (title, OG, JSON-LD, etc.) |
151
160
 
152
- Parameters: `output` saves result to file. `tabId` targets a specific tab. `frame` targets an iframe. Both Extension mode only.
161
+ Parameters: `output` saves result to file (or directory for `images=data`). `images` (`info`/`data`) extracts image
162
+ metadata or data alongside HTML. `tabId` targets a specific tab. `frame` targets an iframe. Both Extension mode only.
153
163
 
154
164
  ### wait - Wait for Conditions
155
165
 
@@ -166,31 +176,31 @@ Parameters: `tabId` targets a specific tab. `frame` targets an iframe. Both Exte
166
176
 
167
177
  Execute JavaScript in page context.
168
178
 
169
- | Parameter | Description |
170
- |-----------|------------------------------------------------------------------------------------|
171
- | `script` | JavaScript code (required). Bare `return` statements auto-wrapped in IIFE |
172
- | `args` | Arguments passed to script (script must be a function expression) |
173
- | `mode` | `precise` (default, debugger API) or `stealth` (JS injection) |
174
- | `output` | Save result to file (strings written as raw text, others as JSON) |
175
- | `tabId` | Target a specific tab (Extension mode) |
176
- | `frame` | Target an iframe by CSS selector or index (Extension mode) |
177
- | `timeout` | End-to-end budget (ms) |
179
+ | Parameter | Description |
180
+ |-----------|---------------------------------------------------------------------------|
181
+ | `script` | JavaScript code (required). Bare `return` statements auto-wrapped in IIFE |
182
+ | `args` | Arguments passed to script (script must be a function expression) |
183
+ | `mode` | `precise` (default, debugger API) or `stealth` (JS injection) |
184
+ | `output` | Save result to file (strings written as raw text, others as JSON) |
185
+ | `tabId` | Target a specific tab (Extension mode) |
186
+ | `frame` | Target an iframe by CSS selector or index (Extension mode) |
187
+ | `timeout` | End-to-end budget (ms) |
178
188
 
179
189
  Results >100KB are auto-saved to `/tmp/` with a structured hint returned.
180
190
 
181
191
  ### manage - Page & Environment Management
182
192
 
183
- | Action | Description |
184
- |--------------|----------------------------------------------------------------|
185
- | `newPage` | Create new page/tab |
186
- | `closePage` | Close page |
187
- | `clearCache` | Clear cache/cookies/storage |
188
- | `viewport` | Set viewport size |
189
- | `userAgent` | Set User-Agent |
190
- | `emulate` | Device emulation (iPhone, iPad, etc.) |
191
- | `inputMode` | Query or set input mode (`precise` / `stealth`) |
192
- | `stealth` | Inject anti-detection scripts |
193
- | `cdp` | Send raw CDP command (advanced, e.g. `Runtime.evaluate`) |
193
+ | Action | Description |
194
+ |--------------|----------------------------------------------------------|
195
+ | `newPage` | Create new page/tab |
196
+ | `closePage` | Close page |
197
+ | `clearCache` | Clear cache/cookies/storage |
198
+ | `viewport` | Set viewport size |
199
+ | `userAgent` | Set User-Agent |
200
+ | `emulate` | Device emulation (iPhone, iPad, etc.) |
201
+ | `inputMode` | Query or set input mode (`precise` / `stealth`) |
202
+ | `stealth` | Inject anti-detection scripts |
203
+ | `cdp` | Send raw CDP command (advanced, e.g. `Runtime.evaluate`) |
194
204
 
195
205
  ### logs - Browser Logs
196
206
 
@@ -199,7 +209,8 @@ Results >100KB are auto-saved to `/tmp/` with a structured hint returned.
199
209
  | `console` | Console logs (with level filter) |
200
210
  | `network` | Network request logs (with URL filter) |
201
211
 
202
- Parameters: `output` saves result to file. `tabId` targets a specific tab (Extension mode). `frame` is not applicable for logs.
212
+ Parameters: `output` saves result to file. `tabId` targets a specific tab (Extension mode). `frame` is not applicable
213
+ for logs.
203
214
 
204
215
  ### cookies - Cookie Management
205
216
 
@@ -216,37 +227,76 @@ All tools use a unified `Target` type for element location:
216
227
 
217
228
  ```typescript
218
229
  // By accessibility (recommended - most stable)
219
- { role: "button", name: "Submit" }
230
+ {
231
+ role: "button", name
232
+ :
233
+ "Submit"
234
+ }
220
235
 
221
236
  // By text content
222
- { text: "Click here", exact: true }
237
+ {
238
+ text: "Click here", exact
239
+ :
240
+ true
241
+ }
223
242
 
224
243
  // By form label
225
- { label: "Email" }
244
+ {
245
+ label: "Email"
246
+ }
226
247
 
227
248
  // By placeholder
228
- { placeholder: "Enter your name" }
249
+ {
250
+ placeholder: "Enter your name"
251
+ }
229
252
 
230
253
  // By title attribute
231
- { title: "Close dialog" }
254
+ {
255
+ title: "Close dialog"
256
+ }
232
257
 
233
258
  // By alt text (images)
234
- { alt: "Profile picture" }
259
+ {
260
+ alt: "Profile picture"
261
+ }
235
262
 
236
263
  // By test ID
237
- { testId: "submit-button" }
264
+ {
265
+ testId: "submit-button"
266
+ }
238
267
 
239
268
  // By CSS selector
240
- { css: "#login-form .submit-btn" }
269
+ {
270
+ css: "#login-form .submit-btn"
271
+ }
272
+
273
+ // Disambiguate multiple matches (0-based)
274
+ {
275
+ css: ".ant-select-input", nth
276
+ :
277
+ 1
278
+ }
241
279
 
242
280
  // By CSS + text (filter by text content)
243
- { css: "button", text: "Submit", exact: true }
281
+ {
282
+ css: "button", text
283
+ :
284
+ "Submit", exact
285
+ :
286
+ true
287
+ }
244
288
 
245
289
  // By XPath
246
- { xpath: "//button[@type='submit']" }
290
+ {
291
+ xpath: "//button[@type='submit']"
292
+ }
247
293
 
248
294
  // By coordinates
249
- { x: 100, y: 200 }
295
+ {
296
+ x: 100, y
297
+ :
298
+ 200
299
+ }
250
300
  ```
251
301
 
252
302
  ## Usage Examples
@@ -292,10 +342,37 @@ evaluate(script="document.title", tabId="12345")
292
342
  // Full page
293
343
  extract(type="screenshot", fullPage=true)
294
344
 
345
+ // Element screenshot (any target type)
346
+ extract(type="screenshot", target={ role: "button", name: "Submit" })
347
+
348
+ // JPEG with quality (smaller file)
349
+ extract(type="screenshot", format="jpeg", quality=80, output="/tmp/screenshot.jpg")
350
+
295
351
  // Save to file
296
352
  extract(type="screenshot", output="/tmp/screenshot.png")
297
353
  ```
298
354
 
355
+ ### Extract HTML with Images
356
+
357
+ ```
358
+ // Get HTML + image metadata (src, alt, dimensions)
359
+ extract(type="html", target={ css: ".article" }, images="info")
360
+
361
+ // Get HTML + image data, save to directory
362
+ extract(type="html", images="data", output="/tmp/page")
363
+ // Creates: /tmp/page/content.html, /tmp/page/images/*, /tmp/page/index.json
364
+
365
+ // Get HTML + image data inline (max 20 images)
366
+ extract(type="html", target={ css: ".card" }, images="data")
367
+ ```
368
+
369
+ ### Page Metadata
370
+
371
+ ```
372
+ // Extract title, OG tags, JSON-LD, feeds, etc.
373
+ extract(type="metadata")
374
+ ```
375
+
299
376
  ### iframe Operations (Extension Mode)
300
377
 
301
378
  ```
@@ -420,4 +497,3 @@ MIT License - see [LICENSE](LICENSE) for details.
420
497
 
421
498
  - [Model Context Protocol](https://modelcontextprotocol.io/) - MCP specification
422
499
  - [Chrome DevTools Protocol](https://chromedevtools.github.io/devtools-protocol/) - CDP documentation
423
-
@@ -46,13 +46,5 @@ export declare class BehaviorSimulator {
46
46
  * 更新当前鼠标位置
47
47
  */
48
48
  setCurrentPosition(point: Point): void;
49
- /**
50
- * 生成人类化的鼠标移动路径
51
- */
52
- generateHumanMousePath(to: Point): Point[];
53
- /**
54
- * 生成人类化的打字延迟序列
55
- */
56
- generateTypingDelays(textLength: number, baseDelay?: number): number[];
57
49
  }
58
50
  //# sourceMappingURL=behavior.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"behavior.d.ts","sourceRoot":"","sources":["../../src/anti-detection/behavior.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAA;AAE3C;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGnE;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAC9B,IAAI,EAAE,KAAK,EACX,EAAE,EAAE,KAAK,EACT,KAAK,CAAC,EAAE,MAAM,GACf,KAAK,EAAE,CA4BT;AAwBD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,GAAE,MAAY,GAAG,MAAM,CAI9D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAG1C;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,eAAe,CAAsB;IAE7C;;OAEG;IACH,kBAAkB,IAAI,KAAK;IAI3B;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAItC;;OAEG;IACH,sBAAsB,CAAC,EAAE,EAAE,KAAK,GAAG,KAAK,EAAE;IAI1C;;OAEG;IACH,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,GAAE,MAAY,GAAG,MAAM,EAAE;CAO9E"}
1
+ {"version":3,"file":"behavior.d.ts","sourceRoot":"","sources":["../../src/anti-detection/behavior.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAA;AAE3C;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGnE;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAC9B,IAAI,EAAE,KAAK,EACX,EAAE,EAAE,KAAK,EACT,KAAK,CAAC,EAAE,MAAM,GACf,KAAK,EAAE,CA4BT;AAwBD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,GAAE,MAAY,GAAG,MAAM,CAI9D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAG1C;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,eAAe,CAAsB;IAE7C;;OAEG;IACH,kBAAkB,IAAI,KAAK;IAI3B;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;CAIzC"}
@@ -93,21 +93,5 @@ export class BehaviorSimulator {
93
93
  setCurrentPosition(point) {
94
94
  this.currentPosition = { ...point };
95
95
  }
96
- /**
97
- * 生成人类化的鼠标移动路径
98
- */
99
- generateHumanMousePath(to) {
100
- return generateBezierPath(this.currentPosition, to);
101
- }
102
- /**
103
- * 生成人类化的打字延迟序列
104
- */
105
- generateTypingDelays(textLength, baseDelay = 100) {
106
- const delays = [];
107
- for (let i = 0; i < textLength; i++) {
108
- delays.push(getTypingDelay(baseDelay));
109
- }
110
- return delays;
111
- }
112
96
  }
113
97
  //# sourceMappingURL=behavior.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"behavior.js","sourceRoot":"","sources":["../../src/anti-detection/behavior.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"behavior.js","sourceRoot":"","sources":["../../src/anti-detection/behavior.ts"],"names":[],"mappings":"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"}
@@ -20,8 +20,6 @@ export declare class CDPClient extends EventEmitter {
20
20
  private nextId;
21
21
  private eventListeners;
22
22
  private activeEventWaiters;
23
- private _endpoint;
24
- get endpoint(): string;
25
23
  get isConnected(): boolean;
26
24
  /**
27
25
  * 连接到 CDP 端点
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/cdp/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAA;AAuBnC;;GAEG;AACH,KAAK,gBAAgB,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;AAElD;;GAEG;AACH,qBAAa,SAAU,SAAQ,YAAY;IACvC,aAAa;IACb,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAQ;IACvD,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,SAAS,CAAgD;IACjE,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,cAAc,CAAiD;IACvE,OAAO,CAAC,kBAAkB,CAA2B;IAErD,OAAO,CAAC,SAAS,CAAgB;IAEjC,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,SAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAgD/D;;OAEG;IACG,IAAI,CAAC,CAAC,GAAG,OAAO,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,GAAE,MAA0C,GACpD,OAAO,CAAC,CAAC,CAAC;IA2Cb;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAOxD;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAOzD;;;;OAIG;IACH,YAAY,CAAC,CAAC,GAAG,OAAO,EACpB,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO,EAClC,OAAO,SAAQ,GAChB,OAAO,CAAC,CAAC,CAAC;IA8Bb;;;;;OAKG;IACH,KAAK,IAAI,IAAI;IAYb;;OAEG;IACH,OAAO,CAAC,aAAa;IAiDrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAcxB;;OAEG;IACH,OAAO,CAAC,WAAW;CAItB;AAKD;;GAEG;AACH,wBAAsB,oBAAoB,CACtC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,MAA6B,GACvC,OAAO,CAAC,MAAM,CAAC,CAyBjB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,MAA6B,GACvC,OAAO,CACN,KAAK,CAAC;IACF,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB,EAAE,MAAM,CAAC;CAChC,CAAC,CACL,CA8BA"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/cdp/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAA;AAwBnC;;GAEG;AACH,KAAK,gBAAgB,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;AAElD;;GAEG;AACH,qBAAa,SAAU,SAAQ,YAAY;IACvC,aAAa;IACb,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAkB;IACjE,OAAO,CAAC,EAAE,CAA4C;IACtD,OAAO,CAAC,SAAS,CAAmE;IACpF,OAAO,CAAC,MAAM,CAAqC;IACnD,OAAO,CAAC,cAAc,CAAoE;IAC1F,OAAO,CAAC,kBAAkB,CAA8C;IAExE,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,SAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8CzE;;OAEG;IACG,IAAI,CAAC,CAAC,GAAG,OAAO,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,GAAE,MAA0C,GACpD,OAAO,CAAC,CAAC,CAAC;IA6Cb;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAOxD;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAOzD;;;;OAIG;IACH,YAAY,CAAC,CAAC,GAAG,OAAO,EACpB,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO,EAClC,OAAO,SAAkB,GAC1B,OAAO,CAAC,CAAC,CAAC;IA8Bb;;;;;OAKG;IACH,KAAK,IAAI,IAAI;IAYb;;OAEG;IACH,OAAO,CAAC,aAAa;IAiDrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAcxB;;OAEG;IACH,OAAO,CAAC,WAAW;CAStB;AAgCD;;GAEG;AACH,wBAAsB,oBAAoB,CACtC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,MAA6B,GACvC,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,MAA6B,GACvC,OAAO,CAAC,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,oBAAoB,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAExG"}
@@ -7,29 +7,25 @@
7
7
  import { EventEmitter } from 'events';
8
8
  import WebSocket from 'ws';
9
9
  import { CDPError, ConnectionRefusedError, TimeoutError } from '../core/errors.js';
10
+ import { DEFAULT_TIMEOUT } from '../core/types.js';
10
11
  /**
11
12
  * CDP 客户端
12
13
  */
13
14
  export class CDPClient extends EventEmitter {
14
15
  /** 默认命令超时 */
15
- static DEFAULT_COMMAND_TIMEOUT = 30000;
16
+ static DEFAULT_COMMAND_TIMEOUT = DEFAULT_TIMEOUT;
16
17
  ws = null;
17
18
  callbacks = new Map();
18
19
  nextId = 1;
19
20
  eventListeners = new Map();
20
21
  activeEventWaiters = new Set();
21
- _endpoint = '';
22
- get endpoint() {
23
- return this._endpoint;
24
- }
25
22
  get isConnected() {
26
23
  return this.ws !== null && this.ws.readyState === WebSocket.OPEN;
27
24
  }
28
25
  /**
29
26
  * 连接到 CDP 端点
30
27
  */
31
- async connect(endpoint, timeout = 30000) {
32
- this._endpoint = endpoint;
28
+ async connect(endpoint, timeout = DEFAULT_TIMEOUT) {
33
29
  return new Promise((resolve, reject) => {
34
30
  const timer = setTimeout(() => {
35
31
  reject(new TimeoutError(`连接超时: ${endpoint} (${timeout}ms)`));
@@ -109,7 +105,9 @@ export class CDPClient extends EventEmitter {
109
105
  catch (err) {
110
106
  clearTimeout(timeoutId);
111
107
  this.callbacks.delete(id);
112
- reject(new CDPError(`Failed to send CDP command ${method}: ${err instanceof Error ? err.message : 'Unknown error'}`));
108
+ reject(new CDPError(`Failed to send CDP command ${method}: ${err instanceof Error ?
109
+ err.message :
110
+ 'Unknown error'}`));
113
111
  }
114
112
  });
115
113
  }
@@ -136,7 +134,7 @@ export class CDPClient extends EventEmitter {
136
134
  *
137
135
  * close()/handleClose() 会立即 reject 所有活跃的等待者,不必等 timer 超时。
138
136
  */
139
- waitForEvent(event, predicate, timeout = 30000) {
137
+ waitForEvent(event, predicate, timeout = DEFAULT_TIMEOUT) {
140
138
  return new Promise((resolve, reject) => {
141
139
  const listener = (params) => {
142
140
  if (!predicate || predicate(params)) {
@@ -239,32 +237,30 @@ export class CDPClient extends EventEmitter {
239
237
  * 处理连接关闭
240
238
  */
241
239
  handleClose() {
240
+ if (this.ws === null) {
241
+ return;
242
+ }
243
+ this.ws = null;
242
244
  this.rejectAllPending('连接已关闭');
245
+ this.eventListeners.clear();
243
246
  this.emit('disconnected');
244
247
  }
245
248
  }
246
249
  /** 默认 HTTP 请求超时 */
247
250
  const DEFAULT_HTTP_TIMEOUT = 10000;
248
251
  /**
249
- * 获取浏览器 WebSocket 端点
252
+ * 请求 CDP HTTP 接口(公共逻辑)
250
253
  */
251
- export async function getBrowserWSEndpoint(host, port, timeout = DEFAULT_HTTP_TIMEOUT) {
252
- const url = `http://${host}:${port}/json/version`;
254
+ async function cdpHttpFetch(host, port, path, timeout) {
255
+ // noinspection HttpUrlsUsage — CDP 调试协议只支持 HTTP
256
+ const url = `http://${host}:${port}${path}`;
253
257
  const controller = new AbortController();
254
258
  const timeoutId = setTimeout(() => controller.abort(), timeout);
259
+ let response;
255
260
  try {
256
- const response = await fetch(url, { signal: controller.signal });
257
- if (!response.ok) {
258
- throw new ConnectionRefusedError(host, port);
259
- }
260
- const data = (await response.json());
261
- return data.webSocketDebuggerUrl;
261
+ response = await fetch(url, { signal: controller.signal });
262
262
  }
263
263
  catch (error) {
264
- if (error instanceof ConnectionRefusedError) {
265
- throw error;
266
- }
267
- // AbortError 表示超时
268
264
  if (error instanceof Error && error.name === 'AbortError') {
269
265
  throw new TimeoutError(`连接超时: ${host}:${port} (${timeout}ms)`);
270
266
  }
@@ -273,33 +269,22 @@ export async function getBrowserWSEndpoint(host, port, timeout = DEFAULT_HTTP_TI
273
269
  finally {
274
270
  clearTimeout(timeoutId);
275
271
  }
272
+ if (!response.ok) {
273
+ throw new ConnectionRefusedError(host, port);
274
+ }
275
+ return (await response.json());
276
+ }
277
+ /**
278
+ * 获取浏览器 WebSocket 端点
279
+ */
280
+ export async function getBrowserWSEndpoint(host, port, timeout = DEFAULT_HTTP_TIMEOUT) {
281
+ const data = await cdpHttpFetch(host, port, '/json/version', timeout);
282
+ return data.webSocketDebuggerUrl;
276
283
  }
277
284
  /**
278
285
  * 获取所有可用的 targets
279
286
  */
280
287
  export async function getTargets(host, port, timeout = DEFAULT_HTTP_TIMEOUT) {
281
- const url = `http://${host}:${port}/json/list`;
282
- const controller = new AbortController();
283
- const timeoutId = setTimeout(() => controller.abort(), timeout);
284
- try {
285
- const response = await fetch(url, { signal: controller.signal });
286
- if (!response.ok) {
287
- throw new ConnectionRefusedError(host, port);
288
- }
289
- return (await response.json());
290
- }
291
- catch (error) {
292
- if (error instanceof ConnectionRefusedError) {
293
- throw error;
294
- }
295
- // AbortError 表示超时
296
- if (error instanceof Error && error.name === 'AbortError') {
297
- throw new TimeoutError(`连接超时: ${host}:${port} (${timeout}ms)`);
298
- }
299
- throw new ConnectionRefusedError(host, port);
300
- }
301
- finally {
302
- clearTimeout(timeoutId);
303
- }
288
+ return cdpHttpFetch(host, port, '/json/list', timeout);
304
289
  }
305
290
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/cdp/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/cdp/client.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * 负责启动 Chrome 浏览器进程并获取 CDP 端点
5
5
  */
6
- import type { LaunchOptions } from '../core/types.js';
6
+ import { type LaunchOptions } from '../core/types.js';
7
7
  /**
8
8
  * 查找 Chrome 可执行文件
9
9
  */
@@ -15,9 +15,6 @@ export declare class BrowserLauncher {
15
15
  private process;
16
16
  private _port;
17
17
  get port(): number;
18
- private _endpoint;
19
- get endpoint(): string;
20
- get isRunning(): boolean;
21
18
  /**
22
19
  * 启动浏览器
23
20
  */
@@ -26,10 +23,6 @@ export declare class BrowserLauncher {
26
23
  * 关闭浏览器
27
24
  */
28
25
  close(): void;
29
- /**
30
- * 强制关闭浏览器
31
- */
32
- forceClose(): void;
33
26
  /**
34
27
  * 构建启动参数
35
28
  */
@@ -1 +1 @@
1
- {"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../../src/cdp/launcher.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAA;AA6BnD;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,GAAG,IAAI,CAU1C;AAED;;GAEG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,KAAK,CAA2B;IAExC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,OAAO,CAAC,SAAS,CAAa;IAE9B,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;OAEG;IACG,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IA8B1D;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;OAEG;IACH,UAAU,IAAI,IAAI;IAOlB;;OAEG;IACH,OAAO,CAAC,SAAS;IAwDjB;;OAEG;IACH,OAAO,CAAC,eAAe;CA0C1B"}
1
+ {"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../../src/cdp/launcher.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAkB,KAAK,aAAa,EAAC,MAAM,kBAAkB,CAAA;AA6BpE;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,GAAG,IAAI,CAU1C;AAED;;GAEG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,KAAK,CAA2B;IAExC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACG,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IA6B1D;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;OAEG;IACH,OAAO,CAAC,SAAS;IAwDjB;;OAEG;IACH,OAAO,CAAC,eAAe;CAiD1B"}